summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobody <nobody@gnome.org>2006-01-09 13:35:17 +0000
committernobody <nobody@gnome.org>2006-01-09 13:35:17 +0000
commit2569e6e50ed74fccc1d4d306cd093b8d74eec284 (patch)
tree177110e9fc97d5356063c101e41866962db332d0
parent428436ce5498bac66dcb2edab4196629aa969008 (diff)
This commit was manufactured by cvs2svn to create tagKOHEI_IMPORT_DONE
'KOHEI_IMPORT_DONE'.
-rw-r--r--.cvsignore28
-rw-r--r--AUTHORS13
-rw-r--r--HACKING8
-rw-r--r--MAINTAINERS2
-rw-r--r--Makefile.am31
-rw-r--r--NEWS1712
-rw-r--r--README28
-rwxr-xr-xautogen.sh22
-rw-r--r--configure.in870
-rw-r--r--distro-configs/.cvsignore3
-rw-r--r--distro-configs/Ark.conf.in15
-rw-r--r--distro-configs/Common.conf.in18
-rw-r--r--distro-configs/Debian.conf.in20
-rw-r--r--distro-configs/Debian64.conf.in20
-rw-r--r--distro-configs/DebianSarge.conf.in20
-rw-r--r--distro-configs/DroplineGNOME.conf.in16
-rw-r--r--distro-configs/Frugalware.conf.in31
-rw-r--r--distro-configs/Frugalware64.conf.in33
-rw-r--r--distro-configs/Gentoo.conf.in9
-rw-r--r--distro-configs/Makefile.am1
-rw-r--r--distro-configs/Mandriva.conf.in12
-rw-r--r--distro-configs/Mandriva64.conf.in14
-rw-r--r--distro-configs/NLD.conf.in7
-rw-r--r--distro-configs/NLD64.conf.in15
-rw-r--r--distro-configs/QiLinux.conf.in21
-rw-r--r--distro-configs/SUSE.conf.in12
-rw-r--r--distro-configs/Ubuntu.conf.in21
-rw-r--r--distro-configs/Ubuntu64.conf.in21
-rwxr-xr-xdistro-configs/translate-org-za-linux.conf.in5
-rwxr-xr-xdistro-configs/translate-org-za-win32.conf.in4
-rwxr-xr-xdownload.in175
-rw-r--r--etc/.cvsignore2
-rw-r--r--fonts/.cvsignore4
-rw-r--r--fonts/Makefile.am1
-rw-r--r--fonts/OpenSymbol.sfd28912
-rw-r--r--fonts/opens___.ttfbin118212 -> 0 bytes
-rwxr-xr-xfonts/package14
-rwxr-xr-xfonts/symbols.xlsbin93696 -> 0 bytes
-rwxr-xr-xintltool-merge.in933
-rwxr-xr-xintltool-update.in923
-rw-r--r--patches/.cvsignore2
-rw-r--r--patches/64bit/.cvsignore2
-rw-r--r--patches/64bit/Makefile.am1
-rw-r--r--patches/64bit/accessibleChild-sc-sd-svx-sw.diff213
-rw-r--r--patches/64bit/bigint-datetime.diff194
-rw-r--r--patches/64bit/bigint-sd-sfx2-sw-tools.diff108
-rw-r--r--patches/64bit/buildfix-64bit-automation.diff13
-rw-r--r--patches/64bit/buildfix-64bit-basic.diff547
-rw-r--r--patches/64bit/buildfix-64bit-canvas.diff34
-rw-r--r--patches/64bit/buildfix-64bit-config_office.diff26
-rw-r--r--patches/64bit/buildfix-64bit-cppcanvas.diff31
-rw-r--r--patches/64bit/buildfix-64bit-dbaccess.diff20
-rw-r--r--patches/64bit/buildfix-64bit-forms.diff32
-rw-r--r--patches/64bit/buildfix-64bit-fpicker.diff11
-rw-r--r--patches/64bit/buildfix-64bit-on-32bit-systems.diff35
-rw-r--r--patches/64bit/buildfix-64bit-pyuno.diff17
-rw-r--r--patches/64bit/buildfix-64bit-scp2-no-python.diff19
-rw-r--r--patches/64bit/buildfix-64bit-setup_native.diff8
-rw-r--r--patches/64bit/buildfix-64bit-svtools.diff141
-rw-r--r--patches/64bit/buildfix-64bit-svx-intptr.diff66
-rw-r--r--patches/64bit/buildfix-64bit-svx.diff35
-rw-r--r--patches/64bit/buildfix-64bit-sw-editsh.diff13
-rw-r--r--patches/64bit/buildfix-64bit-system-jpeg.diff13
-rw-r--r--patches/64bit/buildfix-64bit-tools.diff16
-rw-r--r--patches/64bit/buildfix-64bit-vcl-gcc4.diff16
-rw-r--r--patches/64bit/buildfix-jdk150-XmlSearch.diff15
-rw-r--r--patches/64bit/buildfix-jdk150-berkeleydb.diff29
-rw-r--r--patches/64bit/buildfix-jdk150-jurt.diff52
-rw-r--r--patches/64bit/buildfix-jdk150-jvmfwk.diff21
-rw-r--r--patches/64bit/buildfix-jdk150-qadevOOo.diff109
-rw-r--r--patches/64bit/buildfix-jdk150-rhino.diff13
-rw-r--r--patches/64bit/buildfix-jdk150-sandbox.diff16
-rw-r--r--patches/64bit/buildfix-jdk150-scripting.diff71
-rw-r--r--patches/64bit/buildfix-jdk150-sj2.diff196
-rw-r--r--patches/64bit/buildfix-jdk150-xmerge.diff48
-rw-r--r--patches/64bit/buildfix-jdk150-xmlhelp.diff140
-rw-r--r--patches/64bit/cincludes.diff298
-rw-r--r--patches/64bit/cws-ooo64bit02.2005-04-19.diff6170
-rw-r--r--patches/64bit/event-extensions.diff17
-rw-r--r--patches/64bit/events-intptr.diff766
-rw-r--r--patches/64bit/fix-64bit-bridges-2.diff1493
-rw-r--r--patches/64bit/fix-64bit-bridges-3.diff587
-rw-r--r--patches/64bit/fix-64bit-bridges.diff1019
-rw-r--r--patches/64bit/fix-64bit-solenv-O2.diff11
-rw-r--r--patches/64bit/fix-64bit-solenv-noopt.diff11
-rw-r--r--patches/64bit/fix-64bit-sw-filter-ww8.diff1000
-rw-r--r--patches/64bit/fix-64bit-tools-svbt.diff32
-rw-r--r--patches/64bit/gcj-jvmfwk-gcc41-lib64.diff11
-rw-r--r--patches/64bit/intptr-basic.diff20
-rw-r--r--patches/64bit/numberformat-basic.diff155
-rw-r--r--patches/64bit/numberformat-binfilter.diff193
-rw-r--r--patches/64bit/numberformat-chart2.diff11
-rw-r--r--patches/64bit/numberformat-sc.diff660
-rw-r--r--patches/64bit/numberformat-sch.diff172
-rw-r--r--patches/64bit/numberformat-sd.diff22
-rw-r--r--patches/64bit/numberformat-sfx2.diff50
-rw-r--r--patches/64bit/numberformat-starmath.diff22
-rw-r--r--patches/64bit/numberformat-svtools.diff1244
-rw-r--r--patches/64bit/numberformat-svx.diff192
-rw-r--r--patches/64bit/numberformat-sw.diff748
-rw-r--r--patches/64bit/numberformat-vcl.diff13
-rw-r--r--patches/64bit/numberformat-xmloff.diff11
-rw-r--r--patches/64bit/polygonpoints-psprint-vcl.diff104
-rw-r--r--patches/64bit/resid-extensions-padmin.diff68
-rw-r--r--patches/64bit/solaris64-nas.diff20
-rw-r--r--patches/64bit/solaris64-sal.diff1839
-rw-r--r--patches/64bit/solaris64-solenv.diff574
-rw-r--r--patches/64bit/solaris64-stlport.diff23
-rw-r--r--patches/64bit/trivial-basic.diff64
-rw-r--r--patches/64bit/trivial-chart2.diff11
-rw-r--r--patches/64bit/trivial-dbaccess.diff20
-rw-r--r--patches/64bit/trivial-extensions.diff44
-rw-r--r--patches/64bit/trivial-filter.diff22
-rw-r--r--patches/64bit/trivial-framework.diff14
-rw-r--r--patches/64bit/trivial-sch.diff11
-rw-r--r--patches/64bit/trivial-sfx2.diff181
-rw-r--r--patches/64bit/trivial-so3.diff62
-rw-r--r--patches/64bit/trivial-starmath.diff40
-rw-r--r--patches/64bit/trivial-svtools.diff199
-rw-r--r--patches/64bit/trivial-svx.diff997
-rw-r--r--patches/64bit/trivial-vcl.diff284
-rw-r--r--patches/64bit/trivial-xmloff.diff143
-rw-r--r--patches/64bit/unsorted-basic.diff16
-rw-r--r--patches/64bit/unsorted-bridges-x86_64.diff83
-rw-r--r--patches/64bit/unsorted-bridges.diff40
-rw-r--r--patches/64bit/unsorted-configmgr.diff203
-rw-r--r--patches/64bit/unsorted-cppu.diff11
-rw-r--r--patches/64bit/unsorted-desktop-m147.diff26
-rw-r--r--patches/64bit/unsorted-desktop.diff17
-rw-r--r--patches/64bit/unsorted-filter.diff25
-rw-r--r--patches/64bit/unsorted-jvmfwk-m137.diff21
-rw-r--r--patches/64bit/unsorted-jvmfwk.diff10
-rw-r--r--patches/64bit/unsorted-rsc.diff11
-rw-r--r--patches/64bit/unsorted-sal.diff62
-rw-r--r--patches/64bit/unsorted-store.diff336
-rw-r--r--patches/64bit/unsorted-vos.diff51
-rw-r--r--patches/Makefile.am3
-rw-r--r--patches/README6
-rw-r--r--patches/a11y/.cvsignore2
-rw-r--r--patches/a11y/Makefile.am1
-rw-r--r--patches/a11y/a11y-gtk-frame.diff136
-rw-r--r--patches/a11y/a11y-vcl-prj.diff37
-rw-r--r--patches/a11y/comphelper-a11y-fix.diff20
-rw-r--r--patches/a11y/vcl-unx-gtk-a11y-atkaction-cxx.diff97
-rw-r--r--patches/a11y/vcl-unx-gtk-a11y-atkcomponent-cxx.diff174
-rw-r--r--patches/a11y/vcl-unx-gtk-a11y-atkfactory-cxx.diff73
-rw-r--r--patches/a11y/vcl-unx-gtk-a11y-atklistener-cxx.diff188
-rw-r--r--patches/a11y/vcl-unx-gtk-a11y-atklistener-hxx.diff37
-rw-r--r--patches/a11y/vcl-unx-gtk-a11y-atktext-cxx.diff218
-rw-r--r--patches/a11y/vcl-unx-gtk-a11y-atkvalue-cxx.diff72
-rw-r--r--patches/a11y/vcl-unx-gtk-a11y-atkwrapper-cxx.diff595
-rw-r--r--patches/a11y/vcl-unx-gtk-a11y-atkwrapper-hxx.diff40
-rw-r--r--patches/a11y/vcl-unx-gtk-a11y-makefile-mk.diff111
-rw-r--r--patches/a11y/vcl-unx-gtk-a11y-todo.diff178
-rw-r--r--patches/a11y/vcl-unx-inc-plugins-gtk-atkfactory-hxx.diff11
-rwxr-xr-xpatches/apply.pl610
-rw-r--r--patches/cairo/.cvsignore2
-rw-r--r--patches/cairo/Makefile.am1
-rw-r--r--patches/cairo/cairo-canvas-component-install.diff115
-rw-r--r--patches/cairo/cairo-canvas-rgb-surface-fallback.diff464
-rw-r--r--patches/cairo/cairo-canvas-surface-resize.diff88
-rw-r--r--patches/cairo/cairo-canvas-vcl.diff214
-rw-r--r--patches/cairo/cairo-config-office-configure-in.diff113
-rw-r--r--patches/cairo/cairo-config-office-set-soenv-in.diff20
-rw-r--r--patches/cairo/cairo-makefile-mk.diff116
-rw-r--r--patches/cairo/cairo-prj-build-lst.diff6
-rw-r--r--patches/cairo/cairo-prj-d-lst.diff9
-rw-r--r--patches/cairo/cairo-scp2.diff61
-rw-r--r--patches/cairo/cairo-smooth-curves.diff226
-rw-r--r--patches/cairo/cairo-svx-source-dialog-makefile-mk.diff13
-rw-r--r--patches/cairo/cairo-svx-source-dialog-optgdlg-cxx.diff65
-rw-r--r--patches/cairo/cairo-svx-source-dialog-optgdlg-src-hrc.diff188
-rw-r--r--patches/cairo/canvas-prj-build-lst.diff12
-rw-r--r--patches/cairo/canvas-prj-d-lst.diff9
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_backbuffer-cxx.diff133
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_backbuffer-hxx.diff103
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_bitmapbackbuffer-cxx.diff193
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_bitmapbackbuffer-hxx.diff138
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_cachedbitmap-cxx.diff103
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_cachedbitmap-hxx.diff78
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_cairo-cxx.diff80
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_cairo-hxx.diff85
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_canvasbitmap-cxx.diff122
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_canvasbitmap-hxx.diff115
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_canvasbitmaphelper-cxx.diff234
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_canvasbitmaphelper-hxx.diff135
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_canvascustomsprite-cxx.diff152
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_canvascustomsprite-hxx.diff158
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_canvasfont-cxx.diff176
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_canvasfont-hxx.diff108
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_canvashelper-cxx-m.diff736
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_canvashelper-cxx.diff1282
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_canvashelper-hxx-m.diff325
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_canvashelper-hxx.diff337
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_canvashelper_text-cxx.diff408
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_canvashelper_texturefill-cxx.diff218
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_devicehelper-cxx.diff383
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_devicehelper-hxx.diff146
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_helper-cxx.diff192
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_helper-hxx.diff13
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_impltools-cxx.diff448
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_impltools-hxx.diff261
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_linepolypolygon-cxx.diff117
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_linepolypolygon-hxx.diff103
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_outdevprovider-hxx.diff95
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_parametricpolypolygon-cxx.diff278
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_parametricpolypolygon-hxx.diff187
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_redrawmanager-cxx.diff517
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_redrawmanager-hxx.diff204
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_repainttarget-hxx.diff71
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_sprite-hxx.diff108
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_spritecanvas-cxx.diff335
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_spritecanvas-hxx.diff193
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_spritecanvashelper-cxx.diff513
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_spritecanvashelper-hxx.diff150
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_spritehelper-cxx.diff204
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_spritehelper-hxx.diff127
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_spritesurface-hxx.diff109
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_textlayout-cxx.diff400
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_textlayout-hxx.diff126
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_windowgraphicdevice-cxx.diff507
-rw-r--r--patches/cairo/canvas-source-cairo-cairo_windowgraphicdevice-hxx.diff209
-rw-r--r--patches/cairo/canvas-source-cairo-exports-dxp.diff7
-rw-r--r--patches/cairo/canvas-source-cairo-exports-map.diff12
-rw-r--r--patches/cairo/canvas-source-cairo-makefile-mk.diff142
-rw-r--r--patches/cairo/canvas-source-cairo-sprite-hxx.diff81
-rw-r--r--patches/cairo/canvas-source-factory-cf-service-cxx.diff20
-rw-r--r--patches/cairo/default-cairo-disable.diff20
-rw-r--r--patches/evo2/.cvsignore2
-rw-r--r--patches/evo2/Makefile.am1
-rw-r--r--patches/evo2/dbaccess-evo-changes.diff196
-rw-r--r--patches/evo2/default-evo-column-mapping.diff36
-rw-r--r--patches/evo2/evo-const-crash.diff124
-rw-r--r--patches/evo2/evoab-select-column.diff766
-rw-r--r--patches/mono/.cvsignore2
-rw-r--r--patches/mono/Makefile.am1
-rw-r--r--patches/mono/bridges-prj.diff21
-rw-r--r--patches/mono/bridges-source-mono_uno-binaryuno-cs.diff195
-rw-r--r--patches/mono/bridges-source-mono_uno-bridge-cs.diff1876
-rw-r--r--patches/mono/bridges-source-mono_uno-cli_environment-cs.diff207
-rw-r--r--patches/mono/bridges-source-mono_uno-makefile-mk.diff139
-rw-r--r--patches/mono/bridges-source-mono_uno-managed_proxy-cs.diff480
-rw-r--r--patches/mono/bridges-source-mono_uno-mono_bridge-cxx.diff415
-rw-r--r--patches/mono/bridges-source-mono_uno-mono_bridge-h.diff161
-rw-r--r--patches/mono/bridges-source-mono_uno-mono_proxy-cxx.diff204
-rw-r--r--patches/mono/bridges-source-mono_uno-rtl_ustring-cs.diff141
-rw-r--r--patches/mono/bridges-source-mono_uno-typeclass-cs.diff135
-rw-r--r--patches/mono/bridges-source-mono_uno-typedescription-cs.diff648
-rw-r--r--patches/mono/bridges-source-mono_uno-uik-cs.diff81
-rw-r--r--patches/mono/bridges-source-mono_uno-uno_glue-cxx.diff120
-rw-r--r--patches/mono/bridges-source-mono_uno-uno_proxy-cs.diff601
-rw-r--r--patches/mono/cli_ure-source-bootstrap-assembly-cs.diff7
-rw-r--r--patches/mono/cli_ure-source-bootstrap-makefile-mk.diff145
-rw-r--r--patches/mono/cli_ure-source-bootstrap-managed_bootstrap-cs.diff143
-rw-r--r--patches/mono/cli_ure-source-bootstrap-native_glue-cxx.diff151
-rw-r--r--patches/mono/mono-build.diff180
-rw-r--r--patches/mono/mono-scp2.diff107
-rw-r--r--patches/mono/mono-testtools.diff199
-rw-r--r--patches/scsolver/scs-boost.diff17
-rw-r--r--patches/scsolver/scs-officecfg.diff19
-rw-r--r--patches/scsolver/scs-scp2.diff16
-rw-r--r--patches/src680/.cvsignore2
-rw-r--r--patches/src680/Makefile.am4
-rw-r--r--patches/src680/addrbk-datasrc-ordering.diff22
-rw-r--r--patches/src680/apply1619
-rw-r--r--patches/src680/ark-handle-split-qt.diff11
-rw-r--r--patches/src680/ark-splash.diff33
-rw-r--r--patches/src680/arm-LINK-is-CC.diff16
-rw-r--r--patches/src680/bean-gcj-bug-workaround.diff15
-rw-r--r--patches/src680/biff-cxx.diff138
-rw-r--r--patches/src680/biff-hxx.diff104
-rw-r--r--patches/src680/build-offapi-no-compare.diff12
-rw-r--r--patches/src680/build-optimized-link.diff16
-rw-r--r--patches/src680/build-wizard-bitmap-scp.diff16
-rw-r--r--patches/src680/buildfix-deliver-strip.diff18
-rw-r--r--patches/src680/buildfix-enable-gcc41.diff11
-rw-r--r--patches/src680/buildfix-gcc41-compiler-error-basic.diff13
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-UnoControls.diff11
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-autodoc.diff55
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-basic.diff11
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-binfilter.diff247
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-chart2.diff22
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-configmgr.diff58
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-connectivity.diff22
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-filter.diff22
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-forms.diff11
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-framework.diff42
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-goodies.diff13
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-i18npool.diff11
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-io.diff11
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-libwpd.diff98
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-linguistic.diff11
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-psprint.diff15
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-sc.diff20
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-sd.diff33
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-sfx2.diff22
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-slideshow.diff11
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-so3.diff11
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-svtools.diff91
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-svx.diff60
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-sw.diff176
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-sw2.diff18
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-toolkit.diff11
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-tools.diff11
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-transex3.diff44
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-ucb.diff33
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-ucbhelper.diff11
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-unoxml.diff15
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-vcl.diff51
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-xmlhelp.diff33
-rw-r--r--patches/src680/buildfix-gcc41-extra-qualification-xmloff.diff103
-rw-r--r--patches/src680/buildfix-gcc41-friend-decl-binfilter.diff64
-rw-r--r--patches/src680/buildfix-gcc41-friend-decl-configmgr.diff24
-rw-r--r--patches/src680/buildfix-gcc41-friend-decl-desktop.diff12
-rw-r--r--patches/src680/buildfix-gcc41-friend-decl-i18npool.diff40
-rw-r--r--patches/src680/buildfix-gcc41-friend-decl-svx.diff24
-rw-r--r--patches/src680/buildfix-gcc41-friend-decl-sw.diff84
-rw-r--r--patches/src680/buildfix-gcc41-pointers-icu.diff3867
-rw-r--r--patches/src680/buildfix-gcc41-string-goodies.diff11
-rw-r--r--patches/src680/buildfix-gcc41-string-sw.diff44
-rw-r--r--patches/src680/buildfix-longnames-54730.diff58
-rw-r--r--patches/src680/buildfix-moz-flavour-nspr.diff11
-rw-r--r--patches/src680/buildfix-new-xslt.diff41
-rw-r--r--patches/src680/buildfix-no-xalan.diff14
-rw-r--r--patches/src680/buildfix-pkgconfig-gconfbe.diff16
-rw-r--r--patches/src680/buildfix-qadevOOo-java-encoding.diff11
-rw-r--r--patches/src680/buildfix-svx-cfg.diff47
-rw-r--r--patches/src680/buildfix-svx-without-stlport4.diff23
-rw-r--r--patches/src680/buildfix-system-moz-plugin.diff40
-rw-r--r--patches/src680/buildfix-system-nspr-m112.diff55
-rw-r--r--patches/src680/buildfix-system-nss.diff229
-rw-r--r--patches/src680/buildfix-testtools.diff11
-rw-r--r--patches/src680/buildfix-ucb-without-stlport4.diff10
-rw-r--r--patches/src680/buildfix-ucb-xml-cflags.diff18
-rw-r--r--patches/src680/calc-new-acceleration.diff34
-rw-r--r--patches/src680/capitalization.diff16
-rw-r--r--patches/src680/change-tooltipcolor-m90.diff19
-rw-r--r--patches/src680/check-buttons-rendering-fix.diff19
-rw-r--r--patches/src680/cleanup-vcl-kdeint.diff349
-rw-r--r--patches/src680/community-splash.diff16
-rw-r--r--patches/src680/config-mozilla-xulrunner.diff28
-rw-r--r--patches/src680/config_office-openldap-fix.diff11
-rw-r--r--patches/src680/config_office-system-db-4.3.diff12
-rw-r--r--patches/src680/config_office-system-mozila-python-fix.diff20
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-config-h.diff4
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-dataaccess-xcu.diff19
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-exports-dxp.diff6
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-makefile-mk.diff178
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-mdb-allocator-hxx.diff220
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-mdb-baseresultset-cxx.diff708
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-mdb-baseresultset-hxx.diff270
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-mdb-connection-cxx.diff560
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-mdb-connection-hxx.diff225
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-mdb-databasemetadata-cxx.diff1431
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-mdb-databasemetadata-hxx.diff251
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-mdb-driver-cxx.diff390
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-mdb-driver-hxx.diff140
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-mdb-map.diff11
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-mdb-preparedstatement-cxx.diff740
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-mdb-preparedstatement-hxx.diff257
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-mdb-resultset-cxx.diff743
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-mdb-resultset-hxx.diff286
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-mdb-resultsetmetadata-cxx.diff299
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-mdb-resultsetmetadata-hxx.diff127
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-mdb-sequenceresultset-cxx.diff148
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-mdb-sequenceresultset-hxx.diff129
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-mdb-statement-cxx.diff453
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-mdb-statement-hxx.diff179
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-mdb-wrapper-cxx.diff334
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-mdb-wrapper-hxx.diff91
-rw-r--r--patches/src680/connectivity-source-drivers-mdb-mdb-xml.diff36
-rw-r--r--patches/src680/context-autocomplete.diff17
-rw-r--r--patches/src680/corporate-dictionary.diff11
-rw-r--r--patches/src680/crash-sd-spellcheck.diff17
-rw-r--r--patches/src680/cws-fakebold.diff335
-rw-r--r--patches/src680/cws-fwk28.diff43
-rw-r--r--patches/src680/cws-i18nshrink.diff1962
-rw-r--r--patches/src680/cws-iconswitching1-binfilter.diff422
-rw-r--r--patches/src680/cws-iconswitching1.diff2837
-rw-r--r--patches/src680/cws-kaddrbook.diff8151
-rw-r--r--patches/src680/cws-mdbdriver01.diff180
-rw-r--r--patches/src680/cws-sb41.diff2281
-rw-r--r--patches/src680/cws-unxlngs04.diff121
-rw-r--r--patches/src680/db4-jni-casting-m146.diff3546
-rw-r--r--patches/src680/db4-jni-casting.diff3546
-rw-r--r--patches/src680/debian-hunspell-build.diff34
-rw-r--r--patches/src680/debian-splash.diff11
-rw-r--r--patches/src680/debug-bits.diff16
-rw-r--r--patches/src680/default-evolution-database.diff30
-rw-r--r--patches/src680/default-font-aasize.diff16
-rw-r--r--patches/src680/default-font-size.diff16
-rw-r--r--patches/src680/default-graphics-cache.diff20
-rw-r--r--patches/src680/default-impress-ruler.diff16
-rw-r--r--patches/src680/default-industrial-icons-w32.diff12
-rw-r--r--patches/src680/default-ms-filter-convert.diff117
-rw-r--r--patches/src680/default-no-install-wizards.diff45
-rw-r--r--patches/src680/default-no-registration-menu.diff18
-rw-r--r--patches/src680/default-no-registration.diff22
-rw-r--r--patches/src680/default-no-startup-wizard.diff22
-rw-r--r--patches/src680/default-no-style-dialog.diff16
-rw-r--r--patches/src680/default-no-x-fonts.diff19
-rw-r--r--patches/src680/default-pairkerning-on.diff11
-rw-r--r--patches/src680/default-system-fpicker.diff18
-rw-r--r--patches/src680/default-vba-compatible.diff24
-rw-r--r--patches/src680/dejavu-fonts.diff174
-rw-r--r--patches/src680/disable-access.diff55
-rw-r--r--patches/src680/disable-helpcontent2.diff251
-rw-r--r--patches/src680/disable-recovery.diff16
-rw-r--r--patches/src680/disable-rhino-without-system-bsh.diff875
-rw-r--r--patches/src680/disable-rhino.diff875
-rw-r--r--patches/src680/disable-testtools.diff8
-rw-r--r--patches/src680/disable-xmlsearch-and-xmlhelp-jar.diff17
-rw-r--r--patches/src680/dont-build-cfgimport-jar.diff17
-rw-r--r--patches/src680/dont-copy-and-install-stlport.diff117
-rw-r--r--patches/src680/dropline-gnome-splash.diff44
-rw-r--r--patches/src680/email-attachment-underscore-zero.diff38
-rw-r--r--patches/src680/evo-addrbook.diff16
-rw-r--r--patches/src680/evo2-fixes-m109.diff832
-rw-r--r--patches/src680/evo2-fixes.diff821
-rw-r--r--patches/src680/extensions-ldap-system-openldap-2.3.x.diff22
-rw-r--r--patches/src680/filebug-support.diff68
-rw-r--r--patches/src680/fix-stlport-includes.diff35
-rw-r--r--patches/src680/fpicker-common-build.diff76
-rw-r--r--patches/src680/fpicker-common-scp2.diff26
-rw-r--r--patches/src680/fpicker-export-expand.diff74
-rw-r--r--patches/src680/fpicker-generic-extn.diff109
-rw-r--r--patches/src680/fpicker-kde-dialog.diff1527
-rw-r--r--patches/src680/fpicker-kde-filter-name.diff21
-rw-r--r--patches/src680/fpicker-kde-gcc4-visibility.diff35
-rw-r--r--patches/src680/fpicker-kde-partial-kio.diff189
-rw-r--r--patches/src680/fpicker-kde-resmgr.diff72
-rw-r--r--patches/src680/fpicker-kde-service.diff2423
-rw-r--r--patches/src680/fpicker-show-checkbox.diff44
-rw-r--r--patches/src680/freedesktop-menus-spec.diff11
-rw-r--r--patches/src680/frugalware.diff43
-rw-r--r--patches/src680/frugalware64.diff43
-rw-r--r--patches/src680/gcc4-visibility-sc.diff38
-rw-r--r--patches/src680/gcc401-stlport45-include.diff19
-rw-r--r--patches/src680/gcj-HelpLinker-native.diff121
-rw-r--r--patches/src680/gcj-dbtool-optional.diff68
-rw-r--r--patches/src680/gcj-filter-xalan-classpath.diff11
-rw-r--r--patches/src680/gcj-jvmfwk-gcc41.diff10
-rw-r--r--patches/src680/gcj-no-broken-jaxp.diff427
-rw-r--r--patches/src680/gcj-no-com.sun.xml.diff459
-rw-r--r--patches/src680/gentoo-dicooo.diff24
-rw-r--r--patches/src680/gentoo-splash.diff35
-rw-r--r--patches/src680/gnome-desktop-integration.diff1178
-rw-r--r--patches/src680/gnome-fpicker-auto-file-type-by-extension.diff62
-rw-r--r--patches/src680/gtk-kde-fix.diff27
-rw-r--r--patches/src680/gui-font-paranoid-fallback.diff13
-rw-r--r--patches/src680/gui-insensitive.diff331
-rw-r--r--patches/src680/gui-metric-fonts-descr.diff122
-rw-r--r--patches/src680/gui-metric-fonts.diff69
-rw-r--r--patches/src680/gui-sc-delete.diff22
-rw-r--r--patches/src680/gui-slide-switch.diff18
-rw-r--r--patches/src680/gui-slidesort-backspace.diff15
-rw-r--r--patches/src680/gui-sw-insert-symbol.diff15
-rw-r--r--patches/src680/gui-sw-scroll.diff24
-rw-r--r--patches/src680/gui-toolbox-large-icons.diff16
-rw-r--r--patches/src680/hebrew-culmus.diff16
-rw-r--r--patches/src680/help-messagebox.diff13
-rw-r--r--patches/src680/help-support.diff46
-rw-r--r--patches/src680/hunspell-build.diff43
-rw-r--r--patches/src680/hunspell-config.diff85
-rw-r--r--patches/src680/hunspell-lingucomponent-dep.diff8
-rw-r--r--patches/src680/hunspell-no-hunspell_version.diff12
-rw-r--r--patches/src680/hunspell-scp2.diff38
-rw-r--r--patches/src680/icons-enable-crystal.diff144
-rw-r--r--patches/src680/idl-doc-fixes.diff84
-rw-r--r--patches/src680/installer-strip-optional.diff18
-rw-r--r--patches/src680/internal-nss-xmlsecurity-libnss.diff87981
-rw-r--r--patches/src680/internal-nss-xmlsecurity.diff99
-rw-r--r--patches/src680/internal-nss.diff43
-rwxr-xr-xpatches/src680/java-1_5-enum-reserved-word.diff48
-rw-r--r--patches/src680/jvmfwk-gij-4.0.diff16
-rw-r--r--patches/src680/kab-stl-vector-h.diff11
-rw-r--r--patches/src680/key-tilde.diff150
-rw-r--r--patches/src680/ld-library-path.diff204
-rw-r--r--patches/src680/leak-registry.diff11
-rw-r--r--patches/src680/leak-sal-file.diff16
-rw-r--r--patches/src680/leak-sal-module.diff15
-rw-r--r--patches/src680/leak-sch-3d.diff16
-rw-r--r--patches/src680/leak-svx-3d.diff40
-rw-r--r--patches/src680/libhunspell-build.diff180
-rw-r--r--patches/src680/libsb_gcc4_visibility_markup.diff1136
-rw-r--r--patches/src680/libso3_gcc4_visibility_markup.diff2186
-rw-r--r--patches/src680/linkoo-ooenv.diff18
-rw-r--r--patches/src680/linkoo-rc-dependent-files.diff47
-rw-r--r--patches/src680/linkoo-warning.diff21
-rw-r--r--patches/src680/lwp-build.diff68
-rw-r--r--patches/src680/lwp-detect.diff151
-rw-r--r--patches/src680/lwp-parse.diff90
-rw-r--r--patches/src680/mailmerge-py-installation-fix.diff54
-rw-r--r--patches/src680/mandriva-archflags.diff131
-rw-r--r--patches/src680/mandriva-splash.diff26
-rw-r--r--patches/src680/mdbtools-makefile-mk.diff108
-rw-r--r--patches/src680/mdbtools-prj-build-lst.diff6
-rw-r--r--patches/src680/mdbtools-prj-d-lst.diff8
-rw-r--r--patches/src680/mdbtools.diff121
-rwxr-xr-xpatches/src680/mozilla-build-cygpath.diff89
-rw-r--r--patches/src680/mozilla-buildlibs-win32.diff148
-rw-r--r--patches/src680/mozilla-firefox.diff47
-rw-r--r--patches/src680/ms-export-default.diff53
-rw-r--r--patches/src680/ms-interoperability-email-attachment-as-doc-xls-ppt-m99.diff411
-rw-r--r--patches/src680/msaccess-db-create-dialog-fix.diff53
-rw-r--r--patches/src680/myspell_hashify.diff634
-rw-r--r--patches/src680/nas-use-arch-flags.diff23
-rw-r--r--patches/src680/nfs-flock.diff39
-rw-r--r--patches/src680/no-fontooo-wizard.diff30
-rw-r--r--patches/src680/no-ldap-mozilla.diff33
-rw-r--r--patches/src680/no-sans-serif-default.diff316
-rw-r--r--patches/src680/no-splash-takeover.diff16
-rw-r--r--patches/src680/nojava-fix-stringparam-m145.diff33
-rw-r--r--patches/src680/nojava-fix-stringparam.diff32
-rw-r--r--patches/src680/novell-cjk-fonts.diff78
-rw-r--r--patches/src680/novell-palette.diff24
-rw-r--r--patches/src680/novell-splash-m145.diff116
-rw-r--r--patches/src680/novell-splash.diff116
-rw-r--r--patches/src680/novell-team.diff87
-rw-r--r--patches/src680/novell-win32-agfa-monotype-fonts.diff177
-rw-r--r--patches/src680/nsplugin-MOZILLA_FIVE_HOME.diff26
-rw-r--r--patches/src680/nsplugin-path.diff110
-rw-r--r--patches/src680/odk-java-wizpanel.diff33
-rw-r--r--patches/src680/odk-remove-non-free.diff56
-rw-r--r--patches/src680/ooo-save-msoffice-thumbnails.diff381
-rw-r--r--patches/src680/ooo-vendor-debian.diff11
-rw-r--r--patches/src680/openldap-allow-deprecated.diff12
-rw-r--r--patches/src680/padmin-nofontconfig.diff114
-rw-r--r--patches/src680/parallel-dmake-dont-remove.diff11
-rw-r--r--patches/src680/parallel-solenv-tg_sdi-mk.diff13
-rw-r--r--patches/src680/parallel-sysui-makefiles.diff33
-rw-r--r--patches/src680/pld-splash.diff43
-rw-r--r--patches/src680/portaudio-use-arch-flags-m146.diff54
-rw-r--r--patches/src680/portaudio-use-arch-flags.diff54
-rw-r--r--patches/src680/powerpc-LINK-is-CC.diff16
-rw-r--r--patches/src680/print-error.diff30
-rw-r--r--patches/src680/printer-properties-disable.diff66
-rw-r--r--patches/src680/printing-desktop-integration.diff138
-rw-r--r--patches/src680/psprint_config-no-orig.diff11
-rw-r--r--patches/src680/pushfont-psstream.diff12
-rw-r--r--patches/src680/pyuno-rpath-ooodir.diff11
-rw-r--r--patches/src680/pyuno-update-docs.diff801
-rw-r--r--patches/src680/qilinux-splash.diff43
-rw-r--r--patches/src680/qpro-build.diff140
-rw-r--r--patches/src680/qpro-cxx.diff259
-rw-r--r--patches/src680/qpro-detect.diff139
-rw-r--r--patches/src680/qpro-hxx.diff104
-rw-r--r--patches/src680/qproform-cxx.diff777
-rw-r--r--patches/src680/qproform-hxx.diff131
-rw-r--r--patches/src680/qprostyle-cxx.diff191
-rw-r--r--patches/src680/qprostyle-hxx.diff99
-rw-r--r--patches/src680/recovery-report.diff11
-rw-r--r--patches/src680/redhat-standard-colors.diff18
-rw-r--r--patches/src680/remove-default-multimedia-menu.diff144
-rw-r--r--patches/src680/s390-LINK-is-CXX.diff28
-rw-r--r--patches/src680/sal-compile-with-nptl.diff144
-rw-r--r--patches/src680/sal-condition.diff30
-rw-r--r--patches/src680/sal-cxa-guard.diff80
-rw-r--r--patches/src680/sal-when-to-run-crash-report.diff35
-rw-r--r--patches/src680/sc-address.diff161
-rw-r--r--patches/src680/sc-autofilter-autotrim-choices.diff16
-rw-r--r--patches/src680/sc-autofilter-empty-nonempty.diff42
-rw-r--r--patches/src680/sc-change-record-dnd.diff45
-rw-r--r--patches/src680/sc-csvfix-ui.diff203
-rw-r--r--patches/src680/sc-datapilot-autoformat.diff341
-rw-r--r--patches/src680/sc-datapilot-crash-fix.diff80
-rw-r--r--patches/src680/sc-datapilot-cut-paste-disable.diff28
-rw-r--r--patches/src680/sc-datapilot-dynamic-range.diff336
-rw-r--r--patches/src680/sc-default-color-modify.diff73
-rw-r--r--patches/src680/sc-div-errs.diff142
-rw-r--r--patches/src680/sc-div.diff59
-rw-r--r--patches/src680/sc-dp-database-crash.diff39
-rw-r--r--patches/src680/sc-erfc.diff336
-rw-r--r--patches/src680/sc-escape-print-preview.diff10
-rw-r--r--patches/src680/sc-filter-hide-filteredrows.diff17
-rw-r--r--patches/src680/sc-filters-fill-fix.diff21
-rw-r--r--patches/src680/sc-info-func.diff240
-rw-r--r--patches/src680/sc-insert-note-on-right-click.diff33
-rw-r--r--patches/src680/sc-iteration.diff198
-rw-r--r--patches/src680/sc-no-delete-filteredrows.diff94
-rw-r--r--patches/src680/sc-paste-dialog.diff66
-rw-r--r--patches/src680/sc-paste-insert-rows.diff23
-rw-r--r--patches/src680/sc-preserve-imp-opts.diff362
-rw-r--r--patches/src680/sc-pv-crasher.diff42
-rw-r--r--patches/src680/sc-r1c1.diff4057
-rw-r--r--patches/src680/sc-save-password-minlength.diff61
-rw-r--r--patches/src680/sc-seriessum.diff13
-rw-r--r--patches/src680/sc-sheet-double-click-rename.diff14
-rw-r--r--patches/src680/sc-source-ui-unobj-funcuno-cxx.diff25
-rw-r--r--patches/src680/sc-standard-filter-options.diff222
-rw-r--r--patches/src680/sc-startformulawplus.diff39
-rw-r--r--patches/src680/sc-string-arg.diff115
-rw-r--r--patches/src680/sc-toggle-formula.diff113
-rw-r--r--patches/src680/sc-valuefunc.diff11
-rw-r--r--patches/src680/sc-xl-errors.diff128
-rw-r--r--patches/src680/sd-export-html-descr.diff140
-rw-r--r--patches/src680/sd-export-html-theme.diff291
-rw-r--r--patches/src680/sd-export-html-translations.diff23
-rw-r--r--patches/src680/sd-export-html.diff373
-rw-r--r--patches/src680/sd-save-image-context-menu-localize.diff37
-rw-r--r--patches/src680/sd-save-image-context-menu.diff272
-rw-r--r--patches/src680/sdk-remove-non-free.diff60
-rw-r--r--patches/src680/sensible-browser.diff56
-rw-r--r--patches/src680/sensible-ooomua.diff17
-rw-r--r--patches/src680/sfx2-source-view-viewprn-cxx.diff34
-rw-r--r--patches/src680/sfx2-toolbox-size.diff38
-rw-r--r--patches/src680/size-sound-framework.diff117
-rw-r--r--patches/src680/size-sound-sc.diff32
-rw-r--r--patches/src680/size-sound-sd.diff249
-rw-r--r--patches/src680/size-sound-svx.diff71
-rw-r--r--patches/src680/size-sound-sw.diff32
-rw-r--r--patches/src680/size-sound-vcl.diff640
-rw-r--r--patches/src680/size-strip.diff16
-rw-r--r--patches/src680/slidesorter-demo-pngperf.svtools.diff234
-rw-r--r--patches/src680/slidesorter-demo-pngperf.vcl.diff3192
-rw-r--r--patches/src680/slidesorter-demo-sd.diff89
-rw-r--r--patches/src680/slidesorter-demo-svtools.diff25
-rw-r--r--patches/src680/slidesorter-demo-vcl.diff95
-rw-r--r--patches/src680/sparc-bridges-use-g++-3.4.diff18
-rw-r--r--patches/src680/speed-2nd-start.diff32
-rw-r--r--patches/src680/speed-bdirect-m147.diff108
-rw-r--r--patches/src680/speed-bdirect.diff110
-rw-r--r--patches/src680/speed-configmgr.diff83
-rw-r--r--patches/src680/speed-pagein.diff50
-rw-r--r--patches/src680/speed-psprint-ppd.diff30
-rw-r--r--patches/src680/speed-quickstart-eggtray.diff701
-rw-r--r--patches/src680/speed-quickstart.diff1336
-rw-r--r--patches/src680/speed-splash-ipc-name.diff58
-rw-r--r--patches/src680/speed-uiconfig-parse.diff353
-rw-r--r--patches/src680/speed-uiconfig.diff186
-rw-r--r--patches/src680/splash-title.diff11
-rw-r--r--patches/src680/starmath-stl-vector-h.diff49
-rw-r--r--patches/src680/static-libs-use-_pic.diff50
-rw-r--r--patches/src680/stlport-ppc-buildfix.diff48
-rw-r--r--patches/src680/svtools-default-new-document.diff11
-rw-r--r--patches/src680/svtools-unsort-template-dialogentries.diff169
-rw-r--r--patches/src680/svx-customshapes-NOOPTFILES.diff18
-rw-r--r--patches/src680/svx-dynamic-const-cast.diff43
-rw-r--r--patches/src680/svx-freeze-fix.diff26
-rw-r--r--patches/src680/sw-bullet-interop-fix.diff37
-rw-r--r--patches/src680/sw-default-bullet.diff11
-rw-r--r--patches/src680/sw-escape-print-preview.diff15
-rw-r--r--patches/src680/system-agg.diff215
-rw-r--r--patches/src680/system-bsh-m146.diff132
-rw-r--r--patches/src680/system-bsh.diff132
-rw-r--r--patches/src680/system-db-4.3-use-lpthread.diff18
-rw-r--r--patches/src680/system-hsqldb-m146.diff182
-rw-r--r--patches/src680/system-hsqldb.diff163
-rw-r--r--patches/src680/system-icu.diff416
-rw-r--r--patches/src680/system-xmlsec.diff2302
-rw-r--r--patches/src680/tab-key-for-autocomplete.diff10
-rw-r--r--patches/src680/testing-more-optimizations-ark.diff1302
-rw-r--r--patches/src680/tool-ooidlbuild.diff22
-rw-r--r--patches/src680/translate-org-za-splash-m145.diff44
-rw-r--r--patches/src680/translate-org-za-splash.diff34
-rw-r--r--patches/src680/ui-desktop-integration.diff227
-rw-r--r--patches/src680/use-free-xt-from-system.diff36
-rw-r--r--patches/src680/use-free-xt-xp-jaxp-from-system-sarge.diff20
-rw-r--r--patches/src680/use-free-xt-xp-jaxp-from-system.diff20
-rw-r--r--patches/src680/use-xalan-xerces-from-system.diff13
-rw-r--r--patches/src680/uses-vfs.diff15
-rw-r--r--patches/src680/valgrind-alloc.diff250
-rw-r--r--patches/src680/vba-attribute.diff95
-rw-r--r--patches/src680/vba-keybinding-f11.diff11
-rw-r--r--patches/src680/vba-not-comments.diff10
-rw-r--r--patches/src680/vba-sc-handleautoshapemacro-import.diff518
-rw-r--r--patches/src680/vcl-better-fallback.diff17
-rw-r--r--patches/src680/vcl-fix-spin-events.diff32
-rw-r--r--patches/src680/vcl-gtk-condition.diff15
-rw-r--r--patches/src680/vcl-gtk-yield.diff22
-rw-r--r--patches/src680/vcl-insensitive-menuitems.diff33
-rw-r--r--patches/src680/vcl-menu-fixes.diff78
-rw-r--r--patches/src680/vcl-nwf-menu-checkmarks.diff185
-rw-r--r--patches/src680/vcl-return-from-hc.diff44
-rw-r--r--patches/src680/vcl-toolbox-height.diff46
-rw-r--r--patches/src680/version-1-9-x.diff19
-rw-r--r--patches/src680/version-2-0-pre.diff11
-rw-r--r--patches/src680/vfs-kde-too.diff17
-rw-r--r--patches/src680/warning-return-values-binfilter.diff22
-rw-r--r--patches/src680/warning-return-values-connectivity-kab-m146.diff33
-rw-r--r--patches/src680/warning-return-values-connectivity-kab.diff44
-rw-r--r--patches/src680/warning-return-values-cppcanvas.diff12
-rw-r--r--patches/src680/warning-return-values-filter.diff18
-rw-r--r--patches/src680/warning-return-values-framework.diff20
-rw-r--r--patches/src680/warning-return-values-registry.diff12
-rw-r--r--patches/src680/warning-return-values-stlport.diff16
-rw-r--r--patches/src680/warning-return-values-toolkit.diff38
-rw-r--r--patches/src680/warning-uninitialized-variables-binfilter.diff35
-rw-r--r--patches/src680/warning-uninitialized-variables-comphelper.diff11
-rw-r--r--patches/src680/warning-uninitialized-variables-remotebridges.diff11
-rw-r--r--patches/src680/warning-uninitialized-variables-sc.diff49
-rw-r--r--patches/src680/warning-uninitialized-variables-sd.diff22
-rw-r--r--patches/src680/warning-uninitialized-variables-sw.diff11
-rw-r--r--patches/src680/warning-uninitialized-variables-sw2.diff11
-rw-r--r--patches/src680/warning-uninitialized-variables-tools-2.diff24
-rw-r--r--patches/src680/warning-uninitialized-variables-tools.diff10
-rw-r--r--patches/src680/warning-uninitialized-variables-vcl.diff11
-rw-r--r--patches/src680/win32-activex-disable.diff17
-rw-r--r--patches/src680/win32-build-fixes.diff34
-rw-r--r--patches/src680/win32-gw-send-mail.diff32
-rw-r--r--patches/src680/win32-msvs-2003-configure.diff186
-rw-r--r--patches/src680/wizard-evo-local.diff317
-rw-r--r--patches/src680/wizards-crasher-fix.diff11
-rw-r--r--patches/src680/wizards-filter-gcj-access-problems.diff9181
-rw-r--r--patches/src680/wizards-source-importwizard-filesmodul-xba.diff11
-rw-r--r--patches/src680/workspace.jaxpapi.diff613
-rw-r--r--patches/src680/writer-default-as-optimal-page-wrap.diff16
-rw-r--r--patches/src680/ww8scan.diff247
-rw-r--r--patches/src680/xinerama-pic-on-all-archs.diff13
-rw-r--r--patches/src680/xmlhelp-port-to-db-4.3.diff737
-rw-r--r--patches/src680/xmlsearch-plain-xt.diff402
-rw-r--r--patches/src680/xmlsecurity_source_xmlsec_nss_gcc4_compile_fix.diff65
-rwxr-xr-xpatches/src680/zoom-combobox.diff724
-rw-r--r--patches/test/ArtificialBoldItalic.diff751
-rw-r--r--patches/test/README64
-rw-r--r--patches/test/binutils-bdirect.diff645
-rw-r--r--patches/test/binutils-dynsort.diff710
-rw-r--r--patches/test/binutils-objprel.diff190
-rw-r--r--patches/test/binutils-pltabs.diff177
-rw-r--r--patches/test/canvas-demo.diff445
-rw-r--r--patches/test/canvas-fix.diff34
-rw-r--r--patches/test/canvas-make.diff79
-rw-r--r--patches/test/fsstorage.diff27
-rw-r--r--patches/test/gcc-pltabs.diff63
-rw-r--r--patches/test/gcc-stubhack.diff182
-rw-r--r--patches/test/gcc-ztvd.diff302
-rw-r--r--patches/test/glibc-bdirect.diff361
-rw-r--r--patches/test/gui-control-layout.diff177
-rw-r--r--patches/test/gui-disable-spellcheck-all-langs.diff103
-rw-r--r--patches/test/gui-window-layout.diff35
-rw-r--r--patches/test/layout-ids.diff67
-rw-r--r--patches/test/layout-rsc.diff221
-rw-r--r--patches/test/layout-test.diff143
-rw-r--r--patches/test/layout-vcl-layout.diff521
-rw-r--r--patches/test/layout-vcl-window.diff219
-rw-r--r--patches/test/memprof-nptl.diff357
-rw-r--r--patches/test/mono-testtools.diff163
-rw-r--r--patches/test/myspell-shrink.diff406
-rw-r--r--patches/test/pagein-idle133
-rw-r--r--patches/test/pagein-idle.diff469
-rw-r--r--patches/test/psprint-enable-artificial-ItalicBold-printing.diff62
-rw-r--r--patches/test/qpro12.0-detect.diff64
-rw-r--r--patches/test/redirect-bdirect.c162
-rw-r--r--patches/test/sal-instrument.diff36
-rw-r--r--patches/test/sc-source-ui-unoobj-vbarange-cxx.diff29
-rw-r--r--patches/test/sc-source-ui-unoobj-vbarange-hxx.diff93
-rw-r--r--patches/test/sc-source-ui-unoobj-vbaworkbook-cxx.diff29
-rw-r--r--patches/test/sc-source-ui-unoobj-vbaworkbook-hxx.diff68
-rw-r--r--patches/test/sc-source-ui-unoobj-vbaworksheet-cxx.diff31
-rw-r--r--patches/test/sc-source-ui-unoobj-vbaworksheet-hxx.diff76
-rw-r--r--patches/test/sd-export-html-thumbnails.diff148
-rw-r--r--patches/test/service-log.diff57
-rw-r--r--patches/test/store-core.diff463
-rw-r--r--patches/test/store-registry.diff17
-rw-r--r--patches/test/store-shell.diff544
-rw-r--r--patches/test/vba-export-dir.diff1126
-rw-r--r--patches/test/vba-export.diff269
-rw-r--r--patches/test/vba-sc-docuno-hack.diff51
-rw-r--r--patches/test/vba-sc-source-ui-unoobj-makefile.diff19
-rwxr-xr-xpatches/test/vcl-font-hinting.diff157
-rw-r--r--patches/test/win32-odma-build.diff96
-rw-r--r--patches/test/win32-odma-gw-fix.diff27
-rw-r--r--patches/test/xim-fixes3-rest.diff35
-rw-r--r--patches/test/xmlsearch-xerces.diff243
-rw-r--r--patches/vba/.cvsignore2
-rw-r--r--patches/vba/Makefile.am1
-rw-r--r--patches/vba/basic-millisecTimer.diff41
-rw-r--r--patches/vba/basic-source-classes-eventatt-cxx.diff364
-rw-r--r--patches/vba/extensions-source-propctrlr-formcontroller-cxx.diff30
-rw-r--r--patches/vba/extensions-source-propctrlr-makefile-mk.diff24
-rw-r--r--patches/vba/gcc4-vba-pastespecial-visibility.diff22
-rw-r--r--patches/vba/offapi-org-openoffice-MSFormReturnTypes.idl28
-rw-r--r--patches/vba/offapi-org-openoffice-vba-MSFormReturnTypes-idl.diff28
-rw-r--r--patches/vba/offapi-org-openoffice-vba-excel-constants-idl.diff15
-rw-r--r--patches/vba/offapi-org-openoffice-vba-excel-makefile-mk.diff31
-rw-r--r--patches/vba/offapi-org-openoffice-vba-excel-xlcalculation-idl.diff18
-rw-r--r--patches/vba/offapi-org-openoffice-vba-excel-xlcelltype-idl.diff23
-rw-r--r--patches/vba/offapi-org-openoffice-vba-excel-xlcutcopymode-idl.diff15
-rw-r--r--patches/vba/offapi-org-openoffice-vba-excel-xlfindlookin-idl.diff16
-rw-r--r--patches/vba/offapi-org-openoffice-vba-makefile-mk.diff54
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xapplication-idl.diff46
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xarraywrapper-idl.diff31
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xchart-idl.diff29
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xchartobject-idl.diff30
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xchartobjects-idl.diff34
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xcollection-idl.diff31
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xdialog-idl.diff31
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xdialogs-idl.diff29
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xfont-idl.diff35
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xglobals-idl.diff36
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xinterior-idl.diff29
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xlbuildindialog-idl.diff38
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xlpastespecialoperation-idl.diff32
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xlpastetype-idl.diff37
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xoutline-idl.diff31
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xpivotcache-idl.diff28
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xpivottable-idl.diff31
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xpivottables-idl.diff30
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xrange-idl.diff77
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xseries-idl.diff31
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xseriescollection-idl.diff33
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xvbatoooeventdescgen-idl.diff27
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xwindow-idl.diff31
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xworkbook-idl.diff39
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xworkbooks-idl.diff26
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xworksheet-idl.diff62
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xworksheetfunction-idl.diff29
-rw-r--r--patches/vba/offapi-org-openoffice-vba-xworksheets-idl.diff33
-rw-r--r--patches/vba/sc-hacky-handle-boolean.diff41
-rw-r--r--patches/vba/sc-inc-document-gcc4-visibility.diff16
-rw-r--r--patches/vba/sc-inc-docuno-hxx-visibility.diff16
-rw-r--r--patches/vba/sc-source-ui-inc-tabview-hxx.diff35
-rw-r--r--patches/vba/sc-source-ui-inc-viewfunc-hxx.diff39
-rw-r--r--patches/vba/sc-source-ui-vba-makefile-mk.diff59
-rw-r--r--patches/vba/sc-source-ui-vba-service-cxx.diff91
-rw-r--r--patches/vba/sc-source-ui-vba-vbaapplication-cxx.diff188
-rw-r--r--patches/vba/sc-source-ui-vba-vbaapplication-hxx.diff46
-rw-r--r--patches/vba/sc-source-ui-vba-vbaarraywrapper-cxx.diff27
-rw-r--r--patches/vba/sc-source-ui-vba-vbaarraywrapper-hxx.diff25
-rw-r--r--patches/vba/sc-source-ui-vba-vbachart-cxx.diff32
-rw-r--r--patches/vba/sc-source-ui-vba-vbachart-hxx.diff26
-rw-r--r--patches/vba/sc-source-ui-vba-vbachartobject-cxx.diff77
-rw-r--r--patches/vba/sc-source-ui-vba-vbachartobject-hxx.diff27
-rw-r--r--patches/vba/sc-source-ui-vba-vbachartobjects-cxx.diff55
-rw-r--r--patches/vba/sc-source-ui-vba-vbachartobjects-hxx.diff32
-rw-r--r--patches/vba/sc-source-ui-vba-vbacollectionimpl-cxx.diff106
-rw-r--r--patches/vba/sc-source-ui-vba-vbacollectionimpl-hxx.diff73
-rw-r--r--patches/vba/sc-source-ui-vba-vbadialog-cxx.diff107
-rw-r--r--patches/vba/sc-source-ui-vba-vbadialog-hxx.diff38
-rw-r--r--patches/vba/sc-source-ui-vba-vbadialogs-cxx.diff72
-rw-r--r--patches/vba/sc-source-ui-vba-vbadialogs-hxx.diff37
-rw-r--r--patches/vba/sc-source-ui-vba-vbafont-cxx.diff115
-rw-r--r--patches/vba/sc-source-ui-vba-vbafont-hxx.diff41
-rw-r--r--patches/vba/sc-source-ui-vba-vbaglobals-cxx.diff206
-rw-r--r--patches/vba/sc-source-ui-vba-vbaglobals-hxx.diff58
-rw-r--r--patches/vba/sc-source-ui-vba-vbahelper-cxx.diff297
-rw-r--r--patches/vba/sc-source-ui-vba-vbahelper-hxx.diff38
-rw-r--r--patches/vba/sc-source-ui-vba-vbainterior-cxx.diff128
-rw-r--r--patches/vba/sc-source-ui-vba-vbainterior-hxx.diff42
-rw-r--r--patches/vba/sc-source-ui-vba-vbaobj-map.diff13
-rw-r--r--patches/vba/sc-source-ui-vba-vbaobj-xml.diff29
-rw-r--r--patches/vba/sc-source-ui-vba-vbaoutline-cxx.diff23
-rw-r--r--patches/vba/sc-source-ui-vba-vbaoutline-hxx.diff27
-rw-r--r--patches/vba/sc-source-ui-vba-vbapivotcache-cxx.diff19
-rw-r--r--patches/vba/sc-source-ui-vba-vbapivotcache-hxx.diff25
-rw-r--r--patches/vba/sc-source-ui-vba-vbapivottable-cxx.diff19
-rw-r--r--patches/vba/sc-source-ui-vba-vbapivottable-hxx.diff23
-rw-r--r--patches/vba/sc-source-ui-vba-vbapivottables-cxx.diff52
-rw-r--r--patches/vba/sc-source-ui-vba-vbapivottables-hxx.diff38
-rw-r--r--patches/vba/sc-source-ui-vba-vbarange-cxx.diff1033
-rw-r--r--patches/vba/sc-source-ui-vba-vbarange-hxx.diff132
-rw-r--r--patches/vba/sc-source-ui-vba-vbaseriescollection-cxx.diff76
-rw-r--r--patches/vba/sc-source-ui-vba-vbaseriescollection-hxx.diff36
-rw-r--r--patches/vba/sc-source-ui-vba-vbawindow-cxx.diff241
-rw-r--r--patches/vba/sc-source-ui-vba-vbawindow-hxx.diff27
-rw-r--r--patches/vba/sc-source-ui-vba-vbaworkbook-cxx.diff191
-rw-r--r--patches/vba/sc-source-ui-vba-vbaworkbook-hxx.diff50
-rw-r--r--patches/vba/sc-source-ui-vba-vbaworkbooks-cxx.diff294
-rw-r--r--patches/vba/sc-source-ui-vba-vbaworkbooks-hxx.diff51
-rw-r--r--patches/vba/sc-source-ui-vba-vbaworksheet-cxx.diff541
-rw-r--r--patches/vba/sc-source-ui-vba-vbaworksheet-hxx.diff85
-rw-r--r--patches/vba/sc-source-ui-vba-vbaworksheets-cxx.diff278
-rw-r--r--patches/vba/sc-source-ui-vba-vbaworksheets-hxx.diff54
-rw-r--r--patches/vba/sc-source-ui-vba-vbawsfunction-cxx.diff85
-rw-r--r--patches/vba/sc-source-ui-vba-vbawsfunction-hxx.diff39
-rw-r--r--patches/vba/sc-vba-build-lst.diff12
-rw-r--r--patches/vba/scp_vba_uno_service.diff61
-rw-r--r--patches/vba/svx-source-form-fmctrler-cxx.diff62
-rw-r--r--patches/vba/svx-source-form-fmundo-cxx.diff178
-rw-r--r--patches/vba/svx-source-form-formControlVBAHandler-cxx.diff96
-rw-r--r--patches/vba/svx-source-form-formControlVBAHandler-hxx.diff34
-rw-r--r--patches/vba/svx-source-form-makefile.diff29
-rw-r--r--patches/vba/svx-source-inc-fmundo-hxx.diff18
-rw-r--r--patches/vba/vba-basic-collection.diff125
-rw-r--r--patches/vba/vba-basic-default.diff292
-rw-r--r--patches/vba/vba-basic-globals.diff165
-rw-r--r--patches/vba/vba-basic-multidim-uno-arraywrap.diff149
-rw-r--r--patches/vba/vba-build.diff172
-rw-r--r--patches/vba/vba-dim-and-constants-patch.diff362
-rw-r--r--patches/vba/vba-evaluate-support.diff80
-rw-r--r--patches/vba/vba-optionbasesupport.diff263
-rw-r--r--patches/vba/vba-runtime-vba-enabled.diff39
-rw-r--r--patches/vba/vba-sc-docuno-hook.diff84
-rw-r--r--patches/vba/vba-support-stoc-typeprovider-xexactname.diff372
-rw-r--r--patches/vba/vba_configure_set_soenv_in.diff50
-rw-r--r--patches/vba/vbaevents-basic-prj.diff29
-rw-r--r--patches/vba/vbaevents-services-build.diff21
-rw-r--r--patches/vba/vbaevents-services-sources.diff1193
-rw-r--r--po/.cvsignore14
-rw-r--r--po/Makefile.am1
-rw-r--r--po/POTFILES.in6
-rw-r--r--po/POTFILES.skip4
-rw-r--r--po/az.po66
-rw-r--r--po/bg.po67
-rw-r--r--po/bs.po66
-rw-r--r--po/ca.po60
-rw-r--r--po/cs.po65
-rw-r--r--po/da.po62
-rw-r--r--po/de.po79
-rw-r--r--po/el.po80
-rw-r--r--po/en_CA.po65
-rw-r--r--po/en_GB.po67
-rw-r--r--po/en_ZA.po64
-rw-r--r--po/es.po76
-rw-r--r--po/eu.po68
-rw-r--r--po/fi.po57
-rw-r--r--po/fr.po64
-rw-r--r--po/ga.po64
-rw-r--r--po/gl.po65
-rw-r--r--po/gu.po67
-rw-r--r--po/he.po67
-rw-r--r--po/hr.po63
-rw-r--r--po/hu.po68
-rw-r--r--po/is.po64
-rw-r--r--po/ja.po64
-rw-r--r--po/ka.po68
-rw-r--r--po/ko.po62
-rw-r--r--po/mk.po66
-rw-r--r--po/ms.po62
-rw-r--r--po/nb.po57
-rwxr-xr-xpo/ne.po67
-rw-r--r--po/nl.po78
-rw-r--r--po/no.po57
-rw-r--r--po/nr.po65
-rw-r--r--po/nso.po65
-rw-r--r--po/pa.po64
-rw-r--r--po/pl.po67
-rw-r--r--po/pt.po64
-rw-r--r--po/pt_BR.po66
-rw-r--r--po/rw.po93
-rw-r--r--po/sk.po66
-rw-r--r--po/sq.po66
-rw-r--r--po/sr.po64
-rw-r--r--po/sr@Latn.po64
-rw-r--r--po/st.po65
-rw-r--r--po/sv.po70
-rw-r--r--po/th.po64
-rw-r--r--po/tr.po67
-rw-r--r--po/ts.po65
-rw-r--r--po/uk.po64
-rw-r--r--po/vi.po67
-rw-r--r--po/wa.po64
-rw-r--r--po/xh.po65
-rw-r--r--po/zh_CN.po63
-rw-r--r--po/zh_TW.po64
-rw-r--r--po/zu.po65
-rw-r--r--scratch/.cvsignore1
-rw-r--r--scratch/README14
-rw-r--r--scratch/canvas-cairo/POSITION1
-rw-r--r--scratch/canvas-cairo/cairo_backbuffer.cxx130
-rw-r--r--scratch/canvas-cairo/cairo_backbuffer.hxx100
-rw-r--r--scratch/canvas-cairo/cairo_bitmapbackbuffer.cxx190
-rw-r--r--scratch/canvas-cairo/cairo_bitmapbackbuffer.hxx135
-rw-r--r--scratch/canvas-cairo/cairo_cachedbitmap.cxx171
-rw-r--r--scratch/canvas-cairo/cairo_cachedbitmap.hxx148
-rw-r--r--scratch/canvas-cairo/cairo_cairo.hxx18
-rw-r--r--scratch/canvas-cairo/cairo_canvasbitmap.cxx184
-rw-r--r--scratch/canvas-cairo/cairo_canvasbitmap.hxx161
-rw-r--r--scratch/canvas-cairo/cairo_canvasbitmaphelper.cxx231
-rw-r--r--scratch/canvas-cairo/cairo_canvasbitmaphelper.hxx132
-rw-r--r--scratch/canvas-cairo/cairo_canvascustomsprite.cxx826
-rw-r--r--scratch/canvas-cairo/cairo_canvascustomsprite.hxx246
-rw-r--r--scratch/canvas-cairo/cairo_canvasfont.cxx192
-rw-r--r--scratch/canvas-cairo/cairo_canvasfont.hxx149
-rw-r--r--scratch/canvas-cairo/cairo_canvashelper.cxx1188
-rw-r--r--scratch/canvas-cairo/cairo_canvashelper.hxx338
-rw-r--r--scratch/canvas-cairo/cairo_canvashelper_texturefill.cxx215
-rw-r--r--scratch/canvas-cairo/cairo_helper.cxx159
-rw-r--r--scratch/canvas-cairo/cairo_helper.hxx14
-rw-r--r--scratch/canvas-cairo/cairo_impltools.cxx627
-rw-r--r--scratch/canvas-cairo/cairo_impltools.hxx258
-rw-r--r--scratch/canvas-cairo/cairo_linepolypolygon.cxx114
-rw-r--r--scratch/canvas-cairo/cairo_linepolypolygon.hxx100
-rw-r--r--scratch/canvas-cairo/cairo_outdevprovider.hxx92
-rw-r--r--scratch/canvas-cairo/cairo_parametricpolypolygon.cxx275
-rw-r--r--scratch/canvas-cairo/cairo_parametricpolypolygon.hxx184
-rw-r--r--scratch/canvas-cairo/cairo_redrawmanager.cxx514
-rw-r--r--scratch/canvas-cairo/cairo_redrawmanager.hxx201
-rw-r--r--scratch/canvas-cairo/cairo_repainttarget.hxx97
-rw-r--r--scratch/canvas-cairo/cairo_sprite.hxx131
-rw-r--r--scratch/canvas-cairo/cairo_spritecanvas.cxx557
-rw-r--r--scratch/canvas-cairo/cairo_spritecanvas.hxx234
-rw-r--r--scratch/canvas-cairo/cairo_spritesurface.hxx106
-rw-r--r--scratch/canvas-cairo/cairo_textlayout.cxx423
-rw-r--r--scratch/canvas-cairo/cairo_textlayout.hxx157
-rw-r--r--scratch/canvas-cairo/cairo_windowgraphicdevice.cxx541
-rw-r--r--scratch/canvas-cairo/cairo_windowgraphicdevice.hxx214
-rw-r--r--scratch/canvas-cairo/exports.dxp3
-rw-r--r--scratch/canvas-cairo/exports.map9
-rw-r--r--scratch/canvas-cairo/makefile.mk144
-rw-r--r--scratch/mono-uno-bootstrap/POSITION2
-rw-r--r--scratch/mono-uno-bootstrap/assembly.cs4
-rw-r--r--scratch/mono-uno-bootstrap/makefile.mk142
-rw-r--r--scratch/mono-uno-bootstrap/managed_bootstrap.cs140
-rw-r--r--scratch/mono-uno-bootstrap/native_glue.cxx148
-rw-r--r--scratch/mono-uno-climaker/Climaker.cs639
-rw-r--r--scratch/mono-uno-climaker/TypeEmitter.cs1823
-rw-r--r--scratch/offapi-vba/Excel/Constants.idl14
-rw-r--r--scratch/offapi-vba/Excel/XlCalculation.idl15
-rw-r--r--scratch/offapi-vba/Excel/XlCellType.idl20
-rw-r--r--scratch/offapi-vba/Excel/XlCutCopyMode.idl12
-rw-r--r--scratch/offapi-vba/Excel/XlFindLookIn.idl13
-rw-r--r--scratch/offapi-vba/Excel/makefile.mk28
-rw-r--r--scratch/offapi-vba/MSFormReturnTypes.idl25
-rw-r--r--scratch/offapi-vba/POSITION1
-rw-r--r--scratch/offapi-vba/XApplication.idl43
-rw-r--r--scratch/offapi-vba/XArrayWrapper.idl26
-rw-r--r--scratch/offapi-vba/XChart.idl26
-rw-r--r--scratch/offapi-vba/XChartObject.idl27
-rw-r--r--scratch/offapi-vba/XChartObjects.idl31
-rw-r--r--scratch/offapi-vba/XCollection.idl28
-rw-r--r--scratch/offapi-vba/XDialog.idl28
-rw-r--r--scratch/offapi-vba/XDialogs.idl26
-rw-r--r--scratch/offapi-vba/XFont.idl32
-rw-r--r--scratch/offapi-vba/XGlobals.idl33
-rw-r--r--scratch/offapi-vba/XInterior.idl26
-rw-r--r--scratch/offapi-vba/XOutline.idl28
-rw-r--r--scratch/offapi-vba/XRange.idl74
-rw-r--r--scratch/offapi-vba/XSeries.idl28
-rw-r--r--scratch/offapi-vba/XSeriesCollection.idl30
-rw-r--r--scratch/offapi-vba/XVBAToOOEventDescGen.idl24
-rw-r--r--scratch/offapi-vba/XWindow.idl28
-rw-r--r--scratch/offapi-vba/XWorkbook.idl36
-rw-r--r--scratch/offapi-vba/XWorkbooks.idl23
-rw-r--r--scratch/offapi-vba/XWorksheet.idl59
-rw-r--r--scratch/offapi-vba/XWorksheetFunction.idl26
-rw-r--r--scratch/offapi-vba/XWorksheets.idl30
-rw-r--r--scratch/offapi-vba/XlBuiltInDialog.idl35
-rw-r--r--scratch/offapi-vba/XlPasteSpecialOperation.idl29
-rw-r--r--scratch/offapi-vba/XlPasteType.idl34
-rw-r--r--scratch/offapi-vba/makefile.mk51
-rw-r--r--scratch/offapi-vba/makefile.pmk93
-rw-r--r--scratch/offapi-vba/target.pmk68
-rw-r--r--scratch/place.in52
-rw-r--r--scratch/sc-vba/POSITION1
-rw-r--r--scratch/sc-vba/ReadMe16
-rw-r--r--scratch/sc-vba/makefile.mk56
-rw-r--r--scratch/sc-vba/service.cxx88
-rw-r--r--scratch/sc-vba/vbaapplication.cxx185
-rw-r--r--scratch/sc-vba/vbaapplication.hxx43
-rw-r--r--scratch/sc-vba/vbaarraywrapper.cxx22
-rw-r--r--scratch/sc-vba/vbaarraywrapper.hxx20
-rw-r--r--scratch/sc-vba/vbachart.cxx29
-rw-r--r--scratch/sc-vba/vbachart.hxx23
-rw-r--r--scratch/sc-vba/vbachartobject.cxx74
-rw-r--r--scratch/sc-vba/vbachartobject.hxx24
-rw-r--r--scratch/sc-vba/vbachartobjects.cxx52
-rw-r--r--scratch/sc-vba/vbachartobjects.hxx29
-rw-r--r--scratch/sc-vba/vbacollectionimpl.cxx103
-rw-r--r--scratch/sc-vba/vbacollectionimpl.hxx68
-rw-r--r--scratch/sc-vba/vbadialog.cxx104
-rw-r--r--scratch/sc-vba/vbadialog.hxx35
-rw-r--r--scratch/sc-vba/vbadialogs.cxx69
-rw-r--r--scratch/sc-vba/vbadialogs.hxx34
-rw-r--r--scratch/sc-vba/vbafont.cxx112
-rw-r--r--scratch/sc-vba/vbafont.hxx38
-rw-r--r--scratch/sc-vba/vbaglobals.cxx203
-rw-r--r--scratch/sc-vba/vbaglobals.hxx55
-rw-r--r--scratch/sc-vba/vbahelper.cxx294
-rw-r--r--scratch/sc-vba/vbahelper.hxx35
-rw-r--r--scratch/sc-vba/vbainterior.cxx125
-rw-r--r--scratch/sc-vba/vbainterior.hxx39
-rw-r--r--scratch/sc-vba/vbaobj.map10
-rw-r--r--scratch/sc-vba/vbaobj.xml26
-rw-r--r--scratch/sc-vba/vbaoutline.cxx20
-rw-r--r--scratch/sc-vba/vbaoutline.hxx24
-rw-r--r--scratch/sc-vba/vbapivotcache.cxx16
-rw-r--r--scratch/sc-vba/vbapivotcache.hxx22
-rw-r--r--scratch/sc-vba/vbapivottable.cxx16
-rw-r--r--scratch/sc-vba/vbapivottable.hxx20
-rw-r--r--scratch/sc-vba/vbapivottables.cxx49
-rw-r--r--scratch/sc-vba/vbapivottables.hxx35
-rw-r--r--scratch/sc-vba/vbarange.cxx1028
-rw-r--r--scratch/sc-vba/vbarange.hxx127
-rw-r--r--scratch/sc-vba/vbaseriescollection.cxx73
-rw-r--r--scratch/sc-vba/vbaseriescollection.hxx33
-rw-r--r--scratch/sc-vba/vbawindow.cxx238
-rw-r--r--scratch/sc-vba/vbawindow.hxx24
-rw-r--r--scratch/sc-vba/vbaworkbook.cxx188
-rw-r--r--scratch/sc-vba/vbaworkbook.hxx47
-rw-r--r--scratch/sc-vba/vbaworkbooks.cxx291
-rw-r--r--scratch/sc-vba/vbaworkbooks.hxx48
-rw-r--r--scratch/sc-vba/vbaworksheet.cxx538
-rw-r--r--scratch/sc-vba/vbaworksheet.hxx82
-rw-r--r--scratch/sc-vba/vbaworksheets.cxx275
-rw-r--r--scratch/sc-vba/vbaworksheets.hxx51
-rw-r--r--scratch/sc-vba/vbawsfunction.cxx82
-rw-r--r--scratch/sc-vba/vbawsfunction.hxx36
-rw-r--r--src/.cvsignore11
-rw-r--r--src/Makefile.am32
-rw-r--r--src/README1
-rw-r--r--src/evolocal.odbbin3759 -> 0 bytes
-rw-r--r--src/file-bug-16.pngbin502 -> 0 bytes
-rw-r--r--src/file-bug-24.pngbin859 -> 0 bytes
-rwxr-xr-xsrc/glib-1.2.10-ooo.patch104
-rwxr-xr-xsrc/libIDL-0.6.8-ooo.patch25
-rw-r--r--src/novell-team.pngbin392698 -> 0 bytes
-rw-r--r--src/novell-team.xcfbin3815126 -> 0 bytes
-rw-r--r--src/openabout_ark.pngbin41013 -> 0 bytes
-rw-r--r--src/openabout_dropline-gnome.pngbin17483 -> 0 bytes
-rw-r--r--src/openabout_fw.pngbin34084 -> 0 bytes
-rw-r--r--src/openabout_fw64.pngbin31716 -> 0 bytes
-rw-r--r--src/openabout_kde.pngbin23576 -> 0 bytes
-rw-r--r--src/openabout_mandriva.pngbin52568 -> 0 bytes
-rw-r--r--src/openabout_nld.bmpbin118614 -> 0 bytes
-rw-r--r--src/openabout_pld.pngbin35827 -> 0 bytes
-rw-r--r--src/openabout_qilinux.pngbin25700 -> 0 bytes
-rw-r--r--src/openabout_redhat.pngbin21438 -> 0 bytes
-rw-r--r--src/openabout_suse.pngbin30142 -> 0 bytes
-rw-r--r--src/openabout_translateorgza.pngbin18716 -> 0 bytes
-rw-r--r--src/openintro_ark.bmpbin358854 -> 0 bytes
-rw-r--r--src/openintro_dropline-gnome.bmpbin274302 -> 0 bytes
-rw-r--r--src/openintro_fw.bmpbin377574 -> 0 bytes
-rw-r--r--src/openintro_fw64.bmpbin377574 -> 0 bytes
-rw-r--r--src/openintro_gentoo.bmpbin377574 -> 0 bytes
-rw-r--r--src/openintro_kde.bmpbin396054 -> 0 bytes
-rw-r--r--src/openintro_mandriva.bmpbin396054 -> 0 bytes
-rw-r--r--src/openintro_nld.bmpbin394734 -> 0 bytes
-rw-r--r--src/openintro_pld.bmpbin377574 -> 0 bytes
-rw-r--r--src/openintro_qilinux.bmpbin396054 -> 0 bytes
-rw-r--r--src/openintro_redhat.bmpbin396054 -> 0 bytes
-rw-r--r--src/openintro_suse.bmpbin394734 -> 0 bytes
-rw-r--r--src/openintro_translateorgza.bmpbin378720 -> 0 bytes
-rw-r--r--stamp/.cvsignore3
-rw-r--r--stamp/Makefile.am9
-rw-r--r--stamp/README1
-rw-r--r--test/Lwp/a.lwpbin13512 -> 0 bytes
-rw-r--r--test/Lwp/a.txt1
-rw-r--r--test/Lwp/abcd.lwpbin13544 -> 0 bytes
-rw-r--r--test/Lwp/abcd.txt1
-rw-r--r--test/Lwp/austin.lwpbin209884 -> 0 bytes
-rw-r--r--test/Lwp/austin.pngbin85651 -> 0 bytes
-rw-r--r--test/Lwp/austin.sam5069
-rw-r--r--test/Lwp/austin.txt1979
-rw-r--r--test/Lwp/bento.c342
-rw-r--r--test/Lwp/bold.lwpbin13552 -> 0 bytes
-rw-r--r--test/Lwp/bold.txt1
-rw-r--r--test/Lwp/empty.lwpbin13496 -> 0 bytes
-rw-r--r--test/Lwp/helloworl.lwpbin13572 -> 0 bytes
-rw-r--r--test/Lwp/helloworl.txt1
-rw-r--r--test/Lwp/helloworld.lwpbin13568 -> 0 bytes
-rw-r--r--test/Lwp/helloworld.txt1
-rw-r--r--test/Lwp/italics.lwpbin13556 -> 0 bytes
-rw-r--r--test/Lwp/italics.txt1
-rw-r--r--test/Lwp/lotusWordPro.lwpbin15140 -> 0 bytes
-rw-r--r--test/Lwp/lotusWordPro.txt6
-rw-r--r--test/Lwp/lwp.c238
-rw-r--r--test/Lwp/lwp1.lwpbin13612 -> 0 bytes
-rw-r--r--test/Lwp/lwp1.txt1
-rw-r--r--test/Lwp/lwp2.c84
-rwxr-xr-xtest/calc/macros.xlsbin36352 -> 0 bytes
-rwxr-xr-xtest/calc/problems.xlsbin18944 -> 0 bytes
-rwxr-xr-xtest/draw/alltransitions.odpbin18663 -> 0 bytes
-rwxr-xr-xtest/draw/bullet-chars.pptbin12288 -> 0 bytes
-rwxr-xr-xtest/draw/bullets.pptbin23552 -> 0 bytes
-rw-r--r--test/draw/fill.odpbin113890 -> 0 bytes
-rw-r--r--test/draw/polygon-tests.sxdbin6503 -> 0 bytes
-rwxr-xr-xtest/lotus/TextAttr.123bin10436 -> 0 bytes
-rw-r--r--test/lotus/attribute-9.7.123bin3676 -> 0 bytes
-rw-r--r--test/lotus/lotus.c66
-rw-r--r--test/lotus/numbers.123bin4784 -> 0 bytes
-rw-r--r--test/lotus/test_sample.123bin4260 -> 0 bytes
-rw-r--r--test/lotus/testfile-123.123bin10072 -> 0 bytes
-rwxr-xr-xtest/lotus/testfile-me.123bin10572 -> 0 bytes
-rw-r--r--test/macro/MiscRangeTests.xlsbin80384 -> 0 bytes
-rw-r--r--test/macro/PasteSpecialTest.odsbin9025 -> 0 bytes
-rw-r--r--test/macro/SimpleXlCellTypeConstDemo.xlsbin20992 -> 0 bytes
-rwxr-xr-xtest/macro/clock chart.xlsbin43520 -> 0 bytes
-rw-r--r--test/macro/hypocycloid-demo.xlsbin143360 -> 0 bytes
-rw-r--r--test/macro/interaction.odsbin22670 -> 0 bytes
-rw-r--r--test/macro/interaction.xlsbin96256 -> 0 bytes
-rwxr-xr-xtest/macro/macrobook.xlsbin257536 -> 0 bytes
-rw-r--r--test/macro/simpleanimationchart.xlsbin50176 -> 0 bytes
-rw-r--r--test/macro/somecontrolsinteraction.xlsbin90112 -> 0 bytes
-rw-r--r--test/macro/vbarangetest.odsbin15993 -> 0 bytes
-rw-r--r--test/macro/vbasheettest.odsbin11206 -> 0 bytes
-rw-r--r--test/macro/vbatest.odsbin8214 -> 0 bytes
-rw-r--r--test/macro/vbatest.xlsbin33280 -> 0 bytes
-rwxr-xr-xtest/macro/worm.xlsbin46592 -> 0 bytes
-rw-r--r--test/qpro/ALIGNMEN.WB2bin4646 -> 0 bytes
-rw-r--r--test/qpro/FON.WB2bin11097 -> 0 bytes
-rw-r--r--test/qpro/STRING.WB2bin16828 -> 0 bytes
-rwxr-xr-xtest/qpro/blank.wb2bin4053 -> 0 bytes
-rwxr-xr-xtest/qpro/complex-a.pngbin46981 -> 0 bytes
-rwxr-xr-xtest/qpro/complex-a.xlsbin2667 -> 0 bytes
-rwxr-xr-xtest/qpro/complex-b.pngbin35403 -> 0 bytes
-rwxr-xr-xtest/qpro/complex-b.xlsbin2470 -> 0 bytes
-rwxr-xr-xtest/qpro/complex.wb2bin7290 -> 0 bytes
-rw-r--r--test/qpro/formula.wb2bin7158 -> 0 bytes
-rw-r--r--test/qpro/formulat.wb2bin19954 -> 0 bytes
-rw-r--r--test/qpro/functions.wb2bin8862 -> 0 bytes
-rwxr-xr-xtest/qpro/simple.wb2bin4356 -> 0 bytes
-rw-r--r--test/writer/bullet-test.odtbin7580 -> 0 bytes
-rw-r--r--test/writer/enumerate.sxwbin10680 -> 0 bytes
1194 files changed, 0 insertions, 324319 deletions
diff --git a/.cvsignore b/.cvsignore
deleted file mode 100644
index 04c0c22db..000000000
--- a/.cvsignore
+++ /dev/null
@@ -1,28 +0,0 @@
-ABOUT-NLS
-INSTALL
-Makefile
-Makefile.in
-aclocal.m4
-autom4te*
-build
-config.guess
-config.log
-config.rpath
-config.status
-config.sub
-configure
-depcomp
-download
-install-sh
-intltool-extract
-intltool-extract.in
-intltool-merge
-intltool-merge.in
-intltool-update
-intltool-update.in
-ltmain.sh
-m4
-missing
-mkinstalldirs
-ooo-build-*.tar.gz
-ooo1.1.spec
diff --git a/AUTHORS b/AUTHORS
deleted file mode 100644
index 5d2fed48b..000000000
--- a/AUTHORS
+++ /dev/null
@@ -1,13 +0,0 @@
-Michael Meeks <michael@ximian.com>
-Chris Halls <halls@debian.org>
-Federico Mena <federico@ximian.com>
-Martin Kretzschmar <martink@ximian.com>
-Dan Williams <dcbw@redhat.com>
-Rene Engelhard <rene@debian.org>
-
-Josh Triplett <josh.trip@verizon.net>
-
-=== Artists ===
-
-Tigert <tigert@ximian.com>
-Jimmac <jimmac@ximian.com>
diff --git a/HACKING b/HACKING
deleted file mode 100644
index 722266980..000000000
--- a/HACKING
+++ /dev/null
@@ -1,8 +0,0 @@
-Please do not commit patches here, unless you have signed the JCA:
-
- http://www.openoffice.org/FAQs/faq-licensing.html#usinglicenses
-
-and intend to contribute the code to the OO.o mainline.
-
-These patches are merely in a holding / re-factoring pattern
-before they can be merged into OO.o.
diff --git a/MAINTAINERS b/MAINTAINERS
deleted file mode 100644
index 7393b7d84..000000000
--- a/MAINTAINERS
+++ /dev/null
@@ -1,2 +0,0 @@
-michael.meeks@novell.com
-halls@debian.org
diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644
index 3af46a378..000000000
--- a/Makefile.am
+++ /dev/null
@@ -1,31 +0,0 @@
-# if BONOBO
-# MAYBE_BONOBO = bonobo
-# endif
-
-SUBDIRS = po desktop distro-configs bin patches man doc fonts stamp src www # $(MAYBE_BONOBO)
-
-include $(top_srcdir)/Makefile.shared
-
-EXTRA_DIST = \
- emacs.el \
- MAINTAINERS \
- HACKING \
- download.in \
- Makefile.shared \
- intltool-merge.in \
- intltool-update.in \
- intltool-extract.in \
- ChangeLog-to-1.3.0 \
- ChangeLog-to-1.9.0 \
- ChangeLog-to-2.0.0
-
-ACLOCAL_AMFLAGS = -I m4
-
-clean-local:
- test -z "$(OOBUILDDIR)" || rm -rf $(OOBUILDDIR)
- for icons in $(OOO_ICONS_VERS) ; do \
- test "$(BUILDDIR)/$$icons" = "/" || rm -rf "$(BUILDDIR)/$$icons" ; \
- done
-
-maintainer-clean-local:
- test -z "$(BUILDDIR)" || rm -rf $(BUILDDIR)
diff --git a/NEWS b/NEWS
deleted file mode 100644
index f41d9daa0..000000000
--- a/NEWS
+++ /dev/null
@@ -1,1712 +0,0 @@
-ooo-build-src680.148.0
-
- + features:
- + target m148
- + support for DejaVu fonts (David)
- + support for hyper-complex text rendering with graphite enabled fonts
- (Michael)
- + translate.org.za branding (David)
- + lots improvements and fixes in the VBA stuff (Noel)
- + optimization / speedup (Michael):
- + lots improvements in the patch for binutils
- + splash speedup
- + quickstart improvements
- + bug fixes:
- + fixed undefined usage of pointers (Petr)
- + added missing glipth for default bullet (Radek)
- + build bits:
- + lots fixes for Win32 (Tor)
- + more 64bit fixes (Jan)
- + more fixes for gcc41 (Petr)
- + some Cairo improvements (Radek)
- + build with gcc-3.3 fix (Michael)
- + build with system mdbtools fix (Martin)
- + build with external stlport fix (Martin, Thorsten, Hanno)
- + build with system mozilla fix (Petr)
- + build with XULRunner allowed (Petr)
- + KDE only build fix (Michael)
- + fixed build of extra galleries (Giuseppe)
- + fixed stripping (Giuseppe)
- + use gcj for 64bit build (Jan)
- + updated Debian, Mandriva, PLD, Ubuntu bits (Rene, Giuseppe,
- Arkadiusz, Martin)
-
-ooo-build-src680.145.0
-
- + features:
- + target m145
- + lots improvements and fixes in the VBA stuff (Noel)
- + bug fixes:
- + icons theme status storing (Jan)
- + switching back from HighContrast icon theme (Jan)
- + series sum fix in Calc (Muthu)
- + return value of empty cell (Muthu)
- + disabled debug messages from myspell (Michael)
- + build bits:
- + bin support for obsolete milestones (Jan)
- + new --with-system-xrender-headers configure switch (Radek)
- + crystal icons are always necessary now (Jan)
- + a fix for java 1.5 (Dwayne)
- + some fixes for gcj (Hanno, Bernhard)
- + some fixes for sparc (Rene)
- + some fixes for Win32 (Tor)
- + fixed stripping (Jan)
- + updated the 64bit patches (Jan)
- + updated patches for gcc-4.1 (Petr)
- + updated Frugalware, Gentoo, Novell bits (Miklos, Andreas, Michael)
-
-ooo-build-src860.143.0
-
- + features:
- + target m143
- + bug fixes:
- + lots improvements in the VBA stuff (Noel)
- + some fixes for R1C1 address support in Spreadsheet (Jody)
- + build bits:
- + build with system mdbtools (Hanno, Michael)
- + build with system agg (Hanno, Rene)
- + build with no-distro selected (Noel)
- + build against newer OpenLDAPs (Rene)
- + hack to build >=m142 with mono enabled (Petr)
- + updated patches for gcc-4.1, added patches for binfilter (Petr)
- + updated patches for system icu (Rene)
- + updated configure.in header for new autoconf stuff (Petr)
- + updated patches for 64-bit support (Jan)
- + updated patches for icon switching (Jan)
- + installation of mailmerge.py with system Python (Rene)
- + sdk_oo.tar.bz2 unpacking (Martin)
- + updated Ark, Debian, Gentoo, Novell bits (Bernhard, Rene, Andreas,
- Petr)
-
-ooo-build-src860.140.1
-
- + features:
- + R1C1 address support for Spreadsheet (Jody)
- + initial support for Dropline GNOME (Sasa)
- + build bits:
- + some Win32 related fixes (David)
- + various build fixes (David,Petr,Michael,Jody,Bernhard)
-
-ooo-build-src860.140.0
-
- + features:
- + target m139,m140
- + improved built-in quick-starter applet / systray thing (Michael)
- + lots VBA fixes (Noel)
- + optimization / speedup (Michael):
- + save 3Mb of (shared) memory for non-Asian locales
- + pagein *.rdb & ui libs
- + -Bdirect support
- + ooffice wrapper squeeze
- + bug fixes:
- + lots 64-bit fixes (Jan)
- + resize toolbox according to the selected theme (Jan)
- + print-related dispatch API (Noel)
- + accuracy of ERF/ERFC for large x value improvement (Jody)
- + build fixes:
- + variaous build fixes (Martin, Jan, Bernhard, David, Petr, Chris)
- + support to accelerate the 1st build (Michael)
- + lots Win32 related fixes (Tor)
- + lots gcj related fixes (Bernhard)
- + moved about 40MB from core source tarball (Michael)
- + updated Ark, Debian bits (Bernhard, Rene)
- + pending
-
-ooo-build-src860.137.0
-
- + features:
- + target m136,m137
- + initial support for distributions Frugalware, QiLinux (Miklos, Silvan)
- + cairo updated to version 1.0.2 (Radek)
- + Word and Excel filters save the VT_CF thumbnail property (Federico)
- + optimization / speedup (Michael):
- + UI config startup speedup
- + config mgr acceleration
- + strip more aggressively
- + speed up 2nd start
- + save 1.7Mb of (shared) memory for non-Asian locales
- + bug fixes:
- + lots 64-bit fixes (Jan)
- + lots VBA fixes (Noel)
- + prioritize Hebrew culmus fonts (Martin)
- + obsolete oohtml wrapper symlink (Andreas)
- + missing Tilde & back-tick keys (Michael)
- + ctrl-back-tick toggle formula view (Muthu)
- + 'Use hardware acceleration' check box moved to the right column (Jan)
- + 'Document converter' basic error (Noel)
- + desktop files moved to /usr/share/applications (Andreas)
- + more fixes in the support for pyuno on x86_64 (Petr)
- + LD_LIBRARY_PATH problems (Jan, Petr)
- + Evo and columnNames selection (Jayant)
- + set the toolbox height according to the icon theme (Jan)
- + build fixes:
- + more parallel build of ooo680-m* (Jan, Caolan)
- + lots Win32 build fixes (David, Michael)
- + build with --disable-openldap fix (Andreas)
- + build with --without-java fixes (Andreas)
- + libwpd / srcdir (Andreas)
- + stlport / ppc (Andreas)
- + sysui / buildeps (Michael)
- + some more cleanup for 2.0.0 (David, Michael, Petr)
- + more 64-bit patches splitting (Jan)
- + installation without en-US (Petr)
- + various smaller fixes (Rene, Fridrich, Michael, Jan)
- + updated Debian, Gentoo, Mandriva, Novell bits (Rene, Andreas,
- Giuseppe, Petr, Michael)
- + pending
- + quickstarter applet (Raul)
-
-ooo-build-2.0.rc2
-
- + features:
- + ooo680-m* support (Jan, Arkadiusz, Rene)
- + bug fixes:
- + parallel build of ooo680-m* (Jan, Caolan)
- + fixed crash on load of .doc (Michael)
-
-ooo-build-1.9.129
-
- + bug fixes:
- + drawing with cairo-1.0.0 fix (Radek)
- + ooconfig fixes and improvements (Raul)
- + man page update (Petr)
- + crash with GTK+ fpicker fix (Michael)
- + crash when inserting slides fix (Radek)
- + check buttons rendering problems (Raul)
- + spin-button event timeout problems (Michael)
- + lots 64-bit fixes (Jan,Jayant)
- + Hebrew font setting (Rene)
- + user config dir name (Rene)
- + undefined token pool states in QPro stuff (Shilpa)
- + 'backspace' deletes slides like 'delete' in slide sorter (Michael)
- + really set file type by extension in GTK+ fpicker (Raul)
- + turn on impress ruler by default (Michael)
- + run crash report only when it is built (Petr)
- + build bits:
- + support for system icu (Rene, Jan)
- + support for more dictionaries (Giuseppe)
- + some duplicities in file lists (Petr)
- + some fixes in configure (Petr)
- + start Xvfb with -ac when building galleries (Giuseppe)
- + do not copy system stdlibs (Jan)
- + make reversing patches more robust (Jan)
- + allow to download sources from mirrors (Michael Leibowitz)
- + fixed mono installation (Petr)
- + updated Debian, Mandriva, Ubuntu bits (Rene,Giuseppe)
- + new --enable-dbgutil configure switch to help with debugging (Michael)
- + features:
- + target m127,m128,m129
- + updated KDE Address Book integration (Jan)
- + VBA form control event handling and more features (Noel)
- + pending:
- + control name import error (Noel)
-
-ooo-build-1.9.125.1
-
- + bug fixes:
- + VBA crash with resize property (Shilpa)
- + set file type by extension in GTK+ fpicker (Raul)
- + avoid version in Hunspell service name (Rene)
- + ooo-wrapper fixes:
- + hack to avoid heinous GTK+ brokenness (Caolan,Michael)
- + hack to create some dirs and files with secure permissions (Petr)
- + build fixes:
- + more mono configure checks fixes (Petr)
- + updated Debian, Novell bits (Rene, Michael)
- + features
- + initial port to m126 (Bernhard)
- + initial Gentoo support (Andreas)
- + simple utility ooconfig to easy change some setting (Raul,Michael)
- + updated KDE Address Book integration (Bernhard)
- + updated internal cairo to 1.0.0 (Radek)
-
-ooo-build-1.9.125
-
- + bug fixes
- + backported lots fixes approved for 2.0.1 (Michael)
- + case sensitive autoword completion (Jayant)
- + proper ms access tab page for creating msaccess db (Nicel)
- + crash in evo2, fix for new API (Jayant)
- + insensitive menu items (Shilpa)
- + file locking on NFS (Michael)
- + bullets exported to MS (Raul)
- + crash administering printers without (parsable) PPDs (Michael)
- + default file type by export to PDF in GTK file picker (Michael)
- + textdoc.desktop support for text/rtf mime (Hanno,Petr)
- + mailmerge.py error with UTF-8 (Caolan)
- + VBA stuff fixes (Shilpa)
- + GNOME desktop integration fixes (Raul)
- + bin obsolete --icons-set ooo-wrapper's option (Jan)
- + allow grouping of the items under Templates and Document (Shilpa)
- + build fixes:
- + internal cairo-0.9.0 installation fix (Rene)
- + some powerpc build related fixes (Rene)
- + m125 build error with gcj fix (Bernhard)
- + build of KDE Address Book integration fix (Bernhard,Jan)
- + some configure checks fixes (Suka,Petr)
- + enable mono by default when mono >= 1.1.8 is available (Petr)
- + new script to update PYTHONPATH on x86_64 (Petr)
- + renew --with-srcdir configure option (Petr)
- + bin unused --with-src configure option (Petr)
- + updated Debian,Novell bits (Rene,Michael)
- + features
- + target m125 (Rene, Bernhard, Petr)
- + updated KDE Address Book integration (Bernhard)
- + updated internal cairo to 0.9.2 (Radek)
- + pending
- + artificial bold & italic (Noel)
-
-ooo-build-1.9.124
-
- + bug fixes
- + allow to disable the VBA feature at runtime (Noel)
- + some fixes of the cairo canvas stuff (Radek)
- + default option in the templates and documents dialog (Shilpa)
- + warning about usage of an undefined variable in install-dict (Petr)
- + unnecessary error messages from hunspell (Petr)
- + build fixes:
- + add support for system mdbtools (Rene)
- + fix build with system cairo (Arkadiusz, Rene)
- + add possibility to turn off strip (Petr)
- + allow to use ARCH_FLAGS when building partaudio (Petr)
- + enable mdbtools based Access base backend by default (Michael)
- + enable VBA stuff by default (Noel)
- + updated Debian, Novell bits (Rene, Michael)
- + features
- + target m124 (Bernhard)
- + new 'save as rendered' option while exporting to .csv (Muthu)
- + KDE Address Book integration (Ark only now) (Bernhard)
-
-ooo-build-1.9.123
-
- + build bits
- + fixed malformed hsqldb-gcj patch for m122 (Petr)
- + features
- + target m123
-
-ooo-build-1.9.122
-
- + bug fixes
- + lots vba compatibility fixes and improvements (Shilpa, Jayant, Noel)
- + some updates in cairo canvas stuff (Radek)
- + GNOME desktop integration (Raul)
- + Print PreviewPage option in Writer
- + usage of 'Use OOo dialogs' setting
- + build bits
- + support for system hsqldb (Rene)
- + Xinerama/Xrender linkage (Rene)
- + compile mdbtools with -fPIC (Raul)
- + create/check stamps for merged extra translations (Petr)
- + updated Debian bits (Rene)
- + updated Novell bits (Petr)
- + features
- + target m122
- + support for Hunspell (Petr)
- + initial support for Ubuntu distro (Rene)
-
-ooo-build-1.9.121.1
-
- + bug fixes:
- + animations with sprites break fix (Radek)
- + build bits
- + fixed build of the VBA stuff (Jayant)
- + fixed build with --without-stlport4 on Linux/gcc 3.4.x (Bernhard)
- + fixed build with system stlport on Debian (Rene)
- + features
- + updated internal cairo to 0.6.0 (Radek)
-
-ooo-build-1.9.121
-
- + bug fixes
- + misc IDL comments fixes (Christian)
- + make csv/text import settings persistent (Muthu)
- + bash completion of filenames with spaces and directories (Rene)
- + build bits
- + fix for system db 4.3 (Rene)
- + bin all conditionals & support for milestones up to m118 (Michael)
- + conditional use of xsltproc at buildtime even with java (Rene)
- + updated Debian bits (Rene)
- + some more gcc4 related fixes (Petr)
- + features
- + target m120, m121
- + AA slide show cairo canvas (Radek)
- + vba compatibility (Michael, Noel, Jayant, Shilpa, Nicel)
- + GNOME desktop integration (Raul)
- + mdbtools based Access base backend (Nicel)
- + shrink myspell memory usage (Naren)
-
-ooo-build-1.9.118
-
- + bug fixes
- + corrected check boxes spacing (Raul)
- + build bits
- + build with -Os instead of -O2 on powerpc (Rene)
- + allow to build with a newer system ldap (Bernhard)
- + allow building with the system db 4.3.x (Bernhard)
- + features
- + target m118
- + allow to start formula with '+' or '-' (Muthu)
- + access vba api as uno component (Noel)
- + pending
- + AA slideshow / cairo/canvas work (Radek)
-
-ooo-build-1.9.116
-
- + build bits
- + installation without java fix (Jan)
- + testtools build with gcj (Bernhard)
- + updated Mandriva,Debian,SUSE bits (Guiseppe,Rene,Petr)
- + more 64-bit fixes (Jan)
- + support for system hsqldb (Rene)
- + initial support for system libnss (Petr)
- + more potentially dangerous warnings fixes (Petr)
- + m117 build with gcc-3.2 and gcc-3.3 fix (Petr)
- + features
- + target m116
- + new HiContrast icon theme (Jan)
- + mail merge email component (Rene)
- + pending
- + AA slideshow / cairo/canvas work (Radek)
-
-ooo-build-1.9.114
-
- + bug fixes
- + misc. 64bit fixes (Martin, Kendy)
- + gcj/Java fixes (Rene, Kendy)
- + bin imagemagick check (Rene)
- + better check for broken qt/gtk theme (Michael)
- + features
- + split localisation out (Michael, Martin)
- + startup speedups (Michael)
- + tinderbox scripts re-write (Michael)
- + updated Mandriva bits (Guiseppe)
- + pending
- + AA slideshow / cairo/canvas work (Radek)
-
-ooo-build-1.9.110
-
- + bug fixes
- + COLUMN and ROW functions return series for arrays fix (Jody)
- + more 64-bit fixes (Jan)
- + ergonomics of export in fpicker (Michael)
- + problems with hsqldb (Rene)
- + better fallback when some plugins are missing (Jan)
- + initialize fontconfig only once (Michael)
- + lots nasty leaks (Micheal)
- + symlink targets in install-dict (Petr)
- + possibility of insertion of rows instead of overwriting disabled
- again (Rene)
- + unused wizards removed (Michael)
- + build fixes
- + more gcc4 fixes (Petr)
- + better fix for system nspr (Petr)
- + more gcj and Debinan related fixes (Rene)
- + build with --with-lang=ALL
- + misc
- + use default system fpicker everywhere but not in Debian (Bernhard)
- + allow to specify more distros when apply patches (Jan)
- + features
- + target m109,m110,m111
- + icon theme switching (Jan)
- + initial Mandriva support (Giuseppe)
- + pending
- + AA slideshow / cairo/canvas work (Radek)
-
-ooo-build-1.9.108
-
- + bug fixes
- + lots mono fixes (Michael,Martin)
- + lots 64-bit fixes (Jan)
- + lots 64-bit and gcc4-related fixes (Martin)
- + resources handling in fpickers (Jan)
- + check if help is available (Rene)
- + build fixes
- + more gcc4-related fixes (Petr)
- + remove patch.apply stamp file when re-configure (Michael)
- + misc
- + lots Debian specific fixes (Rene)
- + new type selection expander for fpickers (Michael)
- + features
- + target m106, m107, m108
- + expression optimization in calc (Jody)
- + Quattro Pro 6.0 import filter enabled by default (Shilpa,Michael)
- + pending
- + icon switching (Jan)
-
-ooo-build-1.9.104
-
- + bug fixes
- + lots KDE vclplug fixes (Jan)
- + lots fpicker fixes (Michael, Jan, Robert)
- + lots Evo2 fixes to make it work out of box (Jayant)
- + lots of gcc4 build fixes (Petr)
- + lots mono fixes (Michael)
- + cut&paste in datapilot (Chethana)
- + crash in dbaccess (Jayant)
- + vba clear methods for range (Nicel)
- + vba compatibility (Michael)
- + address function in calc (Muthu)
- + filter detection for QPro 12.0 (Shilpa)
- + load crashers in impress (Martin)
- + macro assignment (Michael)
- + make dictionary.lst writable (Arkadiusz)
- + do not longer use bug-buddy (Michael)
- + build bits
- + new ooidlbuild tool (Michael)
- + stlport on ppc (Rene)
- + system nspr (Petr)
- + system python fix (Martin)
- + some installation fixes (Arkadiusz)
- + gcj- and java-related fixes (Rene)
- + odk/sdk build fixes (Rene)
- + sysui buildfix for new glibc (Rene)
- + do not mark PPD files as %config (Petr)
- + disable epm during build (Petr)
- + make dictionary.lst writable (Arkadiusz)
- + do not strip installed binaries (Michael)
- + misc
- + lots tests update (Nicel, Michael, Shilpa)
- + features
- + target m104, m102
- + new --with-openclipart configure switch (Petr)
- + crystal images, version 6 (Jan)
- + new info function in calc (Muthu)
- + experimental icon switching (Jan)
-
-ooo-build-1.9.100
- + bug fixes
- + linkoo / symlink re-writing (Michael)
- + lots of gcc4 build fixes (Petr)
- + indian font fixes (Petr)
- + data pilot crasher (Muthu)
- + pkgconfig fixes (Juerg Billeter, Nicel)
- + icon sizing cleanup (Jan)
- + compile/build fixes (Jan, Petr)
- + calc spaced out numbers (Muthu)
- + features
- + target m100, m99
- + simple lwp import (Nitin, Shilpa)
- + gengal - gallery generator (Petr, Michael)
- + pass configure args on (Michael)
-
-ooo-build-1.9.92
- + bug fixes
- + more compatible error values (Michael)
- + mono build fixed (Rene)
- + GCJ fixes (Rene, Michael)
- + system/build bits (Rene)
- + updated evo driver (Jayant)
- + fix UNO/gcc3 breakage (Michael)
- + Session Mgmt fix (Raul)
- + fpicker signal fix (Shreyas)
- + 'env' rename (Kendy)
- + features
- + target m92
- + ordinal type iteration (Muthu Subramanian)
- + filtering improvements (Muthu)
- + improved startup notification (Kendy)
- + gallery generation utility/script (Petr, Michael)
- + cws-commit-patch helper tool (Kendy)
- + pending
- + native a11y integration (Michael)
- + mono integration (MartinK)
-
-ooo-build-1.9.90
-
- + bug fixes
- + huge amounts of cleanup / re-instating of
- patches, cruft removal (Kendy, Michael)
- + font substitution fixes (Mike Fabian)
- + re-worked evo. pieces (Jayant)
- + features
- + impress/scroll-wheel ergonomics (Rajesh Sola)
- + pending
- + mono integration (MartinK)
-
-ooo-build-1.9.89
-
- + bug fixes
- + better zoom combo (Shreyas)
- + insert/note popup (Ashwini Chethana)
- + double graphics cache limits (Petr)
- + fix desktop/menus (Petr)
- + improved QPro bits (Shilpa)
- + print error warnings (Srini)
- + font cache updates (Jan)
- + cups threading issue (Michael)
- + calc/sheet rename (Mitul Patel)
- + excel/import crasher (Michael)
- + evolution/defaults (Jayant)
- + kde fpicker fixes (Jan)
- + build bits
- + ark splash etc. (Bero)
- + system-ldap work (Rene)
- + gcj patches (Rene)
- + binfilter unpack / build (Rene)
- + improve Qt detection (Jan)
- + re-work apply format, re-orgnanise build (Michael, Petr)
- + pending
- + lots of Mono work (Martin)
- + canvas demo code (Michael)
- + image / gallery packager (Michael)
- + features
- + update to m89/90 (Bernhard)
-
-ooo-build-1.9.79.2
-
- + bug fixes
- + many backported CWSs (Nicel, Rene, Michael)
- + top left toolbar handle (Martin)
- + linking with mozilla libs (Bernhard)
- + bash completion (Petr)
- + GNOME vfs (Caolan)
- + GTK fpicker:
- + constructor (Raul)
- + case insensitive patterns (Michael)
- + crash in Euro converter (Raul)
- + allow saving xml files (Srinivasa)
- + no send email dialog during crash recovery (Michael, Jayant)
- + canvas polyline (Michael)
- + do not show help button without related help (Michael)
- + better font resolving in KDE vclplug (Jan)
- + crash with double lock (Rene)
- + wrong condition (Michael)
- + Email attachement (Jayant)
- + show popup on print error (Srinivasa)
- + better window title (Raul,Michael)
- + remove non-fuctional starformats from save dialogs
- + wizards crash (Raul)
- + a crash in impress (Michael,Shreyas,Jayant)
- + better fonts for help (Petr)
- + build bits
- + preparing for m82 target (Bernhard)
- + install dictionaries from ooinstall (Petr)
- + build without dictionaries (Bernhard)
- + disable qadevOOo (Rene)
- + better check for system mozilla (Rene)
- + build with java (Rene)
- + allow to update default java CLASSPATH (Petr)
- + various bulid fixes (Michael)
- + documentation
- + HelpButton and help (Michael)
- + misc
- + NovellTeam easteregg (Michael,Shreyas)
- + new custom images, version 12
- + new crystal images, version 4
-
-ooo-build-1.9.79.1
-
- + bug fixes
- + huge amount of backported CWS (Michael)
- + various crash fixes (Michael, Raul)
- + wizard evo fix (Jaynt)
- + fpicker fixes (Raul, Kendy)
- + menu highlighting, check mark color, toolbar toggle buttons (Martin)
- + oofromtemplate fix to work (Michael)
- + more support for Oasis MIME types (Shreyas, Petr)
- + default multimedia menuitem out (Jayant)
- + unused printer properties out (Raul)
- + no larger default writer bullet (Raul)
- + email attachment (Jayant)
- + VFS authentication problems (Michael)
- + save only modified documents (Jayant)
- + build bits
- + build with C# named dirs, missing includes (Chris)
- + installation on Debian (Chris)
- + do not build odk (Michael)
- + more system libs for SUSE Linux (Petr)
- + do not pack standart libs (Rene, Petr)
- + KDE only build (Bernhard)
- + preparing for m80 target (Bernhard)
- + ooinstall install dictionaries (Petr)
- + documentation
- + changelog split (Michael)
- + back-porting related docu (Michael)
- + input methods (Martin)
- + misc
- + speed for reliability with valgrind (Michael)
- + tool to help extracting CWS (Michael)
- + features
- + upgrade libwpd, version 0.8.0 (Rene)
- + new custom images, version 11 (Michael)
-
-ooo-build-1.9.79
-
- + bug fixes
- + connection to evolution address book (Jayant)
- + install-dict keep valid user changes (Petr)
- + size of check-boxes and radio buttons (Jan,Michael)
- + gallery alpha problem (Michael)
- + crash on exit with Keramik theme (Jan)
- + speed up the startup of the KDE NWF a bit (Jan)
- + random .applications file install (Michael)
- + relative URLs (Michael)
- + various fpicker fixes (Raul)
- + build bits
- + linking with libnss3 on Ark fix (Bernharg)
- + installation with system Python fix (Jan)
- + installation of m79 fix (Petr)
- + documentation
- + mono (Martin)
- + new document about cwsresync (Jan)
- + new document about gconf
- + page to help tie down the bugs we care about (Michael)
- + misc
- + user config dir ~/.ooo-2.0-pre, NovellOnly now (Petr)
- + features
- + target m79 (Jan)
- + new SUSE branding (Michael,Petr)
- + zoom combo box (Shreyas)
- + GNOME VFS under KDE too (Michael)
-
-ooo-build-1.9.78.2
-
- + bug fixes
- + the gtk splash hint to the window remove (Michael)
- + GNOME fpicker (Raul)
- + easier selection
- + filter detection
- + fallback for crystall icons (Kendy)
- + use DESKTOP_LAUNCH in 'Send Document as E-mail' (Kendy)
- + fpicker hanging on accessible desktop (Caolan)
- + build bits
- + suffixed desktop files, icons (Petr)
- + build with GNOME 2.9.91 (Caolan,Petr)
- + Win32 build fixes (Raul)
- + allows to install more dictionaries (Petr)
- + recode documentation of dicts to UTF-8 (Petr)
- + sort basics path in diaconvert (Michael)
- + check for DESTDIR in installed files (Petr)
- + localizations updating from extra sources (Petr)
- + misc
- + updata mono documentation (Martin)
- + document "Send document as E-mail" feature (Shilpa)
- + section 'my first hack' update (Michael)
- + hackers guite update (Martin)
- + crystal icons update (Kendy)
- + features
- + initial PLD bits (Arkadiusz)
- + bash completion for OOo wrappers (Rene,Petr)
- + default writer bullet larger (Raul)
- + support for new Oasis MIME types (Sharyas)
- + new desktop file for oobase (Sharyas)
-
-ooo-build-1.9.78.1
-
- + build bits
- + fixed to build odk again (Petr)
- + optional GNOME files and file lists (Petr)
- + without java build fix (Jan)
- + win32 build fix (Raul)
- + misc
- + TOTEST update (Michael)
- + momo.txt update (Martin)
- + features
- + support for oobase (Michael)
-
-ooo-build-1.9.78
-
- + bug fixes
- + +/- keysyms fix (Michael)
- + make speed-status-bar more effective (Michael)
- + datapilo crash fix (Srinivasa)
- + insensitive toolbar icons looks far nicer (Raul)
- + make ESC to work in Calc print preview (Jayant)
- + web bullet export improving (Michael)
- + autotriming of autofilter choices fix (Srinivasa)
- + datapilot remote database crash fix (Srinivasa)
- + build bits
- + neon build fix (Michael)
- + python build fix (Michael)
- + new --with-internal-gcc configure switch (to use gcc-3.4.1) (Jan)
- + new script to convert dia shapes to draw XML (Michael)
- + win32 build fixes (Raul)
- + 64bit and --withou-java fix (Jan)
- + 64bit fixes (Bernhard,Jan)
- + do not barf if javadoc is missing (ArkOnly) (Bernhard)
- + disable-java fix (Bernhard)
- + spec template fix for rpm-4.4 (Bernhard)
- + new common.conf.in (Michael)
- + compilation with visibility-enabled gcc (Bernhard)
- + installation fix (Jan,Michael,Martin)
- + non-interactive build fix (Petr)
- + misc
- + update documentation (Michael,Martin,Raul)
- + linkoo recent file fix (Michael)
- + linkoo resources fix (Jan)
- + use BINSUFFIX in desktop file names
- + features
- + target m78 (Michael)
- + target m76 (Michael,Jan,Bernard)
- + search more localizations for system Mozilla (Petr)
- + GNOME-VFS support (Michael,Rene)
- + allow insertion of rows instead of overwriting (Srinivasa)
- + extra HTML export / navigation artwork (Michael,Bernhard)
- + new custom and Crystal images (Michael,Jan)
- + enable cups (Michael)
-
-ooo-build-1.9.74
-
- + bug fixes
- + QPro infinite loop fix (Shilpa)
- + RGB/BGR swap (Michael)
- + center icons when up-sizing (Michael)
- + fix gcc visibility support (Martin)
- + sfx2 code update (Michael)
- + excessive vertical toolbar bloat (Michael)
- + internal libcurl installation (Petr)
- + 64bit fixes (Jan, Bernhard)
- + build fixes
- + bin obsolete postinstall scripts (Michael)
- + gcc34 build fix (Michael)
- + some build fixes, mostly qt and gcc34 related (Bernhard)
- + desktop build fix (Michael)
- + new NOCONFIGURE check to autogen.sh
- + allow to install non-complete localizations (Petr)
- + fix support to install help (Petr)
- + better detect mozilla headers (Bernhard)
- + improved, converted openintro and openabout pictures (Michael)
- + support for distro specific configure options (Bernhard)
- + do not depend on evolution-data-servet at buildtime (Jaynt, Michael)
- + misc
- + sample quattropro files (Shilpa)
- + QPro detect code cleaning (Michael)
- + update documentation (Michael, Petr)
- + features
- + target m74 (Michael)
- + better versioning in Help->About dialog (Michael)
- + new KDE NWF toolbars and menus (Jan)
- + E-mail attachment file name append with "_1" (Jaynt)
-
-ooo-build-1.3.8
-
- + bug fixes
- + gtk+ bits
- + RTL rendering fix (Raul)
- + XIM fixes (Michael)
- + multi-file-select (Caolan)
- + vfs/uno registration (Dan)
- + menubar backgrounds fix (Dan)
- + build fixes
- + new distro config setup (Dan)
- + better language mappings (Rene, Dan)
- + .desktop install fixes (Dan)
- + rpath fixes (Dan)
- + use dmake 4.3 (Rene)
- + misc (Chris, Raul, Dan)
- + misc
- + splash window title fix (Dan)
- + calc column unhiding (Dan)
- + recent-files fixes (Dan)
- + font encoding fixes (Dan)
- + padmin i18n fix (Dan)
- + indic/bengali font/i18n work (Dan)
- + font substitution fixes (Dan)
- + xls interop fix (Dan)
- + misc. crashers (Dan)
- + dlopen right libGL (Rene)
- + fix basic/xinerama issues (Bero)
- + features
- + Send E-mail in MS format (Jayant)
- + ctrl/shift multi-select slides (Raul)
- + Quattro Pro 6 import filter (Shilpa)
- + gcc 3.4 support (Guiseppe, Hanno Meyer-Thurow, Bero)
- + target up-stream 1.1.4 (Bero, Shreyas)
- + Mandrake support (Guiseppe)
- + splash
- + PDF pseudo printers
- + italian fixes
-
-ooo-build-1.9.72
- + features
- + target m72 (Jan)
- + alpha and themable WM icons (Michael)
- + bug fixes
- + 64bit fixes (Jan)
- + ported some fixes for sc from OOo-1.1.3 (Ragavan)
- + QPro filter detection (Shilpa)
- + improved resmgr search (Jan)
- + java library paths in linkoo (Michael)
- + build
- + various build fixes, new --with-binsuffix configure switch (Chris)
- + support for lang subpackages, dictionaries (Petr)
- + improved documentation (Raul)
-
-ooo-build-1.9.70
- + features
- + improved icons (Jimmac)
- + target m70 (Michael)
- + no-java fixes (Chris)
- + patch forward-porting (Srini)
- + email as MS attachment
- + default optimal page wrap
- + calc / filter fixes
- + bug fixes
- + drop libart bits (Shreyas)
- + build fixes (Chris, Rene)
- + pending
- + 64bit build work (Kendy, Pavel)
- + QPro filter (Shilpa)
-
-ooo-build-1.9.65
- + cleaned older patches
- + improved documentation
- + bug fixes
- + usage of system mozilla fix
- + features
- + installation & appearance of multiple icon sets
-
-ooo-build-1.7.4
- + bug fixes
- + extract uncommitted Gnome fpicker cws (Shreyas)
- + splash fixed (Michael)
- + more gtk+/IM fixes (Michael)
- + fix vcl/menu layout nasties (Michael)
- + packaging / per-arch & build fixes (Petr)
- + features
- + remove crash reporting (Michael)
- + split / system mozilla nicely (Kendy)
-
-ooo-build-1.7.3
- + bug fixes
- + misc. build fixes
- + bin annoying startup / license wizard
- + features
- + use system libxml / zlib
- + target m65
-
-ooo-build-1.7.1-2
- + snapshots for package build testing.
-
-ooo-build-1.3.7
-
- + bug fixes
- + don't crash on calc row deletion (Chris)
- + updated psprint: lots of fixes (Chris)
- + kde fpicker list update fix (Lubos Lunak)
- + expanded .desktop mime-types (Rene)
- + vcl/libXt/Java interaction (Petr)
- + evo / connectivity fix (Jayant)
- + features
- + calc ctrl +/- to insert/delete lines (Jayant)
- + default to optimal page wrap (Jayant)
- + more reliable desktop detection (Kendy)
- + Debian uses more common patches (Rene)
- + DataPilot (Srini)
- + auto-format support
- + dynamic range alteration
- + gcc-3.4 support (Hanno Meyer-Thurow, Bero)
-
-ooo-build-1.7.0
-
- + features
- + move to base off milestone m62
- + forward ported / up-streamed most patches
- + lots of regressions
-
-ooo-build-1.3.6
-
- + bug fixes
- + i18n
- + Hebrew font fixes (Rene)
- + merge-cell translations (Petr)
- + Japanese font fixes (Petr)
- + Korean font fixes (Dan)
- + turkish currency update (Rene)
- + Win32 bits
- + .Net 2002 (Gabor Keresztfalvi)
- + Java build (Raul)
- + writerperfect Win32 build (Raul)
- + Misc
- + cell selection fixes (Nicel)
- + escape closes print preview (Jayant)
- + email attachment filenames (Jayant)
- + desktop debug build fix (Josh Triplett)
- + setup symlink fixes (Petr)
- + Unix Desktop
- + KDE fpicker (Jan)
- + don't freeze on double-click
- + confirmation for Save As
- + translation fixes
- + filter list fix
- + KDE NFW fixes (Jan)
- + gtk+ (Michael)
- + NWF fixes
- + IM mangling
- + Interop
- + word interop crasher (Caolan)
- + writerperfect import fix (Friedrich Strba)
- + Build
- + word count compilation fix (Dan)
- + improved RPM packaging (Dan)
- + updated pyuno docs (Martin)
- + MimeType fixes to .desktop files (Rene)
- + improve per-desktop icon code (Arkadiusz)
- + LD_ASSUME_KERNEL pain (Bernhard R)
- + misc. (Rene, Raul)
- + features
- + much improved calc filters (Srinivasa)
- + build with free .jars (Macro Pratesi)
- + build vs. 1.3.3 final (Martin K)
- + Linux/ARM support (Peter Naulls)
- + basic lotus 123 import (Aswanth, Sunil Gandhi)
- + evolution connectivity re-write (Jayant, Michael)
- + pending
- + Quattro Pro import (Shilpa, Michael)
-
-ooo-build-1.3.5
-
- + bug fixes
- + evo 2.0 connectivity re-hash (Michael, Jayant)
- + db query dialog vsize (Michael)
- + SQL query duplicate tables (Michael)
- + G/W send document as E-mail crasher workaround (Michael)
- + Win32/32bit screenshot save / load (Michael)
- + gtk+ vcl plug fixes (radio-buttons etc.) (Dan)
- + gnome fpicker fixes (Raul, Caolan)
- + style / template listboxes
- + link checkbox
- + versions combo
- + folder picker
- + KDE auto-extension fpicker fix (Jan)
- + vclplug tranparency back-port (Michael)
- + unlink config file on setup failure (Michael)
- + linkoo improvements (Michael)
- + arabic back-port to 1.1.2 (Dan)
- + Novell-ize help->support (Ashwanth)
- + sw checkbox field crasher (Caolan)
- + resource dir / wrapper fix (Arkadiusz)
- + build fixes (Dan, Martin, Petr)
- + features
- + sample files (Ashwanth)
- + more beefy .123 file
- + lwp files
- + build ODK without non-free docs (Rene)
- + improved dictionary install (Dan)
- + pending
- + lwp type detection (Ashwanth)
-
-ooo-build-1.3.4
-
- + bug fixes
- + annoying separate filter box to workaround
- gtkfilechooser SaveAs fugliness (Raul)
- + misc. evo integration issues (Jayant)
- + excel macro export reference fix (Ashwanth)
- + OnlyShowIn=Gnome for NLD .desktop files (Petr)
- + PLD resource fixes (Arkadiusz)
- + nasty slide transition fix (Michael)
- + D&D backport / fix (Michael)
- + UTF-8 .desktop coding fix (Kjartan)
- + features
- + ooffice --version (Michael)
-
-ooo-build-1.3.3
-
- + bug fixes
- + fix vicious crasher wpd/iodetect bug (Michael)
- + mime types in .desktop files ()
- + set encoding in .desktop files ()
- + fix fpicker extension bug (Raul)
- + simple oopadmin, oojvmsetup wrappers (Petr)
- + fix ruler scaling breakage (Michael)
- + don't alpha-sort database bits (Ashwanth)
- + fix Michael's bash-isms (Arkadiusz)
- + re-order gnome file-sel buttons & add default (Michael)
- + fontconfig font sub-setting fix (Nicel)
- + parallel make blacklist updates (Jan)
- + misc. gtk-plug back-ports / fixes (Michael)
- + nasty security bug fix (Michael)
- + .doc import crasher (Ashwanth)
- + impress spellcheck crasher (Christian)
- + features
- + allow user to kill MS interop warnings (Michael)
- + more verbose wrapper reporting (Arkadiusz)
- + improved wrapper desktop detection (Arkadiusz, Jan)
- + more VBA macro tests / fix (Luiz)
- + pending
- + back-port of .doc decryption (Michael)
-
-ooo-build-1.3.2
-
- + bug fixes
- + VFS URI mangling (Michael)
- + gnome file-sel bugs (Raul)
- + KDE file-sel 'cancel' crasher (Jan)
- + print-resolution fix (Petr)
- + features
- + OOO_FORCE_DESKTOP= (Tommy C. Li)
- + install more hyphen dicts (Petr)
-
-ooo-build-1.3.1
-
- + bug fixes
- + compile with cups enabled (Raul)
- + apostrophe autocompletion nasty (Ashwanth)
- + calc function precision problems (Mukund)
- + fix KDE cut/paste problems (Jan)
- + KDE missing icon fix (Jan)
- + Gnome bits
- + removed hard-coded VFS URI list (Shreyas)
- + gtk+ theme (re)fix (Martin)
- + fpicker filter selection (Raul)
- + fpicker crasher (Ashwanth)
- + Interop
- + .doc import crasher (Ashwanth)
- + fix unicode export to W95 (Caolan)
- + build fixes
- + parallel build cleans (Jan)
- + fix pipe / patch CRLF issues (David Fraser)
- + NAS/Win32 fix (Michael)
- + KDE fpicker fix (Jan)
- + icon remove problem (Jan)
- + features
- + CSV importer GUI re-work (Michael)
- + Wordperfect
- + importer merge (Michael, Will, wpd team)
- + file type auto-detection (Michael)
- + applied patch dir / tag separation (Jan)
- + VBA (Luiz)
- + bitshift operator
- + foreach functionality
- + make patch.unapply rule (Michael)
- + pending
- + full 1.1.3 support (Martin)
-
-ooo-build-1.3.0
-
- + bug fixes
- + interoperability
- + word import crash fix (Ashwanth)
- + MS symbol/bullet fixes (Michael)
- + improved help fallback (Petr)
- + fix 32bit alpha / screenshots on Win32 (Michael)
- + multilingual X extension fix (Dan)
- + progress bar speed-up (Michael)
- + cups printing fixes (Chris)
- + misc. build fixes (Petr, Dan, Martin, Ashwanth,
- Raul, Arkadiusz)
- + gcc i18n issue (Ernst Persson)
- + Win/Unix patch fixup (David Fraser)
- + sparc sal library build (Jim Watson)
- + features
- + Look & feel / desktop bits
- + Native-widget m47 back-port (Michael)
- + native gtk+ / Qt / WinXP theme rendering
- + gtk+ file chooser support (Raul)
- + kde file selector support (Jan)
- + re-touched icons (Jimmac)
- + multiple icon set build / switching (Petr)
- + desktop-launch for URIs (Jan, Michael)
- + interoperability
- + basic Lotus 123 importing (Ashwanth, Sunil Gandhi)
- + csv import with embedded newlines (Nicel, Michael)
- + misc
- + calc 'merge & center' toolbar button (Michael)
- + no document-modified on print by default (Petr)
- + evolution
- + multiple A/B sources (Srini)
- + A/B selection default (Jayant)
- + e-iterator breakage compat (Michael)
- + packaging bits:
- + Win32 lang-pack packaging (Michael)
- + smaller build footprint (Dan)
- + architecture targetting fixes (Dan, Michael)
- + compat / gcc3 build bits (Dan)
- + more languages (Jakub Bogusz)
- + help installer (Petr)
- + IBM jdk build fixes (Petr)
- + understand newer curls (Rene)
- + pending
- + 1.1.3 support (Martin, Rene)
- + embedded wordperfect filter (libwpd team / Michael)
- + partially complete ODMA support (Scott Clayton)
-
-ooo-build-1.1.61
-
- + bug fixes
- + print-fontconfig: fix build problem (Rene)
- + system-myspell / altlinux-hyphen fixes (Rene)
- + improve re-build dependencies (Michael)
- + font mapping fixes (Petr)
- + psprint packaging fixes (Petr)
- + StartupNotification in .deskopt files (Michael)
- + bump kde default font size (Petr)
- + fix KDE font size problem (Chris)
- + build fixes (Dan, Petr)
- + features
- + packaging features (Petr)
- + --with-docdir
- + install-dictionaries
- + install-dict links myspell dicts
- + wizard bitmaps: lang specific
- + parallel / native-widget work (Petr)
- + basic lotus 123 import (Ashwanth)
- + improved Evo2 A/B work (Jayant)
-
-ooo-build-1.1.60
-
- + bug fixes
- + updated evo. connector (Jayant)
- + win32
- + executable bit on dlls (Michael)
- + bump ac_prereq (Volker)
- + cut/paste alpha bug (Michael)
- + null device fix (Volker)
- + fix sub-make nastiness (Michael)
- + word export crash (Caolan)
- + ttc font parsing (Michael)
- + Neon security fixes (Petr)
- + font munging fixes (Petr)
- + misc. build (Rene, Jan, Michael, Petr)
- + features
- + OO.o 1.1.2 patch support (Rene, Michael)
- + improve font extraction (Rene)
- + disable misc. font bits (Rene)
- + lots of patch work (Rene)
- + much build goodness (Petr)
- + myspell dictionary install
- + --with-widgetsets
- + help packaging
- + help font configuration fix
- + better DESTDIR support
- + relocatable man-pages
- + build more localisations
- + more build debug (Ken Foskey)
- + native widget support
- + misc. gtk+ fixes (Dan)
- + KDE init updates (Jan)
- + pending
- + kde file selector support (Jan)
-
-
-ooo-build-1.1.59
-
- + bug fixes
- + download TAG snafu (Rafael)
- + system freetype fixes (Petr)
- + font fallback updates (Petr)
- + Kmail default mailer for KDE (Petr)
- + bin stamp checks (Michael, Bernhard)
-
-ooo-build-1.1.58
-
- + bug fixes
- + shell problems (Rafal Roszak)
- + blackdown jdk build fixes (Chris)
- + fix pam/libcrypt linkage bugs (Rene)
- + fix system-curl/nas build (Rene)
-
-ooo-build-1.1.57
-
- + bug fixes
- + fix daft bashisms (Arkadiusz)
-
-ooo-build-1.1.56
-
- + bug fixes
- + neon security fix (Rene, Dan)
- + word interop crasher fix backport (Ashwanth)
- + parallel build fixes (Dan, Arkadiusz)
- + word-count translations from Mdk (Martin)
- + S390 build fixes (Rene)
- + font fixes (Dan)
- + KDE font hight fix (Arkadiusz)
- + KDE NWF warning fix (Jan)
- + set HOME only if not set or empty (Arkadiusz)
- + scale-icons / ImageMagick fix (Rene)
- + relocate, apply - check for abs paths (Michael)
- + build work (Arkadiusz, Rene, Dan)
- + handle multiple distros splash artwork (Arkadiusz)
- + features
- + system XRender work (Rene)
- + string comparison speedup backport (Michael)
- + substantially 'make' driven build (Michael)
- + build lang file lists on package (Arkadiusz)
- + several hackers guide / web improvements (Michael, Utomo)
- + Alt-F11 opens VBA dialog (Michael)
- + pending
- + lotus 123 detection fixes (Michael, Ashwanth)
-
-ooo-build-1.1.55
-
- + bug fixes
- + CONFIGURE_OPTIONS from environment (Arkadiusz)
- + de-bashizing (Arkadiusz)
- + misc build fixes (Arkadiusz, Chris, Rene, Michael)
- + features
- + VBA (Michael)
- + attribute parsing
- + improved tests
- + more VBA than StarBasic compatible
- + KDE (Kendy)
- + helper program integration
- + splash / branding
- + Novell (Internal)
- + file-a-bug button
- + PLD Linux support (Arkadiusz Miskiewicz)
- + glibc compile fix
- + splash/branding
- + stlport 4.6.x compile
- + Ark Linux patches (Bernhard Rosenkraenzer)
- [ still underway ]
- + branding
-
-ooo-build-1.1.54
-
- + bug fixes
- + afm metric load fix (Chris)
- + psprint cups fix (Chris)
- + read VBA only once (Michael)
- + allow upgrade from 1.1.0 (Michael)
- + don't follow 'work' symlink on upgrade
- + linkoo relative path check (Michael, chriss)
- + fix norwegian translation reverse patching issue (Michael)
- + Win32 (Michael)
- + fix 'relocate'
- + don't try to symlink
- + set executable flag on copied dlls
- + extend disable-java coverage
- + add oowintool to help autoconfigure
- + ca translation updates (Jordi Mallach)
- + system/db misc. bits (Rene)
- + features
- + ooo-build specific versioning (Michael)
- + setup license agreement less painful (Michael)
- + use gnome-open for default handlers on RH (Dan)
- + add expanded VBA macro test-sheet.
- + big SuSE patch merge (pmladek, paveljanik, kendy)
- + SuSE distro / vendor support
- + SuSE splash/about
- + improve generic print resolution
- + use ARCH_FLAGS
- + fix translation/lang-map problems
- + improved font mappings
- + use system libstdc++
- + shrink exported html in some 8bit locales
- + translate some calc strings.
- + enlarged xlate-lang set
- + pending
- + evolution-data-server integration (Amit)
- + spellcheck speedup (Dan)
-
-ooo-build-1.1.53
-
- + bug fixes
- + internal zlib fix (Michael)
- + build fixage / cleanups (Chris)
- + word-count localisation (Dan)
- + neon security fix (Dan)
- + upgrade/path-re-write on relocate (Michael, Dan)
- + features
- + system-python usage (Martin)
- + Debian .fi translation tweak (Rene)
- + --with-icons=KDE icon set (Jan)
- + build conditionals cleanup (Dan, Rene)
- + better deliver-compare speedup (Michael)
- + Win32 build (Michael, Vivek, Amit)
- + MSVS.Net 2003 build fixes
- + berkeleydb build dmake'd
- + improved 'download' support
- + internal libart support
- + auto-unpack unicows/dbghelp
- + misc. source fixes for VC++ ( & Krishnan )
- + initial compiler auto-detection improvements
- + accelerated icon rendering
- + disable-java works on Win32
- + pending / experimental
- + native widget support backport (Jan)
-
-ooo-build-1.1.52
-
- + bug fixes
- + calm beep mania on certain frame-sets (Michael)
- + crash-bindings re-backport fix (Michael)
- + fix excel debugging for Unix (Michael)
- + recent-files FMR (Julian Seward)
- + BUILD_SPECIAL workarounds (Michael)
- + build less of icu (Rene)
- + build fixes (Dan, Michael, Vivek)
- + Escher / PPT
- + deep nesting crasher bug (Michael)
- + hang on exported PPT (Sven Jacobi)
- + wrapper upgrade cleanly (Michael, Chris)
-
- + features
- + target 1.1.1 (Rene, Chris, Michael)
- + --with-ccache-allowed (Jan Holesovsky)
- + save-as right-click on images (Martin)
- + use system packages (Rene)
- + neon
- + Xrender
- + ODBC
- + macros - Ximian-only [testing] (Michael)
- + import and execute large >64k macros
- + un-comment / execute macros by default
- + import / export Excel macro references
- + XL macro reference round-trip (Michael)
- + norwegian translation framework (Rene & Gaute)
-
- + pending / in-progress
- + VBA macro export (Michael)
- + initial Win32 support (Vivek, Michael)
- + package scaled icons separately
- + get tools to handle \r\n (Ravi Kiran)
- + back-ported CUPS support (Chris)
-
-ooo-build-1.1.51
-
- + bug fixes
- + calc (Michael)
- + complex number fixes
- + multinomial fix
- + excel I/O error mapping
- + singleton / implicit intersection fix
- + cursor movement fix (Amit)
- + font speedup / fixes (Michael)
- + gtk theming color issues (Dan)
- + default font / fontconfig sync fix (Dan)
- + recent files
- + NFS / flock lockup (Dan)
- + missing .recently-used case (Anil)
- + flash compile breakage (Michael, Rafel Roszak)
- + misc. build fixes (Chris, Rene)
- + features
- + 1.1.1 support (Rene)
- + large number of updated patches
- + build more langs: hebrew, hindi, thai
- + --enable-symbols switch (Dan)
- + new name-account mappings (Utomo, Michael)
- + improved parallel build support (Dan)
- + debug helper (Michael)
- + updated user faq (Carlos Alberto)
- + more / improved icons (Jimmac)
-
-
-ooo-build-1.1.50
-
- + bug fixes
- + recent-files problems / re-hash (Anil, Rene)
- + gtk+ theme color sync (Dan)
- + identify 111a version (Rene)
- + explicit LGPL/SISSL text (Michael)
- + check for zlib.h (Michael)
- + re-enable Java workarounds (Michael)
- + system curl problem (Rene)
- + GetCorrectPath [really] (Michael, PavelJanik)
- + distribute the right patches (Martin)
- + features
- + patch only with terminals (Michael)
- + share /usr/lib/ooo-1.1 on RH (Dan)
- + full 1.1.1a patch-set (Martin, Rene)
-
-ooo-build-1.1.49
-
- + bug fixes
- + recent-files portability/compile (Anil)
- + set_soenv.in: GetCorrectPath (Michael)
- + system spell problem (Rene)
- + features
- + quilt output from 'apply' (Martin)
- + more icons mapped (Michael)
- + partial 1.1.1a support (Martin)
-
-ooo-build-1.1.48
-
- + features
- + MS OLE <-> OO.o; big formula improvement (Michael)
- + allow --with-jdk-home (Dan)
- + ergonomic rename update (Michael)
- + recent-files dropped glib dep (Anil Bahtia)
- + tiny pagein speedup (Michael)
- + more hacker documentation (Michael)
- + RH specific
- + vendor splash (Dan)
- + Debian specific (Rene)
- + sensible browser
- + xinerama portability bits
- + use system bits (Rene)
- + NAS
- + use system DB [4.0, 4.1 etc.]
- + sane
- + curl
- + myspell
- + use mozilla not netscape (Rene)
- + use ~/Documents only if exists (Chris, Mdk)
- + OOO_RH_DEBUG env. var for RH debugging (Dan)
- + calc, show row sensitisation (Amit)
- + bug fixes
- + desktop file generation (Michael)
- + build with freetype 2.1.7 (Rene)
- + Linux/Sparc no-java builds (Chris)
- + hyperlink toolbar alpha (Michael)
- + bin ant check for no-java (Michael)
- + wizard/misc. build fixes for Java (Dan)
- + html export marking spelling errors (Martin)
- + don't source || exit 1; for RH 7.3 (Michael)
- + bindings crash fix update (Michael)
- + really distribute ld speedup patch (Michael)
- + X fonts if no fontconfig (Chris)
- + symbols/crash fix (Chris)
- + install-dict no-Twig, cleanups (Michael)
- + $(CC) for sparc assember (Chris)
- + stlport include (Rene)
-
-ooo-build-1.1.47
-
- + bug fixes
- + font mapping reversion (Michael)
- + valgrind clean back-port (Michael)
- + menu check-item fixes (Amit Shrivastava)
- + setup -nogui crasher fix (Dan)
- + RH - lang pack fixage (Dan)
- + KDE UI / scaling fixes (Chris)
- + build fixes (Dan)
- + desktop muddle up fix (Chris)
- + more build / vendor conditionals (Dan)
-
-ooo-build-1.1.46
-
- + features
- + UI fixes
- + much improved OpenSymbol font (Jimmac)
- + improved font mapping (Dan, Michael)
- + more style navigator icons (Tigert)
- + nicer looking ruler scaling (Michael)
- + don't grey bullets as fields (Michael)
- + prune some ugly symbols (Anil Bhatia)
- + System bits
- + 3 new targets: RHFedora, RHTaroon, RHShrike (Dan)
- + --with-installed-ooo-dirname (Dan)
- + system libdb integration (Dan)
- + faster help linkage (Dan)
- + OOO_FORCE_DESKTOP flag (Michael, Philipp L, Chris)
- + use OOO_MS_DEFAULTS env. var (Michael)
- + use fork for 2.6 kernels (Ken Foskey, Rene)
- + Red Hat specific patches (Dan, et. al)
- + nautilus/VFS integration bits
- + system neon fix
- + libart cut/paste for old systems
- + system freetype re-hash
- + bug fixes
- + critical
- + parallel / build script fixes (Dan)
- + svx lockup fix (Dan)
- + impress I/O error fix (Martin, Christian L)
- + help / language fallback issue (Chris)
- + misc
- + re-root - only scan CVS dirs (Michael)
- + missing MySQL data source fix (Rene)
- + uno asm fixes (Dan)
- + svtools build deps fix (Michael)
- + improved default font size (Chris)
-
-
-ooo-build-1.1.45
-
- + features
- + build without Java (Josh Triplett)
- + tweaks
- + improved rename ergonomics (Jayant Madavi)
- + set TYPE_UTILITY on utility windows (Michael)
- + KDE font size/integration improvements (Chris)
- + larger default font in non-Gnome/KDE WM (Chris)
- + optional dmake build (Rene)
- + conditionalized fontconfig use (Rene)
- + i18n honours LC_CTYPE (Michael)
- + alpha compositing speedups (Michael)
- + disable style-list popup on 1st run (Michael)
- + improved icon scaling helper (Martin K)
- + build infrastructure
- + improved patch descriptons (Michael, Martin)
- + simple CVS re-rooting tool (Michael)
- + deliver hard links to save space (Chris, Michael)
- + bug fixes
- + MS bullet export problems (Michael, Will Lachance)
- + fix running setup within a mount --bind tree (Chris)
- + evolution addressbook i18n fix (Martin K)
-
-
-ooo-build-1.1.44
-
- + features
- + new, sized, alpha fixed icons (Tigert, Jimmac)
- + scroll-wheel quickhelp less annoying (Michael)
- + system-zlib, system-getopt (from Mdk, Rene)
- + nice bonobo component (Martin Kretzchmar)
- + configure with --enable-bonobo
- + bug fixes
- + relocate now prunes stale .dpcc files (Michael)
- + problems in toolbox customize (Michael)
- + --with-system-gcc fix (Michael, Robin Cook)
- + print-scale fix (Dan Williams, Michael)
- + File->New i18n fix (Michael)
-
-ooo-build-1.1.43
-
- + features
- + more database etc. icons (Tigert, Jimmac)
- + drop the 1.1 bin-suffix
- + 'word count' translations (Martin, Gwenole B)
- + debian-specific splash (Rene)
- + binutils patch to speedup ld (Dirk Mueller, Michael)
- + bug fixes
- + lots of alpha problems fixed (Michael)
- + initialize some values (Julian Seward)
- + File->New/Autopilot menu i18n (Martin)
- + sparc linux build fixes (Chris)
- + bind mount setup fix (Chris)
- + use unzip not jar for building (Rene)
- + linkoo handles iso.res vs ooo.res (Michael)
- + fontconfig crasher bug (Michael)
- + fixes to mozilla disabling bits (Martin)
- + clobber irritating raise-on-load bits (Michael)
- + Debian specific
- + disable odk build [ non free stuff ] (Rene)
- + fontconfigize padmin (Chris)
- + use more Ximian patches in Debian builds (Chris)
-
-ooo-build-1.1.42
-
- + features
- + pull up to OO.o 1.1.0 final
- + loads more nice icons (Tigert, Jimmac)
- + slower & cleaner alpha rendering (Michael)
- + nicer toolbox item prelight (Michael)
- + bug fixes (Michael)
- + PDF export / font-subsetting
- + setup LD_LIBRARY_PATH problems (Anders)
- + 2nd time oddness with -writer flag
- + server render splash pixmap
- + use the right branded icon set
-
-ooo-build-1.1.40
-
- + features
- + switch to the RC4 tree (Michael)
- + more icons / better coverage (Jimmac)
- + bug fixes
- + LD_LIBRARY_PATH installer issue (Anders)
- + correct palette pop-down (Michael, Philipp L)
- + sensible coluor palette sizing (Michael)
- + system font sync fix (Michael)
- + updated magicpoint users help (Michael)
- + web fixes (Julian Seward)
- + translations (last few releases)
- + da (Kenneth Christiansen)
- + sr (Danilo Segan)
- + fr (Christophe Merlet)
- + ca (Jordi Mallach)
- + vi,wa (Pablo Saratxaga)
- + pl (Artur Flinta)
- + nl (Vincent van Adrighem)
- + cs (Miloslav Trmac)
- + pt (Duarte Loreto)
-
-ooo-build-1.1.39
-
- + features
- + switch to the RC3 tree (Michael)
- + bug fixes
- + font munging fixes (Michael)
- + wrapper cleans (Michael)
- + improved patching fuzziness (Michael)
- + more word count translations (Martin)
- + crashdump build fixes (Michael)
- + bin MS format default duplication (Michael)
-
-ooo-build-1.1.38
- + bug fixes
- + vicious bindings crasher (Michael)
- + export 'no color' bg to .doc (Chris)
- + source EOF massage (Chris)
- + build fixes (Michael, Martin)
- + features
- + elisp for OO.o source (Martin)
- + pending
- + improved gtk+ integration
- + layout prototype
-
-ooo-build-1.1.37
- + bug fixes
- + metric font mappings for XD2 fonts (Michael)
- + ccache fixes (Anders Carlsson)
- + word count fixes (Martin Kretzschmar)
- + crashdump strangeness (Michael)
- + misc. build fixes (Michael, Chris, Martin)
- + features
- + save 1.5Gb in lang-pack (Chris, Michael)
- + toolbox (Martin)
- + pretty zoom combo
- + death of URL combo
- + translated .desktop files (Carlos Perelló Marín)
- + de (Christian neumair)
- + da (Ole Laursen)
- + zh (Abel Cheung)
- + de (Martin)
- + no (Kjartan Maraas)
- + sv (Christian Rose)
- + sq (Laurent Dhima)
- + es (Carlos)
- + Man pages (Rene Engelhard)
- + beep far less (Michael)
- + build bits
- + conditionals/paths (Michael)
- + much improved patching (Chris)
- + --with-system-gcc (Michael)
- + disable broken moz bits (Michael)
- + linkoo improvements (Martin)
- + Gnome/gtk+ build fixage (Rene)
- + build less of gcc (Nick Hudson)
- + Debian patches merged (Chris, Rene, Martin)
- + config switch expansion, bin lzwc
- + drop rpaths, sal_debug, stlport dynlink
- + html fix, system python/aclocal
- + shrink perl wrapper (Michael)
- + obey LANG env.
- + obey 'COMPATIBLE' for MS export.
- + html export (Michael)
- + nicer icons (Jimmac)
- + export .png not .gif
- + pending (Michael)
- + glib/gtk+ loop integration
- + some layout bits.
-
-ooo-build-1.1.35
- + bug fixes
- + fix wrapper symlinkage / Makefile cruft.
- + default prefix to /usr
- + featurelets
- + oolink support for connectivity libraries
-
-ooo-build-1.1.34
- + bug fixes
- + fix configuration patches (system fonts etc.)
- + icon composite fixes
- + register Gnome VFS UCP properly
- + linkoo checks for abs. path (Martin Kretzschmar)
- + bin bogus .desktop user install
- + fix ~/Documents as default save loc.
- + print/error dialog fix
- + delete/backspace switch in calc.
-
- + features
- + Tools->Word Count in menus
- + cleanup unzip code (Martin, Michael)
- + add web/math/template icons (Martin / Jimmac)
- + build / user guide updates
- + more build cleans
- + menu / check rendering forward-port
-
-ooo-build-1.1.33
- + scale czech,portbr,slovak icons (Martin Kretzschmar)
- + switch to RC3_030729 snapshot.
- + add configure --enable-devel to specify target
- + misc. build fixes / cleans
-
-ooo-build-1.1.31
- + add --with-src for package builds
-
-ooo-build-1.1.30
- + import into gnome CVS.
- + re-hash build / re-arrange
diff --git a/README b/README
deleted file mode 100644
index 8cee632d9..000000000
--- a/README
+++ /dev/null
@@ -1,28 +0,0 @@
-OpenOffice.org build:
-
- This package contains Desktop integration work for
-OpenOffice.org, several back-ported features & speedups, and a much
-simplified build wrapper, making an OO.o build / install possible for
-the common man.[1]
-
- The latest version of this module can be obtained from
-anonymous CVS with these commands:
-
- export CVSROOT=':pserver:anonymous@anoncvs.gnome.org:/cvs/gnome'
- cvs login # no password
- cvs checkout ooo-build
-
- Packaged releases can be found from:
-
- http://go-oo.org/packages
-
- More documentation is in the www/ directory the latest version
-of which is available at http://go-oo.org/
-
- Finally, you can subscribe to the development mailing list at
-http://lists.ximian.com/mailman/listinfo/openoffice.
-
- Happy hacking.
-
-[1] - assuming the common man has 4Gb+ of spare space, and lots of
- idle CPU time.
diff --git a/autogen.sh b/autogen.sh
deleted file mode 100755
index c36d26d33..000000000
--- a/autogen.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-# Run this to generate all the initial makefiles, etc.
-
-if test "z$1" = "z--clean"; then
- echo "Cleaning"
-
- rm -Rf autom4te.cache bonobo/autom4te.cache
- rm -f missing install-sh mkinstalldirs libtool ltmain.sh
- rm -f bonobo/missing bonobo/install-sh bonobo/mkinstalldirs \
- bonobo/libtool bonobo/ltmain.sh
- exit 1;
-fi
-
-aclocal $ACLOCAL_FLAGS || exit 1;
-automake --gnu --add-missing --copy || exit 1;
-# intltoolize --copy --force --automake
-autoconf || exit 1;
-if test "x$NOCONFIGURE" = "x"; then
- ./configure "$@"
-else
- echo "Skipping configure process."
-fi
diff --git a/configure.in b/configure.in
deleted file mode 100644
index 0e90e52f1..000000000
--- a/configure.in
+++ /dev/null
@@ -1,870 +0,0 @@
-AC_INIT(ooo-build, src680.148.0)
-AC_PREREQ(2.51)
-AC_CONFIG_SRCDIR(bin/build-ooo)
-AC_PREFIX_DEFAULT(/usr)
-
-DEFAULT_TAG=src680-m148
-
-# The option tar-ustar is necessary because of some patches have too long
-# names so that they cannot be archived using the old V7 format
-# This option has been supported since automake 1.8b
-AM_INIT_AUTOMAKE([1.8b tar-ustar])
-
-OOO_BUILDVERSION=AC_PACKAGE_VERSION
-AC_SUBST(OOO_BUILDVERSION)
-
-PROPAGATED_ARGS=$ac_configure_args
-AC_SUBST(PROPAGATED_ARGS)
-
-AC_ARG_WITH(tag,
-[
- --with-tag define the tag to use, defaults to the latest
- release
-
- Example: --with-tag=src680-m145],
-,)
-
-AC_ARG_WITH(srcdir,
-[
- --with-srcdir define the directory where to download the source
- tarball and other extra sources.],
-,)
-
-AC_ARG_WITH(win32,
-[
- --with-win32 define the build to be on win32; this sets a number
- of defaults suitable for that platform.],
-,)
-
-AC_ARG_WITH(internal-gcc,
-[
- --with-internal-gcc build our own gcc (gcc-3.4.1 with enum and
- visibility patches).],
-,)
-
-AC_ARG_WITH(distro,
-[
- --with-distro build with a specific distributions patch-set
-
- Values are: NLD (the default), Debian, Ark, ...],
-,)
-
-AC_ARG_WITH(lang,
-[
- --with-lang define the localizations to build. The English one
- is built by default.
-
- Examples: --with-lang="en-US de fr it"
- --with-lang=ALL],
-,)
-
-AC_ARG_ENABLE(dbgutil,
-[ --enable-dbgutil: Include additional debugging utilities, such as
- assertions, object counting, etc. Larger build.
- (this generates a non-product build)
-],,)
-
-AC_ARG_ENABLE(mono,
-[ --enable-mono Enables the compilation of the Mono bindings
-],,)
-
-AC_ARG_ENABLE(graphite,
-[ --enable-graphite Enables hyper-complex text rendering with
- graphite enabled fonts.
-],,)
-
-AC_ARG_ENABLE(access,
-[ --disable-access Disable the Access import pieces.
-],,)
-
-AC_ARG_WITH(system-mdbtools,
-[
- --with-system-mdbtools Use system libmdb* for the Access base backend
-],,)
-
-AC_ARG_ENABLE(cairo,
-[
- --enable-cairo Enables cairo canvas backend.],
-,)
-
-AC_ARG_ENABLE(hunspell,
-[
- --enable-hunspell Enables Hunspell UNO component.],
-,)
-
-AC_ARG_WITH(system-hunspell,
-[
- --with-system-hunspell Use system libhunspell to build the Hunspell
- UNO component],
-,)
-
-AC_ARG_WITH(ooo-builddir,
-[
- --with-ooo-builddir define the directory where openoffice.org will be
- compiled, e.g. the root of an ooo cvs checkout.],
-,)
-
-AC_ARG_WITH(installed-ooo-dirname,
-[
- --with-installed-ooo-dirname
- specify the directory name of the core OOo network
- install dir, for example "openoffice" or "ooo-1.1",
- yielding a core install directory of
- /usr/lib/openoffice or /usr/lib/ooo-1.1.
-
- Example: --with-installed-ooo-dirname=ooo-1.1],
-,)
-
-AC_ARG_WITH(binsuffix,
-[
- --with-binsuffix
- specify the suffix to be used on the end of script
- names, to allow parallel installation of two versions.
-
- Default: --with-binsuffix=1.9],
-,)
-
-AC_ARG_WITH(docdir,
-[
- --with-docdir define the directory name where the extra
- documentation will be installed.
-
- Example: --with-docdir=/usr/share/doc/packages/OpenOffice.org],
-,)
-
-AC_ARG_WITH(vendor,
-[
- --with-vendor specify an overall Vendor name to simplify
- configuration and packaging when a vendor does the
- same thing for multiple Distributions],
-,)
-
-AC_ARG_WITH(num-cpus,
-[
- --with-num-cpus Number of build processes/cpus to use (number of
- projects that will build at the same time).
- Multi-process/multi-cpu builds can save a lot of time
- on multi-cpu machines.],
-,)
-
-AC_ARG_WITH(gcc-speedup,
-[
- --with-gcc-speedup Tool to use to speedup the compilation. Currently
- ccache (caching results of previous compilation) and
- icecream (distributed compiling tool) are supported.
- Both can be used at the same time.
-
- Example: --with-gcc-speedup=ccache,icecream],
-,)
-
-AC_ARG_WITH(icecream-max-jobs,
-[
- --with-icecream-max-jobs
- Maximum number of jobs that make will issue at
- the same time. Defaults to 10.],
-,)
-
-AC_ARG_WITH(icecream-bindir,
-[
- --with-icecream-bindir Location of icecream's gcc and g++.
- Defaults to /opt/icecream/bin.],
-,)
-
-AC_ARG_ENABLE(gtk,
-[
- --disable-gtk Disables gtk+ native widgets.],
-,)
-
-AC_ARG_ENABLE(kde,
-[
- --disable-kde Disables KDE native widgets.],
-,)
-
-AC_ARG_ENABLE(gcc33,
-[
- --enable-gcc33 Force use of gcc33/g++33 (ie, compat-gcc) on systems
- that use gcc 3.4 as the default compiler.],
-,)
-
-AC_ARG_ENABLE(strip,
-[
- --disable-strip
- Disables the stripping of installed binaries, so
- debugging symbols are not removed.],
-,)
-
-AC_ARG_ENABLE(post-install-scripts,
-[
- --disable-post-install-scripts
- Disables post install scripts within make install.
- It is usefull when creating a package from the
- installed files. The scripts are then run by
- the package after it is installed.],
-,)
-
-AC_ARG_WITH(arch,
-[
- --with-arch Define the architecture that we will target.
-
- Usage: --with-arch=(x86|ppc|sparc)],
-,)
-
-AC_ARG_WITH(openclipart,
-[
- --with-openclipart Build and install OOo galleries from the Open Clip Art
- Library. The parameter is either a version of the library
- or an absolute path to the prebuilt and preinstalled .png
- files.
-
- Example: --with-openclipart=0.13
- --with-openclipart=/usr/share/openclipart],
-,)
-
-AC_ARG_WITH(dejavu-fonts,
-[
- --with-dejavu-fonts Download and install DejaVu Fonts. The parameter is a version number.
-
- Example: --with-dejavu-fonts=2.1],
-,)
-
-dnl
-dnl Items here only to make --help work nicely:
-dnl
-AC_ARG_ENABLE(java,
-[
- --with-java build ooo with a Jdk & Java support],
-,)
-dnl
-dnl Mirror
-dnl
-AC_ARG_WITH(mirror,
-[
- --with-mirror Specify a mirror of the go-ooo.org packages directory.
-
- Example: --with-mirror=http://foo.bar.baz/mirror],
-,)
-
-AM_MAINTAINER_MODE
-
-dnl
-dnl Setup the misc. tweaks we need.
-dnl
-BASEDIR=`pwd`
-TOOLSDIR=$BASEDIR
-
-AC_PATH_PROG(PERL, perl)
-if test -z "PERL"; then
- AC_MSG_ERROR([perl not found; required for ooo-build])
-fi
-AC_SUBST(PERL)
-INTLTOOL_PERL=$PERL
-AC_SUBST(INTLTOOL_PERL)
-
-AC_PATH_PROG(PKG_CONFIG, pkg-config)
-if test ! -x "$PKG_CONFIG" ; then
- AC_MSG_ERROR([
-*** You need the latest pkg-config.
-*** Get the latest version of pkg-config from
-*** <http://www.freedesktop.org/software/pkgconfig/>.])
-fi
-AC_SUBST(PKG_CONFIG)
-
-PKG_CHECK_MODULES( FOO_COMMON,
- [ libxml-2.0 fontconfig >= 1.0.1 ],
- have_common=true, have_common=false )
-PKG_CHECK_MODULES( FOO_OPTIONAL,
- [ gtk+-2.0 libstartup-notification-1.0 ],
- have_optional=true, have_optional=false )
-
-# NB. according to:
-# http://sources.redhat.com/ml/bug-automake/2002/msg02066.html
-# it's a really bad idea to do conditional tests for things.
-#
-if test "z$with_win32" = "z" -a "z`uname -o`" = "zCygwin" ; then
- AC_MSG_WARN([On Cygwin, automatically using --with-win32])
- with_win32="yes"
-fi
-if test "z$with_win32" = "z"; then
- if test ! $have_common; then
- AC_MSG_ERROR([Library requirements were not met])
- fi
- BUILD_WIN32=
-else
- if test "z$with_distro" = "z"; then
- with_distro="Win32"
- fi
-
- BUILD_WIN32=yes
-fi
-
-AC_SUBST(BUILD_WIN32)
-
-if test "z$with_tag" = "z"; then
- with_tag=$DEFAULT_TAG
-fi
-
-if echo "$with_tag" | grep '^ooo680-' >/dev/null 2>/dev/null ; then
- APPLY_DIR="$TOOLSDIR/patches/OOO_2_0"
-else
- APPLY_DIR="$TOOLSDIR/patches/$with_tag"
-fi
-
-# search more dirs for the apply file
-# the default dir is defined by the selected tag
-# the alternatives are derived by removing a part (suffix) of the tag
-while test "$APPLY_DIR" != "$TOOLSDIR/patches/" ; do
- test -f $APPLY_DIR/apply && break
- APPLY_DIR=${APPLY_DIR%?}
-done
-test "$APPLY_DIR" = "$TOOLSDIR/patches/" && APPLY_DIR="$TOOLSDIR/patches"
-if test -f $APPLY_DIR/apply; then
- AC_MSG_RESULT([found $with_tag, using $APPLY_DIR/apply])
-else
- AC_MSG_ERROR([Can't locate patch set for: $with_tag])
-fi
-CVSTAG=$with_tag
-AC_SUBST(CVSTAG)
-AC_SUBST(APPLY_DIR)
-
-# FIXME: We currently do not support starting build with already unpackaged
-# sources, so the following warning is always printed
-warn_use_download=" ./download
-"
-AC_MSG_CHECKING( for directory where to download sources )
-if test "z$with_srcdir" = "z"; then
- SRCDIR=$BASEDIR/src
-elif (echo "${with_srcdir}" | grep -v -q "^/"); then
- AC_MSG_ERROR([--with-srcdir= must be an absolute path]);
-else
- SRCDIR=$with_srcdir
-fi
-AC_MSG_RESULT([$SRCDIR])
-
-BUILDDIR=$BASEDIR/build
-if test "z$with_ooo_builddir" = "z"; then
- OOBUILDDIR=$BUILDDIR/$CVSTAG
-else
- OOBUILDDIR=$with_ooo_builddir
-fi
-
-rm -f $BASEDIR/stamp/patch.apply
-
-AC_SUBST(SRCDIR)
-AC_SUBST(BUILDDIR)
-AC_SUBST(TOOLSDIR)
-AC_SUBST(OOBUILDDIR)
-
-if test "z$with_win32" != "z"; then
- AC_PATH_PROG(CABEXTRACT, cabextract)
- if test "!" -x "$CABEXTRACT" ; then
- AC_MSG_ERROR([
-*** The cabextract utility must be installed.])
- fi
-fi
-
-if test "z$with_distro" = "z"; then
- with_distro="NLD";
-fi
-DISTRO=$with_distro
-AC_SUBST(DISTRO)
-
-VENDORNAME=OpenOffice
-if test "z$with_vendor" != "z"; then
- VENDORNAME="$with_vendor"
-fi
-AC_SUBST(VENDORNAME)
-
-dnl
-dnl Debian specific hard-coded defaults.
-dnl
-
-dnl
-dnl Ark Linux specific hard-coded defaults.
-dnl
-if test "z$with_distro" = "zArk"; then
- if test "z$with_vendor" = "z"; then
- with_vendor="Ark Linux"
- fi
-fi
-
-if test "z$with_java" = "zno"; then
- AC_PATH_PROG(XSLTPROC, xsltproc, no)
- if test "$XSLTPROC" = "no"; then
- AC_MSG_ERROR([xsltproc is required to build without java])
- fi
-fi
-
-AC_CHECK_HEADER(security/pam_appl.h, have_pam=true, have_pam=false)
-AC_CHECK_HEADER(png.h, have_png=true, have_png=false)
-AC_CHECK_HEADER(zlib.h, have_zlib=true, have_zlib=false)
-
-if test "z$with_win32" = "z"; then
- if ! $have_pam; then
- AC_MSG_ERROR(install pam-devel)
- fi
- if ! $have_png; then
- AC_MSG_ERROR(install png-devel)
- fi
-
- if ! $have_zlib; then
- AC_MSG_ERROR(install zlib-devel)
- fi
-
-fi
-
-AC_CHECK_PROG(ACONF, autoconf, yes)
-if ! test "z$ACONF" = "zyes"; then
- AC_MSG_ERROR( autoconf must be installed )
-fi
-
-AC_CHECK_PROG(FLEX, flex, yes)
-if ! test "z$FLEX" = "zyes"; then
- AC_MSG_ERROR( flex must be installed )
-fi
-
-AC_CHECK_PROG(BISON, bison, yes)
-if ! test "z$BISON" = "zyes"; then
- AC_MSG_ERROR( bison must be installed )
-fi
-
-if test "z$with_internal_gcc" = "zyes" ; then
- SYSTEM_GCC=
- gcc_to_use="internal (will be built)"
-else
- SYSTEM_GCC=true
- gcc_to_use="from system"
-fi
-AC_SUBST(SYSTEM_GCC)
-
-BUILD_NCPUS=1
-if test "z$with_num_cpus" != "z"; then
- BUILD_NCPUS=$with_num_cpus
-fi
-AC_SUBST(BUILD_NCPUS)
-
-AC_CHECK_PROG(CCACHE, ccache, yes)
-
-ENABLE_CCACHE=""
-ENABLE_ICECREAM=""
-for enable_speedup in `echo "$with_gcc_speedup" | sed 's/,/ /g'`
-do
- if test "$enable_speedup" = "ccache"; then
- if test "$CCACHE" != "yes"; then
- AC_MSG_ERROR([ccache not found, but set in --with-gcc-speedup])
- else
- ENABLE_CCACHE="yes"
- fi
- elif test "$enable_speedup" = "icecream"; then
- ENABLE_ICECREAM="yes"
- fi
-done
-AC_SUBST(ENABLE_CCACHE)
-AC_SUBST(ENABLE_ICECREAM)
-
-ICECREAM_JOBS="10"
-if test "z$with_icecream_max_jobs" != "z"; then
- if test "$with_icecream_max_jobs" -gt "10"; then
- AC_MSG_WARN([dmake is limited to 10 jobs, using --with-icecream-max-jobs=10 (instead of $with_num_jobs).])
- with_icecream_max_jobs="10"
- fi
- ICECREAM_JOBS="$with_icecream_max_jobs"
-fi
-AC_SUBST(ICECREAM_JOBS)
-
-ICECREAM_BINDIR="/opt/icecream/bin"
-if test "z$with_icecream_bindir" != "z"; then
- ICECREAM_BINDIR="$with_icecream_bindir"
-fi
-if test "z$ENABLE_ICECREAM" = "zyes"; then
- if test ! -x "$ICECREAM_BINDIR/gcc" -o ! -x "$ICECREAM_BINDIR/g++" ; then
- AC_MSG_ERROR([icecream's gcc and g++ not found, please set --with-icecream-bindir])
- fi
-fi
-AC_SUBST(ICECREAM_BINDIR)
-
-if test "z$with_distro" = "zKDE"; then
- if test "z$enable_kde" = "z" ; then
- enable_kde=true
- fi
-fi
-
-AC_MSG_CHECKING([for widget sets])
-OOO_WIDGET_FLAGS=
-if test "$enable_kde" != "no"; then
- if test "z$with_win32" = "z"; then
- OOO_WIDGET_FLAGS="--enable-kde "
- widget_sets="kde"
- fi
-fi
-if test "$enable_gtk" != "no"; then
- if test "z$with_win32" = "z"; then
- OOO_WIDGET_FLAGS="--enable-gtk $OOO_WIDGET_FLAGS"
- widget_sets="gtk $widget_sets"
-
- PKG_CHECK_MODULES( FOO_GTK, [ gtk+-2.0 ],
- have_gtk=true, have_gtk=false )
- if ! $have_gtk; then
- AC_MSG_ERROR([Gtk+ library requirements were not met])
- fi
- fi
-else
- OOO_WIDGET_FLAGS="--disable-gtk $OOO_WIDGET_FLAGS"
-fi
-OOO_CUSTOM_IMAGES=
-OOO_EXTRA_ARTWORK=extras-2.tar.bz2
-OOO_CRYSTAL_IMAGES=ooo_crystal_images-6.tar.bz2
-AC_SUBST(OOO_CUSTOM_IMAGES)
-AC_SUBST(OOO_EXTRA_ARTWORK)
-AC_SUBST(OOO_CRYSTAL_IMAGES)
-
-AC_MSG_RESULT($OOO_WIDGET_FLAGS)
-AC_SUBST(OOO_WIDGET_FLAGS)
-
-if test "z$BUILD_WIN32" = "zyes" -a "z$enable_cairo" = "z" ; then
- AC_MSG_WARN([On Cygwin, automatically using --disable-cairo])
- enable_cairo="no"
-fi
-if test "$enable_cairo" != "no"; then
- if test "$with_system_cairo" = "yes"; then
- SYSTEM_CAIRO=TRUE
- fi
- CAIRO_ENABLED=TRUE
- GLITZ_VER=0.4.3
- # cairo version is also hardcoded in
- # patches/cairo/canvas-source-cairo-makefile.mk
- # patches/cairo/cairo-scp2.diff
- CAIRO_VER=1.0.2
- CAIRO_CONFIGURE_FLAG="--enable-cairo=yes --with-system-xrender-headers"
- cairo_enabled=yes
-else
- CAIRO_ENABLED=
- GLITZ_VER=
- CAIRO_VER=
- CAIRO_CONFIGURE_FLAG="--enable-cairo=no"
- cairo_enabled=no
-fi
-AC_SUBST(CAIRO_ENABLED)
-AC_SUBST(SYSTEM_CAIRO)
-AC_SUBST(GLITZ_VER)
-AC_SUBST(CAIRO_VER)
-AC_SUBST(CAIRO_CONFIGURE_FLAG)
-
-AC_MSG_CHECKING([whether Hunspell UNO is enabled])
-if test "$enable_hunspell" == "yes" ; then
- HUNSPELL_UNO_SRC=hunspell_UNO_1.1.tar.gz
- hunspell_uno_enabled="yes"
-else
- HUNSPELL_UNO_SRC=
- hunspell_uno_enabled="no"
-fi
-AC_MSG_RESULT([$hunspell_uno_enabled])
-AC_SUBST(HUNSPELL_UNO_SRC)
-
-AC_MSG_CHECKING([for libhunspell])
-if test "z$HUNSPELL_UNO_SRC" != "z" ; then
- if test "z$with_system_hunspell" != "zyes" ; then
- HUNSPELL_LIB_SRC=hunspell-1.0.8.tar.gz
- hunspell_lib_result="yes"
- else
- HUNSPELL_LIB_SRC=
- hunspell_lib_result="from system"
- fi
-else
- HUNSPELL_LIB_SRC=
- hunspell_lib_result="no needed"
-fi
-AC_MSG_RESULT([$hunspell_lib_result])
-AC_SUBST(HUNSPELL_LIB_SRC)
-
-BUILD_MOZILLA_SOURCE='mozilla-source-1.7.5.tar.gz'
-AC_SUBST(BUILD_MOZILLA_SOURCE)
-
-AGFA_MONOTYPE_FONTS_SOURCE='agfa-monotype-fonts.tar.gz'
-AC_SUBST(AGFA_MONOTYPE_FONTS_SOURCE)
-
-FORCE_GCC33=""
-if test "z$enable_gcc33" != "z"; then
- FORCE_GCC33="YES"
-fi
-AC_SUBST(FORCE_GCC33)
-
-RUN_POST_INSTALL_SCRIPTS="yes"
-if test "z$enable_post_install_scripts" = "zno"; then
- RUN_POST_INSTALL_SCRIPTS="no"
-fi
-AC_SUBST(RUN_POST_INSTALL_SCRIPTS)
-
-OOO_STRIP="yes"
-if test "z$enable_strip" = "zno"; then
- OOO_STRIP="no"
-fi
-AC_SUBST(OOO_STRIP)
-
-ARCHITECTURE="unxlngi4"
-if test "z$with_arch" != "z"; then
- if test "z$with_arch" = "zppc"; then
- ARCHITECTURE="unxlngppc"
- fi
- if test "z$with_arch" = "zsparc"; then
- ARCHITECTURE="unxlngs"
- fi
-fi
-AC_SUBST(ARCHITECTURE)
-
-AC_MSG_CHECKING([for broken aliases])
-if `alias gcc > /dev/null 2>&1`; then
- AC_MSG_ERROR( you can't alias your gcc - that's broken );
-fi
-AC_MSG_RESULT(ok)
-
-AC_MSG_CHECKING([for Open Clip Art Library])
-OPENCLIPART_VER=
-OPENCLIPART_DIR=
-if test "z$with_openclipart" != "z" -a "z$with_openclipart" != "zno" ; then
- if test "z$with_openclipart" = "zyes" ; then
- # the gallery from the source tarball by default
- OPENCLIPART_VER=0.12
- elif (echo "$with_openclipart" | grep "^[[0-9\.]]*$") ; then
- # it's a version number
- OPENCLIPART_VER=$with_openclipart
- elif test "z${with_openclipart%%/*}" = "z" ; then
- # it's an absolute path
- if test -d $with_openclipart ; then
- OPENCLIPART_DIR=$with_openclipart
- else
- AC_MSG_ERROR([The directory \"$with_openclipart\" does not exist.])
- fi
- else
- AC_MSG_ERROR([--with-openclipart requires either a version number or an absolute path])
- fi
-fi
-if test "z$OPENCLIPART_VER" != "z" && ! which inkscape >/dev/null 2>&1 ; then
- AC_MSG_ERROR([inkscape is necessary to process Open Clip Art library from sources])
-fi
-AC_MSG_RESULT([${OPENCLIPART_VER:-${OPENCLIPART_DIR:-no}}])
-AC_SUBST(OPENCLIPART_VER)
-AC_SUBST(OPENCLIPART_DIR)
-
-AC_MSG_CHECKING([for DejaVu Fonts])
-DEJAVU_FONTS_VER=
-if test "z$with_dejavu_fonts" != "z" -a "z$with_dejavu_fonts" != "zno" ; then
- if test "z$with_dejavu_fonts" = "zyes" ; then
- # the fonts from the source tarball by default
- DEJAVU_FONTS_VER=2.1
- elif (echo "$with_dejavu_fonts" | grep "^[[0-9\.]]*$") ; then
- # it's a version number
- DEJAVU_FONTS_VER=$with_dejavu_fonts
- else
- AC_MSG_ERROR([--with-dejavu-fonts requires either yes, no, or a version number])
- fi
-fi
-AC_MSG_RESULT([${DEJAVU_FONTS_VER:-no}])
-AC_SUBST(DEJAVU_FONTS_VER)
-
-AC_MSG_CHECKING([for ooo-version])
-OOO_MAJOR=2.0
-OOO_VERSION=2.0
-AC_MSG_RESULT([$OOO_VERSION])
-AC_SUBST(OOO_VERSION)
-
-AC_MSG_CHECKING([for binsuffix])
-
-if test "z$with_binsuffix" = "zno"; then
- OOO_BINSUFFIX=
-elif test "z$with_binsuffix" != "z"; then
- OOO_BINSUFFIX=$with_binsuffix
-else
- OOO_BINSUFFIX=2.0
-fi
-AC_MSG_RESULT([$OOO_BINSUFFIX])
-AC_SUBST(OOO_BINSUFFIX)
-
-datestamp=`date '+%Y%m%d.%H%M'`;
-SNAPSHOT_TAG="$datestamp.$TAG";
-AC_SUBST(SNAPSHOT_TAG)
-
-if test "z$with_installed_ooo_dirname" != "z"; then
- OOOINSTALLDIRNAME=$with_installed_ooo_dirname
-else
- OOOINSTALLDIRNAME=ooo-$OOO_MAJOR
-fi
-AC_SUBST(OOOINSTALLDIRNAME)
-
-if test "z$with_docdir" != "z"; then
- docdir="$with_docdir"
-else
- docdir="$datadir/doc/packages/OpenOffice.org"
-fi
-AC_SUBST(docdir)
-
-# WARNING: The --with-lang= configure option changed, see
-# http://blog.janik.cz/archives/permalinks/2004-11-02T20_04_29.html
-# e.g.
-# --with-lang="ALL" # see solenv/inc/postset.mk
-# --with-lang="en-US cs"
-# --with-lang="ALL xy"
-AC_MSG_CHECKING([for requested localizations])
-if test "z$with_lang" = "z" -o "z$with_lang" = "zyes" ; then
- with_lang="en-US"
-elif test "z$with_lang" = "zno" ; then
- AC_MSG_WARN([One localization must be built, at least! Defaulting to English.])
- with_lang="en-US"
-fi
-OOO_LANGS="$with_lang"
-AC_MSG_RESULT([$OOO_LANGS])
-AC_SUBST(OOO_LANGS)
-
-AC_MSG_CHECKING([whether to enable Mono bindings])
-if test -n "$enable_mono" ; then
- if test "$enable_mono" != "no" ; then
- ENABLE_MONO=TRUE
- mono_enabled=yes
- else
- ENABLE_MONO=FALSE
- mono_enabled=no
- fi
-else
- # mono is not explicitly requested. Though, ooo-build will install
- # the extra sources to support the build with mono
- mono_enabled=supported
- ENABLE_MONO=SUPPORTED
-fi
-AC_MSG_RESULT([$mono_enabled])
-AC_SUBST(ENABLE_MONO)
-
-AC_MSG_CHECKING([whether to enable graphite support])
-# if test -n "$enable_graphite" -o "$enable_graphite" != "no"; then
-if test -n "$enable_graphite" -a "$enable_graphite" != "no"; then
- ENABLE_GRAPHITE=TRUE
- graphite_enables=yes
- GRAPHITE_SRC=silgraphite-1.0.0rc2.tar.gz
-else
- ENABLE_GRAPHITE=FALSE
- graphite_enables=no
-fi
-AC_MSG_RESULT([$graphite_enabled])
-AC_SUBST(ENABLE_GRAPHITE)
-AC_SUBST(GRAPHITE_SRC)
-
-AC_MSG_CHECKING([whether to enable Access import])
-if test "$enable_access" = "no"; then
- access_enabled=no
- ENABLE_ACCESS=
-else
- if test "$with_system_mdbtools" = "yes"; then
- SYSTEM_MDBTOOLS=YES
- fi
- access_enabled=yes
- ENABLE_ACCESS=TRUE
- MDBTOOLS_SRC=mdbtools-0.6pre1.tar.gz
-fi
-AC_MSG_RESULT([$access_enabled])
-AC_SUBST(ENABLE_ACCESS)
-AC_SUBST(MDBTOOLS_SRC)
-AC_SUBST(SYSTEM_MDBTOOLS)
-
-AC_MSG_CHECKING([whether to enable debugging code])
-if test "$enable_dbgutil" = "yes" ; then
- build_product=debug
-else
- build_product=product
-fi
-
-MIRROR="http://go-ooo.org/packages"
-if test "z$with_mirror" != "z" ; then
- MIRROR="$with_mirror"
-fi
-AC_SUBST(MIRROR)
-
-AC_CONFIG_FILES([download], [chmod +x download])
-AC_CONFIG_FILES([scratch/place], [chmod +x scratch/place])
-AC_CONFIG_FILES([intltool-extract intltool-merge intltool-update], [chmod +x intltool*])
-AC_OUTPUT([
-Makefile
-ooo1.1.spec
-bin/setup
-bin/Makefile
-desktop/Makefile
-distro-configs/Makefile
-distro-configs/Ark.conf
-distro-configs/Common.conf
-distro-configs/DroplineGNOME.conf
-distro-configs/Debian.conf
-distro-configs/DebianSarge.conf
-distro-configs/Debian64.conf
-distro-configs/Ubuntu.conf
-distro-configs/Ubuntu64.conf
-distro-configs/NLD.conf
-distro-configs/NLD64.conf
-distro-configs/SUSE.conf
-distro-configs/Mandriva.conf
-distro-configs/Mandriva64.conf
-distro-configs/Gentoo.conf
-distro-configs/QiLinux.conf
-distro-configs/Frugalware.conf
-distro-configs/Frugalware64.conf
-distro-configs/translate-org-za-linux.conf
-distro-configs/translate-org-za-win32.conf
-fonts/Makefile
-patches/Makefile
-patches/a11y/Makefile
-patches/cairo/Makefile
-patches/evo2/Makefile
-patches/vba/Makefile
-patches/mono/Makefile
-patches/src680/Makefile
-patches/64bit/Makefile
-po/Makefile
-doc/Makefile
-src/Makefile
-stamp/Makefile
-man/Makefile
-www/Makefile
-www/images/Makefile
-www/tinder-scripts/Makefile
-])
-
-if test "$ENABLE_CCACHE" = "yes"; then
- ccache_message="yes"
-else
- ccache_message="no"
-fi
-if test "$ENABLE_ICECREAM" = "yes"; then
- icecream_message="yes, in '$ICECREAM_BINDIR'. Max number of jobs is '$ICECREAM_JOBS'"
-else
- icecream_message="no"
-fi
-
-echo "
-Building openoffice
- tag: $CVSTAG
- apply rules: $APPLY_DIR/apply
- build dir: $OOBUILDDIR
- tools dir: $TOOLSDIR
- src package dir: $SRCDIR
- distro: $with_distro
- widget sets: ${widget_sets:-disabled}
- gcc to use: $gcc_to_use
- hunspell-uno: $hunspell_uno_enabled
- hunspell-lib: $hunspell_lib_result
- openclipart: ${OPENCLIPART_VER:-${OPENCLIPART_DIR:-no}}
- mono bindings: $mono_enabled
- mdbtools/access: $access_enabled
- java: ${with_java:-yes}
- ooo-install-dir: $OOOINSTALLDIRNAME
- force gcc33: ${FORCE_GCC33:-no}
- ccache: $ccache_message
- icecream: $icecream_message
- cairo: $cairo_enabled
- build type: $build_product build
- download mirror: $MIRROR
-
-To build run:
-$warn_use_download make
- bin/ooinstall <path-to-install>
-
- This is HEAD - the unstable branch for post-2.0.1 development.
- If you want to build the stable OOo, use:
- ooo-build-2-0 branch for 2.0
- ooo-build-2-0-1 branch for 2.0.1
-"
diff --git a/distro-configs/.cvsignore b/distro-configs/.cvsignore
deleted file mode 100644
index 56da30c56..000000000
--- a/distro-configs/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-Makefile.in
-Makefile
-*.conf
diff --git a/distro-configs/Ark.conf.in b/distro-configs/Ark.conf.in
deleted file mode 100644
index 09da983d9..000000000
--- a/distro-configs/Ark.conf.in
+++ /dev/null
@@ -1,15 +0,0 @@
---with-system-curl
---with-system-expat
---with-system-libwpd
---with-system-odbc-headers
---with-system-xrender-headers
---with-system-sane-header
---with-system-sndfile
---with-system-db
---with-system-neon
---with-java=gij
---disable-gnome-vfs
---enable-pam-link
---enable-xrender-link
---enable-vba
---with-system-agg
diff --git a/distro-configs/Common.conf.in b/distro-configs/Common.conf.in
deleted file mode 100644
index 5ca6bf681..000000000
--- a/distro-configs/Common.conf.in
+++ /dev/null
@@ -1,18 +0,0 @@
---disable-binfilter
---disable-crashdump
---disable-epm
---enable-crashdump=no
---enable-openldap
---with-build-version=\"Build @OOO_BUILDVERSION@\"
---with-lang=\"@OOO_LANGS@\"
---without-fonts
---without-gpc
---with-system-freetype
---with-system-gcc
---with-system-jpeg
---with-system-libxml
---with-system-mozilla
---with-system-python
---with-system-zlib
---enable-evolution2
-@CAIRO_CONFIGURE_FLAG@
diff --git a/distro-configs/Debian.conf.in b/distro-configs/Debian.conf.in
deleted file mode 100644
index b641ac0d5..000000000
--- a/distro-configs/Debian.conf.in
+++ /dev/null
@@ -1,20 +0,0 @@
---without-myspell-dicts
---enable-libsn
---disable-fontooo
---with-system-expat
---with-system-neon
---with-system-nas
---with-system-curl
---with-system-sane-header
---with-system-xrender-headers
---enable-gnome-vfs
---enable-pasf
---with-system-sndfile
---enable-symbols
---with-system-altlinuxhyph
---with-system-db
---enable-crypt-link
---enable-pam-link
---with-dynamic-xinerama
---enable-xsltproc
---disable-qadevooo
diff --git a/distro-configs/Debian64.conf.in b/distro-configs/Debian64.conf.in
deleted file mode 100644
index b641ac0d5..000000000
--- a/distro-configs/Debian64.conf.in
+++ /dev/null
@@ -1,20 +0,0 @@
---without-myspell-dicts
---enable-libsn
---disable-fontooo
---with-system-expat
---with-system-neon
---with-system-nas
---with-system-curl
---with-system-sane-header
---with-system-xrender-headers
---enable-gnome-vfs
---enable-pasf
---with-system-sndfile
---enable-symbols
---with-system-altlinuxhyph
---with-system-db
---enable-crypt-link
---enable-pam-link
---with-dynamic-xinerama
---enable-xsltproc
---disable-qadevooo
diff --git a/distro-configs/DebianSarge.conf.in b/distro-configs/DebianSarge.conf.in
deleted file mode 100644
index b641ac0d5..000000000
--- a/distro-configs/DebianSarge.conf.in
+++ /dev/null
@@ -1,20 +0,0 @@
---without-myspell-dicts
---enable-libsn
---disable-fontooo
---with-system-expat
---with-system-neon
---with-system-nas
---with-system-curl
---with-system-sane-header
---with-system-xrender-headers
---enable-gnome-vfs
---enable-pasf
---with-system-sndfile
---enable-symbols
---with-system-altlinuxhyph
---with-system-db
---enable-crypt-link
---enable-pam-link
---with-dynamic-xinerama
---enable-xsltproc
---disable-qadevooo
diff --git a/distro-configs/DroplineGNOME.conf.in b/distro-configs/DroplineGNOME.conf.in
deleted file mode 100644
index edaf05a3d..000000000
--- a/distro-configs/DroplineGNOME.conf.in
+++ /dev/null
@@ -1,16 +0,0 @@
---with-java
---with-jdk-home=/usr/lib/java
---with-ant=/usr/share/ant
---enable-bonobo
---enable-gnome-vfs
---enable-mono
---enable-cairo
---enable-access
---with-vendor=\"Dropline\ GNOME\"
---with-x
---enable-libart
---enable-libsn
---with-system-expat
---with-system-sane-header
---with-system-curl
---with-system-stdlibs
diff --git a/distro-configs/Frugalware.conf.in b/distro-configs/Frugalware.conf.in
deleted file mode 100644
index 6ecb8dff7..000000000
--- a/distro-configs/Frugalware.conf.in
+++ /dev/null
@@ -1,31 +0,0 @@
---with-ccache-allowed
---with-gcc-speedup=ccache
---with-icons=gnome
---with-system-curl
---with-system-expat
---with-system-neon
---with-system-gcc=yes
---with-system-sndfile
---with-system-cairo
---with-system-boost
---with-system-hunspell
---with-system-odbc-headers
---with-system-sane-headers
---with-java-home=$JAVA_HOME
---with-javac
---with-firefox
---without-java
---enable-libart
---enable-libsn
---enable-fontconfig
---enable-gnome-vfs
---enable-kde
---enable-gtk
---enable-crashdump=yes
---enable-hunspell
---enable-symbols
---enable-cairo
---enable-xsltproc
---disable-rpath
---disable-mozilla
---disable-odk
diff --git a/distro-configs/Frugalware64.conf.in b/distro-configs/Frugalware64.conf.in
deleted file mode 100644
index da4325ae5..000000000
--- a/distro-configs/Frugalware64.conf.in
+++ /dev/null
@@ -1,33 +0,0 @@
---with-gcc-speedup=ccache
---with-icons=gnome
---with-ccache-allowed
---with-java-home=$JAVA_HOME
---with-javac
---with-firefox
---with-system-curl
---with-system-expat
---with-system-neon
---with-system-sndfile
---with-system-gcc=yes
---with-system-boost
---with-system-hunspell
---with-system-odbc-headers
---with-system-cairo
---with-system-freetype
---with-system-sane-headers
---without-java
---enable-libart
---enable-libsn
---enable-kde
---enable-gtk
---enable-gnome-vfs
---enable-hunspell
---enable-symbols
---enable-cairo
---enable-xsltproc
---enable-gtk
---enable-crashdump=yes
---enable-fontconfig
---disable-mozilla
---disable-odk
---disable-rpath
diff --git a/distro-configs/Gentoo.conf.in b/distro-configs/Gentoo.conf.in
deleted file mode 100644
index b853a87f7..000000000
--- a/distro-configs/Gentoo.conf.in
+++ /dev/null
@@ -1,9 +0,0 @@
---disable-fontooo
---disable-odk
---enable-libsn
---with-system-expat
---with-system-stdlibs
---with-system-xrender-headers
---without-system-jpeg
---without-nas
---disable-qadevooo
diff --git a/distro-configs/Makefile.am b/distro-configs/Makefile.am
deleted file mode 100644
index 50680265d..000000000
--- a/distro-configs/Makefile.am
+++ /dev/null
@@ -1 +0,0 @@
-EXTRA_DIST = $(wildcard *.conf.in)
diff --git a/distro-configs/Mandriva.conf.in b/distro-configs/Mandriva.conf.in
deleted file mode 100644
index 7f0247559..000000000
--- a/distro-configs/Mandriva.conf.in
+++ /dev/null
@@ -1,12 +0,0 @@
---enable-gnome-vfs
---with-jdk-home=$JAVA_HOME
---without-myspell-dicts
---with-system-curl
---with-system-expat
---with-system-neon
---with-system-odbc-headers
---with-system-sndfile
---with-system-portaudio
---enable-libsn
---with-firefox
---disable-odk
diff --git a/distro-configs/Mandriva64.conf.in b/distro-configs/Mandriva64.conf.in
deleted file mode 100644
index 001ce5684..000000000
--- a/distro-configs/Mandriva64.conf.in
+++ /dev/null
@@ -1,14 +0,0 @@
---enable-gnome-vfs
---without-java
---without-myspell-dicts
---with-system-curl
---with-system-db
---with-system-expat
---with-system-neon
---with-system-odbc-headers
---with-system-sndfile
---with-system-portaudio
---enable-libsn
---enable-symbols
---with-firefox
---disable-odk
diff --git a/distro-configs/NLD.conf.in b/distro-configs/NLD.conf.in
deleted file mode 100644
index aa3c30dd9..000000000
--- a/distro-configs/NLD.conf.in
+++ /dev/null
@@ -1,7 +0,0 @@
---enable-gnome-vfs
---with-ant-home=/usr/share/ant
---with-jdk-home=/usr/lib/SunJava2-1.4.2
---without-myspell-dicts
---enable-libsn
---enable-lockdown
---disable-odk
diff --git a/distro-configs/NLD64.conf.in b/distro-configs/NLD64.conf.in
deleted file mode 100644
index 5934efca2..000000000
--- a/distro-configs/NLD64.conf.in
+++ /dev/null
@@ -1,15 +0,0 @@
---enable-gnome-vfs
---with-ant-home=/usr
---without-myspell-dicts
---with-java=gij
---with-system-boost
---with-system-curl
---with-system-expat
---with-system-neon
---with-system-odbc-headers
---with-system-sndfile
---enable-libsn
---enable-lockdown
---enable-symbols
---disable-odk
---disable-qadevooo
diff --git a/distro-configs/QiLinux.conf.in b/distro-configs/QiLinux.conf.in
deleted file mode 100644
index 9a81244f7..000000000
--- a/distro-configs/QiLinux.conf.in
+++ /dev/null
@@ -1,21 +0,0 @@
---with-lang=ALL
---enable-libart
---enable-libsn
---enable-fontconfig
---with-system-expat
---with-system-freetype
---with-system-db
---with-db-version='4.2'
---enable-kde
---with-system-curl
---with-python=/usr/bin/python
---with-system-xrender
---with-system-cairo
---disable-mozilla
---with-system-libwpd
---with-system-mspack
---with-system-neon
---with-system-sndfile
---with-system-odbc-headers
---disable-qadevooo
---enable-pam-link
diff --git a/distro-configs/SUSE.conf.in b/distro-configs/SUSE.conf.in
deleted file mode 100644
index 37e52147f..000000000
--- a/distro-configs/SUSE.conf.in
+++ /dev/null
@@ -1,12 +0,0 @@
---enable-gnome-vfs
---with-ant-home=/usr
---with-jdk-home=$JAVA_HOME
---without-myspell-dicts
---with-system-curl
---with-system-expat
---with-system-neon
---with-system-odbc-headers
---with-system-sndfile
---enable-libsn
---enable-lockdown
---disable-odk
diff --git a/distro-configs/Ubuntu.conf.in b/distro-configs/Ubuntu.conf.in
deleted file mode 100644
index f799b9a70..000000000
--- a/distro-configs/Ubuntu.conf.in
+++ /dev/null
@@ -1,21 +0,0 @@
---without-myspell-dicts
---enable-libsn
---disable-fontooo
---with-system-expat
---with-system-odbc-headers
---with-system-neon
---with-system-nas
---with-system-curl
---with-system-sane-header
---with-system-xrender-headers
---enable-gnome-vfs
---enable-pasf
---with-system-sndfile
---enable-symbols
---with-system-altlinuxhyph
---with-system-db
---enable-crypt-link
---enable-pam-link
---with-dynamic-xinerama
---enable-xsltproc
---disable-qadevooo
diff --git a/distro-configs/Ubuntu64.conf.in b/distro-configs/Ubuntu64.conf.in
deleted file mode 100644
index f799b9a70..000000000
--- a/distro-configs/Ubuntu64.conf.in
+++ /dev/null
@@ -1,21 +0,0 @@
---without-myspell-dicts
---enable-libsn
---disable-fontooo
---with-system-expat
---with-system-odbc-headers
---with-system-neon
---with-system-nas
---with-system-curl
---with-system-sane-header
---with-system-xrender-headers
---enable-gnome-vfs
---enable-pasf
---with-system-sndfile
---enable-symbols
---with-system-altlinuxhyph
---with-system-db
---enable-crypt-link
---enable-pam-link
---with-dynamic-xinerama
---enable-xsltproc
---disable-qadevooo
diff --git a/distro-configs/translate-org-za-linux.conf.in b/distro-configs/translate-org-za-linux.conf.in
deleted file mode 100755
index c5f78d8a0..000000000
--- a/distro-configs/translate-org-za-linux.conf.in
+++ /dev/null
@@ -1,5 +0,0 @@
---enable-libsn
---enable-lockdown
---disable-odk
---with-dict=ENUS,ENZA,AFZA,TNZA,XHZA,ZUZA
---with-dejavu-fonts
diff --git a/distro-configs/translate-org-za-win32.conf.in b/distro-configs/translate-org-za-win32.conf.in
deleted file mode 100755
index 42008a3f9..000000000
--- a/distro-configs/translate-org-za-win32.conf.in
+++ /dev/null
@@ -1,4 +0,0 @@
---enable-libsn
---disable-odk
---with-dict=ENUS,ENZA,AFZA,TNZA,XHZA,ZUZA
---with-dejavu-fonts
diff --git a/download.in b/download.in
deleted file mode 100755
index 1c11c6154..000000000
--- a/download.in
+++ /dev/null
@@ -1,175 +0,0 @@
-#!/usr/bin/perl -w
-
-sub webget($$)
-{
- my ($src, $dest) = @_;
-
- print "Get $src -> $dest\n";
- system ("cd $dest ; $WGET $src") != 0 && die "Failed fetch";
-}
-
-sub usage {
- print STDERR "\ndownload\n";
- print STDERR "Syntax: download [--help] \n\n";
- print STDERR " download's behavior is coded by your configure options eg.\n";
- print STDERR " if you configure with --with-system-gcc it will not download\n";
- print STDERR " gcc & binutils\n";
-};
-
-
-%SRC_URLS = (
- 'binutils-.*' => '@MIRROR@/support',
- 'gcc-.*' => '@MIRROR@/support',
- 'src680-m.*' => '@MIRROR@/SRC680',
- 'ooo680-m.*' => '@MIRROR@/OOO680',
- 'libwpd-snap-.*' => '@MIRROR@',
- 'libwpd-0.*' => '@MIRROR@/libwpd',
- 'images_gnome-.*' => '@MIRROR@/SRC680',
- 'images_kde-.*' => '@MIRROR@/SRC680',
- 'extras-.*' => '@MIRROR@/SRC680',
- 'ooo_custom_images.*' => '@MIRROR@/SRC680',
- 'ooo_crystal_images.*' => '@MIRROR@/SRC680',
- 'cli_types*' => '@MIRROR@/SRC680',
- 'mdbtools*' => '@MIRROR@/SRC680',
- 'libpixman-*' => '@MIRROR@/SRC680',
- 'cairo-*' => '@MIRROR@/SRC680',
- 'glitz-*' => '@MIRROR@/SRC680',
- 'hunspell*' => '@MIRROR@/SRC680',
-# Graphite rendering bits
- 'silgraphite-*' => '@MIRROR@/SRC680',
-# Win32 bits:
- 'unicows\.exe' => 'http://download.microsoft.com/download/b/7/5/b75eace3-00e2-4aa0-9a6f-0b6882c71642',
- # from http://www.microsoft.com/downloads/release.asp?releaseid=30682'
- 'dbghinst\.EXE' => 'http://download.microsoft.com/download/platformsdk/Redist/5.0.2195.1/W9XNT4/EN-US',
- '5_11_98Odma20\.zip' => '@MIRROR@/support',
- 'openclipart-*' => 'http://www.openclipart.org/downloads/@OPENCLIPART_VER@',
- 'dejavu-ttf-*' => 'http://heanet.dl.sf.net/sourceforge/dejavu/',
-# Win32 ant binaries ...
- 'apache-ant-*' => 'http://apache.mirror.positive-internet.com/ant/binaries',
-# Mozilla source and libraries
- 'mozilla-source-1.7.5*' => 'http://ftp.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7.5/source/',
- 'glib-*' => 'http://ftp.gtk.org/pub/gtk/v1.2/',
- 'libIDL-*' => 'http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/source/',
- 'wintools.zip' => 'http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/'
-);
-
-$WGET='/usr/bin/wget';
-
-sub download_files($$$)
-{
- my ($files, $locations, $dest) = @_;
-
- for my $file ( @{$files} ) {
- if ( $file ne '' ) {
- if (-f "$dest/$file") {
- print "Skipping $file\n";
- } else {
- print "No file $dest/$file\n";
- my $location = '';
- for $regexp (keys %{$locations}) {
- if ($file =~ m/^$regexp/) {
- $location = $locations->{$regexp};
- last;
- }
- }
- $location eq '' && die "Can't find '$file' to download";
- webget( $location."/$file", $dest );
- }
- }
- }
-}
-
-if (!-d "@SRCDIR@") {
- `mkdir -p @SRCDIR@`;
-}
-
-# Files to download
-@files = ();
-
-while ($arg = shift @ARGV) {
- if ( $arg eq '--help' ) {
- &usage and exit(0);
- }
-}
-
-# Defaults
-$tag = '@CVSTAG@';
-print "Downloading files for $tag\n";
-
--x $WGET || die "Can't find wget - install it and try again\n";
-
-if ('@SYSTEM_GCC@' eq '') {
- push @files, ( 'gcc-3.4.1.tar.bz2', 'gcc-3.4.1-Enums.diff', 'gcc-3.4.1-VisibilityPatch2.diff' );
-}
-
-# Misc. bits for Win32
-if ('@BUILD_WIN32@' ne '')
-{
- push @files, ( 'unicows.exe', 'dbghinst.EXE' );
- push @files, ( "$tag-system.tar.bz2" );
-# push @files, ( '5_11_98Odma20.zip' ); # - ODMA - for when it works.
- push @files, ( "apache-ant-1.6.5-bin.tar.gz" );
- push @files, ( '@BUILD_MOZILLA_SOURCE@' );
- push @files, ( 'glib-1.2.10.tar.gz' );
- push @files, ( 'libIDL-0.6.8.tar.gz' );
-# this contains binaries and source, we just use the source
- push @files, ( 'wintools.zip' );
-}
-else
-{
- if ('@ENABLE_MONO@' ne 'FALSE') {
- push @files, ( 'cli_types.dll' );
- push @files, ( 'cli_types_bridgetest.dll' );
- }
-}
-if ('@CAIRO_ENABLED@' eq 'TRUE' && '@SYSTEM_CAIRO@' ne 'TRUE') {
- push @files, ( 'cairo-@CAIRO_VER@.tar.gz' );
- push @files, ( 'glitz-@GLITZ_VER@.tar.gz' );
-}
-
-if ('@OPENCLIPART_VER@' ne '') {
- push @files, ( 'openclipart-@OPENCLIPART_VER@.tar.bz2' );
-}
-
-if ('@DEJAVU_FONTS_VER@' ne '') {
- push @files, ( 'dejavu-ttf-@DEJAVU_FONTS_VER@.tar.gz' );
-}
-
-if ('@MDBTOOLS_SRC@' ne '') {
- push @files, ( '@MDBTOOLS_SRC@' );
-}
-
-push @files, ( "libwpd-0.8.3.tar.gz" );
-push @files, ( "$tag-core.tar.bz2" );
-push @files, ( '@OOO_CUSTOM_IMAGES@', '@OOO_CRYSTAL_IMAGES@', '@OOO_EXTRA_ARTWORK@' );
-
-if ('@OOO_LANGS@' ne 'en-US' || '@BUILD_WIN32@' ne '' ) {
- push @files, ( "$tag-lang.tar.bz2" );
-}
-
-if ('@HUNSPELL_UNO_SRC@' ne '') {
- push @files, ( '@HUNSPELL_UNO_SRC@' );
-}
-
-if ('@HUNSPELL_LIB_SRC@' ne '') {
- push @files, ( '@HUNSPELL_LIB_SRC@' );
-}
-
-if ('@GRAPHITE_SRC@' ne '') {
- push @files, ( '@GRAPHITE_SRC@' );
-}
-
-my $distro = '@DISTRO@';
-if ($distro eq 'NLD') {
- push @files, ( "$tag-system.tar.bz2" );
-}
-
-if ($distro =~ m/Debian/ ||
- $distro =~ m/Ubuntu/ ||
- '@BUILD_WIN32@' ne '') {
- push @files, ( "$tag-sdk_oo.tar.bz2" );
-}
-
-download_files (\@files, \%SRC_URLS, '@SRCDIR@');
-
-print "Done\n";
diff --git a/etc/.cvsignore b/etc/.cvsignore
deleted file mode 100644
index 282522db0..000000000
--- a/etc/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile
-Makefile.in
diff --git a/fonts/.cvsignore b/fonts/.cvsignore
deleted file mode 100644
index 9bfaccf2d..000000000
--- a/fonts/.cvsignore
+++ /dev/null
@@ -1,4 +0,0 @@
-ooo-fonts*.tar.gz
-Makefile.in
-Makefile
-opens___.ttf.uu
diff --git a/fonts/Makefile.am b/fonts/Makefile.am
deleted file mode 100644
index a3bba89df..000000000
--- a/fonts/Makefile.am
+++ /dev/null
@@ -1 +0,0 @@
-EXTRA_DIST=OpenSymbol.sfd opens___.ttf package \ No newline at end of file
diff --git a/fonts/OpenSymbol.sfd b/fonts/OpenSymbol.sfd
deleted file mode 100644
index d5da7e8ed..000000000
--- a/fonts/OpenSymbol.sfd
+++ /dev/null
@@ -1,28912 +0,0 @@
-SplineFontDB: 1.0
-FontName: OpenSymbol
-FullName: OpenSymbol
-FamilyName: OpenSymbol
-Weight: Book
-Copyright: (c) 2003 Sun Microsystems Inc.
-Version: 1.7
-ItalicAngle: 0
-UnderlinePosition: -133
-UnderlineWidth: 20
-Ascent: 1878
-Descent: 170
-Order2: 1
-NeedsXUIDChange: 1
-XUID: [1021 397 263452892 2106039]
-FSType: 8
-PfmFamily: 81
-TTFWeight: 400
-TTFWidth: 5
-Panose: 5 1 0 0 0 0 0 0 0 0
-LineGap: 0
-VLineGap: 0
-OS2TypoAscent: 1878
-OS2TypoDescent: -170
-OS2TypoLinegap: 0
-OS2WinAscent: 0
-OS2WinAOffset: 1
-OS2WinDescent: 0
-OS2WinDOffset: 1
-HheadAscent: 0
-HheadAOffset: 1
-HheadDescent: 0
-HheadDOffset: 1
-OS2SubXSize: 409
-OS2SubYSize: 409
-OS2SubXOff: 0
-OS2SubYOff: 409
-OS2SupXSize: 409
-OS2SupYSize: 409
-OS2SupXOff: 0
-OS2SupYOff: 409
-OS2StrikeYSize: 102
-OS2StrikeYPos: 530
-OS2FamilyClass: 0
-OS2Vendor: 'PfEd'
-ScriptLang: 2
- 1 DFLT 1 dflt
- 1 latn 1 dflt
-TableOrder: GSUB 0
-TtfTable: maxp 32
-!!*'"",Htd!%@mJ!!!!#!!!!"!!*'"!'gMaz
-EndTtf
-LangName: 1033 "" "" "Regular" "OpenSymbol" "" "Version 1.7"
-Encoding: Custom
-UnicodeInterp: none
-DisplaySize: -36
-AntiAlias: 1
-FitToEm: 1
-WinInfo: 0 26 14
-BeginChars: 65538 907
-StartChar: .notdef
-Encoding: 65536 -1 0
-Width: 1024
-Flags: W
-Fore
-129 0 m 1,0,-1
- 129 1638 l 1,1,-1
- 897 1638 l 1,2,-1
- 897 0 l 1,3,-1
- 129 0 l 1,0,-1
-256 129 m 1,4,-1
- 768 129 l 1,5,-1
- 768 1511 l 1,6,-1
- 256 1511 l 1,7,-1
- 256 129 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: glyph1
-Encoding: 65537 -1 1
-Width: 681
-GlyphClass: 2
-Flags: W
-EndChar
-StartChar: space
-Encoding: 32 32 2
-Width: 1024
-GlyphClass: 2
-Flags: W
-EndChar
-StartChar: exclam
-Encoding: 33 33 3
-Width: 606
-GlyphClass: 2
-Flags: W
-Fore
-319 358 m 1,0,-1
- 281 358 l 1,1,-1
- 221 803 l 2,2,3
- 186 1072 186 1072 186 1247 c 0,4,5
- 186 1302 186 1302 217 1345 c 0,6,7
- 248 1386 248 1386 301 1386 c 0,8,9
- 414 1386 414 1386 414 1237 c 0,10,11
- 414 1062 414 1062 379 797 c 2,12,-1
- 319 358 l 1,0,-1
-299 193 m 0,13,14
- 342 193 342 193 376 160 c 0,15,16
- 410 126 410 126 410 84 c 0,17,18
- 410 38 410 38 377 4 c 0,19,20
- 344 -29 344 -29 299 -29 c 0,21,22
- 255 -29 255 -29 221 5 c 0,23,24
- 188 40 188 40 188 84 c 0,25,26
- 188 126 188 126 222 160 c 0,27,28
- 256 193 256 193 299 193 c 0,13,14
-EndSplineSet
-EndChar
-StartChar: quotedbl
-Encoding: 34 34 4
-Width: 727
-GlyphClass: 2
-Flags: W
-Fore
-143 946 m 1,0,-1
- 111 1085 l 2,1,2
- 94 1170 94 1170 94 1227 c 2,3,-1
- 94 1466 l 1,4,-1
- 299 1466 l 1,5,-1
- 299 1227 l 2,6,7
- 299 1158 299 1158 254 946 c 1,8,-1
- 143 946 l 1,0,-1
-475 946 m 1,9,-1
- 442 1085 l 2,10,11
- 426 1165 426 1165 426 1227 c 2,12,-1
- 426 1466 l 1,13,-1
- 631 1466 l 1,14,-1
- 631 1227 l 2,15,16
- 631 1179 631 1179 584 946 c 1,17,-1
- 475 946 l 1,9,-1
-EndSplineSet
-EndChar
-StartChar: numbersign
-Encoding: 35 35 5
-Width: 1138
-GlyphClass: 2
-Flags: W
-Fore
-102 -25 m 1,0,-1
- 188 401 l 1,1,-1
- 20 401 l 1,2,-1
- 20 551 l 1,3,-1
- 219 551 l 1,4,-1
- 293 913 l 1,5,-1
- 20 913 l 1,6,-1
- 20 1063 l 1,7,-1
- 324 1063 l 1,8,-1
- 412 1491 l 1,9,-1
- 559 1491 l 1,10,-1
- 473 1063 l 1,11,-1
- 788 1063 l 1,12,-1
- 877 1491 l 1,13,-1
- 1026 1491 l 1,14,-1
- 938 1063 l 1,15,-1
- 1112 1063 l 1,16,-1
- 1112 913 l 1,17,-1
- 909 913 l 1,18,-1
- 834 551 l 1,19,-1
- 1112 551 l 1,20,-1
- 1112 401 l 1,21,-1
- 805 401 l 1,22,-1
- 719 -25 l 1,23,-1
- 567 -25 l 1,24,-1
- 653 401 l 1,25,-1
- 340 401 l 1,26,-1
- 254 -25 l 1,27,-1
- 102 -25 l 1,0,-1
-369 551 m 1,28,-1
- 684 551 l 1,29,-1
- 758 913 l 1,30,-1
- 444 913 l 1,31,-1
- 369 551 l 1,28,-1
-EndSplineSet
-EndChar
-StartChar: percent
-Encoding: 37 37 6
-Width: 1705
-GlyphClass: 2
-Flags: W
-Fore
-289 1386 m 0,0,1
- 429 1386 429 1386 508 1268 c 0,2,3
- 575 1166 575 1166 575 1018 c 0,4,5
- 575 872 575 872 508 770 c 0,6,7
- 430 653 430 653 291 653 c 0,8,9
- 153 653 153 653 72 770 c 0,10,11
- 0 875 0 875 0 1018 c 0,12,13
- 0 1160 0 1160 72 1266 c 0,14,15
- 153 1386 153 1386 289 1386 c 0,0,1
-291 1331 m 0,16,17
- 160 1331 160 1331 160 1020 c 0,18,19
- 160 705 160 705 287 705 c 0,20,21
- 418 705 418 705 418 1014 c 0,22,23
- 418 1331 418 1331 291 1331 c 0,16,17
-1321 1386 m 1,24,-1
- 332 -55 l 1,25,-1
- 244 -55 l 1,26,-1
- 1231 1386 l 1,27,-1
- 1321 1386 l 1,24,-1
-1278 674 m 0,28,29
- 1415 674 1415 674 1493 555 c 0,30,31
- 1563 449 1563 449 1563 307 c 0,32,33
- 1563 165 1563 165 1495 61 c 0,34,35
- 1415 -55 1415 -55 1278 -55 c 0,36,37
- 1142 -55 1142 -55 1061 61 c 0,38,39
- 987 168 987 168 987 307 c 0,40,41
- 987 450 987 450 1059 555 c 0,42,43
- 1140 674 1140 674 1278 674 c 0,28,29
-1278 621 m 0,44,45
- 1147 621 1147 621 1147 301 c 0,46,47
- 1147 0 1147 0 1276 0 c 128,-1,48
- 1405 0 1405 0 1405 305 c 0,49,50
- 1405 621 1405 621 1278 621 c 0,44,45
-EndSplineSet
-EndChar
-StartChar: ampersand
-Encoding: 38 38 7
-Width: 1593
-GlyphClass: 2
-Flags: W
-Fore
-971 872 m 1,0,-1
- 1391 872 l 1,1,-1
- 1391 836 l 1,2,3
- 1313 827 1313 827 1262 799 c 0,4,5
- 1232 784 1232 784 1102 573 c 0,6,7
- 948 328 948 328 934 309 c 1,8,9
- 1093 123 1093 123 1233 123 c 0,10,11
- 1377 123 1377 123 1419 270 c 1,12,-1
- 1456 244 l 1,13,14
- 1387 -31 1387 -31 1147 -31 c 0,15,16
- 975 -31 975 -31 795 164 c 1,17,18
- 568 -31 568 -31 358 -31 c 0,19,20
- 211 -31 211 -31 111 43 c 0,21,22
- 0 126 0 126 0 268 c 0,23,24
- 0 542 0 542 416 758 c 1,25,26
- 334 938 334 938 334 1055 c 0,27,28
- 334 1206 334 1206 431 1296 c 0,29,30
- 528 1386 528 1386 682 1386 c 0,31,32
- 799 1386 799 1386 874 1321 c 0,33,34
- 952 1255 952 1255 952 1143 c 0,35,36
- 952 944 952 944 623 782 c 1,37,38
- 765 537 765 537 887 369 c 1,39,40
- 1063 580 1063 580 1063 721 c 0,41,42
- 1063 835 1063 835 971 836 c 1,43,-1
- 971 872 l 1,0,-1
-588 848 m 1,44,45
- 836 965 836 965 836 1147 c 0,46,47
- 836 1216 836 1216 792 1265 c 0,48,49
- 747 1313 747 1313 680 1313 c 0,50,51
- 603 1313 603 1313 553 1261 c 0,52,53
- 504 1209 504 1209 504 1130 c 0,54,55
- 504 1036 504 1036 588 848 c 1,44,45
-743 221 m 1,56,57
- 528 517 528 517 449 690 c 1,58,59
- 207 557 207 557 207 358 c 0,60,61
- 207 241 207 241 276 166 c 0,62,63
- 346 90 346 90 463 90 c 0,64,65
- 583 90 583 90 743 221 c 1,56,57
-EndSplineSet
-EndChar
-StartChar: parenleft
-Encoding: 40 40 8
-Width: 696
-GlyphClass: 2
-Flags: W
-Fore
-573 -434 m 1,0,-1
- 573 -483 l 1,1,2
- 172 -147 172 -147 172 641 c 0,3,4
- 172 1438 172 1438 573 1767 c 1,5,-1
- 573 1716 l 1,6,7
- 281 1428 281 1428 281 641 c 0,8,9
- 281 -154 281 -154 573 -434 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: parenright
-Encoding: 41 41 9
-Width: 696
-GlyphClass: 2
-Flags: W
-Fore
-123 -434 m 1,0,1
- 416 -152 416 -152 416 641 c 0,2,3
- 416 1423 416 1423 123 1716 c 1,4,-1
- 123 1767 l 1,5,6
- 342 1593 342 1593 442 1253 c 0,7,8
- 524 985 524 985 524 641 c 0,9,10
- 524 -157 524 -157 123 -483 c 1,11,-1
- 123 -434 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: asterisk
-Encoding: 42 42 10
-Width: 796
-GlyphClass: 2
-Flags: W
-Fore
-63 1196 m 1,0,-1
- 111 1339 l 1,1,2
- 198 1309 198 1309 340 1241 c 1,3,4
- 336 1311 336 1311 319 1491 c 1,5,-1
- 467 1491 l 1,6,7
- 466 1394 466 1394 442 1243 c 1,8,9
- 542 1294 542 1294 680 1339 c 1,10,-1
- 725 1196 l 1,11,12
- 604 1158 604 1158 475 1141 c 1,13,14
- 529 1095 529 1095 647 952 c 1,15,-1
- 528 866 l 1,16,17
- 449 977 449 977 391 1081 c 1,18,19
- 333 982 333 982 260 866 c 1,20,-1
- 141 952 l 1,21,22
- 203 1032 203 1032 307 1141 c 1,23,24
- 217 1157 217 1157 63 1196 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: plus
-Encoding: 43 43 11
-Width: 1196
-GlyphClass: 2
-Flags: W
-Fore
-512 115 m 1,0,-1
- 512 516 l 1,1,-1
- 115 516 l 1,2,-1
- 115 684 l 1,3,-1
- 512 684 l 1,4,-1
- 512 1083 l 1,5,-1
- 682 1083 l 1,6,-1
- 682 684 l 1,7,-1
- 1081 684 l 1,8,-1
- 1081 516 l 1,9,-1
- 682 516 l 1,10,-1
- 682 115 l 1,11,-1
- 512 115 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: comma
-Encoding: 44 44 12
-Width: 512
-GlyphClass: 2
-Flags: W
-Fore
-111 -342 m 1,0,-1
- 111 -297 l 1,1,2
- 202 -265 202 -265 260 -203 c 0,3,4
- 326 -130 326 -130 326 -41 c 2,5,-1
- 317 -8 l 1,6,-1
- 303 0 l 1,7,-1
- 217 -29 l 1,8,9
- 111 -29 111 -29 111 82 c 0,10,11
- 111 132 111 132 150 167 c 0,12,13
- 189 201 189 201 240 201 c 0,14,15
- 315 201 315 201 365 131 c 0,16,17
- 408 68 408 68 408 -10 c 0,18,19
- 408 -243 408 -243 111 -342 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: hyphen
-Encoding: 8208 45 13
-Width: 681
-GlyphClass: 2
-Flags: W
-Fore
-66 502 m 1,0,-1
- 66 682 l 1,1,-1
- 618 682 l 1,2,-1
- 618 502 l 1,3,-1
- 66 502 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: period
-Encoding: 46 46 14
-Width: 512
-GlyphClass: 2
-Flags: W
-Fore
-256 195 m 0,0,1
- 301 195 301 195 334 162 c 128,-1,2
- 367 129 367 129 367 84 c 0,3,4
- 367 38 367 38 334 4 c 0,5,6
- 301 -29 301 -29 256 -29 c 0,7,8
- 212 -29 212 -29 178 5 c 0,9,10
- 145 40 145 40 145 84 c 0,11,12
- 145 129 145 129 178 162 c 128,-1,13
- 211 195 211 195 256 195 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: slash
-Encoding: 47 47 15
-Width: 569
-GlyphClass: 2
-Flags: W
-Fore
-0 -25 m 1,0,-1
- 426 1491 l 1,1,-1
- 569 1491 l 1,2,-1
- 145 -25 l 1,3,-1
- 0 -25 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: colon
-Encoding: 58 58 16
-Width: 569
-GlyphClass: 2
-Flags: W
-Fore
-289 944 m 0,0,1
- 334 944 334 944 367 911 c 0,2,3
- 399 879 399 879 399 834 c 0,4,5
- 399 790 399 790 367 756 c 0,6,7
- 334 723 334 723 289 723 c 128,-1,8
- 244 723 244 723 211 756 c 128,-1,9
- 178 789 178 789 178 834 c 0,10,11
- 178 880 178 880 211 911 c 0,12,13
- 244 944 244 944 289 944 c 0,0,1
-287 195 m 0,14,15
- 332 195 332 195 366 162 c 0,16,17
- 399 129 399 129 399 84 c 0,18,19
- 399 38 399 38 365 4 c 0,20,21
- 332 -29 332 -29 287 -29 c 0,22,23
- 243 -29 243 -29 209 5 c 0,24,25
- 176 40 176 40 176 84 c 0,26,27
- 176 129 176 129 209 162 c 128,-1,28
- 242 195 242 195 287 195 c 0,14,15
-EndSplineSet
-EndChar
-StartChar: semicolon
-Encoding: 59 59 17
-Width: 569
-GlyphClass: 2
-Flags: W
-Fore
-283 944 m 0,0,1
- 326 944 326 944 359 911 c 0,2,3
- 393 880 393 880 393 836 c 0,4,5
- 393 791 393 791 360 758 c 0,6,7
- 328 725 328 725 283 725 c 0,8,9
- 237 725 237 725 204 758 c 0,10,11
- 170 791 170 791 170 836 c 0,12,13
- 170 881 170 881 204 912 c 0,14,15
- 236 944 236 944 283 944 c 0,0,1
-141 -342 m 1,16,-1
- 141 -297 l 1,17,18
- 233 -266 233 -266 293 -203 c 0,19,20
- 358 -132 358 -132 358 -41 c 0,21,22
- 358 -10 358 -10 336 0 c 1,23,-1
- 250 -29 l 1,24,25
- 141 -29 141 -29 141 82 c 0,26,27
- 141 132 141 132 180 166 c 0,28,29
- 220 201 220 201 270 201 c 0,30,31
- 349 201 349 201 397 133 c 0,32,33
- 440 73 440 73 440 -10 c 0,34,35
- 440 -243 440 -243 141 -342 c 1,16,-1
-EndSplineSet
-EndChar
-StartChar: less
-Encoding: 60 60 18
-Width: 1196
-GlyphClass: 2
-Flags: W
-Fore
-113 518 m 1,0,-1
- 113 686 l 1,1,-1
- 1083 1096 l 1,2,-1
- 1083 918 l 1,3,-1
- 313 602 l 1,4,-1
- 1083 283 l 1,5,-1
- 1083 102 l 1,6,-1
- 113 518 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: equal
-Encoding: 61 61 19
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 358 m 1,0,-1
- 221 457 l 1,1,-1
- 1405 457 l 1,2,-1
- 1405 358 l 1,3,-1
- 221 358 l 1,0,-1
-221 791 m 1,4,-1
- 221 889 l 1,5,-1
- 1405 889 l 1,6,-1
- 1405 791 l 1,7,-1
- 221 791 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: greater
-Encoding: 62 62 20
-Width: 1196
-GlyphClass: 2
-Flags: W
-Fore
-1083 518 m 1,0,-1
- 113 102 l 1,1,-1
- 113 283 l 1,2,-1
- 881 602 l 1,3,-1
- 113 918 l 1,4,-1
- 113 1096 l 1,5,-1
- 1083 686 l 1,6,-1
- 1083 518 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: bracketleft
-Encoding: 91 91 21
-Width: 577
-GlyphClass: 2
-Flags: W
-Fore
-150 -403 m 1,0,-1
- 150 1622 l 1,1,-1
- 504 1622 l 1,2,-1
- 504 1581 l 1,3,-1
- 248 1581 l 1,4,-1
- 248 -360 l 1,5,-1
- 504 -360 l 1,6,-1
- 504 -403 l 1,7,-1
- 150 -403 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: bracketright
-Encoding: 93 93 22
-Width: 577
-GlyphClass: 2
-Flags: W
-Fore
-428 -403 m 1,0,-1
- 74 -403 l 1,1,-1
- 74 -360 l 1,2,-1
- 330 -360 l 1,3,-1
- 330 1581 l 1,4,-1
- 74 1581 l 1,5,-1
- 74 1622 l 1,6,-1
- 428 1622 l 1,7,-1
- 428 -403 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: braceleft
-Encoding: 123 123 23
-Width: 782
-GlyphClass: 2
-Flags: W
-Fore
-496 -453 m 1,0,-1
- 485 -453 l 2,1,2
- 351 -453 351 -453 281 -362 c 0,3,4
- 215 -281 215 -281 215 -145 c 2,5,-1
- 217 459 l 2,6,7
- 217 587 217 587 92 588 c 1,8,-1
- 92 621 l 1,9,-1
- 129 623 l 2,10,11
- 217 638 217 638 217 752 c 2,12,-1
- 215 1356 l 2,13,14
- 215 1494 215 1494 288 1576 c 0,15,16
- 360 1659 360 1659 496 1659 c 1,17,-1
- 496 1626 l 1,18,-1
- 450 1623 l 1,19,-1
- 413 1613 l 2,20,21
- 298 1569 298 1569 295 1384 c 2,22,-1
- 287 809 l 2,23,24
- 284 667 284 667 156 604 c 1,25,26
- 284 543 284 543 287 397 c 2,27,-1
- 295 -176 l 2,28,29
- 299 -418 299 -418 491 -420 c 0,30,31
- 494 -420 494 -420 496 -420 c 1,32,-1
- 496 -453 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: braceright
-Encoding: 125 125 24
-Width: 782
-GlyphClass: 2
-Flags: W
-Fore
-92 -453 m 1,0,-1
- 92 -420 l 1,1,-1
- 138 -417 l 2,2,3
- 293 -391 293 -391 293 -176 c 0,4,5
- 293 -80 293 -80 287 112 c 0,6,7
- 281 302 281 302 281 399 c 0,8,9
- 281 535 281 535 414 604 c 1,10,11
- 281 667 281 667 281 809 c 0,12,13
- 281 904 281 904 287 1098 c 0,14,15
- 293 1290 293 1290 293 1386 c 0,16,17
- 293 1626 293 1626 92 1626 c 1,18,-1
- 92 1659 l 1,19,-1
- 102 1659 l 2,20,21
- 234 1659 234 1659 303 1574 c 0,22,23
- 373 1489 373 1489 373 1354 c 0,24,25
- 373 1245 373 1245 360 1053 c 0,26,27
- 348 852 348 852 348 752 c 0,28,29
- 348 621 348 621 480 621 c 0,30,31
- 496 621 l 1,32,-1
- 496 588 l 1,33,-1
- 452 586 l 2,34,35
- 348 572 348 572 348 457 c 0,36,37
- 348 356 348 356 360 156 c 0,38,39
- 373 -38 373 -38 373 -145 c 0,40,41
- 373 -453 373 -453 92 -453 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: asciitilde
-Encoding: 126 126 25
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-283 526 m 1,0,-1
- 221 526 l 1,1,2
- 236 846 236 846 485 846 c 0,3,4
- 600 846 600 846 843 726 c 128,-1,5
- 1086 606 1086 606 1176 606 c 0,6,7
- 1320 606 1320 606 1343 823 c 1,8,-1
- 1405 823 l 1,9,10
- 1387 504 1387 504 1141 504 c 0,11,12
- 1014 504 1014 504 795 624 c 0,13,14
- 575 743 575 743 449 743 c 0,15,16
- 370 743 370 743 324 672 c 0,17,18
- 283 609 283 609 283 526 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: cent
-Encoding: 162 162 26
-Width: 876
-GlyphClass: 2
-Flags: W
-Fore
-426 940 m 1,0,1
- 320 916 320 916 264 793 c 0,2,3
- 221 690 221 690 221 567 c 0,4,5
- 221 436 221 436 266 334 c 0,6,7
- 320 210 320 210 426 166 c 1,8,-1
- 426 940 l 1,0,1
-508 1243 m 1,9,-1
- 508 1018 l 1,10,11
- 532 1022 532 1022 555 1022 c 0,12,13
- 650 1022 650 1022 723 965 c 0,14,15
- 805 901 805 901 805 811 c 0,16,17
- 805 770 805 770 782 735 c 0,18,19
- 759 700 759 700 721 700 c 0,20,21
- 674 700 674 700 612 807 c 0,22,23
- 545 923 545 923 508 940 c 1,24,-1
- 508 154 l 1,25,26
- 706 154 706 154 811 383 c 1,27,-1
- 856 369 l 1,28,29
- 783 199 783 199 729 127 c 0,30,31
- 638 4 638 4 508 -14 c 1,32,-1
- 508 -244 l 1,33,-1
- 426 -244 l 1,34,-1
- 426 -14 l 1,35,36
- 241 3 241 3 141 156 c 0,37,38
- 55 292 55 292 55 487 c 0,39,40
- 55 675 55 675 147 821 c 0,41,42
- 250 980 250 980 426 1012 c 1,43,-1
- 426 1243 l 1,44,-1
- 508 1243 l 1,9,-1
-EndSplineSet
-EndChar
-StartChar: currency
-Encoding: 164 164 27
-Width: 1024
-GlyphClass: 2
-Flags: W
-Fore
-795 1020 m 1,0,-1
- 938 1161 l 1,1,-1
- 995 1104 l 1,2,-1
- 852 963 l 1,3,4
- 954 831 954 831 954 682 c 0,5,6
- 954 529 954 529 852 397 c 1,7,-1
- 995 254 l 1,8,-1
- 938 199 l 1,9,-1
- 795 342 l 1,10,11
- 661 238 661 238 524 238 c 0,12,13
- 327 238 327 238 229 342 c 1,14,-1
- 84 199 l 1,15,-1
- 27 254 l 1,16,-1
- 170 397 l 1,17,18
- 70 513 70 513 70 680 c 0,19,20
- 70 838 70 838 170 963 c 1,21,-1
- 27 1104 l 1,22,-1
- 84 1161 l 1,23,-1
- 229 1020 l 1,24,25
- 348 1120 348 1120 514 1120 c 0,26,27
- 676 1120 676 1120 795 1020 c 1,0,-1
-512 1040 m 0,28,29
- 362 1040 362 1040 256 934 c 128,-1,30
- 150 828 150 828 150 678 c 0,31,32
- 150 528 150 528 256 423 c 0,33,34
- 364 317 364 317 512 317 c 0,35,36
- 659 317 659 317 767 425 c 0,37,38
- 874 532 874 532 874 680 c 0,39,40
- 874 828 874 828 767 934 c 0,41,42
- 660 1040 660 1040 512 1040 c 0,28,29
-EndSplineSet
-EndChar
-StartChar: yen
-Encoding: 165 165 28
-Width: 1024
-GlyphClass: 2
-Flags: W
-Fore
-598 426 m 1,0,-1
- 1024 426 l 1,1,-1
- 1024 352 l 1,2,-1
- 598 352 l 1,3,-1
- 598 244 l 2,4,5
- 598 124 598 124 621 88 c 0,6,7
- 651 41 651 41 760 41 c 0,8,9
- 768 41 l 1,10,-1
- 768 0 l 1,11,-1
- 254 0 l 1,12,-1
- 254 41 l 1,13,-1
- 307 44 l 2,14,15
- 359 50 359 50 388 75 c 0,16,17
- 430 111 430 111 430 201 c 0,18,19
- 430 210 430 210 428 278 c 0,20,21
- 426 344 426 344 426 352 c 1,22,-1
- 2 352 l 1,23,-1
- 2 426 l 1,24,-1
- 426 426 l 1,25,-1
- 426 569 l 1,26,-1
- 412 604 l 1,27,-1
- 2 604 l 1,28,-1
- 2 678 l 1,29,-1
- 379 678 l 1,30,-1
- 166 1174 l 2,31,32
- 104 1317 104 1317 2 1319 c 1,33,-1
- 2 1356 l 1,34,-1
- 444 1356 l 1,35,-1
- 444 1319 l 1,36,37
- 324 1314 324 1314 324 1255 c 0,38,39
- 324 1210 324 1210 555 678 c 1,40,41
- 788 1190 788 1190 788 1257 c 0,42,43
- 788 1310 788 1310 678 1319 c 1,44,-1
- 678 1356 l 1,45,-1
- 1024 1356 l 1,46,-1
- 1024 1319 l 1,47,48
- 919 1319 919 1319 850 1163 c 2,49,-1
- 637 678 l 1,50,-1
- 1024 678 l 1,51,-1
- 1024 604 l 1,52,-1
- 604 604 l 1,53,-1
- 598 590 l 1,54,-1
- 598 426 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: section
-Encoding: 167 167 29
-Width: 1138
-GlyphClass: 2
-Flags: W
-Fore
-141 -70 m 1,0,1
- 164 -246 164 -246 285 -340 c 0,2,3
- 399 -430 399 -430 580 -430 c 0,4,5
- 740 -430 740 -430 852 -348 c 0,6,7
- 977 -256 977 -256 977 -102 c 0,8,9
- 977 55 977 55 817 178 c 1,10,11
- 1044 268 1044 268 1044 465 c 0,12,13
- 1044 618 1044 618 864 756 c 2,14,-1
- 532 965 l 2,15,16
- 352 1080 352 1080 352 1184 c 0,17,18
- 352 1256 352 1256 420 1303 c 0,19,20
- 481 1343 481 1343 557 1343 c 0,21,22
- 739 1343 739 1343 772 1124 c 1,23,-1
- 958 1145 l 1,24,25
- 918 1491 918 1491 543 1491 c 0,26,27
- 398 1491 398 1491 291 1407 c 0,28,29
- 176 1317 176 1317 176 1176 c 0,30,31
- 176 1045 176 1045 305 928 c 1,32,33
- 208 900 208 900 143 821 c 0,34,35
- 80 743 80 743 80 643 c 0,36,37
- 80 480 80 480 264 338 c 2,38,-1
- 610 121 l 2,39,40
- 795 -1 795 -1 795 -104 c 0,41,42
- 795 -188 795 -188 727 -236 c 0,43,44
- 666 -279 666 -279 580 -279 c 0,45,46
- 372 -279 372 -279 324 -43 c 1,47,-1
- 141 -70 l 1,0,1
-727 244 m 1,48,49
- 515 370 515 370 440 424 c 0,50,51
- 244 568 244 568 244 664 c 0,52,53
- 244 778 244 778 393 858 c 1,54,55
- 619 717 619 717 678 674 c 0,56,57
- 874 529 874 529 874 430 c 0,58,59
- 874 314 874 314 727 244 c 1,48,49
-EndSplineSet
-EndChar
-StartChar: dieresis
-Encoding: 168 168 30
-Width: 542
-GlyphClass: 2
-Flags: W
-Fore
-25 1376 m 0,0,1
- 25 1415 25 1415 53 1446 c 0,2,3
- 82 1477 82 1477 121 1477 c 0,4,5
- 162 1477 162 1477 191 1447 c 0,6,7
- 221 1417 221 1417 221 1376 c 0,8,9
- 221 1333 221 1333 193 1306 c 0,10,11
- 164 1278 164 1278 121 1278 c 0,12,13
- 81 1278 81 1278 52 1307 c 0,14,15
- 25 1336 25 1336 25 1376 c 0,0,1
-319 1378 m 0,16,17
- 319 1416 319 1416 348 1448 c 0,18,19
- 377 1479 377 1479 416 1479 c 0,20,21
- 458 1479 458 1479 486 1449 c 0,22,23
- 516 1419 516 1419 516 1378 c 0,24,25
- 516 1334 516 1334 487 1308 c 0,26,27
- 459 1280 459 1280 416 1280 c 0,28,29
- 376 1280 376 1280 347 1309 c 0,30,31
- 319 1339 319 1339 319 1378 c 0,16,17
-EndSplineSet
-EndChar
-StartChar: guillemotleft
-Encoding: 171 171 31
-Width: 1138
-GlyphClass: 2
-Flags: W
-Fore
-340 528 m 1,0,-1
- 600 983 l 1,1,-1
- 453 983 l 1,2,-1
- 133 528 l 1,3,-1
- 453 72 l 1,4,-1
- 598 72 l 1,5,-1
- 340 528 l 1,0,-1
-727 528 m 1,6,-1
- 991 983 l 1,7,-1
- 840 983 l 1,8,-1
- 524 528 l 1,9,-1
- 840 72 l 1,10,-1
- 991 72 l 1,11,-1
- 727 528 l 1,6,-1
-EndSplineSet
-EndChar
-StartChar: logicalnot
-Encoding: 172 172 32
-Width: 1329
-GlyphClass: 2
-Flags: W
-Fore
-1120 801 m 1,0,-1
- 1122 272 l 1,1,-1
- 1028 272 l 1,2,-1
- 1028 727 l 1,3,-1
- 117 727 l 1,4,-1
- 117 801 l 1,5,-1
- 1120 801 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: softhyphen
-Encoding: 8722 173 33
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 543 m 1,0,-1
- 221 641 l 1,1,-1
- 1405 641 l 1,2,-1
- 1405 543 l 1,3,-1
- 221 543 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: degree
-Encoding: 176 176 34
-Width: 872
-GlyphClass: 2
-Flags: W
-Fore
-426 297 m 0,0,1
- 295 297 295 297 213 379 c 0,2,3
- 131 460 131 460 131 592 c 0,4,5
- 131 724 131 724 213 806 c 0,6,7
- 296 889 296 889 426 889 c 0,8,9
- 557 889 557 889 640 806 c 128,-1,10
- 723 723 723 723 723 592 c 0,11,12
- 723 463 723 463 640 380 c 128,-1,13
- 557 297 557 297 426 297 c 0,0,1
-426 346 m 0,14,15
- 535 346 535 346 604 415 c 0,16,17
- 674 482 674 482 674 592 c 0,18,19
- 674 701 674 701 604 770 c 0,20,21
- 534 840 534 840 426 840 c 0,22,23
- 319 840 319 840 249 770 c 0,24,25
- 180 701 180 701 180 592 c 0,26,27
- 180 482 180 482 249 415 c 0,28,29
- 318 346 318 346 426 346 c 0,14,15
-EndSplineSet
-EndChar
-StartChar: plusminus
-Encoding: 177 177 35
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 0 m 1,0,-1
- 221 98 l 1,1,-1
- 1407 98 l 1,2,-1
- 1407 0 l 1,3,-1
- 221 0 l 1,0,-1
-766 297 m 1,4,-1
- 766 692 l 1,5,-1
- 221 692 l 1,6,-1
- 221 791 l 1,7,-1
- 766 791 l 1,8,-1
- 766 1184 l 1,9,-1
- 864 1184 l 1,10,-1
- 864 791 l 1,11,-1
- 1407 791 l 1,12,-1
- 1407 692 l 1,13,-1
- 864 692 l 1,14,-1
- 864 297 l 1,15,-1
- 766 297 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: paragraph
-Encoding: 182 182 36
-Width: 1099
-GlyphClass: 2
-Flags: W
-Fore
-406 -408 m 1,0,-1
- 406 639 l 1,1,2
- 226 646 226 646 113 758 c 0,3,4
- 0 866 0 866 0 1044 c 0,5,6
- 0 1252 0 1252 135 1364 c 0,7,8
- 262 1466 262 1466 473 1466 c 2,9,-1
- 1108 1466 l 1,10,-1
- 1108 1292 l 1,11,-1
- 963 1292 l 1,12,-1
- 963 -408 l 1,13,-1
- 793 -408 l 1,14,-1
- 793 1292 l 1,15,-1
- 569 1292 l 1,16,-1
- 569 -408 l 1,17,-1
- 406 -408 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: guillemotright
-Encoding: 187 187 37
-Width: 1138
-GlyphClass: 2
-Flags: W
-Fore
-791 528 m 1,0,-1
- 530 72 l 1,1,-1
- 678 72 l 1,2,-1
- 997 528 l 1,3,-1
- 678 983 l 1,4,-1
- 528 983 l 1,5,-1
- 791 528 l 1,0,-1
-403 528 m 1,6,-1
- 139 72 l 1,7,-1
- 291 72 l 1,8,-1
- 604 528 l 1,9,-1
- 291 983 l 1,10,-1
- 139 983 l 1,11,-1
- 403 528 l 1,6,-1
-EndSplineSet
-EndChar
-StartChar: questiondown
-Encoding: 191 191 38
-Width: 909
-GlyphClass: 2
-Flags: W
-Fore
-453 1405 m 0,0,1
- 498 1405 498 1405 530 1372 c 0,2,3
- 563 1339 563 1339 563 1294 c 0,4,5
- 563 1248 563 1248 530 1217 c 0,6,7
- 498 1184 498 1184 453 1184 c 0,8,9
- 408 1184 408 1184 375 1217 c 0,10,11
- 342 1248 342 1248 342 1294 c 0,12,13
- 342 1339 342 1339 375 1372 c 128,-1,14
- 408 1405 408 1405 453 1405 c 0,0,1
-440 1057 m 1,15,-1
- 479 1057 l 1,16,17
- 476 932 476 932 373 693 c 0,18,19
- 270 459 270 459 270 324 c 0,20,21
- 270 209 270 209 330 131 c 0,22,23
- 394 47 394 47 508 47 c 0,24,25
- 578 47 578 47 631 78 c 0,26,27
- 694 114 694 114 694 178 c 0,28,29
- 694 210 694 210 664 263 c 0,30,31
- 633 315 633 315 633 348 c 0,32,33
- 633 380 633 380 656 406 c 0,34,35
- 680 430 680 430 713 430 c 0,36,37
- 766 430 766 430 797 379 c 0,38,39
- 823 335 823 335 823 279 c 0,40,41
- 823 142 823 142 707 59 c 0,42,43
- 601 -12 601 -12 461 -12 c 0,44,45
- 313 -12 313 -12 205 72 c 0,46,47
- 88 162 88 162 88 305 c 0,48,49
- 88 431 88 431 176 559 c 2,50,-1
- 342 780 l 2,51,52
- 434 919 434 919 440 1057 c 1,15,-1
-EndSplineSet
-EndChar
-StartChar: multiply
-Encoding: 215 215 39
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 70 m 1,0,-1
- 743 592 l 1,1,-1
- 221 1114 l 1,2,-1
- 293 1184 l 1,3,-1
- 813 662 l 1,4,-1
- 1337 1184 l 1,5,-1
- 1405 1114 l 1,6,-1
- 883 592 l 1,7,-1
- 1405 70 l 1,8,-1
- 1337 0 l 1,9,-1
- 813 522 l 1,10,-1
- 293 0 l 1,11,-1
- 221 70 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: divide
-Encoding: 247 247 40
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-715 98 m 1,0,-1
- 715 295 l 1,1,-1
- 913 295 l 1,2,-1
- 913 98 l 1,3,-1
- 715 98 l 1,0,-1
-221 543 m 1,4,-1
- 221 641 l 1,5,-1
- 1407 641 l 1,6,-1
- 1407 543 l 1,7,-1
- 221 543 l 1,4,-1
-715 887 m 1,8,-1
- 715 1085 l 1,9,-1
- 913 1085 l 1,10,-1
- 913 887 l 1,11,-1
- 715 887 l 1,8,-1
-EndSplineSet
-EndChar
-StartChar: OE
-Encoding: 338 338 41
-Width: 2058
-GlyphClass: 2
-Flags: W
-Fore
-725 1468 m 0,0,1
- 747 1468 747 1468 779 1460 c 0,2,3
- 817 1452 817 1452 834 1452 c 2,4,-1
- 1804 1452 l 1,5,-1
- 1831 1126 l 1,6,-1
- 1784 1126 l 1,7,8
- 1745 1307 1745 1307 1622 1352 c 0,9,10
- 1562 1374 1562 1374 1331 1374 c 0,11,12
- 1231 1374 1231 1374 1204 1368 c 0,13,14
- 1128 1351 1128 1351 1128 1284 c 2,15,-1
- 1128 883 l 2,16,17
- 1128 819 1128 819 1178 819 c 2,18,-1
- 1503 819 l 2,19,20
- 1582 819 1582 819 1628 891 c 0,21,22
- 1668 953 1668 953 1669 1036 c 1,23,-1
- 1716 1036 l 1,24,-1
- 1716 512 l 1,25,-1
- 1679 512 l 1,26,27
- 1663 610 1663 610 1634 657 c 0,28,29
- 1593 725 1593 725 1507 725 c 2,30,-1
- 1206 725 l 2,31,32
- 1128 725 1128 725 1128 651 c 2,33,-1
- 1128 182 l 2,34,35
- 1128 88 1128 88 1217 88 c 2,36,-1
- 1559 88 l 2,37,38
- 1708 88 1708 88 1790 170 c 0,39,40
- 1854 233 1854 233 1915 387 c 1,41,-1
- 1958 387 l 1,42,-1
- 1855 0 l 1,43,-1
- 852 0 l 2,44,45
- 820 0 820 0 749 -11 c 0,46,47
- 680 -23 680 -23 645 -23 c 0,48,49
- 352 -23 352 -23 180 211 c 0,50,51
- 27 422 27 422 27 725 c 0,52,53
- 27 1059 27 1059 207 1260 c 0,54,55
- 394 1468 394 1468 725 1468 c 0,0,1
-905 262 m 2,56,-1
- 905 1161 l 2,57,58
- 905 1386 905 1386 662 1386 c 0,59,60
- 466 1386 466 1386 356 1161 c 0,61,62
- 272 986 272 986 272 764 c 0,63,64
- 272 496 272 496 350 313 c 0,65,66
- 457 63 457 63 688 63 c 0,67,68
- 777 63 777 63 842 119 c 0,69,70
- 905 174 905 174 905 262 c 2,56,-1
-EndSplineSet
-EndChar
-StartChar: oe
-Encoding: 339 339 42
-Width: 1748
-GlyphClass: 2
-Flags: W
-Fore
-1606 604 m 1,0,-1
- 965 604 l 1,1,2
- 973 164 973 164 1270 164 c 0,3,4
- 1496 164 1496 164 1593 399 c 1,5,-1
- 1651 399 l 1,6,7
- 1534 -12 1534 -12 1237 -12 c 0,8,9
- 978 -12 978 -12 879 217 c 1,10,11
- 825 112 825 112 720 49 c 128,-1,12
- 615 -14 615 -14 496 -14 c 0,13,14
- 280 -14 280 -14 150 135 c 0,15,16
- 25 278 25 278 25 496 c 0,17,18
- 25 711 25 711 152 862 c 0,19,20
- 287 1024 287 1024 498 1024 c 0,21,22
- 621 1024 621 1024 715 971 c 0,23,24
- 794 923 794 923 877 815 c 1,25,26
- 984 1028 984 1028 1219 1028 c 0,27,28
- 1388 1028 1388 1028 1499 899 c 0,29,30
- 1603 777 1603 777 1606 604 c 1,0,-1
-506 70 m 1,31,-1
- 547 73 l 2,32,33
- 657 91 657 91 717 225 c 0,34,35
- 768 342 768 342 768 504 c 0,36,37
- 768 669 768 669 707 791 c 0,38,39
- 630 946 630 946 483 946 c 0,40,41
- 350 946 350 946 279 797 c 0,42,43
- 223 676 223 676 223 528 c 0,44,45
- 223 360 223 360 283 236 c 0,46,47
- 358 72 358 72 506 72 c 1,48,-1
- 506 70 l 1,31,-1
-1192 924 m 0,49,50
- 1004 924 1004 924 969 676 c 1,51,-1
- 1403 676 l 1,52,53
- 1397 924 1397 924 1192 924 c 0,49,50
-EndSplineSet
-EndChar
-StartChar: Scaron
-Encoding: 352 352 43
-Width: 1138
-GlyphClass: 2
-Flags: W
-Fore
-940 1386 m 1,0,-1
- 940 918 l 1,1,-1
- 903 918 l 1,2,3
- 884 1087 884 1087 793 1190 c 0,4,5
- 692 1307 692 1307 528 1307 c 0,6,7
- 432 1307 432 1307 356 1241 c 0,8,9
- 274 1173 274 1173 274 1079 c 0,10,11
- 274 961 274 961 471 852 c 2,12,-1
- 834 655 l 2,13,14
- 1030 523 1030 523 1030 346 c 0,15,16
- 1030 178 1030 178 899 70 c 0,17,18
- 775 -31 775 -31 604 -31 c 0,19,20
- 538 -31 538 -31 414 8 c 0,21,22
- 288 47 288 47 223 47 c 0,23,24
- 201 47 201 47 189 20 c 0,25,26
- 178 -6 178 -6 180 -31 c 1,27,-1
- 141 -31 l 1,28,-1
- 141 434 l 1,29,-1
- 180 434 l 1,30,31
- 240 59 240 59 578 59 c 0,32,33
- 684 59 684 59 766 119 c 0,34,35
- 856 186 856 186 856 289 c 0,36,37
- 856 422 856 422 668 532 c 2,38,-1
- 317 725 l 2,39,40
- 129 854 129 854 129 1030 c 0,41,42
- 129 1188 129 1188 248 1292 c 0,43,44
- 366 1397 366 1397 526 1397 c 0,45,46
- 586 1397 586 1397 698 1348 c 0,47,48
- 810 1298 810 1298 834 1298 c 0,49,50
- 863 1298 863 1298 885 1329 c 0,51,52
- 902 1354 902 1354 903 1386 c 1,53,-1
- 940 1386 l 1,0,-1
-657 1483 m 1,54,-1
- 473 1483 l 1,55,-1
- 283 1812 l 1,56,-1
- 313 1812 l 1,57,-1
- 563 1587 l 1,58,-1
- 815 1812 l 1,59,-1
- 846 1812 l 1,60,-1
- 657 1483 l 1,54,-1
-EndSplineSet
-EndChar
-StartChar: scaron
-Encoding: 353 353 44
-Width: 796
-GlyphClass: 2
-Flags: W
-Fore
-655 942 m 1,0,-1
- 655 631 l 1,1,-1
- 623 631 l 1,2,3
- 562 877 562 877 373 877 c 0,4,5
- 315 877 315 877 270 850 c 0,6,7
- 218 819 218 819 217 766 c 0,8,9
- 217 666 217 666 348 592 c 2,10,-1
- 594 467 l 2,11,12
- 724 382 724 382 725 250 c 0,13,14
- 725 131 725 131 633 51 c 0,15,16
- 539 -29 539 -29 420 -29 c 0,17,18
- 378 -29 378 -29 295 -2 c 128,-1,19
- 212 25 212 25 170 25 c 0,20,21
- 146 25 146 25 137 -14 c 1,22,-1
- 104 -14 l 1,23,-1
- 104 313 l 1,24,-1
- 137 313 l 1,25,26
- 160 196 160 196 229 121 c 0,27,28
- 306 37 306 37 418 37 c 0,29,30
- 481 37 481 37 529 73 c 0,31,32
- 578 110 578 110 578 170 c 0,33,34
- 578 270 578 270 455 344 c 2,35,-1
- 223 467 l 2,36,37
- 100 551 100 551 100 678 c 0,38,39
- 100 792 100 792 181 867 c 128,-1,40
- 262 942 262 942 379 942 c 0,41,42
- 414 942 414 942 475 923 c 0,43,44
- 540 903 540 903 571 903 c 2,45,-1
- 602 911 l 1,46,-1
- 623 942 l 1,47,-1
- 655 942 l 1,0,-1
-492 1055 m 1,48,-1
- 307 1055 l 1,49,-1
- 117 1384 l 1,50,-1
- 147 1384 l 1,51,-1
- 397 1153 l 1,52,-1
- 649 1384 l 1,53,-1
- 680 1384 l 1,54,-1
- 492 1055 l 1,48,-1
-EndSplineSet
-EndChar
-StartChar: Ydieresis
-Encoding: 376 376 45
-Width: 1488
-GlyphClass: 2
-Flags: W
-Fore
-434 1839 m 1,0,1
- 485 1839 485 1839 520 1805 c 0,2,3
- 557 1772 557 1772 557 1724 c 0,4,5
- 557 1676 557 1676 522 1639 c 0,6,7
- 487 1604 487 1604 438 1604 c 0,8,9
- 390 1604 390 1604 353 1639 c 0,10,11
- 317 1675 317 1675 317 1724 c 0,12,13
- 317 1769 317 1769 354 1803 c 0,14,15
- 391 1837 391 1837 436 1837 c 1,16,-1
- 434 1839 l 1,0,1
-1040 1729 m 0,17,18
- 1040 1677 1040 1677 1000 1641 c 0,19,20
- 960 1606 960 1606 907 1606 c 0,21,22
- 862 1606 862 1606 831 1642 c 0,23,24
- 801 1680 801 1680 801 1724 c 0,25,26
- 801 1774 801 1774 844 1805 c 0,27,28
- 887 1837 887 1837 938 1837 c 0,29,30
- 979 1837 979 1837 1010 1803 c 0,31,32
- 1040 1770 1040 1770 1040 1729 c 0,17,18
-584 1458 m 1,33,-1
- 584 1423 l 1,34,35
- 432 1423 432 1423 432 1337 c 0,36,37
- 432 1302 432 1302 770 758 c 1,38,39
- 1114 1291 1114 1291 1114 1352 c 0,40,41
- 1114 1420 1114 1420 969 1421 c 1,42,-1
- 971 1460 l 1,43,44
- 1080 1452 1080 1452 1184 1452 c 0,45,46
- 1313 1452 1313 1452 1442 1462 c 1,47,-1
- 1442 1417 l 1,48,49
- 1327 1417 1327 1417 1192 1255 c 0,50,51
- 1096 1145 1096 1145 971 922 c 2,52,-1
- 811 631 l 1,53,-1
- 811 190 l 2,54,55
- 811 51 811 51 1022 41 c 1,56,-1
- 1022 0 l 1,57,58
- 851 5 851 5 687 5 c 2,59,-1
- 412 1 l 1,60,-1
- 375 0 l 1,61,-1
- 375 41 l 1,62,63
- 460 41 460 41 518 80 c 0,64,65
- 584 126 584 126 584 207 c 2,66,-1
- 582 637 l 1,67,68
- 543 688 543 688 412 934 c 0,69,70
- 291 1161 291 1161 209 1262 c 0,71,72
- 80 1415 80 1415 -49 1415 c 1,73,-1
- -49 1456 l 1,74,75
- 506 1456 506 1456 584 1458 c 1,33,-1
-EndSplineSet
-EndChar
-StartChar: Zcaron
-Encoding: 381 381 46
-Width: 1251
-GlyphClass: 2
-Flags: W
-Fore
-1178 1356 m 1,0,-1
- 287 82 l 1,1,-1
- 825 86 l 2,2,3
- 966 87 966 87 1047 158 c 0,4,5
- 1120 223 1120 223 1161 365 c 1,6,-1
- 1194 358 l 1,7,-1
- 1130 0 l 1,8,-1
- 27 0 l 1,9,-1
- 27 37 l 1,10,-1
- 897 1276 l 1,11,-1
- 477 1276 l 2,12,13
- 332 1276 332 1276 270 1220 c 0,14,15
- 210 1164 210 1164 184 1018 c 1,16,-1
- 147 1018 l 1,17,-1
- 174 1356 l 1,18,-1
- 1178 1356 l 1,0,-1
-733 1483 m 1,19,-1
- 551 1483 l 1,20,-1
- 360 1792 l 1,21,-1
- 391 1792 l 1,22,-1
- 639 1567 l 1,23,-1
- 893 1792 l 1,24,-1
- 924 1792 l 1,25,-1
- 733 1483 l 1,19,-1
-EndSplineSet
-EndChar
-StartChar: zcaron
-Encoding: 382 382 47
-Width: 909
-GlyphClass: 2
-Flags: W
-Fore
-860 281 m 1,0,-1
- 850 0 l 1,1,-1
- 41 0 l 1,2,-1
- 41 37 l 1,3,-1
- 649 846 l 1,4,-1
- 360 846 l 2,5,6
- 247 846 247 846 201 811 c 0,7,8
- 146 772 146 772 141 662 c 1,9,-1
- 102 662 l 1,10,-1
- 109 915 l 1,11,-1
- 877 915 l 1,12,-1
- 877 879 l 1,13,-1
- 262 68 l 1,14,-1
- 578 68 l 2,15,16
- 708 68 708 68 761 111 c 0,17,18
- 816 154 816 154 825 281 c 1,19,-1
- 860 281 l 1,0,-1
-563 1055 m 1,20,-1
- 379 1055 l 1,21,-1
- 188 1384 l 1,22,-1
- 219 1384 l 1,23,-1
- 471 1165 l 1,24,-1
- 723 1384 l 1,25,-1
- 752 1384 l 1,26,-1
- 563 1055 l 1,20,-1
-EndSplineSet
-EndChar
-StartChar: florin
-Encoding: 402 402 48
-Width: 1024
-GlyphClass: 2
-Flags: W
-Fore
-702 897 m 1,0,-1
- 885 897 l 1,1,-1
- 868 829 l 1,2,-1
- 688 829 l 1,3,4
- 597 347 597 347 514 96 c 0,5,6
- 340 -442 340 -442 125 -442 c 0,7,8
- 0 -442 0 -442 0 -334 c 0,9,10
- 0 -300 0 -300 23 -271 c 0,11,12
- 46 -244 46 -244 80 -244 c 0,13,14
- 145 -244 145 -244 145 -294 c 0,15,16
- 145 -297 145 -297 145 -301 c 1,17,-1
- 121 -358 l 1,18,-1
- 129 -375 l 1,19,-1
- 147 -381 l 1,20,21
- 236 -381 236 -381 309 -117 c 2,22,-1
- 385 229 l 1,23,-1
- 520 829 l 1,24,-1
- 340 829 l 1,25,-1
- 354 897 l 1,26,27
- 514 901 514 901 584 1036 c 2,28,-1
- 676 1286 l 2,29,30
- 738 1421 738 1421 881 1421 c 0,31,32
- 1022 1421 1022 1421 1022 1307 c 0,33,34
- 1022 1229 1022 1229 952 1229 c 0,35,36
- 889 1229 889 1229 889 1284 c 0,37,38
- 889 1297 889 1297 899 1316 c 128,-1,39
- 909 1335 909 1335 909 1348 c 0,40,41
- 909 1374 909 1374 874 1374 c 0,42,43
- 794 1374 794 1374 745 1171 c 0,44,45
- 733 1114 733 1114 702 897 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni019B
-Encoding: 411 411 49
-Width: 1146
-GlyphClass: 2
-Flags: W
-Fore
-72 0 m 1,0,1
- 61 47 61 47 61 55 c 0,2,3
- 61 196 61 196 252 485 c 2,4,-1
- 541 889 l 1,5,-1
- 506 977 l 1,6,-1
- 514 952 l 1,7,-1
- 205 952 l 1,8,-1
- 205 1024 l 1,9,-1
- 492 1024 l 1,10,11
- 437 1189 437 1189 408 1221 c 0,12,13
- 360 1272 360 1272 212 1272 c 0,14,15
- 208 1272 208 1272 203 1272 c 1,16,-1
- 328 1389 l 1,17,-1
- 360 1389 l 2,18,19
- 642 1389 642 1389 680 1024 c 1,20,-1
- 932 1024 l 1,21,-1
- 932 952 l 1,22,-1
- 702 952 l 1,23,-1
- 827 446 l 2,24,25
- 925 121 925 121 1055 0 c 1,26,-1
- 834 0 l 1,27,28
- 738 116 738 116 662 389 c 2,29,-1
- 559 815 l 1,30,31
- 371 550 371 550 342 500 c 0,32,33
- 225 299 225 299 225 147 c 0,34,35
- 225 57 225 57 285 0 c 1,36,-1
- 72 0 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: circumflex
-Encoding: 710 710 50
-Width: 681
-GlyphClass: 2
-Flags: W
-Fore
-666 1112 m 1,0,-1
- 631 1110 l 1,1,-1
- 360 1321 l 1,2,-1
- 76 1102 l 1,3,-1
- 33 1112 l 1,4,-1
- 362 1491 l 1,5,-1
- 666 1112 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: dotaccent
-Encoding: 729 729 51
-Width: 542
-GlyphClass: 2
-Flags: W
-Fore
-174 1362 m 0,0,1
- 174 1404 174 1404 202 1433 c 0,2,3
- 229 1462 229 1462 270 1462 c 0,4,5
- 310 1462 310 1462 341 1433 c 0,6,7
- 371 1403 371 1403 371 1362 c 0,8,9
- 371 1320 371 1320 342 1291 c 0,10,11
- 314 1264 314 1264 270 1264 c 0,12,13
- 229 1264 229 1264 202 1292 c 0,14,15
- 174 1320 174 1320 174 1362 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: ring
-Encoding: 730 730 52
-Width: 532
-GlyphClass: 2
-Flags: W
-Fore
-53 1356 m 0,0,1
- 53 1452 53 1452 120 1519 c 0,2,3
- 186 1585 186 1585 283 1585 c 0,4,5
- 379 1585 379 1585 445 1519 c 0,6,7
- 512 1452 512 1452 512 1356 c 0,8,9
- 512 1262 512 1262 444 1194 c 128,-1,10
- 376 1126 376 1126 283 1126 c 0,11,12
- 187 1126 187 1126 120 1193 c 0,13,14
- 53 1259 53 1259 53 1356 c 0,0,1
-135 1354 m 0,15,16
- 135 1292 135 1292 178 1247 c 0,17,18
- 223 1204 223 1204 285 1204 c 0,19,20
- 346 1204 346 1204 391 1247 c 0,21,22
- 434 1290 434 1290 434 1354 c 0,23,24
- 434 1415 434 1415 390 1459 c 0,25,26
- 347 1503 347 1503 285 1503 c 0,27,28
- 221 1503 221 1503 178 1460 c 128,-1,29
- 135 1417 135 1417 135 1354 c 0,15,16
-EndSplineSet
-EndChar
-StartChar: tilde
-Encoding: 732 732 53
-Width: 681
-GlyphClass: 2
-Flags: W
-Fore
-53 1217 m 1,0,-1
- 23 1217 l 1,1,2
- 30 1475 30 1475 211 1475 c 0,3,4
- 257 1475 257 1475 535 1335 c 1,5,6
- 604 1335 604 1335 631 1475 c 1,7,-1
- 662 1475 l 1,8,-1
- 662 1462 l 2,9,10
- 662 1368 662 1368 616 1294 c 0,11,12
- 563 1212 563 1212 471 1212 c 0,13,14
- 410 1212 410 1212 147 1354 c 1,15,16
- 80 1354 80 1354 53 1217 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni03F1
-Encoding: 1009 1009 54
-Width: 1132
-GlyphClass: 2
-Flags: W
-Fore
-809 -262 m 1,0,-1
- 877 -420 l 1,1,2
- 766 -369 766 -369 543 -369 c 0,3,4
- 339 -369 339 -369 268 -322 c 0,5,6
- 154 -246 154 -246 154 12 c 0,7,8
- 154 347 154 347 264 571 c 0,9,10
- 408 866 408 866 705 866 c 0,11,12
- 1014 866 1014 866 1014 582 c 0,13,14
- 1014 340 1014 340 858 166 c 0,15,16
- 699 -14 699 -14 459 -14 c 0,17,18
- 294 -14 294 -14 227 135 c 1,19,20
- 221 92 221 92 221 59 c 0,21,22
- 221 -137 221 -137 348 -211 c 0,23,24
- 437 -266 437 -266 635 -266 c 0,25,26
- 686 -266 686 -266 723 -264 c 2,27,-1
- 809 -262 l 1,0,-1
-508 51 m 0,28,29
- 662 51 662 51 758 236 c 0,30,31
- 836 388 836 388 836 557 c 0,32,33
- 836 809 836 809 666 809 c 0,34,35
- 506 809 506 809 420 608 c 0,36,37
- 356 454 356 454 356 268 c 0,38,39
- 356 51 356 51 508 51 c 0,28,29
-EndSplineSet
-EndChar
-StartChar: endash
-Encoding: 8211 8211 55
-Width: 1138
-GlyphClass: 2
-Flags: W
-Fore
--4 459 m 1,0,-1
- 1135 459 l 1,1,-1
- 1135 606 l 1,2,-1
- -4 606 l 1,3,-1
- -4 459 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: emdash
-Encoding: 8212 8212 56
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-0 459 m 1,0,-1
- 2048 459 l 1,1,-1
- 2048 606 l 1,2,-1
- 0 606 l 1,3,-1
- 0 459 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: quoteleft
-Encoding: 8216 8216 57
-Width: 481
-GlyphClass: 2
-Flags: W
-Fore
-297 1122 m 0,0,1
- 344 1122 344 1122 375 1084 c 0,2,3
- 406 1045 406 1045 406 999 c 0,4,5
- 406 953 406 953 369 923 c 0,6,7
- 332 893 332 893 283 893 c 0,8,9
- 190 893 190 893 136 965 c 0,10,11
- 82 1036 82 1036 82 1130 c 0,12,13
- 82 1240 82 1240 166 1350 c 0,14,15
- 258 1466 258 1466 365 1466 c 1,16,-1
- 373 1450 l 1,17,-1
- 246 1329 l 2,18,19
- 178 1251 178 1251 178 1174 c 0,20,21
- 178 1122 178 1122 215 1092 c 1,22,23
- 258 1122 258 1122 297 1122 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: quoteright
-Encoding: 8217 8217 58
-Width: 481
-GlyphClass: 2
-Flags: W
-Fore
-94 1358 m 0,0,1
- 94 1406 94 1406 133 1437 c 0,2,3
- 171 1468 171 1468 219 1468 c 0,4,5
- 308 1468 308 1468 362 1386 c 0,6,7
- 412 1315 412 1315 412 1223 c 0,8,9
- 412 1107 412 1107 321 999 c 0,10,11
- 230 893 230 893 115 893 c 1,12,-1
- 100 905 l 1,13,14
- 121 942 121 942 178 977 c 0,15,16
- 246 1016 246 1016 264 1036 c 0,17,18
- 305 1082 305 1082 305 1161 c 0,19,20
- 305 1201 305 1201 283 1260 c 1,21,22
- 247 1239 247 1239 217 1239 c 0,23,24
- 169 1239 169 1239 131 1274 c 0,25,26
- 94 1308 94 1308 94 1358 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: quotesinglbase
-Encoding: 8218 8218 59
-Width: 481
-GlyphClass: 2
-Flags: W
-Fore
-180 -39 m 1,0,1
- 137 -39 137 -39 106 -2 c 0,2,3
- 76 36 76 36 76 80 c 0,4,5
- 76 127 76 127 113 160 c 0,6,7
- 149 193 149 193 199 193 c 0,8,9
- 288 193 288 193 344 122 c 0,10,11
- 399 52 399 52 399 -43 c 0,12,13
- 399 -148 399 -148 309 -262 c 0,14,15
- 215 -383 215 -383 113 -383 c 1,16,-1
- 104 -367 l 1,17,18
- 207 -278 207 -278 233 -248 c 0,19,20
- 299 -172 299 -172 299 -92 c 0,21,22
- 299 -46 299 -46 268 -12 c 1,23,24
- 228 -37 228 -37 182 -37 c 1,25,-1
- 180 -39 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: quotedblleft
-Encoding: 8220 8220 60
-Width: 827
-GlyphClass: 2
-Flags: W
-Fore
-354 1024 m 0,0,1
- 354 909 354 909 233 909 c 0,2,3
- 148 909 148 909 96 991 c 0,4,5
- 51 1063 51 1063 51 1153 c 0,6,7
- 51 1281 51 1281 151 1375 c 0,8,9
- 249 1470 249 1470 377 1470 c 1,10,-1
- 387 1466 l 1,11,-1
- 393 1458 l 1,12,-1
- 389 1448 l 1,13,14
- 156 1332 156 1332 156 1190 c 0,15,16
- 156 1156 156 1156 174 1118 c 1,17,18
- 218 1143 218 1143 252 1143 c 0,19,20
- 294 1143 294 1143 325 1106 c 0,21,22
- 354 1068 354 1068 354 1024 c 0,0,1
-666 1143 m 1,23,24
- 709 1143 709 1143 740 1109 c 0,25,26
- 772 1076 772 1076 772 1032 c 0,27,28
- 772 980 772 980 730 942 c 0,29,30
- 687 905 687 905 633 905 c 0,31,32
- 551 905 551 905 502 981 c 0,33,34
- 461 1045 461 1045 461 1135 c 0,35,36
- 461 1259 461 1259 543 1360 c 0,37,38
- 629 1470 629 1470 750 1470 c 2,39,-1
- 780 1464 l 1,40,-1
- 788 1456 l 1,41,-1
- 784 1448 l 1,42,43
- 677 1386 677 1386 639 1348 c 0,44,45
- 567 1278 567 1278 567 1192 c 0,46,47
- 567 1171 567 1171 586 1118 c 1,48,49
- 614 1132 614 1132 668 1143 c 1,50,-1
- 666 1143 l 1,23,24
-EndSplineSet
-EndChar
-StartChar: quotedblright
-Encoding: 8221 8221 61
-Width: 827
-GlyphClass: 2
-Flags: W
-Fore
-238 1167 m 1,0,1
- 238 1204 238 1204 219 1251 c 1,2,3
- 184 1231 184 1231 147 1231 c 0,4,5
- 101 1231 101 1231 69 1266 c 0,6,7
- 35 1300 35 1300 35 1346 c 0,8,9
- 35 1394 35 1394 75 1430 c 0,10,11
- 113 1464 113 1464 164 1464 c 0,12,13
- 250 1464 250 1464 305 1395 c 0,14,15
- 354 1332 354 1332 354 1241 c 0,16,17
- 354 1120 354 1120 262 1012 c 0,18,19
- 170 901 170 901 53 901 c 1,20,-1
- 20 915 l 1,21,-1
- 37 936 l 1,22,23
- 120 966 120 966 174 1024 c 0,24,25
- 240 1090 240 1090 240 1169 c 1,26,-1
- 238 1167 l 1,0,1
-547 1233 m 1,27,28
- 504 1233 504 1233 475 1268 c 0,29,30
- 446 1303 446 1303 446 1348 c 0,31,32
- 446 1396 446 1396 486 1430 c 0,33,34
- 527 1462 527 1462 575 1462 c 0,35,36
- 660 1462 660 1462 709 1386 c 0,37,38
- 750 1321 750 1321 750 1231 c 0,39,40
- 750 1106 750 1106 657 1005 c 0,41,42
- 566 903 566 903 442 903 c 1,43,-1
- 420 920 l 1,44,-1
- 565 1022 l 2,45,46
- 645 1082 645 1082 645 1169 c 0,47,48
- 645 1214 645 1214 635 1247 c 1,49,50
- 588 1233 588 1233 545 1233 c 1,51,-1
- 547 1233 l 1,27,28
-EndSplineSet
-EndChar
-StartChar: quotedblbase
-Encoding: 8222 8222 62
-Width: 827
-GlyphClass: 2
-Flags: W
-Fore
-31 84 m 0,0,1
- 31 134 31 134 70 171 c 0,2,3
- 110 209 110 209 158 209 c 0,4,5
- 248 209 248 209 297 133 c 0,6,7
- 340 68 340 68 340 -29 c 0,8,9
- 340 -156 340 -156 248 -259 c 0,10,11
- 156 -360 156 -360 29 -360 c 1,12,-1
- 2 -346 l 1,13,14
- 131 -256 131 -256 150 -240 c 0,15,16
- 227 -168 227 -168 227 -84 c 0,17,18
- 227 -44 227 -44 215 -6 c 1,19,20
- 167 -29 167 -29 131 -29 c 0,21,22
- 90 -29 90 -29 60 7 c 0,23,24
- 31 44 31 44 31 84 c 0,0,1
-449 102 m 0,25,26
- 449 149 449 149 484 178 c 0,27,28
- 519 209 519 209 565 209 c 0,29,30
- 651 209 651 209 705 129 c 0,31,32
- 752 57 752 57 752 -33 c 0,33,34
- 752 -161 752 -161 654 -261 c 0,35,36
- 556 -360 556 -360 430 -360 c 2,37,-1
- 408 -354 l 1,38,-1
- 406 -346 l 1,39,40
- 436 -315 436 -315 505 -269 c 0,41,42
- 575 -224 575 -224 600 -193 c 0,43,44
- 643 -144 643 -144 643 -74 c 0,45,46
- 643 -41 643 -41 633 -8 c 1,47,48
- 594 -29 594 -29 551 -29 c 0,49,50
- 502 -29 502 -29 473 14 c 0,51,52
- 449 52 449 52 449 102 c 0,25,26
-EndSplineSet
-EndChar
-StartChar: dagger
-Encoding: 8224 8224 63
-Width: 919
-GlyphClass: 2
-Flags: W
-Fore
-436 1473 m 0,0,1
- 555 1473 555 1473 555 1327 c 0,2,3
- 555 1279 555 1279 461 1022 c 1,4,5
- 686 1106 686 1106 723 1106 c 0,6,7
- 770 1106 770 1106 807 1075 c 0,8,9
- 844 1044 844 1044 844 999 c 0,10,11
- 844 953 844 953 809 921 c 0,12,13
- 776 889 776 889 727 889 c 0,14,15
- 671 889 671 889 594 924 c 0,16,17
- 499 965 499 965 465 971 c 1,18,19
- 492 802 492 802 563 758 c 1,20,21
- 461 422 461 422 461 -55 c 0,22,23
- 461 -178 461 -178 469 -365 c 1,24,-1
- 403 -365 l 1,25,-1
- 403 -166 l 2,26,27
- 403 494 403 494 301 764 c 1,28,29
- 402 836 402 836 403 971 c 1,30,31
- 373 965 373 965 281 924 c 0,32,33
- 204 891 204 891 156 891 c 0,34,35
- 109 891 109 891 76 923 c 0,36,37
- 41 955 41 955 41 999 c 0,38,39
- 41 1042 41 1042 75 1072 c 0,40,41
- 108 1102 108 1102 152 1102 c 0,42,43
- 201 1102 201 1102 276 1069 c 0,44,45
- 367 1028 367 1028 397 1022 c 1,46,47
- 390 1060 390 1060 350 1178 c 0,48,49
- 319 1274 319 1274 319 1335 c 0,50,51
- 319 1389 319 1389 351 1432 c 0,52,53
- 383 1473 383 1473 436 1473 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: daggerdbl
-Encoding: 8225 8225 64
-Width: 1024
-GlyphClass: 2
-Flags: W
-Fore
-530 977 m 1,0,1
- 544 869 544 869 625 807 c 1,2,3
- 530 668 530 668 530 483 c 0,4,5
- 530 311 530 311 625 170 c 1,6,7
- 545 104 545 104 530 0 c 1,8,9
- 568 6 568 6 659 43 c 0,10,11
- 744 74 744 74 793 74 c 0,12,13
- 829 74 829 74 857 48 c 0,14,15
- 885 23 885 23 885 -14 c 0,16,17
- 885 -51 885 -51 857 -79 c 0,18,19
- 830 -106 830 -106 793 -106 c 0,20,21
- 741 -106 741 -106 662 -74 c 0,22,23
- 571 -38 571 -38 530 -37 c 1,24,25
- 538 -85 538 -85 578 -186 c 0,26,27
- 614 -279 614 -279 614 -338 c 0,28,29
- 614 -381 614 -381 585 -412 c 0,30,31
- 555 -442 555 -442 512 -442 c 0,32,33
- 471 -442 471 -442 442 -410 c 0,34,35
- 414 -378 414 -378 414 -334 c 0,36,37
- 414 -278 414 -278 450 -181 c 0,38,39
- 486 -78 486 -78 489 -37 c 1,40,41
- 446 -39 446 -39 362 -73 c 0,42,43
- 280 -106 280 -106 231 -106 c 0,44,45
- 194 -106 194 -106 168 -81 c 0,46,47
- 141 -56 141 -56 141 -18 c 0,48,49
- 141 20 141 20 170 47 c 0,50,51
- 198 74 198 74 238 74 c 0,52,53
- 285 74 285 74 366 41 c 0,54,55
- 442 9 442 9 489 6 c 1,56,57
- 475 107 475 107 393 170 c 1,58,59
- 492 299 492 299 492 496 c 0,60,61
- 492 699 492 699 393 807 c 1,62,63
- 474 865 474 865 489 977 c 1,64,65
- 446 972 446 972 358 940 c 0,66,67
- 274 909 274 909 227 909 c 0,68,69
- 193 909 193 909 166 936 c 128,-1,70
- 139 963 139 963 139 997 c 0,71,72
- 139 1032 139 1032 165 1058 c 0,73,74
- 190 1083 190 1083 225 1083 c 0,75,76
- 273 1083 273 1083 361 1051 c 0,77,78
- 451 1017 451 1017 489 1014 c 1,79,80
- 488 1062 488 1062 449 1161 c 0,81,82
- 410 1257 410 1257 410 1311 c 0,83,84
- 410 1355 410 1355 439 1388 c 0,85,86
- 469 1421 469 1421 512 1421 c 0,87,88
- 608 1421 608 1421 608 1307 c 0,89,90
- 608 1250 608 1250 573 1159 c 0,91,92
- 535 1063 535 1063 530 1014 c 1,93,94
- 570 1017 570 1017 662 1053 c 0,95,96
- 744 1083 744 1083 795 1083 c 0,97,98
- 832 1083 832 1083 858 1058 c 0,99,100
- 885 1032 885 1032 885 995 c 0,101,102
- 885 958 885 958 857 933 c 0,103,104
- 829 907 829 907 791 907 c 0,105,106
- 744 907 744 907 659 938 c 0,107,108
- 572 972 572 972 530 977 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: bullet
-Encoding: 8226 8226 65
-Width: 729
-GlyphClass: 2
-Flags: W
-Fore
-346 457 m 0,0,1
- 236 457 236 457 155 535 c 0,2,3
- 74 612 74 612 74 723 c 0,4,5
- 74 833 74 833 155 911 c 128,-1,6
- 236 989 236 989 346 989 c 0,7,8
- 455 989 455 989 531 910 c 0,9,10
- 608 833 608 833 608 723 c 0,11,12
- 608 611 608 611 532 535 c 0,13,14
- 457 457 457 457 346 457 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: ellipsis
-Encoding: 8230 8230 66
-Width: 1949
-GlyphClass: 3
-Flags: W
-Fore
-381 94 m 0,0,1
- 381 47 381 47 348 14 c 0,2,3
- 319 -18 319 -18 270 -18 c 0,4,5
- 224 -18 224 -18 193 15 c 0,6,7
- 160 50 160 50 160 94 c 0,8,9
- 160 139 160 139 193 172 c 0,10,11
- 224 205 224 205 270 205 c 0,12,13
- 315 205 315 205 348 172 c 128,-1,14
- 381 139 381 139 381 94 c 0,0,1
-1063 94 m 0,15,16
- 1063 48 1063 48 1032 16 c 0,17,18
- 999 -18 999 -18 954 -18 c 0,19,20
- 909 -18 909 -18 876 15 c 0,21,22
- 842 49 842 49 842 94 c 0,23,24
- 842 139 842 139 876 172 c 0,25,26
- 909 205 909 205 954 205 c 0,27,28
- 1063 205 1063 205 1063 94 c 0,15,16
-1747 94 m 0,29,30
- 1747 46 1747 46 1716 14 c 0,31,32
- 1684 -18 1684 -18 1636 -18 c 0,33,34
- 1590 -18 1590 -18 1559 15 c 0,35,36
- 1526 50 1526 50 1526 94 c 0,37,38
- 1526 139 1526 139 1559 172 c 0,39,40
- 1590 205 1590 205 1636 205 c 0,41,42
- 1681 205 1681 205 1714 172 c 128,-1,43
- 1747 139 1747 139 1747 94 c 0,29,30
-EndSplineSet
-Ligature: 0 0 'liga' period period period
-EndChar
-StartChar: perthousand
-Encoding: 8240 8240 67
-Width: 1966
-GlyphClass: 2
-Flags: W
-Fore
-289 1386 m 0,0,1
- 429 1386 429 1386 508 1268 c 0,2,3
- 575 1166 575 1166 575 1018 c 0,4,5
- 575 872 575 872 508 770 c 0,6,7
- 430 653 430 653 291 653 c 0,8,9
- 153 653 153 653 72 770 c 0,10,11
- 0 875 0 875 0 1018 c 0,12,13
- 0 1160 0 1160 72 1266 c 0,14,15
- 153 1386 153 1386 289 1386 c 0,0,1
-291 1331 m 0,16,17
- 160 1331 160 1331 160 1020 c 0,18,19
- 160 705 160 705 287 705 c 0,20,21
- 418 705 418 705 418 1014 c 0,22,23
- 418 1331 418 1331 291 1331 c 0,16,17
-1038 1440 m 1,24,-1
- 332 -55 l 1,25,-1
- 244 -55 l 1,26,-1
- 948 1440 l 1,27,-1
- 1038 1440 l 1,24,-1
-1024 682 m 0,28,29
- 1161 682 1161 682 1239 563 c 0,30,31
- 1309 458 1309 458 1309 315 c 0,32,33
- 1309 173 1309 173 1241 70 c 0,34,35
- 1162 -47 1162 -47 1024 -47 c 0,36,37
- 890 -47 890 -47 807 70 c 0,38,39
- 733 177 733 177 733 315 c 0,40,41
- 733 460 733 460 805 563 c 0,42,43
- 886 682 886 682 1024 682 c 0,28,29
-1024 629 m 0,44,45
- 893 629 893 629 893 309 c 0,46,47
- 893 8 893 8 1022 8 c 128,-1,48
- 1151 8 1151 8 1151 313 c 0,49,50
- 1151 629 1151 629 1024 629 c 0,44,45
-1675 690 m 0,51,52
- 1813 690 1813 690 1890 571 c 0,53,54
- 1960 468 1960 468 1960 324 c 0,55,56
- 1960 181 1960 181 1892 78 c 0,57,58
- 1812 -39 1812 -39 1675 -39 c 0,59,60
- 1540 -39 1540 -39 1458 78 c 0,61,62
- 1384 185 1384 185 1384 324 c 0,63,64
- 1384 468 1384 468 1456 571 c 0,65,66
- 1538 690 1538 690 1675 690 c 0,51,52
-1675 637 m 0,67,68
- 1544 637 1544 637 1544 317 c 0,69,70
- 1544 16 1544 16 1673 16 c 128,-1,71
- 1802 16 1802 16 1802 322 c 0,72,73
- 1802 637 1802 637 1675 637 c 0,67,68
-EndSplineSet
-EndChar
-StartChar: guilsinglleft
-Encoding: 8249 8249 68
-Width: 681
-GlyphClass: 2
-Flags: W
-Fore
-563 -8 m 1,0,-1
- 506 -8 l 1,1,-1
- 119 465 l 1,2,-1
- 506 934 l 1,3,-1
- 563 934 l 1,4,-1
- 319 465 l 1,5,-1
- 563 -8 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: guilsinglright
-Encoding: 8250 8250 69
-Width: 681
-GlyphClass: 2
-Flags: W
-Fore
-115 934 m 1,0,-1
- 172 934 l 1,1,-1
- 567 463 l 1,2,-1
- 172 -8 l 1,3,-1
- 115 -8 l 1,4,-1
- 358 463 l 1,5,-1
- 115 934 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: colonmonetary
-Encoding: 8353 8353 70
-Width: 1366
-GlyphClass: 2
-Flags: W
-Fore
-385 287 m 1,0,-1
- 717 1311 l 1,1,2
- 494 1283 494 1283 387 1073 c 0,3,4
- 301 904 301 904 301 655 c 0,5,6
- 301 436 301 436 385 287 c 1,0,-1
-573 109 m 1,7,-1
- 952 1284 l 1,8,9
- 883 1312 883 1312 793 1315 c 1,10,-1
- 438 213 l 1,11,12
- 494 149 494 149 573 109 c 1,7,-1
-1106 1522 m 1,13,-1
- 1040 1321 l 1,14,15
- 1083 1292 1083 1292 1114 1292 c 0,16,17
- 1181 1292 1181 1292 1198 1386 c 1,18,-1
- 1233 1386 l 1,19,-1
- 1264 926 l 1,20,-1
- 1233 926 l 1,21,22
- 1162 1159 1162 1159 1018 1251 c 1,23,-1
- 641 82 l 1,24,25
- 722 57 722 57 809 57 c 0,26,27
- 1064 57 1064 57 1264 338 c 1,28,-1
- 1294 317 l 1,29,30
- 1098 -31 1098 -31 733 -31 c 0,31,32
- 675 -31 675 -31 606 -20 c 1,33,-1
- 547 -207 l 1,34,-1
- 479 -184 l 1,35,-1
- 537 -6 l 1,36,37
- 456 16 456 16 387 57 c 1,38,-1
- 322 -145 l 1,39,-1
- 254 -123 l 1,40,-1
- 326 100 l 1,41,42
- 74 301 74 301 74 657 c 0,43,44
- 74 954 74 954 260 1166 c 0,45,46
- 446 1378 446 1378 741 1386 c 1,47,-1
- 811 1606 l 1,48,-1
- 881 1583 l 1,49,-1
- 815 1384 l 1,50,51
- 899 1378 899 1378 975 1350 c 1,52,-1
- 1036 1544 l 1,53,-1
- 1106 1522 l 1,13,-1
-EndSplineSet
-EndChar
-StartChar: uni20A2
-Encoding: 8354 8354 71
-Width: 1441
-GlyphClass: 2
-Flags: W
-Fore
-1274 373 m 1,0,-1
- 1331 336 l 1,1,2
- 1256 176 1256 176 1103 74 c 0,3,4
- 951 -29 951 -29 776 -29 c 0,5,6
- 438 -29 438 -29 227 164 c 0,7,8
- 10 363 10 363 10 698 c 0,9,10
- 10 1019 10 1019 213 1245 c 0,11,12
- 418 1473 418 1473 737 1473 c 0,13,14
- 806 1473 806 1473 933 1428 c 0,15,16
- 1062 1384 1062 1384 1128 1384 c 0,17,18
- 1192 1384 1192 1384 1192 1473 c 1,19,-1
- 1241 1473 l 1,20,21
- 1241 1164 1241 1164 1280 991 c 1,22,-1
- 1227 983 l 1,23,24
- 1112 1384 1112 1384 791 1384 c 0,25,26
- 541 1384 541 1384 393 1184 c 0,27,28
- 262 1003 262 1003 262 743 c 0,29,30
- 262 520 262 520 334 354 c 0,31,32
- 424 139 424 139 608 94 c 1,33,-1
- 606 764 l 2,34,35
- 606 883 606 883 502 883 c 0,36,37
- 481 883 481 883 457 877 c 1,38,-1
- 457 901 l 1,39,40
- 589 952 589 952 772 1032 c 1,41,-1
- 772 864 l 1,42,43
- 888 1026 888 1026 1020 1026 c 0,44,45
- 1067 1026 1067 1026 1100 992 c 0,46,47
- 1133 959 1133 959 1133 911 c 0,48,49
- 1133 874 1133 874 1107 840 c 0,50,51
- 1082 807 1082 807 1042 807 c 0,52,53
- 981 807 981 807 936 877 c 1,54,-1
- 905 881 l 2,55,56
- 835 881 835 881 799 793 c 0,57,58
- 774 730 774 730 774 645 c 2,59,-1
- 776 84 l 1,60,61
- 946 84 946 84 1065 158 c 0,62,63
- 1163 221 1163 221 1274 373 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: franc
-Encoding: 8355 8355 72
-Width: 1267
-GlyphClass: 2
-Flags: W
-Fore
-791 1008 m 1,0,-1
- 854 864 l 1,1,2
- 971 1026 971 1026 1102 1026 c 0,3,4
- 1149 1026 1149 1026 1182 992 c 0,5,6
- 1214 960 1214 960 1214 911 c 0,7,8
- 1214 872 1214 872 1189 840 c 0,9,10
- 1164 807 1164 807 1124 807 c 0,11,12
- 1067 807 1067 807 1018 877 c 1,13,-1
- 987 881 l 2,14,15
- 918 881 918 881 883 793 c 0,16,17
- 856 728 856 728 856 645 c 2,18,-1
- 856 170 l 2,19,20
- 856 54 856 54 1030 37 c 1,21,-1
- 1036 2 l 1,22,-1
- 6 0 l 1,23,-1
- 6 41 l 1,24,25
- 123 58 123 58 168 111 c 0,26,27
- 213 164 213 164 213 283 c 2,28,-1
- 213 1231 l 2,29,30
- 213 1331 213 1331 156 1370 c 0,31,32
- 110 1404 110 1404 4 1405 c 1,33,-1
- 4 1452 l 1,34,-1
- 1118 1452 l 1,35,-1
- 1147 1112 l 1,36,-1
- 1087 1112 l 1,37,38
- 1063 1242 1063 1242 1008 1300 c 0,39,40
- 946 1366 946 1366 817 1366 c 2,41,-1
- 430 1366 l 1,42,-1
- 430 885 l 1,43,44
- 556 919 556 919 791 1008 c 1,0,-1
-430 193 m 2,45,46
- 430 116 430 116 459 82 c 0,47,48
- 486 49 486 49 561 49 c 0,49,50
- 690 49 690 49 690 182 c 2,51,-1
- 688 764 l 2,52,53
- 688 815 688 815 606 842 c 0,54,55
- 552 861 552 861 501 861 c 0,56,57
- 491 861 491 861 481 860 c 2,58,-1
- 430 858 l 1,59,-1
- 430 193 l 2,45,46
-EndSplineSet
-EndChar
-StartChar: lira
-Encoding: 8356 8356 73
-Width: 1050
-GlyphClass: 2
-Flags: W
-Fore
-63 113 m 0,0,1
- 63 86 63 86 86 68 c 0,2,3
- 108 49 108 49 137 49 c 0,4,5
- 190 49 190 49 276 143 c 1,6,7
- 221 178 221 178 147 178 c 0,8,9
- 63 178 63 178 63 113 c 0,0,1
-838 506 m 1,10,-1
- 528 506 l 1,11,12
- 526 363 526 363 446 193 c 1,13,14
- 588 154 588 154 688 154 c 0,15,16
- 938 154 938 154 981 340 c 1,17,-1
- 1020 340 l 1,18,-1
- 1020 309 l 2,19,20
- 1020 176 1020 176 930 78 c 0,21,22
- 842 -20 842 -20 709 -20 c 0,23,24
- 576 -20 576 -20 358 92 c 1,25,26
- 245 -23 245 -23 121 -23 c 0,27,28
- 65 -23 65 -23 20 20 c 0,29,30
- -23 63 -23 63 -23 117 c 0,31,32
- -23 190 -23 190 35 231 c 0,33,34
- 86 270 86 270 162 270 c 0,35,36
- 210 270 210 270 330 238 c 1,37,38
- 346 312 346 312 346 356 c 0,39,40
- 346 430 346 430 340 506 c 1,41,-1
- 98 506 l 1,42,-1
- 98 598 l 1,43,-1
- 328 598 l 1,44,45
- 323 640 323 640 311 698 c 1,46,-1
- 90 698 l 1,47,-1
- 90 780 l 1,48,-1
- 291 780 l 1,49,50
- 252 934 252 934 252 1036 c 0,51,52
- 252 1228 252 1228 356 1353 c 0,53,54
- 462 1477 462 1477 651 1477 c 0,55,56
- 754 1477 754 1477 829 1434 c 0,57,58
- 920 1380 920 1380 920 1284 c 0,59,60
- 920 1245 920 1245 892 1212 c 0,61,62
- 864 1182 864 1182 823 1182 c 0,63,64
- 752 1182 752 1182 737 1241 c 2,65,-1
- 725 1350 l 2,66,67
- 713 1409 713 1409 649 1409 c 0,68,69
- 547 1409 547 1409 487 1319 c 0,70,71
- 436 1240 436 1240 436 1133 c 0,72,73
- 436 1057 436 1057 498 782 c 1,74,-1
- 836 782 l 1,75,-1
- 836 698 l 1,76,-1
- 510 698 l 1,77,78
- 521 647 521 647 524 598 c 1,79,-1
- 838 598 l 1,80,-1
- 838 506 l 1,10,-1
-EndSplineSet
-EndChar
-StartChar: uni20A8
-Encoding: 8360 8360 74
-Width: 1964
-GlyphClass: 2
-Flags: W
-Fore
-1884 942 m 1,0,-1
- 1884 631 l 1,1,-1
- 1851 631 l 1,2,3
- 1789 885 1789 885 1604 885 c 0,4,5
- 1549 885 1549 885 1499 854 c 0,6,7
- 1446 821 1446 821 1446 766 c 0,8,9
- 1446 666 1446 666 1577 592 c 2,10,-1
- 1823 467 l 2,11,12
- 1953 382 1953 382 1954 250 c 0,13,14
- 1954 129 1954 129 1862 49 c 0,15,16
- 1769 -29 1769 -29 1649 -29 c 0,17,18
- 1604 -29 1604 -29 1512 -6 c 0,19,20
- 1425 16 1425 16 1378 16 c 1,21,-1
- 1366 6 l 1,22,-1
- 1333 6 l 1,23,-1
- 1333 0 l 1,24,-1
- 1001 0 l 1,25,-1
- 543 635 l 1,26,-1
- 459 633 l 1,27,-1
- 401 635 l 1,28,-1
- 401 240 l 2,29,30
- 401 118 401 118 438 76 c 0,31,32
- 473 37 473 37 580 37 c 0,33,34
- 596 37 l 1,35,-1
- 596 0 l 1,36,-1
- 14 0 l 1,37,-1
- 14 37 l 1,38,-1
- 76 39 l 2,39,40
- 145 46 145 46 172 76 c 0,41,42
- 209 116 209 116 209 240 c 2,43,-1
- 209 983 l 1,44,-1
- 4 983 l 1,45,-1
- 4 1055 l 1,46,-1
- 209 1055 l 1,47,-1
- 209 1116 l 2,48,49
- 209 1240 209 1240 172 1280 c 0,50,51
- 136 1319 136 1319 23 1319 c 0,52,53
- 19 1319 19 1319 14 1319 c 1,54,-1
- 14 1356 l 1,55,-1
- 522 1356 l 2,56,57
- 1030 1356 1030 1356 1069 1055 c 1,58,-1
- 1253 1055 l 1,59,-1
- 1253 983 l 1,60,-1
- 1071 983 l 1,61,62
- 1054 731 1054 731 739 659 c 1,63,-1
- 1018 270 l 2,64,65
- 1164 65 1164 65 1333 41 c 1,66,-1
- 1333 313 l 1,67,-1
- 1366 313 l 1,68,69
- 1390 195 1390 195 1458 119 c 0,70,71
- 1537 31 1537 31 1651 31 c 0,72,73
- 1715 31 1715 31 1760 70 c 0,74,75
- 1806 109 1806 109 1806 170 c 0,76,77
- 1806 270 1806 270 1683 344 c 2,78,-1
- 1452 467 l 2,79,80
- 1329 551 1329 551 1329 678 c 0,81,82
- 1329 797 1329 797 1409 869 c 0,83,84
- 1488 942 1488 942 1608 942 c 0,85,86
- 1642 942 1642 942 1707 924 c 0,87,88
- 1770 905 1770 905 1806 905 c 2,89,-1
- 1831 911 l 1,90,-1
- 1851 942 l 1,91,-1
- 1884 942 l 1,0,-1
-401 983 m 1,92,-1
- 401 696 l 1,93,-1
- 457 696 l 2,94,95
- 618 696 618 696 719 760 c 0,96,97
- 842 834 842 834 848 983 c 1,98,-1
- 401 983 l 1,92,-1
-842 1055 m 1,99,100
- 825 1159 825 1159 745 1220 c 0,101,102
- 666 1280 666 1280 557 1280 c 0,103,104
- 498 1280 498 1280 401 1262 c 1,105,-1
- 401 1055 l 1,106,-1
- 842 1055 l 1,99,100
-EndSplineSet
-EndChar
-StartChar: uni20A9
-Encoding: 8361 8361 75
-Width: 2058
-GlyphClass: 2
-Flags: W
-Fore
-850 918 m 1,0,-1
- 498 918 l 1,1,-1
- 676 440 l 1,2,3
- 767 673 767 673 850 918 c 1,0,-1
-1534 915 m 1,4,-1
- 1190 915 l 1,5,-1
- 1366 428 l 1,6,-1
- 1534 915 l 1,4,-1
-1165 987 m 1,7,-1
- 1559 987 l 1,8,-1
- 1602 1120 l 1,9,-1
- 1118 1120 l 1,10,-1
- 1165 987 l 1,7,-1
-471 989 m 1,11,-1
- 874 989 l 1,12,-1
- 901 1073 l 1,13,-1
- 887 1122 l 1,14,-1
- 424 1122 l 1,15,-1
- 471 989 l 1,11,-1
-2 989 m 1,16,-1
- 250 989 l 1,17,18
- 229 1050 229 1050 199 1122 c 1,19,-1
- 2 1122 l 1,20,-1
- 2 1194 l 1,21,-1
- 168 1194 l 1,22,23
- 124 1301 124 1301 86 1341 c 0,24,25
- 34 1399 34 1399 -66 1411 c 1,26,-1
- -66 1454 l 1,27,-1
- -63 1454 l 2,28,29
- 2 1454 2 1454 231 1450 c 2,30,-1
- 484 1451 l 2,31,32
- 505 1451 505 1451 524 1452 c 1,33,-1
- 524 1407 l 1,34,-1
- 470 1405 l 1,35,-1
- 431 1397 l 1,36,-1
- 404 1385 l 2,37,38
- 388 1375 388 1375 380 1360 c 2,39,-1
- 371 1340 l 1,40,-1
- 369 1319 l 2,41,42
- 369 1285 369 1285 401 1194 c 1,43,-1
- 864 1194 l 1,44,45
- 824 1310 824 1310 784 1352 c 0,46,47
- 731 1406 731 1406 621 1411 c 1,48,-1
- 618 1454 l 1,49,50
- 757 1449 757 1449 937 1450 c 0,51,52
- 1064 1450 1064 1450 1210 1452 c 1,53,-1
- 1210 1405 l 1,54,55
- 1059 1405 1059 1405 1059 1317 c 0,56,57
- 1059 1287 1059 1287 1094 1192 c 1,58,-1
- 1624 1192 l 1,59,60
- 1659 1289 1659 1289 1659 1315 c 0,61,62
- 1659 1368 1659 1368 1608 1391 c 0,63,64
- 1579 1405 1579 1405 1539 1404 c 2,65,-1
- 1511 1403 l 1,66,-1
- 1509 1454 l 1,67,68
- 1620 1449 1620 1449 1766 1450 c 0,69,70
- 1869 1450 1869 1450 1987 1452 c 1,71,-1
- 1987 1403 l 1,72,73
- 1873 1388 1873 1388 1825 1343 c 0,74,75
- 1787 1308 1787 1308 1743 1192 c 1,76,-1
- 1972 1192 l 1,77,-1
- 1972 1120 l 1,78,-1
- 1718 1120 l 1,79,-1
- 1669 987 l 1,80,-1
- 1972 987 l 1,81,-1
- 1972 915 l 1,82,-1
- 1645 915 l 1,83,-1
- 1311 -35 l 1,84,85
- 1206 266 1206 266 961 913 c 1,86,87
- 918 805 918 805 610 -33 c 1,88,-1
- 276 918 l 1,89,-1
- 2 918 l 1,90,-1
- 2 989 l 1,16,-1
-EndSplineSet
-EndChar
-StartChar: dong
-Encoding: 8363 8363 76
-Width: 1093
-GlyphClass: 2
-Flags: W
-Fore
-569 1499 m 1,0,-1
- 567 1532 l 1,1,2
- 763 1583 763 1583 901 1665 c 1,3,-1
- 899 416 l 2,4,5
- 899 307 899 307 999 307 c 0,6,7
- 1022 307 1022 307 1051 315 c 1,8,-1
- 1051 283 l 1,9,-1
- 719 154 l 1,10,-1
- 717 303 l 1,11,12
- 623 229 623 229 586 207 c 0,13,14
- 513 166 513 166 430 166 c 0,15,16
- 238 166 238 166 137 334 c 0,17,18
- 55 472 55 472 55 678 c 0,19,20
- 55 889 55 889 154 1036 c 0,21,22
- 266 1206 266 1206 467 1206 c 0,23,24
- 612 1206 612 1206 725 1110 c 1,25,-1
- 725 1417 l 2,26,27
- 725 1507 725 1507 631 1507 c 0,28,29
- 598 1507 598 1507 569 1499 c 1,0,-1
-508 1126 m 0,30,31
- 364 1126 364 1126 291 983 c 0,32,33
- 231 870 231 870 231 713 c 0,34,35
- 231 544 231 544 293 432 c 0,36,37
- 371 297 371 297 528 297 c 0,38,39
- 643 297 643 297 723 395 c 1,40,-1
- 723 903 l 2,41,42
- 723 994 723 994 662 1061 c 0,43,44
- 601 1126 601 1126 508 1126 c 0,30,31
-102 66 m 1,45,-1
- 1012 66 l 1,46,-1
- 1012 -6 l 1,47,-1
- 102 -6 l 1,48,-1
- 102 66 l 1,45,-1
-1012 1331 m 1,49,-1
- 287 1331 l 1,50,-1
- 287 1403 l 1,51,-1
- 1012 1403 l 1,52,-1
- 1012 1331 l 1,49,-1
-EndSplineSet
-EndChar
-StartChar: Euro
-Encoding: 8364 8364 77
-Width: 1566
-GlyphClass: 2
-Flags: W
-Fore
-1386 1090 m 1,0,1
- 1102 1309 1102 1309 891 1309 c 0,2,3
- 731 1309 731 1309 596 1200 c 0,4,5
- 473 1099 473 1099 414 942 c 1,6,-1
- 1333 942 l 1,7,-1
- 1247 764 l 1,8,-1
- 381 764 l 1,9,-1
- 381 700 l 1,10,-1
- 1231 700 l 1,11,-1
- 1145 526 l 1,12,-1
- 412 526 l 1,13,14
- 460 367 460 367 594 260 c 0,15,16
- 727 154 727 154 891 154 c 0,17,18
- 1126 154 1126 154 1405 387 c 1,19,-1
- 1405 176 l 1,20,21
- 1180 -25 1180 -25 897 -25 c 0,22,23
- 663 -25 663 -25 477 137 c 0,24,25
- 299 293 299 293 246 526 c 1,26,-1
- -2 526 l 1,27,-1
- 78 702 l 1,28,-1
- 219 702 l 1,29,-1
- 219 764 l 1,30,-1
- 0 764 l 1,31,-1
- 66 938 l 1,32,-1
- 238 938 l 1,33,34
- 313 1176 313 1176 475 1323 c 0,35,36
- 656 1487 656 1487 891 1487 c 0,37,38
- 1177 1487 1177 1487 1485 1260 c 1,39,-1
- 1386 1090 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: uni2102
-Encoding: 8450 8450 78
-Width: 1374
-GlyphClass: 2
-Flags: W
-Fore
-426 256 m 1,0,-1
- 426 1126 l 1,1,2
- 283 989 283 989 283 700 c 0,3,4
- 283 392 283 392 426 256 c 1,0,-1
-575 1214 m 1,5,-1
- 575 168 l 1,6,7
- 647 145 647 145 719 145 c 0,8,9
- 1042 145 1042 145 1114 487 c 1,10,-1
- 1292 442 l 1,11,12
- 1241 231 1241 231 1094 111 c 0,13,14
- 950 -8 950 -8 733 -8 c 0,15,16
- 423 -8 423 -8 254 195 c 0,17,18
- 98 382 98 382 98 700 c 0,19,20
- 98 1007 98 1007 262 1194 c 0,21,22
- 434 1389 434 1389 737 1389 c 0,23,24
- 933 1389 933 1389 1075 1285 c 0,25,26
- 1216 1181 1216 1181 1270 995 c 1,27,-1
- 1094 954 l 1,28,29
- 1005 1235 1005 1235 733 1235 c 0,30,31
- 647 1235 647 1235 575 1214 c 1,5,-1
-EndSplineSet
-EndChar
-StartChar: uni2107
-Encoding: 8455 8455 79
-Width: 989
-GlyphClass: 2
-Flags: W
-Fore
-866 74 m 1,0,1
- 699 -6 699 -6 518 -6 c 0,2,3
- 335 -6 335 -6 213 82 c 0,4,5
- 76 180 76 180 76 356 c 0,6,7
- 76 644 76 644 451 727 c 1,8,9
- 164 805 164 805 164 1016 c 0,10,11
- 164 1164 164 1164 291 1239 c 0,12,13
- 391 1298 391 1298 553 1298 c 0,14,15
- 675 1298 675 1298 846 1255 c 1,16,-1
- 846 1075 l 1,17,-1
- 764 1075 l 1,18,19
- 749 1247 749 1247 547 1247 c 0,20,21
- 444 1247 444 1247 380 1185 c 0,22,23
- 317 1122 317 1122 317 1018 c 0,24,25
- 317 865 317 865 420 801 c 0,26,27
- 501 750 501 750 666 750 c 1,28,-1
- 666 668 l 1,29,30
- 240 668 240 668 240 354 c 0,31,32
- 240 217 240 217 328 135 c 0,33,34
- 414 55 414 55 551 55 c 0,35,36
- 784 55 784 55 784 289 c 0,37,38
- 784 295 l 1,39,-1
- 866 295 l 1,40,-1
- 866 74 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: uni210A
-Encoding: 8948 8458 80
-Width: 1366
-GlyphClass: 2
-Flags: W
-Fore
-877 829 m 1,0,-1
- 1042 829 l 1,1,-1
- 883 29 l 1,2,3
- 1165 138 1165 138 1300 367 c 1,4,-1
- 1333 348 l 1,5,6
- 1170 80 1170 80 874 -18 c 1,7,8
- 743 -641 743 -641 295 -641 c 0,9,10
- 201 -641 201 -641 129 -596 c 0,11,12
- 43 -542 43 -542 43 -455 c 0,13,14
- 43 -200 43 -200 711 -12 c 1,15,-1
- 745 170 l 1,16,17
- 649 -4 649 -4 477 -4 c 0,18,19
- 348 -4 348 -4 266 98 c 0,20,21
- 190 194 190 194 190 324 c 0,22,23
- 190 526 190 526 303 680 c 0,24,25
- 428 850 428 850 623 850 c 0,26,27
- 791 850 791 850 848 674 c 1,28,-1
- 877 829 l 1,0,-1
-817 578 m 0,29,30
- 817 661 817 661 780 723 c 0,31,32
- 737 799 737 799 659 799 c 0,33,34
- 513 799 513 799 428 600 c 0,35,36
- 360 443 360 443 360 276 c 0,37,38
- 360 193 360 193 395 131 c 0,39,40
- 439 57 439 57 516 57 c 0,41,42
- 673 57 673 57 756 250 c 0,43,44
- 817 394 817 394 817 578 c 0,29,30
-700 -57 m 1,45,46
- 172 -206 172 -206 172 -453 c 0,47,48
- 172 -517 172 -517 225 -558 c 0,49,50
- 278 -598 278 -598 346 -598 c 0,51,52
- 597 -598 597 -598 700 -57 c 1,45,46
-EndSplineSet
-EndChar
-StartChar: uni210F
-Encoding: 8463 8463 81
-Width: 1007
-GlyphClass: 2
-Flags: W
-Fore
-356 1126 m 1,0,1
- 389 1242 389 1242 389 1274 c 2,2,-1
- 381 1300 l 1,3,4
- 349 1314 349 1314 292 1313 c 2,5,-1
- 270 1313 l 1,6,-1
- 270 1350 l 1,7,-1
- 567 1401 l 1,8,9
- 566 1326 566 1326 506 1126 c 1,10,-1
- 877 1130 l 1,11,-1
- 877 1049 l 1,12,-1
- 483 1044 l 1,13,-1
- 369 631 l 1,14,15
- 454 725 454 725 571 811 c 0,16,17
- 722 918 722 918 809 918 c 0,18,19
- 859 918 859 918 893 872 c 0,20,21
- 926 827 926 827 926 774 c 0,22,23
- 926 658 926 658 841 436 c 0,24,25
- 756 218 756 218 756 98 c 0,26,27
- 756 74 756 74 780 74 c 0,28,29
- 862 74 862 74 958 233 c 1,30,-1
- 967 219 l 1,31,32
- 964 138 964 138 872 58 c 0,33,34
- 780 -23 780 -23 698 -23 c 0,35,36
- 602 -23 602 -23 602 80 c 0,37,38
- 602 204 602 204 687 428 c 128,-1,39
- 772 652 772 652 772 774 c 1,40,41
- 738 805 738 805 717 805 c 0,42,43
- 690 805 690 805 672 778 c 2,44,45
- 376 653 376 653 199 0 c 1,46,-1
- 47 0 l 1,47,-1
- 334 1044 l 1,48,-1
- 123 1044 l 1,49,-1
- 129 1126 l 1,50,-1
- 356 1126 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: Ifraktur
-Encoding: 8465 8465 82
-Width: 1404
-GlyphClass: 2
-Flags: W
-Fore
-395 915 m 1,0,-1
- 403 883 l 1,1,2
- 366 874 366 874 324 874 c 0,3,4
- 234 874 234 874 170 938 c 0,5,6
- 106 1005 106 1005 106 1094 c 0,7,8
- 106 1226 106 1226 215 1311 c 0,9,10
- 314 1386 314 1386 451 1386 c 0,11,12
- 552 1386 552 1386 737 1313 c 0,13,14
- 926 1239 926 1239 1024 1239 c 0,15,16
- 1144 1239 1144 1239 1194 1364 c 1,17,-1
- 1227 1356 l 1,18,19
- 1148 1090 1148 1090 920 1090 c 0,20,21
- 816 1090 816 1090 629 1159 c 0,22,23
- 441 1229 441 1229 338 1229 c 0,24,25
- 265 1229 265 1229 210 1185 c 0,26,27
- 156 1140 156 1140 156 1069 c 0,28,29
- 156 911 156 911 338 911 c 0,30,31
- 355 911 355 911 395 915 c 1,0,-1
-1225 934 m 1,32,-1
- 1200 915 l 1,33,34
- 1133 965 1133 965 1081 965 c 0,35,36
- 995 965 995 965 995 874 c 0,37,38
- 995 824 995 824 1098 636 c 0,39,40
- 1200 447 1200 447 1200 373 c 0,41,42
- 1200 182 1200 182 1010 68 c 0,43,44
- 845 -31 845 -31 641 -31 c 0,45,46
- 526 -31 526 -31 410 31 c 0,47,48
- 345 66 345 66 242 147 c 0,49,50
- 160 209 160 209 133 209 c 0,51,52
- 81 209 81 209 43 150 c 1,53,-1
- 0 150 l 1,54,55
- 130 315 130 315 264 315 c 0,56,57
- 361 315 361 315 463 240 c 2,58,-1
- 627 100 l 2,59,60
- 718 25 718 25 786 25 c 0,61,62
- 883 25 883 25 965 86 c 0,63,64
- 1055 154 1055 154 1055 248 c 0,65,66
- 1055 304 1055 304 944 503 c 0,67,68
- 834 701 834 701 834 772 c 0,69,70
- 834 865 834 865 895 939 c 0,71,72
- 956 1014 956 1014 1047 1014 c 0,73,74
- 1131 1014 1131 1014 1225 934 c 1,32,-1
-EndSplineSet
-EndChar
-StartChar: uni2112
-Encoding: 8466 8466 83
-Width: 2056
-GlyphClass: 2
-Flags: W
-Fore
-537 1042 m 0,0,1
- 537 1256 537 1256 756 1380 c 0,2,3
- 935 1483 935 1483 1167 1483 c 0,4,5
- 1330 1483 1330 1483 1468 1430 c 1,6,-1
- 1458 1413 l 1,7,8
- 1257 1446 1257 1446 1180 1446 c 0,9,10
- 963 1446 963 1446 784 1352 c 0,11,12
- 573 1234 573 1234 573 1034 c 0,13,14
- 573 868 573 868 731 784 c 0,15,16
- 854 719 854 719 1021 719 c 0,17,18
- 1028 719 1028 719 1036 719 c 2,19,-1
- 1155 721 l 1,20,21
- 1318 970 1318 970 1532 1163 c 0,22,23
- 1812 1419 1812 1419 2028 1419 c 0,24,25
- 2074 1419 2074 1419 2106 1388 c 0,26,27
- 2140 1355 2140 1355 2140 1311 c 0,28,29
- 2140 1112 2140 1112 1831 920 c 0,30,31
- 1608 781 1608 781 1339 700 c 1,32,33
- 1174 449 1174 449 1083 352 c 0,34,35
- 942 205 942 205 729 106 c 1,36,37
- 909 59 909 59 1042 59 c 0,38,39
- 1235 59 1235 59 1503 299 c 1,40,-1
- 1520 272 l 1,41,42
- 1407 146 1407 146 1251 66 c 0,43,44
- 1085 -20 1085 -20 926 -20 c 0,45,46
- 819 -20 819 -20 567 39 c 1,47,48
- 332 -16 332 -16 162 -16 c 0,49,50
- -59 -16 -59 -16 -59 88 c 0,51,52
- -59 160 -59 160 55 199 c 0,53,54
- 140 227 140 227 231 227 c 0,55,56
- 431 227 431 227 682 127 c 1,57,58
- 799 228 799 228 922 391 c 2,59,-1
- 1126 686 l 1,60,61
- 895 686 895 686 745 752 c 0,62,63
- 537 842 537 842 537 1042 c 0,0,1
-145 158 m 1,64,-1
- 82 155 l 2,65,66
- -20 143 -20 143 -20 82 c 0,67,68
- -20 16 -20 16 190 16 c 0,69,70
- 354 16 354 16 504 68 c 1,71,-1
- 328 125 l 2,72,73
- 221 156 221 156 145 156 c 1,74,-1
- 145 158 l 1,64,-1
-2019 1393 m 0,75,76
- 1788 1393 1788 1393 1356 748 c 1,77,78
- 1556 773 1556 773 1812 942 c 0,79,80
- 2103 1131 2103 1131 2103 1307 c 0,81,82
- 2103 1393 2103 1393 2019 1393 c 0,75,76
-EndSplineSet
-EndChar
-StartChar: afii61289
-Encoding: 8467 8467 84
-Width: 1116
-GlyphClass: 2
-Flags: W
-Fore
-782 457 m 1,0,-1
- 819 444 l 1,1,2
- 666 -12 666 -12 412 -12 c 0,3,4
- 244 -12 244 -12 244 190 c 0,5,6
- 244 344 244 344 283 543 c 2,7,-1
- 365 889 l 1,8,9
- 201 906 201 906 76 1004 c 1,10,-1
- 106 1036 l 1,11,12
- 215 946 215 946 375 930 c 1,13,14
- 398 1137 398 1137 508 1294 c 0,15,16
- 637 1479 637 1479 827 1479 c 0,17,18
- 1024 1479 1024 1479 1024 1294 c 0,19,20
- 1024 1024 1024 1024 535 895 c 1,21,-1
- 451 543 l 2,22,23
- 403 330 403 330 403 184 c 0,24,25
- 403 70 403 70 485 70 c 0,26,27
- 578 70 578 70 672 221 c 0,28,29
- 737 324 737 324 782 457 c 1,0,-1
-543 940 m 1,30,31
- 926 1048 926 1048 926 1309 c 0,32,33
- 926 1440 926 1440 809 1440 c 0,34,35
- 647 1440 647 1440 543 940 c 1,30,31
-EndSplineSet
-EndChar
-StartChar: uni2115
-Encoding: 8469 8469 85
-Width: 1605
-GlyphClass: 2
-Flags: W
-Fore
-365 0 m 1,0,-1
- 365 1405 l 1,1,-1
- 555 1405 l 1,2,-1
- 1292 303 l 1,3,-1
- 1292 1405 l 1,4,-1
- 1470 1405 l 1,5,-1
- 1470 0 l 1,6,-1
- 1280 0 l 1,7,-1
- 543 1104 l 1,8,-1
- 543 0 l 1,9,-1
- 365 0 l 1,0,-1
-270 1403 m 1,10,-1
- 272 -10 l 1,11,-1
- 96 -10 l 1,12,-1
- 94 1403 l 1,13,-1
- 270 1403 l 1,10,-1
-EndSplineSet
-EndChar
-StartChar: weierstrass
-Encoding: 8472 8472 86
-Width: 1710
-GlyphClass: 2
-Flags: W
-Fore
-707 1059 m 1,0,-1
- 731 1016 l 1,1,2
- 391 811 391 811 391 520 c 0,3,4
- 391 451 391 451 422 365 c 1,5,6
- 649 608 649 608 772 709 c 0,7,8
- 1014 907 1014 907 1198 907 c 0,9,10
- 1321 907 1321 907 1391 824 c 0,11,12
- 1460 742 1460 742 1460 616 c 0,13,14
- 1460 375 1460 375 1305 184 c 0,15,16
- 1140 -18 1140 -18 903 -18 c 0,17,18
- 812 -18 812 -18 748 37 c 0,19,20
- 682 90 682 90 682 178 c 0,21,22
- 682 248 682 248 715 299 c 0,23,24
- 753 358 753 358 819 358 c 0,25,26
- 893 358 893 358 893 285 c 0,27,28
- 893 258 893 258 745 135 c 1,29,30
- 748 88 748 88 797 55 c 0,31,32
- 838 27 838 27 891 27 c 0,33,34
- 1072 27 1072 27 1190 260 c 0,35,36
- 1288 458 1288 458 1288 657 c 0,37,38
- 1288 730 1288 730 1251 782 c 0,39,40
- 1209 844 1209 844 1141 844 c 0,41,42
- 1000 844 1000 844 762 641 c 0,43,44
- 588 490 588 490 446 315 c 1,45,46
- 592 15 592 15 592 -121 c 0,47,48
- 592 -240 592 -240 530 -336 c 0,49,50
- 461 -442 461 -442 346 -442 c 0,51,52
- 248 -442 248 -442 185 -369 c 0,53,54
- 123 -293 123 -293 123 -195 c 0,55,56
- 123 -48 123 -48 291 190 c 1,57,58
- 229 335 229 335 229 434 c 0,59,60
- 229 770 229 770 707 1059 c 1,0,-1
-313 139 m 1,61,62
- 168 -69 168 -69 168 -197 c 0,63,64
- 168 -271 168 -271 215 -334 c 0,65,66
- 261 -395 261 -395 336 -395 c 0,67,68
- 393 -395 393 -395 429 -350 c 128,-1,69
- 465 -305 465 -305 465 -248 c 0,70,71
- 465 -121 465 -121 313 139 c 1,61,62
-EndSplineSet
-EndChar
-StartChar: uni211A
-Encoding: 8474 8474 87
-Width: 1538
-GlyphClass: 2
-Flags: W
-Fore
-1184 147 m 1,0,1
- 1302 63 1302 63 1417 20 c 1,2,-1
- 1364 -104 l 1,3,4
- 1216 -52 1216 -52 1071 61 c 1,5,6
- 920 -23 920 -23 735 -23 c 0,7,8
- 438 -23 438 -23 258 184 c 0,9,10
- 86 380 86 380 86 682 c 0,11,12
- 86 990 86 990 256 1186 c 0,13,14
- 435 1389 435 1389 739 1389 c 0,15,16
- 1046 1389 1046 1389 1223 1188 c 0,17,18
- 1391 994 1391 994 1391 684 c 0,19,20
- 1391 345 1391 345 1184 147 c 1,0,1
-426 252 m 1,21,-1
- 426 1116 l 1,22,23
- 272 973 272 973 272 682 c 0,24,25
- 272 400 272 400 426 252 c 1,21,-1
-578 1208 m 1,26,-1
- 578 158 l 1,27,28
- 652 131 652 131 739 131 c 0,29,30
- 839 131 839 131 922 168 c 1,31,32
- 838 223 838 223 743 246 c 1,33,-1
- 786 377 l 1,34,35
- 945 334 945 334 1044 248 c 1,36,37
- 1204 393 1204 393 1204 684 c 0,38,39
- 1204 918 1204 918 1092 1067 c 0,40,41
- 965 1233 965 1233 739 1233 c 0,42,43
- 650 1233 650 1233 578 1208 c 1,26,-1
-EndSplineSet
-EndChar
-StartChar: Rfraktur
-Encoding: 8476 8476 88
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-707 1188 m 1,0,1
- 864 1265 864 1265 913 1286 c 0,2,3
- 1033 1348 1033 1348 1108 1405 c 1,4,5
- 1372 1270 1372 1270 1372 1108 c 0,6,7
- 1372 927 1372 927 1108 795 c 1,8,9
- 1194 724 1194 724 1227 549 c 0,10,11
- 1244 403 1244 403 1257 260 c 0,12,13
- 1277 123 1277 123 1329 123 c 0,14,15
- 1370 123 1370 123 1417 164 c 1,16,-1
- 1438 137 l 1,17,-1
- 1200 -43 l 1,18,19
- 1055 68 1055 68 1055 266 c 0,20,21
- 1055 296 1055 296 1058 364 c 0,22,23
- 1061 430 1061 430 1061 467 c 0,24,25
- 1061 619 1061 619 940 709 c 1,26,-1
- 741 631 l 1,27,-1
- 743 498 l 1,28,-1
- 740 438 l 1,29,-1
- 730 383 l 2,30,31
- 700 264 700 264 600 168 c 0,32,33
- 546 116 546 116 293 -43 c 1,34,-1
- 143 115 l 1,35,-1
- 76 72 l 1,36,-1
- 51 100 l 1,37,-1
- 287 250 l 1,38,-1
- 432 94 l 1,39,40
- 555 154 555 154 555 395 c 2,41,-1
- 555 930 l 2,42,43
- 555 1122 555 1122 530 1198 c 0,44,45
- 485 1343 485 1343 338 1343 c 0,46,47
- 250 1343 250 1343 180 1288 c 0,48,49
- 104 1229 104 1229 104 1143 c 0,50,51
- 104 1064 104 1064 232 945 c 0,52,53
- 360 829 360 829 360 729 c 0,54,55
- 360 579 360 579 190 479 c 1,56,-1
- 182 512 l 1,57,58
- 256 551 256 551 256 606 c 0,59,60
- 256 685 256 685 128 807 c 0,61,62
- 0 927 0 927 0 1020 c 0,63,64
- 0 1173 0 1173 119 1280 c 0,65,66
- 237 1386 237 1386 393 1386 c 0,67,68
- 608 1386 608 1386 707 1188 c 1,0,1
-721 1149 m 1,69,70
- 754 1020 754 1020 754 866 c 0,71,72
- 754 783 754 783 743 678 c 1,73,74
- 957 758 957 758 1022 797 c 0,75,76
- 1182 894 1182 894 1182 1028 c 0,77,78
- 1182 1237 1182 1237 979 1237 c 0,79,80
- 867 1237 867 1237 721 1149 c 1,69,70
-EndSplineSet
-EndChar
-StartChar: uni211D
-Encoding: 8477 8477 89
-Width: 1525
-GlyphClass: 2
-Flags: W
-Fore
-377 0 m 1,0,-1
- 377 1403 l 1,1,-1
- 926 1403 l 2,2,3
- 1368 1403 1368 1403 1368 1020 c 0,4,5
- 1368 690 1368 690 1018 639 c 1,6,7
- 1151 560 1151 560 1280 350 c 0,8,9
- 1312 294 1312 294 1470 0 c 1,10,-1
- 1264 0 l 1,11,-1
- 1090 313 l 2,12,13
- 947 554 947 554 899 580 c 0,14,15
- 818 623 818 623 731 623 c 2,16,-1
- 541 623 l 1,17,-1
- 541 0 l 1,18,-1
- 377 0 l 1,0,-1
-541 784 m 1,19,-1
- 893 784 l 2,20,21
- 1198 784 1198 784 1198 1020 c 0,22,23
- 1198 1247 1198 1247 934 1247 c 2,24,-1
- 541 1247 l 1,25,-1
- 541 784 l 1,19,-1
-279 1405 m 1,26,-1
- 279 0 l 1,27,-1
- 102 0 l 1,28,-1
- 102 1405 l 1,29,-1
- 279 1405 l 1,26,-1
-EndSplineSet
-EndChar
-StartChar: trademark
-Encoding: 8482 8482 90
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-487 649 m 1,0,-1
- 625 649 l 1,1,-1
- 625 1343 l 1,2,-1
- 891 1343 l 1,3,-1
- 891 1466 l 1,4,-1
- 225 1466 l 1,5,-1
- 225 1343 l 1,6,-1
- 487 1343 l 1,7,-1
- 487 649 l 1,0,-1
-983 649 m 1,8,-1
- 1108 649 l 1,9,-1
- 1108 1343 l 1,10,-1
- 1325 649 l 1,11,-1
- 1450 649 l 1,12,-1
- 1659 1333 l 1,13,-1
- 1659 649 l 1,14,-1
- 1784 649 l 1,15,-1
- 1784 1466 l 1,16,-1
- 1587 1466 l 1,17,-1
- 1389 815 l 1,18,-1
- 1182 1466 l 1,19,-1
- 983 1466 l 1,20,-1
- 983 649 l 1,8,-1
-EndSplineSet
-EndChar
-StartChar: uni2124
-Encoding: 8484 8484 91
-Width: 1660
-GlyphClass: 2
-Flags: W
-Fore
-1552 0 m 1,0,-1
- 27 0 l 1,1,-1
- 1006 1237 l 1,2,-1
- 98 1237 l 1,3,-1
- 98 1395 l 1,4,-1
- 1552 1393 l 1,5,-1
- 586 154 l 1,6,-1
- 1501 154 l 1,7,-1
- 1552 0 l 1,0,-1
-1268 1233 m 1,8,-1
- 1147 1233 l 1,9,-1
- 297 156 l 1,10,-1
- 434 156 l 1,11,-1
- 1268 1233 l 1,8,-1
-EndSplineSet
-EndChar
-StartChar: uni2127
-Encoding: 8949 8487 92
-Width: 1550
-GlyphClass: 2
-Flags: W
-Fore
-582 1155 m 1,0,-1
- 418 1155 l 2,1,2
- 320 1155 320 1155 291 1130 c 0,3,4
- 253 1101 253 1101 252 999 c 1,5,-1
- 158 999 l 1,6,-1
- 158 1264 l 1,7,-1
- 655 1264 l 1,8,-1
- 655 1155 l 1,9,10
- 373 848 373 848 373 547 c 0,11,12
- 373 341 373 341 473 205 c 0,13,14
- 585 51 585 51 782 51 c 0,15,16
- 981 51 981 51 1092 205 c 0,17,18
- 1190 342 1190 342 1190 547 c 0,19,20
- 1190 847 1190 847 909 1155 c 1,21,-1
- 909 1264 l 1,22,-1
- 1405 1264 l 1,23,-1
- 1405 999 l 1,24,-1
- 1313 999 l 1,25,-1
- 1312 1048 l 2,26,27
- 1307 1107 1307 1107 1274 1130 c 0,28,29
- 1240 1155 1240 1155 1137 1155 c 2,30,-1
- 983 1155 l 1,31,32
- 1166 994 1166 994 1247 889 c 0,33,34
- 1376 720 1376 720 1376 547 c 0,35,36
- 1376 289 1376 289 1209 138 c 0,37,38
- 1042 -12 1042 -12 782 -12 c 0,39,40
- 534 -12 534 -12 365 139 c 0,41,42
- 188 296 188 296 188 543 c 0,43,44
- 188 718 188 718 315 889 c 0,45,46
- 397 997 397 997 582 1155 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni2130
-Encoding: 8496 8496 93
-Width: 1650
-GlyphClass: 2
-Flags: W
-Fore
-291 1145 m 0,0,1
- 291 1304 291 1304 444 1399 c 0,2,3
- 578 1481 578 1481 745 1481 c 0,4,5
- 856 1481 856 1481 1004 1430 c 1,6,-1
- 993 1411 l 1,7,8
- 885 1442 885 1442 803 1442 c 0,9,10
- 644 1442 644 1442 506 1374 c 0,11,12
- 334 1289 334 1289 334 1147 c 0,13,14
- 334 1016 334 1016 477 954 c 0,15,16
- 579 912 579 912 733 909 c 1,17,-1
- 731 965 l 2,18,19
- 724 1168 724 1168 1010 1307 c 0,20,21
- 1250 1423 1250 1423 1481 1423 c 0,22,23
- 1622 1423 1622 1423 1622 1329 c 0,24,25
- 1622 1148 1622 1148 1294 1012 c 0,26,27
- 1064 914 1064 914 807 879 c 1,28,-1
- 807 858 l 2,29,30
- 807 835 807 835 823 817 c 1,31,32
- 860 821 860 821 897 821 c 0,33,34
- 947 821 947 821 979 795 c 1,35,-1
- 979 784 l 2,36,37
- 979 756 979 756 938 756 c 0,38,39
- 882 756 882 756 807 782 c 1,40,41
- 593 697 593 697 430 543 c 0,42,43
- 238 356 238 356 238 158 c 0,44,45
- 238 80 238 80 319 43 c 0,46,47
- 385 14 385 14 471 14 c 0,48,49
- 684 14 684 14 879 109 c 0,50,51
- 1114 224 1114 224 1114 418 c 0,52,53
- 1114 468 1114 468 1063 500 c 0,54,55
- 1019 526 1019 526 965 526 c 0,56,57
- 688 526 688 526 414 195 c 1,58,-1
- 391 184 l 1,59,-1
- 383 193 l 1,60,-1
- 383 201 l 2,61,62
- 383 236 383 236 489 338 c 0,63,64
- 722 561 722 561 940 561 c 0,65,66
- 1153 561 1153 561 1153 401 c 0,67,68
- 1153 206 1153 206 895 82 c 0,69,70
- 682 -20 682 -20 463 -20 c 0,71,72
- 314 -20 314 -20 221 55 c 0,73,74
- 121 137 121 137 121 285 c 0,75,76
- 121 678 121 678 788 811 c 1,77,-1
- 741 879 l 1,78,79
- 291 882 291 882 291 1145 c 0,0,1
-1495 1393 m 0,80,81
- 1318 1393 1318 1393 1110 1229 c 0,82,83
- 945 1097 945 1097 817 913 c 1,84,85
- 1250 956 1250 956 1483 1167 c 0,86,87
- 1587 1262 1587 1262 1587 1325 c 0,88,89
- 1587 1393 1587 1393 1495 1393 c 0,80,81
-EndSplineSet
-EndChar
-StartChar: uni2131
-Encoding: 8497 8497 94
-Width: 1726
-GlyphClass: 2
-Flags: W
-Fore
-496 479 m 1,0,1
- 687 604 687 604 989 672 c 1,2,3
- 1341 1052 1341 1052 1593 1239 c 1,4,-1
- 1606 1214 l 1,5,6
- 1335 988 1335 988 1186 713 c 1,7,-1
- 1210 713 l 2,8,9
- 1264 713 1264 713 1349 782 c 0,10,11
- 1432 851 1432 851 1477 856 c 1,12,-1
- 1489 848 l 1,13,-1
- 1489 842 l 2,14,15
- 1489 809 1489 809 1415 758 c 0,16,17
- 1361 721 1361 721 1311 700 c 1,18,19
- 1259 619 1259 619 1237 504 c 1,20,-1
- 1167 481 l 1,21,22
- 1188 588 1188 588 1257 684 c 1,23,-1
- 1167 664 l 1,24,25
- 787 -16 787 -16 211 -16 c 0,26,27
- -72 -16 -72 -16 -72 152 c 0,28,29
- -72 211 -72 211 -29 262 c 0,30,31
- 14 311 14 311 76 311 c 0,32,33
- 156 311 156 311 156 233 c 0,34,35
- 156 203 156 203 129 185 c 0,36,37
- 101 168 101 168 72 168 c 0,38,39
- 43 168 43 168 0 193 c 1,40,41
- -33 190 -33 190 -33 141 c 0,42,43
- -33 20 -33 20 207 20 c 0,44,45
- 420 20 420 20 639 242 c 0,46,47
- 722 325 722 325 956 637 c 1,48,49
- 680 553 680 553 518 449 c 1,50,-1
- 496 479 l 1,0,1
-1720 1251 m 0,51,52
- 1584 1251 1584 1251 1322 1308 c 0,53,54
- 1057 1364 1057 1364 924 1364 c 0,55,56
- 732 1364 732 1364 565 1251 c 0,57,58
- 381 1127 381 1127 381 942 c 0,59,60
- 381 758 381 758 602 758 c 0,61,62
- 782 758 782 758 952 874 c 0,63,64
- 1108 985 1108 985 1198 1153 c 1,65,-1
- 1237 1153 l 1,66,67
- 1141 963 1141 963 979 846 c 0,68,69
- 803 717 803 717 602 717 c 0,70,71
- 487 717 487 717 412 777 c 0,72,73
- 336 837 336 837 336 950 c 0,74,75
- 336 1184 336 1184 600 1319 c 0,76,77
- 813 1430 813 1430 1071 1430 c 0,78,79
- 1205 1430 1205 1430 1476 1383 c 0,80,81
- 1749 1337 1749 1337 1880 1337 c 0,82,83
- 1965 1337 1965 1337 2083 1384 c 1,84,-1
- 2095 1362 l 1,85,86
- 1922 1251 1922 1251 1720 1251 c 0,51,52
-EndSplineSet
-EndChar
-StartChar: aleph
-Encoding: 8501 8501 95
-Width: 1685
-GlyphClass: 2
-Flags: W
-Fore
-979 655 m 1,0,1
- 1165 506 1165 506 1229 449 c 0,2,3
- 1395 289 1395 289 1395 197 c 0,4,5
- 1395 142 1395 142 1348 59 c 0,6,7
- 1295 -28 1295 -28 1245 -31 c 1,8,-1
- 1235 -27 l 1,9,-1
- 1231 -14 l 1,10,11
- 1257 58 1257 58 1257 86 c 0,12,13
- 1257 160 1257 160 1180 240 c 0,14,15
- 1146 274 1146 274 1044 358 c 2,16,-1
- 455 846 l 1,17,18
- 332 718 332 718 332 616 c 0,19,20
- 332 527 332 527 403 438 c 2,21,-1
- 539 297 l 2,22,23
- 609 215 609 215 610 135 c 0,24,25
- 610 -31 610 -31 375 -31 c 0,26,27
- 311 -31 311 -31 285 -14 c 1,28,-1
- 279 0 l 1,29,-1
- 283 8 l 1,30,31
- 371 58 371 58 371 111 c 0,32,33
- 371 183 371 183 308 309 c 0,34,35
- 246 438 246 438 246 508 c 0,36,37
- 246 650 246 650 424 870 c 1,38,39
- 315 969 315 969 287 999 c 0,40,41
- 205 1087 205 1087 205 1159 c 0,42,43
- 205 1218 205 1218 246 1296 c 0,44,45
- 291 1384 291 1384 342 1386 c 1,46,-1
- 362 1368 l 1,47,48
- 351 1293 351 1293 348 1296 c 1,49,50
- 348 1184 348 1184 596 965 c 2,51,-1
- 950 682 l 1,52,-1
- 1217 1012 l 1,53,54
- 1075 1124 1075 1124 1075 1212 c 0,55,56
- 1075 1351 1075 1351 1257 1386 c 1,57,58
- 1220 1339 1220 1339 1219 1294 c 1,59,60
- 1442 994 1442 994 1442 961 c 0,61,62
- 1442 887 1442 887 1354 838 c 1,63,64
- 1328 933 1328 933 1247 989 c 1,65,-1
- 979 655 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: arrowleft
-Encoding: 8592 8592 96
-Width: 1617
-GlyphClass: 2
-Flags: W
-Fore
-1468 592 m 1,0,-1
- 674 588 l 2,1,2
- 592 588 592 588 545 600 c 1,3,-1
- 862 252 l 1,4,-1
- 713 111 l 1,5,-1
- 186 694 l 1,6,-1
- 713 1276 l 1,7,-1
- 862 1135 l 1,8,-1
- 545 786 l 1,9,10
- 581 797 581 797 598 797 c 2,11,-1
- 1468 797 l 1,12,-1
- 1468 592 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: arrowup
-Encoding: 8593 8593 97
-Width: 1515
-GlyphClass: 2
-Flags: W
-Fore
-1339 807 m 1,0,-1
- 1200 657 l 1,1,-1
- 850 975 l 1,2,3
- 860 939 860 939 860 922 c 2,4,-1
- 860 51 l 1,5,-1
- 655 51 l 1,6,-1
- 651 585 l 1,7,-1
- 651 582 l 1,8,-1
- 651 838 l 2,9,10
- 651 921 651 921 666 975 c 1,11,-1
- 315 657 l 1,12,-1
- 174 807 l 1,13,-1
- 758 1333 l 1,14,-1
- 1339 807 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: arrowright
-Encoding: 8594 8594 98
-Width: 1617
-GlyphClass: 2
-Flags: W
-Fore
-1452 696 m 1,0,-1
- 926 115 l 1,1,-1
- 776 256 l 1,2,-1
- 1094 604 l 1,3,4
- 1063 594 1063 594 1040 594 c 2,5,-1
- 170 594 l 1,6,-1
- 170 799 l 1,7,-1
- 958 803 l 2,8,9
- 1042 803 1042 803 1094 791 c 1,10,-1
- 776 1139 l 1,11,-1
- 926 1280 l 1,12,-1
- 1452 696 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: arrowdown
-Encoding: 8595 8595 99
-Width: 1515
-GlyphClass: 2
-Flags: W
-Fore
-1343 578 m 1,0,-1
- 760 51 l 1,1,-1
- 178 578 l 1,2,-1
- 317 727 l 1,3,-1
- 668 410 l 1,4,5
- 657 451 657 451 657 463 c 2,6,-1
- 657 1333 l 1,7,-1
- 862 1333 l 1,8,-1
- 866 547 l 2,9,10
- 866 459 866 459 852 410 c 1,11,-1
- 1202 727 l 1,12,-1
- 1343 578 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: arrowboth
-Encoding: 8596 8596 100
-Width: 2080
-GlyphClass: 2
-Flags: W
-Fore
-342 754 m 1,0,-1
- 1741 754 l 1,1,2
- 1628 864 1628 864 1530 1061 c 1,3,-1
- 1595 1061 l 1,4,5
- 1786 848 1786 848 2005 735 c 1,6,-1
- 2005 680 l 1,7,8
- 1784 568 1784 568 1595 354 c 1,9,-1
- 1530 354 l 1,10,11
- 1626 550 1626 550 1741 662 c 1,12,-1
- 342 662 l 1,13,14
- 453 552 453 552 553 354 c 1,15,-1
- 485 354 l 1,16,17
- 295 569 295 569 78 680 c 1,18,-1
- 78 735 l 1,19,20
- 293 846 293 846 485 1061 c 1,21,-1
- 553 1061 l 1,22,23
- 459 870 459 870 342 754 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: arrowupdn
-Encoding: 8597 8597 101
-Width: 937
-GlyphClass: 2
-Flags: W
-Fore
-424 -23 m 1,0,-1
- 424 1376 l 1,1,2
- 314 1266 314 1266 117 1165 c 1,3,-1
- 117 1233 l 1,4,5
- 330 1424 330 1424 440 1640 c 1,6,-1
- 498 1640 l 1,7,8
- 608 1424 608 1424 821 1233 c 1,9,-1
- 821 1165 l 1,10,11
- 625 1264 625 1264 514 1376 c 1,12,-1
- 514 -23 l 1,13,14
- 625 91 625 91 821 188 c 1,15,-1
- 821 123 l 1,16,17
- 608 -69 608 -69 498 -287 c 1,18,-1
- 440 -287 l 1,19,20
- 332 -69 332 -69 117 123 c 1,21,-1
- 117 188 l 1,22,23
- 313 91 313 91 424 -23 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni2197
-Encoding: 8599 8599 102
-Width: 1259
-GlyphClass: 2
-Flags: W
-Fore
-506 1262 m 1,0,1
- 560 1262 560 1262 696 1237 c 0,2,3
- 799 1218 799 1218 864 1218 c 0,4,5
- 876 1218 876 1218 887 1219 c 0,6,7
- 899 1219 899 1219 928 1223 c 0,8,9
- 960 1225 960 1225 969 1225 c 2,10,-1
- 1010 1223 l 1,11,12
- 1011 1150 1011 1150 1033 976 c 0,13,14
- 1055 810 1055 810 1055 721 c 1,15,-1
- 1028 700 l 1,16,17
- 972 720 972 720 918 1051 c 1,18,-1
- 901 1051 l 1,19,-1
- 207 -8 l 1,20,21
- 156 -4 156 -4 150 43 c 1,22,-1
- 840 1112 l 1,23,-1
- 842 1128 l 1,24,25
- 721 1145 721 1145 649 1161 c 0,26,27
- 501 1194 501 1194 492 1233 c 1,28,-1
- 506 1262 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: uni2198
-Encoding: 8600 8600 103
-Width: 1214
-GlyphClass: 2
-Flags: W
-Fore
-485 33 m 1,0,1
- 549 33 549 33 675 54 c 0,2,3
- 798 76 798 76 866 76 c 0,4,5
- 872 76 872 76 914 72 c 0,6,7
- 943 68 943 68 963 68 c 2,8,-1
- 989 72 l 1,9,10
- 992 155 992 155 1014 322 c 0,11,12
- 1034 491 1034 491 1034 573 c 1,13,-1
- 1008 594 l 1,14,15
- 953 576 953 576 897 244 c 1,16,-1
- 881 244 l 1,17,-1
- 186 1303 l 1,18,19
- 135 1298 135 1298 129 1251 c 1,20,-1
- 819 182 l 1,21,-1
- 821 166 l 1,22,23
- 702 150 702 150 629 133 c 0,24,25
- 481 100 481 100 471 59 c 1,26,-1
- 485 33 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: uni21B3
-Encoding: 8627 8627 104
-Width: 1640
-GlyphClass: 2
-Flags: W
-Fore
-152 629 m 1,0,-1
- 1300 623 l 1,1,2
- 1232 709 1232 709 1192 770 c 0,3,4
- 1127 874 1127 874 1122 930 c 1,5,-1
- 1157 954 l 1,6,-1
- 1300 770 l 2,7,8
- 1363 710 1363 710 1487 569 c 1,9,-1
- 1331 373 l 2,10,11
- 1241 262 1241 262 1163 184 c 1,12,-1
- 1145 182 l 1,13,-1
- 1122 211 l 1,14,15
- 1131 275 1131 275 1300 514 c 1,16,-1
- 1288 524 l 1,17,-1
- 102 524 l 1,18,-1
- 152 629 l 1,0,-1
-78 1165 m 1,19,-1
- 152 1165 l 1,20,-1
- 152 582 l 2,21,22
- 152 524 152 524 102 524 c 1,23,-1
- 80 537 l 1,24,-1
- 78 1165 l 1,19,-1
-EndSplineSet
-EndChar
-StartChar: carriagereturn
-Encoding: 8629 8629 105
-Width: 1640
-GlyphClass: 2
-Flags: W
-Fore
-1446 629 m 1,0,-1
- 297 623 l 1,1,2
- 359 701 359 701 406 770 c 0,3,4
- 471 875 471 875 475 930 c 1,5,-1
- 440 954 l 1,6,-1
- 297 770 l 2,7,8
- 231 707 231 707 111 569 c 1,9,-1
- 266 373 l 2,10,11
- 356 262 356 262 434 184 c 1,12,-1
- 453 182 l 1,13,-1
- 475 211 l 1,14,15
- 468 272 468 272 297 514 c 1,16,-1
- 309 524 l 1,17,-1
- 1495 524 l 1,18,-1
- 1446 629 l 1,0,-1
-1520 1165 m 1,19,-1
- 1446 1165 l 1,20,-1
- 1446 582 l 2,21,22
- 1446 524 1446 524 1495 524 c 1,23,-1
- 1518 537 l 1,24,-1
- 1520 1165 l 1,19,-1
-EndSplineSet
-EndChar
-StartChar: arrowdblleft
-Encoding: 8656 8656 106
-Width: 1658
-GlyphClass: 2
-Flags: W
-Fore
-139 629 m 0,0,1
- 139 668 139 668 346 831 c 0,2,3
- 552 995 552 995 600 995 c 0,4,5
- 649 995 649 995 649 942 c 0,6,7
- 649 904 649 904 532 827 c 1,8,-1
- 1561 827 l 1,9,-1
- 1561 729 l 1,10,-1
- 406 729 l 1,11,-1
- 268 625 l 1,12,-1
- 428 457 l 1,13,-1
- 1561 457 l 1,14,-1
- 1561 358 l 1,15,-1
- 524 358 l 1,16,17
- 627 258 627 258 627 231 c 0,18,19
- 627 182 627 182 573 182 c 0,20,21
- 539 182 539 182 339 388 c 0,22,23
- 139 594 139 594 139 629 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: arrowdblright
-Encoding: 8658 8658 107
-Width: 1634
-GlyphClass: 2
-Flags: W
-Fore
-1106 182 m 0,0,1
- 1053 182 1053 182 1053 231 c 0,2,3
- 1053 263 1053 263 1157 358 c 1,4,-1
- 119 358 l 1,5,-1
- 119 457 l 1,6,-1
- 1251 457 l 1,7,-1
- 1411 625 l 1,8,-1
- 1274 729 l 1,9,-1
- 119 729 l 1,10,-1
- 119 827 l 1,11,-1
- 1147 827 l 1,12,13
- 1030 904 1030 904 1030 942 c 0,14,15
- 1030 995 1030 995 1079 995 c 0,16,17
- 1119 995 1119 995 1329 827 c 0,18,19
- 1540 659 1540 659 1540 629 c 0,20,21
- 1540 596 1540 596 1339 389 c 0,22,23
- 1140 182 1140 182 1106 182 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: arrowdblboth
-Encoding: 8660 8660 108
-Width: 1900
-GlyphClass: 2
-Flags: W
-Fore
-1505 727 m 1,0,-1
- 395 723 l 1,1,-1
- 258 618 l 1,2,-1
- 418 451 l 1,3,-1
- 1489 451 l 1,4,-1
- 1649 616 l 1,5,-1
- 1505 727 l 1,0,-1
-1395 352 m 1,6,-1
- 512 352 l 1,7,8
- 616 251 616 251 616 225 c 0,9,10
- 616 176 616 176 561 176 c 0,11,12
- 526 176 526 176 327 381 c 0,13,14
- 127 586 127 586 127 623 c 0,15,16
- 127 656 127 656 337 822 c 0,17,18
- 546 989 546 989 588 989 c 0,19,20
- 639 989 639 989 639 936 c 0,21,22
- 639 900 639 900 522 821 c 1,23,-1
- 1380 821 l 1,24,25
- 1268 909 1268 909 1268 934 c 0,26,27
- 1268 989 1268 989 1317 989 c 0,28,29
- 1362 989 1362 989 1570 824 c 0,30,31
- 1778 658 1778 658 1778 623 c 0,32,33
- 1778 583 1778 583 1580 379 c 0,34,35
- 1382 174 1382 174 1343 174 c 0,36,37
- 1290 174 1290 174 1290 225 c 0,38,39
- 1290 250 1290 250 1395 352 c 1,6,-1
-EndSplineSet
-EndChar
-StartChar: uni21E4
-Encoding: 8676 8676 109
-Width: 2099
-GlyphClass: 2
-Flags: W
-Fore
-1921 858 m 1,0,-1
- 1921 678 l 1,1,-1
- 846 678 l 1,2,-1
- 846 319 l 1,3,-1
- 397 768 l 1,4,-1
- 846 1217 l 1,5,-1
- 846 858 l 1,6,-1
- 1921 858 l 1,0,-1
-307 1395 m 1,7,-1
- 307 141 l 1,8,-1
- 129 141 l 1,9,-1
- 129 1395 l 1,10,-1
- 307 1395 l 1,7,-1
-EndSplineSet
-EndChar
-StartChar: uni21E5
-Encoding: 8677 8677 110
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-129 858 m 1,0,-1
- 1204 858 l 1,1,-1
- 1204 1217 l 1,2,-1
- 1651 768 l 1,3,-1
- 1204 319 l 1,4,-1
- 1204 678 l 1,5,-1
- 129 678 l 1,6,-1
- 129 858 l 1,0,-1
-1741 1395 m 1,7,-1
- 1921 1395 l 1,8,-1
- 1921 141 l 1,9,-1
- 1741 141 l 1,10,-1
- 1741 1395 l 1,7,-1
-EndSplineSet
-EndChar
-StartChar: uni21E6
-Encoding: 8678 8678 111
-Width: 2390
-GlyphClass: 2
-Flags: W
-Fore
-1536 -170 m 1,0,-1
- 512 854 l 1,1,-1
- 1536 1878 l 1,2,-1
- 1536 1366 l 1,3,-1
- 1878 1366 l 1,4,-1
- 1878 342 l 1,5,-1
- 1536 342 l 1,6,-1
- 1536 -170 l 1,0,-1
-754 854 m 1,7,-1
- 1366 240 l 1,8,-1
- 1366 512 l 1,9,-1
- 1708 512 l 1,10,-1
- 1708 1194 l 1,11,-1
- 1366 1194 l 1,12,-1
- 1366 1466 l 1,13,-1
- 754 854 l 1,7,-1
-EndSplineSet
-EndChar
-StartChar: uni21E7
-Encoding: 8679 8679 112
-Width: 2390
-GlyphClass: 2
-Flags: W
-Fore
-170 512 m 1,0,-1
- 1194 1536 l 1,1,-1
- 2218 512 l 1,2,-1
- 1706 512 l 1,3,-1
- 1706 170 l 1,4,-1
- 682 170 l 1,5,-1
- 682 512 l 1,6,-1
- 170 512 l 1,0,-1
-1194 1294 m 1,7,-1
- 582 682 l 1,8,-1
- 854 682 l 1,9,-1
- 854 342 l 1,10,-1
- 1536 342 l 1,11,-1
- 1536 682 l 1,12,-1
- 1806 682 l 1,13,-1
- 1194 1294 l 1,7,-1
-EndSplineSet
-EndChar
-StartChar: uni21E8
-Encoding: 8680 8680 113
-Width: 2390
-GlyphClass: 2
-Flags: W
-Fore
-854 1878 m 1,0,-1
- 1878 854 l 1,1,-1
- 854 -170 l 1,2,-1
- 854 342 l 1,3,-1
- 512 342 l 1,4,-1
- 512 1366 l 1,5,-1
- 854 1366 l 1,6,-1
- 854 1878 l 1,0,-1
-1636 854 m 1,7,-1
- 1024 1466 l 1,8,-1
- 1024 1196 l 1,9,-1
- 682 1196 l 1,10,-1
- 682 512 l 1,11,-1
- 1024 512 l 1,12,-1
- 1024 242 l 1,13,-1
- 1636 854 l 1,7,-1
-EndSplineSet
-EndChar
-StartChar: uni21E9
-Encoding: 8681 8681 114
-Width: 2390
-GlyphClass: 2
-Flags: W
-Fore
-2218 1194 m 1,0,-1
- 1194 170 l 1,1,-1
- 170 1194 l 1,2,-1
- 682 1194 l 1,3,-1
- 682 1536 l 1,4,-1
- 1706 1536 l 1,5,-1
- 1706 1194 l 1,6,-1
- 2218 1194 l 1,0,-1
-1194 412 m 1,7,-1
- 1808 1024 l 1,8,-1
- 1536 1024 l 1,9,-1
- 1536 1366 l 1,10,-1
- 854 1366 l 1,11,-1
- 854 1024 l 1,12,-1
- 584 1024 l 1,13,-1
- 1194 412 l 1,7,-1
-EndSplineSet
-EndChar
-StartChar: universal
-Encoding: 8704 8704 115
-Width: 1771
-GlyphClass: 2
-Flags: W
-Fore
-1350 1087 m 1,0,-1
- 1559 1522 l 1,1,-1
- 1743 1522 l 1,2,-1
- 1028 0 l 1,3,-1
- 776 0 l 1,4,-1
- 55 1522 l 1,5,-1
- 248 1522 l 1,6,-1
- 459 1087 l 1,7,-1
- 1350 1087 l 1,0,-1
-1296 942 m 1,8,-1
- 512 942 l 1,9,-1
- 905 135 l 1,10,-1
- 1296 942 l 1,8,-1
-EndSplineSet
-EndChar
-StartChar: partialdiff
-Encoding: 8706 8706 116
-Width: 1091
-GlyphClass: 2
-Flags: W
-Fore
-946 717 m 1,0,1
- 958 828 958 828 958 901 c 0,2,3
- 958 1072 958 1072 872 1174 c 0,4,5
- 781 1280 781 1280 612 1280 c 0,6,7
- 417 1280 417 1280 311 1120 c 1,8,-1
- 266 1120 l 1,9,10
- 405 1421 405 1421 647 1421 c 0,11,12
- 840 1421 840 1421 936 1260 c 0,13,14
- 1012 1126 1012 1126 1012 920 c 0,15,16
- 1012 582 1012 582 885 311 c 0,17,18
- 723 -31 723 -31 422 -31 c 0,19,20
- 268 -31 268 -31 174 58 c 0,21,22
- 82 148 82 148 82 303 c 0,23,24
- 82 543 82 543 236 721 c 0,25,26
- 396 907 396 907 633 907 c 0,27,28
- 861 907 861 907 946 717 c 1,0,1
-930 629 m 1,29,30
- 851 852 851 852 643 852 c 0,31,32
- 457 852 457 852 344 643 c 0,33,34
- 252 468 252 468 252 264 c 0,35,36
- 252 164 252 164 297 98 c 0,37,38
- 350 27 350 27 446 27 c 0,39,40
- 633 27 633 27 774 244 c 0,41,42
- 881 406 881 406 930 629 c 1,29,30
-EndSplineSet
-EndChar
-StartChar: existential
-Encoding: 8707 8707 117
-Width: 1345
-GlyphClass: 2
-Flags: W
-Fore
-117 2 m 1,0,-1
- 117 131 l 1,1,-1
- 1034 131 l 1,2,-1
- 1034 670 l 1,3,-1
- 217 670 l 1,4,-1
- 217 805 l 1,5,-1
- 1034 805 l 1,6,-1
- 1034 1274 l 1,7,-1
- 117 1274 l 1,8,-1
- 117 1409 l 1,9,-1
- 1190 1409 l 1,10,-1
- 1190 2 l 1,11,-1
- 117 2 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: emptyset
-Encoding: 8709 8709 118
-Width: 1798
-GlyphClass: 2
-Flags: W
-Fore
-1354 1145 m 1,0,1
- 1409 983 1409 983 1409 723 c 0,2,3
- 1409 -25 1409 -25 932 -25 c 0,4,5
- 632 -25 632 -25 522 264 c 1,6,7
- 230 -57 230 -57 197 -57 c 0,8,9
- 143 -57 143 -57 143 -4 c 0,10,11
- 143 28 143 28 487 377 c 1,12,13
- 455 520 455 520 455 723 c 0,14,15
- 455 1473 455 1473 932 1473 c 0,16,17
- 1189 1473 1189 1473 1311 1247 c 1,18,19
- 1558 1524 1558 1524 1591 1524 c 0,20,21
- 1645 1524 1645 1524 1645 1470 c 0,22,23
- 1645 1433 1645 1433 1354 1145 c 1,0,1
-1184 1112 m 1,24,25
- 1123 1323 1123 1323 930 1323 c 0,26,27
- 744 1323 744 1323 678 1100 c 0,28,29
- 639 968 639 968 639 723 c 0,30,31
- 639 626 639 626 645 545 c 1,32,-1
- 1184 1112 l 1,24,25
-1225 723 m 0,33,34
- 1225 867 1225 867 1208 991 c 1,35,-1
- 662 414 l 1,36,37
- 714 123 714 123 932 123 c 0,38,39
- 1120 123 1120 123 1186 346 c 0,40,41
- 1225 475 1225 475 1225 723 c 0,33,34
-EndSplineSet
-EndChar
-StartChar: gradient
-Encoding: 8711 8711 119
-Width: 1679
-GlyphClass: 2
-Flags: W
-Fore
-813 -188 m 1,0,-1
- 0 1640 l 1,1,-1
- 1735 1640 l 1,2,-1
- 813 -188 l 1,0,-1
-901 229 m 1,3,-1
- 1563 1534 l 1,4,-1
- 315 1534 l 1,5,-1
- 901 229 l 1,3,-1
-EndSplineSet
-EndChar
-StartChar: element
-Encoding: 8712 8712 120
-Width: 1460
-GlyphClass: 2
-Flags: W
-Fore
-1257 1133 m 1,0,-1
- 1257 1018 l 1,1,2
- 1200 1018 1200 1018 1071 1024 c 0,3,4
- 964 1028 964 1028 887 1028 c 0,5,6
- 628 1028 628 1028 487 961 c 0,7,8
- 298 869 298 869 258 645 c 1,9,-1
- 1257 645 l 1,10,-1
- 1257 524 l 1,11,-1
- 260 524 l 1,12,13
- 317 297 317 297 504 207 c 0,14,15
- 645 139 645 139 895 139 c 0,16,17
- 945 139 945 139 1082 144 c 0,18,19
- 1206 150 1206 150 1257 150 c 1,20,-1
- 1257 35 l 1,21,-1
- 780 35 l 2,22,23
- 500 35 500 35 330 168 c 0,24,25
- 139 315 139 315 139 586 c 0,26,27
- 139 852 139 852 330 999 c 0,28,29
- 502 1133 502 1133 776 1133 c 2,30,-1
- 1257 1133 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: notelement
-Encoding: 8713 8713 121
-Width: 1460
-GlyphClass: 2
-Flags: W
-Fore
-1264 1133 m 1,0,-1
- 1264 1018 l 1,1,-1
- 1020 1018 l 1,2,-1
- 807 645 l 1,3,-1
- 1264 645 l 1,4,-1
- 1264 524 l 1,5,-1
- 739 524 l 1,6,-1
- 549 186 l 1,7,8
- 699 141 699 141 918 141 c 0,9,10
- 938 141 938 141 1092 145 c 0,11,12
- 1229 150 1229 150 1264 150 c 1,13,-1
- 1264 35 l 1,14,-1
- 786 35 l 2,15,16
- 594 35 594 35 487 80 c 1,17,-1
- 358 -137 l 1,18,-1
- 229 -137 l 1,19,-1
- 387 129 l 1,20,21
- 145 327 145 327 145 586 c 0,22,23
- 145 916 145 916 403 1042 c 0,24,25
- 585 1133 585 1133 954 1133 c 1,26,-1
- 1065 1325 l 1,27,-1
- 1198 1325 l 1,28,-1
- 1090 1133 l 1,29,-1
- 1264 1133 l 1,0,-1
-887 1018 m 1,30,-1
- 768 1018 l 2,31,32
- 340 1018 340 1018 264 645 c 1,33,-1
- 672 645 l 1,34,-1
- 887 1018 l 1,30,-1
-608 524 m 1,35,-1
- 266 524 l 1,36,37
- 320 341 320 341 449 233 c 1,38,-1
- 608 524 l 1,35,-1
-EndSplineSet
-EndChar
-StartChar: suchthat
-Encoding: 8715 8715 122
-Width: 1460
-GlyphClass: 2
-Flags: W
-Fore
-164 1139 m 1,0,-1
- 645 1139 l 2,1,2
- 918 1139 918 1139 1092 1006 c 0,3,4
- 1282 858 1282 858 1282 592 c 0,5,6
- 1282 321 1282 321 1092 174 c 0,7,8
- 920 41 920 41 641 41 c 2,9,-1
- 164 41 l 1,10,-1
- 164 156 l 1,11,12
- 180 156 180 156 348 152 c 0,13,14
- 461 145 461 145 530 145 c 0,15,16
- 786 145 786 145 926 217 c 0,17,18
- 1105 307 1105 307 1161 530 c 1,19,-1
- 164 530 l 1,20,-1
- 164 651 l 1,21,-1
- 1163 651 l 1,22,23
- 1122 877 1122 877 934 967 c 0,24,25
- 794 1034 794 1034 535 1034 c 0,26,27
- 458 1034 458 1034 350 1030 c 0,28,29
- 221 1024 221 1024 164 1024 c 1,30,-1
- 164 1139 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni220D
-Encoding: 8717 8717 123
-Width: 899
-GlyphClass: 2
-Flags: W
-Fore
-168 500 m 1,0,-1
- 629 500 l 1,1,2
- 606 676 606 676 497 781 c 0,3,4
- 388 887 388 887 211 887 c 0,5,6
- 167 887 167 887 104 870 c 1,7,-1
- 104 928 l 1,8,9
- 219 956 219 956 315 956 c 0,10,11
- 534 956 534 956 674 831 c 0,12,13
- 821 700 821 700 821 485 c 0,14,15
- 821 254 821 254 672 117 c 0,16,17
- 525 -20 525 -20 291 -20 c 0,18,19
- 212 -20 212 -20 51 25 c 1,20,-1
- 51 86 l 1,21,22
- 160 47 160 47 256 47 c 0,23,24
- 411 47 411 47 516 160 c 0,25,26
- 609 262 609 262 629 426 c 1,27,-1
- 168 426 l 1,28,-1
- 168 500 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: product
-Encoding: 8719 8719 124
-Width: 1804
-GlyphClass: 2
-Flags: W
-Fore
-1296 1458 m 1,0,-1
- 502 1458 l 1,1,-1
- 502 10 l 2,2,3
- 502 -85 502 -85 557 -119 c 0,4,5
- 599 -145 599 -145 700 -145 c 1,6,-1
- 700 -184 l 1,7,-1
- 102 -184 l 1,8,-1
- 102 -145 l 1,9,10
- 204 -145 204 -145 246 -119 c 0,11,12
- 301 -85 301 -85 301 10 c 2,13,-1
- 301 1343 l 2,14,15
- 301 1437 301 1437 246 1473 c 0,16,17
- 202 1499 202 1499 102 1499 c 1,18,-1
- 102 1536 l 1,19,-1
- 1696 1536 l 1,20,-1
- 1696 1499 l 1,21,22
- 1596 1499 1596 1499 1552 1473 c 0,23,24
- 1499 1437 1499 1437 1499 1343 c 2,25,-1
- 1499 10 l 2,26,27
- 1499 -83 1499 -83 1552 -119 c 0,28,29
- 1592 -145 1592 -145 1678 -145 c 0,30,31
- 1696 -145 l 1,32,-1
- 1696 -184 l 1,33,-1
- 1100 -184 l 1,34,-1
- 1100 -147 l 1,35,-1
- 1154 -144 l 2,36,37
- 1296 -126 1296 -126 1296 10 c 2,38,-1
- 1296 1458 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni2210
-Encoding: 8720 8720 125
-Width: 1832
-GlyphClass: 2
-Flags: W
-Fore
-522 -127 m 1,0,-1
- 1317 -127 l 1,1,-1
- 1317 1321 l 2,2,3
- 1317 1415 1317 1415 1262 1450 c 0,4,5
- 1218 1477 1218 1477 1118 1477 c 1,6,-1
- 1118 1516 l 1,7,-1
- 1716 1516 l 1,8,-1
- 1716 1477 l 1,9,10
- 1616 1477 1616 1477 1573 1450 c 0,11,12
- 1518 1416 1518 1416 1518 1321 c 2,13,-1
- 1518 -12 l 2,14,15
- 1518 -107 1518 -107 1573 -141 c 0,16,17
- 1616 -168 1616 -168 1716 -168 c 1,18,-1
- 1716 -205 l 1,19,-1
- 123 -205 l 1,20,-1
- 123 -168 l 1,21,22
- 224 -168 224 -168 264 -145 c 0,23,24
- 319 -114 319 -114 319 -12 c 2,25,-1
- 319 1321 l 2,26,27
- 319 1416 319 1416 266 1450 c 0,28,29
- 224 1477 224 1477 123 1477 c 1,30,-1
- 123 1516 l 1,31,-1
- 719 1516 l 1,32,-1
- 719 1479 l 1,33,-1
- 665 1476 l 1,34,-1
- 623 1467 l 2,35,36
- 522 1435 522 1435 522 1321 c 2,37,-1
- 522 -127 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: summation
-Encoding: 8721 8721 126
-Width: 1622
-GlyphClass: 2
-Flags: W
-Fore
-1436 -205 m 1,0,-1
- 123 -205 l 1,1,-1
- 123 -168 l 1,2,-1
- 793 664 l 1,3,-1
- 123 1481 l 1,4,-1
- 123 1518 l 1,5,-1
- 1401 1518 l 1,6,-1
- 1427 1180 l 1,7,-1
- 1386 1180 l 1,8,9
- 1360 1436 1360 1436 1139 1436 c 2,10,-1
- 399 1436 l 1,11,-1
- 961 750 l 1,12,-1
- 332 -29 l 1,13,-1
- 1149 -29 l 2,14,15
- 1396 -29 1396 -29 1460 217 c 1,16,-1
- 1499 211 l 1,17,-1
- 1436 -205 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni2213
-Encoding: 8723 8723 127
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-1407 1184 m 1,0,-1
- 1407 1085 l 1,1,-1
- 221 1085 l 1,2,-1
- 221 1184 l 1,3,-1
- 1407 1184 l 1,0,-1
-864 889 m 1,4,-1
- 864 494 l 1,5,-1
- 1407 494 l 1,6,-1
- 1407 395 l 1,7,-1
- 864 395 l 1,8,-1
- 864 0 l 1,9,-1
- 766 0 l 1,10,-1
- 766 395 l 1,11,-1
- 221 395 l 1,12,-1
- 221 494 l 1,13,-1
- 766 494 l 1,14,-1
- 766 889 l 1,15,-1
- 864 889 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uni2216
-Encoding: 8726 8726 128
-Width: 927
-GlyphClass: 2
-Flags: W
-Fore
-0 1491 m 1,0,-1
- 145 1491 l 1,1,-1
- 938 -25 l 1,2,-1
- 795 -25 l 1,3,-1
- 0 1491 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: asteriskmath
-Encoding: 8727 8727 129
-Width: 1480
-GlyphClass: 2
-Flags: W
-Fore
-666 147 m 1,0,-1
- 702 528 l 1,1,-1
- 393 305 l 1,2,-1
- 319 434 l 1,3,-1
- 666 592 l 1,4,-1
- 319 750 l 1,5,-1
- 393 879 l 1,6,-1
- 702 655 l 1,7,-1
- 666 1036 l 1,8,-1
- 815 1036 l 1,9,-1
- 778 655 l 1,10,-1
- 1087 879 l 1,11,-1
- 1163 752 l 1,12,-1
- 815 592 l 1,13,-1
- 1163 434 l 1,14,-1
- 1087 305 l 1,15,-1
- 778 528 l 1,16,-1
- 815 147 l 1,17,-1
- 666 147 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: radical
-Encoding: 8730 8730 130
-Width: 1091
-GlyphClass: 2
-Flags: W
-Fore
-569 0 m 1,0,-1
- 233 668 l 1,1,-1
- 90 582 l 1,2,-1
- 66 623 l 1,3,-1
- 301 764 l 1,4,-1
- 608 145 l 1,5,-1
- 1061 1647 l 1,6,-1
- 1110 1647 l 1,7,-1
- 614 0 l 1,8,-1
- 569 0 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: proportional
-Encoding: 8733 8733 131
-Width: 1460
-GlyphClass: 2
-Flags: W
-Fore
-682 668 m 1,0,1
- 745 806 745 806 819 868 c 0,2,3
- 907 944 907 944 1047 944 c 0,4,5
- 1201 944 1201 944 1337 838 c 1,6,-1
- 1337 778 l 1,7,8
- 1223 868 1223 868 1106 868 c 0,9,10
- 974 868 974 868 887 723 c 0,11,12
- 845 656 845 656 778 465 c 1,13,14
- 897 188 897 188 1114 188 c 0,15,16
- 1235 188 1235 188 1337 270 c 1,17,-1
- 1337 213 l 1,18,19
- 1230 106 1230 106 1094 106 c 0,20,21
- 905 106 905 106 750 395 c 1,22,23
- 636 160 636 160 424 160 c 0,24,25
- 273 160 273 160 177 268 c 0,26,27
- 82 378 82 378 82 530 c 0,28,29
- 82 675 82 675 162 782 c 0,30,31
- 250 897 250 897 391 897 c 0,32,33
- 571 897 571 897 682 668 c 1,0,1
-653 590 m 1,34,35
- 561 805 561 805 385 805 c 0,36,37
- 275 805 275 805 206 724 c 128,-1,38
- 137 643 137 643 137 530 c 0,39,40
- 137 419 137 419 195 334 c 0,41,42
- 260 238 260 238 367 238 c 0,43,44
- 484 238 484 238 559 362 c 0,45,46
- 597 422 597 422 653 590 c 1,34,35
-EndSplineSet
-EndChar
-StartChar: infinity
-Encoding: 8734 8734 132
-Width: 1540
-GlyphClass: 2
-Flags: W
-Fore
-702 668 m 1,0,1
- 764 807 764 807 842 870 c 0,2,3
- 931 944 931 944 1073 944 c 0,4,5
- 1244 944 1244 944 1354 819 c 0,6,7
- 1456 700 1456 700 1456 526 c 0,8,9
- 1456 366 1456 366 1364 242 c 0,10,11
- 1261 106 1261 106 1106 106 c 0,12,13
- 923 106 923 106 770 393 c 1,14,15
- 653 160 653 160 444 160 c 0,16,17
- 290 160 290 160 197 266 c 0,18,19
- 102 373 102 373 102 528 c 0,20,21
- 102 671 102 671 182 780 c 0,22,23
- 270 897 270 897 410 897 c 0,24,25
- 515 897 515 897 588 827 c 0,26,27
- 642 778 642 778 702 668 c 1,0,1
-799 465 m 1,28,29
- 918 201 918 201 1110 201 c 0,30,31
- 1246 201 1246 201 1325 297 c 0,32,33
- 1399 389 1399 389 1399 526 c 0,34,35
- 1399 656 1399 656 1323 756 c 0,36,37
- 1240 866 1240 866 1116 866 c 0,38,39
- 996 866 996 866 907 719 c 0,40,41
- 872 657 872 657 799 465 c 1,28,29
-674 590 m 1,42,43
- 581 805 581 805 406 805 c 0,44,45
- 295 805 295 805 226 724 c 0,46,47
- 158 642 158 642 158 530 c 0,48,49
- 158 420 158 420 215 334 c 0,50,51
- 281 238 281 238 387 238 c 0,52,53
- 504 238 504 238 580 362 c 0,54,55
- 618 422 618 422 674 590 c 1,42,43
-EndSplineSet
-EndChar
-StartChar: uni2221
-Encoding: 8737 8737 133
-Width: 1536
-GlyphClass: 2
-Flags: W
-Fore
-922 102 m 1,0,1
- 892 312 892 312 758 492 c 1,2,-1
- 389 102 l 1,3,-1
- 922 102 l 1,0,1
-1331 1188 m 1,4,-1
- 1331 1044 l 1,5,-1
- 840 553 l 1,6,7
- 986 363 986 363 1024 102 c 1,8,-1
- 1331 102 l 1,9,-1
- 1331 0 l 1,10,-1
- 143 0 l 1,11,-1
- 1331 1188 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uni2222
-Encoding: 8738 8738 134
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-1075 344 m 1,0,-1
- 1407 209 l 1,1,-1
- 1368 117 l 1,2,-1
- 1042 252 l 1,3,4
- 972 90 972 90 850 -37 c 1,5,-1
- 780 35 l 1,6,7
- 886 147 886 147 950 291 c 1,8,-1
- 221 592 l 1,9,-1
- 950 895 l 1,10,11
- 876 1055 876 1055 780 1151 c 1,12,-1
- 850 1221 l 1,13,14
- 969 1088 969 1088 1042 932 c 1,15,-1
- 1368 1067 l 1,16,-1
- 1407 977 l 1,17,-1
- 1075 840 l 1,18,19
- 1110 698 1110 698 1110 592 c 0,20,21
- 1110 487 1110 487 1075 344 c 1,0,-1
-983 383 m 1,22,23
- 1012 510 1012 510 1012 592 c 0,24,25
- 1012 680 1012 680 983 801 c 1,26,-1
- 481 592 l 1,27,-1
- 983 383 l 1,22,23
-EndSplineSet
-EndChar
-StartChar: uni2223
-Encoding: 8739 8739 135
-Width: 813
-GlyphClass: 2
-Flags: W
-Fore
-358 -440 m 1,0,-1
- 358 1620 l 1,1,-1
- 457 1620 l 1,2,-1
- 457 -440 l 1,3,-1
- 358 -440 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni2224
-Encoding: 8740 8740 136
-Width: 972
-GlyphClass: 2
-Flags: W
-Fore
-539 588 m 1,0,-1
- 539 -481 l 1,1,-1
- 440 -481 l 1,2,-1
- 440 487 l 1,3,4
- 179 195 179 195 127 195 c 0,5,6
- 76 195 76 195 76 246 c 0,7,8
- 76 285 76 285 440 633 c 1,9,-1
- 440 1579 l 1,10,-1
- 539 1579 l 1,11,-1
- 539 733 l 1,12,13
- 798 1018 798 1018 844 1018 c 0,14,15
- 895 1018 895 1018 895 967 c 0,16,17
- 895 927 895 927 539 588 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni2225
-Encoding: 8947 8741 137
-Width: 1183
-GlyphClass: 2
-Flags: W
-Fore
-334 -430 m 1,0,-1
- 334 1620 l 1,1,-1
- 432 1620 l 1,2,-1
- 432 -430 l 1,3,-1
- 334 -430 l 1,0,-1
-752 -430 m 1,4,-1
- 752 1620 l 1,5,-1
- 850 1620 l 1,6,-1
- 850 -430 l 1,7,-1
- 752 -430 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: logicaland
-Encoding: 8743 8743 138
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 0 m 1,0,-1
- 809 1174 l 1,1,-1
- 1401 0 l 1,2,-1
- 1292 0 l 1,3,-1
- 811 958 l 1,4,-1
- 330 0 l 1,5,-1
- 221 0 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: logicalor
-Encoding: 8744 8744 139
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 1180 m 1,0,-1
- 330 1180 l 1,1,-1
- 811 215 l 1,2,-1
- 1292 1180 l 1,3,-1
- 1401 1180 l 1,4,-1
- 811 0 l 1,5,-1
- 221 1180 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: intersection
-Encoding: 8745 8745 140
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 0 m 1,0,-1
- 221 592 l 2,1,2
- 221 860 221 860 383 1022 c 128,-1,3
- 545 1184 545 1184 813 1184 c 0,4,5
- 1082 1184 1082 1184 1245 1023 c 0,6,7
- 1407 862 1407 862 1407 592 c 2,8,-1
- 1407 0 l 1,9,-1
- 1309 0 l 1,10,11
- 1309 60 1309 60 1315 199 c 0,12,13
- 1319 315 1319 315 1319 397 c 0,14,15
- 1319 716 1319 716 1229 877 c 0,16,17
- 1111 1085 1111 1085 813 1085 c 0,18,19
- 594 1085 594 1085 458 948 c 0,20,21
- 322 812 322 812 322 592 c 2,22,-1
- 322 0 l 1,23,-1
- 221 0 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: union
-Encoding: 8746 8746 141
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-1407 1184 m 1,0,-1
- 1407 592 l 2,1,2
- 1407 322 1407 322 1245 161 c 0,3,4
- 1082 0 1082 0 813 0 c 0,5,6
- 542 0 542 0 383 161 c 0,7,8
- 223 321 223 321 223 592 c 2,9,-1
- 223 1184 l 1,10,-1
- 322 1184 l 1,11,-1
- 322 592 l 2,12,13
- 322 372 322 372 459 236 c 0,14,15
- 594 98 594 98 813 98 c 0,16,17
- 1114 98 1114 98 1233 313 c 0,18,19
- 1319 471 1319 471 1319 788 c 0,20,21
- 1319 877 1319 877 1315 993 c 0,22,23
- 1309 1132 1309 1132 1309 1184 c 1,24,-1
- 1407 1184 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: integral
-Encoding: 8747 8747 142
-Width: 1183
-GlyphClass: 2
-Flags: W
-Fore
-367 -211 m 1,0,1
- 385 -223 385 -223 406 -223 c 0,2,3
- 518 -223 518 -223 518 -12 c 0,4,5
- 518 60 518 60 512 205 c 128,-1,6
- 506 350 506 350 506 422 c 2,7,-1
- 506 907 l 2,8,9
- 506 1616 506 1616 813 1616 c 0,10,11
- 875 1616 875 1616 919 1579 c 0,12,13
- 963 1541 963 1541 963 1481 c 0,14,15
- 963 1442 963 1442 936 1409 c 128,-1,16
- 909 1376 909 1376 870 1376 c 0,17,18
- 784 1376 784 1376 784 1460 c 0,19,20
- 784 1498 784 1498 817 1530 c 1,21,-1
- 778 1542 l 2,22,23
- 664 1542 664 1542 664 1360 c 0,24,25
- 664 1272 664 1272 671 1129 c 0,26,27
- 678 952 678 952 678 899 c 2,28,-1
- 678 453 l 2,29,30
- 678 -295 678 -295 371 -295 c 0,31,32
- 221 -295 221 -295 221 -162 c 0,33,34
- 221 -55 221 -55 315 -55 c 0,35,36
- 397 -55 397 -55 397 -145 c 0,37,38
- 397 -172 397 -172 367 -211 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: uni222C
-Encoding: 8748 8748 143
-Width: 1751
-GlyphClass: 3
-Flags: W
-Fore
-367 -211 m 1,0,1
- 385 -223 385 -223 406 -223 c 0,2,3
- 518 -223 518 -223 518 -12 c 0,4,5
- 518 60 518 60 512 205 c 128,-1,6
- 506 350 506 350 506 422 c 2,7,-1
- 506 907 l 2,8,9
- 506 1616 506 1616 813 1616 c 0,10,11
- 875 1616 875 1616 919 1579 c 0,12,13
- 963 1541 963 1541 963 1481 c 0,14,15
- 963 1442 963 1442 936 1409 c 128,-1,16
- 909 1376 909 1376 870 1376 c 0,17,18
- 784 1376 784 1376 784 1460 c 0,19,20
- 784 1498 784 1498 817 1530 c 1,21,-1
- 778 1542 l 2,22,23
- 664 1542 664 1542 664 1360 c 0,24,25
- 664 1272 664 1272 671 1129 c 0,26,27
- 678 952 678 952 678 899 c 2,28,-1
- 678 453 l 2,29,30
- 678 -295 678 -295 371 -295 c 0,31,32
- 221 -295 221 -295 221 -162 c 0,33,34
- 221 -55 221 -55 315 -55 c 0,35,36
- 397 -55 397 -55 397 -145 c 0,37,38
- 397 -172 397 -172 367 -211 c 1,0,1
-934 -211 m 1,39,40
- 952 -223 952 -223 973 -223 c 0,41,42
- 1085 -223 1085 -223 1085 -10 c 0,43,44
- 1085 62 1085 62 1079 206 c 128,-1,45
- 1073 350 1073 350 1073 422 c 2,46,-1
- 1073 883 l 2,47,48
- 1073 1616 1073 1616 1382 1616 c 0,49,50
- 1444 1616 1444 1616 1487 1579 c 0,51,52
- 1530 1542 1530 1542 1530 1481 c 0,53,54
- 1530 1442 1530 1442 1503 1409 c 128,-1,55
- 1476 1376 1476 1376 1438 1376 c 0,56,57
- 1354 1376 1354 1376 1354 1460 c 0,58,59
- 1354 1498 1354 1498 1384 1530 c 1,60,61
- 1366 1542 1366 1542 1346 1542 c 0,62,63
- 1231 1542 1231 1542 1231 1358 c 0,64,65
- 1231 1272 1231 1272 1238 1129 c 0,66,67
- 1245 988 1245 988 1245 899 c 2,68,-1
- 1245 453 l 2,69,70
- 1245 -295 1245 -295 938 -295 c 0,71,72
- 788 -295 788 -295 788 -162 c 0,73,74
- 788 -55 788 -55 883 -55 c 0,75,76
- 965 -55 965 -55 965 -145 c 0,77,78
- 965 -175 965 -175 934 -211 c 1,39,40
-EndSplineSet
-Ligature: 0 0 'liga' integral integral
-EndChar
-StartChar: uni222D
-Encoding: 8749 8749 144
-Width: 2318
-GlyphClass: 3
-Flags: W
-Fore
-367 -211 m 1,0,1
- 385 -223 385 -223 406 -223 c 0,2,3
- 518 -223 518 -223 518 -12 c 0,4,5
- 518 60 518 60 512 205 c 128,-1,6
- 506 350 506 350 506 422 c 2,7,-1
- 506 907 l 2,8,9
- 506 1616 506 1616 813 1616 c 0,10,11
- 875 1616 875 1616 919 1579 c 0,12,13
- 963 1541 963 1541 963 1481 c 0,14,15
- 963 1442 963 1442 936 1409 c 128,-1,16
- 909 1376 909 1376 870 1376 c 0,17,18
- 784 1376 784 1376 784 1460 c 0,19,20
- 784 1498 784 1498 817 1530 c 1,21,-1
- 778 1542 l 2,22,23
- 664 1542 664 1542 664 1360 c 0,24,25
- 664 1272 664 1272 671 1129 c 0,26,27
- 678 952 678 952 678 899 c 2,28,-1
- 678 453 l 2,29,30
- 678 -295 678 -295 371 -295 c 0,31,32
- 221 -295 221 -295 221 -162 c 0,33,34
- 221 -55 221 -55 315 -55 c 0,35,36
- 397 -55 397 -55 397 -145 c 0,37,38
- 397 -172 397 -172 367 -211 c 1,0,1
-934 -211 m 1,39,40
- 952 -223 952 -223 973 -223 c 0,41,42
- 1085 -223 1085 -223 1085 -10 c 0,43,44
- 1085 62 1085 62 1079 206 c 128,-1,45
- 1073 350 1073 350 1073 422 c 2,46,-1
- 1073 883 l 2,47,48
- 1073 1616 1073 1616 1382 1616 c 0,49,50
- 1444 1616 1444 1616 1487 1579 c 0,51,52
- 1530 1542 1530 1542 1530 1481 c 0,53,54
- 1530 1442 1530 1442 1503 1409 c 128,-1,55
- 1476 1376 1476 1376 1438 1376 c 0,56,57
- 1354 1376 1354 1376 1354 1460 c 0,58,59
- 1354 1498 1354 1498 1384 1530 c 1,60,61
- 1366 1542 1366 1542 1346 1542 c 0,62,63
- 1231 1542 1231 1542 1231 1358 c 0,64,65
- 1231 1272 1231 1272 1238 1129 c 0,66,67
- 1245 988 1245 988 1245 899 c 2,68,-1
- 1245 453 l 2,69,70
- 1245 -295 1245 -295 938 -295 c 0,71,72
- 788 -295 788 -295 788 -162 c 0,73,74
- 788 -55 788 -55 883 -55 c 0,75,76
- 965 -55 965 -55 965 -145 c 0,77,78
- 965 -175 965 -175 934 -211 c 1,39,40
-1501 -211 m 1,79,80
- 1519 -223 1519 -223 1540 -223 c 0,81,82
- 1655 -223 1655 -223 1655 -12 c 0,83,84
- 1655 60 1655 60 1649 205 c 0,85,86
- 1642 375 1642 375 1642 422 c 2,87,-1
- 1642 907 l 2,88,89
- 1642 1616 1642 1616 1950 1616 c 0,90,91
- 2011 1616 2011 1616 2054 1579 c 0,92,93
- 2097 1542 2097 1542 2097 1481 c 0,94,95
- 2097 1444 2097 1444 2071 1409 c 0,96,97
- 2044 1376 2044 1376 2005 1376 c 0,98,99
- 1921 1376 1921 1376 1921 1460 c 0,100,101
- 1921 1499 1921 1499 1952 1530 c 1,102,-1
- 1913 1542 l 2,103,104
- 1800 1542 1800 1542 1800 1358 c 0,105,106
- 1800 1308 1800 1308 1807 1128 c 0,107,108
- 1815 965 1815 965 1815 899 c 2,109,-1
- 1815 453 l 2,110,111
- 1815 -295 1815 -295 1505 -295 c 0,112,113
- 1358 -295 1358 -295 1358 -162 c 0,114,115
- 1358 -55 1358 -55 1450 -55 c 0,116,117
- 1532 -55 1532 -55 1532 -145 c 0,118,119
- 1532 -183 1532 -183 1501 -211 c 1,79,80
-EndSplineSet
-Ligature: 0 0 'liga' integral integral integral
-EndChar
-StartChar: uni222E
-Encoding: 8750 8750 145
-Width: 1257
-GlyphClass: 2
-Flags: W
-Fore
-545 983 m 1,0,1
- 434 955 434 955 365 864 c 0,2,3
- 295 775 295 775 295 659 c 0,4,5
- 295 547 295 547 367 457 c 0,6,7
- 438 366 438 366 547 338 c 1,8,9
- 539 485 539 485 539 661 c 0,10,11
- 539 810 539 810 545 983 c 1,0,1
-711 338 m 1,12,13
- 818 366 818 366 891 457 c 0,14,15
- 963 547 963 547 963 659 c 0,16,17
- 963 774 963 774 892 865 c 0,18,19
- 822 956 822 956 711 985 c 1,20,-1
- 715 521 l 2,21,22
- 714 395 714 395 711 338 c 1,12,13
-403 -211 m 1,23,24
- 422 -223 422 -223 442 -223 c 0,25,26
- 555 -223 555 -223 555 8 c 0,27,28
- 555 136 555 136 549 260 c 1,29,30
- 400 288 400 288 310 398 c 0,31,32
- 221 508 221 508 221 659 c 0,33,34
- 221 807 221 807 312 921 c 0,35,36
- 404 1033 404 1033 549 1061 c 1,37,38
- 566 1297 566 1297 606 1411 c 0,39,40
- 679 1616 679 1616 852 1616 c 0,41,42
- 999 1616 999 1616 999 1481 c 0,43,44
- 999 1376 999 1376 907 1376 c 0,45,46
- 821 1376 821 1376 821 1462 c 0,47,48
- 821 1496 821 1496 854 1530 c 1,49,-1
- 815 1542 l 2,50,51
- 700 1542 700 1542 700 1358 c 0,52,53
- 700 1314 700 1314 709 1061 c 1,54,55
- 855 1033 855 1033 946 922 c 0,56,57
- 1036 811 1036 811 1036 659 c 0,58,59
- 1036 506 1036 506 946 396 c 0,60,61
- 857 287 857 287 707 260 c 1,62,63
- 670 -295 670 -295 408 -295 c 0,64,65
- 258 -295 258 -295 258 -162 c 0,66,67
- 258 -55 258 -55 352 -55 c 0,68,69
- 434 -55 434 -55 434 -145 c 0,70,71
- 434 -183 434 -183 403 -211 c 1,23,24
-EndSplineSet
-EndChar
-StartChar: uni222F
-Encoding: 8751 8751 146
-Width: 1826
-GlyphClass: 3
-Flags: W
-Fore
-1604 659 m 0,0,1
- 1604 435 1604 435 1278 313 c 1,2,3
- 1246 -295 1246 -295 975 -295 c 0,4,5
- 825 -295 825 -295 825 -162 c 0,6,7
- 825 -55 825 -55 920 -55 c 0,8,9
- 1001 -55 1001 -55 1001 -145 c 0,10,11
- 1001 -176 1001 -176 971 -211 c 1,12,13
- 989 -223 989 -223 1010 -223 c 0,14,15
- 1122 -223 1122 -223 1122 -10 c 0,16,17
- 1122 134 1122 134 1116 270 c 1,18,19
- 1017 254 1017 254 913 254 c 0,20,21
- 807 254 807 254 707 270 c 1,22,23
- 669 -295 669 -295 408 -295 c 0,24,25
- 258 -295 258 -295 258 -162 c 0,26,27
- 258 -55 258 -55 352 -55 c 0,28,29
- 434 -55 434 -55 434 -145 c 0,30,31
- 434 -183 434 -183 403 -211 c 1,32,33
- 422 -223 422 -223 442 -223 c 0,34,35
- 555 -223 555 -223 555 -10 c 0,36,37
- 555 139 555 139 549 313 c 1,38,39
- 221 433 221 433 221 659 c 0,40,41
- 221 882 221 882 547 1008 c 1,42,43
- 565 1616 565 1616 852 1616 c 0,44,45
- 999 1616 999 1616 999 1481 c 0,46,47
- 999 1376 999 1376 907 1376 c 0,48,49
- 821 1376 821 1376 821 1462 c 0,50,51
- 821 1496 821 1496 854 1530 c 1,52,-1
- 815 1542 l 2,53,54
- 700 1542 700 1542 700 1360 c 0,55,56
- 700 1348 700 1348 711 1051 c 1,57,58
- 811 1067 811 1067 913 1067 c 0,59,60
- 1017 1067 1017 1067 1116 1051 c 1,61,62
- 1132 1291 1132 1291 1171 1407 c 0,63,64
- 1243 1616 1243 1616 1419 1616 c 0,65,66
- 1567 1616 1567 1616 1567 1481 c 0,67,68
- 1567 1376 1567 1376 1475 1376 c 0,69,70
- 1391 1376 1391 1376 1391 1460 c 0,71,72
- 1391 1498 1391 1498 1421 1530 c 1,73,74
- 1403 1542 1403 1542 1382 1542 c 0,75,76
- 1268 1542 1268 1542 1268 1358 c 0,77,78
- 1268 1275 1268 1275 1276 1010 c 1,79,80
- 1604 884 1604 884 1604 659 c 0,0,1
-547 393 m 1,81,82
- 541 487 541 487 541 645 c 0,83,84
- 541 769 541 769 545 928 c 1,85,86
- 295 825 295 825 295 657 c 0,87,88
- 295 494 295 494 547 393 c 1,81,82
-1114 346 m 1,89,90
- 1106 492 1106 492 1107 667 c 0,91,92
- 1107 812 1107 812 1112 977 c 1,93,94
- 1013 993 1013 993 911 993 c 0,95,96
- 808 993 808 993 713 977 c 1,97,98
- 725 684 725 684 713 344 c 1,99,100
- 808 328 808 328 911 328 c 0,101,102
- 1020 328 1020 328 1114 346 c 1,89,90
-1530 659 m 0,103,104
- 1530 830 1530 830 1278 930 c 1,105,106
- 1284 838 1284 838 1284 683 c 2,107,-1
- 1280 395 l 1,108,109
- 1530 491 1530 491 1530 659 c 0,103,104
-EndSplineSet
-Ligature: 0 0 'liga' uni222E uni222E
-EndChar
-StartChar: uni2230
-Encoding: 8752 8752 147
-Width: 2392
-GlyphClass: 3
-Flags: W
-Fore
-2171 659 m 0,0,1
- 2171 478 2171 478 1849 358 c 1,2,3
- 1825 -295 1825 -295 1542 -295 c 0,4,5
- 1395 -295 1395 -295 1395 -162 c 0,6,7
- 1395 -55 1395 -55 1487 -55 c 0,8,9
- 1569 -55 1569 -55 1569 -145 c 0,10,11
- 1569 -179 1569 -179 1538 -211 c 1,12,13
- 1556 -223 1556 -223 1579 -223 c 0,14,15
- 1692 -223 1692 -223 1692 0 c 0,16,17
- 1692 6 l 1,18,-1
- 1692 6 l 1,19,-1
- 1683 307 l 1,20,21
- 1497 262 1497 262 1274 256 c 1,22,23
- 1233 -295 1233 -295 975 -295 c 0,24,25
- 825 -295 825 -295 825 -162 c 0,26,27
- 825 -55 825 -55 920 -55 c 0,28,29
- 1001 -55 1001 -55 1001 -145 c 0,30,31
- 1001 -176 1001 -176 971 -211 c 1,32,33
- 989 -223 989 -223 1010 -223 c 0,34,35
- 1122 -223 1122 -223 1122 -10 c 0,36,37
- 1122 107 1122 107 1118 256 c 1,38,39
- 905 262 905 262 711 309 c 1,40,41
- 680 -295 680 -295 408 -295 c 0,42,43
- 258 -295 258 -295 258 -162 c 0,44,45
- 258 -55 258 -55 352 -55 c 0,46,47
- 434 -55 434 -55 434 -145 c 0,48,49
- 434 -183 434 -183 403 -211 c 1,50,51
- 422 -223 422 -223 442 -223 c 0,52,53
- 555 -223 555 -223 555 -10 c 0,54,55
- 555 152 555 152 547 358 c 1,56,57
- 221 480 221 480 221 655 c 0,58,59
- 221 838 221 838 545 965 c 1,60,61
- 556 1239 556 1239 592 1368 c 0,62,63
- 664 1616 664 1616 852 1616 c 0,64,65
- 999 1616 999 1616 999 1481 c 0,66,67
- 999 1376 999 1376 907 1376 c 0,68,69
- 821 1376 821 1376 821 1462 c 0,70,71
- 821 1496 821 1496 854 1530 c 1,72,-1
- 815 1542 l 2,73,74
- 700 1542 700 1542 700 1358 c 0,75,76
- 700 1357 700 1357 711 1018 c 1,77,78
- 886 1061 886 1061 1116 1067 c 1,79,80
- 1149 1616 1149 1616 1419 1616 c 0,81,82
- 1567 1616 1567 1616 1567 1481 c 0,83,84
- 1567 1376 1567 1376 1475 1376 c 0,85,86
- 1391 1376 1391 1376 1391 1460 c 0,87,88
- 1391 1498 1391 1498 1421 1530 c 1,89,90
- 1403 1542 1403 1542 1382 1542 c 0,91,92
- 1268 1542 1268 1542 1268 1358 c 0,93,94
- 1268 1285 1268 1285 1276 1065 c 1,95,96
- 1504 1059 1504 1059 1683 1016 c 1,97,98
- 1702 1616 1702 1616 1987 1616 c 0,99,100
- 2134 1616 2134 1616 2134 1481 c 0,101,102
- 2134 1376 2134 1376 2044 1376 c 0,103,104
- 1958 1376 1958 1376 1958 1460 c 0,105,106
- 1958 1503 1958 1503 1989 1530 c 1,107,-1
- 1950 1542 l 2,108,109
- 1835 1542 1835 1542 1835 1362 c 0,110,111
- 1835 1346 1835 1346 1847 965 c 1,112,113
- 2171 838 2171 838 2171 659 c 0,0,1
-545 430 m 1,114,115
- 541 498 541 498 541 656 c 0,116,117
- 541 757 541 757 543 889 c 1,118,119
- 295 796 295 796 295 657 c 0,120,121
- 295 520 295 520 545 430 c 1,114,115
-1114 330 m 1,122,123
- 1105 488 1105 488 1105 655 c 0,124,125
- 1105 819 1105 819 1114 991 c 1,126,127
- 888 985 888 985 713 942 c 1,128,-1
- 717 640 l 2,129,130
- 717 506 717 506 713 379 c 1,131,132
- 895 336 895 336 1114 330 c 1,122,123
-1681 381 m 1,133,-1
- 1680 813 l 2,134,135
- 1680 876 1680 876 1681 942 c 1,136,137
- 1502 985 1502 985 1278 991 c 1,138,-1
- 1282 525 l 2,139,140
- 1281 395 1281 395 1278 330 c 1,141,142
- 1489 331 1489 331 1681 381 c 1,133,-1
-2097 659 m 0,143,144
- 2097 797 2097 797 1849 891 c 1,145,146
- 1853 826 1853 826 1853 667 c 0,147,148
- 1853 566 1853 566 1851 432 c 1,149,150
- 2097 526 2097 526 2097 659 c 0,143,144
-EndSplineSet
-Ligature: 0 0 'liga' uni222E uni222E uni222E
-EndChar
-StartChar: uni2243
-Encoding: 8771 8771 148
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 260 m 1,0,-1
- 221 358 l 1,1,-1
- 1405 358 l 1,2,-1
- 1405 260 l 1,3,-1
- 221 260 l 1,0,-1
-283 629 m 1,4,-1
- 221 629 l 1,5,6
- 236 948 236 948 485 948 c 0,7,8
- 600 948 600 948 843 828 c 0,9,10
- 1087 709 1087 709 1176 709 c 0,11,12
- 1321 709 1321 709 1343 926 c 1,13,-1
- 1405 926 l 1,14,15
- 1387 606 1387 606 1141 606 c 0,16,17
- 1014 606 1014 606 795 726 c 128,-1,18
- 576 846 576 846 449 846 c 0,19,20
- 370 846 370 846 324 774 c 0,21,22
- 283 712 283 712 283 629 c 1,4,-1
-EndSplineSet
-EndChar
-StartChar: congruent
-Encoding: 8773 8773 149
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 424 m 1,0,-1
- 221 522 l 1,1,-1
- 1405 522 l 1,2,-1
- 1405 424 l 1,3,-1
- 221 424 l 1,0,-1
-283 670 m 1,4,-1
- 221 670 l 1,5,6
- 236 989 236 989 485 989 c 0,7,8
- 600 989 600 989 843 869 c 0,9,10
- 1087 750 1087 750 1176 750 c 0,11,12
- 1321 750 1321 750 1343 967 c 1,13,-1
- 1405 967 l 1,14,15
- 1387 647 1387 647 1141 647 c 0,16,17
- 1014 647 1014 647 795 767 c 128,-1,18
- 576 887 576 887 449 887 c 0,19,20
- 370 887 370 887 324 815 c 0,21,22
- 283 754 283 754 283 670 c 1,4,-1
-221 219 m 1,23,-1
- 221 317 l 1,24,-1
- 1405 317 l 1,25,-1
- 1405 219 l 1,26,-1
- 221 219 l 1,23,-1
-EndSplineSet
-EndChar
-StartChar: approxequal
-Encoding: 8946 8776 150
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-307 621 m 1,0,-1
- 246 621 l 1,1,2
- 259 940 259 940 510 940 c 0,3,4
- 622 940 622 940 864 820 c 128,-1,5
- 1106 700 1106 700 1200 700 c 0,6,7
- 1345 700 1345 700 1368 918 c 1,8,-1
- 1430 918 l 1,9,10
- 1410 598 1410 598 1165 598 c 0,11,12
- 1038 598 1038 598 819 718 c 128,-1,13
- 600 838 600 838 473 838 c 0,14,15
- 396 838 396 838 348 766 c 0,16,17
- 307 702 307 702 307 621 c 1,0,-1
-340 317 m 1,18,-1
- 279 317 l 1,19,20
- 293 637 293 637 543 637 c 0,21,22
- 656 637 656 637 897 517 c 128,-1,23
- 1138 397 1138 397 1233 397 c 0,24,25
- 1378 397 1378 397 1401 614 c 1,26,-1
- 1462 614 l 1,27,28
- 1444 295 1444 295 1198 295 c 0,29,30
- 1071 295 1071 295 852 415 c 128,-1,31
- 633 535 633 535 506 535 c 0,32,33
- 428 535 428 535 381 463 c 0,34,35
- 340 399 340 399 340 317 c 1,18,-1
-EndSplineSet
-EndChar
-StartChar: uni2254
-Encoding: 8788 8788 151
-Width: 1738
-GlyphClass: 2
-Flags: W
-Fore
-446 358 m 1,0,-1
- 446 457 l 1,1,-1
- 1630 457 l 1,2,-1
- 1630 358 l 1,3,-1
- 446 358 l 1,0,-1
-446 729 m 1,4,-1
- 446 827 l 1,5,-1
- 1630 827 l 1,6,-1
- 1630 729 l 1,7,-1
- 446 729 l 1,4,-1
-207 1087 m 0,8,9
- 253 1087 253 1087 285 1055 c 128,-1,10
- 317 1023 317 1023 317 977 c 128,-1,11
- 317 931 317 931 285 899 c 0,12,13
- 252 866 252 866 207 866 c 128,-1,14
- 162 866 162 866 129 899 c 128,-1,15
- 96 932 96 932 96 977 c 128,-1,16
- 96 1022 96 1022 129 1055 c 0,17,18
- 161 1087 161 1087 207 1087 c 0,8,9
-205 338 m 0,19,20
- 250 338 250 338 284 305 c 0,21,22
- 317 272 317 272 317 227 c 0,23,24
- 317 182 317 182 284 148 c 0,25,26
- 250 115 250 115 205 115 c 0,27,28
- 160 115 160 115 127 148 c 0,29,30
- 94 182 94 182 94 227 c 0,31,32
- 94 272 94 272 127 305 c 128,-1,33
- 160 338 160 338 205 338 c 0,19,20
-EndSplineSet
-EndChar
-StartChar: uni2255
-Encoding: 8789 8789 152
-Width: 1685
-GlyphClass: 2
-Flags: W
-Fore
-78 358 m 1,0,-1
- 78 457 l 1,1,-1
- 1262 457 l 1,2,-1
- 1262 358 l 1,3,-1
- 78 358 l 1,0,-1
-78 729 m 1,4,-1
- 78 827 l 1,5,-1
- 1262 827 l 1,6,-1
- 1262 729 l 1,7,-1
- 78 729 l 1,4,-1
-1497 1087 m 0,8,9
- 1543 1087 1543 1087 1575 1055 c 0,10,11
- 1608 1022 1608 1022 1608 977 c 128,-1,12
- 1608 932 1608 932 1575 899 c 128,-1,13
- 1542 866 1542 866 1497 866 c 128,-1,14
- 1452 866 1452 866 1419 899 c 128,-1,15
- 1386 932 1386 932 1386 977 c 128,-1,16
- 1386 1022 1386 1022 1419 1055 c 0,17,18
- 1451 1087 1451 1087 1497 1087 c 0,8,9
-1495 338 m 0,19,20
- 1540 338 1540 338 1574 305 c 0,21,22
- 1608 271 1608 271 1608 227 c 0,23,24
- 1608 184 1608 184 1574 148 c 0,25,26
- 1540 115 1540 115 1495 115 c 0,27,28
- 1450 115 1450 115 1417 148 c 0,29,30
- 1384 182 1384 182 1384 227 c 0,31,32
- 1384 272 1384 272 1417 305 c 128,-1,33
- 1450 338 1450 338 1495 338 c 0,19,20
-EndSplineSet
-EndChar
-StartChar: uni2259
-Encoding: 8793 8793 153
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-229 938 m 1,0,-1
- 811 1434 l 1,1,-1
- 1374 954 l 1,2,-1
- 1270 954 l 1,3,-1
- 807 1282 l 1,4,-1
- 336 938 l 1,5,-1
- 229 938 l 1,0,-1
-221 358 m 1,6,-1
- 221 457 l 1,7,-1
- 1405 457 l 1,8,-1
- 1405 358 l 1,9,-1
- 221 358 l 1,6,-1
-221 729 m 1,10,-1
- 221 827 l 1,11,-1
- 1405 827 l 1,12,-1
- 1405 729 l 1,13,-1
- 221 729 l 1,10,-1
-EndSplineSet
-EndChar
-StartChar: uni225D
-Encoding: 8797 8797 154
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 164 m 1,0,-1
- 221 262 l 1,1,-1
- 1407 262 l 1,2,-1
- 1407 164 l 1,3,-1
- 221 164 l 1,0,-1
-221 535 m 1,4,-1
- 221 633 l 1,5,-1
- 1407 633 l 1,6,-1
- 1407 535 l 1,7,-1
- 221 535 l 1,4,-1
-553 854 m 1,8,-1
- 553 938 l 1,9,10
- 502 846 502 846 406 846 c 0,11,12
- 233 846 233 846 233 1063 c 0,13,14
- 233 1164 233 1164 279 1231 c 0,15,16
- 330 1311 330 1311 424 1311 c 0,17,18
- 503 1311 503 1311 553 1249 c 1,19,-1
- 553 1501 l 1,20,-1
- 635 1501 l 1,21,-1
- 635 854 l 1,22,-1
- 553 854 l 1,8,-1
-553 1192 m 1,23,24
- 496 1249 496 1249 434 1249 c 0,25,26
- 319 1249 319 1249 319 1071 c 0,27,28
- 319 915 319 915 422 915 c 0,29,30
- 479 915 479 915 553 989 c 1,31,-1
- 553 1192 l 1,23,24
-1071 868 m 1,32,33
- 984 846 984 846 932 846 c 0,34,35
- 831 846 831 846 771 911 c 0,36,37
- 711 977 711 977 711 1079 c 0,38,39
- 711 1170 711 1170 763 1240 c 0,40,41
- 816 1311 816 1311 903 1311 c 0,42,43
- 1073 1311 1073 1311 1073 1065 c 1,44,-1
- 793 1065 l 1,45,46
- 806 905 806 905 946 905 c 0,47,48
- 1004 905 1004 905 1071 932 c 1,49,-1
- 1071 868 l 1,32,33
-797 1124 m 1,50,-1
- 991 1124 l 1,51,52
- 991 1249 991 1249 899 1249 c 0,53,54
- 809 1249 809 1249 797 1124 c 1,50,-1
-1169 854 m 1,55,-1
- 1169 1239 l 1,56,-1
- 1106 1239 l 1,57,-1
- 1106 1300 l 1,58,-1
- 1169 1300 l 1,59,60
- 1169 1402 1169 1402 1192 1446 c 0,61,62
- 1222 1511 1222 1511 1315 1511 c 0,63,64
- 1350 1511 1350 1511 1407 1499 c 1,65,-1
- 1407 1434 l 1,66,67
- 1346 1450 1346 1450 1319 1450 c 0,68,69
- 1250 1450 1250 1450 1249 1349 c 2,70,-1
- 1249 1341 l 1,71,-1
- 1249 1300 l 1,72,-1
- 1362 1300 l 1,73,-1
- 1362 1239 l 1,74,-1
- 1249 1239 l 1,75,-1
- 1249 854 l 1,76,-1
- 1169 854 l 1,55,-1
-EndSplineSet
-EndChar
-StartChar: notequal
-Encoding: 8800 8800 155
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-883 827 m 1,0,-1
- 1098 1204 l 1,1,-1
- 1208 1204 l 1,2,-1
- 993 827 l 1,3,-1
- 1405 827 l 1,4,-1
- 1405 729 l 1,5,-1
- 936 729 l 1,6,-1
- 780 457 l 1,7,-1
- 1405 457 l 1,8,-1
- 1405 358 l 1,9,-1
- 725 358 l 1,10,-1
- 518 -4 l 1,11,-1
- 401 -4 l 1,12,-1
- 610 358 l 1,13,-1
- 221 358 l 1,14,-1
- 221 457 l 1,15,-1
- 668 457 l 1,16,-1
- 825 729 l 1,17,-1
- 221 729 l 1,18,-1
- 221 827 l 1,19,-1
- 883 827 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: equivalence
-Encoding: 8801 8801 156
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 172 m 1,0,-1
- 221 270 l 1,1,-1
- 1405 270 l 1,2,-1
- 1405 172 l 1,3,-1
- 221 172 l 1,0,-1
-221 543 m 1,4,-1
- 221 641 l 1,5,-1
- 1405 641 l 1,6,-1
- 1405 543 l 1,7,-1
- 221 543 l 1,4,-1
-221 913 m 1,8,-1
- 221 1012 l 1,9,-1
- 1405 1012 l 1,10,-1
- 1405 913 l 1,11,-1
- 221 913 l 1,8,-1
-EndSplineSet
-EndChar
-StartChar: lessequal
-Encoding: 8804 8804 157
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 0 m 1,0,-1
- 221 98 l 1,1,-1
- 1405 98 l 1,2,-1
- 1405 0 l 1,3,-1
- 221 0 l 1,0,-1
-1405 1184 m 1,4,-1
- 1405 1077 l 1,5,-1
- 489 711 l 1,6,-1
- 1405 342 l 1,7,-1
- 1405 238 l 1,8,-1
- 221 711 l 1,9,-1
- 1405 1184 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: greaterequal
-Encoding: 8805 8805 158
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-1405 0 m 1,0,-1
- 221 0 l 1,1,-1
- 221 98 l 1,2,-1
- 1405 98 l 1,3,-1
- 1405 0 l 1,0,-1
-221 1184 m 1,4,-1
- 1405 711 l 1,5,-1
- 221 238 l 1,6,-1
- 221 342 l 1,7,-1
- 1139 713 l 1,8,-1
- 221 1077 l 1,9,-1
- 221 1184 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uni226A
-Encoding: 8810 8810 159
-Width: 2289
-GlyphClass: 2
-Flags: W
-Fore
-1407 0 m 1,0,-1
- 223 592 l 1,1,-1
- 1407 1184 l 1,2,-1
- 1407 1073 l 1,3,-1
- 446 592 l 1,4,-1
- 1407 111 l 1,5,-1
- 1407 0 l 1,0,-1
-2068 0 m 1,6,-1
- 885 592 l 1,7,-1
- 2068 1184 l 1,8,-1
- 2068 1073 l 1,9,-1
- 1108 592 l 1,10,-1
- 2068 111 l 1,11,-1
- 2068 0 l 1,6,-1
-EndSplineSet
-EndChar
-StartChar: uni226B
-Encoding: 8811 8811 160
-Width: 2289
-GlyphClass: 2
-Flags: W
-Fore
-885 0 m 1,0,-1
- 885 111 l 1,1,-1
- 1845 594 l 1,2,-1
- 885 1073 l 1,3,-1
- 885 1184 l 1,4,-1
- 2068 592 l 1,5,-1
- 885 0 l 1,0,-1
-223 0 m 1,6,-1
- 223 111 l 1,7,-1
- 1184 594 l 1,8,-1
- 223 1073 l 1,9,-1
- 223 1184 l 1,10,-1
- 1407 592 l 1,11,-1
- 223 0 l 1,6,-1
-EndSplineSet
-EndChar
-StartChar: propersubset
-Encoding: 8834 8834 161
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-1407 281 m 1,0,-1
- 1407 182 l 1,1,-1
- 641 182 l 2,2,3
- 458 182 458 182 341 301 c 0,4,5
- 223 419 223 419 223 602 c 0,6,7
- 223 782 223 782 342 901 c 128,-1,8
- 461 1020 461 1020 641 1020 c 2,9,-1
- 1407 1020 l 1,10,-1
- 1407 922 l 1,11,-1
- 641 922 l 2,12,13
- 508 922 508 922 415 828 c 0,14,15
- 322 735 322 735 322 602 c 0,16,17
- 322 470 322 470 415 375 c 0,18,19
- 508 281 508 281 641 281 c 2,20,-1
- 1407 281 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: propersuperset
-Encoding: 8835 8835 162
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 281 m 1,0,-1
- 987 281 l 2,1,2
- 1121 281 1121 281 1214 375 c 0,3,4
- 1309 470 1309 470 1309 602 c 0,5,6
- 1309 734 1309 734 1214 827 c 0,7,8
- 1121 922 1121 922 987 922 c 2,9,-1
- 221 922 l 1,10,-1
- 221 1020 l 1,11,-1
- 987 1020 l 2,12,13
- 1170 1020 1170 1020 1288 902 c 0,14,15
- 1407 785 1407 785 1407 602 c 0,16,17
- 1407 422 1407 422 1287 302 c 128,-1,18
- 1167 182 1167 182 987 182 c 2,19,-1
- 221 182 l 1,20,-1
- 221 281 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: notsubset
-Encoding: 8836 8836 163
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-948 922 m 1,0,-1
- 641 922 l 2,1,2
- 508 922 508 922 415 828 c 0,3,4
- 322 735 322 735 322 602 c 0,5,6
- 322 487 322 487 394 397 c 0,7,8
- 468 306 468 306 580 287 c 1,9,-1
- 948 922 l 1,0,-1
-1407 281 m 1,10,-1
- 1407 182 l 1,11,-1
- 637 182 l 1,12,13
- 525 -35 525 -35 483 -35 c 0,14,15
- 430 -35 430 -35 430 14 c 0,16,17
- 430 36 430 36 526 197 c 1,18,19
- 390 228 390 228 306 344 c 0,20,21
- 223 460 223 460 223 602 c 0,22,23
- 223 816 223 816 352 920 c 0,24,25
- 456 1000 456 1000 655 1016 c 0,26,27
- 699 1020 699 1020 1006 1020 c 1,28,29
- 1152 1313 1152 1313 1204 1313 c 0,30,31
- 1257 1313 1257 1313 1257 1264 c 0,32,33
- 1257 1243 1257 1243 1124 1020 c 1,34,-1
- 1407 1020 l 1,35,-1
- 1407 922 l 1,36,-1
- 1067 922 l 1,37,-1
- 694 281 l 1,38,-1
- 1407 281 l 1,10,-1
-EndSplineSet
-EndChar
-StartChar: uni2285
-Encoding: 8837 8837 164
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-1061 913 m 1,0,-1
- 694 281 l 1,1,-1
- 987 281 l 2,2,3
- 1121 281 1121 281 1214 375 c 0,4,5
- 1309 470 1309 470 1309 602 c 0,6,7
- 1309 709 1309 709 1238 800 c 0,8,9
- 1167 889 1167 889 1061 913 c 1,0,-1
-1114 1004 m 1,10,11
- 1247 967 1247 967 1327 855 c 0,12,13
- 1407 743 1407 743 1407 602 c 0,14,15
- 1407 389 1407 389 1282 287 c 0,16,17
- 1184 208 1184 208 985 188 c 0,18,19
- 922 182 922 182 637 182 c 1,20,21
- 535 -29 535 -29 487 -29 c 0,22,23
- 434 -29 434 -29 434 20 c 0,24,25
- 434 42 434 42 518 182 c 1,26,-1
- 221 182 l 1,27,-1
- 221 281 l 1,28,-1
- 575 281 l 1,29,-1
- 948 922 l 1,30,-1
- 221 922 l 1,31,-1
- 221 1020 l 1,32,-1
- 1004 1020 l 1,33,34
- 1145 1307 1145 1307 1198 1307 c 0,35,36
- 1251 1307 1251 1307 1251 1257 c 0,37,38
- 1251 1235 1251 1235 1114 1004 c 1,10,11
-EndSplineSet
-EndChar
-StartChar: reflexsubset
-Encoding: 8838 8838 165
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-1407 98 m 1,0,-1
- 1407 0 l 1,1,-1
- 223 0 l 1,2,-1
- 223 98 l 1,3,-1
- 1407 98 l 1,0,-1
-1407 444 m 1,4,-1
- 1407 346 l 1,5,-1
- 641 346 l 2,6,7
- 458 346 458 346 341 465 c 0,8,9
- 223 583 223 583 223 766 c 0,10,11
- 223 946 223 946 342 1065 c 128,-1,12
- 461 1184 461 1184 641 1184 c 2,13,-1
- 1407 1184 l 1,14,-1
- 1407 1085 l 1,15,-1
- 641 1085 l 2,16,17
- 508 1085 508 1085 415 992 c 128,-1,18
- 322 899 322 899 322 766 c 0,19,20
- 322 632 322 632 415 539 c 0,21,22
- 508 444 508 444 641 444 c 2,23,-1
- 1407 444 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: reflexsuperset
-Encoding: 8839 8839 166
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 98 m 1,0,-1
- 1407 98 l 1,1,-1
- 1407 0 l 1,2,-1
- 221 0 l 1,3,-1
- 221 98 l 1,0,-1
-221 444 m 1,4,-1
- 987 444 l 2,5,6
- 1121 444 1121 444 1214 539 c 0,7,8
- 1309 632 1309 632 1309 766 c 0,9,10
- 1309 896 1309 896 1214 991 c 0,11,12
- 1121 1085 1121 1085 987 1085 c 2,13,-1
- 221 1085 l 1,14,-1
- 221 1184 l 1,15,-1
- 987 1184 l 2,16,17
- 1168 1184 1168 1184 1288 1066 c 0,18,19
- 1407 947 1407 947 1407 766 c 0,20,21
- 1407 586 1407 586 1287 466 c 128,-1,22
- 1167 346 1167 346 987 346 c 2,23,-1
- 221 346 l 1,24,-1
- 221 444 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uni2288
-Encoding: 8840 8840 167
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-756 444 m 1,0,-1
- 1407 444 l 1,1,-1
- 1407 346 l 1,2,-1
- 700 346 l 1,3,-1
- 559 98 l 1,4,-1
- 1407 98 l 1,5,-1
- 1407 0 l 1,6,-1
- 504 0 l 1,7,-1
- 453 -90 l 1,8,-1
- 336 -90 l 1,9,-1
- 387 0 l 1,10,-1
- 223 0 l 1,11,-1
- 223 98 l 1,12,-1
- 444 98 l 1,13,-1
- 588 348 l 1,14,15
- 431 366 431 366 327 487 c 0,16,17
- 223 609 223 609 223 766 c 0,18,19
- 223 1022 223 1022 410 1118 c 0,20,21
- 540 1188 540 1188 813 1188 c 0,22,23
- 831 1188 831 1188 947 1186 c 0,24,25
- 1005 1184 1005 1184 1067 1184 c 1,26,-1
- 1126 1286 l 1,27,-1
- 1237 1286 l 1,28,-1
- 1178 1184 l 1,29,-1
- 1407 1184 l 1,30,-1
- 1407 1085 l 1,31,-1
- 1122 1085 l 1,32,-1
- 756 444 l 1,0,-1
-1012 1085 m 1,33,-1
- 641 1085 l 2,34,35
- 508 1085 508 1085 415 992 c 128,-1,36
- 322 899 322 899 322 766 c 0,37,38
- 322 632 322 632 416 539 c 0,39,40
- 511 444 511 444 643 444 c 1,41,-1
- 1012 1085 l 1,33,-1
-EndSplineSet
-EndChar
-StartChar: uni2289
-Encoding: 8841 8841 168
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-1012 1085 m 1,0,-1
- 221 1085 l 1,1,-1
- 221 1184 l 1,2,3
- 339 1184 339 1184 489 1189 c 0,4,5
- 691 1194 691 1194 762 1194 c 0,6,7
- 966 1194 966 1194 1065 1178 c 1,8,-1
- 1126 1286 l 1,9,-1
- 1237 1286 l 1,10,-1
- 1159 1149 l 1,11,12
- 1407 1026 1407 1026 1407 766 c 0,13,14
- 1407 586 1407 586 1287 466 c 128,-1,15
- 1167 346 1167 346 987 346 c 2,16,-1
- 700 346 l 1,17,-1
- 559 98 l 1,18,-1
- 1407 98 l 1,19,-1
- 1407 0 l 1,20,-1
- 504 0 l 1,21,-1
- 453 -90 l 1,22,-1
- 336 -90 l 1,23,-1
- 387 0 l 1,24,-1
- 221 0 l 1,25,-1
- 221 98 l 1,26,-1
- 444 98 l 1,27,-1
- 586 346 l 1,28,-1
- 221 346 l 1,29,-1
- 221 444 l 1,30,-1
- 643 444 l 1,31,-1
- 1012 1085 l 1,0,-1
-756 444 m 1,32,-1
- 987 444 l 2,33,34
- 1121 444 1121 444 1214 539 c 0,35,36
- 1309 632 1309 632 1309 766 c 0,37,38
- 1309 864 1309 864 1254 947 c 0,39,40
- 1201 1031 1201 1031 1110 1063 c 1,41,-1
- 756 444 l 1,32,-1
-EndSplineSet
-EndChar
-StartChar: circleplus
-Encoding: 8853 8853 169
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-813 0 m 0,0,1
- 545 0 545 0 383 162 c 128,-1,2
- 221 324 221 324 221 592 c 0,3,4
- 221 862 221 862 382 1023 c 128,-1,5
- 543 1184 543 1184 813 1184 c 0,6,7
- 1081 1184 1081 1184 1243 1022 c 128,-1,8
- 1405 860 1405 860 1405 592 c 0,9,10
- 1405 322 1405 322 1244 161 c 128,-1,11
- 1083 0 1083 0 813 0 c 0,0,1
-862 641 m 1,12,-1
- 1305 641 l 1,13,14
- 1279 822 1279 822 1161 940 c 0,15,16
- 1042 1059 1042 1059 862 1083 c 1,17,-1
- 862 641 l 1,12,-1
-766 543 m 1,18,-1
- 322 543 l 1,19,20
- 368 161 368 161 764 100 c 1,21,-1
- 766 543 l 1,18,-1
-764 641 m 1,22,-1
- 766 1083 l 1,23,24
- 585 1059 585 1059 465 940 c 0,25,26
- 345 823 345 823 322 641 c 1,27,-1
- 764 641 l 1,22,-1
-862 543 m 1,28,-1
- 862 100 l 1,29,30
- 1043 126 1043 126 1161 244 c 128,-1,31
- 1279 362 1279 362 1305 543 c 1,32,-1
- 862 543 l 1,28,-1
-EndSplineSet
-EndChar
-StartChar: uni2296
-Encoding: 8854 8854 170
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-813 0 m 0,0,1
- 545 0 545 0 383 162 c 128,-1,2
- 221 324 221 324 221 592 c 0,3,4
- 221 862 221 862 382 1023 c 128,-1,5
- 543 1184 543 1184 813 1184 c 0,6,7
- 1081 1184 1081 1184 1243 1022 c 128,-1,8
- 1405 860 1405 860 1405 592 c 0,9,10
- 1405 322 1405 322 1244 161 c 128,-1,11
- 1083 0 1083 0 813 0 c 0,0,1
-1305 641 m 1,12,13
- 1280 836 1280 836 1144 961 c 0,14,15
- 1008 1085 1008 1085 813 1085 c 0,16,17
- 618 1085 618 1085 482 959 c 0,18,19
- 346 834 346 834 322 641 c 1,20,-1
- 1305 641 l 1,12,13
-322 543 m 1,21,22
- 346 350 346 350 482 223 c 0,23,24
- 619 98 619 98 813 98 c 0,25,26
- 1011 98 1011 98 1147 223 c 0,27,28
- 1275 344 1275 344 1305 543 c 1,29,-1
- 322 543 l 1,21,22
-EndSplineSet
-EndChar
-StartChar: circlemultiply
-Encoding: 8855 8855 171
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-885 592 m 1,0,-1
- 1196 281 l 1,1,2
- 1309 424 1309 424 1309 592 c 0,3,4
- 1309 760 1309 760 1196 903 c 1,5,-1
- 885 592 l 1,0,-1
-743 592 m 1,6,-1
- 432 903 l 1,7,8
- 322 762 322 762 322 592 c 0,9,10
- 322 431 322 431 432 281 c 1,11,-1
- 743 592 l 1,6,-1
-813 662 m 1,12,-1
- 1126 975 l 1,13,14
- 985 1085 985 1085 815 1085 c 0,15,16
- 640 1085 640 1085 502 975 c 1,17,-1
- 813 662 l 1,12,-1
-813 522 m 1,18,-1
- 502 211 l 1,19,20
- 645 98 645 98 815 98 c 0,21,22
- 983 98 983 98 1126 211 c 1,23,-1
- 813 522 l 1,18,-1
-813 0 m 0,24,25
- 542 0 542 0 383 161 c 0,26,27
- 223 321 223 321 223 592 c 128,-1,28
- 223 863 223 863 383 1023 c 0,29,30
- 542 1184 542 1184 813 1184 c 0,31,32
- 1082 1184 1082 1184 1245 1023 c 0,33,34
- 1407 862 1407 862 1407 592 c 128,-1,35
- 1407 322 1407 322 1245 161 c 0,36,37
- 1082 0 1082 0 813 0 c 0,24,25
-EndSplineSet
-EndChar
-StartChar: uni2298
-Encoding: 8856 8856 172
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-1126 975 m 1,0,1
- 985 1085 985 1085 813 1085 c 0,2,3
- 593 1085 593 1085 457 949 c 0,4,5
- 319 812 319 812 319 594 c 0,6,7
- 319 419 319 419 432 281 c 1,8,-1
- 1126 975 l 1,0,1
-502 211 m 1,9,10
- 645 98 645 98 815 98 c 0,11,12
- 1035 98 1035 98 1170 236 c 0,13,14
- 1307 373 1307 373 1307 592 c 0,15,16
- 1307 760 1307 760 1196 903 c 1,17,-1
- 502 211 l 1,9,10
-813 0 m 0,18,19
- 545 0 545 0 383 162 c 128,-1,20
- 221 324 221 324 221 592 c 0,21,22
- 221 862 221 862 382 1023 c 128,-1,23
- 543 1184 543 1184 813 1184 c 0,24,25
- 1081 1184 1081 1184 1243 1022 c 128,-1,26
- 1405 860 1405 860 1405 592 c 0,27,28
- 1405 322 1405 322 1244 161 c 128,-1,29
- 1083 0 1083 0 813 0 c 0,18,19
-EndSplineSet
-EndChar
-StartChar: uni2299
-Encoding: 8857 8857 173
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-813 0 m 0,0,1
- 542 0 542 0 383 161 c 0,2,3
- 223 321 223 321 223 592 c 128,-1,4
- 223 863 223 863 383 1023 c 0,5,6
- 542 1184 542 1184 813 1184 c 0,7,8
- 1082 1184 1082 1184 1245 1023 c 0,9,10
- 1407 862 1407 862 1407 592 c 128,-1,11
- 1407 322 1407 322 1245 161 c 0,12,13
- 1082 0 1082 0 813 0 c 0,0,1
-813 98 m 0,14,15
- 1032 98 1032 98 1170 236 c 0,16,17
- 1309 372 1309 372 1309 592 c 128,-1,18
- 1309 812 1309 812 1170 948 c 0,19,20
- 1033 1085 1033 1085 813 1085 c 0,21,22
- 594 1085 594 1085 458 948 c 0,23,24
- 322 812 322 812 322 592 c 0,25,26
- 322 372 322 372 459 236 c 0,27,28
- 594 98 594 98 813 98 c 0,14,15
-702 481 m 1,29,-1
- 702 702 l 1,30,-1
- 924 702 l 1,31,-1
- 924 481 l 1,32,-1
- 702 481 l 1,29,-1
-EndSplineSet
-EndChar
-StartChar: uni22A4
-Encoding: 8868 8868 174
-Width: 1400
-GlyphClass: 2
-Flags: W
-Fore
-668 0 m 1,0,-1
- 668 1260 l 1,1,-1
- 82 1260 l 1,2,-1
- 82 1356 l 1,3,-1
- 1356 1356 l 1,4,-1
- 1356 1260 l 1,5,-1
- 764 1260 l 1,6,-1
- 764 0 l 1,7,-1
- 668 0 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: perpendicular
-Encoding: 8869 8869 175
-Width: 1431
-GlyphClass: 2
-Flags: W
-Fore
-770 1356 m 1,0,-1
- 770 96 l 1,1,-1
- 1356 96 l 1,2,-1
- 1356 0 l 1,3,-1
- 82 0 l 1,4,-1
- 82 96 l 1,5,-1
- 674 96 l 1,6,-1
- 674 1356 l 1,7,-1
- 770 1356 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni22B6
-Encoding: 8886 8886 176
-Width: 1851
-GlyphClass: 2
-Flags: W
-Fore
-686 543 m 1,0,1
- 669 463 669 463 603 412 c 0,2,3
- 537 358 537 358 457 358 c 0,4,5
- 360 358 360 358 291 427 c 0,6,7
- 221 496 221 496 221 592 c 0,8,9
- 221 686 221 686 292 757 c 0,10,11
- 362 827 362 827 457 827 c 0,12,13
- 647 827 647 827 686 641 c 1,14,-1
- 1165 641 l 1,15,16
- 1208 827 1208 827 1395 827 c 0,17,18
- 1494 827 1494 827 1561 759 c 0,19,20
- 1628 691 1628 691 1628 592 c 0,21,22
- 1628 497 1628 497 1560 427 c 0,23,24
- 1491 358 1491 358 1395 358 c 0,25,26
- 1313 358 1313 358 1248 411 c 0,27,28
- 1185 461 1185 461 1165 543 c 1,29,-1
- 686 543 l 1,0,1
-319 592 m 0,30,31
- 319 536 319 536 359 496 c 0,32,33
- 400 457 400 457 457 457 c 0,34,35
- 512 457 512 457 552 497 c 0,36,37
- 592 536 592 536 592 592 c 0,38,39
- 592 647 592 647 552 687 c 128,-1,40
- 512 727 512 727 457 727 c 0,41,42
- 401 727 401 727 360 687 c 0,43,44
- 319 646 319 646 319 592 c 0,30,31
-EndSplineSet
-EndChar
-StartChar: uni22B7
-Encoding: 8887 8887 177
-Width: 1851
-GlyphClass: 2
-Flags: W
-Fore
-1165 543 m 1,0,-1
- 686 543 l 1,1,2
- 669 463 669 463 603 412 c 0,3,4
- 537 358 537 358 457 358 c 0,5,6
- 360 358 360 358 291 427 c 0,7,8
- 221 496 221 496 221 592 c 0,9,10
- 221 686 221 686 292 757 c 0,11,12
- 362 827 362 827 457 827 c 0,13,14
- 642 827 642 827 686 641 c 1,15,-1
- 1165 641 l 1,16,17
- 1202 827 1202 827 1395 827 c 0,18,19
- 1494 827 1494 827 1561 759 c 0,20,21
- 1628 691 1628 691 1628 592 c 0,22,23
- 1628 497 1628 497 1560 427 c 0,24,25
- 1491 358 1491 358 1395 358 c 0,26,27
- 1313 358 1313 358 1248 411 c 0,28,29
- 1185 461 1185 461 1165 543 c 1,0,-1
-1530 592 m 0,30,31
- 1530 647 1530 647 1490 687 c 128,-1,32
- 1450 727 1450 727 1395 727 c 0,33,34
- 1339 727 1339 727 1298 687 c 0,35,36
- 1257 646 1257 646 1257 592 c 0,37,38
- 1257 536 1257 536 1297 496 c 0,39,40
- 1338 457 1338 457 1395 457 c 0,41,42
- 1450 457 1450 457 1490 497 c 0,43,44
- 1530 536 1530 536 1530 592 c 0,30,31
-EndSplineSet
-EndChar
-StartChar: uni22BE
-Encoding: 8894 8894 178
-Width: 1478
-GlyphClass: 2
-Flags: W
-Fore
-29 -8 m 1,0,-1
- 31 1335 l 1,1,-1
- 131 1335 l 1,2,-1
- 131 770 l 1,3,-1
- 235 767 l 2,4,5
- 827 727 827 727 855 149 c 2,6,-1
- 856 90 l 1,7,-1
- 1403 90 l 1,8,-1
- 1403 -10 l 1,9,-1
- 29 -8 l 1,0,-1
-760 96 m 1,10,11
- 744 393 744 393 582 530 c 0,12,13
- 431 659 431 659 140 659 c 0,14,15
- 134 659 134 659 127 659 c 1,16,-1
- 127 96 l 1,17,-1
- 760 96 l 1,10,11
-295 334 m 0,18,19
- 295 360 295 360 315 382 c 0,20,21
- 336 403 336 403 362 403 c 0,22,23
- 392 403 392 403 412 383 c 0,24,25
- 432 361 432 361 432 334 c 0,26,27
- 432 306 432 306 411 287 c 0,28,29
- 388 266 388 266 362 266 c 0,30,31
- 336 266 336 266 315 287 c 0,32,33
- 295 307 295 307 295 334 c 0,18,19
-EndSplineSet
-EndChar
-StartChar: dotmath
-Encoding: 8901 8901 179
-Width: 1183
-GlyphClass: 2
-Flags: W
-Fore
-469 592 m 0,0,1
- 469 634 469 634 502 669 c 0,2,3
- 535 702 535 702 578 702 c 0,4,5
- 624 702 624 702 655 670 c 0,6,7
- 688 637 688 637 688 592 c 128,-1,8
- 688 547 688 547 655 514 c 0,9,10
- 624 481 624 481 578 481 c 0,11,12
- 536 481 536 481 502 515 c 0,13,14
- 469 550 469 550 469 592 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uni22EE
-Encoding: 8942 8942 180
-Width: 1210
-GlyphClass: 2
-Flags: W
-Fore
-567 20 m 0,0,1
- 615 20 615 20 647 -11 c 0,2,3
- 680 -42 680 -42 680 -90 c 0,4,5
- 680 -135 680 -135 646 -168 c 0,6,7
- 613 -201 613 -201 567 -201 c 0,8,9
- 522 -201 522 -201 489 -168 c 0,10,11
- 457 -134 457 -134 457 -90 c 0,12,13
- 457 -46 457 -46 489 -12 c 0,14,15
- 521 20 521 20 567 20 c 0,0,1
-567 702 m 0,16,17
- 614 702 614 702 646 671 c 0,18,19
- 680 640 680 640 680 594 c 0,20,21
- 680 549 680 549 646 515 c 128,-1,22
- 612 481 612 481 567 481 c 0,23,24
- 523 481 523 481 489 515 c 0,25,26
- 457 550 457 550 457 594 c 0,27,28
- 457 702 457 702 567 702 c 0,16,17
-567 1386 m 0,29,30
- 615 1386 615 1386 647 1355 c 0,31,32
- 680 1324 680 1324 680 1276 c 0,33,34
- 680 1231 680 1231 646 1198 c 0,35,36
- 613 1165 613 1165 567 1165 c 0,37,38
- 522 1165 522 1165 489 1198 c 0,39,40
- 457 1232 457 1232 457 1276 c 128,-1,41
- 457 1320 457 1320 489 1354 c 0,42,43
- 521 1386 521 1386 567 1386 c 0,29,30
-EndSplineSet
-EndChar
-StartChar: uni22EF
-Encoding: 8943 8943 181
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-410 590 m 0,0,1
- 410 544 410 544 378 510 c 0,2,3
- 346 477 346 477 299 477 c 0,4,5
- 254 477 254 477 221 511 c 0,6,7
- 188 546 188 546 188 590 c 0,8,9
- 188 635 188 635 221 668 c 0,10,11
- 255 700 255 700 299 700 c 128,-1,12
- 343 700 343 700 377 668 c 0,13,14
- 410 635 410 635 410 590 c 0,0,1
-1092 590 m 0,15,16
- 1092 546 1092 546 1060 511 c 0,17,18
- 1029 477 1029 477 983 477 c 0,19,20
- 938 477 938 477 904 511 c 0,21,22
- 870 547 870 547 870 590 c 0,23,24
- 870 634 870 634 904 668 c 0,25,26
- 939 700 939 700 983 700 c 0,27,28
- 1092 700 1092 700 1092 590 c 0,15,16
-1776 590 m 0,29,30
- 1776 544 1776 544 1744 510 c 0,31,32
- 1712 477 1712 477 1665 477 c 0,33,34
- 1620 477 1620 477 1587 511 c 0,35,36
- 1554 546 1554 546 1554 590 c 0,37,38
- 1554 635 1554 635 1587 668 c 0,39,40
- 1621 700 1621 700 1665 700 c 128,-1,41
- 1709 700 1709 700 1743 668 c 0,42,43
- 1776 635 1776 635 1776 590 c 0,29,30
-EndSplineSet
-EndChar
-StartChar: uni22F0
-Encoding: 8944 8944 182
-Width: 1693
-GlyphClass: 2
-Flags: W
-Fore
-422 113 m 0,0,1
- 422 68 422 68 389 35 c 128,-1,2
- 356 2 356 2 311 2 c 0,3,4
- 265 2 265 2 231 34 c 0,5,6
- 199 66 199 66 199 113 c 0,7,8
- 199 159 199 159 230 191 c 0,9,10
- 263 225 263 225 305 225 c 0,11,12
- 351 225 351 225 386 191 c 0,13,14
- 422 158 422 158 422 113 c 0,0,1
-905 596 m 0,15,16
- 905 551 905 551 872 518 c 0,17,18
- 840 485 840 485 795 485 c 0,19,20
- 684 485 684 485 684 596 c 0,21,22
- 684 640 684 640 716 674 c 0,23,24
- 748 707 748 707 793 707 c 0,25,26
- 838 707 838 707 871 674 c 0,27,28
- 905 641 905 641 905 596 c 0,15,16
-1389 1079 m 0,29,30
- 1389 1033 1389 1033 1357 999 c 0,31,32
- 1325 967 1325 967 1278 967 c 0,33,34
- 1234 967 1234 967 1199 1000 c 0,35,36
- 1165 1036 1165 1036 1165 1079 c 0,37,38
- 1165 1123 1165 1123 1199 1157 c 0,39,40
- 1234 1190 1234 1190 1278 1190 c 0,41,42
- 1321 1190 1321 1190 1355 1156 c 128,-1,43
- 1389 1122 1389 1122 1389 1079 c 0,29,30
-EndSplineSet
-EndChar
-StartChar: uni22F1
-Encoding: 8945 8945 183
-Width: 1667
-GlyphClass: 2
-Flags: W
-Fore
-311 973 m 0,0,1
- 266 973 266 973 233 1006 c 0,2,3
- 201 1038 201 1038 201 1083 c 0,4,5
- 201 1131 201 1131 232 1163 c 0,6,7
- 265 1196 265 1196 311 1196 c 0,8,9
- 356 1196 356 1196 390 1164 c 0,10,11
- 424 1133 424 1133 424 1090 c 0,12,13
- 424 1044 424 1044 390 1009 c 0,14,15
- 357 973 357 973 311 973 c 0,0,1
-788 489 m 0,16,17
- 746 489 746 489 715 523 c 0,18,19
- 684 557 684 557 684 600 c 0,20,21
- 684 711 684 711 795 711 c 0,22,23
- 905 711 905 711 905 602 c 0,24,25
- 905 557 905 557 870 523 c 0,26,27
- 834 489 834 489 788 489 c 0,16,17
-1278 6 m 0,28,29
- 1232 6 1232 6 1198 38 c 0,30,31
- 1165 70 1165 70 1165 117 c 0,32,33
- 1165 160 1165 160 1199 196 c 0,34,35
- 1234 229 1234 229 1278 229 c 0,36,37
- 1323 229 1323 229 1356 196 c 0,38,39
- 1389 162 1389 162 1389 117 c 0,40,41
- 1389 74 1389 74 1355 40 c 128,-1,42
- 1321 6 1321 6 1278 6 c 0,28,29
-EndSplineSet
-EndChar
-StartChar: uni2308
-Encoding: 8968 8968 184
-Width: 577
-GlyphClass: 2
-Flags: W
-Fore
-150 -403 m 1,0,-1
- 150 1622 l 1,1,-1
- 504 1622 l 1,2,-1
- 504 1581 l 1,3,-1
- 248 1581 l 1,4,-1
- 248 -403 l 1,5,-1
- 150 -403 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni2309
-Encoding: 8969 8969 185
-Width: 577
-GlyphClass: 2
-Flags: W
-Fore
-428 -403 m 1,0,-1
- 330 -403 l 1,1,-1
- 330 1581 l 1,2,-1
- 74 1581 l 1,3,-1
- 74 1622 l 1,4,-1
- 428 1622 l 1,5,-1
- 428 -403 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni230A
-Encoding: 8970 8970 186
-Width: 577
-GlyphClass: 2
-Flags: W
-Fore
-150 -403 m 1,0,-1
- 150 1622 l 1,1,-1
- 248 1622 l 1,2,-1
- 248 -360 l 1,3,-1
- 504 -360 l 1,4,-1
- 504 -403 l 1,5,-1
- 150 -403 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni230B
-Encoding: 8971 8971 187
-Width: 577
-GlyphClass: 2
-Flags: W
-Fore
-428 -403 m 1,0,-1
- 74 -403 l 1,1,-1
- 74 -360 l 1,2,-1
- 330 -360 l 1,3,-1
- 330 1622 l 1,4,-1
- 428 1622 l 1,5,-1
- 428 -403 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: angleleft
-Encoding: 9001 9001 188
-Width: 686
-GlyphClass: 2
-Flags: W
-Fore
-86 592 m 1,0,-1
- 578 1606 l 1,1,-1
- 625 1581 l 1,2,-1
- 145 592 l 1,3,-1
- 625 -397 l 1,4,-1
- 578 -422 l 1,5,-1
- 86 592 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: angleright
-Encoding: 9002 9002 189
-Width: 686
-GlyphClass: 2
-Flags: W
-Fore
-600 592 m 1,0,-1
- 109 -422 l 1,1,-1
- 59 -397 l 1,2,-1
- 539 592 l 1,3,-1
- 59 1581 l 1,4,-1
- 109 1606 l 1,5,-1
- 600 592 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni2334
-Encoding: 9012 9012 190
-Width: 619
-GlyphClass: 2
-Flags: W
-Fore
-24 0 m 1,0,-1
- 117 0 l 1,1,-1
- 117 -106 l 1,2,-1
- 525 -106 l 1,3,-1
- 525 0 l 1,4,-1
- 609 0 l 1,5,-1
- 609 -171 l 1,6,-1
- 24 -171 l 1,7,-1
- 24 0 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni2373
-Encoding: 9075 9075 191
-Width: 569
-GlyphClass: 2
-Flags: W
-Fore
-471 905 m 1,0,-1
- 348 504 l 2,1,2
- 254 192 254 192 254 119 c 0,3,4
- 254 84 254 84 285 84 c 0,5,6
- 335 84 335 84 436 227 c 1,7,-1
- 471 205 l 1,8,9
- 319 -25 319 -25 180 -25 c 0,10,11
- 88 -25 88 -25 88 61 c 0,12,13
- 88 184 88 184 181 416 c 0,14,15
- 274 647 274 647 274 770 c 0,16,17
- 274 821 274 821 209 821 c 0,18,19
- 193 821 193 821 127 811 c 1,20,-1
- 127 850 l 1,21,-1
- 471 905 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni2460
-Encoding: 9312 9312 192
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-864 270 m 1,32,-1
- 864 1110 l 1,33,-1
- 716 1110 l 1,34,-1
- 716 1190 l 1,35,-1
- 988 1212 l 1,36,-1
- 988 270 l 1,37,-1
- 864 270 l 1,32,-1
-EndSplineSet
-EndChar
-StartChar: uni2461
-Encoding: 9313 9313 193
-Width: 1812
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-642 284 m 1,32,-1
- 642 394 l 1,33,34
- 692 516 692 516 860 668 c 2,35,-1
- 932 734 l 2,36,37
- 1070 857 1070 857 1070 978 c 0,38,39
- 1070 1061 1070 1061 1024 1104 c 0,40,41
- 982 1146 982 1146 892 1146 c 0,42,43
- 796 1146 796 1146 666 1072 c 1,44,-1
- 666 1182 l 1,45,46
- 791 1240 791 1240 912 1240 c 0,47,48
- 1043 1240 1043 1240 1122 1170 c 0,49,50
- 1200 1098 1200 1098 1200 980 c 0,51,52
- 1200 895 1200 895 1162 834 c 0,53,54
- 1121 770 1121 770 1012 676 c 2,55,-1
- 964 634 l 2,56,57
- 817 511 817 511 792 394 c 1,58,-1
- 1196 394 l 1,59,-1
- 1196 284 l 1,60,-1
- 642 284 l 1,32,-1
-EndSplineSet
-EndChar
-StartChar: uni2462
-Encoding: 9314 9314 194
-Width: 1866
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-674 280 m 1,32,-1
- 674 398 l 1,33,34
- 809 344 809 344 884 344 c 0,35,36
- 973 344 973 344 1028 396 c 0,37,38
- 1086 448 1086 448 1086 530 c 0,39,40
- 1086 631 1086 631 1016 680 c 0,41,42
- 947 728 947 728 812 728 c 2,43,-1
- 762 728 l 1,44,-1
- 762 812 l 1,45,-1
- 804 812 l 2,46,47
- 937 812 937 812 1000 858 c 0,48,49
- 1062 902 1062 902 1062 994 c 0,50,51
- 1062 1066 1062 1066 1020 1102 c 0,52,53
- 980 1136 980 1136 890 1136 c 0,54,55
- 798 1136 798 1136 686 1086 c 1,56,-1
- 686 1194 l 1,57,58
- 797 1230 797 1230 902 1230 c 0,59,60
- 1047 1230 1047 1230 1116 1178 c 0,61,62
- 1188 1121 1188 1121 1188 1014 c 0,63,64
- 1188 931 1188 931 1138 874 c 0,65,66
- 1092 817 1092 817 994 780 c 1,67,68
- 1107 752 1107 752 1162 692 c 0,69,70
- 1218 633 1218 633 1218 532 c 0,71,72
- 1218 399 1218 399 1130 326 c 0,73,74
- 1047 252 1047 252 892 252 c 0,75,76
- 811 252 811 252 674 280 c 1,32,-1
-EndSplineSet
-EndChar
-StartChar: uni2463
-Encoding: 9315 9315 195
-Width: 1850
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-938 284 m 1,32,-1
- 938 548 l 1,33,-1
- 518 548 l 1,34,-1
- 518 642 l 1,35,-1
- 938 1216 l 1,36,-1
- 1054 1216 l 1,37,-1
- 1054 650 l 1,38,-1
- 1180 650 l 1,39,-1
- 1180 548 l 1,40,-1
- 1054 548 l 1,41,-1
- 1054 284 l 1,42,-1
- 938 284 l 1,32,-1
-638 650 m 1,43,-1
- 946 650 l 1,44,-1
- 946 1064 l 1,45,-1
- 638 650 l 1,43,-1
-EndSplineSet
-EndChar
-StartChar: uni2464
-Encoding: 9316 9316 196
-Width: 1806
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-682 268 m 1,32,-1
- 682 378 l 1,33,34
- 775 342 775 342 858 342 c 0,35,36
- 958 342 958 342 1008 392 c 0,37,38
- 1056 443 1056 443 1056 544 c 0,39,40
- 1056 647 1056 647 986 702 c 0,41,42
- 914 756 914 756 768 756 c 0,43,44
- 734 756 734 756 698 750 c 1,45,-1
- 698 1204 l 1,46,-1
- 1172 1204 l 1,47,-1
- 1172 1096 l 1,48,-1
- 808 1096 l 1,49,-1
- 808 850 l 1,50,51
- 985 850 985 850 1088 768 c 0,52,53
- 1190 684 1190 684 1190 538 c 0,54,55
- 1190 400 1190 400 1098 326 c 0,56,57
- 1005 248 1005 248 846 248 c 0,58,59
- 765 248 765 248 682 268 c 1,32,-1
-EndSplineSet
-EndChar
-StartChar: uni2465
-Encoding: 9317 9317 197
-Width: 1840
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-718 754 m 1,32,33
- 764 813 764 813 820 842 c 0,34,35
- 876 870 876 870 942 870 c 0,36,37
- 1066 870 1066 870 1142 788 c 0,38,39
- 1220 710 1220 710 1220 582 c 0,40,41
- 1220 434 1220 434 1132 342 c 0,42,43
- 1047 248 1047 248 912 248 c 0,44,45
- 758 248 758 248 670 372 c 0,46,47
- 584 497 584 497 584 716 c 0,48,49
- 584 960 584 960 682 1094 c 0,50,51
- 780 1228 780 1228 962 1228 c 0,52,53
- 1056 1228 1056 1228 1172 1194 c 1,54,-1
- 1172 1084 l 1,55,56
- 1043 1134 1043 1134 954 1134 c 0,57,58
- 838 1134 838 1134 778 1038 c 0,59,60
- 718 945 718 945 718 754 c 1,32,33
-1096 558 m 0,61,62
- 1096 669 1096 669 1050 724 c 0,63,64
- 1009 780 1009 780 918 780 c 0,65,66
- 838 780 838 780 780 728 c 0,67,68
- 724 672 724 672 724 600 c 0,69,70
- 724 484 724 484 778 412 c 0,71,72
- 833 342 833 342 920 342 c 0,73,74
- 1007 342 1007 342 1052 396 c 0,75,76
- 1096 446 1096 446 1096 558 c 0,61,62
-EndSplineSet
-EndChar
-StartChar: uni2466
-Encoding: 9318 9318 198
-Width: 1802
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-686 234 m 1,32,33
- 716 412 716 412 858 642 c 2,34,-1
- 1112 1050 l 1,35,-1
- 632 1050 l 1,36,-1
- 632 1168 l 1,37,-1
- 1230 1168 l 1,38,-1
- 1230 1050 l 1,39,40
- 872 520 872 520 830 234 c 1,41,-1
- 686 234 l 1,32,33
-EndSplineSet
-EndChar
-StartChar: uni2467
-Encoding: 9319 9319 199
-Width: 1786
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-776 778 m 1,32,33
- 642 873 642 873 642 990 c 0,34,35
- 642 1098 642 1098 718 1162 c 0,36,37
- 797 1226 797 1226 922 1226 c 0,38,39
- 1036 1226 1036 1226 1108 1172 c 0,40,41
- 1180 1115 1180 1115 1180 1026 c 0,42,43
- 1180 892 1180 892 1006 778 c 1,44,45
- 1216 676 1216 676 1216 512 c 0,46,47
- 1216 393 1216 393 1128 322 c 0,48,49
- 1042 248 1042 248 902 248 c 0,50,51
- 763 248 763 248 678 318 c 0,52,53
- 592 386 592 386 592 502 c 0,54,55
- 592 666 592 666 776 778 c 1,32,33
-936 818 m 1,56,57
- 1068 902 1068 902 1068 1010 c 0,58,59
- 1068 1063 1068 1063 1022 1100 c 0,60,61
- 979 1134 979 1134 910 1134 c 0,62,63
- 842 1134 842 1134 796 1100 c 0,64,65
- 754 1067 754 1067 754 1014 c 0,66,67
- 754 919 754 919 936 818 c 1,56,57
-846 730 m 1,68,69
- 717 631 717 631 716 520 c 0,70,71
- 716 442 716 442 768 392 c 0,72,73
- 818 342 818 342 904 342 c 0,74,75
- 984 342 984 342 1036 382 c 0,76,77
- 1088 428 1088 428 1088 494 c 0,78,79
- 1088 585 1088 585 934 676 c 2,80,-1
- 846 730 l 1,68,69
-EndSplineSet
-EndChar
-StartChar: uni2468
-Encoding: 9320 9320 200
-Width: 1792
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-656 276 m 1,32,-1
- 656 382 l 1,33,34
- 779 342 779 342 858 342 c 0,35,36
- 983 342 983 342 1042 434 c 0,37,38
- 1104 526 1104 526 1104 714 c 1,39,40
- 1053 653 1053 653 1004 626 c 0,41,42
- 948 598 948 598 888 598 c 0,43,44
- 770 598 770 598 690 684 c 0,45,46
- 608 772 608 772 608 898 c 0,47,48
- 608 1040 608 1040 694 1132 c 0,49,50
- 779 1226 779 1226 914 1226 c 0,51,52
- 1066 1226 1066 1226 1156 1106 c 0,53,54
- 1242 980 1242 980 1242 772 c 0,55,56
- 1242 531 1242 531 1134 390 c 0,57,58
- 1030 248 1030 248 846 248 c 0,59,60
- 777 248 777 248 656 276 c 1,32,-1
-732 916 m 0,61,62
- 732 802 732 802 776 746 c 0,63,64
- 821 686 821 686 912 686 c 0,65,66
- 993 686 993 686 1046 742 c 0,67,68
- 1102 792 1102 792 1102 870 c 0,69,70
- 1102 991 1102 991 1048 1060 c 0,71,72
- 998 1134 998 1134 908 1134 c 0,73,74
- 818 1134 818 1134 776 1080 c 0,75,76
- 732 1024 732 1024 732 916 c 0,61,62
-EndSplineSet
-EndChar
-StartChar: uni2469
-Encoding: 9321 9321 201
-Width: 1816
-GlyphClass: 3
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-604 270 m 1,32,-1
- 604 1110 l 1,33,-1
- 506 1110 l 1,34,-1
- 506 1190 l 1,35,-1
- 730 1212 l 1,36,-1
- 730 270 l 1,37,-1
- 604 270 l 1,32,-1
-1110 248 m 0,38,39
- 984 248 984 248 910 382 c 0,40,41
- 834 514 834 514 834 738 c 0,42,43
- 834 960 834 960 910 1092 c 0,44,45
- 984 1226 984 1226 1110 1226 c 0,46,47
- 1238 1226 1238 1226 1312 1092 c 0,48,49
- 1388 960 1388 960 1388 738 c 0,50,51
- 1388 514 1388 514 1312 382 c 0,52,53
- 1238 248 1238 248 1110 248 c 0,38,39
-1110 342 m 0,54,55
- 1184 342 1184 342 1220 440 c 0,56,57
- 1256 542 1256 542 1256 740 c 0,58,59
- 1256 937 1256 937 1220 1036 c 0,60,61
- 1184 1134 1184 1134 1110 1134 c 0,62,63
- 1036 1134 1036 1134 1004 1034 c 0,64,65
- 966 938 966 938 966 738 c 0,66,67
- 966 539 966 539 1004 440 c 0,68,69
- 1037 342 1037 342 1110 342 c 0,54,55
-EndSplineSet
-EndChar
-StartChar: uni24EA
-Encoding: 9450 9450 202
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-914 252 m 0,32,33
- 765 252 765 252 676 386 c 0,34,35
- 588 523 588 523 588 742 c 0,36,37
- 588 959 588 959 676 1096 c 0,38,39
- 765 1230 765 1230 914 1230 c 0,40,41
- 1061 1230 1061 1230 1150 1096 c 0,42,43
- 1240 961 1240 961 1240 742 c 0,44,45
- 1240 521 1240 521 1150 386 c 0,46,47
- 1061 252 1061 252 914 252 c 0,32,33
-914 344 m 0,48,49
- 1013 344 1013 344 1058 444 c 0,50,51
- 1108 541 1108 541 1108 742 c 0,52,53
- 1108 941 1108 941 1058 1038 c 0,54,55
- 1013 1136 1013 1136 914 1136 c 0,56,57
- 816 1136 816 1136 768 1038 c 0,58,59
- 718 935 718 935 718 742 c 0,60,61
- 718 547 718 547 768 444 c 0,62,63
- 816 344 816 344 914 344 c 0,48,49
-EndSplineSet
-EndChar
-StartChar: SF100000
-Encoding: 9472 9472 203
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 543 m 1,0,-1
- 221 641 l 1,1,-1
- 1405 641 l 1,2,-1
- 1405 543 l 1,3,-1
- 221 543 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni2501
-Encoding: 9473 9473 204
-Width: 681
-GlyphClass: 2
-Flags: W
-Fore
-66 502 m 1,0,-1
- 66 682 l 1,1,-1
- 618 682 l 1,2,-1
- 618 502 l 1,3,-1
- 66 502 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: SF110000
-Encoding: 9474 9474 205
-Width: 741
-GlyphClass: 2
-Flags: W
-Fore
-391 993 m 1,0,-1
- 494 993 l 1,1,-1
- 494 0 l 1,2,-1
- 391 0 l 1,3,-1
- 391 993 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni2503
-Encoding: 9475 9475 206
-Width: 567
-GlyphClass: 2
-Flags: W
-Fore
-508 1458 m 1,0,-1
- 508 0 l 1,1,-1
- 59 0 l 1,2,-1
- 59 1458 l 1,3,-1
- 508 1458 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: filledbox
-Encoding: 9632 9632 207
-Width: 1531
-GlyphClass: 2
-Flags: W
-Fore
-174 147 m 1,0,-1
- 174 1331 l 1,1,-1
- 1358 1331 l 1,2,-1
- 1358 147 l 1,3,-1
- 174 147 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: H22073
-Encoding: 9633 9633 208
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-371 197 m 1,0,-1
- 1456 197 l 1,1,-1
- 1456 1284 l 1,2,-1
- 371 1284 l 1,3,-1
- 371 197 l 1,0,-1
-174 0 m 1,4,-1
- 174 1483 l 1,5,-1
- 1653 1483 l 1,6,-1
- 1653 0 l 1,7,-1
- 174 0 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: triagup
-Encoding: 9650 9650 209
-Width: 1903
-GlyphClass: 2
-Flags: W
-Fore
-80 0 m 1,0,-1
- 898 1485 l 1,1,-1
- 1790 0 l 1,2,-1
- 80 0 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni25B3
-Encoding: 9651 9651 210
-Width: 1903
-GlyphClass: 2
-Flags: W
-Fore
-80 0 m 1,0,-1
- 898 1485 l 1,1,-1
- 1790 0 l 1,2,-1
- 80 0 l 1,0,-1
-249 100 m 1,3,-1
- 1613 100 l 1,4,-1
- 902 1285 l 1,5,-1
- 249 100 l 1,3,-1
-EndSplineSet
-EndChar
-StartChar: uni25B4
-Encoding: 9652 9652 211
-Width: 1351
-GlyphClass: 2
-Flags: W
-Fore
-1178 193 m 1,0,-1
- 176 193 l 1,1,-1
- 684 1192 l 1,2,-1
- 1178 193 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni25B5
-Encoding: 9653 9653 212
-Width: 1351
-GlyphClass: 2
-Flags: W
-Fore
-1178 193 m 1,0,-1
- 176 193 l 1,1,-1
- 684 1192 l 1,2,-1
- 1178 193 l 1,0,-1
-1079 260 m 1,3,-1
- 684 1061 l 1,4,-1
- 279 260 l 1,5,-1
- 1079 260 l 1,3,-1
-EndSplineSet
-EndChar
-StartChar: uni25B6
-Encoding: 9654 9654 213
-Width: 1903
-GlyphClass: 2
-Flags: W
-Fore
-192 1598 m 1,0,-1
- 1678 780 l 1,1,-1
- 192 -112 l 1,2,-1
- 192 1598 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni25B7
-Encoding: 9655 9655 214
-Width: 1903
-GlyphClass: 2
-Flags: W
-Fore
-192 1598 m 1,0,-1
- 1678 780 l 1,1,-1
- 192 -112 l 1,2,-1
- 192 1598 l 1,0,-1
-292 1428 m 1,3,-1
- 292 64 l 1,4,-1
- 1477 776 l 1,5,-1
- 292 1428 l 1,3,-1
-EndSplineSet
-EndChar
-StartChar: uni25B8
-Encoding: 9656 9656 215
-Width: 1351
-GlyphClass: 2
-Flags: W
-Fore
-178 192 m 1,0,-1
- 178 1194 l 1,1,-1
- 1176 686 l 1,2,-1
- 178 192 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni25B9
-Encoding: 9657 9657 216
-Width: 1351
-GlyphClass: 2
-Flags: W
-Fore
-178 192 m 1,0,-1
- 178 1194 l 1,1,-1
- 1176 686 l 1,2,-1
- 178 192 l 1,0,-1
-244 290 m 1,3,-1
- 1046 686 l 1,4,-1
- 244 1090 l 1,5,-1
- 244 290 l 1,3,-1
-EndSplineSet
-EndChar
-StartChar: triagrt
-Encoding: 9658 9658 217
-Width: 1670
-GlyphClass: 2
-Flags: W
-Fore
-178 192 m 1,0,-1
- 178 1194 l 1,1,-1
- 1496 686 l 1,2,-1
- 178 192 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni25BB
-Encoding: 9659 9659 218
-Width: 1670
-GlyphClass: 2
-Flags: W
-Fore
-178 192 m 1,0,-1
- 178 1194 l 1,1,-1
- 1496 686 l 1,2,-1
- 178 192 l 1,0,-1
-244 290 m 1,3,-1
- 1364 686 l 1,4,-1
- 244 1090 l 1,5,-1
- 244 290 l 1,3,-1
-EndSplineSet
-EndChar
-StartChar: triagdn
-Encoding: 9660 9660 219
-Width: 1903
-GlyphClass: 2
-Flags: W
-Fore
-1790 1485 m 1,0,-1
- 972 0 l 1,1,-1
- 80 1485 l 1,2,-1
- 1790 1485 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni25BD
-Encoding: 9661 9661 220
-Width: 1903
-GlyphClass: 2
-Flags: W
-Fore
-1790 1485 m 1,0,-1
- 972 0 l 1,1,-1
- 80 1485 l 1,2,-1
- 1790 1485 l 1,0,-1
-1621 1385 m 1,3,-1
- 257 1385 l 1,4,-1
- 968 200 l 1,5,-1
- 1621 1385 l 1,3,-1
-EndSplineSet
-EndChar
-StartChar: uni25BE
-Encoding: 9662 9662 221
-Width: 1351
-GlyphClass: 2
-Flags: W
-Fore
-1178 1192 m 1,0,-1
- 684 193 l 1,1,-1
- 176 1192 l 1,2,-1
- 1178 1192 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni25BF
-Encoding: 9663 9663 222
-Width: 1351
-GlyphClass: 2
-Flags: W
-Fore
-1178 1192 m 1,0,-1
- 684 193 l 1,1,-1
- 176 1192 l 1,2,-1
- 1178 1192 l 1,0,-1
-1087 1130 m 1,3,-1
- 285 1130 l 1,4,-1
- 692 332 l 1,5,-1
- 1087 1130 l 1,3,-1
-EndSplineSet
-EndChar
-StartChar: uni25C0
-Encoding: 9664 9664 223
-Width: 1903
-GlyphClass: 2
-Flags: W
-Fore
-1678 -112 m 1,0,-1
- 192 706 l 1,1,-1
- 1678 1598 l 1,2,-1
- 1678 -112 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni25C1
-Encoding: 9665 9665 224
-Width: 1903
-GlyphClass: 2
-Flags: W
-Fore
-1678 -112 m 1,0,-1
- 192 706 l 1,1,-1
- 1678 1598 l 1,2,-1
- 1678 -112 l 1,0,-1
-1578 57 m 1,3,-1
- 1578 1421 l 1,4,-1
- 393 709 l 1,5,-1
- 1578 57 l 1,3,-1
-EndSplineSet
-EndChar
-StartChar: uni25C2
-Encoding: 9666 9666 225
-Width: 1351
-GlyphClass: 2
-Flags: W
-Fore
-1176 1194 m 1,0,-1
- 1176 192 l 1,1,-1
- 178 700 l 1,2,-1
- 1176 1194 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni25C3
-Encoding: 9667 9667 226
-Width: 1351
-GlyphClass: 2
-Flags: W
-Fore
-1176 1194 m 1,0,-1
- 1176 192 l 1,1,-1
- 178 700 l 1,2,-1
- 1176 1194 l 1,0,-1
-1110 1094 m 1,3,-1
- 308 700 l 1,4,-1
- 1110 294 l 1,5,-1
- 1110 1094 l 1,3,-1
-EndSplineSet
-EndChar
-StartChar: triaglf
-Encoding: 9668 9668 227
-Width: 1670
-GlyphClass: 2
-Flags: W
-Fore
-1496 1194 m 1,0,-1
- 1496 192 l 1,1,-1
- 178 700 l 1,2,-1
- 1496 1194 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni25C5
-Encoding: 9669 9669 228
-Width: 1670
-GlyphClass: 2
-Flags: W
-Fore
-1496 1194 m 1,0,-1
- 1496 192 l 1,1,-1
- 178 700 l 1,2,-1
- 1496 1194 l 1,0,-1
-1428 1094 m 1,3,-1
- 308 700 l 1,4,-1
- 1428 294 l 1,5,-1
- 1428 1094 l 1,3,-1
-EndSplineSet
-EndChar
-StartChar: H18533
-Encoding: 9679 9679 229
-Width: 1548
-GlyphClass: 2
-Flags: W
-Fore
-786 1473 m 0,0,1
- 1088 1473 1088 1473 1281 1278 c 0,2,3
- 1475 1082 1475 1082 1475 782 c 0,4,5
- 1475 476 1475 476 1283 286 c 0,6,7
- 1091 94 1091 94 786 94 c 0,8,9
- 487 94 487 94 291 288 c 0,10,11
- 96 482 96 482 96 782 c 0,12,13
- 96 1088 96 1088 289 1280 c 0,14,15
- 482 1473 482 1473 786 1473 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uni25D7
-Encoding: 9687 9687 230
-Width: 897
-GlyphClass: 2
-Flags: W
-Fore
-59 1489 m 1,0,1
- 383 1489 383 1489 610 1271 c 0,2,3
- 838 1052 838 1052 838 729 c 0,4,5
- 838 400 838 400 614 188 c 0,6,7
- 392 -25 392 -25 59 -31 c 1,8,-1
- 59 1489 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: uni260E
-Encoding: 9742 9742 231
-Width: 2154
-GlyphClass: 2
-Flags: W
-Fore
-2056 1106 m 1,0,1
- 2056 1013 2056 1013 1989 985 c 0,2,3
- 1950 967 1950 967 1843 967 c 0,4,5
- 1720 967 1720 967 1669 987 c 0,6,7
- 1585 1020 1585 1020 1579 1120 c 1,8,9
- 1724 1096 1724 1096 1871 1097 c 0,10,11
- 1963 1097 1963 1097 2056 1106 c 1,0,1
-2056 1155 m 1,12,13
- 1986 1145 1986 1145 1919 1145 c 0,14,15
- 1890 1145 1890 1145 1554 1171 c 1,16,17
- 1542 1268 1542 1268 1409 1292 c 1,18,-1
- 1413 1149 l 1,19,20
- 1540 1026 1540 1026 1647 735 c 0,21,22
- 1751 453 1751 453 1751 266 c 0,23,24
- 1751 86 1751 86 1683 86 c 2,25,-1
- 479 86 l 2,26,27
- 393 86 393 86 393 236 c 0,28,29
- 393 422 393 422 500 719 c 0,30,31
- 612 1027 612 1027 737 1149 c 1,32,-1
- 737 1292 l 1,33,34
- 607 1269 607 1269 594 1171 c 1,35,36
- 481 1145 481 1145 291 1145 c 0,37,38
- 159 1145 159 1145 92 1155 c 1,39,40
- 103 1439 103 1439 266 1542 c 0,41,42
- 375 1612 375 1612 657 1651 c 0,43,44
- 869 1679 869 1679 1075 1679 c 0,45,46
- 1660 1679 1660 1679 1882 1542 c 0,47,48
- 2050 1440 2050 1440 2056 1155 c 1,12,13
-1339 1307 m 1,49,50
- 1192 1348 1192 1348 1071 1348 c 0,51,52
- 956 1348 956 1348 803 1307 c 1,53,-1
- 852 1184 l 1,54,-1
- 1292 1184 l 1,55,-1
- 1339 1307 l 1,49,50
-1405 707 m 0,56,57
- 1405 824 1405 824 1294 893 c 0,58,59
- 1203 952 1203 952 1075 952 c 0,60,61
- 951 952 951 952 856 891 c 0,62,63
- 743 820 743 820 743 707 c 0,64,65
- 743 591 743 591 856 520 c 0,66,67
- 951 459 951 459 1075 459 c 128,-1,68
- 1199 459 1199 459 1294 520 c 0,69,70
- 1405 590 1405 590 1405 707 c 0,56,57
-1571 231 m 1,71,-1
- 1591 252 l 1,72,-1
- 1571 272 l 1,73,-1
- 584 272 l 1,74,-1
- 563 252 l 1,75,-1
- 584 231 l 1,76,-1
- 1571 231 l 1,71,-1
-1354 801 m 0,77,78
- 1354 754 1354 754 1305 754 c 0,79,80
- 1253 754 1253 754 1253 801 c 0,81,82
- 1253 850 1253 850 1305 850 c 0,83,84
- 1354 850 1354 850 1354 801 c 0,77,78
-1249 872 m 0,85,86
- 1249 823 1249 823 1198 823 c 0,87,88
- 1149 823 1149 823 1149 872 c 0,89,90
- 1149 920 1149 920 1198 920 c 0,91,92
- 1249 920 1249 920 1249 872 c 0,85,86
-1386 684 m 0,93,94
- 1386 635 1386 635 1335 635 c 0,95,96
- 1286 635 1286 635 1286 684 c 0,97,98
- 1286 731 1286 731 1335 731 c 0,99,100
- 1386 731 1386 731 1386 684 c 0,93,94
-1096 893 m 0,101,102
- 1096 844 1096 844 1044 844 c 0,103,104
- 995 844 995 844 995 893 c 0,105,106
- 995 940 995 940 1044 940 c 0,107,108
- 1096 940 1096 940 1096 893 c 0,101,102
-1317 573 m 0,109,110
- 1317 524 1317 524 1266 524 c 0,111,112
- 1217 524 1217 524 1217 573 c 0,113,114
- 1217 621 1217 621 1266 621 c 0,115,116
- 1317 621 1317 621 1317 573 c 0,109,110
-1280 709 m 0,117,118
- 1280 645 1280 645 1206 598 c 0,119,120
- 1142 559 1142 559 1071 559 c 0,121,122
- 1001 559 1001 559 940 598 c 0,123,124
- 868 643 868 643 868 709 c 0,125,126
- 868 774 868 774 946 811 c 0,127,128
- 1009 840 1009 840 1079 840 c 0,129,130
- 1149 840 1149 840 1208 809 c 0,131,132
- 1280 774 1280 774 1280 709 c 0,117,118
-954 844 m 0,133,134
- 954 797 954 797 905 797 c 0,135,136
- 854 797 854 797 854 844 c 0,137,138
- 854 893 854 893 905 893 c 0,139,140
- 954 893 954 893 954 844 c 0,133,134
-1192 516 m 0,141,142
- 1192 467 1192 467 1141 467 c 0,143,144
- 1092 467 1092 467 1092 516 c 0,145,146
- 1092 563 1092 563 1141 563 c 0,147,148
- 1192 563 1192 563 1192 516 c 0,141,142
-868 741 m 0,149,150
- 868 694 868 694 819 694 c 0,151,152
- 768 694 768 694 768 741 c 0,153,154
- 768 791 768 791 819 791 c 0,155,156
- 868 791 868 791 868 741 c 0,149,150
-1030 524 m 0,157,158
- 1030 477 1030 477 981 477 c 0,159,160
- 930 477 930 477 930 524 c 0,161,162
- 930 573 930 573 981 573 c 0,163,164
- 1030 573 1030 573 1030 524 c 0,157,158
-897 596 m 0,165,166
- 897 549 897 549 848 549 c 0,167,168
- 797 549 797 549 797 596 c 0,169,170
- 797 645 797 645 848 645 c 0,171,172
- 897 645 897 645 897 596 c 0,165,166
-571 1120 m 1,173,174
- 565 1020 565 1020 469 985 c 0,175,176
- 415 967 415 967 289 967 c 0,177,178
- 194 967 194 967 154 989 c 0,179,180
- 94 1020 94 1020 94 1106 c 1,181,182
- 173 1098 173 1098 256 1098 c 0,183,184
- 417 1098 417 1098 571 1120 c 1,173,174
-EndSplineSet
-EndChar
-StartChar: uni2611
-Encoding: 9745 9745 232
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-1653 0 m 1,0,-1
- 174 0 l 1,1,-1
- 174 1483 l 1,2,-1
- 1599 1483 l 1,3,-1
- 1733 1561 l 1,4,-1
- 1767 1509 l 1,5,6
- 1728 1485 1728 1485 1653 1415 c 1,7,-1
- 1653 0 l 1,0,-1
-1505 1270 m 1,8,9
- 1113 841 1113 841 901 397 c 1,10,-1
- 702 252 l 1,11,12
- 567 696 567 696 391 768 c 1,13,14
- 492 883 492 883 590 883 c 0,15,16
- 675 883 675 883 791 602 c 1,17,18
- 976 914 976 914 1409 1335 c 1,19,-1
- 322 1335 l 1,20,-1
- 322 147 l 1,21,-1
- 1505 147 l 1,22,-1
- 1505 1270 l 1,8,9
-EndSplineSet
-EndChar
-StartChar: uni2612
-Encoding: 9746 9746 233
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-322 147 m 1,0,-1
- 1505 147 l 1,1,-1
- 1505 1335 l 1,2,-1
- 322 1335 l 1,3,-1
- 322 147 l 1,0,-1
-174 0 m 1,4,-1
- 174 1483 l 1,5,-1
- 1653 1483 l 1,6,-1
- 1653 0 l 1,7,-1
- 174 0 l 1,4,-1
-907 551 m 1,8,9
- 732 295 732 295 637 295 c 0,10,11
- 518 295 518 295 410 481 c 1,12,-1
- 446 479 l 1,13,-1
- 486 480 l 2,14,15
- 559 490 559 490 625 555 c 0,16,17
- 655 583 655 583 752 715 c 1,18,19
- 567 906 567 906 567 1018 c 0,20,21
- 567 1110 567 1110 729 1227 c 1,22,23
- 753 1066 753 1066 897 887 c 1,24,25
- 1089 1130 1089 1130 1225 1130 c 0,26,27
- 1332 1130 1332 1130 1384 971 c 1,28,-1
- 1352 973 l 1,29,-1
- 1312 972 l 2,30,31
- 1236 961 1236 961 1171 891 c 0,32,33
- 1170 889 1170 889 1049 721 c 1,34,35
- 1242 537 1242 537 1413 537 c 1,36,37
- 1323 346 1323 346 1219 346 c 0,38,39
- 1128 346 1128 346 907 551 c 1,8,9
-EndSplineSet
-EndChar
-StartChar: uni261B
-Encoding: 9755 9755 234
-Width: 1581
-GlyphClass: 2
-Flags: W
-Fore
-174 221 m 0,0,1
- 106 221 106 221 76 340 c 0,2,3
- 53 421 53 421 53 518 c 0,4,5
- 53 606 53 606 84 700 c 0,6,7
- 123 827 123 827 186 827 c 0,8,9
- 217 827 217 827 231 801 c 1,10,11
- 164 795 164 795 129 680 c 0,12,13
- 106 599 106 599 106 504 c 0,14,15
- 106 254 106 254 219 254 c 1,16,17
- 208 221 208 221 174 221 c 0,0,1
-653 182 m 0,18,19
- 572 182 572 182 387 279 c 1,20,-1
- 231 291 l 1,21,22
- 156 338 156 338 156 535 c 0,23,24
- 156 642 156 642 180 686 c 0,25,26
- 201 721 201 721 258 739 c 2,27,-1
- 395 784 l 1,28,-1
- 717 913 l 1,29,30
- 890 912 890 912 1153 856 c 0,31,32
- 1493 784 1493 784 1493 684 c 0,33,34
- 1493 657 1493 657 1452 639 c 0,35,36
- 1420 623 1420 623 1389 623 c 0,37,38
- 1313 623 1313 623 1044 670 c 1,39,40
- 1110 631 1110 631 1110 571 c 0,41,42
- 1110 493 1110 493 1016 481 c 1,43,44
- 1057 464 1057 464 1057 412 c 0,45,46
- 1057 354 1057 354 995 330 c 1,47,-1
- 1001 301 l 2,48,49
- 1001 182 1001 182 653 182 c 0,18,19
-EndSplineSet
-EndChar
-StartChar: uni261E
-Encoding: 9758 9758 235
-Width: 2037
-GlyphClass: 2
-Flags: W
-Fore
-1952 952 m 1,0,-1
- 1872 877 l 1,1,2
- 1693 883 1693 883 1440 905 c 1,3,-1
- 1317 840 l 1,4,-1
- 1409 741 l 1,5,-1
- 1479 565 l 1,6,-1
- 1430 475 l 1,7,-1
- 1382 457 l 1,8,-1
- 1368 383 l 1,9,-1
- 1274 332 l 1,10,-1
- 1257 276 l 1,11,-1
- 1159 223 l 1,12,-1
- 1001 279 l 1,13,14
- 840 270 840 270 821 270 c 0,15,16
- 693 270 693 270 539 362 c 1,17,-1
- 518 229 l 1,18,-1
- 174 244 l 1,19,-1
- 154 909 l 1,20,-1
- 508 963 l 1,21,-1
- 514 907 l 1,22,-1
- 750 1030 l 2,23,24
- 770 1040 770 1040 1056 1087 c 0,25,26
- 1341 1135 1341 1135 1382 1135 c 0,27,28
- 1716 1135 1716 1135 1946 1004 c 1,29,-1
- 1952 952 l 1,0,-1
-1909 975 m 1,30,31
- 1679 1085 1679 1085 1405 1085 c 0,32,33
- 1148 1085 1148 1085 952 1034 c 0,34,35
- 743 978 743 978 539 848 c 1,36,-1
- 524 846 l 1,37,38
- 569 622 569 622 569 565 c 0,39,40
- 569 537 569 537 553 418 c 1,41,-1
- 580 428 l 1,42,-1
- 633 373 l 1,43,44
- 761 315 761 315 907 315 c 0,45,46
- 960 315 960 315 1006 326 c 1,47,-1
- 1157 270 l 1,48,-1
- 1217 309 l 1,49,-1
- 1241 356 l 1,50,51
- 1147 424 1147 424 1032 469 c 1,52,-1
- 1051 512 l 1,53,54
- 1177 472 1177 472 1284 381 c 1,55,-1
- 1339 430 l 1,56,-1
- 1323 492 l 1,57,-1
- 1210 616 l 1,58,-1
- 1116 651 l 1,59,-1
- 1135 696 l 1,60,-1
- 1243 647 l 1,61,-1
- 1370 494 l 1,62,-1
- 1425 571 l 1,63,-1
- 1352 737 l 1,64,-1
- 1210 870 l 1,65,-1
- 1247 901 l 1,66,-1
- 1276 870 l 1,67,-1
- 1438 952 l 1,68,-1
- 1860 909 l 1,69,-1
- 1909 975 l 1,30,31
-262 401 m 1,70,-1
- 262 307 l 1,71,-1
- 455 307 l 1,72,-1
- 455 401 l 1,73,-1
- 262 401 l 1,70,-1
-EndSplineSet
-EndChar
-StartChar: uni2639
-Encoding: 9785 9785 236
-Width: 1728
-GlyphClass: 2
-Flags: W
-Fore
-864 -33 m 0,0,1
- 524 -33 524 -33 307 184 c 0,2,3
- 90 400 90 400 90 741 c 0,4,5
- 90 1083 90 1083 306 1299 c 0,6,7
- 523 1516 523 1516 864 1516 c 128,-1,8
- 1205 1516 1205 1516 1422 1299 c 0,9,10
- 1638 1083 1638 1083 1638 741 c 0,11,12
- 1638 400 1638 400 1421 184 c 0,13,14
- 1206 -33 1206 -33 864 -33 c 0,0,1
-864 66 m 0,15,16
- 1164 66 1164 66 1352 254 c 0,17,18
- 1540 444 1540 444 1540 741 c 0,19,20
- 1540 1039 1540 1039 1352 1229 c 0,21,22
- 1162 1417 1162 1417 864 1417 c 0,23,24
- 569 1417 569 1417 379 1227 c 0,25,26
- 188 1036 188 1036 188 741 c 0,27,28
- 188 447 188 447 379 256 c 0,29,30
- 569 66 569 66 864 66 c 0,15,16
-408 254 m 1,31,32
- 428 455 428 455 546 575 c 0,33,34
- 663 696 663 696 862 696 c 0,35,36
- 1061 696 1061 696 1182 571 c 0,37,38
- 1297 454 1297 454 1321 254 c 1,39,-1
- 1257 254 l 1,40,41
- 1190 573 1190 573 862 573 c 0,42,43
- 536 573 536 573 469 254 c 1,44,-1
- 408 254 l 1,31,32
-614 868 m 0,45,46
- 567 868 567 868 528 905 c 0,47,48
- 492 942 492 942 492 991 c 0,49,50
- 492 1041 492 1041 528 1077 c 0,51,52
- 565 1114 565 1114 614 1114 c 0,53,54
- 664 1114 664 1114 700 1077 c 0,55,56
- 737 1041 737 1041 737 991 c 0,57,58
- 737 940 737 940 701 904 c 0,59,60
- 666 868 666 868 614 868 c 0,45,46
-1110 868 m 0,61,62
- 1062 868 1062 868 1023 905 c 0,63,64
- 985 943 985 943 985 991 c 0,65,66
- 985 1042 985 1042 1022 1078 c 0,67,68
- 1060 1114 1060 1114 1110 1114 c 0,69,70
- 1161 1114 1161 1114 1197 1078 c 128,-1,71
- 1233 1042 1233 1042 1233 991 c 0,72,73
- 1233 942 1233 942 1196 905 c 0,74,75
- 1157 868 1157 868 1110 868 c 0,61,62
-EndSplineSet
-EndChar
-StartChar: smileface
-Encoding: 9786 9786 237
-Width: 1728
-GlyphClass: 2
-Flags: W
-Fore
-864 -33 m 0,0,1
- 524 -33 524 -33 307 184 c 0,2,3
- 90 400 90 400 90 741 c 0,4,5
- 90 1083 90 1083 306 1299 c 0,6,7
- 523 1516 523 1516 864 1516 c 128,-1,8
- 1205 1516 1205 1516 1422 1299 c 0,9,10
- 1638 1083 1638 1083 1638 741 c 0,11,12
- 1638 400 1638 400 1421 184 c 0,13,14
- 1206 -33 1206 -33 864 -33 c 0,0,1
-864 66 m 0,15,16
- 1164 66 1164 66 1352 254 c 0,17,18
- 1540 444 1540 444 1540 741 c 0,19,20
- 1540 1039 1540 1039 1352 1229 c 0,21,22
- 1162 1417 1162 1417 864 1417 c 0,23,24
- 569 1417 569 1417 379 1227 c 0,25,26
- 188 1036 188 1036 188 741 c 0,27,28
- 188 447 188 447 379 256 c 0,29,30
- 569 66 569 66 864 66 c 0,15,16
-408 696 m 1,31,-1
- 469 696 l 1,32,33
- 536 377 536 377 862 377 c 0,34,35
- 1190 377 1190 377 1257 696 c 1,36,-1
- 1321 696 l 1,37,38
- 1297 497 1297 497 1182 379 c 0,39,40
- 1060 254 1060 254 862 254 c 0,41,42
- 666 254 666 254 543 379 c 0,43,44
- 428 497 428 497 408 696 c 1,31,-1
-614 868 m 0,45,46
- 567 868 567 868 528 905 c 0,47,48
- 492 942 492 942 492 991 c 0,49,50
- 492 1041 492 1041 528 1077 c 0,51,52
- 565 1114 565 1114 614 1114 c 0,53,54
- 664 1114 664 1114 700 1077 c 0,55,56
- 737 1041 737 1041 737 991 c 0,57,58
- 737 940 737 940 701 904 c 0,59,60
- 666 868 666 868 614 868 c 0,45,46
-1110 868 m 0,61,62
- 1062 868 1062 868 1023 905 c 0,63,64
- 985 943 985 943 985 991 c 0,65,66
- 985 1042 985 1042 1022 1078 c 0,67,68
- 1060 1114 1060 1114 1110 1114 c 0,69,70
- 1161 1114 1161 1114 1197 1078 c 128,-1,71
- 1233 1042 1233 1042 1233 991 c 0,72,73
- 1233 942 1233 942 1196 905 c 0,74,75
- 1157 868 1157 868 1110 868 c 0,61,62
-EndSplineSet
-EndChar
-StartChar: sun
-Encoding: 9788 9788 238
-Width: 1752
-GlyphClass: 2
-Flags: W
-Fore
-894 1010 m 0,0,1
- 618 1010 618 1010 618 734 c 0,2,3
- 618 454 618 454 894 454 c 0,4,5
- 1174 454 1174 454 1174 734 c 0,6,7
- 1174 1010 1174 1010 894 1010 c 0,0,1
-168 730 m 1,8,-1
- 536 824 l 1,9,-1
- 290 1098 l 1,10,-1
- 626 1026 l 1,11,-1
- 550 1374 l 1,12,-1
- 798 1098 l 1,13,-1
- 890 1454 l 1,14,-1
- 998 1098 l 1,15,-1
- 1272 1360 l 1,16,-1
- 1166 1008 l 1,17,-1
- 1536 1098 l 1,18,-1
- 1258 836 l 1,19,-1
- 1628 730 l 1,20,-1
- 1258 624 l 1,21,-1
- 1536 376 l 1,22,-1
- 1182 452 l 1,23,-1
- 1288 100 l 1,24,-1
- 998 376 l 1,25,-1
- 890 12 l 1,26,-1
- 798 376 l 1,27,-1
- 536 100 l 1,28,-1
- 626 452 l 1,29,-1
- 274 362 l 1,30,-1
- 536 624 l 1,31,-1
- 168 730 l 1,8,-1
-EndSplineSet
-EndChar
-StartChar: spade
-Encoding: 9824 9824 239
-Width: 1282
-GlyphClass: 2
-Flags: W
-Fore
-621 1444 m 1,0,-1
- 662 1444 l 1,1,2
- 694 1415 694 1415 729 1362 c 0,3,4
- 765 1300 765 1300 784 1270 c 0,5,6
- 839 1191 839 1191 981 1071 c 0,7,8
- 1129 945 1129 945 1186 877 c 0,9,10
- 1280 757 1280 757 1280 621 c 0,11,12
- 1280 504 1280 504 1204 422 c 0,13,14
- 1129 340 1129 340 1014 340 c 0,15,16
- 864 340 864 340 731 518 c 1,17,18
- 757 205 757 205 883 0 c 1,19,-1
- 399 0 l 1,20,21
- 527 208 527 208 551 518 c 1,22,23
- 418 340 418 340 268 340 c 0,24,25
- 149 340 149 340 76 422 c 0,26,27
- 2 502 2 502 2 621 c 0,28,29
- 2 753 2 753 96 872 c 0,30,31
- 151 946 151 946 299 1073 c 0,32,33
- 451 1205 451 1205 498 1270 c 2,34,-1
- 621 1444 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: club
-Encoding: 9827 9827 240
-Width: 1589
-GlyphClass: 2
-Flags: W
-Fore
-530 956 m 1,0,1
- 465 1063 465 1063 465 1147 c 0,2,3
- 465 1274 465 1274 567 1362 c 0,4,5
- 665 1444 665 1444 795 1444 c 0,6,7
- 926 1444 926 1444 1025 1360 c 128,-1,8
- 1124 1276 1124 1276 1124 1147 c 0,9,10
- 1124 1058 1124 1058 1059 956 c 1,11,12
- 1131 981 1131 981 1192 981 c 0,13,14
- 1331 981 1331 981 1424 891 c 0,15,16
- 1518 801 1518 801 1518 662 c 0,17,18
- 1518 528 1518 528 1424 434 c 0,19,20
- 1331 340 1331 340 1198 340 c 0,21,22
- 1028 340 1028 340 887 532 c 1,23,24
- 922 179 922 179 1032 0 c 1,25,-1
- 555 0 l 1,26,27
- 666 180 666 180 702 532 c 1,28,29
- 561 340 561 340 389 340 c 0,30,31
- 255 340 255 340 164 434 c 0,32,33
- 72 527 72 527 72 662 c 0,34,35
- 72 801 72 801 166 891 c 0,36,37
- 260 981 260 981 399 981 c 0,38,39
- 458 981 458 981 530 956 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: heart
-Encoding: 9829 9829 241
-Width: 1421
-GlyphClass: 2
-Flags: W
-Fore
-711 1139 m 1,0,1
- 795 1444 795 1444 1024 1444 c 0,2,3
- 1164 1444 1164 1444 1264 1353 c 0,4,5
- 1362 1261 1362 1261 1362 1120 c 0,6,7
- 1362 950 1362 950 1233 739 c 0,8,9
- 1207 696 1207 696 991 406 c 0,10,11
- 959 360 959 360 860 199 c 0,12,13
- 782 70 782 70 717 0 c 1,14,-1
- 705 0 l 1,15,16
- 662 39 662 39 627 111 c 2,17,-1
- 569 236 l 2,18,19
- 518 338 518 338 375 514 c 0,20,21
- 210 714 210 714 160 797 c 0,22,23
- 59 963 59 963 59 1110 c 0,24,25
- 59 1256 59 1256 155 1350 c 0,26,27
- 251 1444 251 1444 395 1444 c 0,28,29
- 627 1444 627 1444 711 1139 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: diamond
-Encoding: 9830 9830 242
-Width: 1179
-GlyphClass: 2
-Flags: W
-Fore
-580 1141 m 1,0,-1
- 1163 571 l 1,1,-1
- 580 0 l 1,2,-1
- -4 571 l 1,3,-1
- 580 1141 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni2702
-Encoding: 9986 9986 243
-Width: 1968
-GlyphClass: 2
-Flags: W
-Fore
-764 778 m 1,0,-1
- 1030 991 l 2,1,2
- 1212 1133 1212 1133 1343 1202 c 0,3,4
- 1520 1298 1520 1298 1657 1298 c 1,5,-1
- 1686 1288 l 1,6,-1
- 942 733 l 1,7,-1
- 1313 733 l 1,8,-1
- 1313 666 l 1,9,-1
- 942 666 l 1,10,-1
- 1681 109 l 1,11,-1
- 1657 98 l 1,12,13
- 1498 98 1498 98 1329 195 c 0,14,15
- 1215 259 1215 259 1038 406 c 0,16,17
- 840 570 840 570 764 621 c 1,18,19
- 596 511 596 511 403 444 c 1,20,21
- 549 414 549 414 549 289 c 0,22,23
- 549 199 549 199 459 145 c 0,24,25
- 382 100 382 100 287 100 c 0,26,27
- 78 100 78 100 78 260 c 0,28,29
- 78 335 78 335 317 500 c 0,30,31
- 425 570 425 570 637 698 c 1,32,33
- 385 848 385 848 315 895 c 0,34,35
- 78 1057 78 1057 78 1137 c 128,-1,36
- 78 1217 78 1217 150 1262 c 0,37,38
- 207 1300 207 1300 293 1300 c 0,39,40
- 392 1300 392 1300 465 1255 c 0,41,42
- 549 1202 549 1202 549 1108 c 0,43,44
- 549 979 549 979 399 952 c 1,45,46
- 586 897 586 897 764 778 c 1,0,-1
-283 1231 m 0,47,48
- 147 1231 147 1231 147 1133 c 0,49,50
- 147 1069 147 1069 217 1034 c 0,51,52
- 272 1006 272 1006 342 1006 c 0,53,54
- 479 1006 479 1006 479 1106 c 0,55,56
- 479 1171 479 1171 410 1204 c 0,57,58
- 356 1231 356 1231 283 1231 c 0,47,48
-346 389 m 0,59,60
- 147 389 147 389 147 268 c 0,61,62
- 147 168 147 168 283 168 c 0,63,64
- 357 168 357 168 408 193 c 0,65,66
- 475 223 475 223 475 289 c 0,67,68
- 475 389 475 389 346 389 c 0,59,60
-158 733 m 1,69,-1
- 575 733 l 1,70,-1
- 575 666 l 1,71,-1
- 158 666 l 1,72,-1
- 158 733 l 1,69,-1
-1475 733 m 1,73,-1
- 1890 733 l 1,74,-1
- 1890 666 l 1,75,-1
- 1475 666 l 1,76,-1
- 1475 733 l 1,73,-1
-EndSplineSet
-EndChar
-StartChar: uni2708
-Encoding: 9992 9992 244
-Width: 1619
-GlyphClass: 2
-Flags: W
-Fore
-686 1325 m 1,0,1
- 748 1256 748 1256 829 1110 c 0,2,3
- 922 951 922 951 969 893 c 0,4,5
- 1047 796 1047 796 1188 774 c 2,6,-1
- 1419 762 l 2,7,8
- 1540 750 1540 750 1581 672 c 1,9,10
- 1546 598 1546 598 1432 580 c 0,11,12
- 1398 573 1398 573 1245 573 c 0,13,14
- 1104 573 1104 573 1053 541 c 0,15,16
- 994 504 994 504 866 297 c 0,17,18
- 716 52 716 52 686 14 c 1,19,20
- 647 -2 647 -2 603 -2 c 0,21,22
- 600 -2 600 -2 596 -2 c 2,23,-1
- 522 0 l 1,24,-1
- 496 23 l 1,25,26
- 518 90 518 90 649 270 c 0,27,28
- 760 422 760 422 760 535 c 1,29,-1
- 745 557 l 1,30,31
- 636 592 636 592 338 610 c 1,32,-1
- 307 596 l 1,33,34
- 284 530 284 530 238 426 c 1,35,-1
- 205 412 l 1,36,-1
- 117 420 l 1,37,-1
- 82 446 l 1,38,39
- 106 511 106 511 129 614 c 1,40,41
- 93 630 93 630 35 670 c 1,42,43
- 50 685 50 685 83 698 c 0,44,45
- 118 714 118 714 129 725 c 1,46,47
- 128 757 128 757 106 814 c 0,48,49
- 86 871 86 871 82 895 c 1,50,-1
- 117 920 l 1,51,-1
- 205 928 l 1,52,-1
- 240 911 l 1,53,54
- 263 845 263 845 309 741 c 1,55,-1
- 340 729 l 1,56,57
- 433 729 433 729 561 745 c 0,58,59
- 727 767 727 767 760 805 c 1,60,61
- 760 918 760 918 647 1069 c 0,62,63
- 519 1242 519 1242 496 1319 c 1,64,-1
- 504 1333 l 1,65,66
- 525 1341 525 1341 567 1341 c 0,67,68
- 638 1341 638 1341 686 1325 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: uni270D
-Encoding: 9997 9997 245
-Width: 1376
-GlyphClass: 2
-Flags: W
-Fore
-596 567 m 1,0,-1
- 483 440 l 1,1,-1
- 510 434 l 2,2,3
- 548 434 548 434 559 469 c 2,4,5
- 596 512 596 512 596 567 c 1,0,-1
-139 219 m 1,6,-1
- 102 150 l 1,7,-1
- 104 139 l 1,8,-1
- 115 135 l 1,9,10
- 176 147 176 147 190 180 c 1,11,12
- 187 207 187 207 147 221 c 1,13,-1
- 139 219 l 1,6,-1
-215 469 m 1,14,-1
- 233 466 l 2,15,16
- 256 457 256 457 256 416 c 0,17,18
- 256 374 256 374 215 315 c 1,19,-1
- 240 315 l 1,20,21
- 274 351 274 351 309 425 c 0,22,23
- 348 504 348 504 373 532 c 2,24,-1
- 621 819 l 1,25,-1
- 555 852 l 1,26,27
- 346 796 346 796 215 469 c 1,14,-1
-156 315 m 1,28,-1
- 168 309 l 1,29,30
- 199 342 199 342 215 369 c 1,31,-1
- 215 410 l 1,32,-1
- 209 430 l 1,33,-1
- 156 315 l 1,28,-1
-432 236 m 1,34,-1
- 535 231 l 2,35,36
- 575 231 575 231 700 260 c 1,37,38
- 758 246 758 246 852 246 c 0,39,40
- 946 246 946 246 1040 274 c 1,41,42
- 1057 364 1057 364 1057 401 c 0,43,44
- 1057 456 1057 456 1028 596 c 1,45,-1
- 940 596 l 1,46,-1
- 725 721 l 1,47,48
- 690 677 690 677 647 579 c 0,49,50
- 603 478 603 478 571 440 c 1,51,-1
- 590 438 l 1,52,53
- 653 457 653 457 713 479 c 1,54,-1
- 713 469 l 1,55,-1
- 659 403 l 1,56,-1
- 608 403 l 2,57,58
- 490 403 490 403 426 389 c 0,59,60
- 303 362 303 362 303 289 c 1,61,-1
- 322 266 l 1,62,63
- 344 254 344 254 362 254 c 0,64,65
- 406 254 406 254 410 350 c 1,66,67
- 444 322 444 322 449 289 c 1,68,-1
- 432 236 l 1,34,-1
-1065 188 m 1,69,-1
- 1217 188 l 1,70,71
- 1243 318 1243 318 1243 408 c 0,72,73
- 1243 526 1243 526 1204 604 c 1,74,-1
- 1079 604 l 1,75,76
- 1096 476 1096 476 1096 414 c 0,77,78
- 1096 278 1096 278 1065 188 c 1,69,-1
-41 102 m 1,79,80
- 41 124 41 124 139 303 c 1,81,-1
- 117 303 l 1,82,83
- 218 538 218 538 240 668 c 1,84,85
- 386 814 386 814 559 911 c 1,86,-1
- 647 848 l 1,87,88
- 785 1018 785 1018 834 1018 c 0,89,90
- 862 1018 862 1018 879 991 c 0,91,92
- 895 965 895 965 895 936 c 2,93,-1
- 889 899 l 1,94,-1
- 764 760 l 1,95,96
- 839 708 839 708 883 684 c 0,97,98
- 957 643 957 643 1016 643 c 1,99,-1
- 1028 668 l 1,100,-1
- 1280 655 l 1,101,102
- 1313 554 1313 554 1313 420 c 0,103,104
- 1313 268 1313 268 1268 139 c 1,105,-1
- 1040 139 l 1,106,-1
- 999 213 l 1,107,108
- 874 188 874 188 864 188 c 2,109,-1
- 520 188 l 2,110,111
- 443 188 443 188 293 221 c 1,112,-1
- 227 150 l 1,113,114
- 109 96 109 96 51 74 c 1,115,-1
- 41 102 l 1,79,80
-EndSplineSet
-EndChar
-StartChar: uni270E
-Encoding: 9998 9998 246
-Width: 1515
-GlyphClass: 2
-Flags: W
-Fore
-1100 567 m 1,0,-1
- 791 764 l 2,1,2
- 597 883 597 883 475 948 c 1,3,-1
- 516 801 l 1,4,-1
- 1100 440 l 1,5,6
- 1110 481 1110 481 1110 514 c 0,7,8
- 1110 543 1110 543 1100 567 c 1,0,-1
-1083 391 m 1,9,-1
- 487 760 l 1,10,-1
- 399 596 l 1,11,-1
- 983 240 l 1,12,13
- 1048 286 1048 286 1083 391 c 1,9,-1
-948 199 m 1,14,-1
- 377 555 l 1,15,-1
- 209 520 l 1,16,-1
- 856 123 l 1,17,18
- 921 168 921 168 948 199 c 1,14,-1
-948 123 m 1,19,-1
- 1225 123 l 2,20,21
- 1259 123 1259 123 1280 154 c 0,22,23
- 1300 183 1300 183 1300 221 c 1,24,-1
- 1149 489 l 1,25,-1
- 1151 436 l 1,26,-1
- 1149 399 l 2,27,28
- 1139 335 1139 335 1083 262 c 0,29,30
- 1048 214 1048 214 948 123 c 1,19,-1
-412 987 m 1,31,-1
- 223 948 l 1,32,-1
- 109 772 l 1,33,-1
- 160 555 l 1,34,-1
- 352 604 l 1,35,-1
- 465 801 l 1,36,-1
- 412 987 l 1,31,-1
-1337 74 m 2,37,-1
- 856 74 l 1,38,-1
- 125 518 l 1,39,-1
- 55 772 l 1,40,-1
- 188 987 l 1,41,-1
- 424 1036 l 1,42,-1
- 1137 604 l 2,43,44
- 1190 571 1190 571 1272 418 c 2,45,-1
- 1380 199 l 2,46,47
- 1417 130 1417 130 1417 109 c 0,48,49
- 1417 74 1417 74 1337 74 c 2,37,-1
-197 774 m 0,50,51
- 197 818 197 818 233 846 c 0,52,53
- 250 860 250 860 309 887 c 1,54,-1
- 333 884 l 2,55,56
- 365 874 365 874 365 829 c 0,57,58
- 365 778 365 778 334 731 c 0,59,60
- 301 680 301 680 250 680 c 0,61,62
- 197 680 197 680 197 774 c 0,50,51
-EndSplineSet
-EndChar
-StartChar: uni2713
-Encoding: 10003 10003 247
-Width: 1613
-GlyphClass: 2
-Flags: W
-Fore
-1499 1569 m 1,0,-1
- 1534 1518 l 1,1,2
- 1293 1335 1293 1335 1038 1004 c 0,3,4
- 802 694 802 694 659 395 c 1,5,6
- 548 322 548 322 461 252 c 1,7,8
- 326 694 326 694 147 766 c 1,9,10
- 248 881 248 881 346 881 c 0,11,12
- 430 881 430 881 549 600 c 1,13,14
- 931 1245 931 1245 1499 1569 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni2714
-Encoding: 10004 10004 248
-Width: 1343
-GlyphClass: 2
-Flags: W
-Fore
-285 -33 m 0,0,1
- 130 -33 130 -33 74 156 c 0,2,3
- 41 264 41 264 41 471 c 0,4,5
- 41 588 41 588 82 672 c 0,6,7
- 133 778 133 778 240 778 c 0,8,9
- 319 778 319 778 346 684 c 2,10,-1
- 369 508 l 2,11,12
- 381 412 381 412 428 410 c 1,13,-1
- 1163 1116 l 2,14,15
- 1180 1133 1180 1133 1229 1133 c 0,16,17
- 1292 1133 1292 1133 1292 1087 c 2,18,-1
- 1292 965 l 2,19,20
- 1292 911 1292 911 1262 881 c 2,21,-1
- 442 47 l 2,22,23
- 364 -33 364 -33 285 -33 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uni2717
-Encoding: 10007 10007 249
-Width: 983
-GlyphClass: 2
-Flags: W
-Fore
-0 -2 m 1,0,1
- -11 22 -11 22 -25 37 c 1,2,-1
- 356 567 l 1,3,4
- 215 951 215 951 215 954 c 0,5,6
- 215 992 215 992 255 992 c 0,7,8
- 269 992 269 992 289 987 c 1,9,10
- 320 993 320 993 354 1012 c 1,11,-1
- 381 999 l 1,12,-1
- 492 748 l 1,13,-1
- 772 1049 l 1,14,-1
- 836 1024 l 1,15,-1
- 860 1049 l 1,16,17
- 891 1034 891 1034 922 1006 c 1,18,19
- 868 903 868 903 770 784 c 0,20,21
- 768 782 768 782 594 584 c 1,22,-1
- 774 223 l 1,23,24
- 774 182 774 182 711 139 c 1,25,-1
- 727 119 l 1,26,27
- 712 76 712 76 672 76 c 0,28,29
- 626 76 626 76 457 381 c 1,30,-1
- 164 -76 l 2,31,32
- 131 -127 131 -127 72 -127 c 0,33,34
- 9 -127 9 -127 8 -76 c 2,35,36
- -2 -62 -2 -62 -2 -32 c 0,37,38
- -2 -18 -2 -18 0 -2 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: uni2718
-Encoding: 10008 10008 250
-Width: 1056
-GlyphClass: 2
-Flags: W
-Fore
-72 152 m 1,0,-1
- 33 201 l 1,1,-1
- 311 532 l 1,2,3
- 125 889 125 889 125 948 c 0,4,5
- 125 979 125 979 160 1012 c 1,6,-1
- 180 1020 l 1,7,8
- 204 1010 204 1010 217 999 c 1,9,-1
- 223 999 l 1,10,11
- 256 1065 256 1065 299 1065 c 1,12,-1
- 504 760 l 1,13,14
- 823 1128 823 1128 879 1128 c 0,15,16
- 920 1128 920 1128 948 1087 c 1,17,-1
- 948 1049 l 1,18,19
- 1020 1024 1020 1024 1020 977 c 1,20,-1
- 651 545 l 1,21,-1
- 885 276 l 1,22,-1
- 893 252 l 1,23,24
- 893 225 893 225 870 185 c 0,25,26
- 848 148 848 148 821 145 c 1,27,-1
- 815 164 l 1,28,29
- 814 76 814 76 758 76 c 1,30,31
- 739 88 739 88 721 113 c 1,32,-1
- 670 57 l 1,33,-1
- 651 49 l 1,34,35
- 613 55 613 55 453 289 c 1,36,-1
- 209 -25 l 1,37,-1
- 182 -39 l 1,38,39
- 157 -17 157 -17 147 25 c 1,40,-1
- 96 25 l 1,41,42
- 59 65 59 65 43 113 c 1,43,-1
- 72 152 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni2719
-Encoding: 10009 10009 251
-Width: 1196
-GlyphClass: 2
-Flags: W
-Fore
-754 1053 m 1,0,-1
- 473 1053 l 1,1,-1
- 473 686 l 1,2,-1
- 111 686 l 1,3,-1
- 111 418 l 1,4,-1
- 473 418 l 1,5,-1
- 473 49 l 1,6,-1
- 754 49 l 1,7,-1
- 754 418 l 1,8,-1
- 1110 418 l 1,9,-1
- 1110 686 l 1,10,-1
- 754 688 l 1,11,-1
- 754 1053 l 1,0,-1
-1174 369 m 1,12,-1
- 803 369 l 1,13,-1
- 803 0 l 1,14,-1
- 422 0 l 1,15,-1
- 422 369 l 1,16,-1
- 43 369 l 1,17,-1
- 43 737 l 1,18,-1
- 422 737 l 1,19,-1
- 422 1114 l 1,20,-1
- 803 1114 l 1,21,-1
- 803 737 l 1,22,-1
- 1174 737 l 1,23,-1
- 1174 369 l 1,12,-1
-688 100 m 1,24,-1
- 524 100 l 1,25,-1
- 524 469 l 1,26,-1
- 156 469 l 1,27,-1
- 156 633 l 1,28,-1
- 524 633 l 1,29,-1
- 524 999 l 1,30,-1
- 688 999 l 1,31,-1
- 688 633 l 1,32,-1
- 1057 633 l 1,33,-1
- 1057 469 l 1,34,-1
- 688 469 l 1,35,-1
- 688 100 l 1,24,-1
-EndSplineSet
-EndChar
-StartChar: uni271A
-Encoding: 10010 10010 252
-Width: 1196
-GlyphClass: 2
-Flags: W
-Fore
-1171 360 m 1,0,-1
- 801 360 l 1,1,-1
- 801 0 l 1,2,-1
- 408 0 l 1,3,-1
- 408 360 l 1,4,-1
- 41 360 l 1,5,-1
- 41 737 l 1,6,-1
- 408 737 l 1,7,-1
- 408 1114 l 1,8,-1
- 793 1114 l 1,9,-1
- 793 737 l 1,10,-1
- 1171 737 l 1,11,-1
- 1171 360 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni271B
-Encoding: 10011 10011 253
-Width: 1196
-GlyphClass: 2
-Flags: W
-Fore
-500 0 m 1,0,-1
- 500 457 l 1,1,-1
- 29 457 l 1,2,-1
- 29 639 l 1,3,-1
- 500 639 l 1,4,-1
- 500 1114 l 1,5,-1
- 688 1114 l 1,6,-1
- 688 639 l 1,7,-1
- 1159 639 l 1,8,-1
- 1159 457 l 1,9,-1
- 688 457 l 1,10,-1
- 688 0 l 1,11,-1
- 500 0 l 1,0,-1
-512 623 m 1,12,-1
- 512 475 l 1,13,-1
- 678 475 l 1,14,-1
- 678 623 l 1,15,-1
- 512 623 l 1,12,-1
-EndSplineSet
-EndChar
-StartChar: uni271C
-Encoding: 10012 10012 254
-Width: 1163
-GlyphClass: 2
-Flags: W
-Fore
-424 391 m 1,0,-1
- 756 391 l 1,1,-1
- 756 696 l 1,2,-1
- 424 696 l 1,3,-1
- 424 391 l 1,0,-1
-768 -27 m 1,4,-1
- 412 -27 l 1,5,-1
- 412 367 l 1,6,-1
- 33 367 l 1,7,-1
- 33 719 l 1,8,-1
- 412 719 l 1,9,-1
- 412 1098 l 1,10,-1
- 768 1098 l 1,11,-1
- 768 719 l 1,12,-1
- 1137 719 l 1,13,-1
- 1137 367 l 1,14,-1
- 768 367 l 1,15,-1
- 768 -27 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uni2721
-Encoding: 10017 10017 255
-Width: 1417
-GlyphClass: 2
-Flags: W
-Fore
-707 1475 m 1,0,-1
- 926 1102 l 1,1,-1
- 1358 1102 l 1,2,-1
- 1141 725 l 1,3,-1
- 1358 348 l 1,4,-1
- 926 348 l 1,5,-1
- 707 -25 l 1,6,-1
- 494 348 l 1,7,-1
- 59 348 l 1,8,-1
- 276 725 l 1,9,-1
- 59 1102 l 1,10,-1
- 494 1102 l 1,11,-1
- 707 1475 l 1,0,-1
-707 1376 m 1,12,-1
- 551 1102 l 1,13,-1
- 864 1102 l 1,14,-1
- 707 1376 l 1,12,-1
-147 1051 m 1,15,-1
- 305 774 l 1,16,-1
- 463 1051 l 1,17,-1
- 147 1051 l 1,15,-1
-520 1051 m 1,18,-1
- 334 725 l 1,19,-1
- 520 397 l 1,20,-1
- 897 397 l 1,21,-1
- 1083 725 l 1,22,-1
- 897 1051 l 1,23,-1
- 520 1051 l 1,18,-1
-952 1051 m 1,24,-1
- 1112 772 l 1,25,-1
- 1274 1051 l 1,26,-1
- 952 1051 l 1,24,-1
-305 676 m 1,27,-1
- 147 397 l 1,28,-1
- 465 397 l 1,29,-1
- 305 676 l 1,27,-1
-1112 674 m 1,30,-1
- 952 397 l 1,31,-1
- 1272 397 l 1,32,-1
- 1112 674 l 1,30,-1
-551 348 m 1,33,-1
- 707 72 l 1,34,-1
- 868 348 l 1,35,-1
- 551 348 l 1,33,-1
-EndSplineSet
-EndChar
-StartChar: uni2722
-Encoding: 10018 10018 256
-Width: 1163
-GlyphClass: 2
-Flags: W
-Fore
-459 94 m 0,0,1
- 459 182 459 182 489 295 c 1,2,3
- 491 298 491 298 553 487 c 1,4,5
- 484 487 484 487 355 444 c 0,6,7
- 223 401 223 401 156 401 c 0,8,9
- 4 401 4 401 4 524 c 0,10,11
- 4 575 4 575 38 613 c 0,12,13
- 71 653 71 653 119 653 c 0,14,15
- 198 653 198 653 337 609 c 0,16,17
- 481 565 481 565 553 565 c 1,18,19
- 543 619 543 619 494 770 c 0,20,21
- 453 894 453 894 453 979 c 0,22,23
- 453 1035 453 1035 492 1074 c 0,24,25
- 529 1114 529 1114 586 1114 c 0,26,27
- 700 1114 700 1114 700 977 c 0,28,29
- 700 903 700 903 656 771 c 0,30,31
- 612 636 612 636 612 565 c 1,32,-1
- 815 627 l 2,33,34
- 932 657 932 657 1024 657 c 0,35,36
- 1078 657 1078 657 1114 620 c 0,37,38
- 1151 582 1151 582 1151 528 c 0,39,40
- 1151 471 1151 471 1111 432 c 0,41,42
- 1070 393 1070 393 1014 393 c 0,43,44
- 906 393 906 393 612 492 c 1,45,46
- 616 428 616 428 663 302 c 0,47,48
- 709 173 709 173 709 104 c 0,49,50
- 709 45 709 45 673 0 c 128,-1,51
- 637 -45 637 -45 578 -45 c 0,52,53
- 523 -45 523 -45 490 -3 c 0,54,55
- 459 38 459 38 459 94 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uni2723
-Encoding: 10019 10019 257
-Width: 1179
-GlyphClass: 2
-Flags: W
-Fore
-567 647 m 1,0,1
- 566 706 566 706 496 828 c 0,2,3
- 426 950 426 950 426 981 c 0,4,5
- 426 1044 426 1044 477 1083 c 128,-1,6
- 528 1122 528 1122 592 1122 c 0,7,8
- 754 1122 754 1122 754 956 c 1,9,-1
- 666 805 l 2,10,11
- 611 701 611 701 608 647 c 1,12,13
- 678 647 678 647 700 571 c 1,14,15
- 756 574 756 574 870 642 c 0,16,17
- 987 711 987 711 1030 711 c 0,18,19
- 1095 711 1095 711 1133 662 c 0,20,21
- 1169 612 1169 612 1169 545 c 0,22,23
- 1169 479 1169 479 1135 430 c 0,24,25
- 1093 377 1093 377 1030 377 c 0,26,27
- 988 377 988 377 866 455 c 0,28,29
- 748 532 748 532 700 535 c 1,30,31
- 700 497 700 497 673 470 c 0,32,33
- 643 442 643 442 608 442 c 1,34,35
- 611 389 611 389 682 278 c 0,36,37
- 754 164 754 164 754 121 c 0,38,39
- 754 60 754 60 707 17 c 0,40,41
- 659 -25 659 -25 596 -25 c 0,42,43
- 535 -25 535 -25 487 20 c 0,44,45
- 442 64 442 64 442 125 c 0,46,47
- 442 174 442 174 494 268 c 2,48,-1
- 571 408 l 1,49,-1
- 567 442 l 1,50,51
- 533 442 533 442 508 470 c 0,52,53
- 483 498 483 498 483 532 c 1,54,55
- 434 525 434 525 323 452 c 0,56,57
- 214 379 214 379 170 379 c 0,58,59
- 105 379 105 379 61 426 c 0,60,61
- 16 476 16 476 16 543 c 0,62,63
- 16 609 16 609 57 655 c 0,64,65
- 99 700 99 700 164 700 c 0,66,67
- 211 700 211 700 321 633 c 0,68,69
- 431 565 431 565 461 565 c 2,70,-1
- 483 567 l 1,71,72
- 508 647 508 647 567 647 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: uni2724
-Encoding: 10020 10020 258
-Width: 1163
-GlyphClass: 2
-Flags: W
-Fore
-360 188 m 0,0,1
- 360 223 360 223 445 344 c 0,2,3
- 529 464 529 464 537 516 c 1,4,5
- 261 328 261 328 209 328 c 0,6,7
- 118 328 118 328 59 391 c 0,8,9
- 2 454 2 454 2 549 c 0,10,11
- 2 639 2 639 57 700 c 0,12,13
- 113 762 113 762 201 762 c 0,14,15
- 254 762 254 762 360 690 c 2,16,-1
- 508 580 l 1,17,-1
- 537 584 l 1,18,19
- 529 640 529 640 445 763 c 0,20,21
- 360 887 360 887 360 924 c 0,22,23
- 360 1009 360 1009 425 1066 c 0,24,25
- 488 1122 488 1122 575 1122 c 0,26,27
- 661 1122 661 1122 727 1071 c 128,-1,28
- 793 1020 793 1020 793 936 c 0,29,30
- 793 876 793 876 711 758 c 0,31,32
- 625 632 625 632 616 580 c 1,33,34
- 667 592 667 592 786 680 c 0,35,36
- 898 760 898 760 944 760 c 0,37,38
- 1039 760 1039 760 1098 702 c 0,39,40
- 1157 645 1157 645 1157 551 c 0,41,42
- 1157 464 1157 464 1106 397 c 0,43,44
- 1051 324 1051 324 969 324 c 0,45,46
- 913 324 913 324 788 412 c 0,47,48
- 652 506 652 506 604 516 c 1,49,50
- 615 467 615 467 705 346 c 0,51,52
- 791 233 791 233 791 184 c 0,53,54
- 791 94 791 94 725 25 c 0,55,56
- 659 -43 659 -43 569 -43 c 0,57,58
- 477 -43 477 -43 418 25 c 0,59,60
- 360 95 360 95 360 188 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uni2725
-Encoding: 10021 10021 259
-Width: 1179
-GlyphClass: 2
-Flags: W
-Fore
-487 125 m 1,0,-1
- 444 123 l 1,1,-1
- 424 126 l 2,2,3
- 385 141 385 141 385 225 c 0,4,5
- 385 334 385 334 477 334 c 0,6,7
- 519 334 519 334 557 315 c 1,8,-1
- 557 520 l 1,9,-1
- 340 532 l 1,10,11
- 375 491 375 491 375 451 c 0,12,13
- 375 403 375 403 336 370 c 0,14,15
- 298 336 298 336 250 336 c 0,16,17
- 158 336 158 336 143 455 c 1,18,19
- 120 442 120 442 94 442 c 0,20,21
- 53 442 53 442 27 477 c 0,22,23
- 0 512 0 512 0 555 c 128,-1,24
- 0 598 0 598 33 627 c 0,25,26
- 64 653 64 653 106 653 c 0,27,28
- 135 653 135 653 156 643 c 1,29,30
- 168 754 168 754 260 754 c 0,31,32
- 306 754 306 754 340 724 c 0,33,34
- 375 694 375 694 375 651 c 0,35,36
- 375 616 375 616 340 567 c 1,37,-1
- 557 567 l 1,38,-1
- 567 782 l 1,39,40
- 528 752 528 752 487 752 c 0,41,42
- 441 752 441 752 415 790 c 0,43,44
- 387 827 387 827 387 872 c 0,45,46
- 387 975 387 975 492 975 c 1,47,48
- 479 1004 479 1004 479 1032 c 0,49,50
- 479 1130 479 1130 588 1130 c 0,51,52
- 696 1130 696 1130 696 1042 c 0,53,54
- 696 1023 696 1023 680 985 c 1,55,56
- 799 964 799 964 799 868 c 0,57,58
- 799 824 799 824 764 792 c 0,59,60
- 731 760 731 760 684 760 c 0,61,62
- 644 760 644 760 604 782 c 1,63,-1
- 616 567 l 1,64,-1
- 813 567 l 1,65,66
- 795 604 795 604 795 637 c 0,67,68
- 795 683 795 683 829 714 c 0,69,70
- 864 745 864 745 909 745 c 0,71,72
- 1016 745 1016 745 1016 641 c 1,73,74
- 1061 649 1061 649 1067 649 c 2,75,-1
- 1112 647 l 1,76,77
- 1163 617 1163 617 1163 557 c 0,78,79
- 1163 442 1163 442 1069 442 c 0,80,81
- 1043 442 1043 442 1016 457 c 1,82,83
- 1010 389 1010 389 911 389 c 0,84,85
- 788 389 788 389 788 455 c 0,86,87
- 788 488 788 488 813 532 c 1,88,-1
- 616 520 l 1,89,-1
- 604 315 l 1,90,91
- 654 336 654 336 690 336 c 0,92,93
- 731 336 731 336 762 305 c 128,-1,94
- 793 274 793 274 793 233 c 0,95,96
- 793 119 793 119 682 125 c 1,97,98
- 696 90 696 90 696 63 c 0,99,100
- 696 23 696 23 664 -4 c 0,101,102
- 628 -31 628 -31 588 -31 c 0,103,104
- 545 -31 545 -31 509 -4 c 128,-1,105
- 473 23 473 23 473 66 c 0,106,107
- 473 97 473 97 487 125 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni272B
-Encoding: 10027 10027 260
-Width: 1286
-GlyphClass: 2
-Flags: W
-Fore
-600 328 m 2,0,-1
- 645 328 l 2,1,2
- 709 328 709 328 746 372 c 0,3,4
- 784 414 784 414 784 479 c 0,5,6
- 784 545 784 545 735 594 c 128,-1,7
- 686 643 686 643 621 643 c 0,8,9
- 551 643 551 643 503 601 c 128,-1,10
- 455 559 455 559 455 489 c 0,11,12
- 455 426 455 426 497 377 c 0,13,14
- 539 328 539 328 600 328 c 2,0,-1
-836 416 m 1,15,-1
- 1028 -47 l 1,16,-1
- 621 264 l 1,17,-1
- 227 -47 l 1,18,-1
- 403 416 l 1,19,-1
- 0 668 l 1,20,-1
- 483 643 l 1,21,-1
- 608 1128 l 1,22,-1
- 760 643 l 1,23,-1
- 1268 668 l 1,24,-1
- 836 416 l 1,15,-1
-EndSplineSet
-EndChar
-StartChar: uni272C
-Encoding: 10028 10028 261
-Width: 1269
-GlyphClass: 2
-Flags: W
-Fore
-518 633 m 1,0,-1
- 102 668 l 1,1,-1
- 442 440 l 1,2,-1
- 449 430 l 1,3,4
- 449 585 449 585 518 633 c 1,0,-1
-725 643 m 1,5,-1
- 637 1024 l 1,6,-1
- 537 643 l 1,7,8
- 578 674 578 674 639 674 c 0,9,10
- 695 674 695 674 725 643 c 1,5,-1
-819 440 m 1,11,-1
- 1163 668 l 1,12,-1
- 748 633 l 1,13,14
- 819 585 819 585 819 440 c 1,11,-1
-647 303 m 1,15,-1
- 969 25 l 1,16,-1
- 811 416 l 1,17,18
- 754 303 754 303 647 303 c 1,15,-1
-457 416 m 1,19,-1
- 319 37 l 1,20,-1
- 621 303 l 1,21,22
- 514 303 514 303 457 416 c 1,19,-1
-899 403 m 1,23,-1
- 1016 -37 l 1,24,-1
- 637 201 l 1,25,-1
- 256 -37 l 1,26,-1
- 356 403 l 1,27,-1
- 0 696 l 1,28,-1
- 457 721 l 1,29,-1
- 637 1128 l 1,30,-1
- 801 721 l 1,31,-1
- 1255 696 l 1,32,-1
- 899 403 l 1,23,-1
-EndSplineSet
-EndChar
-StartChar: uni272D
-Encoding: 10029 10029 262
-Width: 1212
-GlyphClass: 2
-Flags: W
-Fore
-473 680 m 1,0,-1
- 100 651 l 1,1,-1
- 395 444 l 1,2,-1
- 289 43 l 1,3,-1
- 623 256 l 1,4,-1
- 934 27 l 1,5,-1
- 840 428 l 1,6,-1
- 1110 649 l 1,7,-1
- 754 678 l 1,8,-1
- 608 1010 l 1,9,-1
- 473 680 l 1,0,-1
-233 -8 m 1,10,11
- 233 86 233 86 266 209 c 1,12,13
- 267 210 267 210 332 418 c 1,14,-1
- 158 545 l 2,15,16
- 26 646 26 646 10 676 c 1,17,18
- 53 725 53 725 444 737 c 1,19,20
- 502 911 502 911 514 944 c 0,21,22
- 575 1103 575 1103 616 1114 c 1,23,24
- 670 1064 670 1064 719 938 c 2,25,-1
- 784 737 l 1,26,27
- 839 735 839 735 1026 719 c 0,28,29
- 1210 703 1210 703 1210 670 c 0,30,31
- 1210 630 1210 630 899 418 c 1,32,-1
- 995 -33 l 1,33,-1
- 983 -49 l 1,34,35
- 785 78 785 78 621 201 c 1,36,37
- 464 82 464 82 444 70 c 0,38,39
- 342 -2 342 -2 252 -35 c 1,40,-1
- 233 -8 l 1,10,11
-442 461 m 1,41,-1
- 213 623 l 1,42,-1
- 504 643 l 1,43,-1
- 608 899 l 1,44,-1
- 721 641 l 1,45,-1
- 997 621 l 1,46,-1
- 786 449 l 1,47,-1
- 860 137 l 1,48,-1
- 621 315 l 1,49,-1
- 360 150 l 1,50,-1
- 442 461 l 1,41,-1
-EndSplineSet
-EndChar
-StartChar: uni272E
-Encoding: 10030 10030 263
-Width: 1212
-GlyphClass: 2
-Flags: W
-Fore
-496 643 m 1,0,-1
- 188 621 l 1,1,-1
- 432 457 l 1,2,-1
- 344 125 l 1,3,-1
- 621 303 l 1,4,-1
- 877 113 l 1,5,-1
- 801 440 l 1,6,-1
- 1028 621 l 1,7,-1
- 735 633 l 1,8,-1
- 608 924 l 1,9,-1
- 496 643 l 1,0,-1
-233 -8 m 1,10,11
- 233 86 233 86 266 209 c 1,12,13
- 267 210 267 210 332 418 c 1,14,-1
- 158 545 l 2,15,16
- 26 646 26 646 10 676 c 1,17,18
- 53 725 53 725 444 737 c 1,19,20
- 502 911 502 911 514 944 c 0,21,22
- 575 1103 575 1103 616 1114 c 1,23,24
- 670 1064 670 1064 719 938 c 2,25,-1
- 784 737 l 1,26,27
- 839 735 839 735 1026 719 c 0,28,29
- 1210 703 1210 703 1210 670 c 0,30,31
- 1210 630 1210 630 899 418 c 1,32,-1
- 995 -33 l 1,33,-1
- 983 -49 l 1,34,35
- 785 78 785 78 621 201 c 1,36,37
- 464 82 464 82 444 70 c 0,38,39
- 342 -2 342 -2 252 -35 c 1,40,-1
- 233 -8 l 1,10,11
-801 240 m 1,41,-1
- 608 381 l 1,42,-1
- 420 240 l 1,43,-1
- 496 457 l 1,44,-1
- 356 584 l 1,45,-1
- 537 584 l 1,46,-1
- 608 772 l 1,47,-1
- 684 584 l 1,48,-1
- 864 584 l 1,49,-1
- 725 457 l 1,50,-1
- 801 240 l 1,41,-1
-EndSplineSet
-EndChar
-StartChar: uni272F
-Encoding: 10031 10031 264
-Width: 1245
-GlyphClass: 2
-Flags: W
-Fore
-647 504 m 1,0,-1
- 1104 643 l 1,1,-1
- 764 643 l 1,2,-1
- 647 504 l 1,0,-1
-637 504 m 1,3,-1
- 637 999 l 1,4,-1
- 508 655 l 1,5,-1
- 637 504 l 1,3,-1
-432 428 m 1,6,-1
- 608 492 l 1,7,-1
- 139 633 l 1,8,-1
- 432 428 l 1,6,-1
-659 479 m 1,9,-1
- 977 76 l 1,10,-1
- 836 428 l 1,11,-1
- 659 479 l 1,9,-1
-637 479 m 1,12,-1
- 332 76 l 1,13,-1
- 637 289 l 1,14,-1
- 637 479 l 1,12,-1
-889 416 m 1,15,-1
- 1065 -47 l 1,16,-1
- 637 252 l 1,17,-1
- 227 -47 l 1,18,-1
- 381 416 l 1,19,-1
- 12 684 l 1,20,-1
- 471 684 l 1,21,-1
- 637 1141 l 1,22,-1
- 784 684 l 1,23,-1
- 1243 684 l 1,24,-1
- 889 416 l 1,15,-1
-EndSplineSet
-EndChar
-StartChar: uni2730
-Encoding: 10032 10032 265
-Width: 1392
-GlyphClass: 2
-Flags: W
-Fore
-629 1065 m 1,0,-1
- 504 696 l 1,1,-1
- 135 696 l 1,2,-1
- 426 469 l 1,3,-1
- 289 88 l 1,4,-1
- 629 340 l 1,5,-1
- 948 76 l 1,6,-1
- 815 469 l 1,7,-1
- 1139 696 l 1,8,-1
- 745 696 l 1,9,-1
- 629 1065 l 1,0,-1
-971 8 m 1,10,-1
- 731 188 l 1,11,-1
- 436 -25 l 1,12,-1
- 223 25 l 1,13,-1
- 360 440 l 1,14,-1
- 8 735 l 1,15,-1
- 465 735 l 1,16,-1
- 604 1153 l 1,17,-1
- 815 1116 l 1,18,-1
- 950 735 l 1,19,-1
- 1303 735 l 1,20,-1
- 1391 696 l 1,21,-1
- 1032 440 l 1,22,-1
- 1186 0 l 1,23,-1
- 971 8 l 1,10,-1
-EndSplineSet
-EndChar
-StartChar: uni2733
-Encoding: 10035 10035 266
-Width: 1114
-GlyphClass: 2
-Flags: W
-Fore
-915 131 m 1,0,-1
- 584 483 l 1,1,-1
- 596 0 l 1,2,-1
- 520 0 l 1,3,-1
- 537 496 l 1,4,-1
- 205 131 l 1,5,-1
- 139 182 l 1,6,-1
- 496 524 l 1,7,-1
- 12 508 l 1,8,-1
- 12 598 l 1,9,-1
- 508 569 l 1,10,-1
- 129 924 l 1,11,-1
- 205 965 l 1,12,-1
- 537 606 l 1,13,-1
- 520 1098 l 1,14,-1
- 596 1098 l 1,15,-1
- 567 606 l 1,16,-1
- 928 965 l 1,17,-1
- 977 911 l 1,18,-1
- 596 569 l 1,19,-1
- 1104 598 l 1,20,-1
- 1104 508 l 1,21,-1
- 608 524 l 1,22,-1
- 977 195 l 1,23,-1
- 915 131 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni2734
-Encoding: 10036 10036 267
-Width: 1179
-GlyphClass: 2
-Flags: W
-Fore
-588 -55 m 1,0,1
- 541 -22 541 -22 524 416 c 1,2,3
- 396 287 396 287 360 254 c 0,4,5
- 263 166 263 166 174 127 c 1,6,-1
- 166 137 l 1,7,8
- 201 233 201 233 449 492 c 1,9,10
- 246 495 246 495 217 498 c 0,11,12
- 69 507 69 507 -2 543 c 1,13,14
- 70 577 70 577 449 604 c 1,15,16
- 295 752 295 752 285 764 c 0,17,18
- 196 861 196 861 160 952 c 1,19,-1
- 170 963 l 1,20,21
- 236 940 236 940 524 684 c 1,22,23
- 534 902 534 902 535 913 c 0,24,25
- 547 1082 547 1082 580 1124 c 1,26,27
- 619 1061 619 1061 637 668 c 1,28,29
- 777 810 777 810 807 836 c 0,30,31
- 923 942 923 942 997 969 c 1,32,-1
- 1012 956 l 1,33,34
- 967 869 967 869 877 770 c 2,35,-1
- 717 604 l 1,36,37
- 1025 574 1025 574 1169 555 c 1,38,-1
- 1176 549 l 1,39,40
- 1089 518 1089 518 717 492 c 1,41,42
- 864 337 864 337 874 324 c 0,43,44
- 960 226 960 226 1004 135 c 1,45,-1
- 991 127 l 1,46,47
- 924 150 924 150 637 403 c 1,48,49
- 637 211 637 211 633 166 c 0,50,51
- 622 -4 622 -4 588 -55 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: uni2735
-Encoding: 10037 10037 268
-Width: 1179
-GlyphClass: 2
-Flags: W
-Fore
-621 596 m 1,0,-1
- 899 872 l 1,1,-1
- 684 748 l 1,2,-1
- 621 596 l 1,0,-1
-100 545 m 1,3,-1
- 387 479 l 1,4,-1
- 545 545 l 1,5,-1
- 100 545 l 1,3,-1
-553 504 m 1,6,-1
- 223 176 l 1,7,-1
- 504 369 l 1,8,-1
- 553 504 l 1,6,-1
-592 492 m 1,9,-1
- 592 59 l 1,10,-1
- 668 356 l 1,11,-1
- 592 492 l 1,9,-1
-633 520 m 1,12,-1
- 948 201 l 1,13,-1
- 784 457 l 1,14,-1
- 633 520 l 1,12,-1
-643 555 m 1,15,-1
- 1075 555 l 1,16,-1
- 797 633 l 1,17,-1
- 643 555 l 1,15,-1
-580 596 m 1,18,-1
- 580 1024 l 1,19,-1
- 520 748 l 1,20,-1
- 580 596 l 1,18,-1
-403 643 m 1,21,-1
- 553 584 l 1,22,-1
- 252 872 l 1,23,-1
- 403 643 l 1,21,-1
-983 139 m 1,24,-1
- 696 315 l 1,25,-1
- 604 -37 l 1,26,-1
- 580 -37 l 1,27,-1
- 504 303 l 1,28,-1
- 188 113 l 1,29,-1
- 160 139 l 1,30,-1
- 352 440 l 1,31,-1
- -4 532 l 1,32,-1
- -4 555 l 1,33,-1
- 352 633 l 1,34,-1
- 160 965 l 1,35,-1
- 188 977 l 1,36,-1
- 479 784 l 1,37,-1
- 580 1128 l 1,38,-1
- 604 1128 l 1,39,-1
- 684 801 l 1,40,-1
- 999 977 l 1,41,-1
- 1024 965 l 1,42,-1
- 819 655 l 1,43,-1
- 1163 567 l 1,44,-1
- 1163 545 l 1,45,-1
- 836 469 l 1,46,-1
- 1012 152 l 1,47,-1
- 983 139 l 1,24,-1
-EndSplineSet
-EndChar
-StartChar: uni2736
-Encoding: 10038 10038 269
-Width: 1040
-GlyphClass: 2
-Flags: W
-Fore
-498 -43 m 1,0,1
- 458 11 458 11 399 381 c 1,2,3
- 211 303 211 303 211 301 c 1,4,5
- 100 260 100 260 12 250 c 1,6,-1
- 0 254 l 1,7,-1
- -6 260 l 1,8,9
- 22 319 22 319 311 545 c 1,10,11
- 171 644 171 644 141 668 c 0,12,13
- 50 742 50 742 0 823 c 1,14,-1
- 6 827 l 1,15,16
- 96 824 96 824 399 709 c 1,17,-1
- 434 932 l 2,18,19
- 462 1078 462 1078 506 1137 c 1,20,21
- 544 1027 544 1027 588 709 c 1,22,23
- 737 763 737 763 793 780 c 0,24,25
- 900 815 900 815 1001 838 c 1,26,-1
- 1014 829 l 1,27,28
- 969 754 969 754 868 674 c 2,29,-1
- 692 545 l 1,30,31
- 719 519 719 519 862 399 c 0,32,33
- 968 315 968 315 1024 246 c 1,34,-1
- 1014 242 l 1,35,36
- 900 265 900 265 588 381 c 1,37,-1
- 557 160 l 2,38,39
- 530 0 530 0 498 -43 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: uni2737
-Encoding: 10039 10039 270
-Width: 1163
-GlyphClass: 2
-Flags: W
-Fore
-332 -10 m 1,0,-1
- 387 369 l 1,1,2
- 103 317 103 317 20 317 c 2,3,-1
- 10 319 l 1,4,-1
- 4 326 l 1,5,6
- 52 397 52 397 328 555 c 1,7,8
- 105 685 105 685 6 784 c 1,9,-1
- 16 791 l 1,10,-1
- 33 793 l 2,11,12
- 131 793 131 793 403 735 c 1,13,14
- 363 895 363 895 358 920 c 0,15,16
- 336 1021 336 1021 336 1106 c 1,17,-1
- 344 1126 l 1,18,19
- 396 1097 396 1097 567 809 c 1,20,21
- 668 968 668 968 672 977 c 0,22,23
- 740 1068 740 1068 813 1112 c 1,24,-1
- 823 1098 l 1,25,-1
- 735 735 l 1,26,27
- 1016 795 1016 795 1130 795 c 2,28,-1
- 1143 793 l 1,29,-1
- 1149 786 l 1,30,-1
- 836 545 l 1,31,32
- 998 446 998 446 1008 440 c 0,33,34
- 1106 375 1106 375 1151 305 c 1,35,-1
- 1126 297 l 2,36,37
- 1016 297 1016 297 735 381 c 1,38,39
- 757 299 757 299 819 -8 c 1,40,-1
- 811 -23 l 1,41,42
- 759 8 759 8 567 289 c 1,43,44
- 486 145 486 145 467 119 c 0,45,46
- 407 27 407 27 338 -27 c 1,47,-1
- 332 -10 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni2738
-Encoding: 10040 10040 271
-Width: 1179
-GlyphClass: 2
-Flags: W
-Fore
-25 340 m 1,0,-1
- 289 584 l 1,1,-1
- 8 809 l 1,2,-1
- 365 784 l 1,3,-1
- 356 1141 l 1,4,-1
- 580 872 l 1,5,-1
- 819 1141 l 1,6,-1
- 797 784 l 1,7,-1
- 1163 819 l 1,8,-1
- 872 584 l 1,9,-1
- 1153 340 l 1,10,-1
- 797 369 l 1,11,-1
- 819 0 l 1,12,-1
- 580 264 l 1,13,-1
- 340 0 l 1,14,-1
- 365 369 l 1,15,-1
- 25 340 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni2739
-Encoding: 10041 10041 272
-Width: 1236
-GlyphClass: 2
-Flags: W
-Fore
-8 555 m 1,0,-1
- 311 633 l 1,1,-1
- 109 860 l 1,2,-1
- 387 801 l 1,3,-1
- 324 1087 l 1,4,-1
- 528 860 l 1,5,-1
- 604 1153 l 1,6,-1
- 692 860 l 1,7,-1
- 920 1075 l 1,8,-1
- 831 784 l 1,9,-1
- 1137 860 l 1,10,-1
- 907 643 l 1,11,-1
- 1212 555 l 1,12,-1
- 907 469 l 1,13,-1
- 1137 264 l 1,14,-1
- 844 328 l 1,15,-1
- 932 37 l 1,16,-1
- 692 264 l 1,17,-1
- 604 -37 l 1,18,-1
- 528 264 l 1,19,-1
- 311 37 l 1,20,-1
- 387 328 l 1,21,-1
- 96 252 l 1,22,-1
- 311 469 l 1,23,-1
- 8 555 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni273F
-Encoding: 10047 10047 273
-Width: 1691
-GlyphClass: 2
-Flags: W
-Fore
-854 170 m 1,0,1
- 764 0 764 0 586 0 c 0,2,3
- 445 0 445 0 347 97 c 0,4,5
- 248 194 248 194 248 334 c 0,6,7
- 248 437 248 437 334 539 c 1,8,9
- 216 563 216 563 143 645 c 0,10,11
- 72 728 72 728 72 846 c 0,12,13
- 72 978 72 978 162 1079 c 0,14,15
- 252 1180 252 1180 385 1180 c 0,16,17
- 446 1180 446 1180 522 1149 c 1,18,19
- 518 1237 518 1237 518 1249 c 0,20,21
- 518 1364 518 1364 627 1440 c 0,22,23
- 724 1509 724 1509 844 1509 c 0,24,25
- 994 1509 994 1509 1082 1409 c 0,26,27
- 1162 1320 1162 1320 1162 1191 c 0,28,29
- 1162 1175 1162 1175 1161 1159 c 1,30,31
- 1236 1194 1236 1194 1300 1194 c 0,32,33
- 1435 1194 1435 1194 1528 1096 c 0,34,35
- 1620 996 1620 996 1620 860 c 0,36,37
- 1620 748 1620 748 1549 665 c 0,38,39
- 1479 582 1479 582 1366 553 c 1,40,41
- 1458 453 1458 453 1458 338 c 0,42,43
- 1458 202 1458 202 1358 101 c 0,44,45
- 1257 0 1257 0 1124 0 c 0,46,47
- 953 0 953 0 854 170 c 1,0,1
-842 905 m 0,48,49
- 770 905 770 905 717 852 c 128,-1,50
- 664 799 664 799 664 727 c 0,51,52
- 664 657 664 657 717 604 c 128,-1,53
- 770 551 770 551 842 551 c 0,54,55
- 914 551 914 551 967 603 c 0,56,57
- 1020 656 1020 656 1020 727 c 0,58,59
- 1020 797 1020 797 967 852 c 0,60,61
- 912 905 912 905 842 905 c 0,48,49
-EndSplineSet
-EndChar
-StartChar: uni2741
-Encoding: 10049 10049 274
-Width: 1848
-GlyphClass: 2
-Flags: W
-Fore
-1094 1320 m 0,0,1
- 1094 1245 1094 1245 966 900 c 1,2,3
- 941 906 941 906 912 906 c 0,4,5
- 884 906 884 906 854 900 c 1,6,7
- 730 1240 730 1240 730 1320 c 0,8,9
- 730 1397 730 1397 780 1450 c 0,10,11
- 835 1502 835 1502 912 1502 c 0,12,13
- 984 1502 984 1502 1038 1448 c 0,14,15
- 1094 1395 1094 1395 1094 1320 c 0,0,1
-840 1310 m 0,16,17
- 840 1258 840 1258 908 1258 c 0,18,19
- 970 1258 970 1258 970 1310 c 0,20,21
- 970 1366 970 1366 908 1366 c 0,22,23
- 840 1366 840 1366 840 1310 c 0,16,17
-1060 814 m 1,24,25
- 1036 866 1036 866 984 890 c 1,26,27
- 1085 1118 1085 1118 1112 1160 c 0,28,29
- 1215 1336 1215 1336 1320 1336 c 0,30,31
- 1394 1336 1394 1336 1450 1280 c 128,-1,32
- 1506 1224 1506 1224 1506 1150 c 0,33,34
- 1506 1046 1506 1046 1330 940 c 0,35,36
- 1282 913 1282 913 1060 814 c 1,24,25
-1268 1164 m 0,37,38
- 1268 1108 1268 1108 1332 1108 c 128,-1,39
- 1396 1108 1396 1108 1396 1164 c 0,40,41
- 1396 1216 1396 1216 1332 1216 c 128,-1,42
- 1268 1216 1268 1216 1268 1164 c 0,37,38
-838 890 m 1,43,44
- 788 866 788 866 760 814 c 1,45,46
- 527 915 527 915 492 938 c 0,47,48
- 320 1042 320 1042 320 1150 c 0,49,50
- 320 1226 320 1226 374 1280 c 0,51,52
- 433 1336 433 1336 504 1336 c 0,53,54
- 609 1336 609 1336 712 1160 c 0,55,56
- 721 1142 721 1142 838 890 c 1,43,44
-464 1128 m 0,57,58
- 464 1074 464 1074 530 1074 c 0,59,60
- 594 1074 594 1074 594 1128 c 128,-1,61
- 594 1182 594 1182 530 1182 c 0,62,63
- 464 1182 464 1182 464 1128 c 0,57,58
-1674 742 m 0,64,65
- 1674 672 1674 672 1618 612 c 0,66,67
- 1566 560 1566 560 1488 560 c 0,68,69
- 1407 560 1407 560 1070 684 c 1,70,71
- 1082 738 1082 738 1070 798 c 1,72,73
- 1418 924 1418 924 1488 924 c 0,74,75
- 1565 924 1565 924 1618 868 c 0,76,77
- 1674 812 1674 812 1674 742 c 0,64,65
-1420 732 m 0,78,79
- 1420 680 1420 680 1484 680 c 128,-1,80
- 1548 680 1548 680 1548 732 c 0,81,82
- 1548 786 1548 786 1484 786 c 128,-1,83
- 1420 786 1420 786 1420 732 c 0,78,79
-752 684 m 1,84,85
- 412 560 412 560 330 560 c 0,86,87
- 257 560 257 560 202 612 c 0,88,89
- 148 669 148 669 148 742 c 0,90,91
- 148 814 148 814 202 868 c 0,92,93
- 258 924 258 924 330 924 c 0,94,95
- 404 924 404 924 752 798 c 1,96,97
- 744 774 744 774 744 742 c 0,98,99
- 744 708 744 708 752 684 c 1,84,85
-262 748 m 0,100,101
- 262 694 262 694 328 694 c 0,102,103
- 392 694 392 694 392 748 c 128,-1,104
- 392 802 392 802 328 802 c 0,105,106
- 262 802 262 802 262 748 c 0,100,101
-1320 148 m 0,107,108
- 1213 148 1213 148 1112 324 c 0,109,110
- 1086 362 1086 362 984 592 c 1,111,112
- 1036 613 1036 613 1060 668 c 1,113,114
- 1288 567 1288 567 1330 540 c 0,115,116
- 1506 437 1506 437 1506 332 c 0,117,118
- 1506 258 1506 258 1450 202 c 0,119,120
- 1396 148 1396 148 1320 148 c 0,107,108
-1274 314 m 0,121,122
- 1274 262 1274 262 1340 262 c 0,123,124
- 1402 262 1402 262 1402 314 c 0,125,126
- 1402 368 1402 368 1340 368 c 0,127,128
- 1274 368 1274 368 1274 314 c 0,121,122
-838 592 m 1,129,130
- 655 148 655 148 504 148 c 0,131,132
- 431 148 431 148 374 202 c 0,133,134
- 320 256 320 256 320 332 c 0,135,136
- 320 435 320 435 494 540 c 0,137,138
- 527 562 527 562 760 668 c 1,139,140
- 783 613 783 613 838 592 c 1,129,130
-430 322 m 0,141,142
- 430 268 430 268 496 268 c 0,143,144
- 560 268 560 268 560 322 c 0,145,146
- 560 374 560 374 496 374 c 0,147,148
- 430 374 430 374 430 322 c 0,141,142
-1094 160 m 0,149,150
- 1094 86 1094 86 1040 32 c 0,151,152
- 985 -20 985 -20 912 -20 c 128,-1,153
- 839 -20 839 -20 784 32 c 0,154,155
- 730 89 730 89 730 160 c 0,156,157
- 730 242 730 242 854 582 c 1,158,159
- 884 576 884 576 912 576 c 0,160,161
- 940 576 940 576 966 582 c 1,162,163
- 1094 237 1094 237 1094 160 c 0,149,150
-856 156 m 0,164,165
- 856 102 856 102 922 102 c 0,166,167
- 986 102 986 102 986 156 c 128,-1,168
- 986 210 986 210 922 210 c 0,169,170
- 856 210 856 210 856 156 c 0,164,165
-EndSplineSet
-EndChar
-StartChar: uni2744
-Encoding: 10052 10052 275
-Width: 1406
-GlyphClass: 2
-Flags: W
-Fore
-772 801 m 1,0,-1
- 995 930 l 1,1,-1
- 1032 1202 l 1,2,-1
- 1098 1194 l 1,3,-1
- 1069 973 l 1,4,-1
- 1300 1106 l 1,5,-1
- 1341 1034 l 1,6,-1
- 1110 901 l 1,7,-1
- 1319 813 l 1,8,-1
- 1292 754 l 1,9,-1
- 1036 858 l 1,10,-1
- 813 729 l 1,11,-1
- 813 696 l 1,12,-1
- 1036 567 l 1,13,-1
- 1292 676 l 1,14,-1
- 1319 612 l 1,15,-1
- 1110 526 l 1,16,-1
- 1341 393 l 1,17,-1
- 1300 322 l 1,18,-1
- 1069 455 l 1,19,-1
- 1098 231 l 1,20,-1
- 1032 223 l 1,21,-1
- 995 498 l 1,22,-1
- 772 627 l 1,23,-1
- 745 608 l 1,24,-1
- 745 352 l 1,25,-1
- 965 184 l 1,26,-1
- 924 131 l 1,27,-1
- 745 266 l 1,28,-1
- 745 0 l 1,29,-1
- 664 0 l 1,30,-1
- 664 266 l 1,31,-1
- 483 131 l 1,32,-1
- 442 184 l 1,33,-1
- 664 352 l 1,34,-1
- 664 608 l 1,35,-1
- 635 627 l 1,36,-1
- 412 498 l 1,37,-1
- 377 223 l 1,38,-1
- 309 231 l 1,39,-1
- 338 455 l 1,40,-1
- 106 322 l 1,41,-1
- 66 391 l 1,42,-1
- 297 526 l 1,43,-1
- 90 612 l 1,44,-1
- 117 674 l 1,45,-1
- 371 567 l 1,46,-1
- 594 696 l 1,47,-1
- 594 729 l 1,48,-1
- 371 858 l 1,49,-1
- 117 752 l 1,50,-1
- 90 813 l 1,51,-1
- 297 901 l 1,52,-1
- 66 1034 l 1,53,-1
- 106 1106 l 1,54,-1
- 338 973 l 1,55,-1
- 309 1194 l 1,56,-1
- 377 1202 l 1,57,-1
- 412 930 l 1,58,-1
- 635 801 l 1,59,-1
- 664 817 l 1,60,-1
- 664 1073 l 1,61,-1
- 442 1241 l 1,62,-1
- 483 1294 l 1,63,-1
- 664 1159 l 1,64,-1
- 664 1425 l 1,65,-1
- 743 1425 l 1,66,-1
- 743 1159 l 1,67,-1
- 924 1294 l 1,68,-1
- 965 1241 l 1,69,-1
- 743 1073 l 1,70,-1
- 743 817 l 1,71,-1
- 772 801 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni274D
-Encoding: 10061 10061 276
-Width: 1949
-GlyphClass: 2
-Flags: W
-Fore
-868 1483 m 0,0,1
- 979 1483 979 1483 1135 1430 c 0,2,3
- 1780 1206 1780 1206 1780 698 c 0,4,5
- 1780 388 1780 388 1585 195 c 0,6,7
- 1390 0 1390 0 1081 0 c 0,8,9
- 970 0 970 0 817 53 c 0,10,11
- 174 278 174 278 174 786 c 0,12,13
- 174 1092 174 1092 368 1288 c 0,14,15
- 562 1483 562 1483 868 1483 c 0,0,1
-266 776 m 0,16,17
- 266 514 266 514 436 347 c 0,18,19
- 608 180 608 180 868 180 c 0,20,21
- 1133 180 1133 180 1304 349 c 0,22,23
- 1473 520 1473 520 1473 784 c 0,24,25
- 1473 1049 1473 1049 1304 1220 c 0,26,27
- 1133 1389 1133 1389 868 1389 c 0,28,29
- 602 1389 602 1389 434 1215 c 0,30,31
- 266 1042 266 1042 266 776 c 0,16,17
-EndSplineSet
-EndChar
-StartChar: uni274F
-Encoding: 10063 10063 277
-Width: 1130
-GlyphClass: 2
-Flags: W
-Fore
-55 223 m 1,0,-1
- 893 223 l 1,1,-1
- 893 1075 l 1,2,-1
- 55 1075 l 1,3,-1
- 55 223 l 1,0,-1
-1106 0 m 1,4,-1
- 166 0 l 1,5,-1
- 166 176 l 1,6,-1
- 2 176 l 1,7,-1
- 2 1128 l 1,8,-1
- 942 1128 l 1,9,-1
- 942 965 l 1,10,-1
- 1106 965 l 1,11,-1
- 1106 0 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uni2750
-Encoding: 10064 10064 278
-Width: 1146
-GlyphClass: 2
-Flags: W
-Fore
-897 899 m 1,0,-1
- 55 899 l 1,1,-1
- 55 59 l 1,2,-1
- 897 59 l 1,3,-1
- 897 899 l 1,0,-1
-8 0 m 1,4,-1
- 8 948 l 1,5,-1
- 172 948 l 1,6,-1
- 172 1128 l 1,7,-1
- 1124 1128 l 1,8,-1
- 1124 176 l 1,9,-1
- 948 176 l 1,10,-1
- 948 0 l 1,11,-1
- 8 0 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uni2751
-Encoding: 10065 10065 279
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-270 299 m 1,0,-1
- 1354 299 l 1,1,-1
- 1354 1384 l 1,2,-1
- 270 1384 l 1,3,-1
- 270 299 l 1,0,-1
-172 1483 m 1,4,-1
- 1456 1483 l 1,5,-1
- 1653 1284 l 1,6,-1
- 1653 0 l 1,7,-1
- 369 0 l 1,8,-1
- 172 197 l 1,9,-1
- 172 1483 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uni2752
-Encoding: 10066 10066 280
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-1354 98 m 1,0,-1
- 1354 1184 l 1,1,-1
- 268 1184 l 1,2,-1
- 270 98 l 1,3,-1
- 1354 98 l 1,0,-1
-172 0 m 1,4,-1
- 172 1284 l 1,5,-1
- 369 1483 l 1,6,-1
- 1653 1483 l 1,7,-1
- 1653 199 l 1,8,-1
- 1456 0 l 1,9,-1
- 172 0 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uni2756
-Encoding: 10070 10070 281
-Width: 1179
-GlyphClass: 2
-Flags: W
-Fore
-899 801 m 1,0,-1
- 1163 555 l 1,1,-1
- 899 315 l 1,2,-1
- 643 555 l 1,3,-1
- 899 801 l 1,0,-1
-580 479 m 1,4,-1
- 819 240 l 1,5,-1
- 580 -25 l 1,6,-1
- 340 240 l 1,7,-1
- 580 479 l 1,4,-1
-504 555 m 1,8,-1
- 252 315 l 1,9,-1
- -4 567 l 1,10,-1
- 252 801 l 1,11,-1
- 504 555 l 1,8,-1
-580 1128 m 1,12,-1
- 819 872 l 1,13,-1
- 580 643 l 1,14,-1
- 340 872 l 1,15,-1
- 580 1128 l 1,12,-1
-EndSplineSet
-EndChar
-StartChar: uni2759
-Encoding: 10073 10073 282
-Width: 567
-GlyphClass: 2
-Flags: W
-Fore
-508 1458 m 1,0,-1
- 508 0 l 1,1,-1
- 59 0 l 1,2,-1
- 59 1458 l 1,3,-1
- 508 1458 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni2762
-Encoding: 10082 10082 283
-Width: 1114
-GlyphClass: 2
-Flags: W
-Fore
-530 586 m 1,0,1
- 521 697 521 697 414 815 c 2,2,-1
- 223 1001 l 2,3,4
- 123 1111 123 1111 123 1219 c 0,5,6
- 123 1360 123 1360 281 1421 c 0,7,8
- 390 1466 390 1466 557 1466 c 0,9,10
- 726 1466 726 1466 831 1425 c 0,11,12
- 991 1364 991 1364 991 1227 c 0,13,14
- 991 1116 991 1116 891 1004 c 2,15,-1
- 700 817 l 2,16,17
- 595 701 595 701 584 586 c 1,18,-1
- 530 586 l 1,0,1
-555 -29 m 0,19,20
- 435 -29 435 -29 340 39 c 0,21,22
- 236 112 236 112 236 229 c 0,23,24
- 236 348 236 348 338 420 c 0,25,26
- 429 481 429 481 555 481 c 128,-1,27
- 681 481 681 481 772 420 c 0,28,29
- 877 348 877 348 877 229 c 0,30,31
- 877 110 877 110 772 37 c 0,32,33
- 678 -29 678 -29 555 -29 c 0,19,20
-EndSplineSet
-EndChar
-StartChar: uni2780
-Encoding: 10112 10112 284
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-272 741 m 0,14,15
- 272 460 272 460 453 280 c 0,16,17
- 633 98 633 98 913 98 c 0,18,19
- 1200 98 1200 98 1376 276 c 0,20,21
- 1552 453 1552 453 1552 741 c 0,22,23
- 1552 1028 1552 1028 1375 1206 c 0,24,25
- 1198 1384 1198 1384 913 1384 c 0,26,27
- 630 1384 630 1384 452 1204 c 0,28,29
- 272 1024 272 1024 272 741 c 0,14,15
-864 270 m 1,30,-1
- 864 1110 l 1,31,-1
- 717 1110 l 1,32,-1
- 717 1190 l 1,33,-1
- 989 1212 l 1,34,-1
- 989 270 l 1,35,-1
- 864 270 l 1,30,-1
-EndSplineSet
-EndChar
-StartChar: uni2781
-Encoding: 10113 10113 285
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-272 741 m 0,14,15
- 272 460 272 460 453 280 c 0,16,17
- 633 98 633 98 913 98 c 0,18,19
- 1200 98 1200 98 1376 276 c 0,20,21
- 1552 453 1552 453 1552 741 c 0,22,23
- 1552 1028 1552 1028 1375 1206 c 0,24,25
- 1198 1384 1198 1384 913 1384 c 0,26,27
- 630 1384 630 1384 452 1204 c 0,28,29
- 272 1024 272 1024 272 741 c 0,14,15
-641 287 m 1,30,-1
- 641 393 l 1,31,32
- 676 460 676 460 791 582 c 0,33,34
- 942 737 942 737 977 782 c 0,35,36
- 1069 898 1069 898 1069 979 c 0,37,38
- 1069 1147 1069 1147 893 1147 c 0,39,40
- 795 1147 795 1147 666 1075 c 1,41,-1
- 666 1186 l 1,42,43
- 796 1245 796 1245 911 1245 c 0,44,45
- 1037 1245 1037 1245 1116 1178 c 0,46,47
- 1200 1103 1200 1103 1200 981 c 0,48,49
- 1200 866 1200 866 1104 764 c 2,50,-1
- 920 598 l 2,51,52
- 811 497 811 497 793 393 c 1,53,-1
- 1196 393 l 1,54,-1
- 1196 287 l 1,55,-1
- 641 287 l 1,30,-1
-EndSplineSet
-EndChar
-StartChar: uni2782
-Encoding: 10114 10114 286
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-272 741 m 0,14,15
- 272 460 272 460 453 280 c 0,16,17
- 633 98 633 98 913 98 c 0,18,19
- 1200 98 1200 98 1376 276 c 0,20,21
- 1552 453 1552 453 1552 741 c 0,22,23
- 1552 1028 1552 1028 1375 1206 c 0,24,25
- 1198 1384 1198 1384 913 1384 c 0,26,27
- 630 1384 630 1384 452 1204 c 0,28,29
- 272 1024 272 1024 272 741 c 0,14,15
-674 283 m 1,30,-1
- 674 399 l 1,31,32
- 816 346 816 346 885 346 c 0,33,34
- 967 346 967 346 1027 398 c 0,35,36
- 1085 450 1085 450 1085 532 c 0,37,38
- 1085 728 1085 728 770 729 c 0,39,40
- 762 729 l 1,41,-1
- 762 813 l 1,42,-1
- 842 816 l 2,43,44
- 1063 837 1063 837 1063 995 c 0,45,46
- 1063 1139 1063 1139 891 1139 c 0,47,48
- 790 1139 790 1139 686 1087 c 1,49,-1
- 686 1198 l 1,50,51
- 791 1237 791 1237 901 1237 c 0,52,53
- 1188 1237 1188 1237 1188 1016 c 0,54,55
- 1188 854 1188 854 993 782 c 1,56,57
- 1219 729 1219 729 1219 535 c 0,58,59
- 1219 398 1219 398 1122 322 c 0,60,61
- 1036 254 1036 254 893 254 c 0,62,63
- 816 254 816 254 674 283 c 1,30,-1
-EndSplineSet
-EndChar
-StartChar: uni2783
-Encoding: 10115 10115 287
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-272 741 m 0,14,15
- 272 460 272 460 453 280 c 0,16,17
- 633 98 633 98 913 98 c 0,18,19
- 1200 98 1200 98 1376 276 c 0,20,21
- 1552 453 1552 453 1552 741 c 0,22,23
- 1552 1028 1552 1028 1375 1206 c 0,24,25
- 1198 1384 1198 1384 913 1384 c 0,26,27
- 630 1384 630 1384 452 1204 c 0,28,29
- 272 1024 272 1024 272 741 c 0,14,15
-938 285 m 1,30,-1
- 938 549 l 1,31,-1
- 518 549 l 1,32,-1
- 518 641 l 1,33,-1
- 938 1217 l 1,34,-1
- 1055 1217 l 1,35,-1
- 1055 649 l 1,36,-1
- 1180 649 l 1,37,-1
- 1180 549 l 1,38,-1
- 1055 549 l 1,39,-1
- 1055 285 l 1,40,-1
- 938 285 l 1,30,-1
-641 649 m 1,41,-1
- 946 649 l 1,42,-1
- 946 1065 l 1,43,-1
- 641 649 l 1,41,-1
-EndSplineSet
-EndChar
-StartChar: uni2784
-Encoding: 10116 10116 288
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-272 741 m 0,14,15
- 272 460 272 460 453 280 c 0,16,17
- 633 98 633 98 913 98 c 0,18,19
- 1200 98 1200 98 1376 276 c 0,20,21
- 1552 453 1552 453 1552 741 c 0,22,23
- 1552 1028 1552 1028 1375 1206 c 0,24,25
- 1198 1384 1198 1384 913 1384 c 0,26,27
- 630 1384 630 1384 452 1204 c 0,28,29
- 272 1024 272 1024 272 741 c 0,14,15
-682 266 m 1,30,-1
- 682 377 l 1,31,32
- 766 338 766 338 858 338 c 0,33,34
- 1057 338 1057 338 1057 543 c 0,35,36
- 1057 648 1057 648 973 707 c 0,37,38
- 900 758 900 758 788 758 c 0,39,40
- 746 758 746 758 698 748 c 1,41,-1
- 698 1204 l 1,42,-1
- 1169 1204 l 1,43,-1
- 1171 1098 l 1,44,-1
- 807 1098 l 1,45,-1
- 807 852 l 1,46,47
- 970 852 970 852 1073 778 c 0,48,49
- 1188 694 1188 694 1188 537 c 0,50,51
- 1188 395 1188 395 1085 317 c 0,52,53
- 991 246 991 246 846 246 c 0,54,55
- 760 246 760 246 682 266 c 1,30,-1
-EndSplineSet
-EndChar
-StartChar: uni2785
-Encoding: 10117 10117 289
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-272 741 m 0,14,15
- 272 460 272 460 453 280 c 0,16,17
- 633 98 633 98 913 98 c 0,18,19
- 1200 98 1200 98 1376 276 c 0,20,21
- 1552 453 1552 453 1552 741 c 0,22,23
- 1552 1028 1552 1028 1375 1206 c 0,24,25
- 1198 1384 1198 1384 913 1384 c 0,26,27
- 630 1384 630 1384 452 1204 c 0,28,29
- 272 1024 272 1024 272 741 c 0,14,15
-719 752 m 1,30,31
- 800 868 800 868 940 868 c 0,32,33
- 1063 868 1063 868 1141 787 c 0,34,35
- 1219 708 1219 708 1219 582 c 0,36,37
- 1219 445 1219 445 1135 346 c 0,38,39
- 1045 246 1045 246 909 246 c 0,40,41
- 736 246 736 246 649 403 c 0,42,43
- 582 525 582 525 582 717 c 0,44,45
- 582 932 582 932 662 1065 c 0,46,47
- 761 1229 761 1229 961 1229 c 0,48,49
- 1051 1229 1051 1229 1169 1192 c 1,50,-1
- 1169 1079 l 1,51,52
- 1049 1130 1049 1130 952 1130 c 0,53,54
- 720 1130 720 1130 719 766 c 2,55,-1
- 719 752 l 1,30,31
-1092 557 m 0,56,57
- 1092 780 1092 780 913 780 c 0,58,59
- 834 780 834 780 778 728 c 0,60,61
- 721 676 721 676 721 600 c 0,62,63
- 721 498 721 498 766 426 c 0,64,65
- 819 340 819 340 915 340 c 0,66,67
- 1092 340 1092 340 1092 557 c 0,56,57
-EndSplineSet
-EndChar
-StartChar: uni2786
-Encoding: 10118 10118 290
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-272 741 m 0,14,15
- 272 460 272 460 453 280 c 0,16,17
- 633 98 633 98 913 98 c 0,18,19
- 1200 98 1200 98 1376 276 c 0,20,21
- 1552 453 1552 453 1552 741 c 0,22,23
- 1552 1028 1552 1028 1375 1206 c 0,24,25
- 1198 1384 1198 1384 913 1384 c 0,26,27
- 630 1384 630 1384 452 1204 c 0,28,29
- 272 1024 272 1024 272 741 c 0,14,15
-684 233 m 1,30,31
- 719 435 719 435 852 664 c 0,32,33
- 877 706 877 706 1110 1053 c 1,34,-1
- 631 1053 l 1,35,-1
- 631 1167 l 1,36,-1
- 1229 1167 l 1,37,-1
- 1229 1053 l 1,38,39
- 876 538 876 538 827 233 c 1,40,-1
- 684 233 l 1,30,31
-EndSplineSet
-EndChar
-StartChar: uni2787
-Encoding: 10119 10119 291
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-272 741 m 0,14,15
- 272 460 272 460 453 280 c 0,16,17
- 633 98 633 98 913 98 c 0,18,19
- 1200 98 1200 98 1376 276 c 0,20,21
- 1552 453 1552 453 1552 741 c 0,22,23
- 1552 1028 1552 1028 1375 1206 c 0,24,25
- 1198 1384 1198 1384 913 1384 c 0,26,27
- 630 1384 630 1384 452 1204 c 0,28,29
- 272 1024 272 1024 272 741 c 0,14,15
-776 778 m 1,30,31
- 641 871 641 871 641 989 c 0,32,33
- 641 1099 641 1099 727 1167 c 0,34,35
- 806 1227 806 1227 922 1227 c 0,36,37
- 1023 1227 1023 1227 1096 1180 c 0,38,39
- 1180 1124 1180 1124 1180 1026 c 0,40,41
- 1180 889 1180 889 1006 778 c 1,42,43
- 1217 677 1217 677 1217 512 c 0,44,45
- 1217 386 1217 386 1118 313 c 0,46,47
- 1029 248 1029 248 901 248 c 0,48,49
- 773 248 773 248 688 309 c 0,50,51
- 592 380 592 380 592 502 c 0,52,53
- 592 669 592 669 776 778 c 1,30,31
-936 817 m 1,54,55
- 1067 903 1067 903 1067 1010 c 0,56,57
- 1067 1135 1067 1135 909 1135 c 0,58,59
- 849 1135 849 1135 805 1106 c 0,60,61
- 754 1072 754 1072 754 1014 c 0,62,63
- 754 918 754 918 936 817 c 1,54,55
-846 729 m 1,64,65
- 717 632 717 632 717 520 c 0,66,67
- 717 438 717 438 769 389 c 0,68,69
- 821 340 821 340 903 340 c 0,70,71
- 978 340 978 340 1033 382 c 0,72,73
- 1090 424 1090 424 1090 494 c 0,74,75
- 1090 562 1090 562 997 635 c 0,76,77
- 968 657 968 657 846 729 c 1,64,65
-EndSplineSet
-EndChar
-StartChar: uni2788
-Encoding: 10120 10120 292
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-272 741 m 0,14,15
- 272 460 272 460 453 280 c 0,16,17
- 633 98 633 98 913 98 c 0,18,19
- 1200 98 1200 98 1376 276 c 0,20,21
- 1552 453 1552 453 1552 741 c 0,22,23
- 1552 1028 1552 1028 1375 1206 c 0,24,25
- 1198 1384 1198 1384 913 1384 c 0,26,27
- 630 1384 630 1384 452 1204 c 0,28,29
- 272 1024 272 1024 272 741 c 0,14,15
-655 274 m 1,30,-1
- 655 381 l 1,31,32
- 769 338 769 338 858 338 c 0,33,34
- 1106 338 1106 338 1104 713 c 1,35,36
- 1011 596 1011 596 889 596 c 0,37,38
- 764 596 764 596 686 683 c 128,-1,39
- 608 770 608 770 608 895 c 0,40,41
- 608 1034 608 1034 692 1132 c 0,42,43
- 777 1229 777 1229 913 1229 c 0,44,45
- 1084 1229 1084 1229 1171 1077 c 0,46,47
- 1241 955 1241 955 1241 770 c 0,48,49
- 1241 556 1241 556 1153 414 c 0,50,51
- 1046 246 1046 246 846 246 c 0,52,53
- 774 246 774 246 655 274 c 1,30,-1
-731 915 m 0,54,55
- 731 686 731 686 911 686 c 0,56,57
- 987 686 987 686 1044 740 c 0,58,59
- 1102 795 1102 795 1102 870 c 0,60,61
- 1102 972 1102 972 1059 1049 c 0,62,63
- 1005 1135 1005 1135 907 1135 c 0,64,65
- 731 1135 731 1135 731 915 c 0,54,55
-EndSplineSet
-EndChar
-StartChar: uni2789
-Encoding: 10121 10121 293
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-272 741 m 0,14,15
- 272 460 272 460 453 280 c 0,16,17
- 633 98 633 98 913 98 c 0,18,19
- 1200 98 1200 98 1376 276 c 0,20,21
- 1552 453 1552 453 1552 741 c 0,22,23
- 1552 1028 1552 1028 1375 1206 c 0,24,25
- 1198 1384 1198 1384 913 1384 c 0,26,27
- 630 1384 630 1384 452 1204 c 0,28,29
- 272 1024 272 1024 272 741 c 0,14,15
-604 270 m 1,30,-1
- 604 1110 l 1,31,-1
- 506 1110 l 1,32,-1
- 506 1190 l 1,33,-1
- 729 1212 l 1,34,-1
- 729 270 l 1,35,-1
- 604 270 l 1,30,-1
-1110 246 m 0,36,37
- 957 246 957 246 885 426 c 0,38,39
- 834 555 834 555 834 735 c 128,-1,40
- 834 915 834 915 885 1044 c 0,41,42
- 957 1225 957 1225 1110 1225 c 0,43,44
- 1266 1225 1266 1225 1337 1047 c 0,45,46
- 1389 915 1389 915 1389 735 c 0,47,48
- 1389 556 1389 556 1337 424 c 0,49,50
- 1267 246 1267 246 1110 246 c 0,36,37
-1110 344 m 0,51,52
- 1255 344 1255 344 1255 741 c 0,53,54
- 1255 1135 1255 1135 1110 1135 c 128,-1,55
- 965 1135 965 1135 965 739 c 0,56,57
- 965 344 965 344 1110 344 c 0,51,52
-EndSplineSet
-EndChar
-StartChar: uni278A
-Encoding: 10122 10122 294
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1069 172 1069 380 1276 c 0,2,3
- 587 1483 587 1483 915 1483 c 0,4,5
- 1240 1483 1240 1483 1448 1275 c 0,6,7
- 1655 1066 1655 1066 1655 741 c 0,8,9
- 1655 413 1655 413 1450 207 c 0,10,11
- 1243 0 1243 0 915 0 c 0,12,13
- 590 0 590 0 381 209 c 0,14,15
- 172 416 172 416 172 741 c 0,0,1
-836 279 m 1,16,-1
- 1024 279 l 1,17,-1
- 1024 1223 l 1,18,-1
- 707 1194 l 1,19,-1
- 711 1102 l 1,20,-1
- 836 1102 l 1,21,-1
- 836 279 l 1,16,-1
-EndSplineSet
-EndChar
-StartChar: uni278B
-Encoding: 10123 10123 295
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-623 285 m 1,14,-1
- 1245 285 l 1,15,-1
- 1245 430 l 1,16,-1
- 834 430 l 1,17,18
- 860 525 860 525 971 618 c 2,19,-1
- 1157 774 l 2,20,21
- 1249 869 1249 869 1249 981 c 0,22,23
- 1249 1108 1249 1108 1145 1180 c 0,24,25
- 1056 1241 1056 1241 922 1241 c 0,26,27
- 789 1241 789 1241 647 1188 c 1,28,-1
- 647 1051 l 1,29,30
- 780 1118 780 1118 885 1118 c 0,31,32
- 1051 1118 1051 1118 1051 973 c 0,33,34
- 1051 871 1051 871 877 688 c 2,35,-1
- 623 430 l 1,36,-1
- 623 285 l 1,14,-1
-EndSplineSet
-EndChar
-StartChar: uni278C
-Encoding: 10124 10124 296
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-657 279 m 1,14,15
- 772 248 772 248 911 248 c 0,16,17
- 1058 248 1058 248 1153 309 c 0,18,19
- 1266 383 1266 383 1266 520 c 0,20,21
- 1266 721 1266 721 1030 772 c 1,22,23
- 1237 840 1237 840 1237 1008 c 0,24,25
- 1237 1233 1237 1233 932 1233 c 0,26,27
- 791 1233 791 1233 672 1190 c 1,28,-1
- 672 1061 l 1,29,30
- 793 1114 793 1114 889 1114 c 0,31,32
- 1047 1114 1047 1114 1047 987 c 0,33,34
- 1047 879 1047 879 940 840 c 0,35,36
- 877 819 877 819 743 819 c 1,37,-1
- 743 707 l 1,38,-1
- 764 707 l 2,39,40
- 901 707 901 707 967 680 c 0,41,42
- 1071 636 1071 636 1071 522 c 0,43,44
- 1071 365 1071 365 889 365 c 0,45,46
- 800 365 800 365 657 418 c 1,47,-1
- 657 279 l 1,14,15
-EndSplineSet
-EndChar
-StartChar: uni278D
-Encoding: 10125 10125 297
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-176 741 m 0,0,1
- 176 1068 176 1068 382 1276 c 0,2,3
- 588 1483 588 1483 915 1483 c 0,4,5
- 1240 1483 1240 1483 1448 1275 c 0,6,7
- 1655 1066 1655 1066 1655 741 c 0,8,9
- 1655 413 1655 413 1450 207 c 0,10,11
- 1243 0 1243 0 915 0 c 0,12,13
- 590 0 590 0 383 209 c 0,14,15
- 176 416 176 416 176 741 c 0,0,1
-934 279 m 1,16,-1
- 1096 279 l 1,17,-1
- 1096 526 l 1,18,-1
- 1204 526 l 1,19,-1
- 1204 666 l 1,20,-1
- 1096 666 l 1,21,-1
- 1096 1212 l 1,22,-1
- 926 1212 l 1,23,-1
- 498 666 l 1,24,-1
- 498 526 l 1,25,-1
- 934 526 l 1,26,-1
- 934 279 l 1,16,-1
-647 666 m 1,27,-1
- 936 1030 l 1,28,-1
- 936 666 l 1,29,-1
- 647 666 l 1,27,-1
-EndSplineSet
-EndChar
-StartChar: uni278E
-Encoding: 10126 10126 298
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-174 741 m 0,0,1
- 174 1071 174 1071 380 1277 c 128,-1,2
- 586 1483 586 1483 915 1483 c 0,3,4
- 1240 1483 1240 1483 1448 1275 c 0,5,6
- 1655 1066 1655 1066 1655 741 c 0,7,8
- 1655 413 1655 413 1450 207 c 0,9,10
- 1243 0 1243 0 915 0 c 0,11,12
- 586 0 586 0 380 206 c 128,-1,13
- 174 412 174 412 174 741 c 0,0,1
-657 274 m 1,14,15
- 789 248 789 248 860 248 c 0,16,17
- 1014 248 1014 248 1114 317 c 0,18,19
- 1229 395 1229 395 1229 543 c 0,20,21
- 1229 705 1229 705 1096 788 c 0,22,23
- 987 856 987 856 811 856 c 1,24,-1
- 811 1057 l 1,25,-1
- 1208 1057 l 1,26,-1
- 1208 1204 l 1,27,-1
- 674 1204 l 1,28,-1
- 674 735 l 1,29,30
- 709 743 709 743 762 743 c 0,31,32
- 872 743 872 743 944 696 c 0,33,34
- 1030 643 1030 643 1030 541 c 0,35,36
- 1030 367 1030 367 856 367 c 0,37,38
- 766 367 766 367 657 412 c 1,39,-1
- 657 274 l 1,14,15
-EndSplineSet
-EndChar
-StartChar: uni278F
-Encoding: 10127 10127 299
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-174 741 m 0,0,1
- 174 1071 174 1071 380 1277 c 128,-1,2
- 586 1483 586 1483 915 1483 c 0,3,4
- 1240 1483 1240 1483 1448 1275 c 0,5,6
- 1655 1066 1655 1066 1655 741 c 0,7,8
- 1655 413 1655 413 1450 207 c 0,9,10
- 1243 0 1243 0 915 0 c 0,11,12
- 586 0 586 0 380 206 c 128,-1,13
- 174 412 174 412 174 741 c 0,0,1
-743 768 m 1,14,-1
- 746 849 l 2,15,16
- 771 1114 771 1114 979 1114 c 0,17,18
- 1074 1114 1074 1114 1206 1061 c 1,19,-1
- 1206 1196 l 1,20,21
- 1088 1229 1088 1229 973 1229 c 0,22,23
- 756 1229 756 1229 645 1077 c 0,24,25
- 549 945 549 945 549 719 c 0,26,27
- 549 520 549 520 631 395 c 0,28,29
- 728 250 728 250 918 250 c 0,30,31
- 1064 250 1064 250 1159 343 c 0,32,33
- 1253 436 1253 436 1253 584 c 0,34,35
- 1253 708 1253 708 1171 791 c 0,36,37
- 1091 874 1091 874 967 874 c 0,38,39
- 830 874 830 874 743 768 c 1,14,-1
-1067 555 m 0,40,41
- 1067 365 1067 365 915 365 c 0,42,43
- 835 365 835 365 788 436 c 0,44,45
- 750 497 750 497 750 582 c 0,46,47
- 750 653 750 653 796 705 c 0,48,49
- 841 756 841 756 911 756 c 0,50,51
- 1067 756 1067 756 1067 555 c 0,40,41
-EndSplineSet
-EndChar
-StartChar: uni2790
-Encoding: 10128 10128 300
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-662 238 m 1,14,-1
- 868 238 l 1,15,16
- 874 538 874 538 1257 1020 c 1,17,-1
- 1257 1171 l 1,18,-1
- 623 1171 l 1,19,-1
- 623 1020 l 1,20,-1
- 1106 1020 l 1,21,22
- 854 678 854 678 838 651 c 0,23,24
- 692 424 692 424 662 238 c 1,14,-1
-EndSplineSet
-EndChar
-StartChar: uni2791
-Encoding: 10129 10129 301
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-758 770 m 1,14,15
- 572 663 572 663 571 500 c 0,16,17
- 571 376 571 376 682 305 c 0,18,19
- 776 248 776 248 909 248 c 0,20,21
- 1047 248 1047 248 1147 315 c 0,22,23
- 1260 392 1260 392 1260 522 c 0,24,25
- 1260 682 1260 682 1059 784 c 1,26,27
- 1217 894 1217 894 1217 1018 c 0,28,29
- 1217 1121 1217 1121 1122 1180 c 0,30,31
- 1042 1227 1042 1227 932 1227 c 0,32,33
- 808 1227 808 1227 723 1169 c 0,34,35
- 623 1102 623 1102 623 985 c 0,36,37
- 623 858 623 858 758 770 c 1,14,15
-963 838 m 1,38,39
- 782 929 782 929 782 1008 c 0,40,41
- 782 1110 782 1110 915 1110 c 0,42,43
- 1055 1110 1055 1110 1055 991 c 0,44,45
- 1055 908 1055 908 963 838 c 1,38,39
-850 709 m 1,46,47
- 1090 583 1090 583 1090 494 c 0,48,49
- 1090 433 1090 433 1040 397 c 0,50,51
- 991 362 991 362 928 362 c 0,52,53
- 855 362 855 362 801 411 c 0,54,55
- 748 458 748 458 748 530 c 0,56,57
- 748 625 748 625 850 709 c 1,46,47
-EndSplineSet
-EndChar
-StartChar: uni2792
-Encoding: 10130 10130 302
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-1094 707 m 1,14,15
- 1094 572 1094 572 1042 479 c 0,16,17
- 978 367 978 367 854 367 c 0,18,19
- 749 367 749 367 633 416 c 1,20,-1
- 633 281 l 1,21,22
- 766 248 766 248 856 248 c 0,23,24
- 1075 248 1075 248 1188 403 c 0,25,26
- 1288 539 1288 539 1288 766 c 0,27,28
- 1288 964 1288 964 1206 1085 c 0,29,30
- 1109 1227 1109 1227 922 1227 c 0,31,32
- 774 1227 774 1227 679 1134 c 0,33,34
- 584 1040 584 1040 584 895 c 0,35,36
- 584 772 584 772 668 686 c 0,37,38
- 752 600 752 600 874 600 c 0,39,40
- 1005 600 1005 600 1094 707 c 1,14,15
-770 924 m 0,41,42
- 770 1114 770 1114 922 1114 c 0,43,44
- 1006 1114 1006 1114 1051 1042 c 0,45,46
- 1087 980 1087 980 1087 893 c 0,47,48
- 1087 824 1087 824 1041 770 c 0,49,50
- 996 717 996 717 926 717 c 0,51,52
- 770 717 770 717 770 924 c 0,41,42
-EndSplineSet
-EndChar
-StartChar: uni2793
-Encoding: 10131 10131 303
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-524 279 m 1,14,-1
- 711 279 l 1,15,-1
- 711 1223 l 1,16,-1
- 395 1194 l 1,17,-1
- 399 1102 l 1,18,-1
- 524 1102 l 1,19,-1
- 524 279 l 1,14,-1
-1153 254 m 0,20,21
- 1315 254 1315 254 1399 424 c 0,22,23
- 1466 558 1466 558 1466 739 c 0,24,25
- 1466 921 1466 921 1399 1055 c 0,26,27
- 1315 1229 1315 1229 1153 1229 c 128,-1,28
- 991 1229 991 1229 907 1055 c 0,29,30
- 840 921 840 921 840 739 c 0,31,32
- 840 558 840 558 907 424 c 0,33,34
- 991 254 991 254 1153 254 c 0,20,21
-1153 371 m 0,35,36
- 1030 371 1030 371 1030 739 c 0,37,38
- 1030 1110 1030 1110 1153 1110 c 0,39,40
- 1278 1110 1278 1110 1278 739 c 0,41,42
- 1278 371 1278 371 1153 371 c 0,35,36
-EndSplineSet
-EndChar
-StartChar: uni2794
-Encoding: 10132 10132 304
-Width: 2187
-GlyphClass: 2
-Flags: W
-Fore
-2015 739 m 1,0,-1
- 1276 0 l 1,1,-1
- 717 0 l 1,2,-1
- 1260 543 l 1,3,-1
- 174 543 l 1,4,-1
- 174 936 l 1,5,-1
- 1260 936 l 1,6,-1
- 717 1481 l 1,7,-1
- 1274 1481 l 1,8,-1
- 2015 739 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni2798
-Encoding: 10136 10136 305
-Width: 1531
-GlyphClass: 2
-Flags: W
-Fore
-469 147 m 1,0,-1
- 465 160 l 1,1,2
- 607 216 607 216 754 309 c 1,3,4
- 450 520 450 520 217 956 c 1,5,-1
- 451 1143 l 1,6,7
- 699 716 699 716 954 524 c 1,8,9
- 1006 673 1006 673 1036 854 c 1,10,-1
- 1047 856 l 1,11,-1
- 1380 39 l 1,12,-1
- 469 147 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni279A
-Encoding: 10138 10138 306
-Width: 1531
-GlyphClass: 2
-Flags: W
-Fore
-1237 262 m 1,0,-1
- 1227 260 l 1,1,2
- 1156 400 1156 400 1051 535 c 1,3,4
- 867 214 867 214 455 -57 c 1,5,-1
- 248 160 l 1,6,7
- 654 449 654 449 819 717 c 1,8,9
- 663 753 663 753 483 768 c 1,10,-1
- 481 776 l 1,11,-1
- 1268 1182 l 1,12,-1
- 1237 262 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni27A2
-Encoding: 10146 10146 307
-Width: 1630
-GlyphClass: 2
-Flags: W
-Fore
-174 0 m 1,0,-1
- 602 739 l 1,1,-1
- 174 1481 l 1,2,-1
- 1456 739 l 1,3,-1
- 174 0 l 1,0,-1
-1358 739 m 1,4,-1
- 309 1346 l 1,5,-1
- 659 739 l 1,6,-1
- 1358 739 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uni27B2
-Encoding: 10162 10162 308
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-1110 492 m 1,0,-1
- 1110 248 l 1,1,-1
- 1604 741 l 1,2,-1
- 1110 1235 l 1,3,-1
- 1110 991 l 1,4,-1
- 215 991 l 1,5,6
- 297 1214 297 1214 486 1349 c 0,7,8
- 677 1483 677 1483 913 1483 c 0,9,10
- 1238 1483 1238 1483 1446 1275 c 0,11,12
- 1653 1066 1653 1066 1653 741 c 0,13,14
- 1653 414 1653 414 1446 207 c 0,15,16
- 1240 0 1240 0 913 0 c 0,17,18
- 673 0 673 0 485 133 c 0,19,20
- 297 267 297 267 215 492 c 1,21,-1
- 1110 492 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni27B8
-Encoding: 10168 10168 309
-Width: 1980
-GlyphClass: 2
-Flags: W
-Fore
-1815 735 m 1,0,-1
- 1815 686 l 1,1,2
- 1496 512 1496 512 1360 340 c 1,3,-1
- 1346 340 l 1,4,5
- 1339 378 1339 378 1339 418 c 0,6,7
- 1339 472 1339 472 1386 545 c 2,8,-1
- 1473 655 l 1,9,-1
- 756 649 l 1,10,11
- 642 581 642 581 545 414 c 1,12,-1
- 117 414 l 1,13,14
- 141 491 141 491 223 575 c 2,15,-1
- 369 707 l 1,16,17
- 249 810 249 810 223 836 c 0,18,19
- 142 917 142 917 117 997 c 1,20,-1
- 545 997 l 1,21,22
- 642 830 642 830 756 762 c 1,23,-1
- 1473 768 l 1,24,25
- 1339 938 1339 938 1339 995 c 0,26,27
- 1339 1035 1339 1035 1346 1071 c 1,28,-1
- 1360 1071 l 1,29,30
- 1546 830 1546 830 1815 735 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uni301A
-Encoding: 12314 12314 310
-Width: 770
-GlyphClass: 2
-Flags: W
-Fore
-369 1581 m 1,0,-1
- 248 1581 l 1,1,-1
- 248 -360 l 1,2,-1
- 369 -360 l 1,3,-1
- 369 1581 l 1,0,-1
-150 -403 m 1,4,-1
- 150 1622 l 1,5,-1
- 647 1622 l 1,6,-1
- 647 1581 l 1,7,-1
- 440 1581 l 1,8,-1
- 440 -360 l 1,9,-1
- 647 -360 l 1,10,-1
- 647 -403 l 1,11,-1
- 150 -403 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uni301B
-Encoding: 12315 12315 311
-Width: 770
-GlyphClass: 2
-Flags: W
-Fore
-408 1581 m 1,0,-1
- 408 -360 l 1,1,-1
- 549 -360 l 1,2,-1
- 549 1581 l 1,3,-1
- 408 1581 l 1,0,-1
-647 -403 m 1,4,-1
- 150 -403 l 1,5,-1
- 150 -360 l 1,6,-1
- 336 -360 l 1,7,-1
- 336 1581 l 1,8,-1
- 150 1581 l 1,9,-1
- 150 1622 l 1,10,-1
- 647 1622 l 1,11,-1
- 647 -403 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE001
-Encoding: 57345 57345 312
-Width: 942
-GlyphClass: 2
-Flags: W
-Fore
-174 739 m 1,0,-1
- 469 1159 l 1,1,-1
- 766 739 l 1,2,-1
- 469 322 l 1,3,-1
- 174 739 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE002
-Encoding: 57346 57346 313
-Width: 1531
-GlyphClass: 2
-Flags: W
-Fore
-174 739 m 1,0,-1
- 766 1579 l 1,1,-1
- 1358 739 l 1,2,-1
- 766 -96 l 1,3,-1
- 174 739 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE003
-Encoding: 57347 57347 314
-Width: 2023
-GlyphClass: 2
-Flags: W
-Fore
-172 739 m 1,0,-1
- 1010 1579 l 1,1,-1
- 1847 739 l 1,2,-1
- 1010 -96 l 1,3,-1
- 172 739 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE004
-Encoding: 57348 57348 315
-Width: 1187
-GlyphClass: 2
-Flags: W
-Fore
-172 739 m 1,0,-1
- 592 1159 l 1,1,-1
- 1010 739 l 1,2,-1
- 592 322 l 1,3,-1
- 172 739 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE005
-Encoding: 57349 57349 316
-Width: 1949
-GlyphClass: 2
-Flags: W
-Fore
-174 698 m 0,0,1
- 174 983 174 983 365 1169 c 0,2,3
- 517 1320 517 1320 817 1430 c 0,4,5
- 964 1483 964 1483 1083 1483 c 0,6,7
- 1392 1483 1392 1483 1586 1289 c 128,-1,8
- 1780 1095 1780 1095 1780 786 c 0,9,10
- 1780 501 1780 501 1589 313 c 0,11,12
- 1439 163 1439 163 1135 53 c 0,13,14
- 985 0 985 0 870 0 c 0,15,16
- 562 0 562 0 368 195 c 0,17,18
- 174 389 174 389 174 698 c 0,0,1
-868 92 m 0,19,20
- 1134 92 1134 92 1304 260 c 0,21,22
- 1473 429 1473 429 1473 694 c 0,23,24
- 1473 965 1473 965 1307 1133 c 0,25,26
- 1140 1298 1140 1298 868 1298 c 0,27,28
- 606 1298 606 1298 436 1132 c 0,29,30
- 266 964 266 964 266 702 c 0,31,32
- 266 431 266 431 430 262 c 0,33,34
- 597 92 597 92 868 92 c 0,19,20
-EndSplineSet
-EndChar
-StartChar: uniE006
-Encoding: 57350 57350 317
-Width: 2007
-GlyphClass: 2
-Flags: W
-Fore
-1835 739 m 1,0,-1
- 1096 0 l 1,1,-1
- 815 0 l 1,2,-1
- 1456 641 l 1,3,-1
- 174 641 l 1,4,-1
- 174 840 l 1,5,-1
- 1456 840 l 1,6,-1
- 815 1481 l 1,7,-1
- 1094 1481 l 1,8,-1
- 1835 739 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE007
-Encoding: 57351 57351 318
-Width: 1196
-GlyphClass: 2
-Flags: W
-Fore
-274 -41 m 0,0,1
- 166 -41 166 -41 100 98 c 0,2,3
- 49 209 49 209 49 334 c 0,4,5
- 49 398 49 398 100 432 c 0,6,7
- 152 467 152 467 217 467 c 0,8,9
- 240 467 240 467 256 453 c 1,10,11
- 281 387 281 387 336 274 c 1,12,-1
- 594 668 l 2,13,14
- 751 906 751 906 823 981 c 0,15,16
- 978 1141 978 1141 1159 1141 c 1,17,-1
- 1171 1087 l 1,18,19
- 784 630 784 630 502 158 c 0,20,21
- 403 -9 403 -9 338 -31 c 0,22,23
- 311 -41 311 -41 274 -41 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uniE008
-Encoding: 57352 57352 319
-Width: 1548
-GlyphClass: 2
-Flags: W
-Fore
-786 1473 m 0,0,1
- 1090 1473 1090 1473 1283 1280 c 0,2,3
- 1475 1088 1475 1088 1475 782 c 0,4,5
- 1475 476 1475 476 1283 286 c 0,6,7
- 1091 94 1091 94 786 94 c 0,8,9
- 483 94 483 94 290 287 c 0,10,11
- 96 479 96 479 96 782 c 0,12,13
- 96 1089 96 1089 288 1281 c 0,14,15
- 478 1473 478 1473 786 1473 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uniE009
-Encoding: 57353 57353 320
-Width: 1302
-GlyphClass: 2
-Flags: W
-Fore
-559 1061 m 0,0,1
- 342 1061 342 1061 205 924 c 128,-1,2
- 68 787 68 787 68 569 c 0,3,4
- 68 371 68 371 182 209 c 0,5,6
- 307 33 307 33 500 33 c 0,7,8
- 1087 33 1087 33 1087 535 c 0,9,10
- 1087 772 1087 772 942 916 c 0,11,12
- 797 1061 797 1061 559 1061 c 0,0,1
-637 -41 m 0,13,14
- 364 -41 364 -41 188 113 c 0,15,16
- 2 275 2 275 2 543 c 0,17,18
- 2 821 2 821 199 979 c 0,19,20
- 378 1124 378 1124 664 1124 c 0,21,22
- 936 1124 936 1124 1112 971 c 0,23,24
- 1298 810 1298 810 1298 543 c 0,25,26
- 1298 268 1298 268 1100 109 c 0,27,28
- 917 -41 917 -41 637 -41 c 0,13,14
-EndSplineSet
-EndChar
-StartChar: uniE00A
-Encoding: 57354 57354 321
-Width: 1146
-GlyphClass: 2
-Flags: W
-Fore
-8 1128 m 1,0,-1
- 1137 1128 l 1,1,-1
- 1137 0 l 1,2,-1
- 8 0 l 1,3,-1
- 8 1128 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE00B
-Encoding: 57355 57355 322
-Width: 1130
-GlyphClass: 2
-Flags: W
-Fore
-55 49 m 1,0,-1
- 915 49 l 1,1,-1
- 915 928 l 1,2,-1
- 55 928 l 1,3,-1
- 55 49 l 1,0,-1
-1120 1114 m 1,4,-1
- 1120 188 l 1,5,-1
- 944 0 l 1,6,-1
- 4 0 l 1,7,-1
- 4 934 l 1,8,-1
- 193 1114 l 1,9,-1
- 1120 1114 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE00C
-Encoding: 57356 57356 323
-Width: 1179
-GlyphClass: 2
-Flags: W
-Fore
-580 1141 m 1,0,-1
- 1163 571 l 1,1,-1
- 580 0 l 1,2,-1
- -4 571 l 1,3,-1
- 580 1141 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE00D
-Encoding: 57357 57357 324
-Width: 1179
-GlyphClass: 2
-Flags: W
-Fore
-899 801 m 1,0,-1
- 1163 555 l 1,1,-1
- 899 315 l 1,2,-1
- 643 555 l 1,3,-1
- 899 801 l 1,0,-1
-580 479 m 1,4,-1
- 819 240 l 1,5,-1
- 580 -25 l 1,6,-1
- 340 240 l 1,7,-1
- 580 479 l 1,4,-1
-504 555 m 1,8,-1
- 252 315 l 1,9,-1
- -4 567 l 1,10,-1
- 252 801 l 1,11,-1
- 504 555 l 1,8,-1
-580 1128 m 1,12,-1
- 819 872 l 1,13,-1
- 580 643 l 1,14,-1
- 340 872 l 1,15,-1
- 580 1128 l 1,12,-1
-EndSplineSet
-EndChar
-StartChar: uniE00E
-Encoding: 57358 57358 325
-Width: 868
-GlyphClass: 2
-Flags: W
-Fore
-4 555 m 1,0,-1
- 420 1128 l 1,1,2
- 646 812 646 812 852 555 c 1,3,4
- 661 328 661 328 420 -37 c 1,5,6
- 328 125 328 125 4 555 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE00F
-Encoding: 57359 57359 326
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-174 741 m 0,0,1
- 174 1073 174 1073 379 1278 c 128,-1,2
- 584 1483 584 1483 915 1483 c 0,3,4
- 1244 1483 1244 1483 1449 1276 c 0,5,6
- 1655 1068 1655 1068 1655 741 c 0,7,8
- 1655 411 1655 411 1450 205 c 0,9,10
- 1245 0 1245 0 915 0 c 0,11,12
- 583 0 583 0 379 205 c 0,13,14
- 174 409 174 409 174 741 c 0,0,1
-557 739 m 0,15,16
- 557 541 557 541 637 410 c 0,17,18
- 732 252 732 252 918 252 c 0,19,20
- 1103 252 1103 252 1198 410 c 0,21,22
- 1278 541 1278 541 1278 739 c 0,23,24
- 1278 935 1278 935 1198 1069 c 0,25,26
- 1102 1231 1102 1231 918 1231 c 0,27,28
- 733 1231 733 1231 637 1069 c 0,29,30
- 557 935 557 935 557 739 c 0,15,16
-750 739 m 0,31,32
- 750 1112 750 1112 913 1112 c 0,33,34
- 1077 1112 1077 1112 1077 754 c 0,35,36
- 1077 367 1077 367 913 367 c 0,37,38
- 750 367 750 367 750 739 c 0,31,32
-EndSplineSet
-EndChar
-StartChar: uniE010
-Encoding: 57360 57360 327
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1073 172 1073 377 1278 c 128,-1,2
- 582 1483 582 1483 913 1483 c 0,3,4
- 1242 1483 1242 1483 1447 1276 c 0,5,6
- 1653 1068 1653 1068 1653 741 c 0,7,8
- 1653 413 1653 413 1448 205 c 0,9,10
- 1243 0 1243 0 913 0 c 0,11,12
- 581 0 581 0 377 205 c 0,13,14
- 172 409 172 409 172 741 c 0,0,1
-272 741 m 0,15,16
- 272 459 272 459 452 279 c 0,17,18
- 630 98 630 98 913 98 c 0,19,20
- 1202 98 1202 98 1377 276 c 0,21,22
- 1552 454 1552 454 1552 741 c 0,23,24
- 1552 1029 1552 1029 1376 1206 c 0,25,26
- 1201 1384 1201 1384 913 1384 c 0,27,28
- 627 1384 627 1384 451 1205 c 0,29,30
- 272 1026 272 1026 272 741 c 0,15,16
-913 258 m 0,31,32
- 746 258 746 258 657 428 c 0,33,34
- 588 562 588 562 588 748 c 0,35,36
- 588 934 588 934 657 1067 c 0,37,38
- 746 1237 746 1237 913 1237 c 0,39,40
- 1086 1237 1086 1237 1171 1069 c 0,41,42
- 1239 940 1239 940 1239 748 c 0,43,44
- 1239 555 1239 555 1171 426 c 0,45,46
- 1086 258 1086 258 913 258 c 0,31,32
-913 346 m 0,47,48
- 1108 346 1108 346 1108 743 c 0,49,50
- 1108 1139 1108 1139 913 1139 c 0,51,52
- 719 1139 719 1139 719 743 c 0,53,54
- 719 346 719 346 913 346 c 0,47,48
-EndSplineSet
-EndChar
-StartChar: uniE011
-Encoding: 57361 57361 328
-Width: 2179
-GlyphClass: 2
-Flags: W
-Fore
-1976 1427 m 1,0,1
- 2075 1409 2075 1409 2075 1311 c 2,2,-1
- 2075 0 l 2,3,4
- 2075 -47 2075 -47 2040 -80 c 0,5,6
- 2006 -113 2006 -113 1958 -113 c 2,7,-1
- 371 -113 l 2,8,9
- 266 -113 266 -113 254 -12 c 1,10,11
- 154 0 154 0 154 102 c 2,12,-1
- 154 1411 l 2,13,14
- 154 1530 154 1530 272 1530 c 2,15,-1
- 1860 1530 l 2,16,17
- 1960 1530 1960 1530 1976 1427 c 1,0,1
-397 1350 m 2,18,19
- 338 1350 338 1350 338 1292 c 2,20,-1
- 338 221 l 2,21,22
- 338 164 338 164 397 164 c 2,23,-1
- 1735 164 l 2,24,25
- 1792 164 1792 164 1792 221 c 2,26,-1
- 1792 1292 l 2,27,28
- 1792 1350 1792 1350 1735 1350 c 2,29,-1
- 397 1350 l 2,18,19
-1565 1163 m 1,30,-1
- 1565 1069 l 1,31,-1
- 567 1069 l 1,32,-1
- 567 1163 l 1,33,-1
- 1565 1163 l 1,30,-1
-1552 1004 m 1,34,-1
- 1552 909 l 1,35,-1
- 555 909 l 1,36,-1
- 555 1004 l 1,37,-1
- 1552 1004 l 1,34,-1
-1559 834 m 1,38,-1
- 1559 739 l 1,39,-1
- 561 739 l 1,40,-1
- 561 834 l 1,41,-1
- 1559 834 l 1,38,-1
-1151 676 m 1,42,-1
- 1151 582 l 1,43,-1
- 555 582 l 1,44,-1
- 555 676 l 1,45,-1
- 1151 676 l 1,42,-1
-EndSplineSet
-EndChar
-StartChar: uniE012
-Encoding: 57362 57362 329
-Width: 2195
-GlyphClass: 2
-Flags: W
-Fore
-1530 1464 m 1,0,-1
- 1530 197 l 1,1,-1
- 2030 197 l 1,2,-1
- 2030 1464 l 1,3,-1
- 1530 1464 l 1,0,-1
-313 1540 m 1,4,-1
- 313 1827 l 1,5,-1
- 1288 1827 l 1,6,-1
- 1288 1540 l 1,7,-1
- 2097 1540 l 1,8,-1
- 2097 80 l 1,9,-1
- 92 80 l 1,10,-1
- 92 1540 l 1,11,-1
- 313 1540 l 1,4,-1
-1243 1147 m 1,12,-1
- 1243 1782 l 1,13,-1
- 348 1782 l 1,14,-1
- 348 1147 l 1,15,-1
- 1243 1147 l 1,12,-1
-217 1030 m 1,16,-1
- 217 883 l 1,17,-1
- 371 883 l 1,18,-1
- 371 1030 l 1,19,-1
- 217 1030 l 1,16,-1
-1108 1024 m 1,20,-1
- 1108 362 l 1,21,-1
- 1235 362 l 1,22,-1
- 1235 1024 l 1,23,-1
- 1108 1024 l 1,20,-1
-1589 1401 m 1,24,-1
- 1974 1401 l 1,25,-1
- 1974 250 l 1,26,-1
- 1589 250 l 1,27,-1
- 1589 1401 l 1,24,-1
-770 1030 m 1,28,-1
- 770 883 l 1,29,-1
- 924 883 l 1,30,-1
- 924 1030 l 1,31,-1
- 770 1030 l 1,28,-1
-504 1030 m 1,32,-1
- 504 883 l 1,33,-1
- 657 883 l 1,34,-1
- 657 1030 l 1,35,-1
- 504 1030 l 1,32,-1
-217 764 m 1,36,-1
- 217 616 l 1,37,-1
- 371 616 l 1,38,-1
- 371 764 l 1,39,-1
- 217 764 l 1,36,-1
-770 764 m 1,40,-1
- 770 616 l 1,41,-1
- 924 616 l 1,42,-1
- 924 764 l 1,43,-1
- 770 764 l 1,40,-1
-504 764 m 1,44,-1
- 504 616 l 1,45,-1
- 657 616 l 1,46,-1
- 657 764 l 1,47,-1
- 504 764 l 1,44,-1
-217 498 m 1,48,-1
- 217 350 l 1,49,-1
- 371 350 l 1,50,-1
- 371 498 l 1,51,-1
- 217 498 l 1,48,-1
-770 498 m 1,52,-1
- 770 350 l 1,53,-1
- 924 350 l 1,54,-1
- 924 498 l 1,55,-1
- 770 498 l 1,52,-1
-504 498 m 1,56,-1
- 504 350 l 1,57,-1
- 657 350 l 1,58,-1
- 657 498 l 1,59,-1
- 504 498 l 1,56,-1
-EndSplineSet
-EndChar
-StartChar: uniE013
-Encoding: 57363 57363 330
-Width: 1716
-GlyphClass: 2
-Flags: W
-Fore
-1540 727 m 0,0,1
- 1540 430 1540 430 1348 238 c 0,2,3
- 1155 45 1155 45 858 45 c 0,4,5
- 558 45 558 45 368 237 c 0,6,7
- 176 428 176 428 176 727 c 0,8,9
- 176 1026 176 1026 368 1218 c 0,10,11
- 559 1409 559 1409 858 1409 c 0,12,13
- 1154 1409 1154 1409 1348 1217 c 0,14,15
- 1540 1024 1540 1024 1540 727 c 0,0,1
-995 1108 m 1,16,-1
- 860 1386 l 1,17,-1
- 721 1108 l 1,18,19
- 776 1135 776 1135 858 1135 c 0,20,21
- 936 1135 936 1135 995 1108 c 1,16,-1
-1327 1194 m 1,22,-1
- 1030 1100 l 1,23,24
- 1176 1020 1176 1020 1227 901 c 1,25,-1
- 1327 1194 l 1,22,-1
-684 1100 m 1,26,-1
- 389 1196 l 1,27,-1
- 489 901 l 1,28,29
- 543 1022 543 1022 684 1100 c 1,26,-1
-1516 725 m 1,30,-1
- 1241 864 l 1,31,32
- 1264 800 1264 800 1264 727 c 0,33,34
- 1264 655 1264 655 1241 590 c 1,35,-1
- 1516 725 l 1,30,-1
-475 590 m 1,36,37
- 449 643 449 643 449 727 c 128,-1,38
- 449 811 449 811 475 864 c 1,39,-1
- 199 729 l 1,40,-1
- 475 590 l 1,36,37
-684 354 m 1,41,42
- 551 424 551 424 485 557 c 1,43,-1
- 387 260 l 1,44,-1
- 684 354 l 1,41,42
-1323 256 m 1,45,-1
- 1227 553 l 1,46,47
- 1163 418 1163 418 1030 360 c 1,48,-1
- 1323 256 l 1,45,-1
-995 342 m 1,49,50
- 915 319 915 319 858 319 c 128,-1,51
- 801 319 801 319 721 342 c 1,52,-1
- 856 68 l 1,53,-1
- 995 342 l 1,49,50
-666 739 m 0,54,55
- 666 666 666 666 722 617 c 0,56,57
- 778 569 778 569 854 569 c 0,58,59
- 927 569 927 569 984 618 c 0,60,61
- 1040 667 1040 667 1040 739 c 0,62,63
- 1040 813 1040 813 985 861 c 0,64,65
- 930 909 930 909 854 909 c 0,66,67
- 778 909 778 909 722 861 c 0,68,69
- 666 814 666 814 666 739 c 0,54,55
-EndSplineSet
-EndChar
-StartChar: uniE016
-Encoding: 57366 57366 331
-Width: 1540
-GlyphClass: 2
-Flags: W
-Fore
-1348 129 m 2,0,1
- 1348 106 1348 106 1325 106 c 2,2,-1
- 199 106 l 2,3,4
- 176 106 176 106 176 129 c 2,5,-1
- 176 1255 l 2,6,7
- 176 1278 176 1278 199 1278 c 2,8,-1
- 1325 1278 l 2,9,10
- 1348 1278 1348 1278 1348 1255 c 2,11,-1
- 1348 129 l 2,0,1
-1292 162 m 1,12,-1
- 1292 1223 l 1,13,-1
- 1157 1223 l 1,14,-1
- 1157 659 l 2,15,16
- 1157 637 1157 637 1135 637 c 2,17,-1
- 375 645 l 1,18,-1
- 367 659 l 1,19,-1
- 367 1223 l 1,20,-1
- 233 1223 l 1,21,-1
- 233 162 l 1,22,-1
- 457 162 l 1,23,-1
- 457 457 l 1,24,-1
- 1073 457 l 1,25,-1
- 1073 162 l 1,26,-1
- 1292 162 l 1,12,-1
-610 162 m 1,27,-1
- 610 403 l 1,28,-1
- 514 403 l 1,29,-1
- 514 162 l 1,30,-1
- 610 162 l 1,27,-1
-444 1157 m 1,31,-1
- 444 1098 l 1,32,-1
- 1085 1098 l 1,33,-1
- 1085 1157 l 1,34,-1
- 444 1157 l 1,31,-1
-444 1030 m 1,35,-1
- 444 971 l 1,36,-1
- 1085 971 l 1,37,-1
- 1085 1030 l 1,38,-1
- 444 1030 l 1,35,-1
-EndSplineSet
-EndChar
-StartChar: uniE018
-Encoding: 57368 57368 332
-Width: 1916
-GlyphClass: 2
-Flags: W
-Fore
-1726 -125 m 1,0,-1
- 182 -125 l 1,1,-1
- 182 317 l 1,2,-1
- 309 319 l 1,3,-1
- 309 395 l 1,4,-1
- 242 397 l 1,5,-1
- 242 1518 l 1,6,-1
- 1667 1518 l 1,7,-1
- 1667 397 l 1,8,-1
- 1597 395 l 1,9,-1
- 1597 319 l 1,10,-1
- 1726 317 l 1,11,-1
- 1726 -125 l 1,0,-1
-1614 451 m 1,12,-1
- 1614 1464 l 1,13,-1
- 295 1464 l 1,14,-1
- 295 451 l 1,15,-1
- 1614 451 l 1,12,-1
-1542 319 m 1,16,-1
- 1542 395 l 1,17,-1
- 365 395 l 1,18,-1
- 365 319 l 1,19,-1
- 1542 319 l 1,16,-1
-1673 -72 m 1,20,-1
- 1673 264 l 1,21,-1
- 236 264 l 1,22,-1
- 236 -72 l 1,23,-1
- 1673 -72 l 1,20,-1
-1501 961 m 0,24,25
- 1501 807 1501 807 1477 561 c 1,26,-1
- 432 561 l 1,27,28
- 408 807 408 807 408 961 c 0,29,30
- 408 1116 408 1116 432 1358 c 1,31,-1
- 1477 1358 l 1,32,33
- 1501 1112 1501 1112 1501 961 c 0,24,25
-1446 961 m 0,34,35
- 1446 1167 1446 1167 1425 1305 c 1,36,-1
- 483 1305 l 1,37,38
- 463 1163 463 1163 463 961 c 0,39,40
- 463 756 463 756 483 614 c 1,41,-1
- 1425 614 l 1,42,43
- 1446 752 1446 752 1446 961 c 0,34,35
-1393 139 m 1,44,45
- 1412 154 1412 154 1454 154 c 0,46,47
- 1494 154 1494 154 1513 139 c 1,48,-1
- 1597 139 l 1,49,-1
- 1597 88 l 1,50,-1
- 1513 88 l 1,51,52
- 1493 74 1493 74 1454 74 c 0,53,54
- 1413 74 1413 74 1393 88 c 1,55,-1
- 1282 88 l 1,56,-1
- 1282 139 l 1,57,-1
- 1393 139 l 1,44,45
-367 143 m 1,58,-1
- 915 143 l 1,59,-1
- 915 43 l 1,60,-1
- 367 43 l 1,61,-1
- 367 143 l 1,58,-1
-401 117 m 1,62,-1
- 391 106 l 1,63,-1
- 401 96 l 1,64,-1
- 893 96 l 1,65,-1
- 903 106 l 1,66,-1
- 893 117 l 1,67,-1
- 401 117 l 1,62,-1
-1004 850 m 1,68,-1
- 999 829 l 1,69,-1
- 993 829 l 1,70,-1
- 997 850 l 1,71,-1
- 1004 850 l 1,68,-1
-1004 807 m 1,72,-1
- 993 788 l 1,73,-1
- 987 729 l 2,74,75
- 981 684 981 684 940 684 c 0,76,77
- 894 684 894 684 883 801 c 1,78,-1
- 901 805 l 1,79,-1
- 905 825 l 1,80,-1
- 983 825 l 1,81,-1
- 985 809 l 1,82,-1
- 1004 825 l 1,83,-1
- 1004 807 l 1,72,-1
-1130 1073 m 1,84,-1
- 1067 1008 l 1,85,-1
- 1044 1049 l 1,86,-1
- 1130 1073 l 1,84,-1
-961 1100 m 1,87,-1
- 913 1100 l 1,88,-1
- 940 1253 l 1,89,-1
- 961 1100 l 1,87,-1
-1032 1126 m 1,90,-1
- 1028 1067 l 1,91,-1
- 989 1094 l 1,92,-1
- 1032 1126 l 1,90,-1
-1188 963 m 1,93,-1
- 1069 936 l 1,94,-1
- 1069 985 l 1,95,-1
- 1087 985 l 2,96,97
- 1140 985 1140 985 1188 963 c 1,93,-1
-1026 1038 m 1,98,99
- 1010 1054 1010 1054 969 1069 c 1,100,-1
- 973 1079 l 1,101,102
- 992 1066 992 1066 1026 1038 c 1,98,99
-1036 1020 m 1,103,-1
- 1032 1016 l 1,104,-1
- 1022 1028 l 1,105,-1
- 1026 1032 l 1,106,-1
- 1036 1020 l 1,103,-1
-1044 983 m 1,107,-1
- 1040 983 l 1,108,-1
- 1036 1010 l 1,109,-1
- 1042 1010 l 1,110,-1
- 1044 983 l 1,107,-1
-965 1073 m 1,111,-1
- 944 1073 l 1,112,-1
- 944 1077 l 1,113,-1
- 965 1077 l 1,114,-1
- 965 1073 l 1,111,-1
-1042 942 m 1,115,-1
- 1036 942 l 1,116,-1
- 1036 975 l 1,117,-1
- 1042 975 l 1,118,-1
- 1042 942 l 1,115,-1
-940 1079 m 1,119,-1
- 907 1069 l 1,120,-1
- 911 1079 l 1,121,-1
- 940 1079 l 1,119,-1
-897 1094 m 1,122,123
- 884 1083 884 1083 860 1071 c 1,124,-1
- 850 1139 l 1,125,-1
- 897 1094 l 1,122,123
-1090 883 m 1,126,-1
- 1042 891 l 1,127,-1
- 1061 918 l 1,128,-1
- 1090 883 l 1,126,-1
-895 1065 m 1,129,-1
- 874 1051 l 1,130,-1
- 872 1055 l 1,131,-1
- 891 1069 l 1,132,-1
- 895 1065 l 1,129,-1
-1032 913 m 1,133,-1
- 1018 887 l 1,134,-1
- 1014 889 l 1,135,-1
- 1028 915 l 1,136,-1
- 1032 913 l 1,133,-1
-874 1047 m 1,137,-1
- 858 1036 l 1,138,-1
- 856 1040 l 1,139,-1
- 870 1051 l 1,140,-1
- 874 1047 l 1,137,-1
-995 952 m 1,141,-1
- 963 948 l 1,142,-1
- 944 958 l 1,143,144
- 921 948 921 948 895 948 c 1,145,146
- 901 973 901 973 940 973 c 2,147,-1
- 956 973 l 1,148,-1
- 989 967 l 1,149,-1
- 995 952 l 1,141,-1
-1016 881 m 1,150,-1
- 1001 854 l 1,151,-1
- 997 856 l 1,152,-1
- 1010 881 l 1,153,-1
- 1016 881 l 1,150,-1
-860 1030 m 1,154,-1
- 844 1004 l 1,155,-1
- 840 1006 l 1,156,-1
- 854 1032 l 1,157,-1
- 860 1030 l 1,154,-1
-932 928 m 1,158,-1
- 928 928 l 1,159,-1
- 924 942 l 1,160,-1
- 930 942 l 1,161,-1
- 932 928 l 1,158,-1
-956 911 m 1,162,-1
- 954 895 l 1,163,-1
- 948 895 l 1,164,-1
- 952 911 l 1,165,-1
- 956 911 l 1,162,-1
-840 1047 m 1,166,167
- 830 1023 830 1023 817 1008 c 1,168,-1
- 715 1106 l 1,169,-1
- 840 1047 l 1,166,167
-987 946 m 1,170,-1
- 956 856 l 1,171,-1
- 983 831 l 1,172,-1
- 936 842 l 1,173,-1
- 932 831 l 1,174,-1
- 907 831 l 1,175,-1
- 932 854 l 1,176,-1
- 907 942 l 1,177,178
- 913 921 913 921 936 885 c 1,179,-1
- 936 903 l 1,180,-1
- 946 881 l 1,181,-1
- 946 891 l 1,182,-1
- 961 885 l 1,183,184
- 968 910 968 910 987 946 c 1,170,-1
-842 969 m 1,185,-1
- 836 969 l 1,186,-1
- 834 999 l 1,187,-1
- 838 999 l 1,188,-1
- 842 969 l 1,185,-1
-842 946 m 1,189,-1
- 838 946 l 1,190,-1
- 834 961 l 1,191,-1
- 838 961 l 1,192,-1
- 842 946 l 1,189,-1
-854 913 m 1,193,-1
- 840 928 l 1,194,-1
- 846 940 l 1,195,-1
- 854 913 l 1,193,-1
-870 881 m 1,196,-1
- 866 879 l 1,197,-1
- 850 905 l 1,198,-1
- 856 905 l 1,199,-1
- 870 881 l 1,196,-1
-817 936 m 1,200,-1
- 766 969 l 1,201,-1
- 815 985 l 1,202,-1
- 817 961 l 1,203,-1
- 817 936 l 1,200,-1
-881 858 m 1,204,-1
- 874 858 l 1,205,-1
- 874 872 l 1,206,-1
- 881 872 l 1,207,-1
- 881 858 l 1,204,-1
-889 850 m 1,208,-1
- 887 817 l 1,209,-1
- 881 817 l 1,210,-1
- 885 850 l 1,211,-1
- 889 850 l 1,208,-1
-848 879 m 1,212,-1
- 764 864 l 1,213,-1
- 823 918 l 1,214,-1
- 848 879 l 1,212,-1
-EndSplineSet
-EndChar
-StartChar: uniE019
-Encoding: 57369 57369 333
-Width: 1978
-GlyphClass: 2
-Flags: W
-Fore
-1819 166 m 1,0,-1
- 156 166 l 1,1,-1
- 156 1202 l 1,2,-1
- 1819 1202 l 1,3,-1
- 1819 166 l 1,0,-1
-1765 285 m 1,4,-1
- 1765 1087 l 1,5,-1
- 1241 705 l 1,6,-1
- 1765 285 l 1,4,-1
-733 705 m 1,7,-1
- 209 1087 l 1,8,-1
- 209 285 l 1,9,-1
- 733 705 l 1,7,-1
-1757 219 m 1,10,-1
- 1194 670 l 1,11,-1
- 987 520 l 1,12,-1
- 782 668 l 1,13,-1
- 217 219 l 1,14,-1
- 1757 219 l 1,10,-1
-358 1139 m 1,15,-1
- 358 1069 l 1,16,-1
- 1620 1069 l 1,17,-1
- 1620 1137 l 1,18,-1
- 358 1139 l 1,15,-1
-EndSplineSet
-EndChar
-StartChar: uniE01A
-Encoding: 57370 57370 334
-Width: 2002
-GlyphClass: 2
-Flags: W
-Fore
-1812 135 m 1,0,-1
- 186 135 l 1,1,-1
- 186 1249 l 1,2,-1
- 1812 1249 l 1,3,-1
- 1812 135 l 1,0,-1
-1757 188 m 1,4,-1
- 1757 1198 l 1,5,-1
- 240 1198 l 1,6,-1
- 240 188 l 1,7,-1
- 1757 188 l 1,4,-1
-1608 838 m 1,8,-1
- 1405 838 l 1,9,-1
- 1405 1073 l 1,10,-1
- 1608 1073 l 1,11,-1
- 1608 838 l 1,8,-1
-1462 1010 m 1,12,-1
- 1462 903 l 1,13,-1
- 1556 903 l 1,14,-1
- 1556 1010 l 1,15,-1
- 1462 1010 l 1,12,-1
-1024 315 m 1,16,-1
- 973 315 l 1,17,-1
- 973 1071 l 1,18,-1
- 1024 1071 l 1,19,-1
- 1024 315 l 1,16,-1
-1628 596 m 1,20,-1
- 1147 596 l 1,21,-1
- 1147 647 l 1,22,-1
- 1628 647 l 1,23,-1
- 1628 596 l 1,20,-1
-1628 410 m 1,24,-1
- 1147 410 l 1,25,-1
- 1147 461 l 1,26,-1
- 1628 461 l 1,27,-1
- 1628 410 l 1,24,-1
-1636 510 m 1,28,-1
- 1155 510 l 1,29,-1
- 1155 561 l 1,30,-1
- 1636 561 l 1,31,-1
- 1636 510 l 1,28,-1
-EndSplineSet
-EndChar
-StartChar: uniE01B
-Encoding: 57371 57371 335
-Width: 1904
-GlyphClass: 2
-Flags: W
-Fore
-1835 918 m 1,0,-1
- 1792 758 l 2,1,2
- 1792 756 1792 756 1804 276 c 1,3,-1
- 1485 289 l 1,4,-1
- 1475 328 l 1,5,-1
- 1315 258 l 1,6,-1
- 1208 256 l 1,7,-1
- 1154 259 l 1,8,-1
- 1073 274 l 1,9,-1
- 985 297 l 1,10,-1
- 860 395 l 1,11,-1
- 809 403 l 1,12,-1
- 754 307 l 1,13,-1
- 690 270 l 1,14,-1
- 633 291 l 1,15,-1
- 614 276 l 1,16,-1
- 541 270 l 1,17,-1
- 508 287 l 1,18,-1
- 487 264 l 1,19,-1
- 428 270 l 1,20,-1
- 375 297 l 1,21,-1
- 342 244 l 1,22,-1
- 133 84 l 1,23,-1
- 199 344 l 1,24,-1
- 272 446 l 1,25,-1
- 238 457 l 1,26,-1
- 209 561 l 1,27,28
- 283 754 283 754 563 1028 c 1,29,-1
- 715 1055 l 1,30,-1
- 909 1333 l 1,31,-1
- 1049 1229 l 1,32,-1
- 958 1106 l 1,33,34
- 1014 1114 1014 1114 1026 1114 c 128,-1,35
- 1038 1114 1038 1114 1116 1102 c 1,36,-1
- 1489 868 l 1,37,-1
- 1507 877 l 1,38,-1
- 1497 932 l 1,39,40
- 1650 938 1650 938 1659 938 c 0,41,42
- 1661 938 1661 938 1835 918 c 1,0,-1
-670 987 m 1,43,-1
- 592 981 l 1,44,45
- 343 751 343 751 252 561 c 1,46,-1
- 268 487 l 1,47,-1
- 289 481 l 1,48,-1
- 289 535 l 1,49,50
- 381 592 381 592 498 741 c 0,51,52
- 520 775 520 775 670 987 c 1,43,-1
-776 745 m 1,53,-1
- 698 739 l 1,54,-1
- 657 682 l 1,55,-1
- 729 686 l 1,56,-1
- 776 745 l 1,53,-1
-885 690 m 1,57,-1
- 879 715 l 1,58,-1
- 815 735 l 1,59,-1
- 778 682 l 1,60,-1
- 885 690 l 1,57,-1
-1503 825 m 1,61,-1
- 1487 825 l 1,62,-1
- 1253 971 l 2,63,64
- 1072 1077 1072 1077 1026 1077 c 2,65,-1
- 913 1047 l 1,66,-1
- 729 782 l 1,67,68
- 812 788 812 788 823 788 c 2,69,-1
- 889 770 l 1,70,-1
- 938 842 l 1,71,-1
- 989 803 l 1,72,-1
- 922 729 l 1,73,-1
- 928 686 l 1,74,-1
- 993 690 l 1,75,-1
- 997 633 l 1,76,-1
- 678 651 l 1,77,-1
- 648 648 l 2,78,79
- 608 640 608 640 520 610 c 0,80,81
- 400 570 400 570 358 549 c 1,82,-1
- 332 518 l 1,83,-1
- 346 457 l 1,84,-1
- 422 430 l 1,85,86
- 626 467 626 467 686 467 c 0,87,88
- 695 467 695 467 893 438 c 1,89,-1
- 1006 348 l 1,90,91
- 1163 317 1163 317 1165 317 c 0,92,93
- 1350 317 1350 317 1470 387 c 1,94,95
- 1511 596 1511 596 1511 651 c 0,96,97
- 1511 710 1511 710 1503 825 c 1,61,-1
-758 408 m 1,98,-1
- 711 414 l 1,99,-1
- 657 330 l 1,100,-1
- 686 313 l 1,101,-1
- 723 334 l 1,102,-1
- 758 408 l 1,98,-1
-668 416 m 1,103,-1
- 588 410 l 1,104,-1
- 545 340 l 1,105,-1
- 561 313 l 1,106,-1
- 604 319 l 1,107,-1
- 668 416 l 1,103,-1
-532 403 m 1,108,-1
- 442 391 l 1,109,-1
- 401 334 l 1,110,-1
- 438 301 l 1,111,-1
- 477 319 l 1,112,-1
- 532 403 l 1,108,-1
-387 391 m 1,113,-1
- 303 414 l 1,114,-1
- 238 332 l 1,115,-1
- 264 274 l 1,116,-1
- 311 274 l 1,117,-1
- 387 391 l 1,113,-1
-1561 434 m 1,118,-1
- 1561 342 l 1,119,-1
- 1720 342 l 1,120,-1
- 1720 434 l 1,121,-1
- 1561 434 l 1,118,-1
-EndSplineSet
-EndChar
-StartChar: uniE01C
-Encoding: 57372 57372 336
-Width: 0
-GlyphClass: 2
-Flags: W
-Fore
-102 1468 m 1,0,-1
- 330 1128 l 1,1,-1
- 274 1128 l 1,2,-1
- -4 1337 l 1,3,-1
- -268 1120 l 1,4,-1
- -322 1120 l 1,5,-1
- -109 1468 l 1,6,-1
- 102 1468 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE01D
-Encoding: 57373 57373 337
-Width: 0
-GlyphClass: 2
-Flags: W
-Fore
-178 1348 m 0,0,1
- 233 1348 233 1348 272 1374 c 0,2,3
- 292 1385 292 1385 348 1438 c 1,4,-1
- 375 1417 l 1,5,6
- 307 1303 307 1303 287 1278 c 0,7,8
- 220 1194 220 1194 156 1194 c 0,9,10
- 102 1194 102 1194 -6 1232 c 0,11,12
- -114 1270 -114 1270 -168 1270 c 0,13,14
- -276 1270 -276 1270 -338 1178 c 1,15,-1
- -367 1194 l 1,16,17
- -334 1267 -334 1267 -270 1335 c 0,18,19
- -193 1421 -193 1421 -133 1421 c 0,20,21
- -79 1421 -79 1421 23 1384 c 0,22,23
- 125 1348 125 1348 178 1348 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uniE01E
-Encoding: 57374 57374 338
-Width: 720
-GlyphClass: 2
-Flags: W
-Fore
-109 719 m 0,0,1
- 109 826 109 826 182 898 c 0,2,3
- 255 971 255 971 362 971 c 0,4,5
- 470 971 470 971 544 899 c 0,6,7
- 616 827 616 827 616 719 c 0,8,9
- 616 612 616 612 543 539 c 0,10,11
- 470 465 470 465 362 465 c 0,12,13
- 258 465 258 465 183 540 c 0,14,15
- 109 613 109 613 109 719 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uniE01F
-Encoding: 57375 57375 339
-Width: 1531
-GlyphClass: 2
-Flags: W
-Fore
-20 715 m 0,0,1
- 20 1044 20 1044 226 1250 c 128,-1,2
- 432 1456 432 1456 762 1456 c 0,3,4
- 1093 1456 1093 1456 1296 1250 c 0,5,6
- 1501 1045 1501 1045 1501 715 c 0,7,8
- 1501 386 1501 386 1294 180 c 0,9,10
- 1090 -27 1090 -27 762 -27 c 0,11,12
- 432 -27 432 -27 225 180 c 0,13,14
- 20 387 20 387 20 715 c 0,0,1
-121 715 m 0,15,16
- 121 433 121 433 300 252 c 0,17,18
- 478 72 478 72 762 72 c 0,19,20
- 1048 72 1048 72 1225 250 c 0,21,22
- 1401 429 1401 429 1401 715 c 128,-1,23
- 1401 1001 1401 1001 1225 1180 c 0,24,25
- 1047 1358 1047 1358 762 1358 c 0,26,27
- 478 1358 478 1358 299 1179 c 0,28,29
- 121 1000 121 1000 121 715 c 0,15,16
-664 557 m 1,30,-1
- 664 1063 l 1,31,-1
- 834 1063 l 1,32,-1
- 831 555 l 1,33,-1
- 664 557 l 1,30,-1
-666 301 m 1,34,-1
- 664 471 l 1,35,-1
- 834 471 l 1,36,-1
- 834 301 l 1,37,-1
- 666 301 l 1,34,-1
-EndSplineSet
-EndChar
-StartChar: uniE020
-Encoding: 57376 57376 340
-Width: 1531
-GlyphClass: 2
-Flags: W
-Fore
-1501 715 m 0,0,1
- 1501 386 1501 386 1294 180 c 0,2,3
- 1090 -27 1090 -27 762 -27 c 0,4,5
- 432 -27 432 -27 225 180 c 0,6,7
- 20 387 20 387 20 715 c 0,8,9
- 20 1044 20 1044 226 1250 c 128,-1,10
- 432 1456 432 1456 762 1456 c 0,11,12
- 1093 1456 1093 1456 1296 1250 c 0,13,14
- 1501 1045 1501 1045 1501 715 c 0,0,1
-1012 909 m 0,15,16
- 1012 980 1012 980 962 1030 c 0,17,18
- 912 1079 912 1079 840 1079 c 2,19,-1
- 670 1079 l 2,20,21
- 518 1079 518 1079 500 909 c 1,22,-1
- 584 909 l 1,23,24
- 590 995 590 995 670 995 c 2,25,-1
- 756 995 l 2,26,27
- 791 995 791 995 815 970 c 0,28,29
- 840 943 840 943 840 909 c 0,30,31
- 840 894 840 894 755 804 c 0,32,33
- 670 715 670 715 670 653 c 2,34,-1
- 670 567 l 1,35,-1
- 840 567 l 1,36,-1
- 838 676 l 2,37,38
- 838 702 838 702 883 735 c 0,39,40
- 954 786 954 786 967 799 c 0,41,42
- 1012 846 1012 846 1012 909 c 0,15,16
-840 311 m 1,43,-1
- 840 483 l 1,44,-1
- 670 483 l 1,45,-1
- 670 311 l 1,46,-1
- 840 311 l 1,43,-1
-EndSplineSet
-EndChar
-StartChar: uniE021
-Encoding: 57377 57377 341
-Width: 1507
-GlyphClass: 2
-Flags: W
-Fore
-758 1491 m 0,0,1
- 1092 1491 1092 1491 1302 1281 c 0,2,3
- 1511 1070 1511 1070 1511 737 c 0,4,5
- 1511 405 1511 405 1300 195 c 0,6,7
- 1090 -16 1090 -16 758 -16 c 0,8,9
- 430 -16 430 -16 217 197 c 0,10,11
- 2 410 2 410 2 737 c 0,12,13
- 2 1065 2 1065 217 1278 c 0,14,15
- 430 1491 430 1491 758 1491 c 0,0,1
-758 1368 m 0,16,17
- 481 1368 481 1368 304 1191 c 128,-1,18
- 127 1014 127 1014 127 737 c 0,19,20
- 127 466 127 466 306 287 c 0,21,22
- 485 109 485 109 758 109 c 0,23,24
- 1035 109 1035 109 1210 285 c 0,25,26
- 1386 460 1386 460 1386 737 c 0,27,28
- 1386 1017 1386 1017 1211 1192 c 0,29,30
- 1037 1368 1037 1368 758 1368 c 0,16,17
-999 612 m 1,31,-1
- 1122 575 l 1,32,33
- 1096 450 1096 450 993 377 c 0,34,35
- 890 303 890 303 760 303 c 0,36,37
- 573 303 573 303 465 426 c 0,38,39
- 362 544 362 544 362 733 c 0,40,41
- 362 932 362 932 467 1046 c 0,42,43
- 572 1159 572 1159 768 1159 c 0,44,45
- 1035 1159 1035 1159 1108 924 c 1,46,-1
- 989 895 l 1,47,48
- 927 1049 927 1049 764 1049 c 0,49,50
- 634 1049 634 1049 561 952 c 0,51,52
- 500 869 500 869 500 731 c 0,53,54
- 500 598 500 598 557 514 c 0,55,56
- 623 420 623 420 752 420 c 0,57,58
- 952 420 952 420 999 612 c 1,31,-1
-EndSplineSet
-EndChar
-StartChar: uniE022
-Encoding: 57378 57378 342
-Width: 1531
-GlyphClass: 2
-Flags: W
-Fore
-47 727 m 0,0,1
- 47 1055 47 1055 253 1263 c 0,2,3
- 458 1468 458 1468 788 1468 c 0,4,5
- 1116 1468 1116 1468 1322 1262 c 0,6,7
- 1528 1054 1528 1054 1528 727 c 0,8,9
- 1528 397 1528 397 1323 193 c 0,10,11
- 1116 -14 1116 -14 788 -14 c 0,12,13
- 458 -14 458 -14 254 193 c 0,14,15
- 47 397 47 397 47 727 c 0,0,1
-147 727 m 0,16,17
- 147 444 147 444 327 264 c 0,18,19
- 506 84 506 84 788 84 c 0,20,21
- 1076 84 1076 84 1251 262 c 0,22,23
- 1427 439 1427 439 1427 727 c 128,-1,24
- 1427 1015 1427 1015 1251 1192 c 0,25,26
- 1076 1370 1076 1370 788 1370 c 0,27,28
- 503 1370 503 1370 326 1191 c 0,29,30
- 147 1010 147 1010 147 727 c 0,16,17
-838 862 m 1,31,-1
- 754 862 l 2,32,33
- 718 862 718 862 693 837 c 128,-1,34
- 668 812 668 812 668 776 c 2,35,-1
- 668 690 l 2,36,37
- 668 606 668 606 754 606 c 0,38,39
- 789 606 789 606 813 631 c 0,40,41
- 838 656 838 656 838 690 c 2,42,-1
- 838 862 l 1,31,-1
-1010 350 m 1,43,-1
- 711 350 l 2,44,45
- 587 350 587 350 499 436 c 0,46,47
- 412 523 412 523 412 647 c 2,48,-1
- 412 819 l 2,49,50
- 412 944 412 944 499 1031 c 128,-1,51
- 586 1118 586 1118 711 1118 c 2,52,-1
- 881 1118 l 2,53,54
- 1004 1118 1004 1118 1092 1030 c 0,55,56
- 1180 940 1180 940 1180 819 c 2,57,-1
- 1180 606 l 2,58,59
- 1180 572 1180 572 1154 546 c 128,-1,60
- 1128 520 1128 520 1094 520 c 2,61,-1
- 924 520 l 2,62,63
- 846 520 846 520 838 606 c 1,64,65
- 829 520 829 520 737 520 c 0,66,67
- 670 520 670 520 626 571 c 0,68,69
- 582 622 582 622 582 690 c 2,70,-1
- 582 776 l 2,71,72
- 582 850 582 850 631 898 c 0,73,74
- 680 946 680 946 754 946 c 2,75,-1
- 924 946 l 1,76,-1
- 920 871 l 2,77,78
- 915 798 915 798 915 762 c 0,79,80
- 915 606 915 606 967 606 c 2,81,-1
- 1051 606 l 2,82,83
- 1094 606 1094 606 1094 647 c 2,84,-1
- 1094 819 l 2,85,86
- 1094 907 1094 907 1031 970 c 0,87,88
- 969 1032 969 1032 881 1032 c 2,89,-1
- 711 1032 l 2,90,91
- 624 1032 624 1032 560 970 c 0,92,93
- 498 908 498 908 498 819 c 2,94,-1
- 498 647 l 2,95,96
- 498 430 498 430 860 430 c 0,97,98
- 878 430 878 430 940 432 c 2,99,-1
- 1010 434 l 1,100,-1
- 1010 350 l 1,43,-1
-EndSplineSet
-EndChar
-StartChar: uniE023
-Encoding: 57379 57379 343
-Width: 1728
-GlyphClass: 2
-Flags: W
-Fore
-1636 748 m 0,0,1
- 1636 403 1636 403 1421 188 c 128,-1,2
- 1206 -27 1206 -27 862 -27 c 128,-1,3
- 518 -27 518 -27 303 188 c 0,4,5
- 88 405 88 405 88 748 c 0,6,7
- 88 1090 88 1090 303 1307 c 0,8,9
- 518 1522 518 1522 862 1522 c 128,-1,10
- 1206 1522 1206 1522 1421 1307 c 128,-1,11
- 1636 1092 1636 1092 1636 748 c 0,0,1
-393 932 m 1,12,13
- 381 962 381 962 381 997 c 0,14,15
- 381 1082 381 1082 444 1134 c 0,16,17
- 510 1186 510 1186 594 1186 c 0,18,19
- 642 1186 642 1186 680 1167 c 1,20,-1
- 979 1415 l 1,21,22
- 935 1423 935 1423 862 1423 c 0,23,24
- 572 1423 572 1423 383 1238 c 0,25,26
- 192 1052 192 1052 186 764 c 1,27,-1
- 393 932 l 1,12,13
-799 991 m 0,28,29
- 799 910 799 910 735 856 c 0,30,31
- 671 803 671 803 588 803 c 0,32,33
- 535 803 535 803 487 827 c 1,34,-1
- 209 567 l 1,35,36
- 266 342 266 342 446 207 c 0,37,38
- 629 72 629 72 862 72 c 0,39,40
- 1162 72 1162 72 1350 260 c 0,41,42
- 1538 450 1538 450 1538 748 c 0,43,44
- 1538 969 1538 969 1417 1142 c 0,45,46
- 1297 1315 1297 1315 1090 1386 c 1,47,-1
- 770 1090 l 1,48,49
- 799 1041 799 1041 799 991 c 0,28,29
-1231 997 m 0,50,51
- 1231 948 1231 948 1194 911 c 0,52,53
- 1155 874 1155 874 1108 874 c 0,54,55
- 1056 874 1056 874 1020 910 c 0,56,57
- 983 946 983 946 983 997 c 0,58,59
- 983 1050 983 1050 1019 1085 c 0,60,61
- 1054 1120 1054 1120 1108 1120 c 0,62,63
- 1162 1120 1162 1120 1196 1085 c 0,64,65
- 1231 1050 1231 1050 1231 997 c 0,50,51
-1319 702 m 1,66,67
- 1295 501 1295 501 1182 383 c 0,68,69
- 1060 260 1060 260 860 260 c 0,70,71
- 664 260 664 260 541 385 c 0,72,73
- 426 502 426 502 406 702 c 1,74,-1
- 467 702 l 1,75,76
- 536 383 536 383 860 383 c 0,77,78
- 1186 383 1186 383 1255 702 c 1,79,-1
- 1319 702 l 1,66,67
-EndSplineSet
-EndChar
-StartChar: uniE024
-Encoding: 57380 57380 344
-Width: 1507
-GlyphClass: 2
-Flags: W
-Fore
-758 1491 m 0,0,1
- 1092 1491 1092 1491 1302 1281 c 0,2,3
- 1511 1070 1511 1070 1511 737 c 0,4,5
- 1511 405 1511 405 1300 195 c 0,6,7
- 1090 -16 1090 -16 758 -16 c 0,8,9
- 430 -16 430 -16 217 197 c 0,10,11
- 2 410 2 410 2 737 c 0,12,13
- 2 1065 2 1065 217 1278 c 0,14,15
- 430 1491 430 1491 758 1491 c 0,0,1
-758 1366 m 0,16,17
- 481 1366 481 1366 304 1189 c 128,-1,18
- 127 1012 127 1012 127 735 c 0,19,20
- 127 462 127 462 306 285 c 0,21,22
- 487 106 487 106 758 106 c 0,23,24
- 1034 106 1034 106 1210 283 c 0,25,26
- 1386 458 1386 458 1386 735 c 0,27,28
- 1386 1014 1386 1014 1211 1190 c 0,29,30
- 1037 1366 1037 1366 758 1366 c 0,16,17
-426 319 m 1,31,-1
- 426 1130 l 1,32,-1
- 707 1130 l 2,33,34
- 1053 1130 1053 1130 1053 911 c 0,35,36
- 1053 815 1053 815 986 753 c 0,37,38
- 919 689 919 689 821 682 c 1,39,40
- 900 644 900 644 985 522 c 0,41,42
- 992 513 992 513 1110 319 c 1,43,-1
- 948 319 l 1,44,45
- 859 495 859 495 829 537 c 0,46,47
- 738 666 738 666 635 666 c 2,48,-1
- 557 666 l 1,49,-1
- 557 319 l 1,50,-1
- 426 319 l 1,31,-1
-557 776 m 1,51,-1
- 717 776 l 2,52,53
- 913 776 913 776 913 899 c 128,-1,54
- 913 1022 913 1022 707 1022 c 2,55,-1
- 557 1022 l 1,56,-1
- 557 776 l 1,51,-1
-EndSplineSet
-EndChar
-StartChar: uniE025
-Encoding: 57381 57381 345
-Width: 1751
-GlyphClass: 2
-Flags: W
-Fore
-1585 688 m 1,0,-1
- 1044 999 l 1,1,-1
- 1044 842 l 1,2,-1
- 147 842 l 1,3,-1
- 147 555 l 1,4,-1
- 1051 561 l 1,5,-1
- 1053 375 l 1,6,-1
- 1585 688 l 1,0,-1
-1694 692 m 1,7,-1
- 997 293 l 1,8,-1
- 997 516 l 1,9,-1
- 109 516 l 1,10,-1
- 109 889 l 1,11,-1
- 997 889 l 1,12,-1
- 997 1094 l 1,13,-1
- 1694 692 l 1,7,-1
-EndSplineSet
-EndChar
-StartChar: uniE026
-Encoding: 57382 57382 346
-Width: 983
-GlyphClass: 2
-Flags: W
-Fore
-793 524 m 1,0,-1
- 608 520 l 1,1,-1
- 610 1677 l 1,2,-1
- 342 1677 l 1,3,-1
- 340 520 l 1,4,-1
- 182 520 l 1,5,-1
- 502 -14 l 1,6,-1
- 793 524 l 1,0,-1
-881 588 m 1,7,-1
- 483 -109 l 1,8,-1
- 82 588 l 1,9,-1
- 287 588 l 1,10,-1
- 287 1724 l 1,11,-1
- 662 1724 l 1,12,-1
- 662 588 l 1,13,-1
- 881 588 l 1,7,-1
-EndSplineSet
-EndChar
-StartChar: uniE027
-Encoding: 57383 57383 347
-Width: 1751
-GlyphClass: 2
-Flags: W
-Fore
-1591 555 m 1,0,-1
- 1591 844 l 1,1,-1
- 705 842 l 1,2,-1
- 705 999 l 1,3,-1
- 170 690 l 1,4,-1
- 705 383 l 1,5,-1
- 705 555 l 1,6,-1
- 1591 555 l 1,0,-1
-1638 516 m 1,7,-1
- 768 520 l 1,8,-1
- 768 297 l 1,9,-1
- 74 696 l 1,10,-1
- 768 1098 l 1,11,-1
- 768 893 l 1,12,-1
- 1638 889 l 1,13,-1
- 1638 516 l 1,7,-1
-EndSplineSet
-EndChar
-StartChar: uniE028
-Encoding: 57384 57384 348
-Width: 983
-GlyphClass: 2
-Flags: W
-Fore
-797 872 m 1,0,-1
- 492 1407 l 1,1,-1
- 182 872 l 1,2,-1
- 340 872 l 1,3,-1
- 340 -2 l 1,4,-1
- 629 -2 l 1,5,-1
- 629 872 l 1,6,-1
- 797 872 l 1,0,-1
-887 817 m 1,7,-1
- 668 817 l 1,8,-1
- 666 -57 l 1,9,-1
- 295 -57 l 1,10,-1
- 293 817 l 1,11,-1
- 88 817 l 1,12,-1
- 489 1511 l 1,13,-1
- 887 817 l 1,7,-1
-EndSplineSet
-EndChar
-StartChar: uniE029
-Encoding: 57385 57385 349
-Width: 1822
-GlyphClass: 2
-Flags: W
-Fore
-1591 514 m 1,0,-1
- 1333 801 l 1,1,-1
- 1550 1116 l 1,2,-1
- 1167 1096 l 1,3,-1
- 1053 1462 l 1,4,-1
- 831 1149 l 1,5,-1
- 483 1286 l 1,6,-1
- 590 918 l 1,7,-1
- 258 727 l 1,8,-1
- 610 584 l 1,9,-1
- 551 205 l 1,10,-1
- 887 391 l 1,11,-1
- 1147 109 l 1,12,-1
- 1210 487 l 1,13,-1
- 1591 514 l 1,0,-1
-1720 461 m 1,14,-1
- 1262 428 l 1,15,-1
- 1186 -27 l 1,16,-1
- 872 311 l 1,17,-1
- 471 88 l 1,18,-1
- 541 543 l 1,19,-1
- 115 719 l 1,20,-1
- 514 948 l 1,21,-1
- 385 1391 l 1,22,-1
- 813 1221 l 1,23,-1
- 1079 1597 l 1,24,-1
- 1214 1157 l 1,25,-1
- 1673 1184 l 1,26,-1
- 1413 803 l 1,27,-1
- 1720 461 l 1,14,-1
-1366 604 m 1,28,-1
- 1196 795 l 1,29,-1
- 1339 1006 l 1,30,-1
- 1085 991 l 1,31,-1
- 1008 1237 l 1,32,-1
- 860 1028 l 1,33,-1
- 629 1120 l 1,34,-1
- 700 874 l 1,35,-1
- 477 748 l 1,36,-1
- 713 651 l 1,37,-1
- 674 397 l 1,38,-1
- 897 522 l 1,39,-1
- 1071 334 l 1,40,-1
- 1112 586 l 1,41,-1
- 1366 604 l 1,28,-1
-1454 569 m 1,42,-1
- 1147 547 l 1,43,-1
- 1096 244 l 1,44,-1
- 889 469 l 1,45,-1
- 618 322 l 1,46,-1
- 666 625 l 1,47,-1
- 383 741 l 1,48,-1
- 649 895 l 1,49,-1
- 563 1188 l 1,50,-1
- 848 1075 l 1,51,-1
- 1026 1327 l 1,52,-1
- 1116 1032 l 1,53,-1
- 1421 1051 l 1,54,-1
- 1247 797 l 1,55,-1
- 1454 569 l 1,42,-1
-EndSplineSet
-EndChar
-StartChar: uniE02A
-Encoding: 57386 57386 350
-Width: 1843
-GlyphClass: 2
-Flags: W
-Fore
-1667 197 m 1,0,1
- 1576 67 1576 67 1315 -57 c 1,2,3
- 861 120 861 120 599 391 c 0,4,5
- 337 662 337 662 180 1122 c 1,6,7
- 252 1257 252 1257 289 1313 c 0,8,9
- 358 1419 358 1419 440 1468 c 1,10,-1
- 772 1053 l 1,11,12
- 700 949 700 949 604 907 c 1,13,14
- 774 594 774 594 1114 373 c 1,15,16
- 1165 471 1165 471 1270 537 c 1,17,-1
- 1667 197 l 1,0,1
-500 877 m 1,18,-1
- 436 793 l 1,19,20
- 519 643 519 643 668 469 c 0,21,22
- 826 281 826 281 950 195 c 1,23,-1
- 1028 266 l 1,24,25
- 904 349 904 349 739 547 c 0,26,27
- 596 717 596 717 500 877 c 1,18,-1
-582 1401 m 1,28,-1
- 565 1407 l 1,29,-1
- 559 1421 l 1,30,-1
- 694 1667 l 1,31,-1
- 711 1677 l 1,32,-1
- 721 1677 l 1,33,-1
- 733 1659 l 1,34,35
- 731 1623 731 1623 670 1526 c 0,36,37
- 620 1444 620 1444 582 1401 c 1,28,-1
-868 1489 m 1,38,39
- 751 1396 751 1396 664 1333 c 1,40,-1
- 649 1339 l 1,41,-1
- 643 1354 l 1,42,-1
- 651 1370 l 1,43,44
- 789 1479 789 1479 856 1526 c 1,45,-1
- 870 1520 l 1,46,-1
- 877 1505 l 1,47,-1
- 868 1489 l 1,38,39
-961 1403 m 1,48,-1
- 975 1382 l 1,49,50
- 970 1357 970 1357 842 1303 c 0,51,52
- 725 1252 725 1252 684 1249 c 1,53,-1
- 670 1270 l 1,54,55
- 673 1294 673 1294 803 1350 c 0,56,57
- 924 1402 924 1402 961 1403 c 1,48,-1
-1059 1249 m 1,58,-1
- 1077 1229 l 1,59,60
- 1076 1203 1076 1203 926 1186 c 0,61,62
- 820 1174 820 1174 743 1174 c 1,63,-1
- 725 1194 l 1,64,65
- 726 1220 726 1220 877 1237 c 0,66,67
- 984 1249 984 1249 1059 1249 c 1,58,-1
-EndSplineSet
-EndChar
-StartChar: uniE02B
-Encoding: 57387 57387 351
-Width: 1751
-GlyphClass: 2
-Flags: W
-Fore
-1581 690 m 1,0,-1
- 1044 383 l 1,1,-1
- 1044 555 l 1,2,-1
- 172 555 l 1,3,-1
- 172 842 l 1,4,-1
- 1044 842 l 1,5,-1
- 1044 999 l 1,6,-1
- 1581 690 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE02C
-Encoding: 57388 57388 352
-Width: 983
-GlyphClass: 2
-Flags: W
-Fore
-797 520 m 1,0,-1
- 492 -14 l 1,1,-1
- 182 520 l 1,2,-1
- 340 520 l 1,3,-1
- 340 1395 l 1,4,-1
- 629 1395 l 1,5,-1
- 629 520 l 1,6,-1
- 797 520 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE02D
-Encoding: 57389 57389 353
-Width: 1751
-GlyphClass: 2
-Flags: W
-Fore
-1579 555 m 1,0,-1
- 705 555 l 1,1,-1
- 705 383 l 1,2,-1
- 170 690 l 1,3,-1
- 705 999 l 1,4,-1
- 705 842 l 1,5,-1
- 1579 842 l 1,6,-1
- 1579 555 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE02E
-Encoding: 57390 57390 354
-Width: 983
-GlyphClass: 2
-Flags: W
-Fore
-797 872 m 1,0,-1
- 629 872 l 1,1,-1
- 629 -2 l 1,2,-1
- 340 -2 l 1,3,-1
- 340 872 l 1,4,-1
- 182 872 l 1,5,-1
- 492 1407 l 1,6,-1
- 797 872 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE02F
-Encoding: 57391 57391 355
-Width: 1751
-GlyphClass: 2
-Flags: W
-Fore
-1599 700 m 1,0,-1
- 1366 565 l 1,1,-1
- 1503 332 l 1,2,-1
- 1233 332 l 1,3,-1
- 1233 61 l 1,4,-1
- 999 197 l 1,5,-1
- 868 -33 l 1,6,-1
- 737 199 l 1,7,-1
- 504 63 l 1,8,-1
- 504 332 l 1,9,-1
- 236 332 l 1,10,-1
- 369 561 l 1,11,-1
- 135 696 l 1,12,-1
- 371 831 l 1,13,-1
- 233 1065 l 1,14,-1
- 504 1065 l 1,15,-1
- 504 1335 l 1,16,-1
- 733 1200 l 1,17,-1
- 868 1430 l 1,18,-1
- 999 1198 l 1,19,-1
- 1233 1333 l 1,20,-1
- 1235 1065 l 1,21,-1
- 1499 1065 l 1,22,-1
- 1368 836 l 1,23,-1
- 1599 700 l 1,0,-1
-674 702 m 0,24,25
- 674 617 674 617 733 556 c 0,26,27
- 793 496 793 496 879 496 c 0,28,29
- 962 496 962 496 1021 558 c 0,30,31
- 1081 621 1081 621 1081 702 c 0,32,33
- 1081 784 1081 784 1021 847 c 0,34,35
- 961 909 961 909 879 909 c 0,36,37
- 797 909 797 909 735 847 c 0,38,39
- 674 785 674 785 674 702 c 0,24,25
-EndSplineSet
-EndChar
-StartChar: uniE030
-Encoding: 57392 57392 356
-Width: 1392
-GlyphClass: 2
-Flags: W
-Fore
-1319 688 m 1,0,-1
- 973 573 l 1,1,-1
- 1130 258 l 1,2,-1
- 813 410 l 1,3,-1
- 698 70 l 1,4,-1
- 578 408 l 1,5,-1
- 262 254 l 1,6,-1
- 416 569 l 1,7,-1
- 76 690 l 1,8,-1
- 414 805 l 1,9,-1
- 260 1124 l 1,10,-1
- 578 967 l 1,11,-1
- 696 1311 l 1,12,-1
- 811 967 l 1,13,-1
- 1130 1124 l 1,14,-1
- 975 807 l 1,15,-1
- 1319 688 l 1,0,-1
-598 709 m 0,16,17
- 598 668 598 668 630 638 c 0,18,19
- 662 608 662 608 702 608 c 0,20,21
- 805 608 805 608 805 696 c 0,22,23
- 805 737 805 737 774 767 c 0,24,25
- 744 797 744 797 702 797 c 0,26,27
- 598 797 598 797 598 709 c 0,16,17
-EndSplineSet
-EndChar
-StartChar: uniE031
-Encoding: 57393 57393 357
-Width: 1751
-GlyphClass: 2
-Flags: W
-Fore
-1575 692 m 1,0,-1
- 1194 748 l 1,1,-1
- 1368 195 l 1,2,-1
- 1139 506 l 1,3,-1
- 872 -10 l 1,4,-1
- 932 371 l 1,5,-1
- 379 197 l 1,6,-1
- 692 428 l 1,7,-1
- 174 692 l 1,8,-1
- 557 631 l 1,9,-1
- 379 1184 l 1,10,-1
- 618 866 l 1,11,-1
- 872 1391 l 1,12,-1
- 817 1008 l 1,13,-1
- 1368 1186 l 1,14,-1
- 1057 954 l 1,15,-1
- 1575 692 l 1,0,-1
-731 846 m 1,16,-1
- 731 590 l 1,17,-1
- 1032 610 l 1,18,-1
- 1026 784 l 1,19,-1
- 731 846 l 1,16,-1
-EndSplineSet
-EndChar
-StartChar: uniE032
-Encoding: 57394 57394 358
-Width: 1751
-GlyphClass: 2
-Flags: W
-Fore
-1047 1239 m 0,0,1
- 1047 1171 1047 1171 928 846 c 1,2,3
- 878 858 878 858 823 846 c 1,4,5
- 707 1164 707 1164 707 1239 c 0,6,7
- 707 1309 707 1309 756 1358 c 0,8,9
- 804 1407 804 1407 877 1407 c 0,10,11
- 943 1407 943 1407 995 1357 c 0,12,13
- 1047 1305 1047 1305 1047 1239 c 0,0,1
-811 1229 m 0,14,15
- 811 1180 811 1180 872 1180 c 0,16,17
- 932 1180 932 1180 932 1229 c 0,18,19
- 932 1280 932 1280 872 1280 c 0,20,21
- 811 1280 811 1280 811 1229 c 0,14,15
-1016 766 m 1,22,23
- 994 816 994 816 944 838 c 1,24,25
- 1039 1050 1039 1050 1063 1087 c 0,26,27
- 1158 1251 1158 1251 1257 1251 c 0,28,29
- 1327 1251 1327 1251 1378 1200 c 0,30,31
- 1430 1148 1430 1148 1430 1079 c 0,32,33
- 1430 981 1430 981 1266 885 c 0,34,35
- 1218 855 1218 855 1016 766 c 1,22,23
-1208 1092 m 0,36,37
- 1208 1040 1208 1040 1268 1040 c 0,38,39
- 1329 1040 1329 1040 1329 1092 c 0,40,41
- 1329 1141 1329 1141 1268 1141 c 0,42,43
- 1208 1141 1208 1141 1208 1092 c 0,36,37
-809 838 m 1,44,45
- 762 815 762 815 735 766 c 1,46,47
- 527 858 527 858 485 883 c 0,48,49
- 326 979 326 979 326 1079 c 0,50,51
- 326 1149 326 1149 377 1200 c 128,-1,52
- 428 1251 428 1251 498 1251 c 0,53,54
- 597 1251 597 1251 692 1087 c 0,55,56
- 701 1074 701 1074 809 838 c 1,44,45
-461 1059 m 0,57,58
- 461 1008 461 1008 522 1008 c 0,59,60
- 582 1008 582 1008 582 1059 c 0,61,62
- 582 1108 582 1108 522 1108 c 0,63,64
- 461 1108 461 1108 461 1059 c 0,57,58
-1585 698 m 0,65,66
- 1585 631 1585 631 1534 580 c 0,67,68
- 1483 528 1483 528 1415 528 c 0,69,70
- 1344 528 1344 528 1024 645 c 1,71,72
- 1030 670 1030 670 1030 697 c 0,73,74
- 1030 723 1030 723 1024 752 c 1,75,76
- 1349 868 1349 868 1415 868 c 0,77,78
- 1483 868 1483 868 1534 817 c 128,-1,79
- 1585 766 1585 766 1585 698 c 0,65,66
-1350 690 m 0,80,81
- 1350 641 1350 641 1411 641 c 0,82,83
- 1470 641 1470 641 1470 690 c 0,84,85
- 1470 741 1470 741 1411 741 c 0,86,87
- 1350 741 1350 741 1350 690 c 0,80,81
-729 645 m 1,88,89
- 408 528 408 528 336 528 c 0,90,91
- 268 528 268 528 217 580 c 0,92,93
- 166 631 166 631 166 698 c 0,94,95
- 166 766 166 766 217 817 c 128,-1,96
- 268 868 268 868 336 868 c 0,97,98
- 404 868 404 868 729 752 c 1,99,100
- 721 725 721 725 721 698 c 0,101,102
- 721 674 721 674 728 649 c 0,103,104
- 728 647 728 647 729 645 c 1,88,89
-272 705 m 0,105,106
- 272 655 272 655 334 655 c 0,107,108
- 393 655 393 655 393 705 c 0,109,110
- 393 756 393 756 334 756 c 0,111,112
- 272 756 272 756 272 705 c 0,105,106
-1257 145 m 0,113,114
- 1159 145 1159 145 1063 309 c 0,115,116
- 1039 348 1039 348 944 559 c 1,117,118
- 994 582 994 582 1016 631 c 1,119,120
- 1227 536 1227 536 1266 512 c 0,121,122
- 1430 416 1430 416 1430 317 c 0,123,124
- 1430 249 1430 249 1378 197 c 0,125,126
- 1327 145 1327 145 1257 145 c 0,113,114
-1214 301 m 0,127,128
- 1214 252 1214 252 1276 252 c 0,129,130
- 1335 252 1335 252 1335 301 c 0,131,132
- 1335 352 1335 352 1276 352 c 0,133,134
- 1214 352 1214 352 1214 301 c 0,127,128
-809 559 m 1,135,136
- 640 145 640 145 498 145 c 0,137,138
- 428 145 428 145 377 197 c 0,139,140
- 326 248 326 248 326 317 c 0,141,142
- 326 413 326 413 487 512 c 0,143,144
- 518 530 518 530 735 631 c 1,145,146
- 757 580 757 580 809 559 c 1,135,136
-428 307 m 0,147,148
- 428 258 428 258 489 258 c 0,149,150
- 549 258 549 258 549 307 c 0,151,152
- 549 358 549 358 489 358 c 0,153,154
- 428 358 428 358 428 307 c 0,147,148
-1047 158 m 0,155,156
- 1047 89 1047 89 997 39 c 0,157,158
- 949 -10 949 -10 877 -10 c 0,159,160
- 809 -10 809 -10 758 41 c 0,161,162
- 707 90 707 90 707 158 c 0,163,164
- 707 233 707 233 823 551 c 1,165,166
- 878 539 878 539 928 551 c 1,167,168
- 1047 226 1047 226 1047 158 c 0,155,156
-825 154 m 0,169,170
- 825 104 825 104 887 104 c 0,171,172
- 946 104 946 104 946 154 c 0,173,174
- 946 205 946 205 887 205 c 0,175,176
- 825 205 825 205 825 154 c 0,169,170
-EndSplineSet
-EndChar
-StartChar: uniE033
-Encoding: 57395 57395 359
-Width: 1894
-GlyphClass: 2
-Flags: W
-Fore
-1757 909 m 1,0,-1
- 1577 936 l 1,1,-1
- 1550 807 l 1,2,3
- 1565 780 1565 780 1608 780 c 2,4,-1
- 1679 780 l 1,5,6
- 1712 802 1712 802 1757 909 c 1,0,-1
-1757 702 m 1,7,-1
- 1731 729 l 1,8,-1
- 1704 651 l 1,9,-1
- 1679 678 l 1,10,-1
- 1653 651 l 1,11,-1
- 1679 627 l 1,12,-1
- 1757 702 l 1,7,-1
-1319 961 m 1,13,-1
- 1292 936 l 1,14,-1
- 1292 913 l 2,15,16
- 1292 867 1292 867 1319 858 c 1,17,-1
- 1292 831 l 1,18,-1
- 1370 807 l 1,19,-1
- 1368 827 l 2,20,21
- 1368 858 1368 858 1395 936 c 1,22,-1
- 1319 961 l 1,13,-1
-571 1606 m 1,23,24
- 540 1712 540 1712 463 1712 c 2,25,-1
- 442 1708 l 1,26,27
- 389 1673 389 1673 389 1604 c 0,28,29
- 389 1518 389 1518 467 1477 c 1,30,31
- 505 1478 505 1478 535 1526 c 0,32,33
- 542 1538 542 1538 571 1606 c 1,23,24
-1190 961 m 1,34,-1
- 1163 969 l 2,35,36
- 1122 969 1122 969 1122 915 c 1,37,-1
- 1139 885 l 1,38,39
- 1112 858 1112 858 1112 831 c 1,40,-1
- 1118 831 l 2,41,42
- 1154 831 1154 831 1165 893 c 0,43,44
- 1175 954 1175 954 1190 961 c 1,34,-1
-1536 594 m 1,45,-1
- 1473 522 l 1,46,-1
- 1499 498 l 1,47,48
- 1520 512 1520 512 1556 549 c 1,49,-1
- 1536 594 l 1,45,-1
-498 1378 m 1,50,51
- 547 1418 547 1418 547 1436 c 2,52,-1
- 545 1450 l 1,53,54
- 494 1429 494 1429 494 1399 c 2,55,-1
- 498 1378 l 1,50,51
-776 1321 m 1,56,57
- 727 1376 727 1376 680 1376 c 0,58,59
- 658 1376 658 1376 621 1361 c 0,60,61
- 582 1346 582 1346 561 1346 c 0,62,63
- 532 1346 532 1346 504 1368 c 1,64,65
- 514 1348 514 1348 550 1318 c 0,66,67
- 585 1289 585 1289 596 1270 c 1,68,-1
- 776 1321 l 1,56,57
-803 1167 m 1,69,70
- 800 1219 800 1219 778 1219 c 1,71,-1
- 674 1167 l 1,72,-1
- 674 1147 l 2,73,74
- 674 1102 674 1102 700 1090 c 1,75,-1
- 803 1167 l 1,69,70
-1163 575 m 1,76,77
- 1139 563 1139 563 1139 514 c 2,78,-1
- 1139 498 l 1,79,-1
- 1163 575 l 1,76,77
-543 1020 m 1,80,-1
- 365 1065 l 1,81,-1
- 391 1038 l 1,82,83
- 365 1012 365 1012 344 1012 c 2,84,-1
- 340 1012 l 1,85,86
- 367 985 367 985 397 985 c 0,87,88
- 424 985 424 985 469 1004 c 0,89,90
- 511 1020 511 1020 538 1020 c 0,91,92
- 541 1020 541 1020 543 1020 c 1,80,-1
-627 631 m 1,93,94
- 651 703 651 703 651 705 c 0,95,96
- 651 726 651 726 627 733 c 1,97,98
- 657 766 657 766 678 760 c 1,99,100
- 678 796 678 796 735 877 c 2,101,-1
- 817 991 l 1,102,103
- 764 956 764 956 729 956 c 0,104,105
- 696 956 696 956 649 987 c 1,106,107
- 584 940 584 940 584 864 c 1,108,-1
- 594 862 l 2,109,110
- 626 862 626 862 649 885 c 1,111,-1
- 674 858 l 1,112,-1
- 524 655 l 1,113,-1
- 532 657 l 2,114,115
- 550 657 550 657 575 631 c 1,116,-1
- 627 631 l 1,93,94
-1010 272 m 1,117,-1
- 1030 270 l 2,118,119
- 1056 270 1056 270 1099 290 c 0,120,121
- 1141 310 1141 310 1141 334 c 2,122,-1
- 1139 342 l 1,123,-1
- 1010 272 l 1,117,-1
-725 471 m 1,124,125
- 706 490 706 490 686 500 c 1,126,-1
- 674 498 l 1,127,128
- 717 476 717 476 717 453 c 1,129,130
- 701 415 701 415 674 369 c 1,131,132
- 731 426 731 426 731 451 c 2,133,-1
- 725 471 l 1,124,125
-215 811 m 1,134,-1
- 211 807 l 1,135,-1
- 184 831 l 1,136,-1
- 211 756 l 1,137,-1
- 212 799 l 2,138,139
- 213 805 213 805 215 811 c 1,134,-1
-350 725 m 1,140,-1
- 293 852 l 1,141,-1
- 262 831 l 1,142,-1
- 252 834 l 1,143,-1
- 238 829 l 1,144,145
- 271 796 271 796 270 725 c 2,146,-1
- 270 707 l 1,147,-1
- 350 725 l 1,140,-1
-340 549 m 1,148,-1
- 340 575 l 1,149,-1
- 287 575 l 1,150,-1
- 340 549 l 1,148,-1
-983 1200 m 1,151,-1
- 987 1192 l 1,152,-1
- 983 1202 l 1,153,-1
- 983 1200 l 1,151,-1
-950 1493 m 1,154,-1
- 995 1180 l 1,155,-1
- 987 1192 l 1,156,-1
- 993 1178 l 1,157,158
- 1036 1163 1036 1163 1122 1163 c 0,159,160
- 1268 1163 1268 1163 1335 1235 c 1,161,162
- 1334 1186 1334 1186 1254 1174 c 0,163,164
- 1211 1167 1211 1167 1102 1151 c 0,165,166
- 1020 1130 1020 1130 1020 1075 c 0,167,168
- 1020 1043 1020 1043 1034 1012 c 1,169,170
- 1173 1065 1173 1065 1329 1065 c 0,171,172
- 1568 1065 1568 1065 1808 961 c 1,173,-1
- 1860 807 l 1,174,-1
- 1833 702 l 1,175,176
- 1759 684 1759 684 1634 569 c 0,177,178
- 1526 467 1526 467 1409 467 c 0,179,180
- 1363 467 1363 467 1214 522 c 1,181,-1
- 1241 549 l 1,182,-1
- 1204 575 l 1,183,-1
- 1190 575 l 1,184,-1
- 1192 426 l 1,185,-1
- 1189 367 l 1,186,-1
- 1181 325 l 2,187,188
- 1170 289 1170 289 1149 270 c 0,189,190
- 1117 241 1117 241 1034 238 c 0,191,192
- 918 230 918 230 879 217 c 0,193,194
- 817 199 817 199 770 117 c 2,195,-1
- 700 -18 l 1,196,-1
- 674 8 l 1,197,198
- 776 92 776 92 776 170 c 0,199,200
- 776 232 776 232 731 263 c 0,201,202
- 690 291 690 291 638 292 c 2,203,-1
- 623 291 l 1,204,205
- 651 425 651 425 651 485 c 0,206,207
- 651 491 651 491 651 496 c 2,208,-1
- 649 600 l 1,209,210
- 570 503 570 503 416 420 c 1,211,212
- 407 462 407 462 374 495 c 0,213,214
- 340 526 340 526 297 526 c 0,215,216
- 247 526 247 526 186 459 c 0,217,218
- 133 400 133 400 132 354 c 2,219,-1
- 133 342 l 1,220,-1
- 106 342 l 1,221,222
- 115 381 115 381 178 471 c 0,223,224
- 240 556 240 556 240 588 c 0,225,226
- 240 634 240 634 184 678 c 1,227,-1
- 186 733 l 2,228,229
- 186 752 186 752 180 788 c 0,230,231
- 174 826 174 826 174 844 c 0,232,233
- 174 899 174 899 236 967 c 0,234,235
- 250 985 250 985 340 1065 c 1,236,237
- 324 1101 324 1101 248 1186 c 0,238,239
- 184 1254 184 1254 184 1321 c 1,240,241
- 184 1294 184 1294 211 1270 c 1,242,-1
- 223 1270 l 2,243,244
- 244 1270 244 1270 262 1296 c 1,245,-1
- 262 1323 l 2,246,247
- 262 1383 262 1383 184 1374 c 1,248,249
- 188 1408 188 1408 219 1499 c 0,250,251
- 246 1577 246 1577 246 1624 c 0,252,253
- 246 1651 246 1651 236 1683 c 1,254,255
- 284 1683 284 1683 328 1753 c 1,256,-1
- 324 1753 l 1,257,-1
- 324 1761 l 1,258,-1
- 336 1792 l 1,259,-1
- 367 1765 l 1,260,261
- 390 1769 390 1769 442 1812 c 1,262,263
- 770 1565 770 1565 905 1090 c 1,264,265
- 940 1124 940 1124 952 1139 c 0,266,267
- 977 1168 977 1168 983 1200 c 1,268,269
- 946 1278 946 1278 946 1403 c 0,270,271
- 946 1405 946 1405 950 1493 c 1,154,-1
-479 600 m 0,272,273
- 456 600 456 600 397 555 c 1,274,-1
- 481 586 l 1,275,276
- 510 586 510 586 524 537 c 1,277,-1
- 528 553 l 2,278,279
- 528 600 528 600 479 600 c 0,272,273
-745 303 m 1,280,-1
- 745 330 l 1,281,-1
- 694 330 l 1,282,-1
- 745 303 l 1,280,-1
-842 365 m 1,283,284
- 842 347 842 347 883 309 c 1,285,-1
- 913 301 l 1,286,-1
- 965 389 l 1,287,-1
- 877 432 l 1,288,-1
- 842 365 l 1,283,284
-973 721 m 1,289,-1
- 969 694 l 2,290,291
- 969 653 969 653 983 637 c 1,292,293
- 1050 667 1050 667 1061 772 c 1,294,295
- 978 806 978 806 983 907 c 1,296,-1
- 926 788 l 2,297,298
- 887 712 887 712 850 684 c 1,299,-1
- 856 674 l 1,300,-1
- 834 657 l 1,301,-1
- 815 666 l 1,302,303
- 800 653 800 653 760 580 c 1,304,-1
- 973 721 l 1,289,-1
-1251 745 m 1,305,306
- 1220 726 1220 726 1219 694 c 0,307,308
- 1219 626 1219 626 1297 625 c 0,309,310
- 1311 625 1311 625 1327 627 c 1,311,312
- 1348 571 1348 571 1382 559 c 1,313,-1
- 1397 606 l 2,314,315
- 1397 622 1397 622 1324 673 c 0,316,317
- 1251 723 1251 723 1251 745 c 1,305,306
-397 1290 m 1,318,319
- 366 1271 366 1271 365 1239 c 0,320,321
- 365 1169 365 1169 447 1169 c 0,322,323
- 459 1169 459 1169 473 1171 c 1,324,325
- 494 1116 494 1116 528 1104 c 1,326,-1
- 543 1151 l 2,327,328
- 543 1166 543 1166 470 1218 c 0,329,330
- 397 1268 397 1268 397 1290 c 1,318,319
-1706 852 m 0,331,332
- 1706 807 1706 807 1679 807 c 2,333,-1
- 1602 807 l 1,334,335
- 1589 839 1589 839 1589 858 c 128,-1,336
- 1589 877 1589 877 1602 909 c 1,337,-1
- 1599 909 l 1,338,-1
- 1602 911 l 1,339,-1
- 1661 911 l 2,340,341
- 1706 911 1706 911 1706 852 c 0,331,332
-524 1597 m 0,342,343
- 524 1564 524 1564 442 1528 c 1,344,345
- 416 1540 416 1540 416 1575 c 2,346,-1
- 416 1630 l 1,347,348
- 429 1630 429 1630 454 1644 c 0,349,350
- 478 1657 478 1657 489 1657 c 0,351,352
- 524 1657 524 1657 524 1597 c 0,342,343
-EndSplineSet
-EndChar
-StartChar: uniE034
-Encoding: 57396 57396 360
-Width: 1429
-GlyphClass: 2
-Flags: W
-Fore
-852 492 m 1,0,-1
- 840 436 l 1,1,-1
- 823 436 l 1,2,-1
- 836 492 l 1,3,-1
- 852 492 l 1,0,-1
-852 375 m 1,4,-1
- 823 326 l 1,5,6
- 811 179 811 179 803 145 c 0,7,8
- 774 43 774 43 680 43 c 0,9,10
- 587 43 587 43 553 164 c 0,11,12
- 546 186 546 186 524 358 c 1,13,-1
- 575 369 l 1,14,-1
- 586 424 l 1,15,-1
- 797 424 l 1,16,-1
- 801 381 l 1,17,-1
- 852 424 l 1,18,-1
- 852 375 l 1,4,-1
-1194 1094 m 1,19,-1
- 1022 915 l 1,20,-1
- 963 1026 l 1,21,-1
- 1194 1094 l 1,19,-1
-735 1165 m 1,22,-1
- 608 1165 l 1,23,-1
- 680 1579 l 1,24,-1
- 735 1165 l 1,22,-1
-928 1237 m 1,25,26
- 928 1217 928 1217 923 1157 c 0,27,28
- 918 1113 918 1113 918 1077 c 1,29,30
- 856 1126 856 1126 813 1149 c 1,31,-1
- 928 1237 l 1,25,26
-1350 795 m 1,32,-1
- 1028 723 l 1,33,-1
- 1028 856 l 1,34,-1
- 1073 856 l 2,35,36
- 1126 856 1126 856 1212 829 c 0,37,38
- 1314 798 1314 798 1350 795 c 1,32,-1
-911 999 m 1,39,40
- 869 1040 869 1040 758 1081 c 1,41,-1
- 768 1110 l 1,42,43
- 826 1079 826 1079 911 999 c 1,39,40
-940 950 m 1,44,-1
- 928 938 l 1,45,-1
- 901 971 l 1,46,-1
- 911 983 l 1,47,-1
- 940 950 l 1,44,-1
-963 850 m 1,48,-1
- 950 850 l 1,49,-1
- 940 922 l 1,50,-1
- 956 922 l 1,51,-1
- 963 850 l 1,48,-1
-745 1094 m 1,52,-1
- 690 1094 l 1,53,-1
- 690 1104 l 1,54,-1
- 745 1104 l 1,55,-1
- 745 1094 l 1,52,-1
-956 739 m 1,56,-1
- 940 739 l 1,57,-1
- 940 827 l 1,58,-1
- 956 827 l 1,59,-1
- 956 739 l 1,56,-1
-680 1110 m 1,60,-1
- 592 1081 l 1,61,-1
- 602 1110 l 1,62,-1
- 680 1110 l 1,60,-1
-563 1149 m 1,63,64
- 534 1120 534 1120 465 1087 c 1,65,-1
- 436 1270 l 1,66,-1
- 563 1149 l 1,63,64
-1083 580 m 1,67,-1
- 956 602 l 1,68,69
- 966 634 966 634 1006 674 c 1,70,71
- 1026 657 1026 657 1083 580 c 1,67,-1
-559 1071 m 1,72,-1
- 504 1032 l 1,73,-1
- 498 1044 l 1,74,-1
- 547 1081 l 1,75,-1
- 559 1071 l 1,72,-1
-928 662 m 1,76,-1
- 891 590 l 1,77,-1
- 879 596 l 1,78,-1
- 918 668 l 1,79,-1
- 928 662 l 1,76,-1
-504 1022 m 1,80,-1
- 459 993 l 1,81,-1
- 453 1006 l 1,82,-1
- 492 1032 l 1,83,-1
- 504 1022 l 1,80,-1
-829 768 m 1,84,-1
- 807 768 l 2,85,86
- 762 768 762 768 741 756 c 1,87,-1
- 690 784 l 1,88,89
- 672 784 672 784 643 770 c 0,90,91
- 615 756 615 756 596 756 c 2,92,-1
- 559 756 l 1,93,94
- 574 823 574 823 696 823 c 0,95,96
- 716 823 716 823 755 814 c 0,97,98
- 792 805 792 805 813 805 c 1,99,-1
- 829 768 l 1,84,-1
-885 573 m 1,100,-1
- 846 502 l 1,101,-1
- 836 508 l 1,102,-1
- 868 573 l 1,103,-1
- 885 573 l 1,100,-1
-465 977 m 1,104,-1
- 420 905 l 1,105,-1
- 410 911 l 1,106,-1
- 449 983 l 1,107,-1
- 465 977 l 1,104,-1
-657 700 m 1,108,-1
- 647 700 l 1,109,-1
- 635 739 l 1,110,-1
- 651 739 l 1,111,-1
- 657 700 l 1,108,-1
-725 657 m 1,112,-1
- 719 612 l 1,113,-1
- 702 612 l 1,114,-1
- 713 657 l 1,115,-1
- 725 657 l 1,112,-1
-410 1022 m 1,116,117
- 378 951 378 951 348 915 c 1,118,-1
- 72 1182 l 1,119,-1
- 410 1022 l 1,116,117
-807 750 m 1,120,-1
- 725 508 l 1,121,122
- 740 486 740 486 797 440 c 1,123,124
- 774 440 774 440 733 455 c 0,125,126
- 691 469 691 469 670 469 c 1,127,-1
- 657 440 l 1,128,-1
- 592 440 l 1,129,130
- 615 470 615 470 657 502 c 1,131,132
- 636 584 636 584 590 739 c 1,133,134
- 609 681 609 681 670 584 c 1,135,-1
- 670 635 l 1,136,-1
- 696 573 l 1,137,-1
- 696 602 l 1,138,-1
- 735 584 l 1,139,140
- 769 695 769 695 807 750 c 1,120,-1
-414 811 m 1,141,-1
- 397 811 l 1,142,-1
- 393 895 l 1,143,-1
- 403 895 l 1,144,-1
- 414 811 l 1,141,-1
-414 750 m 1,145,-1
- 403 750 l 1,146,-1
- 393 788 l 1,147,-1
- 403 788 l 1,148,-1
- 414 750 l 1,145,-1
-449 662 m 1,149,-1
- 410 700 l 1,150,-1
- 426 733 l 1,151,-1
- 449 662 l 1,149,-1
-492 573 m 1,152,-1
- 481 567 l 1,153,-1
- 436 639 l 1,154,-1
- 453 639 l 1,155,-1
- 492 573 l 1,152,-1
-348 723 m 1,156,-1
- 209 811 l 1,157,158
- 232 822 232 822 342 856 c 1,159,160
- 348 829 348 829 348 788 c 2,161,-1
- 348 723 l 1,156,-1
-520 512 m 1,162,-1
- 504 512 l 1,163,-1
- 504 551 l 1,164,-1
- 520 551 l 1,165,-1
- 520 512 l 1,162,-1
-541 492 m 1,166,-1
- 537 401 l 1,167,-1
- 520 401 l 1,168,-1
- 530 492 l 1,169,-1
- 541 492 l 1,166,-1
-430 567 m 1,170,-1
- 205 528 l 1,171,-1
- 365 674 l 1,172,-1
- 430 567 l 1,170,-1
-EndSplineSet
-EndChar
-StartChar: uniE036
-Encoding: 57398 57398 361
-Width: 798
-GlyphClass: 2
-Flags: W
-Fore
-725 1487 m 1,0,-1
- 739 1444 l 1,1,2
- 531 1357 531 1357 424 1153 c 0,3,4
- 326 970 326 970 326 729 c 128,-1,5
- 326 488 326 488 424 305 c 0,6,7
- 532 102 532 102 739 14 c 1,8,-1
- 725 -29 l 1,9,10
- 431 36 431 36 258 233 c 0,11,12
- 84 434 84 434 84 729 c 0,13,14
- 84 1026 84 1026 260 1229 c 0,15,16
- 430 1424 430 1424 725 1487 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE037
-Encoding: 57399 57399 362
-Width: 798
-GlyphClass: 2
-Flags: W
-Fore
-76 -29 m 1,0,-1
- 59 14 l 1,1,2
- 265 102 265 102 375 305 c 0,3,4
- 473 490 473 490 473 729 c 128,-1,5
- 473 968 473 968 375 1153 c 0,6,7
- 266 1357 266 1357 59 1444 c 1,8,-1
- 76 1487 l 1,9,10
- 366 1424 366 1424 539 1227 c 0,11,12
- 717 1021 717 1021 717 729 c 0,13,14
- 717 438 717 438 539 231 c 0,15,16
- 367 36 367 36 76 -29 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE038
-Encoding: 57400 57400 363
-Width: 1183
-GlyphClass: 2
-Flags: W
-Fore
-874 1016 m 1,0,-1
- 432 1016 l 1,1,-1
- 432 762 l 1,2,3
- 541 739 541 739 600 739 c 0,4,5
- 718 739 718 739 793 817 c 0,6,7
- 867 895 867 895 874 1016 c 1,0,-1
-432 1087 m 1,8,-1
- 874 1087 l 1,9,10
- 865 1219 865 1219 786 1297 c 0,11,12
- 710 1374 710 1374 575 1374 c 0,13,14
- 498 1374 498 1374 432 1350 c 1,15,-1
- 432 1087 l 1,8,-1
-0 1087 m 1,16,-1
- 217 1087 l 1,17,-1
- 217 1227 l 2,18,19
- 217 1419 217 1419 10 1413 c 1,20,-1
- 10 1452 l 1,21,-1
- 674 1452 l 2,22,23
- 854 1452 854 1452 977 1362 c 0,24,25
- 1110 1262 1110 1262 1120 1087 c 1,26,-1
- 1190 1087 l 1,27,-1
- 1190 1016 l 1,28,-1
- 1118 1016 l 1,29,30
- 1104 842 1104 842 979 748 c 0,31,32
- 863 662 863 662 682 662 c 0,33,34
- 609 662 609 662 434 694 c 1,35,-1
- 434 225 l 2,36,37
- 434 40 434 40 630 40 c 0,38,39
- 642 40 642 40 655 41 c 1,40,-1
- 653 0 l 1,41,-1
- 8 4 l 1,42,-1
- 8 45 l 1,43,44
- 124 46 124 46 174 106 c 0,45,46
- 217 161 217 161 217 283 c 2,47,-1
- 217 1016 l 1,48,-1
- 0 1016 l 1,49,-1
- 0 1087 l 1,16,-1
-EndSplineSet
-EndChar
-StartChar: uniE03A
-Encoding: 57402 57402 364
-Width: 1566
-GlyphClass: 2
-Flags: W
-Fore
-1386 1090 m 1,0,1
- 1100 1309 1100 1309 891 1309 c 0,2,3
- 727 1309 727 1309 596 1202 c 0,4,5
- 472 1100 472 1100 414 942 c 1,6,-1
- 1333 942 l 1,7,-1
- 1247 764 l 1,8,-1
- 381 764 l 1,9,-1
- 381 700 l 1,10,-1
- 1231 700 l 1,11,-1
- 1145 526 l 1,12,-1
- 412 526 l 1,13,14
- 460 366 460 366 593 259 c 0,15,16
- 725 154 725 154 891 154 c 0,17,18
- 1124 154 1124 154 1405 387 c 1,19,-1
- 1405 176 l 1,20,21
- 1180 -25 1180 -25 897 -25 c 0,22,23
- 662 -25 662 -25 477 137 c 0,24,25
- 299 293 299 293 246 526 c 1,26,-1
- -2 526 l 1,27,-1
- 78 702 l 1,28,-1
- 219 702 l 1,29,-1
- 219 764 l 1,30,-1
- 0 764 l 1,31,-1
- 66 938 l 1,32,-1
- 238 938 l 1,33,34
- 313 1178 313 1178 475 1325 c 0,35,36
- 653 1487 653 1487 891 1487 c 0,37,38
- 1175 1487 1175 1487 1485 1260 c 1,39,-1
- 1386 1090 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE080
-Encoding: 57472 57472 365
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-1221 1386 m 1,0,-1
- 248 -55 l 1,1,-1
- 160 -55 l 1,2,-1
- 1130 1386 l 1,3,-1
- 1221 1386 l 1,0,-1
-352 1386 m 0,4,5
- 491 1386 491 1386 571 1270 c 0,6,7
- 643 1165 643 1165 643 1022 c 0,8,9
- 643 877 643 877 573 776 c 0,10,11
- 494 659 494 659 356 659 c 0,12,13
- 220 659 220 659 137 776 c 0,14,15
- 66 877 66 877 66 1022 c 0,16,17
- 66 1166 66 1166 135 1270 c 0,18,19
- 212 1386 212 1386 352 1386 c 0,4,5
-348 1333 m 0,20,21
- 225 1333 225 1333 225 1018 c 0,22,23
- 225 709 225 709 354 709 c 128,-1,24
- 483 709 483 709 483 1030 c 0,25,26
- 483 1333 483 1333 348 1333 c 0,20,21
-1028 674 m 0,27,28
- 1162 674 1162 674 1243 555 c 0,29,30
- 1317 449 1317 449 1317 311 c 0,31,32
- 1317 173 1317 173 1243 66 c 0,33,34
- 1159 -55 1159 -55 1026 -55 c 0,35,36
- 893 -55 893 -55 811 63 c 0,37,38
- 737 169 737 169 737 307 c 0,39,40
- 737 448 737 448 811 555 c 0,41,42
- 894 674 894 674 1028 674 c 0,27,28
-1024 621 m 0,43,44
- 897 621 897 621 897 299 c 0,45,46
- 897 0 897 0 1024 0 c 0,47,48
- 1155 0 1155 0 1155 303 c 0,49,50
- 1155 621 1155 621 1024 621 c 0,43,44
-1692 674 m 0,51,52
- 1825 674 1825 674 1907 559 c 0,53,54
- 1980 458 1980 458 1980 319 c 0,55,56
- 1980 166 1980 166 1915 66 c 0,57,58
- 1837 -55 1837 -55 1694 -55 c 0,59,60
- 1558 -55 1558 -55 1479 59 c 0,61,62
- 1407 162 1407 162 1407 301 c 0,63,64
- 1407 451 1407 451 1473 553 c 0,65,66
- 1549 674 1549 674 1692 674 c 0,51,52
-1692 621 m 0,67,68
- 1567 621 1567 621 1567 303 c 0,69,70
- 1567 0 1567 0 1696 0 c 0,71,72
- 1821 0 1821 0 1821 330 c 0,73,74
- 1821 621 1821 621 1692 621 c 0,67,68
-EndSplineSet
-EndChar
-StartChar: uniE081
-Encoding: 57473 57473 366
-Width: 2172
-GlyphClass: 2
-Flags: W
-Fore
-2140 -68 m 1,0,-1
- 2140 -78 l 2,1,2
- 2140 -211 2140 -211 2055 -280 c 0,3,4
- 1970 -348 1970 -348 1833 -348 c 2,5,-1
- 1229 -346 l 2,6,7
- 1100 -346 1100 -346 1100 -471 c 1,8,-1
- 1067 -471 l 1,9,10
- 1067 -398 1067 -398 1037 -373 c 0,11,12
- 1008 -346 1008 -346 936 -346 c 2,13,-1
- 332 -348 l 2,14,15
- 192 -348 192 -348 111 -276 c 0,16,17
- 29 -206 29 -206 29 -68 c 1,18,-1
- 61 -68 l 1,19,20
- 61 -265 61 -265 303 -268 c 2,21,-1
- 879 -276 l 2,22,23
- 1020 -279 1020 -279 1083 -408 c 1,24,25
- 1144 -279 1144 -279 1290 -276 c 2,26,-1
- 1864 -268 l 2,27,28
- 2107 -265 2107 -265 2107 -68 c 1,29,-1
- 2140 -68 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE082
-Encoding: 57474 57474 367
-Width: 2209
-GlyphClass: 2
-Flags: W
-Fore
-45 1339 m 1,0,-1
- 45 1350 l 2,1,2
- 45 1484 45 1484 133 1554 c 0,3,4
- 216 1620 216 1620 352 1620 c 2,5,-1
- 956 1618 l 2,6,7
- 1085 1618 1085 1618 1085 1743 c 1,8,-1
- 1118 1743 l 1,9,10
- 1118 1670 1118 1670 1148 1645 c 0,11,12
- 1178 1618 1178 1618 1249 1618 c 2,13,-1
- 1853 1620 l 2,14,15
- 1992 1620 1992 1620 2075 1548 c 0,16,17
- 2157 1477 2157 1477 2157 1339 c 1,18,-1
- 2124 1339 l 1,19,20
- 2124 1535 2124 1535 1882 1540 c 2,21,-1
- 1307 1548 l 2,22,23
- 1165 1551 1165 1551 1102 1679 c 1,24,25
- 1041 1551 1041 1551 895 1548 c 2,26,-1
- 322 1540 l 2,27,28
- 78 1536 78 1536 78 1339 c 1,29,-1
- 45 1339 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE083
-Encoding: 57475 57475 368
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-766 0 m 1,0,-1
- 766 543 l 1,1,-1
- 221 543 l 1,2,-1
- 221 641 l 1,3,-1
- 766 641 l 1,4,-1
- 766 1184 l 1,5,-1
- 864 1184 l 1,6,-1
- 864 641 l 1,7,-1
- 1407 641 l 1,8,-1
- 1407 543 l 1,9,-1
- 864 543 l 1,10,-1
- 864 0 l 1,11,-1
- 766 0 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE084
-Encoding: 57476 57476 369
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-1405 1061 m 1,0,-1
- 1405 954 l 1,1,-1
- 489 588 l 1,2,-1
- 1405 219 l 1,3,-1
- 1405 115 l 1,4,-1
- 221 588 l 1,5,-1
- 1405 1061 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE085
-Encoding: 57477 57477 370
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 1061 m 1,0,-1
- 1405 588 l 1,1,-1
- 221 115 l 1,2,-1
- 221 219 l 1,3,-1
- 1139 590 l 1,4,-1
- 221 954 l 1,5,-1
- 221 1061 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE086
-Encoding: 57478 57478 371
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 473 m 1,0,-1
- 221 580 l 1,1,-1
- 1405 106 l 1,2,-1
- 1405 0 l 1,3,-1
- 221 473 l 1,0,-1
-1405 1266 m 1,4,-1
- 1405 1159 l 1,5,-1
- 489 793 l 1,6,-1
- 1405 426 l 1,7,-1
- 1405 319 l 1,8,-1
- 221 793 l 1,9,-1
- 1405 1266 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE087
-Encoding: 57479 57479 372
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-1405 473 m 1,0,-1
- 221 0 l 1,1,-1
- 221 106 l 1,2,-1
- 1405 580 l 1,3,-1
- 1405 473 l 1,0,-1
-221 1266 m 1,4,-1
- 1405 793 l 1,5,-1
- 221 319 l 1,6,-1
- 221 426 l 1,7,-1
- 1139 795 l 1,8,-1
- 221 1159 l 1,9,-1
- 221 1266 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE089
-Encoding: 57481 57481 373
-Width: 1460
-GlyphClass: 2
-Flags: W
-Fore
-1241 1139 m 1,0,-1
- 1241 1024 l 1,1,-1
- 745 1024 l 2,2,3
- 312 1024 312 1024 242 651 c 1,4,-1
- 1241 651 l 1,5,-1
- 1241 530 l 1,6,-1
- 244 530 l 1,7,8
- 303 302 303 302 483 213 c 0,9,10
- 622 145 622 145 868 145 c 0,11,12
- 931 145 931 145 1057 151 c 0,13,14
- 1195 156 1195 156 1241 156 c 1,15,-1
- 1241 41 l 1,16,-1
- 764 41 l 2,17,18
- 485 41 485 41 313 174 c 0,19,20
- 123 321 123 321 123 592 c 0,21,22
- 123 858 123 858 313 1006 c 0,23,24
- 487 1139 487 1139 760 1139 c 2,25,-1
- 1241 1139 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE08A
-Encoding: 57482 57482 374
-Width: 1024
-GlyphClass: 2
-Flags: W
-Fore
-702 897 m 1,0,-1
- 885 897 l 1,1,-1
- 868 829 l 1,2,-1
- 688 829 l 1,3,4
- 592 336 592 336 514 96 c 0,5,6
- 340 -442 340 -442 125 -442 c 0,7,8
- 0 -442 0 -442 0 -334 c 0,9,10
- 0 -300 0 -300 23 -271 c 0,11,12
- 46 -244 46 -244 80 -244 c 0,13,14
- 145 -244 145 -244 145 -301 c 0,15,16
- 145 -307 145 -307 121 -358 c 1,17,-1
- 129 -375 l 1,18,-1
- 147 -381 l 1,19,20
- 236 -381 236 -381 311 -109 c 2,21,-1
- 385 229 l 1,22,-1
- 520 829 l 1,23,-1
- 340 829 l 1,24,-1
- 354 897 l 1,25,26
- 473 902 473 902 519 940 c 0,27,28
- 565 978 565 978 610 1114 c 0,29,30
- 664 1268 664 1268 698 1321 c 0,31,32
- 764 1421 764 1421 881 1421 c 0,33,34
- 1022 1421 1022 1421 1022 1307 c 0,35,36
- 1022 1229 1022 1229 952 1229 c 0,37,38
- 889 1229 889 1229 889 1284 c 0,39,40
- 889 1296 889 1296 899 1316 c 128,-1,41
- 909 1336 909 1336 909 1348 c 0,42,43
- 909 1374 909 1374 874 1374 c 0,44,45
- 794 1374 794 1374 745 1169 c 0,46,47
- 732 1103 732 1103 702 897 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE08B
-Encoding: 57483 57483 375
-Width: 1949
-GlyphClass: 2
-Flags: W
-Fore
-381 94 m 0,0,1
- 381 44 381 44 350 13 c 0,2,3
- 320 -18 320 -18 270 -18 c 0,4,5
- 222 -18 222 -18 193 14 c 0,6,7
- 160 47 160 47 160 94 c 0,8,9
- 160 139 160 139 193 172 c 0,10,11
- 224 205 224 205 270 205 c 0,12,13
- 317 205 317 205 349 173 c 128,-1,14
- 381 141 381 141 381 94 c 0,0,1
-1063 94 m 0,15,16
- 1063 46 1063 46 1032 14 c 0,17,18
- 1003 -18 1003 -18 954 -18 c 0,19,20
- 909 -18 909 -18 876 15 c 0,21,22
- 842 49 842 49 842 94 c 0,23,24
- 842 141 842 141 874 173 c 0,25,26
- 908 205 908 205 954 205 c 0,27,28
- 1063 205 1063 205 1063 94 c 0,15,16
-1747 94 m 0,29,30
- 1747 44 1747 44 1716 13 c 0,31,32
- 1686 -18 1686 -18 1636 -18 c 0,33,34
- 1588 -18 1588 -18 1556 14 c 0,35,36
- 1526 47 1526 47 1526 94 c 0,37,38
- 1526 139 1526 139 1559 172 c 0,39,40
- 1590 205 1590 205 1636 205 c 0,41,42
- 1683 205 1683 205 1715 173 c 128,-1,43
- 1747 141 1747 141 1747 94 c 0,29,30
-EndSplineSet
-EndChar
-StartChar: uniE08C
-Encoding: 57484 57484 376
-Width: 1726
-GlyphClass: 2
-Flags: W
-Fore
-1321 971 m 1,0,1
- 1347 945 1347 945 1464 786 c 0,2,3
- 1495 745 1495 745 1558 686 c 0,4,5
- 1621 626 1621 626 1651 586 c 1,6,-1
- 1327 201 l 1,7,-1
- 1309 199 l 2,8,9
- 1286 199 1286 199 1286 227 c 0,10,11
- 1286 277 1286 277 1464 530 c 1,12,-1
- 1452 541 l 1,13,-1
- 102 541 l 1,14,15
- 82 553 82 553 82 586 c 0,16,17
- 82 620 82 620 102 629 c 1,18,-1
- 1464 639 l 1,19,20
- 1286 877 1286 877 1286 946 c 0,21,22
- 1286 971 1286 971 1321 971 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE08D
-Encoding: 57485 57485 377
-Width: 1091
-GlyphClass: 2
-Flags: W
-Fore
-625 0 m 1,0,-1
- 238 694 l 1,1,-1
- 90 637 l 1,2,-1
- 66 668 l 1,3,-1
- 317 766 l 1,4,-1
- 662 150 l 1,5,-1
- 1077 1647 l 1,6,-1
- 1130 1647 l 1,7,-1
- 674 0 l 1,8,-1
- 625 0 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE08E
-Encoding: 57486 57486 378
-Width: 1054
-GlyphClass: 2
-Flags: W
-Fore
-551 0 m 1,0,-1
- 162 1034 l 1,1,-1
- 66 977 l 1,2,-1
- 43 1016 l 1,3,-1
- 233 1128 l 1,4,-1
- 545 229 l 1,5,-1
- 1032 1638 l 1,6,-1
- 1108 1638 l 1,7,-1
- 594 0 l 1,8,-1
- 551 0 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE08F
-Encoding: 57487 57487 379
-Width: 833
-GlyphClass: 2
-Flags: W
-Fore
-551 0 m 1,0,-1
- 176 651 l 1,1,-1
- 80 598 l 1,2,-1
- 61 627 l 1,3,-1
- 219 719 l 1,4,-1
- 551 152 l 1,5,-1
- 551 1647 l 1,6,-1
- 586 1647 l 1,7,-1
- 586 0 l 1,8,-1
- 551 0 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE090
-Encoding: 57488 57488 380
-Width: 788
-GlyphClass: 2
-Flags: W
-Fore
-252 -348 m 1,0,-1
- 252 1702 l 1,1,-1
- 350 1702 l 1,2,-1
- 350 -348 l 1,3,-1
- 252 -348 l 1,0,-1
-465 -348 m 1,4,-1
- 465 1702 l 1,5,-1
- 563 1702 l 1,6,-1
- 563 -348 l 1,7,-1
- 465 -348 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE091
-Encoding: 57489 57489 381
-Width: 681
-GlyphClass: 2
-Flags: W
-Fore
-666 1112 m 1,0,-1
- 631 1110 l 1,1,-1
- 360 1321 l 1,2,-1
- 76 1102 l 1,3,-1
- 33 1112 l 1,4,-1
- 362 1491 l 1,5,-1
- 666 1112 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE092
-Encoding: 57490 57490 382
-Width: 681
-GlyphClass: 2
-Flags: W
-Fore
-666 1481 m 1,0,-1
- 362 1102 l 1,1,-1
- 33 1481 l 1,2,-1
- 76 1491 l 1,3,-1
- 360 1272 l 1,4,-1
- 631 1483 l 1,5,-1
- 666 1481 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE093
-Encoding: 57491 57491 383
-Width: 942
-GlyphClass: 2
-Flags: W
-Fore
-467 1200 m 0,0,1
- 592 1200 592 1200 670 1286 c 0,2,3
- 727 1352 727 1352 770 1489 c 1,4,-1
- 846 1487 l 1,5,6
- 781 1288 781 1288 727 1221 c 0,7,8
- 637 1110 637 1110 467 1110 c 0,9,10
- 299 1110 299 1110 209 1221 c 0,11,12
- 149 1296 149 1296 92 1487 c 1,13,-1
- 176 1487 l 1,14,15
- 220 1346 220 1346 268 1284 c 0,16,17
- 338 1200 338 1200 467 1200 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uniE094
-Encoding: 57492 57492 384
-Width: 681
-GlyphClass: 2
-Flags: W
-Fore
-565 1456 m 1,0,-1
- 270 1110 l 1,1,-1
- 236 1110 l 1,2,-1
- 342 1456 l 1,3,-1
- 565 1456 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE095
-Encoding: 57493 57493 385
-Width: 681
-GlyphClass: 2
-Flags: W
-Fore
-117 1477 m 1,0,-1
- 342 1477 l 1,1,-1
- 446 1130 l 1,2,-1
- 412 1130 l 1,3,-1
- 117 1477 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE096
-Encoding: 57494 57494 386
-Width: 681
-GlyphClass: 2
-Flags: W
-Fore
-53 1217 m 1,0,-1
- 23 1217 l 1,1,2
- 32 1475 32 1475 211 1475 c 0,3,4
- 255 1475 255 1475 535 1335 c 1,5,6
- 602 1335 602 1335 631 1475 c 1,7,-1
- 662 1475 l 1,8,-1
- 662 1462 l 2,9,10
- 662 1366 662 1366 616 1294 c 0,11,12
- 563 1212 563 1212 471 1212 c 0,13,14
- 411 1212 411 1212 147 1354 c 1,15,16
- 82 1354 82 1354 53 1217 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE097
-Encoding: 57495 57495 387
-Width: 1024
-GlyphClass: 2
-Flags: W
-Fore
-102 1407 m 1,0,-1
- 934 1407 l 1,1,-1
- 934 1331 l 1,2,-1
- 102 1331 l 1,3,-1
- 102 1407 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE098
-Encoding: 57496 57496 388
-Width: 1056
-GlyphClass: 2
-Flags: W
-Fore
-98 1313 m 1,0,-1
- 98 1425 l 1,1,-1
- 686 1425 l 1,2,-1
- 645 1575 l 1,3,-1
- 1026 1368 l 1,4,-1
- 645 1163 l 1,5,-1
- 686 1313 l 1,6,-1
- 98 1313 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE09B
-Encoding: 57499 57499 389
-Width: 860
-GlyphClass: 2
-Flags: W
-Fore
-25 1376 m 0,0,1
- 25 1415 25 1415 53 1446 c 0,2,3
- 82 1477 82 1477 121 1477 c 0,4,5
- 162 1477 162 1477 191 1447 c 0,6,7
- 221 1417 221 1417 221 1376 c 0,8,9
- 221 1333 221 1333 193 1306 c 0,10,11
- 164 1278 164 1278 121 1278 c 0,12,13
- 81 1278 81 1278 52 1307 c 0,14,15
- 25 1336 25 1336 25 1376 c 0,0,1
-319 1378 m 0,16,17
- 319 1416 319 1416 348 1448 c 0,18,19
- 377 1479 377 1479 416 1479 c 0,20,21
- 458 1479 458 1479 486 1449 c 0,22,23
- 516 1419 516 1419 516 1378 c 0,24,25
- 516 1334 516 1334 487 1308 c 0,26,27
- 459 1280 459 1280 416 1280 c 0,28,29
- 376 1280 376 1280 347 1309 c 0,30,31
- 319 1339 319 1339 319 1378 c 0,16,17
-612 1378 m 0,32,33
- 612 1416 612 1416 641 1448 c 0,34,35
- 670 1479 670 1479 709 1479 c 0,36,37
- 749 1479 749 1479 779 1449 c 128,-1,38
- 809 1419 809 1419 809 1378 c 0,39,40
- 809 1335 809 1335 780 1308 c 0,41,42
- 752 1280 752 1280 709 1280 c 0,43,44
- 667 1280 667 1280 640 1309 c 0,45,46
- 612 1339 612 1339 612 1378 c 0,32,33
-EndSplineSet
-EndChar
-StartChar: uniE09E
-Encoding: 57502 57502 390
-Width: 638
-GlyphClass: 2
-Flags: W
-Fore
-537 -424 m 1,0,1
- 342 -260 342 -260 238 39 c 0,2,3
- 147 300 147 300 147 590 c 0,4,5
- 147 872 147 872 240 1141 c 0,6,7
- 347 1457 347 1457 537 1602 c 1,8,-1
- 537 1552 l 1,9,10
- 397 1422 397 1422 322 1102 c 0,11,12
- 264 851 264 851 264 590 c 0,13,14
- 264 331 264 331 322 78 c 0,15,16
- 397 -246 397 -246 537 -373 c 1,17,-1
- 537 -424 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE09F
-Encoding: 57503 57503 391
-Width: 638
-GlyphClass: 2
-Flags: W
-Fore
-102 -373 m 1,0,1
- 237 -251 237 -251 311 57 c 0,2,3
- 373 308 373 308 373 547 c 0,4,5
- 373 832 373 832 319 1081 c 0,6,7
- 250 1416 250 1416 102 1552 c 1,8,-1
- 102 1602 l 1,9,10
- 293 1465 293 1465 399 1143 c 0,11,12
- 489 873 489 873 489 590 c 0,13,14
- 489 301 489 301 401 37 c 0,15,16
- 294 -280 294 -280 102 -424 c 1,17,-1
- 102 -373 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE0A0
-Encoding: 57504 57504 392
-Width: 1536
-GlyphClass: 2
-Flags: W
-Fore
-922 102 m 1,0,1
- 892 312 892 312 758 492 c 1,2,-1
- 389 102 l 1,3,-1
- 922 102 l 1,0,1
-1331 1188 m 1,4,-1
- 1331 1044 l 1,5,-1
- 840 553 l 1,6,7
- 986 363 986 363 1024 102 c 1,8,-1
- 1331 102 l 1,9,-1
- 1331 0 l 1,10,-1
- 143 0 l 1,11,-1
- 1331 1188 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE0A1
-Encoding: 57505 57505 393
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-229 713 m 1,0,-1
- 811 1208 l 1,1,-1
- 1374 729 l 1,2,-1
- 1270 729 l 1,3,-1
- 807 1057 l 1,4,-1
- 336 713 l 1,5,-1
- 229 713 l 1,0,-1
-221 543 m 1,6,-1
- 221 641 l 1,7,-1
- 1405 641 l 1,8,-1
- 1405 543 l 1,9,-1
- 221 543 l 1,6,-1
-EndSplineSet
-EndChar
-StartChar: uniE0A5
-Encoding: 57509 57509 394
-Width: 569
-GlyphClass: 2
-Flags: W
-Fore
-485 905 m 1,0,-1
- 225 10 l 2,1,2
- 94 -442 94 -442 -223 -442 c 0,3,4
- -352 -442 -352 -442 -352 -344 c 0,5,6
- -352 -312 -352 -312 -328 -290 c 0,7,8
- -302 -266 -302 -266 -270 -266 c 0,9,10
- -246 -266 -246 -266 -224 -282 c 0,11,12
- -203 -297 -203 -297 -203 -319 c 1,13,14
- -215 -351 -215 -351 -242 -383 c 1,15,-1
- -240 -387 l 1,16,-1
- -229 -393 l 1,17,-1
- -213 -395 l 2,18,19
- -108 -395 -108 -395 -47 -313 c 0,20,21
- -7 -258 -7 -258 29 -137 c 2,22,-1
- 254 631 l 2,23,24
- 287 744 287 744 287 756 c 0,25,26
- 287 815 287 815 207 815 c 0,27,28
- 184 815 184 815 141 809 c 1,29,-1
- 141 844 l 1,30,-1
- 485 905 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE0A6
-Encoding: 57510 57510 395
-Width: 765
-GlyphClass: 2
-Flags: W
-Fore
-152 240 m 1,0,-1
- 115 248 l 1,1,2
- 188 401 188 401 274 641 c 2,3,-1
- 422 1038 l 2,4,5
- 478 1178 478 1178 555 1178 c 0,6,7
- 625 1178 625 1178 625 1110 c 0,8,9
- 625 1052 625 1052 418 696 c 2,10,-1
- 152 240 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE0A7
-Encoding: 57511 57511 396
-Width: 741
-GlyphClass: 2
-Flags: W
-Fore
-391 993 m 1,0,-1
- 494 993 l 1,1,-1
- 494 0 l 1,2,-1
- 391 0 l 1,3,-1
- 391 993 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE0A8
-Encoding: 57512 57512 397
-Width: 890
-GlyphClass: 2
-Flags: W
-Fore
-76 -575 m 1,0,-1
- 778 1536 l 1,1,-1
- 817 1536 l 1,2,-1
- 115 -575 l 1,3,-1
- 76 -575 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE0A9
-Encoding: 57513 57513 398
-Width: 890
-GlyphClass: 2
-Flags: W
-Fore
-817 -575 m 1,0,-1
- 778 -575 l 1,1,-1
- 76 1536 l 1,2,-1
- 115 1536 l 1,3,-1
- 817 -575 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE0AA
-Encoding: 57514 57514 399
-Width: 1824
-GlyphClass: 2
-Flags: W
-Fore
-272 297 m 1,0,-1
- 1356 297 l 1,1,-1
- 1356 1382 l 1,2,-1
- 272 1382 l 1,3,-1
- 272 297 l 1,0,-1
-174 1481 m 1,4,-1
- 1456 1481 l 1,5,-1
- 1653 1282 l 1,6,-1
- 1653 0 l 1,7,-1
- 371 0 l 1,8,-1
- 174 197 l 1,9,-1
- 174 1481 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE0AB
-Encoding: 57515 57515 400
-Width: 833
-GlyphClass: 2
-Flags: W
-Fore
-551 0 m 1,0,-1
- 551 993 l 1,1,-1
- 586 993 l 1,2,-1
- 586 0 l 1,3,-1
- 551 0 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE0AC
-Encoding: 57516 57516 401
-Width: 1267
-GlyphClass: 2
-Flags: W
-Fore
-674 1303 m 1,0,-1
- 461 227 l 2,1,2
- 446 156 446 156 446 106 c 0,3,4
- 446 43 446 43 594 43 c 0,5,6
- 607 43 607 43 621 43 c 1,7,-1
- 608 -14 l 1,8,-1
- 41 -14 l 1,9,-1
- 51 43 l 1,10,11
- 155 58 155 58 200 96 c 0,12,13
- 246 136 246 136 264 227 c 2,14,-1
- 442 1133 l 2,15,16
- 459 1220 459 1220 459 1268 c 0,17,18
- 459 1315 459 1315 305 1319 c 1,19,-1
- 317 1378 l 1,20,-1
- 1268 1378 l 1,21,-1
- 1221 1133 l 1,22,-1
- 1116 1133 l 1,23,24
- 1116 1152 1116 1152 1127 1194 c 0,25,26
- 1139 1234 1139 1234 1139 1255 c 0,27,28
- 1139 1303 1139 1303 1004 1303 c 2,29,-1
- 674 1303 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE0AD
-Encoding: 57517 57517 402
-Width: 1568
-GlyphClass: 2
-Flags: W
-Fore
-90 4 m 1,0,-1
- 115 131 l 1,1,-1
- 965 1407 l 1,2,-1
- 1030 1409 l 1,3,-1
- 1391 131 l 1,4,-1
- 1366 4 l 1,5,-1
- 90 4 l 1,0,-1
-195 131 m 1,6,-1
- 1186 131 l 1,7,-1
- 889 1178 l 1,8,-1
- 195 131 l 1,6,-1
-EndSplineSet
-EndChar
-StartChar: uniE0AE
-Encoding: 57518 57518 403
-Width: 1619
-GlyphClass: 2
-Flags: W
-Fore
-649 -25 m 0,0,1
- 408 -25 408 -25 274 115 c 0,2,3
- 141 257 141 257 141 498 c 0,4,5
- 141 898 141 898 358 1159 c 0,6,7
- 593 1436 593 1436 985 1436 c 0,8,9
- 1232 1436 1232 1436 1366 1295 c 0,10,11
- 1499 1156 1499 1156 1499 907 c 0,12,13
- 1499 512 1499 512 1274 252 c 0,14,15
- 1035 -25 1035 -25 649 -25 c 0,0,1
-352 463 m 0,16,17
- 352 288 352 288 434 172 c 0,18,19
- 528 43 528 43 696 43 c 0,20,21
- 975 43 975 43 1149 346 c 0,22,23
- 1294 602 1294 602 1294 905 c 0,24,25
- 1294 1095 1294 1095 1219 1221 c 0,26,27
- 1126 1370 1126 1370 948 1370 c 0,28,29
- 654 1370 654 1370 487 1049 c 0,30,31
- 352 788 352 788 352 463 c 0,16,17
-1049 508 m 1,32,-1
- 979 508 l 1,33,34
- 999 625 999 625 999 635 c 0,35,36
- 999 686 999 686 885 686 c 2,37,-1
- 762 686 l 2,38,39
- 667 686 667 686 637 639 c 0,40,41
- 618 616 618 616 596 508 c 1,42,-1
- 524 508 l 1,43,-1
- 612 948 l 1,44,-1
- 682 948 l 1,45,46
- 670 842 670 842 670 813 c 0,47,48
- 670 774 670 774 764 774 c 2,49,-1
- 901 774 l 2,50,51
- 994 774 994 774 1024 819 c 0,52,53
- 1043 846 1043 846 1065 948 c 1,54,-1
- 1135 948 l 1,55,-1
- 1049 508 l 1,32,-1
-EndSplineSet
-EndChar
-StartChar: uniE0AF
-Encoding: 57519 57519 404
-Width: 1605
-GlyphClass: 2
-Flags: W
-Fore
-901 1141 m 1,0,-1
- 551 592 l 2,1,2
- 265 138 265 138 264 94 c 0,3,4
- 264 61 264 61 317 61 c 1,5,-1
- 313 61 l 1,6,-1
- 317 63 l 1,7,-1
- 373 66 l 1,8,-1
- 408 61 l 1,9,-1
- 397 2 l 1,10,-1
- 25 2 l 1,11,-1
- 37 61 l 1,12,13
- 137 71 137 71 182 115 c 0,14,15
- 197 129 197 129 268 246 c 2,16,-1
- 989 1413 l 1,17,-1
- 1055 1413 l 1,18,-1
- 1309 240 l 2,19,20
- 1328 145 1328 145 1350 115 c 0,21,22
- 1381 70 1381 70 1468 61 c 1,23,-1
- 1458 2 l 1,24,-1
- 942 2 l 1,25,-1
- 952 61 l 1,26,-1
- 1024 57 l 1,27,-1
- 1024 57 l 1,28,29
- 1114 57 1114 57 1114 106 c 0,30,31
- 1114 178 1114 178 1100 246 c 2,32,-1
- 901 1141 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE0B0
-Encoding: 57520 57520 405
-Width: 1423
-GlyphClass: 2
-Flags: W
-Fore
-1329 1092 m 1,0,-1
- 1239 1092 l 1,1,2
- 1255 1213 1255 1213 1255 1219 c 0,3,4
- 1255 1255 1255 1255 1126 1255 c 2,5,-1
- 635 1255 l 2,6,7
- 540 1255 540 1255 502 1221 c 0,8,9
- 464 1186 464 1186 438 1092 c 1,10,-1
- 346 1092 l 1,11,-1
- 406 1395 l 1,12,-1
- 1391 1395 l 1,13,-1
- 1329 1092 l 1,0,-1
-1126 530 m 1,14,-1
- 1034 530 l 1,15,16
- 1051 640 1051 640 1051 643 c 0,17,18
- 1051 694 1051 694 920 694 c 2,19,-1
- 606 694 l 2,20,21
- 510 694 510 694 477 655 c 0,22,23
- 464 637 464 637 426 530 c 1,24,-1
- 336 530 l 1,25,-1
- 418 948 l 1,26,-1
- 512 948 l 1,27,28
- 492 831 492 831 492 817 c 0,29,30
- 492 786 492 786 633 786 c 2,31,-1
- 975 786 l 2,32,33
- 1050 786 1050 786 1079 834 c 0,34,35
- 1097 858 1097 858 1116 948 c 1,36,-1
- 1210 948 l 1,37,-1
- 1126 530 l 1,14,-1
-1184 2 m 1,38,-1
- 70 2 l 1,39,-1
- 133 326 l 1,40,-1
- 231 326 l 1,41,42
- 219 222 219 222 219 217 c 0,43,44
- 219 164 219 164 365 164 c 2,45,-1
- 977 164 l 2,46,47
- 1054 164 1054 164 1096 209 c 0,48,49
- 1127 244 1127 244 1149 326 c 1,50,-1
- 1249 326 l 1,51,-1
- 1184 2 l 1,38,-1
-EndSplineSet
-EndChar
-StartChar: uniE0B1
-Encoding: 57521 57521 406
-Width: 1755
-GlyphClass: 2
-Flags: W
-Fore
-684 1319 m 1,0,-1
- 471 244 l 2,1,2
- 455 164 455 164 455 113 c 0,3,4
- 455 77 455 77 516 68 c 0,5,6
- 526 65 526 65 606 59 c 1,7,-1
- 596 2 l 1,8,-1
- 51 2 l 1,9,-1
- 61 59 l 1,10,11
- 161 74 161 74 209 113 c 0,12,13
- 256 153 256 153 274 244 c 2,14,-1
- 453 1149 l 2,15,16
- 469 1230 469 1230 469 1284 c 0,17,18
- 469 1334 469 1334 315 1335 c 1,19,-1
- 328 1395 l 1,20,-1
- 1731 1395 l 1,21,-1
- 1720 1335 l 1,22,23
- 1615 1323 1615 1323 1572 1288 c 0,24,25
- 1530 1253 1530 1253 1509 1149 c 2,26,-1
- 1329 244 l 2,27,28
- 1313 164 1313 164 1313 113 c 0,29,30
- 1313 65 1313 65 1466 59 c 1,31,-1
- 1454 2 l 1,32,-1
- 909 2 l 1,33,-1
- 922 59 l 1,34,35
- 1023 74 1023 74 1068 112 c 0,36,37
- 1113 148 1113 148 1133 246 c 2,38,-1
- 1346 1319 l 1,39,-1
- 684 1319 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE0B2
-Encoding: 57522 57522 407
-Width: 1425
-GlyphClass: 2
-Flags: W
-Fore
-16 6 m 1,0,-1
- 43 139 l 1,1,-1
- 776 662 l 1,2,-1
- 322 1311 l 1,3,-1
- 340 1399 l 1,4,-1
- 1395 1399 l 1,5,-1
- 1346 1153 l 1,6,-1
- 1241 1153 l 1,7,8
- 1241 1172 1241 1172 1252 1214 c 0,9,10
- 1264 1256 1264 1256 1264 1276 c 0,11,12
- 1264 1323 1264 1323 1133 1323 c 2,13,-1
- 588 1323 l 1,14,-1
- 987 741 l 1,15,-1
- 145 139 l 1,16,-1
- 924 139 l 2,17,18
- 1026 139 1026 139 1061 174 c 0,19,20
- 1096 210 1096 210 1116 313 c 1,21,-1
- 1217 313 l 1,22,-1
- 1157 6 l 1,23,-1
- 16 6 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE0B3
-Encoding: 57523 57523 408
-Width: 1265
-GlyphClass: 2
-Flags: W
-Fore
-104 1333 m 1,0,-1
- 115 1397 l 1,1,2
- 366 1397 366 1397 500 1233 c 0,3,4
- 618 1087 618 1087 618 842 c 0,5,6
- 618 771 618 771 610 715 c 1,7,8
- 911 1304 911 1304 1311 1397 c 1,9,-1
- 1300 1333 l 1,10,11
- 1031 1238 1031 1238 850 987 c 0,12,13
- 692 769 692 769 616 461 c 0,14,15
- 557 219 557 219 557 115 c 0,16,17
- 557 61 557 61 703 61 c 0,18,19
- 711 61 l 1,20,-1
- 698 4 l 1,21,-1
- 152 4 l 1,22,-1
- 164 61 l 1,23,24
- 272 64 272 64 326 94 c 0,25,26
- 364 116 364 116 406 373 c 0,27,28
- 440 593 440 593 440 690 c 0,29,30
- 440 906 440 906 371 1071 c 0,31,32
- 281 1282 281 1282 104 1333 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE0B4
-Encoding: 57524 57524 409
-Width: 1443
-GlyphClass: 2
-Flags: W
-Fore
-557 293 m 1,0,1
- 111 293 111 293 111 637 c 0,2,3
- 111 860 111 860 309 991 c 0,4,5
- 482 1106 482 1106 719 1106 c 1,6,7
- 743 1214 743 1214 743 1286 c 0,8,9
- 743 1339 743 1339 592 1339 c 1,10,-1
- 602 1397 l 1,11,-1
- 1147 1397 l 1,12,-1
- 1137 1339 l 1,13,14
- 1012 1327 1012 1327 971 1276 c 0,15,16
- 941 1240 941 1240 915 1106 c 1,17,18
- 1364 1106 1364 1106 1364 766 c 0,19,20
- 1364 544 1364 544 1163 412 c 0,21,22
- 986 293 986 293 754 293 c 1,23,24
- 729 187 729 187 729 115 c 0,25,26
- 729 63 729 63 875 63 c 0,27,28
- 883 63 l 1,29,-1
- 870 4 l 1,30,-1
- 326 4 l 1,31,-1
- 338 63 l 1,32,33
- 464 74 464 74 504 123 c 0,34,35
- 536 158 536 158 557 293 c 1,0,1
-569 358 m 1,36,-1
- 707 1042 l 1,37,38
- 303 988 303 988 303 604 c 0,39,40
- 303 369 303 369 569 358 c 1,36,-1
-903 1042 m 1,41,-1
- 768 358 l 1,42,43
- 949 372 949 372 1058 485 c 0,44,45
- 1167 600 1167 600 1167 780 c 0,46,47
- 1167 1018 1167 1018 903 1042 c 1,41,-1
-EndSplineSet
-EndChar
-StartChar: uniE0B5
-Encoding: 57525 57525 410
-Width: 1607
-GlyphClass: 2
-Flags: W
-Fore
-602 635 m 1,0,1
- 360 647 360 647 303 827 c 0,2,3
- 297 853 297 853 279 1159 c 0,4,5
- 269 1331 269 1331 143 1331 c 2,6,-1
- 139 1331 l 1,7,-1
- 150 1395 l 1,8,-1
- 197 1395 l 2,9,10
- 378 1395 378 1395 428 1257 c 0,11,12
- 449 1197 449 1197 449 969 c 0,13,14
- 449 846 449 846 475 791 c 0,15,16
- 512 704 512 704 616 698 c 1,17,-1
- 686 989 l 2,18,19
- 723 1153 723 1153 723 1284 c 0,20,21
- 723 1336 723 1336 569 1337 c 1,22,-1
- 580 1395 l 1,23,-1
- 1126 1395 l 1,24,-1
- 1114 1337 l 1,25,26
- 1004 1324 1004 1324 967 1290 c 0,27,28
- 924 1256 924 1256 903 1151 c 2,29,-1
- 813 698 l 1,30,31
- 932 698 932 698 1016 836 c 0,32,33
- 1045 882 1045 882 1143 1114 c 0,34,35
- 1217 1289 1217 1289 1293 1341 c 0,36,37
- 1371 1395 1371 1395 1554 1395 c 1,38,-1
- 1542 1331 l 1,39,40
- 1437 1320 1437 1320 1393 1272 c 0,41,42
- 1376 1254 1376 1254 1321 1116 c 0,43,44
- 1227 882 1227 882 1139 780 c 0,45,46
- 1010 635 1010 635 801 635 c 1,47,-1
- 737 377 l 2,48,49
- 707 227 707 227 707 113 c 0,50,51
- 707 61 707 61 858 61 c 1,52,-1
- 850 2 l 1,53,-1
- 305 2 l 1,54,-1
- 315 61 l 1,55,56
- 418 71 418 71 464 110 c 0,57,58
- 510 147 510 147 528 246 c 2,59,-1
- 602 635 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE0B6
-Encoding: 57526 57526 411
-Width: 1763
-GlyphClass: 2
-Flags: W
-Fore
-1047 119 m 1,0,-1
- 1196 119 l 2,1,2
- 1316 119 1316 119 1360 145 c 0,3,4
- 1412 178 1412 178 1450 295 c 1,5,-1
- 1554 295 l 1,6,-1
- 1495 -2 l 1,7,-1
- 938 -2 l 1,8,-1
- 963 119 l 1,9,10
- 1430 529 1430 529 1430 952 c 0,11,12
- 1430 1130 1430 1130 1339 1239 c 0,13,14
- 1241 1354 1241 1354 1067 1354 c 0,15,16
- 792 1354 792 1354 629 1126 c 0,17,18
- 483 923 483 923 483 639 c 0,19,20
- 483 394 483 394 678 119 c 1,21,-1
- 653 -2 l 1,22,-1
- 98 -2 l 1,23,-1
- 158 295 l 1,24,-1
- 262 295 l 1,25,26
- 246 219 246 219 246 174 c 0,27,28
- 246 115 246 115 465 115 c 0,29,30
- 517 115 517 115 596 119 c 1,31,32
- 279 437 279 437 279 686 c 0,33,34
- 279 1024 279 1024 514 1229 c 0,35,36
- 736 1423 736 1423 1079 1423 c 0,37,38
- 1326 1423 1326 1423 1475 1296 c 0,39,40
- 1632 1162 1632 1162 1632 920 c 0,41,42
- 1632 683 1632 683 1438 457 c 0,43,44
- 1312 310 1312 310 1047 119 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE0B7
-Encoding: 57527 57527 412
-Width: 1232
-GlyphClass: 2
-Flags: W
-Fore
-952 2 m 1,0,1
- 883 104 883 104 797 291 c 1,2,3
- 508 -18 508 -18 293 -18 c 0,4,5
- 181 -18 181 -18 125 86 c 0,6,7
- 82 168 82 168 82 291 c 0,8,9
- 82 525 82 525 215 719 c 0,10,11
- 365 936 365 936 588 936 c 0,12,13
- 700 936 700 936 780 784 c 0,14,15
- 814 719 814 719 872 532 c 1,16,17
- 990 778 990 778 991 913 c 1,18,-1
- 1169 913 l 1,19,20
- 1152 738 1152 738 918 432 c 1,21,22
- 1044 128 1044 128 1153 2 c 1,23,-1
- 952 2 l 1,0,1
-764 358 m 1,24,25
- 697 583 697 583 668 647 c 0,26,27
- 581 852 581 852 492 852 c 0,28,29
- 377 852 377 852 309 631 c 0,30,31
- 260 466 260 466 260 311 c 0,32,33
- 260 80 260 80 389 80 c 0,34,35
- 497 80 497 80 604 174 c 0,36,37
- 666 228 666 228 764 358 c 1,24,25
-EndSplineSet
-EndChar
-StartChar: uniE0B8
-Encoding: 57528 57528 413
-Width: 1130
-GlyphClass: 2
-Flags: W
-Fore
-45 -332 m 1,0,-1
- 281 846 l 2,1,2
- 383 1360 383 1360 770 1360 c 0,3,4
- 1018 1360 1018 1360 1018 1135 c 0,5,6
- 1018 892 1018 892 700 758 c 1,7,8
- 979 688 979 688 979 420 c 0,9,10
- 979 213 979 213 825 92 c 0,11,12
- 685 -18 685 -18 473 -18 c 0,13,14
- 390 -18 390 -18 281 20 c 1,15,-1
- 211 -332 l 1,16,-1
- 45 -332 l 1,0,-1
-309 154 m 1,17,18
- 405 39 405 39 547 39 c 0,19,20
- 674 39 674 39 750 147 c 0,21,22
- 815 245 815 245 815 377 c 0,23,24
- 815 525 815 525 721 606 c 0,25,26
- 633 682 633 682 483 682 c 1,27,-1
- 498 766 l 1,28,29
- 656 766 656 766 754 858 c 0,30,31
- 850 951 850 951 850 1108 c 0,32,33
- 850 1292 850 1292 688 1292 c 0,34,35
- 578 1292 578 1292 518 1147 c 0,36,37
- 500 1097 500 1097 461 905 c 2,38,-1
- 309 154 l 1,17,18
-EndSplineSet
-EndChar
-StartChar: uniE0B9
-Encoding: 57529 57529 414
-Width: 1247
-GlyphClass: 2
-Flags: W
-Fore
-436 49 m 1,0,1
- 419 245 419 245 383 416 c 0,2,3
- 326 683 326 683 254 735 c 0,4,5
- 182 789 182 789 41 786 c 1,6,-1
- 174 907 l 1,7,8
- 420 907 420 907 520 649 c 0,9,10
- 572 512 572 512 602 182 c 1,11,12
- 973 601 973 601 973 805 c 0,13,14
- 973 861 973 861 944 907 c 1,15,-1
- 1153 907 l 1,16,17
- 1157 882 1157 882 1157 864 c 0,18,19
- 1157 756 1157 756 932 475 c 2,20,-1
- 614 109 l 1,21,22
- 618 48 618 48 618 -10 c 0,23,24
- 618 -196 618 -196 530 -330 c 0,25,26
- 428 -487 428 -487 254 -487 c 0,27,28
- 186 -487 186 -487 131 -445 c 0,29,30
- 76 -403 76 -403 76 -338 c 0,31,32
- 76 -166 76 -166 436 49 c 1,0,1
-449 -14 m 1,33,34
- 156 -192 156 -192 156 -311 c 0,35,36
- 156 -397 156 -397 242 -397 c 0,37,38
- 344 -397 344 -397 401 -287 c 0,39,40
- 451 -196 451 -196 451 -86 c 0,41,42
- 451 -44 451 -44 449 -14 c 1,33,34
-EndSplineSet
-EndChar
-StartChar: uniE0BA
-Encoding: 57530 57530 415
-Width: 1157
-GlyphClass: 2
-Flags: W
-Fore
-1073 1280 m 1,0,-1
- 977 1159 l 1,1,2
- 846 1272 846 1272 657 1272 c 0,3,4
- 532 1272 532 1272 532 1196 c 0,5,6
- 532 1169 532 1169 649 1049 c 0,7,8
- 806 887 806 887 866 805 c 0,9,10
- 983 644 983 644 983 516 c 0,11,12
- 983 286 983 286 844 137 c 0,13,14
- 701 -18 701 -18 473 -18 c 0,15,16
- 330 -18 330 -18 237 76 c 0,17,18
- 143 170 143 170 143 313 c 0,19,20
- 143 545 143 545 286 688 c 0,21,22
- 428 831 428 831 659 831 c 1,23,24
- 554 933 554 933 522 975 c 0,25,26
- 444 1071 444 1071 444 1149 c 0,27,28
- 444 1255 444 1255 559 1309 c 0,29,30
- 646 1350 646 1350 766 1350 c 0,31,32
- 915 1350 915 1350 1073 1280 c 1,0,-1
-317 264 m 0,33,34
- 317 35 317 35 494 35 c 0,35,36
- 647 35 647 35 737 225 c 0,37,38
- 809 376 809 376 809 551 c 0,39,40
- 809 780 809 780 625 780 c 0,41,42
- 468 780 468 780 383 590 c 0,43,44
- 317 443 317 443 317 264 c 0,33,34
-EndSplineSet
-EndChar
-StartChar: uniE0BB
-Encoding: 57531 57531 416
-Width: 974
-GlyphClass: 2
-Flags: W
-Fore
-768 45 m 1,0,1
- 608 -4 608 -4 473 -4 c 0,2,3
- 305 -4 305 -4 209 98 c 0,4,5
- 111 202 111 202 111 373 c 0,6,7
- 111 634 111 634 262 792 c 0,8,9
- 414 950 414 950 672 950 c 0,10,11
- 762 950 762 950 883 920 c 1,12,-1
- 862 823 l 1,13,14
- 767 858 767 858 651 858 c 0,15,16
- 407 858 407 858 313 526 c 1,17,-1
- 752 526 l 1,18,-1
- 739 463 l 1,19,-1
- 301 463 l 1,20,21
- 291 390 291 390 291 362 c 0,22,23
- 291 98 291 98 510 98 c 0,24,25
- 629 98 629 98 797 154 c 1,26,-1
- 768 45 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE0BC
-Encoding: 57532 57532 417
-Width: 1277
-GlyphClass: 2
-Flags: W
-Fore
-354 -324 m 1,0,-1
- 455 -211 l 1,1,2
- 548 -295 548 -295 690 -295 c 0,3,4
- 772 -295 772 -295 828 -251 c 0,5,6
- 885 -208 885 -208 885 -127 c 0,7,8
- 885 -30 885 -30 692 -14 c 0,9,10
- 367 15 367 15 332 27 c 0,11,12
- 139 81 139 81 139 272 c 0,13,14
- 139 635 139 635 522 1024 c 1,15,16
- 458 1012 458 1012 385 1012 c 0,17,18
- 241 1012 241 1012 129 1073 c 1,19,-1
- 168 1219 l 1,20,21
- 332 1073 332 1073 582 1073 c 1,22,23
- 683 1177 683 1177 831 1251 c 0,24,25
- 991 1333 991 1333 1122 1333 c 0,26,27
- 1148 1333 1148 1333 1182 1319 c 1,28,-1
- 1102 1161 l 1,29,30
- 890 1014 890 1014 616 1014 c 1,31,32
- 322 616 322 616 322 305 c 0,33,34
- 322 166 322 166 496 137 c 2,35,-1
- 819 113 l 2,36,37
- 993 84 993 84 993 -61 c 0,38,39
- 993 -204 993 -204 854 -291 c 0,40,41
- 731 -367 731 -367 582 -367 c 0,42,43
- 462 -367 462 -367 354 -324 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE0BD
-Encoding: 57533 57533 418
-Width: 1155
-GlyphClass: 2
-Flags: W
-Fore
-137 0 m 1,0,-1
- 223 356 l 2,1,2
- 274 574 274 574 274 717 c 0,3,4
- 274 824 274 824 184 911 c 1,5,-1
- 377 911 l 1,6,7
- 436 854 436 854 449 739 c 1,8,9
- 609 932 609 932 801 932 c 0,10,11
- 898 932 898 932 956 871 c 0,12,13
- 1016 811 1016 811 1016 713 c 0,14,15
- 1016 674 1016 674 1006 616 c 2,16,-1
- 819 -332 l 1,17,-1
- 651 -332 l 1,18,-1
- 842 618 l 2,19,20
- 850 663 850 663 850 698 c 0,21,22
- 850 809 850 809 735 809 c 0,23,24
- 594 809 594 809 432 647 c 1,25,-1
- 303 0 l 1,26,-1
- 137 0 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE0BE
-Encoding: 57534 57534 419
-Width: 1099
-GlyphClass: 2
-Flags: W
-Fore
-350 -16 m 0,0,1
- 211 -16 211 -16 141 121 c 0,2,3
- 88 229 88 229 88 383 c 0,4,5
- 88 696 88 696 252 997 c 0,6,7
- 444 1352 444 1352 731 1352 c 0,8,9
- 867 1352 867 1352 936 1214 c 0,10,11
- 989 1107 989 1107 989 956 c 0,12,13
- 989 636 989 636 829 338 c 0,14,15
- 642 -16 642 -16 350 -16 c 0,0,1
-291 682 m 1,16,-1
- 793 682 l 1,17,18
- 815 814 815 814 815 938 c 0,19,20
- 815 1264 815 1264 641 1264 c 0,21,22
- 411 1264 411 1264 291 682 c 1,16,-1
-784 631 m 1,23,-1
- 285 631 l 1,24,25
- 264 498 264 498 264 387 c 0,26,27
- 264 72 264 72 442 72 c 0,28,29
- 676 72 676 72 784 631 c 1,23,-1
-EndSplineSet
-EndChar
-StartChar: uniE0BF
-Encoding: 57535 57535 420
-Width: 690
-GlyphClass: 2
-Flags: W
-Fore
-537 23 m 1,0,1
- 457 -14 457 -14 371 -14 c 0,2,3
- 156 -14 156 -14 156 180 c 0,4,5
- 156 334 156 334 205 551 c 2,6,-1
- 291 918 l 1,7,-1
- 457 918 l 1,8,-1
- 367 541 l 2,9,10
- 311 309 311 309 311 162 c 0,11,12
- 311 78 311 78 416 78 c 0,13,14
- 482 78 482 78 559 113 c 1,15,-1
- 537 23 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE0C0
-Encoding: 57536 57536 421
-Width: 1134
-GlyphClass: 2
-Flags: W
-Fore
-113 4 m 1,0,-1
- 295 915 l 1,1,-1
- 461 915 l 1,2,-1
- 342 326 l 1,3,4
- 562 614 562 614 629 688 c 0,5,6
- 850 936 850 936 973 936 c 0,7,8
- 1013 936 1013 936 1049 915 c 1,9,-1
- 995 760 l 1,10,11
- 964 780 964 780 936 780 c 0,12,13
- 824 780 824 780 612 543 c 1,14,-1
- 918 4 l 1,15,-1
- 737 4 l 1,16,-1
- 502 424 l 1,17,-1
- 326 231 l 1,18,-1
- 279 4 l 1,19,-1
- 113 4 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE0C1
-Encoding: 57537 57537 422
-Width: 1161
-GlyphClass: 2
-Flags: W
-Fore
-115 2 m 1,0,1
- 106 40 106 40 106 55 c 0,2,3
- 106 177 106 177 291 461 c 0,4,5
- 303 481 303 481 563 850 c 1,6,7
- 524 1043 524 1043 479 1110 c 0,8,9
- 406 1217 406 1217 245 1217 c 0,10,11
- 243 1217 243 1217 240 1217 c 1,12,-1
- 360 1329 l 1,13,-1
- 391 1329 l 2,14,15
- 530 1329 530 1329 598 1243 c 0,16,17
- 647 1182 647 1182 688 1028 c 2,18,-1
- 823 483 l 2,19,20
- 928 119 928 119 1055 2 c 1,21,-1
- 842 2 l 1,22,23
- 744 124 744 124 676 375 c 2,24,-1
- 582 780 l 1,25,26
- 405 538 405 538 373 481 c 0,27,28
- 262 294 262 294 262 143 c 0,29,30
- 262 58 262 58 319 2 c 1,31,-1
- 115 2 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE0C2
-Encoding: 57538 57538 423
-Width: 1230
-GlyphClass: 2
-Flags: W
-Fore
-88 -330 m 1,0,-1
- 336 913 l 1,1,-1
- 502 913 l 1,2,-1
- 422 580 l 2,3,4
- 373 377 373 377 373 242 c 0,5,6
- 373 182 373 182 413 142 c 128,-1,7
- 453 102 453 102 514 102 c 0,8,9
- 642 102 642 102 784 258 c 1,10,-1
- 915 913 l 1,11,-1
- 1081 913 l 1,12,-1
- 997 557 l 2,13,14
- 948 338 948 338 948 199 c 0,15,16
- 948 88 948 88 1034 2 c 1,17,-1
- 852 2 l 1,18,19
- 772 74 772 74 772 174 c 1,20,21
- 632 -18 632 -18 483 -18 c 0,22,23
- 402 -18 402 -18 328 37 c 1,24,-1
- 254 -330 l 1,25,-1
- 88 -330 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE0C3
-Encoding: 57539 57539 424
-Width: 1210
-GlyphClass: 2
-Flags: W
-Fore
-428 -6 m 1,0,1
- 428 117 428 117 403 343 c 0,2,3
- 379 571 379 571 344 651 c 0,4,5
- 275 805 275 805 94 805 c 1,6,-1
- 213 915 l 1,7,8
- 580 895 580 895 580 172 c 1,9,10
- 746 365 746 365 807 453 c 0,11,12
- 938 644 938 644 938 772 c 0,13,14
- 938 854 938 854 881 915 c 1,15,-1
- 1077 915 l 1,16,17
- 1096 875 1096 875 1096 827 c 0,18,19
- 1096 734 1096 734 846 410 c 2,20,-1
- 508 -6 l 1,21,-1
- 428 -6 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE0C4
-Encoding: 57540 57540 425
-Width: 1095
-GlyphClass: 2
-Flags: W
-Fore
-248 -315 m 1,0,-1
- 346 -203 l 1,1,2
- 451 -287 451 -287 580 -287 c 0,3,4
- 658 -287 658 -287 713 -246 c 0,5,6
- 774 -198 774 -198 774 -123 c 0,7,8
- 774 -19 774 -19 604 -4 c 0,9,10
- 301 23 301 23 287 27 c 0,11,12
- 117 78 117 78 117 268 c 0,13,14
- 117 526 117 526 502 688 c 1,15,16
- 270 787 270 787 270 954 c 0,17,18
- 270 1058 270 1058 397 1161 c 1,19,20
- 257 1161 257 1161 125 1219 c 1,21,-1
- 160 1358 l 1,22,23
- 261 1239 261 1239 461 1208 c 1,24,25
- 655 1341 655 1341 879 1341 c 0,26,27
- 941 1341 941 1341 1001 1321 c 1,28,-1
- 948 1237 l 1,29,30
- 793 1155 793 1155 637 1155 c 0,31,32
- 596 1155 596 1155 555 1161 c 1,33,34
- 436 1075 436 1075 436 958 c 0,35,36
- 436 838 436 838 618 748 c 1,37,38
- 728 793 728 793 836 793 c 0,39,40
- 925 793 925 793 977 764 c 1,41,-1
- 901 662 l 1,42,43
- 808 633 808 633 705 633 c 0,44,45
- 626 633 626 633 571 651 c 1,46,47
- 295 502 295 502 295 297 c 0,48,49
- 295 171 295 171 446 143 c 2,50,-1
- 731 115 l 2,51,52
- 882 84 882 84 883 -53 c 0,53,54
- 883 -205 883 -205 745 -289 c 0,55,56
- 630 -358 630 -358 467 -358 c 0,57,58
- 349 -358 349 -358 248 -315 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE0C5
-Encoding: 57541 57541 426
-Width: 1132
-GlyphClass: 2
-Flags: W
-Fore
-463 -8 m 0,0,1
- 298 -8 298 -8 207 98 c 0,2,3
- 121 199 121 199 121 365 c 0,4,5
- 121 620 121 620 268 782 c 0,6,7
- 416 944 416 944 670 944 c 0,8,9
- 839 944 839 944 932 844 c 0,10,11
- 1018 744 1018 744 1018 573 c 0,12,13
- 1018 328 1018 328 862 160 c 128,-1,14
- 706 -8 706 -8 463 -8 c 0,0,1
-481 43 m 0,15,16
- 653 43 653 43 758 242 c 0,17,18
- 844 408 844 408 844 596 c 0,19,20
- 844 893 844 893 649 893 c 0,21,22
- 481 893 481 893 377 690 c 0,23,24
- 293 525 293 525 293 338 c 0,25,26
- 293 43 293 43 481 43 c 0,15,16
-EndSplineSet
-EndChar
-StartChar: uniE0C6
-Encoding: 57542 57542 427
-Width: 1488
-GlyphClass: 2
-Flags: W
-Fore
-240 -2 m 1,0,-1
- 397 786 l 1,1,-1
- 362 786 l 2,2,3
- 219 786 219 786 106 694 c 1,4,-1
- 106 838 l 1,5,6
- 198 909 198 909 360 909 c 2,7,-1
- 1386 909 l 1,8,-1
- 1386 786 l 1,9,-1
- 1122 786 l 1,10,11
- 1059 534 1059 534 1055 516 c 0,12,13
- 1022 363 1022 363 1022 242 c 0,14,15
- 1022 98 1022 98 1122 -2 c 1,16,-1
- 940 -2 l 1,17,18
- 858 99 858 99 858 213 c 0,19,20
- 858 340 858 340 891 502 c 2,21,-1
- 956 786 l 1,22,-1
- 563 786 l 1,23,-1
- 408 -2 l 1,24,-1
- 240 -2 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE0C7
-Encoding: 57543 57543 428
-Width: 1157
-GlyphClass: 2
-Flags: W
-Fore
-59 -356 m 1,0,-1
- 190 305 l 2,1,2
- 310 907 310 907 739 907 c 0,3,4
- 1036 907 1036 907 1036 637 c 0,5,6
- 1036 368 1036 368 877 178 c 0,7,8
- 709 -25 709 -25 446 -25 c 0,9,10
- 381 -25 381 -25 297 4 c 1,11,-1
- 225 -356 l 1,12,-1
- 59 -356 l 1,0,-1
-324 135 m 1,13,14
- 413 47 413 47 518 47 c 0,15,16
- 688 47 688 47 786 250 c 0,17,18
- 864 412 864 412 864 602 c 0,19,20
- 864 850 864 850 705 850 c 0,21,22
- 518 850 518 850 418 571 c 0,23,24
- 377 459 377 459 324 135 c 1,13,14
-EndSplineSet
-EndChar
-StartChar: uniE0C8
-Encoding: 57544 57544 429
-Width: 1337
-GlyphClass: 2
-Flags: W
-Fore
-1343 799 m 1,0,-1
- 963 799 l 1,1,2
- 1020 692 1020 692 1020 561 c 0,3,4
- 1020 311 1020 311 868 150 c 0,5,6
- 720 -12 720 -12 471 -12 c 0,7,8
- 306 -12 306 -12 211 89 c 0,9,10
- 117 190 117 190 117 358 c 0,11,12
- 117 618 117 618 265 779 c 0,13,14
- 413 942 413 942 670 942 c 0,15,16
- 695 942 695 942 735 932 c 0,17,18
- 776 922 776 922 801 922 c 2,19,-1
- 1343 922 l 1,20,-1
- 1343 799 l 1,0,-1
-483 41 m 0,21,22
- 655 41 655 41 760 242 c 0,23,24
- 844 406 844 406 844 596 c 0,25,26
- 844 891 844 891 649 891 c 0,27,28
- 478 891 478 891 377 690 c 0,29,30
- 293 528 293 528 293 338 c 0,31,32
- 293 41 293 41 483 41 c 0,21,22
-EndSplineSet
-EndChar
-StartChar: uniE0C9
-Encoding: 57545 57545 430
-Width: 1181
-GlyphClass: 2
-Flags: W
-Fore
-485 -4 m 1,0,1
- 422 96 422 96 422 207 c 0,2,3
- 422 338 422 338 457 498 c 0,4,5
- 464 537 464 537 524 784 c 1,6,-1
- 377 784 l 2,7,8
- 191 784 191 784 90 692 c 1,9,-1
- 90 836 l 1,10,11
- 193 907 193 907 422 907 c 2,12,-1
- 1071 907 l 1,13,-1
- 1071 784 l 1,14,-1
- 690 784 l 1,15,-1
- 621 504 l 2,16,17
- 586 348 586 348 586 219 c 0,18,19
- 586 92 586 92 690 -4 c 1,20,-1
- 485 -4 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE0CA
-Encoding: 57546 57546 431
-Width: 1024
-GlyphClass: 2
-Flags: W
-Fore
-236 924 m 1,0,-1
- 401 924 l 1,1,-1
- 324 596 l 2,2,3
- 279 398 279 398 279 262 c 0,4,5
- 279 175 279 175 340 116 c 0,6,7
- 402 57 402 57 492 57 c 0,8,9
- 651 57 651 57 731 236 c 0,10,11
- 791 371 791 371 791 553 c 0,12,13
- 791 767 791 767 696 924 c 1,14,-1
- 903 924 l 1,15,16
- 928 837 928 837 928 733 c 0,17,18
- 928 447 928 447 821 244 c 0,19,20
- 689 -8 689 -8 426 -8 c 0,21,22
- 303 -8 303 -8 215 53 c 0,23,24
- 115 123 115 123 115 242 c 0,25,26
- 115 394 115 394 156 586 c 2,27,-1
- 236 924 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE0CB
-Encoding: 57547 57547 432
-Width: 1474
-GlyphClass: 2
-Flags: W
-Fore
-496 -383 m 1,0,-1
- 573 -2 l 1,1,2
- 119 49 119 49 119 383 c 0,3,4
- 119 606 119 606 326 737 c 0,5,6
- 504 850 504 850 741 850 c 1,7,-1
- 831 1296 l 1,8,-1
- 995 1296 l 1,9,-1
- 907 850 l 1,10,11
- 1095 835 1095 835 1221 748 c 0,12,13
- 1366 643 1366 643 1366 467 c 0,14,15
- 1366 240 1366 240 1157 109 c 0,16,17
- 978 -2 978 -2 737 -2 c 1,18,-1
- 662 -383 l 1,19,-1
- 496 -383 l 1,0,-1
-584 49 m 1,20,-1
- 731 795 l 1,21,22
- 544 795 544 795 418 684 c 0,23,24
- 285 567 285 567 285 383 c 0,25,26
- 285 112 285 112 584 49 c 1,20,-1
-897 801 m 1,27,-1
- 748 53 l 1,28,29
- 928 53 928 53 1059 168 c 0,30,31
- 1198 286 1198 286 1198 465 c 0,32,33
- 1198 729 1198 729 897 801 c 1,27,-1
-EndSplineSet
-EndChar
-StartChar: uniE0CC
-Encoding: 57548 57548 433
-Width: 1271
-GlyphClass: 2
-Flags: W
-Fore
-115 -2 m 1,0,1
- 104 34 104 34 104 63 c 0,2,3
- 104 174 104 174 281 375 c 0,4,5
- 342 444 342 444 551 645 c 1,6,-1
- 440 948 l 2,7,8
- 400 1057 400 1057 342 1094 c 0,9,10
- 290 1127 290 1127 170 1130 c 1,11,-1
- 291 1241 l 1,12,-1
- 307 1241 l 2,13,14
- 434 1241 434 1241 516 1153 c 0,15,16
- 579 1086 579 1086 623 954 c 2,17,-1
- 694 731 l 1,18,19
- 936 985 936 985 936 1139 c 0,20,21
- 936 1188 936 1188 907 1241 c 1,22,-1
- 1106 1241 l 1,23,24
- 1114 1205 1114 1205 1114 1190 c 0,25,26
- 1114 1051 1114 1051 715 676 c 1,27,28
- 804 416 804 416 844 324 c 0,29,30
- 925 128 925 128 1024 -2 c 1,31,-1
- 821 -2 l 1,32,33
- 744 118 744 118 678 287 c 2,34,-1
- 569 590 l 1,35,36
- 285 306 285 306 285 78 c 0,37,38
- 285 37 285 37 305 -2 c 1,39,-1
- 115 -2 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE0CD
-Encoding: 57549 57549 434
-Width: 1581
-GlyphClass: 2
-Flags: W
-Fore
-506 -338 m 1,0,-1
- 571 -6 l 1,1,2
- 158 38 158 38 158 365 c 0,3,4
- 158 484 158 484 188 637 c 0,5,6
- 188 638 188 638 250 905 c 1,7,-1
- 416 905 l 1,8,-1
- 346 618 l 2,9,10
- 313 454 313 454 313 326 c 0,11,12
- 313 86 313 86 584 53 c 1,13,-1
- 786 1071 l 1,14,-1
- 952 1071 l 1,15,-1
- 750 53 l 1,16,17
- 940 72 940 72 1051 221 c 0,18,19
- 1136 338 1136 338 1186 553 c 2,20,-1
- 1251 905 l 1,21,-1
- 1415 905 l 1,22,23
- 1331 474 1331 474 1239 311 c 0,24,25
- 1083 33 1083 33 737 -6 c 1,26,-1
- 674 -338 l 1,27,-1
- 506 -338 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE0CE
-Encoding: 57550 57550 435
-Width: 1595
-GlyphClass: 2
-Flags: W
-Fore
-336 922 m 1,0,-1
- 535 922 l 1,1,2
- 250 600 250 600 250 344 c 0,3,4
- 250 235 250 235 291 156 c 0,5,6
- 342 55 342 55 442 55 c 0,7,8
- 594 55 594 55 696 365 c 1,9,10
- 682 429 682 429 682 471 c 0,11,12
- 682 662 682 662 758 795 c 1,13,-1
- 920 842 l 1,14,15
- 938 797 938 797 938 741 c 0,16,17
- 938 612 938 612 842 416 c 1,18,-1
- 840 330 l 1,19,-1
- 842 282 l 2,20,21
- 853 206 853 206 905 143 c 0,22,23
- 977 57 977 57 1083 57 c 0,24,25
- 1225 57 1225 57 1300 203 c 0,26,27
- 1362 321 1362 321 1362 475 c 0,28,29
- 1362 705 1362 705 1163 922 c 1,30,-1
- 1380 922 l 1,31,32
- 1489 773 1489 773 1489 575 c 0,33,34
- 1489 351 1489 351 1372 180 c 0,35,36
- 1242 -10 1242 -10 1026 -10 c 0,37,38
- 823 -10 823 -10 723 225 c 1,39,40
- 578 -10 578 -10 381 -10 c 0,41,42
- 236 -10 236 -10 158 102 c 0,43,44
- 88 200 88 200 88 350 c 0,45,46
- 88 626 88 626 336 922 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE0CF
-Encoding: 57551 57551 436
-Width: 950
-GlyphClass: 2
-Flags: W
-Fore
-674 41 m 1,0,1
- 551 -8 551 -8 393 -8 c 0,2,3
- 270 -8 270 -8 182 47 c 0,4,5
- 82 113 82 113 82 229 c 0,6,7
- 82 440 82 440 412 514 c 1,8,9
- 215 582 215 582 215 711 c 0,10,11
- 215 836 215 836 336 897 c 0,12,13
- 432 944 432 944 567 944 c 0,14,15
- 691 944 691 944 811 907 c 1,16,-1
- 791 809 l 1,17,18
- 693 852 693 852 584 852 c 0,19,20
- 371 852 371 852 371 711 c 0,21,22
- 371 545 371 545 709 545 c 1,23,-1
- 690 463 l 1,24,25
- 496 463 496 463 412 438 c 0,26,27
- 246 392 246 392 246 250 c 0,28,29
- 246 174 246 174 307 129 c 0,30,31
- 362 90 362 90 442 90 c 0,32,33
- 576 90 576 90 694 143 c 1,34,-1
- 674 41 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE0D0
-Encoding: 57552 57552 437
-Width: 1196
-GlyphClass: 2
-Flags: W
-Fore
-72 268 m 1,0,-1
- 180 414 l 1,1,2
- 250 411 250 411 313 330 c 2,3,-1
- 408 176 l 2,4,5
- 456 98 456 98 500 98 c 0,6,7
- 618 98 618 98 698 309 c 0,8,9
- 757 467 757 467 766 623 c 1,10,11
- 756 623 756 623 670 621 c 0,12,13
- 604 618 604 618 569 618 c 0,14,15
- 240 618 240 618 240 858 c 0,16,17
- 240 1057 240 1057 372 1207 c 0,18,19
- 504 1358 504 1358 700 1358 c 0,20,21
- 981 1358 981 1358 981 965 c 0,22,23
- 981 883 981 883 961 768 c 1,24,-1
- 1102 768 l 1,25,-1
- 1102 623 l 1,26,-1
- 928 623 l 1,27,28
- 856 395 856 395 731 221 c 0,29,30
- 568 -10 568 -10 379 -10 c 0,31,32
- 313 -10 313 -10 268 66 c 2,33,-1
- 195 203 l 2,34,35
- 151 268 151 268 84 268 c 0,36,37
- 72 268 l 1,0,-1
-791 768 m 1,38,39
- 805 854 805 854 805 987 c 0,40,41
- 805 1282 805 1282 633 1282 c 0,42,43
- 512 1282 512 1282 440 1157 c 0,44,45
- 379 1053 379 1053 379 924 c 0,46,47
- 379 822 379 822 449 791 c 0,48,49
- 495 768 495 768 606 768 c 2,50,-1
- 791 768 l 1,38,39
-EndSplineSet
-EndChar
-StartChar: uniE0D1
-Encoding: 57553 57553 438
-Width: 1810
-GlyphClass: 2
-Flags: W
-Fore
-451 797 m 1,0,-1
- 322 797 l 2,1,2
- 213 797 213 797 100 711 c 1,3,-1
- 100 862 l 1,4,5
- 199 920 199 920 348 920 c 2,6,-1
- 1698 920 l 1,7,-1
- 1698 797 l 1,8,-1
- 1503 797 l 1,9,10
- 1552 699 1552 699 1552 575 c 0,11,12
- 1552 356 1552 356 1438 184 c 0,13,14
- 1309 -12 1309 -12 1100 -12 c 0,15,16
- 930 -12 930 -12 831 145 c 1,17,18
- 716 -12 716 -12 545 -12 c 0,19,20
- 402 -12 402 -12 315 88 c 0,21,22
- 236 182 236 182 236 330 c 0,23,24
- 236 579 236 579 451 797 c 1,0,-1
-1022 680 m 1,25,26
- 1034 647 1034 647 1034 596 c 0,27,28
- 1034 436 1034 436 926 256 c 1,29,30
- 996 72 996 72 1167 72 c 0,31,32
- 1301 72 1301 72 1370 211 c 0,33,34
- 1427 322 1427 322 1427 469 c 0,35,36
- 1427 642 1427 642 1333 797 c 1,37,-1
- 557 797 l 1,38,39
- 393 628 393 628 393 367 c 0,40,41
- 393 88 393 88 608 88 c 0,42,43
- 708 88 708 88 803 193 c 1,44,45
- 776 274 776 274 776 342 c 0,46,47
- 776 487 776 487 883 639 c 1,48,-1
- 1022 680 l 1,25,26
-EndSplineSet
-EndChar
-StartChar: uniE0D3
-Encoding: 57555 57555 439
-Width: 1142
-GlyphClass: 2
-Flags: W
-Fore
-244 -303 m 1,0,-1
- 342 -188 l 1,1,2
- 452 -270 452 -270 571 -270 c 0,3,4
- 649 -270 649 -270 712 -225 c 0,5,6
- 774 -180 774 -180 774 -104 c 0,7,8
- 774 -14 774 -14 602 8 c 0,9,10
- 315 46 315 46 281 57 c 0,11,12
- 109 115 109 115 109 289 c 0,13,14
- 109 576 109 576 340 766 c 0,15,16
- 558 944 558 944 852 944 c 0,17,18
- 953 944 953 944 1030 915 c 1,19,-1
- 934 788 l 1,20,21
- 818 850 818 850 707 850 c 0,22,23
- 513 850 513 850 395 684 c 0,24,25
- 287 532 287 532 287 334 c 0,26,27
- 287 194 287 194 440 166 c 2,28,-1
- 727 137 l 2,29,30
- 881 107 881 107 881 -35 c 0,31,32
- 881 -186 881 -186 745 -270 c 0,33,34
- 630 -342 630 -342 469 -342 c 0,35,36
- 346 -342 346 -342 244 -303 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE0D4
-Encoding: 57556 57556 440
-Width: 1593
-GlyphClass: 2
-Flags: W
-Fore
-764 51 m 1,0,1
- 1007 89 1007 89 1166 257 c 0,2,3
- 1327 425 1327 425 1327 666 c 0,4,5
- 1327 757 1327 757 1253 807 c 0,6,7
- 1191 850 1191 850 1096 850 c 0,8,9
- 980 850 980 850 922 786 c 0,10,11
- 876 740 876 740 854 633 c 0,12,13
- 842 543 842 543 827 446 c 2,14,-1
- 764 51 l 1,0,1
-621 956 m 1,15,-1
- 563 895 l 1,16,17
- 433 895 433 895 344 770 c 0,18,19
- 262 658 262 658 262 522 c 0,20,21
- 262 152 262 152 598 74 c 1,22,-1
- 686 539 l 2,23,24
- 763 910 763 910 812 946 c 0,25,26
- 861 983 861 983 928 985 c 1,27,-1
- 911 983 l 1,28,-1
- 1176 971 l 2,29,30
- 1317 956 1317 956 1384 895 c 0,31,32
- 1470 819 1470 819 1470 649 c 0,33,34
- 1470 376 1470 376 1241 193 c 0,35,36
- 1033 26 1033 26 750 2 c 1,37,-1
- 684 -330 l 1,38,-1
- 520 -330 l 1,39,-1
- 586 2 l 1,40,41
- 106 65 106 65 106 440 c 0,42,43
- 106 664 106 664 251 811 c 0,44,45
- 395 956 395 956 621 956 c 1,15,-1
-EndSplineSet
-EndChar
-StartChar: uniE0D5
-Encoding: 57557 57557 441
-Width: 995
-GlyphClass: 2
-Flags: W
-Fore
-145 1098 m 1,0,1
- 278 1360 278 1360 496 1360 c 0,2,3
- 696 1360 696 1360 791 1159 c 0,4,5
- 860 1008 860 1008 860 780 c 0,6,7
- 860 490 860 490 754 272 c 0,8,9
- 616 -8 616 -8 358 -8 c 0,10,11
- 239 -8 239 -8 170 80 c 0,12,13
- 106 162 106 162 106 285 c 0,14,15
- 106 495 106 495 227 670 c 0,16,17
- 362 862 362 862 565 862 c 0,18,19
- 709 862 709 862 809 717 c 1,20,21
- 809 1214 809 1214 442 1214 c 0,22,23
- 289 1214 289 1214 145 1098 c 1,0,1
-805 643 m 1,24,25
- 712 813 712 813 578 813 c 0,26,27
- 427 813 427 813 338 655 c 0,28,29
- 262 524 262 524 262 358 c 0,30,31
- 262 262 262 262 295 190 c 0,32,33
- 340 98 340 98 424 98 c 0,34,35
- 588 98 588 98 698 297 c 0,36,37
- 784 451 784 451 805 643 c 1,24,25
-EndSplineSet
-EndChar
-StartChar: uniE0D6
-Encoding: 57558 57558 442
-Width: 602
-GlyphClass: 2
-Flags: W
-Fore
-119 2 m 1,0,-1
- 258 696 l 2,1,2
- 270 758 270 758 270 815 c 0,3,4
- 270 862 270 862 151 862 c 0,5,6
- 135 862 l 1,7,-1
- 145 913 l 1,8,-1
- 467 913 l 1,9,-1
- 330 219 l 2,10,11
- 315 147 315 147 315 100 c 0,12,13
- 315 59 315 59 451 53 c 1,14,-1
- 440 2 l 1,15,-1
- 119 2 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE0D9
-Encoding: 57561 57561 443
-Width: 1400
-GlyphClass: 2
-Flags: W
-Fore
-668 0 m 1,0,-1
- 668 1260 l 1,1,-1
- 82 1260 l 1,2,-1
- 82 1356 l 1,3,-1
- 1356 1356 l 1,4,-1
- 1356 1260 l 1,5,-1
- 764 1260 l 1,6,-1
- 764 0 l 1,7,-1
- 668 0 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE0DB
-Encoding: 57563 57563 444
-Width: 1662
-GlyphClass: 2
-Flags: W
-Fore
-342 975 m 1,0,-1
- 362 973 l 2,1,2
- 377 968 377 968 377 950 c 0,3,4
- 377 890 377 890 199 643 c 1,5,-1
- 211 633 l 1,6,-1
- 1561 633 l 1,7,8
- 1581 624 1581 624 1581 590 c 0,9,10
- 1581 558 1581 558 1561 545 c 1,11,-1
- 199 535 l 1,12,13
- 376 282 376 282 377 231 c 0,14,15
- 377 203 377 203 354 203 c 2,16,-1
- 336 205 l 1,17,-1
- 12 590 l 1,18,19
- 82 656 82 656 342 975 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE0DC
-Encoding: 57564 57564 445
-Width: 835
-GlyphClass: 2
-Flags: W
-Fore
-410 1368 m 1,0,1
- 508 1301 508 1301 795 1053 c 1,2,-1
- 797 1038 l 2,3,4
- 797 1024 797 1024 778 1018 c 0,5,6
- 732 1018 732 1018 616 1090 c 0,7,8
- 518 1150 518 1150 463 1198 c 1,9,-1
- 453 1184 l 1,10,-1
- 453 35 l 1,11,12
- 432 6 432 6 406 6 c 0,13,14
- 385 6 385 6 367 35 c 1,15,-1
- 367 1184 l 1,16,-1
- 354 1198 l 1,17,18
- 311 1157 311 1157 205 1092 c 0,19,20
- 90 1018 90 1018 47 1018 c 0,21,22
- 23 1018 23 1018 23 1038 c 2,23,-1
- 25 1053 l 1,24,25
- 169 1179 169 1179 410 1368 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE0DD
-Encoding: 57565 57565 446
-Width: 823
-GlyphClass: 2
-Flags: W
-Fore
-406 8 m 1,0,1
- 364 36 364 36 20 324 c 1,2,-1
- 18 338 l 2,3,4
- 18 358 18 358 43 358 c 0,5,6
- 132 358 132 358 350 180 c 1,7,-1
- 362 193 l 1,8,-1
- 362 1341 l 1,9,10
- 377 1363 377 1363 401 1370 c 1,11,-1
- 426 1366 l 1,12,-1
- 449 1341 l 1,13,-1
- 459 178 l 1,14,15
- 512 224 512 224 612 287 c 0,16,17
- 726 358 726 358 774 358 c 0,18,19
- 793 352 793 352 793 338 c 2,20,-1
- 791 324 l 1,21,-1
- 602 162 l 2,22,23
- 502 76 502 76 406 8 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE100
-Encoding: 57600 57600 447
-Width: 606
-GlyphClass: 2
-Flags: W
-Fore
-319 358 m 1,0,-1
- 281 358 l 1,1,-1
- 221 803 l 2,2,3
- 186 1072 186 1072 186 1247 c 0,4,5
- 186 1302 186 1302 217 1345 c 0,6,7
- 248 1386 248 1386 301 1386 c 0,8,9
- 414 1386 414 1386 414 1237 c 0,10,11
- 414 1062 414 1062 379 797 c 2,12,-1
- 319 358 l 1,0,-1
-299 193 m 0,13,14
- 342 193 342 193 376 160 c 0,15,16
- 410 126 410 126 410 84 c 0,17,18
- 410 38 410 38 377 4 c 0,19,20
- 344 -29 344 -29 299 -29 c 0,21,22
- 255 -29 255 -29 221 5 c 0,23,24
- 188 40 188 40 188 84 c 0,25,26
- 188 126 188 126 222 160 c 0,27,28
- 256 193 256 193 299 193 c 0,13,14
-EndSplineSet
-EndChar
-StartChar: uniE101
-Encoding: 57601 57601 448
-Width: 1464
-GlyphClass: 2
-Flags: W
-Fore
-1192 1055 m 1,0,-1
- 1328 1446 l 1,1,-1
- 1448 1446 l 1,2,-1
- 983 76 l 1,3,-1
- 819 76 l 1,4,-1
- 351 1446 l 1,5,-1
- 476 1446 l 1,6,-1
- 613 1055 l 1,7,-1
- 1192 1055 l 1,0,-1
-1157 924 m 1,8,-1
- 647 924 l 1,9,-1
- 903 198 l 1,10,-1
- 1157 924 l 1,8,-1
-EndSplineSet
-EndChar
-StartChar: uniE102
-Encoding: 57602 57602 449
-Width: 1138
-GlyphClass: 2
-Flags: W
-Fore
-102 -25 m 1,0,-1
- 188 401 l 1,1,-1
- 20 401 l 1,2,-1
- 20 551 l 1,3,-1
- 219 551 l 1,4,-1
- 293 913 l 1,5,-1
- 20 913 l 1,6,-1
- 20 1063 l 1,7,-1
- 324 1063 l 1,8,-1
- 412 1491 l 1,9,-1
- 559 1491 l 1,10,-1
- 473 1063 l 1,11,-1
- 788 1063 l 1,12,-1
- 877 1491 l 1,13,-1
- 1026 1491 l 1,14,-1
- 938 1063 l 1,15,-1
- 1112 1063 l 1,16,-1
- 1112 913 l 1,17,-1
- 909 913 l 1,18,-1
- 834 551 l 1,19,-1
- 1112 551 l 1,20,-1
- 1112 401 l 1,21,-1
- 805 401 l 1,22,-1
- 719 -25 l 1,23,-1
- 567 -25 l 1,24,-1
- 653 401 l 1,25,-1
- 340 401 l 1,26,-1
- 254 -25 l 1,27,-1
- 102 -25 l 1,0,-1
-369 551 m 1,28,-1
- 684 551 l 1,29,-1
- 758 913 l 1,30,-1
- 444 913 l 1,31,-1
- 369 551 l 1,28,-1
-EndSplineSet
-EndChar
-StartChar: uniE103
-Encoding: 57603 57603 450
-Width: 1345
-GlyphClass: 2
-Flags: W
-Fore
-117 2 m 1,0,-1
- 117 131 l 1,1,-1
- 1034 131 l 1,2,-1
- 1034 670 l 1,3,-1
- 217 670 l 1,4,-1
- 217 805 l 1,5,-1
- 1034 805 l 1,6,-1
- 1034 1274 l 1,7,-1
- 117 1274 l 1,8,-1
- 117 1409 l 1,9,-1
- 1190 1409 l 1,10,-1
- 1190 2 l 1,11,-1
- 117 2 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE104
-Encoding: 57604 57604 451
-Width: 1705
-GlyphClass: 2
-Flags: W
-Fore
-289 1386 m 0,0,1
- 429 1386 429 1386 508 1268 c 0,2,3
- 575 1166 575 1166 575 1018 c 0,4,5
- 575 872 575 872 508 770 c 0,6,7
- 430 653 430 653 291 653 c 0,8,9
- 153 653 153 653 72 770 c 0,10,11
- 0 875 0 875 0 1018 c 0,12,13
- 0 1160 0 1160 72 1266 c 0,14,15
- 153 1386 153 1386 289 1386 c 0,0,1
-291 1331 m 0,16,17
- 160 1331 160 1331 160 1020 c 0,18,19
- 160 705 160 705 287 705 c 0,20,21
- 418 705 418 705 418 1014 c 0,22,23
- 418 1331 418 1331 291 1331 c 0,16,17
-1321 1386 m 1,24,-1
- 332 -55 l 1,25,-1
- 244 -55 l 1,26,-1
- 1231 1386 l 1,27,-1
- 1321 1386 l 1,24,-1
-1278 674 m 0,28,29
- 1415 674 1415 674 1493 555 c 0,30,31
- 1563 449 1563 449 1563 307 c 0,32,33
- 1563 165 1563 165 1495 61 c 0,34,35
- 1415 -55 1415 -55 1278 -55 c 0,36,37
- 1142 -55 1142 -55 1061 61 c 0,38,39
- 987 168 987 168 987 307 c 0,40,41
- 987 450 987 450 1059 555 c 0,42,43
- 1140 674 1140 674 1278 674 c 0,28,29
-1278 621 m 0,44,45
- 1147 621 1147 621 1147 301 c 0,46,47
- 1147 0 1147 0 1276 0 c 128,-1,48
- 1405 0 1405 0 1405 305 c 0,49,50
- 1405 621 1405 621 1278 621 c 0,44,45
-EndSplineSet
-EndChar
-StartChar: uniE105
-Encoding: 57605 57605 452
-Width: 899
-GlyphClass: 2
-Flags: W
-Fore
-168 500 m 1,0,-1
- 629 500 l 1,1,2
- 606 676 606 676 497 781 c 0,3,4
- 388 887 388 887 211 887 c 0,5,6
- 167 887 167 887 104 870 c 1,7,-1
- 104 928 l 1,8,9
- 219 956 219 956 315 956 c 0,10,11
- 534 956 534 956 674 831 c 0,12,13
- 821 700 821 700 821 485 c 0,14,15
- 821 254 821 254 672 117 c 0,16,17
- 525 -20 525 -20 291 -20 c 0,18,19
- 212 -20 212 -20 51 25 c 1,20,-1
- 51 86 l 1,21,22
- 160 47 160 47 256 47 c 0,23,24
- 411 47 411 47 516 160 c 0,25,26
- 609 262 609 262 629 426 c 1,27,-1
- 168 426 l 1,28,-1
- 168 500 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE106
-Encoding: 57606 57606 453
-Width: 798
-GlyphClass: 2
-Flags: W
-Fore
-725 1487 m 1,0,-1
- 739 1444 l 1,1,2
- 531 1357 531 1357 424 1153 c 0,3,4
- 326 970 326 970 326 729 c 128,-1,5
- 326 488 326 488 424 305 c 0,6,7
- 532 102 532 102 739 14 c 1,8,-1
- 725 -29 l 1,9,10
- 431 36 431 36 258 233 c 0,11,12
- 84 434 84 434 84 729 c 0,13,14
- 84 1026 84 1026 260 1229 c 0,15,16
- 430 1424 430 1424 725 1487 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE107
-Encoding: 57607 57607 454
-Width: 798
-GlyphClass: 2
-Flags: W
-Fore
-76 -29 m 1,0,-1
- 59 14 l 1,1,2
- 265 102 265 102 375 305 c 0,3,4
- 473 490 473 490 473 729 c 128,-1,5
- 473 968 473 968 375 1153 c 0,6,7
- 266 1357 266 1357 59 1444 c 1,8,-1
- 76 1487 l 1,9,10
- 366 1424 366 1424 539 1227 c 0,11,12
- 717 1021 717 1021 717 729 c 0,13,14
- 717 438 717 438 539 231 c 0,15,16
- 367 36 367 36 76 -29 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE108
-Encoding: 57608 57608 455
-Width: 1040
-GlyphClass: 2
-Flags: W
-Fore
-498 -43 m 1,0,1
- 458 11 458 11 399 381 c 1,2,3
- 211 303 211 303 211 301 c 1,4,5
- 100 260 100 260 12 250 c 1,6,-1
- 0 254 l 1,7,-1
- -6 260 l 1,8,9
- 22 319 22 319 311 545 c 1,10,11
- 171 644 171 644 141 668 c 0,12,13
- 50 742 50 742 0 823 c 1,14,-1
- 6 827 l 1,15,16
- 96 824 96 824 399 709 c 1,17,-1
- 434 932 l 2,18,19
- 462 1078 462 1078 506 1137 c 1,20,21
- 544 1027 544 1027 588 709 c 1,22,23
- 737 763 737 763 793 780 c 0,24,25
- 900 815 900 815 1001 838 c 1,26,-1
- 1014 829 l 1,27,28
- 969 754 969 754 868 674 c 2,29,-1
- 692 545 l 1,30,31
- 719 519 719 519 862 399 c 0,32,33
- 968 315 968 315 1024 246 c 1,34,-1
- 1014 242 l 1,35,36
- 900 265 900 265 588 381 c 1,37,-1
- 557 160 l 2,38,39
- 530 0 530 0 498 -43 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE109
-Encoding: 57609 57609 456
-Width: 1196
-GlyphClass: 2
-Flags: W
-Fore
-512 115 m 1,0,-1
- 512 516 l 1,1,-1
- 115 516 l 1,2,-1
- 115 684 l 1,3,-1
- 512 684 l 1,4,-1
- 512 1083 l 1,5,-1
- 682 1083 l 1,6,-1
- 682 684 l 1,7,-1
- 1081 684 l 1,8,-1
- 1081 516 l 1,9,-1
- 682 516 l 1,10,-1
- 682 115 l 1,11,-1
- 512 115 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE10A
-Encoding: 57610 57610 457
-Width: 512
-GlyphClass: 2
-Flags: W
-Fore
-111 -342 m 1,0,-1
- 111 -297 l 1,1,2
- 202 -265 202 -265 260 -203 c 0,3,4
- 326 -130 326 -130 326 -41 c 2,5,-1
- 317 -8 l 1,6,-1
- 303 0 l 1,7,-1
- 217 -29 l 1,8,9
- 111 -29 111 -29 111 82 c 0,10,11
- 111 132 111 132 150 167 c 0,12,13
- 189 201 189 201 240 201 c 0,14,15
- 315 201 315 201 365 131 c 0,16,17
- 408 68 408 68 408 -10 c 0,18,19
- 408 -243 408 -243 111 -342 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE10B
-Encoding: 57611 57611 458
-Width: 681
-GlyphClass: 2
-Flags: W
-Fore
-66 502 m 1,0,-1
- 66 682 l 1,1,-1
- 618 682 l 1,2,-1
- 618 502 l 1,3,-1
- 66 502 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE10C
-Encoding: 57612 57612 459
-Width: 512
-GlyphClass: 2
-Flags: W
-Fore
-256 195 m 0,0,1
- 301 195 301 195 334 162 c 128,-1,2
- 367 129 367 129 367 84 c 0,3,4
- 367 38 367 38 334 4 c 0,5,6
- 301 -29 301 -29 256 -29 c 0,7,8
- 212 -29 212 -29 178 5 c 0,9,10
- 145 40 145 40 145 84 c 0,11,12
- 145 129 145 129 178 162 c 128,-1,13
- 211 195 211 195 256 195 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uniE10D
-Encoding: 57613 57613 460
-Width: 569
-GlyphClass: 2
-Flags: W
-Fore
-0 -25 m 1,0,-1
- 426 1491 l 1,1,-1
- 569 1491 l 1,2,-1
- 145 -25 l 1,3,-1
- 0 -25 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE10E
-Encoding: 57614 57614 461
-Width: 569
-GlyphClass: 2
-Flags: W
-Fore
-289 944 m 0,0,1
- 334 944 334 944 367 911 c 0,2,3
- 399 879 399 879 399 834 c 0,4,5
- 399 790 399 790 367 756 c 0,6,7
- 334 723 334 723 289 723 c 128,-1,8
- 244 723 244 723 211 756 c 128,-1,9
- 178 789 178 789 178 834 c 0,10,11
- 178 880 178 880 211 911 c 0,12,13
- 244 944 244 944 289 944 c 0,0,1
-287 195 m 0,14,15
- 332 195 332 195 366 162 c 0,16,17
- 399 129 399 129 399 84 c 0,18,19
- 399 38 399 38 365 4 c 0,20,21
- 332 -29 332 -29 287 -29 c 0,22,23
- 243 -29 243 -29 209 5 c 0,24,25
- 176 40 176 40 176 84 c 0,26,27
- 176 129 176 129 209 162 c 128,-1,28
- 242 195 242 195 287 195 c 0,14,15
-EndSplineSet
-EndChar
-StartChar: uniE10F
-Encoding: 57615 57615 462
-Width: 569
-GlyphClass: 2
-Flags: W
-Fore
-283 944 m 0,0,1
- 326 944 326 944 359 911 c 0,2,3
- 393 880 393 880 393 836 c 0,4,5
- 393 791 393 791 360 758 c 0,6,7
- 328 725 328 725 283 725 c 0,8,9
- 237 725 237 725 204 758 c 0,10,11
- 170 791 170 791 170 836 c 0,12,13
- 170 881 170 881 204 912 c 0,14,15
- 236 944 236 944 283 944 c 0,0,1
-141 -342 m 1,16,-1
- 141 -297 l 1,17,18
- 233 -266 233 -266 293 -203 c 0,19,20
- 358 -132 358 -132 358 -41 c 0,21,22
- 358 -10 358 -10 336 0 c 1,23,-1
- 250 -29 l 1,24,25
- 141 -29 141 -29 141 82 c 0,26,27
- 141 132 141 132 180 166 c 0,28,29
- 220 201 220 201 270 201 c 0,30,31
- 349 201 349 201 397 133 c 0,32,33
- 440 73 440 73 440 -10 c 0,34,35
- 440 -243 440 -243 141 -342 c 1,16,-1
-EndSplineSet
-EndChar
-StartChar: uniE110
-Encoding: 57616 57616 463
-Width: 1196
-GlyphClass: 2
-Flags: W
-Fore
-113 518 m 1,0,-1
- 113 686 l 1,1,-1
- 1083 1096 l 1,2,-1
- 1083 918 l 1,3,-1
- 313 602 l 1,4,-1
- 1083 283 l 1,5,-1
- 1083 102 l 1,6,-1
- 113 518 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE111
-Encoding: 57617 57617 464
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 358 m 1,0,-1
- 221 457 l 1,1,-1
- 1405 457 l 1,2,-1
- 1405 358 l 1,3,-1
- 221 358 l 1,0,-1
-221 791 m 1,4,-1
- 221 889 l 1,5,-1
- 1405 889 l 1,6,-1
- 1405 791 l 1,7,-1
- 221 791 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE112
-Encoding: 57618 57618 465
-Width: 1196
-GlyphClass: 2
-Flags: W
-Fore
-1083 518 m 1,0,-1
- 113 102 l 1,1,-1
- 113 283 l 1,2,-1
- 881 602 l 1,3,-1
- 113 918 l 1,4,-1
- 113 1096 l 1,5,-1
- 1083 686 l 1,6,-1
- 1083 518 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE113
-Encoding: 57619 57619 466
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 424 m 1,0,-1
- 221 522 l 1,1,-1
- 1405 522 l 1,2,-1
- 1405 424 l 1,3,-1
- 221 424 l 1,0,-1
-283 670 m 1,4,-1
- 221 670 l 1,5,6
- 236 989 236 989 485 989 c 0,7,8
- 600 989 600 989 843 869 c 0,9,10
- 1087 750 1087 750 1176 750 c 0,11,12
- 1321 750 1321 750 1343 967 c 1,13,-1
- 1405 967 l 1,14,15
- 1387 647 1387 647 1141 647 c 0,16,17
- 1014 647 1014 647 795 767 c 128,-1,18
- 576 887 576 887 449 887 c 0,19,20
- 370 887 370 887 324 815 c 0,21,22
- 283 754 283 754 283 670 c 1,4,-1
-221 219 m 1,23,-1
- 221 317 l 1,24,-1
- 1405 317 l 1,25,-1
- 1405 219 l 1,26,-1
- 221 219 l 1,23,-1
-EndSplineSet
-EndChar
-StartChar: uniE114
-Encoding: 57620 57620 467
-Width: 577
-GlyphClass: 2
-Flags: W
-Fore
-150 -403 m 1,0,-1
- 150 1622 l 1,1,-1
- 504 1622 l 1,2,-1
- 504 1581 l 1,3,-1
- 248 1581 l 1,4,-1
- 248 -360 l 1,5,-1
- 504 -360 l 1,6,-1
- 504 -403 l 1,7,-1
- 150 -403 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE115
-Encoding: 57621 57621 468
-Width: 577
-GlyphClass: 2
-Flags: W
-Fore
-428 -403 m 1,0,-1
- 74 -403 l 1,1,-1
- 74 -360 l 1,2,-1
- 330 -360 l 1,3,-1
- 330 1581 l 1,4,-1
- 74 1581 l 1,5,-1
- 74 1622 l 1,6,-1
- 428 1622 l 1,7,-1
- 428 -403 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE116
-Encoding: 57622 57622 469
-Width: 1431
-GlyphClass: 2
-Flags: W
-Fore
-770 1356 m 1,0,-1
- 770 96 l 1,1,-1
- 1356 96 l 1,2,-1
- 1356 0 l 1,3,-1
- 82 0 l 1,4,-1
- 82 96 l 1,5,-1
- 674 96 l 1,6,-1
- 674 1356 l 1,7,-1
- 770 1356 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE117
-Encoding: 57623 57623 470
-Width: 782
-GlyphClass: 2
-Flags: W
-Fore
-496 -453 m 1,0,-1
- 485 -453 l 2,1,2
- 351 -453 351 -453 281 -362 c 0,3,4
- 215 -281 215 -281 215 -145 c 2,5,-1
- 217 459 l 2,6,7
- 217 587 217 587 92 588 c 1,8,-1
- 92 621 l 1,9,-1
- 129 623 l 2,10,11
- 217 638 217 638 217 752 c 2,12,-1
- 215 1356 l 2,13,14
- 215 1494 215 1494 288 1576 c 0,15,16
- 360 1659 360 1659 496 1659 c 1,17,-1
- 496 1626 l 1,18,-1
- 450 1623 l 1,19,-1
- 413 1613 l 2,20,21
- 298 1569 298 1569 295 1384 c 2,22,-1
- 287 809 l 2,23,24
- 284 667 284 667 156 604 c 1,25,26
- 284 543 284 543 287 397 c 2,27,-1
- 295 -176 l 2,28,29
- 299 -418 299 -418 491 -420 c 0,30,31
- 494 -420 494 -420 496 -420 c 1,32,-1
- 496 -453 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE118
-Encoding: 57624 57624 471
-Width: 782
-GlyphClass: 2
-Flags: W
-Fore
-92 -453 m 1,0,-1
- 92 -420 l 1,1,-1
- 138 -417 l 2,2,3
- 293 -391 293 -391 293 -176 c 0,4,5
- 293 -80 293 -80 287 112 c 0,6,7
- 281 302 281 302 281 399 c 0,8,9
- 281 535 281 535 414 604 c 1,10,11
- 281 667 281 667 281 809 c 0,12,13
- 281 904 281 904 287 1098 c 0,14,15
- 293 1290 293 1290 293 1386 c 0,16,17
- 293 1626 293 1626 92 1626 c 1,18,-1
- 92 1659 l 1,19,-1
- 102 1659 l 2,20,21
- 234 1659 234 1659 303 1574 c 0,22,23
- 373 1489 373 1489 373 1354 c 0,24,25
- 373 1245 373 1245 360 1053 c 0,26,27
- 348 852 348 852 348 752 c 0,28,29
- 348 621 348 621 480 621 c 0,30,31
- 496 621 l 1,32,-1
- 496 588 l 1,33,-1
- 452 586 l 2,34,35
- 348 572 348 572 348 457 c 0,36,37
- 348 356 348 356 360 156 c 0,38,39
- 373 -38 373 -38 373 -145 c 0,40,41
- 373 -453 373 -453 92 -453 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE119
-Encoding: 57625 57625 472
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-283 526 m 1,0,-1
- 221 526 l 1,1,2
- 236 846 236 846 485 846 c 0,3,4
- 600 846 600 846 843 726 c 128,-1,5
- 1086 606 1086 606 1176 606 c 0,6,7
- 1320 606 1320 606 1343 823 c 1,8,-1
- 1405 823 l 1,9,10
- 1387 504 1387 504 1141 504 c 0,11,12
- 1014 504 1014 504 795 624 c 0,13,14
- 575 743 575 743 449 743 c 0,15,16
- 370 743 370 743 324 672 c 0,17,18
- 283 609 283 609 283 526 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE11A
-Encoding: 57626 57626 473
-Width: 1566
-GlyphClass: 2
-Flags: W
-Fore
-1386 1090 m 1,0,1
- 1102 1309 1102 1309 891 1309 c 0,2,3
- 731 1309 731 1309 596 1200 c 0,4,5
- 473 1099 473 1099 414 942 c 1,6,-1
- 1333 942 l 1,7,-1
- 1247 764 l 1,8,-1
- 381 764 l 1,9,-1
- 381 700 l 1,10,-1
- 1231 700 l 1,11,-1
- 1145 526 l 1,12,-1
- 412 526 l 1,13,14
- 460 367 460 367 594 260 c 0,15,16
- 727 154 727 154 891 154 c 0,17,18
- 1126 154 1126 154 1405 387 c 1,19,-1
- 1405 176 l 1,20,21
- 1180 -25 1180 -25 897 -25 c 0,22,23
- 663 -25 663 -25 477 137 c 0,24,25
- 299 293 299 293 246 526 c 1,26,-1
- -2 526 l 1,27,-1
- 78 702 l 1,28,-1
- 219 702 l 1,29,-1
- 219 764 l 1,30,-1
- 0 764 l 1,31,-1
- 66 938 l 1,32,-1
- 238 938 l 1,33,34
- 313 1176 313 1176 475 1323 c 0,35,36
- 656 1487 656 1487 891 1487 c 0,37,38
- 1177 1487 1177 1487 1485 1260 c 1,39,-1
- 1386 1090 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE11B
-Encoding: 57627 57627 474
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 0 m 1,0,-1
- 221 98 l 1,1,-1
- 1405 98 l 1,2,-1
- 1405 0 l 1,3,-1
- 221 0 l 1,0,-1
-1405 1184 m 1,4,-1
- 1405 1077 l 1,5,-1
- 489 711 l 1,6,-1
- 1405 342 l 1,7,-1
- 1405 238 l 1,8,-1
- 221 711 l 1,9,-1
- 1405 1184 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE11C
-Encoding: 57628 57628 475
-Width: 1540
-GlyphClass: 2
-Flags: W
-Fore
-702 668 m 1,0,1
- 764 807 764 807 842 870 c 0,2,3
- 931 944 931 944 1073 944 c 0,4,5
- 1244 944 1244 944 1354 819 c 0,6,7
- 1456 700 1456 700 1456 526 c 0,8,9
- 1456 366 1456 366 1364 242 c 0,10,11
- 1261 106 1261 106 1106 106 c 0,12,13
- 923 106 923 106 770 393 c 1,14,15
- 653 160 653 160 444 160 c 0,16,17
- 290 160 290 160 197 266 c 0,18,19
- 102 373 102 373 102 528 c 0,20,21
- 102 671 102 671 182 780 c 0,22,23
- 270 897 270 897 410 897 c 0,24,25
- 515 897 515 897 588 827 c 0,26,27
- 642 778 642 778 702 668 c 1,0,1
-799 465 m 1,28,29
- 918 201 918 201 1110 201 c 0,30,31
- 1246 201 1246 201 1325 297 c 0,32,33
- 1399 389 1399 389 1399 526 c 0,34,35
- 1399 656 1399 656 1323 756 c 0,36,37
- 1240 866 1240 866 1116 866 c 0,38,39
- 996 866 996 866 907 719 c 0,40,41
- 872 657 872 657 799 465 c 1,28,29
-674 590 m 1,42,43
- 581 805 581 805 406 805 c 0,44,45
- 295 805 295 805 226 724 c 0,46,47
- 158 642 158 642 158 530 c 0,48,49
- 158 420 158 420 215 334 c 0,50,51
- 281 238 281 238 387 238 c 0,52,53
- 504 238 504 238 580 362 c 0,54,55
- 618 422 618 422 674 590 c 1,42,43
-EndSplineSet
-EndChar
-StartChar: uniE11D
-Encoding: 57629 57629 476
-Width: 1024
-GlyphClass: 2
-Flags: W
-Fore
-702 897 m 1,0,-1
- 885 897 l 1,1,-1
- 868 829 l 1,2,-1
- 688 829 l 1,3,4
- 597 347 597 347 514 96 c 0,5,6
- 340 -442 340 -442 125 -442 c 0,7,8
- 0 -442 0 -442 0 -334 c 0,9,10
- 0 -300 0 -300 23 -271 c 0,11,12
- 46 -244 46 -244 80 -244 c 0,13,14
- 145 -244 145 -244 145 -294 c 0,15,16
- 145 -297 145 -297 145 -301 c 1,17,-1
- 121 -358 l 1,18,-1
- 129 -375 l 1,19,-1
- 147 -381 l 1,20,21
- 236 -381 236 -381 309 -117 c 2,22,-1
- 385 229 l 1,23,-1
- 520 829 l 1,24,-1
- 340 829 l 1,25,-1
- 354 897 l 1,26,27
- 514 901 514 901 584 1036 c 2,28,-1
- 676 1286 l 2,29,30
- 738 1421 738 1421 881 1421 c 0,31,32
- 1022 1421 1022 1421 1022 1307 c 0,33,34
- 1022 1229 1022 1229 952 1229 c 0,35,36
- 889 1229 889 1229 889 1284 c 0,37,38
- 889 1297 889 1297 899 1316 c 128,-1,39
- 909 1335 909 1335 909 1348 c 0,40,41
- 909 1374 909 1374 874 1374 c 0,42,43
- 794 1374 794 1374 745 1171 c 0,44,45
- 733 1114 733 1114 702 897 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE11E
-Encoding: 57630 57630 477
-Width: 1589
-GlyphClass: 2
-Flags: W
-Fore
-530 956 m 1,0,1
- 465 1063 465 1063 465 1147 c 0,2,3
- 465 1274 465 1274 567 1362 c 0,4,5
- 665 1444 665 1444 795 1444 c 0,6,7
- 926 1444 926 1444 1025 1360 c 128,-1,8
- 1124 1276 1124 1276 1124 1147 c 0,9,10
- 1124 1058 1124 1058 1059 956 c 1,11,12
- 1131 981 1131 981 1192 981 c 0,13,14
- 1331 981 1331 981 1424 891 c 0,15,16
- 1518 801 1518 801 1518 662 c 0,17,18
- 1518 528 1518 528 1424 434 c 0,19,20
- 1331 340 1331 340 1198 340 c 0,21,22
- 1028 340 1028 340 887 532 c 1,23,24
- 922 179 922 179 1032 0 c 1,25,-1
- 555 0 l 1,26,27
- 666 180 666 180 702 532 c 1,28,29
- 561 340 561 340 389 340 c 0,30,31
- 255 340 255 340 164 434 c 0,32,33
- 72 527 72 527 72 662 c 0,34,35
- 72 801 72 801 166 891 c 0,36,37
- 260 981 260 981 399 981 c 0,38,39
- 458 981 458 981 530 956 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE11F
-Encoding: 57631 57631 478
-Width: 1421
-GlyphClass: 2
-Flags: W
-Fore
-711 1139 m 1,0,1
- 795 1444 795 1444 1024 1444 c 0,2,3
- 1164 1444 1164 1444 1264 1353 c 0,4,5
- 1362 1261 1362 1261 1362 1120 c 0,6,7
- 1362 950 1362 950 1233 739 c 0,8,9
- 1207 696 1207 696 991 406 c 0,10,11
- 959 360 959 360 860 199 c 0,12,13
- 782 70 782 70 717 0 c 1,14,-1
- 705 0 l 1,15,16
- 662 39 662 39 627 111 c 2,17,-1
- 569 236 l 2,18,19
- 518 338 518 338 375 514 c 0,20,21
- 210 714 210 714 160 797 c 0,22,23
- 59 963 59 963 59 1110 c 0,24,25
- 59 1256 59 1256 155 1350 c 0,26,27
- 251 1444 251 1444 395 1444 c 0,28,29
- 627 1444 627 1444 711 1139 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE120
-Encoding: 57632 57632 479
-Width: 1282
-GlyphClass: 2
-Flags: W
-Fore
-621 1444 m 1,0,-1
- 662 1444 l 1,1,2
- 694 1415 694 1415 729 1362 c 0,3,4
- 765 1300 765 1300 784 1270 c 0,5,6
- 839 1191 839 1191 981 1071 c 0,7,8
- 1129 945 1129 945 1186 877 c 0,9,10
- 1280 757 1280 757 1280 621 c 0,11,12
- 1280 504 1280 504 1204 422 c 0,13,14
- 1129 340 1129 340 1014 340 c 0,15,16
- 864 340 864 340 731 518 c 1,17,18
- 757 205 757 205 883 0 c 1,19,-1
- 399 0 l 1,20,21
- 527 208 527 208 551 518 c 1,22,23
- 418 340 418 340 268 340 c 0,24,25
- 149 340 149 340 76 422 c 0,26,27
- 2 502 2 502 2 621 c 0,28,29
- 2 753 2 753 96 872 c 0,30,31
- 151 946 151 946 299 1073 c 0,32,33
- 451 1205 451 1205 498 1270 c 2,34,-1
- 621 1444 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE121
-Encoding: 57633 57633 480
-Width: 2080
-GlyphClass: 2
-Flags: W
-Fore
-342 754 m 1,0,-1
- 1741 754 l 1,1,2
- 1628 864 1628 864 1530 1061 c 1,3,-1
- 1595 1061 l 1,4,5
- 1786 848 1786 848 2005 735 c 1,6,-1
- 2005 680 l 1,7,8
- 1784 568 1784 568 1595 354 c 1,9,-1
- 1530 354 l 1,10,11
- 1626 550 1626 550 1741 662 c 1,12,-1
- 342 662 l 1,13,14
- 453 552 453 552 553 354 c 1,15,-1
- 485 354 l 1,16,17
- 295 569 295 569 78 680 c 1,18,-1
- 78 735 l 1,19,20
- 293 846 293 846 485 1061 c 1,21,-1
- 553 1061 l 1,22,23
- 459 870 459 870 342 754 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE122
-Encoding: 57634 57634 481
-Width: 1662
-GlyphClass: 2
-Flags: W
-Fore
-342 975 m 1,0,-1
- 362 973 l 2,1,2
- 377 968 377 968 377 950 c 0,3,4
- 377 890 377 890 199 643 c 1,5,-1
- 211 633 l 1,6,-1
- 1561 633 l 1,7,8
- 1581 624 1581 624 1581 590 c 0,9,10
- 1581 558 1581 558 1561 545 c 1,11,-1
- 199 535 l 1,12,13
- 376 282 376 282 377 231 c 0,14,15
- 377 203 377 203 354 203 c 2,16,-1
- 336 205 l 1,17,-1
- 12 590 l 1,18,19
- 82 656 82 656 342 975 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE123
-Encoding: 57635 57635 482
-Width: 835
-GlyphClass: 2
-Flags: W
-Fore
-410 1368 m 1,0,1
- 508 1301 508 1301 795 1053 c 1,2,-1
- 797 1038 l 2,3,4
- 797 1024 797 1024 778 1018 c 0,5,6
- 732 1018 732 1018 616 1090 c 0,7,8
- 518 1150 518 1150 463 1198 c 1,9,-1
- 453 1184 l 1,10,-1
- 453 35 l 1,11,12
- 432 6 432 6 406 6 c 0,13,14
- 385 6 385 6 367 35 c 1,15,-1
- 367 1184 l 1,16,-1
- 354 1198 l 1,17,18
- 311 1157 311 1157 205 1092 c 0,19,20
- 90 1018 90 1018 47 1018 c 0,21,22
- 23 1018 23 1018 23 1038 c 2,23,-1
- 25 1053 l 1,24,25
- 169 1179 169 1179 410 1368 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE124
-Encoding: 57636 57636 483
-Width: 1662
-GlyphClass: 2
-Flags: W
-Fore
-1251 975 m 1,0,-1
- 1231 973 l 2,1,2
- 1217 967 1217 967 1217 950 c 0,3,4
- 1217 889 1217 889 1395 643 c 1,5,-1
- 1382 633 l 1,6,-1
- 33 633 l 1,7,8
- 12 624 12 624 12 590 c 0,9,10
- 12 557 12 557 33 545 c 1,11,-1
- 1395 535 l 1,12,13
- 1218 285 1218 285 1217 231 c 0,14,15
- 1217 203 1217 203 1239 203 c 2,16,-1
- 1257 205 l 1,17,-1
- 1581 590 l 1,18,19
- 1511 656 1511 656 1251 975 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE125
-Encoding: 57637 57637 484
-Width: 823
-GlyphClass: 2
-Flags: W
-Fore
-406 8 m 1,0,1
- 364 36 364 36 20 324 c 1,2,-1
- 18 338 l 2,3,4
- 18 358 18 358 43 358 c 0,5,6
- 132 358 132 358 350 180 c 1,7,-1
- 362 193 l 1,8,-1
- 362 1341 l 1,9,10
- 377 1363 377 1363 401 1370 c 1,11,-1
- 426 1366 l 1,12,-1
- 449 1341 l 1,13,-1
- 459 178 l 1,14,15
- 512 224 512 224 612 287 c 0,16,17
- 726 358 726 358 774 358 c 0,18,19
- 793 352 793 352 793 338 c 2,20,-1
- 791 324 l 1,21,-1
- 602 162 l 2,22,23
- 502 76 502 76 406 8 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE126
-Encoding: 57638 57638 485
-Width: 532
-GlyphClass: 2
-Flags: W
-Fore
-53 1356 m 0,0,1
- 53 1452 53 1452 120 1519 c 0,2,3
- 186 1585 186 1585 283 1585 c 0,4,5
- 379 1585 379 1585 445 1519 c 0,6,7
- 512 1452 512 1452 512 1356 c 0,8,9
- 512 1262 512 1262 444 1194 c 128,-1,10
- 376 1126 376 1126 283 1126 c 0,11,12
- 187 1126 187 1126 120 1193 c 0,13,14
- 53 1259 53 1259 53 1356 c 0,0,1
-135 1354 m 0,15,16
- 135 1292 135 1292 178 1247 c 0,17,18
- 223 1204 223 1204 285 1204 c 0,19,20
- 346 1204 346 1204 391 1247 c 0,21,22
- 434 1290 434 1290 434 1354 c 0,23,24
- 434 1415 434 1415 390 1459 c 0,25,26
- 347 1503 347 1503 285 1503 c 0,27,28
- 221 1503 221 1503 178 1460 c 128,-1,29
- 135 1417 135 1417 135 1354 c 0,15,16
-EndSplineSet
-EndChar
-StartChar: uniE127
-Encoding: 57639 57639 486
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 0 m 1,0,-1
- 221 98 l 1,1,-1
- 1407 98 l 1,2,-1
- 1407 0 l 1,3,-1
- 221 0 l 1,0,-1
-766 297 m 1,4,-1
- 766 692 l 1,5,-1
- 221 692 l 1,6,-1
- 221 791 l 1,7,-1
- 766 791 l 1,8,-1
- 766 1184 l 1,9,-1
- 864 1184 l 1,10,-1
- 864 791 l 1,11,-1
- 1407 791 l 1,12,-1
- 1407 692 l 1,13,-1
- 864 692 l 1,14,-1
- 864 297 l 1,15,-1
- 766 297 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE128
-Encoding: 57640 57640 487
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-1405 0 m 1,0,-1
- 221 0 l 1,1,-1
- 221 98 l 1,2,-1
- 1405 98 l 1,3,-1
- 1405 0 l 1,0,-1
-221 1184 m 1,4,-1
- 1405 711 l 1,5,-1
- 221 238 l 1,6,-1
- 221 342 l 1,7,-1
- 1139 713 l 1,8,-1
- 221 1077 l 1,9,-1
- 221 1184 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE129
-Encoding: 57641 57641 488
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 70 m 1,0,-1
- 743 592 l 1,1,-1
- 221 1114 l 1,2,-1
- 293 1184 l 1,3,-1
- 813 662 l 1,4,-1
- 1337 1184 l 1,5,-1
- 1405 1114 l 1,6,-1
- 883 592 l 1,7,-1
- 1405 70 l 1,8,-1
- 1337 0 l 1,9,-1
- 813 522 l 1,10,-1
- 293 0 l 1,11,-1
- 221 70 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE12A
-Encoding: 57642 57642 489
-Width: 1460
-GlyphClass: 2
-Flags: W
-Fore
-682 668 m 1,0,1
- 745 806 745 806 819 868 c 0,2,3
- 907 944 907 944 1047 944 c 0,4,5
- 1201 944 1201 944 1337 838 c 1,6,-1
- 1337 778 l 1,7,8
- 1223 868 1223 868 1106 868 c 0,9,10
- 974 868 974 868 887 723 c 0,11,12
- 845 656 845 656 778 465 c 1,13,14
- 897 188 897 188 1114 188 c 0,15,16
- 1235 188 1235 188 1337 270 c 1,17,-1
- 1337 213 l 1,18,19
- 1230 106 1230 106 1094 106 c 0,20,21
- 905 106 905 106 750 395 c 1,22,23
- 636 160 636 160 424 160 c 0,24,25
- 273 160 273 160 177 268 c 0,26,27
- 82 378 82 378 82 530 c 0,28,29
- 82 675 82 675 162 782 c 0,30,31
- 250 897 250 897 391 897 c 0,32,33
- 571 897 571 897 682 668 c 1,0,1
-653 590 m 1,34,35
- 561 805 561 805 385 805 c 0,36,37
- 275 805 275 805 206 724 c 128,-1,38
- 137 643 137 643 137 530 c 0,39,40
- 137 419 137 419 195 334 c 0,41,42
- 260 238 260 238 367 238 c 0,43,44
- 484 238 484 238 559 362 c 0,45,46
- 597 422 597 422 653 590 c 1,34,35
-EndSplineSet
-EndChar
-StartChar: uniE12B
-Encoding: 57643 57643 490
-Width: 1091
-GlyphClass: 2
-Flags: W
-Fore
-946 717 m 1,0,1
- 958 828 958 828 958 901 c 0,2,3
- 958 1072 958 1072 872 1174 c 0,4,5
- 781 1280 781 1280 612 1280 c 0,6,7
- 417 1280 417 1280 311 1120 c 1,8,-1
- 266 1120 l 1,9,10
- 405 1421 405 1421 647 1421 c 0,11,12
- 840 1421 840 1421 936 1260 c 0,13,14
- 1012 1126 1012 1126 1012 920 c 0,15,16
- 1012 582 1012 582 885 311 c 0,17,18
- 723 -31 723 -31 422 -31 c 0,19,20
- 268 -31 268 -31 174 58 c 0,21,22
- 82 148 82 148 82 303 c 0,23,24
- 82 543 82 543 236 721 c 0,25,26
- 396 907 396 907 633 907 c 0,27,28
- 861 907 861 907 946 717 c 1,0,1
-930 629 m 1,29,30
- 851 852 851 852 643 852 c 0,31,32
- 457 852 457 852 344 643 c 0,33,34
- 252 468 252 468 252 264 c 0,35,36
- 252 164 252 164 297 98 c 0,37,38
- 350 27 350 27 446 27 c 0,39,40
- 633 27 633 27 774 244 c 0,41,42
- 881 406 881 406 930 629 c 1,29,30
-EndSplineSet
-EndChar
-StartChar: uniE12C
-Encoding: 57644 57644 491
-Width: 843
-GlyphClass: 2
-Flags: W
-Fore
-348 377 m 0,0,1
- 205 377 205 377 99 478 c 0,2,3
- -6 578 -6 578 -6 723 c 0,4,5
- -6 866 -6 866 99 968 c 0,6,7
- 205 1069 205 1069 348 1069 c 0,8,9
- 488 1069 488 1069 589 967 c 0,10,11
- 688 864 688 864 688 723 c 0,12,13
- 688 577 688 577 590 478 c 0,14,15
- 491 377 491 377 348 377 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uniE12D
-Encoding: 57645 57645 492
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-715 98 m 1,0,-1
- 715 295 l 1,1,-1
- 913 295 l 1,2,-1
- 913 98 l 1,3,-1
- 715 98 l 1,0,-1
-221 543 m 1,4,-1
- 221 641 l 1,5,-1
- 1407 641 l 1,6,-1
- 1407 543 l 1,7,-1
- 221 543 l 1,4,-1
-715 887 m 1,8,-1
- 715 1085 l 1,9,-1
- 913 1085 l 1,10,-1
- 913 887 l 1,11,-1
- 715 887 l 1,8,-1
-EndSplineSet
-EndChar
-StartChar: uniE12E
-Encoding: 57646 57646 493
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-883 827 m 1,0,-1
- 1098 1204 l 1,1,-1
- 1208 1204 l 1,2,-1
- 993 827 l 1,3,-1
- 1405 827 l 1,4,-1
- 1405 729 l 1,5,-1
- 936 729 l 1,6,-1
- 780 457 l 1,7,-1
- 1405 457 l 1,8,-1
- 1405 358 l 1,9,-1
- 725 358 l 1,10,-1
- 518 -4 l 1,11,-1
- 401 -4 l 1,12,-1
- 610 358 l 1,13,-1
- 221 358 l 1,14,-1
- 221 457 l 1,15,-1
- 668 457 l 1,16,-1
- 825 729 l 1,17,-1
- 221 729 l 1,18,-1
- 221 827 l 1,19,-1
- 883 827 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE12F
-Encoding: 57647 57647 494
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 172 m 1,0,-1
- 221 270 l 1,1,-1
- 1405 270 l 1,2,-1
- 1405 172 l 1,3,-1
- 221 172 l 1,0,-1
-221 543 m 1,4,-1
- 221 641 l 1,5,-1
- 1405 641 l 1,6,-1
- 1405 543 l 1,7,-1
- 221 543 l 1,4,-1
-221 913 m 1,8,-1
- 221 1012 l 1,9,-1
- 1405 1012 l 1,10,-1
- 1405 913 l 1,11,-1
- 221 913 l 1,8,-1
-EndSplineSet
-EndChar
-StartChar: uniE130
-Encoding: 57648 57648 495
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-307 621 m 1,0,-1
- 246 621 l 1,1,2
- 259 940 259 940 510 940 c 0,3,4
- 622 940 622 940 864 820 c 128,-1,5
- 1106 700 1106 700 1200 700 c 0,6,7
- 1345 700 1345 700 1368 918 c 1,8,-1
- 1430 918 l 1,9,10
- 1410 598 1410 598 1165 598 c 0,11,12
- 1038 598 1038 598 819 718 c 128,-1,13
- 600 838 600 838 473 838 c 0,14,15
- 396 838 396 838 348 766 c 0,16,17
- 307 702 307 702 307 621 c 1,0,-1
-340 317 m 1,18,-1
- 279 317 l 1,19,20
- 293 637 293 637 543 637 c 0,21,22
- 656 637 656 637 897 517 c 128,-1,23
- 1138 397 1138 397 1233 397 c 0,24,25
- 1378 397 1378 397 1401 614 c 1,26,-1
- 1462 614 l 1,27,28
- 1444 295 1444 295 1198 295 c 0,29,30
- 1071 295 1071 295 852 415 c 128,-1,31
- 633 535 633 535 506 535 c 0,32,33
- 428 535 428 535 381 463 c 0,34,35
- 340 399 340 399 340 317 c 1,18,-1
-EndSplineSet
-EndChar
-StartChar: uniE131
-Encoding: 57649 57649 496
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-410 590 m 0,0,1
- 410 544 410 544 378 510 c 0,2,3
- 346 477 346 477 299 477 c 0,4,5
- 254 477 254 477 221 511 c 0,6,7
- 188 546 188 546 188 590 c 0,8,9
- 188 635 188 635 221 668 c 0,10,11
- 255 700 255 700 299 700 c 128,-1,12
- 343 700 343 700 377 668 c 0,13,14
- 410 635 410 635 410 590 c 0,0,1
-1092 590 m 0,15,16
- 1092 546 1092 546 1060 511 c 0,17,18
- 1029 477 1029 477 983 477 c 0,19,20
- 938 477 938 477 904 511 c 0,21,22
- 870 547 870 547 870 590 c 0,23,24
- 870 634 870 634 904 668 c 0,25,26
- 939 700 939 700 983 700 c 0,27,28
- 1092 700 1092 700 1092 590 c 0,15,16
-1776 590 m 0,29,30
- 1776 544 1776 544 1744 510 c 0,31,32
- 1712 477 1712 477 1665 477 c 0,33,34
- 1620 477 1620 477 1587 511 c 0,35,36
- 1554 546 1554 546 1554 590 c 0,37,38
- 1554 635 1554 635 1587 668 c 0,39,40
- 1621 700 1621 700 1665 700 c 128,-1,41
- 1709 700 1709 700 1743 668 c 0,42,43
- 1776 635 1776 635 1776 590 c 0,29,30
-EndSplineSet
-EndChar
-StartChar: uniE132
-Encoding: 57650 57650 497
-Width: 1685
-GlyphClass: 2
-Flags: W
-Fore
-979 655 m 1,0,1
- 1165 506 1165 506 1229 449 c 0,2,3
- 1395 289 1395 289 1395 197 c 0,4,5
- 1395 142 1395 142 1348 59 c 0,6,7
- 1295 -28 1295 -28 1245 -31 c 1,8,-1
- 1235 -27 l 1,9,-1
- 1231 -14 l 1,10,11
- 1257 58 1257 58 1257 86 c 0,12,13
- 1257 160 1257 160 1180 240 c 0,14,15
- 1146 274 1146 274 1044 358 c 2,16,-1
- 455 846 l 1,17,18
- 332 718 332 718 332 616 c 0,19,20
- 332 527 332 527 403 438 c 2,21,-1
- 539 297 l 2,22,23
- 609 215 609 215 610 135 c 0,24,25
- 610 -31 610 -31 375 -31 c 0,26,27
- 311 -31 311 -31 285 -14 c 1,28,-1
- 279 0 l 1,29,-1
- 283 8 l 1,30,31
- 371 58 371 58 371 111 c 0,32,33
- 371 183 371 183 308 309 c 0,34,35
- 246 438 246 438 246 508 c 0,36,37
- 246 650 246 650 424 870 c 1,38,39
- 315 969 315 969 287 999 c 0,40,41
- 205 1087 205 1087 205 1159 c 0,42,43
- 205 1218 205 1218 246 1296 c 0,44,45
- 291 1384 291 1384 342 1386 c 1,46,-1
- 362 1368 l 1,47,48
- 351 1293 351 1293 348 1296 c 1,49,50
- 348 1184 348 1184 596 965 c 2,51,-1
- 950 682 l 1,52,-1
- 1217 1012 l 1,53,54
- 1075 1124 1075 1124 1075 1212 c 0,55,56
- 1075 1351 1075 1351 1257 1386 c 1,57,58
- 1220 1339 1220 1339 1219 1294 c 1,59,60
- 1442 994 1442 994 1442 961 c 0,61,62
- 1442 887 1442 887 1354 838 c 1,63,64
- 1328 933 1328 933 1247 989 c 1,65,-1
- 979 655 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE133
-Encoding: 57651 57651 498
-Width: 1404
-GlyphClass: 2
-Flags: W
-Fore
-395 915 m 1,0,-1
- 403 883 l 1,1,2
- 366 874 366 874 324 874 c 0,3,4
- 234 874 234 874 170 938 c 0,5,6
- 106 1005 106 1005 106 1094 c 0,7,8
- 106 1226 106 1226 215 1311 c 0,9,10
- 314 1386 314 1386 451 1386 c 0,11,12
- 552 1386 552 1386 737 1313 c 0,13,14
- 926 1239 926 1239 1024 1239 c 0,15,16
- 1144 1239 1144 1239 1194 1364 c 1,17,-1
- 1227 1356 l 1,18,19
- 1148 1090 1148 1090 920 1090 c 0,20,21
- 816 1090 816 1090 629 1159 c 0,22,23
- 441 1229 441 1229 338 1229 c 0,24,25
- 265 1229 265 1229 210 1185 c 0,26,27
- 156 1140 156 1140 156 1069 c 0,28,29
- 156 911 156 911 338 911 c 0,30,31
- 355 911 355 911 395 915 c 1,0,-1
-1225 934 m 1,32,-1
- 1200 915 l 1,33,34
- 1133 965 1133 965 1081 965 c 0,35,36
- 995 965 995 965 995 874 c 0,37,38
- 995 824 995 824 1098 636 c 0,39,40
- 1200 447 1200 447 1200 373 c 0,41,42
- 1200 182 1200 182 1010 68 c 0,43,44
- 845 -31 845 -31 641 -31 c 0,45,46
- 526 -31 526 -31 410 31 c 0,47,48
- 345 66 345 66 242 147 c 0,49,50
- 160 209 160 209 133 209 c 0,51,52
- 81 209 81 209 43 150 c 1,53,-1
- 0 150 l 1,54,55
- 130 315 130 315 264 315 c 0,56,57
- 361 315 361 315 463 240 c 2,58,-1
- 627 100 l 2,59,60
- 718 25 718 25 786 25 c 0,61,62
- 883 25 883 25 965 86 c 0,63,64
- 1055 154 1055 154 1055 248 c 0,65,66
- 1055 304 1055 304 944 503 c 0,67,68
- 834 701 834 701 834 772 c 0,69,70
- 834 865 834 865 895 939 c 0,71,72
- 956 1014 956 1014 1047 1014 c 0,73,74
- 1131 1014 1131 1014 1225 934 c 1,32,-1
-EndSplineSet
-EndChar
-StartChar: uniE134
-Encoding: 57652 57652 499
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-707 1188 m 1,0,1
- 864 1265 864 1265 913 1286 c 0,2,3
- 1033 1348 1033 1348 1108 1405 c 1,4,5
- 1372 1270 1372 1270 1372 1108 c 0,6,7
- 1372 927 1372 927 1108 795 c 1,8,9
- 1194 724 1194 724 1227 549 c 0,10,11
- 1244 403 1244 403 1257 260 c 0,12,13
- 1277 123 1277 123 1329 123 c 0,14,15
- 1370 123 1370 123 1417 164 c 1,16,-1
- 1438 137 l 1,17,-1
- 1200 -43 l 1,18,19
- 1055 68 1055 68 1055 266 c 0,20,21
- 1055 296 1055 296 1058 364 c 0,22,23
- 1061 430 1061 430 1061 467 c 0,24,25
- 1061 619 1061 619 940 709 c 1,26,-1
- 741 631 l 1,27,-1
- 743 498 l 1,28,-1
- 740 438 l 1,29,-1
- 730 383 l 2,30,31
- 700 264 700 264 600 168 c 0,32,33
- 546 116 546 116 293 -43 c 1,34,-1
- 143 115 l 1,35,-1
- 76 72 l 1,36,-1
- 51 100 l 1,37,-1
- 287 250 l 1,38,-1
- 432 94 l 1,39,40
- 555 154 555 154 555 395 c 2,41,-1
- 555 930 l 2,42,43
- 555 1122 555 1122 530 1198 c 0,44,45
- 485 1343 485 1343 338 1343 c 0,46,47
- 250 1343 250 1343 180 1288 c 0,48,49
- 104 1229 104 1229 104 1143 c 0,50,51
- 104 1064 104 1064 232 945 c 0,52,53
- 360 829 360 829 360 729 c 0,54,55
- 360 579 360 579 190 479 c 1,56,-1
- 182 512 l 1,57,58
- 256 551 256 551 256 606 c 0,59,60
- 256 685 256 685 128 807 c 0,61,62
- 0 927 0 927 0 1020 c 0,63,64
- 0 1173 0 1173 119 1280 c 0,65,66
- 237 1386 237 1386 393 1386 c 0,67,68
- 608 1386 608 1386 707 1188 c 1,0,1
-721 1149 m 1,69,70
- 754 1020 754 1020 754 866 c 0,71,72
- 754 783 754 783 743 678 c 1,73,74
- 957 758 957 758 1022 797 c 0,75,76
- 1182 894 1182 894 1182 1028 c 0,77,78
- 1182 1237 1182 1237 979 1237 c 0,79,80
- 867 1237 867 1237 721 1149 c 1,69,70
-EndSplineSet
-EndChar
-StartChar: uniE135
-Encoding: 57653 57653 500
-Width: 1710
-GlyphClass: 2
-Flags: W
-Fore
-707 1059 m 1,0,-1
- 731 1016 l 1,1,2
- 391 811 391 811 391 520 c 0,3,4
- 391 451 391 451 422 365 c 1,5,6
- 649 608 649 608 772 709 c 0,7,8
- 1014 907 1014 907 1198 907 c 0,9,10
- 1321 907 1321 907 1391 824 c 0,11,12
- 1460 742 1460 742 1460 616 c 0,13,14
- 1460 375 1460 375 1305 184 c 0,15,16
- 1140 -18 1140 -18 903 -18 c 0,17,18
- 812 -18 812 -18 748 37 c 0,19,20
- 682 90 682 90 682 178 c 0,21,22
- 682 248 682 248 715 299 c 0,23,24
- 753 358 753 358 819 358 c 0,25,26
- 893 358 893 358 893 285 c 0,27,28
- 893 258 893 258 745 135 c 1,29,30
- 748 88 748 88 797 55 c 0,31,32
- 838 27 838 27 891 27 c 0,33,34
- 1072 27 1072 27 1190 260 c 0,35,36
- 1288 458 1288 458 1288 657 c 0,37,38
- 1288 730 1288 730 1251 782 c 0,39,40
- 1209 844 1209 844 1141 844 c 0,41,42
- 1000 844 1000 844 762 641 c 0,43,44
- 588 490 588 490 446 315 c 1,45,46
- 592 15 592 15 592 -121 c 0,47,48
- 592 -240 592 -240 530 -336 c 0,49,50
- 461 -442 461 -442 346 -442 c 0,51,52
- 248 -442 248 -442 185 -369 c 0,53,54
- 123 -293 123 -293 123 -195 c 0,55,56
- 123 -48 123 -48 291 190 c 1,57,58
- 229 335 229 335 229 434 c 0,59,60
- 229 770 229 770 707 1059 c 1,0,-1
-313 139 m 1,61,62
- 168 -69 168 -69 168 -197 c 0,63,64
- 168 -271 168 -271 215 -334 c 0,65,66
- 261 -395 261 -395 336 -395 c 0,67,68
- 393 -395 393 -395 429 -350 c 128,-1,69
- 465 -305 465 -305 465 -248 c 0,70,71
- 465 -121 465 -121 313 139 c 1,61,62
-EndSplineSet
-EndChar
-StartChar: uniE136
-Encoding: 57654 57654 501
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-885 592 m 1,0,-1
- 1196 281 l 1,1,2
- 1309 424 1309 424 1309 592 c 0,3,4
- 1309 760 1309 760 1196 903 c 1,5,-1
- 885 592 l 1,0,-1
-743 592 m 1,6,-1
- 432 903 l 1,7,8
- 322 762 322 762 322 592 c 0,9,10
- 322 431 322 431 432 281 c 1,11,-1
- 743 592 l 1,6,-1
-813 662 m 1,12,-1
- 1126 975 l 1,13,14
- 985 1085 985 1085 815 1085 c 0,15,16
- 640 1085 640 1085 502 975 c 1,17,-1
- 813 662 l 1,12,-1
-813 522 m 1,18,-1
- 502 211 l 1,19,20
- 645 98 645 98 815 98 c 0,21,22
- 983 98 983 98 1126 211 c 1,23,-1
- 813 522 l 1,18,-1
-813 0 m 0,24,25
- 542 0 542 0 383 161 c 0,26,27
- 223 321 223 321 223 592 c 128,-1,28
- 223 863 223 863 383 1023 c 0,29,30
- 542 1184 542 1184 813 1184 c 0,31,32
- 1082 1184 1082 1184 1245 1023 c 0,33,34
- 1407 862 1407 862 1407 592 c 128,-1,35
- 1407 322 1407 322 1245 161 c 0,36,37
- 1082 0 1082 0 813 0 c 0,24,25
-EndSplineSet
-EndChar
-StartChar: uniE137
-Encoding: 57655 57655 502
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-813 0 m 0,0,1
- 545 0 545 0 383 162 c 128,-1,2
- 221 324 221 324 221 592 c 0,3,4
- 221 862 221 862 382 1023 c 128,-1,5
- 543 1184 543 1184 813 1184 c 0,6,7
- 1081 1184 1081 1184 1243 1022 c 128,-1,8
- 1405 860 1405 860 1405 592 c 0,9,10
- 1405 322 1405 322 1244 161 c 128,-1,11
- 1083 0 1083 0 813 0 c 0,0,1
-862 641 m 1,12,-1
- 1305 641 l 1,13,14
- 1279 822 1279 822 1161 940 c 0,15,16
- 1042 1059 1042 1059 862 1083 c 1,17,-1
- 862 641 l 1,12,-1
-766 543 m 1,18,-1
- 322 543 l 1,19,20
- 368 161 368 161 764 100 c 1,21,-1
- 766 543 l 1,18,-1
-764 641 m 1,22,-1
- 766 1083 l 1,23,24
- 585 1059 585 1059 465 940 c 0,25,26
- 345 823 345 823 322 641 c 1,27,-1
- 764 641 l 1,22,-1
-862 543 m 1,28,-1
- 862 100 l 1,29,30
- 1043 126 1043 126 1161 244 c 128,-1,31
- 1279 362 1279 362 1305 543 c 1,32,-1
- 862 543 l 1,28,-1
-EndSplineSet
-EndChar
-StartChar: uniE138
-Encoding: 57656 57656 503
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-1126 975 m 1,0,1
- 985 1085 985 1085 813 1085 c 0,2,3
- 593 1085 593 1085 457 949 c 0,4,5
- 319 812 319 812 319 594 c 0,6,7
- 319 419 319 419 432 281 c 1,8,-1
- 1126 975 l 1,0,1
-502 211 m 1,9,10
- 645 98 645 98 815 98 c 0,11,12
- 1035 98 1035 98 1170 236 c 0,13,14
- 1307 373 1307 373 1307 592 c 0,15,16
- 1307 760 1307 760 1196 903 c 1,17,-1
- 502 211 l 1,9,10
-813 0 m 0,18,19
- 545 0 545 0 383 162 c 128,-1,20
- 221 324 221 324 221 592 c 0,21,22
- 221 862 221 862 382 1023 c 128,-1,23
- 543 1184 543 1184 813 1184 c 0,24,25
- 1081 1184 1081 1184 1243 1022 c 128,-1,26
- 1405 860 1405 860 1405 592 c 0,27,28
- 1405 322 1405 322 1244 161 c 128,-1,29
- 1083 0 1083 0 813 0 c 0,18,19
-EndSplineSet
-EndChar
-StartChar: uniE139
-Encoding: 57657 57657 504
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 0 m 1,0,-1
- 221 592 l 2,1,2
- 221 860 221 860 383 1022 c 128,-1,3
- 545 1184 545 1184 813 1184 c 0,4,5
- 1082 1184 1082 1184 1245 1023 c 0,6,7
- 1407 862 1407 862 1407 592 c 2,8,-1
- 1407 0 l 1,9,-1
- 1309 0 l 1,10,11
- 1309 60 1309 60 1315 199 c 0,12,13
- 1319 315 1319 315 1319 397 c 0,14,15
- 1319 716 1319 716 1229 877 c 0,16,17
- 1111 1085 1111 1085 813 1085 c 0,18,19
- 594 1085 594 1085 458 948 c 0,20,21
- 322 812 322 812 322 592 c 2,22,-1
- 322 0 l 1,23,-1
- 221 0 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE13A
-Encoding: 57658 57658 505
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-1407 1184 m 1,0,-1
- 1407 592 l 2,1,2
- 1407 322 1407 322 1245 161 c 0,3,4
- 1082 0 1082 0 813 0 c 0,5,6
- 542 0 542 0 383 161 c 0,7,8
- 223 321 223 321 223 592 c 2,9,-1
- 223 1184 l 1,10,-1
- 322 1184 l 1,11,-1
- 322 592 l 2,12,13
- 322 372 322 372 459 236 c 0,14,15
- 594 98 594 98 813 98 c 0,16,17
- 1114 98 1114 98 1233 313 c 0,18,19
- 1319 471 1319 471 1319 788 c 0,20,21
- 1319 877 1319 877 1315 993 c 0,22,23
- 1309 1132 1309 1132 1309 1184 c 1,24,-1
- 1407 1184 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE13B
-Encoding: 57659 57659 506
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 281 m 1,0,-1
- 987 281 l 2,1,2
- 1121 281 1121 281 1214 375 c 0,3,4
- 1309 470 1309 470 1309 602 c 0,5,6
- 1309 734 1309 734 1214 827 c 0,7,8
- 1121 922 1121 922 987 922 c 2,9,-1
- 221 922 l 1,10,-1
- 221 1020 l 1,11,-1
- 987 1020 l 2,12,13
- 1170 1020 1170 1020 1288 902 c 0,14,15
- 1407 785 1407 785 1407 602 c 0,16,17
- 1407 422 1407 422 1287 302 c 128,-1,18
- 1167 182 1167 182 987 182 c 2,19,-1
- 221 182 l 1,20,-1
- 221 281 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE13C
-Encoding: 57660 57660 507
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 98 m 1,0,-1
- 1407 98 l 1,1,-1
- 1407 0 l 1,2,-1
- 221 0 l 1,3,-1
- 221 98 l 1,0,-1
-221 444 m 1,4,-1
- 987 444 l 2,5,6
- 1121 444 1121 444 1214 539 c 0,7,8
- 1309 632 1309 632 1309 766 c 0,9,10
- 1309 896 1309 896 1214 991 c 0,11,12
- 1121 1085 1121 1085 987 1085 c 2,13,-1
- 221 1085 l 1,14,-1
- 221 1184 l 1,15,-1
- 987 1184 l 2,16,17
- 1168 1184 1168 1184 1288 1066 c 0,18,19
- 1407 947 1407 947 1407 766 c 0,20,21
- 1407 586 1407 586 1287 466 c 128,-1,22
- 1167 346 1167 346 987 346 c 2,23,-1
- 221 346 l 1,24,-1
- 221 444 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE13D
-Encoding: 57661 57661 508
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-948 922 m 1,0,-1
- 641 922 l 2,1,2
- 508 922 508 922 415 828 c 0,3,4
- 322 735 322 735 322 602 c 0,5,6
- 322 487 322 487 394 397 c 0,7,8
- 468 306 468 306 580 287 c 1,9,-1
- 948 922 l 1,0,-1
-1407 281 m 1,10,-1
- 1407 182 l 1,11,-1
- 637 182 l 1,12,13
- 525 -35 525 -35 483 -35 c 0,14,15
- 430 -35 430 -35 430 14 c 0,16,17
- 430 36 430 36 526 197 c 1,18,19
- 390 228 390 228 306 344 c 0,20,21
- 223 460 223 460 223 602 c 0,22,23
- 223 816 223 816 352 920 c 0,24,25
- 456 1000 456 1000 655 1016 c 0,26,27
- 699 1020 699 1020 1006 1020 c 1,28,29
- 1152 1313 1152 1313 1204 1313 c 0,30,31
- 1257 1313 1257 1313 1257 1264 c 0,32,33
- 1257 1243 1257 1243 1124 1020 c 1,34,-1
- 1407 1020 l 1,35,-1
- 1407 922 l 1,36,-1
- 1067 922 l 1,37,-1
- 694 281 l 1,38,-1
- 1407 281 l 1,10,-1
-EndSplineSet
-EndChar
-StartChar: uniE13E
-Encoding: 57662 57662 509
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-1407 281 m 1,0,-1
- 1407 182 l 1,1,-1
- 641 182 l 2,2,3
- 458 182 458 182 341 301 c 0,4,5
- 223 419 223 419 223 602 c 0,6,7
- 223 782 223 782 342 901 c 128,-1,8
- 461 1020 461 1020 641 1020 c 2,9,-1
- 1407 1020 l 1,10,-1
- 1407 922 l 1,11,-1
- 641 922 l 2,12,13
- 508 922 508 922 415 828 c 0,14,15
- 322 735 322 735 322 602 c 0,16,17
- 322 470 322 470 415 375 c 0,18,19
- 508 281 508 281 641 281 c 2,20,-1
- 1407 281 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE13F
-Encoding: 57663 57663 510
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-1407 98 m 1,0,-1
- 1407 0 l 1,1,-1
- 223 0 l 1,2,-1
- 223 98 l 1,3,-1
- 1407 98 l 1,0,-1
-1407 444 m 1,4,-1
- 1407 346 l 1,5,-1
- 641 346 l 2,6,7
- 458 346 458 346 341 465 c 0,8,9
- 223 583 223 583 223 766 c 0,10,11
- 223 946 223 946 342 1065 c 128,-1,12
- 461 1184 461 1184 641 1184 c 2,13,-1
- 1407 1184 l 1,14,-1
- 1407 1085 l 1,15,-1
- 641 1085 l 2,16,17
- 508 1085 508 1085 415 992 c 128,-1,18
- 322 899 322 899 322 766 c 0,19,20
- 322 632 322 632 415 539 c 0,21,22
- 508 444 508 444 641 444 c 2,23,-1
- 1407 444 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE140
-Encoding: 57664 57664 511
-Width: 1460
-GlyphClass: 2
-Flags: W
-Fore
-1257 1133 m 1,0,-1
- 1257 1018 l 1,1,2
- 1200 1018 1200 1018 1071 1024 c 0,3,4
- 964 1028 964 1028 887 1028 c 0,5,6
- 628 1028 628 1028 487 961 c 0,7,8
- 298 869 298 869 258 645 c 1,9,-1
- 1257 645 l 1,10,-1
- 1257 524 l 1,11,-1
- 260 524 l 1,12,13
- 317 297 317 297 504 207 c 0,14,15
- 645 139 645 139 895 139 c 0,16,17
- 945 139 945 139 1082 144 c 0,18,19
- 1206 150 1206 150 1257 150 c 1,20,-1
- 1257 35 l 1,21,-1
- 780 35 l 2,22,23
- 500 35 500 35 330 168 c 0,24,25
- 139 315 139 315 139 586 c 0,26,27
- 139 852 139 852 330 999 c 0,28,29
- 502 1133 502 1133 776 1133 c 2,30,-1
- 1257 1133 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE141
-Encoding: 57665 57665 512
-Width: 1460
-GlyphClass: 2
-Flags: W
-Fore
-1264 1133 m 1,0,-1
- 1264 1018 l 1,1,-1
- 1020 1018 l 1,2,-1
- 807 645 l 1,3,-1
- 1264 645 l 1,4,-1
- 1264 524 l 1,5,-1
- 739 524 l 1,6,-1
- 549 186 l 1,7,8
- 699 141 699 141 918 141 c 0,9,10
- 938 141 938 141 1092 145 c 0,11,12
- 1229 150 1229 150 1264 150 c 1,13,-1
- 1264 35 l 1,14,-1
- 786 35 l 2,15,16
- 594 35 594 35 487 80 c 1,17,-1
- 358 -137 l 1,18,-1
- 229 -137 l 1,19,-1
- 387 129 l 1,20,21
- 145 327 145 327 145 586 c 0,22,23
- 145 916 145 916 403 1042 c 0,24,25
- 585 1133 585 1133 954 1133 c 1,26,-1
- 1065 1325 l 1,27,-1
- 1198 1325 l 1,28,-1
- 1090 1133 l 1,29,-1
- 1264 1133 l 1,0,-1
-887 1018 m 1,30,-1
- 768 1018 l 2,31,32
- 340 1018 340 1018 264 645 c 1,33,-1
- 672 645 l 1,34,-1
- 887 1018 l 1,30,-1
-608 524 m 1,35,-1
- 266 524 l 1,36,37
- 320 341 320 341 449 233 c 1,38,-1
- 608 524 l 1,35,-1
-EndSplineSet
-EndChar
-StartChar: uniE142
-Encoding: 57666 57666 513
-Width: 1679
-GlyphClass: 2
-Flags: W
-Fore
-813 -188 m 1,0,-1
- 0 1640 l 1,1,-1
- 1735 1640 l 1,2,-1
- 813 -188 l 1,0,-1
-901 229 m 1,3,-1
- 1563 1534 l 1,4,-1
- 315 1534 l 1,5,-1
- 901 229 l 1,3,-1
-EndSplineSet
-EndChar
-StartChar: uniE143
-Encoding: 57667 57667 514
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-487 649 m 1,0,-1
- 625 649 l 1,1,-1
- 625 1343 l 1,2,-1
- 891 1343 l 1,3,-1
- 891 1466 l 1,4,-1
- 225 1466 l 1,5,-1
- 225 1343 l 1,6,-1
- 487 1343 l 1,7,-1
- 487 649 l 1,0,-1
-983 649 m 1,8,-1
- 1108 649 l 1,9,-1
- 1108 1343 l 1,10,-1
- 1325 649 l 1,11,-1
- 1450 649 l 1,12,-1
- 1659 1333 l 1,13,-1
- 1659 649 l 1,14,-1
- 1784 649 l 1,15,-1
- 1784 1466 l 1,16,-1
- 1587 1466 l 1,17,-1
- 1389 815 l 1,18,-1
- 1182 1466 l 1,19,-1
- 983 1466 l 1,20,-1
- 983 649 l 1,8,-1
-EndSplineSet
-EndChar
-StartChar: uniE144
-Encoding: 57668 57668 515
-Width: 1804
-GlyphClass: 2
-Flags: W
-Fore
-1296 1458 m 1,0,-1
- 502 1458 l 1,1,-1
- 502 10 l 2,2,3
- 502 -85 502 -85 557 -119 c 0,4,5
- 599 -145 599 -145 700 -145 c 1,6,-1
- 700 -184 l 1,7,-1
- 102 -184 l 1,8,-1
- 102 -145 l 1,9,10
- 204 -145 204 -145 246 -119 c 0,11,12
- 301 -85 301 -85 301 10 c 2,13,-1
- 301 1343 l 2,14,15
- 301 1437 301 1437 246 1473 c 0,16,17
- 202 1499 202 1499 102 1499 c 1,18,-1
- 102 1536 l 1,19,-1
- 1696 1536 l 1,20,-1
- 1696 1499 l 1,21,22
- 1596 1499 1596 1499 1552 1473 c 0,23,24
- 1499 1437 1499 1437 1499 1343 c 2,25,-1
- 1499 10 l 2,26,27
- 1499 -83 1499 -83 1552 -119 c 0,28,29
- 1592 -145 1592 -145 1678 -145 c 0,30,31
- 1696 -145 l 1,32,-1
- 1696 -184 l 1,33,-1
- 1100 -184 l 1,34,-1
- 1100 -147 l 1,35,-1
- 1154 -144 l 2,36,37
- 1296 -126 1296 -126 1296 10 c 2,38,-1
- 1296 1458 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE145
-Encoding: 57669 57669 516
-Width: 1091
-GlyphClass: 2
-Flags: W
-Fore
-625 0 m 1,0,-1
- 238 694 l 1,1,-1
- 90 637 l 1,2,-1
- 66 668 l 1,3,-1
- 317 766 l 1,4,-1
- 662 150 l 1,5,-1
- 1077 1647 l 1,6,-1
- 1130 1647 l 1,7,-1
- 674 0 l 1,8,-1
- 625 0 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE146
-Encoding: 57670 57670 517
-Width: 1183
-GlyphClass: 2
-Flags: W
-Fore
-469 592 m 0,0,1
- 469 634 469 634 502 669 c 0,2,3
- 535 702 535 702 578 702 c 0,4,5
- 624 702 624 702 655 670 c 0,6,7
- 688 637 688 637 688 592 c 128,-1,8
- 688 547 688 547 655 514 c 0,9,10
- 624 481 624 481 578 481 c 0,11,12
- 536 481 536 481 502 515 c 0,13,14
- 469 550 469 550 469 592 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uniE147
-Encoding: 57671 57671 518
-Width: 1329
-GlyphClass: 2
-Flags: W
-Fore
-1120 801 m 1,0,-1
- 1122 272 l 1,1,-1
- 1028 272 l 1,2,-1
- 1028 727 l 1,3,-1
- 117 727 l 1,4,-1
- 117 801 l 1,5,-1
- 1120 801 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE148
-Encoding: 57672 57672 519
-Width: 681
-GlyphClass: 2
-Flags: W
-Fore
-666 928 m 1,0,-1
- 631 924 l 1,1,-1
- 360 1346 l 1,2,-1
- 76 907 l 1,3,-1
- 33 928 l 1,4,-1
- 362 1686 l 1,5,-1
- 666 928 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE149
-Encoding: 57673 57673 520
-Width: 681
-GlyphClass: 2
-Flags: W
-Fore
-666 1665 m 1,0,-1
- 362 907 l 1,1,-1
- 33 1665 l 1,2,-1
- 76 1686 l 1,3,-1
- 360 1247 l 1,4,-1
- 631 1669 l 1,5,-1
- 666 1665 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE14A
-Encoding: 57674 57674 521
-Width: 1900
-GlyphClass: 2
-Flags: W
-Fore
-1505 727 m 1,0,-1
- 395 723 l 1,1,-1
- 258 618 l 1,2,-1
- 418 451 l 1,3,-1
- 1489 451 l 1,4,-1
- 1649 616 l 1,5,-1
- 1505 727 l 1,0,-1
-1395 352 m 1,6,-1
- 512 352 l 1,7,8
- 616 251 616 251 616 225 c 0,9,10
- 616 176 616 176 561 176 c 0,11,12
- 526 176 526 176 327 381 c 0,13,14
- 127 586 127 586 127 623 c 0,15,16
- 127 656 127 656 337 822 c 0,17,18
- 546 989 546 989 588 989 c 0,19,20
- 639 989 639 989 639 936 c 0,21,22
- 639 900 639 900 522 821 c 1,23,-1
- 1380 821 l 1,24,25
- 1268 909 1268 909 1268 934 c 0,26,27
- 1268 989 1268 989 1317 989 c 0,28,29
- 1362 989 1362 989 1570 824 c 0,30,31
- 1778 658 1778 658 1778 623 c 0,32,33
- 1778 583 1778 583 1580 379 c 0,34,35
- 1382 174 1382 174 1343 174 c 0,36,37
- 1290 174 1290 174 1290 225 c 0,38,39
- 1290 250 1290 250 1395 352 c 1,6,-1
-EndSplineSet
-EndChar
-StartChar: uniE14B
-Encoding: 57675 57675 522
-Width: 1658
-GlyphClass: 2
-Flags: W
-Fore
-139 629 m 0,0,1
- 139 668 139 668 346 831 c 0,2,3
- 552 995 552 995 600 995 c 0,4,5
- 649 995 649 995 649 942 c 0,6,7
- 649 904 649 904 532 827 c 1,8,-1
- 1561 827 l 1,9,-1
- 1561 729 l 1,10,-1
- 406 729 l 1,11,-1
- 268 625 l 1,12,-1
- 428 457 l 1,13,-1
- 1561 457 l 1,14,-1
- 1561 358 l 1,15,-1
- 524 358 l 1,16,17
- 627 258 627 258 627 231 c 0,18,19
- 627 182 627 182 573 182 c 0,20,21
- 539 182 539 182 339 388 c 0,22,23
- 139 594 139 594 139 629 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uniE14C
-Encoding: 57676 57676 523
-Width: 1634
-GlyphClass: 2
-Flags: W
-Fore
-1106 182 m 0,0,1
- 1053 182 1053 182 1053 231 c 0,2,3
- 1053 263 1053 263 1157 358 c 1,4,-1
- 119 358 l 1,5,-1
- 119 457 l 1,6,-1
- 1251 457 l 1,7,-1
- 1411 625 l 1,8,-1
- 1274 729 l 1,9,-1
- 119 729 l 1,10,-1
- 119 827 l 1,11,-1
- 1147 827 l 1,12,13
- 1030 904 1030 904 1030 942 c 0,14,15
- 1030 995 1030 995 1079 995 c 0,16,17
- 1119 995 1119 995 1329 827 c 0,18,19
- 1540 659 1540 659 1540 629 c 0,20,21
- 1540 596 1540 596 1339 389 c 0,22,23
- 1140 182 1140 182 1106 182 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uniE14D
-Encoding: 57677 57677 524
-Width: 681
-GlyphClass: 2
-Flags: W
-Fore
-563 -8 m 1,0,-1
- 506 -8 l 1,1,-1
- 119 465 l 1,2,-1
- 506 934 l 1,3,-1
- 563 934 l 1,4,-1
- 319 465 l 1,5,-1
- 563 -8 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE14E
-Encoding: 57678 57678 525
-Width: 1507
-GlyphClass: 2
-Flags: W
-Fore
-758 1491 m 0,0,1
- 1092 1491 1092 1491 1302 1281 c 0,2,3
- 1511 1070 1511 1070 1511 737 c 0,4,5
- 1511 405 1511 405 1300 195 c 0,6,7
- 1090 -16 1090 -16 758 -16 c 0,8,9
- 430 -16 430 -16 217 197 c 0,10,11
- 2 410 2 410 2 737 c 0,12,13
- 2 1065 2 1065 217 1278 c 0,14,15
- 430 1491 430 1491 758 1491 c 0,0,1
-758 1366 m 0,16,17
- 481 1366 481 1366 304 1189 c 128,-1,18
- 127 1012 127 1012 127 735 c 0,19,20
- 127 462 127 462 306 285 c 0,21,22
- 487 106 487 106 758 106 c 0,23,24
- 1034 106 1034 106 1210 283 c 0,25,26
- 1386 458 1386 458 1386 735 c 0,27,28
- 1386 1014 1386 1014 1211 1190 c 0,29,30
- 1037 1366 1037 1366 758 1366 c 0,16,17
-426 319 m 1,31,-1
- 426 1130 l 1,32,-1
- 707 1130 l 2,33,34
- 1053 1130 1053 1130 1053 911 c 0,35,36
- 1053 815 1053 815 986 753 c 0,37,38
- 919 689 919 689 821 682 c 1,39,40
- 900 644 900 644 985 522 c 0,41,42
- 992 513 992 513 1110 319 c 1,43,-1
- 948 319 l 1,44,45
- 859 495 859 495 829 537 c 0,46,47
- 738 666 738 666 635 666 c 2,48,-1
- 557 666 l 1,49,-1
- 557 319 l 1,50,-1
- 426 319 l 1,31,-1
-557 776 m 1,51,-1
- 717 776 l 2,52,53
- 913 776 913 776 913 899 c 128,-1,54
- 913 1022 913 1022 707 1022 c 2,55,-1
- 557 1022 l 1,56,-1
- 557 776 l 1,51,-1
-EndSplineSet
-EndChar
-StartChar: uniE14F
-Encoding: 57679 57679 526
-Width: 1507
-GlyphClass: 2
-Flags: W
-Fore
-758 1491 m 0,0,1
- 1092 1491 1092 1491 1302 1281 c 0,2,3
- 1511 1070 1511 1070 1511 737 c 0,4,5
- 1511 405 1511 405 1300 195 c 0,6,7
- 1090 -16 1090 -16 758 -16 c 0,8,9
- 430 -16 430 -16 217 197 c 0,10,11
- 2 410 2 410 2 737 c 0,12,13
- 2 1065 2 1065 217 1278 c 0,14,15
- 430 1491 430 1491 758 1491 c 0,0,1
-758 1368 m 0,16,17
- 481 1368 481 1368 304 1191 c 128,-1,18
- 127 1014 127 1014 127 737 c 0,19,20
- 127 466 127 466 306 287 c 0,21,22
- 485 109 485 109 758 109 c 0,23,24
- 1035 109 1035 109 1210 285 c 0,25,26
- 1386 460 1386 460 1386 737 c 0,27,28
- 1386 1017 1386 1017 1211 1192 c 0,29,30
- 1037 1368 1037 1368 758 1368 c 0,16,17
-999 612 m 1,31,-1
- 1122 575 l 1,32,33
- 1096 450 1096 450 993 377 c 0,34,35
- 890 303 890 303 760 303 c 0,36,37
- 573 303 573 303 465 426 c 0,38,39
- 362 544 362 544 362 733 c 0,40,41
- 362 932 362 932 467 1046 c 0,42,43
- 572 1159 572 1159 768 1159 c 0,44,45
- 1035 1159 1035 1159 1108 924 c 1,46,-1
- 989 895 l 1,47,48
- 927 1049 927 1049 764 1049 c 0,49,50
- 634 1049 634 1049 561 952 c 0,51,52
- 500 869 500 869 500 731 c 0,53,54
- 500 598 500 598 557 514 c 0,55,56
- 623 420 623 420 752 420 c 0,57,58
- 952 420 952 420 999 612 c 1,31,-1
-EndSplineSet
-EndChar
-StartChar: uniE150
-Encoding: 57680 57680 527
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-487 649 m 1,0,-1
- 625 649 l 1,1,-1
- 625 1343 l 1,2,-1
- 891 1343 l 1,3,-1
- 891 1466 l 1,4,-1
- 225 1466 l 1,5,-1
- 225 1343 l 1,6,-1
- 487 1343 l 1,7,-1
- 487 649 l 1,0,-1
-983 649 m 1,8,-1
- 1108 649 l 1,9,-1
- 1108 1343 l 1,10,-1
- 1325 649 l 1,11,-1
- 1450 649 l 1,12,-1
- 1659 1333 l 1,13,-1
- 1659 649 l 1,14,-1
- 1784 649 l 1,15,-1
- 1784 1466 l 1,16,-1
- 1587 1466 l 1,17,-1
- 1389 815 l 1,18,-1
- 1182 1466 l 1,19,-1
- 983 1466 l 1,20,-1
- 983 649 l 1,8,-1
-EndSplineSet
-EndChar
-StartChar: uniE151
-Encoding: 57681 57681 528
-Width: 1425
-GlyphClass: 2
-Flags: W
-Fore
-16 -133 m 1,0,-1
- 43 27 l 1,1,-1
- 776 653 l 1,2,-1
- 322 1432 l 1,3,-1
- 340 1538 l 1,4,-1
- 1395 1538 l 1,5,-1
- 1346 1243 l 1,6,-1
- 1241 1243 l 1,7,8
- 1241 1265 1241 1265 1252 1317 c 0,9,10
- 1264 1366 1264 1366 1264 1391 c 0,11,12
- 1264 1447 1264 1447 1133 1447 c 2,13,-1
- 588 1447 l 1,14,-1
- 987 749 l 1,15,-1
- 145 27 l 1,16,-1
- 924 27 l 2,17,18
- 1026 27 1026 27 1061 68 c 0,19,20
- 1097 112 1097 112 1116 236 c 1,21,-1
- 1217 236 l 1,22,-1
- 1157 -133 l 1,23,-1
- 16 -133 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE15D
-Encoding: 57693 57693 529
-Width: 1183
-GlyphClass: 2
-Flags: W
-Fore
-367 -211 m 1,0,1
- 385 -223 385 -223 406 -223 c 0,2,3
- 518 -223 518 -223 518 -12 c 0,4,5
- 518 60 518 60 512 205 c 128,-1,6
- 506 350 506 350 506 422 c 2,7,-1
- 506 907 l 2,8,9
- 506 1616 506 1616 813 1616 c 0,10,11
- 875 1616 875 1616 919 1579 c 0,12,13
- 963 1541 963 1541 963 1481 c 0,14,15
- 963 1442 963 1442 936 1409 c 128,-1,16
- 909 1376 909 1376 870 1376 c 0,17,18
- 784 1376 784 1376 784 1460 c 0,19,20
- 784 1498 784 1498 817 1530 c 1,21,-1
- 778 1542 l 2,22,23
- 664 1542 664 1542 664 1360 c 0,24,25
- 664 1272 664 1272 671 1129 c 0,26,27
- 678 952 678 952 678 899 c 2,28,-1
- 678 453 l 2,29,30
- 678 -295 678 -295 371 -295 c 0,31,32
- 221 -295 221 -295 221 -162 c 0,33,34
- 221 -55 221 -55 315 -55 c 0,35,36
- 397 -55 397 -55 397 -145 c 0,37,38
- 397 -172 397 -172 367 -211 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE16A
-Encoding: 57706 57706 530
-Width: 1593
-GlyphClass: 2
-Flags: W
-Fore
-971 872 m 1,0,-1
- 1391 872 l 1,1,-1
- 1391 836 l 1,2,3
- 1313 827 1313 827 1262 799 c 0,4,5
- 1232 784 1232 784 1102 573 c 0,6,7
- 948 328 948 328 934 309 c 1,8,9
- 1093 123 1093 123 1233 123 c 0,10,11
- 1377 123 1377 123 1419 270 c 1,12,-1
- 1456 244 l 1,13,14
- 1387 -31 1387 -31 1147 -31 c 0,15,16
- 975 -31 975 -31 795 164 c 1,17,18
- 568 -31 568 -31 358 -31 c 0,19,20
- 211 -31 211 -31 111 43 c 0,21,22
- 0 126 0 126 0 268 c 0,23,24
- 0 542 0 542 416 758 c 1,25,26
- 334 938 334 938 334 1055 c 0,27,28
- 334 1206 334 1206 431 1296 c 0,29,30
- 528 1386 528 1386 682 1386 c 0,31,32
- 799 1386 799 1386 874 1321 c 0,33,34
- 952 1255 952 1255 952 1143 c 0,35,36
- 952 944 952 944 623 782 c 1,37,38
- 765 537 765 537 887 369 c 1,39,40
- 1063 580 1063 580 1063 721 c 0,41,42
- 1063 835 1063 835 971 836 c 1,43,-1
- 971 872 l 1,0,-1
-588 848 m 1,44,45
- 836 965 836 965 836 1147 c 0,46,47
- 836 1216 836 1216 792 1265 c 0,48,49
- 747 1313 747 1313 680 1313 c 0,50,51
- 603 1313 603 1313 553 1261 c 0,52,53
- 504 1209 504 1209 504 1130 c 0,54,55
- 504 1036 504 1036 588 848 c 1,44,45
-743 221 m 1,56,57
- 528 517 528 517 449 690 c 1,58,59
- 207 557 207 557 207 358 c 0,60,61
- 207 241 207 241 276 166 c 0,62,63
- 346 90 346 90 463 90 c 0,64,65
- 583 90 583 90 743 221 c 1,56,57
-EndSplineSet
-EndChar
-StartChar: uniE200
-Encoding: 57856 57856 531
-Width: 1968
-GlyphClass: 2
-Flags: W
-Fore
-764 778 m 1,0,-1
- 1030 991 l 2,1,2
- 1212 1133 1212 1133 1343 1202 c 0,3,4
- 1520 1298 1520 1298 1657 1298 c 1,5,-1
- 1686 1288 l 1,6,-1
- 942 733 l 1,7,-1
- 1313 733 l 1,8,-1
- 1313 666 l 1,9,-1
- 942 666 l 1,10,-1
- 1681 109 l 1,11,-1
- 1657 98 l 1,12,13
- 1498 98 1498 98 1329 195 c 0,14,15
- 1215 259 1215 259 1038 406 c 0,16,17
- 840 570 840 570 764 621 c 1,18,19
- 596 511 596 511 403 444 c 1,20,21
- 549 414 549 414 549 289 c 0,22,23
- 549 199 549 199 459 145 c 0,24,25
- 382 100 382 100 287 100 c 0,26,27
- 78 100 78 100 78 260 c 0,28,29
- 78 335 78 335 317 500 c 0,30,31
- 425 570 425 570 637 698 c 1,32,33
- 385 848 385 848 315 895 c 0,34,35
- 78 1057 78 1057 78 1137 c 128,-1,36
- 78 1217 78 1217 150 1262 c 0,37,38
- 207 1300 207 1300 293 1300 c 0,39,40
- 392 1300 392 1300 465 1255 c 0,41,42
- 549 1202 549 1202 549 1108 c 0,43,44
- 549 979 549 979 399 952 c 1,45,46
- 586 897 586 897 764 778 c 1,0,-1
-283 1231 m 0,47,48
- 147 1231 147 1231 147 1133 c 0,49,50
- 147 1069 147 1069 217 1034 c 0,51,52
- 272 1006 272 1006 342 1006 c 0,53,54
- 479 1006 479 1006 479 1106 c 0,55,56
- 479 1171 479 1171 410 1204 c 0,57,58
- 356 1231 356 1231 283 1231 c 0,47,48
-346 389 m 0,59,60
- 147 389 147 389 147 268 c 0,61,62
- 147 168 147 168 283 168 c 0,63,64
- 357 168 357 168 408 193 c 0,65,66
- 475 223 475 223 475 289 c 0,67,68
- 475 389 475 389 346 389 c 0,59,60
-158 733 m 1,69,-1
- 575 733 l 1,70,-1
- 575 666 l 1,71,-1
- 158 666 l 1,72,-1
- 158 733 l 1,69,-1
-1475 733 m 1,73,-1
- 1890 733 l 1,74,-1
- 1890 666 l 1,75,-1
- 1475 666 l 1,76,-1
- 1475 733 l 1,73,-1
-EndSplineSet
-EndChar
-StartChar: uniE201
-Encoding: 57857 57857 532
-Width: 2154
-GlyphClass: 2
-Flags: W
-Fore
-2056 1039 m 1,0,1
- 2056 975 2056 975 1989 954 c 0,2,3
- 1947 941 1947 941 1843 941 c 0,4,5
- 1723 941 1723 941 1669 956 c 0,6,7
- 1585 978 1585 978 1579 1049 c 1,8,9
- 1730 1032 1730 1032 1875 1032 c 0,10,11
- 1966 1032 1966 1032 2056 1039 c 1,0,1
-2056 1073 m 1,12,13
- 1970 1066 1970 1066 1919 1066 c 0,14,15
- 1876 1066 1876 1066 1554 1085 c 1,16,17
- 1542 1153 1542 1153 1409 1169 c 1,18,-1
- 1413 1069 l 1,19,20
- 1540 984 1540 984 1647 779 c 0,21,22
- 1751 583 1751 583 1751 451 c 0,23,24
- 1751 325 1751 325 1683 325 c 2,25,-1
- 479 325 l 2,26,27
- 393 325 393 325 393 430 c 0,28,29
- 393 560 393 560 500 768 c 0,30,31
- 613 986 613 986 737 1069 c 1,32,-1
- 737 1169 l 1,33,34
- 607 1154 607 1154 594 1085 c 1,35,36
- 486 1066 486 1066 291 1066 c 0,37,38
- 174 1066 174 1066 92 1073 c 1,39,40
- 103 1272 103 1272 266 1344 c 0,41,42
- 374 1393 374 1393 657 1420 c 0,43,44
- 863 1440 863 1440 1075 1440 c 0,45,46
- 1658 1440 1658 1440 1882 1344 c 0,47,48
- 2050 1274 2050 1274 2056 1073 c 1,12,13
-1339 1179 m 1,49,50
- 1198 1208 1198 1208 1071 1208 c 0,51,52
- 949 1208 949 1208 803 1179 c 1,53,-1
- 852 1093 l 1,54,-1
- 1292 1093 l 1,55,-1
- 1339 1179 l 1,49,50
-1405 759 m 0,56,57
- 1405 840 1405 840 1294 890 c 0,58,59
- 1203 931 1203 931 1075 931 c 0,60,61
- 951 931 951 931 856 888 c 0,62,63
- 743 840 743 840 743 759 c 0,64,65
- 743 677 743 677 856 629 c 0,66,67
- 951 586 951 586 1075 586 c 0,68,69
- 1199 586 1199 586 1294 629 c 0,70,71
- 1405 677 1405 677 1405 759 c 0,56,57
-1571 427 m 1,72,-1
- 1591 441 l 1,73,-1
- 1571 455 l 1,74,-1
- 584 455 l 1,75,-1
- 563 441 l 1,76,-1
- 584 427 l 1,77,-1
- 1571 427 l 1,72,-1
-1354 825 m 0,78,79
- 1354 792 1354 792 1305 792 c 0,80,81
- 1253 792 1253 792 1253 825 c 0,82,83
- 1253 860 1253 860 1305 860 c 0,84,85
- 1354 860 1354 860 1354 825 c 0,78,79
-1249 876 m 0,86,87
- 1249 841 1249 841 1198 841 c 0,88,89
- 1149 841 1149 841 1149 876 c 0,90,91
- 1149 908 1149 908 1198 908 c 0,92,93
- 1249 908 1249 908 1249 876 c 0,86,87
-1386 744 m 0,94,95
- 1386 709 1386 709 1335 709 c 0,96,97
- 1286 709 1286 709 1286 744 c 0,98,99
- 1286 777 1286 777 1335 777 c 0,100,101
- 1386 777 1386 777 1386 744 c 0,94,95
-1096 890 m 0,102,103
- 1096 855 1096 855 1044 855 c 0,104,105
- 995 855 995 855 995 890 c 0,106,107
- 995 923 995 923 1044 923 c 0,108,109
- 1096 923 1096 923 1096 890 c 0,102,103
-1317 666 m 0,110,111
- 1317 632 1317 632 1266 632 c 0,112,113
- 1217 632 1217 632 1217 666 c 0,114,115
- 1217 699 1217 699 1266 699 c 0,116,117
- 1317 699 1317 699 1317 666 c 0,110,111
-1280 761 m 0,118,119
- 1280 717 1280 717 1206 683 c 0,120,121
- 1142 656 1142 656 1071 656 c 0,122,123
- 1002 656 1002 656 940 683 c 0,124,125
- 868 714 868 714 868 761 c 0,126,127
- 868 806 868 806 946 833 c 0,128,129
- 1009 853 1009 853 1079 853 c 0,130,131
- 1148 853 1148 853 1208 831 c 0,132,133
- 1280 807 1280 807 1280 761 c 0,118,119
-954 855 m 0,134,135
- 954 822 954 822 905 822 c 0,136,137
- 854 822 854 822 854 855 c 0,138,139
- 854 890 854 890 905 890 c 0,140,141
- 954 890 954 890 954 855 c 0,134,135
-1192 626 m 0,142,143
- 1192 592 1192 592 1141 592 c 0,144,145
- 1092 592 1092 592 1092 626 c 0,146,147
- 1092 659 1092 659 1141 659 c 0,148,149
- 1192 659 1192 659 1192 626 c 0,142,143
-868 784 m 0,150,151
- 868 751 868 751 819 751 c 0,152,153
- 768 751 768 751 768 784 c 0,154,155
- 768 818 768 818 819 818 c 0,156,157
- 868 818 868 818 868 784 c 0,150,151
-1030 632 m 0,158,159
- 1030 599 1030 599 981 599 c 0,160,161
- 930 599 930 599 930 632 c 0,162,163
- 930 666 930 666 981 666 c 0,164,165
- 1030 666 1030 666 1030 632 c 0,158,159
-897 682 m 0,166,167
- 897 649 897 649 848 649 c 0,168,169
- 797 649 797 649 797 682 c 0,170,171
- 797 716 797 716 848 716 c 0,172,173
- 897 716 897 716 897 682 c 0,166,167
-571 1049 m 1,174,175
- 565 980 565 980 469 954 c 0,176,177
- 410 941 410 941 289 941 c 0,178,179
- 197 941 197 941 154 957 c 0,180,181
- 94 980 94 980 94 1039 c 1,182,183
- 182 1033 182 1033 256 1033 c 0,184,185
- 418 1033 418 1033 571 1049 c 1,174,175
-EndSplineSet
-EndChar
-StartChar: uniE202
-Encoding: 57858 57858 533
-Width: 2048
-GlyphClass: 2
-Flags: W
-EndChar
-StartChar: uniE203
-Encoding: 57859 57859 534
-Width: 1619
-GlyphClass: 2
-Flags: W
-Fore
-686 1325 m 1,0,1
- 748 1256 748 1256 829 1110 c 0,2,3
- 922 951 922 951 969 893 c 0,4,5
- 1047 796 1047 796 1188 774 c 2,6,-1
- 1419 762 l 2,7,8
- 1540 750 1540 750 1581 672 c 1,9,10
- 1546 598 1546 598 1432 580 c 0,11,12
- 1398 573 1398 573 1245 573 c 0,13,14
- 1104 573 1104 573 1053 541 c 0,15,16
- 994 504 994 504 866 297 c 0,17,18
- 716 52 716 52 686 14 c 1,19,20
- 647 -2 647 -2 603 -2 c 0,21,22
- 600 -2 600 -2 596 -2 c 2,23,-1
- 522 0 l 1,24,-1
- 496 23 l 1,25,26
- 518 90 518 90 649 270 c 0,27,28
- 760 422 760 422 760 535 c 1,29,-1
- 745 557 l 1,30,31
- 636 592 636 592 338 610 c 1,32,-1
- 307 596 l 1,33,34
- 284 530 284 530 238 426 c 1,35,-1
- 205 412 l 1,36,-1
- 117 420 l 1,37,-1
- 82 446 l 1,38,39
- 106 511 106 511 129 614 c 1,40,41
- 93 630 93 630 35 670 c 1,42,43
- 50 685 50 685 83 698 c 0,44,45
- 118 714 118 714 129 725 c 1,46,47
- 128 757 128 757 106 814 c 0,48,49
- 86 871 86 871 82 895 c 1,50,-1
- 117 920 l 1,51,-1
- 205 928 l 1,52,-1
- 240 911 l 1,53,54
- 263 845 263 845 309 741 c 1,55,-1
- 340 729 l 1,56,57
- 433 729 433 729 561 745 c 0,58,59
- 727 767 727 767 760 805 c 1,60,61
- 760 918 760 918 647 1069 c 0,62,63
- 519 1242 519 1242 496 1319 c 1,64,-1
- 504 1333 l 1,65,66
- 525 1341 525 1341 567 1341 c 0,67,68
- 638 1341 638 1341 686 1325 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE204
-Encoding: 57860 57860 535
-Width: 1581
-GlyphClass: 2
-Flags: W
-Fore
-174 221 m 0,0,1
- 106 221 106 221 76 340 c 0,2,3
- 53 421 53 421 53 518 c 0,4,5
- 53 606 53 606 84 700 c 0,6,7
- 123 827 123 827 186 827 c 0,8,9
- 217 827 217 827 231 801 c 1,10,11
- 164 795 164 795 129 680 c 0,12,13
- 106 599 106 599 106 504 c 0,14,15
- 106 254 106 254 219 254 c 1,16,17
- 208 221 208 221 174 221 c 0,0,1
-653 182 m 0,18,19
- 572 182 572 182 387 279 c 1,20,-1
- 231 291 l 1,21,22
- 156 338 156 338 156 535 c 0,23,24
- 156 642 156 642 180 686 c 0,25,26
- 201 721 201 721 258 739 c 2,27,-1
- 395 784 l 1,28,-1
- 717 913 l 1,29,30
- 890 912 890 912 1153 856 c 0,31,32
- 1493 784 1493 784 1493 684 c 0,33,34
- 1493 657 1493 657 1452 639 c 0,35,36
- 1420 623 1420 623 1389 623 c 0,37,38
- 1313 623 1313 623 1044 670 c 1,39,40
- 1110 631 1110 631 1110 571 c 0,41,42
- 1110 493 1110 493 1016 481 c 1,43,44
- 1057 464 1057 464 1057 412 c 0,45,46
- 1057 354 1057 354 995 330 c 1,47,-1
- 1001 301 l 2,48,49
- 1001 182 1001 182 653 182 c 0,18,19
-EndSplineSet
-EndChar
-StartChar: uniE205
-Encoding: 57861 57861 536
-Width: 2037
-GlyphClass: 2
-Flags: W
-Fore
-1952 952 m 1,0,-1
- 1872 877 l 1,1,2
- 1693 883 1693 883 1440 905 c 1,3,-1
- 1317 840 l 1,4,-1
- 1409 741 l 1,5,-1
- 1479 565 l 1,6,-1
- 1430 475 l 1,7,-1
- 1382 457 l 1,8,-1
- 1368 383 l 1,9,-1
- 1274 332 l 1,10,-1
- 1257 276 l 1,11,-1
- 1159 223 l 1,12,-1
- 1001 279 l 1,13,14
- 840 270 840 270 821 270 c 0,15,16
- 693 270 693 270 539 362 c 1,17,-1
- 518 229 l 1,18,-1
- 174 244 l 1,19,-1
- 154 909 l 1,20,-1
- 508 963 l 1,21,-1
- 514 907 l 1,22,-1
- 750 1030 l 2,23,24
- 770 1040 770 1040 1056 1087 c 0,25,26
- 1341 1135 1341 1135 1382 1135 c 0,27,28
- 1716 1135 1716 1135 1946 1004 c 1,29,-1
- 1952 952 l 1,0,-1
-1909 975 m 1,30,31
- 1679 1085 1679 1085 1405 1085 c 0,32,33
- 1148 1085 1148 1085 952 1034 c 0,34,35
- 743 978 743 978 539 848 c 1,36,-1
- 524 846 l 1,37,38
- 569 622 569 622 569 565 c 0,39,40
- 569 537 569 537 553 418 c 1,41,-1
- 580 428 l 1,42,-1
- 633 373 l 1,43,44
- 761 315 761 315 907 315 c 0,45,46
- 960 315 960 315 1006 326 c 1,47,-1
- 1157 270 l 1,48,-1
- 1217 309 l 1,49,-1
- 1241 356 l 1,50,51
- 1147 424 1147 424 1032 469 c 1,52,-1
- 1051 512 l 1,53,54
- 1177 472 1177 472 1284 381 c 1,55,-1
- 1339 430 l 1,56,-1
- 1323 492 l 1,57,-1
- 1210 616 l 1,58,-1
- 1116 651 l 1,59,-1
- 1135 696 l 1,60,-1
- 1243 647 l 1,61,-1
- 1370 494 l 1,62,-1
- 1425 571 l 1,63,-1
- 1352 737 l 1,64,-1
- 1210 870 l 1,65,-1
- 1247 901 l 1,66,-1
- 1276 870 l 1,67,-1
- 1438 952 l 1,68,-1
- 1860 909 l 1,69,-1
- 1909 975 l 1,30,31
-262 401 m 1,70,-1
- 262 307 l 1,71,-1
- 455 307 l 1,72,-1
- 455 401 l 1,73,-1
- 262 401 l 1,70,-1
-EndSplineSet
-EndChar
-StartChar: uniE206
-Encoding: 57862 57862 537
-Width: 1376
-GlyphClass: 2
-Flags: W
-Fore
-596 567 m 1,0,-1
- 483 440 l 1,1,-1
- 510 434 l 2,2,3
- 548 434 548 434 559 469 c 2,4,5
- 596 512 596 512 596 567 c 1,0,-1
-139 219 m 1,6,-1
- 102 150 l 1,7,-1
- 104 139 l 1,8,-1
- 115 135 l 1,9,10
- 176 147 176 147 190 180 c 1,11,12
- 187 207 187 207 147 221 c 1,13,-1
- 139 219 l 1,6,-1
-215 469 m 1,14,-1
- 233 466 l 2,15,16
- 256 457 256 457 256 416 c 0,17,18
- 256 374 256 374 215 315 c 1,19,-1
- 240 315 l 1,20,21
- 274 351 274 351 309 425 c 0,22,23
- 348 504 348 504 373 532 c 2,24,-1
- 621 819 l 1,25,-1
- 555 852 l 1,26,27
- 346 796 346 796 215 469 c 1,14,-1
-156 315 m 1,28,-1
- 168 309 l 1,29,30
- 199 342 199 342 215 369 c 1,31,-1
- 215 410 l 1,32,-1
- 209 430 l 1,33,-1
- 156 315 l 1,28,-1
-432 236 m 1,34,-1
- 535 231 l 2,35,36
- 575 231 575 231 700 260 c 1,37,38
- 758 246 758 246 852 246 c 0,39,40
- 946 246 946 246 1040 274 c 1,41,42
- 1057 364 1057 364 1057 401 c 0,43,44
- 1057 456 1057 456 1028 596 c 1,45,-1
- 940 596 l 1,46,-1
- 725 721 l 1,47,48
- 690 677 690 677 647 579 c 0,49,50
- 603 478 603 478 571 440 c 1,51,-1
- 590 438 l 1,52,53
- 653 457 653 457 713 479 c 1,54,-1
- 713 469 l 1,55,-1
- 659 403 l 1,56,-1
- 608 403 l 2,57,58
- 490 403 490 403 426 389 c 0,59,60
- 303 362 303 362 303 289 c 1,61,-1
- 322 266 l 1,62,63
- 344 254 344 254 362 254 c 0,64,65
- 406 254 406 254 410 350 c 1,66,67
- 444 322 444 322 449 289 c 1,68,-1
- 432 236 l 1,34,-1
-1065 188 m 1,69,-1
- 1217 188 l 1,70,71
- 1243 318 1243 318 1243 408 c 0,72,73
- 1243 526 1243 526 1204 604 c 1,74,-1
- 1079 604 l 1,75,76
- 1096 476 1096 476 1096 414 c 0,77,78
- 1096 278 1096 278 1065 188 c 1,69,-1
-41 102 m 1,79,80
- 41 124 41 124 139 303 c 1,81,-1
- 117 303 l 1,82,83
- 218 538 218 538 240 668 c 1,84,85
- 386 814 386 814 559 911 c 1,86,-1
- 647 848 l 1,87,88
- 785 1018 785 1018 834 1018 c 0,89,90
- 862 1018 862 1018 879 991 c 0,91,92
- 895 965 895 965 895 936 c 2,93,-1
- 889 899 l 1,94,-1
- 764 760 l 1,95,96
- 839 708 839 708 883 684 c 0,97,98
- 957 643 957 643 1016 643 c 1,99,-1
- 1028 668 l 1,100,-1
- 1280 655 l 1,101,102
- 1313 554 1313 554 1313 420 c 0,103,104
- 1313 268 1313 268 1268 139 c 1,105,-1
- 1040 139 l 1,106,-1
- 999 213 l 1,107,108
- 874 188 874 188 864 188 c 2,109,-1
- 520 188 l 2,110,111
- 443 188 443 188 293 221 c 1,112,-1
- 227 150 l 1,113,114
- 109 96 109 96 51 74 c 1,115,-1
- 41 102 l 1,79,80
-EndSplineSet
-EndChar
-StartChar: uniE207
-Encoding: 57863 57863 538
-Width: 1515
-GlyphClass: 2
-Flags: W
-Fore
-1100 567 m 1,0,-1
- 791 764 l 2,1,2
- 597 883 597 883 475 948 c 1,3,-1
- 516 801 l 1,4,-1
- 1100 440 l 1,5,6
- 1110 481 1110 481 1110 514 c 0,7,8
- 1110 543 1110 543 1100 567 c 1,0,-1
-1083 391 m 1,9,-1
- 487 760 l 1,10,-1
- 399 596 l 1,11,-1
- 983 240 l 1,12,13
- 1048 286 1048 286 1083 391 c 1,9,-1
-948 199 m 1,14,-1
- 377 555 l 1,15,-1
- 209 520 l 1,16,-1
- 856 123 l 1,17,18
- 921 168 921 168 948 199 c 1,14,-1
-948 123 m 1,19,-1
- 1225 123 l 2,20,21
- 1259 123 1259 123 1280 154 c 0,22,23
- 1300 183 1300 183 1300 221 c 1,24,-1
- 1149 489 l 1,25,-1
- 1151 436 l 1,26,-1
- 1149 399 l 2,27,28
- 1139 335 1139 335 1083 262 c 0,29,30
- 1048 214 1048 214 948 123 c 1,19,-1
-412 987 m 1,31,-1
- 223 948 l 1,32,-1
- 109 772 l 1,33,-1
- 160 555 l 1,34,-1
- 352 604 l 1,35,-1
- 465 801 l 1,36,-1
- 412 987 l 1,31,-1
-1337 74 m 2,37,-1
- 856 74 l 1,38,-1
- 125 518 l 1,39,-1
- 55 772 l 1,40,-1
- 188 987 l 1,41,-1
- 424 1036 l 1,42,-1
- 1137 604 l 2,43,44
- 1190 571 1190 571 1272 418 c 2,45,-1
- 1380 199 l 2,46,47
- 1417 130 1417 130 1417 109 c 0,48,49
- 1417 74 1417 74 1337 74 c 2,37,-1
-197 774 m 0,50,51
- 197 818 197 818 233 846 c 0,52,53
- 250 860 250 860 309 887 c 1,54,-1
- 333 884 l 2,55,56
- 365 874 365 874 365 829 c 0,57,58
- 365 778 365 778 334 731 c 0,59,60
- 301 680 301 680 250 680 c 0,61,62
- 197 680 197 680 197 774 c 0,50,51
-EndSplineSet
-EndChar
-StartChar: uniE208
-Encoding: 57864 57864 539
-Width: 1515
-GlyphClass: 2
-Flags: W
-Fore
-1100 567 m 1,0,-1
- 791 764 l 2,1,2
- 597 883 597 883 475 948 c 1,3,-1
- 516 801 l 1,4,-1
- 1100 440 l 1,5,6
- 1110 481 1110 481 1110 514 c 0,7,8
- 1110 543 1110 543 1100 567 c 1,0,-1
-1083 391 m 1,9,-1
- 487 760 l 1,10,-1
- 399 596 l 1,11,-1
- 983 240 l 1,12,13
- 1048 286 1048 286 1083 391 c 1,9,-1
-948 199 m 1,14,-1
- 377 555 l 1,15,-1
- 209 520 l 1,16,-1
- 856 123 l 1,17,18
- 921 168 921 168 948 199 c 1,14,-1
-948 123 m 1,19,-1
- 1225 123 l 2,20,21
- 1259 123 1259 123 1280 154 c 0,22,23
- 1300 183 1300 183 1300 221 c 1,24,-1
- 1149 489 l 1,25,-1
- 1151 436 l 1,26,-1
- 1149 399 l 2,27,28
- 1139 335 1139 335 1083 262 c 0,29,30
- 1048 214 1048 214 948 123 c 1,19,-1
-412 987 m 1,31,-1
- 223 948 l 1,32,-1
- 109 772 l 1,33,-1
- 160 555 l 1,34,-1
- 352 604 l 1,35,-1
- 465 801 l 1,36,-1
- 412 987 l 1,31,-1
-1337 74 m 2,37,-1
- 856 74 l 1,38,-1
- 125 518 l 1,39,-1
- 55 772 l 1,40,-1
- 188 987 l 1,41,-1
- 424 1036 l 1,42,-1
- 1137 604 l 2,43,44
- 1190 571 1190 571 1272 418 c 2,45,-1
- 1380 199 l 2,46,47
- 1417 130 1417 130 1417 109 c 0,48,49
- 1417 74 1417 74 1337 74 c 2,37,-1
-197 774 m 0,50,51
- 197 818 197 818 233 846 c 0,52,53
- 250 860 250 860 309 887 c 1,54,-1
- 333 884 l 2,55,56
- 365 874 365 874 365 829 c 0,57,58
- 365 778 365 778 334 731 c 0,59,60
- 301 680 301 680 250 680 c 0,61,62
- 197 680 197 680 197 774 c 0,50,51
-EndSplineSet
-EndChar
-StartChar: uniE209
-Encoding: 57865 57865 540
-Width: 1613
-GlyphClass: 2
-Flags: W
-Fore
-1499 1569 m 1,0,-1
- 1534 1518 l 1,1,2
- 1293 1335 1293 1335 1038 1004 c 0,3,4
- 802 694 802 694 659 395 c 1,5,6
- 548 322 548 322 461 252 c 1,7,8
- 326 694 326 694 147 766 c 1,9,10
- 248 881 248 881 346 881 c 0,11,12
- 430 881 430 881 549 600 c 1,13,14
- 931 1245 931 1245 1499 1569 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE20A
-Encoding: 57866 57866 541
-Width: 1343
-GlyphClass: 2
-Flags: W
-Fore
-285 -33 m 0,0,1
- 130 -33 130 -33 74 156 c 0,2,3
- 41 264 41 264 41 471 c 0,4,5
- 41 588 41 588 82 672 c 0,6,7
- 133 778 133 778 240 778 c 0,8,9
- 319 778 319 778 346 684 c 2,10,-1
- 369 508 l 2,11,12
- 381 412 381 412 428 410 c 1,13,-1
- 1163 1116 l 2,14,15
- 1180 1133 1180 1133 1229 1133 c 0,16,17
- 1292 1133 1292 1133 1292 1087 c 2,18,-1
- 1292 965 l 2,19,20
- 1292 911 1292 911 1262 881 c 2,21,-1
- 442 47 l 2,22,23
- 364 -33 364 -33 285 -33 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uniE20B
-Encoding: 57867 57867 542
-Width: 983
-GlyphClass: 2
-Flags: W
-Fore
-0 -2 m 1,0,1
- -11 22 -11 22 -25 37 c 1,2,-1
- 356 567 l 1,3,4
- 215 951 215 951 215 954 c 0,5,6
- 215 992 215 992 255 992 c 0,7,8
- 269 992 269 992 289 987 c 1,9,10
- 320 993 320 993 354 1012 c 1,11,-1
- 381 999 l 1,12,-1
- 492 748 l 1,13,-1
- 772 1049 l 1,14,-1
- 836 1024 l 1,15,-1
- 860 1049 l 1,16,17
- 891 1034 891 1034 922 1006 c 1,18,19
- 868 903 868 903 770 784 c 0,20,21
- 768 782 768 782 594 584 c 1,22,-1
- 774 223 l 1,23,24
- 774 182 774 182 711 139 c 1,25,-1
- 727 119 l 1,26,27
- 712 76 712 76 672 76 c 0,28,29
- 626 76 626 76 457 381 c 1,30,-1
- 164 -76 l 2,31,32
- 131 -127 131 -127 72 -127 c 0,33,34
- 9 -127 9 -127 8 -76 c 2,35,36
- -2 -62 -2 -62 -2 -32 c 0,37,38
- -2 -18 -2 -18 0 -2 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE20C
-Encoding: 57868 57868 543
-Width: 1056
-GlyphClass: 2
-Flags: W
-Fore
-72 152 m 1,0,-1
- 33 201 l 1,1,-1
- 311 532 l 1,2,3
- 125 889 125 889 125 948 c 0,4,5
- 125 979 125 979 160 1012 c 1,6,-1
- 180 1020 l 1,7,8
- 204 1010 204 1010 217 999 c 1,9,-1
- 223 999 l 1,10,11
- 256 1065 256 1065 299 1065 c 1,12,-1
- 504 760 l 1,13,14
- 823 1128 823 1128 879 1128 c 0,15,16
- 920 1128 920 1128 948 1087 c 1,17,-1
- 948 1049 l 1,18,19
- 1020 1024 1020 1024 1020 977 c 1,20,-1
- 651 545 l 1,21,-1
- 885 276 l 1,22,-1
- 893 252 l 1,23,24
- 893 225 893 225 870 185 c 0,25,26
- 848 148 848 148 821 145 c 1,27,-1
- 815 164 l 1,28,29
- 814 76 814 76 758 76 c 1,30,31
- 739 88 739 88 721 113 c 1,32,-1
- 670 57 l 1,33,-1
- 651 49 l 1,34,35
- 613 55 613 55 453 289 c 1,36,-1
- 209 -25 l 1,37,-1
- 182 -39 l 1,38,39
- 157 -17 157 -17 147 25 c 1,40,-1
- 96 25 l 1,41,42
- 59 65 59 65 43 113 c 1,43,-1
- 72 152 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE20D
-Encoding: 57869 57869 544
-Width: 1196
-GlyphClass: 2
-Flags: W
-Fore
-754 1053 m 1,0,-1
- 473 1053 l 1,1,-1
- 473 686 l 1,2,-1
- 111 686 l 1,3,-1
- 111 418 l 1,4,-1
- 473 418 l 1,5,-1
- 473 49 l 1,6,-1
- 754 49 l 1,7,-1
- 754 418 l 1,8,-1
- 1110 418 l 1,9,-1
- 1110 686 l 1,10,-1
- 754 688 l 1,11,-1
- 754 1053 l 1,0,-1
-1174 369 m 1,12,-1
- 803 369 l 1,13,-1
- 803 0 l 1,14,-1
- 422 0 l 1,15,-1
- 422 369 l 1,16,-1
- 43 369 l 1,17,-1
- 43 737 l 1,18,-1
- 422 737 l 1,19,-1
- 422 1114 l 1,20,-1
- 803 1114 l 1,21,-1
- 803 737 l 1,22,-1
- 1174 737 l 1,23,-1
- 1174 369 l 1,12,-1
-688 100 m 1,24,-1
- 524 100 l 1,25,-1
- 524 469 l 1,26,-1
- 156 469 l 1,27,-1
- 156 633 l 1,28,-1
- 524 633 l 1,29,-1
- 524 999 l 1,30,-1
- 688 999 l 1,31,-1
- 688 633 l 1,32,-1
- 1057 633 l 1,33,-1
- 1057 469 l 1,34,-1
- 688 469 l 1,35,-1
- 688 100 l 1,24,-1
-EndSplineSet
-EndChar
-StartChar: uniE20E
-Encoding: 57870 57870 545
-Width: 1196
-GlyphClass: 2
-Flags: W
-Fore
-1171 360 m 1,0,-1
- 801 360 l 1,1,-1
- 801 0 l 1,2,-1
- 408 0 l 1,3,-1
- 408 360 l 1,4,-1
- 41 360 l 1,5,-1
- 41 737 l 1,6,-1
- 408 737 l 1,7,-1
- 408 1114 l 1,8,-1
- 793 1114 l 1,9,-1
- 793 737 l 1,10,-1
- 1171 737 l 1,11,-1
- 1171 360 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE20F
-Encoding: 57871 57871 546
-Width: 1196
-GlyphClass: 2
-Flags: W
-Fore
-500 0 m 1,0,-1
- 500 457 l 1,1,-1
- 29 457 l 1,2,-1
- 29 639 l 1,3,-1
- 500 639 l 1,4,-1
- 500 1114 l 1,5,-1
- 688 1114 l 1,6,-1
- 688 639 l 1,7,-1
- 1159 639 l 1,8,-1
- 1159 457 l 1,9,-1
- 688 457 l 1,10,-1
- 688 0 l 1,11,-1
- 500 0 l 1,0,-1
-512 623 m 1,12,-1
- 512 475 l 1,13,-1
- 678 475 l 1,14,-1
- 678 623 l 1,15,-1
- 512 623 l 1,12,-1
-EndSplineSet
-EndChar
-StartChar: uniE210
-Encoding: 57872 57872 547
-Width: 1163
-GlyphClass: 2
-Flags: W
-Fore
-424 391 m 1,0,-1
- 756 391 l 1,1,-1
- 756 696 l 1,2,-1
- 424 696 l 1,3,-1
- 424 391 l 1,0,-1
-768 -27 m 1,4,-1
- 412 -27 l 1,5,-1
- 412 367 l 1,6,-1
- 33 367 l 1,7,-1
- 33 719 l 1,8,-1
- 412 719 l 1,9,-1
- 412 1098 l 1,10,-1
- 768 1098 l 1,11,-1
- 768 719 l 1,12,-1
- 1137 719 l 1,13,-1
- 1137 367 l 1,14,-1
- 768 367 l 1,15,-1
- 768 -27 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE211
-Encoding: 57873 57873 548
-Width: 1417
-GlyphClass: 2
-Flags: W
-Fore
-707 1475 m 1,0,-1
- 926 1102 l 1,1,-1
- 1358 1102 l 1,2,-1
- 1141 725 l 1,3,-1
- 1358 348 l 1,4,-1
- 926 348 l 1,5,-1
- 707 -25 l 1,6,-1
- 494 348 l 1,7,-1
- 59 348 l 1,8,-1
- 276 725 l 1,9,-1
- 59 1102 l 1,10,-1
- 494 1102 l 1,11,-1
- 707 1475 l 1,0,-1
-707 1376 m 1,12,-1
- 551 1102 l 1,13,-1
- 864 1102 l 1,14,-1
- 707 1376 l 1,12,-1
-147 1051 m 1,15,-1
- 305 774 l 1,16,-1
- 463 1051 l 1,17,-1
- 147 1051 l 1,15,-1
-520 1051 m 1,18,-1
- 334 725 l 1,19,-1
- 520 397 l 1,20,-1
- 897 397 l 1,21,-1
- 1083 725 l 1,22,-1
- 897 1051 l 1,23,-1
- 520 1051 l 1,18,-1
-952 1051 m 1,24,-1
- 1112 772 l 1,25,-1
- 1274 1051 l 1,26,-1
- 952 1051 l 1,24,-1
-305 676 m 1,27,-1
- 147 397 l 1,28,-1
- 465 397 l 1,29,-1
- 305 676 l 1,27,-1
-1112 674 m 1,30,-1
- 952 397 l 1,31,-1
- 1272 397 l 1,32,-1
- 1112 674 l 1,30,-1
-551 348 m 1,33,-1
- 707 72 l 1,34,-1
- 868 348 l 1,35,-1
- 551 348 l 1,33,-1
-EndSplineSet
-EndChar
-StartChar: uniE212
-Encoding: 57874 57874 549
-Width: 1163
-GlyphClass: 2
-Flags: W
-Fore
-459 94 m 0,0,1
- 459 182 459 182 489 295 c 1,2,3
- 491 298 491 298 553 487 c 1,4,5
- 484 487 484 487 355 444 c 0,6,7
- 223 401 223 401 156 401 c 0,8,9
- 4 401 4 401 4 524 c 0,10,11
- 4 575 4 575 38 613 c 0,12,13
- 71 653 71 653 119 653 c 0,14,15
- 198 653 198 653 337 609 c 0,16,17
- 481 565 481 565 553 565 c 1,18,19
- 543 619 543 619 494 770 c 0,20,21
- 453 894 453 894 453 979 c 0,22,23
- 453 1035 453 1035 492 1074 c 0,24,25
- 529 1114 529 1114 586 1114 c 0,26,27
- 700 1114 700 1114 700 977 c 0,28,29
- 700 903 700 903 656 771 c 0,30,31
- 612 636 612 636 612 565 c 1,32,-1
- 815 627 l 2,33,34
- 932 657 932 657 1024 657 c 0,35,36
- 1078 657 1078 657 1114 620 c 0,37,38
- 1151 582 1151 582 1151 528 c 0,39,40
- 1151 471 1151 471 1111 432 c 0,41,42
- 1070 393 1070 393 1014 393 c 0,43,44
- 906 393 906 393 612 492 c 1,45,46
- 616 428 616 428 663 302 c 0,47,48
- 709 173 709 173 709 104 c 0,49,50
- 709 45 709 45 673 0 c 128,-1,51
- 637 -45 637 -45 578 -45 c 0,52,53
- 523 -45 523 -45 490 -3 c 0,54,55
- 459 38 459 38 459 94 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uniE213
-Encoding: 57875 57875 550
-Width: 1179
-GlyphClass: 2
-Flags: W
-Fore
-567 647 m 1,0,1
- 566 706 566 706 496 828 c 0,2,3
- 426 950 426 950 426 981 c 0,4,5
- 426 1044 426 1044 477 1083 c 128,-1,6
- 528 1122 528 1122 592 1122 c 0,7,8
- 754 1122 754 1122 754 956 c 1,9,-1
- 666 805 l 2,10,11
- 611 701 611 701 608 647 c 1,12,13
- 678 647 678 647 700 571 c 1,14,15
- 756 574 756 574 870 642 c 0,16,17
- 987 711 987 711 1030 711 c 0,18,19
- 1095 711 1095 711 1133 662 c 0,20,21
- 1169 612 1169 612 1169 545 c 0,22,23
- 1169 479 1169 479 1135 430 c 0,24,25
- 1093 377 1093 377 1030 377 c 0,26,27
- 988 377 988 377 866 455 c 0,28,29
- 748 532 748 532 700 535 c 1,30,31
- 700 497 700 497 673 470 c 0,32,33
- 643 442 643 442 608 442 c 1,34,35
- 611 389 611 389 682 278 c 0,36,37
- 754 164 754 164 754 121 c 0,38,39
- 754 60 754 60 707 17 c 0,40,41
- 659 -25 659 -25 596 -25 c 0,42,43
- 535 -25 535 -25 487 20 c 0,44,45
- 442 64 442 64 442 125 c 0,46,47
- 442 174 442 174 494 268 c 2,48,-1
- 571 408 l 1,49,-1
- 567 442 l 1,50,51
- 533 442 533 442 508 470 c 0,52,53
- 483 498 483 498 483 532 c 1,54,55
- 434 525 434 525 323 452 c 0,56,57
- 214 379 214 379 170 379 c 0,58,59
- 105 379 105 379 61 426 c 0,60,61
- 16 476 16 476 16 543 c 0,62,63
- 16 609 16 609 57 655 c 0,64,65
- 99 700 99 700 164 700 c 0,66,67
- 211 700 211 700 321 633 c 0,68,69
- 431 565 431 565 461 565 c 2,70,-1
- 483 567 l 1,71,72
- 508 647 508 647 567 647 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE214
-Encoding: 57876 57876 551
-Width: 1163
-GlyphClass: 2
-Flags: W
-Fore
-360 188 m 0,0,1
- 360 223 360 223 445 344 c 0,2,3
- 529 464 529 464 537 516 c 1,4,5
- 261 328 261 328 209 328 c 0,6,7
- 118 328 118 328 59 391 c 0,8,9
- 2 454 2 454 2 549 c 0,10,11
- 2 639 2 639 57 700 c 0,12,13
- 113 762 113 762 201 762 c 0,14,15
- 254 762 254 762 360 690 c 2,16,-1
- 508 580 l 1,17,-1
- 537 584 l 1,18,19
- 529 640 529 640 445 763 c 0,20,21
- 360 887 360 887 360 924 c 0,22,23
- 360 1009 360 1009 425 1066 c 0,24,25
- 488 1122 488 1122 575 1122 c 0,26,27
- 661 1122 661 1122 727 1071 c 128,-1,28
- 793 1020 793 1020 793 936 c 0,29,30
- 793 876 793 876 711 758 c 0,31,32
- 625 632 625 632 616 580 c 1,33,34
- 667 592 667 592 786 680 c 0,35,36
- 898 760 898 760 944 760 c 0,37,38
- 1039 760 1039 760 1098 702 c 0,39,40
- 1157 645 1157 645 1157 551 c 0,41,42
- 1157 464 1157 464 1106 397 c 0,43,44
- 1051 324 1051 324 969 324 c 0,45,46
- 913 324 913 324 788 412 c 0,47,48
- 652 506 652 506 604 516 c 1,49,50
- 615 467 615 467 705 346 c 0,51,52
- 791 233 791 233 791 184 c 0,53,54
- 791 94 791 94 725 25 c 0,55,56
- 659 -43 659 -43 569 -43 c 0,57,58
- 477 -43 477 -43 418 25 c 0,59,60
- 360 95 360 95 360 188 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uniE215
-Encoding: 57877 57877 552
-Width: 1179
-GlyphClass: 2
-Flags: W
-Fore
-487 125 m 1,0,-1
- 444 123 l 1,1,-1
- 424 126 l 2,2,3
- 385 141 385 141 385 225 c 0,4,5
- 385 334 385 334 477 334 c 0,6,7
- 519 334 519 334 557 315 c 1,8,-1
- 557 520 l 1,9,-1
- 340 532 l 1,10,11
- 375 491 375 491 375 451 c 0,12,13
- 375 403 375 403 336 370 c 0,14,15
- 298 336 298 336 250 336 c 0,16,17
- 158 336 158 336 143 455 c 1,18,19
- 120 442 120 442 94 442 c 0,20,21
- 53 442 53 442 27 477 c 0,22,23
- 0 512 0 512 0 555 c 128,-1,24
- 0 598 0 598 33 627 c 0,25,26
- 64 653 64 653 106 653 c 0,27,28
- 135 653 135 653 156 643 c 1,29,30
- 168 754 168 754 260 754 c 0,31,32
- 306 754 306 754 340 724 c 0,33,34
- 375 694 375 694 375 651 c 0,35,36
- 375 616 375 616 340 567 c 1,37,-1
- 557 567 l 1,38,-1
- 567 782 l 1,39,40
- 528 752 528 752 487 752 c 0,41,42
- 441 752 441 752 415 790 c 0,43,44
- 387 827 387 827 387 872 c 0,45,46
- 387 975 387 975 492 975 c 1,47,48
- 479 1004 479 1004 479 1032 c 0,49,50
- 479 1130 479 1130 588 1130 c 0,51,52
- 696 1130 696 1130 696 1042 c 0,53,54
- 696 1023 696 1023 680 985 c 1,55,56
- 799 964 799 964 799 868 c 0,57,58
- 799 824 799 824 764 792 c 0,59,60
- 731 760 731 760 684 760 c 0,61,62
- 644 760 644 760 604 782 c 1,63,-1
- 616 567 l 1,64,-1
- 813 567 l 1,65,66
- 795 604 795 604 795 637 c 0,67,68
- 795 683 795 683 829 714 c 0,69,70
- 864 745 864 745 909 745 c 0,71,72
- 1016 745 1016 745 1016 641 c 1,73,74
- 1061 649 1061 649 1067 649 c 2,75,-1
- 1112 647 l 1,76,77
- 1163 617 1163 617 1163 557 c 0,78,79
- 1163 442 1163 442 1069 442 c 0,80,81
- 1043 442 1043 442 1016 457 c 1,82,83
- 1010 389 1010 389 911 389 c 0,84,85
- 788 389 788 389 788 455 c 0,86,87
- 788 488 788 488 813 532 c 1,88,-1
- 616 520 l 1,89,-1
- 604 315 l 1,90,91
- 654 336 654 336 690 336 c 0,92,93
- 731 336 731 336 762 305 c 128,-1,94
- 793 274 793 274 793 233 c 0,95,96
- 793 119 793 119 682 125 c 1,97,98
- 696 90 696 90 696 63 c 0,99,100
- 696 23 696 23 664 -4 c 0,101,102
- 628 -31 628 -31 588 -31 c 0,103,104
- 545 -31 545 -31 509 -4 c 128,-1,105
- 473 23 473 23 473 66 c 0,106,107
- 473 97 473 97 487 125 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE216
-Encoding: 57878 57878 553
-Width: 1286
-GlyphClass: 2
-Flags: W
-Fore
-600 328 m 2,0,-1
- 645 328 l 2,1,2
- 709 328 709 328 746 372 c 0,3,4
- 784 414 784 414 784 479 c 0,5,6
- 784 545 784 545 735 594 c 128,-1,7
- 686 643 686 643 621 643 c 0,8,9
- 551 643 551 643 503 601 c 128,-1,10
- 455 559 455 559 455 489 c 0,11,12
- 455 426 455 426 497 377 c 0,13,14
- 539 328 539 328 600 328 c 2,0,-1
-836 416 m 1,15,-1
- 1028 -47 l 1,16,-1
- 621 264 l 1,17,-1
- 227 -47 l 1,18,-1
- 403 416 l 1,19,-1
- 0 668 l 1,20,-1
- 483 643 l 1,21,-1
- 608 1128 l 1,22,-1
- 760 643 l 1,23,-1
- 1268 668 l 1,24,-1
- 836 416 l 1,15,-1
-EndSplineSet
-EndChar
-StartChar: uniE217
-Encoding: 57879 57879 554
-Width: 1269
-GlyphClass: 2
-Flags: W
-Fore
-518 633 m 1,0,-1
- 102 668 l 1,1,-1
- 442 440 l 1,2,-1
- 449 430 l 1,3,4
- 449 585 449 585 518 633 c 1,0,-1
-725 643 m 1,5,-1
- 637 1024 l 1,6,-1
- 537 643 l 1,7,8
- 578 674 578 674 639 674 c 0,9,10
- 695 674 695 674 725 643 c 1,5,-1
-819 440 m 1,11,-1
- 1163 668 l 1,12,-1
- 748 633 l 1,13,14
- 819 585 819 585 819 440 c 1,11,-1
-647 303 m 1,15,-1
- 969 25 l 1,16,-1
- 811 416 l 1,17,18
- 754 303 754 303 647 303 c 1,15,-1
-457 416 m 1,19,-1
- 319 37 l 1,20,-1
- 621 303 l 1,21,22
- 514 303 514 303 457 416 c 1,19,-1
-899 403 m 1,23,-1
- 1016 -37 l 1,24,-1
- 637 201 l 1,25,-1
- 256 -37 l 1,26,-1
- 356 403 l 1,27,-1
- 0 696 l 1,28,-1
- 457 721 l 1,29,-1
- 637 1128 l 1,30,-1
- 801 721 l 1,31,-1
- 1255 696 l 1,32,-1
- 899 403 l 1,23,-1
-EndSplineSet
-EndChar
-StartChar: uniE218
-Encoding: 57880 57880 555
-Width: 1212
-GlyphClass: 2
-Flags: W
-Fore
-473 680 m 1,0,-1
- 100 651 l 1,1,-1
- 395 444 l 1,2,-1
- 289 43 l 1,3,-1
- 623 256 l 1,4,-1
- 934 27 l 1,5,-1
- 840 428 l 1,6,-1
- 1110 649 l 1,7,-1
- 754 678 l 1,8,-1
- 608 1010 l 1,9,-1
- 473 680 l 1,0,-1
-233 -8 m 1,10,11
- 233 86 233 86 266 209 c 1,12,13
- 267 210 267 210 332 418 c 1,14,-1
- 158 545 l 2,15,16
- 26 646 26 646 10 676 c 1,17,18
- 53 725 53 725 444 737 c 1,19,20
- 502 911 502 911 514 944 c 0,21,22
- 575 1103 575 1103 616 1114 c 1,23,24
- 670 1064 670 1064 719 938 c 2,25,-1
- 784 737 l 1,26,27
- 839 735 839 735 1026 719 c 0,28,29
- 1210 703 1210 703 1210 670 c 0,30,31
- 1210 630 1210 630 899 418 c 1,32,-1
- 995 -33 l 1,33,-1
- 983 -49 l 1,34,35
- 785 78 785 78 621 201 c 1,36,37
- 464 82 464 82 444 70 c 0,38,39
- 342 -2 342 -2 252 -35 c 1,40,-1
- 233 -8 l 1,10,11
-442 461 m 1,41,-1
- 213 623 l 1,42,-1
- 504 643 l 1,43,-1
- 608 899 l 1,44,-1
- 721 641 l 1,45,-1
- 997 621 l 1,46,-1
- 786 449 l 1,47,-1
- 860 137 l 1,48,-1
- 621 315 l 1,49,-1
- 360 150 l 1,50,-1
- 442 461 l 1,41,-1
-EndSplineSet
-EndChar
-StartChar: uniE219
-Encoding: 57881 57881 556
-Width: 1212
-GlyphClass: 2
-Flags: W
-Fore
-496 643 m 1,0,-1
- 188 621 l 1,1,-1
- 432 457 l 1,2,-1
- 344 125 l 1,3,-1
- 621 303 l 1,4,-1
- 877 113 l 1,5,-1
- 801 440 l 1,6,-1
- 1028 621 l 1,7,-1
- 735 633 l 1,8,-1
- 608 924 l 1,9,-1
- 496 643 l 1,0,-1
-233 -8 m 1,10,11
- 233 86 233 86 266 209 c 1,12,13
- 267 210 267 210 332 418 c 1,14,-1
- 158 545 l 2,15,16
- 26 646 26 646 10 676 c 1,17,18
- 53 725 53 725 444 737 c 1,19,20
- 502 911 502 911 514 944 c 0,21,22
- 575 1103 575 1103 616 1114 c 1,23,24
- 670 1064 670 1064 719 938 c 2,25,-1
- 784 737 l 1,26,27
- 839 735 839 735 1026 719 c 0,28,29
- 1210 703 1210 703 1210 670 c 0,30,31
- 1210 630 1210 630 899 418 c 1,32,-1
- 995 -33 l 1,33,-1
- 983 -49 l 1,34,35
- 785 78 785 78 621 201 c 1,36,37
- 464 82 464 82 444 70 c 0,38,39
- 342 -2 342 -2 252 -35 c 1,40,-1
- 233 -8 l 1,10,11
-801 240 m 1,41,-1
- 608 381 l 1,42,-1
- 420 240 l 1,43,-1
- 496 457 l 1,44,-1
- 356 584 l 1,45,-1
- 537 584 l 1,46,-1
- 608 772 l 1,47,-1
- 684 584 l 1,48,-1
- 864 584 l 1,49,-1
- 725 457 l 1,50,-1
- 801 240 l 1,41,-1
-EndSplineSet
-EndChar
-StartChar: uniE21A
-Encoding: 57882 57882 557
-Width: 1245
-GlyphClass: 2
-Flags: W
-Fore
-647 504 m 1,0,-1
- 1104 643 l 1,1,-1
- 764 643 l 1,2,-1
- 647 504 l 1,0,-1
-637 504 m 1,3,-1
- 637 999 l 1,4,-1
- 508 655 l 1,5,-1
- 637 504 l 1,3,-1
-432 428 m 1,6,-1
- 608 492 l 1,7,-1
- 139 633 l 1,8,-1
- 432 428 l 1,6,-1
-659 479 m 1,9,-1
- 977 76 l 1,10,-1
- 836 428 l 1,11,-1
- 659 479 l 1,9,-1
-637 479 m 1,12,-1
- 332 76 l 1,13,-1
- 637 289 l 1,14,-1
- 637 479 l 1,12,-1
-889 416 m 1,15,-1
- 1065 -47 l 1,16,-1
- 637 252 l 1,17,-1
- 227 -47 l 1,18,-1
- 381 416 l 1,19,-1
- 12 684 l 1,20,-1
- 471 684 l 1,21,-1
- 637 1141 l 1,22,-1
- 784 684 l 1,23,-1
- 1243 684 l 1,24,-1
- 889 416 l 1,15,-1
-EndSplineSet
-EndChar
-StartChar: uniE21B
-Encoding: 57883 57883 558
-Width: 1392
-GlyphClass: 2
-Flags: W
-Fore
-629 1065 m 1,0,-1
- 504 696 l 1,1,-1
- 135 696 l 1,2,-1
- 426 469 l 1,3,-1
- 289 88 l 1,4,-1
- 629 340 l 1,5,-1
- 948 76 l 1,6,-1
- 815 469 l 1,7,-1
- 1139 696 l 1,8,-1
- 745 696 l 1,9,-1
- 629 1065 l 1,0,-1
-971 8 m 1,10,-1
- 731 188 l 1,11,-1
- 436 -25 l 1,12,-1
- 223 25 l 1,13,-1
- 360 440 l 1,14,-1
- 8 735 l 1,15,-1
- 465 735 l 1,16,-1
- 604 1153 l 1,17,-1
- 815 1116 l 1,18,-1
- 950 735 l 1,19,-1
- 1303 735 l 1,20,-1
- 1391 696 l 1,21,-1
- 1032 440 l 1,22,-1
- 1186 0 l 1,23,-1
- 971 8 l 1,10,-1
-EndSplineSet
-EndChar
-StartChar: uniE21C
-Encoding: 57884 57884 559
-Width: 1280
-GlyphClass: 2
-Flags: W
-Fore
-1023 6 m 1,0,-1
- 591 464 l 1,1,-1
- 607 -165 l 1,2,-1
- 509 -165 l 1,3,-1
- 530 480 l 1,4,-1
- 99 6 l 1,5,-1
- 14 72 l 1,6,-1
- 477 517 l 1,7,-1
- -151 496 l 1,8,-1
- -151 613 l 1,9,-1
- 493 575 l 1,10,-1
- 0 1036 l 1,11,-1
- 99 1089 l 1,12,-1
- 530 623 l 1,13,-1
- 509 1262 l 1,14,-1
- 607 1262 l 1,15,-1
- 570 623 l 1,16,-1
- 1039 1089 l 1,17,-1
- 1103 1020 l 1,18,-1
- 607 575 l 1,19,-1
- 1268 613 l 1,20,-1
- 1268 496 l 1,21,-1
- 623 517 l 1,22,-1
- 1103 88 l 1,23,-1
- 1023 6 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE21D
-Encoding: 57885 57885 560
-Width: 1114
-GlyphClass: 2
-Flags: W
-Fore
-915 131 m 1,0,-1
- 584 483 l 1,1,-1
- 596 0 l 1,2,-1
- 520 0 l 1,3,-1
- 537 496 l 1,4,-1
- 205 131 l 1,5,-1
- 139 182 l 1,6,-1
- 496 524 l 1,7,-1
- 12 508 l 1,8,-1
- 12 598 l 1,9,-1
- 508 569 l 1,10,-1
- 129 924 l 1,11,-1
- 205 965 l 1,12,-1
- 537 606 l 1,13,-1
- 520 1098 l 1,14,-1
- 596 1098 l 1,15,-1
- 567 606 l 1,16,-1
- 928 965 l 1,17,-1
- 977 911 l 1,18,-1
- 596 569 l 1,19,-1
- 1104 598 l 1,20,-1
- 1104 508 l 1,21,-1
- 608 524 l 1,22,-1
- 977 195 l 1,23,-1
- 915 131 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE21E
-Encoding: 57886 57886 561
-Width: 1179
-GlyphClass: 2
-Flags: W
-Fore
-588 -55 m 1,0,1
- 541 -22 541 -22 524 416 c 1,2,3
- 396 287 396 287 360 254 c 0,4,5
- 263 166 263 166 174 127 c 1,6,-1
- 166 137 l 1,7,8
- 201 233 201 233 449 492 c 1,9,10
- 246 495 246 495 217 498 c 0,11,12
- 69 507 69 507 -2 543 c 1,13,14
- 70 577 70 577 449 604 c 1,15,16
- 295 752 295 752 285 764 c 0,17,18
- 196 861 196 861 160 952 c 1,19,-1
- 170 963 l 1,20,21
- 236 940 236 940 524 684 c 1,22,23
- 534 902 534 902 535 913 c 0,24,25
- 547 1082 547 1082 580 1124 c 1,26,27
- 619 1061 619 1061 637 668 c 1,28,29
- 777 810 777 810 807 836 c 0,30,31
- 923 942 923 942 997 969 c 1,32,-1
- 1012 956 l 1,33,34
- 967 869 967 869 877 770 c 2,35,-1
- 717 604 l 1,36,37
- 1025 574 1025 574 1169 555 c 1,38,-1
- 1176 549 l 1,39,40
- 1089 518 1089 518 717 492 c 1,41,42
- 864 337 864 337 874 324 c 0,43,44
- 960 226 960 226 1004 135 c 1,45,-1
- 991 127 l 1,46,47
- 924 150 924 150 637 403 c 1,48,49
- 637 211 637 211 633 166 c 0,50,51
- 622 -4 622 -4 588 -55 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE21F
-Encoding: 57887 57887 562
-Width: 1179
-GlyphClass: 2
-Flags: W
-Fore
-621 596 m 1,0,-1
- 899 872 l 1,1,-1
- 684 748 l 1,2,-1
- 621 596 l 1,0,-1
-100 545 m 1,3,-1
- 387 479 l 1,4,-1
- 545 545 l 1,5,-1
- 100 545 l 1,3,-1
-553 504 m 1,6,-1
- 223 176 l 1,7,-1
- 504 369 l 1,8,-1
- 553 504 l 1,6,-1
-592 492 m 1,9,-1
- 592 59 l 1,10,-1
- 668 356 l 1,11,-1
- 592 492 l 1,9,-1
-633 520 m 1,12,-1
- 948 201 l 1,13,-1
- 784 457 l 1,14,-1
- 633 520 l 1,12,-1
-643 555 m 1,15,-1
- 1075 555 l 1,16,-1
- 797 633 l 1,17,-1
- 643 555 l 1,15,-1
-580 596 m 1,18,-1
- 580 1024 l 1,19,-1
- 520 748 l 1,20,-1
- 580 596 l 1,18,-1
-403 643 m 1,21,-1
- 553 584 l 1,22,-1
- 252 872 l 1,23,-1
- 403 643 l 1,21,-1
-983 139 m 1,24,-1
- 696 315 l 1,25,-1
- 604 -37 l 1,26,-1
- 580 -37 l 1,27,-1
- 504 303 l 1,28,-1
- 188 113 l 1,29,-1
- 160 139 l 1,30,-1
- 352 440 l 1,31,-1
- -4 532 l 1,32,-1
- -4 555 l 1,33,-1
- 352 633 l 1,34,-1
- 160 965 l 1,35,-1
- 188 977 l 1,36,-1
- 479 784 l 1,37,-1
- 580 1128 l 1,38,-1
- 604 1128 l 1,39,-1
- 684 801 l 1,40,-1
- 999 977 l 1,41,-1
- 1024 965 l 1,42,-1
- 819 655 l 1,43,-1
- 1163 567 l 1,44,-1
- 1163 545 l 1,45,-1
- 836 469 l 1,46,-1
- 1012 152 l 1,47,-1
- 983 139 l 1,24,-1
-EndSplineSet
-EndChar
-StartChar: uniE220
-Encoding: 57888 57888 563
-Width: 1040
-GlyphClass: 2
-Flags: W
-Fore
-498 -43 m 1,0,1
- 458 11 458 11 399 381 c 1,2,3
- 211 303 211 303 211 301 c 1,4,5
- 100 260 100 260 12 250 c 1,6,-1
- 0 254 l 1,7,-1
- -6 260 l 1,8,9
- 22 319 22 319 311 545 c 1,10,11
- 171 644 171 644 141 668 c 0,12,13
- 50 742 50 742 0 823 c 1,14,-1
- 6 827 l 1,15,16
- 96 824 96 824 399 709 c 1,17,-1
- 434 932 l 2,18,19
- 462 1078 462 1078 506 1137 c 1,20,21
- 544 1027 544 1027 588 709 c 1,22,23
- 737 763 737 763 793 780 c 0,24,25
- 900 815 900 815 1001 838 c 1,26,-1
- 1014 829 l 1,27,28
- 969 754 969 754 868 674 c 2,29,-1
- 692 545 l 1,30,31
- 719 519 719 519 862 399 c 0,32,33
- 968 315 968 315 1024 246 c 1,34,-1
- 1014 242 l 1,35,36
- 900 265 900 265 588 381 c 1,37,-1
- 557 160 l 2,38,39
- 530 0 530 0 498 -43 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE221
-Encoding: 57889 57889 564
-Width: 1163
-GlyphClass: 2
-Flags: W
-Fore
-332 -10 m 1,0,-1
- 387 369 l 1,1,2
- 103 317 103 317 20 317 c 2,3,-1
- 10 319 l 1,4,-1
- 4 326 l 1,5,6
- 52 397 52 397 328 555 c 1,7,8
- 105 685 105 685 6 784 c 1,9,-1
- 16 791 l 1,10,-1
- 33 793 l 2,11,12
- 131 793 131 793 403 735 c 1,13,14
- 363 895 363 895 358 920 c 0,15,16
- 336 1021 336 1021 336 1106 c 1,17,-1
- 344 1126 l 1,18,19
- 396 1097 396 1097 567 809 c 1,20,21
- 668 968 668 968 672 977 c 0,22,23
- 740 1068 740 1068 813 1112 c 1,24,-1
- 823 1098 l 1,25,-1
- 735 735 l 1,26,27
- 1016 795 1016 795 1130 795 c 2,28,-1
- 1143 793 l 1,29,-1
- 1149 786 l 1,30,-1
- 836 545 l 1,31,32
- 998 446 998 446 1008 440 c 0,33,34
- 1106 375 1106 375 1151 305 c 1,35,-1
- 1126 297 l 2,36,37
- 1016 297 1016 297 735 381 c 1,38,39
- 757 299 757 299 819 -8 c 1,40,-1
- 811 -23 l 1,41,42
- 759 8 759 8 567 289 c 1,43,44
- 486 145 486 145 467 119 c 0,45,46
- 407 27 407 27 338 -27 c 1,47,-1
- 332 -10 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE222
-Encoding: 57890 57890 565
-Width: 1179
-GlyphClass: 2
-Flags: W
-Fore
-25 340 m 1,0,-1
- 289 584 l 1,1,-1
- 8 809 l 1,2,-1
- 365 784 l 1,3,-1
- 356 1141 l 1,4,-1
- 580 872 l 1,5,-1
- 819 1141 l 1,6,-1
- 797 784 l 1,7,-1
- 1163 819 l 1,8,-1
- 872 584 l 1,9,-1
- 1153 340 l 1,10,-1
- 797 369 l 1,11,-1
- 819 0 l 1,12,-1
- 580 264 l 1,13,-1
- 340 0 l 1,14,-1
- 365 369 l 1,15,-1
- 25 340 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE223
-Encoding: 57891 57891 566
-Width: 1236
-GlyphClass: 2
-Flags: W
-Fore
-8 555 m 1,0,-1
- 311 633 l 1,1,-1
- 109 860 l 1,2,-1
- 387 801 l 1,3,-1
- 324 1087 l 1,4,-1
- 528 860 l 1,5,-1
- 604 1153 l 1,6,-1
- 692 860 l 1,7,-1
- 920 1075 l 1,8,-1
- 831 784 l 1,9,-1
- 1137 860 l 1,10,-1
- 907 643 l 1,11,-1
- 1212 555 l 1,12,-1
- 907 469 l 1,13,-1
- 1137 264 l 1,14,-1
- 844 328 l 1,15,-1
- 932 37 l 1,16,-1
- 692 264 l 1,17,-1
- 604 -37 l 1,18,-1
- 528 264 l 1,19,-1
- 311 37 l 1,20,-1
- 387 328 l 1,21,-1
- 96 252 l 1,22,-1
- 311 469 l 1,23,-1
- 8 555 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE224
-Encoding: 57892 57892 567
-Width: 1691
-GlyphClass: 2
-Flags: W
-Fore
-854 170 m 1,0,1
- 764 0 764 0 586 0 c 0,2,3
- 445 0 445 0 347 97 c 0,4,5
- 248 194 248 194 248 334 c 0,6,7
- 248 437 248 437 334 539 c 1,8,9
- 216 563 216 563 143 645 c 0,10,11
- 72 728 72 728 72 846 c 0,12,13
- 72 978 72 978 162 1079 c 0,14,15
- 252 1180 252 1180 385 1180 c 0,16,17
- 446 1180 446 1180 522 1149 c 1,18,19
- 518 1237 518 1237 518 1249 c 0,20,21
- 518 1364 518 1364 627 1440 c 0,22,23
- 724 1509 724 1509 844 1509 c 0,24,25
- 994 1509 994 1509 1082 1409 c 0,26,27
- 1162 1320 1162 1320 1162 1191 c 0,28,29
- 1162 1175 1162 1175 1161 1159 c 1,30,31
- 1236 1194 1236 1194 1300 1194 c 0,32,33
- 1435 1194 1435 1194 1528 1096 c 0,34,35
- 1620 996 1620 996 1620 860 c 0,36,37
- 1620 748 1620 748 1549 665 c 0,38,39
- 1479 582 1479 582 1366 553 c 1,40,41
- 1458 453 1458 453 1458 338 c 0,42,43
- 1458 202 1458 202 1358 101 c 0,44,45
- 1257 0 1257 0 1124 0 c 0,46,47
- 953 0 953 0 854 170 c 1,0,1
-842 905 m 0,48,49
- 770 905 770 905 717 852 c 128,-1,50
- 664 799 664 799 664 727 c 0,51,52
- 664 657 664 657 717 604 c 128,-1,53
- 770 551 770 551 842 551 c 0,54,55
- 914 551 914 551 967 603 c 0,56,57
- 1020 656 1020 656 1020 727 c 0,58,59
- 1020 797 1020 797 967 852 c 0,60,61
- 912 905 912 905 842 905 c 0,48,49
-EndSplineSet
-EndChar
-StartChar: uniE225
-Encoding: 57893 57893 568
-Width: 1406
-GlyphClass: 2
-Flags: W
-Fore
-772 801 m 1,0,-1
- 995 930 l 1,1,-1
- 1032 1202 l 1,2,-1
- 1098 1194 l 1,3,-1
- 1069 973 l 1,4,-1
- 1300 1106 l 1,5,-1
- 1341 1034 l 1,6,-1
- 1110 901 l 1,7,-1
- 1319 813 l 1,8,-1
- 1292 754 l 1,9,-1
- 1036 858 l 1,10,-1
- 813 729 l 1,11,-1
- 813 696 l 1,12,-1
- 1036 567 l 1,13,-1
- 1292 676 l 1,14,-1
- 1319 612 l 1,15,-1
- 1110 526 l 1,16,-1
- 1341 393 l 1,17,-1
- 1300 322 l 1,18,-1
- 1069 455 l 1,19,-1
- 1098 231 l 1,20,-1
- 1032 223 l 1,21,-1
- 995 498 l 1,22,-1
- 772 627 l 1,23,-1
- 745 608 l 1,24,-1
- 745 352 l 1,25,-1
- 965 184 l 1,26,-1
- 924 131 l 1,27,-1
- 745 266 l 1,28,-1
- 745 0 l 1,29,-1
- 664 0 l 1,30,-1
- 664 266 l 1,31,-1
- 483 131 l 1,32,-1
- 442 184 l 1,33,-1
- 664 352 l 1,34,-1
- 664 608 l 1,35,-1
- 635 627 l 1,36,-1
- 412 498 l 1,37,-1
- 377 223 l 1,38,-1
- 309 231 l 1,39,-1
- 338 455 l 1,40,-1
- 106 322 l 1,41,-1
- 66 391 l 1,42,-1
- 297 526 l 1,43,-1
- 90 612 l 1,44,-1
- 117 674 l 1,45,-1
- 371 567 l 1,46,-1
- 594 696 l 1,47,-1
- 594 729 l 1,48,-1
- 371 858 l 1,49,-1
- 117 752 l 1,50,-1
- 90 813 l 1,51,-1
- 297 901 l 1,52,-1
- 66 1034 l 1,53,-1
- 106 1106 l 1,54,-1
- 338 973 l 1,55,-1
- 309 1194 l 1,56,-1
- 377 1202 l 1,57,-1
- 412 930 l 1,58,-1
- 635 801 l 1,59,-1
- 664 817 l 1,60,-1
- 664 1073 l 1,61,-1
- 442 1241 l 1,62,-1
- 483 1294 l 1,63,-1
- 664 1159 l 1,64,-1
- 664 1425 l 1,65,-1
- 743 1425 l 1,66,-1
- 743 1159 l 1,67,-1
- 924 1294 l 1,68,-1
- 965 1241 l 1,69,-1
- 743 1073 l 1,70,-1
- 743 817 l 1,71,-1
- 772 801 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE226
-Encoding: 57894 57894 569
-Width: 1548
-GlyphClass: 2
-Flags: W
-Fore
-786 1473 m 0,0,1
- 1090 1473 1090 1473 1283 1280 c 0,2,3
- 1475 1088 1475 1088 1475 782 c 0,4,5
- 1475 476 1475 476 1283 286 c 0,6,7
- 1091 94 1091 94 786 94 c 0,8,9
- 483 94 483 94 290 287 c 0,10,11
- 96 479 96 479 96 782 c 0,12,13
- 96 1089 96 1089 288 1281 c 0,14,15
- 478 1473 478 1473 786 1473 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uniE227
-Encoding: 57895 57895 570
-Width: 1949
-GlyphClass: 2
-Flags: W
-Fore
-174 698 m 0,0,1
- 174 983 174 983 365 1169 c 0,2,3
- 517 1320 517 1320 817 1430 c 0,4,5
- 964 1483 964 1483 1083 1483 c 0,6,7
- 1392 1483 1392 1483 1586 1289 c 128,-1,8
- 1780 1095 1780 1095 1780 786 c 0,9,10
- 1780 501 1780 501 1589 313 c 0,11,12
- 1439 163 1439 163 1135 53 c 0,13,14
- 985 0 985 0 870 0 c 0,15,16
- 562 0 562 0 368 195 c 0,17,18
- 174 389 174 389 174 698 c 0,0,1
-868 92 m 0,19,20
- 1134 92 1134 92 1304 260 c 0,21,22
- 1473 429 1473 429 1473 694 c 0,23,24
- 1473 965 1473 965 1307 1133 c 0,25,26
- 1140 1298 1140 1298 868 1298 c 0,27,28
- 606 1298 606 1298 436 1132 c 0,29,30
- 266 964 266 964 266 702 c 0,31,32
- 266 431 266 431 430 262 c 0,33,34
- 597 92 597 92 868 92 c 0,19,20
-EndSplineSet
-EndChar
-StartChar: uniE228
-Encoding: 57896 57896 571
-Width: 1318
-GlyphClass: 2
-Flags: W
-Fore
--161 1298 m 1,0,-1
- 1306 1298 l 1,1,-1
- 1306 -169 l 1,2,-1
- -161 -169 l 1,3,-1
- -161 1298 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE229
-Encoding: 57897 57897 572
-Width: 1130
-GlyphClass: 2
-Flags: W
-Fore
-55 223 m 1,0,-1
- 893 223 l 1,1,-1
- 893 1075 l 1,2,-1
- 55 1075 l 1,3,-1
- 55 223 l 1,0,-1
-1106 0 m 1,4,-1
- 166 0 l 1,5,-1
- 166 176 l 1,6,-1
- 2 176 l 1,7,-1
- 2 1128 l 1,8,-1
- 942 1128 l 1,9,-1
- 942 965 l 1,10,-1
- 1106 965 l 1,11,-1
- 1106 0 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE22A
-Encoding: 57898 57898 573
-Width: 1146
-GlyphClass: 2
-Flags: W
-Fore
-897 899 m 1,0,-1
- 55 899 l 1,1,-1
- 55 59 l 1,2,-1
- 897 59 l 1,3,-1
- 897 899 l 1,0,-1
-8 0 m 1,4,-1
- 8 948 l 1,5,-1
- 172 948 l 1,6,-1
- 172 1128 l 1,7,-1
- 1124 1128 l 1,8,-1
- 1124 176 l 1,9,-1
- 948 176 l 1,10,-1
- 948 0 l 1,11,-1
- 8 0 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE22B
-Encoding: 57899 57899 574
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-270 299 m 1,0,-1
- 1354 299 l 1,1,-1
- 1354 1384 l 1,2,-1
- 270 1384 l 1,3,-1
- 270 299 l 1,0,-1
-172 1483 m 1,4,-1
- 1456 1483 l 1,5,-1
- 1653 1284 l 1,6,-1
- 1653 0 l 1,7,-1
- 369 0 l 1,8,-1
- 172 197 l 1,9,-1
- 172 1483 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE22C
-Encoding: 57900 57900 575
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-1354 98 m 1,0,-1
- 1354 1184 l 1,1,-1
- 268 1184 l 1,2,-1
- 270 98 l 1,3,-1
- 1354 98 l 1,0,-1
-172 0 m 1,4,-1
- 172 1284 l 1,5,-1
- 369 1483 l 1,6,-1
- 1653 1483 l 1,7,-1
- 1653 199 l 1,8,-1
- 1456 0 l 1,9,-1
- 172 0 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE22D
-Encoding: 57901 57901 576
-Width: 1179
-GlyphClass: 2
-Flags: W
-Fore
-580 1141 m 1,0,-1
- 1163 571 l 1,1,-1
- 580 0 l 1,2,-1
- -4 571 l 1,3,-1
- 580 1141 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE22E
-Encoding: 57902 57902 577
-Width: 1179
-GlyphClass: 2
-Flags: W
-Fore
-899 801 m 1,0,-1
- 1163 555 l 1,1,-1
- 899 315 l 1,2,-1
- 643 555 l 1,3,-1
- 899 801 l 1,0,-1
-580 479 m 1,4,-1
- 819 240 l 1,5,-1
- 580 -25 l 1,6,-1
- 340 240 l 1,7,-1
- 580 479 l 1,4,-1
-504 555 m 1,8,-1
- 252 315 l 1,9,-1
- -4 567 l 1,10,-1
- 252 801 l 1,11,-1
- 504 555 l 1,8,-1
-580 1128 m 1,12,-1
- 819 872 l 1,13,-1
- 580 643 l 1,14,-1
- 340 872 l 1,15,-1
- 580 1128 l 1,12,-1
-EndSplineSet
-EndChar
-StartChar: uniE22F
-Encoding: 57903 57903 578
-Width: 897
-GlyphClass: 2
-Flags: W
-Fore
-59 1489 m 1,0,1
- 383 1489 383 1489 610 1271 c 0,2,3
- 838 1052 838 1052 838 729 c 0,4,5
- 838 400 838 400 614 188 c 0,6,7
- 392 -25 392 -25 59 -31 c 1,8,-1
- 59 1489 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE230
-Encoding: 57904 57904 579
-Width: 567
-GlyphClass: 2
-Flags: W
-Fore
-508 1458 m 1,0,-1
- 508 0 l 1,1,-1
- 59 0 l 1,2,-1
- 59 1458 l 1,3,-1
- 508 1458 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE231
-Encoding: 57905 57905 580
-Width: 798
-GlyphClass: 2
-Flags: W
-Fore
-725 1487 m 1,0,-1
- 739 1444 l 1,1,2
- 531 1357 531 1357 424 1153 c 0,3,4
- 326 970 326 970 326 729 c 128,-1,5
- 326 488 326 488 424 305 c 0,6,7
- 532 102 532 102 739 14 c 1,8,-1
- 725 -29 l 1,9,10
- 431 36 431 36 258 233 c 0,11,12
- 84 434 84 434 84 729 c 0,13,14
- 84 1026 84 1026 260 1229 c 0,15,16
- 430 1424 430 1424 725 1487 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE232
-Encoding: 57906 57906 581
-Width: 798
-GlyphClass: 2
-Flags: W
-Fore
-76 -29 m 1,0,-1
- 59 14 l 1,1,2
- 265 102 265 102 375 305 c 0,3,4
- 473 490 473 490 473 729 c 128,-1,5
- 473 968 473 968 375 1153 c 0,6,7
- 266 1357 266 1357 59 1444 c 1,8,-1
- 76 1487 l 1,9,10
- 366 1424 366 1424 539 1227 c 0,11,12
- 717 1021 717 1021 717 729 c 0,13,14
- 717 438 717 438 539 231 c 0,15,16
- 367 36 367 36 76 -29 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE233
-Encoding: 57907 57907 582
-Width: 798
-GlyphClass: 2
-Flags: W
-Fore
-725 1487 m 1,0,-1
- 739 1444 l 1,1,2
- 531 1357 531 1357 424 1153 c 0,3,4
- 326 970 326 970 326 729 c 128,-1,5
- 326 488 326 488 424 305 c 0,6,7
- 532 102 532 102 739 14 c 1,8,-1
- 725 -29 l 1,9,10
- 431 36 431 36 258 233 c 0,11,12
- 84 434 84 434 84 729 c 0,13,14
- 84 1026 84 1026 260 1229 c 0,15,16
- 430 1424 430 1424 725 1487 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE234
-Encoding: 57908 57908 583
-Width: 798
-GlyphClass: 2
-Flags: W
-Fore
-76 -29 m 1,0,-1
- 59 14 l 1,1,2
- 265 102 265 102 375 305 c 0,3,4
- 473 490 473 490 473 729 c 128,-1,5
- 473 968 473 968 375 1153 c 0,6,7
- 266 1357 266 1357 59 1444 c 1,8,-1
- 76 1487 l 1,9,10
- 366 1424 366 1424 539 1227 c 0,11,12
- 717 1021 717 1021 717 729 c 0,13,14
- 717 438 717 438 539 231 c 0,15,16
- 367 36 367 36 76 -29 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE235
-Encoding: 57909 57909 584
-Width: 686
-GlyphClass: 2
-Flags: W
-Fore
-86 592 m 1,0,-1
- 578 1606 l 1,1,-1
- 625 1581 l 1,2,-1
- 145 592 l 1,3,-1
- 625 -397 l 1,4,-1
- 578 -422 l 1,5,-1
- 86 592 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE236
-Encoding: 57910 57910 585
-Width: 686
-GlyphClass: 2
-Flags: W
-Fore
-600 592 m 1,0,-1
- 109 -422 l 1,1,-1
- 59 -397 l 1,2,-1
- 539 592 l 1,3,-1
- 59 1581 l 1,4,-1
- 109 1606 l 1,5,-1
- 600 592 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE237
-Encoding: 57911 57911 586
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-1405 1061 m 1,0,-1
- 1405 954 l 1,1,-1
- 489 588 l 1,2,-1
- 1405 219 l 1,3,-1
- 1405 115 l 1,4,-1
- 221 588 l 1,5,-1
- 1405 1061 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE238
-Encoding: 57912 57912 587
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 1061 m 1,0,-1
- 1405 588 l 1,1,-1
- 221 115 l 1,2,-1
- 221 219 l 1,3,-1
- 1139 590 l 1,4,-1
- 221 954 l 1,5,-1
- 221 1061 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE239
-Encoding: 57913 57913 588
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-1405 1061 m 1,0,-1
- 1405 954 l 1,1,-1
- 489 588 l 1,2,-1
- 1405 219 l 1,3,-1
- 1405 115 l 1,4,-1
- 221 588 l 1,5,-1
- 1405 1061 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE23A
-Encoding: 57914 57914 589
-Width: 1628
-GlyphClass: 2
-Flags: W
-Fore
-221 1061 m 1,0,-1
- 1405 588 l 1,1,-1
- 221 115 l 1,2,-1
- 221 219 l 1,3,-1
- 1139 590 l 1,4,-1
- 221 954 l 1,5,-1
- 221 1061 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE23B
-Encoding: 57915 57915 590
-Width: 577
-GlyphClass: 2
-Flags: W
-Fore
-150 -403 m 1,0,-1
- 150 1622 l 1,1,-1
- 504 1622 l 1,2,-1
- 504 1581 l 1,3,-1
- 248 1581 l 1,4,-1
- 248 -360 l 1,5,-1
- 504 -360 l 1,6,-1
- 504 -403 l 1,7,-1
- 150 -403 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE23C
-Encoding: 57916 57916 591
-Width: 577
-GlyphClass: 2
-Flags: W
-Fore
-428 -403 m 1,0,-1
- 74 -403 l 1,1,-1
- 74 -360 l 1,2,-1
- 330 -360 l 1,3,-1
- 330 1581 l 1,4,-1
- 74 1581 l 1,5,-1
- 74 1622 l 1,6,-1
- 428 1622 l 1,7,-1
- 428 -403 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE23D
-Encoding: 57917 57917 592
-Width: 782
-GlyphClass: 2
-Flags: W
-Fore
-496 -453 m 1,0,-1
- 485 -453 l 2,1,2
- 351 -453 351 -453 281 -362 c 0,3,4
- 215 -281 215 -281 215 -145 c 2,5,-1
- 217 459 l 2,6,7
- 217 587 217 587 92 588 c 1,8,-1
- 92 621 l 1,9,-1
- 129 623 l 2,10,11
- 217 638 217 638 217 752 c 2,12,-1
- 215 1356 l 2,13,14
- 215 1494 215 1494 288 1576 c 0,15,16
- 360 1659 360 1659 496 1659 c 1,17,-1
- 496 1626 l 1,18,-1
- 450 1623 l 1,19,-1
- 413 1613 l 2,20,21
- 298 1569 298 1569 295 1384 c 2,22,-1
- 287 809 l 2,23,24
- 284 667 284 667 156 604 c 1,25,26
- 284 543 284 543 287 397 c 2,27,-1
- 295 -176 l 2,28,29
- 299 -418 299 -418 491 -420 c 0,30,31
- 494 -420 494 -420 496 -420 c 1,32,-1
- 496 -453 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE23E
-Encoding: 57918 57918 593
-Width: 782
-GlyphClass: 2
-Flags: W
-Fore
-92 -453 m 1,0,-1
- 92 -420 l 1,1,-1
- 138 -417 l 2,2,3
- 293 -391 293 -391 293 -176 c 0,4,5
- 293 -80 293 -80 287 112 c 0,6,7
- 281 302 281 302 281 399 c 0,8,9
- 281 535 281 535 414 604 c 1,10,11
- 281 667 281 667 281 809 c 0,12,13
- 281 904 281 904 287 1098 c 0,14,15
- 293 1290 293 1290 293 1386 c 0,16,17
- 293 1626 293 1626 92 1626 c 1,18,-1
- 92 1659 l 1,19,-1
- 102 1659 l 2,20,21
- 234 1659 234 1659 303 1574 c 0,22,23
- 373 1489 373 1489 373 1354 c 0,24,25
- 373 1245 373 1245 360 1053 c 0,26,27
- 348 852 348 852 348 752 c 0,28,29
- 348 621 348 621 480 621 c 0,30,31
- 496 621 l 1,32,-1
- 496 588 l 1,33,-1
- 452 586 l 2,34,35
- 348 572 348 572 348 457 c 0,36,37
- 348 356 348 356 360 156 c 0,38,39
- 373 -38 373 -38 373 -145 c 0,40,41
- 373 -453 373 -453 92 -453 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE240
-Encoding: 57920 57920 594
-Width: 606
-GlyphClass: 2
-Flags: W
-Fore
-319 358 m 1,0,-1
- 281 358 l 1,1,-1
- 221 803 l 2,2,3
- 186 1072 186 1072 186 1247 c 0,4,5
- 186 1302 186 1302 217 1345 c 0,6,7
- 248 1386 248 1386 301 1386 c 0,8,9
- 414 1386 414 1386 414 1237 c 0,10,11
- 414 1062 414 1062 379 797 c 2,12,-1
- 319 358 l 1,0,-1
-299 193 m 0,13,14
- 342 193 342 193 376 160 c 0,15,16
- 410 126 410 126 410 84 c 0,17,18
- 410 38 410 38 377 4 c 0,19,20
- 344 -29 344 -29 299 -29 c 0,21,22
- 255 -29 255 -29 221 5 c 0,23,24
- 188 40 188 40 188 84 c 0,25,26
- 188 126 188 126 222 160 c 0,27,28
- 256 193 256 193 299 193 c 0,13,14
-EndSplineSet
-EndChar
-StartChar: uniE241
-Encoding: 57921 57921 595
-Width: 1589
-GlyphClass: 2
-Flags: W
-Fore
-530 956 m 1,0,1
- 465 1063 465 1063 465 1147 c 0,2,3
- 465 1274 465 1274 567 1362 c 0,4,5
- 665 1444 665 1444 795 1444 c 0,6,7
- 926 1444 926 1444 1025 1360 c 128,-1,8
- 1124 1276 1124 1276 1124 1147 c 0,9,10
- 1124 1058 1124 1058 1059 956 c 1,11,12
- 1131 981 1131 981 1192 981 c 0,13,14
- 1331 981 1331 981 1424 891 c 0,15,16
- 1518 801 1518 801 1518 662 c 0,17,18
- 1518 528 1518 528 1424 434 c 0,19,20
- 1331 340 1331 340 1198 340 c 0,21,22
- 1028 340 1028 340 887 532 c 1,23,24
- 922 179 922 179 1032 0 c 1,25,-1
- 555 0 l 1,26,27
- 666 180 666 180 702 532 c 1,28,29
- 561 340 561 340 389 340 c 0,30,31
- 255 340 255 340 164 434 c 0,32,33
- 72 527 72 527 72 662 c 0,34,35
- 72 801 72 801 166 891 c 0,36,37
- 260 981 260 981 399 981 c 0,38,39
- 458 981 458 981 530 956 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE242
-Encoding: 57922 57922 596
-Width: 1179
-GlyphClass: 2
-Flags: W
-Fore
-580 1141 m 1,0,-1
- 1163 571 l 1,1,-1
- 580 0 l 1,2,-1
- -4 571 l 1,3,-1
- 580 1141 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE243
-Encoding: 57923 57923 597
-Width: 1421
-GlyphClass: 2
-Flags: W
-Fore
-711 1139 m 1,0,1
- 795 1444 795 1444 1024 1444 c 0,2,3
- 1164 1444 1164 1444 1264 1353 c 0,4,5
- 1362 1261 1362 1261 1362 1120 c 0,6,7
- 1362 950 1362 950 1233 739 c 0,8,9
- 1207 696 1207 696 991 406 c 0,10,11
- 959 360 959 360 860 199 c 0,12,13
- 782 70 782 70 717 0 c 1,14,-1
- 705 0 l 1,15,16
- 662 39 662 39 627 111 c 2,17,-1
- 569 236 l 2,18,19
- 518 338 518 338 375 514 c 0,20,21
- 210 714 210 714 160 797 c 0,22,23
- 59 963 59 963 59 1110 c 0,24,25
- 59 1256 59 1256 155 1350 c 0,26,27
- 251 1444 251 1444 395 1444 c 0,28,29
- 627 1444 627 1444 711 1139 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE244
-Encoding: 57924 57924 598
-Width: 1282
-GlyphClass: 2
-Flags: W
-Fore
-621 1444 m 1,0,-1
- 662 1444 l 1,1,2
- 694 1415 694 1415 729 1362 c 0,3,4
- 765 1300 765 1300 784 1270 c 0,5,6
- 839 1191 839 1191 981 1071 c 0,7,8
- 1129 945 1129 945 1186 877 c 0,9,10
- 1280 757 1280 757 1280 621 c 0,11,12
- 1280 504 1280 504 1204 422 c 0,13,14
- 1129 340 1129 340 1014 340 c 0,15,16
- 864 340 864 340 731 518 c 1,17,18
- 757 205 757 205 883 0 c 1,19,-1
- 399 0 l 1,20,21
- 527 208 527 208 551 518 c 1,22,23
- 418 340 418 340 268 340 c 0,24,25
- 149 340 149 340 76 422 c 0,26,27
- 2 502 2 502 2 621 c 0,28,29
- 2 753 2 753 96 872 c 0,30,31
- 151 946 151 946 299 1073 c 0,32,33
- 451 1205 451 1205 498 1270 c 2,34,-1
- 621 1444 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE245
-Encoding: 57925 57925 599
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-272 741 m 0,14,15
- 272 460 272 460 453 280 c 0,16,17
- 633 98 633 98 913 98 c 0,18,19
- 1200 98 1200 98 1376 276 c 0,20,21
- 1552 453 1552 453 1552 741 c 0,22,23
- 1552 1028 1552 1028 1375 1206 c 0,24,25
- 1198 1384 1198 1384 913 1384 c 0,26,27
- 630 1384 630 1384 452 1204 c 0,28,29
- 272 1024 272 1024 272 741 c 0,14,15
-864 270 m 1,30,-1
- 864 1110 l 1,31,-1
- 717 1110 l 1,32,-1
- 717 1190 l 1,33,-1
- 989 1212 l 1,34,-1
- 989 270 l 1,35,-1
- 864 270 l 1,30,-1
-EndSplineSet
-EndChar
-StartChar: uniE246
-Encoding: 57926 57926 600
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-272 741 m 0,14,15
- 272 460 272 460 453 280 c 0,16,17
- 633 98 633 98 913 98 c 0,18,19
- 1200 98 1200 98 1376 276 c 0,20,21
- 1552 453 1552 453 1552 741 c 0,22,23
- 1552 1028 1552 1028 1375 1206 c 0,24,25
- 1198 1384 1198 1384 913 1384 c 0,26,27
- 630 1384 630 1384 452 1204 c 0,28,29
- 272 1024 272 1024 272 741 c 0,14,15
-641 287 m 1,30,-1
- 641 393 l 1,31,32
- 676 460 676 460 791 582 c 0,33,34
- 942 737 942 737 977 782 c 0,35,36
- 1069 898 1069 898 1069 979 c 0,37,38
- 1069 1147 1069 1147 893 1147 c 0,39,40
- 795 1147 795 1147 666 1075 c 1,41,-1
- 666 1186 l 1,42,43
- 796 1245 796 1245 911 1245 c 0,44,45
- 1037 1245 1037 1245 1116 1178 c 0,46,47
- 1200 1103 1200 1103 1200 981 c 0,48,49
- 1200 866 1200 866 1104 764 c 2,50,-1
- 920 598 l 2,51,52
- 811 497 811 497 793 393 c 1,53,-1
- 1196 393 l 1,54,-1
- 1196 287 l 1,55,-1
- 641 287 l 1,30,-1
-EndSplineSet
-EndChar
-StartChar: uniE247
-Encoding: 57927 57927 601
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-272 741 m 0,14,15
- 272 460 272 460 453 280 c 0,16,17
- 633 98 633 98 913 98 c 0,18,19
- 1200 98 1200 98 1376 276 c 0,20,21
- 1552 453 1552 453 1552 741 c 0,22,23
- 1552 1028 1552 1028 1375 1206 c 0,24,25
- 1198 1384 1198 1384 913 1384 c 0,26,27
- 630 1384 630 1384 452 1204 c 0,28,29
- 272 1024 272 1024 272 741 c 0,14,15
-674 283 m 1,30,-1
- 674 399 l 1,31,32
- 816 346 816 346 885 346 c 0,33,34
- 967 346 967 346 1027 398 c 0,35,36
- 1085 450 1085 450 1085 532 c 0,37,38
- 1085 728 1085 728 770 729 c 0,39,40
- 762 729 l 1,41,-1
- 762 813 l 1,42,-1
- 842 816 l 2,43,44
- 1063 837 1063 837 1063 995 c 0,45,46
- 1063 1139 1063 1139 891 1139 c 0,47,48
- 790 1139 790 1139 686 1087 c 1,49,-1
- 686 1198 l 1,50,51
- 791 1237 791 1237 901 1237 c 0,52,53
- 1188 1237 1188 1237 1188 1016 c 0,54,55
- 1188 854 1188 854 993 782 c 1,56,57
- 1219 729 1219 729 1219 535 c 0,58,59
- 1219 398 1219 398 1122 322 c 0,60,61
- 1036 254 1036 254 893 254 c 0,62,63
- 816 254 816 254 674 283 c 1,30,-1
-EndSplineSet
-EndChar
-StartChar: uniE248
-Encoding: 57928 57928 602
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-272 741 m 0,14,15
- 272 460 272 460 453 280 c 0,16,17
- 633 98 633 98 913 98 c 0,18,19
- 1200 98 1200 98 1376 276 c 0,20,21
- 1552 453 1552 453 1552 741 c 0,22,23
- 1552 1028 1552 1028 1375 1206 c 0,24,25
- 1198 1384 1198 1384 913 1384 c 0,26,27
- 630 1384 630 1384 452 1204 c 0,28,29
- 272 1024 272 1024 272 741 c 0,14,15
-938 285 m 1,30,-1
- 938 549 l 1,31,-1
- 518 549 l 1,32,-1
- 518 641 l 1,33,-1
- 938 1217 l 1,34,-1
- 1055 1217 l 1,35,-1
- 1055 649 l 1,36,-1
- 1180 649 l 1,37,-1
- 1180 549 l 1,38,-1
- 1055 549 l 1,39,-1
- 1055 285 l 1,40,-1
- 938 285 l 1,30,-1
-641 649 m 1,41,-1
- 946 649 l 1,42,-1
- 946 1065 l 1,43,-1
- 641 649 l 1,41,-1
-EndSplineSet
-EndChar
-StartChar: uniE249
-Encoding: 57929 57929 603
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-272 741 m 0,14,15
- 272 460 272 460 453 280 c 0,16,17
- 633 98 633 98 913 98 c 0,18,19
- 1200 98 1200 98 1376 276 c 0,20,21
- 1552 453 1552 453 1552 741 c 0,22,23
- 1552 1028 1552 1028 1375 1206 c 0,24,25
- 1198 1384 1198 1384 913 1384 c 0,26,27
- 630 1384 630 1384 452 1204 c 0,28,29
- 272 1024 272 1024 272 741 c 0,14,15
-682 266 m 1,30,-1
- 682 377 l 1,31,32
- 766 338 766 338 858 338 c 0,33,34
- 1057 338 1057 338 1057 543 c 0,35,36
- 1057 648 1057 648 973 707 c 0,37,38
- 900 758 900 758 788 758 c 0,39,40
- 746 758 746 758 698 748 c 1,41,-1
- 698 1204 l 1,42,-1
- 1169 1204 l 1,43,-1
- 1171 1098 l 1,44,-1
- 807 1098 l 1,45,-1
- 807 852 l 1,46,47
- 970 852 970 852 1073 778 c 0,48,49
- 1188 694 1188 694 1188 537 c 0,50,51
- 1188 395 1188 395 1085 317 c 0,52,53
- 991 246 991 246 846 246 c 0,54,55
- 760 246 760 246 682 266 c 1,30,-1
-EndSplineSet
-EndChar
-StartChar: uniE24A
-Encoding: 57930 57930 604
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-272 741 m 0,14,15
- 272 460 272 460 453 280 c 0,16,17
- 633 98 633 98 913 98 c 0,18,19
- 1200 98 1200 98 1376 276 c 0,20,21
- 1552 453 1552 453 1552 741 c 0,22,23
- 1552 1028 1552 1028 1375 1206 c 0,24,25
- 1198 1384 1198 1384 913 1384 c 0,26,27
- 630 1384 630 1384 452 1204 c 0,28,29
- 272 1024 272 1024 272 741 c 0,14,15
-719 752 m 1,30,31
- 800 868 800 868 940 868 c 0,32,33
- 1063 868 1063 868 1141 787 c 0,34,35
- 1219 708 1219 708 1219 582 c 0,36,37
- 1219 445 1219 445 1135 346 c 0,38,39
- 1045 246 1045 246 909 246 c 0,40,41
- 736 246 736 246 649 403 c 0,42,43
- 582 525 582 525 582 717 c 0,44,45
- 582 932 582 932 662 1065 c 0,46,47
- 761 1229 761 1229 961 1229 c 0,48,49
- 1051 1229 1051 1229 1169 1192 c 1,50,-1
- 1169 1079 l 1,51,52
- 1049 1130 1049 1130 952 1130 c 0,53,54
- 720 1130 720 1130 719 766 c 2,55,-1
- 719 752 l 1,30,31
-1092 557 m 0,56,57
- 1092 780 1092 780 913 780 c 0,58,59
- 834 780 834 780 778 728 c 0,60,61
- 721 676 721 676 721 600 c 0,62,63
- 721 498 721 498 766 426 c 0,64,65
- 819 340 819 340 915 340 c 0,66,67
- 1092 340 1092 340 1092 557 c 0,56,57
-EndSplineSet
-EndChar
-StartChar: uniE24B
-Encoding: 57931 57931 605
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-272 741 m 0,14,15
- 272 460 272 460 453 280 c 0,16,17
- 633 98 633 98 913 98 c 0,18,19
- 1200 98 1200 98 1376 276 c 0,20,21
- 1552 453 1552 453 1552 741 c 0,22,23
- 1552 1028 1552 1028 1375 1206 c 0,24,25
- 1198 1384 1198 1384 913 1384 c 0,26,27
- 630 1384 630 1384 452 1204 c 0,28,29
- 272 1024 272 1024 272 741 c 0,14,15
-684 233 m 1,30,31
- 719 435 719 435 852 664 c 0,32,33
- 877 706 877 706 1110 1053 c 1,34,-1
- 631 1053 l 1,35,-1
- 631 1167 l 1,36,-1
- 1229 1167 l 1,37,-1
- 1229 1053 l 1,38,39
- 876 538 876 538 827 233 c 1,40,-1
- 684 233 l 1,30,31
-EndSplineSet
-EndChar
-StartChar: uniE24C
-Encoding: 57932 57932 606
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-272 741 m 0,14,15
- 272 460 272 460 453 280 c 0,16,17
- 633 98 633 98 913 98 c 0,18,19
- 1200 98 1200 98 1376 276 c 0,20,21
- 1552 453 1552 453 1552 741 c 0,22,23
- 1552 1028 1552 1028 1375 1206 c 0,24,25
- 1198 1384 1198 1384 913 1384 c 0,26,27
- 630 1384 630 1384 452 1204 c 0,28,29
- 272 1024 272 1024 272 741 c 0,14,15
-776 778 m 1,30,31
- 641 871 641 871 641 989 c 0,32,33
- 641 1099 641 1099 727 1167 c 0,34,35
- 806 1227 806 1227 922 1227 c 0,36,37
- 1023 1227 1023 1227 1096 1180 c 0,38,39
- 1180 1124 1180 1124 1180 1026 c 0,40,41
- 1180 889 1180 889 1006 778 c 1,42,43
- 1217 677 1217 677 1217 512 c 0,44,45
- 1217 386 1217 386 1118 313 c 0,46,47
- 1029 248 1029 248 901 248 c 0,48,49
- 773 248 773 248 688 309 c 0,50,51
- 592 380 592 380 592 502 c 0,52,53
- 592 669 592 669 776 778 c 1,30,31
-936 817 m 1,54,55
- 1067 903 1067 903 1067 1010 c 0,56,57
- 1067 1135 1067 1135 909 1135 c 0,58,59
- 849 1135 849 1135 805 1106 c 0,60,61
- 754 1072 754 1072 754 1014 c 0,62,63
- 754 918 754 918 936 817 c 1,54,55
-846 729 m 1,64,65
- 717 632 717 632 717 520 c 0,66,67
- 717 438 717 438 769 389 c 0,68,69
- 821 340 821 340 903 340 c 0,70,71
- 978 340 978 340 1033 382 c 0,72,73
- 1090 424 1090 424 1090 494 c 0,74,75
- 1090 562 1090 562 997 635 c 0,76,77
- 968 657 968 657 846 729 c 1,64,65
-EndSplineSet
-EndChar
-StartChar: uniE24D
-Encoding: 57933 57933 607
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-272 741 m 0,14,15
- 272 460 272 460 453 280 c 0,16,17
- 633 98 633 98 913 98 c 0,18,19
- 1200 98 1200 98 1376 276 c 0,20,21
- 1552 453 1552 453 1552 741 c 0,22,23
- 1552 1028 1552 1028 1375 1206 c 0,24,25
- 1198 1384 1198 1384 913 1384 c 0,26,27
- 630 1384 630 1384 452 1204 c 0,28,29
- 272 1024 272 1024 272 741 c 0,14,15
-655 274 m 1,30,-1
- 655 381 l 1,31,32
- 769 338 769 338 858 338 c 0,33,34
- 1106 338 1106 338 1104 713 c 1,35,36
- 1011 596 1011 596 889 596 c 0,37,38
- 764 596 764 596 686 683 c 128,-1,39
- 608 770 608 770 608 895 c 0,40,41
- 608 1034 608 1034 692 1132 c 0,42,43
- 777 1229 777 1229 913 1229 c 0,44,45
- 1084 1229 1084 1229 1171 1077 c 0,46,47
- 1241 955 1241 955 1241 770 c 0,48,49
- 1241 556 1241 556 1153 414 c 0,50,51
- 1046 246 1046 246 846 246 c 0,52,53
- 774 246 774 246 655 274 c 1,30,-1
-731 915 m 0,54,55
- 731 686 731 686 911 686 c 0,56,57
- 987 686 987 686 1044 740 c 0,58,59
- 1102 795 1102 795 1102 870 c 0,60,61
- 1102 972 1102 972 1059 1049 c 0,62,63
- 1005 1135 1005 1135 907 1135 c 0,64,65
- 731 1135 731 1135 731 915 c 0,54,55
-EndSplineSet
-EndChar
-StartChar: uniE24E
-Encoding: 57934 57934 608
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-272 741 m 0,14,15
- 272 460 272 460 453 280 c 0,16,17
- 633 98 633 98 913 98 c 0,18,19
- 1200 98 1200 98 1376 276 c 0,20,21
- 1552 453 1552 453 1552 741 c 0,22,23
- 1552 1028 1552 1028 1375 1206 c 0,24,25
- 1198 1384 1198 1384 913 1384 c 0,26,27
- 630 1384 630 1384 452 1204 c 0,28,29
- 272 1024 272 1024 272 741 c 0,14,15
-604 270 m 1,30,-1
- 604 1110 l 1,31,-1
- 506 1110 l 1,32,-1
- 506 1190 l 1,33,-1
- 729 1212 l 1,34,-1
- 729 270 l 1,35,-1
- 604 270 l 1,30,-1
-1110 246 m 0,36,37
- 957 246 957 246 885 426 c 0,38,39
- 834 555 834 555 834 735 c 128,-1,40
- 834 915 834 915 885 1044 c 0,41,42
- 957 1225 957 1225 1110 1225 c 0,43,44
- 1266 1225 1266 1225 1337 1047 c 0,45,46
- 1389 915 1389 915 1389 735 c 0,47,48
- 1389 556 1389 556 1337 424 c 0,49,50
- 1267 246 1267 246 1110 246 c 0,36,37
-1110 344 m 0,51,52
- 1255 344 1255 344 1255 741 c 0,53,54
- 1255 1135 1255 1135 1110 1135 c 128,-1,55
- 965 1135 965 1135 965 739 c 0,56,57
- 965 344 965 344 1110 344 c 0,51,52
-EndSplineSet
-EndChar
-StartChar: uniE24F
-Encoding: 57935 57935 609
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1069 172 1069 380 1276 c 0,2,3
- 587 1483 587 1483 915 1483 c 0,4,5
- 1240 1483 1240 1483 1448 1275 c 0,6,7
- 1655 1066 1655 1066 1655 741 c 0,8,9
- 1655 413 1655 413 1450 207 c 0,10,11
- 1243 0 1243 0 915 0 c 0,12,13
- 590 0 590 0 381 209 c 0,14,15
- 172 416 172 416 172 741 c 0,0,1
-836 279 m 1,16,-1
- 1024 279 l 1,17,-1
- 1024 1223 l 1,18,-1
- 707 1194 l 1,19,-1
- 711 1102 l 1,20,-1
- 836 1102 l 1,21,-1
- 836 279 l 1,16,-1
-EndSplineSet
-EndChar
-StartChar: uniE250
-Encoding: 57936 57936 610
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-623 285 m 1,14,-1
- 1245 285 l 1,15,-1
- 1245 430 l 1,16,-1
- 834 430 l 1,17,18
- 860 525 860 525 971 618 c 2,19,-1
- 1157 774 l 2,20,21
- 1249 869 1249 869 1249 981 c 0,22,23
- 1249 1108 1249 1108 1145 1180 c 0,24,25
- 1056 1241 1056 1241 922 1241 c 0,26,27
- 789 1241 789 1241 647 1188 c 1,28,-1
- 647 1051 l 1,29,30
- 780 1118 780 1118 885 1118 c 0,31,32
- 1051 1118 1051 1118 1051 973 c 0,33,34
- 1051 871 1051 871 877 688 c 2,35,-1
- 623 430 l 1,36,-1
- 623 285 l 1,14,-1
-EndSplineSet
-EndChar
-StartChar: uniE251
-Encoding: 57937 57937 611
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-657 279 m 1,14,15
- 772 248 772 248 911 248 c 0,16,17
- 1058 248 1058 248 1153 309 c 0,18,19
- 1266 383 1266 383 1266 520 c 0,20,21
- 1266 721 1266 721 1030 772 c 1,22,23
- 1237 840 1237 840 1237 1008 c 0,24,25
- 1237 1233 1237 1233 932 1233 c 0,26,27
- 791 1233 791 1233 672 1190 c 1,28,-1
- 672 1061 l 1,29,30
- 793 1114 793 1114 889 1114 c 0,31,32
- 1047 1114 1047 1114 1047 987 c 0,33,34
- 1047 879 1047 879 940 840 c 0,35,36
- 877 819 877 819 743 819 c 1,37,-1
- 743 707 l 1,38,-1
- 764 707 l 2,39,40
- 901 707 901 707 967 680 c 0,41,42
- 1071 636 1071 636 1071 522 c 0,43,44
- 1071 365 1071 365 889 365 c 0,45,46
- 800 365 800 365 657 418 c 1,47,-1
- 657 279 l 1,14,15
-EndSplineSet
-EndChar
-StartChar: uniE252
-Encoding: 57938 57938 612
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-176 741 m 0,0,1
- 176 1068 176 1068 382 1276 c 0,2,3
- 588 1483 588 1483 915 1483 c 0,4,5
- 1240 1483 1240 1483 1448 1275 c 0,6,7
- 1655 1066 1655 1066 1655 741 c 0,8,9
- 1655 413 1655 413 1450 207 c 0,10,11
- 1243 0 1243 0 915 0 c 0,12,13
- 590 0 590 0 383 209 c 0,14,15
- 176 416 176 416 176 741 c 0,0,1
-934 279 m 1,16,-1
- 1096 279 l 1,17,-1
- 1096 526 l 1,18,-1
- 1204 526 l 1,19,-1
- 1204 666 l 1,20,-1
- 1096 666 l 1,21,-1
- 1096 1212 l 1,22,-1
- 926 1212 l 1,23,-1
- 498 666 l 1,24,-1
- 498 526 l 1,25,-1
- 934 526 l 1,26,-1
- 934 279 l 1,16,-1
-647 666 m 1,27,-1
- 936 1030 l 1,28,-1
- 936 666 l 1,29,-1
- 647 666 l 1,27,-1
-EndSplineSet
-EndChar
-StartChar: uniE253
-Encoding: 57939 57939 613
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-174 741 m 0,0,1
- 174 1071 174 1071 380 1277 c 128,-1,2
- 586 1483 586 1483 915 1483 c 0,3,4
- 1240 1483 1240 1483 1448 1275 c 0,5,6
- 1655 1066 1655 1066 1655 741 c 0,7,8
- 1655 413 1655 413 1450 207 c 0,9,10
- 1243 0 1243 0 915 0 c 0,11,12
- 586 0 586 0 380 206 c 128,-1,13
- 174 412 174 412 174 741 c 0,0,1
-657 274 m 1,14,15
- 789 248 789 248 860 248 c 0,16,17
- 1014 248 1014 248 1114 317 c 0,18,19
- 1229 395 1229 395 1229 543 c 0,20,21
- 1229 705 1229 705 1096 788 c 0,22,23
- 987 856 987 856 811 856 c 1,24,-1
- 811 1057 l 1,25,-1
- 1208 1057 l 1,26,-1
- 1208 1204 l 1,27,-1
- 674 1204 l 1,28,-1
- 674 735 l 1,29,30
- 709 743 709 743 762 743 c 0,31,32
- 872 743 872 743 944 696 c 0,33,34
- 1030 643 1030 643 1030 541 c 0,35,36
- 1030 367 1030 367 856 367 c 0,37,38
- 766 367 766 367 657 412 c 1,39,-1
- 657 274 l 1,14,15
-EndSplineSet
-EndChar
-StartChar: uniE254
-Encoding: 57940 57940 614
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-174 741 m 0,0,1
- 174 1071 174 1071 380 1277 c 128,-1,2
- 586 1483 586 1483 915 1483 c 0,3,4
- 1240 1483 1240 1483 1448 1275 c 0,5,6
- 1655 1066 1655 1066 1655 741 c 0,7,8
- 1655 413 1655 413 1450 207 c 0,9,10
- 1243 0 1243 0 915 0 c 0,11,12
- 586 0 586 0 380 206 c 128,-1,13
- 174 412 174 412 174 741 c 0,0,1
-743 768 m 1,14,-1
- 746 849 l 2,15,16
- 771 1114 771 1114 979 1114 c 0,17,18
- 1074 1114 1074 1114 1206 1061 c 1,19,-1
- 1206 1196 l 1,20,21
- 1088 1229 1088 1229 973 1229 c 0,22,23
- 756 1229 756 1229 645 1077 c 0,24,25
- 549 945 549 945 549 719 c 0,26,27
- 549 520 549 520 631 395 c 0,28,29
- 728 250 728 250 918 250 c 0,30,31
- 1064 250 1064 250 1159 343 c 0,32,33
- 1253 436 1253 436 1253 584 c 0,34,35
- 1253 708 1253 708 1171 791 c 0,36,37
- 1091 874 1091 874 967 874 c 0,38,39
- 830 874 830 874 743 768 c 1,14,-1
-1067 555 m 0,40,41
- 1067 365 1067 365 915 365 c 0,42,43
- 835 365 835 365 788 436 c 0,44,45
- 750 497 750 497 750 582 c 0,46,47
- 750 653 750 653 796 705 c 0,48,49
- 841 756 841 756 911 756 c 0,50,51
- 1067 756 1067 756 1067 555 c 0,40,41
-EndSplineSet
-EndChar
-StartChar: uniE255
-Encoding: 57941 57941 615
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-662 238 m 1,14,-1
- 868 238 l 1,15,16
- 874 538 874 538 1257 1020 c 1,17,-1
- 1257 1171 l 1,18,-1
- 623 1171 l 1,19,-1
- 623 1020 l 1,20,-1
- 1106 1020 l 1,21,22
- 854 678 854 678 838 651 c 0,23,24
- 692 424 692 424 662 238 c 1,14,-1
-EndSplineSet
-EndChar
-StartChar: uniE256
-Encoding: 57942 57942 616
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-758 770 m 1,14,15
- 572 663 572 663 571 500 c 0,16,17
- 571 376 571 376 682 305 c 0,18,19
- 776 248 776 248 909 248 c 0,20,21
- 1047 248 1047 248 1147 315 c 0,22,23
- 1260 392 1260 392 1260 522 c 0,24,25
- 1260 682 1260 682 1059 784 c 1,26,27
- 1217 894 1217 894 1217 1018 c 0,28,29
- 1217 1121 1217 1121 1122 1180 c 0,30,31
- 1042 1227 1042 1227 932 1227 c 0,32,33
- 808 1227 808 1227 723 1169 c 0,34,35
- 623 1102 623 1102 623 985 c 0,36,37
- 623 858 623 858 758 770 c 1,14,15
-963 838 m 1,38,39
- 782 929 782 929 782 1008 c 0,40,41
- 782 1110 782 1110 915 1110 c 0,42,43
- 1055 1110 1055 1110 1055 991 c 0,44,45
- 1055 908 1055 908 963 838 c 1,38,39
-850 709 m 1,46,47
- 1090 583 1090 583 1090 494 c 0,48,49
- 1090 433 1090 433 1040 397 c 0,50,51
- 991 362 991 362 928 362 c 0,52,53
- 855 362 855 362 801 411 c 0,54,55
- 748 458 748 458 748 530 c 0,56,57
- 748 625 748 625 850 709 c 1,46,47
-EndSplineSet
-EndChar
-StartChar: uniE257
-Encoding: 57943 57943 617
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-1094 707 m 1,14,15
- 1094 572 1094 572 1042 479 c 0,16,17
- 978 367 978 367 854 367 c 0,18,19
- 749 367 749 367 633 416 c 1,20,-1
- 633 281 l 1,21,22
- 766 248 766 248 856 248 c 0,23,24
- 1075 248 1075 248 1188 403 c 0,25,26
- 1288 539 1288 539 1288 766 c 0,27,28
- 1288 964 1288 964 1206 1085 c 0,29,30
- 1109 1227 1109 1227 922 1227 c 0,31,32
- 774 1227 774 1227 679 1134 c 0,33,34
- 584 1040 584 1040 584 895 c 0,35,36
- 584 772 584 772 668 686 c 0,37,38
- 752 600 752 600 874 600 c 0,39,40
- 1005 600 1005 600 1094 707 c 1,14,15
-770 924 m 0,41,42
- 770 1114 770 1114 922 1114 c 0,43,44
- 1006 1114 1006 1114 1051 1042 c 0,45,46
- 1087 980 1087 980 1087 893 c 0,47,48
- 1087 824 1087 824 1041 770 c 0,49,50
- 996 717 996 717 926 717 c 0,51,52
- 770 717 770 717 770 924 c 0,41,42
-EndSplineSet
-EndChar
-StartChar: uniE258
-Encoding: 57944 57944 618
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 741 m 0,0,1
- 172 1071 172 1071 378 1277 c 128,-1,2
- 584 1483 584 1483 913 1483 c 0,3,4
- 1238 1483 1238 1483 1446 1275 c 0,5,6
- 1653 1066 1653 1066 1653 741 c 0,7,8
- 1653 414 1653 414 1446 207 c 0,9,10
- 1240 0 1240 0 913 0 c 0,11,12
- 584 0 584 0 378 206 c 128,-1,13
- 172 412 172 412 172 741 c 0,0,1
-524 279 m 1,14,-1
- 711 279 l 1,15,-1
- 711 1223 l 1,16,-1
- 395 1194 l 1,17,-1
- 399 1102 l 1,18,-1
- 524 1102 l 1,19,-1
- 524 279 l 1,14,-1
-1153 254 m 0,20,21
- 1315 254 1315 254 1399 424 c 0,22,23
- 1466 558 1466 558 1466 739 c 0,24,25
- 1466 921 1466 921 1399 1055 c 0,26,27
- 1315 1229 1315 1229 1153 1229 c 128,-1,28
- 991 1229 991 1229 907 1055 c 0,29,30
- 840 921 840 921 840 739 c 0,31,32
- 840 558 840 558 907 424 c 0,33,34
- 991 254 991 254 1153 254 c 0,20,21
-1153 371 m 0,35,36
- 1030 371 1030 371 1030 739 c 0,37,38
- 1030 1110 1030 1110 1153 1110 c 0,39,40
- 1278 1110 1278 1110 1278 739 c 0,41,42
- 1278 371 1278 371 1153 371 c 0,35,36
-EndSplineSet
-EndChar
-StartChar: uniE259
-Encoding: 57945 57945 619
-Width: 1617
-GlyphClass: 2
-Flags: W
-Fore
-170 594 m 1,0,-1
- 170 799 l 1,1,2
- 931 802 l 2,3,4
- 1082 801 1082 801 1094 798 c 1,5,-1
- 776 1139 l 1,6,-1
- 926 1280 l 1,7,-1
- 1452 696 l 1,8,-1
- 926 115 l 1,9,-1
- 776 256 l 1,10,-1
- 1088 595 l 1,11,12
- 1077 592 1077 592 781 592 c 2,13,-1
- 170 594 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE25A
-Encoding: 57946 57946 620
-Width: 1662
-GlyphClass: 2
-Flags: W
-Fore
-1251 975 m 1,0,-1
- 1231 973 l 2,1,2
- 1217 967 1217 967 1217 950 c 0,3,4
- 1217 889 1217 889 1395 643 c 1,5,-1
- 1382 633 l 1,6,-1
- 33 633 l 1,7,8
- 12 624 12 624 12 590 c 0,9,10
- 12 557 12 557 33 545 c 1,11,-1
- 1395 535 l 1,12,13
- 1218 285 1218 285 1217 231 c 0,14,15
- 1217 203 1217 203 1239 203 c 2,16,-1
- 1257 205 l 1,17,-1
- 1581 590 l 1,18,19
- 1511 656 1511 656 1251 975 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE25B
-Encoding: 57947 57947 621
-Width: 1662
-GlyphClass: 2
-Flags: W
-Fore
-1251 975 m 1,0,-1
- 1231 973 l 2,1,2
- 1217 967 1217 967 1217 950 c 0,3,4
- 1217 889 1217 889 1395 643 c 1,5,-1
- 1382 633 l 1,6,-1
- 33 633 l 1,7,8
- 12 624 12 624 12 590 c 0,9,10
- 12 557 12 557 33 545 c 1,11,-1
- 1395 535 l 1,12,13
- 1218 285 1218 285 1217 231 c 0,14,15
- 1217 203 1217 203 1239 203 c 2,16,-1
- 1257 205 l 1,17,-1
- 1581 590 l 1,18,19
- 1511 656 1511 656 1251 975 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE25C
-Encoding: 57948 57948 622
-Width: 2048
-GlyphClass: 2
-Flags: W
-EndChar
-StartChar: uniE25D
-Encoding: 57949 57949 623
-Width: 1531
-GlyphClass: 2
-Flags: W
-Fore
-469 147 m 1,0,-1
- 465 160 l 1,1,2
- 607 216 607 216 754 309 c 1,3,4
- 450 520 450 520 217 956 c 1,5,-1
- 451 1143 l 1,6,7
- 699 716 699 716 954 524 c 1,8,9
- 1006 673 1006 673 1036 854 c 1,10,-1
- 1047 856 l 1,11,-1
- 1380 39 l 1,12,-1
- 469 147 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE25E
-Encoding: 57950 57950 624
-Width: 1531
-GlyphClass: 2
-Flags: W
-Fore
-1237 262 m 1,0,-1
- 1227 260 l 1,1,2
- 1156 400 1156 400 1051 535 c 1,3,4
- 867 214 867 214 455 -57 c 1,5,-1
- 248 160 l 1,6,7
- 654 449 654 449 819 717 c 1,8,9
- 663 753 663 753 483 768 c 1,10,-1
- 481 776 l 1,11,-1
- 1268 1182 l 1,12,-1
- 1237 262 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE25F
-Encoding: 57951 57951 625
-Width: 1630
-GlyphClass: 2
-Flags: W
-Fore
-174 0 m 1,0,-1
- 602 739 l 1,1,-1
- 174 1481 l 1,2,-1
- 1456 739 l 1,3,-1
- 174 0 l 1,0,-1
-1358 739 m 1,4,-1
- 309 1346 l 1,5,-1
- 659 739 l 1,6,-1
- 1358 739 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE260
-Encoding: 57952 57952 626
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-1110 492 m 1,0,-1
- 1110 248 l 1,1,-1
- 1604 741 l 1,2,-1
- 1110 1235 l 1,3,-1
- 1110 991 l 1,4,-1
- 215 991 l 1,5,6
- 297 1214 297 1214 486 1349 c 0,7,8
- 677 1483 677 1483 913 1483 c 0,9,10
- 1238 1483 1238 1483 1446 1275 c 0,11,12
- 1653 1066 1653 1066 1653 741 c 0,13,14
- 1653 414 1653 414 1446 207 c 0,15,16
- 1240 0 1240 0 913 0 c 0,17,18
- 673 0 673 0 485 133 c 0,19,20
- 297 267 297 267 215 492 c 1,21,-1
- 1110 492 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE261
-Encoding: 57953 57953 627
-Width: 1980
-GlyphClass: 2
-Flags: W
-Fore
-1815 735 m 1,0,-1
- 1815 686 l 1,1,2
- 1496 512 1496 512 1360 340 c 1,3,-1
- 1346 340 l 1,4,5
- 1339 378 1339 378 1339 418 c 0,6,7
- 1339 472 1339 472 1386 545 c 2,8,-1
- 1473 655 l 1,9,-1
- 756 649 l 1,10,11
- 642 581 642 581 545 414 c 1,12,-1
- 117 414 l 1,13,14
- 141 491 141 491 223 575 c 2,15,-1
- 369 707 l 1,16,17
- 249 810 249 810 223 836 c 0,18,19
- 142 917 142 917 117 997 c 1,20,-1
- 545 997 l 1,21,22
- 642 830 642 830 756 762 c 1,23,-1
- 1473 768 l 1,24,25
- 1339 938 1339 938 1339 995 c 0,26,27
- 1339 1035 1339 1035 1346 1071 c 1,28,-1
- 1360 1071 l 1,29,30
- 1546 830 1546 830 1815 735 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE30D
-Encoding: 58125 58125 628
-Width: 1960
-GlyphClass: 2
-Flags: W
-Fore
-1942 935 m 1,0,-1
- 1007 935 l 1,1,-1
- 1007 1870 l 1,2,-1
- 1942 1870 l 1,3,-1
- 1942 935 l 1,0,-1
-1007 0 m 1,4,-1
- 72 0 l 1,5,-1
- 72 935 l 1,6,-1
- 1007 935 l 1,7,-1
- 1007 0 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE30E
-Encoding: 58126 58126 629
-Width: 2227
-GlyphClass: 2
-Flags: W
-Fore
-1092 1859 m 1,0,-1
- 2113 1859 l 1,1,-1
- 1188 0 l 1,2,-1
- 149 0 l 1,3,-1
- 1092 1859 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE30F
-Encoding: 58127 58127 630
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-510 65 m 1,0,-1
- 1535 65 l 1,1,-1
- 1535 -190 l 1,2,-1
- 510 -190 l 1,3,-1
- 510 65 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE310
-Encoding: 58128 58128 631
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-1792 -192 m 1,0,-1
- 256 -192 l 1,1,-1
- 256 1216 l 1,2,-1
- 1792 1216 l 1,3,-1
- 1792 -192 l 1,0,-1
-1664 -64 m 1,4,-1
- 1664 960 l 1,5,-1
- 384 960 l 1,6,-1
- 384 -64 l 1,7,-1
- 1664 -64 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE311
-Encoding: 58129 58129 632
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-1792 320 m 1,0,-1
- 1408 320 l 1,1,-1
- 1408 -192 l 1,2,-1
- 256 -192 l 1,3,-1
- 256 704 l 1,4,-1
- 640 704 l 1,5,-1
- 640 1216 l 1,6,-1
- 1792 1216 l 1,7,-1
- 1792 320 l 1,0,-1
-1664 448 m 1,8,-1
- 1664 960 l 1,9,-1
- 768 960 l 1,10,-1
- 768 704 l 1,11,-1
- 1408 704 l 1,12,-1
- 1408 448 l 1,13,-1
- 1664 448 l 1,8,-1
-1280 -64 m 1,14,-1
- 1280 448 l 1,15,-1
- 384 448 l 1,16,-1
- 384 -64 l 1,17,-1
- 1280 -64 l 1,14,-1
-EndSplineSet
-EndChar
-StartChar: uniE312
-Encoding: 58130 58130 633
-Width: 1624
-GlyphClass: 2
-Flags: W
-Fore
-948 101 m 1,0,-1
- 306 744 l 1,1,-1
- 948 1386 l 1,2,-1
- 948 101 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE313
-Encoding: 58131 58131 634
-Width: 1624
-GlyphClass: 2
-Flags: W
-Fore
-614 109 m 1,0,-1
- 1256 752 l 1,1,-1
- 614 1394 l 1,2,-1
- 614 109 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE314
-Encoding: 58132 58132 635
-Width: 1683
-GlyphClass: 2
-Flags: W
-Fore
-1446 553 m 1,0,-1
- 162 553 l 1,1,-1
- 804 1196 l 1,2,-1
- 1446 553 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE315
-Encoding: 58133 58133 636
-Width: 1676
-GlyphClass: 2
-Flags: W
-Fore
-1460 1094 m 1,0,-1
- 818 452 l 1,1,-1
- 176 1094 l 1,2,-1
- 1460 1094 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE316
-Encoding: 58134 58134 637
-Width: 1623
-GlyphClass: 2
-Flags: W
-Fore
-1450 97 m 1,0,-1
- 808 739 l 1,1,-1
- 1450 1382 l 1,2,-1
- 1450 97 l 1,0,-1
-758 97 m 1,3,-1
- 116 739 l 1,4,-1
- 758 1382 l 1,5,-1
- 758 97 l 1,3,-1
-EndSplineSet
-EndChar
-StartChar: uniE317
-Encoding: 58135 58135 638
-Width: 1627
-GlyphClass: 2
-Flags: W
-Fore
-1512 733 m 1,0,-1
- 870 91 l 1,1,-1
- 870 1376 l 1,2,-1
- 1512 733 l 1,0,-1
-820 733 m 1,3,-1
- 178 91 l 1,4,-1
- 178 1376 l 1,5,-1
- 820 733 l 1,3,-1
-EndSplineSet
-EndChar
-StartChar: uniE318
-Encoding: 58136 58136 639
-Width: 1629
-GlyphClass: 2
-Flags: W
-Fore
-1530 94 m 1,0,-1
- 888 736 l 1,1,-1
- 1530 1379 l 1,2,-1
- 1530 94 l 1,0,-1
-838 94 m 1,3,-1
- 195 736 l 1,4,-1
- 838 1379 l 1,5,-1
- 838 94 l 1,3,-1
-169 94 m 1,6,-1
- 41 94 l 1,7,-1
- 41 1379 l 1,8,-1
- 169 1379 l 1,9,-1
- 169 94 l 1,6,-1
-EndSplineSet
-EndChar
-StartChar: uniE319
-Encoding: 58137 58137 640
-Width: 1627
-GlyphClass: 2
-Flags: W
-Fore
-1559 91 m 1,0,-1
- 1431 91 l 1,1,-1
- 1431 1376 l 1,2,-1
- 1559 1376 l 1,3,-1
- 1559 91 l 1,0,-1
-1405 733 m 1,4,-1
- 762 91 l 1,5,-1
- 762 1376 l 1,6,-1
- 1405 733 l 1,4,-1
-712 733 m 1,7,-1
- 70 91 l 1,8,-1
- 70 1376 l 1,9,-1
- 712 733 l 1,7,-1
-EndSplineSet
-EndChar
-StartChar: uniE31A
-Encoding: 58138 58138 641
-Width: 1624
-GlyphClass: 2
-Flags: W
-Fore
-1200 83 m 1,0,-1
- 943 83 l 1,1,-1
- 943 1368 l 1,2,-1
- 1200 1368 l 1,3,-1
- 1200 83 l 1,0,-1
-687 83 m 1,4,-1
- 430 83 l 1,5,-1
- 430 1368 l 1,6,-1
- 687 1368 l 1,7,-1
- 687 83 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE31B
-Encoding: 58139 58139 642
-Width: 1624
-GlyphClass: 2
-Flags: W
-Fore
-1370 174 m 1,0,-1
- 214 174 l 1,1,-1
- 214 1330 l 1,2,-1
- 1370 1330 l 1,3,-1
- 1370 174 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE31C
-Encoding: 58140 58140 643
-Width: 1626
-GlyphClass: 2
-Flags: W
-Fore
-784 1330 m 0,0,1
- 1356 1330 1356 1330 1356 758 c 128,-1,2
- 1356 186 1356 186 784 186 c 128,-1,3
- 212 186 212 186 212 758 c 128,-1,4
- 212 1330 212 1330 784 1330 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uniE330
-Encoding: 58160 58160 644
-Width: 1613
-GlyphClass: 2
-Flags: W
-Fore
-1499 1569 m 1,0,-1
- 1534 1518 l 1,1,2
- 1293 1335 1293 1335 1038 1004 c 0,3,4
- 802 694 802 694 659 395 c 1,5,6
- 548 322 548 322 461 252 c 1,7,8
- 326 694 326 694 147 766 c 1,9,10
- 248 881 248 881 346 881 c 0,11,12
- 430 881 430 881 549 600 c 1,13,14
- 931 1245 931 1245 1499 1569 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE346
-Encoding: 58182 58182 645
-Width: 2040
-GlyphClass: 2
-Flags: W
-Fore
-1659 -115 m 1,0,-1
- -75 -115 l 1,1,-1
- -75 1619 l 1,2,-1
- 1659 1619 l 1,3,-1
- 1659 -115 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE34D
-Encoding: 58189 58189 646
-Width: 1962
-GlyphClass: 2
-Flags: W
-Fore
-784 1559 m 0,0,1
- 1585 1559 1585 1559 1585 758 c 128,-1,2
- 1585 -43 1585 -43 784 -43 c 128,-1,3
- -17 -43 -17 -43 -17 758 c 128,-1,4
- -17 1559 -17 1559 784 1559 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uniE38D
-Encoding: 58253 58253 647
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-1538 546 m 2,0,1
- 1538 455 1538 455 1429 392 c 0,2,3
- 1334 338 1334 338 1235 338 c 0,4,5
- 1156 338 1156 338 1096 366 c 0,6,7
- 1018 402 1018 402 1018 471 c 0,8,9
- 1018 557 1018 557 1135 611 c 0,10,11
- 1229 655 1229 655 1326 655 c 0,12,13
- 1395 655 1395 655 1448 634 c 1,14,-1
- 1448 1082 l 1,15,-1
- 850 817 l 1,16,-1
- 850 198 l 2,17,18
- 850 108 850 108 743 43 c 0,19,20
- 649 -14 649 -14 552 -14 c 0,21,22
- 474 -14 474 -14 414 14 c 0,23,24
- 336 49 336 49 336 119 c 0,25,26
- 336 204 336 204 452 259 c 0,27,28
- 546 303 546 303 643 303 c 0,29,30
- 709 303 709 303 761 283 c 1,31,-1
- 761 1081 l 1,32,-1
- 1538 1423 l 1,33,-1
- 1538 546 l 2,0,1
-EndSplineSet
-EndChar
-StartChar: uniE39D
-Encoding: 58269 58269 648
-Width: 1877
-GlyphClass: 2
-Flags: W
-Fore
-1686 -86 m 1,0,-1
- 140 -86 l 1,1,-1
- 140 356 l 1,2,-1
- 267 358 l 1,3,-1
- 267 434 l 1,4,-1
- 199 436 l 1,5,-1
- 199 1558 l 1,6,-1
- 1626 1558 l 1,7,-1
- 1626 436 l 1,8,-1
- 1556 434 l 1,9,-1
- 1556 358 l 1,10,-1
- 1686 356 l 1,11,-1
- 1686 -86 l 1,0,-1
-1573 490 m 1,12,-1
- 1573 1504 l 1,13,-1
- 253 1504 l 1,14,-1
- 253 490 l 1,15,-1
- 1573 490 l 1,12,-1
-1501 358 m 1,16,-1
- 1501 434 l 1,17,-1
- 322 434 l 1,18,-1
- 322 358 l 1,19,-1
- 1501 358 l 1,16,-1
-1632 -33 m 1,20,-1
- 1632 303 l 1,21,-1
- 193 303 l 1,22,-1
- 193 -33 l 1,23,-1
- 1632 -33 l 1,20,-1
-1460 1000 m 0,24,25
- 1460 846 1460 846 1435 600 c 1,26,-1
- 390 600 l 1,27,28
- 365 846 365 846 365 1000 c 0,29,30
- 365 1156 365 1156 390 1398 c 1,31,-1
- 1435 1398 l 1,32,33
- 1460 1152 1460 1152 1460 1000 c 0,24,25
-1405 1000 m 0,34,35
- 1405 1207 1405 1207 1384 1344 c 1,36,-1
- 441 1344 l 1,37,38
- 421 1207 421 1207 421 1000 c 0,39,40
- 421 791 421 791 441 654 c 1,41,-1
- 1384 654 l 1,42,43
- 1405 791 1405 791 1405 1000 c 0,34,35
-1351 178 m 1,44,45
- 1372 192 1372 192 1413 192 c 0,46,47
- 1452 192 1452 192 1472 178 c 1,48,-1
- 1556 178 l 1,49,-1
- 1556 127 l 1,50,-1
- 1472 127 l 1,51,52
- 1452 112 1452 112 1413 112 c 0,53,54
- 1372 112 1372 112 1351 127 c 1,55,-1
- 1241 127 l 1,56,-1
- 1241 178 l 1,57,-1
- 1351 178 l 1,44,45
-324 182 m 1,58,-1
- 874 182 l 1,59,-1
- 874 82 l 1,60,-1
- 324 82 l 1,61,-1
- 324 182 l 1,58,-1
-359 155 m 1,62,-1
- 349 145 l 1,63,-1
- 359 135 l 1,64,-1
- 851 135 l 1,65,-1
- 861 145 l 1,66,-1
- 851 155 l 1,67,-1
- 359 155 l 1,62,-1
-EndSplineSet
-EndChar
-StartChar: uniE3A3
-Encoding: 58275 58275 649
-Width: 1340
-GlyphClass: 2
-Flags: W
-Fore
-1212 368 m 1,0,1
- 1146 274 1146 274 954 182 c 1,2,3
- 621 312 621 312 429.5 510 c 128,-1,4
- 238 708 238 708 123 1046 c 1,5,6
- 182 1154 182 1154 202 1186 c 0,7,8
- 254 1264 254 1264 314 1300 c 1,9,-1
- 556 995 l 1,10,11
- 502 918 502 918 434 888 c 1,12,13
- 558 659 558 659 807 497 c 1,14,15
- 844 569 844 569 921 617 c 1,16,-1
- 1212 368 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE3A9
-Encoding: 58281 58281 650
-Width: 1378
-GlyphClass: 2
-Flags: W
-Fore
-1007 0 m 1,0,-1
- 350 0 l 1,1,-1
- 350 1057 l 1,2,-1
- 1007 1057 l 1,3,-1
- 1007 0 l 1,0,-1
-909 807 m 1,4,-1
- 909 905 l 1,5,-1
- 448 905 l 1,6,-1
- 448 807 l 1,7,-1
- 909 807 l 1,4,-1
-869 573 m 1,8,-1
- 869 650 l 1,9,-1
- 769 650 l 1,10,-1
- 769 573 l 1,11,-1
- 869 573 l 1,8,-1
-869 453 m 1,12,-1
- 869 530 l 1,13,-1
- 769 530 l 1,14,-1
- 769 453 l 1,15,-1
- 869 453 l 1,12,-1
-726 573 m 1,16,-1
- 726 650 l 1,17,-1
- 626 650 l 1,18,-1
- 626 573 l 1,19,-1
- 726 573 l 1,16,-1
-869 333 m 1,20,-1
- 869 410 l 1,21,-1
- 769 410 l 1,22,-1
- 769 333 l 1,23,-1
- 869 333 l 1,20,-1
-726 453 m 1,24,-1
- 726 530 l 1,25,-1
- 626 530 l 1,26,-1
- 626 453 l 1,27,-1
- 726 453 l 1,24,-1
-583 573 m 1,28,-1
- 583 650 l 1,29,-1
- 483 650 l 1,30,-1
- 483 573 l 1,31,-1
- 583 573 l 1,28,-1
-869 213 m 1,32,-1
- 869 290 l 1,33,-1
- 769 290 l 1,34,-1
- 769 213 l 1,35,-1
- 869 213 l 1,32,-1
-726 333 m 1,36,-1
- 726 410 l 1,37,-1
- 626 410 l 1,38,-1
- 626 333 l 1,39,-1
- 726 333 l 1,36,-1
-583 453 m 1,40,-1
- 583 530 l 1,41,-1
- 483 530 l 1,42,-1
- 483 453 l 1,43,-1
- 583 453 l 1,40,-1
-726 213 m 1,44,-1
- 726 290 l 1,45,-1
- 626 290 l 1,46,-1
- 626 213 l 1,47,-1
- 726 213 l 1,44,-1
-583 333 m 1,48,-1
- 583 410 l 1,49,-1
- 483 410 l 1,50,-1
- 483 333 l 1,51,-1
- 583 333 l 1,48,-1
-583 213 m 1,52,-1
- 583 290 l 1,53,-1
- 483 290 l 1,54,-1
- 483 213 l 1,55,-1
- 583 213 l 1,52,-1
-EndSplineSet
-EndChar
-StartChar: uniE3AA
-Encoding: 58282 58282 651
-Width: 2244
-GlyphClass: 2
-Flags: W
-Fore
-180 1248 m 1,0,-1
- 266 1488 l 1,1,-1
- 1068 1488 l 1,2,-1
- 1188 1284 l 1,3,-1
- 2080 1284 l 1,4,-1
- 2080 0 l 1,5,-1
- 180 0 l 1,6,-1
- 180 1248 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE3AB
-Encoding: 58283 58283 652
-Width: 1662
-GlyphClass: 2
-Flags: W
-Fore
-1410 115 m 2,0,1
- 1410 93 1410 93 1388 93 c 2,2,-1
- 260 93 l 2,3,4
- 238 93 238 93 238 115 c 2,5,-1
- 238 1243 l 2,6,7
- 238 1265 238 1265 260 1265 c 2,8,-1
- 1388 1265 l 2,9,10
- 1410 1265 1410 1265 1410 1243 c 2,11,-1
- 1410 115 l 2,0,1
-1355 148 m 1,12,-1
- 1355 1210 l 1,13,-1
- 1220 1210 l 1,14,-1
- 1220 646 l 2,15,16
- 1220 624 1220 624 1197 624 c 2,17,-1
- 437 632 l 1,18,-1
- 428 646 l 1,19,-1
- 428 1210 l 1,20,-1
- 295 1210 l 1,21,-1
- 295 148 l 1,22,-1
- 519 148 l 1,23,-1
- 519 443 l 1,24,-1
- 1136 443 l 1,25,-1
- 1136 148 l 1,26,-1
- 1355 148 l 1,12,-1
-672 148 m 1,27,-1
- 672 390 l 1,28,-1
- 576 390 l 1,29,-1
- 576 148 l 1,30,-1
- 672 148 l 1,27,-1
-506 1144 m 1,31,-1
- 506 1085 l 1,32,-1
- 1148 1085 l 1,33,-1
- 1148 1144 l 1,34,-1
- 506 1144 l 1,31,-1
-506 1017 m 1,35,-1
- 506 958 l 1,36,-1
- 1148 958 l 1,37,-1
- 1148 1017 l 1,38,-1
- 506 1017 l 1,35,-1
-EndSplineSet
-EndChar
-StartChar: uniE3D0
-Encoding: 58320 58320 653
-Width: 1802
-GlyphClass: 2
-Flags: W
-Fore
-772 1394 m 1,0,1
- 827 1334 827 1334 916 1178 c 0,2,3
- 1004 1026 1004 1026 1054 960 c 0,4,5
- 1133 863 1133 863 1274 842 c 2,6,-1
- 1506 830 l 2,7,8
- 1626 818 1626 818 1668 740 c 1,9,10
- 1633 666 1633 666 1518 648 c 0,11,12
- 1482 642 1482 642 1332 642 c 0,13,14
- 1194 642 1194 642 1138 608 c 0,15,16
- 1077 570 1077 570 952 364 c 0,17,18
- 802 118 802 118 772 82 c 1,19,20
- 731 66 731 66 692 66 c 2,21,-1
- 680 66 l 1,22,-1
- 606 68 l 1,23,-1
- 580 90 l 1,24,25
- 600 155 600 155 734 338 c 0,26,27
- 846 489 846 489 846 602 c 1,28,-1
- 832 624 l 1,29,30
- 724 660 724 660 422 678 c 1,31,-1
- 392 664 l 1,32,33
- 369 604 369 604 322 494 c 1,34,-1
- 288 480 l 1,35,-1
- 200 488 l 1,36,-1
- 166 514 l 1,37,38
- 192 592 192 592 212 682 c 1,39,40
- 172 702 172 702 118 738 c 1,41,42
- 136 752 136 752 166 766 c 1,43,44
- 133 751 133 751 166 766 c 1,45,46
- 133 751 133 751 166 766 c 1,47,-1
- 150 758 l 1,48,49
- 168 766 l 2,50,51
- 201 781 201 781 212 792 c 1,52,53
- 212 822 212 822 190 882 c 0,54,55
- 169 940 169 940 166 962 c 1,56,-1
- 200 988 l 1,57,-1
- 288 996 l 1,58,-1
- 324 978 l 1,59,60
- 341 928 341 928 394 808 c 1,61,-1
- 424 796 l 1,62,63
- 523 796 523 796 646 814 c 0,64,65
- 812 835 812 835 846 872 c 1,66,67
- 846 986 846 986 732 1136 c 0,68,69
- 600 1317 600 1317 580 1388 c 1,70,-1
- 588 1402 l 1,71,72
- 615 1412 615 1412 652 1412 c 0,73,74
- 721 1412 721 1412 772 1394 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE400
-Encoding: 58368 58368 654
-Width: 2108
-GlyphClass: 2
-Flags: W
-Fore
-1701 430 m 1,0,-1
- 1871 156 l 1,1,-1
- 1815 86 l 1,2,-1
- 1511 170 l 1,3,4
- 1468 211 1468 211 1468 259 c 0,5,6
- 1468 307 1468 307 1511 364 c 0,7,8
- 1573 448 1573 448 1638 448 c 2,9,-1
- 1667 444 l 2,10,11
- 1684 440 1684 440 1701 430 c 1,0,-1
-2055 -34 m 1,12,-1
- 1729 468 l 1,13,-1
- 349 1516 l 1,14,-1
- 308 1519 l 1,15,-1
- 269 1515 l 2,16,17
- 193 1498 193 1498 135 1420 c 0,18,19
- 80 1343 80 1343 80 1264 c 2,20,-1
- 84 1222 l 2,21,22
- 88 1201 88 1201 95 1180 c 1,23,-1
- 1485 130 l 1,24,-1
- 2055 -34 l 1,12,-1
-EndSplineSet
-EndChar
-StartChar: uniE401
-Encoding: 58369 58369 655
-Width: 1968
-GlyphClass: 2
-Flags: W
-Fore
-864 700 m 1,0,-1
- 83 109 l 1,1,-1
- 107 98 l 1,2,3
- 266 98 266 98 435 195 c 0,4,5
- 549 259 549 259 726 406 c 0,6,7
- 924 570 924 570 1000 621 c 1,8,9
- 1168 511 1168 511 1361 444 c 1,10,11
- 1215 414 1215 414 1215 289 c 0,12,13
- 1215 199 1215 199 1305 145 c 0,14,15
- 1382 100 1382 100 1477 100 c 0,16,17
- 1686 100 1686 100 1686 260 c 0,18,19
- 1686 335 1686 335 1447 500 c 0,20,21
- 1339 570 1339 570 1127 698 c 1,22,23
- 1379 848 1379 848 1449 895 c 0,24,25
- 1686 1057 1686 1057 1686 1137 c 128,-1,26
- 1686 1217 1686 1217 1614 1262 c 0,27,28
- 1557 1300 1557 1300 1471 1300 c 0,29,30
- 1372 1300 1372 1300 1299 1255 c 0,31,32
- 1215 1202 1215 1202 1215 1108 c 0,33,34
- 1215 979 1215 979 1365 952 c 1,35,36
- 1178 897 1178 897 1000 778 c 1,37,-1
- 734 991 l 2,38,39
- 552 1133 552 1133 421 1202 c 0,40,41
- 244 1298 244 1298 107 1298 c 1,42,-1
- 78 1288 l 1,43,-1
- 864 700 l 1,0,-1
-1481 1231 m 0,44,45
- 1617 1231 1617 1231 1617 1133 c 0,46,47
- 1617 1069 1617 1069 1547 1034 c 0,48,49
- 1492 1006 1492 1006 1422 1006 c 0,50,51
- 1285 1006 1285 1006 1285 1106 c 0,52,53
- 1285 1171 1285 1171 1354 1204 c 0,54,55
- 1408 1231 1408 1231 1481 1231 c 0,44,45
-1418 389 m 0,56,57
- 1617 389 1617 389 1617 268 c 0,58,59
- 1617 168 1617 168 1481 168 c 0,60,61
- 1407 168 1407 168 1356 193 c 0,62,63
- 1289 223 1289 223 1289 289 c 0,64,65
- 1289 389 1289 389 1418 389 c 0,56,57
-EndSplineSet
-EndChar
-StartChar: uniE407
-Encoding: 58375 58375 656
-Width: 2154
-GlyphClass: 2
-Flags: W
-Fore
-2056 1039 m 1,0,1
- 2056 975 2056 975 1989 954 c 0,2,3
- 1947 941 1947 941 1843 941 c 0,4,5
- 1723 941 1723 941 1669 956 c 0,6,7
- 1585 978 1585 978 1579 1049 c 1,8,9
- 1730 1032 1730 1032 1875 1032 c 0,10,11
- 1966 1032 1966 1032 2056 1039 c 1,0,1
-2056 1073 m 1,12,13
- 1970 1066 1970 1066 1919 1066 c 0,14,15
- 1876 1066 1876 1066 1554 1085 c 1,16,17
- 1542 1153 1542 1153 1409 1169 c 1,18,-1
- 1413 1069 l 1,19,20
- 1540 984 1540 984 1647 779 c 0,21,22
- 1751 583 1751 583 1751 451 c 0,23,24
- 1751 325 1751 325 1683 325 c 2,25,-1
- 479 325 l 2,26,27
- 393 325 393 325 393 430 c 0,28,29
- 393 560 393 560 500 768 c 0,30,31
- 613 986 613 986 737 1069 c 1,32,-1
- 737 1169 l 1,33,34
- 607 1154 607 1154 594 1085 c 1,35,36
- 486 1066 486 1066 291 1066 c 0,37,38
- 174 1066 174 1066 92 1073 c 1,39,40
- 103 1272 103 1272 266 1344 c 0,41,42
- 374 1393 374 1393 657 1420 c 0,43,44
- 863 1440 863 1440 1075 1440 c 0,45,46
- 1658 1440 1658 1440 1882 1344 c 0,47,48
- 2050 1274 2050 1274 2056 1073 c 1,12,13
-1339 1179 m 1,49,50
- 1198 1208 1198 1208 1071 1208 c 0,51,52
- 949 1208 949 1208 803 1179 c 1,53,-1
- 852 1093 l 1,54,-1
- 1292 1093 l 1,55,-1
- 1339 1179 l 1,49,50
-1405 759 m 0,56,57
- 1405 840 1405 840 1294 890 c 0,58,59
- 1203 931 1203 931 1075 931 c 0,60,61
- 951 931 951 931 856 888 c 0,62,63
- 743 840 743 840 743 759 c 0,64,65
- 743 677 743 677 856 629 c 0,66,67
- 951 586 951 586 1075 586 c 0,68,69
- 1199 586 1199 586 1294 629 c 0,70,71
- 1405 677 1405 677 1405 759 c 0,56,57
-1571 427 m 1,72,-1
- 1591 441 l 1,73,-1
- 1571 455 l 1,74,-1
- 584 455 l 1,75,-1
- 563 441 l 1,76,-1
- 584 427 l 1,77,-1
- 1571 427 l 1,72,-1
-1354 825 m 0,78,79
- 1354 792 1354 792 1305 792 c 0,80,81
- 1253 792 1253 792 1253 825 c 0,82,83
- 1253 860 1253 860 1305 860 c 0,84,85
- 1354 860 1354 860 1354 825 c 0,78,79
-1249 876 m 0,86,87
- 1249 841 1249 841 1198 841 c 0,88,89
- 1149 841 1149 841 1149 876 c 0,90,91
- 1149 908 1149 908 1198 908 c 0,92,93
- 1249 908 1249 908 1249 876 c 0,86,87
-1386 744 m 0,94,95
- 1386 709 1386 709 1335 709 c 0,96,97
- 1286 709 1286 709 1286 744 c 0,98,99
- 1286 777 1286 777 1335 777 c 0,100,101
- 1386 777 1386 777 1386 744 c 0,94,95
-1096 890 m 0,102,103
- 1096 855 1096 855 1044 855 c 0,104,105
- 995 855 995 855 995 890 c 0,106,107
- 995 923 995 923 1044 923 c 0,108,109
- 1096 923 1096 923 1096 890 c 0,102,103
-1317 666 m 0,110,111
- 1317 632 1317 632 1266 632 c 0,112,113
- 1217 632 1217 632 1217 666 c 0,114,115
- 1217 699 1217 699 1266 699 c 0,116,117
- 1317 699 1317 699 1317 666 c 0,110,111
-1280 761 m 0,118,119
- 1280 717 1280 717 1206 683 c 0,120,121
- 1142 656 1142 656 1071 656 c 0,122,123
- 1002 656 1002 656 940 683 c 0,124,125
- 868 714 868 714 868 761 c 0,126,127
- 868 806 868 806 946 833 c 0,128,129
- 1009 853 1009 853 1079 853 c 0,130,131
- 1148 853 1148 853 1208 831 c 0,132,133
- 1280 807 1280 807 1280 761 c 0,118,119
-954 855 m 0,134,135
- 954 822 954 822 905 822 c 0,136,137
- 854 822 854 822 854 855 c 0,138,139
- 854 890 854 890 905 890 c 0,140,141
- 954 890 954 890 954 855 c 0,134,135
-1192 626 m 0,142,143
- 1192 592 1192 592 1141 592 c 0,144,145
- 1092 592 1092 592 1092 626 c 0,146,147
- 1092 659 1092 659 1141 659 c 0,148,149
- 1192 659 1192 659 1192 626 c 0,142,143
-868 784 m 0,150,151
- 868 751 868 751 819 751 c 0,152,153
- 768 751 768 751 768 784 c 0,154,155
- 768 818 768 818 819 818 c 0,156,157
- 868 818 868 818 868 784 c 0,150,151
-1030 632 m 0,158,159
- 1030 599 1030 599 981 599 c 0,160,161
- 930 599 930 599 930 632 c 0,162,163
- 930 666 930 666 981 666 c 0,164,165
- 1030 666 1030 666 1030 632 c 0,158,159
-897 682 m 0,166,167
- 897 649 897 649 848 649 c 0,168,169
- 797 649 797 649 797 682 c 0,170,171
- 797 716 797 716 848 716 c 0,172,173
- 897 716 897 716 897 682 c 0,166,167
-571 1049 m 1,174,175
- 565 980 565 980 469 954 c 0,176,177
- 410 941 410 941 289 941 c 0,178,179
- 197 941 197 941 154 957 c 0,180,181
- 94 980 94 980 94 1039 c 1,182,183
- 182 1033 182 1033 256 1033 c 0,184,185
- 418 1033 418 1033 571 1049 c 1,174,175
-EndSplineSet
-EndChar
-StartChar: uniE409
-Encoding: 58377 58377 657
-Width: 1978
-GlyphClass: 2
-Flags: W
-Fore
-1819 166 m 1,0,-1
- 156 166 l 1,1,-1
- 156 1202 l 1,2,-1
- 1819 1202 l 1,3,-1
- 1819 166 l 1,0,-1
-1765 285 m 1,4,-1
- 1765 1087 l 1,5,-1
- 1241 705 l 1,6,-1
- 1765 285 l 1,4,-1
-733 705 m 1,7,-1
- 209 1087 l 1,8,-1
- 209 285 l 1,9,-1
- 733 705 l 1,7,-1
-1757 219 m 1,10,-1
- 1194 670 l 1,11,-1
- 987 520 l 1,12,-1
- 782 668 l 1,13,-1
- 217 219 l 1,14,-1
- 1757 219 l 1,10,-1
-358 1139 m 1,15,-1
- 358 1069 l 1,16,-1
- 1620 1069 l 1,17,-1
- 1620 1137 l 1,18,-1
- 358 1139 l 1,15,-1
-EndSplineSet
-EndChar
-StartChar: uniE40A
-Encoding: 58378 58378 658
-Width: 2002
-GlyphClass: 2
-Flags: W
-Fore
-1812 135 m 1,0,-1
- 186 135 l 1,1,-1
- 186 1249 l 1,2,-1
- 1812 1249 l 1,3,-1
- 1812 135 l 1,0,-1
-1757 188 m 1,4,-1
- 1757 1198 l 1,5,-1
- 240 1198 l 1,6,-1
- 240 188 l 1,7,-1
- 1757 188 l 1,4,-1
-1608 838 m 1,8,-1
- 1405 838 l 1,9,-1
- 1405 1073 l 1,10,-1
- 1608 1073 l 1,11,-1
- 1608 838 l 1,8,-1
-1462 1010 m 1,12,-1
- 1462 903 l 1,13,-1
- 1556 903 l 1,14,-1
- 1556 1010 l 1,15,-1
- 1462 1010 l 1,12,-1
-1024 315 m 1,16,-1
- 973 315 l 1,17,-1
- 973 1071 l 1,18,-1
- 1024 1071 l 1,19,-1
- 1024 315 l 1,16,-1
-1628 596 m 1,20,-1
- 1147 596 l 1,21,-1
- 1147 647 l 1,22,-1
- 1628 647 l 1,23,-1
- 1628 596 l 1,20,-1
-1628 410 m 1,24,-1
- 1147 410 l 1,25,-1
- 1147 461 l 1,26,-1
- 1628 461 l 1,27,-1
- 1628 410 l 1,24,-1
-1636 510 m 1,28,-1
- 1155 510 l 1,29,-1
- 1155 561 l 1,30,-1
- 1636 561 l 1,31,-1
- 1636 510 l 1,28,-1
-EndSplineSet
-EndChar
-StartChar: uniE41B
-Encoding: 58395 58395 659
-Width: 1662
-GlyphClass: 2
-Flags: W
-Fore
-1410 115 m 2,0,1
- 1410 93 1410 93 1388 93 c 2,2,-1
- 260 93 l 2,3,4
- 238 93 238 93 238 115 c 2,5,-1
- 238 1243 l 2,6,7
- 238 1265 238 1265 260 1265 c 2,8,-1
- 1388 1265 l 2,9,10
- 1410 1265 1410 1265 1410 1243 c 2,11,-1
- 1410 115 l 2,0,1
-1355 148 m 1,12,-1
- 1355 1210 l 1,13,-1
- 1220 1210 l 1,14,-1
- 1220 646 l 2,15,16
- 1220 624 1220 624 1197 624 c 2,17,-1
- 437 632 l 1,18,-1
- 428 646 l 1,19,-1
- 428 1210 l 1,20,-1
- 295 1210 l 1,21,-1
- 295 148 l 1,22,-1
- 519 148 l 1,23,-1
- 519 443 l 1,24,-1
- 1136 443 l 1,25,-1
- 1136 148 l 1,26,-1
- 1355 148 l 1,12,-1
-672 148 m 1,27,-1
- 672 390 l 1,28,-1
- 576 390 l 1,29,-1
- 576 148 l 1,30,-1
- 672 148 l 1,27,-1
-506 1144 m 1,31,-1
- 506 1085 l 1,32,-1
- 1148 1085 l 1,33,-1
- 1148 1144 l 1,34,-1
- 506 1144 l 1,31,-1
-506 1017 m 1,35,-1
- 506 958 l 1,36,-1
- 1148 958 l 1,37,-1
- 1148 1017 l 1,38,-1
- 506 1017 l 1,35,-1
-EndSplineSet
-EndChar
-StartChar: uniE41C
-Encoding: 58396 58396 660
-Width: 1662
-GlyphClass: 2
-Flags: W
-Fore
-1410 115 m 2,0,1
- 1410 93 1410 93 1388 93 c 2,2,-1
- 260 93 l 2,3,4
- 238 93 238 93 238 115 c 2,5,-1
- 238 1243 l 2,6,7
- 238 1265 238 1265 260 1265 c 2,8,-1
- 1388 1265 l 2,9,10
- 1410 1265 1410 1265 1410 1243 c 2,11,-1
- 1410 115 l 2,0,1
-1355 148 m 1,12,-1
- 1355 1210 l 1,13,-1
- 1220 1210 l 1,14,-1
- 1220 646 l 2,15,16
- 1220 624 1220 624 1197 624 c 2,17,-1
- 437 632 l 1,18,-1
- 428 646 l 1,19,-1
- 428 1210 l 1,20,-1
- 295 1210 l 1,21,-1
- 295 148 l 1,22,-1
- 519 148 l 1,23,-1
- 519 443 l 1,24,-1
- 1136 443 l 1,25,-1
- 1136 148 l 1,26,-1
- 1355 148 l 1,12,-1
-672 148 m 1,27,-1
- 672 390 l 1,28,-1
- 576 390 l 1,29,-1
- 576 148 l 1,30,-1
- 672 148 l 1,27,-1
-506 1144 m 1,31,-1
- 506 1085 l 1,32,-1
- 1148 1085 l 1,33,-1
- 1148 1144 l 1,34,-1
- 506 1144 l 1,31,-1
-506 1017 m 1,35,-1
- 506 958 l 1,36,-1
- 1148 958 l 1,37,-1
- 1148 1017 l 1,38,-1
- 506 1017 l 1,35,-1
-EndSplineSet
-EndChar
-StartChar: uniE41D
-Encoding: 58397 58397 661
-Width: 1904
-GlyphClass: 2
-Flags: W
-Fore
-1835 918 m 1,0,-1
- 1792 758 l 2,1,2
- 1792 756 1792 756 1804 276 c 1,3,-1
- 1485 289 l 1,4,-1
- 1475 328 l 1,5,-1
- 1315 258 l 1,6,-1
- 1208 256 l 1,7,-1
- 1154 259 l 1,8,-1
- 1073 274 l 1,9,-1
- 985 297 l 1,10,-1
- 860 395 l 1,11,-1
- 809 403 l 1,12,-1
- 754 307 l 1,13,-1
- 690 270 l 1,14,-1
- 633 291 l 1,15,-1
- 614 276 l 1,16,-1
- 541 270 l 1,17,-1
- 508 287 l 1,18,-1
- 487 264 l 1,19,-1
- 428 270 l 1,20,-1
- 375 297 l 1,21,-1
- 342 244 l 1,22,-1
- 133 84 l 1,23,-1
- 199 344 l 1,24,-1
- 272 446 l 1,25,-1
- 238 457 l 1,26,-1
- 209 561 l 1,27,28
- 283 754 283 754 563 1028 c 1,29,-1
- 715 1055 l 1,30,-1
- 909 1333 l 1,31,-1
- 1049 1229 l 1,32,-1
- 958 1106 l 1,33,34
- 1014 1114 1014 1114 1026 1114 c 128,-1,35
- 1038 1114 1038 1114 1116 1102 c 1,36,-1
- 1489 868 l 1,37,-1
- 1507 877 l 1,38,-1
- 1497 932 l 1,39,40
- 1650 938 1650 938 1659 938 c 0,41,42
- 1661 938 1661 938 1835 918 c 1,0,-1
-670 987 m 1,43,-1
- 592 981 l 1,44,45
- 343 751 343 751 252 561 c 1,46,-1
- 268 487 l 1,47,-1
- 289 481 l 1,48,-1
- 289 535 l 1,49,50
- 381 592 381 592 498 741 c 0,51,52
- 520 775 520 775 670 987 c 1,43,-1
-776 745 m 1,53,-1
- 698 739 l 1,54,-1
- 657 682 l 1,55,-1
- 729 686 l 1,56,-1
- 776 745 l 1,53,-1
-885 690 m 1,57,-1
- 879 715 l 1,58,-1
- 815 735 l 1,59,-1
- 778 682 l 1,60,-1
- 885 690 l 1,57,-1
-1503 825 m 1,61,-1
- 1487 825 l 1,62,-1
- 1253 971 l 2,63,64
- 1072 1077 1072 1077 1026 1077 c 2,65,-1
- 913 1047 l 1,66,-1
- 729 782 l 1,67,68
- 812 788 812 788 823 788 c 2,69,-1
- 889 770 l 1,70,-1
- 938 842 l 1,71,-1
- 989 803 l 1,72,-1
- 922 729 l 1,73,-1
- 928 686 l 1,74,-1
- 993 690 l 1,75,-1
- 997 633 l 1,76,-1
- 678 651 l 1,77,-1
- 648 648 l 2,78,79
- 608 640 608 640 520 610 c 0,80,81
- 400 570 400 570 358 549 c 1,82,-1
- 332 518 l 1,83,-1
- 346 457 l 1,84,-1
- 422 430 l 1,85,86
- 626 467 626 467 686 467 c 0,87,88
- 695 467 695 467 893 438 c 1,89,-1
- 1006 348 l 1,90,91
- 1163 317 1163 317 1165 317 c 0,92,93
- 1350 317 1350 317 1470 387 c 1,94,95
- 1511 596 1511 596 1511 651 c 0,96,97
- 1511 710 1511 710 1503 825 c 1,61,-1
-758 408 m 1,98,-1
- 711 414 l 1,99,-1
- 657 330 l 1,100,-1
- 686 313 l 1,101,-1
- 723 334 l 1,102,-1
- 758 408 l 1,98,-1
-668 416 m 1,103,-1
- 588 410 l 1,104,-1
- 545 340 l 1,105,-1
- 561 313 l 1,106,-1
- 604 319 l 1,107,-1
- 668 416 l 1,103,-1
-532 403 m 1,108,-1
- 442 391 l 1,109,-1
- 401 334 l 1,110,-1
- 438 301 l 1,111,-1
- 477 319 l 1,112,-1
- 532 403 l 1,108,-1
-387 391 m 1,113,-1
- 303 414 l 1,114,-1
- 238 332 l 1,115,-1
- 264 274 l 1,116,-1
- 311 274 l 1,117,-1
- 387 391 l 1,113,-1
-1561 434 m 1,118,-1
- 1561 342 l 1,119,-1
- 1720 342 l 1,120,-1
- 1720 434 l 1,121,-1
- 1561 434 l 1,118,-1
-EndSplineSet
-EndChar
-StartChar: uniE41E
-Encoding: 58398 58398 662
-Width: 1904
-GlyphClass: 2
-Flags: W
-Fore
-133 918 m 1,0,-1
- 176 758 l 2,1,2
- 176 756 176 756 164 276 c 1,3,-1
- 483 289 l 1,4,-1
- 493 328 l 1,5,-1
- 653 258 l 1,6,-1
- 760 256 l 1,7,-1
- 814 259 l 2,8,9
- 883 268 883 268 983 297 c 1,10,-1
- 1108 395 l 1,11,-1
- 1159 403 l 1,12,-1
- 1214 307 l 1,13,-1
- 1278 270 l 1,14,-1
- 1335 291 l 1,15,-1
- 1354 276 l 1,16,-1
- 1427 270 l 1,17,-1
- 1460 287 l 1,18,-1
- 1481 264 l 1,19,-1
- 1540 270 l 1,20,-1
- 1593 297 l 1,21,-1
- 1626 244 l 1,22,-1
- 1835 84 l 1,23,-1
- 1769 344 l 1,24,-1
- 1696 446 l 1,25,-1
- 1730 457 l 1,26,-1
- 1759 561 l 1,27,28
- 1685 754 1685 754 1405 1028 c 1,29,-1
- 1253 1055 l 1,30,-1
- 1059 1333 l 1,31,-1
- 919 1229 l 1,32,-1
- 1010 1106 l 1,33,34
- 954 1114 954 1114 942 1114 c 0,35,36
- 930 1114 930 1114 852 1102 c 1,37,-1
- 479 868 l 1,38,-1
- 461 877 l 1,39,-1
- 471 932 l 1,40,41
- 318 938 318 938 309 938 c 0,42,43
- 307 938 307 938 133 918 c 1,0,-1
-1298 987 m 1,44,-1
- 1376 981 l 1,45,46
- 1625 751 1625 751 1716 561 c 1,47,-1
- 1700 487 l 1,48,-1
- 1679 481 l 1,49,-1
- 1679 535 l 1,50,51
- 1587 592 1587 592 1470 741 c 0,52,53
- 1448 775 1448 775 1298 987 c 1,44,-1
-1192 745 m 1,54,-1
- 1270 739 l 1,55,-1
- 1311 682 l 1,56,-1
- 1239 686 l 1,57,-1
- 1192 745 l 1,54,-1
-1083 690 m 1,58,-1
- 1089 715 l 1,59,-1
- 1153 735 l 1,60,-1
- 1190 682 l 1,61,-1
- 1083 690 l 1,58,-1
-465 825 m 1,62,-1
- 481 825 l 1,63,-1
- 715 971 l 2,64,65
- 896 1077 896 1077 942 1077 c 2,66,-1
- 1055 1047 l 1,67,-1
- 1239 782 l 1,68,69
- 1156 788 1156 788 1145 788 c 2,70,-1
- 1079 770 l 1,71,-1
- 1030 842 l 1,72,-1
- 979 803 l 1,73,-1
- 1046 729 l 1,74,-1
- 1040 686 l 1,75,-1
- 975 690 l 1,76,-1
- 971 633 l 1,77,-1
- 1290 651 l 1,78,-1
- 1320 648 l 2,79,80
- 1360 640 1360 640 1448 610 c 0,81,82
- 1568 570 1568 570 1610 549 c 1,83,-1
- 1636 518 l 1,84,-1
- 1622 457 l 1,85,-1
- 1546 430 l 1,86,87
- 1342 467 1342 467 1282 467 c 0,88,89
- 1273 467 1273 467 1075 438 c 1,90,-1
- 962 348 l 1,91,92
- 805 317 805 317 803 317 c 0,93,94
- 618 317 618 317 498 387 c 1,95,96
- 457 596 457 596 457 651 c 0,97,98
- 457 710 457 710 465 825 c 1,62,-1
-1210 408 m 1,99,-1
- 1257 414 l 1,100,-1
- 1311 330 l 1,101,-1
- 1282 313 l 1,102,-1
- 1245 334 l 1,103,-1
- 1210 408 l 1,99,-1
-1300 416 m 1,104,-1
- 1380 410 l 1,105,-1
- 1423 340 l 1,106,-1
- 1407 313 l 1,107,-1
- 1364 319 l 1,108,-1
- 1300 416 l 1,104,-1
-1436 403 m 1,109,-1
- 1526 391 l 1,110,-1
- 1567 334 l 1,111,-1
- 1530 301 l 1,112,-1
- 1491 319 l 1,113,-1
- 1436 403 l 1,109,-1
-1581 391 m 1,114,-1
- 1665 414 l 1,115,-1
- 1730 332 l 1,116,-1
- 1704 274 l 1,117,-1
- 1657 274 l 1,118,-1
- 1581 391 l 1,114,-1
-407 434 m 1,119,-1
- 407 342 l 1,120,-1
- 248 342 l 1,121,-1
- 248 434 l 1,122,-1
- 407 434 l 1,119,-1
-EndSplineSet
-EndChar
-StartChar: uniE425
-Encoding: 58405 58405 663
-Width: 1728
-GlyphClass: 2
-Flags: W
-Fore
-864 -33 m 0,0,1
- 524 -33 524 -33 307 184 c 0,2,3
- 90 400 90 400 90 741 c 0,4,5
- 90 1083 90 1083 306 1299 c 0,6,7
- 523 1516 523 1516 864 1516 c 128,-1,8
- 1205 1516 1205 1516 1422 1299 c 0,9,10
- 1638 1083 1638 1083 1638 741 c 0,11,12
- 1638 400 1638 400 1421 184 c 0,13,14
- 1206 -33 1206 -33 864 -33 c 0,0,1
-864 66 m 0,15,16
- 1164 66 1164 66 1352 254 c 0,17,18
- 1540 444 1540 444 1540 741 c 0,19,20
- 1540 1039 1540 1039 1352 1229 c 0,21,22
- 1162 1417 1162 1417 864 1417 c 0,23,24
- 569 1417 569 1417 379 1227 c 0,25,26
- 188 1036 188 1036 188 741 c 0,27,28
- 188 447 188 447 379 256 c 0,29,30
- 569 66 569 66 864 66 c 0,15,16
-408 696 m 1,31,-1
- 469 696 l 1,32,33
- 536 377 536 377 862 377 c 0,34,35
- 1190 377 1190 377 1257 696 c 1,36,-1
- 1321 696 l 1,37,38
- 1297 497 1297 497 1182 379 c 0,39,40
- 1060 254 1060 254 862 254 c 0,41,42
- 666 254 666 254 543 379 c 0,43,44
- 428 497 428 497 408 696 c 1,31,-1
-614 868 m 0,45,46
- 567 868 567 868 528 905 c 0,47,48
- 492 942 492 942 492 991 c 0,49,50
- 492 1041 492 1041 528 1077 c 0,51,52
- 565 1114 565 1114 614 1114 c 0,53,54
- 664 1114 664 1114 700 1077 c 0,55,56
- 737 1041 737 1041 737 991 c 0,57,58
- 737 940 737 940 701 904 c 0,59,60
- 666 868 666 868 614 868 c 0,45,46
-1110 868 m 0,61,62
- 1062 868 1062 868 1023 905 c 0,63,64
- 985 943 985 943 985 991 c 0,65,66
- 985 1042 985 1042 1022 1078 c 0,67,68
- 1060 1114 1060 1114 1110 1114 c 0,69,70
- 1161 1114 1161 1114 1197 1078 c 128,-1,71
- 1233 1042 1233 1042 1233 991 c 0,72,73
- 1233 942 1233 942 1196 905 c 0,74,75
- 1157 868 1157 868 1110 868 c 0,61,62
-EndSplineSet
-EndChar
-StartChar: uniE426
-Encoding: 58406 58406 664
-Width: 1728
-GlyphClass: 2
-Flags: W
-Fore
-580 580 m 1,0,-1
- 1140 580 l 1,1,-1
- 1140 430 l 1,2,-1
- 580 430 l 1,3,-1
- 580 580 l 1,0,-1
-864 -33 m 0,4,5
- 524 -33 524 -33 307 184 c 0,6,7
- 90 400 90 400 90 741 c 0,8,9
- 90 1083 90 1083 306 1299 c 0,10,11
- 523 1516 523 1516 864 1516 c 128,-1,12
- 1205 1516 1205 1516 1422 1299 c 0,13,14
- 1638 1083 1638 1083 1638 741 c 0,15,16
- 1638 400 1638 400 1421 184 c 0,17,18
- 1206 -33 1206 -33 864 -33 c 0,4,5
-864 66 m 0,19,20
- 1164 66 1164 66 1352 254 c 0,21,22
- 1540 444 1540 444 1540 741 c 0,23,24
- 1540 1039 1540 1039 1352 1229 c 0,25,26
- 1162 1417 1162 1417 864 1417 c 0,27,28
- 569 1417 569 1417 379 1227 c 0,29,30
- 188 1036 188 1036 188 741 c 0,31,32
- 188 447 188 447 379 256 c 0,33,34
- 569 66 569 66 864 66 c 0,19,20
-614 868 m 0,35,36
- 567 868 567 868 528 905 c 0,37,38
- 492 942 492 942 492 991 c 0,39,40
- 492 1041 492 1041 528 1077 c 0,41,42
- 565 1114 565 1114 614 1114 c 0,43,44
- 664 1114 664 1114 700 1077 c 0,45,46
- 737 1041 737 1041 737 991 c 0,47,48
- 737 940 737 940 701 904 c 0,49,50
- 666 868 666 868 614 868 c 0,35,36
-1110 868 m 0,51,52
- 1062 868 1062 868 1023 905 c 0,53,54
- 985 943 985 943 985 991 c 0,55,56
- 985 1042 985 1042 1022 1078 c 0,57,58
- 1060 1114 1060 1114 1110 1114 c 0,59,60
- 1161 1114 1161 1114 1197 1078 c 128,-1,61
- 1233 1042 1233 1042 1233 991 c 0,62,63
- 1233 942 1233 942 1196 905 c 0,64,65
- 1157 868 1157 868 1110 868 c 0,51,52
-EndSplineSet
-EndChar
-StartChar: uniE427
-Encoding: 58407 58407 665
-Width: 1728
-GlyphClass: 2
-Flags: W
-Fore
-864 -33 m 0,0,1
- 524 -33 524 -33 307 184 c 0,2,3
- 90 400 90 400 90 741 c 0,4,5
- 90 1083 90 1083 306 1299 c 0,6,7
- 523 1516 523 1516 864 1516 c 128,-1,8
- 1205 1516 1205 1516 1422 1299 c 0,9,10
- 1638 1083 1638 1083 1638 741 c 0,11,12
- 1638 400 1638 400 1421 184 c 0,13,14
- 1206 -33 1206 -33 864 -33 c 0,0,1
-864 66 m 0,15,16
- 1164 66 1164 66 1352 254 c 0,17,18
- 1540 444 1540 444 1540 741 c 0,19,20
- 1540 1039 1540 1039 1352 1229 c 0,21,22
- 1162 1417 1162 1417 864 1417 c 0,23,24
- 569 1417 569 1417 379 1227 c 0,25,26
- 188 1036 188 1036 188 741 c 0,27,28
- 188 447 188 447 379 256 c 0,29,30
- 569 66 569 66 864 66 c 0,15,16
-408 254 m 1,31,32
- 428 455 428 455 546 575 c 0,33,34
- 663 696 663 696 862 696 c 0,35,36
- 1061 696 1061 696 1182 571 c 0,37,38
- 1297 454 1297 454 1321 254 c 1,39,-1
- 1257 254 l 1,40,41
- 1190 573 1190 573 862 573 c 0,42,43
- 536 573 536 573 469 254 c 1,44,-1
- 408 254 l 1,31,32
-614 868 m 0,45,46
- 567 868 567 868 528 905 c 0,47,48
- 492 942 492 942 492 991 c 0,49,50
- 492 1041 492 1041 528 1077 c 0,51,52
- 565 1114 565 1114 614 1114 c 0,53,54
- 664 1114 664 1114 700 1077 c 0,55,56
- 737 1041 737 1041 737 991 c 0,57,58
- 737 940 737 940 701 904 c 0,59,60
- 666 868 666 868 614 868 c 0,45,46
-1110 868 m 0,61,62
- 1062 868 1062 868 1023 905 c 0,63,64
- 985 943 985 943 985 991 c 0,65,66
- 985 1042 985 1042 1022 1078 c 0,67,68
- 1060 1114 1060 1114 1110 1114 c 0,69,70
- 1161 1114 1161 1114 1197 1078 c 128,-1,71
- 1233 1042 1233 1042 1233 991 c 0,72,73
- 1233 942 1233 942 1196 905 c 0,74,75
- 1157 868 1157 868 1110 868 c 0,61,62
-EndSplineSet
-EndChar
-StartChar: uniE429
-Encoding: 58409 58409 666
-Width: 1328
-GlyphClass: 2
-Flags: W
-Fore
-390 496 m 1,0,-1
- 686 362 l 1,1,-1
- 956 496 l 1,2,-1
- 1034 576 l 1,3,4
- 1107 576 1107 576 1140 498 c 0,5,6
- 1156 459 1156 459 1156 430 c 2,7,-1
- 1152 406 l 1,8,-1
- 1143 387 l 2,9,10
- 1135 376 1135 376 1122 368 c 0,11,12
- 1094 352 1094 352 1071 351 c 2,13,-1
- 1050 355 l 2,14,15
- 1018 366 1018 366 996 412 c 1,16,-1
- 776 312 l 1,17,-1
- 984 176 l 1,18,-1
- 1156 126 l 1,19,-1
- 1159 115 l 2,20,21
- 1158 84 1158 84 1084 20 c 0,22,23
- 1028 -27 1028 -27 993 -27 c 2,24,-1
- 978 -24 l 2,25,26
- 920 2 920 2 920 50 c 2,27,-1
- 923 76 l 2,28,29
- 925 83 925 83 928 90 c 1,30,-1
- 676 260 l 1,31,-1
- 432 92 l 1,32,-1
- 366 -38 l 1,33,-1
- 355 -40 l 2,34,35
- 328 -38 328 -38 276 26 c 0,36,37
- 214 103 214 103 214 133 c 0,38,39
- 213 139 213 139 216 144 c 0,40,41
- 276 240 276 240 372 180 c 1,42,-1
- 588 312 l 1,43,-1
- 328 414 l 1,44,-1
- 198 386 l 1,45,-1
- 226 492 l 2,46,47
- 253 608 253 608 256 608 c 1,48,-1
- 390 496 l 1,0,-1
-486 770 m 1,49,-1
- 602 684 l 1,50,-1
- 754 684 l 1,51,-1
- 858 776 l 1,52,-1
- 890 756 l 1,53,-1
- 730 580 l 1,54,-1
- 618 576 l 1,55,-1
- 462 736 l 1,56,-1
- 486 770 l 1,49,-1
-334 1174 m 0,57,58
- 286 1516 286 1516 676 1516 c 0,59,60
- 1039 1510 1039 1510 1024 1180 c 0,61,62
- 1021 1083 1021 1083 962 984 c 1,63,-1
- 938 872 l 1,64,-1
- 780 754 l 1,65,-1
- 576 750 l 1,66,-1
- 418 872 l 1,67,68
- 349 1062 349 1062 334 1174 c 0,57,58
-684 964 m 1,69,-1
- 606 844 l 1,70,-1
- 676 870 l 1,71,-1
- 740 850 l 1,72,-1
- 684 964 l 1,69,-1
-912 1050 m 0,73,74
- 909 1147 909 1147 822 1150 c 2,75,-1
- 794 1148 l 2,76,77
- 758 1139 758 1139 747 1101 c 0,78,79
- 742 1084 742 1084 742 1061 c 2,80,-1
- 742 1054 l 2,81,82
- 742 957 742 957 826 954 c 0,83,84
- 912 954 912 954 912 1050 c 0,73,74
-620 1050 m 0,85,86
- 620 1147 620 1147 530 1150 c 2,87,-1
- 503 1148 l 1,88,-1
- 483 1139 l 1,89,-1
- 470 1127 l 1,90,-1
- 459 1109 l 2,91,92
- 450 1087 450 1087 450 1054 c 0,93,94
- 453 957 453 957 534 954 c 0,95,96
- 619 954 619 954 620 1042 c 0,97,98
- 620 1050 l 0,85,86
-EndSplineSet
-EndChar
-StartChar: uniE42C
-Encoding: 58412 58412 667
-Width: 1619
-GlyphClass: 2
-Flags: W
-Fore
-686 1325 m 1,0,1
- 748 1256 748 1256 829 1110 c 0,2,3
- 922 951 922 951 969 893 c 0,4,5
- 1047 796 1047 796 1188 774 c 2,6,-1
- 1419 762 l 2,7,8
- 1540 750 1540 750 1581 672 c 1,9,10
- 1546 598 1546 598 1432 580 c 0,11,12
- 1398 573 1398 573 1245 573 c 0,13,14
- 1104 573 1104 573 1053 541 c 0,15,16
- 994 504 994 504 866 297 c 0,17,18
- 716 52 716 52 686 14 c 1,19,20
- 647 -2 647 -2 603 -2 c 0,21,22
- 600 -2 600 -2 596 -2 c 2,23,-1
- 522 0 l 1,24,-1
- 496 23 l 1,25,26
- 518 90 518 90 649 270 c 0,27,28
- 760 422 760 422 760 535 c 1,29,-1
- 745 557 l 1,30,31
- 636 592 636 592 338 610 c 1,32,-1
- 307 596 l 1,33,34
- 284 530 284 530 238 426 c 1,35,-1
- 205 412 l 1,36,-1
- 117 420 l 1,37,-1
- 82 446 l 1,38,39
- 106 511 106 511 129 614 c 1,40,41
- 93 630 93 630 35 670 c 1,42,43
- 50 685 50 685 83 698 c 0,44,45
- 118 714 118 714 129 725 c 1,46,47
- 128 757 128 757 106 814 c 0,48,49
- 86 871 86 871 82 895 c 1,50,-1
- 117 920 l 1,51,-1
- 205 928 l 1,52,-1
- 240 911 l 1,53,54
- 263 845 263 845 309 741 c 1,55,-1
- 340 729 l 1,56,57
- 433 729 433 729 561 745 c 0,58,59
- 727 767 727 767 760 805 c 1,60,61
- 760 918 760 918 647 1069 c 0,62,63
- 519 1242 519 1242 496 1319 c 1,64,-1
- 504 1333 l 1,65,66
- 525 1341 525 1341 567 1341 c 0,67,68
- 638 1341 638 1341 686 1325 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE42E
-Encoding: 58414 58414 668
-Width: 1674
-GlyphClass: 2
-Flags: W
-Fore
-904 854 m 1,0,-1
- 1126 984 l 1,1,-1
- 1164 1256 l 1,2,-1
- 1228 1248 l 1,3,-1
- 1200 1026 l 1,4,-1
- 1434 1160 l 1,5,-1
- 1474 1088 l 1,6,-1
- 1242 954 l 1,7,-1
- 1452 866 l 1,8,-1
- 1426 806 l 1,9,-1
- 1168 912 l 1,10,-1
- 944 782 l 1,11,-1
- 944 750 l 1,12,-1
- 1168 620 l 1,13,-1
- 1426 730 l 1,14,-1
- 1452 666 l 1,15,-1
- 1242 580 l 1,16,-1
- 1474 446 l 1,17,-1
- 1434 374 l 1,18,-1
- 1200 508 l 1,19,-1
- 1228 284 l 1,20,-1
- 1164 276 l 1,21,-1
- 1126 550 l 1,22,-1
- 904 680 l 1,23,-1
- 876 662 l 1,24,-1
- 876 406 l 1,25,-1
- 1096 238 l 1,26,-1
- 1054 182 l 1,27,-1
- 876 320 l 1,28,-1
- 876 52 l 1,29,-1
- 794 52 l 1,30,-1
- 794 320 l 1,31,-1
- 614 182 l 1,32,-1
- 574 238 l 1,33,-1
- 794 406 l 1,34,-1
- 794 662 l 1,35,-1
- 766 680 l 1,36,-1
- 542 550 l 1,37,-1
- 508 276 l 1,38,-1
- 440 284 l 1,39,-1
- 468 508 l 1,40,-1
- 238 374 l 1,41,-1
- 196 444 l 1,42,-1
- 428 580 l 1,43,-1
- 222 666 l 1,44,-1
- 248 728 l 1,45,-1
- 502 620 l 1,46,-1
- 724 750 l 1,47,-1
- 724 782 l 1,48,-1
- 502 912 l 1,49,-1
- 248 804 l 1,50,-1
- 222 866 l 1,51,-1
- 428 954 l 1,52,-1
- 196 1088 l 1,53,-1
- 238 1160 l 1,54,-1
- 468 1026 l 1,55,-1
- 440 1248 l 1,56,-1
- 508 1256 l 1,57,-1
- 542 984 l 1,58,-1
- 766 854 l 1,59,-1
- 794 870 l 1,60,-1
- 794 1126 l 1,61,-1
- 574 1294 l 1,62,-1
- 614 1348 l 1,63,-1
- 794 1212 l 1,64,-1
- 794 1478 l 1,65,-1
- 874 1478 l 1,66,-1
- 874 1212 l 1,67,-1
- 1054 1348 l 1,68,-1
- 1096 1294 l 1,69,-1
- 874 1126 l 1,70,-1
- 874 870 l 1,71,-1
- 904 854 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE42F
-Encoding: 58415 58415 669
-Width: 1502
-GlyphClass: 2
-Flags: W
-Fore
-906 1416 m 1,0,-1
- 624 1416 l 1,1,-1
- 624 1048 l 1,2,-1
- 262 1048 l 1,3,-1
- 262 778 l 1,4,-1
- 624 778 l 1,5,-1
- 624 50 l 1,6,-1
- 906 50 l 1,7,-1
- 906 778 l 1,8,-1
- 1262 778 l 1,9,-1
- 1262 1048 l 1,10,-1
- 906 1050 l 1,11,-1
- 906 1416 l 1,0,-1
-1326 730 m 1,12,-1
- 954 730 l 1,13,-1
- 954 0 l 1,14,-1
- 574 0 l 1,15,-1
- 574 730 l 1,16,-1
- 194 730 l 1,17,-1
- 194 1100 l 1,18,-1
- 574 1100 l 1,19,-1
- 574 1476 l 1,20,-1
- 954 1476 l 1,21,-1
- 954 1100 l 1,22,-1
- 1326 1100 l 1,23,-1
- 1326 730 l 1,12,-1
-EndSplineSet
-EndChar
-StartChar: uniE430
-Encoding: 58416 58416 670
-Width: 1458
-GlyphClass: 2
-Flags: W
-Fore
-860 1420 m 1,0,-1
- 580 1420 l 1,1,-1
- 580 1050 l 1,2,-1
- 218 1050 l 1,3,-1
- 218 782 l 1,4,-1
- 580 782 l 1,5,-1
- 580 54 l 1,6,-1
- 860 54 l 1,7,-1
- 860 782 l 1,8,-1
- 1216 782 l 1,9,-1
- 1216 1050 l 1,10,-1
- 860 1052 l 1,11,-1
- 860 1420 l 1,0,-1
-1280 734 m 1,12,-1
- 910 734 l 1,13,-1
- 910 4 l 1,14,-1
- 528 4 l 1,15,-1
- 528 734 l 1,16,-1
- 150 734 l 1,17,-1
- 150 1102 l 1,18,-1
- 528 1102 l 1,19,-1
- 528 1480 l 1,20,-1
- 910 1480 l 1,21,-1
- 910 1102 l 1,22,-1
- 1280 1102 l 1,23,-1
- 1280 734 l 1,12,-1
-794 104 m 1,24,-1
- 630 104 l 1,25,-1
- 630 834 l 1,26,-1
- 262 834 l 1,27,-1
- 262 998 l 1,28,-1
- 630 998 l 1,29,-1
- 630 1366 l 1,30,-1
- 794 1366 l 1,31,-1
- 794 998 l 1,32,-1
- 1164 998 l 1,33,-1
- 1164 834 l 1,34,-1
- 794 834 l 1,35,-1
- 794 104 l 1,24,-1
-EndSplineSet
-EndChar
-StartChar: uniE432
-Encoding: 58418 58418 671
-Width: 1436
-GlyphClass: 2
-Flags: W
-Fore
-850 1234 m 1,0,-1
- 570 1234 l 1,1,-1
- 570 868 l 1,2,-1
- 206 868 l 1,3,-1
- 206 600 l 1,4,-1
- 570 600 l 1,5,-1
- 570 232 l 1,6,-1
- 850 232 l 1,7,-1
- 850 600 l 1,8,-1
- 1206 600 l 1,9,-1
- 1206 868 l 1,10,-1
- 850 870 l 1,11,-1
- 850 1234 l 1,0,-1
-1270 550 m 1,12,-1
- 900 550 l 1,13,-1
- 900 182 l 1,14,-1
- 518 182 l 1,15,-1
- 518 550 l 1,16,-1
- 140 550 l 1,17,-1
- 140 920 l 1,18,-1
- 518 920 l 1,19,-1
- 518 1296 l 1,20,-1
- 900 1296 l 1,21,-1
- 900 920 l 1,22,-1
- 1270 920 l 1,23,-1
- 1270 550 l 1,12,-1
-784 282 m 1,24,-1
- 620 282 l 1,25,-1
- 620 652 l 1,26,-1
- 252 652 l 1,27,-1
- 252 816 l 1,28,-1
- 620 816 l 1,29,-1
- 620 1182 l 1,30,-1
- 784 1182 l 1,31,-1
- 784 816 l 1,32,-1
- 1154 816 l 1,33,-1
- 1154 652 l 1,34,-1
- 784 652 l 1,35,-1
- 784 282 l 1,24,-1
-EndSplineSet
-EndChar
-StartChar: uniE433
-Encoding: 58419 58419 672
-Width: 1646
-GlyphClass: 2
-Flags: W
-Fore
-816 1496 m 1,0,-1
- 1034 1120 l 1,1,-1
- 1466 1120 l 1,2,-1
- 1250 744 l 1,3,-1
- 1466 366 l 1,4,-1
- 1034 366 l 1,5,-1
- 816 -6 l 1,6,-1
- 602 366 l 1,7,-1
- 166 366 l 1,8,-1
- 382 744 l 1,9,-1
- 166 1120 l 1,10,-1
- 602 1120 l 1,11,-1
- 816 1496 l 1,0,-1
-816 1396 m 1,12,-1
- 660 1120 l 1,13,-1
- 972 1120 l 1,14,-1
- 816 1396 l 1,12,-1
-254 1070 m 1,15,-1
- 412 792 l 1,16,-1
- 572 1070 l 1,17,-1
- 254 1070 l 1,15,-1
-628 1070 m 1,18,-1
- 440 744 l 1,19,-1
- 628 416 l 1,20,-1
- 1006 416 l 1,21,-1
- 1192 744 l 1,22,-1
- 1006 1070 l 1,23,-1
- 628 1070 l 1,18,-1
-1060 1070 m 1,24,-1
- 1220 790 l 1,25,-1
- 1382 1070 l 1,26,-1
- 1060 1070 l 1,24,-1
-412 694 m 1,27,-1
- 254 416 l 1,28,-1
- 574 416 l 1,29,-1
- 412 694 l 1,27,-1
-1220 692 m 1,30,-1
- 1060 416 l 1,31,-1
- 1380 416 l 1,32,-1
- 1220 692 l 1,30,-1
-660 366 m 1,33,-1
- 816 90 l 1,34,-1
- 976 366 l 1,35,-1
- 660 366 l 1,33,-1
-EndSplineSet
-EndChar
-StartChar: uniE434
-Encoding: 58420 58420 673
-Width: 1836
-GlyphClass: 2
-Flags: W
-Fore
-1604 724 m 0,0,1
- 1604 430 1604 430 1410 236 c 0,2,3
- 1215 44 1215 44 920 44 c 0,4,5
- 620 44 620 44 430 234 c 0,6,7
- 238 426 238 426 238 724 c 0,8,9
- 238 1024 238 1024 430 1216 c 0,10,11
- 620 1406 620 1406 920 1406 c 0,12,13
- 1215 1406 1215 1406 1410 1214 c 0,14,15
- 1604 1020 1604 1020 1604 724 c 0,0,1
-1056 1106 m 1,16,-1
- 922 1384 l 1,17,-1
- 782 1106 l 1,18,19
- 837 1132 837 1132 920 1132 c 0,20,21
- 1001 1132 1001 1132 1056 1106 c 1,16,-1
-1388 1192 m 1,22,-1
- 1092 1098 l 1,23,24
- 1237 1016 1237 1016 1288 900 c 1,25,-1
- 1388 1192 l 1,22,-1
-746 1098 m 1,26,-1
- 450 1194 l 1,27,-1
- 550 900 l 1,28,29
- 604 1019 604 1019 746 1098 c 1,26,-1
-1580 722 m 1,30,-1
- 1302 862 l 1,31,32
- 1326 799 1326 799 1326 724 c 0,33,34
- 1326 651 1326 651 1302 588 c 1,35,-1
- 1580 722 l 1,30,-1
-536 588 m 1,36,37
- 510 640 510 640 510 724 c 0,38,39
- 510 810 510 810 536 862 c 1,40,-1
- 260 728 l 1,41,-1
- 536 588 l 1,36,37
-746 352 m 1,42,43
- 612 420 612 420 546 556 c 1,44,-1
- 448 258 l 1,45,-1
- 746 352 l 1,42,43
-1384 254 m 1,46,-1
- 1288 550 l 1,47,48
- 1225 416 1225 416 1092 358 c 1,49,-1
- 1384 254 l 1,46,-1
-1056 340 m 1,50,51
- 984 318 984 318 920 318 c 0,52,53
- 854 318 854 318 782 340 c 1,54,-1
- 918 66 l 1,55,-1
- 1056 340 l 1,50,51
-728 738 m 0,56,57
- 728 664 728 664 784 614 c 0,58,59
- 839 568 839 568 916 568 c 0,60,61
- 989 568 989 568 1046 616 c 0,62,63
- 1102 666 1102 666 1102 738 c 0,64,65
- 1102 813 1102 813 1046 860 c 0,66,67
- 992 908 992 908 916 908 c 0,68,69
- 841 908 841 908 784 860 c 0,70,71
- 728 813 728 813 728 738 c 0,56,57
-EndSplineSet
-EndChar
-StartChar: uniE437
-Encoding: 58423 58423 674
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 986 172 986 346 1160 c 0,2,3
- 521 1332 521 1332 766 1332 c 0,4,5
- 1009 1332 1009 1332 1184 1160 c 0,6,7
- 1358 986 1358 986 1358 740 c 0,8,9
- 1358 496 1358 496 1184 322 c 128,-1,10
- 1010 148 1010 148 766 148 c 0,11,12
- 520 148 520 148 346 322 c 128,-1,13
- 172 496 172 496 172 740 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uniE438
-Encoding: 58424 58424 675
-Width: 1950
-GlyphClass: 2
-Flags: W
-Fore
-872 1484 m 0,0,1
- 991 1484 991 1484 1138 1432 c 0,2,3
- 1786 1207 1786 1207 1786 700 c 0,4,5
- 1786 392 1786 392 1590 196 c 128,-1,6
- 1394 0 1394 0 1086 0 c 0,7,8
- 972 0 972 0 822 54 c 0,9,10
- 178 279 178 279 178 788 c 0,11,12
- 178 1095 178 1095 370 1290 c 0,13,14
- 564 1484 564 1484 872 1484 c 0,0,1
-270 778 m 0,15,16
- 270 515 270 515 440 350 c 0,17,18
- 611 182 611 182 872 182 c 0,19,20
- 1140 182 1140 182 1308 350 c 0,21,22
- 1476 521 1476 521 1476 786 c 0,23,24
- 1476 1054 1476 1054 1308 1222 c 128,-1,25
- 1140 1390 1140 1390 872 1390 c 0,26,27
- 604 1390 604 1390 438 1218 c 0,28,29
- 270 1044 270 1044 270 778 c 0,15,16
-EndSplineSet
-EndChar
-StartChar: uniE439
-Encoding: 58425 58425 676
-Width: 1562
-GlyphClass: 2
-Flags: W
-Fore
-172 148 m 1,0,-1
- 172 1332 l 1,1,-1
- 1358 1332 l 1,2,-1
- 1358 148 l 1,3,-1
- 172 148 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE43A
-Encoding: 58426 58426 677
-Width: 1850
-GlyphClass: 2
-Flags: W
-Fore
-370 196 m 1,0,-1
- 1456 196 l 1,1,-1
- 1456 1282 l 1,2,-1
- 370 1282 l 1,3,-1
- 370 196 l 1,0,-1
-172 0 m 1,4,-1
- 172 1480 l 1,5,-1
- 1652 1480 l 1,6,-1
- 1652 0 l 1,7,-1
- 172 0 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE43B
-Encoding: 58427 58427 678
-Width: 1902
-GlyphClass: 2
-Flags: W
-Fore
-468 296 m 1,0,-1
- 1358 296 l 1,1,-1
- 1358 1184 l 1,2,-1
- 468 1184 l 1,3,-1
- 468 296 l 1,0,-1
-172 0 m 1,4,-1
- 172 1480 l 1,5,-1
- 1652 1480 l 1,6,-1
- 1652 0 l 1,7,-1
- 172 0 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE43C
-Encoding: 58428 58428 679
-Width: 1844
-GlyphClass: 2
-Flags: W
-Fore
-266 300 m 1,0,-1
- 1352 300 l 1,1,-1
- 1352 1384 l 1,2,-1
- 266 1384 l 1,3,-1
- 266 300 l 1,0,-1
-168 1484 m 1,4,-1
- 1454 1484 l 1,5,-1
- 1650 1284 l 1,6,-1
- 1650 0 l 1,7,-1
- 364 0 l 1,8,-1
- 168 196 l 1,9,-1
- 168 1484 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE43D
-Encoding: 58429 58429 680
-Width: 1800
-GlyphClass: 2
-Flags: W
-Fore
-1356 94 m 1,0,-1
- 1356 1182 l 1,1,-1
- 268 1182 l 1,2,-1
- 270 94 l 1,3,-1
- 1356 94 l 1,0,-1
-172 -4 m 1,4,-1
- 172 1282 l 1,5,-1
- 368 1480 l 1,6,-1
- 1654 1480 l 1,7,-1
- 1654 194 l 1,8,-1
- 1458 -4 l 1,9,-1
- 172 -4 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE43E
-Encoding: 58430 58430 681
-Width: 1006
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 1,0,-1
- 468 1160 l 1,1,-1
- 766 740 l 1,2,-1
- 468 322 l 1,3,-1
- 172 740 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE43F
-Encoding: 58431 58431 682
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-168 740 m 1,0,-1
- 766 1580 l 1,1,-1
- 1364 740 l 1,2,-1
- 766 -96 l 1,3,-1
- 168 740 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE440
-Encoding: 58432 58432 683
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 1,0,-1
- 1010 1580 l 1,1,-1
- 1848 740 l 1,2,-1
- 1010 -96 l 1,3,-1
- 172 740 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE441
-Encoding: 58433 58433 684
-Width: 1874
-GlyphClass: 2
-Flags: W
-Fore
-474 440 m 1,0,-1
- 172 740 l 1,1,-1
- 474 1040 l 1,2,-1
- 774 740 l 1,3,-1
- 474 440 l 1,0,-1
-612 1180 m 1,4,-1
- 914 1480 l 1,5,-1
- 1214 1180 l 1,6,-1
- 914 878 l 1,7,-1
- 612 1180 l 1,4,-1
-1354 1040 m 1,8,-1
- 1652 740 l 1,9,-1
- 1354 440 l 1,10,-1
- 1052 740 l 1,11,-1
- 1354 1040 l 1,8,-1
-1212 300 m 1,12,-1
- 914 0 l 1,13,-1
- 612 300 l 1,14,-1
- 914 600 l 1,15,-1
- 1212 300 l 1,12,-1
-EndSplineSet
-EndChar
-StartChar: uniE442
-Encoding: 58434 58434 685
-Width: 1246
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 1,0,-1
- 592 1160 l 1,1,-1
- 1010 740 l 1,2,-1
- 592 322 l 1,3,-1
- 172 740 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE443
-Encoding: 58435 58435 686
-Width: 1240
-GlyphClass: 2
-Flags: W
-Fore
-928 1112 m 1,0,-1
- 1084 1266 l 1,1,-1
- 1144 1204 l 1,2,-1
- 990 1050 l 1,3,4
- 1100 909 1100 909 1100 750 c 0,5,6
- 1100 588 1100 588 990 444 c 1,7,-1
- 1144 290 l 1,8,-1
- 1084 232 l 1,9,-1
- 928 386 l 1,10,11
- 781 272 781 272 638 272 c 0,12,13
- 427 272 427 272 322 386 c 1,14,-1
- 166 232 l 1,15,-1
- 102 290 l 1,16,-1
- 258 444 l 1,17,18
- 150 570 150 570 150 748 c 0,19,20
- 150 918 150 918 258 1050 c 1,21,-1
- 102 1204 l 1,22,-1
- 166 1266 l 1,23,-1
- 322 1112 l 1,24,25
- 448 1220 448 1220 626 1220 c 0,26,27
- 802 1220 802 1220 928 1112 c 1,0,-1
-624 1134 m 0,28,29
- 464 1134 464 1134 350 1020 c 128,-1,30
- 236 906 236 906 236 746 c 128,-1,31
- 236 586 236 586 350 472 c 128,-1,32
- 464 358 464 358 624 358 c 128,-1,33
- 784 358 784 358 900 474 c 0,34,35
- 1014 588 1014 588 1014 748 c 0,36,37
- 1014 906 1014 906 900 1020 c 0,38,39
- 783 1134 783 1134 624 1134 c 0,28,29
-EndSplineSet
-EndChar
-StartChar: uniE444
-Encoding: 58436 58436 687
-Width: 1910
-GlyphClass: 2
-Flags: W
-Fore
-934 150 m 1,0,1
- 836 -32 836 -32 646 -32 c 0,2,3
- 494 -32 494 -32 390 72 c 0,4,5
- 282 177 282 177 282 326 c 0,6,7
- 282 436 282 436 374 546 c 1,8,9
- 247 573 247 573 170 662 c 0,10,11
- 92 749 92 749 92 876 c 0,12,13
- 92 1022 92 1022 190 1126 c 0,14,15
- 286 1234 286 1234 430 1234 c 0,16,17
- 499 1234 499 1234 578 1202 c 1,18,19
- 572 1271 572 1271 572 1308 c 0,20,21
- 572 1434 572 1434 688 1514 c 0,22,23
- 797 1590 797 1590 922 1590 c 0,24,25
- 1083 1590 1083 1590 1178 1480 c 0,26,27
- 1265 1385 1265 1385 1265 1241 c 0,28,29
- 1265 1227 1265 1227 1264 1212 c 1,30,31
- 1346 1250 1346 1250 1414 1250 c 0,32,33
- 1559 1250 1559 1250 1656 1144 c 0,34,35
- 1756 1038 1756 1038 1756 890 c 0,36,37
- 1756 771 1756 771 1680 682 c 0,38,39
- 1601 591 1601 591 1482 562 c 1,40,41
- 1584 457 1584 457 1584 330 c 0,42,43
- 1584 190 1584 190 1474 76 c 0,44,45
- 1366 -32 1366 -32 1222 -32 c 0,46,47
- 1038 -32 1038 -32 934 150 c 1,0,1
-920 940 m 0,48,49
- 844 940 844 940 786 882 c 0,50,51
- 730 826 730 826 730 750 c 0,52,53
- 730 672 730 672 786 616 c 128,-1,54
- 842 560 842 560 920 560 c 128,-1,55
- 998 560 998 560 1054 616 c 0,56,57
- 1112 674 1112 674 1112 750 c 0,58,59
- 1112 824 1112 824 1054 882 c 128,-1,60
- 996 940 996 940 920 940 c 0,48,49
-EndSplineSet
-EndChar
-StartChar: uniE445
-Encoding: 58437 58437 688
-Width: 1848
-GlyphClass: 2
-Flags: W
-Fore
-1094 1320 m 0,0,1
- 1094 1245 1094 1245 966 900 c 1,2,3
- 941 906 941 906 912 906 c 0,4,5
- 884 906 884 906 854 900 c 1,6,7
- 730 1240 730 1240 730 1320 c 0,8,9
- 730 1397 730 1397 780 1450 c 0,10,11
- 835 1502 835 1502 912 1502 c 0,12,13
- 984 1502 984 1502 1038 1448 c 0,14,15
- 1094 1395 1094 1395 1094 1320 c 0,0,1
-840 1310 m 0,16,17
- 840 1258 840 1258 908 1258 c 0,18,19
- 970 1258 970 1258 970 1310 c 0,20,21
- 970 1366 970 1366 908 1366 c 0,22,23
- 840 1366 840 1366 840 1310 c 0,16,17
-1060 814 m 1,24,25
- 1036 866 1036 866 984 890 c 1,26,27
- 1085 1118 1085 1118 1112 1160 c 0,28,29
- 1215 1336 1215 1336 1320 1336 c 0,30,31
- 1394 1336 1394 1336 1450 1280 c 128,-1,32
- 1506 1224 1506 1224 1506 1150 c 0,33,34
- 1506 1046 1506 1046 1330 940 c 0,35,36
- 1282 913 1282 913 1060 814 c 1,24,25
-1268 1164 m 0,37,38
- 1268 1108 1268 1108 1332 1108 c 128,-1,39
- 1396 1108 1396 1108 1396 1164 c 0,40,41
- 1396 1216 1396 1216 1332 1216 c 128,-1,42
- 1268 1216 1268 1216 1268 1164 c 0,37,38
-838 890 m 1,43,44
- 788 866 788 866 760 814 c 1,45,46
- 527 915 527 915 492 938 c 0,47,48
- 320 1042 320 1042 320 1150 c 0,49,50
- 320 1226 320 1226 374 1280 c 0,51,52
- 433 1336 433 1336 504 1336 c 0,53,54
- 609 1336 609 1336 712 1160 c 0,55,56
- 721 1142 721 1142 838 890 c 1,43,44
-464 1128 m 0,57,58
- 464 1074 464 1074 530 1074 c 0,59,60
- 594 1074 594 1074 594 1128 c 128,-1,61
- 594 1182 594 1182 530 1182 c 0,62,63
- 464 1182 464 1182 464 1128 c 0,57,58
-1674 742 m 0,64,65
- 1674 672 1674 672 1618 612 c 0,66,67
- 1566 560 1566 560 1488 560 c 0,68,69
- 1407 560 1407 560 1070 684 c 1,70,71
- 1082 738 1082 738 1070 798 c 1,72,73
- 1418 924 1418 924 1488 924 c 0,74,75
- 1565 924 1565 924 1618 868 c 0,76,77
- 1674 812 1674 812 1674 742 c 0,64,65
-1420 732 m 0,78,79
- 1420 680 1420 680 1484 680 c 128,-1,80
- 1548 680 1548 680 1548 732 c 0,81,82
- 1548 786 1548 786 1484 786 c 128,-1,83
- 1420 786 1420 786 1420 732 c 0,78,79
-752 684 m 1,84,85
- 412 560 412 560 330 560 c 0,86,87
- 257 560 257 560 202 612 c 0,88,89
- 148 669 148 669 148 742 c 0,90,91
- 148 814 148 814 202 868 c 0,92,93
- 258 924 258 924 330 924 c 0,94,95
- 404 924 404 924 752 798 c 1,96,97
- 744 774 744 774 744 742 c 0,98,99
- 744 708 744 708 752 684 c 1,84,85
-262 748 m 0,100,101
- 262 694 262 694 328 694 c 0,102,103
- 392 694 392 694 392 748 c 128,-1,104
- 392 802 392 802 328 802 c 0,105,106
- 262 802 262 802 262 748 c 0,100,101
-1320 148 m 0,107,108
- 1213 148 1213 148 1112 324 c 0,109,110
- 1086 362 1086 362 984 592 c 1,111,112
- 1036 613 1036 613 1060 668 c 1,113,114
- 1288 567 1288 567 1330 540 c 0,115,116
- 1506 437 1506 437 1506 332 c 0,117,118
- 1506 258 1506 258 1450 202 c 0,119,120
- 1396 148 1396 148 1320 148 c 0,107,108
-1274 314 m 0,121,122
- 1274 262 1274 262 1340 262 c 0,123,124
- 1402 262 1402 262 1402 314 c 0,125,126
- 1402 368 1402 368 1340 368 c 0,127,128
- 1274 368 1274 368 1274 314 c 0,121,122
-838 592 m 1,129,130
- 655 148 655 148 504 148 c 0,131,132
- 431 148 431 148 374 202 c 0,133,134
- 320 256 320 256 320 332 c 0,135,136
- 320 435 320 435 494 540 c 0,137,138
- 527 562 527 562 760 668 c 1,139,140
- 783 613 783 613 838 592 c 1,129,130
-430 322 m 0,141,142
- 430 268 430 268 496 268 c 0,143,144
- 560 268 560 268 560 322 c 0,145,146
- 560 374 560 374 496 374 c 0,147,148
- 430 374 430 374 430 322 c 0,141,142
-1094 160 m 0,149,150
- 1094 86 1094 86 1040 32 c 0,151,152
- 985 -20 985 -20 912 -20 c 128,-1,153
- 839 -20 839 -20 784 32 c 0,154,155
- 730 89 730 89 730 160 c 0,156,157
- 730 242 730 242 854 582 c 1,158,159
- 884 576 884 576 912 576 c 0,160,161
- 940 576 940 576 966 582 c 1,162,163
- 1094 237 1094 237 1094 160 c 0,149,150
-856 156 m 0,164,165
- 856 102 856 102 922 102 c 0,166,167
- 986 102 986 102 986 156 c 128,-1,168
- 986 210 986 210 922 210 c 0,169,170
- 856 210 856 210 856 156 c 0,164,165
-EndSplineSet
-EndChar
-StartChar: uniE446
-Encoding: 58438 58438 689
-Width: 1112
-GlyphClass: 2
-Flags: W
-Fore
-516 1032 m 0,0,1
- 516 908 516 908 388 908 c 0,2,3
- 293 908 293 908 240 996 c 0,4,5
- 190 1072 190 1072 190 1170 c 0,6,7
- 190 1304 190 1304 296 1410 c 0,8,9
- 404 1512 404 1512 540 1512 c 1,10,-1
- 550 1508 l 1,11,-1
- 558 1498 l 1,12,-1
- 552 1486 l 1,13,14
- 304 1363 304 1363 304 1210 c 0,15,16
- 304 1169 304 1169 324 1132 c 1,17,18
- 371 1160 371 1160 406 1160 c 0,19,20
- 451 1160 451 1160 484 1118 c 0,21,22
- 516 1081 516 1081 516 1032 c 0,0,1
-850 1160 m 1,23,24
- 894 1160 894 1160 932 1122 c 0,25,26
- 964 1087 964 1087 964 1040 c 0,27,28
- 964 982 964 982 920 944 c 0,29,30
- 877 904 877 904 816 904 c 0,31,32
- 727 904 727 904 674 986 c 0,33,34
- 630 1058 630 1058 630 1150 c 0,35,36
- 630 1280 630 1280 718 1392 c 0,37,38
- 814 1512 814 1512 940 1512 c 2,39,-1
- 972 1504 l 1,40,-1
- 984 1496 l 1,41,-1
- 978 1486 l 1,42,43
- 867 1423 867 1423 822 1378 c 0,44,45
- 746 1308 746 1308 746 1212 c 0,46,47
- 746 1189 746 1189 764 1132 c 1,48,49
- 790 1143 790 1143 852 1160 c 1,50,-1
- 850 1160 l 1,23,24
-EndSplineSet
-EndChar
-StartChar: uniE447
-Encoding: 58439 58439 690
-Width: 1042
-GlyphClass: 2
-Flags: W
-Fore
-358 1212 m 1,0,1
- 358 1258 358 1258 338 1304 c 1,2,3
- 300 1282 300 1282 260 1282 c 0,4,5
- 212 1282 212 1282 176 1318 c 0,6,7
- 140 1357 140 1357 140 1404 c 0,8,9
- 140 1457 140 1457 182 1496 c 0,10,11
- 224 1532 224 1532 278 1532 c 0,12,13
- 371 1532 371 1532 430 1458 c 0,14,15
- 484 1389 484 1389 484 1292 c 0,16,17
- 484 1168 484 1168 386 1046 c 0,18,19
- 283 928 283 928 160 928 c 1,20,-1
- 124 942 l 1,21,-1
- 142 964 l 1,22,23
- 229 996 229 996 288 1058 c 0,24,25
- 360 1130 360 1130 360 1216 c 1,26,-1
- 358 1212 l 1,0,1
-690 1284 m 1,27,28
- 642 1284 642 1284 612 1320 c 0,29,30
- 582 1359 582 1359 582 1406 c 0,31,32
- 582 1460 582 1460 624 1496 c 0,33,34
- 670 1530 670 1530 720 1530 c 0,35,36
- 809 1530 809 1530 864 1448 c 0,37,38
- 908 1376 908 1376 908 1282 c 0,39,40
- 908 1148 908 1148 808 1038 c 0,41,42
- 712 930 712 930 578 930 c 1,43,-1
- 552 946 l 1,44,-1
- 710 1056 l 2,45,46
- 794 1122 794 1122 794 1216 c 0,47,48
- 794 1268 794 1268 784 1298 c 1,49,50
- 739 1284 739 1284 688 1284 c 1,51,-1
- 690 1284 l 1,27,28
-EndSplineSet
-EndChar
-StartChar: uniE448
-Encoding: 58440 58440 691
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-914 252 m 0,32,33
- 765 252 765 252 676 386 c 0,34,35
- 588 523 588 523 588 742 c 0,36,37
- 588 959 588 959 676 1096 c 0,38,39
- 765 1230 765 1230 914 1230 c 0,40,41
- 1061 1230 1061 1230 1150 1096 c 0,42,43
- 1240 961 1240 961 1240 742 c 0,44,45
- 1240 521 1240 521 1150 386 c 0,46,47
- 1061 252 1061 252 914 252 c 0,32,33
-914 344 m 0,48,49
- 1013 344 1013 344 1058 444 c 0,50,51
- 1108 541 1108 541 1108 742 c 0,52,53
- 1108 941 1108 941 1058 1038 c 0,54,55
- 1013 1136 1013 1136 914 1136 c 0,56,57
- 816 1136 816 1136 768 1038 c 0,58,59
- 718 935 718 935 718 742 c 0,60,61
- 718 547 718 547 768 444 c 0,62,63
- 816 344 816 344 914 344 c 0,48,49
-EndSplineSet
-EndChar
-StartChar: uniE449
-Encoding: 58441 58441 692
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-864 270 m 1,32,-1
- 864 1110 l 1,33,-1
- 716 1110 l 1,34,-1
- 716 1190 l 1,35,-1
- 988 1212 l 1,36,-1
- 988 270 l 1,37,-1
- 864 270 l 1,32,-1
-EndSplineSet
-EndChar
-StartChar: uniE44A
-Encoding: 58442 58442 693
-Width: 1812
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-642 284 m 1,32,-1
- 642 394 l 1,33,34
- 692 516 692 516 860 668 c 2,35,-1
- 932 734 l 2,36,37
- 1070 857 1070 857 1070 978 c 0,38,39
- 1070 1061 1070 1061 1024 1104 c 0,40,41
- 982 1146 982 1146 892 1146 c 0,42,43
- 796 1146 796 1146 666 1072 c 1,44,-1
- 666 1182 l 1,45,46
- 791 1240 791 1240 912 1240 c 0,47,48
- 1043 1240 1043 1240 1122 1170 c 0,49,50
- 1200 1098 1200 1098 1200 980 c 0,51,52
- 1200 895 1200 895 1162 834 c 0,53,54
- 1121 770 1121 770 1012 676 c 2,55,-1
- 964 634 l 2,56,57
- 817 511 817 511 792 394 c 1,58,-1
- 1196 394 l 1,59,-1
- 1196 284 l 1,60,-1
- 642 284 l 1,32,-1
-EndSplineSet
-EndChar
-StartChar: uniE44B
-Encoding: 58443 58443 694
-Width: 1866
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-674 280 m 1,32,-1
- 674 398 l 1,33,34
- 809 344 809 344 884 344 c 0,35,36
- 973 344 973 344 1028 396 c 0,37,38
- 1086 448 1086 448 1086 530 c 0,39,40
- 1086 631 1086 631 1016 680 c 0,41,42
- 947 728 947 728 812 728 c 2,43,-1
- 762 728 l 1,44,-1
- 762 812 l 1,45,-1
- 804 812 l 2,46,47
- 937 812 937 812 1000 858 c 0,48,49
- 1062 902 1062 902 1062 994 c 0,50,51
- 1062 1066 1062 1066 1020 1102 c 0,52,53
- 980 1136 980 1136 890 1136 c 0,54,55
- 798 1136 798 1136 686 1086 c 1,56,-1
- 686 1194 l 1,57,58
- 797 1230 797 1230 902 1230 c 0,59,60
- 1047 1230 1047 1230 1116 1178 c 0,61,62
- 1188 1121 1188 1121 1188 1014 c 0,63,64
- 1188 931 1188 931 1138 874 c 0,65,66
- 1092 817 1092 817 994 780 c 1,67,68
- 1107 752 1107 752 1162 692 c 0,69,70
- 1218 633 1218 633 1218 532 c 0,71,72
- 1218 399 1218 399 1130 326 c 0,73,74
- 1047 252 1047 252 892 252 c 0,75,76
- 811 252 811 252 674 280 c 1,32,-1
-EndSplineSet
-EndChar
-StartChar: uniE44C
-Encoding: 58444 58444 695
-Width: 1850
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-938 284 m 1,32,-1
- 938 548 l 1,33,-1
- 518 548 l 1,34,-1
- 518 642 l 1,35,-1
- 938 1216 l 1,36,-1
- 1054 1216 l 1,37,-1
- 1054 650 l 1,38,-1
- 1180 650 l 1,39,-1
- 1180 548 l 1,40,-1
- 1054 548 l 1,41,-1
- 1054 284 l 1,42,-1
- 938 284 l 1,32,-1
-638 650 m 1,43,-1
- 946 650 l 1,44,-1
- 946 1064 l 1,45,-1
- 638 650 l 1,43,-1
-EndSplineSet
-EndChar
-StartChar: uniE44D
-Encoding: 58445 58445 696
-Width: 1806
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-682 268 m 1,32,-1
- 682 378 l 1,33,34
- 775 342 775 342 858 342 c 0,35,36
- 958 342 958 342 1008 392 c 0,37,38
- 1056 443 1056 443 1056 544 c 0,39,40
- 1056 647 1056 647 986 702 c 0,41,42
- 914 756 914 756 768 756 c 0,43,44
- 734 756 734 756 698 750 c 1,45,-1
- 698 1204 l 1,46,-1
- 1172 1204 l 1,47,-1
- 1172 1096 l 1,48,-1
- 808 1096 l 1,49,-1
- 808 850 l 1,50,51
- 985 850 985 850 1088 768 c 0,52,53
- 1190 684 1190 684 1190 538 c 0,54,55
- 1190 400 1190 400 1098 326 c 0,56,57
- 1005 248 1005 248 846 248 c 0,58,59
- 765 248 765 248 682 268 c 1,32,-1
-EndSplineSet
-EndChar
-StartChar: uniE44E
-Encoding: 58446 58446 697
-Width: 1840
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-718 754 m 1,32,33
- 764 813 764 813 820 842 c 0,34,35
- 876 870 876 870 942 870 c 0,36,37
- 1066 870 1066 870 1142 788 c 0,38,39
- 1220 710 1220 710 1220 582 c 0,40,41
- 1220 434 1220 434 1132 342 c 0,42,43
- 1047 248 1047 248 912 248 c 0,44,45
- 758 248 758 248 670 372 c 0,46,47
- 584 497 584 497 584 716 c 0,48,49
- 584 960 584 960 682 1094 c 0,50,51
- 780 1228 780 1228 962 1228 c 0,52,53
- 1056 1228 1056 1228 1172 1194 c 1,54,-1
- 1172 1084 l 1,55,56
- 1043 1134 1043 1134 954 1134 c 0,57,58
- 838 1134 838 1134 778 1038 c 0,59,60
- 718 945 718 945 718 754 c 1,32,33
-1096 558 m 0,61,62
- 1096 669 1096 669 1050 724 c 0,63,64
- 1009 780 1009 780 918 780 c 0,65,66
- 838 780 838 780 780 728 c 0,67,68
- 724 672 724 672 724 600 c 0,69,70
- 724 484 724 484 778 412 c 0,71,72
- 833 342 833 342 920 342 c 0,73,74
- 1007 342 1007 342 1052 396 c 0,75,76
- 1096 446 1096 446 1096 558 c 0,61,62
-EndSplineSet
-EndChar
-StartChar: uniE44F
-Encoding: 58447 58447 698
-Width: 1802
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-686 234 m 1,32,33
- 716 412 716 412 858 642 c 2,34,-1
- 1112 1050 l 1,35,-1
- 632 1050 l 1,36,-1
- 632 1168 l 1,37,-1
- 1230 1168 l 1,38,-1
- 1230 1050 l 1,39,40
- 872 520 872 520 830 234 c 1,41,-1
- 686 234 l 1,32,33
-EndSplineSet
-EndChar
-StartChar: uniE450
-Encoding: 58448 58448 699
-Width: 1786
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-776 778 m 1,32,33
- 642 873 642 873 642 990 c 0,34,35
- 642 1098 642 1098 718 1162 c 0,36,37
- 797 1226 797 1226 922 1226 c 0,38,39
- 1036 1226 1036 1226 1108 1172 c 0,40,41
- 1180 1115 1180 1115 1180 1026 c 0,42,43
- 1180 892 1180 892 1006 778 c 1,44,45
- 1216 676 1216 676 1216 512 c 0,46,47
- 1216 393 1216 393 1128 322 c 0,48,49
- 1042 248 1042 248 902 248 c 0,50,51
- 763 248 763 248 678 318 c 0,52,53
- 592 386 592 386 592 502 c 0,54,55
- 592 666 592 666 776 778 c 1,32,33
-936 818 m 1,56,57
- 1068 902 1068 902 1068 1010 c 0,58,59
- 1068 1063 1068 1063 1022 1100 c 0,60,61
- 979 1134 979 1134 910 1134 c 0,62,63
- 842 1134 842 1134 796 1100 c 0,64,65
- 754 1067 754 1067 754 1014 c 0,66,67
- 754 919 754 919 936 818 c 1,56,57
-846 730 m 1,68,69
- 717 631 717 631 716 520 c 0,70,71
- 716 442 716 442 768 392 c 0,72,73
- 818 342 818 342 904 342 c 0,74,75
- 984 342 984 342 1036 382 c 0,76,77
- 1088 428 1088 428 1088 494 c 0,78,79
- 1088 585 1088 585 934 676 c 2,80,-1
- 846 730 l 1,68,69
-EndSplineSet
-EndChar
-StartChar: uniE451
-Encoding: 58449 58449 700
-Width: 1792
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-656 276 m 1,32,-1
- 656 382 l 1,33,34
- 779 342 779 342 858 342 c 0,35,36
- 983 342 983 342 1042 434 c 0,37,38
- 1104 526 1104 526 1104 714 c 1,39,40
- 1053 653 1053 653 1004 626 c 0,41,42
- 948 598 948 598 888 598 c 0,43,44
- 770 598 770 598 690 684 c 0,45,46
- 608 772 608 772 608 898 c 0,47,48
- 608 1040 608 1040 694 1132 c 0,49,50
- 779 1226 779 1226 914 1226 c 0,51,52
- 1066 1226 1066 1226 1156 1106 c 0,53,54
- 1242 980 1242 980 1242 772 c 0,55,56
- 1242 531 1242 531 1134 390 c 0,57,58
- 1030 248 1030 248 846 248 c 0,59,60
- 777 248 777 248 656 276 c 1,32,-1
-732 916 m 0,61,62
- 732 802 732 802 776 746 c 0,63,64
- 821 686 821 686 912 686 c 0,65,66
- 993 686 993 686 1046 742 c 0,67,68
- 1102 792 1102 792 1102 870 c 0,69,70
- 1102 991 1102 991 1048 1060 c 0,71,72
- 998 1134 998 1134 908 1134 c 0,73,74
- 818 1134 818 1134 776 1080 c 0,75,76
- 732 1024 732 1024 732 916 c 0,61,62
-EndSplineSet
-EndChar
-StartChar: uniE452
-Encoding: 58450 58450 701
-Width: 1816
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-604 270 m 1,32,-1
- 604 1110 l 1,33,-1
- 506 1110 l 1,34,-1
- 506 1190 l 1,35,-1
- 730 1212 l 1,36,-1
- 730 270 l 1,37,-1
- 604 270 l 1,32,-1
-1110 248 m 0,38,39
- 984 248 984 248 910 382 c 0,40,41
- 834 514 834 514 834 738 c 0,42,43
- 834 960 834 960 910 1092 c 0,44,45
- 984 1226 984 1226 1110 1226 c 0,46,47
- 1238 1226 1238 1226 1312 1092 c 0,48,49
- 1388 960 1388 960 1388 738 c 0,50,51
- 1388 514 1388 514 1312 382 c 0,52,53
- 1238 248 1238 248 1110 248 c 0,38,39
-1110 342 m 0,54,55
- 1184 342 1184 342 1220 440 c 0,56,57
- 1256 542 1256 542 1256 740 c 0,58,59
- 1256 937 1256 937 1220 1036 c 0,60,61
- 1184 1134 1184 1134 1110 1134 c 0,62,63
- 1036 1134 1036 1134 1004 1034 c 0,64,65
- 966 938 966 938 966 738 c 0,66,67
- 966 539 966 539 1004 440 c 0,68,69
- 1037 342 1037 342 1110 342 c 0,54,55
-EndSplineSet
-EndChar
-StartChar: uniE453
-Encoding: 58451 58451 702
-Width: 1822
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-552 740 m 0,16,17
- 552 522 552 522 652 386 c 0,18,19
- 750 252 750 252 914 252 c 0,20,21
- 1075 252 1075 252 1176 386 c 0,22,23
- 1276 522 1276 522 1276 740 c 0,24,25
- 1276 960 1276 960 1176 1096 c 0,26,27
- 1075 1230 1075 1230 914 1230 c 0,28,29
- 750 1230 750 1230 652 1096 c 0,30,31
- 552 960 552 960 552 740 c 0,16,17
-750 740 m 0,32,33
- 750 1112 750 1112 914 1112 c 128,-1,34
- 1078 1112 1078 1112 1078 754 c 0,35,36
- 1078 366 1078 366 914 366 c 128,-1,37
- 750 366 750 366 750 740 c 0,32,33
-EndSplineSet
-EndChar
-StartChar: uniE454
-Encoding: 58452 58452 703
-Width: 1860
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-836 278 m 1,16,-1
- 1022 278 l 1,17,-1
- 1022 1222 l 1,18,-1
- 706 1194 l 1,19,-1
- 710 1102 l 1,20,-1
- 836 1102 l 1,21,-1
- 836 278 l 1,16,-1
-EndSplineSet
-EndChar
-StartChar: uniE455
-Encoding: 58453 58453 704
-Width: 1840
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-620 284 m 1,16,-1
- 1244 284 l 1,17,-1
- 1244 430 l 1,18,-1
- 832 430 l 1,19,20
- 856 523 856 523 988 628 c 2,21,-1
- 1050 678 l 2,22,23
- 1248 837 1248 837 1248 980 c 0,24,25
- 1248 1097 1248 1097 1160 1170 c 0,26,27
- 1069 1240 1069 1240 920 1240 c 0,28,29
- 864 1240 864 1240 784 1226 c 0,30,31
- 708 1212 708 1212 646 1188 c 1,32,-1
- 646 1050 l 1,33,34
- 779 1118 779 1118 882 1118 c 0,35,36
- 1048 1118 1048 1118 1048 972 c 0,37,38
- 1048 846 1048 846 860 682 c 2,39,-1
- 784 614 l 2,40,41
- 695 532 695 532 620 430 c 1,42,-1
- 620 284 l 1,16,-1
-EndSplineSet
-EndChar
-StartChar: uniE456
-Encoding: 58454 58454 705
-Width: 1860
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-658 278 m 1,16,17
- 698 268 698 268 782 256 c 0,18,19
- 838 248 838 248 912 248 c 0,20,21
- 1076 248 1076 248 1172 320 c 0,22,23
- 1266 393 1266 393 1266 520 c 0,24,25
- 1266 718 1266 718 1030 772 c 1,26,27
- 1236 841 1236 841 1236 1006 c 0,28,29
- 1236 1118 1236 1118 1162 1174 c 0,30,31
- 1084 1228 1084 1228 932 1228 c 0,32,33
- 862 1228 862 1228 796 1216 c 0,34,35
- 733 1207 733 1207 672 1186 c 1,36,-1
- 672 1058 l 1,37,38
- 788 1110 788 1110 888 1110 c 0,39,40
- 1046 1110 1046 1110 1046 984 c 0,41,42
- 1046 890 1046 890 978 854 c 0,43,44
- 915 818 915 818 744 818 c 1,45,-1
- 744 706 l 1,46,47
- 926 706 926 706 1000 666 c 0,48,49
- 1072 624 1072 624 1072 522 c 0,50,51
- 1072 452 1072 452 1022 408 c 0,52,53
- 972 364 972 364 888 364 c 0,54,55
- 796 364 796 364 658 418 c 1,56,-1
- 658 278 l 1,16,17
-EndSplineSet
-EndChar
-StartChar: uniE457
-Encoding: 58455 58455 706
-Width: 1836
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-934 278 m 1,16,-1
- 1096 278 l 1,17,-1
- 1096 526 l 1,18,-1
- 1204 526 l 1,19,-1
- 1204 666 l 1,20,-1
- 1096 666 l 1,21,-1
- 1096 1210 l 1,22,-1
- 926 1210 l 1,23,-1
- 498 666 l 1,24,-1
- 498 526 l 1,25,-1
- 934 526 l 1,26,-1
- 934 278 l 1,16,-1
-648 666 m 1,27,-1
- 936 1030 l 1,28,-1
- 936 666 l 1,29,-1
- 648 666 l 1,27,-1
-EndSplineSet
-EndChar
-StartChar: uniE458
-Encoding: 58456 58456 707
-Width: 1836
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-658 274 m 1,16,17
- 721 262 721 262 772 256 c 0,18,19
- 817 248 817 248 860 248 c 0,20,21
- 1032 248 1032 248 1130 328 c 0,22,23
- 1228 405 1228 405 1228 542 c 0,24,25
- 1228 689 1228 689 1116 772 c 0,26,27
- 1005 856 1005 856 812 856 c 1,28,-1
- 812 1056 l 1,29,-1
- 1208 1056 l 1,30,-1
- 1208 1204 l 1,31,-1
- 674 1204 l 1,32,-1
- 674 736 l 1,33,34
- 707 742 707 742 742 742 c 0,35,36
- 1030 742 1030 742 1030 540 c 0,37,38
- 1030 364 1030 364 856 364 c 0,39,40
- 778 364 778 364 658 410 c 1,41,-1
- 658 274 l 1,16,17
-EndSplineSet
-EndChar
-StartChar: uniE459
-Encoding: 58457 58457 708
-Width: 1860
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-742 766 m 1,16,17
- 742 930 742 930 802 1020 c 0,18,19
- 865 1110 865 1110 976 1110 c 0,20,21
- 1076 1110 1076 1110 1204 1058 c 1,22,-1
- 1204 1194 l 1,23,24
- 1108 1215 1108 1215 1078 1218 c 0,25,26
- 1025 1226 1025 1226 970 1226 c 0,27,28
- 769 1226 769 1226 658 1094 c 0,29,30
- 546 958 546 958 546 716 c 0,31,32
- 546 496 546 496 646 372 c 0,33,34
- 743 248 743 248 916 248 c 0,35,36
- 1063 248 1063 248 1160 342 c 0,37,38
- 1254 436 1254 436 1254 582 c 0,39,40
- 1254 708 1254 708 1172 790 c 128,-1,41
- 1090 872 1090 872 964 872 c 0,42,43
- 827 872 827 872 742 766 c 1,16,17
-1068 556 m 0,44,45
- 1068 364 1068 364 916 364 c 0,46,47
- 844 364 844 364 794 426 c 0,48,49
- 750 485 750 485 750 582 c 0,50,51
- 750 654 750 654 796 706 c 0,52,53
- 845 758 845 758 912 758 c 0,54,55
- 1068 758 1068 758 1068 556 c 0,44,45
-EndSplineSet
-EndChar
-StartChar: uniE45A
-Encoding: 58458 58458 709
-Width: 1846
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-662 234 m 1,16,-1
- 866 234 l 1,17,18
- 866 365 866 365 970 576 c 0,19,20
- 1078 789 1078 789 1258 1016 c 1,21,-1
- 1258 1168 l 1,22,-1
- 620 1168 l 1,23,-1
- 620 1016 l 1,24,-1
- 1106 1016 l 1,25,-1
- 886 696 l 2,26,27
- 751 501 751 501 712 420 c 0,28,29
- 674 342 674 342 662 234 c 1,16,-1
-EndSplineSet
-EndChar
-StartChar: uniE45B
-Encoding: 58459 58459 710
-Width: 1926
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-758 770 m 1,16,17
- 572 665 572 665 572 500 c 0,18,19
- 572 383 572 383 664 318 c 0,20,21
- 758 248 758 248 910 248 c 0,22,23
- 1065 248 1065 248 1162 324 c 0,24,25
- 1260 401 1260 401 1260 522 c 0,26,27
- 1260 678 1260 678 1058 784 c 1,28,29
- 1216 894 1216 894 1216 1018 c 0,30,31
- 1216 1113 1216 1113 1138 1170 c 0,32,33
- 1061 1226 1061 1226 932 1226 c 0,34,35
- 792 1226 792 1226 708 1160 c 0,36,37
- 623 1093 623 1093 622 986 c 0,38,39
- 622 861 622 861 758 770 c 1,16,17
-962 838 m 1,40,41
- 784 932 784 932 784 1008 c 0,42,43
- 784 1110 784 1110 916 1110 c 0,44,45
- 1054 1110 1054 1110 1054 992 c 0,46,47
- 1054 910 1054 910 962 838 c 1,40,41
-850 708 m 1,48,-1
- 938 660 l 2,49,50
- 1090 574 1090 574 1090 494 c 0,51,52
- 1090 436 1090 436 1042 400 c 0,53,54
- 998 362 998 362 928 362 c 0,55,56
- 849 362 849 362 798 410 c 0,57,58
- 748 457 748 457 748 530 c 0,59,60
- 748 624 748 624 850 708 c 1,48,-1
-EndSplineSet
-EndChar
-StartChar: uniE45C
-Encoding: 58460 58460 711
-Width: 1812
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-1094 706 m 1,16,17
- 1094 551 1094 551 1030 456 c 0,18,19
- 966 364 966 364 854 364 c 0,20,21
- 750 364 750 364 632 414 c 1,22,-1
- 632 278 l 1,23,24
- 674 269 674 269 758 256 c 0,25,26
- 806 248 806 248 856 248 c 0,27,28
- 1060 248 1060 248 1174 386 c 0,29,30
- 1288 521 1288 521 1288 766 c 0,31,32
- 1288 981 1288 981 1192 1104 c 0,33,34
- 1094 1226 1094 1226 922 1226 c 0,35,36
- 769 1226 769 1226 678 1132 c 0,37,38
- 584 1041 584 1041 584 894 c 0,39,40
- 584 771 584 771 668 684 c 0,41,42
- 752 600 752 600 874 600 c 0,43,44
- 1003 600 1003 600 1094 706 c 1,16,17
-770 922 m 0,45,46
- 770 1110 770 1110 922 1110 c 0,47,48
- 997 1110 997 1110 1042 1050 c 0,49,50
- 1088 989 1088 989 1088 890 c 0,51,52
- 1088 814 1088 814 1040 766 c 0,53,54
- 991 714 991 714 926 714 c 0,55,56
- 770 714 770 714 770 922 c 0,45,46
-EndSplineSet
-EndChar
-StartChar: uniE45D
-Encoding: 58461 58461 712
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-524 278 m 1,16,-1
- 710 278 l 1,17,-1
- 710 1222 l 1,18,-1
- 396 1194 l 1,19,-1
- 400 1102 l 1,20,-1
- 524 1102 l 1,21,-1
- 524 278 l 1,16,-1
-1154 254 m 0,22,23
- 1290 254 1290 254 1380 392 c 0,24,25
- 1468 524 1468 524 1468 740 c 0,26,27
- 1468 955 1468 955 1380 1090 c 0,28,29
- 1290 1228 1290 1228 1154 1228 c 128,-1,30
- 1018 1228 1018 1228 928 1090 c 0,31,32
- 840 950 840 950 840 740 c 0,33,34
- 840 529 840 529 928 392 c 0,35,36
- 1018 254 1018 254 1154 254 c 0,22,23
-1154 370 m 0,37,38
- 1030 370 1030 370 1030 740 c 128,-1,39
- 1030 1110 1030 1110 1154 1110 c 128,-1,40
- 1278 1110 1278 1110 1278 740 c 128,-1,41
- 1278 370 1278 370 1154 370 c 0,37,38
-EndSplineSet
-EndChar
-StartChar: uniE45E
-Encoding: 58462 58462 713
-Width: 1114
-GlyphClass: 2
-Flags: W
-Fore
-530 586 m 1,0,1
- 521 697 521 697 414 815 c 2,2,-1
- 223 1001 l 2,3,4
- 123 1111 123 1111 123 1219 c 0,5,6
- 123 1360 123 1360 281 1421 c 0,7,8
- 390 1466 390 1466 557 1466 c 0,9,10
- 726 1466 726 1466 831 1425 c 0,11,12
- 991 1364 991 1364 991 1227 c 0,13,14
- 991 1116 991 1116 891 1004 c 2,15,-1
- 700 817 l 2,16,17
- 595 701 595 701 584 586 c 1,18,-1
- 530 586 l 1,0,1
-555 -29 m 0,19,20
- 435 -29 435 -29 340 39 c 0,21,22
- 236 112 236 112 236 229 c 0,23,24
- 236 348 236 348 338 420 c 0,25,26
- 429 481 429 481 555 481 c 128,-1,27
- 681 481 681 481 772 420 c 0,28,29
- 877 348 877 348 877 229 c 0,30,31
- 877 110 877 110 772 37 c 0,32,33
- 678 -29 678 -29 555 -29 c 0,19,20
-EndSplineSet
-EndChar
-StartChar: uniE466
-Encoding: 58470 58470 714
-Width: 535
-GlyphClass: 2
-Flags: W
-Fore
-344 590 m 0,0,1
- 288 590 288 590 248 629 c 0,2,3
- 208 667 208 667 208 723 c 0,4,5
- 208 778 208 778 248 817 c 128,-1,6
- 288 856 288 856 344 856 c 0,7,8
- 398 856 398 856 436 816 c 0,9,10
- 474 778 474 778 474 723 c 0,11,12
- 474 667 474 667 436 629 c 0,13,14
- 399 590 399 590 344 590 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uniE467
-Encoding: 58471 58471 715
-Width: 729
-GlyphClass: 2
-Flags: W
-Fore
-346 457 m 0,0,1
- 236 457 236 457 155 535 c 0,2,3
- 74 612 74 612 74 723 c 0,4,5
- 74 833 74 833 155 911 c 128,-1,6
- 236 989 236 989 346 989 c 0,7,8
- 455 989 455 989 531 910 c 0,9,10
- 608 833 608 833 608 723 c 0,11,12
- 608 611 608 611 532 535 c 0,13,14
- 457 457 457 457 346 457 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uniE468
-Encoding: 58472 58472 716
-Width: 708
-GlyphClass: 2
-Flags: W
-Fore
-320 890 m 1,0,-1
- 620 890 l 1,1,-1
- 620 590 l 1,2,-1
- 320 590 l 1,3,-1
- 320 890 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE469
-Encoding: 58473 58473 717
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-349 736 m 0,16,17
- 349 502 349 502 512 339 c 0,18,19
- 679 174 679 174 911 174 c 0,20,21
- 1142 174 1142 174 1306 339 c 0,22,23
- 1471 501 1471 501 1471 736 c 0,24,25
- 1471 969 1471 969 1306 1134 c 0,26,27
- 1145 1298 1145 1298 911 1298 c 0,28,29
- 676 1298 676 1298 512 1134 c 0,30,31
- 349 968 349 968 349 736 c 0,16,17
-EndSplineSet
-EndChar
-StartChar: uniE46A
-Encoding: 58474 58474 718
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-468 729 m 0,16,17
- 468 549 468 549 592 425 c 0,18,19
- 720 299 720 299 898 299 c 0,20,21
- 1075 299 1075 299 1201 425 c 0,22,23
- 1327 549 1327 549 1327 729 c 0,24,25
- 1327 907 1327 907 1201 1033 c 0,26,27
- 1077 1159 1077 1159 898 1159 c 0,28,29
- 718 1159 718 1159 592 1033 c 0,30,31
- 468 906 468 906 468 729 c 0,16,17
-EndSplineSet
-EndChar
-StartChar: uniE46B
-Encoding: 58475 58475 719
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-611 718 m 0,16,17
- 611 606 611 606 689 528 c 0,18,19
- 769 449 769 449 880 449 c 0,20,21
- 990 449 990 449 1069 528 c 0,22,23
- 1148 605 1148 605 1148 718 c 0,24,25
- 1148 829 1148 829 1069 908 c 0,26,27
- 992 987 992 987 880 987 c 0,28,29
- 768 987 768 987 689 908 c 0,30,31
- 611 829 611 829 611 718 c 0,16,17
-EndSplineSet
-EndChar
-StartChar: uniE46E
-Encoding: 58478 58478 720
-Width: 1950
-GlyphClass: 2
-Flags: W
-Fore
-872 0 m 0,0,1
- 991 0 991 0 1138 52 c 0,2,3
- 1786 277 1786 277 1786 784 c 0,4,5
- 1786 1092 1786 1092 1590 1288 c 128,-1,6
- 1394 1484 1394 1484 1086 1484 c 0,7,8
- 972 1484 972 1484 822 1430 c 0,9,10
- 178 1205 178 1205 178 696 c 0,11,12
- 178 389 178 389 370 194 c 0,13,14
- 564 0 564 0 872 0 c 0,0,1
-270 706 m 0,15,16
- 270 970 270 970 440 1134 c 0,17,18
- 611 1302 611 1302 872 1302 c 0,19,20
- 1140 1302 1140 1302 1308 1134 c 0,21,22
- 1476 963 1476 963 1476 698 c 0,23,24
- 1476 430 1476 430 1308 262 c 128,-1,25
- 1140 94 1140 94 872 94 c 0,26,27
- 604 94 604 94 438 266 c 0,28,29
- 270 440 270 440 270 706 c 0,15,16
-EndSplineSet
-EndChar
-StartChar: uniE46F
-Encoding: 58479 58479 721
-Width: 946
-GlyphClass: 2
-Flags: W
-Fore
-170 1040 m 1,0,-1
- 770 1040 l 1,1,-1
- 770 440 l 1,2,-1
- 170 440 l 1,3,-1
- 170 1040 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE470
-Encoding: 58480 58480 722
-Width: 1824
-GlyphClass: 2
-Flags: W
-Fore
-322 148 m 1,0,-1
- 1506 148 l 1,1,-1
- 1506 1332 l 1,2,-1
- 322 1332 l 1,3,-1
- 322 148 l 1,0,-1
-172 0 m 1,4,-1
- 172 1480 l 1,5,-1
- 1652 1480 l 1,6,-1
- 1652 0 l 1,7,-1
- 172 0 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE471
-Encoding: 58481 58481 723
-Width: 1832
-GlyphClass: 2
-Flags: W
-Fore
-914 556 m 1,0,-1
- 272 370 l 1,1,-1
- 754 834 l 1,2,-1
- 914 1480 l 1,3,-1
- 1074 834 l 1,4,-1
- 1552 370 l 1,5,-1
- 914 556 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE472
-Encoding: 58482 58482 724
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-1690 746 m 1,0,-1
- 1074 588 l 1,1,-1
- 916 -28 l 1,2,-1
- 758 588 l 1,3,-1
- 142 746 l 1,4,-1
- 758 904 l 1,5,-1
- 916 1518 l 1,6,-1
- 1074 904 l 1,7,-1
- 1690 746 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE473
-Encoding: 58483 58483 725
-Width: 1846
-GlyphClass: 2
-Flags: W
-Fore
-906 1480 m 1,0,-1
- 1070 972 l 1,1,-1
- 1604 972 l 1,2,-1
- 1172 658 l 1,3,-1
- 1338 150 l 1,4,-1
- 906 464 l 1,5,-1
- 474 150 l 1,6,-1
- 638 658 l 1,7,-1
- 206 972 l 1,8,-1
- 740 972 l 1,9,-1
- 906 1480 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE474
-Encoding: 58484 58484 726
-Width: 1780
-GlyphClass: 2
-Flags: W
-Fore
-916 1442 m 1,0,-1
- 1092 1044 l 1,1,-1
- 1522 1092 l 1,2,-1
- 1266 742 l 1,3,-1
- 1522 392 l 1,4,-1
- 1092 438 l 1,5,-1
- 916 40 l 1,6,-1
- 742 438 l 1,7,-1
- 310 392 l 1,8,-1
- 566 742 l 1,9,-1
- 310 1092 l 1,10,-1
- 742 1044 l 1,11,-1
- 916 1442 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE475
-Encoding: 58485 58485 727
-Width: 1866
-GlyphClass: 2
-Flags: W
-Fore
-916 1470 m 1,0,-1
- 1054 1076 l 1,1,-1
- 1436 1256 l 1,2,-1
- 1256 876 l 1,3,-1
- 1650 736 l 1,4,-1
- 1256 594 l 1,5,-1
- 1436 216 l 1,6,-1
- 1054 396 l 1,7,-1
- 916 0 l 1,8,-1
- 774 396 l 1,9,-1
- 396 216 l 1,10,-1
- 576 594 l 1,11,-1
- 180 736 l 1,12,-1
- 576 876 l 1,13,-1
- 396 1256 l 1,14,-1
- 774 1076 l 1,15,-1
- 916 1470 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE476
-Encoding: 58486 58486 728
-Width: 1840
-GlyphClass: 2
-Flags: W
-Fore
-916 1454 m 1,0,-1
- 1064 1188 l 1,1,-1
- 1344 1314 l 1,2,-1
- 1308 1012 l 1,3,-1
- 1610 950 l 1,4,-1
- 1400 724 l 1,5,-1
- 1610 500 l 1,6,-1
- 1308 438 l 1,7,-1
- 1344 136 l 1,8,-1
- 1064 262 l 1,9,-1
- 916 -4 l 1,10,-1
- 764 262 l 1,11,-1
- 486 136 l 1,12,-1
- 522 438 l 1,13,-1
- 222 500 l 1,14,-1
- 428 724 l 1,15,-1
- 222 950 l 1,16,-1
- 522 1012 l 1,17,-1
- 486 1314 l 1,18,-1
- 764 1188 l 1,19,-1
- 916 1454 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE477
-Encoding: 58487 58487 729
-Width: 1866
-GlyphClass: 2
-Flags: W
-Fore
-928 750 m 1,0,-1
- 1384 888 l 1,1,-1
- 1044 888 l 1,2,-1
- 928 750 l 1,0,-1
-918 750 m 1,3,-1
- 918 1246 l 1,4,-1
- 788 902 l 1,5,-1
- 918 750 l 1,3,-1
-712 674 m 1,6,-1
- 888 738 l 1,7,-1
- 420 878 l 1,8,-1
- 712 674 l 1,6,-1
-940 724 m 1,9,-1
- 1258 322 l 1,10,-1
- 1116 674 l 1,11,-1
- 940 724 l 1,9,-1
-918 724 m 1,12,-1
- 612 322 l 1,13,-1
- 918 534 l 1,14,-1
- 918 724 l 1,12,-1
-1170 662 m 1,15,-1
- 1346 198 l 1,16,-1
- 918 498 l 1,17,-1
- 508 198 l 1,18,-1
- 662 662 l 1,19,-1
- 292 930 l 1,20,-1
- 752 930 l 1,21,-1
- 918 1386 l 1,22,-1
- 1064 930 l 1,23,-1
- 1524 930 l 1,24,-1
- 1170 662 l 1,15,-1
-EndSplineSet
-EndChar
-StartChar: uniE478
-Encoding: 58488 58488 730
-Width: 1866
-GlyphClass: 2
-Flags: W
-Fore
-938 690 m 1,0,-1
- 938 344 l 1,1,-1
- 1308 344 l 1,2,-1
- 1308 714 l 1,3,-1
- 962 714 l 1,4,-1
- 962 766 l 1,5,-1
- 1308 766 l 1,6,-1
- 1308 1134 l 1,7,-1
- 938 1134 l 1,8,-1
- 938 788 l 1,9,-1
- 888 788 l 1,10,-1
- 888 1134 l 1,11,-1
- 518 1134 l 1,12,-1
- 518 766 l 1,13,-1
- 864 766 l 1,14,-1
- 864 714 l 1,15,-1
- 518 714 l 1,16,-1
- 518 344 l 1,17,-1
- 888 344 l 1,18,-1
- 888 690 l 1,19,-1
- 938 690 l 1,0,-1
-938 0 m 1,20,-1
- 888 0 l 1,21,-1
- 888 296 l 1,22,-1
- 468 296 l 1,23,-1
- 468 714 l 1,24,-1
- 172 714 l 1,25,-1
- 172 766 l 1,26,-1
- 468 766 l 1,27,-1
- 468 1184 l 1,28,-1
- 888 1184 l 1,29,-1
- 888 1480 l 1,30,-1
- 938 1480 l 1,31,-1
- 938 1184 l 1,32,-1
- 1358 1184 l 1,33,-1
- 1358 766 l 1,34,-1
- 1652 766 l 1,35,-1
- 1652 714 l 1,36,-1
- 1358 714 l 1,37,-1
- 1358 296 l 1,38,-1
- 938 296 l 1,39,-1
- 938 0 l 1,20,-1
-EndSplineSet
-EndChar
-StartChar: uniE479
-Encoding: 58489 58489 731
-Width: 1886
-GlyphClass: 2
-Flags: W
-Fore
-938 690 m 1,0,-1
- 938 344 l 1,1,2
- 1098 362 1098 362 1194 458 c 0,3,4
- 1290 557 1290 557 1308 714 c 1,5,-1
- 962 714 l 1,6,-1
- 962 766 l 1,7,-1
- 1308 766 l 1,8,9
- 1269 1092 1269 1092 938 1134 c 1,10,-1
- 938 788 l 1,11,-1
- 888 788 l 1,12,-1
- 888 1134 l 1,13,14
- 729 1116 729 1116 632 1022 c 0,15,16
- 537 927 537 927 518 766 c 1,17,-1
- 864 766 l 1,18,-1
- 864 714 l 1,19,-1
- 520 714 l 1,20,21
- 535 555 535 555 630 460 c 0,22,23
- 728 362 728 362 888 344 c 1,24,-1
- 888 690 l 1,25,-1
- 938 690 l 1,0,-1
-938 0 m 1,26,-1
- 888 0 l 1,27,-1
- 888 296 l 1,28,29
- 705 317 705 317 598 424 c 0,30,31
- 489 533 489 533 468 714 c 1,32,-1
- 172 714 l 1,33,-1
- 172 766 l 1,34,-1
- 468 766 l 1,35,36
- 486 944 486 944 596 1054 c 0,37,38
- 711 1166 711 1166 888 1184 c 1,39,-1
- 888 1480 l 1,40,-1
- 938 1480 l 1,41,-1
- 938 1184 l 1,42,43
- 1119 1166 1119 1166 1230 1052 c 0,44,45
- 1343 942 1343 942 1358 766 c 1,46,-1
- 1652 766 l 1,47,-1
- 1652 714 l 1,48,-1
- 1358 714 l 1,49,50
- 1343 539 1343 539 1230 426 c 0,51,52
- 1118 314 1118 314 938 296 c 1,53,-1
- 938 0 l 1,26,-1
-EndSplineSet
-EndChar
-StartChar: uniE47A
-Encoding: 58490 58490 732
-Width: 1840
-GlyphClass: 2
-Flags: W
-Fore
-240 730 m 1,0,-1
- 912 1400 l 1,1,-1
- 1582 730 l 1,2,-1
- 912 60 l 1,3,-1
- 240 730 l 1,0,-1
-502 730 m 1,4,-1
- 912 322 l 1,5,-1
- 1320 730 l 1,6,-1
- 912 1140 l 1,7,-1
- 502 730 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE47B
-Encoding: 58491 58491 733
-Width: 1840
-GlyphClass: 2
-Flags: W
-Fore
-530 1120 m 1,0,-1
- 530 348 l 1,1,-1
- 1302 348 l 1,2,-1
- 1302 1120 l 1,3,-1
- 530 1120 l 1,0,-1
-406 1248 m 1,4,-1
- 1426 1248 l 1,5,-1
- 1426 228 l 1,6,-1
- 406 228 l 1,7,-1
- 406 1248 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE47C
-Encoding: 58492 58492 734
-Width: 1952
-GlyphClass: 2
-Flags: W
-Fore
-1134 874 m 0,0,1
- 1134 934 1134 934 1094 974 c 0,2,3
- 1050 1018 1050 1018 990 1018 c 2,4,-1
- 846 1018 l 2,5,6
- 720 1018 720 1018 702 874 c 1,7,-1
- 774 874 l 1,8,9
- 777 946 777 946 846 946 c 2,10,-1
- 920 946 l 2,11,12
- 949 946 949 946 968 924 c 0,13,14
- 990 902 990 902 990 874 c 0,15,16
- 990 859 990 859 918 784 c 128,-1,17
- 846 709 846 709 846 658 c 2,18,-1
- 846 586 l 1,19,-1
- 990 586 l 1,20,-1
- 990 676 l 2,21,22
- 990 698 990 698 1026 728 c 0,23,24
- 1083 765 1083 765 1098 780 c 0,25,26
- 1134 819 1134 819 1134 874 c 0,0,1
-990 368 m 1,27,-1
- 990 514 l 1,28,-1
- 846 514 l 1,29,-1
- 846 368 l 1,30,-1
- 990 368 l 1,27,-1
-172 740 m 1,31,-1
- 914 1480 l 1,32,-1
- 1652 740 l 1,33,-1
- 914 0 l 1,34,-1
- 172 740 l 1,31,-1
-314 740 m 1,35,-1
- 914 140 l 1,36,-1
- 1514 740 l 1,37,-1
- 914 1340 l 1,38,-1
- 314 740 l 1,35,-1
-EndSplineSet
-EndChar
-StartChar: uniE47D
-Encoding: 58493 58493 735
-Width: 1874
-GlyphClass: 2
-Flags: W
-Fore
-928 1428 m 0,0,1
- 1638 1428 1638 1428 1638 718 c 128,-1,2
- 1638 8 1638 8 928 8 c 0,3,4
- 220 8 220 8 220 718 c 128,-1,5
- 220 1428 220 1428 928 1428 c 0,0,1
-636 668 m 1,6,-1
- 498 140 l 1,7,-1
- 938 420 l 1,8,-1
- 1344 118 l 1,9,-1
- 1218 646 l 1,10,-1
- 1574 936 l 1,11,-1
- 1108 970 l 1,12,-1
- 918 1410 l 1,13,-1
- 742 974 l 1,14,-1
- 248 940 l 1,15,-1
- 636 668 l 1,6,-1
-EndSplineSet
-EndChar
-StartChar: uniE47E
-Encoding: 58494 58494 736
-Width: 1848
-GlyphClass: 2
-Flags: W
-Fore
-986 1336 m 1,0,-1
- 1124 930 l 1,1,-1
- 1532 930 l 1,2,-1
- 1210 680 l 1,3,-1
- 1362 260 l 1,4,-1
- 986 536 l 1,5,-1
- 634 246 l 1,6,-1
- 782 680 l 1,7,-1
- 426 930 l 1,8,-1
- 858 930 l 1,9,-1
- 986 1336 l 1,0,-1
-610 172 m 1,10,-1
- 874 370 l 1,11,-1
- 1200 136 l 1,12,-1
- 1432 190 l 1,13,-1
- 1282 648 l 1,14,-1
- 1670 972 l 1,15,-1
- 1166 972 l 1,16,-1
- 1014 1432 l 1,17,-1
- 782 1390 l 1,18,-1
- 632 972 l 1,19,-1
- 246 972 l 1,20,-1
- 148 930 l 1,21,-1
- 542 648 l 1,22,-1
- 374 162 l 1,23,-1
- 610 172 l 1,10,-1
-EndSplineSet
-EndChar
-StartChar: uniE47F
-Encoding: 58495 58495 737
-Width: 2048
-GlyphClass: 2
-Flags: W
-EndChar
-StartChar: uniE48B
-Encoding: 58507 58507 738
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-1160 1382 m 1,0,-1
- 1160 740 l 1,1,-1
- 1240 740 l 2,2,3
- 1415 740 1415 740 1484 800 c 0,4,5
- 1554 858 1554 858 1554 1010 c 2,6,-1
- 1554 1382 l 1,7,-1
- 1358 1184 l 1,8,-1
- 1160 1382 l 1,0,-1
-172 444 m 1,9,-1
- 802 1074 l 1,10,-1
- 802 740 l 1,11,-1
- 1060 740 l 1,12,-1
- 1060 1616 l 1,13,-1
- 1358 1320 l 1,14,-1
- 1652 1616 l 1,15,-1
- 1652 1088 l 2,16,17
- 1652 903 1652 903 1622 828 c 0,18,19
- 1588 749 1588 749 1460 620 c 2,20,-1
- 1142 302 l 2,21,22
- 1052 209 1052 209 990 178 c 0,23,24
- 927 148 927 148 832 148 c 2,25,-1
- 802 148 l 1,26,-1
- 802 -184 l 1,27,-1
- 172 444 l 1,9,-1
-EndSplineSet
-EndChar
-StartChar: uniE48C
-Encoding: 58508 58508 739
-Width: 1806
-GlyphClass: 2
-Flags: W
-Fore
-1652 444 m 1,0,-1
- 1024 -184 l 1,1,-1
- 1024 148 l 1,2,-1
- 996 148 l 2,3,4
- 898 148 898 148 838 178 c 0,5,6
- 781 205 781 205 684 302 c 2,7,-1
- 366 620 l 2,8,9
- 238 748 238 748 204 828 c 0,10,11
- 172 901 172 901 172 1088 c 2,12,-1
- 172 1616 l 1,13,-1
- 468 1320 l 1,14,-1
- 766 1616 l 1,15,-1
- 766 740 l 1,16,-1
- 1024 740 l 1,17,-1
- 1024 1074 l 1,18,-1
- 1652 444 l 1,0,-1
-666 1382 m 1,19,-1
- 468 1184 l 1,20,-1
- 272 1382 l 1,21,-1
- 272 1010 l 2,22,23
- 272 862 272 862 342 800 c 0,24,25
- 414 740 414 740 588 740 c 2,26,-1
- 668 740 l 1,27,-1
- 666 1382 l 1,19,-1
-EndSplineSet
-EndChar
-StartChar: uniE48D
-Encoding: 58509 58509 740
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-172 988 m 1,0,-1
- 802 1616 l 1,1,-1
- 802 1282 l 1,2,-1
- 832 1282 l 2,3,4
- 923 1282 923 1282 988 1254 c 0,5,6
- 1056 1216 1056 1216 1142 1128 c 2,7,-1
- 1460 812 l 2,8,9
- 1590 679 1590 679 1622 604 c 0,10,11
- 1652 529 1652 529 1652 344 c 2,12,-1
- 1652 -184 l 1,13,-1
- 1358 110 l 1,14,-1
- 1060 -184 l 1,15,-1
- 1060 690 l 1,16,-1
- 802 690 l 1,17,-1
- 802 358 l 1,18,-1
- 172 988 l 1,0,-1
-1160 50 m 1,19,-1
- 1358 248 l 1,20,-1
- 1554 50 l 1,21,-1
- 1554 422 l 2,22,23
- 1554 570 1554 570 1482 630 c 0,24,25
- 1413 690 1413 690 1240 690 c 2,26,-1
- 1160 690 l 1,27,-1
- 1160 50 l 1,19,-1
-EndSplineSet
-EndChar
-StartChar: uniE48E
-Encoding: 58510 58510 741
-Width: 1860
-GlyphClass: 2
-Flags: W
-Fore
-1652 988 m 1,0,-1
- 1024 358 l 1,1,-1
- 1024 690 l 1,2,-1
- 766 690 l 1,3,-1
- 766 -184 l 1,4,-1
- 468 110 l 1,5,-1
- 172 -184 l 1,6,-1
- 172 344 l 2,7,8
- 172 531 172 531 204 604 c 0,9,10
- 237 682 237 682 364 812 c 2,11,-1
- 682 1128 l 2,12,13
- 769 1218 769 1218 838 1254 c 0,14,15
- 900 1282 900 1282 994 1282 c 2,16,-1
- 1024 1282 l 1,17,-1
- 1024 1616 l 1,18,-1
- 1652 988 l 1,0,-1
-666 50 m 1,19,-1
- 666 690 l 1,20,-1
- 588 690 l 2,21,22
- 411 690 411 690 342 630 c 0,23,24
- 270 570 270 570 270 422 c 2,25,-1
- 270 50 l 1,26,-1
- 468 248 l 1,27,-1
- 666 50 l 1,19,-1
-EndSplineSet
-EndChar
-StartChar: uniE48F
-Encoding: 58511 58511 742
-Width: 1860
-GlyphClass: 2
-Flags: W
-Fore
-642 1456 m 1,0,-1
- 1270 828 l 1,1,-1
- 938 828 l 1,2,-1
- 938 568 l 1,3,-1
- 1812 568 l 1,4,-1
- 1518 272 l 1,5,-1
- 1812 -24 l 1,6,-1
- 1284 -24 l 2,7,8
- 1099 -24 1099 -24 1024 6 c 0,9,10
- 945 41 945 41 818 168 c 2,11,-1
- 500 486 l 2,12,13
- 410 571 410 571 376 638 c 0,14,15
- 346 704 346 704 346 796 c 2,16,-1
- 346 828 l 1,17,-1
- 12 828 l 1,18,-1
- 642 1456 l 1,0,-1
-1580 468 m 1,19,-1
- 938 468 l 1,20,-1
- 938 390 l 2,21,22
- 938 216 938 216 998 144 c 0,23,24
- 1056 74 1056 74 1208 74 c 2,25,-1
- 1580 74 l 1,26,-1
- 1382 272 l 1,27,-1
- 1580 468 l 1,19,-1
-EndSplineSet
-EndChar
-StartChar: uniE490
-Encoding: 58512 58512 743
-Width: 1860
-GlyphClass: 2
-Flags: W
-Fore
-1184 1456 m 1,0,-1
- 556 828 l 1,1,-1
- 888 828 l 1,2,-1
- 888 568 l 1,3,-1
- 12 568 l 1,4,-1
- 310 272 l 1,5,-1
- 12 -24 l 1,6,-1
- 540 -24 l 2,7,8
- 724 -24 724 -24 802 6 c 0,9,10
- 878 38 878 38 1008 168 c 2,11,-1
- 1328 486 l 2,12,13
- 1420 578 1420 578 1450 638 c 0,14,15
- 1480 704 1480 704 1480 796 c 2,16,-1
- 1480 828 l 1,17,-1
- 1812 828 l 1,18,-1
- 1184 1456 l 1,0,-1
-246 468 m 1,19,-1
- 888 468 l 1,20,-1
- 888 390 l 2,21,22
- 888 216 888 216 828 144 c 0,23,24
- 770 74 770 74 618 74 c 2,25,-1
- 246 74 l 1,26,-1
- 444 272 l 1,27,-1
- 246 468 l 1,19,-1
-EndSplineSet
-EndChar
-StartChar: uniE491
-Encoding: 58513 58513 744
-Width: 1860
-GlyphClass: 2
-Flags: W
-Fore
-642 -24 m 1,0,-1
- 1270 604 l 1,1,-1
- 938 604 l 1,2,-1
- 938 864 l 1,3,-1
- 1812 864 l 1,4,-1
- 1518 1160 l 1,5,-1
- 1812 1456 l 1,6,-1
- 1284 1456 l 2,7,8
- 1097 1456 1097 1456 1024 1424 c 0,9,10
- 942 1388 942 1388 818 1264 c 2,11,-1
- 500 946 l 2,12,13
- 408 857 408 857 376 790 c 0,14,15
- 346 730 346 730 346 634 c 2,16,-1
- 346 604 l 1,17,-1
- 12 604 l 1,18,-1
- 642 -24 l 1,0,-1
-1580 962 m 1,19,-1
- 938 962 l 1,20,-1
- 938 1042 l 2,21,22
- 938 1217 938 1217 998 1286 c 0,23,24
- 1058 1358 1058 1358 1208 1358 c 2,25,-1
- 1580 1358 l 1,26,-1
- 1382 1160 l 1,27,-1
- 1580 962 l 1,19,-1
-EndSplineSet
-EndChar
-StartChar: uniE492
-Encoding: 58514 58514 745
-Width: 1860
-GlyphClass: 2
-Flags: W
-Fore
-1184 -24 m 1,0,-1
- 556 604 l 1,1,-1
- 888 604 l 1,2,-1
- 888 864 l 1,3,-1
- 12 864 l 1,4,-1
- 310 1160 l 1,5,-1
- 12 1456 l 1,6,-1
- 540 1456 l 2,7,8
- 726 1456 726 1456 802 1424 c 0,9,10
- 882 1390 882 1390 1008 1264 c 2,11,-1
- 1328 946 l 2,12,13
- 1421 850 1421 850 1450 790 c 0,14,15
- 1480 730 1480 730 1480 634 c 2,16,-1
- 1480 604 l 1,17,-1
- 1812 604 l 1,18,-1
- 1184 -24 l 1,0,-1
-246 962 m 1,19,-1
- 888 962 l 1,20,-1
- 888 1042 l 2,21,22
- 888 1217 888 1217 828 1286 c 0,23,24
- 768 1358 768 1358 618 1358 c 2,25,-1
- 246 1358 l 1,26,-1
- 444 1160 l 1,27,-1
- 246 962 l 1,19,-1
-EndSplineSet
-EndChar
-StartChar: uniE495
-Encoding: 58517 58517 746
-Width: 1652
-GlyphClass: 2
-Flags: W
-Fore
-170 -206 m 1,0,-1
- 140 -174 l 1,1,-1
- 138 -159 l 1,2,-1
- 138 -158 l 2,3,4
- 138 -116 138 -116 150 -62 c 0,5,6
- 170 14 170 14 178 52 c 0,7,8
- 186 97 186 97 186 182 c 0,9,10
- 186 257 186 257 180 350 c 0,11,12
- 168 491 168 491 168 576 c 0,13,14
- 168 610 168 610 172 654 c 0,15,16
- 190 816 190 816 294 920 c 0,17,18
- 385 1011 385 1011 502 1014 c 2,19,-1
- 514 1014 l 2,20,21
- 626 1014 626 1014 708 932 c 0,22,23
- 796 847 796 847 796 684 c 0,24,25
- 796 630 796 630 788 582 c 1,26,27
- 1004 830 1004 830 1068 1090 c 1,28,-1
- 1434 722 l 1,29,30
- 1179 661 1179 661 926 444 c 1,31,32
- 974 452 974 452 1028 452 c 0,33,34
- 1191 452 1191 452 1276 364 c 0,35,36
- 1360 280 1360 280 1360 172 c 2,37,-1
- 1360 158 l 2,38,39
- 1357 41 1357 41 1266 -50 c 0,40,41
- 1164 -149 1164 -149 1002 -170 c 0,42,43
- 954 -176 954 -176 884 -176 c 0,44,45
- 793 -176 793 -176 694 -168 c 0,46,47
- 598 -160 598 -160 508 -160 c 0,48,49
- 433 -160 433 -160 396 -168 c 0,50,51
- 355 -173 355 -173 170 -206 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE496
-Encoding: 58518 58518 747
-Width: 1652
-GlyphClass: 2
-Flags: W
-Fore
-170 1090 m 1,0,-1
- 140 1058 l 1,1,-1
- 138 1041 l 1,2,-1
- 138 1040 l 2,3,4
- 138 998 138 998 150 944 c 0,5,6
- 168 880 168 880 178 834 c 0,7,8
- 186 786 186 786 186 702 c 0,9,10
- 186 628 186 628 180 532 c 0,11,12
- 168 397 168 397 168 310 c 0,13,14
- 168 270 168 270 172 230 c 0,15,16
- 190 68 190 68 294 -36 c 0,17,18
- 382 -124 382 -124 502 -130 c 2,19,-1
- 514 -130 l 2,20,21
- 626 -130 626 -130 708 -48 c 0,22,23
- 796 40 796 40 796 200 c 0,24,25
- 796 253 796 253 788 304 c 1,26,27
- 1004 49 1004 49 1068 -206 c 1,28,-1
- 1434 162 l 1,29,30
- 1179 223 1179 223 926 440 c 1,31,32
- 974 432 974 432 1028 432 c 0,33,34
- 1190 432 1190 432 1276 518 c 0,35,36
- 1360 602 1360 602 1360 712 c 2,37,-1
- 1360 728 l 2,38,39
- 1357 843 1357 843 1266 934 c 0,40,41
- 1161 1036 1161 1036 1002 1054 c 0,42,43
- 954 1060 954 1060 884 1060 c 0,44,45
- 793 1060 793 1060 694 1052 c 0,46,47
- 550 1044 550 1044 508 1044 c 0,48,49
- 438 1044 438 1044 396 1050 c 0,50,51
- 370 1054 370 1054 170 1090 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE497
-Encoding: 58519 58519 748
-Width: 1652
-GlyphClass: 2
-Flags: W
-Fore
-1402 -206 m 1,0,-1
- 1434 -174 l 1,1,-1
- 1434 -158 l 2,2,3
- 1434 -122 1434 -122 1424 -62 c 0,4,5
- 1406 -5 1406 -5 1394 52 c 0,6,7
- 1384 109 1384 109 1384 182 c 0,8,9
- 1384 226 1384 226 1392 350 c 0,10,11
- 1404 491 1404 491 1404 576 c 0,12,13
- 1404 632 1404 632 1400 654 c 0,14,15
- 1382 816 1382 816 1278 920 c 0,16,17
- 1190 1011 1190 1011 1070 1014 c 2,18,-1
- 1056 1014 l 2,19,20
- 944 1014 944 1014 862 932 c 0,21,22
- 776 846 776 846 776 684 c 0,23,24
- 776 636 776 636 782 582 c 1,25,26
- 566 834 566 834 506 1090 c 1,27,-1
- 138 722 l 1,28,29
- 392 662 392 662 648 444 c 1,30,31
- 597 452 597 452 542 452 c 0,32,33
- 384 452 384 452 296 364 c 0,34,35
- 212 280 212 280 212 172 c 2,36,-1
- 212 158 l 2,37,38
- 218 40 218 40 308 -50 c 0,39,40
- 407 -149 407 -149 570 -170 c 0,41,42
- 615 -176 615 -176 688 -176 c 0,43,44
- 780 -176 780 -176 876 -168 c 0,45,46
- 975 -160 975 -160 1062 -160 c 0,47,48
- 1138 -160 1138 -160 1178 -168 c 0,49,50
- 1220 -173 1220 -173 1402 -206 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE498
-Encoding: 58520 58520 749
-Width: 1652
-GlyphClass: 2
-Flags: W
-Fore
-1402 1090 m 1,0,-1
- 1434 1058 l 1,1,-1
- 1434 1040 l 2,2,3
- 1434 1004 1434 1004 1424 944 c 0,4,5
- 1407 894 1407 894 1394 834 c 0,6,7
- 1384 774 1384 774 1384 702 c 0,8,9
- 1384 660 1384 660 1392 532 c 0,10,11
- 1404 397 1404 397 1404 310 c 0,12,13
- 1404 250 1404 250 1400 230 c 0,14,15
- 1382 68 1382 68 1278 -36 c 0,16,17
- 1193 -124 1193 -124 1070 -130 c 2,18,-1
- 1056 -130 l 2,19,20
- 944 -130 944 -130 862 -48 c 0,21,22
- 776 41 776 41 776 200 c 0,23,24
- 776 247 776 247 782 304 c 1,25,26
- 566 46 566 46 506 -206 c 1,27,-1
- 138 162 l 1,28,29
- 392 222 392 222 648 440 c 1,30,31
- 597 432 597 432 542 432 c 0,32,33
- 385 432 385 432 296 518 c 0,34,35
- 212 602 212 602 212 712 c 2,36,-1
- 212 728 l 2,37,38
- 218 844 218 844 308 934 c 0,39,40
- 410 1036 410 1036 570 1054 c 0,41,42
- 615 1060 615 1060 688 1060 c 0,43,44
- 780 1060 780 1060 876 1052 c 0,45,46
- 1024 1044 1024 1044 1062 1044 c 0,47,48
- 1133 1044 1133 1044 1178 1050 c 0,49,50
- 1252 1062 1252 1062 1402 1090 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE499
-Encoding: 58521 58521 750
-Width: 1652
-GlyphClass: 2
-Flags: W
-Fore
-170 1090 m 1,0,-1
- 140 1058 l 1,1,-1
- 138 1041 l 1,2,-1
- 138 1040 l 2,3,4
- 138 998 138 998 150 944 c 0,5,6
- 168 880 168 880 178 834 c 0,7,8
- 186 786 186 786 186 702 c 0,9,10
- 186 628 186 628 180 532 c 0,11,12
- 168 397 168 397 168 310 c 0,13,14
- 168 270 168 270 172 230 c 0,15,16
- 190 68 190 68 294 -36 c 0,17,18
- 382 -124 382 -124 502 -130 c 2,19,-1
- 514 -130 l 2,20,21
- 626 -130 626 -130 708 -48 c 0,22,23
- 796 40 796 40 796 200 c 0,24,25
- 796 253 796 253 788 304 c 1,26,27
- 1004 49 1004 49 1068 -206 c 1,28,-1
- 1434 162 l 1,29,30
- 1179 223 1179 223 926 440 c 1,31,32
- 974 432 974 432 1028 432 c 0,33,34
- 1190 432 1190 432 1276 518 c 0,35,36
- 1360 602 1360 602 1360 712 c 2,37,-1
- 1360 728 l 2,38,39
- 1357 843 1357 843 1266 934 c 0,40,41
- 1161 1036 1161 1036 1002 1054 c 0,42,43
- 954 1060 954 1060 884 1060 c 0,44,45
- 793 1060 793 1060 694 1052 c 0,46,47
- 550 1044 550 1044 508 1044 c 0,48,49
- 438 1044 438 1044 396 1050 c 0,50,51
- 370 1054 370 1054 170 1090 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE49A
-Encoding: 58522 58522 751
-Width: 1652
-GlyphClass: 2
-Flags: W
-Fore
-170 -206 m 1,0,-1
- 140 -174 l 1,1,-1
- 138 -159 l 1,2,-1
- 138 -158 l 2,3,4
- 138 -116 138 -116 150 -62 c 0,5,6
- 170 14 170 14 178 52 c 0,7,8
- 186 97 186 97 186 182 c 0,9,10
- 186 257 186 257 180 350 c 0,11,12
- 168 491 168 491 168 576 c 0,13,14
- 168 610 168 610 172 654 c 0,15,16
- 190 816 190 816 294 920 c 0,17,18
- 385 1011 385 1011 502 1014 c 2,19,-1
- 514 1014 l 2,20,21
- 626 1014 626 1014 708 932 c 0,22,23
- 796 847 796 847 796 684 c 0,24,25
- 796 630 796 630 788 582 c 1,26,27
- 1004 830 1004 830 1068 1090 c 1,28,-1
- 1434 722 l 1,29,30
- 1179 661 1179 661 926 444 c 1,31,32
- 974 452 974 452 1028 452 c 0,33,34
- 1191 452 1191 452 1276 364 c 0,35,36
- 1360 280 1360 280 1360 172 c 2,37,-1
- 1360 158 l 2,38,39
- 1357 41 1357 41 1266 -50 c 0,40,41
- 1164 -149 1164 -149 1002 -170 c 0,42,43
- 954 -176 954 -176 884 -176 c 0,44,45
- 793 -176 793 -176 694 -168 c 0,46,47
- 598 -160 598 -160 508 -160 c 0,48,49
- 433 -160 433 -160 396 -168 c 0,50,51
- 355 -173 355 -173 170 -206 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE49B
-Encoding: 58523 58523 752
-Width: 1652
-GlyphClass: 2
-Flags: W
-Fore
-1402 1090 m 1,0,-1
- 1434 1058 l 1,1,-1
- 1434 1040 l 2,2,3
- 1434 1004 1434 1004 1424 944 c 0,4,5
- 1407 894 1407 894 1394 834 c 0,6,7
- 1384 774 1384 774 1384 702 c 0,8,9
- 1384 660 1384 660 1392 532 c 0,10,11
- 1404 397 1404 397 1404 310 c 0,12,13
- 1404 250 1404 250 1400 230 c 0,14,15
- 1382 68 1382 68 1278 -36 c 0,16,17
- 1193 -124 1193 -124 1070 -130 c 2,18,-1
- 1056 -130 l 2,19,20
- 944 -130 944 -130 862 -48 c 0,21,22
- 776 41 776 41 776 200 c 0,23,24
- 776 247 776 247 782 304 c 1,25,26
- 566 46 566 46 506 -206 c 1,27,-1
- 138 162 l 1,28,29
- 392 222 392 222 648 440 c 1,30,31
- 597 432 597 432 542 432 c 0,32,33
- 385 432 385 432 296 518 c 0,34,35
- 212 602 212 602 212 712 c 2,36,-1
- 212 728 l 2,37,38
- 218 844 218 844 308 934 c 0,39,40
- 410 1036 410 1036 570 1054 c 0,41,42
- 615 1060 615 1060 688 1060 c 0,43,44
- 780 1060 780 1060 876 1052 c 0,45,46
- 1024 1044 1024 1044 1062 1044 c 0,47,48
- 1133 1044 1133 1044 1178 1050 c 0,49,50
- 1252 1062 1252 1062 1402 1090 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE49C
-Encoding: 58524 58524 753
-Width: 1652
-GlyphClass: 2
-Flags: W
-Fore
-1402 -206 m 1,0,-1
- 1434 -174 l 1,1,-1
- 1434 -158 l 2,2,3
- 1434 -122 1434 -122 1424 -62 c 0,4,5
- 1406 -5 1406 -5 1394 52 c 0,6,7
- 1384 109 1384 109 1384 182 c 0,8,9
- 1384 226 1384 226 1392 350 c 0,10,11
- 1404 491 1404 491 1404 576 c 0,12,13
- 1404 632 1404 632 1400 654 c 0,14,15
- 1382 816 1382 816 1278 920 c 0,16,17
- 1190 1011 1190 1011 1070 1014 c 2,18,-1
- 1056 1014 l 2,19,20
- 944 1014 944 1014 862 932 c 0,21,22
- 776 846 776 846 776 684 c 0,23,24
- 776 636 776 636 782 582 c 1,25,26
- 566 834 566 834 506 1090 c 1,27,-1
- 138 722 l 1,28,29
- 392 662 392 662 648 444 c 1,30,31
- 597 452 597 452 542 452 c 0,32,33
- 384 452 384 452 296 364 c 0,34,35
- 212 280 212 280 212 172 c 2,36,-1
- 212 158 l 2,37,38
- 218 40 218 40 308 -50 c 0,39,40
- 407 -149 407 -149 570 -170 c 0,41,42
- 615 -176 615 -176 688 -176 c 0,43,44
- 780 -176 780 -176 876 -168 c 0,45,46
- 975 -160 975 -160 1062 -160 c 0,47,48
- 1138 -160 1138 -160 1178 -168 c 0,49,50
- 1220 -173 1220 -173 1402 -206 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE49D
-Encoding: 58525 58525 754
-Width: 1654
-GlyphClass: 2
-Flags: W
-Fore
-1454 0 m 1,0,-1
- 1024 740 l 1,1,-1
- 1454 1482 l 1,2,-1
- 170 740 l 1,3,-1
- 1454 0 l 1,0,-1
-268 740 m 1,4,-1
- 1318 1348 l 1,5,-1
- 966 740 l 1,6,-1
- 268 740 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE49E
-Encoding: 58526 58526 755
-Width: 1632
-GlyphClass: 2
-Flags: W
-Fore
-170 0 m 1,0,-1
- 598 740 l 1,1,-1
- 170 1482 l 1,2,-1
- 1454 740 l 1,3,-1
- 170 0 l 1,0,-1
-1356 740 m 1,4,-1
- 306 1348 l 1,5,-1
- 656 740 l 1,6,-1
- 1356 740 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE49F
-Encoding: 58527 58527 756
-Width: 1632
-GlyphClass: 2
-Flags: W
-Fore
-1552 100 m 1,0,-1
- 814 528 l 1,1,-1
- 70 100 l 1,2,-1
- 814 1382 l 1,3,-1
- 1552 100 l 1,0,-1
-814 1284 m 1,4,-1
- 206 236 l 1,5,-1
- 814 586 l 1,6,-1
- 814 1284 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE4A0
-Encoding: 58528 58528 757
-Width: 1632
-GlyphClass: 2
-Flags: W
-Fore
-1552 1382 m 1,0,-1
- 814 954 l 1,1,-1
- 70 1382 l 1,2,-1
- 814 100 l 1,3,-1
- 1552 1382 l 1,0,-1
-814 198 m 1,4,-1
- 206 1248 l 1,5,-1
- 814 898 l 1,6,-1
- 814 198 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE4A1
-Encoding: 58529 58529 758
-Width: 1814
-GlyphClass: 2
-Flags: W
-Fore
-716 994 m 1,0,-1
- 716 1236 l 1,1,-1
- 222 744 l 1,2,-1
- 716 250 l 1,3,-1
- 716 494 l 1,4,-1
- 1612 494 l 1,5,6
- 1532 272 1532 272 1342 136 c 0,7,8
- 1149 0 1149 0 914 0 c 0,9,10
- 588 0 588 0 380 208 c 0,11,12
- 172 419 172 419 172 744 c 0,13,14
- 172 1072 172 1072 378 1278 c 128,-1,15
- 584 1484 584 1484 914 1484 c 0,16,17
- 1153 1484 1153 1484 1342 1352 c 0,18,19
- 1532 1216 1532 1216 1612 994 c 1,20,-1
- 716 994 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE4A2
-Encoding: 58530 58530 759
-Width: 1814
-GlyphClass: 2
-Flags: W
-Fore
-1112 494 m 1,0,-1
- 1112 250 l 1,1,-1
- 1606 744 l 1,2,-1
- 1112 1236 l 1,3,-1
- 1112 994 l 1,4,-1
- 216 994 l 1,5,6
- 298 1218 298 1218 488 1352 c 0,7,8
- 677 1484 677 1484 916 1484 c 0,9,10
- 1242 1484 1242 1484 1448 1278 c 0,11,12
- 1654 1069 1654 1069 1654 744 c 0,13,14
- 1654 416 1654 416 1450 206 c 0,15,16
- 1244 0 1244 0 916 0 c 0,17,18
- 676 0 676 0 488 134 c 0,19,20
- 297 268 297 268 216 494 c 1,21,-1
- 1112 494 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE4A3
-Encoding: 58531 58531 760
-Width: 1798
-GlyphClass: 2
-Flags: W
-Fore
-1170 936 m 1,0,-1
- 1416 936 l 1,1,-1
- 920 1430 l 1,2,-1
- 426 936 l 1,3,-1
- 670 936 l 1,4,-1
- 670 38 l 1,5,6
- 446 122 446 122 312 312 c 0,7,8
- 178 497 178 497 178 738 c 0,9,10
- 178 1065 178 1065 388 1272 c 0,11,12
- 591 1478 591 1478 920 1478 c 0,13,14
- 1247 1478 1247 1478 1456 1272 c 0,15,16
- 1662 1069 1662 1069 1662 738 c 0,17,18
- 1662 496 1662 496 1530 310 c 0,19,20
- 1396 122 1396 122 1170 38 c 1,21,-1
- 1170 936 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE4A4
-Encoding: 58532 58532 761
-Width: 1798
-GlyphClass: 2
-Flags: W
-Fore
-666 544 m 1,0,-1
- 420 544 l 1,1,-1
- 916 52 l 1,2,-1
- 1410 544 l 1,3,-1
- 1166 544 l 1,4,-1
- 1166 1442 l 1,5,6
- 1387 1361 1387 1361 1524 1170 c 0,7,8
- 1656 978 1656 978 1656 742 c 0,9,10
- 1656 413 1656 413 1448 208 c 0,11,12
- 1242 2 1242 2 916 2 c 0,13,14
- 588 2 588 2 378 206 c 0,15,16
- 172 412 172 412 172 742 c 0,17,18
- 172 982 172 982 306 1170 c 0,19,20
- 443 1362 443 1362 666 1442 c 1,21,-1
- 666 544 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE4A5
-Encoding: 58533 58533 762
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 1,0,-1
- 914 1480 l 1,1,-1
- 1192 1480 l 1,2,-1
- 550 840 l 1,3,-1
- 1836 840 l 1,4,-1
- 1836 642 l 1,5,-1
- 550 642 l 1,6,-1
- 1192 0 l 1,7,-1
- 914 0 l 1,8,-1
- 172 740 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE4A6
-Encoding: 58534 58534 763
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-1836 740 m 1,0,-1
- 1094 1480 l 1,1,-1
- 816 1480 l 1,2,-1
- 1456 840 l 1,3,-1
- 172 840 l 1,4,-1
- 172 642 l 1,5,-1
- 1456 642 l 1,6,-1
- 816 0 l 1,7,-1
- 1094 0 l 1,8,-1
- 1836 740 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE4A7
-Encoding: 58535 58535 764
-Width: 1836
-GlyphClass: 2
-Flags: W
-Fore
-914 1480 m 1,0,-1
- 1652 740 l 1,1,-1
- 1652 460 l 1,2,-1
- 1012 1102 l 1,3,-1
- 1012 -180 l 1,4,-1
- 814 -180 l 1,5,-1
- 814 1102 l 1,6,-1
- 172 460 l 1,7,-1
- 172 740 l 1,8,-1
- 914 1480 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE4A8
-Encoding: 58536 58536 765
-Width: 1832
-GlyphClass: 2
-Flags: W
-Fore
-914 0 m 1,0,-1
- 172 740 l 1,1,-1
- 172 1020 l 1,2,-1
- 814 378 l 1,3,-1
- 814 1660 l 1,4,-1
- 1012 1660 l 1,5,-1
- 1012 378 l 1,6,-1
- 1652 1020 l 1,7,-1
- 1652 740 l 1,8,-1
- 914 0 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE4A9
-Encoding: 58537 58537 766
-Width: 1590
-GlyphClass: 2
-Flags: W
-Fore
-172 1362 m 1,0,-1
- 1220 1362 l 1,1,-1
- 1418 1166 l 1,2,-1
- 510 1166 l 1,3,-1
- 1418 258 l 1,4,-1
- 1278 118 l 1,5,-1
- 370 1024 l 1,6,-1
- 370 118 l 1,7,-1
- 172 316 l 1,8,-1
- 172 1362 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE4AA
-Encoding: 58538 58538 767
-Width: 1600
-GlyphClass: 2
-Flags: W
-Fore
-1418 1362 m 1,0,-1
- 370 1362 l 1,1,-1
- 172 1166 l 1,2,-1
- 1080 1166 l 1,3,-1
- 172 258 l 1,4,-1
- 312 118 l 1,5,-1
- 1220 1024 l 1,6,-1
- 1220 118 l 1,7,-1
- 1418 316 l 1,8,-1
- 1418 1362 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE4AB
-Encoding: 58539 58539 768
-Width: 1662
-GlyphClass: 2
-Flags: W
-Fore
-172 118 m 1,0,-1
- 172 1166 l 1,1,-1
- 370 1362 l 1,2,-1
- 370 454 l 1,3,-1
- 1278 1362 l 1,4,-1
- 1418 1222 l 1,5,-1
- 510 316 l 1,6,-1
- 1418 316 l 1,7,-1
- 1220 118 l 1,8,-1
- 172 118 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE4AC
-Encoding: 58540 58540 769
-Width: 1526
-GlyphClass: 2
-Flags: W
-Fore
-1418 118 m 1,0,-1
- 1418 1166 l 1,1,-1
- 1220 1362 l 1,2,-1
- 1218 454 l 1,3,-1
- 312 1362 l 1,4,-1
- 172 1222 l 1,5,-1
- 1080 316 l 1,6,-1
- 172 316 l 1,7,-1
- 370 118 l 1,8,-1
- 1418 118 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE4AD
-Encoding: 58541 58541 770
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 1,0,-1
- 914 1480 l 1,1,-1
- 1470 1480 l 1,2,-1
- 928 938 l 1,3,-1
- 2014 938 l 1,4,-1
- 2014 542 l 1,5,-1
- 928 542 l 1,6,-1
- 1470 0 l 1,7,-1
- 914 0 l 1,8,-1
- 172 740 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE4AE
-Encoding: 58542 58542 771
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-2014 740 m 1,0,-1
- 1274 1480 l 1,1,-1
- 716 1480 l 1,2,-1
- 1260 938 l 1,3,-1
- 172 938 l 1,4,-1
- 172 542 l 1,5,-1
- 1260 542 l 1,6,-1
- 716 0 l 1,7,-1
- 1274 0 l 1,8,-1
- 2014 740 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE4AF
-Encoding: 58543 58543 772
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-914 1480 m 1,0,-1
- 1652 740 l 1,1,-1
- 1652 182 l 1,2,-1
- 1110 724 l 1,3,-1
- 1110 -360 l 1,4,-1
- 716 -360 l 1,5,-1
- 716 724 l 1,6,-1
- 172 182 l 1,7,-1
- 172 740 l 1,8,-1
- 914 1480 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE4B0
-Encoding: 58544 58544 773
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-914 0 m 1,0,-1
- 172 740 l 1,1,-1
- 172 1298 l 1,2,-1
- 716 756 l 1,3,-1
- 716 1842 l 1,4,-1
- 1110 1842 l 1,5,-1
- 1110 756 l 1,6,-1
- 1652 1298 l 1,7,-1
- 1652 740 l 1,8,-1
- 914 0 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE4B1
-Encoding: 58545 58545 774
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-172 1460 m 1,0,-1
- 1220 1460 l 1,1,-1
- 1616 1068 l 1,2,-1
- 848 1068 l 1,3,-1
- 1616 300 l 1,4,-1
- 1336 18 l 1,5,-1
- 568 786 l 1,6,-1
- 568 18 l 1,7,-1
- 172 414 l 1,8,-1
- 172 1460 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE4B2
-Encoding: 58546 58546 775
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-1616 1460 m 1,0,-1
- 568 1460 l 1,1,-1
- 172 1068 l 1,2,-1
- 940 1068 l 1,3,-1
- 172 300 l 1,4,-1
- 452 18 l 1,5,-1
- 1220 786 l 1,6,-1
- 1220 18 l 1,7,-1
- 1616 414 l 1,8,-1
- 1616 1460 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE4B3
-Encoding: 58547 58547 776
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-172 18 m 1,0,-1
- 172 1068 l 1,1,-1
- 568 1460 l 1,2,-1
- 568 692 l 1,3,-1
- 1336 1460 l 1,4,-1
- 1616 1182 l 1,5,-1
- 848 414 l 1,6,-1
- 1616 414 l 1,7,-1
- 1220 18 l 1,8,-1
- 172 18 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE4B4
-Encoding: 58548 58548 777
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-1616 18 m 1,0,-1
- 1616 1068 l 1,1,-1
- 1220 1460 l 1,2,-1
- 1220 692 l 1,3,-1
- 452 1460 l 1,4,-1
- 172 1182 l 1,5,-1
- 940 414 l 1,6,-1
- 172 414 l 1,7,-1
- 568 18 l 1,8,-1
- 1616 18 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE4B5
-Encoding: 58549 58549 778
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-1652 1036 m 1,0,-1
- 1652 444 l 1,1,-1
- 806 444 l 1,2,-1
- 806 106 l 1,3,-1
- 172 740 l 1,4,-1
- 806 1372 l 1,5,-1
- 806 1036 l 1,6,-1
- 1652 1036 l 1,0,-1
-314 740 m 1,7,-1
- 706 344 l 1,8,-1
- 706 542 l 1,9,-1
- 1554 542 l 1,10,-1
- 1554 938 l 1,11,-1
- 706 938 l 1,12,-1
- 706 1134 l 1,13,-1
- 314 740 l 1,7,-1
-EndSplineSet
-EndChar
-StartChar: uniE4B6
-Encoding: 58550 58550 779
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-172 1036 m 1,0,-1
- 172 444 l 1,1,-1
- 1020 444 l 1,2,-1
- 1020 106 l 1,3,-1
- 1652 740 l 1,4,-1
- 1020 1372 l 1,5,-1
- 1020 1036 l 1,6,-1
- 172 1036 l 1,0,-1
-1514 740 m 1,7,-1
- 1118 344 l 1,8,-1
- 1118 542 l 1,9,-1
- 270 542 l 1,10,-1
- 270 938 l 1,11,-1
- 1118 938 l 1,12,-1
- 1118 1134 l 1,13,-1
- 1514 740 l 1,7,-1
-EndSplineSet
-EndChar
-StartChar: uniE4B7
-Encoding: 58551 58551 780
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-1126 0 m 1,0,-1
- 534 0 l 1,1,-1
- 534 848 l 1,2,-1
- 196 848 l 1,3,-1
- 830 1480 l 1,4,-1
- 1462 848 l 1,5,-1
- 1126 848 l 1,6,-1
- 1126 0 l 1,0,-1
-830 1340 m 1,7,-1
- 434 946 l 1,8,-1
- 632 946 l 1,9,-1
- 632 98 l 1,10,-1
- 1026 98 l 1,11,-1
- 1026 946 l 1,12,-1
- 1224 946 l 1,13,-1
- 830 1340 l 1,7,-1
-EndSplineSet
-EndChar
-StartChar: uniE4B8
-Encoding: 58552 58552 781
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-534 1480 m 1,0,-1
- 1126 1480 l 1,1,-1
- 1126 632 l 1,2,-1
- 1462 632 l 1,3,-1
- 830 0 l 1,4,-1
- 196 632 l 1,5,-1
- 534 632 l 1,6,-1
- 534 1480 l 1,0,-1
-830 140 m 1,7,-1
- 1224 534 l 1,8,-1
- 1026 534 l 1,9,-1
- 1026 1382 l 1,10,-1
- 632 1382 l 1,11,-1
- 632 534 l 1,12,-1
- 434 534 l 1,13,-1
- 830 140 l 1,7,-1
-EndSplineSet
-EndChar
-StartChar: uniE4B9
-Encoding: 58553 58553 782
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-806 444 m 1,0,-1
- 806 106 l 1,1,-1
- 172 740 l 1,2,-1
- 806 1372 l 1,3,-1
- 806 1036 l 1,4,-1
- 1366 1036 l 1,5,-1
- 1366 1372 l 1,6,-1
- 1998 740 l 1,7,-1
- 1366 106 l 1,8,-1
- 1366 444 l 1,9,-1
- 806 444 l 1,0,-1
-706 542 m 1,10,-1
- 1464 542 l 1,11,-1
- 1464 344 l 1,12,-1
- 1860 740 l 1,13,-1
- 1464 1134 l 1,14,-1
- 1464 938 l 1,15,-1
- 706 938 l 1,16,-1
- 706 1134 l 1,17,-1
- 314 740 l 1,18,-1
- 706 344 l 1,19,-1
- 706 542 l 1,10,-1
-EndSplineSet
-EndChar
-StartChar: uniE4BA
-Encoding: 58554 58554 783
-Width: 1670
-GlyphClass: 2
-Flags: W
-Fore
-534 848 m 1,0,-1
- 196 848 l 1,1,-1
- 830 1480 l 1,2,-1
- 1462 848 l 1,3,-1
- 1126 848 l 1,4,-1
- 1126 286 l 1,5,-1
- 1462 286 l 1,6,-1
- 830 -346 l 1,7,-1
- 196 286 l 1,8,-1
- 534 286 l 1,9,-1
- 534 848 l 1,0,-1
-632 946 m 1,10,-1
- 632 188 l 1,11,-1
- 434 188 l 1,12,-1
- 830 -206 l 1,13,-1
- 1224 188 l 1,14,-1
- 1026 188 l 1,15,-1
- 1026 946 l 1,16,-1
- 1224 946 l 1,17,-1
- 830 1340 l 1,18,-1
- 434 946 l 1,19,-1
- 632 946 l 1,10,-1
-EndSplineSet
-EndChar
-StartChar: uniE4BB
-Encoding: 58555 58555 784
-Width: 1670
-GlyphClass: 2
-Flags: W
-Fore
-1010 224 m 1,0,-1
- 412 824 l 1,1,-1
- 172 586 l 1,2,-1
- 172 1480 l 1,3,-1
- 1068 1480 l 1,4,-1
- 830 1242 l 1,5,-1
- 1430 644 l 1,6,-1
- 1010 224 l 1,0,-1
-270 1382 m 1,7,-1
- 270 824 l 1,8,-1
- 412 962 l 1,9,-1
- 1010 364 l 1,10,-1
- 1288 644 l 1,11,-1
- 690 1242 l 1,12,-1
- 830 1382 l 1,13,-1
- 270 1382 l 1,7,-1
-EndSplineSet
-EndChar
-StartChar: uniE4BC
-Encoding: 58556 58556 785
-Width: 1780
-GlyphClass: 2
-Flags: W
-Fore
-592 224 m 1,0,-1
- 1192 824 l 1,1,-1
- 1430 586 l 1,2,-1
- 1430 1480 l 1,3,-1
- 534 1480 l 1,4,-1
- 772 1242 l 1,5,-1
- 172 644 l 1,6,-1
- 592 224 l 1,0,-1
-1332 1382 m 1,7,-1
- 1332 824 l 1,8,-1
- 1192 962 l 1,9,-1
- 592 364 l 1,10,-1
- 314 644 l 1,11,-1
- 912 1242 l 1,12,-1
- 772 1382 l 1,13,-1
- 1332 1382 l 1,7,-1
-EndSplineSet
-EndChar
-StartChar: uniE4BD
-Encoding: 58557 58557 786
-Width: 1594
-GlyphClass: 2
-Flags: W
-Fore
-1430 838 m 1,0,-1
- 830 238 l 1,1,-1
- 1068 0 l 1,2,-1
- 172 0 l 1,3,-1
- 172 894 l 1,4,-1
- 412 658 l 1,5,-1
- 1010 1256 l 1,6,-1
- 1430 838 l 1,0,-1
-272 98 m 1,7,-1
- 830 98 l 1,8,-1
- 690 238 l 1,9,-1
- 1288 838 l 1,10,-1
- 1010 1116 l 1,11,-1
- 412 516 l 1,12,-1
- 272 658 l 1,13,-1
- 272 98 l 1,7,-1
-EndSplineSet
-EndChar
-StartChar: uniE4BE
-Encoding: 58558 58558 787
-Width: 1726
-GlyphClass: 2
-Flags: W
-Fore
-172 838 m 1,0,-1
- 772 238 l 1,1,-1
- 534 0 l 1,2,-1
- 1430 0 l 1,3,-1
- 1430 894 l 1,4,-1
- 1192 658 l 1,5,-1
- 592 1256 l 1,6,-1
- 172 838 l 1,0,-1
-1330 98 m 1,7,-1
- 772 98 l 1,8,-1
- 912 238 l 1,9,-1
- 314 838 l 1,10,-1
- 592 1116 l 1,11,-1
- 1192 516 l 1,12,-1
- 1330 658 l 1,13,-1
- 1330 98 l 1,7,-1
-EndSplineSet
-EndChar
-StartChar: uniE4BF
-Encoding: 58559 58559 788
-Width: 976
-GlyphClass: 2
-Flags: W
-Fore
-194 936 m 1,0,-1
- 194 544 l 1,1,-1
- 794 544 l 1,2,-1
- 794 936 l 1,3,-1
- 194 936 l 1,0,-1
-100 1034 m 1,4,-1
- 890 1034 l 1,5,-1
- 890 444 l 1,6,-1
- 100 444 l 1,7,-1
- 100 1034 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE4C0
-Encoding: 58560 58560 789
-Width: 792
-GlyphClass: 2
-Flags: W
-Fore
-98 1036 m 1,0,-1
- 690 1036 l 1,1,-1
- 690 444 l 1,2,-1
- 98 444 l 1,3,-1
- 98 1036 l 1,0,-1
-198 938 m 1,4,-1
- 198 542 l 1,5,-1
- 592 542 l 1,6,-1
- 592 938 l 1,7,-1
- 198 938 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE4C1
-Encoding: 58561 58561 790
-Width: 1400
-GlyphClass: 2
-Flags: W
-Fore
-228 326 m 1,0,-1
- 188 374 l 1,1,-1
- 466 706 l 1,2,3
- 280 1066 280 1066 280 1124 c 0,4,5
- 280 1155 280 1155 316 1188 c 1,6,-1
- 336 1196 l 1,7,8
- 360 1186 360 1186 372 1176 c 1,9,-1
- 378 1176 l 1,10,11
- 411 1242 411 1242 454 1242 c 1,12,-1
- 660 936 l 1,13,14
- 977 1304 977 1304 1034 1304 c 0,15,16
- 1073 1304 1073 1304 1104 1264 c 1,17,-1
- 1104 1224 l 1,18,19
- 1178 1200 1178 1200 1178 1154 c 1,20,-1
- 806 718 l 1,21,-1
- 1040 450 l 1,22,-1
- 1048 426 l 1,23,24
- 1048 396 1048 396 1026 360 c 0,25,26
- 1004 320 1004 320 976 320 c 1,27,-1
- 970 338 l 1,28,29
- 970 250 970 250 914 250 c 1,30,31
- 896 263 896 263 876 286 c 1,32,-1
- 826 232 l 1,33,-1
- 806 224 l 1,34,35
- 771 230 771 230 608 462 c 1,36,-1
- 364 150 l 1,37,-1
- 338 136 l 1,38,39
- 313 155 313 155 304 198 c 1,40,-1
- 252 198 l 1,41,42
- 217 236 217 236 198 286 c 1,43,-1
- 228 326 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE4C2
-Encoding: 58562 58562 791
-Width: 1696
-GlyphClass: 2
-Flags: W
-Fore
-1512 1580 m 1,0,-1
- 1546 1528 l 1,1,2
- 1305 1346 1305 1346 1048 1014 c 0,3,4
- 810 700 810 700 670 406 c 1,5,6
- 534 313 534 313 472 262 c 1,7,8
- 335 704 335 704 158 776 c 1,9,10
- 257 890 257 890 356 890 c 0,11,12
- 441 890 441 890 560 610 c 1,13,14
- 941 1256 941 1256 1512 1580 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE4C3
-Encoding: 58563 58563 792
-Width: 1884
-GlyphClass: 2
-Flags: W
-Fore
-322 148 m 1,0,-1
- 1506 148 l 1,1,-1
- 1506 1332 l 1,2,-1
- 322 1332 l 1,3,-1
- 322 148 l 1,0,-1
-172 0 m 1,4,-1
- 172 1480 l 1,5,-1
- 1652 1480 l 1,6,-1
- 1652 0 l 1,7,-1
- 172 0 l 1,4,-1
-522 378 m 1,8,-1
- 488 424 l 1,9,-1
- 738 722 l 1,10,11
- 570 1046 570 1046 570 1098 c 0,12,13
- 570 1123 570 1123 600 1156 c 1,14,-1
- 618 1162 l 1,15,16
- 630 1158 630 1158 654 1142 c 1,17,-1
- 658 1142 l 1,18,19
- 688 1202 688 1202 728 1202 c 1,20,-1
- 912 928 l 1,21,22
- 1199 1260 1199 1260 1250 1260 c 0,23,24
- 1287 1260 1287 1260 1310 1222 c 1,25,-1
- 1310 1188 l 1,26,27
- 1376 1164 1376 1164 1376 1122 c 1,28,-1
- 1044 734 l 1,29,-1
- 1254 492 l 1,30,-1
- 1262 468 l 1,31,32
- 1262 447 1262 447 1242 410 c 0,33,34
- 1221 374 1221 374 1196 374 c 1,35,-1
- 1192 392 l 1,36,37
- 1189 312 1189 312 1140 312 c 1,38,39
- 1119 326 1119 326 1106 344 c 1,40,-1
- 1060 294 l 1,41,-1
- 1044 286 l 1,42,43
- 1013 292 1013 292 864 504 c 1,44,-1
- 646 222 l 1,45,-1
- 620 206 l 1,46,47
- 598 228 598 228 590 264 c 1,48,-1
- 544 264 l 1,49,50
- 510 301 510 301 496 344 c 1,51,-1
- 522 378 l 1,8,-1
-EndSplineSet
-EndChar
-StartChar: uniE4C4
-Encoding: 58564 58564 793
-Width: 1896
-GlyphClass: 2
-Flags: W
-Fore
-1652 0 m 1,0,-1
- 172 0 l 1,1,-1
- 172 1482 l 1,2,-1
- 1600 1482 l 1,3,-1
- 1732 1560 l 1,4,-1
- 1768 1510 l 1,5,6
- 1729 1487 1729 1487 1652 1416 c 1,7,-1
- 1652 0 l 1,0,-1
-1506 1270 m 1,8,9
- 1113 841 1113 841 902 398 c 1,10,-1
- 700 252 l 1,11,12
- 565 696 565 696 390 768 c 1,13,14
- 489 882 489 882 588 882 c 0,15,16
- 674 882 674 882 790 602 c 1,17,18
- 976 917 976 917 1410 1336 c 1,19,-1
- 320 1336 l 1,20,-1
- 320 148 l 1,21,-1
- 1506 148 l 1,22,-1
- 1506 1270 l 1,8,9
-EndSplineSet
-EndChar
-StartChar: uniE503
-Encoding: 58627 58627 794
-Width: 2108
-GlyphClass: 2
-Flags: W
-Fore
-1701 430 m 1,0,-1
- 1871 156 l 1,1,-1
- 1815 86 l 1,2,-1
- 1511 170 l 1,3,4
- 1468 211 1468 211 1468 259 c 0,5,6
- 1468 307 1468 307 1511 364 c 0,7,8
- 1573 448 1573 448 1638 448 c 2,9,-1
- 1667 444 l 2,10,11
- 1684 440 1684 440 1701 430 c 1,0,-1
-2055 -34 m 1,12,-1
- 1729 468 l 1,13,-1
- 349 1516 l 1,14,-1
- 308 1519 l 1,15,-1
- 269 1515 l 2,16,17
- 193 1498 193 1498 135 1420 c 0,18,19
- 80 1343 80 1343 80 1264 c 2,20,-1
- 84 1222 l 2,21,22
- 88 1201 88 1201 95 1180 c 1,23,-1
- 1485 130 l 1,24,-1
- 2055 -34 l 1,12,-1
-EndSplineSet
-EndChar
-StartChar: uniE504
-Encoding: 58628 58628 795
-Width: 1968
-GlyphClass: 2
-Flags: W
-Fore
-864 700 m 1,0,-1
- 83 109 l 1,1,-1
- 107 98 l 1,2,3
- 266 98 266 98 435 195 c 0,4,5
- 549 259 549 259 726 406 c 0,6,7
- 924 570 924 570 1000 621 c 1,8,9
- 1168 511 1168 511 1361 444 c 1,10,11
- 1215 414 1215 414 1215 289 c 0,12,13
- 1215 199 1215 199 1305 145 c 0,14,15
- 1382 100 1382 100 1477 100 c 0,16,17
- 1686 100 1686 100 1686 260 c 0,18,19
- 1686 335 1686 335 1447 500 c 0,20,21
- 1339 570 1339 570 1127 698 c 1,22,23
- 1379 848 1379 848 1449 895 c 0,24,25
- 1686 1057 1686 1057 1686 1137 c 128,-1,26
- 1686 1217 1686 1217 1614 1262 c 0,27,28
- 1557 1300 1557 1300 1471 1300 c 0,29,30
- 1372 1300 1372 1300 1299 1255 c 0,31,32
- 1215 1202 1215 1202 1215 1108 c 0,33,34
- 1215 979 1215 979 1365 952 c 1,35,36
- 1178 897 1178 897 1000 778 c 1,37,-1
- 734 991 l 2,38,39
- 552 1133 552 1133 421 1202 c 0,40,41
- 244 1298 244 1298 107 1298 c 1,42,-1
- 78 1288 l 1,43,-1
- 864 700 l 1,0,-1
-1481 1231 m 0,44,45
- 1617 1231 1617 1231 1617 1133 c 0,46,47
- 1617 1069 1617 1069 1547 1034 c 0,48,49
- 1492 1006 1492 1006 1422 1006 c 0,50,51
- 1285 1006 1285 1006 1285 1106 c 0,52,53
- 1285 1171 1285 1171 1354 1204 c 0,54,55
- 1408 1231 1408 1231 1481 1231 c 0,44,45
-1418 389 m 0,56,57
- 1617 389 1617 389 1617 268 c 0,58,59
- 1617 168 1617 168 1481 168 c 0,60,61
- 1407 168 1407 168 1356 193 c 0,62,63
- 1289 223 1289 223 1289 289 c 0,64,65
- 1289 389 1289 389 1418 389 c 0,56,57
-EndSplineSet
-EndChar
-StartChar: uniE505
-Encoding: 58629 58629 796
-Width: 1968
-GlyphClass: 2
-Flags: W
-Fore
-864 700 m 1,0,-1
- 83 109 l 1,1,-1
- 107 98 l 1,2,3
- 266 98 266 98 435 195 c 0,4,5
- 549 259 549 259 726 406 c 0,6,7
- 924 570 924 570 1000 621 c 1,8,9
- 1168 511 1168 511 1361 444 c 1,10,11
- 1215 414 1215 414 1215 289 c 0,12,13
- 1215 199 1215 199 1305 145 c 0,14,15
- 1382 100 1382 100 1477 100 c 0,16,17
- 1686 100 1686 100 1686 260 c 0,18,19
- 1686 335 1686 335 1447 500 c 0,20,21
- 1339 570 1339 570 1127 698 c 1,22,23
- 1379 848 1379 848 1449 895 c 0,24,25
- 1686 1057 1686 1057 1686 1137 c 128,-1,26
- 1686 1217 1686 1217 1614 1262 c 0,27,28
- 1557 1300 1557 1300 1471 1300 c 0,29,30
- 1372 1300 1372 1300 1299 1255 c 0,31,32
- 1215 1202 1215 1202 1215 1108 c 0,33,34
- 1215 979 1215 979 1365 952 c 1,35,36
- 1178 897 1178 897 1000 778 c 1,37,-1
- 734 991 l 2,38,39
- 552 1133 552 1133 421 1202 c 0,40,41
- 244 1298 244 1298 107 1298 c 1,42,-1
- 78 1288 l 1,43,-1
- 864 700 l 1,0,-1
-1481 1231 m 0,44,45
- 1617 1231 1617 1231 1617 1133 c 0,46,47
- 1617 1069 1617 1069 1547 1034 c 0,48,49
- 1492 1006 1492 1006 1422 1006 c 0,50,51
- 1285 1006 1285 1006 1285 1106 c 0,52,53
- 1285 1171 1285 1171 1354 1204 c 0,54,55
- 1408 1231 1408 1231 1481 1231 c 0,44,45
-1418 389 m 0,56,57
- 1617 389 1617 389 1617 268 c 0,58,59
- 1617 168 1617 168 1481 168 c 0,60,61
- 1407 168 1407 168 1356 193 c 0,62,63
- 1289 223 1289 223 1289 289 c 0,64,65
- 1289 389 1289 389 1418 389 c 0,56,57
-EndSplineSet
-EndChar
-StartChar: uniE507
-Encoding: 58631 58631 797
-Width: 872
-GlyphClass: 2
-Flags: W
-Fore
-776 1848 m 1,0,-1
- 696 1440 l 2,1,2
- 679 1409 679 1409 612 1398 c 0,3,4
- 529 1384 529 1384 515 1379 c 2,5,-1
- 478 1365 l 1,6,-1
- 450 1347 l 2,7,8
- 436 1336 436 1336 424 1320 c 0,9,10
- 351 1225 351 1225 351 936 c 0,11,12
- 351 599 351 599 424 520 c 0,13,14
- 484 456 484 456 582 450 c 2,15,-1
- 660 445 l 2,16,17
- 696 440 696 440 712 416 c 1,18,-1
- 768 0 l 1,19,20
- 476 0 476 0 353 30 c 2,21,-1
- 299 46 l 2,22,23
- 254 64 254 64 232 88 c 0,24,25
- 150 178 150 178 104 496 c 0,26,27
- 72 714 72 714 72 939 c 0,28,29
- 72 1282 72 1282 136 1525 c 0,30,31
- 184 1706 184 1706 256 1760 c 0,32,33
- 344 1826 344 1826 506 1854 c 0,34,35
- 574 1866 574 1866 638 1866 c 0,36,37
- 716 1866 716 1866 776 1848 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE51D
-Encoding: 58653 58653 798
-Width: 2037
-GlyphClass: 2
-Flags: W
-Fore
-154 952 m 1,0,-1
- 234 877 l 1,1,2
- 413 883 413 883 666 905 c 1,3,-1
- 789 840 l 1,4,-1
- 697 741 l 1,5,-1
- 627 565 l 1,6,-1
- 676 475 l 1,7,-1
- 724 457 l 1,8,-1
- 738 383 l 1,9,-1
- 832 332 l 1,10,-1
- 849 276 l 1,11,-1
- 947 223 l 1,12,-1
- 1105 279 l 1,13,14
- 1266 270 1266 270 1285 270 c 0,15,16
- 1413 270 1413 270 1567 362 c 1,17,-1
- 1588 229 l 1,18,-1
- 1932 244 l 1,19,-1
- 1952 909 l 1,20,-1
- 1598 963 l 1,21,-1
- 1592 907 l 1,22,-1
- 1356 1030 l 2,23,24
- 1336 1040 1336 1040 1050 1087 c 0,25,26
- 765 1135 765 1135 724 1135 c 0,27,28
- 390 1135 390 1135 160 1004 c 1,29,-1
- 154 952 l 1,0,-1
-197 975 m 1,30,31
- 427 1085 427 1085 701 1085 c 0,32,33
- 958 1085 958 1085 1154 1034 c 0,34,35
- 1363 978 1363 978 1567 848 c 1,36,-1
- 1582 846 l 1,37,38
- 1537 622 1537 622 1537 565 c 0,39,40
- 1537 537 1537 537 1553 418 c 1,41,-1
- 1526 428 l 1,42,-1
- 1473 373 l 1,43,44
- 1345 315 1345 315 1199 315 c 0,45,46
- 1146 315 1146 315 1100 326 c 1,47,-1
- 949 270 l 1,48,-1
- 889 309 l 1,49,-1
- 865 356 l 1,50,51
- 959 424 959 424 1074 469 c 1,52,-1
- 1055 512 l 1,53,54
- 929 472 929 472 822 381 c 1,55,-1
- 767 430 l 1,56,-1
- 783 492 l 1,57,-1
- 896 616 l 1,58,-1
- 990 651 l 1,59,-1
- 971 696 l 1,60,-1
- 863 647 l 1,61,-1
- 736 494 l 1,62,-1
- 681 571 l 1,63,-1
- 754 737 l 1,64,-1
- 896 870 l 1,65,-1
- 859 901 l 1,66,-1
- 830 870 l 1,67,-1
- 668 952 l 1,68,-1
- 246 909 l 1,69,-1
- 197 975 l 1,30,31
-1844 401 m 1,70,-1
- 1844 307 l 1,71,-1
- 1651 307 l 1,72,-1
- 1651 401 l 1,73,-1
- 1844 401 l 1,70,-1
-EndSplineSet
-EndChar
-StartChar: uniE51E
-Encoding: 58654 58654 799
-Width: 2037
-GlyphClass: 2
-Flags: W
-Fore
-1952 952 m 1,0,-1
- 1872 877 l 1,1,2
- 1693 883 1693 883 1440 905 c 1,3,-1
- 1317 840 l 1,4,-1
- 1409 741 l 1,5,-1
- 1479 565 l 1,6,-1
- 1430 475 l 1,7,-1
- 1382 457 l 1,8,-1
- 1368 383 l 1,9,-1
- 1274 332 l 1,10,-1
- 1257 276 l 1,11,-1
- 1159 223 l 1,12,-1
- 1001 279 l 1,13,14
- 840 270 840 270 821 270 c 0,15,16
- 693 270 693 270 539 362 c 1,17,-1
- 518 229 l 1,18,-1
- 174 244 l 1,19,-1
- 154 909 l 1,20,-1
- 508 963 l 1,21,-1
- 514 907 l 1,22,-1
- 750 1030 l 2,23,24
- 770 1040 770 1040 1056 1087 c 0,25,26
- 1341 1135 1341 1135 1382 1135 c 0,27,28
- 1716 1135 1716 1135 1946 1004 c 1,29,-1
- 1952 952 l 1,0,-1
-1909 975 m 1,30,31
- 1679 1085 1679 1085 1405 1085 c 0,32,33
- 1148 1085 1148 1085 952 1034 c 0,34,35
- 743 978 743 978 539 848 c 1,36,-1
- 524 846 l 1,37,38
- 569 622 569 622 569 565 c 0,39,40
- 569 537 569 537 553 418 c 1,41,-1
- 580 428 l 1,42,-1
- 633 373 l 1,43,44
- 761 315 761 315 907 315 c 0,45,46
- 960 315 960 315 1006 326 c 1,47,-1
- 1157 270 l 1,48,-1
- 1217 309 l 1,49,-1
- 1241 356 l 1,50,51
- 1147 424 1147 424 1032 469 c 1,52,-1
- 1051 512 l 1,53,54
- 1177 472 1177 472 1284 381 c 1,55,-1
- 1339 430 l 1,56,-1
- 1323 492 l 1,57,-1
- 1210 616 l 1,58,-1
- 1116 651 l 1,59,-1
- 1135 696 l 1,60,-1
- 1243 647 l 1,61,-1
- 1370 494 l 1,62,-1
- 1425 571 l 1,63,-1
- 1352 737 l 1,64,-1
- 1210 870 l 1,65,-1
- 1247 901 l 1,66,-1
- 1276 870 l 1,67,-1
- 1438 952 l 1,68,-1
- 1860 909 l 1,69,-1
- 1909 975 l 1,30,31
-262 401 m 1,70,-1
- 262 307 l 1,71,-1
- 455 307 l 1,72,-1
- 455 401 l 1,73,-1
- 262 401 l 1,70,-1
-EndSplineSet
-EndChar
-StartChar: uniE51F
-Encoding: 58655 58655 800
-Width: 1581
-GlyphClass: 2
-Flags: W
-Fore
-1372 221 m 0,0,1
- 1440 221 1440 221 1470 340 c 0,2,3
- 1493 421 1493 421 1493 518 c 0,4,5
- 1493 606 1493 606 1462 700 c 0,6,7
- 1423 827 1423 827 1360 827 c 0,8,9
- 1329 827 1329 827 1315 801 c 1,10,11
- 1382 795 1382 795 1417 680 c 0,12,13
- 1440 599 1440 599 1440 504 c 0,14,15
- 1440 254 1440 254 1327 254 c 1,16,17
- 1338 221 1338 221 1372 221 c 0,0,1
-893 182 m 0,18,19
- 974 182 974 182 1159 279 c 1,20,-1
- 1315 291 l 1,21,22
- 1390 338 1390 338 1390 535 c 0,23,24
- 1390 642 1390 642 1366 686 c 0,25,26
- 1345 721 1345 721 1288 739 c 2,27,-1
- 1151 784 l 1,28,-1
- 829 913 l 1,29,30
- 656 912 656 912 393 856 c 0,31,32
- 53 784 53 784 53 684 c 0,33,34
- 53 657 53 657 94 639 c 0,35,36
- 126 623 126 623 157 623 c 0,37,38
- 233 623 233 623 502 670 c 1,39,40
- 436 631 436 631 436 571 c 0,41,42
- 436 493 436 493 530 481 c 1,43,44
- 489 464 489 464 489 412 c 0,45,46
- 489 354 489 354 551 330 c 1,47,-1
- 545 301 l 2,48,49
- 545 182 545 182 893 182 c 0,18,19
-EndSplineSet
-EndChar
-StartChar: uniE520
-Encoding: 58656 58656 801
-Width: 1581
-GlyphClass: 2
-Flags: W
-Fore
-174 221 m 0,0,1
- 106 221 106 221 76 340 c 0,2,3
- 53 421 53 421 53 518 c 0,4,5
- 53 606 53 606 84 700 c 0,6,7
- 123 827 123 827 186 827 c 0,8,9
- 217 827 217 827 231 801 c 1,10,11
- 164 795 164 795 129 680 c 0,12,13
- 106 599 106 599 106 504 c 0,14,15
- 106 254 106 254 219 254 c 1,16,17
- 208 221 208 221 174 221 c 0,0,1
-653 182 m 0,18,19
- 572 182 572 182 387 279 c 1,20,-1
- 231 291 l 1,21,22
- 156 338 156 338 156 535 c 0,23,24
- 156 642 156 642 180 686 c 0,25,26
- 201 721 201 721 258 739 c 2,27,-1
- 395 784 l 1,28,-1
- 717 913 l 1,29,30
- 890 912 890 912 1153 856 c 0,31,32
- 1493 784 1493 784 1493 684 c 0,33,34
- 1493 657 1493 657 1452 639 c 0,35,36
- 1420 623 1420 623 1389 623 c 0,37,38
- 1313 623 1313 623 1044 670 c 1,39,40
- 1110 631 1110 631 1110 571 c 0,41,42
- 1110 493 1110 493 1016 481 c 1,43,44
- 1057 464 1057 464 1057 412 c 0,45,46
- 1057 354 1057 354 995 330 c 1,47,-1
- 1001 301 l 2,48,49
- 1001 182 1001 182 653 182 c 0,18,19
-EndSplineSet
-EndChar
-StartChar: uniE521
-Encoding: 58657 58657 802
-Width: 2037
-GlyphClass: 2
-Flags: W
-Fore
-154 952 m 1,0,-1
- 234 877 l 1,1,2
- 413 883 413 883 666 905 c 1,3,-1
- 789 840 l 1,4,-1
- 697 741 l 1,5,-1
- 627 565 l 1,6,-1
- 676 475 l 1,7,-1
- 724 457 l 1,8,-1
- 738 383 l 1,9,-1
- 832 332 l 1,10,-1
- 849 276 l 1,11,-1
- 947 223 l 1,12,-1
- 1105 279 l 1,13,14
- 1266 270 1266 270 1285 270 c 0,15,16
- 1413 270 1413 270 1567 362 c 1,17,-1
- 1588 229 l 1,18,-1
- 1932 244 l 1,19,-1
- 1952 909 l 1,20,-1
- 1598 963 l 1,21,-1
- 1592 907 l 1,22,-1
- 1356 1030 l 2,23,24
- 1336 1040 1336 1040 1050 1087 c 0,25,26
- 765 1135 765 1135 724 1135 c 0,27,28
- 390 1135 390 1135 160 1004 c 1,29,-1
- 154 952 l 1,0,-1
-197 975 m 1,30,31
- 427 1085 427 1085 701 1085 c 0,32,33
- 958 1085 958 1085 1154 1034 c 0,34,35
- 1363 978 1363 978 1567 848 c 1,36,-1
- 1582 846 l 1,37,38
- 1537 622 1537 622 1537 565 c 0,39,40
- 1537 537 1537 537 1553 418 c 1,41,-1
- 1526 428 l 1,42,-1
- 1473 373 l 1,43,44
- 1345 315 1345 315 1199 315 c 0,45,46
- 1146 315 1146 315 1100 326 c 1,47,-1
- 949 270 l 1,48,-1
- 889 309 l 1,49,-1
- 865 356 l 1,50,51
- 959 424 959 424 1074 469 c 1,52,-1
- 1055 512 l 1,53,54
- 929 472 929 472 822 381 c 1,55,-1
- 767 430 l 1,56,-1
- 783 492 l 1,57,-1
- 896 616 l 1,58,-1
- 990 651 l 1,59,-1
- 971 696 l 1,60,-1
- 863 647 l 1,61,-1
- 736 494 l 1,62,-1
- 681 571 l 1,63,-1
- 754 737 l 1,64,-1
- 896 870 l 1,65,-1
- 859 901 l 1,66,-1
- 830 870 l 1,67,-1
- 668 952 l 1,68,-1
- 246 909 l 1,69,-1
- 197 975 l 1,30,31
-1844 401 m 1,70,-1
- 1844 307 l 1,71,-1
- 1651 307 l 1,72,-1
- 1651 401 l 1,73,-1
- 1844 401 l 1,70,-1
-EndSplineSet
-EndChar
-StartChar: uniE522
-Encoding: 58658 58658 803
-Width: 2037
-GlyphClass: 2
-Flags: W
-Fore
-1952 952 m 1,0,-1
- 1872 877 l 1,1,2
- 1693 883 1693 883 1440 905 c 1,3,-1
- 1317 840 l 1,4,-1
- 1409 741 l 1,5,-1
- 1479 565 l 1,6,-1
- 1430 475 l 1,7,-1
- 1382 457 l 1,8,-1
- 1368 383 l 1,9,-1
- 1274 332 l 1,10,-1
- 1257 276 l 1,11,-1
- 1159 223 l 1,12,-1
- 1001 279 l 1,13,14
- 840 270 840 270 821 270 c 0,15,16
- 693 270 693 270 539 362 c 1,17,-1
- 518 229 l 1,18,-1
- 174 244 l 1,19,-1
- 154 909 l 1,20,-1
- 508 963 l 1,21,-1
- 514 907 l 1,22,-1
- 750 1030 l 2,23,24
- 770 1040 770 1040 1056 1087 c 0,25,26
- 1341 1135 1341 1135 1382 1135 c 0,27,28
- 1716 1135 1716 1135 1946 1004 c 1,29,-1
- 1952 952 l 1,0,-1
-1909 975 m 1,30,31
- 1679 1085 1679 1085 1405 1085 c 0,32,33
- 1148 1085 1148 1085 952 1034 c 0,34,35
- 743 978 743 978 539 848 c 1,36,-1
- 524 846 l 1,37,38
- 569 622 569 622 569 565 c 0,39,40
- 569 537 569 537 553 418 c 1,41,-1
- 580 428 l 1,42,-1
- 633 373 l 1,43,44
- 761 315 761 315 907 315 c 0,45,46
- 960 315 960 315 1006 326 c 1,47,-1
- 1157 270 l 1,48,-1
- 1217 309 l 1,49,-1
- 1241 356 l 1,50,51
- 1147 424 1147 424 1032 469 c 1,52,-1
- 1051 512 l 1,53,54
- 1177 472 1177 472 1284 381 c 1,55,-1
- 1339 430 l 1,56,-1
- 1323 492 l 1,57,-1
- 1210 616 l 1,58,-1
- 1116 651 l 1,59,-1
- 1135 696 l 1,60,-1
- 1243 647 l 1,61,-1
- 1370 494 l 1,62,-1
- 1425 571 l 1,63,-1
- 1352 737 l 1,64,-1
- 1210 870 l 1,65,-1
- 1247 901 l 1,66,-1
- 1276 870 l 1,67,-1
- 1438 952 l 1,68,-1
- 1860 909 l 1,69,-1
- 1909 975 l 1,30,31
-262 401 m 1,70,-1
- 262 307 l 1,71,-1
- 455 307 l 1,72,-1
- 455 401 l 1,73,-1
- 262 401 l 1,70,-1
-EndSplineSet
-EndChar
-StartChar: uniE523
-Encoding: 58659 58659 804
-Width: 1581
-GlyphClass: 2
-Flags: W
-Fore
-1372 221 m 0,0,1
- 1440 221 1440 221 1470 340 c 0,2,3
- 1493 421 1493 421 1493 518 c 0,4,5
- 1493 606 1493 606 1462 700 c 0,6,7
- 1423 827 1423 827 1360 827 c 0,8,9
- 1329 827 1329 827 1315 801 c 1,10,11
- 1382 795 1382 795 1417 680 c 0,12,13
- 1440 599 1440 599 1440 504 c 0,14,15
- 1440 254 1440 254 1327 254 c 1,16,17
- 1338 221 1338 221 1372 221 c 0,0,1
-893 182 m 0,18,19
- 974 182 974 182 1159 279 c 1,20,-1
- 1315 291 l 1,21,22
- 1390 338 1390 338 1390 535 c 0,23,24
- 1390 642 1390 642 1366 686 c 0,25,26
- 1345 721 1345 721 1288 739 c 2,27,-1
- 1151 784 l 1,28,-1
- 829 913 l 1,29,30
- 656 912 656 912 393 856 c 0,31,32
- 53 784 53 784 53 684 c 0,33,34
- 53 657 53 657 94 639 c 0,35,36
- 126 623 126 623 157 623 c 0,37,38
- 233 623 233 623 502 670 c 1,39,40
- 436 631 436 631 436 571 c 0,41,42
- 436 493 436 493 530 481 c 1,43,44
- 489 464 489 464 489 412 c 0,45,46
- 489 354 489 354 551 330 c 1,47,-1
- 545 301 l 2,48,49
- 545 182 545 182 893 182 c 0,18,19
-EndSplineSet
-EndChar
-StartChar: uniE524
-Encoding: 58660 58660 805
-Width: 1581
-GlyphClass: 2
-Flags: W
-Fore
-174 221 m 0,0,1
- 106 221 106 221 76 340 c 0,2,3
- 53 421 53 421 53 518 c 0,4,5
- 53 606 53 606 84 700 c 0,6,7
- 123 827 123 827 186 827 c 0,8,9
- 217 827 217 827 231 801 c 1,10,11
- 164 795 164 795 129 680 c 0,12,13
- 106 599 106 599 106 504 c 0,14,15
- 106 254 106 254 219 254 c 1,16,17
- 208 221 208 221 174 221 c 0,0,1
-653 182 m 0,18,19
- 572 182 572 182 387 279 c 1,20,-1
- 231 291 l 1,21,22
- 156 338 156 338 156 535 c 0,23,24
- 156 642 156 642 180 686 c 0,25,26
- 201 721 201 721 258 739 c 2,27,-1
- 395 784 l 1,28,-1
- 717 913 l 1,29,30
- 890 912 890 912 1153 856 c 0,31,32
- 1493 784 1493 784 1493 684 c 0,33,34
- 1493 657 1493 657 1452 639 c 0,35,36
- 1420 623 1420 623 1389 623 c 0,37,38
- 1313 623 1313 623 1044 670 c 1,39,40
- 1110 631 1110 631 1110 571 c 0,41,42
- 1110 493 1110 493 1016 481 c 1,43,44
- 1057 464 1057 464 1057 412 c 0,45,46
- 1057 354 1057 354 995 330 c 1,47,-1
- 1001 301 l 2,48,49
- 1001 182 1001 182 653 182 c 0,18,19
-EndSplineSet
-EndChar
-StartChar: uniE525
-Encoding: 58661 58661 806
-Width: 2037
-GlyphClass: 2
-Flags: W
-Fore
-1326 1578 m 1,0,-1
- 1251 1498 l 1,1,2
- 1257 1319 1257 1319 1279 1066 c 1,3,-1
- 1214 943 l 1,4,-1
- 1115 1035 l 1,5,-1
- 939 1105 l 1,6,-1
- 849 1056 l 1,7,-1
- 831 1008 l 1,8,-1
- 757 994 l 1,9,-1
- 706 900 l 1,10,-1
- 650 883 l 1,11,-1
- 597 785 l 1,12,-1
- 653 627 l 1,13,14
- 644 466 644 466 644 447 c 0,15,16
- 644 319 644 319 736 165 c 1,17,-1
- 603 144 l 1,18,-1
- 618 -200 l 1,19,-1
- 1283 -220 l 1,20,-1
- 1337 134 l 1,21,-1
- 1281 140 l 1,22,-1
- 1404 376 l 2,23,24
- 1414 396 1414 396 1461 682 c 0,25,26
- 1509 967 1509 967 1509 1008 c 0,27,28
- 1509 1342 1509 1342 1378 1572 c 1,29,-1
- 1326 1578 l 1,0,-1
-1349 1535 m 1,30,31
- 1459 1305 1459 1305 1459 1031 c 0,32,33
- 1459 774 1459 774 1408 578 c 0,34,35
- 1352 369 1352 369 1222 165 c 1,36,-1
- 1220 150 l 1,37,38
- 996 195 996 195 939 195 c 0,39,40
- 911 195 911 195 792 179 c 1,41,-1
- 802 206 l 1,42,-1
- 747 259 l 1,43,44
- 689 387 689 387 689 533 c 0,45,46
- 689 586 689 586 700 632 c 1,47,-1
- 644 783 l 1,48,-1
- 683 843 l 1,49,-1
- 730 867 l 1,50,51
- 798 774 798 774 843 658 c 1,52,-1
- 886 677 l 1,53,54
- 846 803 846 803 755 910 c 1,55,-1
- 804 965 l 1,56,-1
- 866 949 l 1,57,-1
- 990 836 l 1,58,-1
- 1025 742 l 1,59,-1
- 1070 761 l 1,60,-1
- 1021 869 l 1,61,-1
- 868 996 l 1,62,-1
- 945 1051 l 1,63,-1
- 1111 978 l 1,64,-1
- 1244 836 l 1,65,-1
- 1275 873 l 1,66,-1
- 1244 902 l 1,67,-1
- 1326 1064 l 1,68,-1
- 1283 1486 l 1,69,-1
- 1349 1535 l 1,30,31
-775 -112 m 1,70,-1
- 681 -112 l 1,71,-1
- 681 81 l 1,72,-1
- 775 81 l 1,73,-1
- 775 -112 l 1,70,-1
-EndSplineSet
-EndChar
-StartChar: uniE526
-Encoding: 58662 58662 807
-Width: 2037
-GlyphClass: 2
-Flags: W
-Fore
-780 -220 m 1,0,-1
- 855 -140 l 1,1,2
- 849 39 849 39 827 292 c 1,3,-1
- 892 415 l 1,4,-1
- 991 323 l 1,5,-1
- 1167 253 l 1,6,-1
- 1257 302 l 1,7,-1
- 1275 350 l 1,8,-1
- 1349 364 l 1,9,-1
- 1400 458 l 1,10,-1
- 1456 475 l 1,11,-1
- 1509 573 l 1,12,-1
- 1453 731 l 1,13,14
- 1462 892 1462 892 1462 911 c 0,15,16
- 1462 1039 1462 1039 1370 1193 c 1,17,-1
- 1503 1214 l 1,18,-1
- 1488 1558 l 1,19,-1
- 823 1578 l 1,20,-1
- 769 1224 l 1,21,-1
- 825 1218 l 1,22,-1
- 702 982 l 2,23,24
- 692 962 692 962 645 676 c 0,25,26
- 597 391 597 391 597 350 c 0,27,28
- 597 16 597 16 728 -214 c 1,29,-1
- 780 -220 l 1,0,-1
-757 -177 m 1,30,31
- 647 53 647 53 647 327 c 0,32,33
- 647 584 647 584 698 780 c 0,34,35
- 754 989 754 989 884 1193 c 1,36,-1
- 886 1208 l 1,37,38
- 1110 1163 1110 1163 1167 1163 c 0,39,40
- 1195 1163 1195 1163 1314 1179 c 1,41,-1
- 1304 1152 l 1,42,-1
- 1359 1099 l 1,43,44
- 1417 971 1417 971 1417 825 c 0,45,46
- 1417 773 1417 773 1406 726 c 1,47,-1
- 1462 575 l 1,48,-1
- 1423 515 l 1,49,-1
- 1376 491 l 1,50,51
- 1308 585 1308 585 1263 700 c 1,52,-1
- 1220 681 l 1,53,54
- 1260 555 1260 555 1351 448 c 1,55,-1
- 1302 393 l 1,56,-1
- 1240 409 l 1,57,-1
- 1116 522 l 1,58,-1
- 1081 616 l 1,59,-1
- 1036 597 l 1,60,-1
- 1085 489 l 1,61,-1
- 1238 362 l 1,62,-1
- 1161 307 l 1,63,-1
- 995 380 l 1,64,-1
- 862 522 l 1,65,-1
- 831 485 l 1,66,-1
- 862 456 l 1,67,-1
- 780 294 l 1,68,-1
- 823 -128 l 1,69,-1
- 757 -177 l 1,30,31
-1331 1470 m 1,70,-1
- 1425 1470 l 1,71,-1
- 1425 1277 l 1,72,-1
- 1331 1277 l 1,73,-1
- 1331 1470 l 1,70,-1
-EndSplineSet
-EndChar
-StartChar: uniE527
-Encoding: 58663 58663 808
-Width: 1581
-GlyphClass: 2
-Flags: W
-Fore
-446 -52 m 0,0,1
- 446 -119 446 -119 566 -150 c 0,2,3
- 647 -172 647 -172 744 -172 c 0,4,5
- 831 -172 831 -172 926 -142 c 0,6,7
- 1052 -103 1052 -103 1052 -40 c 0,8,9
- 1052 -9 1052 -9 1026 6 c 1,10,11
- 1021 -62 1021 -62 906 -96 c 0,12,13
- 824 -120 824 -120 730 -120 c 0,14,15
- 480 -120 480 -120 480 -6 c 1,16,17
- 446 -17 446 -17 446 -52 c 0,0,1
-408 428 m 0,18,19
- 408 347 408 347 504 162 c 1,20,-1
- 516 6 l 1,21,22
- 563 -70 563 -70 760 -70 c 0,23,24
- 868 -70 868 -70 912 -46 c 0,25,26
- 947 -24 947 -24 964 32 c 2,27,-1
- 1010 170 l 1,28,-1
- 1138 492 l 1,29,30
- 1137 665 1137 665 1082 928 c 0,31,32
- 1010 1268 1010 1268 910 1268 c 0,33,34
- 883 1268 883 1268 864 1226 c 0,35,36
- 848 1194 848 1194 848 1164 c 0,37,38
- 848 1087 848 1087 896 818 c 1,39,40
- 856 884 856 884 796 884 c 0,41,42
- 718 884 718 884 706 790 c 1,43,44
- 690 832 690 832 638 832 c 0,45,46
- 580 832 580 832 556 770 c 1,47,-1
- 526 776 l 2,48,49
- 408 776 408 776 408 428 c 0,18,19
-EndSplineSet
-EndChar
-StartChar: uniE528
-Encoding: 58664 58664 809
-Width: 1581
-GlyphClass: 2
-Flags: W
-Fore
-1100 1146 m 0,0,1
- 1100 1214 1100 1214 980 1244 c 0,2,3
- 899 1268 899 1268 802 1268 c 0,4,5
- 715 1268 715 1268 620 1236 c 0,6,7
- 494 1198 494 1198 494 1134 c 0,8,9
- 494 1104 494 1104 520 1090 c 1,10,11
- 525 1157 525 1157 640 1192 c 0,12,13
- 722 1214 722 1214 816 1214 c 0,14,15
- 1066 1214 1066 1214 1066 1102 c 1,16,17
- 1100 1112 1100 1112 1100 1146 c 0,0,1
-1138 668 m 0,18,19
- 1138 748 1138 748 1042 934 c 1,20,-1
- 1030 1090 l 1,21,22
- 983 1164 983 1164 786 1164 c 0,23,24
- 678 1164 678 1164 634 1140 c 0,25,26
- 599 1119 599 1119 582 1062 c 2,27,-1
- 536 926 l 1,28,-1
- 408 604 l 1,29,30
- 409 430 409 430 464 168 c 0,31,32
- 536 -172 536 -172 636 -172 c 0,33,34
- 663 -172 663 -172 682 -132 c 0,35,36
- 698 -100 698 -100 698 -68 c 0,37,38
- 698 8 698 8 650 276 c 1,39,40
- 690 210 690 210 750 210 c 0,41,42
- 828 210 828 210 840 304 c 1,43,44
- 856 264 856 264 908 264 c 0,45,46
- 966 264 966 264 990 326 c 1,47,-1
- 1020 320 l 2,48,49
- 1138 320 1138 320 1138 668 c 0,18,19
-EndSplineSet
-EndChar
-StartChar: uniE529
-Encoding: 58665 58665 810
-Width: 2037
-GlyphClass: 2
-Flags: W
-Fore
-780 1578 m 1,0,-1
- 855 1498 l 1,1,2
- 849 1319 849 1319 827 1066 c 1,3,-1
- 892 943 l 1,4,-1
- 991 1035 l 1,5,-1
- 1167 1105 l 1,6,-1
- 1257 1056 l 1,7,-1
- 1275 1008 l 1,8,-1
- 1349 994 l 1,9,-1
- 1400 900 l 1,10,-1
- 1456 883 l 1,11,-1
- 1509 785 l 1,12,-1
- 1453 627 l 1,13,14
- 1462 466 1462 466 1462 447 c 0,15,16
- 1462 319 1462 319 1370 165 c 1,17,-1
- 1503 144 l 1,18,-1
- 1488 -200 l 1,19,-1
- 823 -220 l 1,20,-1
- 769 134 l 1,21,-1
- 825 140 l 1,22,-1
- 702 376 l 2,23,24
- 692 396 692 396 645 682 c 0,25,26
- 597 967 597 967 597 1008 c 0,27,28
- 597 1342 597 1342 728 1572 c 1,29,-1
- 780 1578 l 1,0,-1
-757 1535 m 1,30,31
- 647 1305 647 1305 647 1031 c 0,32,33
- 647 774 647 774 698 578 c 0,34,35
- 754 369 754 369 884 165 c 1,36,-1
- 886 150 l 1,37,38
- 1110 195 1110 195 1167 195 c 0,39,40
- 1195 195 1195 195 1314 179 c 1,41,-1
- 1304 206 l 1,42,-1
- 1359 259 l 1,43,44
- 1417 387 1417 387 1417 533 c 0,45,46
- 1417 586 1417 586 1406 632 c 1,47,-1
- 1462 783 l 1,48,-1
- 1423 843 l 1,49,-1
- 1376 867 l 1,50,51
- 1308 774 1308 774 1263 658 c 1,52,-1
- 1220 677 l 1,53,54
- 1260 803 1260 803 1351 910 c 1,55,-1
- 1302 965 l 1,56,-1
- 1240 949 l 1,57,-1
- 1116 836 l 1,58,-1
- 1081 742 l 1,59,-1
- 1036 761 l 1,60,-1
- 1085 869 l 1,61,-1
- 1238 996 l 1,62,-1
- 1161 1051 l 1,63,-1
- 995 978 l 1,64,-1
- 862 836 l 1,65,-1
- 831 873 l 1,66,-1
- 862 902 l 1,67,-1
- 780 1064 l 1,68,-1
- 823 1486 l 1,69,-1
- 757 1535 l 1,30,31
-1331 -112 m 1,70,-1
- 1425 -112 l 1,71,-1
- 1425 81 l 1,72,-1
- 1331 81 l 1,73,-1
- 1331 -112 l 1,70,-1
-EndSplineSet
-EndChar
-StartChar: uniE52A
-Encoding: 58666 58666 811
-Width: 2037
-GlyphClass: 2
-Flags: W
-Fore
-1326 -220 m 1,0,-1
- 1251 -140 l 1,1,2
- 1257 39 1257 39 1279 292 c 1,3,-1
- 1214 415 l 1,4,-1
- 1115 323 l 1,5,-1
- 939 253 l 1,6,-1
- 849 302 l 1,7,-1
- 831 350 l 1,8,-1
- 757 364 l 1,9,-1
- 706 458 l 1,10,-1
- 650 475 l 1,11,-1
- 597 573 l 1,12,-1
- 653 731 l 1,13,14
- 644 892 644 892 644 911 c 0,15,16
- 644 1039 644 1039 736 1193 c 1,17,-1
- 603 1214 l 1,18,-1
- 618 1558 l 1,19,-1
- 1283 1578 l 1,20,-1
- 1337 1224 l 1,21,-1
- 1281 1218 l 1,22,-1
- 1404 982 l 2,23,24
- 1414 962 1414 962 1461 676 c 0,25,26
- 1509 391 1509 391 1509 350 c 0,27,28
- 1509 16 1509 16 1378 -214 c 1,29,-1
- 1326 -220 l 1,0,-1
-1349 -177 m 1,30,31
- 1459 53 1459 53 1459 327 c 0,32,33
- 1459 584 1459 584 1408 780 c 0,34,35
- 1352 989 1352 989 1222 1193 c 1,36,-1
- 1220 1208 l 1,37,38
- 996 1163 996 1163 939 1163 c 0,39,40
- 911 1163 911 1163 792 1179 c 1,41,-1
- 802 1152 l 1,42,-1
- 747 1099 l 1,43,44
- 689 971 689 971 689 825 c 0,45,46
- 689 773 689 773 700 726 c 1,47,-1
- 644 575 l 1,48,-1
- 683 515 l 1,49,-1
- 730 491 l 1,50,51
- 798 585 798 585 843 700 c 1,52,-1
- 886 681 l 1,53,54
- 846 555 846 555 755 448 c 1,55,-1
- 804 393 l 1,56,-1
- 866 409 l 1,57,-1
- 990 522 l 1,58,-1
- 1025 616 l 1,59,-1
- 1070 597 l 1,60,-1
- 1021 489 l 1,61,-1
- 868 362 l 1,62,-1
- 945 307 l 1,63,-1
- 1111 380 l 1,64,-1
- 1244 522 l 1,65,-1
- 1275 485 l 1,66,-1
- 1244 456 l 1,67,-1
- 1326 294 l 1,68,-1
- 1283 -128 l 1,69,-1
- 1349 -177 l 1,30,31
-775 1470 m 1,70,-1
- 681 1470 l 1,71,-1
- 681 1277 l 1,72,-1
- 775 1277 l 1,73,-1
- 775 1470 l 1,70,-1
-EndSplineSet
-EndChar
-StartChar: uniE52B
-Encoding: 58667 58667 812
-Width: 1581
-GlyphClass: 2
-Flags: W
-Fore
-1100 -52 m 0,0,1
- 1100 -119 1100 -119 980 -150 c 0,2,3
- 899 -172 899 -172 802 -172 c 0,4,5
- 715 -172 715 -172 620 -142 c 0,6,7
- 494 -103 494 -103 494 -40 c 0,8,9
- 494 -9 494 -9 520 6 c 1,10,11
- 525 -62 525 -62 640 -96 c 0,12,13
- 722 -120 722 -120 816 -120 c 0,14,15
- 1066 -120 1066 -120 1066 -6 c 1,16,17
- 1100 -17 1100 -17 1100 -52 c 0,0,1
-1138 428 m 0,18,19
- 1138 347 1138 347 1042 162 c 1,20,-1
- 1030 6 l 1,21,22
- 983 -70 983 -70 786 -70 c 0,23,24
- 678 -70 678 -70 634 -46 c 0,25,26
- 599 -24 599 -24 582 32 c 2,27,-1
- 536 170 l 1,28,-1
- 408 492 l 1,29,30
- 409 665 409 665 464 928 c 0,31,32
- 536 1268 536 1268 636 1268 c 0,33,34
- 663 1268 663 1268 682 1226 c 0,35,36
- 698 1194 698 1194 698 1164 c 0,37,38
- 698 1087 698 1087 650 818 c 1,39,40
- 690 884 690 884 750 884 c 0,41,42
- 828 884 828 884 840 790 c 1,43,44
- 856 832 856 832 908 832 c 0,45,46
- 966 832 966 832 990 770 c 1,47,-1
- 1020 776 l 2,48,49
- 1138 776 1138 776 1138 428 c 0,18,19
-EndSplineSet
-EndChar
-StartChar: uniE52C
-Encoding: 58668 58668 813
-Width: 1581
-GlyphClass: 2
-Flags: W
-Fore
-446 1146 m 0,0,1
- 446 1214 446 1214 566 1244 c 0,2,3
- 647 1268 647 1268 744 1268 c 0,4,5
- 831 1268 831 1268 926 1236 c 0,6,7
- 1052 1198 1052 1198 1052 1134 c 0,8,9
- 1052 1104 1052 1104 1026 1090 c 1,10,11
- 1021 1157 1021 1157 906 1192 c 0,12,13
- 824 1214 824 1214 730 1214 c 0,14,15
- 480 1214 480 1214 480 1102 c 1,16,17
- 446 1112 446 1112 446 1146 c 0,0,1
-408 668 m 0,18,19
- 408 748 408 748 504 934 c 1,20,-1
- 516 1090 l 1,21,22
- 563 1164 563 1164 760 1164 c 0,23,24
- 868 1164 868 1164 912 1140 c 0,25,26
- 947 1119 947 1119 964 1062 c 2,27,-1
- 1010 926 l 1,28,-1
- 1138 604 l 1,29,30
- 1137 430 1137 430 1082 168 c 0,31,32
- 1010 -172 1010 -172 910 -172 c 0,33,34
- 883 -172 883 -172 864 -132 c 0,35,36
- 848 -100 848 -100 848 -68 c 0,37,38
- 848 8 848 8 896 276 c 1,39,40
- 856 210 856 210 796 210 c 0,41,42
- 718 210 718 210 706 304 c 1,43,44
- 690 264 690 264 638 264 c 0,45,46
- 580 264 580 264 556 326 c 1,47,-1
- 526 320 l 2,48,49
- 408 320 408 320 408 668 c 0,18,19
-EndSplineSet
-EndChar
-StartChar: uniE52E
-Encoding: 58670 58670 814
-Width: 983
-GlyphClass: 2
-Flags: W
-Fore
-0 -2 m 1,0,1
- -11 22 -11 22 -25 37 c 1,2,-1
- 356 567 l 1,3,4
- 215 951 215 951 215 954 c 0,5,6
- 215 992 215 992 255 992 c 0,7,8
- 269 992 269 992 289 987 c 1,9,10
- 320 993 320 993 354 1012 c 1,11,-1
- 381 999 l 1,12,-1
- 492 748 l 1,13,-1
- 772 1049 l 1,14,-1
- 836 1024 l 1,15,-1
- 860 1049 l 1,16,17
- 891 1034 891 1034 922 1006 c 1,18,19
- 868 903 868 903 770 784 c 0,20,21
- 768 782 768 782 594 584 c 1,22,-1
- 774 223 l 1,23,24
- 774 182 774 182 711 139 c 1,25,-1
- 727 119 l 1,26,27
- 712 76 712 76 672 76 c 0,28,29
- 626 76 626 76 457 381 c 1,30,-1
- 164 -76 l 2,31,32
- 131 -127 131 -127 72 -127 c 0,33,34
- 9 -127 9 -127 8 -76 c 2,35,36
- -2 -62 -2 -62 -2 -32 c 0,37,38
- -2 -18 -2 -18 0 -2 c 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE52F
-Encoding: 58671 58671 815
-Width: 1613
-GlyphClass: 2
-Flags: W
-Fore
-1499 1569 m 1,0,-1
- 1534 1518 l 1,1,2
- 1293 1335 1293 1335 1038 1004 c 0,3,4
- 802 694 802 694 659 395 c 1,5,6
- 548 322 548 322 461 252 c 1,7,8
- 326 694 326 694 147 766 c 1,9,10
- 248 881 248 881 346 881 c 0,11,12
- 430 881 430 881 549 600 c 1,13,14
- 931 1245 931 1245 1499 1569 c 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE530
-Encoding: 58672 58672 816
-Width: 1884
-GlyphClass: 2
-Flags: W
-Fore
-322 148 m 1,0,-1
- 1506 148 l 1,1,-1
- 1506 1332 l 1,2,-1
- 322 1332 l 1,3,-1
- 322 148 l 1,0,-1
-172 0 m 1,4,-1
- 172 1480 l 1,5,-1
- 1652 1480 l 1,6,-1
- 1652 0 l 1,7,-1
- 172 0 l 1,4,-1
-522 378 m 1,8,-1
- 488 424 l 1,9,-1
- 738 722 l 1,10,11
- 570 1046 570 1046 570 1098 c 0,12,13
- 570 1123 570 1123 600 1156 c 1,14,-1
- 618 1162 l 1,15,16
- 630 1158 630 1158 654 1142 c 1,17,-1
- 658 1142 l 1,18,19
- 688 1202 688 1202 728 1202 c 1,20,-1
- 912 928 l 1,21,22
- 1199 1260 1199 1260 1250 1260 c 0,23,24
- 1287 1260 1287 1260 1310 1222 c 1,25,-1
- 1310 1188 l 1,26,27
- 1376 1164 1376 1164 1376 1122 c 1,28,-1
- 1044 734 l 1,29,-1
- 1254 492 l 1,30,-1
- 1262 468 l 1,31,32
- 1262 447 1262 447 1242 410 c 0,33,34
- 1221 374 1221 374 1196 374 c 1,35,-1
- 1192 392 l 1,36,37
- 1189 312 1189 312 1140 312 c 1,38,39
- 1119 326 1119 326 1106 344 c 1,40,-1
- 1060 294 l 1,41,-1
- 1044 286 l 1,42,43
- 1013 292 1013 292 864 504 c 1,44,-1
- 646 222 l 1,45,-1
- 620 206 l 1,46,47
- 598 228 598 228 590 264 c 1,48,-1
- 544 264 l 1,49,50
- 510 301 510 301 496 344 c 1,51,-1
- 522 378 l 1,8,-1
-EndSplineSet
-EndChar
-StartChar: uniE531
-Encoding: 58673 58673 817
-Width: 1896
-GlyphClass: 2
-Flags: W
-Fore
-1652 0 m 1,0,-1
- 172 0 l 1,1,-1
- 172 1482 l 1,2,-1
- 1600 1482 l 1,3,-1
- 1732 1560 l 1,4,-1
- 1768 1510 l 1,5,6
- 1729 1487 1729 1487 1652 1416 c 1,7,-1
- 1652 0 l 1,0,-1
-1506 1270 m 1,8,9
- 1113 841 1113 841 902 398 c 1,10,-1
- 700 252 l 1,11,12
- 565 696 565 696 390 768 c 1,13,14
- 489 882 489 882 588 882 c 0,15,16
- 674 882 674 882 790 602 c 1,17,18
- 976 917 976 917 1410 1336 c 1,19,-1
- 320 1336 l 1,20,-1
- 320 148 l 1,21,-1
- 1506 148 l 1,22,-1
- 1506 1270 l 1,8,9
-EndSplineSet
-EndChar
-StartChar: uniE532
-Encoding: 58674 58674 818
-Width: 1884
-GlyphClass: 2
-Flags: W
-Fore
-322 148 m 1,0,-1
- 1506 148 l 1,1,-1
- 1506 1332 l 1,2,-1
- 322 1332 l 1,3,-1
- 322 148 l 1,0,-1
-172 0 m 1,4,-1
- 172 1480 l 1,5,-1
- 1652 1480 l 1,6,-1
- 1652 0 l 1,7,-1
- 172 0 l 1,4,-1
-522 378 m 1,8,-1
- 488 424 l 1,9,-1
- 738 722 l 1,10,11
- 570 1046 570 1046 570 1098 c 0,12,13
- 570 1123 570 1123 600 1156 c 1,14,-1
- 618 1162 l 1,15,16
- 630 1158 630 1158 654 1142 c 1,17,-1
- 658 1142 l 1,18,19
- 688 1202 688 1202 728 1202 c 1,20,-1
- 912 928 l 1,21,22
- 1199 1260 1199 1260 1250 1260 c 0,23,24
- 1287 1260 1287 1260 1310 1222 c 1,25,-1
- 1310 1188 l 1,26,27
- 1376 1164 1376 1164 1376 1122 c 1,28,-1
- 1044 734 l 1,29,-1
- 1254 492 l 1,30,-1
- 1262 468 l 1,31,32
- 1262 447 1262 447 1242 410 c 0,33,34
- 1221 374 1221 374 1196 374 c 1,35,-1
- 1192 392 l 1,36,37
- 1189 312 1189 312 1140 312 c 1,38,39
- 1119 326 1119 326 1106 344 c 1,40,-1
- 1060 294 l 1,41,-1
- 1044 286 l 1,42,43
- 1013 292 1013 292 864 504 c 1,44,-1
- 646 222 l 1,45,-1
- 620 206 l 1,46,47
- 598 228 598 228 590 264 c 1,48,-1
- 544 264 l 1,49,50
- 510 301 510 301 496 344 c 1,51,-1
- 522 378 l 1,8,-1
-EndSplineSet
-EndChar
-StartChar: uniE533
-Encoding: 58675 58675 819
-Width: 1884
-GlyphClass: 2
-Flags: W
-Fore
-322 148 m 1,0,-1
- 1506 148 l 1,1,-1
- 1506 1332 l 1,2,-1
- 322 1332 l 1,3,-1
- 322 148 l 1,0,-1
-172 0 m 1,4,-1
- 172 1480 l 1,5,-1
- 1652 1480 l 1,6,-1
- 1652 0 l 1,7,-1
- 172 0 l 1,4,-1
-522 378 m 1,8,-1
- 488 424 l 1,9,-1
- 738 722 l 1,10,11
- 570 1046 570 1046 570 1098 c 0,12,13
- 570 1123 570 1123 600 1156 c 1,14,-1
- 618 1162 l 1,15,16
- 630 1158 630 1158 654 1142 c 1,17,-1
- 658 1142 l 1,18,19
- 688 1202 688 1202 728 1202 c 1,20,-1
- 912 928 l 1,21,22
- 1199 1260 1199 1260 1250 1260 c 0,23,24
- 1287 1260 1287 1260 1310 1222 c 1,25,-1
- 1310 1188 l 1,26,27
- 1376 1164 1376 1164 1376 1122 c 1,28,-1
- 1044 734 l 1,29,-1
- 1254 492 l 1,30,-1
- 1262 468 l 1,31,32
- 1262 447 1262 447 1242 410 c 0,33,34
- 1221 374 1221 374 1196 374 c 1,35,-1
- 1192 392 l 1,36,37
- 1189 312 1189 312 1140 312 c 1,38,39
- 1119 326 1119 326 1106 344 c 1,40,-1
- 1060 294 l 1,41,-1
- 1044 286 l 1,42,43
- 1013 292 1013 292 864 504 c 1,44,-1
- 646 222 l 1,45,-1
- 620 206 l 1,46,47
- 598 228 598 228 590 264 c 1,48,-1
- 544 264 l 1,49,50
- 510 301 510 301 496 344 c 1,51,-1
- 522 378 l 1,8,-1
-EndSplineSet
-EndChar
-StartChar: uniE548
-Encoding: 58696 58696 820
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-864 270 m 1,32,-1
- 864 1110 l 1,33,-1
- 716 1110 l 1,34,-1
- 716 1190 l 1,35,-1
- 988 1212 l 1,36,-1
- 988 270 l 1,37,-1
- 864 270 l 1,32,-1
-EndSplineSet
-EndChar
-StartChar: uniE549
-Encoding: 58697 58697 821
-Width: 1812
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-642 284 m 1,32,-1
- 642 394 l 1,33,34
- 692 516 692 516 860 668 c 2,35,-1
- 932 734 l 2,36,37
- 1070 857 1070 857 1070 978 c 0,38,39
- 1070 1061 1070 1061 1024 1104 c 0,40,41
- 982 1146 982 1146 892 1146 c 0,42,43
- 796 1146 796 1146 666 1072 c 1,44,-1
- 666 1182 l 1,45,46
- 791 1240 791 1240 912 1240 c 0,47,48
- 1043 1240 1043 1240 1122 1170 c 0,49,50
- 1200 1098 1200 1098 1200 980 c 0,51,52
- 1200 895 1200 895 1162 834 c 0,53,54
- 1121 770 1121 770 1012 676 c 2,55,-1
- 964 634 l 2,56,57
- 817 511 817 511 792 394 c 1,58,-1
- 1196 394 l 1,59,-1
- 1196 284 l 1,60,-1
- 642 284 l 1,32,-1
-EndSplineSet
-EndChar
-StartChar: uniE54A
-Encoding: 58698 58698 822
-Width: 1866
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-674 280 m 1,32,-1
- 674 398 l 1,33,34
- 809 344 809 344 884 344 c 0,35,36
- 973 344 973 344 1028 396 c 0,37,38
- 1086 448 1086 448 1086 530 c 0,39,40
- 1086 631 1086 631 1016 680 c 0,41,42
- 947 728 947 728 812 728 c 2,43,-1
- 762 728 l 1,44,-1
- 762 812 l 1,45,-1
- 804 812 l 2,46,47
- 937 812 937 812 1000 858 c 0,48,49
- 1062 902 1062 902 1062 994 c 0,50,51
- 1062 1066 1062 1066 1020 1102 c 0,52,53
- 980 1136 980 1136 890 1136 c 0,54,55
- 798 1136 798 1136 686 1086 c 1,56,-1
- 686 1194 l 1,57,58
- 797 1230 797 1230 902 1230 c 0,59,60
- 1047 1230 1047 1230 1116 1178 c 0,61,62
- 1188 1121 1188 1121 1188 1014 c 0,63,64
- 1188 931 1188 931 1138 874 c 0,65,66
- 1092 817 1092 817 994 780 c 1,67,68
- 1107 752 1107 752 1162 692 c 0,69,70
- 1218 633 1218 633 1218 532 c 0,71,72
- 1218 399 1218 399 1130 326 c 0,73,74
- 1047 252 1047 252 892 252 c 0,75,76
- 811 252 811 252 674 280 c 1,32,-1
-EndSplineSet
-EndChar
-StartChar: uniE54B
-Encoding: 58699 58699 823
-Width: 1850
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-938 284 m 1,32,-1
- 938 548 l 1,33,-1
- 518 548 l 1,34,-1
- 518 642 l 1,35,-1
- 938 1216 l 1,36,-1
- 1054 1216 l 1,37,-1
- 1054 650 l 1,38,-1
- 1180 650 l 1,39,-1
- 1180 548 l 1,40,-1
- 1054 548 l 1,41,-1
- 1054 284 l 1,42,-1
- 938 284 l 1,32,-1
-638 650 m 1,43,-1
- 946 650 l 1,44,-1
- 946 1064 l 1,45,-1
- 638 650 l 1,43,-1
-EndSplineSet
-EndChar
-StartChar: uniE54C
-Encoding: 58700 58700 824
-Width: 1806
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-682 268 m 1,32,-1
- 682 378 l 1,33,34
- 775 342 775 342 858 342 c 0,35,36
- 958 342 958 342 1008 392 c 0,37,38
- 1056 443 1056 443 1056 544 c 0,39,40
- 1056 647 1056 647 986 702 c 0,41,42
- 914 756 914 756 768 756 c 0,43,44
- 734 756 734 756 698 750 c 1,45,-1
- 698 1204 l 1,46,-1
- 1172 1204 l 1,47,-1
- 1172 1096 l 1,48,-1
- 808 1096 l 1,49,-1
- 808 850 l 1,50,51
- 985 850 985 850 1088 768 c 0,52,53
- 1190 684 1190 684 1190 538 c 0,54,55
- 1190 400 1190 400 1098 326 c 0,56,57
- 1005 248 1005 248 846 248 c 0,58,59
- 765 248 765 248 682 268 c 1,32,-1
-EndSplineSet
-EndChar
-StartChar: uniE54D
-Encoding: 58701 58701 825
-Width: 1840
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-718 754 m 1,32,33
- 764 813 764 813 820 842 c 0,34,35
- 876 870 876 870 942 870 c 0,36,37
- 1066 870 1066 870 1142 788 c 0,38,39
- 1220 710 1220 710 1220 582 c 0,40,41
- 1220 434 1220 434 1132 342 c 0,42,43
- 1047 248 1047 248 912 248 c 0,44,45
- 758 248 758 248 670 372 c 0,46,47
- 584 497 584 497 584 716 c 0,48,49
- 584 960 584 960 682 1094 c 0,50,51
- 780 1228 780 1228 962 1228 c 0,52,53
- 1056 1228 1056 1228 1172 1194 c 1,54,-1
- 1172 1084 l 1,55,56
- 1043 1134 1043 1134 954 1134 c 0,57,58
- 838 1134 838 1134 778 1038 c 0,59,60
- 718 945 718 945 718 754 c 1,32,33
-1096 558 m 0,61,62
- 1096 669 1096 669 1050 724 c 0,63,64
- 1009 780 1009 780 918 780 c 0,65,66
- 838 780 838 780 780 728 c 0,67,68
- 724 672 724 672 724 600 c 0,69,70
- 724 484 724 484 778 412 c 0,71,72
- 833 342 833 342 920 342 c 0,73,74
- 1007 342 1007 342 1052 396 c 0,75,76
- 1096 446 1096 446 1096 558 c 0,61,62
-EndSplineSet
-EndChar
-StartChar: uniE54E
-Encoding: 58702 58702 826
-Width: 1802
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-686 234 m 1,32,33
- 716 412 716 412 858 642 c 2,34,-1
- 1112 1050 l 1,35,-1
- 632 1050 l 1,36,-1
- 632 1168 l 1,37,-1
- 1230 1168 l 1,38,-1
- 1230 1050 l 1,39,40
- 872 520 872 520 830 234 c 1,41,-1
- 686 234 l 1,32,33
-EndSplineSet
-EndChar
-StartChar: uniE54F
-Encoding: 58703 58703 827
-Width: 1786
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-776 778 m 1,32,33
- 642 873 642 873 642 990 c 0,34,35
- 642 1098 642 1098 718 1162 c 0,36,37
- 797 1226 797 1226 922 1226 c 0,38,39
- 1036 1226 1036 1226 1108 1172 c 0,40,41
- 1180 1115 1180 1115 1180 1026 c 0,42,43
- 1180 892 1180 892 1006 778 c 1,44,45
- 1216 676 1216 676 1216 512 c 0,46,47
- 1216 393 1216 393 1128 322 c 0,48,49
- 1042 248 1042 248 902 248 c 0,50,51
- 763 248 763 248 678 318 c 0,52,53
- 592 386 592 386 592 502 c 0,54,55
- 592 666 592 666 776 778 c 1,32,33
-936 818 m 1,56,57
- 1068 902 1068 902 1068 1010 c 0,58,59
- 1068 1063 1068 1063 1022 1100 c 0,60,61
- 979 1134 979 1134 910 1134 c 0,62,63
- 842 1134 842 1134 796 1100 c 0,64,65
- 754 1067 754 1067 754 1014 c 0,66,67
- 754 919 754 919 936 818 c 1,56,57
-846 730 m 1,68,69
- 717 631 717 631 716 520 c 0,70,71
- 716 442 716 442 768 392 c 0,72,73
- 818 342 818 342 904 342 c 0,74,75
- 984 342 984 342 1036 382 c 0,76,77
- 1088 428 1088 428 1088 494 c 0,78,79
- 1088 585 1088 585 934 676 c 2,80,-1
- 846 730 l 1,68,69
-EndSplineSet
-EndChar
-StartChar: uniE550
-Encoding: 58704 58704 828
-Width: 1792
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-656 276 m 1,32,-1
- 656 382 l 1,33,34
- 779 342 779 342 858 342 c 0,35,36
- 983 342 983 342 1042 434 c 0,37,38
- 1104 526 1104 526 1104 714 c 1,39,40
- 1053 653 1053 653 1004 626 c 0,41,42
- 948 598 948 598 888 598 c 0,43,44
- 770 598 770 598 690 684 c 0,45,46
- 608 772 608 772 608 898 c 0,47,48
- 608 1040 608 1040 694 1132 c 0,49,50
- 779 1226 779 1226 914 1226 c 0,51,52
- 1066 1226 1066 1226 1156 1106 c 0,53,54
- 1242 980 1242 980 1242 772 c 0,55,56
- 1242 531 1242 531 1134 390 c 0,57,58
- 1030 248 1030 248 846 248 c 0,59,60
- 777 248 777 248 656 276 c 1,32,-1
-732 916 m 0,61,62
- 732 802 732 802 776 746 c 0,63,64
- 821 686 821 686 912 686 c 0,65,66
- 993 686 993 686 1046 742 c 0,67,68
- 1102 792 1102 792 1102 870 c 0,69,70
- 1102 991 1102 991 1048 1060 c 0,71,72
- 998 1134 998 1134 908 1134 c 0,73,74
- 818 1134 818 1134 776 1080 c 0,75,76
- 732 1024 732 1024 732 916 c 0,61,62
-EndSplineSet
-EndChar
-StartChar: uniE551
-Encoding: 58705 58705 829
-Width: 1816
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-272 740 m 0,16,17
- 272 472 272 472 458 286 c 0,18,19
- 649 98 649 98 914 98 c 0,20,21
- 1178 98 1178 98 1366 286 c 0,22,23
- 1554 471 1554 471 1554 740 c 0,24,25
- 1554 1006 1554 1006 1366 1194 c 0,26,27
- 1181 1382 1181 1382 914 1382 c 0,28,29
- 646 1382 646 1382 458 1194 c 0,30,31
- 272 1005 272 1005 272 740 c 0,16,17
-604 270 m 1,32,-1
- 604 1110 l 1,33,-1
- 506 1110 l 1,34,-1
- 506 1190 l 1,35,-1
- 730 1212 l 1,36,-1
- 730 270 l 1,37,-1
- 604 270 l 1,32,-1
-1110 248 m 0,38,39
- 984 248 984 248 910 382 c 0,40,41
- 834 514 834 514 834 738 c 0,42,43
- 834 960 834 960 910 1092 c 0,44,45
- 984 1226 984 1226 1110 1226 c 0,46,47
- 1238 1226 1238 1226 1312 1092 c 0,48,49
- 1388 960 1388 960 1388 738 c 0,50,51
- 1388 514 1388 514 1312 382 c 0,52,53
- 1238 248 1238 248 1110 248 c 0,38,39
-1110 342 m 0,54,55
- 1184 342 1184 342 1220 440 c 0,56,57
- 1256 542 1256 542 1256 740 c 0,58,59
- 1256 937 1256 937 1220 1036 c 0,60,61
- 1184 1134 1184 1134 1110 1134 c 0,62,63
- 1036 1134 1036 1134 1004 1034 c 0,64,65
- 966 938 966 938 966 738 c 0,66,67
- 966 539 966 539 1004 440 c 0,68,69
- 1037 342 1037 342 1110 342 c 0,54,55
-EndSplineSet
-EndChar
-StartChar: uniE552
-Encoding: 58706 58706 830
-Width: 1822
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-552 740 m 0,16,17
- 552 522 552 522 652 386 c 0,18,19
- 750 252 750 252 914 252 c 0,20,21
- 1075 252 1075 252 1176 386 c 0,22,23
- 1276 522 1276 522 1276 740 c 0,24,25
- 1276 960 1276 960 1176 1096 c 0,26,27
- 1075 1230 1075 1230 914 1230 c 0,28,29
- 750 1230 750 1230 652 1096 c 0,30,31
- 552 960 552 960 552 740 c 0,16,17
-750 740 m 0,32,33
- 750 1112 750 1112 914 1112 c 128,-1,34
- 1078 1112 1078 1112 1078 754 c 0,35,36
- 1078 366 1078 366 914 366 c 128,-1,37
- 750 366 750 366 750 740 c 0,32,33
-EndSplineSet
-EndChar
-StartChar: uniE553
-Encoding: 58707 58707 831
-Width: 1860
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-836 278 m 1,16,-1
- 1022 278 l 1,17,-1
- 1022 1222 l 1,18,-1
- 706 1194 l 1,19,-1
- 710 1102 l 1,20,-1
- 836 1102 l 1,21,-1
- 836 278 l 1,16,-1
-EndSplineSet
-EndChar
-StartChar: uniE554
-Encoding: 58708 58708 832
-Width: 1840
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-620 284 m 1,16,-1
- 1244 284 l 1,17,-1
- 1244 430 l 1,18,-1
- 832 430 l 1,19,20
- 856 523 856 523 988 628 c 2,21,-1
- 1050 678 l 2,22,23
- 1248 837 1248 837 1248 980 c 0,24,25
- 1248 1097 1248 1097 1160 1170 c 0,26,27
- 1069 1240 1069 1240 920 1240 c 0,28,29
- 864 1240 864 1240 784 1226 c 0,30,31
- 708 1212 708 1212 646 1188 c 1,32,-1
- 646 1050 l 1,33,34
- 779 1118 779 1118 882 1118 c 0,35,36
- 1048 1118 1048 1118 1048 972 c 0,37,38
- 1048 846 1048 846 860 682 c 2,39,-1
- 784 614 l 2,40,41
- 695 532 695 532 620 430 c 1,42,-1
- 620 284 l 1,16,-1
-EndSplineSet
-EndChar
-StartChar: uniE555
-Encoding: 58709 58709 833
-Width: 1860
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-658 278 m 1,16,17
- 698 268 698 268 782 256 c 0,18,19
- 838 248 838 248 912 248 c 0,20,21
- 1076 248 1076 248 1172 320 c 0,22,23
- 1266 393 1266 393 1266 520 c 0,24,25
- 1266 718 1266 718 1030 772 c 1,26,27
- 1236 841 1236 841 1236 1006 c 0,28,29
- 1236 1118 1236 1118 1162 1174 c 0,30,31
- 1084 1228 1084 1228 932 1228 c 0,32,33
- 862 1228 862 1228 796 1216 c 0,34,35
- 733 1207 733 1207 672 1186 c 1,36,-1
- 672 1058 l 1,37,38
- 788 1110 788 1110 888 1110 c 0,39,40
- 1046 1110 1046 1110 1046 984 c 0,41,42
- 1046 890 1046 890 978 854 c 0,43,44
- 915 818 915 818 744 818 c 1,45,-1
- 744 706 l 1,46,47
- 926 706 926 706 1000 666 c 0,48,49
- 1072 624 1072 624 1072 522 c 0,50,51
- 1072 452 1072 452 1022 408 c 0,52,53
- 972 364 972 364 888 364 c 0,54,55
- 796 364 796 364 658 418 c 1,56,-1
- 658 278 l 1,16,17
-EndSplineSet
-EndChar
-StartChar: uniE556
-Encoding: 58710 58710 834
-Width: 1836
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-934 278 m 1,16,-1
- 1096 278 l 1,17,-1
- 1096 526 l 1,18,-1
- 1204 526 l 1,19,-1
- 1204 666 l 1,20,-1
- 1096 666 l 1,21,-1
- 1096 1210 l 1,22,-1
- 926 1210 l 1,23,-1
- 498 666 l 1,24,-1
- 498 526 l 1,25,-1
- 934 526 l 1,26,-1
- 934 278 l 1,16,-1
-648 666 m 1,27,-1
- 936 1030 l 1,28,-1
- 936 666 l 1,29,-1
- 648 666 l 1,27,-1
-EndSplineSet
-EndChar
-StartChar: uniE557
-Encoding: 58711 58711 835
-Width: 1836
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-658 274 m 1,16,17
- 721 262 721 262 772 256 c 0,18,19
- 817 248 817 248 860 248 c 0,20,21
- 1032 248 1032 248 1130 328 c 0,22,23
- 1228 405 1228 405 1228 542 c 0,24,25
- 1228 689 1228 689 1116 772 c 0,26,27
- 1005 856 1005 856 812 856 c 1,28,-1
- 812 1056 l 1,29,-1
- 1208 1056 l 1,30,-1
- 1208 1204 l 1,31,-1
- 674 1204 l 1,32,-1
- 674 736 l 1,33,34
- 707 742 707 742 742 742 c 0,35,36
- 1030 742 1030 742 1030 540 c 0,37,38
- 1030 364 1030 364 856 364 c 0,39,40
- 778 364 778 364 658 410 c 1,41,-1
- 658 274 l 1,16,17
-EndSplineSet
-EndChar
-StartChar: uniE558
-Encoding: 58712 58712 836
-Width: 1860
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-742 766 m 1,16,17
- 742 930 742 930 802 1020 c 0,18,19
- 865 1110 865 1110 976 1110 c 0,20,21
- 1076 1110 1076 1110 1204 1058 c 1,22,-1
- 1204 1194 l 1,23,24
- 1108 1215 1108 1215 1078 1218 c 0,25,26
- 1025 1226 1025 1226 970 1226 c 0,27,28
- 769 1226 769 1226 658 1094 c 0,29,30
- 546 958 546 958 546 716 c 0,31,32
- 546 496 546 496 646 372 c 0,33,34
- 743 248 743 248 916 248 c 0,35,36
- 1063 248 1063 248 1160 342 c 0,37,38
- 1254 436 1254 436 1254 582 c 0,39,40
- 1254 708 1254 708 1172 790 c 128,-1,41
- 1090 872 1090 872 964 872 c 0,42,43
- 827 872 827 872 742 766 c 1,16,17
-1068 556 m 0,44,45
- 1068 364 1068 364 916 364 c 0,46,47
- 844 364 844 364 794 426 c 0,48,49
- 750 485 750 485 750 582 c 0,50,51
- 750 654 750 654 796 706 c 0,52,53
- 845 758 845 758 912 758 c 0,54,55
- 1068 758 1068 758 1068 556 c 0,44,45
-EndSplineSet
-EndChar
-StartChar: uniE559
-Encoding: 58713 58713 837
-Width: 1846
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-662 234 m 1,16,-1
- 866 234 l 1,17,18
- 866 365 866 365 970 576 c 0,19,20
- 1078 789 1078 789 1258 1016 c 1,21,-1
- 1258 1168 l 1,22,-1
- 620 1168 l 1,23,-1
- 620 1016 l 1,24,-1
- 1106 1016 l 1,25,-1
- 886 696 l 2,26,27
- 751 501 751 501 712 420 c 0,28,29
- 674 342 674 342 662 234 c 1,16,-1
-EndSplineSet
-EndChar
-StartChar: uniE55A
-Encoding: 58714 58714 838
-Width: 1926
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-758 770 m 1,16,17
- 572 665 572 665 572 500 c 0,18,19
- 572 383 572 383 664 318 c 0,20,21
- 758 248 758 248 910 248 c 0,22,23
- 1065 248 1065 248 1162 324 c 0,24,25
- 1260 401 1260 401 1260 522 c 0,26,27
- 1260 678 1260 678 1058 784 c 1,28,29
- 1216 894 1216 894 1216 1018 c 0,30,31
- 1216 1113 1216 1113 1138 1170 c 0,32,33
- 1061 1226 1061 1226 932 1226 c 0,34,35
- 792 1226 792 1226 708 1160 c 0,36,37
- 623 1093 623 1093 622 986 c 0,38,39
- 622 861 622 861 758 770 c 1,16,17
-962 838 m 1,40,41
- 784 932 784 932 784 1008 c 0,42,43
- 784 1110 784 1110 916 1110 c 0,44,45
- 1054 1110 1054 1110 1054 992 c 0,46,47
- 1054 910 1054 910 962 838 c 1,40,41
-850 708 m 1,48,-1
- 938 660 l 2,49,50
- 1090 574 1090 574 1090 494 c 0,51,52
- 1090 436 1090 436 1042 400 c 0,53,54
- 998 362 998 362 928 362 c 0,55,56
- 849 362 849 362 798 410 c 0,57,58
- 748 457 748 457 748 530 c 0,59,60
- 748 624 748 624 850 708 c 1,48,-1
-EndSplineSet
-EndChar
-StartChar: uniE55B
-Encoding: 58715 58715 839
-Width: 1812
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-1094 706 m 1,16,17
- 1094 551 1094 551 1030 456 c 0,18,19
- 966 364 966 364 854 364 c 0,20,21
- 750 364 750 364 632 414 c 1,22,-1
- 632 278 l 1,23,24
- 674 269 674 269 758 256 c 0,25,26
- 806 248 806 248 856 248 c 0,27,28
- 1060 248 1060 248 1174 386 c 0,29,30
- 1288 521 1288 521 1288 766 c 0,31,32
- 1288 981 1288 981 1192 1104 c 0,33,34
- 1094 1226 1094 1226 922 1226 c 0,35,36
- 769 1226 769 1226 678 1132 c 0,37,38
- 584 1041 584 1041 584 894 c 0,39,40
- 584 771 584 771 668 684 c 0,41,42
- 752 600 752 600 874 600 c 0,43,44
- 1003 600 1003 600 1094 706 c 1,16,17
-770 922 m 0,45,46
- 770 1110 770 1110 922 1110 c 0,47,48
- 997 1110 997 1110 1042 1050 c 0,49,50
- 1088 989 1088 989 1088 890 c 0,51,52
- 1088 814 1088 814 1040 766 c 0,53,54
- 991 714 991 714 926 714 c 0,55,56
- 770 714 770 714 770 922 c 0,45,46
-EndSplineSet
-EndChar
-StartChar: uniE55C
-Encoding: 58716 58716 840
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-524 278 m 1,16,-1
- 710 278 l 1,17,-1
- 710 1222 l 1,18,-1
- 396 1194 l 1,19,-1
- 400 1102 l 1,20,-1
- 524 1102 l 1,21,-1
- 524 278 l 1,16,-1
-1154 254 m 0,22,23
- 1290 254 1290 254 1380 392 c 0,24,25
- 1468 524 1468 524 1468 740 c 0,26,27
- 1468 955 1468 955 1380 1090 c 0,28,29
- 1290 1228 1290 1228 1154 1228 c 128,-1,30
- 1018 1228 1018 1228 928 1090 c 0,31,32
- 840 950 840 950 840 740 c 0,33,34
- 840 529 840 529 928 392 c 0,35,36
- 1018 254 1018 254 1154 254 c 0,22,23
-1154 370 m 0,37,38
- 1030 370 1030 370 1030 740 c 128,-1,39
- 1030 1110 1030 1110 1154 1110 c 128,-1,40
- 1278 1110 1278 1110 1278 740 c 128,-1,41
- 1278 370 1278 370 1154 370 c 0,37,38
-EndSplineSet
-EndChar
-StartChar: uniE55E
-Encoding: 58718 58718 841
-Width: 1458
-GlyphClass: 2
-Flags: W
-Fore
-794 104 m 1,0,-1
- 630 104 l 1,1,-1
- 630 834 l 1,2,-1
- 262 834 l 1,3,-1
- 262 998 l 1,4,-1
- 630 998 l 1,5,-1
- 630 1366 l 1,6,-1
- 794 1366 l 1,7,-1
- 794 998 l 1,8,-1
- 1164 998 l 1,9,-1
- 1164 834 l 1,10,-1
- 794 834 l 1,11,-1
- 794 104 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE55F
-Encoding: 58719 58719 842
-Width: 1458
-GlyphClass: 2
-Flags: W
-Fore
-1280 734 m 1,0,-1
- 910 734 l 1,1,-1
- 910 4 l 1,2,-1
- 528 4 l 1,3,-1
- 528 734 l 1,4,-1
- 150 734 l 1,5,-1
- 150 1102 l 1,6,-1
- 528 1102 l 1,7,-1
- 528 1480 l 1,8,-1
- 910 1480 l 1,9,-1
- 910 1102 l 1,10,-1
- 1280 1102 l 1,11,-1
- 1280 734 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE570
-Encoding: 58736 58736 843
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 986 172 986 346 1160 c 0,2,3
- 521 1332 521 1332 766 1332 c 0,4,5
- 1009 1332 1009 1332 1184 1160 c 0,6,7
- 1358 986 1358 986 1358 740 c 0,8,9
- 1358 496 1358 496 1184 322 c 128,-1,10
- 1010 148 1010 148 766 148 c 0,11,12
- 520 148 520 148 346 322 c 128,-1,13
- 172 496 172 496 172 740 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uniE571
-Encoding: 58737 58737 844
-Width: 1962
-GlyphClass: 2
-Flags: W
-Fore
-784 1559 m 0,0,1
- 1585 1559 1585 1559 1585 758 c 0,2,3
- 1585 -43 1585 -43 784 -43 c 0,4,5
- -17 -43 -17 -43 -17 758 c 0,6,7
- -17 1559 -17 1559 784 1559 c 0,0,1
-EndSplineSet
-EndChar
-StartChar: uniE572
-Encoding: 58738 58738 845
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-349 736 m 0,16,17
- 349 502 349 502 512 339 c 0,18,19
- 679 174 679 174 911 174 c 0,20,21
- 1142 174 1142 174 1306 339 c 0,22,23
- 1471 501 1471 501 1471 736 c 0,24,25
- 1471 969 1471 969 1306 1134 c 0,26,27
- 1145 1298 1145 1298 911 1298 c 0,28,29
- 676 1298 676 1298 512 1134 c 0,30,31
- 349 968 349 968 349 736 c 0,16,17
-EndSplineSet
-EndChar
-StartChar: uniE573
-Encoding: 58739 58739 846
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-349 736 m 0,16,17
- 349 502 349 502 512 339 c 0,18,19
- 679 174 679 174 911 174 c 0,20,21
- 1142 174 1142 174 1306 339 c 0,22,23
- 1471 501 1471 501 1471 736 c 0,24,25
- 1471 969 1471 969 1306 1134 c 0,26,27
- 1145 1298 1145 1298 911 1298 c 0,28,29
- 676 1298 676 1298 512 1134 c 0,30,31
- 349 968 349 968 349 736 c 0,16,17
-EndSplineSet
-EndChar
-StartChar: uniE574
-Encoding: 58740 58740 847
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-468 729 m 0,16,17
- 468 549 468 549 592 425 c 0,18,19
- 720 299 720 299 898 299 c 0,20,21
- 1075 299 1075 299 1201 425 c 0,22,23
- 1327 549 1327 549 1327 729 c 0,24,25
- 1327 907 1327 907 1201 1033 c 0,26,27
- 1077 1159 1077 1159 898 1159 c 0,28,29
- 718 1159 718 1159 592 1033 c 0,30,31
- 468 906 468 906 468 729 c 0,16,17
-EndSplineSet
-EndChar
-StartChar: uniE575
-Encoding: 58741 58741 848
-Width: 1826
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 0,0,1
- 172 1046 172 1046 390 1264 c 0,2,3
- 606 1480 606 1480 914 1480 c 0,4,5
- 1220 1480 1220 1480 1436 1264 c 0,6,7
- 1652 1045 1652 1045 1652 740 c 0,8,9
- 1652 431 1652 431 1436 218 c 0,10,11
- 1221 0 1221 0 914 0 c 0,12,13
- 605 0 605 0 390 218 c 0,14,15
- 172 430 172 430 172 740 c 0,0,1
-611 718 m 0,16,17
- 611 606 611 606 689 528 c 0,18,19
- 769 449 769 449 880 449 c 0,20,21
- 990 449 990 449 1069 528 c 0,22,23
- 1148 605 1148 605 1148 718 c 0,24,25
- 1148 829 1148 829 1069 908 c 0,26,27
- 992 987 992 987 880 987 c 0,28,29
- 768 987 768 987 689 908 c 0,30,31
- 611 829 611 829 611 718 c 0,16,17
-EndSplineSet
-EndChar
-StartChar: uniE578
-Encoding: 58744 58744 849
-Width: 708
-GlyphClass: 2
-Flags: W
-Fore
-320 890 m 1,0,-1
- 620 890 l 1,1,-1
- 620 590 l 1,2,-1
- 320 590 l 1,3,-1
- 320 890 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE579
-Encoding: 58745 58745 850
-Width: 946
-GlyphClass: 2
-Flags: W
-Fore
-170 1040 m 1,0,-1
- 770 1040 l 1,1,-1
- 770 440 l 1,2,-1
- 170 440 l 1,3,-1
- 170 1040 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE57A
-Encoding: 58746 58746 851
-Width: 1624
-GlyphClass: 2
-Flags: W
-Fore
-1370 174 m 1,0,-1
- 214 174 l 1,1,-1
- 214 1330 l 1,2,-1
- 1370 1330 l 1,3,-1
- 1370 174 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE57B
-Encoding: 58747 58747 852
-Width: 2040
-GlyphClass: 2
-Flags: W
-Fore
-1659 -115 m 1,0,-1
- -75 -115 l 1,1,-1
- -75 1619 l 1,2,-1
- 1659 1619 l 1,3,-1
- 1659 -115 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE57C
-Encoding: 58748 58748 853
-Width: 1824
-GlyphClass: 2
-Flags: W
-Fore
-322 148 m 1,0,-1
- 1506 148 l 1,1,-1
- 1506 1332 l 1,2,-1
- 322 1332 l 1,3,-1
- 322 148 l 1,0,-1
-172 0 m 1,4,-1
- 172 1480 l 1,5,-1
- 1652 1480 l 1,6,-1
- 1652 0 l 1,7,-1
- 172 0 l 1,4,-1
-EndSplineSet
-EndChar
-StartChar: uniE584
-Encoding: 58756 58756 854
-Width: 787
-GlyphClass: 2
-Flags: W
-Fore
-465 741 m 1,0,-1
- 591 867 l 1,1,-1
- 717 741 l 1,2,-1
- 591 615 l 1,3,-1
- 465 741 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE585
-Encoding: 58757 58757 855
-Width: 1147
-GlyphClass: 2
-Flags: W
-Fore
-235 740 m 1,0,-1
- 592 1097 l 1,1,-1
- 947 740 l 1,2,-1
- 592 385 l 1,3,-1
- 235 740 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE586
-Encoding: 58758 58758 856
-Width: 1344
-GlyphClass: 2
-Flags: W
-Fore
-109 740 m 1,0,-1
- 592 1223 l 1,1,-1
- 1073 740 l 1,2,-1
- 592 259 l 1,3,-1
- 109 740 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE587
-Encoding: 58759 58759 857
-Width: 1573
-GlyphClass: 2
-Flags: W
-Fore
--38 740 m 1,0,-1
- 592 1370 l 1,1,-1
- 1220 740 l 1,2,-1
- 592 112 l 1,3,-1
- -38 740 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE58D
-Encoding: 58765 58765 858
-Width: 958
-GlyphClass: 2
-Flags: W
-Fore
-676 742 m 1,0,-1
- 766 868 l 1,1,-1
- 856 742 l 1,2,-1
- 766 616 l 1,3,-1
- 676 742 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE58E
-Encoding: 58766 58766 859
-Width: 1150
-GlyphClass: 2
-Flags: W
-Fore
-587 741 m 1,0,-1
- 766 993 l 1,1,-1
- 945 741 l 1,2,-1
- 766 491 l 1,3,-1
- 587 741 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE58F
-Encoding: 58767 58767 860
-Width: 1342
-GlyphClass: 2
-Flags: W
-Fore
-497 741 m 1,0,-1
- 766 1119 l 1,1,-1
- 1035 741 l 1,2,-1
- 766 365 l 1,3,-1
- 497 741 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE590
-Encoding: 58768 58768 861
-Width: 1855
-GlyphClass: 2
-Flags: W
-Fore
-258 740 m 1,0,-1
- 766 1454 l 1,1,-1
- 1274 740 l 1,2,-1
- 766 30 l 1,3,-1
- 258 740 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE593
-Encoding: 58771 58771 862
-Width: 897
-GlyphClass: 2
-Flags: W
-Fore
-838 1489 m 1,0,1
- 514 1489 514 1489 287 1271 c 0,2,3
- 59 1052 59 1052 59 729 c 0,4,5
- 59 400 59 400 283 188 c 0,6,7
- 505 -25 505 -25 838 -31 c 1,8,-1
- 838 1489 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE594
-Encoding: 58772 58772 863
-Width: 897
-GlyphClass: 2
-Flags: W
-Fore
-59 1489 m 1,0,1
- 383 1489 383 1489 610 1271 c 0,2,3
- 838 1052 838 1052 838 729 c 0,4,5
- 838 400 838 400 614 188 c 0,6,7
- 392 -25 392 -25 59 -31 c 1,8,-1
- 59 1489 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE595
-Encoding: 58773 58773 864
-Width: 897
-GlyphClass: 2
-Flags: W
-Fore
-1208 740 m 1,0,1
- 1208 1063 1208 1063 990 1290 c 0,2,3
- 772 1518 772 1518 448 1518 c 0,4,5
- 119 1518 119 1518 -92 1294 c 0,6,7
- -306 1072 -306 1072 -312 740 c 1,8,-1
- 1208 740 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE596
-Encoding: 58774 58774 865
-Width: 897
-GlyphClass: 2
-Flags: W
-Fore
-1208 968 m 1,0,1
- 1208 645 1208 645 990 418 c 0,2,3
- 772 190 772 190 448 190 c 0,4,5
- 119 190 119 190 -92 414 c 0,6,7
- -306 636 -306 636 -312 968 c 1,8,-1
- 1208 968 l 1,0,1
-EndSplineSet
-EndChar
-StartChar: uniE597
-Encoding: 58775 58775 866
-Width: 1624
-GlyphClass: 2
-Flags: W
-Fore
-1370 174 m 1,0,-1
- 214 174 l 1,1,-1
- 214 1330 l 1,2,-1
- 1370 1330 l 1,3,-1
- 1370 174 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE5A5
-Encoding: 58789 58789 867
-Width: 1196
-GlyphClass: 2
-Flags: W
-Fore
-1171 360 m 1,0,-1
- 801 360 l 1,1,-1
- 801 0 l 1,2,-1
- 408 0 l 1,3,-1
- 408 360 l 1,4,-1
- 41 360 l 1,5,-1
- 41 737 l 1,6,-1
- 408 737 l 1,7,-1
- 408 1114 l 1,8,-1
- 793 1114 l 1,9,-1
- 793 737 l 1,10,-1
- 1171 737 l 1,11,-1
- 1171 360 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE680
-Encoding: 59008 59008 868
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 1,0,-1
- 814 1480 l 1,1,-1
- 1370 1480 l 1,2,-1
- 928 938 l 1,3,-1
- 2014 938 l 1,4,-1
- 2014 542 l 1,5,-1
- 928 542 l 1,6,-1
- 1370 0 l 1,7,-1
- 814 0 l 1,8,-1
- 172 740 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE681
-Encoding: 59009 59009 869
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-2014 740 m 1,0,-1
- 1374 1480 l 1,1,-1
- 816 1480 l 1,2,-1
- 1260 938 l 1,3,-1
- 172 938 l 1,4,-1
- 172 542 l 1,5,-1
- 1260 542 l 1,6,-1
- 816 0 l 1,7,-1
- 1374 0 l 1,8,-1
- 2014 740 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE682
-Encoding: 59010 59010 870
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-914 1480 m 1,0,-1
- 1652 840 l 1,1,-1
- 1652 282 l 1,2,-1
- 1110 724 l 1,3,-1
- 1110 -360 l 1,4,-1
- 716 -360 l 1,5,-1
- 716 724 l 1,6,-1
- 172 282 l 1,7,-1
- 172 840 l 1,8,-1
- 914 1480 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE683
-Encoding: 59011 59011 871
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-914 0 m 1,0,-1
- 172 640 l 1,1,-1
- 172 1198 l 1,2,-1
- 716 756 l 1,3,-1
- 716 1842 l 1,4,-1
- 1110 1842 l 1,5,-1
- 1110 756 l 1,6,-1
- 1652 1198 l 1,7,-1
- 1652 640 l 1,8,-1
- 914 0 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE684
-Encoding: 59012 59012 872
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-1160 1382 m 1,0,-1
- 1160 740 l 1,1,-1
- 1240 740 l 2,2,3
- 1415 740 1415 740 1484 800 c 0,4,5
- 1554 858 1554 858 1554 1010 c 2,6,-1
- 1554 1382 l 1,7,-1
- 1358 1184 l 1,8,-1
- 1160 1382 l 1,0,-1
-172 444 m 1,9,-1
- 802 1074 l 1,10,-1
- 802 740 l 1,11,-1
- 1060 740 l 1,12,-1
- 1060 1616 l 1,13,-1
- 1358 1320 l 1,14,-1
- 1652 1616 l 1,15,-1
- 1652 1088 l 2,16,17
- 1652 903 1652 903 1622 828 c 0,18,19
- 1588 749 1588 749 1460 620 c 2,20,-1
- 1142 302 l 2,21,22
- 1052 209 1052 209 990 178 c 0,23,24
- 927 148 927 148 832 148 c 2,25,-1
- 802 148 l 1,26,-1
- 802 -184 l 1,27,-1
- 172 444 l 1,9,-1
-EndSplineSet
-EndChar
-StartChar: uniE685
-Encoding: 59013 59013 873
-Width: 1806
-GlyphClass: 2
-Flags: W
-Fore
-1652 444 m 1,0,-1
- 1024 -184 l 1,1,-1
- 1024 148 l 1,2,-1
- 996 148 l 2,3,4
- 898 148 898 148 838 178 c 0,5,6
- 781 205 781 205 684 302 c 2,7,-1
- 366 620 l 2,8,9
- 238 748 238 748 204 828 c 0,10,11
- 172 901 172 901 172 1088 c 2,12,-1
- 172 1616 l 1,13,-1
- 468 1320 l 1,14,-1
- 766 1616 l 1,15,-1
- 766 740 l 1,16,-1
- 1024 740 l 1,17,-1
- 1024 1074 l 1,18,-1
- 1652 444 l 1,0,-1
-666 1382 m 1,19,-1
- 468 1184 l 1,20,-1
- 272 1382 l 1,21,-1
- 272 1010 l 2,22,23
- 272 862 272 862 342 800 c 0,24,25
- 414 740 414 740 588 740 c 2,26,-1
- 668 740 l 1,27,-1
- 666 1382 l 1,19,-1
-EndSplineSet
-EndChar
-StartChar: uniE686
-Encoding: 59014 59014 874
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-172 988 m 1,0,-1
- 802 1616 l 1,1,-1
- 802 1282 l 1,2,-1
- 832 1282 l 2,3,4
- 923 1282 923 1282 988 1254 c 0,5,6
- 1056 1216 1056 1216 1142 1128 c 2,7,-1
- 1460 812 l 2,8,9
- 1590 679 1590 679 1622 604 c 0,10,11
- 1652 529 1652 529 1652 344 c 2,12,-1
- 1652 -184 l 1,13,-1
- 1358 110 l 1,14,-1
- 1060 -184 l 1,15,-1
- 1060 690 l 1,16,-1
- 802 690 l 1,17,-1
- 802 358 l 1,18,-1
- 172 988 l 1,0,-1
-1160 50 m 1,19,-1
- 1358 248 l 1,20,-1
- 1554 50 l 1,21,-1
- 1554 422 l 2,22,23
- 1554 570 1554 570 1482 630 c 0,24,25
- 1413 690 1413 690 1240 690 c 2,26,-1
- 1160 690 l 1,27,-1
- 1160 50 l 1,19,-1
-EndSplineSet
-EndChar
-StartChar: uniE687
-Encoding: 59015 59015 875
-Width: 1860
-GlyphClass: 2
-Flags: W
-Fore
-1652 988 m 1,0,-1
- 1024 358 l 1,1,-1
- 1024 690 l 1,2,-1
- 766 690 l 1,3,-1
- 766 -184 l 1,4,-1
- 468 110 l 1,5,-1
- 172 -184 l 1,6,-1
- 172 344 l 2,7,8
- 172 531 172 531 204 604 c 0,9,10
- 237 682 237 682 364 812 c 2,11,-1
- 682 1128 l 2,12,13
- 769 1218 769 1218 838 1254 c 0,14,15
- 900 1282 900 1282 994 1282 c 2,16,-1
- 1024 1282 l 1,17,-1
- 1024 1616 l 1,18,-1
- 1652 988 l 1,0,-1
-666 50 m 1,19,-1
- 666 690 l 1,20,-1
- 588 690 l 2,21,22
- 411 690 411 690 342 630 c 0,23,24
- 270 570 270 570 270 422 c 2,25,-1
- 270 50 l 1,26,-1
- 468 248 l 1,27,-1
- 666 50 l 1,19,-1
-EndSplineSet
-EndChar
-StartChar: uniE688
-Encoding: 59016 59016 876
-Width: 1860
-GlyphClass: 2
-Flags: W
-Fore
-642 1456 m 1,0,-1
- 1270 828 l 1,1,-1
- 938 828 l 1,2,-1
- 938 568 l 1,3,-1
- 1812 568 l 1,4,-1
- 1518 272 l 1,5,-1
- 1812 -24 l 1,6,-1
- 1284 -24 l 2,7,8
- 1099 -24 1099 -24 1024 6 c 0,9,10
- 945 41 945 41 818 168 c 2,11,-1
- 500 486 l 2,12,13
- 410 571 410 571 376 638 c 0,14,15
- 346 704 346 704 346 796 c 2,16,-1
- 346 828 l 1,17,-1
- 12 828 l 1,18,-1
- 642 1456 l 1,0,-1
-1580 468 m 1,19,-1
- 938 468 l 1,20,-1
- 938 390 l 2,21,22
- 938 216 938 216 998 144 c 0,23,24
- 1056 74 1056 74 1208 74 c 2,25,-1
- 1580 74 l 1,26,-1
- 1382 272 l 1,27,-1
- 1580 468 l 1,19,-1
-EndSplineSet
-EndChar
-StartChar: uniE689
-Encoding: 59017 59017 877
-Width: 1860
-GlyphClass: 2
-Flags: W
-Fore
-1184 1456 m 1,0,-1
- 556 828 l 1,1,-1
- 888 828 l 1,2,-1
- 888 568 l 1,3,-1
- 12 568 l 1,4,-1
- 310 272 l 1,5,-1
- 12 -24 l 1,6,-1
- 540 -24 l 2,7,8
- 724 -24 724 -24 802 6 c 0,9,10
- 878 38 878 38 1008 168 c 2,11,-1
- 1328 486 l 2,12,13
- 1420 578 1420 578 1450 638 c 0,14,15
- 1480 704 1480 704 1480 796 c 2,16,-1
- 1480 828 l 1,17,-1
- 1812 828 l 1,18,-1
- 1184 1456 l 1,0,-1
-246 468 m 1,19,-1
- 888 468 l 1,20,-1
- 888 390 l 2,21,22
- 888 216 888 216 828 144 c 0,23,24
- 770 74 770 74 618 74 c 2,25,-1
- 246 74 l 1,26,-1
- 444 272 l 1,27,-1
- 246 468 l 1,19,-1
-EndSplineSet
-EndChar
-StartChar: uniE68A
-Encoding: 59018 59018 878
-Width: 1860
-GlyphClass: 2
-Flags: W
-Fore
-642 -24 m 1,0,-1
- 1270 604 l 1,1,-1
- 938 604 l 1,2,-1
- 938 864 l 1,3,-1
- 1812 864 l 1,4,-1
- 1518 1160 l 1,5,-1
- 1812 1456 l 1,6,-1
- 1284 1456 l 2,7,8
- 1097 1456 1097 1456 1024 1424 c 0,9,10
- 942 1388 942 1388 818 1264 c 2,11,-1
- 500 946 l 2,12,13
- 408 857 408 857 376 790 c 0,14,15
- 346 730 346 730 346 634 c 2,16,-1
- 346 604 l 1,17,-1
- 12 604 l 1,18,-1
- 642 -24 l 1,0,-1
-1580 962 m 1,19,-1
- 938 962 l 1,20,-1
- 938 1042 l 2,21,22
- 938 1217 938 1217 998 1286 c 0,23,24
- 1058 1358 1058 1358 1208 1358 c 2,25,-1
- 1580 1358 l 1,26,-1
- 1382 1160 l 1,27,-1
- 1580 962 l 1,19,-1
-EndSplineSet
-EndChar
-StartChar: uniE68B
-Encoding: 59019 59019 879
-Width: 1860
-GlyphClass: 2
-Flags: W
-Fore
-1184 -24 m 1,0,-1
- 556 604 l 1,1,-1
- 888 604 l 1,2,-1
- 888 864 l 1,3,-1
- 12 864 l 1,4,-1
- 310 1160 l 1,5,-1
- 12 1456 l 1,6,-1
- 540 1456 l 2,7,8
- 726 1456 726 1456 802 1424 c 0,9,10
- 882 1390 882 1390 1008 1264 c 2,11,-1
- 1328 946 l 2,12,13
- 1421 850 1421 850 1450 790 c 0,14,15
- 1480 730 1480 730 1480 634 c 2,16,-1
- 1480 604 l 1,17,-1
- 1812 604 l 1,18,-1
- 1184 -24 l 1,0,-1
-246 962 m 1,19,-1
- 888 962 l 1,20,-1
- 888 1042 l 2,21,22
- 888 1217 888 1217 828 1286 c 0,23,24
- 768 1358 768 1358 618 1358 c 2,25,-1
- 246 1358 l 1,26,-1
- 444 1160 l 1,27,-1
- 246 962 l 1,19,-1
-EndSplineSet
-EndChar
-StartChar: uniE68C
-Encoding: 59020 59020 880
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 1,0,-1
- 914 1480 l 1,1,-1
- 1192 1480 l 1,2,-1
- 550 840 l 1,3,-1
- 1836 840 l 1,4,-1
- 1836 642 l 1,5,-1
- 550 642 l 1,6,-1
- 1192 0 l 1,7,-1
- 914 0 l 1,8,-1
- 172 740 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE68D
-Encoding: 59021 59021 881
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-1836 740 m 1,0,-1
- 1094 1480 l 1,1,-1
- 816 1480 l 1,2,-1
- 1456 840 l 1,3,-1
- 172 840 l 1,4,-1
- 172 642 l 1,5,-1
- 1456 642 l 1,6,-1
- 816 0 l 1,7,-1
- 1094 0 l 1,8,-1
- 1836 740 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE68E
-Encoding: 59022 59022 882
-Width: 1836
-GlyphClass: 2
-Flags: W
-Fore
-914 1480 m 1,0,-1
- 1652 740 l 1,1,-1
- 1652 460 l 1,2,-1
- 1012 1102 l 1,3,-1
- 1012 -180 l 1,4,-1
- 814 -180 l 1,5,-1
- 814 1102 l 1,6,-1
- 172 460 l 1,7,-1
- 172 740 l 1,8,-1
- 914 1480 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE68F
-Encoding: 59023 59023 883
-Width: 1832
-GlyphClass: 2
-Flags: W
-Fore
-914 0 m 1,0,-1
- 172 740 l 1,1,-1
- 172 1020 l 1,2,-1
- 814 378 l 1,3,-1
- 814 1660 l 1,4,-1
- 1012 1660 l 1,5,-1
- 1012 378 l 1,6,-1
- 1652 1020 l 1,7,-1
- 1652 740 l 1,8,-1
- 914 0 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE690
-Encoding: 59024 59024 884
-Width: 1590
-GlyphClass: 2
-Flags: W
-Fore
-172 1362 m 1,0,-1
- 1220 1362 l 1,1,-1
- 1418 1166 l 1,2,-1
- 510 1166 l 1,3,-1
- 1418 258 l 1,4,-1
- 1278 118 l 1,5,-1
- 370 1024 l 1,6,-1
- 370 118 l 1,7,-1
- 172 316 l 1,8,-1
- 172 1362 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE691
-Encoding: 59025 59025 885
-Width: 1600
-GlyphClass: 2
-Flags: W
-Fore
-1418 1362 m 1,0,-1
- 370 1362 l 1,1,-1
- 172 1166 l 1,2,-1
- 1080 1166 l 1,3,-1
- 172 258 l 1,4,-1
- 312 118 l 1,5,-1
- 1220 1024 l 1,6,-1
- 1220 118 l 1,7,-1
- 1418 316 l 1,8,-1
- 1418 1362 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE692
-Encoding: 59026 59026 886
-Width: 1662
-GlyphClass: 2
-Flags: W
-Fore
-172 118 m 1,0,-1
- 172 1166 l 1,1,-1
- 370 1362 l 1,2,-1
- 370 454 l 1,3,-1
- 1278 1362 l 1,4,-1
- 1418 1222 l 1,5,-1
- 510 316 l 1,6,-1
- 1418 316 l 1,7,-1
- 1220 118 l 1,8,-1
- 172 118 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE693
-Encoding: 59027 59027 887
-Width: 1526
-GlyphClass: 2
-Flags: W
-Fore
-1418 118 m 1,0,-1
- 1418 1166 l 1,1,-1
- 1220 1362 l 1,2,-1
- 1218 454 l 1,3,-1
- 312 1362 l 1,4,-1
- 172 1222 l 1,5,-1
- 1080 316 l 1,6,-1
- 172 316 l 1,7,-1
- 370 118 l 1,8,-1
- 1418 118 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE694
-Encoding: 59028 59028 888
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-172 740 m 1,0,-1
- 914 1480 l 1,1,-1
- 1470 1480 l 1,2,-1
- 928 938 l 1,3,-1
- 2014 938 l 1,4,-1
- 2014 542 l 1,5,-1
- 928 542 l 1,6,-1
- 1470 0 l 1,7,-1
- 914 0 l 1,8,-1
- 172 740 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE695
-Encoding: 59029 59029 889
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-2014 740 m 1,0,-1
- 1274 1480 l 1,1,-1
- 716 1480 l 1,2,-1
- 1260 938 l 1,3,-1
- 172 938 l 1,4,-1
- 172 542 l 1,5,-1
- 1260 542 l 1,6,-1
- 716 0 l 1,7,-1
- 1274 0 l 1,8,-1
- 2014 740 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE696
-Encoding: 59030 59030 890
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-914 1480 m 1,0,-1
- 1652 740 l 1,1,-1
- 1652 182 l 1,2,-1
- 1110 724 l 1,3,-1
- 1110 -360 l 1,4,-1
- 716 -360 l 1,5,-1
- 716 724 l 1,6,-1
- 172 182 l 1,7,-1
- 172 740 l 1,8,-1
- 914 1480 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE697
-Encoding: 59031 59031 891
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-914 0 m 1,0,-1
- 172 740 l 1,1,-1
- 172 1298 l 1,2,-1
- 716 756 l 1,3,-1
- 716 1842 l 1,4,-1
- 1110 1842 l 1,5,-1
- 1110 756 l 1,6,-1
- 1652 1298 l 1,7,-1
- 1652 740 l 1,8,-1
- 914 0 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE698
-Encoding: 59032 59032 892
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-172 1460 m 1,0,-1
- 1220 1460 l 1,1,-1
- 1616 1068 l 1,2,-1
- 848 1068 l 1,3,-1
- 1616 300 l 1,4,-1
- 1336 18 l 1,5,-1
- 568 786 l 1,6,-1
- 568 18 l 1,7,-1
- 172 414 l 1,8,-1
- 172 1460 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE699
-Encoding: 59033 59033 893
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-1616 1460 m 1,0,-1
- 568 1460 l 1,1,-1
- 172 1068 l 1,2,-1
- 940 1068 l 1,3,-1
- 172 300 l 1,4,-1
- 452 18 l 1,5,-1
- 1220 786 l 1,6,-1
- 1220 18 l 1,7,-1
- 1616 414 l 1,8,-1
- 1616 1460 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE69A
-Encoding: 59034 59034 894
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-172 18 m 1,0,-1
- 172 1068 l 1,1,-1
- 568 1460 l 1,2,-1
- 568 692 l 1,3,-1
- 1336 1460 l 1,4,-1
- 1616 1182 l 1,5,-1
- 848 414 l 1,6,-1
- 1616 414 l 1,7,-1
- 1220 18 l 1,8,-1
- 172 18 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE69B
-Encoding: 59035 59035 895
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-1616 18 m 1,0,-1
- 1616 1068 l 1,1,-1
- 1220 1460 l 1,2,-1
- 1220 692 l 1,3,-1
- 452 1460 l 1,4,-1
- 172 1182 l 1,5,-1
- 940 414 l 1,6,-1
- 172 414 l 1,7,-1
- 568 18 l 1,8,-1
- 1616 18 l 1,0,-1
-EndSplineSet
-EndChar
-StartChar: uniE69C
-Encoding: 59036 59036 896
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-154 758 m 1,0,-1
- 896 1498 l 1,1,-1
- 914 1505 l 1,2,-1
- 1470 1505 l 1,3,-1
- 1476 1507 l 1,4,5
- 1488 1506 1488 1506 1493 1482 c 2,6,-1
- 1494 1467 l 1,7,-1
- 1490 1463 l 2,8,9
- 1489 1462 1489 1462 1488 1462 c 1,10,-1
- 988 963 l 1,11,-1
- 2014 963 l 1,12,-1
- 2022 959 l 2,13,14
- 2039 945 2039 945 2039 938 c 2,15,-1
- 2039 542 l 1,16,-1
- 2035 534 l 2,17,18
- 2021 517 2021 517 2014 517 c 2,19,-1
- 988 517 l 1,20,-1
- 1488 18 l 1,21,22
- 1498 18 1498 18 1498 6 c 0,23,24
- 1498 -14 1498 -14 1483 -25 c 2,25,-1
- 1475 -28 l 1,26,-1
- 1470 -25 l 1,27,-1
- 914 -25 l 1,28,-1
- 896 -18 l 1,29,-1
- 154 722 l 1,30,-1
- 152 723 l 1,31,-1
- 149 746 l 2,32,33
- 150 757 150 757 154 758 c 1,0,-1
-207 740 m 1,34,-1
- 924 25 l 1,35,-1
- 1410 25 l 1,36,-1
- 910 524 l 2,37,38
- 902 532 902 532 902 541 c 2,39,-1
- 905 553 l 1,40,41
- 914 567 914 567 928 567 c 2,42,-1
- 1989 567 l 1,43,-1
- 1989 913 l 1,44,-1
- 928 913 l 2,45,46
- 908 913 908 913 904 933 c 2,47,-1
- 905 946 l 2,48,49
- 906 952 906 952 910 956 c 2,50,-1
- 1410 1455 l 1,51,-1
- 924 1455 l 1,52,-1
- 207 740 l 1,34,-1
-EndSplineSet
-EndChar
-StartChar: uniE69D
-Encoding: 59037 59037 897
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-1979 740 m 1,0,-1
- 1264 1455 l 1,1,-1
- 777 1455 l 1,2,-1
- 1278 956 l 2,3,4
- 1286 948 1286 948 1286 939 c 2,5,-1
- 1283 927 l 1,6,7
- 1274 913 1274 913 1260 913 c 2,8,-1
- 197 913 l 1,9,-1
- 197 567 l 1,10,-1
- 1260 567 l 2,11,12
- 1280 567 1280 567 1284 547 c 2,13,-1
- 1283 534 l 1,14,-1
- 1278 524 l 1,15,-1
- 777 25 l 1,16,-1
- 1264 25 l 1,17,-1
- 1979 740 l 1,0,-1
-2032 722 m 1,18,-1
- 1292 -18 l 1,19,-1
- 1274 -25 l 1,20,-1
- 716 -25 l 1,21,-1
- 710 -27 l 1,22,23
- 698 -26 698 -26 693 -2 c 2,24,-1
- 692 13 l 1,25,26
- 694 18 694 18 698 18 c 1,27,-1
- 1199 517 l 1,28,-1
- 172 517 l 1,29,-1
- 164 521 l 2,30,31
- 147 535 147 535 147 542 c 2,32,-1
- 147 938 l 1,33,-1
- 151 946 l 2,34,35
- 165 963 165 963 172 963 c 2,36,-1
- 1199 963 l 1,37,-1
- 698 1462 l 1,38,39
- 688 1462 688 1462 688 1474 c 0,40,41
- 688 1494 688 1494 703 1505 c 2,42,-1
- 711 1508 l 1,43,44
- 714 1507 714 1507 716 1505 c 1,45,-1
- 1274 1505 l 1,46,-1
- 1292 1498 l 1,47,-1
- 2032 758 l 1,48,-1
- 2034 757 l 1,49,-1
- 2037 734 l 2,50,51
- 2036 723 2036 723 2032 722 c 1,18,-1
-EndSplineSet
-EndChar
-StartChar: uniE69E
-Encoding: 59038 59038 898
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-932 1498 m 1,0,-1
- 1670 758 l 1,1,-1
- 1677 740 l 1,2,-1
- 1677 182 l 1,3,-1
- 1679 176 l 1,4,5
- 1678 164 1678 164 1654 159 c 2,6,-1
- 1639 158 l 1,7,8
- 1634 160 1634 160 1634 164 c 1,9,-1
- 1135 664 l 1,10,-1
- 1135 -360 l 1,11,-1
- 1131 -368 l 2,12,13
- 1117 -385 1117 -385 1110 -385 c 2,14,-1
- 716 -385 l 1,15,-1
- 708 -381 l 2,16,17
- 691 -367 691 -367 691 -360 c 2,18,-1
- 691 664 l 1,19,-1
- 190 164 l 1,20,21
- 190 154 190 154 178 154 c 0,22,23
- 158 154 158 154 147 169 c 2,24,-1
- 144 177 l 1,25,26
- 145 180 145 180 147 182 c 1,27,-1
- 147 740 l 1,28,-1
- 154 758 l 1,29,-1
- 896 1498 l 1,30,-1
- 897 1500 l 1,31,-1
- 920 1503 l 2,32,33
- 931 1502 931 1502 932 1498 c 1,0,-1
-914 1445 m 1,34,-1
- 197 730 l 1,35,-1
- 197 242 l 1,36,-1
- 698 742 l 2,37,38
- 706 750 706 750 715 750 c 2,39,-1
- 727 747 l 2,40,41
- 733 744 733 744 736 738 c 0,42,43
- 741 731 741 731 741 724 c 2,44,-1
- 741 -335 l 1,45,-1
- 1085 -335 l 1,46,-1
- 1085 724 l 2,47,48
- 1085 744 1085 744 1105 748 c 2,49,-1
- 1118 747 l 2,50,51
- 1124 746 1124 746 1128 742 c 2,52,-1
- 1627 242 l 1,53,-1
- 1627 730 l 1,54,-1
- 914 1445 l 1,34,-1
-EndSplineSet
-EndChar
-StartChar: uniE69F
-Encoding: 59039 59039 899
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-896 -18 m 1,0,-1
- 154 722 l 1,1,-1
- 147 740 l 1,2,-1
- 147 1298 l 1,3,-1
- 145 1304 l 1,4,5
- 146 1316 146 1316 170 1321 c 2,6,-1
- 185 1322 l 1,7,8
- 190 1320 190 1320 190 1316 c 1,9,-1
- 691 816 l 1,10,-1
- 691 1842 l 1,11,-1
- 695 1850 l 2,12,13
- 709 1867 709 1867 716 1867 c 2,14,-1
- 1110 1867 l 1,15,-1
- 1118 1863 l 2,16,17
- 1135 1849 1135 1849 1135 1842 c 2,18,-1
- 1135 816 l 1,19,-1
- 1634 1316 l 1,20,21
- 1634 1326 1634 1326 1646 1326 c 0,22,23
- 1666 1326 1666 1326 1677 1311 c 2,24,-1
- 1680 1303 l 1,25,-1
- 1677 1298 l 1,26,-1
- 1677 740 l 1,27,-1
- 1670 722 l 1,28,-1
- 932 -18 l 1,29,-1
- 931 -20 l 1,30,-1
- 908 -23 l 1,31,-1
- 896 -20 l 1,32,-1
- 896 -18 l 1,0,-1
-914 35 m 1,33,-1
- 1627 750 l 1,34,-1
- 1627 1238 l 1,35,-1
- 1128 738 l 2,36,37
- 1120 730 1120 730 1111 730 c 2,38,-1
- 1099 733 l 1,39,40
- 1085 742 1085 742 1085 756 c 2,41,-1
- 1085 1817 l 1,42,-1
- 741 1817 l 1,43,-1
- 741 756 l 2,44,45
- 741 736 741 736 721 732 c 2,46,-1
- 708 733 l 2,47,48
- 702 734 702 734 698 738 c 2,49,-1
- 197 1238 l 1,50,-1
- 197 750 l 1,51,-1
- 914 35 l 1,33,-1
-EndSplineSet
-EndChar
-StartChar: uniE6A0
-Encoding: 59040 59040 900
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-172 1485 m 2,0,-1
- 1220 1485 l 1,1,-1
- 1238 1478 l 1,2,-1
- 1634 1086 l 1,3,4
- 1644 1086 1644 1086 1644 1074 c 0,5,6
- 1644 1054 1644 1054 1629 1043 c 2,7,-1
- 1621 1040 l 1,8,-1
- 1616 1043 l 1,9,-1
- 908 1043 l 1,10,-1
- 1634 318 l 1,11,-1
- 1636 317 l 1,12,-1
- 1639 294 l 1,13,-1
- 1636 282 l 1,14,-1
- 1634 282 l 1,15,-1
- 1354 0 l 1,16,-1
- 1353 -2 l 1,17,-1
- 1330 -5 l 2,18,19
- 1319 -4 1319 -4 1318 0 c 1,20,-1
- 593 726 l 1,21,-1
- 593 18 l 1,22,-1
- 595 12 l 1,23,24
- 594 0 594 0 570 -5 c 2,25,-1
- 555 -6 l 1,26,27
- 550 -4 550 -4 550 0 c 1,28,-1
- 154 396 l 1,29,-1
- 147 414 l 1,30,-1
- 147 1460 l 1,31,-1
- 151 1468 l 2,32,33
- 165 1485 165 1485 172 1485 c 2,0,-1
-197 1435 m 1,34,-1
- 197 424 l 1,35,-1
- 543 78 l 1,36,-1
- 543 786 l 2,37,38
- 543 806 543 806 563 810 c 2,39,-1
- 576 809 l 2,40,41
- 582 808 582 808 586 804 c 2,42,-1
- 1336 53 l 1,43,-1
- 1581 300 l 1,44,-1
- 830 1050 l 2,45,46
- 822 1058 822 1058 822 1067 c 2,47,-1
- 825 1079 l 1,48,49
- 834 1093 834 1093 848 1093 c 2,50,-1
- 1555 1093 l 1,51,-1
- 1210 1435 l 1,52,-1
- 197 1435 l 1,34,-1
-EndSplineSet
-EndChar
-StartChar: uniE6A1
-Encoding: 59041 59041 901
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-1591 1435 m 1,0,-1
- 578 1435 l 1,1,-1
- 233 1093 l 1,2,-1
- 940 1093 l 2,3,4
- 960 1093 960 1093 964 1073 c 2,5,-1
- 963 1060 l 2,6,7
- 962 1054 962 1054 958 1050 c 2,8,-1
- 207 300 l 1,9,-1
- 452 53 l 1,10,-1
- 1202 804 l 2,11,12
- 1210 812 1210 812 1219 812 c 2,13,-1
- 1231 809 l 1,14,15
- 1245 800 1245 800 1245 786 c 2,16,-1
- 1245 78 l 1,17,-1
- 1591 424 l 1,18,-1
- 1591 1435 l 1,0,-1
-1641 1460 m 2,19,-1
- 1641 414 l 1,20,-1
- 1634 396 l 1,21,-1
- 1238 0 l 1,22,23
- 1238 -9 1238 -9 1227 -10 c 2,24,-1
- 1212 -7 l 1,25,-1
- 1198 2 l 2,26,27
- 1193 7 1193 7 1192 11 c 1,28,-1
- 1195 18 l 1,29,-1
- 1195 726 l 1,30,-1
- 470 0 l 1,31,-1
- 469 -2 l 1,32,-1
- 446 -5 l 1,33,-1
- 434 -2 l 1,34,-1
- 434 0 l 1,35,-1
- 154 282 l 1,36,-1
- 152 283 l 1,37,-1
- 149 306 l 2,38,39
- 150 317 150 317 154 318 c 1,40,-1
- 880 1043 l 1,41,-1
- 172 1043 l 1,42,-1
- 166 1041 l 1,43,44
- 154 1042 154 1042 149 1066 c 2,45,-1
- 148 1081 l 1,46,47
- 150 1086 150 1086 154 1086 c 1,48,-1
- 550 1478 l 1,49,-1
- 568 1485 l 1,50,-1
- 1616 1485 l 1,51,-1
- 1624 1481 l 2,52,53
- 1641 1467 1641 1467 1641 1460 c 2,19,-1
-EndSplineSet
-EndChar
-StartChar: uniE6A2
-Encoding: 59042 59042 902
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-147 18 m 2,0,-1
- 147 1068 l 1,1,-1
- 154 1086 l 1,2,-1
- 550 1478 l 1,3,4
- 550 1488 550 1488 562 1488 c 0,5,6
- 582 1488 582 1488 593 1473 c 2,7,-1
- 596 1465 l 1,8,9
- 595 1462 595 1462 593 1460 c 1,10,-1
- 593 752 l 1,11,-1
- 1318 1478 l 1,12,-1
- 1319 1480 l 1,13,-1
- 1342 1483 l 2,14,15
- 1353 1482 1353 1482 1354 1478 c 1,16,-1
- 1634 1200 l 1,17,-1
- 1636 1199 l 1,18,-1
- 1639 1176 l 2,19,20
- 1638 1165 1638 1165 1634 1164 c 1,21,-1
- 908 439 l 1,22,-1
- 1616 439 l 1,23,-1
- 1622 441 l 1,24,25
- 1634 440 1634 440 1639 416 c 2,26,-1
- 1640 401 l 2,27,28
- 1639 397 1639 397 1634 396 c 1,29,-1
- 1238 0 l 1,30,-1
- 1220 -7 l 1,31,-1
- 172 -7 l 1,32,-1
- 164 -3 l 2,33,34
- 147 11 147 11 147 18 c 2,0,-1
-197 43 m 1,35,-1
- 1210 43 l 1,36,-1
- 1556 389 l 1,37,-1
- 848 389 l 2,38,39
- 828 389 828 389 824 409 c 2,40,-1
- 825 422 l 2,41,42
- 826 428 826 428 830 432 c 2,43,-1
- 1581 1182 l 1,44,-1
- 1336 1425 l 1,45,-1
- 586 674 l 2,46,47
- 578 666 578 666 569 666 c 2,48,-1
- 557 669 l 1,49,50
- 543 678 543 678 543 692 c 2,51,-1
- 543 1400 l 1,52,-1
- 197 1058 l 1,53,-1
- 197 43 l 1,35,-1
-EndSplineSet
-EndChar
-StartChar: uniE6A3
-Encoding: 59043 59043 903
-Width: 2048
-GlyphClass: 2
-Flags: W
-Fore
-1591 43 m 1,0,-1
- 1591 1058 l 1,1,-1
- 1245 1400 l 1,2,-1
- 1245 692 l 2,3,4
- 1245 672 1245 672 1225 668 c 2,5,-1
- 1212 669 l 2,6,7
- 1206 670 1206 670 1202 674 c 2,8,-1
- 452 1425 l 1,9,-1
- 207 1182 l 1,10,-1
- 958 432 l 2,11,12
- 966 424 966 424 966 415 c 2,13,-1
- 963 403 l 1,14,-1
- 954 394 l 1,15,-1
- 942 389 l 1,16,-1
- 940 389 l 1,17,-1
- 232 389 l 1,18,-1
- 578 43 l 1,19,-1
- 1591 43 l 1,0,-1
-1616 -7 m 2,20,-1
- 568 -7 l 1,21,-1
- 550 0 l 1,22,-1
- 154 396 l 1,23,24
- 144 396 144 396 144 408 c 0,25,26
- 144 428 144 428 159 439 c 2,27,-1
- 167 442 l 1,28,29
- 170 441 170 441 172 439 c 1,30,-1
- 880 439 l 1,31,-1
- 154 1164 l 1,32,-1
- 152 1165 l 1,33,-1
- 149 1188 l 2,34,35
- 150 1199 150 1199 154 1200 c 1,36,-1
- 434 1478 l 1,37,-1
- 435 1480 l 1,38,-1
- 458 1483 l 2,39,40
- 469 1482 469 1482 470 1478 c 1,41,-1
- 1195 752 l 1,42,-1
- 1195 1460 l 1,43,-1
- 1193 1466 l 1,44,45
- 1194 1477 1194 1477 1218 1483 c 2,46,-1
- 1232 1484 l 2,47,48
- 1237 1483 1237 1483 1238 1478 c 1,49,-1
- 1634 1086 l 1,50,-1
- 1641 1068 l 1,51,-1
- 1641 18 l 1,52,-1
- 1637 10 l 2,53,54
- 1623 -7 1623 -7 1616 -7 c 2,20,-1
-EndSplineSet
-EndChar
-StartChar: circle
-Encoding: 9675 9675 904
-Width: 1628
-Flags: W
-TeX: 99 0 0 0
-Fore
-813 0 m 0,0,1
- 542 0 542 0 383 161 c 0,2,3
- 223 321 223 321 223 592 c 128,-1,4
- 223 863 223 863 383 1023 c 0,5,6
- 542 1184 542 1184 813 1184 c 0,7,8
- 1082 1184 1082 1184 1245 1023 c 0,9,10
- 1407 862 1407 862 1407 592 c 128,-1,11
- 1407 322 1407 322 1245 161 c 0,12,13
- 1082 0 1082 0 813 0 c 0,0,1
-813 98 m 0,14,15
- 1032 98 1032 98 1170 236 c 0,16,17
- 1309 372 1309 372 1309 592 c 128,-1,18
- 1309 812 1309 812 1170 948 c 0,19,20
- 1033 1085 1033 1085 813 1085 c 0,21,22
- 594 1085 594 1085 458 948 c 0,23,24
- 322 812 322 812 322 592 c 0,25,26
- 322 372 322 372 459 236 c 0,27,28
- 594 98 594 98 813 98 c 0,14,15
-EndSplineSet
-EndChar
-StartChar: nounicode-3-1-c
-Encoding: 12 12 905
-Width: 1024
-Flags: W
-TeX: 78 0 0 0
-EndChar
-StartChar: nounicode-3-1-d
-Encoding: 13 13 906
-Width: 1024
-Flags: HW
-TeX: 78 0 0 0
-EndChar
-EndChars
-DupEnc: 45 13
-DupEnc: 173 33
-DupEnc: 8458 80
-DupEnc: 8487 92
-DupEnc: 8741 137
-DupEnc: 8776 150
-EndSplineFont
diff --git a/fonts/opens___.ttf b/fonts/opens___.ttf
deleted file mode 100644
index e802a01bb..000000000
--- a/fonts/opens___.ttf
+++ /dev/null
Binary files differ
diff --git a/fonts/package b/fonts/package
deleted file mode 100755
index d0a12ac7e..000000000
--- a/fonts/package
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-
-if test "z$1" == "z"; then
- echo "Syntax package <version>";
- echo " generates an ooo-fonts package";
- exit 1;
-fi
-NAME="ooo-fonts-$1"
-echo "Creating package ooo-fonts-$1";
-mkdir -p $NAME || exit 1;
-cp opens___.ttf $NAME || exit 1;
-tar czf $NAME.tar.gz $NAME || exit 1;
-rm -Rf $NAME
-echo "Done: pkg $NAME.tar.gz"
diff --git a/fonts/symbols.xls b/fonts/symbols.xls
deleted file mode 100755
index 9108cda2d..000000000
--- a/fonts/symbols.xls
+++ /dev/null
Binary files differ
diff --git a/intltool-merge.in b/intltool-merge.in
deleted file mode 100755
index 9554a1c2a..000000000
--- a/intltool-merge.in
+++ /dev/null
@@ -1,933 +0,0 @@
-#!@INTLTOOL_PERL@ -w
-
-#
-# The Intltool Message Merger
-#
-# Copyright (C) 2000, 2003 Free Software Foundation.
-# Copyright (C) 2000, 2001 Eazel, Inc
-#
-# Intltool is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# version 2 published by the Free Software Foundation.
-#
-# Intltool 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
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-#
-# Authors: Maciej Stachowiak <mjs@noisehavoc.org>
-# Kenneth Christiansen <kenneth@gnu.org>
-# Darin Adler <darin@bentspoon.com>
-#
-# Proper XML UTF-8'ification written by Cyrille Chepelov <chepelov@calixo.net>
-#
-
-## Release information
-my $PROGRAM = "intltool-merge";
-my $PACKAGE = "intltool";
-my $VERSION = "0.27.2";
-
-## Loaded modules
-use strict;
-use Getopt::Long;
-use Text::Wrap;
-
-## Scalars used by the option stuff
-my $HELP_ARG = 0;
-my $VERSION_ARG = 0;
-my $BA_STYLE_ARG = 0;
-my $XML_STYLE_ARG = 0;
-my $KEYS_STYLE_ARG = 0;
-my $DESKTOP_STYLE_ARG = 0;
-my $SCHEMAS_STYLE_ARG = 0;
-my $RFC822DEB_STYLE_ARG = 0;
-my $QUIET_ARG = 0;
-my $PASS_THROUGH_ARG = 0;
-my $UTF8_ARG = 0;
-my $cache_file;
-
-## Handle options
-GetOptions
-(
- "help" => \$HELP_ARG,
- "version" => \$VERSION_ARG,
- "quiet|q" => \$QUIET_ARG,
- "oaf-style|o" => \$BA_STYLE_ARG, ## for compatibility
- "ba-style|b" => \$BA_STYLE_ARG,
- "xml-style|x" => \$XML_STYLE_ARG,
- "keys-style|k" => \$KEYS_STYLE_ARG,
- "desktop-style|d" => \$DESKTOP_STYLE_ARG,
- "schemas-style|s" => \$SCHEMAS_STYLE_ARG,
- "rfc822deb-style|r" => \$RFC822DEB_STYLE_ARG,
- "pass-through|p" => \$PASS_THROUGH_ARG,
- "utf8|u" => \$UTF8_ARG,
- "cache|c=s" => \$cache_file
- ) or &error;
-
-my $PO_DIR;
-my $FILE;
-my $OUTFILE;
-
-my %po_files_by_lang = ();
-my %translations = ();
-my $iconv = $ENV{"INTLTOOL_ICONV"} || "iconv";
-
-# Use this instead of \w for XML files to handle more possible characters.
-my $w = "[-A-Za-z0-9._:]";
-
-# XML quoted string contents
-my $q = "[^\\\"]*";
-
-## Check for options.
-
-if ($VERSION_ARG)
-{
- &print_version;
-}
-elsif ($HELP_ARG)
-{
- &print_help;
-}
-elsif ($BA_STYLE_ARG && @ARGV > 2)
-{
- &preparation;
- &print_message;
- &ba_merge_translations;
- &finalize;
-}
-elsif ($XML_STYLE_ARG && @ARGV > 2)
-{
- &utf8_sanity_check;
- &preparation;
- &print_message;
- &xml_merge_translations;
- &finalize;
-}
-elsif ($KEYS_STYLE_ARG && @ARGV > 2)
-{
- &utf8_sanity_check;
- &preparation;
- &print_message;
- &keys_merge_translations;
- &finalize;
-}
-elsif ($DESKTOP_STYLE_ARG && @ARGV > 2)
-{
- &preparation;
- &print_message;
- &desktop_merge_translations;
- &finalize;
-}
-elsif ($SCHEMAS_STYLE_ARG && @ARGV > 2)
-{
- &preparation;
- &print_message;
- &schemas_merge_translations;
- &finalize;
-}
-elsif ($RFC822DEB_STYLE_ARG && @ARGV > 2)
-{
- &preparation;
- &print_message;
- &rfc822deb_merge_translations;
- &finalize;
-}
-else
-{
- &print_help;
-}
-
-exit;
-
-## Sub for printing release information
-sub print_version
-{
- print <<_EOF_;
-${PROGRAM} (${PACKAGE}) ${VERSION}
-Written by Maciej Stachowiak, Darin Adler and Kenneth Christiansen.
-
-Copyright (C) 2000-2003 Free Software Foundation, Inc.
-Copyright (C) 2000-2001 Eazel, Inc.
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-_EOF_
- exit;
-}
-
-## Sub for printing usage information
-sub print_help
-{
- print <<_EOF_;
-Usage: ${PROGRAM} [OPTION]... PO_DIRECTORY FILENAME OUTPUT_FILE
-Generates an output file that includes some localized attributes from an
-untranslated source file.
-
-Mandatory options: (exactly one must be specified)
- -b, --ba-style includes translations in the bonobo-activation style
- -d, --desktop-style includes translations in the desktop style
- -k, --keys-style includes translations in the keys style
- -s, --schemas-style includes translations in the schemas style
- -r, --rfc822deb-style includes translations in the RFC822 style
- -x, --xml-style includes translations in the standard xml style
-
-Other options:
- -u, --utf8 convert all strings to UTF-8 before merging
- -p, --pass-through use strings as found in .po files, without
- conversion (STRONGLY unrecommended with -x)
- -c, --cache=FILE specify cache file name
- (usually \$top_builddir/po/.intltool-merge-cache)
- -q, --quiet suppress most messages
- --help display this help and exit
- --version output version information and exit
-
-Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE")
-or send email to <xml-i18n-tools\@gnome.org>.
-_EOF_
- exit;
-}
-
-
-## Sub for printing error messages
-sub print_error
-{
- print STDERR "Try `${PROGRAM} --help' for more information.\n";
- exit;
-}
-
-
-sub print_message
-{
- print "Merging translations into $OUTFILE.\n" unless $QUIET_ARG;
-}
-
-
-sub preparation
-{
- $PO_DIR = $ARGV[0];
- $FILE = $ARGV[1];
- $OUTFILE = $ARGV[2];
-
- &gather_po_files;
- &get_translation_database;
-}
-
-# General-purpose code for looking up translations in .po files
-
-sub po_file2lang
-{
- my ($tmp) = @_;
- $tmp =~ s/^.*\/(.*)\.po$/$1/;
- return $tmp;
-}
-
-sub gather_po_files
-{
- for my $po_file (glob "$PO_DIR/*.po") {
- $po_files_by_lang{po_file2lang($po_file)} = $po_file;
- }
-}
-
-sub get_local_charset
-{
- my ($encoding) = @_;
- my $alias_file = $ENV{"G_CHARSET_ALIAS"} || "/usr/lib/charset.alias";
-
- # seek character encoding aliases in charset.alias (glib)
-
- if (open CHARSET_ALIAS, $alias_file)
- {
- while (<CHARSET_ALIAS>)
- {
- next if /^\#/;
- return $1 if (/^\s*([-._a-zA-Z0-9]+)\s+$encoding\b/i)
- }
-
- close CHARSET_ALIAS;
- }
-
- # if not found, return input string
-
- return $encoding;
-}
-
-sub get_po_encoding
-{
- my ($in_po_file) = @_;
- my $encoding = "";
-
- open IN_PO_FILE, $in_po_file or die;
- while (<IN_PO_FILE>)
- {
- ## example: "Content-Type: text/plain; charset=ISO-8859-1\n"
- if (/Content-Type\:.*charset=([-a-zA-Z0-9]+)\\n/)
- {
- $encoding = $1;
- last;
- }
- }
- close IN_PO_FILE;
-
- if (!$encoding)
- {
- print STDERR "Warning: no encoding found in $in_po_file. Assuming ISO-8859-1\n" unless $QUIET_ARG;
- $encoding = "ISO-8859-1";
- }
-
- system ("$iconv -f $encoding -t UTF-8 </dev/null 2>/dev/null");
- if ($?) {
- $encoding = get_local_charset($encoding);
- }
-
- return $encoding
-}
-
-sub utf8_sanity_check
-{
- if (!$UTF8_ARG)
- {
- if (!$PASS_THROUGH_ARG)
- {
- $PASS_THROUGH_ARG="1";
- }
- }
-}
-
-sub get_translation_database
-{
- if ($cache_file) {
- &get_cached_translation_database;
- } else {
- &create_translation_database;
- }
-}
-
-sub get_newest_po_age
-{
- my $newest_age;
-
- foreach my $file (values %po_files_by_lang)
- {
- my $file_age = -M $file;
- $newest_age = $file_age if !$newest_age || $file_age < $newest_age;
- }
-
- $newest_age = 0 if !$newest_age;
-
- return $newest_age;
-}
-
-sub create_cache
-{
- print "Generating and caching the translation database\n" unless $QUIET_ARG;
-
- &create_translation_database;
-
- open CACHE, ">$cache_file" || die;
- print CACHE join "\x01", %translations;
- close CACHE;
-}
-
-sub load_cache
-{
- print "Found cached translation database\n" unless $QUIET_ARG;
-
- my $contents;
- open CACHE, "<$cache_file" || die;
- {
- local $/;
- $contents = <CACHE>;
- }
- close CACHE;
- %translations = split "\x01", $contents;
-}
-
-sub get_cached_translation_database
-{
- my $cache_file_age = -M $cache_file;
- if (defined $cache_file_age)
- {
- if ($cache_file_age <= &get_newest_po_age)
- {
- &load_cache;
- return;
- }
- print "Found too-old cached translation database\n" unless $QUIET_ARG;
- }
-
- &create_cache;
-}
-
-sub create_translation_database
-{
- for my $lang (keys %po_files_by_lang)
- {
- my $po_file = $po_files_by_lang{$lang};
-
- if ($UTF8_ARG)
- {
- my $encoding = get_po_encoding ($po_file);
-
- if (lc $encoding eq "utf-8")
- {
- open PO_FILE, "<$po_file";
- }
- else
- {
- print STDERR "WARNING: $po_file is not in UTF-8 but $encoding, converting...\n" unless $QUIET_ARG;;
-
- open PO_FILE, "$iconv -f $encoding -t UTF-8 $po_file|";
- }
- }
- else
- {
- open PO_FILE, "<$po_file";
- }
-
- my $nextfuzzy = 0;
- my $inmsgid = 0;
- my $inmsgstr = 0;
- my $msgid = "";
- my $msgstr = "";
-
- while (<PO_FILE>)
- {
- $nextfuzzy = 1 if /^#, fuzzy/;
-
- if (/^msgid "((\\.|[^\\])*)"/ )
- {
- $translations{$lang, $msgid} = $msgstr if $inmsgstr && $msgid && $msgstr;
- $msgid = "";
- $msgstr = "";
-
- if ($nextfuzzy) {
- $inmsgid = 0;
- } else {
- $msgid = unescape_po_string($1);
- $inmsgid = 1;
- }
- $inmsgstr = 0;
- $nextfuzzy = 0;
- }
-
- if (/^msgstr "((\\.|[^\\])*)"/)
- {
- $msgstr = unescape_po_string($1);
- $inmsgstr = 1;
- $inmsgid = 0;
- }
-
- if (/^"((\\.|[^\\])*)"/)
- {
- $msgid .= unescape_po_string($1) if $inmsgid;
- $msgstr .= unescape_po_string($1) if $inmsgstr;
- }
- }
- $translations{$lang, $msgid} = $msgstr if $inmsgstr && $msgid && $msgstr;
- }
-}
-
-sub finalize
-{
-}
-
-sub unescape_one_sequence
-{
- my ($sequence) = @_;
-
- return "\\" if $sequence eq "\\\\";
- return "\"" if $sequence eq "\\\"";
- return "\n" if $sequence eq "\\n";
-
- # gettext also handles \n, \t, \b, \r, \f, \v, \a, \xxx (octal),
- # \xXX (hex) and has a comment saying they want to handle \u and \U.
-
- return $sequence;
-}
-
-sub unescape_po_string
-{
- my ($string) = @_;
-
- $string =~ s/(\\.)/unescape_one_sequence($1)/eg;
-
- return $string;
-}
-
-## NOTE: deal with < - &lt; but not > - &gt; because it seems its ok to have
-## > in the entity. For further info please look at #84738.
-sub entity_decode
-{
- local ($_) = @_;
-
- s/&apos;/'/g; # '
- s/&quot;/"/g; # "
- s/&amp;/&/g;
- s/&lt;/</g;
-
- return $_;
-}
-
-# entity_encode: (string)
-#
-# Encode the given string to XML format (encode '<' etc). It also
-# encodes high bit if not in UTF-8 mode.
-
-sub entity_encode
-{
- my ($pre_encoded) = @_;
-
- my @list_of_chars = unpack ('C*', $pre_encoded);
-
- if ($PASS_THROUGH_ARG)
- {
- return join ('', map (&entity_encode_int_even_high_bit, @list_of_chars));
- }
- else
- {
- # with UTF-8 we only encode minimalistic
- return join ('', map (&entity_encode_int_minimalist, @list_of_chars));
- }
-}
-
-sub entity_encode_int_minimalist
-{
- return "&quot;" if $_ == 34;
- return "&amp;" if $_ == 38;
- return "&apos;" if $_ == 39;
- return "&lt;" if $_ == 60;
- return chr $_;
-}
-
-sub entity_encode_int_even_high_bit
-{
- if ($_ > 127 || $_ == 34 || $_ == 38 || $_ == 39 || $_ == 60)
- {
- # the ($_ > 127) should probably be removed
- return "&#" . $_ . ";";
- }
- else
- {
- return chr $_;
- }
-}
-
-sub entity_encoded_translation
-{
- my ($lang, $string) = @_;
-
- my $translation = $translations{$lang, $string};
- return $string if !$translation;
- return entity_encode ($translation);
-}
-
-## XML (bonobo-activation specific) merge code
-
-sub ba_merge_translations
-{
- my $source;
-
- {
- local $/; # slurp mode
- open INPUT, "<$FILE" or die "can't open $FILE: $!";
- $source = <INPUT>;
- close INPUT;
- }
-
- open OUTPUT, ">$OUTFILE" or die "can't open $OUTFILE: $!";
-
- while ($source =~ s|^(.*?)([ \t]*<\s*$w+\s+($w+\s*=\s*"$q"\s*)+/?>)([ \t]*\n)?||s)
- {
- print OUTPUT $1;
-
- my $node = $2 . "\n";
-
- my @strings = ();
- $_ = $node;
- while (s/(\s)_($w+\s*=\s*"($q)")/$1$2/s) {
- push @strings, entity_decode($3);
- }
- print OUTPUT;
-
- my %langs;
- for my $string (@strings)
- {
- for my $lang (keys %po_files_by_lang)
- {
- $langs{$lang} = 1 if $translations{$lang, $string};
- }
- }
-
- for my $lang (sort keys %langs)
- {
- $_ = $node;
- s/(\sname\s*=\s*)"($q)"/$1"$2-$lang"/s;
- s/(\s)_($w+\s*=\s*")($q)"/$1 . $2 . entity_encoded_translation($lang, $3) . '"'/seg;
- print OUTPUT;
- }
- }
-
- print OUTPUT $source;
-
- close OUTPUT;
-}
-
-
-## XML (non-bonobo-activation) merge code
-
-sub xml_merge_translations
-{
- my $source;
-
- {
- local $/; # slurp mode
- open INPUT, "<$FILE" or die "can't open $FILE: $!";
- $source = <INPUT>;
- close INPUT;
- }
-
- open OUTPUT, ">$OUTFILE" or die;
-
- # FIXME: support attribute translations
-
- # Empty nodes never need translation, so unmark all of them.
- # For example, <_foo/> is just replaced by <foo/>.
- $source =~ s|<\s*_($w+)\s*/>|<$1/>|g;
-
- # Support for <_foo>blah</_foo> style translations.
- while ($source =~ s|^(.*?)([ \t]*)<\s*_($w+)\s*>(.*?)<\s*/_\3\s*>([ \t]*\n)?||s)
- {
- print OUTPUT $1;
-
- my $spaces = $2;
- my $tag = $3;
- my $string = $4;
-
- print OUTPUT "$spaces<$tag>$string</$tag>\n";
-
- $string =~ s/\s+/ /g;
- $string =~ s/^ //;
- $string =~ s/ $//;
- $string = entity_decode($string);
-
- for my $lang (sort keys %po_files_by_lang)
- {
- my $translation = $translations{$lang, $string};
- next if !$translation;
- $translation = entity_encode($translation);
- print OUTPUT "$spaces<$tag xml:lang=\"$lang\">$translation</$tag>\n";
- }
- }
-
- print OUTPUT $source;
-
- close OUTPUT;
-}
-
-sub keys_merge_translations
-{
- open INPUT, "<${FILE}" or die;
- open OUTPUT, ">${OUTFILE}" or die;
-
- while (<INPUT>)
- {
- if (s/^(\s*)_(\w+=(.*))/$1$2/)
- {
- my $string = $3;
-
- print OUTPUT;
-
- my $non_translated_line = $_;
-
- for my $lang (sort keys %po_files_by_lang)
- {
- my $translation = $translations{$lang, $string};
- next if !$translation;
-
- $_ = $non_translated_line;
- s/(\w+)=.*/[$lang]$1=$translation/;
- print OUTPUT;
- }
- }
- else
- {
- print OUTPUT;
- }
- }
-
- close OUTPUT;
- close INPUT;
-}
-
-sub desktop_merge_translations
-{
- open INPUT, "<${FILE}" or die;
- open OUTPUT, ">${OUTFILE}" or die;
-
- while (<INPUT>)
- {
- if (s/^(\s*)_(\w+=(.*))/$1$2/)
- {
- my $string = $3;
-
- print OUTPUT;
-
- my $non_translated_line = $_;
-
- for my $lang (sort keys %po_files_by_lang)
- {
- my $translation = $translations{$lang, $string};
- next if !$translation;
-
- $_ = $non_translated_line;
- s/(\w+)=.*/${1}[$lang]=$translation/;
- print OUTPUT;
- }
- }
- else
- {
- print OUTPUT;
- }
- }
-
- close OUTPUT;
- close INPUT;
-}
-
-sub schemas_merge_translations
-{
- my $source;
-
- {
- local $/; # slurp mode
- open INPUT, "<$FILE" or die "can't open $FILE: $!";
- $source = <INPUT>;
- close INPUT;
- }
-
- open OUTPUT, ">$OUTFILE" or die;
-
- # FIXME: support attribute translations
-
- # Empty nodes never need translation, so unmark all of them.
- # For example, <_foo/> is just replaced by <foo/>.
- $source =~ s|<\s*_($w+)\s*/>|<$1/>|g;
-
- while ($source =~ s/
- (.*?)
- (\s+)(<locale\ name="C">(\s*)
- (<default>\s*(.*?)\s*<\/default>)?(\s*)
- (<short>\s*(.*?)\s*<\/short>)?(\s*)
- (<long>\s*(.*?)\s*<\/long>)?(\s*)
- <\/locale>)
- //sx)
- {
- print OUTPUT $1;
-
- my $locale_start_spaces = $2 ? $2 : '';
- my $default_spaces = $4 ? $4 : '';
- my $short_spaces = $7 ? $7 : '';
- my $long_spaces = $10 ? $10 : '';
- my $locale_end_spaces = $13 ? $13 : '';
- my $c_default_block = $3 ? $3 : '';
- my $default_string = $6 ? $6 : '';
- my $short_string = $9 ? $9 : '';
- my $long_string = $12 ? $12 : '';
-
- $c_default_block =~ s/default>\[.*?\]/default>/s;
-
- print OUTPUT "$locale_start_spaces$c_default_block";
-
- $default_string =~ s/\s+/ /g;
- $default_string = entity_decode($default_string);
- $short_string =~ s/\s+/ /g;
- $short_string = entity_decode($short_string);
- $long_string =~ s/\s+/ /g;
- $long_string = entity_decode($long_string);
-
- for my $lang (sort keys %po_files_by_lang)
- {
- my $default_translation = $translations{$lang, $default_string};
- my $short_translation = $translations{$lang, $short_string};
- my $long_translation = $translations{$lang, $long_string};
-
- next if (!$default_translation && !$short_translation &&
- !$long_translation);
-
- print OUTPUT "\n$locale_start_spaces<locale name=\"$lang\">";
-
- print OUTPUT "$default_spaces";
-
- if ($default_translation)
- {
- $default_translation = entity_encode($default_translation);
- print OUTPUT "<default>$default_translation</default>";
- }
-
- print OUTPUT "$short_spaces";
-
- if ($short_translation)
- {
- $short_translation = entity_encode($short_translation);
- print OUTPUT "<short>$short_translation</short>";
- }
-
- print OUTPUT "$long_spaces";
-
- if ($long_translation)
- {
- $long_translation = entity_encode($long_translation);
- print OUTPUT "<long>$long_translation</long>";
- }
-
- print OUTPUT "$locale_end_spaces</locale>";
- }
- }
-
- print OUTPUT $source;
-
- close OUTPUT;
-}
-
-sub rfc822deb_merge_translations
-{
- my $source;
-
- $Text::Wrap::huge = 'overflow';
-
- {
- local $/; # slurp mode
- open INPUT, "<$FILE" or die "can't open $FILE: $!";
- $source = <INPUT>;
- close INPUT;
- }
-
- open OUTPUT, ">${OUTFILE}" or die;
-
- while ($source =~ /(^|\n+)(_)?([^:_\n]+)(:\s*)(.*?)(?=\n[\S\n]|$)/sg)
- {
- my $sep = $1;
- my $non_translated_line = $3.$4;
- my $string = $5;
- my $is_translatable = defined($2);
- # Remove [] dummy strings
- $string =~ s/\[\s[^\[\]]*\]$//;
- $non_translated_line .= $string;
-
- print OUTPUT $sep.$non_translated_line;
-
- if ($is_translatable)
- {
- my @str_list = rfc822deb_split($string);
-
- for my $lang (sort keys %po_files_by_lang)
- {
- my $is_translated = 1;
- my $str_translated = '';
- my $first = 1;
-
- for my $str (@str_list)
- {
- my $translation = $translations{$lang, $str};
-
- if (!$translation)
- {
- $is_translated = 0;
- last;
- }
-
- # $translation may also contain [] dummy
- # strings, mostly to indicate an empty string
- $translation =~ s/\[\s[^\[\]]*\]$//;
-
- if ($first)
- {
- $str_translated .=
- Text::Tabs::expand($translation) .
- "\n";
- }
- else
- {
- $str_translated .= Text::Tabs::expand(
- Text::Wrap::wrap(' ', ' ', $translation)) .
- "\n .\n";
- }
- $first = 0;
-
- # To fix some problems with Text::Wrap::wrap
- $str_translated =~ s/(\n )+\n/\n .\n/g;
- }
- next unless $is_translated;
-
- $str_translated =~ s/\n \.\n$//;
- $str_translated =~ s/\s+$//;
-
- $_ = $non_translated_line;
- s/^(\w+):\s*.*/$sep${1}-$lang: $str_translated/s;
- print OUTPUT;
- }
- }
- }
- print OUTPUT "\n";
-
- close OUTPUT;
- close INPUT;
-}
-
-sub rfc822deb_split
-{
- # Debian defines a special way to deal with rfc822-style files:
- # when a value contain newlines, it consists of
- # 1. a short form (first line)
- # 2. a long description, all lines begin with a space,
- # and paragraphs are separated by a single dot on a line
- # This routine returns an array of all paragraphs, and reformat
- # them.
- my $text = shift;
- $text =~ s/^ //mg;
- return ($text) if $text !~ /\n/;
-
- $text =~ s/([^\n]*)\n//;
- my @list = ($1);
- my $str = '';
-
- for my $line (split (/\n/, $text))
- {
- chomp $line;
- $line =~ /\s+$/;
-
- if ($line =~ /^\.$/)
- {
- # New paragraph
- $str =~ s/\s*$//;
- push(@list, $str);
- $str = '';
- }
- elsif ($line =~ /^\s/)
- {
- # Line which must not be reformatted
- $str .= "\n" if length ($str) && $str !~ /\n$/;
- $str .= $line."\n";
- }
- else
- {
- # Continuation line, remove newline
- $str .= " " if length ($str) && $str !~ /[\n ]$/;
- $str .= $line;
- }
- }
-
- $str =~ s/\s*$//;
- push(@list, $str) if length ($str);
-
- return @list;
-}
-
diff --git a/intltool-update.in b/intltool-update.in
deleted file mode 100755
index f61bafbc8..000000000
--- a/intltool-update.in
+++ /dev/null
@@ -1,923 +0,0 @@
-#!@INTLTOOL_PERL@ -w
-
-#
-# The Intltool Message Updater
-#
-# Copyright (C) 2000-2003 Free Software Foundation.
-#
-# Intltool is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# version 2 published by the Free Software Foundation.
-#
-# Intltool 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
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-#
-# Authors: Kenneth Christiansen <kenneth@gnu.org>
-# Maciej Stachowiak
-# Darin Adler <darin@bentspoon.com>
-
-## Release information
-my $PROGRAM = "intltool-update";
-my $VERSION = "0.27.2";
-my $PACKAGE = "intltool";
-
-## Loaded modules
-use strict;
-use Getopt::Long;
-use Cwd;
-use File::Copy;
-use File::Find;
-
-## Scalars used by the option stuff
-my $HELP_ARG = 0;
-my $VERSION_ARG = 0;
-my $DIST_ARG = 0;
-my $POT_ARG = 0;
-my $HEADERS_ARG = 0;
-my $MAINTAIN_ARG = 0;
-my $REPORT_ARG = 0;
-my $VERBOSE = 0;
-my $GETTEXT_PACKAGE = "";
-my $OUTPUT_FILE = "";
-
-my @languages;
-my %varhash = ();
-my %po_files_by_lang = ();
-
-# Regular expressions to categorize file types.
-# FIXME: Please check if the following is correct
-
-my $xml_extension =
-"xml(\.in)*|". # .in is not required
-"ui|".
-"lang|".
-"glade2?(\.in)*|". # .in is not required
-"scm(\.in)*|". # .in is not required
-"oaf(\.in)+|".
-"etspec|".
-"server(\.in)+|".
-"sheet(\.in)+|".
-"schemas(\.in)+|".
-"pong(\.in)+";
-
-my $ini_extension =
-"desktop(\.in)+|".
-"caves(\.in)+|".
-"directory(\.in)+|".
-"soundlist(\.in)+|".
-"keys(\.in)+|".
-"theme(\.in)+";
-
-## Always flush buffer when printing
-$| = 1;
-
-## Handle options
-GetOptions
-(
- "help" => \$HELP_ARG,
- "version" => \$VERSION_ARG,
- "dist|d" => \$DIST_ARG,
- "pot|p" => \$POT_ARG,
- "headers|s" => \$HEADERS_ARG,
- "maintain|m" => \$MAINTAIN_ARG,
- "report|r" => \$REPORT_ARG,
- "verbose|x" => \$VERBOSE,
- "gettext-package|g=s" => \$GETTEXT_PACKAGE,
- "output-file|o=s" => \$OUTPUT_FILE,
- ) or &print_error_invalid_option;
-
-&print_help if $HELP_ARG;
-&print_version if $VERSION_ARG;
-
-my $arg_count = ($DIST_ARG > 0)
- + ($POT_ARG > 0)
- + ($HEADERS_ARG > 0)
- + ($MAINTAIN_ARG > 0)
- + ($REPORT_ARG > 0);
-
-&print_help if $arg_count > 1;
-
-# --version and --help don't require a module name
-my $MODULE = $GETTEXT_PACKAGE || &find_package_name;
-
-if ($POT_ARG)
-{
- &generate_headers;
- &generate_po_template;
-}
-elsif ($HEADERS_ARG)
-{
- &generate_headers;
-}
-elsif ($MAINTAIN_ARG)
-{
- &find_leftout_files;
-}
-elsif ($REPORT_ARG)
-{
- &generate_headers;
- &generate_po_template;
- &print_report;
-}
-elsif ((defined $ARGV[0]) && $ARGV[0] =~ /^[a-z]/)
-{
- my $lang = $ARGV[0];
-
- ## Report error if the language file supplied
- ## to the command line is non-existent
- &print_error_not_existing("$lang.po") if ! -s "$lang.po";
-
- if (!$DIST_ARG)
- {
- print "Working, please wait..." if $VERBOSE;
- &generate_headers;
- &generate_po_template;
- }
- &update_po_file ($lang, $OUTPUT_FILE);
- &print_status ($lang, $OUTPUT_FILE);
-}
-else
-{
- &print_help;
-}
-
-exit;
-
-#########
-
-sub print_version
-{
- print <<_EOF_;
-${PROGRAM} (${PACKAGE}) $VERSION
-Written by Kenneth Christiansen, Maciej Stachowiak, and Darin Adler.
-
-Copyright (C) 2000-2003 Free Software Foundation, Inc.
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-_EOF_
- exit;
-}
-
-sub print_help
-{
- print <<_EOF_;
-Usage: ${PROGRAM} [OPTION]... LANGCODE
-Updates PO template files and merge them with the translations.
-
-Mode of operation (only one is allowed):
- -p, --pot generate the PO template only
- -s, --headers generate the header files in POTFILES.in
- -m, --maintain search for left out files from POTFILES.in
- -r, --report display a status report for the module
- -d, --dist merge LANGCODE.po with existing PO template
-
-Extra options:
- -g, --gettext-package=NAME override PO template name, useful with --pot
- -o, --output-file=FILE write merged translation to FILE
- -x, --verbose display lots of feedback
- --help display this help and exit
- --version output version information and exit
-
-Examples of use:
-${PROGRAM} --pot just create a new PO template
-${PROGRAM} xy create new PO template and merge xy.po with it
-
-Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE")
-or send email to <xml-i18n-tools\@gnome.org>.
-_EOF_
- exit;
-}
-
-sub determine_type ($)
-{
- my $type = $_;
- my $gettext_type;
-
- # FIXME: Use $xml_extension, and maybe do all this even nicer
- my $xml_regex =
- "(?:xml(\.in)*|ui|lang|oaf(?:\.in)+|server(?:\.in)+|sheet(?:\.in)+|".
- "pong(?:\.in)+|etspec|schemas(?:\.in)+)";
- my $ini_regex =
- "(?:desktop(?:\.in)+|theme(?:\.in)+|caves(?:\.in)+|directory(?:\.in)+|".
- "soundlist(?:\.in)+)";
-
- if ($type =~ /\[type: gettext\/([^\]].*)]/)
- {
- $gettext_type=$1;
- }
- elsif ($type =~ /schemas(\.in)+$/)
- {
- $gettext_type="schemas";
- }
- elsif ($type =~ /$xml_regex$/)
- {
- $gettext_type="xml";
- }
- elsif ($type =~ /glade2?(\.in)*$/)
- {
- $gettext_type="glade";
- }
- elsif ($type =~ /$ini_regex$/)
- {
- $gettext_type="ini";
- }
- elsif ($type =~ /scm(\.in)*$/)
- {
- $gettext_type="scheme";
- }
- elsif ($type =~ /keys(\.in)+$/)
- {
- $gettext_type="keys";
- }
- else
- {
- $gettext_type="";
- }
-
- return "gettext\/$gettext_type";
-}
-
-sub determine_code ($)
-{
- my $gettext_code="ASCII"; # All files are ASCII by default
- my $filetype=`file $_ | cut -d ' ' -f 2`;
-
- if ($? eq "0")
- {
- if ($filetype =~ /^(ISO|UTF)/)
- {
- chomp ($gettext_code = $filetype);
- }
- elsif ($filetype =~ /^XML/)
- {
- $gettext_code="UTF-8"; # We asume that .glade and other .xml files are UTF-8
- }
- }
-
- return $gettext_code;
-}
-
-
-sub find_leftout_files
-{
- my (@buf_i18n_plain,
- @buf_i18n_xml,
- @buf_i18n_xml_unmarked,
- @buf_i18n_ini,
- @buf_potfiles,
- @buf_potfiles_ignore,
- @buf_allfiles,
- @buf_allfiles_sorted,
- @buf_potfiles_sorted
- );
-
- ## Search and find all translatable files
- find sub {
- push @buf_i18n_plain, "$File::Find::name" if /\.(c|y|cc|cpp|c\+\+|h|gob)$/;
- push @buf_i18n_xml, "$File::Find::name" if /\.($xml_extension)$/;
- push @buf_i18n_ini, "$File::Find::name" if /\.($ini_extension)$/;
- push @buf_i18n_xml_unmarked, "$File::Find::name" if /\.(schemas(\.in)+)$/;
- }, "..";
-
-
- open POTFILES, "<POTFILES.in" or die "$PROGRAM: there's no POTFILES.in!\n";
- @buf_potfiles = grep !/^(#|\s*$)/, <POTFILES>;
- close POTFILES;
-
- foreach (@buf_potfiles) {
- s/^\[.*]\s*//;
- }
-
- print "Searching for missing translatable files...\n" if $VERBOSE;
-
- ## Check if we should ignore some found files, when
- ## comparing with POTFILES.in
- foreach my $ignore ("POTFILES.skip", "POTFILES.ignore")
- {
- (-s $ignore) or next;
-
- if ("$ignore" eq "POTFILES.ignore")
- {
- print "The usage of POTFILES.ignore is deprecated. Please consider moving the\n".
- "content of this file to POTFILES.skip.\n";
- }
-
- print "Found $ignore: Ignoring files...\n" if $VERBOSE;
- open FILE, "<$ignore" or die "ERROR: Failed to open $ignore!\n";
-
- while (<FILE>)
- {
- push @buf_potfiles_ignore, $_ unless /^(#|\s*$)/;
- }
- close FILE;
-
- @buf_potfiles = (@buf_potfiles_ignore, @buf_potfiles);
- }
-
- foreach my $file (@buf_i18n_plain)
- {
- my $in_comment = 0;
- my $in_macro = 0;
-
- open FILE, "<$file";
- while (<FILE>)
- {
- # Handle continued multi-line comment.
- if ($in_comment)
- {
- next unless s-.*\*/--;
- $in_comment = 0;
- }
-
- # Handle continued macro.
- if ($in_macro)
- {
- $in_macro = 0 unless /\\$/;
- next;
- }
-
- # Handle start of macro (or any preprocessor directive).
- if (/^\s*\#/)
- {
- $in_macro = 1 if /^([^\\]|\\.)*\\$/;
- next;
- }
-
- # Handle comments and quoted text.
- while (m-(/\*|//|\'|\")-) # \' and \" keep emacs perl mode happy
- {
- my $match = $1;
- if ($match eq "/*")
- {
- if (!s-/\*.*?\*/--)
- {
- s-/\*.*--;
- $in_comment = 1;
- }
- }
- elsif ($match eq "//")
- {
- s-//.*--;
- }
- else # ' or "
- {
- if (!s-$match([^\\]|\\.)*?$match-QUOTEDTEXT-)
- {
- warn "mismatched quotes at line $. in $file\n";
- s-$match.*--;
- }
- }
- }
-
- if (/_\(QUOTEDTEXT/)
- {
- ## Remove the first 3 chars and add newline
- push @buf_allfiles, unpack("x3 A*", $file) . "\n";
- last;
- }
- }
- close FILE;
- }
-
- foreach my $file (@buf_i18n_xml)
- {
- open FILE, "<$file";
-
- while (<FILE>)
- {
- # FIXME: share the pattern matching code with intltool-extract
- if (/\s_(.*)=\"/ || /<_[^>]+>/ || /translatable=\"yes\"/)
- {
- push @buf_allfiles, unpack("x3 A*", $file) . "\n";
- last;
- }
- }
- close FILE;
- }
-
- foreach my $file (@buf_i18n_ini)
- {
- open FILE, "<$file";
- while (<FILE>)
- {
- if (/_(.*)=/)
- {
- push @buf_allfiles, unpack("x3 A*", $file) . "\n";
- last;
- }
- }
- close FILE;
- }
-
- foreach my $file (@buf_i18n_xml_unmarked)
- {
- push @buf_allfiles, unpack("x3 A*", $file) . "\n";
- }
-
-
- @buf_allfiles_sorted = sort (@buf_allfiles);
- @buf_potfiles_sorted = sort (@buf_potfiles);
-
- my %in2;
- foreach (@buf_potfiles_sorted)
- {
- $in2{$_} = 1;
- }
-
- my @result;
-
- foreach (@buf_allfiles_sorted)
- {
- if (!exists($in2{$_}))
- {
- push @result, $_
- }
- }
-
- my @buf_potfiles_notexist;
-
- foreach (@buf_potfiles_sorted)
- {
- chomp (my $dummy = $_);
- if ("$dummy" ne "" and ! -f "../$dummy")
- {
- push @buf_potfiles_notexist, $_;
- }
- }
-
- ## Save file with information about the files missing
- ## if any, and give information about this procedure.
- if (@result + @buf_potfiles_notexist > 0)
- {
- if (@result)
- {
- print "\n" if $VERBOSE;
- unlink "missing";
- open OUT, ">missing";
- print OUT @result;
- close OUT;
- warn "\e[1mThe following files contain translations and are currently not in use. Please\e[0m\n".
- "\e[1mconsider adding these to the POTFILES.in file, located in the po/ directory.\e[0m\n\n";
- print STDERR @result, "\n";
- warn "If some of these files are left out on purpose then please add them to\n".
- "POTFILES.skip instead of POTFILES.in. A file \e[1m'missing'\e[0m containing this list\n".
- "of left out files has been written in the current directory.\n";
- }
- if (@buf_potfiles_notexist)
- {
- unlink "notexist";
- open OUT, ">notexist";
- print OUT @buf_potfiles_notexist;
- close OUT;
- warn "\n" if ($VERBOSE or @result);
- warn "\e[1mThe following files do not exist anymore:\e[0m\n\n";
- warn @buf_potfiles_notexist, "\n";
- warn "Please remove them from POTFILES.in or POTFILES.skip. A file \e[1m'notexist'\e[0m\n".
- "containing this list of absent files has been written in the current directory.\n";
- }
- }
-
- ## If there is nothing to complain about, notify the user
- else {
- print "\nAll files containing translations are present in POTFILES.in.\n" if $VERBOSE;
- }
-}
-
-sub print_error_invalid_option
-{
- ## Handle invalid arguments
- print STDERR "Try `${PROGRAM} --help' for more information.\n";
- exit 1;
-}
-
-sub generate_headers
-{
- my $EXTRACT = `which intltool-extract 2>/dev/null`;
- chomp $EXTRACT;
-
- $EXTRACT = $ENV{"INTLTOOL_EXTRACT"} if $ENV{"INTLTOOL_EXTRACT"};
-
- ## Generate the .h header files, so we can allow glade and
- ## xml translation support
- if (! -x "$EXTRACT")
- {
- print STDERR "\n *** The intltool-extract script wasn't found!"
- ."\n *** Without it, intltool-update can not generate files.\n";
- exit;
- }
- else
- {
- open (FILE, "<POTFILES.in") or die "$PROGRAM: POTFILES.in not found.\n";
-
- while (<FILE>)
- {
- chomp;
- next if /^\[\s*encoding/;
-
- ## Find xml files in POTFILES.in and generate the
- ## files with help from the extract script
-
- my $gettext_type= &determine_type ($1);
-
- if (/\.($xml_extension|$ini_extension)$/ || /^\[/)
- {
- s/^\[[^\[].*]\s*//;
-
- my $filename = "../$_";
-
- if ($VERBOSE)
- {
- system ($EXTRACT, "--update",
- "--type=$gettext_type", $filename);
- }
- else
- {
- system ($EXTRACT, "--update", "--type=$gettext_type",
- "--quiet", $filename);
- }
- }
- }
- close FILE;
- }
-}
-
-#
-# Generate .pot file from POTFILES.in
-#
-sub generate_po_template
-{
- my $XGETTEXT = `which xgettext 2>/dev/null`;
- chomp $XGETTEXT;
-
- $XGETTEXT = $ENV{"XGETTEXT"} if $ENV{"XGETTEXT"};
-
- if (! -x $XGETTEXT)
- {
- print STDERR " *** xgettext is not found on this system!\n".
- " *** Without it, intltool-update can not extract strings.\n";
- exit;
- }
-
- print "Building $MODULE.pot...\n" if $VERBOSE;
-
- open INFILE, "<POTFILES.in";
- unlink "POTFILES.in.temp";
- open OUTFILE, ">POTFILES.in.temp";
-
- my $gettext_support_nonascii = 0;
-
- # checks for GNU gettext >= 0.12
- # don't use argument list, since shell interpretation is desired here
- if (system("$XGETTEXT --version --from-code=UTF-8 >&/dev/null") == 0)
- {
- $gettext_support_nonascii = 1;
- }
- else
- {
- # urge everybody to upgrade gettext
- print STDERR "WARNING: This version of gettext does not support extracting non-ASCII\n".
- " strings. That means you should install a version of gettext\n".
- " that supports non-ASCII strings (such as GNU gettext >= 0.12),\n".
- " or have to let non-ASCII strings untranslated.\n";
- }
-
- my $encoding = "ASCII";
- my $forced_gettext_code;
- my @temp_headers;
- my $encoding_problem_is_reported = 0;
-
- while (<INFILE>)
- {
- next if (/^#/ or /^\s*$/);
-
- chomp;
-
- my $gettext_code;
-
- if (/^\[\s*encoding:\s*(.*)\s*\]/)
- {
- $forced_gettext_code=$1;
- }
- elsif (/\.($xml_extension|$ini_extension)$/ || /^\[/)
- {
- s/^\[.*]\s*//;
- print OUTFILE "$_.h\n";
- push @temp_headers, "../$_.h";
- $gettext_code = &determine_code ("../$_.h") if ($gettext_support_nonascii and not defined $forced_gettext_code);
- }
- else
- {
- print OUTFILE "$_\n";
- $gettext_code = &determine_code ("../$_") if ($gettext_support_nonascii and not defined $forced_gettext_code);
- }
-
- next if (! $gettext_support_nonascii);
-
- if (defined $forced_gettext_code)
- {
- $encoding=$forced_gettext_code;
- }
- elsif (defined $gettext_code and "$encoding" ne "$gettext_code")
- {
- if ($encoding eq "ASCII")
- {
- $encoding=$gettext_code;
- }
- elsif ($gettext_code ne "ASCII")
- {
- # Only report once because the message is quite long
- if (! $encoding_problem_is_reported)
- {
- print STDERR "WARNING: You should use the same file encoding for all your project files,\n".
- " but $PROGRAM thinks that most of the source files are in\n".
- " $encoding encoding, while \"$_\" is (likely) in\n".
- " $gettext_code encoding. If you are sure that all translatable strings\n".
- " are in same encoding (say UTF-8), please \e[1m*prepend*\e[0m the following\n".
- " line to POTFILES.in:\n\n".
- " [encoding: UTF-8]\n\n".
- " and make sure that configure.in/ac checks for $PACKAGE >= 0.27 .\n".
- "(such warning message will only be reported once.)\n";
- $encoding_problem_is_reported = 1;
- }
- }
- }
- }
-
- close OUTFILE;
- close INFILE;
-
- unlink "$MODULE.pot";
- my @xgettext_argument=("$XGETTEXT",
- "--add-comments",
- "--directory\=\.\.",
- "--keyword\=\_",
- "--keyword\=N\_",
- "--keyword\=U\_",
- "--output\=$MODULE\.pot",
- "--files-from\=\.\/POTFILES\.in\.temp");
- push @xgettext_argument, "--from-code\=$encoding" if ($gettext_support_nonascii);
- my $xgettext_command = join ' ', @xgettext_argument;
-
- # intercept xgettext error message
- my $xgettext_error_msg = `$xgettext_command 2>\&1`;
- my $command_failed = $?;
-
- unlink "POTFILES.in.temp";
-
- print "Removing generated header (.h) files..." if $VERBOSE;
- unlink foreach (@temp_headers);
- print "done.\n" if $VERBOSE;
-
- if (! $command_failed)
- {
- if (! -e "$MODULE.pot")
- {
- print "None of the files in POTFILES.in contain strings marked for translation.\n" if $VERBOSE;
- }
- else
- {
- print "Wrote $MODULE.pot\n" if $VERBOSE;
- }
- }
- else
- {
- if ($xgettext_error_msg =~ /--from-code/)
- {
- # replace non-ASCII error message with a more useful one.
- print STDERR "ERROR: xgettext failed to generate PO template file because there is non-ASCII\n".
- " string marked for translation. Please make sure that all strings marked\n".
- " for translation are in uniform encoding (say UTF-8), then \e[1m*prepend*\e[0m the\n".
- " following line to POTFILES.in and rerun $PROGRAM:\n\n".
- " [encoding: UTF-8]\n\n";
- }
- else
- {
- print STDERR "$xgettext_error_msg";
- if (-e "$MODULE.pot")
- {
- # is this possible?
- print STDERR "ERROR: xgettext failed but still managed to generate PO template file.\n".
- " Please consult error message above if there is any.\n";
- }
- else
- {
- print STDERR "ERROR: xgettext failed to generate PO template file. Please consult\n".
- " error message above if there is any.\n";
- }
- }
- exit (1);
- }
-}
-
-sub update_po_file
-{
- -f "$MODULE.pot" or die "$PROGRAM: $MODULE.pot does not exist.\n";
-
- my ($lang, $outfile) = @_;
-
- print "Merging $lang.po with $MODULE.pot..." if $VERBOSE;
-
- my $infile = "$lang.po";
- $outfile = "$lang.po" if ($outfile eq "");
-
- # I think msgmerge won't overwrite old file if merge is not successful
- system ("msgmerge", "-o", $outfile, $infile, "$MODULE.pot");
-}
-
-sub print_error_not_existing
-{
- my ($file) = @_;
-
- ## Report error if supplied language file is non-existing
- print STDERR "$PROGRAM: $file does not exist!\n";
- print STDERR "Try '$PROGRAM --help' for more information.\n";
- exit;
-}
-
-sub gather_po_files
-{
- my @po_files = glob ("./*.po");
-
- @languages = map (&po_file2lang, @po_files);
-
- foreach my $lang (@languages)
- {
- $po_files_by_lang{$lang} = shift (@po_files);
- }
-}
-
-sub po_file2lang ($)
-{
- s/^(.*\/)?(.+)\.po$/$2/;
- return $_;
-}
-
-sub print_status
-{
- my ($lang, $output_file) = @_;
-
- $output_file = "$lang.po" if ($output_file eq "");
-
- system ("msgfmt", "-o", "/dev/null", "--statistics", $output_file);
-}
-
-sub print_report
-{
- &gather_po_files;
-
- foreach my $lang (@languages)
- {
- print "$lang: ";
- &update_po_file ($lang, "");
- }
-
- print "\n\n * Current translation support in $MODULE \n\n";
-
- foreach my $lang (@languages)
- {
- print "$lang: ";
- system ("msgfmt", "-o", "/dev/null", "--statistics", "$lang.po");
- }
-}
-
-sub substitute_var
-{
- my ($str) = @_;
-
- # always need to rewind file whenever it has been accessed
- seek (CONF, 0, 0);
-
- # cache each variable. varhash is global to we can add
- # variables elsewhere.
- while (<CONF>)
- {
- if (/^(\w+)=(\S+)/)
- {
- $varhash{$1} = $2;
- }
- }
-
- if ($str =~ /^(.*)\${?([A-Z_]+)}?(.*)$/)
- {
- my $rest = $3;
- my $untouched = $1;
- my $sub = $varhash{$2};
-
- return substitute_var ("$untouched$sub$rest");
- }
- return $str;
-}
-
-sub open_CONF_handle
-{
- my $base_dirname = getcwd();
- $base_dirname =~ s@.*/@@;
-
- my ($conf_in, $src_dir);
-
- if ($base_dirname =~ /^po(-.+)?$/)
- {
- if (-f "../configure.ac")
- {
- $conf_in = "../configure.ac";
- }
- elsif (-f "../configure.in")
- {
- $conf_in = "../configure.in";
- }
- else
- {
- my $makefile_source;
-
- local (*IN);
- open IN, "<Makefile" || die "can't open Makefile: $!";
-
- while (<IN>)
- {
- if (/^top_srcdir[ \t]*=/)
- {
- $src_dir = $_;
- $src_dir =~ s/^top_srcdir[ \t]*=[ \t]*([^ \t\n\r]*)/$1/;
-
- chomp $src_dir;
- $conf_in = "$src_dir" . "/configure.in" . "\n";
-
- last;
- }
- }
- close IN;
-
- $conf_in || die "Cannot find top_srcdir in Makefile.";
- }
-
- open (CONF, "<$conf_in") || die "can't open $conf_in: $!";
- }
- else
- {
- print STDERR "$PROGRAM: Unable to proceed.\n" .
- "Make sure to run this script inside the po directory.\n";
- exit;
- }
-}
-
-sub find_package_name
-{
- &open_CONF_handle;
-
- my $conf_source; {
- local (*IN);
- open (IN, "<&CONF") || die "can't open configure.in/configure.ac: $!";
- seek (IN, 0, 0);
- local $/; # slurp mode
- $conf_source = <IN>;
- close IN;
- }
-
- my $name = "untitled";
- my $version;
-
- # priority for getting package name:
- # 1. GETTEXT_PACKAGE
- # 2. first argument of AC_INIT (with >= 2 arguments)
- # 3. first argument of AM_INIT_AUTOMAKE (with >= 2 argument)
-
- # /^AM_INIT_AUTOMAKE\([\s\[]*([^,\)\s\]]+)/m
- # the \s makes this not work, why?
- if ($conf_source =~ /^AM_INIT_AUTOMAKE\(([^,\)]+),([^,\)]+)/m)
- {
- ($name, $version) = ($1, $2);
- $name =~ s/[\[\]\s]//g;
- ($varhash{"AC_PACKAGE_VERSION"} = $version) =~ s/[\[\]\s]//g;
- }
-
- if ($conf_source =~ /^AC_INIT\(([^,\)]+),([^,\)]+)/m)
- {
- ($name, $version) = ($1, $2);
- $name=~ s/[\[\]\s]//g;
- $varhash{"AC_PACKAGE_NAME"} = $name;
- ($varhash{"AC_PACKAGE_VERSION"} = $version) =~ s/[\[\]\s]//g;
- }
-
- # \s makes this not work, why?
- $name = $1 if $conf_source =~ /^GETTEXT_PACKAGE=\[?([^\n\]]+)/m;
-
- # prepend '$' to auto* internal variables, usually they are
- # used in configure.in/ac without the '$'
- $name =~ s/AC_/\$AC_/g;
- $name =~ s/\$\$/\$/g;
-
- $name = substitute_var ($name);
-
- return $name if $name;
-}
diff --git a/patches/.cvsignore b/patches/.cvsignore
deleted file mode 100644
index 282522db0..000000000
--- a/patches/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile
-Makefile.in
diff --git a/patches/64bit/.cvsignore b/patches/64bit/.cvsignore
deleted file mode 100644
index 282522db0..000000000
--- a/patches/64bit/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile
-Makefile.in
diff --git a/patches/64bit/Makefile.am b/patches/64bit/Makefile.am
deleted file mode 100644
index a41fbfbeb..000000000
--- a/patches/64bit/Makefile.am
+++ /dev/null
@@ -1 +0,0 @@
-EXTRA_DIST = ${wildcard *.diff}
diff --git a/patches/64bit/accessibleChild-sc-sd-svx-sw.diff b/patches/64bit/accessibleChild-sc-sd-svx-sw.diff
deleted file mode 100644
index 8d5799261..000000000
--- a/patches/64bit/accessibleChild-sc-sd-svx-sw.diff
+++ /dev/null
@@ -1,213 +0,0 @@
-Index: sd/source/ui/inc/AccessiblePageShape.hxx
-===================================================================
-RCS file: /cvs/graphics/sd/source/ui/inc/AccessiblePageShape.hxx,v
-retrieving revision 1.6
-retrieving revision 1.6.316.1
-diff -u -p -u -p -r1.6 -r1.6.316.1
---- sd/source/ui/inc/AccessiblePageShape.hxx 24 Apr 2003 17:05:03 -0000 1.6
-+++ sd/source/ui/inc/AccessiblePageShape.hxx 21 Jan 2005 16:31:37 -0000 1.6.316.1
-@@ -139,7 +139,7 @@ public:
- //===== XAccessibleContext ==============================================
-
- /// Returns always 0 because there can be no children.
-- virtual long SAL_CALL
-+ virtual sal_Int32 SAL_CALL
- getAccessibleChildCount (void)
- throw ();
-
-Index: sw/source/core/access/acccontext.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/core/access/acccontext.cxx,v
-retrieving revision 1.49
-retrieving revision 1.47.20.3
-diff -u -p -u -p -r1.49 -r1.47.20.3
---- sw/source/core/access/acccontext.cxx 3 Dec 2004 14:09:55 -0000 1.49
-+++ sw/source/core/access/acccontext.cxx 18 Jan 2005 16:33:32 -0000 1.47.20.3
-@@ -649,7 +649,7 @@ sal_Int32 SAL_CALL SwAccessibleContext::
- }
-
- Reference< XAccessible> SAL_CALL
-- SwAccessibleContext::getAccessibleChild( long nIndex )
-+ SwAccessibleContext::getAccessibleChild( sal_Int32 nIndex )
- throw (::com::sun::star::uno::RuntimeException,
- ::com::sun::star::lang::IndexOutOfBoundsException)
- {
-Index: sw/source/core/access/acccontext.hxx
-===================================================================
-RCS file: /cvs/sw/sw/source/core/access/acccontext.hxx,v
-retrieving revision 1.34
-retrieving revision 1.33.520.2
-diff -u -p -u -p -r1.34 -r1.33.520.2
---- sw/source/core/access/acccontext.hxx 12 Aug 2004 12:10:26 -0000 1.34
-+++ sw/source/core/access/acccontext.hxx 20 Oct 2004 12:08:55 -0000 1.33.520.2
-@@ -260,12 +260,12 @@ public:
- //===== XAccessibleContext ==============================================
-
- /// Return the number of currently visible children.
-- virtual long SAL_CALL getAccessibleChildCount (void)
-+ virtual sal_Int32 SAL_CALL getAccessibleChildCount (void)
- throw (::com::sun::star::uno::RuntimeException);
-
- /// Return the specified child or NULL if index is invalid.
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL
-- getAccessibleChild (long nIndex)
-+ getAccessibleChild (sal_Int32 nIndex)
- throw (::com::sun::star::uno::RuntimeException,
- ::com::sun::star::lang::IndexOutOfBoundsException);
-
-Index: sw/source/core/access/accdoc.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/core/access/accdoc.cxx,v
-retrieving revision 1.25
-retrieving revision 1.23.538.3
-diff -u -p -u -p -r1.25 -r1.23.538.3
---- sw/source/core/access/accdoc.cxx 23 Dec 2004 10:01:37 -0000 1.25
-+++ sw/source/core/access/accdoc.cxx 18 Jan 2005 16:32:22 -0000 1.23.538.3
-@@ -218,7 +218,7 @@ sal_Int32 SAL_CALL SwAccessibleDocumentB
- }
-
- Reference< XAccessible> SAL_CALL
-- SwAccessibleDocumentBase::getAccessibleChild( long nIndex )
-+ SwAccessibleDocumentBase::getAccessibleChild( sal_Int32 nIndex )
- throw (::com::sun::star::uno::RuntimeException,
- ::com::sun::star::lang::IndexOutOfBoundsException)
- {
-Index: sw/source/core/access/accdoc.hxx
-===================================================================
-RCS file: /cvs/sw/sw/source/core/access/accdoc.hxx,v
-retrieving revision 1.17
-retrieving revision 1.16.538.2
-diff -u -p -u -p -r1.17 -r1.16.538.2
---- sw/source/core/access/accdoc.hxx 23 Dec 2004 10:01:52 -0000 1.17
-+++ sw/source/core/access/accdoc.hxx 18 Jan 2005 16:32:54 -0000 1.16.538.2
-@@ -105,12 +105,12 @@ public:
- //===== XAccessibleContext ==============================================
-
- /// Return the number of currently visible children.
-- virtual long SAL_CALL getAccessibleChildCount (void)
-+ virtual sal_Int32 SAL_CALL getAccessibleChildCount (void)
- throw (::com::sun::star::uno::RuntimeException);
-
- /// Return the specified child or NULL if index is invalid.
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL
-- getAccessibleChild (long nIndex)
-+ getAccessibleChild (sal_Int32 nIndex)
- throw (::com::sun::star::uno::RuntimeException,
- ::com::sun::star::lang::IndexOutOfBoundsException);
-
-Index: svx/source/accessibility/AccessibleContextBase.cxx
-===================================================================
-RCS file: /cvs/graphics/svx/source/accessibility/AccessibleContextBase.cxx,v
-retrieving revision 1.20
-retrieving revision 1.20.642.1
-diff -u -p -u -p -r1.20 -r1.20.642.1
---- svx/source/accessibility/AccessibleContextBase.cxx 24 Apr 2003 16:52:52 -0000 1.20
-+++ svx/source/accessibility/AccessibleContextBase.cxx 9 Sep 2004 09:39:57 -0000 1.20.642.1
-@@ -287,7 +287,7 @@ sal_Int32 SAL_CALL
- an exception for a wrong index.
- */
- uno::Reference<XAccessible> SAL_CALL
-- AccessibleContextBase::getAccessibleChild (long nIndex)
-+ AccessibleContextBase::getAccessibleChild (sal_Int32 nIndex)
- throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
- {
- ThrowIfDisposed ();
-Index: svx/source/inc/GraphCtlAccessibleContext.hxx
-===================================================================
-RCS file: /cvs/graphics/svx/source/inc/GraphCtlAccessibleContext.hxx,v
-retrieving revision 1.9
-retrieving revision 1.9.546.1
-diff -u -p -u -p -r1.9 -r1.9.546.1
---- svx/source/inc/GraphCtlAccessibleContext.hxx 26 Jun 2003 11:10:37 -0000 1.9
-+++ svx/source/inc/GraphCtlAccessibleContext.hxx 9 Sep 2004 09:40:03 -0000 1.9.546.1
-@@ -210,8 +210,8 @@ public:
-
- //===== XAccessibleContext ==============================================
-
-- virtual long SAL_CALL getAccessibleChildCount (void) throw (::com::sun::star::uno::RuntimeException);
-- virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL getAccessibleChild (long nIndex) throw (::com::sun::star::uno::RuntimeException, ::com::sun::star::lang::IndexOutOfBoundsException);
-+ virtual sal_Int32 SAL_CALL getAccessibleChildCount (void) throw (::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL getAccessibleChild (sal_Int32 nIndex) throw (::com::sun::star::uno::RuntimeException, ::com::sun::star::lang::IndexOutOfBoundsException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL getAccessibleParent (void) throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL getAccessibleIndexInParent (void) throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Int16 SAL_CALL getAccessibleRole (void) throw (::com::sun::star::uno::RuntimeException);
-Index: svx/source/inc/svxrectctaccessiblecontext.hxx
-===================================================================
-RCS file: /cvs/graphics/svx/source/inc/svxrectctaccessiblecontext.hxx,v
-retrieving revision 1.9
-retrieving revision 1.9.606.1
-diff -u -p -u -p -r1.9 -r1.9.606.1
---- svx/source/inc/svxrectctaccessiblecontext.hxx 22 May 2003 12:55:19 -0000 1.9
-+++ svx/source/inc/svxrectctaccessiblecontext.hxx 9 Sep 2004 09:40:03 -0000 1.9.606.1
-@@ -225,11 +225,11 @@ public:
-
- //===== XAccessibleContext ==============================================
-
-- virtual long SAL_CALL
-+ virtual sal_Int32 SAL_CALL
- getAccessibleChildCount( void ) throw( ::com::sun::star::uno::RuntimeException );
-
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL
-- getAccessibleChild( long nIndex )
-+ getAccessibleChild( sal_Int32 nIndex )
- throw( ::com::sun::star::uno::RuntimeException, ::com::sun::star::lang::IndexOutOfBoundsException );
-
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL
-Index: sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx,v
-retrieving revision 1.30
-retrieving revision 1.29.42.2
-diff -u -p -u -p -r1.30 -r1.29.42.2
---- sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx 8 Sep 2004 13:52:20 -0000 1.30
-+++ sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx 19 Oct 2004 13:27:31 -0000 1.29.42.2
-@@ -1771,7 +1771,7 @@ void SAL_CALL ScAccessibleDocumentPagePr
-
- //===== XAccessibleContext ==============================================
-
--long SAL_CALL ScAccessibleDocumentPagePreview::getAccessibleChildCount(void) throw (uno::RuntimeException)
-+sal_Int32 SAL_CALL ScAccessibleDocumentPagePreview::getAccessibleChildCount(void) throw (uno::RuntimeException)
- {
- ScUnoGuard aGuard;
- IsObjectValid();
-Index: sc/source/ui/inc/AccessibleDocument.hxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/inc/AccessibleDocument.hxx,v
-retrieving revision 1.24
-retrieving revision 1.24.42.1
-diff -u -p -u -p -r1.24 -r1.24.42.1
---- sc/source/ui/inc/AccessibleDocument.hxx 4 Jun 2004 11:28:26 -0000 1.24
-+++ sc/source/ui/inc/AccessibleDocument.hxx 9 Sep 2004 11:02:31 -0000 1.24.42.1
-@@ -158,13 +158,13 @@ public:
- ///===== XAccessibleContext ==============================================
-
- /// Return the number of currently visible children.
-- virtual long SAL_CALL
-+ virtual sal_Int32 SAL_CALL
- getAccessibleChildCount(void)
- throw (::com::sun::star::uno::RuntimeException);
-
- /// Return the specified child or NULL if index is invalid.
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL
-- getAccessibleChild(long nIndex)
-+ getAccessibleChild(sal_Int32 nIndex)
- throw (::com::sun::star::uno::RuntimeException,
- ::com::sun::star::lang::IndexOutOfBoundsException);
-
-Index: sc/source/ui/inc/AccessibleDocumentPagePreview.hxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/inc/AccessibleDocumentPagePreview.hxx,v
-retrieving revision 1.9
-retrieving revision 1.9.354.1
-diff -u -p -u -p -r1.9 -r1.9.354.1
---- sc/source/ui/inc/AccessibleDocumentPagePreview.hxx 24 Apr 2003 17:14:38 -0000 1.9
-+++ sc/source/ui/inc/AccessibleDocumentPagePreview.hxx 9 Sep 2004 11:02:31 -0000 1.9.354.1
-@@ -105,7 +105,7 @@ public:
- ///===== XAccessibleContext ==============================================
-
- /// Return the number of currently visible children.
-- virtual long SAL_CALL
-+ virtual sal_Int32 SAL_CALL
- getAccessibleChildCount(void)
- throw (::com::sun::star::uno::RuntimeException);
-
diff --git a/patches/64bit/bigint-datetime.diff b/patches/64bit/bigint-datetime.diff
deleted file mode 100644
index 4898ed585..000000000
--- a/patches/64bit/bigint-datetime.diff
+++ /dev/null
@@ -1,194 +0,0 @@
---- tools/inc/datetime.hxx 2005-12-12 19:13:52.000000000 +0100
-+++ tools/inc/datetime.hxx 2005-12-12 20:46:59.000000000 +0100
-@@ -115,6 +115,9 @@ public:
- { return (const Date&) rDateTime - rDate; }
-
- DateTime& operator =( const DateTime& rDateTime );
-+
-+ void GetFileDateTime( sal_uInt32 & rLower, sal_uInt32 & rUpper );
-+ static DateTime CreateFromFileDateTime( const sal_uInt32 & rLower, const sal_uInt32 & rUpper );
- };
-
- inline DateTime& DateTime::operator =( const DateTime& rDateTime )
---- tools/source/datetime/datetime.cxx 2005-12-12 19:15:05.000000000 +0100
-+++ tools/source/datetime/datetime.cxx 2005-12-12 20:11:54.000000000 +0100
-@@ -386,3 +386,58 @@ double operator -( const DateTime& rDate
- }
- return double(nDays);
- }
-+
-+void DateTime::GetFileDateTime( sal_uInt32 & rLower, sal_uInt32 & rUpper )
-+{
-+ const sal_Int64 a100nPerSecond = SAL_CONST_INT64( 10000000 );
-+ const sal_Int64 a100nPerDay = a100nPerSecond * sal_Int64( 60 * 60 * 24 );
-+
-+ sal_Int64 nYears = GetYear() - 1601;
-+ sal_Int64 nDays =
-+ nYears * 365 +
-+ nYears / 4 - nYears / 100 + nYears / 400 +
-+ GetDayOfYear() - 1;
-+
-+ sal_Int64 aTime =
-+ a100nPerDay * nDays +
-+ a100nPerSecond * (
-+ sal_Int64( GetSec() ) +
-+ 60 * sal_Int64( GetMin() ) +
-+ 60 * 60 * sal_Int64( GetHour() ) );
-+
-+ rLower = sal_uInt32( aTime % SAL_CONST_UINT64( 0x100000000 ) );
-+ rUpper = sal_uInt32( aTime / SAL_CONST_UINT64( 0x100000000 ) );
-+}
-+
-+DateTime DateTime::CreateFromFileDateTime( const sal_uInt32 & rLower, const sal_uInt32 & rUpper )
-+{
-+ const sal_Int64 a100nPerSecond = SAL_CONST_INT64( 10000000 );
-+ const sal_Int64 a100nPerDay = a100nPerSecond * sal_Int64( 60 * 60 * 24 );
-+
-+ sal_Int64 aTime = sal_Int64(
-+ sal_uInt64( rUpper ) * SAL_CONST_UINT64( 0x100000000 ) +
-+ sal_uInt64( rLower ) );
-+
-+ sal_Int64 nDays = aTime / a100nPerDay;
-+ sal_Int64 nYears =
-+ ( nDays -
-+ ( nDays / ( 4 * 365 ) ) +
-+ ( nDays / ( 100 * 365 ) ) -
-+ ( nDays / ( 400 * 365 ) ) ) / 365;
-+ nDays -= nYears * 365 + nYears / 4 - nYears / 100 + nYears / 400;
-+
-+ USHORT nMonths = 0;
-+ for( long nDaysCount = nDays; nDaysCount >= 0; )
-+ {
-+ nDays = nDaysCount;
-+ nMonths ++;
-+ nDaysCount -= Date( 1, nMonths, 1601 + nYears ).GetDaysInMonth();
-+ }
-+
-+ Date _aDate( (USHORT)( nDays + 1 ), nMonths, nYears + 1601 );
-+ Time _aTime( ULONG( ( aTime / ( a100nPerSecond * 60 * 60 ) ) % sal_Int64( 24 ) ),
-+ ULONG( ( aTime / ( a100nPerSecond * 60 ) ) % sal_Int64( 60 ) ),
-+ ULONG( ( aTime / ( a100nPerSecond ) ) % sal_Int64( 60 ) ) );
-+
-+ return DateTime( _aDate, _aTime );
-+}
---- sfx2/source/doc/docinf.cxx 2005-12-12 18:53:26.000000000 +0100
-+++ sfx2/source/doc/docinf.cxx 2005-12-12 19:58:04.000000000 +0100
-@@ -33,9 +33,6 @@
- *
- ************************************************************************/
-
--#ifndef _BIGINT_HXX //autogen wg. BigInt
--#include <tools/bigint.hxx>
--#endif
- #ifndef _SFXECODE_HXX
- #include <svtools/sfxecode.hxx>
- #endif
-@@ -350,23 +347,12 @@ ULONG SfxPSDateTimeProperty_Impl::Save(S
- // Nicht Valid ist das gleiche, wie bei MS, nur nicht konvertiert
- if( aDateTime.IsValid() )
- aDateTime.ConvertToUTC();
-- BigInt a100nPerSecond(10000000L);
-- BigInt a100nPerDay=a100nPerSecond*BigInt(60L*60*24);
-- USHORT nYears=aDateTime.GetYear()-1601;
-- long nDays=
-- nYears*365+nYears/4-nYears/100+nYears/400+
-- aDateTime.GetDayOfYear()-1;
-- BigInt aTime=
-- a100nPerDay*BigInt(nDays)+a100nPerSecond*
-- BigInt((long)( aDateTime.GetSec() +
-- 60* aDateTime.GetMin() +
-- 60L*60* aDateTime.GetHour() ));
-
-- BigInt aUlongMax((ULONG)ULONG_MAX);
-- aUlongMax += 1;
-+ sal_uInt32 nUpper, nLower;
-+ aDateTime.GetFileDateTime( nLower, nUpper );
-
-- rStream<<(UINT32)(aTime % aUlongMax) ;
-- rStream<<(UINT32)(aTime / aUlongMax);
-+ rStream << (UINT32)( nLower );
-+ rStream << (UINT32)( nUpper );
- return rStream.GetErrorCode();
- }
-
-@@ -377,33 +363,10 @@ ErrCode SfxPSDateTimeProperty_Impl::Load
- UINT32 nLow, nHigh;
- rStream >> nLow;
- rStream >> nHigh;
-- BigInt aUlongMax( (ULONG)ULONG_MAX );
-- aUlongMax += 1;
-- BigInt aTime = aUlongMax * BigInt( nHigh );
-- aTime += nLow;
-- BigInt a100nPerSecond(10000000L);
-- BigInt a100nPerDay = a100nPerSecond*BigInt( 60L * 60 * 24 );
-- ULONG nDays = aTime / a100nPerDay;
-- USHORT nYears = (USHORT)
-- (( nDays - ( nDays / ( 4 * 365 ) ) + ( nDays / ( 100 * 365 ) ) -
-- ( nDays / ( 400 * 365 ) ) ) / 365 );
-- nDays -= nYears * 365 + nYears / 4 - nYears / 100 + nYears / 400;
-- USHORT nMonths = 0;
-- for( long nDaysCount = nDays; nDaysCount >= 0; )
-- {
-- nDays = nDaysCount;
-- nMonths ++;
-- nDaysCount-= Date( 1, nMonths, 1601 + nYears ).GetDaysInMonth();
-- }
-- Date _aDate( (USHORT)( nDays + 1 ), nMonths, nYears + 1601 );
-- Time _aTime( ( aTime / ( a100nPerSecond * BigInt( 60 * 60 ) ) ) %
-- BigInt( 24 ),
-- ( aTime / ( a100nPerSecond * BigInt( 60 ) ) ) %
-- BigInt( 60 ),
-- ( aTime / ( a100nPerSecond ) ) %
-- BigInt( 60 ) );
-- aDateTime = DateTime( _aDate, _aTime );
-+
-+ aDateTime = DateTime::CreateFromFileDateTime( nLow, nHigh );
- aDateTime.ConvertToLocalTime();
-+
- return rStream.GetErrorCode();
- }
-
---- sd/source/filter/eppt/dinfos2.cxx 2005-12-12 18:57:02.000000000 +0100
-+++ sd/source/filter/eppt/dinfos2.cxx 2005-12-12 20:51:48.000000000 +0100
-@@ -36,9 +36,6 @@
- #ifndef _DINFOS2_HXX_
- #include <dinfos2.hxx>
- #endif
--#ifndef _BIGINT_HXX
--#include <tools/bigint.hxx>
--#endif
- #ifndef _NEW_HXX
- #include <tools/new.hxx>
- #endif
-@@ -171,26 +168,14 @@ void PropItem::Write( String& rString )
-
- void PropItem::Write( DateTime& rDateTime )
- {
-+ sal_uInt32 nLower, nUpper;
-+
- rDateTime.ConvertToUTC();
-- BigInt a100nPerSecond( 10000000L );
-- BigInt a100nPerDay = a100nPerSecond * BigInt( 60L * 60 * 24 );
--
-- USHORT nYears = rDateTime.GetYear() - 1601;
-- long nDays =
-- nYears * 365 + nYears / 4 - nYears / 100 + nYears / 400 +
-- rDateTime.GetDayOfYear() - 1;
-- BigInt aTime=
-- a100nPerDay * BigInt( nDays ) + a100nPerSecond *
-- BigInt( (long)( rDateTime.GetSec() +
-- 60 * rDateTime.GetMin() +
-- 60L * 60 * rDateTime.GetHour() ) );
--
-- BigInt aUlongMax( (ULONG)ULONG_MAX );
-- aUlongMax += 1;
-+ rDateTime.GetFileDateTime( nLower, nUpper );
-
- *this << (UINT32)VT_FILETIME
-- << (UINT32)( aTime % aUlongMax )
-- << (UINT32)( aTime / aUlongMax );
-+ << (UINT32)( nLower )
-+ << (UINT32)( nUpper );
- }
-
- // -----------------------------------------------------------------------
diff --git a/patches/64bit/bigint-sd-sfx2-sw-tools.diff b/patches/64bit/bigint-sd-sfx2-sw-tools.diff
deleted file mode 100644
index 46af2994c..000000000
--- a/patches/64bit/bigint-sd-sfx2-sw-tools.diff
+++ /dev/null
@@ -1,108 +0,0 @@
-Index: sw/source/core/inc/frmtool.hxx
-===================================================================
-RCS file: /cvs/sw/sw/source/core/inc/frmtool.hxx,v
-retrieving revision 1.20
-retrieving revision 1.20.84.1
-diff -u -p -u -p -r1.20 -r1.20.84.1
---- sw/source/core/inc/frmtool.hxx 9 Dec 2004 16:41:01 -0000 1.20
-+++ sw/source/core/inc/frmtool.hxx 21 Jan 2005 16:58:17 -0000 1.20.84.1
-@@ -121,7 +121,7 @@ void SwAlignGrfRect( SwRect *pGrfRect, c
- SwFlyFrm *GetFlyFromMarked( const SdrMarkList *pLst, ViewShell *pSh );
-
- //Nicht gleich die math.lib anziehen.
--ULONG MA_FASTCALL SqRt( BigInt nX );
-+sal_uInt32 MA_FASTCALL SqRt( BigInt nX );
-
- //CntntNodes besorgen, CntntFrms erzeugen und in den LayFrm haengen.
- void MA_FASTCALL _InsertCnt( SwLayoutFrm *pLay, SwDoc *pDoc, ULONG nIndex,
-Index: sw/source/core/layout/frmtool.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/core/layout/frmtool.cxx,v
-retrieving revision 1.74
-retrieving revision 1.72.48.2
-diff -u -p -u -p -r1.74 -r1.72.48.2
---- sw/source/core/layout/frmtool.cxx 27 Jan 2005 11:11:28 -0000 1.74
-+++ sw/source/core/layout/frmtool.cxx 10 Mar 2005 01:55:20 -0000 1.72.48.2
-@@ -2720,7 +2720,7 @@ void RestoreCntnt( SwFrm *pSav, SwLayout
- |*
- |*************************************************************************/
-
--ULONG MA_FASTCALL SqRt( BigInt nX )
-+sal_uInt32 MA_FASTCALL SqRt( BigInt nX )
- {
- BigInt nErg = 1;
-
-@@ -2733,7 +2733,7 @@ ULONG MA_FASTCALL SqRt( BigInt nX )
- nOldErg = nErg;
- }
- }
-- return nErg >= BigInt((ULONG)ULONG_MAX) ? ULONG_MAX : (ULONG)nErg;
-+ return nErg >= BigInt(SAL_MAX_UINT32) ? SAL_MAX_UINT32 : (sal_uInt32)nErg;
- }
-
- /*************************************************************************
-Index: tools/source/generic/bigint.cxx
-===================================================================
-RCS file: /cvs/util/tools/source/generic/bigint.cxx,v
-retrieving revision 1.3
-retrieving revision 1.3.4.1
-diff -u -p -u -p -r1.3 -r1.3.4.1
---- tools/source/generic/bigint.cxx 17 Jun 2004 13:11:15 -0000 1.3
-+++ tools/source/generic/bigint.cxx 21 Jan 2005 17:23:10 -0000 1.3.4.1
-@@ -686,10 +686,25 @@ BigInt::BigInt( sal_uInt32 nValue )
- }
-
- // -----------------------------------------------------------------------
--
-+#if SAL_TYPE_SIZEOFLONG == 8
- BigInt::operator ULONG() const
- {
- if ( !bIsBig )
-+ return nVal;
-+ else if ( nLen == 2 )
-+ {
-+ ULONG nRet;
-+ nRet = (nNum[1]) << 16;
-+ nRet += nNum[0];
-+ return nRet;
-+ }
-+ return 0;
-+}
-+#endif
-+// -----------------------------------------------------------------------
-+BigInt::operator sal_uInt32() const
-+{
-+ if ( !bIsBig )
- return (sal_uInt32)nVal;
- else if ( nLen == 2 )
- {
-Index: sfx2/source/explorer/exptypes.cxx
-===================================================================
-RCS file: /cvs/framework/sfx2/source/explorer/exptypes.cxx,v
-retrieving revision 1.5
-retrieving revision 1.5.80.1
-diff -u -p -u -p -r1.5 -r1.5.80.1
---- sfx2/source/explorer/exptypes.cxx 21 Apr 2004 13:17:08 -0000 1.5
-+++ sfx2/source/explorer/exptypes.cxx 21 Jan 2005 17:11:02 -0000 1.5.80.1
-@@ -188,8 +188,8 @@ String ExtendedCreateSizeText( const Big
- BigInt nSize2 = nSize1;
- String aSecondUnitStr( ' ' );
- BOOL bGB = FALSE;
-- ULONG nMega = 1024 * 1024;
-- ULONG nGiga = nMega * 1024;
-+ sal_uInt32 nMega = 1024 * 1024;
-+ sal_uInt32 nGiga = nMega * 1024;
-
- static const BigInt nTenKB( 10000 );
- static const BigInt nOneMB( nMega );
-@@ -417,8 +417,8 @@ String CreateExactSizeText( const BigInt
- BigInt nSize = rSize;
- double fSize = nSize;
-
-- ULONG nMega = 1024 * 1024;
-- ULONG nGiga = nMega * 1024;
-+ sal_uInt32 nMega = 1024 * 1024;
-+ sal_uInt32 nGiga = nMega * 1024;
- static const BigInt nTenKB( 10000 );
- static const BigInt nOneMB( nMega );
- static const BigInt nOneGB( nGiga );
diff --git a/patches/64bit/buildfix-64bit-automation.diff b/patches/64bit/buildfix-64bit-automation.diff
deleted file mode 100644
index 32f22770e..000000000
--- a/patches/64bit/buildfix-64bit-automation.diff
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: automation/source/simplecm/simplecm.cxx
-===================================================================
---- automation/source/simplecm/simplecm.cxx.orig 2005-06-21 21:07:16.000000000 +0200
-+++ automation/source/simplecm/simplecm.cxx 2005-07-05 16:25:47.946454048 +0200
-@@ -309,7 +309,7 @@
- {
- BOOL bWasError = FALSE;
- char* pBuffer = NULL;
-- ULONG nLen;
-+ comm_UINT32 nLen;
- bWasError = pPacketHandler->ReceiveData( (void* &)pBuffer, nLen ) != C_ERROR_NONE;
- if ( !bWasError )
- {
diff --git a/patches/64bit/buildfix-64bit-basic.diff b/patches/64bit/buildfix-64bit-basic.diff
deleted file mode 100644
index 282b3a348..000000000
--- a/patches/64bit/buildfix-64bit-basic.diff
+++ /dev/null
@@ -1,547 +0,0 @@
---- basic/inc/sbxdef.hxx 17 Mar 2004 13:25:37 -0000 1.5
-+++ basic/inc/sbxdef.hxx 21 Jul 2004 17:34:07 -0000 1.5.132.1
-@@ -88,54 +88,54 @@ enum SbxClassType { // SBX-Klassen-IDs
- #define _SBX_DATA_TYPE
-
- enum SbxDataType {
-- SbxEMPTY = 0, // * Uninitialized
-- SbxNULL = 1, // * Contains no valid data
-- SbxINTEGER = 2, // * Integer (INT16)
-- SbxLONG = 3, // * Long integer (INT32)
-- SbxSINGLE = 4, // * Single-precision floating point number (float)
-- SbxDOUBLE = 5, // * Double-precision floating point number (double)
-+ SbxEMPTY = 0, // * Uninitialized
-+ SbxNULL = 1, // * Contains no valid data
-+ SbxINTEGER = 2, // * Integer (INT16)
-+ SbxLONG = 3, // * Long integer (INT32)
-+ SbxSINGLE = 4, // * Single-precision floating point number (float)
-+ SbxDOUBLE = 5, // * Double-precision floating point number (double)
- SbxCURRENCY = 6, // Currency (INT64)
-- SbxDATE = 7, // * Date (double)
-- SbxSTRING = 8, // * String (StarView)
-+ SbxDATE = 7, // * Date (double)
-+ SbxSTRING = 8, // * String (StarView)
- SbxOBJECT = 9, // * SbxBase object pointer
- SbxERROR = 10, // * Error (UINT16)
-- SbxBOOL = 11, // * Boolean (0 or -1)
-+ SbxBOOL = 11, // * Boolean (0 or -1)
- SbxVARIANT = 12, // * Anzeige fuer varianten Datentyp
- SbxDATAOBJECT = 13, // * Common data object w/o ref count
-
-- SbxCHAR = 16, // * signed char
-- SbxBYTE = 17, // * unsigned char
-- SbxUSHORT = 18, // * unsigned short (UINT16)
-- SbxULONG = 19, // * unsigned long (UINT32)
-- SbxLONG64 = 20, // signed 64-bit int
-- SbxULONG64 = 21, // unsigned 64-bit int
-- SbxINT = 22, // * signed machine-dependent int
-- SbxUINT = 23, // * unsigned machine-dependent int
-- SbxVOID = 24, // * no value (= SbxEMPTY)
-- SbxHRESULT = 25, // HRESULT
-- SbxPOINTER = 26, // generic pointer
-- SbxDIMARRAY = 27, // dimensioned array
-- SbxCARRAY = 28, // C style array
-- SbxUSERDEF = 29, // user defined
-- SbxLPSTR = 30, // * null terminated string
-- SbxLPWSTR = 31, // wide null terminated string
-+ SbxCHAR = 16, // * signed char
-+ SbxBYTE = 17, // * unsigned char
-+ SbxUSHORT = 18, // * unsigned short (UINT16)
-+ SbxULONG = 19, // * unsigned long (UINT32)
-+ SbxLONG64 = 20, // signed 64-bit int
-+ SbxULONG64 = 21, // unsigned 64-bit int
-+ SbxINT = 22, // * NOTE: deprecated and aliased to SbxLONG
-+ SbxUINT = 23, // * NOTE: deprecated and aliased to SbxULONG
-+ SbxVOID = 24, // * no value (= SbxEMPTY)
-+ SbxHRESULT = 25, // HRESULT
-+ SbxPOINTER = 26, // generic pointer
-+ SbxDIMARRAY = 27, // dimensioned array
-+ SbxCARRAY = 28, // C style array
-+ SbxUSERDEF = 29, // user defined
-+ SbxLPSTR = 30, // * null terminated string
-+ SbxLPWSTR = 31, // wide null terminated string
- SbxCoreSTRING = 32, // AB 10.4.97, fuer GetCoreString(), nur zum Konvertieren
-- SbxWSTRING = 33, // AB 4.10.2000 Reimplemented for backwards compatibility (#78919)
-- SbxWCHAR = 34, // AB 4.10.2000 Reimplemented for backwards compatibility (#78919)
-- SbxSALINT64 = 35, // for UNO hyper
-+ SbxWSTRING = 33, // AB 4.10.2000 Reimplemented for backwards compatibility (#78919)
-+ SbxWCHAR = 34, // AB 4.10.2000 Reimplemented for backwards compatibility (#78919)
-+ SbxSALINT64 = 35, // for UNO hyper
- SbxSALUINT64 = 36, // for UNO unsigned hyper
- SbxDECIMAL = 37, // for UNO/automation Decimal
-
-- SbxVECTOR = 0x1000, // simple counted array
-- SbxARRAY = 0x2000, // array
-- SbxBYREF = 0x4000, // access by reference
-+ SbxVECTOR = 0x1000, // simple counted array
-+ SbxARRAY = 0x2000, // array
-+ SbxBYREF = 0x4000, // access by reference
-
-- SbxSV1 = 128, // first defined data type for StarView
-- SbxMEMORYSTREAM, // SvMemoryStream
-+ SbxSV1 = 128, // first defined data type for StarView
-+ SbxMEMORYSTREAM, // SvMemoryStream
- SbxSTORAGE, // SvStorage
-
-- SbxUSER1 = 256, // first user defined data type
-- SbxUSERn = 2047 // last user defined data type
-+ SbxUSER1 = 256, // first user defined data type
-+ SbxUSERn = 2047 // last user defined data type
- };
-
- #endif
---- basic/inc/sbxvar.hxx 17 Mar 2004 13:25:56 -0000 1.7
-+++ basic/inc/sbxvar.hxx 21 Jan 2005 15:09:33 -0000 1.7.132.2
-@@ -81,19 +81,23 @@
-
- struct SbxINT64
- {
-- INT32 nHigh; UINT32 nLow;
-+ sal_Int32 nHigh; sal_uInt32 nLow;
-
- #if _SOLAR__PRIVATE
- #if FALSE
-- SbxINT64() : nHigh( 0 ), nLow( 0 ) {}
-- SbxINT64( UINT8 n ) : nHigh( 0 ), nLow( n ) {}
-- SbxINT64( UINT16 n ) : nHigh( 0 ), nLow( n ) {}
-- SbxINT64( UINT32 n ) : nHigh( 0 ), nLow( n ) {}
-+ SbxINT64() : nHigh( 0 ), nLow( 0 ) {}
-+ SbxINT64( sal_uInt8 n ) : nHigh( 0 ), nLow( n ) {}
-+ SbxINT64( sal_uInt16 n ) : nHigh( 0 ), nLow( n ) {}
-+ SbxINT64( sal_uInt32 n ) : nHigh( 0 ), nLow( n ) {}
-+#if 0
- SbxINT64( unsigned int n ) : nHigh( 0 ), nLow( n ) {}
-- SbxINT64( INT8 n ) : nHigh( n < 0 ? -1 : 0 ), nLow( n ) {}
-- SbxINT64( INT16 n ) : nHigh( n < 0 ? -1 : 0 ), nLow( n ) {}
-- SbxINT64( INT32 n ) : nHigh( n < 0 ? -1 : 0 ), nLow( n ) {}
-- SbxINT64( int n ) : nHigh( n < 0 ? -1 : 0 ), nLow( n ) {}
-+#endif
-+ SbxINT64( sal_Int8 n ) : nHigh( n < 0 ? -1 : 0 ), nLow( n ) {}
-+ SbxINT64( sal_Int16 n ) : nHigh( n < 0 ? -1 : 0 ), nLow( n ) {}
-+ SbxINT64( sal_Int32 n ) : nHigh( n < 0 ? -1 : 0 ), nLow( n ) {}
-+#if 0
-+ SbxINT64( int n ) : nHigh( n < 0 ? -1 : 0 ), nLow( n ) {}
-+#endif
- SbxINT64( SbxINT64 &r ) : nHigh( r.nHigh ), nLow( r.nLow ) {}
-
- SbxINT64( BigInt &r );
-@@ -101,7 +105,7 @@ struct SbxINT64
- #endif
- void CHS()
- {
-- nLow ^= (UINT32)-1;
-+ nLow ^= (sal_uInt32)-1;
- nHigh ^= -1;
- nLow++;
- if( !nLow )
-@@ -113,16 +117,16 @@ struct SbxINT64
- {
- if( n >= 0 )
- {
-- nHigh = (INT32)(n / (double)4294967296.0);
-- nLow = (UINT32)(n - ((double)nHigh * (double)4294967296.0));
-+ nHigh = (sal_Int32)(n / (double)4294967296.0);
-+ nLow = (sal_uInt32)(n - ((double)nHigh * (double)4294967296.0));
- }
- else {
-- nHigh = (INT32)(-n / (double)4294967296.0);
-- nLow = (UINT32)(-n - ((double)nHigh * (double)4294967296.0));
-+ nHigh = (sal_Int32)(-n / (double)4294967296.0);
-+ nLow = (sal_uInt32)(-n - ((double)nHigh * (double)4294967296.0));
- CHS();
- }
- }
-- void Set(INT32 n) { nHigh = n < 0 ? -1 : 0; nLow = n; }
-+ void Set(sal_Int32 n) { nHigh = n < 0 ? -1 : 0; nLow = n; }
-
- void SetMax() { nHigh = 0x7FFFFFFF; nLow = 0xFFFFFFFF; }
- void SetMin() { nHigh = 0x80000000; nLow = 0x00000000; }
-@@ -162,15 +166,15 @@ struct SbxINT64
-
- struct SbxUINT64
- {
-- UINT32 nHigh; UINT32 nLow;
-+ sal_uInt32 nHigh; sal_uInt32 nLow;
- #if _SOLAR__PRIVATE
- void Set(double n)
- {
-- nHigh = (UINT32)(n / (double)4294967296.0);
-- nLow = (UINT32)(n - ((double)nHigh * (double)4294967296.0));
-+ nHigh = (sal_uInt32)(n / (double)4294967296.0);
-+ nLow = (sal_uInt32)(n - ((double)nHigh * (double)4294967296.0));
- }
-
-- void Set(UINT32 n) { nHigh = 0; nLow = n; }
-+ void Set(sal_uInt32 n) { nHigh = 0; nLow = n; }
-
- void SetMax() { nHigh = 0xFFFFFFFF; nLow = 0xFFFFFFFF; }
- void SetMin() { nHigh = 0x00000000; nLow = 0x00000000; }
-@@ -212,54 +216,60 @@ class SbxDecimal;
- struct SbxValues
- {
- union {
-- sal_Unicode nChar;
-- BYTE nByte;
-- INT16 nInteger;
-- INT32 nLong;
-- UINT16 nUShort;
-- UINT32 nULong;
-+ sal_Unicode nChar;
-+ sal_uInt8 nByte;
-+ sal_Int16 nInteger;
-+ sal_Int32 nLong;
-+ sal_uInt16 nUShort;
-+ sal_uInt32 nULong;
- float nSingle;
- double nDouble;
- SbxINT64 nLong64;
- SbxUINT64 nULong64;
- sal_Int64 nInt64;
- sal_uInt64 uInt64;
-+#if 0
- int nInt;
- unsigned int nUInt;
-+#endif
- String* pString;
-- SbxDecimal* pDecimal;
-+ SbxDecimal* pDecimal;
-
- SbxBase* pObj;
- sal_Unicode* pChar;
-- BYTE* pByte;
-- INT16* pInteger;
-- INT32* pLong;
-- UINT16* pUShort;
-- UINT32* pULong;
-- float* pSingle;
-- double* pDouble;
-+ sal_uInt8* pByte;
-+ sal_Int16* pInteger;
-+ sal_Int32* pLong;
-+ sal_uInt16* pUShort;
-+ sal_uInt32* pULong;
-+ float* pSingle;
-+ double* pDouble;
- SbxINT64* pLong64;
- SbxUINT64* pULong64;
- sal_Int64* pnInt64;
- sal_uInt64* puInt64;
-- int* pInt;
-+#if 0
-+ int* pInt;
- unsigned int* pUInt;
-- void* pData;
-+#endif
-+ void* pData;
- };
- SbxDataType eType;
-
- SbxValues(): eType(SbxEMPTY), pData( NULL ) {}
- SbxValues( SbxDataType e ): eType(e) {}
- SbxValues( char _nChar ): nChar( _nChar ), eType(SbxCHAR) {}
-- SbxValues( BYTE _nByte ): nByte( _nByte ), eType(SbxBYTE) {}
-- SbxValues( short _nInteger ): nInteger( _nInteger ), eType(SbxINTEGER ) {}
-- SbxValues( long _nLong ): nLong( _nLong ), eType(SbxLONG) {}
-- SbxValues( USHORT _nUShort ): nUShort( _nUShort ), eType(SbxUSHORT) {}
-- SbxValues( ULONG _nULong ): nULong( _nULong ), eType(SbxULONG) {}
-+ SbxValues( sal_uInt8 _nByte ): nByte( _nByte ), eType(SbxBYTE) {}
-+ SbxValues( sal_Int16 _nInteger ): nInteger( _nInteger ), eType(SbxINTEGER ) {}
-+ SbxValues( sal_Int32 _nLong ): nLong( _nLong ), eType(SbxLONG) {}
-+ SbxValues( sal_uInt16 _nUShort ): nUShort( _nUShort ), eType(SbxUSHORT) {}
-+ SbxValues( sal_uInt32 _nULong ): nULong( _nULong ), eType(SbxULONG) {}
- SbxValues( float _nSingle ): nSingle( _nSingle ), eType(SbxSINGLE) {}
- SbxValues( double _nDouble ): nDouble( _nDouble ), eType(SbxDOUBLE) {}
-+#if 0
- SbxValues( int _nInt ): nInt( _nInt ), eType(SbxINT) {}
- SbxValues( unsigned int _nUInt ): nUInt( _nUInt ), eType(SbxUINT) {}
-+#endif
- SbxValues( const String* _pString ): pString( (String*) _pString ), eType(SbxSTRING) {}
- SbxValues( SbxBase* _pObj ): pObj( _pObj ), eType(SbxOBJECT) {}
- SbxValues( sal_Unicode* _pChar ): pChar( _pChar ), eType(SbxLPSTR) {}
-@@ -316,8 +326,8 @@ public:
- BOOL IsByte() const { return BOOL( GetType() == SbxBYTE ); }
- BOOL IsUShort() const { return BOOL( GetType() == SbxUSHORT ); }
- BOOL IsULong() const { return BOOL( GetType() == SbxULONG ); }
-- BOOL IsInt() const { return BOOL( GetType() == SbxINT ); }
-- BOOL IsUInt() const { return BOOL( GetType() == SbxUINT ); }
-+ BOOL IsInt() const { return BOOL( GetType() == SbxLONG ); }
-+ BOOL IsUInt() const { return BOOL( GetType() == SbxULONG ); }
- BOOL IspChar() const { return BOOL( GetType() == SbxLPSTR ); }
- BOOL IsNumeric() const;
- BOOL IsNumericRTL() const; // #41692 Schnittstelle fuer Basic
-@@ -333,42 +343,42 @@ public:
- const SbxValues& GetValues_Impl() const { return aData; }
- virtual BOOL Put( const SbxValues& );
-
-- SbxINT64 GetCurrency() const;
-- SbxINT64 GetLong64() const;
-- SbxUINT64 GetULong64() const;
-- sal_Int64 GetInt64() const;
-- sal_uInt64 GetUInt64() const;
-- INT16 GetInteger() const;
-- INT32 GetLong() const;
-- float GetSingle() const;
-- double GetDouble() const;
-- double GetDate() const;
-- BOOL GetBool() const;
-- UINT16 GetErr() const;
-- const String& GetString() const;
-- const String& GetCoreString() const;
-- SbxDecimal* GetDecimal() const;
-- SbxBase* GetObject() const;
-- BOOL HasObject() const;
-- void* GetData() const;
-- sal_Unicode GetChar() const;
-- BYTE GetByte() const;
-- UINT16 GetUShort() const;
-- UINT32 GetULong() const;
-- int GetInt() const;
-+ SbxINT64 GetCurrency() const;
-+ SbxINT64 GetLong64() const;
-+ SbxUINT64 GetULong64() const;
-+ sal_Int64 GetInt64() const;
-+ sal_uInt64 GetUInt64() const;
-+ sal_Int16 GetInteger() const;
-+ long GetLong() const;
-+ float GetSingle() const;
-+ double GetDouble() const;
-+ double GetDate() const;
-+ BOOL GetBool() const;
-+ sal_uInt16 GetErr() const;
-+ const String& GetString() const;
-+ const String& GetCoreString() const;
-+ SbxDecimal* GetDecimal() const;
-+ SbxBase* GetObject() const;
-+ BOOL HasObject() const;
-+ void* GetData() const;
-+ sal_Unicode GetChar() const;
-+ sal_uInt8 GetByte() const;
-+ sal_uInt16 GetUShort() const;
-+ ULONG GetULong() const;
-+ sal_uInt32 GetInt() const;
-
- BOOL PutCurrency( const SbxINT64& );
- BOOL PutLong64( const SbxINT64& );
- BOOL PutULong64( const SbxUINT64& );
- BOOL PutInt64( sal_Int64 );
- BOOL PutUInt64( sal_uInt64 );
-- BOOL PutInteger( INT16 );
-- BOOL PutLong( INT32 );
-+ BOOL PutInteger( sal_Int16 );
-+ BOOL PutLong( sal_Int32 );
- BOOL PutSingle( float );
- BOOL PutDouble( double );
- BOOL PutDate( double );
- BOOL PutBool( BOOL );
-- BOOL PutErr( USHORT );
-+ BOOL PutErr( sal_uInt16 );
- BOOL PutStringExt( const String& ); // mit erweiterter Auswertung (International, "TRUE"/"FALSE")
- BOOL PutString( const String& );
- BOOL PutString( const sal_Unicode* ); // Typ = SbxSTRING
-@@ -377,10 +387,10 @@ public:
- BOOL PutObject( SbxBase* );
- BOOL PutData( void* );
- BOOL PutChar( sal_Unicode );
-- BOOL PutByte( BYTE );
-- BOOL PutUShort( UINT16 );
-- BOOL PutULong( UINT32 );
-- BOOL PutInt( int );
-+ BOOL PutByte( sal_uInt8 );
-+ BOOL PutUShort( sal_uInt16 );
-+ BOOL PutULong( sal_uInt32 );
-+ BOOL PutInt( sal_uInt32 );
- BOOL PutEmpty();
- BOOL PutNull();
-
---- basic/source/sbx/sbxvals.cxx 18 Sep 2000 16:59:04 -0000 1.1.1.1
-+++ basic/source/sbx/sbxvals.cxx 21 Jul 2004 17:34:15 -0000 1.1.1.1.650.1
-@@ -85,7 +85,7 @@ BOOL BigInt::INT64( SbxINT64 *p ) const
- p->CHS();
- }
- else
-- p->Set( nVal );
-+ p->Set( (sal_Int32)nVal );
-
- return TRUE;
- }
---- basic/source/sbx/sbxvalue.cxx 9 Sep 2004 07:42:07 -0000 1.10
-+++ basic/source/sbx/sbxvalue.cxx 21 Jan 2005 15:09:37 -0000 1.9.8.3
-@@ -284,6 +284,7 @@ SbxValue::SbxValue( SbxDataType t, void*
- case SbxULONG64: n |= SbxBYREF; aData.pULong64 = (SbxUINT64*) p; break;
- case SbxLONG64:
- case SbxCURRENCY: n |= SbxBYREF; aData.pLong64 = (SbxINT64*) p; break;
-+ case SbxINT:
- case SbxLONG: n |= SbxBYREF; aData.pLong = (INT32*) p; break;
- case SbxSINGLE: n |= SbxBYREF; aData.pSingle = (float*) p; break;
- case SbxDATE:
-@@ -295,7 +296,6 @@ SbxValue::SbxValue( SbxDataType t, void*
- case SbxULONG: n |= SbxBYREF; aData.pULong = (UINT32*) p; break;
- case SbxCHAR: n |= SbxBYREF; aData.pChar = (xub_Unicode*) p; break;
- case SbxBYTE: n |= SbxBYREF; aData.pByte = (BYTE*) p; break;
-- case SbxINT: n |= SbxBYREF; aData.pInt = (int*) p; break;
- case SbxOBJECT:
- aData.pObj = (SbxBase*) p;
- if( p )
-@@ -559,6 +559,7 @@ BOOL SbxValue::Get( SbxValues& rRes ) co
- case SbxNULL: break;
- case SbxVARIANT: rRes = p->aData; break;
- case SbxINTEGER: rRes.nInteger = ImpGetInteger( &p->aData ); break;
-+ case SbxINT:
- case SbxLONG: rRes.nLong = ImpGetLong( &p->aData ); break;
- case SbxSINGLE: rRes.nSingle = ImpGetSingle( &p->aData ); break;
- case SbxDOUBLE: rRes.nDouble = ImpGetDouble( &p->aData ); break;
-@@ -569,26 +570,13 @@ BOOL SbxValue::Get( SbxValues& rRes ) co
- case SbxCHAR: rRes.nChar = ImpGetChar( &p->aData ); break;
- case SbxBYTE: rRes.nByte = ImpGetByte( &p->aData ); break;
- case SbxUSHORT: rRes.nUShort = ImpGetUShort( &p->aData ); break;
-+ case SbxUINT:
- case SbxULONG: rRes.nULong = ImpGetULong( &p->aData ); break;
- case SbxLPSTR:
- case SbxSTRING: p->aPic = ImpGetString( &p->aData );
- rRes.pString = &p->aPic; break;
- case SbxCoreSTRING: p->aPic = ImpGetCoreString( &p->aData );
- rRes.pString = &p->aPic; break;
-- case SbxINT:
--#if SAL_TYPES_SIZEOFINT == 2
-- rRes.nInt = (int) ImpGetInteger( &p->aData );
--#else
-- rRes.nInt = (int) ImpGetLong( &p->aData );
--#endif
-- break;
-- case SbxUINT:
--#if SAL_TYPES_SIZEOFINT == 2
-- rRes.nUInt = (int) ImpGetUShort( &p->aData );
--#else
-- rRes.nUInt = (int) ImpGetULong( &p->aData );
--#endif
-- break;
- case SbxOBJECT:
- if( p->aData.eType == SbxOBJECT )
- rRes.pObj = p->aData.pObj;
-@@ -690,13 +678,12 @@ GET( GetDate, SbxDATE, double,
- GET( GetData, SbxDATAOBJECT, void*, pData )
- GET( GetDouble, SbxDOUBLE, double, nDouble )
- GET( GetErr, SbxERROR, UINT16, nUShort )
--GET( GetInt, SbxINT, int, nInt )
- GET( GetInteger, SbxINTEGER, INT16, nInteger )
--GET( GetLong, SbxLONG, INT32, nLong )
-+GET( GetLong, SbxLONG, long, nLong )
- GET( GetLong64, SbxLONG64, SbxINT64, nLong64 )
- GET( GetObject, SbxOBJECT, SbxBase*, pObj )
- GET( GetSingle, SbxSINGLE, float, nSingle )
--GET( GetULong, SbxULONG, UINT32, nULong )
-+GET( GetULong, SbxULONG, ULONG, nULong )
- GET( GetULong64, SbxULONG64, SbxUINT64, nULong64 )
- GET( GetUShort, SbxUSHORT, UINT16, nUShort )
- GET( GetInt64, SbxSALINT64, sal_Int64, nInt64 )
-@@ -734,6 +721,7 @@ BOOL SbxValue::Put( const SbxValues& rVa
- case SbxVOID:
- case SbxNULL: break;
- case SbxINTEGER: ImpPutInteger( &p->aData, rVal.nInteger ); break;
-+ case SbxINT:
- case SbxLONG: ImpPutLong( &p->aData, rVal.nLong ); break;
- case SbxSINGLE: ImpPutSingle( &p->aData, rVal.nSingle ); break;
- case SbxDOUBLE: ImpPutDouble( &p->aData, rVal.nDouble ); break;
-@@ -744,23 +732,10 @@ BOOL SbxValue::Put( const SbxValues& rVa
- case SbxCHAR: ImpPutChar( &p->aData, rVal.nChar ); break;
- case SbxBYTE: ImpPutByte( &p->aData, rVal.nByte ); break;
- case SbxUSHORT: ImpPutUShort( &p->aData, rVal.nUShort ); break;
-+ case SbxUINT:
- case SbxULONG: ImpPutULong( &p->aData, rVal.nULong ); break;
- case SbxLPSTR:
- case SbxSTRING: ImpPutString( &p->aData, rVal.pString ); break;
-- case SbxINT:
--#if SAL_TYPES_SIZEOFINT == 2
-- ImpPutInteger( &p->aData, (INT16) rVal.nInt );
--#else
-- ImpPutLong( &p->aData, (INT32) rVal.nInt );
--#endif
-- break;
-- case SbxUINT:
--#if SAL_TYPES_SIZEOFINT == 2
-- ImpPutUShort( &p->aData, (UINT16) rVal.nUInt );
--#else
-- ImpPutULong( &p->aData, (UINT32) rVal.nUInt );
--#endif
-- break;
- case SbxOBJECT:
- if( !p->IsFixed() || p->aData.eType == SbxOBJECT )
- {
-@@ -955,7 +930,6 @@ PUT( PutDate, SbxDATE, double,
- PUT( PutData, SbxDATAOBJECT, void*, pData )
- PUT( PutDouble, SbxDOUBLE, double, nDouble )
- PUT( PutErr, SbxERROR, UINT16, nUShort )
--PUT( PutInt, SbxINT, int, nInt )
- PUT( PutInteger, SbxINTEGER, INT16, nInteger )
- PUT( PutLong, SbxLONG, INT32, nLong )
- PUT( PutLong64, SbxLONG64, const SbxINT64&, nLong64 )
-@@ -1598,6 +1572,7 @@ BOOL SbxValue::LoadData( SvStream& r, US
- case SbxBOOL:
- case SbxINTEGER:
- r >> aData.nInteger; break;
-+ case SbxINT:
- case SbxLONG:
- r >> aData.nLong; break;
- case SbxSINGLE:
-@@ -1680,30 +1655,9 @@ BOOL SbxValue::LoadData( SvStream& r, US
- }
- case SbxBYTE:
- r >> aData.nByte; break;
-+ case SbxUINT:
- case SbxULONG:
- r >> aData.nULong; break;
-- case SbxINT:
-- {
-- BYTE n;
-- r >> n;
-- // Passt der Int auf diesem System?
-- if( n > SAL_TYPES_SIZEOFINT )
-- r >> aData.nLong, aData.eType = SbxLONG;
-- else
-- r >> aData.nInt;
-- break;
-- }
-- case SbxUINT:
-- {
-- BYTE n;
-- r >> n;
-- // Passt der UInt auf diesem System?
-- if( n > SAL_TYPES_SIZEOFINT )
-- r >> aData.nULong, aData.eType = SbxULONG;
-- else
-- r >> (sal_uInt32&)aData.nUInt;
-- break;
-- }
- case SbxEMPTY:
- case SbxNULL:
- case SbxVOID:
-@@ -1734,6 +1688,7 @@ BOOL SbxValue::StoreData( SvStream& r )
- case SbxBOOL:
- case SbxINTEGER:
- r << aData.nInteger; break;
-+ case SbxINT:
- case SbxLONG:
- r << aData.nLong; break;
- case SbxDATE:
-@@ -1794,20 +1749,9 @@ BOOL SbxValue::StoreData( SvStream& r )
- }
- case SbxBYTE:
- r << aData.nByte; break;
-+ case SbxUINT:
- case SbxULONG:
- r << aData.nULong; break;
-- case SbxINT:
-- {
-- BYTE n = SAL_TYPES_SIZEOFINT;
-- r << n << (sal_Int32)aData.nInt;
-- break;
-- }
-- case SbxUINT:
-- {
-- BYTE n = SAL_TYPES_SIZEOFINT;
-- r << n << (sal_uInt32)aData.nUInt;
-- break;
-- }
- case SbxEMPTY:
- case SbxNULL:
- case SbxVOID:
diff --git a/patches/64bit/buildfix-64bit-canvas.diff b/patches/64bit/buildfix-64bit-canvas.diff
deleted file mode 100644
index 599adf4cf..000000000
--- a/patches/64bit/buildfix-64bit-canvas.diff
+++ /dev/null
@@ -1,34 +0,0 @@
-Index: canvas/source/vcl/spritecanvashelper.cxx
-===================================================================
-RCS file: /cvs/gsl/canvas/source/vcl/spritecanvashelper.cxx,v
-retrieving revision 1.2
-diff -u -r1.2 spritecanvashelper.cxx
---- canvas/source/vcl/spritecanvashelper.cxx 2 Nov 2005 13:04:38 -0000 1.2
-+++ canvas/source/vcl/spritecanvashelper.cxx 7 Nov 2005 15:55:02 -0000
-@@ -509,20 +509,20 @@
- // otherwise, truncation of size below might leave visible
- // areas uncovered by VDev.
- const ::Point aOutputPosition(
-- ::std::max( 0L,
-+ ::std::max( sal_Int32( 0 ),
- static_cast< sal_Int32 >(rRequestedArea.getMinX()) ),
-- ::std::max( 0L,
-+ ::std::max( sal_Int32( 0 ),
- static_cast< sal_Int32 >(rRequestedArea.getMinY()) ) );
- // round output size towards +infty. Don't want to truncate a
- // fraction of a sprite pixel... Limit coverage of VDev to
- // output device's area (i.e. not only to total size, but to
- // cover _only_ the visible parts).
- const ::Size aOutputSize(
-- ::std::max( 0L,
-- ::std::min( rTargetSizePixel.Width() - aOutputPosition.X(),
-+ ::std::max( sal_Int32( 0 ),
-+ ::std::min( static_cast< sal_Int32 >(rTargetSizePixel.Width() - aOutputPosition.X()),
- ::canvas::tools::roundUp( rRequestedArea.getMaxX() - aOutputPosition.X() ))),
-- ::std::max( 0L,
-- ::std::min( rTargetSizePixel.Height() - aOutputPosition.Y(),
-+ ::std::max( sal_Int32( 0 ),
-+ ::std::min( static_cast< sal_Int32 >(rTargetSizePixel.Height() - aOutputPosition.Y()),
- ::canvas::tools::roundUp( rRequestedArea.getMaxY() - aOutputPosition.Y() ))));
-
- // early exit for empty output area.
diff --git a/patches/64bit/buildfix-64bit-config_office.diff b/patches/64bit/buildfix-64bit-config_office.diff
deleted file mode 100644
index b048c4fb2..000000000
--- a/patches/64bit/buildfix-64bit-config_office.diff
+++ /dev/null
@@ -1,26 +0,0 @@
---- config_office/configure.in 2005-01-28 05:34:39.000000000 +0100
-+++ config_office/configure.in 2005-01-28 05:36:21.000000000 +0100
-@@ -3481,17 +3481,17 @@
- MOC="moc"
- if test "$test_kde" = "yes" -a "$ENABLE_KDE" = "TRUE" ; then
- dnl Search paths for Qt and KDE
-- qt_incdirs="$QTINC /usr/local/qt/include /usr/include/qt /usr/include /usr/X11R6/include/X11/qt /usr/X11R6/include/qt /usr/lib/qt3/include /usr/lib/qt/include /usr/share/qt3/include $x_includes"
-- qt_libdirs="$QTLIB /usr/local/qt/lib /usr/lib/qt /usr/lib /usr/X11R6/lib/X11/qt /usr/X11R6/lib/qt /usr/lib/qt3/lib /usr/lib/qt/lib /usr/share/qt3/lib $x_libraries"
-+ qt_incdirs="$QTINC /usr/local/qt/include /usr/include/qt /usr/include /usr/X11R6/include/X11/qt /usr/X11R6/include/qt /usr/lib/qt3/include /usr/lib/qt/include /usr/share/qt3/include $x_includes"
-+ qt_libdirs="$QTLIB /usr/local/qt/lib64 /usr/lib64/qt /usr/lib64 /usr/X11R6/lib64/X11/qt /usr/X11R6/lib64/qt /usr/lib64/qt3/lib64 /usr/lib64/qt/lib64 /usr/share/qt3/lib64 /usr/local/qt/lib /usr/lib/qt /usr/lib /usr/X11R6/lib/X11/qt /usr/X11R6/lib/qt /usr/lib/qt3/lib /usr/lib/qt/lib /usr/share/qt3/lib $x_libraries"
- if test -n "$QTDIR" ; then
- qt_incdirs="$QTDIR/include $qt_incdirs"
-- qt_libdirs="$QTDIR/lib $qt_libdirs"
-+ qt_libdirs="$QTDIR/lib64 $QTDIR/lib $qt_libdirs"
- fi
-- kde_incdirs="/usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/kde /usr/include /opt/kde3/include /opt/kde/include $x_includes"
-- kde_libdirs="/usr/lib/kde/lib /usr/local/kde/lib /usr/kde/lib /usr/lib/kde /usr/lib/kde3 /usr/lib /usr/X11R6/lib /usr/local/lib /opt/kde3/lib /opt/kde/lib /usr/X11R6/kde/lib $x_libraries"
-+ kde_incdirs="/usr/lib64/kde/include /usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/kde /usr/include /opt/kde3/include /opt/kde/include $x_includes"
-+ kde_libdirs="/usr/lib64/kde/lib64 /usr/local/kde/lib64 /usr/kde/lib64 /usr/lib64/kde /usr/lib64/kde3 /usr/lib64 /usr/X11R6/lib64 /usr/local/lib64 /opt/kde3/lib64 /opt/kde/lib64 /usr/X11R6/kde/lib64 /usr/lib/kde/lib /usr/local/kde/lib /usr/kde/lib /usr/lib/kde /usr/lib/kde3 /usr/lib /usr/X11R6/lib /usr/local/lib /opt/kde3/lib /opt/kde/lib /usr/X11R6/kde/lib $x_libraries"
- if test -n "$KDEDIR" ; then
- kde_incdirs="$KDEDIR/include $kde_incdirs"
-- kde_libdirs="$KDEDIR/lib $kde_libdirs"
-+ kde_libdirs="$KDEDIR/lib64 $KDEDIR/lib $kde_libdirs"
- fi
-
- dnl What to test
diff --git a/patches/64bit/buildfix-64bit-cppcanvas.diff b/patches/64bit/buildfix-64bit-cppcanvas.diff
deleted file mode 100644
index fc4d6469a..000000000
--- a/patches/64bit/buildfix-64bit-cppcanvas.diff
+++ /dev/null
@@ -1,31 +0,0 @@
---- cppcanvas/source/mtfrenderer/implrenderer.cxx 2005-03-30 10:27:39.000000000 +0200
-+++ cppcanvas/source/mtfrenderer/implrenderer.cxx 2005-04-21 10:04:04.454713029 +0200
-@@ -2570,7 +2570,7 @@ namespace cppcanvas
- {
- // only a single action. Setup subset, and call functor
- Action::Subset aSubset;
-- aSubset.mnSubsetBegin = ::std::max( 0L,
-+ aSubset.mnSubsetBegin = ::std::max( sal_Int32( 0 ),
- nStartIndex - aRangeBegin->mnOrigIndex );
- aSubset.mnSubsetEnd = ::std::min( aRangeBegin->mpAction->getActionCount(),
- nEndIndex - aRangeBegin->mnOrigIndex );
-@@ -2589,7 +2589,7 @@ namespace cppcanvas
- // render partial first, full intermediate, and
- // partial last action
- Action::Subset aSubset;
-- aSubset.mnSubsetBegin = ::std::max( 0L,
-+ aSubset.mnSubsetBegin = ::std::max( sal_Int32( 0 ),
- nStartIndex - aRangeBegin->mnOrigIndex );
- aSubset.mnSubsetEnd = aRangeBegin->mpAction->getActionCount();
-
---- cppcanvas/source/mtfrenderer/textaction.cxx 2005-03-30 10:31:59.000000000 +0200
-+++ cppcanvas/source/mtfrenderer/textaction.cxx 2005-04-21 10:04:55.103991006 +0200
-@@ -450,7 +450,7 @@ namespace cppcanvas
- ::std::min(
- rSubset.mnSubsetEnd - rSubset.mnSubsetBegin,
- rOrigContext.Length ),
-- 0L ) );
-+ sal_Int32( 0 ) ) );
-
- const rendering::StringContext aContext( rOrigContext.Text,
- nNewStartPos,
diff --git a/patches/64bit/buildfix-64bit-dbaccess.diff b/patches/64bit/buildfix-64bit-dbaccess.diff
deleted file mode 100644
index d92e594e5..000000000
--- a/patches/64bit/buildfix-64bit-dbaccess.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- dbaccess/source/ui/tabledesign/TEditControl.cxx 2005-03-10 17:54:31.000000000 +0100
-+++ dbaccess/source/ui/tabledesign/TEditControl.cxx 2005-04-21 13:39:46.194989084 +0200
-@@ -190,7 +190,7 @@ DBG_NAME(OTableEditorCtrl);
-
- //==================================================================
- //------------------------------------------------------------------
--OTableEditorCtrl::ClipboardInvalidator::ClipboardInvalidator(ULONG nTimeout,OTableEditorCtrl* _pOwner)
-+OTableEditorCtrl::ClipboardInvalidator::ClipboardInvalidator(sal_uInt32 nTimeout,OTableEditorCtrl* _pOwner)
- : m_pOwner(_pOwner)
- {
- m_aInvalidateTimer.SetTimeout(nTimeout);
-@@ -1313,7 +1313,7 @@ String OTableEditorCtrl::GetCellText( lo
- }
-
- //------------------------------------------------------------------------------
--ULONG OTableEditorCtrl::GetTotalCellWidth(long nRow, sal_uInt16 nColId)
-+sal_uInt32 OTableEditorCtrl::GetTotalCellWidth(long nRow, sal_uInt16 nColId)
- {
- DBG_CHKTHIS(OTableEditorCtrl,NULL);
- return GetTextWidth(GetCellText(nRow, nColId)) + 2 * GetTextWidth('0');
diff --git a/patches/64bit/buildfix-64bit-forms.diff b/patches/64bit/buildfix-64bit-forms.diff
deleted file mode 100644
index f914ce2d7..000000000
--- a/patches/64bit/buildfix-64bit-forms.diff
+++ /dev/null
@@ -1,32 +0,0 @@
---- forms/source/component/imgprod.cxx 23 Jul 2004 10:48:03 -0000 1.9
-+++ forms/source/component/imgprod.cxx 19 Oct 2004 16:45:30 -0000 1.8.16.2
-@@ -148,8 +148,11 @@ ErrCode ImgProdLockBytes::ReadAt( sal_uI
- {
- if( GetStream() )
- {
-+ sal_Size temp_read;
- ( (SvStream*) GetStream() )->ResetError();
-- const ErrCode nErr = SvLockBytes::ReadAt( nPos, pBuffer, nCount, pRead );
-+ const ErrCode nErr = SvLockBytes::ReadAt( svstream_u32_to_Size(nPos), pBuffer,
-+ svstream_u32_to_Size(nCount), &temp_read );
-+ *pRead = svstream_Size_to_u32( temp_read );
- ( (SvStream*) GetStream() )->ResetError();
- return nErr;
- }
-@@ -178,7 +181,15 @@ ErrCode ImgProdLockBytes::ReadAt( sal_uI
- ErrCode ImgProdLockBytes::WriteAt( sal_uInt32 nPos, const void* pBuffer, sal_uInt32 nCount, sal_uInt32* pWritten )
- {
- if( GetStream() )
-- return SvLockBytes::WriteAt( nPos, pBuffer, nCount, pWritten );
-+ {
-+ ErrCode err;
-+ sal_Size temp_written;
-+
-+ err = SvLockBytes::WriteAt( svstream_u32_to_Size(nPos), pBuffer,
-+ svstream_u32_to_Size(nCount), &temp_written );
-+ *pWritten = svstream_Size_to_u32( temp_written );
-+ return err;
-+ }
- else
- {
- DBG_ASSERT( xStmRef.is(), "ImgProdLockBytes::WriteAt: xInputStream has no reference..." );
diff --git a/patches/64bit/buildfix-64bit-fpicker.diff b/patches/64bit/buildfix-64bit-fpicker.diff
deleted file mode 100644
index 412a91fe2..000000000
--- a/patches/64bit/buildfix-64bit-fpicker.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- fpicker/source/office/iodlg.cxx 16 Feb 2005 18:00:57 -0000 1.84
-+++ fpicker/source/office/iodlg.cxx 9 Mar 2005 23:13:58 -0000 1.79.44.4
-@@ -2704,7 +2704,7 @@ void SvtFileDialog::Resize()
- // Dieses Resize wurde nur zum Ein - oder Ausblenden des Indicators aufgerufen
- return;
-
-- long nMaxYPos = 0;
-+ sal_Int32 nMaxYPos = 0;
-
- // -------------
- // move controls
diff --git a/patches/64bit/buildfix-64bit-on-32bit-systems.diff b/patches/64bit/buildfix-64bit-on-32bit-systems.diff
deleted file mode 100644
index 63b37e5f6..000000000
--- a/patches/64bit/buildfix-64bit-on-32bit-systems.diff
+++ /dev/null
@@ -1,35 +0,0 @@
---- tools/inc/solar.h.ark 2005-02-06 20:21:58.000000000 +0100
-+++ tools/inc/solar.h 2005-02-06 20:24:20.000000000 +0100
-@@ -287,29 +287,9 @@
- /*** standard inline functions *****************************************/
-
- #ifdef __cplusplus
--inline int Min( int a, int b ) { return (a<b?a:b); }
--inline int Max( int a, int b ) { return (a>b?a:b); }
--inline char Min( char a, char b ) { return (a<b?a:b); }
--inline char Max( char a, char b ) { return (a>b?a:b); }
--inline BYTE Min( BYTE a, BYTE b ) { return (a<b?a:b); }
--inline BYTE Max( BYTE a, BYTE b ) { return (a>b?a:b); }
--inline short Min( short a, short b ) { return (a<b?a:b); }
--inline short Max( short a, short b ) { return (a>b?a:b); }
--inline USHORT Min( USHORT a, USHORT b ) { return (a<b?a:b); }
--inline USHORT Max( USHORT a, USHORT b ) { return (a>b?a:b); }
--inline long Min( long a, long b ) { return (a<b?a:b); }
--inline long Max( long a, long b ) { return (a>b?a:b); }
--#if SAL_TYPES_SIZEOFLONG == 8
--inline ULONG Min( ULONG a, ULONG b ) { return (a<b?a:b); }
--inline ULONG Max( ULONG a, ULONG b ) { return (a>b?a:b); }
--inline sal_uInt32 Min( sal_uInt32 a, sal_uInt32 b ) { return (a<b?a:b); }
--inline sal_uInt32 Max( sal_uInt32 a, sal_uInt32 b ) { return (a>b?a:b); }
--#endif
--
--inline char Abs( char a ) { return (a>=0?a:-a); }
--inline int Abs( int a ) { return (a>=0?a:-a); }
--inline short Abs( short a ) { return (a>=0?a:-a); }
--inline long Abs( long a ) { return (a>=0?a:-a); }
-+template<class T> inline T Min( T a, T b ) { return (a<b?a:b); }
-+template<class T> inline T Max( T a, T b ) { return (a>b?a:b); }
-+template<class T> inline T Abs( T a ) { return (a>=0?a:-a); }
- #endif
-
-
diff --git a/patches/64bit/buildfix-64bit-pyuno.diff b/patches/64bit/buildfix-64bit-pyuno.diff
deleted file mode 100644
index ec1870b33..000000000
--- a/patches/64bit/buildfix-64bit-pyuno.diff
+++ /dev/null
@@ -1,17 +0,0 @@
-cvs diff: Diffing inc/pyuno
-Index: pyuno/inc/pyuno/pyuno.hxx
-===================================================================
-RCS file: /cvs/udk/pyuno/inc/pyuno/pyuno.hxx,v
-retrieving revision 1.3
-diff -u -r1.3 pyuno.hxx
---- pyuno/inc/pyuno/pyuno.hxx 17 Dec 2003 18:45:27 -0000 1.3
-+++ pyuno/inc/pyuno/pyuno.hxx 4 Jun 2005 17:41:21 -0000
-@@ -124,7 +124,7 @@
-
- struct Hash
- {
-- int operator () ( const PyRef &r) const { return (int) r.get(); }
-+ sal_IntPtr operator () ( const PyRef &r) const { return sal_IntPtr( r.get() ); }
- };
- };
-
diff --git a/patches/64bit/buildfix-64bit-scp2-no-python.diff b/patches/64bit/buildfix-64bit-scp2-no-python.diff
deleted file mode 100644
index 743000492..000000000
--- a/patches/64bit/buildfix-64bit-scp2-no-python.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- scp2/util/makefile.mk 2005-06-08 13:35:31.840198136 +0200
-+++ scp2/util/makefile.mk 2005-06-08 13:37:38.297993146 +0200
-@@ -105,10 +105,13 @@ SCP1FILES = installation_ooo.par
- module_lingu.par \
- file_lingu.par \
- module_xsltfilter.par \
-- file_xsltfilter.par \
-- module_python.par \
-+ file_xsltfilter.par
-+
-+.IF "$(CPUNAME)" != "X86_64"
-+SCP1FILES += module_python.par \
- module_python_mailmerge.par \
- file_python.par \
- profileitem_python.par
-+.ENDIF
-
- .IF "$(SOLAR_JAVA)"!=""
- SCP1FILES += \
diff --git a/patches/64bit/buildfix-64bit-setup_native.diff b/patches/64bit/buildfix-64bit-setup_native.diff
deleted file mode 100644
index 647a27aaf..000000000
--- a/patches/64bit/buildfix-64bit-setup_native.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- setup_native/scripts/source/makefile.mk 2005-03-04 16:24:54.000000000 +0100
-+++ setup_native/scripts/source/makefile.mk 2005-04-21 11:21:52.395901212 +0200
-@@ -105,3 +105,5 @@ SHL1STDLIBS=-ldl
-
- .INCLUDE : target.mk
-
-+$(SLO)$/getuid.obj: $(INCCOM)$/_version.h
-+
diff --git a/patches/64bit/buildfix-64bit-svtools.diff b/patches/64bit/buildfix-64bit-svtools.diff
deleted file mode 100644
index 7fb0a47ab..000000000
--- a/patches/64bit/buildfix-64bit-svtools.diff
+++ /dev/null
@@ -1,141 +0,0 @@
-Index: svtools/inc/instrm.hxx
-===================================================================
-RCS file: /cvs/util/svtools/inc/instrm.hxx,v
-retrieving revision 1.1.1.1
-retrieving revision 1.1.1.1.650.1
-diff -u -p -u -p -r1.1.1.1 -r1.1.1.1.650.1
---- svtools/inc/instrm.hxx 18 Sep 2000 16:58:51 -0000 1.1.1.1
-+++ svtools/inc/instrm.hxx 21 Jan 2005 15:09:32 -0000 1.1.1.1.650.1
-@@ -84,19 +84,19 @@ class SvInputStream: public SvStream
- com::sun::star::uno::Reference< com::sun::star::io::XSeekable >
- m_xSeekable;
- SvDataPipe_Impl * m_pPipe;
-- ULONG m_nSeekedFrom;
-+ sal_Size m_nSeekedFrom;
-
- SVL_DLLPRIVATE bool open();
-
-- SVL_DLLPRIVATE virtual ULONG GetData(void * pData, ULONG nSize);
-+ SVL_DLLPRIVATE virtual sal_Size GetData(void * pData, sal_Size nSize);
-
-- SVL_DLLPRIVATE virtual ULONG PutData(void const *, ULONG);
-+ SVL_DLLPRIVATE virtual sal_Size PutData(void const *, sal_Size);
-
-- SVL_DLLPRIVATE virtual ULONG SeekPos(ULONG nPos);
-+ SVL_DLLPRIVATE virtual sal_Size SeekPos(sal_Size nPos);
-
- SVL_DLLPRIVATE virtual void FlushData();
-
-- SVL_DLLPRIVATE virtual void SetSize(ULONG);
-+ SVL_DLLPRIVATE virtual void SetSize(sal_Size);
-
- public:
- SvInputStream(
-@@ -108,9 +108,9 @@ public:
-
- virtual USHORT IsA() const;
-
-- virtual void AddMark(ULONG nPos);
-+ virtual void AddMark(sal_Size nPos);
-
-- virtual void RemoveMark(ULONG nPos);
-+ virtual void RemoveMark(sal_Size nPos);
- };
-
- #endif // SVTOOLS_INSTRM_HXX
-Index: svtools/inc/outstrm.hxx
-===================================================================
-RCS file: /cvs/util/svtools/inc/outstrm.hxx,v
-retrieving revision 1.1.1.1
-retrieving revision 1.1.1.1.650.1
-diff -u -p -u -p -r1.1.1.1 -r1.1.1.1.650.1
---- svtools/inc/outstrm.hxx 18 Sep 2000 16:58:52 -0000 1.1.1.1
-+++ svtools/inc/outstrm.hxx 21 Jan 2005 15:09:33 -0000 1.1.1.1.650.1
-@@ -79,15 +79,15 @@ class SvOutputStream: public SvStream
- com::sun::star::uno::Reference< com::sun::star::io::XOutputStream >
- m_xStream;
-
-- SVL_DLLPRIVATE virtual ULONG GetData(void *, ULONG);
-+ SVL_DLLPRIVATE virtual sal_Size GetData(void *, sal_Size);
-
-- SVL_DLLPRIVATE virtual ULONG PutData(void const * pData, ULONG nSize);
-+ SVL_DLLPRIVATE virtual sal_Size PutData(void const * pData, sal_Size nSize);
-
-- SVL_DLLPRIVATE virtual ULONG SeekPos(ULONG);
-+ SVL_DLLPRIVATE virtual sal_Size SeekPos(sal_Size);
-
- SVL_DLLPRIVATE virtual void FlushData();
-
-- SVL_DLLPRIVATE virtual void SetSize(ULONG);
-+ SVL_DLLPRIVATE virtual void SetSize(sal_Size);
-
- public:
- SvOutputStream(com::sun::star::uno::Reference<
-
-Index: svtools/inc/poolitem.hxx
-===================================================================
-RCS file: /cvs/util/svtools/inc/poolitem.hxx,v
-retrieving revision 1.8
-retrieving revision 1.7.10.2
-diff -u -p -u -p -r1.8 -r1.7.10.2
---- svtools/inc/poolitem.hxx 18 Jan 2005 14:22:53 -0000 1.8
-+++ svtools/inc/poolitem.hxx 9 Mar 2005 23:07:05 -0000 1.7.10.2
-@@ -230,17 +230,17 @@ friend class SfxItemPoolCache;
- friend class SfxItemSet;
- friend class SfxVoidItem;
-
-- ULONG nRefCount; // Referenzzaehler
-+ sal_uInt32 nRefCount; // Referenzzaehler
- USHORT nWhich;
- USHORT nKind;
-
- private:
-- inline void SetRefCount( ULONG n );
-+ inline void SetRefCount( sal_uInt32 n );
- inline void SetKind( USHORT n );
- public:
-- inline ULONG AddRef( ULONG n = 1 ) const;
-+ inline sal_uInt32 AddRef( sal_uInt32 n = 1 ) const;
- private:
-- inline ULONG ReleaseRef( ULONG n = 1 ) const;
-+ inline sal_uInt32 ReleaseRef( sal_uInt32 n = 1 ) const;
- SVL_DLLPRIVATE long Delete_Impl(void*);
-
- #if 0
-@@ -284,7 +284,7 @@ public:
- virtual SvStream& Store( SvStream &, USHORT nItemVersion ) const;
- virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const = 0;
-
-- ULONG GetRefCount() const { return nRefCount; }
-+ sal_uInt32 GetRefCount() const { return nRefCount; }
- inline USHORT GetKind() const { return nKind; }
-
- /** Read in a Unicode string from a streamed byte string representation.
-@@ -340,7 +340,7 @@ private:
-
- // -----------------------------------------------------------------------
-
--inline void SfxPoolItem::SetRefCount( ULONG n )
-+inline void SfxPoolItem::SetRefCount( sal_uInt32 n )
- {
- DBG_CHKTHIS( SfxPoolItem, 0 );
- nRefCount = n;
-@@ -354,15 +354,15 @@ inline void SfxPoolItem::SetKind( USHORT
- nKind = n;
- }
-
--inline ULONG SfxPoolItem::AddRef( ULONG n ) const
-+inline sal_uInt32 SfxPoolItem::AddRef( sal_uInt32 n ) const
- {
- DBG_CHKTHIS( SfxPoolItem, 0 );
- DBG_ASSERT( nRefCount <= SFX_ITEMS_MAXREF, "AddRef mit nicht-Pool-Item" );
-- DBG_ASSERT( ULONG_MAX - nRefCount > n, "AddRef: Referenzzaehler ueberschlaegt sich" );
-+ DBG_ASSERT( UINT_MAX - nRefCount > n, "AddRef: Referenzzaehler ueberschlaegt sich" );
- return ( ((SfxPoolItem *)this)->nRefCount += n );
- }
-
--inline ULONG SfxPoolItem::ReleaseRef( ULONG n ) const
-+inline sal_uInt32 SfxPoolItem::ReleaseRef( sal_uInt32 n ) const
- {
- DBG_CHKTHIS( SfxPoolItem, 0 );
- DBG_ASSERT( nRefCount <= SFX_ITEMS_MAXREF, "AddRef mit nicht-Pool-Item" );
diff --git a/patches/64bit/buildfix-64bit-svx-intptr.diff b/patches/64bit/buildfix-64bit-svx-intptr.diff
deleted file mode 100644
index 425b52a52..000000000
--- a/patches/64bit/buildfix-64bit-svx-intptr.diff
+++ /dev/null
@@ -1,66 +0,0 @@
---- svx/source/dialog/optfltr.hxx 2005-12-01 18:36:06.000000000 +0100
-+++ svx/source/dialog/optfltr.hxx 2005-12-01 18:36:26.000000000 +0100
-@@ -107,8 +107,8 @@ class OfaMSFilterTabPage2 : public SfxTa
- OfaMSFilterTabPage2( Window* pParent, const SfxItemSet& rSet );
- virtual ~OfaMSFilterTabPage2();
-
-- void InsertEntry( const String& _rTxt, sal_Int32 _nType );
-- SvLBoxEntry* GetEntry4Type( sal_Int32 _nType ) const;
-+ void InsertEntry( const String& _rTxt, sal_IntPtr _nType );
-+ SvLBoxEntry* GetEntry4Type( sal_IntPtr _nType ) const;
-
- public:
-
---- svx/source/dialog/optfltr.cxx 2005-12-01 18:33:21.000000000 +0100
-+++ svx/source/dialog/optfltr.cxx 2005-12-01 18:34:41.000000000 +0100
-@@ -251,13 +251,13 @@ void OfaMSFilterTabPage2::Reset( const S
-
- // int the same sequence as the enums of MSFltrPg2_CheckBoxEntries
- if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SMATH ) )
-- InsertEntry( sChgToFromMath, static_cast< sal_Int32 >( Math ) );
-+ InsertEntry( sChgToFromMath, static_cast< sal_IntPtr >( Math ) );
- if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SWRITER ) )
-- InsertEntry( sChgToFromWriter, static_cast< sal_Int32 >( Writer ) );
-+ InsertEntry( sChgToFromWriter, static_cast< sal_IntPtr >( Writer ) );
- if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SCALC ) )
-- InsertEntry( sChgToFromCalc, static_cast< sal_Int32 >( Calc ) );
-+ InsertEntry( sChgToFromCalc, static_cast< sal_IntPtr >( Calc ) );
- if ( aModuleOpt.IsModuleInstalled( SvtModuleOptions::E_SIMPRESS ) )
-- InsertEntry( sChgToFromImpress, static_cast< sal_Int32 >( Impress ) );
-+ InsertEntry( sChgToFromImpress, static_cast< sal_IntPtr >( Impress ) );
-
- static struct ChkCBoxEntries{
- MSFltrPg2_CheckBoxEntries eType;
-@@ -279,7 +279,7 @@ void OfaMSFilterTabPage2::Reset( const S
- InvalidCBEntry != pArr->eType; ++pArr, bFirst = !bFirst )
- {
- USHORT nCol = bFirst ? 1 : 2;
-- SvLBoxEntry* pEntry = GetEntry4Type( static_cast< sal_Int32 >( pArr->eType ) );
-+ SvLBoxEntry* pEntry = GetEntry4Type( static_cast< sal_IntPtr >( pArr->eType ) );
- if( pEntry )
- {
- SvLBoxButton* pItem = (SvLBoxButton*)(pEntry->GetItem( nCol ));
-@@ -296,7 +296,7 @@ void OfaMSFilterTabPage2::Reset( const S
- aCheckLB.SetUpdateMode( TRUE );
- }
-
--void OfaMSFilterTabPage2::InsertEntry( const String& _rTxt, sal_Int32 _nType )
-+void OfaMSFilterTabPage2::InsertEntry( const String& _rTxt, sal_IntPtr _nType )
- {
- SvLBoxEntry* pEntry = new SvLBoxEntry;
-
-@@ -313,12 +313,12 @@ void OfaMSFilterTabPage2::InsertEntry( c
- aCheckLB.GetModel()->Insert( pEntry );
- }
-
--SvLBoxEntry* OfaMSFilterTabPage2::GetEntry4Type( sal_Int32 _nType ) const
-+SvLBoxEntry* OfaMSFilterTabPage2::GetEntry4Type( sal_IntPtr _nType ) const
- {
- SvLBoxEntry* pEntry = aCheckLB.First();
- while ( pEntry )
- {
-- if ( _nType == (sal_Int32)pEntry->GetUserData() )
-+ if ( _nType == sal_IntPtr( pEntry->GetUserData() ) )
- return pEntry;
- pEntry = aCheckLB.Next( pEntry );
- }
diff --git a/patches/64bit/buildfix-64bit-svx.diff b/patches/64bit/buildfix-64bit-svx.diff
deleted file mode 100644
index 0d1a36cc3..000000000
--- a/patches/64bit/buildfix-64bit-svx.diff
+++ /dev/null
@@ -1,35 +0,0 @@
---- svx/inc/galmisc.hxx 2005-03-23 13:41:31.000000000 +0100
-+++ svx/inc/galmisc.hxx 2005-04-21 12:26:58.068654915 +0200
-@@ -127,7 +127,7 @@ BOOL FileExists( const INetURLObject&
- BOOL CreateDir( const INetURLObject& rURL );
- BOOL CopyFile( const INetURLObject& rSrcURL, const INetURLObject& rDstURL );
- BOOL KillFile( const INetURLObject& rURL );
--BitmapEx GalleryResGetBitmapEx( ULONG nId );
-+BitmapEx GalleryResGetBitmapEx( sal_uInt32 nId );
-
-
- // ---------------
---- svx/source/form/fmvwimp.cxx 2005-04-21 11:32:30.716363153 +0200
-+++ svx/source/form/fmvwimp.cxx 2005-04-21 11:40:54.963795566 +0200
-@@ -1665,8 +1665,8 @@ SdrObject* FmXFormView::implCreateXForms
- const sal_uInt16 nObjID = OBJ_FM_BUTTON;
- ::Size controlSize(4000, 500);
- FmFormObj *pControl = static_cast<FmFormObj*>(SdrObjFactory::MakeNewObject( FmFormInventor, nObjID, NULL, NULL ));
-- controlSize.Width() = sal_Int32(Fraction(controlSize.Width(), 1) * eTargetMode.GetScaleX());
-- controlSize.Height() = sal_Int32(Fraction(controlSize.Height(), 1) * eTargetMode.GetScaleY());
-+ controlSize.Width() = Fraction(controlSize.Width(), 1) * eTargetMode.GetScaleX();
-+ controlSize.Height() = Fraction(controlSize.Height(), 1) * eTargetMode.GetScaleY();
- ::Point controlPos(_pOutDev->LogicToLogic(Point(controlSize.Width(),0),eSourceMode,eTargetMode));
- ::Rectangle controlRect(controlPos,_pOutDev->LogicToLogic(controlSize, eSourceMode, eTargetMode));
- pControl->SetLogicRect(controlRect);
---- svx/source/gallery2/galmisc.cxx 2005-03-23 13:42:21.000000000 +0100
-+++ svx/source/gallery2/galmisc.cxx 2005-04-21 11:44:13.365127044 +0200
-@@ -716,7 +716,7 @@ void GalleryTransferable::StartDrag( Win
- }
- }
-
--BitmapEx GalleryResGetBitmapEx( ULONG nId )
-+BitmapEx GalleryResGetBitmapEx( sal_uInt32 nId )
- {
- BitmapEx aBmpEx( GAL_RESID( nId ) );
-
diff --git a/patches/64bit/buildfix-64bit-sw-editsh.diff b/patches/64bit/buildfix-64bit-sw-editsh.diff
deleted file mode 100644
index b159ea7fb..000000000
--- a/patches/64bit/buildfix-64bit-sw-editsh.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- sw/source/core/edit/editsh.cxx 2005-11-14 19:22:54.000000000 +0100
-+++ sw/source/core/edit/editsh.cxx 2005-11-14 19:37:09.000000000 +0100
-@@ -960,8 +960,8 @@ void SwEditShell::SetNumberingRestart()
- else
- MakeFindRange(DOCPOS_OTHERSTART, DOCPOS_OTHEREND, pCrsr); //extra content
- SwPosition* pSttPos = pCrsr->Start(), *pEndPos = pCrsr->End();
-- sal_uInt32 nCurrNd = pSttPos->nNode.GetIndex();
-- sal_uInt32 nEndNd = pEndPos->nNode.GetIndex();
-+ ULONG nCurrNd = pSttPos->nNode.GetIndex();
-+ ULONG nEndNd = pEndPos->nNode.GetIndex();
- if( nCurrNd <= nEndNd )
- {
- SwCntntFrm* pCntFrm;
diff --git a/patches/64bit/buildfix-64bit-system-jpeg.diff b/patches/64bit/buildfix-64bit-system-jpeg.diff
deleted file mode 100644
index 14835cd57..000000000
--- a/patches/64bit/buildfix-64bit-system-jpeg.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- solenv/inc/libs.mk 2004-12-27 09:08:30.839442951 +0100
-+++ solenv/inc/libs.mk 2004-12-27 09:08:54.889287186 +0100
-@@ -186,7 +196,9 @@ ZLIB3RDLIB=-lz
- #i34482# Blackdown jdk is in the libsearch patch and has a libjpeg
- .IF "$(OS)" == "FREEBSD"
- JPEG3RDLIB=/usr/local/lib/libjpeg.so
--.ELSE
-+.ELIF "$(CPUNAME)" == "X86_64"
-+JPEG3RDLIB=/usr/lib64/libjpeg.so
-+.ELSE
- JPEG3RDLIB=/usr/lib/libjpeg.so
- .ENDIF
- .ELSE
diff --git a/patches/64bit/buildfix-64bit-tools.diff b/patches/64bit/buildfix-64bit-tools.diff
deleted file mode 100644
index b8adf8303..000000000
--- a/patches/64bit/buildfix-64bit-tools.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- tools/inc/pstm.hxx 7 Dec 2000 12:43:16 -0000 1.2
-+++ tools/inc/pstm.hxx 9 Sep 2004 09:25:33 -0000 1.2.288.1
-@@ -257,9 +247,9 @@ class SvPersistStream : public SvStream
- const SvPersistStream * pRefStm;
- UINT32 nFlags;
-
-- virtual ULONG GetData( void* pData, ULONG nSize );
-- virtual ULONG PutData( const void* pData, ULONG nSize );
-- virtual ULONG SeekPos( ULONG nPos );
-+ virtual sal_Size GetData( void* pData, sal_Size nSize );
-+ virtual sal_Size PutData( const void* pData, sal_Size nSize );
-+ virtual sal_Size SeekPos( sal_Size nPos );
- virtual void FlushData();
- protected:
- ULONG GetCurMaxIndex( const SvPersistUIdx & ) const;
-
diff --git a/patches/64bit/buildfix-64bit-vcl-gcc4.diff b/patches/64bit/buildfix-64bit-vcl-gcc4.diff
deleted file mode 100644
index 6ef540b26..000000000
--- a/patches/64bit/buildfix-64bit-vcl-gcc4.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: vcl/source/gdi/impgraph.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/gdi/impgraph.cxx,v
-retrieving revision 1.18
-diff -u -r1.18 impgraph.cxx
---- vcl/source/gdi/impgraph.cxx 13 Dec 2004 12:39:18 -0000 1.18
-+++ vcl/source/gdi/impgraph.cxx 6 Jul 2005 15:43:42 -0000
-@@ -1099,7 +1099,7 @@
- Graphic aSysGraphic;
- ULONG nCvtType;
-
-- switch( (ULONG) meType )
-+ switch( meType )
- {
- case( SYS_WINMETAFILE ):
- case( SYS_WNTMETAFILE ): nCvtType = CVT_WMF; break;
diff --git a/patches/64bit/buildfix-jdk150-XmlSearch.diff b/patches/64bit/buildfix-jdk150-XmlSearch.diff
deleted file mode 100644
index d4b042d14..000000000
--- a/patches/64bit/buildfix-jdk150-XmlSearch.diff
+++ /dev/null
@@ -1,15 +0,0 @@
---- XmlSearch/src/com/sun/xmlsearch/db/VectorBtree.java 2004-12-22 16:19:43.120024733 +0100
-+++ XmlSearch/src/com/sun/xmlsearch/db/VectorBtree.java 2004-12-22 16:21:24.794445037 +0100
-@@ -274,10 +274,10 @@ public class VectorBtree {
- return accessBlock(bl.integerAt(index*4));
- }
-
-- public static void assert(boolean assertion) {
-+ /*public static void assert(boolean assertion) {
- if (assertion == false)
- System.err.println("assertion failed");
-- }
-+ }*/
-
- public int getIteratorBufferLength() {
- return _blockSize + _vecLen*2;
diff --git a/patches/64bit/buildfix-jdk150-berkeleydb.diff b/patches/64bit/buildfix-jdk150-berkeleydb.diff
deleted file mode 100644
index e6ae4d8cd..000000000
--- a/patches/64bit/buildfix-jdk150-berkeleydb.diff
+++ /dev/null
@@ -1,29 +0,0 @@
---- berkeleydb/db-3.2.9.patch 2004-12-22 15:24:41.391731661 +0100
-+++ berkeleydb/db-3.2.9.patch 2004-12-22 15:28:59.998036628 +0100
-@@ -1526,3 +1526,26 @@
- ! $(SLO)$/xa_map.obj
- !
- ! .INCLUDE : target.mk
-+*** misc/db-3.2.9/java/src/com/sleepycat/db/DbEnv.java 2004-12-22 15:25:42.919098136 +0100
-+--- misc/build/db-3.2.9/java/src/com/sleepycat/db/DbEnv.java 2004-12-22 15:26:05.804142962 +0100
-+***************
-+*** 78,86 ****
-+ //
-+ /*package*/ void _notify_dbs()
-+ {
-+! Enumeration enum = dblist_.elements();
-+! while (enum.hasMoreElements()) {
-+! Db db = (Db)enum.nextElement();
-+ db._notify_dbenv_close();
-+ }
-+ dblist_.removeAllElements();
-+--- 78,86 ----
-+ //
-+ /*package*/ void _notify_dbs()
-+ {
-+! Enumeration enumer = dblist_.elements();
-+! while (enumer.hasMoreElements()) {
-+! Db db = (Db)enumer.nextElement();
-+ db._notify_dbenv_close();
-+ }
-+ dblist_.removeAllElements();
diff --git a/patches/64bit/buildfix-jdk150-jurt.diff b/patches/64bit/buildfix-jdk150-jurt.diff
deleted file mode 100644
index 40eafc799..000000000
--- a/patches/64bit/buildfix-jdk150-jurt.diff
+++ /dev/null
@@ -1,52 +0,0 @@
---- jurt/com/sun/star/comp/servicemanager/ServiceManager.java 2004-12-22 16:40:05.639707998 +0100
-+++ jurt/com/sun/star/comp/servicemanager/ServiceManager.java 2004-12-22 16:39:59.272808481 +0100
-@@ -496,10 +496,10 @@ public class ServiceManager implements X
- throws com.sun.star.uno.RuntimeException
- {
- if (eventListener != null) {
-- java.util.Enumeration enum = eventListener.elements();
-+ java.util.Enumeration enumer = eventListener.elements();
-
-- while (enum.hasMoreElements()) {
-- XEventListener listener = (XEventListener) enum.nextElement();
-+ while (enumer.hasMoreElements()) {
-+ XEventListener listener = (XEventListener) enumer.nextElement();
- listener.disposing(new com.sun.star.lang.EventObject(this));
- }
- }
-@@ -728,16 +728,16 @@ public class ServiceManager implements X
- public XEnumeration createContentEnumeration( String serviceName )
- throws com.sun.star.uno.RuntimeException
- {
-- XEnumeration enum = null;
-+ XEnumeration enumer = null;
-
- java.util.Vector serviceList = (java.util.Vector) factoriesByServiceNames.get(serviceName);
-
- if (serviceList != null)
-- enum = new ServiceEnumerationImpl( serviceList.elements() );
-+ enumer = new ServiceEnumerationImpl( serviceList.elements() );
- else
-- enum = new ServiceEnumerationImpl();
-+ enumer = new ServiceEnumerationImpl();
-
-- return enum;
-+ return enumer;
- }
-
- /**
-@@ -805,11 +805,11 @@ public class ServiceManager implements X
- /**
- * Constructs a new instance with a given enumeration.
- * <p>
-- * @param enum is the enumeration which should been wrapped.
-+ * @param enumer is the enumeration which should been wrapped.
- * @see com.sun.star.container.XEnumeration
- */
-- public ServiceEnumerationImpl(java.util.Enumeration enum) {
-- enumeration = enum;
-+ public ServiceEnumerationImpl(java.util.Enumeration enumer) {
-+ enumeration = enumer;
- }
-
- /**
diff --git a/patches/64bit/buildfix-jdk150-jvmfwk.diff b/patches/64bit/buildfix-jdk150-jvmfwk.diff
deleted file mode 100644
index a516b57d6..000000000
--- a/patches/64bit/buildfix-jdk150-jvmfwk.diff
+++ /dev/null
@@ -1,21 +0,0 @@
---- jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx 2004-07-23 13:51:49.000000000 +0200
-+++ jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx 2005-01-06 18:40:26.278145794 +0100
-@@ -100,6 +100,7 @@ char const* const* SunInfo::getRuntimePa
- "/bin/classic/jvm.dll"
- #elif UNX
- "/lib/" JFW_PLUGIN_ARCH "/client/libjvm.so",
-+ "/lib/" JFW_PLUGIN_ARCH "/server/libjvm.so",
- "/lib/" JFW_PLUGIN_ARCH "/classic/libjvm.so"
- #endif
-
---- jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx 2004-12-29 18:59:51.834872000 +0100
-+++ jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx 2005-01-06 18:40:16.388844370 +0100
-@@ -84,7 +84,7 @@ namespace jfw_plugin
- #elif defined S390
- #define JFW_PLUGIN_ARCH "s390"
- #elif defined X86_64
--#define JFW_PLUGIN_ARCH "x86_64"
-+#define JFW_PLUGIN_ARCH "amd64"
- #else // SPARC, INTEL, POWERPC, MIPS
- #error unknown plattform
- #endif // SPARC, INTEL, POWERPC, MIPS
diff --git a/patches/64bit/buildfix-jdk150-qadevOOo.diff b/patches/64bit/buildfix-jdk150-qadevOOo.diff
deleted file mode 100644
index 919c14a35..000000000
--- a/patches/64bit/buildfix-jdk150-qadevOOo.diff
+++ /dev/null
@@ -1,109 +0,0 @@
---- qadevOOo/runner/util/DBTools.java 2004-12-22 16:50:25.004648608 +0100
-+++ qadevOOo/runner/util/DBTools.java 2004-12-22 16:50:55.538299660 +0100
-@@ -680,12 +680,12 @@ public class DBTools {
- XEnumerationAccess dbContEA = (XEnumerationAccess)
- UnoRuntime.queryInterface(XEnumerationAccess.class, dbContext) ;
-
-- XEnumeration enum = dbContEA.createEnumeration() ;
-+ XEnumeration enumer = dbContEA.createEnumeration() ;
-
- out.println("DatabaseContext registered DataSource's :") ;
-- while (enum.hasMoreElements()) {
-+ while (enumer.hasMoreElements()) {
- try {
-- DataSourceInfo inf = new DataSourceInfo(enum.nextElement()) ;
-+ DataSourceInfo inf = new DataSourceInfo(enumer.nextElement()) ;
- inf.printInfo(out) ;
- } catch (com.sun.star.container.NoSuchElementException e) {}
- catch (com.sun.star.lang.WrappedTargetException e) {}
---- qadevOOo/tests/java/ifc/style/_ParagraphProperties.java 2004-12-22 16:57:11.171534053 +0100
-+++ qadevOOo/tests/java/ifc/style/_ParagraphProperties.java 2004-12-22 16:57:44.064778408 +0100
-@@ -459,18 +459,18 @@ public class _ParagraphProperties extend
- }
-
- public String[] getElementNames() {
-- Enumeration enum = members.keys();
-+ Enumeration enumer = members.keys();
- int count = members.size();
- String[] res = new String[count];
- int i=0;
-- while(enum.hasMoreElements())
-- res[i] = (String)enum.nextElement();
-+ while(enumer.hasMoreElements())
-+ res[i] = (String)enumer.nextElement();
- return res;
- }
-
- public com.sun.star.uno.Type getElementType() {
-- Enumeration enum = members.keys();
-- String key = (String)enum.nextElement();
-+ Enumeration enumer = members.keys();
-+ String key = (String)enumer.nextElement();
- Object o = members.get(key);
- return new Type(o.getClass());
- }
---- qadevOOo/tests/java/ifc/reflection/_XTypeDescriptionEnumerationAccess.java 2004-12-22 17:14:27.113572901 +0100
-+++ qadevOOo/tests/java/ifc/reflection/_XTypeDescriptionEnumerationAccess.java 2004-12-22 17:14:39.756339480 +0100
-@@ -95,13 +95,13 @@ public class _XTypeDescriptionEnumeratio
- return;
- }
- try {
-- XTypeDescriptionEnumeration enum =
-+ XTypeDescriptionEnumeration enumer =
- oObj.createTypeDescriptionEnumeration(sString, tClass,
- TypeDescriptionSearchDepth.INFINITE);
- try {
- log.println("Got an enumeration.");
- while (true) {
-- XTypeDescription desc = enum.nextTypeDescription();
-+ XTypeDescription desc = enumer.nextTypeDescription();
- i++;
- log.println("\tdesc name: " + desc.getName());
- }
---- qadevOOo/tests/java/mod/_dbaccess/SbaXGridControl.java 2004-12-23 12:24:52.290114362 +0100
-+++ qadevOOo/tests/java/mod/_dbaccess/SbaXGridControl.java 2004-12-23 12:36:22.402994480 +0100
-@@ -394,7 +394,7 @@ public class SbaXGridControl extends Tes
- tEnv.addObjRelation("Comparer",
- new Comparator() {
- public int compare(Object o1, Object o2) {
-- return ((Integer) o1).compareTo(o2);
-+ return compare((Integer) o1, o2);
- }
-
- public boolean equals(Object obj) {
---- qadevOOo/tests/java/mod/_smgr/OServiceManager.java 2004-12-22 17:15:38.850901895 +0100
-+++ qadevOOo/tests/java/mod/_smgr/OServiceManager.java 2004-12-22 17:15:55.421975563 +0100
-@@ -164,12 +164,12 @@ public class OServiceManager extends Tes
- (XSet.class, oInterface) ;
- XSet set1 = (XSet) UnoRuntime.queryInterface
- (XSet.class, srvMan) ;
-- XEnumeration enum = set1.createEnumeration();
-- Object srv = enum.nextElement();
-+ XEnumeration enumer = set1.createEnumeration();
-+ Object srv = enumer.nextElement();
-
- set.insert(srv) ;
-
-- newElement = enum.nextElement();
-+ newElement = enumer.nextElement();
-
- XPropertySet xProp = (XPropertySet)UnoRuntime.queryInterface(
- XPropertySet.class, oInterface);
---- qadevOOo/tests/java/mod/_servicemgr.uno/OServiceManager.java 2004-12-22 17:16:46.101027450 +0100
-+++ qadevOOo/tests/java/mod/_servicemgr.uno/OServiceManager.java 2004-12-22 17:17:02.116200189 +0100
-@@ -162,12 +162,12 @@ public class OServiceManager extends Tes
- (XSet.class, oInterface) ;
- XSet set1 = (XSet) UnoRuntime.queryInterface
- (XSet.class, srvMan) ;
-- XEnumeration enum = set1.createEnumeration();
-- Object srv = enum.nextElement();
-+ XEnumeration enumer = set1.createEnumeration();
-+ Object srv = enumer.nextElement();
-
- set.insert(srv) ;
-
-- newElement = enum.nextElement();
-+ newElement = enumer.nextElement();
-
- XPropertySet xProp = (XPropertySet)UnoRuntime.queryInterface(
- XPropertySet.class, oInterface);
diff --git a/patches/64bit/buildfix-jdk150-rhino.diff b/patches/64bit/buildfix-jdk150-rhino.diff
deleted file mode 100644
index a71fc17d3..000000000
--- a/patches/64bit/buildfix-jdk150-rhino.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- rhino/ScriptRuntime.java 2004-12-22 15:20:08.079964822 +0100
-+++ rhino/ScriptRuntime.java 2004-12-22 14:51:22.930155622 +0100
-@@ -1155,8 +1155,8 @@ public class ScriptRuntime {
-
- public static Object nextEnum(Object enumObj) {
- // OPT this could be more efficient
-- IdEnumeration enum = (IdEnumeration)enumObj;
-- return enum.nextId();
-+ IdEnumeration enumer = (IdEnumeration)enumObj;
-+ return enumer.nextId();
- }
-
- // Form used by class files generated by 1.4R3 and earlier.
diff --git a/patches/64bit/buildfix-jdk150-sandbox.diff b/patches/64bit/buildfix-jdk150-sandbox.diff
deleted file mode 100644
index 6f8545879..000000000
--- a/patches/64bit/buildfix-jdk150-sandbox.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- sandbox/com/sun/star/lib/sandbox/ClassContextImpl.java 2004-12-22 15:15:47.396019917 +0100
-+++ sandbox/com/sun/star/lib/sandbox/ClassContextImpl.java 2004-12-22 14:51:22.929155795 +0100
-@@ -304,10 +304,10 @@ final class ClassContextImpl extends Cla
- m_class_path_jars = class_path_jars;
- }
-
-- java.util.Enumeration enum = m_class_path_jars.elements();
-- while (enum.hasMoreElements())
-+ java.util.Enumeration enumer = m_class_path_jars.elements();
-+ while (enumer.hasMoreElements())
- {
-- ClassContext context = (ClassContext)enum.nextElement();
-+ ClassContext context = (ClassContext)enumer.nextElement();
- try
- {
- xClass = context.loadClass( className );
diff --git a/patches/64bit/buildfix-jdk150-scripting.diff b/patches/64bit/buildfix-jdk150-scripting.diff
deleted file mode 100644
index a1aab78af..000000000
--- a/patches/64bit/buildfix-jdk150-scripting.diff
+++ /dev/null
@@ -1,71 +0,0 @@
---- scripting/java/org/openoffice/idesupport/OfficeDocument.java.orig 2004-12-22 17:17:46.607347008 +0100
-+++ scripting/java/org/openoffice/idesupport/OfficeDocument.java 2004-12-22 17:18:02.474523746 +0100
-@@ -107,9 +107,9 @@ public class OfficeDocument
- {
- zp = new ZipFile(this.file);
-
-- for (Enumeration enum = zp.entries(); enum.hasMoreElements(); )
-+ for (Enumeration enumer = zp.entries(); enumer.hasMoreElements(); )
- {
-- ZipEntry ze = (ZipEntry)enum.nextElement();
-+ ZipEntry ze = (ZipEntry)enumer.nextElement();
- if (ze.getName().endsWith(ParcelZipper.PARCEL_DESCRIPTOR_XML))
- {
- String tmp = ze.getName();
---- scripting/java/org/openoffice/idesupport/SVersionRCFile.java.orig 2004-12-22 17:18:39.854864224 +0100
-+++ scripting/java/org/openoffice/idesupport/SVersionRCFile.java 2004-12-22 17:19:00.401204496 +0100
-@@ -252,18 +252,18 @@ public class SVersionRCFile {
- else
- ov = new SVersionRCFile(args[0]);
-
-- Enumeration enum;
-+ Enumeration enumer;
-
- try {
-- enum = ov.getVersions();
-+ enumer = ov.getVersions();
- }
- catch (IOException ioe) {
- System.err.println("Error getting versions: " + ioe.getMessage());
- return;
- }
-
-- while (enum.hasMoreElements()) {
-- OfficeInstallation oi = (OfficeInstallation)enum.nextElement();
-+ while (enumer.hasMoreElements()) {
-+ OfficeInstallation oi = (OfficeInstallation)enumer.nextElement();
- System.out.println("Name: " + oi.getName() + ", Path: " + oi.getPath() +
- ", URL: " + oi.getURL());
- }
---- scripting/java/org/openoffice/idesupport/CommandLineTools.java.orig 2004-12-22 17:19:43.442539582 +0100
-+++ scripting/java/org/openoffice/idesupport/CommandLineTools.java 2004-12-22 17:19:58.177915975 +0100
-@@ -338,10 +338,10 @@ public class CommandLineTools {
- ParcelDescriptor desc = new ParcelDescriptor(parcelxml, language);
- desc.setScriptEntries((ScriptEntry[])scripts.toArray(new ScriptEntry[0]));
- if (properties.size() != 0) {
-- Enumeration enum = properties.keys();
-+ Enumeration enumer = properties.keys();
-
-- while (enum.hasMoreElements()) {
-- String name = (String)enum.nextElement();
-+ while (enumer.hasMoreElements()) {
-+ String name = (String)enumer.nextElement();
- String value = (String)properties.get(name);
- log("Setting property: " + name + " to " + value);
-
---- scripting/java/org/openoffice/netbeans/modules/office/wizard/SelectPathVisualPanel.java.orig 2004-12-22 17:20:33.685594951 +0100
-+++ scripting/java/org/openoffice/netbeans/modules/office/wizard/SelectPathVisualPanel.java 2004-12-22 17:20:47.442146430 +0100
-@@ -36,10 +36,10 @@ public class SelectPathVisualPanel exten
- OfficeInstallation orig = panel.getSelectedPath();
-
- try {
-- Enumeration enum = SVersionRCFile.createInstance().getVersions();
-+ Enumeration enumer = SVersionRCFile.createInstance().getVersions();
-
-- while (enum.hasMoreElements()) {
-- OfficeInstallation oi = (OfficeInstallation)enum.nextElement();
-+ while (enumer.hasMoreElements()) {
-+ OfficeInstallation oi = (OfficeInstallation)enumer.nextElement();
- installationsComboBox.addItem(oi);
- }
- }
diff --git a/patches/64bit/buildfix-jdk150-sj2.diff b/patches/64bit/buildfix-jdk150-sj2.diff
deleted file mode 100644
index c7df57649..000000000
--- a/patches/64bit/buildfix-jdk150-sj2.diff
+++ /dev/null
@@ -1,196 +0,0 @@
---- sj2/stardiv/app/AppletProps.java 2000-09-18 18:54:03.000000000 +0200
-+++ sj2/stardiv/app/AppletProps.java 2004-12-27 14:03:39.636052263 +0100
-@@ -138,7 +138,7 @@ public class AppletProps extends Frame {
- if (System.getProperty("http.proxyHost") != null) {
- proxyHost.setText(System.getProperty("http.proxyHost"));
- proxyPort.setText(System.getProperty("http.proxyPort"));
-- HttpClient.proxyPort = Integer.valueOf(System.getProperty("http.proxyPort")).intValue();
-+ //HttpClient.proxyPort = Integer.valueOf(System.getProperty("http.proxyPort")).intValue();
- }
- else {
- proxyHost.setText("");
---- sj2/stardiv/controller/PropertyEditor.java 2004-12-22 17:05:45.554835333 +0100
-+++ sj2/stardiv/controller/PropertyEditor.java 2004-12-22 17:06:53.896731282 +0100
-@@ -197,10 +197,10 @@ public class PropertyEditor extends java
-
- m_DefaultList.removeAll();
- m_List.removeAll();
-- java.util.Enumeration enum = m_Properties.propertyNames();
-- while (enum.hasMoreElements())
-+ java.util.Enumeration enumer = m_Properties.propertyNames();
-+ while (enumer.hasMoreElements())
- {
-- String strKey = (String)enum.nextElement();
-+ String strKey = (String)enumer.nextElement();
-
- if (isDefaultKey(strKey))
- addToList(m_DefaultList, strKey, m_Properties.getProperty(strKey));
-@@ -551,19 +551,19 @@ public class PropertyEditor extends java
- {
- int nMax = 0;
-
-- java.util.Enumeration enum = props.propertyNames();
-- while (enum.hasMoreElements())
-- nMax = Math.max(nMax, ((String)enum.nextElement()).length());
-+ java.util.Enumeration enumer = props.propertyNames();
-+ while (enumer.hasMoreElements())
-+ nMax = Math.max(nMax, ((String)enumer.nextElement()).length());
-
- return nMax+2;
- }
-
- protected static boolean isDefaultKey(String strKey)
- {
-- java.util.Enumeration enum = c_DefaultProperties.elements();
-- while (enum.hasMoreElements())
-+ java.util.Enumeration enumer = c_DefaultProperties.elements();
-+ while (enumer.hasMoreElements())
- {
-- if (strKey.equals((String)enum.nextElement()))
-+ if (strKey.equals((String)enumer.nextElement()))
- return true;
- }
-
-@@ -574,10 +574,10 @@ public class PropertyEditor extends java
- {
- java.util.Properties saveProps = new java.util.Properties();
-
-- java.util.Enumeration enum = m_Properties.propertyNames();
-- while (enum.hasMoreElements())
-+ java.util.Enumeration enumer = m_Properties.propertyNames();
-+ while (enumer.hasMoreElements())
- {
-- String strKey = (String)enum.nextElement();
-+ String strKey = (String)enumer.nextElement();
-
- if (!isDefaultKey(strKey))
- saveProps.put(strKey, m_Properties.getProperty(strKey));
-@@ -623,9 +623,9 @@ public class PropertyEditor extends java
-
- try
- {
-- java.util.Enumeration enum = System.getProperties().propertyNames();
-- while (enum.hasMoreElements())
-- c_DefaultProperties.addElement(enum.nextElement());
-+ java.util.Enumeration enumer = System.getProperties().propertyNames();
-+ while (enumer.hasMoreElements())
-+ c_DefaultProperties.addElement(enumer.nextElement());
- }
- catch (Exception ignore0) {}
- }
-@@ -656,10 +656,10 @@ public class PropertyEditor extends java
- }
- catch (Exception ignore2) {}
-
-- java.util.Enumeration enum = props.propertyNames();
-- while (enum.hasMoreElements())
-+ java.util.Enumeration enumer = props.propertyNames();
-+ while (enumer.hasMoreElements())
- {
-- String propKey = (String)enum.nextElement();
-+ String propKey = (String)enumer.nextElement();
-
- // if the key is not a default put the new property into the table
- if (!isDefaultKey(propKey))
---- sj2/stardiv/controller/StreamObserver.java 2000-09-18 18:54:04.000000000 +0200
-+++ sj2/stardiv/controller/StreamObserver.java 2004-12-27 13:53:46.691482076 +0100
-@@ -65,8 +65,7 @@ import java.util.Observer;
- import java.util.Observable;
- import java.net.URL;
- import java.net.MalformedURLException;
--import sun.net.ProgressData;
--import sun.net.ProgressEntry;
-+import sun.net.ProgressSource;
-
-
- /**
-@@ -79,12 +78,12 @@ public class StreamObserver implements O
- {
- public StreamObserver()
- {
-- ProgressData.pdata.addObserver( this );
-+ progressSource.beginTracking();
- }
-
- public void dispose()
- {
-- ProgressData.pdata.deleteObserver( this );
-+ progressSource.finishTracking();
- }
-
- static long nLastTime;
-@@ -95,48 +94,47 @@ public class StreamObserver implements O
- nLastTime = System.currentTimeMillis();
-
- String aStatus = null;
-- ProgressEntry pEntry = (ProgressEntry)aArg;
-- switch( pEntry.what )
-+ switch( progressSource.getState() )
- {
-- case ProgressData.CONNECTED:
-+ case CONNECTED:
- {
- try
- {
-- URL aURL = new URL( pEntry.label );
-+ URL aURL = progressSource.getURL();
- aStatus = "Connect: Host " + aURL.getHost() + " contacted. Waiting for reply...";
- }
-- catch( MalformedURLException e )
-+ catch( Exception e )
- {
-- aStatus = "Connect: " + pEntry.label;
-+ aStatus = "Connect: " + progressSource.getURL().toString();
- }
- }
- break;
-
-- case ProgressData.UPDATE:
-+ case UPDATE:
- if( System.currentTimeMillis() - nLastTime > 3000 )
- // Only 1 update / 3s
- return;
-- if( pEntry.need != 0 )
-+ if( progressSource.getExpected() > 0 )
- {
- // Java kommt mit dem letzten Byte nicht r"uber
-- aStatus = "Transfered: " + pEntry.label + " - ";
-- int nPercent = (int)(((long)pEntry.read * 100) / pEntry.need);
-+ aStatus = "Transfered: " + progressSource.getURL().toString() + " - ";
-+ int nPercent = (int)(((long)progressSource.getProgress() * 100) / progressSource.getExpected());
- aStatus += String.valueOf( nPercent ) + "% of ";
-- if( pEntry.need >= 1000 )
-- aStatus += String.valueOf( pEntry.need / 1000 ) + "K ";
-+ if( progressSource.getExpected() >= 1000 )
-+ aStatus += String.valueOf( progressSource.getExpected() / 1000 ) + "K ";
- else
-- aStatus += String.valueOf( pEntry.need );
-+ aStatus += String.valueOf( progressSource.getExpected() );
- aStatus += "bytes.";
- }
- else
-- aStatus = "Transfered: " + pEntry.label;
-+ aStatus = "Transfered: " + progressSource.getURL().toString();
- break;
-
-- case ProgressData.NEW:
-- aStatus = "Try: " + pEntry.label;
-+ case NEW:
-+ aStatus = "Try: " + progressSource.getURL().toString();
- break;
-- case ProgressData.DELETE:
-- aStatus = "Done: " + pEntry.label;
-+ case DELETE:
-+ aStatus = "Done: " + progressSource.getURL().toString();
- break;
- }
- if( aStatus != null )
-@@ -179,6 +177,8 @@ public class StreamObserver implements O
- System.out.println( pStatus );
- }
- }
-+
-+ private ProgressSource progressSource;
- }
-
-
diff --git a/patches/64bit/buildfix-jdk150-xmerge.diff b/patches/64bit/buildfix-jdk150-xmerge.diff
deleted file mode 100644
index fad824c61..000000000
--- a/patches/64bit/buildfix-jdk150-xmerge.diff
+++ /dev/null
@@ -1,48 +0,0 @@
---- xmerge/java/org/openoffice/xmerge/converter/xml/xslt/DocumentDeserializerImpl.java.orig 2004-12-22 17:22:27.982258021 +0100
-+++ xmerge/java/org/openoffice/xmerge/converter/xml/xslt/DocumentDeserializerImpl.java 2004-12-22 17:22:39.704173178 +0100
-@@ -155,14 +155,14 @@ public final class DocumentDeserializerI
- */
- public Document deserialize() throws ConvertException, IOException {
- log("\nFound the XSLT deserializer");
-- Enumeration enum = cd.getDocumentEnumeration();
-+ Enumeration enumer = cd.getDocumentEnumeration();
- org.w3c.dom.Document domDoc=null;
- DOMDocument docOut=null;
- GenericOfficeDocument doc = null;
- ByteArrayOutputStream baos =null;
- GenericOfficeDocument sxwDoc = new GenericOfficeDocument("output");
-- while (enum.hasMoreElements()) {
-- docOut = (DOMDocument) enum.nextElement();
-+ while (enumer.hasMoreElements()) {
-+ docOut = (DOMDocument) enumer.nextElement();
- }
- domDoc = docOut.getContentDOM();
- try{
---- xmerge/java/org/openoffice/xmerge/converter/xml/xslt/PluginFactoryImpl.java.orig 2004-12-22 17:23:19.555086519 +0100
-+++ xmerge/java/org/openoffice/xmerge/converter/xml/xslt/PluginFactoryImpl.java 2004-12-22 17:23:31.172021027 +0100
-@@ -183,9 +183,9 @@ public final class PluginFactoryImpl ext
- String ext= ".txt";
- String mimeType = null;
- ConverterInfo ci = this.getConverterInfo();
-- Enumeration enum = ci.getDeviceMime();
-- while (enum.hasMoreElements()) {
-- mimeType= (String) enum.nextElement();
-+ Enumeration enumer = ci.getDeviceMime();
-+ while (enumer.hasMoreElements()) {
-+ mimeType= (String) enumer.nextElement();
- }
- try {
- props.load(is);
---- xmerge/java/org/openoffice/xmerge/ConvertData.java.orig 2004-12-22 17:24:06.098811949 +0100
-+++ xmerge/java/org/openoffice/xmerge/ConvertData.java 2004-12-22 17:24:15.936063386 +0100
-@@ -127,8 +127,8 @@ public class ConvertData {
- * <code>Vector</code> of <code>Document</code> objects.
- */
- public Enumeration getDocumentEnumeration() {
-- Enumeration enum = v.elements();
-- return (enum);
-+ Enumeration enumer = v.elements();
-+ return (enumer);
- }
-
-
diff --git a/patches/64bit/buildfix-jdk150-xmlhelp.diff b/patches/64bit/buildfix-jdk150-xmlhelp.diff
deleted file mode 100644
index 3ff03c5a6..000000000
--- a/patches/64bit/buildfix-jdk150-xmlhelp.diff
+++ /dev/null
@@ -1,140 +0,0 @@
---- xmlhelp/source/com/sun/star/help/HelpLinker.java.orig 2004-12-22 17:08:22.901974311 +0100
-+++ xmlhelp/source/com/sun/star/help/HelpLinker.java 2004-12-22 17:08:53.581544726 +0100
-@@ -505,10 +505,10 @@ class HelpLinker {
- bais = new ByteArrayInputStream(baos.toByteArray());
- ois = new ObjectInputStream(bais);
- Hashtable anchorToLL = (Hashtable) ois.readObject();
-- Enumeration enum = anchorToLL.keys();
-+ Enumeration enumer = anchorToLL.keys();
- String fakedHid = URLEncoder.encode(documentPath);
-- while (enum.hasMoreElements()) {
-- String anchor = (String) enum.nextElement();
-+ while (enumer.hasMoreElements()) {
-+ String anchor = (String) enumer.nextElement();
- addBookmark(
- dbBase,
- documentPath,
-@@ -600,9 +600,9 @@ class HelpLinker {
- // last, all files which should be copied into the jarFile
- /////////////////////////////////////////////////////////////////////////
-
-- Enumeration enum = additionalFiles.keys();
-- while (enum.hasMoreElements()) {
-- String additionalFileKey = (String) enum.nextElement();
-+ Enumeration enumer = additionalFiles.keys();
-+ while (enumer.hasMoreElements()) {
-+ String additionalFileKey = (String) enumer.nextElement();
- String additionalFileName =
- (String) additionalFiles.get(additionalFileKey);
- copyFileToJarfile(additionalFileName, null, additionalFileKey);
---- xmlhelp/source/com/sun/star/help/HelpKeyword.java.orig 2004-12-22 17:10:13.982319803 +0100
-+++ xmlhelp/source/com/sun/star/help/HelpKeyword.java 2004-12-22 17:10:28.790700481 +0100
-@@ -59,11 +59,11 @@ public class HelpKeyword {
- }
-
- void dump(Db table) {
-- Enumeration enum = _hash.keys();
-+ Enumeration enumer = _hash.keys();
- int j = 0;
- String[] list = new String[_hash.size()];
-- while (enum.hasMoreElements()) {
-- list[j++] = (String) enum.nextElement();
-+ while (enumer.hasMoreElements()) {
-+ list[j++] = (String) enumer.nextElement();
- }
-
- for (int i = 0; i < list.length; ++i) {
---- xmlhelp/source/com/sun/star/help/HelpTransformer.java.orig 2004-12-22 17:11:10.251367944 +0100
-+++ xmlhelp/source/com/sun/star/help/HelpTransformer.java 2004-12-22 17:11:43.160548897 +0100
-@@ -14,11 +14,11 @@ class DefinitionsSorted
- {
- String styleName;
- Hashtable styles;
-- Enumeration enum = defs.getTable().keys();
-+ Enumeration enumer = defs.getTable().keys();
-
-- while( enum.hasMoreElements() )
-+ while( enumer.hasMoreElements() )
- {
-- styleName = ( String ) enum.nextElement();
-+ styleName = ( String ) enumer.nextElement();
- styles = defs.getEffectiveStyle( styleName );
-
- Enumeration styleOptions = styles.keys();
-@@ -112,11 +112,11 @@ class Definitions
- while( it.hasNext() )
- {
- Hashtable curr;
-- Enumeration enum = (curr = ( Hashtable )it.next()).keys();
-- while( enum.hasMoreElements() )
-+ Enumeration enumer = (curr = ( Hashtable )it.next()).keys();
-+ while( enumer.hasMoreElements() )
- {
- String str;
-- if( result.get( str = ( String ) enum.nextElement() ) == null )
-+ if( result.get( str = ( String ) enumer.nextElement() ) == null )
- result.put( str,curr.get( str ) );
- }
- }
-@@ -129,11 +129,11 @@ class Definitions
- {
- String str;
- Hashtable a = getEffectiveStyle( "p.def1" );
-- Enumeration enum = a.keys();
-+ Enumeration enumer = a.keys();
-
-- while( enum.hasMoreElements() )
-+ while( enumer.hasMoreElements() )
- {
-- System.out.println( (str = ( String ) enum.nextElement()) + " : " + ((String)a.get(str)) );
-+ System.out.println( (str = ( String ) enumer.nextElement()) + " : " + ((String)a.get(str)) );
- }
- }
-
---- xmlhelp/source/com/sun/star/help/HelpIndexer.java.orig 2004-12-22 17:12:21.878703949 +0100
-+++ xmlhelp/source/com/sun/star/help/HelpIndexer.java 2004-12-22 17:12:56.931508151 +0100
-@@ -239,11 +239,11 @@ public class HelpIndexer {
- table.close(0);
-
- System.out.println("Indexing...");
-- Enumeration enum = _hashDocInfo.elements();
-+ Enumeration enumer = _hashDocInfo.elements();
- int cut = 0;
-- while (enum.hasMoreElements() && cut < 100000000) {
-+ while (enumer.hasMoreElements() && cut < 100000000) {
- try {
-- DocInfo info = (DocInfo) enum.nextElement();
-+ DocInfo info = (DocInfo) enumer.nextElement();
- String url = info.getURL();
- if (url == null) {
- System.out.println(
-@@ -423,11 +423,11 @@ public class HelpIndexer {
- }
-
- void dump() {
-- Enumeration enum = _hash.keys();
-+ Enumeration enumer = _hash.keys();
- int j = 0;
- String[] list = new String[_hash.size()];
-- while (enum.hasMoreElements()) {
-- list[j++] = (String) enum.nextElement();
-+ while (enumer.hasMoreElements()) {
-+ list[j++] = (String) enumer.nextElement();
- }
-
- Db table;
-@@ -458,11 +458,11 @@ public class HelpIndexer {
- }
-
- void dumpHelptext() {
-- Enumeration enum = _hashHelptext.keys();
-+ Enumeration enumer = _hashHelptext.keys();
- int j = 0;
- String[] list = new String[_hashHelptext.size()];
-- while (enum.hasMoreElements()) {
-- list[j++] = (String) enum.nextElement();
-+ while (enumer.hasMoreElements()) {
-+ list[j++] = (String) enumer.nextElement();
- }
-
- Db table;
diff --git a/patches/64bit/cincludes.diff b/patches/64bit/cincludes.diff
deleted file mode 100644
index f76cadf6b..000000000
--- a/patches/64bit/cincludes.diff
+++ /dev/null
@@ -1,298 +0,0 @@
---- psprint/source/printergfx/bitmap_gfx.cxx 17 Mar 2004 10:51:59 -0000 1.8
-+++ psprint/source/printergfx/bitmap_gfx.cxx 6 Oct 2004 11:45:35 -0000 1.8.26.1
-@@ -69,6 +69,8 @@
- #include <psputil.hxx>
- #endif
-
-+#include <string.h>
-+
- namespace psp {
-
- const sal_uInt32 nLineLength = 80;
-Index: psprint/source/helper/strhelper.cxx
-===================================================================
-RCS file: /cvs/gsl/psprint/source/helper/strhelper.cxx,v
-retrieving revision 1.9
-retrieving revision 1.6.26.3
-diff -u -p -u -p -r1.9 -r1.6.26.3
---- psprint/source/helper/strhelper.cxx 31 Jan 2005 08:59:44 -0000 1.9
-+++ psprint/source/helper/strhelper.cxx 9 Mar 2005 15:57:41 -0000 1.6.26.3
-@@ -63,7 +63,7 @@
- #include <ieeefp.h> // finite
- #include <alloca.h>
- #endif
--#include <cstdlib>
-+#include <stdlib.h>
--#include <cstring>
-+#include <string.h>
- #include <rtl/math.hxx>
-
-Index: psprint/source/helper/helper.cxx
-===================================================================
-RCS file: /cvs/gsl/psprint/source/helper/helper.cxx,v
-retrieving revision 1.20
-retrieving revision 1.20.16.1
-diff -u -p -u -p -r1.20 -r1.20.16.1
---- psprint/source/helper/helper.cxx 1 Jun 2004 08:58:42 -0000 1.20
-+++ psprint/source/helper/helper.cxx 6 Oct 2004 12:15:23 -0000 1.20.16.1
-@@ -59,9 +59,10 @@
- *
- ************************************************************************/
-
--#include <cstring>
-+#include <string.h>
- #include <sys/stat.h>
- #include <unistd.h>
-+#include <limits.h>
-
- #include <psprint/helper.hxx>
- #include <tools/string.hxx>
-Index: tools/source/generic/line.cxx
-===================================================================
-RCS file: /cvs/util/tools/source/generic/line.cxx,v
-retrieving revision 1.2
-retrieving revision 1.2.194.1
-diff -u -p -u -p -r1.2 -r1.2.194.1
---- tools/source/generic/line.cxx 27 Mar 2003 17:04:14 -0000 1.2
-+++ tools/source/generic/line.cxx 10 Sep 2004 14:02:48 -0000 1.2.194.1
-@@ -74,7 +74,7 @@
- #endif
-
- #include <cstdlib>
--#include <cmath>
-+#include <math.h>
-
- inline long FRound( double fVal )
- {
-Index: vcl/source/app/dbggui.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/app/dbggui.cxx,v
-retrieving revision 1.18
-retrieving revision 1.16.68.3
-diff -u -p -u -p -r1.18 -r1.16.68.3
---- vcl/source/app/dbggui.cxx 31 Jan 2005 13:20:50 -0000 1.18
-+++ vcl/source/app/dbggui.cxx 10 Mar 2005 02:37:48 -0000 1.16.68.3
-@@ -60,12 +60,11 @@
- ************************************************************************/
-
-
--
- #ifdef DBG_UTIL
-
- #include "svdata.hxx"
--#include <cstdio>
--#include <cstring>
-+#include <stdio.h>
-+#include <string.h>
- #include <limits.h>
- #include <svsys.h>
-
-Index: vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx,v
-retrieving revision 1.10
-retrieving revision 1.2.48.4
-diff -u -p -u -p -r1.10 -r1.2.48.4
---- vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx 31 Jan 2005 09:20:23 -0000 1.10
-+++ vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx 10 Mar 2005 02:27:53 -0000 1.2.48.4
-@@ -64,8 +64,8 @@
-
- #include <pspgraphics.h>
-
--#include <cstdio>
--#include <cmath>
-+#include <stdio.h>
-+#include <math.h>
- #include <vector>
- #include <algorithm>
- #include <hash_map>
-Index: vcl/unx/source/app/saldata.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/source/app/saldata.cxx,v
-retrieving revision 1.39
-retrieving revision 1.36.6.3
-diff -u -p -u -p -r1.39 -r1.36.6.3
---- vcl/unx/source/app/saldata.cxx 9 Nov 2004 16:47:56 -0000 1.39
-+++ vcl/unx/source/app/saldata.cxx 18 Jan 2005 17:20:58 -0000 1.36.6.3
-@@ -68,9 +67,9 @@
- #include <unistd.h>
- #include <fcntl.h>
-
--#include <cstdio>
--#include <cstring>
--#include <cstdlib>
-+#include <stdio.h>
-+#include <string.h>
-+#include <stdlib.h>
- #include <limits.h>
- #include <errno.h>
- #include <pthread.h>
-Index: vcl/unx/source/plugadapt/salplug.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/source/plugadapt/salplug.cxx,v
-retrieving revision 1.13
-retrieving revision 1.9.30.4
-diff -u -p -u -p -r1.13 -r1.9.30.4
---- vcl/unx/source/plugadapt/salplug.cxx 21 Jan 2005 13:38:29 -0000 1.13
-+++ vcl/unx/source/plugadapt/salplug.cxx 10 Mar 2005 02:33:09 -0000 1.9.30.4
-@@ -77,7 +77,7 @@
- #include <salinst.hxx>
- #include <saldata.hxx>
-
--#include <cstdio>
-+#include <stdio.h>
- #include <unistd.h>
-
- using namespace rtl;
---- idlc/source/idlccompile.cxx 31 Jan 2005 15:46:22 -0000 1.16
-+++ idlc/source/idlccompile.cxx 9 Mar 2005 20:19:31 -0000 1.15.4.2
-@@ -94,6 +94,8 @@
- #endif
- #endif
-
-+#include <strings.h>
-+
- using namespace ::rtl;
- using namespace ::osl;
-
---- idlc/source/idlcproduce.cxx 18 May 2004 13:41:10 -0000 1.10
-+++ idlc/source/idlcproduce.cxx 19 Aug 2004 11:55:25 -0000 1.10.6.1
-@@ -89,6 +89,8 @@
- #include <errno.h>
- #endif
-
-+#include <strings.h>
-+
- using namespace ::rtl;
- using namespace ::osl;
-
---- i18npool/source/search/textsearch.cxx 17 Jun 2004 12:35:12 -0000 1.5
-+++ i18npool/source/search/textsearch.cxx 7 Oct 2004 15:55:38 -0000 1.5.4.1
-@@ -59,6 +59,8 @@
- *
- ************************************************************************/
-
-+#include <string.h>
-+
- #include "textsearch.hxx"
- #include "levdis.hxx"
- #include <regexp/reclass.hxx>
---- jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx 18 Jan 2005 16:18:41 -0000 1.17
-+++ jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx 9 Mar 2005 16:51:45 -0000 1.13.10.5
-@@ -79,6 +79,11 @@
- #include "jni.h"
- #include "rtl/byteseq.hxx"
- #include "jvmfwk/vendorplugin.h"
-+
-+#ifndef INCLUDED_STRING_H
-+#include <string.h>
-+#define INCLUDED_STRING_H
-+#endif
- #include "util.hxx"
- #include "sunversion.hxx"
- #include "vendorlist.hxx"
---- jvmfwk/source/elements.cxx 16 Dec 2004 11:47:01 -0000 1.14
-+++ jvmfwk/source/elements.cxx 18 Jan 2005 18:47:31 -0000 1.12.10.2
-@@ -71,6 +71,12 @@
- #include "libxml/xpath.h"
- #include "libxml/xpathInternals.h"
- #include "rtl/bootstrap.hxx"
-+
-+#ifndef INCLUDED_STRING_H
-+#include <string.h>
-+#define INCLUDED_STRING_H
-+#endif
-+
- // #define NS_JAVA_FRAMEWORK "http://openoffice.org/2004/java/framework/1.0"
- // #define NS_SCHEMA_INSTANCE "http://www.w3.org/2001/XMLSchema-instance"
-
---- jvmfwk/source/fwkutil.cxx 31 Jan 2005 09:52:11 -0000 1.21
-+++ jvmfwk/source/fwkutil.cxx 9 Mar 2005 16:49:48 -0000 1.17.10.4
-@@ -79,6 +79,10 @@
- #include "framework.hxx"
- #include "fwkutil.hxx"
-
-+#ifndef INCLUDED_STRINGS_H
-+#include <strings.h>
-+#define INCLUDED_STRINGS_H
-+#endif
- using namespace rtl;
- using namespace osl;
-
---- registry/tools/checksingleton.cxx 26 Mar 2003 15:37:48 -0000 1.6
-+++ registry/tools/checksingleton.cxx 25 Aug 2004 12:44:14 -0000 1.6.82.1
-@@ -59,6 +59,7 @@
- *
- ************************************************************************/
- #include <stdio.h>
-+#include <strings.h>
-
- #include <set>
-
---- registry/tools/regcompare.cxx 31 Jan 2005 15:48:37 -0000 1.19
-+++ registry/tools/regcompare.cxx 9 Mar 2005 20:21:53 -0000 1.18.8.2
-@@ -90,6 +90,9 @@
- #ifndef _OSL_FILE_HXX_
- #include <osl/file.hxx>
- #endif
-+#ifndef _SAL_TYPES_H_
-+#include <sal/types.h>
-+#endif
-
- #ifdef SAL_UNX
- #define SEPARATOR '/'
---- bridges/source/remote/iiop/marshal.cxx 21 Apr 2004 13:42:56 -0000 1.4
-+++ bridges/source/remote/iiop/marshal.cxx 29 Aug 2004 15:40:28 -0000 1.4.24.1
-@@ -58,13 +58,20 @@
- *
- *
- ************************************************************************/
-+
- #include <osl/diagnose.h>
-+
- #include <bridges/remote/marshal.hxx>
- #include <bridges/remote/remote.hxx>
- #include <bridges/remote/helper.hxx>
-
- #include "conversion.h"
-
-+#ifndef INCLUDED_STRING_H
-+#include <string.h>
-+#define INCLUDED_STRING_H
-+#endif
-+
- #ifdef major
- #undef major
- #undef minor
---- bridges/source/remote/urp/urp_marshal.hxx 21 Apr 2004 13:45:49 -0000 1.6
-+++ bridges/source/remote/urp/urp_marshal.hxx 29 Aug 2004 15:40:28 -0000 1.6.24.1
-@@ -60,6 +60,7 @@
- ************************************************************************/
- #ifndef _URP_MARSHAL_HXX_
- #define _URP_MARSHAL_HXX_
-+
- #ifndef _RTL_USTRBUF_HXX_
- #include <rtl/ustrbuf.hxx>
- #endif
-@@ -80,6 +81,11 @@
- #include "urp_marshal_decl.hxx"
- #endif
-
-+#ifndef INCLUDED_STRING_H
-+#include <string.h>
-+#define INCLUDED_STRING_H
-+#endif
-+
- struct remote_Interface;
-
- namespace bridges_urp
---- rdbmaker/source/rdbmaker/rdboptions.cxx 17 Apr 2003 10:24:04 -0000 1.4
-+++ rdbmaker/source/rdbmaker/rdboptions.cxx 27 Aug 2004 14:21:42 -0000 1.4.62.1
-@@ -59,6 +59,7 @@
- *
- ************************************************************************/
- #include <stdio.h>
-+#include <string.h>
-
- #include "rdboptions.hxx"
-
diff --git a/patches/64bit/cws-ooo64bit02.2005-04-19.diff b/patches/64bit/cws-ooo64bit02.2005-04-19.diff
deleted file mode 100644
index 01aba63ff..000000000
--- a/patches/64bit/cws-ooo64bit02.2005-04-19.diff
+++ /dev/null
@@ -1,6170 +0,0 @@
-Index: framework/inc/services/documentproperties.hxx
-===================================================================
-RCS file: /cvs/framework/framework/inc/services/documentproperties.hxx,v
-retrieving revision 1.7
-retrieving revision 1.7.22.1
-diff -u -p -u -p -r1.7 -r1.7.22.1
---- framework/inc/services/documentproperties.hxx 8 Sep 2004 14:06:37 -0000 1.7
-+++ framework/inc/services/documentproperties.hxx 21 Jan 2005 15:29:49 -0000 1.7.22.1
-@@ -726,7 +726,8 @@ class DocumentProperties : public css::l
- void impl_writeToStream( SvStream& aStream, const sal_uInt16& nValue );
- void impl_writeToStream( SvStream& aStream, const sal_Int32& nValue );
- void impl_writeToStream( SvStream& aStream, const sal_uInt32& nValue );
--
-+ void impl_writeToStream( SvStream& aStream, const sal_Int64& nValue );
-+ void impl_writeToStream( SvStream& aStream, const sal_uInt64& nValue );
- /*-****************************************************************************************************//**
- @short convert a format-ID to right MIMEType
- @descr Use "aStaticConvertTable[]" to do that!
---- framework/source/services/documentproperties.cxx 8 Sep 2004 14:11:36 -0000 1.20
-+++ framework/source/services/documentproperties.cxx 21 Jan 2005 15:31:01 -0000 1.20.22.1
-@@ -2190,6 +2190,30 @@ void DocumentProperties::impl_writeToStr
- //******************************************************************************************************************************
- // private method
- //******************************************************************************************************************************
-+void DocumentProperties::impl_writeToStream( SvStream& aStream ,
-+ const sal_Int64& nValue )
-+{
-+ aStream << nValue;
-+ #ifdef ENABLE_STREAMCHECK
-+ impldbg_checkSvStream( aStream, "impl_writeToStream( int64 )" );
-+ #endif
-+}
-+
-+//******************************************************************************************************************************
-+// private method
-+//******************************************************************************************************************************
-+void DocumentProperties::impl_writeToStream( SvStream& aStream ,
-+ const sal_uInt64& nValue )
-+{
-+ aStream << nValue;
-+ #ifdef ENABLE_STREAMCHECK
-+ impldbg_checkSvStream( aStream, "impl_writeToStream( unsigned int64 )" );
-+ #endif
-+}
-+
-+//******************************************************************************************************************************
-+// private method
-+//******************************************************************************************************************************
- OUString DocumentProperties::impl_FormatID2MIMEType( sal_uInt32 nFormatID ) const
- {
- const int nCount = sizeof( aStaticConvertTable ) / sizeof( tIMPL_ConverterItem );
-Index: framework/source/layoutmanager/layoutmanager.cxx
-===================================================================
-RCS file: /cvs/framework/framework/source/layoutmanager/layoutmanager.cxx,v
-retrieving revision 1.24
-retrieving revision 1.16.14.2
-diff -u -p -u -p -r1.24 -r1.16.14.2
---- framework/source/layoutmanager/layoutmanager.cxx 4 Mar 2005 00:14:17 -0000 1.24
-+++ framework/source/layoutmanager/layoutmanager.cxx 9 Mar 2005 16:23:01 -0000 1.16.14.2
-@@ -1499,7 +1499,7 @@ void LayoutManager::implts_findNextDocki
- sal_Int32 nFreeRowColPixelPos( 0 );
- sal_Int32 nMaxSpace( 0 );
- sal_Int32 nNeededSpace( 0 );
-- sal_Int32 nTopDockingAreaSize( 0 );
-+ long nTopDockingAreaSize( 0 );
- sal_Bool bFoundRowColumn( sal_False );
-
- if (( DockingArea == DockingArea_DOCKINGAREA_TOP ) ||
-@@ -2016,7 +2016,7 @@ void LayoutManager::implts_getDockingAre
- return rMovedElementRect;
- else
- {
-- sal_Int32 nSpace( 0 );
-+ long nSpace( 0 );
- ::Rectangle aFrontDockingRect( rMovedElementRect );
- for ( sal_uInt32 i = 0; i < aRowColumnWindowData.aRowColumnWindows.size(); i++ )
- {
-@@ -2164,11 +2164,11 @@ LayoutManager::implts_determineDockingOp
- sal_Bool bHorizontalDockArea( ( eDockingArea == DockingArea_DOCKINGAREA_TOP ) ||
- ( eDockingArea == DockingArea_DOCKINGAREA_BOTTOM ));
-
-- sal_Int32 nTopDockingAreaSize( implts_getTopBottomDockingAreaSizes().Width() );
-- sal_Int32 nBottomDockingAreaSize( implts_getTopBottomDockingAreaSizes().Height() );
-+ long nTopDockingAreaSize( implts_getTopBottomDockingAreaSizes().Width() );
-+ long nBottomDockingAreaSize( implts_getTopBottomDockingAreaSizes().Height() );
-
- ::Size aStatusBarSize( implts_getStatusBarSize() );
-- sal_Int32 nMaxLeftRightDockAreaSize = rContainerWinSize.Height() -
-+ long nMaxLeftRightDockAreaSize = rContainerWinSize.Height() -
- nTopDockingAreaSize -
- nBottomDockingAreaSize -
- aStatusBarSize.Height();
-@@ -2176,13 +2176,12 @@ LayoutManager::implts_determineDockingOp
- ::Rectangle aTrackingRect( rTrackingRect );
- if ( bHorizontalDockArea )
- {
-- sal_Int32 nPosX( std::max( sal_Int32( rTrackingRect.Left()), sal_Int32( 0 )));
-+ long nPosX( std::max( sal_Int32( rTrackingRect.Left()), sal_Int32( 0 )));
- if (( nPosX + rTrackingRect.getWidth()) > rContainerWinSize.Width() )
- nPosX = std::min( nPosX,
-- std::max( sal_Int32( rContainerWinSize.Width() - rTrackingRect.getWidth() ),
-- sal_Int32( 0 )));
-+ std::max( rContainerWinSize.Width() - rTrackingRect.getWidth() , 0L ));
-
-- sal_Int32 nSize = std::min( rContainerWinSize.Width(), rTrackingRect.getWidth() );
-+ long nSize = std::min( rContainerWinSize.Width(), rTrackingRect.getWidth() );
-
- aTrackingRect.SetPos( ::Point( nPosX, rRowColumnRect.Top() ));
- aTrackingRect.setWidth( nSize );
-@@ -2194,16 +2193,15 @@ LayoutManager::implts_determineDockingOp
- }
- else
- {
-- sal_Int32 nMaxDockingAreaHeight = std::max( sal_Int32( 0 ),
-- sal_Int32( nMaxLeftRightDockAreaSize ));
-+ long nMaxDockingAreaHeight = std::max( 0L, nMaxLeftRightDockAreaSize );
-
-- sal_Int32 nPosY( std::max( sal_Int32( aTrackingRect.Top()), sal_Int32( nTopDockingAreaSize )));
-+ long nPosY( std::max( aTrackingRect.Top(), nTopDockingAreaSize ));
- if (( nPosY + aTrackingRect.getHeight()) > ( nTopDockingAreaSize + nMaxDockingAreaHeight ))
- nPosY = std::min( nPosY,
-- std::max( sal_Int32( nTopDockingAreaSize + ( nMaxDockingAreaHeight - aTrackingRect.getHeight() )),
-- sal_Int32( nTopDockingAreaSize )));
-+ std::max( nTopDockingAreaSize + ( nMaxDockingAreaHeight - aTrackingRect.getHeight() ),
-+ nTopDockingAreaSize ));
-
-- sal_Int32 nSize = std::min( nMaxDockingAreaHeight, aTrackingRect.getHeight() );
-+ long nSize = std::min( nMaxDockingAreaHeight, aTrackingRect.getHeight() );
-
- aTrackingRect.SetPos( ::Point( rRowColumnRect.Left(), nPosY ));
- aTrackingRect.setWidth( rRowColumnRect.getWidth() );
-@@ -2278,12 +2276,12 @@ void LayoutManager::implts_calcDockingPo
- Reference< css::awt::XWindow > xDockingAreaWindow;
- ::Rectangle aTrackingRect( rTrackingRect );
- ::com::sun::star::ui::DockingArea eDockedArea( (::com::sun::star::ui::DockingArea)rUIElement.m_aDockedData.m_nDockedArea );
-- sal_Int32 nTopDockingAreaSize( implts_getTopBottomDockingAreaSizes().Width() );
-- sal_Int32 nBottomDockingAreaSize( implts_getTopBottomDockingAreaSizes().Height() );
-+ long nTopDockingAreaSize( implts_getTopBottomDockingAreaSizes().Width() );
-+ long nBottomDockingAreaSize( implts_getTopBottomDockingAreaSizes().Height() );
- sal_Bool bHorizontalDockArea( ( eDockedArea == DockingArea_DOCKINGAREA_TOP ) ||
- ( eDockedArea == DockingArea_DOCKINGAREA_BOTTOM ));
- ::Size aStatusBarSize( implts_getStatusBarSize() );
-- sal_Int32 nMaxLeftRightDockAreaSize = aContainerWinSize.Height() -
-+ long nMaxLeftRightDockAreaSize = aContainerWinSize.Height() -
- nTopDockingAreaSize -
- nBottomDockingAreaSize -
- aStatusBarSize.Height();
-@@ -2378,8 +2376,7 @@ void LayoutManager::implts_calcDockingPo
- {
- if ( bHorizontalDockArea )
- {
-- sal_Int32 nSize = ::std::max( sal_Int32( 0 ), std::min( sal_Int32( aContainerWinSize.Width() - aWindowRect.Left() ),
-- sal_Int32( aTrackingRect.getWidth() )));
-+ long nSize = ::std::max( 0L, std::min( aContainerWinSize.Width() - aWindowRect.Left(), aTrackingRect.getWidth() ));
- if ( nSize == 0 )
- nSize = aWindowRect.getWidth();
-
-@@ -2392,9 +2389,8 @@ void LayoutManager::implts_calcDockingPo
- }
- else
- {
-- sal_Int32 nSize = ::std::max( sal_Int32( 0 ), std::min( sal_Int32(
-- nTopDockingAreaSize + nMaxLeftRightDockAreaSize - aWindowRect.Top() ),
-- sal_Int32( aTrackingRect.getHeight() )));
-+ long nSize = ::std::max( 0L, std::min( nTopDockingAreaSize + nMaxLeftRightDockAreaSize - aWindowRect.Top(),
-+ aTrackingRect.getHeight() ));
- if ( nSize == 0 )
- nSize = aWindowRect.getHeight();
-
-@@ -2415,8 +2411,7 @@ void LayoutManager::implts_calcDockingPo
- {
- if ( bHorizontalDockArea )
- {
-- sal_Int32 nSize = ::std::max( sal_Int32( 0 ), std::min( sal_Int32(( aContainerWinSize.Width() ) - aWindowRect.Right() ),
-- sal_Int32( aTrackingRect.getWidth() )));
-+ long nSize = ::std::max( 0L, std::min( aContainerWinSize.Width() - aWindowRect.Right(), aTrackingRect.getWidth() ));
- if ( nSize == 0 )
- {
- aUIElementRect.SetPos( ::Point( aContainerWinSize.Width() - aTrackingRect.getWidth(), aWindowRect.Top() ));
-@@ -2435,8 +2430,8 @@ void LayoutManager::implts_calcDockingPo
- }
- else
- {
-- sal_Int32 nSize = ::std::max( sal_Int32( 0 ), std::min( sal_Int32( nTopDockingAreaSize + nMaxLeftRightDockAreaSize - aWindowRect.Bottom() ),
-- sal_Int32( aTrackingRect.getHeight() )));
-+ long nSize = ::std::max( 0L, std::min( nTopDockingAreaSize + nMaxLeftRightDockAreaSize - aWindowRect.Bottom(),
-+ aTrackingRect.getHeight() ));
- aUIElementRect.SetPos( ::Point( aWindowRect.Left(), aWindowRect.Bottom() ));
- aUIElementRect.SetSize( ::Size( aWindowRect.getWidth(), nSize ));
-
-@@ -2532,14 +2527,12 @@ void LayoutManager::implts_calcDockingPo
-
- if ( bHorizontalDockArea )
- {
-- sal_Int32 nPosX( std::max( sal_Int32( rTrackingRect.Left()), sal_Int32( 0 )));
-+ long nPosX( std::max( rTrackingRect.Left(), 0L ));
- if (( nPosX + rTrackingRect.getWidth()) > aContainerWinSize.Width() )
-- nPosX = std::min( nPosX,
-- std::max( sal_Int32( aContainerWinSize.Width() - rTrackingRect.getWidth() ),
-- sal_Int32( 0 )));
-+ nPosX = std::min( nPosX, std::max( aContainerWinSize.Width() - rTrackingRect.getWidth(), 0L ));
-
-- sal_Int32 nSize = std::min( aContainerWinSize.Width(), rTrackingRect.getWidth() );
-- sal_Int32 nDockHeight = std::max( aDockingAreaRect.getHeight(), sal_Int32( 0 ));
-+ long nSize = std::min( aContainerWinSize.Width(), rTrackingRect.getWidth() );
-+ long nDockHeight = std::max( aDockingAreaRect.getHeight(), 0L );
- if ( nDockHeight == 0 )
- {
- sal_Int32 nPosY( std::max( aDockingAreaRect.Top(), aDockingAreaRect.Bottom() ));
-@@ -2577,17 +2570,16 @@ void LayoutManager::implts_calcDockingPo
- }
- else
- {
-- sal_Int32 nMaxDockingAreaHeight = std::max( sal_Int32( 0 ),
-- sal_Int32( nMaxLeftRightDockAreaSize ));
-+ long nMaxDockingAreaHeight = std::max( 0L, nMaxLeftRightDockAreaSize );
-
-- sal_Int32 nPosY( std::max( sal_Int32( aTrackingRect.Top()), sal_Int32( nTopDockingAreaSize )));
-+ long nPosY( std::max( aTrackingRect.Top(), nTopDockingAreaSize ) );
- if (( nPosY + aTrackingRect.getHeight()) > ( nTopDockingAreaSize + nMaxDockingAreaHeight ))
- nPosY = std::min( nPosY,
-- std::max( sal_Int32( nTopDockingAreaSize + ( nMaxDockingAreaHeight - aTrackingRect.getHeight() )),
-- sal_Int32( nTopDockingAreaSize )));
-+ std::max( nTopDockingAreaSize + ( nMaxDockingAreaHeight - aTrackingRect.getHeight() ),
-+ nTopDockingAreaSize ));
-
-- sal_Int32 nSize = std::min( nMaxDockingAreaHeight, aTrackingRect.getHeight() );
-- sal_Int32 nDockWidth = std::max( aDockingAreaRect.getWidth(), sal_Int32( 0 ));
-+ long nSize = std::min( nMaxDockingAreaHeight, aTrackingRect.getHeight() );
-+ long nDockWidth = std::max( aDockingAreaRect.getWidth(), 0L );
- if ( nDockWidth == 0 )
- {
- sal_Int32 nPosX( std::max( aDockingAreaRect.Left(), aDockingAreaRect.Right() ));
-@@ -4821,7 +4813,7 @@ void LayoutManager::implts_doLayout( sal
- // Position the status bar
- if ( aStatusBarSize.Height() > 0 )
- {
-- implts_setStatusBarPosSize( ::Point( 0, std::max(( aContainerSize.Height() ), sal_Int32( 0 ))),
-+ implts_setStatusBarPosSize( ::Point( 0, std::max(( (sal_Int32) aContainerSize.Height() ), sal_Int32( 0 ))),
- ::Size( aContainerSize.Width(),aStatusBarSize.Height() ));
- }
-
-@@ -4871,8 +4863,8 @@ void LayoutManager::implts_calcWindowPos
- {
- sal_Int32 nDiff( 0 );
- sal_Int32 nSpace( rRowColumnWindowData.nSpace );
-- sal_Int32 nTopDockingAreaSize;
-- sal_Int32 nBottomDockingAreaSize;
-+ long nTopDockingAreaSize;
-+ long nBottomDockingAreaSize;
- sal_Int32 nContainerClientSize;
-
- if ( rRowColumnWindowData.aRowColumnWindows.size() == 0 )
-@@ -5214,7 +5206,7 @@ void LayoutManager::implts_setDockingAre
- aRectangle.Height - aInfo.TopInset - aInfo.BottomInset );
- ::Size aStatusBarSize = implts_getStatusBarSize();
-
-- sal_Int32 nLeftRightDockingAreaHeight( aContainerClientSize.Height );
-+ long nLeftRightDockingAreaHeight( aContainerClientSize.Height );
- if ( rBorderSpace.Y >= 0 )
- {
- // Top docking area window
-@@ -5230,8 +5222,8 @@ void LayoutManager::implts_setDockingAre
- if ( rBorderSpace.Height >= 0 )
- {
- // Bottom docking area window
-- sal_Int32 nBottomPos = std::max( sal_Int32( aContainerClientSize.Height - rBorderSpace.Height - aStatusBarSize.Height() ), sal_Int32( 0 ));
-- sal_Int32 nHeight = ( nBottomPos == 0 ) ? 0 : rBorderSpace.Height;
-+ long nBottomPos = std::max( aContainerClientSize.Height - rBorderSpace.Height - aStatusBarSize.Height(), 0L );
-+ long nHeight = ( nBottomPos == 0 ) ? 0L : rBorderSpace.Height;
-
- ReadGuard aReadLock( m_aLock );
- Reference< css::awt::XWindow > xDockAreaWindow( m_xDockAreaWindows[DockingArea_DOCKINGAREA_BOTTOM] );
-@@ -5251,7 +5243,7 @@ void LayoutManager::implts_setDockingAre
- aReadLock.unlock();
-
- // We also have to change our right docking area window if the top or bottom area has changed. They have a higher priority!
-- sal_Int32 nHeight = std::max( sal_Int32( 0 ), sal_Int32( nLeftRightDockingAreaHeight ));
-+ long nHeight = std::max( 0L, nLeftRightDockingAreaHeight );
-
- xDockAreaWindow->setPosSize( 0, rBorderSpace.Y, rBorderSpace.X, nHeight, css::awt::PosSize::POSSIZE );
- xDockAreaWindow->setVisible( sal_True );
-@@ -5264,9 +5256,9 @@ void LayoutManager::implts_setDockingAre
- aReadLock.unlock();
-
- // We also have to change our right docking area window if the top or bottom area has changed. They have a higher priority!
-- sal_Int32 nLeftPos = std::max( sal_Int32( 0 ), sal_Int32( aContainerClientSize.Width - rBorderSpace.Width ));
-- sal_Int32 nHeight = std::max( sal_Int32( 0 ), sal_Int32( nLeftRightDockingAreaHeight ));
-- sal_Int32 nWidth = ( nLeftPos == 0 ) ? 0 : rBorderSpace.Width;
-+ long nLeftPos = std::max( 0, aContainerClientSize.Width - rBorderSpace.Width );
-+ long nHeight = std::max( 0L, nLeftRightDockingAreaHeight );
-+ long nWidth = ( nLeftPos == 0 ) ? 0L : rBorderSpace.Width;
-
- xDockAreaWindow->setPosSize( nLeftPos, rBorderSpace.Y, nWidth, nHeight, css::awt::PosSize::POSSIZE );
- xDockAreaWindow->setVisible( sal_True );
-@@ -5275,7 +5267,7 @@ void LayoutManager::implts_setDockingAre
- // Position the status bar
- if ( aStatusBarSize.Height() > 0 )
- {
-- implts_setStatusBarPosSize( ::Point( 0, std::max(( aContainerClientSize.Height - aStatusBarSize.Height() ), sal_Int32( 0 ))),
-+ implts_setStatusBarPosSize( ::Point( 0, std::max((sal_Int32) (aContainerClientSize.Height - aStatusBarSize.Height()), sal_Int32( 0 ))),
- ::Size( aContainerClientSize.Width, aStatusBarSize.Height() ));
- }
- }
-Index: framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx
-===================================================================
-RCS file: /cvs/framework/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx,v
-retrieving revision 1.13
-retrieving revision 1.4.14.4
-diff -u -p -u -p -r1.13 -r1.4.14.4
---- framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx 1 Mar 2005 19:40:15 -0000 1.13
-+++ framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx 9 Mar 2005 16:19:18 -0000 1.4.14.4
-@@ -914,7 +914,7 @@ void SAL_CALL ModuleUIConfigurationManag
- Reference< XPropertySet > xPropSet( m_xUserConfigStorage, UNO_QUERY );
- if ( xPropSet.is() )
- {
-- long nOpenMode;
-+ sal_Int32 nOpenMode;
- Any a = xPropSet->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "OpenMode" )));
- if ( a >>= nOpenMode )
- m_bReadOnly = !( nOpenMode & ElementModes::WRITE );
-Index: framework/source/uiconfiguration/uiconfigurationmanager.cxx
-===================================================================
-RCS file: /cvs/framework/framework/source/uiconfiguration/uiconfigurationmanager.cxx,v
-retrieving revision 1.12
-retrieving revision 1.4.14.4
-diff -u -p -u -p -r1.12 -r1.4.14.4
---- framework/source/uiconfiguration/uiconfigurationmanager.cxx 1 Mar 2005 19:40:44 -0000 1.12
-+++ framework/source/uiconfiguration/uiconfigurationmanager.cxx 9 Mar 2005 16:19:09 -0000 1.4.14.4
-@@ -1243,7 +1243,7 @@ void SAL_CALL UIConfigurationManager::se
- {
- try
- {
-- long nOpenMode;
-+ sal_Int32 nOpenMode;
- Any a = xPropSet->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "OpenMode" )));
- if ( a >>= nOpenMode )
- m_bReadOnly = !( nOpenMode & ElementModes::WRITE );
-Index: so3/source/persist/transprt.cxx
-===================================================================
-RCS file: /cvs/oi/so3/source/persist/transprt.cxx,v
-retrieving revision 1.5
-retrieving revision 1.5.220.1
-diff -u -p -u -p -r1.5 -r1.5.220.1
---- so3/source/persist/transprt.cxx 20 Nov 2001 17:16:56 -0000 1.5
-+++ so3/source/persist/transprt.cxx 21 Jul 2004 18:50:24 -0000 1.5.220.1
-@@ -1130,7 +1130,7 @@ sal_Int32 SAL_CALL UcbTransportInputStre
- sal_Int32 nSize = 0;
- while (nSize < nBytesToRead)
- {
-- ULONG nCount = 0;
-+ sal_Size nCount = 0;
- ErrCode nError = m_xLockBytes->ReadAt (
- m_nPosition,
- rData.getArray() + nSize,
-@@ -1138,8 +1138,8 @@ sal_Int32 SAL_CALL UcbTransportInputStre
- &nCount);
- if (nError != ERRCODE_NONE && nError != ERRCODE_IO_PENDING)
- throw IOException();
-- m_nPosition += nCount;
-- nSize += nCount;
-+ m_nPosition += svstream_Size_to_u32( nCount );
-+ nSize += svstream_Size_to_u32( nCount );
- if (nError == ERRCODE_NONE && nCount == 0)
- break;
- }
-@@ -1159,7 +1159,7 @@ sal_Int32 SAL_CALL UcbTransportInputStre
- throw NotConnectedException();
-
- rData.realloc(nMaxBytesToRead);
-- ULONG nCount;
-+ sal_Size nCount;
- ErrCode nError;
- do
- {
-@@ -1170,12 +1170,12 @@ sal_Int32 SAL_CALL UcbTransportInputStre
- &nCount);
- if (nError != ERRCODE_NONE && nError != ERRCODE_IO_PENDING)
- throw IOException();
-- m_nPosition += nCount;
-+ m_nPosition += svstream_Size_to_u32( nCount );
- }
- while (nCount == 0 && nError == ERRCODE_IO_PENDING);
-
-- rData.realloc(sal_Int32(nCount));
-- return sal_Int32(nCount);
-+ rData.realloc(sal_Int32(svstream_Size_to_u32(nCount)));
-+ return sal_Int32(svstream_Size_to_u32(nCount));
- }
-
- /*
-Index: sw/inc/doc.hxx
-===================================================================
-RCS file: /cvs/sw/sw/inc/doc.hxx,v
-retrieving revision 1.101
-retrieving revision 1.97.26.2
-diff -u -p -u -p -r1.101 -r1.97.26.2
---- sw/inc/doc.hxx 21 Feb 2005 16:01:55 -0000 1.101
-+++ sw/inc/doc.hxx 10 Mar 2005 01:14:25 -0000 1.97.26.2
-@@ -1100,7 +1100,7 @@ public:
- // eine erzeugte Liste aller Felder mit uebergegeben werden.
- // (ist die Adresse != 0, und der Pointer == 0 wird eine neue
- // Liste returnt.)
-- void FldsToCalc( SwCalc& rCalc, sal_uInt32 nLastNd = ULONG_MAX,
-+ void FldsToCalc( SwCalc& rCalc, ULONG nLastNd = ULONG_MAX,
- sal_uInt16 nLastCntnt = USHRT_MAX );
- void FldsToCalc( SwCalc& rCalc, const _SetGetExpFld& rToThisFld );
- void FldsToExpand( SwHash**& ppTbl, sal_uInt16& rTblSize,
-@@ -1529,7 +1529,7 @@ public:
- const SwTOXBase& rTOX,
- const SfxItemSet* pSet = 0,
- sal_Bool bExpand = sal_False );
-- const SwTOXBaseSection* InsertTableOf( sal_uInt32 nSttNd, sal_uInt32 nEndNd,
-+ const SwTOXBaseSection* InsertTableOf( ULONG nSttNd, ULONG nEndNd,
- const SwTOXBase& rTOX,
- const SfxItemSet* pSet = 0 );
- const SwTOXBase* GetCurTOX( const SwPosition& rPos ) const;
-@@ -1825,7 +1825,7 @@ public:
- //Einfuegen einer Beschriftung - falls ein FlyFormat erzeugt wird, so
- // returne dieses.
- SwFlyFrmFmt* InsertLabel( const SwLabelType eType, const String &rTxt, const String& rSeparator,
-- const sal_Bool bBefore, const sal_uInt16 nId, const sal_uInt32 nIdx,
-+ const sal_Bool bBefore, const sal_uInt16 nId, const ULONG nIdx,
- const String& rCharacterStyle,
- const sal_Bool bCpyBrd = sal_True );
- SwFlyFrmFmt* InsertDrawLabel(
-Index: sw/inc/docufld.hxx
-===================================================================
-RCS file: /cvs/sw/sw/inc/docufld.hxx,v
-retrieving revision 1.7
-retrieving revision 1.7.76.1
-diff -u -p -u -p -r1.7 -r1.7.76.1
---- sw/inc/docufld.hxx 8 Sep 2004 14:49:42 -0000 1.7
-+++ sw/inc/docufld.hxx 21 Jan 2005 16:54:24 -0000 1.7.76.1
-@@ -231,7 +231,7 @@ class SwAuthorFieldType : public SwField
- public:
- SwAuthorFieldType();
-
-- String Expand(ULONG) const;
-+ String Expand(sal_uInt32) const;
- virtual SwFieldType* Copy() const;
- };
-
-@@ -266,7 +266,7 @@ class SwFileNameFieldType : public SwFie
- public:
- SwFileNameFieldType(SwDoc*);
-
-- String Expand(ULONG) const;
-+ String Expand(sal_uInt32) const;
- virtual SwFieldType* Copy() const;
- };
-
-@@ -301,7 +301,7 @@ class SwTemplNameFieldType : public SwFi
- public:
- SwTemplNameFieldType(SwDoc*);
-
-- String Expand(ULONG) const;
-+ String Expand(sal_uInt32) const;
- virtual SwFieldType* Copy() const;
- };
-
-Index: sw/inc/ndindex.hxx
-===================================================================
-RCS file: /cvs/sw/sw/inc/ndindex.hxx,v
-retrieving revision 1.2
-retrieving revision 1.2.760.1
-diff -u -p -u -p -r1.2 -r1.2.760.1
---- sw/inc/ndindex.hxx 28 Sep 2001 07:03:31 -0000 1.2
-+++ sw/inc/ndindex.hxx 9 Sep 2004 09:53:00 -0000 1.2.760.1
-@@ -94,8 +94,8 @@ class SwNodeIndex
-
- public:
- SwNodeIndex( SwNodes& rNds, ULONG nIdx = 0 );
-- SwNodeIndex( const SwNodeIndex &, long nDiff = 0 );
-- SwNodeIndex( const SwNode&, long nDiff = 0 );
-+ SwNodeIndex( const SwNodeIndex &, sal_Int32 nDiff = 0 );
-+ SwNodeIndex( const SwNode&, sal_Int32 nDiff = 0 );
- ~SwNodeIndex() { Remove(); }
-
- inline ULONG operator++();
-@@ -133,7 +133,7 @@ public:
-
- // ermoeglicht Zuweisungen ohne Erzeugen eines temporaeren Objektes
- SwNodeIndex& Assign( SwNodes& rNds, ULONG );
-- SwNodeIndex& Assign( const SwNode& rNd, long nOffset = 0 );
-+ SwNodeIndex& Assign( const SwNode& rNd, sal_Int32 nOffset = 0 );
-
- // Herausgabe des Pointers auf das NodesArray,
- inline const SwNodes& GetNodes() const;
-Index: sw/inc/ndtxt.hxx
-===================================================================
-RCS file: /cvs/sw/sw/inc/ndtxt.hxx,v
-retrieving revision 1.35
-retrieving revision 1.25.22.4
-diff -u -p -u -p -r1.35 -r1.25.22.4
---- sw/inc/ndtxt.hxx 22 Feb 2005 08:16:28 -0000 1.35
-+++ sw/inc/ndtxt.hxx 10 Mar 2005 01:14:17 -0000 1.25.22.4
-@@ -259,7 +259,7 @@ public:
- void Replace( const SwIndex& rStart, xub_Unicode cCh );
- void Replace( const SwIndex& rStart, xub_StrLen nLen, const XubString& rText );
- void ReplaceTextOnly( xub_StrLen nPos, xub_StrLen nLen, const XubString& rText,
-- const ::com::sun::star::uno::Sequence<long>& rOffsets );
-+ const ::com::sun::star::uno::Sequence<sal_Int32>& rOffsets );
-
- // virtuelle Methoden aus dem CntntNode
- virtual SwCntntFrm *MakeFrm();
-Index: sw/inc/undobj.hxx
-===================================================================
-RCS file: /cvs/sw/sw/inc/undobj.hxx,v
-retrieving revision 1.20
-retrieving revision 1.9.64.4
-diff -u -p -u -p -r1.20 -r1.9.64.4
---- sw/inc/undobj.hxx 25 Jan 2005 14:41:38 -0000 1.20
-+++ sw/inc/undobj.hxx 10 Mar 2005 01:16:36 -0000 1.9.64.4
-@@ -1730,7 +1730,7 @@ public:
- virtual void Repeat( SwUndoIter& rUndoIter );
-
- void AddChanges( const SwTxtNode& rTNd, xub_StrLen nStart, xub_StrLen nLen,
-- ::com::sun::star::uno::Sequence <long>& rOffsets );
-+ ::com::sun::star::uno::Sequence <sal_Int32>& rOffsets );
- BOOL HasData() const {return 0 != pData; }
- };
-
-Index: sw/inc/viewsh.hxx
-===================================================================
-RCS file: /cvs/sw/sw/inc/viewsh.hxx,v
-retrieving revision 1.44
-retrieving revision 1.44.66.1
-diff -u -p -u -p -r1.44 -r1.44.66.1
---- sw/inc/viewsh.hxx 4 Oct 2004 19:01:08 -0000 1.44
-+++ sw/inc/viewsh.hxx 21 Jan 2005 16:55:43 -0000 1.44.66.1
-@@ -338,7 +338,7 @@ public:
-
- //Wird intern fuer die Shell gerufen die Druckt. Formatiert die Seiten.
- void CalcPagesForPrint( sal_uInt16 nMax, SfxProgress* pProgress = 0,
-- const String* pStr = NULL, sal_uInt32 nMergeAct = 0, sal_uInt32 nMergeCnt = 0 );
-+ const String* pStr = NULL, ULONG nMergeAct = 0, ULONG nMergeCnt = 0 );
-
- //All about fields.
- void UpdateFlds(sal_Bool bCloseDB = sal_False);
-Index: sw/source/core/doc/docedt.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/core/doc/docedt.cxx,v
-retrieving revision 1.22
-retrieving revision 1.21.124.2
-diff -u -p -u -p -r1.22 -r1.21.124.2
---- sw/source/core/doc/docedt.cxx 21 Jan 2005 10:28:58 -0000 1.22
-+++ sw/source/core/doc/docedt.cxx 10 Mar 2005 01:46:07 -0000 1.21.124.2
-@@ -1718,13 +1718,13 @@ uno::Any SwDoc::Spell( SwPaM& rPaM,
- pSttPos->nNode.GetNode().GetTxtNode(), pSttPos->nContent,
- pEndPos->nNode.GetNode().GetTxtNode(), pEndPos->nContent );
-
-- sal_uInt32 nCurrNd = pSttPos->nNode.GetIndex();
-- sal_uInt32 nEndNd = pEndPos->nNode.GetIndex();
-+ ULONG nCurrNd = pSttPos->nNode.GetIndex();
-+ ULONG nEndNd = pEndPos->nNode.GetIndex();
-
- if( nCurrNd <= nEndNd )
- {
- SwCntntFrm* pCntFrm;
-- sal_uInt32 nCount = nEndNd - nCurrNd;
-+ ULONG nCount = nEndNd - nCurrNd;
- sal_Bool bGoOn = sal_True;
- while( bGoOn )
- {
-@@ -2246,7 +2246,7 @@ sal_Bool SwDoc::DelFullPara( SwPaM& rPam
-
- /* #i9185# This whould lead to a segmentation fault if not catched
- above. */
-- sal_uInt32 nNextNd = rEnd.nNode.GetIndex() + 1;
-+ ULONG nNextNd = rEnd.nNode.GetIndex() + 1;
- SwTableNode* pTblNd = aNodes[ nNextNd ]->GetTableNode();
-
- if( pTblNd && pNd->IsCntntNode() )
-Index: sw/source/core/doc/docfld.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/core/doc/docfld.cxx,v
-retrieving revision 1.22
-retrieving revision 1.22.66.1
-diff -u -p -u -p -r1.22 -r1.22.66.1
---- sw/source/core/doc/docfld.cxx 4 Oct 2004 19:02:51 -0000 1.22
-+++ sw/source/core/doc/docfld.cxx 21 Jan 2005 16:56:33 -0000 1.22.66.1
-@@ -2221,7 +2221,7 @@ void SwDoc::SetFixFields( BOOL bOnlyTime
- ResetModified();
- }
-
--BOOL SwDoc::SetFieldsDirty( BOOL b, const SwNode* pChk, ULONG nLen )
-+BOOL SwDoc::SetFieldsDirty( BOOL b, const SwNode* pChk, sal_uInt32 nLen )
- {
- // teste ggfs. mal, ob die angegbenen Nodes ueberhaupt Felder beinhalten.
- // wenn nicht, braucht das Flag nicht veraendert werden.
-Index: sw/source/core/doc/doclay.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/core/doc/doclay.cxx,v
-retrieving revision 1.32
-retrieving revision 1.29.46.2
-diff -u -p -u -p -r1.32 -r1.29.46.2
---- sw/source/core/doc/doclay.cxx 1 Mar 2005 15:23:43 -0000 1.32
-+++ sw/source/core/doc/doclay.cxx 10 Mar 2005 01:46:19 -0000 1.29.46.2
-@@ -1337,7 +1337,7 @@ void lcl_CpyAttr( SfxItemSet &rNewSet, c
-
-
- SwFlyFrmFmt* SwDoc::InsertLabel( const SwLabelType eType, const String &rTxt, const String& rSeparator,
-- const sal_Bool bBefore, const sal_uInt16 nId, const sal_uInt32 nNdIdx,
-+ const sal_Bool bBefore, const sal_uInt16 nId, const ULONG nNdIdx,
- const String& rCharacterStyle,
- const sal_Bool bCpyBrd )
- {
-@@ -1390,7 +1390,7 @@ SwFlyFrmFmt* SwDoc::InsertLabel( const S
- {
- SwStartNode *pSttNd = GetNodes()[nNdIdx]->GetStartNode();
- ASSERT( pSttNd, "Kein StartNode in InsertLabel." );
-- sal_uInt32 nNode;
-+ ULONG nNode;
- if( bBefore )
- {
- nNode = pSttNd->GetIndex();
-Index: sw/source/core/docnode/ndindex.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/core/docnode/ndindex.cxx,v
-retrieving revision 1.2
-retrieving revision 1.2.574.1
-diff -u -p -u -p -r1.2 -r1.2.574.1
---- sw/source/core/docnode/ndindex.cxx 17 Apr 2003 13:56:15 -0000 1.2
-+++ sw/source/core/docnode/ndindex.cxx 9 Sep 2004 09:53:02 -0000 1.2.574.1
-@@ -106,7 +106,7 @@ SwNodeIndex::SwNodeIndex( SwNodes& rNds,
- }
-
-
--SwNodeIndex::SwNodeIndex( const SwNodeIndex& rIdx, long nDiff )
-+SwNodeIndex::SwNodeIndex( const SwNodeIndex& rIdx, sal_Int32 nDiff )
- : pNext( 0 ), pPrev( 0 )
- {
- if( nDiff )
-@@ -121,7 +121,7 @@ SwNodeIndex::SwNodeIndex( const SwNodeIn
- }
-
-
--SwNodeIndex::SwNodeIndex( const SwNode& rNd, long nDiff )
-+SwNodeIndex::SwNodeIndex( const SwNode& rNd, sal_Int32 nDiff )
- : pNext( 0 ), pPrev( 0 )
- {
- if( nDiff )
-@@ -180,7 +180,7 @@ SwNodeIndex& SwNodeIndex::Assign( SwNode
- return *this;
- }
-
--SwNodeIndex& SwNodeIndex::Assign( const SwNode& rNd, long nOffset )
-+SwNodeIndex& SwNodeIndex::Assign( const SwNode& rNd, sal_Int32 nOffset )
- {
- if( &pNd->GetNodes() != &rNd.GetNodes() )
- {
-Index: sw/source/core/layout/flycnt.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/core/layout/flycnt.cxx,v
-retrieving revision 1.46
-retrieving revision 1.45.48.2
-diff -u -p -u -p -r1.46 -r1.45.48.2
---- sw/source/core/layout/flycnt.cxx 27 Jan 2005 11:11:12 -0000 1.46
-+++ sw/source/core/layout/flycnt.cxx 10 Mar 2005 01:55:28 -0000 1.45.48.2
-@@ -868,7 +868,7 @@ ULONG MA_FASTCALL lcl_FindCntDiff( const
- {
- //Jetzt die Entfernung zwischen den beiden Punkten berechnen.
- //'Delta' X^2 + 'Delta'Y^2 = 'Entfernung'^2
-- ULONG dX = Max( pCnt->Frm().Left(), rPt.X() ) -
-+ sal_uInt32 dX = Max( pCnt->Frm().Left(), rPt.X() ) -
- Min( pCnt->Frm().Left(), rPt.X() ),
- dY = Max( pCnt->Frm().Top(), rPt.Y() ) -
- Min( pCnt->Frm().Top(), rPt.Y() );
-Index: sw/source/core/layout/trvlfrm.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/core/layout/trvlfrm.cxx,v
-retrieving revision 1.43
-retrieving revision 1.41.76.2
-diff -u -p -u -p -r1.43 -r1.41.76.2
---- sw/source/core/layout/trvlfrm.cxx 28 Jan 2005 15:27:06 -0000 1.43
-+++ sw/source/core/layout/trvlfrm.cxx 10 Mar 2005 01:56:49 -0000 1.41.76.2
-@@ -1143,11 +1143,11 @@ BOOL GetFrmInPage( const SwCntntFrm *pCn
- |* Letzte Aenderung MA 09. Jan. 97
- |*
- |*************************************************************************/
--ULONG CalcDiff( const Point &rPt1, const Point &rPt2 )
-+sal_uInt32 CalcDiff( const Point &rPt1, const Point &rPt2 )
- {
- //Jetzt die Entfernung zwischen den beiden Punkten berechnen.
- //'Delta' X^2 + 'Delta'Y^2 = 'Entfernung'^2
-- ULONG dX = Max( rPt1.X(), rPt2.X() ) -
-+ sal_uInt32 dX = Max( rPt1.X(), rPt2.X() ) -
- Min( rPt1.X(), rPt2.X() ),
- dY = Max( rPt1.Y(), rPt2.Y() ) -
- Min( rPt1.Y(), rPt2.Y() );
-@@ -1208,7 +1208,7 @@ const SwCntntFrm *SwLayoutFrm::GetCntntP
- const SwLayoutFrm *pInside = NULL;
- USHORT nMaxPage = GetPhyPageNum() + (bDefaultExpand ? 1 : 0);
- Point aPoint = rPoint;
-- ULONG nDistance = ULONG_MAX;
-+ sal_uInt32 nDistance = SAL_MAX_UINT32;
-
- while ( TRUE ) //Sicherheitsschleifchen, damit immer einer gefunden wird.
- {
-@@ -1261,7 +1261,7 @@ const SwCntntFrm *SwLayoutFrm::GetCntntP
- if( !pInside || ( pInside->IsAnLower( pCntnt ) &&
- ( !pCntnt->IsInFtn() || pInside->IsFtnContFrm() ) ) )
- {
-- const ULONG nDiff = ::CalcDiff( aCntntPoint, rPoint );
-+ const sal_uInt32 nDiff = ::CalcDiff( aCntntPoint, rPoint );
- BOOL bBetter = nDiff < nDistance; // Dichter dran
- if( !pInside )
- {
-@@ -1422,7 +1422,7 @@ void SwPageFrm::GetCntntPosition( const
-
- const SwCntntFrm *pAct = pCntnt;
- Point aAct = rPt;
-- ULONG nDist = ULONG_MAX;
-+ sal_uInt32 nDist = SAL_MAX_UINT32;
-
- while ( pCntnt )
- {
-@@ -1449,7 +1449,7 @@ void SwPageFrm::GetCntntPosition( const
- else if ( aCntFrm.Right() < rPt.X() )
- aPoint.X() = aCntFrm.Right();
-
-- const ULONG nDiff = ::CalcDiff( aPoint, rPt );
-+ const sal_uInt32 nDiff = ::CalcDiff( aPoint, rPt );
- if ( nDiff < nDist )
- {
- aAct = aPoint;
-Index: sw/source/core/txtnode/txtedt.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/core/txtnode/txtedt.cxx,v
-retrieving revision 1.63
-retrieving revision 1.53.92.4
-diff -u -p -u -p -r1.63 -r1.53.92.4
---- sw/source/core/txtnode/txtedt.cxx 1 Mar 2005 15:24:39 -0000 1.63
-+++ sw/source/core/txtnode/txtedt.cxx 10 Mar 2005 01:58:06 -0000 1.53.92.4
-@@ -623,12 +623,12 @@ BOOL SwScanner::NextWord()
- pBreakIt->xBreak->getScriptType( rText, nBegin );
-
- XubString aTmpWord = rText.Copy( nBegin, static_cast<xub_StrLen>(aBound.endPos - nBegin) );
-- const long nScriptEnd = nBegin +
-+ const sal_Int32 nScriptEnd = nBegin +
- pBreakIt->xBreak->endOfScript( aTmpWord, 0, nCurrScript );
- const long nEnd = Min( aBound.endPos, nScriptEnd );
-
- // restrict word start to last script change position
-- long nScriptBegin = 0;
-+ sal_Int32 nScriptBegin = 0;
- if ( aBound.startPos < nBegin )
- {
- // search from nBegin backwards until the next script change
-@@ -646,7 +646,7 @@ BOOL SwScanner::NextWord()
- pBreakIt->xBreak->getScriptType( rText, aBound.startPos );
- XubString aTmpWord = rText.Copy( static_cast<xub_StrLen>(aBound.startPos),
- static_cast<xub_StrLen>(aBound.endPos - aBound.startPos) );
-- const long nScriptEnd = aBound.startPos +
-+ const sal_Int32 nScriptEnd = aBound.startPos +
- pBreakIt->xBreak->endOfScript( aTmpWord, 0, nCurrScript );
- const long nEnd = Min( aBound.endPos, nScriptEnd );
- nBegin = (xub_StrLen)aBound.startPos;
-@@ -1349,7 +1349,7 @@ void SwTxtNode::TransliterateText( utl::
- }
- xub_StrLen nLen = nEndPos - nStart;
-
-- Sequence <long> aOffsets;
-+ Sequence <sal_Int32> aOffsets;
- String sChgd( rTrans.transliterate( aText, nLang, nStart, nLen,
- &aOffsets ));
- if( !aText.Equals( sChgd, nStart, nLen ) )
-@@ -1367,12 +1367,12 @@ void SwTxtNode::TransliterateText( utl::
-
- void SwTxtNode::ReplaceTextOnly( xub_StrLen nPos, xub_StrLen nLen,
- const XubString& rText,
-- const Sequence<long>& rOffsets )
-+ const Sequence<sal_Int32>& rOffsets )
- {
- aText.Replace( nPos, nLen, rText );
-
- xub_StrLen nTLen = rText.Len();
-- const long* pOffsets = rOffsets.getConstArray();
-+ const sal_Int32* pOffsets = rOffsets.getConstArray();
- // now look for no 1-1 mapping -> move the indizies!
- xub_StrLen nI, nMyOff;
- for( nI = 0, nMyOff = nPos; nI < nTLen; ++nI, ++nMyOff )
-Index: sw/source/core/undo/unovwr.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/core/undo/unovwr.cxx,v
-retrieving revision 1.13
-retrieving revision 1.12.64.2
-diff -u -p -u -p -r1.13 -r1.12.64.2
---- sw/source/core/undo/unovwr.cxx 8 Sep 2004 15:00:49 -0000 1.13
-+++ sw/source/core/undo/unovwr.cxx 20 Oct 2004 12:00:44 -0000 1.12.64.2
-@@ -411,7 +411,7 @@ struct _UndoTransliterate_Data
- String sText;
- _UndoTransliterate_Data* pNext;
- SwHistory* pHistory;
-- Sequence <long>* pOffsets;
-+ Sequence <sal_Int32>* pOffsets;
- ULONG nNdIdx;
- xub_StrLen nStart, nLen;
-
-@@ -478,7 +478,7 @@ void SwUndoTransliterate::Repeat( SwUndo
-
- void SwUndoTransliterate::AddChanges( const SwTxtNode& rTNd,
- xub_StrLen nStart, xub_StrLen nLen,
-- ::com::sun::star::uno::Sequence <long>& rOffsets )
-+ ::com::sun::star::uno::Sequence <sal_Int32>& rOffsets )
- {
- long nOffsLen = rOffsets.getLength();
- _UndoTransliterate_Data* pNew = new _UndoTransliterate_Data(
-@@ -490,17 +490,17 @@ void SwUndoTransliterate::AddChanges( co
- pData = pNew;
- pLastData = pNew;
-
-- const long* pOffsets = rOffsets.getConstArray();
-+ const sal_Int32* pOffsets = rOffsets.getConstArray();
- // where did we need less memory ?
- // check for 1-1 mappings:
- BOOL bOneToOne = TRUE;
-- const long* p = pOffsets;
-+ const sal_Int32* p = pOffsets;
- for( long n = 0; n < nOffsLen; ++n, ++p )
- if( *p != ( nStart + n ))
- {
- // create the Offset array
-- pNew->pOffsets = new Sequence <long> ( nLen );
-- long* pIdx = pNew->pOffsets->getArray();
-+ pNew->pOffsets = new Sequence <sal_Int32> ( nLen );
-+ sal_Int32* pIdx = pNew->pOffsets->getArray();
- p = pOffsets;
- long nMyOff, nNewVal = nStart;
- for( n = 0, nMyOff = nStart; n < nOffsLen; ++p, ++n, ++nMyOff )
-@@ -554,12 +554,12 @@ void _UndoTransliterate_Data::SetChangeA
- SwTxtNode* pTNd = rDoc.GetNodes()[ nNdIdx ]->GetTxtNode();
- if( pTNd )
- {
-- Sequence <long> aOffsets( pOffsets ? pOffsets->getLength() : nLen );
-+ Sequence <sal_Int32> aOffsets( pOffsets ? pOffsets->getLength() : nLen );
- if( pOffsets )
- aOffsets = *pOffsets;
- else
- {
-- long* p = aOffsets.getArray();
-+ sal_Int32* p = aOffsets.getArray();
- for( xub_StrLen n = 0; n < nLen; ++n, ++p )
- *p = n + nStart;
- }
-Index: sw/source/core/unocore/unoobj.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/core/unocore/unoobj.cxx,v
-retrieving revision 1.84
-retrieving revision 1.82.8.2
-diff -u -p -u -p -r1.84 -r1.82.8.2
---- sw/source/core/unocore/unoobj.cxx 22 Feb 2005 10:03:29 -0000 1.84
-+++ sw/source/core/unocore/unoobj.cxx 10 Mar 2005 01:58:48 -0000 1.82.8.2
-@@ -913,14 +913,14 @@ SwFmtColl* SwXTextCursor::GetCurTxtFmtCo
- sal_Bool bError = sal_False;
- FOREACHUNOPAM_START(&rPam)
-
-- sal_uInt32 nSttNd = PUNOPAM->GetMark()->nNode.GetIndex(),
-+ ULONG nSttNd = PUNOPAM->GetMark()->nNode.GetIndex(),
- nEndNd = PUNOPAM->GetPoint()->nNode.GetIndex();
- xub_StrLen nSttCnt = PUNOPAM->GetMark()->nContent.GetIndex(),
- nEndCnt = PUNOPAM->GetPoint()->nContent.GetIndex();
-
- if( nSttNd > nEndNd || ( nSttNd == nEndNd && nSttCnt > nEndCnt ))
- {
-- sal_uInt32 nTmp = nSttNd; nSttNd = nEndNd; nEndNd = nTmp;
-+ ULONG nTmp = nSttNd; nSttNd = nEndNd; nEndNd = nTmp;
- nTmp = nSttCnt; nSttCnt = nEndCnt; nEndCnt = (sal_uInt16)nTmp;
- }
-
-@@ -931,7 +931,7 @@ SwFmtColl* SwXTextCursor::GetCurTxtFmtCo
- }
-
- const SwNodes& rNds = rPam.GetDoc()->GetNodes();
-- for( sal_uInt32 n = nSttNd; n <= nEndNd; ++n )
-+ for( ULONG n = nSttNd; n <= nEndNd; ++n )
- {
- const SwTxtNode* pNd = rNds[ n ]->GetTxtNode();
- if( pNd )
-Index: sw/source/core/unocore/unoobj2.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/core/unocore/unoobj2.cxx,v
-retrieving revision 1.49
-retrieving revision 1.48.66.2
-diff -u -p -u -p -r1.49 -r1.48.66.2
---- sw/source/core/unocore/unoobj2.cxx 27 Jan 2005 12:37:42 -0000 1.49
-+++ sw/source/core/unocore/unoobj2.cxx 10 Mar 2005 01:59:27 -0000 1.48.66.2
-@@ -1051,14 +1051,14 @@ void SwXTextCursor::GetCrsrAttr(SwPaM& r
- SwPaM *_pStartCrsr = &rPam;
- do
- {
-- sal_uInt32 nSttNd = _pStartCrsr->GetMark()->nNode.GetIndex(),
-+ ULONG nSttNd = _pStartCrsr->GetMark()->nNode.GetIndex(),
- nEndNd = _pStartCrsr->GetPoint()->nNode.GetIndex();
- xub_StrLen nSttCnt = _pStartCrsr->GetMark()->nContent.GetIndex(),
- nEndCnt = _pStartCrsr->GetPoint()->nContent.GetIndex();
-
- if( nSttNd > nEndNd || ( nSttNd == nEndNd && nSttCnt > nEndCnt ))
- {
-- sal_uInt32 nTmp = nSttNd; nSttNd = nEndNd; nEndNd = nTmp;
-+ ULONG nTmp = nSttNd; nSttNd = nEndNd; nEndNd = nTmp;
- nTmp = nSttCnt; nSttCnt = nEndCnt; nEndCnt = (sal_uInt16)nTmp;
- }
-
-@@ -1071,7 +1071,7 @@ void SwXTextCursor::GetCrsrAttr(SwPaM& r
-
- // beim 1.Node traegt der Node die Werte in den GetSet ein (Initial)
- // alle weiteren Nodes werden zum GetSet zu gemergt
-- for( sal_uInt32 n = nSttNd; n <= nEndNd; ++n )
-+ for( ULONG n = nSttNd; n <= nEndNd; ++n )
- {
- SwNode* pNd = rPam.GetDoc()->GetNodes()[ n ];
- switch( pNd->GetNodeType() )
-Index: sw/source/core/unocore/unosett.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/core/unocore/unosett.cxx,v
-retrieving revision 1.40
-retrieving revision 1.37.62.3
-diff -u -p -u -p -r1.40 -r1.37.62.3
---- sw/source/core/unocore/unosett.cxx 26 Nov 2004 13:27:57 -0000 1.40
-+++ sw/source/core/unocore/unosett.cxx 18 Jan 2005 16:42:15 -0000 1.37.62.3
-@@ -1124,7 +1124,7 @@ void SwXLineNumberingProperties::setProp
- {
- INT32 nVal;
- aValue >>= nVal;
-- aInfo.SetPosFromLeft(Min(MM100_TO_TWIP(nVal), sal_Int32(0xffff)));
-+ aInfo.SetPosFromLeft(Min((sal_Int32)MM100_TO_TWIP(nVal), sal_Int32(0xffff)));
- }
- break;
- case WID_INTERVAL :
-Index: sw/source/filter/excel/exctools.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/excel/exctools.cxx,v
-retrieving revision 1.6
-retrieving revision 1.6.96.1
-diff -u -p -u -p -r1.6 -r1.6.96.1
---- sw/source/filter/excel/exctools.cxx 12 Aug 2004 12:46:36 -0000 1.6
-+++ sw/source/filter/excel/exctools.cxx 21 Jan 2005 16:59:15 -0000 1.6.96.1
-@@ -1353,14 +1353,14 @@ void ValueFormBuffer::_NewValueFormat5(
- }
-
- //------------------------------------------------------------------------
--UINT32 ValueFormBuffer::__GetValueFormat( UINT16 nExcIndex )
-+sal_uInt32 ValueFormBuffer::__GetValueFormat( UINT16 nExcIndex )
- {
- Init();
- return ( this->*_GetValueFormat )( nExcIndex );
- }
-
- //------------------------------------------------------------------------
--UINT32 ValueFormBuffer::_GetValueFormatX5( UINT16 nExcIndex )
-+sal_uInt32 ValueFormBuffer::_GetValueFormatX5( UINT16 nExcIndex )
- {
- DBG_ASSERT( nExcIndex < nCount,
- "+ValueFormBuffer::GetValueFormat(): Da kann ich auch nichts fuer!" );
-Index: sw/source/filter/excel/excvfbff.hxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/excel/excvfbff.hxx,v
-retrieving revision 1.2
-retrieving revision 1.2.96.1
-diff -u -p -u -p -r1.2 -r1.2.96.1
---- sw/source/filter/excel/excvfbff.hxx 12 Aug 2004 12:46:49 -0000 1.2
-+++ sw/source/filter/excel/excvfbff.hxx 21 Jan 2005 16:59:22 -0000 1.2.96.1
-@@ -76,18 +76,18 @@ typedef ULONG ( ValueFormBuffer::*Fkt
- #endif
-
- class ValueFormBuffer
-- {
-+{
- private:
- #if !defined(BLC) && !defined(MAC)
--// MSC will es auf jeden Fall hier
-+ // MSC will es auf jeden Fall hier
- typedef void ( ValueFormBuffer::*Fkt_rString )( String & );
-- typedef ULONG ( ValueFormBuffer::*Fkt_USHORT )( USHORT );
-+ typedef sal_uInt32 ( ValueFormBuffer::*Fkt_USHORT )( USHORT );
- #endif
-
-- ULONG *pHandles; // Array mit Handles...
-+ sal_uInt32 *pHandles; // Array mit Handles...
- USHORT nMax; // Groesse des Arrays
- USHORT nCount; // Index des naechsten freien Eintrags
-- ULONG nDefaultHandle;
-+ sal_uInt32 nDefaultHandle;
-
- // nur fuer Excel5
- static const USHORT nAnzBuiltin; // bekannte Formate
-@@ -100,17 +100,17 @@ class ValueFormBuffer
- void Init( void );
- // fuer 1. Nutzung
- void __NewValueFormat( String &rFormString );
-- ULONG __GetValueFormat( USHORT nExcIndex );
-+ sal_uInt32 __GetValueFormat( USHORT nExcIndex );
- // fuer n-te Nutzung
- void _NewValueFormatX( String &rFormString );
- void _NewValueFormat5( String &rFormString );
-- ULONG _GetValueFormatX5( USHORT nExcIndex );
-+ sal_uInt32 _GetValueFormatX5( USHORT nExcIndex );
- public:
- ValueFormBuffer( const USHORT nSize = 2048 );
- ~ValueFormBuffer();
-
- inline void NewValueFormat( String &rFormString );
-- inline ULONG GetValueFormat( USHORT nExcIndex );
-+ inline sal_uInt32 GetValueFormat( USHORT nExcIndex );
- };
-
- inline void ValueFormBuffer::NewValueFormat( String &rFormString )
-@@ -118,7 +118,7 @@ inline void ValueFormBuffer::NewValueFor
- ( this->*_NewValueFormat )( rFormString );
- }
-
--inline ULONG ValueFormBuffer::GetValueFormat( USHORT nExcIndex )
-+inline sal_uInt32 ValueFormBuffer::GetValueFormat( USHORT nExcIndex )
- {
- return ( this->*_GetValueFormat )( nExcIndex );
- }
-Index: sw/source/filter/html/css1atr.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/html/css1atr.cxx,v
-retrieving revision 1.29
-retrieving revision 1.29.8.1
-diff -u -p -u -p -r1.29 -r1.29.8.1
---- sw/source/filter/html/css1atr.cxx 11 Jan 2005 12:25:00 -0000 1.29
-+++ sw/source/filter/html/css1atr.cxx 21 Jan 2005 16:59:40 -0000 1.29.8.1
-@@ -2246,7 +2246,7 @@ Writer& OutCSS1_NumBulListStyleOpt( Writ
- //-----------------------------------------------------------------------
-
- void SwHTMLWriter::OutCSS1_FrmFmtOptions( const SwFrmFmt& rFrmFmt,
-- ULONG nFrmOpts,
-+ sal_uInt32 nFrmOpts,
- const SdrObject *pSdrObj,
- const SfxItemSet *pItemSet )
- {
-Index: sw/source/filter/html/htmlatr.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/html/htmlatr.cxx,v
-retrieving revision 1.26
-retrieving revision 1.26.34.1
-diff -u -p -u -p -r1.26 -r1.26.34.1
---- sw/source/filter/html/htmlatr.cxx 5 Jan 2005 13:40:52 -0000 1.26
-+++ sw/source/filter/html/htmlatr.cxx 21 Jan 2005 16:59:53 -0000 1.26.34.1
-@@ -2905,7 +2905,7 @@ Writer& OutHTML_SwTxtNode( Writer& rWrt,
- }
-
-
--ULONG SwHTMLWriter::ToPixel( ULONG nVal ) const
-+sal_uInt32 SwHTMLWriter::ToPixel( sal_uInt32 nVal ) const
- {
- if( Application::GetDefaultDevice() && nVal )
- {
-Index: sw/source/filter/html/htmlcss1.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/html/htmlcss1.cxx,v
-retrieving revision 1.17
-retrieving revision 1.16.8.2
-diff -u -p -u -p -r1.17 -r1.16.8.2
---- sw/source/filter/html/htmlcss1.cxx 25 Jan 2005 14:42:45 -0000 1.17
-+++ sw/source/filter/html/htmlcss1.cxx 10 Mar 2005 02:03:18 -0000 1.16.8.2
-@@ -209,7 +209,7 @@ void SwCSS1Parser::ChgPageDesc( const Sw
- ASSERT( i<nPageDescs, "Seitenvorlage nicht gefunden" );
- }
-
--SwCSS1Parser::SwCSS1Parser( SwDoc *pD, ULONG aFHeights[7], const String& rBaseURL, BOOL bNewDoc ) :
-+SwCSS1Parser::SwCSS1Parser( SwDoc *pD, sal_uInt32 aFHeights[7], const String& rBaseURL, BOOL bNewDoc ) :
- SvxCSS1Parser( pD->GetAttrPool(), rBaseURL, MM50/2,
- (USHORT*)&aItemIds, sizeof(aItemIds) / sizeof(USHORT) ),
- nDropCapCnt( 0 ), bIsNewDoc( bNewDoc ), pDoc( pD ),
-@@ -1239,7 +1239,7 @@ BOOL SwCSS1Parser::StyleParsed( const CS
- return TRUE;
- }
-
--ULONG SwCSS1Parser::GetFontHeight( USHORT nSize ) const
-+sal_uInt32 SwCSS1Parser::GetFontHeight( USHORT nSize ) const
- {
- return aFontHeights[ nSize>6 ? 6 : nSize ];
- }
-Index: sw/source/filter/html/htmlfly.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/html/htmlfly.cxx,v
-retrieving revision 1.20
-retrieving revision 1.20.8.1
-diff -u -p -u -p -r1.20 -r1.20.8.1
---- sw/source/filter/html/htmlfly.cxx 11 Jan 2005 12:25:53 -0000 1.20
-+++ sw/source/filter/html/htmlfly.cxx 21 Jan 2005 17:00:20 -0000 1.20.8.1
-@@ -466,7 +466,7 @@ void SwHTMLWriter::CollectFlyFrms()
- }
- }
-
--BOOL SwHTMLWriter::OutFlyFrm( ULONG nNdIdx, xub_StrLen nCntntIdx, BYTE nPos,
-+BOOL SwHTMLWriter::OutFlyFrm( sal_uInt32 nNdIdx, xub_StrLen nCntntIdx, BYTE nPos,
- HTMLOutContext *pContext )
- {
- BOOL bFlysLeft = FALSE; // Noch Flys an aktueller Node-Position da?
-@@ -636,7 +636,7 @@ void SwHTMLWriter::OutFrmFmt( BYTE nMode
- void SwHTMLWriter::OutFrmFmtOptions( const SwFrmFmt &rFrmFmt,
- const String& rAlternateTxt,
- ByteString &rEndTags,
-- ULONG nFrmOpts )
-+ sal_uInt32 nFrmOpts )
- {
- ByteString sOut;
- const SfxPoolItem* pItem;
-@@ -907,7 +907,7 @@ void SwHTMLWriter::OutFrmFmtOptions( con
-
- Writer& OutHTML_Image( Writer& rWrt, const SwFrmFmt &rFrmFmt,
- const String &rGrfName, const String& rAlternateTxt,
-- const Size &rRealSize, ULONG nFrmOpts,
-+ const Size &rRealSize, sal_uInt32 nFrmOpts,
- const sal_Char *pMarkType,
- const ImageMap *pAltImgMap )
- {
-@@ -1651,7 +1651,7 @@ static Writer & OutHTML_FrmFmtAsImage( W
- INetURLObject(rWrt.GetBaseURL()), aGrfNm,
- URIHelper::GetMaybeFileHdl() );
- Size aSz( 0, 0 );
-- ULONG nFrmFlags = bInCntnr ? HTML_FRMOPTS_GENIMG_CNTNR
-+ sal_uInt32 nFrmFlags = bInCntnr ? HTML_FRMOPTS_GENIMG_CNTNR
- : HTML_FRMOPTS_GENIMG;
- OutHTML_Image( rWrt, rFrmFmt, aGrfNm, rFrmFmt.GetName(), aSz,
- HTML_FRMOPTS_GENIMG, pMarkToFrame,
-@@ -1716,7 +1716,7 @@ static Writer& OutHTML_FrmFmtGrfNode( Wr
- rWrt.CopyLocalFileToINet( aGrfNm );
- }
-
-- ULONG nFrmFlags = bInCntnr ? HTML_FRMOPTS_IMG_CNTNR : HTML_FRMOPTS_IMG;
-+ sal_uInt32 nFrmFlags = bInCntnr ? HTML_FRMOPTS_IMG_CNTNR : HTML_FRMOPTS_IMG;
- if( rHTMLWrt.IsHTMLMode( HTMLMODE_ABS_POS_FLY ) && !bInCntnr )
- nFrmFlags |= HTML_FRMOPTS_IMG_CSS1;
- OutHTML_Image( rWrt, rFrmFmt, aGrfNm, pGrfNd->GetAlternateText(),
-Index: sw/source/filter/html/htmlforw.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/html/htmlforw.cxx,v
-retrieving revision 1.12
-retrieving revision 1.12.8.1
-diff -u -p -u -p -r1.12 -r1.12.8.1
---- sw/source/filter/html/htmlforw.cxx 11 Jan 2005 12:26:29 -0000 1.12
-+++ sw/source/filter/html/htmlforw.cxx 21 Jan 2005 17:00:33 -0000 1.12.8.1
-@@ -444,7 +444,7 @@ void SwHTMLWriter::OutForm( sal_Bool bTa
- aHTMLControls[i]->nNdIdx <= nEndIdx; i++ )
- {
- const SwStartNode *pCntrlStNd =
-- pDoc->GetNodes()[aHTMLControls[i]->nNdIdx]->FindStartNode();
-+ pDoc->GetNodes()[ ULONG( aHTMLControls[i]->nNdIdx ) ]->FindStartNode();
-
- if( xCurrentFormComps.is() )
- {
-Index: sw/source/filter/html/htmlnum.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/html/htmlnum.cxx,v
-retrieving revision 1.12
-retrieving revision 1.12.8.1
-diff -u -p -u -p -r1.12 -r1.12.8.1
---- sw/source/filter/html/htmlnum.cxx 11 Jan 2005 12:26:57 -0000 1.12
-+++ sw/source/filter/html/htmlnum.cxx 21 Jan 2005 17:00:41 -0000 1.12.8.1
-@@ -748,7 +748,7 @@ void SwHTMLWriter::FillNextNumInfo()
- {
- pNextNumRuleInfo = 0;
-
-- sal_uInt32 nPos = pCurPam->GetPoint()->nNode.GetIndex() + 1;
-+ ULONG nPos = pCurPam->GetPoint()->nNode.GetIndex() + 1;
-
- sal_Bool bDone = sal_False;
- sal_Bool bTable = sal_False;
-@@ -823,7 +823,7 @@ Writer& OutHTML_NumBulListStart( SwHTMLW
- bStartValue = sal_True;
- if( rInfo.GetDepth() > 1 )
- {
-- sal_uInt32 nPos =
-+ ULONG nPos =
- rWrt.pCurPam->GetPoint()->nNode.GetIndex() + 1;
- do
- {
-Index: sw/source/filter/html/htmlsect.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/html/htmlsect.cxx,v
-retrieving revision 1.11
-retrieving revision 1.11.8.1
-diff -u -p -u -p -r1.11 -r1.11.8.1
---- sw/source/filter/html/htmlsect.cxx 11 Jan 2005 12:27:24 -0000 1.11
-+++ sw/source/filter/html/htmlsect.cxx 21 Jan 2005 17:00:48 -0000 1.11.8.1
-@@ -506,7 +506,7 @@ void SwHTMLParser::FixHeaderFooterDistan
- const SwFmtCntnt& rFlyCntnt = pHdFtFmt->GetCntnt();
- const SwNodeIndex& rCntntStIdx = *rFlyCntnt.GetCntntIdx();
-
-- sal_uInt32 nPrvNxtIdx;
-+ ULONG nPrvNxtIdx;
- if( bHeader )
- {
- nPrvNxtIdx = pDoc->GetNodes()[rCntntStIdx]->EndOfSectionIndex()-1;
-@@ -881,7 +881,7 @@ void SwHTMLParser::InsertFlyFrame( const
- /* */
-
- void SwHTMLParser::MovePageDescAttrs( SwNode *pSrcNd,
-- sal_uInt32 nDestIdx,
-+ ULONG nDestIdx,
- sal_Bool bFmtBreak )
- {
- SwCntntNode* pDestCntntNd =
-Index: sw/source/filter/html/htmltabw.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/html/htmltabw.cxx,v
-retrieving revision 1.10
-retrieving revision 1.10.84.1
-diff -u -p -u -p -r1.10 -r1.10.84.1
---- sw/source/filter/html/htmltabw.cxx 3 May 2004 13:49:32 -0000 1.10
-+++ sw/source/filter/html/htmltabw.cxx 21 Jan 2005 17:00:56 -0000 1.10.84.1
-@@ -415,7 +415,7 @@ void SwHTMLWrtTable::OutTableCell( SwHTM
- sal_Bool bHead = sal_False;
- if( pSttNd )
- {
-- sal_uInt32 nNdPos = pSttNd->GetIndex()+1;
-+ ULONG nNdPos = pSttNd->GetIndex()+1;
-
- // Art der Zelle (TD/TH) bestimmen
- SwNode* pNd;
-Index: sw/source/filter/html/svxcss1.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/html/svxcss1.cxx,v
-retrieving revision 1.8
-retrieving revision 1.8.8.1
-diff -u -p -u -p -r1.8 -r1.8.8.1
---- sw/source/filter/html/svxcss1.cxx 11 Jan 2005 12:28:00 -0000 1.8
-+++ sw/source/filter/html/svxcss1.cxx 21 Jan 2005 17:01:04 -0000 1.8.8.1
-@@ -1066,7 +1066,7 @@ void SvxCSS1Parser::SetBorderWidth( SvxB
- aBorderLine.SetDistance( aWidths[i+3] );
- }
-
--ULONG SvxCSS1Parser::GetFontHeight( USHORT nSize ) const
-+sal_uInt32 SvxCSS1Parser::GetFontHeight( USHORT nSize ) const
- {
- USHORT nHeight;
-
-Index: sw/source/filter/html/swcss1.hxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/html/swcss1.hxx,v
-retrieving revision 1.3
-retrieving revision 1.3.8.1
-diff -u -p -u -p -r1.3 -r1.3.8.1
---- sw/source/filter/html/swcss1.hxx 11 Jan 2005 12:28:27 -0000 1.3
-+++ sw/source/filter/html/swcss1.hxx 21 Jan 2005 17:01:09 -0000 1.3.8.1
-@@ -85,7 +85,7 @@ class SwCSS1Parser : public SvxCSS1Parse
- {
- SwDoc *pDoc;
-
-- ULONG aFontHeights[7];
-+ sal_uInt32 aFontHeights[7];
-
- USHORT nDropCapCnt;
-
-@@ -118,13 +118,13 @@ protected:
- SfxItemSet& rItemSet,
- SvxCSS1PropertyInfo& rPropInfo );
- public:
-- SwCSS1Parser( SwDoc *pDoc, ULONG aFHeight[7], const String& rBaseURL, BOOL bNewDoc );
-+ SwCSS1Parser( SwDoc *pDoc, sal_uInt32 aFHeight[7], const String& rBaseURL, BOOL bNewDoc );
- virtual ~SwCSS1Parser();
-
- virtual BOOL ParseStyleSheet( const String& rIn );
-
- // Die Font-Hoehe fuer eine bestimmte Font-Groesse (0-6) ermitteln
-- virtual ULONG GetFontHeight( USHORT nSize ) const;
-+ virtual sal_uInt32 GetFontHeight( USHORT nSize ) const;
-
- // Die aktuelle Font-Liste holen (auch 0 ist erlaubt)
- virtual const FontList *GetFontList() const;
-Index: sw/source/filter/html/swhtml.hxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/html/swhtml.hxx,v
-retrieving revision 1.10
-retrieving revision 1.10.8.1
-diff -u -p -u -p -r1.10 -r1.10.8.1
---- sw/source/filter/html/swhtml.hxx 11 Jan 2005 12:28:56 -0000 1.10
-+++ sw/source/filter/html/swhtml.hxx 21 Jan 2005 17:01:23 -0000 1.10.8.1
-@@ -638,7 +638,7 @@ class SwHTMLParser : public SfxHTMLParse
- void GetULSpaceFromContext( sal_uInt16 &rUpper, sal_uInt16 &rLower ) const;
-
-
-- void MovePageDescAttrs( SwNode *pSrcNd, sal_uInt32 nDestIdx, sal_Bool bFmtBreak );
-+ void MovePageDescAttrs( SwNode *pSrcNd, ULONG nDestIdx, sal_Bool bFmtBreak );
-
- // Behandlung von Tags auf Absatz-Ebene
-
-Index: sw/source/filter/html/wrthtml.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/html/wrthtml.cxx,v
-retrieving revision 1.29
-retrieving revision 1.29.8.1
-diff -u -p -u -p -r1.29 -r1.29.8.1
---- sw/source/filter/html/wrthtml.cxx 11 Jan 2005 12:29:10 -0000 1.29
-+++ sw/source/filter/html/wrthtml.cxx 21 Jan 2005 17:01:35 -0000 1.29.8.1
-@@ -288,7 +288,7 @@ __EXPORT SwHTMLWriter::~SwHTMLWriter()
- delete pNumRuleInfo;
- }
-
--sal_uInt32 SwHTMLWriter::WriteStream()
-+ULONG SwHTMLWriter::WriteStream()
- {
- // neue Konfiguration setzen
- SvxHtmlOptions* pHtmlOptions = SvxHtmlOptions::Get();
-@@ -657,7 +657,7 @@ const SwFmtCol *lcl_html_GetFmtCol( cons
- return pCol;
- }
-
--sal_Bool lcl_html_IsMultiColStart( const SwHTMLWriter& rHTMLWrt, sal_uInt32 nIndex )
-+sal_Bool lcl_html_IsMultiColStart( const SwHTMLWriter& rHTMLWrt, ULONG nIndex )
- {
- sal_Bool bRet = sal_False;
- const SwSectionNode *pSectNd =
-@@ -673,7 +673,7 @@ sal_Bool lcl_html_IsMultiColStart( const
- return bRet;
- }
-
--sal_Bool lcl_html_IsMultiColEnd( const SwHTMLWriter& rHTMLWrt, sal_uInt32 nIndex )
-+sal_Bool lcl_html_IsMultiColEnd( const SwHTMLWriter& rHTMLWrt, ULONG nIndex )
- {
- sal_Bool bRet = sal_False;
- const SwEndNode *pEndNd = rHTMLWrt.pDoc->GetNodes()[nIndex]->GetEndNode();
-@@ -827,8 +827,8 @@ static Writer& OutHTML_Section( Writer&
- const SwSection *pSurrSection = 0;
- const SwFmtCol *pSurrCol = 0;
-
-- sal_uInt32 nSectSttIdx = rSectNd.GetIndex();
-- sal_uInt32 nSectEndIdx = rSectNd.EndOfSectionIndex();
-+ ULONG nSectSttIdx = rSectNd.GetIndex();
-+ ULONG nSectEndIdx = rSectNd.EndOfSectionIndex();
- const SwFmtCol *pCol = lcl_html_GetFmtCol( rHTMLWrt, rSection, *pFmt );
- if( pCol )
- {
-@@ -1037,8 +1037,8 @@ static void OutBodyColor( const sal_Char
-
- sal_uInt16 SwHTMLWriter::OutHeaderAttrs()
- {
-- sal_uInt32 nIdx = pCurPam->GetPoint()->nNode.GetIndex();
-- sal_uInt32 nEndIdx = pCurPam->GetMark()->nNode.GetIndex();
-+ ULONG nIdx = pCurPam->GetPoint()->nNode.GetIndex();
-+ ULONG nEndIdx = pCurPam->GetMark()->nNode.GetIndex();
-
- SwTxtNode *pTxtNd = 0;
- while( nIdx<=nEndIdx &&
-@@ -1112,7 +1112,7 @@ const SwPageDesc *SwHTMLWriter::MakeHead
- //{
- // In Nicht-HTML-Dokumenten wird die erste gesetzte Seitenvorlage
- // exportiert und wenn keine gesetzt ist die Standard-Vorlage
-- sal_uInt32 nNodeIdx = pCurPam->GetPoint()->nNode.GetIndex();
-+ ULONG nNodeIdx = pCurPam->GetPoint()->nNode.GetIndex();
-
- while( nNodeIdx < pDoc->GetNodes().Count() )
- {
-@@ -1495,8 +1495,8 @@ sal_uInt16 SwHTMLWriter::GetHTMLFontSize
-
- // Struktur speichert die aktuellen Daten des Writers zwischen, um
- // einen anderen Dokument-Teil auszugeben, wie z.B. Header/Footer
--HTMLSaveData::HTMLSaveData( SwHTMLWriter& rWriter, sal_uInt32 nStt,
-- sal_uInt32 nEnd, sal_Bool bSaveNum,
-+HTMLSaveData::HTMLSaveData( SwHTMLWriter& rWriter, ULONG nStt,
-+ ULONG nEnd, sal_Bool bSaveNum,
- const SwFrmFmt *pFrmFmt )
- : rWrt( rWriter ),
- pOldPam( rWrt.pCurPam ), pOldEnd( rWrt.GetEndPaM() ),
-Index: sw/source/filter/html/wrthtml.hxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/html/wrthtml.hxx,v
-retrieving revision 1.12
-retrieving revision 1.12.8.1
-diff -u -p -u -p -r1.12 -r1.12.8.1
---- sw/source/filter/html/wrthtml.hxx 11 Jan 2005 12:29:25 -0000 1.12
-+++ sw/source/filter/html/wrthtml.hxx 21 Jan 2005 17:01:49 -0000 1.12.8.1
-@@ -260,7 +260,7 @@ class SwHTMLWriter : public Writer
- void CollectLinkTargets();
-
- protected:
-- sal_uInt32 WriteStream();
-+ ULONG WriteStream();
-
- public:
- #if defined(MAC) || defined(UNX)
-@@ -588,7 +588,7 @@ struct HTMLSaveData
- sal_Bool bOldOutFlyFrame : 1;
- const SwFlyFrmFmt* pOldFlyFmt;
-
-- HTMLSaveData( SwHTMLWriter&, sal_uInt32 nStt, sal_uInt32 nEnd,
-+ HTMLSaveData( SwHTMLWriter&, ULONG nStt, ULONG nEnd,
- sal_Bool bSaveNum=sal_True,
- const SwFrmFmt *pFrmFmt=0 );
- ~HTMLSaveData();
-Index: sw/source/filter/ww8/wrtw8esh.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/ww8/wrtw8esh.cxx,v
-retrieving revision 1.83
-retrieving revision 1.77.8.5
-diff -u -p -u -p -r1.83 -r1.77.8.5
---- sw/source/filter/ww8/wrtw8esh.cxx 22 Feb 2005 08:22:24 -0000 1.83
-+++ sw/source/filter/ww8/wrtw8esh.cxx 10 Mar 2005 02:01:29 -0000 1.77.8.5
-@@ -571,7 +571,7 @@ bool RTLGraphicsHack(long &rLeft, long n
- return bRet;
- }
-
--bool RTLDrawingsHack(long &rLeft, long nWidth,
-+bool RTLDrawingsHack(long &rLeft, long nWidth,
- SwHoriOrient eHoriOri, SwRelationOrient eHoriRel, SwTwips nPageLeft,
- SwTwips nPageRight, SwTwips nPageSize)
- {
-@@ -603,7 +603,7 @@ bool SwWW8Writer::MiserableRTLFrmFmtHack
- if (FRMDIR_HORI_RIGHT_TOP != pDoc->GetTextDirection(rFrmFmt.GetPosition()))
- return false;
-
-- long nWidth = rRight - rLeft;
-+ sal_Int32 nWidth = rRight - rLeft;
- SwTwips nPageLeft, nPageRight;
- SwTwips nPageSize = CurrentPageWidth(nPageLeft, nPageRight);
-
-@@ -729,8 +729,8 @@ void PlcDrawObj::WritePlc(SwWW8Writer& r
- // spid
- SwWW8Writer::WriteLong(*rWrt.pTableStrm, aIter->mnShapeId);
-
-- sal_Int32 nLeft = aRect.Left() + nThick;
-- sal_Int32 nRight = aRect.Right() - nThick;
-+ long nLeft = aRect.Left() + nThick;
-+ long nRight = aRect.Right() - nThick;
-
- //Nasty swap for bidi if neccessary
- rWrt.MiserableRTLFrmFmtHack(nLeft, nRight, rFrmFmt);
-@@ -883,7 +883,7 @@ bool WW8_WrPlcTxtBoxes::WriteTxt(SwWW8Wr
- {
- bool bRet = false;
- rWrt.bInWriteEscher = true;
-- long& rccp=TXT_TXTBOX == nTyp ? rWrt.pFib->ccpTxbx : rWrt.pFib->ccpHdrTxbx;
-+ sal_Int32& rccp=TXT_TXTBOX == nTyp ? rWrt.pFib->ccpTxbx : rWrt.pFib->ccpHdrTxbx;
-
- bRet = WriteGenericTxt( rWrt, nTyp, rccp );
-
-@@ -2085,13 +2085,13 @@ SwEscherEx::SwEscherEx(SvStream* pStrm,
-
- EnterGroup( 0 );
-
-- ULONG nSecondShapeId = pSdrObjs == rWrt.pSdrObjs ? GetShapeID() : 0;
-+ sal_uInt32 nSecondShapeId = pSdrObjs == rWrt.pSdrObjs ? GetShapeID() : 0;
-
- // write now all Writer-/DrawObjects
- DrawObjPointerVector aSorted;
- MakeZOrderArrAndFollowIds(pSdrObjs->GetObjArr(), aSorted);
-
-- ULONG nShapeId=0;
-+ sal_uInt32 nShapeId=0;
- DrawObjPointerIter aEnd = aSorted.end();
- for (DrawObjPointerIter aIter = aSorted.begin(); aIter != aEnd; ++aIter)
- {
-Index: sw/source/filter/ww8/wrtw8sty.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/ww8/wrtw8sty.cxx,v
-retrieving revision 1.33
-retrieving revision 1.33.64.1
-diff -u -p -u -p -r1.33 -r1.33.64.1
---- sw/source/filter/ww8/wrtw8sty.cxx 25 May 2004 15:11:16 -0000 1.33
-+++ sw/source/filter/ww8/wrtw8sty.cxx 9 Sep 2004 09:53:06 -0000 1.33.64.1
-@@ -1765,7 +1765,7 @@ void WW8_WrPlcPostIt::Append( WW8_CP nCp
- }
-
- bool WW8_WrPlcSubDoc::WriteGenericTxt(SwWW8Writer& rWrt, BYTE nTTyp,
-- long& rCount)
-+ sal_Int32& rCount)
- {
- bool bRet = false;
- USHORT nLen = aCntnt.Count();
-@@ -1862,7 +1862,7 @@ bool WW8_WrPlcSubDoc::WriteGenericTxt(Sw
- }
-
- void WW8_WrPlcSubDoc::WriteGenericPlc( SwWW8Writer& rWrt, BYTE nTTyp,
-- long& rTxtStart, long& rTxtCount, long& rRefStart, long& rRefCount ) const
-+ WW8_FC& rTxtStart, sal_Int32& rTxtCount, WW8_FC& rRefStart, sal_Int32& rRefCount ) const
- {
- typedef ::std::vector<String>::iterator myiter;
-
-Index: sw/source/filter/ww8/wrtww8.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/ww8/wrtww8.cxx,v
-retrieving revision 1.71
-retrieving revision 1.67.8.4
-diff -u -p -u -p -r1.71 -r1.67.8.4
---- sw/source/filter/ww8/wrtww8.cxx 18 Jan 2005 14:28:38 -0000 1.71
-+++ sw/source/filter/ww8/wrtww8.cxx 10 Mar 2005 02:01:46 -0000 1.67.8.4
-@@ -748,7 +748,7 @@ bool WW8_WrPlcFld::Write(SwWW8Writer& rW
- if( WW8_WrPlc1::Count() <= 1 )
- return false;
-
-- long *pfc, *plc;
-+ sal_Int32 *pfc, *plc;
- switch (nTxtTyp)
- {
- case TXT_MAINTEXT:
-Index: sw/source/filter/ww8/wrtww8.hxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/ww8/wrtww8.hxx,v
-retrieving revision 1.64
-retrieving revision 1.59.96.4
-diff -u -p -u -p -r1.64 -r1.59.96.4
---- sw/source/filter/ww8/wrtww8.hxx 11 Jan 2005 12:35:05 -0000 1.64
-+++ sw/source/filter/ww8/wrtww8.hxx 21 Jan 2005 17:02:05 -0000 1.59.96.4
-@@ -765,9 +765,9 @@ protected:
- WW8_WrPlcSubDoc();
- virtual ~WW8_WrPlcSubDoc();
-
-- bool WriteGenericTxt(SwWW8Writer& rWrt, BYTE nTTyp, long& rCount);
-- void WriteGenericPlc( SwWW8Writer& rWrt, BYTE nTTyp, long& rTxtStt,
-- long& rTxtCnt, long& rRefStt, long& rRefCnt ) const;
-+ bool WriteGenericTxt(SwWW8Writer& rWrt, BYTE nTTyp, sal_Int32& rCount);
-+ void WriteGenericPlc( SwWW8Writer& rWrt, BYTE nTTyp, WW8_FC& rTxtStt,
-+ sal_Int32& rTxtCnt, WW8_FC& rRefStt, sal_Int32& rRefCnt ) const;
-
- virtual const SvULongs* GetShapeIdArr() const;
- };
-Index: sw/source/filter/ww8/ww8glsy.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/ww8/ww8glsy.cxx,v
-retrieving revision 1.20
-retrieving revision 1.18.238.3
-diff -u -p -u -p -r1.20 -r1.18.238.3
---- sw/source/filter/ww8/ww8glsy.cxx 11 Jan 2005 12:35:37 -0000 1.20
-+++ sw/source/filter/ww8/ww8glsy.cxx 18 Jan 2005 16:53:00 -0000 1.18.238.3
-@@ -355,7 +355,7 @@ UINT32 WW8GlossaryFib::FindGlossaryFibOf
- SvStream &rStrm, const WW8Fib &rFib)
- {
- WW8PLCF aPlc( &rTableStrm, rFib.fcPlcfsed, rFib.lcbPlcfsed, 12 );
-- long start,ende;
-+ WW8_CP start,ende;
- void *pData;
- aPlc.Get(start,ende,pData);
- UINT32 nPo = SVBT32ToLong((BYTE *)pData+2);
-Index: sw/source/filter/ww8/ww8graf.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/ww8/ww8graf.cxx,v
-retrieving revision 1.129
-retrieving revision 1.118.8.4
-diff -u -p -u -p -r1.129 -r1.118.8.4
---- sw/source/filter/ww8/ww8graf.cxx 16 Feb 2005 17:02:17 -0000 1.129
-+++ sw/source/filter/ww8/ww8graf.cxx 10 Mar 2005 02:00:44 -0000 1.118.8.4
-@@ -978,7 +978,7 @@ void SwWW8ImplReader::InsertTxbxAttrs(lo
- aSave.Restore(this);
- }
-
--bool SwWW8ImplReader::GetTxbxTextSttEndCp(long& rStartCp, long& rEndCp,
-+bool SwWW8ImplReader::GetTxbxTextSttEndCp(WW8_CP& rStartCp, WW8_CP& rEndCp,
- USHORT nTxBxS, USHORT nSequence)
- {
- // rasch den TextBox-PLCF greifen
-@@ -1113,7 +1113,7 @@ SwFrmFmt* SwWW8ImplReader::InsertTxbxTex
- rbEraseTextObj = false;
-
- String aString;
-- long nStartCp, nEndCp;
-+ WW8_CP nStartCp, nEndCp;
- bool bContainsGraphics = false;
- bool bTextWasRead = GetTxbxTextSttEndCp( nStartCp, nEndCp, nTxBxS,
- nSequence ) && GetTxbxText( aString, nStartCp, nEndCp );
-@@ -1515,7 +1515,7 @@ SdrObject* SwWW8ImplReader::ReadGrafPrim
- void SwWW8ImplReader::ReadGrafLayer1( WW8PLCFspecial* pPF, long nGrafAnchorCp )
- {
- pPF->SeekPos( nGrafAnchorCp );
-- long nStartFc;
-+ WW8_CP nStartFc;
- void* pF0;
- if( !pPF->Get( nStartFc, pF0 ) )
- {
-@@ -2618,7 +2618,7 @@ SwFrmFmt* SwWW8ImplReader::Read_GrafLaye
- //Normal case of Word 8+ version stuff
- pPF->SeekPos( nGrafAnchorCp );
-
-- long nStartFc;
-+ WW8_CP nStartFc;
- void* pF0;
- if( !pPF->Get( nStartFc, pF0 ) ){
- ASSERT( !this, "+Wo ist die Grafik (2) ?" );
-Index: sw/source/filter/ww8/ww8par.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/ww8/ww8par.cxx,v
-retrieving revision 1.151
-retrieving revision 1.136.64.5
-diff -u -p -u -p -r1.151 -r1.136.64.5
---- sw/source/filter/ww8/ww8par.cxx 22 Feb 2005 10:03:56 -0000 1.151
-+++ sw/source/filter/ww8/ww8par.cxx 10 Mar 2005 02:01:38 -0000 1.136.64.5
-@@ -2787,7 +2787,7 @@ bool SwWW8ImplReader::ReadChar(long nPos
- if (pTest && pTest->SeekPosExact(nPosCp+1+nCpOfs) &&
- pTest->Where() == nPosCp+1+nCpOfs)
- {
-- long nPos;
-+ WW8_CP nPos;
- void *pData;
- pTest->Get(nPos, pData);
- sal_uInt32 nData = SVBT32ToLong(*(SVBT32*)pData);
-@@ -3036,14 +3036,14 @@ bool SwWW8ImplReader::ReadText(long nSta
- pPlcxMan = new WW8PLCFMan( pSBase, nType, nStartCp );
- long nCpOfs = pPlcxMan->GetCpOfs(); // Offset fuer Header/Footer, Footnote
-
-- WW8_CP nNext = pPlcxMan->Where();
-+ long nNext = pPlcxMan->Where();
- SwTxtNode* pPreviousNode = 0;
- BYTE nDropLines = 0;
- SwCharFmt* pNewSwCharFmt = 0;
- const SwCharFmt* pFmt = 0;
- pStrm->Seek( pSBase->WW8Cp2Fc( nStartCp + nCpOfs, &bIsUnicode ) );
-
-- WW8_CP l = nStartCp;
-+ long l = nStartCp;
- while ( l<nStartCp+nTextLen )
- {
-
-@@ -4727,7 +4727,7 @@ BOOL SwMSDffManager::GetOLEStorageName(l
- // wasn't successful. Thus, continue in this case.
- // Note: Ask MM for initialization of <nStartCp> and <nEndCp>.
- // Note: Ask MM about assertions in method <rReader.GetTxbxTextSttEndCp(..)>.
-- long nStartCp, nEndCp;
-+ WW8_CP nStartCp, nEndCp;
- if ( rReader.GetTxbxTextSttEndCp(nStartCp, nEndCp,
- static_cast<sal_uInt16>((nOLEId >> 16) & 0xFFFF),
- static_cast<sal_uInt16>(nOLEId & 0xFFFF)) )
-Index: sw/source/filter/ww8/ww8par.hxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/ww8/ww8par.hxx,v
-retrieving revision 1.135
-retrieving revision 1.128.64.4
-diff -u -p -u -p -r1.135 -r1.128.64.4
---- sw/source/filter/ww8/ww8par.hxx 11 Jan 2005 13:26:42 -0000 1.135
-+++ sw/source/filter/ww8/ww8par.hxx 21 Jan 2005 17:03:22 -0000 1.128.64.4
-@@ -1293,7 +1293,7 @@ private:
- void InsertTxbxStyAttrs( SfxItemSet& rS, USHORT nColl );
- void InsertTxbxAttrs(long nStartCp, long nEndCp, bool bONLYnPicLocFc);
-
-- bool GetTxbxTextSttEndCp(long& rStartCp, long& rEndCp, USHORT nTxBxS,
-+ bool GetTxbxTextSttEndCp(WW8_CP& rStartCp, WW8_CP& rEndCp, USHORT nTxBxS,
- USHORT nSequence);
- bool GetTxbxText(String& rString, long StartCp, long nEndCp);
- SwFrmFmt* InsertTxbxText(SdrTextObj* pTextObj, Size* pObjSiz,
-@@ -1516,7 +1516,7 @@ public: // eigentlich private, geht
- eF_ResT Read_F_DocInfo( WW8FieldDesc* pF, String& rStr );
- eF_ResT Read_F_Author( WW8FieldDesc*, String& );
- eF_ResT Read_F_TemplName( WW8FieldDesc*, String& );
-- short GetTimeDatePara(String& rStr, ULONG& rFormat, USHORT &rLang,
-+ short GetTimeDatePara(String& rStr, sal_uInt32& rFormat, USHORT &rLang,
- int nWhichDefault, bool bHijri = false);
- bool ForceFieldLanguage(SwField &rFld, USHORT nLang);
- eF_ResT Read_F_DateTime( WW8FieldDesc*, String& rStr );
-Index: sw/source/filter/ww8/ww8par5.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/ww8/ww8par5.cxx,v
-retrieving revision 1.87
-retrieving revision 1.86.8.2
-diff -u -p -u -p -r1.87 -r1.86.8.2
---- sw/source/filter/ww8/ww8par5.cxx 16 Feb 2005 17:47:49 -0000 1.87
-+++ sw/source/filter/ww8/ww8par5.cxx 10 Mar 2005 02:00:53 -0000 1.86.8.2
-@@ -707,7 +707,7 @@ String GetWordDefaultDateStringAsUS(SvNu
- return sParams;
- }
-
--short SwWW8ImplReader::GetTimeDatePara(String& rStr, ULONG& rFormat,
-+short SwWW8ImplReader::GetTimeDatePara(String& rStr, sal_uInt32& rFormat,
- USHORT &rLang, int nWhichDefault, bool bHijri)
- {
- bool bRTL = false;
-Index: sw/source/filter/ww8/ww8par6.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/ww8/ww8par6.cxx,v
-retrieving revision 1.161
-retrieving revision 1.153.62.4
-diff -u -p -u -p -r1.161 -r1.153.62.4
---- sw/source/filter/ww8/ww8par6.cxx 27 Jan 2005 11:12:38 -0000 1.161
-+++ sw/source/filter/ww8/ww8par6.cxx 10 Mar 2005 02:01:01 -0000 1.153.62.4
-@@ -1003,7 +1003,7 @@ void wwSectionManager::CreateSep(const l
- pWkb->Where() == nTxtPos)
- {
- void* pData;
-- long nTest;
-+ WW8_CP nTest;
- pWkb->Get(nTest, pData);
- String sSectionName = mrReader.aLinkStringMap[SVBT16ToShort( ((WW8_WKB*)pData)->nLinkId) ];
- mrReader.ConvertFFileName(sSectionName, sSectionName);
-Index: sw/source/filter/ww8/ww8scan.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/ww8/ww8scan.cxx,v
-retrieving revision 1.114
-retrieving revision 1.110.8.2
-diff -u -p -u -p -r1.114 -r1.110.8.2
---- sw/source/filter/ww8/ww8scan.cxx 20 Sep 2004 15:21:14 -0000 1.114
-+++ sw/source/filter/ww8/ww8scan.cxx 20 Oct 2004 12:29:24 -0000 1.110.8.2
-@@ -1140,7 +1140,7 @@ WW8_CP WW8PLCFx_PCD::Where()
- return pPcdI ? pPcdI->Where() : LONG_MAX;
- }
-
--long WW8PLCFx_PCD::GetNoSprms( long& rStart, long& rEnd, long& rLen )
-+long WW8PLCFx_PCD::GetNoSprms( WW8_CP& rStart, WW8_CP& rEnd, long& rLen )
- {
- void* pData;
- rLen = 0;
-@@ -1190,7 +1190,7 @@ WW8_FC WW8PLCFx_PCD::AktPieceStartCp2Fc(
- }
-
-
--void WW8PLCFx_PCD::AktPieceFc2Cp( long& rStartPos, long& rEndPos,
-+void WW8PLCFx_PCD::AktPieceFc2Cp( WW8_CP& rStartPos, WW8_CP& rEndPos,
- const WW8ScannerBase *pSBase )
- {
- //No point going anywhere with this
-@@ -1460,7 +1460,7 @@ WW8_CP WW8ScannerBase::WW8Fc2Cp( WW8_FC
- for (pPieceIter->SetIdx(0);
- pPieceIter->GetIdx() < pPieceIter->GetIMax();(*pPieceIter)++)
- {
-- long nCpStart, nCpEnd;
-+ WW8_CP nCpStart, nCpEnd;
- void* pData;
- if( !pPieceIter->Get( nCpStart, nCpEnd, pData ) )
- { // ausserhalb PLCFfpcd ?
-@@ -1535,7 +1535,7 @@ WW8_FC WW8ScannerBase::WW8Cp2Fc(WW8_CP n
- ASSERT( !this, "Falscher CP an WW8Cp2Fc() uebergeben" );
- return LONG_MAX;
- }
-- long nCpStart, nCpEnd;
-+ WW8_CP nCpStart, nCpEnd;
- void* pData;
- if( !pPieceIter->Get( nCpStart, nCpEnd, pData ) )
- {
-@@ -1813,7 +1813,7 @@ WW8ScannerBase::~WW8ScannerBase()
- static bool WW8SkipField(WW8PLCFspecial& rPLCF)
- {
- void* pData;
-- long nP;
-+ WW8_CP nP;
-
- if (!rPLCF.Get(nP, pData)) // Ende des PLCFspecial ?
- return false;
-@@ -2164,12 +2164,12 @@ bool WW8PLCFspecial::SeekPosExact(long n
- return false;
- }
-
--bool WW8PLCFspecial::Get(long& rPos, void*& rpValue) const
-+bool WW8PLCFspecial::Get(WW8_CP& rPos, void*& rpValue) const
- {
- return GetData( nIdx, rPos, rpValue );
- }
-
--bool WW8PLCFspecial::GetData(long nInIdx, long& rPos, void*& rpValue) const
-+bool WW8PLCFspecial::GetData(WW8_CP nInIdx, WW8_CP& rPos, void*& rpValue) const
- {
- if ( nInIdx >= nIMax )
- {
-@@ -2313,7 +2313,7 @@ bool WW8PLCF::SeekPos(long nPos)
- return false;
- }
-
--bool WW8PLCF::Get(long& rStart, long& rEnd, void*& rpValue) const
-+bool WW8PLCF::Get(WW8_CP& rStart, WW8_CP& rEnd, void*& rpValue) const
- {
- if ( nIdx >= nIMax )
- {
-@@ -2326,7 +2326,7 @@ bool WW8PLCF::Get(long& rStart, long& rE
- return true;
- }
-
--long WW8PLCF::Where() const
-+WW8_CP WW8PLCF::Where() const
- {
- if ( nIdx >= nIMax )
- return LONG_MAX;
-@@ -2400,7 +2400,7 @@ bool WW8PLCFpcd_Iter::SeekPos(long nPos)
- return false;
- }
-
--bool WW8PLCFpcd_Iter::Get(long& rStart, long& rEnd, void*& rpValue) const
-+bool WW8PLCFpcd_Iter::Get(WW8_CP& rStart, WW8_CP& rEnd, void*& rpValue) const
- {
- if( nIdx >= rPLCF.nIMax )
- {
-@@ -2413,7 +2413,7 @@ bool WW8PLCFpcd_Iter::Get(long& rStart,
- return true;
- }
-
--long WW8PLCFpcd_Iter::Where() const
-+WW8_FC WW8PLCFpcd_Iter::Where() const
- {
- if ( nIdx >= rPLCF.nIMax )
- return LONG_MAX;
-@@ -2621,7 +2621,7 @@ bool WW8PLCFx_Fc_FKP::WW8Fkp::SeekPos(WW
- return false;
- }
-
--BYTE* WW8PLCFx_Fc_FKP::WW8Fkp::Get(WW8_FC& rStart, WW8_FC& rEnd, long& rLen)
-+BYTE* WW8PLCFx_Fc_FKP::WW8Fkp::Get(WW8_FC& rStart, WW8_FC& rEnd, WW8_CP& rLen)
- const
- {
- rLen = 0;
-@@ -2649,7 +2649,7 @@ bool WW8PLCFx_Fc_FKP::WW8Fkp::SetIdx(sal
- return false;
- }
-
--BYTE* WW8PLCFx_Fc_FKP::WW8Fkp::GetLenAndIStdAndSprms(long& rLen) const
-+BYTE* WW8PLCFx_Fc_FKP::WW8Fkp::GetLenAndIStdAndSprms(WW8_CP& rLen) const
- {
- rLen = maEntries[mnIdx].mnLen;
- return maEntries[mnIdx].mpData;
-@@ -2660,7 +2660,7 @@ const BYTE* WW8PLCFx_Fc_FKP::WW8Fkp::Has
- if (mnIdx >= mnIMax)
- return 0;
-
-- long nLen;
-+ WW8_CP nLen;
- BYTE* pSprms = GetLenAndIStdAndSprms( nLen );
-
- WW8SprmIter aIter(pSprms, nLen, maSprmParser);
-@@ -2673,7 +2673,7 @@ bool WW8PLCFx_Fc_FKP::WW8Fkp::HasSprm(US
- if (mnIdx >= mnIMax)
- return false;
-
-- long nLen;
-+ WW8_CP nLen;
- BYTE* pSprms = GetLenAndIStdAndSprms( nLen );
-
- WW8SprmIter aIter(pSprms, nLen, maSprmParser);
-@@ -2698,7 +2698,7 @@ void WW8PLCFx::GetSprms( WW8PLCFxDesc* p
- return;
- }
-
--long WW8PLCFx::GetNoSprms( long& rStart, long& rEnd, long& rLen )
-+WW8_CP WW8PLCFx::GetNoSprms( WW8_CP& rStart, WW8_CP& rEnd, WW8_CP& rLen )
- {
- ASSERT( !this, "Falsches GetNoSprms gerufen" );
- rStart = rEnd = LONG_MAX;
-@@ -2730,7 +2730,7 @@ public:
- //-----------------------------------------
- bool WW8PLCFx_Fc_FKP::NewFkp()
- {
-- long nPLCFStart, nPLCFEnd;
-+ WW8_CP nPLCFStart, nPLCFEnd;
- void* pPage;
-
- static const int WW8FkpSizeTabVer6[ PLCF_END ] =
-@@ -2859,7 +2859,7 @@ bool WW8PLCFx_Fc_FKP::SeekPos(WW8_FC nFc
- bool bRet = pPLCF->SeekPos(nFcPos);
-
- // make FKP invalid?
-- long nPLCFStart, nPLCFEnd;
-+ WW8_CP nPLCFStart, nPLCFEnd;
- void* pPage;
- if( pFkp && pPLCF->Get( nPLCFStart, nPLCFEnd, pPage ) )
- {
-@@ -2888,7 +2888,7 @@ WW8_FC WW8PLCFx_Fc_FKP::Where()
- return Where(); // am einfachsten rekursiv
- }
-
--BYTE* WW8PLCFx_Fc_FKP::GetSprmsAndPos(WW8_FC& rStart, WW8_FC& rEnd, long& rLen)
-+BYTE* WW8PLCFx_Fc_FKP::GetSprmsAndPos(WW8_FC& rStart, WW8_FC& rEnd, WW8_CP& rLen)
- {
- rLen = 0; // Default
- rStart = rEnd = LONG_MAX;
-@@ -3155,7 +3155,7 @@ void WW8PLCFx_Cp_FKP::GetSprms(WW8PLCFxD
- FC of the piece, the end of the paragraph that contains the
- character is at the FKP FC minus 1.
- */
-- long nCpStart, nCpEnd;
-+ WW8_CP nCpStart, nCpEnd;
- void* pData;
- pPieceIter->Get(nCpStart, nCpEnd, pData);
-
-@@ -3271,7 +3271,7 @@ WW8PLCFx& WW8PLCFx_Cp_FKP::operator ++(
- return *this;
- }
-
-- long nFkpLen; // Fkp-Eintrag
-+ WW8_CP nFkpLen; // Fkp-Eintrag
- // Fkp-Eintrag holen
- WW8PLCFx_Fc_FKP::GetSprmsAndPos(nAttrStart, nAttrEnd, nFkpLen);
-
-@@ -3511,7 +3511,7 @@ void WW8PLCFx_SubDoc::GetSprms(WW8PLCFxD
- ULONG nNr = pRef->GetIdx();
-
- void *pData;
-- long nFoo;
-+ WW8_CP nFoo;
- if (!pRef->Get(p->nStartPos, nFoo, pData))
- {
- p->nEndPos = p->nStartPos = LONG_MAX;
-@@ -3619,7 +3619,7 @@ WW8_CP WW8PLCFx_FLD::Where()
- bool WW8PLCFx_FLD::StartPosIsFieldStart()
- {
- void* pData;
-- long nTest;
-+ WW8_CP nTest;
- if (
- (!pPLCF || !pPLCF->Get(nTest, pData) ||
- ((((BYTE*)pData)[0] & 0x1f) != 0x13))
-@@ -3639,7 +3639,7 @@ bool WW8PLCFx_FLD::EndPosIsFieldEnd()
- (*pPLCF)++;
-
- void* pData;
-- long nTest;
-+ WW8_CP nTest;
- if ( pPLCF->Get(nTest, pData) && ((((BYTE*)pData)[0] & 0x1f) == 0x15) )
- bRet = true;
-
-@@ -3664,7 +3664,7 @@ void WW8PLCFx_FLD::GetSprms(WW8PLCFxDesc
-
- long n = pPLCF->GetIdx();
-
-- long nP;
-+ WW8_CP nP;
- void *pData;
- if (!pPLCF->Get(nP, pData)) // Ende des PLCFspecial ?
- {
-@@ -3902,7 +3902,7 @@ WW8_CP WW8PLCFx_Book::Where()
- return pBook[nIsEnd]->Where();
- }
-
--long WW8PLCFx_Book::GetNoSprms( long& rStart, long& rEnd, long& rLen )
-+WW8_CP WW8PLCFx_Book::GetNoSprms( WW8_CP& rStart, WW8_CP& rEnd, WW8_CP& rLen )
- {
- void* pData;
- rEnd = LONG_MAX;
-Index: sw/source/filter/ww8/ww8scan.hxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/ww8/ww8scan.hxx,v
-retrieving revision 1.69
-retrieving revision 1.67.216.2
-diff -u -p -u -p -r1.69 -r1.67.216.2
---- sw/source/filter/ww8/ww8scan.hxx 20 Sep 2004 15:21:29 -0000 1.69
-+++ sw/source/filter/ww8/ww8scan.hxx 20 Oct 2004 12:26:50 -0000 1.67.216.2
-@@ -223,9 +223,9 @@ struct WW8FieldDesc
- {
- long nLen; // Gesamtlaenge ( zum Text ueberlesen )
- WW8_CP nSCode; // Anfang Befehlscode
-- long nLCode; // Laenge
-+ WW8_CP nLCode; // Laenge
- WW8_CP nSRes; // Anfang Ergebnis
-- long nLRes; // Laenge ( == 0, falls kein Ergebnis )
-+ WW8_CP nLRes; // Laenge ( == 0, falls kein Ergebnis )
- USHORT nId; // WW-Id fuer Felder
- BYTE nOpt; // WW-Flags ( z.B.: vom User geaendert )
- BYTE bCodeNest:1; // Befehl rekursiv verwendet
-@@ -255,7 +255,7 @@ private:
- INT32* pPLCF_PosArray; // Pointer auf Pos-Array und auf ganze Struktur
- BYTE* pPLCF_Contents; // Pointer auf Inhalts-Array-Teil des Pos-Array
- long nIMax; // Anzahl der Elemente
-- long nIdx; // Merker, wo wir gerade sind
-+ WW8_CP nIdx; // Merker, wo wir gerade sind
- long nStru;
- public:
- WW8PLCFspecial( SvStream* pSt, long nFilePos, long nPLCF,
-@@ -267,10 +267,10 @@ public:
- bool SeekPos(long nPos); // geht ueber FC- bzw. CP-Wert
- // bzw. naechste groesseren Wert
- bool SeekPosExact(long nPos);
-- long Where() const
-+ WW8_FC Where() const
- { return ( nIdx >= nIMax ) ? LONG_MAX : pPLCF_PosArray[nIdx]; }
-- bool Get(long& rStart, void*& rpValue) const;
-- bool GetData(long nIdx, long& rPos, void*& rpValue) const;
-+ bool Get(WW8_CP& rStart, void*& rpValue) const;
-+ bool GetData(WW8_CP nIdx, WW8_CP& rPos, void*& rpValue) const;
-
- const void* GetData( long nInIdx ) const
- {
-@@ -346,8 +346,8 @@ public:
- void SetIdx( long nI ) { nIdx = nI; }
- long GetIMax() const { return nIMax; }
- bool SeekPos(long nPos);
-- long Where() const;
-- bool Get(long& rStart, long& rEnd, void*& rpValue) const;
-+ WW8_FC Where() const;
-+ bool Get(WW8_CP& rStart, WW8_CP& rEnd, void*& rpValue) const;
- WW8PLCF& operator ++( int ) { if( nIdx < nIMax ) nIdx++; return *this; }
-
- const void* GetData( long nInIdx ) const
-@@ -386,8 +386,8 @@ public:
- void SetIdx( long nI ) { nIdx = nI; }
- long GetIMax() const { return rPLCF.nIMax; }
- bool SeekPos(long nPos);
-- long Where() const;
-- bool Get(long& rStart, long& rEnd, void*& rpValue) const;
-+ WW8_FC Where() const;
-+ bool Get(WW8_CP& rStart, WW8_CP& rEnd, void*& rpValue) const;
- WW8PLCFpcd_Iter& operator ++( int )
- {
- if( nIdx < rPLCF.nIMax )
-@@ -425,9 +425,9 @@ public:
- virtual ULONG GetIdx2() const;
- virtual void SetIdx2( ULONG nIdx );
- virtual bool SeekPos(WW8_CP nCpPos) = 0;
-- virtual long Where() = 0;
-+ virtual WW8_FC Where() = 0;
- virtual void GetSprms( WW8PLCFxDesc* p );
-- virtual long GetNoSprms( long& rStart, long&, long& rLen );
-+ virtual WW8_CP GetNoSprms( WW8_CP& rStart, WW8_CP&, WW8_CP& rLen );
- virtual WW8PLCFx& operator ++( int ) = 0;
- virtual USHORT GetIstd() const { return 0xffff; }
- virtual void Save( WW8PLCFxSave1& rSave ) const;
-@@ -458,7 +458,7 @@ public:
- virtual ULONG GetIdx() const;
- virtual void SetIdx( ULONG nI );
- virtual bool SeekPos(WW8_CP nCpPos);
-- virtual long Where();
-+ virtual WW8_FC Where();
- virtual void GetSprms( WW8PLCFxDesc* p );
- virtual WW8PLCFx& operator ++( int );
-
-@@ -483,12 +483,12 @@ public:
- virtual ULONG GetIdx() const;
- virtual void SetIdx( ULONG nI );
- virtual bool SeekPos(WW8_CP nCpPos);
-- virtual long Where();
-- virtual long GetNoSprms( long& rStart, long&, long& rLen );
-+ virtual WW8_FC Where();
-+ virtual long GetNoSprms( WW8_CP& rStart, WW8_CP&, long& rLen );
- virtual WW8PLCFx& operator ++( int );
- WW8_CP AktPieceStartFc2Cp( WW8_FC nStartPos );
- WW8_FC AktPieceStartCp2Fc( WW8_CP nCp );
-- void AktPieceFc2Cp(long& rStartPos, long& rEndPos,
-+ void AktPieceFc2Cp(WW8_CP& rStartPos, WW8_CP& rEndPos,
- const WW8ScannerBase *pSBase);
- WW8PLCFpcd_Iter* GetPLCFIter() { return pPcdI; }
- void SetClipStart(WW8_CP nIn) { nClipStart = nIn; }
-@@ -559,14 +559,14 @@ public:
- mnIdx++;
- return *this;
- }
-- BYTE* Get( WW8_FC& rStart, WW8_FC& rEnd, long& rLen ) const;
-+ BYTE* Get( WW8_FC& rStart, WW8_FC& rEnd, WW8_CP& rLen ) const;
- sal_uInt16 GetIstd() const { return maEntries[mnIdx].mnIStd; }
-
- /*
- liefert einen echten Pointer auf das Sprm vom Typ nId,
- falls ein solches im Fkp drin ist.
- */
-- BYTE* GetLenAndIStdAndSprms(long& rLen) const;
-+ BYTE* GetLenAndIStdAndSprms(WW8_CP& rLen) const;
-
- /*
- ruft GetLenAndIStdAndSprms() auf...
-@@ -615,7 +615,7 @@ public:
- virtual void SetIdx( ULONG nIdx );
- virtual bool SeekPos(WW8_FC nFcPos);
- virtual WW8_FC Where();
-- BYTE* GetSprmsAndPos( WW8_FC& rStart, WW8_FC& rEnd, long& rLen );
-+ BYTE* GetSprmsAndPos( WW8_FC& rStart, WW8_FC& rEnd, WW8_CP& rLen );
- virtual WW8PLCFx& operator ++( int );
- virtual USHORT GetIstd() const;
- void GetPCDSprms( WW8PLCFxDesc& rDesc );
-@@ -678,7 +678,7 @@ public:
- virtual void SetIdx( ULONG nIdx );
- long GetIMax() const { return ( pPLCF ) ? pPLCF->GetIMax() : 0; }
- virtual bool SeekPos(WW8_CP nCpPos);
-- virtual long Where();
-+ virtual WW8_FC Where();
- virtual void GetSprms( WW8PLCFxDesc* p );
- virtual WW8PLCFx& operator ++( int );
- const BYTE* HasSprm( USHORT nId ) const;
-@@ -706,7 +706,7 @@ public:
- virtual ULONG GetIdx() const;
- virtual void SetIdx( ULONG nIdx );
- virtual bool SeekPos(WW8_CP nCpPos);
-- virtual long Where();
-+ virtual WW8_FC Where();
-
- // liefert Reference Descriptoren
- const void* GetData( long nIdx = -1 ) const
-@@ -736,7 +736,7 @@ public:
- virtual ULONG GetIdx() const;
- virtual void SetIdx( ULONG nIdx );
- virtual bool SeekPos(WW8_CP nCpPos);
-- virtual long Where();
-+ virtual WW8_FC Where();
- virtual void GetSprms(WW8PLCFxDesc* p);
- virtual WW8PLCFx& operator ++( int );
- bool StartPosIsFieldStart();
-@@ -768,8 +768,8 @@ public:
- virtual ULONG GetIdx2() const;
- virtual void SetIdx2( ULONG nIdx );
- virtual bool SeekPos(WW8_CP nCpPos);
-- virtual long Where();
-- virtual long GetNoSprms( long& rStart, long& rEnd, long& rLen );
-+ virtual WW8_FC Where();
-+ virtual WW8_CP GetNoSprms( WW8_CP& rStart, WW8_CP& rEnd, WW8_CP& rLen );
- virtual WW8PLCFx& operator ++( int );
- const String* GetName() const;
- WW8_CP GetStartPos() const
-@@ -821,8 +821,8 @@ struct WW8PLCFxDesc
- const BYTE* pMemPos;// wo liegen die Sprm(s)
- long nOrigSprmsLen;
-
-- long nStartPos;
-- long nEndPos;
-+ WW8_CP nStartPos;
-+ WW8_CP nEndPos;
-
- long nOrigStartPos;
- long nOrigEndPos; // The ending character position of a paragraph is
-@@ -836,8 +836,8 @@ struct WW8PLCFxDesc
- // it can be used as the beginning cp of the next set
- // of properties
-
-- long nCp2OrIdx; // wo liegen die NoSprm(s)
-- long nSprmsLen; // wie viele Bytes fuer weitere Sprms / Laenge Fussnote
-+ WW8_CP nCp2OrIdx; // wo liegen die NoSprm(s)
-+ WW8_CP nSprmsLen; // wie viele Bytes fuer weitere Sprms / Laenge Fussnote
- long nCpOfs; // fuer Offset Header .. Footnote
- bool bFirstSprm; // fuer Erkennung erster Sprm einer Gruppe
- bool bRealLineEnd; // false bei Pap-Piece-Ende
-@@ -897,7 +897,7 @@ public:
- Where fragt, an welcher naechsten Position sich irgendein
- Attr aendert...
- */
-- long Where() const;
-+ WW8_FC Where() const;
-
- bool Get(WW8PLCFManResult* pResult) const;
- WW8PLCFMan& operator ++( int );
-Index: sw/source/filter/xml/swxml.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/xml/swxml.cxx,v
-retrieving revision 1.60
-retrieving revision 1.60.8.1
-diff -u -p -u -p -r1.60 -r1.60.8.1
---- sw/source/filter/xml/swxml.cxx 11 Jan 2005 12:37:05 -0000 1.60
-+++ sw/source/filter/xml/swxml.cxx 21 Jan 2005 17:04:29 -0000 1.60.8.1
-@@ -447,7 +447,7 @@ sal_Int32 ReadThroughComponent(
- }
- }
-
--sal_uInt32 XMLReader::Read( SwDoc &rDoc, const String& rBaseURL, SwPaM &rPaM, const String & rName )
-+ULONG XMLReader::Read( SwDoc &rDoc, const String& rBaseURL, SwPaM &rPaM, const String & rName )
- {
- // Get service factory
- Reference< lang::XMultiServiceFactory > xServiceFactory =
-Index: sw/source/filter/xml/wrtxml.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/xml/wrtxml.cxx,v
-retrieving revision 1.48
-retrieving revision 1.48.8.1
-diff -u -p -u -p -r1.48 -r1.48.8.1
---- sw/source/filter/xml/wrtxml.cxx 11 Jan 2005 12:37:19 -0000 1.48
-+++ sw/source/filter/xml/wrtxml.cxx 21 Jan 2005 17:04:49 -0000 1.48.8.1
-@@ -167,7 +167,7 @@ __EXPORT SwXMLWriter::~SwXMLWriter()
- }
-
-
--sal_uInt32 SwXMLWriter::_Write( SfxMedium* pTargetMedium )
-+ULONG SwXMLWriter::_Write( SfxMedium* pTargetMedium )
- {
- DBG_ASSERT( pTargetMedium, "No medium is provided!" );
- // Get service factory
-@@ -545,16 +545,16 @@ sal_uInt32 SwXMLWriter::_Write()
- return 0;
- }
-
--sal_uInt32 SwXMLWriter::WriteStorage()
-+ULONG SwXMLWriter::WriteStorage()
- {
- return _Write();
- }
-
--sal_uInt32 SwXMLWriter::WriteMedium( SfxMedium& aTargetMedium )
-+ULONG SwXMLWriter::WriteMedium( SfxMedium& aTargetMedium )
- {
- return _Write( &aTargetMedium );
- }
-
--sal_uInt32 SwXMLWriter::Write( SwPaM& rPaM, SfxMedium& rMed,
-+ULONG SwXMLWriter::Write( SwPaM& rPaM, SfxMedium& rMed,
- const String* pFileName )
- {
- return IsStgWriter()
-Index: sw/source/filter/xml/wrtxml.hxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/xml/wrtxml.hxx,v
-retrieving revision 1.8
-retrieving revision 1.8.8.1
-diff -u -p -u -p -r1.8 -r1.8.8.1
---- sw/source/filter/xml/wrtxml.hxx 11 Jan 2005 12:37:33 -0000 1.8
-+++ sw/source/filter/xml/wrtxml.hxx 21 Jan 2005 17:05:05 -0000 1.8.8.1
-@@ -81,11 +81,11 @@ namespace com { namespace sun { namespac
-
- class SwXMLWriter : public StgWriter
- {
-- sal_uInt32 _Write( SfxMedium* pTargetMedium = NULL );
-+ ULONG _Write( SfxMedium* pTargetMedium = NULL );
-
- protected:
-- virtual sal_uInt32 WriteStorage();
-- virtual sal_uInt32 WriteMedium( SfxMedium& aTargetMedium );
-+ virtual ULONG WriteStorage();
-+ virtual ULONG WriteMedium( SfxMedium& aTargetMedium );
-
- public:
-
-Index: sw/source/filter/xml/xmlimp.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/xml/xmlimp.cxx,v
-retrieving revision 1.86
-retrieving revision 1.86.98.1
-diff -u -p -u -p -r1.86 -r1.86.98.1
---- sw/source/filter/xml/xmlimp.cxx 26 Nov 2004 13:30:12 -0000 1.86
-+++ sw/source/filter/xml/xmlimp.cxx 21 Jan 2005 17:05:15 -0000 1.86.98.1
-@@ -843,7 +843,7 @@ void SwXMLImport::endDocument( void )
- if( !pPos->nContent.GetIndex() )
- {
- SwTxtNode* pCurrNd;
-- sal_uInt32 nNodeIdx = pPos->nNode.GetIndex();
-+ ULONG nNodeIdx = pPos->nNode.GetIndex();
- pDoc = pPaM->GetDoc();
-
- DBG_ASSERT( pPos->nNode.GetNode().IsCntntNode(),
-Index: sw/source/filter/xml/xmlimpit.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/xml/xmlimpit.cxx,v
-retrieving revision 1.12
-retrieving revision 1.10.62.3
-diff -u -p -u -p -r1.12 -r1.10.62.3
---- sw/source/filter/xml/xmlimpit.cxx 9 Nov 2004 12:34:35 -0000 1.12
-+++ sw/source/filter/xml/xmlimpit.cxx 18 Jan 2005 16:54:58 -0000 1.10.62.3
-@@ -798,7 +798,7 @@ sal_Bool SvXMLImportItemMapper::PutXMLVa
- }
- else if( -1 != aToken.indexOf( sal_Unicode('%') ) )
- {
-- long nPrc = 50;
-+ sal_Int32 nPrc = 50;
- if( rUnitConverter.convertPercent( nPrc, aToken ) )
- {
- if( !bHori )
-Index: sw/source/filter/xml/xmlithlp.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/xml/xmlithlp.cxx,v
-retrieving revision 1.1
-retrieving revision 1.1.766.1
-diff -u -p -u -p -r1.1 -r1.1.766.1
---- sw/source/filter/xml/xmlithlp.cxx 9 Jul 2001 20:10:43 -0000 1.1
-+++ sw/source/filter/xml/xmlithlp.cxx 9 Sep 2004 09:53:11 -0000 1.1.766.1
-@@ -224,7 +224,7 @@ sal_Bool lcl_frmitems_parseXMLBorder( co
- rWidth = 0;
- rNamedWidth = USHRT_MAX;
-
-- long nTemp;
-+ sal_Int32 nTemp;
- while( aTokens.getNextToken( aToken ) && aToken.getLength() != 0 )
- {
- if( !rHasWidth &&
-Index: sw/source/filter/xml/xmltble.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/xml/xmltble.cxx,v
-retrieving revision 1.31
-retrieving revision 1.31.98.1
-diff -u -p -u -p -r1.31 -r1.31.98.1
---- sw/source/filter/xml/xmltble.cxx 26 Nov 2004 13:30:27 -0000 1.31
-+++ sw/source/filter/xml/xmltble.cxx 21 Jan 2005 17:05:24 -0000 1.31.98.1
-@@ -746,7 +746,7 @@ void SwXMLExport::ExportTableLinesAutoSt
- pColumn->SetWidthOpt( (sal_uInt16)nColAbsWidth, sal_False );
- }
-
-- sal_uInt32 nExpPos = 0;
-+ ULONG nExpPos = 0;
- if( rExpCols.Seek_Entry( pColumn, &nExpPos ) )
- {
- pColumn->SetStyleName(
-Index: sw/source/filter/xml/xmltexti.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/xml/xmltexti.cxx,v
-retrieving revision 1.40
-retrieving revision 1.33.304.4
-diff -u -p -u -p -r1.40 -r1.33.304.4
---- sw/source/filter/xml/xmltexti.cxx 25 Feb 2005 09:28:02 -0000 1.40
-+++ sw/source/filter/xml/xmltexti.cxx 10 Mar 2005 02:02:32 -0000 1.33.304.4
-@@ -216,7 +216,7 @@ const XMLServiceMapEntry_Impl aServiceMa
- };
- static void lcl_putHeightAndWidth ( SfxItemSet &rItemSet,
- sal_Int32 nHeight, sal_Int32 nWidth,
-- sal_Int32 *pTwipHeight=0, sal_Int32 *pTwipWidth=0 )
-+ long *pTwipHeight=0, long *pTwipWidth=0 )
- {
- if( nWidth > 0 && nHeight > 0 )
- {
-Index: sw/source/ui/app/docsh2.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/ui/app/docsh2.cxx,v
-retrieving revision 1.74
-retrieving revision 1.64.62.5
-diff -u -p -u -p -r1.74 -r1.64.62.5
---- sw/source/ui/app/docsh2.cxx 22 Feb 2005 08:23:34 -0000 1.74
-+++ sw/source/ui/app/docsh2.cxx 10 Mar 2005 01:26:00 -0000 1.64.62.5
-@@ -1173,9 +1173,9 @@ void SwDocShell::Execute(SfxRequest& rRe
- if ( aLockBytes.Stat( &aStat, SVSTATFLAG_DEFAULT ) == ERRCODE_NONE )
- {
- sal_uInt32 nLen = aStat.nSize;
-- ULONG nRead = 0;
-+ sal_Size nRead = 0;
- com::sun::star::uno::Sequence< sal_Int8 > aSeq( nLen );
-- aLockBytes.ReadAt( 0, aSeq.getArray(), nLen, &nRead );
-+ aLockBytes.ReadAt( 0UL, aSeq.getArray(), nLen, &nRead );
-
- ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > aArgs(1);
- aArgs[0].Name = ::rtl::OUString::createFromAscii("RtfOutline");
-@@ -1244,7 +1244,7 @@ void SwDocShell::Execute(SfxRequest& rRe
- if ( aLockBytes.Stat( &aStat, SVSTATFLAG_DEFAULT ) == ERRCODE_NONE )
- {
- sal_uInt32 nLen = aStat.nSize;
-- ULONG nRead = 0;
-+ sal_Size nRead = 0;
- com::sun::star::uno::Sequence< sal_Int8 > aSeq( nLen );
- aLockBytes.ReadAt( 0, aSeq.getArray(), nLen, &nRead );
-
-Index: sw/source/ui/shells/tabsh.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/ui/shells/tabsh.cxx,v
-retrieving revision 1.33
-retrieving revision 1.33.124.1
-diff -u -p -u -p -r1.33 -r1.33.124.1
---- sw/source/ui/shells/tabsh.cxx 9 Nov 2004 16:24:06 -0000 1.33
-+++ sw/source/ui/shells/tabsh.cxx 21 Jan 2005 17:06:12 -0000 1.33.124.1
-@@ -906,7 +906,7 @@ void SwTableShell::Execute(SfxRequest &r
-
- if( pItem && 0 != ((SvxNumberInfoItem*)pItem)->GetDelCount() )
- {
-- const ULONG* pDelArr = ((SvxNumberInfoItem*)
-+ const sal_uInt32* pDelArr = ((SvxNumberInfoItem*)
- pItem)->GetDelArray();
-
- for ( USHORT i = 0; i < ((SvxNumberInfoItem*)pItem)->GetDelCount(); i++ )
-Index: sw/source/ui/uiview/viewstat.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/ui/uiview/viewstat.cxx,v
-retrieving revision 1.32
-retrieving revision 1.32.96.1
-diff -u -p -u -p -r1.32 -r1.32.96.1
---- sw/source/ui/uiview/viewstat.cxx 26 Nov 2004 20:00:01 -0000 1.32
-+++ sw/source/ui/uiview/viewstat.cxx 21 Jan 2005 17:06:38 -0000 1.32.96.1
-@@ -615,7 +615,7 @@ void SwView::GetDrawState(SfxItemSet &rS
- Beschreibung:
- --------------------------------------------------------------------*/
-
--sal_Bool SwView::HasUIFeature( sal_uInt32 nFeature )
-+sal_Bool SwView::HasUIFeature( ULONG nFeature )
- {
- sal_Bool bRet = sal_False;
- switch(nFeature)
-Index: sw/source/ui/utlui/content.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/ui/utlui/content.cxx,v
-retrieving revision 1.34
-retrieving revision 1.34.76.1
-diff -u -p -u -p -r1.34 -r1.34.76.1
---- sw/source/ui/utlui/content.cxx 8 Sep 2004 15:04:57 -0000 1.34
-+++ sw/source/ui/utlui/content.cxx 21 Jan 2005 17:06:56 -0000 1.34.76.1
-@@ -2327,7 +2327,7 @@ DragDropMode SwContentTree::NotifyStartD
-
-
- sal_Bool SwContentTree::NotifyMoving( SvLBoxEntry* pTarget,
-- SvLBoxEntry* pEntry, SvLBoxEntry*& , sal_uInt32& )
-+ SvLBoxEntry* pEntry, SvLBoxEntry*& , ULONG& )
- {
- if(!bDocChgdInDragging)
- {
-@@ -2367,7 +2367,7 @@ sal_Bool SwContentTree::NotifyMoving( S
-
-
- sal_Bool SwContentTree::NotifyCopying( SvLBoxEntry* pTarget,
-- SvLBoxEntry* pEntry, SvLBoxEntry*& , sal_uInt32& )
-+ SvLBoxEntry* pEntry, SvLBoxEntry*& , ULONG& )
- {
- if(!bDocChgdInDragging)
- {
-Index: tools/bootstrp/command.cxx
-===================================================================
-RCS file: /cvs/util/tools/bootstrp/command.cxx,v
-retrieving revision 1.8
-retrieving revision 1.8.178.1
-diff -u -p -u -p -r1.8 -r1.8.178.1
---- tools/bootstrp/command.cxx 28 Apr 2003 17:20:08 -0000 1.8
-+++ tools/bootstrp/command.cxx 6 Oct 2004 11:42:55 -0000 1.8.178.1
-@@ -59,10 +59,6 @@
- *
- ************************************************************************/
-
--#ifdef SCO
--#define _IOSTREAM_H
--#endif
--
- #ifdef PRECOMPILED
- #include "first.hxx"
- #endif
-@@ -84,7 +80,7 @@
-
- //#define MH_TEST2 1 // fuers direkte Testen
-
--#if defined (DOS) || defined (WNT) || defined (WIN) || defined(OS2)
-+#if defined (WNT)
- #include <process.h> // for _SPAWN
- #endif
- #ifdef UNX
-@@ -98,30 +94,20 @@
- #endif
- #define P_WAIT 1 // erstmal einen dummz
- #endif
--#ifdef MAC
--#define P_WAIT 1 // erstmal einen dummz
--#endif
- #ifdef WTC
- #define _spawnv spawnv
- #endif
-
--#ifdef OS2
--#include <svpm.h>
--#define _spawnv spawnv
--#endif
--#if defined (WIN) || defined (WNT)
-+#if defined (WNT)
- #include <svwin.h>
- #endif
-
--#if defined( WNT ) || defined ( OS2 ) || defined ( WIN ) || defined (DOS )
-+#if defined( WNT )
- #define cPathSeperator ';'
- #endif
- #ifdef UNX
- #define cPathSeperator ':'
- #endif
--#ifdef MAC
--#define cPathSeperator ','
--#endif
-
- /*****************************************************************************/
- CommandLine::CommandLine(BOOL bWrite)
-@@ -471,15 +457,8 @@ CCommand::operator const int()
- {
- int nRet;
- #ifndef UNX
--#if defined( WNT ) || defined( DOS ) || defined( WIN )
-+#if defined( WNT )
- nRet = _spawnv( P_WAIT, ppArgv[0], (const char **) ppArgv );
--#else
--#if defined( UNX ) || defined( OS2 )
-- nRet = _spawnv( P_WAIT, ppArgv[0], ppArgv );
--#endif
--#ifdef MAC
--//Mac-Implem.
--#endif
- #endif
- #else
- #ifdef UNX
-@@ -505,14 +484,8 @@ CCommand::operator const int()
- }
- #endif
-
--#ifdef MAC
--//Mac_impl
--=======
- #endif
-
--#endif
--
--#ifndef MAC
- switch ( errno )
- {
- case E2BIG :
-@@ -533,7 +506,6 @@ CCommand::operator const int()
- default:
- nError = COMMAND_UNKNOWN;
- }
--#endif
-
- if ( nRet )
- fprintf( stderr, "Program returned with errros\n");
-Index: tools/inc/bigint.hxx
-===================================================================
-RCS file: /cvs/util/tools/inc/bigint.hxx,v
-retrieving revision 1.3
-retrieving revision 1.3.4.1
-diff -u -p -u -p -r1.3 -r1.3.4.1
---- tools/inc/bigint.hxx 17 Jun 2004 13:08:56 -0000 1.3
-+++ tools/inc/bigint.hxx 21 Jan 2005 17:22:40 -0000 1.3.4.1
-@@ -112,8 +112,10 @@ public:
- operator int() const;
- operator double() const;
- operator USHORT() const;
-+#if SAL_TYPE_SIZEOFLONG == 8
- operator ULONG() const;
--
-+#endif
-+ operator sal_uInt32() const;
- void Set( sal_Bool bSet ) { bIsSet = bSet; }
- ByteString GetByteString() const;
- UniString GetString() const;
-Index: tools/inc/date.hxx
-===================================================================
-RCS file: /cvs/util/tools/inc/date.hxx,v
-retrieving revision 1.2
-retrieving revision 1.2.108.1
-diff -u -p -u -p -r1.2 -r1.2.108.1
---- tools/inc/date.hxx 4 Sep 2003 07:44:38 -0000 1.2
-+++ tools/inc/date.hxx 21 Jan 2005 17:23:54 -0000 1.2.108.1
-@@ -86,21 +86,21 @@ enum DayOfWeek { MONDAY, TUESDAY, WEDNES
- class Date
- {
- private:
-- ULONG nDate;
-+ sal_uInt32 nDate;
-
- public:
- Date();
- Date( const ResId & rResId );
-- Date( ULONG _nDate ) { Date::nDate = _nDate; }
-+ Date( sal_uInt32 _nDate ) { Date::nDate = _nDate; }
- Date( const Date& rDate )
- { nDate = rDate.nDate; }
- Date( USHORT nDay, USHORT nMonth, USHORT nYear )
-- { nDate = ((ULONG)(nDay%100)) +
-- (((ULONG)(nMonth%100))*100) +
-- (((ULONG)nYear%10000)*10000); }
-+ { nDate = ((sal_uInt32)(nDay%100)) +
-+ (((sal_uInt32)(nMonth%100))*100) +
-+ (((sal_uInt32)nYear%10000)*10000); }
-
-- void SetDate( ULONG nNewDate ) { nDate = nNewDate; }
-- ULONG GetDate() const { return nDate; }
-+ void SetDate( sal_uInt32 nNewDate ) { nDate = nNewDate; }
-+ sal_uInt32 GetDate() const { return nDate; }
-
- void SetDay( USHORT nNewDay );
- void SetMonth( USHORT nNewMonth );
-Index: tools/inc/fsys.hxx
-===================================================================
-RCS file: /cvs/util/tools/inc/fsys.hxx,v
-retrieving revision 1.6
-retrieving revision 1.6.98.1
-diff -u -p -u -p -r1.6 -r1.6.98.1
---- tools/inc/fsys.hxx 20 Oct 2003 15:39:20 -0000 1.6
-+++ tools/inc/fsys.hxx 10 Sep 2004 13:46:10 -0000 1.6.98.1
-@@ -81,6 +81,8 @@
- #include <errcode.hxx>
- #endif
-
-+#include <stdarg.h>
-+
- #define FEAT_FSYS_DOUBLESPEED
-
- // --------------
-Index: tools/inc/solar.h
-===================================================================
-RCS file: /cvs/util/tools/inc/solar.h,v
-retrieving revision 1.39
-retrieving revision 1.36.4.4
-diff -u -p -u -p -r1.39 -r1.36.4.4
---- tools/inc/solar.h 18 Jan 2005 14:51:52 -0000 1.39
-+++ tools/inc/solar.h 10 Mar 2005 02:04:10 -0000 1.36.4.4
-@@ -299,8 +299,12 @@ inline USHORT Min( USHORT a, USHORT b )
- inline USHORT Max( USHORT a, USHORT b ) { return (a>b?a:b); }
- inline long Min( long a, long b ) { return (a<b?a:b); }
- inline long Max( long a, long b ) { return (a>b?a:b); }
-+#if SAL_TYPES_SIZEOFLONG == 8
- inline ULONG Min( ULONG a, ULONG b ) { return (a<b?a:b); }
- inline ULONG Max( ULONG a, ULONG b ) { return (a>b?a:b); }
-+#endif
-+inline sal_uInt32 Min( sal_uInt32 a, sal_uInt32 b ) { return (a<b?a:b); }
-+inline sal_uInt32 Max( sal_uInt32 a, sal_uInt32 b ) { return (a>b?a:b); }
-
- inline char Abs( char a ) { return (a>=0?a:-a); }
- inline int Abs( int a ) { return (a>=0?a:-a); }
-Index: tools/inc/stream.hxx
-===================================================================
-RCS file: /cvs/util/tools/inc/stream.hxx,v
-retrieving revision 1.7
-retrieving revision 1.6.4.4
-diff -u -p -u -p -r1.7 -r1.6.4.4
---- tools/inc/stream.hxx 11 Oct 2004 12:27:17 -0000 1.7
-+++ tools/inc/stream.hxx 18 Jan 2005 10:50:48 -0000 1.6.4.4
-@@ -78,6 +78,8 @@
- #include <rtti.hxx>
- #endif
-
-+#include <limits>
-+
- class StreamData;
-
- // ------------------------
-@@ -92,6 +94,30 @@ inline rtl_TextEncoding GetStoreCharSet(
- return eEncoding;
- }
-
-+// ------------------
-+// - 64-bit helpers -
-+// ------------------
-+
-+// The only reason these inlines exist is to make conversion
-+// to full 64-bit stream APIs easier later on. If all places
-+// that make direct use of the stream APIs use these inlines
-+// to convert back to 32-bit numbers, we should
-+// just be able to grep the code for places that depend on
-+// 32-bit interaction with SvStream.
-+
-+inline sal_uInt32 svstream_Size_to_u32( sal_Size n )
-+{
-+ OSL_ENSURE((sal_uInt32)n <= ::std::numeric_limits< sal_uInt32 >::max(),
-+ "svstream_Size_to_u32(): WARNING! truncation will during cast from 64-bit to 32-bit.");
-+ return (sal_uInt32) n;
-+}
-+
-+inline sal_Size svstream_u32_to_Size( sal_uInt32 n )
-+{
-+ return (sal_Size) n;
-+}
-+
-+
- // ---------------
- // - StreamTypes -
- // ---------------
-@@ -398,6 +424,9 @@ public:
- SvStream& operator>>( sal_uInt16& rUInt16 );
- SvStream& operator>>( sal_uInt32& rUInt32 );
- SvStream& operator>>( long& rLong );
-+#if SAL_TYPES_SIZEOFLONG == 8
-+ SvStream& operator>>( sal_Size& rSize );
-+#endif
- SvStream& operator>>( short& rShort );
- SvStream& operator>>( int& rInt );
- SvStream& operator>>( signed char& rChar );
-@@ -416,6 +445,9 @@ public:
- SvStream& operator<<( sal_uInt16 nUInt16 );
- SvStream& operator<<( sal_uInt32 nUInt32 );
- SvStream& operator<<( long nLong );
-+#if SAL_TYPES_SIZEOFLONG == 8
-+ SvStream& operator<<( sal_Size nSize );
-+#endif
- SvStream& operator<<( short nShort );
- SvStream& operator<<( int nInt );
- SvStream& operator<<( signed char nChar );
-Index: tools/source/debug/debug.cxx
-===================================================================
-RCS file: /cvs/util/tools/source/debug/debug.cxx,v
-retrieving revision 1.7
-retrieving revision 1.7.120.3
-diff -u -p -u -p -r1.7 -r1.7.120.3
---- tools/source/debug/debug.cxx 7 Aug 2003 11:57:20 -0000 1.7
-+++ tools/source/debug/debug.cxx 10 Sep 2004 13:42:45 -0000 1.7.120.3
-@@ -71,6 +71,7 @@
-
- #include <time.h>
- #include <cstdarg> // combinations
-+#include <stdarg.h> // some platforms need cstdarg, other stdarg.h
- #include <stdlib.h>
- #include <string.h>
- #include <stdio.h>
-Index: tools/source/ref/pstm.cxx
-===================================================================
-RCS file: /cvs/util/tools/source/ref/pstm.cxx,v
-retrieving revision 1.3
-retrieving revision 1.3.64.2
-diff -u -p -u -p -r1.3 -r1.3.64.2
---- tools/source/ref/pstm.cxx 26 Feb 2004 13:21:01 -0000 1.3
-+++ tools/source/ref/pstm.cxx 21 Jan 2005 17:24:22 -0000 1.3.64.2
-@@ -113,12 +113,12 @@ void SvPersistBaseMemberList::WriteObjec
- rStm << bTmp;
- #endif
- UINT32 nCount = Count();
-- ULONG nCountPos = rStm.Tell();
-+ sal_Size nCountPos = rStm.Tell();
- UINT32 nWriteCount = 0;
- rStm << nCount;
- //bloss die Liste nicht veraendern,
- //wegen Seiteneffekten beim Save
-- for( ULONG n = 0; n < nCount; n++ )
-+ for( UINT32 n = 0; n < nCount; n++ )
- {
- SvPersistBase * pObj = GetObject( n );
- if( !bOnlyStreamed || rStm.IsStreamed( pObj ) )
-@@ -130,7 +130,7 @@ void SvPersistBaseMemberList::WriteObjec
- if( nWriteCount != nCount )
- {
- // nicht alle Objekte geschrieben, Count anpassen
-- ULONG nPos = rStm.Tell();
-+ sal_Size nPos = rStm.Tell();
- rStm.Seek( nCountPos );
- rStm << nWriteCount;
- rStm.Seek( nPos );
-@@ -169,9 +169,9 @@ SvPersistStream& operator >> ( SvPersist
- if( nVer & PERSIST_LIST_DBGUTIL )
- nObjLen = rStm.ReadLen( &nObjPos );
-
-- ULONG nCount;
-+ UINT32 nCount;
- rStm >> nCount;
-- for( ULONG n = 0; n < nCount && rStm.GetError() == SVSTREAM_OK; n++ )
-+ for( UINT32 n = 0; n < nCount && rStm.GetError() == SVSTREAM_OK; n++ )
- {
- SvPersistBase * pObj;
- rStm >> pObj;
-@@ -341,7 +341,7 @@ void SvPersistStream::ResetError()
- /*************************************************************************
- |* SvPersistStream::GetData()
- *************************************************************************/
--ULONG SvPersistStream::GetData( void* pData, ULONG nSize )
-+sal_Size SvPersistStream::GetData( void* pData, sal_Size nSize )
- {
- DBG_ASSERT( pStm, "stream not set" )
- ULONG nRet = pStm->Read( pData, nSize );
-@@ -352,7 +352,7 @@ ULONG SvPersistStream::GetData( void* pD
- /*************************************************************************
- |* SvPersistStream::PutData()
- *************************************************************************/
--ULONG SvPersistStream::PutData( const void* pData, ULONG nSize )
-+sal_Size SvPersistStream::PutData( const void* pData, sal_Size nSize )
- {
- DBG_ASSERT( pStm, "stream not set" )
- ULONG nRet = pStm->Write( pData, nSize );
-@@ -363,7 +363,7 @@ ULONG SvPersistStream::PutData( const vo
- /*************************************************************************
- |* SvPersistStream::Seek()
- *************************************************************************/
--ULONG SvPersistStream::SeekPos( ULONG nPos )
-+sal_Size SvPersistStream::SeekPos( sal_Size nPos )
- {
- DBG_ASSERT( pStm, "stream not set" )
- ULONG nRet = pStm->Seek( nPos );
-Index: tools/source/stream/stream.cxx
-===================================================================
-RCS file: /cvs/util/tools/source/stream/stream.cxx,v
-retrieving revision 1.18
-retrieving revision 1.16.4.5
-diff -u -p -u -p -r1.18 -r1.16.4.5
---- tools/source/stream/stream.cxx 11 Oct 2004 12:27:31 -0000 1.18
-+++ tools/source/stream/stream.cxx 18 Jan 2005 10:53:14 -0000 1.16.4.5
-@@ -120,6 +120,10 @@ inline static void SwapLong( long& r )
- { r = SWAPLONG(r); }
- inline static void SwapULong( sal_uInt32& r )
- { r = SWAPLONG(r); }
-+#if SAL_TYPES_SIZEOFLONG == 8
-+inline static void SwapSize( sal_Size& r )
-+ { r = SWAPLONG(r); }
-+#endif
- inline static void SwapLongInt( int& r )
- { r = SWAPLONG(r); }
- inline static void SwapLongUInt( unsigned int& r )
-@@ -178,7 +182,7 @@ int tmp = eIOMode; \
- if( (tmp == STREAM_IO_READ) && sizeof(datatype)<=nBufFree) \
- {\
- for (int i = 0; i < sizeof(datatype); i++)\
-- ((char *)&r)[i] = pBufPos[i];\
-+ ((char *)&value)[i] = pBufPos[i];\
- nBufActualPos += sizeof(datatype);\
- pBufPos += sizeof(datatype);\
- nBufFree -= sizeof(datatype);\
-@@ -1235,6 +1239,7 @@ SvStream& SvStream::operator>> ( sal_uIn
- return *this;
- }
-
-+
- SvStream& SvStream::operator >> ( long& r )
- {
- #if(SAL_TYPES_SIZEOFLONG != 4)
-@@ -1251,6 +1256,29 @@ SvStream& SvStream::operator >> ( long&
- return *this;
- }
-
-+#if SAL_TYPES_SIZEOFLONG == 8
-+SvStream& SvStream::operator >> ( sal_Size& r )
-+{
-+
-+ DBG_ASSERT( FALSE, "SvStream operator >> sal_Size not yet implemented!\n" );
-+/*
-+#if(SAL_TYPES_SIZEOFLONG != 4)
-+ int tmp = r;
-+ READNUMBER_WITHOUT_SWAP(sal_Size,tmp)
-+ r = tmp;
-+ if( bSwap )
-+ SwapLong(r);
-+#else
-+ READNUMBER_WITHOUT_SWAP(long,r)
-+ if( bSwap )
-+ SwapLong(r);
-+#endif
-+*/
-+ return *this;
-+}
-+
-+#endif // SAL_TYPES_SIZEOFLONG == 8
-+
- SvStream& SvStream::operator >> ( short& r )
- {
- READNUMBER_WITHOUT_SWAP(short,r)
-@@ -1392,6 +1420,24 @@ SvStream& SvStream::operator<< ( long v
- return *this;
- }
-
-+#if(SAL_TYPES_SIZEOFLONG == 8)
-+SvStream& SvStream::operator<< ( sal_Size v )
-+{
-+#if(SAL_TYPES_SIZEOFLONG != 4)
-+ int tmp = v;
-+ if( bSwap )
-+ SwapInt(tmp);
-+ WRITENUMBER_WITHOUT_SWAP(int,tmp)
-+#else
-+ if( bSwap )
-+ SwapSize(v);
-+ WRITENUMBER_WITHOUT_SWAP(long,v)
-+#endif
-+ return *this;
-+}
-+
-+#endif
-+
- SvStream& SvStream::operator<< ( short v )
- {
- if( bSwap )
---- registry/tools/regcompare.cxx 31 Jan 2005 15:48:37 -0000 1.19
-+++ registry/tools/regcompare.cxx 9 Mar 2005 20:21:53 -0000 1.18.8.2
-@@ -473,25 +483,25 @@ static sal_Char* getTypeClass(RTTypeClas
- switch (typeClass)
- {
- case RT_TYPE_INTERFACE:
-- return "INTERFACE";
-+ return (sal_Char*)"INTERFACE";
- case RT_TYPE_MODULE:
-- return "MODULE";
-+ return (sal_Char*)"MODULE";
- case RT_TYPE_STRUCT:
-- return "STRUCT";
-+ return (sal_Char*)"STRUCT";
- case RT_TYPE_ENUM:
-- return "ENUM";
-+ return (sal_Char*)"ENUM";
- case RT_TYPE_EXCEPTION:
-- return "EXCEPTION";
-+ return (sal_Char*)"EXCEPTION";
- case RT_TYPE_TYPEDEF:
-- return "TYPEDEF";
-+ return (sal_Char*)"TYPEDEF";
- case RT_TYPE_SERVICE:
-- return "SERVICE";
-+ return (sal_Char*)"SERVICE";
- case RT_TYPE_OBJECT:
-- return "OBJECT";
-+ return (sal_Char*)"OBJECT";
- case RT_TYPE_CONSTANTS:
-- return "CONSTANTS";
-+ return (sal_Char*)"CONSTANTS";
- }
-- return "INVALID";
-+ return (sal_Char*)"INVALID";
- }
-
- static OString getFieldAccess(RTFieldAccess fieldAccess)
-@@ -561,29 +571,29 @@ static sal_Char* getConstValueType(RTCon
- switch (constValue.m_type)
- {
- case RT_TYPE_BOOL:
-- return "sal_Bool";
-+ return (sal_Char*)"sal_Bool";
- case RT_TYPE_BYTE:
-- return "sal_uInt8";
-+ return (sal_Char*)"sal_uInt8";
- case RT_TYPE_INT16:
-- return "sal_Int16";
-+ return (sal_Char*)"sal_Int16";
- case RT_TYPE_UINT16:
-- return "sal_uInt16";
-+ return (sal_Char*)"sal_uInt16";
- case RT_TYPE_INT32:
-- return "sal_Int32";
-+ return (sal_Char*)"sal_Int32";
- case RT_TYPE_UINT32:
-- return "sal_uInt32";
-+ return (sal_Char*)"sal_uInt32";
- // case RT_TYPE_INT64:
--// return "sal_Int64";
-+// return (sal_Char*)"sal_Int64";
- // case RT_TYPE_UINT64:
--// return "sal_uInt64";
-+// return (sal_Char*)"sal_uInt64";
- case RT_TYPE_FLOAT:
-- return "float";
-+ return (sal_Char*)"float";
- case RT_TYPE_DOUBLE:
-- return "double";
-+ return (sal_Char*)"double";
- case RT_TYPE_STRING:
-- return "sal_Unicode*";
-+ return (sal_Char*)"sal_Unicode*";
- }
-- return "NONE";
-+ return (sal_Char*)"NONE";
- }
- static void printConstValue(RTConstValue& constValue)
- {
-@@ -912,15 +922,15 @@ static sal_Char* getMethodMode(RTMethodM
- switch ( methodMode )
- {
- case RT_MODE_ONEWAY:
-- return "ONEWAY";
-+ return (sal_Char*)"ONEWAY";
- case RT_MODE_ONEWAY_CONST:
-- return "ONEWAY,CONST";
-+ return (sal_Char*)"ONEWAY,CONST";
- case RT_MODE_TWOWAY:
-- return "NONE";
-+ return (sal_Char*)"NONE";
- case RT_MODE_TWOWAY_CONST:
-- return "CONST";
-+ return (sal_Char*)"CONST";
- }
-- return "INVALID";
-+ return (sal_Char*)"INVALID";
- }
-
- static sal_Char* getParamMode(RTParamMode paramMode)
-@@ -928,13 +938,13 @@ static sal_Char* getParamMode(RTParamMod
- switch ( paramMode )
- {
- case RT_PARAM_IN:
-- return "IN";
-+ return (sal_Char*)"IN";
- case RT_PARAM_OUT:
-- return "OUT";
-+ return (sal_Char*)"OUT";
- case RT_PARAM_INOUT:
-- return "INOUT";
-+ return (sal_Char*)"INOUT";
- }
-- return "INVALID";
-+ return (sal_Char*)"INVALID";
- }
-
- static sal_uInt32 checkMethod(const OUString& keyName,
-@@ -1155,15 +1165,15 @@ static sal_Char* getReferenceType(RTRefe
- switch (refType)
- {
- case RT_REF_SUPPORTS:
-- return "RT_REF_SUPPORTS";
-+ return (sal_Char*)"RT_REF_SUPPORTS";
- case RT_REF_OBSERVES:
-- return "RT_REF_OBSERVES";
-+ return (sal_Char*)"RT_REF_OBSERVES";
- case RT_REF_EXPORTS:
-- return "RT_REF_EXPORTS";
-+ return (sal_Char*)"RT_REF_EXPORTS";
- case RT_REF_NEEDS:
-- return "RT_REF_NEEDS";
-+ return (sal_Char*)"RT_REF_NEEDS";
- }
-- return "RT_REF_INVALID";
-+ return (sal_Char*)"RT_REF_INVALID";
- }
-
- static sal_uInt32 checkReference(const OUString& keyName,
-Index: rdbmaker/source/codemaker/global.cxx
-===================================================================
-RCS file: /cvs/udk/rdbmaker/source/codemaker/global.cxx,v
-retrieving revision 1.9
-retrieving revision 1.9.66.1
-diff -u -p -u -p -r1.9 -r1.9.66.1
---- rdbmaker/source/codemaker/global.cxx 26 Mar 2003 14:28:43 -0000 1.9
-+++ rdbmaker/source/codemaker/global.cxx 27 Aug 2004 14:21:41 -0000 1.9.66.1
-@@ -75,6 +75,7 @@
- #include <osl/file.hxx>
- #endif
-
-+#include <string.h>
- #include <stdlib.h>
- #include <stdio.h>
- #if defined(SAL_W32) || defined(SAL_OS2)
-@@ -287,8 +288,8 @@ sal_Bool checkFileContent(const OString&
- sal_Bool bFindChanges = sal_False;
- sal_Char buffer1[1024+1];
- sal_Char buffer2[1024+1];
-- sal_Int32 n1 = 0;
-- sal_Int32 n2 = 0;
-+ size_t n1 = 0;
-+ size_t n2 = 0;
-
- while ( !bFindChanges && !feof(target) && !feof(tmp))
- {
-@@ -420,8 +421,8 @@ void FileStream::close()
-
- sal_Int32 FileStream::getSize()
- {
-- sal_Int32 pos = 0;
-- sal_Int32 size = 0;
-+ long pos = 0;
-+ long size = 0;
- if ( isValid() )
- {
- fflush(m_pFile);
-@@ -430,7 +431,7 @@ sal_Int32 FileStream::getSize()
- size = ftell(m_pFile);
- fseek(m_pFile, pos, SEEK_SET);
- }
-- return size;
-+ return sal_Int32(size);
- }
-
- const sal_Char* FileStream::checkAccessMode(FileAccessMode mode)
-Index: xmloff/source/style/XMLFontAutoStylePool.cxx
-===================================================================
-RCS file: /cvs/xml/xmloff/source/style/XMLFontAutoStylePool.cxx,v
-retrieving revision 1.4
-retrieving revision 1.4.86.1
-diff -u -p -u -p -r1.4 -r1.4.86.1
---- xmloff/source/style/XMLFontAutoStylePool.cxx 13 Jul 2004 08:22:31 -0000 1.4
-+++ xmloff/source/style/XMLFontAutoStylePool.cxx 21 Jan 2005 15:12:55 -0000 1.4.86.1
-@@ -221,7 +221,7 @@ OUString XMLFontAutoStylePool::Add(
- OUString sName;
- XMLFontAutoStylePoolEntry_Impl aTmp( rFamilyName, rStyleName, nFamily,
- nPitch, eEnc );
-- sal_uInt32 nPos;
-+ ULONG nPos;
- if( pPool->Seek_Entry( &aTmp, &nPos ) )
- {
- sName = pPool->GetObject( nPos )->GetName();
-@@ -275,7 +275,7 @@ OUString XMLFontAutoStylePool::Add(
- OUString sName;
- XMLFontAutoStylePoolEntry_Impl aTmp( rFamilyName, rStyleName, nFamily,
- nPitch, eEnc );
-- sal_uInt32 nPos;
-+ ULONG nPos;
- if( pPool->Seek_Entry( &aTmp, &nPos ) )
- {
- sName = pPool->GetObject( nPos )->GetName();
-@@ -291,6 +291,7 @@ void XMLFontAutoStylePool::exportXML()
- XML_FONT_FACE_DECLS,
- sal_True, sal_True );
- Any aAny;
-+
- OUString sTmp;
- XMLFontFamilyNamePropHdl aFamilyNameHdl;
- XMLFontFamilyPropHdl aFamilyHdl;
-Index: xmloff/source/style/impastp4.cxx
-===================================================================
-RCS file: /cvs/xml/xmloff/source/style/impastp4.cxx,v
-retrieving revision 1.14
-retrieving revision 1.12.162.4
-diff -u -p -u -p -r1.14 -r1.12.162.4
---- xmloff/source/style/impastp4.cxx 5 Jan 2005 11:36:18 -0000 1.14
-+++ xmloff/source/style/impastp4.cxx 21 Jan 2005 15:12:40 -0000 1.12.162.4
-@@ -135,7 +135,7 @@ void SvXMLAutoStylePoolP_Impl::AddFamily
- sal_Bool bAsFamily )
- {
- // store family in a list if not already stored
-- sal_uInt32 nPos;
-+ ULONG nPos;
- XMLFamilyData_Impl *pFamily = new XMLFamilyData_Impl( nFamily, rStrName, rMapper, rStrPrefix, bAsFamily );
- if( !maFamilyList.Seek_Entry( pFamily, &nPos ) )
- maFamilyList.Insert( pFamily );
-@@ -152,7 +152,7 @@ void SvXMLAutoStylePoolP_Impl::RegisterN
- {
- SvXMLAutoStylePoolNamesP_Impl *pNames = 0;
-
-- sal_uInt32 nPos;
-+ ULONG nPos;
- XMLFamilyData_Impl aTmp( nFamily );
- if( maFamilyList.Seek_Entry( &aTmp, &nPos ) )
- pNames = maFamilyList.GetObject( nPos )->mpNameList;
-@@ -222,7 +222,7 @@ sal_Bool SvXMLAutoStylePoolP_Impl::Add(O
- sal_Bool bCache)
- {
- sal_Bool bRet(sal_False);
-- sal_uInt32 nPos;
-+ ULONG nPos;
-
- XMLFamilyData_Impl *pFamily = 0;
- XMLFamilyData_Impl aTmp( nFamily );
-@@ -270,7 +270,7 @@ sal_Bool SvXMLAutoStylePoolP_Impl::Add(O
- OUString SvXMLAutoStylePoolP_Impl::AddToCache( sal_Int32 nFamily,
- const OUString& rParent )
- {
-- sal_uInt32 nPos;
-+ ULONG nPos;
-
- XMLFamilyData_Impl *pFamily = 0;
- XMLFamilyData_Impl aTmp( nFamily );
-@@ -302,7 +302,7 @@ OUString SvXMLAutoStylePoolP_Impl::Find(
- {
- OUString sName;
-
-- sal_uInt32 nPos;
-+ ULONG nPos;
- XMLFamilyData_Impl aTmp( nFamily );
- XMLFamilyData_Impl *pFamily = 0;
- if( maFamilyList.Seek_Entry( &aTmp, &nPos ) )
-@@ -329,7 +329,7 @@ OUString SvXMLAutoStylePoolP_Impl::FindA
- {
- OUString sName;
-
-- sal_uInt32 nPos;
-+ ULONG nPos;
- XMLFamilyData_Impl aTmp( nFamily );
- XMLFamilyData_Impl *pFamily = 0;
- if( maFamilyList.Seek_Entry( &aTmp, &nPos ) )
-@@ -371,7 +371,7 @@ void SvXMLAutoStylePoolP_Impl::exportXML
- sal_uInt32 nCount = 0;
-
- // Get list of parents for current family (nFamily)
-- sal_uInt32 nPos;
-+ ULONG nPos;
- XMLFamilyData_Impl aTmp( nFamily );
- XMLFamilyData_Impl *pFamily = 0;
- if( maFamilyList.Seek_Entry( &aTmp, &nPos ) )
-Index: xmloff/source/style/xmlstyle.cxx
-===================================================================
-RCS file: /cvs/xml/xmloff/source/style/xmlstyle.cxx,v
-retrieving revision 1.35
-retrieving revision 1.32.130.4
-diff -u -p -u -p -r1.35 -r1.32.130.4
---- xmloff/source/style/xmlstyle.cxx 26 Nov 2004 13:04:53 -0000 1.35
-+++ xmloff/source/style/xmlstyle.cxx 21 Jan 2005 15:13:36 -0000 1.32.130.4
-@@ -475,7 +475,7 @@ const SvXMLStyleContext *SvXMLStylesCont
- if( pIndices )
- {
- SvXMLStyleIndex_Impl aIndex( nFamily, rName );
-- sal_uInt32 nPos = 0;
-+ ULONG nPos = 0;
- if( pIndices->Seek_Entry( &aIndex, &nPos ) )
- pStyle = pIndices->GetObject( nPos )->GetStyle();
- }
-Index: xmloff/source/text/XMLTextListAutoStylePool.cxx
-===================================================================
-RCS file: /cvs/xml/xmloff/source/text/XMLTextListAutoStylePool.cxx,v
-retrieving revision 1.4
-retrieving revision 1.4.242.1
-diff -u -p -u -p -r1.4 -r1.4.242.1
---- xmloff/source/text/XMLTextListAutoStylePool.cxx 8 Apr 2003 15:30:28 -0000 1.4
-+++ xmloff/source/text/XMLTextListAutoStylePool.cxx 21 Jan 2005 15:13:50 -0000 1.4.242.1
-@@ -251,7 +251,7 @@ sal_Bool XMLTextListAutoStylePool::HasNa
-
- sal_uInt32 XMLTextListAutoStylePool::Find( XMLTextListAutoStylePoolEntry_Impl* pEntry ) const
- {
-- sal_uInt32 nPos;
-+ ULONG nPos;
- if( !pEntry->IsNamed() && mxNumRuleCompare.is() )
- {
- const sal_uInt32 nCount = pPool->Count();
-Index: svtools/inc/calendar.hxx
-===================================================================
-RCS file: /cvs/util/svtools/inc/calendar.hxx,v
-retrieving revision 1.2
-retrieving revision 1.1.1.1.650.2
-diff -u -p -u -p -r1.2 -r1.1.1.1.650.2
---- svtools/inc/calendar.hxx 28 Jun 2004 17:06:00 -0000 1.2
-+++ svtools/inc/calendar.hxx 19 Oct 2004 16:31:48 -0000 1.1.1.1.650.2
-@@ -222,7 +222,7 @@ private:
- Rectangle maPrevRect;
- Rectangle maNextRect;
- String maDayOfWeekText;
-- long mnDayOfWeekAry[7];
-+ sal_Int32 mnDayOfWeekAry[7];
- Date maOldFormatFirstDate;
- Date maOldFormatLastDate;
- Date maFirstDate;
-Index: svtools/inc/filerec.hxx
-===================================================================
-RCS file: /cvs/util/svtools/inc/filerec.hxx,v
-retrieving revision 1.1.1.1
-retrieving revision 1.1.1.1.650.1
-diff -u -p -u -p -r1.1.1.1 -r1.1.1.1.650.1
---- svtools/inc/filerec.hxx 18 Sep 2000 16:58:50 -0000 1.1.1.1
-+++ svtools/inc/filerec.hxx 21 Jul 2004 17:34:07 -0000 1.1.1.1.650.1
-@@ -72,24 +72,24 @@
-
- #include <tools/stream.hxx>
-
--SV_DECL_VARARR( SfxUINT32s, UINT32, 8, 8 );
-+SV_DECL_VARARR( SfxUINT32s, sal_uInt32, 8, 8 );
-
- //------------------------------------------------------------------------
-
--#define SFX_BOOL_DONTCARE BOOL(2) // Don't-Care-Wert f"ur BOOLs
-+#define SFX_BOOL_DONTCARE sal_Bool(2) // Don't-Care-Wert f"ur BOOLs
-
--#define SFX_REC_PRETAG_EXT BYTE(0x00) // Pre-Tag f"ur Extended-Records
--#define SFX_REC_PRETAG_EOR BYTE(0xFF) // Pre-Tag f"ur End-Of-Records
-+#define SFX_REC_PRETAG_EXT sal_uInt8(0x00) // Pre-Tag f"ur Extended-Records
-+#define SFX_REC_PRETAG_EOR sal_uInt8(0xFF) // Pre-Tag f"ur End-Of-Records
-
--#define SFX_REC_TYPE_NONE BYTE(0x00) // unbekannter Record-Typ
--#define SFX_REC_TYPE_FIRST BYTE(0x01)
--#define SFX_REC_TYPE_SINGLE BYTE(0x01) // Single-Content-Record
--#define SFX_REC_TYPE_FIXSIZE BYTE(0x02) // Fix-Size-Multi-Content-Record
--#define SFX_REC_TYPE_VARSIZE_RELOC BYTE(0x03) // variable Rec-Size
--#define SFX_REC_TYPE_VARSIZE BYTE(0x04) // alt (nicht verschiebbar)
--#define SFX_REC_TYPE_MIXTAGS_RELOC BYTE(0x07) // Mixed Tag Content-Record
--#define SFX_REC_TYPE_MIXTAGS BYTE(0x08) // alt (nicht verschiebbar)
--#define SFX_REC_TYPE_LAST BYTE(0x08)
-+#define SFX_REC_TYPE_NONE sal_uInt8(0x00) // unbekannter Record-Typ
-+#define SFX_REC_TYPE_FIRST sal_uInt8(0x01)
-+#define SFX_REC_TYPE_SINGLE sal_uInt8(0x01) // Single-Content-Record
-+#define SFX_REC_TYPE_FIXSIZE sal_uInt8(0x02) // Fix-Size-Multi-Content-Record
-+#define SFX_REC_TYPE_VARSIZE_RELOC sal_uInt8(0x03) // variable Rec-Size
-+#define SFX_REC_TYPE_VARSIZE sal_uInt8(0x04) // alt (nicht verschiebbar)
-+#define SFX_REC_TYPE_MIXTAGS_RELOC sal_uInt8(0x07) // Mixed Tag Content-Record
-+#define SFX_REC_TYPE_MIXTAGS sal_uInt8(0x08) // alt (nicht verschiebbar)
-+#define SFX_REC_TYPE_LAST sal_uInt8(0x08)
- #define SFX_REC_TYPE_MINI 0x100 // Mini-Record
- #define SFX_REC_TYPE_DRAWENG 0x400 // Drawing-Engine-Record
- #define SFX_REC_TYPE_EOR 0xF00 // End-Of-Records
-@@ -263,18 +263,18 @@ class SfxMiniRecordWriter
- {
- protected:
- SvStream* _pStream; // <SvStream>, in dem der Record liegt
-- UINT32 _nStartPos; // Start-Position des Gesamt-Records im Stream
-+ sal_uInt32 _nStartPos; // Start-Position des Gesamt-Records im Stream
- FASTBOOL _bHeaderOk; /* TRUE, wenn der Header schon geschrieben ist;
- bei DBG_UTIL wird SFX_BOOL_DONTCARE ver-
- wendet, um die Gr"o\se von Fix-Sized-Records
- zu pr"ufen. */
-- BYTE _nPreTag; // in den Header zu schreibendes 'Pre-Tag'
-+ sal_uInt8 _nPreTag; // in den Header zu schreibendes 'Pre-Tag'
-
- public:
- inline SfxMiniRecordWriter( SvStream *pStream,
-- BYTE nTag );
-- inline SfxMiniRecordWriter( SvStream *pStream, BYTE nTag,
-- UINT32 nSize );
-+ sal_uInt8 nTag );
-+ inline SfxMiniRecordWriter( SvStream *pStream, sal_uInt8 nTag,
-+ sal_uInt32 nSize );
-
- inline ~SfxMiniRecordWriter();
-
-@@ -282,7 +282,7 @@ public:
-
- inline void Reset();
-
-- UINT32 Close( FASTBOOL bSeekToEndOfRec = TRUE );
-+ sal_uInt32 Close( FASTBOOL bSeekToEndOfRec = TRUE );
-
- private:
- // not implementend, not allowed
-@@ -322,35 +322,35 @@ class SfxMiniRecordReader
- {
- protected:
- SvStream* _pStream; // <SvStream>, aus dem gelesen wird
-- UINT32 _nEofRec; // Position direkt hinter dem Record
-+ sal_uInt32 _nEofRec; // Position direkt hinter dem Record
- FASTBOOL _bSkipped; // TRUE: der Record wurde explizit geskippt
-- BYTE _nPreTag; // aus dem Header gelesenes Pre-Tag
-+ sal_uInt8 _nPreTag; // aus dem Header gelesenes Pre-Tag
-
- // Drei-Phasen-Ctor f"ur Subklassen
- SfxMiniRecordReader() {}
-- void Construct_Impl( SvStream *pStream, BYTE nTag )
-+ void Construct_Impl( SvStream *pStream, sal_uInt8 nTag )
- {
- _pStream = pStream;
- _bSkipped = FALSE;
- _nPreTag = nTag;
- }
-- inline FASTBOOL SetHeader_Impl( UINT32 nHeader );
-+ inline FASTBOOL SetHeader_Impl( sal_uInt32 nHeader );
-
- // als ung"ultig markieren und zur"uck-seeken
-- void SetInvalid_Impl( UINT32 nRecordStartPos )
-+ void SetInvalid_Impl( sal_uInt32 nRecordStartPos )
- {
- _nPreTag = SFX_REC_PRETAG_EOR;
- _pStream->Seek( nRecordStartPos );
- }
-
- public:
-- static USHORT ScanRecordType( SvStream *pStream );
-+ static sal_uInt16 ScanRecordType( SvStream *pStream );
-
- SfxMiniRecordReader( SvStream *pStream );
-- SfxMiniRecordReader( SvStream *pStream, BYTE nTag );
-+ SfxMiniRecordReader( SvStream *pStream, sal_uInt8 nTag );
- inline ~SfxMiniRecordReader();
-
-- inline BYTE GetTag() const;
-+ inline sal_uInt8 GetTag() const;
- inline FASTBOOL IsValid() const;
-
- inline SvStream& operator*() const;
-@@ -405,20 +405,20 @@ class SfxSingleRecordWriter: public SfxM
-
- {
- protected:
-- SfxSingleRecordWriter( BYTE nRecordType,
-+ SfxSingleRecordWriter( sal_uInt8 nRecordType,
- SvStream *pStream,
-- UINT16 nTag, BYTE nCurVer );
-+ sal_uInt16 nTag, sal_uInt8 nCurVer );
-
- public:
- SfxSingleRecordWriter( SvStream *pStream,
-- UINT16 nTag, BYTE nCurVer );
-+ sal_uInt16 nTag, sal_uInt8 nCurVer );
- SfxSingleRecordWriter( SvStream *pStream,
-- UINT16 nTag, BYTE nCurVer,
-- UINT32 nSize );
-+ sal_uInt16 nTag, sal_uInt8 nCurVer,
-+ sal_uInt32 nSize );
-
- inline void Reset();
-
-- UINT32 Close( FASTBOOL bSeekToEndOfRec = TRUE );
-+ sal_uInt32 Close( FASTBOOL bSeekToEndOfRec = TRUE );
- };
-
- //------------------------------------------------------------------------
-@@ -454,9 +454,9 @@ class SfxSingleRecordReader: public SfxM
-
- {
- protected:
-- UINT16 _nRecordTag; // Art des Gesamt-Inhalts
-- BYTE _nRecordVer; // Version des Gesamt-Inhalts
-- BYTE _nRecordType; // Record Type aus dem Header
-+ sal_uInt16 _nRecordTag; // Art des Gesamt-Inhalts
-+ sal_uInt8 _nRecordVer; // Version des Gesamt-Inhalts
-+ sal_uInt8 _nRecordType; // Record Type aus dem Header
-
- // Drei-Phasen-Ctor f"ur Subklassen
- SfxSingleRecordReader() {}
-@@ -465,17 +465,17 @@ protected:
- SfxMiniRecordReader::Construct_Impl(
- pStream, SFX_REC_PRETAG_EXT );
- }
-- FASTBOOL FindHeader_Impl( UINT16 nTypes, UINT16 nTag );
-- FASTBOOL ReadHeader_Impl( USHORT nTypes );
-+ FASTBOOL FindHeader_Impl( sal_uInt16 nTypes, sal_uInt16 nTag );
-+ FASTBOOL ReadHeader_Impl( sal_uInt16 nTypes );
-
- public:
- SfxSingleRecordReader( SvStream *pStream );
-- SfxSingleRecordReader( SvStream *pStream, USHORT nTag );
-+ SfxSingleRecordReader( SvStream *pStream, sal_uInt16 nTag );
-
-- inline UINT16 GetTag() const;
-+ inline sal_uInt16 GetTag() const;
-
-- inline BYTE GetVersion() const;
-- inline FASTBOOL HasVersion( USHORT nVersion ) const;
-+ inline sal_uInt8 GetVersion() const;
-+ inline FASTBOOL HasVersion( sal_uInt16 nVersion ) const;
- };
-
- //------------------------------------------------------------------------
-@@ -520,7 +520,7 @@ class SfxMultiFixRecordWriter: public Sf
-
- {
- SfxMultiFixRecordWriter aRecord( pStream, MY_TAG_X, MY_VERSION );
-- for ( USHORT n = 0; n < Count(); ++n )
-+ for ( sal_uInt16 n = 0; n < Count(); ++n )
- {
- aRecord.NewContent();
- *aRecord << aMember1[n];
-@@ -531,28 +531,28 @@ class SfxMultiFixRecordWriter: public Sf
-
- {
- protected:
-- UINT32 _nContentStartPos; /* Startposition des jeweiligen
-+ sal_uInt32 _nContentStartPos; /* Startposition des jeweiligen
- Contents - nur bei DBG_UTIL
- und f"ur Subklassen */
-- UINT32 _nContentSize; // Gr"o\se jedes Contents
-- UINT16 _nContentCount; // jeweilige Anzahl der Contents
-+ sal_uInt32 _nContentSize; // Gr"o\se jedes Contents
-+ sal_uInt16 _nContentCount; // jeweilige Anzahl der Contents
-
-- SfxMultiFixRecordWriter( BYTE nRecordType,
-+ SfxMultiFixRecordWriter( sal_uInt8 nRecordType,
- SvStream *pStream,
-- UINT16 nTag, BYTE nCurVer,
-- UINT32 nContentSize );
-+ sal_uInt16 nTag, sal_uInt8 nCurVer,
-+ sal_uInt32 nContentSize );
-
- public:
- SfxMultiFixRecordWriter( SvStream *pStream,
-- UINT16 nTag, BYTE nCurVer,
-- UINT32 nContentSize );
-+ sal_uInt16 nTag, sal_uInt8 nCurVer,
-+ sal_uInt32 nContentSize );
- inline ~SfxMultiFixRecordWriter();
-
- inline void NewContent();
-
- inline void Reset();
-
-- UINT32 Close( FASTBOOL bSeekToEndOfRec = TRUE );
-+ sal_uInt32 Close( FASTBOOL bSeekToEndOfRec = TRUE );
- };
-
- //------------------------------------------------------------------------
-@@ -596,7 +596,7 @@ class SfxMultiVarRecordWriter: public Sf
-
- {
- SfxMultiVarRecordWriter aRecord( pStream, MY_TAG_X, MY_VERSION );
-- for ( USHORT n = 0; n < Count(); ++n )
-+ for ( sal_uInt16 n = 0; n < Count(); ++n )
- {
- aRecord.NewContent();
- *aRecord << aMember1[n];
-@@ -608,24 +608,24 @@ class SfxMultiVarRecordWriter: public Sf
- {
- protected:
- SfxUINT32s _aContentOfs;
-- USHORT _nContentVer; // nur f"ur SfxMultiMixRecordWriter
-+ sal_uInt16 _nContentVer; // nur f"ur SfxMultiMixRecordWriter
-
-- SfxMultiVarRecordWriter( BYTE nRecordType,
-+ SfxMultiVarRecordWriter( sal_uInt8 nRecordType,
- SvStream *pStream,
-- USHORT nRecordTag,
-- BYTE nRecordVer );
-+ sal_uInt16 nRecordTag,
-+ sal_uInt8 nRecordVer );
-
- void FlushContent_Impl();
-
- public:
- SfxMultiVarRecordWriter( SvStream *pStream,
-- USHORT nRecordTag,
-- BYTE nRecordVer );
-+ sal_uInt16 nRecordTag,
-+ sal_uInt8 nRecordVer );
- ~SfxMultiVarRecordWriter();
-
- void NewContent();
-
-- virtual UINT32 Close( FASTBOOL bSeekToEndOfRec = TRUE );
-+ virtual sal_uInt32 Close( FASTBOOL bSeekToEndOfRec = TRUE );
- };
-
- //------------------------------------------------------------------------
-@@ -668,10 +668,10 @@ class SfxMultiMixRecordWriter: public Sf
- {
- public:
- inline SfxMultiMixRecordWriter( SvStream *pStream,
-- USHORT nRecordTag,
-- BYTE nRecordVer );
-+ sal_uInt16 nRecordTag,
-+ sal_uInt8 nRecordVer );
-
-- void NewContent( USHORT nTag, BYTE nVersion );
-+ void NewContent( sal_uInt16 nTag, sal_uInt8 nVersion );
-
- // private: geht nicht, da einige Compiler dann auch vorherige privat machen
- void NewContent()
-@@ -697,7 +697,7 @@ class SfxMultiRecordReader: public SfxSi
-
- {
- SfxMultiRecordReader aRecord( pStream );
-- for ( USHORT nRecNo = 0; aRecord.GetContent(); ++nRecNo )
-+ for ( sal_uInt16 nRecNo = 0; aRecord.GetContent(); ++nRecNo )
- {
- switch ( aRecord.GetTag() )
- {
-@@ -716,30 +716,30 @@ class SfxMultiRecordReader: public SfxSi
- */
-
- {
-- UINT32 _nStartPos; // Start-Position des Records
-- UINT32* _pContentOfs; // Offsets der Startpositionen
-- UINT32 _nContentSize; // Size jedes einzelnen / Tabellen-Pos
-- UINT16 _nContentCount; // Anzahl der Contents im Record
-- UINT16 _nContentNo; /* der Index des aktuellen Contents
-+ sal_uInt32 _nStartPos; // Start-Position des Records
-+ sal_uInt32* _pContentOfs; // Offsets der Startpositionen
-+ sal_uInt32 _nContentSize; // Size jedes einzelnen / Tabellen-Pos
-+ sal_uInt16 _nContentCount; // Anzahl der Contents im Record
-+ sal_uInt16 _nContentNo; /* der Index des aktuellen Contents
- enth"alt jeweils den Index des
- Contents, der beim n"achsten
- GetContent() geholt wird */
-- UINT16 _nContentTag; // Art-Kennung des aktuellen Contents
-- BYTE _nContentVer; // Versions-Kennung des akt. Contents
-+ sal_uInt16 _nContentTag; // Art-Kennung des aktuellen Contents
-+ sal_uInt8 _nContentVer; // Versions-Kennung des akt. Contents
-
- FASTBOOL ReadHeader_Impl();
-
- public:
- SfxMultiRecordReader( SvStream *pStream );
-- SfxMultiRecordReader( SvStream *pStream, UINT16 nTag );
-+ SfxMultiRecordReader( SvStream *pStream, sal_uInt16 nTag );
- ~SfxMultiRecordReader();
-
- FASTBOOL GetContent();
-- inline UINT16 GetContentTag();
-- inline BYTE GetContentVersion() const;
-- inline FASTBOOL HasContentVersion( USHORT nVersion ) const;
-+ inline sal_uInt16 GetContentTag();
-+ inline sal_uInt8 GetContentVersion() const;
-+ inline FASTBOOL HasContentVersion( sal_uInt16 nVersion ) const;
-
-- inline UINT32 ContentCount() const;
-+ inline sal_uInt32 ContentCount() const;
- };
-
- //=========================================================================
-@@ -747,7 +747,7 @@ public:
- inline SfxMiniRecordWriter::SfxMiniRecordWriter
- (
- SvStream* pStream, // Stream, in dem der Record angelegt wird
-- BYTE nTag // Record-Tag zwischen 0x01 und 0xFE
-+ sal_uInt8 nTag // Record-Tag zwischen 0x01 und 0xFE
- )
-
- /* [Beschreibung]
-@@ -773,8 +773,8 @@ inline SfxMiniRecordWriter::SfxMiniRecor
- inline SfxMiniRecordWriter::SfxMiniRecordWriter
- (
- SvStream* pStream, // Stream, in dem der Record angelegt wird
-- BYTE nTag, // Record-Tag zwischen 0x01 und 0xFE
-- UINT32 nSize // Gr"o\se der Daten in Bytes
-+ sal_uInt8 nTag, // Record-Tag zwischen 0x01 und 0xFE
-+ sal_uInt32 nSize // Gr"o\se der Daten in Bytes
- )
-
- /* [Beschreibung]
-@@ -869,7 +869,7 @@ inline void SfxMiniRecordReader::Skip()
-
- //-------------------------------------------------------------------------
-
--inline BYTE SfxMiniRecordReader::GetTag() const
-+inline sal_uInt8 SfxMiniRecordReader::GetTag() const
-
- /* [Beschreibung]
-
-@@ -916,18 +916,18 @@ inline SvStream& SfxMiniRecordReader::op
-
- //=========================================================================
-
--inline UINT32 SfxSingleRecordWriter::Close( FASTBOOL bSeekToEndOfRec )
-+inline sal_uInt32 SfxSingleRecordWriter::Close( FASTBOOL bSeekToEndOfRec )
-
- // siehe <SfxMiniRecordWriter::Close(FASTBOOL)>
-
- {
-- UINT32 nRet = 0;
-+ sal_uInt32 nRet = 0;
-
- // wurde der Header noch nicht geschrieben?
- if ( !_bHeaderOk )
- {
- // Basisklassen-Header schreiben
-- UINT32 nEndPos = SfxMiniRecordWriter::Close( bSeekToEndOfRec );
-+ sal_uInt32 nEndPos = SfxMiniRecordWriter::Close( bSeekToEndOfRec );
-
- // ggf. ans Ende des eigenen Headers seeken oder hinter Rec bleiben
- if ( !bSeekToEndOfRec )
-@@ -956,7 +956,7 @@ inline void SfxSingleRecordWriter::Reset
-
- //=========================================================================
-
--inline UINT16 SfxSingleRecordReader::GetTag() const
-+inline sal_uInt16 SfxSingleRecordReader::GetTag() const
-
- /* [Beschreibung]
-
-@@ -969,7 +969,7 @@ inline UINT16 SfxSingleRecordReader::Get
-
- //-------------------------------------------------------------------------
-
--inline BYTE SfxSingleRecordReader::GetVersion() const
-+inline sal_uInt8 SfxSingleRecordReader::GetVersion() const
-
- /* [Beschreibung]
-
-@@ -982,7 +982,7 @@ inline BYTE SfxSingleRecordReader::GetVe
-
- //-------------------------------------------------------------------------
-
--inline FASTBOOL SfxSingleRecordReader::HasVersion( USHORT nVersion ) const
-+inline FASTBOOL SfxSingleRecordReader::HasVersion( sal_uInt16 nVersion ) const
-
- /* [Beschreibung]
-
-@@ -1048,8 +1048,8 @@ inline void SfxMultiFixRecordWriter::New
- inline SfxMultiMixRecordWriter::SfxMultiMixRecordWriter
- (
- SvStream* pStream, // Stream, in dem der Record angelegt wird
-- USHORT nRecordTag, // Gesamt-Record-Art-Kennung
-- BYTE nRecordVer // Gesamt-Record-Versions-Kennung
-+ sal_uInt16 nRecordTag, // Gesamt-Record-Art-Kennung
-+ sal_uInt8 nRecordVer // Gesamt-Record-Versions-Kennung
- )
-
- /* [Beschreibung]
-@@ -1076,7 +1076,7 @@ inline void SfxMultiFixRecordWriter::Res
-
- //=========================================================================
-
--inline UINT16 SfxMultiRecordReader::GetContentTag()
-+inline sal_uInt16 SfxMultiRecordReader::GetContentTag()
-
- /* [Beschreibung]
-
-@@ -1090,7 +1090,7 @@ inline UINT16 SfxMultiRecordReader::GetC
-
- //-------------------------------------------------------------------------
-
--inline BYTE SfxMultiRecordReader::GetContentVersion() const
-+inline sal_uInt8 SfxMultiRecordReader::GetContentVersion() const
-
- /* [Beschreibung]
-
-@@ -1104,7 +1104,7 @@ inline BYTE SfxMultiRecordReader::GetCon
-
- //-------------------------------------------------------------------------
-
--inline FASTBOOL SfxMultiRecordReader::HasContentVersion( USHORT nVersion ) const
-+inline FASTBOOL SfxMultiRecordReader::HasContentVersion( sal_uInt16 nVersion ) const
-
- /* [Beschreibung]
-
-@@ -1119,7 +1119,7 @@ inline FASTBOOL SfxMultiRecordReader::Ha
-
- //-------------------------------------------------------------------------
-
--inline UINT32 SfxMultiRecordReader::ContentCount() const
-+inline sal_uInt32 SfxMultiRecordReader::ContentCount() const
-
- /* [Beschreibung]
-
-Index: svtools/inc/flbytes.hxx
-===================================================================
-RCS file: /cvs/util/svtools/inc/flbytes.hxx,v
-retrieving revision 1.1.1.1
-retrieving revision 1.1.1.1.650.1
-diff -u -p -u -p -r1.1.1.1 -r1.1.1.1.650.1
---- svtools/inc/flbytes.hxx 18 Sep 2000 16:58:50 -0000 1.1.1.1
-+++ svtools/inc/flbytes.hxx 21 Jul 2004 17:34:07 -0000 1.1.1.1.650.1
-@@ -73,7 +73,7 @@
- class SvFillLockBytes : public SvLockBytes
- {
- SvLockBytesRef xLockBytes;
-- ULONG nFilledSize;
-+ sal_Size nFilledSize;
- BOOL bTerminated;
- BOOL bSync;
- public:
-@@ -81,17 +81,17 @@ public:
-
- SvFillLockBytes( SvLockBytes* pLockBytes );
- virtual ErrCode ReadAt(
-- ULONG nPos, void* pBuffer, ULONG nCount, ULONG* pRead ) const;
-+ sal_Size nPos, void* pBuffer, sal_Size nCount, sal_Size* pRead ) const;
- virtual ErrCode WriteAt(
-- ULONG nPos, const void* pBuffer, ULONG nCount, ULONG* pWritten );
-+ sal_Size nPos, const void* pBuffer, sal_Size nCount, sal_Size* pWritten );
- virtual ErrCode Flush() const;
-- virtual ErrCode SetSize( ULONG nSize );
-- virtual ErrCode LockRegion( ULONG nPos, ULONG nCount, LockType );
-- virtual ErrCode UnlockRegion( ULONG nPos, ULONG nCount, LockType );
-+ virtual ErrCode SetSize( sal_Size nSize );
-+ virtual ErrCode LockRegion( sal_Size nPos, sal_Size nCount, LockType );
-+ virtual ErrCode UnlockRegion( sal_Size nPos, sal_Size nCount, LockType );
- virtual ErrCode Stat( SvLockBytesStat*, SvLockBytesStatFlag ) const;
-- ErrCode FillAppend( const void* pBuffer, ULONG nCount, ULONG *pWritten );
-- ULONG Tell() const { return nFilledSize; }
-- void Seek( ULONG nPos ) { nFilledSize = nPos; }
-+ ErrCode FillAppend( const void* pBuffer, sal_Size nCount, sal_Size *pWritten );
-+ sal_Size Tell() const { return nFilledSize; }
-+ void Seek( sal_Size nPos ) { nFilledSize = nPos; }
-
- void Terminate();
- };
-@@ -133,34 +133,34 @@ public:
- virtual BOOL IsSynchronMode() const
- { return m_xAsyncLockBytes->IsSynchronMode(); }
-
-- virtual ErrCode ReadAt(ULONG nPos, void * pBuffer, ULONG nCount,
-- ULONG * pRead) const;
-+ virtual ErrCode ReadAt(sal_Size nPos, void * pBuffer, sal_Size nCount,
-+ sal_Size * pRead) const;
-
-- virtual ErrCode WriteAt(ULONG nPos, const void * pBuffer, ULONG nCount,
-- ULONG * pWritten);
-+ virtual ErrCode WriteAt(sal_Size nPos, const void * pBuffer, sal_Size nCount,
-+ sal_Size * pWritten);
-
- virtual ErrCode Flush() const { return m_xAsyncLockBytes->Flush(); }
-
-- virtual ErrCode SetSize(ULONG nSize)
-+ virtual ErrCode SetSize(sal_Size nSize)
- { return m_xAsyncLockBytes->SetSize(nSize); }
-
-- virtual ErrCode LockRegion(ULONG nPos, ULONG nCount, LockType eType)
-+ virtual ErrCode LockRegion(sal_Size nPos, sal_Size nCount, LockType eType)
- { return m_xAsyncLockBytes->LockRegion(nPos, nCount, eType); }
-
-- virtual ErrCode UnlockRegion(ULONG nPos, ULONG nCount, LockType eType)
-+ virtual ErrCode UnlockRegion(sal_Size nPos, sal_Size nCount, LockType eType)
- { return m_xAsyncLockBytes->UnlockRegion(nPos, nCount, eType); }
-
- virtual ErrCode Stat(SvLockBytesStat * pStat, SvLockBytesStatFlag eFlag)
- const
- { return m_xAsyncLockBytes->Stat(pStat, eFlag); }
-
-- virtual ErrCode FillAppend(const void * pBuffer, ULONG nCount,
-- ULONG * pWritten)
-+ virtual ErrCode FillAppend(const void * pBuffer, sal_Size nCount,
-+ sal_Size * pWritten)
- { return m_xAsyncLockBytes->FillAppend(pBuffer, nCount, pWritten); }
-
-- virtual ULONG Tell() const { return m_xAsyncLockBytes->Tell(); }
-+ virtual sal_Size Tell() const { return m_xAsyncLockBytes->Tell(); }
-
-- virtual ULONG Seek(ULONG nPos)
-+ virtual sal_Size Seek(sal_Size nPos)
- { return m_xAsyncLockBytes->Seek(nPos); }
-
- virtual void Terminate() { m_xAsyncLockBytes->Terminate(); }
-@@ -187,19 +187,19 @@ public:
- SvCompositeLockBytes( );
- ~SvCompositeLockBytes();
-
-- void Append( SvLockBytes* pLockBytes, ULONG nPos, ULONG nOffset );
-- ULONG RelativeOffset( ULONG nPos ) const;
-+ void Append( SvLockBytes* pLockBytes, sal_Size nPos, sal_Size nOffset );
-+ sal_Size RelativeOffset( sal_Size nPos ) const;
- void SetIsPending( BOOL bSet );
- SvLockBytes* GetLastLockBytes() const;
-
- virtual ErrCode ReadAt(
-- ULONG nPos, void* pBuffer, ULONG nCount, ULONG* pRead ) const;
-+ sal_Size nPos, void* pBuffer, sal_Size nCount, sal_Size* pRead ) const;
- virtual ErrCode WriteAt(
-- ULONG nPos, const void* pBuffer, ULONG nCount, ULONG* pWritten );
-+ sal_Size nPos, const void* pBuffer, sal_Size nCount, sal_Size* pWritten );
- virtual ErrCode Flush() const;
-- virtual ErrCode SetSize( ULONG nSize );
-- virtual ErrCode LockRegion( ULONG nPos, ULONG nCount, LockType );
-- virtual ErrCode UnlockRegion( ULONG nPos, ULONG nCount, LockType );
-+ virtual ErrCode SetSize( sal_Size nSize );
-+ virtual ErrCode LockRegion( sal_Size nPos, sal_Size nCount, LockType );
-+ virtual ErrCode UnlockRegion( sal_Size nPos, sal_Size nCount, LockType );
- virtual ErrCode Stat( SvLockBytesStat*, SvLockBytesStatFlag ) const;
- };
-
-Index: svtools/inc/itempool.hxx
-===================================================================
-RCS file: /cvs/util/svtools/inc/itempool.hxx,v
-retrieving revision 1.3
-retrieving revision 1.3.464.1
-diff -u -p -u -p -r1.3 -r1.3.464.1
---- svtools/inc/itempool.hxx 27 Mar 2003 14:36:20 -0000 1.3
-+++ svtools/inc/itempool.hxx 21 Jan 2005 17:19:38 -0000 1.3.464.1
-@@ -164,9 +164,9 @@ public:
- //---------------------------------------------------------------------
-
- protected:
-- static inline void SetRefCount( SfxPoolItem& rItem, ULONG n );
-- static inline ULONG AddRef( const SfxPoolItem& rItem, ULONG n = 1 );
-- static inline ULONG ReleaseRef( const SfxPoolItem& rItem, ULONG n = 1);
-+ static inline void SetRefCount( SfxPoolItem& rItem, sal_uInt32 n );
-+ static inline sal_uInt32 AddRef( const SfxPoolItem& rItem, sal_uInt32 n = 1 );
-+ static inline sal_uInt32 ReleaseRef( const SfxPoolItem& rItem, sal_uInt32 n = 1);
-
- public:
- SfxItemPool( const SfxItemPool &rPool,
-@@ -290,19 +290,19 @@ private:
- // --------------- Inline Implementierungen ------------------------------
-
- // nur der Pool darf den Referenz-Zaehler manipulieren !!!
--inline void SfxItemPool::SetRefCount( SfxPoolItem& rItem, ULONG n )
-+inline void SfxItemPool::SetRefCount( SfxPoolItem& rItem, sal_uInt32 n )
- {
- rItem.SetRefCount(n);
- }
-
- // nur der Pool darf den Referenz-Zaehler manipulieren !!!
--inline ULONG SfxItemPool::AddRef( const SfxPoolItem& rItem, ULONG n )
-+inline sal_uInt32 SfxItemPool::AddRef( const SfxPoolItem& rItem, sal_uInt32 n )
- {
- return rItem.AddRef(n);
- }
-
- // nur der Pool darf den Referenz-Zaehler manipulieren !!!
--inline ULONG SfxItemPool::ReleaseRef( const SfxPoolItem& rItem, ULONG n )
-+inline sal_uInt32 SfxItemPool::ReleaseRef( const SfxPoolItem& rItem, sal_uInt32 n )
- {
- return rItem.ReleaseRef(n);
- }
-Index: svtools/inc/roadmap.hxx
-===================================================================
-RCS file: /cvs/util/svtools/inc/roadmap.hxx,v
-retrieving revision 1.5
-retrieving revision 1.2.52.3
-diff -u -p -u -p -r1.5 -r1.2.52.3
---- svtools/inc/roadmap.hxx 17 Feb 2005 11:14:47 -0000 1.5
-+++ svtools/inc/roadmap.hxx 9 Mar 2005 23:06:05 -0000 1.2.52.3
-@@ -196,7 +196,7 @@ namespace svt
-
-
- protected:
-- sal_Int32 PreNotify( NotifyEvent& rNEvt );
-+ long PreNotify( NotifyEvent& rNEvt );
-
- protected:
- /// called when an item has been selected by any means
-Index: svtools/inc/strmadpt.hxx
-===================================================================
-RCS file: /cvs/util/svtools/inc/strmadpt.hxx,v
-retrieving revision 1.2
-retrieving revision 1.2.628.1
-diff -u -p -u -p -r1.2 -r1.2.628.1
---- svtools/inc/strmadpt.hxx 28 Sep 2001 13:02:30 -0000 1.2
-+++ svtools/inc/strmadpt.hxx 21 Jul 2004 17:34:08 -0000 1.2.628.1
-@@ -83,7 +83,7 @@ class SvOutputStreamOpenLockBytes: publi
- {
- com::sun::star::uno::Reference< com::sun::star::io::XOutputStream >
- m_xOutputStream;
-- sal_uInt32 m_nPosition;
-+ sal_Size m_nPosition;
-
- public:
- TYPEINFO();
-@@ -94,23 +94,23 @@ public:
- rTheOutputStream):
- m_xOutputStream(rTheOutputStream), m_nPosition(0) {}
-
-- virtual ErrCode ReadAt(ULONG, void *, ULONG, ULONG *) const;
-+ virtual ErrCode ReadAt(sal_Size, void *, sal_Size, sal_Size *) const;
-
-- virtual ErrCode WriteAt(ULONG nPos, const void * pBuffer, ULONG nCount,
-- ULONG * pWritten);
-+ virtual ErrCode WriteAt(sal_Size nPos, const void * pBuffer, sal_Size nCount,
-+ sal_Size * pWritten);
-
- virtual ErrCode Flush() const;
-
-- virtual ErrCode SetSize(ULONG);
-+ virtual ErrCode SetSize(sal_Size);
-
- virtual ErrCode Stat(SvLockBytesStat * pStat, SvLockBytesStatFlag) const;
-
-- virtual ErrCode FillAppend(const void * pBuffer, ULONG nCount,
-- ULONG * pWritten);
-+ virtual ErrCode FillAppend(const void * pBuffer, sal_Size nCount,
-+ sal_Size * pWritten);
-
-- virtual ULONG Tell() const;
-+ virtual sal_Size Tell() const;
-
-- virtual ULONG Seek(ULONG);
-+ virtual sal_Size Seek(sal_Size);
-
- virtual void Terminate();
- };
-Index: svtools/source/control/roadmap.cxx
-===================================================================
-RCS file: /cvs/util/svtools/source/control/roadmap.cxx,v
-retrieving revision 1.6
-retrieving revision 1.2.52.4
-diff -u -p -u -p -r1.6 -r1.2.52.4
---- svtools/source/control/roadmap.cxx 17 Feb 2005 11:15:55 -0000 1.6
-+++ svtools/source/control/roadmap.cxx 9 Mar 2005 23:09:59 -0000 1.2.52.4
-@@ -689,7 +689,7 @@ namespace svt
- }
-
- //---------------------------------------------------------------------
-- sal_Int32 ORoadmap::PreNotify( NotifyEvent& _rNEvt )
-+ long ORoadmap::PreNotify( NotifyEvent& _rNEvt )
- {
- // capture KeyEvents for taskpane cycling
- if ( _rNEvt.GetType() == EVENT_KEYINPUT )
-Index: svtools/source/filerec/filerec.cxx
-===================================================================
-RCS file: /cvs/util/svtools/source/filerec/filerec.cxx,v
-retrieving revision 1.4
-retrieving revision 1.4.8.1
-diff -u -p -u -p -r1.4 -r1.4.8.1
---- svtools/source/filerec/filerec.cxx 17 Jun 2004 13:18:52 -0000 1.4
-+++ svtools/source/filerec/filerec.cxx 21 Jul 2004 17:34:10 -0000 1.4.8.1
-@@ -68,7 +68,7 @@
-
- //========================================================================
-
--SV_IMPL_VARARR( SfxUINT32s, UINT32 );
-+SV_IMPL_VARARR( SfxUINT32s, sal_uInt32 );
-
- //========================================================================
-
-@@ -94,21 +94,21 @@ SV_IMPL_VARARR( SfxUINT32s, UINT32 );
- */
-
- #define SFX_REC_MINI_HEADER(nPreTag,nStartPos,nEndPos) \
-- ( UINT32(nPreTag) | \
-- UINT32(nEndPos-nStartPos-SFX_REC_HEADERSIZE_MINI) << 8 )
-+ ( sal_uInt32(nPreTag) | \
-+ sal_uInt32(nEndPos-nStartPos-SFX_REC_HEADERSIZE_MINI) << 8 )
-
- #define SFX_REC_HEADER(nRecType,nContentTag,nContentVer) \
-- ( UINT32(nRecType) | \
-- ( UINT32(nContentVer) << 8 ) | \
-- ( UINT32(nContentTag) << 16 ) )
-+ ( sal_uInt32(nRecType) | \
-+ ( sal_uInt32(nContentVer) << 8 ) | \
-+ ( sal_uInt32(nContentTag) << 16 ) )
-
- #define SFX_REC_CONTENT_HEADER(nContentVer,n1StStartPos,nCurStartPos) \
-- ( UINT32(nContentVer) | \
-- UINT32( nCurStartPos - n1StStartPos ) << 8 )
-+ ( sal_uInt32(nContentVer) | \
-+ sal_uInt32( nCurStartPos - n1StStartPos ) << 8 )
-
- //=========================================================================
-
--UINT32 SfxMiniRecordWriter::Close
-+sal_uInt32 SfxMiniRecordWriter::Close
- (
- FASTBOOL bSeekToEndOfRec /* TRUE (default)
- Der Stream wird an das Ende des Records
-@@ -131,7 +131,7 @@ UINT32 SfxMiniRecordWriter::Close
-
- [R"uckgabewert]
-
-- UINT32 != 0
-+ sal_uInt32 != 0
- Position im Stream, die direkt hinter dem Record liegt.
- 'bSeekToEndOfRecord==TRUE'
- => R"uckgabewert == aktuelle Stream-Position nach Aufruf
-@@ -145,13 +145,13 @@ UINT32 SfxMiniRecordWriter::Close
- if ( !_bHeaderOk )
- {
- // Header an den Anfang des Records schreiben
-- UINT32 nEndPos = _pStream->Tell();
-- _pStream->Seek( _nStartPos );
-+ sal_uInt32 nEndPos = svstream_Size_to_u32( _pStream->Tell() );
-+ _pStream->Seek( svstream_u32_to_Size(_nStartPos) );
- *_pStream << SFX_REC_MINI_HEADER( _nPreTag, _nStartPos, nEndPos );
-
- // je nachdem ans Ende des Records seeken oder hinter Header bleiben
- if ( bSeekToEndOfRec )
-- _pStream->Seek( nEndPos );
-+ _pStream->Seek( svstream_u32_to_Size(nEndPos) );
-
- // Header wurde JETZT geschrieben
- _bHeaderOk = TRUE;
-@@ -162,14 +162,14 @@ UINT32 SfxMiniRecordWriter::Close
- else if ( SFX_BOOL_DONTCARE == _bHeaderOk )
- {
- // Header auslesen, um Soll-Gr"o\se zu bestimmen
-- UINT32 nEndPos = _pStream->Tell();
-- _pStream->Seek( _nStartPos );
-- ULONG nHeader;
-+ sal_uInt32 nEndPos = svstream_Size_to_u32( _pStream->Tell() );
-+ _pStream->Seek( svstream_u32_to_Size(_nStartPos) );
-+ sal_uInt32 nHeader;
- *_pStream >> nHeader;
-- _pStream->Seek( nEndPos );
-+ _pStream->Seek( svstream_u32_to_Size(nEndPos) );
-
- // Soll-Gr"o\se mit Ist-Gr"o\se vergleichen
-- DBG_ASSERT( nEndPos - SFX_REC_OFS(nHeader) == _nStartPos + sizeof(UINT32),
-+ DBG_ASSERT( nEndPos - SFX_REC_OFS(nHeader) == _nStartPos + sizeof(sal_uInt32),
- "fixed record size incorrect" );
- DbgOutf( "SfxFileRec: written record until %ul", nEndPos );
- }
-@@ -211,7 +211,7 @@ USHORT SfxMiniRecordReader::ScanRecordTy
-
- [R"uckgabewert]
-
-- USHORT SFX_REC_TYPE_EOR
-+ sal_uInt16 SFX_REC_TYPE_EOR
- An der aktuellen Position des Streams
- steht eine End-Of-Records-Kennung.
-
-@@ -256,11 +256,11 @@ USHORT SfxMiniRecordReader::ScanRecordTy
-
- {
- // die ersten 4 Bytes als Mini-Header lesen
-- ULONG nHeader;
-+ sal_uInt32 nHeader;
- *pStream >> nHeader;
-
- // k"onnte es sich um einen extended-Record handeln?
-- USHORT nPreTag = SFX_REC_PRE(nHeader);
-+ sal_uInt16 nPreTag = SFX_REC_PRE(nHeader);
- if ( SFX_REC_PRETAG_EXT == nPreTag )
- {
- // die n"achsten 4 Bytes als extended-Header lesen
-@@ -270,7 +270,7 @@ USHORT SfxMiniRecordReader::ScanRecordTy
- pStream->SeekRel(-8);
-
- // liegt eine g"ultige Record-Kennung vor?
-- USHORT nType = SFX_REC_TYP(nHeader);
-+ sal_uInt16 nType = SFX_REC_TYP(nHeader);
- if ( nType >= SFX_REC_TYPE_FIRST && nType <= SFX_REC_TYPE_LAST )
- // entsprechenden extended-Record-Typ zur"uckliefern
- return nType;
-@@ -287,7 +287,7 @@ USHORT SfxMiniRecordReader::ScanRecordTy
- return nPreTag;
-
- // liegt ein Drawin-Engine-Record vor?
-- if ( nHeader == UINT32(*"DRMD") || nHeader == UINT32(*"DRVW") )
-+ if ( nHeader == sal_uInt32(*"DRMD") || nHeader == sal_uInt32(*"DRVW") )
- return SFX_REC_TYPE_DRAWENG;
-
- // alle anderen sind grunds"atzlich g"ultige Mini-Records
-@@ -296,7 +296,7 @@ USHORT SfxMiniRecordReader::ScanRecordTy
-
- //-------------------------------------------------------------------------
-
--FASTBOOL SfxMiniRecordReader::SetHeader_Impl( UINT32 nHeader )
-+FASTBOOL SfxMiniRecordReader::SetHeader_Impl( sal_uInt32 nHeader )
-
- /* [Beschreibung]
-
-@@ -311,7 +311,7 @@ FASTBOOL SfxMiniRecordReader::SetHeader_
- FASTBOOL bRet = TRUE;
-
- // Record-Ende und Pre-Tag aus dem Header ermitteln
-- _nEofRec = _pStream->Tell() + SFX_REC_OFS(nHeader);
-+ _nEofRec = svstream_Size_to_u32(_pStream->Tell()) + SFX_REC_OFS(nHeader);
- _nPreTag = SFX_REC_PRE(nHeader);
-
- // wenn End-Of-Record-Kennung, dann Fehler
-@@ -348,9 +348,9 @@ SfxMiniRecordReader::SfxMiniRecordReader
- _bSkipped( FALSE )
- {
- // Header einlesen
-- UINT32 nStartPos = pStream->Tell(); // um im Fehlerfall zur"uck zu-seeken
-+ sal_uInt32 nStartPos = svstream_Size_to_u32( pStream->Tell() ); // um im Fehlerfall zur"uck zu-seeken
- DBG( DbgOutf( "SfxFileRec: reading record at %ul", nStartPos ) );
-- UINT32 nHeader;
-+ sal_uInt32 nHeader;
- *pStream >> nHeader;
-
- // Headerdaten extrahieren
-@@ -362,7 +362,7 @@ SfxMiniRecordReader::SfxMiniRecordReader
- else if ( _nPreTag == SFX_REC_PRETAG_EOR )
- pStream->SetError( ERRCODE_IO_WRONGFORMAT );
- if ( !IsValid() )
-- pStream->Seek( nStartPos );
-+ pStream->Seek( svstream_u32_to_Size(nStartPos) );
- }
-
- //-------------------------------------------------------------------------
-@@ -373,7 +373,7 @@ SfxMiniRecordReader::SfxMiniRecordReader
- Position sich ein <SfxMiniRecord>
- befindet.
- */
-- BYTE nTag // Pre-Tag des gew"unschten Records
-+ sal_uInt8 nTag // Pre-Tag des gew"unschten Records
- )
-
- /* [Beschreibung]
-@@ -420,14 +420,14 @@ SfxMiniRecordReader::SfxMiniRecordReader
- }
-
- // StartPos merken, um im Fehlerfall zur"uck-seeken zu k"onnen
-- UINT32 nStartPos = pStream->Tell();
-+ sal_uInt32 nStartPos = svstream_Size_to_u32( pStream->Tell() );
-
- // passenden Record suchen
- while(TRUE)
- {
- // Header lesen
- DBG( DbgOutf( "SfxFileRec: searching record at %ul", pStream->Tell() ) );
-- UINT32 nHeader;
-+ sal_uInt32 nHeader;
- *pStream >> nHeader;
-
- // Headerdaten von Basisklasse extrahieren lassen
-@@ -445,12 +445,12 @@ SfxMiniRecordReader::SfxMiniRecordReader
- break;
-
- // sonst skippen und weitersuchen
-- pStream->Seek( _nEofRec );
-+ pStream->Seek( svstream_u32_to_Size(_nEofRec) );
- continue;
- }
-
- // Fehler => zur"uck-seeken
-- pStream->Seek( nStartPos );
-+ pStream->Seek( svstream_u32_to_Size(nStartPos) );
- break;
- }
- }
-@@ -459,10 +459,10 @@ SfxMiniRecordReader::SfxMiniRecordReader
-
- SfxSingleRecordWriter::SfxSingleRecordWriter
- (
-- BYTE nRecordType, // f"ur Subklassen
-+ sal_uInt8 nRecordType, // f"ur Subklassen
- SvStream* pStream, // Stream, in dem der Record angelegt wird
-- UINT16 nContentTag, // Inhalts-Art-Kennung
-- BYTE nContentVer // Inhalts-Versions-Kennung
-+ sal_uInt16 nContentTag, // Inhalts-Art-Kennung
-+ sal_uInt8 nContentVer // Inhalts-Versions-Kennung
- )
-
- /* [Beschreibung]
-@@ -481,8 +481,8 @@ SfxSingleRecordWriter::SfxSingleRecordWr
- SfxSingleRecordWriter::SfxSingleRecordWriter
- (
- SvStream* pStream, // Stream, in dem der Record angelegt wird
-- UINT16 nContentTag, // Inhalts-Art-Kennung
-- BYTE nContentVer // Inhalts-Versions-Kennung
-+ sal_uInt16 nContentTag, // Inhalts-Art-Kennung
-+ sal_uInt8 nContentVer // Inhalts-Versions-Kennung
- )
-
- /* [Beschreibung]
-@@ -503,9 +503,9 @@ SfxSingleRecordWriter::SfxSingleRecordWr
- SfxSingleRecordWriter::SfxSingleRecordWriter
- (
- SvStream* pStream, // Stream, in dem der Record angelegt wird
-- UINT16 nContentTag, // Inhalts-Art-Kennung
-- BYTE nContentVer, // Inhalts-Versions-Kennung
-- UINT32 nContentSize // Gr"o\se des Inhalts in Bytes
-+ sal_uInt16 nContentTag, // Inhalts-Art-Kennung
-+ sal_uInt8 nContentVer, // Inhalts-Versions-Kennung
-+ sal_uInt32 nContentSize // Gr"o\se des Inhalts in Bytes
- )
-
- /* [Beschreibung]
-@@ -523,7 +523,7 @@ SfxSingleRecordWriter::SfxSingleRecordWr
-
- //=========================================================================
-
--inline FASTBOOL SfxSingleRecordReader::ReadHeader_Impl( USHORT nTypes )
-+inline FASTBOOL SfxSingleRecordReader::ReadHeader_Impl( sal_uInt16 nTypes )
-
- /* [Beschreibung]
-
-@@ -537,7 +537,7 @@ inline FASTBOOL SfxSingleRecordReader::R
- FASTBOOL bRet;
-
- // Basisklassen-Header einlesen
-- UINT32 nHeader;
-+ sal_uInt32 nHeader;
- *_pStream >> nHeader;
- if ( !SetHeader_Impl( nHeader ) )
- bRet = FALSE;
-@@ -561,7 +561,7 @@ SfxSingleRecordReader::SfxSingleRecordRe
- : SfxMiniRecordReader()
- {
- // Startposition merken, um im Fehlerfall zur"uck-seeken zu k"onnen
-- UINT32 nStartPos = pStream->Tell();
-+ sal_uInt32 nStartPos = svstream_Size_to_u32( pStream->Tell() );
- DBG( DbgOutf( "SfxFileRec: reading record at %ul", nStartPos ) );
-
- // Basisklasse initialisieren (nicht via Ctor, da der nur MiniRecs akzept.)
-@@ -578,17 +578,17 @@ SfxSingleRecordReader::SfxSingleRecordRe
-
- //-------------------------------------------------------------------------
-
--SfxSingleRecordReader::SfxSingleRecordReader( SvStream *pStream, USHORT nTag )
-+SfxSingleRecordReader::SfxSingleRecordReader( SvStream *pStream, sal_uInt16 nTag )
- {
- // StartPos merken, um im Fehlerfall zur"uck-seeken zu k"onnen
-- UINT32 nStartPos = pStream->Tell();
-+ sal_uInt32 nStartPos = svstream_Size_to_u32( pStream->Tell() );
-
- // richtigen Record suchen, ggf. Error-Code setzen und zur"uck-seeken
- Construct_Impl( pStream );
- if ( !FindHeader_Impl( SFX_REC_TYPE_SINGLE, nTag ) )
- {
- // Error-Code setzen und zur"uck-seeken
-- pStream->Seek( nStartPos );
-+ pStream->Seek( svstream_u32_to_Size(nStartPos) );
- pStream->SetError( ERRCODE_IO_WRONGFORMAT );
- }
- }
-@@ -597,8 +597,8 @@ SfxSingleRecordReader::SfxSingleRecordRe
-
- FASTBOOL SfxSingleRecordReader::FindHeader_Impl
- (
-- UINT16 nTypes, // arithm. Veroderung erlaubter Record-Typen
-- UINT16 nTag // zu findende Record-Art-Kennung
-+ sal_uInt16 nTypes, // arithm. Veroderung erlaubter Record-Typen
-+ sal_uInt16 nTag // zu findende Record-Art-Kennung
- )
-
- /* [Beschreibung]
-@@ -613,13 +613,13 @@ FASTBOOL SfxSingleRecordReader::FindHead
-
- {
- // StartPos merken, um im Fehlerfall zur"uck-seeken zu k"onnen
-- UINT32 nStartPos = _pStream->Tell();
-+ sal_uInt32 nStartPos = svstream_Size_to_u32( _pStream->Tell() );
-
- // richtigen Record suchen
- while ( !_pStream->IsEof() )
- {
- // Header lesen
-- UINT32 nHeader;
-+ sal_uInt32 nHeader;
- DBG( DbgOutf( "SfxFileRec: searching record at %ul", _pStream->Tell() ) );
- *_pStream >> nHeader;
- if ( !SetHeader_Impl( nHeader ) )
-@@ -649,12 +649,12 @@ FASTBOOL SfxSingleRecordReader::FindHead
-
- // sonst skippen
- if ( !_pStream->IsEof() )
-- _pStream->Seek( _nEofRec );
-+ _pStream->Seek( svstream_u32_to_Size(_nEofRec) );
- }
-
- // Fehler setzen und zur"uck-seeken
- _pStream->SetError( ERRCODE_IO_WRONGFORMAT );
-- _pStream->Seek( nStartPos );
-+ _pStream->Seek( svstream_u32_to_Size(nStartPos) );
- return FALSE;
- }
-
-@@ -662,11 +662,11 @@ FASTBOOL SfxSingleRecordReader::FindHead
-
- SfxMultiFixRecordWriter::SfxMultiFixRecordWriter
- (
-- BYTE nRecordType, // Subklassen Record-Kennung
-+ sal_uInt8 nRecordType, // Subklassen Record-Kennung
- SvStream* pStream, // Stream, in dem der Record angelegt wird
-- UINT16 nContentTag, // Content-Art-Kennung
-- BYTE nContentVer, // Content-Versions-Kennung
-- UINT32 nContentSize // Gr"o\se jedes einzelnen Contents in Bytes
-+ sal_uInt16 nContentTag, // Content-Art-Kennung
-+ sal_uInt8 nContentVer, // Content-Versions-Kennung
-+ sal_uInt32 nContentSize // Gr"o\se jedes einzelnen Contents in Bytes
- )
-
- /* [Beschreibung]
-@@ -686,9 +686,9 @@ SfxMultiFixRecordWriter::SfxMultiFixReco
- SfxMultiFixRecordWriter::SfxMultiFixRecordWriter
- (
- SvStream* pStream, // Stream, in dem der Record angelegt wird
-- UINT16 nContentTag, // Content-Art-Kennung
-- BYTE nContentVer, // Content-Versions-Kennung
-- UINT32 nContentSize // Gr"o\se jedes einzelnen Contents in Bytes
-+ sal_uInt16 nContentTag, // Content-Art-Kennung
-+ sal_uInt8 nContentVer, // Content-Versions-Kennung
-+ sal_uInt32 nContentSize // Gr"o\se jedes einzelnen Contents in Bytes
- )
-
- /* [Beschreibung]
-@@ -707,7 +707,7 @@ SfxMultiFixRecordWriter::SfxMultiFixReco
-
- //------------------------------------------------------------------------
-
--UINT32 SfxMultiFixRecordWriter::Close( FASTBOOL bSeekToEndOfRec )
-+sal_uInt32 SfxMultiFixRecordWriter::Close( FASTBOOL bSeekToEndOfRec )
-
- // siehe <SfxMiniRecordWriter>
-
-@@ -716,7 +716,7 @@ UINT32 SfxMultiFixRecordWriter::Close( F
- if ( !_bHeaderOk )
- {
- // Position hinter Record merken, um sie restaurieren zu k"onnen
-- UINT32 nEndPos = SfxSingleRecordWriter::Close( FALSE );
-+ sal_uInt32 nEndPos = SfxSingleRecordWriter::Close( FALSE );
-
- // gegen"uber SfxSingleRecord erweiterten Header schreiben
- *_pStream << _nContentCount;
-@@ -724,7 +724,7 @@ UINT32 SfxMultiFixRecordWriter::Close( F
-
- // je nachdem ans Ende des Records seeken oder hinter Header bleiben
- if ( bSeekToEndOfRec )
-- _pStream->Seek(nEndPos);
-+ _pStream->Seek( svstream_u32_to_Size(nEndPos) );
- return nEndPos;
- }
-
-@@ -736,10 +736,10 @@ UINT32 SfxMultiFixRecordWriter::Close( F
-
- SfxMultiVarRecordWriter::SfxMultiVarRecordWriter
- (
-- BYTE nRecordType, // Record-Kennung der Subklasse
-- SvStream* pStream, // Stream, in dem der Record angelegt wird
-- UINT16 nRecordTag, // Gesamt-Art-Kennung
-- BYTE nRecordVer // Gesamt-Versions-Kennung
-+ sal_uInt8 nRecordType, // Record-Kennung der Subklasse
-+ SvStream* pStream, // Stream, in dem der Record angelegt wird
-+ sal_uInt16 nRecordTag, // Gesamt-Art-Kennung
-+ sal_uInt8 nRecordVer // Gesamt-Versions-Kennung
- )
-
- /* [Beschreibung]
-@@ -757,8 +757,8 @@ SfxMultiVarRecordWriter::SfxMultiVarReco
- SfxMultiVarRecordWriter::SfxMultiVarRecordWriter
- (
- SvStream* pStream, // Stream, in dem der Record angelegt wird
-- UINT16 nRecordTag, // Gesamt-Art-Kennung
-- BYTE nRecordVer // Gesamt-Versions-Kennung
-+ sal_uInt16 nRecordTag, // Gesamt-Art-Kennung
-+ sal_uInt8 nRecordVer // Gesamt-Versions-Kennung
- )
-
- /* [Beschreibung]
-@@ -826,13 +826,13 @@ void SfxMultiVarRecordWriter::NewContent
- FlushContent_Impl();
-
- // neuen Content beginnen
-- _nContentStartPos = _pStream->Tell();
-+ _nContentStartPos = svstream_Size_to_u32( _pStream->Tell() );
- ++_nContentCount;
- }
-
- //-------------------------------------------------------------------------
-
--UINT32 SfxMultiVarRecordWriter::Close( FASTBOOL bSeekToEndOfRec )
-+sal_uInt32 SfxMultiVarRecordWriter::Close( FASTBOOL bSeekToEndOfRec )
-
- // siehe <SfxMiniRecordWriter>
-
-@@ -845,30 +845,30 @@ UINT32 SfxMultiVarRecordWriter::Close( F
- FlushContent_Impl();
-
- // Content-Offset-Tabelle schreiben
-- UINT32 nContentOfsPos = _pStream->Tell();
-+ sal_uInt32 nContentOfsPos = svstream_Size_to_u32( _pStream->Tell() );
- //! darf man das so einr"ucken?
- #if defined(OSL_LITENDIAN)
- _pStream->Write( _aContentOfs.GetData(),
-- sizeof(UINT32)*_nContentCount );
-+ svstream_u32_to_Size(sizeof(sal_uInt32)*_nContentCount) );
- #else
-- for ( USHORT n = 0; n < _nContentCount; ++n )
-- *_pStream << UINT32(_aContentOfs[n]);
-+ for ( sal_uInt16 n = 0; n < _nContentCount; ++n )
-+ *_pStream << sal_uInt32(_aContentOfs[n]);
- #endif
-
- // SfxMultiFixRecordWriter::Close() "uberspringen!
-- UINT32 nEndPos = SfxSingleRecordWriter::Close( FALSE );
-+ sal_uInt32 nEndPos = SfxSingleRecordWriter::Close( FALSE );
-
- // eigenen Header schreiben
- *_pStream << _nContentCount;
- if ( SFX_REC_TYPE_VARSIZE_RELOC == _nPreTag ||
- SFX_REC_TYPE_MIXTAGS_RELOC == _nPreTag )
-- *_pStream << nContentOfsPos - ( _pStream->Tell() + sizeof(UINT32) );
-+ *_pStream << nContentOfsPos - (sal_uInt32)( svstream_Size_to_u32(_pStream->Tell()) + sizeof(sal_uInt32) );
- else
- *_pStream << nContentOfsPos;
-
- // ans Ende des Records seeken bzw. am Ende des Headers bleiben
- if ( bSeekToEndOfRec )
-- _pStream->Seek(nEndPos);
-+ _pStream->Seek(svstream_u32_to_Size(nEndPos));
- return nEndPos;
- }
-
-@@ -880,8 +880,8 @@ UINT32 SfxMultiVarRecordWriter::Close( F
-
- void SfxMultiMixRecordWriter::NewContent
- (
-- UINT16 nContentTag, // Kennung f"ur die Art des Contents
-- BYTE nContentVer // Kennung f"ur die Version des Contents
-+ sal_uInt16 nContentTag, // Kennung f"ur die Art des Contents
-+ sal_uInt8 nContentVer // Kennung f"ur die Version des Contents
- )
-
- /* [Beschreibung]
-@@ -897,7 +897,7 @@ void SfxMultiMixRecordWriter::NewContent
- FlushContent_Impl();
-
- // Tag vor den Content schreiben, Version und Startposition merken
-- _nContentStartPos = _pStream->Tell();
-+ _nContentStartPos = svstream_Size_to_u32( _pStream->Tell() );
- ++_nContentCount;
- *_pStream << nContentTag;
- _nContentVer = nContentVer;
-@@ -924,21 +924,21 @@ FASTBOOL SfxMultiRecordReader::ReadHeade
- if ( _nRecordType != SFX_REC_TYPE_FIXSIZE )
- {
- // Tabelle aus dem Stream einlesen
-- UINT32 nContentPos = _pStream->Tell();
-+ sal_uInt32 nContentPos = svstream_Size_to_u32( _pStream->Tell() );
- if ( _nRecordType == SFX_REC_TYPE_VARSIZE_RELOC ||
- _nRecordType == SFX_REC_TYPE_MIXTAGS_RELOC )
-- _pStream->SeekRel( + _nContentSize );
-+ _pStream->SeekRel( + svstream_u32_to_Size(_nContentSize) );
- else
-- _pStream->Seek( _nContentSize );
-- _pContentOfs = new UINT32[_nContentCount];
-+ _pStream->Seek( svstream_u32_to_Size(_nContentSize) );
-+ _pContentOfs = new sal_uInt32[_nContentCount];
- //! darf man jetzt so einr"ucken
- #if defined(OSL_LITENDIAN)
-- _pStream->Read( _pContentOfs, sizeof(UINT32)*_nContentCount );
-+ _pStream->Read( _pContentOfs, svstream_u32_to_Size(sizeof(sal_uInt32)*_nContentCount) );
- #else
-- for ( USHORT n = 0; n < _nContentCount; ++n )
-+ for ( sal_uInt16 n = 0; n < _nContentCount; ++n )
- *_pStream >> _pContentOfs[n];
- #endif
-- _pStream->Seek( nContentPos );
-+ _pStream->Seek( svstream_u32_to_Size(nContentPos) );
- }
-
- // Header konnte gelesen werden, wenn am Stream kein Error gesetzt ist
-@@ -951,7 +951,7 @@ SfxMultiRecordReader::SfxMultiRecordRead
- : _nContentNo(0), _pContentOfs( NULL )
- {
- // Position im Stream merken, um im Fehlerfall zur"uck-seeken zu k"onnen
-- _nStartPos = pStream->Tell();
-+ _nStartPos = svstream_Size_to_u32( pStream->Tell() );
-
- // Basisklasse konstruieren (normaler Ctor w"urde nur SingleRecs lesen)
- SfxSingleRecordReader::Construct_Impl( pStream );
-@@ -971,7 +971,7 @@ SfxMultiRecordReader::SfxMultiRecordRead
- : _nContentNo(0)
- {
- // Position im Stream merken, um im Fehlerfall zur"uck-seeken zu k"onnen
-- _nStartPos = pStream->Tell();
-+ _nStartPos = svstream_Size_to_u32( pStream->Tell() );
-
- // passenden Record suchen und Basisklasse initialisieren
- SfxSingleRecordReader::Construct_Impl( pStream );
-@@ -1015,10 +1015,10 @@ FASTBOOL SfxMultiRecordReader::GetConten
- if ( _nContentNo < _nContentCount )
- {
- // den Stream an den Anfang des Contents positionieren
-- UINT32 nOffset = _nRecordType == SFX_REC_TYPE_FIXSIZE
-+ sal_uInt32 nOffset = _nRecordType == SFX_REC_TYPE_FIXSIZE
- ? _nContentNo * _nContentSize
- : SFX_REC_CONTENT_OFS(_pContentOfs[_nContentNo]);
-- UINT32 nNewPos = _nStartPos + nOffset;
-+ sal_uInt32 nNewPos = _nStartPos + nOffset;
- DBG_ASSERT( nNewPos >= _pStream->Tell(), "SfxMultiRecordReader::GetContent() - New position before current, to much data red!" );
-
- // #99366#: correct stream pos in every case;
-@@ -1027,7 +1027,7 @@ FASTBOOL SfxMultiRecordReader::GetConten
- // gives errors when writing with 5.1 and reading with current
- // versions, so we decided to remove the if clause (KA-05/17/2002)
- // if ( nNewPos > _pStream->Tell() )
-- _pStream->Seek( nNewPos );
-+ _pStream->Seek( svstream_u32_to_Size(nNewPos) );
-
- // ggf. Content-Header lesen
- if ( _nRecordType == SFX_REC_TYPE_MIXTAGS ||
-Index: svtools/source/filter.vcl/filter/dlgexpor.cxx
-===================================================================
-RCS file: /cvs/util/svtools/source/filter.vcl/filter/dlgexpor.cxx,v
-retrieving revision 1.4
-retrieving revision 1.4.16.1
-diff -u -p -u -p -r1.4 -r1.4.16.1
---- svtools/source/filter.vcl/filter/dlgexpor.cxx 16 Jun 2004 10:16:20 -0000 1.4
-+++ svtools/source/filter.vcl/filter/dlgexpor.cxx 21 Jul 2004 17:34:11 -0000 1.4.16.1
-@@ -208,7 +208,7 @@ IMPL_LINK( DlgExportPix, OK, void *, EMP
- {
- // Config-Parameter schreiben
-
-- sal_Int32 nRes = Max( Min( aCbbRes.GetText().ToInt32(), 600L), 75L );
-+ sal_Int32 nRes = Max( Min( aCbbRes.GetText().ToInt32(), (sal_Int32)600), (sal_Int32)75 );
- ::com::sun::star::awt::Size aSize(
- (long)MetricField::ConvertDoubleValue( aMtfSizeX.GetValue(), 2, aMtfSizeX.GetUnit(), MAP_100TH_MM ),
- (long)MetricField::ConvertDoubleValue( aMtfSizeY.GetValue(), 2, aMtfSizeY.GetUnit(), MAP_100TH_MM ) );
-Index: svtools/source/filter.vcl/filter/filter.cxx
-===================================================================
-RCS file: /cvs/util/svtools/source/filter.vcl/filter/filter.cxx,v
-retrieving revision 1.54
-retrieving revision 1.48.16.4
-diff -u -p -u -p -r1.54 -r1.48.16.4
---- svtools/source/filter.vcl/filter/filter.cxx 16 Feb 2005 18:01:48 -0000 1.54
-+++ svtools/source/filter.vcl/filter/filter.cxx 9 Mar 2005 23:15:12 -0000 1.48.16.4
-@@ -894,7 +894,7 @@ static Graphic ImpGetScaledGraphic( cons
- MapMode aMap( MAP_100TH_INCH );
-
- sal_Int32 nDPI = rConfigItem.ReadInt32( String( ResId( KEY_RES, pResMgr ) ), 75 );
-- Fraction aFrac( 1, Min( Max( nDPI, 75L ), 600L ) );
-+ Fraction aFrac( 1, Min( Max( nDPI, 75 ), 600 ) );
-
- aMap.SetScaleX( aFrac );
- aMap.SetScaleY( aFrac );
-Index: svtools/source/filter.vcl/wmf/wmfwr.cxx
-===================================================================
-RCS file: /cvs/util/svtools/source/filter.vcl/wmf/wmfwr.cxx,v
-retrieving revision 1.20
-retrieving revision 1.19.8.3
-diff -u -p -u -p -r1.20 -r1.19.8.3
---- svtools/source/filter.vcl/wmf/wmfwr.cxx 6 Jul 2004 12:12:30 -0000 1.20
-+++ svtools/source/filter.vcl/wmf/wmfwr.cxx 21 Jan 2005 17:16:36 -0000 1.19.8.3
-@@ -920,7 +920,7 @@ void WMFWriter::WMFRecord_StretchDIB( co
- // erzeugt, schreiben wir zuerst die Bitmap an die richtige Position
- // Und ueberschreiben hinterher den FILEHEADER mit den Parametern.
- nPosAnf=pWMF->Tell(); // Position merken, wo Parameter hin sollen
-- *pWMF << (long)0 << (long)0; // 8 bytes auffuellen (diese 8 bytes +
-+ *pWMF << (sal_Int32)0 << (sal_Int32)0; // 8 bytes auffuellen (diese 8 bytes +
- // 14 bytes ueberfluessigen FILEHEADER
- // = 22 bytes Parameter)
- *pWMF << rBitmap; // Bitmap schreiben
-Index: svtools/source/items/rectitem.cxx
-===================================================================
-RCS file: /cvs/util/svtools/source/items/rectitem.cxx,v
-retrieving revision 1.5
-retrieving revision 1.5.614.1
-diff -u -p -u -p -r1.5 -r1.5.614.1
---- svtools/source/items/rectitem.cxx 28 May 2002 14:17:17 -0000 1.5
-+++ svtools/source/items/rectitem.cxx 21 Jul 2004 17:34:13 -0000 1.5.614.1
-@@ -194,10 +194,10 @@ BOOL SfxRectangleItem::QueryValue( com::
- aVal.getHeight() );
- break;
- }
-- case MID_RECT_LEFT: rVal <<= aVal.getX(); break;
-- case MID_RECT_RIGHT: rVal <<= aVal.getY(); break;
-- case MID_WIDTH: rVal <<= aVal.getWidth(); break;
-- case MID_HEIGHT: rVal <<= aVal.getHeight(); break;
-+ case MID_RECT_LEFT: rVal <<= (sal_Int32)aVal.getX(); break; // FIXME: possible truncation in 64-bit mode
-+ case MID_RECT_RIGHT: rVal <<= (sal_Int32)aVal.getY(); break; // FIXME: possible truncation in 64-bit mode
-+ case MID_WIDTH: rVal <<= (sal_Int32)aVal.getWidth(); break; // FIXME: possible truncation in 64-bit mode
-+ case MID_HEIGHT: rVal <<= (sal_Int32)aVal.getHeight(); break; // FIXME: possible truncation in 64-bit mode
- default: DBG_ERROR("Wrong MemberID!"); return FALSE;
- }
-
-Index: svtools/source/items/szitem.cxx
-===================================================================
-RCS file: /cvs/util/svtools/source/items/szitem.cxx,v
-retrieving revision 1.4
-retrieving revision 1.4.614.1
-diff -u -p -u -p -r1.4 -r1.4.614.1
---- svtools/source/items/szitem.cxx 28 May 2002 11:37:16 -0000 1.4
-+++ svtools/source/items/szitem.cxx 21 Jul 2004 17:34:13 -0000 1.4.614.1
-@@ -198,9 +198,9 @@ BOOL SfxSizeItem::QueryValue( com::sun:
- break;
- }
- case MID_WIDTH:
-- rVal <<= aTmp.getWidth(); break;
-+ rVal <<= (sal_Int32)aTmp.getWidth(); break; // FIXME: possible truncation in 64-bit mode
- case MID_HEIGHT:
-- rVal <<= aTmp.getHeight(); break;
-+ rVal <<= (sal_Int32)aTmp.getHeight(); break; // FIXME: possible truncation in 64-bit mode
- default: DBG_ERROR("Wrong MemberId!"); return FALSE;
- }
-
-Index: svtools/source/misc/flbytes.cxx
-===================================================================
-RCS file: /cvs/util/svtools/source/misc/flbytes.cxx,v
-retrieving revision 1.1.1.1
-retrieving revision 1.1.1.1.650.1
-diff -u -p -u -p -r1.1.1.1 -r1.1.1.1.650.1
---- svtools/source/misc/flbytes.cxx 18 Sep 2000 16:59:02 -0000 1.1.1.1
-+++ svtools/source/misc/flbytes.cxx 21 Jul 2004 17:34:14 -0000 1.1.1.1.650.1
-@@ -79,9 +79,9 @@ namespace unnamed_svtools_flbytes {} usi
- //============================================================================
- namespace unnamed_svtools_flbytes {
-
--inline ULONG MyMin( long a, long b )
-+inline sal_Int32 MyMin( sal_Int32 a, sal_Int32 b )
- {
-- return Max( long( Min( a , b ) ), 0L );
-+ return Max( sal_Int32( Min( a , b ) ), 0 );
- }
-
- }
-@@ -103,14 +103,14 @@ SvFillLockBytes::SvFillLockBytes( SvLock
- }
-
- //============================================================================
--ErrCode SvFillLockBytes::ReadAt( ULONG nPos, void* pBuffer, ULONG nCount,
-- ULONG *pRead ) const
-+ErrCode SvFillLockBytes::ReadAt( sal_Size nPos, void* pBuffer, sal_Size nCount,
-+ sal_Size *pRead ) const
- {
- if( bTerminated )
- return xLockBytes->ReadAt( nPos, pBuffer, nCount, pRead );
- else
- {
-- ULONG nWanted = nPos + nCount;
-+ sal_Size nWanted = nPos + nCount;
- if( IsSynchronMode() )
- {
- while( nWanted > nFilledSize && !bTerminated )
-@@ -119,8 +119,8 @@ ErrCode SvFillLockBytes::ReadAt( ULONG n
- }
- else
- {
-- ULONG nRead = MyMin( nCount, long( nFilledSize ) - nPos );
-- ULONG nErr = xLockBytes->ReadAt( nPos, pBuffer, nRead, pRead );
-+ sal_Size nRead = MyMin( nCount, sal_Size( nFilledSize ) - nPos );
-+ sal_Size nErr = xLockBytes->ReadAt( nPos, pBuffer, nRead, pRead );
- return ( !nCount || nRead == nCount || nErr ) ?
- nErr : ERRCODE_IO_PENDING;
- }
-@@ -128,14 +128,14 @@ ErrCode SvFillLockBytes::ReadAt( ULONG n
- }
-
- //============================================================================
--ErrCode SvFillLockBytes::WriteAt( ULONG nPos, const void* pBuffer,
-- ULONG nCount, ULONG *pWritten )
-+ErrCode SvFillLockBytes::WriteAt( sal_Size nPos, const void* pBuffer,
-+ sal_Size nCount, sal_Size *pWritten )
- {
- if( bTerminated )
- return xLockBytes->WriteAt( nPos, pBuffer, nCount, pWritten );
- else
- {
-- ULONG nWanted = nPos + nCount;
-+ sal_Size nWanted = nPos + nCount;
- if( IsSynchronMode() )
- {
- while( nWanted > nFilledSize && !bTerminated )
-@@ -144,8 +144,8 @@ ErrCode SvFillLockBytes::WriteAt( ULONG
- }
- else
- {
-- ULONG nRead = MyMin( nCount, long( nFilledSize ) - nPos );
-- ULONG nErr = xLockBytes->WriteAt( nPos, pBuffer, nRead, pWritten );
-+ sal_Size nRead = MyMin( nCount, sal_Size( nFilledSize ) - nPos );
-+ sal_Size nErr = xLockBytes->WriteAt( nPos, pBuffer, nRead, pWritten );
- return ( !nCount || nRead == nCount || nErr ) ?
- nErr : ERRCODE_IO_PENDING;
- }
-@@ -159,20 +159,20 @@ ErrCode SvFillLockBytes::Flush() const
- }
-
- //============================================================================
--ErrCode SvFillLockBytes::SetSize( ULONG nSize )
-+ErrCode SvFillLockBytes::SetSize( sal_Size nSize )
- {
- return xLockBytes->SetSize( nSize );
- }
-
- //============================================================================
--ErrCode SvFillLockBytes::LockRegion( ULONG nPos, ULONG nCount, LockType eType)
-+ErrCode SvFillLockBytes::LockRegion( sal_Size nPos, sal_Size nCount, LockType eType)
- {
- return xLockBytes->LockRegion( nPos, nCount, eType );
- }
-
- //============================================================================
- ErrCode SvFillLockBytes::UnlockRegion(
-- ULONG nPos, ULONG nCount, LockType eType)
-+ sal_Size nPos, sal_Size nCount, LockType eType)
- {
- return xLockBytes->UnlockRegion( nPos, nCount, eType );
- }
-@@ -185,7 +185,7 @@ ErrCode SvFillLockBytes::Stat(
- }
-
- //============================================================================
--ErrCode SvFillLockBytes::FillAppend( const void* pBuffer, ULONG nCount, ULONG *pWritten )
-+ErrCode SvFillLockBytes::FillAppend( const void* pBuffer, sal_Size nCount, sal_Size *pWritten )
- {
- ErrCode nRet = xLockBytes->WriteAt(
- nFilledSize, pBuffer, nCount, pWritten );
-@@ -212,12 +212,12 @@ TYPEINIT1(SvSyncLockBytes, SvOpenLockByt
-
- //============================================================================
- // virtual
--ErrCode SvSyncLockBytes::ReadAt(ULONG nPos, void * pBuffer, ULONG nCount,
-- ULONG * pRead) const
-+ErrCode SvSyncLockBytes::ReadAt(sal_Size nPos, void * pBuffer, sal_Size nCount,
-+ sal_Size * pRead) const
- {
-- for (ULONG nReadTotal = 0;;)
-+ for (sal_Size nReadTotal = 0;;)
- {
-- ULONG nReadCount = 0;
-+ sal_Size nReadCount = 0;
- ErrCode nError = m_xAsyncLockBytes->ReadAt(nPos, pBuffer, nCount,
- &nReadCount);
- nReadTotal += nReadCount;
-@@ -236,12 +236,12 @@ ErrCode SvSyncLockBytes::ReadAt(ULONG nP
-
- //============================================================================
- // virtual
--ErrCode SvSyncLockBytes::WriteAt(ULONG nPos, const void * pBuffer,
-- ULONG nCount, ULONG * pWritten)
-+ErrCode SvSyncLockBytes::WriteAt(sal_Size nPos, const void * pBuffer,
-+ sal_Size nCount, sal_Size * pWritten)
- {
-- for (ULONG nWrittenTotal = 0;;)
-+ for (sal_Size nWrittenTotal = 0;;)
- {
-- ULONG nWrittenCount = 0;
-+ sal_Size nWrittenCount = 0;
- ErrCode nError = m_xAsyncLockBytes->WriteAt(nPos, pBuffer, nCount,
- &nWrittenCount);
- nWrittenTotal += nWrittenCount;
-@@ -270,34 +270,34 @@ struct SvCompositeLockBytes_Impl
- SvULongs aPositions;
- SvULongs aOffsets;
- BOOL bPending;
-- ULONG RelativeOffset( ULONG nPos ) const;
-+ sal_Size RelativeOffset( sal_Size nPos ) const;
- ErrCode ReadWrite_Impl(
-- ULONG nPos, void* pBuffer, ULONG nCount, ULONG* pProcessed,
-+ sal_Size nPos, void* pBuffer, sal_Size nCount, sal_Size* pProcessed,
- BOOL bRead );
- SvCompositeLockBytes_Impl() : bPending( FALSE ){}
- };
-
- //============================================================================
--ULONG SvCompositeLockBytes_Impl::RelativeOffset( ULONG nPos ) const
-+sal_Size SvCompositeLockBytes_Impl::RelativeOffset( sal_Size nPos ) const
- {
- const SvULongs& rPositions = aPositions;
- const SvULongs& rOffsets = aOffsets;
-
-- USHORT nMinPos = 0;
-- USHORT nListCount = rPositions.Count();
-+ sal_uInt16 nMinPos = 0;
-+ sal_uInt16 nListCount = rPositions.Count();
-
- // Erster Lockbytes, der bearbeitet werden muss
- while( nMinPos + 1 < nListCount && rPositions[ nMinPos + 1 ] <= nPos )
- nMinPos ++;
-- ULONG nSectionStart = rPositions[ nMinPos ];
-+ sal_Size nSectionStart = rPositions[ nMinPos ];
- if( nSectionStart > nPos )
-- return ULONG_MAX;
-+ return SAL_MAX_SIZE;
- return rOffsets[ nMinPos ] + nPos - nSectionStart;
- }
-
- //============================================================================
- ErrCode SvCompositeLockBytes_Impl::ReadWrite_Impl(
-- ULONG nPos, void* pBuffer, ULONG nCount, ULONG* pProcessed,
-+ sal_Size nPos, void* pBuffer, sal_Size nCount, sal_Size* pProcessed,
- BOOL bRead )
- {
- ErrCode nErr = ERRCODE_NONE;
-@@ -305,14 +305,14 @@ ErrCode SvCompositeLockBytes_Impl::ReadW
- SvULongs& rOffsets = aOffsets;
- SvLockBytesMemberList& rLockBytes = aLockBytes;
-
-- ULONG nBytes = nCount;
-- USHORT nListCount = rPositions.Count();
-- USHORT nMinPos = 0;
-+ sal_Size nBytes = nCount;
-+ sal_uInt16 nListCount = rPositions.Count();
-+ sal_uInt16 nMinPos = 0;
-
- // Erster Lockbytes, der bearbeitet werden muss
- while( nMinPos + 1 < nListCount && rPositions[ nMinPos + 1 ] <= nPos )
- nMinPos ++;
-- ULONG nSectionStart = rPositions[ nMinPos ];
-+ sal_Size nSectionStart = rPositions[ nMinPos ];
-
- if( nSectionStart > nPos )
- {
-@@ -321,22 +321,22 @@ ErrCode SvCompositeLockBytes_Impl::ReadW
- return ERRCODE_IO_CANTREAD;
- }
-
-- ULONG nDone;
-+ sal_Size nDone;
- while( nMinPos < nListCount )
- {
-- ULONG nToProcess;
-- ULONG nSectionStop;
-+ sal_Size nToProcess;
-+ sal_Size nSectionStop;
- if( nMinPos + 1 < nListCount )
- {
- nSectionStop = rPositions[ nMinPos + 1 ];
-- nToProcess = MyMin( long( nSectionStop ) - nPos, nBytes );
-+ nToProcess = MyMin( sal_sSize( nSectionStop ) - nPos, nBytes );
- }
- else
- {
- nToProcess = nBytes;
- nSectionStop = 0;
- }
-- ULONG nAbsPos = nPos - nSectionStart + rOffsets[ nMinPos ];
-+ sal_Size nAbsPos = nPos - nSectionStart + rOffsets[ nMinPos ];
- SvLockBytes* pLB = rLockBytes.GetObject( nMinPos );
- if( bRead )
- nErr = pLB->ReadAt( nAbsPos, pBuffer, nToProcess, &nDone );
-@@ -382,21 +382,21 @@ void SvCompositeLockBytes::SetIsPending
- }
-
- //============================================================================
--ULONG SvCompositeLockBytes::RelativeOffset( ULONG nPos ) const
-+sal_Size SvCompositeLockBytes::RelativeOffset( sal_Size nPos ) const
- {
- return pImpl->RelativeOffset( nPos );
- }
-
- //============================================================================
- ErrCode SvCompositeLockBytes::ReadAt(
-- ULONG nPos, void* pBuffer, ULONG nCount, ULONG* pRead ) const
-+ sal_Size nPos, void* pBuffer, sal_Size nCount, sal_Size* pRead ) const
- {
- return pImpl->ReadWrite_Impl( nPos, pBuffer, nCount, pRead, TRUE );
- }
-
- //============================================================================
- ErrCode SvCompositeLockBytes::WriteAt(
-- ULONG nPos, const void* pBuffer, ULONG nCount, ULONG* pWritten )
-+ sal_Size nPos, const void* pBuffer, sal_Size nCount, sal_Size* pWritten )
- {
- return pImpl->ReadWrite_Impl(
- nPos, const_cast< void * >(pBuffer), nCount, pWritten, FALSE );
-@@ -407,20 +407,20 @@ ErrCode SvCompositeLockBytes::Flush() co
- {
- SvLockBytesMemberList& rLockBytes = pImpl->aLockBytes;
- ErrCode nErr = ERRCODE_NONE;
-- for( USHORT nCount = (USHORT)rLockBytes.Count(); !nErr && nCount--; )
-+ for( sal_uInt16 nCount = (sal_uInt16)rLockBytes.Count(); !nErr && nCount--; )
- nErr = rLockBytes.GetObject( nCount )->Flush();
- return nErr;
- }
-
- //============================================================================
--ErrCode SvCompositeLockBytes::SetSize( ULONG nSize )
-+ErrCode SvCompositeLockBytes::SetSize( sal_Size nSize )
- {
- DBG_ERROR( "not implemented" );
- return ERRCODE_IO_NOTSUPPORTED;
- }
-
- //============================================================================
--ErrCode SvCompositeLockBytes::LockRegion( ULONG nPos, ULONG nCount, LockType )
-+ErrCode SvCompositeLockBytes::LockRegion( sal_Size nPos, sal_Size nCount, LockType )
- {
- DBG_ERROR( "not implemented" );
- return ERRCODE_IO_NOTSUPPORTED;
-@@ -428,7 +428,7 @@ ErrCode SvCompositeLockBytes::LockRegion
-
- //============================================================================
- ErrCode SvCompositeLockBytes::UnlockRegion(
-- ULONG nPos, ULONG nCount, LockType )
-+ sal_Size nPos, sal_Size nCount, LockType )
- {
- DBG_ERROR( "not implemented" );
- return ERRCODE_IO_NOTSUPPORTED;
-@@ -438,7 +438,7 @@ ErrCode SvCompositeLockBytes::UnlockRegi
- ErrCode SvCompositeLockBytes::Stat(
- SvLockBytesStat* pStat, SvLockBytesStatFlag eFlag) const
- {
-- USHORT nMax = pImpl->aPositions.Count() - 1;
-+ sal_uInt16 nMax = pImpl->aPositions.Count() - 1;
-
- SvLockBytesStat aStat;
- ErrCode nErr = pImpl->aLockBytes.GetObject( nMax )->Stat( &aStat, eFlag );
-@@ -449,9 +449,9 @@ ErrCode SvCompositeLockBytes::Stat(
-
- //============================================================================
- void SvCompositeLockBytes::Append(
-- SvLockBytes* pLockBytes, ULONG nPos, ULONG nOffset )
-+ SvLockBytes* pLockBytes, sal_Size nPos, sal_Size nOffset )
- {
-- USHORT nCount = pImpl->aOffsets.Count();
-+ sal_uInt16 nCount = pImpl->aOffsets.Count();
- pImpl->aLockBytes.Insert( pLockBytes, nCount );
- pImpl->aPositions.Insert( nPos, nCount );
- pImpl->aOffsets.Insert( nOffset, nCount );
-Index: svtools/source/misc/graphictools.cxx
-===================================================================
-RCS file: /cvs/util/svtools/source/misc/graphictools.cxx,v
-retrieving revision 1.6
-retrieving revision 1.6.8.1
-diff -u -p -u -p -r1.6 -r1.6.8.1
---- svtools/source/misc/graphictools.cxx 17 Jun 2004 13:21:09 -0000 1.6
-+++ svtools/source/misc/graphictools.cxx 21 Jul 2004 17:34:14 -0000 1.6.8.1
-@@ -361,13 +361,13 @@ SvStream& operator<<( SvStream& rOStm, c
- rClass.maEndArrow.Write( rOStm );
- rOStm << rClass.mfTransparency;
- rOStm << rClass.mfStrokeWidth;
-- UINT16 nTmp = rClass.maCapType;
-+ sal_uInt16 nTmp = rClass.maCapType;
- rOStm << nTmp;
- nTmp = rClass.maJoinType;
- rOStm << nTmp;
- rOStm << rClass.mfMiterLimit;
-
-- rOStm << (sal_Size)rClass.maDashArray.size();
-+ rOStm << svstream_Size_to_u32( rClass.maDashArray.size() );
- size_t i;
- for(i=0; i<rClass.maDashArray.size(); ++i)
- rOStm << rClass.maDashArray[i];
-@@ -384,15 +384,16 @@ SvStream& operator>>( SvStream& rIStm, S
- rClass.maEndArrow.Read( rIStm );
- rIStm >> rClass.mfTransparency;
- rIStm >> rClass.mfStrokeWidth;
-- UINT16 nTmp;
-+ sal_uInt16 nTmp;
- rIStm >> nTmp;
- rClass.maCapType = SvtGraphicStroke::CapType(nTmp);
- rIStm >> nTmp;
- rClass.maJoinType = SvtGraphicStroke::JoinType(nTmp);
- rIStm >> rClass.mfMiterLimit;
-
-- sal_Size nSize;
-- rIStm >> nSize;
-+ sal_uInt32 nTemp;
-+ rIStm >> nTemp;
-+ sal_Size nSize = svstream_u32_to_Size(nTemp);
- rClass.maDashArray.resize(nSize);
- size_t i;
- for(i=0; i<rClass.maDashArray.size(); ++i)
-Index: svtools/source/numbers/numhead.cxx
-===================================================================
-RCS file: /cvs/util/svtools/source/numbers/numhead.cxx,v
-retrieving revision 1.4
-retrieving revision 1.4.16.3
-diff -u -p -u -p -r1.4 -r1.4.16.3
---- svtools/source/numbers/numhead.cxx 16 Jun 2004 10:27:57 -0000 1.4
-+++ svtools/source/numbers/numhead.cxx 21 Jan 2005 17:16:49 -0000 1.4.16.3
-@@ -82,7 +82,7 @@
- SvNumReadHeader::SvNumReadHeader(SvStream& rNewStream) :
- rStream( rNewStream )
- {
-- ULONG nDataSize;
-+ sal_uInt32 nDataSize;
- rStream >> nDataSize;
- nDataEnd = rStream.Tell() + nDataSize;
- }
-@@ -91,7 +91,7 @@ SvNumReadHeader::SvNumReadHeader(SvStrea
-
- SvNumReadHeader::~SvNumReadHeader()
- {
-- ULONG nReadEnd = rStream.Tell();
-+ sal_uInt32 nReadEnd = rStream.Tell();
- DBG_ASSERT( nReadEnd <= nDataEnd, "zuviele Bytes gelesen" );
- if ( nReadEnd != nDataEnd )
- rStream.Seek(nDataEnd); // Rest ueberspringen
-@@ -99,9 +99,9 @@ SvNumReadHeader::~SvNumReadHeader()
-
- //#pragma SEG_FUNCDEF(numhead_03)
-
--ULONG SvNumReadHeader::BytesLeft() const
-+sal_uInt32 SvNumReadHeader::BytesLeft() const
- {
-- ULONG nReadEnd = rStream.Tell();
-+ sal_uInt32 nReadEnd = rStream.Tell();
- if (nReadEnd <= nDataEnd)
- return nDataEnd-nReadEnd;
-
-@@ -113,7 +113,7 @@ ULONG SvNumReadHeader::BytesLeft() const
-
- //#pragma SEG_FUNCDEF(numhead_04)
-
--SvNumWriteHeader::SvNumWriteHeader(SvStream& rNewStream, ULONG nDefault) :
-+SvNumWriteHeader::SvNumWriteHeader(SvStream& rNewStream, sal_uInt32 nDefault) :
- rStream( rNewStream )
- {
- nDataSize = nDefault;
-@@ -125,12 +125,12 @@ SvNumWriteHeader::SvNumWriteHeader(SvStr
-
- SvNumWriteHeader::~SvNumWriteHeader()
- {
-- ULONG nPos = rStream.Tell();
-+ sal_uInt32 nPos = rStream.Tell();
-
- if ( nPos - nDataPos != nDataSize ) // Default getroffen?
- {
- nDataSize = nPos - nDataPos;
-- rStream.Seek(nDataPos - sizeof(ULONG));
-+ rStream.Seek(nDataPos - sizeof(sal_uInt32));
- rStream << nDataSize; // Groesse am Anfang eintragen
- rStream.Seek(nPos);
- }
-@@ -145,26 +145,26 @@ SvNumWriteHeader::~SvNumWriteHeader()
- ImpSvNumMultipleReadHeader::ImpSvNumMultipleReadHeader(SvStream& rNewStream) :
- rStream( rNewStream )
- {
-- ULONG nDataSize;
-+ sal_uInt32 nDataSize;
- rStream >> nDataSize;
-- ULONG nDataPos = rStream.Tell();
-+ sal_uInt32 nDataPos = svstream_Size_to_u32( rStream.Tell() );
- nEntryEnd = nDataPos;
-
-- rStream.SeekRel(nDataSize);
-- USHORT nID;
-+ rStream.SeekRel(svstream_u32_to_Size(nDataSize));
-+ sal_uInt16 nID;
- rStream >> nID;
- if (nID != SV_NUMID_SIZES)
- {
- DBG_ERROR("SV_NUMID_SIZES nicht gefunden");
- }
-- ULONG nSizeTableLen;
-+ sal_uInt32 nSizeTableLen;
- rStream >> nSizeTableLen;
- pBuf = new char[nSizeTableLen];
-- rStream.Read( pBuf, nSizeTableLen );
-- pMemStream = new SvMemoryStream( pBuf, nSizeTableLen, STREAM_READ );
-+ rStream.Read( pBuf, svstream_u32_to_Size(nSizeTableLen) );
-+ pMemStream = new SvMemoryStream( pBuf, svstream_u32_to_Size(nSizeTableLen), STREAM_READ );
-
-- nEndPos = rStream.Tell();
-- rStream.Seek( nDataPos );
-+ nEndPos = svstream_Size_to_u32( rStream.Tell() );
-+ rStream.Seek( svstream_u32_to_Size(nDataPos) );
- }
-
- //#pragma SEG_FUNCDEF(numhead_07)
-@@ -176,43 +176,43 @@ ImpSvNumMultipleReadHeader::~ImpSvNumMul
- delete pMemStream;
- delete [] pBuf;
-
-- rStream.Seek(nEndPos);
-+ rStream.Seek(svstream_u32_to_Size(nEndPos));
- }
-
- //! mit ctor synchron
- // static
- void ImpSvNumMultipleReadHeader::Skip( SvStream& rStream )
- {
-- ULONG nDataSize;
-+ sal_uInt32 nDataSize;
- rStream >> nDataSize;
-- rStream.SeekRel( nDataSize );
-- USHORT nID;
-+ rStream.SeekRel( svstream_u32_to_Size(nDataSize) );
-+ sal_uInt16 nID;
- rStream >> nID;
- if ( nID != SV_NUMID_SIZES )
- {
- DBG_ERROR("SV_NUMID_SIZES nicht gefunden");
- }
-- ULONG nSizeTableLen;
-+ sal_uInt32 nSizeTableLen;
- rStream >> nSizeTableLen;
-- rStream.SeekRel( nSizeTableLen );
-+ rStream.SeekRel( svstream_u32_to_Size(nSizeTableLen) );
- }
-
- //#pragma SEG_FUNCDEF(numhead_08)
-
- void ImpSvNumMultipleReadHeader::EndEntry()
- {
-- ULONG nPos = rStream.Tell();
-+ sal_uInt32 nPos = svstream_Size_to_u32( rStream.Tell() );
- DBG_ASSERT( nPos <= nEntryEnd, "zuviel gelesen" );
- if ( nPos != nEntryEnd )
-- rStream.Seek( nEntryEnd ); // Rest ueberspringen
-+ rStream.Seek( svstream_u32_to_Size(nEntryEnd) ); // Rest ueberspringen
- }
-
- //#pragma SEG_FUNCDEF(numhead_0d)
-
- void ImpSvNumMultipleReadHeader::StartEntry()
- {
-- ULONG nPos = rStream.Tell();
-- ULONG nEntrySize;
-+ sal_uInt32 nPos = svstream_Size_to_u32( rStream.Tell() );
-+ sal_uInt32 nEntrySize;
- (*pMemStream) >> nEntrySize;
-
- nEntryEnd = nPos + nEntrySize;
-@@ -220,9 +220,9 @@ void ImpSvNumMultipleReadHeader::StartEn
-
- //#pragma SEG_FUNCDEF(numhead_09)
-
--ULONG ImpSvNumMultipleReadHeader::BytesLeft() const
-+sal_uInt32 ImpSvNumMultipleReadHeader::BytesLeft() const
- {
-- ULONG nReadEnd = rStream.Tell();
-+ sal_uInt32 nReadEnd = svstream_Size_to_u32( rStream.Tell() );
- if (nReadEnd <= nEntryEnd)
- return nEntryEnd-nReadEnd;
-
-@@ -235,14 +235,14 @@ ULONG ImpSvNumMultipleReadHeader::BytesL
- //#pragma SEG_FUNCDEF(numhead_0a)
-
- ImpSvNumMultipleWriteHeader::ImpSvNumMultipleWriteHeader(SvStream& rNewStream,
-- ULONG nDefault) :
-+ sal_uInt32 nDefault) :
- rStream( rNewStream ),
- aMemStream( 4096, 4096 )
- {
- nDataSize = nDefault;
- rStream << nDataSize;
-
-- nDataPos = rStream.Tell();
-+ nDataPos = svstream_Size_to_u32( rStream.Tell() );
- nEntryStart = nDataPos;
- }
-
-@@ -250,19 +250,19 @@ ImpSvNumMultipleWriteHeader::ImpSvNumMul
-
- ImpSvNumMultipleWriteHeader::~ImpSvNumMultipleWriteHeader()
- {
-- ULONG nDataEnd = rStream.Tell();
-+ sal_uInt32 nDataEnd = svstream_Size_to_u32( rStream.Tell() );
-
-- rStream << (USHORT) SV_NUMID_SIZES;
-- rStream << aMemStream.Tell();
-+ rStream << (sal_uInt16) SV_NUMID_SIZES;
-+ rStream << svstream_Size_to_u32( aMemStream.Tell() );
- rStream.Write( aMemStream.GetData(), aMemStream.Tell() );
-
- if ( nDataEnd - nDataPos != nDataSize ) // Default getroffen?
- {
- nDataSize = nDataEnd - nDataPos;
-- ULONG nPos = rStream.Tell();
-- rStream.Seek(nDataPos-sizeof(ULONG));
-+ sal_uInt32 nPos = svstream_Size_to_u32( rStream.Tell() );
-+ rStream.Seek(svstream_u32_to_Size(nDataPos-sizeof(sal_uInt32)));
- rStream << nDataSize; // Groesse am Anfang eintragen
-- rStream.Seek(nPos);
-+ rStream.Seek(svstream_u32_to_Size(nPos));
- }
- }
-
-@@ -270,7 +270,7 @@ ImpSvNumMultipleWriteHeader::~ImpSvNumMu
-
- void ImpSvNumMultipleWriteHeader::EndEntry()
- {
-- ULONG nPos = rStream.Tell();
-+ sal_uInt32 nPos = svstream_Size_to_u32( rStream.Tell() );
- aMemStream << nPos - nEntryStart;
- }
-
-@@ -278,7 +278,7 @@ void ImpSvNumMultipleWriteHeader::EndEnt
-
- void ImpSvNumMultipleWriteHeader::StartEntry()
- {
-- ULONG nPos = rStream.Tell();
-+ sal_uInt32 nPos = svstream_Size_to_u32( rStream.Tell() );
- nEntryStart = nPos;
- }
-
-Index: svtools/source/numbers/numhead.hxx
-===================================================================
-RCS file: /cvs/util/svtools/source/numbers/numhead.hxx,v
-retrieving revision 1.1.1.1
-retrieving revision 1.1.1.1.650.2
-diff -u -p -u -p -r1.1.1.1 -r1.1.1.1.650.2
---- svtools/source/numbers/numhead.hxx 18 Sep 2000 16:59:03 -0000 1.1.1.1
-+++ svtools/source/numbers/numhead.hxx 21 Jan 2005 17:16:54 -0000 1.1.1.1.650.2
-@@ -115,7 +115,7 @@ public:
-
- void StartEntry();
- void EndEntry();
-- ULONG BytesLeft() const;
-+ sal_uInt32 BytesLeft() const;
-
- static void Skip( SvStream& ); // komplett ueberspringen
- };
-@@ -130,7 +130,7 @@ private:
- ULONG nEntryStart;
-
- public:
-- ImpSvNumMultipleWriteHeader(SvStream& rNewStream, ULONG nDefault = 0);
-+ ImpSvNumMultipleWriteHeader(SvStream& rNewStream, sal_uInt32 nDefault = 0);
- ~ImpSvNumMultipleWriteHeader();
-
- void StartEntry();
-Index: svtools/source/svhtml/parhtml.cxx
-===================================================================
-RCS file: /cvs/util/svtools/source/svhtml/parhtml.cxx,v
-retrieving revision 1.7
-retrieving revision 1.6.16.4
-diff -u -p -u -p -r1.7 -r1.6.16.4
---- svtools/source/svhtml/parhtml.cxx 5 Jan 2005 13:29:27 -0000 1.7
-+++ svtools/source/svhtml/parhtml.cxx 22 Jan 2005 10:40:03 -0000 1.6.16.4
-@@ -191,7 +191,7 @@ HTMLOption::HTMLOption( USHORT nTok, con
- "HTMLOption: unbekanntes Token" );
- }
-
--ULONG HTMLOption::GetNumber() const
-+sal_uInt32 HTMLOption::GetNumber() const
- {
- DBG_ASSERT( (nToken>=HTML_OPTION_NUMBER_START &&
- nToken<HTML_OPTION_NUMBER_END) ||
-@@ -202,7 +202,7 @@ ULONG HTMLOption::GetNumber() const
- String aTmp( aValue );
- aTmp.EraseLeadingChars();
- sal_Int32 nTmp = aTmp.ToInt32();
-- return nTmp >= 0L ? (sal_uInt32)nTmp : 0UL;
-+ return nTmp >= 0U ? (sal_uInt32)nTmp : 0U;
- }
-
- INT32 HTMLOption::GetSNumber() const
-@@ -251,7 +251,7 @@ void HTMLOption::GetNumbers( SvULongs &r
- {
- // hier wird auf die korrekte Trennung der Zahlen durch ',' geachtet
- // und auch mal eine 0 eingefuegt
-- sal_uInt32 nPos = 0UL;
-+ ULONG nPos = 0UL;
- while( nPos < aValue.Len() )
- {
- register sal_Unicode c;
-Index: svtools/source/uno/unoiface.cxx
-===================================================================
-RCS file: /cvs/util/svtools/source/uno/unoiface.cxx,v
-retrieving revision 1.16
-retrieving revision 1.12.48.5
-diff -u -p -u -p -r1.16 -r1.12.48.5
---- svtools/source/uno/unoiface.cxx 26 Nov 2004 16:06:31 -0000 1.16
-+++ svtools/source/uno/unoiface.cxx 21 Jan 2005 17:17:32 -0000 1.12.48.5
-@@ -1750,7 +1750,7 @@ void SVTXRoadmap::setColorModel( sal_Int
- {
- ::vos::OGuard aGuard( GetMutex() );
-
-- maImageConsumer.SetColorModel( BitCount, RGBAPal.getLength(), (const unsigned long*) RGBAPal.getConstArray(), RedMask, GreenMask, BlueMask, AlphaMask );
-+ maImageConsumer.SetColorModel( BitCount, RGBAPal.getLength(), (const sal_uInt32*) RGBAPal.getConstArray(), RedMask, GreenMask, BlueMask, AlphaMask );
- }
-
-
-@@ -1766,7 +1766,7 @@ void SVTXRoadmap::setPixelsByLongs( sal_
- {
- ::vos::OGuard aGuard( GetMutex() );
-
-- maImageConsumer.SetPixelsByLongs( X, Y, Width, Height, (const unsigned long*) ProducerData.getConstArray(), Offset, Scansize );
-+ maImageConsumer.SetPixelsByLongs( X, Y, Width, Height, (const sal_uInt32*) ProducerData.getConstArray(), Offset, Scansize );
- ImplUpdateImage( sal_True );
- }
-
-Index: svtools/workben/svdem.cxx
-===================================================================
-RCS file: /cvs/util/svtools/workben/svdem.cxx,v
-retrieving revision 1.5
-retrieving revision 1.4.208.3
-diff -u -p -u -p -r1.5 -r1.4.208.3
---- svtools/workben/svdem.cxx 30 Jul 2004 15:20:26 -0000 1.5
-+++ svtools/workben/svdem.cxx 24 Feb 2005 20:02:07 -0000 1.4.208.3
-@@ -59,8 +59,11 @@
- *
- ************************************************************************/
- #include <stdio.h>
--#include <cppuhelper/servicefactory.hxx>
-+#include <sal/main.h>
-+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
- #include <comphelper/processfactory.hxx>
-+#include <cppuhelper/servicefactory.hxx>
-+#include <cppuhelper/bootstrap.hxx>
-
- #include <vcl/wrkwin.hxx>
- #include <vcl/dialog.hxx>
-@@ -86,13 +89,13 @@
- #include <prnsetup.hxx>
- #include <printdlg.hxx>
-
-+
-+using namespace ::com::sun::star::uno;
-+using namespace ::com::sun::star::lang;
- // -----------------------------------------------------------------------
-
--class MyApp : public Application
--{
--public:
-- void Main();
--};
-+// Forward declaration
-+void Main();
-
- // -----------------------------------------------------------------------
-
-@@ -254,21 +257,37 @@ public:
- void Paint( const Rectangle& rRect );
- void Resize();
- };
--
- // -----------------------------------------------------------------------
-
--void MyApp::Main()
-+SAL_IMPLEMENT_MAIN()
- {
- try
- {
-- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >
-- xMSF = cppu::createRegistryServiceFactory(
-- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "applicat.rdb" ) ), sal_True );
-+ Reference< XMultiServiceFactory > xMS;
-+ xMS = cppu::createRegistryServiceFactory( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "applicat.rdb" ) ), sal_True );
-+
-+ ::comphelper::setProcessServiceFactory( xMS );
-+
-+ InitVCL( xMS );
-+ ::Main();
-+ DeInitVCL();
-+ }
-+ catch ( com::sun::star::uno::Exception & e )
-+ {
-+ fprintf( stderr, "Error during bootstrapping servicemanager: %s\n" ,
-+ rtl::OUStringToOString( e.Message, RTL_TEXTENCODING_ASCII_US ).getStr() );
-+ }
-+ return 0;
-+}
-+
-
-- ::comphelper::setProcessServiceFactory( xMSF );
-+// -----------------------------------------------------------------------
-+
-+void Main()
-+{
-
- Help aHelp;
-- SetHelp( &aHelp );
-+ Application::SetHelp( &aHelp );
- Help::EnableContextHelp();
- Help::EnableExtHelp();
- Help::EnableBalloonHelp();
-@@ -277,15 +296,9 @@ void MyApp::Main()
- MyWin aMainWin( NULL, WinBits( WB_APP | WB_STDWORK | WB_CLIPCHILDREN ) );
- aMainWin.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "SVTOOLS - Workbench" ) ) );
- aMainWin.GrabFocus();
-- aMainWin.Show();
--
-- Execute();
-- }
-- catch ( com::sun::star::uno::Exception & e )
-- {
-- fprintf( stderr, "Error during bootstrapping servicemanager: %s\n" ,
-- rtl::OUStringToOString( e.Message, RTL_TEXTENCODING_ASCII_US ).getStr() );
-- }
-+ aMainWin.Show();
-+
-+ Application::Execute();
- }
-
- // -----------------------------------------------------------------------
-@@ -1142,4 +1155,3 @@ void MyWin::Resize()
-
- // -----------------------------------------------------------------------
-
--MyApp aMyApp;
-? config_office/autom4te.cache
-? config_office/config.log
-? config_office/config.parms
-? config_office/config.status
-? config_office/oowintool
-? config_office/set_soenv
-? config_office/warn
-Index: sc/inc/address.hxx
-===================================================================
-RCS file: /cvs/sc/sc/inc/address.hxx,v
-retrieving revision 1.4
-retrieving revision 1.4.78.1
-diff -u -p -u -p -r1.4 -r1.4.78.1
---- sc/inc/address.hxx 23 Aug 2004 09:22:05 -0000 1.4
-+++ sc/inc/address.hxx 21 Jan 2005 16:33:04 -0000 1.4.78.1
-@@ -147,7 +147,7 @@ typedef sal_Int32 SCsCOLROW;
- // size_t typedef to be able to find places where code was changed from USHORT
- // to size_t and is used to read/write from/to streams.
- typedef size_t SCSIZE;
--#ifndef MACOSX
-+#if !defined( MACOSX ) && !defined( __x86_64__ )
- // resolve ambiguity, TODO: move to tools/solar.h, or even better use ::std::min/max
- inline size_t Min( size_t a, size_t b) { return a<b ? a : b; }
- inline size_t Max( size_t a, size_t b) { return a<b ? a : b; }
-Index: sc/inc/rechead.hxx
-===================================================================
-RCS file: /cvs/sc/sc/inc/rechead.hxx,v
-retrieving revision 1.1.1.1
-retrieving revision 1.1.1.1.522.1
-diff -u -p -u -p -r1.1.1.1 -r1.1.1.1.522.1
---- sc/inc/rechead.hxx 18 Sep 2000 16:44:49 -0000 1.1.1.1
-+++ sc/inc/rechead.hxx 9 Sep 2004 11:02:22 -0000 1.1.1.1.522.1
-@@ -221,7 +221,7 @@ private:
- ULONG nEntryStart;
-
- public:
-- ScMultipleWriteHeader(SvStream& rNewStream, ULONG nDefault = 0);
-+ ScMultipleWriteHeader(SvStream& rNewStream, sal_Size nDefault = 0);
- ~ScMultipleWriteHeader();
-
- void StartEntry();
-Index: sc/source/core/data/table3.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/data/table3.cxx,v
-retrieving revision 1.20
-retrieving revision 1.16.42.4
-diff -u -p -u -p -r1.20 -r1.16.42.4
---- sc/source/core/data/table3.cxx 15 Nov 2004 16:34:51 -0000 1.20
-+++ sc/source/core/data/table3.cxx 21 Jan 2005 16:36:18 -0000 1.16.42.4
-@@ -1090,7 +1090,7 @@ BOOL ScTable::ValidQuery(SCROW nRow, con
- bOk = pTransliteration->isEqual( aCellStr, *rEntry.pStr );
- else
- {
-- ::com::sun::star::uno::Sequence< long > xOff;
-+ ::com::sun::star::uno::Sequence< sal_Int32 > xOff;
- String aCell( pTransliteration->transliterate(
- aCellStr, ScGlobal::eLnge, 0, aCellStr.Len(),
- &xOff ) );
-Index: sc/source/core/tool/chartarr.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/tool/chartarr.cxx,v
-retrieving revision 1.13
-retrieving revision 1.13.76.1
-diff -u -p -u -p -r1.13 -r1.13.76.1
---- sc/source/core/tool/chartarr.cxx 20 Aug 2004 09:11:50 -0000 1.13
-+++ sc/source/core/tool/chartarr.cxx 21 Jan 2005 16:37:52 -0000 1.13.76.1
-@@ -93,14 +93,14 @@ void ScChartArray::CopySettings( SchMemC
- rDest.SetYAxisTitle( rSource.GetYAxisTitle() );
- rDest.SetZAxisTitle( rSource.GetZAxisTitle() );
-
-- const long* pArr;
-+ sal_Int32* pArr;
- if ( rSource.GetRowCount() == rDest.GetRowCount() &&
- rSource.GetColCount() == rDest.GetColCount() )
- {
- // don't copy column/row number formats here (are set in new MemChart object)
-
-- if ( (pArr = rSource.GetRowTranslation()) ) rDest.SetRowTranslation( pArr );
-- if ( (pArr = rSource.GetColTranslation()) ) rDest.SetColTranslation( pArr );
-+ if ( (pArr = (sal_Int32 *) rSource.GetRowTranslation()) ) rDest.SetRowTranslation( pArr );
-+ if ( (pArr = (sal_Int32 *) rSource.GetColTranslation()) ) rDest.SetColTranslation( pArr );
- rDest.SetTranslation( rSource.GetTranslation() );
- }
- }
-Index: sc/source/core/tool/rechead.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/tool/rechead.cxx,v
-retrieving revision 1.2
-retrieving revision 1.2.378.1
-diff -u -p -u -p -r1.2 -r1.2.378.1
---- sc/source/core/tool/rechead.cxx 26 Mar 2003 18:04:18 -0000 1.2
-+++ sc/source/core/tool/rechead.cxx 9 Sep 2004 11:02:24 -0000 1.2.378.1
-@@ -217,7 +217,7 @@ ULONG ScMultipleReadHeader::BytesLeft()
-
- // -----------------------------------------------------------------------
-
--ScMultipleWriteHeader::ScMultipleWriteHeader(SvStream& rNewStream, ULONG nDefault) :
-+ScMultipleWriteHeader::ScMultipleWriteHeader(SvStream& rNewStream, sal_Size nDefault) :
- rStream( rNewStream ),
- aMemStream( 4096, 4096 )
- {
-Index: sc/source/filter/excel/excrecds.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/excel/excrecds.cxx,v
-retrieving revision 1.78
-retrieving revision 1.76.82.2
-diff -u -p -u -p -r1.78 -r1.76.82.2
---- sc/source/filter/excel/excrecds.cxx 21 Feb 2005 13:25:15 -0000 1.78
-+++ sc/source/filter/excel/excrecds.cxx 9 Mar 2005 21:17:30 -0000 1.76.82.2
-@@ -466,7 +466,7 @@ ExcBundlesheetBase::ExcBundlesheetBase()
- void ExcBundlesheetBase::UpdateStreamPos( XclExpStream& rStrm )
- {
- rStrm.SetStreamPos( nOwnPos );
-- rStrm << nStrPos;
-+ rStrm << (sal_uInt32)nStrPos;
- }
-
-
-Index: sc/source/filter/excel/xiescher.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/excel/xiescher.cxx,v
-retrieving revision 1.33
-retrieving revision 1.30.6.2
-diff -u -p -u -p -r1.33 -r1.30.6.2
---- sc/source/filter/excel/xiescher.cxx 21 Feb 2005 13:31:50 -0000 1.33
-+++ sc/source/filter/excel/xiescher.cxx 9 Mar 2005 21:16:20 -0000 1.30.6.2
-@@ -1532,7 +1532,7 @@ SdrObject* XclImpDffManager::ProcessObj(
- // automatic margin is handled by host
- if( GetPropertyBool( DFF_Prop_AutoTextMargin ) )
- {
-- long nMargin = EXC_ESCHER_AUTOMARGIN;
-+ sal_Int32 nMargin = EXC_ESCHER_AUTOMARGIN;
- ScaleEmu( nMargin );
- pRetSdrObj->SetMergedItem( SdrTextLeftDistItem( nMargin ) );
- pRetSdrObj->SetMergedItem( SdrTextRightDistItem( nMargin ) );
-Index: sc/source/filter/excel/xlstyle.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/excel/xlstyle.cxx,v
-retrieving revision 1.15
-retrieving revision 1.10.54.4
-diff -u -p -u -p -r1.15 -r1.10.54.4
---- sc/source/filter/excel/xlstyle.cxx 21 Feb 2005 13:35:22 -0000 1.15
-+++ sc/source/filter/excel/xlstyle.cxx 9 Mar 2005 21:16:28 -0000 1.10.54.4
-@@ -355,7 +355,7 @@ FontStrikeout XclFontData::GetScStrikeou
-
- void XclFontData::SetScHeight( sal_Int32 nTwips )
- {
-- mnHeight = static_cast< sal_uInt16 >( ::std::min( nTwips, 0x7FFFL ) );
-+ mnHeight = static_cast< sal_uInt16 >( ::std::min( nTwips, (sal_Int32)0x7FFF ) );
- }
-
- void XclFontData::SetScFamily( FontFamily eScFamily )
-Index: sc/source/filter/html/htmlpars.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/html/htmlpars.cxx,v
-retrieving revision 1.24
-retrieving revision 1.20.42.5
-diff -u -p -u -p -r1.24 -r1.20.42.5
---- sc/source/filter/html/htmlpars.cxx 21 Feb 2005 13:36:40 -0000 1.24
-+++ sc/source/filter/html/htmlpars.cxx 9 Mar 2005 21:09:11 -0000 1.20.42.5
-@@ -192,7 +192,7 @@ ScHTMLLayoutParser::~ScHTMLLayoutParser(
- }
-
-
--ULONG ScHTMLLayoutParser::Read( SvStream& rStream, const String& rBaseURL )
-+sal_uInt32 ScHTMLLayoutParser::Read( SvStream& rStream, const String& rBaseURL )
- {
- Link aOldLink = pEdit->GetImportHdl();
- pEdit->SetImportHdl( LINK( this, ScHTMLLayoutParser, HTMLImportHdl ) );
-@@ -221,7 +221,7 @@ ULONG ScHTMLLayoutParser::Read( SvStream
- }
- }
-
-- ULONG nErr = pEdit->Read( rStream, rBaseURL, EE_FORMAT_HTML, pAttributes );
-+ sal_uInt32 nErr = pEdit->Read( rStream, rBaseURL, EE_FORMAT_HTML, pAttributes );
-
- pEdit->SetImportHdl( aOldLink );
- // Spaltenbreiten erzeugen
-@@ -2194,10 +2194,10 @@ void ScHTMLTable::DataOn( const ImportIn
- switch( aIter->GetToken() )
- {
- case HTML_O_COLSPAN:
-- aSpanSize.mnCols = static_cast< SCCOL >( bound( aIter->GetString().ToInt32(), 1L, 256L ) );
-+ aSpanSize.mnCols = static_cast< SCCOL >( bound( aIter->GetString().ToInt32(), (sal_Int32)1, (sal_Int32)256 ) );
- break;
- case HTML_O_ROWSPAN:
-- aSpanSize.mnRows = static_cast< SCROW >( bound( aIter->GetString().ToInt32(), 1L, 256L ) );
-+ aSpanSize.mnRows = static_cast< SCROW >( bound( aIter->GetString().ToInt32(), (sal_Int32)1, (sal_Int32)256 ) );
- break;
- case HTML_O_SDVAL:
- pValStr.reset( new String( aIter->GetString() ) );
-@@ -2993,7 +2993,7 @@ void ScHTMLQueryParser::FontOn( const Im
- break;
- case HTML_O_SIZE :
- {
-- sal_uInt32 nSize = bound( aIter->GetNumber(), 1UL, SC_HTML_FONTSIZES );
-+ sal_uInt32 nSize = bound( aIter->GetNumber(), (sal_uInt32)1, SC_HTML_FONTSIZES );
- mpCurrTable->PutItem( SvxFontHeightItem( maFontHeights[ nSize - 1 ], 100, ATTR_FONT_HEIGHT ) );
- }
- break;
-Index: sc/source/filter/inc/eeparser.hxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/inc/eeparser.hxx,v
-retrieving revision 1.4
-retrieving revision 1.4.6.1
-diff -u -p -u -p -r1.4 -r1.4.6.1
---- sc/source/filter/inc/eeparser.hxx 11 Jan 2005 13:17:58 -0000 1.4
-+++ sc/source/filter/inc/eeparser.hxx 21 Jan 2005 16:41:18 -0000 1.4.6.1
-@@ -184,7 +184,7 @@ public:
- ScEEParser( EditEngine* );
- virtual ~ScEEParser();
-
-- virtual ULONG Read( SvStream&, const String& rBaseURL ) = 0;
-+ virtual sal_uInt32 Read( SvStream&, const String& rBaseURL ) = 0;
-
- void GetDimensions( SCCOL& nCols, SCROW& nRows ) const
- { nCols = nColMax; nRows = nRowMax; }
-Index: sc/source/filter/inc/htmlpars.hxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/inc/htmlpars.hxx,v
-retrieving revision 1.11
-retrieving revision 1.11.6.1
-diff -u -p -u -p -r1.11 -r1.11.6.1
---- sc/source/filter/inc/htmlpars.hxx 11 Jan 2005 13:18:25 -0000 1.11
-+++ sc/source/filter/inc/htmlpars.hxx 21 Jan 2005 16:41:34 -0000 1.11.6.1
-@@ -231,7 +231,7 @@ private:
- public:
- ScHTMLLayoutParser( EditEngine*, const String& rBaseURL, const Size& aPageSize, ScDocument* );
- virtual ~ScHTMLLayoutParser();
-- virtual ULONG Read( SvStream&, const String& rBaseURL );
-+ virtual sal_uInt32 Read( SvStream&, const String& rBaseURL );
- virtual const ScHTMLTable* GetGlobalTable() const;
- };
-
-Index: sc/source/filter/inc/rtfparse.hxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/inc/rtfparse.hxx,v
-retrieving revision 1.3
-retrieving revision 1.3.6.1
-diff -u -p -u -p -r1.3 -r1.3.6.1
---- sc/source/filter/inc/rtfparse.hxx 11 Jan 2005 13:18:39 -0000 1.3
-+++ sc/source/filter/inc/rtfparse.hxx 21 Jan 2005 16:41:49 -0000 1.3.6.1
-@@ -116,7 +116,7 @@ private:
- public:
- ScRTFParser( EditEngine* );
- virtual ~ScRTFParser();
-- virtual ULONG Read( SvStream&, const String& rBaseURL );
-+ virtual sal_uInt32 Read( SvStream&, const String& rBaseURL );
- };
-
-
-Index: sc/source/filter/rtf/eeimpars.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/rtf/eeimpars.cxx,v
-retrieving revision 1.12
-retrieving revision 1.12.6.1
-diff -u -p -u -p -r1.12 -r1.12.6.1
---- sc/source/filter/rtf/eeimpars.cxx 11 Jan 2005 13:18:53 -0000 1.12
-+++ sc/source/filter/rtf/eeimpars.cxx 21 Jan 2005 16:42:00 -0000 1.12.6.1
-@@ -252,7 +252,7 @@ void ScEEImport::WriteToDocument( BOOL b
- // HTML
- String aValStr, aNumStr;
- double fVal;
-- ULONG nNumForm;
-+ sal_uInt32 nNumForm;
- LanguageType eNumLang;
- if ( pE->pNumStr )
- { // SDNUM muss sein wenn SDVAL
-Index: sc/source/filter/rtf/rtfparse.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/rtf/rtfparse.cxx,v
-retrieving revision 1.4
-retrieving revision 1.4.6.1
-diff -u -p -u -p -r1.4 -r1.4.6.1
---- sc/source/filter/rtf/rtfparse.cxx 11 Jan 2005 13:19:20 -0000 1.4
-+++ sc/source/filter/rtf/rtfparse.cxx 21 Jan 2005 16:42:09 -0000 1.4.6.1
-@@ -119,11 +119,11 @@ ScRTFParser::~ScRTFParser()
- }
-
-
--ULONG ScRTFParser::Read( SvStream& rStream, const String& rBaseURL )
-+sal_uInt32 ScRTFParser::Read( SvStream& rStream, const String& rBaseURL )
- {
- Link aOldLink = pEdit->GetImportHdl();
- pEdit->SetImportHdl( LINK( this, ScRTFParser, RTFImportHdl ) );
-- ULONG nErr = pEdit->Read( rStream, rBaseURL, EE_FORMAT_RTF );
-+ sal_uInt32 nErr = pEdit->Read( rStream, rBaseURL, EE_FORMAT_RTF );
- if ( nLastToken == RTF_PAR )
- {
- ScEEParseEntry* pE = pList->Last();
-Index: sc/source/filter/xcl97/XclImpChangeTrack.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/xcl97/XclImpChangeTrack.cxx,v
-retrieving revision 1.26
-retrieving revision 1.25.82.2
-diff -u -p -u -p -r1.26 -r1.25.82.2
---- sc/source/filter/xcl97/XclImpChangeTrack.cxx 21 Feb 2005 13:49:20 -0000 1.26
-+++ sc/source/filter/xcl97/XclImpChangeTrack.cxx 9 Mar 2005 21:19:48 -0000 1.25.82.2
-@@ -169,7 +169,7 @@ void XclImpChangeTrack::DoInsertRange( c
-
- void XclImpChangeTrack::DoDeleteRange( const ScRange& rRange )
- {
-- sal_uInt32 nFirst, nLast;
-+ ULONG nFirst, nLast;
- pChangeTrack->AppendDeleteRange( rRange, NULL, nFirst, nLast );
- DoAcceptRejectAction( nFirst, nLast );
- }
-Index: sc/source/filter/xcl97/xcl97rec.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/xcl97/xcl97rec.cxx,v
-retrieving revision 1.76
-retrieving revision 1.67.40.5
-diff -u -p -u -p -r1.76 -r1.67.40.5
---- sc/source/filter/xcl97/xcl97rec.cxx 21 Feb 2005 13:50:03 -0000 1.76
-+++ sc/source/filter/xcl97/xcl97rec.cxx 9 Mar 2005 21:19:29 -0000 1.67.40.5
-@@ -284,7 +284,7 @@ ULONG XclMsodrawinggroup::GetLen() const
-
- // --- class XclMsodrawing --------------------------------------
-
--XclMsodrawing::XclMsodrawing( const XclExpRoot& rRoot, UINT16 nEscherType, UINT32 nInitialSize ) :
-+XclMsodrawing::XclMsodrawing( const XclExpRoot& rRoot, UINT16 nEscherType, ULONG nInitialSize ) :
- XclMsodrawing_Base( *rRoot.GetOldRoot().pEscher, nInitialSize )
- {
- if ( nEscherType )
-@@ -590,7 +590,7 @@ void XclObjComment::ProcessEscherObj( co
- pEx->OpenContainer( ESCHER_SpContainer );
- pEx->AddShape( ESCHER_ShpInst_TextBox, SHAPEFLAG_HAVEANCHOR | SHAPEFLAG_HAVESPT );
- sal_uInt32 nFlags = 0x000A0000;
-- ::set_flag( nFlags, 2UL, !bVisible );
-+ ::set_flag( nFlags, (sal_uInt32)2, !bVisible );
- aPropOpt.AddOpt( ESCHER_Prop_fPrint, nFlags ); // bool field
- aPropOpt.Commit( pEx->GetStream() );
-
-Index: sc/source/ui/Accessibility/AccessibleCsvControl.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/Accessibility/AccessibleCsvControl.cxx,v
-retrieving revision 1.16
-retrieving revision 1.15.206.2
-diff -u -p -u -p -r1.16 -r1.15.206.2
---- sc/source/ui/Accessibility/AccessibleCsvControl.cxx 23 Aug 2004 09:27:42 -0000 1.16
-+++ sc/source/ui/Accessibility/AccessibleCsvControl.cxx 19 Oct 2004 13:27:42 -0000 1.15.206.2
-@@ -407,7 +407,7 @@ sal_Int32 lcl_GetApiPos( sal_Int32 nRule
- nApiPos += nStart - nExp + 1;
- nExp *= 10;
- }
-- return ::std::max( nApiPos, 0L );
-+ return ::std::max( nApiPos, (sal_Int32)0 );
- }
-
- /** Converts an API text index to a ruler cursor position. */
-@@ -626,7 +626,7 @@ sal_Int32 SAL_CALL ScAccessibleCsvRuler:
- ensureAlive();
- ScCsvRuler& rRuler = implGetRuler();
- // #107054# use object's coordinate system, convert to API position
-- return lcl_GetApiPos( ::std::min( ::std::max( rRuler.GetPosFromX( rPoint.X ), 0L ), rRuler.GetPosCount() ) );
-+ return lcl_GetApiPos( ::std::min( ::std::max( rRuler.GetPosFromX( rPoint.X ), (sal_Int32)0 ), rRuler.GetPosCount() ) );
- }
-
- OUString SAL_CALL ScAccessibleCsvRuler::getSelectedText() throw( RuntimeException )
-Index: sc/source/ui/dbgui/csvgrid.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/dbgui/csvgrid.cxx,v
-retrieving revision 1.21
-retrieving revision 1.19.42.3
-diff -u -p -u -p -r1.21 -r1.19.42.3
---- sc/source/ui/dbgui/csvgrid.cxx 11 Oct 2004 12:28:48 -0000 1.21
-+++ sc/source/ui/dbgui/csvgrid.cxx 18 Jan 2005 04:32:56 -0000 1.19.42.3
-@@ -179,7 +179,7 @@ void ScCsvGrid::UpdateOffsetX()
- sal_Int32 nLastLine = GetLastVisLine() + 1;
- sal_Int32 nDigits = 2;
- while( nLastLine /= 10 ) ++nDigits;
-- nDigits = Max( nDigits, 3L );
-+ nDigits = Max( nDigits, (sal_Int32)3 );
- Execute( CSVCMD_SETHDRWIDTH, GetTextWidth( String( '0' ) ) * nDigits );
- }
-
-@@ -704,8 +704,8 @@ void ScCsvGrid::MoveCursor( sal_uInt32 n
- {
- sal_Int32 nPosBeg = GetColumnPos( nColIndex );
- sal_Int32 nPosEnd = GetColumnPos( nColIndex + 1 );
-- sal_Int32 nMinPos = Max( nPosBeg - CSV_SCROLL_DIST, 0L );
-- sal_Int32 nMaxPos = Min( nPosEnd - GetVisPosCount() + CSV_SCROLL_DIST + 1L, nMinPos );
-+ sal_Int32 nMinPos = Max( nPosBeg - CSV_SCROLL_DIST, (sal_Int32)0 );
-+ sal_Int32 nMaxPos = Min( nPosEnd - GetVisPosCount() + CSV_SCROLL_DIST + (sal_Int32)1, nMinPos );
- if( nPosBeg - CSV_SCROLL_DIST + 1 <= GetFirstVisPos() )
- Execute( CSVCMD_SETPOSOFFSET, nMinPos );
- else if( nPosEnd + CSV_SCROLL_DIST >= GetLastVisPos() )
-@@ -787,7 +787,7 @@ void ScCsvGrid::ImplSetTextLineSep(
- pChar = ScImportExport::ScanNextFieldFromString( pChar, aCellText, cTextSep, pSepChars, bMergeSep );
-
- // update column width
-- sal_Int32 nWidth = Max( CSV_MINCOLWIDTH, aCellText.Len() + 1L );
-+ sal_Int32 nWidth = Max( CSV_MINCOLWIDTH, aCellText.Len() + (sal_Int32)1 );
- if( IsValidColumn( nColIx ) )
- {
- // expand existing column
-@@ -918,7 +918,7 @@ void ScCsvGrid::Tracking( const Tracking
-
- sal_Int32 nPos = (rMEvt.GetPosPixel().X() - GetFirstX()) / GetCharWidth() + GetFirstVisPos();
- // on mouse tracking: keep position valid
-- nPos = Max( Min( nPos, GetPosCount() - 1L ), 0L );
-+ nPos = Max( Min( nPos, GetPosCount() - (sal_Int32)1 ), (sal_Int32)0 );
- Execute( CSVCMD_MAKEPOSVISIBLE, nPos );
-
- sal_uInt32 nColIx = GetColumnFromPos( nPos );
-@@ -1366,7 +1366,7 @@ void ScCsvGrid::ImplDrawTrackingRect( sa
- if( HasFocus() && IsVisibleColumn( nColIndex ) )
- {
- sal_Int32 nX1 = Max( GetColumnX( nColIndex ), GetFirstX() ) + 1;
-- sal_Int32 nX2 = Min( GetColumnX( nColIndex + 1 ) - 1L, GetLastX() );
-+ sal_Int32 nX2 = Min( GetColumnX( nColIndex + 1 ) - (sal_Int32)1, GetLastX() );
- sal_Int32 nY2 = Min( GetY( GetLastVisLine() + 1 ), GetHeight() ) - 1;
- InvertTracking( Rectangle( nX1, 0, nX2, nY2 ), SHOWTRACK_SMALL | SHOWTRACK_WINDOW );
- }
-Index: sc/source/ui/dbgui/csvruler.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/dbgui/csvruler.cxx,v
-retrieving revision 1.9
-retrieving revision 1.9.378.1
-diff -u -p -u -p -r1.9 -r1.9.378.1
---- sc/source/ui/dbgui/csvruler.cxx 26 Mar 2003 18:05:52 -0000 1.9
-+++ sc/source/ui/dbgui/csvruler.cxx 9 Sep 2004 11:02:30 -0000 1.9.378.1
-@@ -231,7 +231,7 @@ sal_Int32 ScCsvRuler::GetNoScrollPos( sa
- else if( nNewPos > GetLastVisPos() - CSV_SCROLL_DIST - 1L )
- {
- sal_Int32 nScroll = (GetFirstVisPos() < GetMaxPosOffset()) ? CSV_SCROLL_DIST : 0;
-- nNewPos = Min( nNewPos, GetLastVisPos() - nScroll - 1L );
-+ nNewPos = Min( nNewPos, GetLastVisPos() - nScroll - (sal_Int32)1 );
- }
- }
- return nNewPos;
-@@ -374,7 +374,7 @@ void ScCsvRuler::MouseMove( const MouseE
- if( IsTracking() )
- {
- // on mouse tracking: keep position valid
-- nPos = Max( Min( nPos, GetPosCount() - 1L ), 1L );
-+ nPos = Max( Min( nPos, GetPosCount() - (sal_Int32)1 ), (sal_Int32)1 );
- MoveMouseTracking( nPos );
- }
- else
-@@ -513,7 +513,7 @@ void ScCsvRuler::ImplDrawArea( sal_Int32
-
- aRect = maActiveRect;
- aRect.Left() = Max( GetFirstX(), nPosX );
-- aRect.Right() = Min( Min( GetX( GetPosCount() ), GetLastX() ), nPosX + nWidth - 1L );
-+ aRect.Right() = Min( Min( GetX( GetPosCount() ), GetLastX() ), nPosX + nWidth - (sal_Int32)1 );
- if( aRect.Left() <= aRect.Right() )
- {
- maBackgrDev.SetFillColor( maActiveColor );
-Index: sc/source/ui/dbgui/csvtablebox.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/dbgui/csvtablebox.cxx,v
-retrieving revision 1.8
-retrieving revision 1.7.378.2
-diff -u -p -u -p -r1.8 -r1.7.378.2
---- sc/source/ui/dbgui/csvtablebox.cxx 23 Aug 2004 09:29:32 -0000 1.8
-+++ sc/source/ui/dbgui/csvtablebox.cxx 19 Oct 2004 13:19:12 -0000 1.7.378.2
-@@ -409,33 +409,33 @@ IMPL_LINK( ScCsvTableBox, CsvCmdHdl, ScC
- switch( eType )
- {
- case CSVCMD_SETPOSCOUNT:
-- maData.mnPosCount = Max( nParam1, 1L );
-+ maData.mnPosCount = Max( nParam1, (sal_Int32)1 );
- ImplSetPosOffset( GetFirstVisPos() );
- break;
- case CSVCMD_SETPOSOFFSET:
- ImplSetPosOffset( nParam1 );
- break;
- case CSVCMD_SETHDRWIDTH:
-- maData.mnHdrWidth = Max( nParam1, 0L );
-+ maData.mnHdrWidth = Max( nParam1, (sal_Int32)0 );
- ImplSetPosOffset( GetFirstVisPos() );
- break;
- case CSVCMD_SETCHARWIDTH:
-- maData.mnCharWidth = Max( nParam1, 1L );
-+ maData.mnCharWidth = Max( nParam1, (sal_Int32)1 );
- ImplSetPosOffset( GetFirstVisPos() );
- break;
- case CSVCMD_SETLINECOUNT:
-- maData.mnLineCount = Max( nParam1, 1L );
-+ maData.mnLineCount = Max( nParam1, (sal_Int32)1 );
- ImplSetLineOffset( GetFirstVisLine() );
- break;
- case CSVCMD_SETLINEOFFSET:
- ImplSetLineOffset( nParam1 );
- break;
- case CSVCMD_SETHDRHEIGHT:
-- maData.mnHdrHeight = Max( nParam1, 0L );
-+ maData.mnHdrHeight = Max( nParam1, (sal_Int32)0 );
- ImplSetLineOffset( GetFirstVisLine() );
- break;
- case CSVCMD_SETLINEHEIGHT:
-- maData.mnLineHeight = Max( nParam1, 1L );
-+ maData.mnLineHeight = Max( nParam1, (sal_Int32)1 );
- ImplSetLineOffset( GetFirstVisLine() );
- break;
- case CSVCMD_MOVERULERCURSOR:
-Index: sc/source/ui/inc/csvtablebox.hxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/inc/csvtablebox.hxx,v
-retrieving revision 1.5
-retrieving revision 1.4.484.2
-diff -u -p -u -p -r1.5 -r1.4.484.2
---- sc/source/ui/inc/csvtablebox.hxx 23 Aug 2004 09:33:53 -0000 1.5
-+++ sc/source/ui/inc/csvtablebox.hxx 19 Oct 2004 12:49:53 -0000 1.4.484.2
-@@ -143,10 +143,10 @@ private:
-
- /** Calculates and sets valid position offset nearest to nPos. */
- SC_DLLPRIVATE inline void ImplSetPosOffset( sal_Int32 nPos )
-- { maData.mnPosOffset = Max( Min( nPos, GetMaxPosOffset() ), 0L ); }
-+ { maData.mnPosOffset = Max( Min( nPos, GetMaxPosOffset() ), (sal_Int32)0 ); }
- /** Calculates and sets valid line offset nearest to nLine. */
- SC_DLLPRIVATE inline void ImplSetLineOffset( sal_Int32 nLine )
-- { maData.mnLineOffset = Max( Min( nLine, GetMaxLineOffset() ), 0L ); }
-+ { maData.mnLineOffset = Max( Min( nLine, GetMaxLineOffset() ), (sal_Int32)0 ); }
- /** Moves controls (not cursors!) so that nPos becomes visible. */
- SC_DLLPRIVATE void MakePosVisible( sal_Int32 nPos );
-
-Index: sc/source/ui/inc/viewdata.hxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/inc/viewdata.hxx,v
-retrieving revision 1.18
-retrieving revision 1.14.42.4
-diff -u -p -u -p -r1.18 -r1.14.42.4
---- sc/source/ui/inc/viewdata.hxx 21 Feb 2005 13:52:01 -0000 1.18
-+++ sc/source/ui/inc/viewdata.hxx 9 Mar 2005 20:38:49 -0000 1.14.42.4
-@@ -350,7 +350,7 @@ public:
- BYTE GetFillMode() { return nFillMode; }
-
- // TRUE: Zelle ist zusammengefasst
-- BOOL GetMergeSizePixel( SCCOL nX, SCROW nY, long& rSizeXPix, long& rSizeYPix );
-+ BOOL GetMergeSizePixel( SCCOL nX, SCROW nY, sal_Int32& rSizeXPix, sal_Int32& rSizeYPix );
- BOOL GetPosFromPixel( long nClickX, long nClickY, ScSplitPos eWhich,
- SCsCOL& rPosX, SCsROW& rPosY,
- BOOL bTestMerge = TRUE, BOOL bRepair = FALSE,
-Index: sc/source/ui/view/gridwin.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/view/gridwin.cxx,v
-retrieving revision 1.67
-retrieving revision 1.55.36.4
-diff -u -p -u -p -r1.67 -r1.55.36.4
---- sc/source/ui/view/gridwin.cxx 15 Nov 2004 16:38:47 -0000 1.67
-+++ sc/source/ui/view/gridwin.cxx 21 Jan 2005 16:46:06 -0000 1.55.36.4
-@@ -604,8 +604,8 @@ void ScGridWindow::DoPageFieldMenue( SCC
- SCTAB nTab = pViewData->GetTabNo();
- BOOL bLayoutRTL = pDoc->IsLayoutRTL( nTab );
-
-- long nSizeX = 0;
-- long nSizeY = 0;
-+ sal_Int32 nSizeX = 0;
-+ sal_Int32 nSizeY = 0;
- long nHeight = 0;
- pViewData->GetMergeSizePixel( nCol, nRow, nSizeX, nSizeY );
- Point aPos = pViewData->GetScrPos( nCol, nRow, eWhich );
-@@ -759,8 +759,8 @@ void ScGridWindow::DoScenarioMenue( cons
- SCTAB nTab = pViewData->GetTabNo();
- BOOL bLayoutRTL = pDoc->IsLayoutRTL( nTab );
-
-- long nSizeX = 0;
-- long nSizeY = 0;
-+ sal_Int32 nSizeX = 0;
-+ sal_Int32 nSizeY = 0;
- long nHeight = 0;
- pViewData->GetMergeSizePixel( nCol, nRow, nSizeX, nSizeY );
- Point aPos = pViewData->GetScrPos( nCol, nRow, eWhich );
-@@ -902,8 +902,8 @@ void ScGridWindow::DoAutoFilterMenue( SC
- SCTAB nTab = pViewData->GetTabNo();
- BOOL bLayoutRTL = pDoc->IsLayoutRTL( nTab );
-
-- long nSizeX = 0;
-- long nSizeY = 0;
-+ sal_Int32 nSizeX = 0;
-+ sal_Int32 nSizeY = 0;
- long nHeight = 0;
- pViewData->GetMergeSizePixel( nCol, nRow, nSizeX, nSizeY );
- Point aPos = pViewData->GetScrPos( nCol, nRow, eWhich );
-@@ -1443,8 +1443,8 @@ BOOL ScGridWindow::TestMouse( const Mous
- SCROW nY = aMarkRange.aEnd.Row();
-
- Point aFillPos = pViewData->GetScrPos( nX, nY, eWhich, TRUE );
-- long nSizeXPix;
-- long nSizeYPix;
-+ sal_Int32 nSizeXPix;
-+ sal_Int32 nSizeYPix;
- pViewData->GetMergeSizePixel( nX, nY, nSizeXPix, nSizeYPix );
- aFillPos.X() += nSizeXPix * nLayoutSign;
- aFillPos.Y() += nSizeYPix;
-@@ -1726,8 +1726,8 @@ void __EXPORT ScGridWindow::MouseButtonD
- if (pAttr->HasAutoFilter())
- {
- Point aScrPos = pViewData->GetScrPos(nPosX,nPosY,eWhich);
-- long nSizeX;
-- long nSizeY;
-+ sal_Int32 nSizeX;
-+ sal_Int32 nSizeY;
- Point aDiffPix = aPos;
-
- aDiffPix -= aScrPos;
-@@ -1739,8 +1739,8 @@ void __EXPORT ScGridWindow::MouseButtonD
-
- // Breite des Buttons ist nicht von der Zellhoehe abhaengig
- Size aButSize = aComboButton.GetSizePixel();
-- long nButWidth = Min( aButSize.Width(), nSizeX );
-- long nButHeight = Min( aButSize.Height(), nSizeY );
-+ long nButWidth = Min( (sal_Int32)aButSize.Width(), nSizeX );
-+ long nButHeight = Min( (sal_Int32)aButSize.Height(), nSizeY );
-
- if ( aDiffPix.X() >= nSizeX - nButWidth &&
- aDiffPix.Y() >= nSizeY - nButHeight )
-@@ -2817,8 +2817,8 @@ void __EXPORT ScGridWindow::Command( con
- SCCOL nCurX = pViewData->GetCurX();
- SCROW nCurY = pViewData->GetCurY();
- aMenuPos = pViewData->GetScrPos( nCurX, nCurY, eWhich, TRUE );
-- long nSizeXPix;
-- long nSizeYPix;
-+ sal_Int32 nSizeXPix;
-+ sal_Int32 nSizeYPix;
- pViewData->GetMergeSizePixel( nCurX, nCurY, nSizeXPix, nSizeYPix );
- aMenuPos.X() += nSizeXPix;
- aMenuPos.Y() += nSizeYPix;
-@@ -4079,8 +4079,8 @@ void ScGridWindow::HideCursor()
- SCROW nY = pViewData->GetCurY();
-
- Point aScrPos = pViewData->GetScrPos( nX, nY, eWhich );
-- long nSizeXPix;
-- long nSizeYPix;
-+ sal_Int32 nSizeXPix;
-+ sal_Int32 nSizeYPix;
- pViewData->GetMergeSizePixel( nX, nY, nSizeXPix, nSizeYPix );
- aScrPos.X() -= 2;
- aScrPos.Y() -= 2;
-@@ -4116,8 +4116,8 @@ void ScGridWindow::HideCursor()
- SCCOL nAutoX = aAutoMarkPos.Col();
- SCROW nAutoY = aAutoMarkPos.Row();
- Point aFillPos = pViewData->GetScrPos( nAutoX, nAutoY, eWhich, TRUE );
-- long nSizeXPix;
-- long nSizeYPix;
-+ sal_Int32 nSizeXPix;
-+ sal_Int32 nSizeYPix;
- pViewData->GetMergeSizePixel( nAutoX, nAutoY, nSizeXPix, nSizeYPix );
- aFillPos.X() += nSizeXPix;
- aFillPos.Y() += nSizeYPix;
-@@ -4225,8 +4225,8 @@ BOOL ScGridWindow::HitRangeFinder( const
- // Point aNext = pViewData->GetScrPos( nPosX+1, nPosY+1, eWhich );
-
- Point aNext = pViewData->GetScrPos( nPosX, nPosY, eWhich, TRUE );
-- long nSizeXPix;
-- long nSizeYPix;
-+ sal_Int32 nSizeXPix;
-+ sal_Int32 nSizeYPix;
- pViewData->GetMergeSizePixel( nPosX, nPosY, nSizeXPix, nSizeYPix );
- aNext.X() += nSizeXPix * nLayoutSign;
- aNext.Y() += nSizeYPix;
-@@ -4629,8 +4629,8 @@ BOOL ScGridWindow::GetEditUrlOrError( BO
- Size aPaperSize = Size( 1000000, 1000000 );
- if(pCell->GetCellType() == CELLTYPE_FORMULA)
- {
-- long nSizeX = 0;
-- long nSizeY = 0;
-+ sal_Int32 nSizeX = 0;
-+ sal_Int32 nSizeY = 0;
- pViewData->GetMergeSizePixel( nPosX, nPosY, nSizeX, nSizeY );
- aPaperSize = Size(nSizeX, nSizeY );
- aPaperSize = PixelToLogic(aPaperSize);
-Index: sc/source/ui/view/gridwin4.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/view/gridwin4.cxx,v
-retrieving revision 1.26
-retrieving revision 1.23.40.3
-diff -u -p -u -p -r1.26 -r1.23.40.3
---- sc/source/ui/view/gridwin4.cxx 4 Oct 2004 20:23:40 -0000 1.26
-+++ sc/source/ui/view/gridwin4.cxx 21 Jan 2005 16:46:26 -0000 1.23.40.3
-@@ -1253,8 +1253,8 @@ void ScGridWindow::DrawButtons( SCCOL nX
- }
-
- bool bArrowState = bSimpleQuery && bColumnFound;
-- long nSizeX;
-- long nSizeY;
-+ sal_Int32 nSizeX;
-+ sal_Int32 nSizeY;
-
- pViewData->GetMergeSizePixel( nCol, nRow, nSizeX, nSizeY );
- aComboButton.SetOptSizePixel();
-@@ -1277,8 +1277,8 @@ void ScGridWindow::DrawButtons( SCCOL nX
- if ( pInfo->bPushButton && !pInfo->bHOverlapped && !pInfo->bVOverlapped )
- {
- Point aScrPos = pViewData->GetScrPos( nCol, nRow, eWhich );
-- long nSizeX;
-- long nSizeY;
-+ sal_Int32 nSizeX;
-+ sal_Int32 nSizeY;
- pViewData->GetMergeSizePixel( nCol, nRow, nSizeX, nSizeY );
- long nPosX = aScrPos.X();
- long nPosY = aScrPos.Y();
-@@ -1329,8 +1329,8 @@ Rectangle ScGridWindow::GetListValButton
- SCCOL nCol = rButtonPos.Col();
- SCROW nRow = rButtonPos.Row();
-
-- long nCellSizeX; // width of this cell, including merged
-- long nDummy;
-+ sal_Int32 nCellSizeX; // width of this cell, including merged
-+ sal_Int32 nDummy;
- pViewData->GetMergeSizePixel( nCol, nRow, nCellSizeX, nDummy );
-
- // for height, only the cell's row is used, excluding merged cells
-@@ -1749,8 +1749,8 @@ void ScGridWindow::DrawCursor()
- }
- if ( bMaybeVisible )
- {
-- long nSizeXPix;
-- long nSizeYPix;
-+ sal_Int32 nSizeXPix;
-+ sal_Int32 nSizeYPix;
- pViewData->GetMergeSizePixel( nX, nY, nSizeXPix, nSizeYPix );
-
- if ( bLayoutRTL )
-@@ -1797,8 +1797,8 @@ void ScGridWindow::DrawAutoFillMark()
- BOOL bLayoutRTL = pDoc->IsLayoutRTL( nTab );
-
- Point aFillPos = pViewData->GetScrPos( nX, nY, eWhich, TRUE );
-- long nSizeXPix;
-- long nSizeYPix;
-+ sal_Int32 nSizeXPix;
-+ sal_Int32 nSizeYPix;
- pViewData->GetMergeSizePixel( nX, nY, nSizeXPix, nSizeYPix );
- if ( bLayoutRTL )
- aFillPos.X() -= nSizeXPix + 3;
-Index: sc/source/ui/view/tabview3.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/view/tabview3.cxx,v
-retrieving revision 1.44
-retrieving revision 1.37.40.3
-diff -u -p -u -p -r1.44 -r1.37.40.3
---- sc/source/ui/view/tabview3.cxx 12 Oct 2004 10:28:29 -0000 1.44
-+++ sc/source/ui/view/tabview3.cxx 18 Jan 2005 04:29:52 -0000 1.37.40.3
-@@ -590,8 +590,8 @@ void ScTabView::TestHintWindow()
- aPos.X() < aWinSize.Width() && aPos.Y() < aWinSize.Height() )
- {
- aPos += pWin->GetPosPixel(); // Position auf Frame
-- long nSizeXPix;
-- long nSizeYPix;
-+ sal_Int32 nSizeXPix;
-+ sal_Int32 nSizeYPix;
- aViewData.GetMergeSizePixel( nCol, nRow, nSizeXPix, nSizeYPix );
-
- // HintWindow anlegen, bestimmt seine Groesse selbst
-@@ -737,8 +737,8 @@ void ScTabView::AlignToCursor( SCsCOL nC
- SCsCOL nSizeX = (SCsCOL) aViewData.VisibleCellsX(eAlignX);
- SCsROW nSizeY = (SCsROW) aViewData.VisibleCellsY(eAlignY);
-
-- long nCellSizeX;
-- long nCellSizeY;
-+ sal_Int32 nCellSizeX;
-+ sal_Int32 nCellSizeY;
- if ( nCurX >= 0 && nCurY >= 0 )
- aViewData.GetMergeSizePixel( (SCCOL)nCurX, (SCROW)nCurY, nCellSizeX, nCellSizeY );
- else
-@@ -781,7 +781,7 @@ void ScTabView::AlignToCursor( SCsCOL nC
- {
- // Cursor ist auf dem Bildschirm
- Point aStart = aViewData.GetScrPos( nCurX, nCurY, eAlign );
-- long nCSX, nCSY;
-+ sal_Int32 nCSX, nCSY;
- aViewData.GetMergeSizePixel( nCurX, nCurY, nCSX, nCSY );
- Rectangle aCursor( aStart, Size( nCSX, nCSY ) );
- if ( aCursor.IsOver( aDlgPixel ) )
-Index: sc/source/ui/view/viewdata.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/view/viewdata.cxx,v
-retrieving revision 1.50
-retrieving revision 1.45.42.4
-diff -u -p -u -p -r1.50 -r1.45.42.4
---- sc/source/ui/view/viewdata.cxx 21 Feb 2005 13:55:14 -0000 1.50
-+++ sc/source/ui/view/viewdata.cxx 9 Mar 2005 20:42:57 -0000 1.45.42.4
-@@ -1637,7 +1637,7 @@ SCROW ScViewData::LastCellsY( ScVSplitPo
- return CellsAtY( MAXROW+1, -1, eWhichY, SC_SIZE_NONE );
- }
-
--BOOL ScViewData::GetMergeSizePixel( SCCOL nX, SCROW nY, long& rSizeXPix, long& rSizeYPix )
-+BOOL ScViewData::GetMergeSizePixel( SCCOL nX, SCROW nY, sal_Int32& rSizeXPix, sal_Int32& rSizeYPix )
- {
- const ScMergeAttr* pMerge = (const ScMergeAttr*) pDoc->GetAttr( nX,nY,nTabNo, ATTR_MERGE );
- if ( pMerge->GetColMerge() > 1 || pMerge->GetRowMerge() > 1 )
-@@ -1789,8 +1789,8 @@ void ScViewData::GetMouseQuadrant( const
- long nLayoutSign = bLayoutRTL ? -1 : 1;
-
- Point aCellStart = GetScrPos( nPosX, nPosY, eWhich, TRUE );
-- long nSizeX;
-- long nSizeY;
-+ sal_Int32 nSizeX;
-+ sal_Int32 nSizeY;
- GetMergeSizePixel( nPosX, nPosY, nSizeX, nSizeY );
- rLeft = ( rClickPos.X() - aCellStart.X() ) * nLayoutSign <= nSizeX / 2;
- rTop = rClickPos.Y() - aCellStart.Y() <= nSizeY / 2;
-Index: comphelper/inc/comphelper/basicio.hxx
-===================================================================
-RCS file: /cvs/util/comphelper/inc/comphelper/basicio.hxx,v
-retrieving revision 1.2
-retrieving revision 1.1.1.1.232.2
-diff -u -p -u -p -r1.2 -r1.1.1.1.232.2
---- comphelper/inc/comphelper/basicio.hxx 16 Feb 2005 15:53:11 -0000 1.2
-+++ comphelper/inc/comphelper/basicio.hxx 9 Mar 2005 18:20:21 -0000 1.1.1.1.232.2
-@@ -102,10 +102,18 @@ COMPHELPER_DLLPUBLIC const staruno::Refe
- COMPHELPER_DLLPUBLIC const staruno::Reference<stario::XObjectInputStream>& operator >> (const staruno::Reference<stario::XObjectInputStream>& _rxInStream, sal_uInt32& _rValue);
- COMPHELPER_DLLPUBLIC const staruno::Reference<stario::XObjectOutputStream>& operator << (const staruno::Reference<stario::XObjectOutputStream>& _rxOutStream, sal_uInt32 _nValue);
-
--// sal_Int16
-+// sal_Int32
- COMPHELPER_DLLPUBLIC const staruno::Reference<stario::XObjectInputStream>& operator >> (const staruno::Reference<stario::XObjectInputStream>& _rxInStream, sal_Int32& _rValue);
- COMPHELPER_DLLPUBLIC const staruno::Reference<stario::XObjectOutputStream>& operator << (const staruno::Reference<stario::XObjectOutputStream>& _rxOutStream, sal_Int32 _nValue);
-
-+// sal_uInt64
-+COMPHELPER_DLLPUBLIC const staruno::Reference<stario::XObjectInputStream>& operator >> (const staruno::Reference<stario::XObjectInputStream>& _rxInStream, sal_uInt64& _rValue);
-+COMPHELPER_DLLPUBLIC const staruno::Reference<stario::XObjectOutputStream>& operator << (const staruno::Reference<stario::XObjectOutputStream>& _rxOutStream, sal_uInt64 _nValue);
-+
-+// sal_Int64
-+COMPHELPER_DLLPUBLIC const staruno::Reference<stario::XObjectInputStream>& operator >> (const staruno::Reference<stario::XObjectInputStream>& _rxInStream, sal_Int64& _rValue);
-+COMPHELPER_DLLPUBLIC const staruno::Reference<stario::XObjectOutputStream>& operator << (const staruno::Reference<stario::XObjectOutputStream>& _rxOutStream, sal_Int64 _nValue);
-+
- // FontDescriptor
- COMPHELPER_DLLPUBLIC const staruno::Reference<stario::XObjectInputStream>& operator >> (const staruno::Reference<stario::XObjectInputStream>& InStream, starawt::FontDescriptor& rVal);
- COMPHELPER_DLLPUBLIC const staruno::Reference<stario::XObjectOutputStream>& operator << (const staruno::Reference<stario::XObjectOutputStream>& OutStream, const starawt::FontDescriptor& rVal);
-Index: comphelper/source/streaming/basicio.cxx
-===================================================================
-RCS file: /cvs/util/comphelper/source/streaming/basicio.cxx,v
-retrieving revision 1.1.1.1
-retrieving revision 1.1.1.1.232.1
-diff -u -p -u -p -r1.1.1.1 -r1.1.1.1.232.1
---- comphelper/source/streaming/basicio.cxx 29 Sep 2000 11:28:15 -0000 1.1.1.1
-+++ comphelper/source/streaming/basicio.cxx 9 Sep 2004 11:07:59 -0000 1.1.1.1.232.1
-@@ -193,8 +193,40 @@ const staruno::Reference<stario::XObject
- {
- _rValue = _rxInStream->readLong();
- return _rxInStream;
-+
-+}
-+
-+//------------------------------------------------------------------------------
-+const staruno::Reference<stario::XObjectOutputStream>& operator << (const staruno::Reference<stario::XObjectOutputStream>& _rxOutStream, sal_uInt64 _nValue)
-+{
-+ _rxOutStream->writeLong(_nValue);
-+ return _rxOutStream;
-+}
-+
-+//------------------------------------------------------------------------------
-+const staruno::Reference<stario::XObjectInputStream>& operator >> (const staruno::Reference<stario::XObjectInputStream>& _rxInStream, sal_uInt64& _rValue)
-+{
-+ _rValue = _rxInStream->readLong();
-+ return _rxInStream;
-+}
-+
-+//------------------------------------------------------------------------------
-+const staruno::Reference<stario::XObjectOutputStream>& operator << (const staruno::Reference<stario::XObjectOutputStream>& _rxOutStream, sal_Int64 _nValue)
-+{
-+ _rxOutStream->writeLong(_nValue);
-+ return _rxOutStream;
-+}
-+
-+//------------------------------------------------------------------------------
-+const staruno::Reference<stario::XObjectInputStream>& operator >> (const staruno::Reference<stario::XObjectInputStream>& _rxInStream, sal_Int64& _rValue)
-+{
-+ _rValue = _rxInStream->readLong();
-+ return _rxInStream;
- }
-
-+
-+
-+
- //------------------------------------------------------------------------------
- const staruno::Reference<stario::XObjectOutputStream>& operator << (const staruno::Reference<stario::XObjectOutputStream>& _rxOutStream, sal_Int32 _nValue)
- {
diff --git a/patches/64bit/event-extensions.diff b/patches/64bit/event-extensions.diff
deleted file mode 100644
index 166e2abda..000000000
--- a/patches/64bit/event-extensions.diff
+++ /dev/null
@@ -1,17 +0,0 @@
-Index: extensions/source/plugin/base/xplugin.cxx
-===================================================================
-RCS file: /cvs/util/extensions/source/plugin/base/xplugin.cxx,v
-retrieving revision 1.16
-retrieving revision 1.15.72.2
-diff -u -p -u -p -r1.16 -r1.15.72.2
---- extensions/source/plugin/base/xplugin.cxx 21 Jan 2005 13:43:33 -0000 1.16
-+++ extensions/source/plugin/base/xplugin.cxx 9 Mar 2005 16:02:51 -0000 1.15.72.2
-@@ -117,7 +117,7 @@ void PluginDisposer::onShot()
- {
- if( m_pPlugin->isDisposable() )
- {
-- sal_uInt32 nEvent;
-+ ULONG nEvent;
- Application::PostUserEvent( nEvent, LINK( m_pPlugin, XPlugin_Impl, secondLevelDispose ), (void*)m_pPlugin );
- }
- }
diff --git a/patches/64bit/events-intptr.diff b/patches/64bit/events-intptr.diff
deleted file mode 100644
index d070e5187..000000000
--- a/patches/64bit/events-intptr.diff
+++ /dev/null
@@ -1,766 +0,0 @@
-diff -pur src680-m147.orig/binfilter/bf_forms/source/component/Edit.hxx src680-m147/binfilter/bf_forms/source/component/Edit.hxx
---- src680-m147.orig/binfilter/bf_forms/source/component/Edit.hxx 2005-09-07 17:32:04.000000000 +0200
-+++ src680-m147/binfilter/bf_forms/source/component/Edit.hxx 2005-12-28 13:31:26.000000000 +0100
-@@ -139,7 +139,7 @@ class OEditControl : public OBoundContro
- m_aChangeListeners;
-
- ::rtl::OUString m_aHtmlChangeValue;
-- sal_uInt32 m_nKeyEvent;
-+ sal_uIntPtr m_nKeyEvent;
-
- public:
- OEditControl(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory);
-diff -pur src680-m147.orig/binfilter/bf_forms/source/component/FormattedField.hxx src680-m147/binfilter/bf_forms/source/component/FormattedField.hxx
---- src680-m147.orig/binfilter/bf_forms/source/component/FormattedField.hxx 2005-09-07 17:34:32.000000000 +0200
-+++ src680-m147/binfilter/bf_forms/source/component/FormattedField.hxx 2005-12-28 13:47:42.000000000 +0100
-@@ -185,7 +185,7 @@ namespace frm
- class OFormattedControl : public OBoundControl
- ,public OFormattedControl_BASE
- {
-- sal_uInt32 m_nKeyEvent;
-+ sal_uIntPtr m_nKeyEvent;
-
- public:
- OFormattedControl(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory);
-diff -pur src680-m147.orig/binfilter/bf_forms/source/component/Grid.hxx src680-m147/binfilter/bf_forms/source/component/Grid.hxx
---- src680-m147.orig/binfilter/bf_forms/source/component/Grid.hxx 2005-09-07 17:35:26.000000000 +0200
-+++ src680-m147/binfilter/bf_forms/source/component/Grid.hxx 2005-12-28 13:48:41.000000000 +0100
-@@ -123,7 +123,7 @@ class OGridControlModel :public OControl
-
- ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > m_xSelection;
- ::com::sun::star::uno::Reference< ::com::sun::star::form::XLoadable > m_xParentFormLoadable;
-- sal_uInt32 m_nFontEvent;
-+ sal_uIntPtr m_nFontEvent;
-
- // [properties]
- ::rtl::OUString m_sHelpURL; // URL
-diff -pur src680-m147.orig/binfilter/bf_sfx2/source/dialog/filedlgimpl.hxx src680-m147/binfilter/bf_sfx2/source/dialog/filedlgimpl.hxx
---- src680-m147.orig/binfilter/bf_sfx2/source/dialog/filedlgimpl.hxx 2005-09-08 04:48:35.000000000 +0200
-+++ src680-m147/binfilter/bf_sfx2/source/dialog/filedlgimpl.hxx 2005-12-28 13:51:19.000000000 +0100
-@@ -106,7 +106,7 @@ namespace sfx2
- SfxFilterFlags m_nMustFlags;
- SfxFilterFlags m_nDontFlags;
-
-- ULONG mnPostUserEventId;
-+ sal_uIntPtr mnPostUserEventId;
-
- ErrCode mnError;
-
-diff -pur src680-m147.orig/binfilter/bf_svx/source/inc/fmctrler.hxx src680-m147/binfilter/bf_svx/source/inc/fmctrler.hxx
---- src680-m147.orig/binfilter/bf_svx/source/inc/fmctrler.hxx 2005-09-08 08:00:35.000000000 +0200
-+++ src680-m147/binfilter/bf_svx/source/inc/fmctrler.hxx 2005-12-28 13:52:18.000000000 +0100
-@@ -322,9 +322,9 @@ class FmXFormController : public ::comp
-
- ::rtl::OUString m_aMode;
-
-- sal_uInt32 m_nLoadEvent;
-- sal_uInt32 m_nUpdateDispatcherEvent;
-- sal_uInt32 m_nToggleEvent;
-+ sal_uIntPtr m_nLoadEvent;
-+ sal_uIntPtr m_nUpdateDispatcherEvent;
-+ sal_uIntPtr m_nToggleEvent;
-
- sal_Int32 m_nCurrentFilterPosition; // current level for filtering (or-criteria)
- ::rtl::OUString m_sDispatchPrefix;
-diff -pur src680-m147.orig/binfilter/bf_svx/source/inc/fmshimp.hxx src680-m147/binfilter/bf_svx/source/inc/fmshimp.hxx
---- src680-m147.orig/binfilter/bf_svx/source/inc/fmshimp.hxx 2005-09-08 08:04:13.000000000 +0200
-+++ src680-m147/binfilter/bf_svx/source/inc/fmshimp.hxx 2005-12-28 13:53:13.000000000 +0100
-@@ -353,7 +353,7 @@ class FmXFormShell :public FmXFormShell_
- SvLongs m_arrRelativeGridColumn;
-
- ::osl::Mutex m_aMutex;
-- sal_uInt32 m_nInvalidationEvent;
-+ sal_uIntPtr m_nInvalidationEvent;
- ::std::queue< FmLoadAction >
- m_aLoadingPages;
-
-diff -pur src680-m147.orig/binfilter/bf_svx/source/inc/fmvwimp.hxx src680-m147/binfilter/bf_svx/source/inc/fmvwimp.hxx
---- src680-m147.orig/binfilter/bf_svx/source/inc/fmvwimp.hxx 2005-09-08 08:05:53.000000000 +0200
-+++ src680-m147/binfilter/bf_svx/source/inc/fmvwimp.hxx 2005-12-28 13:55:55.000000000 +0100
-@@ -180,9 +180,9 @@ class FmXFormView : public ::cppu::WeakI
-
- FmFormObj* m_pMarkedGrid;
- FmFormView* m_pView;
-- sal_uInt32 m_nActivationEvent;
-- sal_uInt32 m_nErrorMessageEvent; // event for an asynchronous error message. See also m_aAsyncError
-- sal_uInt32 m_nAutoFocusEvent; // event for asynchronously setting the focus to a control
-+ sal_uIntPtr m_nActivationEvent;
-+ sal_uIntPtr m_nErrorMessageEvent; // event for an asynchronous error message. See also m_aAsyncError
-+ sal_uIntPtr m_nAutoFocusEvent; // event for asynchronously setting the focus to a control
-
- ::com::sun::star::sdb::SQLErrorEvent
- m_aAsyncError; // error event which is to be displayed asyn. See m_nErrorMessageEvent.
-diff -pur src680-m147.orig/binfilter/inc/bf_svx/gridctrl.hxx src680-m147/binfilter/inc/bf_svx/gridctrl.hxx
---- src680-m147.orig/binfilter/inc/bf_svx/gridctrl.hxx 2005-09-09 15:36:27.000000000 +0200
-+++ src680-m147/binfilter/inc/bf_svx/gridctrl.hxx 2005-12-28 13:58:48.000000000 +0100
-@@ -272,7 +272,7 @@ private:
-
- m_xEmptyRow; // Datensatz zum einfuegen
-
-- sal_uInt32 m_nAsynAdjustEvent;
-+ sal_uIntPtr m_nAsynAdjustEvent;
-
- // if we modify the row for the new record, we automatically insert a "new new row".
- // But if somebody else inserts a new record into the data source, we have to do the same.
-@@ -310,7 +310,7 @@ private:
-
- BrowserMode m_nMode;
- sal_Int32 m_nCurrentPos; // Aktuelle Position;
-- sal_uInt32 m_nDeleteEvent; // EventId fuer asychrone Loeschen von Zeilen
-+ sal_uIntPtr m_nDeleteEvent; // EventId fuer asychrone Loeschen von Zeilen
- sal_uInt16 m_nOptions; // Was kann das Control (Insert, Update, Delete)
- // default readonly
- sal_uInt16 m_nOptionMask; // the mask of options to be enabled in setDataSource
-diff -pur src680-m147.orig/dbaccess/source/ui/inc/AsyncronousLink.hxx src680-m147/dbaccess/source/ui/inc/AsyncronousLink.hxx
---- src680-m147.orig/dbaccess/source/ui/inc/AsyncronousLink.hxx 2005-09-08 17:14:42.000000000 +0200
-+++ src680-m147/dbaccess/source/ui/inc/AsyncronousLink.hxx 2005-12-28 13:59:29.000000000 +0100
-@@ -60,7 +60,7 @@ namespace dbaui
- ::vos::OMutex* m_pEventSafety;
- ::vos::OMutex* m_pDestructionSafety;
- BOOL m_bOwnMutexes;
-- ULONG m_nEventId;
-+ sal_uIntPtr m_nEventId;
-
- public:
- /** constructs the object
-diff -pur src680-m147.orig/dbaccess/source/ui/inc/sbagrid.hxx src680-m147/dbaccess/source/ui/inc/sbagrid.hxx
---- src680-m147.orig/dbaccess/source/ui/inc/sbagrid.hxx 2005-09-08 18:02:21.000000000 +0200
-+++ src680-m147/dbaccess/source/ui/inc/sbagrid.hxx 2005-12-28 14:02:13.000000000 +0100
-@@ -262,7 +262,7 @@ namespace dbaui
- protected:
- ::svx::ODataAccessDescriptor m_aDataDescriptor;
- SbaGridListener* m_pMasterListener;
-- sal_Int32 m_nAsyncDropEvent;
-+ sal_IntPtr m_nAsyncDropEvent;
- sal_uInt16 m_nLastColId;
- sal_uInt16 m_nLastRowId;
-
-diff -pur src680-m147.orig/dbaccess/source/ui/inc/TableGrantCtrl.hxx src680-m147/dbaccess/source/ui/inc/TableGrantCtrl.hxx
---- src680-m147.orig/dbaccess/source/ui/inc/TableGrantCtrl.hxx 2005-09-08 17:37:13.000000000 +0200
-+++ src680-m147/dbaccess/source/ui/inc/TableGrantCtrl.hxx 2005-12-28 14:00:50.000000000 +0100
-@@ -115,7 +115,7 @@ protected:
- virtual void CellModified();
-
- private:
-- ULONG m_nDeActivateEvent;
-+ sal_uIntPtr m_nDeActivateEvent;
- DECL_LINK( AsynchActivate, void* );
- DECL_LINK( AsynchDeactivate, void* );
-
-diff -pur src680-m147.orig/dbaccess/source/ui/inc/TableWindowListBox.hxx src680-m147/dbaccess/source/ui/inc/TableWindowListBox.hxx
---- src680-m147.orig/dbaccess/source/ui/inc/TableWindowListBox.hxx 2005-09-08 17:38:55.000000000 +0200
-+++ src680-m147/dbaccess/source/ui/inc/TableWindowListBox.hxx 2005-12-28 14:01:30.000000000 +0100
-@@ -77,7 +77,7 @@ namespace dbaui
- Point m_aMousePos;
-
- OTableWindow* m_pTabWin;
-- sal_Int32 m_nDropEvent;
-+ sal_IntPtr m_nDropEvent;
- OJoinDropData m_aDropInfo;
-
- BOOL m_bReallyScrolled : 1;
-diff -pur src680-m147.orig/forms/source/component/Button.hxx src680-m147/forms/source/component/Button.hxx
---- src680-m147.orig/forms/source/component/Button.hxx 2005-09-09 00:34:04.000000000 +0200
-+++ src680-m147/forms/source/component/Button.hxx 2005-12-28 15:43:10.000000000 +0100
-@@ -113,7 +113,7 @@ class OButtonControl :public OButtonCont
- ,public OFormNavigationHelper
- {
- private:
-- sal_uInt32 m_nClickEvent;
-+ sal_uIntPtr m_nClickEvent;
- sal_Int32 m_nTargetUrlFeatureId;
- /// caches the value of the "Enabled" property of our model
- sal_Bool m_bEnabledByPropertyValue;
-diff -pur src680-m147.orig/forms/source/component/Edit.hxx src680-m147/forms/source/component/Edit.hxx
---- src680-m147.orig/forms/source/component/Edit.hxx 2005-09-09 00:37:36.000000000 +0200
-+++ src680-m147/forms/source/component/Edit.hxx 2005-12-28 15:43:46.000000000 +0100
-@@ -150,7 +150,7 @@ class OEditControl : public OBoundContro
- m_aChangeListeners;
-
- ::rtl::OUString m_aHtmlChangeValue;
-- sal_uInt32 m_nKeyEvent;
-+ sal_uIntPtr m_nKeyEvent;
-
- public:
- OEditControl(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory);
-diff -pur src680-m147.orig/forms/source/component/FormattedField.hxx src680-m147/forms/source/component/FormattedField.hxx
---- src680-m147.orig/forms/source/component/FormattedField.hxx 2005-09-09 00:40:49.000000000 +0200
-+++ src680-m147/forms/source/component/FormattedField.hxx 2005-12-28 15:51:44.000000000 +0100
-@@ -193,7 +193,7 @@ namespace frm
- class OFormattedControl : public OBoundControl
- ,public OFormattedControl_BASE
- {
-- sal_uInt32 m_nKeyEvent;
-+ sal_uIntPtr m_nKeyEvent;
-
- public:
- OFormattedControl(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory);
-diff -pur src680-m147.orig/fpicker/source/office/commonpicker.hxx src680-m147/fpicker/source/office/commonpicker.hxx
---- src680-m147.orig/fpicker/source/office/commonpicker.hxx 2005-09-09 01:30:41.000000000 +0200
-+++ src680-m147/fpicker/source/office/commonpicker.hxx 2005-12-28 15:52:51.000000000 +0100
-@@ -113,7 +113,7 @@ namespace svt
- // </properties>
-
- SvtFileDialog* m_pDlg;
-- sal_uInt32 m_nCancelEvent;
-+ sal_uIntPtr m_nCancelEvent;
- sal_Bool m_bExecuting;
-
- ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > m_xDialogParent;
-diff -pur src680-m147.orig/sd/source/ui/slideshow/slideshowimpl.hxx src680-m147/sd/source/ui/slideshow/slideshowimpl.hxx
---- src680-m147.orig/sd/source/ui/slideshow/slideshowimpl.hxx 2005-10-11 10:18:14.000000000 +0200
-+++ src680-m147/sd/source/ui/slideshow/slideshowimpl.hxx 2005-12-28 15:54:23.000000000 +0100
-@@ -397,7 +397,7 @@ private:
-
- ::std::auto_ptr<PaneHider> mpPaneHider;
-
-- ULONG mnEndShowEvent;
-+ sal_uIntPtr mnEndShowEvent;
- };
-
- class SlideShowImplGuard
-diff -pur src680-m147.orig/sfx2/inc/tbxctrl.hxx src680-m147/sfx2/inc/tbxctrl.hxx
---- src680-m147.orig/sfx2/inc/tbxctrl.hxx 2005-09-07 19:21:58.000000000 +0200
-+++ src680-m147/sfx2/inc/tbxctrl.hxx 2005-12-28 15:58:11.000000000 +0100
-@@ -153,7 +153,7 @@ class SFX2_DLLPUBLIC SfxPopupWindow: pub
- {
- friend class SfxToolBox_Impl;
- BOOL m_bFloating;
-- ULONG m_nEventId;
-+ sal_uIntPtr m_nEventId;
- BOOL m_bCascading;
- Link m_aDeleteLink;
- USHORT m_nId;
-diff -pur src680-m147.orig/sfx2/source/dialog/filedlgimpl.hxx src680-m147/sfx2/source/dialog/filedlgimpl.hxx
---- src680-m147.orig/sfx2/source/dialog/filedlgimpl.hxx 2005-09-07 20:18:47.000000000 +0200
-+++ src680-m147/sfx2/source/dialog/filedlgimpl.hxx 2005-12-28 15:59:26.000000000 +0100
-@@ -105,7 +105,7 @@ namespace sfx2
- SfxFilterFlags m_nMustFlags;
- SfxFilterFlags m_nDontFlags;
-
-- ULONG mnPostUserEventId;
-+ sal_uIntPtr mnPostUserEventId;
-
- ErrCode mnError;
-
-diff -pur src680-m147.orig/svx/inc/gridctrl.hxx src680-m147/svx/inc/gridctrl.hxx
---- src680-m147.orig/svx/inc/gridctrl.hxx 2005-09-08 19:52:30.000000000 +0200
-+++ src680-m147/svx/inc/gridctrl.hxx 2005-12-28 16:01:39.000000000 +0100
-@@ -275,7 +275,7 @@ private:
-
- m_xEmptyRow; // Datensatz zum einfuegen
-
-- sal_uInt32 m_nAsynAdjustEvent;
-+ sal_uIntPtr m_nAsynAdjustEvent;
-
- // if we modify the row for the new record, we automatically insert a "new new row".
- // But if somebody else inserts a new record into the data source, we have to do the same.
-@@ -313,7 +313,7 @@ private:
-
- BrowserMode m_nMode;
- sal_Int32 m_nCurrentPos; // Aktuelle Position;
-- sal_uInt32 m_nDeleteEvent; // EventId fuer asychrone Loeschen von Zeilen
-+ sal_uIntPtr m_nDeleteEvent; // EventId fuer asychrone Loeschen von Zeilen
- sal_uInt16 m_nOptions; // Was kann das Control (Insert, Update, Delete)
- // default readonly
- sal_uInt16 m_nOptionMask; // the mask of options to be enabled in setDataSource
-diff -pur src680-m147.orig/svx/source/inc/fmctrler.hxx src680-m147/svx/source/inc/fmctrler.hxx
---- src680-m147.orig/svx/source/inc/fmctrler.hxx 2005-09-09 01:15:07.000000000 +0200
-+++ src680-m147/svx/source/inc/fmctrler.hxx 2005-12-28 16:02:35.000000000 +0100
-@@ -353,9 +353,9 @@ class SAL_DLLPRIVATE FmXFormController
-
- ::rtl::OUString m_aMode;
-
-- sal_uInt32 m_nLoadEvent;
-- sal_uInt32 m_nUpdateDispatcherEvent;
-- sal_uInt32 m_nToggleEvent;
-+ sal_uIntPtr m_nLoadEvent;
-+ sal_uIntPtr m_nUpdateDispatcherEvent;
-+ sal_uIntPtr m_nToggleEvent;
-
- sal_Int32 m_nCurrentFilterPosition; // current level for filtering (or-criteria)
-
-diff -pur src680-m147.orig/svx/source/inc/fmobj.hxx src680-m147/svx/source/inc/fmobj.hxx
---- src680-m147.orig/svx/source/inc/fmobj.hxx 2005-09-09 01:17:25.000000000 +0200
-+++ src680-m147/svx/source/inc/fmobj.hxx 2005-12-28 16:03:30.000000000 +0100
-@@ -68,7 +68,7 @@ class FmFormObj: public SdrUnoObj
- // m_pEnvironmentHistory was created
-
- FmFormView* m_pControlCreationView;
-- sal_uInt32 m_nControlCreationEvent;
-+ sal_uIntPtr m_nControlCreationEvent;
-
- // Informationen fuer die Controlumgebung
- // werden nur vorgehalten, wenn ein Object sich nicht in einer Objectliste befindet
-diff -pur src680-m147.orig/svx/source/inc/fmshimp.hxx src680-m147/svx/source/inc/fmshimp.hxx
---- src680-m147.orig/svx/source/inc/fmshimp.hxx 2005-09-09 01:18:58.000000000 +0200
-+++ src680-m147/svx/source/inc/fmshimp.hxx 2005-12-28 16:04:04.000000000 +0100
-@@ -319,8 +319,8 @@ class SAL_DLLPRIVATE FmXFormShell :pub
- SvLongs m_arrRelativeGridColumn;
-
- ::osl::Mutex m_aMutex;
-- ULONG m_nInvalidationEvent;
-- ULONG m_nActivationEvent;
-+ sal_uIntPtr m_nInvalidationEvent;
-+ sal_uIntPtr m_nActivationEvent;
- ::std::queue< FmLoadAction >
- m_aLoadingPages;
-
-diff -pur src680-m147.orig/vcl/inc/svapp.hxx src680-m147/vcl/inc/svapp.hxx
---- src680-m147.orig/vcl/inc/svapp.hxx 2005-09-09 13:29:11.000000000 +0200
-+++ src680-m147/vcl/inc/svapp.hxx 2005-12-28 13:21:04.000000000 +0100
-@@ -276,7 +276,7 @@ public:
-
- virtual BOOL QueryExit();
-
-- virtual void UserEvent( ULONG nEvent, void* pEventData );
-+ virtual void UserEvent( sal_uInt32 nEvent, void* pEventData );
-
- virtual void ActivateExtHelp();
- virtual void DeactivateExtHelp();
-@@ -348,19 +348,19 @@ public:
- static void RemoveEventListener( const Link& rEventListener );
- static void AddKeyListener( const Link& rKeyListener );
- static void RemoveKeyListener( const Link& rKeyListener );
-- static void ImplCallEventListeners( ULONG nEvent, Window* pWin, void* pData );
-+ static void ImplCallEventListeners( sal_uInt32 nEvent, Window* pWin, void* pData );
- static void ImplCallEventListeners( VclWindowEvent* pEvent );
-- static BOOL HandleKey( ULONG nEvent, Window *pWin, KeyEvent* pKeyEvent );
-+ static BOOL HandleKey( sal_uInt32 nEvent, Window *pWin, KeyEvent* pKeyEvent );
-
-- static ULONG PostKeyEvent( ULONG nEvent, Window *pWin, KeyEvent* pKeyEvent );
-- static ULONG PostMouseEvent( ULONG nEvent, Window *pWin, MouseEvent* pMouseEvent );
-- static void RemoveMouseAndKeyEvents( Window *pWin );
--
-- static ULONG PostUserEvent( ULONG nEvent, void* pEventData = NULL );
-- static ULONG PostUserEvent( const Link& rLink, void* pCaller = NULL );
-- static BOOL PostUserEvent( ULONG& rEventId, ULONG nEvent, void* pEventData = NULL );
-- static BOOL PostUserEvent( ULONG& rEventId, const Link& rLink, void* pCaller = NULL );
-- static void RemoveUserEvent( ULONG nUserEvent );
-+ static sal_uIntPtr PostKeyEvent( sal_uInt32 nEvent, Window *pWin, KeyEvent* pKeyEvent );
-+ static sal_uIntPtr PostMouseEvent( sal_uInt32 nEvent, Window *pWin, MouseEvent* pMouseEvent );
-+ static void RemoveMouseAndKeyEvents( Window *pWin );
-+
-+ static sal_uIntPtr PostUserEvent( sal_uInt32 nEvent, void* pEventData = NULL );
-+ static sal_uIntPtr PostUserEvent( const Link& rLink, void* pCaller = NULL );
-+ static BOOL PostUserEvent( sal_uIntPtr& rEventId, sal_uInt32 nEvent, void* pEventData = NULL );
-+ static BOOL PostUserEvent( sal_uIntPtr& rEventId, const Link& rLink, void* pCaller = NULL );
-+ static void RemoveUserEvent( sal_uIntPtr nUserEvent );
-
- static BOOL InsertIdleHdl( const Link& rLink, USHORT nPriority );
- static void RemoveIdleHdl( const Link& rLink );
-@@ -397,10 +397,10 @@ public:
- static void FlushAccel();
- static BOOL CallAccel( const KeyCode& rKeyCode, USHORT nRepeat = 0 );
-
-- static ULONG AddHotKey( const KeyCode& rKeyCode, const Link& rLink, void* pData = NULL );
-- static void RemoveHotKey( ULONG nId );
-- static ULONG AddEventHook( VCLEventHookProc pProc, void* pData = NULL );
-- static void RemoveEventHook( ULONG nId );
-+ static sal_uIntPtr AddHotKey( const KeyCode& rKeyCode, const Link& rLink, void* pData = NULL );
-+ static void RemoveHotKey( sal_uIntPtr nId );
-+ static sal_uIntPtr AddEventHook( VCLEventHookProc pProc, void* pData = NULL );
-+ static void RemoveEventHook( sal_uIntPtr nId );
- static long CallEventHooks( NotifyEvent& rEvt );
- static long CallPreNotify( NotifyEvent& rEvt );
- static long CallEvent( NotifyEvent& rEvt );
-diff -pur src680-m147.orig/vcl/inc/svdata.hxx src680-m147/vcl/inc/svdata.hxx
---- src680-m147.orig/vcl/inc/svdata.hxx 2005-09-09 13:29:39.000000000 +0200
-+++ src680-m147/vcl/inc/svdata.hxx 2005-12-28 16:29:56.000000000 +0100
-@@ -414,7 +414,7 @@ struct ImplDelData
-
- struct ImplSVEvent
- {
-- ULONG mnEvent;
-+ sal_uInt32 mnEvent;
- void* mpData;
- Link* mpLink;
- Window* mpWindow;
-diff -pur src680-m147.orig/vcl/inc/vclevent.hxx src680-m147/vcl/inc/vclevent.hxx
---- src680-m147.orig/vcl/inc/vclevent.hxx 2005-09-09 13:35:10.000000000 +0200
-+++ src680-m147/vcl/inc/vclevent.hxx 2005-12-28 13:13:52.000000000 +0100
-@@ -192,13 +192,13 @@ class Menu;
- class VCL_DLLPUBLIC VclSimpleEvent
- {
- private:
-- ULONG nId;
-+ sal_uInt32 nId;
-
- public:
-- VclSimpleEvent( ULONG n ) { nId = n; }
-- TYPEINFO();
-+ VclSimpleEvent( sal_uInt32 n ) { nId = n; }
-+ TYPEINFO();
-
-- ULONG GetId() const { return nId; }
-+ sal_uInt32 GetId() const { return nId; }
- };
-
- class VCL_DLLPUBLIC VclWindowEvent : public VclSimpleEvent
-@@ -208,7 +208,7 @@ private:
- void* pData;
-
- public:
-- VclWindowEvent( Window* pWin, ULONG n, void* pDat = NULL ) : VclSimpleEvent(n) { pWindow = pWin; pData = pDat; }
-+ VclWindowEvent( Window* pWin, sal_uInt32 n, void* pDat = NULL ) : VclSimpleEvent(n) { pWindow = pWin; pData = pDat; }
- TYPEINFO();
-
- Window* GetWindow() const { return pWindow; }
-@@ -222,7 +222,7 @@ private:
- MouseEvent aEvent;
-
- public:
-- VclMouseEvent( Window* pWin, ULONG n, const MouseEvent& rEvent ) : VclWindowEvent( pWin, n ), aEvent(rEvent) { ; }
-+ VclMouseEvent( Window* pWin, sal_uInt32 n, const MouseEvent& rEvent ) : VclWindowEvent( pWin, n ), aEvent(rEvent) { ; }
- TYPEINFO();
-
- const MouseEvent& GetEvent() const { return aEvent; }
-@@ -236,7 +236,7 @@ private:
- USHORT mnPos;
-
- public:
-- VclMenuEvent( Menu* pM, ULONG n, USHORT nPos ) : VclSimpleEvent(n) { pMenu = pM; mnPos = nPos; }
-+ VclMenuEvent( Menu* pM, sal_uInt32 n, USHORT nPos ) : VclSimpleEvent(n) { pMenu = pM; mnPos = nPos; }
- TYPEINFO();
-
- Menu* GetMenu() const { return pMenu; }
-diff -pur src680-m147.orig/vcl/inc/window.hxx src680-m147/vcl/inc/window.hxx
---- src680-m147.orig/vcl/inc/window.hxx 2005-11-10 16:48:41.000000000 +0100
-+++ src680-m147/vcl/inc/window.hxx 2005-12-28 11:37:14.000000000 +0100
-@@ -605,8 +605,8 @@ protected:
-
- void SetCompoundControl( BOOL bCompound );
-
-- void ImplCallEventListeners( ULONG nEvent, void* pData = NULL );
-- void CallEventListeners( ULONG nEvent, void* pData = NULL );
-+ void ImplCallEventListeners( sal_uInt32 nEvent, void* pData = NULL );
-+ void CallEventListeners( sal_uInt32 nEvent, void* pData = NULL );
-
-
- public:
-@@ -632,7 +632,7 @@ public:
- virtual void RequestHelp( const HelpEvent& rHEvt );
- virtual void Command( const CommandEvent& rCEvt );
- virtual void Tracking( const TrackingEvent& rTEvt );
-- virtual void UserEvent( ULONG nEvent, void* pEventData );
-+ virtual void UserEvent( sal_uInt32 nEvent, void* pEventData );
- virtual void StateChanged( StateChangedType nStateChange );
- virtual void DataChanged( const DataChangedEvent& rDCEvt );
- virtual long PreNotify( NotifyEvent& rNEvt );
-@@ -644,11 +644,11 @@ public:
- /*virtual*/ void AddChildEventListener( const Link& rEventListener );
- /*virtual*/ void RemoveChildEventListener( const Link& rEventListener );
-
-- ULONG PostUserEvent( ULONG nEvent, void* pEventData = NULL );
-- ULONG PostUserEvent( const Link& rLink, void* pCaller = NULL );
-- BOOL PostUserEvent( ULONG& rEventId, ULONG nEvent, void* pEventData = NULL );
-- BOOL PostUserEvent( ULONG& rEventId, const Link& rLink, void* pCaller = NULL );
-- void RemoveUserEvent( ULONG nUserEvent );
-+ sal_uIntPtr PostUserEvent( sal_uInt32 nEvent, void* pEventData = NULL );
-+ sal_uIntPtr PostUserEvent( const Link& rLink, void* pCaller = NULL );
-+ BOOL PostUserEvent( sal_uIntPtr& rEventId, sal_uInt32 nEvent, void* pEventData = NULL );
-+ BOOL PostUserEvent( sal_uIntPtr& rEventId, const Link& rLink, void* pCaller = NULL );
-+ void RemoveUserEvent( sal_uIntPtr nUserEvent );
- void PostStateChanged( StateChangedType nState );
-
- void IncrementLockCount();
-diff -pur src680-m147.orig/vcl/source/app/svapp.cxx src680-m147/vcl/source/app/svapp.cxx
---- src680-m147.orig/vcl/source/app/svapp.cxx 2005-11-01 13:58:43.000000000 +0100
-+++ src680-m147/vcl/source/app/svapp.cxx 2005-12-28 13:19:16.000000000 +0100
-@@ -237,16 +237,16 @@ struct ImplEventHook
-
- struct ImplPostEventData
- {
-- ULONG mnEvent;
-+ sal_uInt32 mnEvent;
- const Window* mpWin;
-- ULONG mnEventId;
-+ sal_uIntPtr mnEventId;
- KeyEvent maKeyEvent;
- MouseEvent maMouseEvent;
-
-
-- ImplPostEventData( ULONG nEvent, const Window* pWin, const KeyEvent& rKeyEvent ) :
-+ ImplPostEventData( sal_uInt32 nEvent, const Window* pWin, const KeyEvent& rKeyEvent ) :
- mnEvent( nEvent ), mpWin( pWin ), mnEventId( 0 ), maKeyEvent( rKeyEvent ) {}
-- ImplPostEventData( ULONG nEvent, const Window* pWin, const MouseEvent& rMouseEvent ) :
-+ ImplPostEventData( sal_uInt32 nEvent, const Window* pWin, const MouseEvent& rMouseEvent ) :
- mnEvent( nEvent ), mpWin( pWin ), mnEventId( 0 ), maMouseEvent( rMouseEvent ) {}
-
- ~ImplPostEventData() {}
-@@ -308,7 +308,7 @@ BOOL Application::QueryExit()
-
- // -----------------------------------------------------------------------
-
--void Application::UserEvent( ULONG, void* )
-+void Application::UserEvent( sal_uInt32, void* )
- {
- }
-
-@@ -855,7 +855,7 @@ void Application::NotifyAllWindows( Data
-
- // -----------------------------------------------------------------------
-
--void Application::ImplCallEventListeners( ULONG nEvent, Window *pWin, void* pData )
-+void Application::ImplCallEventListeners( sal_uInt32 nEvent, Window *pWin, void* pData )
- {
- ImplSVData* pSVData = ImplGetSVData();
- VclWindowEvent aEvent( pWin, nEvent, pData );
-@@ -915,7 +915,7 @@ void Application::RemoveKeyListener( con
-
- // -----------------------------------------------------------------------
-
--BOOL Application::HandleKey( ULONG nEvent, Window *pWin, KeyEvent* pKeyEvent )
-+BOOL Application::HandleKey( sal_uInt32 nEvent, Window *pWin, KeyEvent* pKeyEvent )
- {
- // let listeners process the key event
- VclWindowEvent aEvent( pWin, nEvent, (void *) pKeyEvent );
-@@ -932,10 +932,10 @@ BOOL Application::HandleKey( ULONG nEven
-
- // -----------------------------------------------------------------------------
-
--ULONG Application::PostKeyEvent( ULONG nEvent, Window *pWin, KeyEvent* pKeyEvent )
-+sal_uIntPtr Application::PostKeyEvent( sal_uInt32 nEvent, Window *pWin, KeyEvent* pKeyEvent )
- {
- const ::vos::OGuard aGuard( GetSolarMutex() );
-- ULONG nEventId = 0;
-+ sal_uIntPtr nEventId = 0;
-
- if( pWin && pKeyEvent )
- {
-@@ -959,10 +959,10 @@ ULONG Application::PostKeyEvent( ULONG n
-
- // -----------------------------------------------------------------------------
-
--ULONG Application::PostMouseEvent( ULONG nEvent, Window *pWin, MouseEvent* pMouseEvent )
-+sal_uIntPtr Application::PostMouseEvent( sal_uInt32 nEvent, Window *pWin, MouseEvent* pMouseEvent )
- {
- const ::vos::OGuard aGuard( GetSolarMutex() );
-- ULONG nEventId = 0;
-+ sal_uIntPtr nEventId = 0;
-
- if( pWin && pMouseEvent )
- {
-@@ -999,8 +999,8 @@ IMPL_STATIC_LINK( Application, PostEvent
- const ::vos::OGuard aGuard( GetSolarMutex() );
- ImplPostEventData* pData = static_cast< ImplPostEventData * >( pCallData );
- const void* pEventData;
-- ULONG nEvent;
-- const ULONG nEventId = pData->mnEventId;
-+ sal_uInt32 nEvent;
-+ const sal_uIntPtr nEventId = pData->mnEventId;
-
- switch( pData->mnEvent )
- {
-@@ -1081,25 +1081,25 @@ void Application::RemoveMouseAndKeyEvent
-
- // -----------------------------------------------------------------------
-
--ULONG Application::PostUserEvent( ULONG nEvent, void* pEventData )
-+sal_uIntPtr Application::PostUserEvent( sal_uInt32 nEvent, void* pEventData )
- {
-- ULONG nEventId;
-+ sal_uIntPtr nEventId;
- PostUserEvent( nEventId, nEvent, pEventData );
- return nEventId;
- }
-
- // -----------------------------------------------------------------------
-
--ULONG Application::PostUserEvent( const Link& rLink, void* pCaller )
-+sal_uIntPtr Application::PostUserEvent( const Link& rLink, void* pCaller )
- {
-- ULONG nEventId;
-+ sal_uIntPtr nEventId;
- PostUserEvent( nEventId, rLink, pCaller );
- return nEventId;
- }
-
- // -----------------------------------------------------------------------
-
--BOOL Application::PostUserEvent( ULONG& rEventId, ULONG nEvent, void* pEventData )
-+BOOL Application::PostUserEvent( sal_uIntPtr& rEventId, sal_uInt32 nEvent, void* pEventData )
- {
- ImplSVEvent* pSVEvent = new ImplSVEvent;
- pSVEvent->mnEvent = nEvent;
-@@ -1107,7 +1107,7 @@ BOOL Application::PostUserEvent( ULONG&
- pSVEvent->mpLink = NULL;
- pSVEvent->mpWindow = NULL;
- pSVEvent->mbCall = TRUE;
-- rEventId = (ULONG)pSVEvent;
-+ rEventId = (sal_uIntPtr)pSVEvent;
- if ( ImplGetDefaultWindow()->ImplGetFrame()->PostEvent( pSVEvent ) )
- return TRUE;
- else
-@@ -1120,7 +1120,7 @@ BOOL Application::PostUserEvent( ULONG&
-
- // -----------------------------------------------------------------------
-
--BOOL Application::PostUserEvent( ULONG& rEventId, const Link& rLink, void* pCaller )
-+BOOL Application::PostUserEvent( sal_uIntPtr& rEventId, const Link& rLink, void* pCaller )
- {
- ImplSVEvent* pSVEvent = new ImplSVEvent;
- pSVEvent->mnEvent = 0;
-@@ -1128,7 +1128,7 @@ BOOL Application::PostUserEvent( ULONG&
- pSVEvent->mpLink = new Link( rLink );
- pSVEvent->mpWindow = NULL;
- pSVEvent->mbCall = TRUE;
-- rEventId = (ULONG)pSVEvent;
-+ rEventId = (sal_uIntPtr)pSVEvent;
- if ( ImplGetDefaultWindow()->ImplGetFrame()->PostEvent( pSVEvent ) )
- return TRUE;
- else
-@@ -1141,7 +1141,7 @@ BOOL Application::PostUserEvent( ULONG&
-
- // -----------------------------------------------------------------------
-
--void Application::RemoveUserEvent( ULONG nUserEvent )
-+void Application::RemoveUserEvent( sal_uIntPtr nUserEvent )
- {
- if(nUserEvent)
- {
-@@ -1673,7 +1673,7 @@ void ImplFreeHotKeyData()
-
- // -----------------------------------------------------------------------
-
--ULONG Application::AddHotKey( const KeyCode& rKeyCode, const Link& rLink, void* pData )
-+sal_uIntPtr Application::AddHotKey( const KeyCode& rKeyCode, const Link& rLink, void* pData )
- {
- ImplSVData* pSVData = ImplGetSVData();
- ImplHotKey* pHotKeyData = new ImplHotKey;
-@@ -1682,12 +1682,12 @@ ULONG Application::AddHotKey( const KeyC
- pHotKeyData->maLink = rLink;
- pHotKeyData->mpNext = pSVData->maAppData.mpFirstHotKey;
- pSVData->maAppData.mpFirstHotKey = pHotKeyData;
-- return (ULONG)pHotKeyData;
-+ return (sal_uIntPtr)pHotKeyData;
- }
-
- // -----------------------------------------------------------------------
-
--void Application::RemoveHotKey( ULONG nId )
-+void Application::RemoveHotKey( sal_uIntPtr nId )
- {
- ImplSVData* pSVData = ImplGetSVData();
- ImplHotKey* pFindHotKeyData = (ImplHotKey*)nId;
-@@ -1731,7 +1731,7 @@ void ImplFreeEventHookData()
-
- // -----------------------------------------------------------------------
-
--ULONG Application::AddEventHook( VCLEventHookProc pProc, void* pData )
-+sal_uIntPtr Application::AddEventHook( VCLEventHookProc pProc, void* pData )
- {
- ImplSVData* pSVData = ImplGetSVData();
- ImplEventHook* pEventHookData = new ImplEventHook;
-@@ -1739,12 +1739,12 @@ ULONG Application::AddEventHook( VCLEven
- pEventHookData->mpProc = pProc;
- pEventHookData->mpNext = pSVData->maAppData.mpFirstEventHook;
- pSVData->maAppData.mpFirstEventHook = pEventHookData;
-- return (ULONG)pEventHookData;
-+ return (sal_uIntPtr)pEventHookData;
- }
-
- // -----------------------------------------------------------------------
-
--void Application::RemoveEventHook( ULONG nId )
-+void Application::RemoveEventHook( sal_uIntPtr nId )
- {
- ImplSVData* pSVData = ImplGetSVData();
- ImplEventHook* pFindEventHookData = (ImplEventHook*)nId;
-diff -pur src680-m147.orig/vcl/source/window/window.cxx src680-m147/vcl/source/window/window.cxx
---- src680-m147.orig/vcl/source/window/window.cxx 2005-11-11 12:55:45.000000000 +0100
-+++ src680-m147/vcl/source/window/window.cxx 2005-12-28 16:37:52.000000000 +0100
-@@ -4966,7 +4966,7 @@ void Window::Tracking( const TrackingEve
-
- // -----------------------------------------------------------------------
-
--void Window::UserEvent( ULONG, void* )
-+void Window::UserEvent( sal_uInt32, void* )
- {
- DBG_CHKTHIS( Window, ImplDbgCheckWindow );
- }
-@@ -5309,7 +5309,7 @@ long Window::Notify( NotifyEvent& rNEvt
-
- // -----------------------------------------------------------------------
-
--void Window::ImplCallEventListeners( ULONG nEvent, void* pData )
-+void Window::ImplCallEventListeners( sal_uInt32 nEvent, void* pData )
- {
- // The implementation was moved to CallEventListeners(),
- // because derived classes in svtools must be able to
-@@ -5322,7 +5322,7 @@ void Window::ImplCallEventListeners( ULO
-
- // -----------------------------------------------------------------------
-
--void Window::CallEventListeners( ULONG nEvent, void* pData )
-+void Window::CallEventListeners( sal_uInt32 nEvent, void* pData )
- {
- VclWindowEvent aEvent( this, nEvent, pData );
-
-@@ -5390,25 +5390,25 @@ void Window::RemoveChildEventListener( c
-
- // -----------------------------------------------------------------------
-
--ULONG Window::PostUserEvent( ULONG nEvent, void* pEventData )
-+sal_uIntPtr Window::PostUserEvent( sal_uInt32 nEvent, void* pEventData )
- {
-- ULONG nEventId;
-+ sal_uIntPtr nEventId;
- PostUserEvent( nEventId, nEvent, pEventData );
- return nEventId;
- }
-
- // -----------------------------------------------------------------------
-
--ULONG Window::PostUserEvent( const Link& rLink, void* pCaller )
-+sal_uIntPtr Window::PostUserEvent( const Link& rLink, void* pCaller )
- {
-- ULONG nEventId;
-+ sal_uIntPtr nEventId;
- PostUserEvent( nEventId, rLink, pCaller );
- return nEventId;
- }
-
- // -----------------------------------------------------------------------
-
--BOOL Window::PostUserEvent( ULONG& rEventId, ULONG nEvent, void* pEventData )
-+BOOL Window::PostUserEvent( sal_uIntPtr& rEventId, sal_uInt32 nEvent, void* pEventData )
- {
- DBG_CHKTHIS( Window, ImplDbgCheckWindow );
-
-@@ -5419,7 +5419,7 @@ BOOL Window::PostUserEvent( ULONG& rEven
- pSVEvent->mpWindow = this;
- pSVEvent->mbCall = TRUE;
- ImplAddDel( &(pSVEvent->maDelData) );
-- rEventId = (ULONG)pSVEvent;
-+ rEventId = (sal_uIntPtr)pSVEvent;
- if ( mpWindowImpl->mpFrame->PostEvent( pSVEvent ) )
- return TRUE;
- else
-@@ -5433,7 +5433,7 @@ BOOL Window::PostUserEvent( ULONG& rEven
-
- // -----------------------------------------------------------------------
-
--BOOL Window::PostUserEvent( ULONG& rEventId, const Link& rLink, void* pCaller )
-+BOOL Window::PostUserEvent( sal_uIntPtr& rEventId, const Link& rLink, void* pCaller )
- {
- DBG_CHKTHIS( Window, ImplDbgCheckWindow );
-
-@@ -5444,7 +5444,7 @@ BOOL Window::PostUserEvent( ULONG& rEven
- pSVEvent->mpWindow = this;
- pSVEvent->mbCall = TRUE;
- ImplAddDel( &(pSVEvent->maDelData) );
-- rEventId = (ULONG)pSVEvent;
-+ rEventId = (sal_uIntPtr)pSVEvent;
- if ( mpWindowImpl->mpFrame->PostEvent( pSVEvent ) )
- return TRUE;
- else
-@@ -5458,7 +5458,7 @@ BOOL Window::PostUserEvent( ULONG& rEven
-
- // -----------------------------------------------------------------------
-
--void Window::RemoveUserEvent( ULONG nUserEvent )
-+void Window::RemoveUserEvent( sal_uIntPtr nUserEvent )
- {
- DBG_CHKTHIS( Window, ImplDbgCheckWindow );
-
diff --git a/patches/64bit/fix-64bit-bridges-2.diff b/patches/64bit/fix-64bit-bridges-2.diff
deleted file mode 100644
index 6657cf335..000000000
--- a/patches/64bit/fix-64bit-bridges-2.diff
+++ /dev/null
@@ -1,1493 +0,0 @@
-diff -purN bridges.orig/source/cpp_uno/gcc3_linux_x86-64/abi.cxx bridges/source/cpp_uno/gcc3_linux_x86-64/abi.cxx
---- bridges.orig/source/cpp_uno/gcc3_linux_x86-64/abi.cxx 1970-01-01 01:00:00.000000000 +0100
-+++ bridges/source/cpp_uno/gcc3_linux_x86-64/abi.cxx 2005-05-31 15:41:10.000000000 +0200
-@@ -0,0 +1,808 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Novell, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Jan Holesovsky <kendy@suse.cz>
-+ *
-+ *
-+ ************************************************************************/
-+
-+// This is an implementation of the x86-64 ABI as described in System V
-+// Application Binary Interface, AMD64 Architecture Processor Supplement
-+// (http://www.x86-64.org/documentation/abi-0.95.pdf)
-+//
-+// The code in this file is a modification of src/x86/ffi64.c from libffi
-+// (http://sources.redhat.com/libffi/) which is under the following license:
-+
-+/* -----------------------------------------------------------------------
-+ ffi.c - Copyright (c) 2002 Bo Thorsen <bo@suse.de>
-+
-+ x86-64 Foreign Function Interface
-+
-+ Permission is hereby granted, free of charge, to any person obtaining
-+ a copy of this software and associated documentation files (the
-+ ``Software''), to deal in the Software without restriction, including
-+ without limitation the rights to use, copy, modify, merge, publish,
-+ distribute, sublicense, and/or sell copies of the Software, and to
-+ permit persons to whom the Software is furnished to do so, subject to
-+ the following conditions:
-+
-+ The above copyright notice and this permission notice shall be included
-+ in all copies or substantial portions of the Software.
-+
-+ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-+ IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-+ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-+ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-+ OTHER DEALINGS IN THE SOFTWARE.
-+ ----------------------------------------------------------------------- */
-+
-+#include <typelib/typedescription.hxx>
-+#include <rtl/ustring.hxx>
-+
-+namespace x86_64
-+{
-+
-+#define MAX_GPR_REGS 6
-+#define MAX_SSE_REGS 8
-+
-+typedef struct
-+{
-+ /* Registers for argument passing. */
-+ long gpr[MAX_GPR_REGS];
-+ __int128_t sse[MAX_SSE_REGS];
-+
-+ /* Stack space for arguments. */
-+ char argspace[0];
-+} stackLayout;
-+
-+/* Register class used for passing given 64bit part of the argument.
-+ These represent classes as documented by the PS ABI, with the exception
-+ of SSESF, SSEDF classes, that are basically SSE class, just gcc will
-+ use SF or DFmode move instead of DImode to avoid reformating penalties.
-+
-+ Similary we play games with INTEGERSI_CLASS to use cheaper SImode moves
-+ whenever possible (upper half does contain padding).
-+ */
-+enum x86_64_reg_class
-+{
-+ X86_64_NO_CLASS,
-+ X86_64_INTEGER_CLASS,
-+ X86_64_INTEGERSI_CLASS,
-+ X86_64_SSE_CLASS,
-+ X86_64_SSESF_CLASS,
-+ X86_64_SSEDF_CLASS,
-+ X86_64_SSEUP_CLASS,
-+ X86_64_X87_CLASS,
-+ X86_64_X87UP_CLASS,
-+ X86_64_MEMORY_CLASS
-+};
-+
-+#define MAX_CLASSES 4
-+
-+#define ALIGN(v, a) (((((size_t) (v))-1) | ((a)-1))+1)
-+
-+/* x86-64 register passing implementation. See x86-64 ABI for details. Goal
-+ of this code is to classify each 8bytes of incoming argument by the register
-+ class and assign registers accordingly. */
-+
-+/* Return the union class of CLASS1 and CLASS2.
-+ See the x86-64 PS ABI for details. */
-+
-+static enum x86_64_reg_class
-+merge_classes (enum x86_64_reg_class class1, enum x86_64_reg_class class2)
-+{
-+ /* Rule #1: If both classes are equal, this is the resulting class. */
-+ if (class1 == class2)
-+ return class1;
-+
-+ /* Rule #2: If one of the classes is NO_CLASS, the resulting class is
-+ the other class. */
-+ if (class1 == X86_64_NO_CLASS)
-+ return class2;
-+ if (class2 == X86_64_NO_CLASS)
-+ return class1;
-+
-+ /* Rule #3: If one of the classes is MEMORY, the result is MEMORY. */
-+ if (class1 == X86_64_MEMORY_CLASS || class2 == X86_64_MEMORY_CLASS)
-+ return X86_64_MEMORY_CLASS;
-+
-+ /* Rule #4: If one of the classes is INTEGER, the result is INTEGER. */
-+ if ((class1 == X86_64_INTEGERSI_CLASS && class2 == X86_64_SSESF_CLASS)
-+ || (class2 == X86_64_INTEGERSI_CLASS && class1 == X86_64_SSESF_CLASS))
-+ return X86_64_INTEGERSI_CLASS;
-+ if (class1 == X86_64_INTEGER_CLASS || class1 == X86_64_INTEGERSI_CLASS
-+ || class2 == X86_64_INTEGER_CLASS || class2 == X86_64_INTEGERSI_CLASS)
-+ return X86_64_INTEGER_CLASS;
-+
-+ /* Rule #5: If one of the classes is X87 or X87UP class, MEMORY is used. */
-+ if (class1 == X86_64_X87_CLASS || class1 == X86_64_X87UP_CLASS
-+ || class2 == X86_64_X87_CLASS || class2 == X86_64_X87UP_CLASS)
-+ return X86_64_MEMORY_CLASS;
-+
-+ /* Rule #6: Otherwise class SSE is used. */
-+ return X86_64_SSE_CLASS;
-+}
-+
-+/* Classify the argument of type TYPE and mode MODE.
-+ CLASSES will be filled by the register class used to pass each word
-+ of the operand. The number of words is returned. In case the parameter
-+ should be passed in memory, 0 is returned. As a special case for zero
-+ sized containers, classes[0] will be NO_CLASS and 1 is returned.
-+
-+ See the x86-64 PS ABI for details.
-+*/
-+static int
-+classify_argument( typelib_TypeDescriptionReference *pTypeRef, enum x86_64_reg_class classes[], int &rByteOffset )
-+{
-+ /* First, align to the right place. */
-+ rByteOffset = ALIGN( rByteOffset, pTypeRef->pType->nAlignment );
-+
-+ switch ( pTypeRef->eTypeClass )
-+ {
-+ case typelib_TypeClass_VOID:
-+ classes[0] = X86_64_NO_CLASS;
-+ return 1;
-+ case typelib_TypeClass_CHAR:
-+ case typelib_TypeClass_BOOLEAN:
-+ case typelib_TypeClass_BYTE:
-+ case typelib_TypeClass_SHORT:
-+ case typelib_TypeClass_UNSIGNED_SHORT:
-+ case typelib_TypeClass_LONG:
-+ case typelib_TypeClass_UNSIGNED_LONG:
-+ case typelib_TypeClass_HYPER:
-+ case typelib_TypeClass_UNSIGNED_HYPER:
-+ case typelib_TypeClass_ENUM:
-+ if ( ( rByteOffset % 8 + pTypeRef->pType->nSize ) <= 4 )
-+ classes[0] = X86_64_INTEGERSI_CLASS;
-+ else
-+ classes[0] = X86_64_INTEGER_CLASS;
-+ return 1;
-+ case typelib_TypeClass_FLOAT:
-+ if ( ( rByteOffset % 8 ) == 0 )
-+ classes[0] = X86_64_SSESF_CLASS;
-+ else
-+ classes[0] = X86_64_SSE_CLASS;
-+ return 1;
-+ case typelib_TypeClass_DOUBLE:
-+ classes[0] = X86_64_SSEDF_CLASS;
-+ return 1;
-+ /*case LONGDOUBLE:
-+ classes[0] = X86_64_X87_CLASS;
-+ classes[1] = X86_64_X87UP_CLASS;
-+ return 2;*/
-+ case typelib_TypeClass_STRING:
-+ case typelib_TypeClass_TYPE:
-+ case typelib_TypeClass_ANY:
-+ case typelib_TypeClass_TYPEDEF:
-+ case typelib_TypeClass_UNION:
-+ case typelib_TypeClass_SEQUENCE:
-+ case typelib_TypeClass_ARRAY:
-+ case typelib_TypeClass_INTERFACE:
-+ return 0;
-+ case typelib_TypeClass_STRUCT:
-+ case typelib_TypeClass_EXCEPTION:
-+ {
-+ if ( !pTypeRef->pType->bComplete )
-+ typelib_typedescription_complete( &(pTypeRef->pType) );
-+
-+ const int UNITS_PER_WORD = 8;
-+ int words = ( pTypeRef->pType->nSize + UNITS_PER_WORD - 1 ) / UNITS_PER_WORD;
-+ enum x86_64_reg_class subclasses[MAX_CLASSES];
-+
-+ /* If the struct is larger than 16 bytes, pass it on the stack. */
-+ if ( pTypeRef->pType->nSize > 16 )
-+ return 0;
-+
-+ for ( int i = 0; i < words; i++ )
-+ classes[i] = X86_64_NO_CLASS;
-+
-+ const typelib_CompoundTypeDescription *pStruct = reinterpret_cast<const typelib_CompoundTypeDescription*>( pTypeRef->pType );
-+
-+ /* Merge the fields of structure. */
-+ for ( sal_Int32 nMember = 0; nMember < pStruct->nMembers; ++nMember )
-+ {
-+ typelib_TypeDescriptionReference *pTypeInStruct = pStruct->ppTypeRefs[ nMember ];
-+
-+ int num = classify_argument( pTypeInStruct, subclasses, rByteOffset );
-+
-+ if ( num == 0 )
-+ return 0;
-+
-+ for ( int i = 0; i < num; i++ )
-+ {
-+ int pos = rByteOffset / 8;
-+ classes[i + pos] = merge_classes( subclasses[i], classes[i + pos] );
-+ }
-+
-+ if ( pTypeInStruct->eTypeClass != typelib_TypeClass_STRUCT )
-+ rByteOffset = pStruct->pMemberOffsets[ nMember ];
-+ }
-+
-+ /* Final merger cleanup. */
-+ for ( int i = 0; i < words; i++ )
-+ {
-+ /* If one class is MEMORY, everything should be passed in
-+ memory. */
-+ if ( classes[i] == X86_64_MEMORY_CLASS )
-+ return 0;
-+
-+ /* The X86_64_SSEUP_CLASS should be always preceded by
-+ X86_64_SSE_CLASS. */
-+ if ( classes[i] == X86_64_SSEUP_CLASS
-+ && ( i == 0 || classes[i - 1] != X86_64_SSE_CLASS ) )
-+ classes[i] = X86_64_SSE_CLASS;
-+
-+ /* X86_64_X87UP_CLASS should be preceded by X86_64_X87_CLASS. */
-+ if ( classes[i] == X86_64_X87UP_CLASS
-+ && ( i == 0 || classes[i - 1] != X86_64_X87_CLASS ) )
-+ classes[i] = X86_64_SSE_CLASS;
-+ }
-+ return words;
-+ }
-+
-+ default:
-+#if OSL_DEBUG_LEVEL > 1
-+ fprintf( stderr, "Unhandled case: pType->eTypeClass == %d\n", pTypeRef->eTypeClass );
-+#endif
-+ OSL_ASSERT(0);
-+ }
-+ return 0; /* Never reached. */
-+}
-+
-+#if 0
-+/* Examine the argument and return set number of register required in each
-+ class. Return 0 iff parameter should be passed in memory. */
-+static int
-+examine_argument( const pTypelib_TypeDescription *pType, int in_return, int *int_nregs, int *sse_nregs )
-+{
-+ enum x86_64_reg_class classes[MAX_CLASSES];
-+ int offset = 0;
-+ int n;
-+
-+ n = classify_argument( pType, classes, &offset );
-+
-+ if (n == 0)
-+ return 0;
-+
-+ *int_nregs = 0;
-+ *sse_nregs = 0;
-+ for (n--; n>=0; n--)
-+ switch (classes[n])
-+ {
-+ case X86_64_INTEGER_CLASS:
-+ case X86_64_INTEGERSI_CLASS:
-+ (*int_nregs)++;
-+ break;
-+ case X86_64_SSE_CLASS:
-+ case X86_64_SSESF_CLASS:
-+ case X86_64_SSEDF_CLASS:
-+ (*sse_nregs)++;
-+ break;
-+ case X86_64_NO_CLASS:
-+ case X86_64_SSEUP_CLASS:
-+ break;
-+ case X86_64_X87_CLASS:
-+ case X86_64_X87UP_CLASS:
-+ if (!in_return)
-+ return 0;
-+ break;
-+ default:
-+ abort ();
-+ }
-+ return 1;
-+}
-+#endif
-+
-+bool returnInHiddenParam( typelib_TypeDescriptionReference *pTypeRef )
-+{
-+ enum x86_64_reg_class classes[MAX_CLASSES];
-+ int i = 0;
-+
-+ return classify_argument( pTypeRef, classes, i ) == 0;
-+}
-+
-+#if 0
-+
-+/* Functions to load floats and double to an SSE register placeholder. */
-+extern void float2sse (float, __int128_t *);
-+extern void double2sse (double, __int128_t *);
-+extern void floatfloat2sse (void *, __int128_t *);
-+
-+/* Functions to put the floats and doubles back. */
-+extern float sse2float (__int128_t *);
-+extern double sse2double (__int128_t *);
-+extern void sse2floatfloat(__int128_t *, void *);
-+
-+/*@-exportheader@*/
-+void
-+ffi_prep_args (stackLayout *stack, extended_cif *ecif)
-+/*@=exportheader@*/
-+{
-+ int gprcount, ssecount, i, g, s;
-+ void **p_argv;
-+ void *argp = &stack->argspace;
-+ ffi_type **p_arg;
-+
-+ /* First check if the return value should be passed in memory. If so,
-+ pass the pointer as the first argument. */
-+ gprcount = ssecount = 0;
-+ if (ecif->cif->rtype->type != FFI_TYPE_VOID
-+ && examine_argument (ecif->cif->rtype, 1, &g, &s) == 0)
-+ (void *)stack->gpr[gprcount++] = ecif->rvalue;
-+
-+ for (i=ecif->cif->nargs, p_arg=ecif->cif->arg_types, p_argv = ecif->avalue;
-+ i!=0; i--, p_arg++, p_argv++)
-+ {
-+ int in_register = 0;
-+
-+ switch ((*p_arg)->type)
-+ {
-+ case FFI_TYPE_SINT8:
-+ case FFI_TYPE_SINT16:
-+ case FFI_TYPE_SINT32:
-+ case FFI_TYPE_SINT64:
-+ case FFI_TYPE_UINT8:
-+ case FFI_TYPE_UINT16:
-+ case FFI_TYPE_UINT32:
-+ case FFI_TYPE_UINT64:
-+ case FFI_TYPE_POINTER:
-+ if (gprcount < MAX_GPR_REGS)
-+ {
-+ stack->gpr[gprcount] = 0;
-+ stack->gpr[gprcount++] = *(long long *)(*p_argv);
-+ in_register = 1;
-+ }
-+ break;
-+
-+ case FFI_TYPE_FLOAT:
-+ if (ssecount < MAX_SSE_REGS)
-+ {
-+ float2sse (*(float *)(*p_argv), &stack->sse[ssecount++]);
-+ in_register = 1;
-+ }
-+ break;
-+
-+ case FFI_TYPE_DOUBLE:
-+ if (ssecount < MAX_SSE_REGS)
-+ {
-+ double2sse (*(double *)(*p_argv), &stack->sse[ssecount++]);
-+ in_register = 1;
-+ }
-+ break;
-+ }
-+
-+ if (in_register)
-+ continue;
-+
-+ /* Either all places in registers where filled, or this is a
-+ type that potentially goes into a memory slot. */
-+ if (examine_argument (*p_arg, 0, &g, &s) == 0
-+ || gprcount + g > MAX_GPR_REGS || ssecount + s > MAX_SSE_REGS)
-+ {
-+ /* Pass this argument in memory. */
-+ argp = (void *)ALIGN(argp, (*p_arg)->alignment);
-+ memcpy (argp, *p_argv, (*p_arg)->size);
-+ argp += (*p_arg)->size;
-+ }
-+ else
-+ {
-+ /* All easy cases are eliminated. Now fire the big guns. */
-+
-+ enum x86_64_reg_class classes[MAX_CLASSES];
-+ int offset = 0, j, num;
-+ void *a;
-+
-+ num = classify_argument (*p_arg, classes, &offset);
-+ for (j=0, a=*p_argv; j<num; j++, a+=8)
-+ {
-+ switch (classes[j])
-+ {
-+ case X86_64_INTEGER_CLASS:
-+ case X86_64_INTEGERSI_CLASS:
-+ stack->gpr[gprcount++] = *(long long *)a;
-+ break;
-+ case X86_64_SSE_CLASS:
-+ floatfloat2sse (a, &stack->sse[ssecount++]);
-+ break;
-+ case X86_64_SSESF_CLASS:
-+ float2sse (*(float *)a, &stack->sse[ssecount++]);
-+ break;
-+ case X86_64_SSEDF_CLASS:
-+ double2sse (*(double *)a, &stack->sse[ssecount++]);
-+ break;
-+ default:
-+ abort();
-+ }
-+ }
-+ }
-+ }
-+}
-+
-+/* Perform machine dependent cif processing. */
-+ffi_status
-+ffi_prep_cif_machdep (ffi_cif *cif)
-+{
-+ int gprcount, ssecount, i, g, s;
-+
-+ gprcount = ssecount = 0;
-+
-+ /* Reset the byte count. We handle this size estimation here. */
-+ cif->bytes = 0;
-+
-+ /* If the return value should be passed in memory, pass the pointer
-+ as the first argument. The actual memory isn't allocated here. */
-+ if (cif->rtype->type != FFI_TYPE_VOID
-+ && examine_argument (cif->rtype, 1, &g, &s) == 0)
-+ gprcount = 1;
-+
-+ /* Go over all arguments and determine the way they should be passed.
-+ If it's in a register and there is space for it, let that be so. If
-+ not, add it's size to the stack byte count. */
-+ for (i=0; i<cif->nargs; i++)
-+ {
-+ if (examine_argument (cif->arg_types[i], 0, &g, &s) == 0
-+ || gprcount + g > MAX_GPR_REGS || ssecount + s > MAX_SSE_REGS)
-+ {
-+ /* This is passed in memory. First align to the basic type. */
-+ cif->bytes = ALIGN(cif->bytes, cif->arg_types[i]->alignment);
-+
-+ /* Stack arguments are *always* at least 8 byte aligned. */
-+ cif->bytes = ALIGN(cif->bytes, 8);
-+
-+ /* Now add the size of this argument. */
-+ cif->bytes += cif->arg_types[i]->size;
-+ }
-+ else
-+ {
-+ gprcount += g;
-+ ssecount += s;
-+ }
-+ }
-+
-+ /* Set the flag for the closures return. */
-+ switch (cif->rtype->type)
-+ {
-+ case FFI_TYPE_VOID:
-+ case FFI_TYPE_STRUCT:
-+ case FFI_TYPE_SINT64:
-+ case FFI_TYPE_FLOAT:
-+ case FFI_TYPE_DOUBLE:
-+ case FFI_TYPE_LONGDOUBLE:
-+ cif->flags = (unsigned) cif->rtype->type;
-+ break;
-+
-+ case FFI_TYPE_UINT64:
-+ cif->flags = FFI_TYPE_SINT64;
-+ break;
-+
-+ default:
-+ cif->flags = FFI_TYPE_INT;
-+ break;
-+ }
-+
-+ return FFI_OK;
-+}
-+
-+typedef struct
-+{
-+ long gpr[2];
-+ __int128_t sse[2];
-+ long double st0;
-+} return_value;
-+
-+//#endif
-+
-+void
-+ffi_fill_return_value (return_value *rv, extended_cif *ecif)
-+{
-+ enum x86_64_reg_class classes[MAX_CLASSES];
-+ int i = 0, num;
-+ long *gpr = rv->gpr;
-+ __int128_t *sse = rv->sse;
-+ signed char sc;
-+ signed short ss;
-+
-+ /* This is needed because of the way x86-64 handles signed short
-+ integers. */
-+ switch (ecif->cif->rtype->type)
-+ {
-+ case FFI_TYPE_SINT8:
-+ sc = *(signed char *)gpr;
-+ *(long long *)ecif->rvalue = (long long)sc;
-+ return;
-+ case FFI_TYPE_SINT16:
-+ ss = *(signed short *)gpr;
-+ *(long long *)ecif->rvalue = (long long)ss;
-+ return;
-+ default:
-+ /* Just continue. */
-+ ;
-+ }
-+
-+ num = classify_argument (ecif->cif->rtype, classes, &i);
-+
-+ if (num == 0)
-+ /* Return in memory. */
-+ ecif->rvalue = (void *) rv->gpr[0];
-+ else if (num == 2 && classes[0] == X86_64_X87_CLASS &&
-+ classes[1] == X86_64_X87UP_CLASS)
-+ /* This is a long double (this is easiest to handle this way instead
-+ of an eightbyte at a time as in the loop below. */
-+ *((long double *)ecif->rvalue) = rv->st0;
-+ else
-+ {
-+ void *a;
-+
-+ for (i=0, a=ecif->rvalue; i<num; i++, a+=8)
-+ {
-+ switch (classes[i])
-+ {
-+ case X86_64_INTEGER_CLASS:
-+ case X86_64_INTEGERSI_CLASS:
-+ *(long long *)a = *gpr;
-+ gpr++;
-+ break;
-+ case X86_64_SSE_CLASS:
-+ sse2floatfloat (sse++, a);
-+ break;
-+ case X86_64_SSESF_CLASS:
-+ *(float *)a = sse2float (sse++);
-+ break;
-+ case X86_64_SSEDF_CLASS:
-+ *(double *)a = sse2double (sse++);
-+ break;
-+ default:
-+ abort();
-+ }
-+ }
-+ }
-+}
-+
-+//#if 0
-+
-+/*@-declundef@*/
-+/*@-exportheader@*/
-+extern void ffi_call_UNIX64(void (*)(stackLayout *, extended_cif *),
-+ void (*) (return_value *, extended_cif *),
-+ /*@out@*/ extended_cif *,
-+ unsigned, /*@out@*/ unsigned *, void (*fn)());
-+/*@=declundef@*/
-+/*@=exportheader@*/
-+
-+void ffi_call(/*@dependent@*/ ffi_cif *cif,
-+ void (*fn)(),
-+ /*@out@*/ void *rvalue,
-+ /*@dependent@*/ void **avalue)
-+{
-+ extended_cif ecif;
-+ int dummy;
-+
-+ ecif.cif = cif;
-+ ecif.avalue = avalue;
-+
-+ /* If the return value is a struct and we don't have a return */
-+ /* value address then we need to make one */
-+
-+ if ((rvalue == NULL) &&
-+ (examine_argument (cif->rtype, 1, &dummy, &dummy) == 0))
-+ {
-+ /*@-sysunrecog@*/
-+ ecif.rvalue = alloca(cif->rtype->size);
-+ /*@=sysunrecog@*/
-+ }
-+ else
-+ ecif.rvalue = rvalue;
-+
-+ /* Stack must always be 16byte aligned. Make it so. */
-+ cif->bytes = ALIGN(cif->bytes, 16);
-+
-+ switch (cif->abi)
-+ {
-+ case FFI_SYSV:
-+ /* Calling 32bit code from 64bit is not possible */
-+ FFI_ASSERT(0);
-+ break;
-+
-+ case FFI_UNIX64:
-+ /*@-usedef@*/
-+ ffi_call_UNIX64 (ffi_prep_args, ffi_fill_return_value, &ecif,
-+ cif->bytes, ecif.rvalue, fn);
-+ /*@=usedef@*/
-+ break;
-+
-+ default:
-+ FFI_ASSERT(0);
-+ break;
-+ }
-+}
-+
-+extern void ffi_closure_UNIX64(void);
-+
-+ffi_status
-+ffi_prep_closure (ffi_closure* closure,
-+ ffi_cif* cif,
-+ void (*fun)(ffi_cif*, void*, void**, void*),
-+ void *user_data)
-+{
-+ volatile unsigned short *tramp;
-+
-+ /* FFI_ASSERT (cif->abi == FFI_OSF); */
-+
-+ tramp = (volatile unsigned short *) &closure->tramp[0];
-+ tramp[0] = 0xbb49; /* mov <code>, %r11 */
-+ tramp[5] = 0xba49; /* mov <data>, %r10 */
-+ tramp[10] = 0xff49; /* jmp *%r11 */
-+ tramp[11] = 0x00e3;
-+ *(void * volatile *) &tramp[1] = ffi_closure_UNIX64;
-+ *(void * volatile *) &tramp[6] = closure;
-+
-+ closure->cif = cif;
-+ closure->fun = fun;
-+ closure->user_data = user_data;
-+
-+ return FFI_OK;
-+}
-+
-+int
-+ffi_closure_UNIX64_inner(ffi_closure *closure, va_list l, void *rp)
-+{
-+ ffi_cif *cif;
-+ void **avalue;
-+ ffi_type **arg_types;
-+ long i, avn, argn;
-+
-+ cif = closure->cif;
-+ avalue = alloca(cif->nargs * sizeof(void *));
-+
-+ argn = 0;
-+
-+ i = 0;
-+ avn = cif->nargs;
-+ arg_types = cif->arg_types;
-+
-+ /* Grab the addresses of the arguments from the stack frame. */
-+ while (i < avn)
-+ {
-+ switch (arg_types[i]->type)
-+ {
-+ case FFI_TYPE_SINT8:
-+ case FFI_TYPE_UINT8:
-+ case FFI_TYPE_SINT16:
-+ case FFI_TYPE_UINT16:
-+ case FFI_TYPE_SINT32:
-+ case FFI_TYPE_UINT32:
-+ case FFI_TYPE_SINT64:
-+ case FFI_TYPE_UINT64:
-+ case FFI_TYPE_POINTER:
-+ {
-+ if (l->gp_offset > 48-8)
-+ {
-+ avalue[i] = l->overflow_arg_area;
-+ l->overflow_arg_area = (char *)l->overflow_arg_area + 8;
-+ }
-+ else
-+ {
-+ avalue[i] = (char *)l->reg_save_area + l->gp_offset;
-+ l->gp_offset += 8;
-+ }
-+ }
-+ break;
-+
-+ case FFI_TYPE_STRUCT:
-+ /* FIXME */
-+ FFI_ASSERT(0);
-+ break;
-+
-+ case FFI_TYPE_DOUBLE:
-+ {
-+ if (l->fp_offset > 176-16)
-+ {
-+ avalue[i] = l->overflow_arg_area;
-+ l->overflow_arg_area = (char *)l->overflow_arg_area + 8;
-+ }
-+ else
-+ {
-+ avalue[i] = (char *)l->reg_save_area + l->fp_offset;
-+ l->fp_offset += 16;
-+ }
-+ }
-+#if DEBUG_FFI
-+ fprintf (stderr, "double arg %d = %g\n", i, *(double *)avalue[i]);
-+#endif
-+ break;
-+
-+ case FFI_TYPE_FLOAT:
-+ {
-+ if (l->fp_offset > 176-16)
-+ {
-+ avalue[i] = l->overflow_arg_area;
-+ l->overflow_arg_area = (char *)l->overflow_arg_area + 8;
-+ }
-+ else
-+ {
-+ avalue[i] = (char *)l->reg_save_area + l->fp_offset;
-+ l->fp_offset += 16;
-+ }
-+ }
-+#if DEBUG_FFI
-+ fprintf (stderr, "float arg %d = %g\n", i, *(float *)avalue[i]);
-+#endif
-+ break;
-+
-+ default:
-+ FFI_ASSERT(0);
-+ }
-+
-+ argn += ALIGN(arg_types[i]->size, SIZEOF_ARG) / SIZEOF_ARG;
-+ i++;
-+ }
-+
-+ /* Invoke the closure. */
-+ (closure->fun) (cif, rp, avalue, closure->user_data);
-+
-+ /* FIXME: Structs not supported. */
-+ FFI_ASSERT(cif->rtype->type != FFI_TYPE_STRUCT);
-+
-+ /* Tell ffi_closure_UNIX64 how to perform return type promotions. */
-+
-+ return cif->rtype->type;
-+}
-+
-+#endif
-+
-+} // namespace x86_64
-diff -purN bridges.orig/source/cpp_uno/gcc3_linux_x86-64/abi.hxx bridges/source/cpp_uno/gcc3_linux_x86-64/abi.hxx
---- bridges.orig/source/cpp_uno/gcc3_linux_x86-64/abi.hxx 1970-01-01 01:00:00.000000000 +0100
-+++ bridges/source/cpp_uno/gcc3_linux_x86-64/abi.hxx 2005-05-31 14:51:03.000000000 +0200
-@@ -0,0 +1,82 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Novell, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Jan Holesovsky <kendy@suse.cz>
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _BRIDGES_CPP_UNO_X86_64_ABI_HXX_
-+#define _BRIDGES_CPP_UNO_X86_64_ABI_HXX_
-+
-+// This is an implementation of the x86-64 ABI as described in System V
-+// Application Binary Interface, AMD64 Architecture Processor Supplement
-+// (http://www.x86-64.org/documentation/abi-0.95.pdf)
-+
-+namespace x86_64
-+{
-+
-+/** Does a function that returns this type use a hidden parameter or registers?
-+
-+ The value can be returned either in a hidden 1st parameter (which is a
-+ pointer to a structure allocated by the caller), or in registers (rax, rdx
-+ for the integers, xmm0, xmm1 for the floating point numbers).
-+*/
-+bool returnInHiddenParam( typelib_TypeDescriptionReference *pTypeRef );
-+
-+} // namespace x86_64
-+
-+#endif // _BRIDGES_CPP_UNO_X86_64_ABI_HXX_
-diff -purN bridges.orig/source/cpp_uno/gcc3_linux_x86-64/call.s bridges/source/cpp_uno/gcc3_linux_x86-64/call.s
---- bridges.orig/source/cpp_uno/gcc3_linux_x86-64/call.s 2005-05-20 18:25:52.000000000 +0200
-+++ bridges/source/cpp_uno/gcc3_linux_x86-64/call.s 2005-05-31 15:09:58.000000000 +0200
-@@ -10,7 +10,7 @@ privateSnippetExecutor:
- .LCFI1:
- subq $160, %rsp
- .LCFI2:
-- movq %r11, -152(%rbp) # Save (nVtableOffset << 32) + nFunctionIndex
-+ movq %r10, -152(%rbp) # Save (nVtableOffset << 32) + nFunctionIndex
-
- movq %rdi, -112(%rbp) # Save GP registers
- movq %rsi, -104(%rbp)
-@@ -37,9 +37,9 @@ privateSnippetExecutor:
-
- call cpp_vtable_call
-
-- cmp $10, %rax # typelib_TypeClass_FLOAT
-+ cmp $10, %rax # typelib_TypeClass_FLOAT
- je .Lfloat
-- cmp $11, %rax # typelib_TypeClass_DOUBLE
-+ cmp $11, %rax # typelib_TypeClass_DOUBLE
- je .Lfloat
-
- movq -144(%rbp), %rax # Return value (int case)
-diff -purN bridges.orig/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx bridges/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx
---- bridges.orig/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx 2005-05-20 18:25:52.000000000 +0200
-+++ bridges/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx 2005-06-03 11:33:00.000000000 +0200
-@@ -76,6 +76,7 @@
- #include "bridges/cpp_uno/shared/types.hxx"
- #include "bridges/cpp_uno/shared/vtablefactory.hxx"
-
-+#include "abi.hxx"
- #include "share.hxx"
-
- using namespace ::osl;
-@@ -116,13 +117,9 @@ static typelib_TypeClass cpp2uno_call(
- void * pUnoReturn = 0;
- void * pCppReturn = 0; // complex return ptr: if != 0 && != pUnoReturn, reconversion need
-
-- if (pReturnTypeDescr)
-+ if ( pReturnTypeDescr )
- {
-- if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
-- {
-- pUnoReturn = pRegisterReturn; // direct way for simple types
-- }
-- else // complex return via ptr (pCppReturn)
-+ if ( x86_64::returnInHiddenParam( pReturnTypeRef ) )
- {
- pCppReturn = *(void **)gpreg;
- gpreg++;
-@@ -132,6 +129,8 @@ static typelib_TypeClass cpp2uno_call(
- ? alloca( pReturnTypeDescr->nSize )
- : pCppReturn); // direct way
- }
-+ else
-+ pUnoReturn = pRegisterReturn; // direct way for simple types
- }
- // pop this
- gpreg++;
-@@ -322,9 +321,10 @@ extern "C" typelib_TypeClass cpp_vtable_
- pThis = gpreg[1];
- }
- else
-+ {
- pThis = gpreg[0];
--
-- pThis = static_cast< char * >( pThis ) - nVtableOffset;
-+ }
-+ pThis = static_cast<char *>( pThis ) - nVtableOffset;
-
- bridges::cpp_uno::shared::CppInterfaceProxy * pCppI =
- bridges::cpp_uno::shared::CppInterfaceProxy::castInterfaceToProxy( pThis );
-@@ -332,107 +332,110 @@ extern "C" typelib_TypeClass cpp_vtable_
- typelib_InterfaceTypeDescription * pTypeDescr = pCppI->getTypeDescr();
-
- OSL_ENSURE( nFunctionIndex < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!\n" );
-- if (nFunctionIndex >= pTypeDescr->nMapFunctionIndexToMemberIndex)
-+ if ( nFunctionIndex >= pTypeDescr->nMapFunctionIndexToMemberIndex )
- {
-- throw RuntimeException(
-- OUString::createFromAscii("illegal vtable index!"),
-- (XInterface *)pCppI );
-+ throw RuntimeException( OUString::createFromAscii("illegal vtable index!"),
-+ reinterpret_cast<XInterface *>( pCppI ) );
- }
--
-+
- // determine called method
-- OSL_ENSURE( nFunctionIndex < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!\n" );
- sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nFunctionIndex];
- OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### illegal member index!\n" );
-
- TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
--
-+
- typelib_TypeClass eRet;
- switch (aMemberDescr.get()->eTypeClass)
- {
-- case typelib_TypeClass_INTERFACE_ATTRIBUTE:
-- {
-- if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex)
-+ case typelib_TypeClass_INTERFACE_ATTRIBUTE:
- {
-- // is GET method
-- eRet = cpp2uno_call(
-- pCppI, aMemberDescr.get(),
-- ((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef,
-- 0, 0, // no params
-- gpreg, fpreg, ovrflw, pRegisterReturn );
-+ typelib_TypeDescriptionReference *pAttrTypeRef =
-+ reinterpret_cast<typelib_InterfaceAttributeTypeDescription *>( aMemberDescr.get() )->pAttributeTypeRef;
-+
-+ if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex)
-+ {
-+ // is GET method
-+ eRet = cpp2uno_call( pCppI, aMemberDescr.get(), pAttrTypeRef,
-+ 0, 0, // no params
-+ gpreg, fpreg, ovrflw, pRegisterReturn );
-+ }
-+ else
-+ {
-+ // is SET method
-+ typelib_MethodParameter aParam;
-+ aParam.pTypeRef = pAttrTypeRef;
-+ aParam.bIn = sal_True;
-+ aParam.bOut = sal_False;
-+
-+ eRet = cpp2uno_call( pCppI, aMemberDescr.get(),
-+ 0, // indicates void return
-+ 1, &aParam,
-+ gpreg, fpreg, ovrflw, pRegisterReturn );
-+ }
-+ break;
- }
-- else
-+ case typelib_TypeClass_INTERFACE_METHOD:
- {
-- // is SET method
-- typelib_MethodParameter aParam;
-- aParam.pTypeRef =
-- ((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef;
-- aParam.bIn = sal_True;
-- aParam.bOut = sal_False;
--
-- eRet = cpp2uno_call(
-- pCppI, aMemberDescr.get(),
-- 0, // indicates void return
-- 1, &aParam,
-- gpreg, fpreg, ovrflw, pRegisterReturn );
-+ // is METHOD
-+ switch ( nFunctionIndex )
-+ {
-+ case 1: // acquire()
-+ pCppI->acquireProxy(); // non virtual call!
-+ eRet = typelib_TypeClass_VOID;
-+ break;
-+ case 2: // release()
-+ pCppI->releaseProxy(); // non virtual call!
-+ eRet = typelib_TypeClass_VOID;
-+ break;
-+ case 0: // queryInterface() opt
-+ {
-+ typelib_TypeDescription * pTD = 0;
-+ TYPELIB_DANGER_GET( &pTD, reinterpret_cast<Type *>( gpreg[2] )->getTypeLibType() );
-+ if ( pTD )
-+ {
-+ XInterface * pInterface = 0;
-+ (*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)
-+ ( pCppI->getBridge()->getCppEnv(),
-+ (void **)&pInterface,
-+ pCppI->getOid().pData,
-+ reinterpret_cast<typelib_InterfaceTypeDescription *>( pTD ) );
-+
-+ if (pInterface)
-+ {
-+ ::uno_any_construct( reinterpret_cast<uno_Any *>( gpreg[0] ),
-+ &pInterface, pTD, cpp_acquire );
-+
-+ pInterface->release();
-+ TYPELIB_DANGER_RELEASE( pTD );
-+
-+ *(void **)pRegisterReturn = gpreg[0];
-+ eRet = typelib_TypeClass_ANY;
-+ break;
-+ }
-+ TYPELIB_DANGER_RELEASE( pTD );
-+ }
-+ } // else perform queryInterface()
-+ default:
-+ {
-+ typelib_InterfaceMethodTypeDescription *pMethodTD =
-+ reinterpret_cast<typelib_InterfaceMethodTypeDescription *>( aMemberDescr.get() );
-+
-+ eRet = cpp2uno_call( pCppI, aMemberDescr.get(),
-+ pMethodTD->pReturnTypeRef,
-+ pMethodTD->nParams,
-+ pMethodTD->pParams,
-+ gpreg, fpreg, ovrflw, pRegisterReturn );
-+ }
-+ }
-+ break;
- }
-- break;
-- }
-- case typelib_TypeClass_INTERFACE_METHOD:
-- {
-- // is METHOD
-- switch (nFunctionIndex)
-+ default:
- {
-- case 1: // acquire()
-- pCppI->acquireProxy(); // non virtual call!
-+ throw RuntimeException( OUString::createFromAscii("no member description found!"),
-+ reinterpret_cast<XInterface *>( pCppI ) );
-+ // is here for dummy
- eRet = typelib_TypeClass_VOID;
-- break;
-- case 2: // release()
-- pCppI->releaseProxy(); // non virtual call!
-- eRet = typelib_TypeClass_VOID;
-- break;
-- case 0: // queryInterface() opt
-- {
-- typelib_TypeDescription * pTD = 0;
-- TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( gpreg[2] )->getTypeLibType() );
-- if (pTD)
-- {
-- XInterface * pInterface = 0;
-- (*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)(
-- pCppI->getBridge()->getCppEnv(),
-- (void **)&pInterface, pCppI->getOid().pData, (typelib_InterfaceTypeDescription *)pTD );
--
-- if (pInterface)
-- {
-- ::uno_any_construct(
-- reinterpret_cast< uno_Any * >( gpreg[0] ),
-- &pInterface, pTD, cpp_acquire );
-- pInterface->release();
-- TYPELIB_DANGER_RELEASE( pTD );
-- *(void **)pRegisterReturn = gpreg[0];
-- eRet = typelib_TypeClass_ANY;
-- break;
-- }
-- TYPELIB_DANGER_RELEASE( pTD );
-- }
-- } // else perform queryInterface()
-- default:
-- eRet = cpp2uno_call(
-- pCppI, aMemberDescr.get(),
-- ((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pReturnTypeRef,
-- ((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->nParams,
-- ((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pParams,
-- gpreg, fpreg, ovrflw, pRegisterReturn );
- }
-- break;
-- }
-- default:
-- {
-- throw RuntimeException(
-- OUString::createFromAscii("no member description found!"),
-- (XInterface *)pCppI );
-- // is here for dummy
-- eRet = typelib_TypeClass_VOID;
-- }
- }
-
- return eRet;
-@@ -441,9 +444,10 @@ extern "C" typelib_TypeClass cpp_vtable_
- //==================================================================================================
- extern "C" void privateSnippetExecutor( ... );
-
--const int codeSnippetSize = 23;
-+const int codeSnippetSize = 24;
-
--// Generate a piece of code that jumps to privateSnippetExecutor().
-+// Generate a trampoline that redirects method calls to
-+// privateSnippetExecutor().
- //
- // privateSnippetExecutor() saves all the registers that are used for
- // parameter passing on x86_64, and calls the cpp_vtable_call().
-@@ -454,33 +458,23 @@ const int codeSnippetSize = 23;
- // unwinding info.
- unsigned char * codeSnippet( unsigned char * code,
- sal_Int32 nFunctionIndex, sal_Int32 nVtableOffset,
-- bool simple_ret_type ) SAL_THROW( () )
-+ bool bHasHiddenParam ) SAL_THROW( () )
- {
- sal_uInt64 nOffsetAndIndex = ( ( (sal_uInt64) nVtableOffset ) << 32 ) | ( (sal_uInt64) nFunctionIndex );
-
-- if ( ! simple_ret_type )
-+ if ( bHasHiddenParam )
- nOffsetAndIndex |= 0x80000000;
-
-- unsigned char * p = code;
-+ // movq $<nOffsetAndIndex>, %r10
-+ *reinterpret_cast<sal_uInt16 *>( code ) = 0xba49;
-+ *reinterpret_cast<sal_uInt64 *>( code + 2 ) = nOffsetAndIndex;
-+
-+ // movq $<address of the privateSnippetExecutor>, %r11
-+ *reinterpret_cast<sal_uInt16 *>( code + 10 ) = 0xbb49;
-+ *reinterpret_cast<sal_uInt64 *>( code + 12 ) = reinterpret_cast<sal_uInt64>( privateSnippetExecutor );
-
-- // movq $<nOffsetAndIndex>, %r11
-- *p++ = 0x49;
-- *p++ = 0xbb;
-- *reinterpret_cast< sal_uInt64 * >( p ) = nOffsetAndIndex;
-- p += sizeof( sal_uInt64 );
--
-- // movq $<address of the privateSnippetExecutor>, %r10
-- *p++ = 0x49;
-- *p++ = 0xba;
-- *reinterpret_cast< sal_uInt64 * >( p ) = reinterpret_cast< sal_uInt64 >( privateSnippetExecutor );
-- p += sizeof( sal_uInt64 );
--
-- // jmpq *%r10
-- *p++ = 0x49;
-- *p++ = 0xff;
-- *p++ = 0xe2;
--
-- OSL_ASSERT( p - code <= codeSnippetSize );
-+ // jmpq *%r11
-+ *reinterpret_cast<sal_uInt32 *>( code + 20 ) = 0x00e3ff49;
-
- return code + codeSnippetSize;
- }
-@@ -488,21 +482,24 @@ unsigned char * codeSnippet( unsigned ch
- //==================================================================================================
- void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable( char * block )
- {
-- return reinterpret_cast< void ** >(block) + 2;
-+ return reinterpret_cast<void **>( block ) + 2;
- }
-
- //==================================================================================================
- char * bridges::cpp_uno::shared::VtableFactory::createBlock(
- sal_Int32 slotCount, void *** slots)
- {
-- char * block = new char[ (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize ];
-- *slots = mapBlockToVtable(block);
-+ char * block = new char[ ( slotCount + 2 ) * sizeof( void * ) + slotCount * codeSnippetSize ];
-+
-+ *slots = mapBlockToVtable( block );
- (*slots)[-2] = 0;
- (*slots)[-1] = 0;
-+
- return block;
- }
-
- //==================================================================================================
-+
- unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
- void ** slots, unsigned char * code,
- typelib_InterfaceTypeDescription const * type, sal_Int32 nFunctionOffset,
-@@ -511,31 +508,38 @@ unsigned char * bridges::cpp_uno::shared
- for ( sal_Int32 nPos = 0; nPos < type->nMembers; ++nPos )
- {
- typelib_TypeDescription * pTD = 0;
-+
- TYPELIB_DANGER_GET( &pTD, type->ppMembers[ nPos ] );
- OSL_ASSERT( pTD );
-- if (typelib_TypeClass_INTERFACE_ATTRIBUTE == pTD->eTypeClass)
-+
-+ if ( typelib_TypeClass_INTERFACE_ATTRIBUTE == pTD->eTypeClass )
- {
-- bool simple_ret = bridges::cpp_uno::shared::isSimpleType(
-- ((typelib_InterfaceAttributeTypeDescription *)pTD)->pAttributeTypeRef->eTypeClass );
-+ typelib_InterfaceAttributeTypeDescription *pAttrTD =
-+ reinterpret_cast<typelib_InterfaceAttributeTypeDescription *>( pTD );
-+
- // get method
- *slots++ = code;
-- code = codeSnippet( code, nFunctionOffset++, nVtableOffset, simple_ret );
-- if (! ((typelib_InterfaceAttributeTypeDescription *)pTD)->bReadOnly)
-+ code = codeSnippet( code, nFunctionOffset++, nVtableOffset,
-+ x86_64::returnInHiddenParam( pAttrTD->pAttributeTypeRef ) );
-+
-+ if ( ! pAttrTD->bReadOnly )
- {
- // set method
- *slots++ = code;
-- code = codeSnippet( code, nFunctionOffset++, nVtableOffset, true );
-+ code = codeSnippet( code, nFunctionOffset++, nVtableOffset, false );
- }
- }
-- else if (typelib_TypeClass_INTERFACE_METHOD == pTD->eTypeClass)
-+ else if ( typelib_TypeClass_INTERFACE_METHOD == pTD->eTypeClass )
- {
-- bool simple_ret = bridges::cpp_uno::shared::isSimpleType(
-- ((typelib_InterfaceMethodTypeDescription *)pTD)->pReturnTypeRef->eTypeClass );
-+ typelib_InterfaceMethodTypeDescription *pMethodTD =
-+ reinterpret_cast<typelib_InterfaceMethodTypeDescription *>( pTD );
-+
- *slots++ = code;
-- code = codeSnippet( code, nFunctionOffset++, nVtableOffset, simple_ret );
-+ code = codeSnippet( code, nFunctionOffset++, nVtableOffset,
-+ x86_64::returnInHiddenParam( pMethodTD->pReturnTypeRef ) );
- }
- else
-- OSL_ASSERT(false);
-+ OSL_ASSERT( false );
-
- TYPELIB_DANGER_RELEASE( pTD );
- }
-diff -purN bridges.orig/source/cpp_uno/gcc3_linux_x86-64/makefile.mk bridges/source/cpp_uno/gcc3_linux_x86-64/makefile.mk
---- bridges.orig/source/cpp_uno/gcc3_linux_x86-64/makefile.mk 2005-05-20 18:25:52.000000000 +0200
-+++ bridges/source/cpp_uno/gcc3_linux_x86-64/makefile.mk 2005-05-31 10:00:53.000000000 +0200
-@@ -89,6 +89,7 @@ NOOPTFILES= \
- CFLAGSNOOPT=-O0
-
- SLOFILES= \
-+ $(SLO)$/abi.obj \
- $(SLO)$/except.obj \
- $(SLO)$/cpp2uno.obj \
- $(SLO)$/uno2cpp.obj \
-diff -purN bridges.orig/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx
---- bridges.orig/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx 2005-05-25 14:42:54.000000000 +0200
-+++ bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx 2005-05-31 18:46:12.000000000 +0200
-@@ -136,7 +136,7 @@ invoke_copy_to_stack(sal_uInt64 * pDS,
- {
- case 'D': // Double
- if (nr_fpr < FPR_COUNT)
-- pFPR[nr_fpr++] = (double)*pSV++;
-+ pFPR[nr_fpr++] = *reinterpret_cast<double *>( pSV++ );
- else
- *pDS++ = *pSV++;
- break;
-@@ -146,13 +146,9 @@ invoke_copy_to_stack(sal_uInt64 * pDS,
- // The value in %xmm register is already prepared to
- // be retrieved as a float. Therefore, we pass the
- // value verbatim, as a double without conversion.
-- pFPR[nr_fpr++] = *((double *)pSV);
-+ pFPR[nr_fpr++] = *reinterpret_cast<double *>( pSV++ );
- else
-- {
-- *((float *)pDS) = *((float *)pSV);
-- pDS++;
-- }
-- pSV++;
-+ *pDS++ = *reinterpret_cast<double *>( pSV++ );
- break;
-
- case 'H': // 64-bit Word
-@@ -164,26 +160,23 @@ invoke_copy_to_stack(sal_uInt64 * pDS,
-
- case 'I': // 32-bit Word
- if (nr_gpr < GPR_COUNT)
-- pGPR[nr_gpr++] = *((sal_uInt32 *)pSV);
-+ pGPR[nr_gpr++] = *reinterpret_cast<sal_uInt32 *>( pSV++ );
- else
-- *pDS++ = *((sal_uInt32 *)pSV);
-- pSV++;
-+ *pDS++ = *reinterpret_cast<sal_uInt32 *>( pSV++ );
- break;
-
- case 'S': // 16-bit Word
- if (nr_gpr < GPR_COUNT)
-- pGPR[nr_gpr++] = *((sal_uInt16 *)pSV);
-+ pGPR[nr_gpr++] = *reinterpret_cast<sal_uInt16 *>( pSV++ );
- else
-- *pDS++ = *((sal_uInt16 *)pSV);
-- pSV++;
-+ *pDS++ = *reinterpret_cast<sal_uInt16 *>( pSV++ );
- break;
-
- case 'B': // Byte
- if (nr_gpr < GPR_COUNT)
-- pGPR[nr_gpr++] = *((sal_uInt8 *)pSV);
-+ pGPR[nr_gpr++] = *reinterpret_cast<sal_uInt8 *>( pSV++ );
- else
-- *pDS++ = *((sal_uInt8 *)pSV);
-- pSV++;
-+ *pDS++ = *reinterpret_cast<sal_uInt8 *>( pSV++ );
- break;
-
- default: // Default, assume 64-bit values
-@@ -207,6 +200,8 @@ static void callVirtualMethod(void * pTh
- // Stack, if used, must be 16-bytes aligned
- if (nr_stack)
- nr_stack = (nr_stack + 1) & ~1;
-+
-+ bool bReturnsSimpleType = bridges::cpp_uno::shared::isSimpleType( eReturnType );
-
- #if OSL_DEBUG_LEVEL > 1
- // Let's figure out what is really going on here
-@@ -270,11 +265,16 @@ static void callVirtualMethod(void * pTh
- ARG_GPR(3);
- ARG_GPR(2);
- ARG_GPR(1);
-- case 1: a0 = (sal_uInt64) pThis;
-+ ARG_GPR(0);
- case 0:;
- #undef ARG_GPR
- }
-
-+ if ( bReturnsSimpleType )
-+ a0 = (sal_uInt64) pThis;
-+ else
-+ a1 = (sal_uInt64) pThis;
-+
- // Ensure that assignments to SSE registers won't be optimized away
- asm("" ::
- "x" (d0), "x" (d1), "x" (d2), "x" (d3),
-@@ -285,46 +285,34 @@ static void callVirtualMethod(void * pTh
- pMethod += 8 * nVtableIndex;
- pMethod = *((sal_uInt64 *)pMethod);
-
-- union ReturnValue {
-- struct {
-- sal_uInt64 a0;
-- sal_uInt64 a1;
-- } i;
-- struct {
-- double d0;
-- double d1;
-- } f;
-- };
--
-- ReturnValue retval = ((ReturnValue (*)(sal_uInt64, sal_uInt64, sal_uInt64,
-- sal_uInt64, sal_uInt64, sal_uInt64))
-- pMethod)(a0, a1, a2, a3, a4, a5);
-+ // Perform the call
-+ sal_uInt64 nRet = ( (sal_uInt64 (*)(...) ) pMethod )(a0, a1, a2, a3, a4, a5);
-
- switch (eReturnType)
- {
- case typelib_TypeClass_HYPER:
- case typelib_TypeClass_UNSIGNED_HYPER:
-- *((sal_uInt64 *)pRegisterReturn) = retval.i.a0;
-+ *reinterpret_cast<sal_uInt64 *>( pRegisterReturn ) = nRet;
- break;
- case typelib_TypeClass_LONG:
- case typelib_TypeClass_UNSIGNED_LONG:
- case typelib_TypeClass_ENUM:
-- *((sal_uInt32 *)pRegisterReturn) = (sal_uInt32)retval.i.a0;
-+ *reinterpret_cast<sal_uInt32 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt32*>( &nRet );
- break;
- case typelib_TypeClass_CHAR:
- case typelib_TypeClass_SHORT:
- case typelib_TypeClass_UNSIGNED_SHORT:
-- *((sal_uInt16 *)pRegisterReturn) = (sal_uInt16)retval.i.a0;
-+ *reinterpret_cast<sal_uInt16 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt16*>( &nRet );
- break;
- case typelib_TypeClass_BOOLEAN:
- case typelib_TypeClass_BYTE:
-- *((sal_uInt8 *)pRegisterReturn) = (sal_uInt8)retval.i.a0;
-+ *reinterpret_cast<sal_uInt8 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt8*>( &nRet );
- break;
- case typelib_TypeClass_FLOAT:
-- *((float *)pRegisterReturn) = (float)retval.f.d0;
-+ *reinterpret_cast<float *>( pRegisterReturn ) = *reinterpret_cast<float*>( &nRet );
- break;
- case typelib_TypeClass_DOUBLE:
-- *((double *)pRegisterReturn) = retval.f.d0;
-+ *reinterpret_cast<double *>( pRegisterReturn ) = *reinterpret_cast<double*>( &nRet );
- break;
- }
- }
-@@ -343,7 +331,7 @@ static void cpp_call(
- char * pCppStackStart = pCppStack;
-
- // We need to know parameter types for callVirtualMethod() so generate a signature string
-- char * pParamType = (char *)__builtin_alloca( nParams + 2 );
-+ char * pParamType = (char *)__builtin_alloca( nParams + 3 );
- char * pPT = pParamType;
-
- // Return
-@@ -363,7 +351,7 @@ static void cpp_call(
- {
- // complex return via ptr
- pCppReturn = *(void **)pCppStack = (bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )
-- ? alloca( pReturnTypeDescr->nSize )
-+ ? __builtin_alloca( pReturnTypeDescr->nSize )
- : pUnoReturn); // direct way
- *pPT++ = 'H';
- pCppStack += sizeof(void *);
-@@ -371,7 +359,8 @@ static void cpp_call(
- }
-
- // Push "this" pointer
-- *(void **)pCppStack = pThis->getCppI();
-+ void * pAdjustedThisPtr = reinterpret_cast< void ** >( pThis->getCppI() ) + aVtableSlot.offset;
-+ *(void **)pCppStack = pAdjustedThisPtr;
- *pPT++ = 'H';
- pCppStack += sizeof(void *);
-
-@@ -481,7 +470,7 @@ static void cpp_call(
- {
- OSL_ENSURE( !( (pCppStack - pCppStackStart ) & 7), "UNALIGNED STACK !!! (Please DO panic)" );
- callVirtualMethod(
-- pThis->getCppI(), aVtableSlot.index,
-+ pAdjustedThisPtr, aVtableSlot.index,
- pCppReturn, pReturnTypeDescr->eTypeClass, pParamType,
- (sal_uInt64 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_uInt64) );
- // NO exception occured...
diff --git a/patches/64bit/fix-64bit-bridges-3.diff b/patches/64bit/fix-64bit-bridges-3.diff
deleted file mode 100644
index 20e3f7137..000000000
--- a/patches/64bit/fix-64bit-bridges-3.diff
+++ /dev/null
@@ -1,587 +0,0 @@
-diff -purN bridges.orig/source/cpp_uno/gcc3_linux_x86-64/abi.cxx bridges/source/cpp_uno/gcc3_linux_x86-64/abi.cxx
---- bridges.orig/source/cpp_uno/gcc3_linux_x86-64/abi.cxx 2005-06-28 11:18:28.000000000 +0200
-+++ bridges/source/cpp_uno/gcc3_linux_x86-64/abi.cxx 2005-06-30 17:10:54.000000000 +0200
-@@ -91,14 +91,11 @@
- OTHER DEALINGS IN THE SOFTWARE.
- ----------------------------------------------------------------------- */
-
--#include <typelib/typedescription.hxx>
--#include <rtl/ustring.hxx>
-+#include <abi.hxx>
-
--namespace x86_64
--{
-+#include <rtl/ustring.hxx>
-
--#define MAX_GPR_REGS 6
--#define MAX_SSE_REGS 8
-+using namespace x86_64;
-
- typedef struct
- {
-@@ -237,21 +234,24 @@ classify_argument( typelib_TypeDescripti
- case typelib_TypeClass_STRUCT:
- case typelib_TypeClass_EXCEPTION:
- {
-- if ( !pTypeRef->pType->bComplete )
-- typelib_typedescription_complete( &(pTypeRef->pType) );
-+ typelib_TypeDescription * pTypeDescr = 0;
-+ TYPELIB_DANGER_GET( &pTypeDescr, pTypeRef );
-
- const int UNITS_PER_WORD = 8;
-- int words = ( pTypeRef->pType->nSize + UNITS_PER_WORD - 1 ) / UNITS_PER_WORD;
-+ int words = ( pTypeDescr->nSize + UNITS_PER_WORD - 1 ) / UNITS_PER_WORD;
- enum x86_64_reg_class subclasses[MAX_CLASSES];
-
- /* If the struct is larger than 16 bytes, pass it on the stack. */
-- if ( pTypeRef->pType->nSize > 16 )
-+ if ( pTypeDescr->nSize > 16 )
-+ {
-+ TYPELIB_DANGER_RELEASE( pTypeDescr );
- return 0;
-+ }
-
- for ( int i = 0; i < words; i++ )
- classes[i] = X86_64_NO_CLASS;
-
-- const typelib_CompoundTypeDescription *pStruct = reinterpret_cast<const typelib_CompoundTypeDescription*>( pTypeRef->pType );
-+ const typelib_CompoundTypeDescription *pStruct = reinterpret_cast<const typelib_CompoundTypeDescription*>( pTypeDescr );
-
- /* Merge the fields of structure. */
- for ( sal_Int32 nMember = 0; nMember < pStruct->nMembers; ++nMember )
-@@ -261,7 +261,10 @@ classify_argument( typelib_TypeDescripti
- int num = classify_argument( pTypeInStruct, subclasses, rByteOffset );
-
- if ( num == 0 )
-+ {
-+ TYPELIB_DANGER_RELEASE( pTypeDescr );
- return 0;
-+ }
-
- for ( int i = 0; i < num; i++ )
- {
-@@ -273,6 +276,8 @@ classify_argument( typelib_TypeDescripti
- rByteOffset = pStruct->pMemberOffsets[ nMember ];
- }
-
-+ TYPELIB_DANGER_RELEASE( pTypeDescr );
-+
- /* Final merger cleanup. */
- for ( int i = 0; i < words; i++ )
- {
-@@ -304,56 +309,79 @@ classify_argument( typelib_TypeDescripti
- return 0; /* Never reached. */
- }
-
--#if 0
- /* Examine the argument and return set number of register required in each
- class. Return 0 iff parameter should be passed in memory. */
--static int
--examine_argument( const pTypelib_TypeDescription *pType, int in_return, int *int_nregs, int *sse_nregs )
-+bool x86_64::examine_argument( typelib_TypeDescriptionReference *pTypeRef, bool bInReturn, int &nUsedGPR, int &nUsedSSE )
- {
- enum x86_64_reg_class classes[MAX_CLASSES];
- int offset = 0;
- int n;
-
-- n = classify_argument( pType, classes, &offset );
-+ n = classify_argument( pTypeRef, classes, offset );
-
-- if (n == 0)
-- return 0;
-+ if ( n == 0 )
-+ return false;
-
-- *int_nregs = 0;
-- *sse_nregs = 0;
-- for (n--; n>=0; n--)
-- switch (classes[n])
-+ nUsedGPR = 0;
-+ nUsedSSE = 0;
-+ for ( n--; n >= 0; n-- )
-+ switch ( classes[n] )
- {
- case X86_64_INTEGER_CLASS:
- case X86_64_INTEGERSI_CLASS:
-- (*int_nregs)++;
-+ nUsedGPR++;
- break;
- case X86_64_SSE_CLASS:
- case X86_64_SSESF_CLASS:
- case X86_64_SSEDF_CLASS:
-- (*sse_nregs)++;
-+ nUsedSSE++;
- break;
- case X86_64_NO_CLASS:
- case X86_64_SSEUP_CLASS:
- break;
- case X86_64_X87_CLASS:
- case X86_64_X87UP_CLASS:
-- if (!in_return)
-- return 0;
-+ if ( !bInReturn )
-+ return false;
- break;
- default:
-- abort ();
-+#if OSL_DEBUG_LEVEL > 1
-+ fprintf( stderr, "Unhandled case: classes[n] == %d\n", classes[n] );
-+#endif
-+ OSL_ASSERT(0);
- }
-- return 1;
-+ return true;
-+}
-+
-+bool x86_64::return_in_hidden_param( typelib_TypeDescriptionReference *pTypeRef )
-+{
-+ int g, s;
-+
-+ return examine_argument( pTypeRef, true, g, s ) == 0;
- }
--#endif
-
--bool returnInHiddenParam( typelib_TypeDescriptionReference *pTypeRef )
-+void x86_64::fill_struct( typelib_TypeDescriptionReference *pTypeRef, void * const *pGPR, void * const *pSSE, void *pStruct )
- {
- enum x86_64_reg_class classes[MAX_CLASSES];
-- int i = 0;
-+ int offset = 0;
-+ int n;
-+
-+ n = classify_argument( pTypeRef, classes, offset );
-
-- return classify_argument( pTypeRef, classes, i ) == 0;
-+ sal_uInt64 *pStructAlign = reinterpret_cast<sal_uInt64 *>( pStruct );
-+ for ( n--; n >= 0; n-- )
-+ switch ( classes[n] )
-+ {
-+ case X86_64_INTEGER_CLASS:
-+ case X86_64_INTEGERSI_CLASS:
-+ *pStructAlign++ = *reinterpret_cast<sal_uInt64 *>( *pGPR++ );
-+ break;
-+ case X86_64_SSE_CLASS:
-+ case X86_64_SSESF_CLASS:
-+ case X86_64_SSEDF_CLASS:
-+ *pStructAlign++ = *reinterpret_cast<sal_uInt64 *>( *pSSE++ );
-+ break;
-+ }
- }
-
- #if 0
-@@ -804,5 +832,3 @@ ffi_closure_UNIX64_inner(ffi_closure *cl
- }
-
- #endif
--
--} // namespace x86_64
-Files bridges.orig/source/cpp_uno/gcc3_linux_x86-64/.abi.cxx.swp and bridges/source/cpp_uno/gcc3_linux_x86-64/.abi.cxx.swp differ
-diff -purN bridges.orig/source/cpp_uno/gcc3_linux_x86-64/abi.hxx bridges/source/cpp_uno/gcc3_linux_x86-64/abi.hxx
---- bridges.orig/source/cpp_uno/gcc3_linux_x86-64/abi.hxx 2005-06-28 11:18:28.000000000 +0200
-+++ bridges/source/cpp_uno/gcc3_linux_x86-64/abi.hxx 2005-06-30 17:09:05.000000000 +0200
-@@ -66,16 +66,35 @@
- // Application Binary Interface, AMD64 Architecture Processor Supplement
- // (http://www.x86-64.org/documentation/abi-0.95.pdf)
-
-+#include <typelib/typedescription.hxx>
-+
- namespace x86_64
- {
-
--/** Does a function that returns this type use a hidden parameter or registers?
-+/* 6 general purpose registers are used for parameter passing */
-+const sal_uInt32 MAX_GPR_REGS = 6;
-+
-+/* 8 SSE registers are used for parameter passing */
-+const sal_uInt32 MAX_SSE_REGS = 8;
-+
-+/* Count number of required registers.
-+
-+ Examine the argument and return set number of register required in each
-+ class.
-+
-+ Return false iff parameter should be passed in memory.
-+*/
-+bool examine_argument( typelib_TypeDescriptionReference *pTypeRef, bool bInReturn, int &nUsedGPR, int &nUsedSSE );
-+
-+/** Does function that returns this type use a hidden parameter, or registers?
-
- The value can be returned either in a hidden 1st parameter (which is a
- pointer to a structure allocated by the caller), or in registers (rax, rdx
- for the integers, xmm0, xmm1 for the floating point numbers).
- */
--bool returnInHiddenParam( typelib_TypeDescriptionReference *pTypeRef );
-+bool return_in_hidden_param( typelib_TypeDescriptionReference *pTypeRef );
-+
-+void fill_struct( typelib_TypeDescriptionReference *pTypeRef, void * const *pGPR, void * const *pSSE, void *pStruct );
-
- } // namespace x86_64
-
-Files bridges.orig/source/cpp_uno/gcc3_linux_x86-64/.abi.hxx.swp and bridges/source/cpp_uno/gcc3_linux_x86-64/.abi.hxx.swp differ
-Files bridges.orig/source/cpp_uno/gcc3_linux_x86-64/.call.s.swp and bridges/source/cpp_uno/gcc3_linux_x86-64/.call.s.swp differ
-diff -purN bridges.orig/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx bridges/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx
---- bridges.orig/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx 2005-06-28 11:18:28.000000000 +0200
-+++ bridges/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx 2005-06-30 17:13:33.000000000 +0200
-@@ -86,13 +86,20 @@ using namespace ::com::sun::star::uno;
- namespace
- {
-
--// 6 integral parameters are passed in registers
--const sal_uInt32 GPR_COUNT = 6;
--
--// 8 floating point parameters are passed in SSE registers
--const sal_uInt32 FPR_COUNT = 8;
--
- //==================================================================================================
-+
-+// Perform the UNO call
-+//
-+// We must convert the paramaters stored in gpreg, fpreg and ovrflw to UNO
-+// arguments and call pThis->getUnoI()->pDispatcher.
-+//
-+// gpreg: [ret *], this, [gpr params]
-+// fpreg: [fpr params]
-+// ovrflw: [gpr or fpr params (properly aligned)]
-+//
-+// [ret *] is present when we are returning a structure bigger than 16 bytes
-+// Simple types are returned in rax, rdx (int), or xmm0, xmm1 (fp).
-+// Similarly structures <= 16 bytes are in rax, rdx, xmm0, xmm1 as necessary.
- static typelib_TypeClass cpp2uno_call(
- bridges::cpp_uno::shared::CppInterfaceProxy * pThis,
- const typelib_TypeDescription * pMemberTypeDescr,
-@@ -103,12 +110,7 @@ static typelib_TypeClass cpp2uno_call(
- {
- int nr_gpr = 0; //number of gpr registers used
- int nr_fpr = 0; //number of fpr regsiters used
-- void ** pCppStack; //temporary stack pointer
-
-- // gpreg: [ret *], this, [gpr params]
-- // fpreg: [fpr params]
-- // ovrflw: [gpr or fpr params (properly aligned)]
--
- // return
- typelib_TypeDescription * pReturnTypeDescr = 0;
- if (pReturnTypeRef)
-@@ -119,19 +121,19 @@ static typelib_TypeClass cpp2uno_call(
-
- if ( pReturnTypeDescr )
- {
-- if ( x86_64::returnInHiddenParam( pReturnTypeRef ) )
-+ if ( x86_64::return_in_hidden_param( pReturnTypeRef ) )
- {
-- pCppReturn = *(void **)gpreg;
-- gpreg++;
-+ pCppReturn = *gpreg++;
- nr_gpr++;
-
-- pUnoReturn = (bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )
-- ? alloca( pReturnTypeDescr->nSize )
-- : pCppReturn); // direct way
-+ pUnoReturn = ( bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )
-+ ? alloca( pReturnTypeDescr->nSize )
-+ : pCppReturn ); // direct way
- }
- else
- pUnoReturn = pRegisterReturn; // direct way for simple types
- }
-+
- // pop this
- gpreg++;
- nr_gpr++;
-@@ -145,7 +147,7 @@ static typelib_TypeClass cpp2uno_call(
- // type descriptions for reconversions
- typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams));
-
-- sal_Int32 nTempIndizes = 0;
-+ sal_Int32 nTempIndizes = 0;
-
- for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos )
- {
-@@ -153,59 +155,69 @@ static typelib_TypeClass cpp2uno_call(
- typelib_TypeDescription * pParamTypeDescr = 0;
- TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
-
-- if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr )) // value
-+ int nUsedGPR = 0;
-+ int nUsedSSE = 0;
-+ bool bFitsRegisters = x86_64::examine_argument( rParam.pTypeRef, false, nUsedGPR, nUsedSSE );
-+ if ( !rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ) ) // value
- {
-- if (pParamTypeDescr->eTypeClass == typelib_TypeClass_FLOAT
-- || pParamTypeDescr->eTypeClass == typelib_TypeClass_DOUBLE)
-+ // Simple types must fit exactly one register on x86_64
-+ OSL_ASSERT( bFitsRegisters && ( ( nUsedSSE == 1 && nUsedGPR == 0 ) || ( nUsedSSE == 0 && nUsedGPR == 1 ) ) );
-+
-+ if ( nUsedSSE == 1 )
- {
-- if (nr_fpr < FPR_COUNT)
-- {
-- pCppArgs[nPos] = fpreg;
-- pUnoArgs[nPos] = fpreg;
-- nr_fpr++;
-- fpreg++;
-- }
-- else
-- {
-- pCppArgs[nPos] = ovrflw;
-- pUnoArgs[nPos] = ovrflw;
-- ovrflw++;
-- }
-+ if ( nr_fpr < x86_64::MAX_SSE_REGS )
-+ {
-+ pCppArgs[nPos] = pUnoArgs[nPos] = fpreg++;
-+ nr_fpr++;
-+ }
-+ else
-+ pCppArgs[nPos] = pUnoArgs[nPos] = ovrflw++;
- }
-- else
-+ else if ( nUsedGPR == 1 )
- {
-- if (nr_gpr < GPR_COUNT)
-+ if ( nr_gpr < x86_64::MAX_GPR_REGS )
- {
-- pCppArgs[nPos] = gpreg;
-- pUnoArgs[nPos] = gpreg;
-+ pCppArgs[nPos] = pUnoArgs[nPos] = gpreg++;
- nr_gpr++;
-- gpreg++;
- }
- else
-- {
-- pCppArgs[nPos] = ovrflw;
-- pUnoArgs[nPos] = ovrflw;
-- ovrflw++;
-- }
-+ pCppArgs[nPos] = pUnoArgs[nPos] = ovrflw++;
- }
-+
- // no longer needed
- TYPELIB_DANGER_RELEASE( pParamTypeDescr );
- }
-- else // ptr to complex value | ref
-+ else // struct <= 16 bytes || ptr to complex value || ref
- {
-- if (nr_gpr < GPR_COUNT)
-+ void *pCppStack;
-+ char pTmpStruct[16];
-+
-+ if ( bFitsRegisters && !rParam.bOut &&
-+ ( pParamTypeDescr->eTypeClass == typelib_TypeClass_STRUCT ||
-+ pParamTypeDescr->eTypeClass == typelib_TypeClass_EXCEPTION ) )
-+ {
-+ if ( ( nr_gpr + nUsedGPR <= x86_64::MAX_GPR_REGS ) && ( nr_fpr + nUsedSSE <= x86_64::MAX_SSE_REGS ) )
-+ {
-+ x86_64::fill_struct( rParam.pTypeRef, gpreg, fpreg, pTmpStruct );
-+#if OSL_DEBUG_LEVEL > 1
-+ fprintf( stderr, "nUsedGPR == %d, nUsedSSE == %d, pTmpStruct[0] == 0x%x, pTmpStruct[1] == 0x%x, **gpreg == 0x%lx\n",
-+ nUsedGPR, nUsedSSE, pTmpStruct[0], pTmpStruct[1], *(sal_uInt64*)*gpreg );
-+#endif
-+
-+ pCppArgs[nPos] = pCppStack = reinterpret_cast<void *>( pTmpStruct );
-+ gpreg += nUsedGPR;
-+ fpreg += nUsedSSE;
-+ }
-+ else
-+ pCppArgs[nPos] = pCppStack = *ovrflw++;
-+ }
-+ else if ( nr_gpr < x86_64::MAX_GPR_REGS )
- {
-- pCppArgs[nPos] = *(void **)gpreg;
-- pCppStack = gpreg;
-+ pCppArgs[nPos] = pCppStack = *gpreg++;
- nr_gpr++;
-- gpreg++;
- }
- else
-- {
-- pCppArgs[nPos] = *(void **)ovrflw;
-- pCppStack = ovrflw;
-- ovrflw++;
-- }
-+ pCppArgs[nPos] = pCppStack = *ovrflw++;
-
- if (! rParam.bIn) // is pure out
- {
-@@ -215,11 +227,10 @@ static typelib_TypeClass cpp2uno_call(
- // will be released at reconversion
- ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
- }
-- // is in/inout
-- else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
-+ else if ( bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ) ) // is in/inout
- {
- uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
-- *(void **)pCppStack, pParamTypeDescr,
-+ pCppStack, pParamTypeDescr,
- pThis->getBridge()->getCpp2Uno() );
- pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
- // will be released at reconversion
-@@ -227,7 +238,7 @@ static typelib_TypeClass cpp2uno_call(
- }
- else // direct way
- {
-- pUnoArgs[nPos] = *(void **)pCppStack;
-+ pUnoArgs[nPos] = pCppStack;
- // no longer needed
- TYPELIB_DANGER_RELEASE( pParamTypeDescr );
- }
-@@ -242,7 +253,7 @@ static typelib_TypeClass cpp2uno_call(
- (*pThis->getUnoI()->pDispatcher)( pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
-
- // in case an exception occured...
-- if (pUnoExc)
-+ if ( pUnoExc )
- {
- // destruct temporary in/inout params
- for ( ; nTempIndizes--; )
-@@ -268,7 +279,7 @@ static typelib_TypeClass cpp2uno_call(
- sal_Int32 nIndex = pTempIndizes[nTempIndizes];
- typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes];
-
-- if (pParams[nIndex].bOut) // inout/out
-+ if ( pParams[nIndex].bOut ) // inout/out
- {
- // convert and assign
- uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
-@@ -281,9 +292,9 @@ static typelib_TypeClass cpp2uno_call(
- TYPELIB_DANGER_RELEASE( pParamTypeDescr );
- }
- // return
-- if (pCppReturn) // has complex return
-+ if ( pCppReturn ) // has complex return
- {
-- if (pUnoReturn != pCppReturn) // needs reconversion
-+ if ( pUnoReturn != pCppReturn ) // needs reconversion
- {
- uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
- pThis->getBridge()->getUno2Cpp() );
-@@ -293,7 +304,7 @@ static typelib_TypeClass cpp2uno_call(
- // complex return ptr is set to return reg
- *(void **)pRegisterReturn = pCppReturn;
- }
-- if (pReturnTypeDescr)
-+ if ( pReturnTypeDescr )
- {
- typelib_TypeClass eRet = (typelib_TypeClass)pReturnTypeDescr->eTypeClass;
- TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
-@@ -345,14 +356,14 @@ extern "C" typelib_TypeClass cpp_vtable_
- TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
-
- typelib_TypeClass eRet;
-- switch (aMemberDescr.get()->eTypeClass)
-+ switch ( aMemberDescr.get()->eTypeClass )
- {
- case typelib_TypeClass_INTERFACE_ATTRIBUTE:
- {
- typelib_TypeDescriptionReference *pAttrTypeRef =
- reinterpret_cast<typelib_InterfaceAttributeTypeDescription *>( aMemberDescr.get() )->pAttributeTypeRef;
-
-- if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex)
-+ if ( pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex )
- {
- // is GET method
- eRet = cpp2uno_call( pCppI, aMemberDescr.get(), pAttrTypeRef,
-@@ -400,7 +411,7 @@ extern "C" typelib_TypeClass cpp_vtable_
- pCppI->getOid().pData,
- reinterpret_cast<typelib_InterfaceTypeDescription *>( pTD ) );
-
-- if (pInterface)
-+ if ( pInterface )
- {
- ::uno_any_construct( reinterpret_cast<uno_Any *>( gpreg[0] ),
- &pInterface, pTD, cpp_acquire );
-@@ -408,7 +419,7 @@ extern "C" typelib_TypeClass cpp_vtable_
- pInterface->release();
- TYPELIB_DANGER_RELEASE( pTD );
-
-- *(void **)pRegisterReturn = gpreg[0];
-+ reinterpret_cast<void **>( pRegisterReturn )[0] = gpreg[0];
- eRet = typelib_TypeClass_ANY;
- break;
- }
-@@ -520,7 +531,7 @@ unsigned char * bridges::cpp_uno::shared
- // get method
- *slots++ = code;
- code = codeSnippet( code, nFunctionOffset++, nVtableOffset,
-- x86_64::returnInHiddenParam( pAttrTD->pAttributeTypeRef ) );
-+ x86_64::return_in_hidden_param( pAttrTD->pAttributeTypeRef ) );
-
- if ( ! pAttrTD->bReadOnly )
- {
-@@ -536,7 +547,7 @@ unsigned char * bridges::cpp_uno::shared
-
- *slots++ = code;
- code = codeSnippet( code, nFunctionOffset++, nVtableOffset,
-- x86_64::returnInHiddenParam( pMethodTD->pReturnTypeRef ) );
-+ x86_64::return_in_hidden_param( pMethodTD->pReturnTypeRef ) );
- }
- else
- OSL_ASSERT( false );
-Files bridges.orig/source/cpp_uno/gcc3_linux_x86-64/.cpp2uno.cxx.swp and bridges/source/cpp_uno/gcc3_linux_x86-64/.cpp2uno.cxx.swp differ
-diff -purN bridges.orig/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx
---- bridges.orig/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx 2005-06-28 11:18:28.000000000 +0200
-+++ bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx 2005-06-28 19:11:13.000000000 +0200
-@@ -279,40 +279,53 @@ static void callVirtualMethod(void * pTh
- asm("" ::
- "x" (d0), "x" (d1), "x" (d2), "x" (d3),
- "x" (d4), "x" (d5), "x" (d6), "x" (d7));
--
-+
- // Get pointer to method
- sal_uInt64 pMethod = *((sal_uInt64 *)pThis);
- pMethod += 8 * nVtableIndex;
- pMethod = *((sal_uInt64 *)pMethod);
-
-+ union ReturnValue {
-+ struct {
-+ sal_uInt64 rax;
-+ sal_uInt64 rdx;
-+ } i;
-+ struct {
-+ double xmm0;
-+ double xmm1;
-+ } f;
-+ };
-+
-+ typedef ReturnValue (* FunctionCall )( sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64 );
-+
- // Perform the call
-- sal_uInt64 nRet = ( (sal_uInt64 (*)(...) ) pMethod )(a0, a1, a2, a3, a4, a5);
--
-+ ReturnValue aRet = ( ( FunctionCall ) pMethod )( a0, a1, a2, a3, a4, a5 );
-+
- switch (eReturnType)
- {
- case typelib_TypeClass_HYPER:
- case typelib_TypeClass_UNSIGNED_HYPER:
-- *reinterpret_cast<sal_uInt64 *>( pRegisterReturn ) = nRet;
-+ *reinterpret_cast<sal_uInt64 *>( pRegisterReturn ) = aRet.i.rax;
- break;
- case typelib_TypeClass_LONG:
- case typelib_TypeClass_UNSIGNED_LONG:
- case typelib_TypeClass_ENUM:
-- *reinterpret_cast<sal_uInt32 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt32*>( &nRet );
-+ *reinterpret_cast<sal_uInt32 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt32*>( &aRet.i.rax );
- break;
- case typelib_TypeClass_CHAR:
- case typelib_TypeClass_SHORT:
- case typelib_TypeClass_UNSIGNED_SHORT:
-- *reinterpret_cast<sal_uInt16 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt16*>( &nRet );
-+ *reinterpret_cast<sal_uInt16 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt16*>( &aRet.i.rax );
- break;
- case typelib_TypeClass_BOOLEAN:
- case typelib_TypeClass_BYTE:
-- *reinterpret_cast<sal_uInt8 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt8*>( &nRet );
-+ *reinterpret_cast<sal_uInt8 *>( pRegisterReturn ) = *reinterpret_cast<sal_uInt8*>( &aRet.i.rax );
- break;
- case typelib_TypeClass_FLOAT:
-- *reinterpret_cast<float *>( pRegisterReturn ) = *reinterpret_cast<float*>( &nRet );
-+ *reinterpret_cast<float *>( pRegisterReturn ) = *reinterpret_cast<float*>( &aRet.f.xmm0 );
- break;
- case typelib_TypeClass_DOUBLE:
-- *reinterpret_cast<double *>( pRegisterReturn ) = *reinterpret_cast<double*>( &nRet );
-+ *reinterpret_cast<double *>( pRegisterReturn ) = *reinterpret_cast<double*>( &aRet.f.xmm0 );
- break;
- }
- }
diff --git a/patches/64bit/fix-64bit-bridges.diff b/patches/64bit/fix-64bit-bridges.diff
deleted file mode 100644
index 7b03021b1..000000000
--- a/patches/64bit/fix-64bit-bridges.diff
+++ /dev/null
@@ -1,1019 +0,0 @@
---- /dev/null 2004-10-02 05:17:35.000000000 +0200
-+++ bridges/source/cpp_uno/gcc3_linux_x86-64/call.s 2005-05-06 13:30:19.863433917 +0200
-@@ -0,0 +1,94 @@
-+ .text
-+ .align 2
-+.globl privateSnippetExecutor
-+ .type privateSnippetExecutor, @function
-+privateSnippetExecutor:
-+.LFB3:
-+ pushq %rbp
-+.LCFI0:
-+ movq %rsp, %rbp
-+.LCFI1:
-+ subq $160, %rsp
-+.LCFI2:
-+ movq %r11, -152(%rbp) # Save (nVtableOffset << 32) + nFunctionIndex
-+
-+ movq %rdi, -112(%rbp) # Save GP registers
-+ movq %rsi, -104(%rbp)
-+ movq %rdx, -96(%rbp)
-+ movq %rcx, -88(%rbp)
-+ movq %r8 , -80(%rbp)
-+ movq %r9 , -72(%rbp)
-+
-+ movsd %xmm0, -64(%rbp) # Save FP registers
-+ movsd %xmm1, -56(%rbp)
-+ movsd %xmm2, -48(%rbp)
-+ movsd %xmm3, -40(%rbp)
-+ movsd %xmm4, -32(%rbp)
-+ movsd %xmm5, -24(%rbp)
-+ movsd %xmm6, -16(%rbp)
-+ movsd %xmm7, -8(%rbp)
-+
-+ leaq -144(%rbp), %r9 # 6th param: sal_uInt64 * pRegisterReturn
-+ leaq 16(%rbp), %r8 # 5rd param: void ** ovrflw
-+ leaq -64(%rbp), %rcx # 4th param: void ** fpreg
-+ leaq -112(%rbp), %rdx # 3rd param: void ** gpreg
-+ movl -148(%rbp), %esi # 2nd param: sal_int32 nVtableOffset
-+ movl -152(%rbp), %edi # 1st param: sal_int32 nFunctionIndex
-+
-+ call cpp_vtable_call
-+
-+ cmp $10, %rax # typelib_TypeClass_FLOAT
-+ je .Lfloat
-+ cmp $11, %rax # typelib_TypeClass_DOUBLE
-+ je .Lfloat
-+
-+ movq -144(%rbp), %rax # Return value (int case)
-+ jmp .Lfinish
-+.Lfloat:
-+ movlpd -144(%rbp), %xmm0 # Return value (float/double case)
-+
-+.Lfinish:
-+ leave
-+ ret
-+.LFE3:
-+ .size privateSnippetExecutor, .-privateSnippetExecutor
-+ .section .eh_frame,"a",@progbits
-+.Lframe1:
-+ .long .LECIE1-.LSCIE1
-+.LSCIE1:
-+ .long 0x0
-+ .byte 0x1
-+ .string "zP"
-+ .uleb128 0x1
-+ .sleb128 -8
-+ .byte 0x10
-+ .uleb128 0x9
-+ .byte 0x0
-+ .quad __gxx_personality_v0
-+ .byte 0xc
-+ .uleb128 0x7
-+ .uleb128 0x8
-+ .byte 0x90
-+ .uleb128 0x1
-+ .align 8
-+.LECIE1:
-+.LSFDE1:
-+ .long .LEFDE1-.LASFDE1
-+.LASFDE1:
-+ .long .LASFDE1-.Lframe1
-+ .quad .LFB3
-+ .quad .LFE3-.LFB3
-+ .uleb128 0x0
-+ .byte 0x4
-+ .long .LCFI0-.LFB3
-+ .byte 0xe
-+ .uleb128 0x10
-+ .byte 0x86
-+ .uleb128 0x2
-+ .byte 0x4
-+ .long .LCFI1-.LCFI0
-+ .byte 0xd
-+ .uleb128 0x6
-+ .align 8
-+.LEFDE1:
-+ .section .note.GNU-stack,"",@progbits
---- bridges/prj/build.lst 1 Mar 2005 12:11:09 -0000 1.32
-+++ bridges/prj/build.lst 6 May 2005 11:53:59 -0000
-@@ -8,7 +8,7 @@ br bridges\source\remote\context nmake
- br bridges\source\cpp_uno\msvc_win32_intel nmake - w br_msci br_cppuno_shared br_unotypes NULL
- br bridges\source\cpp_uno\gcc3_linux_intel nmake - u br_gcc3li br_cppuno_shared br_unotypes NULL
- br bridges\source\cpp_uno\gcc3_freebsd_intel nmake - u br_gcc3fi br_cppuno_shared br_unotypes NULL
--br bridges\source\cpp_uno\gcc3_linux_x86-64 nmake - u br_gcc3lx br_unotypes NULL
-+br bridges\source\cpp_uno\gcc3_linux_x86-64 nmake - u br_gcc3lx br_cppuno_shared br_unotypes NULL
- br bridges\source\cpp_uno\gcc3_linux_powerpc nmake - u br_gcclp3 br_cppuno_shared br_unotypes NULL
- br bridges\source\cpp_uno\gcc3_linux_s390 nmake - u br_gccl33 br_unotypes NULL
- br bridges\source\cpp_uno\gcc3_linux_sparc nmake - u br_gccl3s br_unotypes br_cppuno_shared NULL
---- bridges/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx 9 Mar 2004 12:10:55 -0000 1.2
-+++ bridges/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx 6 May 2005 11:53:59 -0000
-@@ -66,11 +66,15 @@
- #include <rtl/alloc.h>
- #include <osl/mutex.hxx>
-
-+#include <com/sun/star/uno/genfunc.hxx>
-+#include "com/sun/star/uno/RuntimeException.hpp"
- #include <uno/data.h>
- #include <typelib/typedescription.hxx>
-
--#include <bridges/cpp_uno/bridge.hxx>
--#include <bridges/cpp_uno/type_misc.hxx>
-+#include "bridges/cpp_uno/shared/bridge.hxx"
-+#include "bridges/cpp_uno/shared/cppinterfaceproxy.hxx"
-+#include "bridges/cpp_uno/shared/types.hxx"
-+#include "bridges/cpp_uno/shared/vtablefactory.hxx"
-
- #include "share.hxx"
-
-@@ -78,7 +82,7 @@ using namespace ::osl;
- using namespace ::rtl;
- using namespace ::com::sun::star::uno;
-
--namespace CPPU_CURRENT_NAMESPACE
-+namespace
- {
-
- // 6 integral parameters are passed in registers
-@@ -88,11 +92,8 @@ const sal_uInt32 GPR_COUNT = 6;
- const sal_uInt32 FPR_COUNT = 8;
-
- //==================================================================================================
--rtl_StandardModuleCount g_moduleCount = MODULE_COUNT_INIT;
--
--//==================================================================================================
- static typelib_TypeClass cpp2uno_call(
-- cppu_cppInterfaceProxy * pThis,
-+ bridges::cpp_uno::shared::CppInterfaceProxy * pThis,
- const typelib_TypeDescription * pMemberTypeDescr,
- typelib_TypeDescriptionReference * pReturnTypeRef, // 0 indicates void return
- sal_Int32 nParams, typelib_MethodParameter * pParams,
-@@ -117,7 +118,7 @@ static typelib_TypeClass cpp2uno_call(
-
- if (pReturnTypeDescr)
- {
-- if (cppu_isSimpleType( pReturnTypeDescr ))
-+ if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
- {
- pUnoReturn = pRegisterReturn; // direct way for simple types
- }
-@@ -127,7 +128,7 @@ static typelib_TypeClass cpp2uno_call(
- gpreg++;
- nr_gpr++;
-
-- pUnoReturn = (cppu_relatesToInterface( pReturnTypeDescr )
-+ pUnoReturn = (bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )
- ? alloca( pReturnTypeDescr->nSize )
- : pCppReturn); // direct way
- }
-@@ -153,7 +154,7 @@ static typelib_TypeClass cpp2uno_call(
- typelib_TypeDescription * pParamTypeDescr = 0;
- TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
-
-- if (!rParam.bOut && cppu_isSimpleType( pParamTypeDescr )) // value
-+ if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr )) // value
- {
- if (pParamTypeDescr->eTypeClass == typelib_TypeClass_FLOAT
- || pParamTypeDescr->eTypeClass == typelib_TypeClass_DOUBLE)
-@@ -216,11 +217,11 @@ static typelib_TypeClass cpp2uno_call(
- ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
- }
- // is in/inout
-- else if (cppu_relatesToInterface( pParamTypeDescr ))
-+ else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
- {
- uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ),
- *(void **)pCppStack, pParamTypeDescr,
-- &pThis->pBridge->aCpp2Uno );
-+ pThis->getBridge()->getCpp2Uno() );
- pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
- // will be released at reconversion
- ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
-@@ -239,7 +240,7 @@ static typelib_TypeClass cpp2uno_call(
- uno_Any * pUnoExc = &aUnoExc;
-
- // invoke uno dispatch call
-- (*pThis->pUnoI->pDispatcher)( pThis->pUnoI, pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
-+ (*pThis->getUnoI()->pDispatcher)( pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc );
-
- // in case an exception occured...
- if (pUnoExc)
-@@ -256,7 +257,7 @@ static typelib_TypeClass cpp2uno_call(
- if (pReturnTypeDescr)
- TYPELIB_DANGER_RELEASE( pReturnTypeDescr );
-
-- raiseException( &aUnoExc, &pThis->pBridge->aUno2Cpp ); // has to destruct the any
-+ CPPU_CURRENT_NAMESPACE::raiseException( &aUnoExc, pThis->getBridge()->getUno2Cpp() ); // has to destruct the any
- // is here for dummy
- return typelib_TypeClass_VOID;
- }
-@@ -273,7 +274,7 @@ static typelib_TypeClass cpp2uno_call(
- // convert and assign
- uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
- uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr,
-- &pThis->pBridge->aUno2Cpp );
-+ pThis->getBridge()->getUno2Cpp() );
- }
- // destroy temp uno param
- uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 );
-@@ -286,7 +287,7 @@ static typelib_TypeClass cpp2uno_call(
- if (pUnoReturn != pCppReturn) // needs reconversion
- {
- uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr,
-- &pThis->pBridge->aUno2Cpp );
-+ pThis->getBridge()->getUno2Cpp() );
- // destroy temp uno return
- uno_destructData( pUnoReturn, pReturnTypeDescr, 0 );
- }
-@@ -306,31 +307,32 @@ static typelib_TypeClass cpp2uno_call(
-
-
- //==================================================================================================
--static typelib_TypeClass cpp_mediate(
-- sal_Int32 nVtableCall,
-+extern "C" typelib_TypeClass cpp_vtable_call(
-+ sal_Int32 nFunctionIndex, sal_Int32 nVtableOffset,
- void ** gpreg, void ** fpreg, void ** ovrflw,
- sal_uInt64 * pRegisterReturn /* space for register return */ )
- {
- // gpreg: [ret *], this, [other gpr params]
- // fpreg: [fpr params]
- // ovrflw: [gpr or fpr params (properly aligned)]
--
-- // _this_ ptr is patched cppu_XInterfaceProxy object
-- cppu_cppInterfaceProxy * pCppI = NULL;
-- if( nVtableCall & 0x80000000 )
-+ void * pThis;
-+ if ( nFunctionIndex & 0x80000000 )
- {
-- nVtableCall &= 0x7fffffff;
-- pCppI = (cppu_cppInterfaceProxy *)(XInterface *)*(gpreg +1);
-+ nFunctionIndex &= 0x7fffffff;
-+ pThis = gpreg[1];
- }
- else
-- {
-- pCppI = (cppu_cppInterfaceProxy *)(XInterface *)*(gpreg);
-- }
-+ pThis = gpreg[0];
-
-- typelib_InterfaceTypeDescription * pTypeDescr = pCppI->pTypeDescr;
--
-- OSL_ENSURE( nVtableCall < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!\n" );
-- if (nVtableCall >= pTypeDescr->nMapFunctionIndexToMemberIndex)
-+ pThis = static_cast< char * >( pThis ) - nVtableOffset;
-+
-+ bridges::cpp_uno::shared::CppInterfaceProxy * pCppI =
-+ bridges::cpp_uno::shared::CppInterfaceProxy::castInterfaceToProxy( pThis );
-+
-+ typelib_InterfaceTypeDescription * pTypeDescr = pCppI->getTypeDescr();
-+
-+ OSL_ENSURE( nFunctionIndex < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!\n" );
-+ if (nFunctionIndex >= pTypeDescr->nMapFunctionIndexToMemberIndex)
- {
- throw RuntimeException(
- OUString::createFromAscii("illegal vtable index!"),
-@@ -338,8 +340,8 @@ static typelib_TypeClass cpp_mediate(
- }
-
- // determine called method
-- OSL_ENSURE( nVtableCall < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!\n" );
-- sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nVtableCall];
-+ OSL_ENSURE( nFunctionIndex < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!\n" );
-+ sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nFunctionIndex];
- OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### illegal member index!\n" );
-
- TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] );
-@@ -349,7 +351,7 @@ static typelib_TypeClass cpp_mediate(
- {
- case typelib_TypeClass_INTERFACE_ATTRIBUTE:
- {
-- if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nVtableCall)
-+ if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex)
- {
- // is GET method
- eRet = cpp2uno_call(
-@@ -378,7 +380,7 @@ static typelib_TypeClass cpp_mediate(
- case typelib_TypeClass_INTERFACE_METHOD:
- {
- // is METHOD
-- switch (nVtableCall)
-+ switch (nFunctionIndex)
- {
- case 1: // acquire()
- pCppI->acquireProxy(); // non virtual call!
-@@ -395,9 +397,9 @@ static typelib_TypeClass cpp_mediate(
- if (pTD)
- {
- XInterface * pInterface = 0;
-- (*pCppI->pBridge->pCppEnv->getRegisteredInterface)(
-- pCppI->pBridge->pCppEnv,
-- (void **)&pInterface, pCppI->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
-+ (*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)(
-+ pCppI->getBridge()->getCppEnv(),
-+ (void **)&pInterface, pCppI->getOid().pData, (typelib_InterfaceTypeDescription *)pTD );
-
- if (pInterface)
- {
-@@ -437,246 +439,113 @@ static typelib_TypeClass cpp_mediate(
- }
-
- //==================================================================================================
--/**
-- * is called on incoming vtable calls
-- * (called by asm snippets)
-- */
--static void cpp_vtable_call(sal_uInt32 nTableEntry,
-- void** ovrflw, void** gpregptr, void** fpregptr)
--{
-- sal_uInt64 gpreg[GPR_COUNT];
-- double fpreg[FPR_COUNT];
--
-- memcpy( gpreg, gpregptr, sizeof(gpreg) );
-- memcpy( fpreg, fpregptr, sizeof(fpreg) );
--
-- volatile sal_uInt64 nRegReturn[3];
--
--#ifdef DEBUG
-- fprintf(stderr, "cpp_vtable_call(%08x,...)\n", nTableEntry);
--#endif
-+extern "C" void privateSnippetExecutor( ... );
-
-- sal_Bool bComplex = nTableEntry & 0x80000000 ? sal_True : sal_False;
-+const int codeSnippetSize = 23;
-
-- typelib_TypeClass aType =
-- cpp_mediate( nTableEntry, (void**)gpreg, (void**)fpreg, ovrflw, (sal_uInt64 *)nRegReturn );
--
-- switch( aType )
-- {
-- case typelib_TypeClass_FLOAT:
-- // The value in %xmm register is already prepared to
-- // be retrieved as a float. Therefore, we pass the
-- // value verbatim, as a double without conversion.
-- __asm__( "movsd %0, %%xmm0" : : "m" (*((double *)nRegReturn)) );
-- break;
--
-- case typelib_TypeClass_DOUBLE:
-- __asm__( "movsd %0, %%xmm0" : : "m" (*((double *)nRegReturn)) );
-- break;
--
-- default:
-- __asm__( "movq %0, %%rax" : : "m" (*nRegReturn));
-- break;
-- }
-+// Generate a piece of code that jumps to privateSnippetExecutor().
-+//
-+// privateSnippetExecutor() saves all the registers that are used for
-+// parameter passing on x86_64, and calls the cpp_vtable_call().
-+// When it returns, privateSnippetExecutor() sets the return value.
-+//
-+// Note: The code snippet we build here must not create a stack frame,
-+// otherwise the UNO exceptions stop working thanks to non-existing
-+// unwinding info.
-+unsigned char * codeSnippet( unsigned char * code,
-+ sal_Int32 nFunctionIndex, sal_Int32 nVtableOffset,
-+ bool simple_ret_type ) SAL_THROW( () )
-+{
-+ sal_uInt64 nOffsetAndIndex = ( ( (sal_uInt64) nVtableOffset ) << 32 ) | ( (sal_uInt64) nFunctionIndex );
-+
-+ if ( ! simple_ret_type )
-+ nOffsetAndIndex |= 0x80000000;
-+
-+ unsigned char * p = code;
-+
-+ // movq $<nOffsetAndIndex>, %r11
-+ *p++ = 0x49;
-+ *p++ = 0xbb;
-+ *reinterpret_cast< sal_uInt64 * >( p ) = nOffsetAndIndex;
-+ p += sizeof( sal_uInt64 );
-+
-+ // movq $<address of the privateSnippetExecutor>, %r10
-+ *p++ = 0x49;
-+ *p++ = 0xba;
-+ *reinterpret_cast< sal_uInt64 * >( p ) = reinterpret_cast< sal_uInt64 >( privateSnippetExecutor );
-+ p += sizeof( sal_uInt64 );
-+
-+ // jmpq *%r10
-+ *p++ = 0x49;
-+ *p++ = 0xff;
-+ *p++ = 0xe2;
-
-- __asm__ __volatile__ ("" : : : "rax", "xmm0");
--}
-+ OSL_ASSERT( p - code <= codeSnippetSize );
-
-+ return code + codeSnippetSize;
-+}
-
- //==================================================================================================
--class MediateClassData
--{
-- typedef ::std::hash_map< OUString, void *, OUStringHash > t_classdata_map;
-- t_classdata_map m_map;
-- Mutex m_mutex;
--
--public:
-- void const * get_vtable( typelib_InterfaceTypeDescription * pTD ) SAL_THROW( () );
--
-- inline MediateClassData() SAL_THROW( () )
-- {}
-- ~MediateClassData() SAL_THROW( () );
--};
--//__________________________________________________________________________________________________
--MediateClassData::~MediateClassData() SAL_THROW( () )
-+void ** bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable( char * block )
- {
-- OSL_TRACE( "> calling ~MediateClassData(): freeing mediate vtables." );
--
-- for ( t_classdata_map::const_iterator iPos( m_map.begin() ); iPos != m_map.end(); ++iPos )
-- {
-- ::rtl_freeMemory( iPos->second );
-- }
-+ return reinterpret_cast< void ** >(block) + 2;
- }
--//--------------------------------------------------------------------------------------------------
--/* Code to generate. Note: if you change it, make sure patch offsets
-- for nTableEntry and cpp_vtable_call() are updated too. */
--const char code_snippet_template[] = {
-- // # make room for gpregs (48), fpregs (64)
-- 0x55, // push %rbp
-- 0x48, 0x89, 0xe5, // mov %rsp,%rbp
-- 0x48, 0x83, 0xec, 0x70, // sub $112,%rsp
-- // # save GP registers
-- 0x48, 0x89, 0x7d, 0x90, // mov %rdi,-112(%rbp)
-- 0x48, 0x89, 0x75, 0x98, // mov %rsi,-104(%rbp)
-- 0x48, 0x89, 0x55, 0xa0, // mov %rdx, -96(%rbp)
-- 0x48, 0x89, 0x4d, 0xa8, // mov %rcx, -88(%rbp)
-- 0x4c, 0x89, 0x45, 0xb0, // mov %r8 , -80(%rbp)
-- 0x4c, 0x89, 0x4d, 0xb8, // mov %r9 , -72(%rbp)
-- 0x48, 0x8d, 0x55, 0x90, // lea -112(%rbp),%rdx
-- // # save FP registers
-- 0xf2, 0x0f, 0x11, 0x45, 0xc0, // movsd %xmm0,-64(%rbp)
-- 0xf2, 0x0f, 0x11, 0x4d, 0xc8, // movsd %xmm1,-56(%rbp)
-- 0xf2, 0x0f, 0x11, 0x55, 0xd0, // movsd %xmm2,-48(%rbp)
-- 0xf2, 0x0f, 0x11, 0x5d, 0xd8, // movsd %xmm3,-40(%rbp)
-- 0xf2, 0x0f, 0x11, 0x65, 0xe0, // movsd %xmm4,-32(%rbp)
-- 0xf2, 0x0f, 0x11, 0x6d, 0xe8, // movsd %xmm5,-24(%rbp)
-- 0xf2, 0x0f, 0x11, 0x75, 0xf0, // movsd %xmm6,-16(%rbp)
-- 0xf2, 0x0f, 0x11, 0x7d, 0xf8, // movsd %xmm7, -8(%rbp)
-- 0x48, 0x8d, 0x4d, 0xc0, // lea -64(%rbp),%rcx
-- // # perform the call and cleanup to cpp_vtable_call()
-- 0xbf, 0x00, 0x00, 0x00, 0x00, // mov $0,%edi
-- 0x48, 0x8d, 0x75, 0x10, // lea 16(%rbp),%rsi
-- 0x48, 0xb8, 0, 0, 0, 0, 0, 0, 0, 0, // mov $0,%rax
-- 0xff, 0xd0, // call *%rax
-- 0xc9, // leave
-- 0xc3 // ret
--};
-
--static inline void codeSnippet( char * code, sal_uInt32 vtable_pos, bool simple_ret_type ) SAL_THROW( () )
--{
-- if (! simple_ret_type)
-- vtable_pos |= 0x80000000;
--
-- const int code_snippet_template_size = sizeof(code_snippet_template);
-- memcpy(code, code_snippet_template, code_snippet_template_size);
--
-- // Patch nTableEntryValue
-- sal_uInt32 *mid_p = (sal_uInt32 *)(code + code_snippet_template_size - 22);
-- *mid_p = vtable_pos;
--
-- // Patch call to cpp_vtable_call()
-- sal_uInt64 *call_p = (sal_uInt64 *)(code + code_snippet_template_size - 12);
-- *call_p = (sal_uInt64)cpp_vtable_call;
--}
--//__________________________________________________________________________________________________
--void const * MediateClassData::get_vtable( typelib_InterfaceTypeDescription * pTD ) SAL_THROW( () )
-+//==================================================================================================
-+char * bridges::cpp_uno::shared::VtableFactory::createBlock(
-+ sal_Int32 slotCount, void *** slots)
- {
-- void * buffer;
-- const int nSnippetSize = sizeof(code_snippet_template);
--
-- // avoiding locked counts
-- OUString const & unoName = *(OUString const *)&((typelib_TypeDescription *)pTD)->pTypeName;
-- {
-- MutexGuard aGuard( m_mutex );
-- t_classdata_map::const_iterator iFind( m_map.find( unoName ) );
-- if (iFind == m_map.end())
-- {
-- // create new vtable
-- sal_Int32 nSlots = pTD->nMapFunctionIndexToMemberIndex;
-- buffer = ::rtl_allocateMemory( ((2+ nSlots) * sizeof (void *)) + (nSlots *nSnippetSize) );
--
-- ::std::pair< t_classdata_map::iterator, bool > insertion(
-- m_map.insert( t_classdata_map::value_type( unoName, buffer ) ) );
-- OSL_ENSURE( insertion.second, "### inserting new vtable buffer failed?!\n\n" );
--
-- void ** slots = (void **)buffer;
-- *slots++ = 0;
-- *slots++ = 0; // rtti
-- char * code = (char *)(slots + nSlots);
--
-- sal_uInt32 vtable_pos = 0;
-- sal_Int32 nAllMembers = pTD->nAllMembers;
-- typelib_TypeDescriptionReference ** ppAllMembers = pTD->ppAllMembers;
-- for ( sal_Int32 nPos = 0; nPos < nAllMembers; ++nPos )
-- {
-- typelib_TypeDescription * pTD = 0;
-- TYPELIB_DANGER_GET( &pTD, ppAllMembers[ nPos ] );
-- OSL_ASSERT( pTD );
-- if (typelib_TypeClass_INTERFACE_ATTRIBUTE == pTD->eTypeClass)
-- {
-- bool simple_ret = cppu_isSimpleType(
-- ((typelib_InterfaceAttributeTypeDescription *)pTD)->pAttributeTypeRef->eTypeClass );
-- // get method
-- *slots = code;
-- codeSnippet( code, vtable_pos++, simple_ret );
-- code += nSnippetSize;
-- slots++;
-- if (! ((typelib_InterfaceAttributeTypeDescription *)pTD)->bReadOnly)
-- {
-- // set method
-- *slots = code;
-- codeSnippet( code, vtable_pos++, true );
-- code += nSnippetSize;
-- slots++;
-- }
-- }
-- else
-- {
-- bool simple_ret = cppu_isSimpleType(
-- ((typelib_InterfaceMethodTypeDescription *)pTD)->pReturnTypeRef->eTypeClass );
-- *slots = code;
-- codeSnippet( code, vtable_pos++, simple_ret );
-- code += nSnippetSize;
-- slots++;
-- }
-- TYPELIB_DANGER_RELEASE( pTD );
-- }
-- OSL_ASSERT( vtable_pos == nSlots );
-- }
-- else
-- {
-- buffer = iFind->second;
-- }
-- }
--
-- return ((void **)buffer +2);
-+ char * block = new char[ (slotCount + 2) * sizeof (void *) + slotCount * codeSnippetSize ];
-+ *slots = mapBlockToVtable(block);
-+ (*slots)[-2] = 0;
-+ (*slots)[-1] = 0;
-+ return block;
- }
-
- //==================================================================================================
--void SAL_CALL cppu_cppInterfaceProxy_patchVtable(
-- XInterface * pCppI, typelib_InterfaceTypeDescription * pTypeDescr ) throw ()
--{
-- static MediateClassData * s_pMediateClassData = 0;
-- if (! s_pMediateClassData)
-- {
-- MutexGuard aGuard( Mutex::getGlobalMutex() );
-- if (! s_pMediateClassData)
-+unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions(
-+ void ** slots, unsigned char * code,
-+ typelib_InterfaceTypeDescription const * type, sal_Int32 nFunctionOffset,
-+ sal_Int32 functionCount, sal_Int32 nVtableOffset )
-+{
-+ for ( sal_Int32 nPos = 0; nPos < type->nMembers; ++nPos )
-+ {
-+ typelib_TypeDescription * pTD = 0;
-+ TYPELIB_DANGER_GET( &pTD, type->ppMembers[ nPos ] );
-+ OSL_ASSERT( pTD );
-+ if (typelib_TypeClass_INTERFACE_ATTRIBUTE == pTD->eTypeClass)
-+ {
-+ bool simple_ret = bridges::cpp_uno::shared::isSimpleType(
-+ ((typelib_InterfaceAttributeTypeDescription *)pTD)->pAttributeTypeRef->eTypeClass );
-+ // get method
-+ *slots++ = code;
-+ code = codeSnippet( code, nFunctionOffset++, nVtableOffset, simple_ret );
-+ if (! ((typelib_InterfaceAttributeTypeDescription *)pTD)->bReadOnly)
-+ {
-+ // set method
-+ *slots++ = code;
-+ code = codeSnippet( code, nFunctionOffset++, nVtableOffset, true );
-+ }
-+ }
-+ else if (typelib_TypeClass_INTERFACE_METHOD == pTD->eTypeClass)
- {
--#ifdef LEAK_STATIC_DATA
-- s_pMediateClassData = new MediateClassData();
--#else
-- static MediateClassData s_aMediateClassData;
-- s_pMediateClassData = &s_aMediateClassData;
--#endif
-+ bool simple_ret = bridges::cpp_uno::shared::isSimpleType(
-+ ((typelib_InterfaceMethodTypeDescription *)pTD)->pReturnTypeRef->eTypeClass );
-+ *slots++ = code;
-+ code = codeSnippet( code, nFunctionOffset++, nVtableOffset, simple_ret );
- }
-- }
-- *(void const **)pCppI = s_pMediateClassData->get_vtable( pTypeDescr );
--}
-+ else
-+ OSL_ASSERT(false);
-
-+ TYPELIB_DANGER_RELEASE( pTD );
-+ }
-+ return code;
- }
-
--extern "C"
--{
--//##################################################################################################
--sal_Bool SAL_CALL component_canUnload( TimeValue * pTime )
-- SAL_THROW_EXTERN_C()
--{
-- return CPPU_CURRENT_NAMESPACE::g_moduleCount.canUnload(
-- &CPPU_CURRENT_NAMESPACE::g_moduleCount, pTime );
--}
--//##################################################################################################
--void SAL_CALL uno_initEnvironment( uno_Environment * pCppEnv )
-- SAL_THROW_EXTERN_C()
--{
-- CPPU_CURRENT_NAMESPACE::cppu_cppenv_initEnvironment(
-- pCppEnv );
--}
--//##################################################################################################
--void SAL_CALL uno_ext_getMapping(
-- uno_Mapping ** ppMapping, uno_Environment * pFrom, uno_Environment * pTo )
-- SAL_THROW_EXTERN_C()
-+//==================================================================================================
-+void bridges::cpp_uno::shared::VtableFactory::flushCode(
-+ unsigned char const *, unsigned char const * )
- {
-- CPPU_CURRENT_NAMESPACE::cppu_ext_getMapping(
-- ppMapping, pFrom, pTo );
- }
-+
- }
-
---- bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx 2005-05-06 14:15:34.285289884 +0200
-+++ bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx 2004-06-04 04:59:59.000000000 +0200
-@@ -69,7 +69,8 @@
- #include <osl/diagnose.h>
- #include <osl/mutex.hxx>
-
--#include <bridges/cpp_uno/bridge.hxx>
-+#include <com/sun/star/uno/genfunc.hxx>
-+#include "com/sun/star/uno/RuntimeException.hpp"
- #include <typelib/typedescription.hxx>
- #include <uno/any2.h>
-
-@@ -269,11 +270,16 @@ void raiseException( uno_Any * pUnoExc,
- TYPELIB_DANGER_GET( &pTypeDescr, pUnoExc->pType );
- OSL_ASSERT( pTypeDescr );
- if (! pTypeDescr)
-- terminate();
--
-+ {
-+ throw RuntimeException(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("cannot get typedescription for type ") ) +
-+ *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
-+ Reference< XInterface >() );
-+ }
-+
- pCppExc = __cxa_allocate_exception( pTypeDescr->nSize );
- ::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp );
--
-+
- // destruct uno exception
- ::uno_any_destruct( pUnoExc, 0 );
- // avoiding locked counts
-@@ -295,29 +301,59 @@ void raiseException( uno_Any * pUnoExc,
- TYPELIB_DANGER_RELEASE( pTypeDescr );
- OSL_ENSURE( rtti, "### no rtti for throwing exception!" );
- if (! rtti)
-- terminate();
-+ {
-+ throw RuntimeException(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("no rtti for type ") ) +
-+ *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
-+ Reference< XInterface >() );
- }
--
-+ }
-+
- __cxa_throw( pCppExc, rtti, deleteException );
- }
-
- //==================================================================================================
- void fillUnoException( __cxa_exception * header, uno_Any * pUnoExc, uno_Mapping * pCpp2Uno )
- {
-- OSL_ENSURE( header, "### no exception header!!!" );
- if (! header)
-- terminate();
--
-+ {
-+ RuntimeException aRE(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("no exception header!") ),
-+ Reference< XInterface >() );
-+ Type const & rType = ::getCppuType( &aRE );
-+ uno_type_any_constructAndConvert( pUnoExc, &aRE, rType.getTypeLibType(), pCpp2Uno );
-+#if OSL_DEBUG_LEVEL > 0
-+ OString cstr( OUStringToOString( aRE.Message, RTL_TEXTENCODING_ASCII_US ) );
-+ OSL_ENSURE( 0, cstr.getStr() );
-+#endif
-+ return;
-+ }
-+
- typelib_TypeDescription * pExcTypeDescr = 0;
- OUString unoName( toUNOname( header->exceptionType->name() ) );
-- ::typelib_typedescription_getByName( &pExcTypeDescr, unoName.pData );
-- OSL_ENSURE( pExcTypeDescr, "### can not get type description for exception!!!" );
-- if (! pExcTypeDescr)
-- terminate();
--
-- // construct uno exception any
-- uno_any_constructAndConvert( pUnoExc, header->adjustedPtr, pExcTypeDescr, pCpp2Uno );
-- typelib_typedescription_release( pExcTypeDescr );
-+#if OSL_DEBUG_LEVEL > 1
-+ OString cstr_unoName( OUStringToOString( unoName, RTL_TEXTENCODING_ASCII_US ) );
-+ fprintf( stderr, "> c++ exception occured: %s\n", cstr_unoName.getStr() );
-+#endif
-+ typelib_typedescription_getByName( &pExcTypeDescr, unoName.pData );
-+ if (0 == pExcTypeDescr)
-+ {
-+ RuntimeException aRE(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("exception type not found: ") ) + unoName,
-+ Reference< XInterface >() );
-+ Type const & rType = ::getCppuType( &aRE );
-+ uno_type_any_constructAndConvert( pUnoExc, &aRE, rType.getTypeLibType(), pCpp2Uno );
-+#if OSL_DEBUG_LEVEL > 0
-+ OString cstr( OUStringToOString( aRE.Message, RTL_TEXTENCODING_ASCII_US ) );
-+ OSL_ENSURE( 0, cstr.getStr() );
-+#endif
-+ }
-+ else
-+ {
-+ // construct uno exception any
-+ uno_any_constructAndConvert( pUnoExc, header->adjustedPtr, pExcTypeDescr, pCpp2Uno );
-+ typelib_typedescription_release( pExcTypeDescr );
-+ }
- }
-
- }
---- bridges/source/cpp_uno/gcc3_linux_x86-64/makefile.mk 9 Mar 2004 12:11:14 -0000 1.2
-+++ bridges/source/cpp_uno/gcc3_linux_x86-64/makefile.mk 6 May 2005 11:53:59 -0000
-@@ -91,7 +91,8 @@ CFLAGSNOOPT=-O0
- SLOFILES= \
- $(SLO)$/except.obj \
- $(SLO)$/cpp2uno.obj \
-- $(SLO)$/uno2cpp.obj
-+ $(SLO)$/uno2cpp.obj \
-+ $(SLO)$/call.obj
-
- SHL1TARGET= $(TARGET)
-
-@@ -99,10 +100,8 @@ SHL1DEF=$(MISC)$/$(SHL1TARGET).def
- SHL1IMPLIB=i$(TARGET)
- SHL1VERSIONMAP=..$/..$/bridge_exports.map
-
--SHL1OBJS= \
-- $(SLO)$/except.obj \
-- $(SLO)$/cpp2uno.obj \
-- $(SLO)$/uno2cpp.obj
-+SHL1OBJS = $(SLOFILES)
-+SHL1LIBS = $(SLB)$/cpp_uno_shared.lib
-
- SHL1STDLIBS= \
- $(CPPULIB) \
-@@ -114,3 +113,6 @@ SHL1STDLIBS= \
-
- .INCLUDE : target.mk
-
-+$(SLO)$/%.obj: %.s
-+ $(CC) -c -o $(SLO)$/$(@:b).o $<
-+ touch $@
---- bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx 9 Mar 2004 12:11:38 -0000 1.2
-+++ bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx 6 May 2005 11:53:59 -0000
-@@ -63,16 +63,21 @@
- #include <stdlib.h>
- #include <rtl/alloc.h>
-
-+#include <com/sun/star/uno/genfunc.hxx>
-+#include "com/sun/star/uno/RuntimeException.hpp"
- #include <uno/data.h>
--#include <bridges/cpp_uno/bridge.hxx>
--#include <bridges/cpp_uno/type_misc.hxx>
-+
-+#include <bridges/cpp_uno/shared/bridge.hxx>
-+#include <bridges/cpp_uno/shared/types.hxx>
-+#include "bridges/cpp_uno/shared/unointerfaceproxy.hxx"
-+#include "bridges/cpp_uno/shared/vtables.hxx"
-
- #include "share.hxx"
-
- using namespace ::rtl;
- using namespace ::com::sun::star::uno;
-
--namespace CPPU_CURRENT_NAMESPACE
-+namespace
- {
-
- void dummy_can_throw_anything( char const * );
-@@ -203,7 +208,7 @@ static void callVirtualMethod(void * pTh
- if (nr_stack)
- nr_stack = (nr_stack + 1) & ~1;
-
--#if 1
-+#if OSL_DEBUG_LEVEL > 1
- // Let's figure out what is really going on here
- fprintf(stderr,"callVirtualMethod() parameters string is %s\n", pPT);
- {
-@@ -327,8 +332,8 @@ static void callVirtualMethod(void * pTh
-
- //==================================================================================================
- static void cpp_call(
-- cppu_unoInterfaceProxy * pThis,
-- sal_Int32 nVtableCall,
-+ bridges::cpp_uno::shared::UnoInterfaceProxy * pThis,
-+ bridges::cpp_uno::shared::VtableSlot aVtableSlot,
- typelib_TypeDescriptionReference * pReturnTypeRef,
- sal_Int32 nParams, typelib_MethodParameter * pParams,
- void * pUnoReturn, void * pUnoArgs[], uno_Any ** ppUnoExc )
-@@ -350,14 +355,14 @@ static void cpp_call(
-
- if (pReturnTypeDescr)
- {
-- if (cppu_isSimpleType( pReturnTypeDescr ))
-+ if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr ))
- {
- pCppReturn = pUnoReturn; // direct way for simple types
- }
- else
- {
- // complex return via ptr
-- pCppReturn = *(void **)pCppStack = (cppu_relatesToInterface( pReturnTypeDescr )
-+ pCppReturn = *(void **)pCppStack = (bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr )
- ? alloca( pReturnTypeDescr->nSize )
- : pUnoReturn); // direct way
- *pPT++ = 'H';
-@@ -366,7 +371,7 @@ static void cpp_call(
- }
-
- // Push "this" pointer
-- *(void **)pCppStack = pThis->pCppI;
-+ *(void **)pCppStack = pThis->getCppI();
- *pPT++ = 'H';
- pCppStack += sizeof(void *);
-
-@@ -386,10 +391,10 @@ static void cpp_call(
- typelib_TypeDescription * pParamTypeDescr = 0;
- TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef );
-
-- if (!rParam.bOut && cppu_isSimpleType( pParamTypeDescr ))
-+ if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr ))
- {
- uno_copyAndConvertData( pCppArgs[nPos] = pCppStack, pUnoArgs[nPos], pParamTypeDescr,
-- &pThis->pBridge->aUno2Cpp );
-+ pThis->getBridge()->getUno2Cpp() );
-
- switch (pParamTypeDescr->eTypeClass)
- {
-@@ -446,11 +451,11 @@ static void cpp_call(
- ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr;
- }
- // is in/inout
-- else if (cppu_relatesToInterface( pParamTypeDescr ))
-+ else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr ))
- {
- uno_copyAndConvertData(
- *(void **)pCppStack = pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ),
-- pUnoArgs[nPos], pParamTypeDescr, &pThis->pBridge->aUno2Cpp );
-+ pUnoArgs[nPos], pParamTypeDescr, pThis->getBridge()->getUno2Cpp() );
-
- pTempIndizes[nTempIndizes] = nPos; // has to be reconverted
- // will be released at reconversion
-@@ -476,7 +481,7 @@ static void cpp_call(
- {
- OSL_ENSURE( !( (pCppStack - pCppStackStart ) & 7), "UNALIGNED STACK !!! (Please DO panic)" );
- callVirtualMethod(
-- pThis->pCppI, nVtableCall,
-+ pThis->getCppI(), aVtableSlot.index,
- pCppReturn, pReturnTypeDescr->eTypeClass, pParamType,
- (sal_uInt64 *)pCppStackStart, (pCppStack - pCppStackStart) / sizeof(sal_uInt64) );
- // NO exception occured...
-@@ -494,13 +499,13 @@ static void cpp_call(
- {
- uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value
- uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
-- &pThis->pBridge->aCpp2Uno );
-+ pThis->getBridge()->getCpp2Uno() );
- }
- }
- else // pure out
- {
- uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr,
-- &pThis->pBridge->aCpp2Uno );
-+ pThis->getBridge()->getCpp2Uno() );
- }
- // destroy temp cpp param => cpp: every param was constructed
- uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release );
-@@ -511,14 +516,14 @@ static void cpp_call(
- if (pCppReturn && pUnoReturn != pCppReturn)
- {
- uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr,
-- &pThis->pBridge->aCpp2Uno );
-+ pThis->getBridge()->getCpp2Uno() );
- uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release );
- }
- }
- catch (...)
- {
- // fill uno exception
-- fillUnoException( __cxa_get_globals()->caughtExceptions, *ppUnoExc, &pThis->pBridge->aCpp2Uno );
-+ fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, *ppUnoExc, pThis->getBridge()->getCpp2Uno() );
-
- // temporary params
- for ( ; nTempIndizes--; )
-@@ -536,12 +541,13 @@ static void cpp_call(
-
-
- //==================================================================================================
--void SAL_CALL cppu_unoInterfaceProxy_dispatch(
-+void bridges::cpp_uno::shared::UnoInterfaceProxy::dispatch(
- uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr,
-- void * pReturn, void * pArgs[], uno_Any ** ppException ) throw ()
-+ void * pReturn, void * pArgs[], uno_Any ** ppException ) SAL_THROW(())
- {
- // is my surrogate
-- cppu_unoInterfaceProxy * pThis = (cppu_unoInterfaceProxy *)pUnoI;
-+ bridges::cpp_uno::shared::UnoInterfaceProxy * pThis
-+ = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy * >(pUnoI);
- typelib_InterfaceTypeDescription * pTypeDescr = pThis->pTypeDescr;
-
- switch (pMemberDescr->eTypeClass)
-@@ -552,14 +558,17 @@ void SAL_CALL cppu_unoInterfaceProxy_dis
- sal_Int32 nMemberPos = ((typelib_InterfaceMemberTypeDescription *)pMemberDescr)->nPosition;
- OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### member pos out of range!" );
-
-- sal_Int32 nVtableCall = pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos];
-- OSL_ENSURE( nVtableCall < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" );
-+ VtableSlot aVtableSlot(
-+ getVtableSlot(
-+ reinterpret_cast<
-+ typelib_InterfaceAttributeTypeDescription const * >(
-+ pMemberDescr)));
-
- if (pReturn)
- {
- // dependent dispatch
- cpp_call(
-- pThis, nVtableCall,
-+ pThis, aVtableSlot,
- ((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef,
- 0, 0, // no params
- pReturn, pArgs, ppException );
-@@ -579,8 +588,9 @@ void SAL_CALL cppu_unoInterfaceProxy_dis
- &pReturnTypeRef, typelib_TypeClass_VOID, aVoidName.pData );
-
- // dependent dispatch
-+ aVtableSlot.index += 1; // get, then set method
- cpp_call(
-- pThis, nVtableCall +1, // get, then set method
-+ pThis, aVtableSlot, // get, then set method
- pReturnTypeRef,
- 1, &aParam,
- pReturn, pArgs, ppException );
-@@ -596,10 +606,13 @@ void SAL_CALL cppu_unoInterfaceProxy_dis
- sal_Int32 nMemberPos = ((typelib_InterfaceMemberTypeDescription *)pMemberDescr)->nPosition;
- OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### member pos out of range!" );
-
-- sal_Int32 nVtableCall = pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos];
-- OSL_ENSURE( nVtableCall < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" );
-+ VtableSlot aVtableSlot(
-+ getVtableSlot(
-+ reinterpret_cast<
-+ typelib_InterfaceMethodTypeDescription const * >(
-+ pMemberDescr)));
-
-- switch (nVtableCall)
-+ switch (aVtableSlot.index)
- {
- // standard calls
- case 1: // acquire uno interface
-@@ -617,8 +630,8 @@ void SAL_CALL cppu_unoInterfaceProxy_dis
- if (pTD)
- {
- uno_Interface * pInterface = 0;
-- (*pThis->pBridge->pUnoEnv->getRegisteredInterface)(
-- pThis->pBridge->pUnoEnv,
-+ (*pThis->getBridge()->getUnoEnv()->getRegisteredInterface)(
-+ pThis->getBridge()->getUnoEnv(),
- (void **)&pInterface, pThis->oid.pData, (typelib_InterfaceTypeDescription *)pTD );
-
- if (pInterface)
-@@ -637,7 +650,7 @@ void SAL_CALL cppu_unoInterfaceProxy_dis
- default:
- // dependent dispatch
- cpp_call(
-- pThis, nVtableCall,
-+ pThis, aVtableSlot,
- ((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef,
- ((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams,
- ((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams,
diff --git a/patches/64bit/fix-64bit-solenv-O2.diff b/patches/64bit/fix-64bit-solenv-O2.diff
deleted file mode 100644
index 7c43ad13f..000000000
--- a/patches/64bit/fix-64bit-solenv-O2.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- solenv/inc/unxlngx6.mk 2005-11-07 13:13:22.000000000 +0100
-+++ solenv/inc/unxlngx6.mk 2005-11-07 13:08:02.000000000 +0100
-@@ -120,7 +120,7 @@ CFLAGSDEBUG=-g
- CFLAGSDBGUTIL=
- # Compiler flags for enabling optimizations
- .IF "$(PRODUCT)"!=""
--CFLAGSOPT=-Os -fno-strict-aliasing # optimizing for products
-+CFLAGSOPT=-O2 -fno-strict-aliasing # optimizing for products
- CFLAGSOPT+=-Wuninitialized # not supported without optimization
- .ELSE # "$(PRODUCT)"!=""
- CFLAGSOPT= # no optimizing for non products
diff --git a/patches/64bit/fix-64bit-solenv-noopt.diff b/patches/64bit/fix-64bit-solenv-noopt.diff
deleted file mode 100644
index 8bf9d18fd..000000000
--- a/patches/64bit/fix-64bit-solenv-noopt.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- solenv/inc/unxlngx6.mk 2005-06-24 17:35:20.000000000 +0200
-+++ solenv/inc/unxlngx6.mk 2005-06-28 14:02:31.972983648 +0200
-@@ -125,7 +125,7 @@ CFLAGSDBGUTIL=
- CFLAGSOPT= # no optimizing for non products
- .ENDIF # "$(PRODUCT)"!=""
- # Compiler flags for disabling optimizations
--CFLAGSNOOPT=-O
-+CFLAGSNOOPT=-O0
- # Compiler flags for describing the output path
- CFLAGSOUTOBJ=-o
- # Enable all warnings
diff --git a/patches/64bit/fix-64bit-sw-filter-ww8.diff b/patches/64bit/fix-64bit-sw-filter-ww8.diff
deleted file mode 100644
index 734e6e631..000000000
--- a/patches/64bit/fix-64bit-sw-filter-ww8.diff
+++ /dev/null
@@ -1,1000 +0,0 @@
---- sw/source/filter/ww8/dump/ww8scan.cxx 2004-06-17 15:49:57.000000000 +0200
-+++ sw/source/filter/ww8/dump/ww8scan.cxx 2005-05-17 16:49:01.000000000 +0200
-@@ -930,7 +930,7 @@ WW8PLCFx& WW8PLCFx_PCDAttrs::operator ++
-
- WW8_CP WW8PLCFx_PCDAttrs::Where()
- {
-- return ( pPcd ) ? pPcd->Where() : LONG_MAX;
-+ return ( pPcd ) ? pPcd->Where() : WW8_CP_MAX;
- }
-
- void WW8PLCFx_PCDAttrs::GetSprms(WW8PLCFxDesc* p)
-@@ -941,7 +941,7 @@ void WW8PLCFx_PCDAttrs::GetSprms(WW8PLCF
- if ( !pPcdI || !pPcdI->Get(p->nStartPos, p->nEndPos, pData) )
- {
- // PLCF fully processed
-- p->nStartPos = p->nEndPos = LONG_MAX;
-+ p->nStartPos = p->nEndPos = WW8_CP_MAX;
- p->pMemPos = 0;
- p->nSprmsLen = 0;
- return;
-@@ -956,7 +956,7 @@ void WW8PLCFx_PCDAttrs::GetSprms(WW8PLCF
- if( nSprmIdx >= nGrpprls )
- {
- // Invalid Index
-- p->nStartPos = p->nEndPos = LONG_MAX;
-+ p->nStartPos = p->nEndPos = WW8_CP_MAX;
- p->pMemPos = 0;
- p->nSprmsLen = 0;
- return;
-@@ -1128,7 +1128,7 @@ bool WW8PLCFx_PCD::SeekPos(WW8_CP nCpPos
-
- WW8_CP WW8PLCFx_PCD::Where()
- {
-- return pPcdI ? pPcdI->Where() : LONG_MAX;
-+ return pPcdI ? pPcdI->Where() : WW8_CP_MAX;
- }
-
- long WW8PLCFx_PCD::GetNoSprms( long& rStart, long& rEnd, long& rLen )
-@@ -1161,7 +1161,7 @@ WW8_FC WW8PLCFx_PCD::AktPieceStartCp2Fc(
- if ( !pPcdI->Get(nCpStart, nCpEnd, pData) )
- {
- ASSERT( !this, "AktPieceStartCp2Fc() with false Cp found (1)" );
-- return LONG_MAX;
-+ return WW8_FC_MAX;
- }
-
- ASSERT( nCp >= nCpStart && nCp < nCpEnd,
-@@ -1199,7 +1199,7 @@ WW8_CP WW8PLCFx_PCD::AktPieceStartFc2Cp(
- if ( !pPcdI->Get( nCpStart, nCpEnd, pData ) )
- {
- ASSERT( !this, "AktPieceStartFc2Cp() - Fehler" );
-- return LONG_MAX;
-+ return WW8_CP_MAX;
- }
- bool bIsUnicode = false;
- INT32 nFcStart = SVBT32ToLong( ((WW8_PCD*)pData)->fc );
-@@ -1472,8 +1472,8 @@ short WW8_BRC::DetermineBorderProperties
-
- WW8_CP WW8ScannerBase::WW8Fc2Cp( WW8_FC nFcPos ) const
- {
-- WW8_CP nFallBackCpEnd = LONG_MAX;
-- if( nFcPos == LONG_MAX )
-+ WW8_CP nFallBackCpEnd = WW8_CP_MAX;
-+ if( nFcPos == WW8_FC_MAX )
- return nFallBackCpEnd;
-
- bool bIsUnicode = false;
-@@ -1539,8 +1539,8 @@ WW8_FC WW8ScannerBase::WW8Cp2Fc(WW8_CP n
- {
- if( pTestFlag )
- *pTestFlag = true;
-- if( LONG_MAX == nCpPos )
-- return LONG_MAX;
-+ if( WW8_CP_MAX == nCpPos )
-+ return WW8_FC_MAX;
-
- bool bIsUnicode;
- if( !pIsUnicode )
-@@ -1549,7 +1549,7 @@ WW8_FC WW8ScannerBase::WW8Cp2Fc(WW8_CP n
- if( pPieceIter )
- { // Complex File
- if( pNextPieceCp )
-- *pNextPieceCp = LONG_MAX;
-+ *pNextPieceCp = WW8_CP_MAX;
-
- if( !pPieceIter->SeekPos( nCpPos ) )
- {
-@@ -1557,7 +1557,7 @@ WW8_FC WW8ScannerBase::WW8Cp2Fc(WW8_CP n
- *pTestFlag = false;
- else
- ASSERT( !this, "Falscher CP an WW8Cp2Fc() uebergeben" );
-- return LONG_MAX;
-+ return WW8_FC_MAX;
- }
- long nCpStart, nCpEnd;
- void* pData;
-@@ -1567,7 +1567,7 @@ WW8_FC WW8ScannerBase::WW8Cp2Fc(WW8_CP n
- *pTestFlag = false;
- else
- ASSERT( !this, "PLCFfpcd-Get ging schief" );
-- return LONG_MAX;
-+ return WW8_FC_MAX;
- }
- if( pNextPieceCp )
- *pNextPieceCp = nCpEnd;
-@@ -2611,7 +2611,7 @@ BYTE* WW8PLCFx_Fc_FKP::WW8Fkp::Get( WW8_
-
- if( nIdx >= nIMax )
- {
-- rStart = LONG_MAX;
-+ rStart = WW8_FC_MAX;
- return 0;
- }
-
-@@ -2670,7 +2670,7 @@ bool WW8PLCFx_Fc_FKP::WW8Fkp::HasSprm(US
- void WW8PLCFx::GetSprms( WW8PLCFxDesc* p )
- {
- ASSERT( !this, "Falsches GetSprms gerufen" );
-- p->nStartPos = p->nEndPos = LONG_MAX;
-+ p->nStartPos = p->nEndPos = WW8_CP_MAX;
- p->pMemPos = 0;
- p->nSprmsLen = 0;
- p->bRealLineEnd = false;
-@@ -2854,10 +2854,10 @@ WW8_FC WW8PLCFx_Fc_FKP::Where()
- if( !pFkp )
- {
- if( !NewFkp() )
-- return LONG_MAX;
-+ return WW8_FC_MAX;
- }
- WW8_FC nP = pFkp->Where();
-- if( nP != LONG_MAX )
-+ if( nP != WW8_FC_MAX )
- return nP;
-
- pFkp = 0; // FKP beendet -> hole neuen
-@@ -2867,7 +2867,7 @@ WW8_FC WW8PLCFx_Fc_FKP::Where()
- BYTE* WW8PLCFx_Fc_FKP::GetSprmsAndPos(WW8_FC& rStart, WW8_FC& rEnd, long& rLen)
- {
- rLen = 0; // Default
-- rStart = rEnd = LONG_MAX;
-+ rStart = rEnd = WW8_FC_MAX;
-
- if( !pFkp ) // Fkp not there ?
- {
-@@ -2876,7 +2876,7 @@ BYTE* WW8PLCFx_Fc_FKP::GetSprmsAndPos(WW
- }
-
- BYTE* pPos = pFkp->Get( rStart, rEnd, rLen );
-- if( rStart == LONG_MAX ) //Not found
-+ if( rStart == WW8_FC_MAX ) //Not found
- return 0;
- return pPos;
- }
-@@ -2890,7 +2890,7 @@ WW8PLCFx& WW8PLCFx_Fc_FKP::operator ++(
- }
-
- (*pFkp)++;
-- if( pFkp->Where() == LONG_MAX )
-+ if( pFkp->Where() == WW8_FC_MAX )
- NewFkp();
-
- return *this;
-@@ -3096,7 +3096,7 @@ void WW8PLCFx_Cp_FKP::GetSprms(WW8PLCFxD
- {
- p->bRealLineEnd = (ePLCF == PAP);
-
-- if ( ((ePLCF == PAP ) || (ePLCF == CHP)) && (nOrigCp != LONG_MAX) )
-+ if ( ((ePLCF == PAP ) || (ePLCF == CHP)) && (nOrigCp != WW8_CP_MAX) )
- {
- bool bIsUnicode=false;
- /*
-@@ -3243,7 +3243,7 @@ WW8PLCFx& WW8PLCFx_Cp_FKP::operator ++(
-
- if( GetPCDIdx() >= GetPCDIMax() ) // End of PLCF
- {
-- nAttrStart = nAttrEnd = LONG_MAX;
-+ nAttrStart = nAttrEnd = WW8_CP_MAX;
- return *this;
- }
-
-@@ -3306,7 +3306,7 @@ void WW8PLCFx_SEPX::GetSprms(WW8PLCFxDes
- p->bRealLineEnd = false;
- if (!pPLCF->Get( p->nStartPos, p->nEndPos, pData ))
- {
-- p->nStartPos = p->nEndPos = LONG_MAX; // PLCF fertig abgearbeitet
-+ p->nStartPos = p->nEndPos = WW8_CP_MAX; // PLCF fertig abgearbeitet
- p->pMemPos = 0;
- p->nSprmsLen = 0;
- }
-@@ -3315,7 +3315,7 @@ void WW8PLCFx_SEPX::GetSprms(WW8PLCFxDes
- long nPo = SVBT32ToLong( (BYTE*)pData+2 );
- if (nPo == -1L)
- {
-- p->nStartPos = p->nEndPos = LONG_MAX; // Sepx empty
-+ p->nStartPos = p->nEndPos = WW8_CP_MAX; // Sepx empty
- p->pMemPos = 0;
- p->nSprmsLen = 0;
- }
-@@ -3471,7 +3471,7 @@ bool WW8PLCFx_SubDoc::SeekPos( WW8_CP nC
-
- WW8_CP WW8PLCFx_SubDoc::Where()
- {
-- return ( pRef ) ? pRef->Where() : LONG_MAX;
-+ return ( pRef ) ? pRef->Where() : WW8_CP_MAX;
- }
-
- long WW8PLCFx_SubDoc::GetNoSprms( WW8_CP& rStart, long& rEnd, long& rLen )
-@@ -3482,7 +3482,7 @@ long WW8PLCFx_SubDoc::GetNoSprms( WW8_CP
-
- if ( !pRef )
- {
-- rStart = LONG_MAX; // Es gibt keine Noten
-+ rStart = WW8_CP_MAX; // Es gibt keine Noten
- rLen = 0;
- return -1;
- }
-@@ -3491,7 +3491,7 @@ long WW8PLCFx_SubDoc::GetNoSprms( WW8_CP
-
- if (!pRef->Get( rStart, nE, pData ))
- {
-- rStart = LONG_MAX; // PLCF fertig abgearbeitet
-+ rStart = WW8_CP_MAX; // PLCF fertig abgearbeitet
- rLen = 0;
- return -1;
- }
-@@ -3499,7 +3499,7 @@ long WW8PLCFx_SubDoc::GetNoSprms( WW8_CP
-
- if(!pTxt->Get( nSt, rLen, pData ))
- {
-- rStart = LONG_MAX; // PLCF fertig abgearbeitet
-+ rStart = WW8_CP_MAX; // PLCF fertig abgearbeitet
- rLen = 0;
- return -1;
- }
-@@ -3586,7 +3586,7 @@ bool WW8PLCFx_FLD::SeekPos(WW8_CP nCpPos
-
- WW8_CP WW8PLCFx_FLD::Where()
- {
-- return pPLCF ? pPLCF->Where() : LONG_MAX;
-+ return pPLCF ? pPLCF->Where() : WW8_CP_MAX;
- }
-
- bool WW8PLCFx_FLD::StartPosIsFieldStart()
-@@ -3624,14 +3624,14 @@ bool WW8PLCFx_FLD::EndPosIsFieldEnd()
-
- void WW8PLCFx_FLD::GetSprms(WW8PLCFxDesc* p)
- {
-- p->nStartPos = p->nEndPos = LONG_MAX;
-+ p->nStartPos = p->nEndPos = WW8_CP_MAX;
- p->pMemPos = 0;
- p->nSprmsLen = 0;
- p->bRealLineEnd = false;
-
- if (!pPLCF)
- {
-- p->nStartPos = LONG_MAX; // Es gibt keine Felder
-+ p->nStartPos = WW8_CP_MAX; // Es gibt keine Felder
- return;
- }
-
-@@ -3641,7 +3641,7 @@ void WW8PLCFx_FLD::GetSprms(WW8PLCFxDesc
- void *pData;
- if (!pPLCF->Get(nP, pData)) // Ende des PLCFspecial ?
- {
-- p->nStartPos = LONG_MAX; // PLCF fertig abgearbeitet
-+ p->nStartPos = WW8_CP_MAX; // PLCF fertig abgearbeitet
- return;
- }
-
-@@ -3650,7 +3650,7 @@ void WW8PLCFx_FLD::GetSprms(WW8PLCFxDesc
- (*pPLCF)++;
- if (!pPLCF->Get(nP, pData)) // Ende des PLCFspecial ?
- {
-- p->nStartPos = LONG_MAX; // PLCF fertig abgearbeitet
-+ p->nStartPos = WW8_CP_MAX; // PLCF fertig abgearbeitet
- return;
- }
-
-@@ -4060,7 +4060,7 @@ void WW8PLCFMan::AdjustEnds( WW8PLCFxDes
-
- if ( (&rDesc == pPap) && rDesc.bRealLineEnd )
- {
-- if ( pPap->nEndPos != LONG_MAX ) // Para adjust
-+ if ( pPap->nEndPos != WW8_CP_MAX ) // Para adjust
- {
- nLineEnd = pPap->nEndPos;// nLineEnd zeigt *hinter* das <CR>
- pPap->nEndPos--; // Absatzende um 1 Zeichen verkuerzen
-@@ -4086,10 +4086,10 @@ void WW8PLCFMan::AdjustEnds( WW8PLCFxDes
-
- void WW8PLCFxDesc::ReduceByOffset()
- {
-- ASSERT((LONG_MAX == nStartPos) || (nStartPos <= nEndPos),
-+ ASSERT((WW8_CP_MAX == nStartPos) || (nStartPos <= nEndPos),
- "Attr-Anfang und -Ende ueber Kreuz" );
-
-- if( nStartPos != LONG_MAX )
-+ if( nStartPos != WW8_CP_MAX )
- {
- /*
- ##516##,##517##
-@@ -4102,7 +4102,7 @@ void WW8PLCFxDesc::ReduceByOffset()
- else
- nStartPos -= nCpOfs;
- }
-- if( nEndPos != LONG_MAX )
-+ if( nEndPos != WW8_CP_MAX )
- {
- ASSERT(nCpOfs <= nEndPos,
- "oh oh, so much for the subdocument piece theory");
-@@ -4125,7 +4125,7 @@ void WW8PLCFMan::GetNewNoSprms( WW8PLCFx
- rDesc.nCp2OrIdx = rDesc.pPLCFx->GetNoSprms(rDesc.nStartPos, rDesc.nEndPos,
- rDesc.nSprmsLen);
-
-- ASSERT((LONG_MAX == rDesc.nStartPos) || (rDesc.nStartPos <= rDesc.nEndPos),
-+ ASSERT((WW8_CP_MAX == rDesc.nStartPos) || (rDesc.nStartPos <= rDesc.nEndPos),
- "Attr-Anfang und -Ende ueber Kreuz" );
-
- rDesc.ReduceByOffset();
-@@ -4293,7 +4293,7 @@ WW8PLCFMan::WW8PLCFMan(WW8ScannerBase* p
- if ((p == pChp) || (p == pPap))
- p->nStartPos = p->nEndPos = nStartCp;
- else
-- p->nStartPos = p->nEndPos = LONG_MAX;
-+ p->nStartPos = p->nEndPos = WW8_CP_MAX;
- }
-
- // initialisieren der Member-Vars High-Level
-@@ -4302,7 +4302,7 @@ WW8PLCFMan::WW8PLCFMan(WW8ScannerBase* p
-
- if( !p->pPLCFx )
- {
-- p->nStartPos = p->nEndPos = LONG_MAX;
-+ p->nStartPos = p->nEndPos = WW8_CP_MAX;
- continue;
- }
-
-@@ -4317,7 +4317,7 @@ WW8PLCFMan::WW8PLCFMan(WW8ScannerBase* p
- p->nSprmsLen = 0;
- p->nStartPos = nTemp;
- if (!(*p->pPLCFx).SeekPos(p->nStartPos))
-- p->nEndPos = p->nStartPos = LONG_MAX;
-+ p->nEndPos = p->nStartPos = WW8_CP_MAX;
- else
- GetNewSprms( *p );
- }
-@@ -4351,7 +4351,7 @@ USHORT WW8PLCFMan::WhereIdx(bool* pbStar
- pD = &aD[i];
- if (pD != pPcdA)
- {
-- if( (pD->nEndPos < nNext) && (pD->nStartPos == LONG_MAX) )
-+ if( (pD->nEndPos < nNext) && (pD->nStartPos == WW8_CP_MAX) )
- {
- // sonst ist Anfang = Ende
- nNext = pD->nEndPos;
-@@ -4564,7 +4564,7 @@ void WW8PLCFMan::AdvSprm(short nIdx, boo
- p->nSprmsLen = 0;
- }
- if (p->nSprmsLen < maSprmParser.MinSprmLen())
-- p->nStartPos = LONG_MAX; // es folgen Enden
-+ p->nStartPos = WW8_CP_MAX; // es folgen Enden
- }
- else
- {
-@@ -4587,7 +4587,7 @@ void WW8PLCFMan::AdvSprm(short nIdx, boo
- */
- if (!(*p->pPLCFx).SeekPos(p->nStartPos))
- {
-- p->nEndPos = LONG_MAX;
-+ p->nEndPos = WW8_CP_MAX;
- p->pPLCFx->SetDirty(true);
- }
- if (!p->pPLCFx->GetDirty() || pPcd)
-@@ -4618,7 +4618,7 @@ void WW8PLCFMan::AdvSprm(short nIdx, boo
- the pap and chps.
- */
- if (pPcd && ((p->nStartPos > pPcd->nStartPos) ||
-- (pPcd->nStartPos == LONG_MAX)) &&
-+ (pPcd->nStartPos == WW8_CP_MAX)) &&
- (pPcd->nEndPos != p->nStartPos))
- {
- pPcd->nEndPos = p->nStartPos;
-@@ -4846,7 +4846,7 @@ void WW8PLCFxDesc::Save( WW8PLCFxSave1&
- aD.nCpOfs = rSave.nCpOfs = nCpOfs;
- if (!(pPLCFx->SeekPos(aD.nStartPos)))
- {
-- aD.nEndPos = LONG_MAX;
-+ aD.nEndPos = WW8_CP_MAX;
- pPLCFx->SetDirty(true);
- }
- pPLCFx->GetSprms(&aD);
-@@ -4870,7 +4870,7 @@ void WW8PLCFxDesc::Restore( const WW8PLC
- nCpOfs = aD.nCpOfs = rSave.nCpOfs;
- if (!(pPLCFx->SeekPos(aD.nStartPos)))
- {
-- aD.nEndPos = LONG_MAX;
-+ aD.nEndPos = WW8_CP_MAX;
- pPLCFx->SetDirty(true);
- }
- pPLCFx->GetSprms(&aD);
---- sw/source/filter/ww8/ww8par2.cxx 2005-03-30 12:54:34.000000000 +0200
-+++ sw/source/filter/ww8/ww8par2.cxx 2005-05-17 16:59:49.000000000 +0200
-@@ -580,9 +580,9 @@ bool SwWW8ImplReader::SearchRowEnd(WW8PL
- aRes.pMemPos = 0;
- aRes.nEndPos = rStartCp;
-
-- while (pPap->HasFkp() && rStartCp != LONG_MAX)
-+ while (pPap->HasFkp() && rStartCp != WW8_CP_MAX)
- {
-- if (pPap->Where() != LONG_MAX)
-+ if (pPap->Where() != WW8_CP_MAX)
- {
- const BYTE* pB = pPap->HasSprm(TabRowSprm(nLevel));
- if (pB && *pB == 1)
-@@ -606,7 +606,7 @@ bool SwWW8ImplReader::SearchRowEnd(WW8PL
- //Seek to our next block of properties
- if (!(pPap->SeekPos(aRes.nStartPos)))
- {
-- aRes.nEndPos = LONG_MAX;
-+ aRes.nEndPos = WW8_CP_MAX;
- pPap->SetDirty(true);
- }
- pPap->GetSprms(&aRes);
-@@ -1928,7 +1928,7 @@ WW8TabDesc::WW8TabDesc(SwWW8ImplReader*
-
- if (!(pPap->SeekPos(aRes.nStartPos)))
- {
-- aRes.nEndPos = LONG_MAX;
-+ aRes.nEndPos = WW8_CP_MAX;
- pPap->SetDirty(true);
- }
- pPap->GetSprms(&aRes);
-@@ -1936,8 +1936,8 @@ WW8TabDesc::WW8TabDesc(SwWW8ImplReader*
-
- //Are we at the end of available properties
- if (
-- !pPap->HasFkp() || pPap->Where() == LONG_MAX ||
-- aRes.nStartPos == LONG_MAX
-+ !pPap->HasFkp() || pPap->Where() == WW8_CP_MAX ||
-+ aRes.nStartPos == WW8_CP_MAX
- )
- {
- bOk = false;
-@@ -1969,7 +1969,7 @@ WW8TabDesc::WW8TabDesc(SwWW8ImplReader*
- pIo->pPlcxMan->GetPap()->nOrigStartPos = aRes.nStartPos;
- if (!(pPap->SeekPos(aRes.nStartPos)))
- {
-- aRes.nEndPos = LONG_MAX;
-+ aRes.nEndPos = WW8_CP_MAX;
- pPap->SetDirty(true);
- }
- pPap->GetSprms(&aRes);
---- sw/source/filter/ww8/ww8scan.cxx 2005-05-16 18:51:42.000000000 +0200
-+++ sw/source/filter/ww8/ww8scan.cxx 2005-05-17 17:39:25.326874438 +0200
-@@ -938,7 +938,7 @@ WW8PLCFx& WW8PLCFx_PCDAttrs::operator ++
-
- WW8_CP WW8PLCFx_PCDAttrs::Where()
- {
-- return ( pPcd ) ? pPcd->Where() : LONG_MAX;
-+ return ( pPcd ) ? pPcd->Where() : WW8_CP_MAX;
- }
-
- void WW8PLCFx_PCDAttrs::GetSprms(WW8PLCFxDesc* p)
-@@ -949,7 +949,7 @@ void WW8PLCFx_PCDAttrs::GetSprms(WW8PLCF
- if ( !pPcdI || !pPcdI->Get(p->nStartPos, p->nEndPos, pData) )
- {
- // PLCF fully processed
-- p->nStartPos = p->nEndPos = LONG_MAX;
-+ p->nStartPos = p->nEndPos = WW8_CP_MAX;
- p->pMemPos = 0;
- p->nSprmsLen = 0;
- return;
-@@ -964,7 +964,7 @@ void WW8PLCFx_PCDAttrs::GetSprms(WW8PLCF
- if( nSprmIdx >= nGrpprls )
- {
- // Invalid Index
-- p->nStartPos = p->nEndPos = LONG_MAX;
-+ p->nStartPos = p->nEndPos = WW8_CP_MAX;
- p->pMemPos = 0;
- p->nSprmsLen = 0;
- return;
-@@ -1136,7 +1136,7 @@ bool WW8PLCFx_PCD::SeekPos(WW8_CP nCpPos
-
- WW8_CP WW8PLCFx_PCD::Where()
- {
-- return pPcdI ? pPcdI->Where() : LONG_MAX;
-+ return pPcdI ? pPcdI->Where() : WW8_CP_MAX;
- }
-
- long WW8PLCFx_PCD::GetNoSprms( WW8_CP& rStart, WW8_CP& rEnd, long& rLen )
-@@ -1146,7 +1146,7 @@ long WW8PLCFx_PCD::GetNoSprms( WW8_CP& r
-
- if ( !pPcdI || !pPcdI->Get(rStart, rEnd, pData) )
- {
-- rStart = rEnd = LONG_MAX;
-+ rStart = rEnd = WW8_CP_MAX;
- return -1;
- }
- return pPcdI->GetIdx();
-@@ -1169,7 +1169,7 @@ WW8_FC WW8PLCFx_PCD::AktPieceStartCp2Fc(
- if ( !pPcdI->Get(nCpStart, nCpEnd, pData) )
- {
- ASSERT( !this, "AktPieceStartCp2Fc() with false Cp found (1)" );
-- return LONG_MAX;
-+ return WW8_FC_MAX;
- }
-
- ASSERT( nCp >= nCpStart && nCp < nCpEnd,
-@@ -1193,7 +1193,7 @@ void WW8PLCFx_PCD::AktPieceFc2Cp( WW8_CP
- const WW8ScannerBase *pSBase )
- {
- //No point going anywhere with this
-- if ((rStartPos == LONG_MAX) && (rEndPos == LONG_MAX))
-+ if ((rStartPos == WW8_CP_MAX) && (rEndPos == WW8_CP_MAX))
- return;
-
- rStartPos = pSBase->WW8Fc2Cp( rStartPos );
-@@ -1207,7 +1207,7 @@ WW8_CP WW8PLCFx_PCD::AktPieceStartFc2Cp(
- if ( !pPcdI->Get( nCpStart, nCpEnd, pData ) )
- {
- ASSERT( !this, "AktPieceStartFc2Cp() - Fehler" );
-- return LONG_MAX;
-+ return WW8_CP_MAX;
- }
- bool bIsUnicode = false;
- INT32 nFcStart = SVBT32ToLong( ((WW8_PCD*)pData)->fc );
-@@ -1447,8 +1447,8 @@ short WW8_BRC::DetermineBorderProperties
-
- WW8_CP WW8ScannerBase::WW8Fc2Cp( WW8_FC nFcPos ) const
- {
-- WW8_CP nFallBackCpEnd = LONG_MAX;
-- if( nFcPos == LONG_MAX )
-+ WW8_CP nFallBackCpEnd = WW8_CP_MAX;
-+ if( nFcPos == WW8_FC_MAX )
- return nFallBackCpEnd;
-
- bool bIsUnicode = false;
-@@ -1514,8 +1514,8 @@ WW8_FC WW8ScannerBase::WW8Cp2Fc(WW8_CP n
- {
- if( pTestFlag )
- *pTestFlag = true;
-- if( LONG_MAX == nCpPos )
-- return LONG_MAX;
-+ if( WW8_CP_MAX == nCpPos )
-+ return WW8_FC_MAX;
-
- bool bIsUnicode;
- if( !pIsUnicode )
-@@ -1524,7 +1524,7 @@ WW8_FC WW8ScannerBase::WW8Cp2Fc(WW8_CP n
- if( pPieceIter )
- { // Complex File
- if( pNextPieceCp )
-- *pNextPieceCp = LONG_MAX;
-+ *pNextPieceCp = WW8_CP_MAX;
-
- if( !pPieceIter->SeekPos( nCpPos ) )
- {
-@@ -1532,7 +1532,7 @@ WW8_FC WW8ScannerBase::WW8Cp2Fc(WW8_CP n
- *pTestFlag = false;
- else
- ASSERT( !this, "Falscher CP an WW8Cp2Fc() uebergeben" );
-- return LONG_MAX;
-+ return WW8_FC_MAX;
- }
- WW8_CP nCpStart, nCpEnd;
- void* pData;
-@@ -1542,7 +1542,7 @@ WW8_FC WW8ScannerBase::WW8Cp2Fc(WW8_CP n
- *pTestFlag = false;
- else
- ASSERT( !this, "PLCFfpcd-Get ging schief" );
-- return LONG_MAX;
-+ return WW8_FC_MAX;
- }
- if( pNextPieceCp )
- *pNextPieceCp = nCpEnd;
-@@ -1600,8 +1600,8 @@ WW8PLCFpcd* WW8ScannerBase::OpenPieceTab
- }
- pStr->Seek( nClxPos );
- nLeft = nClxLen;
- pPieceGrpprls = new BYTE*[nGrpprl + 1];
-- memset( pPieceGrpprls, 0, ( nGrpprl + 1 ) * 4 );
-+ memset( pPieceGrpprls, 0, ( nGrpprl + 1 ) * sizeof( BYTE * ) );
- nPieceGrpprls = nGrpprl;
- INT16 nAktGrpprl = 0; // lies Grpprls ein
- while( 1 )
-@@ -2172,7 +2172,7 @@ bool WW8PLCFspecial::GetData(WW8_CP nInI
- {
- if ( nInIdx >= nIMax )
- {
-- rPos = LONG_MAX;
-+ rPos = WW8_FC_MAX;
- return false;
- }
- rPos = pPLCF_PosArray[nInIdx];
-@@ -2316,7 +2316,7 @@ bool WW8PLCF::Get(WW8_CP& rStart, WW8_CP
- {
- if ( nIdx >= nIMax )
- {
-- rStart = rEnd = LONG_MAX;
-+ rStart = rEnd = WW8_CP_MAX;
- return false;
- }
- rStart = pPLCF_PosArray[ nIdx ];
-@@ -2328,7 +2328,7 @@ bool WW8PLCF::Get(WW8_CP& rStart, WW8_CP
- WW8_CP WW8PLCF::Where() const
- {
- if ( nIdx >= nIMax )
-- return LONG_MAX;
-+ return WW8_CP_MAX;
-
- return pPLCF_PosArray[nIdx];
- }
-@@ -2403,7 +2403,7 @@ bool WW8PLCFpcd_Iter::Get(WW8_CP& rStart
- {
- if( nIdx >= rPLCF.nIMax )
- {
-- rStart = rEnd = LONG_MAX;
-+ rStart = rEnd = WW8_CP_MAX;
- return false;
- }
- rStart = rPLCF.pPLCF_PosArray[nIdx];
-@@ -2415,7 +2415,7 @@ bool WW8PLCFpcd_Iter::Get(WW8_CP& rStart
- WW8_FC WW8PLCFpcd_Iter::Where() const
- {
- if ( nIdx >= rPLCF.nIMax )
-- return LONG_MAX;
-+ return WW8_FC_MAX;
-
- return rPLCF.pPLCF_PosArray[nIdx];
- }
-@@ -2627,7 +2627,7 @@ BYTE* WW8PLCFx_Fc_FKP::WW8Fkp::Get(WW8_F
-
- if (mnIdx >= mnIMax)
- {
-- rStart = LONG_MAX;
-+ rStart = WW8_FC_MAX;
- return 0;
- }
-
-@@ -2690,7 +2690,7 @@ bool WW8PLCFx_Fc_FKP::WW8Fkp::HasSprm(US
- void WW8PLCFx::GetSprms( WW8PLCFxDesc* p )
- {
- ASSERT( !this, "Falsches GetSprms gerufen" );
-- p->nStartPos = p->nEndPos = LONG_MAX;
-+ p->nStartPos = p->nEndPos = WW8_CP_MAX;
- p->pMemPos = 0;
- p->nSprmsLen = 0;
- p->bRealLineEnd = false;
-@@ -2700,7 +2700,7 @@ void WW8PLCFx::GetSprms( WW8PLCFxDesc* p
- WW8_CP WW8PLCFx::GetNoSprms( WW8_CP& rStart, WW8_CP& rEnd, WW8_CP& rLen )
- {
- ASSERT( !this, "Falsches GetNoSprms gerufen" );
-- rStart = rEnd = LONG_MAX;
-+ rStart = rEnd = WW8_CP_MAX;
- rLen = 0;
- return 0;
- }
-@@ -2877,10 +2877,10 @@ WW8_FC WW8PLCFx_Fc_FKP::Where()
- if( !pFkp )
- {
- if( !NewFkp() )
-- return LONG_MAX;
-+ return WW8_FC_MAX;
- }
- WW8_FC nP = pFkp->Where();
-- if( nP != LONG_MAX )
-+ if( nP != WW8_FC_MAX )
- return nP;
-
- pFkp = 0; // FKP beendet -> hole neuen
-@@ -2890,7 +2890,7 @@ WW8_FC WW8PLCFx_Fc_FKP::Where()
- BYTE* WW8PLCFx_Fc_FKP::GetSprmsAndPos(WW8_FC& rStart, WW8_FC& rEnd, WW8_CP& rLen)
- {
- rLen = 0; // Default
-- rStart = rEnd = LONG_MAX;
-+ rStart = rEnd = WW8_FC_MAX;
-
- if( !pFkp ) // Fkp not there ?
- {
-@@ -2899,7 +2899,7 @@ BYTE* WW8PLCFx_Fc_FKP::GetSprmsAndPos(WW
- }
-
- BYTE* pPos = pFkp->Get( rStart, rEnd, rLen );
-- if( rStart == LONG_MAX ) //Not found
-+ if( rStart == WW8_FC_MAX ) //Not found
- return 0;
- return pPos;
- }
-@@ -2913,7 +2913,7 @@ WW8PLCFx& WW8PLCFx_Fc_FKP::operator ++(
- }
-
- (*pFkp)++;
-- if( pFkp->Where() == LONG_MAX )
-+ if( pFkp->Where() == WW8_FC_MAX )
- NewFkp();
-
- return *this;
-@@ -3119,7 +3119,7 @@ void WW8PLCFx_Cp_FKP::GetSprms(WW8PLCFxD
- {
- p->bRealLineEnd = (ePLCF == PAP);
-
-- if ( ((ePLCF == PAP ) || (ePLCF == CHP)) && (nOrigCp != LONG_MAX) )
-+ if ( ((ePLCF == PAP ) || (ePLCF == CHP)) && (nOrigCp != WW8_CP_MAX) )
- {
- bool bIsUnicode=false;
- /*
-@@ -3266,7 +3266,7 @@ WW8PLCFx& WW8PLCFx_Cp_FKP::operator ++(
-
- if( GetPCDIdx() >= GetPCDIMax() ) // End of PLCF
- {
-- nAttrStart = nAttrEnd = LONG_MAX;
-+ nAttrStart = nAttrEnd = WW8_CP_MAX;
- return *this;
- }
-
-@@ -3329,7 +3329,7 @@ void WW8PLCFx_SEPX::GetSprms(WW8PLCFxDes
- p->bRealLineEnd = false;
- if (!pPLCF->Get( p->nStartPos, p->nEndPos, pData ))
- {
-- p->nStartPos = p->nEndPos = LONG_MAX; // PLCF fertig abgearbeitet
-+ p->nStartPos = p->nEndPos = WW8_CP_MAX; // PLCF fertig abgearbeitet
- p->pMemPos = 0;
- p->nSprmsLen = 0;
- }
-@@ -3338,7 +3338,7 @@ void WW8PLCFx_SEPX::GetSprms(WW8PLCFxDes
- long nPo = SVBT32ToLong( (BYTE*)pData+2 );
- if (nPo == -1L)
- {
-- p->nStartPos = p->nEndPos = LONG_MAX; // Sepx empty
-+ p->nStartPos = p->nEndPos = WW8_CP_MAX; // Sepx empty
- p->pMemPos = 0;
- p->nSprmsLen = 0;
- }
-@@ -3494,12 +3494,12 @@ bool WW8PLCFx_SubDoc::SeekPos( WW8_CP nC
-
- WW8_CP WW8PLCFx_SubDoc::Where()
- {
-- return ( pRef ) ? pRef->Where() : LONG_MAX;
-+ return ( pRef ) ? pRef->Where() : WW8_CP_MAX;
- }
-
- void WW8PLCFx_SubDoc::GetSprms(WW8PLCFxDesc* p)
- {
-- p->nStartPos = p->nEndPos = LONG_MAX;
-+ p->nStartPos = p->nEndPos = WW8_CP_MAX;
- p->pMemPos = 0;
- p->nSprmsLen = 0;
- p->bRealLineEnd = false;
-@@ -3513,7 +3513,7 @@ void WW8PLCFx_SubDoc::GetSprms(WW8PLCFxD
- WW8_CP nFoo;
- if (!pRef->Get(p->nStartPos, nFoo, pData))
- {
-- p->nEndPos = p->nStartPos = LONG_MAX;
-+ p->nEndPos = p->nStartPos = WW8_CP_MAX;
- return;
- }
-
-@@ -3526,7 +3526,7 @@ void WW8PLCFx_SubDoc::GetSprms(WW8PLCFxD
-
- if (!pTxt->Get(p->nCp2OrIdx, p->nSprmsLen, pData))
- {
-- p->nEndPos = p->nStartPos = LONG_MAX;
-+ p->nEndPos = p->nStartPos = WW8_CP_MAX;
- p->nSprmsLen = 0;
- return;
- }
-@@ -3612,7 +3612,7 @@ bool WW8PLCFx_FLD::SeekPos(WW8_CP nCpPos
-
- WW8_CP WW8PLCFx_FLD::Where()
- {
-- return pPLCF ? pPLCF->Where() : LONG_MAX;
-+ return pPLCF ? pPLCF->Where() : WW8_CP_MAX;
- }
-
- bool WW8PLCFx_FLD::StartPosIsFieldStart()
-@@ -3650,14 +3650,14 @@ bool WW8PLCFx_FLD::EndPosIsFieldEnd()
-
- void WW8PLCFx_FLD::GetSprms(WW8PLCFxDesc* p)
- {
-- p->nStartPos = p->nEndPos = LONG_MAX;
-+ p->nStartPos = p->nEndPos = WW8_CP_MAX;
- p->pMemPos = 0;
- p->nSprmsLen = 0;
- p->bRealLineEnd = false;
-
- if (!pPLCF)
- {
-- p->nStartPos = LONG_MAX; // Es gibt keine Felder
-+ p->nStartPos = WW8_CP_MAX; // Es gibt keine Felder
- return;
- }
-
-@@ -3667,7 +3667,7 @@ void WW8PLCFx_FLD::GetSprms(WW8PLCFxDesc
- void *pData;
- if (!pPLCF->Get(nP, pData)) // Ende des PLCFspecial ?
- {
-- p->nStartPos = LONG_MAX; // PLCF fertig abgearbeitet
-+ p->nStartPos = WW8_CP_MAX; // PLCF fertig abgearbeitet
- return;
- }
-
-@@ -3676,7 +3676,7 @@ void WW8PLCFx_FLD::GetSprms(WW8PLCFxDesc
- (*pPLCF)++;
- if (!pPLCF->Get(nP, pData)) // Ende des PLCFspecial ?
- {
-- p->nStartPos = LONG_MAX; // PLCF fertig abgearbeitet
-+ p->nStartPos = WW8_CP_MAX; // PLCF fertig abgearbeitet
- return;
- }
-
-@@ -3904,12 +3904,12 @@ WW8_CP WW8PLCFx_Book::Where()
- WW8_CP WW8PLCFx_Book::GetNoSprms( WW8_CP& rStart, WW8_CP& rEnd, WW8_CP& rLen )
- {
- void* pData;
-- rEnd = LONG_MAX;
-+ rEnd = WW8_CP_MAX;
- rLen = 0;
-
- if (!pBook[0] || !pBook[1] || !nIMax || (pBook[nIsEnd]->GetIdx()) >= nIMax)
- {
-- rStart = rEnd = LONG_MAX;
-+ rStart = rEnd = WW8_CP_MAX;
- return -1;
- }
-
-@@ -4100,7 +4100,7 @@ void WW8PLCFMan::AdjustEnds( WW8PLCFxDes
-
- if ( (&rDesc == pPap) && rDesc.bRealLineEnd )
- {
-- if ( pPap->nEndPos != LONG_MAX ) // Para adjust
-+ if ( pPap->nEndPos != WW8_CP_MAX ) // Para adjust
- {
- nLineEnd = pPap->nEndPos;// nLineEnd zeigt *hinter* das <CR>
- pPap->nEndPos--; // Absatzende um 1 Zeichen verkuerzen
-@@ -4126,10 +4126,10 @@ void WW8PLCFMan::AdjustEnds( WW8PLCFxDes
-
- void WW8PLCFxDesc::ReduceByOffset()
- {
-- ASSERT((LONG_MAX == nStartPos) || (nStartPos <= nEndPos),
-+ ASSERT((WW8_CP_MAX == nStartPos) || (nStartPos <= nEndPos),
- "Attr-Anfang und -Ende ueber Kreuz" );
-
-- if( nStartPos != LONG_MAX )
-+ if( nStartPos != WW8_CP_MAX )
- {
- /*
- ##516##,##517##
-@@ -4142,7 +4142,7 @@ void WW8PLCFxDesc::ReduceByOffset()
- else
- nStartPos -= nCpOfs;
- }
-- if( nEndPos != LONG_MAX )
-+ if( nEndPos != WW8_CP_MAX )
- {
- ASSERT(nCpOfs <= nEndPos,
- "oh oh, so much for the subdocument piece theory");
-@@ -4165,7 +4165,7 @@ void WW8PLCFMan::GetNewNoSprms( WW8PLCFx
- rDesc.nCp2OrIdx = rDesc.pPLCFx->GetNoSprms(rDesc.nStartPos, rDesc.nEndPos,
- rDesc.nSprmsLen);
-
-- ASSERT((LONG_MAX == rDesc.nStartPos) || (rDesc.nStartPos <= rDesc.nEndPos),
-+ ASSERT((WW8_CP_MAX == rDesc.nStartPos) || (rDesc.nStartPos <= rDesc.nEndPos),
- "Attr-Anfang und -Ende ueber Kreuz" );
-
- rDesc.ReduceByOffset();
-@@ -4340,7 +4340,7 @@ WW8PLCFMan::WW8PLCFMan(WW8ScannerBase* p
- if ((p == pChp) || (p == pPap))
- p->nStartPos = p->nEndPos = nStartCp;
- else
-- p->nStartPos = p->nEndPos = LONG_MAX;
-+ p->nStartPos = p->nEndPos = WW8_CP_MAX;
- }
-
- // initialisieren der Member-Vars High-Level
-@@ -4349,7 +4349,7 @@ WW8PLCFMan::WW8PLCFMan(WW8ScannerBase* p
-
- if( !p->pPLCFx )
- {
-- p->nStartPos = p->nEndPos = LONG_MAX;
-+ p->nStartPos = p->nEndPos = WW8_CP_MAX;
- continue;
- }
-
-@@ -4364,7 +4364,7 @@ WW8PLCFMan::WW8PLCFMan(WW8ScannerBase* p
- p->nSprmsLen = 0;
- p->nStartPos = nTemp;
- if (!(*p->pPLCFx).SeekPos(p->nStartPos))
-- p->nEndPos = p->nStartPos = LONG_MAX;
-+ p->nEndPos = p->nStartPos = WW8_CP_MAX;
- else
- GetNewSprms( *p );
- }
-@@ -4398,7 +4398,7 @@ USHORT WW8PLCFMan::WhereIdx(bool* pbStar
- pD = &aD[i];
- if (pD != pPcdA)
- {
-- if( (pD->nEndPos < nNext) && (pD->nStartPos == LONG_MAX) )
-+ if( (pD->nEndPos < nNext) && (pD->nStartPos == WW8_CP_MAX) )
- {
- // sonst ist Anfang = Ende
- nNext = pD->nEndPos;
-@@ -4613,7 +4613,7 @@ void WW8PLCFMan::AdvSprm(short nIdx, boo
- p->nSprmsLen = 0;
- }
- if (p->nSprmsLen < maSprmParser.MinSprmLen())
-- p->nStartPos = LONG_MAX; // es folgen Enden
-+ p->nStartPos = WW8_CP_MAX; // es folgen Enden
- }
- else
- {
-@@ -4636,7 +4636,7 @@ void WW8PLCFMan::AdvSprm(short nIdx, boo
- */
- if (!(*p->pPLCFx).SeekPos(p->nStartPos))
- {
-- p->nEndPos = LONG_MAX;
-+ p->nEndPos = WW8_CP_MAX;
- p->pPLCFx->SetDirty(true);
- }
- if (!p->pPLCFx->GetDirty() || pPcd)
-@@ -4667,7 +4667,7 @@ void WW8PLCFMan::AdvSprm(short nIdx, boo
- the pap and chps.
- */
- if (pPcd && ((p->nStartPos > pPcd->nStartPos) ||
-- (pPcd->nStartPos == LONG_MAX)) &&
-+ (pPcd->nStartPos == WW8_CP_MAX)) &&
- (pPcd->nEndPos != p->nStartPos))
- {
- pPcd->nEndPos = p->nStartPos;
-@@ -4895,7 +4895,7 @@ void WW8PLCFxDesc::Save( WW8PLCFxSave1&
- aD.nCpOfs = rSave.nCpOfs = nCpOfs;
- if (!(pPLCFx->SeekPos(aD.nStartPos)))
- {
-- aD.nEndPos = LONG_MAX;
-+ aD.nEndPos = WW8_CP_MAX;
- pPLCFx->SetDirty(true);
- }
- pPLCFx->GetSprms(&aD);
-@@ -4919,7 +4919,7 @@ void WW8PLCFxDesc::Restore( const WW8PLC
- nCpOfs = aD.nCpOfs = rSave.nCpOfs;
- if (!(pPLCFx->SeekPos(aD.nStartPos)))
- {
-- aD.nEndPos = LONG_MAX;
-+ aD.nEndPos = WW8_CP_MAX;
- pPLCFx->SetDirty(true);
- }
- pPLCFx->GetSprms(&aD);
---- sw/source/filter/ww8/ww8scan.hxx 2005-05-16 18:51:42.000000000 +0200
-+++ sw/source/filter/ww8/ww8scan.hxx 2005-05-17 16:31:56.000000000 +0200
-@@ -268,7 +268,7 @@ public:
- // bzw. naechste groesseren Wert
- bool SeekPosExact(long nPos);
- WW8_FC Where() const
-- { return ( nIdx >= nIMax ) ? LONG_MAX : pPLCF_PosArray[nIdx]; }
-+ { return ( nIdx >= nIMax ) ? WW8_FC_MAX : pPLCF_PosArray[nIdx]; }
- bool Get(WW8_CP& rStart, void*& rpValue) const;
- bool GetData(WW8_CP nIdx, WW8_CP& rPos, void*& rpValue) const;
-
-@@ -551,7 +551,7 @@ public:
- bool SeekPos(WW8_FC nFc);
- WW8_FC Where() const
- {
-- return (mnIdx < mnIMax) ? maEntries[mnIdx].mnFC : LONG_MAX;
-+ return (mnIdx < mnIMax) ? maEntries[mnIdx].mnFC : WW8_FC_MAX;
- }
- WW8Fkp& operator ++( int )
- {
-@@ -773,7 +773,7 @@ public:
- virtual WW8PLCFx& operator ++( int );
- const String* GetName() const;
- WW8_CP GetStartPos() const
-- { return ( nIsEnd ) ? LONG_MAX : pBook[0]->Where(); }
-+ { return ( nIsEnd ) ? WW8_CP_MAX : pBook[0]->Where(); }
- long GetLen() const;
- bool GetIsEnd() const { return nIsEnd ? true : false; }
- long GetHandle() const;
-@@ -843,10 +843,10 @@ struct WW8PLCFxDesc
- bool bRealLineEnd; // false bei Pap-Piece-Ende
- void Save( WW8PLCFxSave1& rSave ) const;
- void Restore( const WW8PLCFxSave1& rSave );
-- //With nStartPos set to LONG_MAX then in the case of a pap or chp
-+ //With nStartPos set to WW8_CP_MAX then in the case of a pap or chp
- //GetSprms will not search for the sprms, but instead take the
- //existing ones.
-- WW8PLCFxDesc() : pIdStk(0), nStartPos(LONG_MAX) {}
-+ WW8PLCFxDesc() : pIdStk(0), nStartPos(WW8_CP_MAX) {}
- void ReduceByOffset();
- };
-
---- sw/source/filter/ww8/ww8struc.hxx 2005-05-17 16:26:23.000000000 +0200
-+++ sw/source/filter/ww8/ww8struc.hxx 2005-05-17 17:01:41.000000000 +0200
-@@ -108,6 +108,9 @@ typedef sal_Int16 WW8_PN;
- typedef sal_Int32 WW8_FC;
- typedef sal_Int32 WW8_CP;
-
-+const WW8_FC WW8_FC_MAX = 0x7fffffff;
-+const WW8_CP WW8_CP_MAX = 0x7fffffff;
-+
- // STD: STyle Definition
- // The STD contains the entire definition of a style.
- // It has two parts, a fixed-length base (cbSTDBase bytes long)
diff --git a/patches/64bit/fix-64bit-tools-svbt.diff b/patches/64bit/fix-64bit-tools-svbt.diff
deleted file mode 100644
index 6855844cf..000000000
--- a/patches/64bit/fix-64bit-tools-svbt.diff
+++ /dev/null
@@ -1,32 +0,0 @@
---- tools/inc/solar.h 2005-05-16 14:55:18.163486499 +0200
-+++ tools/inc/solar.h 2005-05-16 14:55:13.244029682 +0200
-@@ -169,12 +169,12 @@ inline USHORT SVBT16ToShort( const SVBT1
- + ((USHORT)p[1] << 8); }
- #endif
- #if defined OSL_LITENDIAN && SAL_TYPES_ALIGNMENT4 == 1
--inline ULONG SVBT32ToLong ( const SVBT32 p ) { return *(ULONG*)p; }
-+inline sal_uInt32 SVBT32ToLong ( const SVBT32 p ) { return *(sal_uInt32*)p; }
- #else
--inline ULONG SVBT32ToLong ( const SVBT32 p ) { return (ULONG)p[0]
-- + ((ULONG)p[1] << 8)
-- + ((ULONG)p[2] << 16)
-- + ((ULONG)p[3] << 24); }
-+inline sal_uInt32 SVBT32ToLong ( const SVBT32 p ) { return (sal_uInt32)p[0]
-+ + ((sal_uInt32)p[1] << 8)
-+ + ((sal_uInt32)p[2] << 16)
-+ + ((sal_uInt32)p[3] << 24); }
- #endif
- #if defined OSL_LITENDIAN && SAL_TYPES_ALIGNMENT8 == 1
- inline double SVBT64ToDouble( const SVBT64 p ) { return *(double*)p; }
-@@ -210,9 +210,9 @@ inline void ShortToSVBT16( USHORT n, SV
- p[1] = (BYTE)(n >> 8); }
- #endif
- #if defined OSL_LITENDIAN && SAL_TYPES_ALIGNMENT4 == 1
--inline void LongToSVBT32 ( ULONG n, SVBT32 p ) { *(ULONG*)p = n; }
-+inline void LongToSVBT32 ( sal_uInt32 n, SVBT32 p ) { *(sal_uInt32*)p = n; }
- #else
--inline void LongToSVBT32 ( ULONG n, SVBT32 p ) { p[0] = (BYTE) n;
-+inline void LongToSVBT32 ( sal_uInt32 n, SVBT32 p ) { p[0] = (BYTE) n;
- p[1] = (BYTE)(n >> 8);
- p[2] = (BYTE)(n >> 16);
- p[3] = (BYTE)(n >> 24); }
diff --git a/patches/64bit/gcj-jvmfwk-gcc41-lib64.diff b/patches/64bit/gcj-jvmfwk-gcc41-lib64.diff
deleted file mode 100644
index 525fff2aa..000000000
--- a/patches/64bit/gcj-jvmfwk-gcc41-lib64.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- jvmfwk/plugins/sunmajor/pluginlib/gnujre.cxx 7 Sep 2005 19:29:41 -0000 1.4
-+++ jvmfwk/plugins/sunmajor/pluginlib/gnujre.cxx 5 Dec 2005 13:34:53 -0000 1.4.16.1
-@@ -63,6 +63,8 @@ char const* const* GnuInfo::getJavaExePa
- char const* const* GnuInfo::getRuntimePaths(int * size)
- {
- static char const* ar[]= {
-+ "/lib64/libgcj.so.7",
-+ "/lib64/libgcj.so.6"
- "/lib/libgcj.so.7",
- "/lib/libgcj.so.6"
- #if 0 //unreliable
diff --git a/patches/64bit/intptr-basic.diff b/patches/64bit/intptr-basic.diff
deleted file mode 100644
index 2f570f754..000000000
--- a/patches/64bit/intptr-basic.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- basic/source/runtime/dllmgr.cxx 2005-10-26 11:40:41.000000000 +0200
-+++ basic/source/runtime/dllmgr.cxx 2005-10-26 11:42:00.000000000 +0200
-@@ -590,7 +590,7 @@ void* SbiDllMgr::CreateStack( SbxArray*
- strcpy( pStr, rStr.GetBuffer() ); // #100211# - checked
- // ist nicht so sauber, aber wir sparen ein Pointerarray
- DBG_ASSERT(sizeof(UINT32)>=sizeof(char*),"Gleich krachts im Basic");
-- pVar->SetUserData( (UINT32)pStr );
-+ pVar->SetUserData( sal_uIntPtr( pStr ) );
- *((const char**)pTop) = pStr;
- pTop += sizeof( char* );
- }
-@@ -644,7 +644,7 @@ void* SbiDllMgr::CreateStack( SbxArray*
- strcpy( pStr, aByteStr.GetBuffer() ); // #100211# - checked
- // ist nicht so sauber, aber wir sparen ein Pointerarray
- DBG_ASSERT(sizeof(UINT32)>=sizeof(char*),"Gleich krachts im Basic");
-- pVar->SetUserData( (UINT32)pStr );
-+ pVar->SetUserData( sal_uIntPtr( pStr ) );
- *((const char**)pTop) = pStr;
- pTop += sizeof( char* );
- }
diff --git a/patches/64bit/numberformat-basic.diff b/patches/64bit/numberformat-basic.diff
deleted file mode 100644
index 96fbdceee..000000000
--- a/patches/64bit/numberformat-basic.diff
+++ /dev/null
@@ -1,155 +0,0 @@
---- basic/source/runtime/methods1.cxx 2005-01-28 17:08:41.000000000 +0100
-+++ basic/source/runtime/methods1.cxx 2005-04-21 10:44:16.780531920 +0200
-@@ -2244,7 +2244,7 @@ RTLFUNC(FormatDateTime)
- pFormatter = pINST->GetNumberFormatter();
- else
- {
-- ULONG n; // Dummy
-+ sal_uInt32 n; // Dummy
- SbiInstance::PrepareNumberFormatter( pFormatter, n, n, n );
- }
-
---- basic/source/sbx/sbxdate.cxx 17 Mar 2004 13:28:05 -0000 1.8
-+++ basic/source/sbx/sbxdate.cxx 21 Jan 2005 17:17:23 -0000 1.8.132.1
-@@ -146,7 +146,7 @@ double ImpGetDate( const SbxValues* p )
- xFactory = comphelper::getProcessServiceFactory();
- pFormatter = new SvNumberFormatter( xFactory, eLangType );
-
-- ULONG nIndex;
-+ sal_uInt32 nIndex;
- xub_StrLen nCheckPos = 0;
- short nType = 127;
-
-@@ -306,7 +306,7 @@ start:
- xFactory = comphelper::getProcessServiceFactory();
- pFormatter = new SvNumberFormatter( xFactory, eLangType );
-
-- ULONG nIndex;
-+ sal_uInt32 nIndex;
- xub_StrLen nCheckPos = 0;
- short nType;
-
---- basic/source/inc/runtime.hxx 28 Jan 2005 16:07:49 -0000 1.20
-+++ basic/source/inc/runtime.hxx 9 Mar 2005 18:01:30 -0000 1.19.16.2
-@@ -242,7 +242,7 @@ class SbiInstance
- SvNumberFormatter* pNumberFormatter;
- LanguageType meFormatterLangType;
- DateFormat meFormatterDateFormat;
-- ULONG nStdDateIdx, nStdTimeIdx, nStdDateTimeIdx;
-+ sal_uInt32 nStdDateIdx, nStdTimeIdx, nStdDateTimeIdx;
-
- SbError nErr; // aktueller Fehlercode
- String aErrorMsg; // letzte Error-Message fuer $ARG
-@@ -292,13 +292,13 @@ public:
- SbiRTLData* GetRTLData() const { return (SbiRTLData*)&aRTLData; }
-
- SvNumberFormatter* GetNumberFormatter();
-- ULONG GetStdDateIdx() const { return nStdDateIdx; }
-- ULONG GetStdTimeIdx() const { return nStdTimeIdx; }
-- ULONG GetStdDateTimeIdx() const { return nStdDateTimeIdx; }
-+ sal_uInt32 GetStdDateIdx() const { return nStdDateIdx; }
-+ sal_uInt32 GetStdTimeIdx() const { return nStdTimeIdx; }
-+ sal_uInt32 GetStdDateTimeIdx() const { return nStdDateTimeIdx; }
-
- // #39629# NumberFormatter auch statisch anbieten
- static void PrepareNumberFormatter( SvNumberFormatter*& rpNumberFormatter,
-- ULONG &rnStdDateIdx, ULONG &rnStdTimeIdx, ULONG &rnStdDateTimeIdx,
-+ sal_uInt32 &rnStdDateIdx, sal_uInt32 &rnStdTimeIdx, sal_uInt32 &rnStdDateTimeIdx,
- LanguageType* peFormatterLangType=NULL, DateFormat* peFormatterDateFormat=NULL );
- };
-
---- basic/source/runtime/methods.cxx 15 Nov 2004 16:36:55 -0000 1.59
-+++ basic/source/runtime/methods.cxx 21 Jan 2005 16:01:25 -0000 1.59.16.1
-@@ -1753,11 +1753,11 @@ RTLFUNC(DateValue)
- pFormatter = pINST->GetNumberFormatter();
- else
- {
-- ULONG n; // Dummy
-+ sal_uInt32 n; // Dummy
- SbiInstance::PrepareNumberFormatter( pFormatter, n, n, n );
- }
-
-- ULONG nIndex;
-+ sal_uInt32 nIndex;
- double fResult;
- String aStr( rPar.Get(1)->GetString() );
- BOOL bSuccess = pFormatter->IsNumberFormat( aStr, nIndex, fResult );
-@@ -1796,11 +1796,11 @@ RTLFUNC(TimeValue)
- pFormatter = pINST->GetNumberFormatter();
- else
- {
-- ULONG n; // Dummy
-+ sal_uInt32 n; // Dummy
- SbiInstance::PrepareNumberFormatter( pFormatter, n, n, n );
- }
-
-- ULONG nIndex;
-+ sal_uInt32 nIndex;
- double fResult;
- BOOL bSuccess = pFormatter->IsNumberFormat( rPar.Get(1)->GetString(),
- nIndex, fResult );
-@@ -1951,7 +1951,7 @@ RTLFUNC(Time)
-
- // #39629 pINST pruefen, kann aus URL-Zeile gerufen werden
- SvNumberFormatter* pFormatter = NULL;
-- ULONG nIndex;
-+ sal_uInt32 nIndex;
- if( pINST )
- {
- pFormatter = pINST->GetNumberFormatter();
-@@ -1959,7 +1959,7 @@ RTLFUNC(Time)
- }
- else
- {
-- ULONG n; // Dummy
-+ sal_uInt32 n; // Dummy
- SbiInstance::PrepareNumberFormatter( pFormatter, n, nIndex, n );
- }
-
-@@ -2028,7 +2028,7 @@ RTLFUNC(Date)
-
- // #39629 pINST pruefen, kann aus URL-Zeile gerufen werden
- SvNumberFormatter* pFormatter = NULL;
-- ULONG nIndex;
-+ sal_uInt32 nIndex;
- if( pINST )
- {
- pFormatter = pINST->GetNumberFormatter();
-@@ -2036,7 +2036,7 @@ RTLFUNC(Date)
- }
- else
- {
-- ULONG n; // Dummy
-+ sal_uInt32 n; // Dummy
- SbiInstance::PrepareNumberFormatter( pFormatter, nIndex, n, n );
- }
-
-@@ -2896,7 +2896,7 @@ RTLFUNC(FileDateTime)
-
- // #39629 pINST pruefen, kann aus URL-Zeile gerufen werden
- SvNumberFormatter* pFormatter = NULL;
-- ULONG nIndex;
-+ sal_uInt32 nIndex;
- if( pINST )
- {
- pFormatter = pINST->GetNumberFormatter();
-@@ -2930,7 +2930,7 @@ RTLFUNC(FileDateTime)
- }
- else
- {
-- ULONG n; // Dummy
-+ sal_uInt32 n; // Dummy
- SbiInstance::PrepareNumberFormatter( pFormatter, n, n, nIndex );
- }
-
---- basic/source/runtime/runtime.cxx 28 Jan 2005 16:09:07 -0000 1.20
-+++ basic/source/runtime/runtime.cxx 9 Mar 2005 18:04:13 -0000 1.19.16.2
-@@ -368,7 +368,7 @@ SvNumberFormatter* SbiInstance::GetNumbe
-
- // #39629 NumberFormatter auch statisch anbieten
- void SbiInstance::PrepareNumberFormatter( SvNumberFormatter*& rpNumberFormatter,
-- ULONG &rnStdDateIdx, ULONG &rnStdTimeIdx, ULONG &rnStdDateTimeIdx,
-+ sal_uInt32 &rnStdDateIdx, sal_uInt32 &rnStdTimeIdx, sal_uInt32 &rnStdDateTimeIdx,
- LanguageType* peFormatterLangType, DateFormat* peFormatterDateFormat )
- {
- com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >
diff --git a/patches/64bit/numberformat-binfilter.diff b/patches/64bit/numberformat-binfilter.diff
deleted file mode 100644
index 43b7f5230..000000000
--- a/patches/64bit/numberformat-binfilter.diff
+++ /dev/null
@@ -1,193 +0,0 @@
-Index: binfilter/bf_sc/source/core/data/sc_documen2.cxx
-===================================================================
-RCS file: /cvs/framework/binfilter/bf_sc/source/core/data/sc_documen2.cxx,v
-retrieving revision 1.10
-retrieving revision 1.10.6.1
-diff -u -p -r1.10 -r1.10.6.1
---- binfilter/bf_sc/source/core/data/sc_documen2.cxx 27 Sep 2005 12:32:54 -0000 1.10
-+++ binfilter/bf_sc/source/core/data/sc_documen2.cxx 1 Nov 2005 14:00:37 -0000 1.10.6.1
-@@ -1656,7 +1656,7 @@ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 //
- /*N*/ SvNumberFormatter* pOtherFormatter = pSrcDoc->xPoolHelper->GetFormTable();
- /*N*/ if (pOtherFormatter && pOtherFormatter != pThisFormatter)
- /*N*/ {
--/*N*/ SvULONGTable* pExchangeList =
-+/*N*/ Svsal_uInt32Table* pExchangeList =
- /*N*/ pThisFormatter->MergeFormatter(*(pOtherFormatter));
- /*N*/ if (pExchangeList->Count() > 0)
- /*N*/ pFormatExchangeList = pExchangeList;
-Index: binfilter/bf_sc/source/core/data/sc_document.cxx
-===================================================================
-RCS file: /cvs/framework/binfilter/bf_sc/source/core/data/sc_document.cxx,v
-retrieving revision 1.8
-retrieving revision 1.8.16.1
-diff -u -p -r1.8 -r1.8.16.1
---- binfilter/bf_sc/source/core/data/sc_document.cxx 7 Sep 2005 16:45:04 -0000 1.8
-+++ binfilter/bf_sc/source/core/data/sc_document.cxx 1 Nov 2005 14:00:37 -0000 1.8.16.1
-@@ -1530,7 +1530,7 @@ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 //
- /*N*/ SvNumberFormatter* pOtherFormatter = pClipDoc->xPoolHelper->GetFormTable();
- /*N*/ if (pOtherFormatter && pOtherFormatter != pThisFormatter)
- /*N*/ {
--/*N*/ SvULONGTable* pExchangeList =
-+/*N*/ Svsal_uInt32Table* pExchangeList =
- /*N*/ pThisFormatter->MergeFormatter(*(pOtherFormatter));
- /*N*/ if (pExchangeList->Count() > 0)
- /*N*/ pFormatExchangeList = pExchangeList;
-Index: binfilter/bf_sch/source/core/sch_chartdoc.cxx
-===================================================================
-RCS file: /cvs/framework/binfilter/bf_sch/source/core/sch_chartdoc.cxx,v
-retrieving revision 1.5
-retrieving revision 1.5.20.1
-diff -u -p -r1.5 -r1.5.20.1
---- binfilter/bf_sch/source/core/sch_chartdoc.cxx 7 Sep 2005 21:51:00 -0000 1.5
-+++ binfilter/bf_sch/source/core/sch_chartdoc.cxx 1 Nov 2005 14:00:38 -0000 1.5.20.1
-@@ -277,7 +277,7 @@ namespace binfilter {
- //STRIP001 // merge numberformatters
- //STRIP001 if( pNewModel->pOwnNumFormatter && pNumFormatter )
- //STRIP001 {
--//STRIP001 SvULONGTable* pTransTable =
-+//STRIP001 Svsal_uInt32Table* pTransTable =
- //STRIP001 pNewModel->pOwnNumFormatter->MergeFormatter( *pNumFormatter );
- //STRIP001
- //STRIP001 if( pTransTable && pTransTable->Count() )
-Index: binfilter/bf_sch/source/core/sch_chaxis.cxx
-===================================================================
-RCS file: /cvs/framework/binfilter/bf_sch/source/core/sch_chaxis.cxx,v
-retrieving revision 1.6
-retrieving revision 1.6.20.1
-diff -u -p -r1.6 -r1.6.20.1
---- binfilter/bf_sch/source/core/sch_chaxis.cxx 7 Sep 2005 21:51:42 -0000 1.6
-+++ binfilter/bf_sch/source/core/sch_chaxis.cxx 1 Nov 2005 14:00:38 -0000 1.6.20.1
-@@ -2761,7 +2761,7 @@ namespace binfilter {
- //STRIP001 return ((mfMin <= fValue) && (fValue <= mfMax));
- //STRIP001 }
-
--/*N*/ BOOL ChartAxis::TranslateMergedNumFormat( SvULONGTable* pTransTable )
-+/*N*/ BOOL ChartAxis::TranslateMergedNumFormat( Svsal_uInt32Table* pTransTable )
- /*N*/ {
- /*N*/ ULONG nFmt, nMrgFmt;
- /*N*/ BOOL bRet =FALSE;
-Index: binfilter/bf_sch/source/core/sch_chtmode5.cxx
-===================================================================
-RCS file: /cvs/framework/binfilter/bf_sch/source/core/sch_chtmode5.cxx,v
-retrieving revision 1.5
-retrieving revision 1.5.20.1
-diff -u -p -r1.5 -r1.5.20.1
---- binfilter/bf_sch/source/core/sch_chtmode5.cxx 7 Sep 2005 21:54:35 -0000 1.5
-+++ binfilter/bf_sch/source/core/sch_chtmode5.cxx 1 Nov 2005 14:00:39 -0000 1.5.20.1
-@@ -383,7 +383,7 @@ namespace binfilter {
- /*N*/ // merge old one to new one and set new one as member
- /*N*/ if( pNewFormatter && pNumFormatter )
- /*N*/ {
--/*N*/ SvULONGTable* pTransTable =
-+/*N*/ Svsal_uInt32Table* pTransTable =
- /*N*/ pNewFormatter->MergeFormatter( *pNumFormatter );
- /*N*/
- /*N*/ SetNumberFormatter( pNewFormatter );
-Index: binfilter/bf_sch/source/core/sch_chtmode9.cxx
-===================================================================
-RCS file: /cvs/framework/binfilter/bf_sch/source/core/sch_chtmode9.cxx,v
-retrieving revision 1.5
-retrieving revision 1.5.20.1
-diff -u -p -r1.5 -r1.5.20.1
---- binfilter/bf_sch/source/core/sch_chtmode9.cxx 7 Sep 2005 21:55:36 -0000 1.5
-+++ binfilter/bf_sch/source/core/sch_chtmode9.cxx 1 Nov 2005 14:00:40 -0000 1.5.20.1
-@@ -1879,7 +1879,7 @@ namespace binfilter {
- /*N*/ }
- /*N*/ }
-
--/*N*/ void ChartModel::TranslateAllNumFormatIds( SvULONGTable* pTransTable )
-+/*N*/ void ChartModel::TranslateAllNumFormatIds( Svsal_uInt32Table* pTransTable )
- /*N*/ {
- /*N*/ if( pChartXAxis->TranslateMergedNumFormat( pTransTable ) &&
- /*N*/ nXLastNumFmt >= 0 )
-Index: binfilter/inc/bf_sc/document.hxx
-===================================================================
-RCS file: /cvs/framework/binfilter/inc/bf_sc/document.hxx,v
-retrieving revision 1.5
-retrieving revision 1.5.20.1
-diff -u -p -r1.5 -r1.5.20.1
---- binfilter/inc/bf_sc/document.hxx 9 Sep 2005 11:08:55 -0000 1.5
-+++ binfilter/inc/bf_sc/document.hxx 1 Nov 2005 14:00:40 -0000 1.5.20.1
-@@ -165,10 +165,10 @@ class ScRefreshTimerControl;
- } //namespace binfilter
-
- #ifdef _ZFORLIST_DECLARE_TABLE
--class SvULONGTable;
-+class Svsal_uInt32Table;
- #else
- class Table;
--typedef Table SvULONGTable;
-+typedef Table Svsal_uInt32Table;
- #endif
- namespace binfilter {//STRIP009
- #define SC_TAB_APPEND 0xFFFF
-@@ -346,7 +346,7 @@ private:
- XColorTable* pColorTable;
- ScConditionalFormatList* pCondFormList; // bedingte Formate
- ScValidationDataList* pValidationList; // Gueltigkeit
-- SvULONGTable* pFormatExchangeList; // zum Umsetzen von Zahlenformaten
-+ Svsal_uInt32Table* pFormatExchangeList; // zum Umsetzen von Zahlenformaten
- ScTable* pTab[MAXTAB+1];
- ScRangeName* pRangeName;
- ScDBCollection* pDBCollection;
-@@ -577,7 +577,7 @@ public:
- BOOL GetName( USHORT nTab, String& rName ) const;
- BOOL GetTable( const String& rName, USHORT& rTab ) const;
- inline USHORT GetTableCount() const { return nMaxTableNumber; }
-- SvULONGTable* GetFormatExchangeList() const { return pFormatExchangeList; }
-+ Svsal_uInt32Table* GetFormatExchangeList() const { return pFormatExchangeList; }
-
- void SetDocProtection( BOOL bProtect, const ::com::sun::star::uno::Sequence <sal_Int8>& aPass );
- void SetTabProtection( USHORT nTab, BOOL bProtect, const ::com::sun::star::uno::Sequence <sal_Int8>& aPass );
-Index: binfilter/inc/bf_sch/chaxis.hxx
-===================================================================
-RCS file: /cvs/framework/binfilter/inc/bf_sch/chaxis.hxx,v
-retrieving revision 1.3
-retrieving revision 1.3.18.1
-diff -u -p -r1.3 -r1.3.18.1
---- binfilter/inc/bf_sch/chaxis.hxx 9 Sep 2005 11:43:05 -0000 1.3
-+++ binfilter/inc/bf_sch/chaxis.hxx 1 Nov 2005 14:00:41 -0000 1.3.18.1
-@@ -37,7 +37,7 @@
-
- //STRIP008 class ChartModel;
- class SvNumberFormatter;
--class SvULONGTable;
-+class Svsal_uInt32Table;
- //STRIP008 class SdrObject;
- //STRIP008 class SdrObjList;
- //STRIP008 class XPolygon;
-@@ -389,7 +389,7 @@ public:
- //nDir ist Flag, kann sein CHAXIS_MARK_INNER und CHAXIS_MARK_OUTER (oder beides)
- SdrObject *CreateMarks(long nPosition,long nLen,long nWhichTicks);
-
-- BOOL TranslateMergedNumFormat( SvULONGTable* pTransTable );
-+ BOOL TranslateMergedNumFormat( Svsal_uInt32Table* pTransTable );
- long GetUniqueId() const { return mnUId; }
-
- /** Converts a CHOBJID into an axis UId.
-Index: binfilter/inc/bf_sch/chtmodel.hxx
-===================================================================
-RCS file: /cvs/framework/binfilter/inc/bf_sch/chtmodel.hxx,v
-retrieving revision 1.5
-retrieving revision 1.5.20.1
-diff -u -p -r1.5 -r1.5.20.1
---- binfilter/inc/bf_sch/chtmodel.hxx 9 Sep 2005 11:43:58 -0000 1.5
-+++ binfilter/inc/bf_sch/chtmodel.hxx 1 Nov 2005 14:00:41 -0000 1.5.20.1
-@@ -123,7 +123,7 @@
- #include <com/sun/star/util/XRefreshable.hpp>
- #endif
- class SvNumberFormatter;
--class SvULONGTable;
-+class Svsal_uInt32Table;
- class Vector3D;
- namespace binfilter {
- class SdrObjGroup;
-@@ -981,7 +981,7 @@ public:
-
- void SetNumberFormatter( SvNumberFormatter* );
- void DataRangeChanged( long _nOldRowCnt = 0, long _nOldColCnt = 0 );
-- void TranslateAllNumFormatIds( SvULONGTable* );
-+ void TranslateAllNumFormatIds( Svsal_uInt32Table* );
-
- /** set new doc shell if there was no one before
- returns true if new shell was set */
diff --git a/patches/64bit/numberformat-chart2.diff b/patches/64bit/numberformat-chart2.diff
deleted file mode 100644
index 17c776c8d..000000000
--- a/patches/64bit/numberformat-chart2.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- chart2/source/controller/dialogs/tp_Scale.cxx 26 Jan 2004 09:11:55 -0000 1.2
-+++ chart2/source/controller/dialogs/tp_Scale.cxx 21 Jan 2005 14:55:21 -0000 1.2.42.1
-@@ -380,7 +380,7 @@ int SchScaleYAxisTabPage::DeactivatePage
- return LEAVE_PAGE;
- }
-
-- ULONG nIndex = pNumFormatter->GetStandardIndex(LANGUAGE_SYSTEM);
-+ sal_uInt32 nIndex = pNumFormatter->GetStandardIndex(LANGUAGE_SYSTEM);
- Edit* pEdit = NULL;
- USHORT nErrStrId = 0;
- double fDummy;
diff --git a/patches/64bit/numberformat-sc.diff b/patches/64bit/numberformat-sc.diff
deleted file mode 100644
index 357811fbe..000000000
--- a/patches/64bit/numberformat-sc.diff
+++ /dev/null
@@ -1,660 +0,0 @@
---- sc/source/filter/excel/xestyle.cxx 21 Feb 2005 13:30:50 -0000 1.18
-+++ sc/source/filter/excel/xestyle.cxx 9 Mar 2005 21:14:21 -0000 1.11.130.5
-@@ -1330,7 +1330,7 @@ void XclExpNumFmtBuffer::WriteFormatReco
- {
- xub_StrLen nCheckPos;
- short nType = NUMBERFORMAT_DEFINED;
-- ULONG nKey;
-+ sal_uInt32 nKey;
- String aTemp( pEntry->GetFormatstring() );
- mxFormatter->PutandConvertEntry( aTemp, nCheckPos, nType, nKey, eLang, LANGUAGE_ENGLISH_US );
- DBG_ASSERT( nCheckPos == 0, "XclExpNumFmtBuffer::WriteFormatRecord - format code not convertible" );
---- sc/source/filter/excel/xistyle.cxx 21 Feb 2005 13:34:00 -0000 1.21
-+++ sc/source/filter/excel/xistyle.cxx 9 Mar 2005 21:17:47 -0000 1.20.32.2
-@@ -570,7 +570,7 @@ void XclImpNumFmtBuffer::CreateScFormats
- // insert/convert the Excel number format
- xub_StrLen nCheckPos;
- short nType = NUMBERFORMAT_DEFINED;
-- ULONG nKey;
-+ sal_uInt32 nKey;
- if( rNumFmt.maFormat.Len() )
- {
- String aFormat( rNumFmt.maFormat );
---- sc/source/core/tool/interpr4.cxx 16 Feb 2005 18:06:55 -0000 1.34
-+++ sc/source/core/tool/interpr4.cxx 9 Mar 2005 20:57:03 -0000 1.32.68.2
-@@ -289,7 +289,7 @@
- ((ScStringCell*)pCell)->GetString( aStr );
- else
- ((ScEditCell*)pCell)->GetString( aStr );
-- ULONG nFIndex = 0; // damit default Land/Spr.
-+ sal_uInt32 nFIndex = 0; // damit default Land/Spr.
- if ( !pFormatter->IsNumberFormat( aStr, nFIndex, fValue ) )
- {
- SetError(errNoValue);
---- sc/inc/document.hxx 15 Nov 2004 16:32:04 -0000 1.85
-+++ sc/inc/document.hxx 21 Jan 2005 16:33:22 -0000 1.85.68.1
-@@ -195,10 +195,10 @@ namespace com { namespace sun { namespac
-
-
- #ifdef _ZFORLIST_DECLARE_TABLE
--class SvULONGTable;
-+class Svsal_uInt32Table;
- #else
- class Table;
--typedef Table SvULONGTable;
-+typedef Table Svsal_uInt32Table;
- #endif
-
-
-@@ -287,7 +287,7 @@ private:
- XColorTable* pColorTable;
- ScConditionalFormatList* pCondFormList; // bedingte Formate
- ScValidationDataList* pValidationList; // Gueltigkeit
-- SvULONGTable* pFormatExchangeList; // zum Umsetzen von Zahlenformaten
-+ Svsal_uInt32Table* pFormatExchangeList; // zum Umsetzen von Zahlenformaten
- ScTable* pTab[MAXTABCOUNT];
- ScRangeName* pRangeName;
- ScDBCollection* pDBCollection;
-@@ -523,7 +523,7 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollec
- SC_DLLPUBLIC BOOL GetName( SCTAB nTab, String& rName ) const;
- BOOL GetTable( const String& rName, SCTAB& rTab ) const;
- inline SCTAB GetTableCount() const { return nMaxTableNumber; }
-- SvULONGTable* GetFormatExchangeList() const { return pFormatExchangeList; }
-+ Svsal_uInt32Table* GetFormatExchangeList() const { return pFormatExchangeList; }
-
- void SetDocProtection( BOOL bProtect, const com::sun::star::uno::Sequence <sal_Int8>& aPass );
- void SetTabProtection( SCTAB nTab, BOOL bProtect, const com::sun::star::uno::Sequence <sal_Int8>& aPass );
-@@ -734,8 +734,8 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollec
- void GetValue( SCCOL nCol, SCROW nRow, SCTAB nTab, double& rValue );
- double RoundValueAsShown( double fVal, ULONG nFormat );
- void GetNumberFormat( SCCOL nCol, SCROW nRow, SCTAB nTab,
-- ULONG& rFormat );
-- ULONG GetNumberFormat( const ScAddress& ) const;
-+ sal_uInt32& rFormat );
-+ sal_uInt32 GetNumberFormat( const ScAddress& ) const;
- /// if no number format attribute is set the calculated
- /// number format of the formula cell is returned
- void GetNumberFormatInfo( short& nType, ULONG& nIndex,
-@@ -1125,7 +1125,7 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollec
- BOOL bPutToPool = FALSE );
- void SetPattern( SCCOL nCol, SCROW nRow, SCTAB nTab, const ScPatternAttr& rAttr,
- BOOL bPutToPool = FALSE );
-- void DeleteNumberFormat( const ULONG* pDelKeys, ULONG nCount );
-+ void DeleteNumberFormat( const sal_uInt32* pDelKeys, sal_uInt32 nCount );
-
- void AutoFormat( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
- USHORT nFormatNo, const ScMarkData& rMark );
---- sc/source/core/data/column3.cxx 11 Jan 2005 12:38:02 -0000 1.16
-+++ sc/source/core/data/column3.cxx 21 Jan 2005 16:33:44 -0000 1.16.6.1
-@@ -1257,7 +1257,7 @@ BOOL ScColumn::SetString( SCROW nRow, SC
- if (rString.Len() > 0)
- {
- double nVal;
-- ULONG nIndex, nOldIndex;
-+ sal_uInt32 nIndex, nOldIndex;
- sal_Unicode cFirstChar;
- SvNumberFormatter* pFormatter = pDocument->GetFormatTable();
- SfxObjectShell* pDocSh = pDocument->GetDocumentShell();
---- sc/source/core/data/dociter.cxx 15 Nov 2004 16:33:34 -0000 1.12
-+++ sc/source/core/data/dociter.cxx 21 Jan 2005 16:34:00 -0000 1.12.68.1
-@@ -524,7 +524,7 @@ ScQueryValueIterator::ScQueryValueIterat
- for (i=0; (i<nCount) && (aParam.GetEntry(i).bDoQuery); i++)
- {
- ScQueryEntry& rEntry = aParam.GetEntry(i);
-- ULONG nIndex = 0;
-+ sal_uInt32 nIndex = 0;
- rEntry.bQueryByString =
- !(pDoc->GetFormatTable()->IsNumberFormat(*rEntry.pStr, nIndex, rEntry.nVal));
- }
-@@ -806,7 +806,7 @@ ScQueryCellIterator::ScQueryCellIterator
- for (i=0; (i<MAXQUERY) && (aParam.GetEntry(i).bDoQuery); i++)
- {
- ScQueryEntry& rEntry = aParam.GetEntry(i);
-- ULONG nIndex = 0;
-+ sal_uInt32 nIndex = 0;
- rEntry.bQueryByString =
- !(pDoc->GetFormatTable()->IsNumberFormat(*rEntry.pStr,
- nIndex, rEntry.nVal));
---- sc/source/core/data/documen2.cxx 16 Feb 2005 18:05:58 -0000 1.48
-+++ sc/source/core/data/documen2.cxx 9 Mar 2005 20:54:26 -0000 1.47.68.2
-@@ -1367,7 +1367,7 @@ void ScDocument::SetLostData()
- bLostData = TRUE;
- }
-
--void ScDocument::DeleteNumberFormat( const ULONG* pDelKeys, ULONG nCount )
-+void ScDocument::DeleteNumberFormat( const sal_uInt32* pDelKeys, sal_uInt32 nCount )
- {
- /*
- for (ULONG i = 0; i < nCount; i++)
-@@ -1737,7 +1737,7 @@ ULONG ScDocument::TransferTab( ScDocumen
- SvNumberFormatter* pOtherFormatter = pSrcDoc->xPoolHelper->GetFormTable();
- if (pOtherFormatter && pOtherFormatter != pThisFormatter)
- {
-- SvULONGTable* pExchangeList =
-+ Svsal_uInt32Table* pExchangeList =
- pThisFormatter->MergeFormatter(*(pOtherFormatter));
- if (pExchangeList->Count() > 0)
- pFormatExchangeList = pExchangeList;
---- sc/source/core/data/documen8.cxx 23 Dec 2004 10:43:45 -0000 1.38
-+++ sc/source/core/data/documen8.cxx 21 Jan 2005 16:35:03 -0000 1.38.32.1
-@@ -357,7 +357,7 @@ void ScDocument::CopyStdStylesFrom( ScDo
- SvNumberFormatter* pOtherFormatter = pSrcDoc->xPoolHelper->GetFormTable();
- if (pOtherFormatter && pOtherFormatter != pThisFormatter)
- {
-- SvULONGTable* pExchangeList =
-+ Svsal_uInt32Table* pExchangeList =
- pThisFormatter->MergeFormatter(*(pOtherFormatter));
- if (pExchangeList->Count() > 0)
- pFormatExchangeList = pExchangeList;
---- sc/source/core/data/document.cxx 16 Feb 2005 18:06:13 -0000 1.64
-+++ sc/source/core/data/document.cxx 9 Mar 2005 20:55:27 -0000 1.63.68.2
-@@ -1641,7 +1641,7 @@ void ScDocument::CopyFromClip( const ScR
- SvNumberFormatter* pOtherFormatter = pClipDoc->xPoolHelper->GetFormTable();
- if (pOtherFormatter && pOtherFormatter != pThisFormatter)
- {
-- SvULONGTable* pExchangeList =
-+ Svsal_uInt32Table* pExchangeList =
- pThisFormatter->MergeFormatter(*(pOtherFormatter));
- if (pExchangeList->Count() > 0)
- pFormatExchangeList = pExchangeList;
-@@ -2131,7 +2131,7 @@ double ScDocument::GetValue( const ScAdd
-
-
- void ScDocument::GetNumberFormat( SCCOL nCol, SCROW nRow, SCTAB nTab,
-- ULONG& rFormat )
-+ sal_uInt32& rFormat )
- {
- if (VALIDTAB(nTab))
- if (pTab[nTab])
-@@ -2143,7 +2143,7 @@ void ScDocument::GetNumberFormat( SCCOL
- }
-
-
--ULONG ScDocument::GetNumberFormat( const ScAddress& rPos ) const
-+sal_uInt32 ScDocument::GetNumberFormat( const ScAddress& rPos ) const
- {
- SCTAB nTab = rPos.Tab();
- if ( pTab[nTab] )
---- sc/source/core/data/dpdimsave.cxx 3 Aug 2004 11:30:39 -0000 1.2
-+++ sc/source/core/data/dpdimsave.cxx 21 Jan 2005 16:35:19 -0000 1.2.100.1
-@@ -156,7 +156,7 @@ void ScDPSaveGroupItem::AddToData( ScDPG
-
- for ( std::vector<String>::const_iterator aIter(aElements.begin()); aIter != aElements.end(); aIter++ )
- {
-- ULONG nFormat = 0; //! ...
-+ sal_uInt32 nFormat = 0; //! ...
- double fValue;
- if ( pFormatter->IsNumberFormat( *aIter, nFormat, fValue ) )
- aData = ScDPItemData( *aIter, fValue, TRUE );
---- sc/source/core/data/dpshttab.cxx 4 Jun 2004 10:24:58 -0000 1.5
-+++ sc/source/core/data/dpshttab.cxx 21 Jan 2005 16:35:39 -0000 1.5.42.1
-@@ -130,7 +130,7 @@ ScSheetDPData::ScSheetDPData( ScDocument
- }
- else
- {
-- ULONG nIndex = 0;
-+ sal_uInt32 nIndex = 0;
- rEntry.bQueryByString =
- !(pD->GetFormatTable()->
- IsNumberFormat(*rEntry.pStr, nIndex, rEntry.nVal));
---- sc/source/core/data/table3.cxx 15 Nov 2004 16:34:51 -0000 1.20
-+++ sc/source/core/data/table3.cxx 21 Jan 2005 16:36:18 -0000 1.16.42.4
-@@ -1332,7 +1332,7 @@ SCSIZE ScTable::Query(ScQueryParam& rPar
-
- if ( rEntry.bQueryByString )
- {
-- ULONG nIndex = 0;
-+ sal_uInt32 nIndex = 0;
- rEntry.bQueryByString = !(pDocument->GetFormatTable()->
- IsNumberFormat( *rEntry.pStr, nIndex, rEntry.nVal ));
- }
---- sc/source/core/data/validat.cxx 4 Jun 2004 10:29:49 -0000 1.12
-+++ sc/source/core/data/validat.cxx 21 Jan 2005 16:36:37 -0000 1.12.42.1
-@@ -560,7 +560,7 @@ BOOL ScValidationData::IsDataValid( cons
-
- // Test, was es denn ist - wie in ScColumn::SetString
-
-- ULONG nFormat = rPattern.GetNumberFormat( pFormatter );
-+ sal_uInt32 nFormat = rPattern.GetNumberFormat( pFormatter );
-
- double nVal;
- BOOL bIsVal = pFormatter->IsNumberFormat( rTest, nFormat, nVal );
---- sc/source/core/tool/chartarr.cxx 20 Aug 2004 09:11:50 -0000 1.13
-+++ sc/source/core/tool/chartarr.cxx 21 Jan 2005 16:37:52 -0000 1.13.76.1
-@@ -758,7 +758,7 @@ SchMemChart* ScChartArray::CreateMemChar
- nVal = ((ScValueCell*)pCell)->GetValue();
- if ( bCalcAsShown && nVal != 0.0 )
- {
-- ULONG nFormat;
-+ sal_uInt32 nFormat;
- pDocument->GetNumberFormat( pCols[nCol],
- pRows[nRow], nTab1, nFormat );
- nVal = pDocument->RoundValueAsShown( nVal, nFormat );
---- sc/source/core/tool/ddelink.cxx 4 Oct 2004 20:05:51 -0000 1.11
-+++ sc/source/core/tool/ddelink.cxx 21 Jan 2005 16:37:29 -0000 1.11.48.1
-@@ -239,7 +239,7 @@ void __EXPORT ScDdeLink::DataChanged( co
- for (SCSIZE nC=0; nC<nCols; nC++)
- {
- aEntry = aLine.GetToken( (xub_StrLen) nC, '\t' );
-- ULONG nIndex = nStdFormat;
-+ sal_uInt32 nIndex = nStdFormat;
- double fVal;
- if ( nMode != SC_DDE_TEXT && pFormatter->IsNumberFormat( aEntry, nIndex, fVal ) )
- pResult->PutDouble( fVal, nC, nR );
---- sc/source/core/tool/interpr1.cxx 28 Jan 2005 17:20:19 -0000 1.33
-+++ sc/source/core/tool/interpr1.cxx 9 Mar 2005 20:56:34 -0000 1.32.68.2
-@@ -2355,7 +2355,7 @@ void ScInterpreter::ScT()
- void ScInterpreter::ScValue()
- {
- String aInputString = GetString();
-- ULONG nFIndex = 0; // damit default Land/Spr.
-+ sal_uInt32 nFIndex = 0; // damit default Land/Spr.
- double fVal;
- if (pFormatter->IsNumberFormat(aInputString, nFIndex, fVal))
- PushDouble(fVal);
-@@ -2665,7 +2665,7 @@ double ScInterpreter::IterateParameters(
- if( eFunc == ifCOUNT )
- {
- String aStr( PopString() );
-- ULONG nFIndex = 0; // damit default Land/Spr.
-+ sal_uInt32 nFIndex = 0; // damit default Land/Spr.
- if ( bTextAsZero || pFormatter->IsNumberFormat(aStr, nFIndex, fVal))
- nCount++;
- }
-@@ -3710,7 +3710,7 @@ void ScInterpreter::ScCountIf()
- else if( rString.Len() )
- {
- rParam.FillInExcelSyntax(rString, 0);
-- ULONG nIndex = 0;
-+ sal_uInt32 nIndex = 0;
- rEntry.bQueryByString =
- !(pFormatter->IsNumberFormat(
- *rEntry.pStr, nIndex, rEntry.nVal));
-@@ -3892,7 +3892,7 @@ void ScInterpreter::ScSumIf()
- else
- {
- rParam.FillInExcelSyntax(rString, 0);
-- ULONG nIndex = 0;
-+ sal_uInt32 nIndex = 0;
- rEntry.bQueryByString =
- !(pFormatter->IsNumberFormat(
- *rEntry.pStr, nIndex, rEntry.nVal));
-@@ -5027,7 +5027,7 @@ BOOL ScInterpreter::GetDBParams(SCTAB& r
- ScQueryEntry& rEntry = rParam.GetEntry(i);
- if ( rEntry.bDoQuery )
- {
-- ULONG nIndex = 0;
-+ sal_uInt32 nIndex = 0;
- rEntry.bQueryByString = !pFormatter->IsNumberFormat(
- *rEntry.pStr, nIndex, rEntry.nVal );
- if ( rEntry.bQueryByString && !rParam.bRegExp )
---- sc/source/core/tool/interpr2.cxx 15 Nov 2004 16:35:29 -0000 1.23
-+++ sc/source/core/tool/interpr2.cxx 21 Jan 2005 16:38:39 -0000 1.23.68.1
-@@ -197,7 +197,7 @@ void ScInterpreter::ScGetHour()
- void ScInterpreter::ScGetDateValue()
- {
- String aInputString = GetString();
-- ULONG nFIndex = 0; // damit default Land/Spr.
-+ sal_uInt32 nFIndex = 0; // damit default Land/Spr.
- double fVal;
- if (pFormatter->IsNumberFormat(aInputString, nFIndex, fVal))
- {
-@@ -414,7 +414,7 @@ void ScInterpreter::ScGetDiffDate360()
- void ScInterpreter::ScGetTimeValue()
- {
- String aInputString = GetString();
-- ULONG nFIndex = 0; // damit default Land/Spr.
-+ sal_uInt32 nFIndex = 0; // damit default Land/Spr.
- double fVal;
- if (pFormatter->IsNumberFormat(aInputString, nFIndex, fVal))
- {
---- sc/source/core/tool/interpr4.cxx 16 Feb 2005 18:06:55 -0000 1.34
-+++ sc/source/core/tool/interpr4.cxx 9 Mar 2005 20:57:03 -0000 1.32.68.2
-@@ -1459,7 +1459,7 @@ double ScInterpreter::GetDouble()
- case svString:
- {
- String aStr(PopString());
-- ULONG nFIndex = 0; // damit default Land/Spr.
-+ sal_uInt32 nFIndex = 0; // damit default Land/Spr.
- if(!pFormatter->IsNumberFormat( aStr, nFIndex, nVal ) )
- {
- SetError(errIllegalArgument);
---- sc/source/filter/dif/difimp.cxx 21 Feb 2005 13:20:55 -0000 1.8
-+++ sc/source/filter/dif/difimp.cxx 9 Mar 2005 20:57:12 -0000 1.7.42.2
-@@ -520,7 +520,7 @@ DATASET DifParser::GetNextDataset( void
- { // ...und zur Strafe mit'm Numberformatter...
- DBG_ASSERT( pNumFormatter, "-DifParser::GetNextDataset(): No Formatter, more fun!" );
- String aTestVal( pAkt );
-- ULONG nFormat = 0;
-+ sal_uInt32 nFormat = 0;
- double fTmpVal;
- if( pNumFormatter->IsNumberFormat( aTestVal, nFormat, fTmpVal ) )
- {
---- sc/source/filter/excel/excrecds.cxx 21 Feb 2005 13:25:15 -0000 1.78
-+++ sc/source/filter/excel/excrecds.cxx 9 Mar 2005 21:17:30 -0000 1.76.82.2
-@@ -678,7 +678,7 @@ BOOL XclExpAutofilter::AddEntry( const S
- else
- {
- double fVal = 0.0;
-- ULONG nIndex = 0;
-+ sal_uInt32 nIndex = 0;
- BOOL bIsNum = bLen ? GetFormatter().IsNumberFormat( sText, nIndex, fVal ) : TRUE;
- String* pText = bIsNum ? NULL : &sText;
-
---- sc/source/ui/app/inputhdl.cxx 16 Feb 2005 18:09:54 -0000 1.59
-+++ sc/source/ui/app/inputhdl.cxx 9 Mar 2005 20:36:36 -0000 1.58.138.2
-@@ -2096,7 +2096,7 @@ void ScInputHandler::EnterHandler( BYTE
- ScDocument* pDoc = pActiveViewSh->GetViewData()->GetDocument();
- SvNumberFormatter* pFormatter = pDoc->GetFormatTable();
- // without conditional format, as in ScColumn::SetString
-- ULONG nFormat = pLastPattern->GetNumberFormat( pFormatter );
-+ sal_uInt32 nFormat = pLastPattern->GetNumberFormat( pFormatter );
- double nVal;
- if ( pFormatter->IsNumberFormat( aString, nFormat, nVal ) )
- {
---- sc/source/ui/docshell/docfunc.cxx 8 Sep 2004 13:52:34 -0000 1.52
-+++ sc/source/ui/docshell/docfunc.cxx 21 Jan 2005 16:43:14 -0000 1.52.56.1
-@@ -1008,7 +1008,7 @@ ScBaseCell* ScDocFunc::InterpretEnglishS
- else // (nur) auf englisches Zahlformat testen
- {
- SvNumberFormatter* pFormatter = pDoc->GetFormatTable();
-- ULONG nEnglish = pFormatter->GetStandardIndex(LANGUAGE_ENGLISH_US);
-+ sal_uInt32 nEnglish = pFormatter->GetStandardIndex(LANGUAGE_ENGLISH_US);
- double fVal;
- if ( pFormatter->IsNumberFormat( rText, nEnglish, fVal ) )
- pNewCell = new ScValueCell( fVal );
---- sc/source/ui/docshell/docsh.cxx 9 Mar 2005 20:52:07 -0000 1.77.6.2
-+++ sc/source/ui/docshell/docsh.cxx 9 Mar 2005 20:52:07 -0000 1.77.6.2
-@@ -230,7 +230,7 @@
- //------------------------------------------------------------------
-
- void __EXPORT ScDocShell::FillClass( SvGlobalName* pClassName,
-- ULONG* pFormat,
-+ sal_uInt32* pFormat,
- String* pAppName,
- String* pFullTypeName,
- String* pShortTypeName,
-@@ -1530,7 +1530,7 @@
- }
- else if ( ((ScFormulaCell*)pCell)->IsValue() )
- {
-- ULONG nFormat;
-+ sal_uInt32 nFormat;
- aDocument.GetNumberFormat( nCol, nRow, nTab, nFormat );
- if ( bFixedWidth )
- {
-@@ -1564,7 +1564,7 @@
- break;
- case CELLTYPE_VALUE :
- {
-- ULONG nFormat;
-+ sal_uInt32 nFormat;
- aDocument.GetNumberFormat( nCol, nRow, nTab, nFormat );
- if ( bFixedWidth )
- {
---- sc/source/ui/docshell/docsh8.cxx 4 Jun 2004 11:24:52 -0000 1.17
-+++ sc/source/ui/docshell/docsh8.cxx 21 Jan 2005 16:43:54 -0000 1.17.42.1
-@@ -607,7 +607,7 @@ void lcl_GetColumnTypes( ScDocShell& rDo
- nDbType = sdbc::DataType::VARCHAR;
- else
- {
-- ULONG nFormat;
-+ sal_uInt32 nFormat;
- pDoc->GetNumberFormat( nCol, nFirstDataRow, nTab, nFormat );
- if ( pCell && pCell->GetCellType() == CELLTYPE_FORMULA
- && ((nFormat % SV_COUNTRY_LANGUAGE_OFFSET) == 0) )
-@@ -994,7 +994,7 @@ ULONG ScDocShell::DBaseExport( const Str
- }
- else
- {
-- ULONG nFormat;
-+ sal_uInt32 nFormat;
- Color* pColor;
- aDocument.GetNumberFormat( nDocCol, nDocRow, nTab, nFormat );
- ScCellFormat::GetString( pCell, nFormat, aString, &pColor, *pNumFmt );
---- sc/source/ui/docshell/impex.cxx 21 Jan 2005 16:44:08 -0000 1.31.6.1
-+++ sc/source/ui/docshell/impex.cxx 21 Jan 2005 16:44:08 -0000 1.31.6.1
-@@ -835,7 +835,7 @@
- //! SetString mit Extra-Flag ???
-
- SvNumberFormatter* pFormatter = pDoc->GetFormatTable();
-- ULONG nEnglish = pFormatter->GetStandardIndex(LANGUAGE_ENGLISH_US);
-+ sal_uInt32 nEnglish = pFormatter->GetStandardIndex(LANGUAGE_ENGLISH_US);
- double fVal;
- if ( pFormatter->IsNumberFormat( rStr, nEnglish, fVal ) )
- {
-@@ -1539,7 +1539,7 @@
- aCode.Erase( nPos, 1 );
- xub_StrLen nCheckPos;
- short nType;
-- ULONG nKey;
-+ sal_uInt32 nKey;
- pDoc->GetFormatTable()->PutandConvertEntry(
- aCode, nCheckPos, nType, nKey, LANGUAGE_ENGLISH_US,
- ScGlobal::eLnge );
---- sc/source/ui/miscdlgs/filldlg.cxx 23 Aug 2004 09:36:22 -0000 1.4
-+++ sc/source/ui/miscdlgs/filldlg.cxx 21 Jan 2005 16:44:38 -0000 1.4.78.1
-@@ -268,7 +268,7 @@ void ScFillSeriesDlg::Init( USHORT nPoss
- BOOL __EXPORT ScFillSeriesDlg::CheckStartVal()
- {
- BOOL bValOk = FALSE;
-- ULONG nKey = 0;
-+ sal_uInt32 nKey = 0;
- String aStr( aEdStartVal.GetText() );
-
- if ( aStr.Len() == 0 || aBtnAutoFill.IsChecked())
-@@ -287,7 +287,7 @@ BOOL __EXPORT ScFillSeriesDlg::CheckStar
-
- BOOL __EXPORT ScFillSeriesDlg::CheckIncrementVal()
- {
-- ULONG nKey = 0;
-+ sal_uInt32 nKey = 0;
- String aStr( aEdIncrement.GetText() );
-
- return rDoc.GetFormatTable()->IsNumberFormat( aStr, nKey, fIncrement );
-@@ -299,7 +299,7 @@ BOOL __EXPORT ScFillSeriesDlg::CheckIncr
- BOOL __EXPORT ScFillSeriesDlg::CheckEndVal()
- {
- BOOL bValOk = FALSE;
-- ULONG nKey = 0;
-+ sal_uInt32 nKey = 0;
- String aStr( aEdEndVal.GetText() );
-
- if ( aStr.Len() == 0 )
---- sc/source/ui/miscdlgs/solvrdlg.cxx 4 Feb 2004 14:28:04 -0000 1.7
-+++ sc/source/ui/miscdlgs/solvrdlg.cxx 21 Jan 2005 16:44:46 -0000 1.7.146.1
-@@ -248,7 +248,7 @@ BOOL ScSolverDlg::IsRefInputMode() const
-
- BOOL __EXPORT ScSolverDlg::CheckTargetValue( String& rStrVal )
- {
-- ULONG n1 = 0;
-+ sal_uInt32 n1 = 0;
- double n2;
-
- return pDoc->GetFormatTable()->IsNumberFormat( rStrVal, n1, n2 );
---- sc/source/ui/unoobj/cellsuno.cxx 23 Dec 2004 10:46:30 -0000 1.89
-+++ sc/source/ui/unoobj/cellsuno.cxx 21 Jan 2005 16:45:11 -0000 1.89.30.1
-@@ -1348,7 +1348,7 @@ String lcl_GetInputString( ScDocShell* p
- // Since the English formatter was constructed with
- // LANGUAGE_ENGLISH_US the "General" format has index key 0,
- // we don't have to query.
-- ULONG nNumFmt = bEnglish ?
-+ sal_uInt32 nNumFmt = bEnglish ?
- // pFormatter->GetStandardIndex(LANGUAGE_ENGLISH_US) :
- 0 :
- pDoc->GetNumberFormat( rPosition );
---- sc/source/ui/view/cellsh1.cxx 21 Feb 2005 13:53:16 -0000 1.37
-+++ sc/source/ui/view/cellsh1.cxx 9 Mar 2005 20:43:15 -0000 1.36.48.2
-@@ -619,7 +619,7 @@ void ScCellShell::ExecuteEdit( SfxReques
- const SfxPoolItem* pItem;
- String aFillDir, aFillCmd, aFillDateCmd;
- String aFillStep, aFillStart, aFillMax;
-- ULONG nKey;
-+ sal_uInt32 nKey;
- double fTmpVal;
-
- bDoIt=FALSE;
-@@ -683,7 +683,7 @@ void ScCellShell::ExecuteEdit( SfxReques
- else // (pReqArgs == NULL) => Dialog hochziehen
- {
- //
-- ULONG nPrivFormat;
-+ sal_uInt32 nPrivFormat;
- CellType eCellType;
- pDoc->GetNumberFormat( nStartCol, nStartRow, nStartTab, nPrivFormat );
- pDoc->GetCellType( nStartCol, nStartRow, nStartTab,eCellType );
---- sc/source/ui/view/tabvwsh5.cxx 4 Jun 2004 12:07:53 -0000 1.7
-+++ sc/source/ui/view/tabvwsh5.cxx 21 Jan 2005 16:46:41 -0000 1.7.42.1
-@@ -443,11 +443,11 @@ void ScTabViewShell::UpdateNumberFormatt
- ScDocument* pDoc,
- const SvxNumberInfoItem& rInfoItem )
- {
-- const ULONG nDelCount = rInfoItem.GetDelCount();
-+ const sal_uInt32 nDelCount = rInfoItem.GetDelCount();
-
- if ( nDelCount > 0 )
- {
-- const ULONG* pDelArr = rInfoItem.GetDelArray();
-+ const sal_uInt32* pDelArr = rInfoItem.GetDelArray();
-
- for ( USHORT i=0; i<nDelCount; i++ )
- rInfoItem.GetNumberFormatter()->DeleteEntry( pDelArr[i] );
---- sc/source/ui/view/tabvwsha.cxx 28 Jan 2005 17:23:33 -0000 1.15
-+++ sc/source/ui/view/tabvwsha.cxx 9 Mar 2005 20:43:58 -0000 1.14.48.2
-@@ -131,7 +131,7 @@ BOOL ScTabViewShell::GetFunction( String
- aStr += '=';
-
- // Anzahl im Standardformat, die anderen nach Cursorposition
-- ULONG nNumFmt = 0;
-+ sal_uInt32 nNumFmt = 0;
- SvNumberFormatter* pFormatter = pDoc->GetFormatTable();
- if ( eFunc != SUBTOTAL_FUNC_CNT && eFunc != SUBTOTAL_FUNC_CNT2 )
- {
-@@ -560,7 +560,7 @@ void ScTabViewShell::UpdateInputHandler(
- //! Auch bei Zahlformat "Text"? -> dann beim Editieren wegnehmen
-
- SvNumberFormatter* pFormatter = pDoc->GetFormatTable();
-- ULONG nNumFmt;
-+ sal_uInt32 nNumFmt;
- pDoc->GetNumberFormat( nPosX, nPosY, nTab, nNumFmt );
- double fDummy;
- if ( pFormatter->IsNumberFormat(aString, nNumFmt, fDummy) )
---- sc/source/ui/view/viewfunc.cxx 9 Sep 2004 09:31:12 -0000 1.27
-+++ sc/source/ui/view/viewfunc.cxx 21 Jan 2005 16:46:48 -0000 1.27.56.1
-@@ -999,9 +999,9 @@ void ScViewFunc::ApplyAttributes( const
-
- if ( pDialogSet->GetItemState( ATTR_VALUE_FORMAT ) == SFX_ITEM_SET )
- { // #82521# don't reset to default SYSTEM GENERAL if not intended
-- ULONG nOldFormat =
-+ sal_uInt32 nOldFormat =
- ((const SfxUInt32Item&)pOldSet->Get( ATTR_VALUE_FORMAT )).GetValue();
-- ULONG nNewFormat =
-+ sal_uInt32 nNewFormat =
- ((const SfxUInt32Item&)pDialogSet->Get( ATTR_VALUE_FORMAT )).GetValue();
- if ( nNewFormat != nOldFormat )
- {
-@@ -1019,7 +1019,7 @@ void ScViewFunc::ApplyAttributes( const
- SvxLanguageItem( eNewLang, ATTR_LANGUAGE_FORMAT ) );
-
- // #40606# nur die Sprache geaendert -> Zahlformat-Attribut nicht anfassen
-- ULONG nNewMod = nNewFormat % SV_COUNTRY_LANGUAGE_OFFSET;
-+ sal_uInt32 nNewMod = nNewFormat % SV_COUNTRY_LANGUAGE_OFFSET;
- if ( nNewMod == ( nOldFormat % SV_COUNTRY_LANGUAGE_OFFSET ) &&
- nNewMod <= SV_MAX_ANZ_STANDARD_FORMATE )
- aNewAttrs.GetItemSet().ClearItem( ATTR_VALUE_FORMAT );
-@@ -2393,7 +2393,7 @@ void ScViewFunc::SetNumberFormat( short
- return;
- }
-
-- ULONG nNumberFormat = 0;
-+ sal_uInt32 nNumberFormat = 0;
- ScViewData* pViewData = GetViewData();
- ScDocument* pDoc = pViewData->GetDocument();
- SvNumberFormatter* pNumberFormatter = pDoc->GetFormatTable();
-@@ -2402,7 +2402,7 @@ void ScViewFunc::SetNumberFormat( short
-
- // #67936# always take language from cursor position, even if there is a selection
-
-- ULONG nCurrentNumberFormat;
-+ sal_uInt32 nCurrentNumberFormat;
- pDoc->GetNumberFormat( pViewData->GetCurX(),
- pViewData->GetCurY(),
- pViewData->GetTabNo(),
-@@ -2435,7 +2435,7 @@ void ScViewFunc::SetNumFmtByStr( const S
-
- // Sprache immer von Cursorposition
-
-- ULONG nCurrentNumberFormat;
-+ sal_uInt32 nCurrentNumberFormat;
- pDoc->GetNumberFormat( pViewData->GetCurX(), pViewData->GetCurY(),
- pViewData->GetTabNo(), nCurrentNumberFormat );
- const SvNumberformat* pEntry = pFormatter->GetEntry( nCurrentNumberFormat );
-@@ -2444,7 +2444,7 @@ void ScViewFunc::SetNumFmtByStr( const S
- // Index fuer String bestimmen
-
- BOOL bOk = TRUE;
-- ULONG nNumberFormat = pFormatter->GetEntryKey( rCode, eLanguage );
-+ sal_uInt32 nNumberFormat = pFormatter->GetEntryKey( rCode, eLanguage );
- if ( nNumberFormat == NUMBERFORMAT_ENTRY_NOT_FOUND )
- {
- // neu eintragen
-@@ -2484,7 +2484,7 @@ void ScViewFunc::ChangeNumFmtDecimals( B
- SCROW nRow = GetViewData()->GetCurY();
- SCTAB nTab = GetViewData()->GetTabNo();
-
-- ULONG nOldFormat;
-+ sal_uInt32 nOldFormat;
- pDoc->GetNumberFormat( nCol, nRow, nTab, nOldFormat );
- const SvNumberformat* pOldEntry = pFormatter->GetEntry( nOldFormat );
- if (!pOldEntry)
-@@ -2495,7 +2495,7 @@ void ScViewFunc::ChangeNumFmtDecimals( B
-
- // was haben wir denn da?
-
-- ULONG nNewFormat = nOldFormat;
-+ sal_uInt32 nNewFormat = nOldFormat;
- BOOL bError = FALSE;
-
- LanguageType eLanguage = pOldEntry->GetLanguage();
---- sc/source/core/data/patattr.cxx 23 Dec 2004 10:44:18 -0000 1.26
-+++ sc/source/core/data/patattr.cxx 21 Jan 2005 16:36:02 -0000 1.26.32.1
-@@ -941,7 +941,7 @@ SfxStyleSheetBase* lcl_CopyStyleToPool
- SfxStyleSheetBase* pSrcStyle,
- SfxStyleSheetBasePool* pSrcPool,
- SfxStyleSheetBasePool* pDestPool,
-- const SvULONGTable* pFormatExchangeList
-+ const Svsal_uInt32Table* pFormatExchangeList
- )
- {
- if ( !pSrcStyle || !pDestPool || !pSrcPool )
-@@ -1045,7 +1045,7 @@ ScPatternAttr* ScPatternAttr::PutInPool(
-
- ScStyleSheetPool* pSrcSPool = pSrcDoc->GetStyleSheetPool();
- ScStyleSheetPool* pDestSPool = pDestDoc->GetStyleSheetPool();
-- const SvULONGTable* pFormatExchangeList = pDestDoc->GetFormatExchangeList();
-+ const Svsal_uInt32Table* pFormatExchangeList = pDestDoc->GetFormatExchangeList();
- USHORT nStlCnt = pOldData->Count();
- for (USHORT i=0; i<nStlCnt; i++)
- {
---- sc/source/core/tool/compiler.cxx 15 Nov 2004 15:10:14 -0000 1.52
-+++ sc/source/core/tool/compiler.cxx 21 Jan 2005 16:37:10 -0000 1.52.68.1
-@@ -888,7 +888,7 @@ BOOL ScCompiler::IsOpCode2( const String
- BOOL ScCompiler::IsValue( const String& rSym )
- {
- double fVal;
-- ULONG nIndex = ( pSymbolTable == pSymbolTableEnglish ?
-+ sal_uInt32 nIndex = ( pSymbolTable == pSymbolTableEnglish ?
- pDoc->GetFormatTable()->GetStandardIndex( LANGUAGE_ENGLISH_US ) : 0 );
- // ULONG nIndex = 0;
- //// ULONG nIndex = pDoc->GetFormatTable()->GetStandardIndex(ScGlobal::eLnge);
---- sc/source/ui/inc/docsh.hxx 11 Jan 2005 13:21:14 -0000 1.34
-+++ sc/source/ui/inc/docsh.hxx 21 Jan 2005 16:44:25 -0000 1.34.6.1
-@@ -223,7 +223,7 @@ public:
- virtual SfxUndoManager* GetUndoManager();
-
- virtual void FillClass( SvGlobalName * pClassName,
-- ULONG * pFormat,
-+ sal_uInt32 * pFormat,
- String * pAppName,
- String * pFullTypeName,
- String * pShortTypeName,
diff --git a/patches/64bit/numberformat-sch.diff b/patches/64bit/numberformat-sch.diff
deleted file mode 100644
index e41809d39..000000000
--- a/patches/64bit/numberformat-sch.diff
+++ /dev/null
@@ -1,172 +0,0 @@
---- sch/source/core/chartdoc.cxx 3 Mar 2005 17:31:24 -0000 1.26
-+++ sch/source/core/chartdoc.cxx 9 Mar 2005 21:27:21 -0000 1.24.30.2
-@@ -289,7 +289,7 @@ SdrModel* ChartModel::AllocModel() const
- // merge numberformatters
- if( pNewModel->pOwnNumFormatter && pNumFormatter )
- {
-- SvULONGTable* pTransTable =
-+ Svsal_uInt32Table* pTransTable =
- pNewModel->pOwnNumFormatter->MergeFormatter( *pNumFormatter );
-
- if( pTransTable && pTransTable->Count() )
---- sch/inc/chaxis.hxx 9 Mar 2005 21:21:33 -0000 1.10.182.2
-+++ sch/inc/chaxis.hxx 9 Mar 2005 21:21:33 -0000 1.10.182.2
-@@ -63,7 +63,7 @@
-
- class ChartModel;
- class SvNumberFormatter;
--class SvULONGTable;
-+class Svsal_uInt32Table;
- class SdrObject;
- class SdrObjList;
- class XPolygon;
-@@ -408,7 +408,7 @@
- //nDir ist Flag, kann sein CHAXIS_MARK_INNER und CHAXIS_MARK_OUTER (oder beides)
- SdrObject *CreateMarks(long nPosition,long nLen,long nWhichTicks);
-
-- BOOL TranslateMergedNumFormat( SvULONGTable* pTransTable );
-+ BOOL TranslateMergedNumFormat( Svsal_uInt32Table* pTransTable );
- long GetUniqueId() const { return mnUId; }
-
- /** Converts a CHOBJID into an axis UId.
---- sch/inc/chtmodel.hxx 3 Mar 2005 17:30:52 -0000 1.53
-+++ sch/inc/chtmodel.hxx 9 Mar 2005 21:20:37 -0000 1.51.28.2
-@@ -149,7 +149,7 @@ class SchModelData;
- class SchObjectId;
- class ChartAxis;
- class SvNumberFormatter;
--class SvULONGTable;
-+class Svsal_uInt32Table;
- class SchItemPool;
- class SchMemChart;
- class Vector3D;
-@@ -1000,7 +1000,7 @@ public:
-
- void SetNumberFormatter( SvNumberFormatter* );
- void DataRangeChanged( long _nOldRowCnt = 0, long _nOldColCnt = 0 );
-- void TranslateAllNumFormatIds( SvULONGTable* );
-+ void TranslateAllNumFormatIds( Svsal_uInt32Table* );
-
- /** set new doc shell if there was no one before
- returns true if new shell was set */
---- sch/source/core/chtmode5.cxx 24 Feb 2005 14:09:20 -0000 1.8
-+++ sch/source/core/chtmode5.cxx 9 Mar 2005 21:27:37 -0000 1.7.228.2
-@@ -383,7 +383,7 @@ void ChartModel::SetChartData(SchMemChar
- // merge old one to new one and set new one as member
- if( pNewFormatter && pNumFormatter )
- {
-- SvULONGTable* pTransTable =
-+ Svsal_uInt32Table* pTransTable =
- pNewFormatter->MergeFormatter( *pNumFormatter );
-
- SetNumberFormatter( pNewFormatter );
---- sch/source/ui/dlg/databrws.cxx 9 Nov 2004 18:31:45 -0000 1.13
-+++ sch/source/ui/dlg/databrws.cxx 21 Jan 2005 16:18:53 -0000 1.13.28.1
-@@ -736,7 +736,7 @@ sal_Bool ChartDataBrowseBox::SaveModifie
- if( aText.Len() > 0 )
- {
- SvNumberFormatter* pFormatter = m_pModel->GetNumFormatter();
-- ULONG nFormat =
-+ sal_uInt32 nFormat =
- pFormatter->GetStandardFormat( m_apMemChart->GetDataType(),
- LANGUAGE_SYSTEM );
- if( ! pFormatter->IsNumberFormat( aText, nFormat, fData ))
---- sch/inc/memchrt.hxx 24 Feb 2005 14:06:15 -0000 1.14
-+++ sch/inc/memchrt.hxx 9 Mar 2005 21:20:45 -0000 1.13.68.2
-@@ -310,28 +310,28 @@ public:
- // BM: Fix for #68864#
- // Use these four methods with care! The arrays MUST have the correct size!
- // ********************
-- void SetRowTranslation( const long* pTransTable )
-+ void SetRowTranslation( const sal_Int32* pTransTable )
- {
- if( !pRowTable ) return;
-- for( long i=0; i<nRowCnt; i++ )
-+ for( sal_Int32 i=0; i<nRowCnt; i++ )
- pRowTable[ i ] = pTransTable[ i ];
- }
-- void SetColTranslation( const long* pTransTable )
-+ void SetColTranslation( const sal_Int32* pTransTable )
- {
- if( !pColTable ) return;
-- for( long i=0; i<nColCnt; i++ )
-+ for( sal_Int32 i=0; i<nColCnt; i++ )
- pColTable[ i ] = pTransTable[ i ];
- }
-- void SetRowNumFmtTable( const long* pNumFmtTable )
-+ void SetRowNumFmtTable( const sal_Int32* pNumFmtTable )
- {
- if( !pRowNumFmtId ) return;
-- for( long i=0; i<nRowCnt; i++ )
-+ for( sal_Int32 i=0; i<nRowCnt; i++ )
- pRowNumFmtId[ i ] = pNumFmtTable[ i ];
- }
-- void SetColNumFmtTable( const long* pNumFmtTable )
-+ void SetColNumFmtTable( const sal_Int32* pNumFmtTable )
- {
- if( !pColNumFmtId ) return;
-- for( long i=0; i<nColCnt; i++ )
-+ for( sal_Int32 i=0; i<nColCnt; i++ )
- pColNumFmtId[ i ] = pNumFmtTable[ i ];
- }
- // this is only valid if the corresponding translation table was set correctly!
---- sch/source/core/chaxis.cxx 24 Feb 2005 14:07:30 -0000 1.38
-+++ sch/source/core/chaxis.cxx 9 Mar 2005 21:27:29 -0000 1.37.76.2
-@@ -2781,7 +2781,7 @@ BOOL ChartAxis::IsValueInRange( double f
- return ((mfMin <= fValue) && (fValue <= mfMax));
- }
-
--BOOL ChartAxis::TranslateMergedNumFormat( SvULONGTable* pTransTable )
-+BOOL ChartAxis::TranslateMergedNumFormat( Svsal_uInt32Table* pTransTable )
- {
- ULONG nFmt, nMrgFmt;
- BOOL bRet =FALSE;
---- sch/source/core/chtmode9.cxx 24 Feb 2005 14:09:51 -0000 1.43
-+++ sch/source/core/chtmode9.cxx 9 Mar 2005 21:24:53 -0000 1.42.6.2
-@@ -1910,7 +1910,7 @@ void ChartModel::SetNumberFormatter( SvN
- }
- }
-
--void ChartModel::TranslateAllNumFormatIds( SvULONGTable* pTransTable )
-+void ChartModel::TranslateAllNumFormatIds( Svsal_uInt32Table* pTransTable )
- {
- if( pChartXAxis->TranslateMergedNumFormat( pTransTable ) &&
- nXLastNumFmt >= 0 )
---- sch/source/ui/dlg/tpscaley.cxx 20 Aug 2004 08:44:18 -0000 1.6
-+++ sch/source/ui/dlg/tpscaley.cxx 21 Jan 2005 16:19:03 -0000 1.6.18.1
-@@ -343,7 +343,7 @@ void SchScaleYAxisTabPage::Reset(const S
-
- int SchScaleYAxisTabPage::DeactivatePage(SfxItemSet* pItemSet)
- {
-- ULONG nIndex = pNumFormatter->GetStandardIndex(LANGUAGE_SYSTEM);
-+ sal_uInt32 nIndex = pNumFormatter->GetStandardIndex(LANGUAGE_SYSTEM);
- Edit* pEdit = NULL;
- USHORT nErrStrId = 0;
- double fDummy;
-@@ -471,7 +471,7 @@ IMPL_LINK( SchScaleYAxisTabPage, HandleL
-
- void SchScaleYAxisTabPage::CheckLogs ()
- {
-- ULONG nIndex = pNumFormatter->GetStandardIndex(LANGUAGE_SYSTEM);
-+ sal_uInt32 nIndex = pNumFormatter->GetStandardIndex(LANGUAGE_SYSTEM);
- Edit *pEdit = NULL;
- USHORT nErrStrId = 0;
- String aNumStr;
-@@ -606,7 +606,7 @@ void SchScaleYAxisTabPage::CheckLogContr
-
- if (aCbxLogarithm.IsChecked ())
- {
-- ULONG nIndex = pNumFormatter->GetStandardIndex(LANGUAGE_SYSTEM);
-+ sal_uInt32 nIndex = pNumFormatter->GetStandardIndex(LANGUAGE_SYSTEM);
-
- aFmtFldOrigin.Enable (FALSE);
- aCbxAutoOrigin.Enable (FALSE);
-@@ -660,7 +660,7 @@ BOOL SchScaleYAxisTabPage::GetHelpValue
- }
- else
- {
-- ULONG nIndex = pNumFormatter->GetStandardIndex(LANGUAGE_SYSTEM);
-+ sal_uInt32 nIndex = pNumFormatter->GetStandardIndex(LANGUAGE_SYSTEM);
- double fDummy;
-
- fStepHelp = aFmtFldStepHelp.GetValue();
diff --git a/patches/64bit/numberformat-sd.diff b/patches/64bit/numberformat-sd.diff
deleted file mode 100644
index 637637657..000000000
--- a/patches/64bit/numberformat-sd.diff
+++ /dev/null
@@ -1,22 +0,0 @@
---- sd/source/ui/docshell/docshel4.cxx 18 Jan 2005 15:16:29 -0000 1.66
-+++ sd/source/ui/docshell/docshel4.cxx 9 Mar 2005 22:12:37 -0000 1.65.6.2
-@@ -983,7 +983,7 @@ BOOL DrawDocShell::SaveAsOwnFormat( SfxM
- \************************************************************************/
-
- void DrawDocShell::FillClass(SvGlobalName* pClassName,
-- ULONG* pFormat,
-+ sal_uInt32* pFormat,
- String* pAppName,
- String* pFullTypeName,
- String* pShortTypeName,
---- sd/source/ui/inc/DrawDocShell.hxx 11 Jan 2005 12:12:23 -0000 1.8
-+++ sd/source/ui/inc/DrawDocShell.hxx 21 Jan 2005 16:31:57 -0000 1.8.6.1
-@@ -151,7 +151,7 @@ public:
- virtual SfxStyleSheetBasePool* GetStyleSheetPool();
- virtual void SetOrganizerSearchMask(SfxStyleSheetBasePool* pBasePool) const;
- virtual Size GetFirstPageSize();
-- virtual void FillClass(SvGlobalName* pClassName, ULONG* pFormat, String* pAppName, String* pFullTypeName, String* pShortTypeName, sal_Int32 nFileFormat ) const;
-+ virtual void FillClass(SvGlobalName* pClassName, sal_uInt32* pFormat, String* pAppName, String* pFullTypeName, String* pShortTypeName, sal_Int32 nFileFormat ) const;
- virtual void SetModified( BOOL = TRUE );
-
-
diff --git a/patches/64bit/numberformat-sfx2.diff b/patches/64bit/numberformat-sfx2.diff
deleted file mode 100644
index 7b4916367..000000000
--- a/patches/64bit/numberformat-sfx2.diff
+++ /dev/null
@@ -1,50 +0,0 @@
---- sfx2/inc/sfxhtml.hxx 11 Jan 2005 14:51:01 -0000 1.4
-+++ sfx2/inc/sfxhtml.hxx 21 Jan 2005 17:09:45 -0000 1.4.12.1
-@@ -128,7 +128,7 @@ public:
- rtl_TextEncoding& rEnc );
-
- // <TD SDVAL="..." SDNUM="...">
-- static double GetTableDataOptionsValNum( ULONG& nNumForm,
-+ static double GetTableDataOptionsValNum( sal_uInt32& nNumForm,
- LanguageType& eNumLang, const String& aValStr,
- const String& aNumStr, SvNumberFormatter& rFormatter );
-
---- sfx2/source/bastyp/sfxhtml.cxx 11 Jan 2005 13:28:50 -0000 1.12
-+++ sfx2/source/bastyp/sfxhtml.cxx 21 Jan 2005 17:10:41 -0000 1.12.12.1
-@@ -726,12 +726,12 @@ const String& SfxHTMLParser::GetScriptTy
- return aScriptType;
- }
-
--double SfxHTMLParser::GetTableDataOptionsValNum( ULONG& nNumForm,
-+double SfxHTMLParser::GetTableDataOptionsValNum( sal_uInt32& nNumForm,
- LanguageType& eNumLang, const String& aValStr, const String& aNumStr,
- SvNumberFormatter& rFormatter )
- {
- LanguageType eParseLang = (LanguageType )aNumStr.ToInt32();
-- ULONG nParseForm =
-+ sal_uInt32 nParseForm =
- rFormatter.GetFormatForLanguageIfBuiltIn( 0, eParseLang );
- double fVal;
- rFormatter.IsNumberFormat( aValStr, nParseForm, fVal );
---- sfx2/inc/docfilt.hxx 11 Jan 2005 14:39:58 -0000 1.9
-+++ sfx2/inc/docfilt.hxx 21 Jan 2005 17:09:26 -0000 1.9.12.1
-@@ -158,7 +158,7 @@ public:
- SfxFilter( const String &rName,
- const String &rWildCard,
- SfxFilterFlags nFormatType,
-- ULONG lFormat, // Clipboardformat
-+ sal_uInt32 lFormat, // Clipboardformat
- const String &rMacType, // Dateityp (MAC)
- const String &rTypeName, // Dateityp als String (OS/2)
- USHORT nDocIcon, // Dokumenticon OS/2
---- sfx2/source/doc/objstor.cxx 4 Mar 2005 00:19:33 -0000 1.156
-+++ sfx2/source/doc/objstor.cxx 9 Mar 2005 22:24:05 -0000 1.134.14.3
-@@ -480,7 +480,7 @@ void SfxObjectShell::SetupStorage( const
- {
- SvGlobalName aName;
- String aFullTypeName, aShortTypeName, aAppName;
-- ULONG nClipFormat=0;
-+ sal_uInt32 nClipFormat=0;
-
- FillClass( &aName, &nClipFormat, &aAppName, &aFullTypeName, &aShortTypeName, nVersion );
- if ( nClipFormat )
diff --git a/patches/64bit/numberformat-starmath.diff b/patches/64bit/numberformat-starmath.diff
deleted file mode 100644
index e5421d2d7..000000000
--- a/patches/64bit/numberformat-starmath.diff
+++ /dev/null
@@ -1,22 +0,0 @@
---- starmath/inc/document.hxx 11 Jan 2005 13:08:12 -0000 1.21
-+++ starmath/inc/document.hxx 21 Jan 2005 15:57:12 -0000 1.21.2.1
-@@ -185,7 +185,7 @@ class SmDocShell : public SfxObjectShell
- USHORT nAspect = ASPECT_CONTENT);
-
- virtual void FillClass(SvGlobalName* pClassName,
-- ULONG* pFormat,
-+ sal_uInt32* pFormat,
- String* pAppName,
- String* pFullTypeName,
- String* pShortTypeName,
---- starmath/source/document.cxx 16 Feb 2005 17:58:16 -0000 1.73
-+++ starmath/source/document.cxx 9 Mar 2005 23:04:29 -0000 1.71.2.2
-@@ -1992,7 +1992,7 @@ void SmDocShell::UIActivate (BOOL bActiv
- }
-
- void SmDocShell::FillClass(SvGlobalName* pClassName,
-- ULONG* pFormat,
-+ sal_uInt32* pFormat,
- String* pAppName,
- String* pFullTypeName,
- String* pShortTypeName,
diff --git a/patches/64bit/numberformat-svtools.diff b/patches/64bit/numberformat-svtools.diff
deleted file mode 100644
index a3f7faf8e..000000000
--- a/patches/64bit/numberformat-svtools.diff
+++ /dev/null
@@ -1,1244 +0,0 @@
---- svtools/inc/zforlist.hxx 21 Jan 2005 17:16:07 -0000 1.32.146.1
-+++ svtools/inc/zforlist.hxx 21 Jan 2005 17:16:07 -0000 1.32.146.1
-@@ -246,10 +246,10 @@
- #endif
- #ifdef _ZFORLIST_DECLARE_TABLE
- DECLARE_TABLE (SvNumberFormatTable, SvNumberformat*);
--DECLARE_TABLE (SvULONGTable, ULONG*);
-+DECLARE_TABLE (Svsal_uInt32Table, sal_uInt32*);
- #else
- typedef Table SvNumberFormatTable;
--typedef Table SvULONGTable;
-+typedef Table Svsal_uInt32Table;
- #endif
-
-
-@@ -396,24 +396,24 @@
- /** Get table of formats of a specific type of a language/country.
- FIndex returns the default format of that type. */
- SvNumberFormatTable& GetEntryTable(short eType,
-- ULONG& FIndex,
-+ sal_uInt32& FIndex,
- LanguageType eLnge);
-
- /** Get table of formats of a specific type of a language/country.
- FIndex returns the default format of that type.
- If the language/country was never touched before new entries are generated */
- SvNumberFormatTable& ChangeCL(short eType,
-- ULONG& FIndex,
-+ sal_uInt32& FIndex,
- LanguageType eLnge);
-
- /** Get table of formats of the same type as FIndex; eType and rLnge are
- set accordingly. An unknown format is set to Standard/General */
- SvNumberFormatTable& GetFirstEntryTable(short& eType,
-- ULONG& FIndex,
-+ sal_uInt32& FIndex,
- LanguageType& rLnge);
-
- /// Delete an entry including the format it is refering to
-- void DeleteEntry(ULONG nKey);
-+ void DeleteEntry(sal_uInt32 nKey);
-
- /** Create new entry of a format code string for language/country.
- @return
-@@ -428,14 +428,14 @@ public:
- nType contains the type of the format.
- nKey contains the index key of the format.
- */
-- BOOL PutEntry( String& rString, xub_StrLen& nCheckPos, short& nType, ULONG& nKey,
-+ BOOL PutEntry( String& rString, xub_StrLen& nCheckPos, short& nType, sal_uInt32& nKey,
- LanguageType eLnge = LANGUAGE_DONTKNOW );
-
- /** Same as <method>PutEntry</method> but the format code string is
- considered to be of language/country eLnge and is converted to
- language/country eNewLnge */
- BOOL PutandConvertEntry( String& rString, xub_StrLen& nCheckPos,
-- short& nType, ULONG& nKey,
-+ short& nType, sal_uInt32& nKey,
- LanguageType eLnge, LanguageType eNewLnge );
-
- /** Same as <method>PutandConvertEntry</method> but the format code string
-@@ -443,7 +443,7 @@ public:
- converted to another System language/country eNewLnge. In this case
- the automatic currency is converted too. */
- BOOL PutandConvertEntrySystem( String& rString, xub_StrLen& nCheckPos,
-- short& nType, ULONG& nKey,
-+ short& nType, sal_uInt32& nKey,
- LanguageType eLnge, LanguageType eNewLnge );
-
- /** Similar to <method>PutEntry</method> and
-@@ -483,7 +483,7 @@
- rNewInserted==FALSE and rCheckPos>0 the format code has errors
- and/or could not be converted.
- */
-- ULONG GetIndexPuttingAndConverting( String & rString, LanguageType eLnge,
-+ sal_uInt32 GetIndexPuttingAndConverting( String & rString, LanguageType eLnge,
- LanguageType eSysLnge, short & rType,
- BOOL & rNewInserted,
- xub_StrLen & rCheckPos );
-@@ -490,7 +490,7 @@ public:
-
- /** Create a format code string using format nIndex as a template and
- applying other settings (passed from the dialog) */
-- void GenerateFormat( String& sString, ULONG nIndex,
-+ void GenerateFormat( String& sString, sal_uInt32 nIndex,
- LanguageType eLnge = LANGUAGE_DONTKNOW,
- BOOL bThousand = FALSE, BOOL IsRed = FALSE,
- USHORT nPrecision = 0, USHORT nAnzLeading = 1 );
-@@ -502,22 +502,22 @@
- returned in fOutNumber
- <FALSE/> if input is not a number
- */
-- BOOL IsNumberFormat( const String& sString, ULONG& F_Index, double& fOutNumber );
-+ BOOL IsNumberFormat( const String& sString, sal_uInt32& F_Index, double& fOutNumber );
-
- /// Format a number according to a format index, return string and color
-- void GetOutputString( const double& fOutNumber, ULONG nFIndex,
-+ void GetOutputString( const double& fOutNumber, sal_uInt32 nFIndex,
- String& sOutString, Color** ppColor );
-
- /** Format a string according to a format index, return string and color.
- Formats only if the format code is of type text or the 4th subcode
- of a format code is specified, otherwise sOutString will be == "" */
-- void GetOutputString( String& sString, ULONG nFIndex,
-+ void GetOutputString( String& sString, sal_uInt32 nFIndex,
- String& sOutString, Color** ppColor );
-
- /** Format a number according to the standard default format matching
- the given format index */
- void GetInputLineString( const double& fOutNumber,
-- ULONG nFIndex, String& sOutString );
-+ sal_uInt32 nFIndex, String& sOutString );
-
- /** Format a number according to a format code string to be scanned.
- @return
-@@ -538,13 +538,13 @@
- @return
- NUMBERFORMAT_ENTRY_NOT_FOUND if not found, else the format index.
- */
-- ULONG TestNewString( const String& sFormatString,
-+ sal_uInt32 TestNewString( const String& sFormatString,
- LanguageType eLnge = LANGUAGE_DONTKNOW );
-
- /// Whether format index nFIndex is of type text or not
-- BOOL IsTextFormat(ULONG nFIndex) const;
-+ BOOL IsTextFormat(sal_uInt32 nFIndex) const;
- /// Whether the 4th string subcode of format index nFIndex is present
-- BOOL HasTextFormat(ULONG nFIndex) const;
-+ BOOL HasTextFormat(sal_uInt32 nFIndex) const;
-
- /// Load all formats from a stream
- BOOL Load( SvStream& rStream );
-@@ -554,14 +554,14 @@
- void PrepareSave();
-
- /// Flag format index as used
-- void SetFormatUsed(ULONG nFIndex);
-+ void SetFormatUsed(sal_uInt32 nFIndex);
-
- /// Get additional info of a format index, e.g. for dialog box
-- void GetFormatSpecialInfo(ULONG nFormat, BOOL& bThousand, BOOL& IsRed,
-+ void GetFormatSpecialInfo(sal_uInt32 nFormat, BOOL& bThousand, BOOL& IsRed,
- USHORT& nPrecision, USHORT& nAnzLeading);
-
- /// Count of decimals
-- USHORT GetFormatPrecision( ULONG nFormat ) const;
-+ USHORT GetFormatPrecision( sal_uInt32 nFormat ) const;
-
- /** Get additional info of a format code string, e.g. for dialog box.
- Uses a temporary parse, if possible use only if format code is not
-@@ -570,7 +570,7 @@
- 0 if format code string parsed without errors, otherwise error
- position (like nCheckPos on <method>PutEntry</method>)
- */
-- ULONG GetFormatSpecialInfo( const String&, BOOL& bThousand, BOOL& IsRed,
-+ sal_uInt32 GetFormatSpecialInfo( const String&, BOOL& bThousand, BOOL& IsRed,
- USHORT& nPrecision, USHORT& nAnzLeading,
- LanguageType eLnge = LANGUAGE_DONTKNOW );
-
-@@ -579,31 +579,31 @@
-
- /** Return the format index of the format code string for language/country,
- or NUMBERFORMAT_ENTRY_NOT_FOUND */
-- ULONG GetEntryKey( const String& sStr, LanguageType eLnge = LANGUAGE_DONTKNOW );
-+ sal_uInt32 GetEntryKey( const String& sStr, LanguageType eLnge = LANGUAGE_DONTKNOW );
-
- /// Return the format for a format index
-- const SvNumberformat* GetEntry(ULONG nKey) const
-+ const SvNumberformat* GetEntry(sal_uInt32 nKey) const
- { return (SvNumberformat*) aFTable.Get(nKey); }
-
- /// Return the format index of the standard default number format for language/country
-- ULONG GetStandardIndex(LanguageType eLnge = LANGUAGE_DONTKNOW);
-+ sal_uInt32 GetStandardIndex(LanguageType eLnge = LANGUAGE_DONTKNOW);
-
- /// Return the format index of the default format of a type for language/country
-- ULONG GetStandardFormat(short eType, LanguageType eLnge = LANGUAGE_DONTKNOW);
-+ sal_uInt32 GetStandardFormat(short eType, LanguageType eLnge = LANGUAGE_DONTKNOW);
-
- /** Return the format index of the default format of a type for language/country.
- Maybe not the default format but a special builtin format, e.g. for
- NF_TIME_HH_MMSS00, if that format is passed in nFIndex. */
-- ULONG GetStandardFormat( ULONG nFIndex, short eType, LanguageType eLnge );
-+ sal_uInt32 GetStandardFormat( sal_uInt32 nFIndex, short eType, LanguageType eLnge );
-
- /** Return the format index of the default format of a type for language/country.
- Maybe not the default format but a special builtin format, e.g. for
- NF_TIME_HH_MMSS00, or NF_TIME_HH_MMSS if fNumber >= 1.0 */
-- ULONG GetStandardFormat( double fNumber, ULONG nFIndex, short eType,
-+ sal_uInt32 GetStandardFormat( double fNumber, sal_uInt32 nFIndex, short eType,
- LanguageType eLnge );
-
- /// Whether nFIndex is a special builtin format
-- BOOL IsSpecialStandardFormat( ULONG nFIndex, LanguageType eLnge );
-+ BOOL IsSpecialStandardFormat( sal_uInt32 nFIndex, LanguageType eLnge );
-
- /// Return the reference date
- Date* GetNullDate();
-@@ -613,36 +613,36 @@
- BOOL GetNoZero() { return bNoZero; }
- /** Get the type of a format (or NUMBERFORMAT_UNDEFINED if no entry),
- but with NUMBERFORMAT_DEFINED masked out */
-- short GetType(ULONG nFIndex);
-+ short GetType(sal_uInt32 nFIndex);
-
- /// As the name says
- void ClearMergeTable();
- /// Merge in all new entries from rNewTable and return a table of resulting new format indices
-- SvULONGTable* MergeFormatter(SvNumberFormatter& rNewTable);
-+ Svsal_uInt32Table* MergeFormatter(SvNumberFormatter& rNewTable);
-
- /// Whether a merge table is present or not
- inline BOOL HasMergeFmtTbl() const;
- /// Return the new format index for an old format index, if a merge table exists
-- inline ULONG GetMergeFmtIndex( ULONG nOldFmt ) const;
-+ inline sal_uInt32 GetMergeFmtIndex( sal_uInt32 nOldFmt ) const;
-
- /// Return the last used position ever of a language/country combination
-- USHORT GetLastInsertKey(ULONG CLOffset);
-+ USHORT GetLastInsertKey(sal_uInt32 CLOffset);
-
- /** Return the format index of a builtin format for a specific language/country.
- If nFormat is not a builtin format nFormat is returned. */
-- ULONG GetFormatForLanguageIfBuiltIn( ULONG nFormat,
-+ sal_uInt32 GetFormatForLanguageIfBuiltIn( sal_uInt32 nFormat,
- LanguageType eLnge = LANGUAGE_DONTKNOW );
-
- /** Return the format index for a builtin format of a specific language
- @see NfIndexTableOffset
- */
-- ULONG GetFormatIndex( NfIndexTableOffset, LanguageType eLnge = LANGUAGE_DONTKNOW );
-+ sal_uInt32 GetFormatIndex( NfIndexTableOffset, LanguageType eLnge = LANGUAGE_DONTKNOW );
-
- /** Return enum index of a format index of a builtin format,
- NF_INDEX_TABLE_ENTRIES if it's not a builtin format.
- @see NfIndexTableOffset
- */
-- NfIndexTableOffset GetIndexTableOffset( ULONG nFormat ) const;
-+ NfIndexTableOffset GetIndexTableOffset( sal_uInt32 nFormat ) const;
-
- /** Set evaluation type and order of input date strings
- @see NfEvalDateFormat
-@@ -672,7 +672,7 @@
- String GetDecimalSep() const { return GetNumDecimalSep(); }
-
- /// Return the decimal separator matching the locale of the given format
-- String GetFormatDecimalSep( ULONG nFormat ) const;
-+ String GetFormatDecimalSep( sal_uInt32 nFormat ) const;
-
- /// Return a <type>SvPtrArr</type> with pointers to <type>NfCurrencyEntry</type> entries
- static const NfCurrencyTable& GetTheCurrencyTable();
-@@ -725,7 +725,7 @@
- If ppEntry is not NULL and exactly one entry is found, a [$xxx-nnn] is
- returned, even if the format code only contains [$xxx] !
- */
-- BOOL GetNewCurrencySymbolString( ULONG nFormat, String& rSymbol,
-+ BOOL GetNewCurrencySymbolString( sal_uInt32 nFormat, String& rSymbol,
- const NfCurrencyEntry** ppEntry = NULL, BOOL* pBank = NULL ) const;
-
- /** Look up the corresponding <type>NfCurrencyEntry</type> matching
-@@ -803,7 +803,7 @@
- SvNumberFormatTable aFTable; // Table of format keys to format entries
- Table aDefaultFormatKeys; // Table of default standard to format keys
- SvNumberFormatTable* pFormatTable; // For the UI dialog
-- SvULONGTable* pMergeTable; // List of indices for merging two formatters
-+ Svsal_uInt32Table* pMergeTable; // List of indices for merging two formatters
- CharClass* pCharClass; // CharacterClassification
- OnDemandLocaleDataWrapper xLocaleData; // LocaleData switched between SYSTEM, ENGLISH and other
- OnDemandTransliterationWrapper xTransliteration; // Transliteration loaded on demand
-@@ -812,8 +812,8 @@
- ImpSvNumberInputScan* pStringScanner; // Input string scanner
- ImpSvNumberformatScan* pFormatScanner; // Format code string scanner
- Link aColorLink; // User defined color table CallBack
-- ULONG MaxCLOffset; // Max language/country offset used
-- ULONG nDefaultSystemCurrencyFormat; // NewCurrency matching SYSTEM locale
-+ sal_uInt32 MaxCLOffset; // Max language/country offset used
-+ sal_uInt32 nDefaultSystemCurrencyFormat; // NewCurrency matching SYSTEM locale
- LanguageType IniLnge; // Initialized setting language/country
- LanguageType ActLnge; // Current setting language/country
- NfEvalDateFormat eEvalDateFormat; // DateFormat evaluation
-@@ -842,38 +842,38 @@
-
- // Generate builtin formats provided by i18n behind CLOffset,
- // if bLoadingSO5==FALSE also generate additional i18n formats.
-- SVT_DLLPRIVATE void ImpGenerateFormats( ULONG CLOffset, BOOL bLoadingSO5 );
-+ SVT_DLLPRIVATE void ImpGenerateFormats( sal_uInt32 CLOffset, BOOL bLoadingSO5 );
-
- // Generate additional formats provided by i18n
- SVT_DLLPRIVATE void ImpGenerateAdditionalFormats(
-- ULONG CLOffset,
-+ sal_uInt32 CLOffset,
- NumberFormatCodeWrapper& rNumberFormatCode,
- BOOL bAfterLoadingSO5 );
-
- SVT_DLLPRIVATE SvNumberformat* ImpInsertFormat(
- const ::com::sun::star::i18n::NumberFormatCode& rCode,
-- ULONG nPos,
-+ sal_uInt32 nPos,
- BOOL bAfterLoadingSO5 = FALSE,
- sal_Int16 nOrgIndex = 0 );
- // ImpInsertNewStandardFormat for new (since version ...) builtin formats
- SVT_DLLPRIVATE SvNumberformat* ImpInsertNewStandardFormat(
- const ::com::sun::star::i18n::NumberFormatCode& rCode,
-- ULONG nPos,
-+ sal_uInt32 nPos,
- USHORT nVersion,
- BOOL bAfterLoadingSO5 = FALSE,
- sal_Int16 nOrgIndex = 0 );
-
- // Return CLOffset or (MaxCLOffset + SV_COUNTRY_LANGUAGE_OFFSET) if new language/country
-- SVT_DLLPRIVATE ULONG ImpGetCLOffset(LanguageType eLnge) const;
-+ SVT_DLLPRIVATE sal_uInt32 ImpGetCLOffset(LanguageType eLnge) const;
-
- // Test whether format code already exists, then return index key,
- // otherwise NUMBERFORMAT_ENTRY_NOT_FOUND
-- SVT_DLLPRIVATE ULONG ImpIsEntry( const String& rString,
-- ULONG CLOffset,
-+ SVT_DLLPRIVATE sal_uInt32 ImpIsEntry( const String& rString,
-+ sal_uInt32 CLOffset,
- LanguageType eLnge );
-
- // Create builtin formats for language/country if necessary, return CLOffset
-- SVT_DLLPRIVATE ULONG ImpGenerateCL( LanguageType eLnge, BOOL bLoadingSO5 = FALSE );
-+ SVT_DLLPRIVATE sal_uInt32 ImpGenerateCL( LanguageType eLnge, BOOL bLoadingSO5 = FALSE );
-
- // Build negative currency format, old compatibility style
- SVT_DLLPRIVATE void ImpGetNegCurrFormat( String& sNegStr, const String& rCurrSymbol );
-@@ -885,15 +885,15 @@ private:
-
- // Return the format index of the currency format of the system locale.
- // Format is created if not already present.
-- SVT_DLLPRIVATE ULONG ImpGetDefaultSystemCurrencyFormat();
-+ SVT_DLLPRIVATE sal_uInt32 ImpGetDefaultSystemCurrencyFormat();
-
- // Return the format index of the currency format of the current locale.
- // Format is created if not already present.
-- SVT_DLLPRIVATE ULONG ImpGetDefaultCurrencyFormat();
-+ SVT_DLLPRIVATE sal_uInt32 ImpGetDefaultCurrencyFormat();
-
- // Return the default format for a given type and current locale.
- // May ONLY be called from within GetStandardFormat().
-- SVT_DLLPRIVATE ULONG ImpGetDefaultFormat( short nType );
-+ SVT_DLLPRIVATE sal_uInt32 ImpGetDefaultFormat( short nType );
-
- // Return the index in a sequence of format codes matching an enum of
- // NfIndexTableOffset. If not found 0 is returned. If the sequence doesn't
-@@ -996,9 +996,9 @@
-
- // --------------------------- inline --------------------------------------
-
--inline ULONG SvNumberFormatter::GetMergeFmtIndex( ULONG nOldFmt ) const
-+inline sal_uInt32 SvNumberFormatter::GetMergeFmtIndex( sal_uInt32 nOldFmt ) const
- {
-- ULONG* pU = (pMergeTable && pMergeTable->Count()) ? (ULONG*)pMergeTable->Get( nOldFmt ) : 0;
-+ sal_uInt32* pU = (pMergeTable && pMergeTable->Count()) ? (sal_uInt32*)pMergeTable->Get( nOldFmt ) : 0;
- return pU ? *pU : nOldFmt;
- }
-
---- svtools/source/control/fmtfield.cxx 21 Jan 2005 17:16:19 -0000 1.29.62.1
-+++ svtools/source/control/fmtfield.cxx 21 Jan 2005 17:16:19 -0000 1.29.62.1
-@@ -688,7 +688,7 @@
- LanguageType aOldLang;
- GetFormat(sOldFormat, aOldLang);
-
-- ULONG nDestKey = pFormatter->TestNewString(sOldFormat);
-+ sal_uInt32 nDestKey = pFormatter->TestNewString(sOldFormat);
- if (nDestKey == NUMBERFORMAT_ENTRY_NOT_FOUND)
- {
- // die Sprache des neuen Formatters
-@@ -721,7 +721,7 @@
- BOOL FormattedField::SetFormat(const XubString& rFormatString, LanguageType eLang)
- {
- DBG_CHKTHIS(FormattedField, NULL);
-- ULONG nNewKey = ImplGetFormatter()->TestNewString(rFormatString, eLang);
-+ sal_uInt32 nNewKey = ImplGetFormatter()->TestNewString(rFormatString, eLang);
- if (nNewKey == NUMBERFORMAT_ENTRY_NOT_FOUND)
- {
- USHORT nCheckPos;
-@@ -772,7 +772,7 @@
- ImplGetFormatter()->GenerateFormat(sFmtDescription, m_nFormatKey, eLang, _bUseSeparator, IsRed, nPrecision, nAnzLeading);
- // ... and introduce it to the formatter
- USHORT nCheckPos;
-- ULONG nNewKey;
-+ sal_uInt32 nNewKey;
- short nType;
- ImplGetFormatter()->PutEntry(sFmtDescription, nCheckPos, nType, nNewKey, eLang);
-
-@@ -816,7 +816,7 @@
- ImplGetFormatter()->GenerateFormat(sFmtDescription, m_nFormatKey, eLang, bThousand, IsRed, _nPrecision, nAnzLeading);
- // ... and introduce it to the formatter
- USHORT nCheckPos;
-- ULONG nNewKey;
-+ sal_uInt32 nNewKey;
- short nType;
- ImplGetFormatter()->PutEntry(sFmtDescription, nCheckPos, nType, nNewKey, eLang);
-
-@@ -1039,7 +1039,7 @@
-
- DBG_ASSERT(ImplGetFormatter() != NULL, "FormattedField::ImplGetValue : can't give you a current value without a formatter !");
-
-- ULONG nFormatKey = m_nFormatKey; // IsNumberFormat veraendert den FormatKey ...
-+ sal_uInt32 nFormatKey = m_nFormatKey; // IsNumberFormat veraendert den FormatKey ...
-
- if (ImplGetFormatter()->IsTextFormat(nFormatKey) && m_bTreatAsNumber)
- // damit wir in einem als Text formatierten Feld trotzdem eine Eingabe wie '1,1' erkennen ...
-@@ -1053,7 +1053,7 @@
- // the default number format for this language
- ULONG nStandardNumericFormat = m_pFormatter->GetStandardFormat(NUMBERFORMAT_NUMBER, eLanguage);
-
-- ULONG nTempFormat = nStandardNumericFormat;
-+ sal_uInt32 nTempFormat = nStandardNumericFormat;
- double dTemp;
- if (m_pFormatter->IsNumberFormat(sText, nTempFormat, dTemp) &&
- NUMBERFORMAT_NUMBER == m_pFormatter->GetType(nTempFormat))
---- svtools/source/numbers/zforlist.cxx 21 Jan 2005 17:17:04 -0000 1.53.146.1
-+++ svtools/source/numbers/zforlist.cxx 21 Jan 2005 17:17:04 -0000 1.53.146.1
-@@ -131,7 +131,7 @@ using namespace ::com::sun::star::lang;
- #define UNKNOWN_SUBSTITUTE LANGUAGE_ENGLISH_US
-
- static BOOL bIndexTableInitialized = FALSE;
--static ULONG __FAR_DATA theIndexTable[NF_INDEX_TABLE_ENTRIES];
-+static sal_uInt32 __FAR_DATA theIndexTable[NF_INDEX_TABLE_ENTRIES];
-
-
- // ====================================================================
-@@ -155,7 +155,7 @@
- { aFormatters.Insert( pThis, LIST_APPEND ); }
- SvNumberFormatter* Remove( SvNumberFormatter* pThis )
- { return (SvNumberFormatter*)aFormatters.Remove( pThis ); }
-- ULONG Count()
-+ sal_uInt32 Count()
- { return aFormatters.Count(); }
-
- virtual void Notify( SvtBroadcaster& rBC, const SfxHint& rHint );
-@@ -437,7 +437,7 @@
- }
- else if ( bLoadingSO5 )
- { // delete additional standard formats
-- ULONG nKey;
-+ sal_uInt32 nKey;
- aFTable.Seek( SV_MAX_ANZ_STANDARD_FORMATE + 1 );
- while ( (nKey = aFTable.GetCurKey()) > SV_MAX_ANZ_STANDARD_FORMATE &&
- nKey < SV_COUNTRY_LANGUAGE_OFFSET )
-@@ -451,13 +451,13 @@
-
- void SvNumberFormatter::ReplaceSystemCL( LanguageType eOldLanguage )
- {
-- ULONG nCLOffset = ImpGetCLOffset( LANGUAGE_SYSTEM );
-+ sal_uInt32 nCLOffset = ImpGetCLOffset( LANGUAGE_SYSTEM );
- if ( nCLOffset > MaxCLOffset )
- return ; // no SYSTEM entries to replace
-
-- const ULONG nMaxBuiltin = nCLOffset + SV_MAX_ANZ_STANDARD_FORMATE;
-- const ULONG nNextCL = nCLOffset + SV_COUNTRY_LANGUAGE_OFFSET;
-- ULONG nKey;
-+ const sal_uInt32 nMaxBuiltin = nCLOffset + SV_MAX_ANZ_STANDARD_FORMATE;
-+ const sal_uInt32 nNextCL = nCLOffset + SV_COUNTRY_LANGUAGE_OFFSET;
-+ sal_uInt32 nKey;
-
- // remove old builtin formats
- aFTable.Seek( nCLOffset );
-@@ -483,7 +483,7 @@
-
- // convert additional and user defined from old system to new system
- SvNumberformat* pStdFormat = (SvNumberformat*) aFTable.Get( nCLOffset + ZF_STANDARD );
-- ULONG nLastKey = nMaxBuiltin;
-+ sal_uInt32 nLastKey = nMaxBuiltin;
- pFormatScanner->SetConvertMode( eOldLanguage, LANGUAGE_SYSTEM, TRUE );
- aOldTable.First();
- while ( aOldTable.Count() )
-@@ -530,7 +530,7 @@
- }
-
-
--BOOL SvNumberFormatter::IsTextFormat(ULONG F_Index) const
-+BOOL SvNumberFormatter::IsTextFormat(sal_uInt32 F_Index) const
- {
- SvNumberformat* pFormat = (SvNumberformat*) aFTable.Get(F_Index);
- if (!pFormat)
-@@ -539,7 +539,7 @@
- return pFormat->IsTextFormat();
- }
-
--BOOL SvNumberFormatter::HasTextFormat(ULONG F_Index) const
-+BOOL SvNumberFormatter::HasTextFormat(sal_uInt32 F_Index) const
- {
- SvNumberformat* pFormat = (SvNumberformat*) aFTable.Get(F_Index);
- if (!pFormat)
-@@ -551,7 +551,7 @@
- BOOL SvNumberFormatter::PutEntry(String& rString,
- xub_StrLen& nCheckPos,
- short& nType,
-- ULONG& nKey, // Formatnummer
-+ sal_uInt32& nKey, // Formatnummer
- LanguageType eLnge)
- {
- nKey = 0;
-@@ -584,7 +584,7 @@
- p_Entry->SetType(NUMBERFORMAT_DEFINED);
- nType = NUMBERFORMAT_DEFINED;
- }
-- ULONG CLOffset = ImpGenerateCL(eLge); // ggfs. neu Standard-
-+ sal_uInt32 CLOffset = ImpGenerateCL(eLge); // ggfs. neu Standard-
- // formate anlegen
- nKey = ImpIsEntry(p_Entry->GetFormatstring(),CLOffset, eLge);
- if (nKey != NUMBERFORMAT_ENTRY_NOT_FOUND) // schon vorhanden
-@@ -593,7 +593,7 @@
- {
- SvNumberformat* pStdFormat =
- (SvNumberformat*) aFTable.Get(CLOffset + ZF_STANDARD);
-- ULONG nPos = CLOffset + pStdFormat->GetLastInsertKey();
-+ sal_uInt32 nPos = CLOffset + pStdFormat->GetLastInsertKey();
- if (nPos - CLOffset >= SV_COUNTRY_LANGUAGE_OFFSET)
- {
- Sound::Beep();
-@@ -618,7 +618,7 @@
- BOOL SvNumberFormatter::PutandConvertEntry(String& rString,
- xub_StrLen& nCheckPos,
- short& nType,
-- ULONG& nKey,
-+ sal_uInt32& nKey,
- LanguageType eLnge,
- LanguageType eNewLnge)
- {
-@@ -636,7 +636,7 @@
- BOOL SvNumberFormatter::PutandConvertEntrySystem(String& rString,
- xub_StrLen& nCheckPos,
- short& nType,
-- ULONG& nKey,
-+ sal_uInt32& nKey,
- LanguageType eLnge,
- LanguageType eNewLnge)
- {
-@@ -651,11 +651,11 @@
- }
-
-
--ULONG SvNumberFormatter::GetIndexPuttingAndConverting( String & rString,
-+sal_uInt32 SvNumberFormatter::GetIndexPuttingAndConverting( String & rString,
- LanguageType eLnge, LanguageType eSysLnge, short & rType,
- BOOL & rNewInserted, xub_StrLen & rCheckPos )
- {
-- ULONG nKey = NUMBERFORMAT_ENTRY_NOT_FOUND;
-+ sal_uInt32 nKey = NUMBERFORMAT_ENTRY_NOT_FOUND;
- rNewInserted = FALSE;
- rCheckPos = 0;
-
-@@ -665,7 +665,7 @@
- else if (eLnge == LANGUAGE_SYSTEM && eSysLnge !=
- Application::GetSettings().GetLanguage())
- {
-- ULONG nOrig = GetEntryKey( rString, eSysLnge );
-+ sal_uInt32 nOrig = GetEntryKey( rString, eSysLnge );
- if (nOrig == NUMBERFORMAT_ENTRY_NOT_FOUND)
- nKey = nOrig; // none avaliable, maybe user-defined
- else
-@@ -721,7 +721,7 @@
- }
-
-
--void SvNumberFormatter::DeleteEntry(ULONG nKey)
-+void SvNumberFormatter::DeleteEntry(sal_uInt32 nKey)
- {
- SvNumberformat* pEntry = aFTable.Remove(nKey);
- delete pEntry;
-@@ -737,7 +737,7 @@
- }
- }
-
--void SvNumberFormatter::SetFormatUsed(ULONG nFIndex)
-+void SvNumberFormatter::SetFormatUsed(sal_uInt32 nFIndex)
- {
- SvNumberformat* pFormat = (SvNumberformat*) aFTable.Get(nFIndex);
- if (pFormat)
-@@ -753,7 +753,7 @@
- USHORT nVersion;
- rStream >> nVersion;
- SvNumberformat* pEntry;
-- ULONG nPos;
-+ sal_uInt32 nPos;
- LanguageType eSaveSysLang, eLoadSysLang;
- USHORT nSysOnStore, eLge, eDummy; // Dummy fuer kompatibles Format
- rStream >> nSysOnStore >> eLge; // Systemeinstellung aus
-@@ -770,7 +770,7 @@ BOOL SvNumberFormatter::Load( SvStream&
- eLnge = (LanguageType) eLge;
- ImpGenerateCL( eLnge, TRUE ); // ggfs. neue Standardformate anlegen
-
-- ULONG nOffset = nPos % SV_COUNTRY_LANGUAGE_OFFSET; // relativIndex
-+ sal_uInt32 nOffset = nPos % SV_COUNTRY_LANGUAGE_OFFSET; // relativIndex
- BOOL bUserDefined = (nOffset > SV_MAX_ANZ_STANDARD_FORMATE);
- //! HACK! ER 29.07.97 15:15
- // SaveLang wurde bei SYSTEM nicht gespeichert sondern war auch SYSTEM,
-@@ -939,7 +939,7 @@
- {
- LanguageType eLang = aList[j];
- ChangeIntl( eLang );
-- ULONG CLOffset = ImpGetCLOffset( eLang );
-+ sal_uInt32 CLOffset = ImpGetCLOffset( eLang );
- ImpGenerateAdditionalFormats( CLOffset, aNumberFormatCode, TRUE );
- }
- ChangeIntl( eOldLanguage );
-@@ -997,7 +997,7 @@
- {
- rList.Remove( 0, rList.Count() );
-
-- ULONG nOffset = 0;
-+ sal_uInt32 nOffset = 0;
- while (nOffset <= MaxCLOffset)
- {
- SvNumberformat* pFormat = (SvNumberformat*) aFTable.Get(nOffset);
-@@ -1039,10 +1039,10 @@
- }
-
-
--ULONG SvNumberFormatter::ImpGetCLOffset(LanguageType eLnge) const
-+sal_uInt32 SvNumberFormatter::ImpGetCLOffset(LanguageType eLnge) const
- {
- SvNumberformat* pFormat;
-- ULONG nOffset = 0;
-+ sal_uInt32 nOffset = 0;
- while (nOffset <= MaxCLOffset)
- {
- pFormat = (SvNumberformat*) aFTable.Get(nOffset);
-@@ -1053,8 +1053,8 @@
- return nOffset;
- }
-
--ULONG SvNumberFormatter::ImpIsEntry(const String& rString,
-- ULONG nCLOffset,
-+sal_uInt32 SvNumberFormatter::ImpIsEntry(const String& rString,
-+ sal_uInt32 nCLOffset,
- LanguageType eLnge)
- {
- #ifndef NF_COMMENT_IN_FORMATSTRING
-@@ -1064,7 +1064,7 @@
- String aStr( rString );
- SvNumberformat::EraseComment( aStr );
- #endif
-- ULONG res = NUMBERFORMAT_ENTRY_NOT_FOUND;
-+ sal_uInt32 res = NUMBERFORMAT_ENTRY_NOT_FOUND;
- SvNumberformat* pEntry;
- pEntry = (SvNumberformat*) aFTable.Seek(nCLOffset);
- while ( res == NUMBERFORMAT_ENTRY_NOT_FOUND &&
-@@ -1100,7 +1100,7 @@
-
- SvNumberFormatTable& SvNumberFormatter::GetFirstEntryTable(
- short& eType,
-- ULONG& FIndex,
-+ sal_uInt32& FIndex,
- LanguageType& rLnge)
- {
- short eTypetmp = eType;
-@@ -1138,10 +1138,10 @@
- return GetEntryTable(eTypetmp, FIndex, rLnge);
- }
-
--ULONG SvNumberFormatter::ImpGenerateCL( LanguageType eLnge, BOOL bLoadingSO5 )
-+sal_uInt32 SvNumberFormatter::ImpGenerateCL( LanguageType eLnge, BOOL bLoadingSO5 )
- {
- ChangeIntl(eLnge);
-- ULONG CLOffset = ImpGetCLOffset(ActLnge);
-+ sal_uInt32 CLOffset = ImpGetCLOffset(ActLnge);
- if (CLOffset > MaxCLOffset)
- { // new CL combination
- if (LocaleDataWrapper::areChecksEnabled())
-@@ -1207,7 +1207,7 @@
- }
-
- SvNumberFormatTable& SvNumberFormatter::ChangeCL(short eType,
-- ULONG& FIndex,
-+ sal_uInt32& FIndex,
- LanguageType eLnge)
- {
- ImpGenerateCL(eLnge);
-@@ -1216,7 +1216,7 @@
-
- SvNumberFormatTable& SvNumberFormatter::GetEntryTable(
- short eType,
-- ULONG& FIndex,
-+ sal_uInt32& FIndex,
- LanguageType eLnge)
- {
- if ( pFormatTable )
-@@ -1224,11 +1224,11 @@
- else
- pFormatTable = new SvNumberFormatTable;
- ChangeIntl(eLnge);
-- ULONG CLOffset = ImpGetCLOffset(ActLnge);
-+ sal_uInt32 CLOffset = ImpGetCLOffset(ActLnge);
-
- // Might generate and insert a default format for the given type
- // (e.g. currency) => has to be done before collecting formats.
-- ULONG nDefaultIndex = GetStandardFormat( eType, ActLnge );
-+ sal_uInt32 nDefaultIndex = GetStandardFormat( eType, ActLnge );
-
- SvNumberformat* pEntry;
- pEntry = (SvNumberformat*) aFTable.Seek(CLOffset);
-@@ -1261,7 +1261,7 @@
- }
-
- BOOL SvNumberFormatter::IsNumberFormat(const String& sString,
-- ULONG& F_Index,
-+ sal_uInt32& F_Index,
- double& fOutNumber)
- {
- short FType;
-@@ -1383,10 +1383,10 @@
- }
-
-
--ULONG SvNumberFormatter::ImpGetDefaultFormat( short nType )
-+sal_uInt32 SvNumberFormatter::ImpGetDefaultFormat( short nType )
- {
-- ULONG CLOffset = ImpGetCLOffset( ActLnge );
-- ULONG nSearch;
-+ sal_uInt32 CLOffset = ImpGetCLOffset( ActLnge );
-+ sal_uInt32 nSearch;
- switch( nType )
- {
- case NUMBERFORMAT_DATE :
-@@ -1407,13 +1407,13 @@
- default:
- nSearch = CLOffset + ZF_STANDARD;
- }
-- ULONG nDefaultFormat = (ULONG) aDefaultFormatKeys.Get( nSearch );
-+ sal_uInt32 nDefaultFormat = (sal_uInt32)(sal_uIntPtr) aDefaultFormatKeys.Get( nSearch );
- if ( !nDefaultFormat )
- nDefaultFormat = NUMBERFORMAT_ENTRY_NOT_FOUND;
- if ( nDefaultFormat == NUMBERFORMAT_ENTRY_NOT_FOUND )
- { // look for a defined standard
-- ULONG nStopKey = CLOffset + SV_COUNTRY_LANGUAGE_OFFSET;
-- ULONG nKey;
-+ sal_uInt32 nStopKey = CLOffset + SV_COUNTRY_LANGUAGE_OFFSET;
-+ sal_uInt32 nKey;
- aFTable.Seek( CLOffset );
- while ( (nKey = aFTable.GetCurKey()) >= CLOffset && nKey < nStopKey )
- {
-@@ -1457,9 +1457,9 @@
- }
-
-
--ULONG SvNumberFormatter::GetStandardFormat( short eType, LanguageType eLnge )
-+sal_uInt32 SvNumberFormatter::GetStandardFormat( short eType, LanguageType eLnge )
- {
-- ULONG CLOffset = ImpGenerateCL(eLnge);
-+ sal_uInt32 CLOffset = ImpGenerateCL(eLnge);
- switch(eType)
- {
- case NUMBERFORMAT_CURRENCY :
-@@ -1487,7 +1487,7 @@
- }
- }
-
--BOOL SvNumberFormatter::IsSpecialStandardFormat( ULONG nFIndex,
-+BOOL SvNumberFormatter::IsSpecialStandardFormat( sal_uInt32 nFIndex,
- LanguageType eLnge )
- {
- return
-@@ -1497,7 +1497,7 @@
- ;
- }
-
--ULONG SvNumberFormatter::GetStandardFormat( ULONG nFIndex, short eType,
-+sal_uInt32 SvNumberFormatter::GetStandardFormat( sal_uInt32 nFIndex, short eType,
- LanguageType eLnge )
- {
- if ( IsSpecialStandardFormat( nFIndex, eLnge ) )
-@@ -1506,7 +1506,7 @@
- return GetStandardFormat( eType, eLnge );
- }
-
--ULONG SvNumberFormatter::GetStandardFormat( double fNumber, ULONG nFIndex,
-+sal_uInt32 SvNumberFormatter::GetStandardFormat( double fNumber, sal_uInt32 nFIndex,
- short eType, LanguageType eLnge )
- {
- if ( IsSpecialStandardFormat( nFIndex, eLnge ) )
-@@ -1547,7 +1547,7 @@
- }
-
- void SvNumberFormatter::GetInputLineString(const double& fOutNumber,
-- ULONG nFIndex,
-+ sal_uInt32 nFIndex,
- String& sOutString)
- {
- SvNumberformat* pFormat;
-@@ -1572,7 +1572,7 @@
- nOldPrec = pFormatScanner->GetStandardPrec();
- ChangeStandardPrec(300); // Merkwert
- }
-- ULONG nKey = nFIndex;
-+ sal_uInt32 nKey = nFIndex;
- switch ( eType )
- { // #61619# immer vierstelliges Jahr editieren
- case NUMBERFORMAT_DATE :
-@@ -1600,7 +1600,7 @@
- }
-
- void SvNumberFormatter::GetOutputString(const double& fOutNumber,
-- ULONG nFIndex,
-+ sal_uInt32 nFIndex,
- String& sOutString,
- Color** ppColor)
- {
-@@ -1617,7 +1617,7 @@
- }
-
- void SvNumberFormatter::GetOutputString(String& sString,
-- ULONG nFIndex,
-+ sal_uInt32 nFIndex,
- String& sOutString,
- Color** ppColor)
- {
-@@ -1646,7 +1646,7 @@
- return FALSE;
-
- xub_StrLen nCheckPos;
-- ULONG nKey;
-+ sal_uInt32 nKey;
- if (eLnge == LANGUAGE_DONTKNOW)
- eLnge = IniLnge;
- ChangeIntl(eLnge); // ggfs. austauschen
-@@ -1659,7 +1659,7 @@
- eLnge);
- if (nCheckPos == 0) // String ok
- {
-- ULONG CLOffset = ImpGenerateCL(eLnge); // ggfs. neu Standard-
-+ sal_uInt32 CLOffset = ImpGenerateCL(eLnge); // ggfs. neu Standard-
- // formate anlegen
- nKey = ImpIsEntry(p_Entry->GetFormatstring(),CLOffset, eLnge);
- if (nKey != NUMBERFORMAT_ENTRY_NOT_FOUND) // schon vorhanden
-@@ -1693,8 +1693,8 @@
- BOOL bEnglish = (eLnge == LANGUAGE_ENGLISH_US);
-
- String aFormatStringUpper( pCharClass->upper( sFormatString ) );
-- ULONG nCLOffset = ImpGenerateCL( eLnge );
-- ULONG nKey = ImpIsEntry( aFormatStringUpper, nCLOffset, eLnge );
-+ sal_uInt32 nCLOffset = ImpGenerateCL( eLnge );
-+ sal_uInt32 nKey = ImpIsEntry( aFormatStringUpper, nCLOffset, eLnge );
- if ( nKey != NUMBERFORMAT_ENTRY_NOT_FOUND )
- { // Zielformat vorhanden
- GetOutputString( fPreviewNumber, nKey, sOutString, ppColor );
-@@ -1771,7 +1771,7 @@
- return FALSE;
- }
-
--ULONG SvNumberFormatter::TestNewString(const String& sFormatString,
-+sal_uInt32 SvNumberFormatter::TestNewString(const String& sFormatString,
- LanguageType eLnge)
- {
- if (sFormatString.Len() == 0) // keinen Leerstring
-@@ -1782,7 +1782,7 @@
- eLnge = IniLnge;
- ChangeIntl(eLnge); // ggfs. austauschen
- eLnge = ActLnge;
-- ULONG nRes;
-+ sal_uInt32 nRes;
- String sTmpString = sFormatString;
- SvNumberformat* pEntry = new SvNumberformat(sTmpString,
- pFormatScanner,
-@@ -1791,7 +1791,7 @@
- eLnge);
- if (nCheckPos == 0) // String ok
- {
-- ULONG CLOffset = ImpGenerateCL(eLnge); // ggfs. neu Standard-
-+ sal_uInt32 CLOffset = ImpGenerateCL(eLnge); // ggfs. neu Standard-
- // formate anlegen
- nRes = ImpIsEntry(pEntry->GetFormatstring(),CLOffset, eLnge);
- // schon vorhanden ?
-@@ -1804,7 +1804,7 @@
-
- SvNumberformat* SvNumberFormatter::ImpInsertFormat(
- const ::com::sun::star::i18n::NumberFormatCode& rCode,
-- ULONG nPos, BOOL bAfterLoadingSO5, sal_Int16 nOrgIndex )
-+ sal_uInt32 nPos, BOOL bAfterLoadingSO5, sal_Int16 nOrgIndex )
- {
- String aCodeStr( rCode.Code );
- if ( rCode.Index < NF_INDEX_TABLE_ENTRIES &&
-@@ -1851,8 +1851,8 @@
- }
- if ( rCode.Index >= NF_INDEX_TABLE_ENTRIES )
- {
-- ULONG nCLOffset = nPos - (nPos % SV_COUNTRY_LANGUAGE_OFFSET);
-- ULONG nKey = ImpIsEntry( aCodeStr, nCLOffset, ActLnge );
-+ sal_uInt32 nCLOffset = nPos - (nPos % SV_COUNTRY_LANGUAGE_OFFSET);
-+ sal_uInt32 nKey = ImpIsEntry( aCodeStr, nCLOffset, ActLnge );
- if ( nKey != NUMBERFORMAT_ENTRY_NOT_FOUND )
- {
- if (LocaleDataWrapper::areChecksEnabled())
-@@ -1925,7 +1925,7 @@
-
- SvNumberformat* SvNumberFormatter::ImpInsertNewStandardFormat(
- const ::com::sun::star::i18n::NumberFormatCode& rCode,
-- ULONG nPos, USHORT nVersion, BOOL bAfterLoadingSO5,
-+ sal_uInt32 nPos, USHORT nVersion, BOOL bAfterLoadingSO5,
- sal_Int16 nOrgIndex )
- {
- SvNumberformat* pNewFormat = ImpInsertFormat( rCode, nPos,
-@@ -1936,7 +1936,7 @@
- return pNewFormat;
- }
-
--void SvNumberFormatter::GetFormatSpecialInfo(ULONG nFormat,
-+void SvNumberFormatter::GetFormatSpecialInfo(sal_uInt32 nFormat,
- BOOL& bThousand,
- BOOL& IsRed,
- USHORT& nPrecision,
-@@ -1956,7 +1956,7 @@
- }
- }
-
--USHORT SvNumberFormatter::GetFormatPrecision( ULONG nFormat ) const
-+USHORT SvNumberFormatter::GetFormatPrecision( sal_uInt32 nFormat ) const
- {
- const SvNumberformat* pFormat = aFTable.Get( nFormat );
- if ( pFormat )
-@@ -1966,7 +1966,7 @@
- }
-
-
--String SvNumberFormatter::GetFormatDecimalSep( ULONG nFormat ) const
-+String SvNumberFormatter::GetFormatDecimalSep( sal_uInt32 nFormat ) const
- {
- const SvNumberformat* pFormat = aFTable.Get( nFormat );
- if ( !pFormat || pFormat->GetLanguage() == ActLnge )
-@@ -1988,7 +1988,7 @@
- }
-
-
--ULONG SvNumberFormatter::GetFormatSpecialInfo( const String& rFormatString,
-+sal_uInt32 SvNumberFormatter::GetFormatSpecialInfo( const String& rFormatString,
- BOOL& bThousand, BOOL& IsRed, USHORT& nPrecision,
- USHORT& nAnzLeading, LanguageType eLnge )
-
-@@ -2015,7 +2015,7 @@ ULONG SvNumberFormatter::GetFormatSpecia
- }
-
-
--inline ULONG SetIndexTable( NfIndexTableOffset nTabOff, ULONG nIndOff )
-+inline sal_uInt32 SetIndexTable( NfIndexTableOffset nTabOff, sal_uInt32 nIndOff )
- {
- if ( !bIndexTableInitialized )
- {
-@@ -2196,7 +2196,7 @@
- }
-
-
--void SvNumberFormatter::ImpGenerateFormats( ULONG CLOffset, BOOL bLoadingSO5 )
-+void SvNumberFormatter::ImpGenerateFormats( sal_uInt32 CLOffset, BOOL bLoadingSO5 )
- {
- using namespace ::com::sun::star;
-
-@@ -2626,7 +2626,7 @@
- }
-
-
--void SvNumberFormatter::ImpGenerateAdditionalFormats( ULONG CLOffset,
-+void SvNumberFormatter::ImpGenerateAdditionalFormats( sal_uInt32 CLOffset,
- NumberFormatCodeWrapper& rNumberFormatCode, BOOL bAfterLoadingSO5 )
- {
- using namespace ::com::sun::star;
-@@ -2638,7 +2638,7 @@
- DBG_ERRORFILE( "ImpGenerateAdditionalFormats: no GENERAL format" );
- return ;
- }
-- ULONG nPos = CLOffset + pStdFormat->GetLastInsertKey();
-+ sal_uInt32 nPos = CLOffset + pStdFormat->GetLastInsertKey();
- rNumberFormatCode.setLocale( GetLocale() );
- sal_Int32 j;
-
-@@ -2716,7 +2716,7 @@
- }
-
- void SvNumberFormatter::GenerateFormat(String& sString,
-- ULONG nIndex,
-+ sal_uInt32 nIndex,
- LanguageType eLnge,
- BOOL bThousand,
- BOOL IsRed,
-@@ -2839,10 +2839,10 @@
- {
- if (eLnge == LANGUAGE_DONTKNOW)
- eLnge = IniLnge;
-- ULONG CLOffset = ImpGenerateCL(eLnge); // ggfs. neu Standard-
-+ sal_uInt32 CLOffset = ImpGenerateCL(eLnge); // ggfs. neu Standard-
- // formate anlegen
- eLnge = ActLnge;
-- ULONG nKey = ImpIsEntry(sStr, CLOffset, eLnge);
-+ sal_uInt32 nKey = ImpIsEntry(sStr, CLOffset, eLnge);
- if (nKey == NUMBERFORMAT_ENTRY_NOT_FOUND)
- return TRUE;
- SvNumberformat* pEntry = aFTable.Get(nKey);
-@@ -2851,24 +2851,24 @@
- return FALSE;
- }
-
--ULONG SvNumberFormatter::GetEntryKey(const String& sStr,
-+sal_uInt32 SvNumberFormatter::GetEntryKey(const String& sStr,
- LanguageType eLnge)
- {
- if (eLnge == LANGUAGE_DONTKNOW)
- eLnge = IniLnge;
-- ULONG CLOffset = ImpGenerateCL(eLnge); // ggfs. neu Standard-
-+ sal_uInt32 CLOffset = ImpGenerateCL(eLnge); // ggfs. neu Standard-
- // formate anlegen
- return ImpIsEntry(sStr, CLOffset, eLnge);
- }
-
--ULONG SvNumberFormatter::GetStandardIndex(LanguageType eLnge)
-+sal_uInt32 SvNumberFormatter::GetStandardIndex(LanguageType eLnge)
- {
- if (eLnge == LANGUAGE_DONTKNOW)
- eLnge = IniLnge;
- return GetStandardFormat(NUMBERFORMAT_NUMBER, eLnge);
- }
-
--short SvNumberFormatter::GetType(ULONG nFIndex)
-+short SvNumberFormatter::GetType(sal_uInt32 nFIndex)
- {
- short eType;
- SvNumberformat* pFormat = (SvNumberformat*) aFTable.Get(nFIndex);
-@@ -2887,7 +2887,7 @@ void SvNumberFormatter::ClearMergeTable(
- {
- if ( pMergeTable )
- {
-- ULONG* pIndex = (ULONG*) pMergeTable->First();
-+ sal_uInt32* pIndex = (sal_uInt32*) pMergeTable->First();
- while (pIndex)
- {
- delete pIndex;
-@@ -2897,15 +2897,15 @@
- }
- }
-
--SvULONGTable* SvNumberFormatter::MergeFormatter(SvNumberFormatter& rTable)
-+Svsal_uInt32Table* SvNumberFormatter::MergeFormatter(SvNumberFormatter& rTable)
- {
- if ( pMergeTable )
- ClearMergeTable();
- else
-- pMergeTable = new SvULONGTable;
-- ULONG nCLOffset = 0;
-- ULONG nOldKey, nOffset, nNewKey;
-- ULONG* pNewIndex;
-+ pMergeTable = new Svsal_uInt32Table;
-+ sal_uInt32 nCLOffset = 0;
-+ sal_uInt32 nOldKey, nOffset, nNewKey;
-+ sal_uInt32* pNewIndex;
- SvNumberformat* pNewEntry;
- SvNumberformat* pFormat = rTable.aFTable.First();
- while (pFormat)
-@@ -2927,7 +2927,7 @@ SvULONGTable* SvNumberFormatter::MergeFo
- }
- if (nNewKey != nOldKey) // neuer Index
- {
-- pNewIndex = new ULONG(nNewKey);
-+ pNewIndex = new sal_uInt32(nNewKey);
- if (!pMergeTable->Insert(nOldKey,pNewIndex))
- delete pNewIndex;
- }
-@@ -2945,7 +2945,7 @@
- {
- SvNumberformat* pStdFormat =
- (SvNumberformat*) aFTable.Get(nCLOffset + ZF_STANDARD);
-- ULONG nPos = nCLOffset + pStdFormat->GetLastInsertKey();
-+ sal_uInt32 nPos = nCLOffset + pStdFormat->GetLastInsertKey();
- nNewKey = nPos+1;
- if (nPos - nCLOffset >= SV_COUNTRY_LANGUAGE_OFFSET)
- {
-@@ -2961,7 +2961,7 @@ SvULONGTable* SvNumberFormatter::MergeFo
- }
- if (nNewKey != nOldKey) // neuer Index
- {
-- pNewIndex = new ULONG(nNewKey);
-+ pNewIndex = new sal_uInt32(nNewKey);
- if (!pMergeTable->Insert(nOldKey,pNewIndex))
- delete pNewIndex;
- }
-@@ -2972,22 +2972,22 @@
- }
-
-
--ULONG SvNumberFormatter::GetFormatForLanguageIfBuiltIn( ULONG nFormat,
-+sal_uInt32 SvNumberFormatter::GetFormatForLanguageIfBuiltIn( sal_uInt32 nFormat,
- LanguageType eLnge )
- {
- if ( eLnge == LANGUAGE_DONTKNOW )
- eLnge = IniLnge;
- if ( nFormat < SV_COUNTRY_LANGUAGE_OFFSET && eLnge == IniLnge )
- return nFormat; // es bleibt wie es ist
-- ULONG nOffset = nFormat % SV_COUNTRY_LANGUAGE_OFFSET; // relativIndex
-+ sal_uInt32 nOffset = nFormat % SV_COUNTRY_LANGUAGE_OFFSET; // relativIndex
- if ( nOffset > SV_MAX_ANZ_STANDARD_FORMATE )
- return nFormat; // kein eingebautes Format
-- ULONG nCLOffset = ImpGenerateCL(eLnge); // ggbf. generieren
-+ sal_uInt32 nCLOffset = ImpGenerateCL(eLnge); // ggbf. generieren
- return nCLOffset + nOffset;
- }
-
-
--ULONG SvNumberFormatter::GetFormatIndex( NfIndexTableOffset nTabOff,
-+sal_uInt32 SvNumberFormatter::GetFormatIndex( NfIndexTableOffset nTabOff,
- LanguageType eLnge )
- {
- if ( nTabOff >= NF_INDEX_TABLE_ENTRIES
-@@ -2995,14 +2995,14 @@
- return NUMBERFORMAT_ENTRY_NOT_FOUND;
- if ( eLnge == LANGUAGE_DONTKNOW )
- eLnge = IniLnge;
-- ULONG nCLOffset = ImpGenerateCL(eLnge); // ggbf. generieren
-+ sal_uInt32 nCLOffset = ImpGenerateCL(eLnge); // ggbf. generieren
- return nCLOffset + theIndexTable[nTabOff];
- }
-
-
--NfIndexTableOffset SvNumberFormatter::GetIndexTableOffset( ULONG nFormat ) const
-+NfIndexTableOffset SvNumberFormatter::GetIndexTableOffset( sal_uInt32 nFormat ) const
- {
-- ULONG nOffset = nFormat % SV_COUNTRY_LANGUAGE_OFFSET; // relativIndex
-+ sal_uInt32 nOffset = nFormat % SV_COUNTRY_LANGUAGE_OFFSET; // relativIndex
- if ( nOffset > SV_MAX_ANZ_STANDARD_FORMATE )
- return NF_INDEX_TABLE_ENTRIES; // kein eingebautes Format
- for ( USHORT j = 0; j < NF_INDEX_TABLE_ENTRIES; j++ )
-@@ -3156,7 +3156,7 @@
- }
-
-
--ULONG SvNumberFormatter::ImpGetDefaultSystemCurrencyFormat()
-+sal_uInt32 SvNumberFormatter::ImpGetDefaultSystemCurrencyFormat()
- {
- if ( nDefaultSystemCurrencyFormat == NUMBERFORMAT_ENTRY_NOT_FOUND )
- {
-@@ -3178,18 +3178,18 @@
- }
-
-
--ULONG SvNumberFormatter::ImpGetDefaultCurrencyFormat()
-+sal_uInt32 SvNumberFormatter::ImpGetDefaultCurrencyFormat()
- {
-- ULONG CLOffset = ImpGetCLOffset( ActLnge );
-- ULONG nDefaultCurrencyFormat =
-- (ULONG) aDefaultFormatKeys.Get( CLOffset + ZF_STANDARD_CURRENCY );
-+ sal_uInt32 CLOffset = ImpGetCLOffset( ActLnge );
-+ sal_uInt32 nDefaultCurrencyFormat =
-+ (sal_uInt32)(sal_uIntPtr) aDefaultFormatKeys.Get( CLOffset + ZF_STANDARD_CURRENCY );
- if ( !nDefaultCurrencyFormat )
- nDefaultCurrencyFormat = NUMBERFORMAT_ENTRY_NOT_FOUND;
- if ( nDefaultCurrencyFormat == NUMBERFORMAT_ENTRY_NOT_FOUND )
- {
- // look for a defined standard
-- ULONG nStopKey = CLOffset + SV_COUNTRY_LANGUAGE_OFFSET;
-- ULONG nKey;
-+ sal_uInt32 nStopKey = CLOffset + SV_COUNTRY_LANGUAGE_OFFSET;
-+ sal_uInt32 nKey;
- aFTable.Seek( CLOffset );
- while ( (nKey = aFTable.GetCurKey()) >= CLOffset && nKey < nStopKey )
- {
-@@ -3285,7 +3285,7 @@
- }
-
-
--BOOL SvNumberFormatter::GetNewCurrencySymbolString( ULONG nFormat,
-+BOOL SvNumberFormatter::GetNewCurrencySymbolString( sal_uInt32 nFormat,
- String& rStr, const NfCurrencyEntry** ppEntry /* = NULL */,
- BOOL* pBank /* = NULL */ ) const
- {
---- svtools/source/numbers/numfmuno.cxx 21 Jan 2005 17:16:44 -0000 1.6.16.1
-+++ svtools/source/numbers/numfmuno.cxx 21 Jan 2005 17:16:44 -0000 1.6.16.1
-@@ -204,7 +204,7 @@
- if (pFormatter)
- {
- String aTemp = aString;
-- ULONG nUKey = nKey;
-+ sal_uInt32 nUKey = nKey;
- double fValue = 0.0;
- if ( pFormatter->IsNumberFormat(aTemp, nUKey, fValue) )
- nRet = nUKey;
-@@ -228,7 +228,7 @@
- if (pFormatter)
- {
- String aTemp = aString;
-- ULONG nUKey = nKey;
-+ sal_uInt32 nUKey = nKey;
- double fValue = 0.0;
- if ( pFormatter->IsNumberFormat(aTemp, nUKey, fValue) )
- fRet = fValue;
-@@ -481,15 +481,15 @@
- SvNumberFormatter* pFormatter = pSupplier ? pSupplier->GetNumberFormatter() : NULL;
- if ( pFormatter )
- {
-- ULONG nIndex = 0;
-+ sal_uInt32 nIndex = 0;
- LanguageType eLang = lcl_GetLanguage( nLocale );
- SvNumberFormatTable& rTable = bCreate ?
- pFormatter->ChangeCL( nType, nIndex, eLang ) :
- pFormatter->GetEntryTable( nType, nIndex, eLang );
-- ULONG nCount = rTable.Count();
-+ sal_uInt32 nCount = rTable.Count();
- uno::Sequence<sal_Int32> aSeq(nCount);
- sal_Int32* pAry = aSeq.getArray();
-- for (ULONG i=0; i<nCount; i++)
-+ for (sal_uInt32 i=0; i<nCount; i++)
- pAry[i] = rTable.GetObjectKey( i );
-
- return aSeq;
-@@ -536,7 +536,7 @@
- {
- String aFormStr = aFormat;
- LanguageType eLang = lcl_GetLanguage( nLocale );
-- ULONG nKey = 0;
-+ sal_uInt32 nKey = 0;
- xub_StrLen nCheckPos = 0;
- short nType = 0;
- BOOL bOk = pFormatter->PutEntry( aFormStr, nCheckPos, nType, nKey, eLang );
-@@ -568,7 +568,7 @@
- String aFormStr = aFormat;
- LanguageType eLang = lcl_GetLanguage( nLocale );
- LanguageType eNewLang = lcl_GetLanguage( nNewLocale );
-- ULONG nKey = 0;
-+ sal_uInt32 nKey = 0;
- xub_StrLen nCheckPos = 0;
- short nType = 0;
- BOOL bOk = pFormatter->PutandConvertEntry( aFormStr, nCheckPos, nType, nKey, eLang, eNewLang );
---- svtools/source/numbers/numuno.cxx 16 Jun 2004 10:28:10 -0000 1.3
-+++ svtools/source/numbers/numuno.cxx 21 Jan 2005 15:09:36 -0000 1.3.16.1
-@@ -91,7 +91,7 @@ void SvNumberFormatsSupplierObj::SetNumb
- pImpl->pFormatter = pNew;
- }
-
--void SvNumberFormatsSupplierObj::NumberFormatDeleted(ULONG nKey)
-+void SvNumberFormatsSupplierObj::NumberFormatDeleted(sal_uInt32 nKey)
- {
- // Basis-Implementierung tut nix...
- }
---- svtools/source/numbers/zformat.cxx 9 Nov 2004 11:41:16 -0000 1.62
-+++ svtools/source/numbers/zformat.cxx 21 Jan 2005 17:17:15 -0000 1.62.84.1
-@@ -1549,7 +1549,7 @@ void SvNumberformat::ConvertLanguage( Sv
- LanguageType eConvertFrom, LanguageType eConvertTo, BOOL bSystem )
- {
- xub_StrLen nCheckPos;
-- ULONG nKey;
-+ sal_uInt32 nKey;
- short nType = eType;
- String aFormatString( sFormatstring );
- if ( bSystem )
diff --git a/patches/64bit/numberformat-svx.diff b/patches/64bit/numberformat-svx.diff
deleted file mode 100644
index a4e638771..000000000
--- a/patches/64bit/numberformat-svx.diff
+++ /dev/null
@@ -1,192 +0,0 @@
---- svx/inc/numfmtsh.hxx 9 Mar 2005 23:41:25 -0000 1.4.832.2
-+++ svx/inc/numfmtsh.hxx 9 Mar 2005 23:41:25 -0000 1.4.832.2
-@@ -139,12 +139,12 @@
- {
- public:
- SvxNumberFormatShell( SvNumberFormatter* pNumFormatter,
-- ULONG nFormatKey,
-+ sal_uInt32 nFormatKey,
- SvxNumberValueType eNumValType,
- const String& rNumStr );
-
- SvxNumberFormatShell( SvNumberFormatter* pNumFormatter,
-- ULONG nFormatKey,
-+ sal_uInt32 nFormatKey,
- SvxNumberValueType eNumValType,
- double nNumVal,
- const String* pNumStr = NULL );
-@@ -153,12 +153,12 @@
-
-
- static SvxNumberFormatShell* Create( SvNumberFormatter* pNumFormatter,
-- ULONG nFormatKey,
-+ sal_uInt32 nFormatKey,
- SvxNumberValueType eNumValType,
- const String& rNumStr );
-
- static SvxNumberFormatShell* Create( SvNumberFormatter* pNumFormatter,
-- ULONG nFormatKey,
-+ sal_uInt32 nFormatKey,
- SvxNumberValueType eNumValType,
- double nNumVal,
- const String* pNumStr = NULL );
-@@ -184,7 +184,7 @@ public:
- Color*& rpFontColor );
-
- BOOL AddFormat( String& rFormat,
-- ULONG& rErrPos,
-+ sal_uInt32& rErrPos,
- USHORT& rCatLbSelPos,
- short& rFmtSelPos,
- SvStrings& rFmtEntries );
-@@ -219,15 +219,15 @@
-
- BOOL IsUserDefined( const String& rFmtString );
- BOOL IsTmpCurrencyFormat( const String& rFmtString );
-- BOOL FindEntry( const String& rFmtString, ULONG* pAt = NULL );
-+ BOOL FindEntry( const String& rFmtString, sal_uInt32* pAt = NULL );
-
- void ValidateNewEntries( BOOL bValidate = TRUE ) { bUndoAddList = !bValidate; }
-- ULONG GetUpdateDataCount() const;
-- void GetUpdateData( ULONG* pDelArray, const ULONG nSize );
-+ sal_uInt32 GetUpdateDataCount() const;
-+ void GetUpdateData( sal_uInt32* pDelArray, const sal_uInt32 nSize );
-
-- void SetCurNumFmtKey( ULONG nNew ) { nCurFormatKey = nNew; }
-+ void SetCurNumFmtKey( sal_uInt32 nNew ) { nCurFormatKey = nNew; }
- void SetCurLanguage( LanguageType eNew ) { eCurLanguage = eNew; }
-- ULONG GetCurNumFmtKey() const { return nCurFormatKey; }
-+ sal_uInt32 GetCurNumFmtKey() const { return nCurFormatKey; }
- LanguageType GetCurLanguage() const { return eCurLanguage; }
-
- String GetComment4Entry(short nEntry);
-@@ -238,12 +238,12 @@ public:
-
- BOOL IsBankingSymbol(USHORT nPos);
- void SetCurrencySymbol(USHORT nPos);
-- ULONG GetCurrencySymbol();
-+ sal_uInt32 GetCurrencySymbol();
- USHORT FindCurrencyFormat( const String& rFmtString );
- USHORT FindCurrencyFormat(const NfCurrencyEntry* pTmpCurrencyEntry,BOOL bTmpBanking);
- NfCurrencyEntry* GetCurCurrencyEntry();
- void SetCurCurrencyEntry(NfCurrencyEntry*);
-- short GetListPos4Entry(ULONG nIdx);
-+ short GetListPos4Entry(sal_uInt32 nIdx);
- short GetListPos4Entry( const String& rFmtString );
-
- void GetCurrencySymbols(SvStringsDtor& rList,const XubString& rStrEurope,USHORT* pPos);
-@@ -266,8 +266,8 @@ private:
- SvULongs aAddList;
- SvULongs aDelList;
- SvULongs aCurEntryList;
-- ULONG nInitFormatKey;
-- ULONG nCurFormatKey;
-+ sal_uInt32 nInitFormatKey;
-+ sal_uInt32 nCurFormatKey;
- short nCurCategory;
- LanguageType eCurLanguage;
- SvUShorts aCurCurrencyList;
-@@ -290,8 +290,8 @@
- SVX_DLLPRIVATE short FillEListWithUserCurrencys( SvStrings& rList,short nSelPos);
-
- SVX_DLLPRIVATE short FillEListWithUsD_Impl( SvStrings& rList, sal_uInt16 nPrivCat, short Pos );
-- SVX_DLLPRIVATE BOOL IsRemoved_Impl( ULONG nKey );
-- SVX_DLLPRIVATE BOOL IsAdded_Impl( ULONG nKey );
-+ SVX_DLLPRIVATE BOOL IsRemoved_Impl( sal_uInt32 nKey );
-+ SVX_DLLPRIVATE BOOL IsAdded_Impl( sal_uInt32 nKey );
- SVX_DLLPRIVATE void GetPreviewString_Impl( String& rString,
- Color*& rpColor );
- SVX_DLLPRIVATE void PosToCategory_Impl( USHORT nPos, short& rCategory );
---- svx/inc/numinf.hxx 21 Jan 2005 15:00:01 -0000 1.4
-+++ svx/inc/numinf.hxx 10 Mar 2005 00:14:22 -0000 1.3.858.2
-@@ -118,12 +118,12 @@ public:
- double GetValueDouble() const { return nDoubleVal; }
- void SetDoubleValue( const double& rNewVal );
-
-- const ULONG* GetDelArray() const { return pDelFormatArr; }
-- void SetDelFormatArray( const ULONG* pData,
-- const ULONG nCount );
-+ const sal_uInt32* GetDelArray() const { return pDelFormatArr; }
-+ void SetDelFormatArray( const sal_uInt32* pData,
-+ const sal_uInt32 nCount );
-
- SvxNumberValueType GetValueType() const { return eValueType; }
-- ULONG GetDelCount() const { return nDelCount; }
-+ sal_uInt32 GetDelCount() const { return nDelCount; }
-
- private:
- SvNumberFormatter* pFormatter;
-@@ -131,8 +131,8 @@ private:
- String aStringVal;
- double nDoubleVal;
-
-- ULONG* pDelFormatArr;
-- ULONG nDelCount;
-+ sal_uInt32* pDelFormatArr;
-+ sal_uInt32 nDelCount;
- };
-
- #endif
---- svx/source/dialog/numfmt.cxx 10 Mar 2005 00:42:04 -0000 1.19.226.2
-+++ svx/source/dialog/numfmt.cxx 10 Mar 2005 00:42:04 -0000 1.19.226.2
-@@ -857,7 +857,7 @@
- // OK chosen - Is format code input entered already taken over?
- // If not, simulate Add. Upon syntax error ignore input and prevent Put.
- String aFormat = aEdFormat.GetText();
-- ULONG nCurKey = pNumFmtShell->GetCurNumFmtKey();
-+ sal_uInt32 nCurKey = pNumFmtShell->GetCurNumFmtKey();
-
- if ( aIbAdd.IsEnabled() || pNumFmtShell->IsTmpCurrencyFormat(aFormat) )
- { // #79599# It is not sufficient to just add the format code (or
-@@ -892,11 +892,11 @@
- // --------------------------------------------------------------
- // List of changed user defined formats:
- // -------------------------------------
-- const ULONG nDelCount = pNumFmtShell->GetUpdateDataCount();
-+ const sal_uInt32 nDelCount = pNumFmtShell->GetUpdateDataCount();
-
- if ( nDelCount > 0 )
- {
-- ULONG* pDelArr = new ULONG[nDelCount];
-+ sal_uInt32* pDelArr = new sal_uInt32[nDelCount];
-
- pNumFmtShell->GetUpdateData( pDelArr, nDelCount );
- pNumItem->SetDelFormatArray( pDelArr, nDelCount );
-@@ -1137,7 +1137,7 @@
- }
- else if ( aLbFormat.GetEntryCount() > 0 )
- {
-- ULONG nCurEntryKey=NUMKEY_UNDEFINED;
-+ sal_uInt32 nCurEntryKey=NUMKEY_UNDEFINED;
- if(!pNumFmtShell->FindEntry( aEdFormat.GetText(),&nCurEntryKey))
- {
- aLbFormat.SetNoSelection();
-@@ -1514,7 +1514,7 @@
- SvxDelStrgs a2EntryList;
- USHORT nCatLbSelPos = 0;
- short nFmtLbSelPos = SELPOS_NONE;
-- ULONG nErrPos=0;
-+ sal_uInt32 nErrPos=0;
-
- pNumFmtShell->SetCurCurrencyEntry(NULL);
- bAdded = pNumFmtShell->AddFormat( aFormat, nErrPos,
-@@ -1669,7 +1669,7 @@
-
- IMPL_LINK( SvxNumberFormatTabPage, EditHdl_Impl, Edit*, pEdFormat )
- {
-- ULONG nCurKey = NUMKEY_UNDEFINED;
-+ sal_uInt32 nCurKey = NUMKEY_UNDEFINED;
-
- if ( aEdFormat.GetText().Len() == 0 )
- {
---- svx/source/items/flditem.cxx 11 Jan 2005 13:01:25 -0000 1.17
-+++ svx/source/items/flditem.cxx 21 Jan 2005 16:13:23 -0000 1.17.26.1
-@@ -802,7 +802,7 @@ String SvxExtTimeField::GetFormatted( Ti
- break;
- }
-
-- ULONG nFormatKey;
-+ sal_uInt32 nFormatKey;
-
- switch( eFormat )
- {
diff --git a/patches/64bit/numberformat-sw.diff b/patches/64bit/numberformat-sw.diff
deleted file mode 100644
index 6933d559d..000000000
--- a/patches/64bit/numberformat-sw.diff
+++ /dev/null
@@ -1,748 +0,0 @@
---- sw/source/filter/w4w/w4wpar1.cxx 16 Feb 2005 17:47:34 -0000 1.27
-+++ sw/source/filter/w4w/w4wpar1.cxx 10 Mar 2005 01:59:38 -0000 1.26.8.2
-@@ -1951,7 +1951,7 @@ void SwW4WParser::Read_DateTime() // (
- // tell the Formatter about the new entry
- UINT16 nCheckPos = 0;
- INT16 nType = NUMBERFORMAT_DEFINED;
-- ULONG nKey;
-+ sal_uInt32 nKey;
-
- pFormatter->PutandConvertEntry( *pFirst, nCheckPos, nType, nKey,
- LANGUAGE_GERMAN,
---- sw/source/filter/ww8/writerwordglue.cxx 16 Nov 2004 12:53:22 -0000 1.13
-+++ sw/source/filter/ww8/writerwordglue.cxx 2 Mar 2005 15:55:09 -0000 1.13.106.1
-@@ -931,8 +931,8 @@ namespace sw
- {
- // tell the Formatter about the new entry
- UINT16 nCheckPos = 0;
-- INT16 nType = NUMBERFORMAT_DEFINED;
-- ULONG nKey = 0;
-+ short nType = NUMBERFORMAT_DEFINED;
-+ sal_uInt32 nKey = 0;
-
- SwapQuotesInField(rParams);
-
---- sw/inc/fldbas.hxx 21 Jan 2005 16:54:49 -0000 1.10.76.1
-+++ sw/inc/fldbas.hxx 21 Jan 2005 16:54:49 -0000 1.10.76.1
-@@ -295,11 +295,11 @@
- Beschreibung: Allgemeine Tools
- --------------------------------------------------------------------*/
-
--String GetResult(double nVal, ULONG nNumFmt, USHORT nLang = LANGUAGE_SYSTEM);
-+String GetResult(double nVal, sal_uInt32 nNumFmt, USHORT nLang = LANGUAGE_SYSTEM);
- void SetErrorStr(const String& rStr);
- //String ExpandDate(const Date& rDate, ULONG nFmt, USHORT nLang);
- //String ExpandTime(const Time& rTime, ULONG nFmt, USHORT nLang);
--String FormatNumber(USHORT nNum, ULONG nFormat);
-+String FormatNumber(USHORT nNum, sal_uInt32 nFormat);
-
- /*--------------------------------------------------------------------
- Beschreibung: Instanzen von SwFields und Abgeleiteten kommen 0-n mal vor.
-@@ -360,14 +360,14 @@
- {
- USHORT nLang; // Immer ueber SetLanguage aendern!
- BOOL bIsAutomaticLanguage;
-- ULONG nFormat;
-+ sal_uInt32 nFormat;
-
- SwFieldType* pType;
-
- protected:
-- void SetFormat(ULONG nSet) {nFormat = nSet;}
-+ void SetFormat(sal_uInt32 nSet) {nFormat = nSet;}
-
-- SwField(SwFieldType* pTyp, ULONG nFmt = 0, USHORT nLang = LANGUAGE_SYSTEM);
-+ SwField(SwFieldType* pTyp, sal_uInt32 nFmt = 0, USHORT nLang = LANGUAGE_SYSTEM);
-
- public:
- virtual ~SwField();
-@@ -403,13 +403,13 @@
- virtual void SetLanguage(USHORT nLng);
-
- // Parameter fuer Dialog und BASIC erfragen
-- inline ULONG GetFormat() const;
-+ inline sal_uInt32 GetFormat() const;
- virtual const String& GetPar1() const;
- virtual String GetPar2() const;
-
- virtual String GetFormula() const;
-
-- virtual void ChangeFormat(ULONG n);
-+ virtual void ChangeFormat(sal_uInt32 n);
- virtual void SetPar1(const String& rStr);
- virtual void SetPar2(const String& rStr);
-
-@@ -429,7 +429,7 @@
- inline SwFieldType* SwField::GetTyp() const
- { return pType; }
-
--inline ULONG SwField::GetFormat() const
-+inline sal_uInt32 SwField::GetFormat() const
- { return nFormat; }
-
- inline USHORT SwField::GetLanguage() const
-@@ -456,9 +456,9 @@
- inline BOOL UseFormat() const { return bUseFormat; }
- inline void EnableFormat(BOOL bFormat = TRUE) { bUseFormat = bFormat; }
-
-- String ExpandValue(const double& rVal, ULONG nFmt, USHORT nLng=0) const;
-+ String ExpandValue(const double& rVal, sal_uInt32 nFmt, USHORT nLng=0) const;
- void DoubleToString(String &rValue, const double &rVal, LanguageType eLng) const;
-- void DoubleToString(String &rValue, const double &rVal, ULONG nFmt) const;
-+ void DoubleToString(String &rValue, const double &rVal, sal_uInt32 nFmt) const;
- };
-
- class SW_DLLPUBLIC SwValueField : public SwField
-@@ -467,7 +467,7 @@
- // String sExpand;
-
- protected:
-- SwValueField( SwValueFieldType* pFldType, ULONG nFmt = 0, USHORT nLang = LANGUAGE_SYSTEM, const double fVal = 0.0 );
-+ SwValueField( SwValueFieldType* pFldType, sal_uInt32 nFmt = 0, USHORT nLang = LANGUAGE_SYSTEM, const double fVal = 0.0 );
- SwValueField( const SwValueField& rFld );
-
- public:
-@@ -483,10 +483,10 @@
- virtual double GetValue() const;
- virtual void SetValue( const double& rVal );
-
-- inline String ExpandValue(const double& rVal, ULONG nFmt, USHORT nLng=0) const
-+ inline String ExpandValue(const double& rVal, sal_uInt32 nFmt, USHORT nLng=0) const
- { return ((SwValueFieldType*)GetTyp())->ExpandValue(rVal, nFmt, nLng); }
-
-- static ULONG GetSystemFormat(SvNumberFormatter* pFormatter, ULONG nFmt);
-+ static sal_uInt32 GetSystemFormat(SvNumberFormatter* pFormatter, sal_uInt32 nFmt);
- };
-
- class SwFormulaField : public SwValueField
-@@ -494,7 +494,7 @@
- String sFormula;
-
- protected:
-- SwFormulaField( SwValueFieldType* pFldType, ULONG nFmt = 0, const double fVal = 0.0 );
-+ SwFormulaField( SwValueFieldType* pFldType, sal_uInt32 nFmt = 0, const double fVal = 0.0 );
- SwFormulaField( const SwFormulaField& rFld );
-
- public:
---- sw/source/core/doc/swtable.cxx 21 Jan 2005 16:57:20 -0000 1.15.104.1
-+++ sw/source/core/doc/swtable.cxx 21 Jan 2005 16:57:20 -0000 1.15.104.1
-@@ -2011,7 +2011,7 @@ void SwTableBoxFmt::Modify( SfxPoolItem*
- ULONG nNdPos = pBox->IsValidNumTxtNd( TRUE );
- if( ULONG_MAX != nNdPos )
- {
-- ULONG nTmpFmtIdx = nNewFmt;
-+ sal_uInt32 nTmpFmtIdx = nNewFmt;
- String aTxt( GetDoc()->GetNodes()[ nNdPos ]
- ->GetTxtNode()->GetRedlineTxt());
- if( !aTxt.Len() )
-@@ -2027,7 +2027,7 @@
- if( NUMBERFORMAT_PERCENT ==
- pNumFmtr->GetType( nNewFmt ))
- {
-- ULONG nTmpFmt = 0;
-+ sal_uInt32 nTmpFmt = 0;
- if( pNumFmtr->IsNumberFormat(
- aTxt, nTmpFmt, fVal ))
- {
-@@ -2097,7 +2097,7 @@
- SwFrmFmt::Modify( pOld, pNew );
- }
-
--BOOL SwTableBox::HasNumCntnt( double& rNum, ULONG& rFmtIndex,
-+BOOL SwTableBox::HasNumCntnt( double& rNum, sal_uInt32& rFmtIndex,
- BOOL& rIsEmptyTxtNd ) const
- {
- BOOL bRet = FALSE;
-@@ -2120,7 +2120,7 @@
- if( !rIsEmptyTxtNd &&
- NUMBERFORMAT_PERCENT == pNumFmtr->GetType( rFmtIndex ))
- {
-- ULONG nTmpFmt = 0;
-+ sal_uInt32 nTmpFmt = 0;
- if( pNumFmtr->IsNumberFormat( aTxt, nTmpFmt, rNum ) &&
- NUMBERFORMAT_NUMBER == pNumFmtr->GetType( nTmpFmt ))
- aTxt += '%';
---- sw/source/core/fields/cellfml.cxx 5 Jan 2005 15:59:52 -0000 1.6
-+++ sw/source/core/fields/cellfml.cxx 21 Jan 2005 16:57:50 -0000 1.6.34.1
-@@ -287,7 +287,7 @@ double SwTableBox::GetValue( SwTblCalcPa
-
- double aNum;
- String sTxt( rTxt.Copy( nSttPos ) );
-- ULONG nFmtIndex = GetFrmFmt()->GetTblBoxNumFmt().GetValue();
-+ sal_uInt32 nFmtIndex = GetFrmFmt()->GetTblBoxNumFmt().GetValue();
-
- SvNumberFormatter* pNumFmtr = pDoc->GetNumberFormatter();
-
-@@ -297,7 +297,7 @@ double SwTableBox::GetValue( SwTblCalcPa
- else if( sTxt.Len() &&
- NUMBERFORMAT_PERCENT == pNumFmtr->GetType( nFmtIndex ))
- {
-- ULONG nTmpFmt = 0;
-+ sal_uInt32 nTmpFmt = 0;
- if( pNumFmtr->IsNumberFormat( sTxt, nTmpFmt, aNum ) &&
- NUMBERFORMAT_NUMBER == pNumFmtr->GetType( nTmpFmt ))
- sTxt += '%';
---- sw/source/core/fields/fldbas.cxx 21 Jan 2005 16:58:05 -0000 1.17.76.1
-+++ sw/source/core/fields/fldbas.cxx 21 Jan 2005 16:58:05 -0000 1.17.76.1
-@@ -273,7 +273,7 @@
- Felder sind n-mal vorhanden, Feldtypen nur einmal
- --------------------------------------------------------------------*/
-
--SwField::SwField(SwFieldType* pTyp, ULONG nFmt, USHORT nLng) :
-+SwField::SwField(SwFieldType* pTyp, sal_uInt32 nFmt, USHORT nLng) :
- nFormat(nFmt),
- nLang(nLng),
- bIsAutomaticLanguage(TRUE)
-@@ -484,7 +484,7 @@
- nLang = nLng;
- }
-
--void SwField::ChangeFormat(ULONG n)
-+void SwField::ChangeFormat(sal_uInt32 n)
- {
- nFormat = n;
- }
-@@ -523,7 +523,7 @@
- Beschreibung: Numerierung expandieren
- --------------------------------------------------------------------*/
-
--String FormatNumber(USHORT nNum, ULONG nFormat)
-+String FormatNumber(USHORT nNum, sal_uInt32 nFormat)
- {
- if(SVX_NUM_PAGEDESC == nFormat)
- return String::CreateFromInt32( nNum );
-@@ -558,7 +558,7 @@
- --------------------------------------------------------------------*/
-
- String SwValueFieldType::ExpandValue( const double& rVal,
-- ULONG nFmt, USHORT nLng) const
-+ sal_uInt32 nFmt, USHORT nLng) const
- {
- if (rVal >= DBL_MAX) // FehlerString fuer Calculator
- return ViewShell::GetShellRes()->aCalc_Error;
-@@ -579,7 +579,7 @@
-
- if (pEntry && nLng != pEntry->GetLanguage())
- {
-- ULONG nNewFormat = pFormatter->GetFormatForLanguageIfBuiltIn(nFmt,
-+ sal_uInt32 nNewFormat = pFormatter->GetFormatForLanguageIfBuiltIn(nFmt,
- (LanguageType)nFmtLng);
-
- if (nNewFormat == nFmt)
-@@ -613,7 +613,7 @@
- --------------------------------------------------------------------*/
-
- void SwValueFieldType::DoubleToString( String &rValue, const double &rVal,
-- ULONG nFmt) const
-+ sal_uInt32 nFmt) const
- {
- SvNumberFormatter* pFormatter = pDoc->GetNumberFormatter();
- const SvNumberformat* pEntry = pFormatter->GetEntry(nFmt);
-@@ -644,7 +644,7 @@
- Beschreibung: CTOR SwValueField
- --------------------------------------------------------------------*/
-
--SwValueField::SwValueField( SwValueFieldType* pFldType, ULONG nFmt,
-+SwValueField::SwValueField( SwValueFieldType* pFldType, sal_uInt32 nFmt,
- USHORT nLang, const double fVal )
- : SwField(pFldType, nFmt, nLang),
- fValue(fVal)
-@@ -697,14 +697,14 @@
- Beschreibung: Format in Office-Sprache ermitteln
- --------------------------------------------------------------------*/
-
--ULONG SwValueField::GetSystemFormat(SvNumberFormatter* pFormatter, ULONG nFmt)
-+sal_uInt32 SwValueField::GetSystemFormat(SvNumberFormatter* pFormatter, sal_uInt32 nFmt)
- {
- const SvNumberformat* pEntry = pFormatter->GetEntry(nFmt);
- USHORT nLng = SvxLocaleToLanguage( GetAppLocaleData().getLocale() );
-
- if (pEntry && nLng != pEntry->GetLanguage())
- {
-- ULONG nNewFormat = pFormatter->GetFormatForLanguageIfBuiltIn(nFmt,
-+ sal_uInt32 nNewFormat = pFormatter->GetFormatForLanguageIfBuiltIn(nFmt,
- (LanguageType)nLng);
-
- if (nNewFormat == nFmt)
-@@ -715,7 +715,7 @@
-
- String sFmt(pEntry->GetFormatstring());
-
-- ULONG nFormat = nFmt;
-+ sal_uInt32 nFormat = nFmt;
- pFormatter->PutandConvertEntry(sFmt, nDummy, nType,
- nFormat, pEntry->GetLanguage(), nLng);
- nFmt = nFormat;
-@@ -735,7 +735,7 @@
- {
- if( IsAutomaticLanguage() &&
- ((SwValueFieldType *)GetTyp())->UseFormat() &&
-- GetFormat() != ULONG_MAX )
-+ GetFormat() != SAL_MAX_UINT32 )
- {
- // wegen Bug #60010
- SvNumberFormatter* pFormatter = GetDoc()->GetNumberFormatter();
-@@ -750,7 +750,7 @@
-
- if( pEntry && nFmtLng != pEntry->GetLanguage() )
- {
-- ULONG nNewFormat = pFormatter->GetFormatForLanguageIfBuiltIn(
-+ sal_uInt32 nNewFormat = pFormatter->GetFormatForLanguageIfBuiltIn(
- GetFormat(), (LanguageType)nFmtLng );
-
- if( nNewFormat == GetFormat() )
-@@ -791,7 +791,7 @@
- Beschreibung: SwFormulaField
- --------------------------------------------------------------------*/
-
--SwFormulaField::SwFormulaField( SwValueFieldType* pFldType, ULONG nFmt, const double fVal)
-+SwFormulaField::SwFormulaField( SwValueFieldType* pFldType, sal_uInt32 nFmt, const double fVal)
- : SwValueField(pFldType, nFmt, LANGUAGE_SYSTEM, fVal)
- {
- }
-@@ -821,7 +821,7 @@
-
- ULONG nFmt(GetFormat());
-
-- if( nFmt && ULONG_MAX != nFmt )
-+ if( nFmt && SAL_MAX_UINT32 != nFmt )
- {
- xub_StrLen nPos = 0;
- double fValue;
-@@ -836,9 +836,9 @@
-
- void SwFormulaField::SetExpandedFormula( const String& rStr )
- {
-- ULONG nFmt(GetFormat());
-+ sal_uInt32 nFmt(GetFormat());
-
-- if (nFmt && nFmt != ULONG_MAX && ((SwValueFieldType *)GetTyp())->UseFormat())
-+ if (nFmt && nFmt != SAL_MAX_UINT32 && ((SwValueFieldType *)GetTyp())->UseFormat())
- {
- double fValue;
-
-@@ -862,9 +862,9 @@
-
- String SwFormulaField::GetExpandedFormula() const
- {
-- ULONG nFmt(GetFormat());
-+ sal_uInt32 nFmt(GetFormat());
-
-- if (nFmt && nFmt != ULONG_MAX && ((SwValueFieldType *)GetTyp())->UseFormat())
-+ if (nFmt && nFmt != SAL_MAX_UINT32 && ((SwValueFieldType *)GetTyp())->UseFormat())
- {
- String sFormattedValue;
- Color* pCol = 0;
---- sw/source/filter/html/htmlfld.cxx 21 Jan 2005 17:00:10 -0000 1.7.262.1
-+++ sw/source/filter/html/htmlfld.cxx 21 Jan 2005 17:00:10 -0000 1.7.262.1
-@@ -429,7 +429,7 @@
- USHORT nSub = 0;
-
- SvNumberFormatter *pFormatter = pDoc->GetNumberFormatter();
-- ULONG nNumFmt;
-+ sal_uInt32 nNumFmt;
- LanguageType eLang;
- double dValue = GetTableDataOptionsValNum(
- nNumFmt, eLang, aNumValue, aNumFmt,
-@@ -500,7 +500,7 @@
- nSub |= nExtSub;
- }
-
-- ULONG nNumFmt = 0;
-+ sal_uInt32 nNumFmt = 0;
- double dValue = 0;
- if( bHasNumFmt && (DI_SUB_DATE==nExtSub || DI_SUB_TIME==nExtSub) )
- {
---- sw/source/ui/shells/tabsh.cxx 9 Nov 2004 16:24:06 -0000 1.33
-+++ sw/source/ui/shells/tabsh.cxx 21 Jan 2005 17:06:12 -0000 1.33.124.1
-@@ -1662,7 +1662,7 @@ void SwTableShell::ExecNumberFormat(SfxR
- // Sprache immer von Cursorposition besorgen
- LanguageType eLang = rSh.GetCurLang();
- SvNumberFormatter* pFormatter = rSh.GetNumberFormatter();
-- ULONG nNumberFormat = NUMBERFORMAT_ENTRY_NOT_FOUND;
-+ sal_uInt32 nNumberFormat = NUMBERFORMAT_ENTRY_NOT_FOUND;
- USHORT nFmtType = 0, nOffset = 0;
-
- switch ( nSlot )
---- sw/inc/chpfld.hxx 9 Dec 2003 11:36:02 -0000 1.3
-+++ sw/inc/chpfld.hxx 21 Jan 2005 16:55:08 -0000 1.3.256.1
-@@ -105,7 +105,7 @@ class SwChapterField : public SwField
- BYTE nLevel;
- String sTitle, sNumber, sPre, sPost;
- public:
-- SwChapterField(SwChapterFieldType*, ULONG nFmt = 0);
-+ SwChapterField(SwChapterFieldType*, sal_uInt32 nFmt = 0);
-
- void ChangeExpansion(const SwFrm*, const SwTxtNode*,
- BOOL bSrchNum = FALSE);
---- sw/inc/docsh.hxx 11 Jan 2005 12:16:49 -0000 1.29
-+++ sw/inc/docsh.hxx 21 Jan 2005 16:54:07 -0000 1.29.8.1
-@@ -263,7 +263,7 @@ public:
- const ::com::sun::star::uno::Any & rValue );
- virtual ::sfx2::SvLinkSource* DdeCreateLinkSource( const String& rItem );
- virtual void FillClass( SvGlobalName * pClassName,
-- ULONG * pClipFormat,
-+ sal_uInt32 * pClipFormat,
- String * pAppName,
- String * pLongUserName,
- String * pUserName,
---- sw/inc/docufld.hxx 8 Sep 2004 14:49:42 -0000 1.7
-+++ sw/inc/docufld.hxx 21 Jan 2005 16:54:24 -0000 1.7.76.1
-@@ -186,7 +186,7 @@ class SwPageNumberFieldType : public SwF
- public:
- SwPageNumberFieldType();
-
-- String& Expand( ULONG nFmt, short nOff, const String&, String& rRet ) const;
-+ String& Expand( sal_uInt32 nFmt, short nOff, const String&, String& rRet ) const;
- void ChangeExpansion( SwDoc* pDoc, USHORT nNum, USHORT nMax,
- BOOL bVirtPageNum, const sal_Int16* pNumFmt = 0 );
- inline sal_Int16 GetNumFormat() const { return nNumberingType; }
-@@ -205,7 +205,7 @@ class SwPageNumberField : public SwField
-
- public:
- SwPageNumberField(SwPageNumberFieldType*, USHORT nSub = PG_RANDOM,
-- ULONG nFmt = 0, short nOff = 0);
-+ sal_uInt32 nFmt = 0, short nOff = 0);
-
- virtual String Expand() const;
- virtual SwField* Copy() const;
-@@ -244,7 +244,7 @@ class SwAuthorField : public SwField
- String aContent;
-
- public:
-- SwAuthorField(SwAuthorFieldType*, ULONG nFmt = 0);
-+ SwAuthorField(SwAuthorFieldType*, sal_uInt32 nFmt = 0);
-
- virtual String Expand() const;
- virtual SwField* Copy() const;
-@@ -279,7 +279,7 @@ class SwFileNameField : public SwField
- String aContent;
-
- public:
-- SwFileNameField(SwFileNameFieldType*, ULONG nFmt = 0);
-+ SwFileNameField(SwFileNameFieldType*, sal_uInt32 nFmt = 0);
-
- virtual String Expand() const;
- virtual SwField* Copy() const;
-@@ -312,7 +312,7 @@ public:
- class SwTemplNameField : public SwField
- {
- public:
-- SwTemplNameField(SwTemplNameFieldType*, ULONG nFmt = 0);
-+ SwTemplNameField(SwTemplNameFieldType*, sal_uInt32 nFmt = 0);
-
- virtual String Expand() const;
- virtual SwField* Copy() const;
-@@ -332,7 +332,7 @@ class SwDocStatFieldType : public SwFiel
-
- public:
- SwDocStatFieldType(SwDoc*);
-- String Expand(USHORT nSubType, ULONG nFmt) const;
-+ String Expand(USHORT nSubType, sal_uInt32 nFmt) const;
- virtual SwFieldType* Copy() const;
-
- inline sal_Int16 GetNumFormat() const { return nNumberingType; }
-@@ -349,7 +349,7 @@ class SwDocStatField : public SwField
-
- public:
- SwDocStatField( SwDocStatFieldType*,
-- USHORT nSubType = 0, ULONG nFmt = 0);
-+ USHORT nSubType = 0, sal_uInt32 nFmt = 0);
-
- void ChangeExpansion( const SwFrm* pFrm );
-
-@@ -585,7 +585,7 @@ class SwDocInfoFieldType : public SwValu
- public:
- SwDocInfoFieldType(SwDoc* pDc);
-
-- String Expand(USHORT nSubType, ULONG nFormat, USHORT nLang) const;
-+ String Expand(USHORT nSubType, sal_uInt32 nFormat, USHORT nLang) const;
- virtual SwFieldType* Copy() const;
- };
-
-@@ -595,7 +595,7 @@ class SwDocInfoField : public SwValueFie
- String aContent;
-
- public:
-- SwDocInfoField(SwDocInfoFieldType*, USHORT nSub, ULONG nFmt=0);
-+ SwDocInfoField(SwDocInfoFieldType*, USHORT nSub, sal_uInt32 nFmt=0);
-
- virtual void SetSubType(USHORT);
- virtual USHORT GetSubType() const;
-@@ -623,7 +623,7 @@ public:
- inline const String& GetData() const { return aData; }
- inline void SetData(const String& rStr) { aData = rStr; }
-
-- String Expand(USHORT nSubType, ULONG nFormat) const;
-+ String Expand(USHORT nSubType, sal_uInt32 nFormat) const;
- virtual SwFieldType* Copy() const;
- };
-
-@@ -633,7 +633,7 @@ class SwExtUserField : public SwField
- USHORT nType;
-
- public:
-- SwExtUserField(SwExtUserFieldType*, USHORT nSub, ULONG nFmt=0);
-+ SwExtUserField(SwExtUserFieldType*, USHORT nSub, sal_uInt32 nFmt=0);
-
- virtual String Expand() const;
- virtual SwField* Copy() const;
-@@ -723,7 +723,7 @@ class SwRefPageGetField : public SwField
- {
- String sTxt;
- public:
-- SwRefPageGetField( SwRefPageGetFieldType*, ULONG nFmt );
-+ SwRefPageGetField( SwRefPageGetFieldType*, sal_uInt32 nFmt );
-
- virtual String Expand() const;
- virtual SwField* Copy() const;
-@@ -759,7 +759,7 @@ class SwJumpEditField : public SwField
- {
- String sTxt, sHelp;
- public:
-- SwJumpEditField( SwJumpEditFieldType*, ULONG nFormat,
-+ SwJumpEditField( SwJumpEditFieldType*, sal_uInt32 nFormat,
- const String& sText, const String& sHelp );
-
- virtual String Expand() const;
---- sw/inc/globdoc.hxx 4 Oct 2004 18:58:36 -0000 1.5
-+++ sw/inc/globdoc.hxx 21 Jan 2005 16:55:02 -0000 1.5.66.1
-@@ -77,7 +77,7 @@ public:
- ~SwGlobalDocShell();
-
- virtual void FillClass( SvGlobalName * pClassName,
-- ULONG * pClipFormat,
-+ sal_uInt32 * pClipFormat,
- String * pAppName,
- String * pLongUserName,
- String * pUserName,
---- sw/inc/swtable.hxx 23 Aug 2004 08:39:39 -0000 1.8
-+++ sw/inc/swtable.hxx 21 Jan 2005 16:55:15 -0000 1.8.92.1
-@@ -385,7 +385,7 @@ public:
- BOOL IsInHeadline( const SwTable* pTbl = 0 ) const;
-
- // enthaelt die Box Inhalt, der als Nummer formatiert werden kann?
-- BOOL HasNumCntnt( double& rNum, ULONG& rFmtIndex,
-+ BOOL HasNumCntnt( double& rNum, sal_uInt32& rFmtIndex,
- BOOL& rIsEmptyTxtNd ) const;
- ULONG IsValidNumTxtNd( BOOL bCheckAttr = TRUE ) const;
- // teste ob der BoxInhalt mit der Nummer uebereinstimmt, wenn eine
---- sw/inc/usrfld.hxx 23 Aug 2004 08:42:14 -0000 1.3
-+++ sw/inc/usrfld.hxx 21 Jan 2005 16:55:28 -0000 1.3.92.1
-@@ -92,10 +92,10 @@ public:
- virtual const String& GetName() const;
- virtual SwFieldType* Copy() const;
-
-- String Expand(ULONG nFmt, USHORT nSubType, USHORT nLng);
-+ String Expand(sal_uInt32 nFmt, USHORT nSubType, USHORT nLng);
-
-- String GetContent( ULONG nFmt = 0 );
-- void SetContent( const String& rStr, ULONG nFmt = 0 );
-+ String GetContent( sal_uInt32 nFmt = 0 );
-+ void SetContent( const String& rStr, sal_uInt32 nFmt = 0 );
- void CtrlSetContent( const String& rStr );
-
- inline BOOL IsValid() const;
-@@ -147,7 +147,7 @@ class SwUserField : public SwValueField
- USHORT nSubType;
-
- public:
-- SwUserField(SwUserFieldType*, USHORT nSub = 0, ULONG nFmt = 0);
-+ SwUserField(SwUserFieldType*, USHORT nSub = 0, sal_uInt32 nFmt = 0);
-
- virtual USHORT GetSubType() const;
- virtual void SetSubType(USHORT nSub);
---- sw/inc/wdocsh.hxx 4 Oct 2004 19:01:20 -0000 1.6
-+++ sw/inc/wdocsh.hxx 21 Jan 2005 16:55:59 -0000 1.6.66.1
-@@ -85,7 +85,7 @@ public:
- ~SwWebDocShell();
-
- virtual void FillClass( SvGlobalName * pClassName,
-- ULONG * pClipFormat,
-+ sal_uInt32 * pClipFormat,
- String * pAppName,
- String * pLongUserName,
- String * pUserName,
---- sw/source/core/doc/tblafmt.cxx 11 Jan 2005 12:18:41 -0000 1.14
-+++ sw/source/core/doc/tblafmt.cxx 21 Jan 2005 16:57:27 -0000 1.14.8.1
-@@ -759,7 +759,7 @@ void SwTableAutoFmt::UpdateToSet( BYTE n
- short nType;
- BOOL bNew;
- xub_StrLen nCheckPos;
-- ULONG nKey = pNFmtr->GetIndexPuttingAndConverting( sFmt, eLng,
-+ sal_uInt32 nKey = pNFmtr->GetIndexPuttingAndConverting( sFmt, eLng,
- eSys, nType, bNew, nCheckPos);
- rSet.Put( SwTblBoxNumFormat( nKey ));
- }
---- sw/source/core/docnode/ndtbl.cxx 21 Jan 2005 10:30:20 -0000 1.26
-+++ sw/source/core/docnode/ndtbl.cxx 10 Mar 2005 01:52:59 -0000 1.25.98.2
-@@ -3699,7 +3699,7 @@ void SwDoc::ChkBoxNumFmt( SwTableBox& rB
- SwUndoTblNumFmt* pUndo = 0;
-
- BOOL bIsEmptyTxtNd, bChgd = TRUE;
-- ULONG nFmtIdx;
-+ sal_uInt32 nFmtIdx;
- double fNumber;
- if( rBox.HasNumCntnt( fNumber, nFmtIdx, bIsEmptyTxtNd ) )
- {
---- sw/source/core/edit/edtab.cxx 22 Oct 2004 08:12:34 -0000 1.11
-+++ sw/source/core/edit/edtab.cxx 21 Jan 2005 16:57:42 -0000 1.11.180.1
-@@ -440,7 +440,7 @@ BOOL SwEditShell::IsTableBoxTextFormat()
- if( !pBox )
- return FALSE;
-
-- ULONG nFmt;
-+ sal_uInt32 nFmt;
- const SfxPoolItem* pItem;
- if( SFX_ITEM_SET == pBox->GetFrmFmt()->GetAttrSet().GetItemState(
- RES_BOXATR_FORMAT, TRUE, &pItem ))
---- sw/source/core/fields/dbfld.cxx 2 Aug 2004 14:19:12 -0000 1.18
-+++ sw/source/core/fields/dbfld.cxx 21 Jan 2005 16:57:56 -0000 1.18.126.1
-@@ -434,7 +434,7 @@ void SwDBField::Evaluate()
- if(!pMgr || !pMgr->IsDataSourceOpen(aTmpData.sDataSource, aTmpData.sCommand, sal_True))
- return ;
-
-- ULONG nFmt;
-+ sal_uInt32 nFmt;
-
- // Passenden Spaltennamen suchen
- String aColNm( ((SwDBFieldType*)GetTyp())->GetColumnName() );
---- sw/source/core/fields/usrfld.cxx 17 Apr 2003 14:07:33 -0000 1.9
-+++ sw/source/core/fields/usrfld.cxx 21 Jan 2005 16:58:11 -0000 1.9.574.1
-@@ -321,7 +321,7 @@ double SwUserFieldType::GetValue( SwCalc
-
- String SwUserFieldType::GetContent( sal_uInt32 nFmt )
- {
-- if (nFmt && nFmt != ULONG_MAX)
-+ if (nFmt && nFmt != SAL_MAX_UINT32)
- {
- String sFormattedValue;
- Color* pCol = 0;
-@@ -341,7 +341,7 @@ void SwUserFieldType::SetContent( const
- {
- aContent = rStr;
-
-- if (nFmt && nFmt != ULONG_MAX)
-+ if (nFmt && nFmt != SAL_MAX_UINT32)
- {
- double fValue;
-
---- sw/source/filter/excel/exctools.cxx 12 Aug 2004 12:46:36 -0000 1.6
-+++ sw/source/filter/excel/exctools.cxx 21 Jan 2005 16:59:15 -0000 1.6.96.1
-@@ -857,7 +857,7 @@ void XF_Buffer::SetItemSets(UINT16 nCol,
- }
-
- // --------------------------------------------- XF_Buffer::GetNumFormat -
--UINT32 XF_Buffer::GetNumFormat( UINT16 nIndex )
-+sal_uInt32 XF_Buffer::GetNumFormat( UINT16 nIndex )
- {
- // DBG_ASSERT( nIndex < nCount ,
- // "+XF_Buffer::GetNumFormat(): das ist zuviel des Guten!" );
---- sw/source/filter/excel/excxfbuf.hxx 12 Aug 2004 12:47:02 -0000 1.2
-+++ sw/source/filter/excel/excxfbuf.hxx 21 Jan 2005 16:59:28 -0000 1.2.96.1
-@@ -232,7 +232,7 @@ class XF_Buffer
- inline void GetItemSets( USHORT nIndex, const SfxItemSet *pTxtAttr,
- const SfxItemSet *pBoxAttr );
-
-- ULONG GetNumFormat( USHORT nIndex );
-+ sal_uInt32 GetNumFormat( USHORT nIndex );
- void SetItemSets( USHORT nCol, USHORT nSR, USHORT nER,
- USHORT nXF );
- };
---- sw/source/filter/ww8/ww8par.hxx 11 Jan 2005 13:26:42 -0000 1.135
-+++ sw/source/filter/ww8/ww8par.hxx 21 Jan 2005 17:03:22 -0000 1.128.64.4
-@@ -262,7 +262,7 @@ private:
- WW8LFOInfos* pLFOInfos;// D. aus PLF LFO, sortiert genau wie im WW8 Stream
- USHORT nUniqueList; // current number for creating unique list names
- BYTE* GrpprlHasSprm(USHORT nId, BYTE& rSprms, BYTE nLen);
-- WW8LSTInfo* GetLSTByListId( ULONG nIdLst ) const;
-+ WW8LSTInfo* GetLSTByListId( sal_uInt32 nIdLst ) const;
- //the rParaSprms returns back the original word paragraph indent
- //sprms which are attached to this numbering level
- bool ReadLVL(SwNumFmt& rNumFmt, SfxItemSet*& rpItemSet, USHORT nLevelStyle,
---- sw/source/filter/ww8/ww8par5.cxx 16 Feb 2005 17:47:49 -0000 1.87
-+++ sw/source/filter/ww8/ww8par5.cxx 10 Mar 2005 02:00:53 -0000 1.86.8.2
-@@ -1700,7 +1700,7 @@ eF_ResT SwWW8ImplReader::Read_F_DocInfo(
- break;
- }
-
-- ULONG nFormat = 0;
-+ sal_uInt32 nFormat = 0;
-
- USHORT nLang(0);
- if (bDateTime)
-@@ -1777,7 +1777,7 @@ eF_ResT SwWW8ImplReader::Read_F_DateTime
- }
- }
-
-- ULONG nFormat = 0;
-+ sal_uInt32 nFormat = 0;
-
- USHORT nLang(0);
- short nDT = GetTimeDatePara(rStr, nFormat, nLang, ww::eDATE, bHijri);
---- sw/source/ui/app/docsh2.cxx 22 Feb 2005 08:23:34 -0000 1.74
-+++ sw/source/ui/app/docsh2.cxx 10 Mar 2005 01:26:00 -0000 1.64.62.5
-@@ -1613,7 +1613,7 @@ long SwDocShell::DdeSetData( const Strin
- --------------------------------------------------------------------*/
-
- void SwDocShell::FillClass( SvGlobalName * pClassName,
-- ULONG * pClipFormat,
-+ sal_uInt32 * pClipFormat,
- String * pAppName,
- String * pLongUserName,
- String * pUserName,
---- sw/source/ui/globdoc/globdoc.cxx 4 Oct 2004 19:27:59 -0000 1.11
-+++ sw/source/ui/globdoc/globdoc.cxx 21 Jan 2005 17:05:46 -0000 1.11.66.1
-@@ -92,7 +92,7 @@ SwGlobalDocShell::~SwGlobalDocShell()
- }
-
- void SwGlobalDocShell::FillClass( SvGlobalName * pClassName,
-- ULONG * pClipFormat,
-+ sal_uInt32 * pClipFormat,
- String * pAppName,
- String * pLongUserName,
- String * pUserName,
---- sw/source/ui/inc/dbinsdlg.hxx 7 Jun 2001 16:20:19 -0000 1.8
-+++ sw/source/ui/inc/dbinsdlg.hxx 21 Jan 2005 17:05:55 -0000 1.8.768.1
-@@ -123,7 +123,7 @@ struct SwInsDBColumn
- {
- rtl::OUString sColumn, sUsrNumFmt;
- sal_Int32 nDBNumFmt;
-- ULONG nUsrNumFmt;
-+ sal_uInt32 nUsrNumFmt;
- LanguageType eUsrNumFmtLng;
- USHORT nCol;
- BOOL bHasFmt : 1;
---- sw/source/ui/table/tautofmt.cxx 23 Aug 2004 09:10:40 -0000 1.15
-+++ sw/source/ui/table/tautofmt.cxx 21 Jan 2005 17:06:27 -0000 1.15.92.1
-@@ -776,7 +776,7 @@ MAKENUMSTR:
- short nType;
- BOOL bNew;
- xub_StrLen nCheckPos;
-- ULONG nKey = pNumFmt->GetIndexPuttingAndConverting( sFmt, eLng,
-+ sal_uInt32 nKey = pNumFmt->GetIndexPuttingAndConverting( sFmt, eLng,
- eSys, nType, bNew, nCheckPos);
- Color* pDummy;
- pNumFmt->GetOutputString( nVal, nKey, cellString, &pDummy );
---- sw/source/ui/utlui/numfmtlb.cxx 12 Aug 2004 13:13:32 -0000 1.14
-+++ sw/source/ui/utlui/numfmtlb.cxx 21 Jan 2005 17:07:08 -0000 1.14.96.1
-@@ -519,7 +519,7 @@ IMPL_LINK( NumFormatListBox, SelectHdl,
-
- if( pItem && 0 != ((SvxNumberInfoItem*)pItem)->GetDelCount() )
- {
-- const ULONG* pDelArr = ((SvxNumberInfoItem*)pItem)->GetDelArray();
-+ const sal_uInt32* pDelArr = ((SvxNumberInfoItem*)pItem)->GetDelArray();
-
- for ( USHORT i = 0; i < ((SvxNumberInfoItem*)pItem)->GetDelCount(); i++ )
- pFormatter->DeleteEntry( pDelArr[i] );
---- sw/source/ui/web/wdocsh.cxx 4 Oct 2004 19:35:24 -0000 1.11
-+++ sw/source/ui/web/wdocsh.cxx 21 Jan 2005 17:07:18 -0000 1.11.66.1
-@@ -120,7 +120,7 @@ SwWebDocShell::~SwWebDocShell()
-
-
- void SwWebDocShell::FillClass( SvGlobalName * pClassName,
-- ULONG * pClipFormat,
-+ sal_uInt32 * pClipFormat,
- String * pAppName,
- String * pLongUserName,
- String * pUserName,
diff --git a/patches/64bit/numberformat-vcl.diff b/patches/64bit/numberformat-vcl.diff
deleted file mode 100644
index f2c7acda3..000000000
--- a/patches/64bit/numberformat-vcl.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- vcl/inc/imgcons.hxx 13 Jan 2005 17:36:46 -0000 1.3
-+++ vcl/inc/imgcons.hxx 10 Mar 2005 02:09:00 -0000 1.2.144.2
-@@ -94,8 +94,8 @@ private:
- Color* mpPal;
- Link maChgLink;
- Link maDoneLink;
-- ULONG mnFormat;
-- ULONG mnStatus;
-+ sal_uInt32 mnFormat;
-+ sal_uInt32 mnStatus;
- BOOL mbTrans;
-
- protected:
diff --git a/patches/64bit/numberformat-xmloff.diff b/patches/64bit/numberformat-xmloff.diff
deleted file mode 100644
index 8076450f3..000000000
--- a/patches/64bit/numberformat-xmloff.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- xmloff/source/style/xmlnumfe.cxx 9 Nov 2004 11:44:03 -0000 1.40
-+++ xmloff/source/style/xmlnumfe.cxx 21 Jan 2005 15:13:09 -0000 1.40.68.1
-@@ -1811,7 +1811,7 @@ const SvNumberformat* lcl_GetFormat( SvN
-
- sal_uInt32 SvXMLNumFmtExport::ForceSystemLanguage( sal_uInt32 nKey )
- {
-- sal_uInt32 nRet = nKey;
-+ ULONG nRet = nKey;
-
- const SvNumberformat* pFormat = lcl_GetFormat( pFormatter, nKey );
- if( pFormat != NULL )
diff --git a/patches/64bit/polygonpoints-psprint-vcl.diff b/patches/64bit/polygonpoints-psprint-vcl.diff
deleted file mode 100644
index 3759d8a65..000000000
--- a/patches/64bit/polygonpoints-psprint-vcl.diff
+++ /dev/null
@@ -1,104 +0,0 @@
-Index: psprint/inc/psprint/printergfx.hxx
-===================================================================
-RCS file: /cvs/gsl/psprint/inc/psprint/printergfx.hxx,v
-retrieving revision 1.14
-retrieving revision 1.13.42.2
-diff -u -p -u -p -r1.14 -r1.13.42.2
---- psprint/inc/psprint/printergfx.hxx 8 Sep 2004 14:00:04 -0000 1.14
-+++ psprint/inc/psprint/printergfx.hxx 18 Oct 2004 14:57:06 -0000 1.13.42.2
-@@ -397,7 +397,7 @@ public:
- void DrawPolyLine (sal_uInt32 nPoints, const Point* pPath );
- void DrawPolygon (sal_uInt32 nPoints, const Point* pPath);
- void DrawPolyPolygon (sal_uInt32 nPoly,
-- const sal_uInt32 *pPolygonSize,
-+ const unsigned long *pPolygonSize,
- const Point** pPolygonList);
- void DrawPolyLineBezier (sal_uInt32 nPoints,
- const Point* pPath,
-@@ -406,7 +406,7 @@ public:
- const Point* pPath,
- const BYTE* pFlgAry);
- void DrawPolyPolygonBezier (sal_uInt32 nPoly,
-- const sal_uInt32* pPoints,
-+ const unsigned long* pPoints,
- const Point* const* pPtAry,
- const BYTE* const* pFlgAry);
-
-Index: psprint/source/printergfx/common_gfx.cxx
-===================================================================
-RCS file: /cvs/gsl/psprint/source/printergfx/common_gfx.cxx,v
-retrieving revision 1.15
-retrieving revision 1.15.16.1
-diff -u -p -u -p -r1.15 -r1.15.16.1
---- psprint/source/printergfx/common_gfx.cxx 18 May 2004 10:46:21 -0000 1.15
-+++ psprint/source/printergfx/common_gfx.cxx 10 Sep 2004 15:37:42 -0000 1.15.16.1
-@@ -526,7 +526,7 @@ PrinterGfx::DrawPolygon (sal_uInt32 nPoi
- }
-
- void
--PrinterGfx::DrawPolyPolygon (sal_uInt32 nPoly, const sal_uInt32* pSizes, const Point** pPaths )
-+PrinterGfx::DrawPolyPolygon (sal_uInt32 nPoly, const unsigned long* pSizes, const Point** pPaths )
- {
- // sanity check
- if ( !nPoly || !pPaths || !(maFillColor.Is() || maLineColor.Is()))
-@@ -707,7 +707,7 @@ PrinterGfx::DrawPolygonBezier (sal_uInt3
- }
-
- void
--PrinterGfx::DrawPolyPolygonBezier (sal_uInt32 nPoly, const sal_uInt32 * pPoints, const Point* const * pPtAry, const BYTE* const* pFlgAry)
-+PrinterGfx::DrawPolyPolygonBezier (sal_uInt32 nPoly, const unsigned long * pPoints, const Point* const * pPtAry, const BYTE* const* pFlgAry)
- {
- const sal_uInt32 nBezString = 1024;
- sal_Char pString[nBezString];
-Index: vcl/unx/inc/pspgraphics.h
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/inc/pspgraphics.h,v
-retrieving revision 1.7
-retrieving revision 1.3.6.4
-diff -u -p -u -p -r1.7 -r1.3.6.4
---- vcl/unx/inc/pspgraphics.h 13 Jan 2005 18:10:51 -0000 1.7
-+++ vcl/unx/inc/pspgraphics.h 10 Mar 2005 02:29:46 -0000 1.3.6.4
-@@ -178,7 +178,7 @@ public:
- virtual void drawPolyLine( ULONG nPoints, const SalPoint* pPtAry );
- virtual void drawPolygon( ULONG nPoints, const SalPoint* pPtAry );
- virtual void drawPolyPolygon( ULONG nPoly,
-- const ULONG* pPoints,
-+ const unsigned long* pPoints,
- PCONSTSALPOINT* pPtAry );
- virtual sal_Bool drawPolyLineBezier( ULONG nPoints,
- const SalPoint* pPtAry,
-@@ -187,7 +187,7 @@ public:
- const SalPoint* pPtAry,
- const BYTE* pFlgAry );
- virtual sal_Bool drawPolyPolygonBezier( ULONG nPoly,
-- const ULONG* pPoints,
-+ const unsigned long* pPoints,
- const SalPoint* const* pPtAry,
- const BYTE* const* pFlgAry );
- virtual void copyArea( long nDestX,
-Index: vcl/unx/source/gdi/pspgraphics.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/source/gdi/pspgraphics.cxx,v
-retrieving revision 1.9
-retrieving revision 1.4.4.4
-diff -u -p -u -p -r1.9 -r1.4.4.4
---- vcl/unx/source/gdi/pspgraphics.cxx 13 Oct 2004 08:59:19 -0000 1.9
-+++ vcl/unx/source/gdi/pspgraphics.cxx 18 Jan 2005 17:22:51 -0000 1.4.4.4
-@@ -411,7 +411,7 @@ void PspGraphics::drawPolygon( ULONG nPo
- }
-
- void PspGraphics::drawPolyPolygon( ULONG nPoly,
-- const ULONG *pPoints,
-+ const unsigned long *pPoints,
- PCONSTSALPOINT *pPtAry )
- {
- m_pPrinterGfx->DrawPolyPolygon (nPoly, pPoints, (const Point**)pPtAry);
-@@ -430,7 +430,7 @@ sal_Bool PspGraphics::drawPolygonBezier(
- }
-
- sal_Bool PspGraphics::drawPolyPolygonBezier( ULONG nPoly,
-- const ULONG* pPoints,
-+ const unsigned long* pPoints,
- const SalPoint* const* pPtAry,
- const BYTE* const* pFlgAry )
- {
diff --git a/patches/64bit/resid-extensions-padmin.diff b/patches/64bit/resid-extensions-padmin.diff
deleted file mode 100644
index da8795669..000000000
--- a/patches/64bit/resid-extensions-padmin.diff
+++ /dev/null
@@ -1,68 +0,0 @@
-Index: extensions/source/scanner/grid.cxx
-===================================================================
-RCS file: /cvs/util/extensions/source/scanner/grid.cxx,v
-retrieving revision 1.3
-retrieving revision 1.3.116.1
-diff -u -p -u -p -r1.3 -r1.3.116.1
---- extensions/source/scanner/grid.cxx 27 Oct 2003 13:21:34 -0000 1.3
-+++ extensions/source/scanner/grid.cxx 21 Jan 2005 16:22:16 -0000 1.3.116.1
-@@ -63,7 +63,7 @@
- #include <cmath>
- #include <grid.hxx>
-
--ResId SaneResId( ULONG );
-+ResId SaneResId( sal_uInt32 );
-
- /***********************************************************************
- *
-Index: extensions/source/scanner/sanedlg.cxx
-===================================================================
-RCS file: /cvs/util/extensions/source/scanner/sanedlg.cxx,v
-retrieving revision 1.8
-retrieving revision 1.8.74.1
-diff -u -p -u -p -r1.8 -r1.8.74.1
---- extensions/source/scanner/sanedlg.cxx 26 Feb 2004 13:12:12 -0000 1.8
-+++ extensions/source/scanner/sanedlg.cxx 21 Jan 2005 16:22:34 -0000 1.8.74.1
-@@ -74,7 +74,7 @@
- #define USE_SAVE_STATE
- #undef SAVE_ALL_STATES
-
--ResId SaneResId( ULONG nID )
-+ResId SaneResId( sal_uInt32 nID )
- {
- static ResMgr* pResMgr = ResMgr::CreateResMgr( "san" MAKE_NUMSTR(SUPD) );
- return ResId( nID, pResMgr );
-Index: padmin/source/helper.cxx
-===================================================================
-RCS file: /cvs/gsl/padmin/source/helper.cxx,v
-retrieving revision 1.15
-retrieving revision 1.15.24.1
-diff -u -p -u -p -r1.15 -r1.15.24.1
---- padmin/source/helper.cxx 26 Jun 2004 03:11:23 -0000 1.15
-+++ padmin/source/helper.cxx 21 Jan 2005 15:36:36 -0000 1.15.24.1
-@@ -131,7 +131,7 @@ using namespace com::sun::star::ui::dial
- * PaResId
- */
-
--ResId padmin::PaResId( ULONG nId )
-+ResId padmin::PaResId( sal_uInt32 nId )
- {
- static ResMgr* pPaResMgr = NULL;
- if( ! pPaResMgr )
-Index: padmin/source/helper.hxx
-===================================================================
-RCS file: /cvs/gsl/padmin/source/helper.hxx,v
-retrieving revision 1.5
-retrieving revision 1.5.18.1
-diff -u -p -u -p -r1.5 -r1.5.18.1
---- padmin/source/helper.hxx 30 Mar 2004 13:46:19 -0000 1.5
-+++ padmin/source/helper.hxx 21 Jan 2005 15:36:50 -0000 1.5.18.1
-@@ -156,7 +156,7 @@ public:
-
- BOOL AreYouSure( Window*, int nRid = -1 );
-
--ResId PaResId( ULONG nId );
-+ResId PaResId( sal_uInt32 nId );
-
- void FindFiles( const String& rDirectory, ::std::list< String >& rResult, const String& rSuffixes, bool bRecursive = false );
-
diff --git a/patches/64bit/solaris64-nas.diff b/patches/64bit/solaris64-nas.diff
deleted file mode 100644
index dbb17dfef..000000000
--- a/patches/64bit/solaris64-nas.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- nas/nas-1.6.patch 18 Jan 2005 14:56:01 -0000 1.8
-+++ nas/nas-1.6.patch 9 Mar 2005 20:20:58 -0000 1.5.20.4
-@@ -130,7 +130,7 @@
- unsigned int which;
- {
- XGCValues gcv;
--! #if !defined(__alpha__) && !defined(__x86_64__)
-+! #if !defined(__alpha__) && !defined(__x86_64__) && !defined(__sparcv9)
- unsigned long commonMask;
- ! #else
- unsigned int commonMask;
-@@ -271,7 +271,7 @@
- #define B16
- #endif
-
--! #if !defined(__alpha__) && !defined(__x86_64__)
-+! #if !defined(__alpha__) && !defined(__x86_64__) && !defined(__sparcv9)
- typedef long INT32;
- typedef unsigned long CARD32;
- typedef unsigned long BITS32;
diff --git a/patches/64bit/solaris64-sal.diff b/patches/64bit/solaris64-sal.diff
deleted file mode 100644
index 841023aa2..000000000
--- a/patches/64bit/solaris64-sal.diff
+++ /dev/null
@@ -1,1839 +0,0 @@
---- sal/osl/unx/backtrace.c 4 Feb 2004 13:48:44 -0000 1.6
-+++ sal/osl/unx/backtrace.c 25 Aug 2004 18:46:23 -0000 1.6.62.1
-@@ -74,11 +74,19 @@
- #define FRAME_PTR_OFFSET 1
- #define FRAME_OFFSET 0
-
-+#if defined(__sparcv9)
-+#define STACK_BIAS 0x7ff
-+#else
-+#define STACK_BIAS 0
-+#endif
-+
- #elif defined( INTEL )
-
- #define FRAME_PTR_OFFSET 3
- #define FRAME_OFFSET 1
-
-+#define STACK_BIAS 0
-+
- #else
-
- #error Unknown Solaris target platform.
-@@ -88,27 +96,32 @@
-
- int backtrace( void **buffer, int max_frames )
- {
-- struct frame *fp;
-- jmp_buf ctx;
-- int i;
-+ jmp_buf ctx;
-+ long fpval;
-+ struct frame * fp;
-+ int i;
-
- /* flush register windows */
- #ifdef SPARC
- asm("ta 3");
- #endif
-+
- /* get stack- and framepointer */
- setjmp(ctx);
-- fp = (struct frame*)(((size_t*)(ctx))[FRAME_PTR_OFFSET]);
-- for ( i=0; (i<FRAME_OFFSET) && (fp!=0); i++)
-- fp = fp->fr_savfp;
-+ fpval = ((long*)(ctx))[FRAME_PTR_OFFSET];
-+
-+ fp = (struct frame*)((char*)(fpval) + STACK_BIAS);
-+ for ( i=0; (i < FRAME_OFFSET) && (fp != 0); i++)
-+ fp = (struct frame*)((char*)(fp->fr_savfp) + STACK_BIAS);
-
- /* iterate through backtrace */
-- for (i=0; fp && fp->fr_savpc && i<max_frames; i++)
-+ for (i = 0; fp && fp->fr_savpc && i < max_frames; i++)
- {
- /* store frame */
-- *(buffer++) = (void *)fp->fr_savpc;
-+ *(buffer++) = (void *)(fp->fr_savpc);
-+
- /* next frame */
-- fp=fp->fr_savfp;
-+ fp = (struct frame*)((char*)(fp->fr_savfp) + STACK_BIAS);
- }
- return i;
- }
---- sal/osl/unx/diagnose.c 25 Jun 2004 18:36:24 -0000 1.13
-+++ sal/osl/unx/diagnose.c 18 Oct 2004 16:31:47 -0000 1.12.202.2
-@@ -186,32 +186,43 @@ static void osl_diagnose_backtrace_Impl
- #define FRAME_PTR_OFFSET 1
- #define FRAME_OFFSET 0
-
-+#if defined(__sparcv9)
-+#define STACK_BIAS 0x7ff
-+#else
-+#define STACK_BIAS 0
-+#endif
-+
- #elif defined(INTEL)
-
- #define FRAME_PTR_OFFSET 3
- #define FRAME_OFFSET 1
-
-+#define STACK_BIAS 0
-+
- #endif /* (SPARC || INTEL) */
-
- static void osl_diagnose_backtrace_Impl (oslDebugMessageFunc f)
- {
-- struct frame * fp;
- jmp_buf ctx;
-+ long fpval;
-+ struct frame * fp;
- int i;
-
- #if defined(SPARC)
- asm("ta 3");
- #endif /* SPARC */
-+
- setjmp (ctx);
-- fp = (struct frame*)(((size_t*)(ctx))[FRAME_PTR_OFFSET]);
-+ fpval = ((long*)(ctx))[FRAME_PTR_OFFSET];
-
-+ fp = (struct frame*)((char*)(fpval) + STACK_BIAS);
- for (i = 0; (i < FRAME_OFFSET) && (fp != 0); i++)
-- fp = fp->fr_savfp;
-+ fp = (struct frame*)((char*)(fp->fr_savfp) + STACK_BIAS);
-
- for (i = 0; fp && fp->fr_savpc; i++)
- {
- osl_diagnose_frame_Impl (f, i, (void*)(fp->fr_savpc));
-- fp = fp->fr_savfp;
-+ fp = (struct frame*)((char*)(fp->fr_savfp) + STACK_BIAS);
- }
- }
-
---- sal/osl/unx/makefile.mk 4 Feb 2004 15:30:47 -0000 1.25
-+++ sal/osl/unx/makefile.mk 18 Aug 2004 13:19:07 -0000 1.25.62.1
-@@ -150,7 +150,7 @@ APP1STDLIBS+=-lC
-
- .INCLUDE : target.mk
-
--.IF "$(OS)$(CPU)"=="SOLARISS" || "$(OS)$(CPU)"=="NETBSDS" || "$(OS)$(CPU)"=="LINUXS"
-+.IF "$(OS)$(CPU)"=="SOLARISS" || "$(OS)$(CPU)"=="SOLARISS64B" || "$(OS)$(CPU)"=="NETBSDS" || "$(OS)$(CPU)"=="LINUXS"
-
- $(SLO)$/interlck.obj: $(SLO)$/interlck.o
- touch $(SLO)$/interlck.obj
---- sal/textenc/convertsinglebytetobmpunicode.cxx 17 Jun 2004 11:41:43 -0000 1.2
-+++ sal/textenc/convertsinglebytetobmpunicode.cxx 1 Jul 2004 16:08:04 -0000 1.2.4.1
-@@ -164,7 +164,8 @@ sal_Size rtl_textenc_convertBmpUnicodeTo
- }
- // Linearly searching through the ranges if probably fastest, assuming
- // that most converted characters belong to the ASCII subset:
-- for (std::size_t i = 0; i < entries; ++i) {
-+ sal_Size i;
-+ for (i = 0; i < entries; ++i) {
- if (c < ranges[i].unicode) {
- break;
- } else if (c <= ranges[i].unicode + ranges[i].range) {
---- sal/workben/makefile.mk 12 Jun 2003 09:47:35 -0000 1.12
-+++ sal/workben/makefile.mk 25 Aug 2004 16:34:21 -0000 1.12.172.1
-@@ -66,29 +66,25 @@ PRJNAME=sal
- TARGET=workben
- LIBTARGET=NO
- TARGETTYPE=CUI
-+NO_DEFAULT_STL=TRUE
- ENABLE_EXCEPTIONS=TRUE
-
--TESTAPP=test_osl_getVolInfo
--#TESTAPP=test_osl_joinProcess
--#TESTAPP=getlocaleinfotest
-+#TESTAPP=test_osl_getVolInfo
- #TESTAPP=test_osl_joinProcess
- #TESTAPP=getlocaleinfotest
- #TESTAPP=salstattest
- #TESTAPP=saldyntest
-
-+TESTAPP=t_alloc
- #TESTAPP=t_cipher
- #TESTAPP=t_digest
- #TESTAPP=t_random
--#TESTAPP=t_layer
--#TESTAPP=t_tls
--#TESTAPP=t_zip
-
- #TESTAPP=testfile
- #TESTAPP=testpipe
- #TESTAPP=testpip2
- #TESTAPP=testproc
- #TESTAPP=tgetpwnam
--#TESTAPP=salstattest
-
- # --- Settings -----------------------------------------------------
-
-@@ -96,6 +92,9 @@ TESTAPP=test_osl_getVolInfo
-
- # --- Files --------------------------------------------------------
-
-+#
-+# test_osl_getVolInfo.
-+#
- .IF "$(TESTAPP)" == "test_osl_getVolInfo"
-
- SHL1OBJS=$(SLO)$/t_osl_getVolInfo.obj
-@@ -111,14 +110,19 @@ SHL1STDLIBS+=$(SOLARLIBDIR)$/cppunit.lib
- SHL1STDLIBS=$(LB)$/libsal.so
- SHL1STDLIBS+=$(SOLARLIBDIR)$/libcppunit$(DLLPOSTFIX).a
- .ENDIF
--
-+
- SHL1IMPLIB=i$(SHL1TARGET)
- SHL1DEF=$(MISC)$/$(SHL1TARGET).def
- DEF1NAME=$(SHL1TARGET)
- DEF1EXPORTFILE=export.exp
--.ENDIF
-
-+.ENDIF # test_osl_getVolInfo
-+
-+#
-+# test_osl_joinProcess.
-+#
- .IF "$(TESTAPP)" == "test_osl_joinProcess"
-+
- OBJFILES=$(OBJ)$/t_ojp_exe.obj
- APP1TARGET=ojpx
- APP1OBJS=$(OBJFILES)
-@@ -140,13 +144,17 @@ SHL1STDLIBS+=$(SOLARLIBDIR)$/cppunit.lib
- SHL1STDLIBS=$(LB)$/libsal.so
- SHL1STDLIBS+=$(SOLARLIBDIR)$/libcppunit$(DLLPOSTFIX).a
- .ENDIF
--
-+
- SHL1IMPLIB=i$(SHL1TARGET)
- SHL1DEF=$(MISC)$/$(SHL1TARGET).def
- DEF1NAME=$(SHL1TARGET)
- DEF1EXPORTFILE=export.exp
--.ENDIF
-
-+.ENDIF # test_osl_joinProcess
-+
-+#
-+# getlocaleinfotest.
-+#
- .IF "$(TESTAPP)" == "getlocaleinfotest"
-
- OBJFILES=$(OBJ)$/getlocaleinfotest.obj
-@@ -163,8 +171,11 @@ DEF1EXPORTFILE=export.exp
-
- APP1DEPN=$(LB)$/isal.lib
-
--.ENDIF
-+.ENDIF # getlocaleinfotest
-
-+#
-+# salstattest.
-+#
- .IF "$(TESTAPP)" == "salstattest"
-
- CFLAGS+= -DUSE_SAL_STATIC
-@@ -184,6 +195,9 @@ DEF1EXPORTFILE=export.exp
-
- .ENDIF # salstattest
-
-+#
-+# saldyntest.
-+#
- .IF "$(TESTAPP)" == "saldyntest"
-
- OBJFILES= $(OBJ)$/saldyntest.obj
-@@ -202,6 +216,25 @@ DEF1EXPORTFILE=export.exp
- .ENDIF # salstattest
-
- #
-+# t_alloc.
-+#
-+.IF "$(TESTAPP)" == "t_alloc"
-+
-+CFILES= t_alloc.c
-+OBJFILES= $(OBJ)$/t_alloc.obj
-+
-+APP1TARGET= t_alloc
-+APP1OBJS= $(OBJFILES)
-+APP1OBJS+= $(SLO)$/alloc.o $(SLO)$/diagnose.o
-+APP1STDLIBS=
-+APP1DEPN=
-+
-+APP1LIBSALCPPRT=$(0)
-+STDLIBCUIMT+=-lc -ldl
-+
-+.ENDIF # t_alloc
-+
-+#
- # t_cipher
- #
- .IF "$(TESTAPP)" == "t_cipher"
-@@ -247,75 +280,6 @@ APP3DEPN= $(SLB)$/sal.lib
- .ENDIF # t_random
-
- #
--# t_layer.
--#
--.IF "$(TESTAPP)" == "t_layer"
--
--CFILES= t_layer.c
--OBJFILES= $(OBJ)$/t_layer.obj
--
--APP4TARGET= t_layer
--APP4OBJS= $(OBJFILES)
--APP4STDLIBS=$(SALLIB)
--APP4DEPN= $(SLB)$/sal.lib
--
--.ENDIF # t_layer
--
--#
--# t_tls.
--#
--.IF "$(TESTAPP)" == "t_tls"
--
--CFILES= t_tls.c
--OBJFILES= $(OBJ)$/t_tls.obj
--
--.IF "$(SALTLSLIB)" == ""
--
--.IF "$(GUI)" == "UNX"
--SALTLSLIB= -lsaltls2
--.ENDIF # unx
--
--.IF "$(GUI)" == "WNT"
--SALTLSLIB= isaltls.lib
--.ENDIF # wnt
--
--.ENDIF # saltlslib
--
--APP5TARGET= t_tls
--APP5OBJS= $(OBJFILES)
--APP5STDLIBS=$(SALTLSLIB) $(SALLIB)
--APP5DEPN= $(SLB)$/sal.lib
--
--.ENDIF # t_tls
--
--#
--# t_zip.
--#
--.IF "$(TESTAPP)" == "t_zip"
--
--CFILES= t_zip.c
--OBJFILES= $(OBJ)$/t_zip.obj
--
--.IF "$(SALZIPLIB)" == ""
--
--.IF "$(GUI)" == "UNX"
--SALZIPLIB= -lsalzip2
--.ENDIF # unx
--
--.IF "$(GUI)" == "WNT"
--SALZIPLIB= isalzip.lib
--.ENDIF # wnt
--
--.ENDIF # salziplib
--
--APP6TARGET= t_zip
--APP6OBJS= $(OBJFILES)
--APP6STDLIBS=$(SALZIPLIB) $(SALLIB)
--APP6DEPN= $(SLB)$/sal.lib
--
--.ENDIF # t_zip
--
--#
- # testfile
- #
- .IF "$(TESTAPP)" == "testfile"
-@@ -338,10 +302,10 @@ APP1DEPN= $(SLB)$/sal.lib
- CXXFILES= testpipe.cxx
- OBJFILES= $(OBJ)$/testpipe.obj
-
--APP2TARGET= testpipe
--APP2OBJS= $(OBJFILES)
--APP2STDLIBS=$(SALLIB)
--APP2DEPN= $(SLB)$/sal.lib
-+APP1TARGET= testpipe
-+APP1OBJS= $(OBJFILES)
-+APP1STDLIBS=$(SALLIB)
-+APP1DEPN= $(SLB)$/sal.lib
-
- .ENDIF # testpipe
-
-@@ -353,10 +317,10 @@ APP2DEPN= $(SLB)$/sal.lib
- CXXFILES= testpip2.cxx
- OBJFILES= $(OBJ)$/testpip2.obj
-
--APP3TARGET= testpip2
--APP3OBJS= $(OBJFILES)
--APP3STDLIBS=$(SALLIB)
--APP3DEPN= $(SLB)$/sal.lib
-+APP1TARGET= testpip2
-+APP1OBJS= $(OBJFILES)
-+APP1STDLIBS=$(SALLIB)
-+APP1DEPN= $(SLB)$/sal.lib
-
- .ENDIF # testpip2
-
-@@ -368,10 +332,10 @@ APP3DEPN= $(SLB)$/sal.lib
- CXXFILES= testproc.cxx
- OBJFILES= $(OBJ)$/testproc.obj
-
--APP4TARGET= testproc
--APP4OBJS= $(OBJFILES)
--APP4STDLIBS=$(SALLIB)
--APP4DEPN= $(SLB)$/sal.lib
-+APP1TARGET= testproc
-+APP1OBJS= $(OBJFILES)
-+APP1STDLIBS=$(SALLIB)
-+APP1DEPN= $(SLB)$/sal.lib
-
- .ENDIF # testproc
-
-@@ -384,10 +348,10 @@ APP4DEPN= $(SLB)$/sal.lib
- CXXFILES= tgetpwnam.cxx
- OBJFILES= $(OBJ)$/tgetpwnam.obj
-
--APP5TARGET= tgetpwnam
--APP5OBJS= $(OBJFILES)
--APP5STDLIBS=$(SALLIB)
--APP5DEPN= $(SLB)$/sal.lib
-+APP1TARGET= tgetpwnam
-+APP1OBJS= $(OBJFILES)
-+APP1STDLIBS=$(SALLIB)
-+APP1DEPN= $(SLB)$/sal.lib
-
- .ENDIF # (sco | netbsd | freebsd)
- .ENDIF # tgetpwname
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ sal/workben/t_alloc.c 25 Aug 2004 16:34:21 -0000 1.2.4.1
-@@ -0,0 +1,482 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#ifndef _SAL_TYPES_H_
-+#include <sal/types.h>
-+#endif
-+
-+#ifndef _OSL_DIAGNOSE_H_
-+#include <osl/diagnose.h>
-+#endif
-+
-+#ifndef _RTL_ALLOC_H_
-+#include <rtl/alloc.h>
-+#endif
-+
-+#ifndef INCLUDED_STDLIB_H
-+#include <stdlib.h>
-+#define INCLUDED_STDLIB_H
-+#endif
-+
-+#ifndef INCLUDED_STDIO_H
-+#include <stdio.h>
-+#define INCLUDED_STDIO_H
-+#endif
-+
-+/*============================================================================
-+ *
-+ * Pseudo Random Number Generator.
-+ *
-+ *==========================================================================*/
-+struct __random_generator_st
-+{
-+ sal_Int16 m_nX;
-+ sal_Int16 m_nY;
-+ sal_Int16 m_nZ;
-+};
-+
-+struct __random_parameter_st
-+{
-+ sal_Int32 m_nA; /* lower bound */
-+ sal_Int32 m_nB; /* upper bound */
-+};
-+
-+/*
-+ * __random_update.
-+ */
-+#define __random_update(x, y, z) \
-+{ \
-+ (x) = 170 * ((x) % 178) - 63 * ((x) / 178); \
-+ if ((x) < 0) (x) += 30328L; \
-+ \
-+ (y) = 171 * ((y) % 177) - 2 * ((y) / 177); \
-+ if ((y) < 0) (y) += 30269L; \
-+ \
-+ (z) = 172 * ((z) % 176) - 35 * ((z) / 176); \
-+ if ((z) < 0) (z) += 30307L; \
-+}
-+
-+/*
-+ * __random_generate.
-+ */
-+static double __random_generate (struct __random_generator_st * state)
-+{
-+ register double random;
-+
-+ __random_update (state->m_nX, state->m_nY, state->m_nZ);
-+ random = (((double)(state->m_nX) / 30328.0) +
-+ ((double)(state->m_nY) / 30269.0) +
-+ ((double)(state->m_nZ) / 30307.0) );
-+
-+ random -= ((double)((sal_uInt32)(random)));
-+ return (random);
-+}
-+
-+/*
-+ * __random.
-+ */
-+static struct __random_generator_st g_random =
-+{
-+ 1, 1, 1
-+};
-+
-+static double __random (struct __random_parameter_st * params)
-+{
-+ register double random;
-+
-+ random = __random_generate (&(g_random));
-+ if (params)
-+ {
-+ random *= (double)(params->m_nB - params->m_nA);
-+ random += (double)(params->m_nA);
-+ }
-+ return (random);
-+}
-+
-+/*============================================================================
-+ *
-+ * __memory_info_st.
-+ *
-+ *==========================================================================*/
-+
-+typedef struct __memory_info_st memory_type;
-+struct __memory_info_st
-+{
-+ sal_Int32 m_ttl;
-+
-+ memory_type * m_flink;
-+ memory_type * m_blink;
-+};
-+
-+#define queue_start(entry) \
-+{ \
-+ (entry)->m_flink = (entry); \
-+ (entry)->m_blink = (entry); \
-+}
-+
-+#define queue_remove(entry) \
-+{ \
-+ (entry)->m_blink->m_flink = (entry)->m_flink; \
-+ (entry)->m_flink->m_blink = (entry)->m_blink; \
-+ queue_start(entry); \
-+}
-+
-+#define queue_insert_head(head, entry) \
-+{ \
-+ (entry)->m_blink = (head); \
-+ (entry)->m_flink = (head)->m_flink; \
-+ (head)->m_flink = (entry); \
-+ (entry)->m_flink->m_blink = (entry); \
-+}
-+
-+#define queue_insert_tail(head, entry) \
-+{ \
-+ (entry)->m_flink = (head); \
-+ (entry)->m_blink = (head)->m_blink; \
-+ (head)->m_blink = (entry); \
-+ (entry)->m_blink->m_flink = (entry); \
-+}
-+
-+/*============================================================================
-+ *
-+ * __memory_global_st.
-+ *
-+ *==========================================================================*/
-+struct __memory_global_st
-+{
-+ memory_type m_queue_head;
-+ struct __random_parameter_st m_param_size;
-+ struct __random_parameter_st m_param_ttl;
-+};
-+
-+static struct __memory_global_st g_memory =
-+{
-+ { 0, &(g_memory.m_queue_head), &(g_memory.m_queue_head) },
-+ { sizeof(memory_type), 2000 },
-+ { 1, 10 }
-+};
-+
-+/*============================================================================
-+ *
-+ * __memory_tests.
-+ *
-+ *==========================================================================*/
-+struct __memory_allocator_st
-+{
-+ /* 'malloc()' */
-+ void * (SAL_CALL * m_create)(size_t);
-+
-+ /* 'realloc()' */
-+ void * (SAL_CALL * m_resize)(void *, size_t);
-+
-+ /* 'free()' */
-+ void (SAL_CALL * m_delete)(void *);
-+};
-+
-+static void __memory_test_random (struct __memory_allocator_st * allocator)
-+{
-+ memory_type *head, *entry, *memory;
-+ sal_uInt32 n;
-+
-+ n = (sal_uInt32)(__random (&(g_memory.m_param_size)));
-+ memory = (allocator->m_create)(n);
-+ if (memory)
-+ {
-+ sal_Int32 k;
-+
-+ k = (sal_Int32)(__random (&(g_memory.m_param_ttl)));
-+ memory->m_ttl = k;
-+
-+ head = &(g_memory.m_queue_head);
-+ for (entry = head->m_flink; entry != head; entry = entry->m_flink)
-+ {
-+ if (entry->m_ttl >= k)
-+ break;
-+ }
-+ queue_insert_tail (entry, memory);
-+ }
-+
-+ head = &(g_memory.m_queue_head);
-+ for (entry = head->m_flink; entry != head; entry = entry->m_flink)
-+ {
-+ entry->m_ttl -= 1;
-+ }
-+
-+ head = &(g_memory.m_queue_head);
-+ while (((entry = head->m_flink) != head) && (entry->m_ttl <= 0))
-+ {
-+ queue_remove (entry);
-+ (allocator->m_delete)(entry);
-+ }
-+}
-+
-+static void __memory_test_grow (struct __memory_allocator_st * allocator)
-+{
-+ memory_type *head, *entry, *memory;
-+ sal_Int32 n = 10240;
-+
-+ head = &(g_memory.m_queue_head);
-+ if ((entry = head->m_flink) != head)
-+ {
-+ n = entry->m_ttl + 1024;
-+ }
-+
-+ memory = (allocator->m_create)(sizeof(memory_type));
-+ if (memory != 0)
-+ {
-+ memory->m_ttl = sizeof(memory_type);
-+ queue_insert_tail (head, memory);
-+ }
-+
-+ if (allocator->m_resize)
-+ {
-+ memory = 0;
-+ if (entry != head)
-+ {
-+ queue_remove (entry);
-+ memory = entry;
-+ }
-+
-+ memory = (allocator->m_resize)(memory, n);
-+ if (memory != 0)
-+ {
-+ memory->m_ttl = n;
-+ queue_insert_head (head, memory);
-+ }
-+ }
-+ else
-+ {
-+ memory = (allocator->m_create)(n);
-+ if (memory != 0)
-+ {
-+ memory->m_ttl = n;
-+ queue_insert_head (head, memory);
-+ }
-+ if (entry != head)
-+ {
-+ queue_remove (entry);
-+ (allocator->m_delete)(entry);
-+ }
-+ }
-+}
-+
-+static void __memory_test_cleanup (struct __memory_allocator_st * allocator)
-+{
-+ memory_type *head, *entry;
-+
-+ head = &(g_memory.m_queue_head);
-+ while ((entry = head->m_flink) != head)
-+ {
-+ queue_remove (entry);
-+ (allocator->m_delete)(entry);
-+ }
-+}
-+
-+/*============================================================================
-+ *
-+ * heap.
-+ *
-+ *==========================================================================*/
-+#ifdef HAVE_HEAP_H
-+#include "heap.h"
-+
-+struct __heap_info_st
-+{
-+ union
-+ {
-+ heap_type m_heap;
-+ char m_data[0x10000];
-+ } m_union;
-+
-+ int m_magic;
-+};
-+
-+static struct __heap_info_st g_heap =
-+{
-+ { HEAP_INITIALIZER },
-+ 0
-+};
-+
-+static void * __heap_alloc (size_t n)
-+{
-+ if (g_heap.m_magic == 0)
-+ {
-+ heap_init (&(g_heap.m_union.m_heap), sizeof(g_heap.m_union));
-+ g_heap.m_magic = 1;
-+ }
-+ return heap_alloc (&(g_heap.m_union.m_heap), n);
-+}
-+
-+static void * __heap_realloc (void * p, size_t n)
-+{
-+ if (g_heap.m_magic == 0)
-+ {
-+ heap_init (&(g_heap.m_union.m_heap), sizeof(g_heap.m_union));
-+ g_heap.m_magic = 1;
-+ }
-+ return heap_realloc (&(g_heap.m_union.m_heap), p, n);
-+}
-+
-+static void __heap_free (void * p)
-+{
-+ if (g_heap.m_magic == 0)
-+ {
-+ heap_init (&(g_heap.m_union.m_heap), sizeof(g_heap.m_union));
-+ g_heap.m_magic = 1;
-+ }
-+ heap_free (&(g_heap.m_union.m_heap), p);
-+}
-+
-+static struct __memory_allocator_st g_heap_allocator =
-+{
-+ __heap_alloc,
-+ __heap_realloc,
-+ __heap_free
-+};
-+
-+#endif /* HAVE_HEAP_H */
-+
-+/*============================================================================
-+ *
-+ * main.
-+ *
-+ *==========================================================================*/
-+static struct __memory_allocator_st g_rtl_allocator =
-+{
-+ rtl_allocateMemory,
-+ rtl_reallocateMemory,
-+ rtl_freeMemory
-+};
-+
-+static struct __memory_allocator_st g_std_allocator =
-+{
-+ malloc,
-+ realloc,
-+ free
-+};
-+
-+enum __memory_options
-+{
-+ OPTION_TEST_RANDOM = 0x01,
-+ OPTION_TEST_GROW = 0x02
-+};
-+
-+static void usage (void)
-+{
-+ printf ("Usage:\tt_alloc [-a <rtl|std>] [-n <num>]\n");
-+
-+ printf ("\nOptions:\n");
-+ printf ("-a\tallocator [default: rtl]\n");
-+ printf ("-n\titerations [default: 10000]\n");
-+ printf ("-h\thelp\n");
-+
-+ exit (0);
-+}
-+
-+int SAL_CALL main (int argc, char **argv)
-+{
-+ struct __memory_allocator_st * allocator = &g_rtl_allocator;
-+ int options = OPTION_TEST_RANDOM;
-+ int i, n = 10000;
-+
-+ /* parse options */
-+ for (i = 1; i < argc; i++)
-+ {
-+ const char *opt = argv[i]; char c;
-+ switch (opt[0])
-+ {
-+ case '-':
-+ switch (opt[1])
-+ {
-+ case 'a':
-+ opt = argv[++i]; c = opt ? opt[0] : 0;
-+ switch (c)
-+ {
-+ case 'r':
-+ allocator = &g_rtl_allocator;
-+ break;
-+ case 's':
-+ allocator = &g_std_allocator;
-+ break;
-+ default:
-+ usage();
-+ break;
-+ }
-+ break;
-+
-+ case 'n':
-+ opt = argv[++i]; c = opt ? opt[0] : 0;
-+ if (('0' <= c) && (c <= '9'))
-+ n = atoi(opt);
-+ else
-+ usage();
-+ break;
-+
-+ case 'h':
-+ default:
-+ usage();
-+ break;
-+ }
-+ break;
-+
-+ default:
-+ usage();
-+ break;
-+ }
-+ }
-+
-+ /* execute options */
-+ if (options & OPTION_TEST_RANDOM)
-+ {
-+ /* allocate/deallocate w/ random distribution */
-+ for (i = n; i > 0; i--)
-+ __memory_test_random (allocator);
-+
-+ /* free still allocated memory */
-+ __memory_test_cleanup (allocator);
-+ }
-+ if (options & OPTION_TEST_GROW)
-+ {
-+ /* allocate w/ growing distribution */
-+ for (i = n; i > 0; i--)
-+ __memory_test_grow (allocator);
-+
-+ /* free still allocated memory */
-+ __memory_test_cleanup (allocator);
-+ }
-+
-+ /* finished */
-+ return 0;
-+}
---- sal/workben/t_layer.c 15 Apr 2003 17:49:37 -0000 1.4
-+++ /dev/null 1 Jan 1970 00:00:00 -0000
-@@ -1,327 +0,0 @@
--/*************************************************************************
-- *
-- * OpenOffice.org - a multi-platform office productivity suite
-- *
-- * $RCSfile$
-- *
-- * $Revision$
-- *
-- * last change: $Author$ $Date$
-- *
-- * The Contents of this file are made available subject to
-- * the terms of GNU Lesser General Public License Version 2.1.
-- *
-- *
-- * GNU Lesser General Public License Version 2.1
-- * =============================================
-- * Copyright 2005 by Sun Microsystems, Inc.
-- * 901 San Antonio Road, Palo Alto, CA 94303, USA
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Lesser General Public
-- * License version 2.1, as published by the Free Software Foundation.
-- *
-- * This library 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 for more details.
-- *
-- * You should have received a copy of the GNU Lesser General Public
-- * License along with this library; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-- * MA 02111-1307 USA
-- *
-- ************************************************************************/
--
--#ifndef _SAL_TYPES_H_
--#include <sal/types.h>
--#endif
--#ifndef _RTL_ALLOC_H_
--#include <rtl/alloc.h>
--#endif
--#ifndef _OSL_DIAGNOSE_H_
--#include <osl/diagnose.h>
--#endif
--#ifndef _OSL_INTERLCK_H_
--#include <osl/interlck.h>
--#endif
--#ifndef _OSL_ISOCKET_H_
--#include <osl/isocket.h>
--#endif
--
--/*========================================================================
-- *
-- * osl/debug.c
-- *
-- *======================================================================*/
--/*
-- * __osl_debug_create.
-- */
--static oslSocketResult SAL_CALL __osl_debug_create (
-- oslSocketDescriptor *socket,
-- oslAddrFamily family,
-- oslSocketType type,
-- oslProtocol protocol)
--{
-- oslSocketResult result;
--
-- if (!(socket->m_lower))
-- {
-- oslSocketDescriptor *lower;
-- lower = osl_socket_createSocketLayer (osl_socket_getSocketMethods());
-- osl_socket_pushSocketLayer (socket, lower);
-- }
--
-- result = (socket->m_lower->m_methods->m_create)(
-- socket->m_lower, family, type, protocol);
-- if (!(result == osl_Socket_Ok))
-- return (result);
--
-- if (!(socket->m_private))
-- {
-- /* ... */
-- }
-- return (osl_Socket_Ok);
--}
--
--/*
-- * __osl_debug_delete.
-- */
--static void SAL_CALL __osl_debug_delete (oslSocketDescriptor *socket)
--{
-- if (socket->m_private)
-- {
-- /* ... */
-- }
-- if (socket->m_lower)
-- {
-- (socket->m_lower->m_methods->m_delete)(socket->m_lower);
-- osl_socket_deleteSocketLayer (socket->m_lower);
-- }
--}
--
--/*
-- * __osl_debug_getOption.
-- */
--static oslSocketResult SAL_CALL __osl_debug_getOption (
-- oslSocketDescriptor *socket,
-- oslSocketOptionLevel level,
-- oslSocketOption option,
-- void *buffer,
-- sal_uInt32 length)
--{
-- if (level == osl_Socket_LevelSocketLayer)
-- {
-- /* ... */
-- return (osl_Socket_Ok);
-- }
--
-- return (socket->m_lower->m_methods->m_getoption)(
-- socket->m_lower, level, option, buffer, length);
--}
--
--/*
-- * __osl_debug_setOption.
-- */
--static oslSocketResult SAL_CALL __osl_debug_setOption (
-- oslSocketDescriptor *socket,
-- oslSocketOptionLevel level,
-- oslSocketOption option,
-- const void *buffer,
-- sal_uInt32 length)
--{
-- if (level == osl_Socket_LevelSocketLayer)
-- {
-- /* ... */
-- return (osl_Socket_Ok);
-- }
--
-- return (socket->m_lower->m_methods->m_setoption)(
-- socket->m_lower, level, option, buffer, length);
--}
--
--/*
-- * __osl_debug_accept.
-- */
--static oslSocketDescriptor* SAL_CALL __osl_debug_accept (
-- oslSocketDescriptor *socket, oslSocketAddr *fromaddr)
--{
-- oslSocketDescriptor *lower;
-- lower = (socket->m_lower->m_methods->m_accept)(socket->m_lower, fromaddr);
-- if (lower)
-- {
-- oslSocketDescriptor *upper;
-- upper = osl_socket_createSocketLayer (socket->m_methods);
-- osl_socket_pushSocketLayer (upper, lower);
-- return (upper);
-- }
-- return ((oslSocketDescriptor*)NULL);
--}
--
--/*
-- * __osl_debug_connect.
-- */
--static oslSocketResult SAL_CALL __osl_debug_connect (
-- oslSocketDescriptor *socket, oslSocketAddr addr)
--{
-- return (socket->m_lower->m_methods->m_connect)(socket->m_lower, addr);
--}
--
--/*
-- * __osl_debug_close.
-- */
--static void SAL_CALL __osl_debug_close (oslSocketDescriptor *socket)
--{
-- (socket->m_lower->m_methods->m_close)(socket->m_lower);
--}
--
--/*
-- * __osl_shutdown.
-- */
--static void SAL_CALL __osl_debug_shutdown (
-- oslSocketDescriptor *socket, oslSocketDirection direction)
--{
-- (socket->m_lower->m_methods->m_shutdown)(socket->m_lower, direction);
--}
--
--/*
-- * __osl_debug_methods.
-- */
--static oslSocketMethods __osl_debug_methods =
--{
-- NULL /* initialized on demand */
--};
--
--/*
-- * osl_debug_getSocketMethods.
-- */
--const oslSocketMethods* SAL_CALL osl_debug_getSocketMethods (void)
--{
-- static oslInterlockedCount nonce = 0;
-- if (osl_incrementInterlockedCount (&nonce) == 1)
-- {
-- const oslSocketMethods *methods = osl_socket_getDefaultSocketMethods();
-- __osl_debug_methods = *methods;
--
-- __osl_debug_methods.m_create = __osl_debug_create;
-- __osl_debug_methods.m_delete = __osl_debug_delete;
--
-- __osl_debug_methods.m_getoption = __osl_debug_getOption;
-- __osl_debug_methods.m_setoption = __osl_debug_setOption;
--
-- __osl_debug_methods.m_accept = __osl_debug_accept;
-- __osl_debug_methods.m_connect = __osl_debug_connect;
-- __osl_debug_methods.m_close = __osl_debug_close;
--
-- __osl_debug_methods.m_shutdown = __osl_debug_shutdown;
--
-- osl_incrementInterlockedCount (&nonce);
-- }
--
-- osl_decrementInterlockedCount (&nonce);
-- return (&__osl_debug_methods);
--}
--
--/*========================================================================
-- *
-- * osl/socket.c (physical, bottom layer).
-- *
-- *======================================================================*/
--#if 0 /* NYI */
--
--static oslSocketResult SAL_CALL __osl_socket_create (
-- oslSocketDescriptor *socket,
-- oslAddrFamily family,
-- oslSocketType type,
-- oslProtocol protocol)
--{
--#if OSL_DEBUG_LEVEL > 1
-- const oslSocketMethods *debug = osl_debug_getSocketMethods();
-- if (!(socket->m_upper || socket->m_upper->m_methods == debug))
-- {
-- oslSocketDescriptor *upper;
--
-- upper = osl_socket_createSocketLayer (debug);
-- osl_socket_pushSocketLayer (upper, socket);
--
-- return (upper->m_methods->m_create)(upper, family, type, protocol);
-- }
--#endif /* OSL_DEBUG_LEVEL */
-- if (!(socket->m_private))
-- {
-- /* ... */
-- socket->m_private = osl_createSocket (family, type, protocol);
-- }
-- return (osl_Socket_Ok);
--}
--
--#endif /* NYI */
--
--/*========================================================================
-- *
-- * main.
-- *
-- *======================================================================*/
--int SAL_CALL main (int argc, char **argv)
--{
-- oslSocketDescriptor *socket;
--
-- socket = osl_socket_createSocketLayer (osl_debug_getSocketMethods());
-- if (socket)
-- {
-- oslSocketDescriptor *connection;
-- oslSocketResult result;
-- oslSocketAddr addr, from;
-- sal_Int32 option = 1;
--
-- result = osl_socket_create (
-- socket,
-- osl_Socket_FamilyInet,
-- osl_Socket_TypeStream,
-- osl_Socket_ProtocolIp);
-- OSL_ASSERT(result == osl_Socket_Ok);
--
-- result = osl_socket_setOption (
-- socket,
-- osl_Socket_LevelSocket,
-- osl_Socket_OptionReuseAddr,
-- &option, sizeof(option));
-- OSL_ASSERT(result == osl_Socket_Ok);
--
-- addr = osl_createEmptySocketAddr (osl_Socket_FamilyInet);
-- osl_setInetPortOfSocketAddr (addr, 7777);
--
-- result = osl_socket_bind (socket, addr);
-- OSL_ASSERT(result == osl_Socket_Ok);
--
-- result = osl_socket_listen (socket, 1);
-- OSL_ASSERT(result == osl_Socket_Ok);
--
-- connection = osl_socket_accept (socket, &from);
-- if (connection)
-- {
-- sal_Char buffer[1024];
-- sal_Int32 k, n = sizeof(buffer);
-- oslSocketMsgFlag flag = osl_Socket_MsgNormal;
--
-- while ((k = osl_socket_recv (connection, buffer, n, flag)) > 0)
-- {
-- if (osl_socket_send (connection, buffer, k, flag) < 0)
-- break;
-- }
--
-- osl_socket_close (connection);
-- osl_socket_delete (connection);
--
-- osl_socket_deleteSocketLayer (connection);
-- }
--
-- osl_socket_close (socket);
-- osl_socket_delete (socket);
--
-- osl_socket_deleteSocketLayer (socket);
-- }
--
-- return 0;
--}
--
---- sal/workben/t_ojp_exe.cxx 26 Mar 2003 16:47:25 -0000 1.2
-+++ /dev/null 1 Jan 1970 00:00:00 -0000
-@@ -1,60 +0,0 @@
--/*************************************************************************
-- *
-- * OpenOffice.org - a multi-platform office productivity suite
-- *
-- * $RCSfile$
-- *
-- * $Revision$
-- *
-- * last change: $Author$ $Date$
-- *
-- * The Contents of this file are made available subject to
-- * the terms of GNU Lesser General Public License Version 2.1.
-- *
-- *
-- * GNU Lesser General Public License Version 2.1
-- * =============================================
-- * Copyright 2005 by Sun Microsystems, Inc.
-- * 901 San Antonio Road, Palo Alto, CA 94303, USA
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Lesser General Public
-- * License version 2.1, as published by the Free Software Foundation.
-- *
-- * This library 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 for more details.
-- *
-- * You should have received a copy of the GNU Lesser General Public
-- * License along with this library; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-- * MA 02111-1307 USA
-- *
-- ************************************************************************/
--
--
--#ifdef WNT
--# define WIN32_LEAN_AND_MEAN
--# include <windows.h>
--#else
--# include <unistd.h>
--#endif
--
--#include <stdio.h>
--
--int main(int argc, char* argv[])
--{
-- printf("osl process test executable started:\n");
--
--#ifdef WNT
-- Sleep(5000);
--#else
-- sleep(5);
--#endif
--
-- printf("osl process test executable ended:\n");
--
-- return (0);
--}
--
---- sal/workben/t_tls.c 26 Mar 2003 16:47:27 -0000 1.3
-+++ /dev/null 1 Jan 1970 00:00:00 -0000
-@@ -1,275 +0,0 @@
--/*************************************************************************
-- *
-- * OpenOffice.org - a multi-platform office productivity suite
-- *
-- * $RCSfile$
-- *
-- * $Revision$
-- *
-- * last change: $Author$ $Date$
-- *
-- * The Contents of this file are made available subject to
-- * the terms of GNU Lesser General Public License Version 2.1.
-- *
-- *
-- * GNU Lesser General Public License Version 2.1
-- * =============================================
-- * Copyright 2005 by Sun Microsystems, Inc.
-- * 901 San Antonio Road, Palo Alto, CA 94303, USA
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Lesser General Public
-- * License version 2.1, as published by the Free Software Foundation.
-- *
-- * This library 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 for more details.
-- *
-- * You should have received a copy of the GNU Lesser General Public
-- * License along with this library; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-- * MA 02111-1307 USA
-- *
-- ************************************************************************/
--
--#ifndef _SAL_TYPES_H_
--#include <sal/types.h>
--#endif
--#ifndef _RTL_ALLOC_H_
--#include <rtl/alloc.h>
--#endif
--#ifndef _RTL_USTRING_H_
--#include <rtl/ustring.h>
--#endif
--
--#ifndef _OSL_DIAGNOSE_H_
--#include <osl/diagnose.h>
--#endif
--#ifndef _OSL_FILE_H_
--#include <osl/file.h>
--#endif
--#ifndef _OSL_INTERLCK_H_
--#include <osl/interlck.h>
--#endif
--#ifndef _OSL_ISOCKET_H_
--#include <osl/isocket.h>
--#endif
--
--#ifndef _OSL_TLS_H_
--#include <osl/tls.h>
--#endif
--
--#include <string.h>
--#include <stdio.h>
--
--/*========================================================================
-- *
-- * Internals.
-- *
-- *======================================================================*/
--void SAL_CALL __rtl_sequence_release (sal_Sequence *value)
--{
-- if (value)
-- {
-- if (osl_decrementInterlockedCount (&(value->nRefCount)) == 0)
-- rtl_freeMemory (value);
-- }
--}
--
--void SAL_CALL __rtl_sequence_new (sal_Sequence **value, sal_Int32 length)
--{
-- if (value)
-- {
-- __rtl_sequence_release (*value);
--
-- *value = (sal_Sequence*)rtl_allocateMemory (
-- SAL_SEQUENCE_HEADER_SIZE + length);
--
-- (*value)->nRefCount = 1;
-- (*value)->nElements = 0;
-- }
--}
--
--void load_sequence (sal_Sequence **ppSequence, const sal_Char *name)
--{
-- oslFileError result;
-- rtl_uString *pName, *pPath;
--
-- if (ppSequence)
-- {
-- __rtl_sequence_release (*ppSequence);
-- *ppSequence = NULL;
-- }
--
-- pName = NULL;
-- rtl_uString_newFromAscii (&pName, name);
--
-- pPath = NULL;
-- result = osl_searchNormalizedPath (pName, NULL, &pPath);
-- if (result == osl_File_E_None)
-- {
-- oslFileHandle hFile;
--
-- result = osl_openFile (pPath, &hFile, osl_File_OpenFlag_Read);
-- if (result == osl_File_E_None)
-- {
-- sal_uInt64 nSize = 0, nRead = 0;
--
-- osl_setFilePos (hFile, osl_Pos_End, 0);
-- osl_getFilePos (hFile, &nSize);
-- osl_setFilePos (hFile, osl_Pos_Absolut, 0);
--
-- __rtl_sequence_new (ppSequence, (sal_Int32)nSize);
--
-- osl_readFile (hFile, (*ppSequence)->elements, nSize, &nRead);
-- (*ppSequence)->nElements = (sal_Int32)nRead;
-- }
-- osl_closeFile (hFile);
--
-- rtl_uString_release (pPath);
-- }
--
-- rtl_uString_release (pName);
--}
--
--/*========================================================================
-- *
-- * main.
-- *
-- *======================================================================*/
--int SAL_CALL main (int argc, char **argv)
--{
-- static const sal_Char p[] = "GET / HTTP/1.0\015\012\015\012";
-- oslSocketDescriptor *socket;
--
--
-- socket = osl_socket_createSocketLayer (osl_tls_getSocketMethods());
-- if (socket)
-- {
-- oslSocketAddr target;
-- oslSocketResult result;
-- oslSocketMsgFlag flag = osl_Socket_MsgNormal;
-- rtl_uString *dotted = NULL;
--
--
-- rtl_uString_newFromAscii (&dotted, argv[1]);
-- target = osl_createInetSocketAddr (dotted, 443);
-- rtl_uString_release (dotted);
--
-- result = osl_socket_create (
-- socket,
-- osl_Socket_FamilyInet,
-- osl_Socket_TypeStream,
-- osl_Socket_ProtocolIp);
-- OSL_ASSERT(result == osl_Socket_Ok);
--
-- result = osl_socket_connect (socket, target);
-- osl_destroySocketAddr (target);
-- OSL_ASSERT(result == osl_Socket_Ok);
--
-- result = osl_socket_connect_handshake (socket, target);
-- OSL_ASSERT(result == osl_Socket_Ok);
--
-- if (osl_socket_send (socket, p, strlen(p), flag) > 0)
-- {
-- sal_Char buffer[1024];
-- sal_Int32 k, n = sizeof(buffer);
--
-- while ((k = osl_socket_recv (socket, buffer, n, flag)) > 0)
-- fwrite (buffer, 1, k, stdout);
-- }
--
-- osl_socket_shutdown (socket, osl_Socket_DirReadWrite);
-- osl_socket_close (socket);
--
-- osl_socket_delete (socket);
-- osl_socket_deleteSocketLayer (socket);
-- }
--
--
-- socket = osl_socket_createSocketLayer (osl_tls_getSocketMethods());
-- if (socket)
-- {
-- oslSocketDescriptor *connection;
-- oslSocketResult result;
-- oslSocketAddr addr, from;
-- sal_Int32 option = 1;
-- sal_Sequence *data = NULL;
--
--
-- result = osl_socket_create (
-- socket,
-- osl_Socket_FamilyInet,
-- osl_Socket_TypeStream,
-- osl_Socket_ProtocolIp);
-- OSL_ASSERT(result == osl_Socket_Ok);
--
-- result = osl_socket_setOption (
-- socket,
-- osl_Socket_LevelSocket,
-- osl_Socket_OptionReuseAddr,
-- &option, sizeof(option));
-- OSL_ASSERT(result == osl_Socket_Ok);
--
-- addr = osl_createEmptySocketAddr (osl_Socket_FamilyInet);
-- osl_setInetPortOfSocketAddr (addr, 7777);
--
-- result = osl_socket_bind (socket, addr);
-- OSL_ASSERT(result == osl_Socket_Ok);
--
-- load_sequence (&data, "s_cert.der");
-- if (data && data->nElements)
-- {
-- result = osl_socket_setOption (
-- socket,
-- osl_Socket_LevelTLS,
-- osl_Socket_OptionCertificate,
-- data->elements, data->nElements);
-- OSL_ASSERT(result == osl_Socket_Ok);
-- }
--
-- load_sequence (&data, "s_pkey.der");
-- if (data && data->nElements)
-- {
-- result = osl_socket_setOption (
-- socket,
-- osl_Socket_LevelTLS,
-- osl_Socket_OptionPrivateKey,
-- data->elements, data->nElements);
-- OSL_ASSERT(result == osl_Socket_Ok);
-- }
-- __rtl_sequence_release (data);
--
-- result = osl_socket_listen (socket, 1);
-- OSL_ASSERT(result == osl_Socket_Ok);
--
-- connection = osl_socket_accept (socket, &from);
-- if (connection)
-- {
-- sal_Char buffer[1024];
-- sal_Int32 k, n = sizeof(buffer);
-- oslSocketMsgFlag flag = osl_Socket_MsgNormal;
--
-- result = osl_socket_accept_handshake (connection, from);
-- OSL_ASSERT(result == osl_Socket_Ok);
--
-- while ((k = osl_socket_recv (connection, buffer, n, flag)) > 0)
-- {
-- if (osl_socket_send (connection, buffer, k, flag) < 0)
-- break;
-- }
--
-- osl_socket_close (connection);
--
-- osl_socket_delete (connection);
-- osl_socket_deleteSocketLayer (connection);
-- }
--
-- osl_socket_delete (socket);
-- osl_socket_deleteSocketLayer (socket);
-- }
--
-- return 0;
--}
--
---- sal/workben/t_zip.c 26 Mar 2003 16:47:27 -0000 1.3
-+++ /dev/null 1 Jan 1970 00:00:00 -0000
-@@ -1,197 +0,0 @@
--/*************************************************************************
-- *
-- * OpenOffice.org - a multi-platform office productivity suite
-- *
-- * $RCSfile$
-- *
-- * $Revision$
-- *
-- * last change: $Author$ $Date$
-- *
-- * The Contents of this file are made available subject to
-- * the terms of GNU Lesser General Public License Version 2.1.
-- *
-- *
-- * GNU Lesser General Public License Version 2.1
-- * =============================================
-- * Copyright 2005 by Sun Microsystems, Inc.
-- * 901 San Antonio Road, Palo Alto, CA 94303, USA
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Lesser General Public
-- * License version 2.1, as published by the Free Software Foundation.
-- *
-- * This library 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 for more details.
-- *
-- * You should have received a copy of the GNU Lesser General Public
-- * License along with this library; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-- * MA 02111-1307 USA
-- *
-- ************************************************************************/
--
--#ifndef _SAL_TYPES_H_
--#include <sal/types.h>
--#endif
--#ifndef _RTL_USTRING_H_
--#include <rtl/ustring.h>
--#endif
--
--#ifndef _OSL_DIAGNOSE_H_
--#include <osl/diagnose.h>
--#endif
--#ifndef _OSL_THREAD_H_
--#include <osl/thread.h>
--#endif
--#ifndef _OSL_ZSOCKET_H_
--#include <osl/zsocket.h>
--#endif
--
--#include <stdio.h>
--
--/*========================================================================
-- *
-- * internals.
-- *
-- *======================================================================*/
--void SAL_CALL clientSocketReader (void *pData)
--{
-- oslSocketDescriptor *socket;
--
-- socket = (oslSocketDescriptor*)pData;
-- if (socket)
-- {
-- sal_Char buffer[128];
-- sal_Int32 k, n = sizeof(buffer);
-- oslSocketMsgFlag flag = osl_Socket_MsgNormal;
--
-- while ((k = osl_socket_recv (socket, buffer, n, flag)) > 0)
-- {
-- fwrite (buffer, 1, k, stdout);
-- fflush (stdout);
-- }
-- }
--}
--
--/*========================================================================
-- *
-- * main.
-- *
-- *======================================================================*/
--int SAL_CALL main (int argc, char **argv)
--{
-- oslSocketDescriptor *socket;
--
-- socket = osl_socket_createSocketLayer (osl_zlib_getSocketMethods());
-- if (socket)
-- {
-- oslSocketAddr addr = 0;
-- oslSocketResult result;
--
-- result = osl_socket_create (
-- socket,
-- osl_Socket_FamilyInet,
-- osl_Socket_TypeStream,
-- osl_Socket_ProtocolIp);
-- OSL_ASSERT(result == osl_Socket_Ok);
--
-- if (argc > 1)
-- {
-- rtl_uString *host = 0;
--
-- rtl_uString_newFromAscii (&host, argv[1]);
-- addr = osl_resolveHostname (host);
-- rtl_uString_release (host);
-- }
--
-- if (addr)
-- {
-- sal_Char buffer[128];
-- sal_Int32 k, n = sizeof(buffer);
-- oslSocketMsgFlag flag = osl_Socket_MsgNormal;
-- oslThread reader;
--
-- osl_setInetPortOfSocketAddr (addr, 7777);
--
-- result = osl_socket_connect (socket, addr);
-- OSL_ASSERT(result == osl_Socket_Ok);
--
-- result = osl_socket_connect_handshake (socket, addr);
-- osl_destroySocketAddr (addr);
-- OSL_ASSERT(result == osl_Socket_Ok);
--
-- reader = osl_createSuspendedThread (clientSocketReader, socket);
-- OSL_ASSERT(reader);
-- osl_resumeThread (reader);
--
-- while ((k = fread (buffer, 1, n, stdin)) > 0)
-- {
-- if (osl_socket_send (socket, buffer, k, flag) < 0)
-- break;
-- }
--
-- osl_socket_shutdown (socket, osl_Socket_DirReadWrite);
-- osl_socket_close (socket);
--
-- osl_joinWithThread (reader);
-- osl_destroyThread (reader);
-- }
-- else
-- {
-- oslSocketDescriptor *connection;
-- oslSocketAddr from = 0;
-- sal_Int32 option = 1;
--
-- addr = osl_createEmptySocketAddr (osl_Socket_FamilyInet);
-- osl_setInetPortOfSocketAddr (addr, 7777);
--
-- result = osl_socket_setOption (
-- socket,
-- osl_Socket_LevelSocket,
-- osl_Socket_OptionReuseAddr,
-- &option, sizeof(option));
-- OSL_ASSERT(result == osl_Socket_Ok);
--
-- result = osl_socket_bind (socket, addr);
-- osl_destroySocketAddr (addr);
-- OSL_ASSERT(result == osl_Socket_Ok);
--
-- result = osl_socket_listen (socket, 1);
-- OSL_ASSERT(result == osl_Socket_Ok);
--
-- connection = osl_socket_accept (socket, &from);
-- if (connection)
-- {
-- sal_Char buffer[64];
-- sal_Int32 k, n = sizeof(buffer);
-- oslSocketMsgFlag flag = osl_Socket_MsgNormal;
--
-- result = osl_socket_accept_handshake (connection, from);
-- osl_destroySocketAddr (from);
-- OSL_ASSERT(result == osl_Socket_Ok);
--
-- while ((k = osl_socket_recv (connection, buffer, n, flag)) > 0)
-- {
-- if (osl_socket_send (connection, buffer, k, flag) < 0)
-- break;
-- }
--
-- osl_socket_close (connection);
--
-- osl_socket_delete (connection);
-- osl_socket_deleteSocketLayer (connection);
-- }
--
-- osl_socket_close (socket);
-- }
--
-- osl_socket_delete (socket);
-- osl_socket_deleteSocketLayer (socket);
-- }
--
-- return 0;
--}
--
---- sal/workben/test.cxx 1 Feb 2001 12:31:41 -0000 1.2
-+++ /dev/null 1 Jan 1970 00:00:00 -0000
-@@ -1,71 +0,0 @@
--/*************************************************************************
-- *
-- * OpenOffice.org - a multi-platform office productivity suite
-- *
-- * $RCSfile$
-- *
-- * $Revision$
-- *
-- * last change: $Author$ $Date$
-- *
-- * The Contents of this file are made available subject to
-- * the terms of GNU Lesser General Public License Version 2.1.
-- *
-- *
-- * GNU Lesser General Public License Version 2.1
-- * =============================================
-- * Copyright 2005 by Sun Microsystems, Inc.
-- * 901 San Antonio Road, Palo Alto, CA 94303, USA
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Lesser General Public
-- * License version 2.1, as published by the Free Software Foundation.
-- *
-- * This library 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 for more details.
-- *
-- * You should have received a copy of the GNU Lesser General Public
-- * License along with this library; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-- * MA 02111-1307 USA
-- *
-- ************************************************************************/
--
--#include <stdio.h>
--
--#if (defined UNX) || (defined OS2)
--int main( int argc, char * argv[] )
--#else
--int _cdecl main( int argc, char * argv[] )
--#endif
--{
-- void test_int64();
-- test_int64();
--
-- void test_profile(void);
-- test_profile();
--
-- void test_OString();
-- test_OString();
--
--/* void test_OWString(); */
--/* test_OWString(); */
--
--/* void test_OStringBuffer(); */
--/* test_OStringBuffer(); */
--
--/* void test_OWStringBuffer(); */
--/* test_OWStringBuffer(); */
--
--/* void test_OString2OWStringAndViceVersa(); */
--/* test_OString2OWStringAndViceVersa(); */
--
-- void test_uuid();
-- test_uuid();
--
-- return(0);
--}
--
--
diff --git a/patches/64bit/solaris64-solenv.diff b/patches/64bit/solaris64-solenv.diff
deleted file mode 100644
index 369619ee6..000000000
--- a/patches/64bit/solaris64-solenv.diff
+++ /dev/null
@@ -1,574 +0,0 @@
---- solenv/inc/_tg_shl.mk 10 Dec 2004 18:03:08 -0000 1.86
-+++ solenv/inc/_tg_shl.mk 18 Jan 2005 10:04:59 -0000 1.77.56.4
-@@ -332,6 +332,30 @@ $(SHL1TARGETN) : \
- .ENDIF # "$(linkinc)"==""
- .ENDIF # "$(GUI)" == "WNT"
- .IF "$(GUI)"=="UNX"
-+.IF "$(UPDATER)"=="YES"
-+.IF "$(OS)"=="SOLARIS"
-+.IF "$(COM)"=="GCC"
-+ $(CC) -c -fPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL1TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ELSE
-+.IF "$(CPU)"=="S64B"
-+ $(CC) -c -KPIC -xarch=v9 -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL1TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ELSE
-+ $(CC) -c -KPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL1TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.ENDIF
-+.ENDIF
-+.IF "$(OS)"=="MACOSX"
-+ $(CC) -c -dynamic -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL1TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.IF "$(OS)"=="LINUX" || "$(OS)"=="NETBSD" || "$(OS)"=="FREEBSD"
-+ $(CC) -c -fPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL1TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.IF "$(OS)"=="IRIX"
-+ $(CC) -c -fpic -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL1TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+ @+if ( ! -e $(SOLARLIBDIR) ) mkdir $(SOLARLIBDIR)
-+ @+if ( ! -e $(SOLARLIBDIR)/so_locations ) touch $(SOLARLIBDIR)/so_locations
-+.ENDIF # "$(OS)"=="IRIX"
-+.ENDIF
- .IF "$(OS)"=="MACOSX"
- @+-$(RM) $(MISC)$/$(@:b).list
- @+-$(RM) $(MISC)$/$(@:b).cmd
-@@ -732,6 +756,30 @@ $(SHL2TARGETN) : \
- .ENDIF # "$(linkinc)"==""
- .ENDIF # "$(GUI)" == "WNT"
- .IF "$(GUI)"=="UNX"
-+.IF "$(UPDATER)"=="YES"
-+.IF "$(OS)"=="SOLARIS"
-+.IF "$(COM)"=="GCC"
-+ $(CC) -c -fPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL2TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ELSE
-+.IF "$(CPU)"=="S64B"
-+ $(CC) -c -KPIC -xarch=v9 -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL2TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ELSE
-+ $(CC) -c -KPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL2TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.ENDIF
-+.ENDIF
-+.IF "$(OS)"=="MACOSX"
-+ $(CC) -c -dynamic -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL2TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.IF "$(OS)"=="LINUX" || "$(OS)"=="NETBSD" || "$(OS)"=="FREEBSD"
-+ $(CC) -c -fPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL2TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.IF "$(OS)"=="IRIX"
-+ $(CC) -c -fpic -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL2TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+ @+if ( ! -e $(SOLARLIBDIR) ) mkdir $(SOLARLIBDIR)
-+ @+if ( ! -e $(SOLARLIBDIR)/so_locations ) touch $(SOLARLIBDIR)/so_locations
-+.ENDIF # "$(OS)"=="IRIX"
-+.ENDIF
- .IF "$(OS)"=="MACOSX"
- @+-$(RM) $(MISC)$/$(@:b).list
- @+-$(RM) $(MISC)$/$(@:b).cmd
-@@ -1132,6 +1180,30 @@ $(SHL3TARGETN) : \
- .ENDIF # "$(linkinc)"==""
- .ENDIF # "$(GUI)" == "WNT"
- .IF "$(GUI)"=="UNX"
-+.IF "$(UPDATER)"=="YES"
-+.IF "$(OS)"=="SOLARIS"
-+.IF "$(COM)"=="GCC"
-+ $(CC) -c -fPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL3TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ELSE
-+.IF "$(CPU)"=="S64B"
-+ $(CC) -c -KPIC -xarch=v9 -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL3TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ELSE
-+ $(CC) -c -KPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL3TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.ENDIF
-+.ENDIF
-+.IF "$(OS)"=="MACOSX"
-+ $(CC) -c -dynamic -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL3TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.IF "$(OS)"=="LINUX" || "$(OS)"=="NETBSD" || "$(OS)"=="FREEBSD"
-+ $(CC) -c -fPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL3TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.IF "$(OS)"=="IRIX"
-+ $(CC) -c -fpic -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL3TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+ @+if ( ! -e $(SOLARLIBDIR) ) mkdir $(SOLARLIBDIR)
-+ @+if ( ! -e $(SOLARLIBDIR)/so_locations ) touch $(SOLARLIBDIR)/so_locations
-+.ENDIF # "$(OS)"=="IRIX"
-+.ENDIF
- .IF "$(OS)"=="MACOSX"
- @+-$(RM) $(MISC)$/$(@:b).list
- @+-$(RM) $(MISC)$/$(@:b).cmd
-@@ -1532,6 +1604,30 @@ $(SHL4TARGETN) : \
- .ENDIF # "$(linkinc)"==""
- .ENDIF # "$(GUI)" == "WNT"
- .IF "$(GUI)"=="UNX"
-+.IF "$(UPDATER)"=="YES"
-+.IF "$(OS)"=="SOLARIS"
-+.IF "$(COM)"=="GCC"
-+ $(CC) -c -fPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL4TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ELSE
-+.IF "$(CPU)"=="S64B"
-+ $(CC) -c -KPIC -xarch=v9 -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL4TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ELSE
-+ $(CC) -c -KPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL4TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.ENDIF
-+.ENDIF
-+.IF "$(OS)"=="MACOSX"
-+ $(CC) -c -dynamic -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL4TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.IF "$(OS)"=="LINUX" || "$(OS)"=="NETBSD" || "$(OS)"=="FREEBSD"
-+ $(CC) -c -fPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL4TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.IF "$(OS)"=="IRIX"
-+ $(CC) -c -fpic -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL4TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+ @+if ( ! -e $(SOLARLIBDIR) ) mkdir $(SOLARLIBDIR)
-+ @+if ( ! -e $(SOLARLIBDIR)/so_locations ) touch $(SOLARLIBDIR)/so_locations
-+.ENDIF # "$(OS)"=="IRIX"
-+.ENDIF
- .IF "$(OS)"=="MACOSX"
- @+-$(RM) $(MISC)$/$(@:b).list
- @+-$(RM) $(MISC)$/$(@:b).cmd
-@@ -1932,6 +2028,30 @@ $(SHL5TARGETN) : \
- .ENDIF # "$(linkinc)"==""
- .ENDIF # "$(GUI)" == "WNT"
- .IF "$(GUI)"=="UNX"
-+.IF "$(UPDATER)"=="YES"
-+.IF "$(OS)"=="SOLARIS"
-+.IF "$(COM)"=="GCC"
-+ $(CC) -c -fPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL5TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ELSE
-+.IF "$(CPU)"=="S64B"
-+ $(CC) -c -KPIC -xarch=v9 -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL5TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ELSE
-+ $(CC) -c -KPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL5TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.ENDIF
-+.ENDIF
-+.IF "$(OS)"=="MACOSX"
-+ $(CC) -c -dynamic -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL5TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.IF "$(OS)"=="LINUX" || "$(OS)"=="NETBSD" || "$(OS)"=="FREEBSD"
-+ $(CC) -c -fPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL5TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.IF "$(OS)"=="IRIX"
-+ $(CC) -c -fpic -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL5TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+ @+if ( ! -e $(SOLARLIBDIR) ) mkdir $(SOLARLIBDIR)
-+ @+if ( ! -e $(SOLARLIBDIR)/so_locations ) touch $(SOLARLIBDIR)/so_locations
-+.ENDIF # "$(OS)"=="IRIX"
-+.ENDIF
- .IF "$(OS)"=="MACOSX"
- @+-$(RM) $(MISC)$/$(@:b).list
- @+-$(RM) $(MISC)$/$(@:b).cmd
-@@ -2332,6 +2452,30 @@ $(SHL6TARGETN) : \
- .ENDIF # "$(linkinc)"==""
- .ENDIF # "$(GUI)" == "WNT"
- .IF "$(GUI)"=="UNX"
-+.IF "$(UPDATER)"=="YES"
-+.IF "$(OS)"=="SOLARIS"
-+.IF "$(COM)"=="GCC"
-+ $(CC) -c -fPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL6TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ELSE
-+.IF "$(CPU)"=="S64B"
-+ $(CC) -c -KPIC -xarch=v9 -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL6TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ELSE
-+ $(CC) -c -KPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL6TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.ENDIF
-+.ENDIF
-+.IF "$(OS)"=="MACOSX"
-+ $(CC) -c -dynamic -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL6TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.IF "$(OS)"=="LINUX" || "$(OS)"=="NETBSD" || "$(OS)"=="FREEBSD"
-+ $(CC) -c -fPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL6TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.IF "$(OS)"=="IRIX"
-+ $(CC) -c -fpic -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL6TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+ @+if ( ! -e $(SOLARLIBDIR) ) mkdir $(SOLARLIBDIR)
-+ @+if ( ! -e $(SOLARLIBDIR)/so_locations ) touch $(SOLARLIBDIR)/so_locations
-+.ENDIF # "$(OS)"=="IRIX"
-+.ENDIF
- .IF "$(OS)"=="MACOSX"
- @+-$(RM) $(MISC)$/$(@:b).list
- @+-$(RM) $(MISC)$/$(@:b).cmd
-@@ -2732,6 +2876,30 @@ $(SHL7TARGETN) : \
- .ENDIF # "$(linkinc)"==""
- .ENDIF # "$(GUI)" == "WNT"
- .IF "$(GUI)"=="UNX"
-+.IF "$(UPDATER)"=="YES"
-+.IF "$(OS)"=="SOLARIS"
-+.IF "$(COM)"=="GCC"
-+ $(CC) -c -fPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL7TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ELSE
-+.IF "$(CPU)"=="S64B"
-+ $(CC) -c -KPIC -xarch=v9 -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL7TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ELSE
-+ $(CC) -c -KPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL7TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.ENDIF
-+.ENDIF
-+.IF "$(OS)"=="MACOSX"
-+ $(CC) -c -dynamic -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL7TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.IF "$(OS)"=="LINUX" || "$(OS)"=="NETBSD" || "$(OS)"=="FREEBSD"
-+ $(CC) -c -fPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL7TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.IF "$(OS)"=="IRIX"
-+ $(CC) -c -fpic -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL7TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+ @+if ( ! -e $(SOLARLIBDIR) ) mkdir $(SOLARLIBDIR)
-+ @+if ( ! -e $(SOLARLIBDIR)/so_locations ) touch $(SOLARLIBDIR)/so_locations
-+.ENDIF # "$(OS)"=="IRIX"
-+.ENDIF
- .IF "$(OS)"=="MACOSX"
- @+-$(RM) $(MISC)$/$(@:b).list
- @+-$(RM) $(MISC)$/$(@:b).cmd
-@@ -3132,6 +3300,30 @@ $(SHL8TARGETN) : \
- .ENDIF # "$(linkinc)"==""
- .ENDIF # "$(GUI)" == "WNT"
- .IF "$(GUI)"=="UNX"
-+.IF "$(UPDATER)"=="YES"
-+.IF "$(OS)"=="SOLARIS"
-+.IF "$(COM)"=="GCC"
-+ $(CC) -c -fPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL8TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ELSE
-+.IF "$(CPU)"=="S64B"
-+ $(CC) -c -KPIC -xarch=v9 -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL8TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ELSE
-+ $(CC) -c -KPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL8TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.ENDIF
-+.ENDIF
-+.IF "$(OS)"=="MACOSX"
-+ $(CC) -c -dynamic -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL8TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.IF "$(OS)"=="LINUX" || "$(OS)"=="NETBSD" || "$(OS)"=="FREEBSD"
-+ $(CC) -c -fPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL8TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.IF "$(OS)"=="IRIX"
-+ $(CC) -c -fpic -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL8TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+ @+if ( ! -e $(SOLARLIBDIR) ) mkdir $(SOLARLIBDIR)
-+ @+if ( ! -e $(SOLARLIBDIR)/so_locations ) touch $(SOLARLIBDIR)/so_locations
-+.ENDIF # "$(OS)"=="IRIX"
-+.ENDIF
- .IF "$(OS)"=="MACOSX"
- @+-$(RM) $(MISC)$/$(@:b).list
- @+-$(RM) $(MISC)$/$(@:b).cmd
-@@ -3532,6 +3724,30 @@ $(SHL9TARGETN) : \
- .ENDIF # "$(linkinc)"==""
- .ENDIF # "$(GUI)" == "WNT"
- .IF "$(GUI)"=="UNX"
-+.IF "$(UPDATER)"=="YES"
-+.IF "$(OS)"=="SOLARIS"
-+.IF "$(COM)"=="GCC"
-+ $(CC) -c -fPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL9TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ELSE
-+.IF "$(CPU)"=="S64B"
-+ $(CC) -c -KPIC -xarch=v9 -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL9TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ELSE
-+ $(CC) -c -KPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL9TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.ENDIF
-+.ENDIF
-+.IF "$(OS)"=="MACOSX"
-+ $(CC) -c -dynamic -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL9TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.IF "$(OS)"=="LINUX" || "$(OS)"=="NETBSD" || "$(OS)"=="FREEBSD"
-+ $(CC) -c -fPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL9TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.IF "$(OS)"=="IRIX"
-+ $(CC) -c -fpic -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL9TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+ @+if ( ! -e $(SOLARLIBDIR) ) mkdir $(SOLARLIBDIR)
-+ @+if ( ! -e $(SOLARLIBDIR)/so_locations ) touch $(SOLARLIBDIR)/so_locations
-+.ENDIF # "$(OS)"=="IRIX"
-+.ENDIF
- .IF "$(OS)"=="MACOSX"
- @+-$(RM) $(MISC)$/$(@:b).list
- @+-$(RM) $(MISC)$/$(@:b).cmd
-@@ -3932,6 +4148,30 @@ $(SHL10TARGETN) : \
- .ENDIF # "$(linkinc)"==""
- .ENDIF # "$(GUI)" == "WNT"
- .IF "$(GUI)"=="UNX"
-+.IF "$(UPDATER)"=="YES"
-+.IF "$(OS)"=="SOLARIS"
-+.IF "$(COM)"=="GCC"
-+ $(CC) -c -fPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL10TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ELSE
-+.IF "$(CPU)"=="S64B"
-+ $(CC) -c -KPIC -xarch=v9 -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL10TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ELSE
-+ $(CC) -c -KPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL10TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.ENDIF
-+.ENDIF
-+.IF "$(OS)"=="MACOSX"
-+ $(CC) -c -dynamic -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL10TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.IF "$(OS)"=="LINUX" || "$(OS)"=="NETBSD" || "$(OS)"=="FREEBSD"
-+ $(CC) -c -fPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL10TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.IF "$(OS)"=="IRIX"
-+ $(CC) -c -fpic -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL10TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+ @+if ( ! -e $(SOLARLIBDIR) ) mkdir $(SOLARLIBDIR)
-+ @+if ( ! -e $(SOLARLIBDIR)/so_locations ) touch $(SOLARLIBDIR)/so_locations
-+.ENDIF # "$(OS)"=="IRIX"
-+.ENDIF
- .IF "$(OS)"=="MACOSX"
- @+-$(RM) $(MISC)$/$(@:b).list
- @+-$(RM) $(MISC)$/$(@:b).cmd
---- solenv/inc/tg_shl.mk 10 Dec 2004 18:04:24 -0000 1.88
-+++ solenv/inc/tg_shl.mk 18 Jan 2005 10:03:54 -0000 1.79.56.4
-@@ -432,6 +432,30 @@ $(SHL$(TNR)TARGETN) : \
- .ENDIF # "$(linkinc)"==""
- .ENDIF # "$(GUI)" == "WNT"
- .IF "$(GUI)"=="UNX"
-+.IF "$(UPDATER)"=="YES"
-+.IF "$(OS)"=="SOLARIS"
-+.IF "$(COM)"=="GCC"
-+ $(CC) -c -fPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL$(TNR)TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ELSE
-+.IF "$(CPU)"=="S64B"
-+ $(CC) -c -KPIC -xarch=v9 -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL$(TNR)TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ELSE
-+ $(CC) -c -KPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL$(TNR)TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.ENDIF
-+.ENDIF
-+.IF "$(OS)"=="MACOSX"
-+ $(CC) -c -dynamic -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL$(TNR)TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.IF "$(OS)"=="LINUX" || "$(OS)"=="NETBSD" || "$(OS)"=="FREEBSD"
-+ $(CC) -c -fPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL$(TNR)TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+.ENDIF
-+.IF "$(OS)"=="IRIX"
-+ $(CC) -c -fpic -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL$(TNR)TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
-+ @+if ( ! -e $(SOLARLIBDIR) ) mkdir $(SOLARLIBDIR)
-+ @+if ( ! -e $(SOLARLIBDIR)/so_locations ) touch $(SOLARLIBDIR)/so_locations
-+.ENDIF # "$(OS)"=="IRIX"
-+.ENDIF
- .IF "$(OS)"=="MACOSX"
- @+-$(RM) $(MISC)$/$(@:b).list
- @+-$(RM) $(MISC)$/$(@:b).cmd
---- solenv/inc/unx.mk 18 Jan 2005 14:50:42 -0000 1.27
-+++ solenv/inc/unx.mk 9 Mar 2005 22:56:44 -0000 1.23.96.5
-@@ -96,6 +96,10 @@ OLE2DEF=
- .INCLUDE : unxsols4.mk
- .ENDIF
-
-+.IF "$(OS)$(CPU)$(COMEX)" == "SOLARISS64B1"
-+.INCLUDE : unxsols64b1.mk
-+.ENDIF
-+
- .IF "$(OS)$(CPU)$(COMEX)" == "SOLARISI4"
- .INCLUDE : unxsoli4.mk
- .ENDIF
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ solenv/inc/unxsols64b1.mk 26 Aug 2004 09:48:36 -0000 1.1.2.2
-@@ -0,0 +1,213 @@
-+#*************************************************************************
-+#
-+# $RCSfile$
-+#
-+# $Revision$
-+#
-+# last change: $Author$ $Date$
-+#
-+# The Contents of this file are made available subject to the terms of
-+# either of the following licenses
-+#
-+# - GNU Lesser General Public License Version 2.1
-+# - Sun Industry Standards Source License Version 1.1
-+#
-+# Sun Microsystems Inc., October, 2000
-+#
-+# GNU Lesser General Public License Version 2.1
-+# =============================================
-+# Copyright 2000 by Sun Microsystems, Inc.
-+# 901 San Antonio Road, Palo Alto, CA 94303, USA
-+#
-+# This library is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU Lesser General Public
-+# License version 2.1, as published by the Free Software Foundation.
-+#
-+# This library 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 for more details.
-+#
-+# You should have received a copy of the GNU Lesser General Public
-+# License along with this library; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+# MA 02111-1307 USA
-+#
-+#
-+# Sun Industry Standards Source License Version 1.1
-+# =================================================
-+# The contents of this file are subject to the Sun Industry Standards
-+# Source License Version 1.1 (the "License"); You may not use this file
-+# except in compliance with the License. You may obtain a copy of the
-+# License at http://www.openoffice.org/license.html.
-+#
-+# Software provided under this License is provided on an "AS IS" basis,
-+# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+# See the License for the specific provisions governing your rights and
-+# obligations concerning the Software.
-+#
-+# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+#
-+# Copyright: 2000 by Sun Microsystems, Inc.
-+#
-+# All Rights Reserved.
-+#
-+# Contributor(s): _______________________________________
-+#
-+#
-+#
-+#*************************************************************************
-+
-+
-+ASM=/usr/ccs/bin/as
-+AFLAGS=-P -xarch=v9
-+
-+
-+CDEFS+=-D_PTHREADS -DSYSV -DSUN -DSUN4 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DSTLPORT_VERSION=400
-+
-+SOLAR_JAVA*=TRUE
-+.IF "$(SOLAR_JAVA)"!=""
-+JAVADEF=-DSOLAR_JAVA
-+JAVAFLAGSDEBUG=-g
-+.IF "$(debug)"==""
-+JAVA_RUNTIME=-ljava
-+.ELSE
-+JAVA_RUNTIME=-ljava_g
-+.ENDIF
-+.ENDIF
-+
-+CXX*=CC
-+CC*=cc
-+
-+CFLAGS=$(PREENVCFLAGS) -c -temp=/tmp $(INCLUDE) -xarch=v9
-+CFLAGSCC=-xCC
-+CFLAGSCXX=-features=no%altspell -library=no%Cstd -xport64
-+
-+# flags to enable build with symbols; required for crashdump feature
-+CFLAGSENABLESYMBOLS=-g0 -xs
-+
-+CFLAGSEXCEPTIONS=
-+CFLAGS_NO_EXCEPTIONS=-noex
-+
-+CFLAGSOBJGUIST=-KPIC
-+CFLAGSOBJCUIST=-KPIC
-+CFLAGSOBJGUIMT=-KPIC -mt
-+CFLAGSOBJCUIMT=-KPIC -mt
-+CFLAGSSLOGUIMT=-KPIC -mt
-+CFLAGSSLOCUIMT=-KPIC -mt
-+CFLAGSPROF=-xpg
-+CFLAGSDEBUG=-g
-+CFLAGSDBGUTIL=
-+CFLAGSOPT=-xO3 -xspace
-+CFLAGSNOOPT=
-+CFLAGSOUTOBJ=-o
-+
-+# Enable all warnings
-+CFLAGSWALL=+w2
-+# Set default warn level
-+CFLAGSDFLTWARN=
-+
-+STDOBJVCL=$(L)$/salmain.o
-+
-+THREADLIB=
-+.IF "$(PURIFY)"!=""
-+LINK=/usr/local/purify-4.2-solaris2/purify CC
-+.ELSE
-+LINK=CC
-+.ENDIF
-+
-+# -z combreloc combines multiple relocation sections. Reduces overhead on startup
-+# -norunpath prevents the compiler from recording his own libs in the runpath
-+LINKFLAGSRUNPATH*=-R\''$$ORIGIN'\'
-+LINKFLAGS=-w -mt -xarch=v9 -z combreloc -PIC -temp=/tmp $(LINKFLAGSRUNPATH) -norunpath -library=no%Cstd
-+
-+# -z text force fatal error if non PIC code is linked into shared library. Such code
-+# would be expensive on startup
-+CHECKFORPIC =-z text
-+LINKFLAGSSHLGUI=$(CHECKFORPIC) -G
-+LINKFLAGSSHLCUI=$(CHECKFORPIC) -G
-+
-+# switches for dynamic and static linking
-+LINKFLAGSDEFS*= -z defs
-+STATIC = -Bstatic
-+DIRECT = -Bdirect $(LINKFLAGSDEFS)
-+DYNAMIC = -Bdynamic
-+
-+LINKFLAGSAPPGUI+=$(DIRECT)
-+LINKFLAGSAPPCUI+=$(DIRECT)
-+LINKFLAGSSHLGUI+=$(DIRECT)
-+LINKFLAGSSHLCUI+=$(DIRECT)
-+
-+LINKFLAGSTACK=
-+LINKFLAGSPROF=-L$(COMPATH)/WS6U1/lib/libp -xpg -z allextract
-+LINKFLAGSDEBUG=
-+LINKFLAGSOPT=
-+LINKVERSIONMAPFLAG=-M
-+
-+APPLINKSTATIC=$(STATIC)
-+APPLINKSHARED=$(DIRECT)
-+APP_LINKTYPE=
-+
-+# reihenfolge der libs NICHT egal!
-+STDOBJGUI=
-+.IF "DBG_UTIL" != ""
-+STDSLOGUI=#-lpthread
-+.ELSE
-+STDSLOGUI=
-+.ENDIF
-+STDOBJCUI=
-+STDSLOCUI=
-+
-+STDLIBGUIST=$(DYNAMIC) -lm
-+STDLIBCUIST=$(DYNAMIC) -lm
-+STDLIBGUIMT=$(DYNAMIC) -lpthread -lm
-+STDLIBCUIMT=$(DYNAMIC) -lpthread -lm
-+STDSHLGUIST=$(DYNAMIC) -lCrun -lm -lc
-+STDSHLCUIST=$(DYNAMIC) -lCrun -lm -lc
-+STDSHLGUIMT=$(DYNAMIC) -lpthread -lCrun -lm -lc
-+STDSHLCUIMT=$(DYNAMIC) -lpthread -lCrun -lm -lc
-+
-+STDLIBGUIST+=-lX11
-+STDLIBGUIMT+=-lX11
-+STDSHLGUIST+=-lX11
-+STDSHLGUIMT+=-lX11
-+
-+# @@@ interposer needed for -Bdirect @@@
-+# LIBSALCPPRT*=-z allextract -lsalcpprt -z defaultextract
-+LIBSALCPPRT=
-+
-+LIBSTLPORT=$(DYNAMIC) -lstlport_sunpro
-+LIBSTLPORTST=$(STATIC) -lstlport_sunpro $(DYNAMIC)
-+
-+
-+LIBMGR=CC
-+LIBFLAGS=-xar -o
-+
-+IMPLIB=
-+IMPLIBFLAGS=
-+
-+MAPSYM=
-+MAPSYMFLAGS=
-+
-+RC=irc
-+RCFLAGS=-fo$@ $(RCFILES)
-+RCLINK=
-+RCLINKFLAGS=
-+RCSETVERSION=
-+
-+DLLPOSTFIX=ss64b
-+
-+DLLPRE=lib
-+DLLPOST=.so
-+
-+LDUMP=cppfilt /b /n /o /p
-+
-+CFLAGSCXXSLO +=
-+CFLAGSCXXOBJ +=
-+
-+LINKFLAGSAPPGUI+=
-+LINKFLAGSSHLGUI+=
-+LINKFLAGSAPPCUI+=
-+LINKFLAGSSHLCUI+=
diff --git a/patches/64bit/solaris64-stlport.diff b/patches/64bit/solaris64-stlport.diff
deleted file mode 100644
index c866e0e49..000000000
--- a/patches/64bit/solaris64-stlport.diff
+++ /dev/null
@@ -1,23 +0,0 @@
---- stlport/makefile.mk 24 Feb 2005 14:47:13 -0000 1.29
-+++ stlport/makefile.mk 9 Mar 2005 23:04:45 -0000 1.26.18.4
-@@ -159,14 +159,19 @@ BUILD_FLAGS=-f vc7.mak
-
- .IF "$(COM)"=="C52"
- BUILD_ACTION=make
-+.IF "$(CPU)"=="S64B"
-+TARFILE_NAME=STLport-4.5.3
-+PATCH_FILE_NAME=STLport-4.5.3.patch
-+BUILD_FLAGS=-f sunpro-64.mak
-+.ELSE
- .IF "$(CCNUMVER)">="00050005"
- BUILD_FLAGS=-f sunpro8.mak
- .ELSE
- BUILD_FLAGS=-f sunpro6.mak
- .ENDIF # "$(CCNUMVER)">="00050005"
--
- OUT2INC= \
- stlport$/SC5$/*.SUNWCCh
-+.ENDIF # "$(CPU)"=="S64B"
- .ENDIF
-
- .IF "$(OS)"=="IRIX"
diff --git a/patches/64bit/trivial-basic.diff b/patches/64bit/trivial-basic.diff
deleted file mode 100644
index 81098d339..000000000
--- a/patches/64bit/trivial-basic.diff
+++ /dev/null
@@ -1,64 +0,0 @@
---- basic/source/app/app.cxx 20 Sep 2004 12:28:40 -0000 1.58
-+++ basic/source/app/app.cxx 12 Oct 2004 18:13:04 -0000 1.54.4.2
-@@ -1553,9 +1553,9 @@ long BasicFrame::Command( short nID, BOO
- }
-
-
-- long nTitleHeight;
-+ sal_Int32 nTitleHeight;
- {
-- long nDummy1, nDummy2, nDummy3;
-+ sal_Int32 nDummy1, nDummy2, nDummy3;
- GetBorder( nDummy1, nTitleHeight, nDummy2, nDummy3 );
- }
-
-@@ -1577,9 +1577,9 @@ long BasicFrame::Command( short nID, BOO
- }
-
-
-- long nTitleHeight;
-+ sal_Int32 nTitleHeight;
- {
-- long nDummy1, nDummy2, nDummy3;
-+ sal_Int32 nDummy1, nDummy2, nDummy3;
- GetBorder( nDummy1, nTitleHeight, nDummy2, nDummy3 );
- }
-
-@@ -1605,9 +1605,9 @@ long BasicFrame::Command( short nID, BOO
- }
-
-
-- long nTitleHeight;
-+ sal_Int32 nTitleHeight;
- {
-- long nDummy1, nDummy2, nDummy3;
-+ sal_Int32 nDummy1, nDummy2, nDummy3;
- GetBorder( nDummy1, nTitleHeight, nDummy2, nDummy3 );
- }
-
---- basic/source/app/appwin.cxx 17 Jun 2004 11:45:56 -0000 1.5
-+++ basic/source/app/appwin.cxx 21 Jul 2004 18:22:07 -0000 1.5.4.1
-@@ -154,9 +154,9 @@ void AppWin::Maximize()
- pFrame->nMaximizedWindows++;
- nWinState = TT_WIN_STATE_MAX;
- }
-- long nTitleHeight;
-+ sal_Int32 nTitleHeight;
- {
-- long nDummy1, nDummy2, nDummy3;
-+ sal_Int32 nDummy1, nDummy2, nDummy3;
- pFrame->GetBorder( nDummy1, nTitleHeight, nDummy2, nDummy3 );
- }
-
-@@ -198,9 +198,9 @@ void AppWin::Cascade( USHORT nNr )
- nNr %= 10;
- nNr++;
-
-- long nTitleHeight;
-+ sal_Int32 nTitleHeight;
- {
-- long nDummy1, nDummy2, nDummy3;
-+ sal_Int32 nDummy1, nDummy2, nDummy3;
- pFrame->GetBorder( nDummy1, nTitleHeight, nDummy2, nDummy3 );
- }
-
diff --git a/patches/64bit/trivial-chart2.diff b/patches/64bit/trivial-chart2.diff
deleted file mode 100644
index 74857c421..000000000
--- a/patches/64bit/trivial-chart2.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- chart2/source/controller/dialogs/dlg_ChartType.cxx 8 Sep 2004 17:01:22 -0000 1.8
-+++ chart2/source/controller/dialogs/dlg_ChartType.cxx 21 Jan 2005 14:53:23 -0000 1.8.10.1
-@@ -1258,7 +1258,7 @@ void SchDiagramTypeDlg::SwitchNumLines(
- }
- }
-
--void SchDiagramTypeDlg::SetMaximumNumberOfLines( long nMaxLines )
-+void SchDiagramTypeDlg::SetMaximumNumberOfLines( sal_Int32 nMaxLines )
- {
- aMtrFldNumLines.SetLast( nMaxLines );
- aMtrFldNumLines.SetMax( nMaxLines );
diff --git a/patches/64bit/trivial-dbaccess.diff b/patches/64bit/trivial-dbaccess.diff
deleted file mode 100644
index f9bf91f48..000000000
--- a/patches/64bit/trivial-dbaccess.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- dbaccess/source/ui/tabledesign/TEditControl.hxx 19 Mar 2003 17:53:02 -0000 1.13
-+++ dbaccess/source/ui/tabledesign/TEditControl.hxx 21 Jan 2005 15:02:50 -0000 1.13.212.1
-@@ -132,7 +132,7 @@ namespace dbaui
- OTableEditorCtrl* m_pOwner;
-
- public:
-- ClipboardInvalidator(ULONG nTimeout,OTableEditorCtrl*);
-+ ClipboardInvalidator(sal_uInt32 nTimeout,OTableEditorCtrl*);
- ~ClipboardInvalidator();
-
- protected:
-@@ -160,7 +160,7 @@ namespace dbaui
- virtual void Undo();
- virtual void Redo();
- virtual String GetCellText(long nRow, USHORT nColId) const;
-- virtual ULONG GetTotalCellWidth(long nRow, USHORT nColId);
-+ virtual sal_uInt32 GetTotalCellWidth(long nRow, USHORT nColId);
-
- virtual void CopyRows();
- virtual void InsertRows( long nRow );
diff --git a/patches/64bit/trivial-extensions.diff b/patches/64bit/trivial-extensions.diff
deleted file mode 100644
index bca3e46e6..000000000
--- a/patches/64bit/trivial-extensions.diff
+++ /dev/null
@@ -1,44 +0,0 @@
---- extensions/source/bibliography/datman.hxx 5 Jan 2005 12:41:49 -0000 1.12
-+++ extensions/source/bibliography/datman.hxx 17 Jan 2005 21:46:44 -0000 1.11.6.2
-@@ -232,7 +232,7 @@ public:
- void saveCtrModel(const ::rtl::OUString& rName,
- const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel > & rCtrModel);
-
-- sal_Bool moveRelative(long nMove);
-+ sal_Bool moveRelative(sal_Int32 nMove);
-
- void CreateMappingDialog(Window* pParent);
- ::rtl::OUString CreateDBChangeDialog(Window* pParent);
---- extensions/source/propctrlr/browserlistbox.hxx 16 Nov 2004 12:01:00 -0000 1.6
-+++ extensions/source/propctrlr/browserlistbox.hxx 17 Jan 2005 22:02:50 -0000 1.5.72.2
-@@ -122,7 +122,7 @@ namespace pcr
- void UpdatePlayGround();
- void UpdateVScroll();
- void ShowEntry(sal_uInt16 nPos);
-- void MoveThumbTo(long nNewThumbPos);
-+ void MoveThumbTo(sal_Int32 nNewThumbPos);
- void Resize();
-
-
---- extensions/source/svg/svgprinter.cxx 3 May 2004 13:53:06 -0000 1.5
-+++ extensions/source/svg/svgprinter.cxx 21 Jan 2005 16:23:07 -0000 1.5.48.1
-@@ -106,7 +106,7 @@ protected:
- virtual void _ExportAutoStyles() {}
- virtual void _ExportContent() {}
- virtual void _ExportMasterStyles() {}
-- virtual ULONG exportDoc( enum ::xmloff::token::XMLTokenEnum eClass = ::xmloff::token::XML_TOKEN_INVALID ) { return 0; }
-+ virtual sal_uInt32 exportDoc( enum ::xmloff::token::XMLTokenEnum eClass = ::xmloff::token::XML_TOKEN_INVALID ) { return 0; }
-
- public:
-
---- extensions/source/svg/svgwriter.cxx 3 May 2004 13:53:17 -0000 1.5
-+++ extensions/source/svg/svgwriter.cxx 21 Jan 2005 16:23:24 -0000 1.5.48.1
-@@ -80,7 +80,7 @@ protected:
- virtual void _ExportAutoStyles() {}
- virtual void _ExportContent() {}
- virtual void _ExportMasterStyles() {}
-- virtual ULONG exportDoc( enum ::xmloff::token::XMLTokenEnum eClass ) { return 0; }
-+ virtual sal_uInt32 exportDoc( enum ::xmloff::token::XMLTokenEnum eClass ) { return 0; }
-
- public:
-
diff --git a/patches/64bit/trivial-filter.diff b/patches/64bit/trivial-filter.diff
deleted file mode 100644
index c5f18db46..000000000
--- a/patches/64bit/trivial-filter.diff
+++ /dev/null
@@ -1,22 +0,0 @@
---- filter/source/pdf/pdfexport.cxx 7 Jan 2005 09:20:01 -0000 1.34
-+++ filter/source/pdf/pdfexport.cxx 21 Jan 2005 16:49:12 -0000 1.34.12.1
-@@ -488,7 +488,7 @@ sal_Bool PDFExport::ImplWriteActions( PD
- {
- bool bAssertionFired( false );
-
-- for( ULONG i = 0, nCount = rMtf.GetActionCount(); i < nCount; )
-+ for( sal_uInt32 i = 0, nCount = rMtf.GetActionCount(); i < nCount; )
- {
- if ( !pPDFExtOutDevData || !pPDFExtOutDevData->PlaySyncPageAct( rWriter, i ) )
- {
---- filter/source/svg/svgfilter.hxx 21 Jan 2005 15:25:45 -0000 1.9
-+++ filter/source/svg/svgfilter.hxx 9 Mar 2005 19:51:27 -0000 1.8.38.2
-@@ -203,7 +203,7 @@ protected:
- virtual void _ExportAutoStyles() {}
- virtual void _ExportContent() {}
- virtual void _ExportMasterStyles() {}
-- virtual ULONG exportDoc( enum ::xmloff::token::XMLTokenEnum eClass ) { return 0; }
-+ virtual sal_uInt32 exportDoc( enum ::xmloff::token::XMLTokenEnum eClass ) { return 0; }
-
- public:
-
diff --git a/patches/64bit/trivial-framework.diff b/patches/64bit/trivial-framework.diff
deleted file mode 100644
index 1c5ffee0c..000000000
--- a/patches/64bit/trivial-framework.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- framework/inc/recording/dispatchrecorder.hxx 25 Mar 2003 18:19:49 -0000 1.6
-+++ framework/inc/recording/dispatchrecorder.hxx 21 Jul 2004 18:34:36 -0000 1.6.222.1
-@@ -126,9 +126,9 @@ class DispatchRecorder
-
- virtual sal_Int32 SAL_CALL getCount() throw (::com::sun::star::uno::RuntimeException);
-
-- virtual com::sun::star::uno::Any SAL_CALL getByIndex(long int) throw (com::sun::star::uno::RuntimeException, com::sun::star::lang::WrappedTargetException, com::sun::star::lang::IndexOutOfBoundsException);
-+ virtual com::sun::star::uno::Any SAL_CALL getByIndex(sal_Int32) throw (com::sun::star::uno::RuntimeException, com::sun::star::lang::WrappedTargetException, com::sun::star::lang::IndexOutOfBoundsException);
-
-- virtual void SAL_CALL replaceByIndex(long int, const com::sun::star::uno::Any&) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL replaceByIndex(sal_Int32, const com::sun::star::uno::Any&) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
-
- // private functions
- private:
diff --git a/patches/64bit/trivial-sch.diff b/patches/64bit/trivial-sch.diff
deleted file mode 100644
index 8de0525db..000000000
--- a/patches/64bit/trivial-sch.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- sch/source/ui/unoidl/ChXChartDocument.cxx 26 May 2004 11:33:02 -0000 1.51
-+++ sch/source/ui/unoidl/ChXChartDocument.cxx 21 Sep 2004 05:57:11 -0000 1.51.22.2
-@@ -1734,7 +1734,7 @@ bool ChXChartDocument::SetTransSequence(
-
- if( pData )
- {
-- long nTranslation = pData->GetTranslation();
-+ sal_Int32 nTranslation = pData->GetTranslation();
-
- if( bColumns )
- {
diff --git a/patches/64bit/trivial-sfx2.diff b/patches/64bit/trivial-sfx2.diff
deleted file mode 100644
index 22ba86e6b..000000000
--- a/patches/64bit/trivial-sfx2.diff
+++ /dev/null
@@ -1,181 +0,0 @@
---- sfx2/inc/dispatch.hxx 18 Jan 2005 15:51:34 -0000 1.10
-+++ sfx2/inc/dispatch.hxx 9 Mar 2005 22:18:01 -0000 1.9.12.2
-@@ -168,7 +168,7 @@ friend class SfxViewFrame;
- DECL_DLLPRIVATE_LINK( PostMsgHandler, SfxRequest * );
-
- SAL_DLLPRIVATE int Call_Impl( SfxShell& rShell, const SfxSlot &rSlot, SfxRequest &rReq, BOOL bRecord );
-- SAL_DLLPRIVATE ULONG _Update_Impl( BOOL,BOOL,BOOL,SfxMenuBarManager*,SfxWorkWindow*);
-+ SAL_DLLPRIVATE sal_uInt32 _Update_Impl( BOOL,BOOL,BOOL,SfxMenuBarManager*,SfxWorkWindow*);
- SAL_DLLPRIVATE void CollectTools_Impl(SfxWorkWindow*);
-
- protected:
-@@ -271,8 +271,8 @@ public:
-
- BOOL IsAllowed( USHORT nSlot ) const;
- ::com::sun::star::frame::XDispatch* GetDispatchInterface( const String& );
-- void SetDisableFlags( ULONG nFlags );
-- ULONG GetDisableFlags() const;
-+ void SetDisableFlags( sal_uInt32 nFlags );
-+ sal_uInt32 GetDisableFlags() const;
-
- #if _SOLAR__PRIVATE
- SAL_DLLPRIVATE BOOL HasSlot_Impl( USHORT );
---- sfx2/inc/docinf.hxx 11 Jan 2005 14:40:13 -0000 1.6
-+++ sfx2/inc/docinf.hxx 18 Jan 2005 20:37:15 -0000 1.3.546.3
-@@ -170,14 +170,14 @@ private:
- String aDefaultTarget;
- String aReloadURL;
- BOOL bReloadEnabled;
-- ULONG nReloadSecs;
-+ sal_uInt32 nReloadSecs;
-
- DateTime aTemplateDate; // Stamp der Dokumentvorlage
-
- USHORT nUserDataSize;
- USHORT nDocNo; // schon mal rein: Dokumentnummer, was immer das sein mag
- void* pUserData; // Benutzer Daten, z.B. Doc-Statistik
-- long lTime;
-+ sal_Int32 lTime;
-
- SfxDocumentInfo_Impl* pImp;
-
-@@ -209,8 +209,8 @@ public:
- void EnableReload( BOOL bEnable );
- const String& GetDefaultTarget() const;
- void SetDefaultTarget( const String& rString );
-- ULONG GetReloadDelay() const;
-- void SetReloadDelay( ULONG nDelay );
-+ sal_uInt32 GetReloadDelay() const;
-+ void SetReloadDelay( sal_uInt32 nDelay );
-
- BOOL IsReadOnly() const { return bReadOnly; }
- BOOL IsPasswd() const { return bPasswd; }
-@@ -261,7 +261,7 @@ public:
- BOOL IsSaveVersionOnClose() const { return bSaveVersionOnClose; }
-
- void SetTime(long l) { lTime = l; }
-- long GetTime() const { return IsUseUserData() ? lTime : 0L; }
-+ sal_Int32 GetTime() const { return IsUseUserData() ? lTime : 0; }
-
- void* GetUserData() const { return pUserData; }
- USHORT GetUserDataSize() const { return nUserDataSize; }
---- sfx2/inc/fcontnr.hxx 11 Jan 2005 14:41:33 -0000 1.9
-+++ sfx2/inc/fcontnr.hxx 21 Jan 2005 17:09:35 -0000 1.9.12.1
-@@ -158,7 +158,7 @@ public:
-
- const SfxFilter* GetAnyFilter( SfxFilterFlags nMust = SFX_FILTER_IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const;
- const SfxFilter* GetFilter4Mime( const String& rMime, SfxFilterFlags nMust = SFX_FILTER_IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const;
-- const SfxFilter* GetFilter4ClipBoardId( ULONG nId, SfxFilterFlags nMust = SFX_FILTER_IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const;
-+ const SfxFilter* GetFilter4ClipBoardId( sal_uInt32 nId, SfxFilterFlags nMust = SFX_FILTER_IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const;
- const SfxFilter* GetFilter4EA( const String& rEA, SfxFilterFlags nMust = SFX_FILTER_IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const;
- const SfxFilter* GetFilter4Extension( const String& rExt, SfxFilterFlags nMust = SFX_FILTER_IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const;
- const SfxFilter* GetFilter4FilterName( const String& rName, SfxFilterFlags nMust = 0, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const;
-@@ -190,12 +190,12 @@ public:
- DECL_DLLPRIVATE_STATIC_LINK( SfxFilterMatcher, MaybeFileHdl_Impl, String* );
- #endif
-
-- ULONG GuessFilterIgnoringContent( SfxMedium& rMedium, const SfxFilter **, SfxFilterFlags nMust = SFX_FILTER_IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const;
-- ULONG GuessFilter( SfxMedium& rMedium, const SfxFilter **, SfxFilterFlags nMust = SFX_FILTER_IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const;
-- ULONG DetectFilter( SfxMedium& rMedium, const SfxFilter **, BOOL bPlugIn, BOOL bAPI = FALSE ) const;
-+ sal_uInt32 GuessFilterIgnoringContent( SfxMedium& rMedium, const SfxFilter **, SfxFilterFlags nMust = SFX_FILTER_IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const;
-+ sal_uInt32 GuessFilter( SfxMedium& rMedium, const SfxFilter **, SfxFilterFlags nMust = SFX_FILTER_IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const;
-+ sal_uInt32 DetectFilter( SfxMedium& rMedium, const SfxFilter **, BOOL bPlugIn, BOOL bAPI = FALSE ) const;
-
- const SfxFilter* GetFilter4Mime( const String& rMime, SfxFilterFlags nMust = SFX_FILTER_IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED) const;
-- const SfxFilter* GetFilter4ClipBoardId( ULONG nId, SfxFilterFlags nMust = SFX_FILTER_IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const;
-+ const SfxFilter* GetFilter4ClipBoardId( sal_uInt32 nId, SfxFilterFlags nMust = SFX_FILTER_IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const;
- const SfxFilter* GetFilter4EA( const String& rEA, SfxFilterFlags nMust = SFX_FILTER_IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const;
- const SfxFilter* GetFilter4Extension( const String& rExt, SfxFilterFlags nMust = SFX_FILTER_IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const;
- const SfxFilter* GetFilter4FilterName( const String& rName, SfxFilterFlags nMust = 0, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const;
---- sfx2/inc/viewfrm.hxx 1 Mar 2005 19:57:20 -0000 1.18
-+++ sfx2/inc/viewfrm.hxx 9 Mar 2005 22:18:08 -0000 1.17.12.2
-@@ -201,8 +201,8 @@ public:
- TYPEINFO();
- SFX_DECL_INTERFACE(SFX_INTERFACE_SFXVIEWFRM);
-
-- SfxViewFrame( SfxBindings&, SfxFrame*, SfxObjectShell *pDoc=0, ULONG nType = 0 );
-- SfxViewFrame(SfxObjectShell&, SfxBindings&, SfxFrame*p=0, ULONG nType = 0);
-+ SfxViewFrame( SfxBindings&, SfxFrame*, SfxObjectShell *pDoc=0, sal_uInt32 nType = 0 );
-+ SfxViewFrame(SfxObjectShell&, SfxBindings&, SfxFrame*p=0, sal_uInt32 nType = 0);
- SfxViewFrame(
- const SfxViewFrame &, SfxBindings &, SfxFrame *pFrame);
-
---- sfx2/source/appl/sfxpicklist.cxx 2 Feb 2005 14:01:50 -0000 1.23
-+++ sfx2/source/appl/sfxpicklist.cxx 9 Mar 2005 22:33:20 -0000 1.22.76.2
-@@ -244,7 +244,7 @@ SfxPickList::PickListEntry* SfxPickList:
- return 0;
- }
-
--SfxPickList* SfxPickList::GetOrCreate( const ULONG nMenuSize )
-+SfxPickList* SfxPickList::GetOrCreate( const sal_uInt32 nMenuSize )
- {
- if ( !pUniqueInstance )
- {
---- sfx2/source/bastyp/fltfnc.cxx 4 Mar 2005 00:18:37 -0000 1.65
-+++ sfx2/source/bastyp/fltfnc.cxx 9 Mar 2005 22:40:35 -0000 1.62.66.2
-@@ -311,7 +311,7 @@ const SfxFilter* SfxFilterContainer::aMe
- }
-
- IMPL_FORWARD_LOOP( GetFilter4Mime, const String&, rMime );
--IMPL_FORWARD_LOOP( GetFilter4ClipBoardId, ULONG, nId );
-+IMPL_FORWARD_LOOP( GetFilter4ClipBoardId, sal_uInt32, nId );
- IMPL_FORWARD_LOOP( GetFilter4EA, const String&, rEA );
- IMPL_FORWARD_LOOP( GetFilter4Extension, const String&, rExt );
- IMPL_FORWARD_LOOP( GetFilter4FilterName, const String&, rName );
---- sfx2/source/doc/docinf.cxx 17 Nov 2004 15:33:54 -0000 1.29
-+++ sfx2/source/doc/docinf.cxx 21 Jan 2005 17:10:53 -0000 1.25.184.5
-@@ -927,7 +927,7 @@ sal_Bool TestValidity_Impl( const String
- #pragma optimize ( "", off )
- #endif
-
--ULONG SfxDocumentInfo::LoadPropertySet( SotStorage* pStorage )
-+sal_uInt32 SfxDocumentInfo::LoadPropertySet( SotStorage* pStorage )
- {
- // TODO: is used for MS format, should stay here for a while
-
-@@ -1254,12 +1254,12 @@ void SfxDocumentInfo::SetReloadURL( cons
- aReloadURL = rString;
- }
-
--ULONG SfxDocumentInfo::GetReloadDelay() const
-+sal_uInt32 SfxDocumentInfo::GetReloadDelay() const
- {
- return nReloadSecs;
- }
-
--void SfxDocumentInfo::SetReloadDelay( ULONG nSec )
-+void SfxDocumentInfo::SetReloadDelay( sal_uInt32 nSec )
- {
- nReloadSecs = nSec;
- }
---- sfx2/source/doc/objuno.cxx 17 Nov 2004 13:37:44 -0000 1.18
-+++ sfx2/source/doc/objuno.cxx 18 Jan 2005 21:42:21 -0000 1.14.540.3
-@@ -913,7 +913,7 @@ void SAL_CALL SfxDocumentInfoObject::se
- }
- else if ( _pInfo && aValue.getValueType() == ::getCppuType((const sal_Int32*)0) )
- {
-- long nIntVal ;
-+ sal_Int32 nIntVal ;
- aValue >>= nIntVal ;
- switch ( nHandle )
- {
---- sfx2/source/inc/sfxpicklist.hxx 20 Nov 2001 16:56:39 -0000 1.3
-+++ sfx2/source/inc/sfxpicklist.hxx 21 Jan 2005 17:11:14 -0000 1.3.558.1
-@@ -106,7 +106,7 @@ class SfxPickList : public SfxListener
- sal_uInt32 m_nAllowedMenuSize;
- ::com::sun::star::uno::Reference< ::com::sun::star::util::XStringWidth > m_xStringLength;
-
-- SfxPickList( ULONG nMenuSize );
-+ SfxPickList( sal_uInt32 nMenuSize );
- ~SfxPickList();
-
- static osl::Mutex* GetOrCreateMutex();
-@@ -117,7 +117,7 @@ class SfxPickList : public SfxListener
- void RemovePickListEntries();
-
- public:
-- static SfxPickList* GetOrCreate( const ULONG nMenuSize );
-+ static SfxPickList* GetOrCreate( const sal_uInt32 nMenuSize );
- static SfxPickList* Get();
- static void Delete();
-
diff --git a/patches/64bit/trivial-so3.diff b/patches/64bit/trivial-so3.diff
deleted file mode 100644
index a9808c4e6..000000000
--- a/patches/64bit/trivial-so3.diff
+++ /dev/null
@@ -1,62 +0,0 @@
---- so3/inc/factory.hxx 16 Feb 2005 17:18:15 -0000 1.10
-+++ so3/inc/factory.hxx 9 Mar 2005 16:59:08 -0000 1.9.50.2
-@@ -160,8 +160,8 @@ public:
- static SvGlobalName GetSvClass( INT32 nFileFormat, const SvGlobalName & rClass );
- static BOOL IsIntern31( const SvGlobalName & rClass );
- static BOOL IsIntern( const SvGlobalName & rClass,
-- long *pFileFormat );
-- static SvGlobalName GetServerName( long nStorageFormat );
-+ sal_Int32 *pFileFormat );
-+ static SvGlobalName GetServerName( sal_Int32 nStorageFormat );
- static String GetServiceName( const SvGlobalName& );
-
- private:
---- so3/source/misc/factory.cxx 16 Feb 2005 17:21:09 -0000 1.19
-+++ so3/source/misc/factory.cxx 9 Mar 2005 17:00:27 -0000 1.18.16.2
-@@ -936,7 +936,7 @@ SvGlobalName SvFactory::GetAutoConvertTo
- //=========================================================================
- SvGlobalName SvFactory::GetSvClass
- (
-- long nFileFormat,
-+ sal_Int32 nFileFormat,
- const SvGlobalName & rClass
- )
- /* [Beschreibung]
-@@ -1046,7 +1046,7 @@ BOOL SvFactory::IsIntern31
- BOOL SvFactory::IsIntern
- (
- const SvGlobalName & rClass,
-- long *pFileFormat
-+ sal_Int32 *pFileFormat
- )
- /* [Description]
-
-@@ -1091,7 +1091,7 @@ BOOL SvFactory::IsIntern
- return FALSE;
- }
-
--SvGlobalName SvFactory::GetServerName( long nStorageFormat )
-+SvGlobalName SvFactory::GetServerName( sal_Int32 nStorageFormat )
- {
- SvGlobalName aRet;
-
---- so3/source/persist/persist.cxx 21 Feb 2005 16:28:11 -0000 1.59
-+++ so3/source/persist/persist.cxx 9 Mar 2005 17:00:58 -0000 1.56.50.3
-@@ -850,7 +850,7 @@ BOOL SvPersist::ImplCopy( SvPersist* pSr
- SvStorageRef aSrcEleStor = pSrc->GetStorage();
- SvStorage* pStor = GetStorage();
-
-- long nObjVersion = aSrcEleStor->GetVersion();
-+ sal_Int32 nObjVersion = aSrcEleStor->GetVersion();
- BOOL bIntern = SvFactory::IsIntern( aSrcEleStor->GetClassName(), &nObjVersion );
- if( nObjVersion >= SOFFICE_FILEFORMAT_60 )
- {
-@@ -1872,7 +1872,7 @@ BOOL SvPersist::SaveElement( SvStorage*
- pEle->SetClassName( aSrcEleStor->GetClassName() );
-
- DBG_ASSERT( aSrcEleStor.Is(), "no object storage" );
-- long nObjVersion = aSrcEleStor->GetVersion();
-+ sal_Int32 nObjVersion = aSrcEleStor->GetVersion();
-
- // element must be saved as OLEStorage if it currently has an OLE storage or
- // the target storage is an OLEStorage
diff --git a/patches/64bit/trivial-starmath.diff b/patches/64bit/trivial-starmath.diff
deleted file mode 100644
index 05f2cb475..000000000
--- a/patches/64bit/trivial-starmath.diff
+++ /dev/null
@@ -1,40 +0,0 @@
---- starmath/source/accessibility.cxx 7 Nov 2003 15:21:58 -0000 1.26
-+++ starmath/source/accessibility.cxx 10 Sep 2004 13:53:27 -0000 1.26.80.1
-@@ -638,7 +638,7 @@ awt::Rectangle SAL_CALL SmGraphicAccessi
- aTLPos.X() -= 0;
- Size aSize (pNode->GetSize());
-
-- long *pXAry = new long[ aNodeText.Len() ];
-+ sal_Int32 *pXAry = new sal_Int32[ aNodeText.Len() ];
- pWin->SetFont( pNode->GetFont() );
- pWin->GetTextArray( aNodeText, pXAry, 0, aNodeText.Len() );
- aTLPos.X() += nNodeIndex > 0 ? pXAry[nNodeIndex - 1] : 0;
-@@ -721,7 +721,7 @@ sal_Int32 SAL_CALL SmGraphicAccessible::
-
- long nNodeX = pNode->GetLeft();
-
-- long *pXAry = new long[ aTxt.Len() ];
-+ sal_Int32 *pXAry = new sal_Int32[ aTxt.Len() ];
- pWin->SetFont( pNode->GetFont() );
- pWin->GetTextArray( aTxt, pXAry, 0, aTxt.Len() );
- for (sal_Int32 i = 0; i < aTxt.Len() && nRes == -1; ++i)
---- starmath/source/parse.cxx 11 Aug 2004 15:08:01 -0000 1.27
-+++ starmath/source/parse.cxx 14 Oct 2004 02:21:56 -0000 1.26.58.2
-@@ -620,7 +620,7 @@ void SmParser::NextToken()
- }
- else if (aRes.TokenType & KParseType::BOOLEAN)
- {
-- long &rnEndPos = aRes.EndPos;
-+ sal_Int32 &rnEndPos = aRes.EndPos;
- String aName( BufferString.Copy( nRealStart, rnEndPos - nRealStart ) );
- if (2 >= aName.Len())
- {
-@@ -724,7 +724,7 @@ void SmParser::NextToken()
- }
- else if (aRes.TokenType & KParseType::ONE_SINGLE_CHAR)
- {
-- long &rnEndPos = aRes.EndPos;
-+ sal_Int32 &rnEndPos = aRes.EndPos;
- String aName( BufferString.Copy( nRealStart, rnEndPos - nRealStart ) );
-
- if (1 == aName.Len())
diff --git a/patches/64bit/trivial-svtools.diff b/patches/64bit/trivial-svtools.diff
deleted file mode 100644
index 6a9d87e36..000000000
--- a/patches/64bit/trivial-svtools.diff
+++ /dev/null
@@ -1,199 +0,0 @@
---- svtools/inc/cacheoptions.hxx 8 May 2001 09:05:17 -0000 1.2
-+++ svtools/inc/cacheoptions.hxx 21 Jan 2005 17:16:00 -0000 1.2.638.2
-@@ -159,14 +159,14 @@ class SvtCacheOptions
-
- sal_Int32 GetWriterOLE_Objects() const;
- sal_Int32 GetDrawingEngineOLE_Objects() const;
-- sal_Int32 GetGraphicManagerTotalCacheSize() const;
-- sal_Int32 GetGraphicManagerObjectCacheSize() const;
-+ sal_Size GetGraphicManagerTotalCacheSize() const;
-+ sal_Size GetGraphicManagerObjectCacheSize() const;
- sal_Int32 GetGraphicManagerObjectReleaseTime() const;
-
- void SetWriterOLE_Objects( sal_Int32 nObjects );
- void SetDrawingEngineOLE_Objects( sal_Int32 nObjects );
-- void SetGraphicManagerTotalCacheSize( sal_Int32 nTotalCacheSize );
-- void SetGraphicManagerObjectCacheSize( sal_Int32 nObjectCacheSize );
-+ void SetGraphicManagerTotalCacheSize( sal_Size nTotalCacheSize );
-+ void SetGraphicManagerObjectCacheSize( sal_Size nObjectCacheSize );
- void SetGraphicManagerObjectReleaseTime( sal_Int32 nReleaseTimeSeconds );
-
- //-------------------------------------------------------------------------------------------------------------
---- svtools/source/config/cacheoptions.cxx 16 Jun 2004 10:06:14 -0000 1.5
-+++ svtools/source/config/cacheoptions.cxx 21 Jan 2005 17:16:13 -0000 1.5.16.2
-@@ -141,14 +141,14 @@ public:
-
- sal_Int32 GetWriterOLE_Objects() const;
- sal_Int32 GetDrawingEngineOLE_Objects() const;
-- sal_Int32 GetGraphicManagerTotalCacheSize() const;
-- sal_Int32 GetGraphicManagerObjectCacheSize() const;
-+ sal_Size GetGraphicManagerTotalCacheSize() const;
-+ sal_Size GetGraphicManagerObjectCacheSize() const;
- sal_Int32 GetGraphicManagerObjectReleaseTime() const;
-
- void SetWriterOLE_Objects( sal_Int32 nObjects );
- void SetDrawingEngineOLE_Objects( sal_Int32 nObjects );
-- void SetGraphicManagerTotalCacheSize( sal_Int32 nTotalCacheSize );
-- void SetGraphicManagerObjectCacheSize( sal_Int32 nObjectCacheSize );
-+ void SetGraphicManagerTotalCacheSize( sal_Size nTotalCacheSize );
-+ void SetGraphicManagerObjectCacheSize( sal_Size nObjectCacheSize );
- void SetGraphicManagerObjectReleaseTime( sal_Int32 nReleaseTimeSeconds );
-
- //-------------------------------------------------------------------------------------------------------------
-@@ -167,8 +167,8 @@ private:
-
- sal_Int32 mnWriterOLE;
- sal_Int32 mnDrawingOLE;
-- sal_Int32 mnGrfMgrTotalSize;
-- sal_Int32 mnGrfMgrObjectSize;
-+ sal_Size mnGrfMgrTotalSize;
-+ sal_Size mnGrfMgrObjectSize;
- sal_Int32 mnGrfMgrObjectRelease;
- };
-
-@@ -306,7 +306,7 @@ sal_Int32 SvtCacheOptions_Impl::GetDrawi
- //*****************************************************************************************************************
- // public method
- //*****************************************************************************************************************
--sal_Int32 SvtCacheOptions_Impl::GetGraphicManagerTotalCacheSize() const
-+sal_Size SvtCacheOptions_Impl::GetGraphicManagerTotalCacheSize() const
- {
- return mnGrfMgrTotalSize;
- }
-@@ -314,7 +314,7 @@ sal_Int32 SvtCacheOptions_Impl::GetGraph
- //*****************************************************************************************************************
- // public method
- //*****************************************************************************************************************
--sal_Int32 SvtCacheOptions_Impl::GetGraphicManagerObjectCacheSize() const
-+sal_Size SvtCacheOptions_Impl::GetGraphicManagerObjectCacheSize() const
- {
- return mnGrfMgrObjectSize;
- }
-@@ -348,7 +348,7 @@ void SvtCacheOptions_Impl::SetDrawingEng
- //*****************************************************************************************************************
- // public method
- //*****************************************************************************************************************
--void SvtCacheOptions_Impl::SetGraphicManagerTotalCacheSize( sal_Int32 nGrfMgrTotalSize )
-+void SvtCacheOptions_Impl::SetGraphicManagerTotalCacheSize( sal_Size nGrfMgrTotalSize )
- {
- mnGrfMgrTotalSize = nGrfMgrTotalSize;
- SetModified();
-@@ -357,7 +357,7 @@ void SvtCacheOptions_Impl::SetGraphicMan
- //*****************************************************************************************************************
- // public method
- //*****************************************************************************************************************
--void SvtCacheOptions_Impl::SetGraphicManagerObjectCacheSize( sal_Int32 nGrfMgrObjectSize )
-+void SvtCacheOptions_Impl::SetGraphicManagerObjectCacheSize( sal_Size nGrfMgrObjectSize )
- {
- mnGrfMgrObjectSize = nGrfMgrObjectSize;
- SetModified();
-@@ -455,7 +455,7 @@ sal_Int32 SvtCacheOptions::GetDrawingEng
- //*****************************************************************************************************************
- // public method
- //*****************************************************************************************************************
--sal_Int32 SvtCacheOptions::GetGraphicManagerTotalCacheSize() const
-+sal_Size SvtCacheOptions::GetGraphicManagerTotalCacheSize() const
- {
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->GetGraphicManagerTotalCacheSize();
-@@ -464,7 +464,7 @@ sal_Int32 SvtCacheOptions::GetGraphicMan
- //*****************************************************************************************************************
- // public method
- //*****************************************************************************************************************
--sal_Int32 SvtCacheOptions::GetGraphicManagerObjectCacheSize() const
-+sal_Size SvtCacheOptions::GetGraphicManagerObjectCacheSize() const
- {
- MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->GetGraphicManagerObjectCacheSize();
-@@ -500,7 +500,7 @@ void SvtCacheOptions::SetDrawingEngineOL
- //*****************************************************************************************************************
- // public method
- //*****************************************************************************************************************
--void SvtCacheOptions::SetGraphicManagerTotalCacheSize( sal_Int32 nGrfMgrTotalSize )
-+void SvtCacheOptions::SetGraphicManagerTotalCacheSize( sal_Size nGrfMgrTotalSize )
- {
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->SetGraphicManagerTotalCacheSize( nGrfMgrTotalSize );
-@@ -509,7 +509,7 @@ void SvtCacheOptions::SetGraphicManagerT
- //*****************************************************************************************************************
- // public method
- //*****************************************************************************************************************
--void SvtCacheOptions::SetGraphicManagerObjectCacheSize( sal_Int32 nGrfMgrObjectSize )
-+void SvtCacheOptions::SetGraphicManagerObjectCacheSize( sal_Size nGrfMgrObjectSize )
- {
- MutexGuard aGuard( GetOwnStaticMutex() );
- m_pDataContainer->SetGraphicManagerObjectCacheSize( nGrfMgrObjectSize );
---- svtools/source/control/taskmisc.cxx 16 Jun 2004 10:13:08 -0000 1.2
-+++ svtools/source/control/taskmisc.cxx 21 Jul 2004 17:34:09 -0000 1.2.16.1
-@@ -307,10 +307,10 @@ void WindowArrange::ImplCascade( const R
- long nRectHeight = nHeight;
- long nOff;
- long nCascadeWins;
-- long nLeftBorder;
-- long nTopBorder;
-- long nRightBorder;
-- long nBottomBorder;
-+ sal_Int32 nLeftBorder;
-+ sal_Int32 nTopBorder;
-+ sal_Int32 nRightBorder;
-+ sal_Int32 nBottomBorder;
- long nStartOverWidth;
- long nStartOverHeight;
- long nOverWidth = 0;
---- svtools/source/edit/svmedit.cxx 20 Sep 2004 14:10:21 -0000 1.28
-+++ svtools/source/edit/svmedit.cxx 19 Oct 2004 16:45:46 -0000 1.26.64.2
-@@ -1238,7 +1238,7 @@ Size MultiLineEdit::CalcMinimumSize() co
- {
- Size aSz = pImpSvMEdit->CalcMinimumSize();
-
-- long nLeft, nTop, nRight, nBottom;
-+ sal_Int32 nLeft, nTop, nRight, nBottom;
- ((Window*)this)->GetBorder( nLeft, nTop, nRight, nBottom );
- aSz.Width() += nLeft+nRight;
- aSz.Height() += nTop+nBottom;
-@@ -1249,14 +1249,14 @@ Size MultiLineEdit::CalcMinimumSize() co
- Size MultiLineEdit::CalcAdjustedSize( const Size& rPrefSize ) const
- {
- Size aSz = rPrefSize;
-- long nLeft, nTop, nRight, nBottom;
-+ sal_Int32 nLeft, nTop, nRight, nBottom;
- ((Window*)this)->GetBorder( nLeft, nTop, nRight, nBottom );
-
- // In der Hoehe auf ganze Zeilen justieren
-
-- long nHeight = aSz.Height() - nTop - nBottom;
-- long nLineHeight = pImpSvMEdit->CalcSize( 1, 1 ).Height();
-- long nLines = nHeight / nLineHeight;
-+ sal_Int32 nHeight = aSz.Height() - nTop - nBottom;
-+ sal_Int32 nLineHeight = pImpSvMEdit->CalcSize( 1, 1 ).Height();
-+ sal_Int32 nLines = nHeight / nLineHeight;
- if ( nLines < 1 )
- nLines = 1;
-
-@@ -1270,7 +1270,7 @@ Size MultiLineEdit::CalcSize( USHORT nCo
- {
- Size aSz = pImpSvMEdit->CalcSize( nColumns, nLines );
-
-- long nLeft, nTop, nRight, nBottom;
-+ sal_Int32 nLeft, nTop, nRight, nBottom;
- ((Window*)this)->GetBorder( nLeft, nTop, nRight, nBottom );
- aSz.Width() += nLeft+nRight;
- aSz.Height() += nTop+nBottom;
-@@ -1389,13 +1389,13 @@ void MultiLineEdit::Draw( OutputDevice*
-
- XubString aText = GetText();
- Size aTextSz( pDev->GetTextWidth( aText ), pDev->GetTextHeight() );
-- ULONG nLines = (ULONG) (aSize.Height() / aTextSz.Height());
-+ sal_uInt32 nLines = sal_uInt32(aSize.Height() / aTextSz.Height());
- if ( !nLines )
- nLines = 1;
- aTextSz.Height() = nLines*aTextSz.Height();
-- long nOnePixel = GetDrawPixel( pDev, 1 );
-- long nOffX = 3*nOnePixel;
-- long nOffY = 2*nOnePixel;
-+ sal_Int32 nOnePixel = GetDrawPixel( pDev, 1 );
-+ sal_Int32 nOffX = 3*nOnePixel;
-+ sal_Int32 nOffY = 2*nOnePixel;
-
- // Clipping?
- if ( ( nOffY < 0 ) || ( (nOffY+aTextSz.Height()) > aSize.Height() ) || ( (nOffX+aTextSz.Width()) > aSize.Width() ) )
diff --git a/patches/64bit/trivial-svx.diff b/patches/64bit/trivial-svx.diff
deleted file mode 100644
index 1cb75b780..000000000
--- a/patches/64bit/trivial-svx.diff
+++ /dev/null
@@ -1,997 +0,0 @@
---- svx/inc/editeng.hxx 21 Jan 2005 14:23:04 -0000 1.45
-+++ svx/inc/editeng.hxx 9 Mar 2005 23:51:42 -0000 1.41.138.5
-@@ -235,19 +235,19 @@ public:
-
- String GetText( LineEnd eEnd = LINEEND_LF ) const;
- String GetText( const ESelection& rSelection, const LineEnd eEnd = LINEEND_LF ) const;
-- ULONG GetTextLen() const;
-- ULONG GetTextHeight() const;
-- ULONG CalcTextWidth();
-+ sal_uInt32 GetTextLen() const;
-+ sal_uInt32 GetTextHeight() const;
-+ sal_uInt32 CalcTextWidth();
-
- String GetText( USHORT nParagraph ) const;
- xub_StrLen GetTextLen( USHORT nParagraph ) const;
-- ULONG GetTextHeight( USHORT nParagraph ) const;
-+ sal_uInt32 GetTextHeight( USHORT nParagraph ) const;
-
- USHORT GetParagraphCount() const;
-
- USHORT GetLineCount( USHORT nParagraph ) const;
- xub_StrLen GetLineLen( USHORT nParagraph, USHORT nLine ) const;
-- ULONG GetLineHeight( USHORT nParagraph, USHORT nLine = 0 );
-+ sal_uInt32 GetLineHeight( USHORT nParagraph, USHORT nLine = 0 );
- USHORT GetFirstLineOffset( USHORT nParagraph );
- ParagraphInfos GetParagraphInfos( USHORT nPara );
- USHORT FindParagraph( long nDocPosY );
-@@ -329,9 +329,9 @@ public:
- void Draw( OutputDevice* pOutDev, const Rectangle& rOutRect, const Point& rStartDocPos, BOOL bClip );
- void Draw( OutputDevice* pOutDev, const Point& rStartPos, short nOrientation = 0 );
-
--// ULONG: Fehlercode des Streams.
-- ULONG Read( SvStream& rInput, const String& rBaseURL, EETextFormat, SvKeyValueIterator* pHTTPHeaderAttrs = NULL );
-- ULONG Write( SvStream& rOutput, EETextFormat );
-+// sal_uInt32: Fehlercode des Streams.
-+ sal_uInt32 Read( SvStream& rInput, const String& rBaseURL, EETextFormat, SvKeyValueIterator* pHTTPHeaderAttrs = NULL );
-+ sal_uInt32 Write( SvStream& rOutput, EETextFormat );
-
- void SetStatusEventHdl( const Link& rLink );
- Link GetStatusEventHdl() const;
-@@ -346,8 +346,8 @@ public:
- BOOL IsFlatMode() const;
- void SetFlatMode( BOOL bFlat );
-
-- void SetControlWord( ULONG nWord );
-- ULONG GetControlWord() const;
-+ void SetControlWord( sal_uInt32 nWord );
-+ sal_uInt32 GetControlWord() const;
-
- void QuickSetAttribs( const SfxItemSet& rSet, const ESelection& rSel );
- void QuickRemoveCharAttribs( USHORT nPara, USHORT nWhich = 0 );
-@@ -475,7 +475,7 @@ public:
- virtual Rectangle GetBulletArea( USHORT nPara );
-
- static SfxItemPool* CreatePool( BOOL bLoadRefCounts = TRUE );
-- static ULONG RegisterClipboardFormatName();
-+ static sal_uInt32 RegisterClipboardFormatName();
- static BOOL DoesKeyChangeText( const KeyEvent& rKeyEvent );
- static BOOL DoesKeyMoveCursor( const KeyEvent& rKeyEvent );
- static BOOL IsSimpleCharInput( const KeyEvent& rKeyEvent );
---- svx/inc/editstat.hxx 27 Aug 2002 14:28:31 -0000 1.4
-+++ svx/inc/editstat.hxx 21 Jan 2005 16:03:42 -0000 1.4.828.1
-@@ -127,7 +127,7 @@
- EE_STAT_CRSRLEFTPARA zur Zeit bei Cursorbewegungen und Return.
- */
-
--inline void SetFlags( ULONG& rBits, const ULONG nMask, FASTBOOL bOn )
-+inline void SetFlags( sal_uInt32& rBits, const sal_uInt32 nMask, FASTBOOL bOn )
- {
- if ( bOn )
- rBits |= nMask;
-@@ -138,22 +138,22 @@ inline void SetFlags( ULONG& rBits, cons
- class EditStatus
- {
- protected:
-- ULONG nStatusBits;
-- ULONG nControlBits;
-+ sal_uInt32 nStatusBits;
-+ sal_uInt32 nControlBits;
- USHORT nPrevPara; // fuer EE_STAT_CRSRLEFTPARA
-
- public:
- EditStatus() { nStatusBits = 0; nControlBits = 0; nPrevPara = 0xFFFF; }
-
- void Clear() { nStatusBits = 0; }
-- void SetControlBits( ULONG nMask, FASTBOOL bOn )
-+ void SetControlBits( sal_uInt32 nMask, FASTBOOL bOn )
- { SetFlags( nControlBits, nMask, bOn ); }
-
-- ULONG GetStatusWord() const { return nStatusBits; }
-- ULONG& GetStatusWord() { return nStatusBits; }
-+ sal_uInt32 GetStatusWord() const { return nStatusBits; }
-+ sal_uInt32& GetStatusWord() { return nStatusBits; }
-
-- ULONG GetControlWord() const { return nControlBits; }
-- ULONG& GetControlWord() { return nControlBits; }
-+ sal_uInt32 GetControlWord() const { return nControlBits; }
-+ sal_uInt32& GetControlWord() { return nControlBits; }
-
- USHORT GetPrevParagraph() const { return nPrevPara; }
- USHORT& GetPrevParagraph() { return nPrevPara; }
---- svx/inc/editview.hxx 21 Jan 2005 14:23:44 -0000 1.14
-+++ svx/inc/editview.hxx 9 Mar 2005 23:46:36 -0000 1.13.26.2
-@@ -225,14 +225,14 @@ public:
- void RemoveAttribs( BOOL bRemoveParaAttribs = FALSE, USHORT nWhich = 0 );
- void RemoveCharAttribs( USHORT nPara, USHORT nWhich = 0 );
-
-- ULONG Read( SvStream& rInput, const String& rBaseURL, EETextFormat eFormat, BOOL bSelect = FALSE, SvKeyValueIterator* pHTTPHeaderAttrs = NULL );
-- ULONG Write( SvStream& rOutput, EETextFormat eFormat );
-+ sal_uInt32 Read( SvStream& rInput, const String& rBaseURL, EETextFormat eFormat, BOOL bSelect = FALSE, SvKeyValueIterator* pHTTPHeaderAttrs = NULL );
-+ sal_uInt32 Write( SvStream& rOutput, EETextFormat eFormat );
-
- void SetBackgroundColor( const Color& rColor );
- Color GetBackgroundColor() const;
-
-- void SetControlWord( ULONG nWord );
-- ULONG GetControlWord() const;
-+ void SetControlWord( sal_uInt32 nWord );
-+ sal_uInt32 GetControlWord() const;
-
- EditTextObject* CreateTextObject();
- void InsertText( const EditTextObject& rTextObject );
---- svx/inc/lrspitem.hxx 21 Jan 2005 14:55:17 -0000 1.5
-+++ svx/inc/lrspitem.hxx 9 Mar 2005 23:50:59 -0000 1.4.854.2
-@@ -127,8 +127,8 @@ public:
- TYPEINFO();
-
- SvxLRSpaceItem( const USHORT nId = ITEMID_LRSPACE );
-- SvxLRSpaceItem( const long nLeft, const long nRight,
-- const long nTLeft = 0, const short nOfset = 0,
-+ SvxLRSpaceItem( const sal_Int32 nLeft, const sal_Int32 nRight,
-+ const sal_Int32 nTLeft = 0, const short nOfset = 0,
- const USHORT nId = ITEMID_LRSPACE );
- inline SvxLRSpaceItem& operator=( const SvxLRSpaceItem &rCpy );
-
---- svx/inc/msdffimp.hxx 21 Feb 2005 16:16:53 -0000 1.26
-+++ svx/inc/msdffimp.hxx 9 Mar 2005 23:30:24 -0000 1.20.98.5
-@@ -540,9 +540,9 @@ public:
- static BOOL ReadCommonRecordHeader( DffRecordHeader& rRec, SvStream& rIn );
- static BOOL ReadCommonRecordHeader( SvStream& rSt,
- BYTE& rVer,
-- USHORT& rInst,
-- USHORT& rFbt,
-- ULONG& rLength );
-+ sal_uInt16& rInst,
-+ sal_uInt16& rFbt,
-+ sal_uInt32& rLength );
- /*
- Konstruktor
- ===========
-@@ -590,7 +590,7 @@ public:
-
- void SetModel(SdrModel* pModel, long nApplicationScale);
- SdrModel* GetModel() const { return pSdrModel; }
-- void Scale(long& rVal) const;
-+ void Scale(sal_Int32& rVal) const;
- void Scale(Point& rPos) const;
- void Scale(Size& rSiz) const;
- void Scale(Rectangle& rRect) const;
-@@ -598,7 +598,7 @@ public:
- void Scale(PolyPolygon& rPoly) const;
- void Scale(XPolygon& rPoly) const;
- void Scale(XPolyPolygon& rPoly) const;
-- void ScaleEmu(long& rVal) const;
-+ void ScaleEmu(sal_Int32& rVal) const;
- UINT32 ScalePt( UINT32 nPt ) const;
- INT32 ScalePoint( INT32 nVal ) const;
-
---- svx/inc/rulritem.hxx 21 Jan 2005 15:11:35 -0000 1.7
-+++ svx/inc/rulritem.hxx 10 Mar 2005 00:03:20 -0000 1.6.222.2
-@@ -229,7 +229,7 @@ typedef SvPtrarr SvxColumns;
- class SVX_DLLPUBLIC SvxColumnItem : public SfxPoolItem
- {
- SvxColumns aColumns;// Spaltenarray
-- long nLeft, // Linker Rand bei Tabelle
-+ sal_Int32 nLeft, // Linker Rand bei Tabelle
- nRight; // Rechter Rand bei Tabelle; bei Spalten immer gleich
- // zum umgebenden Rahmen
- USHORT nActColumn; // die aktuelle Spalte
-@@ -297,10 +297,10 @@ public:
- class SVX_DLLPUBLIC SvxObjectItem : public SfxPoolItem
- {
- private:
-- long nStartX; /* Beginn in X-Richtung */
-- long nEndX; /* Ende in X-Richtung */
-- long nStartY; /* Beginn in Y-Richtung */
-- long nEndY; /* Ende in Y-Richtung */
-+ sal_Int32 nStartX; /* Beginn in X-Richtung */
-+ sal_Int32 nEndX; /* Ende in X-Richtung */
-+ sal_Int32 nStartY; /* Beginn in Y-Richtung */
-+ sal_Int32 nEndY; /* Ende in Y-Richtung */
- BOOL bLimits; /* Grenzwertkontrolle durch die Applikation */
- protected:
- virtual int operator==( const SfxPoolItem& ) const;
-@@ -325,10 +325,10 @@ public:
-
- BOOL HasLimits() const { return bLimits; }
-
-- long GetStartX() const { return nStartX; }
-- long GetEndX() const { return nEndX; }
-- long GetStartY() const { return nStartY; }
-- long GetEndY() const { return nEndY; }
-+ sal_Int32 GetStartX() const { return nStartX; }
-+ sal_Int32 GetEndX() const { return nEndX; }
-+ sal_Int32 GetStartY() const { return nStartY; }
-+ sal_Int32 GetEndY() const { return nEndY; }
-
- void SetStartX(long l) { nStartX = l; }
- void SetEndX(long l) { nEndX = l; }
---- svx/inc/svdmodel.hxx 16 Feb 2005 17:54:17 -0000 1.47
-+++ svx/inc/svdmodel.hxx 9 Mar 2005 23:27:32 -0000 1.42.108.4
-@@ -422,10 +422,10 @@ public:
- // Zeichenobjekte verwenden moechte. Setzt man degegen nur vom abstrakten
- // Basisobjekt SdrObject abgeleitete Objekte ein, so ist man frei in der
- // Wahl des Pools.
-- SdrModel(SfxItemPool* pPool=NULL, SfxObjectShell* pPers=NULL, INT32 bLoadRefCounts = LOADREFCOUNTS);
-- SdrModel(const String& rPath, SfxItemPool* pPool=NULL, SfxObjectShell* pPers=NULL, INT32 bLoadRefCounts = LOADREFCOUNTS);
-- SdrModel(SfxItemPool* pPool, SfxObjectShell* pPers, FASTBOOL bUseExtColorTable, INT32 bLoadRefCounts = LOADREFCOUNTS);
-- SdrModel(const String& rPath, SfxItemPool* pPool, SfxObjectShell* pPers, FASTBOOL bUseExtColorTable, INT32 bLoadRefCounts = LOADREFCOUNTS);
-+ SdrModel(SfxItemPool* pPool=NULL, SfxObjectShell* pPers=NULL, sal_Bool bLoadRefCounts = LOADREFCOUNTS);
-+ SdrModel(const String& rPath, SfxItemPool* pPool=NULL, SfxObjectShell* pPers=NULL, sal_Bool bLoadRefCounts = LOADREFCOUNTS);
-+ SdrModel(SfxItemPool* pPool, SfxObjectShell* pPers, FASTBOOL bUseExtColorTable, sal_Bool bLoadRefCounts = LOADREFCOUNTS);
-+ SdrModel(const String& rPath, SfxItemPool* pPool, SfxObjectShell* pPers, FASTBOOL bUseExtColorTable, sal_Bool bLoadRefCounts = LOADREFCOUNTS);
- virtual ~SdrModel();
-
- // #116168#
---- svx/inc/tstpitem.hxx 21 Jan 2005 15:40:13 -0000 1.5
-+++ svx/inc/tstpitem.hxx 10 Mar 2005 00:07:00 -0000 1.4.676.2
-@@ -88,7 +88,7 @@
- class SVX_DLLPUBLIC SvxTabStop
- {
- private:
-- long nTabPos;
-+ sal_Int32 nTabPos;
-
- SvxTabAdjust eAdjustment;
- sal_Unicode cDecimal;
-@@ -110,8 +110,8 @@ public:
- const sal_Unicode cFil = cDfltFillChar );
- #endif
-
-- long& GetTabPos() { return nTabPos; }
-- long GetTabPos() const { return nTabPos; }
-+ sal_Int32& GetTabPos() { return nTabPos; }
-+ sal_Int32 GetTabPos() const { return nTabPos; }
-
- SvxTabAdjust& GetAdjustment() { return eAdjustment; }
- SvxTabAdjust GetAdjustment() const { return eAdjustment; }
---- svx/inc/xhatch.hxx 21 Jan 2005 16:09:16 -0000 1.3
-+++ svx/inc/xhatch.hxx 9 Mar 2005 23:32:17 -0000 1.2.298.2
-@@ -81,8 +81,8 @@ class SVX_DLLPUBLIC XHatch
- protected:
- XHatchStyle eStyle;
- Color aColor;
-- long nDistance;
-- long nAngle;
-+ sal_Int32 nDistance;
-+ sal_Int32 nAngle;
-
- public:
- XHatch() {}
-@@ -98,8 +98,8 @@ public:
-
- XHatchStyle GetHatchStyle() const { return eStyle; }
- Color GetColor() const { return aColor; }
-- long GetDistance() const { return nDistance; }
-- long GetAngle() const { return nAngle; }
-+ sal_Int32 GetDistance() const { return nDistance; }
-+ sal_Int32 GetAngle() const { return nAngle; }
- };
-
- #endif
---- svx/source/accessibility/AccessibleShape.cxx 26 Nov 2004 18:11:37 -0000 1.46
-+++ svx/source/accessibility/AccessibleShape.cxx 19 Jan 2005 02:06:54 -0000 1.44.222.2
-@@ -1080,7 +1080,7 @@ void AccessibleShape::ViewForwarderChang
- // of the same type. If such an index where not given to the
- // constructor then use the z-order instead. If even that does not exist
- // we throw an exception.
-- long nIndex = mnIndex;
-+ sal_Int32 nIndex = mnIndex;
- if (nIndex == -1)
- {
- try
---- svx/source/accessibility/AccessibleStringWrap.cxx 24 Apr 2003 16:55:35 -0000 1.3
-+++ svx/source/accessibility/AccessibleStringWrap.cxx 9 Sep 2004 09:39:57 -0000 1.3.642.1
-@@ -104,7 +104,7 @@ sal_Bool AccessibleStringWrap::GetCharac
- }
- else
- {
-- long aXArray[2];
-+ sal_Int32 aXArray[2];
- mrDev.GetCaretPositions( maText, aXArray, static_cast< USHORT >(nIndex), 1 );
- rRect.Left() = 0;
- rRect.Top() = 0;
---- svx/source/accessibility/DGColorNameLookUp.cxx 26 May 2003 09:05:12 -0000 1.2
-+++ svx/source/accessibility/DGColorNameLookUp.cxx 9 Sep 2004 09:39:57 -0000 1.2.600.1
-@@ -112,7 +112,7 @@ DGColorNameLookUp& DGColorNameLookUp::In
-
-
-
--OUString DGColorNameLookUp::LookUpColor (long int nColor) const
-+OUString DGColorNameLookUp::LookUpColor (sal_Int32 nColor) const
- {
- OUString sColorName;
- tColorValueToNameMap::const_iterator I;
-@@ -172,7 +172,7 @@ DGColorNameLookUp::DGColorNameLookUp (vo
- try
- {
- uno::Any aColor (xNA->getByName (aNames[i]));
-- long nColor;
-+ sal_Int32 nColor;
- aColor >>= nColor;
- maColorValueToNameMap[nColor] = aNames[i];
- }
---- svx/source/accessibility/DescriptionGenerator.cxx 26 May 2003 09:05:24 -0000 1.6
-+++ svx/source/accessibility/DescriptionGenerator.cxx 9 Sep 2004 09:39:58 -0000 1.6.600.1
-@@ -354,7 +354,7 @@ void DescriptionGenerator::AddColor (con
- try
- {
-
-- long nValue;
-+ sal_Int32 nValue;
- if (mxSet.is())
- {
- uno::Any aValue = mxSet->getPropertyValue (sPropertyName);
-@@ -394,7 +394,7 @@ void DescriptionGenerator::AddInteger (c
- if (mxSet.is())
- {
- uno::Any aValue = mxSet->getPropertyValue (sPropertyName);
-- long nValue;
-+ sal_Int32 nValue;
- aValue >>= nValue;
- msDescription.append (nValue);
- }
---- svx/source/dialog/connpooloptions.cxx 21 Jan 2005 16:29:51 -0000 1.4
-+++ svx/source/dialog/connpooloptions.cxx 10 Mar 2005 00:58:45 -0000 1.3.94.2
-@@ -142,7 +142,7 @@ namespace offapp
- virtual void CursorMoved();
-
- protected:
-- virtual ULONG GetTotalCellWidth(long nRow, USHORT nColId);
-+ virtual sal_uInt32 GetTotalCellWidth(long nRow, USHORT nColId);
-
-
- private:
-@@ -261,7 +261,7 @@ namespace offapp
- }
-
- //--------------------------------------------------------------------
-- ULONG DriverListControl::GetTotalCellWidth(long nRow, USHORT nColId)
-+ sal_uInt32 DriverListControl::GetTotalCellWidth(long nRow, USHORT nColId)
- {
- return GetDataWindow().GetTextWidth(GetCellText(nRow, nColId));
- }
---- svx/source/dialog/optdict.cxx 21 Jan 2005 16:44:23 -0000 1.4
-+++ svx/source/dialog/optdict.cxx 10 Mar 2005 00:50:37 -0000 1.3.110.3
-@@ -612,8 +612,8 @@ void SvxEditDictionaryDialog::ShowWords_
-
- if (aWordsLB.GetEntryCount())
- {
-- aWordED .SetText( aWordsLB.GetEntryText(0LU, 0) );
-- aReplaceED.SetText( aWordsLB.GetEntryText(0LU, 1) );
-+ aWordED .SetText( aWordsLB.GetEntryText(0UL, 0) );
-+ aReplaceED.SetText( aWordsLB.GetEntryText(0UL, 1) );
- }
-
- LeaveWait();
---- svx/source/dialog/optmemory.cxx 21 Jan 2005 16:46:26 -0000 1.6
-+++ svx/source/dialog/optmemory.cxx 10 Mar 2005 00:57:06 -0000 1.4.130.3
-@@ -199,34 +199,34 @@ using namespace ::sfx2;
- #define BYTES2NF (1.0/NF2BYTES) // 10/2^20
-
-
--inline long OfaMemoryOptionsPage::GetNfGraphicCacheVal( void ) const
-+inline sal_Size OfaMemoryOptionsPage::GetNfGraphicCacheVal( void ) const
- {
- return aNfGraphicCache.GetValue() << 20;
- }
-
--inline void OfaMemoryOptionsPage::SetNfGraphicCacheVal( long nSizeInBytes )
-+inline void OfaMemoryOptionsPage::SetNfGraphicCacheVal( sal_Size nSizeInBytes )
- {
- aNfGraphicCache.SetValue( nSizeInBytes >> 20 );
- }
-
--long OfaMemoryOptionsPage::GetNfGraphicObjectCacheVal( void ) const
-+sal_Size OfaMemoryOptionsPage::GetNfGraphicObjectCacheVal( void ) const
- {
-- return long( ::rtl::math::round( double( aNfGraphicObjectCache.GetValue() ) * NF2BYTES ) );
-+ return sal_Size( ::rtl::math::round( double( aNfGraphicObjectCache.GetValue() ) * NF2BYTES ) );
- }
-
--void OfaMemoryOptionsPage::SetNfGraphicObjectCacheVal( long nSizeInBytes )
-+void OfaMemoryOptionsPage::SetNfGraphicObjectCacheVal( sal_Size nSizeInBytes )
- {
-- aNfGraphicObjectCache.SetValue( long( ::rtl::math::round( double( nSizeInBytes ) * BYTES2NF ) ) );
-+ aNfGraphicObjectCache.SetValue( sal_Size( ::rtl::math::round( double( nSizeInBytes ) * BYTES2NF ) ) );
- }
-
--inline void OfaMemoryOptionsPage::SetNfGraphicObjectCacheMax( long nSizeInBytes )
-+inline void OfaMemoryOptionsPage::SetNfGraphicObjectCacheMax( sal_Size nSizeInBytes )
- {
-- aNfGraphicObjectCache.SetMax( long( double( nSizeInBytes ) * BYTES2NF ) );
-+ aNfGraphicObjectCache.SetMax( sal_Size( double( nSizeInBytes ) * BYTES2NF ) );
- }
-
--inline void OfaMemoryOptionsPage::SetNfGraphicObjectCacheLast( long nSizeInBytes )
-+inline void OfaMemoryOptionsPage::SetNfGraphicObjectCacheLast( sal_Size nSizeInBytes )
- {
-- aNfGraphicObjectCache.SetLast( long( double( nSizeInBytes ) * BYTES2NF ) );
-+ aNfGraphicObjectCache.SetLast( sal_Size( double( nSizeInBytes ) * BYTES2NF ) );
- }
-
- int OfaMemoryOptionsPage::DeactivatePage( SfxItemSet* pSet )
-@@ -341,7 +341,7 @@ void OfaMemoryOptionsPage::Reset( const
- aUndoEdit.SaveValue();
-
- // GraphicCache
-- long n = aCacheOptions.GetGraphicManagerTotalCacheSize();
-+ sal_Size n = aCacheOptions.GetGraphicManagerTotalCacheSize();
- SetNfGraphicCacheVal( n );
- SetNfGraphicObjectCacheVal( Min( GetNfGraphicCacheVal(), aCacheOptions.GetGraphicManagerObjectCacheSize() ) );
-
-@@ -363,7 +363,7 @@ void OfaMemoryOptionsPage::Reset( const
-
- IMPL_LINK( OfaMemoryOptionsPage, GraphicCacheConfigHdl, NumericField*, pEd )
- {
-- long n = GetNfGraphicCacheVal();
-+ sal_Size n = GetNfGraphicCacheVal();
- SetNfGraphicObjectCacheMax( n );
- SetNfGraphicObjectCacheLast( n );
-
---- svx/source/dialog/optmemory.hxx 11 Feb 2004 16:40:13 -0000 1.3
-+++ svx/source/dialog/optmemory.hxx 9 Sep 2004 09:39:59 -0000 1.3.264.1
-@@ -110,13 +110,13 @@ private:
-
- DECL_LINK( GraphicCacheConfigHdl, NumericField* );
-
-- inline long GetNfGraphicCacheVal( void ) const; // returns # of Bytes
-- inline void SetNfGraphicCacheVal( long nSizeInBytes );
-+ inline sal_Size GetNfGraphicCacheVal( void ) const; // returns # of Bytes
-+ inline void SetNfGraphicCacheVal( sal_Size nSizeInBytes );
-
-- long GetNfGraphicObjectCacheVal( void ) const; // returns # of Bytes
-- void SetNfGraphicObjectCacheVal( long nSizeInBytes );
-- inline void SetNfGraphicObjectCacheMax( long nSizeInBytes );
-- inline void SetNfGraphicObjectCacheLast( long nSizeInBytes );
-+ sal_Size GetNfGraphicObjectCacheVal( void ) const; // returns # of Bytes
-+ void SetNfGraphicObjectCacheVal( sal_Size nSizeInBytes );
-+ inline void SetNfGraphicObjectCacheMax( sal_Size nSizeInBytes );
-+ inline void SetNfGraphicObjectCacheLast( sal_Size nSizeInBytes );
- protected:
- virtual int DeactivatePage( SfxItemSet* pSet = NULL );
-
---- svx/source/dialog/swpossizetabpage.cxx 21 Jan 2005 16:50:41 -0000 1.6
-+++ svx/source/dialog/swpossizetabpage.cxx 10 Mar 2005 00:40:14 -0000 1.5.152.2
-@@ -1004,12 +1004,12 @@ void SvxSwPosSizeTabPage::Reset( const S
- }
-
- pItem = GetItem( rSet, SID_ATTR_TRANSFORM_WIDTH );
-- sal_Int32 nWidth = Max( pItem ? ( static_cast<const SfxUInt32Item*>(pItem)->GetValue()) : 0, (UINT32)1 );
-+ sal_Int32 nWidth = Max( pItem ? ( static_cast<const SfxUInt32Item*>(pItem)->GetValue()) : 0, sal_uInt32( 1 ) );
-
- m_aWidthMF.SetValue(m_aWidthMF.Normalize(nWidth), FUNIT_TWIP);
-
- pItem = GetItem( rSet, SID_ATTR_TRANSFORM_HEIGHT );
-- sal_Int32 nHeight = Max( pItem ? ( static_cast<const SfxUInt32Item*>(pItem)->GetValue()) : 0, (UINT32)1 );
-+ sal_Int32 nHeight = Max( pItem ? ( static_cast<const SfxUInt32Item*>(pItem)->GetValue()) : 0, sal_uInt32( 1 ) );
- m_aHeightMF.SetValue(m_aHeightMF.Normalize(nHeight), FUNIT_TWIP);
- m_fWidthHeightRatio = nHeight ? double(nWidth) / double(nHeight) : 1.0;
-
---- svx/source/dialog/tpline.cxx 21 Jan 2005 16:53:26 -0000 1.28
-+++ svx/source/dialog/tpline.cxx 10 Mar 2005 00:47:23 -0000 1.23.270.4
-@@ -1040,7 +1040,7 @@ void SvxLineTabPage::Reset( const SfxIte
- VirtualDevice aVDev;
- aVDev.SetMapMode(MapMode(MAP_100TH_MM));
-
-- SdrModel* pModel = new SdrModel(NULL, NULL, LOADREFCOUNTS);
-+ SdrModel* pModel = new SdrModel((SfxItemPool*)NULL, (SfxObjectShell*)NULL, (sal_Bool)LOADREFCOUNTS);
- pModel->GetItemPool().FreezeIdRanges();
- SdrPage* pPage = new SdrPage( *pModel, FALSE );
- pPage->SetSize(Size(1000,1000));
---- svx/source/dialog/transfrm.cxx 21 Jan 2005 16:54:37 -0000 1.18
-+++ svx/source/dialog/transfrm.cxx 10 Mar 2005 00:55:22 -0000 1.15.316.4
-@@ -1197,10 +1197,10 @@ void SvxPositionSizeTabPage::Reset( cons
- */ }
-
- pItem = GetItem( mrOutAttrs, SID_ATTR_TRANSFORM_WIDTH );
-- mlOldWidth = Max( pItem ? ( (const SfxUInt32Item*)pItem )->GetValue() : 0, (UINT32)1 );
-+ mlOldWidth = Max( pItem ? ( (const SfxUInt32Item*)pItem )->GetValue() : 0, sal_uInt32( 1 ) );
-
- pItem = GetItem( mrOutAttrs, SID_ATTR_TRANSFORM_HEIGHT );
-- mlOldHeight = Max( pItem ? ( (const SfxUInt32Item*)pItem )->GetValue() : 0, (UINT32)1 );
-+ mlOldHeight = Max( pItem ? ( (const SfxUInt32Item*)pItem )->GetValue() : 0, sal_uInt32( 1 ) );
-
- Fraction aUIScale = mpView->GetModel()->GetUIScale();
-
-@@ -1305,8 +1305,8 @@ int SvxPositionSizeTabPage::DeactivatePa
- {
- if( pSet )
- {
-- INT32 lX = maMtrPosX.GetValue();
-- INT32 lY = maMtrPosY.GetValue();
-+ long lX = maMtrPosX.GetValue();
-+ long lY = maMtrPosY.GetValue();
-
- // #106330#
- // The below BugFix assumed that GetTopLeftPosition()
-@@ -1601,7 +1601,7 @@ void SvxPositionSizeTabPage::SetMinMaxPo
-
- //------------------------------------------------------------------------
-
--void SvxPositionSizeTabPage::GetTopLeftPosition( INT32& rX, INT32& rY,
-+void SvxPositionSizeTabPage::GetTopLeftPosition( long& rX, long& rY,
- const Rectangle& rRect )
- {
- switch ( maCtlPos.GetActualRP() )
---- svx/source/dialog/transfrm.hxx 28 Jun 2004 14:07:02 -0000 1.3
-+++ svx/source/dialog/transfrm.hxx 19 Oct 2004 18:45:16 -0000 1.2.270.2
-@@ -185,7 +185,7 @@ private:
- // DECL_LINK( SetOrientHdl, ListBox * );
-
- void SetMinMaxPosition();
-- void GetTopLeftPosition( INT32& rX, INT32& rY, const Rectangle& rRect );
-+ void GetTopLeftPosition( long& rX, long& rY, const Rectangle& rRect );
- #endif
-
- #if _SOLAR__PRIVATE
---- svx/source/editeng/editdoc.hxx 1 Sep 2003 12:00:48 -0000 1.20
-+++ svx/source/editeng/editdoc.hxx 21 Jan 2005 16:09:43 -0000 1.20.364.2
-@@ -484,7 +484,7 @@ public:
-
- class ParaPortion;
-
--SV_DECL_VARARR( CharPosArray, long, 0, CHARPOSGROW );
-+SV_DECL_VARARR( CharPosArray, sal_Int32, 0, CHARPOSGROW );
-
- // ------------------------------------------------------------------------
- // class EditLine
---- svx/source/editeng/editdoc2.cxx 28 Aug 2002 15:20:19 -0000 1.11
-+++ svx/source/editeng/editdoc2.cxx 21 Jan 2005 16:10:20 -0000 1.11.826.2
-@@ -98,7 +98,7 @@
-
- DBG_NAME( EE_ParaPortion );
-
--SV_IMPL_VARARR( CharPosArray, long );
-+SV_IMPL_VARARR( CharPosArray, sal_Int32 );
-
- /*
-
---- svx/source/editeng/editeng.cxx 11 Jan 2005 12:58:08 -0000 1.93
-+++ svx/source/editeng/editeng.cxx 19 Jan 2005 02:05:11 -0000 1.90.138.3
-@@ -2416,7 +2416,7 @@ BOOL EditEngine::IsVerboseTextComments()
- // =====================================================================
- // ====================== Virtuelle Methoden =======================
- // =====================================================================
--void __EXPORT EditEngine::DrawingText( const Point&, const XubString&, USHORT nTextStart, USHORT nTextLen, const long*, const SvxFont&, sal_uInt16 nPara, sal_uInt16 nIndex, BYTE nRightToLeft )
-+void __EXPORT EditEngine::DrawingText( const Point&, const XubString&, USHORT nTextStart, USHORT nTextLen, const sal_Int32*, const SvxFont&, sal_uInt16 nPara, sal_uInt16 nIndex, BYTE nRightToLeft )
- {
- DBG_CHKTHIS( EditEngine, 0 );
- }
---- svx/source/editeng/impedit2.cxx 11 Jan 2005 12:59:41 -0000 1.98
-+++ svx/source/editeng/impedit2.cxx 21 Jan 2005 16:11:54 -0000 1.95.138.4
-@@ -2827,14 +2827,14 @@ EditPaM ImpEditEngine::GetPaM( Point aDo
- return aPaM;
- }
-
--ULONG ImpEditEngine::GetTextHeight() const
-+sal_uInt32 ImpEditEngine::GetTextHeight() const
- {
- DBG_ASSERT( GetUpdateMode(), "Sollte bei Update=FALSE nicht verwendet werden: GetTextHeight" );
- DBG_ASSERT( IsFormatted() || IsFormatting(), "GetTextHeight: Nicht formatiert" );
- return nCurTextHeight;
- }
-
--ULONG ImpEditEngine::CalcTextWidth( BOOL bIgnoreExtraSpace )
-+sal_uInt32 ImpEditEngine::CalcTextWidth( BOOL bIgnoreExtraSpace )
- {
- // Wenn noch nicht formatiert und nicht gerade dabei.
- // Wird in der Formatierung bei AutoPageSize gerufen.
-@@ -2897,10 +2897,10 @@ ULONG ImpEditEngine::CalcTextWidth( BOOL
- nMaxWidth = 0;
-
- nMaxWidth++; // Ein breiter, da in CreateLines bei >= umgebrochen wird.
-- return (ULONG)nMaxWidth;
-+ return (sal_uInt32)nMaxWidth;
- }
-
--ULONG ImpEditEngine::CalcLineWidth( ParaPortion* pPortion, EditLine* pLine, BOOL bIgnoreExtraSpace )
-+sal_uInt32 ImpEditEngine::CalcLineWidth( ParaPortion* pPortion, EditLine* pLine, BOOL bIgnoreExtraSpace )
- {
- USHORT nPara = GetEditDoc().GetPos( pPortion->GetNode() );
-
-@@ -2897,7 +2897,7 @@
- SvxAdjust eJustification = GetJustification( nPara );
-
- // Berechnung der Breite ohne die Indents...
-- ULONG nWidth = 0;
-+ sal_uInt32 nWidth = 0;
- USHORT nPos = pLine->GetStart();
- for ( USHORT nTP = pLine->GetStartPortion(); nTP <= pLine->GetEndPortion(); nTP++ )
- {
-@@ -2948,10 +2948,10 @@ ULONG ImpEditEngine::CalcLineWidth( Para
- return nWidth;
- }
-
--ULONG ImpEditEngine::CalcTextHeight()
-+sal_uInt32 ImpEditEngine::CalcTextHeight()
- {
- DBG_ASSERT( GetUpdateMode(), "Sollte bei Update=FALSE nicht verwendet werden: CalcTextHeight" );
-- ULONG nY = 0;
-+ sal_uInt32 nY = 0;
- for ( USHORT nPortion = 0; nPortion < GetParaPortions().Count(); nPortion++ )
- nY += GetParaPortions()[nPortion]->GetHeight();
- return nY;
-@@ -2998,9 +2998,9 @@ USHORT ImpEditEngine::GetLineHeight( USH
- return 0xFFFF;
- }
-
--ULONG ImpEditEngine::GetParaHeight( USHORT nParagraph )
-+sal_uInt32 ImpEditEngine::GetParaHeight( USHORT nParagraph )
- {
-- ULONG nHeight = 0;
-+ sal_uInt32 nHeight = 0;
-
- ParaPortion* pPPortion = GetParaPortions().SaveGetObject( nParagraph );
- DBG_ASSERT( pPPortion, "Absatz nicht gefunden: GetParaHeight" );
---- svx/source/editeng/impedit3.cxx 26 Nov 2004 18:12:55 -0000 1.94
-+++ svx/source/editeng/impedit3.cxx 21 Jan 2005 16:12:20 -0000 1.91.220.4
-@@ -482,7 +482,7 @@ void ImpEditEngine::FormatDoc()
- aStatus.GetStatusWord() |= !IsVertical() ? EE_STAT_TEXTHEIGHTCHANGED : EE_STAT_TEXTWIDTHCHANGED;
- if ( nNewHeight < nCurTextHeight )
- {
-- aInvalidRec.Bottom() = (long)Max( nNewHeight, nCurTextHeight );
-+ aInvalidRec.Bottom() = Max( long(nNewHeight), long(nCurTextHeight) );
- if ( aInvalidRec.IsEmpty() )
- {
- aInvalidRec.Top() = 0;
-@@ -773,7 +773,7 @@ sal_Bool ImpEditEngine::CreateLines( USH
- SvxFont aTmpFont( pNode->GetCharAttribs().GetDefFont() );
-
- sal_Bool bCalcCharPositions = sal_True;
-- long* pBuf = new long[ pNode->Len() ];
-+ sal_Int32* pBuf = new sal_Int32[ pNode->Len() ];
-
- sal_Bool bSameLineAgain = sal_False; // Fuer TextRanger, wenn sich die Hoehe aendert.
- TabInfo aCurrentTab;
-@@ -1085,7 +1085,7 @@ sal_Bool ImpEditEngine::CreateLines( USH
-
- // And now check for Compression:
- if ( pPortion->GetLen() && GetAsianCompressionMode() )
-- bCompressedChars |= ImplCalcAsianCompression( pNode, pPortion, nTmpPos, (long*)pLine->GetCharPosArray().GetData() + (nTmpPos-pLine->GetStart()), 10000, FALSE );
-+ bCompressedChars |= ImplCalcAsianCompression( pNode, pPortion, nTmpPos, const_cast< sal_Int32* >( pLine->GetCharPosArray().GetData() + (nTmpPos-pLine->GetStart()) ), 10000, FALSE );
-
- nTmpWidth += pPortion->GetSize().Width();
-
---- svx/source/editeng/impedit4.cxx 11 Jan 2005 12:59:55 -0000 1.55
-+++ svx/source/editeng/impedit4.cxx 19 Jan 2005 02:06:20 -0000 1.52.136.3
-@@ -2669,7 +2669,7 @@ EditSelection ImpEditEngine::Translitera
-
- xub_StrLen nLen = nCurrentEnd - nCurrentStart;
-
-- Sequence <long> aOffsets;
-+ Sequence <sal_Int32> aOffsets;
- String aNewText( aTranslitarationWrapper.transliterate( *pNode, nLanguage, nCurrentStart, nLen, &aOffsets ) );
-
- if( ( nLen != aNewText.Len() ) || !pNode->Equals( aNewText, nCurrentStart, nLen ) )
-@@ -2694,7 +2694,7 @@ EditSelection ImpEditEngine::Translitera
-
- // Change text without loosing the attributes
- USHORT nCharsAfterTransliteration = aOffsets.getLength();
-- const long* pOffsets = aOffsets.getConstArray();
-+ const sal_Int32* pOffsets = aOffsets.getConstArray();
- short nDiffs = 0;
- for ( USHORT n = 0; n < nCharsAfterTransliteration; n++ )
- {
---- svx/source/fmcomp/fmgridcl.cxx 17 Feb 2005 10:54:24 -0000 1.46
-+++ svx/source/fmcomp/fmgridcl.cxx 10 Mar 2005 01:01:04 -0000 1.43.108.4
-@@ -2207,7 +2207,7 @@ void FmGridControl::Select()
- }
- }
- // -----------------------------------------------------------------------------
--long FmGridControl::GetSelectedColumn() const
-+sal_Int32 FmGridControl::GetSelectedColumn() const
- {
- return m_nCurrentSelectedColumn;
- }
---- svx/source/form/filtnav.cxx 8 Sep 2004 14:40:16 -0000 1.37
-+++ svx/source/form/filtnav.cxx 21 Jan 2005 16:12:44 -0000 1.37.94.1
-@@ -1373,7 +1373,7 @@ sal_Bool FmFilterNavigator::EditedEntry(
- if (aText.Len() == 0)
- {
- // deleting the entry asynchron
-- sal_uInt32 nEvent;
-+ sal_uIntPtr nEvent;
- PostUserEvent(nEvent, LINK(this, FmFilterNavigator, OnRemove), pEntry);
- }
- else
---- svx/source/form/fmexpl.cxx 16 Nov 2004 11:23:04 -0000 1.31
-+++ svx/source/form/fmexpl.cxx 21 Jan 2005 16:13:05 -0000 1.31.156.1
-@@ -411,7 +411,7 @@ FmEntryData::FmEntryData( const FmEntryD
- void FmEntryData::Clear()
- {
- FmEntryData* pEntryData;
-- while( pEntryData = GetChildList()->Remove(sal_uInt32(0)) )
-+ while( pEntryData = GetChildList()->Remove(0UL) )
- delete pEntryData;
- }
-
---- svx/source/form/fmvwimp.cxx 17 Feb 2005 10:56:51 -0000 1.42
-+++ svx/source/form/fmvwimp.cxx 10 Mar 2005 00:31:19 -0000 1.33.104.4
-@@ -1696,8 +1696,8 @@ void FmXFormView::createControlLabelPair
- aRealSize.Height()= aDefSize.Height();
-
- // je nach Skalierung des Zieldevices muss die Groesse noch normiert werden (#53523#)
-- aRealSize.Width() = sal_Int32(Fraction(aRealSize.Width(), 1) * eTargetMode.GetScaleX());
-- aRealSize.Height() = sal_Int32(Fraction(aRealSize.Height(), 1) * eTargetMode.GetScaleY());
-+ aRealSize.Width() = Fraction(aRealSize.Width(), 1) * eTargetMode.GetScaleX();
-+ aRealSize.Height() = Fraction(aRealSize.Height(), 1) * eTargetMode.GetScaleY();
- _rpLabel->SetLogicRect(
- ::Rectangle( _pOutDev->LogicToLogic(Point(0, _nYOffsetMM), eSourceMode, eTargetMode),
- _pOutDev->LogicToLogic(aRealSize, eSourceMode, eTargetMode)
-@@ -1717,8 +1717,8 @@ void FmXFormView::createControlLabelPair
- szControlSize = aDefSize;
-
- // normieren wie oben
-- szControlSize.Width() = sal_Int32(Fraction(szControlSize.Width(), 1) * eTargetMode.GetScaleX());
-- szControlSize.Height() = sal_Int32(Fraction(szControlSize.Height(), 1) * eTargetMode.GetScaleY());
-+ szControlSize.Width() = Fraction(szControlSize.Width(), 1) * eTargetMode.GetScaleX();
-+ szControlSize.Height() = Fraction(szControlSize.Height(), 1) * eTargetMode.GetScaleY();
- _rpControl->SetLogicRect(
- ::Rectangle( _pOutDev->LogicToLogic(Point(aRealSize.Width(), _nYOffsetMM), eSourceMode, eTargetMode),
- _pOutDev->LogicToLogic(szControlSize, eSourceMode, eTargetMode)
---- svx/source/inc/DGColorNameLookUp.hxx 26 May 2003 09:05:56 -0000 1.2
-+++ svx/source/inc/DGColorNameLookUp.hxx 9 Sep 2004 09:40:03 -0000 1.2.600.1
-@@ -102,7 +102,7 @@ public:
- color or, when no name exists, a string of the form "#RRGGBB"
- with two hexadecimal digits for each color component.
- */
-- ::rtl::OUString LookUpColor (long int nColor) const;
-+ ::rtl::OUString LookUpColor (sal_Int32 nColor) const;
-
- private:
- /// Define hash map type to convert numerical color values to names.
---- svx/source/items/paraitem.cxx 4 Apr 2003 18:03:45 -0000 1.27
-+++ svx/source/items/paraitem.cxx 9 Sep 2004 09:40:04 -0000 1.27.664.1
-@@ -148,8 +148,8 @@ using namespace ::rtl;
- using namespace ::com::sun::star;
-
- // Konvertierung fuer UNO
--#define TWIP_TO_MM100(TWIP) ((TWIP) >= 0 ? (((TWIP)*127L+36L)/72L) : (((TWIP)*127L-36L)/72L))
--#define MM100_TO_TWIP(MM100) ((MM100) >= 0 ? (((MM100)*72L+63L)/127L) : (((MM100)*72L-63L)/127L))
-+#define TWIP_TO_MM100(TWIP) ((TWIP) >= 0 ? (((TWIP)*127+36)/72) : (((TWIP)*127-36)/72))
-+#define MM100_TO_TWIP(MM100) ((MM100) >= 0 ? (((MM100)*72+63)/127) : (((MM100)*72-63)/127))
-
-
- // STATIC DATA -----------------------------------------------------------
---- svx/source/msfilter/msdffimp.cxx 2 Mar 2005 09:21:14 -0000 1.118
-+++ svx/source/msfilter/msdffimp.cxx 10 Mar 2005 01:09:38 -0000 1.97.10.5
-@@ -3448,7 +3448,7 @@ struct EscherBlipCacheEntry
- aUniqueID( rUniqueID ) {}
- };
-
--void SvxMSDffManager::Scale( long& rVal ) const
-+void SvxMSDffManager::Scale( sal_Int32& rVal ) const
- {
- if ( bNeedMap )
- rVal = BigMulDiv( rVal, nMapMul, nMapDiv );
-@@ -3522,7 +3522,7 @@ void SvxMSDffManager::Scale( XPolyPolygo
- Scale( rPoly[ nPolyNum ] );
- }
-
--void SvxMSDffManager::ScaleEmu( long& rVal ) const
-+void SvxMSDffManager::ScaleEmu( sal_Int32& rVal ) const
- {
- rVal = BigMulDiv( rVal, nEmuMul, nEmuDiv );
- }
-@@ -4803,7 +4803,7 @@ SdrObject* SvxMSDffManager::ImportShape(
- aObjData.bChildAnchor = maShapeRecords.SeekToContent( rSt, DFF_msofbtChildAnchor, SEEK_FROM_CURRENT_AND_RESTART );
- if ( aObjData.bChildAnchor )
- {
-- INT32 l, o, r, u;
-+ sal_Int32 l, o, r, u;
- rSt >> l >> o >> r >> u;
- Scale( l );
- Scale( o );
-@@ -5408,7 +5408,7 @@ Rectangle SvxMSDffManager::GetGlobalChil
- {
- sal_Int16 ls, os, rs, us;
- rSt >> os >> ls >> rs >> us; // etwas seltsame Koordinatenreihenfolge ...
-- long l = ls, o = os, r = rs, u = us;
-+ sal_Int32 l = ls, o = os, r = rs, u = us;
- Scale( l );
- Scale( o );
- Scale( r );
-@@ -6344,9 +6344,9 @@ void SvxMSDffManager::GetCtrlData( long
- rStCtrl.Seek( nOffsDgg );
-
- BYTE nVer;
-- USHORT nInst;
-- USHORT nFbt;
-- ULONG nLength;
-+ sal_uInt16 nInst;
-+ sal_uInt16 nFbt;
-+ sal_uInt32 nLength;
- if( !this->ReadCommonRecordHeader( rStCtrl, nVer, nInst, nFbt, nLength ) ) return;
-
- BOOL bOk;
-@@ -6389,9 +6389,9 @@ void SvxMSDffManager::GetCtrlData( long
- void SvxMSDffManager::GetDrawingGroupContainerData( SvStream& rSt, ULONG nLenDgg )
- {
- BYTE nVer;
-- USHORT nInst;
-- USHORT nFbt;
-- ULONG nLength;
-+ sal_uInt16 nInst;
-+ sal_uInt16 nFbt;
-+ sal_uInt32 nLength;
-
- ULONG nLenBStoreCont = 0, nLenFBSE = 0, nRead = 0;
-
-@@ -6476,7 +6476,10 @@ void SvxMSDffManager::GetDrawingGroupCon
- //
- void SvxMSDffManager::GetDrawingContainerData( SvStream& rSt, ULONG nLenDg )
- {
-- BYTE nVer;USHORT nInst;USHORT nFbt;ULONG nLength;
-+ BYTE nVer;
-+ sal_uInt16 nInst;
-+ sal_uInt16 nFbt;
-+ sal_uInt32 nLength;
-
- ULONG nReadDg = 0;
-
-@@ -6509,7 +6512,10 @@ BOOL SvxMSDffManager::GetShapeGroupConta
- ULONG nLenShapeGroupCont,
- BOOL bPatriarch )
- {
-- BYTE nVer;USHORT nInst;USHORT nFbt;ULONG nLength;
-+ BYTE nVer;
-+ sal_uInt16 nInst;
-+ sal_uInt16 nFbt;
-+ sal_uInt32 nLength;
- long nStartShapeGroupCont = rSt.Tell();
- // Wir stehen in einem Shape Group Container (ggfs. mehrere pro Seite)
- // und muessen nun
-@@ -6548,7 +6554,10 @@ BOOL SvxMSDffManager::GetShapeGroupConta
-
- BOOL SvxMSDffManager::GetShapeContainerData( SvStream& rSt, ULONG nLenShapeCont, ULONG nPosGroup )
- {
-- BYTE nVer;USHORT nInst;USHORT nFbt;ULONG nLength;
-+ BYTE nVer;
-+ sal_uInt16 nInst;
-+ sal_uInt16 nFbt;
-+ sal_uInt32 nLength;
- long nStartShapeCont = rSt.Tell();
- // Wir stehen in einem Shape Container (ggfs. mehrere pro Sh. Group)
- // und muessen nun
-@@ -6911,9 +6920,9 @@ BOOL SvxMSDffManager::GetBLIPDirect(SvSt
- int nRes = GRFILTER_OPENERROR; // Fehlervariable initialisieren
-
- // nachschauen, ob es sich auch wirklich um ein BLIP handelt
-- ULONG nLength;
-- USHORT nInst, nFbt;
- BYTE nVer;
-+ sal_uInt16 nInst, nFbt;
-+ sal_uInt32 nLength;
- if( ReadCommonRecordHeader( rBLIPStream, nVer, nInst, nFbt, nLength) && ( 0xF018 <= nFbt ) && ( 0xF117 >= nFbt ) )
- {
- Size aMtfSize100;
-@@ -7081,9 +7090,9 @@ BOOL SvxMSDffManager::ReadCommonRecordHe
- /* auch static */
- BOOL SvxMSDffManager::ReadCommonRecordHeader( SvStream& rSt,
- BYTE& rVer,
-- USHORT& rInst,
-- USHORT& rFbt,
-- ULONG& rLength )
-+ sal_uInt16& rInst,
-+ sal_uInt16& rFbt,
-+ sal_uInt32& rLength )
- {
- sal_uInt16 nTmp;
- rSt >> nTmp >> rFbt >> rLength;
---- svx/source/outliner/outliner.cxx 11 Jan 2005 13:02:09 -0000 1.58
-+++ svx/source/outliner/outliner.cxx 19 Jan 2005 02:31:52 -0000 1.56.298.2
-@@ -1197,14 +1197,14 @@ void Outliner::PaintBullet( USHORT nPara
- else
- {
- Font aSvxFont( aBulletFont );
-- long* pBuf = new long[ pPara->GetText().Len() ];
-+ sal_Int32* pBuf = new sal_Int32[ pPara->GetText().Len() ];
- pOutDev->GetTextArray( pPara->GetText(), pBuf );
- // aTextPos ist Bottom, jetzt die Baseline liefern:
- FontMetric aMetric( pOutDev->GetFontMetric() );
- aTextPos.Y() -= aMetric.GetDescent();
-
- // #101498#
-- DrawingText( aTextPos, pPara->GetText(), 0, pPara->GetText().Len(), pBuf, aSvxFont, nPara, 0xFFFF, 0xFF);
-+ DrawingText( aTextPos, pPara->GetText(), (USHORT)0, pPara->GetText().Len(), pBuf, aSvxFont, nPara, 0xFFFF, 0xFF);
-
- delete[] pBuf;
- }
---- svx/source/svdraw/svdedtv2.cxx 18 Nov 2004 11:03:53 -0000 1.17
-+++ svx/source/svdraw/svdedtv2.cxx 21 Jan 2005 16:14:26 -0000 1.17.154.1
-@@ -913,7 +913,7 @@ void SdrEditView::DistributeMarkedObject
-
- // clear list
- while(aEntryList.Count())
-- delete aEntryList.Remove((UINT32)0L);
-+ delete aEntryList.Remove(0UL);
- }
-
- if(eVer != SvxDistributeVerticalNone)
-@@ -1001,7 +1001,7 @@ void SdrEditView::DistributeMarkedObject
-
- // clear list
- while(aEntryList.Count())
-- delete aEntryList.Remove((UINT32)0L);
-+ delete aEntryList.Remove(0UL);
- }
-
- // UNDO-Comment and end of UNDO
---- svx/source/svdraw/svdfppt.cxx 11 Jan 2005 13:02:57 -0000 1.130
-+++ svx/source/svdraw/svdfppt.cxx 19 Jan 2005 02:40:56 -0000 1.122.10.3
-@@ -830,7 +830,7 @@ void SdrEscherImport::ProcessClientAncho
- {
- INT16 ls, os, rs, us;
- rSt >> os >> ls >> rs >> us; // etwas seltsame Koordinatenreihenfolge ...
-- long l = ls, o = os, r = rs, u = us;
-+ sal_Int32 l = ls, o = os, r = rs, u = us;
- Scale( l );
- Scale( o );
- Scale( r );
---- svx/source/svdraw/svdmodel.cxx 3 Nov 2004 10:57:13 -0000 1.60
-+++ svx/source/svdraw/svdmodel.cxx 19 Jan 2005 02:45:36 -0000 1.56.8.3
-@@ -456,7 +456,7 @@ void SdrModel::ImpCtor(SfxItemPool* pPoo
- ImpCreateTables();
- }
-
--SdrModel::SdrModel(SfxItemPool* pPool, SfxObjectShell* pPers, INT32 bLoadRefCounts):
-+SdrModel::SdrModel(SfxItemPool* pPool, SfxObjectShell* pPers, sal_Bool bLoadRefCounts):
- //BFS01 aInfo(TRUE),
- maPages(1024,32,32),
- maMaPag(1024,32,32)
-@@ -469,7 +469,7 @@ SdrModel::SdrModel(SfxItemPool* pPool, S
- ImpCtor(pPool,pPers,FALSE, (FASTBOOL)bLoadRefCounts);
- }
-
--SdrModel::SdrModel(const String& rPath, SfxItemPool* pPool, SfxObjectShell* pPers, INT32 bLoadRefCounts):
-+SdrModel::SdrModel(const String& rPath, SfxItemPool* pPool, SfxObjectShell* pPers, sal_Bool bLoadRefCounts):
- //BFS01 aInfo(TRUE),
- maPages(1024,32,32),
- maMaPag(1024,32,32),
-@@ -483,7 +483,7 @@ SdrModel::SdrModel(const String& rPath,
- ImpCtor(pPool,pPers,FALSE, (FASTBOOL)bLoadRefCounts);
- }
-
--SdrModel::SdrModel(SfxItemPool* pPool, SfxObjectShell* pPers, FASTBOOL bUseExtColorTable, INT32 bLoadRefCounts):
-+SdrModel::SdrModel(SfxItemPool* pPool, SfxObjectShell* pPers, FASTBOOL bUseExtColorTable, sal_Bool bLoadRefCounts):
- //BFS01 aInfo(TRUE),
- maPages(1024,32,32),
- maMaPag(1024,32,32)
-@@ -496,7 +496,7 @@ SdrModel::SdrModel(SfxItemPool* pPool, S
- ImpCtor(pPool,pPers,bUseExtColorTable, (FASTBOOL)bLoadRefCounts);
- }
-
--SdrModel::SdrModel(const String& rPath, SfxItemPool* pPool, SfxObjectShell* pPers, FASTBOOL bUseExtColorTable, INT32 bLoadRefCounts):
-+SdrModel::SdrModel(const String& rPath, SfxItemPool* pPool, SfxObjectShell* pPers, FASTBOOL bUseExtColorTable, sal_Bool bLoadRefCounts):
- //BFS01 aInfo(TRUE),
- maPages(1024,32,32),
- maMaPag(1024,32,32),
---- svx/source/svdraw/svdoattr.cxx 3 Nov 2004 10:58:05 -0000 1.41
-+++ svx/source/svdraw/svdoattr.cxx 19 Jan 2005 02:42:27 -0000 1.39.320.3
-@@ -570,11 +570,11 @@ INT32 SdrAttrObj::ImpGetLineEndAdd() con
- nSttWdt /= 2;
-
- // Lieber etwas mehr, dafuer keine Wurzel ziehen
-- long nSttAdd = Max(nSttWdt, nSttHgt);
-+ sal_Int32 nSttAdd = Max(nSttWdt, nSttHgt);
- nSttAdd *= 3;
- nSttAdd /= 2;
-
-- long nEndWdt = ((const XLineEndWidthItem&)(rSet.Get(XATTR_LINEENDWIDTH))).GetValue();
-+ sal_Int32 nEndWdt = ((const XLineEndWidthItem&)(rSet.Get(XATTR_LINEENDWIDTH))).GetValue();
-
- if(nEndWdt < 0)
- nEndWdt = -nLineWdt * nEndWdt / 100; // <0 = relativ
---- svx/source/svdraw/svdopath.cxx 3 Nov 2004 11:01:41 -0000 1.27
-+++ svx/source/svdraw/svdopath.cxx 19 Jan 2005 02:37:29 -0000 1.25.32.2
-@@ -104,6 +104,8 @@
- // #104018# replace macros above with type-safe methods
- inline sal_Int32 ImplTwipsToMM(sal_Int32 nVal) { return ((nVal * 127 + 36) / 72); }
- inline sal_Int32 ImplMMToTwips(sal_Int32 nVal) { return ((nVal * 72 + 63) / 127); }
-+inline sal_Int64 ImplTwipsToMM(sal_Int64 nVal) { return ((nVal * 127 + 36) / 72); }
-+inline sal_Int64 ImplMMToTwips(sal_Int64 nVal) { return ((nVal * 72 + 63) / 127); }
- inline double ImplTwipsToMM(double fVal) { return (fVal * (127.0 / 72.0)); }
- inline double ImplMMToTwips(double fVal) { return (fVal * (72.0 / 127.0)); }
-
diff --git a/patches/64bit/trivial-vcl.diff b/patches/64bit/trivial-vcl.diff
deleted file mode 100644
index ee2c187c7..000000000
--- a/patches/64bit/trivial-vcl.diff
+++ /dev/null
@@ -1,284 +0,0 @@
---- vcl/inc/bitmap.hxx 13 Jan 2005 17:26:04 -0000 1.14
-+++ vcl/inc/bitmap.hxx 10 Mar 2005 02:24:40 -0000 1.13.14.2
-@@ -305,7 +305,7 @@ public:
- SAL_DLLPRIVATE static BOOL ImplWriteDIBFileHeader( SvStream& rOStm, BitmapReadAccess& rAcc );
- SAL_DLLPRIVATE static BOOL ImplWriteDIBPalette( SvStream& rOStm, BitmapReadAccess& rAcc );
- SAL_DLLPRIVATE static BOOL ImplWriteDIBBits( SvStream& rOStm, BitmapReadAccess& rAcc,
-- ULONG nCompression, ULONG& rImageSize );
-+ ULONG nCompression, sal_uInt32& rImageSize );
- SAL_DLLPRIVATE static void ImplDecodeRLE( BYTE* pBuffer, DIBInfoHeader& rHeader,
- BitmapWriteAccess& rAcc, BOOL bRLE4 );
- SAL_DLLPRIVATE static BOOL ImplWriteRLE( SvStream& rOStm, BitmapReadAccess& rAcc, BOOL bRLE4 );
---- vcl/inc/dockwin.hxx 13 Jan 2005 17:30:41 -0000 1.9
-+++ vcl/inc/dockwin.hxx 10 Mar 2005 02:17:23 -0000 1.8.40.2
-@@ -140,10 +140,10 @@ private:
- long mnTrackY;
- long mnTrackWidth;
- long mnTrackHeight;
-- long mnDockLeft;
-- long mnDockTop;
-- long mnDockRight;
-- long mnDockBottom;
-+ sal_Int32 mnDockLeft;
-+ sal_Int32 mnDockTop;
-+ sal_Int32 mnDockRight;
-+ sal_Int32 mnDockBottom;
- WinBits mnFloatBits;
- BOOL mbDockCanceled:1,
- mbFloatPrevented:1,
---- vcl/inc/imgcons.hxx 13 Jan 2005 17:36:46 -0000 1.3
-+++ vcl/inc/imgcons.hxx 10 Mar 2005 02:09:00 -0000 1.2.144.2
-@@ -110,7 +110,7 @@ public:
- BOOL GetData( BitmapEx& rBmpEx ) const;
- BOOL GetData( Image& rImage ) const;
- const Rectangle& GetChangedRect() const { return maChangedRect; }
-- ULONG GetStatus() const;
-+ sal_uInt32 GetStatus() const;
-
- void SetDataChangedLink( const Link& rLink ) { maChgLink = rLink; }
- const Link& GetDataChangedLink() const { return maChgLink; }
-@@ -120,22 +120,22 @@ public:
-
- public:
-
-- virtual void Init( ULONG nWidth, ULONG nHeight );
-+ virtual void Init( sal_uInt32 nWidth, sal_uInt32 nHeight );
-
- virtual void SetColorModel( USHORT nBitCount,
-- ULONG nPalEntries, const ULONG* pRGBAPal,
-- ULONG nRMask, ULONG nGMask, ULONG nBMask, ULONG nAMask );
-+ sal_uInt32 nPalEntries, const sal_uInt32* pRGBAPal,
-+ sal_uInt32 nRMask, sal_uInt32 nGMask, sal_uInt32 nBMask, sal_uInt32 nAMask );
-
-- virtual void SetPixelsByBytes( ULONG nConsX, ULONG nConsY,
-- ULONG nConsWidth, ULONG nConsHeight,
-- const BYTE* pProducerData, ULONG nOffset, ULONG nScanSize );
--
-- virtual void SetPixelsByLongs( ULONG nConsX, ULONG nConsY,
-- ULONG nConsWidth, ULONG nConsHeight,
-- const ULONG* pProducerData, ULONG nOffset, ULONG nScanSize );
-+ virtual void SetPixelsByBytes( sal_uInt32 nConsX, sal_uInt32 nConsY,
-+ sal_uInt32 nConsWidth, sal_uInt32 nConsHeight,
-+ const BYTE* pProducerData, sal_uInt32 nOffset, sal_uInt32 nScanSize );
-+
-+ virtual void SetPixelsByLongs( sal_uInt32 nConsX, sal_uInt32 nConsY,
-+ sal_uInt32 nConsWidth, sal_uInt32 nConsHeight,
-+ const sal_uInt32* pProducerData, sal_uInt32 nOffset, sal_uInt32 nScanSize );
-
-- virtual void Completed( ULONG nStatus );
--// virtual void Completed( ULONG nStatus, ImageProducer& rProducer );
-+ virtual void Completed( sal_uInt32 nStatus );
-+// virtual void Completed( sal_uInt32 nStatus, ImageProducer& rProducer );
- };
-
- #endif // _IMGCONS_HXX
---- vcl/source/control/ilstbox.cxx 26 Nov 2004 20:41:57 -0000 1.50
-+++ vcl/source/control/ilstbox.cxx 18 Jan 2005 17:36:18 -0000 1.47.6.3
-@@ -2662,7 +2662,7 @@ void ImplWin::ImplDraw( bool bLayout )
- // The listbox is painted over the entire control including the
- // border, but ImplWin does not contain the border => correction
- // needed.
-- long nLeft, nTop, nRight, nBottom;
-+ sal_Int32 nLeft, nTop, nRight, nBottom;
- pWin->GetBorder( nLeft, nTop, nRight, nBottom );
- Point aPoint( -nLeft, -nTop );
- Region aCtrlRegion( Rectangle( aPoint - GetPosPixel(), pWin->GetSizePixel() ) );
---- vcl/source/gdi/bitmap2.cxx 17 Jun 2004 12:14:50 -0000 1.6
-+++ vcl/source/gdi/bitmap2.cxx 10 Sep 2004 15:33:33 -0000 1.6.6.1
-@@ -870,7 +870,7 @@ BOOL Bitmap::ImplWriteDIBPalette( SvStre
- // ------------------------------------------------------------------
-
- BOOL Bitmap::ImplWriteDIBBits( SvStream& rOStm, BitmapReadAccess& rAcc,
-- ULONG nCompression, ULONG& rImageSize )
-+ ULONG nCompression, sal_uInt32& rImageSize )
- {
- if( BITFIELDS == nCompression )
- {
---- vcl/source/gdi/imgcons.cxx 6 Jan 2004 13:41:30 -0000 1.3
-+++ vcl/source/gdi/imgcons.cxx 14 Sep 2004 18:06:33 -0000 1.3.144.1
-@@ -160,7 +160,7 @@ ImageConsumer::~ImageConsumer()
-
- // -----------------------------------------------------------------------------
-
--void ImageConsumer::Init( ULONG nWidth, ULONG nHeight )
-+void ImageConsumer::Init( sal_uInt32 nWidth, sal_uInt32 nHeight )
- {
- maSize = Size( nWidth, nHeight );
- maBitmap = maMask = Bitmap();
-@@ -171,8 +171,8 @@ void ImageConsumer::Init( ULONG nWidth,
- // -----------------------------------------------------------------------------
-
- void ImageConsumer::SetColorModel( USHORT nBitCount,
-- ULONG nPalEntries, const ULONG* pRGBAPal,
-- ULONG nRMask, ULONG nGMask, ULONG nBMask, ULONG nAMask )
-+ sal_uInt32 nPalEntries, const sal_uInt32* pRGBAPal,
-+ sal_uInt32 nRMask, sal_uInt32 nGMask, sal_uInt32 nBMask, sal_uInt32 nAMask )
- {
- DBG_ASSERT( maSize.Width() && maSize.Height(), "Missing call to ImageConsumer::Init(...)!" );
-
-@@ -247,9 +247,9 @@ void ImageConsumer::SetColorModel( USHOR
-
- // -----------------------------------------------------------------------------
-
--void ImageConsumer::SetPixelsByBytes( ULONG nConsX, ULONG nConsY,
-- ULONG nConsWidth, ULONG nConsHeight,
-- const BYTE* pData, ULONG nOffset, ULONG nScanSize )
-+void ImageConsumer::SetPixelsByBytes( sal_uInt32 nConsX, sal_uInt32 nConsY,
-+ sal_uInt32 nConsWidth, sal_uInt32 nConsHeight,
-+ const BYTE* pData, sal_uInt32 nOffset, sal_uInt32 nScanSize )
- {
- DBG_ASSERT( !!maBitmap && !!maMask, "Missing call to ImageConsumer::SetColorModel(...)!" );
-
-@@ -384,9 +384,9 @@ void ImageConsumer::SetPixelsByBytes( UL
-
- // -----------------------------------------------------------------------------
-
--void ImageConsumer::SetPixelsByLongs( ULONG nConsX, ULONG nConsY,
-- ULONG nConsWidth, ULONG nConsHeight,
-- const ULONG* pData, ULONG nOffset, ULONG nScanSize )
-+void ImageConsumer::SetPixelsByLongs( sal_uInt32 nConsX, sal_uInt32 nConsY,
-+ sal_uInt32 nConsWidth, sal_uInt32 nConsHeight,
-+ const sal_uInt32* pData, sal_uInt32 nOffset, sal_uInt32 nScanSize )
- {
- DBG_ASSERT( !!maBitmap && !!maMask, "Missing call to ImageConsumer::SetColorModel(...)!" );
-
-@@ -521,7 +521,7 @@ void ImageConsumer::SetPixelsByLongs( UL
-
- // -----------------------------------------------------------------------------
-
--void ImageConsumer::Completed( ULONG nStatus /*, ImageProducer& rProducer */ )
-+void ImageConsumer::Completed( sal_uInt32 nStatus /*, ImageProducer& rProducer */ )
- {
- delete mpMapper;
- mpMapper = NULL;
-@@ -565,7 +565,7 @@ void ImageConsumer::DataChanged()
-
- // -----------------------------------------------------------------------------
-
--ULONG ImageConsumer::GetStatus() const
-+sal_uInt32 ImageConsumer::GetStatus() const
- {
- return mnStatus;
- }
---- vcl/source/gdi/pdfwriter_impl.cxx 31 Jan 2005 13:23:40 -0000 1.78
-+++ vcl/source/gdi/pdfwriter_impl.cxx 10 Mar 2005 02:39:04 -0000 1.75.50.2
-@@ -3497,7 +3497,7 @@ void PDFWriterImpl::createDefaultPushBut
- OStringBuffer aDA( 256 );
- appendNonStrokingColor( replaceColor( rWidget.TextColor, rSettings.GetButtonTextColor() ), aDA );
- aDA.append( " /HelvReg " );
-- m_aPages[m_nCurrentPage].appendMappedLength( aFont.GetHeight(), aDA );
-+ m_aPages[m_nCurrentPage].appendMappedLength( sal_Int32( aFont.GetHeight() ), aDA );
- aDA.append( " Tf" );
- rButton.m_aDAString = aDA.makeStringAndClear();
-
-@@ -3554,7 +3554,7 @@ void PDFWriterImpl::createDefaultEditApp
- OStringBuffer aDA( 32 );
- appendNonStrokingColor( replaceColor( rWidget.TextColor, rSettings.GetFieldTextColor() ), aDA );
- aDA.append( " /HelvReg " );
-- m_aPages[ m_nCurrentPage ].appendMappedLength( aFont.GetHeight(), aDA );
-+ m_aPages[ m_nCurrentPage ].appendMappedLength( sal_Int32( aFont.GetHeight() ), aDA );
- aDA.append( " Tf" );
-
- /* create an empty appearance stream, let the viewer create
-@@ -3655,7 +3655,7 @@ void PDFWriterImpl::createDefaultListBox
- #endif
- appendNonStrokingColor( replaceColor( rWidget.TextColor, rSettings.GetFieldTextColor() ), aDA );
- aDA.append( " /HelvReg " );
-- m_aPages[ m_nCurrentPage ].appendMappedLength( aFont.GetHeight(), aDA );
-+ m_aPages[ m_nCurrentPage ].appendMappedLength( sal_Int32( aFont.GetHeight() ), aDA );
- aDA.append( " Tf" );
- rBox.m_aDAString = aDA.makeStringAndClear();
- }
-@@ -3743,7 +3743,7 @@ void PDFWriterImpl::createDefaultCheckBo
- aDA.append( "/Tx BMC\r\nq BT\r\n" );
- appendNonStrokingColor( replaceColor( rWidget.TextColor, rSettings.GetRadioCheckTextColor() ), aDA );
- aDA.append( " /ZaDb " );
-- m_aPages[ m_nCurrentPage ].appendMappedLength( aCheckRect.GetHeight(), aDA );
-+ m_aPages[ m_nCurrentPage ].appendMappedLength( sal_Int32( aCheckRect.GetHeight() ), aDA );
- aDA.append( " Tf\r\n" );
- m_aPages[ m_nCurrentPage ].appendMappedLength( nCharXOffset, aDA );
- aDA.append( " " );
-@@ -3838,7 +3838,7 @@ void PDFWriterImpl::createDefaultRadioBu
- aDA.append( "/Tx BMC\r\nq BT\r\n" );
- appendNonStrokingColor( replaceColor( rWidget.TextColor, rSettings.GetRadioCheckTextColor() ), aDA );
- aDA.append( " /ZaDb " );
-- m_aPages[m_nCurrentPage].appendMappedLength( aCheckRect.GetHeight(), aDA );
-+ m_aPages[m_nCurrentPage].appendMappedLength( sal_Int32( aCheckRect.GetHeight() ), aDA );
- aDA.append( " Tf\r\n0 0 Td\r\nET\r\nQ\r\n" );
- writeBuffer( aDA.getStr(), aDA.getLength() );
- setFillColor( replaceColor( rWidget.TextColor, rSettings.GetRadioCheckTextColor() ) );
---- vcl/source/gdi/pngwrite.cxx 28 Jun 2004 16:23:56 -0000 1.4
-+++ vcl/source/gdi/pngwrite.cxx 20 Oct 2004 09:48:49 -0000 1.3.6.2
-@@ -149,7 +149,7 @@ private:
- void ImplWritePalette();
- void ImplOpenChunk( ULONG nChunkType );
- void ImplWriteChunk( BYTE nNumb );
-- void ImplWriteChunk( ULONG nNumb );
-+ void ImplWriteChunk( sal_uInt32 nNumb );
- void ImplWriteChunk( unsigned char* pSource, sal_uInt32 nDatSize );
- void ImplCloseChunk( void );
- };
-@@ -331,8 +331,8 @@ std::vector< vcl::PNGWriter::ChunkData >
- BOOL PNGWriterImpl::ImplWriteHeader()
- {
- ImplOpenChunk(PNGCHUNK_IHDR);
-- ImplWriteChunk( ( mnWidth = (ULONG)mpAccess->Width() ) );
-- ImplWriteChunk( ( mnHeight = (ULONG)mpAccess->Height() ) );
-+ ImplWriteChunk( sal_uInt32( mnWidth = mpAccess->Width() ) );
-+ ImplWriteChunk( sal_uInt32( mnHeight = mpAccess->Height() ) );
-
- if ( mnWidth && mnHeight && mnBitsPerPixel && mbStatus )
- {
-@@ -689,7 +689,7 @@ void PNGWriterImpl::ImplWriteChunk ( BYT
- maChunkSeq.back().aData.push_back( nSource );
- }
-
--void PNGWriterImpl::ImplWriteChunk ( ULONG nSource )
-+void PNGWriterImpl::ImplWriteChunk ( sal_uInt32 nSource )
- {
- vcl::PNGWriter::ChunkData& rChunkData = maChunkSeq.back();
- rChunkData.aData.push_back( (sal_uInt8)( nSource >> 24 ) );
---- vcl/source/window/dockmgr.cxx 31 Jan 2005 13:25:12 -0000 1.10
-+++ vcl/source/window/dockmgr.cxx 10 Mar 2005 02:45:01 -0000 1.4.40.4
-@@ -241,7 +241,7 @@ IMPL_LINK( ImplDockFloatWin2, DockingHdl
- {
- Point aPt;
- Rectangle aBorderRect( aPt, pBorder->GetSizePixel() );
-- long nLeft, nTop, nRight, nBottom;
-+ sal_Int32 nLeft, nTop, nRight, nBottom;
- GetBorder( nLeft, nTop, nRight, nBottom );
- // limit borderrect to the caption part only and without the resizing borders
- aBorderRect.nBottom = aBorderRect.nTop + nTop;
---- vcl/unx/source/app/i18n_cb.cxx 8 Sep 2004 15:37:43 -0000 1.22
-+++ vcl/unx/source/app/i18n_cb.cxx 20 Oct 2004 09:38:01 -0000 1.21.144.2
-@@ -573,8 +573,8 @@ PreeditCaretCallback ( XIC ic, XPointer
- case XIMDontChange: direction = "Dont change"; break;
- }
-
-- fprintf (stderr, "PreeditCaretCallback( ic=%i, client=%i,\n",
-- (unsigned int)ic, (unsigned int)client_data );
-+ fprintf (stderr, "PreeditCaretCallback( ic=%p, client=%p,\n",
-+ ic, client_data );
- fprintf (stderr, "\t position=%i, direction=\"%s\", style=\"%s\" )\n",
- call_data->position, direction, style );
-
---- vcl/unx/source/gdi/salgdi3.cxx 7 Jan 2005 09:26:25 -0000 1.123
-+++ vcl/unx/source/gdi/salgdi3.cxx 18 Jan 2005 17:23:11 -0000 1.119.4.4
-@@ -475,7 +475,7 @@ SalDisplay::GetFont( const ExtendedXlfd
- if( pFontCache_->GetCurPos() )
- {
- pFontCache_->Remove( pItem );
-- pFontCache_->Insert( pItem, (sal_uInt32)0 );
-+ pFontCache_->Insert( pItem, 0UL );
- }
- return pItem;
- }
-@@ -503,7 +503,7 @@ SalDisplay::GetFont( const ExtendedXlfd
- ExtendedFontStruct *pItem = new ExtendedFontStruct( GetDisplay(),
- rPixelSize, bVertical,
- const_cast<ExtendedXlfd*>(pRequestedFont) );
-- pFontCache_->Insert( pItem, (sal_uInt32)0 );
-+ pFontCache_->Insert( pItem, 0UL );
- pItem->AddRef();
-
- return pItem;
diff --git a/patches/64bit/trivial-xmloff.diff b/patches/64bit/trivial-xmloff.diff
deleted file mode 100644
index 0bc03bb02..000000000
--- a/patches/64bit/trivial-xmloff.diff
+++ /dev/null
@@ -1,143 +0,0 @@
---- xmloff/inc/xmlehelp.hxx 21 Mar 2001 16:49:06 -0000 1.3
-+++ xmloff/inc/xmlehelp.hxx 21 Jul 2004 19:27:00 -0000 1.3.352.1
-@@ -71,10 +71,10 @@ namespace rtl { class OUStringBuffer; }
- class SvXMLExportHelper
- {
- public:
-- static void AddLength( long nValue, MapUnit eValueUnit,
-+ static void AddLength( sal_Int32 nValue, MapUnit eValueUnit,
- ::rtl::OUStringBuffer& rOut,
- MapUnit eOutUnit );
-- static void AddPercentage( long nVal, ::rtl::OUStringBuffer& rOut );
-+ static void AddPercentage( sal_Int32 nVal, ::rtl::OUStringBuffer& rOut );
- static double GetConversionFactor(::rtl::OUStringBuffer& rUnit,
- const MapUnit eCoreUnit, const MapUnit eDestUnit);
- static MapUnit GetUnitFromString(const ::rtl::OUString& rString,
---- xmloff/source/core/xmlehelp.cxx 13 Jul 2004 08:06:29 -0000 1.7
-+++ xmloff/source/core/xmlehelp.cxx 20 Oct 2004 10:24:28 -0000 1.6.346.2
-@@ -83,7 +83,7 @@
- using namespace ::rtl;
- using namespace ::xmloff::token;
-
--void SvXMLExportHelper::AddLength( long nValue, MapUnit eValueUnit,
-+void SvXMLExportHelper::AddLength( sal_Int32 nValue, MapUnit eValueUnit,
- OUStringBuffer& rOut,
- MapUnit eOutUnit )
- {
-@@ -95,9 +95,9 @@ void SvXMLExportHelper::AddLength( long
- }
-
- // The new length is (nVal * nMul)/(nDiv*nFac*10)
-- long nMul = 1000;
-- long nDiv = 1;
-- long nFac = 100;
-+ sal_Int32 nMul = 1000;
-+ sal_Int32 nDiv = 1;
-+ sal_Int32 nFac = 100;
- enum XMLTokenEnum eUnit = XML_TOKEN_INVALID;
- switch( eValueUnit )
- {
-@@ -201,7 +201,7 @@ void SvXMLExportHelper::AddLength( long
- }
-
-
-- long nLongVal;
-+ sal_Int32 nLongVal;
- BOOL bOutLongVal = TRUE;
- if( nValue > LONG_MAX / nMul )
- {
-@@ -215,8 +215,8 @@ void SvXMLExportHelper::AddLength( long
-
- if( nBigVal.IsLong() )
- {
-- // To convert the value into a string a long is sufficient
-- nLongVal = (long)nBigVal;
-+ // To convert the value into a string a sal_Int32 is sufficient
-+ nLongVal = sal_Int32( nBigVal );
- }
- else
- {
-@@ -262,7 +262,7 @@ void SvXMLExportHelper::AddLength( long
- rOut.append( GetXMLToken(eUnit) );
- #if 0
- enum XMLTokenEnum eUnit;
-- long nFac = 1;
-+ sal_Int32 nFac = 1;
- switch( eOutUnit )
- {
- case MAP_100TH_MM:
-@@ -338,7 +338,7 @@ void SvXMLExportHelper::AddLength( long
-
- }
-
--void SvXMLExportHelper::AddPercentage( long nValue, OUStringBuffer& rOut )
-+void SvXMLExportHelper::AddPercentage( sal_Int32 nValue, OUStringBuffer& rOut )
- {
- rOut.append( nValue );
- rOut.append( sal_Unicode('%' ) );
---- xmloff/source/style/XMLBackgroundImageContext.cxx 13 Jul 2004 08:22:00 -0000 1.10
-+++ xmloff/source/style/XMLBackgroundImageContext.cxx 20 Oct 2004 11:06:49 -0000 1.9.320.2
-@@ -273,7 +273,7 @@ void XMLBackgroundImageContext::ProcessA
- }
- else if( -1 != aToken.indexOf( sal_Unicode('%') ) )
- {
-- long nPrc = 50;
-+ sal_Int32 nPrc = 50;
- if( rUnitConverter.convertPercent( nPrc, aToken ) )
- {
- if( !bHori )
---- xmloff/source/style/backhdl.cxx 29 Jun 2001 21:07:17 -0000 1.3
-+++ xmloff/source/style/backhdl.cxx 21 Jul 2004 19:27:02 -0000 1.3.346.1
-@@ -132,7 +132,7 @@ sal_Bool XMLBackGraphicPositionPropHdl::
- }
- else if( -1 != aToken.indexOf( sal_Unicode('%') ) )
- {
-- long nPrc = 50;
-+ sal_Int32 nPrc = 50;
- if( rUnitConverter.convertPercent( nPrc, aToken ) )
- {
- if( !bHori )
---- xmloff/source/style/bordrhdl.cxx 7 Dec 2001 13:14:53 -0000 1.4
-+++ xmloff/source/style/bordrhdl.cxx 21 Jul 2004 19:27:02 -0000 1.4.336.1
-@@ -380,7 +380,7 @@ sal_Bool XMLBorderHdl::importXML( const
- sal_uInt16 nNamedWidth = USHRT_MAX;
- Color aColor;
-
-- long nTemp;
-+ sal_Int32 nTemp;
- while( aTokens.getNextToken( aToken ) && aToken.getLength() != 0 )
- {
- if( !bHasWidth &&
---- xmloff/source/style/xmlnume.cxx 26 Nov 2004 13:04:39 -0000 1.22
-+++ xmloff/source/style/xmlnume.cxx 18 Jan 2005 12:20:52 -0000 1.20.44.3
-@@ -326,7 +326,7 @@ void SvxXMLNumRuleExport::exportLevelSty
-
- // text:level
- OUStringBuffer sTmp;
-- sTmp.append( nLevel+1L );
-+ sTmp.append( nLevel + 1 );
- GetExport().AddAttribute( XML_NAMESPACE_TEXT, XML_LEVEL, sTmp.makeStringAndClear() );
- if( sTextStyleName.getLength() > 0 )
- GetExport().AddAttribute( XML_NAMESPACE_TEXT, XML_STYLE_NAME,
---- xmloff/source/text/XMLSectionExport.cxx 8 Sep 2004 15:00:38 -0000 1.37
-+++ xmloff/source/text/XMLSectionExport.cxx 20 Oct 2004 10:30:44 -0000 1.35.36.2
-@@ -1934,7 +1934,7 @@ void XMLSectionExport::ExportMasterDocHe
- GetExport().EncodeStyleName( sStyle ) );
-
- OUStringBuffer sTmp;
-- sTmp.append( nLevel+1L );
-+ sTmp.append( nLevel + 1 );
- GetExport().AddAttribute( XML_NAMESPACE_TEXT, XML_LEVEL,
- sTmp.makeStringAndClear() );
- SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_TEXT, XML_H,
---- xmloff/source/text/txtparae.cxx 22 Feb 2005 09:59:18 -0000 1.120
-+++ xmloff/source/text/txtparae.cxx 10 Mar 2005 02:55:48 -0000 1.112.12.4
-@@ -1767,7 +1767,7 @@ void XMLTextParagraphExport::exportParag
- if( -1 != nOutlineLevel )
- {
- OUStringBuffer sTmp;
-- sTmp.append( (sal_Int32)nOutlineLevel+1L );
-+ sTmp.append( sal_Int32( nOutlineLevel + 1 ) );
- GetExport().AddAttribute( XML_NAMESPACE_TEXT,
- XML_OUTLINE_LEVEL,
- sTmp.makeStringAndClear() );
diff --git a/patches/64bit/unsorted-basic.diff b/patches/64bit/unsorted-basic.diff
deleted file mode 100644
index e4af3a90c..000000000
--- a/patches/64bit/unsorted-basic.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- basic/source/runtime/dllmgr.cxx 22 May 2003 11:01:28 -0000 1.4
-+++ basic/source/runtime/dllmgr.cxx 21 Jul 2004 18:22:07 -0000 1.4.148.1
-@@ -460,8 +460,12 @@ SbError SbiDllMgr::CallProc( SbiDllProc
- break;
-
- case SbxINT:
-+ // SbxINT is aliased to SbxLONG internally now, but we
-+ // may still need to use CallINT() rather than CallLONG()
-+ // since CallINT() returns a 16-bit Integer (not sure why
-+ // SbxINT sues that though...)
- nInt = CallINT(pProc, pStack, (short)nSize );
-- rResult.PutInt( nInt );
-+ rResult.PutLong( nInt );
- break;
-
- case SbxLONG:
diff --git a/patches/64bit/unsorted-bridges-x86_64.diff b/patches/64bit/unsorted-bridges-x86_64.diff
deleted file mode 100644
index 0028c056e..000000000
--- a/patches/64bit/unsorted-bridges-x86_64.diff
+++ /dev/null
@@ -1,83 +0,0 @@
---- bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx 9 Mar 2004 12:11:06 -0000 1.2
-+++ bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx 22 Jan 2005 23:55:03 -0000 1.2.30.1
-@@ -93,7 +93,7 @@ void dummy_can_throw_anything( char cons
- //==================================================================================================
- static OUString toUNOname( char const * p ) SAL_THROW( () )
- {
--#ifdef DEBUG
-+#if OSL_DEBUG_LEVEL > 1
- char const * start = p;
- #endif
-
-@@ -118,7 +118,7 @@ static OUString toUNOname( char const *
- buf.append( (sal_Unicode)'.' );
- }
-
--#ifdef DEBUG
-+#if OSL_DEBUG_LEVEL > 1
- OUString ret( buf.makeStringAndClear() );
- OString c_ret( OUStringToOString( ret, RTL_TEXTENCODING_ASCII_US ) );
- fprintf( stderr, "> toUNOname(): %s => %s\n", start, c_ret.getStr() );
-@@ -200,7 +200,7 @@ type_info * RTTI::getRTTI( typelib_Compo
- // symbol and rtti-name is nearly identical,
- // the symbol is prefixed with _ZTI
- char const * rttiName = symName.getStr() +4;
--#ifdef DEBUG
-+#if OSL_DEBUG_LEVEL > 1
- fprintf( stderr,"generated rtti for %s\n", rttiName );
- #endif
- if (pTypeDescr->pBaseTypeDescription)
-@@ -253,6 +253,13 @@ static void deleteException( void * pExc
- //==================================================================================================
- void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp )
- {
-+#if OSL_DEBUG_LEVEL > 1
-+ OString cstr(
-+ OUStringToOString(
-+ *reinterpret_cast< OUString const * >( &pUnoExc->pType->pTypeName ),
-+ RTL_TEXTENCODING_ASCII_US ) );
-+ fprintf( stderr, "> uno exception occured: %s\n", cstr.getStr() );
-+#endif
- void * pCppExc;
- type_info * rtti;
-
-@@ -295,7 +302,7 @@ void raiseException( uno_Any * pUnoExc,
- }
-
- //==================================================================================================
--void fillUnoException( __cxa_exception * header, uno_Any * pExc, uno_Mapping * pCpp2Uno )
-+void fillUnoException( __cxa_exception * header, uno_Any * pUnoExc, uno_Mapping * pCpp2Uno )
- {
- OSL_ENSURE( header, "### no exception header!!!" );
- if (! header)
-@@ -309,8 +316,8 @@ void fillUnoException( __cxa_exception *
- terminate();
-
- // construct uno exception any
-- ::uno_any_constructAndConvert( pExc, header->adjustedPtr, pExcTypeDescr, pCpp2Uno );
-- ::typelib_typedescription_release( pExcTypeDescr );
-+ uno_any_constructAndConvert( pUnoExc, header->adjustedPtr, pExcTypeDescr, pCpp2Uno );
-+ typelib_typedescription_release( pExcTypeDescr );
- }
-
- }
---- bridges/source/cpp_uno/gcc3_linux_x86-64/share.hxx 9 Mar 2004 12:11:26 -0000 1.2
-+++ bridges/source/cpp_uno/gcc3_linux_x86-64/share.hxx 22 Jan 2005 23:55:22 -0000 1.2.30.1
-@@ -59,6 +59,8 @@
- *
- ************************************************************************/
-
-+#include "uno/mapping.h"
-+
- #include <typeinfo>
- #include <exception>
- #include <cstddef>
-@@ -66,6 +68,8 @@
- namespace CPPU_CURRENT_NAMESPACE
- {
-
-+void dummy_can_throw_anything( char const * );
-+
- // ----- following decl from libstdc++-v3/libsupc++/unwind-cxx.h and unwind.h
-
- struct _Unwind_Exception
diff --git a/patches/64bit/unsorted-bridges.diff b/patches/64bit/unsorted-bridges.diff
deleted file mode 100644
index e144c3935..000000000
--- a/patches/64bit/unsorted-bridges.diff
+++ /dev/null
@@ -1,40 +0,0 @@
---- bridges/inc/bridges/remote/context.h 23 Aug 2004 09:20:08 -0000 1.5
-+++ bridges/inc/bridges/remote/context.h 13 Oct 2004 17:22:54 -0000 1.4.168.2
-@@ -215,7 +215,7 @@ remote_removeContextListener( remote_con
- extern "C" rtl_uString ** SAL_CALL
- remote_getContextList(
- sal_Int32 *pnStringCount,
-- void * ( SAL_CALL * memAlloc ) ( sal_uInt32 nBytesToAlloc ) );
-+ void * ( SAL_CALL * memAlloc ) ( sal_Size nBytesToAlloc ) );
-
-
- struct remote_BridgeImpl;
---- bridges/source/remote/context/context.cxx 23 Aug 2004 09:20:33 -0000 1.4
-+++ bridges/source/remote/context/context.cxx 13 Oct 2004 17:29:18 -0000 1.3.24.2
-@@ -187,7 +187,7 @@ public:
-
- rtl_uString ** getConnectionList(
- sal_Int32 *pnStringCount ,
-- void * ( SAL_CALL * memAlloc ) ( sal_uInt32 nBytesToAlloc ) );
-+ void * ( SAL_CALL * memAlloc ) ( sal_Size nBytesToAlloc ) );
-
- private:
- ::osl::Mutex m_mutex;
-@@ -312,7 +312,7 @@ uno_Context *ContextAdmin::get( rtl_uStr
-
- rtl_uString ** ContextAdmin::getConnectionList(
- sal_Int32 *pnStringCount ,
-- void * ( SAL_CALL * memAlloc ) ( sal_uInt32 nBytesToAlloc ) )
-+ void * ( SAL_CALL * memAlloc ) ( sal_Size nBytesToAlloc ) )
- {
- ::osl::MutexGuard guard( m_mutex );
-
-@@ -545,7 +545,7 @@ remote_removeContextListener( remote_con
- extern "C" rtl_uString ** SAL_CALL
- remote_getContextList(
- sal_Int32 *pnStringCount,
-- void * ( SAL_CALL * memAlloc ) ( sal_uInt32 nBytesToAlloc ) )
-+ void * ( SAL_CALL * memAlloc ) ( sal_Size nBytesToAlloc ) )
- {
- return ContextAdmin::getInstance()->getConnectionList( pnStringCount , memAlloc );
- }
diff --git a/patches/64bit/unsorted-configmgr.diff b/patches/64bit/unsorted-configmgr.diff
deleted file mode 100644
index 9a6f1dfe6..000000000
--- a/patches/64bit/unsorted-configmgr.diff
+++ /dev/null
@@ -1,203 +0,0 @@
---- configmgr/source/data/types.cxx 11 Feb 2002 14:55:53 -0000 1.1
-+++ configmgr/source/data/types.cxx 21 Sep 2004 09:04:08 -0000 1.1.154.1
-@@ -87,8 +87,8 @@ namespace configmgr
- using memory::Allocator;
- using memory::Accessor;
- //-----------------------------------------------------------------------------
--sal_Size const c_nDataOffset = sizeof(sal_Int32);
--sal_Size const c_nStringCharSize = sizeof(sal_Unicode);
-+HeapSize const c_nDataOffset = sizeof(sal_Int32);
-+HeapSize const c_nStringCharSize = sizeof(sal_Unicode);
- //-----------------------------------------------------------------------------
- static inline
- sal_Int32& implGetLength(Allocator const& _anAllocator, String _aString)
-@@ -142,7 +142,7 @@ NameChar const * accessName(Accessor con
- String allocString(Allocator const& _anAllocator, rtl::OUString const & _sString)
- {
- sal_Int32 nLength = _sString.getLength();
-- sal_Int32 nTextSize = (nLength + 1) * c_nStringCharSize;
-+ HeapSize nTextSize = HeapSize(nLength + 1) * c_nStringCharSize;
-
- String anAddress = _anAllocator.allocate(c_nDataOffset + nTextSize);
- if (anAddress)
---- configmgr/source/inc/heap.hxx 15 Mar 2002 11:39:06 -0000 1.3
-+++ configmgr/source/inc/heap.hxx 21 Sep 2004 09:04:08 -0000 1.3.154.1
-@@ -90,9 +90,6 @@ namespace configmgr
- typedef HeapManager::HeapIdParam HeapIdParam;
- typedef HeapManager::Address Address;
-
-- // typedef sal_uInt32 Size;
-- // typedef sal_uInt32 Address;
--
- Heap(HeapManager& _impl);
- Heap(HeapManager& _impl, Size _nInitialSize);
- Heap(HeapManager& _impl, HeapIdParam _anId);
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ configmgr/source/inc/memorymodel.hxx 21 Sep 2004 09:00:56 -0000 1.1.2.1
-@@ -0,0 +1,69 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#ifndef CONFIGMGR_MEMORYMODEL_HXX
-+#define CONFIGMGR_MEMORYMODEL_HXX
-+
-+#ifndef _SAL_TYPES_H_
-+#include <sal/types.h>
-+#endif
-+
-+//-----------------------------------------------------------------------------
-+// no full heap implementation available yet - storing pointer value in Address
-+#define CFG_ADDRESS_HOLDS_POINTER
-+//-----------------------------------------------------------------------------
-+
-+namespace configmgr
-+{
-+//-----------------------------------------------------------------------------
-+
-+ namespace memory
-+ {
-+ //-----------------------------------------------------------------------------
-+ // some base types that describe our memory model
-+#ifndef CFG_ADDRESS_HOLDS_POINTER
-+ typedef sal_uInt32 Address; // points to relative location in memory segment
-+#else
-+ typedef sal_uIntPtr Address; // points to absolute location in memory
-+#endif
-+ typedef sal_uInt32 HeapSize; // memory block size within private heap
-+ typedef sal_uInt8 Byte;
-+ //-----------------------------------------------------------------------------
-+ }
-+//-----------------------------------------------------------------------------
-+}
-+
-+
-+#endif // CONFIGMGR_MEMORYMODEL_HXX
---- configmgr/source/inc/heapmanager.hxx 15 Mar 2002 13:50:51 -0000 1.3
-+++ configmgr/source/inc/heapmanager.hxx 21 Sep 2004 09:04:09 -0000 1.3.154.1
-@@ -62,6 +62,9 @@
- #ifndef CONFIGMGR_DATAHEAPMANAGER_HXX
- #define CONFIGMGR_DATAHEAPMANAGER_HXX
-
-+#ifndef CONFIGMGR_MEMORYMODEL_HXX
-+#include "memorymodel.hxx"
-+#endif
- #ifndef CONFIGMGR_DATALOCK_HXX
- #include "datalock.hxx"
- #endif
-@@ -84,9 +87,9 @@ namespace configmgr
- public:
- typedef struct Opaque_ * Handle;
-
-- typedef sal_uInt32 Size;
-- typedef sal_uInt32 Address;
-- typedef rtl::OString HeapId;
-+ typedef memory::HeapSize Size;
-+ typedef memory::Address Address;
-+ typedef rtl::OString HeapId;
- typedef rtl::OString const & HeapIdParam;
-
- // virtual HeapId newHeapId() = 0;
---- configmgr/source/inc/pointer.hxx 1 Dec 2003 16:05:48 -0000 1.3
-+++ configmgr/source/inc/pointer.hxx 21 Sep 2004 09:04:09 -0000 1.3.44.1
-@@ -62,12 +62,8 @@
- #ifndef CONFIGMGR_POINTER_HXX
- #define CONFIGMGR_POINTER_HXX
-
--#ifndef _SAL_TYPES_H_
--#include <sal/types.h>
--#endif
--
--#ifndef INCLUDED_SHARABLE_BASETYPES_HXX
--#include "types.hxx"
-+#ifndef CONFIGMGR_MEMORYMODEL_HXX
-+#include "memorymodel.hxx"
- #endif
-
- namespace configmgr
-@@ -85,7 +81,7 @@ namespace configmgr
- friend class Accessor;
- friend class UpdateAccessor;
-
-- typedef sharable::Address AddressType;
-+ typedef memory::Address AddressType;
-
- AddressType m_value;
-
---- configmgr/source/inc/types.hxx 11 Feb 2002 14:29:07 -0000 1.1
-+++ configmgr/source/inc/types.hxx 21 Sep 2004 09:04:09 -0000 1.1.154.1
-@@ -62,6 +62,10 @@
- #ifndef INCLUDED_SHARABLE_BASETYPES_HXX
- #define INCLUDED_SHARABLE_BASETYPES_HXX
-
-+#ifndef CONFIGMGR_MEMORYMODEL_HXX
-+#include "memorymodel.hxx"
-+#endif
-+
- #ifndef _SAL_TYPES_H_
- #include <sal/types.h>
- #endif
-@@ -81,7 +85,8 @@ namespace configmgr
- {
- //-----------------------------------------------------------------------------
- // some base types
-- typedef sal_uInt32 Address; // points to absolute location in memory segment
-+ typedef memory::Address Address; // points to absolute location in memory segment
-+ typedef memory::HeapSize HeapSize; // size of memory block within heap
- typedef sal_uInt16 Offset; // Offset relative to 'this' in array of nodes
- typedef sal_uInt8 Byte;
-
---- configmgr/source/inc/updateaccessor.hxx 15 Apr 2003 17:17:28 -0000 1.3
-+++ configmgr/source/inc/updateaccessor.hxx 21 Sep 2004 09:04:09 -0000 1.3.110.1
-@@ -65,6 +65,9 @@
- #ifndef CONFIGMGR_UTILITY_HXX_
- #include "utility.hxx"
- #endif
-+#ifndef CONFIGMGR_MEMORYMODEL_HXX
-+#include "memorymodel.hxx"
-+#endif
- #ifndef CONFIGMGR_ACCESSOR_HXX
- #include "accessor.hxx"
- #endif
-@@ -84,8 +87,8 @@ namespace configmgr
- SegmentHeap * m_heap;
-
- public:
-- typedef sal_uInt32 Address;
-- typedef sal_uInt32 Size;
-+ typedef memory::Address Address;
-+ typedef memory::HeapSize Size;
-
- Address allocate(Size _sz) const;
- void deallocate(Address _addr) const;
diff --git a/patches/64bit/unsorted-cppu.diff b/patches/64bit/unsorted-cppu.diff
deleted file mode 100644
index 1c128dfe9..000000000
--- a/patches/64bit/unsorted-cppu.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- cppu/inc/uno/environment.h 21 Apr 2004 12:56:31 -0000 1.8
-+++ cppu/inc/uno/environment.h 26 Aug 2004 17:05:59 -0000 1.8.18.1
-@@ -172,7 +172,7 @@ typedef void (SAL_CALL * uno_freeProxyFu
- @param nBytes amount of memory in bytes
- @return pointer to allocated memory
- */
--typedef void * (SAL_CALL * uno_memAlloc)( sal_uInt32 nBytes );
-+typedef void * (SAL_CALL * uno_memAlloc)( sal_Size nBytes );
-
- /** The binary specification of an UNO environment supporting interface registration.
- */
diff --git a/patches/64bit/unsorted-desktop-m147.diff b/patches/64bit/unsorted-desktop-m147.diff
deleted file mode 100644
index 832af07a8..000000000
--- a/patches/64bit/unsorted-desktop-m147.diff
+++ /dev/null
@@ -1,26 +0,0 @@
---- desktop/source/deployment/gui/dp_gui_dialog.cxx 2005-12-16 16:01:42.000000000 +0100
-+++ desktop/source/deployment/gui/dp_gui_dialog.cxx 2005-12-16 16:02:32.000000000 +0100
-@@ -205,11 +205,11 @@ DialogImpl::~DialogImpl()
- that->Resize();
-
- // calculate tabs:
-- sal_Int32 selWidth = that->m_treelb->GetSizePixel().getWidth();
-- sal_Int32 vscrollWidth =
-+ long selWidth = that->m_treelb->GetSizePixel().getWidth();
-+ long vscrollWidth =
- Application::GetSettings().GetStyleSettings().GetScrollBarSize();
-
-- sal_Int32 statusWidth = that->m_treelb->GetTextWidth(
-+ long statusWidth = that->m_treelb->GetTextWidth(
- that->m_treelb->m_strEnabled );
- statusWidth = ::std::max(
- statusWidth, that->m_treelb->GetTextWidth(
-@@ -227,7 +227,7 @@ DialogImpl::~DialogImpl()
- selWidth - statusWidth - vscrollWidth );
- that->m_headerBar->InsertItem( ITEM_ID_STATUS, strStatus, statusWidth );
-
-- sal_Int32 tabs[ 3 ];
-+ long tabs[ 3 ];
- tabs[ 0 ] = 2; // two tabs
- tabs[ 1 ] = statusWidth;
- tabs[ 2 ] = selWidth - statusWidth - vscrollWidth;
diff --git a/patches/64bit/unsorted-desktop.diff b/patches/64bit/unsorted-desktop.diff
deleted file mode 100644
index baf79ddd6..000000000
--- a/patches/64bit/unsorted-desktop.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- desktop/source/deployment/gui/dp_gui_dialog.cxx 2005-12-16 16:01:42.000000000 +0100
-+++ desktop/source/deployment/gui/dp_gui_dialog.cxx 2005-12-16 16:02:32.000000000 +0100
-@@ -205,11 +205,11 @@ DialogImpl::~DialogImpl()
- that->Resize();
-
- // calculate tabs:
-- sal_Int32 selWidth = that->m_treelb->GetSizePixel().getWidth();
-- sal_Int32 vscrollWidth =
-+ long selWidth = that->m_treelb->GetSizePixel().getWidth();
-+ long vscrollWidth =
- Application::GetSettings().GetStyleSettings().GetScrollBarSize();
-
-- sal_Int32 statusWidth = that->m_treelb->GetTextWidth(
-+ long statusWidth = that->m_treelb->GetTextWidth(
- that->m_treelb->m_strEnabled );
- statusWidth = ::std::max(
- statusWidth, that->m_treelb->GetTextWidth(
diff --git a/patches/64bit/unsorted-filter.diff b/patches/64bit/unsorted-filter.diff
deleted file mode 100644
index 419e444d8..000000000
--- a/patches/64bit/unsorted-filter.diff
+++ /dev/null
@@ -1,25 +0,0 @@
---- filter/source/flash/swfwriter1.cxx 21 Apr 2004 14:00:55 -0000 1.15
-+++ filter/source/flash/swfwriter1.cxx 21 Jan 2005 16:49:00 -0000 1.15.40.1
-@@ -872,7 +872,7 @@ sal_uInt16 Writer::defineBitmap( const B
-
- getBitmapData( bmpSource, pImageData, pAlphaData, width, height );
- sal_uInt32 raw_size = width * height * 4;
-- sal_uInt32 compressed_size = raw_size + (sal_uInt32)(raw_size/100) + 12;
-+ uLongf compressed_size = uLongf( raw_size + (sal_uInt32)(raw_size/100) + 12 );
- sal_uInt8 *pCompressed = new sal_uInt8[ compressed_size ];
-
- if(compress2(pCompressed, &compressed_size, pImageData, raw_size, Z_BEST_COMPRESSION) != Z_OK)
-@@ -880,11 +880,11 @@ sal_uInt16 Writer::defineBitmap( const B
-
- // AS: SWF files let you provide an Alpha mask for JPEG images, but we have
- // to ZLIB compress the alpha channel seperately.
-- sal_uInt32 alpha_compressed_size = 0;
-+ uLongf alpha_compressed_size = 0;
- sal_uInt8 *pAlphaCompressed = NULL;
- if (bmpSource.IsAlpha() || bmpSource.IsTransparent())
- {
-- alpha_compressed_size = width * height + (sal_uInt32)(raw_size/100) + 12;
-+ alpha_compressed_size = uLongf( width * height + (sal_uInt32)(raw_size/100) + 12 );
- pAlphaCompressed = new sal_uInt8[ compressed_size ];
-
- if(compress2(pAlphaCompressed, &alpha_compressed_size, pAlphaData, width * height, Z_BEST_COMPRESSION) != Z_OK)
diff --git a/patches/64bit/unsorted-jvmfwk-m137.diff b/patches/64bit/unsorted-jvmfwk-m137.diff
deleted file mode 100644
index d8106f6ad..000000000
--- a/patches/64bit/unsorted-jvmfwk-m137.diff
+++ /dev/null
@@ -1,21 +0,0 @@
---- jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx 16 Dec 2004 11:44:52 -0000 1.3
-+++ jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx 21 Jan 2005 15:45:21 -0000 1.3.10.1
-@@ -102,6 +102,7 @@ char const* const* SunInfo::getRuntimePa
- "/bin/classic/jvm.dll"
- #elif UNX
- "/lib/" JFW_PLUGIN_ARCH "/client/libjvm.so",
-+ "/lib/" JFW_PLUGIN_ARCH "/server/libjvm.so",
- "/lib/" JFW_PLUGIN_ARCH "/classic/libjvm.so"
- #endif
-
---- jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx 16 Dec 2004 11:46:22 -0000 1.3
-+++ jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx 21 Jan 2005 15:43:48 -0000 1.2.18.3
-@@ -83,6 +83,8 @@ namespace jfw_plugin
- #define JFW_PLUGIN_ARCH "mips"
- #elif defined S390
- #define JFW_PLUGIN_ARCH "s390"
-+#elif defined X86_64
-+#define JFW_PLUGIN_ARCH "amd64"
- #else // SPARC, INTEL, POWERPC, MIPS
- #error unknown plattform
- #endif // SPARC, INTEL, POWERPC, MIPS
diff --git a/patches/64bit/unsorted-jvmfwk.diff b/patches/64bit/unsorted-jvmfwk.diff
deleted file mode 100644
index 146bf89d3..000000000
--- a/patches/64bit/unsorted-jvmfwk.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx 16 Dec 2004 11:44:52 -0000 1.3
-+++ jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx 21 Jan 2005 15:45:21 -0000 1.3.10.1
-@@ -102,6 +102,7 @@ char const* const* SunInfo::getRuntimePa
- "/bin/classic/jvm.dll"
- #elif UNX
- "/lib/" JFW_PLUGIN_ARCH "/client/libjvm.so",
-+ "/lib/" JFW_PLUGIN_ARCH "/server/libjvm.so",
- "/lib/" JFW_PLUGIN_ARCH "/classic/libjvm.so"
- #endif
-
diff --git a/patches/64bit/unsorted-rsc.diff b/patches/64bit/unsorted-rsc.diff
deleted file mode 100644
index 516b3500a..000000000
--- a/patches/64bit/unsorted-rsc.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- rsc/source/res/rscrange.cxx 3 Jan 2005 17:29:36 -0000 1.4
-+++ rsc/source/res/rscrange.cxx 21 Jan 2005 16:29:49 -0000 1.4.2.1
-@@ -238,7 +238,7 @@ RSCINST RscRange::Create( RSCINST * pIns
- void RscRange::WriteSrc( const RSCINST & rInst, FILE * fOutput,
- RscTypCont *, sal_uInt32, const char * )
- {
-- fprintf( fOutput, "%ld", ((RscRangeInst *)rInst.pData)->nValue + nMin );
-+ fprintf( fOutput, "%ld", long( ((RscRangeInst *)rInst.pData)->nValue + nMin ) );
- }
-
- /*************************************************************************
diff --git a/patches/64bit/unsorted-sal.diff b/patches/64bit/unsorted-sal.diff
deleted file mode 100644
index 24631b783..000000000
--- a/patches/64bit/unsorted-sal.diff
+++ /dev/null
@@ -1,62 +0,0 @@
---- sal/cpprt/operators_new_delete.cxx 15 Apr 2003 17:40:45 -0000 1.3
-+++ sal/cpprt/operators_new_delete.cxx 25 Aug 2004 16:46:45 -0000 1.3.206.1
-@@ -180,7 +180,7 @@ static void* allocate (
- n = rTraits.size (n);
- for (;;)
- {
-- void * p = rtl_allocateMemory (sal_uInt32(n));
-+ void * p = rtl_allocateMemory (sal_Size(n));
- if (p != 0)
- return rTraits.init (p);
-
---- sal/inc/sal/types.h 27 Oct 2004 15:21:17 -0000 1.25
-+++ sal/inc/sal/types.h 18 Jan 2005 19:57:05 -0000 1.23.4.6
-@@ -121,7 +121,15 @@ typedef unsigned char sal_uInt8;
- #define SAL_CONST_INT64(x) x##i64
- #define SAL_CONST_UINT64(x) x##ui64
- #elif defined(__SUNPRO_CC) || defined(__SUNPRO_C) || defined (__GNUC__) || defined(__hpux) || defined (sgi)
-- #if SAL_TYPES_SIZEOFLONGLONG == 8
-+ #if SAL_TYPES_SIZEOFLONG == 8
-+ typedef signed long int sal_Int64;
-+ typedef unsigned long int sal_uInt64;
-+
-+
-+ /* The following are macros that will add the 64 bit constant suffix. */
-+ #define SAL_CONST_INT64(x) x##l
-+ #define SAL_CONST_UINT64(x) x##ul
-+ #elif SAL_TYPES_SIZEOFLONGLONG == 8
- typedef signed long long sal_Int64;
- typedef unsigned long long sal_uInt64;
-
-@@ -129,14 +137,6 @@ typedef unsigned char sal_uInt8;
- #define SAL_CONST_INT64(x) x##ll
- #define SAL_CONST_UINT64(x) x##ull
-
-- #elif SAL_TYPES_SIZEOFLONG == 8
-- typedef signed long sal_Int64;
-- typedef unsigned long sal_uInt64;
--
--
-- /* The following are macros that will add the 64 bit constant suffix. */
-- #define SAL_CONST_INT64(x) x##l
-- #define SAL_CONST_UINT64(x) x##ul
- #else
- #error "Could not find 64-bit type, add support for your architecture"
- #endif
-@@ -190,7 +211,15 @@ typedef void * sal_Han
- #define SAL_MIN_INT64 ((sal_Int64) (SAL_CONST_INT64(-0x7FFFFFFFFFFFFFFF) - 1))
- #define SAL_MAX_INT64 ((sal_Int64) SAL_CONST_INT64(0x7FFFFFFFFFFFFFFF))
- #define SAL_MAX_UINT64 ((sal_uInt64) SAL_CONST_UINT64(0xFFFFFFFFFFFFFFFF))
--
-+
-+#if SAL_TYPES_SIZEOFLONG == 4
-+#define SAL_MAX_SSIZE SAL_MAX_INT32
-+#define SAL_MAX_SIZE SAL_MAX_UINT32
-+#elif SAL_TYPES_SIZEOFLONG == 8
-+#define SAL_MAX_SSIZE SAL_MAX_INT64
-+#define SAL_MAX_SIZE SAL_MAX_UINT64
-+#endif
-+
- #if defined(SAL_W32) || defined(SAL_OS2) || defined(SAL_UNX)
- # define SAL_MAX_ENUM 0x7fffffff
- #elif defined(SAL_W16)
diff --git a/patches/64bit/unsorted-store.diff b/patches/64bit/unsorted-store.diff
deleted file mode 100644
index 551f61eb7..000000000
--- a/patches/64bit/unsorted-store.diff
+++ /dev/null
@@ -1,336 +0,0 @@
---- store/inc/store/types.h 26 Nov 2001 20:52:57 -0000 1.5
-+++ store/inc/store/types.h 25 Aug 2004 18:58:28 -0000 1.5.96.1
-@@ -97,9 +97,9 @@ extern "C" {
- /** Attributes (predefined).
- @see store_attrib()
- */
--#define STORE_ATTRIB_ISLINK 0x10000000UL
--#define STORE_ATTRIB_ISDIR 0x20000000UL
--#define STORE_ATTRIB_ISFILE 0x40000000UL
-+#define STORE_ATTRIB_ISLINK ((sal_uInt32)0x10000000)
-+#define STORE_ATTRIB_ISDIR ((sal_uInt32)0x20000000)
-+#define STORE_ATTRIB_ISFILE ((sal_uInt32)0x40000000)
-
-
- /** Access Mode enumeration.
---- store/source/storbase.cxx 23 Dec 2004 11:33:02 -0000 1.7
-+++ store/source/storbase.cxx 18 Jan 2005 23:57:54 -0000 1.5.84.3
-@@ -217,12 +217,12 @@ const sal_uInt32 store::OStorePageGuard:
- * crc32.
- */
- sal_uInt32 OStorePageGuard::crc32 (
-- sal_uInt32 nCRC32, const void *pData, sal_uInt32 nSize)
-+ sal_uInt32 nCRC32, const void *pData, sal_Size nSize)
- {
- if (pData)
- {
- register const sal_uInt8 *p = (const sal_uInt8*)pData;
-- register sal_uInt32 n;
-+ register sal_Size n;
-
- nCRC32 = ~nCRC32;
- for (n = nSize; n > 0; n--)
-@@ -275,7 +275,7 @@ storeError OStorePageObject::verify (con
- * OStoreSuperBlock.
- *
- *======================================================================*/
--#define STORE_MAGIC_SUPERBLOCK 0x484D5343UL
-+#define STORE_MAGIC_SUPERBLOCK sal_uInt32(0x484D5343)
-
- struct OStoreSuperBlock
- {
-@@ -296,7 +296,8 @@ struct OStoreSuperBlock
- */
- static sal_uInt16 size (void)
- {
-- return (sizeof(G) + sizeof(D) + 2 * (sizeof(L) + sizeof(sal_uInt32)));
-+ return sal_uInt16(sizeof(G) + sizeof(D) +
-+ 2 * (sizeof(L) + sizeof(sal_uInt32)));
- }
-
- /** Construction.
-@@ -456,7 +457,7 @@ struct OStoreStateBlock
- */
- static sal_uInt16 size (void)
- {
-- return sizeof(sal_uInt32);
-+ return sal_uInt16(sizeof(sal_uInt32));
- }
-
- /** Construction.
---- store/source/storbase.hxx 6 Oct 2003 17:31:55 -0000 1.6
-+++ store/source/storbase.hxx 25 Aug 2004 18:58:29 -0000 1.6.22.1
-@@ -122,7 +122,7 @@
- /*
- * __store_memcpy.
- */
--inline void __store_memcpy (void * dst, const void * src, sal_uInt32 n)
-+inline void __store_memcpy (void * dst, const void * src, sal_Size n)
- {
- __STORE_CSTD::memcpy (dst, src, n);
- }
-@@ -130,7 +130,7 @@ inline void __store_memcpy (void * dst,
- /*
- * __store_memmove.
- */
--inline void __store_memmove (void * dst, const void * src, sal_uInt32 n)
-+inline void __store_memmove (void * dst, const void * src, sal_Size n)
- {
- __STORE_CSTD::memmove (dst, src, n);
- }
-@@ -138,7 +138,7 @@ inline void __store_memmove (void * dst,
- /*
- * __store_memset.
- */
--inline void __store_memset (void * dst, int val, sal_uInt32 n)
-+inline void __store_memset (void * dst, int val, sal_Size n)
- {
- __STORE_CSTD::memset (dst, val, n);
- }
-@@ -205,7 +205,7 @@ struct OStorePageGuard
- }
-
- static sal_uInt32 crc32 (
-- sal_uInt32 nCRC32, const void *pData, sal_uInt32 nSize);
-+ sal_uInt32 nCRC32, const void *pData, sal_Size nSize);
- };
-
- /*========================================================================
-@@ -423,8 +423,8 @@ struct OStorePageNameBlock
- */
- static sal_uInt16 size (void)
- {
-- return (sizeof(G) + sizeof(K) + sizeof(sal_uInt32) +
-- sizeof(sal_Char[STORE_MAXIMUM_NAMESIZE]));
-+ return sal_uInt16(sizeof(G) + sizeof(K) + sizeof(sal_uInt32) +
-+ sizeof(sal_Char[STORE_MAXIMUM_NAMESIZE]));
- }
-
- /** initialize.
-@@ -536,7 +536,7 @@ struct OStorePageData
- */
- static sal_uInt16 size (void)
- {
-- return (sizeof(G) + sizeof(D) + 2 * sizeof(L));
-+ return sal_uInt16(sizeof(G) + sizeof(D) + 2 * sizeof(L));
- }
-
- /** location.
-@@ -558,7 +558,7 @@ struct OStorePageData
- return rtl_allocateMemory (n);
- }
-
-- static void* operator new (size_t n, sal_uInt16 nPageSize)
-+ static void* operator new (size_t, sal_uInt16 nPageSize)
- {
- return rtl_allocateMemory (nPageSize);
- }
---- store/source/stordata.hxx 13 Mar 2001 20:59:02 -0000 1.2
-+++ store/source/stordata.hxx 25 Aug 2004 18:58:29 -0000 1.2.112.1
-@@ -93,7 +93,7 @@ namespace store
- * OStoreDataPageData.
- *
- *======================================================================*/
--#define STORE_MAGIC_DATAPAGE 0x94190310UL
-+#define STORE_MAGIC_DATAPAGE sal_uInt32(0x94190310)
-
- struct OStoreDataPageData : public store::OStorePageData
- {
-@@ -110,7 +110,7 @@ struct OStoreDataPageData : public store
- */
- static sal_uInt16 size (void)
- {
-- return 0;
-+ return sal_uInt16(0);
- }
-
- /** capacity.
-@@ -186,7 +186,7 @@ inline OStoreDataPageObject::OStoreDataP
- * OStoreIndirectionPageData.
- *
- *======================================================================*/
--#define STORE_MAGIC_INDIRECTPAGE 0x89191107UL
-+#define STORE_MAGIC_INDIRECTPAGE sal_uInt32(0x89191107)
-
- struct OStoreIndirectionPageData : public store::OStorePageData
- {
-@@ -205,7 +205,7 @@ struct OStoreIndirectionPageData : publi
- */
- static sal_uInt16 size (void)
- {
-- return (sizeof(G));
-+ return sal_uInt16(sizeof(G));
- }
-
- /** capacity.
-@@ -223,11 +223,11 @@ struct OStoreIndirectionPageData : publi
- */
- static sal_uInt16 capacityCount (const D& rDescr)
- {
-- return (capacity(rDescr) / sizeof(sal_uInt32));
-+ return sal_uInt16(capacity(rDescr) / sizeof(sal_uInt32));
- }
- sal_uInt16 capacityCount (void) const
- {
-- return (capacity() / sizeof(sal_uInt32));
-+ return sal_uInt16(capacity() / sizeof(sal_uInt32));
- }
-
- /** Construction.
-@@ -454,7 +454,7 @@ struct OStoreDirectoryDataBlock
- */
- static sal_uInt16 size (void)
- {
-- return (sizeof(G) + sizeof(LinkTable) + sizeof(sal_uInt32));
-+ return sal_uInt16(sizeof(G) + sizeof(LinkTable) + sizeof(sal_uInt32));
- }
-
- /** initialize.
-@@ -601,7 +601,7 @@ struct OStoreDirectoryDataBlock
- * OStoreDirectoryPageData.
- *
- *======================================================================*/
--#define STORE_MAGIC_DIRECTORYPAGE 0x62190120UL
-+#define STORE_MAGIC_DIRECTORYPAGE sal_uInt32(0x62190120)
-
- struct OStoreDirectoryPageData : public store::OStorePageData
- {
---- store/source/storlckb.cxx 9 Mar 2004 12:26:55 -0000 1.4
-+++ store/source/storlckb.cxx 25 Aug 2004 18:58:29 -0000 1.4.14.1
-@@ -119,10 +119,10 @@ using namespace store;
- /*
- * __store_convertTextToUnicode.
- */
--inline sal_Int32 __store_convertTextToUnicode (
-+inline sal_Size __store_convertTextToUnicode (
- rtl_TextToUnicodeConverter hConverter,
-- const sal_Char *pSrcBuffer, sal_Int32 nSrcLength,
-- sal_Unicode *pDstBuffer, sal_Int32 nDstLength)
-+ const sal_Char *pSrcBuffer, sal_Size nSrcLength,
-+ sal_Unicode *pDstBuffer, sal_Size nDstLength)
- {
- sal_uInt32 nCvtInfo = 0;
- sal_Size nCvtBytes = 0;
-@@ -351,8 +351,8 @@ storeError OStoreDirectory::iterate (sto
- {
- // Setup FindData.
- sal_Char *p = m_pNode->m_aNameBlock.m_pData;
-- sal_Int32 n = rtl_str_getLength (p);
-- sal_Int32 k = rFindData.m_nLength;
-+ sal_Size n = rtl_str_getLength (p);
-+ sal_Size k = rFindData.m_nLength;
-
- n = __store_convertTextToUnicode (
- m_hTextCvt, p, n,
---- store/source/storpage.cxx 27 Mar 2003 14:06:37 -0000 1.3
-+++ store/source/storpage.cxx 25 Aug 2004 18:58:29 -0000 1.3.68.1
-@@ -994,7 +994,7 @@ storeError OStorePageManager::symlink (
- // Mark 'Source' as symbolic link to 'Destination'.
- OStoreDirectoryPageObject aPage (*m_pDirect);
- aPage.attrib (STORE_ATTRIB_ISLINK);
-- aPage.dataLength (sizeof (aDstKey));
-+ aPage.dataLength (sal_uInt32(sizeof(aDstKey)));
-
- // Allocate and save 'Source' directory page.
- eErrCode = base::allocate (aPage);
---- store/source/stortree.cxx 26 Nov 2001 21:42:55 -0000 1.3
-+++ store/source/stortree.cxx 25 Aug 2004 18:58:29 -0000 1.3.96.1
-@@ -130,7 +130,7 @@ void OStoreBTreeNodeData::swap (const D&
- #ifdef OSL_BIGENDIAN
- m_aGuard.swap();
-
-- sal_uInt16 i, n = capacity(rDescr) / sizeof(T);
-+ sal_uInt16 i, n = sal_uInt16(capacity(rDescr) / sizeof(T));
- for (i = 0; i < n; i++)
- m_pData[i].swap();
- #endif /* OSL_BIGENDIAN */
-@@ -177,7 +177,7 @@ void OStoreBTreeNodeData::insert (sal_uI
-
- // insert.
- m_pData[i] = t;
-- base::m_aDescr.m_nUsed += sizeof(T);
-+ base::m_aDescr.m_nUsed += sal_uInt16(sizeof(T));
- }
- }
-
-@@ -195,7 +195,7 @@ void OStoreBTreeNodeData::remove (sal_uI
-
- // truncate.
- m_pData[n - 1] = T();
-- base::m_aDescr.m_nUsed -= sizeof(T);
-+ base::m_aDescr.m_nUsed -= sal_uInt16(sizeof(T));
- }
- }
-
---- store/source/stortree.hxx 13 Mar 2001 21:03:26 -0000 1.2
-+++ store/source/stortree.hxx 25 Aug 2004 18:58:30 -0000 1.2.112.1
-@@ -160,7 +160,7 @@ struct OStoreBTreeEntry
- * OStoreBTreeNodeData.
- *
- *======================================================================*/
--#define STORE_MAGIC_BTREENODE 0x58190322UL
-+#define STORE_MAGIC_BTREENODE sal_uInt32(0x58190322)
-
- struct OStoreBTreeNodeData : public store::OStorePageData
- {
-@@ -179,7 +179,7 @@ struct OStoreBTreeNodeData : public stor
- */
- static sal_uInt16 size (void)
- {
-- return (sizeof(G));
-+ return sal_uInt16(sizeof(G));
- }
-
- /** capacity.
-@@ -197,7 +197,7 @@ struct OStoreBTreeNodeData : public stor
- */
- sal_uInt16 capacityCount (void) const
- {
-- return (capacity() / sizeof(T));
-+ return sal_uInt16(capacity() / sizeof(T));
- }
-
- /** usage.
-@@ -215,12 +215,12 @@ struct OStoreBTreeNodeData : public stor
- */
- sal_uInt16 usageCount (void) const
- {
-- return (usage() / sizeof(T));
-+ return sal_uInt16(usage() / sizeof(T));
- }
- void usageCount (sal_uInt16 nCount)
- {
- base::m_aDescr.m_nUsed = base::size() + self::size();
-- base::m_aDescr.m_nUsed += nCount * sizeof(T);
-+ base::m_aDescr.m_nUsed += sal_uInt16(nCount * sizeof(T));
- }
-
- /** Construction.
---- store/workben/t_base.cxx 17 Jun 2004 12:50:00 -0000 1.4
-+++ store/workben/t_base.cxx 25 Aug 2004 18:58:30 -0000 1.4.4.1
-@@ -372,13 +372,13 @@ static storeError __store_namei (
- return eErrCode;
- }
-
--static sal_Int32 __store_convertTextToUnicode (
-+static sal_Size __store_convertTextToUnicode (
- rtl_TextToUnicodeConverter hConvert,
-- const sal_Char *pszText, sal_Int32 nTextLen,
-- sal_Unicode *pBuffer, sal_Int32 nBuffer)
-+ const sal_Char *pszText, sal_Size nTextLen,
-+ sal_Unicode *pBuffer, sal_Size nBuffer)
- {
- sal_uInt32 nInfo = 0;
-- sal_uInt32 nSrcLen = 0;
-+ sal_Size nSrcLen = 0;
-
- sal_Int32 nDstLen = rtl_convertTextToUnicode (
- hConvert, 0,
-@@ -461,6 +461,7 @@ static void __store_testUnicode (const s
- *======================================================================*/
- int SAL_CALL main (int argc, char **argv)
- {
-+ OSL_PRECOND(argc > 1, "t_base: error: insufficient number of arguments.");
- if (argc < 2)
- return 0;
-
diff --git a/patches/64bit/unsorted-vos.diff b/patches/64bit/unsorted-vos.diff
deleted file mode 100644
index ae6a82d16..000000000
--- a/patches/64bit/unsorted-vos.diff
+++ /dev/null
@@ -1,51 +0,0 @@
---- vos/inc/vos/object.hxx 16 Feb 2001 00:55:17 -0000 1.2
-+++ vos/inc/vos/object.hxx 10 Sep 2004 13:48:40 -0000 1.2.130.1
-@@ -110,13 +110,8 @@ public:
- /** Define private new and delete operator because of compiler bug,
- when allocating and deleteing a exported class
- */
--#if defined MACOS || defined MACOSX || defined NETBSD
- void* SAL_CALL operator new(size_t size);
- void* SAL_CALL operator new(size_t size, void* p);
--#else
-- void* SAL_CALL operator new(unsigned int size);
-- void* SAL_CALL operator new(unsigned int size, void* p);
--#endif
-
- void SAL_CALL operator delete(void* p);
-
---- vos/source/object.cxx 26 Sep 2001 16:46:34 -0000 1.3
-+++ vos/source/object.cxx 10 Sep 2004 13:58:50 -0000 1.3.114.1
-@@ -95,11 +95,7 @@ OObject::~OObject()
- {
- }
-
--#if defined MACOS || defined MACOSX
- void* OObject::operator new(size_t size)
--#else
--void* OObject::operator new(unsigned int size)
--#endif
- {
- void* p = rtl_allocateMemory(size);
-
-@@ -108,11 +104,7 @@ void* OObject::operator new(unsigned int
- return (p);
- }
-
--#if defined MACOS || defined MACOSX
- void* OObject::operator new(size_t size, void* p)
--#else
--void* OObject::operator new(unsigned int size, void* p)
--#endif
- {
- return (p);
- }
-@@ -213,8 +205,3 @@ VOS_CLASSINIT::VOS_CLASSINIT(register OC
-
- pClassRoot->m_pNextClass = pNewClass;
- }
--
--
--
--
--
diff --git a/patches/Makefile.am b/patches/Makefile.am
deleted file mode 100644
index 3798a0254..000000000
--- a/patches/Makefile.am
+++ /dev/null
@@ -1,3 +0,0 @@
-SUBDIRS=64bit a11y cairo evo2 mono src680 vba
-
-EXTRA_DIST=README apply.pl $(wildcard *.diff)
diff --git a/patches/README b/patches/README
deleted file mode 100644
index 87e3f5b7d..000000000
--- a/patches/README
+++ /dev/null
@@ -1,6 +0,0 @@
-These directories hold patches that we auto-apply
-to the build to fix it up before we try to build.
-
-To apply a patch set do (eg.):
-
-./apply.pl ./OOO_1_0_2 /opt/OpenOffice/OOO_1_0_2
diff --git a/patches/a11y/.cvsignore b/patches/a11y/.cvsignore
deleted file mode 100644
index 282522db0..000000000
--- a/patches/a11y/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile
-Makefile.in
diff --git a/patches/a11y/Makefile.am b/patches/a11y/Makefile.am
deleted file mode 100644
index a41fbfbeb..000000000
--- a/patches/a11y/Makefile.am
+++ /dev/null
@@ -1 +0,0 @@
-EXTRA_DIST = ${wildcard *.diff}
diff --git a/patches/a11y/a11y-gtk-frame.diff b/patches/a11y/a11y-gtk-frame.diff
deleted file mode 100644
index 001066543..000000000
--- a/patches/a11y/a11y-gtk-frame.diff
+++ /dev/null
@@ -1,136 +0,0 @@
-Index: vcl/unx/inc/plugins/gtk/gtkframe.hxx
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/inc/plugins/gtk/gtkframe.hxx,v
-retrieving revision 1.13
-diff -u -r1.13 gtkframe.hxx
---- vcl/unx/inc/plugins/gtk/gtkframe.hxx 30 Mar 2005 09:09:03 -0000 1.13
-+++ vcl/unx/inc/plugins/gtk/gtkframe.hxx 12 Apr 2005 15:53:55 -0000
-@@ -69,6 +69,9 @@
- #include <gdk/gdkkeysyms.h>
- #include <postx.h>
-
-+#include <com/sun/star/uno/Reference.hxx>
-+#include <com/sun/star/accessibility/XAccessible.hdl>
-+
- #ifndef _SV_SALFRAME_HXX
- #include <salframe.hxx>
- #endif
-@@ -355,6 +358,9 @@
- virtual bool SetPluginParent( SystemParentData* pNewParent );
-
- virtual void SetBackgroundBitmap( SalBitmap* );
-+
-+ static GtkSalFrame *getFromWindow( GtkWindow *pWindow );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > getAccessible( bool bCreate = true );
- };
-
-
-Index: vcl/unx/gtk/window/gtkframe.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/gtk/window/gtkframe.cxx,v
-retrieving revision 1.26
-diff -u -r1.26 gtkframe.cxx
---- vcl/unx/gtk/window/gtkframe.cxx 30 Mar 2005 09:11:10 -0000 1.26
-+++ vcl/unx/gtk/window/gtkframe.cxx 12 Apr 2005 15:53:58 -0000
-@@ -63,6 +63,7 @@
- #include <plugins/gtk/gtkdata.hxx>
- #include <plugins/gtk/gtkinst.hxx>
- #include <plugins/gtk/gtkgdi.hxx>
-+#include <plugins/gtk/atkfactory.hxx>
- #include <keycodes.hxx>
- #include <wmadaptor.hxx>
- #include <sm.hxx>
-@@ -71,6 +72,7 @@
- #include <floatwin.hxx>
- #include <salprn.h>
- #include <svapp.hxx>
-+#include <window.hxx>
-
- #include <prex.h>
- #include <X11/Xatom.h>
-@@ -271,7 +273,10 @@
- if( m_pFixedContainer )
- gtk_widget_destroy( GTK_WIDGET(m_pFixedContainer) );
- if( m_pWindow )
-+ {
-+ g_object_set_data( G_OBJECT( m_pWindow ), "SalFrame", NULL );
- gtk_widget_destroy( GTK_WIDGET(m_pWindow) );
-+ }
- if( m_pForeignParent )
- g_object_unref( G_OBJECT(m_pForeignParent) );
- if( m_pForeignTopLevel )
-@@ -485,6 +490,64 @@
- }
- }
-
-+// Always use a sub-class of GtkWindow we can tag for a11yx
-+static GType
-+ooo_window_get_type()
-+{
-+ static GType t = 0;
-+
-+ if (!t) {
-+ static const GTypeInfo tinfo =
-+ {
-+ sizeof( GtkWindowClass ),
-+ NULL, NULL, NULL, NULL, NULL,
-+ sizeof( GtkWindow ), 0, NULL, NULL
-+ };
-+
-+ t = g_type_register_static(
-+ GTK_TYPE_WINDOW, "OOoWindow", &tinfo, (GTypeFlags) 0);
-+ RegisterAtkFactory( t );
-+ }
-+
-+ return t;
-+}
-+
-+static GtkWindow *
-+createWindow( GtkSalFrame *pThis, ULONG nStyle )
-+{
-+ GtkWindow *pWindow;
-+ GtkWindowType eType = ( (nStyle & SAL_FRAME_STYLE_FLOAT) &&
-+ ! (nStyle & SAL_FRAME_STYLE_OWNERDRAWDECORATION) ) ?
-+ GTK_WINDOW_POPUP : GTK_WINDOW_TOPLEVEL;
-+
-+ // FIXME - we should really sub-class instead of doing
-+ // tens of expensive signal connections ... and this:
-+
-+ static int nCount = 0;
-+ if( eType == GTK_WINDOW_TOPLEVEL )
-+ fprintf( stderr, "Create toplevel %d\n", ++nCount );
-+
-+ pWindow = GTK_WINDOW( g_object_new( ooo_window_get_type(),
-+ "type", eType, "visible", FALSE, NULL ) );
-+ g_object_set_data( G_OBJECT( pWindow ), "SalFrame", pThis );
-+
-+ return pWindow;
-+}
-+
-+GtkSalFrame *GtkSalFrame::getFromWindow( GtkWindow *pWindow )
-+{
-+ return (GtkSalFrame *) g_object_get_data( G_OBJECT( pWindow ), "SalFrame" );
-+}
-+
-+::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
-+GtkSalFrame::getAccessible( bool bCreate )
-+{
-+ // Yes - this is a hack - but: this abstraction seems totally useless to me
-+ Window *pWindow = static_cast<Window *>(GetInstance());
-+ if( pWindow )
-+ return pWindow->GetAccessible( bCreate );
-+}
-+
- void GtkSalFrame::Init( SalFrame* pParent, ULONG nStyle )
- {
- if( nStyle & SAL_FRAME_STYLE_DEFAULT ) // ensure default style
-@@ -493,7 +556,8 @@
- nStyle &= ~SAL_FRAME_STYLE_FLOAT;
- }
-
-- m_pWindow = GTK_WINDOW( gtk_widget_new( GTK_TYPE_WINDOW, "type", ((nStyle & SAL_FRAME_STYLE_FLOAT) && ! (nStyle & SAL_FRAME_STYLE_OWNERDRAWDECORATION)) ? GTK_WINDOW_POPUP : GTK_WINDOW_TOPLEVEL, "visible", FALSE, NULL ) );
-+ m_pWindow = createWindow( this, nStyle );
-+
- m_pParent = static_cast<GtkSalFrame*>(pParent);
- m_pForeignParent = NULL;
- m_aForeignParentWindow = None;
diff --git a/patches/a11y/a11y-vcl-prj.diff b/patches/a11y/a11y-vcl-prj.diff
deleted file mode 100644
index 22fef6cbe..000000000
--- a/patches/a11y/a11y-vcl-prj.diff
+++ /dev/null
@@ -1,37 +0,0 @@
-Index: vcl/prj/build.lst
-===================================================================
-RCS file: /cvs/gsl/vcl/prj/build.lst,v
-retrieving revision 1.41
-diff -u -r1.41 build.lst
---- vcl/prj/build.lst 21 Feb 2005 15:31:01 -0000 1.41
-+++ vcl/prj/build.lst 12 Apr 2005 14:49:05 -0000
-@@ -18,6 +18,7 @@
- vc vcl\unx\source\window nmake - u vc__winu vc_unot NULL
- vc vcl\unx\source\src nmake - u vc__srcu vc_unot NULL
- vc vcl\unx\dummy nmake - u vc__du vc_unot NULL
-+vc vcl\unx\gtk\a11y nmake - u vc__gtky vc_unot NULL
- vc vcl\unx\gtk\app nmake - u vc__gtka vc_unot NULL
- vc vcl\unx\gtk\window nmake - u vc__gtkw vc_unot NULL
- vc vcl\unx\gtk\gdi nmake - u vc__gtkg vc_unot NULL
-@@ -30,5 +31,5 @@
- vc vcl\mac\source\gdi nmake - m vc__gdim vc_unot NULL
- vc vcl\mac\source\window nmake - m vc__winm vc_unot NULL
- vc vcl\mac\source\src nmake - m vc__srcm vc_unot NULL
--vc vcl\util nmake - all vc_util vc__plug.u vc__appa.u vc__appm.m vc__appu.u vc__appw.w vc__gdim.m vc__gdiu.u vc__gdiw.w vc__srcm.m vc__srcu.u vc__srcw.w vc__wina.u vc__winm.m vc__winu.u vc__winw.w vc__du.u vc__gtka.u vc__gtkw.u vc__gtkg.u vc__kde.u vc_app vc_ctrl vc_gdi vc_hlp vc_src vc_win vc_glyphs NULL
-+vc vcl\util nmake - all vc_util vc__plug.u vc__appa.u vc__appm.m vc__appu.u vc__appw.w vc__gdim.m vc__gdiu.u vc__gdiw.w vc__srcm.m vc__srcu.u vc__srcw.w vc__wina.u vc__winm.m vc__winu.u vc__winw.w vc__du.u vc__gtka.u vc__gtky.u vc__gtkw.u vc__gtkg.u vc__kde.u vc_app vc_ctrl vc_gdi vc_hlp vc_src vc_win vc_glyphs NULL
- vc vcl\workben nmake - all vc_wrkb vc_util NULL
-Index: vcl/util/makefile.mk
-===================================================================
-RCS file: /cvs/gsl/vcl/util/makefile.mk,v
-retrieving revision 1.65
-diff -u -r1.65 makefile.mk
---- vcl/util/makefile.mk 13 Jan 2005 18:16:05 -0000 1.65
-+++ vcl/util/makefile.mk 12 Apr 2005 14:49:05 -0000
-@@ -367,6 +367,7 @@
-
- LIB4TARGET=$(SLB)$/igtk_plug_
- LIB4FILES=\
-+ $(SLB)$/gtka11y.lib\
- $(SLB)$/gtkapp.lib\
- $(SLB)$/gtkgdi.lib\
- $(SLB)$/gtkwin.lib
diff --git a/patches/a11y/comphelper-a11y-fix.diff b/patches/a11y/comphelper-a11y-fix.diff
deleted file mode 100644
index 27d66c99f..000000000
--- a/patches/a11y/comphelper-a11y-fix.diff
+++ /dev/null
@@ -1,20 +0,0 @@
-Index: comphelper/source/misc/accessiblewrapper.cxx
-===================================================================
-RCS file: /cvs/util/comphelper/source/misc/accessiblewrapper.cxx,v
-retrieving revision 1.8
-diff -u -r1.8 accessiblewrapper.cxx
---- comphelper/source/misc/accessiblewrapper.cxx 4 Feb 2004 11:26:40 -0000 1.8
-+++ comphelper/source/misc/accessiblewrapper.cxx 19 Apr 2005 14:49:13 -0000
-@@ -177,6 +181,12 @@
- {
- Reference< XAccessible > xValue;
-
-+ if( !_rxKey.is() )
-+ {
-+ fprintf( stderr, "It was this path that was crashing stuff\n" );
-+ return xValue;
-+ }
-+
- // do we have this child in the cahce?
- AccessibleMap::const_iterator aPos = m_aChildrenMap.find( _rxKey );
- if ( m_aChildrenMap.end() != aPos )
diff --git a/patches/a11y/vcl-unx-gtk-a11y-atkaction-cxx.diff b/patches/a11y/vcl-unx-gtk-a11y-atkaction-cxx.diff
deleted file mode 100644
index adcd5f41d..000000000
--- a/patches/a11y/vcl-unx-gtk-a11y-atkaction-cxx.diff
+++ /dev/null
@@ -1,97 +0,0 @@
---- /dev/null
-+++ vcl/unx/gtk/a11y/atkaction.cxx
-@@ -0,0 +1,94 @@
-+#include <com/sun/star/accessibility/XAccessibleKeyBinding.hpp>
-+
-+static uno::Reference< accessibility::XAccessibleAction >
-+ getAction( AtkAction *pAction )
-+{
-+ AtkObjectWrapper *pWrap = ATK_OBJECT_WRAPPER( pAction );
-+ uno::Reference< accessibility::XAccessibleAction > xAction;
-+ xAction = uno::Reference< accessibility::XAccessibleAction >(
-+ pWrap->mpContext, uno::UNO_QUERY );
-+ if( !xAction.is() )
-+ g_error( "%p claimed to have action, but now does not",
-+ pWrap->mpContext );
-+ return xAction;
-+}
-+
-+static gboolean
-+action_wrapper_do_action (AtkAction *action,
-+ gint i)
-+{
-+ TRY_START
-+ return getAction( action )->doAccessibleAction( i );
-+ TRY_END_RETURN( FALSE )
-+}
-+
-+static gint
-+action_wrapper_get_n_actions (AtkAction *action)
-+{
-+ TRY_START
-+ sal_Int32 nActions = 0;
-+ nActions = getAction( action )->getAccessibleActionCount();
-+ fprintf( stderr, "GetnActions returns %d", nActions );
-+ return nActions;
-+ TRY_END_RETURN( 0 )
-+}
-+
-+static G_CONST_RETURN gchar *
-+action_wrapper_get_description (AtkAction *action,
-+ gint i)
-+{
-+ TRY_START
-+ return getAsConst( getAction( action )->getAccessibleActionDescription( i ) );
-+ TRY_END_RETURN( "" )
-+}
-+
-+static G_CONST_RETURN gchar *
-+action_wrapper_get_localized_name (AtkAction *action,
-+ gint i)
-+{
-+ TRY_START
-+// FIXME - at least two of these are wrong
-+ return getAsConst( getAction( action )->getAccessibleActionDescription( i ) );
-+ TRY_END_RETURN( "" )
-+}
-+
-+static G_CONST_RETURN gchar *
-+action_wrapper_get_name (AtkAction *action,
-+ gint i)
-+{
-+ TRY_START
-+// FIXME - at least two of these are wrong
-+ return getAsConst( getAction( action )->getAccessibleActionDescription( i ) );
-+ TRY_END_RETURN( "" )
-+}
-+
-+static G_CONST_RETURN gchar *
-+action_wrapper_get_keybinding (AtkAction *action,
-+ gint i)
-+{
-+// uno::Reference< accessibility::XAccessibleKeyBinding > xBinding;
-+// xBinding = getAction( action )->getAccessibleActionKeyBinding( i );
-+ g_warning( "FIXME: AtkAction::get_keybinding unimplemented" );
-+ return "";
-+}
-+
-+static gboolean
-+action_wrapper_set_description (AtkAction *action,
-+ gint i,
-+ const gchar *desc)
-+{
-+ return FALSE;
-+}
-+
-+static void
-+actionIfaceInit (AtkActionIface *iface)
-+{
-+ g_return_if_fail (iface != NULL);
-+
-+ iface->do_action = action_wrapper_do_action;
-+ iface->get_n_actions = action_wrapper_get_n_actions;
-+ iface->get_description = action_wrapper_get_description;
-+ iface->get_keybinding = action_wrapper_get_keybinding;
-+ iface->get_name = action_wrapper_get_name;
-+ iface->set_description = action_wrapper_set_description;
-+}
diff --git a/patches/a11y/vcl-unx-gtk-a11y-atkcomponent-cxx.diff b/patches/a11y/vcl-unx-gtk-a11y-atkcomponent-cxx.diff
deleted file mode 100644
index 8bc4c5c80..000000000
--- a/patches/a11y/vcl-unx-gtk-a11y-atkcomponent-cxx.diff
+++ /dev/null
@@ -1,174 +0,0 @@
---- /dev/null
-+++ vcl/unx/gtk/a11y/atkcomponent.cxx
-@@ -0,0 +1,171 @@
-+static uno::Reference< accessibility::XAccessibleComponent >
-+ getComponent( AtkComponent *pComponent )
-+{
-+ AtkObjectWrapper *pWrap = ATK_OBJECT_WRAPPER( pComponent );
-+ return uno::Reference< accessibility::XAccessibleComponent >(
-+ pWrap->mpContext, uno::UNO_QUERY );
-+}
-+
-+static awt::Point translatePoint( AtkComponent *component,
-+ gint x, gint y, AtkCoordType t)
-+{
-+ awt::Point aOrigin( 0, 0 );
-+ if( t == ATK_XY_SCREEN )
-+ awt::Point aOrigin = getComponent( component )->getLocationOnScreen();
-+
-+ return awt::Point( x - aOrigin.X, y - aOrigin.Y );
-+}
-+
-+static gboolean
-+component_wrapper_grab_focus (AtkComponent *component)
-+{
-+ gboolean bSuccess = FALSE;
-+ try {
-+ getComponent( component )->grabFocus();
-+ bSuccess = TRUE;
-+ } catch( const uno::Exception &e) { }
-+ return bSuccess;
-+}
-+
-+static gboolean
-+component_wrapper_contains (AtkComponent *component,
-+ gint x,
-+ gint y,
-+ AtkCoordType coord_type)
-+{
-+ return getComponent( component )->containsPoint(
-+ translatePoint( component, x, y, coord_type ) );
-+}
-+
-+static AtkObject *
-+component_wrapper_ref_accessible_at_point (AtkComponent *component,
-+ gint x,
-+ gint y,
-+ AtkCoordType coord_type)
-+{
-+ uno::Reference< accessibility::XAccessible > xAccessible;
-+ xAccessible = getComponent( component )->getAccessibleAtPoint(
-+ translatePoint( component, x, y, coord_type ) );
-+ return atk_wrapper_get( xAccessible );
-+}
-+
-+static void
-+component_wrapper_get_position (AtkComponent *component,
-+ gint *x,
-+ gint *y,
-+ AtkCoordType coord_type)
-+{
-+ awt::Point aPos;
-+ if( coord_type == ATK_XY_SCREEN )
-+ aPos = getComponent( component )->getLocationOnScreen();
-+ else
-+ aPos = getComponent( component )->getLocation();
-+ *x = aPos.X;
-+ *y = aPos.Y;
-+}
-+
-+static void
-+component_wrapper_get_size (AtkComponent *component,
-+ gint *width,
-+ gint *height)
-+{
-+ awt::Size aSize = getComponent( component )->getSize();
-+ *width = aSize.Width;
-+ *height = aSize.Height;
-+}
-+
-+static void
-+component_wrapper_get_extents (AtkComponent *component,
-+ gint *x,
-+ gint *y,
-+ gint *width,
-+ gint *height,
-+ AtkCoordType coord_type)
-+{
-+ component_wrapper_get_position( component, x, y, coord_type );
-+ component_wrapper_get_size( component, width, height );
-+}
-+
-+static gboolean
-+component_wrapper_set_extents (AtkComponent *component,
-+ gint x,
-+ gint y,
-+ gint width,
-+ gint height,
-+ AtkCoordType coord_type)
-+{
-+ g_warning( "AtkComponent::set_extents unimplementable" );
-+ return FALSE;
-+}
-+
-+static gboolean
-+component_wrapper_set_position (AtkComponent *component,
-+ gint x,
-+ gint y,
-+ AtkCoordType coord_type)
-+{
-+ g_warning( "AtkComponent::set_position unimplementable" );
-+ return FALSE;
-+}
-+
-+static gboolean
-+component_wrapper_set_size (AtkComponent *component,
-+ gint width,
-+ gint height)
-+{
-+ g_warning( "AtkComponent::set_size unimplementable" );
-+ return FALSE;
-+}
-+
-+static AtkLayer
-+component_wrapper_get_layer (AtkComponent *component)
-+{
-+/* ATK_LAYER_INVALID,
-+ ATK_LAYER_BACKGROUND,
-+ ATK_LAYER_CANVAS,
-+ ATK_LAYER_WIDGET,
-+ ATK_LAYER_MDI,
-+ ATK_LAYER_POPUP,
-+ ATK_LAYER_OVERLAY,
-+ ATK_LAYER_WINDOW */
-+ g_warning( "FIXME: AtkComponent::get_layer unimplemented" );
-+
-+ return ATK_LAYER_INVALID;
-+}
-+
-+static gint
-+component_wrapper_get_mdi_zorder (AtkComponent *component)
-+{
-+ // FIXME: implement me ?
-+ g_warning( "FIXME: AtkComponent::get_mdi_zorder unimplemented" );
-+ return 0;
-+}
-+
-+// Tougher ...
-+static guint
-+component_wrapper_add_focus_handler (AtkComponent *component,
-+ AtkFocusHandler handler)
-+{
-+ return 0;
-+}
-+static void
-+component_wrapper_remove_focus_handler (AtkComponent *component,
-+ guint handler_id)
-+{
-+}
-+
-+static void
-+componentIfaceInit (AtkComponentIface *iface)
-+{
-+ g_return_if_fail (iface != NULL);
-+
-+ iface->add_focus_handler = component_wrapper_add_focus_handler;
-+ iface->get_extents = component_wrapper_get_extents;
-+ iface->get_size = component_wrapper_get_size;
-+ iface->get_layer = component_wrapper_get_layer;
-+ iface->grab_focus = component_wrapper_grab_focus;
-+ iface->remove_focus_handler = component_wrapper_remove_focus_handler;
-+ iface->set_extents = component_wrapper_set_extents;
-+ iface->set_position = component_wrapper_set_position;
-+ iface->set_size = component_wrapper_set_size;
-+}
diff --git a/patches/a11y/vcl-unx-gtk-a11y-atkfactory-cxx.diff b/patches/a11y/vcl-unx-gtk-a11y-atkfactory-cxx.diff
deleted file mode 100644
index a85e99d8d..000000000
--- a/patches/a11y/vcl-unx-gtk-a11y-atkfactory-cxx.diff
+++ /dev/null
@@ -1,73 +0,0 @@
---- /dev/null
-+++ vcl/unx/gtk/a11y/atkfactory.cxx
-@@ -0,0 +1,70 @@
-+#include <plugins/gtk/atkfactory.hxx>
-+#include <plugins/gtk/gtkframe.hxx>
-+#include "atkwrapper.hxx"
-+
-+extern "C" {
-+
-+static GType
-+wrapper_factory_get_accessible_type(void)
-+{
-+ return atk_object_wrapper_get_type();
-+}
-+
-+static AtkObject*
-+wrapper_factory_create_accessible( GObject *pObj )
-+{
-+ GtkSalFrame *pFrame;
-+
-+ g_message ("wrapper_factory_create_accessible...");
-+
-+ pFrame = GtkSalFrame::getFromWindow( GTK_WINDOW( pObj ) );
-+ g_return_val_if_fail( pFrame != NULL, NULL );
-+
-+ ::com::sun::star::uno::Reference<
-+ ::com::sun::star::accessibility::XAccessible > xAccessible;
-+ xAccessible = pFrame->getAccessible( true );
-+
-+ return atk_wrapper_get( xAccessible );
-+}
-+
-+static void
-+wrapper_factory_class_init( AtkObjectFactoryClass *klass )
-+{
-+ klass->create_accessible = wrapper_factory_create_accessible;
-+ klass->get_accessible_type = wrapper_factory_get_accessible_type;
-+}
-+
-+static GType
-+wrapper_factory_get_type (void)
-+{
-+ static GType t = 0;
-+
-+ if (!t) {
-+ static const GTypeInfo tinfo =
-+ {
-+ sizeof (AtkObjectFactoryClass),
-+ NULL, NULL, (GClassInitFunc) wrapper_factory_class_init,
-+ NULL, NULL, sizeof (AtkObjectFactory), 0, NULL, NULL
-+ };
-+
-+ t = g_type_register_static (
-+ ATK_TYPE_OBJECT_FACTORY, "OOoAtkObjectWrapperFactory",
-+ &tinfo, (GTypeFlags) 0);
-+ }
-+
-+ return t;
-+}
-+
-+}; // extern C
-+
-+void RegisterAtkFactory( GType nWindowType )
-+{
-+ AtkRegistry *pReg = atk_get_default_registry();
-+ if( pReg )
-+ {
-+ g_warning( "Registering factory" );
-+ atk_registry_set_factory_type
-+ ( pReg, nWindowType,
-+ wrapper_factory_get_type() );
-+ }
-+}
diff --git a/patches/a11y/vcl-unx-gtk-a11y-atklistener-cxx.diff b/patches/a11y/vcl-unx-gtk-a11y-atklistener-cxx.diff
deleted file mode 100644
index 419fe13fb..000000000
--- a/patches/a11y/vcl-unx-gtk-a11y-atklistener-cxx.diff
+++ /dev/null
@@ -1,188 +0,0 @@
---- /dev/null
-+++ vcl/unx/gtk/a11y/atklistener.cxx
-@@ -0,0 +1,185 @@
-+#include <cppuhelper/queryinterface.hxx>
-+#include <com/sun/star/accessibility/TextSegment.hpp>
-+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
-+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
-+
-+#include "atklistener.hxx"
-+
-+AtkListener::AtkListener( AtkObject *pObj )
-+{
-+ mnRefCount = 1;
-+ mpAccessible = pObj;
-+}
-+AtkListener::~AtkListener()
-+{
-+}
-+
-+AtkStateType mapState( const uno::Any &rAny )
-+{
-+ sal_Int16 nState = accessibility::AccessibleStateType::INVALID;
-+ rAny >>= nState;
-+ return mapAtkState( nState );
-+}
-+
-+// XInterface implementation
-+uno::Any AtkListener::queryInterface( const uno::Type & rType ) throw (uno::RuntimeException)
-+{
-+ return cppu::queryInterface
-+ (rType,
-+ static_cast< uno::XInterface * >( static_cast< accessibility::XAccessibleEventListener * >( this ) ),
-+ static_cast< accessibility::XAccessibleEventListener * >( this ) );
-+}
-+
-+// XEventListener implementation
-+void AtkListener::disposing( const lang::EventObject& Source ) throw (uno::RuntimeException)
-+{
-+ fprintf( stderr, "disposing\n" );
-+}
-+
-+static AtkObject *getObjFromAny( const uno::Any &rAny )
-+{
-+ uno::Reference< accessibility::XAccessible > xAccessible;
-+ rAny >>= xAccessible;
-+ return xAccessible.is() ? atk_wrapper_get( xAccessible ) : NULL;
-+}
-+
-+// XAccessibleEventListener
-+void AtkListener::notifyEvent( const accessibility::AccessibleEventObject& aEvent ) throw( uno::RuntimeException )
-+{
-+ if( !mpAccessible )
-+ return;
-+
-+ // ::sal_Int16 EventId CPPU_GCC3_ALIGN(::com::sun::star::lang::EventObject);
-+ // ::com::sun::star::uno::Any NewValue;
-+ // ::com::sun::star::uno::Any OldValue;
-+ switch( aEvent.EventId )
-+ {
-+ // AtkObject signals:
-+ // Hierarchy signals
-+ case accessibility::AccessibleEventId::CHILD:
-+ {
-+ AtkObject *pChild;
-+
-+ // TESTME - are these the correct insertion indexes ?
-+ if( ( pChild = getObjFromAny( aEvent.OldValue ) ) )
-+ {
-+ g_signal_emit_by_name( mpAccessible, "children_changed::remove",
-+ atk_object_get_index_in_parent( pChild ), pChild, NULL );
-+ g_object_unref( G_OBJECT( pChild ) );
-+ }
-+ if( ( pChild = getObjFromAny( aEvent.NewValue ) ) )
-+ {
-+ g_signal_emit_by_name( mpAccessible, "children_changed::add",
-+ atk_object_get_index_in_parent( pChild ), pChild, NULL );
-+ g_object_unref( G_OBJECT( pChild ) );
-+ }
-+ break;
-+ }
-+ case accessibility::AccessibleEventId::INVALIDATE_ALL_CHILDREN:
-+ g_warning( "FIXME: invalidate all children signal ?" );
-+ break;
-+ case accessibility::AccessibleEventId::NAME_CHANGED:
-+ g_object_notify( G_OBJECT( mpAccessible ), "accessible-name" );
-+ break;
-+ case accessibility::AccessibleEventId::DESCRIPTION_CHANGED:
-+ g_object_notify( G_OBJECT( mpAccessible ), "accessible-description" );
-+ break;
-+ case accessibility::AccessibleEventId::STATE_CHANGED:
-+ {
-+ AtkStateType eOldState = mapState( aEvent.OldValue );
-+ AtkStateType eNewState = mapState( aEvent.NewValue );
-+
-+ gboolean bState = eNewState != ATK_STATE_INVALID;
-+ AtkStateType eRealState = bState ? eNewState : eOldState;
-+
-+ g_warning( "Test me state changed %d to %s", eRealState, bState ? "set" : "unset" );
-+ atk_object_notify_state_change( mpAccessible, eRealState, bState );
-+ // If this is a focus change should we emit 'focus_event' ?
-+ break;
-+ }
-+ case accessibility::AccessibleEventId::VISIBLE_DATA_CHANGED:
-+ g_signal_emit_by_name( mpAccessible, "visible-data-changed" );
-+ break;
-+ case accessibility::AccessibleEventId::ACTIVE_DESCENDANT_CHANGED:
-+ {
-+ AtkObject *pChild = getObjFromAny( aEvent.NewValue );
-+ g_signal_emit_by_name( mpAccessible, "active-descendant-changed", pChild );
-+ g_object_unref( G_OBJECT( pChild ) );
-+ break;
-+ }
-+
-+ // AtkAction signals ...
-+ case accessibility::AccessibleEventId::ACTION_CHANGED:
-+ // FIXME: nothing to map this to ...
-+ break;
-+
-+ // AtkText
-+ case accessibility::AccessibleEventId::CARET_CHANGED:
-+ {
-+ sal_Int32 nPos;
-+ aEvent.NewValue >>= nPos;
-+ g_signal_emit_by_name( mpAccessible, "text_caret_moved", nPos );
-+ break;
-+ }
-+ case accessibility::AccessibleEventId::TEXT_CHANGED:
-+ {
-+ // TESTME: and remove this comment:
-+ // cf. comphelper/source/misc/accessibletexthelper.cxx (implInitTextChangedEvent)
-+ g_warning( "TESTME: text insertion" );
-+ accessibility::TextSegment aDeletedText;
-+ accessibility::TextSegment aInsertedText;
-+ aEvent.OldValue >>= aDeletedText;
-+ aEvent.NewValue >>= aInsertedText;
-+
-+ if( aDeletedText.SegmentStart > 0 )
-+ g_signal_emit_by_name( mpAccessible, "text_changed::delete",
-+ (gint) aDeletedText.SegmentStart,
-+ (gint)( aDeletedText.SegmentEnd - aDeletedText.SegmentStart ) );
-+ if( aInsertedText.SegmentStart > 0 )
-+ g_signal_emit_by_name( mpAccessible, "text_changed::add",
-+ (gint) aInsertedText.SegmentStart,
-+ (gint)( aInsertedText.SegmentEnd - aInsertedText.SegmentStart ) );
-+ break;
-+ }
-+ case accessibility::AccessibleEventId::TEXT_SELECTION_CHANGED:
-+ { // FIXME: suffers from the same selection problems ...
-+ break;
-+ }
-+ case accessibility::AccessibleEventId::TEXT_ATTRIBUTE_CHANGED:
-+ { // FIXME: implement attribute support
-+ break;
-+ }
-+
-+ // AtkValue
-+ case accessibility::AccessibleEventId::VALUE_CHANGED:
-+ g_object_notify( G_OBJECT( mpAccessible ),
-+ "accessible-value" );
-+ break;
-+
-+ case accessibility::AccessibleEventId::CONTENT_FLOWS_FROM_RELATION_CHANGED:
-+ case accessibility::AccessibleEventId::CONTENT_FLOWS_TO_RELATION_CHANGED:
-+ case accessibility::AccessibleEventId::CONTROLLED_BY_RELATION_CHANGED:
-+ case accessibility::AccessibleEventId::CONTROLLER_FOR_RELATION_CHANGED:
-+ case accessibility::AccessibleEventId::LABEL_FOR_RELATION_CHANGED:
-+ case accessibility::AccessibleEventId::LABELED_BY_RELATION_CHANGED:
-+ case accessibility::AccessibleEventId::MEMBER_OF_RELATION_CHANGED:
-+ case accessibility::AccessibleEventId::SUB_WINDOW_OF_RELATION_CHANGED:
-+ case accessibility::AccessibleEventId::BOUNDRECT_CHANGED:
-+ // FIXME: ask Bill how Atk copes with this little lot ...
-+ break;
-+
-+ case accessibility::AccessibleEventId::SELECTION_CHANGED:
-+ case accessibility::AccessibleEventId::HYPERTEXT_CHANGED:
-+ case accessibility::AccessibleEventId::TABLE_CAPTION_CHANGED:
-+ case accessibility::AccessibleEventId::TABLE_COLUMN_DESCRIPTION_CHANGED:
-+ case accessibility::AccessibleEventId::TABLE_COLUMN_HEADER_CHANGED:
-+ case accessibility::AccessibleEventId::TABLE_MODEL_CHANGED:
-+ case accessibility::AccessibleEventId::TABLE_ROW_DESCRIPTION_CHANGED:
-+ case accessibility::AccessibleEventId::TABLE_ROW_HEADER_CHANGED:
-+ case accessibility::AccessibleEventId::TABLE_SUMMARY_CHANGED:
-+ break;
-+ default:
-+ g_warning( "Unknown event notification" );
-+ break;
-+ }
-+}
diff --git a/patches/a11y/vcl-unx-gtk-a11y-atklistener-hxx.diff b/patches/a11y/vcl-unx-gtk-a11y-atklistener-hxx.diff
deleted file mode 100644
index 5f2cfa108..000000000
--- a/patches/a11y/vcl-unx-gtk-a11y-atklistener-hxx.diff
+++ /dev/null
@@ -1,37 +0,0 @@
---- /dev/null
-+++ vcl/unx/gtk/a11y/atklistener.hxx
-@@ -0,0 +1,34 @@
-+#ifndef _ATK_LISTENER_HXX_
-+#define _ATK_LISTENER_HXX_
-+
-+#include <com/sun/star/accessibility/XAccessibleEventListener.hpp>
-+#include "atkwrapper.hxx"
-+
-+using namespace ::com::sun::star;
-+
-+class AtkListener : public accessibility::XAccessibleEventListener
-+{
-+ // UNO sucks for not providing a sane base-class for this.
-+ sal_Int32 mnRefCount;
-+ AtkObject *mpAccessible;
-+
-+public:
-+ AtkListener( AtkObject *pObj );
-+ virtual ~AtkListener();
-+
-+ void deRegister() { mpAccessible = NULL; }
-+
-+ // XInterface
-+ virtual void acquire() throw () { ++mnRefCount; }
-+ virtual void release() throw () { if (! --mnRefCount) delete this; }
-+ virtual uno::Any queryInterface( const uno::Type & rType ) throw (uno::RuntimeException);
-+
-+ // XEventListener
-+ virtual void disposing( const lang::EventObject& Source ) throw (uno::RuntimeException);
-+
-+ // XAccessibleEventListener
-+ virtual void notifyEvent( const accessibility::AccessibleEventObject& aEvent ) throw( uno::RuntimeException );
-+};
-+
-+#endif /* _ATK_LISTENER_HXX_ */
-+
diff --git a/patches/a11y/vcl-unx-gtk-a11y-atktext-cxx.diff b/patches/a11y/vcl-unx-gtk-a11y-atktext-cxx.diff
deleted file mode 100644
index 16ff3949b..000000000
--- a/patches/a11y/vcl-unx-gtk-a11y-atktext-cxx.diff
+++ /dev/null
@@ -1,218 +0,0 @@
---- /dev/null
-+++ vcl/unx/gtk/a11y/atktext.cxx
-@@ -0,0 +1,215 @@
-+#include <com/sun/star/accessibility/TextSegment.hpp>
-+
-+static uno::Reference< accessibility::XAccessibleText >
-+ getText( AtkText *pText )
-+{
-+ AtkObjectWrapper *pWrap = ATK_OBJECT_WRAPPER( pText );
-+ return uno::Reference< accessibility::XAccessibleText >(
-+ pWrap->mpContext, uno::UNO_QUERY );
-+}
-+
-+static gchar *
-+text_wrapper_get_text (AtkText *text,
-+ gint start_offset,
-+ gint end_offset)
-+{
-+ TRY_START
-+ return mapToGChar( getText( text )->getText() );
-+ TRY_END_RETURN( NULL )
-+}
-+
-+static gchar *
-+text_wrapper_get_text_after_offset (AtkText *text,
-+ gint offset,
-+ AtkTextBoundary boundary_type,
-+ gint *start_offset,
-+ gint *end_offset)
-+{
-+ return g_strdup( "a" ); // FIXME
-+}
-+
-+static gchar *
-+text_wrapper_get_text_at_offset (AtkText *text,
-+ gint offset,
-+ AtkTextBoundary boundary_type,
-+ gint *start_offset,
-+ gint *end_offset)
-+{
-+ return g_strdup( "a" ); // FIXME
-+}
-+
-+static gunichar
-+text_wrapper_get_character_at_offset (AtkText *text,
-+ gint offset)
-+{
-+ return 'a';
-+}
-+
-+static gchar *
-+text_wrapper_get_text_before_offset (AtkText *text,
-+ gint offset,
-+ AtkTextBoundary boundary_type,
-+ gint *start_offset,
-+ gint *end_offset)
-+{
-+ return g_strdup( "" ); // FIXME
-+}
-+
-+static gint
-+text_wrapper_get_caret_offset (AtkText *text)
-+{
-+ TRY_START
-+ return getText( text )->getCaretPosition();
-+ TRY_END_RETURN( FALSE )
-+}
-+
-+static gboolean
-+text_wrapper_set_caret_offset (AtkText *text,
-+ gint offset)
-+{
-+ TRY_START
-+ return getText( text )->setCaretPosition( offset );
-+ TRY_END_RETURN( FALSE )
-+}
-+
-+static AtkAttributeSet *
-+text_wrapper_get_run_attributes (AtkText *text,
-+ gint offset,
-+ gint *start_offset,
-+ gint *end_offset)
-+{
-+ return NULL;
-+}
-+
-+static AtkAttributeSet *
-+text_wrapper_get_default_attributes (AtkText *text)
-+{
-+ return NULL;
-+}
-+
-+static void
-+text_wrapper_get_character_extents (AtkText *text,
-+ gint offset,
-+ gint *x,
-+ gint *y,
-+ gint *width,
-+ gint *height,
-+ AtkCoordType coords)
-+{
-+ g_return_if_fail( (coords != ATK_XY_SCREEN ) ||
-+ ATK_IS_COMPONENT( text ) );
-+
-+ *x = *y = *width = *height = 0;
-+ TRY_START
-+ awt::Rectangle aRect = getText( text )->getCharacterBounds( offset );
-+ if( coords == ATK_XY_SCREEN )
-+ g_warning ("FIXME: implement screen bounds" );
-+ *x = aRect.X;
-+ *y = aRect.Y;
-+ *width = aRect.Width;
-+ *height = aRect.Height;
-+ TRY_END
-+}
-+
-+static gint
-+text_wrapper_get_character_count (AtkText *text)
-+{
-+ TRY_START
-+ return getText( text )->getCharacterCount();
-+ TRY_END_RETURN( 0 )
-+}
-+
-+static gint
-+text_wrapper_get_offset_at_point (AtkText *text,
-+ gint x,
-+ gint y,
-+ AtkCoordType coords)
-+{
-+ g_return_val_if_fail( (coords != ATK_XY_SCREEN ) ||
-+ ATK_IS_COMPONENT( text ), -1 );
-+ TRY_START
-+ return getText( text )->getIndexAtPoint(
-+ translatePoint( ATK_COMPONENT( text ), x, y, coords ) );
-+ TRY_END_RETURN( -1 )
-+}
-+
-+// FIXME: the whole series of selections API is problematic ...
-+
-+static gint
-+text_wrapper_get_n_selections (AtkText *text)
-+{
-+ return 0; // FIXME
-+}
-+
-+static gchar *
-+text_wrapper_get_selection (AtkText *text,
-+ gint selection_num,
-+ gint *start_offset,
-+ gint *end_offset)
-+{
-+ g_return_val_if_fail( selection_num == 0, FALSE );
-+ TRY_START
-+ uno::Reference< accessibility::XAccessibleText > xText = getText( text );
-+
-+ *start_offset = xText->getSelectionStart();
-+ *end_offset = xText->getSelectionEnd();
-+
-+ return mapToGChar( xText->getSelectedText() );
-+ TRY_END_RETURN( NULL )
-+}
-+
-+static gboolean
-+text_wrapper_add_selection (AtkText *text,
-+ gint start_offset,
-+ gint end_offset)
-+{
-+ TRY_START
-+ return getText( text )->setSelection( start_offset, end_offset );
-+ TRY_END_RETURN( FALSE )
-+}
-+
-+static gboolean
-+text_wrapper_remove_selection (AtkText *text,
-+ gint selection_num)
-+{
-+ g_return_val_if_fail( selection_num == 0, FALSE );
-+ TRY_START
-+ return getText( text )->setSelection( 0, 0 ); // ?
-+ TRY_END_RETURN( FALSE )
-+}
-+
-+static gboolean
-+text_wrapper_set_selection (AtkText *text,
-+ gint selection_num,
-+ gint start_offset,
-+ gint end_offset)
-+{
-+ g_return_val_if_fail( selection_num == 0, FALSE );
-+ TRY_START
-+ return getText( text )->setSelection( start_offset, end_offset );
-+ TRY_END_RETURN( FALSE )
-+}
-+
-+static void
-+textIfaceInit (AtkTextIface *iface)
-+{
-+ g_return_if_fail (iface != NULL);
-+
-+ iface->get_text = text_wrapper_get_text;
-+ iface->get_character_at_offset = text_wrapper_get_character_at_offset;
-+ iface->get_text_before_offset = text_wrapper_get_text_before_offset;
-+ iface->get_text_at_offset = text_wrapper_get_text_at_offset;
-+ iface->get_text_after_offset = text_wrapper_get_text_after_offset;
-+ iface->get_caret_offset = text_wrapper_get_caret_offset;
-+ iface->set_caret_offset = text_wrapper_set_caret_offset;
-+ iface->get_character_count = text_wrapper_get_character_count;
-+ iface->get_n_selections = text_wrapper_get_n_selections;
-+ iface->get_selection = text_wrapper_get_selection;
-+ iface->add_selection = text_wrapper_add_selection;
-+ iface->remove_selection = text_wrapper_remove_selection;
-+ iface->set_selection = text_wrapper_set_selection;
-+ iface->get_run_attributes = text_wrapper_get_run_attributes;
-+ iface->get_default_attributes = text_wrapper_get_default_attributes;
-+ iface->get_character_extents = text_wrapper_get_character_extents;
-+ iface->get_offset_at_point = text_wrapper_get_offset_at_point;
-+}
diff --git a/patches/a11y/vcl-unx-gtk-a11y-atkvalue-cxx.diff b/patches/a11y/vcl-unx-gtk-a11y-atkvalue-cxx.diff
deleted file mode 100644
index 8c45e12b1..000000000
--- a/patches/a11y/vcl-unx-gtk-a11y-atkvalue-cxx.diff
+++ /dev/null
@@ -1,72 +0,0 @@
---- /dev/null
-+++ vcl/unx/gtk/a11y/atkvalue.cxx
-@@ -0,0 +1,69 @@
-+static uno::Reference< accessibility::XAccessibleValue >
-+ getValue( AtkValue *pValue )
-+{
-+ AtkObjectWrapper *pWrap = ATK_OBJECT_WRAPPER( pValue );
-+ return uno::Reference< accessibility::XAccessibleValue >(
-+ pWrap->mpContext, uno::UNO_QUERY );
-+}
-+
-+static void anyToGValue( uno::Any aAny, GValue *pValue )
-+{
-+ // FIXME: expand to lots of types etc.
-+ double aDouble;
-+ aAny >>= aDouble;
-+
-+ memset( pValue, 0, sizeof( GValue ) );
-+ g_value_init( pValue, G_TYPE_DOUBLE );
-+ g_value_set_double( pValue, aDouble );
-+}
-+
-+static void
-+value_wrapper_get_current_value( AtkValue *pObj,
-+ GValue *pValue )
-+{
-+ TRY_START
-+ anyToGValue( getValue( pObj )->getCurrentValue(), pValue );;
-+ TRY_END
-+}
-+
-+static void
-+value_wrapper_get_maximum_value( AtkValue *pObj,
-+ GValue *pValue )
-+{
-+ TRY_START
-+ anyToGValue( getValue( pObj )->getMaximumValue(), pValue );
-+ TRY_END
-+}
-+
-+static void
-+value_wrapper_get_minimum_value( AtkValue *pObj,
-+ GValue *pValue )
-+{
-+ TRY_START
-+ anyToGValue( getValue( pObj )->getMinimumValue(), pValue );
-+ TRY_END
-+}
-+
-+static gboolean
-+value_wrapper_set_current_value( AtkValue *pObj,
-+ const GValue *pValue )
-+{
-+ TRY_START
-+ // FIXME - this needs expanding
-+ double aDouble = g_value_get_double( pValue );
-+ uno::Any aAny;
-+ aAny <<= aDouble;
-+ return getValue( pObj )->setCurrentValue( aAny );
-+ TRY_END_RETURN( 0 )
-+}
-+
-+static void
-+valueIfaceInit (AtkValueIface *iface)
-+{
-+ g_return_if_fail (iface != NULL);
-+
-+ iface->get_current_value = value_wrapper_get_current_value;
-+ iface->get_maximum_value = value_wrapper_get_maximum_value;
-+ iface->get_minimum_value = value_wrapper_get_minimum_value;
-+ iface->set_current_value = value_wrapper_set_current_value;
-+}
diff --git a/patches/a11y/vcl-unx-gtk-a11y-atkwrapper-cxx.diff b/patches/a11y/vcl-unx-gtk-a11y-atkwrapper-cxx.diff
deleted file mode 100644
index 9bb883ec6..000000000
--- a/patches/a11y/vcl-unx-gtk-a11y-atkwrapper-cxx.diff
+++ /dev/null
@@ -1,595 +0,0 @@
---- /dev/null
-+++ vcl/unx/gtk/a11y/atkwrapper.cxx
-@@ -0,0 +1,592 @@
-+#include <com/sun/star/uno/Any.hxx>
-+#include <com/sun/star/uno/Type.hxx>
-+#include <com/sun/star/uno/Sequence.hxx>
-+#include <com/sun/star/accessibility/AccessibleRole.hpp>
-+#include <com/sun/star/accessibility/AccessibleRelation.hpp>
-+#include <com/sun/star/accessibility/AccessibleRelationType.hpp>
-+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
-+#include <com/sun/star/accessibility/XAccessible.hpp>
-+#include <com/sun/star/accessibility/XAccessibleText.hpp>
-+#include <com/sun/star/accessibility/XAccessibleValue.hpp>
-+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
-+#include <com/sun/star/accessibility/XAccessibleContext.hpp>
-+#include <com/sun/star/accessibility/XAccessibleComponent.hpp>
-+#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
-+#include <com/sun/star/accessibility/XAccessibleStateSet.hpp>
-+#include <com/sun/star/accessibility/XAccessibleRelationSet.hpp>
-+#include <com/sun/star/awt/XExtendedToolkit.hpp>
-+#include <com/sun/star/awt/XTopWindow.hpp>
-+#include <com/sun/star/awt/XTopWindowListener.hpp>
-+#include <com/sun/star/awt/XWindow.hpp>
-+#include <com/sun/star/lang/XComponent.hpp>
-+#include <com/sun/star/lang/XServiceInfo.hpp>
-+#include <com/sun/star/lang/XInitialization.hpp>
-+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-+#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-+#include <com/sun/star/beans/Property.hpp>
-+
-+#include <rtl/ref.hxx>
-+#include <cppuhelper/factory.hxx>
-+#include <cppuhelper/queryinterface.hxx>
-+
-+#include "atkwrapper.hxx"
-+#include "atklistener.hxx"
-+
-+#define ATK_TYPE_OBJECT_WRAPPER atk_object_wrapper_get_type()
-+#define ATK_OBJECT_WRAPPER(obj) \
-+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), ATK_TYPE_OBJECT_WRAPPER, AtkObjectWrapper))
-+
-+static GObjectClass *parent_class = NULL;
-+static GHashTable *uno_to_gobject = NULL;
-+
-+#define TRY_START try {
-+#define TRY_END } catch(const uno::Exception &e) { }
-+#define TRY_END_RETURN(v) } catch(const uno::Exception &e) { return v; }
-+
-+static G_CONST_RETURN gchar *
-+getAsConst( rtl::OUString rString )
-+{
-+ static const int nMax = 10;
-+ static rtl::OString aUgly[nMax];
-+ static int nIdx = 0;
-+ nIdx = (nIdx + 1) % nMax;
-+ aUgly[nIdx] = rtl::OUStringToOString( rString, RTL_TEXTENCODING_UTF8 );
-+ return aUgly[ nIdx ];
-+}
-+
-+static AtkRelationType mapRelationType( sal_Int16 nRelation )
-+{
-+#if 0
-+ static const ::sal_Int16 INVALID = (sal_Int16)0;
-+static const ::sal_Int16 CONTENT_FLOWS_FROM = (sal_Int16)1;
-+static const ::sal_Int16 CONTENT_FLOWS_TO = (sal_Int16)2;
-+static const ::sal_Int16 CONTROLLED_BY = (sal_Int16)3;
-+static const ::sal_Int16 CONTROLLER_FOR = (sal_Int16)4;
-+static const ::sal_Int16 LABEL_FOR = (sal_Int16)5;
-+static const ::sal_Int16 LABELED_BY = (sal_Int16)6;
-+static const ::sal_Int16 MEMBER_OF = (sal_Int16)7;
-+static const ::sal_Int16 SUB_WINDOW_OF = (sal_Int16)8;
-+ ATK_RELATION_NULL = 0,
-+ ATK_RELATION_CONTROLLED_BY,
-+ ATK_RELATION_CONTROLLER_FOR,
-+ ATK_RELATION_LABEL_FOR,
-+ ATK_RELATION_LABELLED_BY,
-+ ATK_RELATION_MEMBER_OF,
-+ ATK_RELATION_NODE_CHILD_OF,
-+ ATK_RELATION_FLOWS_TO,
-+ ATK_RELATION_FLOWS_FROM,
-+ ATK_RELATION_SUBWINDOW_OF,
-+ ATK_RELATION_EMBEDS,
-+ ATK_RELATION_EMBEDDED_BY,
-+ ATK_RELATION_POPUP_FOR,
-+ ATK_RELATION_LAST_DEFINED
-+ AtkRelationType;
-+#endif
-+ return ATK_RELATION_NULL;
-+}
-+
-+AtkStateType mapAtkState( sal_Int16 nState )
-+{
-+ // A perfect / complete mapping ...
-+ switch( nState )
-+ {
-+#define MAP_DIRECT( a ) \
-+ case accessibility::AccessibleStateType::a: \
-+ return ATK_STATE_##a; break
-+
-+ MAP_DIRECT( INVALID );
-+ MAP_DIRECT( ACTIVE );
-+ MAP_DIRECT( ARMED );
-+ MAP_DIRECT( BUSY );
-+ MAP_DIRECT( CHECKED );
-+ MAP_DIRECT( EDITABLE );
-+ MAP_DIRECT( ENABLED );
-+ MAP_DIRECT( EXPANDABLE );
-+ MAP_DIRECT( EXPANDED );
-+ MAP_DIRECT( FOCUSABLE );
-+ MAP_DIRECT( FOCUSED );
-+ MAP_DIRECT( HORIZONTAL );
-+ MAP_DIRECT( ICONIFIED );
-+ MAP_DIRECT( INDETERMINATE );
-+ MAP_DIRECT( MANAGES_DESCENDANTS );
-+ MAP_DIRECT( MODAL );
-+ MAP_DIRECT( MULTI_LINE );
-+ MAP_DIRECT( OPAQUE );
-+ MAP_DIRECT( PRESSED );
-+ MAP_DIRECT( RESIZABLE );
-+ MAP_DIRECT( SELECTABLE );
-+ MAP_DIRECT( SELECTED );
-+ MAP_DIRECT( SENSITIVE );
-+ MAP_DIRECT( SHOWING );
-+ MAP_DIRECT( SINGLE_LINE );
-+ MAP_DIRECT( STALE );
-+ MAP_DIRECT( TRANSIENT );
-+ MAP_DIRECT( VERTICAL );
-+ MAP_DIRECT( VISIBLE );
-+ // a spelling error ...
-+ case accessibility::AccessibleStateType::DEFUNC:
-+ return ATK_STATE_DEFUNCT; break;
-+ case accessibility::AccessibleStateType::MULTI_SELECTABLE:
-+ return ATK_STATE_MULTISELECTABLE; break;
-+ default:
-+ return ATK_STATE_INVALID;
-+ break;
-+ }
-+}
-+
-+static AtkRole mapToAtkRole( sal_Int16 nRole )
-+{
-+ switch( nRole )
-+ {
-+#define MAP(a,b) \
-+ case a: return b; break
-+
-+ MAP( ::accessibility::AccessibleRole::UNKNOWN, ATK_ROLE_UNKNOWN );
-+ MAP( ::accessibility::AccessibleRole::ALERT, ATK_ROLE_ALERT );
-+ MAP( ::accessibility::AccessibleRole::COLUMN_HEADER, ATK_ROLE_COLUMN_HEADER );
-+ MAP( ::accessibility::AccessibleRole::CANVAS, ATK_ROLE_CANVAS );
-+ MAP( ::accessibility::AccessibleRole::CHECK_BOX, ATK_ROLE_CHECK_BOX );
-+ MAP( ::accessibility::AccessibleRole::CHECK_MENU_ITEM, ATK_ROLE_CHECK_MENU_ITEM );
-+ MAP( ::accessibility::AccessibleRole::COLOR_CHOOSER, ATK_ROLE_COLOR_CHOOSER );
-+ MAP( ::accessibility::AccessibleRole::COMBO_BOX, ATK_ROLE_COMBO_BOX );
-+ MAP( ::accessibility::AccessibleRole::DATE_EDITOR, ATK_ROLE_DATE_EDITOR );
-+ MAP( ::accessibility::AccessibleRole::DESKTOP_ICON, ATK_ROLE_DESKTOP_ICON );
-+ MAP( ::accessibility::AccessibleRole::DESKTOP_PANE, ATK_ROLE_DESKTOP_FRAME ); // ? pane
-+ MAP( ::accessibility::AccessibleRole::DIRECTORY_PANE, ATK_ROLE_DIRECTORY_PANE );
-+ MAP( ::accessibility::AccessibleRole::DIALOG, ATK_ROLE_DIALOG );
-+ MAP( ::accessibility::AccessibleRole::DOCUMENT, ATK_ROLE_UNKNOWN ); // - FIXME -
-+ MAP( ::accessibility::AccessibleRole::EMBEDDED_OBJECT, ATK_ROLE_UNKNOWN ); // - FIXME -
-+ MAP( ::accessibility::AccessibleRole::END_NOTE, ATK_ROLE_UNKNOWN ); // - FIXME -
-+ MAP( ::accessibility::AccessibleRole::FILE_CHOOSER, ATK_ROLE_FILE_CHOOSER );
-+ MAP( ::accessibility::AccessibleRole::FILLER, ATK_ROLE_FILLER );
-+ MAP( ::accessibility::AccessibleRole::FONT_CHOOSER, ATK_ROLE_FONT_CHOOSER );
-+ MAP( ::accessibility::AccessibleRole::FOOTER, ATK_ROLE_FOOTER );
-+ MAP( ::accessibility::AccessibleRole::FOOTNOTE, ATK_ROLE_TEXT ); // - FIXME -
-+ MAP( ::accessibility::AccessibleRole::FRAME, ATK_ROLE_FRAME );
-+ MAP( ::accessibility::AccessibleRole::GLASS_PANE, ATK_ROLE_GLASS_PANE );
-+ MAP( ::accessibility::AccessibleRole::GRAPHIC, ATK_ROLE_UNKNOWN ); // - FIXME -
-+ MAP( ::accessibility::AccessibleRole::GROUP_BOX, ATK_ROLE_UNKNOWN ); // - FIXME -
-+ MAP( ::accessibility::AccessibleRole::HEADER, ATK_ROLE_HEADER );
-+ MAP( ::accessibility::AccessibleRole::HEADING, ATK_ROLE_HEADER ); // - FIXME -
-+ MAP( ::accessibility::AccessibleRole::HYPER_LINK, ATK_ROLE_TEXT ); // - FIXME -
-+ MAP( ::accessibility::AccessibleRole::ICON, ATK_ROLE_ICON );
-+ MAP( ::accessibility::AccessibleRole::INTERNAL_FRAME, ATK_ROLE_INTERNAL_FRAME );
-+ MAP( ::accessibility::AccessibleRole::LABEL, ATK_ROLE_LABEL );
-+ MAP( ::accessibility::AccessibleRole::LAYERED_PANE, ATK_ROLE_LAYERED_PANE );
-+ MAP( ::accessibility::AccessibleRole::LIST, ATK_ROLE_LIST );
-+ MAP( ::accessibility::AccessibleRole::LIST_ITEM, ATK_ROLE_LIST_ITEM );
-+ MAP( ::accessibility::AccessibleRole::MENU, ATK_ROLE_MENU );
-+ MAP( ::accessibility::AccessibleRole::MENU_BAR, ATK_ROLE_MENU_BAR );
-+ MAP( ::accessibility::AccessibleRole::MENU_ITEM, ATK_ROLE_MENU_ITEM );
-+ MAP( ::accessibility::AccessibleRole::OPTION_PANE, ATK_ROLE_OPTION_PANE );
-+ MAP( ::accessibility::AccessibleRole::PAGE_TAB, ATK_ROLE_PAGE_TAB );
-+ MAP( ::accessibility::AccessibleRole::PAGE_TAB_LIST, ATK_ROLE_PAGE_TAB_LIST );
-+ MAP( ::accessibility::AccessibleRole::PANEL, ATK_ROLE_PANEL );
-+ MAP( ::accessibility::AccessibleRole::PARAGRAPH, ATK_ROLE_PARAGRAPH );
-+ MAP( ::accessibility::AccessibleRole::PASSWORD_TEXT, ATK_ROLE_PASSWORD_TEXT );
-+ MAP( ::accessibility::AccessibleRole::POPUP_MENU, ATK_ROLE_POPUP_MENU );
-+ MAP( ::accessibility::AccessibleRole::PUSH_BUTTON, ATK_ROLE_PUSH_BUTTON );
-+ MAP( ::accessibility::AccessibleRole::PROGRESS_BAR, ATK_ROLE_PROGRESS_BAR );
-+ MAP( ::accessibility::AccessibleRole::RADIO_BUTTON, ATK_ROLE_RADIO_BUTTON );
-+ MAP( ::accessibility::AccessibleRole::RADIO_MENU_ITEM, ATK_ROLE_RADIO_MENU_ITEM );
-+ MAP( ::accessibility::AccessibleRole::ROW_HEADER, ATK_ROLE_ROW_HEADER );
-+ MAP( ::accessibility::AccessibleRole::ROOT_PANE, ATK_ROLE_ROOT_PANE );
-+ MAP( ::accessibility::AccessibleRole::SCROLL_BAR, ATK_ROLE_SCROLL_BAR );
-+ MAP( ::accessibility::AccessibleRole::SCROLL_PANE, ATK_ROLE_SCROLL_PANE );
-+ MAP( ::accessibility::AccessibleRole::SHAPE, ATK_ROLE_UNKNOWN ); // - FIXME -
-+ MAP( ::accessibility::AccessibleRole::SEPARATOR, ATK_ROLE_SEPARATOR );
-+ MAP( ::accessibility::AccessibleRole::SLIDER, ATK_ROLE_SLIDER );
-+ MAP( ::accessibility::AccessibleRole::SPIN_BOX, ATK_ROLE_SPIN_BUTTON ); // ?
-+ MAP( ::accessibility::AccessibleRole::SPLIT_PANE, ATK_ROLE_SPLIT_PANE );
-+ MAP( ::accessibility::AccessibleRole::STATUS_BAR, ATK_ROLE_STATUSBAR );
-+ MAP( ::accessibility::AccessibleRole::TABLE, ATK_ROLE_TABLE );
-+ MAP( ::accessibility::AccessibleRole::TABLE_CELL, ATK_ROLE_TABLE_CELL );
-+ MAP( ::accessibility::AccessibleRole::TEXT, ATK_ROLE_TEXT );
-+ MAP( ::accessibility::AccessibleRole::TEXT_FRAME, ATK_ROLE_UNKNOWN ); // - FIXME -
-+ MAP( ::accessibility::AccessibleRole::TOGGLE_BUTTON, ATK_ROLE_TOGGLE_BUTTON );
-+ MAP( ::accessibility::AccessibleRole::TOOL_BAR, ATK_ROLE_TOOL_BAR );
-+ MAP( ::accessibility::AccessibleRole::TOOL_TIP, ATK_ROLE_TOOL_TIP );
-+ MAP( ::accessibility::AccessibleRole::TREE, ATK_ROLE_TREE );
-+ MAP( ::accessibility::AccessibleRole::VIEW_PORT, ATK_ROLE_VIEWPORT );
-+ MAP( ::accessibility::AccessibleRole::WINDOW, ATK_ROLE_WINDOW );
-+#undef MAP
-+ }
-+/* Roles unimplemented by OO.o / a11y:
-+ ATK_ROLE_INVALID, ATK_ROLE_ACCEL_LABEL, ATK_ROLE_ANIMATION,
-+ ATK_ROLE_ARROW, ATK_ROLE_CALENDAR, ATK_ROLE_DIAL,
-+ ATK_ROLE_DRAWING_AREA, ATK_ROLE_HTML_CONTAINER, ATK_ROLE_IMAGE,
-+ ATK_ROLE_TABLE_COLUMN_HEADER, ATK_ROLE_TABLE_ROW_HEADER, ATK_ROLE_TEAR_OFF_MENU_ITEM,
-+ ATK_ROLE_TERMINAL, ATK_ROLE_TREE_TABLE, ATK_ROLE_RULER,
-+ ATK_ROLE_APPLICATION, ATK_ROLE_AUTOCOMPLETE, ATK_ROLE_EDITBAR */
-+
-+ return ATK_ROLE_UNKNOWN;
-+}
-+
-+static gchar *
-+mapToGChar( rtl::OUString aString )
-+{
-+ rtl::OString aUtf8 = rtl::OUStringToOString( aString, RTL_TEXTENCODING_UTF8 );
-+ return g_strdup( aUtf8 );
-+}
-+
-+extern "C" {
-+
-+static uno::Reference< accessibility::XAccessibleContext >
-+ getContext( AtkObject *pObject )
-+{
-+ AtkObjectWrapper *pWrap = ATK_OBJECT_WRAPPER( pObject );
-+ return uno::Reference< accessibility::XAccessibleContext >(
-+ pWrap->mpContext, uno::UNO_QUERY );
-+}
-+
-+static G_CONST_RETURN gchar *
-+wrapper_get_name( AtkObject *pObject )
-+{
-+ TRY_START
-+ return getAsConst( getContext( pObject )->getAccessibleName() );
-+ TRY_END_RETURN( NULL )
-+}
-+
-+static G_CONST_RETURN gchar *
-+wrapper_get_description( AtkObject *pObject )
-+{
-+ TRY_START
-+ return getAsConst( getContext( pObject )->getAccessibleDescription() );
-+ TRY_END_RETURN( NULL )
-+}
-+
-+static gint
-+wrapper_get_n_children( AtkObject *pObject )
-+{
-+ TRY_START
-+ return getContext( pObject )->getAccessibleChildCount();
-+ TRY_END_RETURN( 0 )
-+}
-+
-+static AtkObject *
-+wrapper_ref_child( AtkObject *pObject,
-+ gint i )
-+{
-+ TRY_START
-+ return atk_wrapper_get( getContext( pObject )->getAccessibleChild( i ) );
-+ TRY_END_RETURN( NULL )
-+}
-+
-+static gint
-+wrapper_get_index_in_parent( AtkObject *pObject )
-+{
-+ TRY_START
-+ return getContext( pObject )->getAccessibleIndexInParent();
-+ TRY_END_RETURN( 0 )
-+}
-+
-+static AtkRelationSet *
-+wrapper_ref_relation_set( AtkObject *pObject )
-+{
-+ AtkRelationSet *pSet = atk_relation_set_new();
-+ try {
-+ uno::Reference< accessibility::XAccessibleRelationSet > xRelationSet;
-+
-+ xRelationSet = getContext( pObject )->getAccessibleRelationSet();
-+
-+ sal_Int32 nRelations = xRelationSet->getRelationCount();
-+ for( sal_Int32 n = 0; n < nRelations; n++ )
-+ {
-+ accessibility::AccessibleRelation aRelation = xRelationSet->getRelation( n );
-+ sal_uInt32 nTargetCount = aRelation.TargetSet.getLength();
-+ AtkObject *pTargets[ nTargetCount ];
-+
-+ for( sal_uInt32 n = 0; n < nTargetCount; n++ )
-+ {
-+ uno::Reference< accessibility::XAccessible > xAccessible(
-+ aRelation.TargetSet[n], uno::UNO_QUERY );
-+ pTargets[n] = atk_wrapper_get( xAccessible );
-+ }
-+
-+ AtkRelation *pRel = atk_relation_new
-+ ( pTargets, nTargetCount,
-+ mapRelationType( aRelation.RelationType ) );
-+ atk_relation_set_add( pSet, pRel );
-+ g_object_unref( G_OBJECT( pRel ) );
-+ }
-+ }
-+ catch(const uno::Exception &e)
-+ {
-+ g_object_unref( G_OBJECT( pSet ) );
-+ pSet = NULL;
-+ }
-+
-+ return pSet;
-+}
-+
-+static AtkStateSet *
-+wrapper_ref_state_set( AtkObject *pObject )
-+{
-+ TRY_START
-+ uno::Reference< accessibility::XAccessibleStateSet > xStateSet;
-+
-+ xStateSet = getContext( pObject )->getAccessibleStateSet();
-+ AtkStateSet *pSet = atk_state_set_new();
-+
-+ uno::Sequence< sal_Int16 > aStates = xStateSet->getStates();
-+ for( sal_uInt32 n = 0; n < aStates.getLength(); n++ )
-+ atk_state_set_add_state( pSet, mapAtkState( n ) );
-+
-+ return pSet;
-+ TRY_END_RETURN( NULL )
-+}
-+
-+static void
-+atk_object_wrapper_finalize (GObject *obj)
-+{
-+ AtkObjectWrapper *pWrap = ATK_OBJECT_WRAPPER (obj);
-+
-+ if( pWrap->pListener )
-+ {
-+ /* FIXME: shoudl really de-register the listener too:
-+ uno::Reference<accessibility::XAccessibleEventBroadcaster> xBroadcaster
-+ ( xContext, uno::UNO_QUERY );
-+ if( xBroadcaster.is() )
-+ {
-+ pWrap->pListener = new AtkListener( pAObj );
-+ xBroadcaster->removeEventListener( pWrap->pListener );
-+ } */
-+
-+ pWrap->pListener->deRegister();
-+ pWrap->pListener->release();
-+ pWrap->pListener = NULL;
-+ }
-+
-+ if( pWrap->mpAccessible )
-+ {
-+ g_assert( g_hash_table_lookup( uno_to_gobject, pWrap->mpAccessible ) );
-+ g_hash_table_remove( uno_to_gobject, pWrap->mpAccessible );
-+ pWrap->mpAccessible->release();
-+ pWrap->mpAccessible = NULL;
-+ }
-+ if( pWrap->mpContext )
-+ {
-+ pWrap->mpContext->release();
-+ pWrap->mpContext = NULL;
-+ }
-+
-+ parent_class->finalize( obj );
-+}
-+
-+static void
-+atk_object_wrapper_class_init (AtkObjectWrapperClass *klass)
-+{
-+ GObjectClass *gobject_class = G_OBJECT_CLASS( klass );
-+ AtkObjectClass *atk_class = ATK_OBJECT_CLASS( klass );
-+
-+ parent_class = (GObjectClass *) g_type_class_peek_parent (klass);
-+
-+ // GObject methods
-+ gobject_class->finalize = atk_object_wrapper_finalize;
-+
-+ // AtkObject methods
-+ atk_class->get_name = wrapper_get_name;
-+ atk_class->get_description = wrapper_get_description;
-+ atk_class->get_n_children = wrapper_get_n_children;
-+ atk_class->ref_child = wrapper_ref_child;
-+ atk_class->get_index_in_parent = wrapper_get_index_in_parent;
-+ atk_class->ref_relation_set = wrapper_ref_relation_set;
-+ atk_class->ref_state_set = wrapper_ref_state_set;
-+}
-+
-+static void
-+atk_object_wrapper_init (AtkObjectWrapper *pWrap,
-+ AtkObjectWrapperClass *pClass)
-+{
-+}
-+
-+GType
-+atk_object_wrapper_get_type (void)
-+{
-+ static GType type = 0;
-+
-+ if (!type)
-+ {
-+ static const GTypeInfo typeInfo =
-+ {
-+ sizeof (AtkObjectWrapperClass),
-+ (GBaseInitFunc) NULL,
-+ (GBaseFinalizeFunc) NULL,
-+ (GClassInitFunc) atk_object_wrapper_class_init,
-+ (GClassFinalizeFunc) NULL,
-+ NULL,
-+ sizeof (AtkObjectWrapper),
-+ 0,
-+ (GInstanceInitFunc) atk_object_wrapper_init,
-+ } ;
-+ type = g_type_register_static (ATK_TYPE_OBJECT,
-+ "OOoAtkObj",
-+ &typeInfo, (GTypeFlags)0) ;
-+ }
-+ return type;
-+}
-+
-+static bool
-+isOfType( uno::XInterface *pInterface, const uno::Type & rType )
-+{
-+ g_return_val_if_fail( pInterface != NULL, false );
-+
-+ bool bIs = false;
-+ try {
-+ uno::Any aRet = pInterface->queryInterface( rType );
-+
-+ bIs = ( ( typelib_TypeClass_INTERFACE == aRet.pType->eTypeClass ) &&
-+ ( aRet.pReserved != NULL ) );
-+ } catch( const uno::Exception &e) { }
-+
-+ return bIs;
-+}
-+
-+// I suck: bite me.
-+#include "atkcomponent.cxx"
-+#include "atkaction.cxx"
-+#include "atktext.cxx"
-+#include "atkvalue.cxx"
-+
-+const struct {
-+ const char *name;
-+ GInterfaceInitFunc aInit;
-+ GType (*aGetGIfaceType) (void);
-+ const uno::Type & (*aGetUnoType) (void *);
-+} aTypeTable[] = {
-+// re-location heaven:
-+ {
-+ "Comp", (GInterfaceInitFunc) componentIfaceInit,
-+ atk_component_get_type,
-+ accessibility::XAccessibleComponent::static_type
-+ },
-+ {
-+ "Act", (GInterfaceInitFunc) actionIfaceInit,
-+ atk_action_get_type,
-+ accessibility::XAccessibleAction::static_type
-+ },
-+ {
-+ "Txt", (GInterfaceInitFunc) textIfaceInit,
-+ atk_text_get_type,
-+ accessibility::XAccessibleText::static_type
-+ },
-+ {
-+ "Val", (GInterfaceInitFunc) valueIfaceInit,
-+ atk_value_get_type,
-+ accessibility::XAccessibleValue::static_type
-+ }
-+};
-+const int aTypeTableSize = G_N_ELEMENTS( aTypeTable );
-+
-+static GType
-+ensureTypeFor( uno::XInterface *pAccessible )
-+{
-+ int i;
-+ int bTypes[ aTypeTableSize ] = { 0, };
-+ rtl::OString aTypeName( "OOoAtkObj" );
-+
-+ for( i = 0; i < aTypeTableSize; i++ )
-+ {
-+ if( isOfType( pAccessible, aTypeTable[i].aGetUnoType(0) ) )
-+ {
-+ aTypeName += aTypeTable[i].name;
-+ bTypes[i] = TRUE;
-+ }
-+// g_message( "Accessible %p has type '%s' (%d)",
-+// pAccessible, aTypeTable[i].name, bTypes[i] );
-+ }
-+
-+ GType nType = g_type_from_name( aTypeName );
-+ if( nType == G_TYPE_INVALID )
-+ {
-+ GTypeInfo aTypeInfo = {
-+ sizeof( AtkObjectWrapperClass ),
-+ NULL, NULL, NULL, NULL, NULL,
-+ sizeof( AtkObjectWrapper ),
-+ 0, NULL
-+ } ;
-+ nType = g_type_register_static( ATK_TYPE_OBJECT_WRAPPER,
-+ aTypeName, &aTypeInfo, (GTypeFlags)0 ) ;
-+
-+ for( int i = 0; i < aTypeTableSize; i++ )
-+ if( bTypes[i] )
-+ {
-+ GInterfaceInfo aIfaceInfo = { NULL, NULL, NULL };
-+ aIfaceInfo.interface_init = aTypeTable[i].aInit;
-+ g_type_add_interface_static (nType, aTypeTable[i].aGetGIfaceType(),
-+ &aIfaceInfo);
-+ }
-+ }
-+ return nType;
-+}
-+
-+static void initialize( AtkObjectWrapper *pWrap )
-+{
-+ AtkObject *pAObj = ATK_OBJECT( pWrap );
-+
-+ try {
-+ uno::Reference< accessibility::XAccessibleContext > xContext = pWrap->mpContext;
-+
-+ rtl::OString aValue;
-+ atk_object_set_role( pAObj, mapToAtkRole( xContext->getAccessibleRole() ) );
-+
-+ uno::Reference< accessibility::XAccessible > xParent;
-+ xParent = xContext->getAccessibleParent();
-+ if( xParent.is() )
-+ atk_object_set_parent( pAObj, atk_wrapper_get( xParent ) );
-+ else
-+ atk_object_set_parent( pAObj, atk_get_root() );
-+
-+ // Hook up basic events
-+ uno::Reference<accessibility::XAccessibleEventBroadcaster> xBroadcaster
-+ ( xContext, uno::UNO_QUERY );
-+ if( xBroadcaster.is() )
-+ {
-+ pWrap->pListener = new AtkListener( pAObj );
-+ xBroadcaster->addEventListener( pWrap->pListener );
-+ }
-+ } catch (const uno::Exception &e)
-+ {
-+ g_warning( "exception initializing accessible" );
-+ }
-+}
-+
-+AtkObject *
-+atk_wrapper_get( const uno::Reference< accessibility::XAccessible > &rAccessible )
-+{
-+ gpointer cached;
-+ accessibility::XAccessible *pAccessible = rAccessible.get();
-+
-+ g_return_val_if_fail( pAccessible != NULL, NULL );
-+
-+ // We assume direct pointer comparison is sufficient...
-+ if( !uno_to_gobject )
-+ uno_to_gobject = g_hash_table_new (NULL, NULL);
-+
-+ if( (cached = g_hash_table_lookup (uno_to_gobject, (gpointer) pAccessible) ) )
-+ return ATK_OBJECT (g_object_ref (cached));
-+
-+ uno::Reference< accessibility::XAccessibleContext > xContext;
-+ try {
-+ xContext = pAccessible->getAccessibleContext();
-+ } catch(const uno::Exception &e) {}
-+
-+ accessibility::XAccessibleContext *pContext = xContext.get();
-+ g_return_val_if_fail( xContext != NULL, NULL );
-+
-+ GType nType = ensureTypeFor( pContext );
-+ cached = g_object_new( nType, NULL);
-+ g_hash_table_insert( uno_to_gobject, (gpointer) pAccessible, cached );
-+ AtkObjectWrapper *pWrap = ATK_OBJECT_WRAPPER( cached );
-+
-+ pAccessible->acquire();
-+ pWrap->mpAccessible = pAccessible;
-+ pContext->acquire();
-+ pWrap->mpContext = pContext;
-+
-+ initialize( pWrap );
-+
-+ return ATK_OBJECT( pWrap );
-+}
-+
-+}; // extern C
diff --git a/patches/a11y/vcl-unx-gtk-a11y-atkwrapper-hxx.diff b/patches/a11y/vcl-unx-gtk-a11y-atkwrapper-hxx.diff
deleted file mode 100644
index 854ced7b2..000000000
--- a/patches/a11y/vcl-unx-gtk-a11y-atkwrapper-hxx.diff
+++ /dev/null
@@ -1,40 +0,0 @@
---- /dev/null
-+++ vcl/unx/gtk/a11y/atkwrapper.hxx
-@@ -0,0 +1,37 @@
-+#ifndef __ATK_WRAPPER_H__
-+#define __ATK_WRAPPER_H__
-+
-+#include <atk/atk.h>
-+#include <com/sun/star/accessibility/XAccessible.hpp>
-+
-+class AtkListener;
-+
-+using namespace ::com::sun::star;
-+
-+extern "C" {
-+
-+typedef struct _AtkObjectWrapper AtkObjectWrapper;
-+typedef struct _AtkObjectWrapperClass AtkObjectWrapperClass;
-+
-+struct _AtkObjectWrapper
-+{
-+ AtkObject aParent;
-+
-+ AtkListener *pListener;
-+ ::com::sun::star::accessibility::XAccessible *mpAccessible;
-+ ::com::sun::star::accessibility::XAccessibleContext *mpContext;
-+};
-+
-+struct _AtkObjectWrapperClass
-+{
-+ AtkObjectClass aParentClass;
-+};
-+
-+GType atk_object_wrapper_get_type (void) G_GNUC_CONST;
-+AtkObject *atk_wrapper_get(
-+ const uno::Reference< accessibility::XAccessible > &rAccessible );
-+AtkStateType mapAtkState( sal_Int16 nState );
-+
-+}; // extern "C"
-+
-+#endif /* __ATK_WRAPPER_H__ */
diff --git a/patches/a11y/vcl-unx-gtk-a11y-makefile-mk.diff b/patches/a11y/vcl-unx-gtk-a11y-makefile-mk.diff
deleted file mode 100644
index b64e13ae4..000000000
--- a/patches/a11y/vcl-unx-gtk-a11y-makefile-mk.diff
+++ /dev/null
@@ -1,111 +0,0 @@
---- /dev/null
-+++ vcl/unx/gtk/a11y/makefile.mk
-@@ -0,0 +1,108 @@
-+#*************************************************************************
-+#
-+# $RCSfile$
-+#
-+# $Revision$
-+#
-+# last change: $Author$ $Date$
-+#
-+# The Contents of this file are made available subject to the terms of
-+# either of the following licenses
-+#
-+# - GNU Lesser General Public License Version 2.1
-+# - Sun Industry Standards Source License Version 1.1
-+#
-+# Sun Microsystems Inc., October, 2000
-+#
-+# GNU Lesser General Public License Version 2.1
-+# =============================================
-+# Copyright 2000 by Sun Microsystems, Inc.
-+# 901 San Antonio Road, Palo Alto, CA 94303, USA
-+#
-+# This library is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU Lesser General Public
-+# License version 2.1, as published by the Free Software Foundation.
-+#
-+# This library 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 for more details.
-+#
-+# You should have received a copy of the GNU Lesser General Public
-+# License along with this library; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+# MA 02111-1307 USA
-+#
-+#
-+# Sun Industry Standards Source License Version 1.1
-+# =================================================
-+# The contents of this file are subject to the Sun Industry Standards
-+# Source License Version 1.1 (the "License"); You may not use this file
-+# except in compliance with the License. You may obtain a copy of the
-+# License at http://www.openoffice.org/license.html.
-+#
-+# Software provided under this License is provided on an "AS IS" basis,
-+# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+# See the License for the specific provisions governing your rights and
-+# obligations concerning the Software.
-+#
-+# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+#
-+# Copyright: 2000 by Sun Microsystems, Inc.
-+#
-+# All Rights Reserved.
-+#
-+# Contributor(s): _______________________________________
-+#
-+#
-+#
-+#*************************************************************************
-+
-+PRJ=..$/..$/..
-+
-+PRJNAME=vcl
-+TARGET=gtka11y
-+ENABLE_EXCEPTIONS=TRUE
-+
-+.INCLUDE : $(PRJ)$/util$/makefile.pmk
-+
-+# workaround for makedepend hang
-+MKDEPENDSOLVER=
-+
-+# --- Settings -----------------------------------------------------
-+
-+.INCLUDE : settings.mk
-+.INCLUDE : $(PRJ)$/util$/makefile2.pmk
-+
-+# --- Files --------------------------------------------------------
-+
-+.IF "$(GUIBASE)"!="unx"
-+
-+dummy:
-+ @echo "Nothing to build for GUIBASE $(GUIBASE)"
-+
-+.ELSE # "$(GUIBASE)"!="unx"
-+
-+.IF "$(ENABLE_GTK)" != ""
-+
-+PKGCONFIG_MODULES=gtk+-2.0
-+.INCLUDE : pkg_config.mk
-+
-+SLOFILES=\
-+ $(SLO)$/atkfactory.obj \
-+ $(SLO)$/atkwrapper.obj \
-+ $(SLO)$/atklistener.obj
-+.ELSE # "$(ENABLE_GTK)" != ""
-+
-+dummy:
-+ @echo GTK disabled - nothing to build
-+.ENDIF
-+.ENDIF # "$(GUIBASE)"!="unx"
-+
-+# --- Targets ------------------------------------------------------
-+
-+.INCLUDE : target.mk
-+
-+.INCLUDE : $(PRJ)$/util$/target.pmk
diff --git a/patches/a11y/vcl-unx-gtk-a11y-todo.diff b/patches/a11y/vcl-unx-gtk-a11y-todo.diff
deleted file mode 100644
index 0c9429cd0..000000000
--- a/patches/a11y/vcl-unx-gtk-a11y-todo.diff
+++ /dev/null
@@ -1,178 +0,0 @@
---- /dev/null
-+++ vcl/unx/gtk/a11y/TODO
-@@ -0,0 +1,175 @@
-+Crasher:
-+ + Test a11y problem ...
-+
-+ + seems to be on a LIST_ITEM:
-+ + inside the zoom combo box ...
-+ + chase through comphelper (rebuilt with debugging symbols)
-+ + something very odd going on there.
-+
-+The crash is caused by instantiation of:
-+comphelper/source/misc/accessiblewrapper.cxx (OAccessibleWrapper) with a NULL _rxInnerAccessible ...
-+
-+#0 OAccessibleWrapper (this=0x5636b848, _rxORB=@0x56361528, _rxInnerAccessible=@0xbfffe4f0, _rxParentAccessible=@0xbfffe490)
-+ at /opt/OpenOffice/src680-m90/comphelper/source/misc/accessiblewrapper.cxx:349
-+ OAccessibleWrapper::OAccessibleWrapper( const Reference< XMultiServiceFactory >& _rxORB,
-+ const Reference< XAccessible >& _rxInnerAccessible, const Reference< XAccessible >& _rxParentAccessible )
-+
-+#1 0x40d1ccfc in comphelper::OWrappedAccessibleChildrenManager::getAccessibleWrapperFor (this=0x56361510, _rxKey=@0xbfffe4f0,
-+ _bCreate=1 '\001') at /opt/OpenOffice/src680-m90/comphelper/source/misc/accessiblewrapper.cxx:189
-+ // -> new wrapper
-+ xValue = new OAccessibleWrapper( m_xORB, _rxKey, (Reference< XAccessible >)m_aOwningAccessible );
-+
-+#2 0x40d1eebe in comphelper::OAccessibleContextWrapperHelper::getAccessibleChild (this=0x563611bc, i=0)
-+ at /opt/OpenOffice/src680-m90/comphelper/source/misc/accessiblewrapper.cxx:487
-+#3 0x40d1fcf1 in comphelper::OAccessibleContextWrapper::getAccessibleChild (this=0x56361188, i=0)
-+ at /opt/OpenOffice/src680-m90/comphelper/source/misc/accessiblewrapper.cxx:595
-+#4 0x41f2bf84 in wrapper_ref_child (pObject=0x816c738, i=0) at /opt/OpenOffice/src680-m90/vcl/unx/gtk/a11y/atkwrapper.cxx:271
-+#5 0x422f4d91 in atk_object_ref_accessible_child () from /opt/gnome/lib/libatk-1.0.so.0
-+
-+ Possibly no-one ever called:
-+ + setOwningAccessible (?)
-+ + or our weak reference expired here somehow ...
-+
-+ * What is this wrapper good for !?
-+ + apparently sub-classing :-)
-+ + unfortunately ...
-+
-+(gdb) bt
-+#0 OAccessibleWrapper (this=0x56365e70, _rxORB=@0x5635bb50, _rxInnerAccessible=@0xbfffe4e0, _rxParentAccessible=@0xbfffe480)
-+ at /opt/OpenOffice/src680-m90/comphelper/source/misc/accessiblewrapper.cxx:353
-+#1 0x40d1cd54 in comphelper::OWrappedAccessibleChildrenManager::getAccessibleWrapperFor (this=0x5635bb38, _rxKey=@0xbfffe4e0,
-+ _bCreate=1 '\001') at /opt/OpenOffice/src680-m90/comphelper/source/misc/accessiblewrapper.cxx:193
-+#2 0x40d1ef16 in comphelper::OAccessibleContextWrapperHelper::getAccessibleChild (this=0x5635b7e4, i=0)
-+ at /opt/OpenOffice/src680-m90/comphelper/source/misc/accessiblewrapper.cxx:491
-+#3 0x40d1fd49 in comphelper::OAccessibleContextWrapper::getAccessibleChild (this=0x5635b7b0, i=0)
-+ at /opt/OpenOffice/src680-m90/comphelper/source/misc/accessiblewrapper.cxx:599
-+#4 0x41f2bf84 in wrapper_ref_child (pObject=0x81617c0, i=0) at /opt/OpenOffice/src680-m90/vcl/unx/gtk/a11y/atkwrapper.cxx:271
-+#5 0x422f4d91 in atk_object_ref_accessible_child () from /opt/gnome/lib/libatk-1.0.so.0
-+#6 0x428778ff in impl_accessibility_accessible_get_child_at_index () from /opt/gnome/lib/libspi.so.0
-+#7 0x42874321 in _ORBIT_skel_small_Accessibility_Accessible_getChildAtIndex () from /opt/gnome/lib/libspi.so.0
-+#8 0x429297e7 in ORBit_POAObject_invoke () from /opt/gnome/lib/libORBit-2.so.0
-+#9 0x4292ffb5 in ORBit_OAObject_invoke () from /opt/gnome/lib/libORBit-2.so.0
-+#10 0x4291c0fe in ORBit_small_invoke_adaptor () from /opt/gnome/lib/libORBit-2.so.0
-+#11 0x4292daf4 in ORBit_POAObject_handle_request () from /opt/gnome/lib/libORBit-2.so.0
-+#12 0x4292e1c4 in ORBit_POAObject_invoke_incoming_request () from /opt/gnome/lib/libORBit-2.so.0
-+#13 0x4292e38c in ORBit_POA_handle_request () from /opt/gnome/lib/libORBit-2.so.0
-+#14 0x42930156 in ORBit_handle_request () from /opt/gnome/lib/libORBit-2.so.0
-+#15 0x42918869 in giop_connection_handle_input () from /opt/gnome/lib/libORBit-2.so.0
-+#16 0x42936d3b in link_connection_io_handler () from /opt/gnome/lib/libORBit-2.so.0
-+#17 0x42939520 in link_source_dispatch () from /opt/gnome/lib/libORBit-2.so.0
-+#18 0x423c3e87 in g_main_context_dispatch () from /opt/gnome/lib/libglib-2.0.so.0
-+#19 0x423c65c7 in g_main_context_iterate () from /opt/gnome/lib/libglib-2.0.so.0
-+#20 0x423c66c3 in g_main_context_iteration () from /opt/gnome/lib/libglib-2.0.so.0
-+#21 0x41f3372e in GtkXLib::Yield () at /opt/OpenOffice/src680-m90/vcl/unx/gtk/window/gtkframe.cxx:93
-+#22 0x424964ef in X11SalInstance::Yield () from ./libvclplug_gen680li.so
-+#23 0x40174c54 in Application::Yield () from ./libvcl680li.so
-+#24 0x40174b6b in Application::Execute () from ./libvcl680li.so
-+#25 0x0806f1b5 in desktop::Desktop::Main ()
-+#26 0x4017a713 in SVMain () from ./libvcl680li.so
-+#27 0x0806898d in sal_main ()
-+#28 0x0806893c in main ()
-+(gdb) up
-+#1 0x40d1cd54 in comphelper::OWrappedAccessibleChildrenManager::getAccessibleWrapperFor (this=0x5635bb38, _rxKey=@0xbfffe4e0,
-+ _bCreate=1 '\001') at /opt/OpenOffice/src680-m90/comphelper/source/misc/accessiblewrapper.cxx:193
-+193 xValue = new OAccessibleWrapper( m_xORB, _rxKey, (Reference< XAccessible >)m_aOwningAccessible );
-+(gdb) p m_aOwningAccessible
-+$1 = {<com::sun::star::uno::WeakReferenceHelper> = {m_pImpl = 0x5635bbb8}, <No data fields>}
-+(gdb) down
-+#0 OAccessibleWrapper (this=0x56365e70, _rxORB=@0x5635bb50, _rxInnerAccessible=@0xbfffe4e0, _rxParentAccessible=@0xbfffe480)
-+ at /opt/OpenOffice/src680-m90/comphelper/source/misc/accessiblewrapper.cxx:353
-+353 *(int *)0 = 0;
-+(gdb) l
-+348 ,OComponentProxyAggregation( _rxORB, Reference< XComponent >( _rxInnerAccessible, UNO_QUERY ) )
-+349 ,m_xInnerAccessible( _rxInnerAccessible )
-+350 ,m_xParentAccessible( _rxParentAccessible )
-+351 {
-+352 if( !_rxInnerAccessible.is() )
-+353 *(int *)0 = 0;
-+354 }
-+355
-+356 //--------------------------------------------------------------------
-+357 OAccessibleWrapper::~OAccessibleWrapper( )
-+(gdb) p _rxInnerAccessible
-+$2 = (
-+ const com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessible> &) @0xbfffe4e0: {<com::sun::star::uno::BaseReference> = {_pInterface = 0x0}, <No data fields>}
-+(gdb) up
-+#1 0x40d1cd54 in comphelper::OWrappedAccessibleChildrenManager::getAccessibleWrapperFor (this=0x5635bb38, _rxKey=@0xbfffe4e0,
-+ _bCreate=1 '\001') at /opt/OpenOffice/src680-m90/comphelper/source/misc/accessiblewrapper.cxx:193
-+193 xValue = new OAccessibleWrapper( m_xORB, _rxKey, (Reference< XAccessible >)m_aOwningAccessible );
-+(gdb) p m_aOwningAccessible.m_pImpl
-+$3 = (struct OWeakRefListener *) 0x5635bbb8
-+(gdb) p *m_aOwningAccessible.m_pImpl
-+$4 = <incomplete type>
-+(gdb) up
-+#2 0x40d1ef16 in comphelper::OAccessibleContextWrapperHelper::getAccessibleChild (this=0x5635b7e4, i=0)
-+ at /opt/OpenOffice/src680-m90/comphelper/source/misc/accessiblewrapper.cxx:491
-+491 return m_pChildMapper->getAccessibleWrapperFor( xInnerChild );
-+(gdb) p m_xInnerContxt
-+No symbol "m_xInnerContxt" in current context.
-+(gdb) p m_xInnerContext
-+$5 = {<com::sun::star::uno::BaseReference> = {_pInterface = 0x563584cc}, <No data fields>}
-+(gdb) p xInnerChild
-+$6 = {<com::sun::star::uno::BaseReference> = {_pInterface = 0x0}, <No data fields>}
-+(gdb)
-+
-+
-+
-+Serious problems
-+ + Threading/locking:
-+ + incoming CORBA calls & the GDK lock
-+ + how are these being processed & on what thread ?
-+ + are we holding the GDK_THREADS lock ?
-+ + can we even do that ?
-+ + is it really necessary to be thread safe ?
-+ + how does this work in combination with the (unsafe) GAIL code ?
-+ + what should incoming CORBA calls be doing ?
-+ + esp. since we can't tell if they're coming from
-+ in-proc or not either [ though this is unlikely ]
-+
-+Missing features
-+ + notifications when the tree state changes
-+ + works for toplevels - managed by gail ...
-+ + hack in 'atklistener.cxx'
-+ + ... here ...
-+
-+Known bugs:
-+ + finish AtkText (!)
-+ + crashes on 'expand all' with writer open
-+ + tooltips create new toplevels with broken roles.
-+
-+Crasher from here:
-+
-+(gdb) t 1
-+[Switching to thread 1 (process 24740)]#0 0x44fd892c in os::report_fatal_error ()
-+ from /usr/lib/SunJava2-1.4.2/jre/lib/i386/client/libjvm.so
-+(gdb) bt
-+#3 0x44fdbde8 in signalHandler () from /usr/lib/SunJava2-1.4.2/jre/lib/i386/client/libjvm.so
-+#4 <signal handler called>
-+#5 0x40cc2725 in comphelper::AccessibleEventNotifier::addEvent () from ./libcomphelp4gcc3.so
-+#6 0x54715529 in SwAccessibleContext::FireAccessibleEvent () from ./libsw680li.so
-+#7 0x547156ec in SwAccessibleContext::FireStateChangedEvent () from ./libsw680li.so
-+#8 0x547345dd in SwAccessibleParagraph::_InvalidateFocus () from ./libsw680li.so
-+#9 0x54719cb7 in SwAccessibleContext::InvalidateFocus () from ./libsw680li.so
-+#10 0x5472cc39 in SwAccessibleMap::InvalidateFocus () from ./libsw680li.so
-+#11 0x547aa128 in ViewShell::InvalidateAccessibleFocus () from ./libsw680li.so
-+#12 0x54d803ae in SwEditWin::GetFocus () from ./libsw680li.so
-+#13 0x4033c28a in Window::ImplGrabFocus () from ./libvcl680li.so
-+#14 0x403446c1 in Window::GrabFocus () from ./libvcl680li.so
-+#15 0x403523bc in Window::ImplAsyncFocusHdl () from ./libvcl680li.so
-+#16 0x403522d4 in Window::LinkStubImplAsyncFocusHdl () from ./libvcl680li.so
-+#17 0x40352978 in ImplHandleUserEvent () from ./libvcl680li.so
-+#18 0x40353499 in ImplWindowFrameProc () from ./libvcl680li.so
-+#19 0x42419ff9 in SalDisplay::DispatchInternalEvent () from ./libvclplug_gen680li.so
-+#20 0x41ebc95e in GtkXLib::userEventFn () at /opt/OpenOffice/src680-m90/vcl/unx/gtk/window/gtkframe.cxx:93
-+#21 0x4234a221 in g_idle_dispatch () from /opt/gnome/lib/libglib-2.0.so.0
-+#22 0x4234be87 in g_main_context_dispatch () from /opt/gnome/lib/libglib-2.0.so.0
-+#23 0x4234e5c7 in g_main_context_iterate () from /opt/gnome/lib/libglib-2.0.so.0
-+#24 0x4234e6c3 in g_main_context_iteration () from /opt/gnome/lib/libglib-2.0.so.0
-+#25 0x41ebcaee in GtkXLib::Yield () at /opt/OpenOffice/src680-m90/vcl/unx/gtk/window/gtkframe.cxx:93
-+#26 0x4241e4ef in X11SalInstance::Yield () from ./libvclplug_gen680li.so
-+#27 0x40174c54 in Application::Yield () from ./libvcl680li.so
-+#28 0x40174b6b in Application::Execute () from ./libvcl680li.so
-+#29 0x0806f1b5 in desktop::Desktop::Main ()
-+#30 0x4017a713 in SVMain () from ./libvcl680li.so
-+#31 0x0806898d in sal_main ()
-+#32 0x0806893c in main ()
diff --git a/patches/a11y/vcl-unx-inc-plugins-gtk-atkfactory-hxx.diff b/patches/a11y/vcl-unx-inc-plugins-gtk-atkfactory-hxx.diff
deleted file mode 100644
index b32a4e9b4..000000000
--- a/patches/a11y/vcl-unx-inc-plugins-gtk-atkfactory-hxx.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- /dev/null
-+++ vcl/unx/inc/plugins/gtk/atkfactory.hxx
-@@ -0,0 +1,8 @@
-+#ifndef __ATK_FACTORY_H__
-+#define __ATK_FACTORY_H__
-+
-+#include <atk/atk.h>
-+
-+void RegisterAtkFactory( GType nWindowType );
-+
-+#endif
diff --git a/patches/apply.pl b/patches/apply.pl
deleted file mode 100755
index 78a6abe6c..000000000
--- a/patches/apply.pl
+++ /dev/null
@@ -1,610 +0,0 @@
-#!/usr/bin/perl -w
-
-use File::Copy;
-use File::Basename;
-
-sub get_search_paths()
-{
- my @paths = ();
- my @search = split /:/, $options{'PATCHPATH'};
-
- for my $stem (@search) {
- push @paths, "$patch_dir/$stem";
- }
-# print "Search paths are '@paths'\n";
- return @paths;
-}
-
-sub find_patch_file($)
-{
- my $file = shift;
- my $file_path = '';
-
- $file =~ m/\.diff$/ || die "Patch file '$file' is not a .diff";
-
- for my $path (get_search_paths()) {
- if (-f "$path/$file") {
- $file_path = "$path/$file";
- last;
- }
- }
-
- -f $file_path || die "\n\n** Error ** - Can't find file $file " .
- "in patch path '" . $options{'PATCHPATH'} . "'\n\n\n";
-
- return $file_path;
-}
-
-sub do_patch {
- my $patch = shift;
- my $base_cmd = shift;
- my $patch_file = basename($patch);
- my $cmd_output = "";
- my $cmd_suffix = "";
-
- print "$patch_file: testing...";
-
- if ($quiet)
- { $cmd_output = " > /dev/null " }
-
- $cmd_pipe = " < $patch";
- my $cmd = "( $base_cmd --dry-run ".$cmd_output.$cmd_suffix.")".$cmd_pipe;
-
- print "$cmd\n" unless $quiet;
- system ($cmd) && die "Testing patch $patch_file failed.";
-
- $cmd = "( $base_cmd > /dev/null".$cmd_suffix.")".$cmd_pipe;
- if($quiet)
- { print "applying..." }
- else
- { print "$cmd\n" }
-
- system ($cmd) && die "Failed to patch $patch_file\n" .
- "- this is often caused by duplicate sections in a patch.\n".
- "you will need to manually reverse this patch\n";
- print "done.\n";
-}
-
-sub slurp {
- my $from = shift;
- my $save = $/;
- my $FROM;
-
- undef $/;
- open ($FROM, "<$from");
- # slurp whole file in one big string
- my $content = <$FROM>;
- close ($FROM);
- $/ = $save;
-
- return $content;
-}
-
-sub select_subset ($$);
-
-sub select_subset ($$)
-{
- my $subsets = shift;
- my $tag = shift;
- my @nodes = ();
-
- if (defined $subsets->{$tag}) {
- @nodes = @{$subsets->{$tag}};
- }
-
- if (!@nodes) {
- return @nodes;
- }
-
- my $subtag;
- my @result = @nodes;
-
- my $count = @nodes;
- for $subtag (@nodes) {
- my @subset = select_subset($subsets, $subtag);
- push @result, @subset;
- }
-
- return @result;
-}
-
-sub canonicalize_milestone($)
-{
- my $milestone = shift;
- $milestone =~ m/([0-9]+)$/ || return $milestone;
- my $stem = $milestone;
- my $num = $1;
- $num = sprintf("%04d", $num);
- $stem =~ s/([0-9]+)$//;
- $milestone = $stem . $num;
-# print "Canonicalize milestone to '$milestone'\n";
- return $milestone;
-}
-
-sub milestone_cmp($$)
-{
- my $a = shift;
- my $b = shift;
- $a = canonicalize_milestone($a);
- $b = canonicalize_milestone($b);
- return $a cmp $b;
-}
-
-sub rules_pass($)
-{
- my $original_rule = shift;
- my $rule = $original_rule;
-
- while ($rule ne '') {
- my $lastrule = $rule;
-# print "verify rule '$rule' vs '$tag'\n";
- # equal to (==)
- if ($rule =~ s/\=\=\s*(\S+)// && milestone_cmp ($tag, $1) != 0 ) { return 0; };
- # less than or equal (<=)
- if ($rule =~ s/\<=\s*(\S+)// && milestone_cmp ($tag, $1) > 0 ) { return 0; };
- # less than (<)
- if ($rule =~ s/\<\s*(\S+)// && milestone_cmp ($tag, $1) >= 0 ) { return 0; };
- # greater than or equal (>=)
- if ($rule =~ s/\>=\s*(\S+)// && milestone_cmp ($tag, $1) < 0 ) { return 0; };
- # greater than (>)
- if ($rule =~ s/\>\s*(\S+)// && milestone_cmp ($tag, $1) <= 0 ) { return 0; };
-
- $rule =~ s/^\s*//;
-
- $lastrule eq $rule && die "Invalid syntax in rule: $original_rule\n";
- }
- return 1;
-}
-
-sub version_filter_targets($)
-{
- my $tlist = shift;
- my @targets;
-
- $tlist =~ m/([^<>=]*)(.*)/;
- my $rules = $2;
- my $targets = $1;
- $targets =~ s/\s*$//;
-
- @targets = split /\s*,\s*/, $targets;
-
-# printf "Rules '$rules' targets '$targets'\n";
-
- if (!rules_pass ($rules)) {
-# printf "Rule '$rules' failed ['@targets']\n";
- @targets = ();
- } else {
-# printf "Rule '$rules' passed ['@targets']\n";
- }
-
- return @targets;
-}
-
-sub patched_files($) {
- my ( $file ) = @_;
-
- my @lines = split (/\n/, $file);
- my @dest;
-
- foreach $line (@lines) {
- if ( $line =~ /\+\+\+ ([^\s]*)/ ) {
- push @dest, $1;
- }
- }
-
- return @dest;
-}
-
-sub is_dependent_patch($$) {
- my ( $patchedref, $patch ) = @_;
-
- my @files = patched_files ($patch);
-
- foreach $file (@files) {
- if ( exists $patchedref->{$file} ) {
- return 1;
- }
- }
-
- return 0;
-}
-
-sub list_patches(@) {
- my ( @distros ) = @_;
-
- my @Patches = ();
- foreach $distro ( @distros ) {
- @Patches = ( @Patches, list_patches_single( $distro ) );
- }
-
- return @Patches;
-}
-
-sub list_patches_single {
-
- sub checkTerminal {
- my $subsets = shift;
- my $referenced = shift;
- my $distro = shift;
-
- if (defined $referenced->{$distro} ||
- !defined $subsets->{$distro}) {
- print "Error: you must use a terminal node for distro:\n";
- my $ref;
- my @terminals;
- print " One of: ";
- for $ref(keys %{$subsets}) {
- if (!defined $referenced->{$ref}) {
- push @terminals, $ref;
- }
- }
- print join ', ', sort (@terminals);
- print "\n";
- exit (1);
- }
- }
-
- my $forDistro = shift;
- my @Patches = ();
-
- open (PatchList, "$apply_list") || die "Can't find $apply_list";
-
- my @targets=();
- my %subsets=();
- my @selected_subsets=();
- my %referenced=();
- while (<PatchList>) {
- s/\s*#.*//;
- chomp;
- s/\r//; # Win32
- s/\s*$//;
- s/^\s*//;
- $_ eq '' && next;
-
- # continuation
- if (defined $lastline) {
- $_ = $lastline . $_;
- undef $lastline;
- }
- if (m/\\\S*$/) {
- s/\\//g;
- $lastline = $_;
- next;
- }
-
- if (/\[\s*(.*)\]/) {
- my $tmp = $1;
- $tmp =~ s/\s+$//;
-# print "Target: '$tmp'\n";
- @targets = version_filter_targets($tmp);
- next;
- }
-
- if (/\s*([_\S]+)\s*=\s*(.*)/) {
- $options{$1} = $2;
- print "$1 => $2\n" unless $quiet;
- next;
- }
-
- if (/\s*([_\S]+)\s*:\s*(.*)/) {
- my $key = $1;
- my @value = (split /\s*,\s*/, $2);
- $subsets{$key} = [@value];
- @selected_subsets = select_subset (\%subsets, $forDistro);
-# print "selected sets: @selected_subsets\n" unless $quiet;
- # update terminality map
- my $ref;
- for $ref(@value) {
- $referenced{$ref} = 1;
- }
- next;
- }
-
- push @unfiltered_patch_list, $_;
-
- my $set;
- my $match = 0;
- for $set (@targets) {
- if (grep /^$set$/i, @selected_subsets) {
- $match = 1;
- }
- }
- if (!$match) {
-# print "@subsets: @targets: skipping '$_'\n";
- next;
- }
-
- push @Patches, find_patch_file ($_);
- }
- close (PatchList);
-
- checkTerminal (\%subsets, \%referenced, $forDistro);
-
- return @Patches;
-}
-
-sub applied_patches_list
-{
- my @patches;
-
- foreach (glob($applied_patches."/???-*")) {
- m/\~$/ && next; # backup file.
- push @patches, $_;
- }
-
- return @patches;
-}
-
-sub apply_patches {
-
- my @Patches = list_patches (@distros);
-
- print "\n" unless $quiet;
-
- for $opt (@required_opts) {
- defined $options{$opt} || die "Required option $opt not defined";
- }
-
- if( ! -d $applied_patches ) {
- mkdir $applied_patches || die "Can't make directory $patch_dir: $!";
- }
-
- my %existing_patches;
-
- foreach (applied_patches_list()) {
- my $file = basename $_;
-
- $file =~ s/^([0-9]{3})-//;
- $existing_patches{$file} = $_;
- }
-
- my %obsolete_patches = %existing_patches;
- foreach $patch (@Patches) {
- delete $obsolete_patches{basename($patch)};
- }
-
- my @to_apply;
- my @to_unapply;
- my %patched;
-
- foreach $a (keys %obsolete_patches) {
- $patch = $obsolete_patches{$a};
-
- unshift @to_unapply, $patch;
- foreach $pf ( patched_files (slurp ($patch)) ) {
- $patched{$pf} = 1;
- }
-
- delete $existing_patches{$a};
- }
-
- foreach $patch (@Patches) {
- my $patch_file = basename($patch);
-
- my $is_applied = 0;
-
- if( exists $existing_patches{$patch_file} ) {
- my $applied_patch = $existing_patches{$patch_file};
- my $patch_content = slurp($patch);
- my $applied_content = slurp($applied_patch);
- if (length ($patch_content) == length ($applied_content) &&
- $patch_content eq $applied_content &&
- !is_dependent_patch (\%patched, $applied_content))
- {
- print "$patch_file already applied, skipped\n";
- $is_applied = 1;
- }
- else {
- unshift @to_unapply, $applied_patch;
- foreach $pf ( patched_files( $applied_content ) ) {
- $patched{$pf} = 1;
- }
- }
- delete $existing_patches{$patch_file};
- }
-
- if (!$is_applied) {
- push @to_apply, $patch;
- }
- }
-
- foreach $patch ( sort { $b cmp $a } @to_unapply ) {
- print "\n" unless $quiet;
- print "Unapplying patch $patch\n";
- do_patch $patch, $base_cmd." -R";
- unlink $patch || die "Can't remove $patch $!";
- }
-
- my $patch_num = 0;
- foreach (applied_patches_list()) {
- my $file = basename $_;
-
- if ( $file =~ /^([0-9]{3})-/ ) {
- my $num = $1;
- $num =~ s/^0*//;
-
- $patch_num = $num if ( $num > $patch_num );
- }
- }
- $patch_num++;
-
- foreach $patch (@to_apply) {
- my $patch_file = basename($patch);
- print "\n" unless $quiet;
- do_patch $patch, $base_cmd;
-
- my $patch_copy = sprintf("%s/%03d-%s", $applied_patches, $patch_num++, $patch_file);
-
- print "copy $patch_file -> $patch_copy\n" unless $quiet;
-
- copy($patch, $patch_copy) || die "Can't copy $patch to $patch_copy $!";
- }
-
- if (keys %existing_patches) {
- die "Error - leftover obsolete patches\n";
- }
-}
-
-sub remove_patches {
- my @Patches = ();
-
- -d $applied_patches || return;
-
- foreach $patch_file (reverse (applied_patches_list())) {
- print "\nRemoving ".basename($patch_file)."...\n" unless $quiet;
- do_patch $patch_file, $base_cmd;
- unlink $patch_file;
- }
- rmdir $applied_patches
-}
-
-sub export_series {
- my @Patches = list_patches (@distros);
-
- for my $patch (@Patches) {
- $patch =~ s/^\Q$patch_dir\E\/..\///;
- print "$patch -p0\n";
- }
-}
-
-sub is_old_patch_version()
-{
- my $Patch;
- my $ver_line;
- my $is_old = 1;
-
- open ($Patch, "patch --version|") || die "Can't run patch: $!";
- $ver_line = <$Patch>;
- $ver_line =~ m/\s+(\d+)\.(\d+)\.(\d+)/ || die "Can't get patch version\n";
- if ($1 >= 2 && $2 >= 5 && $3 >= 9) {
- $is_old = 0;
- }
-
- if ($is_old) {
- print "Old patch version - pruning LFs\n";
- }
- return $is_old;
-}
-
-
-sub scan_unused($$)
-{
- my $dir = shift;
- my $patches = shift;
- my $dirh;
- my $warned = 0;
-
- opendir($dirh, $dir) || die "Can't open $dir: $!";
- while (my $file = readdir ($dirh)) {
- $file =~ /^\./ && next; # hidden
- $file =~ /\.diff$/ || next; # non-patch
-
- if (!defined $patches->{$file}) {
- if (!$warned) {
- print "Warning: unused files in $dir\n";
- $warned++;
- }
- print "\t$file\n";
- }
- }
- closedir($dirh);
-}
-
-sub check_for_unused ($$)
-{
- my $patch_dir = shift;
- my $patches = shift;
- my %patches;
- for my $patch (@{$patches}) {
-# print "Check for $patch\n";
- $patches{$patch} = 1;
- }
-
- for my $path (get_search_paths()) {
- scan_unused ($path, \%patches);
- }
-}
-
-(@ARGV > 1) ||
- die "Syntax:\n".
- "apply <path-to-patchdir> <src root> --tag=<src680-m90> [--distro=Debian [--distro=Binfilter [...]]] [--quiet] [--dry-run] [ patch flags ]\n" .
- "apply <path-to-patchdir> --series-to\n" .
- "apply <path-to-patchdir> --find-unused\n";
-
-%options = ();
-
-$quiet = 0;
-$remove = 0;
-$export = 0;
-$opts = "";
-@distros = ();
-$tag = '';
-$dry_run = 0;
-$find_unused = 0;
-@required_opts = ( 'PATCHPATH' );
-@arguments = ();
-@unfiltered_patch_list = ();
-
-
-foreach $a (@ARGV) {
- if ($a eq '-R') {
- $remove = 1;
- push @arguments, $a;
- } elsif ($a =~ m/--series-from=(.*)/) {
- $export = 1;
- $quiet = 1;
- push @distros, $1;
- } elsif ($a eq '--quiet') {
- $quiet = 1;
- } elsif ($a =~ m/--distro=(.*)/) {
- push @distros, $1;
- } elsif ($a =~ m/--find-unused/) {
- $find_unused = 1;
- } elsif ($a =~ m/--tag=(.*)/) {
- $tag = $1;
- } elsif ($a =~ m/--dry-run/g) {
- $dry_run = 1;
- } else {
- push @arguments, $a;
- }
-}
-
-if ( ! @distros ) {
- @distros = ( "Debian" );
-}
-
-$patch_dir = shift (@arguments);
-substr ($patch_dir, 0, 1) eq '/' || die "apply.pl requires absolute paths";
-
-$apply_list = $patch_dir.'/apply';
-
-print "Execute with $opts for distro(s) '" . join( " ", @distros ) . "'\n" unless $quiet;
-
-if ($dry_run || $find_unused) {
- $tag = '' if ($find_unused);
- my @Patches = list_patches (@distros);
- if ($find_unused) {
- check_for_unused ($patch_dir, \@unfiltered_patch_list);
- } else {
- printf "Dry-run: exiting before applying patches\n";
- }
-} elsif ($export) {
- export_series();
-
-} else {
- $dest_dir = shift (@arguments);
- substr ($dest_dir, 0, 1) eq '/' || die "apply.pl requires absolute paths";
- $applied_patches = $dest_dir.'/applied_patches';
-
- $opts = join ' ', @arguments;
- $base_cmd = "patch -l -p0 $opts -d $dest_dir";
- if (is_old_patch_version()) {
- $base_cmd = 'sed \'s/^\(@.*\)\r$/\1/\' | ' . $base_cmd;
- }
-
- if ($remove) {
- remove_patches();
- } else {
- apply_patches();
- }
-}
diff --git a/patches/cairo/.cvsignore b/patches/cairo/.cvsignore
deleted file mode 100644
index 282522db0..000000000
--- a/patches/cairo/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile
-Makefile.in
diff --git a/patches/cairo/Makefile.am b/patches/cairo/Makefile.am
deleted file mode 100644
index 0b280d2c7..000000000
--- a/patches/cairo/Makefile.am
+++ /dev/null
@@ -1 +0,0 @@
-EXTRA_DIST = $(wildcard *.diff)
diff --git a/patches/cairo/cairo-canvas-component-install.diff b/patches/cairo/cairo-canvas-component-install.diff
deleted file mode 100644
index 19f56b827..000000000
--- a/patches/cairo/cairo-canvas-component-install.diff
+++ /dev/null
@@ -1,115 +0,0 @@
---- scp2/source/canvas/cairocanvas.scp 1970-01-01 01:00:00.000000000 +0100
-+++ scp2/source/canvas/cairocanvas.scp 2005-07-21 12:00:19.000000000 +0200
-@@ -0,0 +1,74 @@
-+/*************************************************************************
-+*
-+* $RCSfile$
-+*
-+* $Revision$
-+*
-+* last change: $Author$ $Date$
-+*
-+* The Contents of this file are made available subject to the terms of
-+* either of the following licenses
-+*
-+* - GNU Lesser General Public License Version 2.1
-+* - Sun Industry Standards Source License Version 1.1
-+*
-+* Sun Microsystems Inc., October, 2000
-+*
-+* GNU Lesser General Public License Version 2.1
-+* = ============================================
-+* Copyright 2000 by Sun Microsystems, Inc.
-+* 901 San Antonio Road, Palo Alto, CA 94303, USA
-+*
-+* This library is free software; you can redistribute it and/or
-+* modify it under the terms of the GNU Lesser General Public
-+* License version 2.1, as published by the Free Software Foundation.
-+*
-+* This library 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 for more details.
-+*
-+* You should have received a copy of the GNU Lesser General Public
-+* License along with this library; if not, write to the Free Software
-+* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+* MA 02111-1307 USA
-+*
-+*
-+* Sun Industry Standards Source License Version 1.1
-+* = ================================================
-+* The contents of this file are subject to the Sun Industry Standards
-+* Source License Version 1.1 (the "License"); You may not use this file
-+* except in compliance with the License. You may obtain a copy of the
-+* License at http://www.openoffice.org/license.html.
-+*
-+* Software provided under this License is provided on an "AS IS" basis,
-+* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+* See the License for the specific provisions governing your rights and
-+* obligations concerning the Software.
-+*
-+* The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+*
-+* Copyright: 2000 by Sun Microsystems, Inc.
-+*
-+* All Rights Reserved.
-+*
-+* Contributor(s): _______________________________________
-+*
-+*
-+************************************************************************/
-+
-+#include "macros.inc"
-+
-+File gid_File_Lib_CairoCanvas
-+ TXT_FILE_BODY;
-+ Styles = (PACKED,UNO_COMPONENT);
-+ RegistryID = gid_Starregistry_Services_Rdb;
-+ Dir = gid_Dir_Program;
-+ #ifdef UNX
-+ Name = STRING(CONCAT2(cairocanvas.uno,UNXSUFFIX));
-+ #else
-+ Name = "cairocanvas.uno.dll";
-+ #endif
-+End
-Index: source/canvas/makefile.mk
-===================================================================
-RCS file: /cvs/installation/scp2/source/canvas/makefile.mk,v
-retrieving revision 1.1
-diff -u -u -r1.1 makefile.mk
---- scp2/source/canvas/makefile.mk 18 Mar 2004 15:02:47 -0000 1.1
-+++ scp2/source/canvas/makefile.mk 26 Jul 2005 01:54:51 -0000
-@@ -78,6 +78,10 @@
- directxcanvas.par \
- vclcanvas.par
-
-+.IF "$(ENABLE_CAIRO)" == "TRUE"
-+PARFILES+= cairocanvas.par
-+.ENDIF
-+
- # --- File ---------------------------------------------------------
-
- .INCLUDE : target.mk
-Index: util/makefile.mk
-===================================================================
-RCS file: /cvs/installation/scp2/util/makefile.mk,v
-retrieving revision 1.23
-diff -u -u -r1.23 makefile.mk
---- scp2/util/makefile.mk 1 Jul 2005 12:21:59 -0000 1.23
-+++ scp2/util/makefile.mk 26 Jul 2005 01:54:51 -0000
-@@ -171,7 +171,11 @@
-
- SCP1FILES += \
- vclcanvas.par
--
-+
-+.IF "$(ENABLE_CAIRO)" == "TRUE"
-+SCP1FILES += cairocanvas.par
-+.ENDIF
-+
- # ------------------------------------------------------------------------
- # OpenOffice.org with JRE (Windows Only)
-
diff --git a/patches/cairo/cairo-canvas-rgb-surface-fallback.diff b/patches/cairo/cairo-canvas-rgb-surface-fallback.diff
deleted file mode 100644
index 3cd1bfac4..000000000
--- a/patches/cairo/cairo-canvas-rgb-surface-fallback.diff
+++ /dev/null
@@ -1,464 +0,0 @@
-Index: canvas/source/cairo/cairo_canvasbitmap.cxx
-===================================================================
-RCS file: /cvs/gsl/canvas/source/cairo/Attic/cairo_canvasbitmap.cxx,v
-retrieving revision 1.1.2.4
-diff -u -p -r1.1.2.4 cairo_canvasbitmap.cxx
---- canvas/source/cairo/cairo_canvasbitmap.cxx 14 Dec 2005 15:38:04 -0000 1.1.2.4
-+++ canvas/source/cairo/cairo_canvasbitmap.cxx 3 Jan 2006 16:59:30 -0000
-@@ -57,10 +57,8 @@ namespace cairocanvas
- mpBufferSurface = mpDevice->getSurface( rSize, bHasAlpha ? CAIRO_CONTENT_COLOR_ALPHA : CAIRO_CONTENT_COLOR );
- mpBufferCairo = mpBufferSurface->getCairo();
-
-- maCanvasHelper.init( rSize,
-- *mpDevice.get(),
-- bHasAlpha );
-- maCanvasHelper.setSurface( mpBufferSurface );
-+ maCanvasHelper.init( rSize, *mpDevice.get() );
-+ maCanvasHelper.setSurface( mpBufferSurface, bHasAlpha );
-
- mbHasAlpha = bHasAlpha;
- }
-Index: canvas/source/cairo/cairo_canvascustomsprite.cxx
-===================================================================
-RCS file: /cvs/gsl/canvas/source/cairo/Attic/cairo_canvascustomsprite.cxx,v
-retrieving revision 1.1.2.5
-diff -u -p -r1.1.2.5 cairo_canvascustomsprite.cxx
---- canvas/source/cairo/cairo_canvascustomsprite.cxx 14 Dec 2005 15:38:04 -0000 1.1.2.5
-+++ canvas/source/cairo/cairo_canvascustomsprite.cxx 3 Jan 2006 16:59:30 -0000
-@@ -55,43 +55,53 @@ namespace cairocanvas
- {
- CanvasCustomSprite::CanvasCustomSprite( const ::com::sun::star::geometry::RealSize2D& rSpriteSize,
- const SpriteCanvasRef& rRefDevice ) :
-- mpSpriteCanvas( rRefDevice )
-+ mpSpriteCanvas( rRefDevice ),
-+ maSize( ::canvas::tools::roundUp( rSpriteSize.Width ),
-+ ::canvas::tools::roundUp( rSpriteSize.Height ) )
- {
- ENSURE_AND_THROW( rRefDevice.get(),
- "CanvasCustomSprite::CanvasCustomSprite(): Invalid sprite canvas" );
-
-- ::basegfx::B2ISize aSize( ::canvas::tools::roundUp( rSpriteSize.Width ),
-- ::canvas::tools::roundUp( rSpriteSize.Height ) );
--
- //mpBufferSurface = mpSpriteCanvas->getSurface( aSize, CAIRO_CONTENT_COLOR );
-- mpBufferSurface = mpSpriteCanvas->getSurface( aSize );
-- mpCairo = mpBufferSurface->getCairo();
-+ mpBufferSurface = mpSpriteCanvas->getSurface( maSize );
-
-- maCanvasHelper.init( aSize,
-- *rRefDevice.get(),
-- true );
-- maCanvasHelper.setSurface( mpBufferSurface );
-+ maCanvasHelper.init( maSize, *rRefDevice.get() );
-+ maCanvasHelper.setSurface( mpBufferSurface, true, this );
-
- maSpriteHelper.init( rSpriteSize,
-- rRefDevice,
-- mpBufferSurface );
-+ rRefDevice );
-+ maSpriteHelper.setSurface( mpBufferSurface );
- }
-
-+ ::cairo::Surface* CanvasCustomSprite::changeSurface( bool bHasAlpha, bool bCopyContent )
-+ {
-+ if( !bHasAlpha && !bCopyContent )
-+ {
-+ OSL_TRACE("replacing sprite background surface");
-+
-+ if( mpBufferSurface )
-+ mpBufferSurface->Unref();
-+ mpBufferSurface = mpSpriteCanvas->getSurface( maSize, CAIRO_CONTENT_COLOR );
-+
-+ maSpriteHelper.setSurface( mpBufferSurface );
-+
-+ return mpBufferSurface;
-+ }
-+
-+ return NULL;
-+ }
-+
- void SAL_CALL CanvasCustomSprite::disposing()
- {
- ::osl::MutexGuard aGuard( m_aMutex );
-
- mpSpriteCanvas.clear();
-
-- if( mpCairo ) {
-- cairo_destroy( mpCairo );
-- mpCairo = NULL;
-- }
--
-- if( mpBufferSurface ) {
-- mpBufferSurface->Unref();
-- mpBufferSurface = NULL;
-- }
-+ if( mpBufferSurface )
-+ {
-+ mpBufferSurface->Unref();
-+ mpBufferSurface = NULL;
-+ }
-
- // forward to parent
- CanvasCustomSpriteBaseT::disposing();
-Index: canvas/source/cairo/cairo_canvascustomsprite.hxx
-===================================================================
-RCS file: /cvs/gsl/canvas/source/cairo/Attic/cairo_canvascustomsprite.hxx,v
-retrieving revision 1.1.2.4
-diff -u -p -r1.1.2.4 cairo_canvascustomsprite.hxx
---- canvas/source/cairo/cairo_canvascustomsprite.hxx 11 Nov 2005 15:14:00 -0000 1.1.2.4
-+++ canvas/source/cairo/cairo_canvascustomsprite.hxx 3 Jan 2006 16:59:30 -0000
-@@ -97,7 +97,8 @@ namespace cairocanvas
- /* Definition of CanvasCustomSprite class */
-
- class CanvasCustomSprite : public CanvasCustomSpriteBaseT,
-- public RepaintTarget
-+ public RepaintTarget,
-+ public SurfaceProvider
- {
- public:
- /** Create a custom sprite
-@@ -142,13 +143,17 @@ namespace cairocanvas
- virtual bool repaint( ::cairo::Surface* pSurface,
- const ::com::sun::star::rendering::ViewState& viewState,
- const ::com::sun::star::rendering::RenderState& renderState );
-+
-+ // SurfaceProvider
-+ virtual ::cairo::Surface* changeSurface( bool bHasAlpha, bool bCopyContent );
-+
- private:
- /** MUST hold here, too, since CanvasHelper only contains a
- raw pointer (without refcounting)
- */
- SpriteCanvasRef mpSpriteCanvas;
-- ::cairo::Surface* mpBufferSurface;
-- ::cairo::Cairo* mpCairo;
-+ ::cairo::Surface* mpBufferSurface;
-+ ::basegfx::B2ISize maSize;
- };
- }
-
-Index: canvas/source/cairo/cairo_canvashelper.cxx
-===================================================================
-RCS file: /cvs/gsl/canvas/source/cairo/Attic/cairo_canvashelper.cxx,v
-retrieving revision 1.1.2.5
-diff -u -p -r1.1.2.5 cairo_canvashelper.cxx
---- canvas/source/cairo/cairo_canvashelper.cxx 14 Dec 2005 15:38:05 -0000 1.1.2.5
-+++ canvas/source/cairo/cairo_canvashelper.cxx 3 Jan 2006 16:59:30 -0000
-@@ -107,15 +107,16 @@ namespace cairocanvas
- }
-
- void CanvasHelper::init( const ::basegfx::B2ISize& rSize,
-- SpriteCanvas& rDevice,
-- bool bHasAlpha )
-+ SpriteCanvas& rDevice )
- {
- mpDevice = &rDevice;
-- mbHaveAlpha = bHasAlpha;
- }
-
-- void CanvasHelper::setSurface( Surface* pSurface )
-+ void CanvasHelper::setSurface( Surface* pSurface, bool bHasAlpha, SurfaceProvider* pSurfaceProvider )
- {
-+ mbHaveAlpha = bHasAlpha;
-+ mpSurfaceProvider = pSurfaceProvider;
-+
- if( mpSurface ) {
- mpSurface->Unref();
- }
-@@ -1065,6 +1066,7 @@ namespace cairocanvas
- Cairo* pCairo = pScaledSurface->getCairo();
-
- cairo_set_source_surface( pCairo, pSurface->mpSurface, 0, 0 );
-+// cairo_set_operator( pCairo, CAIRO_OPERATOR_SOURCE );
- cairo_scale( pCairo, dWidth/rSize.Width, dHeight/rSize.Height );
- cairo_paint( pCairo );
-
-@@ -1080,7 +1082,39 @@ namespace cairocanvas
- pSurface->Unref();
- }
-
-+ if( !bHasAlpha && mbHaveAlpha /* && mpSurfaceProvider */ )
-+ {
-+ double x, y, width, height;
-+
-+ x = y = 0;
-+ width = rSize.Width;
-+ height = rSize.Height;
-+ cairo_matrix_transform_point( &aMatrix, &x, &y );
-+ cairo_matrix_transform_distance( &aMatrix, &width, &height );
-+
-+ // in case the bitmap doesn't have alpha and covers whole area
-+ // we try to change surface to plain rgb
-+ OSL_TRACE ("chance to change surface to rgb, %f, %f, %f x %f (%d x %d)", x, y, width, height, aSize.getX(), aSize.getY() );
-+ if( x <= 0 && y <= 0 && x + width >= aSize.getX() && y + height >= aSize.getY() )
-+ {
-+ OSL_TRACE ("trying to change surface to rgb");
-+ if( mpSurfaceProvider ) {
-+ Surface* pNewSurface = mpSurfaceProvider->changeSurface( false, false );
-+
-+ if( pNewSurface )
-+ setSurface( pNewSurface, false, mpSurfaceProvider );
-+
-+ // set state to new mpCairo
-+ useStates( viewState, renderState, true );
-+ // use the possibly modified matrix
-+ cairo_set_matrix( mpCairo, &aMatrix );
-+ }
-+ }
-+ }
-+
- cairo_set_source_surface( mpCairo, pSurface->mpSurface, 0, 0 );
-+// if( !bHasAlpha )
-+// cairo_set_operator( mpCairo, CAIRO_OPERATOR_SOURCE );
- cairo_paint( mpCairo );
- cairo_restore( mpCairo );
- } else
-Index: canvas/source/cairo/cairo_canvashelper.hxx
-===================================================================
-RCS file: /cvs/gsl/canvas/source/cairo/Attic/cairo_canvashelper.hxx,v
-retrieving revision 1.1.2.4
-diff -u -p -r1.1.2.4 cairo_canvashelper.hxx
---- canvas/source/cairo/cairo_canvashelper.hxx 14 Dec 2005 15:38:05 -0000 1.1.2.4
-+++ canvas/source/cairo/cairo_canvashelper.hxx 3 Jan 2006 16:59:31 -0000
-@@ -66,6 +66,11 @@ namespace cairocanvas
- optional backbuffer painting, when providing it with a second
- HDC to render into.
- */
-+ class SurfaceProvider {
-+ public:
-+ virtual ::cairo::Surface* changeSurface( bool bHasAlpha, bool bCopyContent ) = 0;
-+ };
-+
- class CanvasHelper : private ::boost::noncopyable
- {
- public:
-@@ -92,10 +97,9 @@ namespace cairocanvas
-
- */
- void init( const ::basegfx::B2ISize& rSizePixel,
-- SpriteCanvas& rDevice,
-- bool bHasAlpha );
-+ SpriteCanvas& rDevice );
-
-- void setSurface( ::cairo::Surface* pSurface );
-+ void setSurface( ::cairo::Surface* pSurface, bool bHasAlpha, SurfaceProvider* pSurfaceProvider = NULL );
-
- // CanvasHelper functionality
- // ==========================
-@@ -317,6 +321,7 @@ namespace cairocanvas
-
- ::cairo::Cairo* mpCairo;
- ::cairo::Surface* mpSurface;
-+ SurfaceProvider* mpSurfaceProvider;
- };
-
- void drawPolyPolygonImplementation( ::basegfx::B2DPolyPolygon aPolyPolygon,
-Index: canvas/source/cairo/cairo_spritecanvas.cxx
-===================================================================
-RCS file: /cvs/gsl/canvas/source/cairo/Attic/cairo_spritecanvas.cxx,v
-retrieving revision 1.1.2.5
-diff -u -p -r1.1.2.5 cairo_spritecanvas.cxx
---- canvas/source/cairo/cairo_spritecanvas.cxx 14 Dec 2005 15:38:06 -0000 1.1.2.5
-+++ canvas/source/cairo/cairo_spritecanvas.cxx 3 Jan 2006 16:59:31 -0000
-@@ -81,10 +81,10 @@ namespace cairocanvas
- {
- SpriteCanvas::SpriteCanvas( const uno::Reference< uno::XComponentContext >& rxContext ) :
- mxComponentContext( rxContext ),
-- mpBackgroundCairo( NULL ),
-- mpBackgroundSurface( NULL )
-+ mpBackgroundCairo( NULL ),
-+ mpBackgroundSurface( NULL )
- {
-- OSL_TRACE("SpriteCanvas created %p\n", this);
-+ OSL_TRACE("SpriteCanvas created %p\n", this);
- }
-
- void SAL_CALL SpriteCanvas::disposing()
-@@ -93,15 +93,15 @@ namespace cairocanvas
-
- mxComponentContext.clear();
-
-- if( mpBackgroundCairo ) {
-- cairo_destroy( mpBackgroundCairo );
-- mpBackgroundCairo = NULL;
-- }
-+ if( mpBackgroundCairo ) {
-+ cairo_destroy( mpBackgroundCairo );
-+ mpBackgroundCairo = NULL;
-+ }
-
-- if( mpBackgroundSurface ) {
-- mpBackgroundSurface->Unref();
-- mpBackgroundSurface = NULL;
-- }
-+ if( mpBackgroundSurface ) {
-+ mpBackgroundSurface->Unref();
-+ mpBackgroundSurface = NULL;
-+ }
-
- // forward to parent
- SpriteCanvasBaseT::disposing();
-@@ -186,8 +186,7 @@ namespace cairocanvas
-
- maCanvasHelper.init( maRedrawManager,
- *this,
-- aSize,
-- false );
-+ aSize );
- }
-
- ::rtl::OUString SAL_CALL SpriteCanvas::getImplementationName() throw( uno::RuntimeException )
-@@ -265,7 +264,7 @@ namespace cairocanvas
- {
- mpBackgroundSurface->Unref();
- }
-- mpBackgroundSurface = maDeviceHelper.getSurface();
-+ mpBackgroundSurface = maDeviceHelper.getSurface( CAIRO_CONTENT_COLOR );
-
- if( mpBackgroundCairo )
- {
-@@ -273,7 +272,7 @@ namespace cairocanvas
- }
- mpBackgroundCairo = mpBackgroundSurface->getCairo();
-
-- maCanvasHelper.setSurface( mpBackgroundSurface );
-+ maCanvasHelper.setSurface( mpBackgroundSurface, false );
- }
-
- void SpriteCanvas::flush()
-Index: canvas/source/cairo/cairo_spritecanvas.hxx
-===================================================================
-RCS file: /cvs/gsl/canvas/source/cairo/Attic/cairo_spritecanvas.hxx,v
-retrieving revision 1.1.2.4
-diff -u -p -r1.1.2.4 cairo_spritecanvas.hxx
---- canvas/source/cairo/cairo_spritecanvas.hxx 14 Dec 2005 15:38:06 -0000 1.1.2.4
-+++ canvas/source/cairo/cairo_spritecanvas.hxx 3 Jan 2006 16:59:31 -0000
-@@ -119,7 +119,7 @@ namespace cairocanvas
- references, this is implemented as one single object.
- */
- class SpriteCanvas : public SpriteCanvasBaseT,
-- public RepaintTarget
-+ public RepaintTarget
- {
- public:
- SpriteCanvas( const ::com::sun::star::uno::Reference<
-@@ -156,15 +156,15 @@ namespace cairocanvas
- // component factory
- static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL createInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& xContext ) throw ( ::com::sun::star::uno::Exception );
-
-- ::cairo::Surface* getSurface( const ::basegfx::B2ISize& rSize, ::cairo::Content aContent = ::cairo::CAIRO_CONTENT_COLOR_ALPHA );
-- ::cairo::Surface* getSurface( ::cairo::Content aContent = ::cairo::CAIRO_CONTENT_COLOR_ALPHA );
-- ::cairo::Surface* getSurface( Bitmap& rBitmap );
-- ::cairo::Surface* getBufferSurface();
-- ::cairo::Surface* getWindowSurface();
-- ::cairo::Surface* getBackgroundSurface();
-- const ::basegfx::B2ISize& getSizePixel();
-- void setSizePixel( const ::basegfx::B2ISize& rSize );
-- void flush();
-+ ::cairo::Surface* getSurface( const ::basegfx::B2ISize& rSize, ::cairo::Content aContent = ::cairo::CAIRO_CONTENT_COLOR_ALPHA );
-+ ::cairo::Surface* getSurface( ::cairo::Content aContent = ::cairo::CAIRO_CONTENT_COLOR_ALPHA );
-+ ::cairo::Surface* getSurface( Bitmap& rBitmap );
-+ ::cairo::Surface* getBufferSurface();
-+ ::cairo::Surface* getWindowSurface();
-+ ::cairo::Surface* getBackgroundSurface();
-+ const ::basegfx::B2ISize& getSizePixel();
-+ void setSizePixel( const ::basegfx::B2ISize& rSize );
-+ void flush();
-
- Window* getOutputWindow()
- {
-Index: canvas/source/cairo/cairo_spritecanvashelper.cxx
-===================================================================
-RCS file: /cvs/gsl/canvas/source/cairo/Attic/cairo_spritecanvashelper.cxx,v
-retrieving revision 1.1.2.3
-diff -u -p -r1.1.2.3 cairo_spritecanvashelper.cxx
---- canvas/source/cairo/cairo_spritecanvashelper.cxx 14 Dec 2005 15:38:06 -0000 1.1.2.3
-+++ canvas/source/cairo/cairo_spritecanvashelper.cxx 3 Jan 2006 16:59:31 -0000
-@@ -150,12 +150,11 @@ namespace cairocanvas
-
- void SpriteCanvasHelper::init( ::canvas::SpriteRedrawManager& rManager,
- SpriteCanvas& rDevice,
-- const ::basegfx::B2ISize& rSize,
-- bool bHasAlpha )
-+ const ::basegfx::B2ISize& rSize )
- {
- mpRedrawManager = &rManager;
-
-- CanvasHelper::init( rSize, rDevice, bHasAlpha );
-+ CanvasHelper::init( rSize, rDevice );
- }
-
- void SpriteCanvasHelper::disposing()
-Index: canvas/source/cairo/cairo_spritecanvashelper.hxx
-===================================================================
-RCS file: /cvs/gsl/canvas/source/cairo/Attic/cairo_spritecanvashelper.hxx,v
-retrieving revision 1.1.2.1
-diff -u -p -r1.1.2.1 cairo_spritecanvashelper.hxx
---- canvas/source/cairo/cairo_spritecanvashelper.hxx 8 Nov 2005 21:24:26 -0000 1.1.2.1
-+++ canvas/source/cairo/cairo_spritecanvashelper.hxx 3 Jan 2006 16:59:31 -0000
-@@ -60,8 +60,7 @@ namespace cairocanvas
-
- void init( ::canvas::SpriteRedrawManager& rManager,
- SpriteCanvas& rDevice,
-- const ::basegfx::B2ISize& rSize,
-- bool bHasAlpha );
-+ const ::basegfx::B2ISize& rSize );
-
- /// Dispose all internal references
- void disposing();
-Index: canvas/source/cairo/cairo_spritehelper.cxx
-===================================================================
-RCS file: /cvs/gsl/canvas/source/cairo/Attic/cairo_spritehelper.cxx,v
-retrieving revision 1.1.2.2
-diff -u -p -r1.1.2.2 cairo_spritehelper.cxx
---- canvas/source/cairo/cairo_spritehelper.cxx 14 Dec 2005 15:38:07 -0000 1.1.2.2
-+++ canvas/source/cairo/cairo_spritehelper.cxx 3 Jan 2006 16:59:31 -0000
-@@ -70,8 +70,7 @@ namespace cairocanvas
- }
-
- void SpriteHelper::init( const geometry::RealSize2D& rSpriteSize,
-- const SpriteCanvasRef& rSpriteCanvas,
-- Surface* pBufferSurface )
-+ const SpriteCanvasRef& rSpriteCanvas)
- {
- ENSURE_AND_THROW( rSpriteCanvas.get(),
- "SpriteHelper::init(): Invalid device, sprite canvas or surface" );
-@@ -82,12 +81,16 @@ namespace cairocanvas
- // also init base class
- CanvasCustomSpriteHelper::init( rSpriteSize,
- rSpriteCanvas.get() );
-+ }
-
-+ void SpriteHelper::setSurface( Surface* pBufferSurface )
-+ {
- if( mpBufferSurface )
- mpBufferSurface->Unref();
-+
- mpBufferSurface = pBufferSurface;
- mpBufferSurface->Ref();
-- }
-+ }
-
- void SpriteHelper::disposing()
- {
-Index: canvas/source/cairo/cairo_spritehelper.hxx
-===================================================================
-RCS file: /cvs/gsl/canvas/source/cairo/Attic/cairo_spritehelper.hxx,v
-retrieving revision 1.1.2.1
-diff -u -p -r1.1.2.1 cairo_spritehelper.hxx
---- canvas/source/cairo/cairo_spritehelper.hxx 8 Nov 2005 21:24:27 -0000 1.1.2.1
-+++ canvas/source/cairo/cairo_spritehelper.hxx 3 Jan 2006 16:59:31 -0000
-@@ -84,10 +84,11 @@ namespace cairocanvas
- When true, little debug bound rects for sprites are shown
- */
- void init( const ::com::sun::star::geometry::RealSize2D& rSpriteSize,
-- const SpriteCanvasRef& rSpriteCanvas,
-- ::cairo::Surface* pBufferSurface);
-+ const SpriteCanvasRef& rSpriteCanvas );
-
- void disposing();
-+
-+ void setSurface( ::cairo::Surface* pBufferSurface );
-
- /** Repaint sprite content to associated sprite canvas
-
diff --git a/patches/cairo/cairo-canvas-surface-resize.diff b/patches/cairo/cairo-canvas-surface-resize.diff
deleted file mode 100644
index 4cc1c93f1..000000000
--- a/patches/cairo/cairo-canvas-surface-resize.diff
+++ /dev/null
@@ -1,88 +0,0 @@
-Index: canvas/source/cairo/cairo_cairo.cxx
-===================================================================
-diff -u -p -r1.1.2.1 cairo_cairo.cxx
---- canvas/source/cairo/cairo_cairo.cxx 19 Dec 2005 22:28:28 -0000 1.1.2.1
-+++ canvas/source/cairo/cairo_cairo.cxx 19 Dec 2005 22:29:05 -0000
-@@ -74,4 +74,10 @@ namespace cairo
- } else
- return new Surface( mpSysData, mpDisplay, 0, NULL, cairo_surface_create_similar( mpSurface, aContent, width, height ) );
- }
-+
-+ void
-+ Surface::Resize( int width, int height )
-+ {
-+ cairo_xlib_surface_set_size( mpSurface, width, height );
-+ }
- }
-Index: canvas/source/cairo/cairo_cairo.hxx
-===================================================================
-diff -u -p -r1.1.2.3 cairo_cairo.hxx
---- canvas/source/cairo/cairo_cairo.hxx 14 Dec 2005 15:38:04 -0000 1.1.2.3
-+++ canvas/source/cairo/cairo_cairo.hxx 19 Dec 2005 22:29:05 -0000
-@@ -76,6 +76,9 @@ namespace cairo {
- {
- return mpRenderFormat;
- }
-+
-+ // use only for surfaces made on X Drawables
-+ void Resize( int width, int height );
- };
- }
-
-Index: cairo_devicehelper.cxx
-===================================================================
-diff -u -p -r1.1.2.3 cairo_devicehelper.cxx
---- canvas/source/cairo/cairo_devicehelper.cxx 14 Dec 2005 15:38:05 -0000 1.1.2.3
-+++ canvas/source/cairo/cairo_devicehelper.cxx 19 Dec 2005 22:29:05 -0000
-@@ -310,34 +310,39 @@ namespace cairocanvas
- {
- OSL_TRACE("set device size %d x %d", rSize.getX(), rSize.getY() );
-
-- maSize = rSize;
--
- if( mpWindowSurface )
- {
-- mpWindowSurface->Unref();
-- }
-- mpWindowSurface = new Surface( mpSysData,
-- mpOutputWindow->GetOutOffXPixel(), mpOutputWindow->GetOutOffYPixel(),
-- maSize.getX(), maSize.getY() );
-+ mpWindowSurface->Resize( rSize.getX() + mpOutputWindow->GetOutOffXPixel(), rSize.getY() + mpOutputWindow->GetOutOffYPixel() );
-+ } else
-+ mpWindowSurface = new Surface( mpSysData,
-+ mpOutputWindow->GetOutOffXPixel(), mpOutputWindow->GetOutOffYPixel(),
-+ rSize.getX(), rSize.getY() );
-
-- if( mpBufferSurface )
-+ if( mpBufferSurface && maSize != rSize )
- {
- mpBufferSurface->Unref();
-+ mpBufferSurface = NULL;
- }
-- mpBufferSurface = mpWindowSurface->getSimilar( CAIRO_CONTENT_COLOR, maSize.getX(), maSize.getY() );
-+ if( !mpBufferSurface )
-+ mpBufferSurface = mpWindowSurface->getSimilar( CAIRO_CONTENT_COLOR, rSize.getX(), rSize.getY() );
-
-- if( mpBufferCairo )
-+ if( mpBufferCairo && maSize != rSize )
- {
- cairo_destroy( mpBufferCairo );
-+ mpBufferCairo = NULL;
- }
-- mpBufferCairo = mpBufferSurface->getCairo();
-+ if( !mpBufferCairo )
-+ mpBufferCairo = mpBufferSurface->getCairo();
-+
-+ if( maSize != rSize )
-+ maSize = rSize;
-
- mpSpriteCanvas->setSizePixel( maSize );
- }
-
- const ::basegfx::B2ISize& DeviceHelper::getSizePixel()
- {
-- return maSize;
-+ return maSize;
- }
-
- void DeviceHelper::notifySizeUpdate( const awt::Rectangle& rBounds )
diff --git a/patches/cairo/cairo-canvas-vcl.diff b/patches/cairo/cairo-canvas-vcl.diff
deleted file mode 100644
index 39804258d..000000000
--- a/patches/cairo/cairo-canvas-vcl.diff
+++ /dev/null
@@ -1,214 +0,0 @@
-Index: vcl/inc/sysdata.hxx
-===================================================================
-diff -u -p -r1.7 -r1.7.54.1
---- vcl/inc/sysdata.hxx 2 Nov 2005 13:29:23 -0000 1.7
-+++ vcl/inc/sysdata.hxx 14 Dec 2005 15:36:38 -0000 1.7.54.1
-@@ -99,7 +99,8 @@ struct SystemGraphicsData
- #if defined( WNT )
- HDC hDC; // handle to a device context
- #elif defined( UNX )
-- long aGC; // a graphics context
-+ long hDrawable; // a drawable
-+ void* pRenderFormat; // render format for drawable
- #endif
- };
-
-Index: vcl/source/gdi/virdev.cxx
-===================================================================
-diff -u -p -r1.21 -r1.21.128.1
---- vcl/source/gdi/virdev.cxx 9 Sep 2005 12:12:30 -0000 1.21
-+++ vcl/source/gdi/virdev.cxx 13 Dec 2005 12:52:33 -0000 1.21.128.1
-@@ -141,7 +141,10 @@ void VirtualDevice::ImplInitVirDev( cons
-
- // Virtuelle Devices haben defaultmaessig einen weissen Hintergrund
- SetBackground( Wallpaper( Color( COL_WHITE ) ) );
-- Erase();
-+
-+ // #i59283# don't erase user-provided surface
-+ if( !pData )
-+ Erase();
-
- // VirDev in Liste eintragen
- mpNext = pSVData->maGDIData.mpFirstVirDev;
-Index: vcl/unx/inc/salgdi.h
-===================================================================
-diff -u -p -r1.33 -r1.33.54.1
---- vcl/unx/inc/salgdi.h 2 Nov 2005 13:33:13 -0000 1.33
-+++ vcl/unx/inc/salgdi.h 14 Dec 2005 15:36:39 -0000 1.33.54.1
-@@ -91,6 +91,7 @@ protected:
- SalColormap *m_pColormap;
- SalColormap *m_pDeleteColormap;
- Drawable hDrawable_; // use
-+ void* pRenderFormat_;
-
- XLIB_Region pPaintRegion_;
- XLIB_Region pClipRegion_;
-@@ -207,6 +208,8 @@ public:
- inline SalVisual *GetVisual() const;
- inline Drawable GetDrawable() const { return hDrawable_; }
- inline void SetDrawable( Drawable d ) { hDrawable_ = d; }
-+ inline void* GetXRenderFormat() { return pRenderFormat_; }
-+ inline void SetXRenderFormat( void* pRenderFormat ) { pRenderFormat_ = pRenderFormat; }
- inline SalColormap &GetColormap() const { return *m_pColormap; }
- inline Pixel GetPixel( SalColor nSalColor ) const;
-
-Index: vcl/unx/inc/salvd.h
-===================================================================
-diff -u -p -r1.5 -r1.5.128.1
---- vcl/unx/inc/salvd.h 9 Sep 2005 12:48:06 -0000 1.5
-+++ vcl/unx/inc/salvd.h 14 Dec 2005 15:36:39 -0000 1.5.128.1
-@@ -61,6 +61,7 @@ class X11SalVirtualDevice : public SalVi
- int nDY_;
- USHORT nDepth_;
- BOOL bGraphics_; // is Graphics used
-+ BOOL bExternPixmap_;
-
- public:
- X11SalVirtualDevice();
-@@ -68,7 +69,9 @@ public:
-
- BOOL Init( SalDisplay *pDisplay,
- long nDX, long nDY,
-- USHORT nBitCount );
-+ USHORT nBitCount,
-+ Pixmap hDrawable = None,
-+ void* pRenderFormat = NULL );
- inline void InitGraphics( X11SalVirtualDevice *pVD );
-
- inline Display *GetXDisplay() const;
-Index: vcl/unx/source/gdi/salgdi.cxx
-===================================================================
-diff -u -p -r1.36 -r1.36.126.1
---- vcl/unx/source/gdi/salgdi.cxx 9 Sep 2005 13:07:10 -0000 1.36
-+++ vcl/unx/source/gdi/salgdi.cxx 14 Dec 2005 15:36:39 -0000 1.36.126.1
-@@ -118,6 +118,7 @@ X11SalGraphics::X11SalGraphics()
- m_pVDev = NULL;
- m_pDeleteColormap = NULL;
- hDrawable_ = None;
-+ pRenderFormat_ = NULL;
-
- pClipRegion_ = NULL;
- pPaintRegion_ = NULL;
-Index: vcl/unx/source/gdi/salgdi3.cxx
-===================================================================
-diff -u -p -r1.129 -r1.129.52.1
---- vcl/unx/source/gdi/salgdi3.cxx 2 Nov 2005 13:34:53 -0000 1.129
-+++ vcl/unx/source/gdi/salgdi3.cxx 14 Dec 2005 15:36:39 -0000 1.129.52.1
-@@ -730,13 +730,18 @@ ConvertTextItem16( XTextItem16* pTextIte
-
- void X11SalGraphics::DrawServerAAFontString( const ServerFontLayout& rLayout )
- {
-- Display* pDisplay = GetXDisplay();
-- Visual* pVisual = GetDisplay()->GetVisual()->GetVisual();
-+ Display* pDisplay = GetXDisplay();
-+ XRenderPictFormat* pVisualFormat = (XRenderPictFormat*) GetXRenderFormat();
-+
-+ if( !pVisualFormat )
-+ {
-+ Visual* pVisual = GetDisplay()->GetVisual()->GetVisual();
- #ifdef XRENDER_LINK
-- XRenderPictFormat* pVisualFormat = XRenderFindVisualFormat ( pDisplay, pVisual );
-+ pVisualFormat = XRenderFindVisualFormat ( pDisplay, pVisual );
- #else
-- XRenderPictFormat* pVisualFormat = (*aX11GlyphPeer.pXRenderFindVisualFormat)( pDisplay, pVisual );
-+ pVisualFormat = (*aX11GlyphPeer.pXRenderFindVisualFormat)( pDisplay, pVisual );
- #endif
-+ }
-
- // create xrender Picture for font foreground
- static Pixmap aPixmap;
-Index: vcl/unx/source/gdi/salvd.cxx
-===================================================================
-diff -u -p -r1.10 -r1.10.126.1
---- vcl/unx/source/gdi/salvd.cxx 9 Sep 2005 13:08:36 -0000 1.10
-+++ vcl/unx/source/gdi/salvd.cxx 14 Dec 2005 15:36:40 -0000 1.10.126.1
-@@ -50,6 +50,9 @@
- #ifndef _SV_SALVD_H
- #include <salvd.h>
- #endif
-+#ifndef _SV_SYSDATA_HXX
-+#include <sysdata.hxx>
-+#endif
-
- // -=-= SalInstance =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-@@ -60,7 +63,16 @@ SalVirtualDevice* X11SalInstance::Create
- X11SalVirtualDevice *pVDev = new X11SalVirtualDevice();
- if( !nBitCount && pGraphics )
- nBitCount = pGraphics->GetBitCount();
-- if( !pVDev->Init( GetSalData()->GetDisplay(), nDX, nDY, nBitCount ) )
-+
-+ if( pData )
-+ {
-+ if( !pVDev->Init( GetSalData()->GetDisplay(), nDX, nDY, nBitCount, pData->hDrawable, pData->pRenderFormat ) )
-+ {
-+ delete pVDev;
-+ return NULL;
-+ }
-+ }
-+ else if( !pVDev->Init( GetSalData()->GetDisplay(), nDX, nDY, nBitCount ) )
- {
- delete pVDev;
- return NULL;
-@@ -106,19 +118,29 @@ void X11SalGraphics::Init( X11SalVirtual
- // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- BOOL X11SalVirtualDevice::Init( SalDisplay *pDisplay,
- long nDX, long nDY,
-- USHORT nBitCount )
-+ USHORT nBitCount,
-+ Pixmap hDrawable,
-+ void* pRenderFormat )
- {
- pDisplay_ = pDisplay;
- pGraphics_ = new X11SalGraphics();
-+ if( pRenderFormat )
-+ pGraphics_->SetXRenderFormat( pRenderFormat );
- pGraphics_->SetLayout( 0 ); // by default no! mirroring for VirtualDevices, can be enabled with EnableRTL()
- nDX_ = nDX;
- nDY_ = nDY;
- nDepth_ = nBitCount;
-
-- hDrawable_ = XCreatePixmap( GetXDisplay(),
-- pDisplay_->GetDrawable(),
-- nDX_, nDY_,
-- GetDepth() );
-+ if( hDrawable == None )
-+ hDrawable_ = XCreatePixmap( GetXDisplay(),
-+ pDisplay_->GetDrawable(),
-+ nDX_, nDY_,
-+ GetDepth() );
-+ else
-+ {
-+ hDrawable_ = hDrawable;
-+ bExternPixmap_ = TRUE;
-+ }
-
- pGraphics_->Init( this );
-
-@@ -135,6 +157,7 @@ X11SalVirtualDevice::X11SalVirtualDevice
- nDY_ = 0;
- nDepth_ = 0;
- bGraphics_ = FALSE;
-+ bExternPixmap_ = FALSE;
- }
-
- // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-@@ -143,7 +166,7 @@ X11SalVirtualDevice::~X11SalVirtualDevic
- if( pGraphics_ )
- delete pGraphics_;
-
-- if( GetDrawable() )
-+ if( GetDrawable() && !bExternPixmap_ )
- XFreePixmap( GetXDisplay(), GetDrawable() );
- }
-
-@@ -163,6 +186,9 @@ void X11SalVirtualDevice::ReleaseGraphic
-
- BOOL X11SalVirtualDevice::SetSize( long nDX, long nDY )
- {
-+ if( bExternPixmap_ )
-+ return FALSE;
-+
- if( !nDX ) nDX = 1;
- if( !nDY ) nDY = 1;
-
diff --git a/patches/cairo/cairo-config-office-configure-in.diff b/patches/cairo/cairo-config-office-configure-in.diff
deleted file mode 100644
index a985f730e..000000000
--- a/patches/cairo/cairo-config-office-configure-in.diff
+++ /dev/null
@@ -1,113 +0,0 @@
---- config_office/configure.in.old 2005-08-03 15:23:40.000000000 +0200
-+++ config_office/configure.in 2005-08-03 15:28:42.000000000 +0200
-@@ -137,6 +137,10 @@
- [ --disable-gtk Determines whether to use Gtk+ vclplug on platforms
- where Gtk+ is available.
- ],,enable_gtk=yes)
-+AC_ARG_ENABLE(cairo,
-+[ --enable-cairo Determines whether to use Cairo canvas backend on platforms
-+ where Cairo is available.
-+],,)
- AC_ARG_ENABLE(gnome-vfs,
- [ --disable-gnome-vfs Determines whether to use the Gnome Virtual Filing
- System on platforms where that VFS is available
-@@ -205,6 +209,9 @@
- AC_ARG_WITH(system-freetype,
- [ --with-system-freetype Use freetype already on system
- ],,)
-+AC_ARG_WITH(system-cairo,
-+[ --with-system-cairo Use cairo already on system
-+],,)
- AC_ARG_WITH(system-libwpd,
- [ --with-system-libwpd Use libwpd already on system
- ],,)
-@@ -587,6 +594,7 @@
- solaris*)
- test_x=yes
- test_gtk=yes
-+ build_cairo=yes
- test_kde=yes
- test_cups=yes
- _os=SunOS
-@@ -613,6 +621,7 @@
- linux-gnu)
- test_x=yes
- test_gtk=yes
-+ build_cairo=yes
- test_kde=yes
- test_cups=yes
- if getconf GNU_LIBPTHREAD_VERSION |grep -q NPTL; then
-@@ -634,11 +643,13 @@
- test_x=no
- test_cups=no
- test_gtk=no
-+ build_cairo=no
- _os=Darwin
- ;;
- freebsd*)
- test_x=yes
- test_gtk=yes
-+ build_cairo=yes
- test_kde=yes
- test_cups=yes
- AC_MSG_CHECKING([the FreeBSD operating system release])
-@@ -670,6 +681,7 @@
- netbsd)
- test_x=yes
- test_gtk=yes
-+ build_cairo=yes
- test_kde=yes
- test_cups=no
- PTHREAD_CFLAGS="-pthread"
-@@ -2473,6 +2485,25 @@
- AC_SUBST(FREETYPE_LIBS)
-
- dnl ===================================================================
-+dnl Check for system cairo
-+dnl ===================================================================
-+AC_MSG_CHECKING([which cairo to use])
-+if test -n "$with_system_cairo" -o -n "$with_system_libs" && \
-+ test "$with_system_cairo" != "no"; then
-+ AC_MSG_RESULT([external])
-+ SYSTEM_CAIRO=YES
-+ PKG_CHECK_MODULES( CAIRO, cairo >= 0.5.2 )
-+else
-+ AC_MSG_RESULT([internal])
-+ SYSTEM_CAIRO=NO
-+ BUILD_TYPE="$BUILD_TYPE CAIRO"
-+fi
-+AC_SUBST(SYSTEM_CAIRO)
-+AC_SUBST(CAIRO_CFLAGS)
-+AC_SUBST(CAIRO_LIBS)
-+
-+
-+dnl ===================================================================
- dnl Check for system libwpd
- dnl ===================================================================
- AC_MSG_CHECKING([which libwpd to use])
-@@ -3770,6 +3801,25 @@
- AC_SUBST(GTK_LIBS)
-
- dnl ===================================================================
-+dnl Check whether the Cairo libraries are available.
-+dnl ===================================================================
-+
-+ENABLE_CAIRO=""
-+
-+if test "$build_cairo" = "yes"; then
-+
-+ AC_MSG_CHECKING([whether to enable the Cairo canvas backend])
-+ if test "x$enable_cairo" != "xno" ; then
-+ ENABLE_CAIRO="TRUE"
-+ AC_MSG_RESULT([yes])
-+ else
-+ AC_MSG_RESULT([no])
-+ fi
-+fi
-+
-+AC_SUBST(ENABLE_CAIRO)
-+
-+dnl ===================================================================
- dnl Check whether the Qt and KDE libraries are available.
- dnl ===================================================================
-
diff --git a/patches/cairo/cairo-config-office-set-soenv-in.diff b/patches/cairo/cairo-config-office-set-soenv-in.diff
deleted file mode 100644
index 2fd4d1e0b..000000000
--- a/patches/cairo/cairo-config-office-set-soenv-in.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- config_office/set_soenv.in.old 2005-08-03 15:23:40.000000000 +0200
-+++ config_office/set_soenv.in 2005-08-03 15:31:35.000000000 +0200
-@@ -1491,6 +1491,7 @@
- ToFile( "GTK_CFLAGS", "@GTK_CFLAGS@", "e" );
- ToFile( "GTK_LIBS", "@GTK_LIBS@", "e" );
- ToFile( "ENABLE_STATIC_GTK", "@ENABLE_STATIC_GTK@", "e" );
-+ToFile( "ENABLE_CAIRO", "@ENABLE_CAIRO@", "e" );
- ToFile( "ENABLE_GNOMEVFS", "@ENABLE_GNOMEVFS@", "e" );
- ToFile( "ENABLE_KDE", "@ENABLE_KDE@", "e" );
- ToFile( "KDE_CFLAGS", "@KDE_CFLAGS@", "e" );
-@@ -1729,6 +1730,9 @@
- ToFile( "SYSTEM_FREETYPE", "@SYSTEM_FREETYPE@", "e" );
- ToFile( "FREETYPE_CFLAGS", "@FREETYPE_CFLAGS@", "e" );
- ToFile( "FREETYPE_LIBS", "@FREETYPE_LIBS@", "e" );
-+ToFile( "SYSTEM_CAIRO", "@SYSTEM_CAIRO@", "e" );
-+ToFile( "CAIRO_CFLAGS", "@CAIRO_CFLAGS@", "e" );
-+ToFile( "CAIRO_LIBS", "@CAIRO_LIBS@", "e" );
- ToFile( "SYSTEM_LIBWPD", "@SYSTEM_LIBWPD@", "e" );
- ToFile( "LIBWPD_CFLAGS", "@LIBWPD_CFLAGS@", "e" );
- ToFile( "LIBWPD_LIBS", "@LIBWPD_LIBS@", "e" );
diff --git a/patches/cairo/cairo-makefile-mk.diff b/patches/cairo/cairo-makefile-mk.diff
deleted file mode 100644
index 39c07e223..000000000
--- a/patches/cairo/cairo-makefile-mk.diff
+++ /dev/null
@@ -1,116 +0,0 @@
---- /dev/null
-+++ cairo/makefile.mk
-@@ -0,0 +1,113 @@
-+#*************************************************************************
-+#
-+# $RCSfile$
-+#
-+# $Revision$
-+#
-+# last change: $Author$ $Date$
-+#
-+# The Contents of this file are made available subject to the terms of
-+# either of the following licenses
-+#
-+# - GNU Lesser General Public License Version 2.1
-+# - Sun Industry Standards Source License Version 1.1
-+#
-+# Sun Microsystems Inc., October, 2000
-+#
-+# GNU Lesser General Public License Version 2.1
-+# =============================================
-+# Copyright 2000 by Sun Microsystems, Inc.
-+# 901 San Antonio Road, Palo Alto, CA 94303, USA
-+#
-+# This library is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU Lesser General Public
-+# License version 2.1, as published by the Free Software Foundation.
-+#
-+# This library 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 for more details.
-+#
-+# You should have received a copy of the GNU Lesser General Public
-+# License along with this library; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+# MA 02111-1307 USA
-+#
-+#
-+# Sun Industry Standards Source License Version 1.1
-+# =================================================
-+# The contents of this file are subject to the Sun Industry Standards
-+# Source License Version 1.1 (the "License"); You may not use this file
-+# except in compliance with the License. You may obtain a copy of the
-+# License at http://www.openoffice.org/license.html.
-+#
-+# Software provided under this License is provided on an "AS IS" basis,
-+# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+# See the License for the specific provisions governing your rights and
-+# obligations concerning the Software.
-+#
-+# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+#
-+# Copyright: 2000 by Sun Microsystems, Inc.
-+#
-+# All Rights Reserved.
-+#
-+# Contributor(s): _______________________________________
-+#
-+#
-+#
-+#*************************************************************************
-+
-+PRJ=.
-+
-+PRJNAME=cairo
-+TARGET=cairo
-+
-+# --- Settings -----------------------------------------------------
-+
-+.INCLUDE : settings.mk
-+
-+# --- Files --------------------------------------------------------
-+
-+.IF "$(ENABLE_CAIRO)"=="TRUE"
-+
-+.IF "$(SYSTEM_CAIRO)" == "YES"
-+all:
-+ @echo "An already available installation of cairo should exist on your system."
-+ @echo "Therefore the version provided here does not need to be built in addition."
-+.ENDIF
-+
-+TARFILE_NAME=cairo-1.0.2
-+
-+CONFIGURE_DIR=
-+
-+CONFIGURE_ACTION=./configure
-+CONFIGURE_FLAGS=
-+BUILD_DIR=$(CONFIGURE_DIR)
-+BUILD_ACTION=$(GNUMAKE)
-+
-+OUT2LIB= \
-+ $/src/.libs$/libcairo.so.*
-+
-+OUT2INC= \
-+ $/src$/cairo.h \
-+ $/src$/cairo-features.h \
-+ $/src$/cairo-xlib.h \
-+ $/src$/cairo-xlib-xrender.h
-+
-+
-+# --- Targets ------------------------------------------------------
-+
-+
-+.INCLUDE : set_ext.mk
-+.INCLUDE : target.mk
-+.INCLUDE : tg_ext.mk
-+
-+.ELSE
-+
-+dummy:
-+ @echo "Nothing to build for your platform"
-+
-+.ENDIF
diff --git a/patches/cairo/cairo-prj-build-lst.diff b/patches/cairo/cairo-prj-build-lst.diff
deleted file mode 100644
index 0c0894fb4..000000000
--- a/patches/cairo/cairo-prj-build-lst.diff
+++ /dev/null
@@ -1,6 +0,0 @@
---- /dev/null
-+++ cairo/prj/build.lst
-@@ -0,0 +1,3 @@
-+ca cairo : solenv NULL
-+ca cairo usr1 - u ca_mkout NULL
-+ca cairo nmake - u ca_cairo NULL
diff --git a/patches/cairo/cairo-prj-d-lst.diff b/patches/cairo/cairo-prj-d-lst.diff
deleted file mode 100644
index cc5a4458f..000000000
--- a/patches/cairo/cairo-prj-d-lst.diff
+++ /dev/null
@@ -1,9 +0,0 @@
---- /dev/null
-+++ cairo/prj/d.lst
-@@ -0,0 +1,6 @@
-+mkdir: %_DEST%\inc%_EXT%\cairo
-+..\%__SRC%\inc\*.h %_DEST%\inc%_EXT%\cairo\*.h
-+..\%__SRC%\lib\libcairo.* %_DEST%\lib%_EXT%\libcairo.*
-+
-+linklib: libcairo.so.*.*.*
-+linklib: libcairo.dylib.*.*.*
diff --git a/patches/cairo/cairo-scp2.diff b/patches/cairo/cairo-scp2.diff
deleted file mode 100644
index bfb77e7b7..000000000
--- a/patches/cairo/cairo-scp2.diff
+++ /dev/null
@@ -1,61 +0,0 @@
-Index: scp2/source/ooo/file_library_ooo.scp
-===================================================================
-RCS file: /cvs/installation/scp2/source/ooo/file_library_ooo.scp,v
-retrieving revision 1.129
-diff -u -p -u -r1.129 file_library_ooo.scp
---- scp2/source/ooo/file_library_ooo.scp 14 Jul 2005 10:37:01 -0000 1.129
-+++ scp2/source/ooo/file_library_ooo.scp 29 Jul 2005 09:32:12 -0000
-@@ -2133,5 +2133,23 @@ STD_LIB_FILE( gid_File_Lib_Zip, zip )
- #endif
-
-+#if defined(ENABLE_CAIRO) && !defined(SYSTEM_CAIRO)
-+
-+File gid_File_Lib_Cairo
-+ TXT_FILE_BODY;
-+ Name = STRING(CONCAT3(libcairo,UNXSUFFIX,.2.2.3));
-+ Dir = gid_Dir_Program;
-+ Styles = (PACKED);
-+End
-+
-+Shortcut gid_Shortcut_Lib_Cairo
-+ FileID = gid_File_Lib_Cairo;
-+ Dir = gid_Dir_Program;
-+ Name = STRING(CONCAT3(libcairo,UNXSUFFIX,.2));
-+ Styles = (NETWORK, RELATIVE);
-+End
-+
-+#endif
-+
- #ifndef SYSTEM_LIBXML
- File gid_File_Lib_Xml2
- TXT_FILE_BODY;
-Index: scp2/source/ooo/makefile.mk
-===================================================================
-RCS file: /cvs/installation/scp2/source/ooo/makefile.mk,v
-retrieving revision 1.33
-diff -u -p -u -r1.33 makefile.mk
---- scp2/source/ooo/makefile.mk 17 Jun 2005 14:14:51 -0000 1.33
-+++ scp2/source/ooo/makefile.mk 29 Jul 2005 09:32:12 -0000
-@@ -110,6 +110,10 @@ SCPDEFS+=-DENABLE_DIRECTX
- SCPDEFS+=-DSYSTEM_FREETYPE
- .ENDIF
-
-+.IF "$(SYSTEM_CAIRO)" == "YES"
-+SCPDEFS+=-DSYSTEM_CAIRO
-+.ENDIF
-+
- .IF "$(SYSTEM_LIBXML)" == "YES"
- SCPDEFS+=-DSYSTEM_LIBXML
- .ENDIF
-@@ -166,7 +170,11 @@ SCPDEFS+=-DSYSTEM_PORTAUDIO
- .IF "$(SYSTEM_XMLSEC)" == "YES"
- SCPDEFS+=-DSYSTEM_XMLSEC
- .ENDIF
-
-+.IF "$(ENABLE_CAIRO)" == "TRUE"
-+SCPDEFS+=-DENABLE_CAIRO
-+.ENDIF
-+
- .IF "$(SYSTEM_ICU)" == "YES"
- SCPDEFS+=-DSYSTEM_ICU
- .ELSE
diff --git a/patches/cairo/cairo-smooth-curves.diff b/patches/cairo/cairo-smooth-curves.diff
deleted file mode 100644
index 650636394..000000000
--- a/patches/cairo/cairo-smooth-curves.diff
+++ /dev/null
@@ -1,226 +0,0 @@
---- svx/source/svdraw/svdopath.cxx 2004-11-03 12:01:41 +01:00
-+++ svx/source/svdraw/svdopath.cxx 2005-09-12 10:46:03 +02:00
-@@ -354,108 +354,97 @@ void SdrPathObj::RecalcBoundRect()
-
- sal_Bool SdrPathObj::DoPaintObject(XOutputDevice& rXOut, const SdrPaintInfoRec& rInfoRec) const
- {
-- // #110094#-16 Moved to ViewContactOfSdrObj::ShouldPaintObject(..)
-- //// Hidden objects on masterpages, draw nothing
-- //if((rInfoRec.nPaintMode & SDRPAINTMODE_MASTERPAGE) && bNotVisibleAsMaster)
-- // return TRUE;
--
-- BOOL bHideContour(IsHideContour());
-- BOOL bIsFillDraft(0 != (rInfoRec.nPaintMode & SDRPAINTMODE_DRAFTFILL));
-- BOOL bIsLineDraft(0 != (rInfoRec.nPaintMode & SDRPAINTMODE_DRAFTLINE));
--
-- // prepare ItemSet of this object
-- const SfxItemSet& rSet = GetObjectItemSet();
--
-- // perepare ItemSet to avoid old XOut line drawing
-- SfxItemSet aEmptySet(*rSet.GetPool());
-- aEmptySet.Put(XLineStyleItem(XLINE_NONE));
-- aEmptySet.Put(XFillStyleItem(XFILL_NONE));
-+ // #110094#-16 Moved to ViewContactOfSdrObj::ShouldPaintObject(..)
-+ //// Hidden objects on masterpages, draw nothing
-+ //if((rInfoRec.nPaintMode & SDRPAINTMODE_MASTERPAGE) && bNotVisibleAsMaster)
-+ // return TRUE;
-+
-+ BOOL bHideContour(IsHideContour());
-+ BOOL bIsFillDraft(0 != (rInfoRec.nPaintMode & SDRPAINTMODE_DRAFTFILL));
-+ BOOL bIsLineDraft(0 != (rInfoRec.nPaintMode & SDRPAINTMODE_DRAFTLINE));
-+
-+ // prepare ItemSet of this object
-+ const SfxItemSet& rSet = GetObjectItemSet();
-+
-+ // perepare ItemSet to avoid old XOut line drawing
-+ SfxItemSet aEmptySet(*rSet.GetPool());
-+ aEmptySet.Put(XLineStyleItem(XLINE_NONE));
-+ aEmptySet.Put(XFillStyleItem(XFILL_NONE));
-
-- // #b4899532# if not filled but fill draft, avoid object being invisible in using
-- // a hair linestyle and COL_LIGHTGRAY
-+ // #b4899532# if not filled but fill draft, avoid object being invisible in using
-+ // a hair linestyle and COL_LIGHTGRAY
- SfxItemSet aItemSet(rSet);
-- if(bIsFillDraft && XLINE_NONE == ((const XLineStyleItem&)(rSet.Get(XATTR_LINESTYLE))).GetValue())
-- {
-- ImpPrepareLocalItemSetForDraftLine(aItemSet);
-- }
-+ if(bIsFillDraft && XLINE_NONE == ((const XLineStyleItem&)(rSet.Get(XATTR_LINESTYLE))).GetValue()) {
-+ ImpPrepareLocalItemSetForDraftLine(aItemSet);
-+ }
-
-- // #103692# prepare ItemSet for shadow fill attributes
-+ // #103692# prepare ItemSet for shadow fill attributes
- SfxItemSet aShadowSet(aItemSet);
-
-- // prepare line geometry
-- ::std::auto_ptr< SdrLineGeometry > pLineGeometry( ImpPrepareLineGeometry(rXOut, aItemSet, bIsLineDraft) );
-+ // Shadows
-+ if (!bHideContour && ImpSetShadowAttributes(aItemSet, aShadowSet)) {
-+ if( !IsClosed() || bIsFillDraft )
-+ rXOut.SetFillAttr(aEmptySet);
-+ else
-+ rXOut.SetFillAttr(aShadowSet);
-+
-+ UINT32 nXDist=((SdrShadowXDistItem&)(aItemSet.Get(SDRATTR_SHADOWXDIST))).GetValue();
-+ UINT32 nYDist=((SdrShadowYDistItem&)(aItemSet.Get(SDRATTR_SHADOWYDIST))).GetValue();
-+ XPolyPolygon aTmpXPoly(aPathPolygon);
-+ aTmpXPoly.Move(nXDist,nYDist);
-
-- // Shadows
-- if (!bHideContour && ImpSetShadowAttributes(aItemSet, aShadowSet))
-- {
-- if( !IsClosed() || bIsFillDraft )
-- rXOut.SetFillAttr(aEmptySet);
-- else
-- rXOut.SetFillAttr(aShadowSet);
--
-- UINT32 nXDist=((SdrShadowXDistItem&)(aItemSet.Get(SDRATTR_SHADOWXDIST))).GetValue();
-- UINT32 nYDist=((SdrShadowYDistItem&)(aItemSet.Get(SDRATTR_SHADOWYDIST))).GetValue();
-- XPolyPolygon aTmpXPoly(aPathPolygon);
-- aTmpXPoly.Move(nXDist,nYDist);
--
-- // avoid shadow line drawing in XOut
-- rXOut.SetLineAttr(aEmptySet);
-+ // avoid shadow line drawing in XOut
-+ rXOut.SetLineAttr(aEmptySet);
-
-- if (!IsClosed()) {
-- USHORT nPolyAnz=aTmpXPoly.Count();
-- for (USHORT nPolyNum=0; nPolyNum<nPolyAnz; nPolyNum++) {
-- rXOut.DrawXPolyLine(aTmpXPoly.GetObject(nPolyNum));
-- }
-- } else {
-- // #100127# Output original geometry for metafiles
-- ImpGraphicFill aFill( *this, rXOut, aShadowSet, true );
-+ if (!IsClosed()) {
-+ USHORT nPolyAnz=aTmpXPoly.Count();
-+ for (USHORT nPolyNum=0; nPolyNum<nPolyAnz; nPolyNum++) {
-+ rXOut.DrawXPolyLine(aTmpXPoly.GetObject(nPolyNum));
-+ }
-+ } else {
-+ // #100127# Output original geometry for metafiles
-+ ImpGraphicFill aFill( *this, rXOut, aShadowSet, true );
-
-- rXOut.DrawXPolyPolygon(aTmpXPoly);
-- }
--
-- // new shadow line drawing
-- if( pLineGeometry.get() )
-- {
-- // draw the line geometry
-- ImpDrawShadowLineGeometry(rXOut, aItemSet, *pLineGeometry);
-- }
-+ rXOut.DrawXPolyPolygon(aTmpXPoly);
- }
-+
-+ // new shadow line drawing
-+ rXOut.SetLineAttr( aItemSet );
-+ rXOut.SetFillAttr( aEmptySet );
-+ rXOut.DrawXPolyPolygon(aPathPolygon);
-+ }
-
-- // Before here the LineAttr were set: if(pLineAttr) rXOut.SetLineAttr(*pLineAttr);
-- // avoid line drawing in XOut
-- rXOut.SetLineAttr(aEmptySet);
-+ // Before here the LineAttr were set: if(pLineAttr) rXOut.SetLineAttr(*pLineAttr);
-+ // avoid line drawing in XOut
-+ rXOut.SetLineAttr(aEmptySet);
-
- rXOut.SetFillAttr( bIsFillDraft || !IsClosed() ? aEmptySet : aItemSet );
-
-- if( !bHideContour )
-- {
-- if( IsClosed() )
-- {
-- // #100127# Output original geometry for metafiles
-- ImpGraphicFill aFill( *this, rXOut, bIsFillDraft || !IsClosed() ? aEmptySet : aItemSet );
--
-- rXOut.DrawXPolyPolygon(aPathPolygon);
-- }
--
-- // Own line drawing
-- if( pLineGeometry.get() )
-- {
-- // draw the line geometry
-- ImpDrawColorLineGeometry(rXOut, aItemSet, *pLineGeometry);
-- }
-- }
-+ if( !bHideContour ) {
-
-- sal_Bool bOk(sal_True);
-- if (HasText()) {
-- bOk = SdrTextObj::DoPaintObject(rXOut,rInfoRec);
-+ if( IsClosed() ) {
-+ // #100127# Output original geometry for metafiles
-+ ImpGraphicFill aFill( *this, rXOut, bIsFillDraft || !IsClosed() ? aEmptySet : aItemSet );
-+
-+ rXOut.DrawXPolyPolygon(aPathPolygon);
- }
-
-- // #110094#-13
-- //if (bOk && (rInfoRec.nPaintMode & SDRPAINTMODE_GLUEPOINTS) !=0) {
-- // bOk=PaintGluePoints(rXOut,rInfoRec);
-- //}
-+ rXOut.SetLineAttr( aItemSet );
-+ rXOut.SetFillAttr( aEmptySet );
-+ rXOut.DrawXPolyPolygon(aPathPolygon);
-+ }
-+
-+ sal_Bool bOk(sal_True);
-+ if (HasText()) {
-+ bOk = SdrTextObj::DoPaintObject(rXOut,rInfoRec);
-+ }
-+
-+ // #110094#-13
-+ //if (bOk && (rInfoRec.nPaintMode & SDRPAINTMODE_GLUEPOINTS) !=0) {
-+ // bOk=PaintGluePoints(rXOut,rInfoRec);
-+ //}
-
-- return bOk;
-+ return bOk;
- }
-
- SdrObject* SdrPathObj::CheckHit(const Point& rPnt, USHORT nTol, const SetOfByte* pVisiLayer) const
---- svx/source/xoutdev/xline.cxx 2004-11-03 12:09:38 +01:00
-+++ svx/source/xoutdev/xline.cxx 2005-09-12 10:40:25 +02:00
-@@ -389,14 +389,14 @@ Polygon XOutCreatePolygon(const XPolygon
-
- if(rXPoly.GetPointCount())
- {
-- ::basegfx::B2DPolygon aB2DPolygon(rXPoly.getB2DPolygon());
-+ //::basegfx::B2DPolygon aB2DPolygon(rXPoly.getB2DPolygon());
-
-- if(aB2DPolygon.areControlPointsUsed())
-- {
-- aB2DPolygon = ::basegfx::tools::adaptiveSubdivideByAngle(aB2DPolygon);
-- }
-+ //if(aB2DPolygon.areControlPointsUsed())
-+ //{
-+ // aB2DPolygon = ::basegfx::tools::adaptiveSubdivideByAngle(aB2DPolygon);
-+ //}
-
-- aRetval = Polygon(aB2DPolygon);
-+ aRetval = Polygon(rXPoly.getB2DPolygon());
- }
-
- return aRetval;
-Index: svx/source/svdraw/svdocirc.cxx
-===================================================================
-RCS file: /cvs/graphics/svx/source/svdraw/svdocirc.cxx,v
-retrieving revision 1.24
-diff -u -p -r1.24 svdocirc.cxx
---- svx/source/svdraw/svdocirc.cxx 9 Sep 2005 00:32:38 -0000 1.24
-+++ svx/source/svdraw/svdocirc.cxx 6 Dec 2005 08:29:29 -0000
-@@ -192,8 +192,8 @@ FASTBOOL SdrCircObj::PaintNeedsXPoly() c
- // und Kreis-/Ellipsenboegen (wg. Genauigkeit)
- FASTBOOL bNeed=aGeo.nDrehWink!=0 || aGeo.nShearWink!=0 || eKind==OBJ_CCUT;
- #ifndef WIN
-- // Wenn nicht Win, dann fuer alle ausser Vollkreis (erstmal!!!)
-- if (eKind!=OBJ_CIRC) bNeed=TRUE;
-+ // draw everything with Bezier polygons so that we have smooth circles/ellipses
-+ return TRUE;
- #endif
-
- const SfxItemSet& rSet = GetObjectItemSet();
diff --git a/patches/cairo/cairo-svx-source-dialog-makefile-mk.diff b/patches/cairo/cairo-svx-source-dialog-makefile-mk.diff
deleted file mode 100644
index 50ca3deeb..000000000
--- a/patches/cairo/cairo-svx-source-dialog-makefile-mk.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- svx/source/dialog/makefile.mk.U 2005-08-03 14:43:29.000000000 +0200
-+++ svx/source/dialog/makefile.mk 2005-08-03 14:44:17.000000000 +0200
-@@ -78,6 +78,10 @@
- CFLAGS+=-DENABLE_KDE
- .ENDIF
-
-+.IF "$(ENABLE_CAIRO)"=="TRUE"
-+CFLAGS+=-DENABLE_CAIRO
-+.ENDIF
-+
- CFLAGS+=-DDG_DLL
- RSCDEFS += -Dause_hack
-
diff --git a/patches/cairo/cairo-svx-source-dialog-optgdlg-cxx.diff b/patches/cairo/cairo-svx-source-dialog-optgdlg-cxx.diff
deleted file mode 100644
index b2a02fb26..000000000
--- a/patches/cairo/cairo-svx-source-dialog-optgdlg-cxx.diff
+++ /dev/null
@@ -1,65 +0,0 @@
---- svx/source/dialog/optgdlg.cxx.U 2005-08-02 12:24:14.000000000 +0200
-+++ svx/source/dialog/optgdlg.cxx 2005-08-03 16:12:02.000000000 +0200
-@@ -541,9 +541,13 @@
- namespace
- {
- // ...................................................................
-- static const sal_Char* getDirectXRendererAsciiName()
-+ static const sal_Char* getAcceleratedRendererAsciiName()
- {
-+#if defined( ENABLE_CAIRO )
-+ return "com.sun.star.rendering.CairoCanvas";
-+#else
- return "com.sun.star.rendering.DXCanvas";
-+#endif
- }
- // ...................................................................
- static const sal_Char* getVCLRendererAsciiName()
-@@ -558,19 +562,19 @@
- static bool bIsAvailable = false;
- if ( !bWasHere )
- {
-- Reference< XInterface > xDirectXRenderer;
-+ Reference< XInterface > xAcceleratedRenderer;
- try
- {
- Reference< XMultiServiceFactory > xORB( ::comphelper::getProcessServiceFactory() );
- if ( xORB.is() )
-- xDirectXRenderer = xORB->createInstance(
-- ::rtl::OUString::createFromAscii( getDirectXRendererAsciiName() )
-+ xAcceleratedRenderer = xORB->createInstance(
-+ ::rtl::OUString::createFromAscii( getAcceleratedRendererAsciiName() )
- );
- }
- catch( const Exception& )
- {
- }
-- bIsAvailable = xDirectXRenderer.is();
-+ bIsAvailable = xAcceleratedRenderer.is();
- bWasHere = true;
- }
- return bIsAvailable;
-@@ -623,11 +627,11 @@
- do
- {
- ::rtl::OUString sServiceName = sPreferredServices.getToken( 0, ';', nTokenPos );
-- if ( sServiceName.equalsAscii( getDirectXRendererAsciiName() ) )
-- // the DirectX renderer is to be preferred (over the VCL renderer)
-+ if ( sServiceName.equalsAscii( getAcceleratedRendererAsciiName() ) )
-+ // the Accelerated renderer is to be preferred (over the VCL renderer)
- return TRUE;
- if ( sServiceName.equalsAscii( getVCLRendererAsciiName() ) )
-- // the VCL renderer is to be preferred (over the DirectX renderer)
-+ // the VCL renderer is to be preferred (over the Accelerated renderer)
- return FALSE;
- }
- while ( nTokenPos > 0 );
-@@ -637,7 +641,7 @@
- // -------------------------------------------------------------------
- void VCLSettings::EnabledHardwareAcceleration( BOOL _bEnabled ) const
- {
-- const sal_Char* pPreferredRenderer = _bEnabled ? getDirectXRendererAsciiName() : getVCLRendererAsciiName();
-+ const sal_Char* pPreferredRenderer = _bEnabled ? getAcceleratedRendererAsciiName() : getVCLRendererAsciiName();
-
- ::rtl::OUStringBuffer aPreferredServices;
- aPreferredServices.appendAscii( pPreferredRenderer );
diff --git a/patches/cairo/cairo-svx-source-dialog-optgdlg-src-hrc.diff b/patches/cairo/cairo-svx-source-dialog-optgdlg-src-hrc.diff
deleted file mode 100644
index ffb81df86..000000000
--- a/patches/cairo/cairo-svx-source-dialog-optgdlg-src-hrc.diff
+++ /dev/null
@@ -1,188 +0,0 @@
---- svx/source/dialog/optgdlg.hrc 2005-10-12 15:25:40.000000000 +0200
-+++ svx/source/dialog/optgdlg.hrc 2005-10-12 16:07:24.000000000 +0200
-@@ -73,7 +73,7 @@
- #define ROW_FT_ICONSIZESTYLE (ROW_MF_SCALING+RSC_CD_DROPDOWN_HEIGHT+ROWSPACE)
- #define ROW_LB_ICONSIZESTYLE (ROW_FT_ICONSIZESTYLE+RSC_CD_FIXEDTEXT_HEIGHT+ROWSPACE)
- #define ROW_CB_SYSTEM_FONT (ROW_LB_ICONSIZESTYLE+RSC_CD_DROPDOWN_HEIGHT+ROWSPACE)
--#define ROW_CB_FONTANTIALIASING (ROW_CB_SYSTEM_FONT+ (2 * RSC_CD_DROPDOWN_HEIGHT) +ROWSPACE)
-+#define ROW_CB_FONTANTIALIASING (ROW_CB_SYSTEM_FONT+ (2 * RSC_CD_FIXEDLINE_HEIGHT) +ROWSPACE)
- #define ROW_NF_AA_POINTLIMIT (ROW_CB_FONTANTIALIASING+RSC_CD_FIXEDLINE_HEIGHT+ROWSPACE)
-
- #define ROW_FL_MENU (ROW_NF_AA_POINTLIMIT+RSC_CD_DROPDOWN_HEIGHT+RSC_SP_FLGR_SPACE_X)
-@@ -82,8 +82,24 @@
- #define ROW_FL_FONTLISTS (ROW_CB_SHOW_INACTIVE + RSC_CD_FIXEDLINE_HEIGHT + RSC_SP_FLGR_SPACE_X)
- #define ROW_CB_FONT_SHOW (ROW_FL_FONTLISTS + RSC_CD_FIXEDLINE_HEIGHT+ROWSPACE)
- #define ROW_CB_FONT_HISTORY (ROW_CB_FONT_SHOW + RSC_CD_FIXEDLINE_HEIGHT+ROWSPACE)
--#define ROW_FL_REDERING (ROW_CB_FONT_HISTORY + RSC_CD_FIXEDLINE_HEIGHT + RSC_SP_FLGR_SPACE_X)
--#define ROW_CB_USE_HARDACCELL (ROW_FL_REDERING + RSC_CD_FIXEDLINE_HEIGHT+ROWSPACE)
-+
-+#define ROW_BTN_DOCVIEW (13)
-+#define ROW_BTN_OPENWIN (ROW_BTN_DOCVIEW + RSC_CD_FIXEDLINE_HEIGHT + ROWSPACE)
-+
-+#define ROW_FL_3D (ROW_BTN_OPENWIN + RSC_CD_FIXEDLINE_HEIGHT + RSC_SP_FLGR_SPACE_X)
-+#define ROW_CB_3D_OPENGL (ROW_FL_3D + RSC_CD_FIXEDLINE_HEIGHT + ROWSPACE)
-+#define ROW_CB_3D_OPENGL_FASTER (ROW_CB_3D_OPENGL + RSC_CD_FIXEDLINE_HEIGHT + ROWSPACE)
-+#define ROW_CB_3D_DITHERING (ROW_CB_3D_OPENGL_FASTER + RSC_CD_FIXEDLINE_HEIGHT + ROWSPACE)
-+#define ROW_CB_3D_SHOWFULL (ROW_CB_3D_DITHERING + RSC_CD_FIXEDLINE_HEIGHT + ROWSPACE)
-+
-+#define ROW_FL_RENDERING (ROW_CB_3D_SHOWFULL + RSC_CD_FIXEDLINE_HEIGHT + RSC_SP_FLGR_SPACE_X)
-+#define ROW_CB_USE_HARDACCELL (ROW_FL_RENDERING + RSC_CD_FIXEDLINE_HEIGHT+ROWSPACE)
-+
-+#define ROW_FL_MOUSE (ROW_CB_USE_HARDACCELL + RSC_CD_FIXEDLINE_HEIGHT + RSC_SP_FLGR_SPACE_X)
-+#define ROW_FT_MOUSEPOS (ROW_FL_MOUSE + RSC_CD_FIXEDLINE_HEIGHT+ROWSPACE)
-+#define ROW_LB_MOUSEPOS (ROW_FT_MOUSEPOS + RSC_CD_FIXEDTEXT_HEIGHT+ROWSPACE)
-+#define ROW_FT_MOUSEMIDDLE (ROW_LB_MOUSEPOS + RSC_CD_DROPDOWN_HEIGHT+ROWSPACE)
-+#define ROW_LB_MOUSEMIDDLE (ROW_FT_MOUSEMIDDLE + RSC_CD_FIXEDTEXT_HEIGHT+ROWSPACE)
-
- // tabpage general -------------------------------------------------------
-
---- svx/source/dialog/optgdlg.src 2005-10-12 15:26:59.000000000 +0200
-+++ svx/source/dialog/optgdlg.src 2005-10-12 16:05:49.000000000 +0200
-@@ -278,7 +278,7 @@ TabPage OFA_TP_VIEW
- {
- TabStop = TRUE ;
- Pos = MAP_APPFONT( 12, ROW_CB_SYSTEM_FONT );
-- Size = MAP_APPFONT( 110, 24 );
-+ Size = MAP_APPFONT( 110, 16 );
- WordBreak = TRUE;
- Text[ de ] = "~Systemschriftart für die Benutzeroberfläche verwenden" ;
- Text[ en-US ] = "Use system ~font for user interface";
-@@ -362,22 +362,6 @@ TabPage OFA_TP_VIEW
- Text [ en-US ] = "Show font h~istory" ;
- };
-
-- FixedLine FL_RENDERING
-- {
-- Pos = MAP_APPFONT ( 6 , ROW_FL_REDERING ) ;
-- Size = MAP_APPFONT ( 120 , 8 ) ;
-- Text [ de ] = "Grafikausgabe" ;
-- Text [ en-US ] = "Graphics output";
-- };
--
-- CheckBox CB_USE_HARDACCELL
-- {
-- Pos = MAP_APPFONT ( 12, ROW_CB_USE_HARDACCELL ) ;
-- Size = MAP_APPFONT ( 118 , 8 ) ;
-- Text [ de ] = "Hardwarebeschleunigung verwenden" ;
-- Text [ en-US ] = "Use hardware acceleration" ;
-- };
--
- FixedLine FL_WORKINGSET
- {
- Pos = MAP_APPFONT ( 133 , 3 ) ;
-@@ -387,35 +371,35 @@ TabPage OFA_TP_VIEW
- };
- CheckBox BTN_DOCVIEW
- {
-- Pos = MAP_APPFONT ( 139 , 14 ) ;
-+ Pos = MAP_APPFONT ( 139 , ROW_BTN_DOCVIEW ) ;
- Size = MAP_APPFONT ( 113 , 10 ) ;
- Text [ de ] = "~Bearbeitungsansicht" ;
- Text [ en-US ] = "Editing view";
- };
- CheckBox BTN_OPENWIN
- {
-- Pos = MAP_APPFONT ( 139 , 27 ) ;
-+ Pos = MAP_APPFONT ( 139 , ROW_BTN_OPENWIN ) ;
- Size = MAP_APPFONT ( 113 , 10 ) ;
- Text [ de ] = "Ge~öffnete Fenster" ;
- Text [ en-US ] = "Open ~windows" ;
- };
- FixedLine FL_3D
- {
-- Pos = MAP_APPFONT ( 133, 47 ) ;
-+ Pos = MAP_APPFONT ( 133, ROW_FL_3D ) ;
- Size = MAP_APPFONT ( 121 , 8 ) ;
- Text [ de ] = "3D-Darstellung" ;
- Text [ en-US ] = "3D view" ;
- };
- CheckBox CB_3D_OPENGL
- {
-- Pos = MAP_APPFONT ( 139, 58 ) ;
-+ Pos = MAP_APPFONT ( 139, ROW_CB_3D_OPENGL ) ;
- Size = MAP_APPFONT ( 113 , 10 ) ;
- Text [ de ] = "~OpenGL benutzen" ;
- Text [ en-US ] = "Use ~OpenGL" ;
- };
- CheckBox CB_3D_OPENGL_FASTER
- {
-- Pos = MAP_APPFONT ( 148 , 71 ) ;
-+ Pos = MAP_APPFONT ( 148 , ROW_CB_3D_OPENGL_FASTER ) ;
- Size = MAP_APPFONT ( 104 , 10 ) ;
- Text [ x-comment ] = "; pb: verbesserte Bildschirmausgabe";
- Text [ de ] = "Op~timierte Ausgabe" ;
-@@ -423,35 +407,52 @@ TabPage OFA_TP_VIEW
- };
- CheckBox CB_3D_DITHERING
- {
-- Pos = MAP_APPFONT ( 139 , 84 ) ;
-+ Pos = MAP_APPFONT ( 139 , ROW_CB_3D_DITHERING ) ;
- Size = MAP_APPFONT ( 113 , 10 ) ;
- Text [ de ] = "~Dithering benutzen" ;
- Text [ en-US ] = "Use ~dithering" ;
- };
- CheckBox CB_3D_SHOWFULL
- {
-- Pos = MAP_APPFONT ( 139 , 97 ) ;
-+ Pos = MAP_APPFONT ( 139 , ROW_CB_3D_SHOWFULL ) ;
- Size = MAP_APPFONT ( 113 , 10 ) ;
- Text [ de ] = "~Volldarstellung bei Interaktion" ;
- Text [ en-US ] = "Ob~ject refresh during interaction" ;
- };
-+
-+ FixedLine FL_RENDERING
-+ {
-+ Pos = MAP_APPFONT ( 133 , ROW_FL_RENDERING ) ;
-+ Size = MAP_APPFONT ( 120 , 8 ) ;
-+ Text [ de ] = "Grafikausgabe" ;
-+ Text [ en-US ] = "Graphics output";
-+ };
-+
-+ CheckBox CB_USE_HARDACCELL
-+ {
-+ Pos = MAP_APPFONT ( 139, ROW_CB_USE_HARDACCELL ) ;
-+ Size = MAP_APPFONT ( 118 , 8 ) ;
-+ Text [ de ] = "Hardwarebeschleunigung verwenden" ;
-+ Text [ en-US ] = "Use hardware acceleration" ;
-+ };
-+
- FixedLine FL_MOUSE
- {
-- Pos = MAP_APPFONT ( 133 , 114 ) ;
-+ Pos = MAP_APPFONT ( 133 , ROW_FL_MOUSE ) ;
- Size = MAP_APPFONT ( 120 , 8 ) ;
- Text [ de ] = "Maus" ;
- Text [ en-US ] = "Mouse";
- };
- FixedText FT_MOUSEPOS
- {
-- Pos = MAP_APPFONT ( 139, 125 ) ;
-+ Pos = MAP_APPFONT ( 139, ROW_FT_MOUSEPOS ) ;
- Size = MAP_APPFONT ( 120 , 8 ) ;
- Text [ de ] = "Maus~positionierung" ;
- Text [ en-US ] = "Mouse positioning" ;
- };
- ListBox LB_MOUSEPOS
- {
-- Pos = MAP_APPFONT ( 139, 135 ) ;
-+ Pos = MAP_APPFONT ( 139, ROW_LB_MOUSEPOS ) ;
- Size = MAP_APPFONT ( 114 , 60 ) ;
- DropDown = TRUE ;
- Border = TRUE ;
-@@ -471,14 +472,14 @@ TabPage OFA_TP_VIEW
- };
- FixedText FT_MOUSEMIDDLE
- {
-- Pos = MAP_APPFONT ( 139, 151 ) ;
-+ Pos = MAP_APPFONT ( 139, ROW_FT_MOUSEMIDDLE ) ;
- Size = MAP_APPFONT ( 120 , 8 ) ;
- Text [ de ] = "Mittlere Ma~ustaste" ;
- Text [ en-US ] = "Middle mouse button";
- };
- ListBox LB_MOUSEMIDDLE
- {
-- Pos = MAP_APPFONT ( 139, 161 ) ;
-+ Pos = MAP_APPFONT ( 139, ROW_LB_MOUSEMIDDLE ) ;
- Size = MAP_APPFONT ( 114 , 60 ) ;
- DropDown = TRUE ;
- Border = TRUE ;
diff --git a/patches/cairo/canvas-prj-build-lst.diff b/patches/cairo/canvas-prj-build-lst.diff
deleted file mode 100644
index fb30e24e3..000000000
--- a/patches/cairo/canvas-prj-build-lst.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- canvas/prj/build.lst.ark 2005-11-05 16:27:20.000000000 +0000
-+++ canvas/prj/build.lst 2005-11-05 16:28:15.000000000 +0000
-@@ -1,7 +1,8 @@
--uc canvas : javaunohelper comphelper cppuhelper offuh unoil tools goodies vcl AGG:agg basegfx NULL
-+uc canvas : javaunohelper comphelper cppuhelper offuh unoil tools goodies vcl AGG:agg basegfx cairo NULL
- uc canvas usr1 - all uc_mkout NULL
- uc canvas\source\tools nmake - all uc_tools NULL
- uc canvas\source\vcl nmake - all uc_vcl uc_tools NULL
-+uc canvas\source\cairo nmake - all uc_cairo uc_tools NULL
- uc canvas\source\null nmake - all uc_null uc_tools NULL
- uc canvas\source\java nmake - all uc_java NULL
- uc canvas\source\factory nmake - all uc_factory NULL
diff --git a/patches/cairo/canvas-prj-d-lst.diff b/patches/cairo/canvas-prj-d-lst.diff
deleted file mode 100644
index 499a4adac..000000000
--- a/patches/cairo/canvas-prj-d-lst.diff
+++ /dev/null
@@ -1,9 +0,0 @@
-diff -ru canvas/prj/d.lst ooo-build/build/src680-m104/canvas/prj/d.lst
---- canvas/prj/d.lst 2005-03-10 12:50:05 +01:00
-+++ ooo-build/build/src680-m104/canvas/prj/d.lst 2005-06-05 21:37:44 +02:00
-@@ -1,4 +1,5 @@
- ..\%__SRC%\bin\canvastools*.dll %_DEST%\bin%_EXT%\canvastools*.dll
-+..\%__SRC%\bin\cairocanvas*.dll %_DEST%\bin%_EXT%\cairocanvas*.dll
- ..\%__SRC%\bin\vclcanvas*.dll %_DEST%\bin%_EXT%\vclcanvas*.dll
- ..\%__SRC%\bin\directxcanvas*.dll %_DEST%\bin%_EXT%\directxcanvas*.dll
- ..\%__SRC%\bin\canvasfactory.uno.dll %_DEST%\bin%_EXT%\canvasfactory.uno.dll
diff --git a/patches/cairo/canvas-source-cairo-cairo_backbuffer-cxx.diff b/patches/cairo/canvas-source-cairo-cairo_backbuffer-cxx.diff
deleted file mode 100644
index 5ba89e032..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_backbuffer-cxx.diff
+++ /dev/null
@@ -1,133 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_backbuffer.cxx
-@@ -0,0 +1,130 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include <stdio.h>
-+#include "cairo_backbuffer.hxx"
-+#include "cairo_cairo.hxx"
-+
-+using namespace ::cairo;
-+
-+namespace cairocanvas
-+{
-+ BackBuffer::BackBuffer( WindowGraphicDevice::ImplRef xGraphicDevice, Content aContent )
-+ : mxGraphicDevice( xGraphicDevice ), mpSurface( NULL ), mpCairo( NULL ), maSize( xGraphicDevice->getSurfaceSize() ), maContent( aContent )
-+ {
-+ OSL_TRACE("BackBuffer constructor\n");
-+ }
-+
-+ BackBuffer::~BackBuffer()
-+ {
-+ OSL_TRACE("BackBuffer destructor\n");
-+ if( mpCairo )
-+ cairo_destroy( mpCairo );
-+ if( mpSurface )
-+ cairo_surface_destroy( mpSurface );
-+ mxGraphicDevice.reset();
-+ }
-+
-+ void BackBuffer::setSize( const ::Size& rNewSize )
-+ {
-+ OSL_TRACE("BackBuffer::setSize called\n");
-+ if( rNewSize != maSize ) {
-+ maSize = rNewSize;
-+ OSL_TRACE ("back buffer (%p) size: %d x %d\n", this, maSize.Width(), maSize.Height() );
-+ if( mpSurface )
-+ createSurface();
-+ }
-+ }
-+
-+ Surface* BackBuffer::getSurface()
-+ {
-+ if( !mpSurface ) {
-+ OSL_TRACE ("back buffer size: %d x %d\n", maSize.Width(), maSize.Height() );
-+ createSurface();
-+ }
-+ return mpSurface;
-+ }
-+
-+ void BackBuffer::createSurface()
-+ {
-+ Surface* pNewSurface = mxGraphicDevice->getSimilarSurfaceNoConst( maSize, maContent );
-+
-+ if( mpSurface )
-+ cairo_surface_destroy( mpSurface );
-+ if( mpCairo )
-+ cairo_destroy( mpCairo );
-+
-+ mpSurface = pNewSurface;
-+ mpCairo = cairo_create( mpSurface );
-+ }
-+
-+ Cairo* BackBuffer::getCairo()
-+ {
-+ if( !mpCairo )
-+ getSurface();
-+ return mpCairo;
-+ }
-+
-+ Size BackBuffer::getSize()
-+ {
-+ return maSize;
-+ }
-+}
diff --git a/patches/cairo/canvas-source-cairo-cairo_backbuffer-hxx.diff b/patches/cairo/canvas-source-cairo-cairo_backbuffer-hxx.diff
deleted file mode 100644
index 18b6bd8cb..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_backbuffer-hxx.diff
+++ /dev/null
@@ -1,103 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_backbuffer.hxx
-@@ -0,0 +1,100 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CAIRO_CANVAS_BACKBUFFER_HXX_
-+#define _CAIRO_CANVAS_BACKBUFFER_HXX_
-+
-+#ifndef BOOST_SHARED_PTR_HPP_INCLUDED
-+#include <boost/shared_ptr.hpp>
-+#endif
-+
-+#include "cairo_windowgraphicdevice.hxx"
-+
-+namespace cairocanvas
-+{
-+ /// OutDevProvider implementation for backbuffer VDev
-+ class BackBuffer
-+ {
-+ public:
-+ BackBuffer( WindowGraphicDevice::ImplRef xGraphicDevice,
-+ ::cairo::Content aContent = ::cairo::CAIRO_CONTENT_COLOR_ALPHA );
-+ ~BackBuffer();
-+
-+ Size getSize();
-+ void setSize( const ::Size& rNewSize );
-+ ::cairo::Surface* getSurface();
-+ ::cairo::Cairo* getCairo();
-+
-+ private:
-+ void createSurface();
-+
-+ WindowGraphicDevice::ImplRef mxGraphicDevice;
-+ Size maSize;
-+ ::cairo::Surface* mpSurface;
-+ ::cairo::Cairo* mpCairo;
-+ ::cairo::Content maContent;
-+ };
-+
-+ typedef ::boost::shared_ptr< BackBuffer > BackBufferSharedPtr;
-+
-+}
-+
-+#endif /* #ifndef _CAIRO_CANVAS_BACKBUFFER_HXX_ */
diff --git a/patches/cairo/canvas-source-cairo-cairo_bitmapbackbuffer-cxx.diff b/patches/cairo/canvas-source-cairo-cairo_bitmapbackbuffer-cxx.diff
deleted file mode 100644
index 0ec98b352..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_bitmapbackbuffer-cxx.diff
+++ /dev/null
@@ -1,193 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_bitmapbackbuffer.cxx
-@@ -0,0 +1,190 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include "cairo_bitmapbackbuffer.hxx"
-+
-+#ifndef _OSL_MUTEX_HXX_
-+#include <osl/mutex.hxx>
-+#endif
-+#ifndef _VOS_MUTEX_HXX_
-+#include <vos/mutex.hxx>
-+#endif
-+
-+#ifndef _SV_SVAPP_HXX
-+#include <vcl/svapp.hxx>
-+#endif
-+#ifndef _SV_BITMAPEX_HXX
-+#include <vcl/bitmapex.hxx>
-+#endif
-+#ifndef _SV_BMPACC_HXX
-+#include <vcl/bmpacc.hxx>
-+#endif
-+
-+
-+namespace cairocanvas
-+{
-+ BitmapBackBuffer::BitmapBackBuffer( const BitmapEx& rBitmap,
-+ const OutputDevice& rRefDevice ) :
-+ maBitmap( rBitmap ),
-+ mpVDev( NULL ),
-+ mrRefDevice( rRefDevice ),
-+ mbBitmapContentIsCurrent( false ),
-+ mbVDevContentIsCurrent( false )
-+ {
-+ }
-+
-+ BitmapBackBuffer::~BitmapBackBuffer()
-+ {
-+ // make sure solar mutex is held on deletion (other methods
-+ // are supposed to be called with already locked solar mutex)
-+ ::vos::OGuard aGuard( Application::GetSolarMutex() );
-+
-+ if( mpVDev )
-+ delete mpVDev;
-+ }
-+
-+ OutputDevice& BitmapBackBuffer::getOutDev()
-+ {
-+ createVDev();
-+ updateVDev();
-+ return *mpVDev;
-+ }
-+
-+ const OutputDevice& BitmapBackBuffer::getOutDev() const
-+ {
-+ createVDev();
-+ updateVDev();
-+ return *mpVDev;
-+ }
-+
-+ VirtualDevice& BitmapBackBuffer::getVirDev()
-+ {
-+ createVDev();
-+ updateVDev();
-+ return *mpVDev;
-+ }
-+
-+ const VirtualDevice& BitmapBackBuffer::getVirDev() const
-+ {
-+ createVDev();
-+ updateVDev();
-+ return *mpVDev;
-+ }
-+
-+ BitmapEx& BitmapBackBuffer::getBitmapReference()
-+ {
-+ OSL_ENSURE( !mbBitmapContentIsCurrent || !mbVDevContentIsCurrent,
-+ "BitmapBackBuffer::getBitmapReference(): Both bitmap and VDev are valid?!" );
-+
-+ if( mbVDevContentIsCurrent && mpVDev )
-+ {
-+ // VDev content is more current than bitmap - copy contents before!
-+ mpVDev->EnableMapMode( FALSE );
-+ const Point aEmptyPoint;
-+ *maBitmap = mpVDev->GetBitmapEx( aEmptyPoint,
-+ mpVDev->GetOutputSizePixel() );
-+ }
-+
-+ // client queries bitmap, and will possibly alter content -
-+ // next time, VDev needs to be updated
-+ mbBitmapContentIsCurrent = true;
-+ mbVDevContentIsCurrent = false;
-+
-+ return *maBitmap;
-+ }
-+
-+ void BitmapBackBuffer::createVDev() const
-+ {
-+ if( !mpVDev )
-+ {
-+ // VDev not yet created, do it now. Create an alpha-VDev,
-+ // if bitmap has transparency.
-+ mpVDev = maBitmap->IsTransparent() ?
-+ new VirtualDevice( mrRefDevice, 0, 0 ) :
-+ new VirtualDevice( mrRefDevice );
-+
-+ OSL_ENSURE( mpVDev,
-+ "BitmapBackBuffer::createVDev(): Unable to create VirtualDevice" );
-+
-+ mpVDev->SetOutputSizePixel( maBitmap->GetSizePixel() );
-+ }
-+ }
-+
-+ void BitmapBackBuffer::updateVDev() const
-+ {
-+ OSL_ENSURE( !mbBitmapContentIsCurrent || !mbVDevContentIsCurrent,
-+ "BitmapBackBuffer::updateVDev(): Both bitmap and VDev are valid?!" );
-+
-+ if( mpVDev && mbBitmapContentIsCurrent )
-+ {
-+ // fill with bitmap content
-+ mpVDev->EnableMapMode( FALSE );
-+ const Point aEmptyPoint;
-+ mpVDev->DrawBitmapEx( aEmptyPoint, *maBitmap );
-+ }
-+
-+ // canvas queried the VDev, and will possibly paint into
-+ // it. Next time, bitmap must be updated
-+ mbBitmapContentIsCurrent = false;
-+ mbVDevContentIsCurrent = true;
-+ }
-+
-+}
diff --git a/patches/cairo/canvas-source-cairo-cairo_bitmapbackbuffer-hxx.diff b/patches/cairo/canvas-source-cairo-cairo_bitmapbackbuffer-hxx.diff
deleted file mode 100644
index 396c88ad3..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_bitmapbackbuffer-hxx.diff
+++ /dev/null
@@ -1,138 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_bitmapbackbuffer.hxx
-@@ -0,0 +1,135 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _VCLCANVAS_BITMAPBACKBUFFER_HXX_
-+#define _VCLCANVAS_BITMAPBACKBUFFER_HXX_
-+
-+#ifndef _SV_VIRDEV_HXX
-+#include <vcl/virdev.hxx>
-+#endif
-+
-+#include <canvas/vclwrapper.hxx>
-+#include "cairo_outdevprovider.hxx"
-+
-+
-+namespace cairocanvas
-+{
-+ /** OutDevProvider implementation for canvas bitmap.
-+
-+ This class implements the OutDevProvider interface for the
-+ bitmap canvas. The actual VirtualDevice is only created when
-+ necessary, which makes read-only bitmaps a lot smaller.
-+ */
-+ class BitmapBackBuffer : public OutDevProvider
-+ {
-+ public:
-+ /** Create a backbuffer for given reference device
-+ */
-+ BitmapBackBuffer( const BitmapEx& rBitmap,
-+ const OutputDevice& rRefDevice );
-+
-+ ~BitmapBackBuffer();
-+
-+ virtual OutputDevice& getOutDev();
-+ virtual const OutputDevice& getOutDev() const;
-+
-+ VirtualDevice& getVirDev();
-+ const VirtualDevice& getVirDev() const;
-+
-+ /** Exposing our internal bitmap. Only to be used from
-+ CanvasBitmapHelper
-+
-+ @internal
-+ */
-+ BitmapEx& getBitmapReference();
-+
-+ private:
-+ void createVDev() const;
-+ void updateVDev() const;
-+
-+ ::canvas::vcltools::VCLObject<BitmapEx> maBitmap;
-+ mutable VirtualDevice* mpVDev; // created only on demand
-+
-+ const OutputDevice& mrRefDevice;
-+
-+ /** When true, the bitmap contains the last valid
-+ content. When false, and mbVDevContentIsCurrent is true,
-+ the VDev contains the last valid content (which must be
-+ copied back to the bitmap, when getBitmapReference() is
-+ called). When both are false, this object is just
-+ initialized.
-+ */
-+ mutable bool mbBitmapContentIsCurrent;
-+
-+ /** When true, and mpVDev is non-NULL, the VDev contains the
-+ last valid content. When false, and
-+ mbBitmapContentIsCurrent is true, the bitmap contains the
-+ last valid content. When both are false, this object is
-+ just initialized.
-+ */
-+ mutable bool mbVDevContentIsCurrent;
-+ };
-+
-+ typedef ::boost::shared_ptr< BitmapBackBuffer > BitmapBackBufferSharedPtr;
-+
-+}
-+
-+#endif /* #ifndef _VCLCANVAS_BITMAPBACKBUFFER_HXX_ */
diff --git a/patches/cairo/canvas-source-cairo-cairo_cachedbitmap-cxx.diff b/patches/cairo/canvas-source-cairo-cairo_cachedbitmap-cxx.diff
deleted file mode 100644
index 9adbda890..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_cachedbitmap-cxx.diff
+++ /dev/null
@@ -1,103 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_cachedbitmap.cxx
-@@ -0,0 +1,100 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#include <canvas/debug.hxx>
-+
-+#include "cairo_cachedbitmap.hxx"
-+#include "cairo_repainttarget.hxx"
-+
-+#include <com/sun/star/rendering/RepaintResult.hpp>
-+#include <com/sun/star/rendering/XPolyPolygon2D.hpp>
-+
-+#include <basegfx/matrix/b2dhommatrix.hxx>
-+#include <basegfx/tools/canvastools.hxx>
-+
-+
-+using namespace ::cairo;
-+using namespace ::com::sun::star;
-+
-+namespace cairocanvas
-+{
-+ CachedBitmap::CachedBitmap( Surface* pSurface,
-+ const rendering::ViewState& rUsedViewState,
-+ const rendering::RenderState& rUsedRenderState,
-+ const uno::Reference< rendering::XCanvas >& rTarget ) :
-+ CachedPrimitiveBase( rUsedViewState, rTarget, true ),
-+ mpSurface( pSurface ),
-+ maRenderState( rUsedRenderState )
-+ {
-+ mpSurface->Ref();
-+ }
-+
-+ void SAL_CALL CachedBitmap::disposing()
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ if( mpSurface ) {
-+ mpSurface->Unref();
-+ mpSurface = NULL;
-+ }
-+
-+ CachedPrimitiveBase::disposing();
-+ }
-+
-+ ::sal_Int8 CachedBitmap::doRedraw( const rendering::ViewState& rNewState,
-+ const rendering::ViewState& rOldState,
-+ const uno::Reference< rendering::XCanvas >& rTargetCanvas,
-+ bool bSameViewTransform )
-+ {
-+ ENSURE_AND_THROW( bSameViewTransform,
-+ "CachedBitmap::doRedraw(): base called with changed view transform "
-+ "(told otherwise during construction)" );
-+
-+ RepaintTarget* pTarget = dynamic_cast< RepaintTarget* >(rTargetCanvas.get());
-+
-+ ENSURE_AND_THROW( pTarget,
-+ "CachedBitmap::redraw(): cannot cast target to RepaintTarget" );
-+
-+ if( !pTarget->repaint( mpSurface,
-+ rNewState,
-+ maRenderState ) )
-+ {
-+ // target failed to repaint
-+ return rendering::RepaintResult::FAILED;
-+ }
-+
-+ return rendering::RepaintResult::REDRAWN;
-+ }
-+}
diff --git a/patches/cairo/canvas-source-cairo-cairo_cachedbitmap-hxx.diff b/patches/cairo/canvas-source-cairo-cairo_cachedbitmap-hxx.diff
deleted file mode 100644
index bd475bef6..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_cachedbitmap-hxx.diff
+++ /dev/null
@@ -1,78 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_cachedbitmap.hxx
-@@ -0,0 +1,75 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CAIROCANVAS_CACHEDBITMAP_HXX
-+#define _CAIROCANVAS_CACHEDBITMAP_HXX
-+
-+#include <canvas/base/cachedprimitivebase.hxx>
-+
-+#include "cairo_cairo.hxx"
-+
-+/* Definition of CachedBitmap class */
-+
-+namespace cairocanvas
-+{
-+ class CachedBitmap : public ::canvas::CachedPrimitiveBase
-+ {
-+ public:
-+
-+ /** Create an XCachedPrimitive for given GraphicObject
-+ */
-+ CachedBitmap( ::cairo::Surface* pSurface,
-+ const ::com::sun::star::rendering::ViewState& rUsedViewState,
-+ const ::com::sun::star::rendering::RenderState& rUsedRenderState,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XCanvas >& rTarget );
-+
-+ /// Dispose all internal references
-+ virtual void SAL_CALL disposing();
-+
-+ private:
-+ virtual ::sal_Int8 doRedraw( const ::com::sun::star::rendering::ViewState& rNewState,
-+ const ::com::sun::star::rendering::ViewState& rOldState,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XCanvas >& rTargetCanvas,
-+ bool bSameViewTransform );
-+
-+
-+ ::cairo::Surface* mpSurface;
-+ const ::com::sun::star::rendering::RenderState maRenderState;
-+ };
-+}
-+
-+#endif /* _CAIROCANVAS_CACHEDBITMAP_HXX */
diff --git a/patches/cairo/canvas-source-cairo-cairo_cairo-cxx.diff b/patches/cairo/canvas-source-cairo-cairo_cairo-cxx.diff
deleted file mode 100644
index 5a0192d18..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_cairo-cxx.diff
+++ /dev/null
@@ -1,80 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_cairo.cxx
-@@ -0,0 +1,77 @@
-+#include <X11/extensions/Xrender.h>
-+#include <X11/Xlib.h>
-+#include "cairo_cairo.hxx"
-+#include "cairo_helper.hxx"
-+
-+namespace cairo
-+{
-+
-+#include <cairo/cairo-xlib.h>
-+#include <cairo/cairo-xlib-xrender.h>
-+
-+ Surface::Surface( const void* pSysData, int x, int y, int width, int height )
-+ : mnRefCount( 1 ),
-+ mpSysData( pSysData ),
-+ mbFreePixmap( false )
-+ {
-+ mpSurface = (cairo_surface_t*) cairoHelperGetSurface( pSysData, x, y, width, height );
-+ mpDisplay = (Display*) cairoHelperGetDisplay( pSysData );
-+ mhDrawable = cairoHelperGetWindow( pSysData );
-+ }
-+
-+ Surface::Surface( const void* pSysData, void *pBmpData, int width, int height )
-+ : mnRefCount( 1 ),
-+ mpSysData( pSysData ),
-+ mbFreePixmap( false )
-+ {
-+ mpSurface = (cairo_surface_t*) cairoHelperGetSurface( pSysData, pBmpData, width, height );
-+ mpDisplay = (Display*) cairoHelperGetDisplay( pSysData );
-+ mhDrawable = cairoHelperGetWindow( pSysData );
-+ }
-+
-+
-+ Surface::~Surface()
-+ {
-+ if( mpSurface )
-+ {
-+ cairo_surface_destroy( mpSurface );
-+ mpSurface = NULL;
-+ }
-+ if( mbFreePixmap && mhDrawable )
-+ XFreePixmap( (Display*) mpDisplay, mhDrawable );
-+ }
-+
-+ Surface* Surface::getSimilar( Content aContent, int width, int height )
-+ {
-+ Pixmap hPixmap;
-+
-+ if( mpSysData && mpDisplay && mhDrawable ) {
-+ XRenderPictFormat *pFormat;
-+ int nFormat;
-+
-+ switch (aContent) {
-+ case CAIRO_CONTENT_ALPHA:
-+ nFormat = PictStandardA8;
-+ break;
-+ case CAIRO_CONTENT_COLOR:
-+ nFormat = PictStandardRGB24;
-+ break;
-+ case CAIRO_CONTENT_COLOR_ALPHA:
-+ default:
-+ nFormat = PictStandardARGB32;
-+ break;
-+ }
-+
-+ pFormat = XRenderFindStandardFormat( (Display*) mpDisplay, nFormat );
-+ hPixmap = XCreatePixmap( (Display*) mpDisplay, cairoHelperGetWindow( mpSysData ),
-+ width, height,
-+ pFormat->depth );
-+
-+ return new Surface( mpSysData, mpDisplay, (long) hPixmap, pFormat,
-+ cairo_xlib_surface_create_with_xrender_format( (Display*) mpDisplay, hPixmap,
-+ DefaultScreenOfDisplay( (Display *) mpDisplay ),
-+ pFormat, width, height ) );
-+ } else
-+ return new Surface( mpSysData, mpDisplay, 0, NULL, cairo_surface_create_similar( mpSurface, aContent, width, height ) );
-+ }
-+}
diff --git a/patches/cairo/canvas-source-cairo-cairo_cairo-hxx.diff b/patches/cairo/canvas-source-cairo-cairo_cairo-hxx.diff
deleted file mode 100644
index 7fee302db..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_cairo-hxx.diff
+++ /dev/null
@@ -1,85 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_cairo.hxx
-@@ -0,0 +1,82 @@
-+#ifndef _CAIROCANVAS_CAIRO_HXX
-+#define _CAIROCANVAS_CAIRO_HXX
-+
-+namespace cairo {
-+
-+#include <cairo.h>
-+
-+ typedef cairo_t Cairo;
-+ typedef cairo_matrix_t Matrix;
-+ typedef cairo_format_t Format;
-+ typedef cairo_content_t Content;
-+ typedef cairo_pattern_t Pattern;
-+
-+ class Surface {
-+ const void* mpSysData;
-+ void* mpDisplay;
-+ long mhDrawable;
-+ void *mpRenderFormat;
-+ int mnRefCount;
-+ bool mbFreePixmap;
-+ public:
-+ cairo_surface_t* mpSurface;
-+
-+ Surface( const void* pSysData, void* pDisplay, long hDrawable, void* pRenderFormat, cairo_surface_t* pSurface )
-+ : mpSysData( pSysData ),
-+ mpDisplay( pDisplay ),
-+ mhDrawable( hDrawable ),
-+ mpRenderFormat( pRenderFormat ),
-+ mpSurface( pSurface ),
-+ mbFreePixmap( true ),
-+ mnRefCount( 1 )
-+ {
-+ }
-+
-+ Surface( cairo_surface_t* pSurface )
-+ : mpSurface( pSurface ),
-+ mpDisplay( NULL ),
-+ mhDrawable( 0 ),
-+ mpSysData( NULL ),
-+ mbFreePixmap( false ),
-+ mnRefCount( 1 )
-+ {
-+ }
-+
-+ Surface( const void* pSysData, int x, int y, int width, int height );
-+ Surface( const void* pSysData, void *pBmpData, int width, int height );
-+
-+
-+ ~Surface();
-+
-+ void Ref()
-+ {
-+ mnRefCount ++;
-+ }
-+
-+ void Unref()
-+ {
-+ mnRefCount --;
-+ if( mnRefCount <= 0 )
-+ delete this;
-+ }
-+
-+ Cairo* getCairo()
-+ {
-+ return cairo_create( mpSurface );
-+ }
-+
-+ Surface* getSimilar( Content aContent, int width, int height );
-+
-+ long getPixmap()
-+ {
-+ return mhDrawable;
-+ }
-+
-+ void* getRenderFormat()
-+ {
-+ return mpRenderFormat;
-+ }
-+ };
-+}
-+
-+#endif
diff --git a/patches/cairo/canvas-source-cairo-cairo_canvasbitmap-cxx.diff b/patches/cairo/canvas-source-cairo-cairo_canvasbitmap-cxx.diff
deleted file mode 100644
index c84f8af16..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_canvasbitmap-cxx.diff
+++ /dev/null
@@ -1,122 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_canvasbitmap.cxx
-@@ -0,0 +1,119 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#include <canvas/debug.hxx>
-+#include <canvas/canvastools.hxx>
-+
-+#include "cairo_canvasbitmap.hxx"
-+
-+
-+using namespace ::cairo;
-+using namespace ::com::sun::star;
-+
-+namespace cairocanvas
-+{
-+ CanvasBitmap::CanvasBitmap( const ::basegfx::B2ISize& rSize,
-+ const DeviceRef& rDevice,
-+ bool bHasAlpha ) :
-+ mpDevice( rDevice )
-+ {
-+ ENSURE_AND_THROW( mpDevice.is(),
-+ "CanvasBitmap::CanvasBitmap(): Invalid surface or device" );
-+
-+ OSL_TRACE( "bitmap size: %dx%d", rSize.getX(), rSize.getY() );
-+
-+ mpBufferSurface = mpDevice->getSurface( rSize, bHasAlpha ? CAIRO_CONTENT_COLOR_ALPHA : CAIRO_CONTENT_COLOR );
-+ mpBufferCairo = mpBufferSurface->getCairo();
-+
-+ maCanvasHelper.init( rSize,
-+ *mpDevice.get(),
-+ bHasAlpha );
-+ maCanvasHelper.setSurface( mpBufferSurface );
-+
-+ mbHasAlpha = bHasAlpha;
-+ }
-+
-+ void SAL_CALL CanvasBitmap::disposing()
-+ {
-+ mpDevice.clear();
-+
-+ if( mpBufferCairo ) {
-+ cairo_destroy( mpBufferCairo );
-+ mpBufferCairo = NULL;
-+ }
-+
-+ if( mpBufferSurface ) {
-+ mpBufferSurface->Unref();
-+ mpBufferSurface = NULL;
-+ }
-+
-+ // forward to parent
-+ CanvasBitmap_Base::disposing();
-+ }
-+
-+ Surface* CanvasBitmap::getSurface()
-+ {
-+ return mpBufferSurface;
-+ }
-+
-+ bool CanvasBitmap::repaint( Surface* pSurface,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState )
-+ {
-+ return maCanvasHelper.repaint( pSurface, viewState, renderState );
-+ }
-+
-+#define IMPLEMENTATION_NAME "CairoCanvas.CanvasBitmap"
-+#define SERVICE_NAME "com.sun.star.rendering.CanvasBitmap"
-+
-+ ::rtl::OUString SAL_CALL CanvasBitmap::getImplementationName( ) throw (uno::RuntimeException)
-+ {
-+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
-+ }
-+
-+ sal_Bool SAL_CALL CanvasBitmap::supportsService( const ::rtl::OUString& ServiceName ) throw (uno::RuntimeException)
-+ {
-+ return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
-+ }
-+
-+ uno::Sequence< ::rtl::OUString > SAL_CALL CanvasBitmap::getSupportedServiceNames( ) throw (uno::RuntimeException)
-+ {
-+ uno::Sequence< ::rtl::OUString > aRet(1);
-+ aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
-+
-+ return aRet;
-+ }
-+
-+}
diff --git a/patches/cairo/canvas-source-cairo-cairo_canvasbitmap-hxx.diff b/patches/cairo/canvas-source-cairo-cairo_canvasbitmap-hxx.diff
deleted file mode 100644
index f80164b36..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_canvasbitmap-hxx.diff
+++ /dev/null
@@ -1,115 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_canvasbitmap.hxx
-@@ -0,0 +1,112 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CAIROCANVAS_CANVASBITMAP_HXX
-+#define _CAIROCANVAS_CANVASBITMAP_HXX
-+
-+#include <cppuhelper/compbase3.hxx>
-+
-+#include <com/sun/star/lang/XServiceInfo.hpp>
-+#include <com/sun/star/rendering/XBitmapCanvas.hpp>
-+#include <com/sun/star/rendering/XIntegerBitmap.hpp>
-+
-+#include <basegfx/vector/b2isize.hxx>
-+
-+#include <boost/shared_ptr.hpp>
-+
-+#include <canvas/base/integerbitmapbase.hxx>
-+
-+#include "cairo_cairo.hxx"
-+#include "cairo_canvashelper.hxx"
-+#include "cairo_repainttarget.hxx"
-+#include "cairo_spritecanvas.hxx"
-+
-+
-+/* Definition of CanvasBitmap class */
-+
-+namespace cairocanvas
-+{
-+ typedef ::cppu::WeakComponentImplHelper3< ::com::sun::star::rendering::XBitmapCanvas,
-+ ::com::sun::star::rendering::XIntegerBitmap,
-+ ::com::sun::star::lang::XServiceInfo > CanvasBitmapBase_Base;
-+ typedef ::canvas::IntegerBitmapBase< ::canvas::BaseMutexHelper< CanvasBitmapBase_Base >,
-+ CanvasHelper,
-+ ::osl::MutexGuard,
-+ ::cppu::OWeakObject > CanvasBitmap_Base;
-+
-+ class CanvasBitmap : public CanvasBitmap_Base,
-+ public RepaintTarget
-+ {
-+ public:
-+ /** Create a canvas bitmap for the given surface
-+
-+ @param rSize
-+ Size of the bitmap
-+
-+ @param rDevice
-+ Reference device, with which bitmap should be compatible
-+ */
-+ CanvasBitmap( const ::basegfx::B2ISize& rSize,
-+ const DeviceRef& rDevice,
-+ bool bHasAlpha );
-+
-+ /// Dispose all internal references
-+ virtual void SAL_CALL disposing();
-+
-+ // XServiceInfo
-+ virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException);
-+
-+ ::cairo::Surface* getSurface();
-+
-+ // RepaintTarget
-+ virtual bool repaint( ::cairo::Surface* pSurface,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState );
-+
-+ private:
-+ /** MUST hold here, too, since CanvasHelper only contains a
-+ raw pointer (without refcounting)
-+ */
-+ DeviceRef mpDevice;
-+ ::cairo::Surface* mpBufferSurface;
-+ ::cairo::Cairo* mpBufferCairo;
-+
-+ bool mbHasAlpha;
-+ };
-+}
-+
-+#endif /* _CAIROCANVAS_CANVASBITMAP_HXX */
diff --git a/patches/cairo/canvas-source-cairo-cairo_canvasbitmaphelper-cxx.diff b/patches/cairo/canvas-source-cairo-cairo_canvasbitmaphelper-cxx.diff
deleted file mode 100644
index 021e0d13e..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_canvasbitmaphelper-cxx.diff
+++ /dev/null
@@ -1,234 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_canvasbitmaphelper.cxx
-@@ -0,0 +1,231 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include <canvas/debug.hxx>
-+
-+#ifndef _RTL_LOGFILE_HXX_
-+#include <rtl/logfile.hxx>
-+#endif
-+#ifndef INCLUDED_RTL_MATH_HXX
-+#include <rtl/math.hxx>
-+#endif
-+
-+#ifndef _TL_POLY_HXX
-+#include <tools/poly.hxx>
-+#endif
-+#ifndef _SV_WINDOW_HXX
-+#include <vcl/window.hxx>
-+#endif
-+#ifndef _SV_BITMAPEX_HXX
-+#include <vcl/bitmapex.hxx>
-+#endif
-+#ifndef _SV_BMPACC_HXX
-+#include <vcl/bmpacc.hxx>
-+#endif
-+#ifndef _VCL_CANVASTOOLS_HXX
-+#include <vcl/canvastools.hxx>
-+#endif
-+
-+#ifndef _BGFX_MATRIX_B2DHOMMATRIX_HXX
-+#include <basegfx/matrix/b2dhommatrix.hxx>
-+#endif
-+#ifndef _BGFX_POINT_B2DPOINT_HXX
-+#include <basegfx/point/b2dpoint.hxx>
-+#endif
-+#ifndef _BGFX_TOOLS_CANVASTOOLS_HXX
-+#include <basegfx/tools/canvastools.hxx>
-+#endif
-+#ifndef _BGFX_NUMERIC_FTOOLS_HXX
-+#include <basegfx/numeric/ftools.hxx>
-+#endif
-+
-+#include <canvas/canvastools.hxx>
-+
-+#include "cairo_canvasbitmap.hxx"
-+
-+
-+using namespace ::com::sun::star;
-+
-+namespace cairocanvas
-+{
-+ CanvasBitmapHelper::CanvasBitmapHelper() :
-+ mpBackBuffer()
-+ {
-+ }
-+
-+ void CanvasBitmapHelper::setDevice( const WindowGraphicDevice::ImplRef& rDevice )
-+ {
-+ ENSURE_AND_THROW( rDevice.is(),
-+ "CanvasBitmapHelper::setBitmap(): Invalid reference device" );
-+
-+ mpBackBuffer.reset( new BackBuffer( rDevice ) );
-+
-+ // forward new settings to base class
-+ setGraphicDevice( rDevice );
-+ }
-+
-+ void CanvasBitmapHelper::disposing()
-+ {
-+ mpBackBuffer.reset();
-+
-+ // forward to base class
-+ CanvasHelper::disposing();
-+ }
-+
-+ geometry::IntegerSize2D SAL_CALL CanvasBitmapHelper::getSize()
-+ {
-+ if( !mpBackBuffer.get() )
-+ return geometry::IntegerSize2D();
-+
-+ return ::vcl::unotools::integerSize2DFromSize( mpBackBuffer->getSize() );
-+ }
-+
-+ uno::Reference< rendering::XBitmap > SAL_CALL CanvasBitmapHelper::getScaledBitmap( const geometry::RealSize2D& newSize,
-+ sal_Bool beFast )
-+ {
-+ OSL_TRACE ("CanvasBitmapHelper::getScaledBitmap TODO\n");
-+
-+ RTL_LOGFILE_CONTEXT( aLog, "::cairocanvas::CanvasBitmapHelper::getScaledBitmap()" );
-+
-+ if( !mpBackBuffer.get() )
-+ return uno::Reference< rendering::XBitmap >(); // we're disposed
-+
-+ return uno::Reference< rendering::XBitmap >(); // we're disposed
-+ }
-+
-+ uno::Sequence< sal_Int8 > SAL_CALL CanvasBitmapHelper::getData( const geometry::IntegerRectangle2D& rect )
-+ {
-+ OSL_TRACE ("CanvasBitmapHelper::getData TODO\n");
-+
-+ RTL_LOGFILE_CONTEXT( aLog, "::cairocanvas::CanvasBitmapHelper::getData()" );
-+
-+ if( !mpBackBuffer.get() )
-+ return uno::Sequence< sal_Int8 >(); // we're disposed
-+
-+ return uno::Sequence< sal_Int8 >(); // we're disposed
-+ }
-+
-+ void SAL_CALL CanvasBitmapHelper::setData( const uno::Sequence< sal_Int8 >& data,
-+ const geometry::IntegerRectangle2D& rect )
-+ {
-+ OSL_TRACE ("CanvasBitmapHelper::setData TODO\n");
-+
-+ RTL_LOGFILE_CONTEXT( aLog, "::cairocanvas::CanvasBitmapHelper::setData()" );
-+
-+ if( !mpBackBuffer.get() )
-+ return; // we're disposed
-+
-+ return;
-+ }
-+
-+ void SAL_CALL CanvasBitmapHelper::setPixel( const uno::Sequence< sal_Int8 >& color,
-+ const geometry::IntegerPoint2D& pos )
-+ {
-+ OSL_TRACE ("CanvasBitmapHelper::setPixel TODO\n");
-+
-+ RTL_LOGFILE_CONTEXT( aLog, "::cairocanvas::CanvasBitmapHelper::setPixel()" );
-+
-+ if( !mpBackBuffer.get() )
-+ return; // we're disposed
-+
-+ return;
-+ }
-+
-+ uno::Sequence< sal_Int8 > SAL_CALL CanvasBitmapHelper::getPixel( const geometry::IntegerPoint2D& pos )
-+ {
-+ OSL_TRACE ("CanvasBitmapHelper::getPixel TODO\n");
-+
-+ RTL_LOGFILE_CONTEXT( aLog, "::cairocanvas::CanvasBitmapHelper::getPixel()" );
-+
-+ if( !mpBackBuffer.get() )
-+ return uno::Sequence< sal_Int8 >(); // we're disposed
-+
-+ return uno::Sequence< sal_Int8 >(); // we're disposed
-+ }
-+
-+ uno::Reference< rendering::XBitmapPalette > SAL_CALL CanvasBitmapHelper::getPalette()
-+ {
-+ // TODO(F1): Provide palette support
-+ return uno::Reference< rendering::XBitmapPalette >();
-+ }
-+
-+ rendering::IntegerBitmapLayout SAL_CALL CanvasBitmapHelper::getMemoryLayout()
-+ {
-+ // TODO(F1): finish that one
-+ rendering::IntegerBitmapLayout aLayout;
-+
-+ if( !mpBackBuffer.get() )
-+ return aLayout; // we're disposed
-+
-+ const Size aBmpSize( mpBackBuffer->getSize() );
-+
-+ aLayout.ScanLines = aBmpSize.Height();
-+ aLayout.ScanLineBytes = aBmpSize.Width()*4;
-+ aLayout.ScanLineStride = aLayout.ScanLineBytes;
-+ aLayout.Format = 0;
-+ aLayout.NumComponents = 4;
-+ aLayout.ComponentMasks = uno::Sequence<sal_Int64>();
-+ aLayout.Endianness = 0;
-+ aLayout.IsPseudoColor = false;
-+
-+ return aLayout;
-+ }
-+}
diff --git a/patches/cairo/canvas-source-cairo-cairo_canvasbitmaphelper-hxx.diff b/patches/cairo/canvas-source-cairo-cairo_canvasbitmaphelper-hxx.diff
deleted file mode 100644
index 13874aa83..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_canvasbitmaphelper-hxx.diff
+++ /dev/null
@@ -1,135 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_canvasbitmaphelper.hxx
-@@ -0,0 +1,132 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _VCLCANVAS_CANVASBITMAPHELPER_HXX_
-+#define _VCLCANVAS_CANVASBITMAPHELPER_HXX_
-+
-+#include "cairo_canvashelper.hxx"
-+
-+#ifndef _SV_BITMAPEX_HXX
-+#include <vcl/bitmapex.hxx>
-+#endif
-+
-+#include <canvas/vclwrapper.hxx>
-+
-+#include "cairo_backbuffer.hxx"
-+
-+
-+namespace cairocanvas
-+{
-+ /** Helper class for basic canvasbitmap functionality. Extends
-+ CanvasHelper with some CanvasBitmap specialities, such as alpha
-+ support.
-+
-+ Note that a plain CanvasHelper, although it does support the
-+ XBitmap interface, has no provision for alpha channel on VCL
-+ (at least no efficient one. If the alpha VDev one day gets
-+ part of SAL, we might change that).
-+ */
-+ class CanvasBitmapHelper : public CanvasHelper
-+ {
-+ public:
-+ CanvasBitmapHelper();
-+
-+ void setDevice( const WindowGraphicDevice::ImplRef& rDevice );
-+
-+ // Overridden CanvasHelper functionality
-+ // =====================================
-+
-+ void disposing();
-+
-+ ::com::sun::star::geometry::IntegerSize2D SAL_CALL getSize();
-+
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmapCanvas > SAL_CALL queryBitmapCanvas();
-+
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > SAL_CALL
-+ getScaledBitmap( const ::com::sun::star::geometry::RealSize2D& newSize,
-+ sal_Bool beFast );
-+
-+ ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL
-+ getData( const ::com::sun::star::geometry::IntegerRectangle2D& rect );
-+
-+ void SAL_CALL setData( const ::com::sun::star::uno::Sequence< sal_Int8 >& data,
-+ const ::com::sun::star::geometry::IntegerRectangle2D& rect );
-+
-+ void SAL_CALL setPixel( const ::com::sun::star::uno::Sequence< sal_Int8 >& color,
-+ const ::com::sun::star::geometry::IntegerPoint2D& pos );
-+
-+ ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL
-+ getPixel( const ::com::sun::star::geometry::IntegerPoint2D& pos );
-+
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmapPalette > SAL_CALL getPalette();
-+
-+ ::com::sun::star::rendering::IntegerBitmapLayout SAL_CALL getMemoryLayout();
-+
-+ private:
-+ // default: disabled copy/assignment
-+ CanvasBitmapHelper(const CanvasBitmapHelper&);
-+ CanvasBitmapHelper& operator=( const CanvasBitmapHelper& );
-+
-+ BackBufferSharedPtr mpBackBuffer;
-+ };
-+}
-+
-+#endif /* _VCLCANVAS_CANVASBITMAPHELPER_HXX_ */
diff --git a/patches/cairo/canvas-source-cairo-cairo_canvascustomsprite-cxx.diff b/patches/cairo/canvas-source-cairo-cairo_canvascustomsprite-cxx.diff
deleted file mode 100644
index f0dcfc777..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_canvascustomsprite-cxx.diff
+++ /dev/null
@@ -1,152 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_canvascustomsprite.cxx
-@@ -0,0 +1,149 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#include <canvas/debug.hxx>
-+#include <canvas/verbosetrace.hxx>
-+
-+#include <rtl/logfile.hxx>
-+#include <rtl/math.hxx>
-+
-+#include <canvas/canvastools.hxx>
-+
-+#include <basegfx/matrix/b2dhommatrix.hxx>
-+#include <basegfx/point/b2dpoint.hxx>
-+
-+#include "cairo_canvascustomsprite.hxx"
-+#include "cairo_spritecanvas.hxx"
-+
-+
-+using namespace ::cairo;
-+using namespace ::com::sun::star;
-+
-+namespace cairocanvas
-+{
-+ CanvasCustomSprite::CanvasCustomSprite( const ::com::sun::star::geometry::RealSize2D& rSpriteSize,
-+ const SpriteCanvasRef& rRefDevice ) :
-+ mpSpriteCanvas( rRefDevice )
-+ {
-+ ENSURE_AND_THROW( rRefDevice.get(),
-+ "CanvasCustomSprite::CanvasCustomSprite(): Invalid sprite canvas" );
-+
-+ ::basegfx::B2ISize aSize( ::canvas::tools::roundUp( rSpriteSize.Width ),
-+ ::canvas::tools::roundUp( rSpriteSize.Height ) );
-+
-+ //mpBufferSurface = mpSpriteCanvas->getSurface( aSize, CAIRO_CONTENT_COLOR );
-+ mpBufferSurface = mpSpriteCanvas->getSurface( aSize );
-+ mpCairo = mpBufferSurface->getCairo();
-+
-+ maCanvasHelper.init( aSize,
-+ *rRefDevice.get(),
-+ true );
-+ maCanvasHelper.setSurface( mpBufferSurface );
-+
-+ maSpriteHelper.init( rSpriteSize,
-+ rRefDevice,
-+ mpBufferSurface );
-+ }
-+
-+ void SAL_CALL CanvasCustomSprite::disposing()
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ mpSpriteCanvas.clear();
-+
-+ if( mpCairo ) {
-+ cairo_destroy( mpCairo );
-+ mpCairo = NULL;
-+ }
-+
-+ if( mpBufferSurface ) {
-+ mpBufferSurface->Unref();
-+ mpBufferSurface = NULL;
-+ }
-+
-+ // forward to parent
-+ CanvasCustomSpriteBaseT::disposing();
-+ }
-+
-+ void CanvasCustomSprite::redraw( Cairo* pCairo,
-+ bool bBufferedUpdate ) const
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ redraw( pCairo, maSpriteHelper.getPosPixel(), bBufferedUpdate );
-+ }
-+
-+ void CanvasCustomSprite::redraw( Cairo* pCairo,
-+ const ::basegfx::B2DPoint& rOrigOutputPos,
-+ bool bBufferedUpdate ) const
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ maSpriteHelper.redraw( pCairo,
-+ rOrigOutputPos,
-+ mbSurfaceDirty,
-+ bBufferedUpdate );
-+
-+ mbSurfaceDirty = false;
-+ }
-+
-+ bool CanvasCustomSprite::repaint( Surface* pSurface,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState )
-+ {
-+ return maCanvasHelper.repaint( pSurface, viewState, renderState );
-+ }
-+
-+#define IMPLEMENTATION_NAME "CairoCanvas.CanvasCustomSprite"
-+#define SERVICE_NAME "com.sun.star.rendering.CanvasCustomSprite"
-+
-+ ::rtl::OUString SAL_CALL CanvasCustomSprite::getImplementationName() throw( uno::RuntimeException )
-+ {
-+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
-+ }
-+
-+ sal_Bool SAL_CALL CanvasCustomSprite::supportsService( const ::rtl::OUString& ServiceName ) throw( uno::RuntimeException )
-+ {
-+ return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
-+ }
-+
-+ uno::Sequence< ::rtl::OUString > SAL_CALL CanvasCustomSprite::getSupportedServiceNames() throw( uno::RuntimeException )
-+ {
-+ uno::Sequence< ::rtl::OUString > aRet(1);
-+ aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
-+
-+ return aRet;
-+ }
-+}
diff --git a/patches/cairo/canvas-source-cairo-cairo_canvascustomsprite-hxx.diff b/patches/cairo/canvas-source-cairo-cairo_canvascustomsprite-hxx.diff
deleted file mode 100644
index 3f855a9c6..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_canvascustomsprite-hxx.diff
+++ /dev/null
@@ -1,158 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_canvascustomsprite.hxx
-@@ -0,0 +1,155 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CAIROCANVAS_CANVASCUSTOMSPRITE_HXX
-+#define _CAIROCANVAS_CANVASCUSTOMSPRITE_HXX
-+
-+#include <cppuhelper/compbase4.hxx>
-+#include <comphelper/uno3.hxx>
-+
-+#include <com/sun/star/lang/XServiceInfo.hpp>
-+#include <com/sun/star/lang/XComponent.hpp>
-+#include <com/sun/star/rendering/XCustomSprite.hpp>
-+#include <com/sun/star/rendering/XIntegerBitmap.hpp>
-+#include <com/sun/star/rendering/XPolyPolygon2D.hpp>
-+
-+#include <basegfx/point/b2dpoint.hxx>
-+#include <basegfx/vector/b2isize.hxx>
-+#include <basegfx/matrix/b2dhommatrix.hxx>
-+
-+#include <canvas/base/basemutexhelper.hxx>
-+#include <canvas/base/canvascustomspritebase.hxx>
-+
-+#include "cairo_sprite.hxx"
-+#include "cairo_cairo.hxx"
-+#include "cairo_canvashelper.hxx"
-+#include "cairo_repainttarget.hxx"
-+#include "cairo_spritehelper.hxx"
-+#include "cairo_spritecanvas.hxx"
-+
-+
-+namespace cairocanvas
-+{
-+ typedef ::cppu::WeakComponentImplHelper4< ::com::sun::star::rendering::XCustomSprite,
-+ ::com::sun::star::rendering::XBitmapCanvas,
-+ ::com::sun::star::rendering::XIntegerBitmap,
-+ ::com::sun::star::lang::XServiceInfo > CanvasCustomSpriteBase_Base;
-+ /** Mixin Sprite
-+
-+ Have to mixin the Sprite interface before deriving from
-+ ::canvas::CanvasCustomSpriteBase, as this template should
-+ already implement some of those interface methods.
-+
-+ The reason why this appears kinda convoluted is the fact that
-+ we cannot specify non-IDL types as WeakComponentImplHelperN
-+ template args, and furthermore, don't want to derive
-+ ::canvas::CanvasCustomSpriteBase directly from
-+ ::canvas::Sprite (because derivees of
-+ ::canvas::CanvasCustomSpriteBase have to explicitely forward
-+ the XInterface methods (e.g. via DECLARE_UNO3_AGG_DEFAULTS)
-+ anyway). Basically, ::canvas::CanvasCustomSpriteBase should
-+ remain a base class that provides implementation, not to
-+ enforce any specific interface on its derivees.
-+ */
-+ class CanvasCustomSpriteSpriteBase_Base : public ::canvas::BaseMutexHelper< CanvasCustomSpriteBase_Base >,
-+ public Sprite
-+ {
-+ };
-+
-+ typedef ::canvas::CanvasCustomSpriteBase< CanvasCustomSpriteSpriteBase_Base,
-+ SpriteHelper,
-+ CanvasHelper,
-+ ::osl::MutexGuard,
-+ ::cppu::OWeakObject > CanvasCustomSpriteBaseT;
-+
-+ /* Definition of CanvasCustomSprite class */
-+
-+ class CanvasCustomSprite : public CanvasCustomSpriteBaseT,
-+ public RepaintTarget
-+ {
-+ public:
-+ /** Create a custom sprite
-+
-+ @param rSpriteSize
-+ Size of the sprite in pixel
-+
-+ @param rRefDevice
-+ Associated output device
-+
-+ @param rSpriteCanvas
-+ Target canvas
-+
-+ @param rDevice
-+ Target DX device
-+ */
-+ CanvasCustomSprite( const ::com::sun::star::geometry::RealSize2D& rSpriteSize,
-+ const SpriteCanvasRef& rRefDevice );
-+
-+ virtual void SAL_CALL disposing();
-+
-+ // Forwarding the XComponent implementation to the
-+ // cppu::ImplHelper templated base
-+ // Classname Base doing refcount Base implementing the XComponent interface
-+ // | | |
-+ // V V V
-+ DECLARE_UNO3_XCOMPONENT_AGG_DEFAULTS( CanvasCustomSprite, CanvasCustomSpriteBase_Base, ::cppu::WeakComponentImplHelperBase );
-+
-+ // XServiceInfo
-+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw( ::com::sun::star::uno::RuntimeException );
-+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw( ::com::sun::star::uno::RuntimeException );
-+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw( ::com::sun::star::uno::RuntimeException );
-+
-+ // Sprite
-+ virtual void redraw( ::cairo::Cairo* pCairo,
-+ bool bBufferedUpdate ) const;
-+ virtual void redraw( ::cairo::Cairo* pCairo,
-+ const ::basegfx::B2DPoint& rOrigOutputPos,
-+ bool bBufferedUpdate ) const;
-+
-+ // RepaintTarget
-+ virtual bool repaint( ::cairo::Surface* pSurface,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState );
-+ private:
-+ /** MUST hold here, too, since CanvasHelper only contains a
-+ raw pointer (without refcounting)
-+ */
-+ SpriteCanvasRef mpSpriteCanvas;
-+ ::cairo::Surface* mpBufferSurface;
-+ ::cairo::Cairo* mpCairo;
-+ };
-+}
-+
-+#endif /* _CAIROCANVAS_CANVASCUSTOMSPRITE_HXX */
diff --git a/patches/cairo/canvas-source-cairo-cairo_canvasfont-cxx.diff b/patches/cairo/canvas-source-cairo-cairo_canvasfont-cxx.diff
deleted file mode 100644
index 389b98fef..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_canvasfont-cxx.diff
+++ /dev/null
@@ -1,176 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_canvasfont.cxx
-@@ -0,0 +1,173 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#include <canvas/debug.hxx>
-+
-+#include <rtl/math.hxx>
-+#include <basegfx/numeric/ftools.hxx>
-+
-+#include <vcl/metric.hxx>
-+
-+#include "cairo_canvasfont.hxx"
-+#include "cairo_textlayout.hxx"
-+
-+using namespace ::com::sun::star;
-+
-+
-+namespace cairocanvas
-+{
-+ CanvasFont::CanvasFont( const rendering::FontRequest& rFontRequest,
-+ const uno::Sequence< beans::PropertyValue >& rExtraFontProperties,
-+ const geometry::Matrix2D& rFontMatrix,
-+ const DeviceRef& rDevice ) :
-+ CanvasFont_Base( m_aMutex ),
-+ maFont( Font( rFontRequest.FontDescription.FamilyName,
-+ rFontRequest.FontDescription.StyleName,
-+ Size( 0, ::basegfx::fround(rFontRequest.CellSize) ) ) ),
-+ maFontRequest( rFontRequest ),
-+ mpRefDevice( rDevice )
-+ {
-+ maFont->SetAlign( ALIGN_BASELINE );
-+ maFont->SetCharSet( (rFontRequest.FontDescription.IsSymbolFont==com::sun::star::util::TriState_YES) ? RTL_TEXTENCODING_SYMBOL : RTL_TEXTENCODING_UNICODE );
-+ maFont->SetVertical( (rFontRequest.FontDescription.IsVertical==com::sun::star::util::TriState_YES) ? TRUE : FALSE );
-+
-+ // TODO(F2): improve panose->vclenum conversion
-+ maFont->SetWeight( static_cast<FontWeight>(rFontRequest.FontDescription.FontDescription.Weight) );
-+ maFont->SetItalic( (rFontRequest.FontDescription.FontDescription.Letterform<=8) ? ITALIC_NONE : ITALIC_NORMAL );
-+
-+ // adjust to stretched/shrinked font
-+ if( !::rtl::math::approxEqual( rFontMatrix.m00, rFontMatrix.m11) )
-+ {
-+ OutputDevice* pOutDev( mpRefDevice->getOutputWindow() );
-+
-+ if( pOutDev )
-+ {
-+ const bool bOldMapState( pOutDev->IsMapModeEnabled() );
-+ pOutDev->EnableMapMode(FALSE);
-+
-+ const Size aSize = pOutDev->GetFontMetric( *maFont ).GetSize();
-+
-+ const double fDividend( rFontMatrix.m10 + rFontMatrix.m11 );
-+ double fStretch = (rFontMatrix.m00 + rFontMatrix.m01);
-+
-+ if( !::basegfx::fTools::equalZero( fDividend) )
-+ fStretch /= fDividend;
-+
-+ const long nNewWidth = ::basegfx::fround( aSize.Width() * fStretch );
-+
-+ maFont->SetWidth( nNewWidth );
-+
-+ pOutDev->EnableMapMode(bOldMapState);
-+ }
-+ }
-+ }
-+
-+ void SAL_CALL CanvasFont::disposing()
-+ {
-+ tools::LocalGuard aGuard;
-+
-+ mpRefDevice.clear();
-+ }
-+
-+ uno::Reference< rendering::XTextLayout > SAL_CALL CanvasFont::createTextLayout( const rendering::StringContext& aText, sal_Int8 nDirection, sal_Int64 nRandomSeed ) throw (uno::RuntimeException)
-+ {
-+ tools::LocalGuard aGuard;
-+
-+ if( !mpRefDevice.is() )
-+ return uno::Reference< rendering::XTextLayout >(); // we're disposed
-+
-+ return new TextLayout( aText,
-+ nDirection,
-+ nRandomSeed,
-+ Reference( this ) );
-+ }
-+
-+ rendering::FontRequest SAL_CALL CanvasFont::getFontRequest( ) throw (uno::RuntimeException)
-+ {
-+ tools::LocalGuard aGuard;
-+
-+ return maFontRequest;
-+ }
-+
-+ rendering::FontMetrics SAL_CALL CanvasFont::getFontMetrics( ) throw (uno::RuntimeException)
-+ {
-+ tools::LocalGuard aGuard;
-+
-+ // TODO(F1)
-+ return rendering::FontMetrics();
-+ }
-+
-+ uno::Sequence< double > SAL_CALL CanvasFont::getAvailableSizes( ) throw (uno::RuntimeException)
-+ {
-+ tools::LocalGuard aGuard;
-+
-+ // TODO(F1)
-+ return uno::Sequence< double >();
-+ }
-+
-+ uno::Sequence< beans::PropertyValue > SAL_CALL CanvasFont::getExtraFontProperties( ) throw (uno::RuntimeException)
-+ {
-+ tools::LocalGuard aGuard;
-+
-+ // TODO(F1)
-+ return uno::Sequence< beans::PropertyValue >();
-+ }
-+
-+#define IMPLEMENTATION_NAME "CairoCanvas::CanvasFont"
-+#define SERVICE_NAME "com.sun.star.rendering.CanvasFont"
-+
-+ ::rtl::OUString SAL_CALL CanvasFont::getImplementationName() throw( uno::RuntimeException )
-+ {
-+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
-+ }
-+
-+ sal_Bool SAL_CALL CanvasFont::supportsService( const ::rtl::OUString& ServiceName ) throw( uno::RuntimeException )
-+ {
-+ return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
-+ }
-+
-+ uno::Sequence< ::rtl::OUString > SAL_CALL CanvasFont::getSupportedServiceNames() throw( uno::RuntimeException )
-+ {
-+ uno::Sequence< ::rtl::OUString > aRet(1);
-+ aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
-+
-+ return aRet;
-+ }
-+
-+ ::Font CanvasFont::getVCLFont() const
-+ {
-+ return *maFont;
-+ }
-+}
diff --git a/patches/cairo/canvas-source-cairo-cairo_canvasfont-hxx.diff b/patches/cairo/canvas-source-cairo-cairo_canvasfont-hxx.diff
deleted file mode 100644
index c84baa604..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_canvasfont-hxx.diff
+++ /dev/null
@@ -1,108 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_canvasfont.hxx
-@@ -0,0 +1,105 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CAIROCANVAS_CANVASFONT_HXX
-+#define _CAIROCANVAS_CANVASFONT_HXX
-+
-+#include <comphelper/implementationreference.hxx>
-+
-+#include <cppuhelper/compbase2.hxx>
-+#include <comphelper/broadcasthelper.hxx>
-+
-+#include <com/sun/star/lang/XServiceInfo.hpp>
-+#include <com/sun/star/geometry/Matrix2D.hpp>
-+#include <com/sun/star/rendering/FontRequest.hpp>
-+#include <com/sun/star/rendering/XCanvasFont.hpp>
-+
-+#include <vcl/font.hxx>
-+
-+#include <canvas/vclwrapper.hxx>
-+
-+#include "cairo_spritecanvas.hxx"
-+#include "cairo_impltools.hxx"
-+
-+#include <boost/utility.hpp>
-+
-+
-+/* Definition of CanvasFont class */
-+
-+namespace cairocanvas
-+{
-+ typedef ::cppu::WeakComponentImplHelper2< ::com::sun::star::rendering::XCanvasFont,
-+ ::com::sun::star::lang::XServiceInfo > CanvasFont_Base;
-+
-+ class CanvasFont : public ::comphelper::OBaseMutex,
-+ public CanvasFont_Base,
-+ private ::boost::noncopyable
-+ {
-+ public:
-+ typedef ::comphelper::ImplementationReference<
-+ CanvasFont,
-+ ::com::sun::star::rendering::XCanvasFont > Reference;
-+
-+ CanvasFont( const ::com::sun::star::rendering::FontRequest& fontRequest,
-+ const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& extraFontProperties,
-+ const ::com::sun::star::geometry::Matrix2D& rFontMatrix,
-+ const DeviceRef& rDevice );
-+
-+ /// Dispose all internal references
-+ virtual void SAL_CALL disposing();
-+
-+ // XCanvasFont
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XTextLayout > SAL_CALL createTextLayout( const ::com::sun::star::rendering::StringContext& aText, sal_Int8 nDirection, sal_Int64 nRandomSeed ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::rendering::FontRequest SAL_CALL getFontRequest( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::rendering::FontMetrics SAL_CALL getFontMetrics( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Sequence< double > SAL_CALL getAvailableSizes( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getExtraFontProperties( ) throw (::com::sun::star::uno::RuntimeException);
-+
-+ // XServiceInfo
-+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw( ::com::sun::star::uno::RuntimeException );
-+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw( ::com::sun::star::uno::RuntimeException );
-+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw( ::com::sun::star::uno::RuntimeException );
-+
-+ ::Font getVCLFont() const;
-+
-+ private:
-+ ::canvas::vcltools::VCLObject<Font> maFont;
-+ ::com::sun::star::rendering::FontRequest maFontRequest;
-+ DeviceRef mpRefDevice;
-+ };
-+
-+}
-+
-+#endif /* _CAIROCANVAS_CANVASFONT_HXX */
diff --git a/patches/cairo/canvas-source-cairo-cairo_canvashelper-cxx-m.diff b/patches/cairo/canvas-source-cairo-cairo_canvashelper-cxx-m.diff
deleted file mode 100644
index 760854f3a..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_canvashelper-cxx-m.diff
+++ /dev/null
@@ -1,736 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_canvashelper.cxx.M
-@@ -0,0 +1,733 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include <canvas/debug.hxx>
-+
-+#ifndef INCLUDED_RTL_MATH_HXX
-+#include <rtl/math.hxx>
-+#endif
-+
-+#ifndef _COM_SUN_STAR_RENDERING_TEXTDIRECTION_HPP__
-+#include <com/sun/star/rendering/TextDirection.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_RENDERING_TEXTURINGMODE_HPP_
-+#include <com/sun/star/rendering/TexturingMode.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_RENDERING_PATHCAPTYPE_HPP_
-+#include <com/sun/star/rendering/PathCapType.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_RENDERING_PATHJOINTYPE_HPP_
-+#include <com/sun/star/rendering/PathJoinType.hpp>
-+#endif
-+
-+#ifndef _TL_POLY_HXX
-+#include <tools/poly.hxx>
-+#endif
-+#ifndef _SV_WINDOW_HXX
-+#include <vcl/window.hxx>
-+#endif
-+#ifndef _SV_BITMAPEX_HXX
-+#include <vcl/bitmapex.hxx>
-+#endif
-+#ifndef _SV_BMPACC_HXX
-+#include <vcl/bmpacc.hxx>
-+#endif
-+#ifndef _VCL_CANVASTOOLS_HXX
-+#include <vcl/canvastools.hxx>
-+#endif
-+
-+#ifndef _BGFX_MATRIX_B2DHOMMATRIX_HXX
-+#include <basegfx/matrix/b2dhommatrix.hxx>
-+#endif
-+#ifndef _BGFX_RANGE_B2DRECTANGLE_HXX
-+#include <basegfx/range/b2drectangle.hxx>
-+#endif
-+#ifndef _BGFX_POINT_B2DPOINT_HXX
-+#include <basegfx/point/b2dpoint.hxx>
-+#endif
-+#ifndef _BGFX_VECTOR_B2DSIZE_HXX
-+#include <basegfx/vector/b2dsize.hxx>
-+#endif
-+#ifndef _BGFX_POLYGON_B2DPOLYGON_HXX
-+#include <basegfx/polygon/b2dpolygon.hxx>
-+#endif
-+#ifndef _BGFX_POLYGON_B2DPOLYGONTOOLS_HXX
-+#include <basegfx/polygon/b2dpolygontools.hxx>
-+#endif
-+#ifndef _BGFX_POLYGON_B2DPOLYPOLYGONTOOLS_HXX
-+#include <basegfx/polygon/b2dpolypolygontools.hxx>
-+#endif
-+#ifndef _BGFX_POLYGON_B2DLINEGEOMETRY_HXX
-+#include <basegfx/polygon/b2dlinegeometry.hxx>
-+#endif
-+#ifndef _BGFX_TOOLS_CANVASTOOLS_HXX
-+#include <basegfx/tools/canvastools.hxx>
-+#endif
-+#ifndef _BGFX_NUMERIC_FTOOLS_HXX
-+#include <basegfx/numeric/ftools.hxx>
-+#endif
-+
-+#include <utility>
-+
-+#include <comphelper/sequence.hxx>
-+#include <canvas/canvastools.hxx>
-+
-+#include "cairo_textlayout.hxx"
-+#include "cairo_parametricpolypolygon.hxx"
-+#include "cairo_canvashelper.hxx"
-+#include "cairo_canvasbitmap.hxx"
-+#include "cairo_impltools.hxx"
-+#include "cairo_canvasfont.hxx"
-+#include "cairo_linepolypolygon.hxx"
-+
-+using namespace ::com::sun::star;
-+using namespace ::cairo;
-+
-+namespace vclcanvas
-+{
-+ using namespace tools;
-+
-+ namespace
-+ {
-+ ::basegfx::tools::B2DLineJoin b2DJoineFromJoin( sal_Int8 nJoinType )
-+ {
-+ switch( nJoinType )
-+ {
-+ case rendering::PathJoinType::NONE:
-+ return ::basegfx::tools::B2DLINEJOIN_NONE;
-+
-+ case rendering::PathJoinType::MITER:
-+ return ::basegfx::tools::B2DLINEJOIN_MITER;
-+
-+ case rendering::PathJoinType::ROUND:
-+ return ::basegfx::tools::B2DLINEJOIN_ROUND;
-+
-+ case rendering::PathJoinType::BEVEL:
-+ return ::basegfx::tools::B2DLINEJOIN_BEVEL;
-+
-+ default:
-+ ENSURE_AND_THROW( false,
-+ "b2DJoineFromJoin(): Unexpected join type" );
-+ }
-+
-+ return ::basegfx::tools::B2DLINEJOIN_NONE;
-+ }
-+ }
-+
-+ CanvasHelper::CanvasHelper() :
-+ mxDevice(),
-+ mpCairo( NULL ),
-+ mp2ndOutDev()
-+ {
-+ }
-+
-+ void CanvasHelper::disposing()
-+ {
-+ printf("canvas helper disposing\n");
-+ mxDevice.reset();
-+ mp2ndOutDev.reset();
-+ }
-+
-+ void CanvasHelper::setGraphicDevice( const WindowGraphicDevice::ImplRef& rDevice )
-+ {
-+ mxDevice = rDevice;
-+ }
-+
-+ void CanvasHelper::setCairo( Cairo* pCairo )
-+ {
-+ mpCairo = pCairo;
-+ }
-+
-+ void CanvasHelper::setBackgroundOutDev( const OutDevProviderSharedPtr& rOutDev )
-+ {
-+ mp2ndOutDev = rOutDev;
-+ }
-+
-+ void CanvasHelper::drawPoint( const rendering::XCanvas& rCanvas,
-+ const geometry::RealPoint2D& aPoint,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState )
-+ {
-+ // rodo TODO
-+// // are we disposed?
-+// if( mpCairo )
-+// {
-+// // nope, render
-+// setupOutDevState( viewState, renderState, LINE_COLOR );
-+
-+// const Point aOutPoint( tools::mapRealPoint2D( aPoint,
-+// viewState, renderState ) );
-+// // TODO(F1): alpha
-+// mpOutDev->getOutDev().DrawPixel( aOutPoint );
-+
-+// if( mp2ndOutDev.get() )
-+// mp2ndOutDev->getOutDev().DrawPixel( aOutPoint );
-+// }
-+ }
-+
-+ void CanvasHelper::useStates( const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState,
-+ bool setColor )
-+ {
-+ Matrix aViewMatrix;
-+ Matrix aRenderMatrix;
-+ Matrix aCombinedMatrix;
-+
-+ cairo_matrix_init( &aViewMatrix,
-+ viewState.AffineTransform.m00, viewState.AffineTransform.m10, viewState.AffineTransform.m01,
-+ viewState.AffineTransform.m11, viewState.AffineTransform.m02, viewState.AffineTransform.m12);
-+ cairo_matrix_init( &aRenderMatrix,
-+ renderState.AffineTransform.m00, renderState.AffineTransform.m10, renderState.AffineTransform.m01,
-+ renderState.AffineTransform.m11, renderState.AffineTransform.m02, renderState.AffineTransform.m12);
-+ cairo_matrix_multiply( &aCombinedMatrix, &aRenderMatrix, &aViewMatrix);
-+
-+ if( viewState.Clip.is() ) {
-+ printf ("view clip\n");
-+
-+ cairo_set_matrix( mpCairo, &aViewMatrix );
-+ drawPolyPolygonPath( viewState.Clip, Clip, mxDevice );
-+ }
-+
-+ cairo_set_matrix( mpCairo, &aCombinedMatrix );
-+
-+ if( renderState.Clip.is() ) {
-+ printf ("render clip BEGIN\n");
-+
-+ drawPolyPolygonPath( renderState.Clip, Clip, mxDevice );
-+ printf ("render clip END\n");
-+ }
-+
-+ if( setColor ) {
-+ if( renderState.DeviceColor.getLength() > 3 )
-+ cairo_set_source_rgba( mpCairo,
-+ renderState.DeviceColor [0],
-+ renderState.DeviceColor [1],
-+ renderState.DeviceColor [2],
-+ renderState.DeviceColor [3] );
-+ else if (renderState.DeviceColor.getLength() == 3)
-+ cairo_set_source_rgb( mpCairo,
-+ renderState.DeviceColor [0],
-+ renderState.DeviceColor [1],
-+ renderState.DeviceColor [2] );
-+ }
-+ }
-+
-+ void CanvasHelper::drawLine( const rendering::XCanvas& rCanvas,
-+ const geometry::RealPoint2D& aStartRealPoint2D,
-+ const geometry::RealPoint2D& aEndRealPoint2D,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState )
-+ {
-+ if(mpCairo) {
-+ cairo_save( mpCairo );
-+
-+ useStates( viewState, renderState, true );
-+
-+ cairo_set_line_width( mpCairo, 1 );
-+ cairo_move_to( mpCairo, aStartRealPoint2D.X, aStartRealPoint2D.Y );
-+ cairo_line_to( mpCairo, aEndRealPoint2D.X, aEndRealPoint2D.Y );
-+ cairo_stroke( mpCairo );
-+
-+ cairo_restore( mpCairo );
-+ }
-+ }
-+
-+ void CanvasHelper::drawBezier( const rendering::XCanvas& rCanvas,
-+ const geometry::RealBezierSegment2D& aBezierSegment,
-+ const geometry::RealPoint2D& _aEndPoint,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState )
-+ {
-+ if( mpCairo )
-+ cairo_save( mpCairo );
-+
-+ useStates( viewState, renderState, true );
-+ cairo_set_line_width( mpCairo, 1 );
-+ cairo_move_to( mpCairo, aBezierSegment.Px, aBezierSegment.Py );
-+ cairo_curve_to( mpCairo, aBezierSegment.C1x, aBezierSegment.C1y, aBezierSegment.C2x, aBezierSegment.C2y, _aEndPoint.X, _aEndPoint.Y );
-+ cairo_stroke( mpCairo );
-+
-+ cairo_restore( mpCairo );
-+ }
-+
-+ uno::Reference< rendering::XCachedPrimitive > CanvasHelper::drawPolyPolygon( const rendering::XCanvas& rCanvas,
-+ const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState )
-+ {
-+ if( mpCairo ) {
-+ cairo_save( mpCairo );
-+
-+ useStates( viewState, renderState, true );
-+ cairo_set_line_width( mpCairo, 1 );
-+ drawPolyPolygonPath( xPolyPolygon, Stroke, mxDevice );
-+
-+ cairo_restore( mpCairo );
-+ }
-+
-+ // TODO(P1): Provide caching here.
-+ return uno::Reference< rendering::XCachedPrimitive >(NULL);
-+ }
-+
-+ uno::Reference< rendering::XCachedPrimitive > CanvasHelper::strokePolyPolygon( const rendering::XCanvas& rCanvas,
-+ const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState,
-+ const rendering::StrokeAttributes& strokeAttributes )
-+ {
-+ cairo_save( mpCairo );
-+
-+ useStates( viewState, renderState, true );
-+
-+ cairo_set_line_width( mpCairo, strokeAttributes.StrokeWidth );
-+ cairo_set_miter_limit( mpCairo, strokeAttributes.MiterLimit );
-+
-+ // FIXME: cairo doesn't handle end cap so far (rodo)
-+ switch( strokeAttributes.StartCapType ) {
-+ case rendering::PathCapType::BUTT:
-+ cairo_set_line_cap( mpCairo, CAIRO_LINE_CAP_BUTT );
-+ break;
-+ case rendering::PathCapType::ROUND:
-+ cairo_set_line_cap( mpCairo, CAIRO_LINE_CAP_ROUND );
-+ break;
-+ case rendering::PathCapType::SQUARE:
-+ cairo_set_line_cap( mpCairo, CAIRO_LINE_CAP_SQUARE );
-+ break;
-+ }
-+
-+ switch( strokeAttributes.JoinType ) {
-+ // cairo doesn't have join type NONE so we use MITTER as it's pretty close
-+ case rendering::PathJoinType::NONE:
-+ case rendering::PathJoinType::MITER:
-+ cairo_set_line_join( mpCairo, CAIRO_LINE_JOIN_MITER );
-+ break;
-+ case rendering::PathJoinType::ROUND:
-+ cairo_set_line_join( mpCairo, CAIRO_LINE_JOIN_ROUND );
-+ break;
-+ case rendering::PathJoinType::BEVEL:
-+ cairo_set_line_join( mpCairo, CAIRO_LINE_JOIN_BEVEL );
-+ break;
-+ }
-+
-+ if( strokeAttributes.DashArray.getLength() > 0 ) {
-+ double* pDashArray = new double[ strokeAttributes.DashArray.getLength() ];
-+ for( sal_uInt32 i=0; i<strokeAttributes.DashArray.getLength(); i++ )
-+ pDashArray[i]=strokeAttributes.DashArray[i];
-+ cairo_set_dash( mpCairo, pDashArray, strokeAttributes.DashArray.getLength(), 0 );
-+ delete[] pDashArray;
-+ }
-+
-+ // TODO(rodo) use LineArray of strokeAttributes
-+
-+ drawPolyPolygonPath( xPolyPolygon, Stroke, mxDevice );
-+
-+ cairo_restore( mpCairo );
-+
-+ // TODO(P1): Provide caching here.
-+ return uno::Reference< rendering::XCachedPrimitive >(NULL);
-+ }
-+
-+ uno::Reference< rendering::XCachedPrimitive > CanvasHelper::strokeTexturedPolyPolygon( const rendering::XCanvas& rCanvas,
-+ const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState,
-+ const uno::Sequence< rendering::Texture >& textures,
-+ const rendering::StrokeAttributes& strokeAttributes )
-+ {
-+ return uno::Reference< rendering::XCachedPrimitive >(NULL);
-+ }
-+
-+ uno::Reference< rendering::XCachedPrimitive > CanvasHelper::strokeTextureMappedPolyPolygon( const rendering::XCanvas& rCanvas,
-+ const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState,
-+ const uno::Sequence< rendering::Texture >& textures,
-+ const uno::Reference< geometry::XMapping2D >& xMapping,
-+ const rendering::StrokeAttributes& strokeAttributes )
-+ {
-+ return uno::Reference< rendering::XCachedPrimitive >(NULL);
-+ }
-+
-+ uno::Reference< rendering::XPolyPolygon2D > CanvasHelper::queryStrokeShapes( const rendering::XCanvas& rCanvas,
-+ const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState,
-+ const rendering::StrokeAttributes& strokeAttributes )
-+ {
-+ return uno::Reference< rendering::XPolyPolygon2D >(NULL);
-+ }
-+
-+ uno::Reference< rendering::XCachedPrimitive > CanvasHelper::fillPolyPolygon( const rendering::XCanvas& rCanvas,
-+ const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState )
-+ {
-+ if( mpCairo ) {
-+ cairo_save( mpCairo );
-+
-+ useStates( viewState, renderState, true );
-+ drawPolyPolygonPath( xPolyPolygon, Fill, mxDevice );
-+
-+ cairo_restore( mpCairo );
-+ }
-+
-+ // TODO(P1): Provide caching here.
-+ return uno::Reference< rendering::XCachedPrimitive >(NULL);
-+ }
-+
-+ uno::Reference< rendering::XCachedPrimitive > CanvasHelper::fillTextureMappedPolyPolygon( const rendering::XCanvas& rCanvas,
-+ const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState,
-+ const uno::Sequence< rendering::Texture >& textures,
-+ const uno::Reference< geometry::XMapping2D >& xMapping )
-+ {
-+ return uno::Reference< rendering::XCachedPrimitive >(NULL);
-+ }
-+
-+ uno::Reference< rendering::XCanvasFont > CanvasHelper::createFont( const rendering::XCanvas& rCanvas,
-+ const rendering::FontRequest& fontRequest,
-+ const uno::Sequence< beans::PropertyValue >& extraFontProperties,
-+ const geometry::Matrix2D& fontMatrix )
-+ {
-+ // rodo TODO
-+ if( mpCairo )
-+ {
-+ // TODO(F2): font properties and font matrix
-+ return uno::Reference< rendering::XCanvasFont >(
-+ new CanvasFont( fontRequest, extraFontProperties, fontMatrix, mpCairo ) );
-+ }
-+
-+ return uno::Reference< rendering::XCanvasFont >();
-+ }
-+
-+ uno::Sequence< rendering::FontInfo > CanvasHelper::queryAvailableFonts( const rendering::XCanvas& rCanvas,
-+ const rendering::FontInfo& aFilter,
-+ const uno::Sequence< beans::PropertyValue >& aFontProperties )
-+ {
-+ // TODO
-+ return uno::Sequence< rendering::FontInfo >();
-+ }
-+
-+ uno::Reference< rendering::XCachedPrimitive > CanvasHelper::drawText( const rendering::XCanvas& rCanvas,
-+ const rendering::StringContext& text,
-+ const uno::Reference< rendering::XCanvasFont >& xFont,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState,
-+ sal_Int8 textDirection )
-+ {
-+ if (mpCairo) {
-+ cairo_save( mpCairo );
-+
-+ useStates( viewState, renderState, true );
-+
-+ // fixme (rodo) - use xFont
-+ cairo_select_font_face( mpCairo, "Sans", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL );
-+ cairo_show_text( mpCairo, ::rtl::OUStringToOString( text.Text, RTL_TEXTENCODING_UTF8 ) );
-+
-+ cairo_restore( mpCairo );
-+ }
-+
-+
-+ return uno::Reference< rendering::XCachedPrimitive >(NULL);
-+ }
-+
-+ uno::Reference< rendering::XCachedPrimitive > CanvasHelper::drawTextLayout( const rendering::XCanvas& rCanvas,
-+ const uno::Reference< rendering::XTextLayout >& xLayoutedText,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState )
-+ {
-+ CHECK_AND_THROW( xLayoutedText.is(),
-+ "CanvasHelper::drawTextLayout(): layout is NULL");
-+
-+ if (mpCairo) {
-+ cairo_save( mpCairo );
-+
-+ uno::Reference< lang::XServiceInfo > xRef( xLayoutedText,
-+ uno::UNO_QUERY );
-+
-+ TextLayout* pTextLayout = NULL;
-+
-+ if( xRef.is() &&
-+ xRef->getImplementationName().equals( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(TEXTLAYOUT_IMPLEMENTATION_NAME))) ) {
-+ // TODO(P2): Maybe use dynamic_cast here (saves us a queryInterface)
-+ pTextLayout = static_cast<TextLayout*>(xLayoutedText.get());
-+ } else {
-+ CHECK_AND_THROW( false,
-+ "CanvasHelper::drawTextLayout(): TextLayout not compatible with this canvas" );
-+ }
-+
-+ useStates( viewState, renderState, true );
-+
-+ pTextLayout->draw( mpCairo );
-+
-+ cairo_restore( mpCairo );
-+ }
-+
-+ return uno::Reference< rendering::XCachedPrimitive >(NULL);
-+ }
-+
-+ uno::Reference< rendering::XCachedPrimitive > CanvasHelper::implDrawBitmap( const rendering::XCanvas& rCanvas,
-+ const uno::Reference< rendering::XBitmap >& xBitmap,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState,
-+ bool bModulateColors )
-+ {
-+ unsigned char* data;
-+ Surface* pSurface = tools::surfaceFromXBitmap( xBitmap, mxDevice, data );
-+
-+ if( mpCairo && pSurface )
-+ {
-+ cairo_save( mpCairo );
-+
-+ useStates( viewState, renderState, true );
-+
-+ cairo_set_source_surface( mpCairo, pSurface, 0, 0 );
-+ cairo_paint( mpCairo );
-+ cairo_restore( mpCairo );
-+ }
-+
-+ if( pSurface )
-+ cairo_surface_destroy( pSurface );
-+
-+ if( data )
-+ free( data );
-+
-+ return uno::Reference< rendering::XCachedPrimitive >(NULL);
-+ }
-+
-+ uno::Reference< rendering::XCachedPrimitive > CanvasHelper::drawBitmap( const rendering::XCanvas& rCanvas,
-+ const uno::Reference< rendering::XBitmap >& xBitmap,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState )
-+ {
-+ return implDrawBitmap( rCanvas,
-+ xBitmap,
-+ viewState,
-+ renderState,
-+ false );
-+ }
-+
-+ uno::Reference< rendering::XCachedPrimitive > CanvasHelper::drawBitmapModulated( const rendering::XCanvas& rCanvas,
-+ const uno::Reference< rendering::XBitmap >& xBitmap,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState )
-+ {
-+ return implDrawBitmap( rCanvas,
-+ xBitmap,
-+ viewState,
-+ renderState,
-+ true );
-+ }
-+
-+ uno::Reference< rendering::XGraphicDevice > CanvasHelper::getDevice()
-+ {
-+ return mxDevice.get();
-+ }
-+
-+ void CanvasHelper::copyRect( const rendering::XCanvas& rCanvas,
-+ const uno::Reference< rendering::XBitmapCanvas >& sourceCanvas,
-+ const geometry::RealRectangle2D& sourceRect,
-+ const rendering::ViewState& sourceViewState,
-+ const rendering::RenderState& sourceRenderState,
-+ const geometry::RealRectangle2D& destRect,
-+ const rendering::ViewState& destViewState,
-+ const rendering::RenderState& destRenderState )
-+ {
-+ // TODO(F1)
-+ }
-+
-+ geometry::IntegerSize2D CanvasHelper::getSize()
-+ {
-+ if( !mxDevice.get() )
-+ return geometry::IntegerSize2D(); // we're disposed
-+
-+ Size aSize = mxDevice->getSurfaceSize();
-+
-+ return geometry::IntegerSize2D( aSize.Width(), aSize.Height() );
-+ }
-+
-+ uno::Reference< rendering::XBitmap > CanvasHelper::getScaledBitmap( const geometry::RealSize2D& newSize,
-+ sal_Bool beFast )
-+ {
-+ Surface *pSurface = cairo_get_target( mpCairo );
-+ return uno::Reference< rendering::XBitmap >( new CanvasBitmap( newSize, pSurface, mxDevice, beFast ) );
-+ }
-+
-+ uno::Sequence< sal_Int8 > CanvasHelper::getData( const geometry::IntegerRectangle2D& rect )
-+ {
-+ printf ("CanvasHelper::getData returns empty sequence, TODO\n");
-+
-+ return uno::Sequence< sal_Int8 >();
-+ }
-+
-+ void CanvasHelper::setData( const uno::Sequence< sal_Int8 >& data,
-+ const geometry::IntegerRectangle2D& rect )
-+ {
-+ printf ("canvas helper set data called, TODO\n");
-+ }
-+
-+ void CanvasHelper::setPixel( const uno::Sequence< sal_Int8 >& color,
-+ const geometry::IntegerPoint2D& pos )
-+ {
-+ // rodo TODO
-+ printf ("CanvasHelper::setPixel called TODO\n");
-+// if( !mpOutDev.get() )
-+// return; // we're disposed
-+
-+// OutputDevice& rOutDev( mpOutDev->getOutDev() );
-+
-+// const Size aBmpSize( rOutDev.GetOutputSizePixel() );
-+
-+// CHECK_AND_THROW( pos.X >= 0 && pos.X < aBmpSize.Width(),
-+// "CanvasHelper::setPixel: X coordinate out of bounds" );
-+// CHECK_AND_THROW( pos.Y >= 0 && pos.Y < aBmpSize.Height(),
-+// "CanvasHelper::setPixel: Y coordinate out of bounds" );
-+// CHECK_AND_THROW( color.getLength() > 3,
-+// "CanvasHelper::setPixel: not enough color components" );
-+
-+// tools::OutDevStateKeeper aStateKeeper( mpProtectedOutDev );
-+
-+// rOutDev.EnableMapMode( FALSE );
-+
-+// // TODO(F2): Support alpha canvas here
-+// rOutDev.DrawPixel( ::vcl::unotools::pointFromIntegerPoint2D( pos ),
-+// ::vcl::unotools::sequenceToColor(
-+// mxDevice.getRef(),
-+// color ) );
-+ }
-+
-+ uno::Sequence< sal_Int8 > CanvasHelper::getPixel( const geometry::IntegerPoint2D& pos )
-+ {
-+ printf ("CanvasHelper::getPixel called TODO\n");
-+ return uno::Sequence< sal_Int8 >();
-+
-+// if( !mpOutDev.get() )
-+// return uno::Sequence< sal_Int8 >(); // we're disposed
-+
-+// OutputDevice& rOutDev( mpOutDev->getOutDev() );
-+
-+// const Size aBmpSize( rOutDev.GetOutputSizePixel() );
-+
-+// CHECK_AND_THROW( pos.X >= 0 && pos.X < aBmpSize.Width(),
-+// "CanvasHelper::getPixel: X coordinate out of bounds" );
-+// CHECK_AND_THROW( pos.Y >= 0 && pos.Y < aBmpSize.Height(),
-+// "CanvasHelper::getPixel: Y coordinate out of bounds" );
-+
-+// tools::OutDevStateKeeper aStateKeeper( mpProtectedOutDev );
-+
-+// rOutDev.EnableMapMode( FALSE );
-+
-+// // TODO(F2): Support alpha canvas here
-+// return ::vcl::unotools::colorToIntSequence( mxDevice.getRef(),
-+// rOutDev.GetPixel(
-+// ::vcl::unotools::pointFromIntegerPoint2D( pos ) ) );
-+ }
-+
-+ uno::Reference< rendering::XBitmapPalette > CanvasHelper::getPalette()
-+ {
-+ // TODO(F1): Provide palette support
-+ return uno::Reference< rendering::XBitmapPalette >();
-+ }
-+
-+ rendering::IntegerBitmapLayout CanvasHelper::getMemoryLayout()
-+ {
-+ // TODO(F1): finish that one
-+ rendering::IntegerBitmapLayout aLayout;
-+
-+ printf ("CanvasHelper::getMemoryLayout called, TODO\n");
-+
-+ return aLayout;
-+
-+
-+// if( !mpOutDev.get() )
-+// return aLayout; // we're disposed
-+
-+// const Size aBmpSize( mpOutDev->getOutDev().GetOutputSizePixel() );
-+
-+// aLayout.ScanLines = aBmpSize.Height();
-+// aLayout.ScanLineBytes = aBmpSize.Width()*4;
-+// aLayout.ScanLineStride = aLayout.ScanLineBytes;
-+// aLayout.Format = 0;
-+// aLayout.NumComponents = 4;
-+// aLayout.ComponentMasks = uno::Sequence<sal_Int64>();
-+// aLayout.Endianness = 0;
-+// aLayout.IsPseudoColor = false;
-+
-+// return aLayout;
-+ }
-+
-+ bool CanvasHelper::repaint( const GraphicObjectSharedPtr& rGrf,
-+ const ::Point& rPt,
-+ const ::Size& rSz,
-+ const GraphicAttr& rAttr ) const
-+ {
-+ ENSURE_AND_RETURN( rGrf,
-+ "CanvasHelper::repaint(): Invalid Graphic" );
-+
-+ printf ("repaint called, TODO\n");
-+
-+// if( !mpOutDev )
-+// return false; // disposed
-+// else
-+// return rGrf->Draw( &mpOutDev->getOutDev(), rPt, rSz, &rAttr );
-+ }
-+}
diff --git a/patches/cairo/canvas-source-cairo-cairo_canvashelper-cxx.diff b/patches/cairo/canvas-source-cairo-cairo_canvashelper-cxx.diff
deleted file mode 100644
index 83765745f..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_canvashelper-cxx.diff
+++ /dev/null
@@ -1,1282 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_canvashelper.cxx
-@@ -0,0 +1,1279 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#include <canvas/debug.hxx>
-+
-+#include <rtl/logfile.hxx>
-+#include <rtl/math.hxx>
-+
-+#include <com/sun/star/lang/XUnoTunnel.hpp>
-+
-+#include <com/sun/star/rendering/IntegerBitmapFormat.hpp>
-+#include <com/sun/star/rendering/Endianness.hpp>
-+#include <com/sun/star/rendering/TexturingMode.hpp>
-+#include <com/sun/star/rendering/CompositeOperation.hpp>
-+#include <com/sun/star/rendering/RepaintResult.hpp>
-+#include <com/sun/star/rendering/PathCapType.hpp>
-+#include <com/sun/star/rendering/PathJoinType.hpp>
-+
-+#include <basegfx/matrix/b2dhommatrix.hxx>
-+#include <basegfx/point/b2dpoint.hxx>
-+#include <basegfx/polygon/b2dpolygon.hxx>
-+#include <basegfx/polygon/b2dpolypolygon.hxx>
-+#include <basegfx/tools/canvastools.hxx>
-+
-+#include <comphelper/sequence.hxx>
-+
-+#include <canvas/canvastools.hxx>
-+#include <canvas/parametricpolypolygon.hxx>
-+
-+#include <vcl/canvastools.hxx>
-+#include <vcl/bitmapex.hxx>
-+#include <vcl/bmpacc.hxx>
-+#include <vcl/virdev.hxx>
-+
-+#include "cairo_spritecanvas.hxx"
-+#include "cairo_cachedbitmap.hxx"
-+#include "cairo_canvashelper.hxx"
-+#include "cairo_canvasbitmap.hxx"
-+
-+#include <algorithm>
-+
-+using namespace ::cairo;
-+using namespace ::com::sun::star;
-+
-+namespace cairocanvas
-+{
-+ CanvasHelper::CanvasHelper() :
-+ mpDevice( NULL ),
-+ mbHaveAlpha(),
-+ mpCairo( NULL ),
-+ mpSurface( NULL ),
-+ mpVirtualDevice( NULL )
-+ {
-+ }
-+
-+ void CanvasHelper::disposing()
-+ {
-+ mpDevice = NULL;
-+
-+ if( mpVirtualDevice ) {
-+ delete mpVirtualDevice;
-+ mpVirtualDevice = NULL;
-+ }
-+
-+ if( mpCairo )
-+ {
-+ cairo_destroy( mpCairo );
-+ mpCairo = NULL;
-+ }
-+
-+ if( mpSurface ) {
-+ mpSurface->Unref();
-+ mpSurface = NULL;
-+ }
-+ }
-+
-+ void CanvasHelper::init( const ::basegfx::B2ISize& rSize,
-+ SpriteCanvas& rDevice,
-+ bool bHasAlpha )
-+ {
-+ mpDevice = &rDevice;
-+ mbHaveAlpha = bHasAlpha;
-+ }
-+
-+ void CanvasHelper::setSurface( Surface* pSurface )
-+ {
-+ if( mpSurface ) {
-+ mpSurface->Unref();
-+ }
-+
-+ if( mpVirtualDevice ) {
-+ delete mpVirtualDevice;
-+ mpVirtualDevice = NULL;
-+ }
-+
-+ mpSurface = pSurface;
-+ mpSurface->Ref();
-+
-+ if( mpCairo )
-+ {
-+ cairo_destroy( mpCairo );
-+ }
-+
-+ mpCairo = pSurface->getCairo();
-+ }
-+
-+ void CanvasHelper::useStates( const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState,
-+ bool setColor )
-+ {
-+ Matrix aViewMatrix;
-+ Matrix aRenderMatrix;
-+ Matrix aCombinedMatrix;
-+
-+ cairo_matrix_init( &aViewMatrix,
-+ viewState.AffineTransform.m00, viewState.AffineTransform.m10, viewState.AffineTransform.m01,
-+ viewState.AffineTransform.m11, viewState.AffineTransform.m02, viewState.AffineTransform.m12);
-+ cairo_matrix_init( &aRenderMatrix,
-+ renderState.AffineTransform.m00, renderState.AffineTransform.m10, renderState.AffineTransform.m01,
-+ renderState.AffineTransform.m11, renderState.AffineTransform.m02, renderState.AffineTransform.m12);
-+ cairo_matrix_multiply( &aCombinedMatrix, &aRenderMatrix, &aViewMatrix);
-+
-+ if( viewState.Clip.is() ) {
-+ OSL_TRACE ("view clip\n");
-+
-+ aViewMatrix.x0 = round( aViewMatrix.x0 );
-+ aViewMatrix.y0 = round( aViewMatrix.y0 );
-+ cairo_set_matrix( mpCairo, &aViewMatrix );
-+ drawPolyPolygonPath( viewState.Clip, Clip );
-+ }
-+
-+ aCombinedMatrix.x0 = round( aCombinedMatrix.x0 );
-+ aCombinedMatrix.y0 = round( aCombinedMatrix.y0 );
-+ cairo_set_matrix( mpCairo, &aCombinedMatrix );
-+
-+ if( renderState.Clip.is() ) {
-+ OSL_TRACE ("render clip BEGIN\n");
-+
-+ drawPolyPolygonPath( renderState.Clip, Clip );
-+ OSL_TRACE ("render clip END\n");
-+ }
-+
-+ if( setColor ) {
-+ if( renderState.DeviceColor.getLength() > 3 )
-+ cairo_set_source_rgba( mpCairo,
-+ renderState.DeviceColor [0],
-+ renderState.DeviceColor [1],
-+ renderState.DeviceColor [2],
-+ renderState.DeviceColor [3] );
-+ else if (renderState.DeviceColor.getLength() == 3)
-+ cairo_set_source_rgb( mpCairo,
-+ renderState.DeviceColor [0],
-+ renderState.DeviceColor [1],
-+ renderState.DeviceColor [2] );
-+ }
-+ }
-+
-+ void CanvasHelper::drawPoint( const rendering::XCanvas* pCanvas,
-+ const geometry::RealPoint2D& aPoint,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState )
-+ {
-+ }
-+
-+ void CanvasHelper::drawLine( const rendering::XCanvas* pCanvas,
-+ const geometry::RealPoint2D& aStartPoint,
-+ const geometry::RealPoint2D& aEndPoint,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState )
-+ {
-+ if( mpCairo ) {
-+ cairo_save( mpCairo );
-+
-+ cairo_set_line_width( mpCairo, 1 );
-+
-+ useStates( viewState, renderState, true );
-+
-+ cairo_move_to( mpCairo, aStartPoint.X + 0.5, aStartPoint.Y + 0.5 );
-+ cairo_line_to( mpCairo, aEndPoint.X + 0.5, aEndPoint.Y + 0.5 );
-+ cairo_stroke( mpCairo );
-+
-+ cairo_restore( mpCairo );
-+ }
-+ }
-+
-+ void CanvasHelper::drawBezier( const rendering::XCanvas* pCanvas,
-+ const geometry::RealBezierSegment2D& aBezierSegment,
-+ const geometry::RealPoint2D& aEndPoint,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState )
-+ {
-+ }
-+
-+#define CANVASBITMAP_IMPLEMENTATION_NAME "CairoCanvas::CanvasBitmap"
-+#define PARAMETRICPOLYPOLYGON_IMPLEMENTATION_NAME "Canvas::ParametricPolyPolygon"
-+
-+ static Surface* surfaceFromXBitmap( const uno::Reference< rendering::XBitmap >& xBitmap, bool &bHasAlpha )
-+ {
-+ CanvasBitmap* pBitmapImpl = dynamic_cast< CanvasBitmap* >( xBitmap.get() );
-+
-+ if( pBitmapImpl ) {
-+ // TODO(Q1): Maybe use dynamic_cast here
-+ bHasAlpha = pBitmapImpl->hasAlpha();
-+
-+ return pBitmapImpl->getSurface();
-+ }
-+
-+ return NULL;
-+ }
-+
-+ static ::BitmapEx bitmapExFromXBitmap( const uno::Reference< rendering::XBitmap >& xBitmap )
-+ {
-+ uno::Reference< lang::XUnoTunnel > xTunnel( xBitmap, uno::UNO_QUERY );
-+ if( xTunnel.is() )
-+ {
-+ sal_Int64 nPtr = xTunnel->getSomething( vcl::unotools::getTunnelIdentifier( vcl::unotools::Id_BitmapEx ) );
-+ if( nPtr )
-+ return BitmapEx( *(BitmapEx*)nPtr );
-+ }
-+
-+ // TODO(F1): extract pixel from XBitmap interface
-+ ENSURE_AND_THROW( false,
-+ "bitmapExFromXBitmap(): could not extract BitmapEx" );
-+
-+ return ::BitmapEx();
-+ }
-+
-+ static bool readAlpha( BitmapReadAccess* pAlphaReadAcc, long nY, const long nWidth, unsigned char* data, long nOff )
-+ {
-+ bool bIsAlpha = false;
-+ long nX;
-+ int nAlpha;
-+ Scanline pReadScan;
-+
-+ nOff += 3;
-+
-+ switch( pAlphaReadAcc->GetScanlineFormat() ) {
-+ case BMP_FORMAT_8BIT_TC_MASK:
-+ pReadScan = pAlphaReadAcc->GetScanline( nY );
-+ for( nX = 0; nX < nWidth; nX++ ) {
-+ nAlpha = data[ nOff ] = 255 - ( *pReadScan++ );
-+ if( nAlpha != 255 )
-+ bIsAlpha = true;
-+ nOff += 4;
-+ }
-+ break;
-+ case BMP_FORMAT_8BIT_PAL:
-+ pReadScan = pAlphaReadAcc->GetScanline( nY );
-+ for( nX = 0; nX < nWidth; nX++ ) {
-+ nAlpha = data[ nOff ] = 255 - ( pAlphaReadAcc->GetPaletteColor( *pReadScan++ ).GetBlue() );
-+ if( nAlpha != 255 )
-+ bIsAlpha = true;
-+ nOff += 4;
-+ }
-+ break;
-+ default:
-+ OSL_TRACE( "fallback to GetColor for alpha - slow, format: %d\n", pAlphaReadAcc->GetScanlineFormat() );
-+ for( nX = 0; nX < nWidth; nX++ ) {
-+ nAlpha = data[ nOff ] = 255 - pAlphaReadAcc->GetColor( nY, nX ).GetBlue();
-+ if( nAlpha != 255 )
-+ bIsAlpha = true;
-+ nOff += 4;
-+ }
-+ }
-+
-+ return bIsAlpha;
-+ }
-+
-+ static Surface* surfaceFromXBitmap( const uno::Reference< rendering::XBitmap >& xBitmap, const DeviceRef& rDevice, unsigned char*& data, bool& bHasAlpha )
-+ {
-+ Surface* pSurface = surfaceFromXBitmap( xBitmap, bHasAlpha );
-+ if( pSurface ) {
-+ pSurface->Ref();
-+ data = NULL;
-+ } else {
-+ BitmapEx aBmpEx = bitmapExFromXBitmap(xBitmap);
-+ Bitmap aBitmap = aBmpEx.GetBitmap();
-+ AlphaMask aAlpha = aBmpEx.GetAlpha();
-+
-+ // there's no pixmap for alpha bitmap. we might still
-+ // use rgb pixmap and only access alpha pixels the
-+ // slow way. now we just speedup rgb bitmaps
-+ if( !aBmpEx.IsTransparent() && !aBmpEx.IsAlpha() ) {
-+ pSurface = rDevice->getSurface( aBitmap );
-+ data = NULL;
-+ bHasAlpha = false;
-+ }
-+
-+ if( !pSurface ) {
-+
-+ BitmapReadAccess* pBitmapReadAcc = aBitmap.AcquireReadAccess();
-+ BitmapReadAccess* pAlphaReadAcc = NULL;
-+ const long nWidth = pBitmapReadAcc->Width();
-+ const long nHeight = pBitmapReadAcc->Height();
-+ long nX, nY;
-+ bool bIsAlpha = false;
-+
-+ if( aBmpEx.IsTransparent() || aBmpEx.IsAlpha() )
-+ pAlphaReadAcc = aAlpha.AcquireReadAccess();
-+
-+ data = (unsigned char*) malloc( nWidth*nHeight*4 );
-+
-+ long nOff = 0;
-+ Color aColor;
-+ unsigned int nAlpha = 255;
-+
-+ for( nY = 0; nY < nHeight; nY++ ) {
-+ Scanline pReadScan;
-+
-+ switch( pBitmapReadAcc->GetScanlineFormat() ) {
-+ case BMP_FORMAT_8BIT_PAL:
-+ pReadScan = pBitmapReadAcc->GetScanline( nY );
-+ if( pAlphaReadAcc )
-+ if( readAlpha( pAlphaReadAcc, nY, nWidth, data, nOff ) )
-+ bIsAlpha = true;
-+
-+ for( nX = 0; nX < nWidth; nX++ ) {
-+ if( pAlphaReadAcc )
-+ nAlpha = data[ nOff + 3 ];
-+ else
-+ nAlpha = data[ nOff + 3 ] = 255;
-+ aColor = pBitmapReadAcc->GetPaletteColor( *pReadScan++ );
-+
-+ data[ nOff++ ] = ( nAlpha*( aColor.GetBlue() ) )/255;
-+ data[ nOff++ ] = ( nAlpha*( aColor.GetGreen() ) )/255;
-+ data[ nOff++ ] = ( nAlpha*( aColor.GetRed() ) )/255;
-+
-+ nOff++;
-+ }
-+ break;
-+ case BMP_FORMAT_24BIT_TC_BGR:
-+ pReadScan = pBitmapReadAcc->GetScanline( nY );
-+ if( pAlphaReadAcc )
-+ if( readAlpha( pAlphaReadAcc, nY, nWidth, data, nOff ) )
-+ bIsAlpha = true;
-+
-+ for( nX = 0; nX < nWidth; nX++ ) {
-+ if( pAlphaReadAcc )
-+ nAlpha = data[ nOff + 3 ];
-+ else
-+ nAlpha = data[ nOff + 3 ] = 255;
-+ data[ nOff++ ] = ( nAlpha*( *pReadScan++ ) )/255;
-+ data[ nOff++ ] = ( nAlpha*( *pReadScan++ ) )/255;
-+ data[ nOff++ ] = ( nAlpha*( *pReadScan++ ) )/255;
-+
-+ nOff++;
-+ }
-+ break;
-+ case BMP_FORMAT_24BIT_TC_RGB:
-+ pReadScan = pBitmapReadAcc->GetScanline( nY );
-+ if( pAlphaReadAcc )
-+ if( readAlpha( pAlphaReadAcc, nY, nWidth, data, nOff ) )
-+ bIsAlpha = true;
-+
-+ for( nX = 0; nX < nWidth; nX++ ) {
-+ if( pAlphaReadAcc )
-+ nAlpha = data[ nOff + 3 ];
-+ else
-+ nAlpha = data[ nOff + 3 ] = 255;
-+ data[ nOff++ ] = ( nAlpha*( pReadScan[ 2 ] ) )/255;
-+ data[ nOff++ ] = ( nAlpha*( pReadScan[ 1 ] ) )/255;
-+ data[ nOff++ ] = ( nAlpha*( pReadScan[ 0 ] ) )/255;
-+
-+ nOff++;
-+ pReadScan += 3;
-+ }
-+ break;
-+ case BMP_FORMAT_32BIT_TC_BGRA:
-+ pReadScan = pBitmapReadAcc->GetScanline( nY );
-+ if( pAlphaReadAcc )
-+ if( readAlpha( pAlphaReadAcc, nY, nWidth, data, nOff ) )
-+ bIsAlpha = true;
-+
-+ for( nX = 0; nX < nWidth; nX++ ) {
-+ if( pAlphaReadAcc )
-+ nAlpha = data[ nOff + 3 ];
-+ else
-+ nAlpha = data[ nOff + 3 ] = pReadScan[ 3 ];
-+ data[ nOff++ ] = ( nAlpha*( *pReadScan++ ) )/255;
-+ data[ nOff++ ] = ( nAlpha*( *pReadScan++ ) )/255;
-+ data[ nOff++ ] = ( nAlpha*( *pReadScan++ ) )/255;
-+
-+ nOff++;
-+ pReadScan++;
-+ }
-+ break;
-+ case BMP_FORMAT_32BIT_TC_RGBA:
-+ pReadScan = pBitmapReadAcc->GetScanline( nY );
-+ if( pAlphaReadAcc )
-+ if( readAlpha( pAlphaReadAcc, nY, nWidth, data, nOff ) )
-+ bIsAlpha = true;
-+
-+ for( nX = 0; nX < nWidth; nX++ ) {
-+ if( pAlphaReadAcc )
-+ nAlpha = data[ nOff + 3 ];
-+ else
-+ nAlpha = data[ nOff + 3 ] = 255;
-+ data[ nOff++ ] = ( nAlpha*( pReadScan[ 2 ] ) )/255;
-+ data[ nOff++ ] = ( nAlpha*( pReadScan[ 1 ] ) )/255;
-+ data[ nOff++ ] = ( nAlpha*( pReadScan[ 0 ] ) )/255;
-+
-+ nOff++;
-+ pReadScan += 4;
-+ }
-+ break;
-+ default:
-+ OSL_TRACE( "fallback to GetColor - slow, format: %d\n", pBitmapReadAcc->GetScanlineFormat() );
-+
-+ if( pAlphaReadAcc )
-+ if( readAlpha( pAlphaReadAcc, nY, nWidth, data, nOff ) )
-+ bIsAlpha = true;
-+
-+ for( nX = 0; nX < nWidth; nX++ ) {
-+ aColor = pBitmapReadAcc->GetColor( nY, nX );
-+
-+ // cairo need premultiplied color values
-+ // TODO(rodo) handle endianess
-+ if( pAlphaReadAcc )
-+ nAlpha = data[ nOff + 3 ];
-+ else
-+ nAlpha = data[ nOff + 3 ] = 255;
-+
-+ data[ nOff++ ] = ( nAlpha*aColor.GetBlue() )/255;
-+ data[ nOff++ ] = ( nAlpha*aColor.GetGreen() )/255;
-+ data[ nOff++ ] = ( nAlpha*aColor.GetRed() )/255;
-+
-+ nOff ++;
-+ }
-+ }
-+ }
-+
-+ aBitmap.ReleaseAccess( pBitmapReadAcc );
-+ if( pAlphaReadAcc )
-+ aAlpha.ReleaseAccess( pAlphaReadAcc );
-+
-+ Surface* pImageSurface = new Surface( cairo_image_surface_create_for_data( data,
-+ bIsAlpha ? CAIRO_FORMAT_ARGB32 : CAIRO_FORMAT_RGB24,
-+ nWidth, nHeight, nWidth*4 ) );
-+
-+ // pSurface = rDevice->getSurface( ::basegfx::B2ISize( nWidth, nHeight ), bIsAlpha ? CAIRO_CONTENT_COLOR_ALPHA : CAIRO_CONTENT_COLOR );
-+ // Cairo* pTargetCairo = cairo_create( pSurface );
-+ // cairo_set_source_surface( pTargetCairo, pImageSurface, 0, 0 );
-+
-+ // //if( !bIsAlpha )
-+ // //cairo_set_operator( pTargetCairo, CAIRO_OPERATOR_SOURCE );
-+
-+ // cairo_paint( pTargetCairo );
-+ // cairo_destroy( pTargetCairo );
-+ // cairo_surface_destroy( pImageSurface );
-+ pSurface = pImageSurface;
-+
-+ bHasAlpha = bIsAlpha;
-+
-+ OSL_TRACE("image: %d x %d alpha: %d alphaRead %p", nWidth, nHeight, bIsAlpha, pAlphaReadAcc);
-+ }
-+ }
-+
-+ return pSurface;
-+ }
-+
-+ static void addColorStop( Pattern* pPattern, double nOffset, const uno::Sequence< double >& rColor )
-+ {
-+ if( rColor.getLength() == 3 )
-+ cairo_pattern_add_color_stop_rgb( pPattern, nOffset, rColor[0], rColor[1], rColor[2] );
-+ else if( rColor.getLength() == 4 )
-+ cairo_pattern_add_color_stop_rgba( pPattern, nOffset, rColor[0], rColor[1], rColor[2], rColor[3] );
-+ }
-+
-+ static Pattern* patternFromParametricPolyPolygon( ::canvas::ParametricPolyPolygon& rPolygon, Matrix& rMatrix )
-+ {
-+ Pattern* pPattern = NULL;
-+ const ::canvas::ParametricPolyPolygon::Values aValues = rPolygon.getValues();
-+ double x0, x1, y0, y1, cx, cy, r0, r1;
-+
-+// undef macros from vclenum.hxx which conflicts with GradientType enum values
-+#undef GRADIENT_LINEAR
-+#undef GRADIENT_AXIAL
-+#undef GRADIENT_ELLIPTICAL
-+
-+ switch( aValues.meType ) {
-+ case ::canvas::ParametricPolyPolygon::GRADIENT_LINEAR:
-+ x0 = 0;
-+ y0 = 0;
-+ x1 = 1;
-+ y1 = 0;
-+ cairo_matrix_transform_point( &rMatrix, &x0, &y0 );
-+ cairo_matrix_transform_point( &rMatrix, &x1, &y1 );
-+ pPattern = cairo_pattern_create_linear( x0, y0, x1, y1 );
-+ addColorStop( pPattern, 0, aValues.maColor1 );
-+ addColorStop( pPattern, 1, aValues.maColor2 );
-+ break;
-+
-+ // FIXME: NYI
-+ case ::canvas::ParametricPolyPolygon::GRADIENT_RECTANGULAR:
-+ case ::canvas::ParametricPolyPolygon::GRADIENT_AXIAL:
-+ x0 = 0;
-+ y0 = 0;
-+ x1 = 1;
-+ y1 = 0;
-+ cairo_matrix_transform_point( &rMatrix, &x0, &y0 );
-+ cairo_matrix_transform_point( &rMatrix, &x1, &y1 );
-+ pPattern = cairo_pattern_create_linear( x0, y0, x1, y1 );
-+ addColorStop( pPattern, 0, aValues.maColor1 );
-+ addColorStop( pPattern, 0.5, aValues.maColor2 );
-+ addColorStop( pPattern, 1, aValues.maColor1 );
-+ break;
-+
-+ case ::canvas::ParametricPolyPolygon::GRADIENT_ELLIPTICAL:
-+ cx = 0.5;
-+ cy = 0.5;
-+ r0 = 0;
-+ r1 = 0.5;
-+ Matrix* pMatrix = &rMatrix;
-+ Matrix aScaledMatrix, aScaleMatrix;
-+
-+ cairo_matrix_transform_point( &rMatrix, &cx, &cy );
-+ cairo_matrix_transform_distance( &rMatrix, &r0, &r1 );
-+ pPattern = cairo_pattern_create_radial( cx, cy, r0, cx, cy, r1 );
-+ addColorStop( pPattern, 0, aValues.maColor1 );
-+ addColorStop( pPattern, 1, aValues.maColor2 );
-+
-+ if( ! ::rtl::math::approxEqual( aValues.mnAspectRatio, 1 ) ) {
-+ cairo_matrix_init_scale( &aScaleMatrix, 1, aValues.mnAspectRatio );
-+ cairo_pattern_set_matrix( pPattern, &aScaleMatrix );
-+ }
-+ break;
-+ }
-+
-+ return pPattern;
-+ }
-+
-+ void doOperation( Operation aOperation,
-+ Cairo* pCairo,
-+ sal_uInt32 nPolygonIndex,
-+ const uno::Sequence< rendering::Texture >* pTextures,
-+ SpriteCanvas* pDevice )
-+ {
-+ switch( aOperation ) {
-+ case Fill:
-+ if( pTextures ) {
-+ ::com::sun::star::rendering::Texture aTexture ( (*pTextures)[nPolygonIndex] );
-+ if( aTexture.Bitmap.is() ) {
-+ unsigned char* data;
-+ bool bHasAlpha;
-+ Surface* pSurface = surfaceFromXBitmap( (*pTextures)[nPolygonIndex].Bitmap, pDevice, data, bHasAlpha );
-+
-+ if( pSurface ) {
-+ cairo_pattern_t* pPattern;
-+
-+ cairo_save( pCairo );
-+
-+ ::com::sun::star::geometry::AffineMatrix2D aTransform( aTexture.AffineTransform );
-+ Matrix aScaleMatrix, aTextureMatrix, aScaledTextureMatrix, aOrigMatrix, aNewMatrix;
-+
-+ cairo_matrix_init( &aTextureMatrix,
-+ aTransform.m00, aTransform.m10, aTransform.m01,
-+ aTransform.m11, aTransform.m02, aTransform.m12);
-+
-+ geometry::IntegerSize2D aSize = aTexture.Bitmap->getSize();
-+
-+ cairo_matrix_init_scale( &aScaleMatrix, 1.0/aSize.Width, 1.0/aSize.Height );
-+ cairo_matrix_multiply( &aScaledTextureMatrix, &aTextureMatrix, &aScaleMatrix );
-+ cairo_matrix_invert( &aScaledTextureMatrix );
-+
-+#if 0
-+ OSL_TRACE("slow workaround");
-+ // workaround for X/glitz and/or cairo bug
-+ // we create big enough temporary surface, copy texture bitmap there and use it for the pattern
-+ // it only happens on enlargening matrices with REPEAT mode enabled
-+ Surface* pTmpSurface = pDevice->getSurface();
-+ Cairo* pTmpCairo = cairo_create( pTmpSurface );
-+ cairo_set_source_surface( pTmpCairo, pSurface, 0, 0 );
-+ cairo_paint( pTmpCairo );
-+ pPattern = cairo_pattern_create_for_surface( pTmpSurface );
-+#else
-+
-+ // we don't care about repeat mode yet, so the workaround is disabled for now
-+ pPattern = cairo_pattern_create_for_surface( pSurface->mpSurface );
-+#endif
-+ if( aTexture.RepeatModeX == rendering::TexturingMode::REPEAT &&
-+ aTexture.RepeatModeY == rendering::TexturingMode::REPEAT )
-+ cairo_pattern_set_extend( pPattern, CAIRO_EXTEND_REPEAT );
-+ aScaledTextureMatrix.x0 = round( aScaledTextureMatrix.x0 );
-+ aScaledTextureMatrix.y0 = round( aScaledTextureMatrix.y0 );
-+ cairo_pattern_set_matrix( pPattern, &aScaledTextureMatrix );
-+
-+ cairo_set_source( pCairo, pPattern );
-+ if( !bHasAlpha )
-+ cairo_set_operator( pCairo, CAIRO_OPERATOR_SOURCE );
-+ cairo_fill( pCairo );
-+
-+ cairo_restore( pCairo );
-+
-+ cairo_pattern_destroy( pPattern );
-+ pSurface->Unref();
-+
-+#if 0
-+ cairo_destroy( pTmpCairo );
-+ cairo_surface_destroy( pTmpSurface );
-+#endif
-+ }
-+
-+ if( data )
-+ free( data );
-+ } else if( aTexture.Gradient.is() ) {
-+ uno::Reference< lang::XServiceInfo > xRef( aTexture.Gradient, uno::UNO_QUERY );
-+
-+ OSL_TRACE( "gradient fill\n" );
-+ if( xRef.is() &&
-+ xRef->getImplementationName().equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( PARAMETRICPOLYPOLYGON_IMPLEMENTATION_NAME ) ) ) ) {
-+ // TODO(Q1): Maybe use dynamic_cast here
-+
-+ // TODO(E1): Return value
-+ // TODO(F1): FillRule
-+ OSL_TRACE( "known implementation\n" );
-+
-+ ::canvas::ParametricPolyPolygon* pPolyImpl = static_cast< ::canvas::ParametricPolyPolygon* >( aTexture.Gradient.get() );
-+ ::com::sun::star::geometry::AffineMatrix2D aTransform( aTexture.AffineTransform );
-+ Matrix aTextureMatrix;
-+
-+ cairo_matrix_init( &aTextureMatrix,
-+ aTransform.m00, aTransform.m10, aTransform.m01,
-+ aTransform.m11, aTransform.m02, aTransform.m12);
-+ Pattern* pPattern = patternFromParametricPolyPolygon( *pPolyImpl, aTextureMatrix );
-+
-+ if( pPattern ) {
-+ OSL_TRACE( "filling with pattern\n" );
-+
-+ cairo_save( pCairo );
-+
-+ cairo_set_source( pCairo, pPattern );
-+ cairo_fill( pCairo );
-+ cairo_restore( pCairo );
-+
-+ cairo_pattern_destroy( pPattern );
-+ }
-+ }
-+ }
-+ } else
-+ cairo_fill( pCairo );
-+ OSL_TRACE("fill\n");
-+ break;
-+ case Stroke:
-+ cairo_stroke( pCairo );
-+ OSL_TRACE("stroke\n");
-+ break;
-+ case Clip:
-+ cairo_clip( pCairo );
-+ OSL_TRACE("clip\n");
-+ break;
-+ }
-+ }
-+
-+ static void clipNULL( Cairo *pCairo )
-+ {
-+ OSL_TRACE("clipNULL\n");
-+ Matrix aOrigMatrix, aIdentityMatrix;
-+
-+ /* we set identity matrix here to overcome bug in cairo 0.9.2
-+ where XCreatePixmap is called with zero width and height.
-+
-+ it also reaches faster path in cairo clipping code.
-+ */
-+ cairo_matrix_init_identity( &aIdentityMatrix );
-+ cairo_get_matrix( pCairo, &aOrigMatrix );
-+ cairo_set_matrix( pCairo, &aIdentityMatrix );
-+
-+ cairo_reset_clip( pCairo );
-+ cairo_rectangle( pCairo, 0, 0, 1, 1 );
-+ cairo_clip( pCairo );
-+ cairo_rectangle( pCairo, 2, 0, 1, 1 );
-+ cairo_clip( pCairo );
-+
-+ /* restore the original matrix */
-+ cairo_set_matrix( pCairo, &aOrigMatrix );
-+ }
-+
-+ void drawPolyPolygonImplementation( ::basegfx::B2DPolyPolygon aPolyPolygon,
-+ Operation aOperation,
-+ Cairo* pCairo,
-+ const uno::Sequence< rendering::Texture >* pTextures,
-+ SpriteCanvas* pDevice )
-+ {
-+ bool bOpToDo = false;
-+ Matrix aOrigMatrix, aIdentityMatrix;
-+ double nX, nY, nBX, nBY, nPX, nPY, nAX, nAY;
-+
-+ cairo_get_matrix( pCairo, &aOrigMatrix );
-+ cairo_matrix_init_identity( &aIdentityMatrix );
-+ cairo_set_matrix( pCairo, &aIdentityMatrix );
-+
-+ for( sal_uInt32 nPolygonIndex = 0; nPolygonIndex < aPolyPolygon.count(); nPolygonIndex++ ) {
-+ ::basegfx::B2DPolygon aPolygon = aPolyPolygon.getB2DPolygon( nPolygonIndex );
-+
-+ if( aPolygon.count() > 1) {
-+ bool bIsBezier = aPolygon.areControlPointsUsed();
-+ ::basegfx::B2DPoint aA, aB, aP;
-+
-+ aP = aPolygon.getB2DPoint( 0 );
-+ nX = aP.getX();
-+ nY = aP.getY();
-+
-+ cairo_matrix_transform_point( &aOrigMatrix, &nX, &nY );
-+
-+ if( ! bIsBezier ) {
-+ nX = round( nX );
-+ nY = round( nY );
-+ }
-+
-+ if( aOperation != Clip ) {
-+ nX += 0.5;
-+ nY += 0.5;
-+ }
-+
-+ cairo_move_to( pCairo, nX, nY );
-+ OSL_TRACE( "move to %f,%f\n", nX, nY );
-+
-+ if( bIsBezier ) {
-+ aA = aPolygon.getControlPointA( 0 );
-+ aB = aPolygon.getControlPointB( 0 );
-+ }
-+
-+ for( sal_uInt32 j = 1; j < aPolygon.count(); j++ ) {
-+ aP = aPolygon.getB2DPoint( j );
-+
-+ nX = aP.getX();
-+ nY = aP.getY();
-+ cairo_matrix_transform_point( &aOrigMatrix, &nX, &nY );
-+
-+ if( ! bIsBezier ) {
-+ nX = round( nX );
-+ nY = round( nY );
-+ }
-+
-+ if( aOperation != Clip ) {
-+ nX += 0.5;
-+ nY += 0.5;
-+ }
-+
-+ if( bIsBezier ) {
-+ nAX = aA.getX();
-+ nAY = aA.getY();
-+ nBX = aB.getX();
-+ nBY = aB.getY();
-+
-+ if( aOperation != Clip ) {
-+ nAX += 0.5;
-+ nAY += 0.5;
-+ nBX += 0.5;
-+ nBY += 0.5;
-+ }
-+ cairo_matrix_transform_point( &aOrigMatrix, &nAX, &nAY );
-+ cairo_matrix_transform_point( &aOrigMatrix, &nBX, &nBY );
-+ cairo_curve_to( pCairo, nAX, nAY, nBX, nBY, nX, nY );
-+
-+ aA = aPolygon.getControlPointA( j );
-+ aB = aPolygon.getControlPointB( j );
-+ } else {
-+ cairo_line_to( pCairo, nX, nY );
-+ OSL_TRACE( "line to %f,%f\n", nX, nY );
-+ }
-+ bOpToDo = true;
-+ }
-+
-+ if( aPolygon.isClosed() )
-+ cairo_close_path( pCairo );
-+
-+ if( aOperation == Fill && pTextures ) {
-+ cairo_set_matrix( pCairo, &aOrigMatrix );
-+ doOperation( aOperation, pCairo, nPolygonIndex, pTextures, pDevice );
-+ cairo_set_matrix( pCairo, &aIdentityMatrix );
-+ }
-+ } else {
-+ OSL_TRACE( "empty polygon for op: %d\n\n", aOperation );
-+ if( aOperation == Clip ) {
-+ clipNULL( pCairo );
-+
-+ return;
-+ }
-+ }
-+ }
-+ if( bOpToDo && ( aOperation != Fill || !pTextures ) )
-+ doOperation( aOperation, pCairo );
-+
-+ cairo_set_matrix( pCairo, &aOrigMatrix );
-+
-+// fixme, spec says even clipping polypolygon with zero polygons means NULL clip, but it breaks animations with sprites
-+// if( aPolyPolygon.count() == 0 && aOperation == Clip )
-+// clipNULL( pCairo );
-+ }
-+
-+ void CanvasHelper::drawPolyPolygonPath( const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
-+ Operation aOperation,
-+ const uno::Sequence< rendering::Texture >* pTextures,
-+ Cairo* pCairo ) const
-+ {
-+ ::basegfx::B2DPolyPolygon aPoly = ::canvas::tools::polyPolygonFromXPolyPolygon2D( xPolyPolygon );
-+
-+ if( !pCairo )
-+ pCairo = mpCairo;
-+
-+ drawPolyPolygonImplementation( aPoly, aOperation, pCairo, pTextures, mpDevice );
-+ }
-+
-+ uno::Reference< rendering::XCachedPrimitive > CanvasHelper::drawPolyPolygon( const rendering::XCanvas* pCanvas,
-+ const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState )
-+ {
-+ #ifdef CAIRO_CANVAS_PERF_TRACE
-+ struct timespec aTimer;
-+ mxDevice->startPerfTrace( &aTimer );
-+ #endif
-+
-+ if( mpCairo ) {
-+ cairo_save( mpCairo );
-+
-+ cairo_set_line_width( mpCairo, 1 );
-+
-+ useStates( viewState, renderState, true );
-+ drawPolyPolygonPath( xPolyPolygon, Stroke );
-+
-+ cairo_restore( mpCairo );
-+ } else
-+ OSL_TRACE ("CanvasHelper called after it was disposed");
-+
-+ #ifdef CAIRO_CANVAS_PERF_TRACE
-+ mxDevice->stopPerfTrace( &aTimer, "drawPolyPolygon" );
-+ #endif
-+
-+ return uno::Reference< rendering::XCachedPrimitive >(NULL);
-+ }
-+
-+ uno::Reference< rendering::XCachedPrimitive > CanvasHelper::strokePolyPolygon( const rendering::XCanvas* pCanvas,
-+ const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState,
-+ const rendering::StrokeAttributes& strokeAttributes )
-+ {
-+ #ifdef CAIRO_CANVAS_PERF_TRACE
-+ struct timespec aTimer;
-+ mxDevice->startPerfTrace( &aTimer );
-+ #endif
-+
-+ if( mpCairo ) {
-+ cairo_save( mpCairo );
-+
-+ useStates( viewState, renderState, true );
-+
-+ cairo_set_line_width( mpCairo, strokeAttributes.StrokeWidth );
-+ cairo_set_miter_limit( mpCairo, strokeAttributes.MiterLimit );
-+
-+ // FIXME: cairo doesn't handle end cap so far (rodo)
-+ switch( strokeAttributes.StartCapType ) {
-+ case rendering::PathCapType::BUTT:
-+ cairo_set_line_cap( mpCairo, CAIRO_LINE_CAP_BUTT );
-+ break;
-+ case rendering::PathCapType::ROUND:
-+ cairo_set_line_cap( mpCairo, CAIRO_LINE_CAP_ROUND );
-+ break;
-+ case rendering::PathCapType::SQUARE:
-+ cairo_set_line_cap( mpCairo, CAIRO_LINE_CAP_SQUARE );
-+ break;
-+ }
-+
-+ switch( strokeAttributes.JoinType ) {
-+ // cairo doesn't have join type NONE so we use MITTER as it's pretty close
-+ case rendering::PathJoinType::NONE:
-+ case rendering::PathJoinType::MITER:
-+ cairo_set_line_join( mpCairo, CAIRO_LINE_JOIN_MITER );
-+ break;
-+ case rendering::PathJoinType::ROUND:
-+ cairo_set_line_join( mpCairo, CAIRO_LINE_JOIN_ROUND );
-+ break;
-+ case rendering::PathJoinType::BEVEL:
-+ cairo_set_line_join( mpCairo, CAIRO_LINE_JOIN_BEVEL );
-+ break;
-+ }
-+
-+ if( strokeAttributes.DashArray.getLength() > 0 ) {
-+ double* pDashArray = new double[ strokeAttributes.DashArray.getLength() ];
-+ for( sal_Int32 i=0; i<strokeAttributes.DashArray.getLength(); i++ )
-+ pDashArray[i]=strokeAttributes.DashArray[i];
-+ cairo_set_dash( mpCairo, pDashArray, strokeAttributes.DashArray.getLength(), 0 );
-+ delete[] pDashArray;
-+ }
-+
-+ // TODO(rodo) use LineArray of strokeAttributes
-+
-+ drawPolyPolygonPath( xPolyPolygon, Stroke );
-+
-+ cairo_restore( mpCairo );
-+ } else
-+ OSL_TRACE ("CanvasHelper called after it was disposed");
-+
-+ #ifdef CAIRO_CANVAS_PERF_TRACE
-+ mxDevice->stopPerfTrace( &aTimer, "strokePolyPolygon" );
-+ #endif
-+
-+ // TODO(P1): Provide caching here.
-+ return uno::Reference< rendering::XCachedPrimitive >(NULL);
-+ }
-+
-+ uno::Reference< rendering::XCachedPrimitive > CanvasHelper::strokeTexturedPolyPolygon( const rendering::XCanvas* pCanvas,
-+ const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState,
-+ const uno::Sequence< rendering::Texture >& textures,
-+ const rendering::StrokeAttributes& strokeAttributes )
-+ {
-+ // TODO
-+ return uno::Reference< rendering::XCachedPrimitive >(NULL);
-+ }
-+
-+ uno::Reference< rendering::XCachedPrimitive > CanvasHelper::strokeTextureMappedPolyPolygon( const rendering::XCanvas* pCanvas,
-+ const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState,
-+ const uno::Sequence< rendering::Texture >& textures,
-+ const uno::Reference< geometry::XMapping2D >& xMapping,
-+ const rendering::StrokeAttributes& strokeAttributes )
-+ {
-+ // TODO
-+ return uno::Reference< rendering::XCachedPrimitive >(NULL);
-+ }
-+
-+ uno::Reference< rendering::XPolyPolygon2D > CanvasHelper::queryStrokeShapes( const rendering::XCanvas* pCanvas,
-+ const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState,
-+ const rendering::StrokeAttributes& strokeAttributes )
-+ {
-+ // TODO
-+ return uno::Reference< rendering::XPolyPolygon2D >(NULL);
-+ }
-+
-+ uno::Reference< rendering::XCachedPrimitive > CanvasHelper::fillPolyPolygon( const rendering::XCanvas* pCanvas,
-+ const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState )
-+ {
-+ #ifdef CAIRO_CANVAS_PERF_TRACE
-+ struct timespec aTimer;
-+ mxDevice->startPerfTrace( &aTimer );
-+ #endif
-+
-+ if( mpCairo ) {
-+ cairo_save( mpCairo );
-+
-+ useStates( viewState, renderState, true );
-+ drawPolyPolygonPath( xPolyPolygon, Fill );
-+
-+ cairo_restore( mpCairo );
-+ } else
-+ OSL_TRACE ("CanvasHelper called after it was disposed");
-+
-+ #ifdef CAIRO_CANVAS_PERF_TRACE
-+ mxDevice->stopPerfTrace( &aTimer, "fillPolyPolygon" );
-+ #endif
-+
-+ return uno::Reference< rendering::XCachedPrimitive >(NULL);
-+ }
-+
-+ uno::Reference< rendering::XCachedPrimitive > CanvasHelper::fillTexturedPolyPolygon( const rendering::XCanvas* pCanvas,
-+ const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState,
-+ const uno::Sequence< rendering::Texture >& textures )
-+ {
-+ if( mpCairo ) {
-+ cairo_save( mpCairo );
-+
-+ useStates( viewState, renderState, true );
-+ drawPolyPolygonPath( xPolyPolygon, Fill, &textures );
-+
-+ cairo_restore( mpCairo );
-+ }
-+
-+ return uno::Reference< rendering::XCachedPrimitive >(NULL);
-+ }
-+
-+ uno::Reference< rendering::XCachedPrimitive > CanvasHelper::fillTextureMappedPolyPolygon( const rendering::XCanvas* pCanvas,
-+ const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState,
-+ const uno::Sequence< rendering::Texture >& textures,
-+ const uno::Reference< geometry::XMapping2D >& xMapping )
-+ {
-+ // TODO
-+ return uno::Reference< rendering::XCachedPrimitive >(NULL);
-+ }
-+
-+ uno::Reference< rendering::XCachedPrimitive > CanvasHelper::implDrawBitmapSurface( Surface* pSurface,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState,
-+ const geometry::IntegerSize2D& rSize,
-+ bool bModulateColors,
-+ bool bHasAlpha )
-+ {
-+ uno::Reference< rendering::XCachedPrimitive > rv = uno::Reference< rendering::XCachedPrimitive >(NULL);
-+
-+ if( mpCairo ) {
-+ const ::basegfx::B2ISize& aSize = mpDevice->getSizePixel();
-+
-+ cairo_save( mpCairo );
-+
-+ cairo_rectangle( mpCairo, 0, 0, aSize.getX(), aSize.getY() );
-+ cairo_clip( mpCairo );
-+
-+ useStates( viewState, renderState, true );
-+
-+ // if( !bHasAlpha )
-+ // cairo_set_operator( mpCairo, CAIRO_OPERATOR_SOURCE );
-+
-+ Matrix aMatrix;
-+
-+ cairo_get_matrix( mpCairo, &aMatrix );
-+ if( ! ::rtl::math::approxEqual( aMatrix.xx, 1 ) &&
-+ ! ::rtl::math::approxEqual( aMatrix.yy, 1 ) &&
-+ ::rtl::math::approxEqual( aMatrix.x0, 0 ) &&
-+ ::rtl::math::approxEqual( aMatrix.y0, 0 ) &&
-+ round( rSize.Width * aMatrix.xx ) > 8 &&
-+ round( rSize.Height* aMatrix.yy ) > 8 )
-+ {
-+ double dWidth, dHeight;
-+
-+ dWidth = round( rSize.Width * aMatrix.xx );
-+ dHeight = round( rSize.Height* aMatrix.yy );
-+
-+ Surface* pScaledSurface = mpDevice->getSurface( ::basegfx::B2ISize( static_cast<sal_Int32>( dWidth ),
-+ static_cast<sal_Int32>( dHeight ) ),
-+ bHasAlpha ? CAIRO_CONTENT_COLOR_ALPHA : CAIRO_CONTENT_COLOR );
-+ Cairo* pCairo = pScaledSurface->getCairo();
-+
-+ cairo_set_source_surface( pCairo, pSurface->mpSurface, 0, 0 );
-+ cairo_scale( pCairo, dWidth/rSize.Width, dHeight/rSize.Height );
-+ cairo_paint( pCairo );
-+
-+ cairo_destroy( pCairo );
-+
-+ pSurface = pScaledSurface;
-+
-+ aMatrix.xx = aMatrix.yy = 1;
-+ cairo_set_matrix( mpCairo, &aMatrix );
-+
-+ rv = uno::Reference< rendering::XCachedPrimitive >( new CachedBitmap( pSurface, viewState, renderState, mpDevice ) );
-+
-+ pSurface->Unref();
-+ }
-+
-+ cairo_set_source_surface( mpCairo, pSurface->mpSurface, 0, 0 );
-+ cairo_paint( mpCairo );
-+ cairo_restore( mpCairo );
-+ } else
-+ OSL_TRACE ("CanvasHelper called after it was disposed");
-+
-+ return rv; // uno::Reference< rendering::XCachedPrimitive >(NULL);
-+ }
-+
-+ uno::Reference< rendering::XCachedPrimitive > CanvasHelper::drawBitmap( const rendering::XCanvas* pCanvas,
-+ const uno::Reference< rendering::XBitmap >& xBitmap,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState )
-+ {
-+ #ifdef CAIRO_CANVAS_PERF_TRACE
-+ struct timespec aTimer;
-+ mxDevice->startPerfTrace( &aTimer );
-+ #endif
-+
-+ uno::Reference< rendering::XCachedPrimitive > rv;
-+ unsigned char* data;
-+ bool bHasAlpha;
-+ Surface* pSurface = surfaceFromXBitmap( xBitmap, mpDevice, data, bHasAlpha );
-+ geometry::IntegerSize2D aSize = xBitmap->getSize();
-+
-+ if( pSurface ) {
-+ rv = implDrawBitmapSurface( pSurface, viewState, renderState, aSize, false, bHasAlpha );
-+
-+ pSurface->Unref();
-+
-+ if( data )
-+ free( data );
-+ } else
-+ rv = uno::Reference< rendering::XCachedPrimitive >(NULL);
-+
-+ #ifdef CAIRO_CANVAS_PERF_TRACE
-+ mxDevice->stopPerfTrace( &aTimer, "drawBitmap" );
-+ #endif
-+
-+ return rv;
-+ }
-+
-+ uno::Reference< rendering::XCachedPrimitive > CanvasHelper::drawBitmapModulated( const rendering::XCanvas* pCanvas,
-+ const uno::Reference< rendering::XBitmap >& xBitmap,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState )
-+ {
-+ // TODO(P1): Provide caching here.
-+ return uno::Reference< rendering::XCachedPrimitive >(NULL);
-+ }
-+
-+ uno::Reference< rendering::XGraphicDevice > CanvasHelper::getDevice()
-+ {
-+ return uno::Reference< rendering::XGraphicDevice >(mpDevice);
-+ }
-+
-+ void CanvasHelper::copyRect( const rendering::XCanvas* pCanvas,
-+ const uno::Reference< rendering::XBitmapCanvas >& sourceCanvas,
-+ const geometry::RealRectangle2D& sourceRect,
-+ const rendering::ViewState& sourceViewState,
-+ const rendering::RenderState& sourceRenderState,
-+ const geometry::RealRectangle2D& destRect,
-+ const rendering::ViewState& destViewState,
-+ const rendering::RenderState& destRenderState )
-+ {
-+ // TODO(F2): copyRect NYI
-+ }
-+
-+ geometry::IntegerSize2D CanvasHelper::getSize()
-+ {
-+ if( !mpDevice )
-+ geometry::IntegerSize2D(1, 1); // we're disposed
-+
-+ return ::basegfx::unotools::integerSize2DFromB2ISize( mpDevice->getSizePixel() );
-+ }
-+
-+ uno::Reference< rendering::XBitmap > CanvasHelper::getScaledBitmap( const geometry::RealSize2D& newSize,
-+ sal_Bool beFast )
-+ {
-+#ifdef CAIRO_CANVAS_PERF_TRACE
-+ struct timespec aTimer;
-+ mxDevice->startPerfTrace( &aTimer );
-+#endif
-+
-+ if( mpCairo ) {
-+ return uno::Reference< rendering::XBitmap >( new CanvasBitmap( ::basegfx::B2ISize( ::canvas::tools::roundUp( newSize.Width ),
-+ ::canvas::tools::roundUp( newSize.Height ) ),
-+ mpDevice, false ) );
-+ } else
-+ OSL_TRACE ("CanvasHelper called after it was disposed");
-+
-+#ifdef CAIRO_CANVAS_PERF_TRACE
-+ mxDevice->stopPerfTrace( &aTimer, "getScaledBitmap" );
-+#endif
-+
-+ return uno::Reference< rendering::XBitmap >();
-+ }
-+
-+ uno::Sequence< sal_Int8 > CanvasHelper::getData( rendering::IntegerBitmapLayout& bitmapLayout,
-+ const geometry::IntegerRectangle2D& rect )
-+ {
-+ // TODO
-+ return uno::Sequence< sal_Int8 >();
-+ }
-+
-+ void CanvasHelper::setData( const uno::Sequence< sal_Int8 >& data,
-+ const rendering::IntegerBitmapLayout& bitmapLayout,
-+ const geometry::IntegerRectangle2D& rect )
-+ {
-+ }
-+
-+ void CanvasHelper::setPixel( const uno::Sequence< sal_Int8 >& color,
-+ const rendering::IntegerBitmapLayout& bitmapLayout,
-+ const geometry::IntegerPoint2D& pos )
-+ {
-+ }
-+
-+ uno::Sequence< sal_Int8 > CanvasHelper::getPixel( rendering::IntegerBitmapLayout& bitmapLayout,
-+ const geometry::IntegerPoint2D& pos )
-+ {
-+ return uno::Sequence< sal_Int8 >();
-+ }
-+
-+ uno::Reference< rendering::XBitmapPalette > CanvasHelper::getPalette()
-+ {
-+ // TODO(F1): Palette bitmaps NYI
-+ return uno::Reference< rendering::XBitmapPalette >();
-+ }
-+
-+ rendering::IntegerBitmapLayout CanvasHelper::getMemoryLayout()
-+ {
-+ // TODO(F1): finish memory layout initialization
-+ rendering::IntegerBitmapLayout aLayout;
-+
-+ const geometry::IntegerSize2D& rBmpSize( getSize() );
-+
-+ aLayout.ScanLines = rBmpSize.Width;
-+ aLayout.ScanLineBytes = rBmpSize.Height * 4;
-+ aLayout.ScanLineStride = aLayout.ScanLineBytes;
-+ aLayout.PlaneStride = 0;
-+ aLayout.ColorSpace.set( mpDevice );
-+ aLayout.NumComponents = 4;
-+ aLayout.ComponentMasks.realloc(4);
-+ aLayout.ComponentMasks[0] = 0x00FF0000;
-+ aLayout.ComponentMasks[1] = 0x0000FF00;
-+ aLayout.ComponentMasks[2] = 0x000000FF;
-+ aLayout.ComponentMasks[3] = 0xFF000000;
-+ aLayout.Palette.clear();
-+ aLayout.Endianness = rendering::Endianness::LITTLE;
-+ aLayout.Format = rendering::IntegerBitmapFormat::CHUNKY_32BIT;
-+ aLayout.IsMsbFirst = sal_False;
-+
-+ return aLayout;
-+ }
-+
-+ void CanvasHelper::flush() const
-+ {
-+ }
-+
-+ bool CanvasHelper::hasAlpha() const
-+ {
-+ return mbHaveAlpha;
-+ }
-+
-+ bool CanvasHelper::repaint( Surface* pSurface,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState )
-+ {
-+ OSL_TRACE("CanvasHelper::repaint");
-+
-+ if( mpCairo ) {
-+ const ::basegfx::B2ISize& aSize = mpDevice->getSizePixel();
-+
-+ cairo_save( mpCairo );
-+
-+ cairo_rectangle( mpCairo, 0, 0, aSize.getX(), aSize.getY() );
-+ cairo_clip( mpCairo );
-+
-+ useStates( viewState, renderState, true );
-+
-+ Matrix aMatrix;
-+
-+ cairo_get_matrix( mpCairo, &aMatrix );
-+ aMatrix.xx = aMatrix.yy = 1;
-+ cairo_set_matrix( mpCairo, &aMatrix );
-+
-+ // if( !bHasAlpha )
-+ // cairo_set_operator( mpCairo, CAIRO_OPERATOR_SOURCE );
-+
-+ cairo_set_source_surface( mpCairo, pSurface->mpSurface, 0, 0 );
-+ cairo_paint( mpCairo );
-+ cairo_restore( mpCairo );
-+ }
-+
-+ return true;
-+ }
-+}
diff --git a/patches/cairo/canvas-source-cairo-cairo_canvashelper-hxx-m.diff b/patches/cairo/canvas-source-cairo-cairo_canvashelper-hxx-m.diff
deleted file mode 100644
index 42043e581..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_canvashelper-hxx-m.diff
+++ /dev/null
@@ -1,325 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_canvashelper.hxx.M
-@@ -0,0 +1,322 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _VCLCANVAS_CANVASHELPER_HXX_
-+#define _VCLCANVAS_CANVASHELPER_HXX_
-+
-+#ifndef _COM_SUN_STAR_RENDERING_XCANVAS_HPP_
-+#include <com/sun/star/rendering/XCanvas.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_RENDERING_XINTEGERBITMAP_HPP_
-+#include <com/sun/star/rendering/XIntegerBitmap.hpp>
-+#endif
-+
-+#ifndef _SV_OUTDEV_HXX
-+#include <vcl/outdev.hxx>
-+#endif
-+
-+#include <canvas/vclwrapper.hxx>
-+
-+#include "cairo_cairo.hxx"
-+#include "cairo_outdevprovider.hxx"
-+#include "cairo_cachedbitmap.hxx"
-+#include "cairo_windowgraphicdevice.hxx"
-+
-+
-+namespace vclcanvas
-+{
-+ /** Helper class for basic canvas functionality. Also offers
-+ optional backbuffer painting, when providing it with a second
-+ OutputDevice to render into.
-+ */
-+ class CanvasHelper
-+ {
-+ public:
-+ CanvasHelper();
-+
-+ /// Release all references
-+ void disposing();
-+
-+ void setGraphicDevice( const WindowGraphicDevice::ImplRef& rDevice );
-+
-+ /** Set primary output device
-+
-+ @param bProtect
-+ When true, all output operations preserve outdev
-+ state. When false, outdev state might change at any time.
-+ */
-+ void setCairo( ::cairo::Cairo* pCairo );
-+
-+ /** Set secondary output device
-+
-+ Used for sprites, to generate mask bitmap.
-+ */
-+ void setBackgroundOutDev( const OutDevProviderSharedPtr& rOutDev );
-+
-+ // CanvasHelper functionality
-+ // ==========================
-+
-+ // XCanvas (only providing, not implementing the
-+ // interface. Also note subtle method parameter differences)
-+ void drawPoint( const ::com::sun::star::rendering::XCanvas& rCanvas,
-+ const ::com::sun::star::geometry::RealPoint2D& aPoint,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState );
-+ void drawLine( const ::com::sun::star::rendering::XCanvas& rCanvas,
-+ const ::com::sun::star::geometry::RealPoint2D& aStartPoint,
-+ const ::com::sun::star::geometry::RealPoint2D& aEndPoint,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState );
-+ void drawBezier( const ::com::sun::star::rendering::XCanvas& rCanvas,
-+ const ::com::sun::star::geometry::RealBezierSegment2D& aBezierSegment,
-+ const ::com::sun::star::geometry::RealPoint2D& aEndPoint,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
-+ drawPolyPolygon( const ::com::sun::star::rendering::XCanvas& rCanvas,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
-+ strokePolyPolygon( const ::com::sun::star::rendering::XCanvas& rCanvas,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState,
-+ const ::com::sun::star::rendering::StrokeAttributes& strokeAttributes );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
-+ strokeTexturedPolyPolygon( const ::com::sun::star::rendering::XCanvas& rCanvas,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState,
-+ const ::com::sun::star::uno::Sequence<
-+ ::com::sun::star::rendering::Texture >& textures,
-+ const ::com::sun::star::rendering::StrokeAttributes& strokeAttributes );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
-+ strokeTextureMappedPolyPolygon( const ::com::sun::star::rendering::XCanvas& rCanvas,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState,
-+ const ::com::sun::star::uno::Sequence<
-+ ::com::sun::star::rendering::Texture >& textures,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::geometry::XMapping2D >& xMapping,
-+ const ::com::sun::star::rendering::StrokeAttributes& strokeAttributes );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D >
-+ queryStrokeShapes( const ::com::sun::star::rendering::XCanvas& rCanvas,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState,
-+ const ::com::sun::star::rendering::StrokeAttributes& strokeAttributes );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
-+ fillPolyPolygon( const ::com::sun::star::rendering::XCanvas& rCanvas,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
-+ fillTexturedPolyPolygon( const ::com::sun::star::rendering::XCanvas& rCanvas,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState,
-+ const ::com::sun::star::uno::Sequence<
-+ ::com::sun::star::rendering::Texture >& textures );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
-+ fillTextureMappedPolyPolygon( const ::com::sun::star::rendering::XCanvas& rCanvas,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState,
-+ const ::com::sun::star::uno::Sequence<
-+ ::com::sun::star::rendering::Texture >& textures,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::geometry::XMapping2D >& xMapping );
-+
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCanvasFont >
-+ createFont( const ::com::sun::star::rendering::XCanvas& rCanvas,
-+ const ::com::sun::star::rendering::FontRequest& fontRequest,
-+ const ::com::sun::star::uno::Sequence<
-+ ::com::sun::star::beans::PropertyValue >& extraFontProperties,
-+ const ::com::sun::star::geometry::Matrix2D& fontMatrix );
-+
-+ ::com::sun::star::uno::Sequence< ::com::sun::star::rendering::FontInfo >
-+ queryAvailableFonts( const ::com::sun::star::rendering::XCanvas& rCanvas,
-+ const ::com::sun::star::rendering::FontInfo& aFilter,
-+ const ::com::sun::star::uno::Sequence<
-+ ::com::sun::star::beans::PropertyValue >& aFontProperties );
-+
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
-+ drawText( const ::com::sun::star::rendering::XCanvas& rCanvas,
-+ const ::com::sun::star::rendering::StringContext& text,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XCanvasFont >& xFont,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState,
-+ sal_Int8 textDirection );
-+
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
-+ drawTextLayout( const ::com::sun::star::rendering::XCanvas& rCanvas,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XTextLayout >& layoutetText,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState );
-+
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
-+ drawBitmap( const ::com::sun::star::rendering::XCanvas& rCanvas,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XBitmap >& xBitmap,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
-+ drawBitmapModulated( const ::com::sun::star::rendering::XCanvas& rCanvas,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XBitmap >& xBitmap,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >
-+ getDevice();
-+
-+ // BitmapCanvasHelper functionality
-+ // ================================
-+
-+ void copyRect( const ::com::sun::star::rendering::XCanvas& rCanvas,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XBitmapCanvas >& sourceCanvas,
-+ const ::com::sun::star::geometry::RealRectangle2D& sourceRect,
-+ const ::com::sun::star::rendering::ViewState& sourceViewState,
-+ const ::com::sun::star::rendering::RenderState& sourceRenderState,
-+ const ::com::sun::star::geometry::RealRectangle2D& destRect,
-+ const ::com::sun::star::rendering::ViewState& destViewState,
-+ const ::com::sun::star::rendering::RenderState& destRenderState );
-+
-+ ::com::sun::star::geometry::IntegerSize2D getSize();
-+
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmapCanvas > queryBitmapCanvas();
-+
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap >
-+ getScaledBitmap( const ::com::sun::star::geometry::RealSize2D& newSize,
-+ sal_Bool beFast );
-+
-+ ::com::sun::star::uno::Sequence< sal_Int8 >
-+ getData( const ::com::sun::star::geometry::IntegerRectangle2D& rect );
-+
-+ void setData( const ::com::sun::star::uno::Sequence< sal_Int8 >& data,
-+ const ::com::sun::star::geometry::IntegerRectangle2D& rect );
-+
-+ void setPixel( const ::com::sun::star::uno::Sequence< sal_Int8 >& color,
-+ const ::com::sun::star::geometry::IntegerPoint2D& pos );
-+
-+ ::com::sun::star::uno::Sequence< sal_Int8 >
-+ getPixel( const ::com::sun::star::geometry::IntegerPoint2D& pos );
-+
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmapPalette > getPalette();
-+
-+ ::com::sun::star::rendering::IntegerBitmapLayout getMemoryLayout();
-+
-+ /// Repaint a cached bitmap
-+ bool repaint( const GraphicObjectSharedPtr& rGrf,
-+ const ::Point& rPt,
-+ const ::Size& rSz,
-+ const GraphicAttr& rAttr ) const;
-+
-+ enum ColorType
-+ {
-+ LINE_COLOR, FILL_COLOR, TEXT_COLOR, IGNORE_COLOR
-+ };
-+
-+ protected:
-+ /// Phyical output device
-+ WindowGraphicDevice::ImplRef mxDevice;
-+
-+ OutDevProviderSharedPtr mp2ndOutDev;
-+
-+ ::cairo::Cairo* mpCairo;
-+
-+ private:
-+ // default: disabled copy/assignment
-+ CanvasHelper(const CanvasHelper&);
-+ CanvasHelper& operator=( const CanvasHelper& );
-+
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
-+ implDrawBitmap( const ::com::sun::star::rendering::XCanvas& rCanvas,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XBitmap >& xBitmap,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState,
-+ bool bModulateColors );
-+
-+ bool setupTextOutput( ::Point& o_rOutPos,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState,
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCanvasFont >& xFont );
-+
-+ void useStates( const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState,
-+ bool setColor );
-+ };
-+}
-+
-+#endif /* _VCLCANVAS_CANVASHELPER_HXX_ */
diff --git a/patches/cairo/canvas-source-cairo-cairo_canvashelper-hxx.diff b/patches/cairo/canvas-source-cairo-cairo_canvashelper-hxx.diff
deleted file mode 100644
index 783c418b4..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_canvashelper-hxx.diff
+++ /dev/null
@@ -1,337 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_canvashelper.hxx
-@@ -0,0 +1,334 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CAIROCANVAS_CANVASHELPER_HXX_
-+#define _CAIROCANVAS_CANVASHELPER_HXX_
-+
-+#include <com/sun/star/rendering/XCanvas.hpp>
-+#include <com/sun/star/rendering/XIntegerBitmap.hpp>
-+
-+#include <basegfx/vector/b2isize.hxx>
-+#include <basegfx/vector/b2dsize.hxx>
-+
-+#include <boost/utility.hpp>
-+
-+#include "cairo_cairo.hxx"
-+
-+class VirtualDevice;
-+
-+namespace basegfx {
-+ class B2DPolyPolygon;
-+}
-+
-+namespace cairocanvas
-+{
-+ class SpriteCanvas;
-+
-+ enum Operation {
-+ Stroke,
-+ Fill,
-+ Clip
-+ };
-+
-+ /** Helper class for basic canvas functionality. Also offers
-+ optional backbuffer painting, when providing it with a second
-+ HDC to render into.
-+ */
-+ class CanvasHelper : private ::boost::noncopyable
-+ {
-+ public:
-+ CanvasHelper();
-+
-+ /// Release all references
-+ void disposing();
-+
-+ /** Initialize canvas helper
-+
-+ This method late-initializes the canvas helper, providing
-+ it with the necessary device and size. Note that the
-+ CanvasHelper does <em>not</em> take ownership of the
-+ passed rDevice reference, nor does it perform any
-+ reference counting. Thus, to prevent the reference counted
-+ SpriteCanvas object from deletion, the user of this class
-+ is responsible for holding ref-counted references itself!
-+
-+ @param rSizePixel
-+ Size of the output surface in pixel.
-+
-+ @param rDevice
-+ Reference device this canvas is associated with
-+
-+ */
-+ void init( const ::basegfx::B2ISize& rSizePixel,
-+ SpriteCanvas& rDevice,
-+ bool bHasAlpha );
-+
-+ void setSurface( ::cairo::Surface* pSurface );
-+
-+ // CanvasHelper functionality
-+ // ==========================
-+
-+ // XCanvas (only providing, not implementing the
-+ // interface. Also note subtle method parameter differences)
-+ void drawPoint( const ::com::sun::star::rendering::XCanvas* pCanvas,
-+ const ::com::sun::star::geometry::RealPoint2D& aPoint,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState );
-+ void drawLine( const ::com::sun::star::rendering::XCanvas* pCanvas,
-+ const ::com::sun::star::geometry::RealPoint2D& aStartPoint,
-+ const ::com::sun::star::geometry::RealPoint2D& aEndPoint,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState );
-+ void drawBezier( const ::com::sun::star::rendering::XCanvas* pCanvas,
-+ const ::com::sun::star::geometry::RealBezierSegment2D& aBezierSegment,
-+ const ::com::sun::star::geometry::RealPoint2D& aEndPoint,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
-+ drawPolyPolygon( const ::com::sun::star::rendering::XCanvas* pCanvas,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
-+ strokePolyPolygon( const ::com::sun::star::rendering::XCanvas* pCanvas,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState,
-+ const ::com::sun::star::rendering::StrokeAttributes& strokeAttributes );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
-+ strokeTexturedPolyPolygon( const ::com::sun::star::rendering::XCanvas* pCanvas,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState,
-+ const ::com::sun::star::uno::Sequence<
-+ ::com::sun::star::rendering::Texture >& textures,
-+ const ::com::sun::star::rendering::StrokeAttributes& strokeAttributes );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
-+ strokeTextureMappedPolyPolygon( const ::com::sun::star::rendering::XCanvas* pCanvas,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState,
-+ const ::com::sun::star::uno::Sequence<
-+ ::com::sun::star::rendering::Texture >& textures,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::geometry::XMapping2D >& xMapping,
-+ const ::com::sun::star::rendering::StrokeAttributes& strokeAttributes );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D >
-+ queryStrokeShapes( const ::com::sun::star::rendering::XCanvas* pCanvas,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState,
-+ const ::com::sun::star::rendering::StrokeAttributes& strokeAttributes );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
-+ fillPolyPolygon( const ::com::sun::star::rendering::XCanvas* pCanvas,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
-+ fillTexturedPolyPolygon( const ::com::sun::star::rendering::XCanvas* pCanvas,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState,
-+ const ::com::sun::star::uno::Sequence<
-+ ::com::sun::star::rendering::Texture >& textures );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
-+ fillTextureMappedPolyPolygon( const ::com::sun::star::rendering::XCanvas* pCanvas,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState,
-+ const ::com::sun::star::uno::Sequence<
-+ ::com::sun::star::rendering::Texture >& textures,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::geometry::XMapping2D >& xMapping );
-+
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCanvasFont > SAL_CALL
-+ createFont( const ::com::sun::star::rendering::XCanvas* pCanvas,
-+ const ::com::sun::star::rendering::FontRequest& fontRequest,
-+ const ::com::sun::star::uno::Sequence<
-+ ::com::sun::star::beans::PropertyValue >& extraFontProperties,
-+ const ::com::sun::star::geometry::Matrix2D& fontMatrix );
-+
-+ ::com::sun::star::uno::Sequence< ::com::sun::star::rendering::FontInfo >
-+ queryAvailableFonts( const ::com::sun::star::rendering::XCanvas* pCanvas,
-+ const ::com::sun::star::rendering::FontInfo& aFilter,
-+ const ::com::sun::star::uno::Sequence<
-+ ::com::sun::star::beans::PropertyValue >& aFontProperties );
-+
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
-+ drawText( const ::com::sun::star::rendering::XCanvas* pCanvas,
-+ const ::com::sun::star::rendering::StringContext& text,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XCanvasFont >& xFont,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState,
-+ sal_Int8 textDirection );
-+
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
-+ drawTextLayout( const ::com::sun::star::rendering::XCanvas* pCanvas,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XTextLayout >& layoutetText,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState );
-+
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
-+ drawBitmap( const ::com::sun::star::rendering::XCanvas* pCanvas,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XBitmap >& xBitmap,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
-+ drawBitmapModulated( const ::com::sun::star::rendering::XCanvas* pCanvas,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XBitmap >& xBitmap,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >
-+ getDevice();
-+
-+ // BitmapCanvasHelper functionality
-+ // ================================
-+
-+ void copyRect( const ::com::sun::star::rendering::XCanvas* pCanvas,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XBitmapCanvas >& sourceCanvas,
-+ const ::com::sun::star::geometry::RealRectangle2D& sourceRect,
-+ const ::com::sun::star::rendering::ViewState& sourceViewState,
-+ const ::com::sun::star::rendering::RenderState& sourceRenderState,
-+ const ::com::sun::star::geometry::RealRectangle2D& destRect,
-+ const ::com::sun::star::rendering::ViewState& destViewState,
-+ const ::com::sun::star::rendering::RenderState& destRenderState );
-+
-+ ::com::sun::star::geometry::IntegerSize2D getSize();
-+
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap >
-+ getScaledBitmap( const ::com::sun::star::geometry::RealSize2D& newSize,
-+ sal_Bool beFast );
-+
-+ ::com::sun::star::uno::Sequence< sal_Int8 >
-+ getData( ::com::sun::star::rendering::IntegerBitmapLayout& bitmapLayout,
-+ const ::com::sun::star::geometry::IntegerRectangle2D& rect );
-+
-+ void setData( const ::com::sun::star::uno::Sequence< sal_Int8 >& data,
-+ const ::com::sun::star::rendering::IntegerBitmapLayout& bitmapLayout,
-+ const ::com::sun::star::geometry::IntegerRectangle2D& rect );
-+
-+ void setPixel( const ::com::sun::star::uno::Sequence< sal_Int8 >& color,
-+ const ::com::sun::star::rendering::IntegerBitmapLayout& bitmapLayout,
-+ const ::com::sun::star::geometry::IntegerPoint2D& pos );
-+
-+ ::com::sun::star::uno::Sequence< sal_Int8 >
-+ getPixel( ::com::sun::star::rendering::IntegerBitmapLayout& bitmapLayout,
-+ const ::com::sun::star::geometry::IntegerPoint2D& pos );
-+
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmapPalette > getPalette();
-+
-+ ::com::sun::star::rendering::IntegerBitmapLayout getMemoryLayout();
-+
-+ // Flush drawing queue to screen
-+ void flush() const;
-+
-+ /** Called from XCanvas base classes, to notify that content
-+ is _about_ to change
-+ */
-+ void modifying() {}
-+
-+ bool hasAlpha() const;
-+
-+ enum ColorType
-+ {
-+ LINE_COLOR, FILL_COLOR, TEXT_COLOR, IGNORE_COLOR
-+ };
-+
-+ void drawPolyPolygonPath( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
-+ Operation aOperation,
-+ const ::com::sun::star::uno::Sequence< ::com::sun::star::rendering::Texture >* pTextures=NULL,
-+ ::cairo::Cairo* pCairo=NULL ) const;
-+
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
-+ implDrawBitmapSurface( ::cairo::Surface* pSurface,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState,
-+ const ::com::sun::star::geometry::IntegerSize2D& rSize,
-+ bool bModulateColors,
-+ bool bHasAlpha );
-+
-+ bool repaint( ::cairo::Surface* pSurface,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState );
-+
-+ protected:
-+ /** Phyical output device
-+
-+ Deliberately not a refcounted reference, because of
-+ potential circular references for spritecanvas.
-+ */
-+ SpriteCanvas* mpDevice;
-+
-+ private:
-+
-+ VirtualDevice* mpVirtualDevice;
-+
-+ void useStates( const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState,
-+ bool setColor );
-+
-+ /// When true, content is able to represent alpha
-+ bool mbHaveAlpha;
-+
-+ ::cairo::Cairo* mpCairo;
-+ ::cairo::Surface* mpSurface;
-+ };
-+
-+ void drawPolyPolygonImplementation( ::basegfx::B2DPolyPolygon aPolyPolygon,
-+ Operation aOperation,
-+ ::cairo::Cairo* pCairo,
-+ const ::com::sun::star::uno::Sequence< ::com::sun::star::rendering::Texture >* pTextures=NULL,
-+ SpriteCanvas* pDevice=NULL );
-+ void doOperation( Operation aOperation,
-+ ::cairo::Cairo* pCairo,
-+ sal_uInt32 nPolygonIndex=0,
-+ const ::com::sun::star::uno::Sequence< ::com::sun::star::rendering::Texture >* pTextures=NULL,
-+ SpriteCanvas* pDevice=NULL);
-+}
-+
-+#endif /* _CAIROCANVAS_CANVASHELPER_HXX_ */
diff --git a/patches/cairo/canvas-source-cairo-cairo_canvashelper_text-cxx.diff b/patches/cairo/canvas-source-cairo-cairo_canvashelper_text-cxx.diff
deleted file mode 100644
index bd10e0142..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_canvashelper_text-cxx.diff
+++ /dev/null
@@ -1,408 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_canvashelper_text.cxx
-@@ -0,0 +1,405 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#include <canvas/debug.hxx>
-+#include <canvas/canvastools.hxx>
-+
-+#include <vcl/virdev.hxx>
-+#include <vcl/sysdata.hxx>
-+#include <vcl/metric.hxx>
-+#include <vcl/canvastools.hxx>
-+
-+#include <basegfx/tools/canvastools.hxx>
-+
-+#include "cairo_spritecanvas.hxx"
-+#include "cairo_canvasfont.hxx"
-+#include "cairo_textlayout.hxx"
-+#include "cairo_canvashelper.hxx"
-+
-+using namespace ::cairo;
-+using namespace ::com::sun::star;
-+
-+namespace cairocanvas
-+{
-+ enum ColorType
-+ {
-+ LINE_COLOR, FILL_COLOR, TEXT_COLOR, IGNORE_COLOR
-+ };
-+
-+ uno::Reference< rendering::XCanvasFont > CanvasHelper::createFont( const rendering::XCanvas* pCanvas,
-+ const rendering::FontRequest& fontRequest,
-+ const uno::Sequence< beans::PropertyValue >& extraFontProperties,
-+ const geometry::Matrix2D& fontMatrix )
-+ {
-+ return uno::Reference< rendering::XCanvasFont >( new CanvasFont( fontRequest, extraFontProperties, fontMatrix, mpDevice ) );
-+ }
-+
-+ uno::Sequence< rendering::FontInfo > CanvasHelper::queryAvailableFonts( const rendering::XCanvas* pCanvas,
-+ const rendering::FontInfo& aFilter,
-+ const uno::Sequence< beans::PropertyValue >& aFontProperties )
-+ {
-+ // TODO
-+ return uno::Sequence< rendering::FontInfo >();
-+ }
-+
-+ static VirtualDevice*
-+ createVirtualDevice( Surface* pSurface )
-+ {
-+ SystemGraphicsData aSystemGraphicsData;
-+
-+ aSystemGraphicsData.nSize = sizeof(SystemGraphicsData);
-+ aSystemGraphicsData.hDrawable = pSurface->getPixmap();
-+ aSystemGraphicsData.pRenderFormat = pSurface->getRenderFormat();
-+
-+ return new VirtualDevice( &aSystemGraphicsData, 24 );
-+ }
-+
-+ static bool
-+ setupFontTransform( ::OutputDevice& rOutDev,
-+ ::Point& o_rPoint,
-+ ::Font& io_rVCLFont,
-+ const rendering::ViewState& rViewState,
-+ const rendering::RenderState& rRenderState )
-+ {
-+ ::basegfx::B2DHomMatrix aMatrix;
-+
-+ ::canvas::tools::mergeViewAndRenderTransform(aMatrix,
-+ rViewState,
-+ rRenderState);
-+
-+ ::basegfx::B2DTuple aScale;
-+ ::basegfx::B2DTuple aTranslate;
-+ double nRotate, nShearX;
-+
-+ aMatrix.decompose( aScale, aTranslate, nRotate, nShearX );
-+
-+ // query font metric _before_ tampering with width and height
-+ if( !::rtl::math::approxEqual(aScale.getX(), aScale.getY()) )
-+ {
-+ // retrieve true font width
-+ const sal_Int32 nFontWidth( rOutDev.GetFontMetric( io_rVCLFont ).GetWidth() );
-+
-+ const sal_Int32 nScaledFontWidth( ::basegfx::fround(nFontWidth * aScale.getX()) );
-+
-+ if( !nScaledFontWidth )
-+ {
-+ // scale is smaller than one pixel - disable text
-+ // output altogether
-+ return false;
-+ }
-+
-+ io_rVCLFont.SetWidth( nScaledFontWidth );
-+ }
-+
-+ if( !::rtl::math::approxEqual(aScale.getY(), 1.0) )
-+ {
-+ const sal_Int32 nFontHeight( io_rVCLFont.GetHeight() );
-+ io_rVCLFont.SetHeight( ::basegfx::fround(nFontHeight * aScale.getY()) );
-+ }
-+
-+ io_rVCLFont.SetOrientation( static_cast< short >( ::basegfx::fround(-fmod(nRotate, 2*M_PI)*(1800.0/M_PI)) ) );
-+
-+ // TODO(F2): Missing functionality in VCL: shearing
-+ o_rPoint.X() = ::basegfx::fround(aTranslate.getX());
-+ o_rPoint.Y() = ::basegfx::fround(aTranslate.getY());
-+
-+ return true;
-+ }
-+
-+ static int
-+ setupOutDevState( OutputDevice& rOutDev,
-+ SpriteCanvas* pDevice,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState,
-+ ColorType eColorType )
-+ {
-+ ::canvas::tools::verifyInput( renderState,
-+ BOOST_CURRENT_FUNCTION,
-+ static_cast< ::cppu::OWeakObject* >(pDevice),
-+ 2,
-+ eColorType == IGNORE_COLOR ? 0 : 3 );
-+
-+ int nTransparency(0);
-+
-+ // TODO(P2): Don't change clipping all the time, maintain current clip
-+ // state and change only when update is necessary
-+
-+ // accumulate non-empty clips into one region
-+ // ==========================================
-+
-+ Region aClipRegion;
-+
-+ if( viewState.Clip.is() )
-+ {
-+ ::basegfx::B2DPolyPolygon aClipPoly(
-+ ::canvas::tools::polyPolygonFromXPolyPolygon2D(
-+ viewState.Clip) );
-+
-+ if( aClipPoly.count() )
-+ {
-+ // setup non-empty clipping
-+ ::basegfx::B2DHomMatrix aMatrix;
-+ aClipPoly.transform(
-+ ::basegfx::unotools::homMatrixFromAffineMatrix( aMatrix,
-+ viewState.AffineTransform ) );
-+
-+ aClipRegion = Region::GetRegionFromPolyPolygon( ::PolyPolygon( aClipPoly ) );
-+ }
-+ }
-+
-+ if( renderState.Clip.is() )
-+ {
-+ ::basegfx::B2DPolyPolygon aClipPoly(
-+ ::canvas::tools::polyPolygonFromXPolyPolygon2D(
-+ renderState.Clip) );
-+
-+ ::basegfx::B2DHomMatrix aMatrix;
-+ aClipPoly.transform(
-+ ::canvas::tools::mergeViewAndRenderTransform( aMatrix,
-+ viewState,
-+ renderState ) );
-+
-+ if( aClipPoly.count() )
-+ {
-+ // setup non-empty clipping
-+ Region aRegion = Region::GetRegionFromPolyPolygon( ::PolyPolygon( aClipPoly ) );
-+
-+ if( aClipRegion.IsEmpty() )
-+ aClipRegion = aRegion;
-+ else
-+ aClipRegion.Intersect( aRegion );
-+ }
-+ else
-+ {
-+ // clip polygon is empty
-+ aClipRegion.SetEmpty();
-+ }
-+ }
-+
-+ // setup accumulated clip region. Note that setting an
-+ // empty clip region denotes "clip everything" on the
-+ // OutputDevice (which is why we translate that into
-+ // SetClipRegion() here). When both view and render clip
-+ // are empty, aClipRegion remains default-constructed,
-+ // i.e. empty, too.
-+ if( aClipRegion.IsEmpty() )
-+ {
-+ rOutDev.SetClipRegion();
-+ }
-+ else
-+ {
-+ rOutDev.SetClipRegion( aClipRegion );
-+ }
-+
-+ if( eColorType != IGNORE_COLOR )
-+ {
-+ Color aColor( COL_WHITE );
-+
-+ if( renderState.DeviceColor.getLength() > 2 )
-+ {
-+ aColor = ::vcl::unotools::sequenceToColor( pDevice,
-+ renderState.DeviceColor );
-+ }
-+
-+ // extract alpha, and make color opaque
-+ // afterwards. Otherwise, OutputDevice won't draw anything
-+ nTransparency = aColor.GetTransparency();
-+ aColor.SetTransparency(0);
-+
-+ switch( eColorType )
-+ {
-+ case LINE_COLOR:
-+ rOutDev.SetLineColor( aColor );
-+ rOutDev.SetFillColor();
-+
-+ break;
-+
-+ case FILL_COLOR:
-+ rOutDev.SetFillColor( aColor );
-+ rOutDev.SetLineColor();
-+
-+ break;
-+
-+ case TEXT_COLOR:
-+ rOutDev.SetTextColor( aColor );
-+
-+ break;
-+
-+ default:
-+ ENSURE_AND_THROW( false,
-+ "CanvasHelper::setupOutDevState(): Unexpected color type");
-+ break;
-+ }
-+ }
-+
-+ return nTransparency;
-+ }
-+
-+ bool setupTextOutput( OutputDevice& rOutDev,
-+ SpriteCanvas* pDevice,
-+ ::Point& o_rOutPos,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState,
-+ const uno::Reference< rendering::XCanvasFont >& xFont )
-+ {
-+ setupOutDevState( rOutDev, pDevice, viewState, renderState, TEXT_COLOR );
-+
-+ ::Font aVCLFont;
-+
-+ CanvasFont* pFont = dynamic_cast< CanvasFont* >( xFont.get() );
-+
-+ CHECK_AND_THROW( pFont,
-+ "CanvasHelper::setupTextOutput(): Font not compatible with this canvas" );
-+
-+ aVCLFont = pFont->getVCLFont();
-+
-+ Color aColor( COL_BLACK );
-+
-+ if( renderState.DeviceColor.getLength() > 2 )
-+ {
-+ aColor = ::vcl::unotools::sequenceToColor( pDevice,
-+ renderState.DeviceColor );
-+ }
-+
-+ // setup font color
-+ aVCLFont.SetColor( aColor );
-+ aVCLFont.SetFillColor( aColor );
-+
-+ // no need to replicate this for mp2ndOutDev, we're modifying only aVCLFont here.
-+ if( !setupFontTransform( rOutDev, o_rOutPos, aVCLFont, viewState, renderState ) )
-+ return false;
-+
-+ rOutDev.SetFont( aVCLFont );
-+
-+
-+ return true;
-+ }
-+
-+ uno::Reference< rendering::XCachedPrimitive > CanvasHelper::drawText( const rendering::XCanvas* pCanvas,
-+ const rendering::StringContext& text,
-+ const uno::Reference< rendering::XCanvasFont >& xFont,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState,
-+ sal_Int8 textDirection )
-+ {
-+#ifdef CAIRO_CANVAS_PERF_TRACE
-+ struct timespec aTimer;
-+ mxDevice->startPerfTrace( &aTimer );
-+#endif
-+
-+ CHECK_AND_THROW( xFont.is(),
-+ "CanvasHelper::drawText(): font is NULL");
-+
-+ if( !mpVirtualDevice )
-+ mpVirtualDevice = createVirtualDevice( mpSurface );
-+
-+ if( mpVirtualDevice )
-+ {
-+ ::Point aOutpos;
-+ if( !setupTextOutput( *mpVirtualDevice, mpDevice, aOutpos, viewState, renderState, xFont ) )
-+ return uno::Reference< rendering::XCachedPrimitive >(NULL); // no output necessary
-+
-+ // change text direction and layout mode
-+ ULONG nLayoutMode(0);
-+ switch( textDirection )
-+ {
-+ case rendering::TextDirection::WEAK_LEFT_TO_RIGHT:
-+ nLayoutMode |= TEXT_LAYOUT_BIDI_LTR;
-+ // FALLTHROUGH intended
-+ case rendering::TextDirection::STRONG_LEFT_TO_RIGHT:
-+ nLayoutMode |= TEXT_LAYOUT_BIDI_LTR | TEXT_LAYOUT_BIDI_STRONG;
-+ nLayoutMode |= TEXT_LAYOUT_TEXTORIGIN_LEFT;
-+ break;
-+
-+ case rendering::TextDirection::WEAK_RIGHT_TO_LEFT:
-+ nLayoutMode |= TEXT_LAYOUT_BIDI_RTL;
-+ // FALLTHROUGH intended
-+ case rendering::TextDirection::STRONG_RIGHT_TO_LEFT:
-+ nLayoutMode |= TEXT_LAYOUT_BIDI_RTL | TEXT_LAYOUT_BIDI_STRONG;
-+ nLayoutMode |= TEXT_LAYOUT_TEXTORIGIN_RIGHT;
-+ break;
-+ }
-+
-+ // TODO(F2): alpha
-+ mpVirtualDevice->SetLayoutMode( nLayoutMode );
-+ mpVirtualDevice->DrawText( aOutpos,
-+ text.Text,
-+ ::canvas::tools::numeric_cast<USHORT>(text.StartPosition),
-+ ::canvas::tools::numeric_cast<USHORT>(text.Length) );
-+ }
-+
-+ return uno::Reference< rendering::XCachedPrimitive >(NULL);
-+ }
-+
-+ uno::Reference< rendering::XCachedPrimitive > CanvasHelper::drawTextLayout( const rendering::XCanvas* pCanvas,
-+ const uno::Reference< rendering::XTextLayout >& xLayoutedText,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState )
-+ {
-+ CHECK_AND_THROW( xLayoutedText.is(),
-+ "CanvasHelper::drawTextLayout(): layout is NULL");
-+
-+ TextLayout* pTextLayout = dynamic_cast< TextLayout* >( xLayoutedText.get() );
-+
-+ if( pTextLayout )
-+ {
-+ if( !mpVirtualDevice )
-+ mpVirtualDevice = createVirtualDevice( mpSurface );
-+
-+ if( mpVirtualDevice )
-+ {
-+ // TODO(T3): Race condition. We're taking the font
-+ // from xLayoutedText, and then calling draw() at it,
-+ // without exclusive access. Move setupTextOutput(),
-+ // e.g. to impltools?
-+
-+ ::Point aOutpos;
-+ if( !setupTextOutput( *mpVirtualDevice, mpDevice, aOutpos, viewState, renderState, xLayoutedText->getFont() ) )
-+ return uno::Reference< rendering::XCachedPrimitive >(NULL); // no output necessary
-+
-+ // TODO(F2): What about the offset scalings?
-+ pTextLayout->draw( *mpVirtualDevice, aOutpos, viewState, renderState );
-+ }
-+ }
-+ else
-+ {
-+ CHECK_AND_THROW( false,
-+ "CanvasHelper::drawTextLayout(): TextLayout not compatible with this canvas" );
-+ }
-+
-+ return uno::Reference< rendering::XCachedPrimitive >(NULL);
-+ }
-+
-+}
diff --git a/patches/cairo/canvas-source-cairo-cairo_canvashelper_texturefill-cxx.diff b/patches/cairo/canvas-source-cairo-cairo_canvashelper_texturefill-cxx.diff
deleted file mode 100644
index e48d83c0f..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_canvashelper_texturefill-cxx.diff
+++ /dev/null
@@ -1,218 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_canvashelper_texturefill.cxx
-@@ -0,0 +1,215 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include <canvas/debug.hxx>
-+
-+#ifndef INCLUDED_RTL_MATH_HXX
-+#include <rtl/math.hxx>
-+#endif
-+
-+#ifndef _COM_SUN_STAR_RENDERING_TEXTDIRECTION_HPP__
-+#include <com/sun/star/rendering/TextDirection.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_RENDERING_TEXTURINGMODE_HPP_
-+#include <com/sun/star/rendering/TexturingMode.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_RENDERING_PATHCAPTYPE_HPP_
-+#include <com/sun/star/rendering/PathCapType.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_RENDERING_PATHJOINTYPE_HPP_
-+#include <com/sun/star/rendering/PathJoinType.hpp>
-+#endif
-+
-+#ifndef _TL_POLY_HXX
-+#include <tools/poly.hxx>
-+#endif
-+#ifndef _SV_WINDOW_HXX
-+#include <vcl/window.hxx>
-+#endif
-+#ifndef _SV_BITMAPEX_HXX
-+#include <vcl/bitmapex.hxx>
-+#endif
-+#ifndef _SV_BMPACC_HXX
-+#include <vcl/bmpacc.hxx>
-+#endif
-+#ifndef _VCL_CANVASTOOLS_HXX
-+#include <vcl/canvastools.hxx>
-+#endif
-+
-+#ifndef _BGFX_MATRIX_B2DHOMMATRIX_HXX
-+#include <basegfx/matrix/b2dhommatrix.hxx>
-+#endif
-+#ifndef _BGFX_RANGE_B2DRECTANGLE_HXX
-+#include <basegfx/range/b2drectangle.hxx>
-+#endif
-+#ifndef _BGFX_POINT_B2DPOINT_HXX
-+#include <basegfx/point/b2dpoint.hxx>
-+#endif
-+#ifndef _BGFX_VECTOR_B2DSIZE_HXX
-+#include <basegfx/vector/b2dsize.hxx>
-+#endif
-+#ifndef _BGFX_POLYGON_B2DPOLYGON_HXX
-+#include <basegfx/polygon/b2dpolygon.hxx>
-+#endif
-+#ifndef _BGFX_POLYGON_B2DPOLYGONTOOLS_HXX
-+#include <basegfx/polygon/b2dpolygontools.hxx>
-+#endif
-+#ifndef _BGFX_POLYGON_B2DPOLYPOLYGONTOOLS_HXX
-+#include <basegfx/polygon/b2dpolypolygontools.hxx>
-+#endif
-+#ifndef _BGFX_POLYGON_B2DLINEGEOMETRY_HXX
-+#include <basegfx/polygon/b2dlinegeometry.hxx>
-+#endif
-+#ifndef _BGFX_TOOLS_CANVASTOOLS_HXX
-+#include <basegfx/tools/canvastools.hxx>
-+#endif
-+#ifndef _BGFX_NUMERIC_FTOOLS_HXX
-+#include <basegfx/numeric/ftools.hxx>
-+#endif
-+
-+#include <utility>
-+
-+#include <comphelper/sequence.hxx>
-+#include <canvas/canvastools.hxx>
-+
-+#include "cairo_textlayout.hxx"
-+#include "cairo_parametricpolypolygon.hxx"
-+#include "cairo_canvashelper.hxx"
-+#include "cairo_canvasbitmap.hxx"
-+#include "cairo_impltools.hxx"
-+#include "cairo_canvasfont.hxx"
-+
-+using namespace ::com::sun::star;
-+
-+namespace cairocanvas
-+{
-+ namespace
-+ {
-+ bool textureFill( OutputDevice& rOutDev,
-+ GraphicObject& rGraphic,
-+ const ::Point& rPosPixel,
-+ const ::Size& rNextTileX,
-+ const ::Size& rNextTileY,
-+ sal_Int32 nTilesX,
-+ sal_Int32 nTilesY,
-+ const ::Size& rTileSize,
-+ const GraphicAttr& rAttr)
-+ {
-+ BOOL bRet( false );
-+ Point aCurrPos;
-+ int nX, nY;
-+
-+ for( nY=0; nY < nTilesY; ++nY )
-+ {
-+ aCurrPos.X() = rPosPixel.X() + nY*rNextTileY.Width();
-+ aCurrPos.Y() = rPosPixel.Y() + nY*rNextTileY.Height();
-+
-+ for( nX=0; nX < nTilesX; ++nX )
-+ {
-+ // update return value. This method should return true, if
-+ // at least one of the looped Draws succeeded.
-+ bRet |= rGraphic.Draw( &rOutDev,
-+ aCurrPos,
-+ rTileSize,
-+ &rAttr );
-+
-+ aCurrPos.X() += rNextTileX.Width();
-+ aCurrPos.Y() += rNextTileX.Height();
-+ }
-+ }
-+
-+ return bRet;
-+ }
-+
-+ inline sal_Int32 roundDown( const double& rVal )
-+ {
-+ return static_cast< sal_Int32 >( floor( rVal ) );
-+ }
-+
-+ inline sal_Int32 roundUp( const double& rVal )
-+ {
-+ return static_cast< sal_Int32 >( ceil( rVal ) );
-+ }
-+ }
-+
-+ uno::Reference< rendering::XCachedPrimitive > CanvasHelper::fillTexturedPolyPolygon( const rendering::XCanvas& rCanvas,
-+ const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState,
-+ const uno::Sequence< rendering::Texture >& textures )
-+ {
-+ CHECK_AND_THROW( xPolyPolygon.is(),
-+ "CanvasHelper::fillPolyPolygon(): polygon is NULL");
-+ CHECK_AND_THROW( textures.getLength(),
-+ "CanvasHelper::fillTexturedPolyPolygon: empty texture sequence");
-+
-+ cairo_save( mpCairo );
-+
-+ useStates( viewState, renderState, true );
-+ mpTextures = &textures;
-+ drawPolyPolygonPath( xPolyPolygon, Fill );
-+ mpTextures = NULL;
-+
-+ cairo_restore( mpCairo );
-+
-+ return uno::Reference< rendering::XCachedPrimitive >(NULL);
-+ }
-+}
diff --git a/patches/cairo/canvas-source-cairo-cairo_devicehelper-cxx.diff b/patches/cairo/canvas-source-cairo-cairo_devicehelper-cxx.diff
deleted file mode 100644
index 6837aa2ee..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_devicehelper-cxx.diff
+++ /dev/null
@@ -1,383 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_devicehelper.cxx
-@@ -0,0 +1,380 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#include <canvas/debug.hxx>
-+#include <canvas/verbosetrace.hxx>
-+#include <canvas/canvastools.hxx>
-+#include <canvas/base/linepolypolygonbase.hxx>
-+
-+#include <osl/mutex.hxx>
-+#include <cppuhelper/compbase1.hxx>
-+
-+#include <com/sun/star/lang/NoSupportException.hpp>
-+
-+#include <basegfx/tools/canvastools.hxx>
-+
-+#include <vcl/syschild.hxx>
-+#include <vcl/canvastools.hxx>
-+
-+#include <tools/stream.hxx>
-+
-+#include "cairo_helper.hxx"
-+#include "cairo_spritecanvas.hxx"
-+#include "cairo_canvasbitmap.hxx"
-+#include "cairo_devicehelper.hxx"
-+
-+using namespace ::cairo;
-+using namespace ::com::sun::star;
-+
-+namespace cairocanvas
-+{
-+ DeviceHelper::DeviceHelper() :
-+ mpSpriteCanvas( NULL ),
-+ maSize(),
-+ mbFullScreen( false ),
-+ mpBufferSurface( NULL ),
-+ mpBufferCairo( NULL ),
-+ mpWindowSurface( NULL )
-+ {
-+ }
-+
-+ void DeviceHelper::init( Window& rOutputWindow,
-+ SpriteCanvas& rSpriteCanvas,
-+ const ::basegfx::B2ISize& rSize,
-+ bool bFullscreen )
-+ {
-+ mpOutputWindow = &rOutputWindow;
-+ mpSpriteCanvas = &rSpriteCanvas;
-+ mbFullScreen = bFullscreen;
-+
-+ // check whether we're a SysChild: have to fetch system data
-+ // directly from SystemChildWindow, because the GetSystemData
-+ // method is unfortunately not virtual
-+ const SystemChildWindow* pSysChild = dynamic_cast< const SystemChildWindow* >( mpOutputWindow );
-+ if( pSysChild )
-+ mpSysData = pSysChild->GetSystemData();
-+ else
-+ mpSysData = mpOutputWindow->GetSystemData();
-+
-+ setSize( rSize );
-+ }
-+
-+ void DeviceHelper::disposing()
-+ {
-+ // release all references
-+ mpSpriteCanvas = NULL;
-+
-+ if( mpWindowSurface ) {
-+ mpWindowSurface->Unref();
-+ mpWindowSurface = NULL;
-+ }
-+
-+ if( mpBufferCairo ) {
-+ cairo_destroy( mpBufferCairo );
-+ mpBufferCairo = NULL;
-+ }
-+
-+ if( mpBufferSurface ) {
-+ mpBufferSurface->Unref();
-+ mpBufferSurface = NULL;
-+ }
-+ }
-+
-+ geometry::RealSize2D DeviceHelper::getPhysicalResolution()
-+ {
-+ if( !mpOutputWindow )
-+ return ::canvas::tools::createInfiniteSize2D(); // we're disposed
-+
-+ // Map a one-by-one millimeter box to pixel
-+ const MapMode aOldMapMode( mpOutputWindow->GetMapMode() );
-+ mpOutputWindow->SetMapMode( MapMode(MAP_MM) );
-+ const Size aPixelSize( mpOutputWindow->LogicToPixel(Size(1,1)) );
-+ mpOutputWindow->SetMapMode( aOldMapMode );
-+
-+ return ::vcl::unotools::size2DFromSize( aPixelSize );
-+ }
-+
-+ geometry::RealSize2D DeviceHelper::getPhysicalSize()
-+ {
-+ if( !mpOutputWindow )
-+ return ::canvas::tools::createInfiniteSize2D(); // we're disposed
-+
-+ // Map the pixel dimensions of the output window to millimeter
-+ const MapMode aOldMapMode( mpOutputWindow->GetMapMode() );
-+ mpOutputWindow->SetMapMode( MapMode(MAP_MM) );
-+ const Size aLogSize( mpOutputWindow->PixelToLogic(mpOutputWindow->GetOutputSizePixel()) );
-+ mpOutputWindow->SetMapMode( aOldMapMode );
-+
-+ return ::vcl::unotools::size2DFromSize( aLogSize );
-+ }
-+// geometry::RealSize2D DeviceHelper::getPhysicalResolution()
-+// {
-+// return geometry::RealSize2D( 75, 75 );
-+// }
-+
-+// geometry::RealSize2D DeviceHelper::getPhysicalSize()
-+// {
-+// return geometry::RealSize2D( 210, 280 );
-+// }
-+
-+ uno::Reference< rendering::XLinePolyPolygon2D > DeviceHelper::createCompatibleLinePolyPolygon(
-+ const uno::Reference< rendering::XGraphicDevice >& rDevice,
-+ const uno::Sequence< uno::Sequence< geometry::RealPoint2D > >& points )
-+ {
-+ // disposed?
-+ if( !mpSpriteCanvas )
-+ return uno::Reference< rendering::XLinePolyPolygon2D >(); // we're disposed
-+
-+ return uno::Reference< rendering::XLinePolyPolygon2D >(
-+ new ::canvas::LinePolyPolygonBase(
-+ ::basegfx::unotools::polyPolygonFromPoint2DSequenceSequence( points ) ) );
-+ }
-+
-+ uno::Reference< rendering::XBezierPolyPolygon2D > DeviceHelper::createCompatibleBezierPolyPolygon(
-+ const uno::Reference< rendering::XGraphicDevice >& rDevice,
-+ const uno::Sequence< uno::Sequence< geometry::RealBezierSegment2D > >& points )
-+ {
-+ // disposed?
-+ if( !mpSpriteCanvas )
-+ return uno::Reference< rendering::XBezierPolyPolygon2D >(); // we're disposed
-+
-+ return uno::Reference< rendering::XBezierPolyPolygon2D >(
-+ new ::canvas::LinePolyPolygonBase(
-+ ::basegfx::unotools::polyPolygonFromBezier2DSequenceSequence( points ) ) );
-+ }
-+
-+ uno::Reference< rendering::XBitmap > DeviceHelper::createCompatibleBitmap(
-+ const uno::Reference< rendering::XGraphicDevice >& rDevice,
-+ const geometry::IntegerSize2D& size )
-+ {
-+ // disposed?
-+ if( !mpSpriteCanvas )
-+ return uno::Reference< rendering::XBitmap >(); // we're disposed
-+
-+ return uno::Reference< rendering::XBitmap >(
-+ new CanvasBitmap(
-+ ::basegfx::unotools::b2ISizeFromIntegerSize2D( size ),
-+ mpSpriteCanvas,
-+ false ));
-+ }
-+
-+ uno::Reference< rendering::XVolatileBitmap > DeviceHelper::createVolatileBitmap(
-+ const uno::Reference< rendering::XGraphicDevice >& rDevice,
-+ const geometry::IntegerSize2D& size )
-+ {
-+ return uno::Reference< rendering::XVolatileBitmap >();
-+ }
-+
-+ uno::Reference< rendering::XBitmap > DeviceHelper::createCompatibleAlphaBitmap(
-+ const uno::Reference< rendering::XGraphicDevice >& rDevice,
-+ const geometry::IntegerSize2D& size )
-+ {
-+ // disposed?
-+ if( !mpSpriteCanvas )
-+ return uno::Reference< rendering::XBitmap >(); // we're disposed
-+
-+ return uno::Reference< rendering::XBitmap >(
-+ new CanvasBitmap(
-+ ::basegfx::unotools::b2ISizeFromIntegerSize2D( size ),
-+ mpSpriteCanvas,
-+ true ));
-+ }
-+
-+ uno::Reference< rendering::XVolatileBitmap > DeviceHelper::createVolatileAlphaBitmap(
-+ const uno::Reference< rendering::XGraphicDevice >& rDevice,
-+ const geometry::IntegerSize2D& size )
-+ {
-+ return uno::Reference< rendering::XVolatileBitmap >();
-+ }
-+
-+ sal_Bool DeviceHelper::hasFullScreenMode()
-+ {
-+ // TODO(F3): offer fullscreen mode the XCanvas way
-+ return false;
-+ }
-+
-+ sal_Bool DeviceHelper::enterFullScreenMode( sal_Bool bEnter )
-+ {
-+ // TODO(F3): offer fullscreen mode the XCanvas way
-+ return false;
-+ }
-+
-+ ::sal_Int32 DeviceHelper::createBuffers( ::sal_Int32 nBuffers )
-+ {
-+ // TODO(F3): implement XBufferStrategy interface. For now, we
-+ // _always_ will have exactly one backbuffer
-+ return 1;
-+ }
-+
-+ void DeviceHelper::destroyBuffers()
-+ {
-+ // TODO(F3): implement XBufferStrategy interface. For now, we
-+ // _always_ will have exactly one backbuffer
-+ }
-+
-+ ::sal_Bool DeviceHelper::showBuffer( ::sal_Bool bUpdateAll )
-+ {
-+ // forward to sprite canvas helper
-+ if( !mpSpriteCanvas )
-+ return false;
-+
-+ return mpSpriteCanvas->updateScreen( bUpdateAll );
-+ }
-+
-+ ::sal_Bool DeviceHelper::switchBuffer( ::sal_Bool bUpdateAll )
-+ {
-+ // no difference for Cairo canvas
-+ return showBuffer( bUpdateAll );
-+ }
-+
-+ uno::Any DeviceHelper::getDeviceHandle() const
-+ {
-+ return uno::makeAny( reinterpret_cast< sal_Int64 >(mpOutputWindow) );
-+ }
-+
-+ uno::Any DeviceHelper::getSurfaceHandle() const
-+ {
-+ return uno::Any();
-+ }
-+
-+ void DeviceHelper::dumpScreenContent() const
-+ {
-+ static sal_uInt32 nFilePostfixCount(0);
-+
-+ if( mpOutputWindow )
-+ {
-+ String aFilename( String::CreateFromAscii("dbg_frontbuffer") );
-+ aFilename += String::CreateFromInt32(nFilePostfixCount);
-+ aFilename += String::CreateFromAscii(".bmp");
-+
-+ SvFileStream aStream( aFilename, STREAM_STD_READWRITE );
-+
-+ const ::Point aEmptyPoint;
-+ bool bOldMap( mpOutputWindow->IsMapModeEnabled() );
-+ mpOutputWindow->EnableMapMode( FALSE );
-+ aStream << mpOutputWindow->GetBitmap(aEmptyPoint,
-+ mpOutputWindow->GetOutputSizePixel());
-+ mpOutputWindow->EnableMapMode( bOldMap );
-+
-+// if( mpBackBuffer )
-+// {
-+// String aFilename2( String::CreateFromAscii("dbg_backbuffer") );
-+// aFilename2 += String::CreateFromInt32(nFilePostfixCount);
-+// aFilename2 += String::CreateFromAscii(".bmp");
-+
-+// SvFileStream aStream2( aFilename2, STREAM_STD_READWRITE );
-+
-+// const ::Point aEmptyPoint;
-+// mpBackBuffer->getOutDev().EnableMapMode( FALSE );
-+// aStream2 << mpBackBuffer->getOutDev().GetBitmap(aEmptyPoint,
-+// mpBackBuffer->getOutDev().GetOutputSizePixel());
-+// }
-+
-+ ++nFilePostfixCount;
-+ }
-+ }
-+
-+ void DeviceHelper::setSize( const ::basegfx::B2ISize& rSize )
-+ {
-+ OSL_TRACE("set device size %d x %d", rSize.getX(), rSize.getY() );
-+
-+ maSize = rSize;
-+
-+ if( mpWindowSurface )
-+ {
-+ mpWindowSurface->Unref();
-+ }
-+ mpWindowSurface = new Surface( mpSysData,
-+ mpOutputWindow->GetOutOffXPixel(), mpOutputWindow->GetOutOffYPixel(),
-+ maSize.getX(), maSize.getY() );
-+
-+ if( mpBufferSurface )
-+ {
-+ mpBufferSurface->Unref();
-+ }
-+ mpBufferSurface = mpWindowSurface->getSimilar( CAIRO_CONTENT_COLOR, maSize.getX(), maSize.getY() );
-+
-+ if( mpBufferCairo )
-+ {
-+ cairo_destroy( mpBufferCairo );
-+ }
-+ mpBufferCairo = mpBufferSurface->getCairo();
-+
-+ mpSpriteCanvas->setSizePixel( maSize );
-+ }
-+
-+ const ::basegfx::B2ISize& DeviceHelper::getSizePixel()
-+ {
-+ return maSize;
-+ }
-+
-+ void DeviceHelper::notifySizeUpdate( const awt::Rectangle& rBounds )
-+ {
-+ setSize( ::basegfx::B2ISize(rBounds.Width, rBounds.Height) );
-+ }
-+
-+ Surface* DeviceHelper::getBufferSurface()
-+ {
-+ return mpBufferSurface;
-+ }
-+
-+ Surface* DeviceHelper::getWindowSurface()
-+ {
-+ return mpWindowSurface;
-+ }
-+
-+ Surface* DeviceHelper::getSurface( const ::basegfx::B2ISize& rSize, Content aContent )
-+ {
-+ if( mpBufferSurface )
-+ return mpBufferSurface->getSimilar( aContent, rSize.getX(), rSize.getY() );
-+
-+ return NULL;
-+ }
-+
-+ Surface* DeviceHelper::getSurface( Content aContent )
-+ {
-+ return getSurface( maSize, aContent );
-+ }
-+
-+ Surface* DeviceHelper::getSurface( BitmapSystemData& rData, const Size& rSize )
-+ {
-+ return new Surface ( mpSysData, &rData, rSize.Width(), rSize.Height() );
-+ }
-+
-+ void DeviceHelper::flush()
-+ {
-+ cairoHelperFlush( mpSysData );
-+ }
-+}
diff --git a/patches/cairo/canvas-source-cairo-cairo_devicehelper-hxx.diff b/patches/cairo/canvas-source-cairo-cairo_devicehelper-hxx.diff
deleted file mode 100644
index 2c394bd97..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_devicehelper-hxx.diff
+++ /dev/null
@@ -1,146 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_devicehelper.hxx
-@@ -0,0 +1,143 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CAIROCANVAS_DEVICEHELPER_HXX
-+#define _CAIROCANVAS_DEVICEHELPER_HXX
-+
-+#include <com/sun/star/awt/Rectangle.hpp>
-+#include <com/sun/star/rendering/XGraphicDevice.hpp>
-+#include <com/sun/star/rendering/XBufferController.hpp>
-+
-+#include <boost/utility.hpp>
-+
-+#include <vcl/window.hxx>
-+#include <vcl/bitmap.hxx>
-+
-+#include "cairo_cairo.hxx"
-+
-+/* Definition of DeviceHelper class */
-+
-+namespace cairocanvas
-+{
-+ class SpriteCanvas;
-+ class SpriteCanvasHelper;
-+
-+ class DeviceHelper : private ::boost::noncopyable
-+ {
-+ public:
-+ DeviceHelper();
-+
-+ void init( Window& rOutputWindow,
-+ SpriteCanvas& rSpriteCanvas,
-+ const ::basegfx::B2ISize& rSize,
-+ bool bFullscreen );
-+
-+ /// Dispose all internal references
-+ void disposing();
-+
-+ // XWindowGraphicDevice
-+ ::com::sun::star::geometry::RealSize2D getPhysicalResolution();
-+ ::com::sun::star::geometry::RealSize2D getPhysicalSize();
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XLinePolyPolygon2D > createCompatibleLinePolyPolygon(
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >& rDevice,
-+ const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::geometry::RealPoint2D > >& points );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBezierPolyPolygon2D > createCompatibleBezierPolyPolygon(
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >& rDevice,
-+ const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::geometry::RealBezierSegment2D > >& points );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > createCompatibleBitmap(
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >& rDevice,
-+ const ::com::sun::star::geometry::IntegerSize2D& size );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XVolatileBitmap > createVolatileBitmap(
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >& rDevice,
-+ const ::com::sun::star::geometry::IntegerSize2D& size );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > createCompatibleAlphaBitmap(
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >& rDevice,
-+ const ::com::sun::star::geometry::IntegerSize2D& size );
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XVolatileBitmap > createVolatileAlphaBitmap(
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >& rDevice,
-+ const ::com::sun::star::geometry::IntegerSize2D& size );
-+ sal_Bool hasFullScreenMode( );
-+ sal_Bool enterFullScreenMode( sal_Bool bEnter );
-+
-+ ::sal_Int32 createBuffers( ::sal_Int32 nBuffers );
-+ void destroyBuffers( );
-+ ::sal_Bool showBuffer( ::sal_Bool bUpdateAll );
-+ ::sal_Bool switchBuffer( ::sal_Bool bUpdateAll );
-+
-+ ::com::sun::star::uno::Any getDeviceHandle() const;
-+ ::com::sun::star::uno::Any getSurfaceHandle() const;
-+
-+ /** called when DumpScreenContent property is enabled on
-+ XGraphicDevice, and writes out bitmaps of current screen.
-+ */
-+ void dumpScreenContent() const;
-+
-+ void notifySizeUpdate( const ::com::sun::star::awt::Rectangle& rBounds );
-+ void setSize( const ::basegfx::B2ISize& rSize );
-+
-+ ::cairo::Surface* getBufferSurface();
-+ ::cairo::Surface* getWindowSurface();
-+ ::cairo::Surface* getSurface( const ::basegfx::B2ISize& rSize, ::cairo::Content aContent = ::cairo::CAIRO_CONTENT_COLOR_ALPHA );
-+ ::cairo::Surface* getSurface( ::cairo::Content aContent = ::cairo::CAIRO_CONTENT_COLOR_ALPHA );
-+ ::cairo::Surface* getSurface( BitmapSystemData& rData, const Size& rSize );
-+ const ::basegfx::B2ISize& getSizePixel();
-+ void flush();
-+
-+ Window* getOuputWindow()
-+ {
-+ return mpOutputWindow;
-+ }
-+
-+ private:
-+ /// Pointer to sprite canvas (owner of this helper), needed to create bitmaps
-+ SpriteCanvas* mpSpriteCanvas;
-+ ::basegfx::B2ISize maSize;
-+ bool mbFullScreen;
-+
-+ // TODO(Q3): Lifetime issue. Cannot control pointer validity
-+ // over object lifetime, since we're a UNO component. Now that
-+ // we've changed the ::Window canvas reference to a weak ref,
-+ // might be okay to hold a uno::Reference to the VCL window
-+ // here.
-+ Window* mpOutputWindow;
-+
-+ const SystemEnvData* mpSysData;
-+ ::cairo::Surface* mpWindowSurface;
-+ ::cairo::Surface* mpBufferSurface;
-+ ::cairo::Cairo* mpBufferCairo;
-+ };
-+}
-+
-+#endif /* _CAIROCANVAS_WINDOWGRAPHICDEVICE_HXX */
diff --git a/patches/cairo/canvas-source-cairo-cairo_helper-cxx.diff b/patches/cairo/canvas-source-cairo-cairo_helper-cxx.diff
deleted file mode 100644
index 9295669be..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_helper-cxx.diff
+++ /dev/null
@@ -1,192 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_helper.cxx
-@@ -0,0 +1,189 @@
-+#ifndef _SV_SYSDATA_HXX
-+#include <vcl/sysdata.hxx>
-+#endif
-+
-+#ifndef _SV_BITMAP_HXX
-+#include <vcl/bitmap.hxx>
-+#endif
-+
-+namespace cairo {
-+#include <X11/Xlib.h>
-+#include <X11/Xutil.h>
-+
-+#include <cairo.h>
-+#include <cairo-xlib.h>
-+
-+#ifdef CAIRO_HAS_GLITZ_SURFACE
-+#include <GL/glx.h>
-+
-+#include <cairo-glitz.h>
-+
-+#include <glitz.h>
-+#include <glitz-glx.h>
-+#endif
-+}
-+
-+using namespace ::cairo;
-+
-+//#define OOO_CANVAS_GLITZ 1
-+
-+int cairoHelperGetDefaultScreen( void* display )
-+{
-+ return DefaultScreen( ( (Display *) display ) );
-+}
-+
-+void*
-+cairoHelperGetGlitzDrawable( const SystemEnvData* pSysData, int width, int height )
-+{
-+#ifdef OOO_CANVAS_GLITZ
-+ Display* display = (Display*) pSysData->pDisplay;
-+ ::cairo::Window window = pSysData->aWindow;
-+ VisualID vid = XVisualIDFromVisual( (Visual*) pSysData->pVisual );
-+ int screen = DefaultScreen( display );
-+
-+ glitz_drawable_t *pDrawable = NULL;
-+ glitz_format_t* pFormat = NULL;
-+ glitz_drawable_format_t* pDrawableFormat;
-+ XWindowAttributes attrs;
-+
-+ XGetWindowAttributes (display, window, &attrs);
-+ VisualID wVID = XVisualIDFromVisual( attrs.visual );
-+ OSL_TRACE ("find format for visual id %d (%d)\n", wVID, vid);
-+ pDrawableFormat = glitz_glx_find_drawable_format_for_visual ( display, screen, wVID );
-+
-+ if( pDrawableFormat )
-+ OSL_TRACE ("format found color %d %d %d %d doublebuffer %d\n",
-+ pDrawableFormat->color.red_size,
-+ pDrawableFormat->color.green_size,
-+ pDrawableFormat->color.blue_size,
-+ pDrawableFormat->color.alpha_size,
-+ pDrawableFormat->doublebuffer);
-+
-+ if( pDrawableFormat && pDrawableFormat->doublebuffer == 0 )
-+ pDrawable = glitz_glx_create_drawable_for_window( display, screen, pDrawableFormat, window, attrs.width, attrs.height );
-+
-+ return pDrawable;
-+#endif
-+ return NULL;
-+}
-+
-+void*
-+cairoHelperGetGlitzSurface( const SystemEnvData* pSysData, void *drawable, int x, int y, int width, int height )
-+{
-+#ifdef OOO_CANVAS_GLITZ
-+ Display* display = (Display*) pSysData->pDisplay;
-+ ::cairo::Window window = pSysData->aWindow;
-+
-+ glitz_drawable_t *pDrawable = (glitz_drawable_t *) drawable;
-+ glitz_format_t* pFormat = NULL;
-+ glitz_surface_t* pGlitzSurface = NULL;
-+
-+ if( pDrawable )
-+ pFormat = glitz_find_standard_format (pDrawable, GLITZ_STANDARD_ARGB32 );
-+
-+ if( pFormat )
-+ pGlitzSurface = glitz_surface_create( pDrawable, pFormat, width, height, 0, NULL );
-+
-+ if (pGlitzSurface)
-+ glitz_surface_attach (pGlitzSurface, pDrawable, GLITZ_DRAWABLE_BUFFER_FRONT_COLOR, x, y );
-+
-+ if( pGlitzSurface )
-+ OSL_TRACE ("glitz surface created successfully\n");
-+
-+ return pGlitzSurface;
-+#endif
-+ return NULL;
-+}
-+
-+void*
-+cairoHelperGetSurface( const void* pSysDataVoid, int x, int y, int width, int height )
-+{
-+ const SystemEnvData* pSysData = (const SystemEnvData*) pSysDataVoid;
-+ cairo_surface_t* pSurface = NULL;
-+
-+#ifdef OOO_CANVAS_GLITZ
-+#ifdef CAIRO_HAS_GLITZ_SURFACE
-+ glitz_drawable_t* pGlitzDrawable;
-+ glitz_surface_t* pGlitzSurface;
-+
-+ OSL_TRACE ("try to create glitz surface %d x %d\n", width, height );
-+ pGlitzDrawable = (glitz_drawable_t*) cairoHelperGetGlitzDrawable( pSysData, width, height );
-+
-+ if( pGlitzDrawable ) {
-+ pGlitzSurface = (glitz_surface_t*) cairoHelperGetGlitzSurface( pSysData, pGlitzDrawable, x, y, width, height );
-+ glitz_drawable_destroy( pGlitzDrawable );
-+ }
-+
-+ if( pGlitzSurface ) {
-+ pSurface = cairo_glitz_surface_create( pGlitzSurface );
-+ glitz_surface_destroy( pGlitzSurface );
-+ }
-+
-+#endif
-+#endif
-+ if( !pSurface ) {
-+ pSurface=cairo_xlib_surface_create( (Display*) pSysData->pDisplay,
-+ pSysData->aWindow,
-+ (Visual*) pSysData->pVisual,
-+ width + x, height + y );
-+ cairo_surface_set_device_offset( pSurface, x, y );
-+ }
-+
-+ XSynchronize( (Display*) pSysData->pDisplay, TRUE );
-+
-+ return pSurface;
-+}
-+
-+void
-+cairoHelperFlush( const void* pSysDataVoid )
-+{
-+ const SystemEnvData* pSysData = (const SystemEnvData*) pSysDataVoid;
-+#ifdef OOO_CANVAS_GLITZ
-+ #ifdef CAIRO_HAS_GLITZ_SURFACE
-+ glXWaitGL();
-+ glXWaitX();
-+ //glFinish();
-+ #else
-+ XSync( (Display*) pSysData->pDisplay, false );
-+ #endif
-+#else
-+ XSync( (Display*) pSysData->pDisplay, false );
-+#endif
-+}
-+
-+void*
-+cairoHelperGetSurface( const void* pSysDataVoid, const void* pBmpDataVoid, int width, int height )
-+{
-+ const BitmapSystemData* pBmpData = (const BitmapSystemData*) pBmpDataVoid;
-+ const SystemEnvData* pSysData = (const SystemEnvData*) pSysDataVoid;
-+
-+ return cairo_xlib_surface_create( (Display*) pSysData->pDisplay,
-+ (Drawable) pBmpData->aPixmap,
-+ (Visual*) pSysData->pVisual,
-+ width, height );
-+}
-+
-+void*
-+cairoHelperGetDisplay( const void* pSysData )
-+{
-+ return ((const SystemEnvData*) pSysData)->pDisplay;
-+}
-+
-+long
-+cairoHelperGetWindow( const void* pSysData )
-+{
-+ return ((const SystemEnvData*) pSysData)->aWindow;
-+}
-+
-+void*
-+cairoHelperGetVisual( const void* pSysData )
-+{
-+ return ((const SystemEnvData*) pSysData)->pVisual;
-+}
-+
-+int
-+cairoHelperGetDepth( const void* pSysData )
-+{
-+ OSL_TRACE("depth: %d", ((const SystemEnvData*) pSysData)->nDepth);
-+ return ((const SystemEnvData*) pSysData)->nDepth;
-+}
diff --git a/patches/cairo/canvas-source-cairo-cairo_helper-hxx.diff b/patches/cairo/canvas-source-cairo-cairo_helper-hxx.diff
deleted file mode 100644
index 6aacce4ce..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_helper-hxx.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_helper.hxx
-@@ -0,0 +1,10 @@
-+int cairoHelperGetDefaultScreen( void* display );
-+void* cairoHelperGetGlitzDrawable( const void* pSysData, int width, int height );
-+void* cairoHelperGetGlitzSurface( const void* pSysData, void *drawable, int x, int y, int width, int height );
-+void* cairoHelperGetSurface( const void* pSysData, int x, int y, int width, int height );
-+void cairoHelperFlush( const void* pSysData );
-+void* cairoHelperGetSurface( const void* pSysData, const void *pBmpData, int width, int height );
-+void* cairoHelperGetDisplay( const void* pSysData );
-+long cairoHelperGetWindow( const void* pSysData );
-+void* cairoHelperGetVisual( const void* pSysData );
-+int cairoHelperGetDepth( const void* pSysData );
diff --git a/patches/cairo/canvas-source-cairo-cairo_impltools-cxx.diff b/patches/cairo/canvas-source-cairo-cairo_impltools-cxx.diff
deleted file mode 100644
index 7f4100189..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_impltools-cxx.diff
+++ /dev/null
@@ -1,448 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_impltools.cxx
-@@ -0,0 +1,445 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include <canvas/debug.hxx>
-+
-+#ifndef _USE_MATH_DEFINES
-+#define _USE_MATH_DEFINES // needed by Visual C++ for math constants
-+#endif
-+#include <math.h> // M_PI definition
-+
-+#ifndef _RTL_LOGFILE_HXX_
-+#include <rtl/logfile.hxx>
-+#endif
-+
-+#ifndef _COM_SUN_STAR_GEOMETRY_REALSIZE2D_HPP__
-+#include <com/sun/star/geometry/RealSize2D.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_GEOMETRY_REALPOINT2D_HPP__
-+#include <com/sun/star/geometry/RealPoint2D.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_GEOMETRY_REALRECTANGLE2D_HPP__
-+#include <com/sun/star/geometry/RealRectangle2D.hpp>
-+#endif
-+
-+#ifndef _COM_SUN_STAR_RENDERING_RENDERSTATE_HPP__
-+#include <com/sun/star/rendering/RenderState.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_RENDERING_XCANVAS_HPP__
-+#include <com/sun/star/rendering/XCanvas.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_RENDERING_XBITMAP_HPP__
-+#include <com/sun/star/rendering/XBitmap.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_RENDERING_XPOLYPOLYGON2D_HPP__
-+#include <com/sun/star/rendering/XPolyPolygon2D.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_GEOMETRY_REALBEZIERSEGMENT2D_HPP__
-+#include <com/sun/star/geometry/RealBezierSegment2D.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_RENDERING_XINTEGERBITMAP_HPP__
-+#include <com/sun/star/rendering/XIntegerBitmap.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_LANG_XUNOTUNNEL_HPP_
-+#include <com/sun/star/lang/XUnoTunnel.hpp>
-+#endif
-+
-+#ifndef _SV_SALBTYPE_HXX
-+#include <vcl/salbtype.hxx>
-+#endif
-+#ifndef _SV_BMPACC_HXX
-+#include <vcl/bmpacc.hxx>
-+#endif
-+#ifndef _SV_BITMAPEX_HXX
-+#include <vcl/bitmapex.hxx>
-+#endif
-+#ifndef _SV_METRIC_HXX
-+#include <vcl/metric.hxx>
-+#endif
-+#ifndef _VCL_CANVASTOOLS_HXX
-+#include <vcl/canvastools.hxx>
-+#endif
-+
-+#ifndef _BGFX_POINT_B2DPOINT_HXX
-+#include <basegfx/point/b2dpoint.hxx>
-+#endif
-+#ifndef _BGFX_TUPLE_B2DTUPLE_HXX
-+#include <basegfx/tuple/b2dtuple.hxx>
-+#endif
-+#ifndef _BGFX_RANGE_B2DRECTANGLE_HXX
-+#include <basegfx/range/b2drectangle.hxx>
-+#endif
-+#ifndef _BGFX_MATRIX_B2DHOMMATRIX_HXX
-+#include <basegfx/matrix/b2dhommatrix.hxx>
-+#endif
-+#ifndef _BGFX_TOOLS_CANVASTOOLS_HXX
-+#include <basegfx/tools/canvastools.hxx>
-+#endif
-+#ifndef _BGFX_NUMERIC_FTOOLS_HXX
-+#include <basegfx/numeric/ftools.hxx>
-+#endif
-+
-+#ifndef INCLUDED_RTL_MATH_HXX
-+#include <rtl/math.hxx>
-+#endif
-+
-+#include <canvas/canvastools.hxx>
-+
-+#include "cairo_impltools.hxx"
-+#include "cairo_linepolypolygon.hxx"
-+#include "cairo_canvasbitmap.hxx"
-+
-+#include <numeric>
-+
-+
-+using namespace ::com::sun::star;
-+using namespace ::cairo;
-+
-+namespace cairocanvas
-+{
-+ namespace tools
-+ {
-+ ::basegfx::B2DPolyPolygon polyPolygonFromXPolyPolygon2D( const uno::Reference< rendering::XPolyPolygon2D >& xPoly )
-+ {
-+ LinePolyPolygon* pPolyImpl = dynamic_cast< LinePolyPolygon* >( xPoly.get() );
-+
-+ if( pPolyImpl )
-+ {
-+ return pPolyImpl->getPolyPolygon();
-+ }
-+ else
-+ {
-+ const sal_Int32 nPolys( xPoly->getNumberOfPolygons() );
-+
-+ // not a known implementation object - try data source
-+ // interfaces
-+ uno::Reference< rendering::XBezierPolyPolygon2D > xBezierPoly(
-+ xPoly,
-+ uno::UNO_QUERY );
-+
-+ if( xBezierPoly.is() )
-+ {
-+ return ::basegfx::unotools::polyPolygonFromBezier2DSequenceSequence(
-+ xBezierPoly->getBezierSegments( 0,
-+ nPolys,
-+ 0,
-+ -1 ) );
-+ }
-+ else
-+ {
-+ uno::Reference< rendering::XLinePolyPolygon2D > xLinePoly(
-+ xPoly,
-+ uno::UNO_QUERY );
-+
-+ // no implementation class and no data provider
-+ // found - contract violation.
-+ CHECK_AND_THROW( xLinePoly.is(),
-+ "CairoCanvas::polyPolygonFromXPolyPolygon2D(): Invalid input "
-+ "poly-polygon, cannot retrieve vertex data" );
-+
-+ return ::basegfx::unotools::polyPolygonFromPoint2DSequenceSequence(
-+ xLinePoly->getPoints( 0,
-+ nPolys,
-+ 0,
-+ -1 ) );
-+ }
-+ }
-+ }
-+
-+ Cairo* cairoFromXBitmap( const uno::Reference< rendering::XBitmap >& xBitmap )
-+ {
-+ uno::Reference< lang::XServiceInfo > xRef( xBitmap,
-+ uno::UNO_QUERY );
-+
-+ if( xRef.is() &&
-+ xRef->getImplementationName().equals( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CANVASBITMAP_IMPLEMENTATION_NAME))) )
-+ {
-+ // TODO(Q1): Maybe use dynamic_cast here
-+ return static_cast<CanvasBitmap*>(xBitmap.get())->getCairo();
-+ }
-+
-+ return NULL;
-+ }
-+
-+ ::BitmapEx bitmapExFromXBitmap( const uno::Reference< rendering::XBitmap >& xBitmap )
-+ {
-+ uno::Reference< lang::XUnoTunnel > xTunnel( xBitmap, uno::UNO_QUERY );
-+ if( xTunnel.is() )
-+ {
-+ sal_Int64 nPtr = xTunnel->getSomething( vcl::unotools::getTunnelIdentifier( vcl::unotools::Id_BitmapEx ) );
-+ if( nPtr )
-+ return BitmapEx( *(BitmapEx*)nPtr );
-+ }
-+
-+ // TODO(F1): extract pixel from XBitmap interface
-+ ENSURE_AND_THROW( false,
-+ "bitmapExFromXBitmap(): could not extract BitmapEx" );
-+
-+ return ::BitmapEx();
-+ }
-+
-+ Surface* surfaceFromXBitmap( const uno::Reference< rendering::XBitmap >& xBitmap, const WindowGraphicDevice::ImplRef& rDevice, unsigned char*& data )
-+ {
-+ Surface* pSurface = NULL;
-+ Cairo* pCairo = cairoFromXBitmap( xBitmap );
-+ if( pCairo ) {
-+ pSurface = cairo_get_target( pCairo );
-+ cairo_surface_reference( pSurface );
-+ data = NULL;
-+ } else {
-+ BitmapEx aBmpEx = bitmapExFromXBitmap(xBitmap);
-+ Bitmap aBitmap = aBmpEx.GetBitmap();
-+ AlphaMask aAlpha = aBmpEx.GetAlpha();
-+
-+ // there's no pixmap for alpha bitmap. we might still
-+ // use rgb pixmap and only access alpha pixels the
-+ // slow way. now we just speedup rgb bitmaps
-+ if( !aBmpEx.IsTransparent() && !aBmpEx.IsAlpha() ) {
-+ WindowGraphicDevice::ImplRef xDevice = rDevice;
-+ pSurface = xDevice->getSurface( aBitmap );
-+ data = NULL;
-+ }
-+
-+ if( !pSurface ) {
-+
-+ BitmapReadAccess* pBitmapReadAcc = aBitmap.AcquireReadAccess();
-+ BitmapReadAccess* pAlphaReadAcc = aAlpha.AcquireReadAccess();
-+
-+ const long nWidth = pBitmapReadAcc->Width();
-+ const long nHeight = pBitmapReadAcc->Height();
-+ long nX, nY;
-+
-+ OSL_TRACE( "fallback to XBitmap interface - slow\n" );
-+
-+ data = (unsigned char*) malloc( nWidth*nHeight*4 );
-+ long nOff = 0;
-+ Color aColor;
-+ unsigned int nAlpha = 255;
-+
-+ for( nY = 0; nY < nHeight; nY++ )
-+ for( nX = 0; nX < nWidth; nX++ ) {
-+ if( pAlphaReadAcc)
-+ nAlpha = 255 - pAlphaReadAcc->GetColor( nY, nX ).GetBlue();
-+ aColor = pBitmapReadAcc->GetColor( nY, nX );
-+
-+ // cairo need premultiplied color values
-+ // TODO(rodo) handle endianess
-+ data [nOff++] = ( nAlpha*aColor.GetBlue() )/255;
-+ data [nOff++] = ( nAlpha*aColor.GetGreen() )/255;
-+ data [nOff++] = ( nAlpha*aColor.GetRed() )/255;
-+ data [nOff++] = nAlpha;
-+ }
-+
-+ pSurface = cairo_image_surface_create_for_data( data, CAIRO_FORMAT_ARGB32, nWidth, nHeight, nWidth*4 );
-+ }
-+ }
-+
-+ return pSurface;
-+ }
-+
-+ bool setupFontTransform( ::Point& o_rPoint,
-+ ::Font& io_rVCLFont,
-+ const rendering::ViewState& rViewState,
-+ const rendering::RenderState& rRenderState,
-+ ::OutputDevice& rOutDev )
-+ {
-+ ::basegfx::B2DHomMatrix aMatrix;
-+
-+ ::canvas::tools::mergeViewAndRenderTransform(aMatrix,
-+ rViewState,
-+ rRenderState);
-+
-+ ::basegfx::B2DTuple aScale;
-+ ::basegfx::B2DTuple aTranslate;
-+ double nRotate, nShearX;
-+
-+ aMatrix.decompose( aScale, aTranslate, nRotate, nShearX );
-+
-+ // query font metric _before_ tampering with width and height
-+ if( !::rtl::math::approxEqual(aScale.getX(), aScale.getY()) )
-+ {
-+ // retrieve true font width
-+ const sal_Int32 nFontWidth( rOutDev.GetFontMetric( io_rVCLFont ).GetWidth() );
-+
-+ const sal_Int32 nScaledFontWidth( ::basegfx::fround(nFontWidth * aScale.getX()) );
-+
-+ if( !nScaledFontWidth )
-+ {
-+ // scale is smaller than one pixel - disable text
-+ // output altogether
-+ return false;
-+ }
-+
-+ io_rVCLFont.SetWidth( nScaledFontWidth );
-+ }
-+
-+ if( !::rtl::math::approxEqual(aScale.getY(), 1.0) )
-+ {
-+ const sal_Int32 nFontHeight( io_rVCLFont.GetHeight() );
-+ io_rVCLFont.SetHeight( ::basegfx::fround(nFontHeight * aScale.getY()) );
-+ }
-+
-+ io_rVCLFont.SetOrientation( static_cast< short >( ::basegfx::fround(-fmod(nRotate, 2*M_PI)*(1800.0/M_PI)) ) );
-+
-+ // TODO(F2): Missing functionality in VCL: shearing
-+ o_rPoint.X() = ::basegfx::fround(aTranslate.getX());
-+ o_rPoint.Y() = ::basegfx::fround(aTranslate.getY());
-+
-+ return true;
-+ }
-+
-+ bool isPolyPolygonEqualRectangle( const PolyPolygon& rPolyPoly,
-+ const Rectangle& rRect )
-+ {
-+ // exclude some cheap cases first
-+ if( rPolyPoly.Count() != 1 )
-+ return false;
-+
-+ const ::Polygon& rPoly( rPolyPoly[0] );
-+
-+ USHORT nCount( rPoly.GetSize() );
-+ if( nCount != 4 && nCount != 5 )
-+ return false;
-+
-+ // fill array with rectangle vertices
-+ const ::Point aPoints[4] =
-+ {
-+ rRect.TopLeft(),
-+ rRect.TopRight(),
-+ rRect.BottomRight(),
-+ rRect.BottomLeft()
-+ };
-+
-+ // now match polygon and rectangle start points, to
-+ // facilitate point-by-point comparison
-+ const ::Point* aIter;
-+ const ::Point* const aEnd( &aPoints[5] );
-+ if( (aIter=::std::find( aPoints, aEnd,
-+ rPoly[0] )) == aEnd )
-+ return false; // point not found
-+
-+ // determine index from iterator
-+ const ::std::size_t nIndexOfFirstPoint( aIter - aPoints );
-+
-+ bool bNotMatching( false ); // when true, at least on
-+ // point does not match
-+
-+ // start point found, now try forward sweep to match
-+ // points
-+ for( USHORT i=0; i<4; ++i )
-+ {
-+ if( rPoly[i] != aPoints[ (i+nIndexOfFirstPoint)%4 ] )
-+ {
-+ bNotMatching = true;
-+ break;
-+ }
-+ }
-+
-+ if( !bNotMatching )
-+ return true; // all points match, done
-+
-+ // at least one point doesn't match, try reverse sweep to
-+ // match points
-+ for( USHORT i=0; i<4; ++i )
-+ {
-+ if( rPoly[i] != aPoints[ (4-i+nIndexOfFirstPoint)%4 ] )
-+ return false; // nothing more to try, exit directly
-+ }
-+
-+ // all points for reverse sweep match
-+ return true;
-+ }
-+
-+
-+ // VCL-Canvas related
-+ //---------------------------------------------------------------------
-+
-+ ::Point mapRealPoint2D( const geometry::RealPoint2D& rPoint,
-+ const rendering::ViewState& rViewState,
-+ const rendering::RenderState& rRenderState )
-+ {
-+ ::basegfx::B2DPoint aPoint( ::basegfx::unotools::b2DPointFromRealPoint2D(rPoint) );
-+
-+ ::basegfx::B2DHomMatrix aMatrix;
-+ aPoint *= ::canvas::tools::mergeViewAndRenderTransform(aMatrix,
-+ rViewState,
-+ rRenderState);
-+
-+ return ::vcl::unotools::pointFromB2DPoint( aPoint );
-+ }
-+
-+ ::PolyPolygon mapPolyPolygon( const ::basegfx::B2DPolyPolygon& rPoly,
-+ const rendering::ViewState& rViewState,
-+ const rendering::RenderState& rRenderState )
-+ {
-+ ::basegfx::B2DHomMatrix aMatrix;
-+ ::canvas::tools::mergeViewAndRenderTransform(aMatrix,
-+ rViewState,
-+ rRenderState);
-+
-+ ::basegfx::B2DPolyPolygon aTemp( rPoly );
-+
-+ aTemp.transform( aMatrix );
-+
-+ return ::PolyPolygon( aTemp );
-+ }
-+ }
-+}
diff --git a/patches/cairo/canvas-source-cairo-cairo_impltools-hxx.diff b/patches/cairo/canvas-source-cairo-cairo_impltools-hxx.diff
deleted file mode 100644
index 4f77b3e13..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_impltools-hxx.diff
+++ /dev/null
@@ -1,261 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_impltools.hxx
-@@ -0,0 +1,258 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _VCLCANVAS_TOOLS_HXX
-+#define _VCLCANVAS_TOOLS_HXX
-+
-+#ifndef _OSL_MUTEX_HXX_
-+#include <osl/mutex.hxx>
-+#endif
-+#ifndef _VOS_MUTEX_HXX_
-+#include <vos/mutex.hxx>
-+#endif
-+#ifndef _SV_SVAPP_HXX
-+#include <vcl/svapp.hxx>
-+#endif
-+
-+#ifndef _SV_OUTDEV_HXX
-+#include <vcl/outdev.hxx>
-+#endif
-+
-+#ifndef _BGFX_POLYGON_B2DPOLYPOLYGON_HXX
-+#include <basegfx/polygon/b2dpolypolygon.hxx>
-+#endif
-+
-+#ifndef _COM_SUN_STAR_UNO_REFERENCE_HXX_
-+#include <com/sun/star/uno/Reference.hxx>
-+#endif
-+#ifndef _COM_SUN_STAR_UNO_SEQUENCE_HXX_
-+#include <com/sun/star/uno/Sequence.hxx>
-+#endif
-+
-+#ifndef BOOST_SHARED_PTR_HPP_INCLUDED
-+#include <boost/shared_ptr.hpp>
-+#endif
-+
-+#include <canvas/vclwrapper.hxx>
-+
-+#include "cairo_cairo.hxx"
-+#include "cairo_outdevprovider.hxx"
-+#include "cairo_windowgraphicdevice.hxx"
-+
-+class OutputDevice;
-+class Point;
-+class Size;
-+
-+namespace basegfx
-+{
-+ namespace matrix
-+ {
-+ class B2DHomMatrix;
-+ }
-+ namespace vector
-+ {
-+ class B2DVector;
-+ }
-+ namespace point
-+ {
-+ class B2DPoint;
-+ }
-+}
-+
-+namespace com { namespace sun { namespace star { namespace awt
-+{
-+ struct Point;
-+ struct Size;
-+ struct Rectangle;
-+} } } }
-+
-+namespace com { namespace sun { namespace star { namespace drawing
-+{
-+ struct HomogenMatrix3;
-+} } } }
-+
-+namespace com { namespace sun { namespace star { namespace geometry
-+{
-+ struct RealPoint2D;
-+ struct RealSize2D;
-+ struct RealRectangle2D;
-+} } } }
-+
-+namespace com { namespace sun { namespace star { namespace rendering
-+{
-+ struct RenderState;
-+ struct ViewState;
-+ class XCanvas;
-+ class XBitmap;
-+ class XPolyPolygon2D;
-+} } } }
-+
-+
-+namespace cairocanvas
-+{
-+ namespace tools
-+ {
-+ ::basegfx::B2DPolyPolygon
-+ polyPolygonFromXPolyPolygon2D( const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XPolyPolygon2D >& );
-+
-+ ::BitmapEx bitmapExFromXBitmap( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap >& );
-+ ::cairo::Cairo* cairoFromXBitmap( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap >& );
-+ ::cairo::Surface* surfaceFromXBitmap( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap >& xBitmap,
-+ const WindowGraphicDevice::ImplRef& rDevice,
-+ unsigned char*& data );
-+
-+ /** Setup VCL font and output position
-+
-+ @returns false, if no text output should happen
-+ */
-+ bool setupFontTransform( ::Point& o_rPoint,
-+ ::Font& io_rVCLFont,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState,
-+ ::OutputDevice& rOutDev );
-+
-+ /** Predicate, to determine whether polygon is equal to given rectangle
-+
-+ @return true, if the polygon exactly describes the given rectangle
-+ */
-+ bool isPolyPolygonEqualRectangle( const PolyPolygon& rPolyPoly,
-+ const Rectangle& rRect );
-+
-+
-+ // Little helper to encapsulate locking into policy class
-+ class LocalGuard
-+ {
-+ public:
-+ LocalGuard() :
-+ aGuard( Application::GetSolarMutex() )
-+ {
-+ }
-+
-+ /// To be compatible with CanvasBase mutex concept
-+ LocalGuard( const ::osl::Mutex& ) :
-+ aGuard( Application::GetSolarMutex() )
-+ {
-+ }
-+
-+ private:
-+ ::vos::OGuard aGuard;
-+ };
-+
-+ class OutDevStateKeeper
-+ {
-+ public:
-+ typedef ::boost::shared_ptr< canvas::vcltools::VCLObject< OutputDevice > > OutputDeviceSharedPtr;
-+
-+ explicit OutDevStateKeeper( OutputDevice& rOutDev ) :
-+ mpOutDev( &rOutDev ),
-+ mbMappingWasEnabled( mpOutDev->IsMapModeEnabled() )
-+ {
-+ init();
-+ }
-+
-+ explicit OutDevStateKeeper( const OutDevProviderSharedPtr& rOutDev ) :
-+ mpOutDev( rOutDev.get() ? &(rOutDev->getOutDev()) : NULL ),
-+ mbMappingWasEnabled( mpOutDev ? mpOutDev->IsMapModeEnabled() : false )
-+ {
-+ init();
-+ }
-+
-+ ~OutDevStateKeeper()
-+ {
-+ if( mpOutDev )
-+ {
-+ mpOutDev->EnableMapMode( mbMappingWasEnabled );
-+ mpOutDev->Pop();
-+ }
-+ }
-+
-+ private:
-+ void init()
-+ {
-+ if( mpOutDev )
-+ {
-+ mpOutDev->Push();
-+ mpOutDev->EnableMapMode(FALSE);
-+ }
-+ }
-+
-+ OutputDevice* mpOutDev;
-+ const bool mbMappingWasEnabled;
-+ };
-+
-+ ::Point mapRealPoint2D( const ::com::sun::star::geometry::RealPoint2D& rPoint,
-+ const ::com::sun::star::rendering::ViewState& rViewState,
-+ const ::com::sun::star::rendering::RenderState& rRenderState );
-+
-+ ::PolyPolygon mapPolyPolygon( const ::basegfx::B2DPolyPolygon& rPoly,
-+ const ::com::sun::star::rendering::ViewState& rViewState,
-+ const ::com::sun::star::rendering::RenderState& rRenderState );
-+
-+ enum ModulationMode
-+ {
-+ MODULATE_NONE,
-+ MODULATE_WITH_DEVICECOLOR
-+ };
-+ }
-+}
-+
-+#endif /* _VCLCANVAS_TOOLS_HXX */
diff --git a/patches/cairo/canvas-source-cairo-cairo_linepolypolygon-cxx.diff b/patches/cairo/canvas-source-cairo-cairo_linepolypolygon-cxx.diff
deleted file mode 100644
index 68643c759..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_linepolypolygon-cxx.diff
+++ /dev/null
@@ -1,117 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_linepolypolygon.cxx
-@@ -0,0 +1,114 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _VCL_CANVASTOOLS_HXX
-+#include <vcl/canvastools.hxx>
-+#endif
-+#ifndef _BGFX_POLYGON_B2DPOLYGON_HXX
-+#include <basegfx/polygon/b2dpolygon.hxx>
-+#endif
-+#ifndef _BGFX_TOOLS_CANVASTOOLS_HXX
-+#include <basegfx/tools/canvastools.hxx>
-+#endif
-+
-+#include <canvas/canvastools.hxx>
-+
-+#include "cairo_impltools.hxx"
-+#include "cairo_linepolypolygon.hxx"
-+
-+
-+
-+using namespace ::com::sun::star;
-+
-+namespace cairocanvas
-+{
-+
-+ LinePolyPolygon::LinePolyPolygon( const ::basegfx::B2DPolyPolygon& rPolyPoly ) :
-+ ::canvas::tools::LinePolyPolygonBase( rPolyPoly )
-+ {
-+ }
-+
-+ LinePolyPolygon::~LinePolyPolygon()
-+ {
-+ }
-+
-+ ::rtl::OUString SAL_CALL LinePolyPolygon::getImplementationName() throw (uno::RuntimeException)
-+ {
-+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( LINEPOLYPOLYGON_IMPLEMENTATION_NAME ) );
-+ }
-+
-+#define SERVICE_NAME "com.sun.star.rendering.LinePolyPolygon"
-+
-+ sal_Bool SAL_CALL LinePolyPolygon::supportsService( const ::rtl::OUString& ServiceName ) throw (uno::RuntimeException)
-+ {
-+ return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
-+ }
-+
-+ uno::Sequence< ::rtl::OUString > SAL_CALL LinePolyPolygon::getSupportedServiceNames( ) throw (uno::RuntimeException)
-+ {
-+ uno::Sequence< ::rtl::OUString > aRet(1);
-+ aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
-+
-+ return aRet;
-+ }
-+}
-+
-+// eof
diff --git a/patches/cairo/canvas-source-cairo-cairo_linepolypolygon-hxx.diff b/patches/cairo/canvas-source-cairo-cairo_linepolypolygon-hxx.diff
deleted file mode 100644
index 005e66397..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_linepolypolygon-hxx.diff
+++ /dev/null
@@ -1,103 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_linepolypolygon.hxx
-@@ -0,0 +1,100 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _VCLCANVAS_LINEPOLYPOLYGON_HXX_
-+#define _VCLCANVAS_LINEPOLYPOLYGON_HXX_
-+
-+#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
-+#include <com/sun/star/lang/XServiceInfo.hpp>
-+#endif
-+
-+#ifndef _BGFX_POLYGON_B2DPOLYPOLYGON_HXX
-+#include <basegfx/polygon/b2dpolypolygon.hxx>
-+#endif
-+
-+#include <canvas/canvastools.hxx>
-+#include <canvas/linepolypolygonbase.hxx>
-+#include <canvas/vclwrapper.hxx>
-+
-+
-+#define LINEPOLYPOLYGON_IMPLEMENTATION_NAME "CairoCanvas::LinePolyPolygon"
-+
-+namespace cairocanvas
-+{
-+ class LinePolyPolygon : public ::canvas::tools::LinePolyPolygonBase
-+ {
-+ public:
-+ explicit LinePolyPolygon( const ::basegfx::B2DPolyPolygon& );
-+
-+ // XServiceInfo
-+ virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException);
-+
-+ protected:
-+ ~LinePolyPolygon(); // we're a ref-counted UNO class. _We_ destroy ourselves.
-+
-+ private:
-+ };
-+}
-+
-+#endif /* _VCLCANVAS_LINEPOLYPOLYGON_HXX_ */
-+// eof
diff --git a/patches/cairo/canvas-source-cairo-cairo_outdevprovider-hxx.diff b/patches/cairo/canvas-source-cairo-cairo_outdevprovider-hxx.diff
deleted file mode 100644
index be8661328..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_outdevprovider-hxx.diff
+++ /dev/null
@@ -1,95 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_outdevprovider.hxx
-@@ -0,0 +1,92 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _VCLCANVAS_OUTDEVPROVIDER_HXX
-+#define _VCLCANVAS_OUTDEVPROVIDER_HXX
-+
-+#include <sal/types.h>
-+
-+#ifndef BOOST_SHARED_PTR_HPP_INCLUDED
-+#include <boost/shared_ptr.hpp>
-+#endif
-+
-+class OutputDevice;
-+
-+namespace cairocanvas
-+{
-+ /* Definition of OutDevProvider interface */
-+
-+ /** Implementers of this interface provide the CanvasHelper
-+ with its OutputDevice
-+ */
-+ class OutDevProvider
-+ {
-+ public:
-+ virtual ~OutDevProvider() {}
-+
-+ virtual OutputDevice& getOutDev() = 0;
-+ virtual const OutputDevice& getOutDev() const = 0;
-+ };
-+
-+ typedef ::boost::shared_ptr< OutDevProvider > OutDevProviderSharedPtr;
-+}
-+
-+#endif /* _VCLCANVAS_OUTDEVPROVIDER_HXX */
diff --git a/patches/cairo/canvas-source-cairo-cairo_parametricpolypolygon-cxx.diff b/patches/cairo/canvas-source-cairo-cairo_parametricpolypolygon-cxx.diff
deleted file mode 100644
index eecaf875a..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_parametricpolypolygon-cxx.diff
+++ /dev/null
@@ -1,278 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_parametricpolypolygon.cxx
-@@ -0,0 +1,275 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _USE_MATH_DEFINES
-+#define _USE_MATH_DEFINES // needed by Visual C++ for math constants
-+#endif
-+#include <math.h> // M_PI definition
-+
-+#include <canvas/debug.hxx>
-+#include <canvas/canvastools.hxx>
-+
-+#ifndef INCLUDED_RTL_MATH_HXX
-+#include <rtl/math.hxx>
-+#endif
-+
-+#ifndef _VCL_CANVASTOOLS_HXX
-+#include <vcl/canvastools.hxx>
-+#endif
-+#ifndef _BGFX_MATRIX_B2DHOMMATRIX_HXX
-+#include <basegfx/matrix/b2dhommatrix.hxx>
-+#endif
-+#ifndef _BGFX_POLYGON_B2DPOLYGONTOOLS_HXX
-+#include <basegfx/polygon/b2dpolygontools.hxx>
-+#endif
-+#ifndef _BGFX_POINT_B2DPOINT_HXX
-+#include <basegfx/point/b2dpoint.hxx>
-+#endif
-+#ifndef _BGFX_RANGE_B2DRECTANGLE_HXX
-+#include <basegfx/range/b2drectangle.hxx>
-+#endif
-+#ifndef _BGFX_TOOLS_CANVASTOOLS_HXX
-+#include <basegfx/tools/canvastools.hxx>
-+#endif
-+#ifndef _BGFX_NUMERIC_FTOOLS_HXX
-+#include <basegfx/numeric/ftools.hxx>
-+#endif
-+#ifndef _BGFX_TOOLS_TOOLS_HXX
-+#include <basegfx/tools/tools.hxx>
-+#endif
-+
-+#include <limits>
-+
-+#include "cairo_impltools.hxx"
-+#include "cairo_parametricpolypolygon.hxx"
-+
-+using namespace ::com::sun::star;
-+using namespace ::cairo;
-+
-+double calcAspectRatio( const geometry::RealRectangle2D& rBoundRect )
-+{
-+ const double nWidth( rBoundRect.X2 - rBoundRect.X1 );
-+ const double nHeight( rBoundRect.Y2 - rBoundRect.Y1 );
-+
-+ return ::basegfx::fTools::equalZero( nHeight ) ? 1.0 : fabs( nWidth / nHeight );
-+}
-+
-+namespace cairocanvas
-+{
-+ ParametricPolyPolygon* ParametricPolyPolygon::createLinearHorizontalGradient( const uno::Sequence< double >& leftColor,
-+ const uno::Sequence< double >& rightColor,
-+ const uno::Reference< rendering::XGraphicDevice >& xDevice )
-+ {
-+ return new ParametricPolyPolygon( GRADIENT_LINEAR, leftColor, rightColor );
-+ }
-+
-+ ParametricPolyPolygon* ParametricPolyPolygon::createAxialHorizontalGradient( const uno::Sequence< double >& middleColor,
-+ const uno::Sequence< double >& endColor,
-+ const uno::Reference< rendering::XGraphicDevice >& xDevice )
-+ {
-+ return new ParametricPolyPolygon( GRADIENT_AXIAL, endColor, middleColor );
-+ }
-+
-+ ParametricPolyPolygon* ParametricPolyPolygon::createEllipticalGradient( const uno::Sequence< double >& centerColor,
-+ const uno::Sequence< double >& endColor,
-+ const geometry::RealRectangle2D& boundRect,
-+ const uno::Reference< rendering::XGraphicDevice >& xDevice )
-+ {
-+ // NYI
-+ OSL_TRACE( "TODO: ParametricPolyPolygon::createEllipticalGradient\n" );
-+ return new ParametricPolyPolygon( GRADIENT_ELLIPTICAL, centerColor, endColor, calcAspectRatio (boundRect) );
-+ }
-+
-+ ParametricPolyPolygon* ParametricPolyPolygon::createRectangularGradient( const uno::Sequence< double >& centerColor,
-+ const uno::Sequence< double >& endColor,
-+ const geometry::RealRectangle2D& boundRect,
-+ const uno::Reference< rendering::XGraphicDevice >& xDevice )
-+ {
-+ // NYI
-+ OSL_TRACE( "TODO: ParametricPolyPolygon::createRectangularGradient\n" );
-+ return new ParametricPolyPolygon( GRADIENT_RECTANGULAR, endColor, centerColor, calcAspectRatio( boundRect ) );
-+ }
-+
-+ void SAL_CALL ParametricPolyPolygon::disposing()
-+ {
-+ }
-+
-+ uno::Reference< rendering::XPolyPolygon2D > SAL_CALL ParametricPolyPolygon::getOutline( double t ) throw (lang::IllegalArgumentException, uno::RuntimeException)
-+ {
-+ // TODO(F1): outline NYI
-+ return uno::Reference< rendering::XPolyPolygon2D >();
-+ }
-+
-+ uno::Sequence< double > SAL_CALL ParametricPolyPolygon::getColor( double t ) throw (lang::IllegalArgumentException, uno::RuntimeException)
-+ {
-+ // TODO(F1): color NYI
-+ return uno::Sequence< double >();
-+ }
-+
-+ uno::Sequence< double > SAL_CALL ParametricPolyPolygon::getPointColor( const geometry::RealPoint2D& point ) throw (lang::IllegalArgumentException, uno::RuntimeException)
-+ {
-+ // TODO(F1): point color NYI
-+ return uno::Sequence< double >();
-+ }
-+
-+#define SERVICE_NAME "com.sun.star.rendering.ParametricPolyPolygon"
-+
-+ ::rtl::OUString SAL_CALL ParametricPolyPolygon::getImplementationName( ) throw (uno::RuntimeException)
-+ {
-+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( PARAMETRICPOLYPOLYGON_IMPLEMENTATION_NAME ) );
-+ }
-+
-+ sal_Bool SAL_CALL ParametricPolyPolygon::supportsService( const ::rtl::OUString& ServiceName ) throw (uno::RuntimeException)
-+ {
-+ return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
-+ }
-+
-+ uno::Sequence< ::rtl::OUString > SAL_CALL ParametricPolyPolygon::getSupportedServiceNames( ) throw (uno::RuntimeException)
-+ {
-+ uno::Sequence< ::rtl::OUString > aRet(1);
-+ aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
-+
-+ return aRet;
-+ }
-+
-+
-+ ParametricPolyPolygon::~ParametricPolyPolygon()
-+ {
-+ }
-+
-+ ParametricPolyPolygon::ParametricPolyPolygon( GradientType eType, const uno::Sequence< double >& rColor1, const uno::Sequence< double >& rColor2, double nAspectRatio ) :
-+ ParametricPolyPolygon_Base( m_aMutex ),
-+ maGradientPoly(),
-+ mnAspectRatio( nAspectRatio ),
-+ maColor1( rColor1 ),
-+ maColor2( rColor2 ),
-+ meType( eType )
-+ {
-+ }
-+
-+ namespace {
-+ void addColorStop( Pattern* pPattern, double nOffset, const uno::Sequence< double >& rColor )
-+ {
-+ if( rColor.getLength() == 3 )
-+ cairo_pattern_add_color_stop_rgb( pPattern, nOffset, rColor[0], rColor[1], rColor[2] );
-+ else if( rColor.getLength() == 4 )
-+ cairo_pattern_add_color_stop_rgba( pPattern, nOffset, rColor[0], rColor[1], rColor[2], rColor[3] );
-+ }
-+ }
-+
-+ Pattern* ParametricPolyPolygon::getPattern( Matrix& rMatrix )
-+ {
-+ Pattern* pPattern = NULL;
-+
-+ switch( meType) {
-+ case GRADIENT_LINEAR: {
-+ double x0 = 0;
-+ double y0 = 0;
-+ double x1 = 1;
-+ double y1 = 0;
-+ cairo_matrix_transform_point( &rMatrix, &x0, &y0 );
-+ cairo_matrix_transform_point( &rMatrix, &x1, &y1 );
-+ pPattern = cairo_pattern_create_linear( x0, y0, x1, y1 );
-+ addColorStop( pPattern, 0, maColor1 );
-+ addColorStop( pPattern, 1, maColor2 );
-+ }
-+ break;
-+ // FIXME: NYI
-+ case GRADIENT_RECTANGULAR:
-+ case GRADIENT_AXIAL: {
-+ double x0 = 0;
-+ double y0 = 0;
-+ double x1 = 1;
-+ double y1 = 0;
-+ cairo_matrix_transform_point( &rMatrix, &x0, &y0 );
-+ cairo_matrix_transform_point( &rMatrix, &x1, &y1 );
-+ pPattern = cairo_pattern_create_linear( x0, y0, x1, y1 );
-+ addColorStop( pPattern, 0, maColor1 );
-+ addColorStop( pPattern, 0.5, maColor2 );
-+ addColorStop( pPattern, 1, maColor1 );
-+ }
-+ break;
-+ case GRADIENT_ELLIPTICAL: {
-+ double cx = 0.5;
-+ double cy = 0.5;
-+ double r0 = 0;
-+ double r1 = 0.5;
-+ Matrix* pMatrix = &rMatrix;
-+ Matrix aScaledMatrix, aScaleMatrix;
-+
-+ cairo_matrix_transform_point( &rMatrix, &cx, &cy );
-+ cairo_matrix_transform_distance( &rMatrix, &r0, &r1 );
-+ pPattern = cairo_pattern_create_radial( cx, cy, r0, cx, cy, r1 );
-+ addColorStop( pPattern, 0, maColor1 );
-+ addColorStop( pPattern, 1, maColor2 );
-+
-+ if( ! ::rtl::math::approxEqual( mnAspectRatio, 1 ) ) {
-+ cairo_matrix_init_scale( &aScaleMatrix, 1, mnAspectRatio );
-+ cairo_pattern_set_matrix( pPattern, &aScaleMatrix );
-+ }
-+ }
-+
-+ break;
-+ }
-+
-+ return pPattern;
-+ }
-+}
diff --git a/patches/cairo/canvas-source-cairo-cairo_parametricpolypolygon-hxx.diff b/patches/cairo/canvas-source-cairo-cairo_parametricpolypolygon-hxx.diff
deleted file mode 100644
index 4048f5168..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_parametricpolypolygon-hxx.diff
+++ /dev/null
@@ -1,187 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_parametricpolypolygon.hxx
-@@ -0,0 +1,184 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _VCLCANVAS_PARAMETRICPOLYPOLYGON_HXX
-+#define _VCLCANVAS_PARAMETRICPOLYPOLYGON_HXX
-+
-+#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
-+#include <com/sun/star/lang/XServiceInfo.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_RENDERING_XGRAPHICDEVICE_HPP_
-+#include <com/sun/star/rendering/XGraphicDevice.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_RENDERING_XPARAMETRICPOLYPOLYGON2DFACTORY_HPP_
-+#include <com/sun/star/rendering/XParametricPolyPolygon2DFactory.hpp>
-+#endif
-+
-+#ifndef _CPPUHELPER_COMPBASE2_HXX_
-+#include <cppuhelper/compbase2.hxx>
-+#endif
-+#ifndef _COMPHELPER_BROADCASTHELPER_HXX_
-+#include <comphelper/broadcasthelper.hxx>
-+#endif
-+
-+#ifndef _BGFX_POLYGON_B2DPOLYGON_HXX
-+#include <basegfx/polygon/b2dpolygon.hxx>
-+#endif
-+#ifndef _SV_GEN_HXX
-+#include <tools/gen.hxx>
-+#endif
-+#ifndef _TOOLS_COLOR_HXX
-+#include <tools/color.hxx>
-+#endif
-+
-+#include "cairo_cairo.hxx"
-+
-+class OutputDevice;
-+class PolyPolygon;
-+
-+namespace basegfx
-+{
-+ class B2DPolygon;
-+ class B2DHomMatrix;
-+}
-+
-+#define PARAMETRICPOLYPOLYGON_IMPLEMENTATION_NAME "CairoCanvas::ParametricPolyPolygon"
-+
-+/* Definition of ParametricPolyPolygon class */
-+
-+namespace cairocanvas
-+{
-+ typedef ::cppu::WeakComponentImplHelper2< ::com::sun::star::rendering::XParametricPolyPolygon2D,
-+ ::com::sun::star::lang::XServiceInfo > ParametricPolyPolygon_Base;
-+
-+ class ParametricPolyPolygon : public ::comphelper::OBaseMutex, public ParametricPolyPolygon_Base
-+ {
-+ public:
-+
-+ static ParametricPolyPolygon* createLinearHorizontalGradient( const ::com::sun::star::uno::Sequence< double >& leftColor,
-+ const ::com::sun::star::uno::Sequence< double >& rightColor,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XGraphicDevice >& xDevice );
-+ static ParametricPolyPolygon* createAxialHorizontalGradient( const ::com::sun::star::uno::Sequence< double >& middleColor,
-+ const ::com::sun::star::uno::Sequence< double >& endColor,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XGraphicDevice >& xDevice );
-+ static ParametricPolyPolygon* createEllipticalGradient( const ::com::sun::star::uno::Sequence< double >& centerColor,
-+ const ::com::sun::star::uno::Sequence< double >& endColor,
-+ const ::com::sun::star::geometry::RealRectangle2D& boundRect,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XGraphicDevice >& xDevice );
-+ static ParametricPolyPolygon* createRectangularGradient( const ::com::sun::star::uno::Sequence< double >& centerColor,
-+ const ::com::sun::star::uno::Sequence< double >& endColor,
-+ const ::com::sun::star::geometry::RealRectangle2D& boundRect,
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XGraphicDevice >& xDevice );
-+ /// Dispose all internal references
-+ virtual void SAL_CALL disposing();
-+
-+ // XParametricPolyPolygon2D
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D > SAL_CALL getOutline( double t ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Sequence< double > SAL_CALL getColor( double t ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Sequence< double > SAL_CALL getPointColor( const ::com::sun::star::geometry::RealPoint2D& point ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-+
-+ // XServiceInfo
-+ virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException);
-+
-+ ::cairo::Pattern* getPattern(::cairo::Matrix& rMatrix);
-+
-+ protected:
-+ ~ParametricPolyPolygon(); // we're a ref-counted UNO class. _We_ destroy ourselves.
-+
-+ private:
-+ // default: disabled copy/assignment
-+ ParametricPolyPolygon(const ParametricPolyPolygon&);
-+ ParametricPolyPolygon& operator=( const ParametricPolyPolygon& );
-+
-+ enum GradientType
-+ {
-+ GRADIENT_LINEAR,
-+ GRADIENT_AXIAL,
-+ GRADIENT_ELLIPTICAL,
-+ GRADIENT_RECTANGULAR,
-+ };
-+
-+ /// Private, because objects can only be created from the static factories
-+ ParametricPolyPolygon( GradientType eType, const ::com::sun::star::uno::Sequence< double >& rColor1, const ::com::sun::star::uno::Sequence< double >& rColor2, double nAspectRatio = 1);
-+
-+
-+ /// Polygon gradient shape
-+ const ::basegfx::B2DPolygon maGradientPoly;
-+
-+ /// Aspect ratio of gradient, affects scaling of innermost gradient polygon
-+ const double mnAspectRatio;
-+
-+ // start and end gradient colors
-+ ::com::sun::star::uno::Sequence< double > maColor1;
-+ ::com::sun::star::uno::Sequence< double > maColor2;
-+
-+ /// Type of gradient to render (as e.g. linear grads are not represented by maGradientPoly)
-+ const GradientType meType;
-+ };
-+}
-+
-+#endif /* _VCLCANVAS_PARAMETRICPOLYPOLYGON_HXX */
diff --git a/patches/cairo/canvas-source-cairo-cairo_redrawmanager-cxx.diff b/patches/cairo/canvas-source-cairo-cairo_redrawmanager-cxx.diff
deleted file mode 100644
index d7869e949..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_redrawmanager-cxx.diff
+++ /dev/null
@@ -1,517 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_redrawmanager.cxx
-@@ -0,0 +1,514 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include <canvas/debug.hxx>
-+
-+#ifndef _RTL_STRING_HXX_
-+#include <rtl/string.hxx>
-+#endif
-+#ifndef _RTL_TEXTENC_H
-+#include <rtl/textenc.h>
-+#endif
-+
-+#ifndef INCLUDED_RTL_MATH_HXX
-+#include <rtl/math.hxx>
-+#endif
-+
-+#ifndef _SV_WINDOW_HXX
-+#include <vcl/window.hxx>
-+#endif
-+
-+#ifndef _BGFX_NUMERIC_FTOOLS_HXX
-+#include <basegfx/numeric/ftools.hxx>
-+#endif
-+
-+#ifndef BOOST_BIND_HPP_INCLUDED
-+#include <boost/bind.hpp>
-+#endif
-+
-+#include <algorithm>
-+#include <functional>
-+#include <numeric>
-+
-+#include "cairo_redrawmanager.hxx"
-+
-+
-+#define FPS_BOUNDS Rectangle(0,0,130,90)
-+#define INFO_COLOR COL_RED
-+
-+using namespace ::cairo;
-+
-+namespace cairocanvas
-+{
-+
-+ class SpritePainter
-+ {
-+ public:
-+ SpritePainter( Cairo* pCairo )
-+ {
-+ mpCairo = pCairo;
-+ }
-+
-+ void operator()( const ::cairocanvas::Sprite::ImplRef& rSprite )
-+ {
-+ rSprite->redraw( mpCairo );
-+ }
-+
-+ private:
-+ Cairo* mpCairo;
-+ };
-+
-+ inline double accumulatePixel( double nPrevVal, const ::cairocanvas::Sprite::ImplRef& rSprite )
-+ {
-+ const ::basegfx::B2DSize& rSize( rSprite->getSpriteSize() );
-+
-+ return nPrevVal + rSize.getX() * rSize.getY();
-+ }
-+
-+ // Initial size of change records vector
-+ enum{ CHANGE_RECORDS_INITIAL_SIZE=4 };
-+
-+ RedrawManager::RedrawManager( OutputDevice& rOutDev,
-+ const BackBufferSharedPtr& rBackBuffer,
-+ Surface* pSurface) :
-+ maSprites(),
-+ maChangeRecords(),
-+ mrOutDev( rOutDev ),
-+ mpBackBuffer( rBackBuffer ),
-+ maLastUpdate(),
-+ mbBackgroundDirty( true )
-+ {
-+ OSL_TRACE("redraw manager constructor\n");
-+ ENSURE_AND_THROW( mpBackBuffer.get(),
-+ "RedrawManager::RedrawManager(): Invalid backbuffer" );
-+ maChangeRecords.reserve( CHANGE_RECORDS_INITIAL_SIZE );
-+
-+ Size aSize = mpBackBuffer->getSize();
-+ mpSurface = cairo_surface_create_similar( mpBackBuffer->getSurface(), CAIRO_CONTENT_COLOR, aSize.Width(), aSize.Height() );
-+ mpCairo = cairo_create( mpSurface );
-+ mpWinSurface = pSurface;
-+ cairo_surface_reference( mpWinSurface );
-+ }
-+
-+ RedrawManager::~RedrawManager()
-+ {
-+ OSL_TRACE("redraw manager destructor\n");
-+ cairo_destroy( mpCairo );
-+ cairo_surface_destroy( mpSurface );
-+ cairo_surface_destroy( mpWinSurface );
-+ }
-+
-+ void RedrawManager::updateScreen( bool bUpdateAll )
-+ {
-+ tools::OutDevStateKeeper aStateKeeper( mrOutDev );
-+
-+ // TODO(F3): The SpriteCanvas currently doesn't act on window
-+ // resizes. Somehow, the VCL window must broadcast resizes
-+ // _very early_ (before the application repaints the content)
-+ // to the canvas, such that the backbuffer can be adapted.
-+// const Size aOutDevSize( mpBackBuffer->getOutDev().GetOutputSizePixel() );
-+ const Point aEmptyPoint(0,0);
-+
-+ // TODO(P1): Might be worthwile to track areas of background
-+ // changes, too.
-+ if( !bUpdateAll && !mbBackgroundDirty )
-+ {
-+ // background has not changed, so we're free to optimize
-+ // repaint to areas where a sprite has changed
-+
-+ // TODO(F2): Unchanged sprites, which happen to be in the
-+ // area-to-be-updated are currently not repainted.
-+
-+ // calculate rectangular areas of mutually intersecting
-+ // sprite updates. We must handle them together, to
-+ // achieve proper compositing effects
-+ SpriteConnectedRanges aUpdateAreas;
-+
-+#if defined(VERBOSE) && defined(DBG_UTIL)
-+ // also repaint background below frame counter (fake that
-+ // as a sprite vanishing in this area)
-+ aUpdateAreas.addRange( ::basegfx::B2DRectangle( 0.0, 0.0,
-+ FPS_BOUNDS.Right(),
-+ FPS_BOUNDS.Bottom() ),
-+ Sprite::ImplRef() );
-+#endif
-+
-+ // extract all referenced sprites from the maChangeRecords
-+ // (copy sprites, make the list unique, regarding the
-+ // sprite pointer). This assumes that, until this scope
-+ // ends, nobody changes the maChangeRecords vector!
-+ typedef ::std::vector< Sprite::ImplRef > UpdateSprites;
-+ UpdateSprites aUpdateSprites;
-+ ::std::transform( maChangeRecords.begin(),
-+ maChangeRecords.end(),
-+ ::std::back_insert_iterator< UpdateSprites >(aUpdateSprites),
-+ ::std::mem_fun_ref( &SpriteChangeRecord::getSprite ) );
-+ ::std::sort( aUpdateSprites.begin(),
-+ aUpdateSprites.end() );
-+
-+ UpdateSprites::iterator aBegin( aUpdateSprites.begin() );
-+ UpdateSprites::iterator aEnd ( aUpdateSprites.end() );
-+ aEnd = ::std::unique( aBegin, aEnd );
-+
-+ // for each unique sprite, check the change event vector,
-+ // calculate the update operation from that, and add the
-+ // result to the aUpdateArea.
-+ ::std::for_each( aBegin, aEnd,
-+ ::canvas::internal::SpriteUpdater< Sprite::ImplRef,
-+ ChangeRecords,
-+ SpriteConnectedRanges >(aUpdateAreas,
-+ maChangeRecords) );
-+
-+ // prepare and flush all aggregated components to screen
-+ aUpdateAreas.forEachAggregate( ::boost::bind( &RedrawManager::updateArea,
-+ this,
-+ _1 ) );
-+ }
-+ else
-+ {
-+ // background has changed, so we currently have no choice
-+ // but repaint everything (or caller requested that)
-+ bUpdateAll = true;
-+ }
-+
-+ // check again for fullscreen update, maybe update area
-+ // calculation above yielded decision to perform a fullscreen
-+ // update, anyway.
-+ if( bUpdateAll )
-+ {
-+ OSL_TRACE ("redraw manager: update all\n");
-+
-+ Surface* pBackingStoreSurface;
-+
-+ if( maSprites.size() > 0 ) {
-+ cairo_save( mpCairo );
-+ cairo_set_operator( mpCairo, CAIRO_OPERATOR_SOURCE );
-+ cairo_set_source_surface( mpCairo, mpBackBuffer->getSurface(), 0, 0 );
-+ cairo_paint( mpCairo );
-+ cairo_restore( mpCairo );
-+
-+ // repaint all active sprites
-+ ::std::for_each( maSprites.begin(),
-+ maSprites.end(),
-+ SpritePainter( mpCairo ) );
-+
-+ pBackingStoreSurface = mpSurface;
-+ } else
-+ pBackingStoreSurface = mpBackBuffer->getSurface();
-+
-+ // flush to screen
-+ Cairo* pCairo = cairo_create( mpWinSurface );
-+ cairo_set_operator( pCairo, CAIRO_OPERATOR_SOURCE );
-+ cairo_set_source_surface( pCairo, pBackingStoreSurface, 0, 0 );
-+ Size aSize = mpBackBuffer->getSize();
-+ cairo_rectangle( pCairo, 0, 0, aSize.Width(), aSize.Height() );
-+ cairo_clip( pCairo );
-+ cairo_paint( pCairo );
-+ cairo_destroy( pCairo );
-+ }
-+
-+ // change record vector must be cleared, for the next turn of
-+ // rendering and sprite changing
-+ maChangeRecords.clear();
-+
-+ mbBackgroundDirty = false;
-+
-+#if defined(VERBOSE) && defined(DBG_UTIL)
-+ //renderFrameCounter();
-+ //renderSpriteCount();
-+ //renderMemUsage();
-+#endif
-+ }
-+
-+ void RedrawManager::renderInfoText( const ::rtl::OUString& rStr,
-+ const Point& rPos )
-+ {
-+ Font aVCLFont;
-+ aVCLFont.SetHeight( 20 );
-+ aVCLFont.SetColor( Color( INFO_COLOR ) );
-+
-+ mrOutDev.SetTextColor( Color( INFO_COLOR ) );
-+ mrOutDev.SetFont( aVCLFont );
-+
-+ mrOutDev.DrawText( rPos, rStr );
-+ }
-+
-+ void RedrawManager::renderFrameCounter()
-+ {
-+ const double denominator( maLastUpdate.getElapsedTime() );
-+ maLastUpdate.reset();
-+
-+ ::rtl::OUString text( ::rtl::math::doubleToUString( denominator == 0.0 ? 100.0 : 1.0/denominator,
-+ rtl_math_StringFormat_F,
-+ 2,'.',NULL,' ') );
-+
-+ // pad with leading space
-+ while( text.getLength() < 6 )
-+ text = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM (" ")) + text;
-+
-+ text += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM (" fps"));
-+
-+ renderInfoText( text,
-+ Point(0, 0) );
-+ }
-+
-+ void RedrawManager::renderSpriteCount()
-+ {
-+ ::rtl::OUString text(
-+ ::rtl::OUString::valueOf(
-+ // disambiguate overload...
-+ static_cast<sal_Int64>(maSprites.size()) ) );
-+
-+ // pad with leading space
-+ while( text.getLength() < 3 )
-+ text = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM (" ")) + text;
-+
-+ text = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM ("Sprites: ")) + text;
-+
-+ renderInfoText( text,
-+ Point(0, 30) );
-+ }
-+
-+ void RedrawManager::renderMemUsage()
-+ {
-+ // rodo TODO
-+// const double nPixel( ::std::accumulate( maSprites.begin(),
-+// maSprites.end(),
-+// 0.0,
-+// ::std::ptr_fun( &accumulatePixel ) ) );
-+
-+// static const int NUM_VIRDEV(2);
-+// static const int BYTES_PER_PIXEL(3);
-+
-+// const Size& rVDevSize( maVDev->GetOutputSizePixel() );
-+// // const Size& rBackBufferSize( mpBackBuffer->getOutDev().GetOutputSizePixel() );
-+
-+// const double nMemUsage( nPixel * NUM_VIRDEV * BYTES_PER_PIXEL +
-+// rVDevSize.Width()*rVDevSize.Height() * BYTES_PER_PIXEL +
-+// rBackBufferSize.Width()*rBackBufferSize.Height() * BYTES_PER_PIXEL );
-+
-+// ::rtl::OUString text( ::rtl::math::doubleToUString( nMemUsage / 1048576.0,
-+// rtl_math_StringFormat_F,
-+// 2,'.',NULL,' ') );
-+
-+// // pad with leading space
-+// while( text.getLength() < 4 )
-+// text = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM (" ")) + text;
-+
-+// text = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM ("Mem: ")) +
-+// text +
-+// ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM ("MB"));
-+
-+// renderInfoText( text,
-+// Point(0, 60) );
-+ }
-+
-+ void RedrawManager::backgroundDirty()
-+ {
-+ mbBackgroundDirty = true;
-+ }
-+
-+ void RedrawManager::showSprite( const Sprite::ImplRef& sprite )
-+ {
-+ maSprites.push_back( sprite );
-+ }
-+
-+ void RedrawManager::hideSprite( const Sprite::ImplRef& sprite )
-+ {
-+ maSprites.remove( sprite );
-+ }
-+
-+ void RedrawManager::moveSprite( const Sprite::ImplRef& sprite,
-+ const Point& rOldPos,
-+ const Point& rNewPos,
-+ const Size& rSpriteSize )
-+ {
-+ // TODO(Q1): Use AW's converters once resynced
-+ maChangeRecords.push_back( SpriteChangeRecord( sprite,
-+ ::basegfx::B2DPoint( rOldPos.X(),
-+ rOldPos.Y() ),
-+ ::basegfx::B2DPoint( rNewPos.X(),
-+ rNewPos.Y() ),
-+ ::basegfx::B2DSize( rSpriteSize.Width(),
-+ rSpriteSize.Height() ) ) );
-+ }
-+
-+ void RedrawManager::updateSprite( const Sprite::ImplRef& sprite,
-+ const Point& rPos,
-+ const Rectangle& rUpdateArea )
-+ {
-+ // TODO(Q1): Use AW's converters once resynced
-+ maChangeRecords.push_back( SpriteChangeRecord( sprite,
-+ ::basegfx::B2DPoint( rPos.X(),
-+ rPos.Y() ),
-+ ::basegfx::B2DRectangle( rUpdateArea.Left(),
-+ rUpdateArea.Top(),
-+ rUpdateArea.Right(),
-+ rUpdateArea.Bottom() ) ) );
-+ }
-+
-+ namespace
-+ {
-+ bool isAreaUpdateNotOpaque( const Rectangle& rUpdateArea,
-+ const RedrawManager::SpriteConnectedRanges::ComponentType& rComponent )
-+ {
-+ const Sprite::ImplRef& pAffectedSprite( rComponent.second );
-+
-+ if( !pAffectedSprite.is() )
-+ return true; // no sprite, no opaque update!
-+
-+ return !pAffectedSprite->isAreaUpdateOpaque( rUpdateArea );
-+ }
-+
-+ void spriteRedrawStub( const Point& rOffset,
-+ Cairo* pCairo,
-+ const RedrawManager::SpriteConnectedRanges::ComponentType& rComponent )
-+ {
-+ const Sprite::ImplRef& pAffectedSprite( rComponent.second );
-+
-+ OSL_TRACE ("spriteRedrawStub\n");
-+
-+ if( !pAffectedSprite.is() )
-+ return; // no sprite, no update!
-+
-+ // calc relative sprite position in rUpdateArea (which need
-+ // not be the whole screen!)
-+ const ::basegfx::B2DPoint aSpriteScreenPos( pAffectedSprite->getSpritePos() );
-+
-+ // paint affected sprite
-+ pAffectedSprite->redraw( pCairo, aSpriteScreenPos );
-+ }
-+ }
-+
-+
-+ void RedrawManager::updateArea( const SpriteConnectedRanges::ConnectedComponents& rComponents )
-+ {
-+ const ::basegfx::B2DRectangle& rRequestedArea( rComponents.maTotalBounds );
-+
-+ // limit size of update VDev to target outdev's size
-+ const Size& rTargetSizePixel( mrOutDev.GetOutputSizePixel() );
-+
-+ // round output position towards zero. Don't want to truncate
-+ // a fraction of a sprite pixel... Clip position at origin,
-+ // otherwise, truncation of size below might leave visible
-+ // areas uncovered by VDev.
-+ const Point aOutputPosition(
-+ ::std::max( 0L,
-+ static_cast< long >(rRequestedArea.getMinX()) ),
-+ ::std::max( 0L,
-+ static_cast< long >(rRequestedArea.getMinY()) ) );
-+ // round output size towards +infty. Don't want to truncate a
-+ // fraction of a sprite pixel... Limit size of VDev to output
-+ // device's area.
-+ const Size aOutputSize(
-+ ::std::min( rTargetSizePixel.Width(),
-+ static_cast< long >(
-+ ceil( rRequestedArea.getMaxX() - aOutputPosition.X()) ) ),
-+ ::std::min( rTargetSizePixel.Height(),
-+ static_cast< long >(
-+ ceil( rRequestedArea.getMaxY() - aOutputPosition.Y()) ) ) );
-+
-+ const Rectangle aUpdateArea( aOutputPosition.X(),
-+ aOutputPosition.Y(),
-+ aOutputPosition.X() + aOutputSize.Width(),
-+ aOutputPosition.Y() + aOutputSize.Height() );
-+
-+ OSL_TRACE("update area size: %d x %d\n", aOutputSize.Width(), aOutputSize.Height() );
-+
-+ if( aOutputSize.Width() > 0 && aOutputSize.Height() > 0 ) {
-+
-+
-+ cairo_save( mpCairo );
-+
-+ cairo_rectangle( mpCairo, aOutputPosition.X(), aOutputPosition.Y(), aOutputSize.Width(), aOutputSize.Height() );
-+ cairo_clip( mpCairo );
-+
-+ cairo_save( mpCairo );
-+ cairo_set_operator( mpCairo, CAIRO_OPERATOR_SOURCE );
-+ cairo_set_source_surface( mpCairo, mpBackBuffer->getSurface(), 0, 0 );
-+ cairo_paint( mpCairo );
-+ cairo_restore( mpCairo );
-+
-+ // paint all affected sprites to update area
-+ ::std::for_each( rComponents.maComponentList.begin(),
-+ rComponents.maComponentList.end(),
-+ ::boost::bind( &spriteRedrawStub,
-+ ::boost::cref(aUpdateArea.TopLeft()),
-+ mpCairo,
-+ _1 ) );
-+
-+ // flush to screen
-+ Cairo* pCairo = cairo_create( mpWinSurface );
-+
-+ cairo_save( mpCairo );
-+ cairo_rectangle( pCairo, aOutputPosition.X(), aOutputPosition.Y(), aOutputSize.Width(), aOutputSize.Height() );
-+ cairo_clip( pCairo );
-+ cairo_set_operator( pCairo, CAIRO_OPERATOR_SOURCE );
-+ cairo_set_source_surface( pCairo, mpSurface, 0, 0 );
-+ cairo_paint( pCairo );
-+ cairo_restore( mpCairo );
-+
-+ cairo_restore( mpCairo );
-+
-+ cairo_destroy( pCairo );
-+ }
-+ }
-+}
diff --git a/patches/cairo/canvas-source-cairo-cairo_redrawmanager-hxx.diff b/patches/cairo/canvas-source-cairo-cairo_redrawmanager-hxx.diff
deleted file mode 100644
index 32dd27211..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_redrawmanager-hxx.diff
+++ /dev/null
@@ -1,204 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_redrawmanager.hxx
-@@ -0,0 +1,201 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _VCLCANVAS_REDRAWMANAGER_HXX
-+#define _VCLCANVAS_REDRAWMANAGER_HXX
-+
-+#include <list>
-+#include <vector>
-+
-+#ifndef _COM_SUN_STAR_AWT_POINT_HPP_
-+#include <com/sun/star/awt/Point.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_AWT_SIZE_HPP_
-+#include <com/sun/star/awt/Size.hpp>
-+#endif
-+
-+#ifndef _SV_VIRDEV_HXX
-+#include <vcl/virdev.hxx>
-+#endif
-+
-+#ifndef _BGFX_POINT_B2DPOINT_HXX
-+#include <basegfx/point/b2dpoint.hxx>
-+#endif
-+#ifndef _BGFX_VECTOR_B2DSIZE_HXX
-+#include <basegfx/vector/b2dsize.hxx>
-+#endif
-+#ifndef _BGFX_RANGE_B2DRECTANGLE_HXX
-+#include <basegfx/range/b2drectangle.hxx>
-+#endif
-+#ifndef _BGFX_RANGE_B2DCONNECTEDRANGES_HXX
-+#include <basegfx/range/b2dconnectedranges.hxx>
-+#endif
-+
-+#include <canvas/vclwrapper.hxx>
-+#include <canvas/elapsedtime.hxx>
-+#include <canvas/redrawmanagement.hxx>
-+
-+#include "cairo_cairo.hxx"
-+#include "cairo_sprite.hxx"
-+#include "cairo_backbuffer.hxx"
-+#include "cairo_impltools.hxx"
-+
-+
-+/* Definition of RedrawManager class */
-+
-+namespace cairocanvas
-+{
-+
-+ /** This class manages smooth SpriteCanvas updates
-+
-+ @attention This class does not perform Solar mutex locking,
-+ this must be handled by the client code.
-+ */
-+ class RedrawManager
-+ {
-+ public:
-+ /** Constructed with references to back buffer and output
-+ device, the RedrawManager keeps track of sprite movements,
-+ and repaints only those areas on updateScreen, that
-+ actually needs an update.
-+
-+ @param rOutDev
-+ Reference to output device, typically a window on
-+ screen. Does not take ownership.
-+
-+ @param rBackBuffer
-+ Reference to a back buffer. Back buffer content must be
-+ provided from elsewhere, everytime back buffer content
-+ changes, backgroundDirty() must be called.
-+ */
-+ RedrawManager( OutputDevice& rOutDev,
-+ const BackBufferSharedPtr& rBackBuffer,
-+ ::cairo::Surface* pSurface);
-+ ~RedrawManager();
-+
-+ void updateScreen( bool bUpdateAll );
-+ void backgroundDirty();
-+
-+ // SpriteSurface interface, is delegated to e.g. from SpriteCanvas
-+ void showSprite( const Sprite::ImplRef& sprite );
-+ void hideSprite( const Sprite::ImplRef& sprite );
-+ void moveSprite( const Sprite::ImplRef& sprite,
-+ const Point& rOldPos,
-+ const Point& rNewPos,
-+ const Size& rSpriteSize );
-+ void updateSprite( const Sprite::ImplRef& sprite,
-+ const Point& rPos,
-+ const Rectangle& rUpdateArea );
-+
-+ typedef ::basegfx::B2DConnectedRanges< Sprite::ImplRef > SpriteConnectedRanges;
-+
-+ private:
-+ typedef ::canvas::internal::SpriteChangeRecord< Sprite::ImplRef > SpriteChangeRecord;
-+ typedef ::std::vector< SpriteChangeRecord > ChangeRecords;
-+
-+ // default: disabled copy/assignment
-+ RedrawManager(const RedrawManager&);
-+ RedrawManager& operator=( const RedrawManager& );
-+
-+ /// Update given area of the screen
-+ void updateArea( const SpriteConnectedRanges::ConnectedComponents& rComponents );
-+
-+ /// Update sprite in given area of the outdev
-+ void updateSpriteForArea( const Rectangle& rUpdateArea,
-+ OutputDevice& rOutputDevice,
-+ const SpriteConnectedRanges::ComponentType& rComponent );
-+
-+ void renderInfoText( const ::rtl::OUString& rStr,
-+ const Point& rPos );
-+ void renderFrameCounter();
-+ void renderSpriteCount();
-+ void renderMemUsage();
-+
-+ ::std::list< Sprite::ImplRef > maSprites; // list of active
-+ // sprite
-+ // objects. this
-+ // list is only
-+ // used for full
-+ // repaints,
-+ // otherwise, we
-+ // rely on the
-+ // active sprites
-+ // itself to notify
-+ // us.
-+ ChangeRecords maChangeRecords; // vector
-+ // of
-+ // sprites
-+ // changes
-+ // since
-+ // last
-+ // updateScreen()
-+ // call
-+ OutputDevice& mrOutDev;
-+ BackBufferSharedPtr mpBackBuffer;
-+ ::canvas::tools::ElapsedTime maLastUpdate; // for the frame counter
-+ bool mbBackgroundDirty;
-+ ::cairo::Surface* mpWinSurface;
-+ ::cairo::Surface* mpSurface;
-+ ::cairo::Cairo* mpCairo;
-+ };
-+}
-+
-+#endif /* _VCLCANVAS_REDRAWMANAGER_HXX */
diff --git a/patches/cairo/canvas-source-cairo-cairo_repainttarget-hxx.diff b/patches/cairo/canvas-source-cairo-cairo_repainttarget-hxx.diff
deleted file mode 100644
index e85944b93..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_repainttarget-hxx.diff
+++ /dev/null
@@ -1,71 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_repainttarget.hxx
-@@ -0,0 +1,68 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CAIROCANVAS_REPAINTTARGET_HXX
-+#define _CAIROCANVAS_REPAINTTARGET_HXX
-+
-+#ifndef _RTL_REF_HXX_
-+#include <rtl/ref.hxx>
-+#endif
-+
-+#include "cairo_cairo.hxx"
-+
-+using namespace ::cairo;
-+
-+namespace cairocanvas
-+{
-+ /* Definition of RepaintTarget interface */
-+
-+ /** Target interface for XCachedPrimitive implementations
-+
-+ This interface must be implemented on all canvas
-+ implementations that hand out XCachedPrimitives
-+ */
-+ class RepaintTarget
-+ {
-+ public:
-+ virtual ~RepaintTarget() {}
-+
-+ // call this when a bitmap is repainted
-+ virtual bool repaint( ::cairo::Surface* pSurface,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState ) = 0;
-+ };
-+}
-+
-+#endif /* _CAIROCANVAS_REPAINTTARGET_HXX */
diff --git a/patches/cairo/canvas-source-cairo-cairo_sprite-hxx.diff b/patches/cairo/canvas-source-cairo-cairo_sprite-hxx.diff
deleted file mode 100644
index 0dbd4e966..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_sprite-hxx.diff
+++ /dev/null
@@ -1,108 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_sprite.hxx
-@@ -0,0 +1,105 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CAIROCANVAS_SPRITE_HXX
-+#define _CAIROCANVAS_SPRITE_HXX
-+
-+#include <canvas/base/sprite.hxx>
-+
-+#include "cairo_cairo.hxx"
-+
-+namespace cairocanvas
-+{
-+ /** Specialization of ::canvas::Sprite interface, to also provide
-+ redraw methods.
-+ */
-+ class Sprite : public ::canvas::Sprite
-+ {
-+ public:
-+
-+ /** Redraw sprite at the stored position.
-+
-+ @param bBufferedUpdate
-+ When true, the redraw does <em>not</em> happen directly on
-+ the front buffer, but within a VDev. Used to speed up
-+ drawing.
-+ */
-+ virtual void redraw( ::cairo::Cairo* pCairo,
-+ bool bBufferedUpdate ) const = 0;
-+
-+ /** Redraw sprite at the given position.
-+
-+ @param rPos
-+ Output position of the sprite. Overrides the sprite's own
-+ output position.
-+
-+ @param bBufferedUpdate
-+ When true, the redraw does <em>not</em> happen directly on
-+ the front buffer, but within a VDev. Used to speed up
-+ drawing.
-+ */
-+ virtual void redraw( ::cairo::Cairo* pCairo,
-+ const ::basegfx::B2DPoint& rOrigOutputPos,
-+ bool bBufferedUpdate ) const = 0;
-+ };
-+}
-+
-+#endif /* _CAIROCANVAS_SPRITE_HXX */
diff --git a/patches/cairo/canvas-source-cairo-cairo_spritecanvas-cxx.diff b/patches/cairo/canvas-source-cairo-cairo_spritecanvas-cxx.diff
deleted file mode 100644
index 3e6cdbab4..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_spritecanvas-cxx.diff
+++ /dev/null
@@ -1,335 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_spritecanvas.cxx
-@@ -0,0 +1,332 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#include <canvas/debug.hxx>
-+#include <canvas/verbosetrace.hxx>
-+#include <canvas/canvastools.hxx>
-+
-+#include <osl/mutex.hxx>
-+
-+#include <com/sun/star/registry/XRegistryKey.hpp>
-+#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-+#include <com/sun/star/uno/XComponentContext.hpp>
-+
-+#include <cppuhelper/factory.hxx>
-+#include <cppuhelper/implementationentry.hxx>
-+
-+#include <basegfx/matrix/b2dhommatrix.hxx>
-+#include <basegfx/point/b2dpoint.hxx>
-+#include <basegfx/tools/canvastools.hxx>
-+#include <basegfx/numeric/ftools.hxx>
-+
-+#include "cairo_spritecanvas.hxx"
-+
-+
-+using namespace ::cairo;
-+using namespace ::com::sun::star;
-+
-+#define IMPLEMENTATION_NAME "CairoCanvas::SpriteCanvas"
-+#define SERVICE_NAME "com.sun.star.rendering.CairoCanvas"
-+
-+namespace
-+{
-+ static ::rtl::OUString SAL_CALL getImplementationName_SpriteCanvas()
-+ {
-+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
-+ }
-+
-+ static uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames_SpriteCanvas()
-+ {
-+ uno::Sequence< ::rtl::OUString > aRet(1);
-+ aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
-+
-+ return aRet;
-+ }
-+
-+}
-+
-+namespace cairocanvas
-+{
-+ SpriteCanvas::SpriteCanvas( const uno::Reference< uno::XComponentContext >& rxContext ) :
-+ mxComponentContext( rxContext ),
-+ mpBackgroundCairo( NULL ),
-+ mpBackgroundSurface( NULL )
-+ {
-+ OSL_TRACE("SpriteCanvas created %p\n", this);
-+ }
-+
-+ void SAL_CALL SpriteCanvas::disposing()
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ mxComponentContext.clear();
-+
-+ if( mpBackgroundCairo ) {
-+ cairo_destroy( mpBackgroundCairo );
-+ mpBackgroundCairo = NULL;
-+ }
-+
-+ if( mpBackgroundSurface ) {
-+ mpBackgroundSurface->Unref();
-+ mpBackgroundSurface = NULL;
-+ }
-+
-+ // forward to parent
-+ SpriteCanvasBaseT::disposing();
-+ }
-+
-+ ::sal_Bool SAL_CALL SpriteCanvas::showBuffer( ::sal_Bool bUpdateAll ) throw (uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ // avoid repaints on hidden window (hidden: not mapped to
-+ // screen). Return failure, since the screen really has _not_
-+ // been updated (caller should try again later)
-+ return !mbIsVisible ? false : SpriteCanvasBaseT::showBuffer( bUpdateAll );
-+ }
-+
-+ ::sal_Bool SAL_CALL SpriteCanvas::switchBuffer( ::sal_Bool bUpdateAll ) throw (uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ // avoid repaints on hidden window (hidden: not mapped to
-+ // screen). Return failure, since the screen really has _not_
-+ // been updated (caller should try again later)
-+ return !mbIsVisible ? false : SpriteCanvasBaseT::switchBuffer( bUpdateAll );
-+ }
-+
-+ sal_Bool SAL_CALL SpriteCanvas::updateScreen( sal_Bool bUpdateAll ) throw (uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ // avoid repaints on hidden window (hidden: not mapped to
-+ // screen). Return failure, since the screen really has _not_
-+ // been updated (caller should try again later)
-+ return !mbIsVisible ? false : maCanvasHelper.updateScreen(
-+ ::basegfx::unotools::b2IRectangleFromAwtRectangle(maBounds),
-+ bUpdateAll,
-+ mbSurfaceDirty );
-+
-+ // avoid repaints on hidden window (hidden: not mapped to
-+ // screen). Return failure, since the screen really has _not_
-+ // been updated (caller should try again later)
-+ return !mbIsVisible ? false : SpriteCanvasBaseT::updateScreen( bUpdateAll );
-+ }
-+
-+ void SAL_CALL SpriteCanvas::initialize( const uno::Sequence< uno::Any >& aArguments ) throw( uno::Exception,
-+ uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ OSL_TRACE( "SpriteCanvas::initialize called" );
-+ VERBOSE_TRACE( "SpriteCanvas::initialize called" );
-+
-+ // At index 1, we expect a system window handle here,
-+ // containing a pointer to a valid window, on which to output
-+ // At index 2, we expect the current window bound rect
-+ CHECK_AND_THROW( aArguments.getLength() >= 4 &&
-+ aArguments[1].getValueTypeClass() == uno::TypeClass_LONG,
-+ "SpriteCanvas::initialize: wrong number of arguments, or wrong types" );
-+
-+ awt::Rectangle aRect;
-+ aArguments[2] >>= aRect;
-+// const ::basegfx::B2ISize aSize(aRect.Width,
-+// aRect.Height);
-+
-+ sal_Bool bIsFullscreen( sal_False );
-+ aArguments[3] >>= bIsFullscreen;
-+
-+ // TODO(Q2): This now works for Solaris, but still warns for gcc
-+ Window* pOutputWindow = (Window*) *reinterpret_cast<const sal_Int64*>(aArguments[0].getValue());
-+
-+ Size aPixelSize( pOutputWindow->GetOutputSizePixel() );
-+ const ::basegfx::B2ISize aSize( aPixelSize.Width(),
-+ aPixelSize.Height() );
-+
-+ CHECK_AND_THROW( pOutputWindow != NULL,
-+ "SpriteCanvas::initialize: invalid Window pointer" );
-+
-+ // setup helper
-+ maDeviceHelper.init( *pOutputWindow,
-+ *this,
-+ aSize,
-+ bIsFullscreen );
-+
-+ maCanvasHelper.init( maRedrawManager,
-+ *this,
-+ aSize,
-+ false );
-+ }
-+
-+ ::rtl::OUString SAL_CALL SpriteCanvas::getImplementationName() throw( uno::RuntimeException )
-+ {
-+ return getImplementationName_SpriteCanvas();
-+ }
-+
-+ sal_Bool SAL_CALL SpriteCanvas::supportsService( const ::rtl::OUString& ServiceName ) throw( uno::RuntimeException )
-+ {
-+ return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
-+ }
-+
-+ uno::Sequence< ::rtl::OUString > SAL_CALL SpriteCanvas::getSupportedServiceNames() throw( uno::RuntimeException )
-+ {
-+ return getSupportedServiceNames_SpriteCanvas();
-+ }
-+
-+ ::rtl::OUString SAL_CALL SpriteCanvas::getServiceName( ) throw (uno::RuntimeException)
-+ {
-+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICE_NAME ) );
-+ }
-+
-+ uno::Reference< uno::XInterface > SAL_CALL SpriteCanvas::createInstance( const uno::Reference< uno::XComponentContext >& xContext ) throw ( uno::Exception )
-+ {
-+ return uno::Reference< uno::XInterface >( static_cast<cppu::OWeakObject*>( new SpriteCanvas( xContext ) ) );
-+ }
-+
-+ Surface* SpriteCanvas::getSurface( const ::basegfx::B2ISize& rSize, Content aContent )
-+ {
-+ return maDeviceHelper.getSurface( rSize, aContent );
-+ }
-+
-+ Surface* SpriteCanvas::getSurface( Content aContent )
-+ {
-+ return maDeviceHelper.getSurface( aContent );
-+ }
-+
-+ Surface* SpriteCanvas::getSurface( Bitmap& rBitmap )
-+ {
-+ Surface *pSurface = NULL;
-+
-+ BitmapSystemData aData;
-+ if( rBitmap.GetSystemData( aData ) ) {
-+ const Size& rSize = rBitmap.GetSizePixel();
-+
-+ pSurface = maDeviceHelper.getSurface( aData, rSize );
-+ }
-+
-+ return pSurface;
-+ }
-+
-+ Surface* SpriteCanvas::getBufferSurface()
-+ {
-+ return maDeviceHelper.getBufferSurface();
-+ }
-+
-+ Surface* SpriteCanvas::getWindowSurface()
-+ {
-+ return maDeviceHelper.getWindowSurface();
-+ }
-+
-+ Surface* SpriteCanvas::getBackgroundSurface()
-+ {
-+ return mpBackgroundSurface;
-+ }
-+
-+ const ::basegfx::B2ISize& SpriteCanvas::getSizePixel()
-+ {
-+ return maDeviceHelper.getSizePixel();
-+ }
-+
-+ void SpriteCanvas::setSizePixel( const ::basegfx::B2ISize& rSize )
-+ {
-+ if( mpBackgroundSurface )
-+ {
-+ mpBackgroundSurface->Unref();
-+ }
-+ mpBackgroundSurface = maDeviceHelper.getSurface();
-+
-+ if( mpBackgroundCairo )
-+ {
-+ cairo_destroy( mpBackgroundCairo );
-+ }
-+ mpBackgroundCairo = mpBackgroundSurface->getCairo();
-+
-+ maCanvasHelper.setSurface( mpBackgroundSurface );
-+ }
-+
-+ void SpriteCanvas::flush()
-+ {
-+ maDeviceHelper.flush();
-+ }
-+
-+ bool SpriteCanvas::repaint( Surface* pSurface,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState )
-+ {
-+ return maCanvasHelper.repaint( pSurface, viewState, renderState );
-+ }
-+}
-+
-+namespace
-+{
-+ /* shared lib exports implemented with helpers */
-+ static struct ::cppu::ImplementationEntry s_component_entries [] =
-+ {
-+ {
-+ cairocanvas::SpriteCanvas::createInstance, getImplementationName_SpriteCanvas,
-+ getSupportedServiceNames_SpriteCanvas, ::cppu::createSingleComponentFactory,
-+ 0, 0
-+ },
-+ { 0, 0, 0, 0, 0, 0 }
-+ };
-+}
-+
-+
-+/* Exported UNO methods for registration and object creation.
-+ ==========================================================
-+ */
-+extern "C"
-+{
-+ void SAL_CALL component_getImplementationEnvironment( const sal_Char** ppEnvTypeName,
-+ uno_Environment** ppEnv )
-+ {
-+ *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
-+ }
-+
-+ sal_Bool SAL_CALL component_writeInfo( lang::XMultiServiceFactory* xMgr,
-+ registry::XRegistryKey* xRegistry )
-+ {
-+ return ::cppu::component_writeInfoHelper(
-+ xMgr, xRegistry, s_component_entries );
-+ }
-+
-+ void * SAL_CALL component_getFactory( sal_Char const* implName,
-+ lang::XMultiServiceFactory* xMgr,
-+ registry::XRegistryKey* xRegistry )
-+ {
-+ return ::cppu::component_getFactoryHelper(
-+ implName, xMgr, xRegistry, s_component_entries );
-+ }
-+}
diff --git a/patches/cairo/canvas-source-cairo-cairo_spritecanvas-hxx.diff b/patches/cairo/canvas-source-cairo-cairo_spritecanvas-hxx.diff
deleted file mode 100644
index d95060880..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_spritecanvas-hxx.diff
+++ /dev/null
@@ -1,193 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_spritecanvas.hxx
-@@ -0,0 +1,190 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CAIROCANVAS_SPRITECANVAS_HXX_
-+#define _CAIROCANVAS_SPRITECANVAS_HXX_
-+
-+#include <rtl/ref.hxx>
-+
-+#include <com/sun/star/uno/XComponentContext.hpp>
-+#include <com/sun/star/beans/XPropertySet.hpp>
-+#include <com/sun/star/lang/XInitialization.hpp>
-+#include <com/sun/star/lang/XServiceInfo.hpp>
-+#include <com/sun/star/lang/XServiceName.hpp>
-+#include <com/sun/star/awt/XWindow.hpp>
-+#include <com/sun/star/rendering/XSpriteCanvas.hpp>
-+#include <com/sun/star/rendering/XIntegerBitmap.hpp>
-+#include <com/sun/star/rendering/XGraphicDevice.hpp>
-+#include <com/sun/star/rendering/XBufferController.hpp>
-+#include <com/sun/star/rendering/XColorSpace.hpp>
-+#include <com/sun/star/rendering/XParametricPolyPolygon2DFactory.hpp>
-+
-+#include <cppuhelper/compbase11.hxx>
-+#include <comphelper/uno3.hxx>
-+
-+#include <canvas/base/spritecanvasbase.hxx>
-+#include <canvas/base/basemutexhelper.hxx>
-+#include <canvas/base/windowgraphicdevicebase.hxx>
-+
-+#include <basegfx/vector/b2isize.hxx>
-+
-+#include "cairo_devicehelper.hxx"
-+#include "cairo_repainttarget.hxx"
-+#include "cairo_spritecanvashelper.hxx"
-+
-+
-+namespace cairocanvas
-+{
-+ typedef ::cppu::WeakComponentImplHelper11< ::com::sun::star::rendering::XSpriteCanvas,
-+ ::com::sun::star::rendering::XIntegerBitmap,
-+ ::com::sun::star::rendering::XGraphicDevice,
-+ ::com::sun::star::rendering::XParametricPolyPolygon2DFactory,
-+ ::com::sun::star::rendering::XBufferController,
-+ ::com::sun::star::rendering::XColorSpace,
-+ ::com::sun::star::awt::XWindow,
-+ ::com::sun::star::beans::XPropertySet,
-+ ::com::sun::star::lang::XInitialization,
-+ ::com::sun::star::lang::XServiceInfo,
-+ ::com::sun::star::lang::XServiceName > WindowGraphicDeviceBase_Base;
-+ typedef ::canvas::WindowGraphicDeviceBase< ::canvas::BaseMutexHelper< WindowGraphicDeviceBase_Base >,
-+ DeviceHelper,
-+ ::osl::MutexGuard,
-+ ::cppu::OWeakObject > SpriteCanvasBase_Base;
-+ /** Mixin SpriteSurface
-+
-+ Have to mixin the SpriteSurface before deriving from
-+ ::canvas::SpriteCanvasBase, as this template should already
-+ implement some of those interface methods.
-+
-+ The reason why this appears kinda convoluted is the fact that
-+ we cannot specify non-IDL types as WeakComponentImplHelperN
-+ template args, and furthermore, don't want to derive
-+ ::canvas::SpriteCanvasBase directly from
-+ ::canvas::SpriteSurface (because derivees of
-+ ::canvas::SpriteCanvasBase have to explicitely forward the
-+ XInterface methods (e.g. via DECLARE_UNO3_AGG_DEFAULTS)
-+ anyway). Basically, ::canvas::CanvasCustomSpriteBase should
-+ remain a base class that provides implementation, not to
-+ enforce any specific interface on its derivees.
-+ */
-+ class SpriteCanvasBaseSpriteSurface_Base : public SpriteCanvasBase_Base,
-+ public ::canvas::SpriteSurface
-+ {
-+ };
-+
-+ typedef ::canvas::SpriteCanvasBase< SpriteCanvasBaseSpriteSurface_Base,
-+ SpriteCanvasHelper,
-+ ::osl::MutexGuard,
-+ ::cppu::OWeakObject > SpriteCanvasBaseT;
-+
-+ /** Product of this component's factory.
-+
-+ The SpriteCanvas object combines the actual Window canvas with
-+ the XGraphicDevice interface. This is because there's a
-+ one-to-one relation between them, anyway, since each window
-+ can have exactly one canvas and one associated
-+ XGraphicDevice. And to avoid messing around with circular
-+ references, this is implemented as one single object.
-+ */
-+ class SpriteCanvas : public SpriteCanvasBaseT,
-+ public RepaintTarget
-+ {
-+ public:
-+ SpriteCanvas( const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::uno::XComponentContext >& rxContext );
-+
-+ /// Dispose all internal references
-+ virtual void SAL_CALL disposing();
-+
-+ // Forwarding the XComponent implementation to the
-+ // cppu::ImplHelper templated base
-+ // Classname Base doing refcounting Base implementing the XComponent interface
-+ // | | |
-+ // V V V
-+ DECLARE_UNO3_XCOMPONENT_AGG_DEFAULTS( SpriteCanvas, WindowGraphicDeviceBase_Base, ::cppu::WeakComponentImplHelperBase );
-+
-+ // XBufferController (partial)
-+ virtual ::sal_Bool SAL_CALL showBuffer( ::sal_Bool bUpdateAll ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual ::sal_Bool SAL_CALL switchBuffer( ::sal_Bool bUpdateAll ) throw (::com::sun::star::uno::RuntimeException);
-+
-+ // XSpriteCanvas (partial)
-+ virtual sal_Bool SAL_CALL updateScreen( sal_Bool bUpdateAll ) throw (::com::sun::star::uno::RuntimeException);
-+
-+ // XInitialization
-+ virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw( ::com::sun::star::uno::Exception,
-+ ::com::sun::star::uno::RuntimeException);
-+ // XServiceInfo
-+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw( ::com::sun::star::uno::RuntimeException );
-+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw( ::com::sun::star::uno::RuntimeException );
-+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw( ::com::sun::star::uno::RuntimeException );
-+
-+ // XServiceName
-+ virtual ::rtl::OUString SAL_CALL getServiceName( ) throw (::com::sun::star::uno::RuntimeException);
-+
-+ // component factory
-+ static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL createInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& xContext ) throw ( ::com::sun::star::uno::Exception );
-+
-+ ::cairo::Surface* getSurface( const ::basegfx::B2ISize& rSize, ::cairo::Content aContent = ::cairo::CAIRO_CONTENT_COLOR_ALPHA );
-+ ::cairo::Surface* getSurface( ::cairo::Content aContent = ::cairo::CAIRO_CONTENT_COLOR_ALPHA );
-+ ::cairo::Surface* getSurface( Bitmap& rBitmap );
-+ ::cairo::Surface* getBufferSurface();
-+ ::cairo::Surface* getWindowSurface();
-+ ::cairo::Surface* getBackgroundSurface();
-+ const ::basegfx::B2ISize& getSizePixel();
-+ void setSizePixel( const ::basegfx::B2ISize& rSize );
-+ void flush();
-+
-+ Window* getOutputWindow()
-+ {
-+ return maDeviceHelper.getOuputWindow();
-+ }
-+
-+ // RepaintTarget
-+ virtual bool repaint( ::cairo::Surface* pSurface,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState );
-+
-+ private:
-+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > mxComponentContext;
-+
-+ ::cairo::Surface* mpBackgroundSurface;
-+ ::cairo::Cairo* mpBackgroundCairo;
-+ };
-+
-+ typedef ::rtl::Reference< SpriteCanvas > SpriteCanvasRef;
-+ typedef ::rtl::Reference< SpriteCanvas > DeviceRef;
-+}
-+
-+#endif
diff --git a/patches/cairo/canvas-source-cairo-cairo_spritecanvashelper-cxx.diff b/patches/cairo/canvas-source-cairo-cairo_spritecanvashelper-cxx.diff
deleted file mode 100644
index 467c83c14..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_spritecanvashelper-cxx.diff
+++ /dev/null
@@ -1,513 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_spritecanvashelper.cxx
-@@ -0,0 +1,510 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#include <canvas/debug.hxx>
-+#include <canvas/verbosetrace.hxx>
-+#include <canvas/canvastools.hxx>
-+
-+#include <vcl/canvastools.hxx>
-+
-+#include <comphelper/scopeguard.hxx>
-+
-+#include <basegfx/range/b2drectangle.hxx>
-+#include <basegfx/tools/canvastools.hxx>
-+
-+#include <boost/cast.hpp>
-+
-+#include "cairo_spritecanvashelper.hxx"
-+#include "cairo_canvascustomsprite.hxx"
-+
-+using namespace ::cairo;
-+using namespace ::com::sun::star;
-+
-+namespace cairocanvas
-+{
-+ namespace
-+ {
-+ /** Sprite redraw at original position
-+
-+ Used to repaint the whole canvas (background and all
-+ sprites)
-+ */
-+ void spriteRedraw( Cairo* pCairo,
-+ const ::canvas::Sprite::Reference& rSprite )
-+ {
-+ // downcast to derived vclcanvas::Sprite interface, which
-+ // provides the actual redraw methods.
-+ ::boost::polymorphic_downcast< Sprite* >(rSprite.get())->redraw( pCairo, true);
-+ }
-+
-+ void repaintBackground( Cairo* pCairo,
-+ Surface* pBackgroundSurface,
-+ const ::basegfx::B2DRange& rArea )
-+ {
-+ cairo_save( pCairo );
-+ cairo_rectangle( pCairo, ceil( rArea.getMinX() ), ceil( rArea.getMinY() ), floor( rArea.getWidth() ), floor( rArea.getHeight() ) );
-+ cairo_clip( pCairo );
-+ cairo_set_source_surface( pCairo, pBackgroundSurface->mpSurface, 0, 0 );
-+ cairo_set_operator( pCairo, CAIRO_OPERATOR_SOURCE );
-+ cairo_paint( pCairo );
-+ cairo_restore( pCairo );
-+ }
-+
-+ void opaqueUpdateSpriteArea( const ::canvas::Sprite::Reference& rSprite,
-+ Cairo* pCairo,
-+ const ::basegfx::B2IRange& rArea )
-+ {
-+ // clip output to actual update region (otherwise a)
-+ // wouldn't save much render time, and b) will clutter
-+ // scrolled sprite content outside this area)
-+ cairo_save( pCairo );
-+ cairo_rectangle( pCairo, rArea.getMinX(), rArea.getMinY(), rArea.getWidth(), rArea.getHeight() );
-+ cairo_clip( pCairo );
-+
-+ // repaint affected sprite directly to output device (at
-+ // the actual screen output position)
-+ // rendering directly to device buffer
-+ ::boost::polymorphic_downcast< Sprite* >( rSprite.get() )->redraw( pCairo, false );
-+
-+ cairo_restore( pCairo );
-+ }
-+
-+ /** Repaint sprite at original position
-+
-+ Used for opaque updates, which render directly to the
-+ device buffer.
-+ */
-+ void spriteRedrawStub( Cairo* pCairo,
-+ const ::canvas::Sprite::Reference& rSprite )
-+ {
-+ if( rSprite.is() )
-+ {
-+ ::boost::polymorphic_downcast< Sprite* >( rSprite.get() )->redraw( pCairo, false );
-+ }
-+ }
-+
-+ /** Repaint sprite at given position
-+
-+ Used for generic update, which renders into device buffer.
-+ */
-+ void spriteRedrawStub2( Cairo* pCairo,
-+ const ::canvas::Sprite::Reference& rSprite )
-+ {
-+ if( rSprite.is() )
-+ {
-+ ::boost::polymorphic_downcast< Sprite* >( rSprite.get() )->redraw( pCairo, true );;
-+ }
-+ }
-+
-+ /** Repaint sprite at original position
-+
-+ Used for opaque updates from scrollUpdate(), which render
-+ directly to the front buffer.
-+ */
-+ void spriteRedrawStub3( Cairo* pCairo,
-+ const ::canvas::SpriteRedrawManager::AreaComponent& rComponent )
-+ {
-+ const ::canvas::Sprite::Reference& rSprite( rComponent.second.getSprite() );
-+
-+ if( rSprite.is() )
-+ ::boost::polymorphic_downcast< Sprite* >( rSprite.get() )->redraw( pCairo, false );
-+ }
-+ }
-+
-+ SpriteCanvasHelper::SpriteCanvasHelper() :
-+ mpRedrawManager( NULL )
-+ {
-+ }
-+
-+ void SpriteCanvasHelper::init( ::canvas::SpriteRedrawManager& rManager,
-+ SpriteCanvas& rDevice,
-+ const ::basegfx::B2ISize& rSize,
-+ bool bHasAlpha )
-+ {
-+ mpRedrawManager = &rManager;
-+
-+ CanvasHelper::init( rSize, rDevice, bHasAlpha );
-+ }
-+
-+ void SpriteCanvasHelper::disposing()
-+ {
-+ mpRedrawManager = NULL;
-+
-+ // forward to base
-+ CanvasHelper::disposing();
-+ }
-+
-+ uno::Reference< rendering::XAnimatedSprite > SpriteCanvasHelper::createSpriteFromAnimation(
-+ const uno::Reference< rendering::XAnimation >& animation )
-+ {
-+ return uno::Reference< rendering::XAnimatedSprite >();
-+ }
-+
-+ uno::Reference< rendering::XAnimatedSprite > SpriteCanvasHelper::createSpriteFromBitmaps(
-+ const uno::Sequence< uno::Reference< rendering::XBitmap > >& animationBitmaps,
-+ sal_Int8 interpolationMode )
-+ {
-+ return uno::Reference< rendering::XAnimatedSprite >();
-+ }
-+
-+ uno::Reference< rendering::XCustomSprite > SpriteCanvasHelper::createCustomSprite( const geometry::RealSize2D& spriteSize )
-+ {
-+ if( !mpRedrawManager )
-+ return uno::Reference< rendering::XCustomSprite >(); // we're disposed
-+
-+ return uno::Reference< rendering::XCustomSprite >(
-+ new CanvasCustomSprite( spriteSize,
-+ mpDevice ) );
-+ }
-+
-+ uno::Reference< rendering::XSprite > SpriteCanvasHelper::createClonedSprite( const uno::Reference< rendering::XSprite >& original )
-+ {
-+ return uno::Reference< rendering::XSprite >();
-+ }
-+
-+ sal_Bool SpriteCanvasHelper::updateScreen( const ::basegfx::B2IRange& rCurrArea,
-+ sal_Bool bUpdateAll,
-+ bool& io_bSurfaceDirty )
-+ {
-+ if( !mpRedrawManager ||
-+ !mpDevice ||
-+ !mpDevice->getWindowSurface() ||
-+ !mpDevice->getBufferSurface() )
-+ {
-+ return sal_False; // disposed, or otherwise dysfunctional
-+ }
-+
-+ OSL_TRACE("SpriteCanvasHelper::updateScreen called");
-+
-+ Cairo* pBufferCairo = mpDevice->getBufferSurface()->getCairo();
-+ Cairo* pWindowCairo = mpDevice->getWindowSurface()->getCairo();
-+
-+ const ::basegfx::B2ISize& rSize = mpDevice->getSizePixel();
-+
-+ // TODO(P1): Might be worthwile to track areas of background
-+ // changes, too.
-+ if( !bUpdateAll && !io_bSurfaceDirty )
-+ {
-+ // background has not changed, so we're free to optimize
-+ // repaint to areas where a sprite has changed
-+
-+ // process each independent area of overlapping sprites
-+ // separately.
-+ mpRedrawManager->forEachSpriteArea( *this );
-+ }
-+ else
-+ {
-+ OSL_TRACE("SpriteCanvasHelper::updateScreen update ALL");
-+
-+ // background has changed, so we currently have no choice
-+ // but repaint everything (or caller requested that)
-+
-+ cairo_rectangle( pBufferCairo, 0, 0, rSize.getX(), rSize.getY() );
-+ cairo_clip( pBufferCairo );
-+ cairo_save( pBufferCairo );
-+ cairo_set_source_surface( pBufferCairo, mpDevice->getBackgroundSurface()->mpSurface, 0, 0 );
-+ cairo_set_operator( pBufferCairo, CAIRO_OPERATOR_SOURCE );
-+ cairo_paint( pBufferCairo );
-+ cairo_restore( pBufferCairo );
-+
-+ // repaint all active sprites on top of background into
-+ // VDev.
-+ mpRedrawManager->forEachSprite(
-+ ::boost::bind(
-+ &spriteRedraw,
-+ pBufferCairo,
-+ _1 ) );
-+
-+ // flush to screen
-+ cairo_rectangle( pWindowCairo, 0, 0, rSize.getX(), rSize.getY() );
-+ cairo_clip( pWindowCairo );
-+ cairo_set_source_surface( pWindowCairo, mpDevice->getBufferSurface()->mpSurface, 0, 0 );
-+ cairo_set_operator( pWindowCairo, CAIRO_OPERATOR_SOURCE );
-+ cairo_paint( pWindowCairo );
-+ }
-+
-+ cairo_destroy( pBufferCairo );
-+ cairo_destroy( pWindowCairo );
-+
-+ // change record vector must be cleared, for the next turn of
-+ // rendering and sprite changing
-+ mpRedrawManager->clearChangeRecords();
-+
-+ io_bSurfaceDirty = false;
-+
-+ // commit to screen
-+ mpDevice->flush();
-+
-+ return sal_True;
-+ }
-+
-+ void SpriteCanvasHelper::backgroundPaint( const ::basegfx::B2DRange& rUpdateRect )
-+ {
-+ if( mpDevice ) {
-+ Cairo* pBufferCairo = mpDevice->getBufferSurface()->getCairo();
-+
-+ repaintBackground( pBufferCairo, mpDevice->getBackgroundSurface(), rUpdateRect );
-+ cairo_destroy( pBufferCairo );
-+ }
-+ }
-+
-+ void SpriteCanvasHelper::scrollUpdate( const ::basegfx::B2DRange& rMoveStart,
-+ const ::basegfx::B2DRange& rMoveEnd,
-+ const ::canvas::SpriteRedrawManager::UpdateArea& rUpdateArea )
-+ {
-+ ENSURE_AND_THROW( mpDevice &&
-+ mpDevice->getBufferSurface(),
-+ "SpriteCanvasHelper::scrollUpdate(): NULL device pointer " );
-+
-+ Cairo* pBufferCairo = mpDevice->getBufferSurface()->getCairo();
-+
-+ OSL_TRACE("SpriteCanvasHelper::scrollUpdate called");
-+
-+ const ::basegfx::B2ISize& rSize = mpDevice->getSizePixel();
-+ const ::basegfx::B2IRange aOutputBounds( 0,0,
-+ rSize.getX(),
-+ rSize.getY() );
-+
-+ // round rectangles to integer pixel. Note: have to be
-+ // extremely careful here, to avoid off-by-one errors for
-+ // the destination area: otherwise, the next scroll update
-+ // would copy pixel that are not supposed to be part of
-+ // the sprite.
-+ ::basegfx::B2IRange aSourceRect(
-+ ::canvas::tools::spritePixelAreaFromB2DRange( rMoveStart ) );
-+ const ::basegfx::B2IRange& rDestRect(
-+ ::canvas::tools::spritePixelAreaFromB2DRange( rMoveEnd ) );
-+ ::basegfx::B2IPoint aDestPos( rDestRect.getMinimum() );
-+
-+ ::std::vector< ::basegfx::B2IRange > aUnscrollableAreas;
-+
-+ // TODO(E3): This is plain buggy (but copies the behaviour of
-+ // the old Impress slideshow) - the scrolled area might
-+ // actually lie _below_ another window!
-+
-+ // clip to output bounds (cannot properly scroll stuff
-+ // _outside_ our screen area)
-+ if( !::canvas::tools::clipScrollArea( aSourceRect,
-+ aDestPos,
-+ aUnscrollableAreas,
-+ aOutputBounds ) )
-+ {
-+ // fully clipped scroll area: cannot simply scroll
-+ // then. Perform normal opaque update (can use that, since
-+ // one of the preconditions for scrollable update is
-+ // opaque sprite content)
-+
-+ // repaint all affected sprites directly to output device
-+ ::std::for_each( rUpdateArea.maComponentList.begin(),
-+ rUpdateArea.maComponentList.end(),
-+ ::boost::bind(
-+ &spriteRedrawStub3,
-+ pBufferCairo,
-+ _1 ) );
-+ }
-+ else
-+ {
-+ const ::basegfx::B2IVector aSourceUpperLeftPos( aSourceRect.getMinimum() );
-+
-+ // clip dest area (which must be inside rDestBounds)
-+ ::basegfx::B2IRange aDestRect( rDestRect );
-+ aDestRect.intersect( aOutputBounds );
-+
-+ cairo_save( pBufferCairo );
-+ // scroll content in device back buffer
-+ cairo_set_source_surface( pBufferCairo, mpDevice->getBufferSurface()->mpSurface,
-+ aDestPos.getX() - aSourceUpperLeftPos.getX(),
-+ aDestPos.getY() - aSourceUpperLeftPos.getY() );
-+ cairo_rectangle( pBufferCairo,
-+ aDestPos.getX(), aDestPos.getY(),
-+ aDestRect.getRange().getX(), aDestRect.getRange().getY() );
-+ cairo_clip( pBufferCairo );
-+ cairo_set_operator( pBufferCairo, CAIRO_OPERATOR_SOURCE );
-+ cairo_paint( pBufferCairo );
-+ cairo_restore( pBufferCairo );
-+
-+ const ::canvas::SpriteRedrawManager::SpriteConnectedRanges::ComponentListType::const_iterator
-+ aFirst( rUpdateArea.maComponentList.begin() );
-+ ::canvas::SpriteRedrawManager::SpriteConnectedRanges::ComponentListType::const_iterator
-+ aSecond( aFirst ); ++aSecond;
-+
-+ ENSURE_AND_THROW( aFirst->second.getSprite().is(),
-+ "VCLCanvas::scrollUpdate(): no sprite" );
-+
-+ // repaint uncovered areas from sprite. Need to actually
-+ // clip here, since we're only repainting _parts_ of the
-+ // sprite
-+ ::std::for_each( aUnscrollableAreas.begin(),
-+ aUnscrollableAreas.end(),
-+ ::boost::bind( &opaqueUpdateSpriteArea,
-+ ::boost::cref(aFirst->second.getSprite()),
-+ pBufferCairo,
-+ _1 ) );
-+ }
-+
-+ // repaint uncovered areas from backbuffer - take the
-+ // _rounded_ rectangles from above, to have the update
-+ // consistent with the scroll above.
-+ ::std::vector< ::basegfx::B2DRange > aUncoveredAreas;
-+ ::basegfx::computeSetDifference( aUncoveredAreas,
-+ rUpdateArea.maTotalBounds,
-+ ::basegfx::B2DRange( rDestRect ) );
-+ ::std::for_each( aUncoveredAreas.begin(),
-+ aUncoveredAreas.end(),
-+ ::boost::bind( &repaintBackground,
-+ pBufferCairo,
-+ mpDevice->getBackgroundSurface(),
-+ _1 ) );
-+
-+ Cairo* pWindowCairo = mpDevice->getWindowSurface()->getCairo();
-+
-+ cairo_rectangle( pWindowCairo, 0, 0, rSize.getX(), rSize.getY() );
-+ cairo_clip( pWindowCairo );
-+ cairo_set_source_surface( pWindowCairo, mpDevice->getBufferSurface()->mpSurface, 0, 0 );
-+ cairo_set_operator( pWindowCairo, CAIRO_OPERATOR_SOURCE );
-+ cairo_paint( pWindowCairo );
-+
-+ cairo_destroy( pBufferCairo );
-+ cairo_destroy( pWindowCairo );
-+ }
-+
-+ void SpriteCanvasHelper::opaqueUpdate( const ::basegfx::B2DRange& rTotalArea,
-+ const ::std::vector< ::canvas::Sprite::Reference >& rSortedUpdateSprites )
-+ {
-+ ENSURE_AND_THROW( mpDevice &&
-+ mpDevice->getBufferSurface(),
-+ "SpriteCanvasHelper::opaqueUpdate(): NULL device pointer " );
-+
-+ OSL_TRACE("SpriteCanvasHelper::opaqueUpdate called");
-+
-+ Cairo* pBufferCairo = mpDevice->getBufferSurface()->getCairo();
-+ const ::basegfx::B2ISize& rDeviceSize = mpDevice->getSizePixel();
-+
-+ cairo_rectangle( pBufferCairo, 0, 0, rDeviceSize.getX(), rDeviceSize.getY() );
-+ cairo_clip( pBufferCairo );
-+
-+ ::basegfx::B2DVector aPos( ceil( rTotalArea.getMinX() ), ceil( rTotalArea.getMinY() ) );
-+ ::basegfx::B2DVector aSize( floor( rTotalArea.getMaxX() - aPos.getX() ), floor( rTotalArea.getMaxY() - aPos.getY() ) );
-+
-+ cairo_rectangle( pBufferCairo, aPos.getX(), aPos.getY(), aSize.getX(), aSize.getY() );
-+ cairo_clip( pBufferCairo );
-+
-+ // repaint all affected sprites directly to output device
-+ ::std::for_each( rSortedUpdateSprites.begin(),
-+ rSortedUpdateSprites.end(),
-+ ::boost::bind(
-+ &spriteRedrawStub,
-+ pBufferCairo,
-+ _1 ) );
-+
-+ // flush to screen
-+ Cairo* pWindowCairo = mpDevice->getWindowSurface()->getCairo();
-+
-+ cairo_rectangle( pWindowCairo, 0, 0, rDeviceSize.getX(), rDeviceSize.getY() );
-+ cairo_clip( pWindowCairo );
-+ cairo_rectangle( pWindowCairo, aPos.getX(), aPos.getY(), aSize.getX(), aSize.getY() );
-+ cairo_clip( pWindowCairo );
-+ cairo_set_source_surface( pWindowCairo, mpDevice->getBufferSurface()->mpSurface, 0, 0 );
-+ cairo_set_operator( pWindowCairo, CAIRO_OPERATOR_SOURCE );
-+ cairo_paint( pWindowCairo );
-+
-+ cairo_destroy( pBufferCairo );
-+ cairo_destroy( pWindowCairo );
-+ }
-+
-+ void SpriteCanvasHelper::genericUpdate( const ::basegfx::B2DRange& rRequestedArea,
-+ const ::std::vector< ::canvas::Sprite::Reference >& rSortedUpdateSprites )
-+ {
-+ // TODO
-+ OSL_TRACE("SpriteCanvasHelper::genericUpdate called");
-+
-+ ENSURE_AND_THROW( mpDevice &&
-+ mpDevice->getBufferSurface(),
-+ "SpriteCanvasHelper::genericUpdate(): NULL device pointer " );
-+
-+ Cairo* pBufferCairo = mpDevice->getBufferSurface()->getCairo();
-+
-+ // limit size of update VDev to target outdev's size
-+ const ::basegfx::B2ISize& rSize = mpDevice->getSizePixel();
-+
-+ // round output position towards zero. Don't want to truncate
-+ // a fraction of a sprite pixel... Clip position at origin,
-+ // otherwise, truncation of size below might leave visible
-+ // areas uncovered by VDev.
-+ const Point aOutputPosition(
-+ ::std::max( sal_Int32( 0 ),
-+ static_cast< sal_Int32 >(rRequestedArea.getMinX()) ),
-+ ::std::max( sal_Int32( 0 ),
-+ static_cast< sal_Int32 >(rRequestedArea.getMinY()) ) );
-+ // round output size towards +infty. Don't want to truncate a
-+ // fraction of a sprite pixel... Limit size of VDev to output
-+ // device's area.
-+ const Size aOutputSize(
-+ ::std::min( rSize.getX(),
-+ ::canvas::tools::roundUp( rRequestedArea.getMaxX() - aOutputPosition.X()) ),
-+ ::std::min( rSize.getY(),
-+ ::canvas::tools::roundUp( rRequestedArea.getMaxY() - aOutputPosition.Y()) ) );
-+
-+ cairo_rectangle( pBufferCairo, aOutputPosition.X(), aOutputPosition.Y(), aOutputSize.Width(), aOutputSize.Height() );
-+ cairo_clip( pBufferCairo );
-+
-+ // paint background
-+ cairo_save( pBufferCairo );
-+ cairo_set_source_surface( pBufferCairo, mpDevice->getBackgroundSurface()->mpSurface, 0, 0 );
-+ cairo_set_operator( pBufferCairo, CAIRO_OPERATOR_SOURCE );
-+ cairo_paint( pBufferCairo );
-+ cairo_restore( pBufferCairo );
-+
-+ // repaint all affected sprites on top of background into
-+ // VDev.
-+ ::std::for_each( rSortedUpdateSprites.begin(),
-+ rSortedUpdateSprites.end(),
-+ ::boost::bind( &spriteRedrawStub2,
-+ pBufferCairo,
-+ _1 ) );
-+
-+ // flush to screen
-+ Cairo* pWindowCairo = mpDevice->getWindowSurface()->getCairo();
-+
-+ cairo_rectangle( pWindowCairo, aOutputPosition.X(), aOutputPosition.Y(), aOutputSize.Width(), aOutputSize.Height() );
-+ cairo_clip( pWindowCairo );
-+ cairo_set_source_surface( pWindowCairo, mpDevice->getBufferSurface()->mpSurface, 0, 0 );
-+ cairo_set_operator( pWindowCairo, CAIRO_OPERATOR_SOURCE );
-+ cairo_paint( pWindowCairo );
-+
-+ cairo_destroy( pBufferCairo );
-+ cairo_destroy( pWindowCairo );
-+ }
-+}
diff --git a/patches/cairo/canvas-source-cairo-cairo_spritecanvashelper-hxx.diff b/patches/cairo/canvas-source-cairo-cairo_spritecanvashelper-hxx.diff
deleted file mode 100644
index 65baff75a..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_spritecanvashelper-hxx.diff
+++ /dev/null
@@ -1,150 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_spritecanvashelper.hxx
-@@ -0,0 +1,147 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CAIROCANVAS_SPRITECANVASHELPER_HXX_
-+#define _CAIROCANVAS_SPRITECANVASHELPER_HXX_
-+
-+#include <com/sun/star/rendering/XSpriteCanvas.hpp>
-+#include <com/sun/star/rendering/XIntegerBitmap.hpp>
-+
-+#include <canvas/spriteredrawmanager.hxx>
-+
-+#include "cairo_cairo.hxx"
-+#include "cairo_canvashelper.hxx"
-+
-+namespace basegfx
-+{
-+ class B2IRange;
-+}
-+
-+namespace cairocanvas
-+{
-+ class SpriteCanvas;
-+
-+ class SpriteCanvasHelper : public CanvasHelper
-+ {
-+ public:
-+ SpriteCanvasHelper();
-+
-+ void init( ::canvas::SpriteRedrawManager& rManager,
-+ SpriteCanvas& rDevice,
-+ const ::basegfx::B2ISize& rSize,
-+ bool bHasAlpha );
-+
-+ /// Dispose all internal references
-+ void disposing();
-+
-+ // XSpriteCanvas
-+ ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XAnimatedSprite > createSpriteFromAnimation(
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XAnimation >& animation );
-+
-+ ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XAnimatedSprite > createSpriteFromBitmaps(
-+ const ::com::sun::star::uno::Sequence<
-+ ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XBitmap > >& animationBitmaps,
-+ sal_Int8 interpolationMode );
-+
-+ ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XCustomSprite > createCustomSprite(
-+ const ::com::sun::star::geometry::RealSize2D& spriteSize );
-+
-+ ::com::sun::star::uno::Reference<
-+ ::com::sun::star::rendering::XSprite > createClonedSprite(
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XSprite >& original );
-+
-+ /** Actually perform the screen update
-+
-+ @param rCurrArea
-+ Current window area in absolute screen coordinates
-+
-+ @param bUpdateAll
-+ sal_True, if everything must be updated, not only changed
-+ sprites
-+
-+ @param io_bSurfaceDirty
-+ In/out parameter, whether backbuffer surface is dirty (if
-+ yes, we're performing a full update, anyway)
-+ */
-+ sal_Bool updateScreen( const ::basegfx::B2IRange& rCurrArea,
-+ sal_Bool bUpdateAll,
-+ bool& io_bSurfaceDirty );
-+
-+
-+ // SpriteRedrawManager functor calls
-+ // -------------------------------------------------
-+
-+ /** Gets called for simple background repaints
-+ */
-+ void backgroundPaint( const ::basegfx::B2DRange& rUpdateRect );
-+
-+ /** Gets called when area can be handled by scrolling.
-+
-+ Called method must copy screen content from rMoveStart to
-+ rMoveEnd, and restore the background in the uncovered
-+ areas.
-+
-+ @param rMoveStart
-+ Source rect of the scroll
-+
-+ @param rMoveEnd
-+ Dest rect of the scroll
-+
-+ @param rUpdateArea
-+ All info necessary, should rMoveStart be partially or
-+ fully outside the outdev
-+ */
-+ void scrollUpdate( const ::basegfx::B2DRange& rMoveStart,
-+ const ::basegfx::B2DRange& rMoveEnd,
-+ const ::canvas::SpriteRedrawManager::UpdateArea& rUpdateArea );
-+
-+ void opaqueUpdate( const ::basegfx::B2DRange& rTotalArea,
-+ const ::std::vector< ::canvas::Sprite::Reference >& rSortedUpdateSprites );
-+
-+ void genericUpdate( const ::basegfx::B2DRange& rTotalArea,
-+ const ::std::vector< ::canvas::Sprite::Reference >& rSortedUpdateSprites );
-+
-+ private:
-+ /// Set from the SpriteCanvas: instance coordinating sprite redraw
-+ ::canvas::SpriteRedrawManager* mpRedrawManager;
-+ };
-+}
-+
-+#endif /* _CAIROCANVAS_SPRITECANVASHELPER_HXX_ */
-+
diff --git a/patches/cairo/canvas-source-cairo-cairo_spritehelper-cxx.diff b/patches/cairo/canvas-source-cairo-cairo_spritehelper-cxx.diff
deleted file mode 100644
index 7dc12b88b..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_spritehelper-cxx.diff
+++ /dev/null
@@ -1,204 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_spritehelper.cxx
-@@ -0,0 +1,201 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#include <canvas/debug.hxx>
-+#include <canvas/verbosetrace.hxx>
-+
-+#include <rtl/logfile.hxx>
-+#include <rtl/math.hxx>
-+
-+#include <canvas/canvastools.hxx>
-+
-+#include <basegfx/matrix/b2dhommatrix.hxx>
-+#include <basegfx/point/b2dpoint.hxx>
-+#include <basegfx/tools/canvastools.hxx>
-+#include <basegfx/numeric/ftools.hxx>
-+#include <basegfx/polygon/b2dpolypolygontools.hxx>
-+#include <basegfx/polygon/b2dpolygontools.hxx>
-+#include <basegfx/polygon/b2dpolypolygonrasterconverter.hxx>
-+#include <basegfx/polygon/b2dpolygontriangulator.hxx>
-+#include <basegfx/polygon/b2dpolygoncutandtouch.hxx>
-+
-+#include "cairo_canvascustomsprite.hxx"
-+#include "cairo_spritehelper.hxx"
-+
-+#include <memory>
-+
-+
-+using namespace ::cairo;
-+using namespace ::com::sun::star;
-+
-+namespace cairocanvas
-+{
-+ SpriteHelper::SpriteHelper() :
-+ mpSpriteCanvas(),
-+ mbTextureDirty( true ),
-+ mpBufferSurface( NULL )
-+ {
-+ }
-+
-+ void SpriteHelper::init( const geometry::RealSize2D& rSpriteSize,
-+ const SpriteCanvasRef& rSpriteCanvas,
-+ Surface* pBufferSurface )
-+ {
-+ ENSURE_AND_THROW( rSpriteCanvas.get(),
-+ "SpriteHelper::init(): Invalid device, sprite canvas or surface" );
-+
-+ mpSpriteCanvas = rSpriteCanvas;
-+ mbTextureDirty = true;
-+
-+ // also init base class
-+ CanvasCustomSpriteHelper::init( rSpriteSize,
-+ rSpriteCanvas.get() );
-+
-+ if( mpBufferSurface )
-+ mpBufferSurface->Unref();
-+ mpBufferSurface = pBufferSurface;
-+ mpBufferSurface->Ref();
-+ }
-+
-+ void SpriteHelper::disposing()
-+ {
-+ mpSpriteCanvas.clear();
-+
-+ // forward to parent
-+ CanvasCustomSpriteHelper::disposing();
-+
-+ if( mpBufferSurface ) {
-+ mpBufferSurface->Unref();
-+ mpBufferSurface = NULL;
-+ }
-+ }
-+
-+ void SpriteHelper::redraw( Cairo* pCairo,
-+ const ::basegfx::B2DPoint& rPos,
-+ bool& io_bSurfacesDirty,
-+ bool bBufferedUpdate ) const
-+ {
-+ #ifdef CAIRO_CANVAS_PERF_TRACE
-+ struct timespec aTimer;
-+ mxDevice->startPerfTrace( &aTimer );
-+ #endif
-+
-+ const double fAlpha( getAlpha() );
-+ const ::basegfx::B2DHomMatrix aTransform( getTransformation() );
-+
-+ if( isActive() && !::basegfx::fTools::equalZero( fAlpha ) ) {
-+ OSL_TRACE ("CanvasCustomSprite::redraw called\n");
-+ if( pCairo ) {
-+ basegfx::B2DVector aSize = getSizePixel();
-+ cairo_save( pCairo );
-+
-+ double fX, fY;
-+
-+ fX = rPos.getX();
-+ fY = rPos.getY();
-+
-+ if( !aTransform.isIdentity() ) {
-+ cairo_matrix_t aMatrix, aInverseMatrix;
-+ cairo_matrix_init( &aMatrix,
-+ aTransform.get( 0, 0 ), aTransform.get( 1, 0 ), aTransform.get( 0, 1 ),
-+ aTransform.get( 1, 1 ), aTransform.get( 0, 2 ), aTransform.get( 1, 2 ) );
-+
-+ aMatrix.x0 = round( aMatrix.x0 );
-+ aMatrix.y0 = round( aMatrix.y0 );
-+
-+ cairo_matrix_init( &aInverseMatrix, aMatrix.xx, aMatrix.yx, aMatrix.xy, aMatrix.yy, aMatrix.x0, aMatrix.y0 );
-+ cairo_matrix_invert( &aInverseMatrix );
-+ cairo_matrix_transform_distance( &aInverseMatrix, &fX, &fY );
-+
-+ cairo_set_matrix( pCairo, &aMatrix );
-+ }
-+
-+ fX = round( fX );
-+ fY = round( fY );
-+
-+ cairo_matrix_t aOrigMatrix;
-+ cairo_get_matrix( pCairo, &aOrigMatrix );
-+ cairo_translate( pCairo, fX, fY );
-+
-+ if( getClip().is() )
-+ {
-+ ::basegfx::B2DPolyPolygon aClipPoly(
-+ ::canvas::tools::polyPolygonFromXPolyPolygon2D(
-+ getClip() ));
-+
-+ //cairo_reset_clip( pCairo );
-+ drawPolyPolygonImplementation( aClipPoly, Clip, pCairo );
-+ }
-+
-+ OSL_TRACE ("aSize %f x %f\n", aSize.getX(), aSize.getY() );
-+ cairo_rectangle( pCairo, 0, 0, floor( aSize.getX() ), floor( aSize.getY() ) );
-+ cairo_clip( pCairo );
-+ cairo_set_matrix( pCairo, &aOrigMatrix );
-+
-+ if( isContentFullyOpaque() )
-+ cairo_set_operator( pCairo, CAIRO_OPERATOR_SOURCE );
-+ cairo_set_source_surface( pCairo, mpBufferSurface->mpSurface, fX, fY );
-+ if( ::rtl::math::approxEqual( fAlpha, 1.0 ) )
-+ cairo_paint( pCairo );
-+ else
-+ cairo_paint_with_alpha( pCairo, fAlpha );
-+
-+ cairo_restore( pCairo );
-+ }
-+ }
-+
-+ #ifdef CAIRO_CANVAS_PERF_TRACE
-+ mxDevice->stopPerfTrace( &aTimer, "sprite redraw" );
-+ #endif
-+ }
-+
-+ void SpriteHelper::clearSurface()
-+ {
-+ Cairo* pCairo = mpBufferSurface->getCairo();
-+ const ::basegfx::B2DVector& rSize( getSizePixel() );
-+
-+ cairo_set_operator( pCairo, CAIRO_OPERATOR_SOURCE );
-+ cairo_set_source_rgba( pCairo, 0, 0, 0, 0 );
-+ cairo_rectangle( pCairo, 0, 0, rSize.getX(), rSize.getY() );
-+ cairo_fill( pCairo );
-+
-+ cairo_destroy( pCairo );
-+ }
-+
-+ ::basegfx::B2DPolyPolygon SpriteHelper::polyPolygonFromXPolyPolygon2D( uno::Reference< rendering::XPolyPolygon2D >& xPoly ) const
-+ {
-+ return ::canvas::tools::polyPolygonFromXPolyPolygon2D( xPoly );
-+ }
-+}
diff --git a/patches/cairo/canvas-source-cairo-cairo_spritehelper-hxx.diff b/patches/cairo/canvas-source-cairo-cairo_spritehelper-hxx.diff
deleted file mode 100644
index 7171ed825..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_spritehelper-hxx.diff
+++ /dev/null
@@ -1,127 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_spritehelper.hxx
-@@ -0,0 +1,124 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CAIROCANVAS_SPRITEHELPER_HXX
-+#define _CAIROCANVAS_SPRITEHELPER_HXX
-+
-+#include <com/sun/star/rendering/XCustomSprite.hpp>
-+
-+#include <canvas/base/canvascustomspritehelper.hxx>
-+
-+#include <basegfx/point/b2dpoint.hxx>
-+#include <basegfx/vector/b2isize.hxx>
-+#include <basegfx/matrix/b2dhommatrix.hxx>
-+
-+#include "cairo_spritecanvas.hxx"
-+
-+
-+namespace cairocanvas
-+{
-+ /* Definition of SpriteHelper class */
-+
-+ /** Helper class for canvas sprites.
-+
-+ This class implements all sprite-related functionality, like
-+ that available on the XSprite interface.
-+ */
-+ class SpriteHelper : public ::canvas::CanvasCustomSpriteHelper
-+ {
-+ public:
-+ /** Create sprite helper
-+ */
-+ SpriteHelper();
-+
-+ /** Late-init the sprite helper
-+
-+ @param rSpriteSize
-+ Size of the sprite
-+
-+ @param rSpriteCanvas
-+ Sprite canvas this sprite is part of. Object stores
-+ ref-counted reference to it, thus, don't forget to pass on
-+ disposing()!
-+
-+ @param rDevice
-+ DX device to use
-+
-+ @param rSpriteSurface
-+ The surface of the sprite (not the DX texture, but the
-+ persistent target of content rendering)
-+
-+ @param bShowSpriteBounds
-+ When true, little debug bound rects for sprites are shown
-+ */
-+ void init( const ::com::sun::star::geometry::RealSize2D& rSpriteSize,
-+ const SpriteCanvasRef& rSpriteCanvas,
-+ ::cairo::Surface* pBufferSurface);
-+
-+ void disposing();
-+
-+ /** Repaint sprite content to associated sprite canvas
-+
-+ @param rPos
-+ Output position (sprite's own position is disregarded)
-+
-+ @param io_bSurfacesDirty
-+ When true, the referenced sprite surfaces (backBuffer and
-+ backBufferMask) have been modified since last call.
-+
-+ @param bBufferedUpdate
-+ When true, the redraw does <em>not</em> happen directly on
-+ the front buffer, but within a VDev. Used to speed up
-+ drawing.
-+ */
-+ void redraw( ::cairo::Cairo* pCairo,
-+ const ::basegfx::B2DPoint& rPos,
-+ bool& bSurfacesDirty,
-+ bool bBufferedUpdate ) const;
-+
-+ private:
-+ virtual void clearSurface();
-+ virtual ::basegfx::B2DPolyPolygon polyPolygonFromXPolyPolygon2D(
-+ ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D >& xPoly ) const;
-+
-+
-+ SpriteCanvasRef mpSpriteCanvas;
-+ mutable bool mbTextureDirty; // when true, texture needs update
-+
-+ ::cairo::Surface* mpBufferSurface;
-+ };
-+}
-+
-+#endif /* _CAIROCANVAS_SPRITEHELPER_HXX */
diff --git a/patches/cairo/canvas-source-cairo-cairo_spritesurface-hxx.diff b/patches/cairo/canvas-source-cairo-cairo_spritesurface-hxx.diff
deleted file mode 100644
index a45898ee4..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_spritesurface-hxx.diff
+++ /dev/null
@@ -1,109 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_spritesurface.hxx
-@@ -0,0 +1,106 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _VCLCANVAS_SPRITESURFACE_HXX
-+#define _VCLCANVAS_SPRITESURFACE_HXX
-+
-+#ifndef _SAL_CONFIG_H_
-+#include <sal/config.h>
-+#endif
-+
-+#include "cairo_sprite.hxx"
-+
-+class Point;
-+class Size;
-+class Rectangle;
-+
-+namespace cairocanvas
-+{
-+ /* Definition of SpriteSurface interface */
-+
-+ class SpriteSurface
-+ {
-+ public:
-+ virtual ~SpriteSurface() {}
-+
-+ // call this when XSprite::show() is called
-+ virtual void showSprite( const Sprite::ImplRef& sprite ) = 0;
-+
-+ // call this when XSprite::hide() is called
-+ virtual void hideSprite( const Sprite::ImplRef& sprite ) = 0;
-+
-+ // call this when XSprite::move() is called
-+ virtual void moveSprite( const Sprite::ImplRef& sprite,
-+ const Point& rOldPos,
-+ const Point& rNewPos,
-+ const Size& rSpriteSize ) = 0;
-+
-+ // call this when some part of your sprite has changed. That
-+ // includes show/hide´, i.e. for show, both showSprite and
-+ // updateSprite must be called.
-+ virtual void updateSprite( const Sprite::ImplRef& sprite,
-+ const Point& rPos,
-+ const Rectangle& rUpdateArea ) = 0;
-+
-+ };
-+}
-+
-+#endif /* _VCLCANVAS_SPRITESURFACE_HXX */
diff --git a/patches/cairo/canvas-source-cairo-cairo_textlayout-cxx.diff b/patches/cairo/canvas-source-cairo-cairo_textlayout-cxx.diff
deleted file mode 100644
index ce2ae8cb7..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_textlayout-cxx.diff
+++ /dev/null
@@ -1,400 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_textlayout.cxx
-@@ -0,0 +1,397 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#include <canvas/debug.hxx>
-+#include <canvas/verbosetrace.hxx>
-+
-+#include <basegfx/matrix/b2dhommatrix.hxx>
-+#include <basegfx/numeric/ftools.hxx>
-+
-+#include <boost/scoped_array.hpp>
-+
-+#include "cairo_textlayout.hxx"
-+#include "cairo_spritecanvas.hxx"
-+
-+
-+using namespace ::cairo;
-+using namespace ::com::sun::star;
-+
-+namespace cairocanvas
-+{
-+ TextLayout::TextLayout( const rendering::StringContext& aText,
-+ sal_Int8 nDirection,
-+ sal_Int64 nRandomSeed,
-+ const CanvasFont::Reference& rFont ) :
-+ TextLayout_Base( m_aMutex ),
-+ maText( aText ),
-+ maLogicalAdvancements(),
-+ mpFont( rFont ),
-+ mnTextDirection( nDirection )
-+ {
-+ }
-+
-+ TextLayout::~TextLayout()
-+ {
-+ }
-+
-+ void SAL_CALL TextLayout::disposing()
-+ {
-+ mpFont.reset();
-+ }
-+
-+ // XTextLayout
-+ uno::Sequence< uno::Reference< rendering::XPolyPolygon2D > > SAL_CALL TextLayout::queryTextShapes( ) throw (uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ // TODO
-+ return uno::Sequence< uno::Reference< rendering::XPolyPolygon2D > >();
-+ }
-+
-+ uno::Sequence< geometry::RealRectangle2D > SAL_CALL TextLayout::queryInkMeasures( ) throw (uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ // TODO
-+ return uno::Sequence< geometry::RealRectangle2D >();
-+ }
-+
-+ uno::Sequence< geometry::RealRectangle2D > SAL_CALL TextLayout::queryMeasures( ) throw (uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ // TODO
-+ return uno::Sequence< geometry::RealRectangle2D >();
-+ }
-+
-+ uno::Sequence< double > SAL_CALL TextLayout::queryLogicalAdvancements( ) throw (uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ return maLogicalAdvancements;
-+ }
-+
-+ void SAL_CALL TextLayout::applyLogicalAdvancements( const uno::Sequence< double >& aAdvancements ) throw (lang::IllegalArgumentException, uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ if( aAdvancements.getLength() != maText.Length )
-+ {
-+ OSL_TRACE( "TextLayout::applyLogicalAdvancements(): mismatching number of advancements" );
-+ throw lang::IllegalArgumentException();
-+ }
-+
-+ maLogicalAdvancements = aAdvancements;
-+ }
-+
-+ geometry::RealRectangle2D SAL_CALL TextLayout::queryTextBounds( ) throw (uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ ENSURE_AND_THROW( mpFont.get(),
-+ "TextLayout::queryTextBounds(): invalid font" );
-+
-+ // fake text bounds by either taking the advancement values,
-+ // or assuming square glyph boxes (width similar to height)
-+ const rendering::FontRequest& rFontRequest( mpFont->getFontRequest() );
-+ const double nFontSize( ::std::max( rFontRequest.CellSize,
-+ rFontRequest.ReferenceAdvancement ) );
-+ if( maLogicalAdvancements.getLength() )
-+ {
-+ return geometry::RealRectangle2D( 0, -nFontSize/2,
-+ maLogicalAdvancements[ maLogicalAdvancements.getLength()-1 ],
-+ nFontSize/2 );
-+ }
-+ else
-+ {
-+ return geometry::RealRectangle2D( 0, -nFontSize/2,
-+ nFontSize * maText.Length,
-+ nFontSize/2 );
-+ }
-+ }
-+
-+ double SAL_CALL TextLayout::justify( double nSize ) throw (lang::IllegalArgumentException, uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ // TODO
-+ return 0.0;
-+ }
-+
-+ double SAL_CALL TextLayout::combinedJustify( const uno::Sequence< uno::Reference< rendering::XTextLayout > >& aNextLayouts, double nSize ) throw (lang::IllegalArgumentException, uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ // TODO
-+ return 0.0;
-+ }
-+
-+ rendering::TextHit SAL_CALL TextLayout::getTextHit( const geometry::RealPoint2D& aHitPoint ) throw (uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ // TODO
-+ return rendering::TextHit();
-+ }
-+
-+ rendering::Caret SAL_CALL TextLayout::getCaret( sal_Int32 nInsertionIndex, sal_Bool bExcludeLigatures ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ // TODO
-+ return rendering::Caret();
-+ }
-+
-+ sal_Int32 SAL_CALL TextLayout::getNextInsertionIndex( sal_Int32 nStartIndex, sal_Int32 nCaretAdvancement, sal_Bool bExcludeLigatures ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ // TODO
-+ return 0;
-+ }
-+
-+ uno::Reference< rendering::XPolyPolygon2D > SAL_CALL TextLayout::queryVisualHighlighting( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ // TODO
-+ return uno::Reference< rendering::XPolyPolygon2D >();
-+ }
-+
-+ uno::Reference< rendering::XPolyPolygon2D > SAL_CALL TextLayout::queryLogicalHighlighting( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ // TODO
-+ return uno::Reference< rendering::XPolyPolygon2D >();
-+ }
-+
-+ double SAL_CALL TextLayout::getBaselineOffset( ) throw (uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ // TODO
-+ return 0.0;
-+ }
-+
-+ sal_Int8 SAL_CALL TextLayout::getMainTextDirection( ) throw (uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ return mnTextDirection;
-+ }
-+
-+ uno::Reference< rendering::XCanvasFont > SAL_CALL TextLayout::getFont( ) throw (uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ return mpFont.getRef();
-+ }
-+
-+ rendering::StringContext SAL_CALL TextLayout::getText( ) throw (uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ return maText;
-+ }
-+
-+ void TextLayout::useFont( Cairo* pCairo )
-+ {
-+ rendering::FontRequest aFontRequest = mpFont->getFontRequest();
-+ rendering::FontInfo aFontInfo = aFontRequest.FontDescription;
-+
-+ cairo_select_font_face( pCairo, ::rtl::OUStringToOString( aFontInfo.FamilyName, RTL_TEXTENCODING_UTF8 ), CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL );
-+ cairo_set_font_size( pCairo, aFontRequest.CellSize );
-+ }
-+
-+ bool TextLayout::draw( Cairo* pCairo )
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ ::rtl::OUString aSubText = maText.Text.copy( maText.StartPosition, maText.Length );
-+ ::rtl::OString aUTF8String = ::rtl::OUStringToOString( aSubText, RTL_TEXTENCODING_UTF8 );
-+
-+ cairo_save( pCairo );
-+ /* move to 0, 0 as cairo_show_text advances current point and current point is not restored by cairo_restore.
-+ before we were depending on unmodified current point which I believed was preserved by save/restore */
-+ cairo_move_to( pCairo, 0, 0 );
-+ useFont( pCairo );
-+ cairo_show_text( pCairo, aUTF8String );
-+ cairo_restore( pCairo );
-+
-+ return true;
-+ }
-+
-+ namespace
-+ {
-+ void setupLayoutMode( OutputDevice& rOutDev,
-+ sal_Int8 nTextDirection )
-+ {
-+ // TODO(P3): avoid if already correctly set
-+ ULONG nLayoutMode;
-+ switch( nTextDirection )
-+ {
-+ default:
-+ nLayoutMode = 0;
-+ break;
-+ case rendering::TextDirection::WEAK_LEFT_TO_RIGHT:
-+ nLayoutMode = TEXT_LAYOUT_BIDI_LTR;
-+ break;
-+ case rendering::TextDirection::STRONG_LEFT_TO_RIGHT:
-+ nLayoutMode = TEXT_LAYOUT_BIDI_LTR | TEXT_LAYOUT_BIDI_STRONG;
-+ break;
-+ case rendering::TextDirection::WEAK_RIGHT_TO_LEFT:
-+ nLayoutMode = TEXT_LAYOUT_BIDI_RTL;
-+ break;
-+ case rendering::TextDirection::STRONG_RIGHT_TO_LEFT:
-+ nLayoutMode = TEXT_LAYOUT_BIDI_RTL | TEXT_LAYOUT_BIDI_STRONG;
-+ break;
-+ }
-+
-+ // set calculated layout mode. Origin is always the left edge,
-+ // as required at the API spec
-+ rOutDev.SetLayoutMode( nLayoutMode | TEXT_LAYOUT_TEXTORIGIN_LEFT );
-+ }
-+ }
-+
-+ namespace
-+ {
-+ class OffsetTransformer
-+ {
-+ public:
-+ OffsetTransformer( const ::basegfx::B2DHomMatrix& rMat ) :
-+ maMatrix( rMat )
-+ {
-+ }
-+
-+ sal_Int32 operator()( const double& rOffset )
-+ {
-+ // This is an optimization of the normal rMat*[x,0]
-+ // transformation of the advancement vector (in x
-+ // direction), followed by a length calculation of the
-+ // resulting vector: advancement' =
-+ // ||rMat*[x,0]||. Since advancements are vectors, we
-+ // can ignore translational components, thus if [x,0],
-+ // it follows that rMat*[x,0]=[x',0] holds. Thus, we
-+ // just have to calc the transformation of the x
-+ // component.
-+
-+ // TODO(F2): Handle non-horizontal advancements!
-+ return ::basegfx::fround( hypot(maMatrix.get(0,0)*rOffset,
-+ maMatrix.get(1,0)*rOffset) );
-+ }
-+
-+ private:
-+ ::basegfx::B2DHomMatrix maMatrix;
-+ };
-+ }
-+
-+ void TextLayout::setupTextOffsets( sal_Int32* outputOffsets,
-+ const uno::Sequence< double >& inputOffsets,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState ) const
-+ {
-+ ENSURE_AND_THROW( outputOffsets!=NULL,
-+ "TextLayout::setupTextOffsets offsets NULL" );
-+
-+ ::basegfx::B2DHomMatrix aMatrix;
-+
-+ ::canvas::tools::mergeViewAndRenderTransform(aMatrix,
-+ viewState,
-+ renderState);
-+
-+ // fill integer offsets
-+ ::std::transform( const_cast< uno::Sequence< double >& >(inputOffsets).getConstArray(),
-+ const_cast< uno::Sequence< double >& >(inputOffsets).getConstArray()+inputOffsets.getLength(),
-+ outputOffsets,
-+ OffsetTransformer( aMatrix ) );
-+ }
-+
-+ bool TextLayout::draw( OutputDevice& rOutDev,
-+ const Point& rOutpos,
-+ const rendering::ViewState& viewState,
-+ const rendering::RenderState& renderState ) const
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ setupLayoutMode( rOutDev, mnTextDirection );
-+
-+ if( maLogicalAdvancements.getLength() )
-+ {
-+ // TODO(P2): cache that
-+ ::boost::scoped_array< sal_Int32 > aOffsets(new sal_Int32[maLogicalAdvancements.getLength()]);
-+ setupTextOffsets( aOffsets.get(), maLogicalAdvancements, viewState, renderState );
-+
-+ // TODO(F3): ensure correct length and termination for DX
-+ // array (last entry _must_ contain the overall width)
-+
-+ rOutDev.DrawTextArray( rOutpos,
-+ maText.Text,
-+ aOffsets.get(),
-+ ::canvas::tools::numeric_cast<USHORT>(maText.StartPosition),
-+ ::canvas::tools::numeric_cast<USHORT>(maText.Length) );
-+ }
-+ else
-+ {
-+ rOutDev.DrawText( rOutpos,
-+ maText.Text,
-+ ::canvas::tools::numeric_cast<USHORT>(maText.StartPosition),
-+ ::canvas::tools::numeric_cast<USHORT>(maText.Length) );
-+ }
-+
-+ return true;
-+ }
-+
-+#define SERVICE_NAME "com.sun.star.rendering.TextLayout"
-+#define IMPLEMENTATION_NAME "CairoCanvas::TextLayout"
-+
-+ ::rtl::OUString SAL_CALL TextLayout::getImplementationName() throw( uno::RuntimeException )
-+ {
-+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
-+ }
-+
-+ sal_Bool SAL_CALL TextLayout::supportsService( const ::rtl::OUString& ServiceName ) throw( uno::RuntimeException )
-+ {
-+ return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
-+ }
-+
-+ uno::Sequence< ::rtl::OUString > SAL_CALL TextLayout::getSupportedServiceNames() throw( uno::RuntimeException )
-+ {
-+ uno::Sequence< ::rtl::OUString > aRet(1);
-+ aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
-+
-+ return aRet;
-+ }
-+}
diff --git a/patches/cairo/canvas-source-cairo-cairo_textlayout-hxx.diff b/patches/cairo/canvas-source-cairo-cairo_textlayout-hxx.diff
deleted file mode 100644
index a6a9d20b0..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_textlayout-hxx.diff
+++ /dev/null
@@ -1,126 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_textlayout.hxx
-@@ -0,0 +1,123 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CAIROCANVAS_TEXTLAYOUT_HXX
-+#define _CAIROCANVAS_TEXTLAYOUT_HXX
-+
-+#include <cppuhelper/compbase2.hxx>
-+#include <comphelper/broadcasthelper.hxx>
-+
-+#include <com/sun/star/lang/XServiceInfo.hpp>
-+#include <com/sun/star/rendering/XTextLayout.hpp>
-+
-+#include <basegfx/vector/b2isize.hxx>
-+
-+#include <vcl/outdev.hxx>
-+
-+#include <boost/utility.hpp>
-+
-+#include "cairo_cairo.hxx"
-+#include "cairo_canvasfont.hxx"
-+
-+
-+/* Definition of TextLayout class */
-+
-+namespace cairocanvas
-+{
-+ typedef ::cppu::WeakComponentImplHelper2< ::com::sun::star::rendering::XTextLayout,
-+ ::com::sun::star::lang::XServiceInfo > TextLayout_Base;
-+
-+ class TextLayout : public ::comphelper::OBaseMutex,
-+ public TextLayout_Base,
-+ private ::boost::noncopyable
-+ {
-+ public:
-+ TextLayout( const ::com::sun::star::rendering::StringContext& aText,
-+ sal_Int8 nDirection,
-+ sal_Int64 nRandomSeed,
-+ const CanvasFont::Reference& rFont );
-+
-+ /// Dispose all internal references
-+ virtual void SAL_CALL disposing();
-+
-+ // XTextLayout
-+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D > > SAL_CALL queryTextShapes( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::geometry::RealRectangle2D > SAL_CALL queryInkMeasures( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::geometry::RealRectangle2D > SAL_CALL queryMeasures( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Sequence< double > SAL_CALL queryLogicalAdvancements( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL applyLogicalAdvancements( const ::com::sun::star::uno::Sequence< double >& aAdvancements ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::geometry::RealRectangle2D SAL_CALL queryTextBounds( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual double SAL_CALL justify( double nSize ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-+ virtual double SAL_CALL combinedJustify( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XTextLayout > >& aNextLayouts, double nSize ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::rendering::TextHit SAL_CALL getTextHit( const ::com::sun::star::geometry::RealPoint2D& aHitPoint ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::rendering::Caret SAL_CALL getCaret( sal_Int32 nInsertionIndex, sal_Bool bExcludeLigatures ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getNextInsertionIndex( sal_Int32 nStartIndex, sal_Int32 nCaretAdvancement, sal_Bool bExcludeLigatures ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D > SAL_CALL queryVisualHighlighting( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D > SAL_CALL queryLogicalHighlighting( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
-+ virtual double SAL_CALL getBaselineOffset( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int8 SAL_CALL getMainTextDirection( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCanvasFont > SAL_CALL getFont( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::rendering::StringContext SAL_CALL getText( ) throw (::com::sun::star::uno::RuntimeException);
-+
-+ // XServiceInfo
-+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw( ::com::sun::star::uno::RuntimeException );
-+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw( ::com::sun::star::uno::RuntimeException );
-+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw( ::com::sun::star::uno::RuntimeException );
-+
-+ bool draw( ::cairo::Cairo* pCairo );
-+ bool draw( OutputDevice& rOutDev,
-+ const Point& rOutpos,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState ) const;
-+ void setupTextOffsets( sal_Int32* outputOffsets,
-+ const ::com::sun::star::uno::Sequence< double >& inputOffsets,
-+ const ::com::sun::star::rendering::ViewState& viewState,
-+ const ::com::sun::star::rendering::RenderState& renderState ) const;
-+
-+ protected:
-+ ~TextLayout(); // we're a ref-counted UNO class. _We_ destroy ourselves.
-+
-+ private:
-+ ::com::sun::star::rendering::StringContext maText;
-+ ::com::sun::star::uno::Sequence< double > maLogicalAdvancements;
-+ CanvasFont::Reference mpFont;
-+ sal_Int8 mnTextDirection;
-+
-+ void useFont( ::cairo::Cairo* pCairo );
-+ };
-+
-+}
-+
-+#endif /* _CAIROCANVAS_TEXTLAYOUT_HXX */
diff --git a/patches/cairo/canvas-source-cairo-cairo_windowgraphicdevice-cxx.diff b/patches/cairo/canvas-source-cairo-cairo_windowgraphicdevice-cxx.diff
deleted file mode 100644
index 11af328ef..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_windowgraphicdevice-cxx.diff
+++ /dev/null
@@ -1,507 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_windowgraphicdevice.cxx
-@@ -0,0 +1,504 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include <canvas/debug.hxx>
-+
-+#include "cairo_helper.hxx"
-+#include "cairo_windowgraphicdevice.hxx"
-+#include "cairo_linepolypolygon.hxx"
-+#include "cairo_parametricpolypolygon.hxx"
-+#include "cairo_canvasbitmap.hxx"
-+
-+#include <canvas/canvastools.hxx>
-+
-+#ifndef _SV_SYSDATA_HXX
-+#include <vcl/sysdata.hxx>
-+#endif
-+
-+#ifndef _OSL_MUTEX_HXX_
-+#include <osl/mutex.hxx>
-+#endif
-+
-+#ifndef _VCL_CANVASTOOLS_HXX
-+#include <vcl/canvastools.hxx>
-+#endif
-+
-+#ifndef _BGFX_TOOLS_CANVASTOOLS_HXX
-+#include <basegfx/tools/canvastools.hxx>
-+#endif
-+
-+#ifndef _COM_SUN_STAR_RENDERING_XLINEPOLYPOLYGON2D_HPP_
-+#include <com/sun/star/rendering/XLinePolyPolygon2D.hpp>
-+#endif
-+
-+using namespace ::com::sun::star;
-+using namespace ::cairo;
-+
-+namespace cairocanvas
-+{
-+ WindowGraphicDevice::WindowGraphicDevice( Window& rOutputWindow, const SystemEnvData* pSysData ) :
-+ WindowGraphicDevice_Base( m_aMutex ),
-+ mpOutputWindow( &rOutputWindow ),
-+ mpWindowSurface( NULL )
-+ {
-+ OSL_TRACE( "WindowGraphicDevice constructor\n" );
-+
-+ CHECK_AND_THROW( mpOutputWindow != NULL,
-+ "WindowGraphicDevice::WindowGraphicDevice(): pWindow is NULL" );
-+ mpSysData = pSysData;
-+ }
-+
-+ WindowGraphicDevice::~WindowGraphicDevice()
-+ {
-+ OSL_TRACE( "WindowGraphicDevice destructor\n" );
-+ }
-+
-+ uno::Reference< rendering::XBufferController > SAL_CALL WindowGraphicDevice::getBufferController() throw (uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ return uno::Reference< rendering::XBufferController >();
-+ }
-+
-+ uno::Reference< rendering::XColorSpace > SAL_CALL WindowGraphicDevice::getDeviceColorSpace() throw (uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ return uno::Reference< rendering::XColorSpace >();
-+ }
-+
-+ geometry::RealSize2D SAL_CALL WindowGraphicDevice::getPhysicalResolution() throw (uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ if( !mpOutputWindow )
-+ return ::canvas::tools::createInfiniteSize2D(); // we're disposed
-+
-+ // Map a one-by-one millimeter box to pixel
-+ const MapMode aOldMapMode( mpOutputWindow->GetMapMode() );
-+ mpOutputWindow->SetMapMode( MapMode(MAP_MM) );
-+ const Size aPixelSize( mpOutputWindow->LogicToPixel(Size(1,1)) );
-+ mpOutputWindow->SetMapMode( aOldMapMode );
-+
-+ return ::vcl::unotools::size2DFromSize( aPixelSize );
-+ }
-+
-+ geometry::RealSize2D SAL_CALL WindowGraphicDevice::getSize() throw (uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ if( !mpOutputWindow )
-+ return ::canvas::tools::createInfiniteSize2D(); // we're disposed
-+
-+ // Map the pixel dimensions of the output window to millimeter
-+ const MapMode aOldMapMode( mpOutputWindow->GetMapMode() );
-+ mpOutputWindow->SetMapMode( MapMode(MAP_MM) );
-+ const Size aLogSize( mpOutputWindow->PixelToLogic(mpOutputWindow->GetOutputSizePixel()) );
-+ mpOutputWindow->SetMapMode( aOldMapMode );
-+
-+ return ::vcl::unotools::size2DFromSize( aLogSize );
-+ }
-+
-+ uno::Reference< rendering::XLinePolyPolygon2D > SAL_CALL WindowGraphicDevice::createCompatibleLinePolyPolygon( const uno::Sequence< uno::Sequence< geometry::RealPoint2D > >& points ) throw (uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ if( !mpOutputWindow )
-+ return uno::Reference< rendering::XLinePolyPolygon2D >(); // we're disposed
-+
-+ return uno::Reference< rendering::XLinePolyPolygon2D >(
-+ new LinePolyPolygon(
-+ ::basegfx::unotools::polyPolygonFromPoint2DSequenceSequence( points ) ) );
-+ }
-+
-+ uno::Reference< rendering::XBezierPolyPolygon2D > SAL_CALL WindowGraphicDevice::createCompatibleBezierPolyPolygon( const uno::Sequence< uno::Sequence< geometry::RealBezierSegment2D > >& points ) throw (uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ if( !mpOutputWindow )
-+ return uno::Reference< rendering::XBezierPolyPolygon2D >(); // we're disposed
-+
-+ return uno::Reference< rendering::XBezierPolyPolygon2D >(
-+ new LinePolyPolygon(
-+ ::basegfx::unotools::polyPolygonFromBezier2DSequenceSequence( points ) ) );
-+ }
-+
-+ uno::Reference< rendering::XBitmap > SAL_CALL WindowGraphicDevice::createCompatibleBitmap( const geometry::IntegerSize2D& size ) throw (lang::IllegalArgumentException,uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ if( !mpOutputWindow )
-+ return uno::Reference< rendering::XBitmap >(); // we're disposed
-+
-+ return uno::Reference< rendering::XBitmap >( new CanvasBitmap( ::vcl::unotools::sizeFromIntegerSize2D(size),
-+ false,
-+ ImplRef(this) ) );
-+ }
-+
-+ uno::Reference< rendering::XVolatileBitmap > SAL_CALL WindowGraphicDevice::createVolatileBitmap( const geometry::IntegerSize2D& size ) throw (lang::IllegalArgumentException,uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ return uno::Reference< rendering::XVolatileBitmap >();
-+ }
-+
-+ uno::Reference< rendering::XBitmap > SAL_CALL WindowGraphicDevice::createCompatibleAlphaBitmap( const geometry::IntegerSize2D& size ) throw (lang::IllegalArgumentException, uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ if( !mpOutputWindow )
-+ return uno::Reference< rendering::XBitmap >(); // we're disposed
-+
-+ return uno::Reference< rendering::XBitmap >( new CanvasBitmap( ::vcl::unotools::sizeFromIntegerSize2D(size),
-+ true,
-+ ImplRef(this) ) );
-+ }
-+
-+ uno::Reference< rendering::XVolatileBitmap > SAL_CALL WindowGraphicDevice::createVolatileAlphaBitmap( const geometry::IntegerSize2D& size ) throw (lang::IllegalArgumentException, uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ return uno::Reference< rendering::XVolatileBitmap >();
-+ }
-+
-+ uno::Reference< rendering::XParametricPolyPolygon2DFactory > SAL_CALL WindowGraphicDevice::getParametricPolyPolygonFactory() throw (uno::RuntimeException)
-+ {
-+ return uno::Reference< rendering::XParametricPolyPolygon2DFactory >( this );
-+ }
-+
-+ sal_Bool SAL_CALL WindowGraphicDevice::hasFullScreenMode() throw (uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ return false;
-+ }
-+
-+ sal_Bool SAL_CALL WindowGraphicDevice::enterFullScreenMode( sal_Bool bEnter ) throw (uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ return false;
-+ }
-+
-+ // XParametricPolyPolygon2DFactory
-+ // =========================================================
-+
-+ uno::Reference< rendering::XParametricPolyPolygon2D > SAL_CALL WindowGraphicDevice::createLinearHorizontalGradient( const uno::Sequence< double >& leftColor, const uno::Sequence< double >& rightColor ) throw (lang::IllegalArgumentException, uno::RuntimeException)
-+ {
-+ // TODO(P1): Could as well use static objects here,
-+ // XParametricPolyPolygon2D has no (externally visible)
-+ // state. OTOH, might as well leave that as it is, to allow
-+ // each XParametricPolyPolygon2D to hold a static
-+ // XPolyPolygon2D internally, and hand out the same
-+ // XPolyPolygon2D each time
-+ // XParametricPolyPolygon2D::getOutline() is called.
-+ return uno::Reference< rendering::XParametricPolyPolygon2D >(
-+ ParametricPolyPolygon::createLinearHorizontalGradient( leftColor,
-+ rightColor,
-+ this ) );
-+ }
-+
-+ uno::Reference< rendering::XParametricPolyPolygon2D > SAL_CALL WindowGraphicDevice::createAxialHorizontalGradient( const uno::Sequence< double >& middleColor, const uno::Sequence< double >& endColor ) throw (lang::IllegalArgumentException, uno::RuntimeException)
-+ {
-+ // TODO(P1): Could as well use static objects here,
-+ // XParametricPolyPolygon2D has no (externally visible)
-+ // state. OTOH, might as well leave that as it is, to allow
-+ // each XParametricPolyPolygon2D to hold a static
-+ // XPolyPolygon2D internally, and hand out the same
-+ // XPolyPolygon2D each time
-+ // XParametricPolyPolygon2D::getOutline() is called.
-+ return uno::Reference< rendering::XParametricPolyPolygon2D >(
-+ ParametricPolyPolygon::createAxialHorizontalGradient( middleColor,
-+ endColor,
-+ this ) );
-+ }
-+
-+ uno::Reference< rendering::XParametricPolyPolygon2D > SAL_CALL WindowGraphicDevice::createEllipticalGradient( const uno::Sequence< double >& centerColor, const uno::Sequence< double >& endColor, const geometry::RealRectangle2D& boundRect ) throw (lang::IllegalArgumentException, uno::RuntimeException)
-+ {
-+ // TODO(P1): Could as well use static objects here,
-+ // XParametricPolyPolygon2D has no (externally visible)
-+ // state. OTOH, might as well leave that as it is, to allow
-+ // each XParametricPolyPolygon2D to hold a static
-+ // XPolyPolygon2D internally, and hand out the same
-+ // XPolyPolygon2D each time
-+ // XParametricPolyPolygon2D::getOutline() is called.
-+ return uno::Reference< rendering::XParametricPolyPolygon2D >(
-+ ParametricPolyPolygon::createEllipticalGradient( centerColor,
-+ endColor,
-+ boundRect,
-+ this ) );
-+ }
-+
-+ uno::Reference< rendering::XParametricPolyPolygon2D > SAL_CALL WindowGraphicDevice::createRectangularGradient( const uno::Sequence< double >& centerColor, const uno::Sequence< double >& endColor, const geometry::RealRectangle2D& boundRect ) throw (lang::IllegalArgumentException, uno::RuntimeException)
-+ {
-+ // TODO(P1): Could as well use static objects here,
-+ // XParametricPolyPolygon2D has no (externally visible)
-+ // state. OTOH, might as well leave that as it is, to allow
-+ // each XParametricPolyPolygon2D to hold a static
-+ // XPolyPolygon2D internally, and hand out the same
-+ // XPolyPolygon2D each time
-+ // XParametricPolyPolygon2D::getOutline() is called.
-+ return uno::Reference< rendering::XParametricPolyPolygon2D >(
-+ ParametricPolyPolygon::createRectangularGradient( centerColor,
-+ endColor,
-+ boundRect,
-+ this ) );
-+ }
-+
-+ uno::Reference< rendering::XParametricPolyPolygon2D > SAL_CALL WindowGraphicDevice::createVerticalLinesHatch( const uno::Sequence< double >& leftColor, const uno::Sequence< double >& rightColor ) throw (lang::IllegalArgumentException, uno::RuntimeException)
-+ {
-+ // TODO(F1): hatch factory NYI
-+ return uno::Reference< rendering::XParametricPolyPolygon2D >();
-+ }
-+
-+ uno::Reference< rendering::XParametricPolyPolygon2D > SAL_CALL WindowGraphicDevice::createOrthogonalLinesHatch( const uno::Sequence< double >& leftTopColor, const uno::Sequence< double >& rightBottomColor ) throw (lang::IllegalArgumentException, uno::RuntimeException)
-+ {
-+ // TODO(F1): hatch factory NYI
-+ return uno::Reference< rendering::XParametricPolyPolygon2D >();
-+ }
-+
-+ uno::Reference< rendering::XParametricPolyPolygon2D > SAL_CALL WindowGraphicDevice::createThreeCrossingLinesHatch( const uno::Sequence< double >& startColor, const uno::Sequence< double >& endColor ) throw (lang::IllegalArgumentException, uno::RuntimeException)
-+ {
-+ // TODO(F1): hatch factory NYI
-+ return uno::Reference< rendering::XParametricPolyPolygon2D >();
-+ }
-+
-+ uno::Reference< rendering::XParametricPolyPolygon2D > SAL_CALL WindowGraphicDevice::createFourCrossingLinesHatch( const uno::Sequence< double >& startColor, const uno::Sequence< double >& endColor ) throw (lang::IllegalArgumentException, uno::RuntimeException)
-+ {
-+ // TODO(F1): hatch factory NYI
-+ return uno::Reference< rendering::XParametricPolyPolygon2D >();
-+ }
-+
-+ // XPropertySet
-+ // ==============================================
-+
-+ uno::Reference< beans::XPropertySetInfo > SAL_CALL WindowGraphicDevice::getPropertySetInfo( ) throw (uno::RuntimeException)
-+ {
-+ // This is a stealth property set
-+ return uno::Reference< beans::XPropertySetInfo >();
-+ }
-+
-+ void SAL_CALL WindowGraphicDevice::setPropertyValue( const ::rtl::OUString& aPropertyName, const uno::Any& aValue ) throw (beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
-+ {
-+ // all our properties are read-only
-+ throw beans::PropertyVetoException();
-+ }
-+
-+ uno::Any SAL_CALL WindowGraphicDevice::getPropertyValue( const ::rtl::OUString& PropertyName ) throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ if( PropertyName.equalsAscii( "DeviceHandle" ) )
-+ return uno::makeAny( reinterpret_cast< sal_Int64 >( mpOutputWindow ) );
-+
-+ throw beans::UnknownPropertyException();
-+ }
-+
-+ void SAL_CALL WindowGraphicDevice::addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const uno::Reference< beans::XPropertyChangeListener >& xListener ) throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ if( aPropertyName.equalsAscii( "DeviceHandle" ) )
-+ return; // ignore, we only have read-only properties, so
-+ // the listener won't notice the difference
-+
-+ throw beans::UnknownPropertyException();
-+ }
-+
-+ void SAL_CALL WindowGraphicDevice::removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const uno::Reference< beans::XPropertyChangeListener >& aListener ) throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ if( aPropertyName.equalsAscii( "DeviceHandle" ) )
-+ return; // ignore, we only have read-only properties, so
-+ // the listener was not added in the first place
-+
-+ throw beans::UnknownPropertyException();
-+ }
-+
-+ void SAL_CALL WindowGraphicDevice::addVetoableChangeListener( const ::rtl::OUString& PropertyName, const uno::Reference< beans::XVetoableChangeListener >& aListener ) throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ if( PropertyName.equalsAscii( "DeviceHandle" ) )
-+ return; // ignore, we only have read-only properties, so
-+ // the listener won't notice the difference
-+
-+ throw beans::UnknownPropertyException();
-+ }
-+
-+ void SAL_CALL WindowGraphicDevice::removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const uno::Reference< beans::XVetoableChangeListener >& aListener ) throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ if( PropertyName.equalsAscii( "DeviceHandle" ) )
-+ return; // ignore, we only have read-only properties, so
-+ // the listener was not added in the first place
-+
-+ throw beans::UnknownPropertyException();
-+ }
-+
-+#define IMPLEMENTATION_NAME "CairoCanvas::WindowGraphicDevice"
-+#define SERVICE_NAME "com.sun.star.rendering.GraphicDevice"
-+
-+ ::rtl::OUString SAL_CALL WindowGraphicDevice::getImplementationName( ) throw (uno::RuntimeException)
-+ {
-+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
-+ }
-+
-+ sal_Bool SAL_CALL WindowGraphicDevice::supportsService( const ::rtl::OUString& ServiceName ) throw (uno::RuntimeException)
-+ {
-+ return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
-+ }
-+
-+ uno::Sequence< ::rtl::OUString > SAL_CALL WindowGraphicDevice::getSupportedServiceNames( ) throw (uno::RuntimeException)
-+ {
-+ uno::Sequence< ::rtl::OUString > aRet(1);
-+ aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
-+
-+ return aRet;
-+ }
-+
-+ void SAL_CALL WindowGraphicDevice::disposing()
-+ {
-+ OSL_TRACE("WindowGraphicDevice disposing\n");
-+
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ // release all references
-+ mpOutputWindow = NULL;
-+
-+ if( mpWindowSurface ) {
-+ OSL_TRACE( "going to destroy mpWindowSurface\n" );
-+ cairo_surface_destroy( mpWindowSurface );
-+ mpWindowSurface = NULL;
-+ }
-+ }
-+
-+ OutputDevice* WindowGraphicDevice::getOutDev() const
-+ {
-+ return mpOutputWindow;
-+ }
-+
-+ Surface* WindowGraphicDevice::getSurface()
-+ {
-+ if( !mpWindowSurface ) {
-+ Size aSize = getSurfaceSize();
-+ mpWindowSurface = (Surface*) cairoHelperGetSurface( mpSysData,
-+ mpOutputWindow->GetOutOffXPixel(), mpOutputWindow->GetOutOffYPixel(),
-+ aSize.Width(), aSize.Height() );
-+ }
-+ return mpWindowSurface;
-+ }
-+
-+ Surface* WindowGraphicDevice::getSurface( Bitmap& rBitmap )
-+ {
-+ Surface *pSurface = NULL;
-+
-+ BitmapSystemData aData;
-+ if( rBitmap.GetSystemData( aData ) ) {
-+ const Size& rSize = rBitmap.GetSizePixel();
-+
-+ pSurface = (Surface *) cairoHelperGetSurface( mpSysData, &aData, rSize.Width(), rSize.Height() );
-+ }
-+
-+ return pSurface;
-+ }
-+
-+ Size WindowGraphicDevice::getSurfaceSize() const
-+ {
-+ return mpOutputWindow->GetOutputSizePixel();
-+ }
-+
-+ // NoConst version is always able to create similar surface, the
-+ // const version cannot modify this instance and thus can provide
-+ // similar surface only once mpWindowSurface is already created
-+ Surface* WindowGraphicDevice::getSimilarSurfaceNoConst( Size aSize, Content aContent )
-+ {
-+ OSL_TRACE( "called WindowGraphicDevice::getSimilarSurfaceNoConst %d x %d\n", aSize.Width(), aSize.Height() );
-+ if( ! mpWindowSurface )
-+ getSurface();
-+
-+ return cairo_surface_create_similar( mpWindowSurface, aContent, aSize.Width(), aSize.Height() );
-+
-+ }
-+
-+ Surface* WindowGraphicDevice::getSimilarSurface( Size aSize, Content aContent ) const
-+ {
-+ OSL_TRACE( "called WindowGraphicDevice::getSimilarSurface %d x %d\n", aSize.Width(), aSize.Height() );
-+ if( mpWindowSurface )
-+ return cairo_surface_create_similar( mpWindowSurface, aContent, aSize.Width(), aSize.Height() );
-+
-+ OSL_TRACE( "warning: called WindowGraphicDevice::getSimilarSurface before mpWindowSurface created. use getSimilarSurfaceNoConst if possible" );
-+
-+ return NULL;
-+ }
-+
-+ Surface* WindowGraphicDevice::getSimilarSurface( Content aContent ) const
-+ {
-+ return getSimilarSurface( getSurfaceSize(), aContent );
-+ }
-+
-+ void WindowGraphicDevice::flush()
-+ {
-+ cairoHelperFlush( mpSysData );
-+ }
-+}
diff --git a/patches/cairo/canvas-source-cairo-cairo_windowgraphicdevice-hxx.diff b/patches/cairo/canvas-source-cairo-cairo_windowgraphicdevice-hxx.diff
deleted file mode 100644
index c972eb576..000000000
--- a/patches/cairo/canvas-source-cairo-cairo_windowgraphicdevice-hxx.diff
+++ /dev/null
@@ -1,209 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/cairo_windowgraphicdevice.hxx
-@@ -0,0 +1,206 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _VCLCANVAS_WINDOWGRAPHICDEVICE_HXX
-+#define _VCLCANVAS_WINDOWGRAPHICDEVICE_HXX
-+
-+#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
-+#include <com/sun/star/lang/XServiceInfo.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
-+#include <com/sun/star/beans/XPropertySet.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_RENDERING_XGRAPHICDEVICE_HPP_
-+#include <com/sun/star/rendering/XGraphicDevice.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_RENDERING_XPARAMETRICPOLYPOLYGON2DFACTORY_HPP_
-+#include <com/sun/star/rendering/XParametricPolyPolygon2DFactory.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_RENDERING_XCANVAS_HPP_
-+#include <com/sun/star/rendering/XCanvas.hpp>
-+#endif
-+
-+#ifndef _CPPUHELPER_COMPBASE4_HXX_
-+#include <cppuhelper/compbase4.hxx>
-+#endif
-+#ifndef _COMPHELPER_BROADCASTHELPER_HXX_
-+#include <comphelper/broadcasthelper.hxx>
-+#endif
-+
-+#ifndef _COMPHELPER_IMPLEMENTATIONREFERENCE_HXX
-+#include <comphelper/implementationreference.hxx>
-+#endif
-+
-+#ifndef _SV_OUTDEV_HXX
-+#include <vcl/outdev.hxx>
-+#endif
-+#ifndef _SV_WINDOW_HXX
-+#include <vcl/window.hxx>
-+#endif
-+
-+#include "cairo_cairo.hxx"
-+
-+namespace cairo {
-+
-+// including glitz here conflicts with boost headers
-+// #ifdef CAIRO_HAS_GLITZ_SURFACE
-+// #include <glitz.h>
-+// #endif
-+
-+ typedef struct _glitz_surface glitz_surface_t;
-+ typedef struct _glitz_drawable glitz_drawable_t;
-+}
-+
-+/* Definition of WindowGraphicDevice class */
-+
-+namespace cairocanvas
-+{
-+ typedef ::cppu::WeakComponentImplHelper4< ::com::sun::star::rendering::XGraphicDevice,
-+ ::com::sun::star::rendering::XParametricPolyPolygon2DFactory,
-+ ::com::sun::star::beans::XPropertySet,
-+ ::com::sun::star::lang::XServiceInfo > WindowGraphicDevice_Base;
-+
-+ class WindowGraphicDevice : public ::comphelper::OBaseMutex, public WindowGraphicDevice_Base
-+ {
-+ public:
-+
-+ typedef ::comphelper::ImplementationReference< WindowGraphicDevice,
-+ ::com::sun::star::rendering::XGraphicDevice > ImplRef;
-+
-+ /** Create an XWindowGraphicDevice for given VCL window
-+ */
-+ WindowGraphicDevice( Window& rOutputWindow, const SystemEnvData* pSysData );
-+
-+ /// Dispose all internal references
-+ virtual void SAL_CALL disposing();
-+
-+ // XWindowGraphicDevice
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBufferController > SAL_CALL getBufferController( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XColorSpace > SAL_CALL getDeviceColorSpace( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::geometry::RealSize2D SAL_CALL getPhysicalResolution( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::geometry::RealSize2D SAL_CALL getSize( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XLinePolyPolygon2D > SAL_CALL createCompatibleLinePolyPolygon( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::geometry::RealPoint2D > >& points ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBezierPolyPolygon2D > SAL_CALL createCompatibleBezierPolyPolygon( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::geometry::RealBezierSegment2D > >& points ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > SAL_CALL createCompatibleBitmap( const ::com::sun::star::geometry::IntegerSize2D& size ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XVolatileBitmap > SAL_CALL createVolatileBitmap( const ::com::sun::star::geometry::IntegerSize2D& size ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > SAL_CALL createCompatibleAlphaBitmap( const ::com::sun::star::geometry::IntegerSize2D& size ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XVolatileBitmap > SAL_CALL createVolatileAlphaBitmap( const ::com::sun::star::geometry::IntegerSize2D& size ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2DFactory > SAL_CALL getParametricPolyPolygonFactory( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL hasFullScreenMode( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL enterFullScreenMode( sal_Bool bEnter ) throw (::com::sun::star::uno::RuntimeException);
-+
-+ // XParametricPolyPolygon2DFactory
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createLinearHorizontalGradient( const ::com::sun::star::uno::Sequence< double >& leftColor, const ::com::sun::star::uno::Sequence< double >& rightColor ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createAxialHorizontalGradient( const ::com::sun::star::uno::Sequence< double >& middleColor, const ::com::sun::star::uno::Sequence< double >& endColor ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createEllipticalGradient( const ::com::sun::star::uno::Sequence< double >& centerColor, const ::com::sun::star::uno::Sequence< double >& endColor, const ::com::sun::star::geometry::RealRectangle2D& boundRect ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createRectangularGradient( const ::com::sun::star::uno::Sequence< double >& centerColor, const ::com::sun::star::uno::Sequence< double >& endColor, const ::com::sun::star::geometry::RealRectangle2D& boundRect ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createVerticalLinesHatch( const ::com::sun::star::uno::Sequence< double >& leftColor, const ::com::sun::star::uno::Sequence< double >& rightColor ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createOrthogonalLinesHatch( const ::com::sun::star::uno::Sequence< double >& leftTopColor, const ::com::sun::star::uno::Sequence< double >& rightBottomColor ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createThreeCrossingLinesHatch( const ::com::sun::star::uno::Sequence< double >& startColor, const ::com::sun::star::uno::Sequence< double >& endColor ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createFourCrossingLinesHatch( const ::com::sun::star::uno::Sequence< double >& startColor, const ::com::sun::star::uno::Sequence< double >& endColor ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-+
-+ // XPropertySet
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
-+
-+ // XServiceInfo
-+ virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException);
-+
-+ OutputDevice* getOutDev() const;
-+
-+ Size getSurfaceSize() const;
-+ ::cairo::Surface* getSurface();
-+ ::cairo::Surface* getSurface( Bitmap& rBitmap );
-+
-+ ::cairo::Surface* getSimilarSurface( ::cairo::Content aContent = ::cairo::CAIRO_CONTENT_COLOR_ALPHA ) const;
-+ ::cairo::Surface* getSimilarSurface( Size aSize, ::cairo::Content aContent = ::cairo::CAIRO_CONTENT_COLOR_ALPHA ) const;
-+ ::cairo::Surface* getSimilarSurfaceNoConst( Size aSize, ::cairo::Content aContent = ::cairo::CAIRO_CONTENT_COLOR_ALPHA );
-+
-+ void flush();
-+
-+ protected:
-+ ~WindowGraphicDevice(); // we're a ref-counted UNO class. _We_ destroy ourselves.
-+
-+ private:
-+ // default: disabled copy/assignment
-+ WindowGraphicDevice(const WindowGraphicDevice&);
-+ WindowGraphicDevice& operator=( const WindowGraphicDevice& );
-+
-+ // TODO(Q3): Lifetime issue. Cannot control pointer validity
-+ // over object lifetime, since we're a UNO component. Now that
-+ // we've changed the ::Window canvas reference to a weak ref,
-+ // might be okay to hold a uno::Reference to the VCL window
-+ // here.
-+ Window* mpOutputWindow;
-+
-+ const SystemEnvData* mpSysData;
-+ ::cairo::Surface* mpWindowSurface;
-+ };
-+}
-+
-+#endif /* _VCLCANVAS_WINDOWGRAPHICDEVICE_HXX */
diff --git a/patches/cairo/canvas-source-cairo-exports-dxp.diff b/patches/cairo/canvas-source-cairo-exports-dxp.diff
deleted file mode 100644
index 60bd0033a..000000000
--- a/patches/cairo/canvas-source-cairo-exports-dxp.diff
+++ /dev/null
@@ -1,7 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/exports.dxp
-@@ -0,0 +1,4 @@
-+component_getImplementationEnvironment
-+component_writeInfo
-+component_getFactory
-+component_getDescriptionFunc
diff --git a/patches/cairo/canvas-source-cairo-exports-map.diff b/patches/cairo/canvas-source-cairo-exports-map.diff
deleted file mode 100644
index 4a2dc87af..000000000
--- a/patches/cairo/canvas-source-cairo-exports-map.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/exports.map
-@@ -0,0 +1,9 @@
-+CAN_1_0 {
-+ global:
-+ component_getImplementationEnvironment;
-+ component_writeInfo;
-+ component_getFactory;
-+ component_getDescriptionFunc;
-+ local:
-+ *;
-+};
diff --git a/patches/cairo/canvas-source-cairo-makefile-mk.diff b/patches/cairo/canvas-source-cairo-makefile-mk.diff
deleted file mode 100644
index 7bc7f244c..000000000
--- a/patches/cairo/canvas-source-cairo-makefile-mk.diff
+++ /dev/null
@@ -1,142 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/makefile.mk
-@@ -0,0 +1,139 @@
-+#*************************************************************************
-+#
-+# $RCSfile$
-+#
-+# $Revision$
-+#
-+# last change: $Author$ $Date$
-+#
-+# The Contents of this file are made available subject to the terms of
-+# either of the following licenses
-+#
-+# - GNU Lesser General Public License Version 2.1
-+# - Sun Industry Standards Source License Version 1.1
-+#
-+# Sun Microsystems Inc., October, 2000
-+#
-+# GNU Lesser General Public License Version 2.1
-+# =============================================
-+# Copyright 2000 by Sun Microsystems, Inc.
-+# 901 San Antonio Road, Palo Alto, CA 94303, USA
-+#
-+# This library is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU Lesser General Public
-+# License version 2.1, as published by the Free Software Foundation.
-+#
-+# This library 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 for more details.
-+#
-+# You should have received a copy of the GNU Lesser General Public
-+# License along with this library; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+# MA 02111-1307 USA
-+#
-+#
-+# Sun Industry Standards Source License Version 1.1
-+# =================================================
-+# The contents of this file are subject to the Sun Industry Standards
-+# Source License Version 1.1 (the "License"); You may not use this file
-+# except in compliance with the License. You may obtain a copy of the
-+# License at http://www.openoffice.org/license.html.
-+#
-+# Software provided under this License is provided on an "AS IS" basis,
-+# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+# See the License for the specific provisions governing your rights and
-+# obligations concerning the Software.
-+#
-+# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+#
-+# Copyright: 2000 by Sun Microsystems, Inc.
-+#
-+# All Rights Reserved.
-+#
-+# Contributor(s): _______________________________________
-+#
-+#
-+#
-+#*************************************************************************
-+
-+PRJ=..$/..
-+
-+PRJNAME=canvas
-+TARGET=cairocanvas
-+ENABLE_EXCEPTIONS=TRUE
-+
-+# --- Settings -----------------------------------------------------------
-+
-+.INCLUDE : settings.mk
-+DLLPRE =
-+
-+# --- Nothing to do if we're compiling with --disable-cairo -----------
-+.IF "$(ENABLE_CAIRO)" != "TRUE"
-+@all:
-+ @echo "Building without cairo support..."
-+.ENDIF
-+
-+# --- Common ----------------------------------------------------------
-+
-+.IF "$(GUI)"=="UNX"
-+
-+.IF "$(SYSTEM_CAIRO)" == "YES"
-+CFLAGS+=$(CAIRO_CFLAGS)
-+.ELSE
-+CFLAGS+=-I$(SOLARINCDIR)/cairo
-+.ENDIF
-+
-+.IF "$(verbose)"!="" || "$(VERBOSE)"!=""
-+CDEFS+= -DVERBOSE
-+.ENDIF
-+
-+# Disable optimization for SunCC SPARC
-+.IF "$(OS)$(CPU)"=="SOLARISS" && "$(COM)"!="GCC"
-+NOOPTFILES = $(SLO)$/cairo_canvashelper_texturefill.obj
-+.ENDIF
-+
-+SLOFILES = $(SLO)$/cairo_canvasbitmap.obj \
-+ $(SLO)$/cairo_cachedbitmap.obj \
-+ $(SLO)$/cairo_canvascustomsprite.obj \
-+ $(SLO)$/cairo_canvasfont.obj \
-+ $(SLO)$/cairo_canvashelper.obj \
-+ $(SLO)$/cairo_canvashelper_text.obj \
-+ $(SLO)$/cairo_cairo.obj \
-+ $(SLO)$/cairo_devicehelper.obj \
-+ $(SLO)$/cairo_helper.obj \
-+ $(SLO)$/cairo_spritecanvas.obj \
-+ $(SLO)$/cairo_spritecanvashelper.obj \
-+ $(SLO)$/cairo_spritehelper.obj \
-+ $(SLO)$/cairo_textlayout.obj
-+
-+SHL1TARGET=$(TARGET).uno
-+
-+SHL1STDLIBS= $(CPPULIB) $(SALLIB) $(VCLLIB) $(COMPHELPERLIB) $(CPPUHELPERLIB) $(BASEGFXLIB) $(CANVASTOOLSLIB) $(TOOLSLIB)
-+
-+.IF "$(SYSTEM_CAIRO)" == "YES"
-+SHL1STDLIBS+= $(CAIRO_LIBS) -lX11 -lXrender
-+.ELSE
-+SHL1STDLIBS+= -lcairo -lX11 -lXrender
-+.ENDIF
-+
-+SHL1IMPLIB=i$(TARGET)
-+SHL1LIBS=$(SLB)$/$(TARGET).lib
-+SHL1DEF=$(MISC)$/$(SHL1TARGET).def
-+
-+.IF "$(OS)"=="MACOSX"
-+.ELSE
-+SHL1VERSIONMAP=exports.map
-+.ENDIF
-+
-+DEF1NAME=$(SHL1TARGET)
-+DEF1EXPORTFILE=exports.dxp
-+
-+.ENDIF
-+
-+# ==========================================================================
-+
-+.INCLUDE : target.mk
diff --git a/patches/cairo/canvas-source-cairo-sprite-hxx.diff b/patches/cairo/canvas-source-cairo-sprite-hxx.diff
deleted file mode 100644
index ff95d1ca4..000000000
--- a/patches/cairo/canvas-source-cairo-sprite-hxx.diff
+++ /dev/null
@@ -1,81 +0,0 @@
---- /dev/null
-+++ canvas/source/cairo/sprite.hxx
-@@ -0,0 +1,78 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#ifndef INCLUDED_CAIROCANVAS_SPRITE_HXX
-+#define INCLUDED_CAIROCANVAS_SPRITE_HXX
-+
-+#include <canvas/base/sprite.hxx>
-+
-+#include "cairo_cairo.hxx"
-+
-+namespace cairocanvas
-+{
-+ /** Specialization of ::canvas::Sprite interface, to also provide
-+ redraw methods.
-+ */
-+ class Sprite : public ::canvas::Sprite
-+ {
-+ public:
-+ /** Redraw sprite at the stored position.
-+
-+ @param bBufferedUpdate
-+ When true, the redraw does <em>not</em> happen directly on
-+ the front buffer, but within a VDev. Used to speed up
-+ drawing.
-+ */
-+ virtual void redraw( ::cairo::Cairo* pCairo,
-+ bool bBufferedUpdate ) const = 0;
-+
-+ /** Redraw sprite at the given position.
-+
-+ @param rPos
-+ Output position of the sprite. Overrides the sprite's own
-+ output position.
-+
-+ @param bBufferedUpdate
-+ When true, the redraw does <em>not</em> happen directly on
-+ the front buffer, but within a VDev. Used to speed up
-+ drawing.
-+ */
-+ virtual void redraw( ::cairo::Cairo* pCairo,
-+ const ::basegfx::B2DPoint& rPos,
-+ bool bBufferedUpdate ) const = 0;
-+ };
-+}
-+
-+#endif /* INCLUDED_CAIROCANVAS_SPRITE_HXX */
diff --git a/patches/cairo/canvas-source-factory-cf-service-cxx.diff b/patches/cairo/canvas-source-factory-cf-service-cxx.diff
deleted file mode 100644
index cfa028ad0..000000000
--- a/patches/cairo/canvas-source-factory-cf-service-cxx.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- canvas/source/factory/cf_service.cxx.ark 2005-11-05 16:22:22.000000000 +0000
-+++ canvas/source/factory/cf_service.cxx 2005-11-05 16:22:43.000000000 +0000
-@@ -172,14 +172,15 @@
- // append the usual preferred ones:
- sal_Int32 pos = m_services.getLength();
- #if defined WNT
-- m_services.realloc( pos + 4 );
-+ m_services.realloc( pos + 5 );
- m_services[ pos++ ] = OUSTR("com.sun.star.rendering.DXCanvas");
- m_services[ pos++ ] = OUSTR("com.sun.star.rendering.GLCanvas");
- #else
-- m_services.realloc( pos + 3 );
-+ m_services.realloc( pos + 4 );
- m_services[ pos++ ] = OUSTR("com.sun.star.rendering.GLCanvas");
- #endif
- m_services[ pos++ ] = OUSTR("com.sun.star.rendering.JavaCanvas");
-+ m_services[ pos++ ] = OUSTR("com.sun.star.rendering.CairoCanvas");
- m_services[ pos ] = OUSTR("com.sun.star.rendering.VCLCanvas");
- }
-
diff --git a/patches/cairo/default-cairo-disable.diff b/patches/cairo/default-cairo-disable.diff
deleted file mode 100644
index 173315137..000000000
--- a/patches/cairo/default-cairo-disable.diff
+++ /dev/null
@@ -1,20 +0,0 @@
-Index: officecfg/registry/data/org/openoffice/VCL.xcu
-===================================================================
-RCS file: /cvs/util/officecfg/registry/data/org/openoffice/VCL.xcu,v
-retrieving revision 1.42
-diff -u -p -u -r1.42 VCL.xcu
---- officecfg/registry/data/org/openoffice/VCL.xcu 21 Jul 2005 14:22:30 -0000 1.42
-+++ officecfg/registry/data/org/openoffice/VCL.xcu 1 Sep 2005 10:29:42 -0000
-@@ -62,6 +62,11 @@
- <!DOCTYPE oor:component-data SYSTEM "../../../component-update.dtd">
- <oor:component-data oor:name="VCL" oor:package="org.openoffice" xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <node oor:name="Settings">
-+ <node oor:name="Canvas" oor:op="replace">
-+ <prop oor:name="PreferredServices" oor:type="xs:string" oor:op="replace">
-+ <value>com.sun.star.rendering.VCLCanvas</value>
-+ </prop>
-+ </node>
- <node oor:name="Accessibility" oor:op="replace">
- <prop oor:name="EnableATToolSupport" oor:type="xs:string" oor:op="replace">
- <value>false</value>
-
diff --git a/patches/evo2/.cvsignore b/patches/evo2/.cvsignore
deleted file mode 100644
index 282522db0..000000000
--- a/patches/evo2/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile
-Makefile.in
diff --git a/patches/evo2/Makefile.am b/patches/evo2/Makefile.am
deleted file mode 100644
index 0b280d2c7..000000000
--- a/patches/evo2/Makefile.am
+++ /dev/null
@@ -1 +0,0 @@
-EXTRA_DIST = $(wildcard *.diff)
diff --git a/patches/evo2/dbaccess-evo-changes.diff b/patches/evo2/dbaccess-evo-changes.diff
deleted file mode 100644
index 51ecc4f1c..000000000
--- a/patches/evo2/dbaccess-evo-changes.diff
+++ /dev/null
@@ -1,196 +0,0 @@
---- dbaccess/source/ui/dlg/dbwizsetup.cxx.bakj 2005-04-06 18:15:46.000000000 +0530
-+++ dbaccess/source/ui/dlg/dbwizsetup.cxx 2005-04-06 18:21:11.000000000 +0530
-@@ -268,11 +268,12 @@
- #define OUTLOOK_PATH 14
- #define MOZILLA_PATH 15
- #define EVOLUTION_PATH 16
--#define KAB_PATH 17
--#define THUNDERBIRD_PATH 18
--#define CREATENEW_PATH 19
--#define USERDEFINED_PATH 20
--#define OPEN_DOC_PATH 21
-+#define EVOLUTION_PATH_LOCAL 17
-+#define KAB_PATH 18
-+#define THUNDERBIRD_PATH 19
-+#define CREATENEW_PATH 20
-+#define USERDEFINED_PATH 21
-+#define OPEN_DOC_PATH 22
-
- OFinalDBPageSetup* pFinalPage;
-
-@@ -411,6 +412,14 @@
- else
- declarePath( THUNDERBIRD_PATH, PAGE_DBSETUPWIZARD_INTRO, PAGE_DBSETUPWIZARD_FINAL, WZS_INVALID_STATE);
-
-+if ( m_pCollection->hasAuthentication(DST_EVOLUTION_LOCAL))
-+ declarePath( EVOLUTION_PATH, PAGE_DBSETUPWIZARD_INTRO, PAGE_DBSETUPWIZARD_AUTHENTIFICATION, PAGE_DBSETUPWIZARD_FINAL, WZS_INVALID_STATE);
-+ else
-+ declarePath( EVOLUTION_PATH_LOCAL, PAGE_DBSETUPWIZARD_INTRO, PAGE_DBSETUPWIZARD_FINAL, WZS_INVALID_STATE);
-+ if ( m_pCollection->hasAuthentication(DST_EVOLUTION_LDAP))
-+ declarePath( EVOLUTION_PATH, PAGE_DBSETUPWIZARD_INTRO, PAGE_DBSETUPWIZARD_AUTHENTIFICATION, PAGE_DBSETUPWIZARD_FINAL, WZS_INVALID_STATE);
-+ else
-+ declarePath( EVOLUTION_PATH, PAGE_DBSETUPWIZARD_INTRO, PAGE_DBSETUPWIZARD_FINAL, WZS_INVALID_STATE);
- if ( m_pCollection->hasAuthentication(DST_EVOLUTION))
- declarePath( EVOLUTION_PATH, PAGE_DBSETUPWIZARD_INTRO, PAGE_DBSETUPWIZARD_AUTHENTIFICATION, PAGE_DBSETUPWIZARD_FINAL, WZS_INVALID_STATE);
- else
-@@ -566,6 +566,8 @@ void ODbTypeWizDialogSetup::activateData
- { DST_MOZILLA, MOZILLA_PATH },
- { DST_THUNDERBIRD, THUNDERBIRD_PATH },
- { DST_EVOLUTION, EVOLUTION_PATH },
-+ { DST_EVOLUTION_LOCAL, EVOLUTION_PATH_LOCAL },
-+ { DST_EVOLUTION_LDAP, EVOLUTION_PATH },
- { DST_KAB, KAB_PATH },
- { DST_USERDEFINE1, USERDEFINED_PATH },
- { DST_USERDEFINE2, USERDEFINED_PATH },
-@@ -639,6 +639,8 @@
- {
- case DST_KAB:
- case DST_EVOLUTION:
-+ case DST_EVOLUTION_LOCAL:
-+ case DST_EVOLUTION_LDAP:
- case DST_OUTLOOK:
- case DST_OUTLOOKEXP:
- case DST_MOZILLA:
---- dbaccess/source/ui/inc/dsntypes.hxx.bakj 2005-04-06 18:05:46.000000000 +0530
-+++ dbaccess/source/ui/inc/dsntypes.hxx 2005-04-06 18:07:10.000000000 +0530
-@@ -101,7 +101,9 @@
- DST_OUTLOOKEXP = 16,
- DST_EVOLUTION = 17,
-- DST_KAB = 18,
-- DST_EMBEDDED = 19,
-+ DST_EVOLUTION_LOCAL = 18,
-+ DST_EVOLUTION_LDAP = 19,
-+ DST_KAB = 20,
-+ DST_EMBEDDED = 21,
-
- DST_USERDEFINE1, /// first user defined driver
- DST_USERDEFINE2,
-
---- dbaccess/source/ui/misc/dsntypes.cxx.bakj 2005-04-06 17:57:59.000000000 +0530
-+++ dbaccess/source/ui/misc/dsntypes.cxx 2005-04-06 18:05:24.000000000 +0530
-@@ -412,8 +412,10 @@
- case DST_OUTLOOK:
- case DST_OUTLOOKEXP:
- case DST_FLAT:
-- case DST_EVOLUTION:
-- case DST_KAB:
-+ case DST_EVOLUTION:
-+ case DST_EVOLUTION_LOCAL:
-+ case DST_EVOLUTION_LDAP:
-+ case DST_KAB:
- case DST_THUNDERBIRD:
- case DST_CALC:
- bSupportsTableCreation = FALSE;
-@@ -458,8 +458,10 @@
- case DST_OUTLOOK:
- case DST_OUTLOOKEXP:
- case DST_JDBC:
-- case DST_EVOLUTION:
-- case DST_KAB:
-+ case DST_EVOLUTION:
-+ case DST_EVOLUTION_LOCAL:
-+ case DST_EVOLUTION_LDAP:
-+ case DST_KAB:
- bEnableBrowseButton = FALSE;
- break;
- default:
-@@ -493,12 +493,14 @@
- case DST_ADO:
- case DST_LDAP:
- case DST_CALC:
-+ case DST_EVOLUTION_LDAP:
-+ case DST_EVOLUTION:
- return sal_True;
- break;
- case DST_MSACCESS:
- case DST_MOZILLA:
- case DST_THUNDERBIRD:
-- case DST_EVOLUTION:
-+ case DST_EVOLUTION_LOCAL:
- case DST_KAB:
- case DST_OUTLOOK:
- case DST_OUTLOOKEXP: //????
-@@ -577,8 +577,12 @@
- return DST_OUTLOOK;
- if (_rDsn.EqualsIgnoreCaseAscii("outlookexp", nSeparator,_rDsn.Len() - nSeparator))
- return DST_OUTLOOKEXP;
-- if (_rDsn.EqualsIgnoreCaseAscii("evolution", nSeparator,_rDsn.Len() - nSeparator))
-- return DST_EVOLUTION;
-+ if (_rDsn.EqualsIgnoreCaseAscii("evolution:ldap", nSeparator,_rDsn.Len() - nSeparator))
-+ return DST_EVOLUTION_LDAP;
-+ if (_rDsn.EqualsIgnoreCaseAscii("evolution:groupwise", nSeparator,_rDsn.Len() - nSeparator))
-+ return DST_EVOLUTION;
-+ if (_rDsn.EqualsIgnoreCaseAscii("evolution:local", nSeparator,_rDsn.Len() - nSeparator))
-+ return DST_EVOLUTION_LOCAL;
- if (_rDsn.EqualsIgnoreCaseAscii("kab", nSeparator,_rDsn.Len() - nSeparator))
- return DST_KAB;
- }
---- dbaccess/source/ui/misc/dbumiscres.src.bakj 2005-04-06 18:11:26.000000000 +0530
-+++ dbaccess/source/ui/misc/dbumiscres.src 2005-04-06 18:15:20.000000000 +0530
-@@ -133,9 +133,17 @@
- {
- Text ="sdbc:address:outlookexp";
- };
-- String STR_EVOLUTION
-- {
-- Text ="sdbc:address:evolution";
-+ String STR_EVOLUTION_LOCAL
-+ {
-+ Text ="sdbc:address:evolution:local";
-+ };
-+ String STR_EVOLUTION_LDAP
-+ {
-+ Text ="sdbc:address:evolution:ldap";
-+ };
-+ String STR_EVOLUTION_GROUPWISE
-+ {
-+ Text ="sdbc:address:evolution:groupwise";
- };
- String STR_KAB
- {
-@@ -221,11 +229,21 @@
- Text [ de ] = "Microsoft Windows Adressbuch";
- Text[ en-US ] = "Microsoft Windows Address Book";
- };
-- String STR_EVOLUTION
-- {
-- Text [ de ] = "Evolution Adressbuch";
-- Text[ en-US ] = "Evolution Address Book";
-- };
-+ String STR_EVOLUTION_LOCAL
-+ {
-+ Text [ de ] = "Evolution Local Adressbuch";
-+ Text[ en-US ] = "Evolution Local";
-+ };
-+ String STR_EVOLUTION_LDAP
-+ {
-+ Text [ de ] = "Evolution LDAP Adressbuch";
-+ Text[ en-US ] = "Evolution LDAP";
-+ };
-+ String STR_EVOLUTION_GROUPWISE
-+ {
-+ Text [ de ] = "Groupwise Adressbuch";
-+ Text[ en-US ] = "Groupwise";
-+ };
- String STR_KAB
- {
- Text [ de ] = "KDE Adressbuch";
---- dbaccess/source/ui/misc/dbumiscres.hrc.bakj 2005-04-06 18:07:39.000000000 +0530
-+++ dbaccess/source/ui/misc/dbumiscres.hrc 2005-04-06 18:11:00.000000000 +0530
-@@ -80,10 +80,12 @@
- #define STR_LDAP 13
- #define STR_OUTLOOK 14
- #define STR_OUTLOOKEXP 15
--#define STR_EVOLUTION 16
--#define STR_KAB 17
--#define STR_EMBEDDED 18
--#define STR_THUNDERBIRD 19
-+#define STR_EVOLUTION_GROUPWISE 16
-+#define STR_EVOLUTION_LOCAL 17
-+#define STR_EVOLUTION_LDAP 18
-+#define STR_KAB 19
-+#define STR_EMBEDDED 20
-+#define STR_THUNDERBIRD 21
-
- #define STR_END STR_THUNDERBIRD + 1
-
diff --git a/patches/evo2/default-evo-column-mapping.diff b/patches/evo2/default-evo-column-mapping.diff
deleted file mode 100644
index 446ab07db..000000000
--- a/patches/evo2/default-evo-column-mapping.diff
+++ /dev/null
@@ -1,36 +0,0 @@
---- officecfg/registry/data/org/openoffice/Office/Writer.xcu.orig 2005-04-18 20:39:35.000000000 +0530
-+++ officecfg/registry/data/org/openoffice/Office/Writer.xcu 2005-05-10 17:30:14.000000000 +0530
-@@ -74,6 +74,33 @@
- <value xml:lang="en-US" oor:separator=";">To whom it may concern,;Dear Friends,;Dear Sir or Madam,;Hello,</value>
- <value xml:lang="de" oor:separator=";">Sehr geehrte Damen und Herren,;Liebe Freunde,;Liebe Vereinsmitglieder,;Hallo,</value>
- </prop>
-+ <node oor:name="DataSource">
-+ <prop oor:name="DataSourceName" oor:type="xs:string">
-+ <value>EvolutionLocal</value>
-+ </prop>
-+ <prop oor:name="DataTableName" oor:type="xs:string">
-+ <value>Personal</value>
-+ </prop>
-+ </node>
-+ <node oor:name="AddressDataAssignments">
-+ <node oor:name="_0" oor:op="replace">
-+ <prop oor:name="DBColumnAssignments" oor:type="oor:string-list">
-+ <value oor:separator=",">title,full_name,family_name,org,addr_line1,addr_line2,city,state,zip,country,home_phone,business_phone,email_1,</value>
-+ </prop>
-+ <node oor:name="DataSource">
-+ <prop oor:name="DataCommandType" oor:type="xs:short">
-+ <value>0</value>
-+ </prop>
-+ <prop oor:name="DataSourceName" oor:type="xs:string">
-+ <value>EvolutionLocal</value>
-+ </prop>
-+ <prop oor:name="DataTableName" oor:type="xs:string">
-+ <value>Personal</value>
-+ </prop>
-+ </node>
-+ </node>
-+</node>
-+
- <prop oor:name="EMailSupported" install:module="javamail">
- <value>true</value>
- </prop>
diff --git a/patches/evo2/evo-const-crash.diff b/patches/evo2/evo-const-crash.diff
deleted file mode 100644
index e685c56c8..000000000
--- a/patches/evo2/evo-const-crash.diff
+++ /dev/null
@@ -1,124 +0,0 @@
---- connectivity/source/drivers/evoab2/NStatement.cxx.bakj 2005-08-16 18:07:32.000000000 +0530
-+++ connectivity/source/drivers/evoab2/NStatement.cxx 2005-08-16 21:41:40.000000000 +0530
-@@ -221,8 +221,7 @@
- EBookQuery *
- OStatement_Base::createTrue()
- { // Not the world's most efficient unconditional true but ...
--//FIXME: make enum hack to make it gud integer (E_CONTACT_FULL_NAME);
--return e_book_query_field_exists (3);
-+ return e_book_query_from_string("(exists \"full_name\")");
- }
-
- EBookQuery *
---- connectivity/source/drivers/evoab2/NResultSet.cxx.bakj 2005-08-16 21:24:53.000000000 +0530
-+++ connectivity/source/drivers/evoab2/NResultSet.cxx 2005-08-17 18:29:50.000000000 +0530
-@@ -347,23 +347,29 @@
- case HOME_CITY:
- case HOME_STATE:
- case HOME_COUNTRY:
-- case HOME_ZIP:
-- bIsEVO_2_2 ? fieldEnum=89:fieldEnum=88/*E_CONTACT_ADDRESS_HOME*/;break;
-+ case HOME_ZIP:
-+ fieldEnum = e_contact_field_id("address_home");
-+ break;
-+
- case WORK_ADDR_LINE1:
- case WORK_ADDR_LINE2:
- case WORK_CITY:
- case WORK_STATE:
- case WORK_COUNTRY:
- case WORK_ZIP:
-- bIsEVO_2_2 ? fieldEnum = 90:fieldEnum=89/*E_CONTACT_ADDRESS_WORK*/;break;
-+ fieldEnum = e_contact_field_id("address_work");
-+ break;
-+
- case OTHER_ADDR_LINE1:
- case OTHER_ADDR_LINE2:
- case OTHER_CITY:
- case OTHER_STATE:
- case OTHER_COUNTRY:
-- case OTHER_ZIP:
-- bIsEVO_2_2 ? fieldEnum=91:fieldEnum= 90/*E_ CONTACT_ADDRESS_OTHER*/; break;
-- default: fieldEnum=89;
-+ case OTHER_ZIP:
-+ fieldEnum = e_contact_field_id("address_other");
-+ break;
-+
-+ default: fieldEnum = e_contact_field_id("address_home");
- }
- return fieldEnum;
- }
---- connectivity/source/drivers/evoab2/EApi.h.bakj 2005-08-16 21:22:38.000000000 +0530
-+++ connectivity/source/drivers/evoab2/EApi.h 2005-08-17 19:04:14.000000000 +0530
-@@ -84,7 +84,6 @@
- #endif
-
-
--EAPI_EXTERN bool bIsEVO_2_2;
- typedef void EContact;
- #define E_CONTACT(a) ((EContact *)(a))
- #define E_TYPE_CONTACT (e_contact_get_type())
-@@ -158,6 +157,7 @@
- EAPI_EXTERN EBookQuery* (*e_book_query_not) (EBookQuery *q, gboolean unref);
- EAPI_EXTERN void (*e_book_query_unref) (EBookQuery *q);
- EAPI_EXTERN char* (*e_book_query_to_string) (EBookQuery *q);
-+EAPI_EXTERN EBookQuery* (*e_book_query_from_string) (const char *query_string);
-
- typedef struct {
- char *address_format; /* the two letter country code that
---- connectivity/source/drivers/evoab2/EApi.cxx.bakj 2005-08-16 18:14:53.000000000 +0530
-+++ connectivity/source/drivers/evoab2/EApi.cxx 2005-08-19 14:50:11.000000000 +0530
-@@ -68,7 +68,8 @@
- #endif
- static char *eBookLibNames[] = {
- "libebook.so.8", // evolution-2.0
-- "libebook-1.2.so.3" // evolution-2.2
-+ "libebook-1.2.so.3", // evolution-2.2
-+ "libebook-1.2.so.5" // evolution-2.4
- // FIXME: ask JPR about ABI compatibility going forwards
- // "libebook-1.3.so.0",
- // "libebook-1.4.so.0",
-@@ -102,6 +103,7 @@
- SYM_MAP( e_book_query_or ),
- SYM_MAP( e_book_query_not ),
- SYM_MAP( e_book_query_unref ),
-+ SYM_MAP( e_book_query_from_string ),
- SYM_MAP( e_book_query_to_string ),
- SYM_MAP( e_book_query_field_exists ),
- SYM_MAP( e_source_group_peek_base_uri)
-@@ -139,7 +141,6 @@
- if( aModule)
- {
- if ( tryLink( aModule, eBookLibNames[ j ] ) ) {
-- if (j==1) bIsEVO_2_2 = true;
- return true;
- }
- osl_unloadModule( aModule );
---- connectivity/source/drivers/evoab2/NConnection.hxx.bakj 2005-08-16 18:03:51.000000000 +0530
-+++ connectivity/source/drivers/evoab2/NConnection.hxx 2005-08-16 18:04:24.000000000 +0530
-@@ -143,7 +143,7 @@
- inline const OEvoabDriver* getDriver() const { return static_cast< const OEvoabDriver* >( m_pDriver ); }
-
- SDBCAddress::sdbc_address_type getSDBCAddressType() const { return m_eSDBCAddressType;}
-- SDBCAddress::sdbc_address_type setSDBCAddressType(SDBCAddress::sdbc_address_type _eSDBCAddressType) {m_eSDBCAddressType = _eSDBCAddressType;}
-+ void setSDBCAddressType(SDBCAddress::sdbc_address_type _eSDBCAddressType) {m_eSDBCAddressType = _eSDBCAddressType;}
-
- // OComponentHelper
- virtual void SAL_CALL disposing(void);
---- connectivity/source/drivers/evoab2/NDatabaseMetaData.hxx.bakj 2005-08-16 17:59:59.000000000 +0530
-+++ connectivity/source/drivers/evoab2/NDatabaseMetaData.hxx 2005-08-16 19:46:37.000000000 +0530
-@@ -111,10 +111,10 @@
- };
-
- const ColumnProperty *getField(guint n);
-- guint getFieldCount() G_GNUC_CONST;
-- sal_Int32 getFieldType(sal_Int32 nCol) G_GNUC_CONST;
-- rtl::OUString getFieldTypeName(sal_Int32 nCol) G_GNUC_CONST;
-- rtl::OUString getFieldName(sal_Int32 nCol) G_GNUC_CONST;
-+ guint getFieldCount() ;
-+ sal_Int32 getFieldType(sal_Int32 nCol) ;
-+ rtl::OUString getFieldTypeName(sal_Int32 nCol) ;
-+ rtl::OUString getFieldName(sal_Int32 nCol) ;
-
- void free_column_resources();
- class OEvoabDatabaseMetaData : public ODatabaseMetaDataBase
diff --git a/patches/evo2/evoab-select-column.diff b/patches/evo2/evoab-select-column.diff
deleted file mode 100644
index a10dc68d6..000000000
--- a/patches/evo2/evoab-select-column.diff
+++ /dev/null
@@ -1,766 +0,0 @@
---- connectivity/source/drivers/evoab2/NCatalog.cxx.bakj 2005-10-24 09:20:22.000000000 +0530
-+++ connectivity/source/drivers/evoab2/NCatalog.cxx 2005-10-22 09:54:47.000000000 +0530
-@@ -72,7 +72,7 @@
- {
- TStringVector aVector;
- Sequence< ::rtl::OUString > aTypes(1);
-- aTypes[0] = ::rtl::OUString::createFromAscii("%");
-+ aTypes[0] = ::rtl::OUString::createFromAscii("TABLE");
- Reference< XResultSet > xResult = m_xMetaData->getTables(Any(),
- ::rtl::OUString::createFromAscii("%"),::rtl::OUString::createFromAscii("%"),aTypes);
-
-@@ -92,3 +92,27 @@
- else
- m_pTables = new OEvoabTables(m_xMetaData,*this,m_aMutex,aVector);
- }
-+// XTablesSupplier
-+Reference< XNameAccess > SAL_CALL OEvoabCatalog::getTables( ) throw(RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard(m_aMutex);
-+
-+ try
-+ {
-+ if (!m_pTables) {
-+ refreshTables();
-+ }
-+ }
-+ catch( const RuntimeException& )
-+ {
-+ // allowed to leave this method
-+ throw;
-+ }
-+ catch( const Exception& )
-+ {
-+ // allowed
-+ }
-+
-+ return m_pTables;
-+}
-+
---- connectivity/source/drivers/evoab2/NCatalog.hxx.bakj 2005-10-24 09:20:12.000000000 +0530
-+++ connectivity/source/drivers/evoab2/NCatalog.hxx 2005-10-21 10:19:34.000000000 +0530
-@@ -51,11 +51,14 @@
- ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData > m_xMetaData;
- public:
- OEvoabCatalog(OEvoabConnection *_pCon);
--
-+ inline OEvoabConnection* getConnection() const { return m_pConnection; }
- virtual void refreshTables();
- virtual void refreshViews() {}
- virtual void refreshGroups() {}
- virtual void refreshUsers() {}
-+ // XTablesSupplier
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL getTables(
-+ ) throw(::com::sun::star::uno::RuntimeException);
- };
- }
- }
---- connectivity/source/drivers/evoab2/NDatabaseMetaData.hxx.bakj 2005-10-24 09:19:27.000000000 +0530
-+++ connectivity/source/drivers/evoab2/NDatabaseMetaData.hxx 2005-10-21 17:05:37.000000000 +0530
-@@ -89,6 +89,7 @@
- sal_Int32 getFieldType(sal_Int32 nCol) ;
- rtl::OUString getFieldTypeName(sal_Int32 nCol) ;
- rtl::OUString getFieldName(sal_Int32 nCol) ;
-+ sal_Int32 findEvoabField(const rtl::OUString& aColName);
-
- void free_column_resources();
- class OEvoabDatabaseMetaData : public ODatabaseMetaDataBase
---- connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx.bakj 2005-10-24 09:19:41.000000000 +0530
-+++ connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx 2005-10-24 09:32:44.000000000 +0530
-@@ -198,6 +198,23 @@
- return nType;
- }
-
-+ sal_Int32 findEvoabField(const rtl::OUString& aColName)
-+ {
-+ sal_Int32 nRet = -1;
-+ sal_Bool bFound = sal_False;
-+ initFields();
-+ for (int i=0;(i < nFields) && !bFound;i++)
-+ {
-+ rtl::OUString aName = getFieldName(i);
-+ if (aName == aColName)
-+ {
-+ nRet = i;
-+ bFound = sal_True;
-+ }
-+ }
-+ return nRet;
-+ }
-+
- rtl::OUString
- getFieldTypeName( sal_Int32 nCol )
- {
---- connectivity/source/drivers/evoab2/NResultSet.cxx.bakj 2005-10-24 09:18:04.000000000 +0530
-+++ connectivity/source/drivers/evoab2/NResultSet.cxx 2005-10-22 12:15:00.000000000 +0530
-@@ -276,6 +276,7 @@
- m_pConnection->setPassword( aPassword );
- }
- m_nLength = g_list_length( m_pContacts );
-+
- OSL_TRACE( "Query return %d records", m_nLength );
- m_nIndex = -1;
- }
-@@ -453,7 +454,9 @@
- bool
- OEvoabResultSet::getValue( sal_Int32 nColumnNum, GType nType, GValue *pStackValue)
- {
-- const ColumnProperty * pSpecs = evoab::getField (nColumnNum - 1);
-+ const ColumnProperty * pSpecs = evoab::getField (nColumnNum );
-+ if (!pSpecs)
-+ return sal_False;
- GParamSpec *pSpec = pSpecs->pField;
- gboolean bIsSplittedColumn=pSpecs->bIsSplittedValue;
- EContact *pContact = getCur();
-@@ -464,7 +467,9 @@
- }
- if (G_PARAM_SPEC_VALUE_TYPE (pSpec) != nType)
- {
-+#ifdef DEBUG
- g_warning ("Wrong type");
-+#endif
- return false;
- }
- g_value_init (pStackValue, nType);
-@@ -482,7 +487,9 @@
- pStackValue);
- if (G_VALUE_TYPE (pStackValue) != nType)
- {
-+#ifdef DEBUG
- g_warning ("Fetched type mismatch");
-+#endif
- g_value_unset (pStackValue);
- return false;
- }
-@@ -503,14 +510,18 @@
- ::osl::MutexGuard aGuard( m_aMutex );
- checkDisposed(OResultSet_BASE::rBHelper.bDisposed);
- rtl::OUString aResult;
--
-- GValue aValue = { 0, };
-- if (getValue (nColumnNum, G_TYPE_STRING, &aValue))
-- {
-- const char *pStr = g_value_get_string (&aValue);
-- rtl::OString aStr (pStr ? pStr : "");
-- aResult = rtl::OStringToOUString( aStr, RTL_TEXTENCODING_UTF8 );
-- g_value_unset (&aValue);
-+ if ( m_xMetaData.is())
-+ {
-+ OEvoabResultSetMetaData *pMeta = (OEvoabResultSetMetaData *) m_xMetaData.get();
-+ sal_Int32 nFieldNumber = pMeta->fieldAtColumn(nColumnNum);
-+ GValue aValue = { 0, };
-+ if (getValue (nFieldNumber, G_TYPE_STRING, &aValue))
-+ {
-+ const char *pStr = g_value_get_string (&aValue);
-+ rtl::OString aStr (pStr ? pStr : "");
-+ aResult = rtl::OStringToOUString( aStr, RTL_TEXTENCODING_UTF8 );
-+ g_value_unset (&aValue);
-+ }
- }
- return aResult;
- }
-@@ -521,11 +532,16 @@
- checkDisposed(OResultSet_BASE::rBHelper.bDisposed);
- sal_Bool bResult = sal_False;
-
-- GValue aValue = { 0, };
-- if (getValue (nColumnNum, G_TYPE_BOOLEAN, &aValue))
-- {
-- bResult = g_value_get_boolean (&aValue);
-- g_value_unset (&aValue);
-+ if ( m_xMetaData.is())
-+ {
-+ OEvoabResultSetMetaData *pMeta = (OEvoabResultSetMetaData *) m_xMetaData.get();
-+ sal_Int32 nFieldNumber = pMeta->fieldAtColumn(nColumnNum);
-+ GValue aValue = { 0, };
-+ if (getValue (nFieldNumber, G_TYPE_STRING, &aValue))
-+ {
-+ bResult = g_value_get_boolean (&aValue);
-+ g_value_unset (&aValue);
-+ }
- }
- return bResult ? sal_True : sal_False;
- }
---- connectivity/source/drivers/evoab2/NResultSetMetaData.cxx.bakj 2005-10-24 09:18:59.000000000 +0530
-+++ connectivity/source/drivers/evoab2/NResultSetMetaData.cxx 2005-10-22 12:03:26.000000000 +0530
-@@ -45,6 +45,7 @@
- #ifndef _COM_SUN_STAR_SDBC_DATATYPE_HPP_
- #include <com/sun/star/sdbc/DataType.hpp>
- #endif
-+#include "NDebug.hxx"
-
- using namespace connectivity::evoab;
- using namespace com::sun::star::uno;
-@@ -52,7 +53,8 @@
- using namespace com::sun::star::sdbc;
-
- OEvoabResultSetMetaData::OEvoabResultSetMetaData(const ::rtl::OUString& _aTableName)
-- : m_aTableName(_aTableName)
-+ : m_aTableName(_aTableName),
-+ m_aEvoabFields()
- {
-
- }
-@@ -61,6 +63,27 @@
- {
- }
- // -------------------------------------------------------------------------
-+void OEvoabResultSetMetaData::setEvoabFields(const ::vos::ORef<connectivity::OSQLColumns> &xColumns) throw(SQLException)
-+{
-+ OSQLColumns::const_iterator aIter;
-+ static const ::rtl::OUString aName(::rtl::OUString::createFromAscii("Name"));
-+
-+ for (aIter = xColumns->begin(); aIter != xColumns->end(); ++aIter)
-+ {
-+ ::rtl::OUString aFieldName;
-+ sal_uInt32 nFieldNumber;
-+
-+ (*aIter)->getPropertyValue(aName) >>= aFieldName;
-+ nFieldNumber = findEvoabField(aFieldName);
-+ if (nFieldNumber == -1)
-+ ::dbtools::throwGenericSQLException(
-+ ::rtl::OUString::createFromAscii("Invalid column name: ") + aFieldName,
-+ NULL);
-+ m_aEvoabFields.push_back(nFieldNumber);
-+ }
-+}
-+
-+// -------------------------------------------------------------------------
- void OEvoabResultSetMetaData::checkColumnIndex(sal_Int32 nColumnNum) throw(SQLException, RuntimeException)
- {
- if( nColumnNum <= 0 || nColumnNum > getColumnCount() )
-@@ -74,12 +97,13 @@
- // -------------------------------------------------------------------------
- sal_Int32 SAL_CALL OEvoabResultSetMetaData::getColumnType( sal_Int32 nColumnNum ) throw(SQLException, RuntimeException)
- {
-- return evoab::getFieldType (nColumnNum - 1);
-+ sal_uInt32 nField = m_aEvoabFields[nColumnNum - 1];
-+ return evoab::getFieldType (nField);
- }
- // -------------------------------------------------------------------------
- sal_Int32 SAL_CALL OEvoabResultSetMetaData::getColumnCount( ) throw(SQLException, RuntimeException)
- {
-- return evoab::getFieldCount();
-+ return m_aEvoabFields.size();
- }
- // -------------------------------------------------------------------------
- sal_Bool SAL_CALL OEvoabResultSetMetaData::isCaseSensitive( sal_Int32 nColumnNum ) throw(SQLException, RuntimeException)
-@@ -94,17 +118,21 @@
- // -------------------------------------------------------------------------
- ::rtl::OUString SAL_CALL OEvoabResultSetMetaData::getColumnName( sal_Int32 nColumnNum ) throw(SQLException, RuntimeException)
- {
-- return evoab::getFieldName( nColumnNum - 1 );
-+ sal_uInt32 nField = m_aEvoabFields[nColumnNum - 1];
-+ return evoab::getFieldName( nField );
- }
- // -------------------------------------------------------------------------
- ::rtl::OUString SAL_CALL OEvoabResultSetMetaData::getColumnTypeName( sal_Int32 nColumnNum ) throw(SQLException, RuntimeException)
- {
-- return evoab::getFieldTypeName( nColumnNum - 1 );
-+ sal_uInt32 nField = m_aEvoabFields[nColumnNum - 1];
-+ return evoab::getFieldTypeName( nField );
- }
- // -------------------------------------------------------------------------
- ::rtl::OUString SAL_CALL OEvoabResultSetMetaData::getColumnLabel( sal_Int32 nColumnNum ) throw(SQLException, RuntimeException)
- {
-- const ColumnProperty *pSpecs = getField(nColumnNum - 1);
-+
-+ sal_uInt32 nField = m_aEvoabFields[nColumnNum - 1];
-+ const ColumnProperty *pSpecs = getField(nField);
- GParamSpec *pSpec = pSpecs->pField;
- rtl::OUString aLabel;
-
---- connectivity/source/drivers/evoab2/NResultSetMetaData.hxx.bakj 2005-10-24 09:18:48.000000000 +0530
-+++ connectivity/source/drivers/evoab2/NResultSetMetaData.hxx 2005-10-22 09:19:33.000000000 +0530
-@@ -46,6 +46,9 @@
- #ifndef _CONNECTIVITY_EVOAB_CONNECTION_HXX_
- #include "NConnection.hxx"
- #endif
-+#ifndef _VOS_REF_HXX_
-+#include <vos/ref.hxx>
-+#endif
- #include <com/sun/star/connection/XConnection.hpp>
- namespace connectivity
- {
-@@ -59,11 +62,17 @@
- class OEvoabResultSetMetaData : public OResultSetMetaData_BASE
- {
- ::rtl::OUString m_aTableName;
-+ ::std::vector<sal_Int32> m_aEvoabFields;
-+
- protected:
- virtual ~OEvoabResultSetMetaData();
- public:
- OEvoabResultSetMetaData(const ::rtl::OUString& _aTableName);
--
-+ void setEvoabFields(const ::vos::ORef<connectivity::OSQLColumns> &xColumns) throw(::com::sun::star::sdbc::SQLException);
-+ inline sal_uInt32 fieldAtColumn(sal_Int32 columnIndex) const
-+ { return m_aEvoabFields[columnIndex - 1]; }
-+ inline sal_Int32 getFieldSize() const
-+ {return m_aEvoabFields.size();}
- /// Avoid ambigous cast error from the compiler.
- inline operator ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetMetaData > () throw()
- { return this; }
---- connectivity/source/drivers/evoab2/NStatement.cxx.bakj 2005-10-24 09:17:29.000000000 +0530
-+++ connectivity/source/drivers/evoab2/NStatement.cxx 2005-10-22 11:38:34.000000000 +0530
-@@ -484,11 +484,20 @@
- g_message( "Parsed SQL to sexpr '%s'\n", pSexpr );
- g_free( pSexpr );
- #endif
--
-+ ::vos::ORef<connectivity::OSQLColumns> xColumns;
- if (pQuery)
- {
- pResult->construct( pQuery, aTable, bIsWithoutWhere );
- e_book_query_unref( pQuery );
-+ xColumns = m_aSQLIterator.getSelectColumns();
-+ if (!xColumns.isValid())
-+ {
-+ ::dbtools::throwGenericSQLException(
-+ ::rtl::OUString::createFromAscii("Invalid selection of columns"),
-+ NULL);
-+ }
-+ OEvoabResultSetMetaData *pMeta = (OEvoabResultSetMetaData *) pResult->getMetaData().get();
-+ pMeta->setEvoabFields(xColumns);
- }
- m_xResultSet = xRS;
-
---- connectivity/source/drivers/evoab2/NTables.cxx.bakj 2005-10-24 09:16:46.000000000 +0530
-+++ connectivity/source/drivers/evoab2/NTables.cxx 2005-10-24 09:10:02.000000000 +0530
-@@ -78,7 +78,9 @@
- #ifndef CONNECTIVITY_EVOAB_DEBUG_HELPER_HXX
- #include "NDebug.hxx"
- #endif
--
-+#ifndef _CONNECTIVITY_EVOAB_TABLE_HXX_
-+#include "NTable.hxx"
-+#endif
- using namespace ::comphelper;
-
- using namespace ::cppu;
-@@ -98,7 +100,7 @@
- ::rtl::OUString aSchema = ::rtl::OUString::createFromAscii("%");
-
- Sequence< ::rtl::OUString > aTypes(1);
-- aTypes[0] = ::rtl::OUString::createFromAscii("%");
-+ aTypes[0] = ::rtl::OUString::createFromAscii("TABLE");
- ::rtl::OUString sEmpty;
-
- Reference< XResultSet > xResult = m_xMetaData->getTables(Any(),aSchema,aName,aTypes);
-@@ -109,12 +111,17 @@
- Reference< XRow > xRow(xResult,UNO_QUERY);
- if(xResult->next()) // there can be only one table with this name
- {
-- OTable* pRet = new OTable( this, sal_True,
-- aName, xRow->getString( 4 ),
-- xRow->getString( 5 ), sEmpty );
-- xRet = pRet;
-+ OEvoabTable* pRet = new OEvoabTable(
-+ this,
-+ (OEvoabConnection *)static_cast<OEvoabCatalog&>(m_rParent).getConnection(),
-+ aName,
-+ xRow->getString(4),
-+ xRow->getString(5),
-+ sEmpty);
-+ xRet = pRet;
- }
- }
-+
- ::comphelper::disposeComponent(xResult);
-
- return xRet;
---- /dev/null 2005-10-24 08:58:06.240378500 +0530
-+++ connectivity/source/drivers/evoab2/NTable.hxx 2005-10-22 11:36:33.000000000 +0530
-@@ -0,0 +1,84 @@
-+ /*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ * Contributor(s): Jayant Madavi_______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CONNECTIVITY_EVOAB_TABLE_HXX_
-+#define _CONNECTIVITY_EVOAB_TABLE_HXX_
-+
-+#ifndef _CONNECTIVITY_EVOAB_CONNECTION_HXX_
-+#include "NConnection.hxx"
-+#endif
-+
-+#ifndef _CONNECTIVITY_SDBCX_TABLE_HXX_
-+#include "connectivity/sdbcx/VTable.hxx"
-+#endif
-+
-+namespace connectivity
-+{
-+ namespace evoab
-+ {
-+ typedef connectivity::sdbcx::OTable OEvoabTable_TYPEDEF;
-+
-+ ::rtl::OUString getTypeString(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xColProp);
-+
-+ class OEvoabTable : public OEvoabTable_TYPEDEF
-+ {
-+ ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData > m_xMetaData;
-+ OEvoabConnection* m_pConnection;
-+
-+ public:
-+ OEvoabTable( sdbcx::OCollection* _pTables, OEvoabConnection* _pConnection);
-+ OEvoabTable( sdbcx::OCollection* _pTables,
-+ OEvoabConnection* _pConnection,
-+ const ::rtl::OUString& _Name,
-+ const ::rtl::OUString& _Type,
-+ const ::rtl::OUString& _Description = ::rtl::OUString(),
-+ const ::rtl::OUString& _SchemaName = ::rtl::OUString(),
-+ const ::rtl::OUString& _CatalogName = ::rtl::OUString()
-+ );
-+
-+ OEvoabConnection* getConnection() { return m_pConnection;}
-+
-+ virtual void refreshColumns();
-+
-+ ::rtl::OUString getTableName() const { return m_Name; }
-+ ::rtl::OUString getSchema() const { return m_SchemaName; }
-+ };
-+ }
-+}
-+
-+#endif // _CONNECTIVITY_EVOAB_TABLE_HXX_
---- /dev/null 2005-10-24 08:58:06.240378500 +0530
-+++ connectivity/source/drivers/evoab2/NTable.cxx 2005-10-22 12:02:52.000000000 +0530
-@@ -0,0 +1,108 @@
-+ /*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ * Contributor(s): Jayant Madavi_______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include "NTable.hxx"
-+#ifndef _CONNECTIVITY_EVOAB_TABLES_HXX_
-+#include "NTables.hxx"
-+#endif
-+#ifndef _CONNECTIVITY_EVOAB_COLUMNS_HXX_
-+#include "NColumns.hxx"
-+#endif
-+#ifndef _CONNECTIVITY_EVOAB_CATALOG_HXX__
-+#include "NCatalog.hxx"
-+#endif
-+
-+using namespace connectivity;
-+using namespace ::comphelper;
-+using namespace ::com::sun::star::uno;
-+using namespace ::com::sun::star::beans;
-+using namespace ::com::sun::star::sdbcx;
-+using namespace ::com::sun::star::sdbc;
-+using namespace ::com::sun::star::container;
-+using namespace ::com::sun::star::lang;
-+using namespace connectivity::evoab;
-+// -------------------------------------------------------------------------
-+OEvoabTable::OEvoabTable( sdbcx::OCollection* _pTables, OEvoabConnection* _pConnection)
-+ : OEvoabTable_TYPEDEF(_pTables, sal_True),
-+ m_pConnection(_pConnection)
-+{
-+ construct();
-+}
-+// -------------------------------------------------------------------------
-+OEvoabTable::OEvoabTable( sdbcx::OCollection* _pTables,
-+ OEvoabConnection* _pConnection,
-+ const ::rtl::OUString& _Name,
-+ const ::rtl::OUString& _Type,
-+ const ::rtl::OUString& _Description ,
-+ const ::rtl::OUString& _SchemaName,
-+ const ::rtl::OUString& _CatalogName
-+ ) : OEvoabTable_TYPEDEF(_pTables,sal_True,
-+ _Name,
-+ _Type,
-+ _Description,
-+ _SchemaName,
-+ _CatalogName),
-+ m_pConnection(_pConnection)
-+{
-+ construct();
-+}
-+// -------------------------------------------------------------------------
-+void OEvoabTable::refreshColumns()
-+{
-+ TStringVector aVector;
-+
-+ if (!isNew())
-+ {
-+ Reference< XResultSet > xResult = m_pConnection->getMetaData()->getColumns(
-+ Any(),
-+ m_SchemaName,
-+ m_Name,
-+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%")));
-+
-+ if (xResult.is())
-+ {
-+ Reference< XRow > xRow(xResult, UNO_QUERY);
-+ while (xResult->next())
-+ aVector.push_back(xRow->getString(4));
-+ }
-+ }
-+ if (m_pColumns)
-+ m_pColumns->reFill(aVector);
-+ else
-+ m_pColumns = new OEvoabColumns(this,m_aMutex,aVector);
-+}
---- /dev/null 2005-10-24 08:58:06.240378500 +0530
-+++ connectivity/source/drivers/evoab2/NColumns.hxx 2005-10-22 11:37:26.000000000 +0530
-@@ -0,0 +1,73 @@
-+ /*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ * Contributor(s): Jayant Madavi_______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CONNECTIVITY_EVOAB_COLUMNS_HXX_
-+#define _CONNECTIVITY_EVOAB_COLUMNS_HXX_
-+
-+#ifndef _CONNECTIVITY_EVOAB_TABLE_HXX_
-+#include "NTable.hxx"
-+#endif
-+
-+#ifndef _CONNECTIVITY_SDBCX_COLLECTION_HXX_
-+#include "connectivity/sdbcx/VCollection.hxx"
-+#endif
-+
-+namespace connectivity
-+{
-+ namespace evoab
-+ {
-+ class OEvoabColumns : public sdbcx::OCollection
-+ {
-+ protected:
-+ OEvoabTable* m_pTable;
-+
-+ virtual sdbcx::ObjectType createObject(const ::rtl::OUString& _rName);
-+ virtual void impl_refresh() throw(::com::sun::star::uno::RuntimeException);
-+
-+ public:
-+ OEvoabColumns( OEvoabTable* _pTable,
-+ ::osl::Mutex& _rMutex,
-+ const TStringVector &_rVector
-+ ) : sdbcx::OCollection(*_pTable,sal_True,_rMutex,_rVector),
-+ m_pTable(_pTable)
-+ { }
-+ };
-+ }
-+}
-+
-+#endif // _CONNECTIVITY_EVOAB_COLUMNS_HXX_
---- /dev/null 2005-10-24 08:58:06.240378500 +0530
-+++ connectivity/source/drivers/evoab2/NColumns.cxx 2005-10-22 11:38:07.000000000 +0530
-@@ -0,0 +1,106 @@
-+ /*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ * Contributor(s): Jayant Madavi_______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include "NColumns.hxx"
-+#ifndef _CONNECTIVITY_EVOAB_TABLE_HXX_
-+#include "NTable.hxx"
-+#endif
-+#ifndef _CONNECTIVITY_EVOAB_TABLES_HXX_
-+#include "NTables.hxx"
-+#endif
-+#ifndef _CONNECTIVITY_EVOAB_CATALOG_HXX_
-+#include "NCatalog.hxx"
-+#endif
-+
-+#ifndef _CONNECTIVITY_SDBCX_COLUMN_HXX_
-+#include "connectivity/sdbcx/VColumn.hxx"
-+#endif
-+
-+using namespace connectivity::sdbcx;
-+using namespace connectivity;
-+using namespace ::comphelper;
-+using namespace ::com::sun::star::uno;
-+using namespace ::com::sun::star::beans;
-+using namespace ::com::sun::star::sdbc;
-+using namespace ::com::sun::star::container;
-+using namespace ::com::sun::star::lang;
-+using namespace connectivity::evoab;
-+
-+// -------------------------------------------------------------------------
-+sdbcx::ObjectType OEvoabColumns::createObject(const ::rtl::OUString& _rName)
-+{
-+ Reference< XResultSet > xResult = m_pTable->getConnection()->getMetaData()->getColumns(
-+ Any(),
-+ m_pTable->getSchema(),
-+ m_pTable->getTableName(),
-+ _rName);
-+
-+ sdbcx::ObjectType xRet = NULL;
-+ if (xResult.is())
-+ {
-+ Reference< XRow > xRow(xResult,UNO_QUERY);
-+
-+ while (xResult->next())
-+ {
-+ if (xRow->getString(4) == _rName)
-+ {
-+ OColumn* pRet = new OColumn(
-+ _rName,
-+ xRow->getString(6),
-+ xRow->getString(13),
-+ xRow->getInt(11),
-+ xRow->getInt(7),
-+ xRow->getInt(9),
-+ xRow->getInt(5),
-+ sal_False,
-+ sal_False,
-+ sal_False,
-+ sal_True);
-+ xRet = pRet;
-+ break;
-+ }
-+ }
-+ }
-+
-+ return xRet;
-+}
-+// -------------------------------------------------------------------------
-+void OEvoabColumns::impl_refresh() throw(RuntimeException)
-+{
-+ m_pTable->refreshColumns();
-+}
-
---- connectivity/source/drivers/evoab2/makefile.mk 8 Sep 2005 05:54:17 -0000 1.3
-+++ connectivity/source/drivers/evoab2/makefile.mk 31 Oct 2005 12:11:19 -0000
-@@ -58,6 +58,8 @@
-
- EXCEPTIONSFILES=\
- $(SLO)$/NDriver.obj \
-+ $(SLO)$/NTable.obj \
-+ $(SLO)$/NColumns.obj \
- $(SLO)$/NTables.obj \
- $(SLO)$/NCatalog.obj \
- $(SLO)$/NConnection.obj \
diff --git a/patches/mono/.cvsignore b/patches/mono/.cvsignore
deleted file mode 100644
index 282522db0..000000000
--- a/patches/mono/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile
-Makefile.in
diff --git a/patches/mono/Makefile.am b/patches/mono/Makefile.am
deleted file mode 100644
index 0b280d2c7..000000000
--- a/patches/mono/Makefile.am
+++ /dev/null
@@ -1 +0,0 @@
-EXTRA_DIST = $(wildcard *.diff)
diff --git a/patches/mono/bridges-prj.diff b/patches/mono/bridges-prj.diff
deleted file mode 100644
index 1873a44a2..000000000
--- a/patches/mono/bridges-prj.diff
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -ur bridges-orig/prj/build.lst bridges/prj/build.lst
---- bridges-orig/prj/build.lst 2005-01-18 15:52:41.000000000 +0100
-+++ bridges/prj/build.lst 2005-02-11 12:30:14.000000000 +0100
-@@ -21,3 +21,4 @@
- br bridges\source\cli_uno nmake - w,vc7 br_cli_uno br_unotypes NULL
- br bridges\source\jni_uno nmake - all br_jni_uno br_unotypes NULL
- br bridges\source\jni_uno\java\com\sun\star\bridges\jni_uno nmake - all br_jni_uno_java br_unotypes NULL
-+br bridges\source\mono_uno nmake - u br_mono_uno br_unotypes NULL
-
-diff -ur bridges-orig/prj/d.lst bridges/prj/d.lst
---- bridges-orig/prj/d.lst 2004-11-03 10:03:02.000000000 +0100
-+++ bridges/prj/d.lst 2005-02-11 12:42:18.000000000 +0100
-@@ -26,6 +26,7 @@
- ..\%__SRC%\lib\libgcc3_uno.* %_DEST%\lib%_EXT%\libgcc3_uno.*
- ..\%__SRC%\lib\libsunpro5_uno.* %_DEST%\lib%_EXT%\libsunpro5_uno.*
-
--
-+..\%__SRC%\lib\libcli_uno.* %_DEST%\lib%_EXT%\libcli_uno.*
-+..\%__SRC%\bin\cli_uno_bridge.* %_DEST%\bin%_EXT%\cli_uno_bridge.*
-
- linklib: librmcxt.*.*
diff --git a/patches/mono/bridges-source-mono_uno-binaryuno-cs.diff b/patches/mono/bridges-source-mono_uno-binaryuno-cs.diff
deleted file mode 100644
index ad883c20b..000000000
--- a/patches/mono/bridges-source-mono_uno-binaryuno-cs.diff
+++ /dev/null
@@ -1,195 +0,0 @@
---- /dev/null
-+++ bridges/source/mono_uno/binaryuno.cs
-@@ -0,0 +1,192 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile: $
-+ *
-+ * $Revision: $
-+ *
-+ * last change: $Author: $ $Date: $
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+namespace uno.Binary {
-+
-+using System;
-+using System.Runtime.InteropServices;
-+using uno.Typelib;
-+using uno.rtl;
-+
-+[ StructLayout(LayoutKind.Sequential) ]
-+public unsafe struct Any
-+{
-+ /** type of value
-+ */
-+ public uno.Typelib.TypeDescriptionReference *pType;
-+
-+ /** pointer to value; this may point to pReserved and thus the uno_Any is not anytime
-+ mem-copyable! You may have to correct the pData pointer to pReserved. Otherwise you need
-+ not, because the data is stored in heap space.
-+ */
-+ public void *pData;
-+ /** reserved space for storing value
-+ */
-+ public void *pReserved;
-+
-+ [ DllImport("uno_cppu", EntryPoint="uno_any_construct") ]
-+ public static unsafe extern void Construct(/* Any */ void *dest,
-+ void *source,
-+ /* uno.Typelib.TypeDescriptionReference */ void *type,
-+ void *acquireFunction);
-+
-+ [ DllImport("uno_cppu", EntryPoint="uno_any_destruct") ]
-+ public static unsafe extern void Destroy(/* Any */ void *value, void *releaseFunction);
-+}
-+
-+// FIXME wrap this nicely
-+public struct Interface
-+{
-+ [ DllImport("cli_uno", EntryPoint="cli_uno_interface_acquire") ]
-+ public static extern void Acquire(IntPtr unoInterface);
-+
-+ [ DllImport("cli_uno", EntryPoint="cli_uno_interface_release") ]
-+ public static extern void Release(IntPtr unoInterface);
-+
-+ [ DllImport("cli_uno", EntryPoint="cli_uno_interface_dispatch") ]
-+ public static unsafe extern void Dispatch(IntPtr unoInterface,
-+ /* uno.Typelib.TypeDescription */ void *memberTD,
-+ void *result,
-+ void **args,
-+ uno.Binary.Any **exception);
-+}
-+
-+// FIXME and this
-+public class Environment
-+{
-+ [ DllImport("cli_uno", EntryPoint="cli_uno_environment_getObjectIdentifier") ]
-+ public static unsafe extern void GetObjectIdentifier(IntPtr unoEnvironment,
-+ UString** oid,
-+ IntPtr unoInterface);
-+
-+ [ DllImport("cli_uno", EntryPoint="cli_uno_environment_registerInterface") ]
-+ public static unsafe extern void RegisterInterface(
-+ IntPtr unoEnvironment,
-+ ref IntPtr ppInterface,
-+ /* UString */ void* oid,
-+ /* InterfaceTypeDescription */ void *td);
-+
-+ [ DllImport("cli_uno", EntryPoint="cli_uno_environment_getRegisteredInterface") ]
-+ public static unsafe extern void GetRegisteredInterface(
-+ IntPtr unoEnvironment,
-+ ref IntPtr ppInterface,
-+ /* UString */ void* oid,
-+ /* InterfaceTypeDescription */ void *td);
-+}
-+
-+public struct Data
-+{
-+ [ DllImport("uno_cppu", EntryPoint="uno_type_destructData") ]
-+ public static unsafe extern void Destroy(void *data,
-+ /* uno.Typelib.TypeDescription */ void *td,
-+ // FIXME is this okay? release is a function pointer
-+ void *release);
-+}
-+
-+public unsafe struct SequencePtr
-+{
-+ int *sal_Sequence;
-+
-+ // sal_Int32 nRefCount;
-+ // sal_Int32 nElements;
-+ // char elements[1];
-+
-+ /** element count<br>
-+ */
-+ /** elements array<br>
-+ */
-+
-+ /** reference count of sequence<br>
-+ */
-+ private unsafe int nRefCount
-+ {
-+ get { return *(sal_Sequence); }
-+ set { *(sal_Sequence) = value; }
-+ }
-+
-+ public unsafe int nElements
-+ {
-+ get { return *(sal_Sequence + 1); }
-+ set { *(sal_Sequence + 1) = value; }
-+ }
-+
-+ public unsafe IntPtr elementsPtr
-+ {
-+ get { return new IntPtr((void *)(sal_Sequence + 2)); }
-+ }
-+
-+ private unsafe SequencePtr(void *mem)
-+ {
-+ sal_Sequence = (int*)mem;
-+ }
-+
-+ private const int HEADER_SIZE = 8; // FIXME alignment
-+
-+ public static SequencePtr Allocate(int length, int elementSize)
-+ {
-+ void *rtlPtr = uno.rtl.Mem.Allocate(HEADER_SIZE + (length * elementSize));
-+ SequencePtr seqPtr = new SequencePtr(rtlPtr);
-+ seqPtr.nRefCount = 1;
-+ seqPtr.nElements = length;
-+ return seqPtr;
-+ }
-+}
-+}
diff --git a/patches/mono/bridges-source-mono_uno-bridge-cs.diff b/patches/mono/bridges-source-mono_uno-bridge-cs.diff
deleted file mode 100644
index cf3af7443..000000000
--- a/patches/mono/bridges-source-mono_uno-bridge-cs.diff
+++ /dev/null
@@ -1,1876 +0,0 @@
---- /dev/null
-+++ bridges/source/mono_uno/bridge.cs
-@@ -0,0 +1,1873 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile: $
-+ *
-+ * $Revision: $
-+ *
-+ * last change: $Author: $ $Date: $
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+namespace com.sun.star.bridges.mono_uno /* FIXME use some uno.foo namespace ? */
-+{
-+
-+using System;
-+using System.Reflection;
-+using System.Runtime.InteropServices;
-+using System.Runtime.Remoting;
-+using System.Text;
-+using uno.Binary;
-+using uno.rtl;
-+using uno.Typelib;
-+
-+public unsafe class Bridge
-+{
-+ static IntPtr unoEnvironment;
-+ static cli_uno.Cli_environment managedEnvironment;
-+
-+ Bridge(IntPtr unoEnv)
-+ {
-+ unoEnvironment = unoEnv;
-+ managedEnvironment = new cli_uno.Cli_environment();
-+ }
-+
-+ public unsafe IntPtr MapManagedToUno(object managedData, TypeDescription *td)
-+ {
-+ IntPtr result = new IntPtr(null);
-+
-+ // get oid from managed environment
-+ string oid = cli_uno.Cli_environment.getObjectIdentifier(managedData);
-+
-+ UString* unoOid = null;
-+ UString.NewFromString(&unoOid, oid);
-+ uno.Binary.Environment.GetRegisteredInterface(unoEnvironment,
-+ ref result,
-+ unoOid,
-+ (InterfaceTypeDescription *)td);
-+ if (result == IntPtr.Zero)
-+ lock (typeof(cli_uno.Cli_environment))
-+ {
-+ uno.Binary.Environment.GetRegisteredInterface(unoEnvironment,
-+ ref result,
-+ unoOid,
-+ (InterfaceTypeDescription *)td);
-+ if (result == IntPtr.Zero)
-+ result = CreateManagedProxy(managedData, td, unoOid);
-+ }
-+
-+ UString.Release(unoOid);
-+
-+ return result;
-+ }
-+
-+ public unsafe object MapUnoToManaged(IntPtr unoInterface, InterfaceTypeDescription *iTD)
-+ {
-+ object result = null;
-+
-+ UString* oidPtr = null;
-+ uno.Binary.Environment.GetObjectIdentifier(unoEnvironment, &oidPtr, unoInterface);
-+
-+ // See if the interface was already mapped
-+ Type ifaceType = MapUnoType((TypeDescription *)iTD);
-+ string oid = UString.UStringToString(oidPtr);
-+ // the string is owned by unoEnvironment
-+ oidPtr = null;
-+
-+ lock (managedEnvironment)
-+ {
-+ result = managedEnvironment.getRegisteredInterface(oid, ifaceType);
-+ if (result != null)
-+ {
-+ // There is already an registered object. It can either be a proxy
-+ // for the UNO object or a real cli object. In the first case we
-+ // tell the proxy that it shall also represent the current UNO
-+ // interface. If it already does that, then it does nothing
-+ if (RemotingServices.IsTransparentProxy(result))
-+ {
-+ UnoInterfaceProxy p = (UnoInterfaceProxy)RemotingServices.GetRealProxy(result);
-+ p.AddUnoInterface(unoInterface, iTD);
-+ }
-+ }
-+ else
-+ {
-+ result = UnoInterfaceProxy.Create(this, unoInterface, iTD, oid);
-+ }
-+ }
-+
-+ return result;
-+ }
-+
-+ // FIXME convert cli types to expected types, e.g a long to a short where the uno type
-+ // is a sal_Int16. This could be necessary if a scripting language (typeless) is used
-+ // @param assign the uno_data has to be destructed (in/out args)
-+ unsafe void MapToUno(void *unoData, object managedData,
-+ // FIXME it's a TypeDescriptionReference
-+ TypeDescription *type, bool assign)
-+ {
-+ // FIXME acquire the TypeDescription?
-+ // FIXME assert that all the type equivalences in the comments hold
-+ switch (type->eTypeClass)
-+ {
-+ case TypeClass.VOID:
-+ break;
-+ case TypeClass.CHAR:
-+ *(ushort *)unoData = (char)managedData; // sal_Unicode = ushort
-+ break;
-+ case TypeClass.BOOLEAN:
-+ *(byte *)unoData = (bool)managedData ? (byte)1 : (byte)0; // sal_Bool = byte
-+ break;
-+ case TypeClass.BYTE:
-+ *(byte *)unoData = (byte)managedData; // sal_Int8 = byte
-+ break;
-+ case TypeClass.SHORT:
-+ *(short *)unoData = (short)managedData; // sal_Int16 = short
-+ break;
-+ case TypeClass.UNSIGNED_SHORT:
-+ *(ushort *)unoData = (ushort)managedData; // sal_uInt16 = ushort
-+ break;
-+ case TypeClass.LONG:
-+ *(int *)unoData = (int)managedData; // sal_Int32 = int
-+ break;
-+ case TypeClass.UNSIGNED_LONG:
-+ *(uint *)unoData = (uint)managedData; // sal_uInt32 = uint
-+ break;
-+ case TypeClass.HYPER:
-+ *(long *)unoData = (long)managedData; // sal_Int64 = long
-+ break;
-+ case TypeClass.UNSIGNED_HYPER:
-+ *(ulong *)unoData = (ulong)managedData; // sal_uInt64 = ulong
-+ break;
-+ case TypeClass.FLOAT:
-+ *(float *)unoData = (float)managedData; // C++ float = C# float
-+ break;
-+ case TypeClass.DOUBLE:
-+ *(double *)unoData = (double)managedData; // C++ double = C# double
-+ break;
-+ case TypeClass.STRING:
-+ {
-+ if (assign && *(UString **)unoData != null)
-+ UString.Release(*(UString **)unoData);
-+
-+ *(UString **)unoData = null;
-+ if (managedData == null)
-+ {
-+ UString.New((UString **)unoData);
-+ }
-+ else
-+ {
-+ string s = (string)managedData;
-+ UString.NewFromString((UString **)unoData, s);
-+ }
-+ }
-+ break;
-+ case TypeClass.TYPE:
-+ if (assign)
-+ TypeDescriptionReference.Release(*(TypeDescriptionReference **)unoData);
-+
-+ *(TypeDescriptionReference **)unoData = MapManagedType((Type)managedData);
-+ break;
-+ case TypeClass.ANY:
-+ {
-+ uno.Binary.Any *binAny = (uno.Binary.Any *)unoData;
-+
-+ if (assign)
-+ uno.Binary.Any.Destroy(binAny, null);
-+
-+ if (managedData == null)
-+ {
-+ uno.Binary.Any.Construct(binAny, null, null, null);
-+ break;
-+ }
-+
-+ uno.Any any = (uno.Any)managedData;
-+ TypeDescription *valueTD = (TypeDescription *)MapManagedType(any.Type);
-+
-+ // if there's enough room in void *pReserved, store the value in the pointer
-+ binAny->pData = &binAny->pReserved; // this triggers a bug in mcs < 1.1.4
-+ switch (valueTD->eTypeClass)
-+ {
-+ case TypeClass.VOID:
-+ break;
-+ case TypeClass.CHAR:
-+ *(ushort *)binAny->pData = (char)any.Value;
-+ break;
-+ case TypeClass.BOOLEAN:
-+ *(byte *)binAny->pData = (bool)any.Value ? (byte)1 : (byte)0;
-+ break;
-+ case TypeClass.BYTE:
-+ *(byte *)binAny->pData = (byte)any.Value;
-+ break;
-+ case TypeClass.SHORT:
-+ *(short *)binAny->pData = (short)any.Value;
-+ break;
-+ case TypeClass.UNSIGNED_SHORT:
-+ *(ushort *)binAny->pData = (ushort)any.Value;
-+ break;
-+ case TypeClass.LONG:
-+ *(int *)binAny->pData = (int)any.Value;
-+ break;
-+ case TypeClass.UNSIGNED_LONG:
-+ *(uint *)binAny->pData = (uint)any.Value;
-+ break;
-+ case TypeClass.HYPER:
-+ if (sizeof(long) > sizeof(void *))
-+ binAny->pData = uno.rtl.Mem.Allocate(sizeof(long));
-+
-+ *(long *)binAny->pData = (long)any.Value;
-+ break;
-+ case TypeClass.UNSIGNED_HYPER:
-+ if (sizeof(ulong) > sizeof(void *))
-+ binAny->pData = uno.rtl.Mem.Allocate(sizeof(ulong));
-+
-+ *(ulong *)binAny->pData = (ulong)any.Value;
-+ break;
-+ case TypeClass.FLOAT:
-+ if (sizeof(float) > sizeof(void *)) // FIXME can this happen?
-+ binAny->pData = uno.rtl.Mem.Allocate(sizeof(float));
-+
-+ *(float *)binAny->pData = (float)any.Value;
-+ break;
-+ case TypeClass.DOUBLE:
-+ if (sizeof(double) > sizeof(void *))
-+ binAny->pData = uno.rtl.Mem.Allocate(sizeof(double));
-+
-+ *(double *)binAny->pData = (double)any.Value;
-+ break;
-+ case TypeClass.STRING:
-+ // string anies are used so often, that we handle them
-+ // separately, to be a little faster than with an
-+ // extra MapToUno call
-+
-+ // the Any was already destroyed, can't contain a
-+ // valid string that we could leak here.
-+ *(UString **)binAny->pData = null;
-+
-+ if (managedData == null)
-+ {
-+ UString.New((UString **)binAny->pData);
-+ }
-+ else
-+ {
-+ string s = (string)any.Value;
-+ UString.NewFromString((UString **)binAny->pData, s);
-+ }
-+ // the string is owned by the Any
-+ break;
-+ case TypeClass.ENUM:
-+ *(int *) binAny->pData = System.Convert.ToInt32(any.Value);
-+ break;
-+ case TypeClass.TYPE:
-+ case TypeClass.SEQUENCE:
-+ case TypeClass.INTERFACE:
-+ binAny->pReserved = null;
-+ MapToUno(binAny->pData, any.Value, valueTD, false /* no assign */);
-+ break;
-+ case TypeClass.STRUCT:
-+ case TypeClass.EXCEPTION:
-+ binAny->pData = uno.rtl.Mem.Allocate(valueTD->nSize);
-+ MapToUno(binAny->pData, any.Value, valueTD, false /* no assign */);
-+ break;
-+ default:
-+ // FIXME
-+ throw new Exception();
-+ }
-+ binAny->pType = (TypeDescriptionReference *)valueTD;
-+ TypeDescriptionReference.Acquire(binAny->pType);
-+ }
-+ break;
-+ case TypeClass.ENUM:
-+ *(int *)unoData = System.Convert.ToInt32(managedData);
-+ break;
-+ case TypeClass.STRUCT:
-+ case TypeClass.EXCEPTION:
-+ {
-+ TypeDescription *td = null; // FIXME leak
-+ TypeDescriptionReference.GetDescription(&td, (TypeDescriptionReference *)type);
-+ CompoundTypeDescription *compTD = (CompoundTypeDescription *)td;
-+ StructTypeDescription *structTD = null;
-+
-+ if (type->eTypeClass == TypeClass.STRUCT)
-+ structTD = (StructTypeDescription *)type;
-+
-+ if (((TypeDescription *)compTD)->bComplete == 0)
-+ TypeDescription.Complete((TypeDescription **)&compTD);
-+
-+ int members = compTD->nMembers;
-+ Type managedType = null;
-+ if (managedData != null)
-+ managedType = managedData.GetType();
-+
-+ if (compTD->pBaseTypeDescription != null)
-+ MapToUno(unoData, managedData,
-+ (TypeDescription *)((TypeDescription *)compTD->pBaseTypeDescription)->pWeakRef,
-+ assign);
-+
-+ TypeDescriptionReference *memberType = null;
-+ for (int i = 0; i < members; ++i)
-+ {
-+ memberType = compTD->ppTypeRefs[i];
-+
-+ object val = null;
-+ if (managedData != null)
-+ {
-+ string fieldName = UString.UStringToString(compTD->ppMemberNames[i]);
-+ FieldInfo fieldInfo = managedType.GetField(fieldName);
-+ // special case for Exception.Message property
-+ // The com.sun.star.uno.Exception.Message field is mapped to the
-+ // System.Exception property. Type.GetField("Message") returns null
-+ if (fieldInfo == null &&
-+ UString.UStringToString(type->pTypeName) == "com.sun.star.uno.Exception")
-+ {
-+ // get ExceptionMessage property
-+ if (fieldName == "Message")
-+ {
-+ PropertyInfo propInfo = managedType.GetProperty(fieldName);
-+ val = propInfo.GetValue(managedData, null);
-+ } // FIXME else throw exception
-+ }
-+ else if (fieldInfo != null)
-+ {
-+ val = fieldInfo.GetValue(managedData);
-+ } // FIXME else throw exception
-+ }
-+
-+ void *p = (byte *)unoData + compTD->pMemberOffsets[i];
-+ // When using polymorphic structs then the parameterized members can be null.
-+ // Then we set a default value.
-+ bool useDefault = ((structTD != null &&
-+ structTD->pParameterizedTypes != null &&
-+ structTD->pParameterizedTypes[i] == 1 &&
-+ val == null) ||
-+ managedData == null);
-+ switch (memberType->eTypeClass)
-+ {
-+ case TypeClass.CHAR:
-+ if (useDefault)
-+ *(ushort *)p = 0;
-+ else
-+ *(ushort *)p = (char)val;
-+ break;
-+ case TypeClass.BOOLEAN:
-+ if (useDefault)
-+ *(byte *)p = (byte)0;
-+ else
-+ *(byte *)p = (bool)val ? (byte)1 : (byte)0;
-+ break;
-+ case TypeClass.BYTE:
-+ if (useDefault)
-+ *(byte *)p = (byte)0;
-+ else
-+ *(byte *)p = (byte)val;
-+ break;
-+ case TypeClass.SHORT:
-+ if (useDefault)
-+ *(short *)p = (short)0;
-+ else
-+ *(short *)p = (short)val;
-+ break;
-+ case TypeClass.UNSIGNED_SHORT:
-+ if (useDefault)
-+ *(ushort *)p = (ushort)0;
-+ else
-+ *(ushort *)p = (ushort)val;
-+ break;
-+ case TypeClass.LONG:
-+ if (useDefault)
-+ *(int *)p = 0;
-+ else
-+ *(int *)p = (int)val;
-+ break;
-+ case TypeClass.UNSIGNED_LONG:
-+ if (useDefault)
-+ *(uint *)p = (uint)0;
-+ else
-+ *(uint *)p = (uint)val;
-+ break;
-+ case TypeClass.HYPER:
-+ if (useDefault)
-+ *(long *)p = (long)0;
-+ else
-+ *(long *)p = (long)val;
-+ break;
-+ case TypeClass.UNSIGNED_HYPER:
-+ if (useDefault)
-+ *(ulong *)p = (ulong)0;
-+ else
-+ *(ulong *)p = (ulong)val;
-+ break;
-+ case TypeClass.FLOAT:
-+ if (useDefault)
-+ *(float *)p = 0.0F;
-+ else
-+ *(float *)p = (float)val;
-+ break;
-+ case TypeClass.DOUBLE:
-+ if (useDefault)
-+ *(double *)p = 0.0;
-+ else
-+ *(double *)p = (double)val;
-+ break;
-+ default:
-+ // FIXME enum should be converted here
-+ MapToUno(p, val, (TypeDescription *)memberType, assign);
-+ break;
-+ }
-+ }
-+ // FIXME exception handling
-+ }
-+ break;
-+ case TypeClass.SEQUENCE:
-+ {
-+ TypeDescription *td = null; // FIXME
-+ TypeDescriptionReference.GetDescription(&td, (TypeDescriptionReference *)type);
-+ TypeDescriptionReference *elementType =
-+ ((IndirectTypeDescription *)td)->pType;
-+
-+ SequencePtr seq = new SequencePtr();
-+
-+ if (managedData != null)
-+ {
-+ Array array = (Array)managedData;
-+ int length = array.GetLength(0);
-+
-+ switch (elementType->eTypeClass)
-+ {
-+ case TypeClass.CHAR:
-+ seq = SequencePtr.Allocate(length, sizeof(ushort));
-+ Marshal.Copy((char [])managedData, 0, seq.elementsPtr, length);
-+ break;
-+/* case TypeClass.BOOLEAN:
-+ // FIXME bool vs. byte ???
-+ seq = SequencePtr.Allocate(length, sizeof(byte));
-+ Marshal.Copy((byte [])managedData, 0, seq.elementsPtr, length);
-+ break;*/
-+ case TypeClass.BYTE:
-+ seq = SequencePtr.Allocate(length, sizeof(byte));
-+ Marshal.Copy((byte [])managedData, 0, seq.elementsPtr, length);
-+ break;
-+ case TypeClass.SHORT:
-+ seq = SequencePtr.Allocate(length, sizeof(short));
-+ Marshal.Copy((short [])managedData, 0, seq.elementsPtr, length);
-+ break;
-+/* case TypeClass.UNSIGNED_SHORT:
-+ seq = SequencePtr.Allocate(length, sizeof(ushort));
-+ Marshal.Copy((short [])managedData, 0, seq.elementsPtr, length);
-+ break; */
-+ case TypeClass.LONG:
-+ seq = SequencePtr.Allocate(length, sizeof(int));
-+ Marshal.Copy((int [])managedData, 0, seq.elementsPtr, length);
-+ break;
-+/* case TypeClass.UNSIGNED_LONG:
-+ seq = SequencePtr.Allocate(length, sizeof(uint));
-+ Marshal.Copy((int [])managedData, 0, seq.elementsPtr, length);
-+ break; */
-+ case TypeClass.HYPER:
-+ seq = SequencePtr.Allocate(length, sizeof(long));
-+ Marshal.Copy((long [])managedData, 0, seq.elementsPtr, length);
-+ break;
-+/* case TypeClass.UNSIGNED_HYPER:
-+ seq = SequencePtr.Allocate(length, sizeof(ulong));
-+ Marshal.Copy((long [])managedData, 0, seq.elementsPtr, length);
-+ break; */
-+ case TypeClass.FLOAT:
-+ seq = SequencePtr.Allocate(length, sizeof(float));
-+ Marshal.Copy((float [])managedData, 0, seq.elementsPtr, length);
-+ break;
-+ case TypeClass.DOUBLE:
-+ seq = SequencePtr.Allocate(length, sizeof(double));
-+ Marshal.Copy((double [])managedData, 0, seq.elementsPtr, length);
-+ break;
-+ case TypeClass.STRING:
-+ {
-+ seq = SequencePtr.Allocate(length, sizeof(void *));
-+ string[] stringArray = (string [])managedData;
-+ for (int i = 0; i < length; ++i)
-+ {
-+ UString** pStr = ((UString** )seq.elementsPtr) + i;
-+ *pStr = null;
-+ UString.NewFromString(pStr, stringArray[i]);
-+ // string ownership goes to callee
-+ }
-+ }
-+ break;
-+ case TypeClass.ENUM:
-+ seq = SequencePtr.Allocate(length, sizeof(int));
-+ for (int i = 0; i < length; ++i)
-+ ((int *)seq.elementsPtr)[i] =
-+ Convert.ToInt32(array.GetValue(i));
-+ break;
-+ case TypeClass.TYPE:
-+ case TypeClass.ANY:
-+ case TypeClass.STRUCT:
-+ case TypeClass.EXCEPTION:
-+ case TypeClass.SEQUENCE:
-+ case TypeClass.INTERFACE:
-+ // FIXME: surely we can do better for this lot [!] - sign problems ...
-+ case TypeClass.BOOLEAN:
-+ case TypeClass.UNSIGNED_SHORT:
-+ case TypeClass.UNSIGNED_LONG:
-+ case TypeClass.UNSIGNED_HYPER:
-+ {
-+ seq = SequencePtr.Allocate(
-+ length, ((TypeDescription *)elementType)->nSize);
-+
-+ for (int i = 0; i < length; ++i)
-+ {
-+ void *p =
-+ (byte *)seq.elementsPtr +
-+ i * ((TypeDescription *)elementType)->nSize;
-+ object elementData = ((Array)managedData).GetValue(i);
-+ MapToUno(p, elementData,
-+ (TypeDescription *)((TypeDescription *)elementType)->pWeakRef,
-+ false /* no assign */);
-+ }
-+ // FIXME exception handling
-+ }
-+ break;
-+ default:
-+ break; // FIXME throw some exception
-+ }
-+ }
-+ else
-+ {
-+ seq = SequencePtr.Allocate(0, sizeof(int));
-+ }
-+ *(SequencePtr *)unoData = seq;
-+ }
-+ break;
-+ case TypeClass.INTERFACE:
-+ {
-+ if (assign && *(void **)unoData != null)
-+ uno.Binary.Interface.Release(new IntPtr(*(void **)unoData));
-+
-+ if (managedData == null)
-+ *(void **)unoData = null;
-+ else
-+ {
-+ TypeDescription *td = null; // FIXME leak
-+ TypeDescriptionReference.GetDescription(&td, (TypeDescriptionReference *)type);
-+ *(void **)unoData = MapManagedToUno(managedData, td).ToPointer();
-+ }
-+ break;
-+ }
-+ default:
-+ // FIXME throw some exception
-+ break;
-+ }
-+ }
-+
-+ unsafe void MapToManaged(ref object managedData, void *unoData,
-+ TypeDescriptionReference *type, Type info, bool dontCreateObj)
-+ {
-+ switch (type->eTypeClass)
-+ {
-+ case TypeClass.CHAR:
-+ managedData = (char)*(ushort *)unoData;
-+ break;
-+ case TypeClass.BOOLEAN:
-+ managedData = (*(byte *)unoData != 0);
-+ break;
-+ case TypeClass.BYTE:
-+ managedData = *(byte *)unoData;
-+ break;
-+ case TypeClass.SHORT:
-+ managedData = *(short *)unoData;
-+ break;
-+ case TypeClass.UNSIGNED_SHORT:
-+ managedData = *(ushort *)unoData;
-+ break;
-+ case TypeClass.LONG:
-+ managedData = *(int *)unoData;
-+ break;
-+ case TypeClass.UNSIGNED_LONG:
-+ managedData = *(uint *)unoData;
-+ break;
-+ case TypeClass.HYPER:
-+ managedData = *(long *)unoData;
-+ break;
-+ case TypeClass.UNSIGNED_HYPER:
-+ managedData = *(ulong *)unoData;
-+ break;
-+ case TypeClass.FLOAT:
-+ managedData = *(float *)unoData;
-+ break;
-+ case TypeClass.DOUBLE:
-+ managedData = *(double *)unoData;
-+ break;
-+ case TypeClass.STRING:
-+ managedData = UString.UStringToString(*(UString **)unoData);
-+ break;
-+ case TypeClass.TYPE:
-+ managedData = MapUnoType(*(TypeDescriptionReference **)unoData);
-+ break;
-+ case TypeClass.ANY:
-+ {
-+ uno.Binary.Any *binAny = (uno.Binary.Any *)unoData;
-+ if (binAny->pType->eTypeClass != TypeClass.VOID)
-+ {
-+ object value = null;
-+ MapToManaged(ref value, binAny->pData, binAny->pType, null, false);
-+ managedData = new uno.Any(MapUnoType(binAny->pType), value);
-+ }
-+ else
-+ {
-+ managedData = uno.Any.VOID;
-+ }
-+ break;
-+ }
-+ case TypeClass.ENUM:
-+ if (info != null)
-+ managedData = Enum.ToObject(
-+ info.GetElementType(), *(int *)unoData);
-+ else
-+ managedData = Enum.ToObject(
-+ MapUnoType(type), *(int *)unoData);
-+ break;
-+ case TypeClass.STRUCT:
-+ case TypeClass.EXCEPTION:
-+ {
-+ TypeDescription *td = null; // FIXME leak
-+ TypeDescriptionReference.GetDescription(&td, (TypeDescriptionReference *)type);
-+ CompoundTypeDescription *compTD = (CompoundTypeDescription *)td;
-+
-+ if (((TypeDescription *)compTD)->bComplete == 0)
-+ TypeDescription.Complete((TypeDescription **)&compTD);
-+
-+ // create the type
-+ Type managedType = LoadCliType(td->pTypeName);
-+
-+ // detect if we recursivly convert inherited
-+ // structures. If this point is reached because of a
-+ // recursive call during converting a struct then we must
-+ // not create a new object rather we use the one in
-+ // cli_data argument.
-+ object managedObject;
-+ if (dontCreateObj)
-+ managedObject = managedData;
-+ else
-+ {
-+ // Special handling for Exception conversion. We must
-+ // call constructor System::Exception to pass the
-+ // message string
-+ if (typeof(unoidl.com.sun.star.uno.Exception).IsAssignableFrom(managedType))
-+ {
-+ // We need to get the Message field. Therefore we
-+ // must obtain the offset from the
-+ // typedescription. The base interface of all
-+ // exceptions is com::sun::star::uno::Exception
-+ // which contains the message
-+ CompoundTypeDescription *pCTD = compTD;
-+ while (pCTD->pBaseTypeDescription != null)
-+ pCTD = pCTD->pBaseTypeDescription;
-+
-+ int pos = -1;
-+ for (int i = 0; i < pCTD->nMembers; ++i)
-+ {
-+ if (UString.UStringToString(pCTD->ppMemberNames[i]) == "Message")
-+ {
-+ pos = i;
-+ break;
-+ }
-+ }
-+
-+ int offset = pCTD->pMemberOffsets[pos];
-+ // With the offset within the exception we can get
-+ // the message string
-+ string message = UString.UStringToString(
-+ (*(UString **)((byte *)unoData + offset)));
-+ // We need to find a constructor for the exception
-+ // that takes the message string. We assume that
-+ // the first argument is the message string
-+ ConstructorInfo[] ctorInfos = managedType.GetConstructors();
-+ ConstructorInfo ctorInfo = null;
-+ // Constructor must at least have 2 params for the base
-+ // unoidl.com.sun.star.uno.Exception (String, Object);
-+ int numArgs = -1;
-+ foreach (ConstructorInfo ci in ctorInfos)
-+ {
-+ numArgs = ci.GetParameters().Length;
-+ if (numArgs < 2)
-+ continue;
-+ ctorInfo = ci;
-+ break;
-+ }
-+
-+ // Prepare parameters for constructor
-+ object[] args = new object[numArgs];
-+ // only initialize the first argument with the
-+ // message. All unoidl.<Foo Exception>s are
-+ // autogenerated, we know that this is safe.
-+ args[0] = message;
-+ managedObject = ctorInfo.Invoke(args);
-+ }
-+ else
-+ managedObject = Activator.CreateInstance(managedType);
-+ }
-+
-+ TypeDescriptionReference **memberTypeRefs = compTD->ppTypeRefs;
-+ int *memberOffsets = compTD->pMemberOffsets;
-+
-+ if (compTD->pBaseTypeDescription != null)
-+ {
-+ // convert inherited struct
-+ // cliObj is passed inout (args in_param, out_param are true), hence the passed
-+ // cliObj is used by the callee instead of a newly created struct
-+ MapToManaged(ref managedObject, unoData,
-+ ((TypeDescription *)compTD->pBaseTypeDescription)->pWeakRef,
-+ null,
-+ true);
-+ }
-+ for (int i = compTD->nMembers - 1; i >= 0; --i)
-+ {
-+ TypeDescriptionReference *memberType = memberTypeRefs[i];
-+ string memberName = UString.UStringToString(compTD->ppMemberNames[i]);
-+ FieldInfo fieldInfo = managedType.GetField(memberName);
-+ // special case for Exception.Message. The field has already been
-+ // set while constructing cli object
-+ if (fieldInfo == null &&
-+ UString.UStringToString(type->pTypeName) == "com.sun.star.uno.Exception")
-+ continue;
-+
-+ void *p = (byte *)unoData + memberOffsets[i];
-+ switch (memberType->eTypeClass)
-+ {
-+ case TypeClass.CHAR:
-+ fieldInfo.SetValue(managedObject, (char)*(short *)p);
-+ break;
-+ case TypeClass.BOOLEAN:
-+ fieldInfo.SetValue(managedObject, (*(byte *)p) != 0);
-+ break;
-+ case TypeClass.BYTE:
-+ fieldInfo.SetValue(managedObject, *(byte *)p);
-+ break;
-+ case TypeClass.SHORT:
-+ fieldInfo.SetValue(managedObject, *(short *)p);
-+ break;
-+ case TypeClass.UNSIGNED_SHORT:
-+ fieldInfo.SetValue(managedObject, *(ushort *)p);
-+ break;
-+ case TypeClass.LONG:
-+ fieldInfo.SetValue(managedObject, *(int *)p);
-+ break;
-+ case TypeClass.UNSIGNED_LONG:
-+ fieldInfo.SetValue(managedObject, *(uint *)p);
-+ break;
-+ case TypeClass.HYPER:
-+ fieldInfo.SetValue(managedObject, *(long *)p);
-+ break;
-+ case TypeClass.UNSIGNED_HYPER:
-+ fieldInfo.SetValue(managedObject, *(ulong *)p);
-+ break;
-+ case TypeClass.FLOAT:
-+ fieldInfo.SetValue(managedObject, *(float *)p);
-+ break;
-+ case TypeClass.DOUBLE:
-+ fieldInfo.SetValue(managedObject, *(double *)p);
-+ break;
-+ default:
-+ {
-+ object managedValue = null;
-+ MapToManaged(ref managedValue, p, memberType, null, false);
-+ fieldInfo.SetValue(managedObject, managedValue);
-+ break;
-+ }
-+ }
-+ }
-+ managedData = managedObject;
-+ break;
-+ }
-+ case TypeClass.SEQUENCE:
-+ {
-+ SequencePtr seq = *(SequencePtr *)unoData;
-+ int length = seq.nElements;
-+
-+ TypeDescription *td = null; // FIXME leak
-+ TypeDescriptionReference.GetDescription(&td, (TypeDescriptionReference *)type);
-+ TypeDescriptionReference *elementType = ((IndirectTypeDescription *)td)->pType;
-+
-+ switch (elementType->eTypeClass)
-+ {
-+ case TypeClass.CHAR:
-+ {
-+ char[] array = new char[length];
-+ Marshal.Copy(seq.elementsPtr, array, 0, length);
-+ managedData = array;
-+ break;
-+ }
-+ case TypeClass.BOOLEAN:
-+ {
-+ bool[] array = new bool[length];
-+ byte *source = (byte *)seq.elementsPtr;
-+ if (length > 0) fixed (bool *arrayPtr = array)
-+ {
-+ bool *dest = arrayPtr;
-+ for (int i = 0; i < length; ++i)
-+ *dest++ = (*source++ != 0);
-+ }
-+ managedData = array;
-+ break;
-+ }
-+ case TypeClass.BYTE:
-+ {
-+ byte[] array = new byte[length];
-+ byte *source = (byte *)seq.elementsPtr;
-+ if (length > 0) fixed (byte *arrayPtr = array)
-+ {
-+ byte *dest = arrayPtr;
-+ for (int i = 0; i < length; ++i)
-+ *dest++ = *source++;
-+ }
-+ managedData = array;
-+ break;
-+ }
-+ case TypeClass.SHORT:
-+ {
-+ short[] array = new short[length];
-+ Marshal.Copy(seq.elementsPtr, array, 0, length);
-+ managedData = array;
-+ break;
-+ }
-+ case TypeClass.UNSIGNED_SHORT:
-+ {
-+ ushort[] array = new ushort[length];
-+ ushort *source = (ushort *)seq.elementsPtr;
-+ if (length > 0) fixed (ushort *arrayPtr = array)
-+ {
-+ ushort *dest = arrayPtr;
-+ for (int i = 0; i < length; ++i)
-+ *dest++ = *source++;
-+ }
-+ managedData = array;
-+ break;
-+ }
-+ case TypeClass.LONG:
-+ {
-+ int[] array = new int[length];
-+ Marshal.Copy(seq.elementsPtr, array, 0, length);
-+ managedData = array;
-+ break;
-+ }
-+ case TypeClass.UNSIGNED_LONG:
-+ {
-+ uint[] array = new uint[length];
-+ uint *source = (uint *)seq.elementsPtr;
-+ if (length > 0) fixed (uint *arrayPtr = array)
-+ {
-+ uint *dest = arrayPtr;
-+ for (int i = 0; i < length; ++i)
-+ *dest++ = *source++;
-+ }
-+ managedData = array;
-+ break;
-+ }
-+ case TypeClass.HYPER:
-+ {
-+ long[] array = new long[length];
-+ Marshal.Copy(seq.elementsPtr, array, 0, length);
-+ managedData = array;
-+ break;
-+ }
-+ case TypeClass.UNSIGNED_HYPER:
-+ {
-+ ulong[] array = new ulong[length];
-+ ulong *source = (ulong *)seq.elementsPtr;
-+ if (length > 0) fixed (ulong *arrayPtr = array)
-+ {
-+ ulong *dest = arrayPtr;
-+ for (int i = 0; i < length; ++i)
-+ *dest++ = *source++;
-+ }
-+ managedData = array;
-+ break;
-+ }
-+ case TypeClass.FLOAT:
-+ {
-+ float[] array = new float[length];
-+ Marshal.Copy(seq.elementsPtr, array, 0, length);
-+ managedData = array;
-+ break;
-+ }
-+ case TypeClass.DOUBLE:
-+ {
-+ double[] array = new double[length];
-+ Marshal.Copy(seq.elementsPtr, array, 0, length);
-+ managedData = array;
-+ break;
-+ }
-+ case TypeClass.STRING:
-+ {
-+ string[] array = new string[length];
-+ for (int i = 0; i < length; ++i)
-+ {
-+ UString *us = ((UString **)seq.elementsPtr)[i];
-+ array[i] = UString.UStringToString(us);
-+ }
-+ managedData = array;
-+ break;
-+ }
-+ case TypeClass.TYPE:
-+ {
-+ Type[] array = new Type[length];
-+ for (int i = 0; i < length; ++i)
-+ array[i] = MapUnoType(((TypeDescriptionReference **)
-+ seq.elementsPtr)[i]);
-+ managedData = array;
-+ break;
-+ }
-+ case TypeClass.ANY:
-+ {
-+ uno.Any[] array = new uno.Any[length];
-+ uno.Binary.Any *binAny = (uno.Binary.Any *)seq.elementsPtr;
-+ for (int i = 0; i < length; ++i)
-+ {
-+ object any = new uno.Any();
-+ MapToManaged(ref any, (void **)(binAny + i),
-+ (TypeDescriptionReference *)elementType,
-+ null, false);
-+ array[i] = (uno.Any)any;
-+ }
-+ managedData = array;
-+ break;
-+ }
-+ case TypeClass.ENUM:
-+ {
-+ Type enumType = null;
-+ if (info != null)
-+ {
-+ enumType = info.GetElementType();
-+ // enumType is EnumType[], get EnumType
-+ enumType = enumType.GetElementType();
-+ }
-+ else
-+ enumType = MapUnoType(elementType);
-+
-+ Array array = Array.CreateInstance(enumType, length);
-+ for (int i = 0; i < length; ++i)
-+ {
-+ array.SetValue(Enum.ToObject(enumType,
-+ ((int *)seq.elementsPtr)[i]),
-+ i);
-+ }
-+ managedData = array;
-+ break;
-+ }
-+ case TypeClass.STRUCT:
-+ case TypeClass.EXCEPTION:
-+ {
-+ Array array = Array.CreateInstance(MapUnoType(elementType), length);
-+ if (length > 0)
-+ {
-+ // FIXME check this
-+ byte *p = (byte *)seq.elementsPtr;
-+ int size = ((TypeDescription *)elementType)->nSize;
-+ for (int i = 0; i < length; ++i)
-+ {
-+ object val = null;
-+ MapToManaged(ref val, p + (size * i), elementType, null, false);
-+ array.SetValue(val, i);
-+ }
-+ }
-+ managedData = array;
-+ break;
-+ }
-+ // FIXME verify (says cli_data.cxx)
-+ case TypeClass.SEQUENCE:
-+ {
-+ Array array = Array.CreateInstance(
-+ MapUnoType(elementType), length);
-+ if (length > 0)
-+ {
-+ SequencePtr *elements = (SequencePtr *)seq.elementsPtr;
-+ for (int i = 0; i < length; ++i)
-+ {
-+ object val = null;
-+ MapToManaged(ref val, elements + i, elementType, null, false);
-+ array.SetValue(val, i);
-+ }
-+ }
-+ managedData = array;
-+ break;
-+ }
-+ case TypeClass.INTERFACE:
-+ {
-+ Type ifaceType = MapUnoType(elementType);
-+ Array array = Array.CreateInstance(ifaceType, length);
-+
-+ byte *p = (byte *)seq.elementsPtr;
-+ int size = ((TypeDescription *)elementType)->nSize;
-+ for (int i = 0; i < length; ++i)
-+ {
-+ object val = null;
-+ MapToManaged(ref val, p + (size * i), elementType, null, false);
-+ array.SetValue(val, i);
-+ }
-+ managedData = array;
-+ break;
-+ }
-+ default:
-+ {
-+ // FIXME throw some exception
-+ break;
-+ }
-+ }
-+ break;
-+ }
-+ case TypeClass.INTERFACE:
-+ {
-+ IntPtr unoI = new IntPtr(*(void **)unoData);
-+ if (unoI != IntPtr.Zero)
-+ {
-+ TypeDescription *td = null; // FIXME leak
-+ TypeDescriptionReference.GetDescription(&td, type);
-+ managedData = MapUnoToManaged(unoI, (InterfaceTypeDescription *)td);
-+ }
-+ else
-+ managedData = null;
-+ break;
-+ }
-+ default:
-+ {
-+ // FIXME throw some exception
-+ break;
-+ }
-+ }
-+ }
-+
-+ public static Type MapUnoType(TypeDescription *TD)
-+ {
-+ return MapUnoType(TD->pWeakRef);
-+ }
-+
-+ public static Type MapUnoType(TypeDescriptionReference *TD)
-+ {
-+ Type result;
-+
-+ switch(TD->eTypeClass)
-+ {
-+ case TypeClass.VOID:
-+ result = typeof(void);
-+ break;
-+ case TypeClass.CHAR:
-+ result = typeof(char);
-+ break;
-+ case TypeClass.BOOLEAN:
-+ result = typeof(bool);
-+ break;
-+ case TypeClass.BYTE:
-+ result = typeof(byte);
-+ break;
-+ case TypeClass.SHORT:
-+ result = typeof(short);
-+ break;
-+ case TypeClass.UNSIGNED_SHORT:
-+ result = typeof(ushort);
-+ break;
-+ case TypeClass.LONG:
-+ result = typeof(int);
-+ break;
-+ case TypeClass.UNSIGNED_LONG:
-+ result = typeof(uint);
-+ break;
-+ case TypeClass.HYPER:
-+ result = typeof(long);
-+ break;
-+ case TypeClass.UNSIGNED_HYPER:
-+ result = typeof(ulong);
-+ break;
-+ case TypeClass.FLOAT:
-+ result = typeof(float);
-+ break;
-+ case TypeClass.DOUBLE:
-+ result = typeof(double);
-+ break;
-+ case TypeClass.STRING:
-+ result = typeof(string);
-+ break;
-+ case TypeClass.TYPE:
-+ result = typeof(Type);
-+ break;
-+ case TypeClass.ANY:
-+ result = typeof(uno.Any);
-+ break;
-+ case TypeClass.ENUM:
-+ case TypeClass.STRUCT:
-+ case TypeClass.EXCEPTION:
-+ result = LoadCliType(TD->pTypeName);
-+ break;
-+ case TypeClass.INTERFACE:
-+ // special handling for XInterface, since it does not exist in cli.
-+ if (UString.UStringToString(TD->pTypeName) == "com.sun.star.uno.XInterface")
-+ result = typeof(object);
-+ else
-+ result = LoadCliType(TD->pTypeName);
-+ break;
-+ case TypeClass.SEQUENCE:
-+ {
-+ TypeDescription *seqType = null; // FIXME leak
-+ TypeDescriptionReference.GetDescription(&seqType, TD);
-+
-+ // FIXME do something with TD here?
-+ TypeDescriptionReference *elementTDRef =
-+ ((IndirectTypeDescription *)seqType)->pType;
-+
-+ switch (elementTDRef->eTypeClass)
-+ {
-+ case TypeClass.CHAR:
-+ result = Type.GetType("System.Char[]");
-+ break;
-+ case TypeClass.BOOLEAN:
-+ result = Type.GetType("System.Boolean[]");
-+ break;
-+ case TypeClass.BYTE:
-+ result = Type.GetType("System.Byte[]");
-+ break;
-+ case TypeClass.SHORT:
-+ result = Type.GetType("System.Int16[]");
-+ break;
-+ case TypeClass.UNSIGNED_SHORT:
-+ result = Type.GetType("System.UInt16[]");
-+ break;
-+ case TypeClass.LONG:
-+ result = Type.GetType("System.Int32[]");
-+ break;
-+ case TypeClass.UNSIGNED_LONG:
-+ result = Type.GetType("System.UInt32[]");
-+ break;
-+ case TypeClass.HYPER:
-+ result = Type.GetType("System.Int64[]");
-+ break;
-+ case TypeClass.UNSIGNED_HYPER:
-+ result = Type.GetType("System.UInt64[]");
-+ break;
-+ case TypeClass.FLOAT:
-+ result = Type.GetType("System.Single[]");
-+ break;
-+ case TypeClass.DOUBLE:
-+ result = Type.GetType("System.Double[]");
-+ break;
-+ case TypeClass.STRING:
-+ result = Type.GetType("System.String[]");
-+ break;
-+ case TypeClass.TYPE:
-+ result = Type.GetType("System.Type[]");
-+ break;
-+ case TypeClass.ANY:
-+ case TypeClass.ENUM:
-+ case TypeClass.EXCEPTION:
-+ case TypeClass.STRUCT:
-+ case TypeClass.INTERFACE:
-+ case TypeClass.SEQUENCE:
-+ result = LoadCliType(TD->pTypeName);
-+ break;
-+ default:
-+ // FIXME can't happen
-+ result = null;
-+ break;
-+ }
-+ break;
-+ }
-+ default:
-+ // FIXME can't happen
-+ result = null;
-+ break;
-+ }
-+ return result;
-+ }
-+
-+ public static Type LoadCliType(UString* unoName)
-+ {
-+ return LoadCliType(MapUnoTypeName(UString.UStringToString(unoName)));
-+ }
-+
-+ public static Type LoadCliType(string unoName)
-+ {
-+ Type result = null;
-+ bool isPolymorphic = false;
-+
-+ string loadName = unoName;
-+ int index = unoName.IndexOf('<');
-+ if (index != -1)
-+ {
-+ loadName = unoName.Substring(0, index);
-+ isPolymorphic = true;
-+ }
-+
-+ result = Type.GetType(loadName + ",cli_types");
-+
-+ if (result == null)
-+ result = Type.GetType(loadName + ",cli_basetypes");
-+
-+ if (result == null)
-+ result = Type.GetType(loadName, false);
-+
-+ if (result == null)
-+ {
-+ foreach (Assembly a in AppDomain.CurrentDomain.GetAssemblies())
-+ {
-+ result = a.GetType(loadName, false);
-+ if (result != null)
-+ break;
-+ }
-+ }
-+
-+ if (result == null)
-+ // FIXME don't use generic Exception type
-+ throw new Exception("A type could not be loaded: " + loadName);
-+
-+ if (isPolymorphic)
-+ result = uno.PolymorphicType.GetType(result, unoName);
-+
-+ return result;
-+ }
-+
-+ static TypeDescriptionReference *MapManagedType(Type managedType)
-+ {
-+ TypeDescriptionReference *result = null;
-+ if (managedType == null)
-+ {
-+ result = *TypeDescriptionReference.GetByTypeClass(TypeClass.VOID);
-+ TypeDescriptionReference.Acquire(result);
-+ return result;
-+ }
-+
-+ // check for Enum first,
-+ // because otherwise case System.TypeCode.Int32 applies
-+ if (managedType.IsEnum)
-+ {
-+ UString* unoTypeName = MapManagedTypeName(managedType.FullName);
-+ TypeDescriptionReference.New(&result, TypeClass.ENUM, unoTypeName);
-+ TypeDescriptionReference.Acquire(result);
-+ }
-+ else
-+ {
-+ switch (System.Type.GetTypeCode(managedType))
-+ {
-+ case System.TypeCode.Boolean:
-+ result = *TypeDescriptionReference.GetByTypeClass(TypeClass.BOOLEAN);
-+ TypeDescriptionReference.Acquire(result);
-+ break;
-+ case System.TypeCode.Char:
-+ result = *TypeDescriptionReference.GetByTypeClass(TypeClass.CHAR);
-+ TypeDescriptionReference.Acquire(result);
-+ break;
-+ case System.TypeCode.Byte:
-+ result = *TypeDescriptionReference.GetByTypeClass(TypeClass.BYTE);
-+ TypeDescriptionReference.Acquire(result);
-+ break;
-+ case System.TypeCode.Int16:
-+ result = *TypeDescriptionReference.GetByTypeClass(TypeClass.SHORT);
-+ TypeDescriptionReference.Acquire(result);
-+ break;
-+ case System.TypeCode.Int32:
-+ result = *TypeDescriptionReference.GetByTypeClass(TypeClass.LONG);
-+ TypeDescriptionReference.Acquire(result);
-+ break;
-+ case System.TypeCode.Int64:
-+ result = *TypeDescriptionReference.GetByTypeClass(TypeClass.HYPER);
-+ TypeDescriptionReference.Acquire(result);
-+ break;
-+ case System.TypeCode.UInt16:
-+ result = *TypeDescriptionReference.GetByTypeClass(TypeClass.UNSIGNED_SHORT);
-+ TypeDescriptionReference.Acquire(result);
-+ break;
-+ case System.TypeCode.UInt32:
-+ result = *TypeDescriptionReference.GetByTypeClass(TypeClass.UNSIGNED_LONG);
-+ TypeDescriptionReference.Acquire(result);
-+ break;
-+ case System.TypeCode.UInt64:
-+ result = *TypeDescriptionReference.GetByTypeClass(TypeClass.UNSIGNED_HYPER);
-+ TypeDescriptionReference.Acquire(result);
-+ break;
-+ case System.TypeCode.Single:
-+ result = *TypeDescriptionReference.GetByTypeClass(TypeClass.FLOAT);
-+ TypeDescriptionReference.Acquire(result);
-+ break;
-+ case System.TypeCode.Double:
-+ result = *TypeDescriptionReference.GetByTypeClass(TypeClass.DOUBLE);
-+ TypeDescriptionReference.Acquire(result);
-+ break;
-+ case System.TypeCode.String:
-+ result = *TypeDescriptionReference.GetByTypeClass(TypeClass.STRING);
-+ TypeDescriptionReference.Acquire(result);
-+ break;
-+ }
-+ }
-+
-+ if (result == null)
-+ {
-+ string managedTypeName = managedType.FullName;
-+ if (managedTypeName == "System.Void")
-+ {
-+ result = *TypeDescriptionReference.GetByTypeClass(TypeClass.VOID);
-+ TypeDescriptionReference.Acquire(result);
-+ }
-+ else if (managedTypeName == "System.Type")
-+ {
-+ result = *TypeDescriptionReference.GetByTypeClass(TypeClass.TYPE);
-+ TypeDescriptionReference.Acquire(result);
-+ }
-+ else if (managedTypeName == "uno.Any")
-+ {
-+ result = *TypeDescriptionReference.GetByTypeClass(TypeClass.ANY);
-+ TypeDescriptionReference.Acquire(result);
-+ }
-+ else
-+ {
-+ UString* unoTypeName;
-+
-+ uno.PolymorphicType poly = managedType as uno.PolymorphicType;
-+ if (poly != null)
-+ unoTypeName = MapManagedTypeName(poly.PolymorphicName);
-+ else
-+ unoTypeName = MapManagedTypeName(managedTypeName);
-+
-+ TypeDescription *td = null;
-+ TypeDescription.GetByName(&td, unoTypeName);
-+ if (td != null)
-+ {
-+ result = td->pWeakRef;
-+ TypeDescriptionReference.Acquire(result);
-+ TypeDescription.Release(td);
-+ }
-+ }
-+ }
-+
-+ if (result == null)
-+ {
-+ // FIXME - quite probably we should throw an exception here instead.
-+ result = *TypeDescriptionReference.GetByTypeClass(TypeClass.VOID);
-+ TypeDescriptionReference.Acquire(result);
-+ }
-+
-+ return result;
-+ }
-+
-+ static string MapUnoTypeName(string typeName)
-+ {
-+ StringBuilder buf = new StringBuilder();
-+
-+ // determine if the type is a sequence and its dimensions
-+ int dims = 0;
-+ if (typeName[0] == '[')
-+ {
-+ int index = 1;
-+ while (true)
-+ {
-+ if (typeName[index++] == ']')
-+ ++dims;
-+ if (typeName[index++] != '[')
-+ break;
-+ }
-+ typeName = typeName.Substring(index - 1);
-+ }
-+
-+ switch (typeName)
-+ {
-+ case "boolean":
-+ buf.Append("System.Boolean");
-+ break;
-+ case "char":
-+ buf.Append("System.Char");
-+ break;
-+ case "byte":
-+ buf.Append("System.Byte");
-+ break;
-+ case "short":
-+ buf.Append("System.Int16");
-+ break;
-+ case "unsigned short":
-+ buf.Append("System.UInt16");
-+ break;
-+ case "long":
-+ buf.Append("System.Int32");
-+ break;
-+ case "unsigned long":
-+ buf.Append("System.UInt32");
-+ break;
-+ case "hyper":
-+ buf.Append("System.Int64");
-+ break;
-+ case "unsigned hyper":
-+ buf.Append("System.UInt64");
-+ break;
-+ case "float":
-+ buf.Append("System.Single");
-+ break;
-+ case "double":
-+ buf.Append("System.Double");
-+ break;
-+ case "string":
-+ buf.Append("System.String");
-+ break;
-+ case "void":
-+ buf.Append("System.Void");
-+ break;
-+ case "type":
-+ buf.Append("System.Type");
-+ break;
-+ case "com.sun.star.uno.XInterface":
-+ buf.Append("System.Object");
-+ break;
-+ case "any":
-+ buf.Append("uno.Any");
-+ break;
-+ default:
-+ // put "unoidl." at the beginning
-+ buf.Append("unoidl.");
-+ // for polymorphic struct types remove the brackets, e.g. mystruct<bool> -> mystruct
-+ buf.Append(MapUnoPolymorphicName(typeName));
-+ break;
-+ }
-+
-+ // append []
-+ for ( ; dims > 0; --dims)
-+ buf.Append("[]");
-+
-+ return buf.ToString();
-+ }
-+
-+ /** For example, there is a uno type
-+ com.sun.star.Foo<char, long>.
-+ The values in the type list
-+ are uno types and are replaced by cli types, such as System.Char,
-+ System.Int32, etc.
-+ */
-+ static string MapUnoPolymorphicName(string unoName)
-+ {
-+ int startIndex = unoName.LastIndexOf('<');
-+ if (startIndex == -1)
-+ return unoName;
-+
-+ // get the type list within < and >
-+ int endIndex = unoName.LastIndexOf('>');
-+ string list = unoName.Substring(startIndex + 1, endIndex - startIndex - 1);
-+
-+ // parse the type list and replace the types with the corresponding CLI types
-+ char[] delimiters = new char[] { ',' };
-+ string[] unoTypes = list.Split(delimiters);
-+
-+ StringBuilder builder = new StringBuilder(unoName.Substring(0, startIndex + 1));
-+
-+ int typeCount = unoTypes.Length;
-+ for (int i = 0; i < typeCount; ++i)
-+ builder.Append(MapUnoTypeName(unoTypes[i]));
-+
-+ builder.Append('>');
-+ return builder.ToString();
-+ }
-+
-+ static UString* MapManagedTypeName(string typeName)
-+ {
-+ int dims = 0;
-+ int index = 0;
-+
-+ if ((index = typeName.IndexOf("[]")) > 0)
-+ {
-+ dims = 1;
-+
-+ int curIndex = index;
-+ while ((curIndex + 2) < typeName.Length &&
-+ (curIndex = typeName.IndexOf("[]", curIndex + 2)) > 0)
-+ ++dims;
-+
-+ // get the element name by removing the brackets
-+ typeName = typeName.Substring(0, index);
-+ }
-+
-+ StringBuilder buf = new StringBuilder(256);
-+ for (; dims > 0; --dims)
-+ buf.Append("[]");
-+
-+ switch (typeName)
-+ {
-+ case "System.Boolean":
-+ buf.Append("boolean");
-+ break;
-+ case "System.Char":
-+ buf.Append("char");
-+ break;
-+ case "System.Byte":
-+ buf.Append("byte");
-+ break;
-+ case "System.Int16":
-+ buf.Append("short");
-+ break;
-+ case "System.UInt16":
-+ buf.Append("unsigned short");
-+ break;
-+ case "System.Int32":
-+ buf.Append("long");
-+ break;
-+ case "System.UInt32":
-+ buf.Append("unsigned long");
-+ break;
-+ case "System.Int64":
-+ buf.Append("hyper");
-+ break;
-+ case "System.UInt64":
-+ buf.Append("unsigned hyper");
-+ break;
-+ case "System.Single":
-+ buf.Append("float");
-+ break;
-+ case "System.Double":
-+ buf.Append("double");
-+ break;
-+ case "System.String":
-+ buf.Append("string");
-+ break;
-+ case "System.Void":
-+ buf.Append("void");
-+ break;
-+ case "System.Type":
-+ buf.Append("type");
-+ break;
-+ case "System.Object":
-+ buf.Append("com.sun.star.uno.XInterface");
-+ break;
-+ case "uno.Any":
-+ buf.Append("any");
-+ break;
-+ default:
-+ {
-+ string name = MapManagedPolymorphicName(typeName);
-+ int i = name.IndexOf('.');
-+ buf.Append(name.Substring(i + 1));
-+ break;
-+ }
-+ }
-+
-+ UString *rtl_uString = null;
-+ UString.NewFromStringBuilder(&rtl_uString, buf);
-+ return rtl_uString;
-+ }
-+
-+ static string MapManagedPolymorphicName(string unoName)
-+ {
-+ int startIndex = unoName.LastIndexOf('<');
-+ if (startIndex == -1)
-+ return unoName;
-+
-+ // get the type list withing < and >
-+ int endIndex = unoName.LastIndexOf('>');
-+ string list = unoName.Substring(startIndex + 1, endIndex - startIndex - 1);
-+
-+ // parse the type list and replace the types with the corresponding CLI types
-+ char[] delimiters = new char[] { ',' };
-+ string[] unoTypes = list.Split(delimiters);
-+
-+ StringBuilder builder = new StringBuilder(unoName.Substring(0, startIndex + 1));
-+
-+ int typeCount = unoTypes.Length;
-+ for (int i = 0; i < typeCount; ++i)
-+ builder.Append(UString.UStringToString(MapManagedTypeName(unoTypes[i])));
-+ builder.Append('>');
-+ return builder.ToString();
-+ }
-+
-+ [StructLayout(LayoutKind.Explicit)]
-+ private unsafe struct largest
-+ {
-+ [FieldOffset(0)] long n;
-+ [FieldOffset(0)] double d;
-+ [FieldOffset(0)] void *p;
-+ [FieldOffset(0)] uno.Binary.Any a;
-+ }
-+
-+ // FIXME args[i] must be of same type as return value
-+ public unsafe uno.Any CallUno(IntPtr unoInterface, TypeDescription *memberTD,
-+ TypeDescriptionReference *returnType, int nParams,
-+ MethodParameter *parameters, object[] args,
-+ Type[] argTypes, out uno.Any exception)
-+ {
-+ int returnSize = sizeof(largest);
-+
-+ if (returnType != null &&
-+ (returnType->eTypeClass == TypeClass.STRUCT ||
-+ returnType->eTypeClass == TypeClass.EXCEPTION))
-+ {
-+ // FIXME leak
-+ TypeDescription *td = null;
-+ TypeDescriptionReference.GetDescription(&td, returnType);
-+
-+ if (td->nSize > returnSize)
-+ returnSize = td->nSize;
-+ }
-+
-+ // Prepare memory that contains all converted arguments and
-+ // return values. The memory block contains first pointers to
-+ // the arguments which are in the same block For example, 2
-+ // arguments, 1 ret.
-+ //
-+ // | Pointer
-+ // | Pointer
-+ // | Return value
-+ // | Arg 1
-+ // | Arg 2
-+ //
-+ // If an argument is larger then struct largest, such as some
-+ // structures, then the pointer points to an extra block of
-+ // memory. The same goes for a big return value.
-+ // FIXME the last sentence is bullshit. Get it deleted from cli_uno ;)
-+ byte *mem = stackalloc byte[nParams * sizeof(void *) +
-+ returnSize +
-+ nParams * sizeof(largest)];
-+
-+ // array of pointers to args
-+ void **unoArgPtrs = (void **)mem;
-+
-+ // Return Value
-+ void *unoRetPtr = null;
-+ largest *unoArgs = (largest *)(unoArgPtrs + nParams);
-+ if (memberTD->eTypeClass != TypeClass.INTERFACE_ATTRIBUTE || nParams != 1)
-+ {
-+ // If an attribute is set, then unoRet must be null, e.g. void setAttribute(int)
-+ unoRetPtr = (void *)unoArgs;
-+ unoArgs = (largest *)((byte *)unoRetPtr + returnSize);
-+ }
-+
-+ for (int i = 0; i < nParams; ++i)
-+ {
-+ // FIXME it's a TypeDescriptionReference
-+ TypeDescription *type = (TypeDescription *)parameters[i].pTypeRef;
-+
-+ unoArgPtrs[i] = unoArgs + i;
-+ if ((type->eTypeClass == TypeClass.STRUCT ||
-+ type->eTypeClass == TypeClass.EXCEPTION) &&
-+ (type->nSize > sizeof(largest)))
-+ {
-+ // stackalloc is only allowed in initializers
-+ byte *bigArgPtr = stackalloc byte[type->nSize];
-+
-+ unoArgPtrs[i] = bigArgPtr;
-+ }
-+
-+ if (parameters[i].bIn != 0)
-+ {
-+ // FIXME error handling
-+ MapToUno(unoArgPtrs[i], args[i], type, false /* no assign */);
-+ }
-+ }
-+
-+ uno.Binary.Any unoExceptionHolder;
-+ uno.Binary.Any *unoExc = &unoExceptionHolder;
-+
-+ // call binary uno
-+ uno.Binary.Interface.Dispatch(
-+ unoInterface, memberTD, unoRetPtr, unoArgPtrs, &unoExc);
-+
-+ if (unoExc == null)
-+ {
-+ exception = uno.Any.VOID;
-+
-+ // convert out args, destroy uno args
-+ for (int i = 0; i < nParams; ++i)
-+ {
-+ // FIXME it's a TypeDescriptionReference
-+ TypeDescription *type = (TypeDescription *)parameters[i].pTypeRef;
-+
-+ if (parameters[i].bOut != 0)
-+ {
-+ // FIXME error handling
-+ MapToManaged(ref args[i], unoArgPtrs[i], parameters[i].pTypeRef,
-+ argTypes != null ? argTypes[i] : null, false);
-+ }
-+
-+ // cleanup args
-+ if (type->eTypeClass < TypeClass.DOUBLE &&
-+ type->eTypeClass != TypeClass.ENUM) // no need to destroy these
-+ uno.Binary.Data.Destroy(unoArgPtrs[i], type, null);
-+ }
-+
-+ if (returnType != null && returnType->eTypeClass != TypeClass.VOID)
-+ {
-+ // convert uno return value
-+ object result = null;
-+ // FIXME error handling
-+ MapToManaged(ref result, unoRetPtr, returnType, null, false);
-+ uno.Binary.Data.Destroy(unoRetPtr, (TypeDescription *)returnType, null);
-+ return new uno.Any(MapUnoType(returnType), result); // FIXME is this correct?
-+ }
-+
-+ return uno.Any.VOID;
-+ }
-+ else // exception occured
-+ {
-+ for (int i = 0; i < nParams; ++i)
-+ if (parameters[i].bIn != 0)
-+ uno.Binary.Data.Destroy(unoArgPtrs[i], (TypeDescription *)parameters[i].pTypeRef, null);
-+
-+ // FIXME needs uno.Any vs System.Object clarification
-+ object exc = null;
-+ MapToManaged(ref exc, unoExceptionHolder.pData,
-+ unoExceptionHolder.pType, null, false);
-+ exception = new uno.Any(MapUnoType(unoExceptionHolder.pType), exc);
-+ return uno.Any.VOID;
-+ }
-+
-+ // FIXME error handling
-+ }
-+
-+ // FIXME rename, to say what it does, not how it does this
-+ public void RegisterWithCliEnvironment(object managedI, string oid)
-+ {
-+ managedEnvironment.registerInterface(managedI, oid);
-+ }
-+
-+ public void RegisterWithCliEnvironment(object managedI, string oid, Type type)
-+ {
-+ managedEnvironment.registerInterface(managedI, oid, type);
-+ }
-+
-+ public void RegisterWithUnoEnvironment(ref IntPtr unoInterface, string oid, InterfaceTypeDescription *TD)
-+ {
-+ UString *unoOid = null;
-+ UString.NewFromString(&unoOid, oid);
-+
-+ uno.Binary.Environment.RegisterInterface(unoEnvironment, ref unoInterface, unoOid, TD);
-+
-+ UString.Release(unoOid);
-+ }
-+
-+ public void GetInterfaceFromUnoEnvironment(ref IntPtr unoInterface, UString* unoOid, InterfaceTypeDescription* TD)
-+ {
-+ uno.Binary.Environment.GetRegisteredInterface(unoEnvironment, ref unoInterface, unoOid, TD);
-+ }
-+
-+ public void RevokeFromUnoEnvironment(IntPtr unoInterface)
-+ {
-+ throw new NotImplementedException();
-+ }
-+
-+ public unsafe IntPtr CreateManagedProxy(object managedInterface,
-+ TypeDescription* td,
-+ UString* oid)
-+ {
-+ // register original interface
-+ RegisterWithCliEnvironment(managedInterface,
-+ UString.UStringToString(oid),
-+ Bridge.MapUnoType(td));
-+
-+ ManagedProxy proxy = new ManagedProxy(this, managedInterface, td, oid);
-+ GCHandle gchandle = GCHandle.Alloc(proxy);
-+
-+ // create binary uno uno_Interface and register proxy with target environment
-+ IntPtr unoI = CreateBinaryProxyAndRegister(unoEnvironment, (IntPtr)gchandle,
-+ oid, td);
-+
-+ proxy.NativeProxy = unoI;
-+ return unoI;
-+ }
-+
-+ [ DllImport("cli_uno", EntryPoint="cli_uno_environment_createMonoProxyAndRegister") ]
-+ public static unsafe extern IntPtr CreateBinaryProxyAndRegister(
-+ IntPtr unoEnvironment,
-+ IntPtr monoProxy,
-+ /* UString */ void* oid,
-+ /* InterfaceTypeDescription */ void* td);
-+
-+ public unsafe void CallManaged(object managedI, Type ifaceType, MethodInfo method,
-+ TypeDescriptionReference* returnType,
-+ MethodParameter* parameters, int nParams, void* unoRet,
-+ void** unoArgs, uno.Binary.Any** unoExc)
-+ {
-+ object[] args = new object[nParams];
-+ for (int i = 0; i < nParams; ++i)
-+ if (parameters[i].bIn != 0)
-+ MapToManaged(ref args[i], unoArgs[i], parameters[i].pTypeRef, null, false);
-+
-+ object invocationResult = null;
-+ try
-+ {
-+ invocationResult = method.Invoke(managedI, args);
-+ }
-+ catch (TargetInvocationException e)
-+ {
-+ Exception exc = e.InnerException;
-+ TypeDescription* td = null;
-+ // FIXME leak
-+ TypeDescriptionReference.GetDescription(&td, MapManagedType(exc.GetType()));
-+ void* memExc = uno.rtl.Mem.Allocate(td->nSize);
-+ MapToUno(memExc, exc, /* FIXME !!!*/ (TypeDescription*)td->pWeakRef, false);
-+ (*unoExc)->pType = td->pWeakRef;
-+ (*unoExc)->pData = memExc;
-+ return;
-+ }
-+ catch (Exception e)
-+ {
-+ // FIXME
-+ }
-+
-+ // convert out, in/out params
-+ for (int i = 0; i < nParams; ++i)
-+ {
-+ if (parameters[i].bOut != 0)
-+ {
-+ MapToUno(
-+ unoArgs[i], args[i], /* FIXME !!! */(TypeDescription*)parameters[i].pTypeRef,
-+ parameters[i].bIn != 0 /* assign if inout */);
-+ // FIXME error handling
-+ }
-+ }
-+
-+ // return value
-+ if (returnType != null)
-+ MapToUno(unoRet, invocationResult, /* FIXME !!! */(TypeDescription*)returnType, false /* no assign */);
-+
-+ // no exception occurred
-+ *unoExc = null;
-+ }
-+}
-+
-+}
diff --git a/patches/mono/bridges-source-mono_uno-cli_environment-cs.diff b/patches/mono/bridges-source-mono_uno-cli_environment-cs.diff
deleted file mode 100644
index edbec5dbd..000000000
--- a/patches/mono/bridges-source-mono_uno-cli_environment-cs.diff
+++ /dev/null
@@ -1,207 +0,0 @@
---- /dev/null
-+++ bridges/source/mono_uno/cli_environment.cs
-@@ -0,0 +1,204 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile: $
-+ *
-+ * $Revision: $
-+ *
-+ * last change: $Author: $ $Date: $
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+namespace cli_uno
-+{
-+
-+using System;
-+using System.Collections;
-+using System.Runtime.Remoting;
-+using System.Runtime.Remoting.Proxies;
-+using System.Text;
-+
-+using com.sun.star.bridges.mono_uno;
-+
-+public class Cli_environment
-+{
-+ static string sOidPart = ";cli[0];";
-+
-+ static Hashtable m_objects = Hashtable.Synchronized(new Hashtable());
-+
-+ static string createKey(string oid, Type t)
-+ {
-+ return oid + t.FullName;
-+ }
-+
-+// FIXME setup debugging info here
-+// public Cli_environment()
-+// {
-+// }
-+
-+// FIXME assert there are no more registered objects
-+// public ~Cli_environment()
-+// {
-+// }
-+
-+ /**
-+ Registers an UNO object as being mapped by this bridge. The resulting
-+ cli object is represents all interfaces of the UNO object. Therefore the
-+ object can be registered only with its OID; a type is not necessary.
-+ */
-+ public object registerInterface(object obj, string oid)
-+ {
-+ // FIXME debugging stuff
-+ m_objects.Add(oid, obj); // new WeakReference(obj));
-+ return obj;
-+ }
-+
-+ /**
-+ Registers a CLI object as being mapped by this bridge. The resulting
-+ object represents exactly one UNO interface.
-+ */
-+ public object registerInterface(object obj, string oid, Type type)
-+ {
-+ // FIXME debugging stuff
-+ string key = createKey(oid, type);
-+ m_objects.Add(key, obj); // new WeakReference(obj));
-+ return obj;
-+ }
-+
-+ /**
-+ By revoking an interface it is declared that the respective interface has
-+ not been mapped. The proxy implementations call revoke interface in their
-+ destructors.
-+ */
-+ public void revokeInterface(string oid)
-+ {
-+ revokeInterface(oid, null);
-+ }
-+
-+ public void revokeInterface(string oid, Type type)
-+ {
-+ // FIXME debugging stuff
-+ string key = type != null ? createKey(oid, type) : oid;
-+ m_objects.Remove(key);
-+ }
-+
-+ /**
-+ * Retrieves an interface identified by its object id and type from this
-+ * environment.
-+ *
-+ * @param oid object id of interface to be retrieved
-+ * @param type the type description of the interface to be retrieved
-+ * @see com.sun.star.uno.IEnvironment#getRegisteredInterface
-+ */
-+ public object getRegisteredInterface(string oid, Type type)
-+ {
-+ // try if it is a UNO interface
-+ object ret = null;
-+ ret = m_objects[oid];
-+ if (ret == null)
-+ {
-+ // try if it is a proxy for a cli object
-+ oid = createKey(oid, type);
-+ ret = m_objects[oid];
-+ }
-+/* if (ret != null)
-+ {
-+ WeakReference weakIface = (WeakReference)ret;
-+ ret = weakIface.Target;
-+ } */
-+
-+ if (ret == null)
-+ m_objects.Remove(oid);
-+
-+ return ret;
-+ }
-+
-+ /**
-+ * Generates a worldwide unique object identifier (oid) for the given object. It is
-+ * guaranteed, that subsequent calls to the method with the same object
-+ * will give the same id.
-+ * <p>
-+ * @return the generated oid.
-+ * @param object the object for which a Oid should be generated.
-+ */
-+ public static string getObjectIdentifier(object obj)
-+ {
-+ string oid = null;
-+ RealProxy realProxy = null;
-+
-+ if (RemotingServices.IsTransparentProxy(obj))
-+ realProxy = RemotingServices.GetRealProxy(obj);
-+
-+ if (realProxy != null)
-+ {
-+ UnoInterfaceProxy proxyImpl = realProxy as UnoInterfaceProxy;
-+ if (proxyImpl != null)
-+ oid = proxyImpl.Oid;
-+ }
-+
-+ if (oid == null)
-+ {
-+ Guid gd = typeof(Cli_environment).GUID; // FIXME apparently not a good idea with mono
-+ StringBuilder buf = new StringBuilder(128);
-+ buf.Append(obj.GetHashCode());
-+ buf.Append(sOidPart);
-+ buf.Append(gd);
-+ oid = buf.ToString();
-+ }
-+
-+ return oid;
-+ }
-+
-+}
-+
-+}
diff --git a/patches/mono/bridges-source-mono_uno-makefile-mk.diff b/patches/mono/bridges-source-mono_uno-makefile-mk.diff
deleted file mode 100644
index 110de0068..000000000
--- a/patches/mono/bridges-source-mono_uno-makefile-mk.diff
+++ /dev/null
@@ -1,139 +0,0 @@
---- /dev/null
-+++ bridges/source/mono_uno/makefile.mk
-@@ -0,0 +1,136 @@
-+#*************************************************************************
-+#
-+# $RCSfile: $
-+#
-+# $Revision: $
-+#
-+# last change: $Author: $ $Date: $
-+#
-+# The Contents of this file are made available subject to the terms of
-+# either of the following licenses
-+#
-+# - GNU Lesser General Public License Version 2.1
-+# - Sun Industry Standards Source License Version 1.1
-+#
-+# Sun Microsystems Inc., October, 2000
-+#
-+# GNU Lesser General Public License Version 2.1
-+# =============================================
-+# Copyright 2000 by Sun Microsystems, Inc.
-+# 901 San Antonio Road, Palo Alto, CA 94303, USA
-+#
-+# This library is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU Lesser General Public
-+# License version 2.1, as published by the Free Software Foundation.
-+#
-+# This library 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 for more details.
-+#
-+# You should have received a copy of the GNU Lesser General Public
-+# License along with this library; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+# MA 02111-1307 USA
-+#
-+#
-+# Sun Industry Standards Source License Version 1.1
-+# =================================================
-+# The contents of this file are subject to the Sun Industry Standards
-+# Source License Version 1.1 (the "License"); You may not use this file
-+# except in compliance with the License. You may obtain a copy of the
-+# License at http://www.openoffice.org/license.html.
-+#
-+# Software provided under this License is provided on an "AS IS" basis,
-+# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+# See the License for the specific provisions governing your rights and
-+# obligations concerning the Software.
-+#
-+# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+#
-+# Copyright: 2000 by Sun Microsystems, Inc.
-+#
-+# All Rights Reserved.
-+#
-+# Contributor(s): _______________________________________
-+#
-+#
-+#
-+#*************************************************************************
-+
-+PRJ=..$/..
-+
-+PRJNAME=bridges
-+TARGET=cli_uno
-+USE_DEFFILE=TRUE
-+ENABLE_EXCEPTIONS=TRUE
-+
-+.IF "$(ENABLE_MONO)" != "YES"
-+dummy:
-+ @echo "Mono binding disabled - skipping ..."
-+.ELSE
-+
-+# --- Settings -----------------------------------------------------
-+
-+.INCLUDE : settings.mk
-+CFLAGS+=`pkg-config --cflags mono`
-+
-+# --- Files --------------------------------------------------------
-+
-+ALLTAR : \
-+ $(SHL1TARGETN) \
-+ $(BIN)$/cli_uno_bridge.dll
-+
-+CSFILES= \
-+ binaryuno.cs \
-+ bridge.cs \
-+ cli_environment.cs \
-+ managed_proxy.cs \
-+ rtl_ustring.cs \
-+ typeclass.cs \
-+ typedescription.cs \
-+ uik.cs \
-+ uno_proxy.cs
-+
-+ASSEMBLIES_DIR=$(SOLARVERSION)$/$(INPATH)$/bin$(EXT_UPDMINOR)
-+$(BIN)$/cli_uno_bridge.dll : $(CSFILES)
-+ +$(CSC) $(CSCFLAGS) \
-+ -target:library \
-+ -unsafe \
-+ -out:$@ \
-+ -reference:$(ASSEMBLIES_DIR)$/cli_basetypes.dll \
-+ -reference:$(ASSEMBLIES_DIR)$/cli_types.dll \
-+ $(CSFILES)
-+
-+SLOFILES= \
-+ $(SLO)$/mono_bridge.obj \
-+ $(SLO)$/mono_proxy.obj \
-+ $(SLO)$/uno_glue.obj
-+
-+SHL1TARGET=$(TARGET)
-+
-+SHL1STDLIBS= \
-+ $(CPPULIB) \
-+ $(SALLIB) \
-+ $(SALHELPERLIB)
-+
-+
-+SHL1STDLIBS+=`pkg-config --libs mono`
-+
-+# SHL1VERSIONMAP=..$/bridge_exports.map
-+
-+SHL1IMPLIB=i$(TARGET)
-+SHL1LIBS=$(SLB)$/$(TARGET).lib
-+SHL1DEF=$(MISC)$/$(SHL1TARGET).def
-+DEF1NAME=$(SHL1TARGET)
-+
-+
-+
-+# --- Targets ------------------------------------------------------
-+
-+.ENDIF
-+
-+.INCLUDE : target.mk
-+
diff --git a/patches/mono/bridges-source-mono_uno-managed_proxy-cs.diff b/patches/mono/bridges-source-mono_uno-managed_proxy-cs.diff
deleted file mode 100644
index 60f6d9e97..000000000
--- a/patches/mono/bridges-source-mono_uno-managed_proxy-cs.diff
+++ /dev/null
@@ -1,480 +0,0 @@
---- /dev/null
-+++ bridges/source/mono_uno/managed_proxy.cs
-@@ -0,0 +1,477 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile: $
-+ *
-+ * $Revision: $
-+ *
-+ * last change: $Author: $ $Date: $
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+namespace com.sun.star.bridges.mono_uno /* FIXME use some uno.foo namespace ? */
-+{
-+
-+using System;
-+using System.Reflection;
-+using System.Runtime;
-+
-+using uno.Typelib;
-+using uno.rtl;
-+
-+public unsafe class ManagedProxy
-+{
-+ Bridge bridge;
-+ object managedI;
-+ TypeDescription *unoType;
-+ UString* unoOid;
-+ string oid;
-+ Type type;
-+ IntPtr nativeProxy;
-+
-+ enum MethodKind {METHOD = 0, SET, GET};
-+
-+ /** The array contains MethodInfos of the cli object. Each one reflects an
-+ implemented interface method of the interface for which this proxy was
-+ created. The MethodInfos are from the object's method and not from the
-+ interface type. That is, they can be used to invoke the methods. The
-+ order of the MethodInfo objects corresponds to the order of the
-+ interface methods (see member m_type). Position 0 contains the
-+ MethodInfo of the first method of the interface which represents the
-+ root of the inheritance chain. The last MethodInfo represents the last
-+ method of the furthest derived interface.
-+
-+ The array is completely initialized in the constructor of this object.
-+
-+ When the uno_DispatchMethod is called for this proxy then it receives
-+ a typelib_TypeDescription of the member which is either an attribute
-+ (setter or getter) or method. After determining the position of the
-+ method within the UNO interface one can use the position to obtain the
-+ MethodInfo of the corresponding cli method. To obtain the index for the
-+ m_arMethodInfos array the function position has to be decreased by 3.
-+ This is becaus, the cli interface does not contain the XInterface
-+ methods.
-+ */
-+ MethodInfo[] methodInfos;
-+
-+ /** This array is similar to m_arMethodInfos but it contains the MethodInfo
-+ objects of the interface (not the object). When a call is made from uno
-+ to cli then the uno method name is compared to the cli method name. The
-+ cli method name can be obtained from the MethodInfo object in this
-+ array. The name of the actual implemented method may not be the same as
-+ the interface method.
-+ */
-+ MethodInfo[] interfaceMethodInfos;
-+
-+ /** Maps the position of the method in the UNO interface to the position of
-+ the corresponding MethodInfo in m_arMethodInfos. The Uno position must
-+ not include the XInterface methods. For example,
-+ pos 0 = XInterface::queryInterface
-+ pos 1 = XInterface::acquire
-+ pos 2 = XInterface::release
-+
-+ That is the real Uno position has to be deducted by 3. Then
-+ arUnoPosToCliPos[pos] contains the index for m_arMethodInfos.
-+
-+ */
-+ int[] unoPosToCliPos;
-+
-+ /** Count of inherited interfaces of the cli interface.
-+ */
-+ int inheritedInterfacesCount = 0;
-+ /** Contains the number of methods of each interface.
-+ */
-+ int[] interfaceMethodCounts;
-+
-+ public unsafe ManagedProxy(Bridge bridge, object managedI,
-+ TypeDescription* TD, UString* oid)
-+ {
-+ this.bridge = bridge;
-+ this.managedI = managedI;
-+ this.unoType = TD;
-+ TypeDescription.Acquire(this.unoType);
-+ this.unoOid = oid;
-+ UString.Acquire(this.unoOid);
-+ this.oid = UString.UStringToString(oid);
-+
-+ if (TD != null && TD->bComplete == 0)
-+ TypeDescription.Complete(&TD);
-+
-+ this.type = Bridge.MapUnoType(this.unoType);
-+ this.nativeProxy = IntPtr.Zero;
-+ makeMethodInfos();
-+ }
-+
-+ ~ManagedProxy()
-+ {
-+ UString.Release(this.unoOid);
-+ TypeDescription.Release(this.unoType);
-+ }
-+
-+ /** Prepares an array (m_arMethoInfos) containing MethodInfo object of the
-+ interface and all inherited interfaces. At index null is the first
-+ method of the base interface and at the last position is the last method
-+ of the furthest derived interface.
-+ If a UNO call is received then one can determine the position of the
-+ method (or getter or setter for an attribute) from the passed type
-+ information. The position minus 3 (there is no XInterface in the cli
-+ mapping) corresponds to the index of the cli interface method in the
-+ array.
-+ */
-+ void makeMethodInfos()
-+ {
-+ if (!type.IsInterface)
-+ return;
-+
-+ MethodInfo[] thisMethods = type.GetMethods();
-+ // get the inherited interfaces
-+ Type[] inheritedIfaces = type.GetInterfaces();
-+ inheritedInterfacesCount = inheritedIfaces.Length;
-+
-+ // array containing the number of methods for the interface
-+ // and its inherited interfaces
-+ interfaceMethodCounts = new int[inheritedInterfacesCount + 1];
-+
-+ // determine the number of all interface methods, including
-+ // the inherited interfaces
-+ int methodCount = thisMethods.Length;
-+ foreach (Type iface in inheritedIfaces)
-+ methodCount += iface.GetMethods().Length;
-+
-+ // array containing MethodInfos of the managed object
-+ methodInfos = new MethodInfo[methodCount];
-+
-+ // array containing MethodInfos of the interface
-+ interfaceMethodInfos = new MethodInfo[methodCount];
-+
-+ // array containing the mapping of UNO interface pos to pos in
-+ // methodInfos
-+ unoPosToCliPos = new int[methodCount];
-+
-+ for (int i = 0; i < methodCount; ++i)
-+ unoPosToCliPos[i] = -1;
-+
-+ // fill methodInfos with the mappings
-+ // !!! InterfaceMapping.TargetMethods should be MethodInfo*[] according
-+ // to documentation
-+ // but it is Type*[] instead. Bug in the framework?
-+ // FIXME ^ what does mono do?
-+ Type objType = managedI.GetType();
-+ try
-+ {
-+ int index = 0;
-+ // now get the methods from the inherited interface
-+ // inheritedIfaces[0] is the direct base interface
-+ // inheritedIfaces[n] is the furthest inherited interface
-+ // Start with the base interface
-+ for (int i = inheritedIfaces.Length - 1; i >= 0; --i)
-+ {
-+ InterfaceMapping mapInherited =
-+ objType.GetInterfaceMap(inheritedIfaces[i]);
-+
-+ interfaceMethodCounts[i] = mapInherited.TargetMethods.Length;
-+ for (int j = 0; j < interfaceMethodCounts[i]; ++j, ++index)
-+ {
-+ methodInfos[index] = mapInherited.TargetMethods[j] as MethodInfo;
-+ interfaceMethodInfos[index] =
-+ mapInherited.InterfaceMethods[j] as MethodInfo;
-+ }
-+ }
-+
-+ // At last come the methods of the furthest derived interface
-+ InterfaceMapping map = objType.GetInterfaceMap(type);
-+ interfaceMethodCounts[inheritedInterfacesCount] =
-+ map.TargetMethods.Length;
-+ for (int j = 0;
-+ j < interfaceMethodCounts[inheritedInterfacesCount]; ++j, ++index)
-+ {
-+ methodInfos[index] = map.TargetMethods[j] as MethodInfo;
-+ interfaceMethodInfos[index] =
-+ map.InterfaceMethods[j] as MethodInfo;
-+ }
-+ }
-+ catch (InvalidCastException)
-+ {
-+ // FIXME do something (can this happen, is "as" not the
-+ // proper translation for "__try_cast" ?
-+ }
-+ }
-+
-+ /**Obtains a MethodInfo which can be used to invoke the cli object.
-+ Internally it maps nUnoFunctionPos to an index that is used to get the
-+ corresponding MethodInfo object from m_arMethoInfos. The mapping table
-+ is dynamically initialized. If the cli interface has no base interface
-+ or exactly one then the mapping table is initialized in one go at the
-+ first call. In all ensuing calls the MethodInfo object is immediately
-+ retrieved through the mapping table.
-+
-+ If the interface has more then one interface in its inheritance chain,
-+ that is Type.GetInterfaces return more then one Type, then the mapping
-+ table is partially initiallized. On the first call the mappings for the
-+ methods of the belonging interface are created.
-+
-+ The implementation assumes that the order of interface methods as
-+ provided by InterfaceMapping.InterfaceMethods corresponds to the order
-+ of methods in the interface declaration.
-+
-+ @param nUnoFunctionPos
-+ Position of the method in the uno interface.
-+ */
-+ unsafe MethodInfo getMethodInfo(int unoFunctionPos, UString* unoMethodName, MethodKind methodKind)
-+ {
-+ MethodInfo result = null;
-+
-+ // deduct 3 for XInterface methods
-+ unoFunctionPos -= 3;
-+ lock (unoPosToCliPos)
-+ {
-+ int cliPos = unoPosToCliPos[unoFunctionPos];
-+ if (cliPos != -1)
-+ return methodInfos[cliPos];
-+
-+ // create the method function name
-+ string methodName = UString.UStringToString(unoMethodName);
-+ switch (methodKind)
-+ {
-+ case MethodKind.METHOD:
-+ break;
-+ case MethodKind.SET:
-+ methodName = "set_" + methodName;
-+ break;
-+ case MethodKind.GET:
-+ methodName = "get_" + methodName;
-+ break;
-+ default:
-+ // FIXME assert not reached
-+ break;
-+ }
-+
-+ // Find the cli interface method that corresponds to the Uno method
-+ int indexCliMethod = -1;
-+ // If the cli interfaces and their methods are in the same order
-+ // as they were declared (inheritance chain and within the interface)
-+ // then unoFunctionPos should lead to the correct method. However,
-+ // the documentation does not say that this ordering is given.
-+ if (methodName == interfaceMethodInfos[unoFunctionPos].Name)
-+ indexCliMethod = unoFunctionPos;
-+ else
-+ {
-+ int methodCount = interfaceMethodInfos.Length;
-+ for (int i = 0; i < methodCount; ++i)
-+ {
-+ if (interfaceMethodInfos[i].Name == methodName)
-+ {
-+ indexCliMethod = i;
-+ break;
-+ }
-+ }
-+ }
-+
-+ if (indexCliMethod == -1 )
-+ {
-+ // FIXME throw some exception
-+ return null;
-+ }
-+ unoPosToCliPos[unoFunctionPos] = indexCliMethod;
-+ result = methodInfos[indexCliMethod];
-+ }
-+
-+ return result;
-+ }
-+
-+ void Acquire()
-+ {
-+ uno.Binary.Interface.Acquire(nativeProxy);
-+ }
-+
-+ void Release()
-+ {
-+ uno.Binary.Interface.Release(nativeProxy);
-+ }
-+
-+ unsafe void Dispatch(TypeDescription* memberTD, void* unoRet, void** unoArgs,
-+ uno.Binary.Any** unoExc)
-+ {
-+ switch (memberTD->eTypeClass)
-+ {
-+ case TypeClass.INTERFACE_ATTRIBUTE:
-+ {
-+ int memberPos = ((InterfaceMemberTypeDescription*)memberTD)->nPosition;
-+ InterfaceTypeDescription* ifaceTD = (InterfaceTypeDescription*)unoType;
-+ int functionPos = ifaceTD->pMapMemberIndexToFunctionIndex[memberPos];
-+
-+ if (unoRet != null) // is getter method
-+ {
-+ MethodInfo info = getMethodInfo(
-+ functionPos,
-+ ((InterfaceMemberTypeDescription*)memberTD)->pMemberName,
-+ MethodKind.GET);
-+ bridge.CallManaged(
-+ managedI, type, info,
-+ ((InterfaceAttributeTypeDescription*)memberTD)->pAttributeTypeRef,
-+ null, 0, // no params
-+ unoRet, null, unoExc);
-+ }
-+ else // is setter method
-+ {
-+ MethodInfo info = getMethodInfo(
-+ // set follows get method
-+ functionPos + 1,
-+ ((InterfaceMemberTypeDescription*)memberTD)->pMemberName,
-+ MethodKind.SET);
-+ MethodParameter param;
-+ param.pTypeRef = ((InterfaceAttributeTypeDescription*)memberTD)->pAttributeTypeRef;
-+ param.bIn = 1;
-+ param.bOut = 0;
-+
-+ bridge.CallManaged(
-+ managedI, type, info,
-+ null /* indicated void return */, &param, 1,
-+ null, unoArgs, unoExc);
-+ }
-+ break;
-+ }
-+ case TypeClass.INTERFACE_METHOD:
-+ {
-+ int memberPos = ((InterfaceMemberTypeDescription*)memberTD)->nPosition;
-+ InterfaceTypeDescription* ifaceTD = (InterfaceTypeDescription*)unoType;
-+ int functionPos = ifaceTD->pMapMemberIndexToFunctionIndex[memberPos];
-+
-+ switch (functionPos)
-+ {
-+ case 0: // queryInterface()
-+ {
-+ TypeDescription* requestedTD = null;
-+ // FIXME leak
-+ TypeDescriptionReference * argTD = *(TypeDescriptionReference **) unoArgs[0];
-+ if (argTD != null)
-+ TypeDescriptionReference.GetDescription(&requestedTD, argTD);
-+ if (requestedTD == null || requestedTD->eTypeClass != TypeClass.INTERFACE)
-+ {
-+ uno.Binary.Any.Construct((uno.Binary.Any*)unoRet, null, null, null);
-+ *unoExc = null;
-+ break;
-+ }
-+
-+ IntPtr unoInterface = IntPtr.Zero;
-+
-+ bridge.GetInterfaceFromUnoEnvironment(ref unoInterface, unoOid,
-+ (InterfaceTypeDescription*)requestedTD);
-+
-+ if (unoInterface == IntPtr.Zero)
-+ {
-+ Type requestedType = Bridge.MapUnoType(requestedTD);
-+ if (requestedType.IsInstanceOfType(managedI))
-+ {
-+ IntPtr unoI = bridge.MapManagedToUno(managedI, requestedTD);
-+ uno.Binary.Any.Construct(
-+ (uno.Binary.Any*)unoRet, &unoI, requestedTD, null);
-+ uno.Binary.Interface.Release(unoI);
-+ }
-+ else // object does not support requested interface
-+ {
-+ uno.Binary.Any.Construct((uno.Binary.Any*)unoRet, null, null, null);
-+ }
-+ // no exception occurred
-+ *unoExc = null;
-+ }
-+ else
-+ {
-+ uno.Binary.Any.Construct((uno.Binary.Any*)unoRet, &unoInterface,
-+ requestedTD, null);
-+ *unoExc = null;
-+ }
-+ break;
-+ }
-+ case 1: // acquire this proxy()
-+ Acquire();
-+ *unoExc = null;
-+ break;
-+ case 2: // release this proxy()
-+ Release();
-+ *unoExc = null;
-+ break;
-+ default: // arbitrary method call
-+ {
-+ InterfaceMethodTypeDescription* methodTD =
-+ (InterfaceMethodTypeDescription*)memberTD;
-+ UString* methodName = ((InterfaceMemberTypeDescription*)memberTD)->pMemberName;
-+
-+ MethodInfo info = getMethodInfo(functionPos, methodName, MethodKind.METHOD);
-+
-+ bridge.CallManaged(
-+ managedI, type, info,
-+ methodTD->pReturnTypeRef, methodTD->pParams,
-+ methodTD->nParams,
-+ unoRet, unoArgs, unoExc);
-+ break;
-+ }
-+ }
-+
-+ break;
-+ }
-+ default: // Cannot happen
-+ {
-+ break;// FIXME Throw an error
-+ }
-+ }
-+ }
-+
-+ public IntPtr NativeProxy
-+ {
-+ get { return nativeProxy; }
-+ set { nativeProxy = value; }
-+ }
-+}
-+
-+}
diff --git a/patches/mono/bridges-source-mono_uno-mono_bridge-cxx.diff b/patches/mono/bridges-source-mono_uno-mono_bridge-cxx.diff
deleted file mode 100644
index 31593dc9f..000000000
--- a/patches/mono/bridges-source-mono_uno-mono_bridge-cxx.diff
+++ /dev/null
@@ -1,415 +0,0 @@
---- /dev/null
-+++ bridges/source/mono_uno/mono_bridge.cxx
-@@ -0,0 +1,412 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile: $
-+ *
-+ * $Revision: $
-+ *
-+ * last change: $Author: $ $Date: $
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include "uno/dispatcher.h"
-+#include "uno/environment.h"
-+#include "uno/lbnames.h"
-+
-+#include "osl/diagnose.h"
-+#include "rtl/unload.h"
-+#include "rtl/ustring.hxx"
-+
-+#include "uno/mapping.hxx"
-+
-+extern "C" {
-+#include "mono/metadata/appdomain.h"
-+#include "mono/metadata/assembly.h"
-+#include "mono/metadata/debug-helpers.h"
-+#include "mono/metadata/object.h"
-+#include "mono/metadata/threads.h"
-+}
-+
-+#include "mono_bridge.h"
-+
-+#define OUSTR(x) ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(x) )
-+
-+using namespace ::rtl;
-+using namespace ::mono_uno;
-+
-+extern "C" {
-+
-+void SAL_CALL Mapping_acquire( uno_Mapping * mapping )
-+ SAL_THROW_EXTERN_C()
-+{
-+ static_cast< Mapping const * >( mapping )->m_bridge->acquire();
-+}
-+
-+void SAL_CALL Mapping_release( uno_Mapping * mapping )
-+ SAL_THROW_EXTERN_C()
-+{
-+ static_cast< Mapping const * >( mapping )->m_bridge->release();
-+}
-+
-+void SAL_CALL Mapping_map_to_uno(
-+ uno_Mapping * mapping, void ** ppOut,
-+ void * pIn, typelib_InterfaceTypeDescription * td )
-+ SAL_THROW_EXTERN_C()
-+{
-+ uno_Interface ** ppUnoI = (uno_Interface **)ppOut;
-+ void * monoI = pIn;
-+
-+// FIXME do this here? OSL_ASSERT( sizeof (void *) >= sizeof (guint32))
-+ OSL_ENSURE( ppUnoI && td, "### null ptr!" );
-+
-+ if (0 != *ppUnoI)
-+ {
-+ uno_Interface * pUnoI = *ppUnoI;
-+ (*pUnoI->release)( pUnoI );
-+ *ppUnoI = 0;
-+ }
-+
-+ try
-+ {
-+ Bridge const *bridge =
-+ static_cast< Mapping const * >( mapping )->m_bridge;
-+ // FIXME any wrapper necessary around mono calls? cf. JNI_guarded_context
-+ uno_Interface * pUnoI = bridge->map_to_uno(
-+ monoI, (typelib_TypeDescription *)td );
-+ *ppUnoI = pUnoI;
-+ }
-+ catch (BridgeRuntimeError & err)
-+ {
-+#if OSL_DEBUG_LEVEL > 0
-+ OString cstr_msg(
-+ OUStringToOString(
-+ OUSTR("[mono_uno bridge error] ") + err.m_message,
-+ RTL_TEXTENCODING_ASCII_US ) );
-+ OSL_ENSURE( 0, cstr_msg.getStr() );
-+#endif
-+ }
-+}
-+
-+void SAL_CALL Mapping_map_to_mono(
-+ uno_Mapping * mapping, void ** ppOut,
-+ void * pIn, typelib_InterfaceTypeDescription * td )
-+ SAL_THROW_EXTERN_C()
-+{
-+ void ** pMonoI = ppOut;
-+ uno_Interface * pUnoI = (uno_Interface *)pIn;
-+
-+ OSL_ENSURE( ppOut && td, "### null ptr!" );
-+
-+ if (0 != *pMonoI)
-+ {
-+ // FIXME JNI bridge has guarded_context here
-+ // FIXME: do the right thing in the managed bridge
-+ // mono_gchandle_free( *pMonoI );
-+ }
-+
-+ try
-+ {
-+ if (0 != pUnoI)
-+ {
-+ Bridge const * bridge =
-+ static_cast< Mapping const *>( mapping )->m_bridge;
-+ // FIXME guarded context
-+ *ppOut = (void *)bridge->map_to_mono(
-+ pUnoI, (typelib_TypeDescription *)td );
-+ OSL_ASSERT( ppOut && *ppOut );
-+ }
-+ }
-+ catch (BridgeRuntimeError & err)
-+ {
-+#if OSL_DEBUG_LEVEL >= 1
-+ rtl::OString cstr_msg(
-+ rtl::OUStringToOString(
-+ OUSTR("[mono_uno bridge error] ") + err.m_message,
-+ RTL_TEXTENCODING_ASCII_US ) );
-+ OSL_ENSURE( 0, cstr_msg.getStr() );
-+#endif
-+ }
-+}
-+
-+void SAL_CALL Bridge_free( uno_Mapping * mapping )
-+ SAL_THROW_EXTERN_C()
-+{
-+ Mapping * that = static_cast< Mapping * >( mapping );
-+ delete that->m_bridge;
-+}
-+
-+} // extern "C"
-+
-+rtl_StandardModuleCount g_moduleCount = MODULE_COUNT_INIT;
-+
-+namespace mono_uno
-+{
-+
-+void Bridge::acquire() const SAL_THROW( () )
-+{
-+ if (1 == osl_incrementInterlockedCount( &m_ref ))
-+ {
-+ if (m_registered_mono2uno)
-+ {
-+ uno_Mapping * mapping = const_cast< Mapping * >( &m_mono2uno );
-+ uno_registerMapping(
-+ &mapping, Bridge_free,
-+ m_mono_env, (uno_Environment *)m_uno_env, 0 );
-+ }
-+ else
-+ {
-+ uno_Mapping * mapping = const_cast< Mapping * >( &m_uno2mono );
-+ uno_registerMapping(
-+ &mapping, Bridge_free,
-+ (uno_Environment *)m_uno_env, m_mono_env, 0 );
-+ }
-+ }
-+}
-+
-+void Bridge::release() const SAL_THROW( () )
-+{
-+ if (! osl_decrementInterlockedCount( &m_ref ))
-+ {
-+ uno_revokeMapping(
-+ m_registered_mono2uno
-+ ? const_cast< Mapping * >( &m_mono2uno )
-+ : const_cast< Mapping * >( &m_uno2mono ) );
-+ }
-+}
-+
-+Bridge::Bridge(
-+ uno_Environment * mono_env, uno_ExtEnvironment * uno_env,
-+ bool registered_mono2uno )
-+ : m_ref( 1 ),
-+ m_uno_env( uno_env ),
-+ m_mono_env( mono_env ),
-+ m_registered_mono2uno( registered_mono2uno )
-+{
-+ MonoDomain * pDomain = mono_get_root_domain();
-+ // FIXME where is this freed?
-+ MonoAssembly * pAssembly = mono_domain_assembly_open( pDomain, "cli_uno_bridge.dll" );
-+ // FIXME and this, is this needed later?
-+ MonoClass * pClass = mono_class_from_name (
-+ (MonoImage *)mono_assembly_get_image( pAssembly ), "com.sun.star.bridges.mono_uno", "Bridge" );
-+ OSL_ASSERT( 0 != pClass );
-+ /* FIXME add args to method description string */
-+ MonoMethodDesc * pMethodDesc = mono_method_desc_new( ":.ctor", FALSE );
-+ MonoMethod * pCtor = mono_method_desc_search_in_class( pMethodDesc, pClass );
-+ mono_method_desc_free( pMethodDesc );
-+ OSL_ASSERT( 0 != pCtor );
-+
-+ pMethodDesc = mono_method_desc_new( "Bridge:MapManagedToUno", FALSE );
-+ m_mapManagedToUnoMethod = mono_method_desc_search_in_class( pMethodDesc, pClass );
-+ mono_method_desc_free( pMethodDesc );
-+ OSL_ASSERT( 0 != m_mapManagedToUnoMethod );
-+
-+ pMethodDesc = mono_method_desc_new( "Bridge:MapUnoToManaged", FALSE );
-+ m_mapUnoToManagedMethod = mono_method_desc_search_in_class( pMethodDesc, pClass );
-+ mono_method_desc_free( pMethodDesc );
-+ OSL_ASSERT( 0 != m_mapUnoToManagedMethod );
-+
-+ gpointer pParams[1];
-+ pParams[0] = &uno_env;
-+ m_managedBridge = mono_object_new( pDomain, pClass );
-+ mono_uno::runtime_invoke( pCtor, m_managedBridge, pParams, NULL,
-+ mono_object_get_domain( m_managedBridge ) );
-+
-+ OSL_ASSERT( 0 != m_mono_env && 0 != m_uno_env );
-+ (*((uno_Environment *)m_uno_env)->acquire)( (uno_Environment *)m_uno_env );
-+ (*m_mono_env->acquire)( m_mono_env );
-+
-+ // mono2uno mapping
-+ m_mono2uno.acquire = Mapping_acquire;
-+ m_mono2uno.release = Mapping_release;
-+ m_mono2uno.mapInterface = Mapping_map_to_uno;
-+ m_mono2uno.m_bridge = this;
-+ // uno2mono mapping
-+ m_uno2mono.acquire = Mapping_acquire;
-+ m_uno2mono.release = Mapping_release;
-+ m_uno2mono.mapInterface = Mapping_map_to_mono;
-+ m_uno2mono.m_bridge = this;
-+
-+ (*g_moduleCount.modCnt.acquire)( &g_moduleCount.modCnt );
-+}
-+
-+Bridge::~Bridge() SAL_THROW( () )
-+{
-+ (*m_mono_env->release)( m_mono_env );
-+ (*((uno_Environment *)m_uno_env)->release)( (uno_Environment *)m_uno_env );
-+ // FIXME release managed bridge
-+
-+ (*g_moduleCount.modCnt.release)( &g_moduleCount.modCnt );
-+}
-+
-+void * Bridge::map_to_mono(
-+ uno_Interface *pUnoI, typelib_TypeDescription * pTD ) const
-+{
-+ gpointer pMonoParams[2];
-+
-+ pMonoParams[0] = &pUnoI;
-+ pMonoParams[1] = pTD;
-+
-+ return
-+ mono_uno::runtime_invoke( m_mapUnoToManagedMethod,
-+ m_managedBridge, pMonoParams, NULL,
-+ mono_object_get_domain( m_managedBridge ) );
-+}
-+
-+uno_Interface * Bridge::map_to_uno(
-+ void * pMonoI, typelib_TypeDescription * pTD ) const
-+{
-+ gpointer pMonoParams[2];
-+ uno_Interface ** ppResult;
-+
-+ pMonoParams[0] = pMonoI;
-+ pMonoParams[1] = pTD;
-+
-+ ppResult = (uno_Interface **)mono_object_unbox(
-+ mono_uno::runtime_invoke( m_mapManagedToUnoMethod,
-+ m_managedBridge, pMonoParams, NULL,
-+ mono_object_get_domain( m_managedBridge ) ) );
-+
-+ return *ppResult;
-+}
-+
-+} // namespace mono_uno
-+
-+extern "C" {
-+
-+// void SAL_CALL mono_environmentDisposing( uno_Environment * mono_env )
-+// SAL_THROW_EXTERN_C()
-+// {
-+// }
-+
-+void SAL_CALL uno_initEnvironment( uno_Environment * mono_env )
-+ SAL_THROW_EXTERN_C()
-+{
-+ // mono_env->environmentDisposing = mono_environmentDisposing;
-+ mono_env->pExtEnv = 0; /* no extended support */
-+}
-+
-+void SAL_CALL uno_ext_getMapping(
-+ uno_Mapping ** ppMapping, uno_Environment *pFrom, uno_Environment *pTo )
-+ SAL_THROW_EXTERN_C()
-+{
-+ OSL_ASSERT( 0 != ppMapping && 0 != pFrom && 0 != pTo );
-+ if (0 != *ppMapping)
-+ {
-+ (*(*ppMapping)->release)( *ppMapping );
-+ *ppMapping = 0;
-+ }
-+
-+ /* FIXME check that mono's and sal's types have matching sizes
-+ * like jni_bridge does? */
-+
-+ OUString const & from_env_typename = OUString::unacquired( &pFrom->pTypeName );
-+ OUString const & to_env_typename = OUString::unacquired( &pTo->pTypeName );
-+
-+ uno_Mapping * mapping = 0;
-+
-+ try
-+ {
-+ if (from_env_typename.equalsAsciiL(
-+ RTL_CONSTASCII_STRINGPARAM( UNO_LB_CLI )) &&
-+ to_env_typename.equalsAsciiL(
-+ RTL_CONSTASCII_STRINGPARAM( UNO_LB_UNO)))
-+ {
-+ Bridge * bridge =
-+ new Bridge( pFrom, pTo->pExtEnv, true ); // ref count = 1
-+ mapping = &bridge->m_mono2uno;
-+ uno_registerMapping(
-+ &mapping, Bridge_free, pFrom,
-+ (uno_Environment *)pTo->pExtEnv, 0);
-+ }
-+ else if (from_env_typename.equalsAsciiL(
-+ RTL_CONSTASCII_STRINGPARAM( UNO_LB_UNO)) &&
-+ to_env_typename.equalsAsciiL(
-+ RTL_CONSTASCII_STRINGPARAM( UNO_LB_CLI)))
-+ {
-+ Bridge * bridge =
-+ new Bridge( pTo, pFrom->pExtEnv, false ); // ref count = 1
-+ mapping = &bridge->m_uno2mono;
-+ uno_registerMapping(
-+ &mapping, Bridge_free,
-+ (uno_Environment *)pFrom->pExtEnv, pTo, 0);
-+ }
-+ }
-+ catch (BridgeRuntimeError & err)
-+ {
-+#if OSL_DEBUG_LEVEL >= 1
-+ OString cstr_msg(
-+ OUStringToOString(
-+ OUSTR("[mono_uno bridge error] ") + err.m_message,
-+ RTL_TEXTENCODING_ASCII_US ) );
-+ OSL_ENSURE( 0, cstr_msg.getStr() );
-+#endif
-+ }
-+
-+ *ppMapping = mapping;
-+}
-+
-+sal_Bool SAL_CALL component_canUnload( TimeValue * pTime )
-+ SAL_THROW_EXTERN_C()
-+{
-+ return (*g_moduleCount.canUnload)( &g_moduleCount, pTime );
-+}
-+
-+} // extern "C"
-+
-+MonoObject*
-+mono_uno::runtime_invoke (MonoMethod *method, void *obj, void **params,
-+ MonoObject **exc, MonoDomain *domain)
-+{
-+ mono_thread_attach( domain );
-+ return mono_runtime_invoke( method, obj, params, exc );
-+}
diff --git a/patches/mono/bridges-source-mono_uno-mono_bridge-h.diff b/patches/mono/bridges-source-mono_uno-mono_bridge-h.diff
deleted file mode 100644
index b04878b23..000000000
--- a/patches/mono/bridges-source-mono_uno-mono_bridge-h.diff
+++ /dev/null
@@ -1,161 +0,0 @@
---- /dev/null
-+++ bridges/source/mono_uno/mono_bridge.h
-@@ -0,0 +1,158 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile: $
-+ *
-+ * $Revision: $
-+ *
-+ * last change: $Author: $ $Date: $
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#if ! defined INCLUDED_MONO_BRIDGE_H
-+#define INCLUDED_MONO_BRIDGE_H
-+
-+#include "glib/gtypes.h"
-+#include "osl/interlck.h"
-+#include "rtl/ustring.hxx"
-+#include "typelib/typedescription.hxx"
-+#include "uno/dispatcher.h"
-+#include "uno/mapping.h"
-+
-+extern "C" {
-+#include "mono/metadata/appdomain.h"
-+#include "mono/metadata/debug-helpers.h"
-+#include "mono/metadata/object.h"
-+#include "mono/metadata/threads.h"
-+}
-+
-+namespace cssu = com::sun::star::uno;
-+
-+typedef struct _uno_ExtEnvironment uno_ExtEnvironment;
-+typedef struct _uno_Environment uno_Environment;
-+typedef struct _typelib_TypeDescription typelib_TypeDescription;
-+
-+namespace mono_uno
-+{
-+
-+MonoObject* runtime_invoke (MonoMethod *method, void *obj, void **params,
-+ MonoObject **exc, MonoDomain *domain);
-+
-+//==== holds environments and mappings =========================================
-+struct Bridge;
-+struct Mapping : public uno_Mapping
-+{
-+ Bridge * m_bridge;
-+};
-+
-+//==============================================================================
-+struct Bridge
-+{
-+ mutable oslInterlockedCount m_ref;
-+ MonoObject * m_managedBridge;
-+
-+ uno_ExtEnvironment * m_uno_env;
-+ uno_Environment * m_mono_env;
-+
-+ Mapping m_mono2uno;
-+ Mapping m_uno2mono;
-+ bool m_registered_mono2uno;
-+
-+ MonoMethod * m_mapUnoToManagedMethod;
-+ MonoMethod * m_mapManagedToUnoMethod;
-+
-+ ~Bridge() SAL_THROW( () );
-+ explicit Bridge(
-+ uno_Environment * mono_env, uno_ExtEnvironment * uno_env,
-+ bool registered_mono2uno );
-+
-+ void acquire() const;
-+ void release() const;
-+
-+ void * map_to_mono(
-+ uno_Interface * pUnoI, typelib_TypeDescription * pTD ) const;
-+
-+ uno_Interface * map_to_uno(
-+ void * pMonoI, typelib_TypeDescription * pTD ) const;
-+};
-+
-+struct MonoProxy : public uno_Interface
-+{
-+ mutable oslInterlockedCount m_ref;
-+ guint32 m_managedProxy;
-+ uno_ExtEnvironment * m_unoEnv;
-+ const cssu::TypeDescription m_unoType;
-+ const rtl::OUString m_Oid;
-+ MonoMethod * m_managedDispatch;
-+
-+ void acquire() const;
-+ void release() const;
-+ void dispatch(typelib_TypeDescription const * member_td, void * uno_ret,
-+ void * uno_args [], uno_Any ** uno_exc);
-+
-+ MonoProxy(uno_ExtEnvironment * pUnoEnv, guint32 managedProxy,
-+ rtl_uString * pOid, typelib_TypeDescription * pTD);
-+};
-+
-+struct BridgeRuntimeError
-+{
-+ ::rtl::OUString m_message;
-+
-+ inline BridgeRuntimeError( ::rtl::OUString const & message )
-+ : m_message( message )
-+ {}
-+};
-+
-+}
-+
-+#endif
diff --git a/patches/mono/bridges-source-mono_uno-mono_proxy-cxx.diff b/patches/mono/bridges-source-mono_uno-mono_proxy-cxx.diff
deleted file mode 100644
index 1b848bc1b..000000000
--- a/patches/mono/bridges-source-mono_uno-mono_proxy-cxx.diff
+++ /dev/null
@@ -1,204 +0,0 @@
---- /dev/null
-+++ bridges/source/mono_uno/mono_proxy.cxx
-@@ -0,0 +1,201 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile: $
-+ *
-+ * $Revision: $
-+ *
-+ * last change: $Author: $ $Date: $
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include "mono_bridge.h"
-+
-+#include "rtl/ustring.h"
-+#include "uno/dispatcher.h"
-+#include "uno/environment.h"
-+#include "typelib/typedescription.h"
-+
-+extern "C" {
-+#include "mono/metadata/threads.h"
-+}
-+
-+using namespace mono_uno;
-+
-+extern "C" {
-+
-+static void SAL_CALL mono_proxy_free( uno_ExtEnvironment * env, void * proxy)
-+{
-+ MonoProxy * monoProxy = reinterpret_cast< MonoProxy * >( proxy );
-+
-+ delete monoProxy;
-+}
-+
-+uno_Interface * SAL_CALL cli_uno_environment_createMonoProxyAndRegister(
-+ uno_ExtEnvironment *pUnoEnv, void *pMonoProxy, rtl_uString *pOid,
-+ typelib_TypeDescription *pTD )
-+ SAL_THROW_EXTERN_C()
-+{
-+ uno_Interface * proxy = static_cast< uno_Interface * >(
-+ new MonoProxy( pUnoEnv,
-+ static_cast< guint32 >( reinterpret_cast< sal_IntPtr >( pMonoProxy ) ),
-+ pOid, pTD ) );
-+
-+ pUnoEnv->registerProxyInterface(
-+ pUnoEnv,
-+ reinterpret_cast< void ** >( &proxy ),
-+ mono_proxy_free,
-+ pOid,
-+ (typelib_InterfaceTypeDescription*) pTD );
-+
-+ return proxy;
-+}
-+
-+static void SAL_CALL mono_proxy_acquire( uno_Interface * pUnoI )
-+{
-+ MonoProxy const * that = static_cast< MonoProxy const * >( pUnoI );
-+ that->acquire();
-+}
-+
-+static void SAL_CALL mono_proxy_release( uno_Interface * pUnoI )
-+{
-+ MonoProxy const * that = static_cast< MonoProxy const * >( pUnoI );
-+ that->release();
-+}
-+
-+static void SAL_CALL mono_proxy_dispatch(
-+ uno_Interface * pUnoI, typelib_TypeDescription const * member_td,
-+ void * uno_ret, void * uno_args [], uno_Any ** uno_exc )
-+ SAL_THROW_EXTERN_C()
-+{
-+ MonoProxy * that = static_cast< MonoProxy * >( pUnoI );
-+ that->dispatch( member_td, uno_ret, uno_args, uno_exc );
-+}
-+
-+} // extern "C"
-+
-+namespace mono_uno
-+{
-+
-+MonoProxy::MonoProxy(uno_ExtEnvironment * pUnoEnv, guint32 managedProxy,
-+ rtl_uString *pOid, typelib_TypeDescription * pTD):
-+ m_ref(1),
-+ m_unoEnv(pUnoEnv),
-+ m_managedProxy(managedProxy), // FIXME free this in the destructor?
-+ m_Oid(pOid),
-+ m_unoType(pTD)
-+{
-+ uno_Interface::acquire = mono_proxy_acquire;
-+ uno_Interface::release = mono_proxy_release;
-+ uno_Interface::pDispatcher = mono_proxy_dispatch;
-+
-+ MonoObject * pObj = mono_gchandle_get_target( m_managedProxy );
-+ MonoClass * pClass = mono_object_get_class( pObj );
-+ MonoMethodDesc * pMethodDesc = mono_method_desc_new( "ManagedProxy:Dispatch", FALSE );
-+ m_managedDispatch = mono_method_desc_search_in_class( pMethodDesc, pClass );
-+ mono_method_desc_free( pMethodDesc );
-+ OSL_ASSERT( 0 != m_managedDispatch );
-+}
-+
-+inline void MonoProxy::acquire() const
-+{
-+ if (1 == osl_incrementInterlockedCount( &m_ref ))
-+ {
-+ // rebirth of proxy zombie
-+ void * that = const_cast< MonoProxy * >( this );
-+ // register at uno env
-+ (*m_unoEnv->registerProxyInterface)(
-+ m_unoEnv, &that,
-+ mono_proxy_free, m_Oid.pData,
-+ (typelib_InterfaceTypeDescription *)m_unoType.get() );
-+#if OSL_DEBUG_LEVEL >= 2
-+ OSL_ASSERT( this == (void const * const)that );
-+#endif
-+ }
-+}
-+
-+inline void MonoProxy::release() const
-+{
-+ if (0 == osl_decrementInterlockedCount( &m_ref ))
-+ {
-+ // revoke from uno env on last release,
-+ // The proxy can be resurrected if acquire is called before the uno
-+ // environment calls mono_proxy_free. mono_proxy_free will
-+ //delete the proxy. The environment does not acquire a registered
-+ //proxy.
-+ (*m_unoEnv->revokeInterface)(
-+ m_unoEnv, const_cast< MonoProxy * >( this ) );
-+ }
-+}
-+
-+inline void MonoProxy::dispatch( typelib_TypeDescription const * member_td,
-+ void * uno_ret, void * uno_args [], uno_Any ** uno_exc )
-+{
-+ OSL_ASSERT( m_managedDispatch != 0 );
-+
-+ gpointer pMonoParams[4];
-+
-+ pMonoParams[0] = const_cast< typelib_TypeDescription * >(member_td);
-+ pMonoParams[1] = uno_ret;
-+ pMonoParams[2] = uno_args;
-+ pMonoParams[3] = uno_exc;
-+
-+ MonoObject *obj = mono_gchandle_get_target( m_managedProxy );
-+
-+ mono_uno::runtime_invoke( m_managedDispatch,
-+ obj, pMonoParams, NULL,
-+ mono_object_get_domain( obj ) );
-+}
-+
-+}
-+
diff --git a/patches/mono/bridges-source-mono_uno-rtl_ustring-cs.diff b/patches/mono/bridges-source-mono_uno-rtl_ustring-cs.diff
deleted file mode 100644
index 432b66f66..000000000
--- a/patches/mono/bridges-source-mono_uno-rtl_ustring-cs.diff
+++ /dev/null
@@ -1,141 +0,0 @@
---- /dev/null
-+++ bridges/source/mono_uno/rtl_ustring.cs
-@@ -0,0 +1,138 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile: $
-+ *
-+ * $Revision: $
-+ *
-+ * last change: $Author: $ $Date: $
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+namespace uno.rtl {
-+
-+using System;
-+using System.Runtime.InteropServices;
-+using System.Text;
-+
-+public unsafe struct UString
-+{
-+ public int RefCount;
-+ public int Length;
-+ public char FirstChar;
-+
-+ [DllImport("sal")]
-+ private static extern void rtl_uString_acquire(void* data);
-+
-+ [DllImport("sal")]
-+ private static unsafe extern void rtl_uString_release(void* data);
-+
-+ [DllImport("sal")]
-+ private static unsafe extern void rtl_uString_new(void* data);
-+
-+ [DllImport("sal")]
-+ private static unsafe extern void rtl_uString_newFromStr_WithLength(
-+ void* data,
-+ // this should pass a pointer to the original string's char[]
-+ [MarshalAs(UnmanagedType.LPWStr)] string value,
-+ int len);
-+
-+ [DllImport("sal")]
-+ private static unsafe extern void rtl_uString_newFromStr_WithLength(
-+ void* data,
-+ // this should pass a pointer to the stringbuilder's internal char[]
-+ [MarshalAs(UnmanagedType.LPWStr)] StringBuilder buffer,
-+ int len);
-+
-+ public static unsafe void Acquire(UString* us)
-+ {
-+ rtl_uString_acquire(us);
-+ }
-+
-+ public static unsafe void Release(UString* us)
-+ {
-+ rtl_uString_release(us);
-+ }
-+
-+ public static unsafe void New(UString** p)
-+ {
-+ rtl_uString_new(p);
-+ }
-+
-+ public static unsafe void NewFromString(UString **p, string s)
-+ {
-+ rtl_uString_newFromStr_WithLength(p, s, s.Length);
-+ }
-+
-+ public static unsafe void NewFromStringBuilder(UString **p, StringBuilder sb)
-+ {
-+ rtl_uString_newFromStr_WithLength(p, sb, sb.Length);
-+ }
-+
-+ public static unsafe string UStringToString(UString *p)
-+ {
-+ return new String(&(p->FirstChar), 0, p->Length);
-+ }
-+}
-+
-+// FIXME move this to its own file or rename this file to e.g. sal
-+public unsafe struct Mem
-+{
-+ // FIXME parameter is a sal_Size which is unsigned and has the
-+ // size of a native long. Thus this is not 64bit safe. Might have
-+ // to write a glue function that always takes 32bit.
-+ [DllImport("sal", EntryPoint="rtl_allocateMemory")]
-+ public static unsafe extern void *Allocate(int bytes);
-+}
-+
-+}
diff --git a/patches/mono/bridges-source-mono_uno-typeclass-cs.diff b/patches/mono/bridges-source-mono_uno-typeclass-cs.diff
deleted file mode 100644
index 6aa4352b2..000000000
--- a/patches/mono/bridges-source-mono_uno-typeclass-cs.diff
+++ /dev/null
@@ -1,135 +0,0 @@
---- /dev/null
-+++ bridges/source/mono_uno/typeclass.cs
-@@ -0,0 +1,132 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile: $
-+ *
-+ * $Revision: $
-+ *
-+ * last change: $Author: $ $Date: $
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+namespace uno.Typelib {
-+
-+public class TypeClass
-+{
-+ /** type class of void */
-+ public const int VOID = 0;
-+ /** type class of char */
-+ public const int CHAR = 1;
-+ /** type class of boolean */
-+ public const int BOOLEAN = 2;
-+ /** type class of byte */
-+ public const int BYTE = 3;
-+ /** type class of short */
-+ public const int SHORT = 4;
-+ /** type class of unsigned short */
-+ public const int UNSIGNED_SHORT = 5;
-+ /** type class of long */
-+ public const int LONG = 6;
-+ /** type class of unsigned long */
-+ public const int UNSIGNED_LONG = 7;
-+ /** type class of hyper */
-+ public const int HYPER = 8;
-+ /** type class of unsigned hyper */
-+ public const int UNSIGNED_HYPER = 9;
-+ /** type class of float */
-+ public const int FLOAT = 10;
-+ /** type class of double */
-+ public const int DOUBLE = 11;
-+ /** type class of string */
-+ public const int STRING = 12;
-+ /** type class of type */
-+ public const int TYPE = 13;
-+ /** type class of any */
-+ public const int ANY = 14;
-+ /** type class of enum */
-+ public const int ENUM = 15;
-+ /** type class of typedef */
-+ public const int TYPEDEF = 16;
-+ /** type class of struct */
-+ public const int STRUCT = 17;
-+ /** type class of union (not implemented) */
-+ public const int UNION = 18;
-+ /** type class of exception */
-+ public const int EXCEPTION = 19;
-+ /** type class of sequence */
-+ public const int SEQUENCE = 20;
-+ /** type class of array (not implemented) */
-+ public const int ARRAY = 21;
-+ /** type class of interface */
-+ public const int INTERFACE = 22;
-+ /** type class of service (not implemented) */
-+ public const int SERVICE = 23;
-+ /** type class of module (not implemented) */
-+ public const int MODULE = 24;
-+ /** type class of interface method */
-+ public const int INTERFACE_METHOD = 25;
-+ /** type class of interface attribute */
-+ public const int INTERFACE_ATTRIBUTE = 26;
-+ /** type class of unknown type */
-+ public const int UNKNOWN = 27;
-+ /** type class of properties */
-+ public const int PROPERTY = 28;
-+ /** type class of constants */
-+ public const int CONSTANT = 29;
-+ /** type class of constants groups */
-+ public const int CONSTANTS = 30;
-+ /** type class of singletons */
-+ public const int SINGLETON = 31;
-+}
-+
-+}
diff --git a/patches/mono/bridges-source-mono_uno-typedescription-cs.diff b/patches/mono/bridges-source-mono_uno-typedescription-cs.diff
deleted file mode 100644
index ab931930b..000000000
--- a/patches/mono/bridges-source-mono_uno-typedescription-cs.diff
+++ /dev/null
@@ -1,648 +0,0 @@
---- /dev/null
-+++ bridges/source/mono_uno/typedescription.cs
-@@ -0,0 +1,645 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile: $
-+ *
-+ * $Revision: $
-+ *
-+ * last change: $Author: $ $Date: $
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+namespace uno.Typelib {
-+
-+using System;
-+using System.Runtime.InteropServices;
-+
-+/** Holds a weak reference to a type description.
-+*/
-+[ StructLayout(LayoutKind.Sequential) ]
-+public unsafe struct TypeDescriptionReference
-+{
-+ /** reference count of type; don't ever modify this by yourself, use
-+ typedescriptionreference_acquire() and typedescriptionreference_release()
-+ */
-+ public int nRefCount;
-+ /** number of static references of type, because of the fact that some types are needed
-+ until program termination and are commonly held static.
-+ */
-+ public int nStaticRefCount;
-+ /** type class of type
-+ */
-+ public int eTypeClass;
-+ /** fully qualified name of type.
-+ */
-+ public uno.rtl.UString * pTypeName;
-+ /** pointer to full typedescription; this value is only valid if the type is never swapped out
-+ */
-+ public TypeDescription * pType;
-+ /** pointer to optimize the runtime; not for public use
-+ */
-+ public void * pUniqueIdentifier;
-+ /** reserved for future use; 0 if not used
-+ */
-+ public void * pReserved;
-+
-+ [ DllImport("uno_cppu", EntryPoint="typelib_typedescriptionreference_acquire") ]
-+ public static extern void Acquire(/* TypeDescriptionReference */ void *td);
-+
-+ [ DllImport("uno_cppu", EntryPoint="typelib_typedescriptionreference_release") ]
-+ public static extern void Release(/* TypeDescriptionReference */ void *td);
-+
-+ [ DllImport("uno_cppu", EntryPoint="typelib_typedescriptionreference_new") ]
-+ public static extern void New(TypeDescriptionReference **ppTDR,
-+ int /* enum typelib_TypeClass */ eTypeClass,
-+ /* uno.rtl.UString */ void *pTypeName);
-+
-+ [ DllImport("uno_cppu", EntryPoint="typelib_static_type_getByTypeClass") ]
-+ public static extern TypeDescriptionReference **GetByTypeClass(
-+ int /* enum typelib_TypeClass */ eTypeClass);
-+
-+ [ DllImport("uno_cppu", EntryPoint="typelib_typedescriptionreference_getDescription") ]
-+ public static extern void GetDescription(
-+ TypeDescription ** ppRet, /* TypeDescriptionReference */ void * pRef);
-+}
-+
-+/** Full type description of a type. Memory layout of this struct is identical to the
-+ TypeDescriptionReference for the first six members.
-+ So a typedescription can be used as type reference.
-+*/
-+[ StructLayout(LayoutKind.Sequential) ]
-+public unsafe struct TypeDescription
-+{
-+ /** reference count; don't ever modify this by yourself, use
-+ typedescription_acquire() and typedescription_release()
-+ */
-+ public int nRefCount;
-+ /** number of static references of type, because of the fact that some types are needed
-+ until program termination and are commonly held static.
-+ */
-+ public int nStaticRefCount;
-+ /** type class of type
-+ */
-+ public int eTypeClass;
-+ /** fully qualified name of type.
-+ */
-+ public uno.rtl.UString * pTypeName;
-+ /** pointer to self to distinguish reference from description; for internal use only
-+ */
-+ public TypeDescription * pSelf;
-+ /** pointer to optimize the runtime; not for public use
-+ */
-+ public void * pUniqueIdentifier;
-+ /** reserved for future use; 0 if not used
-+ */
-+ public void * pReserved;
-+
-+ /** flag to determine whether the description is complete:
-+ compound and union types lack of member names, enums lack of member types and names,
-+ interfaces lack of members and table init.
-+ Call typedescription_complete() if false.
-+ */
-+ public byte bComplete;
-+ /** size of type
-+ */
-+ public int nSize;
-+ /** alignment of type
-+ */
-+ public int nAlignment;
-+ /** pointer to weak reference
-+ */
-+ public TypeDescriptionReference * pWeakRef;
-+ /** determines, if type can be unloaded (and it is possible to reloaded it)
-+ */
-+ public byte bOnDemand;
-+
-+ /* FIXME move to TypeDescriptionReference */
-+ public static TypeDescriptionReference *VoidType
-+ {
-+ get { return null; /* FIXME, use typelib_static_type_getByTypeClass(VOID) */ }
-+ }
-+
-+ [ DllImport("uno_cppu", EntryPoint="typelib_typedescription_getByName") ]
-+ public static extern void GetByName(TypeDescription **pTD,
-+ /* uno.rtl.UString */ void *name);
-+
-+ [ DllImport("uno_cppu", EntryPoint="typelib_typedescription_acquire") ]
-+ public static extern void Acquire(/* TypeDescription */ void *td);
-+
-+ [ DllImport("uno_cppu", EntryPoint="typelib_typedescription_release") ]
-+ public static extern void Release(/* TypeDescription */ void *td);
-+
-+ [ DllImport("uno_cppu", EntryPoint="typelib_typedescription_complete") ]
-+ public static extern bool Complete(TypeDescription **pTD);
-+}
-+
-+/** Type description for exception types.
-+*/
-+[ StructLayout(LayoutKind.Sequential) ]
-+public unsafe struct CompoundTypeDescription
-+{
-+ /** inherits all members of TypeDescription
-+ */
-+ public TypeDescription aBase;
-+
-+ /** pointer to base type description, else 0
-+ */
-+ public CompoundTypeDescription * pBaseTypeDescription;
-+
-+ /** number of members
-+ */
-+ public int nMembers;
-+ /** byte offsets of each member including the size the base type
-+ */
-+ public int * pMemberOffsets;
-+ /** members of the struct or exception
-+ */
-+ public TypeDescriptionReference ** ppTypeRefs;
-+ /** member names of the struct or exception.
-+ */
-+ public uno.rtl.UString ** ppMemberNames;
-+}
-+
-+/**
-+ Type description for struct types.
-+
-+ This is only used to represent plain struct types and instantiated
-+ polymorphic struct types; there is no representation of polymorphic struct
-+ type templates at this level.
-+
-+ @since UDK 3.2.0
-+ */
-+[ StructLayout(LayoutKind.Sequential) ]
-+public unsafe struct StructTypeDescription
-+{
-+ /**
-+ Derived from CompoundTypeDescription.
-+ */
-+ public CompoundTypeDescription aBase;
-+
-+ /**
-+ Flags for direct members, specifying whether they are of parameterized
-+ type (true) or explict type (false).
-+
-+ For a plain struct type, this is a null pointer.
-+ */
-+ public byte * pParameterizedTypes;
-+}
-+
-+/** Type description of a union. The type class of this description is TypeClass_UNION.
-+*/
-+[ StructLayout(LayoutKind.Sequential) ]
-+public unsafe struct UnionTypeDescription
-+{
-+ /** inherits all members of TypeDescription
-+ */
-+ public TypeDescription aBase;
-+
-+ /** type of the discriminant
-+ */
-+ public TypeDescriptionReference * pDiscriminantTypeRef;
-+
-+ /** union default descriminant
-+ */
-+ public long nDefaultDiscriminant;
-+ /** union default member type (may be 0)
-+ */
-+ public TypeDescriptionReference * pDefaultTypeRef;
-+ /** number of union member types
-+ */
-+ public int nMembers;
-+ /** union member discriminant values (same order as idl declaration)
-+ */
-+ public long * pDiscriminants;
-+ /** union member value types (same order as idl declaration)
-+ */
-+ public TypeDescriptionReference ** ppTypeRefs;
-+ /** union member value names (same order as idl declaration)
-+ */
-+ public uno.rtl.UString ** ppMemberNames;
-+ /** union value offset for data access
-+ */
-+ public int nValueOffset;
-+}
-+
-+/** Type description of an array or sequence.
-+*/
-+[ StructLayout(LayoutKind.Sequential) ]
-+public unsafe struct IndirectTypeDescription
-+{
-+ /** inherits all members of TypeDescription
-+ */
-+ public TypeDescription aBase;
-+
-+ /** array, sequence: pointer to element type
-+ */
-+ public TypeDescriptionReference * pType;
-+}
-+
-+/** Type description of an array.
-+*/
-+[ StructLayout(LayoutKind.Sequential) ]
-+public unsafe struct ArrayTypeDescription
-+{
-+ /** inherits all members of IndirectTypeDescription
-+ */
-+ public IndirectTypeDescription aBase;
-+
-+ /** number of dimensions
-+ */
-+ public int nDimensions;
-+ /** number of total array elements
-+ */
-+ public int nTotalElements;
-+ /** array of dimensions
-+ */
-+ public int * pDimensions;
-+}
-+
-+/** Type description of an enum. The type class of this description is TypeClass_ENUM.
-+*/
-+[ StructLayout(LayoutKind.Sequential) ]
-+public unsafe struct EnumTypeDescription
-+{
-+ /** inherits all members of TypeDescription
-+ */
-+ public TypeDescription aBase;
-+
-+ /** first value of the enum
-+ */
-+ public int nDefaultEnumValue;
-+ /** number of enum values
-+ */
-+ public int nEnumValues;
-+ /** names of enum values
-+ */
-+ public uno.rtl.UString ** ppEnumNames;
-+ /** values of enum (corresponding to names in similar order)
-+ */
-+ public int * pEnumValues;
-+}
-+
-+/** Description of an interface method parameter.
-+*/
-+[ StructLayout(LayoutKind.Sequential) ]
-+public unsafe struct MethodParameter
-+{
-+ /** name of parameter
-+ */
-+ public uno.rtl.UString * pName;
-+ /** type of parameter
-+ */
-+ public TypeDescriptionReference * pTypeRef;
-+ /** true: the call type of this parameter is [in] or [inout]
-+ false: the call type of this parameter is [out]
-+ */
-+ public byte bIn;
-+ /** true: the call type of this parameter is [out] or [inout]
-+ false: the call type of this parameter is [in]
-+ */
-+ public byte bOut;
-+}
-+
-+/** Common base type description of InterfaceMethodTypeDescription and
-+ InterfaceAttributeTypeDescription.
-+*/
-+[ StructLayout(LayoutKind.Sequential) ]
-+public unsafe struct InterfaceMemberTypeDescription
-+{
-+ /** inherits all members of TypeDescription
-+ */
-+ public TypeDescription aBase;
-+
-+ /** position of member in the interface including the number of members of
-+ any base interfaces
-+ */
-+ public int nPosition;
-+ /** name of member
-+ */
-+ public uno.rtl.UString * pMemberName;
-+}
-+
-+/** Type description of an interface method. The type class of this description is
-+ TypeClass_INTERFACE_METHOD. The size and the alignment are 0.
-+*/
-+[ StructLayout(LayoutKind.Sequential) ]
-+public unsafe struct InterfaceMethodTypeDescription
-+{
-+ /** inherits all members of InterfaceMemberTypeDescription
-+ */
-+ public InterfaceMemberTypeDescription aBase;
-+
-+ /** type of the return value
-+ */
-+ public TypeDescriptionReference * pReturnTypeRef;
-+ /** number of parameters
-+ */
-+ public int nParams;
-+ /** array of parameters
-+ */
-+ public MethodParameter * pParams;
-+ /** number of exceptions
-+ */
-+ public int nExceptions;
-+ /** array of exception types
-+ */
-+ public TypeDescriptionReference ** ppExceptions;
-+ /** determines whether method is declared oneway
-+ */
-+ public byte bOneWay;
-+
-+ /** the interface description this method is a member of
-+
-+ @since #i21150#
-+ */
-+ public InterfaceTypeDescription * pInterface;
-+ /** the inherited direct base method (null for a method that is not
-+ inherited)
-+
-+ @since UDK 3.2.0
-+ */
-+ public TypeDescriptionReference * pBaseRef;
-+ /** if pBaseRef is null, the member position of this method within
-+ pInterface, not counting members inherited from bases; if pBaseRef is
-+ not null, the index of the direct base within pInterface from which this
-+ method is inherited
-+
-+ @since UDK 3.2.0
-+ */
-+ public int nIndex;
-+}
-+
-+/** The description of an interface attribute. The type class of this description is
-+ TypeClass_INTERFACE_ATTRIBUTE. The size and the alignment are 0.
-+*/
-+[ StructLayout(LayoutKind.Sequential) ]
-+public unsafe struct InterfaceAttributeTypeDescription
-+{
-+ /** inherits all members of InterfaceMemberTypeDescription
-+ */
-+ public InterfaceMemberTypeDescription aBase;
-+
-+ /** determines whether attribute is read only
-+ */
-+ public byte bReadOnly;
-+ /** type of the attribute
-+ */
-+ public TypeDescriptionReference * pAttributeTypeRef;
-+
-+ /** the interface description this attribute is a member of
-+
-+ @since #i21150#
-+ */
-+ public InterfaceTypeDescription * pInterface;
-+ /** the inherited direct base attribute (null for an attribute that is not
-+ inherited)
-+
-+ @since UDK 3.2.0
-+ */
-+ public TypeDescriptionReference * pBaseRef;
-+ /** if pBaseRef is null, the member position of this attribute within
-+ pInterface, not counting members inherited from bases; if pBaseRef is
-+ not null, the index of the direct base within pInterface from which this
-+ attribute is inherited
-+
-+ @since UDK 3.2.0
-+ */
-+ public int nIndex;
-+ /** number of getter exceptions
-+
-+ @since UDK 3.2.0
-+ */
-+ public int nGetExceptions;
-+ /** array of getter exception types
-+
-+ @since UDK 3.2.0
-+ */
-+ public TypeDescriptionReference ** ppGetExceptions;
-+ /** number of setter exceptions
-+
-+ @since UDK 3.2.0
-+ */
-+ public int nSetExceptions;
-+ /** array of setter exception types
-+
-+ @since UDK 3.2.0
-+ */
-+ public TypeDescriptionReference ** ppSetExceptions;
-+}
-+
-+/// @HTML
-+/** Type description of an interface.
-+
-+ <p>Not all members are always initialized (not yet initialized members being
-+ null); there are three levels:</p>
-+ <ul>
-+ <li>Minimally, only <code>aBase</code>,
-+ <code>pBaseTypeDescription</code>, <code>aUik</code>,
-+ <code>nBaseTypes</code>, and <code>ppBaseTypes</code> are initialized;
-+ <code>aBase.bComplete</code> is false. This only happens when an
-+ interface type description is created with
-+ <code>static_mi_interface_type_init</code> or
-+ <code>static_interface_type_init</code>.</li>
-+
-+ <li>At the next level, <code>nMembers</code>, <code>ppMembers</code>,
-+ <code>nAllMembers</code>, <code>ppAllMembers</code> are also
-+ initialized; <code>aBase.bComplete</code> is still false. This happens
-+ when an interface type description is created with
-+ <code>typedescription_newMIInterface</cocde> or
-+ <code>typedescription_newInterface</code>.</li>
-+
-+ <li>At the final level, <code>pMapMemberIndexToFunctionIndex</code>,
-+ <code>nMapFunctionIndexToMemberIndex</code>, and
-+ <code>pMapFunctionIndexToMemberIndex</code> are also initialized;
-+ <code>aBase.bComplete</code> is true. This happens after a call to
-+ <code>typedescription_complete</code>.</li>
-+ </ul>
-+*/
-+[ StructLayout(LayoutKind.Sequential) ]
-+public unsafe struct InterfaceTypeDescription
-+/// @NOHTML
-+{
-+ /** inherits all members of TypeDescription
-+ */
-+ public TypeDescription aBase;
-+
-+ /** pointer to base type description, else 0
-+
-+ @deprecated
-+ use nBaseTypes and ppBaseTypes instead
-+ */
-+ public InterfaceTypeDescription * pBaseTypeDescription;
-+ /** unique identifier of interface
-+ */
-+ public Uik aUik;
-+ /** number of members
-+ */
-+ public int nMembers;
-+ /** array of members; references attributes or methods
-+ */
-+ public TypeDescriptionReference ** ppMembers;
-+ /** number of members including members of base interface
-+ */
-+ public int nAllMembers;
-+ /** array of members including members of base interface; references attributes or methods
-+ */
-+ public TypeDescriptionReference ** ppAllMembers;
-+ /** array mapping index of the member description to an index doubling for read-write
-+ attributes (called function index); size of array is nAllMembers
-+ */
-+ public int * pMapMemberIndexToFunctionIndex;
-+ /** number of members plus number of read-write attributes
-+ */
-+ public int nMapFunctionIndexToMemberIndex;
-+ /** array mapping function index to member index; size of arry is nMapFunctionIndexToMemberIndex
-+ */
-+ public int * pMapFunctionIndexToMemberIndex;
-+ /** number of base types
-+
-+ @since UDK 3.2.0
-+ */
-+ public int nBaseTypes;
-+ /** array of base type descriptions
-+
-+ @since UDK 3.2.0
-+ */
-+ public InterfaceTypeDescription ** ppBaseTypes;
-+
-+ [ DllImport("uno_cppu", EntryPoint="typelib_typedescription_release") ]
-+ public static extern void Release(/* InterfaceTypeDescription */ void *td);
-+
-+ [ DllImport("uno_cppu", EntryPoint="typelib_typedescription_acquire") ]
-+ public static extern void Acquire(/* InterfaceTypeDescription */ void *td);
-+
-+ [ DllImport("uno_cppu", EntryPoint="typelib_typedescription_equals") ]
-+ public static extern bool Equal(/* InterfaceTypeDescription */ void *td1, /* InterfaceTypeDescription */ void *td2);
-+}
-+
-+/** Init struct of compound members for typedescription_new().
-+*/
-+[ StructLayout(LayoutKind.Sequential) ]
-+public unsafe struct CompoundMember_Init
-+{
-+ /** type class of compound member
-+ */
-+ public int eTypeClass;
-+ /** name of type of compound member
-+
-+ For a member of an instantiated polymorphic struct type that is of
-+ parameterized type, this will be a null pointer.
-+ */
-+ public uno.rtl.UString * pTypeName;
-+ /** name of compound member
-+ */
-+ public uno.rtl.UString * pMemberName;
-+}
-+
-+/**
-+ Init struct of members for typedescription_newStruct().
-+
-+ @since UDK 3.2.0
-+ */
-+[ StructLayout(LayoutKind.Sequential) ]
-+public struct StructMember_Init
-+{
-+ /**
-+ Derived from CompoundMember_Init;
-+ */
-+ public CompoundMember_Init aBase;
-+
-+ /**
-+ Flag specifying whether the member is of parameterized type (true) or
-+ explict type (false).
-+ */
-+ public byte bParameterizedType;
-+}
-+
-+/** Init struct of interface methods for typedescription_new().
-+*/
-+[ StructLayout(LayoutKind.Sequential) ]
-+public unsafe struct Parameter_Init
-+{
-+ /** type class of parameter
-+ */
-+ public int eTypeClass;
-+ /** name of parameter
-+ */
-+ public uno.rtl.UString * pTypeName;
-+ /** name of parameter
-+ */
-+ public uno.rtl.UString * pParamName;
-+ /** true, if parameter is [in] or [inout]
-+ */
-+ public byte bIn;
-+ /** true, if parameter is [out] or [inout]
-+ */
-+ public byte bOut;
-+}
-+
-+/** Init struct of union types for typedescription_newUnion().
-+*/
-+[ StructLayout(LayoutKind.Sequential) ]
-+public unsafe struct Union_Init
-+{
-+ /** union member discriminant
-+ */
-+ public long nDiscriminant;
-+ /** union member name
-+ */
-+ public uno.rtl.UString * pMemberName;
-+ /** union member type
-+ */
-+ public TypeDescriptionReference * pTypeRef;
-+}
-+
-+}
diff --git a/patches/mono/bridges-source-mono_uno-uik-cs.diff b/patches/mono/bridges-source-mono_uno-uik-cs.diff
deleted file mode 100644
index 9606ba0cc..000000000
--- a/patches/mono/bridges-source-mono_uno-uik-cs.diff
+++ /dev/null
@@ -1,81 +0,0 @@
---- /dev/null
-+++ bridges/source/mono_uno/uik.cs
-@@ -0,0 +1,78 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile: $
-+ *
-+ * $Revision: $
-+ *
-+ * last change: $Author: $ $Date: $
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+namespace uno.Typelib {
-+
-+using System.Runtime.InteropServices;
-+
-+/** Binary typelib uik struct. Internally not used anymore.
-+*/
-+[ StructLayout(LayoutKind.Sequential) ]
-+public struct Uik
-+{
-+ int m_Data1;
-+ short m_Data2;
-+ short m_Data3;
-+ int m_Data4;
-+ int m_Data5;
-+}
-+
-+}
diff --git a/patches/mono/bridges-source-mono_uno-uno_glue-cxx.diff b/patches/mono/bridges-source-mono_uno-uno_glue-cxx.diff
deleted file mode 100644
index f17a6d5b3..000000000
--- a/patches/mono/bridges-source-mono_uno-uno_glue-cxx.diff
+++ /dev/null
@@ -1,120 +0,0 @@
---- /dev/null
-+++ bridges/source/mono_uno/uno_glue.cxx
-@@ -0,0 +1,117 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile: $
-+ *
-+ * $Revision: $
-+ *
-+ * last change: $Author: $ $Date: $
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include "rtl/ustring.h"
-+#include "uno/dispatcher.h"
-+#include "uno/environment.h"
-+#include <stdio.h>
-+
-+extern "C" {
-+
-+/* uno_Interface */
-+
-+void SAL_CALL cli_uno_interface_acquire( uno_Interface *pInterface )
-+ SAL_THROW_EXTERN_C()
-+{
-+ (*pInterface->acquire)( pInterface );
-+}
-+
-+void SAL_CALL cli_uno_interface_release( uno_Interface *pInterface )
-+ SAL_THROW_EXTERN_C()
-+{
-+ (*pInterface->release)( pInterface );
-+}
-+
-+void SAL_CALL cli_uno_interface_dispatch(
-+ uno_Interface *pInterface, const struct _typelib_TypeDescription *pMemberType,
-+ void *pReturn, void *pArgs[], uno_Any **ppException )
-+ SAL_THROW_EXTERN_C()
-+{
-+ (*pInterface->pDispatcher)( pInterface, pMemberType, pReturn, pArgs, ppException );
-+}
-+
-+/* uno_ExtEnvironment */
-+
-+void SAL_CALL cli_uno_environment_getObjectIdentifier(
-+ uno_ExtEnvironment *pUnoEnv, rtl_uString **ppOId, uno_Interface *pUnoI )
-+ SAL_THROW_EXTERN_C()
-+{
-+ (*pUnoEnv->getObjectIdentifier)( pUnoEnv, ppOId, pUnoI );
-+}
-+
-+void SAL_CALL cli_uno_environment_registerInterface(
-+ uno_ExtEnvironment *pUnoEnv, void **ppInterface, rtl_uString *pOId,
-+ struct _typelib_InterfaceTypeDescription *pTypeDescr )
-+ SAL_THROW_EXTERN_C()
-+{
-+ (*pUnoEnv->registerInterface)( pUnoEnv, ppInterface, pOId, pTypeDescr );
-+}
-+
-+void SAL_CALL cli_uno_environment_getRegisteredInterface(
-+ uno_ExtEnvironment *pUnoEnv, void **ppInterface, rtl_uString *pOId,
-+ struct _typelib_InterfaceTypeDescription *pTypeDescr )
-+ SAL_THROW_EXTERN_C()
-+{
-+ (*pUnoEnv->getRegisteredInterface)( pUnoEnv, ppInterface, pOId, pTypeDescr );
-+}
-+
-+
-+}
diff --git a/patches/mono/bridges-source-mono_uno-uno_proxy-cs.diff b/patches/mono/bridges-source-mono_uno-uno_proxy-cs.diff
deleted file mode 100644
index 4bff3ca18..000000000
--- a/patches/mono/bridges-source-mono_uno-uno_proxy-cs.diff
+++ /dev/null
@@ -1,601 +0,0 @@
---- /dev/null
-+++ bridges/source/mono_uno/uno_proxy.cs
-@@ -0,0 +1,598 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile: $
-+ *
-+ * $Revision: $
-+ *
-+ * last change: $Author: $ $Date: $
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+using System;
-+using System.Collections;
-+using System.Diagnostics;
-+using System.Reflection;
-+using System.Runtime.InteropServices;
-+using System.Runtime.Remoting;
-+using System.Runtime.Remoting.Messaging;
-+using System.Runtime.Remoting.Proxies;
-+
-+using uno.Binary;
-+using uno.Typelib;
-+using uno.rtl;
-+
-+namespace com.sun.star.bridges.mono_uno /* FIXME use some uno.foo namespace ? */
-+{
-+
-+public unsafe class UnoInterfaceInfo
-+{
-+ public IntPtr UnoInterface; // wrapped interface
-+ public Type Type; // mapped type
-+ public com.sun.star.bridges.mono_uno.Bridge Bridge;
-+ public InterfaceTypeDescription *TypeDesc;
-+
-+ public UnoInterfaceInfo(com.sun.star.bridges.mono_uno.Bridge bridge,
-+ IntPtr unoInterface,
-+ InterfaceTypeDescription *td)
-+ {
-+ Bridge = bridge;
-+ UnoInterface = unoInterface;
-+ Type = Bridge.MapUnoType((TypeDescription *)td);
-+ uno.Binary.Interface.Acquire(UnoInterface);
-+ TypeDesc = td;
-+ InterfaceTypeDescription.Acquire(TypeDesc);
-+
-+ fixed (InterfaceTypeDescription **ppTypeDesc = &TypeDesc)
-+ if (((TypeDescription *)TypeDesc)->bComplete == 0 &&
-+ TypeDescription.Complete((TypeDescription **)ppTypeDesc))
-+ {
-+ // FIXME throw a uno runtime exception
-+ }
-+ }
-+
-+ ~UnoInterfaceInfo()
-+ {
-+ Bridge.RevokeFromUnoEnvironment(UnoInterface);
-+ uno.Binary.Interface.Release(UnoInterface);
-+ InterfaceTypeDescription.Release(TypeDesc);
-+ }
-+}
-+
-+public unsafe class UnoInterfaceProxy: RealProxy, IRemotingTypeInfo
-+{
-+ /** used for IRemotingTypeInfo.TypeName
-+ */
-+ string typeName = "System.Object";
-+
-+ /** The list is filled with UnoInterfaceInfo objects. The list can only
-+ grow and elements are never changed. If an element was added it
-+ must not be changed!
-+ */
-+ ArrayList interfaces = new ArrayList(10); // of UnoInterfaceInfo
-+
-+ /** The list is filled with additional UnoInterfaceProxy object due
-+ to aggregation via bridges. Though the latter is strongly
-+ discouraged, this has to be supported.
-+ */
-+ ArrayList additionalProxies = new ArrayList();
-+
-+ Bridge bridge;
-+ string oid;
-+
-+ private unsafe UnoInterfaceProxy(Bridge bridge, IntPtr unoInterface,
-+ InterfaceTypeDescription *TD, string oid)
-+ : base(typeof(MarshalByRefObject)) // FIXME is there a better type?
-+ {
-+ this.bridge = bridge;
-+ this.oid = oid;
-+ AddUnoInterface(unoInterface, TD);
-+ }
-+
-+ ~UnoInterfaceProxy()
-+ {
-+ // FIXME should revokeInterface from environment, but can't
-+ // access managed string oid any longer.
-+ }
-+
-+ public static unsafe object Create(Bridge bridge, IntPtr unoInterface,
-+ InterfaceTypeDescription *TD, string oid)
-+ {
-+ UnoInterfaceProxy realProxy = new UnoInterfaceProxy(bridge, unoInterface,
-+ TD, oid);
-+ object proxy = realProxy.GetTransparentProxy();
-+ bridge.RegisterWithCliEnvironment(proxy, oid);
-+ return proxy;
-+ }
-+
-+ // RealProxy members
-+ public unsafe override IMessage Invoke(IMessage request)
-+ {
-+ IMethodCallMessage callmsg = (IMethodCallMessage)request;
-+
-+ // Find out which UNO interface is being called
-+ string typeName = callmsg.TypeName;
-+ typeName = typeName.Substring(0, typeName.IndexOf(','));
-+
-+ // Special Handling for System.Object methods
-+ if (typeName.IndexOf("System.Object") != -1)
-+ {
-+ return InvokeObjectMethod(request);
-+ }
-+
-+ Type typeBeingCalled = Bridge.LoadCliType(typeName);
-+ UnoInterfaceInfo info = FindInfo(typeBeingCalled);
-+
-+ Trace.Assert(info != null);
-+
-+ string methodName = callmsg.MethodName;
-+ TypeDescriptionReference **ppAllMembers =
-+ info.TypeDesc->ppAllMembers;
-+ int numMembers = info.TypeDesc->nAllMembers;
-+ for (int i = numMembers - 1; i >= 0; --i)
-+ {
-+ TypeDescriptionReference *memberTD = *(ppAllMembers + i);
-+
-+ // FIXME do without string conversion?
-+ string memberTypeName = UString.UStringToString(memberTD->pTypeName);
-+ // check methodName against fully qualified memberTypeName
-+ // of memberTD; memberTypeName is of the form
-+ // <name> "::" <methodName> *(":@" <idx> "," <idx> ":" <name>)
-+
-+ int offset = memberTypeName.IndexOf(':') + 2;
-+ int remainder = memberTypeName.Length - offset;
-+ if (memberTD->eTypeClass == TypeClass.INTERFACE_METHOD)
-+ {
-+ if ((methodName.Length == remainder ||
-+ (methodName.Length < remainder &&
-+ memberTypeName[offset + methodName.Length] == ':')) &&
-+ String.Compare(memberTypeName, offset,
-+ methodName, 0, methodName.Length) == 0)
-+ {
-+ TypeDescription *methodTD = null;
-+ // FIXME release it
-+ TypeDescriptionReference.GetDescription(&methodTD, memberTD);
-+
-+ uno.Any exception;
-+ uno.Any result =
-+ bridge.CallUno(info.UnoInterface,
-+ methodTD,
-+ ((InterfaceMethodTypeDescription *)methodTD)->pReturnTypeRef,
-+ ((InterfaceMethodTypeDescription *)methodTD)->nParams,
-+ ((InterfaceMethodTypeDescription *)methodTD)->pParams,
-+ callmsg.Args,
-+ /* FIXME this is an implementation detail,
-+ documented on MSDN, but still an implementation
-+ detail. cli_uno does the same */
-+ (System.Type[])callmsg.MethodSignature,
-+ out exception);
-+ return ConstructReturnMessage(result, callmsg.Args,
-+ (InterfaceMethodTypeDescription *)methodTD,
-+ callmsg, exception);
-+ }
-+ }
-+ else // INTERFACE_ATTRIBUTE
-+ {
-+ if (methodName.Length > 4 &&
-+ (methodName.Length - 4 == remainder ||
-+ (methodName.Length - 4 < remainder &&
-+ memberTypeName[offset + methodName.Length - 4] == ':')) &&
-+ methodName[1] == 'e' && methodName[2] == 't' &&
-+ String.Compare(memberTypeName, offset,
-+ methodName, 4, methodName.Length - 4) == 0)
-+ {
-+ InterfaceAttributeTypeDescription *attributeTD = null;
-+ // FIXME release it
-+ TypeDescriptionReference.GetDescription( (TypeDescription **)&attributeTD,
-+ memberTD );
-+ uno.Any exception;
-+ uno.Any result;
-+
-+ if (methodName[0] == 'g') // "get"
-+ {
-+ result = bridge.CallUno(info.UnoInterface,
-+ (TypeDescription *)attributeTD,
-+ attributeTD->pAttributeTypeRef,
-+ 0, null, null, null,
-+ out exception);
-+ return ConstructReturnMessage(result, null, null,
-+ callmsg, exception);
-+ }
-+ else if (methodName[0] == 's') // "set"
-+ {
-+ if (attributeTD->bReadOnly != 0)
-+ /* FIXME should we generate an exception? */
-+ return ConstructReturnMessage(uno.Any.VOID, null, null,
-+ callmsg, uno.Any.VOID);
-+
-+ MethodParameter param;
-+ param.pTypeRef = attributeTD->pAttributeTypeRef;
-+ param.bIn = 1;
-+ param.bOut = 0;
-+
-+ result =
-+ bridge.CallUno(info.UnoInterface,
-+ (TypeDescription *)attributeTD,
-+ TypeDescription.VoidType,
-+ 1, &param,
-+ callmsg.Args, null, /* FIXME ??? from cli_uno */
-+ out exception);
-+ return ConstructReturnMessage(uno.Any.VOID, null, null,
-+ callmsg, exception);
-+ }
-+ break;
-+ }
-+ }
-+ }
-+ // FIXME check if the message of the exception is not crippled
-+
-+ // the thing that should not be... no method info found!
-+ // FIXME throw unoidl.com.sun.star.uno.RuntimeException
-+
-+ return null;
-+ }
-+
-+ // IRemotingTypeInfo members
-+ public string TypeName
-+ {
-+ get { return typeName; }
-+ set { typeName = value; }
-+ }
-+
-+ public unsafe bool CanCastTo(Type fromType, object o)
-+ {
-+ if (fromType == typeof(Object))
-+ return true;
-+
-+ lock (this) {
-+ if (FindInfo(fromType) != null)
-+ // type is already in our list of Interfaces
-+ return true;
-+
-+ // queryInterface for the required type
-+ // there is always a least one interface in our list
-+ UnoInterfaceInfo info = (UnoInterfaceInfo)interfaces[0];
-+ // ppAllMembers[0] corresponds to queryInterface
-+ TypeDescription *queryI = null;
-+
-+ TypeDescriptionReference.GetDescription( // FIXME release it when you're done
-+ &queryI, *(info.TypeDesc->ppAllMembers));
-+
-+ object[] args = new object[] { fromType };
-+ uno.Any exception;
-+
-+ uno.Any result = bridge.CallUno(info.UnoInterface,
-+ queryI,
-+ ((InterfaceMethodTypeDescription *)queryI)->pReturnTypeRef,
-+ 1, ((InterfaceMethodTypeDescription *)queryI)->pParams, args, null,
-+ out exception);
-+
-+ // queryInterface doesn't throw exceptions.
-+
-+ if (result.Type != typeof(void)) // result has a value
-+ {
-+ if (FindInfo(fromType) != null)
-+ {
-+ // the proxy supports the requested interface now
-+ return true;
-+ }
-+
-+ // via aggregation: it is possible that queryInterface() returns
-+ // and interface with a different oid.
-+ // That way, this type is supported for the CLI
-+ // interpreter (CanCastTo() returns true)
-+ object obj = result.Value;
-+ if (RemotingServices.IsTransparentProxy(obj))
-+ {
-+ UnoInterfaceProxy proxy =
-+ (UnoInterfaceProxy)RemotingServices.GetRealProxy(obj);
-+ additionalProxies.Add(proxy);
-+ return true;
-+ }
-+ }
-+ }
-+ return false;
-+ }
-+
-+ // internals
-+ public unsafe void AddUnoInterface(IntPtr unoInterface, InterfaceTypeDescription *TD)
-+ {
-+ lock (this)
-+ {
-+ foreach (UnoInterfaceInfo info in interfaces)
-+ {
-+ if (InterfaceTypeDescription.Equal(info.TypeDesc, TD))
-+ return;
-+ }
-+ // This proxy does not contain the unoInterface. Add it.
-+ bridge.RegisterWithUnoEnvironment(ref unoInterface,
-+ oid, TD);
-+ interfaces.Add(new UnoInterfaceInfo(bridge, unoInterface, TD));
-+ }
-+ }
-+
-+ UnoInterfaceInfo FindInfo(Type type)
-+ {
-+ foreach (UnoInterfaceInfo info in interfaces)
-+ {
-+ if (type.IsAssignableFrom(info.Type))
-+ return info;
-+ }
-+ foreach (UnoInterfaceProxy proxy in additionalProxies)
-+ {
-+ UnoInterfaceInfo info = proxy.FindInfo(type);
-+ if (info != null)
-+ return info;
-+ }
-+ return null;
-+ }
-+
-+ static Type MapUnoType(TypeDescription *TD)
-+ {
-+ return MapUnoType(TD->pWeakRef);
-+ }
-+
-+ static Type MapUnoType(TypeDescriptionReference *TD)
-+ {
-+ Type result;
-+
-+ switch(TD->eTypeClass)
-+ {
-+ case TypeClass.VOID:
-+ result = typeof(void);
-+ break;
-+ case TypeClass.CHAR:
-+ result = typeof(char);
-+ break;
-+ case TypeClass.BOOLEAN:
-+ result = typeof(bool);
-+ break;
-+ case TypeClass.BYTE:
-+ result = typeof(byte);
-+ break;
-+ case TypeClass.SHORT:
-+ result = typeof(short);
-+ break;
-+ case TypeClass.UNSIGNED_SHORT:
-+ result = typeof(ushort);
-+ break;
-+ case TypeClass.LONG:
-+ result = typeof(int);
-+ break;
-+ case TypeClass.UNSIGNED_LONG:
-+ result = typeof(uint);
-+ break;
-+ case TypeClass.HYPER:
-+ result = typeof(long);
-+ break;
-+ case TypeClass.UNSIGNED_HYPER:
-+ result = typeof(ulong);
-+ break;
-+ case TypeClass.FLOAT:
-+ result = typeof(float);
-+ break;
-+ case TypeClass.DOUBLE:
-+ result = typeof(double);
-+ break;
-+ case TypeClass.STRING:
-+ result = typeof(string);
-+ break;
-+ case TypeClass.TYPE:
-+ result = typeof(Type);
-+ break;
-+ case TypeClass.ANY:
-+ result = typeof(uno.Any);
-+ break;
-+ case TypeClass.ENUM:
-+ case TypeClass.STRUCT:
-+ case TypeClass.EXCEPTION:
-+ result = Bridge.LoadCliType(TD->pTypeName);
-+ break;
-+ case TypeClass.INTERFACE:
-+ // special handling for XInterface, since it does not exist in cli.
-+ if (UString.UStringToString(TD->pTypeName) == "com.sun.star.uno.XInterface")
-+ result = typeof(object);
-+ else
-+ result = Bridge.LoadCliType(TD->pTypeName);
-+ break;
-+ case TypeClass.SEQUENCE:
-+ {
-+ // FIXME do something with TD here?
-+ TypeDescriptionReference *elementTDRef =
-+ ((IndirectTypeDescription *)TD)->pType;
-+ switch (elementTDRef->eTypeClass)
-+ {
-+ case TypeClass.CHAR:
-+ result = Type.GetType("System.Char[]");
-+ break;
-+ case TypeClass.BOOLEAN:
-+ result = Type.GetType("System.Boolean[]");
-+ break;
-+ case TypeClass.BYTE:
-+ result = Type.GetType("System.Byte[]");
-+ break;
-+ case TypeClass.SHORT:
-+ result = Type.GetType("System.Int16[]");
-+ break;
-+ case TypeClass.UNSIGNED_SHORT:
-+ result = Type.GetType("System.UInt16[]");
-+ break;
-+ case TypeClass.LONG:
-+ result = Type.GetType("System.Int32[]");
-+ break;
-+ case TypeClass.UNSIGNED_LONG:
-+ result = Type.GetType("System.UInt32[]");
-+ break;
-+ case TypeClass.HYPER:
-+ result = Type.GetType("System.Int64[]");
-+ break;
-+ case TypeClass.UNSIGNED_HYPER:
-+ result = Type.GetType("System.UInt64[]");
-+ break;
-+ case TypeClass.FLOAT:
-+ result = Type.GetType("System.Single[]");
-+ break;
-+ case TypeClass.DOUBLE:
-+ result = Type.GetType("System.Double[]");
-+ break;
-+ case TypeClass.STRING:
-+ result = Type.GetType("System.String[]");
-+ break;
-+ case TypeClass.TYPE:
-+ result = Type.GetType("System.Type[]");
-+ break;
-+ case TypeClass.ANY:
-+ case TypeClass.ENUM:
-+ case TypeClass.EXCEPTION:
-+ case TypeClass.STRUCT:
-+ case TypeClass.INTERFACE:
-+ case TypeClass.SEQUENCE:
-+ result = Bridge.LoadCliType(TD->pTypeName);
-+ break;
-+ default:
-+ // FIXME can't happen
-+ result = null;
-+ break;
-+ }
-+ break;
-+ }
-+ default:
-+ // FIXME can't happen
-+ result = null;
-+ break;
-+ }
-+ return result;
-+ }
-+
-+ IMessage InvokeObjectMethod(IMessage request)
-+ {
-+ IMethodMessage methodmsg = (IMethodMessage)request;
-+ object ret;
-+ switch (methodmsg.MethodName)
-+ {
-+ case "Equals":
-+ ret = false;
-+
-+ if (RemotingServices.IsTransparentProxy(methodmsg.Args[0]))
-+ {
-+ UnoInterfaceProxy unoProxy =
-+ RemotingServices.GetRealProxy(methodmsg.Args[0]) as UnoInterfaceProxy;
-+
-+ if (unoProxy != null)
-+ {
-+ ret = oid.Equals(unoProxy.Oid);
-+ break;
-+ }
-+ }
-+ break;
-+ case "GetHashCode":
-+ ret = oid.GetHashCode();
-+ break;
-+ case "GetType":
-+ ret = typeof(System.Object);
-+ break;
-+ case "ToString":
-+ ret = String.Format("Uno object proxy. OID: {0}", oid);
-+ break;
-+ default:
-+ // Cannot happen
-+ ret = null;
-+ break;
-+ }
-+
-+ return new ReturnMessage(ret, new object[0], 0,
-+ methodmsg.LogicalCallContext,
-+ (IMethodCallMessage)methodmsg);
-+ }
-+
-+ public string Oid {
-+ get { return oid; }
-+ }
-+
-+ IMessage ConstructReturnMessage(uno.Any result, object[] args,
-+ InterfaceMethodTypeDescription *methodTD,
-+ IMethodCallMessage callmsg, uno.Any exception)
-+ {
-+ if (exception.hasValue())
-+ {
-+ throw (System.Exception)exception.Value;
-+ }
-+ else
-+ {
-+ if (args != null)
-+ {
-+ object[] outArgs = new object[methodTD->nParams];
-+ int numOutArgs = 0;
-+ for (int i = 0; i < methodTD->nParams; ++i)
-+ {
-+ if (methodTD->pParams[i].bOut == 1)
-+ {
-+ outArgs[i] = args[i];
-+ ++numOutArgs;
-+ }
-+ }
-+ return new ReturnMessage(result.Value, outArgs, numOutArgs,
-+ callmsg.LogicalCallContext,
-+ callmsg);
-+ }
-+ else
-+ {
-+ return new ReturnMessage(result.Value, null, 0,
-+ callmsg.LogicalCallContext,
-+ callmsg);
-+ }
-+ }
-+ }
-+}
-+
-+}
diff --git a/patches/mono/cli_ure-source-bootstrap-assembly-cs.diff b/patches/mono/cli_ure-source-bootstrap-assembly-cs.diff
deleted file mode 100644
index 49d7e5f76..000000000
--- a/patches/mono/cli_ure-source-bootstrap-assembly-cs.diff
+++ /dev/null
@@ -1,7 +0,0 @@
---- /dev/null
-+++ cli_ure/source/bootstrap/assembly.cs
-@@ -0,0 +1,4 @@
-+[assembly:System.Reflection.AssemblyProduct( "CLI-UNO Language Binding" )]
-+[assembly:System.Reflection.AssemblyDescription( "CLI-UNO Helper Library" )]
-+[assembly:System.Reflection.AssemblyDelaySign(false)]
-+[assembly:System.Reflection.AssemblyCompany( "OpenOffice.org" )]
diff --git a/patches/mono/cli_ure-source-bootstrap-makefile-mk.diff b/patches/mono/cli_ure-source-bootstrap-makefile-mk.diff
deleted file mode 100644
index 2647bee23..000000000
--- a/patches/mono/cli_ure-source-bootstrap-makefile-mk.diff
+++ /dev/null
@@ -1,145 +0,0 @@
---- /dev/null
-+++ cli_ure/source/bootstrap/makefile.mk
-@@ -0,0 +1,142 @@
-+#************************************************************************
-+#
-+# $RCSfile: $
-+#
-+# $Revision: $
-+#
-+# last change: $Author: $ $Date: $
-+#
-+# The Contents of this file are made available subject to the terms of
-+# either of the following licenses
-+#
-+# - GNU Lesser General Public License Version 2.1
-+# - Sun Industry Standards Source License Version 1.1
-+#
-+# Sun Microsystems Inc., October, 2000
-+#
-+# GNU Lesser General Public License Version 2.1
-+# =============================================
-+# Copyright 2000 by Sun Microsystems, Inc.
-+# 901 San Antonio Road, Palo Alto, CA 94303, USA
-+#
-+# This library is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU Lesser General Public
-+# License version 2.1, as published by the Free Software Foundation.
-+#
-+# This library 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 for more details.
-+#
-+# You should have received a copy of the GNU Lesser General Public
-+# License along with this library; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+# MA 02111-1307 USA
-+#
-+#
-+# Sun Industry Standards Source License Version 1.1
-+# =================================================
-+# The contents of this file are subject to the Sun Industry Standards
-+# Source License Version 1.1 (the "License"); You may not use this file
-+# except in compliance with the License. You may obtain a copy of the
-+# License at http://www.openoffice.org/license.html.
-+#
-+# Software provided under this License is provided on an "AS IS" basis,
-+# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+# See the License for the specific provisions governing your rights and
-+# obligations concerning the Software.
-+#
-+# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+#
-+# Copyright: 2000 by Sun Microsystems, Inc.
-+#
-+# All Rights Reserved.
-+#
-+# Contributor(s): _______________________________________
-+#
-+#
-+#***********************************************************************/
-+
-+PRJ = ..$/..
-+PRJNAME = cli_ure
-+
-+TARGET = cli_uno_glue
-+ENABLE_EXCEPTIONS=TRUE
-+
-+.INCLUDE : settings.mk
-+.INCLUDE : $(PRJ)$/util$/makefile.pmk
-+
-+.IF "$(USE_SHELL)"!="4nt"
-+ECHOQUOTE='
-+# emacs is a fool: '
-+.ELSE
-+ECHOQUOTE=
-+.ENDIF
-+
-+.IF "$(ENABLE_MONO)" != "YES"
-+dummy:
-+ @echo "Mono binding disabled - skipping ..."
-+.ELSE
-+
-+#!!! Always change version if code has changed. Provide a publisher
-+#policy assembly!!!
-+ASSEMBLY_VERSION="1.0.0.0"
-+
-+ASSEMBLY_KEY="$(BIN)$/cliuno.snk"
-+
-+ASSEMBLY_ATTRIBUTES = $(MISC)$/assembly_cppuhelper.cs
-+
-+ALLTAR : \
-+ $(SHL1TARGETN) \
-+ $(ASSEMBLY_ATTRIBUTES) \
-+ $(BIN)$/cli_cppuhelper.dll
-+
-+CSFILES = \
-+ managed_bootstrap.cs
-+
-+ASSEMBLY_KEY_X=$(subst,\,\\ $(ASSEMBLY_KEY))
-+
-+$(ASSEMBLY_ATTRIBUTES) .PHONY:
-+ $(GNUCOPY) -p assembly.cs $@
-+ +echo $(ECHOQUOTE) \
-+ [assembly:System.Reflection.AssemblyVersion( $(ASSEMBLY_VERSION) )] \
-+ [assembly:System.Reflection.AssemblyKeyFile($(ASSEMBLY_KEY_X))] $(ECHOQUOTE) \
-+ >> $@
-+
-+EXTERNAL_DIR=$(PRJ)$/..$/external/cli
-+
-+$(OUT)$/bin$/cli_types.dll : $(EXTERNAL_DIR)$/cli_types.dll
-+ +$(COPY) $< $@
-+
-+$(BIN)$/cli_cppuhelper.dll : $(CSFILES) $(OUT)$/bin$/cli_types.dll
-+ +$(CSC) $(CSCFLAGS) \
-+ -target:library \
-+ -out:$@ \
-+ -reference:$(OUT)$/bin$/cli_types.dll \
-+ -reference:System.dll \
-+ $(CSFILES)
-+ @echo "If code has changed then provide a policy assembly and change the version!"
-+
-+CFLAGS += `pkg-config --cflags mono`
-+
-+SLOFILES= \
-+ $(SLO)$/native_glue.obj
-+
-+SHL1OBJS = $(SLOFILES)
-+
-+SHL1STDLIBS = \
-+ $(SALLIB) \
-+ $(CPPULIB) \
-+ $(CPPUHELPERLIB)
-+
-+SHL1STDLIBS += `pkg-config --libs mono`
-+
-+SHL1TARGET = $(TARGET)
-+
-+.ENDIF
-+
-+.INCLUDE : $(PRJ)$/util$/target.pmk
-+.INCLUDE : target.mk
-+
diff --git a/patches/mono/cli_ure-source-bootstrap-managed_bootstrap-cs.diff b/patches/mono/cli_ure-source-bootstrap-managed_bootstrap-cs.diff
deleted file mode 100644
index 28bf8c9b1..000000000
--- a/patches/mono/cli_ure-source-bootstrap-managed_bootstrap-cs.diff
+++ /dev/null
@@ -1,143 +0,0 @@
---- /dev/null
-+++ cli_ure/source/bootstrap/managed_bootstrap.cs
-@@ -0,0 +1,140 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile: $
-+ *
-+ * $Revision: $
-+ *
-+ * last change: $Author: $ $Date: $
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+namespace uno.util
-+{
-+
-+using System;
-+using System.Collections;
-+using System.Runtime.InteropServices;
-+
-+public class Bootstrap
-+{
-+ private Bootstrap() {}
-+
-+ public static unoidl.com.sun.star.uno.XComponentContext
-+ defaultBootstrap_InitialComponentContext()
-+ {
-+ return defaultBootstrap_InitialComponentContext(null, null);
-+ }
-+
-+ public static unoidl.com.sun.star.uno.XComponentContext
-+ defaultBootstrap_InitialComponentContext(
-+ string iniFile,
-+ IDictionaryEnumerator bootstrapParameters)
-+ {
-+ if (bootstrapParameters != null)
-+ {
-+ bootstrapParameters.Reset();
-+ while (bootstrapParameters.MoveNext())
-+ {
-+ string key = (string)bootstrapParameters.Key;
-+ string value = (string)bootstrapParameters.Value;
-+
-+ native_bootstrap_set(key, key.Length, value, value.Length);
-+ }
-+ }
-+
-+ System.Console.WriteLine("Bootstrap with ini " + iniFile);
-+ // bootstrap native uno
-+ IntPtr context;
-+ if (iniFile == null)
-+ {
-+ context = native_defaultBootstrap_InitialComponentContext();
-+ }
-+ else
-+ {
-+ context = native_defaultBootstrap_InitialComponentContext(iniFile, iniFile.Length);
-+ }
-+
-+ return (unoidl.com.sun.star.uno.XComponentContext)ExtractObject(context);
-+ }
-+
-+ public static unoidl.com.sun.star.uno.XComponentContext bootstrap()
-+ {
-+ return (unoidl.com.sun.star.uno.XComponentContext)ExtractObject(native_bootstrap());
-+ }
-+
-+ static object ExtractObject(IntPtr managed)
-+ {
-+ GCHandle handle = GCHandle.op_Explicit(managed);
-+ object ret = handle.Target;
-+ handle.Free();
-+ return ret;
-+ }
-+
-+ [DllImport("cli_uno_glue")]
-+ private static extern void native_bootstrap_set(
-+ [MarshalAs(UnmanagedType.LPWStr)] string key, int keyLength,
-+ [MarshalAs(UnmanagedType.LPWStr)] string value, int valueLength);
-+
-+ [DllImport("cli_uno_glue", EntryPoint="native_defaultBootstrap_InitialComponentContext")]
-+ private static extern IntPtr native_defaultBootstrap_InitialComponentContext();
-+
-+ [DllImport("cli_uno_glue", EntryPoint="native_defaultBootstrap_InitialComponentContext_iniFile")]
-+ private static extern IntPtr native_defaultBootstrap_InitialComponentContext(
-+ [MarshalAs(UnmanagedType.LPWStr)] string iniFile, int nameLength);
-+
-+ [DllImport("cli_uno_glue")]
-+ private static extern IntPtr native_bootstrap();
-+}
-+
-+}
diff --git a/patches/mono/cli_ure-source-bootstrap-native_glue-cxx.diff b/patches/mono/cli_ure-source-bootstrap-native_glue-cxx.diff
deleted file mode 100644
index a1f2d1059..000000000
--- a/patches/mono/cli_ure-source-bootstrap-native_glue-cxx.diff
+++ /dev/null
@@ -1,151 +0,0 @@
---- /dev/null
-+++ cli_ure/source/bootstrap/native_glue.cxx
-@@ -0,0 +1,148 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile: $
-+ *
-+ * $Revision: $
-+ *
-+ * last change: $Author: $ $Date: $
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _RTL_USTRING_HXX_
-+#include "rtl/ustring.hxx"
-+#endif
-+#ifndef _RTL_BOOTSTRAP_HXX_
-+#include "rtl/bootstrap.hxx"
-+#endif
-+#ifndef _CPPUHELPER_BOOTSTRAP_HXX_
-+#include "cppuhelper/bootstrap.hxx"
-+#endif
-+#ifndef _UNO_MAPPING_HXX_
-+#include "uno/mapping.hxx"
-+#endif
-+extern "C" {
-+#include "mono/metadata/object.h"
-+}
-+
-+#define OUSTR(x) ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(x) )
-+
-+using namespace com::sun::star::uno;
-+
-+static void * to_cli( Reference< XComponentContext > const & context )
-+{
-+ Mapping mapping( OUSTR( CPPU_CURRENT_LANGUAGE_BINDING_NAME ), OUSTR( UNO_LB_CLI ) );
-+ OSL_ASSERT( mapping.is() );
-+ if (! mapping.is() )
-+ {
-+ // FIXME do something
-+ return 0;
-+ }
-+
-+ return (void *)mono_gchandle_new( (MonoObject *)mapping.mapInterface( context.get(), ::getCppuType( &context ) ), sal_False );
-+}
-+
-+extern "C" {
-+
-+void SAL_CALL native_bootstrap_set( const sal_Unicode* pName, sal_Int32 nNameLength,
-+ const sal_Unicode* pValue, sal_Int32 nValueLength )
-+ SAL_THROW_EXTERN_C()
-+{
-+ ::rtl::OUString const name( pName, nNameLength );
-+ ::rtl::OUString const value( pValue, nValueLength );
-+
-+ ::rtl::Bootstrap::set( name, value );
-+}
-+
-+void * SAL_CALL native_defaultBootstrap_InitialComponentContext()
-+ SAL_THROW_EXTERN_C()
-+{
-+ try {
-+ Reference< XComponentContext > xContext = ::cppu::defaultBootstrap_InitialComponentContext();
-+
-+ return to_cli( xContext );
-+ } catch (const Exception &ex) {
-+ fprintf( stderr, "Exception bootstrapping '%s'\n",
-+ (const sal_Char *) rtl::OUStringToOString( ex.Message, RTL_TEXTENCODING_UTF8 ) );
-+ return NULL;
-+ }
-+}
-+
-+void * SAL_CALL native_defaultBootstrap_InitialComponentContext_iniFile( const sal_Unicode *pIniFile, sal_Int32 nNameLength )
-+ SAL_THROW_EXTERN_C()
-+{
-+ ::rtl::OUString sFileName( pIniFile, nNameLength );
-+
-+ try {
-+ Reference< XComponentContext > xContext = ::cppu::defaultBootstrap_InitialComponentContext( sFileName );
-+ if (!xContext.is())
-+ fprintf( stderr, "Bootstrap context is in fact NULL\n" );
-+
-+ return to_cli( xContext );
-+ } catch (const Exception &ex) {
-+ rtl::OString aIni = rtl::OUStringToOString( sFileName, RTL_TEXTENCODING_UTF8 );
-+ fprintf( stderr, "Exception bootstrapping from ini '%s' (%d) '%s'\n", (const sal_Char *) aIni, nNameLength,
-+ (const sal_Char *) rtl::OUStringToOString( ex.Message, RTL_TEXTENCODING_UTF8 ) );
-+ return NULL;
-+ }
-+}
-+
-+void * SAL_CALL native_bootstrap()
-+ SAL_THROW_EXTERN_C()
-+{
-+ Reference< XComponentContext > xContext = ::cppu::bootstrap();
-+
-+ return to_cli( xContext );
-+}
-+
-+} // extern "C"
diff --git a/patches/mono/mono-build.diff b/patches/mono/mono-build.diff
deleted file mode 100644
index 1160ae4f2..000000000
--- a/patches/mono/mono-build.diff
+++ /dev/null
@@ -1,180 +0,0 @@
-Index: config_office/configure.in
-===================================================================
---- config_office/configure.in.orig 2006-01-08 20:48:38.000000000 +0100
-+++ config_office/configure.in 2006-01-08 20:48:45.000000000 +0100
-@@ -33,6 +33,9 @@ AC_ARG_ENABLE(libart,
- [ --enable-libart Enables the use of libart, instead of GPC for
- polygon clipping.
- ],,)
-+AC_ARG_ENABLE(mono,
-+[ --enable-mono Enables the compilation of the Mono bindings
-+],,)
- AC_ARG_ENABLE(openldap,
- [ --enable-openldap Enables the use of the OpenLDAP LDAP SDK instead
- of the Netscape/Mozilla one
-@@ -1357,6 +1360,8 @@ if test "$COMEX" = "8" -o "$COMEX" = "10
- # Convert to posix path with 8.3 filename restrictions ( No spaces )
- CSC_PATH=`cygpath -d "$CSC_PATH"`
- CSC_PATH=`cygpath -u "$CSC_PATH"`
-+ CSC="$CSC_PATH/csc.exe"
-+ AL="$CSC_PATH/al.exe"
-
- dnl Check nmake.exe for MS VC Toolkit
- if test -n "$ENABLE_VCTK"; then
-@@ -1407,10 +1412,61 @@ if test "$COMEX" = "8" -o "$COMEX" = "10
- FRAME_HOME=`cygpath -u "$FRAME_HOME"`
- fi
- AC_SUBST(MIDL_PATH)
--AC_SUBST(CSC_PATH)
- AC_SUBST(NMAKE_PATH)
- AC_SUBST(FRAME_HOME)
-
-+if test "$_os" = "Linux"; then
-+ AC_MSG_CHECKING([whether to enable Mono bindings])
-+ CSC_PATH=
-+ CSC=
-+ ENABLE_MONO=NO
-+ if test "$enable_mono" != "no" ; then
-+ if test "z$with_csc_path" != "z"; then
-+ if test -x "$with_csc_path/mcs"; then
-+ CSC_PATH="$with_csc_path"
-+ fi
-+ if test -x "$with_csc_path/bin/mcs"; then
-+ CSC_PATH="$with_csc_path/bin"
-+ fi
-+ fi
-+ if test "z$CSC_PATH" = "z"; then
-+ MCS=`which mcs 2>/dev/null`
-+ test -z "$MCS" || CSC_PATH=`dirname $MCS`
-+ fi
-+ AL="$CSC_PATH/al"
-+ MCS="$CSC_PATH/mcs"
-+ if test -x "$MCS" -a -x "$AL"; then
-+ MCS_VERSION=`$MCS --version | cut -d" " -f5`
-+ if test "`echo $MCS_VERSION | cut -d"." -f1`" -gt "1" || \
-+ test "`echo $MCS_VERSION | cut -d"." -f1`" = "1" -a \
-+ "`echo $MCS_VERSION | cut -d"." -f2`" -ge "2" || \
-+ test "`echo $MCS_VERSION | cut -d"." -f1`" = "1" -a \
-+ "`echo $MCS_VERSION | cut -d"." -f2`" = "1" -a \
-+ "`echo $MCS_VERSION | cut -d"." -f3`" -ge "8"; then
-+ ENABLE_MONO=YES
-+ CSC=$MCS
-+ AC_MSG_RESULT([yes])
-+ else
-+ if test -n "$enable_mono" ; then
-+ AC_MSG_ERROR([no, mcs >= 1.1.8 is needed.])
-+ fi
-+ AC_MSG_RESULT([no])
-+ fi
-+ else
-+ if test -n "$enable_mono"; then
-+ AC_MSG_ERROR([mcs or al not found. Make sure they're in the path or use --with-csc-path])
-+ fi
-+ AC_MSG_RESULT([no])
-+ fi
-+ else
-+ AC_MSG_RESULT([no])
-+ fi
-+fi
-+AC_SUBST(CSC_PATH)
-+AC_SUBST(CSC)
-+AC_SUBST(AL)
-+AC_SUBST(ENABLE_MONO)
-+
- dnl ===================================================================
- dnl Check if stdc headers are available excluding windows.
- dnl ===================================================================
-Index: cli_ure/util/target.pmk
-===================================================================
---- cli_ure/util/target.pmk.orig 2006-01-08 20:48:38.000000000 +0100
-+++ cli_ure/util/target.pmk 2006-01-08 20:48:40.000000000 +0100
-@@ -42,7 +42,7 @@ CSCFLAGS = -warnaserror+ -incremental- -
- .IF "$(product)" == ""
- CSCFLAGS += -checked+ -define:DEBUG -define:TRACE
- .ELSE
--CSCFLAGS += -o
-+CSCFLAGS += -optimize
- .ENDIF
-
- .ELSE # debug
-Index: cli_ure/util/makefile.pmk
-===================================================================
---- cli_ure/util/makefile.pmk.orig 2006-01-08 20:48:38.000000000 +0100
-+++ cli_ure/util/makefile.pmk 2006-01-08 20:48:40.000000000 +0100
-@@ -35,7 +35,7 @@
-
- # no translation here anyway
- .IF "$(L10N_framework)"==""
--.IF "$(COM)$(COMEX)" == "MSC8" || "$(COM)$(COMEX)"== "MSC10"
-+.IF "$(COM)$(COMEX)" == "MSC8" || "$(COM)$(COMEX)"== "MSC10" || "$(ENABLE_MONO)" == "YES"
- BUILD_FOR_CLI = "true"
- .ENDIF
- .ENDIF # "L10N_framework"==""
-Index: config_office/set_soenv.in
-===================================================================
---- config_office/set_soenv.in.orig 2006-01-08 20:48:38.000000000 +0100
-+++ config_office/set_soenv.in 2006-01-08 20:48:53.000000000 +0100
-@@ -1600,6 +1600,10 @@ ToFile( "MKDEPENDSOLVER", "TRUE",
- # (c = comment, e = environment variable, a = alias )
- ToFile( "Platform dependent constant values.", $empty, "c" );
- ToFile( "SOLAR_JAVA", $SOLAR_JAVA, "e" );
-+ToFile( "ENABLE_MONO", "@ENABLE_MONO@", "e" );
-+ToFile( "CSC", "@CSC@", "e" );
-+ToFile( "AL", "@AL@", "e" );
-+ToFile( "CSC_PATH", "@CSC_PATH@", "e" );
- ToFile( "BIG_SVX", $BIG_SVX, "e" );
- ToFile( "COM", $COM, "e" );
- ToFile( "COMPATH", $COMPATH, "e" );
-Index: cli_ure/prj/build.lst
-===================================================================
---- cli_ure/prj/build.lst.orig 2006-01-08 20:48:38.000000000 +0100
-+++ cli_ure/prj/build.lst 2006-01-08 20:48:40.000000000 +0100
-@@ -1,9 +1,10 @@
- ure cli_ure : cppuhelper cppu sal codemaker offapi stoc NULL
- ure cli_ure usr1 - all ure_mkout NULL
--ure cli_ure\source nmake - w,vc7 ure_source_source NULL
--ure cli_ure\source\basetypes nmake - w,vc7 ure_source_basetypes ure_source_source.w NULL
-+ure cli_ure\source nmake - all ure_source_source NULL
-+ure cli_ure\source\basetypes nmake - all ure_source_basetypes ure_source_source.w NULL
- ure cli_ure\source\climaker nmake - w,vc7 ure_source_climaker ure_source_basetypes.w NULL
--ure cli_ure\unotypes nmake - w,vc7 ure_unotypes ure_source_source.w ure_source_climaker.w NULL
--ure cli_ure\source\ure nmake - w,vc7 ure_source_ure ure_source_source.w ure_unotypes.w NULL
-+ure cli_ure\unotypes nmake - w,vc7 ure_unotypes ure_source_source.w ure_source_climaker.w ure_source_basetypes.w NULL
-+ure cli_ure\source\ure nmake - all ure_source_ure ure_source_source.w ure_unotypes.w ure_source_basetypes.w NULL
- ure cli_ure\source\native nmake - w,vc7 ure_source_native ure_source_source.w ure_source_ure.w ure_unotypes.w NULL
--#ure cli_ure\util nmake - w,vc7 ure_util ure_source_ure.w ure_source_native.w NULL
-+ure cli_ure\source\bootstrap nmake - u ure_source_bootstrap ure_source_source ure_source_basetypes NULL
-+#ure cli_ure\util nmake - all ure_util ure_source_ure.w ure_source_native.w NULL
-Index: cli_ure/prj/d.lst
-===================================================================
---- cli_ure/prj/d.lst.orig 2006-01-08 20:48:38.000000000 +0100
-+++ cli_ure/prj/d.lst 2006-01-08 20:48:40.000000000 +0100
-@@ -3,6 +3,7 @@
- ..\%__SRC%\bin\climaker.exe.config %_DEST%\bin%_EXT%\climaker.exe.config
-
- ..\%__SRC%\bin\cli_*.dll %_DEST%\bin%_EXT%\cli_*.dll
-+..\%__SRC%\lib\libcli*.so %_DEST%\lib%_EXT%\libcli*.so
- ..\%__SRC%\bin\cli_*.pdb %_DEST%\bin%_EXT%\cli_*.pdb
- ..\%__SRC%\bin\cli_*.config %_DEST%\bin%_EXT%\cli_*.config
- ..\%__SRC%\bin\policy*.dll %_DEST%\bin%_EXT%\policy*.dll
-Index: cli_ure/source/ure/makefile.mk
-===================================================================
---- cli_ure/source/ure/makefile.mk.orig 2006-01-08 20:42:24.000000000 +0100
-+++ cli_ure/source/ure/makefile.mk 2006-01-08 20:51:15.000000000 +0100
-@@ -50,6 +50,7 @@ ECHOQUOTE='
- .ELSE
- ECHOQUOTE=
- .ENDIF
-+# ' emacs is a fool
-
- .IF "$(BUILD_FOR_CLI)" != ""
-
-@@ -93,7 +94,7 @@ $(BIN)$/cli_ure.dll : $(CSFILES) $(BIN)$
- #do not forget to deliver cli_ure.config. It is NOT embedded in the policy file.
- $(OUT)$/bin$/$(POLICYASSEMBLY) : cli_ure.config
- +$(COPY) cli_ure.config $(OUT)$/bin
-- +$(WRAPCMD) AL.exe -out:$@ \
-+ +$(WRAPCMD) $(AL) -out:$@ \
- -version:1.0.0.0 \
- -keyfile:$(BIN)$/cliuno.snk \
- -link:cli_ure.config
diff --git a/patches/mono/mono-scp2.diff b/patches/mono/mono-scp2.diff
deleted file mode 100644
index 8b71dfd9d..000000000
--- a/patches/mono/mono-scp2.diff
+++ /dev/null
@@ -1,107 +0,0 @@
-Index: scp2/source/ooo/makefile.mk
-===================================================================
-RCS file: /cvs/installation/scp2/source/ooo/makefile.mk,v
-retrieving revision 1.28
-diff -u -r1.28 makefile.mk
---- scp2/source/ooo/makefile.mk 30 Mar 2005 11:40:55 -0000 1.28
-+++ scp2/source/ooo/makefile.mk 7 Apr 2005 17:06:30 -0000
-@@ -142,6 +142,10 @@
- SCPDEFS+=-DSYSTEM_STDLIBS
- .ENDIF
-
-+.IF "$(ENABLE_MONO)" == "YES"
-+SCPDEFS+=-DENABLE_MONO
-+.ENDIF
-+
- .IF "$(SYSTEM_SNDFILE)" == "YES"
- SCPDEFS+=-DSYSTEM_SNDFILE
- .ENDIF
-
-Index: scp2/source/ooo/file_library_ooo.scp
-===================================================================
-RCS file: /cvs/installation/scp2/source/ooo/file_library_ooo.scp,v
-retrieving revision 1.96
-diff -u -r1.96 file_library_ooo.scp
---- scp2/source/ooo/file_library_ooo.scp 30 Mar 2005 11:40:14 -0000 1.96
-+++ scp2/source/ooo/file_library_ooo.scp 7 Apr 2005 17:06:32 -0000
-@@ -219,7 +219,7 @@
-
- #endif
-
--#if defined WNT && (defined M1300 || defined M1310) // currently the only cli platform
-+#if defined ENABLE_MONO || (defined WNT && (defined M1300 || defined M1310)) // currently the only cli platform
-
- File gid_File_Lib_Cli_Cppuhelper_Assembly
- TXT_FILE_BODY;
-@@ -246,7 +246,7 @@
-
- #endif
-
--#if defined WNT && (defined M1300 || defined M1310) // currently the only cli platform
-+#if defined ENABLE_MONO || (defined WNT && (defined M1300 || defined M1310)) // currently the only cli platform
-
- File gid_File_Lib_Cli_Types_Assembly
- TXT_FILE_BODY;
-@@ -273,7 +273,7 @@
-
- #endif
-
--#if defined WNT && (defined M1300 || defined M1310) // currently the only cli platform
-+#if defined ENABLE_MONO || (defined WNT && (defined M1300 || defined M1310)) // currently the only cli platform
-
- File gid_File_Lib_Cli_Basetypes_Assembly
- TXT_FILE_BODY;
-@@ -300,6 +300,44 @@
-
- #endif
-
-+#ifdef ENABLE_MONO
-+
-+File gid_File_Lib_Cli_Uno_Glue
-+ TXT_FILE_BODY;
-+ Styles = (PACKED);
-+ Dir = gid_Dir_Program;
-+ #ifdef UNX
-+ Name = STRING(CONCAT2(libcli_uno_glue,UNXSUFFIX));
-+ #else
-+ Name = "cli_uno_glue.dll";
-+ #endif
-+End
-+
-+File gid_File_Lib_Cli_Uno
-+ TXT_FILE_BODY;
-+ Styles = (PACKED);
-+ Dir = gid_Dir_Program;
-+ #ifdef UNX
-+ Name = STRING(CONCAT2(libcli_uno,UNXSUFFIX));
-+ #else
-+ Name = "cli_uno.dll";
-+ #endif
-+End
-+
-+File gid_File_Lib_Cli_Uno_Bridge_Assembly
-+ TXT_FILE_BODY;
-+ Styles = (PACKED, ASSEMBLY);
-+ Name = "cli_uno_bridge.dll";
-+ Dir = gid_Dir_Program;
-+ Assemblyname = "cli_uno_bridge";
-+ PublicKeyToken = "ce2cb7e279207b9e";
-+ Version = "1.0.0.0";
-+ Culture = "neutral";
-+ Attributes = "0";
-+End
-+
-+#endif
-+
- #if defined WNT && (defined M1300 || defined M1310) // currently the only cli platform
-
- File gid_File_Lib_Cli_Ure
-@@ -311,7 +349,7 @@
-
- #endif
-
--#if defined WNT && (defined M1300 || defined M1310) // currently the only cli platform
-+#if defined ENABLE_MONO || (defined WNT && (defined M1300 || defined M1310)) // currently the only cli platform
-
- File gid_File_Lib_Cli_Ure_Assembly
- TXT_FILE_BODY;
diff --git a/patches/mono/mono-testtools.diff b/patches/mono/mono-testtools.diff
deleted file mode 100644
index c191870fe..000000000
--- a/patches/mono/mono-testtools.diff
+++ /dev/null
@@ -1,199 +0,0 @@
-Index: testtools/source/bridgetest/cli/makefile.mk
-===================================================================
-RCS file: /cvs/udk/testtools/source/bridgetest/cli/makefile.mk,v
-retrieving revision 1.11
-diff -u -r1.11 makefile.mk
---- testtools/source/bridgetest/cli/makefile.mk 16 Dec 2004 12:49:01 -0000 1.11
-+++ testtools/source/bridgetest/cli/makefile.mk 25 May 2005 08:52:22 -0000
-@@ -74,10 +74,9 @@
- .INCLUDE : settings.mk
- DLLPRE =
-
--.IF "$(COM)$(COMEX)" == "MSC8" || "$(COM)$(COMEX)"=="MSC10"
-
- # ------------------------------------------------------------------
--.IF "$(GUI)"=="WNT"
-+.IF "$(GUI)"=="WINNT"
- MY_DLLPOSTFIX=.dll
- DESTDIR=$(BIN)
- BATCH_SUFFIX=.bat
-@@ -106,20 +105,20 @@
-
- #-----------------------
-
--CFLAGS += -clr -AI $(OUT)$/bin -AI $(SOLARBINDIR)
-+# CFLAGS += -clr -AI $(OUT)$/bin -AI $(SOLARBINDIR)
-
--SLOFILES= \
-- $(SLO)$/cli_cpp_bridgetest.obj
-+#SLOFILES= \
-+# $(SLO)$/cli_cpp_bridgetest.obj
-
--SHL1OBJS = $(SLOFILES)
-+#SHL1OBJS = $(SLOFILES)
-
--SHL1TARGET = $(TARGET)
-+#SHL1TARGET = $(TARGET)
-
--SHL1STDLIBS = \
-- mscoree.lib
-+#SHL1STDLIBS = \
-+# mscoree.lib
-
--SHL1DEF = $(MISC)$/$(SHL1TARGET).def
--DEF1NAME = $(SHL1TARGET)
-+#SHL1DEF = $(MISC)$/$(SHL1TARGET).def
-+#DEF1NAME = $(SHL1TARGET)
-
-
- # --- Targets ------------------------------------------------------
-@@ -136,7 +135,7 @@
- CLI_CPPUHELPER = $(SOLARBINDIR)$/cli_cppuhelper.dll
- CLI_TYPES_BRIDGETEST = $(BIN)$/cli_types_bridgetest.dll
-
--CSCFLAGS = -warnaserror+ -incremental-
-+CSCFLAGS = -incremental-
- VBC_FLAGS = -warnaserror+
- .IF "$(debug)" != ""
- CSCFLAGS += -debug+ -checked+ -define:DEBUG -define:TRACE
-@@ -158,7 +157,7 @@
- -reference:$(CLI_TYPES_BRIDGETEST) \
- -reference:$(CLI_URE) \
- -reference:$(CLI_BASETYPES) \
-- -reference:$(CLI_TYPES) \
-+ -reference:$(CLI_TYPES) \
- cli_cs_testobj.cs cli_cs_multi.cs
-
- $(DESTDIR)$/cli_cs_bridgetest.uno.dll : \
-@@ -214,9 +213,6 @@
- cli_bridgetest_inprocess.cs \
- $(DESTDIR)$/cli_cs_bridgetest.uno.dll \
- $(DESTDIR)$/cli_cs_testobj.uno.dll \
-- $(DESTDIR)$/cli_vb_bridgetest.uno.dll \
-- $(DESTDIR)$/cli_vb_testobj.uno.dll \
-- $(DESTDIR)$/cli_cpp_bridgetest.uno.dll \
- $(CLI_BASETYPES) \
- $(CLI_TYPES) \
- $(CLI_URE) \
-@@ -229,9 +225,6 @@
- -reference:$(CLI_CPPUHELPER) \
- -reference:$(DESTDIR)$/cli_cs_bridgetest.uno.dll \
- -reference:$(DESTDIR)$/cli_cs_testobj.uno.dll \
-- -reference:$(DESTDIR)$/cli_vb_bridgetest.uno.dll \
-- -reference:$(DESTDIR)$/cli_vb_testobj.uno.dll \
-- -reference:$(DESTDIR)$/cli_cpp_bridgetest.uno.dll \
- cli_bridgetest_inprocess.cs
- $(GNUCOPY) -p cli_bridgetest_inprocess.ini $(DESTDIR)
- $(GNUCOPY) -p $(CLI_CPPUHELPER) $(DESTDIR)$/$(CLI_CPPUHELPER:f)
-@@ -239,5 +232,4 @@
- $(GNUCOPY) -p $(CLI_TYPES) $(DESTDIR)$/$(CLI_TYPES:f)
- $(GNUCOPY) -p $(CLI_URE) $(DESTDIR)$/$(CLI_URE:f)
-
--.ENDIF
-
-Index: testtools/source/bridgetest/idl/makefile.mk
-===================================================================
-RCS file: /cvs/udk/testtools/source/bridgetest/idl/makefile.mk,v
-retrieving revision 1.4
-diff -u -r1.4 makefile.mk
---- testtools/source/bridgetest/idl/makefile.mk 20 Aug 2004 09:16:39 -0000 1.4
-+++ testtools/source/bridgetest/idl/makefile.mk 25 May 2005 08:52:22 -0000
-@@ -81,7 +81,6 @@
- + $(RM) $@
- $(REGMERGE) $@ /UCR $(MISC)$/$(TARGET)$/bridgetest.urd
-
--.IF "$(GUI)" == "WNT"
-
- CLIMAKERFLAGS =
- .IF "$(debug)" != ""
-@@ -97,4 +96,3 @@
- -X $(SOLARBINDIR)$/types.rdb $<
- $(TOUCH) $@
-
--.ENDIF # GUI, WNT
-
-
-
---- testtools/source/bridgetest/cli/cli_bridgetest_inprocess.cs 20 Sep 2004 14:27:51 -0000 1.5
-+++ testtools/source/bridgetest/cli/cli_bridgetest_inprocess.cs 25 May 2005 08:52:20 -0000
-@@ -139,26 +151,14 @@
- new uno.Any(
- typeof (XSingleComponentFactory),
- new Factory(
-- typeof (vb_testobj.VBBridgeTestObject),
-- "com.sun.star.test.bridge.cli_uno.VbTestObject" ) ) );
-- xSet.insert(
-- new uno.Any(
-- typeof (XSingleComponentFactory),
-- new Factory(
-- typeof (cpp_bridgetest.BridgeTest),
-- "com.sun.star.test.bridge.cli_uno.CppBridgeTest" ) ) );
-- xSet.insert(
-- new uno.Any(
-- typeof (XSingleComponentFactory),
-- new Factory(
- typeof (cs_testobj.BridgeTest),
- "com.sun.star.test.bridge.cli_uno.CsBridgeTest" ) ) );
-- xSet.insert(
-- new uno.Any(
-- typeof (XSingleComponentFactory),
-- new Factory(
-- typeof (vb_bridetest.BridgeTest),
-- "com.sun.star.test.bridge.cli_uno.VbBridgeTest" ) ) );
-+
-+/* {
-+ Console.WriteLine(
-+ "\n[cli bridgetest] C# client calls C# object [hack]");
-+ cs_testobj.BridgeTest.perform_test (new cs_testobj.BridgeTestObject( xContext ));
-+ } */
-
- // I.
- // direct unbridged test
-@@ -213,7 +195,7 @@
- // -s com.sun.star.test.bridge.cli_uno.VbBridgeTest
- // -- com.sun.star.test.bridge.CppTestObject
- // get CLI client
-- test_client =
-+/* test_client =
- xContext.getServiceManager().createInstanceWithContext(
- "com.sun.star.test.bridge.cli_uno.VbBridgeTest",
- xContext );
-@@ -222,7 +204,7 @@
- "\n[cli bridgetest] Visual Basic client calls C++ (native) object" );
- // run with native target object
- xClient.run(
-- new String [] { "com.sun.star.test.bridge.CppTestObject" } );
-+ new String [] { "com.sun.star.test.bridge.CppTestObject" } ); */
-
- // V:
- // uno -ro uno_services.rdb -ro uno_types.rdb
-@@ -245,7 +227,7 @@
- // uno -ro uno_services.rdb -ro uno_types.rdb
- // -s com.sun.star.test.bridge.cli_uno.CppBridgeTest
- // -- com.sun.star.test.bridge.CppTestObject
-- test_client =
-+/* test_client =
- xContext.getServiceManager().createInstanceWithContext(
- "com.sun.star.test.bridge.cli_uno.CppBridgeTest",
- xContext );
-@@ -254,7 +236,7 @@
- "\n[cli bridgetest] CLI C++ client calls C++ object (native)");
- // run with native target object
- xClient.run(
-- new String [] { "com.sun.star.test.bridge.CppTestObject" } );
-+ new String [] { "com.sun.star.test.bridge.CppTestObject" } );*/
- }
- }
- catch (System.Exception exc)
-
-
-
-
---- testtools/source/bridgetest/cli/cli_bridgetest_inprocess.ini 4 Sep 2003 09:16:51 -0000 1.2
-+++ testtools/source/bridgetest/cli/cli_bridgetest_inprocess.ini 25 May 2005 08:52:20 -0000
-@@ -1,3 +1,3 @@
- [Bootstrap]
--UNO_TYPES=$SYSBINDIR/uno_types.rdb
--UNO_SERVICES=$SYSBINDIR/uno_services.rdb
-+UNO_TYPES=uno_types.rdb
-+UNO_SERVICES=uno_services.rdb
diff --git a/patches/scsolver/scs-boost.diff b/patches/scsolver/scs-boost.diff
deleted file mode 100644
index b6ccc67e1..000000000
--- a/patches/scsolver/scs-boost.diff
+++ /dev/null
@@ -1,17 +0,0 @@
-Index: boost/prj/d.lst
-===================================================================
-RCS file: /cvs/external/boost/prj/d.lst,v
-retrieving revision 1.9
-diff -u -p -r1.9 d.lst
---- boost/prj/d.lst 2 Nov 2005 13:37:38 -0000 1.9
-+++ boost/prj/d.lst 9 Jan 2006 14:53:14 -0000
-@@ -244,3 +244,9 @@ mkdir: %_DEST%\inc%_EXT%\boost\tuple
- ..\%__SRC%\misc\build\boost-1.30.2\boost\tuple\*.hpp %_DEST%\inc%_EXT%\boost\tuple
- mkdir: %_DEST%\inc%_EXT%\boost\tuple\detail
- ..\%__SRC%\misc\build\boost-1.30.2\boost\tuple\detail\*.hpp %_DEST%\inc%_EXT%\boost\tuple\detail
-+
-+# extra bits that scsolver wants:
-+mkdir: %_DEST%\inc%_EXT%\boost\numeric
-+mkdir: %_DEST%\inc%_EXT%\boost\numeric\ublas
-+..\%__SRC%\misc\build\boost-1.30.2\boost\shared_ptr.hpp %_DEST%\inc%_EXT%\boost\shared_ptr.hpp
-+..\%__SRC%\misc\build\boost-1.30.2\boost\numeric\ublas\*.hpp %_DEST%\inc%_EXT%\boost\numeric\ublas\*.hpp
diff --git a/patches/scsolver/scs-officecfg.diff b/patches/scsolver/scs-officecfg.diff
deleted file mode 100644
index 8022b0712..000000000
--- a/patches/scsolver/scs-officecfg.diff
+++ /dev/null
@@ -1,19 +0,0 @@
-Index: officecfg/registry/data/org/openoffice/Office/ProtocolHandler.xcu
-===================================================================
-RCS file: /cvs/util/officecfg/registry/data/org/openoffice/Office/ProtocolHandler.xcu,v
-retrieving revision 1.8
-diff -u -p -u -r1.8 ProtocolHandler.xcu
---- officecfg/registry/data/org/openoffice/Office/ProtocolHandler.xcu 8 Sep 2005 14:50:16 -0000 1.8
-+++ officecfg/registry/data/org/openoffice/Office/ProtocolHandler.xcu 9 Jan 2006 14:57:58 -0000
-@@ -66,5 +66,11 @@
- <value>vnd.sun.star.script:*</value>
- </prop>
- </node>
-+ <!-- this is an ugly hack for a built-in component but ... -->
-+ <node oor:name="scsolver.SolverImpl" oor:op="replace">
-+ <prop oor:name="Protocols" oor:type="oor:string-list">
-+ <value>scsolver.SolverImpl:*</value>
-+ </prop>
-+ </node>
- </node>
- </oor:component-data>
diff --git a/patches/scsolver/scs-scp2.diff b/patches/scsolver/scs-scp2.diff
deleted file mode 100644
index 0e4306abd..000000000
--- a/patches/scsolver/scs-scp2.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: scp2/source/calc/file_calc.scp
-===================================================================
-RCS file: /cvs/installation/scp2/source/calc/file_calc.scp,v
-retrieving revision 1.26
-diff -u -p -u -r1.26 file_calc.scp
---- scp2/source/calc/file_calc.scp 7 Nov 2005 14:42:08 -0000 1.26
-+++ scp2/source/calc/file_calc.scp 9 Jan 2006 14:55:28 -0000
-@@ -37,6 +37,8 @@
-
- STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Analysis, analysis)
-
-+STD_UNO_LIB_FILE_PATCH( gid_File_Lib_ScSolver, scsolver)
-+
- STD_UNO_LIB_FILE( gid_File_Lib_Calc, calc)
-
- STD_UNO_LIB_FILE( gid_File_Lib_Date, date)
diff --git a/patches/src680/.cvsignore b/patches/src680/.cvsignore
deleted file mode 100644
index 282522db0..000000000
--- a/patches/src680/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile
-Makefile.in
diff --git a/patches/src680/Makefile.am b/patches/src680/Makefile.am
deleted file mode 100644
index 93ae49f67..000000000
--- a/patches/src680/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-EXTRA_DIST = apply ${wildcard *.diff}
-
-patch.apply:
- cd ../.. ; make patch.apply
diff --git a/patches/src680/addrbk-datasrc-ordering.diff b/patches/src680/addrbk-datasrc-ordering.diff
deleted file mode 100644
index 87bd48941..000000000
--- a/patches/src680/addrbk-datasrc-ordering.diff
+++ /dev/null
@@ -1,22 +0,0 @@
---- sw/source/ui/dbui/dbtree.cxx.bak 2004-11-15 23:19:10.033357496 +0530
-+++ sw/source/ui/dbui/dbtree.cxx 2004-11-15 23:21:26.098672424 +0530
-@@ -335,7 +335,7 @@
- if(!pImpl->HasContext() && pImpl->GetWrtShell())
- return;
- SetSelectionMode(SINGLE_SELECTION);
-- SetWindowBits(WB_HASLINES|WB_CLIPCHILDREN|WB_SORT|WB_HASBUTTONS|WB_HASBUTTONSATROOT|WB_HSCROLL);
-+ SetWindowBits(WB_HASLINES|WB_CLIPCHILDREN|WB_HASBUTTONS|WB_HASBUTTONSATROOT|WB_HSCROLL);
- // Font nicht setzen, damit der Font des Controls uebernommen wird!
- SetSpaceBetweenEntries(0);
- SetNodeBitmaps( aImageList.GetImage(IMG_COLLAPSE),
---- dbaccess/source/ui/browser/dbtreeview.cxx.bak 2004-11-15 23:16:54.607945288 +0530
-+++ dbaccess/source/ui/browser/dbtreeview.cxx 2004-11-15 23:19:51.361074728 +0530
-@@ -91,7 +91,7 @@
- {
- DBG_CTOR(DBTreeView,NULL);
-
-- m_pTreeListBox = new DBTreeListBox(this, _rxORB ,WB_HASLINES | WB_SORT | WB_HASBUTTONS | WB_HSCROLL |WB_HASBUTTONSATROOT,sal_True);
-+ m_pTreeListBox = new DBTreeListBox(this, _rxORB ,WB_BORDER | WB_HASLINES | WB_HASLINESATROOT | WB_HASBUTTONS | WB_HSCROLL |WB_HASBUTTONSATROOT);
- m_pTreeListBox->EnableCheckButton(NULL);
- m_pTreeListBox->SetDragDropMode( 0 );
- m_pTreeListBox->EnableInplaceEditing( sal_True );
diff --git a/patches/src680/apply b/patches/src680/apply
deleted file mode 100644
index 0d17c39ed..000000000
--- a/patches/src680/apply
+++ /dev/null
@@ -1,1619 +0,0 @@
-#
-# The format of this file is:
-#
-
-# -------- Options --------
-
-PATCHPATH=.:../evo2:../vba:../mono:../64bit:../cairo
-
-# -------- Functional sub-sets --------
-
-Common : BuildBits, ParallelMake, TemporaryHacks, FixesNotForUpstream, \
- Fixes, Defaults, Features, VCL, Misc, \
- Icons, VBABits, CalcFixes, Leaks
-Safe64bit : 64bitForUpstream, NumberFormat, Trivial
-LinuxCommon : Common, BuildBitsLinuxOnly, LinuxOnly, SystemBits, CWSBackports, GCJ, \
- QPro, Lwp, cairocanvas, VBAObjects, msaccess, \
- Safe64bit, FPickers, Mono, AddressBooks, QuickStarter, Shrink
-Win32Common : Common, NotDebian
-64bit : 64bitPatches, 64bitUnsorted, GCJExperimental
-# Binfilter patches: a special distro; applied only when building with binfilter
-Binfilter : BFBuildBits, BFFixes, BFIcons, BFNumberFormat
-# Hunspell patches: a special distro; applied only when building with --enable-hunspell
-Hunspell: HunspellPatches
-# Localization patches to localize.sdf files: applied only when we have langpacks
-Localize : SDFPatches
-# Novell
-NovellBase : LinuxCommon, NovellSplash, NovellOnly, NovellOnlyUnix, NotDebian, Lockdown
-SUSEBase : SUSEOnly, NovellBase
-#NLD64 : NLDOnly, NovellBase, 64bit, JDK150 - java modules cannot register on AMD64 atm, let's disable it
-NLD64 : NLDOnly, NovellBase, 64bit, SystemDB
-NLD : NLDOnly, NovellBase
-SUSE : SUSEBase, SpeedSplash
-# Debian
-DebianBase : LinuxCommon, SystemDB, DebianBaseOnly
-Debian : DebianBase, DebianOnly, DebianSidOnly, GCJExperimental
-DebianSarge : DebianBase, DebianOnly, DebianSargeOnly
-Debian64 : DebianBase, DebianOnly, DebianSidOnly, GCJExperimental, 64bit
-#
-# DroplineGNOME
-#
-DroplineGNOME : LinuxCommon, DroplineGNOMEOnly, Lockdown, NotDebian, Mono, msaccess
-#
-# Ubuntu
-Ubuntu: DebianBase, UbuntuOnly, DebianSidOnly
-Ubuntu64: DebianBase, 64bit, UbuntuOnly
-# Ark Linux
-Ark: LinuxCommon, NotDebian, ArkOnly, GCJExperimental
-# www.pld-linux.org
-PLDBase: LinuxCommon, NotDebian, PLDOnly
-PLD: PLDBase
-PLD64: PLDBase, 64bit
-# Mandriva Linux
-MandrivaBase: MandrivaOnly, LinuxCommon, MandrivaOnlyUnix, LockDown
-Mandriva: MandrivaBase
-Mandriva64: MandrivaBase, 64bit
-# Frugalware Linux
-FrugalwareBase: LinuxCommon, FilePickers, GnomeVFS, GlobalDesktopFiles, NonArkCommon, NoRpath, NovellOnly, NovellOnlyUnix, NotDebian
-Frugalware: FrugalwareBase, FrugalwareOnly
-Frugalware64: FrugalwareBase, 64bit, Frugalware64Only
-QiLinux: QiLinuxOnly, LinuxCommon, GlobalDesktopFiles, FilePickers
-#Gentoo
-GentooBase : LinuxCommon, GentooOnly, NotDebian, Lockdown
-Gentoo : GentooBase
-Gentoo64: GentooBase, 64bit
-# Win32
-Win32 : Win32Common, NovellOnly, NovellOnlyWin32, NovellSplash
-# translate.org.za
-translate-org-za-linux: translate-org-za-common, translate-org-za-splash, LinuxCommon, Common, Lockdown
-translate-org-za-win32: translate-org-za-common, translate-org-za-splash, Win32Common, Common
-
-
-# -------- [ Tag [ >= <tag> etc. ], ] patch sets --------
-
-[ TemporaryHacks ]
-# adding glib-2.0 and ORBit-2.0 to pkgconfig modules; i#47923
-buildfix-pkgconfig-gconfbe.diff
-# give a nice warning on user failure to source ./env
-# FIXME: Really just for the Gtk+ vclplug?
-linkoo-warning.diff
-# a simple tool to help re-build IDL interfaces
-tool-ooidlbuild.diff
-# temporary hack to avoid the warning about missing return values in gcc4
-# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20624
-warning-return-values-stlport.diff
-# a change to the word import filter to improve speed
-# (12-14% in measured cases) #53055
-ww8scan.diff
-# patch linkoo to link soffice.bin and configmgr2.uno.so, i#56192
-linkoo-rc-dependent-files.diff
-# beef up the environment on linux to help catch malloc errors i#53839
-linkoo-ooenv.diff
-# disable recovery dialog when hacking i#54275
-disable-recovery.diff
-# Don't stat all the files in a directory fetching only their names i#56723
-speed-uiconfig.diff
-# Don't parse all the toolbar UI .xml files on startup i#56722
-speed-uiconfig-parse.diff
-# Don't stat tons of config files we don't need to read on startup i#56783
-speed-configmgr.diff
-# Pagein types.rdb / services.rdb & the ui files i#57679
-speed-pagein.diff
-
-# Replace myspell linked list implementation with hashed implementation
-# Reduces myspell mem usage by more than half (3.7M to ~680K)
-# See issue #50842
-myspell_hashify.diff
-
-# Fix --without-java build #51194, CWS sb33
-# Fix javaloader, #51724
-buildfix-testtools.diff
-
-# build with libxslt >= 1.1.15 i#56697
-buildfix-new-xslt.diff
-
-# LD_LIBRARY_PATH should not end with a ":" N#118188, #55733
-ld-library-path.diff
-
-# add the Tilde & back-tick keys to various places i#56194
-# noelp (investigating) disable this due to a crash on file open
-key-tilde.diff
-
-# Add $(LIBXML_CFLAGS) to webdav i#56798
-buildfix-ucb-xml-cflags.diff
-
-# accelerate the child by doing remote IPC as early as
-# possible up-stream are re-writing this completely so ...
-speed-2nd-start.diff
-
-# Don't do a IDL / types compare it'll fail wrt. IDL changes.
-build-offapi-no-compare.diff
-
-[ TemporaryHacks >= src680-m148 ]
-# gcc 3.3 buildfix i#<site down>
-buildfix-svx-cfg.diff
-
-# Use -Bdirect linking i#58119
-[ TemporaryHacks >= src680-m148 ]
-speed-bdirect.diff
-[ TemporaryHacks < src680-m148 ]
-speed-bdirect-m147.diff
-
-[ TemporaryHacks < src680-m148 ]
-# Don't stat lots of PPD files we installed i#56542
-speed-psprint-ppd.diff
-
-[ TemporaryHacks < src680-m146 ]
-# tell the user that no help was dound if it wasn't found instead some
-# obscure message, i#55841
-help-messagebox.diff
-# Another fix for --without-java i#56619
-nojava-fix-stringparam-m145.diff
-
-[ TemporaryHacks >= src680-m146 ]
-# Another fix for --without-java i#56619
-nojava-fix-stringparam.diff
-
-[ TemporaryHacks == src680-m146 ]
-# Fix strip in deliver.pl #57063
-buildfix-deliver-strip.diff
-
-
-[ GCJ ]
-# work around missing symbol in libgcj...
-bean-gcj-bug-workaround.diff
-# allow gij-4.0...
-jvmfwk-gij-4.0.diff
-#wizards-filter-gcj-access-problems.diff
-# make gcj-dbtool optional
-gcj-dbtool-optional.diff
-
-# Fixes that were not accepted up-stream, but are still useful
-[ FixesNotForUpstream ]
-# Make debugging nicer under unix i#35336
-debug-bits.diff
-# make menu layout prettier i#17937
-vcl-menu-fixes.diff
-# Make the scroll-wheel / page popup more sane i#20826
-gui-sw-scroll.diff
-
-
-[ Fixes ]
-# fix check box rendering issue - n#80447
-check-buttons-rendering-fix.diff
-# Fix default Writer bullets not exporting to MS format intact n#10555
-sw-bullet-interop-fix.diff
-# Fix NFS / flock issue n#104655, i#53682
-nfs-flock.diff
-# fix the wizards crasher n#10512, i#43665
-wizards-crasher-fix.diff
-# Disable the printer properties which are unused IZ#14036, n#583
-printer-properties-disable.diff
-# get interactivity right during slow updates #42221
-vcl-gtk-yield.diff
-# File->New->Spreadsheet freezes on some versions of GCC # FIXME: shres
-svx-freeze-fix.diff
-# update pyuno docs from www.oo.o
-pyuno-update-docs.diff
-# Fix impress spellcheck #32320
-crash-sd-spellcheck.diff
-# disable font management dialog in padmin
-padmin-nofontconfig.diff
-# Improve the web bullet export / export to png not gif. #23353
-sd-export-html-theme.diff
-sd-export-html.diff
-sd-export-html-translations.diff
-sd-export-html-descr.diff
-# Escape should cancel the print preview - Writer X#67133 #35777
-sw-escape-print-preview.diff
-# Escape should cancel the print preview - Calc X#67133 #46976
-sc-escape-print-preview.diff
-# adds to Autofilter Empty-NonEmpty options bxc #62165 Issue#35578
-sc-autofilter-empty-nonempty.diff
-# Improves the standard filter options and menu. bxc #62187 #62495 i#35579
-sc-standard-filter-options.diff
-# Hides the filtered rows when height of rows are changed bxc #62161 Issue #35581
-sc-filter-hide-filteredrows.diff
-# allows not to delete nonfiltered rows while deleting the filtered ones bxc #62186 Issue 35582
-sc-no-delete-filteredrows.diff
-# Autofill doesnt fill filtered rows bxc 62499
-sc-filters-fill-fix.diff
-# Provision for dynamic range in data pilot issue #23658 bxc 62522
-sc-datapilot-dynamic-range.diff
-# Provision for data-pilot to give autoformat Issue #37388 bxc #62162
-sc-datapilot-autoformat.diff
-# Make SAL compile on Linux systems that use NPTL without compat hacks
-# (pthread_kill_other_threads_np is dead)
-sal-compile-with-nptl.diff
-# BXC 62488 : Allows insertion of rows by shifting down
-#sc-paste-insert-rows.diff disable...
-# Fix for datapilot crash when clicking outside dialog
-sc-datapilot-crash-fix.diff
-# Fix for datapilot crash on remote databases
-sc-dp-database-crash.diff
-# Fix for autotriming of autofilter choices bxc 65945 Issue FIXME
-sc-autofilter-autotrim-choices.diff
-# Replace usability numb Zoom dialog with a Combo Box
-zoom-combobox.diff
-# Fix broken condition implementation & it's mis-use i#44627
-vcl-gtk-condition.diff
-sal-condition.diff
-# Display min password length in dialog Issue 44979 BINC 773
-sc-save-password-minlength.diff
-# Allow dnd in Change record mode for Data source Issue 44982 BINC 70845
-sc-change-record-dnd.diff
-# Fix for b.x.c 55943 - insert note on right click i#47442
-sc-insert-note-on-right-click.diff
-# fixes warnings about uninitialized variables, i#49381
-warning-uninitialized-variables-sd.diff
-# fixes warnings about uninitialized variables, i#49384
-warning-uninitialized-variables-tools.diff
-# temporary hacks to remove warnings in the unused code,
-# required by the SUSE build system, i#49351, i#49385
-warning-uninitialized-variables-sc.diff
-warning-uninitialized-variables-sw.diff
-# the following three warnings appear just on ppc
-warning-uninitialized-variables-remotebridges.diff
-warning-uninitialized-variables-sw2.diff
-warning-uninitialized-variables-vcl.diff
-# use fast/native gtk+ rendering, unless we have the broken
-# qt<->gtk theme selected i#50857
-gtk-kde-fix.diff
-# run crash_report only when it is built, i#54121
-sal-when-to-run-crash-report.diff
-# fix spin-button event timeout problems i#54335
-vcl-fix-spin-events.diff
-
-# Fix the print error dialog and pop-up when unable to print. BINC 64010 Issue 44695
-print-error.diff
-
-# disable cut-n-paste on right-click menu for datapilot - n#75436
-sc-datapilot-cut-paste-disable.diff
-# Tell the desktop we support the VFS #43504
-uses-vfs.diff
-
-# Fix for b.x.c 62193 (i#45245)
-sc-sheet-double-click-rename.diff
-
-# Fix for novell-i#113235
-wizards-source-importwizard-filesmodul-xba.diff
-
-# Generate and save the VT_CF thumbnail for MS Office formats i#55930
-ooo-save-msoffice-thumbnails.diff
-
-#Fix for ooo issue-track i#57526
-sfx2-source-view-viewprn-cxx.diff
-
-# Fix starmath build with system stlport4 i#57582
-starmath-stl-vector-h.diff
-
-# More fixes of that kind
-fix-stlport-includes.diff
-
-# Fix range greater than max possible rows for worksheet function uno api
-# ooo issue-track i#58574
-
-sc-source-ui-unobj-funcuno-cxx.diff
-
-# Fix autoshape excel macro import OOo i#59082
-vba-sc-handleautoshapemacro-import.diff
-
-# eliminate some C style casts. Fixes (possibly g++ 4.0-only) impress load crashers
-# i#44846 rh#150789
-svx-dynamic-const-cast.diff
-
-[ Fixes < src680-m146 ]
-# fixes crashes when opening/saving files
-# it is visible onbly when compiled with -g
-# the fix is extracted from CWS fwk28, i#58618
-cws-fwk28.diff
-
-[ Fixes < src680-m147 ]
-# fix generic fpicker problem i#35830
-fpicker-generic-extn.diff
-
-
-[ Leaks ]
-# silly leaks around the place i#50726
-leak-sal-file.diff
-leak-sal-module.diff
-# 3D charting leak i#50777
-leak-sch-3d.diff
-# 3D properties leak i#50808
-leak-svx-3d.diff
-# daft mis-use of rtl_uString i#50776
-leak-registry.diff
-
-
-[ Shrink ]
-# strip 450k of .comment sections - i#57063
-size-strip.diff
-# save 1.7Mb of (shared) memory for non-asian locales
-cws-i18nshrink.diff
-
-
-[ QuickStarter ]
-# An improved built-in quick-starter applet / systray thing. i#57872
-speed-quickstart.diff
-speed-quickstart-eggtray.diff
-
-
-[ CalcFixes ]
-# <ctrl> +/‑ to insert/delete a complete line in calc (X#62530) #38108
-calc-new-acceleration.diff
-# Make the delete key happy again in starcalc #17965 - wontfix [!]
-gui-sc-delete.diff
-# improved error/value compatibility - i#47644
-sc-xl-errors.diff
-# compatibility for numbers in string cells (with leading/trailing space) - i#47811
-sc-string-arg.diff
-# fix for the Data Pilot crasher. - i#47145
-sc-pv-crasher.diff
-# div/0 error export by div function - i#47724
-sc-div.diff
-# div/0 error export by other functions - i47724
-sc-div-errs.diff
-# Support for formula input to start with '+' or '-' - i#20496, i#52179
-sc-startformulawplus.diff
-# To make CSV Text Import settings persistent - i#3687
-sc-preserve-imp-opts.diff
-# An option - 'save as rendered' while exporting to .csv - i#4925
-sc-csvfix-ui.diff
-# Send e-mail in MS format as attachment x#62200, i#46895
-ms-interoperability-email-attachment-as-doc-xls-ppt-m99.diff
-# ctrl-back-tick toggle formula view - i#56202
-# noelp (investigating) disable this due to a crash on file open
-sc-toggle-formula.diff
-# ERFC accuracy - i#55735
-sc-erfc.diff
-#
-sc-info-func.diff
-# changed address function to accept 5 parameters - i#49499
-# sc-address.diff it is handled better by the r1c1 patch
-# Add R1C1 address support - #i20857
-sc-r1c1.diff
-
-# Series sum fix to return correct values when x and n are 0 - i#32269
-sc-seriessum.diff
-# Return =value() of an empty cell as 0 - i#35483
-sc-valuefunc.diff
-
-[ Fixes ]
-# ordinal suffix iteration i#47233
-sc-iteration.diff
-
-
-[ LinuxOnly ]
-# Modify the fpicker makefile causing problems in the win32 build
-fpicker-common-build.diff
-# make some symbols from svtools visible for the kde fpicker when compiling with gcc4
-# fix: this breaks win32
-fpicker-kde-gcc4-visibility.diff
-
-# Markup symbols in Basic to use GCC4 symbol visibility attributes IZ#57949
-libsb_gcc4_visibility_markup.diff
-
-# Markup symbols in SO3 to use GCC4 symbol visibility attributes IZ#57950
-libso3_gcc4_visibility_markup.diff
-
-
-[ Misc ]
-# Make the default writer bullet larger i#21829
-# sw-default-bullet.diff - FIXME - FIXME -
-# Insert symbol defaults to the Symbol font - not a random one #15512
-gui-sw-insert-symbol.diff
-# Address data source ordering X#62860
-addrbk-datasrc-ordering.diff
-# E-mail attachment file name append with "_1" X#67684 #35780
-email-attachment-underscore-zero.diff
-# removing multimedia menu's X66608
-remove-default-multimedia-menu.diff
-# Change the Tooltip Color, #46499, n#10581
-change-tooltipcolor-m90.diff
-# Word Completion: Accept with [Tab] i#4148
-tab-key-for-autocomplete.diff
-# Changed the default option in the Templates and Documents dialog.
-svtools-default-new-document.diff
-# contextual autocomplete i#22961
-context-autocomplete.diff
-# Insensitive menu entries n#105864
-vcl-insensitive-menuitems.diff
-# Grouping items in the templates dialog n#106603
-svtools-unsort-template-dialogentries.diff
-# Try to get the font mapping right
-gui-metric-fonts.diff
-
-# Describe the metric compatible fonts for export mappings
-gui-metric-fonts-descr.diff
-
-[ Misc < src680-m146 ]
-# fake font emulation for bold & italic i#18285 from cws fakebold
-cws-fakebold.diff
-
-# Fix some IDL comments, i#28045, i#29235, i#36476, i#51098
-idl-doc-fixes.diff
-
-[ Misc < src680-m147 ]
-db4-jni-casting-m146.diff
-
-[ Misc >= src680-m147 ]
-# Fix casts in db_java_wrap.c
-db4-jni-casting.diff
-
-
-[ NovellOnly ]
-# Some Novell people ...
-novell-team.diff
-# Some Novell colors ...
-novell-palette.diff
-
-
-[ NotDebian ]
-# Fix the system default fpicker
-default-system-fpicker.diff
-# don't display File->Wizards-> install dictionaries/fonts -
-# makes no sense on Linux n#74249
-default-no-install-wizards.diff
-# more intelligent nsplugin seeking, i#49590
-nsplugin-path.diff
-
-[ DebianBaseOnly ]
-odk-remove-non-free.diff
-# sdk-remove-non-free.diff
-sensible-ooomua.diff
-sensible-browser.diff
-community-splash.diff
-no-fontooo-wizard.diff
-pyuno-rpath-ooodir.diff
-default-cairo-disable.diff
-sparc-bridges-use-g++-3.4.diff
-
-
-[ DebianOnly ]
-# fix the About box...
-debian-splash.diff
-# make nsplugin check MOZILLA_FIVE_HOME, too, i#49590
-nsplugin-MOZILLA_FIVE_HOME.diff
-[ DebianOnly < src680-m148 ]
-ooo-vendor-debian.diff
-
-[ DroplineGNOMEOnly ]
-dropline-gnome-splash.diff
-gui-font-paranoid-fallback.diff
-pushfont-psstream.diff
-novell-cjk-fonts.diff
-version-2-0-pre.diff
-build-wizard-bitmap-scp.diff
-
-
-[ MandrivaOnly ]
-mandriva-splash.diff
-default-system-fpicker.diff
-buildfix-longnames-54730.diff
-gcc401-stlport45-include.diff
-mandriva-archflags.diff
-# more intelligent nsplugin seeking, i#49590
-nsplugin-path.diff
-
-[ MandrivaOnlyUnix ]
-help-support.diff
-build-wizard-bitmap-scp.diff
-novell-cjk-fonts.diff
-# change user config dir name from ~/.openoffice.org2.0 to ~/.ooo-2.0
-version-2-0-pre.diff
-
-
-[ NovellOnlyUnix ]
-# Help Support page
-help-support.diff
-# mark the files in share/template/<lang>/wizard/bitmap as lang specific
-build-wizard-bitmap-scp.diff
-# configure some Japanese fonts used on Novell products
-# (patch by Mike Fabian mfabian@suse.de)
-novell-cjk-fonts.diff
-# change user config dir name from ~/.openoffice.org1.9.milestone to ~/.ooo-2.0-pre
-version-2-0-pre.diff
-
-
-[ NovellOnlyWin32 ]
-filebug-support.diff
-novell-win32-agfa-monotype-fonts.diff
-
-[ translate-org-za-common ]
-# use the dejavu fonts
-dejavu-fonts.diff
-
-[ translate-org-za-splash < src680-m146 ]
-# use the translate.org.za splash screen
-translate-org-za-splash-m145.diff
-
-[ translate-org-za-splash >= src680-m146]
-# use the translate.org.za splash screen
-translate-org-za-splash.diff
-
-[ FrugalwareOnly ]
-frugalware.diff
-
-[ Frugalware64Only ]
-frugalware64.diff
-
-# ( mmp@oo.o deals with defaults apparently )
-[ Defaults ]
-# Disable the recovery report dialog (see i#53531)
-recovery-report.diff
-# stop the user having to fight ooimpress constantly #35338
-capitalization.diff
-# Use nicer colors for the charts X#64359
-sc-default-color-modify.diff
-# default to anti-alias at point size of 1 point
-default-font-aasize.diff
-# set default font size to 10pt #35565
-default-font-size.diff
-# don't use any slow / nasty X fonts #35641
-default-no-x-fonts.diff
-# Dramatically improve MS import / export cf. #8276 et. al.
-default-ms-filter-convert.diff
-# use pair kerning in new documents #35873
-default-pairkerning-on.diff
-# Optimal Page Wrap should be default for graphics insertion (X#59831) #38108
-writer-default-as-optimal-page-wrap.diff
-# double the graphics cache limits, n#62310, #46215
-default-graphics-cache.diff
-# Ted Hager likes this: i#54709
-default-impress-ruler.diff
-# move ahead 1 effect with arrow-right key i#54710
-gui-slide-switch.diff
-# backspace deletes slides like 'delete' in slide sorter i#54714
-gui-slidesort-backspace.diff
-
-
-#
-# Controversial bits - no use filing up-stream
-#
-# pestering people serves no useful purpose
-default-no-registration.diff
-# automatically do any migration we can, with no wizard
-default-no-startup-wizard.diff
-# don't throw up the style dialog on 1st run
-default-no-style-dialog.diff
-# no Help->registration dialog by default
-default-no-registration-menu.diff
-# Use the Gnome VFS on KDE as well if it's there (better than nothing)
-vfs-kde-too.diff
-# Trade speed for reliability with valgrind
-valgrind-alloc.diff
-
-
-[ SDFPatches ]
-sd-save-image-context-menu-localize.diff
-
-
-[ Defaults ]
-# Save as menuitem for image context menus in impress #13816
-sd-save-image-context-menu.diff
-
-
-[ Features ]
-# Make cut and paste nicer i#15509
-sc-paste-dialog.diff
-
-
-[ BuildBits ]
-# do an optimizing link
-build-optimized-link.diff
-# add -dontstrip option to the installer, i#48814
-installer-strip-optional.diff
-# Don't import xalan if it isn't needed
-buildfix-no-xalan.diff
-
-# Fix missing __cxa_guard_acquire/__cxa_guard_release - #34676 (for FC3)
-sal-cxa-guard.diff
-# do not pack any potential .orig files with ppds
-psprint_config-no-orig.diff
-# Fix ODK Java bits
-odk-java-wizpanel.diff
-# add possibility to set ARCH_FLAGS when building libnas
-nas-use-arch-flags.diff
-# fix building on SUSE Linux 9.3; disable the check for valid symlinks, #46226
-freedesktop-menus-spec.diff
-
-# Detect db 4.3.x when using --with-system-db
-config_office-system-db-4.3.diff
-# fix the configure check for system mozilla and python, thanks to suka
-config_office-system-mozila-python-fix.diff
-# fix the configure check for openldap
-config_office-openldap-fix.diff
-
-# fix usage of mozilla flavour nspr
-buildfix-moz-flavour-nspr.diff
-# fix to build with system libnss (installed apart from mozilla)
-buildfix-system-nss.diff
-# allow to use XULRunner instead of mozilla-devel
-config-mozilla-xulrunner.diff
-
-# Don't fail when building --without-stlport4
-buildfix-ucb-without-stlport4.diff
-buildfix-svx-without-stlport4.diff
-
-# allow building against newer OpenLDAPs where some API stuff got deprecated
-# cws cmcfixes23
-openldap-allow-deprecated.diff
-
-# Fix up Javac error, known to happen with gcj, probably happens for other
-# JDKs too
-buildfix-qadevOOo-java-encoding.diff
-
-# fix error on jdk 1.5 from enum reserved word
-java-1_5-enum-reserved-word.diff
-
-[ BuildBits >= src680-m147 ]
-# detect the right CFLAGS in configure rather than in makafile.mk
-buildfix-system-moz-plugin.diff
-
-[ BuildBits < src680-m147 ]
-# fix sparc build
-cws-unxlngs04.diff
-
-# add possibility to set ARCH_FLAGS when building portaudio, i#53387
-portaudio-use-arch-flags-m146.diff
-
-[ BuildBits >= src680-m147 ]
-# add possibility to set ARCH_FLAGS when building portaudio, i#53387
-portaudio-use-arch-flags.diff
-
-
-[ ArkOnly ]
-system-db-4.3-use-lpthread.diff
-# FIXME this is generally useful -- currently applied here only because
-# it breaks building with db < 4.3
-xmlhelp-port-to-db-4.3.diff
-
-[ MandrivaOnly ]
-mozilla-firefox.diff
-
-[ GCJExperimental ]
-# FIXME this is probably useful for many other gcj users too -- but I
-# can't tell if this breaks other JDKs?
-gcj-no-broken-jaxp.diff
-# Use jaxp api for helpcontent building utilities #58308
-workspace.jaxpapi.diff
-gcj-no-com.sun.xml.diff
-
-# Add xalan classpath to PACKLANG
-gcj-filter-xalan-classpath.diff
-
-# Faster helpcontent2 compilation #54692
-gcj-HelpLinker-native.diff
-
-# gcc 4.1 will change libgcj version to 7 #58896, CWS cmcfixes23
-gcj-jvmfwk-gcc41.diff
-
-
-[PLDOnly]
-pld-splash.diff
-buildfix-longnames-54730.diff
-
-[ BuildBits ]
-# work around http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22392
-svx-customshapes-NOOPTFILES.diff
-
-# Make the ldap stuff compile even if system openldap is >= 2.3.x
-extensions-ldap-system-openldap-2.3.x.diff
-# fix LINK
-arm-LINK-is-CC.diff
-s390-LINK-is-CXX.diff
-
-# make some symbols from sc visible when compiling with gcc4, necessary since m121, i#53261
-gcc4-visibility-sc.diff
-gcc4-vba-pastespecial-visibility.diff
-
-# fix build with gcc-4.1-pre
-# enable build with gcc-4.1.x, i#59036
-buildfix-enable-gcc41.diff
-# lots fixes for error: extra qualification, i#58967, CWS gcc41
-buildfix-gcc41-extra-qualification-autodoc.diff
-buildfix-gcc41-extra-qualification-basic.diff
-buildfix-gcc41-extra-qualification-configmgr.diff
-buildfix-gcc41-extra-qualification-connectivity.diff
-buildfix-gcc41-extra-qualification-filter.diff
-buildfix-gcc41-extra-qualification-forms.diff
-buildfix-gcc41-extra-qualification-framework.diff
-buildfix-gcc41-extra-qualification-goodies.diff
-buildfix-gcc41-extra-qualification-chart2.diff
-buildfix-gcc41-extra-qualification-io.diff
-buildfix-gcc41-extra-qualification-i18npool.diff
-buildfix-gcc41-extra-qualification-libwpd.diff
-buildfix-gcc41-extra-qualification-linguistic.diff
-buildfix-gcc41-extra-qualification-psprint.diff
-buildfix-gcc41-extra-qualification-sc.diff
-buildfix-gcc41-extra-qualification-sd.diff
-buildfix-gcc41-extra-qualification-sfx2.diff
-buildfix-gcc41-extra-qualification-slideshow.diff
-buildfix-gcc41-extra-qualification-so3.diff
-buildfix-gcc41-extra-qualification-svtools.diff
-buildfix-gcc41-extra-qualification-svx.diff
-buildfix-gcc41-extra-qualification-sw.diff
-buildfix-gcc41-extra-qualification-toolkit.diff
-buildfix-gcc41-extra-qualification-tools.diff
-buildfix-gcc41-extra-qualification-transex3.diff
-buildfix-gcc41-extra-qualification-ucb.diff
-buildfix-gcc41-extra-qualification-ucbhelper.diff
-buildfix-gcc41-extra-qualification-UnoControls.diff
-buildfix-gcc41-extra-qualification-unoxml.diff
-buildfix-gcc41-extra-qualification-vcl.diff
-buildfix-gcc41-extra-qualification-xmlhelp.diff
-buildfix-gcc41-extra-qualification-xmloff.diff
-# friend does not longer declare functions; the function must be explicitely
-# declared, i#58972, CWS gcc41
-buildfix-gcc41-friend-decl-configmgr.diff
-buildfix-gcc41-friend-decl-desktop.diff
-buildfix-gcc41-friend-decl-svx.diff
-buildfix-gcc41-friend-decl-sw.diff
-# fixes usage of the String classes; I wonder how it could work in the past :-)
-# i#58975, i#58973
-buildfix-gcc41-string-goodies.diff
-buildfix-gcc41-string-sw.diff
-# fixes undefined usage of pointers that breaks with gcc-4.1
-buildfix-gcc41-pointers-icu.diff
-# fixes warnings about missing return values, i#58976, i#58977, i#58978, i#58979, i#58980
-warning-return-values-cppcanvas.diff
-warning-return-values-filter.diff
-warning-return-values-framework.diff
-warning-return-values-registry.diff
-warning-return-values-toolkit.diff
-# fixes warnings about that a variable is used unitialized, i#58983, i#58984
-warning-uninitialized-variables-comphelper.diff
-warning-uninitialized-variables-tools-2.diff
-
-[ BuildBits >= src680-m147 ]
-# friend does not longer declare functions; the function must be explicitely
-# declared, i#58972, CWS gcc41
-buildfix-gcc41-extra-qualification-sw2.diff
-
-[ BuildBits < src680-m147 ]
-# fix to build with system libnspr (installed apart from mozilla), i#49720
-buildfix-system-nspr-m112.diff
-
-
-[ BuildBitsLinuxOnly ]
-# this can't be done on Win32 as it depends on cws-i18nshrink.diff which
-# causes breakage on Win32
-buildfix-gcc41-friend-decl-i18npool.diff
-
-[ BuildBits < src680-m146 ]
-powerpc-LINK-is-CC.diff
-
-[ BFBuildBits ]
-# lots fixes for error: extra qualification, i#58937, CWS gcc41
-buildfix-gcc41-extra-qualification-binfilter.diff
-# friend does not longer declare functions; the function must be explicitely
-# declared, i#58937, CWS gcc41
-buildfix-gcc41-friend-decl-binfilter.diff
-# fixes warnings about problematic return values
-warning-return-values-binfilter.diff
-# fixes warnings about that a variable is used unitialized
-warning-uninitialized-variables-binfilter.diff
-
-[ ParallelMake ]
-# Fixes for distributed building (with icecream) #35627
-parallel-solenv-tg_sdi-mk.diff
-# 3 more makefiles in sysui are seriously broken #35628
-parallel-sysui-makefiles.diff
-
-# Fix/workaround race condition with .REMOVE rule #16752
-parallel-dmake-dont-remove.diff
-
-[ VCL ]
-# Don't let the splash screen take over #23609
-no-splash-takeover.diff
-# Ensure window title is "OpenOffice.org..." rather than "Untitled window" #rh120696#
-splash-title.diff
-# Use nwf for menu item check boxes instead of ugly symbols #48965
-vcl-nwf-menu-checkmarks.diff
-
-# Better fallback when some of the plugins are not available #50857
-vcl-better-fallback.diff
-
-# prioritize hebrew culmus fonts, Debian bugs #280084, #296152, #300642
-hebrew-culmus.diff
-
-# don't use SansSerif per default, Debian bug #252014, Ubuntu bugs #7409, #2374
-no-sans-serif-default.diff
-
-# Cleanup of old kdeint pieces #59303
-cleanup-vcl-kdeint.diff
-
-# Return from HighContrast when it was switched off #59364
-vcl-return-from-hc.diff
-
-
-[ SystemBits ]
-# Use system icu-3.4 #54479
-system-icu.diff
-
-# use system xmlsec
-system-xmlsec.diff
-# Enable the use of an internal nss with the symbols we need
-internal-nss.diff
-internal-nss-xmlsecurity.diff
-internal-nss-xmlsecurity-libnss.diff
-
-# Fix gcc4 strict type checking problems in xmlsecurity nss
-xmlsecurity_source_xmlsec_nss_gcc4_compile_fix.diff
-
-# fix mailmerge.py installing with system-python. cws cmcfixes23
-mailmerge-py-installation-fix.diff
-
-[ SystemBits < src680-m146 ]
-# use system-agg, #i58336, cws systemagg
-system-agg.diff
-
-
-[ CWSBackports ]
-# fix usage of getCppuType in templates, i#57855, CWS sb41
-# it is necessary to build OOo with gcc-4.1
-cws-sb41.diff
-
-[ HunspellPatches ]
-hunspell-config.diff
-hunspell-build.diff
-hunspell-lingucomponent-dep.diff
-libhunspell-build.diff
-hunspell-no-hunspell_version.diff
-
-hunspell-scp2.diff
-
-
-[ Icons ]
-# Make insensitive toolbar icons look far nicer i#35555
-gui-insensitive.diff
-
-# Installation & appearance of multiple icon sets (Industrial and Crystal)
-# #36518, CWS iconswitching1
-cws-iconswitching1.diff
-
-# Default to industrial icons under win32
-default-industrial-icons-w32.diff
-
-# default to large icons in the toolbar
-gui-toolbox-large-icons.diff
-# don't bloat the toolbars beyond belief #41833
-# (depends on the iconswitching1 patches now)
-vcl-toolbox-height.diff
-# Re-size over-large icons to 24x24 - #15208
-# (depends on vcl-toolbox-height.diff now)
-sfx2-toolbox-size.diff
-
-# Enable crystal icons as well
-icons-enable-crystal.diff
-
-
-[ BFIcons ]
-# Installation & appearance of multiple icon sets (Industrial and Crystal)
-# #36518, CWS iconswitching1
-cws-iconswitching1-binfilter.diff
-
-
-[ Fpickers ]
-# Out-of-process implementation of KDE fpicker
-# FIXME: No IZ number for this, because it is necessary to do it internal first
-fpicker-kde-service.diff
-# Out-of-process implementation of KDE fpicker
-# FIXME: No IZ number for this, because it is necessary to do it internal first
-fpicker-kde-dialog.diff
-# Partially support KIO (download the file locally if we cannot handle it in
-# OOo or (FIXME) using gnome-vfs) binc#60527
-fpicker-kde-partial-kio.diff
-# Workaround for 'Filter name (*.blah)' vs. 'Filter name' problem in
-# Insert->Picture->From File... n#66873
-fpicker-kde-filter-name.diff
-# Adapt to changes in resources handling of fpickers
-fpicker-kde-resmgr.diff
-
-# Let the KDE and Gtk+ fpickers build and install FIXME IZ number
-fpicker-common-scp2.diff
-# Show "Use OpenOffice.org dialogs" check box only if the system fpicker is
-# available (better implementation) FIXME IZ number
-fpicker-show-checkbox.diff
-
-# pre-expand the filter choice for 'Export' i#51002
-fpicker-export-expand.diff
-
-# allow the fpicker to set the file type automatically based on extension n#113250
-gnome-fpicker-auto-file-type-by-extension.diff
-
-# make some symbols from svtools visible for the kde fpicker when compiling with gcc4
-#fpicker-kde-gcc4-visibility.diff - now in LinuxOnly section
-
-
-[ AddressBooks < src680-m147 ]
-# KDE Address Book implementation #52449, CWS kaddrbook
-# Snapshot from 2005-09-05
-cws-kaddrbook.diff
-# Avoid warning about missing return values in gcc4
-warning-return-values-connectivity-kab-m146.diff
-
-[ AddressBooks >= src680-m147 ]
-# Avoid warning about missing return values in gcc4
-warning-return-values-connectivity-kab.diff
-# Fix stl vector include (for external stlport) i#59900
-kab-stl-vector-h.diff
-
-[ AddressBooks ]
-# Review comments implemented for #34909
-dbaccess-evo-changes.diff
-
-# Evolution in wizards -> addressbook X#66214
-# FIXME: upstream changes completely break this patch FIXME
-# wizard-evo-local.diff
-
-# Fix mind-mangled evo. addressbook path #26309
-evo-addrbook.diff
-# Evolution should also be default database(n#66217).
-default-evolution-database.diff
-# Mailmerge column mapping by default (n#73627)
-default-evo-column-mapping.diff
-
-[ AddressBooks >= src680-m146 ]
-# misc. other fixes / bits for the driver. i#50913
-evo2-fixes.diff
-# FIXME Parts of evo-const-crash.diff and
-# evoab-select-column.diff probably need to be ported
-
-[ AddressBooks < src680-m146 ]
-# misc. other fixes / bits for the driver. i#50913
-evo2-fixes-m109.diff
-# fixes for new API, n#104462
-evo-const-crash.diff
-# fixes for i#55893
-evoab-select-column.diff
-
-
-[ Lwp ]
-# Lotus Word Pro Import Filter: IZ #11215
-lwp-detect.diff
-lwp-parse.diff
-
-lwp-build.diff
-
-
-[ QPro ]
-# Quattro Pro 6.0 import filter: IZ #41688
-qpro-build.diff
-qpro-detect.diff
-biff-hxx.diff
-biff-cxx.diff
-qproform-hxx.diff
-qpro-cxx.diff
-qproform-cxx.diff
-qpro-hxx.diff
-qprostyle-hxx.diff
-qprostyle-cxx.diff
-
-
-[ Win32Common ]
-# 2 more makefiles in sysui are seriously broken #35628
-# parallel-python-makefile_mk.diff # looks to be upstream
-# Work around G/W mail component crasher bug #FIXME - re-file vs. i#34264
-win32-gw-send-mail.diff
-# use bin/oowintool for the win32 configure stage
-win32-msvs-2003-configure.diff
-# Minor build fixes for win32
-win32-build-fixes.diff
-# This is a pretty nasty IE problem #19510
-# win32-activex-disable.diff # commented out as it breaks instsetoo_native
-# This enables building libIDL, glib and buildtools for mozilla from source
-mozilla-buildlibs-win32.diff
-# This fixes building mozilla in /opt
-# This diff seems to be broken. It patches the mozilla-source-1.7.5.patch
-# file, but breaks it.
-# mozilla-build-cygpath.diff
-
-
-[ VBABits ]
-# Alt-F11 does something useful #29138
-vba-keybinding-f11.diff
-# Prefer interoperability over marginal compatibility i#49495
-default-vba-compatible.diff
-vba-not-comments.diff
-# Parse (& ignore) 'Attribute' statements i#37347
-vba-attribute.diff
-
-[ NovellSplash < src680-m146 ]
-novell-splash-m145.diff
-
-[ NovellSplash >= src680-m146]
-novell-splash.diff
-
-[ NLDOnly ]
-# Push fonts into the ps stream always
-pushfont-psstream.diff
-
-# in case the system is panicing; registry/data/org/openoffice/VCL.xcu is
-# not installed or broken; used for example if OOo is installed from an
-# installation set by ./install --interactive
-gui-font-paranoid-fallback.diff
-
-[ ArkOnly ]
-# some branding action cf. doc/splash.txt
-ark-splash.diff
-# See what breaks if we build with more optimizations
-testing-more-optimizations-ark.diff
-
-
-[ RedhatOnly ]
-# Some palette loving
-redhat-standard-colors.diff
-
-
-[ QiLinuxOnly ]
-# splash
-qilinux-splash.diff
-
-
-[ GentooOnly ]
-version-2-0-pre.diff
-gentoo-splash.diff
-# Do not use mozilla-ldap, it breaks for us
-no-ldap-mozilla.diff
-# Fix for build breakage on PPC
-stlport-ppc-buildfix.diff
-# Re-add DicOOo
-gentoo-dicooo.diff
-
-#
-# NOTE: 64 bit OOo is work in progress!
-#
-
-[ 64bitSolaris ]
-# __sparcv9 in nas #57680
-solaris64-nas.diff
-
-# Support for 64bit Solaris/SunPro in stlport # 57686
-solaris64-stlport.diff
-
-# Support for 64bit Solaris in solenv #FIXME?
-solaris64-solenv.diff
-
-# #FIXME?
-solaris64-sal.diff
-
-[ 64bitForUpstream < src680-m148 ]
-# sal_uInt32 -> sal_Size in cppu #57678 CWS pj43
-unsorted-cppu.diff
-# unsigned int -> size_t in vos #57688 CWS pj43
-unsorted-vos.diff
-# SimpleHeapManagerBase #33644 CWS pj43
-unsorted-configmgr.diff
-# sal_uInt32 -> sal_Size in bridges (memAlloc) #57694 CWS pj43
-unsorted-bridges.diff
-# Pyuno build #58332 CWS pj43
-buildfix-64bit-pyuno.diff
-# sal_Int32 -> sal_IntPtr in svx #58748 CWS pj43
-buildfix-64bit-svx-intptr.diff
-# ResIds are always 32bit #58947 CWS pj43
-buildfix-64bit-svx.diff
-
-[ 64bitForUpstream ]
-# Build fix in canvas #57396 CWS cairocanvas
-buildfix-64bit-canvas.diff
-
-# Build fix in cppcanvas #58018
-buildfix-64bit-cppcanvas.diff
-
-# sal_uInt32 * pPoints -> unsigned long * pPoints for DrawPolyPolygon.* #FIXME
-polygonpoints-psprint-vcl.diff
-
-# UINT32 -> sal_uIntPtr in basic
-intptr-basic.diff
-
-# Support for 64bit JVM #57424 CWS pj43
-unsorted-jvmfwk.diff
-
-# For fprintf( ..., "%ld", var ), var must be a 'long' #57682 CWS vcl47
-unsorted-rsc.diff
-
-# Trivial ULONG -> comm_UINT32 #59252
-buildfix-64bit-automation.diff
-
-# Trivial long -> sal_Int32 #59041 CWS vcl49
-# Note: Completely removed in vcl49...
-buildfix-64bit-fpicker.diff
-
-# sal_uInt32 -> sal_Size, and 0x123UL -> sal_uInt32(0x123) in 'store' #57737
-unsorted-store.diff
-
-[ 64bitForUpstream < src680-m146 ]
-# sal_uInt32 -> uLongf in filter #57690
-unsorted-filter.diff
-
-
-[ 64bitUnsorted ]
-# Change order of sal_u?Int64 definition, trivial sal_uInt32->sal_Size change #57893
-unsorted-sal.diff
-
-# DateTime BigInt-related errors #59407
-bigint-datetime.diff
-
-# SbxINT, SbxLONG, etc. #57674
-unsorted-basic.diff
-buildfix-64bit-basic.diff
-
-# sal_uInt32 -> ULONG for nEvent #59411
-event-extensions.diff
-
-[ 64bitUnsorted >= src680-m148 ]
-# Trivial sal_Int32 <-> long changes in desktop #59448
-unsorted-desktop.diff
-
-[ 64bitUnsorted < src680-m148 ]
-# Trivial sal_Int32 <-> long changes in desktop #59448
-unsorted-desktop-m147.diff
-
-
-[ NumberFormat < src680-m146 ]
-# Fix ULONG -> sal_uInt32 in the NumberFormat related parameters #55546
-# CWS numberformat
-numberformat-basic.diff
-numberformat-chart2.diff
-numberformat-sc.diff
-numberformat-sch.diff
-numberformat-sd.diff
-numberformat-sfx2.diff
-numberformat-starmath.diff
-numberformat-svtools.diff
-numberformat-svx.diff
-numberformat-sw.diff
-numberformat-vcl.diff
-numberformat-xmloff.diff
-
-
-[ BFNumberFormat < src680-m146 ]
-# CWS numberformat, integrated into m146
-numberformat-binfilter.diff
-
-
-[ Trivial ]
-# Trivial long/ULONG -> sal_Int32/sal_uInt32, etc. changes #56715
-# CWS long2int
-accessibleChild-sc-sd-svx-sw.diff
-resid-extensions-padmin.diff
-trivial-basic.diff
-trivial-chart2.diff
-trivial-dbaccess.diff
-buildfix-64bit-dbaccess.diff
-trivial-extensions.diff
-trivial-filter.diff
-trivial-framework.diff
-trivial-sch.diff
-trivial-sfx2.diff
-trivial-svtools.diff
-trivial-svx.diff
-trivial-so3.diff
-trivial-starmath.diff
-trivial-vcl.diff
-trivial-xmloff.diff
-
-
-[ 64bitPatches ]
-# Snapshot of CWS ooo64bit02
-cws-ooo64bit02.2005-04-19.diff
-
-# Temporary hack in sw/source/core/edit/editsh.cxx
-buildfix-64bit-sw-editsh.diff
-
-# Change #include <cBLAH> -> #include <BLAH.h> #FIXME
-# TODO - no idea whether this is really necessary
-cincludes.diff
-
-# BigInt related changes #FIXME
-# FIXME - breaks 32bit build
-bigint-sd-sfx2-sw-tools.diff
-
-# Temporary hacks
-buildfix-64bit-config_office.diff
-buildfix-64bit-forms.diff
-buildfix-64bit-setup_native.diff
-buildfix-64bit-svtools.diff
-buildfix-64bit-tools.diff
-
-# Do not install the python bits, they do not register ATM
-buildfix-64bit-scp2-no-python.diff
-
-# Do not break with system jpeg & Java
-buildfix-64bit-system-jpeg.diff
-#
-## Fix ambiguous invocations of Min()/Max()/Abs() when OOo with 64 bit patches
-## is built on 32 bit platforms
-#buildfix-64bit-on-32bit-systems.diff
-
-# Fix the x86_64 bridge
-unsorted-bridges-x86_64.diff
-fix-64bit-bridges.diff
-fix-64bit-bridges-2.diff
-fix-64bit-bridges-3.diff
-
-# Fix SVBT32 <-> long conversion
-fix-64bit-tools-svbt.diff
-
-# Fix ww8 filter
-fix-64bit-sw-filter-ww8.diff
-
-# Fix CFLAGS for optimization/no optimization:
-# Use -O2 for opt.
-fix-64bit-solenv-O2.diff
-
-# Search libgcj in lib64 as well
-gcj-jvmfwk-gcc41-lib64.diff
-
-[ 64bitPatches < src680-m148 ]
-# fix this error:
-# impgraph.cxx:1105: Error: expected primary-expression before "break"
-buildfix-64bit-vcl-gcc4.diff
-# Use -O0 for no opt. CWS pj43
-fix-64bit-solenv-noopt.diff
-
-
-[ JDK150 ]
-# You need 64bit java, e.g. JDK 1.5.0 for AMD64:
-# http://java.sun.com/j2se/1.5.0/download.jsp
-# This JDK needs
-# ln -s motif21/libmawt.so /usr/java/jdk1.5.0_01/jre/lib/amd64/libmawt.so
-# to let OOo compile well
-#
-# FIXME No IZ for this one yet
-buildfix-jdk150-berkeleydb.diff
-buildfix-jdk150-jurt.diff
-buildfix-jdk150-jvmfwk.diff
-buildfix-jdk150-qadevOOo.diff
-buildfix-jdk150-rhino.diff
-buildfix-jdk150-sandbox.diff
-buildfix-jdk150-scripting.diff
-buildfix-jdk150-sj2.diff
-buildfix-jdk150-xmerge.diff
-buildfix-jdk150-xmlhelp.diff
-buildfix-jdk150-XmlSearch.diff
-
-
-[ DebianBaseOnly ]
-#disable-helpcontent2.diff
-#disable-xmlsearch-and-xmlhelp-jar.diff
-dont-build-cfgimport-jar.diff
-dont-copy-and-install-stlport.diff
-
-
-[ DebianSidOnly ]
-#use-free-xt-xp-jaxp-from-system.diff
-use-xalan-xerces-from-system.diff
-static-libs-use-_pic.diff
-#debian-hunspell-build.diff
-
-[ DebianSidOnly < src680-m147 ]
-# use system hsqldb, Issue 52974
-system-hsqldb-m146.diff
-# use system bsh
-system-bsh-m146.diff
-
-[ DebianSidOnly >= src680-m147 ]
-# use system hsqldb, Issue 52974
-system-hsqldb.diff
-# use system bsh
-system-bsh.diff
-
-[ DebianSidOnly ]
-disable-rhino.diff
-xmlsearch-plain-xt.diff
-use-free-xt-from-system.diff
-
-[ DebianSargeOnly ]
-use-free-xt-xp-jaxp-from-system-sarge.diff
-disable-rhino-without-system-bsh.diff
-
-[ Mono ]
-#
-# These patches are experimental beware ...
-#
-mono-scp2.diff
-bridges-prj.diff
-bridges-source-mono_uno-binaryuno-cs.diff
-bridges-source-mono_uno-bridge-cs.diff
-bridges-source-mono_uno-cli_environment-cs.diff
-bridges-source-mono_uno-makefile-mk.diff
-bridges-source-mono_uno-managed_proxy-cs.diff
-bridges-source-mono_uno-mono_bridge-cxx.diff
-bridges-source-mono_uno-mono_bridge-h.diff
-bridges-source-mono_uno-mono_proxy-cxx.diff
-bridges-source-mono_uno-rtl_ustring-cs.diff
-bridges-source-mono_uno-typeclass-cs.diff
-bridges-source-mono_uno-typedescription-cs.diff
-bridges-source-mono_uno-uik-cs.diff
-bridges-source-mono_uno-uno_glue-cxx.diff
-bridges-source-mono_uno-uno_proxy-cs.diff
-cli_ure-source-bootstrap-assembly-cs.diff
-cli_ure-source-bootstrap-makefile-mk.diff
-cli_ure-source-bootstrap-managed_bootstrap-cs.diff
-cli_ure-source-bootstrap-native_glue-cxx.diff
-mono-testtools.diff
-mono-build.diff
-
-[ VBAObjects ]
-
-offapi-org-openoffice-vba-makefile-mk.diff
-offapi-org-openoffice-vba-xapplication-idl.diff
-offapi-org-openoffice-vba-xcollection-idl.diff
-offapi-org-openoffice-vba-xfont-idl.diff
-offapi-org-openoffice-vba-xglobals-idl.diff
-offapi-org-openoffice-vba-xoutline-idl.diff
-offapi-org-openoffice-vba-xrange-idl.diff
-offapi-org-openoffice-vba-xworkbook-idl.diff
-offapi-org-openoffice-vba-xworkbooks-idl.diff
-offapi-org-openoffice-vba-xworksheet-idl.diff
-offapi-org-openoffice-vba-xworksheets-idl.diff
-offapi-org-openoffice-vba-MSFormReturnTypes-idl.diff
-offapi-org-openoffice-vba-xvbatoooeventdescgen-idl.diff
-offapi-org-openoffice-vba-excel-xlcelltype-idl.diff
-offapi-org-openoffice-vba-excel-makefile-mk.diff
-offapi-org-openoffice-vba-xdialog-idl.diff
-offapi-org-openoffice-vba-xdialogs-idl.diff
-offapi-org-openoffice-vba-xlbuildindialog-idl.diff
-offapi-org-openoffice-vba-xlpastespecialoperation-idl.diff
-offapi-org-openoffice-vba-xlpastetype-idl.diff
-offapi-org-openoffice-vba-xworksheetfunction-idl.diff
-offapi-org-openoffice-vba-xinterior-idl.diff
-offapi-org-openoffice-vba-excel-constants-idl.diff
-offapi-org-openoffice-vba-excel-xlcutcopymode-idl.diff
-offapi-org-openoffice-vba-excel-xlfindlookin-idl.diff
-offapi-org-openoffice-vba-xwindow-idl.diff
-offapi-org-openoffice-vba-excel-xlcalculation-idl.diff
-offapi-org-openoffice-vba-xchart-idl.diff
-offapi-org-openoffice-vba-xchartobject-idl.diff
-offapi-org-openoffice-vba-xchartobjects-idl.diff
-offapi-org-openoffice-vba-xseries-idl.diff
-offapi-org-openoffice-vba-xseriescollection-idl.diff
-offapi-org-openoffice-vba-xarraywrapper-idl.diff
-offapi-org-openoffice-vba-xpivotcache-idl.diff
-offapi-org-openoffice-vba-xpivottable-idl.diff
-offapi-org-openoffice-vba-xpivottables-idl.diff
-scp_vba_uno_service.diff
-sc-source-ui-vba-makefile-mk.diff
-sc-source-ui-vba-service-cxx.diff
-sc-source-ui-vba-vbaapplication-cxx.diff
-sc-source-ui-vba-vbaapplication-hxx.diff
-sc-source-ui-vba-vbafont-cxx.diff
-sc-source-ui-vba-vbafont-hxx.diff
-sc-source-ui-vba-vbaglobals-cxx.diff
-sc-source-ui-vba-vbaglobals-hxx.diff
-sc-source-ui-vba-vbahelper-hxx.diff
-sc-source-ui-vba-vbaobj-map.diff
-sc-source-ui-vba-vbaobj-xml.diff
-sc-source-ui-vba-vbaoutline-cxx.diff
-sc-source-ui-vba-vbaoutline-hxx.diff
-sc-source-ui-vba-vbarange-cxx.diff
-sc-source-ui-vba-vbarange-hxx.diff
-sc-source-ui-vba-vbaworkbook-cxx.diff
-sc-source-ui-vba-vbaworkbook-hxx.diff
-sc-source-ui-vba-vbaworkbooks-cxx.diff
-sc-source-ui-vba-vbaworkbooks-hxx.diff
-sc-source-ui-vba-vbaworksheet-cxx.diff
-sc-source-ui-vba-vbaworksheet-hxx.diff
-sc-source-ui-vba-vbaworksheets-cxx.diff
-sc-source-ui-vba-vbaworksheets-hxx.diff
-sc-source-ui-vba-vbadialog-cxx.diff
-sc-source-ui-vba-vbadialog-hxx.diff
-sc-source-ui-vba-vbadialogs-cxx.diff
-sc-source-ui-vba-vbadialogs-hxx.diff
-sc-source-ui-vba-vbainterior-cxx.diff
-sc-source-ui-vba-vbainterior-hxx.diff
-sc-source-ui-vba-vbawsfunction-cxx.diff
-sc-source-ui-vba-vbawsfunction-hxx.diff
-sc-source-ui-vba-vbawindow-cxx.diff
-sc-source-ui-vba-vbawindow-hxx.diff
-sc-source-ui-vba-vbachartobject-cxx.diff
-sc-source-ui-vba-vbachartobject-hxx.diff
-sc-source-ui-vba-vbachartobjects-cxx.diff
-sc-source-ui-vba-vbachartobjects-hxx.diff
-sc-source-ui-vba-vbachart-cxx.diff
-sc-source-ui-vba-vbachart-hxx.diff
-sc-source-ui-vba-vbacollectionimpl-cxx.diff
-sc-source-ui-vba-vbacollectionimpl-hxx.diff
-sc-source-ui-vba-vbaseriescollection-cxx.diff
-sc-source-ui-vba-vbaseriescollection-hxx.diff
-sc-source-ui-vba-vbaarraywrapper-cxx.diff
-sc-source-ui-vba-vbaarraywrapper-hxx.diff
-sc-source-ui-vba-vbapivotcache-cxx.diff
-sc-source-ui-vba-vbapivotcache-hxx.diff
-sc-source-ui-vba-vbapivottable-cxx.diff
-sc-source-ui-vba-vbapivottable-hxx.diff
-sc-source-ui-vba-vbapivottables-cxx.diff
-sc-source-ui-vba-vbapivottables-hxx.diff
-vba-basic-globals.diff
-vba-build.diff
-vba-basic-collection.diff
-sc-vba-build-lst.diff
-sc-source-ui-vba-vbahelper-cxx.diff
-sc-source-ui-inc-viewfunc-hxx.diff
-sc-source-ui-inc-tabview-hxx.diff
-sc-inc-docuno-hxx-visibility.diff
-sc-inc-document-gcc4-visibility.diff
-sc-hacky-handle-boolean.diff
-svx-source-form-formControlVBAHandler-hxx.diff
-svx-source-form-formControlVBAHandler-cxx.diff
-svx-source-inc-fmundo-hxx.diff
-svx-source-form-makefile.diff
-svx-source-form-fmctrler-cxx.diff
-svx-source-form-fmundo-cxx.diff
-extensions-source-propctrlr-makefile-mk.diff
-extensions-source-propctrlr-formcontroller-cxx.diff
-vbaevents-services-build.diff
-vbaevents-services-sources.diff
-vba-basic-multidim-uno-arraywrap.diff
-vba-optionbasesupport.diff
-vba-runtime-vba-enabled.diff
-vba-dim-and-constants-patch.diff
-vba-evaluate-support.diff
-vba-support-stoc-typeprovider-xexactname.diff
-vba-basic-default.diff
-vba_configure_set_soenv_in.diff
-basic-millisecTimer.diff
-
-vba-sc-docuno-hook.diff
-
-
-[ Lockdown ]
-# GNOME desktop integration, pick up configuration values from gconf
-gnome-desktop-integration.diff
-# Disable UI [toolbars, menus] customization
-ui-desktop-integration.diff
-# Disable printing where restricted throughout desktop
-printing-desktop-integration.diff
-# add in an entry for a corporate common dictionary
-corporate-dictionary.diff
-
-
-[ cairocanvas ]
-# canvas build patches
-canvas-prj-build-lst.diff
-
-# vcl changes for vdev creation
-cairo-canvas-vcl.diff
-
-canvas-source-cairo-cairo_cachedbitmap-cxx.diff
-canvas-source-cairo-cairo_cachedbitmap-hxx.diff
-canvas-source-cairo-cairo_cairo-cxx.diff
-canvas-source-cairo-cairo_cairo-hxx.diff
-canvas-source-cairo-cairo_canvasbitmap-cxx.diff
-canvas-source-cairo-cairo_canvasbitmap-hxx.diff
-canvas-source-cairo-cairo_canvascustomsprite-cxx.diff
-canvas-source-cairo-cairo_canvascustomsprite-hxx.diff
-canvas-source-cairo-cairo_canvasfont-cxx.diff
-canvas-source-cairo-cairo_canvasfont-hxx.diff
-canvas-source-cairo-cairo_canvashelper-cxx.diff
-canvas-source-cairo-cairo_canvashelper-hxx.diff
-canvas-source-cairo-cairo_canvashelper_text-cxx.diff
-canvas-source-cairo-cairo_devicehelper-cxx.diff
-canvas-source-cairo-cairo_devicehelper-hxx.diff
-canvas-source-cairo-cairo_helper-cxx.diff
-canvas-source-cairo-cairo_helper-hxx.diff
-canvas-source-cairo-cairo_impltools-hxx.diff
-canvas-source-cairo-cairo_outdevprovider-hxx.diff
-canvas-source-cairo-cairo_repainttarget-hxx.diff
-canvas-source-cairo-cairo_sprite-hxx.diff
-canvas-source-cairo-cairo_spritecanvas-cxx.diff
-canvas-source-cairo-cairo_spritecanvashelper-cxx.diff
-canvas-source-cairo-cairo_spritecanvashelper-hxx.diff
-canvas-source-cairo-cairo_spritecanvas-hxx.diff
-canvas-source-cairo-cairo_spritehelper-cxx.diff
-canvas-source-cairo-cairo_spritehelper-hxx.diff
-canvas-source-cairo-cairo_textlayout-cxx.diff
-canvas-source-cairo-cairo_textlayout-hxx.diff
-canvas-source-cairo-cairo_windowgraphicdevice-hxx.diff
-canvas-source-cairo-exports-dxp.diff
-canvas-source-cairo-exports-map.diff
-canvas-source-cairo-makefile-mk.diff
-
-canvas-source-factory-cf-service-cxx.diff
-
-cairo-canvas-component-install.diff
-cairo-smooth-curves.diff
-
-# OOo configure patches
-cairo-config-office-configure-in.diff
-cairo-config-office-set-soenv-in.diff
-
-# canvas build patches
-canvas-prj-d-lst.diff
-
-# cairo internal module
-cairo-makefile-mk.diff
-cairo-prj-build-lst.diff
-cairo-prj-d-lst.diff
-
-# scp2 bits
-cairo-scp2.diff
-
-# options dialog
-cairo-svx-source-dialog-makefile-mk.diff
-cairo-svx-source-dialog-optgdlg-cxx.diff
-cairo-svx-source-dialog-optgdlg-src-hrc.diff
-
-# patches against cairocanvas cws - which is now scheduled for QA, need to upstream them later
-cairo-canvas-surface-resize.diff
-cairo-canvas-rgb-surface-fallback.diff
-
-[ msaccess ]
-cws-mdbdriver01.diff
-disable-access.diff
-mdbtools.diff
-mdbtools-makefile-mk.diff
-mdbtools-prj-build-lst.diff
-mdbtools-prj-d-lst.diff
-
-connectivity-source-drivers-mdb-dataaccess-xcu.diff
-connectivity-source-drivers-mdb-exports-dxp.diff
-connectivity-source-drivers-mdb-makefile-mk.diff
-connectivity-source-drivers-mdb-mdb-allocator-hxx.diff
-connectivity-source-drivers-mdb-mdb-baseresultset-cxx.diff
-connectivity-source-drivers-mdb-mdb-baseresultset-hxx.diff
-connectivity-source-drivers-mdb-mdb-connection-cxx.diff
-connectivity-source-drivers-mdb-mdb-connection-hxx.diff
-connectivity-source-drivers-mdb-mdb-databasemetadata-cxx.diff
-connectivity-source-drivers-mdb-mdb-databasemetadata-hxx.diff
-connectivity-source-drivers-mdb-mdb-driver-cxx.diff
-connectivity-source-drivers-mdb-mdb-driver-hxx.diff
-connectivity-source-drivers-mdb-mdb-map.diff
-connectivity-source-drivers-mdb-mdb-preparedstatement-cxx.diff
-connectivity-source-drivers-mdb-mdb-preparedstatement-hxx.diff
-connectivity-source-drivers-mdb-mdb-resultset-cxx.diff
-connectivity-source-drivers-mdb-mdb-resultset-hxx.diff
-connectivity-source-drivers-mdb-mdb-resultsetmetadata-cxx.diff
-connectivity-source-drivers-mdb-mdb-resultsetmetadata-hxx.diff
-connectivity-source-drivers-mdb-mdb-sequenceresultset-cxx.diff
-connectivity-source-drivers-mdb-mdb-sequenceresultset-hxx.diff
-connectivity-source-drivers-mdb-mdb-statement-cxx.diff
-connectivity-source-drivers-mdb-mdb-statement-hxx.diff
-connectivity-source-drivers-mdb-mdb-wrapper-cxx.diff
-connectivity-source-drivers-mdb-mdb-wrapper-hxx.diff
-connectivity-source-drivers-mdb-mdb-xml.diff
-connectivity-source-drivers-mdb-config-h.diff
-
-#hack to get the proper msaccess tabpage
-msaccess-db-create-dialog-fix.diff
-
-
-# Ark Linux used to split Qt into qt-mt and qt-base-mt so text mode apps etc.
-# can use Qt base functionality without linking in the whole GUI - this
-# functionality is now obsolete because Qt 4.0 does this by default, and has
-# been undone.
-# If you're building for an older version of Ark Linux, you need to enable
-# this patch again.
-# Needs to be applied after merge-kab
-#ark-handle-split-qt.diff
-
-# Experimental section for removal of old sound cruft
-[ Sound ]
-size-sound-vcl.diff
-size-sound-svx.diff
-size-sound-framework.diff
-size-sound-sw.diff
-size-sound-sc.diff
-size-sound-sd.diff
-
-
-[ SlideSorterDemo ]
-slidesorter-demo-pngperf.svtools.diff
-slidesorter-demo-pngperf.vcl.diff
-slidesorter-demo-sd.diff
-slidesorter-demo-svtools.diff
-slidesorter-demo-vcl.diff
-
-[ SpeedSplash ]
-# make the office socket name more predictable for external re-use
-speed-splash-ipc-name.diff
-
-[ CalcSolver ]
-# needs more boost headers
-scs-boost.diff
-# setup protocol handler (urgh)
-scs-officecfg.diff
-# install the component
-scs-scp2.diff
diff --git a/patches/src680/ark-handle-split-qt.diff b/patches/src680/ark-handle-split-qt.diff
deleted file mode 100644
index 23f049e4f..000000000
--- a/patches/src680/ark-handle-split-qt.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- config_office/configure.in.ark 2005-02-05 20:40:13.000000000 +0100
-+++ config_office/configure.in 2005-02-05 20:40:19.000000000 +0100
-@@ -2889,7 +2889,7 @@
-
- dnl Set the variables
- KDE_CFLAGS="-I$qt_incdir -I$kde_incdir -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT"
-- KDE_LIBS="-L$kde_libdir -L$qt_libdir -lkdeui -lkdecore -lqt-mt"
-+ KDE_LIBS="-L$kde_libdir -L$qt_libdir -lkdeui -lkdecore -lqt-mt -lqt-base-mt"
- fi
- AC_SUBST(KDE_CFLAGS)
- AC_SUBST(KDE_LIBS)
diff --git a/patches/src680/ark-splash.diff b/patches/src680/ark-splash.diff
deleted file mode 100644
index e88f6dfca..000000000
--- a/patches/src680/ark-splash.diff
+++ /dev/null
@@ -1,33 +0,0 @@
---- svx/prj/d.lst.ark 2005-05-10 02:48:34.000000000 +0200
-+++ svx/prj/d.lst 2005-05-10 02:48:56.000000000 +0200
-@@ -43,7 +43,7 @@
- ..\res\cjkintro.bmp %COMMON_DEST%\pck%_EXT%\starsuite_bitmap\intro.bmp
- ..\res\ofaabout.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\about.bmp
- ..\res\soffice.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\intro.bmp
--..\res\ooointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro.bmp
-+..\res\openintro_ark.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro.bmp
- ..\res\ooonologointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\nologointro.bmp
-
- mkdir: %_DEST%\inc%_EXT%\svx
---- svx/source/intro/ooo.src.ark 2005-05-10 02:49:04.000000000 +0200
-+++ svx/source/intro/ooo.src 2005-05-10 02:49:31.000000000 +0200
-@@ -84,7 +84,7 @@
-
- Bitmap RID_DEFAULT_ABOUT_BMP_LOGO
- {
-- File = "openabout.bmp" ;
-+ File = "openabout_ark.bmp" ;
- };
-
- String RID_APPTITLE
---- svx/source/intro/makefile.mk.ark 2005-12-19 20:09:47.000000000 +0000
-+++ svx/source/intro/makefile.mk 2005-12-19 20:10:01.000000000 +0000
-@@ -46,7 +46,7 @@
- RSCLOCINC!:=$(RSCLOCINC);$(PRJ)$/RES
-
- # setting the compiled by $user$ string in the About box
--OOO_VENDOR*="$(USER)$(USERNAME)"
-+OOO_VENDOR*="the Ark Linux team"
- RSCDEFS+=-DOOO_VENDOR=$(OOO_VENDOR)
-
- # --- Allgemein -----------------------------------------------------------
diff --git a/patches/src680/arm-LINK-is-CC.diff b/patches/src680/arm-LINK-is-CC.diff
deleted file mode 100644
index 3efaf5e54..000000000
--- a/patches/src680/arm-LINK-is-CC.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: unxlngr.mk
-===================================================================
-RCS file: /cvs/tools/solenv/inc/unxlngr.mk,v
-retrieving revision 1.8
-diff -u -u -r1.8 unxlngr.mk
---- solenv/inc/unxlngr.mk 11 Jul 2005 15:32:08 -0000 1.8
-+++ solenv/inc/unxlngr.mk 16 Aug 2005 21:48:48 -0000
-@@ -139,7 +139,7 @@
- DYNAMIC = -Wl,-Bdynamic
-
- # name of linker
--LINK=gcc
-+LINK=$(CC)
- # default linker flags
- LINKFLAGS=
-
diff --git a/patches/src680/bean-gcj-bug-workaround.diff b/patches/src680/bean-gcj-bug-workaround.diff
deleted file mode 100644
index c9adda66d..000000000
--- a/patches/src680/bean-gcj-bug-workaround.diff
+++ /dev/null
@@ -1,15 +0,0 @@
-Index: makefile.mk
-===================================================================
-RCS file: /cvs/api/bean/native/unix/makefile.mk,v
-retrieving revision 1.5
-diff -u -u -r1.5 makefile.mk
---- bean/native/unix/makefile.mk 15 Mar 2005 09:07:46 -0000 1.5
-+++ bean/native/unix/makefile.mk 22 Mar 2005 14:06:03 -0000
-@@ -41,6 +41,7 @@
- .ENDIF
-
- NO_SHL1DESCRIPTION=TRUE
-+SHL1NOCHECK="TRUE"
-
- # --- Targets ------------------------------------------------------
-
diff --git a/patches/src680/biff-cxx.diff b/patches/src680/biff-cxx.diff
deleted file mode 100644
index dffa8e51b..000000000
--- a/patches/src680/biff-cxx.diff
+++ /dev/null
@@ -1,138 +0,0 @@
---- /dev/null 2004-07-26 17:21:14.000000000 +0530
-+++ sc/source/filter/qpro/biff.cxx 2005-05-26 18:42:37.000000000 +0530
-@@ -0,0 +1,135 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include <sal/config.h>
-+#include <stdio.h>
-+#include <sfx2/docfile.hxx>
-+
-+#include "global.hxx"
-+#include "scerrors.hxx"
-+#include "docpool.hxx"
-+#include "patattr.hxx"
-+#include "filter.hxx"
-+#include "document.hxx"
-+#include "cell.hxx"
-+#include "biff.hxx"
-+
-+ScBiffReader::ScBiffReader( SfxMedium & rMedium ) :
-+ mnId(0),
-+ mnLength(0),
-+ mnOffset(0)
-+{
-+ mpStream = rMedium.GetInStream();
-+ if( mpStream )
-+ {
-+ mpStream->SetBufferSize( 65536 );
-+ mpStream->SetStreamCharSet( RTL_TEXTENCODING_MS_1252 );
-+ }
-+}
-+
-+ScBiffReader::~ScBiffReader()
-+{
-+ if( mpStream )
-+ mpStream->SetBufferSize( 0 );
-+}
-+
-+bool ScBiffReader::nextRecord()
-+{
-+ if( !recordsLeft() )
-+ return false;
-+
-+ if( IsEndOfFile() )
-+ return false;
-+
-+ sal_uInt32 nPos = mpStream->Tell();
-+ if( nPos != mnOffset + mnLength )
-+ mpStream->Seek( mnOffset + mnLength );
-+
-+ mnLength = mnId = 0;
-+ *mpStream >> mnId >> mnLength;
-+
-+ mnOffset = mpStream->Tell();
-+#ifdef DEBUG
-+ fprintf( stderr, "Read record 0x%x length 0x%x at offset 0x%x\n",
-+ mnId, mnLength, mnOffset );
-+
-+#if 1 // rather verbose
-+ int len = mnLength;
-+ while (len > 0) {
-+ int i, chunk = len < 16 ? len : 16;
-+ unsigned char data[16];
-+ mpStream->Read( data, chunk );
-+
-+ for (i = 0; i < chunk; i++)
-+ fprintf( stderr, "%.2x ", data[i] );
-+ fprintf( stderr, "| " );
-+ for (i = 0; i < chunk; i++)
-+ fprintf( stderr, "%c", data[i] < 127 && data[i] > 30 ? data[i] : '.' );
-+ fprintf( stderr, "\n" );
-+
-+ len -= chunk;
-+ }
-+ mpStream->Seek( mnOffset );
-+#endif
-+#endif
-+ return true;
-+}
-+
diff --git a/patches/src680/biff-hxx.diff b/patches/src680/biff-hxx.diff
deleted file mode 100644
index 475c9fb7a..000000000
--- a/patches/src680/biff-hxx.diff
+++ /dev/null
@@ -1,104 +0,0 @@
---- /dev/null 2004-07-26 17:21:14.000000000 +0530
-+++ sc/source/filter/inc/biff.hxx 2005-05-26 18:43:22.000000000 +0530
-@@ -0,0 +1,101 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+
-+#ifndef SC_BASE_HXX
-+#define SC_BASE_HXX
-+
-+#include <sal/config.h>
-+#include "filter.hxx"
-+#include "document.hxx"
-+#include "cell.hxx"
-+
-+#ifndef _STRING_HXX
-+#include <tools/string.hxx>
-+#endif
-+
-+#include <tools/color.hxx>
-+#include "flttypes.hxx"
-+#include "ftools.hxx"
-+
-+// Stream wrapper class
-+class ScBiffReader
-+{
-+ protected:
-+ sal_uInt16 mnId;
-+ sal_uInt16 mnLength;
-+ sal_uInt32 mnOffset;
-+ SvStream *mpStream;
-+ bool mbEndOfFile;
-+
-+ public:
-+ ScBiffReader( SfxMedium& rMedium );
-+ ~ScBiffReader();
-+ bool recordsLeft() { return mpStream && !mpStream->IsEof(); }
-+ bool IsEndOfFile() { return mbEndOfFile; }
-+ void SetEof( bool bValue ){ mbEndOfFile = bValue; }
-+ bool nextRecord();
-+ sal_uInt16 getId() { return mnId; }
-+ sal_uInt16 getLength() { return mnLength; }
-+ SvStream& getStream() { return *mpStream; }
-+};
-+#endif
-+
diff --git a/patches/src680/build-offapi-no-compare.diff b/patches/src680/build-offapi-no-compare.diff
deleted file mode 100644
index fc45f8e97..000000000
--- a/patches/src680/build-offapi-no-compare.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- offapi/util/makefile.mk.ark 2005-11-05 15:57:54.000000000 +0000
-+++ offapi/util/makefile.mk 2005-11-05 15:58:39.000000000 +0000
-@@ -171,8 +171,6 @@
- #SB: Once the reference rdbs are new-style registries with explicit published
- # types, the "-u" should be removed again from the calls to regcompare:
- $(REGISTRYCHECKFLAG) : $(UCR)$/types.db $(OUT)$/ucrdoc$/types_doc.db
-- +$(REGCOMPARE) -f -t -r1 $(REFERENCE_RDB) -r2 $(UCR)$/types.db
-- +$(REGCOMPARE) -f -t -r1 $(REFERENCE_DOC_RDB) -r2 $(OUT)$/ucrdoc$/types_doc.db \
-- && echo > $(REGISTRYCHECKFLAG)
-+ echo > $(REGISTRYCHECKFLAG)
-
- .INCLUDE : target.mk
diff --git a/patches/src680/build-optimized-link.diff b/patches/src680/build-optimized-link.diff
deleted file mode 100644
index 91e0db0b2..000000000
--- a/patches/src680/build-optimized-link.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: solenv/inc/unxlngi4.mk
-===================================================================
-RCS file: /cvs/tools/solenv/inc/unxlngi4.mk,v
-retrieving revision 1.17
-diff -u -p -u -r1.17 unxlngi4.mk
---- solenv/inc/unxlngi4.mk 28 Apr 2003 16:46:57 -0000 1.17
-+++ solenv/inc/unxlngi4.mk 13 May 2003 09:46:12 -0000
-@@ -145,7 +145,7 @@ LINK*=$(CC)
- # default linker flags
- LINKFLAGSDEFS*=-z defs
- LINKFLAGSRUNPATH*=-Wl,-rpath,\''$$ORIGIN'\'
--LINKFLAGS=-z combreloc $(LINKFLAGSDEFS) $(LINKFLAGSRUNPATH)
-+LINKFLAGS=-O2 -Bsymbolic -z combreloc $(LINKFLAGSDEFS) $(LINKFLAGSRUNPATH)
-
- # linker flags for linking applications
- LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
diff --git a/patches/src680/build-wizard-bitmap-scp.diff b/patches/src680/build-wizard-bitmap-scp.diff
deleted file mode 100644
index e325592f7..000000000
--- a/patches/src680/build-wizard-bitmap-scp.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: scp2/source/ooo/file_extra_ooo.scp
-===================================================================
-RCS file: /cvs/installation/scp2/source/ooo/file_extra_ooo.scp,v
-retrieving revision 1.8
-diff -u -r1.8 file_extra_ooo.scp
---- scp2/source/ooo/file_extra_ooo.scp 9 Nov 2004 16:51:18 -0000 1.8
-+++ scp2/source/ooo/file_extra_ooo.scp 7 Dec 2004 10:22:18 -0000
-@@ -332,7 +332,7 @@
- EXTRA_ALL_LANG(tplpresntimpr);
- End
-
--File gid_File_Extra_Tplwizbitmap
-+File gid_File_Extra_Tplwizbitmap_Lang
- Dir = gid_Dir_Template_Wizard_Bitmap;
- TXT_FILE_BODY;
- Styles = (ARCHIVE, DONT_OVERWRITE);
diff --git a/patches/src680/buildfix-deliver-strip.diff b/patches/src680/buildfix-deliver-strip.diff
deleted file mode 100644
index def113c8e..000000000
--- a/patches/src680/buildfix-deliver-strip.diff
+++ /dev/null
@@ -1,18 +0,0 @@
---- solenv/bin/deliver.pl 2005-12-20 16:36:12.000000000 +0100
-+++ solenv/bin/deliver.pl 2005-12-20 16:39:29.000000000 +0100
-@@ -116,11 +116,12 @@ if ( $ENV{GUI} eq 'WNT' ) {
- warn("Warning: do we need stripping for windows gcc? Nothing defined yet.");
- }
- } else {
-- $strip = 'strip' if (((defined $ENV{ENABLE_SYMBOLS}) && ($ENV{ENABLE_SYMBOLS} ne "TRUE") && ($ENV{ENABLE_SYMBOLS} ne "SMALL")) || (!defined $ENV{ENABLE_SYMBOLS}));
-+ if (((defined $ENV{ENABLE_SYMBOLS}) && ($ENV{ENABLE_SYMBOLS} ne "TRUE") && ($ENV{ENABLE_SYMBOLS} ne "SMALL")) || (!defined $ENV{ENABLE_SYMBOLS})) {
-+ $strip = 'strip';
-+ $strip .= " -R '.comment' -s" if ($ENV{OS} eq 'LINUX');
-+ }
- }
-
--$strip .= " -R '.comment' -s" if ($ENV{OS} eq 'LINUX');
--
- $upd = $ENV{'UPD'};
- ($gui = lc($ENV{GUI})) || die "can't determine GUI";
- $tempcounter = 0;
diff --git a/patches/src680/buildfix-enable-gcc41.diff b/patches/src680/buildfix-enable-gcc41.diff
deleted file mode 100644
index 75880c2ae..000000000
--- a/patches/src680/buildfix-enable-gcc41.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- cppu/inc/uno/lbnames.h.old 2005-09-08 10:41:10.000000000 +0200
-+++ cppu/inc/uno/lbnames.h 2005-09-20 14:37:41.000000000 +0200
-@@ -70,7 +70,7 @@
- #error "Tested gcc 2 versions are 2.91 and 2.95. Patch uno/lbnames.h to try your gcc 2 version."
- #elif (__GNUC__ == 3 && __GNUC_MINOR__ <= 4)
- #define __CPPU_ENV gcc3
--#elif (__GNUC__ == 4 && __GNUC_MINOR__ == 0)
-+#elif (__GNUC__ == 4 && __GNUC_MINOR__ <= 1)
- #define __CPPU_ENV gcc3
- #elif (__GNUC__ == 3)
- #error "Tested gcc 3 version is <= 3.4. Patch uno/lbnames.h to try your gcc 3 version."
diff --git a/patches/src680/buildfix-gcc41-compiler-error-basic.diff b/patches/src680/buildfix-gcc41-compiler-error-basic.diff
deleted file mode 100644
index 31c0bb833..000000000
--- a/patches/src680/buildfix-gcc41-compiler-error-basic.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- basic/source/classes/makefile.mk.old 2005-11-21 15:55:35.000000000 +0100
-+++ basic/source/classes/makefile.mk 2005-11-23 13:41:51.000000000 +0100
-@@ -73,6 +73,10 @@
- LIB1TARGET= $(SLB)$/$(TARGET).lib
- LIB1OBJFILES = $(SLOFILES)
-
-+.IF "$(CCNUMVER)"=="000400010000"
-+ARCH_FLAGS+=-O0
-+.ENDIF
-+
- # --- Targets -------------------------------------------------------------
-
- .INCLUDE : target.mk
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-UnoControls.diff b/patches/src680/buildfix-gcc41-extra-qualification-UnoControls.diff
deleted file mode 100644
index 6968d6757..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-UnoControls.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- UnoControls/source/inc/statusindicator.hxx.old 2005-09-09 11:20:56.000000000 +0200
-+++ UnoControls/source/inc/statusindicator.hxx 2005-11-07 18:39:52.000000000 +0100
-@@ -546,7 +546,7 @@
- @onerror -
- */
-
-- virtual UNO3_WINDOWDESCRIPTOR* StatusIndicator::impl_getWindowDescriptor( const UNO3_REFERENCE< UNO3_XWINDOWPEER >& xParentPeer );
-+ virtual UNO3_WINDOWDESCRIPTOR* impl_getWindowDescriptor( const UNO3_REFERENCE< UNO3_XWINDOWPEER >& xParentPeer );
-
- /**_______________________________________________________________________________________________________
- @short -
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-autodoc.diff b/patches/src680/buildfix-gcc41-extra-qualification-autodoc.diff
deleted file mode 100644
index 60b751481..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-autodoc.diff
+++ /dev/null
@@ -1,55 +0,0 @@
---- autodoc/inc/ary/common_gate.hxx.old 2005-09-07 17:50:47.000000000 +0200
-+++ autodoc/inc/ary/common_gate.hxx 2005-11-29 11:51:42.000000000 +0100
-@@ -57,7 +57,7 @@
- {
- public:
- // LIFECYCLE
-- virtual CommonGate::~CommonGate() {}
-+ virtual ~CommonGate() {}
-
- // OPERATIONS
-
---- autodoc/inc/ary/cpp/c_rwgate.hxx.old 2005-09-07 18:00:44.000000000 +0200
-+++ autodoc/inc/ary/cpp/c_rwgate.hxx 2005-11-29 11:46:39.000000000 +0100
-@@ -75,7 +75,7 @@
- {
- public:
- // LIFECYCLE
-- virtual RwGate::~RwGate() {}
-+ virtual ~RwGate() {}
-
- // OPERATIONS
- Namespace & CheckIn_Namespace(
---- autodoc/inc/ary/idl/i_gate.hxx.old 2005-09-07 18:09:09.000000000 +0200
-+++ autodoc/inc/ary/idl/i_gate.hxx 2005-11-29 11:52:29.000000000 +0100
-@@ -61,7 +61,7 @@
- {
- public:
- // LIFECYCLE
-- virtual Gate::~Gate() {}
-+ virtual ~Gate() {}
-
- // OPERATIONS
-
---- autodoc/inc/ary/idl/ip_type.hxx.old 2005-09-07 18:19:36.000000000 +0200
-+++ autodoc/inc/ary/idl/ip_type.hxx 2005-11-29 11:53:20.000000000 +0100
-@@ -59,7 +59,7 @@
- {
- public:
- // LIFECYCLE
-- virtual TypePilot::~TypePilot() {}
-+ virtual ~TypePilot() {}
-
- // OPERATIONS
- const Type & CheckIn_Type(
---- autodoc/inc/ary/idl/ip_2s.hxx.old 2005-09-07 18:18:58.000000000 +0200
-+++ autodoc/inc/ary/idl/ip_2s.hxx 2005-11-29 11:54:26.000000000 +0100
-@@ -93,7 +93,7 @@
- {
- public:
- // LIFECYCLE
-- virtual SecondariesPilot::~SecondariesPilot() {}
-+ virtual ~SecondariesPilot() {}
-
- // OPERATIONS
- virtual void CheckAllInterfaceBases(
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-basic.diff b/patches/src680/buildfix-gcc41-extra-qualification-basic.diff
deleted file mode 100644
index 70ed7948a..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-basic.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- basic/inc/sbprop.hxx.old 2005-11-21 15:55:23.000000000 +0100
-+++ basic/inc/sbprop.hxx 2005-11-22 18:08:34.000000000 +0100
-@@ -76,7 +76,7 @@
- SB_DLLPRIVATE virtual ~SbProcedureProperty();
-
- public:
-- SbProcedureProperty::SbProcedureProperty( const String& r, SbxDataType t )
-+ SbProcedureProperty( const String& r, SbxDataType t )
- : SbxProperty( r, t ) // , pMod( p )
- , mbSet( false )
- {}
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-binfilter.diff b/patches/src680/buildfix-gcc41-extra-qualification-binfilter.diff
deleted file mode 100644
index 04f67cde6..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-binfilter.diff
+++ /dev/null
@@ -1,247 +0,0 @@
---- binfilter/bf_forms/source/component/DatabaseForm.hxx.old 2005-09-07 17:31:14.000000000 +0200
-+++ binfilter/bf_forms/source/component/DatabaseForm.hxx 2005-12-02 18:57:45.000000000 +0100
-@@ -457,7 +457,7 @@
- static ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames_Static();
- static ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getCurrentServiceNames_Static();
- static ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getCompatibleServiceNames_Static();
-- static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL ODatabaseForm::Create( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory );
-+ static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL Create( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory );
-
- // com::sun::star::io::XPersistObject
- virtual ::rtl::OUString SAL_CALL getServiceName() throw(::com::sun::star::uno::RuntimeException);
---- binfilter/inc/bf_svx/editeng.hxx.old 2005-09-09 15:20:51.000000000 +0200
-+++ binfilter/inc/bf_svx/editeng.hxx 2005-12-05 10:16:06.000000000 +0100
-@@ -129,7 +129,7 @@
- #endif
-
- public:
-- EditEngine::EditEngine( SfxItemPool* pItemPool );
-+ EditEngine( SfxItemPool* pItemPool );
- virtual ~EditEngine();
-
- const SfxItemSet& GetEmptyItemSet();
---- binfilter/bf_sw/source/core/inc/frame.hxx.old 2005-09-08 11:29:30.000000000 +0200
-+++ binfilter/bf_sw/source/core/inc/frame.hxx 2005-12-05 13:32:42.000000000 +0100
-@@ -768,7 +768,7 @@
- void MakeUpperPos( const SwFrm*, const SwFrm*, BOOL );
- void MakeLeftPos( const SwFrm*, const SwFrm*, BOOL );
- void MakeRightPos( const SwFrm*, const SwFrm*, BOOL );
-- inline BOOL SwFrm::IsNeighbourFrm() const
-+ inline BOOL IsNeighbourFrm() const
- { return GetType() & FRM_NEIGHBOUR ? TRUE : FALSE; }
-
- inline SwCntntFrm* GetNextCntntFrm() const;
---- binfilter/inc/bf_sw/grfatr.hxx.old 2005-09-09 18:09:43.000000000 +0200
-+++ binfilter/inc/bf_sw/grfatr.hxx 2005-12-05 13:34:32.000000000 +0100
-@@ -82,7 +82,7 @@
- SwMirrorGrf( USHORT nMiro = RES_DONT_MIRROR_GRF )
- : SfxEnumItem( RES_GRFATR_MIRRORGRF, nMiro ), bGrfToggle( sal_False )
- {}
-- SwMirrorGrf::SwMirrorGrf( const SwMirrorGrf &rMirrorGrf )
-+ SwMirrorGrf( const SwMirrorGrf &rMirrorGrf )
- : SfxEnumItem( RES_GRFATR_MIRRORGRF, rMirrorGrf.GetValue()),
- bGrfToggle( rMirrorGrf.IsGrfToggle() )
- {}
---- binfilter/bf_sw/source/core/text/inftxt.hxx.old 2005-09-08 12:15:27.000000000 +0200
-+++ binfilter/bf_sw/source/core/text/inftxt.hxx 2005-12-05 18:27:01.000000000 +0100
-@@ -325,10 +325,10 @@
- //
- //STRIP001 xub_StrLen SwTxtSizeInfo::GetTxtBreak( const long nLineWidth,
- //STRIP001 const xub_StrLen nMaxLen ) const;
-- xub_StrLen SwTxtSizeInfo::GetTxtBreak( const long nLineWidth,
-+ xub_StrLen GetTxtBreak( const long nLineWidth,
- const xub_StrLen nMaxLen,
- const USHORT nComp ) const;
-- xub_StrLen SwTxtSizeInfo::GetTxtBreak( const long nLineWidth,
-+ xub_StrLen GetTxtBreak( const long nLineWidth,
- const xub_StrLen nMaxLen,
- const USHORT nComp,
- xub_StrLen& rExtraCharPos ) const;
---- binfilter/bf_linguistic/source/lngopt.hxx.old 2005-09-07 18:02:39.000000000 +0200
-+++ binfilter/bf_linguistic/source/lngopt.hxx 2005-12-06 12:17:53.000000000 +0100
-@@ -107,7 +107,7 @@
-
- //! uses default assignment-operator
-
-- BOOL LinguOptions::SetLocale_Impl( INT16 &rLanguage,
-+ BOOL SetLocale_Impl( INT16 &rLanguage,
- ::com::sun::star::uno::Any &rOld,
- const ::com::sun::star::uno::Any &rVal);
-
---- binfilter/bf_sw/source/core/inc/rootfrm.hxx.old 2005-09-08 11:36:05.000000000 +0200
-+++ binfilter/bf_sw/source/core/inc/rootfrm.hxx 2005-12-05 14:03:36.000000000 +0100
-@@ -172,7 +174,7 @@
- ~SwRootFrm();
-
- ViewShell *GetCurrShell() const { return pCurrShell; }
-- void SwRootFrm::DeRegisterShell( ViewShell *pSh );
-+ void DeRegisterShell( ViewShell *pSh );
-
- //Start-/EndAction fuer alle Shells auf moeglichst hoeher
- //(Shell-Ableitungs-)Ebene aufsetzen. Fuer die StarONE Anbindung, die
---- binfilter/bf_sfx2/source/doc/sfx2_sfxbasemodel.cxx.old 2005-11-04 16:38:34.000000000 +0100
-+++ binfilter/bf_sfx2/source/doc/sfx2_sfxbasemodel.cxx 2005-12-05 10:03:59.000000000 +0100
-@@ -304,7 +304,7 @@
- REFERENCE< ::com::sun::star::view::XPrintJob> m_xPrintJob ;
- ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > m_aPrintOptions;
-
-- IMPL_SfxBaseModel_DataContainer::IMPL_SfxBaseModel_DataContainer( MUTEX& aMutex ,
-+ IMPL_SfxBaseModel_DataContainer( MUTEX& aMutex ,
- SfxObjectShell* pObjectShell )
- : m_pObjectShell ( pObjectShell )
- // , m_pObjectShellLock ( pObjectShell )
---- binfilter/inc/bf_xmloff/SchXMLExportHelper.hxx.old 2005-09-09 19:13:49.000000000 +0200
-+++ binfilter/inc/bf_xmloff/SchXMLExportHelper.hxx 2005-12-05 10:02:19.000000000 +0100
-@@ -176,7 +176,7 @@
- sal_Bool bIncludeTable );
-
- /// returns the string corresponding to the current FileFormat CLSID for Chart
-- const ::rtl::OUString& SchXMLExportHelper::getChartCLSID();
-+ const ::rtl::OUString& getChartCLSID();
-
- UniReference< XMLPropertySetMapper > GetPropertySetMapper() const { return mxPropertySetMapper; }
-
---- binfilter/bf_xmloff/source/chart/SchXMLTableContext.hxx.old 2005-09-09 09:34:19.000000000 +0200
-+++ binfilter/bf_xmloff/source/chart/SchXMLTableContext.hxx 2005-12-05 18:59:37.000000000 +0100
-@@ -100,7 +100,7 @@
-
- public:
- /// The data for the ChartDocument is applied linearly
-- static void SchXMLTableHelper::applyTableSimple(
-+ static void applyTableSimple(
- const SchXMLTable& rTable,
- ::com::sun::star::uno::Reference< ::com::sun::star::chart::XChartDocument > xChartDoc );
-
---- binfilter/bf_svx/source/editeng/svx_impedit3.cxx.old 2005-09-08 07:26:45.000000000 +0200
-+++ binfilter/bf_svx/source/editeng/svx_impedit3.cxx 2005-12-05 12:22:49.000000000 +0100
-@@ -171,7 +171,7 @@
- long nStartPosX;
- long nTabPos;
-
-- TabInfo::TabInfo() { bValid = FALSE; }
-+ TabInfo() { bValid = FALSE; }
- };
-
- //STRIP001 Point Rotate( const Point& rPoint, short nOrientation, const Point& rOrigin )
---- binfilter/inc/bf_xmloff/txtflde.hxx.old 2005-09-09 19:34:38.000000000 +0200
-+++ binfilter/inc/bf_xmloff/txtflde.hxx 2005-12-05 19:21:37.000000000 +0100
-@@ -240,7 +240,7 @@
- SvXMLExport& GetExport() { return rExport; }
-
- /// export a field after <text:span> is already written
-- void XMLTextFieldExport::ExportFieldHelper(
-+ void ExportFieldHelper(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::text::XTextField> & rTextField,
- const ::com::sun::star::uno::Reference<
---- binfilter/inc/bf_starmath/unomodel.hxx.old 2005-09-09 14:52:10.000000000 +0200
-+++ binfilter/inc/bf_starmath/unomodel.hxx 2005-12-05 12:14:54.000000000 +0100
-@@ -105,7 +105,7 @@
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(void)
- throw( ::com::sun::star::uno::RuntimeException );
-
-- inline ::rtl::OUString SmModel::getImplementationName_Static() throw( );
-+ inline ::rtl::OUString getImplementationName_Static() throw( );
- };
-
- inline ::rtl::OUString SmModel::getImplementationName_Static() throw( )
---- binfilter/inc/bf_sw/unoobj.hxx.old 2005-09-09 18:46:23.000000000 +0200
-+++ binfilter/inc/bf_sw/unoobj.hxx 2005-12-05 13:40:29.000000000 +0100
-@@ -489,7 +489,7 @@
- virtual void SAL_CALL setPropertyToDefault( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Any SAL_CALL getPropertyDefault( const ::rtl::OUString& aPropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
-
-- static void SwXTextCursor::SetPropertyValue(
-+ static void SetPropertyValue(
- SwPaM& rPaM,
- const SfxItemPropertySet& rPropSet,
- const ::rtl::OUString& rPropertyName,
-@@ -501,11 +501,11 @@
- ::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::lang::WrappedTargetException,
- ::com::sun::star::uno::RuntimeException);
-- static ::com::sun::star::uno::Any SwXTextCursor::GetPropertyValue( SwPaM& rPaM, const SfxItemPropertySet& rPropSet, const ::rtl::OUString& rPropertyName) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
-- static ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyState > SwXTextCursor::GetPropertyStates( SwPaM& rPaM, SfxItemPropertySet& rPropSet, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& PropertyNames, SwGetPropertyStatesCaller eCaller = SW_PROPERTY_STATE_CALLER_DEFAULT) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
-- static ::com::sun::star::beans::PropertyState SwXTextCursor::GetPropertyState( SwPaM& rPaM, SfxItemPropertySet& rPropSet, const ::rtl::OUString& rPropertyName) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
-- static void SwXTextCursor::SetPropertyToDefault( SwPaM& rPaM, const SfxItemPropertySet& rPropSet, const ::rtl::OUString& rPropertyName) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
-- static ::com::sun::star::uno::Any SwXTextCursor::GetPropertyDefault( SwPaM& rPaM, const SfxItemPropertySet& rPropSet, const ::rtl::OUString& rPropertyName) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
-+ static ::com::sun::star::uno::Any GetPropertyValue( SwPaM& rPaM, const SfxItemPropertySet& rPropSet, const ::rtl::OUString& rPropertyName) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
-+ static ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyState > GetPropertyStates( SwPaM& rPaM, SfxItemPropertySet& rPropSet, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& PropertyNames, SwGetPropertyStatesCaller eCaller = SW_PROPERTY_STATE_CALLER_DEFAULT) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
-+ static ::com::sun::star::beans::PropertyState GetPropertyState( SwPaM& rPaM, SfxItemPropertySet& rPropSet, const ::rtl::OUString& rPropertyName) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
-+ static void SetPropertyToDefault( SwPaM& rPaM, const SfxItemPropertySet& rPropSet, const ::rtl::OUString& rPropertyName) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
-+ static ::com::sun::star::uno::Any GetPropertyDefault( SwPaM& rPaM, const SfxItemPropertySet& rPropSet, const ::rtl::OUString& rPropertyName) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
-
- //XDocumentInsertable - neu
- virtual void SAL_CALL insertDocumentFromURL(const ::rtl::OUString& rURL, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aOptions) throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException );
---- binfilter/bf_svx/source/inc/unopracc.hxx.old 2005-09-08 08:12:58.000000000 +0200
-+++ binfilter/bf_svx/source/inc/unopracc.hxx 2005-12-05 13:15:46.000000000 +0100
-@@ -81,7 +81,7 @@
- virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw(::com::sun::star::uno::RuntimeException);
-
- // XServiceName
-- ::rtl::OUString SAL_CALL SvxAccessibleTextPropertySet::getServiceName() throw (::com::sun::star::uno::RuntimeException);
-+ ::rtl::OUString SAL_CALL getServiceName() throw (::com::sun::star::uno::RuntimeException);
- };
-
- }//end of namespace binfilter
---- binfilter/inc/bf_sw/unosett.hxx.old 2005-09-09 18:47:44.000000000 +0200
-+++ binfilter/inc/bf_sw/unosett.hxx 2005-12-05 14:08:22.000000000 +0100
-@@ -220,7 +220,7 @@
- SwXNumberingRules(SwDoc& rDoc); //create a new instance
-
-
-- static const ::com::sun::star::uno::Sequence< sal_Int8 > & SwXNumberingRules::getUnoTunnelId();
-+ static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId();
-
- virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw(::com::sun::star::uno::RuntimeException);
-
---- binfilter/inc/bf_svx/unoshape.hxx.old 2005-09-09 17:18:33.000000000 +0200
-+++ binfilter/inc/bf_svx/unoshape.hxx 2005-12-05 09:53:08.000000000 +0100
-@@ -187,7 +187,7 @@
- // call this in your derivated getTypes() after you call SvxShape::getTypes() but
- // only if maTypeSequence.getLength() is equal 0. See implementation of
- // SvxShape::getTypes() for more information
-- static void SvxShape::addStaticTypes( sal_Int16 nNewTypes, /* uno::Type* */ ... ) throw();
-+ static void addStaticTypes( sal_Int16 nNewTypes, /* uno::Type* */ ... ) throw();
-
- sal_Bool SAL_CALL SetFillAttribute( sal_Int32 nWID, const ::rtl::OUString& rName );
-
---- binfilter/bf_sw/source/ui/inc/view.hxx.old 2005-09-09 08:01:43.000000000 +0200
-+++ binfilter/bf_sw/source/ui/inc/view.hxx 2005-12-05 18:44:13.000000000 +0100
-@@ -600,7 +600,7 @@
- void ApplyAccessiblityOptions(SvtAccessibilityOptions& rAccessibilityOptions);
-
- // get print options (SwPrtOptions)
-- static void SwView::MakeOptions( PrintDialog* pDlg, SwPrtOptions& rOpts,
-+ static void MakeOptions( PrintDialog* pDlg, SwPrtOptions& rOpts,
- BOOL* pPrtProspect, BOOL bWeb, SfxPrinter* pPrt, SwPrintData* pData );
-
- SwView(SfxViewFrame* pFrame, SfxViewShell*);
---- binfilter/inc/bf_xmloff/XMLFootnoteConfigurationImportContext.hxx.old 2005-09-09 19:21:15.000000000 +0200
-+++ binfilter/inc/bf_xmloff/XMLFootnoteConfigurationImportContext.hxx 2005-12-05 19:17:52.000000000 +0100
-@@ -115,8 +115,7 @@
- /// set configuration at document; calls ProcessSettings
- /// Uses CreateAndInsertLate() to ensure that all styles it references
- /// have been set.
-- virtual void XMLFootnoteConfigurationImportContext::CreateAndInsertLate(
-- sal_Bool bOverwrite );
-+ virtual void CreateAndInsertLate( sal_Bool bOverwrite );
-
- /// set configuration at document
- void ProcessSettings(
---- binfilter/inc/bf_xmloff/xmlnumi.hxx.old 2005-09-09 19:42:24.000000000 +0200
-+++ binfilter/inc/bf_xmloff/xmlnumi.hxx 2005-12-05 19:06:08.000000000 +0100
-@@ -107,11 +107,11 @@
-
- static ::com::sun::star::uno::Reference <
- ::com::sun::star::container::XIndexReplace >
-- SvxXMLListStyleContext::CreateNumRule(
-+ CreateNumRule(
- const ::com::sun::star::uno::Reference <
- ::com::sun::star::frame::XModel > & rModel );
-
-- static void SvxXMLListStyleContext::SetDefaultStyle(
-+ static void SetDefaultStyle(
- const ::com::sun::star::uno::Reference <
- ::com::sun::star::container::XIndexReplace > & rNumRule,
- sal_Int16 nLevel,
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-chart2.diff b/patches/src680/buildfix-gcc41-extra-qualification-chart2.diff
deleted file mode 100644
index 067366c28..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-chart2.diff
+++ /dev/null
@@ -1,22 +0,0 @@
---- chart2/source/inc/MeterHelper.hxx.old 2005-09-08 02:43:35.000000000 +0200
-+++ chart2/source/inc/MeterHelper.hxx 2005-11-24 13:41:49.000000000 +0100
-@@ -64,7 +64,7 @@
- class MeterHelper
- {
- public:
-- static rtl::OUString MeterHelper::makeAxisIdentifier(
-+ static rtl::OUString makeAxisIdentifier(
- sal_Int32 nDimensionIndex
- , sal_Int32 nCooSysIndex );
-
---- chart2/source/inc/RegressionCurveHelper.hxx.old 2005-09-08 02:45:30.000000000 +0200
-+++ chart2/source/inc/RegressionCurveHelper.hxx 2005-11-24 13:43:25.000000000 +0100
-@@ -89,7 +89,7 @@
- @param xSeriesProp
- If set, this property-set will be used to apply a line color
- */
-- static void RegressionCurveHelper::addMeanValueLine(
-+ static void addMeanValueLine(
- ::com::sun::star::uno::Reference<
- ::com::sun::star::chart2::XRegressionCurveContainer > & xRegCnt,
- const ::com::sun::star::uno::Reference<
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-configmgr.diff b/patches/src680/buildfix-gcc41-extra-qualification-configmgr.diff
deleted file mode 100644
index 933a3cfe6..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-configmgr.diff
+++ /dev/null
@@ -1,58 +0,0 @@
---- configmgr/source/backend/binaryreadhandler.hxx.old 2005-09-08 05:26:54.000000000 +0200
-+++ configmgr/source/backend/binaryreadhandler.hxx 2005-11-07 16:42:41.000000000 +0100
-@@ -132,26 +132,26 @@
- void readChildNodes(ISubtree & rSubTree)
- SAL_THROW( (io::IOException, uno::RuntimeException) );
-
-- binary::NodeType::Type BinaryReadHandler::readNodeType()
-+ binary::NodeType::Type readNodeType()
- SAL_THROW( (io::IOException, uno::RuntimeException) );
-
-- binary::ValueFlags::Type BinaryReadHandler::readValueFlags(bool& bSeq, bool& hasValue, bool& hasDefault )
-+ binary::ValueFlags::Type readValueFlags(bool& bSeq, bool& hasValue, bool& hasDefault )
- SAL_THROW( (io::IOException, uno::RuntimeException) );
-
-- void BinaryReadHandler::readString(rtl::OUString &_aString)
-+ void readString(rtl::OUString &_aString)
- SAL_THROW( (io::IOException, uno::RuntimeException) );
-
-- void BinaryReadHandler::readAttributes(node::Attributes &_aAttributes)
-+ void readAttributes(node::Attributes &_aAttributes)
- SAL_THROW( (io::IOException, uno::RuntimeException) );
-
-- void BinaryReadHandler::readGroup(rtl::OUString &_aName, node::Attributes &_aAttributes)
-+ void readGroup(rtl::OUString &_aName, node::Attributes &_aAttributes)
- SAL_THROW( (io::IOException, uno::RuntimeException) );
-
-- void BinaryReadHandler::readSet(rtl::OUString &_aName, node::Attributes &_aAttributes,
-+ void readSet(rtl::OUString &_aName, node::Attributes &_aAttributes,
- rtl::OUString &_sInstanceName, rtl::OUString &_sInstanceModule)
- SAL_THROW( (io::IOException, uno::RuntimeException) );
-
-- void BinaryReadHandler::readValue(rtl::OUString &_aName, node::Attributes &_aAttributes,
-+ void readValue(rtl::OUString &_aName, node::Attributes &_aAttributes,
- uno::Any& _aValue, uno::Any& _aDefaultValue,uno::Type& _aType)
- SAL_THROW( (io::IOException, uno::RuntimeException) );
-
---- configmgr/source/backend/binarywritehandler.hxx.old 2005-09-08 05:27:22.000000000 +0200
-+++ configmgr/source/backend/binarywritehandler.hxx 2005-11-07 16:45:15.000000000 +0100
-@@ -128,16 +128,16 @@
- void writeAttributes(node::Attributes const& _aAttributes)
- SAL_THROW( (io::IOException, uno::RuntimeException) );
-
-- void BinaryWriteHandler::writeNodeType(binary::NodeType::Type _eType)
-+ void writeNodeType(binary::NodeType::Type _eType)
- SAL_THROW( (io::IOException, uno::RuntimeException) );
-
-- void BinaryWriteHandler::writeStop()
-+ void writeStop()
- SAL_THROW( (io::IOException, uno::RuntimeException) );
-
- void writeType(uno::Type const& _aType)
- SAL_THROW( (io::IOException, uno::RuntimeException) );
-
-- void BinaryWriteHandler::writeValue( uno::Any const& _aValue)
-+ void writeValue( uno::Any const& _aValue)
- SAL_THROW( (io::IOException, uno::RuntimeException) );
-
- };
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-connectivity.diff b/patches/src680/buildfix-gcc41-extra-qualification-connectivity.diff
deleted file mode 100644
index f4bd56d22..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-connectivity.diff
+++ /dev/null
@@ -1,22 +0,0 @@
---- connectivity/source/inc/dbase/DTable.hxx.old 2005-09-08 09:06:00.000000000 +0200
-+++ connectivity/source/inc/dbase/DTable.hxx 2005-11-22 11:59:48.000000000 +0100
-@@ -133,7 +133,7 @@
-
- void throwInvalidDbaseFormat();
- void SAL_CALL renameImpl( const ::rtl::OUString& newName ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::container::ElementExistException, ::com::sun::star::uno::RuntimeException);
-- void ODbaseTable::throwInvalidColumnType(const ::rtl::OUString& _sError,const ::rtl::OUString& _sColumnName);
-+ void throwInvalidColumnType(const ::rtl::OUString& _sError,const ::rtl::OUString& _sColumnName);
-
- protected:
- virtual void FileClose();
---- connectivity/source/drivers/evoab2/NDatabaseMetaData.hxx.old 2005-11-21 15:55:27.000000000 +0100
-+++ connectivity/source/drivers/evoab2/NDatabaseMetaData.hxx 2005-11-22 13:06:05.000000000 +0100
-@@ -100,7 +100,7 @@
-
- public:
- inline OEvoabConnection* getOwnConnection() const { return m_pConnection; }
-- void OEvoabDatabaseMetaData::construct();
-+ void construct();
-
- OEvoabDatabaseMetaData(OEvoabConnection* _pCon);
- virtual ~OEvoabDatabaseMetaData();
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-filter.diff b/patches/src680/buildfix-gcc41-extra-qualification-filter.diff
deleted file mode 100644
index 9e484d045..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-filter.diff
+++ /dev/null
@@ -1,22 +0,0 @@
---- filter/source/xmlfilterdetect/filterdetect.hxx.old 2005-09-08 23:59:46.000000000 +0200
-+++ filter/source/xmlfilterdetect/filterdetect.hxx 2005-11-24 18:43:57.000000000 +0100
-@@ -136,7 +136,7 @@
-
-
- //XExtendedFilterDetection
-- virtual ::rtl::OUString SAL_CALL FilterDetect::detect( com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >& lDescriptor )
-+ virtual ::rtl::OUString SAL_CALL detect( com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >& lDescriptor )
- throw( com::sun::star::uno::RuntimeException );
-
-
---- filter/source/filtertracer/filtertracer.hxx.old 2005-09-08 23:40:34.000000000 +0200
-+++ filter/source/filtertracer/filtertracer.hxx 2005-11-24 18:40:33.000000000 +0100
-@@ -182,7 +182,7 @@
- REF( NMSP_UTIL::XTextSearch ) mxTextSearch;
- NMSP_UTIL::SearchOptions maSearchOptions;
-
-- sal_Bool FilterTracer::ImplFilter( const rtl::OUString& rFilter, const rtl::OUString& rString );
-+ sal_Bool ImplFilter( const rtl::OUString& rFilter, const rtl::OUString& rString );
-
- public:
- FilterTracer( const REF( NMSP_LANG::XMultiServiceFactory )& rxMgr );
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-forms.diff b/patches/src680/buildfix-gcc41-extra-qualification-forms.diff
deleted file mode 100644
index a3eafd0fe..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-forms.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- forms/source/component/DatabaseForm.hxx.old 2005-09-09 00:36:37.000000000 +0200
-+++ forms/source/component/DatabaseForm.hxx 2005-11-24 19:07:00.000000000 +0100
-@@ -473,7 +473,7 @@
- static ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames_Static();
- static ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getCurrentServiceNames_Static();
- static ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getCompatibleServiceNames_Static();
-- static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL ODatabaseForm::Create( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory );
-+ static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL Create( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory );
-
- // com::sun::star::io::XPersistObject
- virtual ::rtl::OUString SAL_CALL getServiceName() throw(::com::sun::star::uno::RuntimeException);
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-framework.diff b/patches/src680/buildfix-gcc41-extra-qualification-framework.diff
deleted file mode 100644
index 3bae994ef..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-framework.diff
+++ /dev/null
@@ -1,42 +0,0 @@
---- framework/inc/uielement/macrosmenucontroller.hxx.old 2005-09-09 02:44:45.000000000 +0200
-+++ framework/inc/uielement/macrosmenucontroller.hxx 2005-11-22 13:44:51.000000000 +0100
-@@ -97,7 +97,7 @@
- private:
- void fillPopupMenu( com::sun::star::uno::Reference< com::sun::star::awt::XPopupMenu >& rPopupMenu );
- String RetrieveLabelFromCommand( const String& aCmdURL );
-- void MacrosMenuController::addScriptItems( PopupMenu* pPopupMenu, USHORT startItemId );
-+ void addScriptItems( PopupMenu* pPopupMenu, USHORT startItemId );
- };
- }
-
---- framework/inc/services/sessionlistener.hxx.old 2005-09-09 02:34:11.000000000 +0200
-+++ framework/inc/services/sessionlistener.hxx 2005-11-22 13:47:20.000000000 +0100
-@@ -225,7 +225,7 @@
-
-
- // XInitialization
-- virtual void SAL_CALL SessionListener::initialize(const css::uno::Sequence< css::uno::Any >& args) throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL initialize(const css::uno::Sequence< css::uno::Any >& args) throw (css::uno::RuntimeException);
-
- // XSessionManagerListener
- virtual void SAL_CALL doSave( sal_Bool bShutdown, sal_Bool bCancelable )
---- framework/inc/services/substitutepathvars.hxx.old 2005-09-09 02:34:26.000000000 +0200
-+++ framework/inc/services/substitutepathvars.hxx 2005-11-22 13:49:28.000000000 +0100
-@@ -262,7 +262,7 @@
- sal_Int32 nVarValueLength;
- PreDefVariable eVariable;
-
-- bool ReSubstFixedVarOrder::operator< ( const ReSubstFixedVarOrder& aFixedVarOrder ) const
-+ bool operator< ( const ReSubstFixedVarOrder& aFixedVarOrder ) const
- {
- // Reverse operator< to have high to low ordering
- return ( nVarValueLength > aFixedVarOrder.nVarValueLength );
-@@ -274,7 +274,7 @@
- sal_Int32 nVarValueLength;
- rtl::OUString aVarName;
-
-- bool ReSubstUserVarOrder::operator< ( const ReSubstUserVarOrder& aUserVarOrder ) const
-+ bool operator< ( const ReSubstUserVarOrder& aUserVarOrder ) const
- {
- // Reverse operator< to have high to low ordering
- return ( nVarValueLength > aUserVarOrder.nVarValueLength );
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-goodies.diff b/patches/src680/buildfix-gcc41-extra-qualification-goodies.diff
deleted file mode 100644
index 06426214f..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-goodies.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- goodies/source/unographic/provider.hxx.old 2005-09-09 05:11:30.000000000 +0200
-+++ goodies/source/unographic/provider.hxx 2005-11-22 14:56:26.000000000 +0100
-@@ -81,8 +81,8 @@
-
- private:
-
-- ::com::sun::star::uno::Reference< ::com::sun::star::graphic::XGraphic > GraphicProvider::implLoadMemory( const ::rtl::OUString& rResourceURL ) const;
-- ::com::sun::star::uno::Reference< ::com::sun::star::graphic::XGraphic > GraphicProvider::implLoadResource( const ::rtl::OUString& rResourceURL ) const;
-+ ::com::sun::star::uno::Reference< ::com::sun::star::graphic::XGraphic > implLoadMemory( const ::rtl::OUString& rResourceURL ) const;
-+ ::com::sun::star::uno::Reference< ::com::sun::star::graphic::XGraphic > implLoadResource( const ::rtl::OUString& rResourceURL ) const;
- };
-
- }
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-i18npool.diff b/patches/src680/buildfix-gcc41-extra-qualification-i18npool.diff
deleted file mode 100644
index 5473eebfe..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-i18npool.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- i18npool/inc/transliteration_OneToOne.hxx.old 2005-09-07 18:58:30.000000000 +0200
-+++ i18npool/inc/transliteration_OneToOne.hxx 2005-11-08 13:04:56.000000000 +0100
-@@ -50,7 +50,7 @@
- throw(com::sun::star::uno::RuntimeException);
-
- sal_Unicode SAL_CALL
-- transliteration_OneToOne::transliterateChar2Char( sal_Unicode inChar)
-+ transliterateChar2Char( sal_Unicode inChar)
- throw(com::sun::star::uno::RuntimeException,
- com::sun::star::i18n::MultipleCharsOutputException);
-
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-io.diff b/patches/src680/buildfix-gcc41-extra-qualification-io.diff
deleted file mode 100644
index 607719295..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-io.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- io/source/connector/connector.cxx.old 2005-09-07 20:28:42.000000000 +0200
-+++ io/source/connector/connector.cxx 2005-11-04 15:03:49.000000000 +0100
-@@ -72,7 +72,7 @@
- OConnector(const Reference< XComponentContext > &xCtx);
- ~OConnector();
- // Methods
-- virtual Reference< XConnection > SAL_CALL OConnector::connect(
-+ virtual Reference< XConnection > SAL_CALL connect(
- const OUString& sConnectionDescription )
- throw( NoConnectException, ConnectionSetupException, RuntimeException);
-
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-libwpd.diff b/patches/src680/buildfix-gcc41-extra-qualification-libwpd.diff
deleted file mode 100644
index ea8dc0dcd..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-libwpd.diff
+++ /dev/null
@@ -1,98 +0,0 @@
---- libwpd/libwpd-0.8.3.diff.old 2005-11-01 19:53:17.000000000 +0100
-+++ libwpd/libwpd-0.8.3.diff 2005-11-04 14:30:37.000000000 +0100
-@@ -35,3 +35,95 @@
- // END: copy page properties into the new parsing state
- m_ps->m_inSubDocument = true;
- // Check whether the document is calling its own TextPID
-+--- misc/build/libwpd-0.8.3/src/lib/WPXHLListener.h 2005-08-25 16:27:38.000000000 +0200
-++++ misc/build/libwpd-0.8.3/src/lib/WPXHLListener.h 2005-11-04 14:19:14.000000000 +0100
-+@@ -162,7 +162,7 @@
-+ {
-+ public:
-+ WPXHLListener(std::vector<WPXPageSpan *> *pageList, WPXHLListenerImpl *listenerImpl);
-+- WPXHLListener::~WPXHLListener();
-++ ~WPXHLListener();
-+
-+ void startDocument();
-+ void handleSubDocument(uint16_t textPID, const bool isHeaderFooter, WPXTableList tableList, int nextTableIndice);
-+--- misc/build/libwpd-0.8.3/src/lib/WP3FixedLengthGroup.h 2004-07-19 14:53:47.000000000 +0200
-++++ misc/build/libwpd-0.8.3/src/lib/WP3FixedLengthGroup.h 2005-11-04 14:19:59.000000000 +0100
-+@@ -30,8 +30,8 @@
-+ class WP3FixedLengthGroup : public WP3Part
-+ {
-+ public:
-+- WP3FixedLengthGroup::WP3FixedLengthGroup(int groupID);
-+- static WP3FixedLengthGroup * WP3FixedLengthGroup::constructFixedLengthGroup(WPXInputStream *input, uint8_t groupID);
-++ WP3FixedLengthGroup(int groupID);
-++ static WP3FixedLengthGroup * constructFixedLengthGroup(WPXInputStream *input, uint8_t groupID);
-+
-+ const uint8_t getGroup() const { return m_group; }
-+
-+--- misc/build/libwpd-0.8.3/src/lib/WP3SingleByteFunction.h 2004-08-04 16:27:25.000000000 +0200
-++++ misc/build/libwpd-0.8.3/src/lib/WP3SingleByteFunction.h 2005-11-04 14:20:56.000000000 +0100
-+@@ -32,7 +32,7 @@
-+ class WP3SingleByteFunction : public WP3Part
-+ {
-+ public:
-+- static WP3SingleByteFunction * WP3SingleByteFunction::constructSingleByteFunction(WPXInputStream *input, uint8_t groupID);
-++ static WP3SingleByteFunction * constructSingleByteFunction(WPXInputStream *input, uint8_t groupID);
-+ };
-+
-+ /*class WP3SpaceFunction : public WP3SingleByteFunction
-+--- misc/build/libwpd-0.8.3/src/lib/WP5FixedLengthGroup.h 2004-07-19 16:34:43.000000000 +0200
-++++ misc/build/libwpd-0.8.3/src/lib/WP5FixedLengthGroup.h 2005-11-04 14:21:55.000000000 +0100
-+@@ -31,8 +31,8 @@
-+ class WP5FixedLengthGroup : public WP5Part
-+ {
-+ public:
-+- WP5FixedLengthGroup::WP5FixedLengthGroup(int groupID);
-+- static WP5FixedLengthGroup * WP5FixedLengthGroup::constructFixedLengthGroup(WPXInputStream *input, uint8_t groupID);
-++ WP5FixedLengthGroup(int groupID);
-++ static WP5FixedLengthGroup * constructFixedLengthGroup(WPXInputStream *input, uint8_t groupID);
-+
-+ const uint8_t getGroup() const { return m_group; }
-+
-+--- misc/build/libwpd-0.8.3/src/lib/WP5SingleByteFunction.h 2004-08-10 16:44:17.000000000 +0200
-++++ misc/build/libwpd-0.8.3/src/lib/WP5SingleByteFunction.h 2005-11-04 14:22:34.000000000 +0100
-+@@ -32,7 +32,7 @@
-+ class WP5SingleByteFunction : public WP5Part
-+ {
-+ public:
-+- static WP5SingleByteFunction * WP5SingleByteFunction::constructSingleByteFunction(WPXInputStream *input, uint8_t groupID);
-++ static WP5SingleByteFunction * constructSingleByteFunction(WPXInputStream *input, uint8_t groupID);
-+ };
-+
-+ class WP5EOLFunction : public WP5SingleByteFunction
-+--- misc/build/libwpd-0.8.3/src/lib/WP6FixedLengthGroup.h 2004-06-06 22:13:47.000000000 +0200
-++++ misc/build/libwpd-0.8.3/src/lib/WP6FixedLengthGroup.h 2005-11-04 14:23:21.000000000 +0100
-+@@ -32,7 +32,7 @@
-+ {
-+ public:
-+ WP6FixedLengthGroup(uint8_t groupID);
-+- static WP6FixedLengthGroup * WP6FixedLengthGroup::constructFixedLengthGroup(WPXInputStream *input, uint8_t groupID);
-++ static WP6FixedLengthGroup * constructFixedLengthGroup(WPXInputStream *input, uint8_t groupID);
-+
-+ const uint8_t getGroup() const { return m_group; }
-+
-+--- misc/build/libwpd-0.8.3/src/lib/WP6SingleByteFunction.h 2004-08-23 12:24:24.000000000 +0200
-++++ misc/build/libwpd-0.8.3/src/lib/WP6SingleByteFunction.h 2005-11-04 14:24:47.000000000 +0100
-+@@ -31,7 +31,7 @@
-+ class WP6SingleByteFunction : public WP6Part
-+ {
-+ public:
-+- static WP6SingleByteFunction * WP6SingleByteFunction::constructSingleByteFunction(WPXInputStream *input, uint8_t groupID);
-++ static WP6SingleByteFunction * constructSingleByteFunction(WPXInputStream *input, uint8_t groupID);
-+ };
-+
-+ class WP6SpaceFunction : public WP6SingleByteFunction
-+--- misc/build/libwpd-0.8.3/src/lib/WP6VariableLengthGroup.h 2004-06-06 22:13:48.000000000 +0200
-++++ misc/build/libwpd-0.8.3/src/lib/WP6VariableLengthGroup.h 2005-11-04 14:23:58.000000000 +0100
-+@@ -41,7 +41,7 @@
-+ WP6VariableLengthGroup(); // WP6VariableLengthGroup should _never_ be constructed, only its inherited classes
-+ virtual ~WP6VariableLengthGroup();
-+
-+- static WP6VariableLengthGroup * WP6VariableLengthGroup::constructVariableLengthGroup(WPXInputStream *input, uint8_t groupID);
-++ static WP6VariableLengthGroup * constructVariableLengthGroup(WPXInputStream *input, uint8_t groupID);
-+
-+ protected:
-+ void _read(WPXInputStream *input);
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-linguistic.diff b/patches/src680/buildfix-gcc41-extra-qualification-linguistic.diff
deleted file mode 100644
index 53734cd04..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-linguistic.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- linguistic/source/lngopt.hxx.old 2005-09-07 21:53:21.000000000 +0200
-+++ linguistic/source/lngopt.hxx 2005-11-23 19:33:25.000000000 +0100
-@@ -110,7 +110,7 @@
-
- //! uses default assignment-operator
-
-- BOOL LinguOptions::SetLocale_Impl( INT16 &rLanguage,
-+ BOOL SetLocale_Impl( INT16 &rLanguage,
- ::com::sun::star::uno::Any &rOld,
- const ::com::sun::star::uno::Any &rVal);
-
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-psprint.diff b/patches/src680/buildfix-gcc41-extra-qualification-psprint.diff
deleted file mode 100644
index c62993030..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-psprint.diff
+++ /dev/null
@@ -1,15 +0,0 @@
---- psprint/inc/psprint/fontmanager.hxx.old 2005-09-28 16:23:22.000000000 +0200
-+++ psprint/inc/psprint/fontmanager.hxx 2005-11-08 16:43:37.000000000 +0100
-@@ -480,10 +480,10 @@
- const rtl::OUString& getPSName( fontID nFontID ) const;
-
- // get a specific fonts style family
-- family::type PrintFontManager::getFontFamilyType( fontID nFontID ) const;
-+ family::type getFontFamilyType( fontID nFontID ) const;
-
- // get a specific fonts family name aliases
-- void PrintFontManager::getFontFamilyAliases( fontID nFontID ) const;
-+ void getFontFamilyAliases( fontID nFontID ) const;
-
- // get a specific fonts type
- fonttype::type getFontType( fontID nFontID ) const
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-sc.diff b/patches/src680/buildfix-gcc41-extra-qualification-sc.diff
deleted file mode 100644
index 853e68543..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-sc.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- sc/source/ui/Accessibility/AccessibleDocument.cxx.old 2005-09-08 22:17:14.000000000 +0200
-+++ sc/source/ui/Accessibility/AccessibleDocument.cxx 2005-11-25 10:35:17.000000000 +0100
-@@ -320,7 +320,7 @@
- void SetDrawBroadcaster();
-
- sal_Int32 GetCount() const;
-- uno::Reference< XAccessible > ScChildrenShapes::Get(const ScAccessibleShapeData* pData) const;
-+ uno::Reference< XAccessible > Get(const ScAccessibleShapeData* pData) const;
- uno::Reference< XAccessible > Get(sal_Int32 nIndex) const;
- uno::Reference< XAccessible > GetAt(const awt::Point& rPoint) const;
-
-@@ -363,7 +363,7 @@
- ScAddress* GetAnchor(const uno::Reference<drawing::XShape>& xShape) const;
- uno::Reference<XAccessibleRelationSet> GetRelationSet(const ScAccessibleShapeData* pData) const;
- void CheckWhetherAnchorChanged(const uno::Reference<drawing::XShape>& xShape) const;
-- void ScChildrenShapes::SetAnchor(const uno::Reference<drawing::XShape>& xShape, ScAccessibleShapeData* pData) const;
-+ void SetAnchor(const uno::Reference<drawing::XShape>& xShape, ScAccessibleShapeData* pData) const;
- void AddShape(const uno::Reference<drawing::XShape>& xShape, sal_Bool bCommitChange) const;
- void RemoveShape(const uno::Reference<drawing::XShape>& xShape) const;
-
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-sd.diff b/patches/src680/buildfix-gcc41-extra-qualification-sd.diff
deleted file mode 100644
index 979257f8d..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-sd.diff
+++ /dev/null
@@ -1,33 +0,0 @@
---- sd/source/filter/eppt/pptexanimations.hxx.old 2005-09-23 12:43:53.000000000 +0200
-+++ sd/source/filter/eppt/pptexanimations.hxx 2005-11-25 11:47:43.000000000 +0100
-@@ -133,7 +133,7 @@
- bool hasAfterEffectNode( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xNode, ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xAfterEffectNode ) const;
- bool isEmptyNode( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xNode ) const;
-
-- ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode > AnimationExporter::createAfterEffectNodeClone( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xNode ) const;
-+ ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode > createAfterEffectNodeClone( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xNode ) const;
-
- std::list< AfterEffectNodePtr > maAfterEffectNodes;
-
---- sd/source/ui/inc/pubdlg.hxx.old 2005-11-21 15:55:13.000000000 +0100
-+++ sd/source/ui/inc/pubdlg.hxx 2005-11-25 11:21:00.000000000 +0100
-@@ -242,7 +242,7 @@
- SdPublishingDlg(Window* pWindow, DocumentType eDocType);
- ~SdPublishingDlg();
-
-- void SdPublishingDlg::GetParameterSequence( ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& rParams );
-+ void GetParameterSequence( ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& rParams );
- };
-
- #endif // _SD_PUBDLG_HXX
---- sd/source/ui/slidesorter/cache/SlsBitmapCache.cxx.old 2005-10-24 09:39:05.000000000 +0200
-+++ sd/source/ui/slidesorter/cache/SlsBitmapCache.cxx 2005-11-25 11:34:49.000000000 +0100
-@@ -64,7 +64,7 @@
- sal_Int32 nLastAccessTime, bool bIsPrecious);
- CacheEntry(sal_Int32 nLastAccessTime, bool bIsPrecious);
- ~CacheEntry (void) {};
-- inline void CacheEntry::Recycle (const CacheEntry& rEntry);
-+ inline void Recycle (const CacheEntry& rEntry);
- inline sal_Int32 GetMemorySize (void) const;
- void Compress (const ::boost::shared_ptr<BitmapCompressor>& rpCompressor);
- inline void Decompress (void);
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-sfx2.diff b/patches/src680/buildfix-gcc41-extra-qualification-sfx2.diff
deleted file mode 100644
index afcc4b829..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-sfx2.diff
+++ /dev/null
@@ -1,22 +0,0 @@
---- sfx2/inc/objsh.hxx.old 2005-10-19 14:45:47.000000000 +0200
-+++ sfx2/inc/objsh.hxx 2005-11-23 18:45:25.000000000 +0100
-@@ -414,7 +414,7 @@
- );
-
- ErrCode
-- SfxObjectShell::CallXScript(
-+ CallXScript(
- const String& rScriptURL,
- const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >&
- aParams,
---- sfx2/source/doc/sfxbasemodel.cxx.old 2005-11-03 13:06:00.000000000 +0100
-+++ sfx2/source/doc/sfxbasemodel.cxx 2005-11-23 19:04:52.000000000 +0100
-@@ -369,7 +369,7 @@
- OStorageModifyListen_Impl* m_pStorageModifyListen;
- ::rtl::OUString m_aPreusedFilterName;
-
-- IMPL_SfxBaseModel_DataContainer::IMPL_SfxBaseModel_DataContainer( MUTEX& aMutex ,
-+ IMPL_SfxBaseModel_DataContainer( MUTEX& aMutex ,
- SfxObjectShell* pObjectShell )
- : m_pObjectShell ( pObjectShell )
- // , m_pObjectShellLock ( pObjectShell )
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-slideshow.diff b/patches/src680/buildfix-gcc41-extra-qualification-slideshow.diff
deleted file mode 100644
index 87b1c0f43..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-slideshow.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- slideshow/source/engine/transitions/slidechangebase.hxx.old 2005-10-11 10:46:17.000000000 +0200
-+++ slideshow/source/engine/transitions/slidechangebase.hxx 2005-11-22 15:26:54.000000000 +0100
-@@ -96,7 +96,7 @@
- SlideBitmapSharedPtr getLeavingBitmap() const;
- SlideBitmapSharedPtr getEnteringBitmap() const;
-
-- SlideBitmapSharedPtr SlideChangeBase::createBitmap(
-+ SlideBitmapSharedPtr createBitmap(
- ::boost::optional<SlideSharedPtr> const & rSlide_ ) const;
-
- /// Query the size of the bitmaps in device pixel
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-so3.diff b/patches/src680/buildfix-gcc41-extra-qualification-so3.diff
deleted file mode 100644
index 22ac3f0f2..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-so3.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- so3/source/persist/transprt.cxx.old 2005-09-07 23:56:49.000000000 +0200
-+++ so3/source/persist/transprt.cxx 2005-11-24 10:46:18.000000000 +0100
-@@ -1332,7 +1332,7 @@
-
- /** getCallback_Impl.
- */
-- inline sal_Bool UcbTransport_Impl::getCallback_Impl (
-+ inline sal_Bool getCallback_Impl (
- SvBindingTransportCallback *&rpCallback);
-
- /** getMutex_Impl.
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-svtools.diff b/patches/src680/buildfix-gcc41-extra-qualification-svtools.diff
deleted file mode 100644
index 9136b88e8..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-svtools.diff
+++ /dev/null
@@ -1,91 +0,0 @@
---- svtools/inc/fltrcfg.hxx.old 2005-09-08 11:30:38.000000000 +0200
-+++ svtools/inc/fltrcfg.hxx 2005-11-22 10:41:44.000000000 +0100
-@@ -94,7 +94,7 @@
- sal_Bool IsImpress2PowerPoint() const;
- void SetImpress2PowerPoint( sal_Bool bFlag );
-
-- static SvtFilterOptions* SvtFilterOptions::Get();
-+ static SvtFilterOptions* Get();
- };
-
- #endif
---- svtools/source/inc/passwordcontainer.hxx.old 2005-09-08 17:54:54.000000000 +0200
-+++ svtools/source/inc/passwordcontainer.hxx 2005-11-22 11:14:54.000000000 +0100
-@@ -186,7 +186,7 @@
- const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& Handler )
- throw(::com::sun::star::uno::RuntimeException);
-
-- ::com::sun::star::uno::Sequence< ::com::sun::star::task::UserRecord > PasswordContainer::findUsr(
-+ ::com::sun::star::uno::Sequence< ::com::sun::star::task::UserRecord > findUsr(
- const ::std::vector< NamePassRecord >& userlist,
- const ::rtl::OUString& name,
- const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& Handler )
-@@ -206,11 +206,11 @@
- const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& Handler )
- throw(::com::sun::star::uno::RuntimeException);
-
-- ::std::vector< ::rtl::OUString > PasswordContainer::decodePasswords( ::rtl::OUString aLine,
-+ ::std::vector< ::rtl::OUString > decodePasswords( ::rtl::OUString aLine,
- const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& Handler )
- throw(::com::sun::star::uno::RuntimeException);
-
-- ::rtl::OUString PasswordContainer::encodePasswords( ::std::vector< ::rtl::OUString > lines,
-+ ::rtl::OUString encodePasswords( ::std::vector< ::rtl::OUString > lines,
- const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& Handler )
- throw(::com::sun::star::uno::RuntimeException);
-
-@@ -262,7 +262,7 @@
- static ::com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleServiceFactory > SAL_CALL
- impl_createFactory( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& ServiceManager ) throw(::com::sun::star::uno::RuntimeException);
- static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL
-- PasswordContainer::impl_createInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceManager ) throw( ::com::sun::star::uno::RuntimeException );
-+ impl_createInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceManager ) throw( ::com::sun::star::uno::RuntimeException );
-
- // XServiceInfo
- virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw(::com::sun::star::uno::RuntimeException);
---- svtools/source/uno/unoimap.cxx.old 2005-09-08 18:56:47.000000000 +0200
-+++ svtools/source/uno/unoimap.cxx 2005-11-22 11:17:53.000000000 +0100
-@@ -172,7 +172,7 @@
- virtual Sequence< OUString > SAL_CALL getSupportedServiceNames( ) throw( RuntimeException );
-
- private:
-- static PropertySetInfo* SvUnoImageMapObject::createPropertySetInfo( UINT16 nType );
-+ static PropertySetInfo* createPropertySetInfo( UINT16 nType );
-
-
- UINT16 mnType;
---- svtools/source/control/valueimp.hxx.old 2005-09-08 17:09:14.000000000 +0200
-+++ svtools/source/control/valueimp.hxx 2005-11-22 10:55:03.000000000 +0100
-@@ -246,7 +246,7 @@
- DisposedException is thrown to inform the (indirect) caller of the
- foul deed.
- */
-- void ValueSetAcc::ThrowIfDisposed (void)
-+ void ThrowIfDisposed (void)
- throw (::com::sun::star::lang::DisposedException);
-
- /** Check whether or not the object has been disposed (or is in the
---- svtools/inc/wizardmachine.hxx.old 2005-09-08 16:16:47.000000000 +0200
-+++ svtools/inc/wizardmachine.hxx 2005-11-22 10:59:21.000000000 +0100
-@@ -225,8 +225,8 @@
- m_pImpl;
- // hold members in this structure to allow keeping compatible when members are added
-
-- SVT_DLLPRIVATE void OWizardMachine::addButtons(Window* _pParent, sal_uInt32 _nButtonFlags);
-- SVT_DLLPRIVATE long OWizardMachine::calcRightHelpOffset(sal_uInt32 _nButtonFlags);
-+ SVT_DLLPRIVATE void addButtons(Window* _pParent, sal_uInt32 _nButtonFlags);
-+ SVT_DLLPRIVATE long calcRightHelpOffset(sal_uInt32 _nButtonFlags);
-
- public:
- /** ctor
---- svtools/inc/zforlist.hxx.old 2005-11-21 15:55:30.000000000 +0100
-+++ svtools/inc/zforlist.hxx 2005-11-22 11:11:29.000000000 +0100
-@@ -917,7 +917,7 @@
- #ifdef PRODUCT
- inline
- #endif
-- static BOOL SvNumberFormatter::ImpLookupCurrencyEntryLoopBody(
-+ static BOOL ImpLookupCurrencyEntryLoopBody(
- const NfCurrencyEntry*& pFoundEntry, BOOL& bFoundBank,
- const NfCurrencyEntry* pData, USHORT nPos, const String& rSymbol );
-
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-svx.diff b/patches/src680/buildfix-gcc41-extra-qualification-svx.diff
deleted file mode 100644
index f329d3245..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-svx.diff
+++ /dev/null
@@ -1,60 +0,0 @@
---- svx/inc/editeng.hxx.old 2005-11-21 15:55:33.000000000 +0100
-+++ svx/inc/editeng.hxx 2005-11-24 11:16:30.000000000 +0100
-@@ -136,7 +136,7 @@
- #endif
-
- public:
-- EditEngine::EditEngine( SfxItemPool* pItemPool );
-+ EditEngine( SfxItemPool* pItemPool );
- virtual ~EditEngine();
-
- const SfxItemSet& GetEmptyItemSet();
---- svx/source/editeng/impedit3.cxx.old 2005-11-21 15:55:33.000000000 +0100
-+++ svx/source/editeng/impedit3.cxx 2005-11-24 11:33:53.000000000 +0100
-@@ -137,7 +137,7 @@
- long nStartPosX;
- long nTabPos;
-
-- TabInfo::TabInfo() { bValid = FALSE; }
-+ TabInfo() { bValid = FALSE; }
- };
-
- Point Rotate( const Point& rPoint, short nOrientation, const Point& rOrigin )
---- svx/inc/svx/sdr/contact/objectcontact.hxx.old 2005-10-19 14:08:00.000000000 +0200
-+++ svx/inc/svx/sdr/contact/objectcontact.hxx 2005-11-24 11:25:16.000000000 +0100
-@@ -189,11 +189,11 @@
-
- // method to get the ObjectAnimator. It will
- // return a existing one or create a new one using CreateObjectAnimator().
-- sdr::animation::ObjectAnimator& ObjectContact::GetObjectAnimator() const;
-+ sdr::animation::ObjectAnimator& GetObjectAnimator() const;
-
- // method to get the EventHandler. It will
- // return a existing one or create a new one using CreateEventHandler().
-- sdr::event::TimerEventHandler& ObjectContact::GetEventHandler() const;
-+ sdr::event::TimerEventHandler& GetEventHandler() const;
-
- // delete the ObjectAnimator
- void DeleteObjectAnimator();
---- svx/source/inc/unopracc.hxx.old 2005-09-09 01:29:13.000000000 +0200
-+++ svx/source/inc/unopracc.hxx 2005-11-24 11:15:01.000000000 +0100
-@@ -80,7 +80,7 @@
- virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw(::com::sun::star::uno::RuntimeException);
-
- // XServiceName
-- ::rtl::OUString SAL_CALL SvxAccessibleTextPropertySet::getServiceName() throw (::com::sun::star::uno::RuntimeException);
-+ ::rtl::OUString SAL_CALL getServiceName() throw (::com::sun::star::uno::RuntimeException);
- };
-
- #endif
---- svx/inc/unoshape.hxx.old 2005-09-08 21:29:49.000000000 +0200
-+++ svx/inc/unoshape.hxx 2005-11-24 11:12:33.000000000 +0100
-@@ -199,7 +199,7 @@
- // call this in your derivated getTypes() after you call SvxShape::getTypes() but
- // only if maTypeSequence.getLength() is equal 0. See implementation of
- // SvxShape::getTypes() for more information
-- static void SvxShape::addStaticTypes( sal_Int16 nNewTypes, /* uno::Type* */ ... ) throw();
-+ static void addStaticTypes( sal_Int16 nNewTypes, /* uno::Type* */ ... ) throw();
-
- sal_Bool SAL_CALL SetFillAttribute( sal_Int32 nWID, const ::rtl::OUString& rName );
-
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-sw.diff b/patches/src680/buildfix-gcc41-extra-qualification-sw.diff
deleted file mode 100644
index a6a871d29..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-sw.diff
+++ /dev/null
@@ -1,176 +0,0 @@
---- sw/source/core/access/acccontext.hxx.old 2005-11-21 15:55:30.000000000 +0100
-+++ sw/source/core/access/acccontext.hxx 2005-11-25 13:11:56.000000000 +0100
-@@ -182,12 +182,12 @@
-
- // Dispose children of the specified SwFrm. The SwFrm might belong to
- // the current object or to any other child or grandchild.
-- void SwAccessibleContext::DisposeChildren( const SwFrm *pFrm,
-+ void DisposeChildren( const SwFrm *pFrm,
- sal_Bool bRecursive );
-
-- void SwAccessibleContext::DisposeShape( const SdrObject *pObj,
-+ void DisposeShape( const SdrObject *pObj,
- ::accessibility::AccessibleShape *pAccImpl );
-- void SwAccessibleContext::ScrolledInShape( const SdrObject *pObj,
-+ void ScrolledInShape( const SdrObject *pObj,
- ::accessibility::AccessibleShape *pAccImpl );
-
- virtual void _InvalidateContent( sal_Bool bVisibleDataFired );
---- sw/source/ui/inc/edtwin.hxx.old 2005-09-09 11:12:40.000000000 +0200
-+++ sw/source/ui/inc/edtwin.hxx 2005-11-25 16:06:40.000000000 +0100
-@@ -289,7 +289,7 @@
- void StopQuickHelp();
-
- // --> OD 2005-02-18 #i42921# - add parameter <bVerticalMode>
-- BOOL SwEditWin::RulerMarginDrag( SwView& rView,
-+ BOOL RulerMarginDrag( SwView& rView,
- const MouseEvent& rMEvt,
- const bool bVerticalMode );
- // <--
---- sw/source/core/inc/frame.hxx.old 2005-10-19 14:35:01.000000000 +0200
-+++ sw/source/core/inc/frame.hxx 2005-11-25 13:04:33.000000000 +0100
-@@ -834,7 +834,7 @@
- void MakeUpperPos( const SwFrm*, const SwFrm*, BOOL );
- void MakeLeftPos( const SwFrm*, const SwFrm*, BOOL );
- void MakeRightPos( const SwFrm*, const SwFrm*, BOOL );
-- inline BOOL SwFrm::IsNeighbourFrm() const
-+ inline BOOL IsNeighbourFrm() const
- { return GetType() & FRM_NEIGHBOUR ? TRUE : FALSE; }
-
- #ifndef PRODUCT
---- sw/inc/grfatr.hxx.old 2005-09-09 03:56:14.000000000 +0200
-+++ sw/inc/grfatr.hxx 2005-11-25 13:26:00.000000000 +0100
-@@ -84,7 +84,7 @@
- SwMirrorGrf( USHORT nMiro = RES_DONT_MIRROR_GRF )
- : SfxEnumItem( RES_GRFATR_MIRRORGRF, nMiro ), bGrfToggle( sal_False )
- {}
-- SwMirrorGrf::SwMirrorGrf( const SwMirrorGrf &rMirrorGrf )
-+ SwMirrorGrf( const SwMirrorGrf &rMirrorGrf )
- : SfxEnumItem( RES_GRFATR_MIRRORGRF, rMirrorGrf.GetValue()),
- bGrfToggle( rMirrorGrf.IsGrfToggle() )
- {}
---- sw/source/ui/inc/maildispatcher.hxx.old 2005-09-09 11:39:38.000000000 +0200
-+++ sw/source/ui/inc/maildispatcher.hxx 2005-11-25 16:10:18.000000000 +0100
-@@ -110,7 +110,7 @@
- Dequeues a mail message.
- This enables the caller to remove attachments when sending mails is to be cancelled.
- */
-- ::com::sun::star::uno::Reference< ::com::sun::star::mail::XMailMessage> MailDispatcher::dequeueMailMessage();
-+ ::com::sun::star::uno::Reference< ::com::sun::star::mail::XMailMessage> dequeueMailMessage();
-
- /**
- Start sending mail messages asynchronously. A client may register
---- sw/source/core/inc/rootfrm.hxx.old 2005-09-09 05:53:50.000000000 +0200
-+++ sw/source/core/inc/rootfrm.hxx 2005-11-25 13:13:34.000000000 +0100
-@@ -170,7 +170,7 @@
- ~SwRootFrm();
-
- ViewShell *GetCurrShell() const { return pCurrShell; }
-- void SwRootFrm::DeRegisterShell( ViewShell *pSh );
-+ void DeRegisterShell( ViewShell *pSh );
-
- //Start-/EndAction fuer alle Shells auf moeglichst hoeher
- //(Shell-Ableitungs-)Ebene aufsetzen. Fuer die StarONE Anbindung, die
---- sw/source/core/inc/scriptinfo.hxx.old 2005-10-05 15:14:08.000000000 +0200
-+++ sw/source/core/inc/scriptinfo.hxx 2005-11-25 13:28:49.000000000 +0100
-@@ -152,7 +152,7 @@
-
- inline USHORT CountHiddenChg() const;
- inline xub_StrLen GetHiddenChg( const USHORT nCnt ) const;
-- static void SwScriptInfo::CalcHiddenRanges( const SwTxtNode& rNode,
-+ static void CalcHiddenRanges( const SwTxtNode& rNode,
- MultiSelection& rHiddenMulti );
-
- // "high" level operations, nPos refers to string position
---- sw/source/core/inc/tabfrm.hxx.old 2005-09-09 06:00:05.000000000 +0200
-+++ sw/source/core/inc/tabfrm.hxx 2005-11-25 13:10:09.000000000 +0100
-@@ -201,7 +201,7 @@
- }
- // <--
-
-- bool SwTabFrm::RemoveFollowFlowLine();
-+ bool RemoveFollowFlowLine();
- //
- // End: New stuff for breaking table rows
- //
-@@ -211,7 +211,7 @@
-
- SwTwips CalcHeightOfFirstContentLine() const;
-
-- bool SwTabFrm::IsInHeadline( const SwFrm& rFrm ) const;
-+ bool IsInHeadline( const SwFrm& rFrm ) const;
- SwRowFrm* GetFirstNonHeadlineRow() const;
-
- bool IsLayoutSplitAllowed() const;
---- sw/inc/undobj.hxx.old 2005-11-08 18:13:46.000000000 +0100
-+++ sw/inc/undobj.hxx 2005-11-25 13:27:24.000000000 +0100
-@@ -382,7 +382,7 @@
- SwDoc * pDoc;
-
- void Init(const SwNodeIndex & rNode);
-- String * SwUndoInsert::GetTxtFromDoc() const;
-+ String * GetTxtFromDoc() const;
-
- public:
- SwUndoInsert( const SwNodeIndex& rNode, xub_StrLen nCntnt, xub_StrLen nLen,
---- sw/inc/unoobj.hxx.old 2005-09-09 04:27:30.000000000 +0200
-+++ sw/inc/unoobj.hxx 2005-11-25 13:16:20.000000000 +0100
-@@ -496,7 +496,7 @@
- virtual void SAL_CALL setPropertyToDefault( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Any SAL_CALL getPropertyDefault( const ::rtl::OUString& aPropertyName ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
-
-- static void SwXTextCursor::SetPropertyValue(
-+ static void SetPropertyValue(
- SwPaM& rPaM,
- const SfxItemPropertySet& rPropSet,
- const rtl::OUString& rPropertyName,
-@@ -508,11 +508,11 @@
- ::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::lang::WrappedTargetException,
- ::com::sun::star::uno::RuntimeException);
-- static ::com::sun::star::uno::Any SwXTextCursor::GetPropertyValue( SwPaM& rPaM, const SfxItemPropertySet& rPropSet, const ::rtl::OUString& rPropertyName) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
-- static ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyState > SwXTextCursor::GetPropertyStates( SwPaM& rPaM, SfxItemPropertySet& rPropSet, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& PropertyNames, SwGetPropertyStatesCaller eCaller = SW_PROPERTY_STATE_CALLER_DEFAULT) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
-- static ::com::sun::star::beans::PropertyState SwXTextCursor::GetPropertyState( SwPaM& rPaM, SfxItemPropertySet& rPropSet, const ::rtl::OUString& rPropertyName) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
-- static void SwXTextCursor::SetPropertyToDefault( SwPaM& rPaM, const SfxItemPropertySet& rPropSet, const rtl::OUString& rPropertyName) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
-- static ::com::sun::star::uno::Any SwXTextCursor::GetPropertyDefault( SwPaM& rPaM, const SfxItemPropertySet& rPropSet, const ::rtl::OUString& rPropertyName) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
-+ static ::com::sun::star::uno::Any GetPropertyValue( SwPaM& rPaM, const SfxItemPropertySet& rPropSet, const ::rtl::OUString& rPropertyName) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
-+ static ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyState > GetPropertyStates( SwPaM& rPaM, SfxItemPropertySet& rPropSet, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& PropertyNames, SwGetPropertyStatesCaller eCaller = SW_PROPERTY_STATE_CALLER_DEFAULT) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
-+ static ::com::sun::star::beans::PropertyState GetPropertyState( SwPaM& rPaM, SfxItemPropertySet& rPropSet, const ::rtl::OUString& rPropertyName) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
-+ static void SetPropertyToDefault( SwPaM& rPaM, const SfxItemPropertySet& rPropSet, const rtl::OUString& rPropertyName) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::uno::RuntimeException);
-+ static ::com::sun::star::uno::Any GetPropertyDefault( SwPaM& rPaM, const SfxItemPropertySet& rPropSet, const ::rtl::OUString& rPropertyName) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
-
- //XDocumentInsertable - neu
- virtual void SAL_CALL insertDocumentFromURL(const rtl::OUString& rURL, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aOptions) throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException );
---- sw/inc/unoport.hxx.old 2005-09-09 04:27:45.000000000 +0200
-+++ sw/inc/unoport.hxx 2005-11-25 13:17:30.000000000 +0100
-@@ -162,7 +162,7 @@
- ::com::sun::star::uno::Any *pValues,
- sal_Int32 nLength );
-
-- void SwXTextPortion::GetPropertyValue( ::com::sun::star::uno::Any &rVal,
-+ void GetPropertyValue( ::com::sun::star::uno::Any &rVal,
- const SfxItemPropertyMap *pEntry, SwUnoCrsr *pUnoCrsr, SfxItemSet *&pSet );
-
- // ::com::sun::star::uno::Sequence< ::com::sun::star::beans::GetDirectPropertyTolerantResult > SAL_CALL GetPropertyValuesTolerant_Impl(
---- sw/inc/unosett.hxx.old 2005-09-09 04:28:44.000000000 +0200
-+++ sw/inc/unosett.hxx 2005-11-25 14:12:21.000000000 +0100
-@@ -217,7 +217,7 @@
- SwXNumberingRules(SwDoc& rDoc); //create a new instance
-
-
-- static const ::com::sun::star::uno::Sequence< sal_Int8 > & SwXNumberingRules::getUnoTunnelId();
-+ static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId();
-
- virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw(::com::sun::star::uno::RuntimeException);
-
---- sw/source/ui/inc/view.hxx.old 2005-11-04 17:02:18.000000000 +0100
-+++ sw/source/ui/inc/view.hxx 2005-11-25 15:58:37.000000000 +0100
-@@ -632,7 +632,7 @@
- void ApplyAccessiblityOptions(SvtAccessibilityOptions& rAccessibilityOptions);
-
- // get print options (SwPrtOptions)
-- static void SwView::MakeOptions( PrintDialog* pDlg, SwPrtOptions& rOpts,
-+ static void MakeOptions( PrintDialog* pDlg, SwPrtOptions& rOpts,
- BOOL* pPrtProspect, BOOL bWeb, SfxPrinter* pPrt, SwPrintData* pData );
-
- SwView(SfxViewFrame* pFrame, SfxViewShell*);
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-sw2.diff b/patches/src680/buildfix-gcc41-extra-qualification-sw2.diff
deleted file mode 100644
index 8adf6c9dd..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-sw2.diff
+++ /dev/null
@@ -1,18 +0,0 @@
---- sw/inc/pagepreviewlayout.hxx.old 2005-12-21 16:09:39.000000000 +0100
-+++ sw/inc/pagepreviewlayout.hxx 2006-01-04 12:20:07.000000000 +0100
-@@ -613,13 +613,13 @@
-
- @author FME
- */
-- sal_uInt16 SwPagePreviewLayout::ConvertRelativeToAbsolutePageNum( sal_uInt16 _nRelPageNum ) const;
-+ sal_uInt16 ConvertRelativeToAbsolutePageNum( sal_uInt16 _nRelPageNum ) const;
-
- /** Convert absolute to relative page numbers (see PrintEmptyPages)
-
- @author FME
- */
-- sal_uInt16 SwPagePreviewLayout::ConvertAbsoluteToRelativePageNum( sal_uInt16 _nAbsPageNum ) const;
-+ sal_uInt16 ConvertAbsoluteToRelativePageNum( sal_uInt16 _nAbsPageNum ) const;
-
- /** get the number of preview pages
-
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-toolkit.diff b/patches/src680/buildfix-gcc41-extra-qualification-toolkit.diff
deleted file mode 100644
index 531b3ba12..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-toolkit.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- toolkit/inc/toolkit/awt/vclxaccessiblelist.hxx.old 2005-09-09 14:36:25.000000000 +0200
-+++ toolkit/inc/toolkit/awt/vclxaccessiblelist.hxx 2005-11-22 10:24:49.000000000 +0100
-@@ -190,7 +190,7 @@
- /** This function is called from the implementation helper during a
- XComponent::dispose call. Free the list of items and the items themselves.
- */
-- virtual void SAL_CALL VCLXAccessibleList::disposing (void);
-+ virtual void SAL_CALL disposing (void);
-
- /** This method adds the states
- <const>AccessibleStateType::FOCUSABLE</const> and possibly
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-tools.diff b/patches/src680/buildfix-gcc41-extra-qualification-tools.diff
deleted file mode 100644
index 6753e664e..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-tools.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- tools/bootstrp/mkcreate.hxx.old 2005-09-09 15:31:30.000000000 +0200
-+++ tools/bootstrp/mkcreate.hxx 2005-11-04 11:27:50.000000000 +0100
-@@ -155,7 +155,7 @@
-
- /* returns the operating systems of a coded dependency
- */
-- static USHORT SourceDirectory::GetOSType(
-+ static USHORT GetOSType(
- const ByteString &sDependExt // the corresponding dependency extension (see also prj.hxx)
- );
-
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-transex3.diff b/patches/src680/buildfix-gcc41-extra-qualification-transex3.diff
deleted file mode 100644
index 9884d7051..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-transex3.diff
+++ /dev/null
@@ -1,44 +0,0 @@
---- transex3/inc/export.hxx.old 2005-09-23 16:27:41.000000000 +0200
-+++ transex3/inc/export.hxx 2005-11-04 12:16:45.000000000 +0100
-@@ -347,7 +347,7 @@
- BOOL WriteExportList( ResData *pResData, ExportList *pExportList,
- const ByteString &rTyp, BOOL bCreateNew = FALSE );
-
-- ByteString Export::MergePairedList( ByteString& sLine , ByteString& sText );
-+ ByteString MergePairedList( ByteString& sLine , ByteString& sText );
-
- ByteString FullId(); // creates cur. GID
-
-@@ -355,7 +355,7 @@
-
- ByteString GetPairedListID ( const ByteString& sText );
- ByteString GetPairedListString ( const ByteString& sText );
-- ByteString Export::StripList ( const ByteString& sText );
-+ ByteString StripList ( const ByteString& sText );
-
- void UnmergeUTF8( ByteString& sOrig );
- void InsertListEntry( const ByteString &rText, const ByteString &rLine );
---- transex3/inc/helpmerge.hxx.old 2005-09-09 16:55:29.000000000 +0200
-+++ transex3/inc/helpmerge.hxx 2005-11-04 12:19:16.000000000 +0100
-@@ -77,8 +77,8 @@
- bool Merge( const ByteString &rSDFFile, const ByteString &rPathX , const ByteString &rPathY , bool bISO );
-
- private:
-- ByteString HelpParser::GetOutpath( const ByteString& rPathX , const ByteString& sCur , const ByteString& rPathY );
-+ ByteString GetOutpath( const ByteString& rPathX , const ByteString& sCur , const ByteString& rPathY );
- void Process( LangHashMap* aLangHM , ByteString& sCur , ResData *pResData , MergeDataFile& aMergeDataFile );
- void ProcessHelp( LangHashMap* aLangHM , ByteString& sCur , ResData *pResData , MergeDataFile& aMergeDataFile );
-- void HelpParser::MakeDir( const ByteString& sPath );
-+ void MakeDir( const ByteString& sPath );
- };
---- transex3/inc/xmlparse.hxx.old 2005-09-09 16:58:09.000000000 +0200
-+++ transex3/inc/xmlparse.hxx 2005-11-04 12:18:37.000000000 +0100
-@@ -322,7 +322,7 @@
- /// Return the alpha strings representation
- ByteString GetIsoLangByIndex( USHORT nIndex );
-
-- static XMLUtil& XMLUtil::Instance();
-+ static XMLUtil& Instance();
- ~XMLUtil();
-
- void dump();
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-ucb.diff b/patches/src680/buildfix-gcc41-extra-qualification-ucb.diff
deleted file mode 100644
index 3e55d6c6e..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-ucb.diff
+++ /dev/null
@@ -1,33 +0,0 @@
---- ucb/source/ucp/gvfs/directory.hxx.old 2005-09-09 17:43:21.000000000 +0200
-+++ ucb/source/ucp/gvfs/directory.hxx 2005-11-08 17:33:52.000000000 +0100
-@@ -76,7 +76,7 @@
- {
- private:
- gvfs::DataSupplier_Impl *m_pImpl;
-- sal_Bool DataSupplier::getData();
-+ sal_Bool getData();
-
- public:
- DataSupplier( const com::sun::star::uno::Reference<
---- ucb/source/ucp/ftp/ftpdownloadthread.hxx.old 2005-09-09 17:35:10.000000000 +0200
-+++ ucb/source/ucp/ftp/ftpdownloadthread.hxx 2005-11-08 17:28:12.000000000 +0100
-@@ -57,7 +57,7 @@
- {
- public:
-
-- FTPDownloadThread::FTPDownloadThread(
-+ FTPDownloadThread(
- const rtl::OUString& aIdent,
- FTPHandleProvider* pFCP
- )
---- ucb/source/ucp/webdav/webdavdatasupplier.hxx.old 2005-09-09 18:16:29.000000000 +0200
-+++ ucb/source/ucp/webdav/webdavdatasupplier.hxx 2005-11-08 17:58:13.000000000 +0100
-@@ -58,7 +58,7 @@
- DataSupplier_Impl* m_pImpl;
-
- private:
-- sal_Bool DataSupplier::getData();
-+ sal_Bool getData();
-
- public:
- DataSupplier( const com::sun::star::uno::Reference<
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-ucbhelper.diff b/patches/src680/buildfix-gcc41-extra-qualification-ucbhelper.diff
deleted file mode 100644
index 2f1b06fd4..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-ucbhelper.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- ucbhelper/source/provider/backgrounddownload.cxx.old 2005-09-09 18:35:46.000000000 +0200
-+++ ucbhelper/source/provider/backgrounddownload.cxx 2005-11-04 10:48:12.000000000 +0100
-@@ -340,7 +340,7 @@
-
- InputStream* GetSink(size_t nMaxMem);
-
-- Reference<XCommandEnvironment> DownloadThread_Impl::GetEnv();
-+ Reference<XCommandEnvironment> GetEnv();
-
-
- enum THREADSTATE {
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-unoxml.diff b/patches/src680/buildfix-gcc41-extra-qualification-unoxml.diff
deleted file mode 100644
index 7878fe744..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-unoxml.diff
+++ /dev/null
@@ -1,15 +0,0 @@
---- unoxml/source/xpath/xpathapi.hxx.old 2005-09-09 12:08:46.000000000 +0200
-+++ unoxml/source/xpath/xpathapi.hxx 2005-11-25 12:51:13.000000000 +0100
-@@ -105,10 +105,10 @@
-
- // --- XXPathAPI ---
-
-- virtual void SAL_CALL CXPathAPI::registerNS(const OUString& aPrefix, const OUString& aURI)
-+ virtual void SAL_CALL registerNS(const OUString& aPrefix, const OUString& aURI)
- throw (RuntimeException);
-
-- virtual void SAL_CALL CXPathAPI::unregisterNS(const OUString& aPrefix, const OUString& aURI)
-+ virtual void SAL_CALL unregisterNS(const OUString& aPrefix, const OUString& aURI)
- throw (RuntimeException);
-
- /**
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-vcl.diff b/patches/src680/buildfix-gcc41-extra-qualification-vcl.diff
deleted file mode 100644
index 8ba88c328..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-vcl.diff
+++ /dev/null
@@ -1,51 +0,0 @@
---- vcl/unx/inc/plugins/gtk/gtkframe.hxx.old 2005-09-28 16:59:38.000000000 +0200
-+++ vcl/unx/inc/plugins/gtk/gtkframe.hxx 2005-11-22 09:59:22.000000000 +0100
-@@ -122,7 +122,7 @@
- group( rPrev.group )
- {}
-
-- bool PreviousKeyPress::operator== (GdkEventKey *event) const
-+ bool operator== (GdkEventKey *event) const
- {
- return (event != NULL)
- && (event->window == window)
---- vcl/inc/mapmod.hxx.old 2005-11-01 11:30:13.000000000 +0100
-+++ vcl/inc/mapmod.hxx 2005-11-21 20:45:18.000000000 +0100
-@@ -82,7 +82,7 @@
- friend SvStream& operator>>( SvStream& rIStm, ImplMapMode& rMapMode );
- friend SvStream& operator<<( SvStream& rOStm, const ImplMapMode& rMapMode );
-
-- static ImplMapMode* ImplMapMode::ImplGetStaticMapMode( MapUnit eUnit );
-+ static ImplMapMode* ImplGetStaticMapMode( MapUnit eUnit );
- public:
- ImplMapMode();
- ImplMapMode( const ImplMapMode& rImpMapMode );
---- vcl/unx/inc/xfont.hxx.old 2005-09-09 14:50:21.000000000 +0200
-+++ vcl/unx/inc/xfont.hxx 2005-11-22 10:01:22.000000000 +0100
-@@ -69,7 +69,7 @@
- int mnFixedAdvance;
- int* mpAdvanceAry;
-
-- VerticalTextItem::VerticalTextItem( XFontStruct* pXFontStruct,
-+ VerticalTextItem( XFontStruct* pXFontStruct,
- const sal_Unicode* pString,
- int nLength,
- int nTransX,
-@@ -84,7 +84,7 @@
- mnFixedAdvance( nFixedAdvance )
- {}
-
-- VerticalTextItem::VerticalTextItem( XFontStruct* pXFontStruct,
-+ VerticalTextItem( XFontStruct* pXFontStruct,
- const sal_Unicode* pString,
- int nLength,
- int nTransX,
-@@ -99,7 +99,7 @@
- mpAdvanceAry( pAdvanceAry )
- {}
-
-- VerticalTextItem::~VerticalTextItem()
-+ ~VerticalTextItem()
- {
- if (!mbFixed)
- {
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-xmlhelp.diff b/patches/src680/buildfix-gcc41-extra-qualification-xmlhelp.diff
deleted file mode 100644
index 1db43523a..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-xmlhelp.diff
+++ /dev/null
@@ -1,33 +0,0 @@
---- xmlhelp/inc/qe/ConceptData.hxx.old 2005-09-09 14:11:40.000000000 +0200
-+++ xmlhelp/inc/qe/ConceptData.hxx 2005-11-22 15:57:12.000000000 +0100
-@@ -106,7 +106,7 @@
-
- protected:
-
-- static const sal_Int32 ConceptData::ProxPerTerm;
-+ static const sal_Int32 ProxPerTerm;
-
- sal_uInt8 queryNo_,nColumns_,role_;
-
---- xmlhelp/inc/qe/ContextTables.hxx.old 2005-09-09 14:11:54.000000000 +0200
-+++ xmlhelp/inc/qe/ContextTables.hxx 2005-11-22 15:51:16.000000000 +0100
-@@ -67,7 +67,7 @@
-
- ~Tables();
-
-- void Tables::setTables( ContextTables* p );
-+ void setTables( ContextTables* p );
-
-
- private:
---- xmlhelp/inc/qe/QueryProcessor.hxx.old 2005-09-09 14:12:49.000000000 +0200
-+++ xmlhelp/inc/qe/QueryProcessor.hxx 2005-11-22 15:59:56.000000000 +0100
-@@ -128,7 +128,7 @@
-
- ~QueryProcessor();
-
-- QueryResults* QueryProcessor::processQuery( const QueryStatement& ment );
-+ QueryResults* processQuery( const QueryStatement& ment );
-
- private:
-
diff --git a/patches/src680/buildfix-gcc41-extra-qualification-xmloff.diff b/patches/src680/buildfix-gcc41-extra-qualification-xmloff.diff
deleted file mode 100644
index 7a2d88e6f..000000000
--- a/patches/src680/buildfix-gcc41-extra-qualification-xmloff.diff
+++ /dev/null
@@ -1,103 +0,0 @@
---- xmloff/source/draw/animationimport.cxx.old 2005-10-19 14:21:49.000000000 +0200
-+++ xmloff/source/draw/animationimport.cxx 2005-11-22 17:34:20.000000000 +0100
-@@ -1359,7 +1359,7 @@
- AnimationsImport( const Reference< XMultiServiceFactory > & rSMgr );
- ~AnimationsImport() throw ();
-
-- SvXMLImportContext *AnimationsImport::CreateContext(USHORT nPrefix, const OUString& rLocalName, const Reference<XAttributeList>& xAttrList);
-+ SvXMLImportContext* CreateContext(USHORT nPrefix, const OUString& rLocalName, const Reference<XAttributeList>& xAttrList);
-
- // XInterface
- virtual Any SAL_CALL queryInterface( const Type& aType ) throw (RuntimeException);
-@@ -1367,7 +1367,7 @@
- virtual void SAL_CALL release() throw ();
-
- // XAnimationNodeSupplier
-- Reference< XAnimationNode > SAL_CALL AnimationsImport::getAnimationNode() throw (RuntimeException);
-+ Reference< XAnimationNode > SAL_CALL getAnimationNode() throw (RuntimeException);
-
- // XServiceInfo
- virtual OUString SAL_CALL getImplementationName() throw(RuntimeException);
---- xmloff/source/forms/elementexport.hxx.old 2005-09-09 16:05:46.000000000 +0200
-+++ xmloff/source/forms/elementexport.hxx 2005-11-22 17:39:58.000000000 +0100
-@@ -267,7 +267,7 @@
-
- /** retrieves the string specifying the ListSource of a list or combo box
- */
-- ::rtl::OUString OControlExport::getScalarListSourceValue() const;
-+ ::rtl::OUString getScalarListSourceValue() const;
-
- /** determines whether the list entries (of a combo or list box) are supplied by the user
-
---- xmloff/inc/shapeimport.hxx.old 2005-09-09 15:08:16.000000000 +0200
-+++ xmloff/inc/shapeimport.hxx 2005-11-22 17:22:41.000000000 +0100
-@@ -373,7 +373,7 @@
- const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList,
- com::sun::star::uno::Reference< com::sun::star::drawing::XShapes >& rShapes,
- const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xFrameAttrList);
-- SvXMLImportContext *XMLShapeImportHelper::CreateFrameChildContext(
-+ SvXMLImportContext* CreateFrameChildContext(
- SvXMLImportContext *pThisContext, USHORT nPrefix, const rtl::OUString& rLocalName,
- const com::sun::star::uno::Reference< com::sun::star::xml::sax::XAttributeList >& xAttrList );
-
---- xmloff/inc/SchXMLExportHelper.hxx.old 2005-09-09 14:40:58.000000000 +0200
-+++ xmloff/inc/SchXMLExportHelper.hxx 2005-11-22 17:24:45.000000000 +0100
-@@ -194,7 +194,7 @@
- sal_Bool bIncludeTable );
-
- /// returns the string corresponding to the current FileFormat CLSID for Chart
-- const rtl::OUString& SchXMLExportHelper::getChartCLSID();
-+ const rtl::OUString& getChartCLSID();
-
- UniReference< XMLPropertySetMapper > GetPropertySetMapper() const { return mxPropertySetMapper; }
-
---- xmloff/source/chart/SchXMLTableContext.hxx.old 2005-09-09 15:26:59.000000000 +0200
-+++ xmloff/source/chart/SchXMLTableContext.hxx 2005-11-22 17:26:34.000000000 +0100
-@@ -98,7 +98,7 @@
-
- public:
- /// The data for the ChartDocument is applied linearly
-- static void SchXMLTableHelper::applyTableSimple(
-+ static void applyTableSimple(
- const SchXMLTable& rTable,
- com::sun::star::uno::Reference< com::sun::star::chart::XChartDocument > xChartDoc );
-
---- xmloff/inc/txtflde.hxx.old 2005-09-09 15:08:51.000000000 +0200
-+++ xmloff/inc/txtflde.hxx 2005-11-22 17:48:37.000000000 +0100
-@@ -248,7 +248,7 @@
- SvXMLExport& GetExport() { return rExport; }
-
- /// export a field after <text:span> is already written
-- void XMLTextFieldExport::ExportFieldHelper(
-+ void ExportFieldHelper(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::text::XTextField> & rTextField,
- const ::com::sun::star::uno::Reference<
---- xmloff/inc/XMLFootnoteConfigurationImportContext.hxx.old 2005-09-09 14:50:45.000000000 +0200
-+++ xmloff/inc/XMLFootnoteConfigurationImportContext.hxx 2005-11-22 17:45:55.000000000 +0100
-@@ -113,8 +113,7 @@
- /// set configuration at document; calls ProcessSettings
- // --> OD 2005-01-31 #i40579# - move code from <CreateAndInsertLate(..)>
- // to <Finish(..)>, because at this time all styles it references have been set.
-- virtual void XMLFootnoteConfigurationImportContext::Finish(
-- sal_Bool bOverwrite );
-+ virtual void Finish( sal_Bool bOverwrite);
- // <--
-
- /// set configuration at document
---- xmloff/inc/xmlnumi.hxx.old 2005-09-09 15:17:51.000000000 +0200
-+++ xmloff/inc/xmlnumi.hxx 2005-11-22 17:31:28.000000000 +0100
-@@ -106,11 +106,11 @@
-
- static ::com::sun::star::uno::Reference <
- ::com::sun::star::container::XIndexReplace >
-- SvxXMLListStyleContext::CreateNumRule(
-+ CreateNumRule(
- const ::com::sun::star::uno::Reference <
- ::com::sun::star::frame::XModel > & rModel );
-
-- static void SvxXMLListStyleContext::SetDefaultStyle(
-+ static void SetDefaultStyle(
- const ::com::sun::star::uno::Reference <
- ::com::sun::star::container::XIndexReplace > & rNumRule,
- sal_Int16 nLevel,
diff --git a/patches/src680/buildfix-gcc41-friend-decl-binfilter.diff b/patches/src680/buildfix-gcc41-friend-decl-binfilter.diff
deleted file mode 100644
index a2c41506a..000000000
--- a/patches/src680/buildfix-gcc41-friend-decl-binfilter.diff
+++ /dev/null
@@ -1,64 +0,0 @@
---- binfilter/bf_sw/source/core/inc/flowfrm.hxx.old 2005-09-08 11:28:10.000000000 +0200
-+++ binfilter/bf_sw/source/core/inc/flowfrm.hxx 2005-12-05 13:53:51.000000000 +0100
-@@ -34,6 +34,11 @@
- ************************************************************************/
- #ifndef _FLOWFRM_HXX
- #define _FLOWFRM_HXX
-+
-+#ifndef _FRMTOOL_HXX
-+#include <frmtool.hxx>
-+#endif
-+
- namespace binfilter {
-
- //Der FlowFrm gibt die Funktionalitaet fuer alle Frms vor, die fliessen und
---- binfilter/bf_sw/source/core/inc/frmtool.hxx.old 2005-09-08 11:30:39.000000000 +0200
-+++ binfilter/bf_sw/source/core/inc/frmtool.hxx 2005-12-05 14:43:59.000000000 +0100
-@@ -93,6 +93,9 @@
- //Implementierung in feshview.cxx
- SwFlyFrm *GetFlyFromMarked( const SdrMarkList *pLst, ViewShell *pSh );
-
-+SwFrm *SaveCntnt( SwLayoutFrm *pLay, SwFrm *pStart );
-+void RestoreCntnt( SwFrm *pSav, SwLayoutFrm *pParent, SwFrm *pSibling );
-+
- //Nicht gleich die math.lib anziehen.
- ULONG MA_FASTCALL SqRt( BigInt nX );
-
---- binfilter/bf_sw/source/core/inc/pagefrm.hxx.old 2005-09-08 11:35:07.000000000 +0200
-+++ binfilter/bf_sw/source/core/inc/pagefrm.hxx 2005-12-05 18:19:30.000000000 +0100
-@@ -70,6 +70,8 @@
- CHG_CHGPAGE
- };
-
-+void SetLastPage( SwPageFrm* );
-+
- class SwPageFrm: public SwFtnBossFrm
- {
- friend class SwFrm;
---- binfilter/bf_sw/source/core/inc/rootfrm.hxx.old 2005-09-08 11:36:05.000000000 +0200
-+++ binfilter/bf_sw/source/core/inc/rootfrm.hxx 2005-12-05 14:03:36.000000000 +0100
-@@ -69,6 +69,8 @@
- #define INV_LINENUM 32
- #define INV_DIRECTION 64
-
-+void SetShell( ViewShell *pSh );
-+
- class SwRootFrm: public SwLayoutFrm
- {
- //Muss das Superfluous temporaer abschalten.
---- binfilter/inc/bf_svx/svdetc.hxx.old 2005-09-09 16:34:08.000000000 +0200
-+++ binfilter/inc/bf_svx/svdetc.hxx 2005-12-05 11:12:42.000000000 +0100
-@@ -139,6 +139,13 @@
- friend SdrOutliner* SdrMakeOutliner( USHORT nOutlinerMode, SdrModel* pMod );
- };
-
-+// Einen Outliner mit den engineglobalen
-+// Defaulteinstellungen auf dem Heap erzeugen.
-+// Ist pMod<>NULL, dann wird der MapMode des uebergebenen
-+// Models verwendet. Die resultierende Default-Fonthoehe bleibt
-+// jedoch dieselbe (die logische Fonthoehe wird umgerechnet).
-+SdrOutliner* SdrMakeOutliner( USHORT nOutlinerMode, SdrModel* pMod );
-+
- // Liefert eine Ersatzdarstellung fuer einen XFillStyle
- // Bei XFILL_NONE gibt's FALSE und rCol bleibt unveraendert.
- FASTBOOL GetDraftFillColor(const SfxItemSet& rSet, Color& rCol);
diff --git a/patches/src680/buildfix-gcc41-friend-decl-configmgr.diff b/patches/src680/buildfix-gcc41-friend-decl-configmgr.diff
deleted file mode 100644
index a94fa6cff..000000000
--- a/patches/src680/buildfix-gcc41-friend-decl-configmgr.diff
+++ /dev/null
@@ -1,24 +0,0 @@
---- configmgr/source/inc/noderef.hxx.old 2005-09-08 05:52:19.000000000 +0200
-+++ configmgr/source/inc/noderef.hxx 2005-11-07 16:16:37.000000000 +0100
-@@ -196,11 +196,7 @@
- TreeRef getContextTree() const;
- /// gets the parent node of this tree ('s root node), if available
- NodeRef getContextNode() const;
-- #if defined(_MSC_VER) && (_MSC_VER > 1300 )
- friend bool equalTreeRef(TreeRef const& lhs, TreeRef const& rhs);
-- #else
-- friend bool equalTreeRef(TreeRef const& lhs, TreeRef const& rhs) { return lhs.m_pImpl == rhs.m_pImpl; }
-- #endif
- private:
- friend class Tree;
- friend class TreeImplHelper;
-@@ -210,9 +206,7 @@
-
- TreeImpl* m_pImpl;
- };
-- #if defined(_MSC_VER) && (_MSC_VER > 1300 )
- inline bool equalTreeRef(TreeRef const& lhs, TreeRef const& rhs) { return lhs.m_pImpl == rhs.m_pImpl; }
-- #endif
-
- /** represents a hierarchy of config entries (identified by <type>NodeRef</type>s and <type>ValueRef</type>s)
-
diff --git a/patches/src680/buildfix-gcc41-friend-decl-desktop.diff b/patches/src680/buildfix-gcc41-friend-decl-desktop.diff
deleted file mode 100644
index 793882ee8..000000000
--- a/patches/src680/buildfix-gcc41-friend-decl-desktop.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- desktop/source/app/lockfile.hxx.old 2005-09-08 19:10:43.000000000 +0200
-+++ desktop/source/app/lockfile.hxx 2005-11-24 18:12:22.000000000 +0100
-@@ -59,6 +59,9 @@
-
- namespace desktop {
-
-+ class Lockfile;
-+ bool Lockfile_execWarning( Lockfile * that );
-+
- class Lockfile
- {
- public:
diff --git a/patches/src680/buildfix-gcc41-friend-decl-i18npool.diff b/patches/src680/buildfix-gcc41-friend-decl-i18npool.diff
deleted file mode 100644
index df01a0bec..000000000
--- a/patches/src680/buildfix-gcc41-friend-decl-i18npool.diff
+++ /dev/null
@@ -1,40 +0,0 @@
---- i18npool/inc/localedata.hxx.old 2005-11-24 11:47:23.000000000 +0100
-+++ i18npool/inc/localedata.hxx 2005-11-28 15:01:22.000000000 +0100
-@@ -90,6 +90,10 @@
-
- namespace com { namespace sun { namespace star { namespace i18n {
-
-+inline sal_Bool operator ==(const com::sun::star::lang::Locale& l1, const com::sun::star::lang::Locale& l2) {
-+ return l1.Language == l2.Language && l1.Country == l2.Country && l1.Variant == l2.Variant;
-+};
-+
- class I18NPOOL_DLLPUBLIC LocaleData : public cppu::WeakImplHelper2
- <
- XLocaleData,
-@@ -131,13 +135,7 @@
- virtual com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames() throw( com::sun::star::uno::RuntimeException );
-
- private :
--#if defined(_MSC_VER) && (_MSC_VER >= 1310 )
-- inline friend sal_Bool operator ==(const com::sun::star::lang::Locale& l1, const com::sun::star::lang::Locale& l2);
--#else
-- inline friend sal_Bool operator ==(const com::sun::star::lang::Locale& l1, const com::sun::star::lang::Locale& l2) {
-- return l1.Language == l2.Language && l1.Country == l2.Country && l1.Variant == l2.Variant;
-- };
--#endif
-+ friend sal_Bool operator ==(const com::sun::star::lang::Locale& l1, const com::sun::star::lang::Locale& l2);
-
- struct lookupTableItem {
- lookupTableItem(const sal_Char *name, osl::Module* m) : dllName(name), module(m) {}
-@@ -163,11 +161,6 @@
- const com::sun::star::uno::Sequence< com::sun::star::i18n::Calendar >& calendarsSeq,
- sal_Int16 len, sal_Int16 item) throw( com::sun::star::uno::RuntimeException );
- };
--#if defined(_MSC_VER) && (_MSC_VER >= 1310 )
-- inline sal_Bool operator ==(const com::sun::star::lang::Locale& l1, const com::sun::star::lang::Locale& l2) {
-- return l1.Language == l2.Language && l1.Country == l2.Country && l1.Variant == l2.Variant;
-- };
--#endif
-
- } } } }
-
diff --git a/patches/src680/buildfix-gcc41-friend-decl-svx.diff b/patches/src680/buildfix-gcc41-friend-decl-svx.diff
deleted file mode 100644
index 190200379..000000000
--- a/patches/src680/buildfix-gcc41-friend-decl-svx.diff
+++ /dev/null
@@ -1,24 +0,0 @@
---- svx/inc/svdetc.hxx.old 2005-09-08 20:42:45.000000000 +0200
-+++ svx/inc/svdetc.hxx 2005-11-24 12:14:01.000000000 +0100
-@@ -80,6 +80,12 @@
- struct Locale;
- }}}}
-
-+// Einen Outliner mit den engineglobalen
-+// Defaulteinstellungen auf dem Heap erzeugen.
-+// Ist pMod<>NULL, dann wird der MapMode des uebergebenen
-+// Models verwendet. Die resultierende Default-Fonthoehe bleibt
-+// jedoch dieselbe (die logische Fonthoehe wird umgerechnet).
-+SVX_DLLPUBLIC SdrOutliner* SdrMakeOutliner( USHORT nOutlinerMode, SdrModel* pMod );
-
- // Globale Defaulteinstellungen fuer die DrawingEngine.
- // Diese Einstellungen sollte man direkt beim Applikationsstart
-@@ -136,7 +142,7 @@
- // Ist pMod<>NULL, dann wird der MapMode des uebergebenen
- // Models verwendet. Die resultierende Default-Fonthoehe bleibt
- // jedoch dieselbe (die logische Fonthoehe wird umgerechnet).
-- SVX_DLLPUBLIC friend SdrOutliner* SdrMakeOutliner( USHORT nOutlinerMode, SdrModel* pMod );
-+ friend SdrOutliner* SdrMakeOutliner( USHORT nOutlinerMode, SdrModel* pMod );
- };
-
- class SfxItemSet;
diff --git a/patches/src680/buildfix-gcc41-friend-decl-sw.diff b/patches/src680/buildfix-gcc41-friend-decl-sw.diff
deleted file mode 100644
index 34de2e970..000000000
--- a/patches/src680/buildfix-gcc41-friend-decl-sw.diff
+++ /dev/null
@@ -1,84 +0,0 @@
---- sw/source/core/frmedt/fews.cxx.old 2005-09-09 05:38:32.000000000 +0200
-+++ sw/source/core/frmedt/fews.cxx 2005-11-25 14:06:46.000000000 +0100
-@@ -46,6 +46,9 @@
- #include <svx/svdobj.hxx>
- #endif
-
-+#ifndef _INIT_HXX
-+#include <init.hxx>
-+#endif
- #ifndef _FESH_HXX
- #include <fesh.hxx>
- #endif
---- sw/source/core/inc/frmtool.hxx.old 2005-10-27 18:00:53.000000000 +0200
-+++ sw/source/core/inc/frmtool.hxx 2005-11-25 14:52:13.000000000 +0100
-@@ -97,6 +97,9 @@
- //Nicht gleich die math.lib anziehen.
- ULONG MA_FASTCALL SqRt( BigInt nX );
-
-+SwFrm *SaveCntnt( SwLayoutFrm *pLay, SwFrm *pStart );
-+void RestoreCntnt( SwFrm *pSav, SwLayoutFrm *pParent, SwFrm *pSibling, bool bGrow );
-+
- //CntntNodes besorgen, CntntFrms erzeugen und in den LayFrm haengen.
- void MA_FASTCALL _InsertCnt( SwLayoutFrm *pLay, SwDoc *pDoc, ULONG nIndex,
- BOOL bPages = FALSE, ULONG nEndIndex = 0,
---- sw/inc/init.hxx.old 2005-09-09 03:59:01.000000000 +0200
-+++ sw/inc/init.hxx 2005-11-25 14:09:13.000000000 +0100
-@@ -35,14 +35,18 @@
- #ifndef _INIT_HXX
- #define _INIT_HXX
-
-+class ViewShell;
-+
- void _InitCore(); // bastyp/init.cxx
- void _FinitCore();
-
- void _InitFilter(); // basflt/fltini.cxx
- void _FinitFilter();
-
--// layout/frame.cxx
-+// layout/newfrm.cxx
- void _FrmInit();
-+void _FrmFinit();
-+void SetShell( ViewShell *pSh );
-
- // text/txtfrm.cxx
- void _TextInit();
---- sw/source/core/docnode/ndsect.cxx.old 2005-09-09 05:21:47.000000000 +0200
-+++ sw/source/core/docnode/ndsect.cxx 2005-11-25 13:46:53.000000000 +0100
-@@ -95,6 +95,9 @@
- #ifndef _FRMFMT_HXX
- #include <frmfmt.hxx>
- #endif
-+#ifndef _FRMTOOL_HXX
-+#include <frmtool.hxx>
-+#endif
- #ifndef _FTNIDX_HXX
- #include <ftnidx.hxx>
- #endif
---- sw/source/core/layout/pagechg.cxx.old 2005-09-28 13:14:56.000000000 +0200
-+++ sw/source/core/layout/pagechg.cxx 2005-11-25 15:01:52.000000000 +0100
-@@ -903,6 +903,11 @@
- pPage->GetUpper()->Frm().Height() ) );
- }
-
-+inline void SetLastPage( SwPageFrm *pPage )
-+{
-+ ((SwRootFrm*)pPage->GetUpper())->pLastPage = pPage;
-+}
-+
- void SwPageFrm::AdjustRootSize( const SwPageChg eChgType, const SwRect *pOld )
- {
- if ( !GetUpper() )
-@@ -995,11 +1000,6 @@
- |* Letzte Aenderung MA 22. Jun. 95
- |*
- |*************************************************************************/
--inline void SetLastPage( SwPageFrm *pPage )
--{
-- ((SwRootFrm*)pPage->GetUpper())->pLastPage = pPage;
--}
--
- void SwPageFrm::Cut()
- {
- AdjustRootSize( CHG_CUTPAGE, 0 );
diff --git a/patches/src680/buildfix-gcc41-pointers-icu.diff b/patches/src680/buildfix-gcc41-pointers-icu.diff
deleted file mode 100644
index a944cd2fe..000000000
--- a/patches/src680/buildfix-gcc41-pointers-icu.diff
+++ /dev/null
@@ -1,3867 +0,0 @@
---- icu/icu-2.6.patch.old 2005-11-01 15:43:54.000000000 +0100
-+++ icu/icu-2.6.patch 2005-12-23 17:44:59.000000000 +0100
-@@ -2747,3 +2747,3864 @@
- commands = pkg_appendToList(commands, NULL, uprv_strdup(stanza));
-
- sprintf(stanza, "@$(RMV) $(TEMP_DIR)/%s", cfile+genFileOffset);
-+*** build/icu/source/common/unicode/putil.h.old 2003-06-03 08:44:38.000000000 +0200
-+--- misc/build/icu/source/common/unicode/putil.h 2005-12-21 20:09:16.000000000 +0100
-+***************
-+*** 415,421 ****
-+ */
-+ # define U_MAX_PTR(base) ((void *)(((char *)base)-((int32_t)(base))+((int32_t)0xffefff)))
-+ # else
-+! # define U_MAX_PTR(base) ((void *)(((char *)(base)+0x7fffffff) > (char *)(base) ? ((char *)(base)+0x7fffffff) : (char *)-1))
-+ # endif
-+ #endif
-+
-+--- 415,421 ----
-+ */
-+ # define U_MAX_PTR(base) ((void *)(((char *)base)-((int32_t)(base))+((int32_t)0xffefff)))
-+ # else
-+! # define U_MAX_PTR(base) ((void *)(((uintptr_t)(base)+0x7fffffff) >(uintptr_t)(base) ? ((uintptr_t)(base)+0x7fffffff) : (uintptr_t)-1))
-+ # endif
-+ #endif
-+
-+*** build/icu/source/common/ucnvbocu.c 2003-06-03 00:19:24.000000000 +0200
-+--- misc/build/icu/source/common/ucnvbocu.c 2005-12-23 13:35:03.000000000 +0100
-+***************
-+*** 393,404 ****
-+
-+ U_ALIGN_CODE(16)
-+
-+ /* set up the local pointers */
-+ cnv=pArgs->converter;
-+ source=pArgs->source;
-+ sourceLimit=pArgs->sourceLimit;
-+ target=(uint8_t *)pArgs->target;
-+! targetCapacity=pArgs->targetLimit-pArgs->target;
-+ offsets=pArgs->offsets;
-+
-+ /* get the converter state from UConverter */
-+--- 393,410 ----
-+
-+ U_ALIGN_CODE(16)
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /* set up the local pointers */
-+ cnv=pArgs->converter;
-+ source=pArgs->source;
-+ sourceLimit=pArgs->sourceLimit;
-+ target=(uint8_t *)pArgs->target;
-+! targetCapacity=(uintptr_t)(pArgs->targetLimit)-(uintptr_t)(pArgs->target);
-+ offsets=pArgs->offsets;
-+
-+ /* get the converter state from UConverter */
-+***************
-+*** 469,475 ****
-+ }
-+ }
-+ /* restore real values */
-+! targetCapacity=(const uint8_t *)pArgs->targetLimit-target;
-+ sourceIndex=nextSourceIndex; /* wrong if offsets==NULL but does not matter */
-+
-+ /* regular loop for all cases */
-+--- 475,481 ----
-+ }
-+ }
-+ /* restore real values */
-+! targetCapacity=(uintptr_t)(pArgs->targetLimit)-(uintptr_t)target;
-+ sourceIndex=nextSourceIndex; /* wrong if offsets==NULL but does not matter */
-+
-+ /* regular loop for all cases */
-+***************
-+*** 703,714 ****
-+
-+ int32_t prev, c, diff;
-+
-+ /* set up the local pointers */
-+ cnv=pArgs->converter;
-+ source=pArgs->source;
-+ sourceLimit=pArgs->sourceLimit;
-+ target=(uint8_t *)pArgs->target;
-+! targetCapacity=pArgs->targetLimit-pArgs->target;
-+
-+ /* get the converter state from UConverter */
-+ c=cnv->fromUSurrogateLead;
-+--- 709,726 ----
-+
-+ int32_t prev, c, diff;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /* set up the local pointers */
-+ cnv=pArgs->converter;
-+ source=pArgs->source;
-+ sourceLimit=pArgs->sourceLimit;
-+ target=(uint8_t *)pArgs->target;
-+! targetCapacity=(uintptr_t)(pArgs->targetLimit)-(uintptr_t)(pArgs->target);
-+
-+ /* get the converter state from UConverter */
-+ c=cnv->fromUSurrogateLead;
-+***************
-+*** 748,754 ****
-+ --targetCapacity;
-+ }
-+ /* restore real values */
-+! targetCapacity=(const uint8_t *)pArgs->targetLimit-target;
-+
-+ /* regular loop for all cases */
-+ while(source<sourceLimit) {
-+--- 760,766 ----
-+ --targetCapacity;
-+ }
-+ /* restore real values */
-+! targetCapacity=(uintptr_t)(pArgs->targetLimit)-(uintptr_t)target;
-+
-+ /* regular loop for all cases */
-+ while(source<sourceLimit) {
-+***************
-+*** 1014,1019 ****
-+--- 1026,1037 ----
-+
-+ int32_t sourceIndex, nextSourceIndex;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /* set up the local pointers */
-+ cnv=pArgs->converter;
-+ source=(const uint8_t *)pArgs->source;
-+***************
-+*** 1040,1046 ****
-+
-+ /* conversion "loop" similar to _SCSUToUnicodeWithOffsets() */
-+ loop:
-+! if(count>0 && byteIndex>0 && target<targetLimit) {
-+ goto getTrail;
-+ }
-+
-+--- 1058,1064 ----
-+
-+ /* conversion "loop" similar to _SCSUToUnicodeWithOffsets() */
-+ loop:
-+! if(count>0 && byteIndex>0 && (uintptr_t)target<(uintptr_t)targetLimit) {
-+ goto getTrail;
-+ }
-+
-+***************
-+*** 1048,1054 ****
-+ /* fast loop for single-byte differences */
-+ /* use count as the only loop counter variable */
-+ diff=sourceLimit-source;
-+! count=pArgs->targetLimit-target;
-+ if(count>diff) {
-+ count=diff;
-+ }
-+--- 1066,1072 ----
-+ /* fast loop for single-byte differences */
-+ /* use count as the only loop counter variable */
-+ diff=sourceLimit-source;
-+! count=((uintptr_t)(pArgs->targetLimit)-(uintptr_t)target)/sizeof(UChar);
-+ if(count>diff) {
-+ count=diff;
-+ }
-+***************
-+*** 1102,1108 ****
-+
-+ /* decode a sequence of single and lead bytes */
-+ while(source<sourceLimit) {
-+! if(target>=targetLimit) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ break;
-+--- 1120,1126 ----
-+
-+ /* decode a sequence of single and lead bytes */
-+ while(source<sourceLimit) {
-+! if((uintptr_t)target>=(uintptr_t)targetLimit) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ break;
-+***************
-+*** 1207,1213 ****
-+ } else {
-+ /* output surrogate pair */
-+ *target++=UTF16_LEAD(c);
-+! if(target<targetLimit) {
-+ *target++=UTF16_TRAIL(c);
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+--- 1225,1231 ----
-+ } else {
-+ /* output surrogate pair */
-+ *target++=UTF16_LEAD(c);
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ *target++=UTF16_TRAIL(c);
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+***************
-+*** 1336,1341 ****
-+--- 1354,1365 ----
-+
-+ U_ALIGN_CODE(16)
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /* set up the local pointers */
-+ cnv=pArgs->converter;
-+ source=(const uint8_t *)pArgs->source;
-+***************
-+*** 1357,1363 ****
-+
-+ /* conversion "loop" similar to _SCSUToUnicodeWithOffsets() */
-+ loop:
-+! if(count>0 && byteIndex>0 && target<targetLimit) {
-+ goto getTrail;
-+ }
-+
-+--- 1381,1387 ----
-+
-+ /* conversion "loop" similar to _SCSUToUnicodeWithOffsets() */
-+ loop:
-+! if(count>0 && byteIndex>0 && (uintptr_t)target<(uintptr_t)targetLimit) {
-+ goto getTrail;
-+ }
-+
-+***************
-+*** 1365,1371 ****
-+ /* fast loop for single-byte differences */
-+ /* use count as the only loop counter variable */
-+ diff=sourceLimit-source;
-+! count=pArgs->targetLimit-target;
-+ if(count>diff) {
-+ count=diff;
-+ }
-+--- 1389,1395 ----
-+ /* fast loop for single-byte differences */
-+ /* use count as the only loop counter variable */
-+ diff=sourceLimit-source;
-+! count=((uintptr_t)(pArgs->targetLimit)-(uintptr_t)target)/sizeof(UChar);
-+ if(count>diff) {
-+ count=diff;
-+ }
-+***************
-+*** 1392,1398 ****
-+
-+ /* decode a sequence of single and lead bytes */
-+ while(source<sourceLimit) {
-+! if(target>=targetLimit) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ break;
-+--- 1416,1422 ----
-+
-+ /* decode a sequence of single and lead bytes */
-+ while(source<sourceLimit) {
-+! if((uintptr_t)target>=(uintptr_t)targetLimit) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ break;
-+***************
-+*** 1482,1488 ****
-+ } else {
-+ /* output surrogate pair */
-+ *target++=UTF16_LEAD(c);
-+! if(target<targetLimit) {
-+ *target++=UTF16_TRAIL(c);
-+ } else {
-+ /* target overflow */
-+--- 1506,1512 ----
-+ } else {
-+ /* output surrogate pair */
-+ *target++=UTF16_LEAD(c);
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ *target++=UTF16_TRAIL(c);
-+ } else {
-+ /* target overflow */
-+*** build/icu/source/common/ucnv.c 2003-05-13 23:05:04.000000000 +0200
-+--- misc/build/icu/source/common/ucnv.c 2005-12-22 15:50:47.000000000 +0100
-+***************
-+*** 774,779 ****
-+--- 774,785 ----
-+ UConverterFromUnicodeArgs args;
-+ const char *t;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /*
-+ * Check parameters in for all conversions
-+ */
-+***************
-+*** 787,793 ****
-+ }
-+
-+ t = *target;
-+! if (targetLimit < t || sourceLimit < *source)
-+ {
-+ *err = U_ILLEGAL_ARGUMENT_ERROR;
-+ return;
-+--- 793,799 ----
-+ }
-+
-+ t = *target;
-+! if ((uintptr_t)targetLimit < (uintptr_t)t || sourceLimit < *source)
-+ {
-+ *err = U_ILLEGAL_ARGUMENT_ERROR;
-+ return;
-+***************
-+*** 796,806 ****
-+ /*
-+ * Make sure that the target buffer size does not exceed the number range for int32_t
-+ * because some functions use the size rather than comparing pointers.
-+- * size_t is guaranteed to be unsigned.
-+ */
-+! if((size_t)(targetLimit - t) > (size_t)0x7fffffff && targetLimit > t)
-+ {
-+! targetLimit = t + 0x7fffffff;
-+ }
-+
-+ /*
-+--- 802,811 ----
-+ /*
-+ * Make sure that the target buffer size does not exceed the number range for int32_t
-+ * because some functions use the size rather than comparing pointers.
-+ */
-+! if(((uintptr_t)targetLimit - (uintptr_t)t) > (uintptr_t)0x7fffffff && (uintptr_t)targetLimit > (uintptr_t)t)
-+ {
-+! targetLimit = (char*)((uintptr_t)t + (uintptr_t)0x7fffffff);
-+ }
-+
-+ /*
-+***************
-+*** 810,820 ****
-+ if (_this->charErrorBufferLength > 0)
-+ {
-+ int32_t myTargetIndex = 0;
-+-
-+ ucnv_flushInternalCharBuffer (_this,
-+ (char *)t,
-+ &myTargetIndex,
-+! targetLimit - *target,
-+ offsets?&offsets:NULL,
-+ err);
-+ *target += myTargetIndex;
-+--- 815,824 ----
-+ if (_this->charErrorBufferLength > 0)
-+ {
-+ int32_t myTargetIndex = 0;
-+ ucnv_flushInternalCharBuffer (_this,
-+ (char *)t,
-+ &myTargetIndex,
-+! (uintptr_t)targetLimit - (uintptr_t)(*target),
-+ offsets?&offsets:NULL,
-+ err);
-+ *target += myTargetIndex;
-+***************
-+*** 846,852 ****
-+ }
-+ else {
-+ /* there is no implementation that sets offsets, set them all to -1 */
-+! int32_t i, targetSize = targetLimit - *target;
-+
-+ for (i=0; i<targetSize; i++) {
-+ offsets[i] = -1;
-+--- 850,856 ----
-+ }
-+ else {
-+ /* there is no implementation that sets offsets, set them all to -1 */
-+! int32_t i, targetSize = (uintptr_t)targetLimit - (uintptr_t)(*target);
-+
-+ for (i=0; i<targetSize; i++) {
-+ offsets[i] = -1;
-+***************
-+*** 875,880 ****
-+--- 879,890 ----
-+ UConverterToUnicodeArgs args;
-+ const UChar *t;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /*
-+ * Check parameters in for all conversions
-+ */
-+***************
-+*** 888,894 ****
-+ }
-+
-+ t = *target;
-+! if (targetLimit < t || sourceLimit < *source) {
-+ *err = U_ILLEGAL_ARGUMENT_ERROR;
-+ return;
-+ }
-+--- 898,904 ----
-+ }
-+
-+ t = *target;
-+! if ((uintptr_t)targetLimit < (uintptr_t)t || sourceLimit < *source) {
-+ *err = U_ILLEGAL_ARGUMENT_ERROR;
-+ return;
-+ }
-+***************
-+*** 898,905 ****
-+ * because some functions use the size rather than comparing pointers.
-+ * size_t is guaranteed to be unsigned.
-+ */
-+! if((size_t)(targetLimit - t) > (size_t)0x3fffffff && targetLimit > t) {
-+! targetLimit = t + 0x3fffffff;
-+ }
-+
-+ /*
-+--- 908,915 ----
-+ * because some functions use the size rather than comparing pointers.
-+ * size_t is guaranteed to be unsigned.
-+ */
-+! if((((uintptr_t)targetLimit - (uintptr_t)t)/sizeof(UChar)) > (uintptr_t)0x3fffffff && (uintptr_t)targetLimit > (uintptr_t)t) {
-+! targetLimit = (char*)((uintptr_t)t + ((uintptr_t)0x3fffffff)*sizeof(UChar));
-+ }
-+
-+ /*
-+***************
-+*** 913,919 ****
-+ ucnv_flushInternalUnicodeBuffer (_this,
-+ (UChar *)t,
-+ &myTargetIndex,
-+! targetLimit - *target,
-+ offsets?&offsets:NULL,
-+ err);
-+ *target += myTargetIndex;
-+--- 923,929 ----
-+ ucnv_flushInternalUnicodeBuffer (_this,
-+ (UChar *)t,
-+ &myTargetIndex,
-+! ((uintptr_t)targetLimit - (uintptr_t)(*target))/sizeof(UChar),
-+ offsets?&offsets:NULL,
-+ err);
-+ *target += myTargetIndex;
-+***************
-+*** 942,948 ****
-+ return;
-+ } else {
-+ /* there is no implementation that sets offsets, set them all to -1 */
-+! int32_t i, targetSize = targetLimit - *target;
-+
-+ for (i=0; i<targetSize; i++) {
-+ offsets[i] = -1;
-+--- 952,958 ----
-+ return;
-+ } else {
-+ /* there is no implementation that sets offsets, set them all to -1 */
-+! int32_t i, targetSize = ((uintptr_t)targetLimit - (uintptr_t)(*target))/sizeof(UChar);
-+
-+ for (i=0; i<targetSize; i++) {
-+ offsets[i] = -1;
-+*** build/icu/source/common/ucnvhz.c 2003-05-13 23:05:06.000000000 +0200
-+--- misc/build/icu/source/common/ucnvhz.c 2005-12-23 15:22:31.000000000 +0100
-+***************
-+*** 151,165 ****
-+ UChar32 targetUniChar = 0x0000;
-+ UChar mySourceChar = 0x0000;
-+ UConverterDataHZ* myData=(UConverterDataHZ*)(args->converter->extraInfo);
-+
-+! if ((args->converter == NULL) || (args->targetLimit < args->target) || (args->sourceLimit < args->source)){
-+ *err = U_ILLEGAL_ARGUMENT_ERROR;
-+ return;
-+ }
-+
-+ while(mySource< args->sourceLimit){
-+
-+! if(myTarget < args->targetLimit){
-+
-+ mySourceChar= (unsigned char) *mySource++;
-+
-+--- 151,171 ----
-+ UChar32 targetUniChar = 0x0000;
-+ UChar mySourceChar = 0x0000;
-+ UConverterDataHZ* myData=(UConverterDataHZ*)(args->converter->extraInfo);
-++
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-+
-+! if ((args->converter == NULL) || ((uintptr_t)(args->targetLimit) < (uintptr_t)(args->target)) || (args->sourceLimit < args->source)){
-+ *err = U_ILLEGAL_ARGUMENT_ERROR;
-+ return;
-+ }
-+
-+ while(mySource< args->sourceLimit){
-+
-+! if((uintptr_t)myTarget < (uintptr_t)(args->targetLimit)){
-+
-+ mySourceChar= (unsigned char) *mySource++;
-+
-+***************
-+*** 351,357 ****
-+ int32_t* offsets = args->offsets;
-+ int32_t mySourceIndex = 0;
-+ int32_t myTargetIndex = 0;
-+! int32_t targetLength = (int32_t)(args->targetLimit - args->target);
-+ int32_t mySourceLength = (int32_t)(args->sourceLimit - args->source);
-+ int32_t length=0;
-+ uint32_t targetUniChar = 0x0000;
-+--- 357,363 ----
-+ int32_t* offsets = args->offsets;
-+ int32_t mySourceIndex = 0;
-+ int32_t myTargetIndex = 0;
-+! int32_t targetLength = (uintptr_t)(args->targetLimit) - (uintptr_t)(args->target);
-+ int32_t mySourceLength = (int32_t)(args->sourceLimit - args->source);
-+ int32_t length=0;
-+ uint32_t targetUniChar = 0x0000;
-+***************
-+*** 364,370 ****
-+ int len =0;
-+ const char* escSeq=NULL;
-+
-+! if ((args->converter == NULL) || (args->targetLimit < args->target) || (args->sourceLimit < args->source)){
-+ *err = U_ILLEGAL_ARGUMENT_ERROR;
-+ return;
-+ }
-+--- 370,382 ----
-+ int len =0;
-+ const char* escSeq=NULL;
-+
-+! /*
-+! * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-+! * to the same memory object; such poiter oprations are not defined and must be
-+! * done using the unsigned integer types
-+! */
-+!
-+! if ((args->converter == NULL) || ((uintptr_t)(args->targetLimit) < (uintptr_t)(args->target)) || (args->sourceLimit < args->source)){
-+ *err = U_ILLEGAL_ARGUMENT_ERROR;
-+ return;
-+ }
-+*** build/icu/source/common/ucnvisci.c 2003-06-13 01:51:18.000000000 +0200
-+--- misc/build/icu/source/common/ucnvisci.c 2005-12-23 13:36:49.000000000 +0100
-+***************
-+*** 759,767 ****
-+ { 0xDC , 0x0963 },
-+ };
-+
-+ #define WRITE_TO_TARGET_FROM_U(args,offsets,source,target,targetLimit,targetByteUnit,err){ \
-+ /* write the targetUniChar to target */ \
-+! if(target <targetLimit){ \
-+ if(targetByteUnit <= 0xFF){ \
-+ *(target)++ = (uint8_t)(targetByteUnit); \
-+ if(offsets){ \
-+--- 759,773 ----
-+ { 0xDC , 0x0963 },
-+ };
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ #define WRITE_TO_TARGET_FROM_U(args,offsets,source,target,targetLimit,targetByteUnit,err){ \
-+ /* write the targetUniChar to target */ \
-+! if((uintptr_t)target < (uintptr_t)targetLimit){ \
-+ if(targetByteUnit <= 0xFF){ \
-+ *(target)++ = (uint8_t)(targetByteUnit); \
-+ if(offsets){ \
-+***************
-+*** 772,778 ****
-+ if(offsets){ \
-+ *(offsets++) = (int32_t)(source - args->source-1); \
-+ } \
-+! if(target < targetLimit){ \
-+ *(target)++ = (uint8_t) targetByteUnit; \
-+ if(offsets){ \
-+ *(offsets++) = (int32_t)(source - args->source-1); \
-+--- 778,784 ----
-+ if(offsets){ \
-+ *(offsets++) = (int32_t)(source - args->source-1); \
-+ } \
-+! if((uintptr_t)target < (uintptr_t)targetLimit){ \
-+ *(target)++ = (uint8_t) targetByteUnit; \
-+ if(offsets){ \
-+ *(offsets++) = (int32_t)(source - args->source-1); \
-+***************
-+*** 818,824 ****
-+ uint16_t range = 0;
-+ UBool deltaChanged = FALSE;
-+
-+! if ((args->converter == NULL) || (args->targetLimit < args->target) || (args->sourceLimit < args->source)){
-+ *err = U_ILLEGAL_ARGUMENT_ERROR;
-+ return;
-+ }
-+--- 824,836 ----
-+ uint16_t range = 0;
-+ UBool deltaChanged = FALSE;
-+
-+! /*
-+! * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-+! * to the same memory object; such poiter oprations are not defined and must be
-+! * done using the unsigned integer types
-+! */
-+!
-+! if ((args->converter == NULL) || ((uintptr_t)(args->targetLimit) < (uintptr_t)(args->target)) || (args->sourceLimit < args->source)){
-+ *err = U_ILLEGAL_ARGUMENT_ERROR;
-+ return;
-+ }
-+***************
-+*** 828,834 ****
-+ newDelta=converterData->currentDeltaFromUnicode;
-+ range = (uint16_t)(newDelta/DELTA);
-+
-+! if(args->converter->fromUSurrogateLead!=0 && target <targetLimit) {
-+ goto getTrail;
-+ }
-+
-+--- 840,846 ----
-+ newDelta=converterData->currentDeltaFromUnicode;
-+ range = (uint16_t)(newDelta/DELTA);
-+
-+! if(args->converter->fromUSurrogateLead!=0 && (uintptr_t)target <(uintptr_t)targetLimit) {
-+ goto getTrail;
-+ }
-+
-+***************
-+*** 1087,1092 ****
-+--- 1099,1110 ----
-+ { GURMUKHI, PNJ_MASK },
-+ };
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ #define WRITE_TO_TARGET_TO_U(args,source,target,offsets,offset,targetUniChar,delta, err){\
-+ /* add offset to current Indic Block */ \
-+ if(targetUniChar>ASCII_END && \
-+***************
-+*** 1098,1104 ****
-+ targetUniChar+=(uint16_t)(delta); \
-+ } \
-+ /* now write the targetUniChar */ \
-+! if(target<args->targetLimit){ \
-+ *(target)++ = (UChar)targetUniChar; \
-+ if(offsets){ \
-+ *(offsets)++ = (int32_t)(offset); \
-+--- 1116,1122 ----
-+ targetUniChar+=(uint16_t)(delta); \
-+ } \
-+ /* now write the targetUniChar */ \
-+! if((uintptr_t)target < (uintptr_t)(args->targetLimit)){ \
-+ *(target)++ = (UChar)targetUniChar; \
-+ if(offsets){ \
-+ *(offsets)++ = (int32_t)(offset); \
-+***************
-+*** 1158,1163 ****
-+--- 1176,1187 ----
-+ UChar32* toUnicodeStatus=NULL;
-+ UChar* contextCharToUnicode = NULL;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ if ((args->converter == NULL) || (target < args->target) || (source < args->source)){
-+ *err = U_ILLEGAL_ARGUMENT_ERROR;
-+ return;
-+***************
-+*** 1171,1177 ****
-+
-+ targetUniChar = missingCharMarker;
-+
-+! if(target < targetLimit){
-+ sourceChar = (unsigned char)*(source)++;
-+
-+ /* look at the post-context preform special processing */
-+--- 1195,1201 ----
-+
-+ targetUniChar = missingCharMarker;
-+
-+! if((uintptr_t)target < (uintptr_t)targetLimit){
-+ sourceChar = (unsigned char)*(source)++;
-+
-+ /* look at the post-context preform special processing */
-+*** build/icu/source/common/ucnvlat1.c 2003-06-03 00:19:24.000000000 +0200
-+--- misc/build/icu/source/common/ucnvlat1.c 2005-12-23 13:37:30.000000000 +0100
-+***************
-+*** 37,46 ****
-+
-+ int32_t sourceIndex;
-+
-+ /* set up the local pointers */
-+ source=(const uint8_t *)pArgs->source;
-+ target=pArgs->target;
-+! targetCapacity=pArgs->targetLimit-pArgs->target;
-+ offsets=pArgs->offsets;
-+
-+ sourceIndex=0;
-+--- 37,52 ----
-+
-+ int32_t sourceIndex;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /* set up the local pointers */
-+ source=(const uint8_t *)pArgs->source;
-+ target=pArgs->target;
-+! targetCapacity=((uintptr_t)(pArgs->targetLimit) - (uintptr_t)(pArgs->target))/sizeof(UChar);
-+ offsets=pArgs->offsets;
-+
-+ sourceIndex=0;
-+***************
-+*** 158,169 ****
-+ UConverterCallbackReason reason;
-+ int32_t i;
-+
-+ /* set up the local pointers */
-+ cnv=pArgs->converter;
-+ source=pArgs->source;
-+ sourceLimit=pArgs->sourceLimit;
-+ target=(uint8_t *)pArgs->target;
-+! targetCapacity=pArgs->targetLimit-pArgs->target;
-+ offsets=pArgs->offsets;
-+
-+ if(cnv->sharedData==&_Latin1Data) {
-+--- 164,181 ----
-+ UConverterCallbackReason reason;
-+ int32_t i;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /* set up the local pointers */
-+ cnv=pArgs->converter;
-+ source=pArgs->source;
-+ sourceLimit=pArgs->sourceLimit;
-+ target=(uint8_t *)pArgs->target;
-+! targetCapacity=(uintptr_t)(pArgs->targetLimit) - (uintptr_t)(pArgs->target);
-+ offsets=pArgs->offsets;
-+
-+ if(cnv->sharedData==&_Latin1Data) {
-+***************
-+*** 366,372 ****
-+ /* update the source pointer and index */
-+ sourceIndex+=length+(pArgs->source-source);
-+ source=lastSource=pArgs->source;
-+! targetCapacity=(uint8_t *)pArgs->targetLimit-target;
-+ length=sourceLimit-source;
-+ if(length<targetCapacity) {
-+ targetCapacity=length;
-+--- 378,384 ----
-+ /* update the source pointer and index */
-+ sourceIndex+=length+(pArgs->source-source);
-+ source=lastSource=pArgs->source;
-+! targetCapacity=(uintptr_t)(pArgs->targetLimit) - (uintptr_t)target;
-+ length=sourceLimit-source;
-+ if(length<targetCapacity) {
-+ targetCapacity=length;
-+***************
-+*** 394,400 ****
-+ }
-+ }
-+
-+! if(U_SUCCESS(*pErrorCode) && source<sourceLimit && target>=(uint8_t *)pArgs->targetLimit) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ }
-+--- 406,412 ----
-+ }
-+ }
-+
-+! if(U_SUCCESS(*pErrorCode) && source<sourceLimit && (uintptr_t)target>=(uintptr_t)(pArgs->targetLimit)) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ }
-+***************
-+*** 486,496 ****
-+
-+ int32_t sourceIndex;
-+
-+ /* set up the local pointers */
-+ source=(const uint8_t *)pArgs->source;
-+ sourceLimit=(const uint8_t *)pArgs->sourceLimit;
-+ target=pArgs->target;
-+! targetCapacity=pArgs->targetLimit-pArgs->target;
-+ offsets=pArgs->offsets;
-+
-+ /* sourceIndex=-1 if the current character began in the previous buffer */
-+--- 498,514 ----
-+
-+ int32_t sourceIndex;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /* set up the local pointers */
-+ source=(const uint8_t *)pArgs->source;
-+ sourceLimit=(const uint8_t *)pArgs->sourceLimit;
-+ target=pArgs->target;
-+! targetCapacity=((uintptr_t)(pArgs->targetLimit) - (uintptr_t)(pArgs->target))/sizeof(UChar);
-+ offsets=pArgs->offsets;
-+
-+ /* sourceIndex=-1 if the current character began in the previous buffer */
-+***************
-+*** 614,620 ****
-+ /* update the source pointer and index */
-+ sourceIndex+=1+((const uint8_t *)pArgs->source-source);
-+ source=lastSource=(const uint8_t *)pArgs->source;
-+! targetCapacity=pArgs->targetLimit-target;
-+ length=sourceLimit-source;
-+ if(length<targetCapacity) {
-+ targetCapacity=length;
-+--- 632,638 ----
-+ /* update the source pointer and index */
-+ sourceIndex+=1+((const uint8_t *)pArgs->source-source);
-+ source=lastSource=(const uint8_t *)pArgs->source;
-+! targetCapacity=((uintptr_t)(pArgs->targetLimit) - (uintptr_t)target)/sizeof(UChar);
-+ length=sourceLimit-source;
-+ if(length<targetCapacity) {
-+ targetCapacity=length;
-+***************
-+*** 641,647 ****
-+ }
-+ }
-+
-+! if(U_SUCCESS(*pErrorCode) && source<sourceLimit && target>=pArgs->targetLimit) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ }
-+--- 659,665 ----
-+ }
-+ }
-+
-+! if(U_SUCCESS(*pErrorCode) && source<sourceLimit && (uintptr_t)target >= (uintptr_t)(pArgs->targetLimit)) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ }
-+*** build/icu/source/common/ucnv_cb.c 2002-07-09 14:34:36.000000000 +0200
-+--- misc/build/icu/source/common/ucnv_cb.c 2005-12-23 17:37:56.000000000 +0100
-+***************
-+*** 39,45 ****
-+ int8_t toerr;
-+ int32_t i;
-+
-+! if((args->targetLimit - args->target) >= length) /* If the buffer fits.. */
-+ {
-+ uprv_memcpy(args->target, source, length);
-+ args->target += length;
-+--- 39,51 ----
-+ int8_t toerr;
-+ int32_t i;
-+
-+! /*
-+! * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-+! * to the same memory object; such poiter oprations are not defined and must be
-+! * done using the unsigned integer types
-+! */
-+!
-+! if(((uintptr_t)(args->targetLimit) - (uintptr_t)(args->target)) >= length) /* If the buffer fits.. */
-+ {
-+ uprv_memcpy(args->target, source, length);
-+ args->target += length;
-+***************
-+*** 53,59 ****
-+ }
-+ else
-+ {
-+! togo = (int32_t)(args->targetLimit - args->target);
-+
-+ uprv_memcpy(args->target, source, togo);
-+ args->target += togo;
-+--- 59,65 ----
-+ }
-+ else
-+ {
-+! togo = (uintptr_t)args->targetLimit - (uintptr_t)(args->target);
-+
-+ uprv_memcpy(args->target, source, togo);
-+ args->target += togo;
-+***************
-+*** 102,107 ****
-+--- 108,119 ----
-+
-+ char *oldTarget;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ if(U_FAILURE(*err))
-+ {
-+ return;
-+***************
-+*** 236,248 ****
-+ int8_t toerr;
-+ int32_t i;
-+
-+ if(U_FAILURE(*err))
-+ {
-+ return;
-+ }
-+
-+
-+! if((args->targetLimit - args->target) >= length) /* If the buffer fits.. */
-+ {
-+ uprv_memcpy(args->target, source, length * sizeof(args->target[0]) );
-+ args->target += length;
-+--- 248,266 ----
-+ int8_t toerr;
-+ int32_t i;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ if(U_FAILURE(*err))
-+ {
-+ return;
-+ }
-+
-+
-+! if((((uintptr_t)(args->targetLimit) - (uintptr_t)(args->target))/sizeof(UChar)) >= length) /* If the buffer fits.. */
-+ {
-+ uprv_memcpy(args->target, source, length * sizeof(args->target[0]) );
-+ args->target += length;
-+***************
-+*** 256,262 ****
-+ }
-+ else
-+ {
-+! togo = (int32_t)(args->targetLimit - args->target);
-+
-+ uprv_memcpy(args->target, source, togo * sizeof(args->target[0]) );
-+ args->target += togo;
-+--- 274,280 ----
-+ }
-+ else
-+ {
-+! togo = (int32_t)((uintptr_t)(args->targetLimit) - (uintptr_t)(args->target))/sizeof(UChar);
-+
-+ uprv_memcpy(args->target, source, togo * sizeof(args->target[0]) );
-+ args->target += togo;
-+*** build/icu/source/common/ucnv_lmb.c 2003-06-03 00:19:24.000000000 +0200
-+--- misc/build/icu/source/common/ucnv_lmb.c 2005-12-23 13:44:06.000000000 +0100
-+***************
-+*** 742,747 ****
-+--- 742,752 ----
-+ UConverterDataLMBCS * extraInfo = (UConverterDataLMBCS *) args->converter->extraInfo;
-+ int sourceIndex = 0;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-+
-+ /* Basic strategy: attempt to fill in local LMBCS 1-char buffer.(LMBCS)
-+ If that succeeds, see if it will all fit into the target & copy it over
-+***************
-+*** 768,774 ****
-+
-+ while (args->source < args->sourceLimit && !U_FAILURE(*err))
-+ {
-+! if (args->target >= args->targetLimit)
-+ {
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ break;
-+--- 773,779 ----
-+
-+ while (args->source < args->sourceLimit && !U_FAILURE(*err))
-+ {
-+! if ((uintptr_t)(args->target) >= (uintptr_t)(args->targetLimit))
-+ {
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ break;
-+***************
-+*** 900,906 ****
-+ /* we have a translation. increment source and write as much as posible to target */
-+ args->source++;
-+ pLMBCS = LMBCS;
-+! while (args->target < args->targetLimit && bytes_written--)
-+ {
-+ *(args->target)++ = *pLMBCS++;
-+ if (args->offsets)
-+--- 905,911 ----
-+ /* we have a translation. increment source and write as much as posible to target */
-+ args->source++;
-+ pLMBCS = LMBCS;
-+! while ((uintptr_t)(args->target) < (uintptr_t)(args->targetLimit) && bytes_written--)
-+ {
-+ *(args->target)++ = *pLMBCS++;
-+ if (args->offsets)
-+***************
-+*** 1200,1213 ****
-+ const char * saveSource = args->source; /* beginning of current code point */
-+ const char * pStartLMBCS = args->source; /* beginning of whole string */
-+
-+! if (args->targetLimit == args->target) /* error check may belong in common code */
-+ {
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ return;
-+ }
-+
-+ /* Process from source to limit, or until error */
-+! while (!*err && args->sourceLimit > args->source && args->targetLimit > args->target)
-+ {
-+ saveSource = args->source; /* beginning of current code point */
-+
-+--- 1205,1224 ----
-+ const char * saveSource = args->source; /* beginning of current code point */
-+ const char * pStartLMBCS = args->source; /* beginning of whole string */
-+
-+! /*
-+! * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-+! * to the same memory object; such poiter oprations are not defined and must be
-+! * done using the unsigned integer types
-+! */
-+!
-+! if ((uintptr_t)(args->targetLimit) == (uintptr_t)(args->target)) /* error check may belong in common code */
-+ {
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ return;
-+ }
-+
-+ /* Process from source to limit, or until error */
-+! while (!*err && args->sourceLimit > args->source && (uintptr_t)(args->targetLimit) > (uintptr_t)(args->target))
-+ {
-+ saveSource = args->source; /* beginning of current code point */
-+
-+***************
-+*** 1288,1294 ****
-+ }
-+ uniChar = *pUChar++;
-+ }
-+! while(BufferLength-- && args->targetLimit > args->target);
-+
-+ if (++BufferLength > 0)
-+ { /* fix up remaining UChars that can't fit in caller's buffer */
-+--- 1299,1305 ----
-+ }
-+ uniChar = *pUChar++;
-+ }
-+! while(BufferLength-- && (uintptr_t)(args->targetLimit) > (uintptr_t)(args->target));
-+
-+ if (++BufferLength > 0)
-+ { /* fix up remaining UChars that can't fit in caller's buffer */
-+***************
-+*** 1304,1310 ****
-+ }
-+ }
-+ /* if target ran out before source, return U_BUFFER_OVERFLOW_ERROR */
-+! if (U_SUCCESS(*err) && args->sourceLimit > args->source && args->targetLimit <= args->target)
-+ {
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ }
-+--- 1315,1321 ----
-+ }
-+ }
-+ /* if target ran out before source, return U_BUFFER_OVERFLOW_ERROR */
-+! if (U_SUCCESS(*err) && args->sourceLimit > args->source && (uintptr_t)(args->targetLimit) <= (uintptr_t)(args->target))
-+ {
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ }
-+*** build/icu/source/common/ucnvmbcs.c 2003-05-10 00:52:04.000000000 +0200
-+--- misc/build/icu/source/common/ucnvmbcs.c 2005-12-23 15:13:43.000000000 +0100
-+***************
-+*** 888,893 ****
-+--- 888,899 ----
-+ uint8_t action;
-+ UConverterCallbackReason reason;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /* use optimized function if possible */
-+ cnv=pArgs->converter;
-+ if(cnv->sharedData->table->mbcs.countStates==1) {
-+***************
-+*** 933,939 ****
-+ * Therefore, those situations also test for overflows and will
-+ * then break the loop, too.
-+ */
-+! if(target<targetLimit) {
-+ ++nextSourceIndex;
-+ entry=stateTable[state][bytes[byteIndex++]=*source++];
-+ if(MBCS_ENTRY_IS_TRANSITION(entry)) {
-+--- 939,945 ----
-+ * Therefore, those situations also test for overflows and will
-+ * then break the loop, too.
-+ */
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ ++nextSourceIndex;
-+ entry=stateTable[state][bytes[byteIndex++]=*source++];
-+ if(MBCS_ENTRY_IS_TRANSITION(entry)) {
-+***************
-+*** 993,999 ****
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+ }
-+! if(target<targetLimit) {
-+ *target++=unicodeCodeUnits[offset];
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+--- 999,1005 ----
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+ }
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ *target++=unicodeCodeUnits[offset];
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+***************
-+*** 1030,1036 ****
-+ *offsets++=sourceIndex;
-+ }
-+ c=(UChar)(0xdc00|(UChar)(entry&0x3ff));
-+! if(target<targetLimit) {
-+ *target++=c;
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+--- 1036,1042 ----
-+ *offsets++=sourceIndex;
-+ }
-+ c=(UChar)(0xdc00|(UChar)(entry&0x3ff));
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ *target++=c;
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+***************
-+*** 1192,1197 ****
-+--- 1198,1209 ----
-+ uint8_t action;
-+ UConverterCallbackReason reason;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /* set up the local pointers */
-+ cnv=pArgs->converter;
-+ source=(const uint8_t *)pArgs->source;
-+***************
-+*** 1220,1226 ****
-+ * Therefore, those situations also test for overflows and will
-+ * then break the loop, too.
-+ */
-+! if(target<targetLimit) {
-+ ++nextSourceIndex;
-+ entry=stateTable[0][*source++];
-+ /* MBCS_ENTRY_IS_FINAL(entry) */
-+--- 1232,1238 ----
-+ * Therefore, those situations also test for overflows and will
-+ * then break the loop, too.
-+ */
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ ++nextSourceIndex;
-+ entry=stateTable[0][*source++];
-+ /* MBCS_ENTRY_IS_FINAL(entry) */
-+***************
-+*** 1252,1258 ****
-+ *offsets++=sourceIndex;
-+ }
-+ c=(UChar)(0xdc00|(UChar)(entry&0x3ff));
-+! if(target<targetLimit) {
-+ *target++=c;
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+--- 1264,1270 ----
-+ *offsets++=sourceIndex;
-+ }
-+ c=(UChar)(0xdc00|(UChar)(entry&0x3ff));
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ *target++=c;
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+***************
-+*** 1373,1384 ****
-+ uint8_t action;
-+ UConverterCallbackReason reason;
-+
-+ /* set up the local pointers */
-+ cnv=pArgs->converter;
-+ source=(const uint8_t *)pArgs->source;
-+ sourceLimit=(const uint8_t *)pArgs->sourceLimit;
-+ target=pArgs->target;
-+! targetCapacity=pArgs->targetLimit-pArgs->target;
-+ offsets=pArgs->offsets;
-+
-+ if((cnv->options&UCNV_OPTION_SWAP_LFNL)!=0) {
-+--- 1385,1402 ----
-+ uint8_t action;
-+ UConverterCallbackReason reason;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /* set up the local pointers */
-+ cnv=pArgs->converter;
-+ source=(const uint8_t *)pArgs->source;
-+ sourceLimit=(const uint8_t *)pArgs->sourceLimit;
-+ target=pArgs->target;
-+! targetCapacity=((uintptr_t)(pArgs->targetLimit) - (uintptr_t)(pArgs->target))/sizeof(UChar);
-+ offsets=pArgs->offsets;
-+
-+ if((cnv->options&UCNV_OPTION_SWAP_LFNL)!=0) {
-+***************
-+*** 1546,1552 ****
-+ /* update the source pointer and index */
-+ sourceIndex+=1+((const uint8_t *)pArgs->source-source);
-+ source=lastSource=(const uint8_t *)pArgs->source;
-+! targetCapacity=pArgs->targetLimit-target;
-+ length=sourceLimit-source;
-+ if(length<targetCapacity) {
-+ targetCapacity=length;
-+--- 1564,1570 ----
-+ /* update the source pointer and index */
-+ sourceIndex+=1+((const uint8_t *)pArgs->source-source);
-+ source=lastSource=(const uint8_t *)pArgs->source;
-+! targetCapacity=((uintptr_t)(pArgs->targetLimit) - (uintptr_t)target)/sizeof(UChar);
-+ length=sourceLimit-source;
-+ if(length<targetCapacity) {
-+ targetCapacity=length;
-+***************
-+*** 1573,1579 ****
-+ #endif
-+ }
-+
-+! if(U_SUCCESS(*pErrorCode) && source<sourceLimit && target>=pArgs->targetLimit) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ }
-+--- 1591,1597 ----
-+ #endif
-+ }
-+
-+! if(U_SUCCESS(*pErrorCode) && source<sourceLimit && (uintptr_t)target >= (uintptr_t)(pArgs->targetLimit)) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ }
-+***************
-+*** 2179,2185 ****
-+ source=pArgs->source;
-+ sourceLimit=pArgs->sourceLimit;
-+ target=(uint8_t *)pArgs->target;
-+! targetCapacity=pArgs->targetLimit-pArgs->target;
-+ offsets=pArgs->offsets;
-+
-+ table=cnv->sharedData->table->mbcs.fromUnicodeTable;
-+--- 2197,2203 ----
-+ source=pArgs->source;
-+ sourceLimit=pArgs->sourceLimit;
-+ target=(uint8_t *)pArgs->target;
-+! targetCapacity=(uintptr_t)(pArgs->targetLimit) - (uintptr_t)(pArgs->target);
-+ offsets=pArgs->offsets;
-+
-+ table=cnv->sharedData->table->mbcs.fromUnicodeTable;
-+***************
-+*** 2581,2587 ****
-+ /* update the source pointer and index */
-+ sourceIndex=nextSourceIndex+(pArgs->source-source);
-+ source=pArgs->source;
-+! targetCapacity=(uint8_t *)pArgs->targetLimit-target;
-+
-+ /*
-+ * If the callback overflowed the target, then we need to
-+--- 2599,2605 ----
-+ /* update the source pointer and index */
-+ sourceIndex=nextSourceIndex+(pArgs->source-source);
-+ source=pArgs->source;
-+! targetCapacity=(uintptr_t)(pArgs->targetLimit) - (uintptr_t)target;
-+
-+ /*
-+ * If the callback overflowed the target, then we need to
-+***************
-+*** 2680,2690 ****
-+ cnv=pArgs->converter;
-+ unicodeMask=cnv->sharedData->table->mbcs.unicodeMask;
-+
-+ /* set up the local pointers */
-+ source=pArgs->source;
-+ sourceLimit=pArgs->sourceLimit;
-+ target=(uint8_t *)pArgs->target;
-+! targetCapacity=pArgs->targetLimit-pArgs->target;
-+ offsets=pArgs->offsets;
-+
-+ table=cnv->sharedData->table->mbcs.fromUnicodeTable;
-+--- 2698,2714 ----
-+ cnv=pArgs->converter;
-+ unicodeMask=cnv->sharedData->table->mbcs.unicodeMask;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /* set up the local pointers */
-+ source=pArgs->source;
-+ sourceLimit=pArgs->sourceLimit;
-+ target=(uint8_t *)pArgs->target;
-+! targetCapacity=(uintptr_t)(pArgs->targetLimit) - (uintptr_t)(pArgs->target);
-+ offsets=pArgs->offsets;
-+
-+ table=cnv->sharedData->table->mbcs.fromUnicodeTable;
-+***************
-+*** 2862,2868 ****
-+ /* update the source pointer and index */
-+ sourceIndex=nextSourceIndex+(pArgs->source-source);
-+ source=pArgs->source;
-+! targetCapacity=(uint8_t *)pArgs->targetLimit-target;
-+
-+ /*
-+ * If the callback overflowed the target, then we need to
-+--- 2886,2892 ----
-+ /* update the source pointer and index */
-+ sourceIndex=nextSourceIndex+(pArgs->source-source);
-+ source=pArgs->source;
-+! targetCapacity=(uintptr_t)(pArgs->targetLimit) - (uintptr_t)target;
-+
-+ /*
-+ * If the callback overflowed the target, then we need to
-+***************
-+*** 2933,2944 ****
-+ uint16_t value, minValue;
-+ UBool hasSupplementary;
-+
-+ /* set up the local pointers */
-+ cnv=pArgs->converter;
-+ source=pArgs->source;
-+ sourceLimit=pArgs->sourceLimit;
-+ target=(uint8_t *)pArgs->target;
-+! targetCapacity=pArgs->targetLimit-pArgs->target;
-+ offsets=pArgs->offsets;
-+
-+ table=cnv->sharedData->table->mbcs.fromUnicodeTable;
-+--- 2957,2974 ----
-+ uint16_t value, minValue;
-+ UBool hasSupplementary;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /* set up the local pointers */
-+ cnv=pArgs->converter;
-+ source=pArgs->source;
-+ sourceLimit=pArgs->sourceLimit;
-+ target=(uint8_t *)pArgs->target;
-+! targetCapacity=(uintptr_t)(pArgs->targetLimit) - (uintptr_t)(pArgs->target);
-+ offsets=pArgs->offsets;
-+
-+ table=cnv->sharedData->table->mbcs.fromUnicodeTable;
-+***************
-+*** 3076,3082 ****
-+ /* update the source pointer and index */
-+ sourceIndex=nextSourceIndex+(pArgs->source-source);
-+ source=pArgs->source;
-+! targetCapacity=(uint8_t *)pArgs->targetLimit-target;
-+
-+ /*
-+ * If the callback overflowed the target, then we need to
-+--- 3106,3112 ----
-+ /* update the source pointer and index */
-+ sourceIndex=nextSourceIndex+(pArgs->source-source);
-+ source=pArgs->source;
-+! targetCapacity=(uintptr_t)(pArgs->targetLimit) - (uintptr_t)target;
-+
-+ /*
-+ * If the callback overflowed the target, then we need to
-+***************
-+*** 3149,3160 ****
-+ UConverterCallbackReason reason;
-+ uint16_t value, minValue;
-+
-+ /* set up the local pointers */
-+ cnv=pArgs->converter;
-+ source=pArgs->source;
-+ sourceLimit=pArgs->sourceLimit;
-+ target=(uint8_t *)pArgs->target;
-+! targetCapacity=pArgs->targetLimit-pArgs->target;
-+ offsets=pArgs->offsets;
-+
-+ table=cnv->sharedData->table->mbcs.fromUnicodeTable;
-+--- 3179,3196 ----
-+ UConverterCallbackReason reason;
-+ uint16_t value, minValue;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /* set up the local pointers */
-+ cnv=pArgs->converter;
-+ source=pArgs->source;
-+ sourceLimit=pArgs->sourceLimit;
-+ target=(uint8_t *)pArgs->target;
-+! targetCapacity=(uintptr_t)(pArgs->targetLimit) - (uintptr_t)(pArgs->target);
-+ offsets=pArgs->offsets;
-+
-+ table=cnv->sharedData->table->mbcs.fromUnicodeTable;
-+***************
-+*** 3347,3353 ****
-+ /* update the source pointer and index */
-+ sourceIndex+=length+(pArgs->source-source);
-+ source=lastSource=pArgs->source;
-+! targetCapacity=(uint8_t *)pArgs->targetLimit-target;
-+ length=sourceLimit-source;
-+ if(length<targetCapacity) {
-+ targetCapacity=length;
-+--- 3383,3389 ----
-+ /* update the source pointer and index */
-+ sourceIndex+=length+(pArgs->source-source);
-+ source=lastSource=pArgs->source;
-+! targetCapacity=(uintptr_t)(pArgs->targetLimit) - (uintptr_t)target;
-+ length=sourceLimit-source;
-+ if(length<targetCapacity) {
-+ targetCapacity=length;
-+***************
-+*** 3375,3381 ****
-+ #endif
-+ }
-+
-+! if(U_SUCCESS(*pErrorCode) && source<sourceLimit && target>=(uint8_t *)pArgs->targetLimit) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ }
-+--- 3411,3417 ----
-+ #endif
-+ }
-+
-+! if(U_SUCCESS(*pErrorCode) && source<sourceLimit && (uintptr_t)target >= (uintptr_t)(pArgs->targetLimit)) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ }
-+*** build/icu/source/common/ucnvscsu.c 2003-06-03 00:19:24.000000000 +0200
-+--- misc/build/icu/source/common/ucnvscsu.c 2005-12-23 13:43:09.000000000 +0100
-+***************
-+*** 235,240 ****
-+--- 235,246 ----
-+
-+ uint8_t b;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /* set up the local pointers */
-+ cnv=pArgs->converter;
-+ scsu=(SCSUData *)cnv->extraInfo;
-+***************
-+*** 281,287 ****
-+ /* fast path for single-byte mode */
-+ if(state==readCommand) {
-+ fastSingle:
-+! while(source<sourceLimit && target<targetLimit && (b=*source)>=0x20) {
-+ ++source;
-+ ++nextSourceIndex;
-+ if(b<=0x7f) {
-+--- 287,293 ----
-+ /* fast path for single-byte mode */
-+ if(state==readCommand) {
-+ fastSingle:
-+! while(source<sourceLimit && (uintptr_t)target<(uintptr_t)targetLimit && (b=*source)>=0x20) {
-+ ++source;
-+ ++nextSourceIndex;
-+ if(b<=0x7f) {
-+***************
-+*** 301,307 ****
-+ } else {
-+ /* output surrogate pair */
-+ *target++=(UChar)(0xd7c0+(c>>10));
-+! if(target<targetLimit) {
-+ *target++=(UChar)(0xdc00|(c&0x3ff));
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+--- 307,313 ----
-+ } else {
-+ /* output surrogate pair */
-+ *target++=(UChar)(0xd7c0+(c>>10));
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ *target++=(UChar)(0xdc00|(c&0x3ff));
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+***************
-+*** 326,332 ****
-+ /* normal state machine for single-byte mode, minus handling for what fastSingle covers */
-+ singleByteMode:
-+ while(source<sourceLimit) {
-+! if(target>=targetLimit) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ break;
-+--- 332,338 ----
-+ /* normal state machine for single-byte mode, minus handling for what fastSingle covers */
-+ singleByteMode:
-+ while(source<sourceLimit) {
-+! if((uintptr_t)target>=(uintptr_t)targetLimit) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ break;
-+***************
-+*** 402,408 ****
-+ } else {
-+ /* output surrogate pair */
-+ *target++=(UChar)(0xd7c0+(c>>10));
-+! if(target<targetLimit) {
-+ *target++=(UChar)(0xdc00|(c&0x3ff));
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+--- 408,414 ----
-+ } else {
-+ /* output surrogate pair */
-+ *target++=(UChar)(0xd7c0+(c>>10));
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ *target++=(UChar)(0xdc00|(c&0x3ff));
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+***************
-+*** 462,468 ****
-+ /* fast path for Unicode mode */
-+ if(state==readCommand) {
-+ fastUnicode:
-+! while(source+1<sourceLimit && target<targetLimit && (uint8_t)((b=*source)-UC0)>(Urs-UC0)) {
-+ *target++=(UChar)((b<<8)|source[1]);
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+--- 468,474 ----
-+ /* fast path for Unicode mode */
-+ if(state==readCommand) {
-+ fastUnicode:
-+! while(source+1<sourceLimit && (uintptr_t)target<(uintptr_t)targetLimit && (uint8_t)((b=*source)-UC0)>(Urs-UC0)) {
-+ *target++=(UChar)((b<<8)|source[1]);
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+***************
-+*** 476,482 ****
-+ /* normal state machine for Unicode mode */
-+ /* unicodeByteMode: */
-+ while(source<sourceLimit) {
-+! if(target>=targetLimit) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ break;
-+--- 482,488 ----
-+ /* normal state machine for Unicode mode */
-+ /* unicodeByteMode: */
-+ while(source<sourceLimit) {
-+! if((uintptr_t)target>=(uintptr_t)targetLimit) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ break;
-+***************
-+*** 626,631 ****
-+--- 632,643 ----
-+
-+ uint8_t b;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /* set up the local pointers */
-+ cnv=pArgs->converter;
-+ scsu=(SCSUData *)cnv->extraInfo;
-+***************
-+*** 667,673 ****
-+ /* fast path for single-byte mode */
-+ if(state==readCommand) {
-+ fastSingle:
-+! while(source<sourceLimit && target<targetLimit && (b=*source)>=0x20) {
-+ ++source;
-+ if(b<=0x7f) {
-+ /* write US-ASCII graphic character or DEL */
-+--- 679,685 ----
-+ /* fast path for single-byte mode */
-+ if(state==readCommand) {
-+ fastSingle:
-+! while(source<sourceLimit && (uintptr_t)target<(uintptr_t)targetLimit && (b=*source)>=0x20) {
-+ ++source;
-+ if(b<=0x7f) {
-+ /* write US-ASCII graphic character or DEL */
-+***************
-+*** 680,686 ****
-+ } else {
-+ /* output surrogate pair */
-+ *target++=(UChar)(0xd7c0+(c>>10));
-+! if(target<targetLimit) {
-+ *target++=(UChar)(0xdc00|(c&0x3ff));
-+ } else {
-+ /* target overflow */
-+--- 692,698 ----
-+ } else {
-+ /* output surrogate pair */
-+ *target++=(UChar)(0xd7c0+(c>>10));
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ *target++=(UChar)(0xdc00|(c&0x3ff));
-+ } else {
-+ /* target overflow */
-+***************
-+*** 697,703 ****
-+ /* normal state machine for single-byte mode, minus handling for what fastSingle covers */
-+ singleByteMode:
-+ while(source<sourceLimit) {
-+! if(target>=targetLimit) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ break;
-+--- 709,715 ----
-+ /* normal state machine for single-byte mode, minus handling for what fastSingle covers */
-+ singleByteMode:
-+ while(source<sourceLimit) {
-+! if((uintptr_t)target>=(uintptr_t)targetLimit) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ break;
-+***************
-+*** 756,762 ****
-+ } else {
-+ /* output surrogate pair */
-+ *target++=(UChar)(0xd7c0+(c>>10));
-+! if(target<targetLimit) {
-+ *target++=(UChar)(0xdc00|(c&0x3ff));
-+ } else {
-+ /* target overflow */
-+--- 768,774 ----
-+ } else {
-+ /* output surrogate pair */
-+ *target++=(UChar)(0xd7c0+(c>>10));
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ *target++=(UChar)(0xdc00|(c&0x3ff));
-+ } else {
-+ /* target overflow */
-+***************
-+*** 806,812 ****
-+ /* fast path for Unicode mode */
-+ if(state==readCommand) {
-+ fastUnicode:
-+! while(source+1<sourceLimit && target<targetLimit && (uint8_t)((b=*source)-UC0)>(Urs-UC0)) {
-+ *target++=(UChar)((b<<8)|source[1]);
-+ source+=2;
-+ }
-+--- 818,824 ----
-+ /* fast path for Unicode mode */
-+ if(state==readCommand) {
-+ fastUnicode:
-+! while(source+1<sourceLimit && (uintptr_t)target<(uintptr_t)targetLimit && (uint8_t)((b=*source)-UC0)>(Urs-UC0)) {
-+ *target++=(UChar)((b<<8)|source[1]);
-+ source+=2;
-+ }
-+***************
-+*** 815,821 ****
-+ /* normal state machine for Unicode mode */
-+ /* unicodeByteMode: */
-+ while(source<sourceLimit) {
-+! if(target>=targetLimit) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ break;
-+--- 827,833 ----
-+ /* normal state machine for Unicode mode */
-+ /* unicodeByteMode: */
-+ while(source<sourceLimit) {
-+! if((uintptr_t)target>=(uintptr_t)targetLimit) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ break;
-+***************
-+*** 1112,1118 ****
-+ source=pArgs->source;
-+ sourceLimit=pArgs->sourceLimit;
-+ target=(uint8_t *)pArgs->target;
-+! targetCapacity=(int32_t)(pArgs->targetLimit-pArgs->target);
-+ offsets=pArgs->offsets;
-+
-+ /* get the state machine state */
-+--- 1124,1130 ----
-+ source=pArgs->source;
-+ sourceLimit=pArgs->sourceLimit;
-+ target=(uint8_t *)pArgs->target;
-+! targetCapacity=(int32_t)((uintptr_t)(pArgs->targetLimit)-(uintptr_t)(pArgs->target));
-+ offsets=pArgs->offsets;
-+
-+ /* get the state machine state */
-+***************
-+*** 1600,1606 ****
-+ /* update the source pointer and index */
-+ sourceIndex=(int32_t)(nextSourceIndex+(pArgs->source-source));
-+ source=pArgs->source;
-+! targetCapacity=(int32_t)((uint8_t *)pArgs->targetLimit-target);
-+
-+ /*
-+ * If the callback overflowed the target, then we need to
-+--- 1612,1618 ----
-+ /* update the source pointer and index */
-+ sourceIndex=(int32_t)(nextSourceIndex+(pArgs->source-source));
-+ source=pArgs->source;
-+! targetCapacity=(int32_t)((uintptr_t)(pArgs->targetLimit) - (uintptr_t)target);
-+
-+ /*
-+ * If the callback overflowed the target, then we need to
-+***************
-+*** 1652,1657 ****
-+--- 1664,1675 ----
-+ int code;
-+ int8_t window;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /* set up the local pointers */
-+ cnv=pArgs->converter;
-+ scsu=(SCSUData *)cnv->extraInfo;
-+***************
-+*** 1660,1666 ****
-+ source=pArgs->source;
-+ sourceLimit=pArgs->sourceLimit;
-+ target=(uint8_t *)pArgs->target;
-+! targetCapacity=(int32_t)(pArgs->targetLimit-pArgs->target);
-+
-+ /* get the state machine state */
-+ isSingleByteMode=scsu->fromUIsSingleByteMode;
-+--- 1678,1684 ----
-+ source=pArgs->source;
-+ sourceLimit=pArgs->sourceLimit;
-+ target=(uint8_t *)pArgs->target;
-+! targetCapacity=(int32_t)((uintptr_t)(pArgs->targetLimit) - (uintptr_t)(pArgs->target));
-+
-+ /* get the state machine state */
-+ isSingleByteMode=scsu->fromUIsSingleByteMode;
-+***************
-+*** 2081,2087 ****
-+ target=(uint8_t *)pArgs->target;
-+
-+ source=pArgs->source;
-+! targetCapacity=(int32_t)((uint8_t *)pArgs->targetLimit-target);
-+
-+ /*
-+ * If the callback overflowed the target, then we need to
-+--- 2099,2105 ----
-+ target=(uint8_t *)pArgs->target;
-+
-+ source=pArgs->source;
-+! targetCapacity=(int32_t)((uintptr_t)(pArgs->targetLimit) - (uintptr_t)target);
-+
-+ /*
-+ * If the callback overflowed the target, then we need to
-+*** build/icu/source/common/ucnv_u16.c 2003-04-21 04:06:04.000000000 +0200
-+--- misc/build/icu/source/common/ucnv_u16.c 2005-12-23 13:59:47.000000000 +0100
-+***************
-+*** 30,40 ****
-+ const uint8_t *source = (const uint8_t *)pArgs->source;
-+ UChar *target = pArgs->target;
-+ int32_t *offsets = pArgs->offsets;
-+! int32_t targetCapacity = pArgs->targetLimit - pArgs->target;
-+ int32_t length = (const uint8_t *)pArgs->sourceLimit - source;
-+ int32_t count;
-+ int32_t sourceIndex = 0;
-+
-+ if(length <= 0 && cnv->toUnicodeStatus == 0) {
-+ /* no input, nothing to do */
-+ return;
-+--- 30,46 ----
-+ const uint8_t *source = (const uint8_t *)pArgs->source;
-+ UChar *target = pArgs->target;
-+ int32_t *offsets = pArgs->offsets;
-+! int32_t targetCapacity = ((uintptr_t)(pArgs->targetLimit) - (uintptr_t)(pArgs->target))/sizeof(UChar);
-+ int32_t length = (const uint8_t *)pArgs->sourceLimit - source;
-+ int32_t count;
-+ int32_t sourceIndex = 0;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ if(length <= 0 && cnv->toUnicodeStatus == 0) {
-+ /* no input, nothing to do */
-+ return;
-+***************
-+*** 113,123 ****
-+ const UChar *source = pArgs->source;
-+ uint8_t *target = (uint8_t *)pArgs->target;
-+ int32_t *offsets = pArgs->offsets;
-+! int32_t targetCapacity = pArgs->targetLimit - pArgs->target;
-+ int32_t length = pArgs->sourceLimit - source;
-+ int32_t count;
-+ int32_t sourceIndex = 0;
-+
-+ if(length <= 0 && cnv->fromUnicodeStatus == 0) {
-+ /* no input, nothing to do */
-+ return;
-+--- 119,135 ----
-+ const UChar *source = pArgs->source;
-+ uint8_t *target = (uint8_t *)pArgs->target;
-+ int32_t *offsets = pArgs->offsets;
-+! int32_t targetCapacity = (uintptr_t)(pArgs->targetLimit) - (uintptr_t)(pArgs->target);
-+ int32_t length = pArgs->sourceLimit - source;
-+ int32_t count;
-+ int32_t sourceIndex = 0;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ if(length <= 0 && cnv->fromUnicodeStatus == 0) {
-+ /* no input, nothing to do */
-+ return;
-+***************
-+*** 194,204 ****
-+ UChar *target = pArgs->target;
-+ uint8_t *target8 = (uint8_t *)target; /* byte pointer to the target */
-+ int32_t *offsets = pArgs->offsets;
-+! int32_t targetCapacity = pArgs->targetLimit - pArgs->target;
-+ int32_t length = (const uint8_t *)pArgs->sourceLimit - source;
-+ int32_t count;
-+ int32_t sourceIndex = 0;
-+
-+ if(length <= 0 && cnv->toUnicodeStatus == 0) {
-+ /* no input, nothing to do */
-+ return;
-+--- 206,222 ----
-+ UChar *target = pArgs->target;
-+ uint8_t *target8 = (uint8_t *)target; /* byte pointer to the target */
-+ int32_t *offsets = pArgs->offsets;
-+! int32_t targetCapacity = ((uintptr_t)(pArgs->targetLimit) - (uintptr_t)(pArgs->target))/sizeof(UChar);
-+ int32_t length = (const uint8_t *)pArgs->sourceLimit - source;
-+ int32_t count;
-+ int32_t sourceIndex = 0;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ if(length <= 0 && cnv->toUnicodeStatus == 0) {
-+ /* no input, nothing to do */
-+ return;
-+***************
-+*** 286,296 ****
-+ const uint8_t *source8 = (const uint8_t *)source; /* byte pointer to the source */
-+ uint8_t *target = (uint8_t *)pArgs->target;
-+ int32_t *offsets = pArgs->offsets;
-+! int32_t targetCapacity = pArgs->targetLimit - pArgs->target;
-+ int32_t length = pArgs->sourceLimit - source;
-+ int32_t count;
-+ int32_t sourceIndex = 0;
-+
-+ if(length <= 0 && cnv->fromUnicodeStatus == 0) {
-+ /* no input, nothing to do */
-+ return;
-+--- 304,320 ----
-+ const uint8_t *source8 = (const uint8_t *)source; /* byte pointer to the source */
-+ uint8_t *target = (uint8_t *)pArgs->target;
-+ int32_t *offsets = pArgs->offsets;
-+! int32_t targetCapacity = (uintptr_t)(pArgs->targetLimit) - (uintptr_t)(pArgs->target);
-+ int32_t length = pArgs->sourceLimit - source;
-+ int32_t count;
-+ int32_t sourceIndex = 0;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ if(length <= 0 && cnv->fromUnicodeStatus == 0) {
-+ /* no input, nothing to do */
-+ return;
-+*** build/icu/source/common/ucnv_u32.c 2003-04-21 04:06:04.000000000 +0200
-+--- misc/build/icu/source/common/ucnv_u32.c 2005-12-23 13:48:01.000000000 +0100
-+***************
-+*** 104,111 ****
-+ unsigned char *toUBytes = args->converter->toUBytes;
-+ uint32_t ch, i;
-+
-+ /* UTF-8 returns here for only non-offset, this needs to change.*/
-+! if (args->converter->toUnicodeStatus && myTarget < targetLimit)
-+ {
-+ i = args->converter->toULength; /* restore # of bytes consumed */
-+
-+--- 104,117 ----
-+ unsigned char *toUBytes = args->converter->toUBytes;
-+ uint32_t ch, i;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /* UTF-8 returns here for only non-offset, this needs to change.*/
-+! if (args->converter->toUnicodeStatus && (uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ i = args->converter->toULength; /* restore # of bytes consumed */
-+
-+***************
-+*** 114,120 ****
-+ goto morebytes;
-+ }
-+
-+! while (mySource < sourceLimit && myTarget < targetLimit)
-+ {
-+ i = 0;
-+ ch = 0;
-+--- 120,126 ----
-+ goto morebytes;
-+ }
-+
-+! while (mySource < sourceLimit && (uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ i = 0;
-+ ch = 0;
-+***************
-+*** 160,166 ****
-+ ch -= HALF_BASE;
-+ *(myTarget++) = (UChar) ((ch >> HALF_SHIFT) + SURROGATE_HIGH_START);
-+ ch = (ch & HALF_MASK) + SURROGATE_LOW_START;
-+! if (myTarget < targetLimit)
-+ {
-+ *(myTarget++) = (UChar)ch;
-+ }
-+--- 166,172 ----
-+ ch -= HALF_BASE;
-+ *(myTarget++) = (UChar) ((ch >> HALF_SHIFT) + SURROGATE_HIGH_START);
-+ ch = (ch & HALF_MASK) + SURROGATE_LOW_START;
-+! if ((uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ *(myTarget++) = (UChar)ch;
-+ }
-+***************
-+*** 191,197 ****
-+ }
-+
-+ donefornow:
-+! if (mySource < sourceLimit && myTarget >= targetLimit && U_SUCCESS(*err))
-+ {
-+ /* End of target buffer */
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+--- 197,203 ----
-+ }
-+
-+ donefornow:
-+! if (mySource < sourceLimit && (uintptr_t)myTarget >= (uintptr_t)targetLimit && U_SUCCESS(*err))
-+ {
-+ /* End of target buffer */
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+***************
-+*** 214,220 ****
-+ uint32_t ch, i;
-+ int32_t offsetNum = 0;
-+
-+! if (args->converter->toUnicodeStatus && myTarget < targetLimit)
-+ {
-+ i = args->converter->toULength; /* restore # of bytes consumed */
-+
-+--- 220,232 ----
-+ uint32_t ch, i;
-+ int32_t offsetNum = 0;
-+
-+! /*
-+! * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-+! * to the same memory object; such poiter oprations are not defined and must be
-+! * done using the unsigned integer types
-+! */
-+!
-+! if (args->converter->toUnicodeStatus && (uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ i = args->converter->toULength; /* restore # of bytes consumed */
-+
-+***************
-+*** 223,229 ****
-+ goto morebytes;
-+ }
-+
-+! while (mySource < sourceLimit && myTarget < targetLimit)
-+ {
-+ i = 0;
-+ ch = 0;
-+--- 235,241 ----
-+ goto morebytes;
-+ }
-+
-+! while (mySource < sourceLimit && (uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ i = 0;
-+ ch = 0;
-+***************
-+*** 271,277 ****
-+ *(myTarget++) = (UChar) ((ch >> HALF_SHIFT) + SURROGATE_HIGH_START);
-+ *myOffsets++ = offsetNum;
-+ ch = (ch & HALF_MASK) + SURROGATE_LOW_START;
-+! if (myTarget < targetLimit)
-+ {
-+ *(myTarget++) = (UChar)ch;
-+ *(myOffsets++) = offsetNum;
-+--- 283,289 ----
-+ *(myTarget++) = (UChar) ((ch >> HALF_SHIFT) + SURROGATE_HIGH_START);
-+ *myOffsets++ = offsetNum;
-+ ch = (ch & HALF_MASK) + SURROGATE_LOW_START;
-+! if ((uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ *(myTarget++) = (UChar)ch;
-+ *(myOffsets++) = offsetNum;
-+***************
-+*** 306,312 ****
-+ }
-+
-+ donefornow:
-+! if (mySource < sourceLimit && myTarget >= targetLimit && U_SUCCESS(*err))
-+ {
-+ /* End of target buffer */
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+--- 318,324 ----
-+ }
-+
-+ donefornow:
-+! if (mySource < sourceLimit && (uintptr_t)myTarget >= (uintptr_t)targetLimit && U_SUCCESS(*err))
-+ {
-+ /* End of target buffer */
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+***************
-+*** 331,336 ****
-+--- 343,354 ----
-+
-+ temp[0] = 0;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ if (args->converter->fromUnicodeStatus)
-+ {
-+ ch = args->converter->fromUnicodeStatus;
-+***************
-+*** 338,344 ****
-+ goto lowsurogate;
-+ }
-+
-+! while (mySource < sourceLimit && myTarget < targetLimit)
-+ {
-+ ch = *(mySource++);
-+
-+--- 356,362 ----
-+ goto lowsurogate;
-+ }
-+
-+! while (mySource < sourceLimit && (uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ ch = *(mySource++);
-+
-+***************
-+*** 369,375 ****
-+
-+ for (indexToWrite = 0; indexToWrite <= sizeof(uint32_t) - 1; indexToWrite++)
-+ {
-+! if (myTarget < targetLimit)
-+ {
-+ *(myTarget++) = temp[indexToWrite];
-+ }
-+--- 387,393 ----
-+
-+ for (indexToWrite = 0; indexToWrite <= sizeof(uint32_t) - 1; indexToWrite++)
-+ {
-+! if ((uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ *(myTarget++) = temp[indexToWrite];
-+ }
-+***************
-+*** 381,387 ****
-+ }
-+ }
-+
-+! if (mySource < sourceLimit && myTarget >= targetLimit && U_SUCCESS(*err))
-+ {
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ }
-+--- 399,405 ----
-+ }
-+ }
-+
-+! if (mySource < sourceLimit && (uintptr_t)myTarget >= (uintptr_t)targetLimit && U_SUCCESS(*err))
-+ {
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ }
-+***************
-+*** 406,411 ****
-+--- 424,435 ----
-+
-+ temp[0] = 0;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ if (args->converter->fromUnicodeStatus)
-+ {
-+ ch = args->converter->fromUnicodeStatus;
-+***************
-+*** 413,419 ****
-+ goto lowsurogate;
-+ }
-+
-+! while (mySource < sourceLimit && myTarget < targetLimit)
-+ {
-+ ch = *(mySource++);
-+
-+--- 437,443 ----
-+ goto lowsurogate;
-+ }
-+
-+! while (mySource < sourceLimit && (uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ ch = *(mySource++);
-+
-+***************
-+*** 444,450 ****
-+
-+ for (indexToWrite = 0; indexToWrite <= sizeof(uint32_t) - 1; indexToWrite++)
-+ {
-+! if (myTarget < targetLimit)
-+ {
-+ *(myTarget++) = temp[indexToWrite];
-+ *(myOffsets++) = offsetNum;
-+--- 468,474 ----
-+
-+ for (indexToWrite = 0; indexToWrite <= sizeof(uint32_t) - 1; indexToWrite++)
-+ {
-+! if ((uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ *(myTarget++) = temp[indexToWrite];
-+ *(myOffsets++) = offsetNum;
-+***************
-+*** 458,464 ****
-+ offsetNum++;
-+ }
-+
-+! if (mySource < sourceLimit && myTarget >= targetLimit && U_SUCCESS(*err))
-+ {
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ }
-+--- 482,488 ----
-+ offsetNum++;
-+ }
-+
-+! if (mySource < sourceLimit && (uintptr_t)myTarget >= (uintptr_t)targetLimit && U_SUCCESS(*err))
-+ {
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ }
-+***************
-+*** 478,483 ****
-+--- 502,513 ----
-+ UChar32 myUChar;
-+ int32_t length;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ while (args->source < args->sourceLimit)
-+ {
-+ if (args->source + 4 > args->sourceLimit)
-+***************
-+*** 588,595 ****
-+ unsigned char *toUBytes = args->converter->toUBytes;
-+ uint32_t ch, i;
-+
-+ /* UTF-8 returns here for only non-offset, this needs to change.*/
-+! if (args->converter->toUnicodeStatus && myTarget < targetLimit)
-+ {
-+ i = args->converter->toULength; /* restore # of bytes consumed */
-+
-+--- 618,631 ----
-+ unsigned char *toUBytes = args->converter->toUBytes;
-+ uint32_t ch, i;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /* UTF-8 returns here for only non-offset, this needs to change.*/
-+! if (args->converter->toUnicodeStatus && (uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ i = args->converter->toULength; /* restore # of bytes consumed */
-+
-+***************
-+*** 599,605 ****
-+ goto morebytes;
-+ }
-+
-+! while (mySource < sourceLimit && myTarget < targetLimit)
-+ {
-+ i = 0;
-+ ch = 0;
-+--- 635,641 ----
-+ goto morebytes;
-+ }
-+
-+! while (mySource < sourceLimit && (uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ i = 0;
-+ ch = 0;
-+***************
-+*** 645,651 ****
-+ ch -= HALF_BASE;
-+ *(myTarget++) = (UChar) ((ch >> HALF_SHIFT) + SURROGATE_HIGH_START);
-+ ch = (ch & HALF_MASK) + SURROGATE_LOW_START;
-+! if (myTarget < targetLimit)
-+ {
-+ *(myTarget++) = (UChar)ch;
-+ }
-+--- 681,687 ----
-+ ch -= HALF_BASE;
-+ *(myTarget++) = (UChar) ((ch >> HALF_SHIFT) + SURROGATE_HIGH_START);
-+ ch = (ch & HALF_MASK) + SURROGATE_LOW_START;
-+! if ((uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ *(myTarget++) = (UChar)ch;
-+ }
-+***************
-+*** 676,682 ****
-+ }
-+
-+ donefornow:
-+! if (mySource < sourceLimit && myTarget >= targetLimit && U_SUCCESS(*err))
-+ {
-+ /* End of target buffer */
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+--- 712,718 ----
-+ }
-+
-+ donefornow:
-+! if (mySource < sourceLimit && (uintptr_t)myTarget >= (uintptr_t)targetLimit && U_SUCCESS(*err))
-+ {
-+ /* End of target buffer */
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+***************
-+*** 699,706 ****
-+ uint32_t ch, i;
-+ int32_t offsetNum = 0;
-+
-+ /* UTF-8 returns here for only non-offset, this needs to change.*/
-+! if (args->converter->toUnicodeStatus && myTarget < targetLimit)
-+ {
-+ i = args->converter->toULength; /* restore # of bytes consumed */
-+
-+--- 735,748 ----
-+ uint32_t ch, i;
-+ int32_t offsetNum = 0;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /* UTF-8 returns here for only non-offset, this needs to change.*/
-+! if (args->converter->toUnicodeStatus && (uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ i = args->converter->toULength; /* restore # of bytes consumed */
-+
-+***************
-+*** 710,716 ****
-+ goto morebytes;
-+ }
-+
-+! while (mySource < sourceLimit && myTarget < targetLimit)
-+ {
-+ i = 0;
-+ ch = 0;
-+--- 752,758 ----
-+ goto morebytes;
-+ }
-+
-+! while (mySource < sourceLimit && (uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ i = 0;
-+ ch = 0;
-+***************
-+*** 758,764 ****
-+ *(myTarget++) = (UChar) ((ch >> HALF_SHIFT) + SURROGATE_HIGH_START);
-+ *(myOffsets++) = offsetNum;
-+ ch = (ch & HALF_MASK) + SURROGATE_LOW_START;
-+! if (myTarget < targetLimit)
-+ {
-+ *(myTarget++) = (UChar)ch;
-+ *(myOffsets++) = offsetNum;
-+--- 800,806 ----
-+ *(myTarget++) = (UChar) ((ch >> HALF_SHIFT) + SURROGATE_HIGH_START);
-+ *(myOffsets++) = offsetNum;
-+ ch = (ch & HALF_MASK) + SURROGATE_LOW_START;
-+! if ((uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ *(myTarget++) = (UChar)ch;
-+ *(myOffsets++) = offsetNum;
-+***************
-+*** 793,799 ****
-+ }
-+
-+ donefornow:
-+! if (mySource < sourceLimit && myTarget >= targetLimit && U_SUCCESS(*err))
-+ {
-+ /* End of target buffer */
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+--- 835,841 ----
-+ }
-+
-+ donefornow:
-+! if (mySource < sourceLimit && (uintptr_t)myTarget >= (uintptr_t)targetLimit && U_SUCCESS(*err))
-+ {
-+ /* End of target buffer */
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+***************
-+*** 818,823 ****
-+--- 860,871 ----
-+
-+ temp[3] = 0;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ if (args->converter->fromUnicodeStatus)
-+ {
-+ ch = args->converter->fromUnicodeStatus;
-+***************
-+*** 825,831 ****
-+ goto lowsurogate;
-+ }
-+
-+! while (mySource < sourceLimit && myTarget < targetLimit)
-+ {
-+ ch = *(mySource++);
-+
-+--- 873,879 ----
-+ goto lowsurogate;
-+ }
-+
-+! while (mySource < sourceLimit && (uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ ch = *(mySource++);
-+
-+***************
-+*** 856,862 ****
-+
-+ for (indexToWrite = 0; indexToWrite <= sizeof(uint32_t) - 1; indexToWrite++)
-+ {
-+! if (myTarget < targetLimit)
-+ {
-+ *(myTarget++) = temp[indexToWrite];
-+ }
-+--- 904,910 ----
-+
-+ for (indexToWrite = 0; indexToWrite <= sizeof(uint32_t) - 1; indexToWrite++)
-+ {
-+! if ((uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ *(myTarget++) = temp[indexToWrite];
-+ }
-+***************
-+*** 868,874 ****
-+ }
-+ }
-+
-+! if (mySource < sourceLimit && myTarget >= targetLimit && U_SUCCESS(*err))
-+ {
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ }
-+--- 916,922 ----
-+ }
-+ }
-+
-+! if (mySource < sourceLimit && (uintptr_t)myTarget >= (uintptr_t)targetLimit && U_SUCCESS(*err))
-+ {
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ }
-+***************
-+*** 893,898 ****
-+--- 941,952 ----
-+
-+ temp[3] = 0;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ if (args->converter->fromUnicodeStatus)
-+ {
-+ ch = args->converter->fromUnicodeStatus;
-+***************
-+*** 900,906 ****
-+ goto lowsurogate;
-+ }
-+
-+! while (mySource < sourceLimit && myTarget < targetLimit)
-+ {
-+ ch = *(mySource++);
-+
-+--- 954,960 ----
-+ goto lowsurogate;
-+ }
-+
-+! while (mySource < sourceLimit && (uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ ch = *(mySource++);
-+
-+***************
-+*** 931,937 ****
-+
-+ for (indexToWrite = 0; indexToWrite <= sizeof(uint32_t) - 1; indexToWrite++)
-+ {
-+! if (myTarget < targetLimit)
-+ {
-+ *(myTarget++) = temp[indexToWrite];
-+ *(myOffsets++) = offsetNum;
-+--- 985,991 ----
-+
-+ for (indexToWrite = 0; indexToWrite <= sizeof(uint32_t) - 1; indexToWrite++)
-+ {
-+! if ((uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ *(myTarget++) = temp[indexToWrite];
-+ *(myOffsets++) = offsetNum;
-+***************
-+*** 945,951 ****
-+ offsetNum++;
-+ }
-+
-+! if (mySource < sourceLimit && myTarget >= targetLimit && U_SUCCESS(*err))
-+ {
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ }
-+--- 999,1005 ----
-+ offsetNum++;
-+ }
-+
-+! if (mySource < sourceLimit && (uintptr_t)myTarget >= (uintptr_t)targetLimit && U_SUCCESS(*err))
-+ {
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ }
-+***************
-+*** 965,970 ****
-+--- 1019,1030 ----
-+ UChar32 myUChar;
-+ int32_t length;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ while (args->source < args->sourceLimit)
-+ {
-+ if (args->source + 4 > args->sourceLimit)
-+*** build/icu/source/common/ucnv_u7.c 2003-06-03 00:19:24.000000000 +0200
-+--- misc/build/icu/source/common/ucnv_u7.c 2005-12-23 14:04:48.000000000 +0100
-+***************
-+*** 225,230 ****
-+--- 225,237 ----
-+ int32_t sourceIndex, nextSourceIndex;
-+
-+ uint8_t b;
-++
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /* set up the local pointers */
-+ cnv=pArgs->converter;
-+
-+***************
-+*** 260,266 ****
-+ */
-+ byteIndex=0;
-+ length=sourceLimit-source;
-+! targetCapacity=targetLimit-target;
-+ if(length>targetCapacity) {
-+ length=targetCapacity;
-+ }
-+--- 267,273 ----
-+ */
-+ byteIndex=0;
-+ length=sourceLimit-source;
-+! targetCapacity=((uintptr_t)targetLimit-(uintptr_t)target)/sizeof(UChar);
-+ if(length>targetCapacity) {
-+ length=targetCapacity;
-+ }
-+***************
-+*** 289,295 ****
-+ }
-+ --length;
-+ }
-+! if(source<sourceLimit && target>=targetLimit) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ }
-+--- 296,302 ----
-+ }
-+ --length;
-+ }
-+! if(source<sourceLimit && (uintptr_t)target>=(uintptr_t)targetLimit) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ }
-+***************
-+*** 306,312 ****
-+ * Note that in 2 out of 3 cases, UChars overlap within a base64 byte.
-+ */
-+ while(source<sourceLimit) {
-+! if(target<targetLimit) {
-+ bytes[byteIndex++]=b=*source++;
-+ ++nextSourceIndex;
-+ if(b>=126) {
-+--- 313,319 ----
-+ * Note that in 2 out of 3 cases, UChars overlap within a base64 byte.
-+ */
-+ while(source<sourceLimit) {
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ bytes[byteIndex++]=b=*source++;
-+ ++nextSourceIndex;
-+ if(b>=126) {
-+***************
-+*** 518,523 ****
-+--- 525,536 ----
-+ int8_t base64Counter;
-+ UBool inDirectMode;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /* set up the local pointers */
-+ cnv=pArgs->converter;
-+
-+***************
-+*** 543,549 ****
-+ if(inDirectMode) {
-+ directMode:
-+ length=sourceLimit-source;
-+! targetCapacity=targetLimit-target;
-+ if(length>targetCapacity) {
-+ length=targetCapacity;
-+ }
-+--- 556,562 ----
-+ if(inDirectMode) {
-+ directMode:
-+ length=sourceLimit-source;
-+! targetCapacity=(uintptr_t)targetLimit-(uintptr_t)target;
-+ if(length>targetCapacity) {
-+ length=targetCapacity;
-+ }
-+***************
-+*** 559,565 ****
-+ } else if(c==PLUS) {
-+ /* output +- for + */
-+ *target++=PLUS;
-+! if(target<targetLimit) {
-+ *target++=MINUS;
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+--- 572,578 ----
-+ } else if(c==PLUS) {
-+ /* output +- for + */
-+ *target++=PLUS;
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ *target++=MINUS;
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+***************
-+*** 589,602 ****
-+ }
-+ --length;
-+ }
-+! if(source<sourceLimit && target>=targetLimit) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ }
-+ } else {
-+ unicodeMode:
-+ while(source<sourceLimit) {
-+! if(target<targetLimit) {
-+ c=*source++;
-+ if(c<=127 && encodeDirectly[c]) {
-+ /* encode directly */
-+--- 602,615 ----
-+ }
-+ --length;
-+ }
-+! if(source<sourceLimit && (uintptr_t)target>=(uintptr_t)targetLimit) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ }
-+ } else {
-+ unicodeMode:
-+ while(source<sourceLimit) {
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ c=*source++;
-+ if(c<=127 && encodeDirectly[c]) {
-+ /* encode directly */
-+***************
-+*** 615,621 ****
-+ }
-+ if(fromBase64[c]!=-1) {
-+ /* need to terminate with a minus */
-+! if(target<targetLimit) {
-+ *target++=MINUS;
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex-1;
-+--- 628,634 ----
-+ }
-+ if(fromBase64[c]!=-1) {
-+ /* need to terminate with a minus */
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ *target++=MINUS;
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex-1;
-+***************
-+*** 641,647 ****
-+ switch(base64Counter) {
-+ case 0:
-+ *target++=toBase64[c>>10];
-+! if(target<targetLimit) {
-+ *target++=toBase64[(c>>4)&0x3f];
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+--- 654,660 ----
-+ switch(base64Counter) {
-+ case 0:
-+ *target++=toBase64[c>>10];
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ *target++=toBase64[(c>>4)&0x3f];
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+***************
-+*** 660,668 ****
-+ break;
-+ case 1:
-+ *target++=toBase64[bits|(c>>14)];
-+! if(target<targetLimit) {
-+ *target++=toBase64[(c>>8)&0x3f];
-+! if(target<targetLimit) {
-+ *target++=toBase64[(c>>2)&0x3f];
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+--- 673,681 ----
-+ break;
-+ case 1:
-+ *target++=toBase64[bits|(c>>14)];
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ *target++=toBase64[(c>>8)&0x3f];
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ *target++=toBase64[(c>>2)&0x3f];
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+***************
-+*** 692,700 ****
-+ break;
-+ case 2:
-+ *target++=toBase64[bits|(c>>12)];
-+! if(target<targetLimit) {
-+ *target++=toBase64[(c>>6)&0x3f];
-+! if(target<targetLimit) {
-+ *target++=toBase64[c&0x3f];
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+--- 705,713 ----
-+ break;
-+ case 2:
-+ *target++=toBase64[bits|(c>>12)];
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ *target++=toBase64[(c>>6)&0x3f];
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ *target++=toBase64[c&0x3f];
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+***************
-+*** 738,744 ****
-+ if(pArgs->flush && source>=sourceLimit) {
-+ /* flush remaining bits to the target */
-+ if(!inDirectMode && base64Counter!=0) {
-+! if(target<targetLimit) {
-+ *target++=toBase64[bits];
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex-1;
-+--- 751,757 ----
-+ if(pArgs->flush && source>=sourceLimit) {
-+ /* flush remaining bits to the target */
-+ if(!inDirectMode && base64Counter!=0) {
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ *target++=toBase64[bits];
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex-1;
-+***************
-+*** 945,950 ****
-+--- 958,969 ----
-+ UChar c;
-+ uint8_t b;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /* set up the local pointers */
-+ cnv=pArgs->converter;
-+
-+***************
-+*** 979,985 ****
-+ */
-+ byteIndex=0;
-+ length=sourceLimit-source;
-+! targetCapacity=targetLimit-target;
-+ if(length>targetCapacity) {
-+ length=targetCapacity;
-+ }
-+--- 998,1004 ----
-+ */
-+ byteIndex=0;
-+ length=sourceLimit-source;
-+! targetCapacity=((uintptr_t)targetLimit-(uintptr_t)target)/sizeof(UChar);
-+ if(length>targetCapacity) {
-+ length=targetCapacity;
-+ }
-+***************
-+*** 1008,1014 ****
-+ }
-+ --length;
-+ }
-+! if(source<sourceLimit && target>=targetLimit) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ }
-+--- 1027,1033 ----
-+ }
-+ --length;
-+ }
-+! if(source<sourceLimit && (uintptr_t)target>=(uintptr_t)targetLimit) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ }
-+***************
-+*** 1026,1032 ****
-+ * Note that in 2 out of 3 cases, UChars overlap within a base64 byte.
-+ */
-+ while(source<sourceLimit) {
-+! if(target<targetLimit) {
-+ bytes[byteIndex++]=b=*source++;
-+ ++nextSourceIndex;
-+ if(b>0x7e) {
-+--- 1045,1051 ----
-+ * Note that in 2 out of 3 cases, UChars overlap within a base64 byte.
-+ */
-+ while(source<sourceLimit) {
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ bytes[byteIndex++]=b=*source++;
-+ ++nextSourceIndex;
-+ if(b>0x7e) {
-+***************
-+*** 1241,1246 ****
-+--- 1260,1271 ----
-+ int8_t base64Counter;
-+ UBool inDirectMode;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /* set up the local pointers */
-+ cnv=pArgs->converter;
-+
-+***************
-+*** 1265,1271 ****
-+ if(inDirectMode) {
-+ directMode:
-+ length=sourceLimit-source;
-+! targetCapacity=targetLimit-target;
-+ if(length>targetCapacity) {
-+ length=targetCapacity;
-+ }
-+--- 1290,1296 ----
-+ if(inDirectMode) {
-+ directMode:
-+ length=sourceLimit-source;
-+! targetCapacity=(uintptr_t)targetLimit-(uintptr_t)target;
-+ if(length>targetCapacity) {
-+ length=targetCapacity;
-+ }
-+***************
-+*** 1281,1287 ****
-+ } else if(c==AMPERSAND) {
-+ /* output &- for & */
-+ *target++=AMPERSAND;
-+! if(target<targetLimit) {
-+ *target++=MINUS;
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+--- 1306,1312 ----
-+ } else if(c==AMPERSAND) {
-+ /* output &- for & */
-+ *target++=AMPERSAND;
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ *target++=MINUS;
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex;
-+***************
-+*** 1311,1324 ****
-+ }
-+ --length;
-+ }
-+! if(source<sourceLimit && target>=targetLimit) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ }
-+ } else {
-+ unicodeMode:
-+ while(source<sourceLimit) {
-+! if(target<targetLimit) {
-+ c=*source++;
-+ if(isLegalIMAP(c)) {
-+ /* encode directly */
-+--- 1336,1349 ----
-+ }
-+ --length;
-+ }
-+! if(source<sourceLimit && (uintptr_t)target>=(uintptr_t)targetLimit) {
-+ /* target is full */
-+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
-+ }
-+ } else {
-+ unicodeMode:
-+ while(source<sourceLimit) {
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ c=*source++;
-+ if(isLegalIMAP(c)) {
-+ /* encode directly */
-+***************
-+*** 1336,1342 ****
-+ }
-+ }
-+ /* need to terminate with a minus */
-+! if(target<targetLimit) {
-+ *target++=MINUS;
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex-1;
-+--- 1361,1367 ----
-+ }
-+ }
-+ /* need to terminate with a minus */
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ *target++=MINUS;
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex-1;
-+***************
-+*** 1362,1368 ****
-+ case 0:
-+ b=(uint8_t)(c>>10);
-+ *target++=TO_BASE64_IMAP(b);
-+! if(target<targetLimit) {
-+ b=(uint8_t)((c>>4)&0x3f);
-+ *target++=TO_BASE64_IMAP(b);
-+ if(offsets!=NULL) {
-+--- 1387,1393 ----
-+ case 0:
-+ b=(uint8_t)(c>>10);
-+ *target++=TO_BASE64_IMAP(b);
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ b=(uint8_t)((c>>4)&0x3f);
-+ *target++=TO_BASE64_IMAP(b);
-+ if(offsets!=NULL) {
-+***************
-+*** 1384,1393 ****
-+ case 1:
-+ b=(uint8_t)(bits|(c>>14));
-+ *target++=TO_BASE64_IMAP(b);
-+! if(target<targetLimit) {
-+ b=(uint8_t)((c>>8)&0x3f);
-+ *target++=TO_BASE64_IMAP(b);
-+! if(target<targetLimit) {
-+ b=(uint8_t)((c>>2)&0x3f);
-+ *target++=TO_BASE64_IMAP(b);
-+ if(offsets!=NULL) {
-+--- 1409,1418 ----
-+ case 1:
-+ b=(uint8_t)(bits|(c>>14));
-+ *target++=TO_BASE64_IMAP(b);
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ b=(uint8_t)((c>>8)&0x3f);
-+ *target++=TO_BASE64_IMAP(b);
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ b=(uint8_t)((c>>2)&0x3f);
-+ *target++=TO_BASE64_IMAP(b);
-+ if(offsets!=NULL) {
-+***************
-+*** 1422,1431 ****
-+ case 2:
-+ b=(uint8_t)(bits|(c>>12));
-+ *target++=TO_BASE64_IMAP(b);
-+! if(target<targetLimit) {
-+ b=(uint8_t)((c>>6)&0x3f);
-+ *target++=TO_BASE64_IMAP(b);
-+! if(target<targetLimit) {
-+ b=(uint8_t)(c&0x3f);
-+ *target++=TO_BASE64_IMAP(b);
-+ if(offsets!=NULL) {
-+--- 1447,1456 ----
-+ case 2:
-+ b=(uint8_t)(bits|(c>>12));
-+ *target++=TO_BASE64_IMAP(b);
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ b=(uint8_t)((c>>6)&0x3f);
-+ *target++=TO_BASE64_IMAP(b);
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ b=(uint8_t)(c&0x3f);
-+ *target++=TO_BASE64_IMAP(b);
-+ if(offsets!=NULL) {
-+***************
-+*** 1474,1480 ****
-+ /* flush remaining bits to the target */
-+ if(!inDirectMode) {
-+ if(base64Counter!=0) {
-+! if(target<targetLimit) {
-+ *target++=TO_BASE64_IMAP(bits);
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex-1;
-+--- 1499,1505 ----
-+ /* flush remaining bits to the target */
-+ if(!inDirectMode) {
-+ if(base64Counter!=0) {
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ *target++=TO_BASE64_IMAP(bits);
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex-1;
-+***************
-+*** 1485,1491 ****
-+ }
-+ }
-+ /* need to terminate with a minus */
-+! if(target<targetLimit) {
-+ *target++=MINUS;
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex-1;
-+--- 1510,1516 ----
-+ }
-+ }
-+ /* need to terminate with a minus */
-+! if((uintptr_t)target<(uintptr_t)targetLimit) {
-+ *target++=MINUS;
-+ if(offsets!=NULL) {
-+ *offsets++=sourceIndex-1;
-+*** build/icu/source/common/ucnv_u8.c 2003-06-03 00:19:24.000000000 +0200
-+--- misc/build/icu/source/common/ucnv_u8.c 2005-12-23 13:51:03.000000000 +0100
-+***************
-+*** 156,165 ****
-+ UBool isCESU8 = (UBool)(args->converter->sharedData == &_CESU8Data);
-+ uint32_t ch, ch2 = 0;
-+ int32_t i, inBytes;
-+
-+ /* Restore size of current sequence */
-+ start:
-+! if (args->converter->toUnicodeStatus && myTarget < targetLimit)
-+ {
-+ inBytes = args->converter->mode; /* restore # of bytes to consume */
-+ i = args->converter->toULength; /* restore # of bytes consumed */
-+--- 156,171 ----
-+ UBool isCESU8 = (UBool)(args->converter->sharedData == &_CESU8Data);
-+ uint32_t ch, ch2 = 0;
-+ int32_t i, inBytes;
-++
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-+
-+ /* Restore size of current sequence */
-+ start:
-+! if (args->converter->toUnicodeStatus && (uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ inBytes = args->converter->mode; /* restore # of bytes to consume */
-+ i = args->converter->toULength; /* restore # of bytes consumed */
-+***************
-+*** 170,176 ****
-+ }
-+
-+
-+! while (mySource < sourceLimit && myTarget < targetLimit)
-+ {
-+ ch = *(mySource++);
-+ if (ch < 0x80) /* Simple case */
-+--- 176,182 ----
-+ }
-+
-+
-+! while (mySource < sourceLimit && (uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ ch = *(mySource++);
-+ if (ch < 0x80) /* Simple case */
-+***************
-+*** 247,253 ****
-+ ch -= HALF_BASE;
-+ *(myTarget++) = (UChar) ((ch >> HALF_SHIFT) + SURROGATE_HIGH_START);
-+ ch = (ch & HALF_MASK) + SURROGATE_LOW_START;
-+! if (myTarget < targetLimit)
-+ {
-+ *(myTarget++) = (UChar)ch;
-+ }
-+--- 253,259 ----
-+ ch -= HALF_BASE;
-+ *(myTarget++) = (UChar) ((ch >> HALF_SHIFT) + SURROGATE_HIGH_START);
-+ ch = (ch & HALF_MASK) + SURROGATE_LOW_START;
-+! if ((uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ *(myTarget++) = (UChar)ch;
-+ }
-+***************
-+*** 284,290 ****
-+ }
-+
-+ donefornow:
-+! if (mySource < sourceLimit && myTarget >= targetLimit && U_SUCCESS(*err))
-+ {
-+ /* End of target buffer */
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+--- 290,296 ----
-+ }
-+
-+ donefornow:
-+! if (mySource < sourceLimit && (uintptr_t)myTarget >= (uintptr_t)targetLimit && U_SUCCESS(*err))
-+ {
-+ /* End of target buffer */
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+***************
-+*** 308,316 ****
-+ uint32_t ch, ch2 = 0;
-+ int32_t i, inBytes;
-+
-+ /* Restore size of current sequence */
-+ start:
-+! if (args->converter->toUnicodeStatus && myTarget < targetLimit)
-+ {
-+ inBytes = args->converter->mode; /* restore # of bytes to consume */
-+ i = args->converter->toULength; /* restore # of bytes consumed */
-+--- 314,328 ----
-+ uint32_t ch, ch2 = 0;
-+ int32_t i, inBytes;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /* Restore size of current sequence */
-+ start:
-+! if (args->converter->toUnicodeStatus && (uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ inBytes = args->converter->mode; /* restore # of bytes to consume */
-+ i = args->converter->toULength; /* restore # of bytes consumed */
-+***************
-+*** 320,326 ****
-+ goto morebytes;
-+ }
-+
-+! while (mySource < sourceLimit && myTarget < targetLimit)
-+ {
-+ ch = *(mySource++);
-+ if (ch < 0x80) /* Simple case */
-+--- 332,338 ----
-+ goto morebytes;
-+ }
-+
-+! while (mySource < sourceLimit && (uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ ch = *(mySource++);
-+ if (ch < 0x80) /* Simple case */
-+***************
-+*** 400,406 ****
-+ *(myTarget++) = (UChar) ((ch >> HALF_SHIFT) + SURROGATE_HIGH_START);
-+ *(myOffsets++) = offsetNum;
-+ ch = (ch & HALF_MASK) + SURROGATE_LOW_START;
-+! if (myTarget < targetLimit)
-+ {
-+ *(myTarget++) = (UChar)ch;
-+ *(myOffsets++) = offsetNum;
-+--- 412,418 ----
-+ *(myTarget++) = (UChar) ((ch >> HALF_SHIFT) + SURROGATE_HIGH_START);
-+ *(myOffsets++) = offsetNum;
-+ ch = (ch & HALF_MASK) + SURROGATE_LOW_START;
-+! if ((uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ *(myTarget++) = (UChar)ch;
-+ *(myOffsets++) = offsetNum;
-+***************
-+*** 441,447 ****
-+ }
-+
-+ donefornow:
-+! if (mySource < sourceLimit && myTarget >= targetLimit && U_SUCCESS(*err))
-+ { /* End of target buffer */
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ }
-+--- 453,459 ----
-+ }
-+
-+ donefornow:
-+! if (mySource < sourceLimit && (uintptr_t)myTarget >= (uintptr_t)targetLimit && U_SUCCESS(*err))
-+ { /* End of target buffer */
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ }
-+***************
-+*** 464,477 ****
-+ int16_t indexToWrite;
-+ char temp[4];
-+
-+! if (cnv->fromUSurrogateLead && myTarget < targetLimit)
-+ {
-+ ch = cnv->fromUSurrogateLead;
-+ cnv->fromUSurrogateLead = 0;
-+ goto lowsurrogate;
-+ }
-+
-+! while (mySource < sourceLimit && myTarget < targetLimit)
-+ {
-+ ch = *(mySource++);
-+
-+--- 476,495 ----
-+ int16_t indexToWrite;
-+ char temp[4];
-+
-+! /*
-+! * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-+! * to the same memory object; such poiter oprations are not defined and must be
-+! * done using the unsigned integer types
-+! */
-+!
-+! if (cnv->fromUSurrogateLead && (uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ ch = cnv->fromUSurrogateLead;
-+ cnv->fromUSurrogateLead = 0;
-+ goto lowsurrogate;
-+ }
-+
-+! while (mySource < sourceLimit && (uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ ch = *(mySource++);
-+
-+***************
-+*** 482,488 ****
-+ else if (ch < 0x800) /* Double byte */
-+ {
-+ *(myTarget++) = (char) ((ch >> 6) | 0xc0);
-+! if (myTarget < targetLimit)
-+ {
-+ *(myTarget++) = (char) ((ch & 0x3f) | 0x80);
-+ }
-+--- 500,506 ----
-+ else if (ch < 0x800) /* Double byte */
-+ {
-+ *(myTarget++) = (char) ((ch >> 6) | 0xc0);
-+! if ((uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ *(myTarget++) = (char) ((ch & 0x3f) | 0x80);
-+ }
-+***************
-+*** 587,593 ****
-+
-+ for (; indexToWrite >= 0; indexToWrite--)
-+ {
-+! if (myTarget < targetLimit)
-+ {
-+ *(myTarget++) = temp[indexToWrite];
-+ }
-+--- 605,611 ----
-+
-+ for (; indexToWrite >= 0; indexToWrite--)
-+ {
-+! if ((uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ *(myTarget++) = temp[indexToWrite];
-+ }
-+***************
-+*** 600,606 ****
-+ }
-+ }
-+
-+! if (mySource < sourceLimit && myTarget >= targetLimit && U_SUCCESS(*err))
-+ {
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ }
-+--- 618,624 ----
-+ }
-+ }
-+
-+! if (mySource < sourceLimit && (uintptr_t)myTarget >= (uintptr_t)targetLimit && U_SUCCESS(*err))
-+ {
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ }
-+***************
-+*** 629,635 ****
-+ int16_t indexToWrite;
-+ char temp[4];
-+
-+! if (cnv->fromUSurrogateLead && myTarget < targetLimit)
-+ {
-+ ch = cnv->fromUSurrogateLead;
-+ cnv->fromUSurrogateLead = 0;
-+--- 647,659 ----
-+ int16_t indexToWrite;
-+ char temp[4];
-+
-+! /*
-+! * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-+! * to the same memory object; such poiter oprations are not defined and must be
-+! * done using the unsigned integer types
-+! */
-+!
-+! if (cnv->fromUSurrogateLead && (uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ ch = cnv->fromUSurrogateLead;
-+ cnv->fromUSurrogateLead = 0;
-+***************
-+*** 640,646 ****
-+ offsetNum = 0;
-+ }
-+
-+! while (mySource < sourceLimit && myTarget < targetLimit)
-+ {
-+ ch = *(mySource++);
-+
-+--- 664,670 ----
-+ offsetNum = 0;
-+ }
-+
-+! while (mySource < sourceLimit && (uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ ch = *(mySource++);
-+
-+***************
-+*** 653,659 ****
-+ {
-+ *(myOffsets++) = offsetNum;
-+ *(myTarget++) = (char) ((ch >> 6) | 0xc0);
-+! if (myTarget < targetLimit)
-+ {
-+ *(myOffsets++) = offsetNum++;
-+ *(myTarget++) = (char) ((ch & 0x3f) | 0x80);
-+--- 677,683 ----
-+ {
-+ *(myOffsets++) = offsetNum;
-+ *(myTarget++) = (char) ((ch >> 6) | 0xc0);
-+! if ((uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ *(myOffsets++) = offsetNum++;
-+ *(myTarget++) = (char) ((ch & 0x3f) | 0x80);
-+***************
-+*** 768,774 ****
-+
-+ for (; indexToWrite >= 0; indexToWrite--)
-+ {
-+! if (myTarget < targetLimit)
-+ {
-+ *(myOffsets++) = offsetNum;
-+ *(myTarget++) = temp[indexToWrite];
-+--- 792,798 ----
-+
-+ for (; indexToWrite >= 0; indexToWrite--)
-+ {
-+! if ((uintptr_t)myTarget < (uintptr_t)targetLimit)
-+ {
-+ *(myOffsets++) = offsetNum;
-+ *(myTarget++) = temp[indexToWrite];
-+***************
-+*** 783,789 ****
-+ }
-+ }
-+
-+! if (mySource < sourceLimit && myTarget >= targetLimit && U_SUCCESS(*err))
-+ {
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ }
-+--- 807,813 ----
-+ }
-+ }
-+
-+! if (mySource < sourceLimit && (uintptr_t)myTarget >= (uintptr_t)targetLimit && U_SUCCESS(*err))
-+ {
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ }
-+*** build/icu/source/common/ucnv2022.c 2003-06-03 00:19:24.000000000 +0200
-+--- misc/build/icu/source/common/ucnv2022.c 2005-12-22 15:55:00.000000000 +0100
-+***************
-+*** 836,846 ****
-+ int len,
-+ UErrorCode* err)
-+ {
-+
-+ unsigned char* myTarget = *target;
-+ int32_t* myOffsets = *offsets;
-+ while(len-->0){
-+! if(myTarget < targetLimit){
-+ *(myTarget++) = (unsigned char) *(strToAppend++);
-+ if(myOffsets){
-+ *(myOffsets++) = source - args->source -1;
-+--- 836,851 ----
-+ int len,
-+ UErrorCode* err)
-+ {
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-+
-+ unsigned char* myTarget = *target;
-+ int32_t* myOffsets = *offsets;
-+ while(len-->0){
-+! if((uintptr_t)myTarget < (uintptr_t)targetLimit){
-+ *(myTarget++) = (unsigned char) *(strToAppend++);
-+ if(myOffsets){
-+ *(myOffsets++) = source - args->source -1;
-+***************
-+*** 1005,1011 ****
-+ int plane =0; /*dummy variable*/
-+ UConverterDataISO2022* myData;
-+
-+! if ((args->converter == NULL) || (args->targetLimit < args->target) || (args->sourceLimit < args->source)){
-+ *err = U_ILLEGAL_ARGUMENT_ERROR;
-+ return;
-+ }
-+--- 1010,1022 ----
-+ int plane =0; /*dummy variable*/
-+ UConverterDataISO2022* myData;
-+
-+! /*
-+! * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-+! * to the same memory object; such poiter oprations are not defined and must be
-+! * done using the unsigned integer types
-+! */
-+!
-+! if ((args->converter == NULL) || ((uintptr_t)(args->targetLimit) < (uintptr_t)(args->target)) || (args->sourceLimit < args->source)){
-+ *err = U_ILLEGAL_ARGUMENT_ERROR;
-+ return;
-+ }
-+***************
-+*** 1097,1103 ****
-+ int plane =0;/*dummy variable*/
-+ UConverterDataISO2022* myData;
-+
-+! if ((args->converter == NULL) || (args->targetLimit < args->target) || (args->sourceLimit < args->source)){
-+ *err = U_ILLEGAL_ARGUMENT_ERROR;
-+ return;
-+ }
-+--- 1108,1120 ----
-+ int plane =0;/*dummy variable*/
-+ UConverterDataISO2022* myData;
-+
-+! /*
-+! * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-+! * to the same memory object; such poiter oprations are not defined and must be
-+! * done using the unsigned integer types
-+! */
-+!
-+! if ((args->converter == NULL) || ((uintptr_t)(args->targetLimit) < (uintptr_t)(args->target)) || (args->sourceLimit < args->source)){
-+ *err = U_ILLEGAL_ARGUMENT_ERROR;
-+ return;
-+ }
-+***************
-+*** 1539,1547 ****
-+ UConverter** currentConverter;
-+ Cnv2022Type* currentType;
-+ UConverter** convArray;
-+
-+ /* arguments check*/
-+! if ((args->converter == NULL) || (targetLimit < target) || (sourceLimit < source)){
-+ *err = U_ILLEGAL_ARGUMENT_ERROR;
-+ return;
-+ }
-+--- 1556,1570 ----
-+ UConverter** currentConverter;
-+ Cnv2022Type* currentType;
-+ UConverter** convArray;
-++
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-+
-+ /* arguments check*/
-+! if ((args->converter == NULL) || ((uintptr_t)targetLimit < (uintptr_t)target) || (sourceLimit < source)){
-+ *err = U_ILLEGAL_ARGUMENT_ERROR;
-+ return;
-+ }
-+***************
-+*** 1557,1563 ****
-+ currentType = &converterData->currentType;
-+
-+ /* check if the last codepoint of previous buffer was a lead surrogate*/
-+! if(args->converter->fromUSurrogateLead!=0 && target< targetLimit) {
-+ goto getTrail;
-+ }
-+
-+--- 1580,1586 ----
-+ currentType = &converterData->currentType;
-+
-+ /* check if the last codepoint of previous buffer was a lead surrogate*/
-+! if(args->converter->fromUSurrogateLead!=0 && (uintptr_t)target< (uintptr_t)targetLimit) {
-+ goto getTrail;
-+ }
-+
-+***************
-+*** 1568,1574 ****
-+
-+ targetByteUnit = missingCharMarker;
-+
-+! if(target < targetLimit){
-+ sourceChar = *(source++);
-+ if(sourceChar > SPACE) {
-+ do{
-+--- 1591,1597 ----
-+
-+ targetByteUnit = missingCharMarker;
-+
-+! if((uintptr_t)target < (uintptr_t)targetLimit){
-+ sourceChar = *(source++);
-+ if(sourceChar > SPACE) {
-+ do{
-+***************
-+*** 1667,1673 ****
-+ offset = source - args->source -1;
-+ /* write the targetByteUnit to target */
-+ if(targetByteUnit <= 0x00FF){
-+! if( target <targetLimit){
-+ *(target++) = (unsigned char) targetByteUnit;
-+ if(offsets){
-+ *(offsets++) = offset;
-+--- 1690,1696 ----
-+ offset = source - args->source -1;
-+ /* write the targetByteUnit to target */
-+ if(targetByteUnit <= 0x00FF){
-+! if( (uintptr_t)target <(uintptr_t)targetLimit){
-+ *(target++) = (unsigned char) targetByteUnit;
-+ if(offsets){
-+ *(offsets++) = offset;
-+***************
-+*** 1678,1689 ****
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ }
-+ }else{
-+! if(target < targetLimit){
-+ *(target++) =(unsigned char) (targetByteUnit>>8);
-+ if(offsets){
-+ *(offsets++) = offset;
-+ }
-+! if(target < targetLimit){
-+ *(target++) =(unsigned char) (targetByteUnit);
-+ if(offsets){
-+ *(offsets++) = offset;
-+--- 1701,1712 ----
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ }
-+ }else{
-+! if((uintptr_t)target < (uintptr_t)targetLimit){
-+ *(target++) =(unsigned char) (targetByteUnit>>8);
-+ if(offsets){
-+ *(offsets++) = offset;
-+ }
-+! if((uintptr_t)target < (uintptr_t)targetLimit){
-+ *(target++) =(unsigned char) (targetByteUnit);
-+ if(offsets){
-+ *(offsets++) = offset;
-+***************
-+*** 1875,1881 ****
-+
-+ targetUniChar = missingCharMarker;
-+
-+! if(myTarget < args->targetLimit){
-+
-+ mySourceChar= (unsigned char) *mySource++;
-+
-+--- 1898,1904 ----
-+
-+ targetUniChar = missingCharMarker;
-+
-+! if((uintptr_t)myTarget < (uintptr_t)(args->targetLimit)){
-+
-+ mySourceChar= (unsigned char) *mySource++;
-+
-+***************
-+*** 2078,2084 ****
-+ UBool useFallback;
-+ int32_t length =0;
-+
-+! if ((args->converter == NULL) || (args->targetLimit < args->target) || (args->sourceLimit < args->source)){
-+ *err = U_ILLEGAL_ARGUMENT_ERROR;
-+ return;
-+ }
-+--- 2101,2113 ----
-+ UBool useFallback;
-+ int32_t length =0;
-+
-+! /*
-+! * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-+! * to the same memory object; such poiter oprations are not defined and must be
-+! * done using the unsigned integer types
-+! */
-+!
-+! if ((args->converter == NULL) || ((uintptr_t)(args->targetLimit) < (uintptr_t)(args->target)) || (args->sourceLimit < args->source)){
-+ *err = U_ILLEGAL_ARGUMENT_ERROR;
-+ return;
-+ }
-+***************
-+*** 2098,2111 ****
-+ }
-+
-+ isTargetByteDBCS = (UBool) args->converter->fromUnicodeStatus;
-+! if(args->converter->fromUSurrogateLead!=0 && target <targetLimit) {
-+ goto getTrail;
-+ }
-+ while(source < sourceLimit){
-+
-+ targetByteUnit = missingCharMarker;
-+
-+! if(target < (unsigned char*) args->targetLimit){
-+ sourceChar = *source++;
-+ /* length= _MBCSFromUChar32(converterData->fromUnicodeConverter->sharedData,
-+ sourceChar,&targetByteUnit,args->converter->useFallback);*/
-+--- 2127,2140 ----
-+ }
-+
-+ isTargetByteDBCS = (UBool) args->converter->fromUnicodeStatus;
-+! if(args->converter->fromUSurrogateLead!=0 && (uintptr_t)target <(uintptr_t)targetLimit) {
-+ goto getTrail;
-+ }
-+ while(source < sourceLimit){
-+
-+ targetByteUnit = missingCharMarker;
-+
-+! if((uintptr_t)target < (uintptr_t)(args->targetLimit)){
-+ sourceChar = *source++;
-+ /* length= _MBCSFromUChar32(converterData->fromUnicodeConverter->sharedData,
-+ sourceChar,&targetByteUnit,args->converter->useFallback);*/
-+***************
-+*** 2131,2137 ****
-+ }
-+ /* write the targetUniChar to target */
-+ if(targetByteUnit <= 0x00FF){
-+! if( target < targetLimit){
-+ *(target++) = (unsigned char) targetByteUnit;
-+ if(offsets){
-+ *(offsets++) = source - args->source-1;
-+--- 2160,2166 ----
-+ }
-+ /* write the targetUniChar to target */
-+ if(targetByteUnit <= 0x00FF){
-+! if( (uintptr_t)target < (uintptr_t)targetLimit){
-+ *(target++) = (unsigned char) targetByteUnit;
-+ if(offsets){
-+ *(offsets++) = source - args->source-1;
-+***************
-+*** 2142,2153 ****
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ }
-+ }else{
-+! if(target < targetLimit){
-+ *(target++) =(unsigned char) ((targetByteUnit>>8) -0x80);
-+ if(offsets){
-+ *(offsets++) = source - args->source-1;
-+ }
-+! if(target < targetLimit){
-+ *(target++) =(unsigned char) (targetByteUnit -0x80);
-+ if(offsets){
-+ *(offsets++) = source - args->source-1;
-+--- 2171,2182 ----
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ }
-+ }else{
-+! if((uintptr_t)target < (uintptr_t)targetLimit){
-+ *(target++) =(unsigned char) ((targetByteUnit>>8) -0x80);
-+ if(offsets){
-+ *(offsets++) = source - args->source-1;
-+ }
-+! if((uintptr_t)target < (uintptr_t)targetLimit){
-+ *(target++) =(unsigned char) (targetByteUnit -0x80);
-+ if(offsets){
-+ *(offsets++) = source - args->source-1;
-+***************
-+*** 2307,2314 ****
-+ UConverterSharedData* sharedData ;
-+ UBool useFallback;
-+
-+
-+! if ((args->converter == NULL) || (args->targetLimit < args->target) || (args->sourceLimit < args->source)){
-+ *err = U_ILLEGAL_ARGUMENT_ERROR;
-+ return;
-+ }
-+--- 2336,2348 ----
-+ UConverterSharedData* sharedData ;
-+ UBool useFallback;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-+
-+! if ((args->converter == NULL) || ((uintptr_t)(args->targetLimit) < (uintptr_t)(args->target)) || (args->sourceLimit < args->source)){
-+ *err = U_ILLEGAL_ARGUMENT_ERROR;
-+ return;
-+ }
-+***************
-+*** 2325,2331 ****
-+
-+ targetUniChar = missingCharMarker;
-+
-+! if(myTarget < args->targetLimit){
-+
-+ mySourceChar= (unsigned char) *mySource++;
-+
-+--- 2359,2365 ----
-+
-+ targetUniChar = missingCharMarker;
-+
-+! if((uintptr_t)myTarget < (uintptr_t)(args->targetLimit)){
-+
-+ mySourceChar= (unsigned char) *mySource++;
-+
-+***************
-+*** 2610,2617 ****
-+ int* plane;
-+ int lPlane=0;
-+
-+ /* arguments check*/
-+! if ((args->converter == NULL) || (targetLimit < target) || (sourceLimit < source)){
-+ *err = U_ILLEGAL_ARGUMENT_ERROR;
-+ return;
-+ }
-+--- 2644,2657 ----
-+ int* plane;
-+ int lPlane=0;
-+
-++ /*
-++ * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-++ * to the same memory object; such poiter oprations are not defined and must be
-++ * done using the unsigned integer types
-++ */
-++
-+ /* arguments check*/
-+! if ((args->converter == NULL) || ((uintptr_t)targetLimit < (uintptr_t)target) || (sourceLimit < source)){
-+ *err = U_ILLEGAL_ARGUMENT_ERROR;
-+ return;
-+ }
-+***************
-+*** 2630,2636 ****
-+ sharedData = (*currentConverter)->sharedData;
-+
-+ /* check if the last codepoint of previous buffer was a lead surrogate*/
-+! if(args->converter->fromUSurrogateLead!=0 && target< targetLimit) {
-+ goto getTrail;
-+ }
-+
-+--- 2670,2676 ----
-+ sharedData = (*currentConverter)->sharedData;
-+
-+ /* check if the last codepoint of previous buffer was a lead surrogate*/
-+! if(args->converter->fromUSurrogateLead!=0 && (uintptr_t)target< (uintptr_t)targetLimit) {
-+ goto getTrail;
-+ }
-+
-+***************
-+*** 2640,2646 ****
-+ targetByteUnit =missingCharMarker;
-+ lPlane =0;
-+
-+! if(target < targetLimit){
-+
-+ sourceChar = *(source++);
-+ /*check if the char is a First surrogate*/
-+--- 2680,2686 ----
-+ targetByteUnit =missingCharMarker;
-+ lPlane =0;
-+
-+! if((uintptr_t)target < (uintptr_t)targetLimit){
-+
-+ sourceChar = *(source++);
-+ /*check if the char is a First surrogate*/
-+***************
-+*** 2776,2782 ****
-+
-+ /* write the targetByteUnit to target */
-+ if(targetByteUnit <= 0x00FF){
-+! if( target <targetLimit){
-+ *(target++) = (unsigned char) targetByteUnit;
-+ if(offsets){
-+ *(offsets++) =source-args->source-1;
-+--- 2816,2822 ----
-+
-+ /* write the targetByteUnit to target */
-+ if(targetByteUnit <= 0x00FF){
-+! if( (uintptr_t)target <(uintptr_t)targetLimit){
-+ *(target++) = (unsigned char) targetByteUnit;
-+ if(offsets){
-+ *(offsets++) =source-args->source-1;
-+***************
-+*** 2787,2798 ****
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ }
-+ }else{
-+! if(target < targetLimit){
-+ *(target++) =(unsigned char) (targetByteUnit>>8);
-+ if(offsets){
-+ *(offsets++) = source-args->source-1;
-+ }
-+! if(target < targetLimit){
-+ *(target++) =(unsigned char) (targetByteUnit);
-+ if(offsets){
-+ *(offsets++) = source-args->source-1;
-+--- 2827,2838 ----
-+ *err = U_BUFFER_OVERFLOW_ERROR;
-+ }
-+ }else{
-+! if((uintptr_t)target < (uintptr_t)targetLimit){
-+ *(target++) =(unsigned char) (targetByteUnit>>8);
-+ if(offsets){
-+ *(offsets++) = source-args->source-1;
-+ }
-+! if((uintptr_t)target < (uintptr_t)targetLimit){
-+ *(target++) =(unsigned char) (targetByteUnit);
-+ if(offsets){
-+ *(offsets++) = source-args->source-1;
-+***************
-+*** 3087,3093 ****
-+ uint32_t mySourceChar = 0x0000;
-+ UConverterDataISO2022* myData;
-+
-+! if ((args->converter == NULL) || (args->targetLimit < myTarget) || (args->sourceLimit < mySource)){
-+ *err = U_ILLEGAL_ARGUMENT_ERROR;
-+ return;
-+ }
-+--- 3127,3139 ----
-+ uint32_t mySourceChar = 0x0000;
-+ UConverterDataISO2022* myData;
-+
-+! /*
-+! * IMPORTANT: targetLimit might be initialized to U_MAX_PTR, so it need not poit
-+! * to the same memory object; such poiter oprations are not defined and must be
-+! * done using the unsigned integer types
-+! */
-+!
-+! if ((args->converter == NULL) || ((uintptr_t)(args->targetLimit) < (uintptr_t)myTarget) || (args->sourceLimit < mySource)){
-+ *err = U_ILLEGAL_ARGUMENT_ERROR;
-+ return;
-+ }
-+***************
-+*** 3098,3104 ****
-+
-+ targetUniChar =missingCharMarker;
-+
-+! if(myTarget < args->targetLimit){
-+
-+ mySourceChar= (unsigned char) *mySource++;
-+
-+--- 3144,3150 ----
-+
-+ targetUniChar =missingCharMarker;
-+
-+! if((uintptr_t)myTarget < (uintptr_t)(args->targetLimit)){
-+
-+ mySourceChar= (unsigned char) *mySource++;
-+
-+***************
-+*** 3208,3214 ****
-+ args->offsets[myTarget - args->target]= mySource - args->source - 2
-+ +(myData->currentType==ASCII);
-+ }
-+! if(myTarget< args->targetLimit){
-+ *(myTarget)++ = (UChar)(0xdc00+(UChar)(targetUniChar&0x3ff));
-+ if(args->offsets){
-+ args->offsets[myTarget - args->target]= mySource - args->source - 2
-+--- 3254,3260 ----
-+ args->offsets[myTarget - args->target]= mySource - args->source - 2
-+ +(myData->currentType==ASCII);
-+ }
-+! if((uintptr_t)myTarget< (uintptr_t)(args->targetLimit)){
-+ *(myTarget)++ = (UChar)(0xdc00+(UChar)(targetUniChar&0x3ff));
-+ if(args->offsets){
-+ args->offsets[myTarget - args->target]= mySource - args->source - 2
diff --git a/patches/src680/buildfix-gcc41-string-goodies.diff b/patches/src680/buildfix-gcc41-string-goodies.diff
deleted file mode 100644
index 2e1d2159d..000000000
--- a/patches/src680/buildfix-gcc41-string-goodies.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- goodies/source/filter.vcl/eos2met/eos2met.cxx.old 2005-10-05 15:06:14.000000000 +0200
-+++ goodies/source/filter.vcl/eos2met/eos2met.cxx 2005-11-22 14:50:35.000000000 +0100
-@@ -435,7 +435,7 @@
-
- for (pCS=pChrSetList; pCS!=NULL; pCS=pCS->pSucc)
- {
-- if (pCS->aName==rFont.GetName() && pCS->eWeight==rFont.GetWeight() )
-+ if (pCS->aName==ByteString(rFont.GetName(),gsl_getSystemTextEncoding()) && pCS->eWeight==rFont.GetWeight() )
- return pCS->nSet;
- }
-
diff --git a/patches/src680/buildfix-gcc41-string-sw.diff b/patches/src680/buildfix-gcc41-string-sw.diff
deleted file mode 100644
index 1b98babe9..000000000
--- a/patches/src680/buildfix-gcc41-string-sw.diff
+++ /dev/null
@@ -1,44 +0,0 @@
---- sw/source/core/swg/SwXMLTextBlocks1.cxx.old 2005-09-09 06:43:40.000000000 +0200
-+++ sw/source/core/swg/SwXMLTextBlocks1.cxx 2005-11-25 15:31:53.000000000 +0100
-@@ -136,11 +136,8 @@
- }
- else
- {
--#if defined(_MSC_VER) && (_MSC_VER >= 1310 )
-- String aStreamName = aFolderName + (OUString) String::CreateFromAscii(".xml");
--#else
-- String aStreamName = aFolderName + String::CreateFromAscii(".xml");
--#endif
-+ String aStreamName = aFolderName;
-+ aStreamName += String::CreateFromAscii(".xml");
- try
- {
- xRoot = xBlkRoot->openStorageElement( aFolderName, embed::ElementModes::READ );
-@@ -357,11 +354,8 @@
- sal_Bool bTextOnly = sal_True;
- String aFolderName;
- GeneratePackageName ( rShort, aFolderName );
--#if defined(_MSC_VER) && (_MSC_VER >= 1310 )
-- String aStreamName = aFolderName + (OUString) String::CreateFromAscii(".xml");
--#else
-- String aStreamName = aFolderName + String::CreateFromAscii(".xml");
--#endif
-+ String aStreamName = aFolderName;
-+ aStreamName += String::CreateFromAscii(".xml");
- rText.Erase();
-
- try
-@@ -446,11 +440,8 @@
- }
- */
- String aFolderName( rPackageName );
--#if defined(_MSC_VER) && (_MSC_VER >= 1310 )
-- String aStreamName = aFolderName + (OUString) String::CreateFromAscii(".xml");
--#else
-- String aStreamName = aFolderName + String::CreateFromAscii(".xml");
--#endif
-+ String aStreamName = aFolderName;
-+ aStreamName += String::CreateFromAscii(".xml");
-
- Reference< lang::XMultiServiceFactory > xServiceFactory =
- comphelper::getProcessServiceFactory();
diff --git a/patches/src680/buildfix-longnames-54730.diff b/patches/src680/buildfix-longnames-54730.diff
deleted file mode 100644
index f2062b76d..000000000
--- a/patches/src680/buildfix-longnames-54730.diff
+++ /dev/null
@@ -1,58 +0,0 @@
---- solenv/bin/modules/installer/languages.pm.all_lang 2005-09-08 05:04:40.000000000 -0400
-+++ solenv/bin/modules/installer/languages.pm 2005-10-23 09:33:18.000000000 -0400
-@@ -64,6 +64,12 @@
- $installer::globals::unixmultipath = $installer::globals::languagelist;
- $installer::globals::unixmultipath =~ s/\,/\_/g; # hashes not allowed, comma to underline
- $installer::globals::alllanguagesinproductarrayref = installer::converter::convert_stringlist_into_array(\$installer::globals::unixmultipath, "_");
-+
-+ $installer::globals::unixmultipath_orig = $installer::globals::unixmultipath;
-+ if (length($installer::globals::unixmultipath) > 120) {
-+ chomp(my $shorter = `echo $installer::globals::unixmultipath | md5sum | sed -e "s/ -//g"` );
-+ $installer::globals::unixmultipath = $shorter;
-+ }
- }
-
- while ($first =~ /^(\S+)\#(\S+?)$/) # Minimal matching, to keep the order of languages
---- solenv/bin/modules/installer/globals.pm.all_lang 2005-10-20 14:49:34.000000000 -0400
-+++ solenv/bin/modules/installer/globals.pm 2005-10-23 09:15:28.000000000 -0400
-@@ -124,6 +124,7 @@
- $addpackagelist = "";
- $is_unix_multi = 0;
- $unixmultipath = "";
-+ $unixmultipath_orig = "";
- $alllanguagesinproductarrayref = "";
- $shiptestdirectory = "";
- $makelinuxlinkrpm = 0;
---- solenv/bin/make_installer.pl.all_lang 2005-10-20 14:49:34.000000000 -0400
-+++ solenv/bin/make_installer.pl 2005-10-23 09:31:02.000000000 -0400
-@@ -515,13 +515,29 @@
- else { $logminor = $installer::globals::minor; }
-
- my $loglanguagestring = $$languagestringref;
-- if ( $installer::globals::is_unix_multi ) { $loglanguagestring = $installer::globals::unixmultipath; }
-+ if ( $installer::globals::is_unix_multi ) { $loglanguagestring = $installer::globals::unixmultipath_orig; }
-+
-+ my $loglanguagestring_orig = $loglanguagestring;
-+ if (length($loglanguagestring) > 120) {
-+ chomp(my $shorter = `echo $loglanguagestring | md5sum | sed -e "s/ -//g"`);
-+ $loglanguagestring = $shorter;
-+ }
-
- $installer::globals::logfilename = "log_" . $installer::globals::build . "_" . $logminor . "_" . $loglanguagestring . ".log";
-
- if (( ! $installer::globals::is_unix_multi ) || ( $isfirstrun )) { $loggingdir = $loggingdir . $loglanguagestring . $installer::globals::separator; }
-
- installer::systemactions::create_directory($loggingdir);
-+
-+ if ($loglanguagestring ne $loglanguagestring_orig) {
-+ (my $dir = $loggingdir) =~ s!/$!!;
-+ open(my $F1, "> $dir.dir");
-+ open(my $F2, "> " . $loggingdir . $installer::globals::logfilename . '.file');
-+ my @s = map { "$_\n" } split('_', $loglanguagestring_orig);
-+ print $F1 @s;
-+ print $F2 @s;
-+ }
-+
- $installer::globals::exitlog = $loggingdir;
-
- ##############################################################
diff --git a/patches/src680/buildfix-moz-flavour-nspr.diff b/patches/src680/buildfix-moz-flavour-nspr.diff
deleted file mode 100644
index a6c1c5e1b..000000000
--- a/patches/src680/buildfix-moz-flavour-nspr.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- config_office/configure.in.old 2006-01-02 19:41:36.000000000 +0100
-+++ config_office/configure.in 2006-01-04 10:08:01.000000000 +0100
-@@ -2980,7 +2980,7 @@
- if $PKG_CONFIG --exists nspr ; then
- PKG_CHECK_MODULES( MOZ_NSPR, nspr )
- else
-- PKG_CHECK_MODULES( MOZ_NSPR, mozilla-nspr )
-+ PKG_CHECK_MODULES( MOZ_NSPR, $moz_flavour-nspr )
- fi
-
- if $PKG_CONFIG --exists nss ; then
diff --git a/patches/src680/buildfix-new-xslt.diff b/patches/src680/buildfix-new-xslt.diff
deleted file mode 100644
index 26e7fdb5a..000000000
--- a/patches/src680/buildfix-new-xslt.diff
+++ /dev/null
@@ -1,41 +0,0 @@
---- filter/source/config/fragments/langfilter.xsl.org 2005-10-27 20:38:20.000000000 +0200
-+++ filter/source/config/fragments/langfilter.xsl 2005-10-27 20:38:44.000000000 +0200
-@@ -2,19 +2,35 @@
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:oor="http://openoffice.org/2001/registry">
- <xsl:output method="xml" indent="yes" omit-xml-declaration="no" version="1.0" encoding="UTF-8"/>
- <xsl:param name="lang"/>
--<xsl:template match="*[.//*[@xml:lang=$lang]] | @*">
-+<xsl:template match="*">
-+ <xsl:if test="count(.//*[@xml:lang=$lang])&gt;0">
- <xsl:copy>
- <xsl:apply-templates select="*|@*"/>
- </xsl:copy>
-+ </xsl:if>
- </xsl:template>
-
--<xsl:template match="value[@xml:lang=$lang] | text()[../@xml:lang=$lang]">
-+<xsl:template match="@*">
-+ <xsl:copy>
-+ <xsl:apply-templates select="*|@*"/>
-+ </xsl:copy>
-+</xsl:template>
-+
-+<xsl:template match="value">
-+ <xsl:if test="@xml:lang=$lang">
- <xsl:copy>
- <xsl:apply-templates select="@*|text()"/>
- </xsl:copy>
-+ </xsl:if>
- </xsl:template>
-
--<xsl:template match="text()"/>
-+<xsl:template match="text()">
-+ <xsl:if test="../@xml:lang=$lang">
-+ <xsl:copy>
-+ <xsl:apply-templates select="@*|text()"/>
-+ </xsl:copy>
-+ </xsl:if>
-+</xsl:template>
-
-
- </xsl:stylesheet>
diff --git a/patches/src680/buildfix-no-xalan.diff b/patches/src680/buildfix-no-xalan.diff
deleted file mode 100644
index 3eac45c2c..000000000
--- a/patches/src680/buildfix-no-xalan.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/xslt/DocumentSerializerImpl.java.ark 2005-11-09 20:49:41.000000000 +0000
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/xslt/DocumentSerializerImpl.java 2005-11-09 20:49:54.000000000 +0000
-@@ -89,11 +89,6 @@
- import javax.xml.transform.URIResolver;
- import javax.xml.transform.Source;
-
--//
--import org.apache.xalan.serialize.Serializer;
--import org.apache.xalan.serialize.SerializerFactory;
--import org.apache.xalan.templates.OutputProperties;
--
- import javax.xml.parsers.DocumentBuilder;
- import javax.xml.parsers.DocumentBuilderFactory;
-
diff --git a/patches/src680/buildfix-pkgconfig-gconfbe.diff b/patches/src680/buildfix-pkgconfig-gconfbe.diff
deleted file mode 100644
index f05d5aa1c..000000000
--- a/patches/src680/buildfix-pkgconfig-gconfbe.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: shell/source/backends/gconfbe/makefile.mk
-===================================================================
-RCS file: /cvs/gsl/shell/source/backends/gconfbe/makefile.mk,v
-retrieving revision 1.11
-diff -u -r1.11 makefile.mk
---- shell/source/backends/gconfbe/makefile.mk 21 Feb 2005 12:06:04 -0000 1.11
-+++ shell/source/backends/gconfbe/makefile.mk 19 Apr 2005 16:34:21 -0000
-@@ -83,7 +83,7 @@
-
- .IF "$(ENABLE_GNOMEVFS)"!=""
- COMPILER_WARN_ALL=TRUE
--PKGCONFIG_MODULES=gconf-2.0 gobject-2.0
-+PKGCONFIG_MODULES=gconf-2.0 gobject-2.0 ORBit-2.0 glib-2.0
- .INCLUDE: pkg_config.mk
-
- .IF "$(OS)" == "SOLARIS"
diff --git a/patches/src680/buildfix-qadevOOo-java-encoding.diff b/patches/src680/buildfix-qadevOOo-java-encoding.diff
deleted file mode 100644
index 5c10bb83c..000000000
--- a/patches/src680/buildfix-qadevOOo-java-encoding.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- qadevOOo/build.xml.ark 2005-08-22 12:57:17.000000000 +0000
-+++ qadevOOo/build.xml 2005-08-22 12:59:38.000000000 +0000
-@@ -19,7 +19,7 @@
-
- <!-- target for building the runner -->
- <target name="qadevOOo_runner_build">
-- <javac srcdir="${qadevOOo.runner}" destdir="${qadevOOo.class}" includes="**/*.java" debug="${debug}">
-+ <javac srcdir="${qadevOOo.runner}" destdir="${qadevOOo.class}" includes="**/*.java" debug="${debug}" encoding="utf-8" fork="true">
- <classpath>
- <pathelement location="${qadevOOo.class}"/>
- <fileset dir="${qadevOOo.office_jars}">
diff --git a/patches/src680/buildfix-svx-cfg.diff b/patches/src680/buildfix-svx-cfg.diff
deleted file mode 100644
index a521d76ea..000000000
--- a/patches/src680/buildfix-svx-cfg.diff
+++ /dev/null
@@ -1,47 +0,0 @@
---- svx/source/dialog/cfg.cxx
-+++ svx/source/dialog/cfg.cxx
-@@ -2596,7 +2596,7 @@
- SvxConfigEntry* pMenuData = GetTopLevelSelection();
-
- String aNewName( stripHotKey( pMenuData->GetName() ) );
-- String aDesc( SVX_RESSTR( RID_SVXSTR_LABEL_NEW_NAME ) );
-+ String aDesc( (const String)(SVX_RESSTR( RID_SVXSTR_LABEL_NEW_NAME )) );
-
- SvxAbstractDialogFactory* pFact =
- SvxAbstractDialogFactory::Create();
-@@ -2657,7 +2657,7 @@
- case ID_ADD_SUBMENU:
- {
- String aNewName;
-- String aDesc( SVX_RESSTR( RID_SVXSTR_SUBMENU_NAME ) );
-+ String aDesc = SVX_RESSTR( RID_SVXSTR_SUBMENU_NAME );
-
- SvxAbstractDialogFactory* pFact =
- SvxAbstractDialogFactory::Create();
-@@ -2709,7 +2709,7 @@
- (SvxConfigEntry*) pActEntry->GetUserData();
-
- String aNewName( stripHotKey( pEntry->GetName() ) );
-- String aDesc( SVX_RESSTR( RID_SVXSTR_LABEL_NEW_NAME ) );
-+ String aDesc = SVX_RESSTR( RID_SVXSTR_LABEL_NEW_NAME );
-
- SvxAbstractDialogFactory* pFact =
- SvxAbstractDialogFactory::Create();
-@@ -3533,7 +3533,7 @@
- case ID_RENAME:
- {
- String aNewName( stripHotKey( pToolbar->GetName() ) );
-- String aDesc( SVX_RESSTR( RID_SVXSTR_LABEL_NEW_NAME ) );
-+ String aDesc = SVX_RESSTR( RID_SVXSTR_LABEL_NEW_NAME );
-
- SvxAbstractDialogFactory* pFact =
- SvxAbstractDialogFactory::Create();
-@@ -3630,7 +3630,7 @@
- (SvxConfigEntry*) pActEntry->GetUserData();
-
- String aNewName( stripHotKey( pEntry->GetName() ) );
-- String aDesc( SVX_RESSTR( RID_SVXSTR_LABEL_NEW_NAME ) );
-+ String aDesc = SVX_RESSTR( RID_SVXSTR_LABEL_NEW_NAME );
-
- SvxAbstractDialogFactory* pFact =
- SvxAbstractDialogFactory::Create();
diff --git a/patches/src680/buildfix-svx-without-stlport4.diff b/patches/src680/buildfix-svx-without-stlport4.diff
deleted file mode 100644
index df8cfc7cc..000000000
--- a/patches/src680/buildfix-svx-without-stlport4.diff
+++ /dev/null
@@ -1,23 +0,0 @@
-For some reason, when building with --without-stlport4 on Linux/gcc 3.4.4,
-::std::swap triggers
-
-bits/stl_algobase.h: In function `void std::swap(_Tp&, _Tp&) [with _Tp = std::auto_ptr<SvxEditSource>]':
-svx/source/accessibility/AccessibleEmptyEditSource.cxx:320: instantiated from here
-bits/stl_algobase.h:132: error: passing `const std::auto_ptr<SvxEditSource>' as `this' argument of `std::auto_ptr<_Tp>::operator std::auto_ptr_ref<_Tp1>() [with _Tp1 = SvxEditSource, _Tp = SvxEditSource]' discards qualifiers
-
-Better fix (or explanation what exactly causes std::swap to cast this around)
-welcome, but for now this one works
-
---- svx/source/accessibility/AccessibleEmptyEditSource.cxx.ark 2005-08-06 10:00:38.000000000 +0000
-+++ svx/source/accessibility/AccessibleEmptyEditSource.cxx 2005-08-06 10:34:51.000000000 +0000
-@@ -317,7 +317,9 @@
- EndListening( *mrObj.GetModel() );
-
- ::std::auto_ptr< SvxEditSource > pProxySource( new AccessibleProxyEditSource_Impl(mrObj, mrView, mrViewWindow) );
-- ::std::swap(pProxySource, mpEditSource);
-+ ::std::auto_ptr< SvxEditSource > tmp = mpEditSource;
-+ mpEditSource = pProxySource;
-+ pProxySource = tmp;
-
- // register as listener
- StartListening( mpEditSource->GetBroadcaster() );
diff --git a/patches/src680/buildfix-system-moz-plugin.diff b/patches/src680/buildfix-system-moz-plugin.diff
deleted file mode 100644
index 93d092b11..000000000
--- a/patches/src680/buildfix-system-moz-plugin.diff
+++ /dev/null
@@ -1,40 +0,0 @@
---- config_office/configure.in.old 2006-01-02 19:41:36.000000000 +0100
-+++ config_office/configure.in 2006-01-04 10:08:01.000000000 +0100
-@@ -2999,6 +2999,8 @@
- CPPFLAGS="$save_CPPFLAGS"
- LIBS="$save_LIBS"
-
-+ PKG_CHECK_MODULES( MOZ_PLUGIN, $moz_flavour-plugin )
-+
- MOZ_INC=`$PKG_CONFIG --variable=includedir $moz_flavour-xpcom`
- MOZ_LIB=`$PKG_CONFIG --variable=libdir $moz_flavour-xpcom`
- MOZ_LIB_XPCOM=$MOZILLAXPCOM_LIBS
-@@ -3113,6 +3115,7 @@
- AC_SUBST(MOZ_LIB_XPCOM)
- AC_SUBST(MOZ_NSPR_CFLAGS)
- AC_SUBST(MOZ_NSS_CFLAGS)
-+AC_SUBST(MOZ_PLUGIN_CFLAGS)
- AC_SUBST(MOZ_LDAP_CFLAGS)
- AC_SUBST(MOZ_NSS_HACK)
-
---- config_office/set_soenv.in.old 2006-01-02 19:41:36.000000000 +0100
-+++ config_office/set_soenv.in 2006-01-04 10:12:12.000000000 +0100
-@@ -1735,6 +1735,7 @@
- ToFile( "MOZ_LIB_XPCOM", "@MOZ_LIB_XPCOM@", "e" );
- ToFile( "MOZ_NSPR_CFLAGS", "@MOZ_NSPR_CFLAGS@", "e" );
- ToFile( "MOZ_NSS_CFLAGS", "@MOZ_NSS_CFLAGS@", "e" );
-+ToFile( "MOZ_PLUGIN_CFLAGS", "@MOZ_PLUGIN_CFLAGS@","e" );
- ToFile( "MOZ_LDAP_CFLAGS", "@MOZ_LDAP_CFLAGS@", "e" );
- ToFile( "MOZ_NSS_HACK", "@MOZ_NSS_HACK@", "e" );
- ToFile( "WITH_FONTS", "@WITH_FONTS@", "e" );
---- extensions/source/plugin/util/makefile.pmk.old 2005-12-21 12:14:30.000000000 +0100
-+++ extensions/source/plugin/util/makefile.pmk 2006-01-04 10:31:26.000000000 +0100
-@@ -40,7 +40,6 @@
- .INCLUDE : sv.mk
-
- .IF "$(SYSTEM_MOZILLA)" == "YES"
-+INCPRE+=$(MOZ_PLUGIN_CFLAGS)
- CFLAGS+=-DSYSTEM_MOZILLA
--PKGCONFIG_MODULES=mozilla-plugin
--.INCLUDE : pkg_config.mk
- .ENDIF
diff --git a/patches/src680/buildfix-system-nspr-m112.diff b/patches/src680/buildfix-system-nspr-m112.diff
deleted file mode 100644
index 1b4d8c52d..000000000
--- a/patches/src680/buildfix-system-nspr-m112.diff
+++ /dev/null
@@ -1,55 +0,0 @@
---- config_office/configure.in.ark~ 2005-06-23 22:57:03.000000000 +0200
-+++ config_office/configure.in 2005-06-24 00:04:55.000000000 +0200
-@@ -2714,6 +2714,12 @@
-
- PKG_CHECK_MODULES( MOZILLAXPCOM, $moz_flavour-xpcom )
-
-+ if $PKG_CONFIG --exists nspr ; then
-+ PKG_CHECK_MODULES( MOZ_NSPR, nspr )
-+ else
-+ PKG_CHECK_MODULES( MOZ_NSPR, $moz_flavour-nspr )
-+ fi
-+
- PKG_CHECK_MODULES( MOZ_NSS, $moz_flavour-nss )
- save_CPPFLAGS="$CPPFLAGS"
- save_LDFLAGS="$LDFLAGS"
-@@ -2840,6 +2846,7 @@
- AC_SUBST(MOZ_INC)
- AC_SUBST(MOZ_LIB)
- AC_SUBST(MOZ_LIB_XPCOM)
-+AC_SUBST(MOZ_NSPR_CFLAGS)
- AC_SUBST(MOZ_NSS_CFLAGS)
- AC_SUBST(MOZ_LDAP_CFLAGS)
-
---- config_office/set_soenv.in.ark~ 2005-06-23 21:44:14.000000000 +0200
-+++ config_office/set_soenv.in 2005-06-24 00:03:30.000000000 +0200
-@@ -1691,6 +1691,7 @@
- ToFile( "MOZ_INC", "@MOZ_INC@", "e" );
- ToFile( "MOZ_LIB", "@MOZ_LIB@", "e" );
- ToFile( "MOZ_LIB_XPCOM", "@MOZ_LIB_XPCOM@", "e" );
-+ToFile( "MOZ_NSPR_CFLAGS", "@MOZ_NSPR_CFLAGS@", "e" );
- ToFile( "MOZ_NSS_CFLAGS", "@MOZ_NSS_CFLAGS@", "e" );
- ToFile( "MOZ_LDAP_CFLAGS", "@MOZ_LDAP_CFLAGS@", "e" );
- ToFile( "WITH_FONTS", "@WITH_FONTS@", "e" );
---- extensions/source/nsplugin/source/makefile.mk.ark~ 2005-05-31 19:09:00.000000000 +0200
-+++ extensions/source/nsplugin/source/makefile.mk 2005-06-24 00:03:30.000000000 +0200
-@@ -81,7 +81,7 @@
- .IF "$(OS)"=="LINUX" || "$(OS)"=="FREEBSD"
- INC+= -DNP_LINUX
- .IF "$(SYSTEM_MOZILLA)" == "YES"
--INCPRE=-I$(MOZ_INC)/nspr -I$(MOZ_INC)/java -I$(MOZ_INC)/plugin
-+INCPRE=$(MOZ_NSPR_CFLAGS) -I$(MOZ_INC)/java -I$(MOZ_INC)/plugin
- # not sure about -DMOZ_X11 but otheriwse some struct member don't exist...
- CFLAGS+=-DSYSTEM_MOZILLA -DMOZ_X11
- .ENDIF
---- np_sdk/mozilla-source-M16-stub.patch.ark~ 2005-06-23 23:09:00.000000000 +0200
-+++ np_sdk/mozilla-source-M16-stub.patch 2005-06-24 00:03:30.000000000 +0200
-@@ -1202,7 +1202,7 @@
- ! .ENDIF
- !
- ! .IF "$(SYSTEM_MOZILLA)" == "YES"
--! INCPRE= -I$(MOZ_INC)/nspr -I$(MOZ_INC)/java -I$(MOZ_INC)/plugin
-+! INCPRE= $(MOZ_NSPR_CFLAGS) -I$(MOZ_INC)/java -I$(MOZ_INC)/plugin
- ! .ENDIF
- !
- ! .IF "$(GUI)" == "UNX"
diff --git a/patches/src680/buildfix-system-nss.diff b/patches/src680/buildfix-system-nss.diff
deleted file mode 100644
index e566063e7..000000000
--- a/patches/src680/buildfix-system-nss.diff
+++ /dev/null
@@ -1,229 +0,0 @@
---- config_office/configure.in.old 2005-07-12 13:39:45.000000000 +0200
-+++ config_office/configure.in 2005-07-12 15:53:28.000000000 +0200
-@@ -2768,7 +2768,11 @@
- PKG_CHECK_MODULES( MOZ_NSPR, $moz_flavour-nspr )
- fi
-
-- PKG_CHECK_MODULES( MOZ_NSS, $moz_flavour-nss )
-+ if $PKG_CONFIG --exists nss ; then
-+ PKG_CHECK_MODULES( MOZ_NSS, nss )
-+ else
-+ PKG_CHECK_MODULES( MOZ_NSS, $moz_flavour-nss )
-+ fi
- save_CPPFLAGS="$CPPFLAGS"
- save_LDFLAGS="$LDFLAGS"
- save_LIBS="$LIBS"
---- libxmlsec/xmlsec1-1.2.6.patch.orig 2005-05-31 18:34:29.000000000 +0200
-+++ libxmlsec/xmlsec1-1.2.6.patch 2005-07-12 18:47:03.000000000 +0200
-@@ -54,6 +54,122 @@
- NSS_CRYPTO_LIB="$PACKAGE-nss"
- NSS_FOUND="no"
- ***************
-+*** 25766,25771 ****
-+--- 25766,25868 ----
-+ else
-+ PKG_CONFIG_MIN_VERSION=0.9.0
-+ if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
-++ echo "$as_me:$LINENO: checking for nspr >= $NSPR_MIN_VERSION nss >= $NSS_MIN_VERSION" >&5
-++ echo $ECHO_N "checking for nspr >= $NSPR_MIN_VERSION nss >= $NSS_MIN_VERSION... $ECHO_C" >&6
-++
-++ if $PKG_CONFIG --exists "nspr >= $NSPR_MIN_VERSION nss >= $NSS_MIN_VERSION" ; then
-++ echo "$as_me:$LINENO: result: yes" >&5
-++ echo "${ECHO_T}yes" >&6
-++ succeeded=yes
-++
-++ echo "$as_me:$LINENO: checking NSS_CFLAGS" >&5
-++ echo $ECHO_N "checking NSS_CFLAGS... $ECHO_C" >&6
-++ NSS_CFLAGS=`$PKG_CONFIG --cflags "nspr >= $NSPR_MIN_VERSION nss >= $NSS_MIN_VERSION"`
-++ echo "$as_me:$LINENO: result: $NSS_CFLAGS" >&5
-++ echo "${ECHO_T}$NSS_CFLAGS" >&6
-++
-++ echo "$as_me:$LINENO: checking NSS_LIBS" >&5
-++ echo $ECHO_N "checking NSS_LIBS... $ECHO_C" >&6
-++ NSS_LIBS=`$PKG_CONFIG --libs "nspr >= $NSPR_MIN_VERSION nss >= $NSS_MIN_VERSION"`
-++ echo "$as_me:$LINENO: result: $NSS_LIBS" >&5
-++ echo "${ECHO_T}$NSS_LIBS" >&6
-++ else
-++ NSS_CFLAGS=""
-++ NSS_LIBS=""
-++ ## If we have a custom action on failure, don't print errors, but
-++ ## do set a variable so people can do so.
-++ NSS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "nspr >= $NSPR_MIN_VERSION nss >= $NSS_MIN_VERSION"`
-++
-++ fi
-++
-++
-++
-++ else
-++ echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
-++ echo "*** See http://www.freedesktop.org/software/pkgconfig"
-++ fi
-++ fi
-++
-++ if test $succeeded = yes; then
-++ NSS_FOUND=yes
-++ else
-++ NSS_FOUND=no
-++ fi
-++
-++ if test "z$NSS_FOUND" = "zno" ; then
-++
-++ succeeded=no
-++
-++ if test -z "$PKG_CONFIG"; then
-++ # Extract the first word of "pkg-config", so it can be a program name with args.
-++ set dummy pkg-config; ac_word=$2
-++ echo "$as_me:$LINENO: checking for $ac_word" >&5
-++ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-++ if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
-++ echo $ECHO_N "(cached) $ECHO_C" >&6
-++ else
-++ case $PKG_CONFIG in
-++ [\\/]* | ?:[\\/]*)
-++ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
-++ ;;
-++ *)
-++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-++ for as_dir in $PATH
-++ do
-++ IFS=$as_save_IFS
-++ test -z "$as_dir" && as_dir=.
-++ for ac_exec_ext in '' $ac_executable_extensions; do
-++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-++ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-++ break 2
-++ fi
-++ done
-++ done
-++
-++ test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
-++ ;;
-++ esac
-++ fi
-++ PKG_CONFIG=$ac_cv_path_PKG_CONFIG
-++
-++ if test -n "$PKG_CONFIG"; then
-++ echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
-++ echo "${ECHO_T}$PKG_CONFIG" >&6
-++ else
-++ echo "$as_me:$LINENO: result: no" >&5
-++ echo "${ECHO_T}no" >&6
-++ fi
-++
-++ fi
-++
-++ if test "$PKG_CONFIG" = "no" ; then
-++ echo "*** The pkg-config script could not be found. Make sure it is"
-++ echo "*** in your path, or set the PKG_CONFIG environment variable"
-++ echo "*** to the full path to pkg-config."
-++ echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
-++ else
-++ PKG_CONFIG_MIN_VERSION=0.9.0
-++ if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
-+ echo "$as_me:$LINENO: checking for mozilla-nspr >= $MOZILLA_MIN_VERSION mozilla-nss >= $MOZILLA_MIN_VERSION" >&5
-+ echo $ECHO_N "checking for mozilla-nspr >= $MOZILLA_MIN_VERSION mozilla-nss >= $MOZILLA_MIN_VERSION... $ECHO_C" >&6
-+
-+***************
-+*** 25808,25813 ****
-+--- 25905,25911 ----
-+ NSS_FOUND=no
-+ fi
-+
-++ fi
-+ fi
-+
-+ if test "z$NSS_FOUND" = "zno" ; then
-+***************
- *** 25817,25824 ****
- ac_mozilla_name=mozilla-$MOZILLA_MIN_VERSION
- fi
-@@ -63,7 +179,7 @@
-
- echo "$as_me:$LINENO: checking for nspr libraries >= $NSPR_MIN_VERSION" >&5
- echo $ECHO_N "checking for nspr libraries >= $NSPR_MIN_VERSION... $ECHO_C" >&6
----- 25817,25824 ----
-+--- 25915,25922 ----
- ac_mozilla_name=mozilla-$MOZILLA_MIN_VERSION
- fi
-
-@@ -81,7 +197,7 @@
- if test "z$dir" = "z/usr/lib" ; then
- NSPR_LIBS="$NSPR_LIBS_LIST"
- else
----- 25853,25859 ----
-+--- 25951,25957 ----
- done
-
- for dir in $ac_nss_lib_dir ; do
-@@ -98,7 +214,7 @@
- if test "z$dir" = "z/usr/lib" ; then
- NSS_LIBS="$NSS_LIBS_LIST"
- else
----- 25939,25945 ----
-+--- 26037,26043 ----
- done
-
- for dir in $ac_nss_lib_dir ; do
-@@ -143,6 +259,34 @@
- NSS_CRYPTO_LIB="$PACKAGE-nss"
- NSS_FOUND="no"
- ***************
-+*** 521,529 ****
-+ AC_MSG_RESULT(no)
-+ NSS_FOUND="without"
-+ elif test "z$with_nss" = "z" -a "z$with_nspr" = "z" -a "z$with_mozilla_ver" = "z" -a "z$PKG_CONFIG_ENABLED" = "zyes" ; then
-+! PKG_CHECK_MODULES(NSS, mozilla-nspr >= $MOZILLA_MIN_VERSION mozilla-nss >= $MOZILLA_MIN_VERSION,
-+ [NSS_FOUND=yes],
-+ [NSS_FOUND=no])
-+ fi
-+
-+ if test "z$NSS_FOUND" = "zno" ; then
-+--- 521,536 ----
-+ AC_MSG_RESULT(no)
-+ NSS_FOUND="without"
-+ elif test "z$with_nss" = "z" -a "z$with_nspr" = "z" -a "z$with_mozilla_ver" = "z" -a "z$PKG_CONFIG_ENABLED" = "zyes" ; then
-+! dnl try system nspr and nss
-+! PKG_CHECK_MODULES(NSS, nspr >= $NSPR_MIN_VERSION nss >= $NSS_MIN_VERSION,
-+ [NSS_FOUND=yes],
-+ [NSS_FOUND=no])
-++ dnl fallback to the mozilla nspr and nss
-++ if test "z$NSS_FOUND" = "zno" ; then
-++ PKG_CHECK_MODULES(NSS, mozilla-nspr >= $MOZILLA_MIN_VERSION mozilla-nss >= $MOZILLA_MIN_VERSION,
-++ [NSS_FOUND=yes],
-++ [NSS_FOUND=no])
-++ fi
-+ fi
-+
-+ if test "z$NSS_FOUND" = "zno" ; then
-+***************
- *** 534,541 ****
- ac_mozilla_name=mozilla-$MOZILLA_MIN_VERSION
- fi
-@@ -152,7 +296,7 @@
-
- AC_MSG_CHECKING(for nspr libraries >= $NSPR_MIN_VERSION)
- NSPR_INCLUDES_FOUND="no"
----- 534,541 ----
-+--- 541,548 ----
- ac_mozilla_name=mozilla-$MOZILLA_MIN_VERSION
- fi
-
-@@ -170,7 +314,7 @@
- dnl do not add -L/usr/lib because compiler does it anyway
- if test "z$dir" = "z/usr/lib" ; then
- NSPR_LIBS="$NSPR_LIBS_LIST"
----- 570,576 ----
-+--- 577,583 ----
- done
-
- for dir in $ac_nss_lib_dir ; do
-@@ -187,7 +331,7 @@
- dnl do not add -L/usr/lib because compiler does it anyway
- if test "z$dir" = "z/usr/lib" ; then
- NSS_LIBS="$NSS_LIBS_LIST"
----- 641,647 ----
-+--- 648,654 ----
- done
-
- for dir in $ac_nss_lib_dir ; do
diff --git a/patches/src680/buildfix-testtools.diff b/patches/src680/buildfix-testtools.diff
deleted file mode 100644
index 5c18cc0a5..000000000
--- a/patches/src680/buildfix-testtools.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- testtools/source/bridgetest/makefile.mk 17 Jun 2005 09:42:46 -0000 1.21
-+++ testtools/source/bridgetest/makefile.mk 27 Jun 2005 12:20:00 -0000
-@@ -201,6 +201,8 @@ MY_JARS=java_uno.jar ridl.jar jurt.jar j
- MY_CLASSPATH_TMP=$(foreach,i,$(MY_JARS) $(SOLARBINDIR)$/$i)$(PATH_SEPERATOR)$(XCLASSPATH)
- MY_CLASSPATH=$(strip $(subst,!,$(PATH_SEPERATOR) $(MY_CLASSPATH_TMP:s/ /!/)))$(PATH_SEPERATOR)..$/class
-
-+.EXPORT : CLASSPATH
-+
- # Use "127.0.0.1" instead of "localhost", see #i32281#:
- $(DLLDEST)$/bridgetest_javaserver$(BATCH_SUFFIX) : makefile.mk
- -rm -f $@
diff --git a/patches/src680/buildfix-ucb-without-stlport4.diff b/patches/src680/buildfix-ucb-without-stlport4.diff
deleted file mode 100644
index 440e5c350..000000000
--- a/patches/src680/buildfix-ucb-without-stlport4.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- ucb/source/ucp/webdav/DAVSessionFactory.hxx.ark 2005-08-05 13:13:13.000000000 +0000
-+++ ucb/source/ucp/webdav/DAVSessionFactory.hxx 2005-08-05 14:44:04.000000000 +0000
-@@ -61,6 +61,7 @@
- #ifndef _DAVSESSIONFACTORY_HXX_
- #define _DAVSESSIONFACTORY_HXX_
-
-+#undef min // GNU libstdc++ <memory> includes <limit> which defines methods called min...
- #include <map>
- #include <memory>
-
diff --git a/patches/src680/buildfix-ucb-xml-cflags.diff b/patches/src680/buildfix-ucb-xml-cflags.diff
deleted file mode 100644
index 9fda71064..000000000
--- a/patches/src680/buildfix-ucb-xml-cflags.diff
+++ /dev/null
@@ -1,18 +0,0 @@
-Index: ucb/source/ucp/webdav/makefile.mk
-===================================================================
-RCS file: /cvs/ucb/ucb/source/ucp/webdav/makefile.mk,v
-retrieving revision 1.25
-diff -u -r1.25 makefile.mk
---- ucb/source/ucp/webdav/makefile.mk 18 Oct 2005 08:47:29 -0000 1.25
-+++ ucb/source/ucp/webdav/makefile.mk 31 Oct 2005 11:39:29 -0000
-@@ -57,6 +57,10 @@
- .INCLUDE: settings.mk
- .INCLUDE: sv.mk
-
-+.IF "$(SYSTEM_LIBXML)" == "YES"
-+CFLAGS+= $(LIBXML_CFLAGS)
-+.ENDIF
-+
- .IF "$(SYSTEM_NEON)" == "YES"
- CFLAGS+= $(NEON_CFLAGS)
- .ELSE
diff --git a/patches/src680/calc-new-acceleration.diff b/patches/src680/calc-new-acceleration.diff
deleted file mode 100644
index c6db76f21..000000000
--- a/patches/src680/calc-new-acceleration.diff
+++ /dev/null
@@ -1,34 +0,0 @@
-Index: sc/uiconfig/scalc/accelerator/en-US/default.xml
-===================================================================
-RCS file: /cvs/sc/sc/uiconfig/scalc/accelerator/en-US/default.xml,v
-retrieving revision 1.3
-diff -u -r1.3 default.xml
---- sc/uiconfig/scalc/accelerator/en-US/default.xml 2 Nov 2004 12:14:03 -0000 1.3
-+++ sc/uiconfig/scalc/accelerator/en-US/default.xml 6 Apr 2005 15:13:44 -0000
-@@ -1,5 +1,8 @@
- <?xml version="1.0" encoding="UTF-8"?>
- <accel:acceleratorlist xmlns:accel="http://openoffice.org/2001/accel" xmlns:xlink="http://www.w3.org/1999/xlink">
-+ <accel:item accel:code="KEY_SUBTRACT" accel:mod1="true" xlink:href=".uno:DeleteCell"/>
-+ <accel:item accel:code="KEY_ADD" accel:mod1="true" xlink:href=".uno:InsertCell"/>
-+ <accel:item accel:code="KEY_ADD" accel:shift="true" accel:mod1="true" xlink:href=".uno:InsertCell"/>
- <accel:item accel:code="KEY_F11" accel:shift="true" xlink:href=".uno:SaveAsTemplate"/>
- <accel:item accel:code="KEY_F11" xlink:href=".uno:DesignerDialog"/>
- <accel:item accel:code="KEY_F11" accel:mod1="true" xlink:href=".uno:StyleCatalog"/>
-@@ -22,7 +25,7 @@
- <accel:item accel:code="KEY_I" accel:mod1="true" xlink:href=".uno:Italic"/>
- <accel:item accel:code="KEY_B" accel:mod1="true" xlink:href=".uno:Bold"/>
- <accel:item accel:code="KEY_U" accel:mod1="true" xlink:href=".uno:Underline"/>
-- <accel:item accel:code="KEY_1" accel:mod1="true" xlink:href=".uno:SpacePara1"/>
-+ <accel:item accel:code="KEY_1" accel:mod1="true" xlink:href=".uno:FormatCellDialog"/>
- <accel:item accel:code="KEY_5" accel:mod1="true" xlink:href=".uno:SpacePara15"/>
- <accel:item accel:code="KEY_2" accel:mod1="true" xlink:href=".uno:SpacePara2"/>
- <accel:item accel:code="KEY_F7" xlink:href=".uno:SpellDialog"/>
-@@ -89,7 +92,7 @@
- <accel:item accel:code="KEY_PAGEDOWN" accel:shift="true" accel:mod1="true" xlink:href=".uno:JumpToNextTableSel"/>
- <accel:item accel:code="KEY_PAGEUP" accel:shift="true" accel:mod1="true" xlink:href=".uno:JumpToPrevTableSel"/>
- <accel:item accel:code="KEY_F4" accel:shift="true" xlink:href=".uno:ToggleRelative"/>
-- <accel:item accel:code="KEY_D" accel:mod1="true" xlink:href=".uno:DataSelect"/>
-+ <accel:item accel:code="KEY_D" accel:mod1="true" xlink:href=".uno:FillDown"/>
- <accel:item accel:code="KEY_F" accel:shift="true" accel:mod1="true" xlink:href=".uno:RepeatSearch"/>
- <accel:item accel:code="KEY_T" accel:shift="true" accel:mod1="true" xlink:href=".uno:FocusCellAddress"/>
- <accel:item accel:code="KEY_F5" accel:shift="true" accel:mod1="true" xlink:href=".uno:FocusCellAddress"/>
diff --git a/patches/src680/capitalization.diff b/patches/src680/capitalization.diff
deleted file mode 100644
index 58df51ac6..000000000
--- a/patches/src680/capitalization.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: officecfg/registry/schema/org/openoffice/Office/Common.xcs
-===================================================================
-RCS file: /cvs/util/officecfg/registry/schema/org/openoffice/Office/Common.xcs,v
-retrieving revision 1.99
-diff -u -r1.99 Common.xcs
---- officecfg/registry/schema/org/openoffice/Office/Common.xcs 8 Sep 2004 16:01:25 -0000 1.99
-+++ officecfg/registry/schema/org/openoffice/Office/Common.xcs 11 Oct 2004 20:05:22 -0000
-@@ -971,7 +971,7 @@
- <desc>Specifies if the letter at the beginning of a sentence should be capitalized automatically.</desc>
- <label>Capitalize first letter of every sentence</label>
- </info>
-- <value>true</value>
-+ <value>false</value>
- </prop>
- <prop oor:name="ChangeUnderlineWeight" oor:type="xs:boolean">
- <!-- OldPath: AutoCorrect/Options/All -->
diff --git a/patches/src680/change-tooltipcolor-m90.diff b/patches/src680/change-tooltipcolor-m90.diff
deleted file mode 100644
index 03d745edf..000000000
--- a/patches/src680/change-tooltipcolor-m90.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- salnativewidgets-gtk.cxx.bak 2005-03-15 14:52:50.550577928 +0530
-+++ vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx 2005-03-15 14:46:59.050014136 +0530
-@@ -2848,6 +2848,7 @@
-
- // background colors
- Color aBackColor = getColor( pStyle->bg[GTK_STATE_NORMAL] );
-+ Color aBackActiveColor = getColor( pStyle->bg[GTK_STATE_ACTIVE] );
- Color aBackFieldColor = getColor( pStyle->base[ GTK_STATE_NORMAL ] );
- aStyleSet.Set3DColors( aBackColor );
- aStyleSet.SetFaceColor( aBackColor );
-@@ -2855,7 +2856,7 @@
- aStyleSet.SetWorkspaceColor( aBackColor );
- aStyleSet.SetFieldColor( aBackFieldColor );
- aStyleSet.SetWindowColor( aBackFieldColor );
-- aStyleSet.SetHelpColor( aBackColor );
-+ aStyleSet.SetHelpColor( aBackActiveColor );
- // ancient wisdom tells us a mystic algorithm how to set checked color
- if( aBackColor == COL_LIGHTGRAY )
- aStyleSet.SetCheckedColor( Color( 0xCC, 0xCC, 0xCC ) );
diff --git a/patches/src680/check-buttons-rendering-fix.diff b/patches/src680/check-buttons-rendering-fix.diff
deleted file mode 100644
index 76fca8308..000000000
--- a/patches/src680/check-buttons-rendering-fix.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- vcl/source/control/button.cxx 2005-07-06 14:49:53.000000000 +0530
-+++ vcl/source/control/button.cxx 2005-09-02 19:03:25.000000000 +0530
-@@ -446,13 +446,15 @@ void Button::ImplDrawAlignedImage( Outpu
- }
- else if ( bDrawText && !bDrawImage && !bHasSymbol )
- {
-+ Rectangle aDrawRect = aOutRect;
-+
- aOutRect = pDev->GetTextRect( aOutRect, aText, nTextStyle );
- rSize = aOutRect.GetSize();
- rPos = aOutRect.TopLeft();
-
- ImplSetFocusRect( aOutRect );
-
-- pDev->DrawText( aOutRect, aText, nTextStyle, pVector, pDisplayText );
-+ pDev->DrawText( aDrawRect, aText, nTextStyle, pVector, pDisplayText );
- return;
- }
-
diff --git a/patches/src680/cleanup-vcl-kdeint.diff b/patches/src680/cleanup-vcl-kdeint.diff
deleted file mode 100644
index 2054b8a48..000000000
--- a/patches/src680/cleanup-vcl-kdeint.diff
+++ /dev/null
@@ -1,349 +0,0 @@
---- vcl/unx/inc/kdeint.hxx 2003-11-18 15:36:49.000000000 +0100
-+++ vcl/unx/inc/kdeint.hxx 1970-01-01 01:00:00.000000000 +0100
-@@ -1,57 +0,0 @@
--/*************************************************************************
-- *
-- * OpenOffice.org - a multi-platform office productivity suite
-- *
-- * $RCSfile: kdeint.hxx,v $
-- *
-- * $Revision: 1.6 $
-- *
-- * last change: $Author: rt $ $Date: 2005/09/09 12:41:39 $
-- *
-- * The Contents of this file are made available subject to
-- * the terms of GNU Lesser General Public License Version 2.1.
-- *
-- *
-- * GNU Lesser General Public License Version 2.1
-- * =============================================
-- * Copyright 2005 by Sun Microsystems, Inc.
-- * 901 San Antonio Road, Palo Alto, CA 94303, USA
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Lesser General Public
-- * License version 2.1, as published by the Free Software Foundation.
-- *
-- * This library 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 for more details.
-- *
-- * You should have received a copy of the GNU Lesser General Public
-- * License along with this library; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-- * MA 02111-1307 USA
-- *
-- ************************************************************************/
--#ifndef _SV_KDEINT_HXX
--#define _SV_KDEINT_HXX
--
--#ifndef _SV_DTINT_HXX
--#include <dtint.hxx>
--#endif
--#ifndef _LIST_HXX
--#include <tools/list.hxx>
--#endif
--
--class KDEIntegrator : public DtIntegrator
--{
-- friend DtIntegrator* DtIntegrator::CreateDtIntegrator();
--private:
-- KDEIntegrator();
--
--public:
-- virtual ~KDEIntegrator();
--
-- virtual void GetSystemLook( AllSettings& rSettings );
--};
--
--#endif
---- vcl/unx/source/gdi/dtint.cxx 2004-05-10 17:58:19.000000000 +0200
-+++ vcl/unx/source/gdi/dtint.cxx 2004-11-03 19:53:07.947744128 +0100
-@@ -68,10 +68,10 @@
- #include <salunx.h>
- #include <X11/Xatom.h>
-
-+#include <dtint.hxx>
- #ifdef USE_CDE
- #include <cdeint.hxx>
- #endif
--#include <kdeint.hxx>
- #include <saldisp.hxx>
- #include <saldata.hxx>
- #include <wmadaptor.hxx>
-@@ -142,8 +142,6 @@ DtIntegrator* DtIntegrator::CreateDtInte
- if( aOver.equalsIgnoreAsciiCase( "cde" ) )
- return new CDEIntegrator();
- #endif
-- if( aOver.equalsIgnoreAsciiCase( "kde" ) )
-- return new KDEIntegrator();
- if( aOver.equalsIgnoreAsciiCase( "none" ) )
- return new DtIntegrator();
- }
-@@ -163,9 +161,6 @@ DtIntegrator* DtIntegrator::CreateDtInte
- }
- #endif
-
-- if( pSalDisplay->getWMAdaptor()->getWindowManagerName().EqualsAscii( "KWin" ) )
-- return new KDEIntegrator();
--
- // default: generic implementation
- return new DtIntegrator();
- }
---- vcl/unx/source/gdi/kdeint.cxx 2004-08-30 18:22:03.000000000 +0200
-+++ vcl/unx/source/gdi/kdeint.cxx 1970-01-01 01:00:00.000000000 +0100
-@@ -1,243 +0,0 @@
--/*************************************************************************
-- *
-- * OpenOffice.org - a multi-platform office productivity suite
-- *
-- * $RCSfile: kdeint.cxx,v $
-- *
-- * $Revision: 1.16 $
-- *
-- * last change: $Author: kz $ $Date: 2005/11/01 10:39:13 $
-- *
-- * The Contents of this file are made available subject to
-- * the terms of GNU Lesser General Public License Version 2.1.
-- *
-- *
-- * GNU Lesser General Public License Version 2.1
-- * =============================================
-- * Copyright 2005 by Sun Microsystems, Inc.
-- * 901 San Antonio Road, Palo Alto, CA 94303, USA
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Lesser General Public
-- * License version 2.1, as published by the Free Software Foundation.
-- *
-- * This library 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 for more details.
-- *
-- * You should have received a copy of the GNU Lesser General Public
-- * License along with this library; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-- * MA 02111-1307 USA
-- *
-- ************************************************************************/
--
--#include <kdeint.hxx>
--#include <tools/config.hxx>
--#include <settings.hxx>
--
--#include <osl/thread.h>
--
--#include <unistd.h>
--#include <cstdio>
--
--using namespace rtl;
--using namespace osl;
--
--KDEIntegrator::KDEIntegrator()
--{
-- meType = DtKDE;
--}
--
--KDEIntegrator::~KDEIntegrator()
--{
--}
--
--static const char* pTryFiles[] =
-- {
-- "/usr/share/config/kdeglobals",
-- "/opt/kde/share/config/kdeglobals",
-- "~/.kde2/share/config/kdeglobals",
-- "~/.kde/share/config/kdeglobals",
-- "~/.qt/qtrc",
-- "~/.kderc"
-- };
--
--void KDEIntegrator::GetSystemLook( AllSettings& rSettings )
--{
-- rtl_TextEncoding aEncoding = osl_getThreadTextEncoding();
--
-- StyleSettings aStyleSettings( rSettings.GetStyleSettings() );
-- // #i48001# set a default blink rate
-- aStyleSettings.SetCursorBlinkTime( 500 );
--
-- for( unsigned int i = 0; (i < sizeof( pTryFiles )/sizeof(pTryFiles[0])); i++ )
-- {
-- String aFile;
-- if( pTryFiles[i][0] == '~' )
-- {
-- aFile = aHomeDir;
-- aFile += String( pTryFiles[i]+1, aEncoding );
-- }
-- else
-- aFile = String( ByteString( pTryFiles[i] ), aEncoding );
--
-- if( access( ByteString( aFile, aEncoding ).GetBuffer(), R_OK ) )
-- continue;
--
-- #if OSL_DEBUG_LEVEL > 1
-- fprintf( stderr, "using %s for style settings\n", ByteString( aFile, aEncoding ).GetBuffer() );
-- #endif
--
-- Config aConfig( aFile );
-- ByteString aLine;
-- if( aConfig.HasGroup( "WM" ) )
-- {
-- aConfig.SetGroup( "WM" );
--
-- aLine = aConfig.ReadKey( "activeBackground" );
-- if( aLine.GetTokenCount( ',' ) >= 3 )
-- aStyleSettings.
-- SetActiveColor( Color( aLine.GetToken( 0, ',' ).ToInt32(),
-- aLine.GetToken( 1, ',' ).ToInt32(),
-- aLine.GetToken( 2, ',' ).ToInt32() ) );
-- aLine = aConfig.ReadKey( "activeBlend" );
-- if( aLine.GetTokenCount( ',' ) >= 3 )
-- aStyleSettings.
-- SetActiveColor2( Color( aLine.GetToken( 0, ',' ).ToInt32(),
-- aLine.GetToken( 1, ',' ).ToInt32(),
-- aLine.GetToken( 2, ',' ).ToInt32() ) );
--
-- aLine = aConfig.ReadKey( "inactiveBackground" );
-- if( aLine.GetTokenCount( ',' ) >= 3 )
-- aStyleSettings.
-- SetDeactiveColor( Color( aLine.GetToken( 0, ',' ).ToInt32(),
-- aLine.GetToken( 1, ',' ).ToInt32(),
-- aLine.GetToken( 2, ',' ).ToInt32() ) );
-- aLine = aConfig.ReadKey( "inactiveBlend" );
-- if( aLine.GetTokenCount( ',' ) >= 3 )
-- aStyleSettings.
-- SetDeactiveColor2( Color( aLine.GetToken( 0, ',' ).ToInt32(),
-- aLine.GetToken( 1, ',' ).ToInt32(),
-- aLine.GetToken( 2, ',' ).ToInt32() ) );
--
-- aLine = aConfig.ReadKey( "inactiveForeground" );
-- if( aLine.GetTokenCount( ',' ) >= 3 )
-- aStyleSettings.
-- SetDeactiveTextColor( Color( aLine.GetToken( 0, ',' ).ToInt32(),
-- aLine.GetToken( 1, ',' ).ToInt32(),
-- aLine.GetToken( 2, ',' ).ToInt32() ) );
-- aLine = aConfig.ReadKey( "activeForeground" );
-- if( aLine.GetTokenCount( ',' ) >= 3 )
-- aStyleSettings.
-- SetActiveTextColor( Color( aLine.GetToken( 0, ',' ).ToInt32(),
-- aLine.GetToken( 1, ',' ).ToInt32(),
-- aLine.GetToken( 2, ',' ).ToInt32() ) );
--
-- aLine = aConfig.ReadKey( "titleFont" );
-- if( aLine.Len() )
-- {
-- Font aFont= aStyleSettings.GetTitleFont();
-- String aFontName( aLine, RTL_TEXTENCODING_UTF8 );
-- if( aFontName.GetTokenCount( ',' ) > 0 )
-- aFontName = aFontName.GetToken( 0, ',' );
-- aFont.SetName( aFontName );
-- aStyleSettings.SetTitleFont( aFont );
-- }
-- }
--
-- if( aConfig.HasGroup( "General" ) )
-- {
-- aConfig.SetGroup( "General" );
--
-- aLine = aConfig.ReadKey( "foreground" );
-- if( aLine.GetTokenCount( ',' ) >= 3 )
-- {
-- Color aFore( aLine.GetToken( 0, ',' ).ToInt32(),
-- aLine.GetToken( 1, ',' ).ToInt32(),
-- aLine.GetToken( 2, ',' ).ToInt32() );
-- aStyleSettings.SetDialogTextColor( aFore );
-- aStyleSettings.SetMenuTextColor( aFore );
-- aStyleSettings.SetButtonTextColor( aFore );
-- aStyleSettings.SetRadioCheckTextColor( aFore );
-- aStyleSettings.SetGroupTextColor( aFore );
-- aStyleSettings.SetLabelTextColor( aFore );
-- aStyleSettings.SetInfoTextColor( aFore );
-- }
--
-- aLine = aConfig.ReadKey( "background" );
-- if( aLine.GetTokenCount( ',' ) >= 3 )
-- {
-- Color aBack( aLine.GetToken( 0, ',' ).ToInt32(),
-- aLine.GetToken( 1, ',' ).ToInt32(),
-- aLine.GetToken( 2, ',' ).ToInt32() );
-- aStyleSettings.Set3DColors( aBack );
-- aStyleSettings.SetFaceColor( aBack );
-- aStyleSettings.SetDialogColor( aBack );
-- aStyleSettings.SetMenuColor( aBack );
-- aStyleSettings.SetMenuBarColor( aBack );
-- if( aBack == COL_LIGHTGRAY )
-- aStyleSettings.SetCheckedColor( Color( 0xCC, 0xCC, 0xCC ) );
-- else
-- {
-- Color aColor2 = aStyleSettings.GetLightColor();
-- aStyleSettings.
-- SetCheckedColor( Color( (BYTE)(((USHORT)aBack.GetRed()+(USHORT)aColor2.GetRed())/2),
-- (BYTE)(((USHORT)aBack.GetGreen()+(USHORT)aColor2.GetGreen())/2),
-- (BYTE)(((USHORT)aBack.GetBlue()+(USHORT)aColor2.GetBlue())/2)
-- ) );
-- }
-- }
--
-- aLine = aConfig.ReadKey( "selectForeground" );
-- if( aLine.GetTokenCount( ',' ) >= 3 )
-- aStyleSettings.
-- SetHighlightTextColor( Color( aLine.GetToken( 0, ',' ).ToInt32(),
-- aLine.GetToken( 1, ',' ).ToInt32(),
-- aLine.GetToken( 2, ',' ).ToInt32() ) );
--
-- aLine = aConfig.ReadKey( "selectBackground" );
-- if( aLine.GetTokenCount( ',' ) >= 3 )
-- aStyleSettings.
-- SetHighlightColor( Color( aLine.GetToken( 0, ',' ).ToInt32(),
-- aLine.GetToken( 1, ',' ).ToInt32(),
-- aLine.GetToken( 2, ',' ).ToInt32() ) );
--
-- aLine = aConfig.ReadKey( "font" );
-- if( aLine.Len() )
-- {
-- Font aFont = aStyleSettings.GetAppFont();
-- String aFontName( aLine, RTL_TEXTENCODING_UTF8 );
-- if( aFontName.GetTokenCount( ',' ) > 0 )
-- aFontName = aFontName.GetToken( 0, ',' );
-- aFont.SetName( aFontName );
--
-- aStyleSettings.SetAppFont( aFont );
-- aStyleSettings.SetHelpFont( aFont );
-- aStyleSettings.SetTitleFont( aFont );
-- aStyleSettings.SetFloatTitleFont( aFont );
-- aStyleSettings.SetMenuFont( aFont );
-- aStyleSettings.SetToolFont( aFont );
-- aStyleSettings.SetLabelFont( aFont );
-- aStyleSettings.SetInfoFont( aFont );
-- aStyleSettings.SetRadioCheckFont( aFont );
-- aStyleSettings.SetPushButtonFont( aFont );
-- aStyleSettings.SetFieldFont( aFont );
-- aStyleSettings.SetIconFont( aFont );
-- aStyleSettings.SetGroupFont( aFont );
-- }
--
-- aLine = aConfig.ReadKey( "cursorFlashTime" );
-- if( aLine.Len() )
-- {
-- sal_Int32 nTime = aLine.ToInt32() / 2;
-- if( nTime == 0 )
-- nTime = STYLE_CURSOR_NOBLINKTIME;
-- aStyleSettings.SetCursorBlinkTime( nTime );
-- }
-- }
-- }
--
-- rSettings.SetStyleSettings( aStyleSettings );
--}
---- vcl/unx/source/gdi/makefile.mk 2004-05-10 17:58:32.000000000 +0200
-+++ vcl/unx/source/gdi/makefile.mk 2004-11-03 18:38:56.573455880 +0100
-@@ -93,7 +93,6 @@ SLOFILES= \
- $(SLO)$/xlfd_extd.obj \
- $(SLO)$/xlfd_smpl.obj \
- $(SLO)$/salgdi3.obj \
-- $(SLO)$/kdeint.obj \
- $(SLO)$/pspgraphics.obj
-
- .IF "$(USE_XPRINT)" == "TRUE"
diff --git a/patches/src680/community-splash.diff b/patches/src680/community-splash.diff
deleted file mode 100644
index a06940ef2..000000000
--- a/patches/src680/community-splash.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: svx/prj/d.lst
-===================================================================
-RCS file: /cvs/graphics/svx/prj/d.lst,v
-retrieving revision 1.108
-diff -u -r1.108 d.lst
---- svx/prj/d.lst 9 Dec 2004 16:36:45 -0000 1.108
-+++ svx/prj/d.lst 16 Dec 2004 12:43:47 -0000
-@@ -55,7 +55,7 @@
- ..\res\cjkintro.bmp %COMMON_DEST%\pck%_EXT%\starsuite_bitmap\intro.bmp
- ..\res\ofaabout.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\about.bmp
- ..\res\soffice.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\intro.bmp
--..\res\ooointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro.bmp
-+..\res\ooonologointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro.bmp
- ..\res\ooonologointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\nologointro.bmp
-
- mkdir: %_DEST%\inc%_EXT%\svx
diff --git a/patches/src680/config-mozilla-xulrunner.diff b/patches/src680/config-mozilla-xulrunner.diff
deleted file mode 100644
index 03f59245f..000000000
--- a/patches/src680/config-mozilla-xulrunner.diff
+++ /dev/null
@@ -1,28 +0,0 @@
---- config_office/configure.in.old 2005-10-17 18:06:35.000000000 +0200
-+++ config_office/configure.in 2005-10-17 19:27:45.000000000 +0200
-@@ -58,6 +58,10 @@
- [ --with-firefox Use Firefox instead of Mozilla Suite for building.
- Only honoured with --with-system-mozilla
- ],,)
-+AC_ARG_WITH(xulrunner,
-+[ --with-xulrunner Use XULRunner instead of Mozilla Suite for building.
-+ Only honoured with --with-system-mozilla
-+],,)
- AC_ARG_WITH(fonts,
- [ --without-fonts Removes Bitstream Vera fonts from
- openoffice.org installation set, for people building
-@@ -2918,10 +2922,12 @@
- if test -n "$with_system_mozilla" && test "$with_system_mozilla" != "no"; then
- AC_MSG_RESULT([external])
- SYSTEM_MOZILLA=YES
-- AC_MSG_CHECKING([whether to use Mozilla or Firefox])
-+ AC_MSG_CHECKING([whether to use Mozilla or Firefox or XULRunner])
- if test -n "$with_firefox" && test "$with_firefox" != "no"; then
- moz_flavour=firefox
-- else
-+ elif test -n "$with_xulrunner" && test "$with_xulrunner" != "no"; then
-+ moz_flavour=xulrunner
-+ else
- moz_flavour=mozilla
- fi
- tmp=`echo $moz_flavour | $PERL -e 'print ucfirst(<STDIN>);'`
diff --git a/patches/src680/config_office-openldap-fix.diff b/patches/src680/config_office-openldap-fix.diff
deleted file mode 100644
index 0c3f85904..000000000
--- a/patches/src680/config_office-openldap-fix.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- config_office/configure.in
-+++ config_office/configure.in
-@@ -2885,7 +2885,7 @@
- dnl Test whether we want to use the Mozilla or the OpenLDAP LDAP SDK
- dnl ===================================================================
- AC_MSG_CHECKING([which LDAP SDK to use])
-- if test -n "$enable_openldap"; then
-+ if test -n "$enable_openldap" && test "$enable_openldap" != "no"; then
- AC_MSG_RESULT([OpenLDAP])
- WITH_OPENLDAP=YES
- AC_CHECK_HEADERS(ldap.h, [],
diff --git a/patches/src680/config_office-system-db-4.3.diff b/patches/src680/config_office-system-db-4.3.diff
deleted file mode 100644
index e78734189..000000000
--- a/patches/src680/config_office-system-db-4.3.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- config_office/configure.in.ark 2005-07-22 12:12:41.000000000 +0200
-+++ config_office/configure.in 2005-07-22 12:13:31.000000000 +0200
-@@ -2535,8 +2535,7 @@
- ], []
- )
- AC_MSG_CHECKING([whether db is at least 4.1])
-- # FIXME: Will db 4.3 work? Can't test it since the 4.3 java bindings are not packaged :/
-- for v in 1 2; do
-+ for v in 1 2 3; do
- AC_TRY_RUN([
- #include <db.h>
-
diff --git a/patches/src680/config_office-system-mozila-python-fix.diff b/patches/src680/config_office-system-mozila-python-fix.diff
deleted file mode 100644
index f23073645..000000000
--- a/patches/src680/config_office-system-mozila-python-fix.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- config_office/configure.in.orig 2005-08-24 20:11:49.000000000 +0200
-+++ config_office/configure.in 2005-08-24 20:32:00.000000000 +0200
-@@ -2562,7 +2562,7 @@
- dnl Check for system python
- dnl ===================================================================
- AC_MSG_CHECKING([which python to use])
--if test -n "$with_system_python"; then
-+if test -n "$with_system_python" && test "$with_system_python" != "no"; then
- SYSTEM_PYTHON=YES
- AC_MSG_RESULT([external])
- AM_PATH_PYTHON([2.2])
-@@ -2821,7 +2821,7 @@
- dnl Check for system mozilla
- dnl ===================================================================
- AC_MSG_CHECKING([which mozilla to use])
--if test -n "$with_system_mozilla"; then
-+if test -n "$with_system_mozilla" && test "$with_system_mozilla" != "no"; then
- AC_MSG_RESULT([external])
- SYSTEM_MOZILLA=YES
- AC_MSG_CHECKING([whether to use Mozilla or Firefox])
diff --git a/patches/src680/connectivity-source-drivers-mdb-config-h.diff b/patches/src680/connectivity-source-drivers-mdb-config-h.diff
deleted file mode 100644
index 4ab306387..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-config-h.diff
+++ /dev/null
@@ -1,4 +0,0 @@
---- /dev/null 2005-03-19 20:36:14.000000000 +0100
-+++ connectivity/source/drivers/mdb/config.h 2005-08-16 11:33:50.389728866 +0200
-@@ -0,0 +1 @@
-+/* dummy. mdbtools' header includes config.h... Make it happy */
diff --git a/patches/src680/connectivity-source-drivers-mdb-dataaccess-xcu.diff b/patches/src680/connectivity-source-drivers-mdb-dataaccess-xcu.diff
deleted file mode 100644
index 2f591e250..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-dataaccess-xcu.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/DataAccess.xcu 2005-06-29 11:18:53.000000000 +0530
-@@ -0,0 +1,16 @@
-+<?xml version="1.0" encoding="UTF-8"?>
-+<oor:node xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:name="DataAccess" oor:package="org.openoffice.Office">
-+ <node oor:name="UserDefinedDriverSettings">
-+ <node oor:name="MDB Driver" oor:op="replace">
-+ <prop oor:name="DriverPageDisplayName">
-+ <value>MDB-SDBC Driver V 0.1</value>
-+ </prop>
-+ <prop oor:name="DriverTypeDisplayName">
-+ <value>mdb</value>
-+ </prop>
-+ <prop oor:name="DriverDsnPrefix">
-+ <value>sdbc:mdb:</value>
-+ </prop>
-+ </node>
-+ </node>
-+</oor:node>
diff --git a/patches/src680/connectivity-source-drivers-mdb-exports-dxp.diff b/patches/src680/connectivity-source-drivers-mdb-exports-dxp.diff
deleted file mode 100644
index 4e3714e06..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-exports-dxp.diff
+++ /dev/null
@@ -1,6 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/exports.dxp 2005-06-29 11:18:53.000000000 +0530
-@@ -0,0 +1,3 @@
-+component_getImplementationEnvironment
-+component_writeInfo
-+component_getFactory
diff --git a/patches/src680/connectivity-source-drivers-mdb-makefile-mk.diff b/patches/src680/connectivity-source-drivers-mdb-makefile-mk.diff
deleted file mode 100644
index a2c57648f..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-makefile-mk.diff
+++ /dev/null
@@ -1,178 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/makefile.mk 2005-07-29 10:50:28.000000000 +0530
-@@ -0,0 +1,175 @@
-+#*************************************************************************
-+#
-+# $RCSfile$
-+#
-+# $Revision$
-+#
-+# last change: $Author$ $Date$
-+#
-+# The Contents of this file are made available subject to the terms of
-+# either of the following licenses
-+#
-+# - GNU Lesser General Public License Version 2.1
-+# - Sun Industry Standards Source License Version 1.1
-+#
-+# Sun Microsystems Inc., October, 2000
-+#
-+# GNU Lesser General Public License Version 2.1
-+# =============================================
-+# Copyright 2000 by Sun Microsystems, Inc.
-+# 901 San Antonio Road, Palo Alto, CA 94303, USA
-+#
-+# This library is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU Lesser General Public
-+# License version 2.1, as published by the Free Software Foundation.
-+#
-+# This library 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 for more details.
-+#
-+# You should have received a copy of the GNU Lesser General Public
-+# License along with this library; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+# MA 02111-1307 USA
-+#
-+#
-+# Sun Industry Standards Source License Version 1.1
-+# =================================================
-+# The contents of this file are subject to the Sun Industry Standards
-+# Source License Version 1.1 (the "License"); You may not use this file
-+# except in compliance with the License. You may obtain a copy of the
-+# License at http://www.openoffice.org/license.html.
-+#
-+# Software provided under this License is provided on an "AS IS" basis,
-+# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+# See the License for the specific provisions governing your rights and
-+# obligations concerning the Software.
-+#
-+# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+#
-+# Copyright: 2000 by Sun Microsystems, Inc.
-+#
-+# All Rights Reserved.
-+#
-+# Contributor(s): Alexandre Horst
-+#
-+#
-+#
-+#*************************************************************************
-+
-+PRJ=..$/..$/..
-+PRJINC=..$/..
-+PRJNAME=connectivity
-+TARGET=mdb
-+
-+ENABLE_EXCEPTIONS=TRUE
-+
-+# --- Settings -----------------------------------------------------
-+
-+.INCLUDE : settings.mk
-+.INCLUDE : $(PRJ)$/version.mk
-+
-+PKGCONFIG_MODULES=glib-2.0
-+.INCLUDE : pkg_config.mk
-+
-+
-+MDB_MAJOR=0
-+MDB_MINOR=1
-+MDB_MICRO=1
-+
-+# --- Files -------------------------------------
-+
-+.IF "$(ENABLE_ACCESS)"=="YES"
-+
-+.IF "$(GUI)"=="UNX"
-+LIB2OBJFILES= \
-+ $(SLO)$/mdb_wrapper.obj \
-+ $(SLO)$/mdb_connection.obj \
-+ $(SLO)$/mdb_statement.obj \
-+ $(SLO)$/mdb_resultset.obj \
-+ $(SLO)$/mdb_preparedstatement.obj \
-+ $(SLO)$/mdb_resultsetmetadata.obj \
-+ $(SLO)$/mdb_databasemetadata.obj \
-+ $(SLO)$/mdb_sequenceresultset.obj \
-+ $(SLO)$/mdb_baseresultset.obj
-+
-+LIB1OBJFILES= \
-+ $(SLO)$/mdb_driver.obj
-+
-+
-+# --- Library -----------------------------------
-+
-+CFLAGS+=\
-+ -DSQL=1 \
-+ -DMDBTOOLS_MAJOR=$(MDB_MAJOR) \
-+ -DMDBTOOLS_MINOR=$(MDB_MINOR) \
-+ -DMDBTOOLS_MICRO=$(MDB_MICRO) \
-+ -DMDB_MAJOR=$(MDB_MAJOR) \
-+ -DMDB_MINOR=$(MDB_MINOR) \
-+ -DMDB_MICRO=$(MDB_MICRO) \
-+ $(MDBTOOLS_CFLAGS)
-+
-+CFLAGS+= $(PKGCONFIG_CFLAGS)
-+
-+.IF "$(SYSTEM_MDBTOOLS)" == "YES"
-+CFLAGS+= -DSYSTEM_MDBTOOLS
-+.ENDIF
-+
-+SHL1TARGET=$(TARGET)$(UPD)$(DLLPOSTFIX)
-+LIB1TARGET=$(SLB)$/$(SHL1TARGET).lib
-+SHL1OBJS=$(LIB1OBJFILES)
-+SHL1STDLIBS= \
-+ $(CPPULIB) \
-+ $(CPPUHELPERLIB) \
-+ $(SALLIB)\
-+ $(PKGCONFIG_LIBS) \
-+ -lmdbsql \
-+ -lmdb
-+
-+SHL1DEPN=
-+SHL1IMPLIB= i$(TARGET)
-+
-+SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-+
-+DEF1NAME= $(SHL1TARGET)
-+DEF1EXPORTFILE=exports.dxp
-+
-+
-+SHL2TARGET=$(TARGET)impl$(UPD)$(DLLPOSTFIX)
-+LIB2TARGET=$(SLB)$/$(SHL2TARGET).lib
-+SHL2OBJS=$(LIB2OBJFILES)
-+SHL2STDLIBS= \
-+ $(CPPULIB) \
-+ $(CPPUHELPERLIB) \
-+ $(SALLIB) \
-+ $(SALHELPERLIB) \
-+ $(VOSLIB) \
-+ $(DBTOOLSLIB) \
-+ $(PKGCONFIG_LIBS)\
-+ -lmdbsql \
-+ -lmdb
-+
-+SHL2DEPN=
-+SHL2IMPLIB= i$(TARGET)impl
-+
-+SHL2DEF= $(MISC)$/$(SHL2TARGET).def
-+
-+DEF2NAME= $(SHL2TARGET)
-+DEF2EXPORTFILE=exports.dxp
-+
-+
-+.ENDIF
-+
-+# --- Targets ----------------------------------
-+
-+.INCLUDE : target.mk
-+
-+.ELSE
-+
-+dummy:
-+ @echo "Access disabled in configure"
-+
-+.ENDIF
diff --git a/patches/src680/connectivity-source-drivers-mdb-mdb-allocator-hxx.diff b/patches/src680/connectivity-source-drivers-mdb-mdb-allocator-hxx.diff
deleted file mode 100644
index 54e8639e1..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-mdb-allocator-hxx.diff
+++ /dev/null
@@ -1,220 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/mdb_allocator.hxx 2005-06-29 11:18:53.000000000 +0530
-@@ -0,0 +1,217 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2002 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _MDB_ALLOCATOR_
-+#define _MDB_ALLOCATOR_
-+
-+#include <cstddef>
-+#include "sal/types.h"
-+
-+/** jbu: This source has been copied from sal/inc/internal/allocator.hxx,
-+ because it is not a public interface. Thx a lot for figuring this
-+ out.
-+ */
-+
-+//######################################################
-+// This is no general purpose STL allocator but one
-+// necessary to use STL for some implementation but
-+// avoid linking sal against the STLPort library!!!
-+// For more information on when and how to define a
-+// custom stl allocator have a look at Scott Meyers:
-+// "Effective STL", Nicolai M. Josuttis:
-+// "The C++ Standard Library - A Tutorial and Reference"
-+// and at http://www.josuttis.com/cppcode/allocator.html
-+
-+namespace mdb_sdbc_driver {
-+
-+template<class T>
-+class Allocator
-+{
-+public:
-+ typedef T value_type;
-+ typedef T* pointer;
-+ typedef const T* const_pointer;
-+ typedef T& reference;
-+ typedef const T& const_reference;
-+ typedef ::std::size_t size_type;
-+ typedef ::std::ptrdiff_t difference_type;
-+
-+ //-----------------------------------------
-+ template<class U>
-+ struct rebind
-+ {
-+ typedef Allocator<U> other;
-+ };
-+
-+ //-----------------------------------------
-+ pointer address (reference value) const
-+ {
-+ return &value;
-+ }
-+
-+ //-----------------------------------------
-+ const_pointer address (const_reference value) const
-+ {
-+ return &value;
-+ }
-+
-+ //-----------------------------------------
-+ Allocator() SAL_THROW(())
-+ {}
-+
-+ //-----------------------------------------
-+ template<class U>
-+ Allocator (const Allocator<U>&) SAL_THROW(())
-+ {}
-+
-+ //-----------------------------------------
-+ Allocator(const Allocator&) SAL_THROW(())
-+ {}
-+
-+ //-----------------------------------------
-+ ~Allocator() SAL_THROW(())
-+ {}
-+
-+ //-----------------------------------------
-+ size_type max_size() const SAL_THROW(())
-+ {
-+ return size_type(-1)/sizeof(T);
-+ }
-+
-+ //-----------------------------------------
-+ /* Normally the code for allocate should
-+ throw a std::bad_alloc exception if the
-+ requested memory could not be allocated:
-+ (C++ standard 20.4.1.1):
-+
-+ pointer allocate (size_type n, const void* hint = 0)
-+ {
-+ pointer p = reinterpret_cast<pointer>(
-+ rtl_allocateMemory(sal_uInt32(n * sizeof(T))));
-+
-+ if (NULL == p)
-+ throw ::std::bad_alloc();
-+
-+ return p;
-+ }
-+
-+ but some compilers do not compile it if exceptions
-+ are not enabled, e.g. GCC under Linux and it is
-+ in general not desired to compile sal with exceptions
-+ enabled. */
-+ pointer allocate (size_type n, const void* hint = 0)
-+ {
-+ return reinterpret_cast<pointer>(
-+ rtl_allocateMemory(sal_uInt32(n * sizeof(T))));
-+ }
-+
-+ //-----------------------------------------
-+ void deallocate (pointer p, size_type n)
-+ {
-+ rtl_freeMemory(p);
-+ }
-+
-+ //-----------------------------------------
-+ void construct (pointer p, const T& value)
-+ {
-+ new ((void*)p)T(value);
-+ }
-+
-+ //-----------------------------------------
-+ void destroy (pointer p)
-+ {
-+ p->~T();
-+ }
-+};
-+
-+//######################################################
-+// Custom STL allocators must be stateless (see
-+// references above) that's why the operators below
-+// return always true or false
-+template<class T, class U>
-+inline bool operator== (const Allocator<T>&, const Allocator<U>&) SAL_THROW(())
-+{
-+ return true;
-+}
-+
-+template<class T, class U>
-+inline bool operator!= (const Allocator<T>&, const Allocator<U>&) SAL_THROW(())
-+{
-+ return false;
-+}
-+
-+} /* namespace sal */
-+
-+//######################################################
-+/* REQUIRED BY STLPort (see stlport '_alloc.h'):
-+ Hack for compilers that do not support member
-+ template classes (e.g. MSVC 6) */
-+namespace _STL
-+{
-+ template<class T, class U>
-+ inline mdb_sdbc_driver::Allocator<U> & __stl_alloc_rebind (
-+ mdb_sdbc_driver::Allocator<T> & a, U const *)
-+ {
-+ return (mdb_sdbc_driver::Allocator<U>&)(a);
-+ }
-+}
-+
-+#endif /* INCLUDED_SAL_INTERNAL_ALLOCATOR_HXX */
diff --git a/patches/src680/connectivity-source-drivers-mdb-mdb-baseresultset-cxx.diff b/patches/src680/connectivity-source-drivers-mdb-mdb-baseresultset-cxx.diff
deleted file mode 100644
index 399ee1aa1..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-mdb-baseresultset-cxx.diff
+++ /dev/null
@@ -1,708 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/mdb_baseresultset.cxx 2005-06-29 11:18:53.000000000 +0530
-@@ -0,0 +1,705 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Joerg Budischewski
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Joerg Budischewski
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include <osl/thread.h>
-+
-+#include <rtl/ustrbuf.hxx>
-+
-+#include <cppuhelper/typeprovider.hxx>
-+#include <cppuhelper/queryinterface.hxx>
-+
-+#include "mdb_statement.hxx"
-+#include "mdb_baseresultset.hxx"
-+#include "mdb_resultsetmetadata.hxx"
-+
-+#include <com/sun/star/lang/DisposedException.hpp>
-+
-+using osl::Mutex;
-+using osl::MutexGuard;
-+
-+using rtl::OUString;
-+using rtl::OUStringToOString;
-+using rtl::OUStringBuffer;
-+using rtl::OString;
-+
-+using com::sun::star::beans::XPropertySetInfo;
-+using com::sun::star::beans::XPropertySet;
-+using com::sun::star::beans::XMultiPropertySet;
-+using com::sun::star::beans::XFastPropertySet;
-+
-+using com::sun::star::uno::Any;
-+using com::sun::star::uno::makeAny;
-+using com::sun::star::uno::Type;
-+using com::sun::star::uno::RuntimeException;
-+using com::sun::star::uno::Exception;
-+using com::sun::star::uno::Sequence;
-+using com::sun::star::uno::Reference;
-+using com::sun::star::uno::XInterface;
-+
-+using com::sun::star::lang::IllegalArgumentException;
-+
-+using com::sun::star::sdbc::XWarningsSupplier;
-+using com::sun::star::sdbc::XCloseable;
-+using com::sun::star::sdbc::XStatement;
-+using com::sun::star::sdbc::XResultSet;
-+using com::sun::star::sdbc::XConnection;
-+using com::sun::star::sdbc::SQLException;
-+using com::sun::star::sdbc::XRow;
-+using com::sun::star::sdbc::XColumnLocate;
-+using com::sun::star::sdbc::XResultSetMetaData;
-+using com::sun::star::sdbc::XResultSetMetaDataSupplier;
-+
-+
-+using com::sun::star::beans::Property;
-+
-+namespace mdb_sdbc_driver
-+{
-+#define ASCII_STR(x) OUString( RTL_CONSTASCII_USTRINGPARAM( x ) )
-+
-+static ::cppu::IPropertyArrayHelper & getResultSetPropertyArrayHelper()
-+{
-+ static ::cppu::IPropertyArrayHelper *pArrayHelper;
-+ if( ! pArrayHelper )
-+ {
-+ MutexGuard guard( Mutex::getGlobalMutex() );
-+ if( ! pArrayHelper )
-+ {
-+ static Property aTable[] =
-+ {
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("CursorName") ), 0,
-+ ::getCppuType( (OUString *)0) , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("EscapeProcessing") ), 0,
-+ ::getBooleanCppuType() , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("FetchDirection") ), 0,
-+ ::getCppuType( (sal_Int32 *)0) , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("FetchSize") ), 0,
-+ ::getCppuType( (sal_Int32 *)0) , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("ResultSetConcurrency") ), 0,
-+ ::getCppuType( (sal_Int32 *)0) , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("ResultSetType") ), 0,
-+ ::getCppuType( (sal_Int32 *)0) , 0 )
-+ };
-+ OSL_ASSERT( sizeof(aTable) / sizeof(Property) == BASERESULTSET_SIZE );
-+ static ::cppu::OPropertyArrayHelper arrayHelper( aTable, BASERESULTSET_SIZE, sal_True );
-+ pArrayHelper = &arrayHelper;
-+ }
-+ }
-+ return *pArrayHelper;
-+}
-+
-+BaseResultSet::BaseResultSet(
-+ const ::rtl::Reference< RefCountedMutex > & refMutex,
-+ const Reference< XInterface > & owner,
-+ sal_Int32 rowCount,
-+ sal_Int32 colCount,
-+ const Reference< com::sun::star::script::XTypeConverter > & tc )
-+ : OComponentHelper( refMutex->mutex ),
-+ OPropertySetHelper( OComponentHelper::rBHelper ),
-+ m_refMutex( refMutex ),
-+ m_owner( owner ),
-+ m_row( -1 ),
-+ m_rowCount( rowCount ),
-+ m_fieldCount( colCount ),
-+ m_tc( tc )
-+{
-+ POSTGRE_TRACE( "ctor BaseResultSet" );
-+}
-+
-+BaseResultSet::~BaseResultSet()
-+{
-+ POSTGRE_TRACE( "dtor BaseResultSet" );
-+}
-+
-+Any BaseResultSet::queryInterface( const Type & reqType ) throw (RuntimeException)
-+{
-+ Any ret;
-+
-+ ret = OComponentHelper::queryInterface( reqType );
-+ if( ! ret.hasValue() )
-+ ret = ::cppu::queryInterface( reqType,
-+ static_cast< XResultSet * > ( this ),
-+ static_cast< XResultSetMetaDataSupplier * > ( this ),
-+ static_cast< XRow * > ( this ),
-+ static_cast< XColumnLocate * > ( this ),
-+ static_cast< XCloseable * > ( this ),
-+ static_cast< XPropertySet * > ( this ),
-+ static_cast< XMultiPropertySet * > ( this ),
-+ static_cast< XFastPropertySet * > ( this ) );
-+ return ret;
-+}
-+
-+// void BaseResultSet::close( ) throw (SQLException, RuntimeException)
-+// {
-+// Reference< XInterface > owner;
-+// {
-+// ResultSetGuard guard(*this);
-+// if( m_result )
-+// {
-+// PQclear(m_result );
-+// m_result = 0;
-+// m_row = -1;
-+// }
-+// owner = m_owner;
-+// m_owner.clear();
-+// }
-+// }
-+
-+Sequence<Type > BaseResultSet::getTypes() throw( RuntimeException )
-+{
-+ static cppu::OTypeCollection *pCollection;
-+ if( ! pCollection )
-+ {
-+ MutexGuard guard( osl::Mutex::getGlobalMutex() );
-+ if( !pCollection )
-+ {
-+ static cppu::OTypeCollection collection(
-+ getCppuType( (Reference< XResultSet> *) 0 ),
-+ getCppuType( (Reference< XResultSetMetaDataSupplier> *) 0 ),
-+ getCppuType( (Reference< XRow> *) 0 ),
-+ getCppuType( (Reference< XColumnLocate> *) 0 ),
-+ getCppuType( (Reference< XCloseable> *) 0 ),
-+ getCppuType( (Reference< XPropertySet >*) 0 ),
-+ getCppuType( (Reference< XFastPropertySet > *) 0 ),
-+ getCppuType( (Reference< XMultiPropertySet > *) 0 ),
-+ OComponentHelper::getTypes());
-+ pCollection = &collection;
-+ }
-+ }
-+ return pCollection->getTypes();
-+}
-+
-+Sequence< sal_Int8> BaseResultSet::getImplementationId() throw( RuntimeException )
-+{
-+ static cppu::OImplementationId *pId;
-+ if( ! pId )
-+ {
-+ MutexGuard guard( osl::Mutex::getGlobalMutex() );
-+ if( ! pId )
-+ {
-+ static cppu::OImplementationId id(sal_False);
-+ pId = &id;
-+ }
-+ }
-+ return pId->getImplementationId();
-+}
-+
-+// Reference< XResultSetMetaData > BaseResultSet::getMetaData( ) throw (SQLException, RuntimeException)
-+// {
-+// ResultSetGuard guard(*this);
-+// checkClosed();
-+// return new ResultSetMetaData( m_refMutex, this, &m_result );
-+// }
-+
-+sal_Bool BaseResultSet::next( ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ m_row ++;
-+ return m_row < m_rowCount;
-+}
-+
-+sal_Bool BaseResultSet::isBeforeFirst( ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return m_row == -1;
-+}
-+
-+sal_Bool BaseResultSet::isAfterLast( ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return m_row >= m_rowCount;
-+}
-+
-+sal_Bool BaseResultSet::isFirst( ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return m_row == 0 && m_rowCount;
-+}
-+
-+sal_Bool BaseResultSet::isLast( ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return m_row >= 0 && m_row + 1 == m_rowCount;
-+}
-+
-+void BaseResultSet::beforeFirst( ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ m_row = -1;
-+}
-+
-+void BaseResultSet::afterLast( ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ m_row = m_rowCount;
-+}
-+
-+sal_Bool BaseResultSet::first( ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ sal_Bool bRet = ( m_rowCount > 0 );
-+ if( bRet )
-+ m_row = 0;
-+ return bRet;
-+}
-+
-+sal_Bool BaseResultSet::last( ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ sal_Bool bRet = ( m_rowCount > 0 );
-+ if( bRet )
-+ m_row = m_rowCount -1;
-+ return bRet;
-+}
-+
-+sal_Int32 BaseResultSet::getRow( ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return m_row +1;
-+}
-+
-+sal_Bool BaseResultSet::absolute( sal_Int32 row ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ if( row > 0 )
-+ {
-+ m_row = row -1;
-+ if( m_row > m_rowCount )
-+ m_row = m_rowCount;
-+ }
-+ else
-+ {
-+ m_row = m_rowCount + row;
-+ if( m_row < -1 )
-+ m_row = -1;
-+ }
-+ return sal_True;
-+}
-+
-+sal_Bool BaseResultSet::relative( sal_Int32 rows ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ m_row += rows;
-+
-+ if( m_row > m_rowCount )
-+ m_row = m_rowCount;
-+ else if ( m_row < -1 )
-+ m_row = -1;
-+ return sal_True;
-+}
-+
-+sal_Bool BaseResultSet::previous( ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ sal_Bool bRet = ( m_row != -1 );
-+ if( bRet )
-+ m_row --;
-+ return bRet;
-+}
-+
-+void BaseResultSet::refreshRow( ) throw (SQLException, RuntimeException)
-+{
-+ // TODO: not supported for now
-+}
-+
-+sal_Bool BaseResultSet::rowUpdated( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool BaseResultSet::rowInserted( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool BaseResultSet::rowDeleted( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+Reference< XInterface > BaseResultSet::getStatement() throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return m_owner;
-+}
-+
-+
-+//----------------- XRow interface ----------------------------------------------------
-+
-+sal_Bool BaseResultSet::wasNull( ) throw (SQLException, RuntimeException)
-+{
-+ return m_wasNull;
-+}
-+
-+Any BaseResultSet::convertTo( const OUString & str , const Type & type )
-+{
-+ Any aRet;
-+ try
-+ {
-+ aRet = m_tc->convertTo( makeAny(str), type );
-+ }
-+ catch( com::sun::star::lang::IllegalArgumentException & e )
-+ {}
-+ catch( com::sun::star::script::CannotConvertException & e )
-+ {}
-+ return aRet;
-+}
-+
-+sal_Bool BaseResultSet::getBoolean( sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( columnIndex );
-+
-+ sal_Bool b = sal_False;
-+
-+ OUString str = getValueAsString( columnIndex );
-+
-+ if( str.getLength() > 0 )
-+ {
-+ switch(str[0])
-+ {
-+ case '1':
-+ case 't':
-+ case 'T':
-+ case 'y':
-+ case 'Y':
-+
-+ return sal_True;
-+ }
-+ }
-+ return sal_False;
-+}
-+
-+sal_Int8 BaseResultSet::getByte( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( columnIndex );
-+ sal_Int8 b = 0;
-+ convertTo( getValueAsString( columnIndex ), getCppuType( &b )) >>= b;
-+ return b;
-+}
-+
-+sal_Int16 BaseResultSet::getShort( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( columnIndex );
-+ sal_Int16 i = 0;
-+ convertTo( getValueAsString( columnIndex ), getCppuType( &i )) >>= i;
-+ return i;
-+}
-+
-+OUString BaseResultSet::getString( sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard(m_refMutex->mutex);
-+ checkClosed();
-+ checkColumnIndex( columnIndex );
-+ OUString ret = getValueAsString( columnIndex );
-+ return ret;
-+}
-+
-+sal_Int32 BaseResultSet::getInt( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( columnIndex );
-+ sal_Int32 i = 0;
-+ convertTo( getValueAsString( columnIndex ), getCppuType( &i )) >>= i;
-+ return i;
-+}
-+
-+sal_Int64 BaseResultSet::getLong( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( columnIndex );
-+ sal_Int64 i = 0;
-+ convertTo( getValueAsString( columnIndex ), getCppuType( &i )) >>= i;
-+ return i;
-+}
-+
-+float BaseResultSet::getFloat( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( columnIndex );
-+ float f = 0.;
-+ convertTo( getValueAsString( columnIndex ), getCppuType( &f )) >>= f;
-+ return f;
-+}
-+
-+double BaseResultSet::getDouble( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( columnIndex );
-+ double d = 0.;
-+ convertTo( getValueAsString( columnIndex ), getCppuType( &d )) >>= d;
-+ return d;
-+}
-+
-+Sequence< sal_Int8 > BaseResultSet::getBytes( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( columnIndex );
-+
-+ // is not supported
-+// m_wasNull = PQgetisnull( m_result, m_row, columnIndex -1 );
-+// size_t length;
-+// char * res = (char*) PQunescapeBytea(
-+// (unsigned char*) PQgetvalue( m_result, m_row, columnIndex -1 ), &length);
-+// Sequence< sal_Int8 > ret( (sal_Int8*)res, length );
-+// if( res )
-+// free( res );
-+// return ret;
-+ return Sequence< sal_Int8 > ();
-+}
-+
-+::com::sun::star::util::Date BaseResultSet::getDate( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ return com::sun::star::util::Date();
-+}
-+
-+::com::sun::star::util::Time BaseResultSet::getTime( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ return com::sun::star::util::Time();
-+}
-+
-+::com::sun::star::util::DateTime BaseResultSet::getTimestamp( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ return com::sun::star::util::DateTime();
-+}
-+
-+Reference< ::com::sun::star::io::XInputStream > BaseResultSet::getBinaryStream( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ return 0;
-+}
-+
-+Reference< ::com::sun::star::io::XInputStream > BaseResultSet::getCharacterStream( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ return 0;
-+}
-+
-+Any BaseResultSet::getObject(
-+ sal_Int32 columnIndex,
-+ const Reference< ::com::sun::star::container::XNameAccess >& typeMap )
-+ throw (SQLException, RuntimeException)
-+{
-+ return Any();
-+}
-+
-+Reference< ::com::sun::star::sdbc::XRef > BaseResultSet::getRef( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ return Reference< com::sun::star::sdbc::XRef > ();
-+}
-+
-+Reference< ::com::sun::star::sdbc::XBlob > BaseResultSet::getBlob( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ return Reference< com::sun::star::sdbc::XBlob > ();
-+}
-+
-+Reference< ::com::sun::star::sdbc::XClob > BaseResultSet::getClob( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ return Reference< com::sun::star::sdbc::XClob > ();
-+}
-+
-+Reference< ::com::sun::star::sdbc::XArray > BaseResultSet::getArray( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ return Reference< com::sun::star::sdbc::XArray > ();
-+}
-+
-+
-+::cppu::IPropertyArrayHelper & BaseResultSet::getInfoHelper()
-+{
-+ return getResultSetPropertyArrayHelper();
-+}
-+
-+
-+sal_Bool BaseResultSet::convertFastPropertyValue(
-+ Any & rConvertedValue, Any & rOldValue, sal_Int32 nHandle, const Any& rValue )
-+ throw (IllegalArgumentException)
-+{
-+ sal_Bool bRet;
-+ switch( nHandle )
-+ {
-+ case BASERESULTSET_CURSOR_NAME:
-+ {
-+ OUString val;
-+ bRet = ( rValue >>= val );
-+ m_props[nHandle] = makeAny( val );
-+ break;
-+ }
-+ case BASERESULTSET_ESCAPE_PROCESSING:
-+ {
-+ sal_Bool val;
-+ bRet = ( rValue >>= val );
-+ m_props[nHandle] = makeAny( val );
-+ break;
-+ }
-+ case BASERESULTSET_FETCH_DIRECTION:
-+ case BASERESULTSET_FETCH_SIZE:
-+ case BASERESULTSET_RESULT_SET_CONCURRENCY:
-+ case BASERESULTSET_RESULT_SET_TYPE:
-+ {
-+ sal_Int32 val;
-+ bRet = ( rValue >>= val );
-+ m_props[nHandle] = makeAny( val );
-+ break;
-+ }
-+ default:
-+ {
-+ OUStringBuffer buf(128);
-+ buf.appendAscii( "mdb_resultset: Invalid property handle (" );
-+ buf.append( nHandle );
-+ buf.appendAscii( ")" );
-+ throw IllegalArgumentException( buf.makeStringAndClear(), *this, 2 );
-+ }
-+ }
-+ return bRet;
-+}
-+
-+
-+void BaseResultSet::setFastPropertyValue_NoBroadcast(
-+ sal_Int32 nHandle,const Any& rValue ) throw (Exception)
-+{
-+ m_props[nHandle] = rValue;
-+}
-+
-+void BaseResultSet::getFastPropertyValue( Any& rValue, sal_Int32 nHandle ) const
-+{
-+ rValue = m_props[nHandle];
-+}
-+
-+Reference < XPropertySetInfo > BaseResultSet::getPropertySetInfo()
-+ throw(RuntimeException)
-+{
-+ return OPropertySetHelper::createPropertySetInfo( getResultSetPropertyArrayHelper() );
-+}
-+
-+void BaseResultSet::disposing()
-+{
-+ close();
-+}
-+
-+void BaseResultSet::checkColumnIndex(sal_Int32 index ) throw ( SQLException, RuntimeException )
-+{
-+ if( index < 1 || index > m_fieldCount )
-+ {
-+ OUStringBuffer buf(128);
-+ buf.appendAscii( "mdb_resultset: index out of range (" );
-+ buf.append( index );
-+ buf.appendAscii( ", allowed range is 1 to " );
-+ buf.append( m_fieldCount );
-+ buf.appendAscii( ")" );
-+ throw SQLException( buf.makeStringAndClear(), *this, OUString(), 1, Any() );
-+ }
-+
-+ if( m_row < 0 || m_row >= m_rowCount )
-+ {
-+ OUStringBuffer buf( 128 );
-+ buf.appendAscii( "mdb_resultset: row index out of range, allowed is 1 to " );
-+ buf.append( m_rowCount );
-+ buf.appendAscii( ", got " );
-+ buf.append( index );
-+ throw SQLException( buf.makeStringAndClear(), *this, OUString(),1, Any() );
-+ }
-+}
-+
-+
-+}
diff --git a/patches/src680/connectivity-source-drivers-mdb-mdb-baseresultset-hxx.diff b/patches/src680/connectivity-source-drivers-mdb-mdb-baseresultset-hxx.diff
deleted file mode 100644
index dc284a9b0..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-mdb-baseresultset-hxx.diff
+++ /dev/null
@@ -1,270 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/mdb_baseresultset.hxx 2005-06-29 11:18:53.000000000 +0530
-@@ -0,0 +1,267 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Joerg Budischewski
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Joerg Budischewski
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _PG_BASERESULTSET_HXX_
-+#define _PG_BASERESULTSET_HXX_
-+
-+#include <cppuhelper/propshlp.hxx>
-+#include <cppuhelper/component.hxx>
-+
-+#include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp>
-+#include <com/sun/star/sdbc/XRow.hpp>
-+#include <com/sun/star/sdbc/XCloseable.hpp>
-+#include <com/sun/star/sdbc/XColumnLocate.hpp>
-+#include "mdb_connection.hxx"
-+
-+namespace mdb_sdbc_driver
-+{
-+
-+static const sal_Int32 BASERESULTSET_CURSOR_NAME = 0;
-+static const sal_Int32 BASERESULTSET_ESCAPE_PROCESSING = 1;
-+static const sal_Int32 BASERESULTSET_FETCH_DIRECTION = 2;
-+static const sal_Int32 BASERESULTSET_FETCH_SIZE = 3;
-+static const sal_Int32 BASERESULTSET_RESULT_SET_CONCURRENCY = 4;
-+static const sal_Int32 BASERESULTSET_RESULT_SET_TYPE = 5;
-+
-+#define BASERESULTSET_SIZE 6
-+
-+class BaseResultSet : public cppu::OComponentHelper,
-+ public cppu::OPropertySetHelper,
-+ public com::sun::star::sdbc::XCloseable,
-+ public com::sun::star::sdbc::XResultSetMetaDataSupplier,
-+ public com::sun::star::sdbc::XResultSet,
-+ public com::sun::star::sdbc::XRow,
-+ public com::sun::star::sdbc::XColumnLocate
-+{
-+protected:
-+ com::sun::star::uno::Any m_props[BASERESULTSET_SIZE];
-+ com::sun::star::uno::Reference< com::sun::star::uno::XInterface > m_owner;
-+ com::sun::star::uno::Reference< com::sun::star::script::XTypeConverter > m_tc;
-+ ::rtl::Reference< RefCountedMutex > m_refMutex;
-+ sal_Int32 m_row;
-+ sal_Int32 m_rowCount;
-+ sal_Int32 m_fieldCount;
-+ sal_Bool m_wasNull;
-+
-+public:
-+ inline cppu::OBroadcastHelper & getRBHelper() { return OComponentHelper::rBHelper;}
-+
-+protected:
-+ /** mutex should be locked before called
-+ */
-+ virtual void checkClosed()
-+ throw ( com::sun::star::sdbc::SQLException, com::sun::star::uno::RuntimeException ) = 0;
-+ virtual void checkColumnIndex( sal_Int32 index )
-+ throw ( com::sun::star::sdbc::SQLException, com::sun::star::uno::RuntimeException );
-+
-+ virtual ::rtl::OUString getValueAsString( sal_Int32 columnIndex ) = 0;
-+ com::sun::star::uno::Any convertTo(
-+ const ::rtl::OUString &str, const com::sun::star::uno::Type &type );
-+
-+protected:
-+ BaseResultSet(
-+ const ::rtl::Reference< RefCountedMutex > & mutex,
-+ const com::sun::star::uno::Reference< com::sun::star::uno::XInterface > &owner,
-+ sal_Int32 rowCount,
-+ sal_Int32 columnCount,
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::script::XTypeConverter > &tc );
-+ ~BaseResultSet();
-+
-+public: // XInterface
-+ virtual void SAL_CALL acquire() throw() { OComponentHelper::acquire(); }
-+ virtual void SAL_CALL release() throw() { OComponentHelper::release(); }
-+ virtual com::sun::star::uno::Any SAL_CALL queryInterface(
-+ const com::sun::star::uno::Type & reqType )
-+ throw (com::sun::star::uno::RuntimeException);
-+
-+public: // XCloseable
-+ virtual void SAL_CALL close( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) = 0;
-+
-+public: // XTypeProvider, first implemented by OPropertySetHelper
-+ virtual com::sun::star::uno::Sequence< com::sun::star::uno::Type > SAL_CALL getTypes()
-+ throw( com::sun::star::uno::RuntimeException );
-+ virtual com::sun::star::uno::Sequence< sal_Int8> SAL_CALL getImplementationId()
-+ throw( com::sun::star::uno::RuntimeException );
-+
-+public: // XResultSetMetaDataSupplier
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetMetaData > SAL_CALL getMetaData( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) = 0;
-+
-+public: // XResultSet
-+ // Methods
-+ virtual sal_Bool SAL_CALL next( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isBeforeFirst( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isAfterLast( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isFirst( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isLast( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL beforeFirst( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL afterLast( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL first( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL last( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getRow( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL absolute( sal_Int32 row )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL relative( sal_Int32 rows )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL previous( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL refreshRow( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL rowUpdated( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL rowInserted( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL rowDeleted( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getStatement()
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+
-+public: // XRow
-+ virtual sal_Bool SAL_CALL wasNull( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getString( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL getBoolean( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int8 SAL_CALL getByte( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int16 SAL_CALL getShort( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getInt( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int64 SAL_CALL getLong( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual float SAL_CALL getFloat( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual double SAL_CALL getDouble( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getBytes( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::util::Date SAL_CALL getDate( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::util::Time SAL_CALL getTime( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::util::DateTime SAL_CALL getTimestamp( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getBinaryStream( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getCharacterStream( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Any SAL_CALL getObject(
-+ sal_Int32 columnIndex,
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& typeMap )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRef > SAL_CALL getRef( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XBlob > SAL_CALL getBlob( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XClob > SAL_CALL getClob( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XArray > SAL_CALL getArray( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+public: // XColumnLocate
-+ virtual sal_Int32 SAL_CALL findColumn( const ::rtl::OUString& columnName )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) = 0;
-+
-+public: // OPropertySetHelper
-+ virtual cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper();
-+
-+ virtual sal_Bool SAL_CALL convertFastPropertyValue(
-+ ::com::sun::star::uno::Any & rConvertedValue,
-+ ::com::sun::star::uno::Any & rOldValue,
-+ sal_Int32 nHandle,
-+ const ::com::sun::star::uno::Any& rValue )
-+ throw (::com::sun::star::lang::IllegalArgumentException);
-+
-+ virtual void SAL_CALL setFastPropertyValue_NoBroadcast(
-+ sal_Int32 nHandle,
-+ const ::com::sun::star::uno::Any& rValue )
-+ throw (::com::sun::star::uno::Exception);
-+
-+ virtual void SAL_CALL getFastPropertyValue(
-+ ::com::sun::star::uno::Any& rValue,
-+ sal_Int32 nHandle ) const;
-+
-+ // XPropertySet
-+ ::com::sun::star::uno::Reference < ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo()
-+ throw(com::sun::star::uno::RuntimeException);
-+
-+public: // OComponentHelper
-+ virtual void SAL_CALL disposing();
-+
-+
-+};
-+
-+}
-+#endif
diff --git a/patches/src680/connectivity-source-drivers-mdb-mdb-connection-cxx.diff b/patches/src680/connectivity-source-drivers-mdb-mdb-connection-cxx.diff
deleted file mode 100644
index 98718ad00..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-mdb-connection-cxx.diff
+++ /dev/null
@@ -1,560 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/mdb_connection.cxx 2005-06-29 11:18:53.000000000 +0530
-@@ -0,0 +1,557 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Joerg Budischewski
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Joerg Budischewski
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include <list>
-+#include <string.h>
-+
-+#include "mdb_connection.hxx"
-+#include "mdb_statement.hxx"
-+#include "mdb_preparedstatement.hxx"
-+#include "mdb_databasemetadata.hxx"
-+
-+#include <rtl/ustrbuf.hxx>
-+#include <rtl/strbuf.hxx>
-+#include <rtl/uuid.h>
-+
-+#include <cppuhelper/implementationentry.hxx>
-+#include <cppuhelper/implbase1.hxx>
-+
-+#include <com/sun/star/beans/PropertyValue.hpp>
-+
-+using rtl::OUStringBuffer;
-+using rtl::OUString;
-+using rtl::OString;
-+using rtl::OStringBuffer;
-+using rtl::OUStringToOString;
-+using osl::MutexGuard;
-+
-+using com::sun::star::container::XNameAccess;
-+
-+using com::sun::star::lang::XComponent;
-+using com::sun::star::lang::XInitialization;
-+using com::sun::star::lang::IllegalArgumentException;
-+
-+using com::sun::star::script::XTypeConverter;
-+
-+using com::sun::star::uno::RuntimeException;
-+using com::sun::star::uno::Exception;
-+using com::sun::star::uno::Sequence;
-+using com::sun::star::uno::Reference;
-+using com::sun::star::uno::XInterface;
-+using com::sun::star::uno::UNO_QUERY;
-+using com::sun::star::uno::XComponentContext;
-+using com::sun::star::uno::Any;
-+
-+using com::sun::star::beans::PropertyValue;
-+
-+using com::sun::star::sdbc::XConnection;
-+using com::sun::star::sdbc::XCloseable;
-+using com::sun::star::sdbc::SQLException;
-+using com::sun::star::sdbc::XWarningsSupplier;
-+using com::sun::star::sdbc::XPreparedStatement;
-+using com::sun::star::sdbc::XStatement;
-+using com::sun::star::sdbc::XDatabaseMetaData;
-+
-+namespace mdb_sdbc_driver
-+{
-+
-+#define ASCII_STR(x) OUString( RTL_CONSTASCII_USTRINGPARAM( x ) )
-+
-+
-+// ______________________________________________________________________________
-+// Helper class for statement lifetime management
-+class ClosableReference : public cppu::WeakImplHelper1< com::sun::star::uno::XReference >
-+{
-+ Connection *m_conn;
-+ ::rtl::ByteSequence m_id;
-+public:
-+ ClosableReference( const ::rtl::ByteSequence & id , Connection *that )
-+ : m_id( id ), m_conn( that )
-+ {
-+ that->acquire();
-+ }
-+
-+ virtual ~ClosableReference()
-+ {
-+ if( m_conn )
-+ m_conn->release();
-+ }
-+
-+ virtual void SAL_CALL dispose() throw ()
-+ {
-+ if( m_conn )
-+ {
-+ m_conn->removeFromWeakMap(m_id);
-+ m_conn->release();
-+ m_conn = 0;
-+ }
-+ }
-+};
-+
-+OUString ConnectionGetImplementationName()
-+{
-+ return OUString( RTL_CONSTASCII_USTRINGPARAM( "org.openoffice.comp.connectivity.mdb.Connection" ) );
-+}
-+com::sun::star::uno::Sequence<rtl::OUString> ConnectionGetSupportedServiceNames(void)
-+{
-+ OUString serv( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.sdbc.Connection" ) );
-+ return Sequence< OUString> (&serv,1);
-+}
-+
-+Connection::~Connection()
-+{
-+ POSTGRE_TRACE( "dtor connection" );
-+ if( m_settings.pConnection )
-+ {
-+ //PQfinish( m_settings.pConnection );
-+ m_settings.pConnection = 0;
-+ }
-+}
-+typedef ::std::list< ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XCloseable > ,
-+ ::mdb_sdbc_driver::Allocator < ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XCloseable > > > CloseableList;
-+
-+void Connection::close() throw ( SQLException, RuntimeException )
-+{
-+ CloseableList lst;
-+
-+ {
-+ MutexGuard guard( m_refMutex->mutex );
-+ // silently ignore, if the connection has been closed already
-+ if( m_settings.pConnection )
-+ {
-+ //PQfinish( m_settings.pConnection );
-+ m_settings.pConnection = 0;
-+ }
-+
-+ for( WeakHashMap::iterator ii = m_myStatements.begin() ;
-+ ii != m_myStatements.end() ;
-+ ++ii )
-+ {
-+ Reference< XCloseable > r = ii->second;
-+ if( r.is() )
-+ lst.push_back( r );
-+ }
-+ }
-+
-+ // close all created statements
-+ for( CloseableList::iterator ii = lst.begin(); ii != lst.end() ; ++ii )
-+ ii->get()->close();
-+}
-+
-+
-+void Connection::removeFromWeakMap( const ::rtl::ByteSequence & id )
-+{
-+ // shrink the list !
-+ MutexGuard guard( m_refMutex->mutex );
-+ WeakHashMap::iterator ii = m_myStatements.find( id );
-+ if( ii != m_myStatements.end() )
-+ m_myStatements.erase( ii );
-+}
-+
-+Reference< XStatement > Connection::createStatement( ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+
-+ Statement *stmt = new Statement( m_refMutex, this , &m_settings );
-+ Reference< XStatement > ret( stmt );
-+ ::rtl::ByteSequence id( 16 );
-+ rtl_createUuid( (sal_uInt8*) id.getConstArray(), 0 , sal_False );
-+ m_myStatements[ id ] = Reference< XCloseable > ( stmt );
-+ stmt->queryAdapter()->addReference( new ClosableReference( id, this ) );
-+ return ret;
-+}
-+
-+Reference< XPreparedStatement > Connection::prepareStatement( const ::rtl::OUString& sql )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+
-+ rtl::OString byteSql = OUStringToOString( sql, RTL_TEXTENCODING_UTF8 );
-+ PreparedStatement *stmt = new PreparedStatement( m_refMutex, this, &m_settings, byteSql );
-+ Reference< XPreparedStatement > ret = stmt;
-+
-+ ::rtl::ByteSequence id( 16 );
-+ rtl_createUuid( (sal_uInt8*) id.getConstArray(), 0 , sal_False );
-+ m_myStatements[ id ] = Reference< XCloseable > ( stmt );
-+ stmt->queryAdapter()->addReference( new ClosableReference( id, this ) );
-+ return ret;
-+}
-+
-+Reference< XPreparedStatement > Connection::prepareCall( const ::rtl::OUString& sql )
-+ throw (SQLException, RuntimeException)
-+{
-+ throw SQLException(
-+ OUString(
-+ RTL_CONSTASCII_USTRINGPARAM( "mdb_driver: Callable statements not supported" ) ),
-+ Reference< XInterface > (), OUString() , 1, Any() );
-+}
-+
-+
-+::rtl::OUString Connection::nativeSQL( const ::rtl::OUString& sql )
-+ throw (SQLException, RuntimeException)
-+{
-+ return sql;
-+}
-+
-+void Connection::setAutoCommit( sal_Bool autoCommit ) throw (SQLException, RuntimeException)
-+{
-+ // UNSUPPORTED
-+}
-+
-+sal_Bool Connection::getAutoCommit( ) throw (SQLException, RuntimeException)
-+{
-+ // UNSUPPORTED
-+ return sal_True;
-+}
-+
-+void Connection::commit( ) throw (SQLException, RuntimeException)
-+{
-+ // UNSUPPORTED
-+}
-+
-+void Connection::rollback( ) throw (SQLException, RuntimeException)
-+{
-+ // UNSUPPORTED
-+}
-+
-+sal_Bool Connection::isClosed( ) throw (SQLException, RuntimeException)
-+{
-+ return m_settings.pConnection == 0;
-+}
-+
-+Reference< XDatabaseMetaData > Connection::getMetaData( )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return new DatabaseMetaData( m_refMutex, this, &m_settings );
-+}
-+
-+void Connection::setReadOnly( sal_Bool readOnly ) throw (SQLException, RuntimeException)
-+{
-+ // UNSUPPORTED
-+
-+}
-+
-+sal_Bool Connection::isReadOnly( ) throw (SQLException, RuntimeException)
-+{
-+ // UNSUPPORTED
-+ return sal_False;
-+}
-+
-+void Connection::setCatalog( const ::rtl::OUString& catalog )
-+ throw (SQLException, RuntimeException)
-+{
-+ // UNSUPPORTED
-+}
-+
-+::rtl::OUString Connection::getCatalog( ) throw (SQLException, RuntimeException)
-+{
-+ OUString ret;
-+ MutexGuard ( m_refMutex->mutex );
-+ if( m_settings.pConnection == 0 )
-+ {
-+ throw SQLException( ASCII_STR( "mdb_connection: connection is closed" ), *this,
-+ OUString(), 1, Any() );
-+ }
-+ char * p = 0;//PQdb(m_settings.pConnection );
-+ return OUString( p, strlen(p) , m_settings.encoding );
-+}
-+
-+void Connection::setTransactionIsolation( sal_Int32 level )
-+ throw (SQLException, RuntimeException)
-+{
-+ // UNSUPPORTED
-+}
-+
-+sal_Int32 Connection::getTransactionIsolation( ) throw (SQLException, RuntimeException)
-+{
-+ // UNSUPPORTED
-+ return 0;
-+}
-+
-+Reference< XNameAccess > Connection::getTypeMap( ) throw (SQLException, RuntimeException)
-+{
-+ Reference< XNameAccess > t;
-+ {
-+ MutexGuard guard( m_refMutex->mutex );
-+ t = m_typeMap;
-+ }
-+ return t;
-+}
-+
-+void Connection::setTypeMap( const Reference< XNameAccess >& typeMap )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ m_typeMap = typeMap;
-+}
-+Any Connection::getWarnings( ) throw (SQLException, RuntimeException)
-+{
-+ return Any();
-+}
-+
-+void Connection::clearWarnings( ) throw (SQLException, RuntimeException)
-+{
-+}
-+
-+
-+static OString properties2String( const OString initialString,
-+ const Sequence< PropertyValue > & args,
-+ const Reference< XTypeConverter> &tc )
-+{
-+ OStringBuffer ret;
-+
-+ ret.append( initialString );
-+ if( initialString.getLength() )
-+ ret.append( " " );
-+
-+ bool initial = false;
-+ for( int i = 0; i < args.getLength() ; i ++)
-+ {
-+ bool append = true;
-+ if( args[i].Name.matchIgnoreAsciiCaseAsciiL( RTL_CONSTASCII_STRINGPARAM( "password" ) ) )
-+ {
-+ ret.append( "password=" );
-+ }
-+ else if( args[i].Name.matchIgnoreAsciiCaseAsciiL( RTL_CONSTASCII_STRINGPARAM( "user" ) ) )
-+ {
-+ ret.append( "user=" );
-+ }
-+ else if( args[i].Name.matchIgnoreAsciiCaseAsciiL( RTL_CONSTASCII_STRINGPARAM( "port" ) ) )
-+ {
-+ ret.append( "port=" );
-+ }
-+ else if( args[i].Name.matchIgnoreAsciiCaseAsciiL( RTL_CONSTASCII_STRINGPARAM( "dbname" ) ) )
-+ {
-+ ret.append( "dbname=" );
-+ }
-+ else if( args[i].Name.matchIgnoreAsciiCaseAsciiL( RTL_CONSTASCII_STRINGPARAM( "connect_timeout" ) ) )
-+ {
-+ ret.append( "connect_timeout=" );
-+ }
-+ else if( args[i].Name.matchIgnoreAsciiCaseAsciiL( RTL_CONSTASCII_STRINGPARAM( "options" ) ) )
-+ {
-+ ret.append( "options=" );
-+ }
-+ else if( args[i].Name.matchIgnoreAsciiCaseAsciiL( RTL_CONSTASCII_STRINGPARAM( "requiressl" ) ) )
-+ {
-+ ret.append( "requiressl=" );
-+ }
-+ else
-+ {
-+ append = false;
-+ // ignore for now
-+ }
-+ if( append )
-+ {
-+ OUString value;
-+ tc->convertTo( args[i].Value ,getCppuType( &value) ) >>= value;
-+ ret.append( OUStringToOString( value, RTL_TEXTENCODING_UTF8) );
-+ ret.append( " " );
-+ }
-+ }
-+
-+ return ret.makeStringAndClear();
-+}
-+
-+void Connection::initialize( const Sequence< Any >& aArguments )
-+ throw (Exception, RuntimeException)
-+{
-+ int i=0;
-+ if(i)
-+ {
-+ return ;
-+ }
-+ OUString url;
-+ Sequence< PropertyValue > args;
-+
-+ Reference< XTypeConverter > tc( m_ctx->getServiceManager()->createInstanceWithContext(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.script.Converter" ) ), m_ctx ),
-+ UNO_QUERY);
-+ if( ! tc.is() )
-+ {
-+ throw RuntimeException(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("mdb_driver: Couldn't instantiate converter service" )),
-+ Reference< XInterface > () );
-+ }
-+ if( aArguments.getLength() != 2 )
-+ {
-+ OUStringBuffer buf(128);
-+ buf.appendAscii( "mdb_driver: expected 2 arguments, got " );
-+ buf.append( aArguments.getLength( ) );
-+ throw IllegalArgumentException(buf.makeStringAndClear(), Reference< XInterface > () , 0 );
-+ }
-+
-+ if( ! (aArguments[0] >>= url) )
-+ {
-+ OUStringBuffer buf(128);
-+ buf.appendAscii( "mdb_driver: expected string as first argument, got " );
-+ buf.append( aArguments[0].getValueType().getTypeName() );
-+ throw IllegalArgumentException( buf.makeStringAndClear() , *this, 0 );
-+ }
-+
-+ tc->convertTo( aArguments[1], getCppuType( &args ) ) >>= args;
-+
-+ OString o;
-+ int nColon = url.indexOf( ':' );
-+ if( nColon != -1 )
-+ {
-+ nColon = url.indexOf( ':' , 1+ nColon );
-+ if( nColon != -1 )
-+ {
-+ o = OUStringToOString( url.getStr()+nColon+1, RTL_TEXTENCODING_UTF8);
-+ }
-+ }
-+ //o = properties2String( o , args , tc );
-+ char *test1 = strdup(o.getStr());
-+ m_settings.pConnection = OpenMDB(test1);
-+ if( ! m_settings.pConnection )
-+ throw RuntimeException( OUString( RTL_CONSTASCII_USTRINGPARAM( "mdb_driver: out of memory" ) ),
-+ Reference< XInterface > () );
-+ if( !m_settings.pConnection )
-+ {
-+ OUStringBuffer buf( 128 );
-+
-+// const char * error = PQerrorMessage( m_settings.pConnection );
-+// OUString errorMessage( error, strlen( error) , RTL_TEXTENCODING_ASCII_US );
-+ buf.appendAscii( "Couldn't establish database connection to '" );
-+ buf.append( url );
-+ buf.appendAscii( "' (" );
-+// buf.append( errorMessage );
-+ buf.appendAscii( ")" );
-+// PQfinish( m_settings.pConnection );
-+ m_settings.pConnection = 0;
-+// throw SQLException( buf.makeStringAndClear(), *this, errorMessage, CONNECTION_BAD, Any() );
-+ }
-+// PQsetClientEncoding( m_settings.pConnection, "UNICODE" );
-+ //char *p = 0;//PQuser( m_settings.pConnection );
-+ //m_settings.user = OUString( p, strlen(p), RTL_TEXTENCODING_UTF8);
-+// p = PQdb( m_settings.pConnection );
-+ //m_settings.catalog = OUString( p, strlen(p), RTL_TEXTENCODING_UTF8);
-+ m_settings.tc = tc;
-+ free(test1);
-+}
-+
-+void Connection::disposing()
-+{
-+ close();
-+}
-+
-+void Connection::checkClosed() throw ( SQLException, RuntimeException )
-+{
-+ if( !m_settings.pConnection )
-+ throw SQLException( ASCII_STR( "mdb_connection: Connection already closed" ),
-+ *this, OUString(), 1, Any() );
-+}
-+
-+Reference< XInterface > ConnectionCreateInstance(
-+ const Reference< XComponentContext > & ctx ) throw (Exception)
-+{
-+ ::rtl::Reference< RefCountedMutex > ref = new RefCountedMutex();
-+ return * new Connection( ref, ctx );
-+}
-+
-+
-+}
-+
-+
-+
-+
-+
-+
-+static struct cppu::ImplementationEntry g_entries[] =
-+{
-+ {
-+ mdb_sdbc_driver::ConnectionCreateInstance, mdb_sdbc_driver::ConnectionGetImplementationName,
-+ mdb_sdbc_driver::ConnectionGetSupportedServiceNames, cppu::createSingleComponentFactory,
-+ 0 , 0
-+ },
-+ { 0, 0, 0, 0, 0, 0 }
-+};
-+
-+
-+extern "C"
-+{
-+
-+//==================================================================================================
-+void SAL_CALL component_getImplementationEnvironment(
-+ const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
-+{
-+ *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
-+}
-+//==================================================================================================
-+sal_Bool SAL_CALL component_writeInfo(
-+ void * pServiceManager, void * pRegistryKey )
-+{
-+ return cppu::component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries );
-+}
-+//==================================================================================================
-+void * SAL_CALL component_getFactory(
-+ const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
-+{
-+ return cppu::component_getFactoryHelper( pImplName, pServiceManager, pRegistryKey , g_entries );
-+}
-+
-+}
-+
diff --git a/patches/src680/connectivity-source-drivers-mdb-mdb-connection-hxx.diff b/patches/src680/connectivity-source-drivers-mdb-mdb-connection-hxx.diff
deleted file mode 100644
index 99667386f..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-mdb-connection-hxx.diff
+++ /dev/null
@@ -1,225 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/mdb_connection.hxx 2005-06-29 11:18:53.000000000 +0530
-@@ -0,0 +1,222 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Joerg Budischewski
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Joerg Budischewski
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _MDB_CONNECTION_HXX_
-+#define _MDB_CONNECTION_HXX_
-+#include <hash_map>
-+#include <com/sun/star/uno/XComponentContext.hpp>
-+
-+#include <com/sun/star/lang/XInitialization.hpp>
-+
-+#include <com/sun/star/script/XTypeConverter.hpp>
-+
-+#include <com/sun/star/sdbc/XWarningsSupplier.hpp>
-+#include <com/sun/star/sdbc/XConnection.hpp>
-+
-+#include <rtl/ref.hxx>
-+#include <rtl/byteseq.hxx>
-+
-+#include <salhelper/simplereferenceobject.hxx>
-+
-+#include <cppuhelper/weakref.hxx>
-+#include <cppuhelper/compbase3.hxx>
-+
-+#include "mdb_allocator.hxx"
-+#include <mdb_wrapper.hxx>
-+
-+namespace mdb_sdbc_driver
-+{
-+#ifdef POSTGRE_TRACE
-+#define POSTGRE_TRACE( x ) printf( "%s\n" , x )
-+#define POSTGRE_TRACE_1( x ,y) printf( "%s %s\n" , x ,y )
-+#else
-+#define POSTGRE_TRACE(x) ((void)0)
-+#define POSTGRE_TRACE_1(x,y) ((void)0)
-+#endif
-+
-+class RefCountedMutex : public salhelper::SimpleReferenceObject
-+{
-+public:
-+ osl::Mutex mutex;
-+};
-+
-+struct ConnectionSettings
-+{
-+ rtl_TextEncoding encoding;
-+ ::MdbHandle *pConnection;
-+ //::rtl::OString pConnection;
-+ ::com::sun::star::uno::Reference< com::sun::star::script::XTypeConverter > tc;
-+ ::rtl::OUString user;
-+ ::rtl::OUString catalog;
-+};
-+
-+typedef cppu::WeakComponentImplHelper3<
-+ com::sun::star::sdbc::XConnection,
-+ com::sun::star::sdbc::XWarningsSupplier,
-+ com::sun::star::lang::XInitialization > ConnectionBase;
-+
-+struct HashByteSequence
-+{
-+ sal_Int32 operator () ( const ::rtl::ByteSequence & seq ) const
-+ {
-+ return *(sal_Int32*) seq.getConstArray();
-+ }
-+};
-+
-+typedef ::std::hash_map<
-+ ::rtl::ByteSequence,
-+ ::com::sun::star::uno::WeakReference< com::sun::star::sdbc::XCloseable >,
-+ HashByteSequence,
-+ ::std::equal_to< ::rtl::ByteSequence >,
-+ Allocator< std::pair< const ::rtl::ByteSequence,::com::sun::star::uno::WeakReference< com::sun::star::sdbc::XCloseable > > >
-+> WeakHashMap;
-+
-+class Connection : public ConnectionBase
-+{
-+ ::com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext > m_ctx;
-+ ::com::sun::star::uno::Reference< com::sun::star::container::XNameAccess > m_typeMap;
-+ ConnectionSettings m_settings;
-+ ::rtl::Reference< RefCountedMutex > m_refMutex;
-+ WeakHashMap m_myStatements;
-+
-+private:
-+ void checkClosed()
-+ throw ( com::sun::star::sdbc::SQLException, com::sun::star::uno::RuntimeException );
-+
-+public:
-+ Connection(
-+ const rtl::Reference< RefCountedMutex > &refMutex,
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > & ctx )
-+ : ConnectionBase( refMutex->mutex ), m_ctx( ctx ) , m_refMutex( refMutex )
-+ {
-+ m_settings.encoding = RTL_TEXTENCODING_UTF8;
-+ m_settings.pConnection = 0;
-+ }
-+
-+ ~Connection( );
-+
-+public: // XCloseable
-+ virtual void SAL_CALL close()
-+ throw ( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException );
-+
-+public: // XConnection
-+
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XStatement > SAL_CALL createStatement( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException) ;
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XPreparedStatement > SAL_CALL prepareStatement(
-+ const ::rtl::OUString& sql )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XPreparedStatement > SAL_CALL prepareCall(
-+ const ::rtl::OUString& sql )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL nativeSQL( const ::rtl::OUString& sql )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setAutoCommit( sal_Bool autoCommit )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL getAutoCommit( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL commit( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL rollback( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isClosed( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< com::sun::star::sdbc::XDatabaseMetaData > SAL_CALL getMetaData( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setReadOnly( sal_Bool readOnly )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isReadOnly( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setCatalog( const ::rtl::OUString& catalog )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getCatalog( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setTransactionIsolation( sal_Int32 level )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getTransactionIsolation( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< com::sun::star::container::XNameAccess > SAL_CALL getTypeMap( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setTypeMap(
-+ const ::com::sun::star::uno::Reference< com::sun::star::container::XNameAccess >& typeMap )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+public: // XWarningsSupplier
-+ virtual ::com::sun::star::uno::Any SAL_CALL getWarnings( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL clearWarnings( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+public: // XInitialization
-+ virtual void SAL_CALL initialize(
-+ const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments )
-+ throw (com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
-+
-+public:
-+ virtual void SAL_CALL disposing();
-+
-+
-+public: // helper function
-+ void removeFromWeakMap( const ::rtl::ByteSequence & seq );
-+};
-+
-+}
-+#endif
diff --git a/patches/src680/connectivity-source-drivers-mdb-mdb-databasemetadata-cxx.diff b/patches/src680/connectivity-source-drivers-mdb-mdb-databasemetadata-cxx.diff
deleted file mode 100644
index a7e890c23..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-mdb-databasemetadata-cxx.diff
+++ /dev/null
@@ -1,1431 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/mdb_databasemetadata.cxx 2005-06-29 11:18:53.000000000 +0530
-@@ -0,0 +1,1428 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Joerg Budischewski
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Joerg Budischewski
-+ *
-+ *
-+ ************************************************************************/
-+#include <hash_map>
-+
-+#include "mdb_databasemetadata.hxx"
-+#include "mdb_driver.hxx"
-+#include "mdb_sequenceresultset.hxx"
-+
-+#include<com/sun/star/sdbc/TransactionIsolation.hpp>
-+#include<com/sun/star/sdbc/ResultSetType.hpp>
-+#include<com/sun/star/sdbc/XPreparedStatement.hpp>
-+#include<com/sun/star/sdbc/XParameters.hpp>
-+#include<com/sun/star/sdbc/DataType.hpp>
-+#include<com/sun/star/sdbc/ColumnValue.hpp>
-+
-+using ::osl::MutexGuard;
-+
-+using ::rtl::OUString;
-+
-+using com::sun::star::sdbc::SQLException;
-+using com::sun::star::sdbc::XStatement;
-+using com::sun::star::sdbc::XResultSet;
-+using com::sun::star::sdbc::XRow;
-+using com::sun::star::sdbc::XCloseable;
-+using com::sun::star::sdbc::XParameters;
-+using com::sun::star::sdbc::XPreparedStatement;
-+
-+using com::sun::star::uno::RuntimeException;
-+using com::sun::star::uno::Sequence;
-+
-+using com::sun::star::uno::Reference;
-+using com::sun::star::uno::Sequence;
-+using com::sun::star::uno::Any;
-+using com::sun::star::uno::makeAny;
-+using com::sun::star::uno::UNO_QUERY;
-+
-+namespace mdb_sdbc_driver
-+{
-+
-+#define ASCII_STR(x) OUString( RTL_CONSTASCII_USTRINGPARAM( x ) )
-+
-+static const int MAX_COLUMNS_IN_GROUPBY = 16;
-+static const int MAX_COLUMNS_IN_INDEX = 32;
-+static const int MAX_COLUMNS_IN_ORDER_BY = 16;
-+static const int MAX_COLUMNS_IN_SELECT = 1024;
-+static const int MAX_IDENTIFIER_LENGTH = 63;
-+static const int MAX_COLUMNS_IN_TABLE = 1024;
-+static const int MAX_CONNECTIONS = 0xffff;
-+static const int MAX_STATEMENTS = 0xffff;
-+static const int MAX_STATEMENT_LENGTH = -1;
-+static const int MAX_TABLES_IN_SELECT = 0xffff;
-+static const int MAX_USER_NAME_LENGTH = MAX_IDENTIFIER_LENGTH;
-+
-+
-+// alphabetically ordered !
-+static const int PRIVILEGE_CREATE = 0x1;
-+static const int PRIVILEGE_DELETE = 0x2;
-+static const int PRIVILEGE_EXECUTE = 0x4;
-+static const int PRIVILEGE_INSERT = 0x8;
-+static const int PRIVILEGE_REFERENCES = 0x10;
-+static const int PRIVILEGE_RULE = 0x20;
-+static const int PRIVILEGE_SELECT = 0x40;
-+static const int PRIVILEGE_TEMPORARY = 0x80;
-+static const int PRIVILEGE_TRIGGER = 0x100;
-+static const int PRIVILEGE_UPDATE = 0x200;
-+static const int PRIVILEGE_USAGE = 0x400;
-+static const int PRIVILEGE_MAX = PRIVILEGE_USAGE;
-+
-+typedef ::std::hash_map
-+<
-+ OUString,
-+ sal_Int32,
-+ rtl::OUStringHash,
-+ ::std::equal_to< OUString >,
-+ Allocator< ::std::pair< const OUString , sal_Int32 > >
-+
-+> BaseTypeMap;
-+
-+typedef std::vector< Sequence< Any >, Allocator< Sequence< Any > > > AnyVector;
-+
-+struct Strings
-+{
-+ OUString SYSTEM_TABLE;
-+ OUString TABLE;
-+ OUString VIEW;
-+ OUString UNKNOWN;
-+ OUString YES;
-+ OUString NO;
-+ OUString NO_NULLS;
-+ OUString NULABLE;
-+ OUString NULLABLE_UNKNOWN;
-+ OUString SELECT;
-+ OUString UPDATE;
-+ OUString INSERT;
-+ OUString DELETE;
-+ OUString RULE;
-+ OUString REFERENCES;
-+ OUString TRIGGER;
-+ OUString EXECUTE;
-+ OUString USAGE;
-+ OUString CREATE;
-+ OUString TEMPORARY;
-+
-+ Sequence< OUString > tablesRowNames;
-+ Sequence< OUString > columnRowNames;
-+ Sequence< OUString > primaryKeyNames;
-+ Sequence< OUString > tablePrivilegesNames;
-+ Sequence< OUString > schemaNames;
-+ Sequence< OUString > tableTypeNames;
-+ Sequence< Sequence< Any > > tableTypeData;
-+
-+ BaseTypeMap baseTypeMap;
-+};
-+
-+
-+struct BaseTypeDef { const char * typeName; sal_Int32 value; };
-+
-+static Sequence< OUString > createStringSequence( const char * name[] , int length )
-+{
-+ Sequence< OUString > seq( length );
-+ for( int i = 0; i < length; i ++ )
-+ {
-+ seq[i] = OUString( name[i] , strlen( name[i] ), RTL_TEXTENCODING_ASCII_US );
-+ }
-+ return seq;
-+}
-+const char * typeInfoColumn[] =
-+{
-+ "TYPE_NAME", "DATA_TYPE", "PRECISION", "LITERAL_PREFIX",
-+ "LITERAL_SUFFIX", "CREATE_PARAMS", "NULLABLE", "CASE_SENSITIVE",
-+ "SEARCHABLE", "UNSIGNED_ATTRIBUTE", "FIXED_PREC_SCALE", "AUTO_INCREMENT",
-+ "LOCAL_TYPE_NAME", "MINIMUM_SCALE", "MAXIMUM_SCALE", "SQL_DATA_TYPE",
-+ "SQL_DATETIME_SUB", "NUM_PREC_RADIX"
-+};
-+
-+static Strings & sp()
-+{
-+ static Strings * p;
-+ if( ! p )
-+ {
-+ ::osl::MutexGuard guard( ::osl::Mutex::getGlobalMutex() );
-+ if( ! p )
-+ {
-+ static Strings statStrings;
-+ statStrings.SYSTEM_TABLE = ASCII_STR( "SYSTEM_TABLE" );
-+ statStrings.TABLE = ASCII_STR( "TABLE" );
-+ statStrings.VIEW = ASCII_STR( "VIEW" );
-+ statStrings.UNKNOWN = ASCII_STR( "UNKNOWN" );
-+ statStrings.YES = ASCII_STR( "YES" );
-+ statStrings.NO = ASCII_STR( "NO" );
-+ statStrings.NO_NULLS = ASCII_STR( "NO_NULLS" );
-+ statStrings.NULABLE = ASCII_STR( "NULABLE" );
-+ statStrings.NULLABLE_UNKNOWN = ASCII_STR( "NULLABLE_UNKNOWN" );
-+
-+ statStrings.tablesRowNames = Sequence< OUString > ( 5 );
-+ statStrings.tablesRowNames[0] = ASCII_STR( "TABLE_CAT" );
-+ statStrings.tablesRowNames[1] = ASCII_STR( "TABLE_SCHEM" );
-+ statStrings.tablesRowNames[2] = ASCII_STR( "TABLE_NAME" );
-+ statStrings.tablesRowNames[3] = ASCII_STR( "TABLE_TYPE" );
-+ statStrings.tablesRowNames[4] = ASCII_STR( "REMARKS" );
-+
-+ statStrings.primaryKeyNames = Sequence< OUString > ( 6 );
-+ statStrings.primaryKeyNames[0] = ASCII_STR( "TABLE_CAT" );
-+ statStrings.primaryKeyNames[1] = ASCII_STR( "TABLE_SCHEM" );
-+ statStrings.primaryKeyNames[2] = ASCII_STR( "TABLE_NAME" );
-+ statStrings.primaryKeyNames[3] = ASCII_STR( "COLUMN_NAME" );
-+ statStrings.primaryKeyNames[4] = ASCII_STR( "KEY_SEQ" );
-+ statStrings.primaryKeyNames[5] = ASCII_STR( "PK_NAME" );
-+
-+ statStrings.SELECT = ASCII_STR( "SELECT" );
-+ statStrings.UPDATE = ASCII_STR( "UPDATE" );
-+ statStrings.INSERT = ASCII_STR( "INSERT" );
-+ statStrings.DELETE = ASCII_STR( "DELETE" );
-+ statStrings.RULE = ASCII_STR( "RULE" );
-+ statStrings.REFERENCES = ASCII_STR( "REFERENCES" );
-+ statStrings.TRIGGER = ASCII_STR( "TRIGGER" );
-+ statStrings.EXECUTE = ASCII_STR( "EXECUTE" );
-+ statStrings.USAGE = ASCII_STR( "USAGE" );
-+ statStrings.CREATE = ASCII_STR( "CREATE" );
-+ statStrings.TEMPORARY = ASCII_STR( "TEMPORARY" );
-+
-+ statStrings.schemaNames = Sequence< OUString > ( 1 );
-+ statStrings.schemaNames[0] = ASCII_STR( "TABLE_SCHEM" );
-+
-+ statStrings.tableTypeData = Sequence< Sequence< Any > >( 2 );
-+ statStrings.tableTypeData[0] = Sequence< Any > ( 1 );
-+ statStrings.tableTypeData[1] = Sequence< Any > ( 1 );
-+// statStrings.tableTypeData[2] = Sequence< Any > ( 1 );
-+ statStrings.tableTypeData[1][0] <<= ASCII_STR( "SYSTEM TABLE" );
-+ statStrings.tableTypeData[0][0] <<= ASCII_STR( "TABLE" );
-+// statStrings.tableTypeData[2][0] <<= ASCII_STR( "VIEW" );
-+ statStrings.tableTypeNames = Sequence< OUString > ( 1 );
-+ statStrings.tableTypeNames[0] = ASCII_STR( "TABLE_TYPE" );
-+
-+
-+
-+ // 1. TABLE_CAT string =&gt; table catalog (may be NULL )
-+ // 2. TABLE_SCHEM string =&gt; table schema (may be NULL )
-+ // 3. TABLE_NAME string =&gt; table name
-+ // 4. GRANTOR =&gt; grantor of access (may be NULL )
-+ // 5. GRANTEE string =&gt; grantee of access
-+ // 6. PRIVILEGE string =&gt; name of access (SELECT, INSERT, UPDATE, REFERENCES, ...)
-+ // 7. IS_GRANTABLE string =&gt; "YES" if grantee is permitted to grant to
-+ // others; "NO" if not; NULL if unknown
-+ const char *tablePrivilegesNames[] =
-+ {
-+ "TABLE_CAT", "TABLE_SCHEM", "TABLE_NAME", "GRANTOR", "GRANTEE", "PRIVILEGE",
-+ "IS_GRANTABLE"
-+ };
-+ statStrings.tablePrivilegesNames =
-+ createStringSequence( tablePrivilegesNames, 7 );
-+
-+ const char * columnNames[] =
-+ {
-+ "TABLE_CAT", "TABLE_SCHEM", "TABLE_NAME", "COLUMN_NAME",
-+ "DATA_TYPE", "TYPE_NAME", "COLUMN_SIZE", "BUFFER_LENGTH",
-+ "DECIMAL_DIGITS", "NUM_PREC_RADIX", "NULLABLE", "REMARKS",
-+ "COLUMN_DEF", "SQL_DATA_TYPE", "SQL_DATETIME_SUB", "CHAR_OCTET_LENGTH",
-+ "ORDINAL_POSITION", "IS_NULLABLE"
-+ };
-+ statStrings.columnRowNames =
-+ createStringSequence( columnNames, 18 );
-+
-+ BaseTypeDef baseTypeDefs[] =
-+ {
-+ { "bool" , com::sun::star::sdbc::DataType::BIT },
-+ { "bytea", com::sun::star::sdbc::DataType::VARBINARY },
-+ { "char" , com::sun::star::sdbc::DataType::CHAR },
-+ { "int8" , com::sun::star::sdbc::DataType::BIGINT },
-+ { "int2" , com::sun::star::sdbc::DataType::SMALLINT },
-+
-+ { "int4" , com::sun::star::sdbc::DataType::INTEGER },
-+ { "regproc" , com::sun::star::sdbc::DataType::INTEGER },
-+ { "oid" , com::sun::star::sdbc::DataType::INTEGER },
-+ { "xid" , com::sun::star::sdbc::DataType::INTEGER },
-+ { "cid" , com::sun::star::sdbc::DataType::INTEGER },
-+
-+ { "text", com::sun::star::sdbc::DataType::VARCHAR },
-+ { "bpchar", com::sun::star::sdbc::DataType::VARCHAR },
-+ { "varchar", com::sun::star::sdbc::DataType::VARCHAR },
-+
-+ { "float4", com::sun::star::sdbc::DataType::REAL },
-+ { "float8", com::sun::star::sdbc::DataType::DOUBLE },
-+
-+ { "date", com::sun::star::sdbc::DataType::CHAR }, // switch to date later
-+ { "time", com::sun::star::sdbc::DataType::CHAR }, // switch to time later
-+ { 0, 0 }
-+
-+ };
-+ int i;
-+ for( i = 0 ; baseTypeDefs[i].typeName ; i ++ )
-+ {
-+ statStrings.baseTypeMap[
-+ OUString::createFromAscii( baseTypeDefs[i].typeName) ] =
-+ baseTypeDefs[i].value;
-+ }
-+ p = &statStrings;
-+ }
-+ }
-+ return *p;
-+}
-+
-+
-+void DatabaseMetaData::checkClosed()
-+ throw (SQLException, RuntimeException)
-+{
-+}
-+
-+DatabaseMetaData::DatabaseMetaData(
-+ const ::rtl::Reference< RefCountedMutex > & refMutex,
-+ const ::com::sun::star::uno::Reference< com::sun::star::sdbc::XConnection > & origin,
-+ ConnectionSettings *pSettings )
-+ : m_pSettings( pSettings ),
-+ m_origin( origin ),
-+ m_refMutex( refMutex )
-+
-+{
-+
-+}
-+
-+sal_Bool DatabaseMetaData::allProceduresAreCallable( ) throw (SQLException, RuntimeException)
-+{
-+ // TODO
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::allTablesAreSelectable( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+
-+OUString DatabaseMetaData::getURL( ) throw (SQLException, RuntimeException)
-+{
-+ // TODO
-+ return OUString();
-+}
-+
-+OUString DatabaseMetaData::getUserName( ) throw (SQLException, RuntimeException)
-+{
-+ return m_pSettings->user;
-+}
-+
-+sal_Bool DatabaseMetaData::isReadOnly( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+
-+sal_Bool DatabaseMetaData::nullsAreSortedHigh( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::nullsAreSortedLow( ) throw (SQLException, RuntimeException)
-+{
-+ return ! nullsAreSortedHigh();
-+}
-+
-+sal_Bool DatabaseMetaData::nullsAreSortedAtStart( ) throw (SQLException, RuntimeException)
-+{
-+ return ! nullsAreSortedHigh();
-+}
-+
-+sal_Bool DatabaseMetaData::nullsAreSortedAtEnd( ) throw (SQLException, RuntimeException)
-+{
-+ return nullsAreSortedHigh();
-+}
-+
-+OUString DatabaseMetaData::getDatabaseProductName( ) throw (SQLException, RuntimeException)
-+{
-+ return ASCII_STR( "mdb");
-+}
-+
-+OUString DatabaseMetaData::getDatabaseProductVersion( ) throw (SQLException, RuntimeException)
-+{
-+ return ASCII_STR( MDBTOOLS_VERSION );
-+}
-+OUString DatabaseMetaData::getDriverName( ) throw (SQLException, RuntimeException)
-+{
-+ return ASCII_STR( "mdb-sdbc" );
-+}
-+
-+OUString DatabaseMetaData::getDriverVersion( ) throw (SQLException, RuntimeException)
-+{
-+ return ASCII_STR( MDB_SDBC_DRIVER_VERSION );
-+}
-+
-+sal_Int32 DatabaseMetaData::getDriverMajorVersion( ) throw (RuntimeException)
-+{
-+ return MDB_MAJOR;
-+}
-+
-+sal_Int32 DatabaseMetaData::getDriverMinorVersion( ) throw (RuntimeException)
-+{
-+ return MDB_MINOR;
-+}
-+
-+sal_Bool DatabaseMetaData::usesLocalFiles( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+
-+sal_Bool DatabaseMetaData::usesLocalFilePerTable( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsMixedCaseIdentifiers( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::storesUpperCaseIdentifiers( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::storesLowerCaseIdentifiers( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+
-+sal_Bool DatabaseMetaData::storesMixedCaseIdentifiers( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+
-+sal_Bool DatabaseMetaData::supportsMixedCaseQuotedIdentifiers( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::storesUpperCaseQuotedIdentifiers( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+
-+sal_Bool DatabaseMetaData::storesLowerCaseQuotedIdentifiers( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+
-+sal_Bool DatabaseMetaData::storesMixedCaseQuotedIdentifiers( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+
-+OUString DatabaseMetaData::getIdentifierQuoteString( ) throw (SQLException, RuntimeException)
-+{
-+ return ASCII_STR( "\"" );
-+}
-+
-+OUString DatabaseMetaData::getSQLKeywords( ) throw (SQLException, RuntimeException)
-+{
-+ return ASCII_STR(
-+ "ANALYZE,"
-+ "ANALYSE,"
-+ "DO,"
-+ "ILIKE,"
-+ "LIMIT,"
-+ "NEW,"
-+ "OFFSET,"
-+ "OLD,"
-+ "PLACING" );
-+}
-+OUString DatabaseMetaData::getNumericFunctions( ) throw (SQLException, RuntimeException)
-+{
-+ // TODO
-+ return OUString();
-+}
-+
-+OUString DatabaseMetaData::getStringFunctions( ) throw (SQLException, RuntimeException)
-+{
-+ // TODO
-+ return OUString();
-+}
-+
-+OUString DatabaseMetaData::getSystemFunctions( ) throw (SQLException, RuntimeException)
-+{
-+ // TODO
-+ return OUString();
-+}
-+OUString DatabaseMetaData::getTimeDateFunctions( ) throw (SQLException, RuntimeException)
-+{
-+ // TODO
-+ return OUString();
-+}
-+OUString DatabaseMetaData::getSearchStringEscape( ) throw (SQLException, RuntimeException)
-+{
-+ return ASCII_STR( "\\" );
-+}
-+OUString DatabaseMetaData::getExtraNameCharacters( ) throw (SQLException, RuntimeException)
-+{
-+ // TODO
-+ return OUString();
-+}
-+
-+sal_Bool DatabaseMetaData::supportsAlterTableWithAddColumn( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsAlterTableWithDropColumn( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsColumnAliasing( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+
-+sal_Bool DatabaseMetaData::nullPlusNonNullIsNull( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsTypeConversion( ) throw (SQLException, RuntimeException) // TODO, DON'T KNOW
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsConvert( sal_Int32 fromType, sal_Int32 toType ) throw (SQLException, RuntimeException) // TODO
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsTableCorrelationNames( ) throw (SQLException, RuntimeException) // TODO, don't know
-+{
-+ return sal_False;
-+}
-+
-+
-+sal_Bool DatabaseMetaData::supportsDifferentTableCorrelationNames( ) throw (SQLException, RuntimeException) // TODO, don't know
-+{
-+ return sal_False;
-+}
-+sal_Bool DatabaseMetaData::supportsExpressionsInOrderBy( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsOrderByUnrelated( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsGroupBy( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsGroupByUnrelated( ) throw (SQLException, RuntimeException) // TODO, DONT know
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsGroupByBeyondSelect( ) throw (SQLException, RuntimeException) // TODO, DON'T know
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsLikeEscapeClause( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsMultipleResultSets( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsMultipleTransactions( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsNonNullableColumns( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+
-+
-+sal_Bool DatabaseMetaData::supportsMinimumSQLGrammar( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsCoreSQLGrammar( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsExtendedSQLGrammar( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsANSI92EntryLevelSQL( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsANSI92IntermediateSQL( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsANSI92FullSQL( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsIntegrityEnhancementFacility( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsOuterJoins( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsFullOuterJoins( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsLimitedOuterJoins( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+
-+OUString DatabaseMetaData::getSchemaTerm( ) throw (SQLException, RuntimeException)
-+{
-+ return ASCII_STR( "SCHEMA" );
-+}
-+
-+OUString DatabaseMetaData::getProcedureTerm( ) throw (SQLException, RuntimeException)
-+{
-+ // don't know
-+ return OUString();
-+}
-+
-+OUString DatabaseMetaData::getCatalogTerm( ) throw (SQLException, RuntimeException)
-+{
-+ // TODO is this correct ?
-+ return ASCII_STR( "DATABASE" );
-+}
-+
-+sal_Bool DatabaseMetaData::isCatalogAtStart( ) throw (SQLException, RuntimeException) // TODO don't know
-+{
-+
-+ return sal_True;
-+}
-+
-+OUString DatabaseMetaData::getCatalogSeparator( ) throw (SQLException, RuntimeException)
-+{
-+ // TODO don't know
-+ return ASCII_STR( "." );
-+}
-+
-+sal_Bool DatabaseMetaData::supportsSchemasInDataManipulation( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsSchemasInProcedureCalls( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsSchemasInTableDefinitions( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsSchemasInIndexDefinitions( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsSchemasInPrivilegeDefinitions( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsCatalogsInDataManipulation( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsCatalogsInProcedureCalls( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsCatalogsInTableDefinitions( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+
-+sal_Bool DatabaseMetaData::supportsCatalogsInIndexDefinitions( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+
-+sal_Bool DatabaseMetaData::supportsCatalogsInPrivilegeDefinitions( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+
-+sal_Bool DatabaseMetaData::supportsPositionedDelete( ) throw (SQLException, RuntimeException)
-+{
-+ // TODO
-+ return sal_True;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsPositionedUpdate( ) throw (SQLException, RuntimeException)
-+{
-+ // TODO
-+ return sal_True;
-+}
-+
-+
-+sal_Bool DatabaseMetaData::supportsSelectForUpdate( ) throw (SQLException, RuntimeException)
-+{
-+ // TODO
-+ return sal_False;
-+}
-+
-+
-+sal_Bool DatabaseMetaData::supportsStoredProcedures( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+
-+sal_Bool DatabaseMetaData::supportsSubqueriesInComparisons( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsSubqueriesInExists( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsSubqueriesInIns( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsSubqueriesInQuantifieds( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsCorrelatedSubqueries( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+sal_Bool DatabaseMetaData::supportsUnion( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsUnionAll( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsOpenCursorsAcrossCommit( ) throw (SQLException, RuntimeException)
-+{
-+ // TODO, don't know
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsOpenCursorsAcrossRollback( ) throw (SQLException, RuntimeException)
-+{
-+ // TODO, don't know
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsOpenStatementsAcrossCommit( ) throw (SQLException, RuntimeException)
-+{
-+ // TODO, don't know
-+ return sal_False;
-+}
-+sal_Bool DatabaseMetaData::supportsOpenStatementsAcrossRollback( ) throw (SQLException, RuntimeException)
-+{
-+ // TODO, don't know
-+ return sal_False;
-+}
-+
-+sal_Int32 DatabaseMetaData::getMaxBinaryLiteralLength( ) throw (SQLException, RuntimeException)
-+{
-+ // TODO, don't know
-+ return -1;
-+}
-+
-+sal_Int32 DatabaseMetaData::getMaxCharLiteralLength( ) throw (SQLException, RuntimeException)
-+{
-+ return -1;
-+}
-+
-+sal_Int32 DatabaseMetaData::getMaxColumnNameLength( ) throw (SQLException, RuntimeException) //TODO, don't know
-+{
-+ return MAX_IDENTIFIER_LENGTH;
-+}
-+
-+sal_Int32 DatabaseMetaData::getMaxColumnsInGroupBy( ) throw (SQLException, RuntimeException) //TODO, don't know
-+{
-+ return MAX_COLUMNS_IN_GROUPBY;
-+}
-+
-+sal_Int32 DatabaseMetaData::getMaxColumnsInIndex( ) throw (SQLException, RuntimeException) //TODO, don't know
-+{
-+ return MAX_COLUMNS_IN_INDEX;
-+}
-+
-+sal_Int32 DatabaseMetaData::getMaxColumnsInOrderBy( ) throw (SQLException, RuntimeException) //TODO, don't know
-+{
-+ return MAX_COLUMNS_IN_ORDER_BY;
-+}
-+
-+sal_Int32 DatabaseMetaData::getMaxColumnsInSelect( ) throw (SQLException, RuntimeException) //TODO, don't know
-+{
-+ return MAX_COLUMNS_IN_SELECT;
-+}
-+
-+sal_Int32 DatabaseMetaData::getMaxColumnsInTable( ) throw (SQLException, RuntimeException) //TODO, don't know
-+{
-+ return MAX_COLUMNS_IN_TABLE;
-+}
-+
-+sal_Int32 DatabaseMetaData::getMaxConnections( ) throw (SQLException, RuntimeException) //TODO, don't know
-+{
-+ return MAX_CONNECTIONS;
-+}
-+
-+sal_Int32 DatabaseMetaData::getMaxCursorNameLength( ) throw (SQLException, RuntimeException) //TODO, don't know
-+{
-+ return MAX_IDENTIFIER_LENGTH;
-+}
-+
-+sal_Int32 DatabaseMetaData::getMaxIndexLength( ) throw (SQLException, RuntimeException) //TODO, don't know
-+{
-+ return MAX_IDENTIFIER_LENGTH;
-+}
-+
-+sal_Int32 DatabaseMetaData::getMaxSchemaNameLength( ) throw (SQLException, RuntimeException)
-+{
-+ return MAX_IDENTIFIER_LENGTH;
-+}
-+
-+sal_Int32 DatabaseMetaData::getMaxProcedureNameLength( ) throw (SQLException, RuntimeException)
-+{
-+ return MAX_IDENTIFIER_LENGTH;
-+}
-+
-+sal_Int32 DatabaseMetaData::getMaxCatalogNameLength( ) throw (SQLException, RuntimeException)
-+{
-+ return MAX_IDENTIFIER_LENGTH;
-+}
-+
-+sal_Int32 DatabaseMetaData::getMaxRowSize( ) throw (SQLException, RuntimeException)
-+{
-+ return -1;
-+}
-+
-+sal_Bool DatabaseMetaData::doesMaxRowSizeIncludeBlobs( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Int32 DatabaseMetaData::getMaxStatementLength( ) throw (SQLException, RuntimeException) //TODO, don't know
-+{
-+ return MAX_STATEMENT_LENGTH;
-+}
-+
-+sal_Int32 DatabaseMetaData::getMaxStatements( ) throw (SQLException, RuntimeException) //TODO, don't know
-+{
-+ return MAX_STATEMENTS;
-+}
-+
-+sal_Int32 DatabaseMetaData::getMaxTableNameLength( ) throw (SQLException, RuntimeException)
-+{
-+ return MAX_IDENTIFIER_LENGTH;
-+}
-+
-+sal_Int32 DatabaseMetaData::getMaxTablesInSelect( ) throw (SQLException, RuntimeException)
-+{
-+ return MAX_TABLES_IN_SELECT;
-+}
-+
-+sal_Int32 DatabaseMetaData::getMaxUserNameLength( ) throw (SQLException, RuntimeException)
-+{
-+ return MAX_USER_NAME_LENGTH;
-+}
-+
-+sal_Int32 DatabaseMetaData::getDefaultTransactionIsolation( ) throw (SQLException, RuntimeException)
-+{
-+ return com::sun::star::sdbc::TransactionIsolation::READ_COMMITTED;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsTransactions( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsTransactionIsolationLevel( sal_Int32 level ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsDataDefinitionAndDataManipulationTransactions( )
-+ throw (SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsDataManipulationTransactionsOnly( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::dataDefinitionCausesTransactionCommit( ) throw (SQLException, RuntimeException)
-+{
-+ // don't know
-+ return sal_True;
-+}
-+
-+sal_Bool DatabaseMetaData::dataDefinitionIgnoredInTransactions( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+
-+::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getProcedures(
-+ const ::com::sun::star::uno::Any& catalog,
-+ const OUString& schemaPattern,
-+ const OUString& procedureNamePattern ) throw (SQLException, RuntimeException)
-+{
-+// 1. PROCEDURE_CAT string =&gt; procedure catalog (may be NULL )
-+// 2. PROCEDURE_SCHEM string =&gt; procedure schema (may be NULL )
-+// 3. PROCEDURE_NAME string =&gt; procedure name
-+// 4. reserved for future use
-+// 5. reserved for future use
-+// 6. reserved for future use
-+// 7. REMARKS string =&gt; explanatory comment on the procedure
-+// 8. PROCEDURE_TYPE short =&gt; kind of procedure:
-+// * UNKNOWN - May return a result
-+// * NO - Does not return a result
-+// * RETURN - Returns a result
-+
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return new SequenceResultSet(
-+ m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > (), m_pSettings->tc );
-+}
-+
-+::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getProcedureColumns(
-+ const ::com::sun::star::uno::Any& catalog,
-+ const OUString& schemaPattern,
-+ const OUString& procedureNamePattern,
-+ const OUString& columnNamePattern ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return new SequenceResultSet(
-+ m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > (), m_pSettings->tc );
-+}
-+
-+
-+::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getTables(
-+ const ::com::sun::star::uno::Any& catalog,
-+ const OUString& schemaPattern,
-+ const OUString& tableNamePattern,
-+ const ::com::sun::star::uno::Sequence< OUString >& types )
-+ throw (SQLException, RuntimeException)
-+{
-+ ODatabaseMetaDataResultSet* pResultSet = new ODatabaseMetaDataResultSet();
-+ Reference< XResultSet > xResultSet = pResultSet;
-+ pResultSet->setTablesMap();
-+
-+ ODatabaseMetaDataResultSet::ORows _rRows;
-+
-+
-+ ::std::vector< ::rtl::OUString > tables;
-+
-+ if ( !getTableStrings( m_pSettings->pConnection, tables,m_pSettings->encoding ) )
-+ return sal_False;
-+
-+
-+ ::rtl::OUString aTableType(::rtl::OUString::createFromAscii("TABLE"));
-+ for ( sal_Int32 i = 0; i < tables.size(); i++ )
-+ {
-+ ODatabaseMetaDataResultSet::ORow aRow(3);
-+ ::rtl::OUString aTableName = tables[i];
-+
-+
-+ // return tables to caller
-+ if (match( tableNamePattern, aTableName, '\0' ))
-+ if ( aTableName.getLength() == 0 )
-+ {
-+ aTableName = rtl::OUString::createFromAscii("table1");
-+ }
-+
-+
-+ aRow.push_back( new ORowSetValueDecorator( aTableName ) ); // Table name
-+ aRow.push_back( new ORowSetValueDecorator( aTableType ) ); // Table Type
-+ aRow.push_back( ODatabaseMetaDataResultSet::getEmptyValue() ); // Remarks
-+ _rRows.push_back(aRow);
-+ }
-+
-+ pResultSet->setRows( _rRows );
-+
-+ return xResultSet;
-+}
-+
-+::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getSchemas( )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return new SequenceResultSet(
-+ m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > (), m_pSettings->tc );
-+}
-+
-+::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getCatalogs( )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return new SequenceResultSet(
-+ m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > (), m_pSettings->tc );
-+}
-+
-+::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getTableTypes( )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return new SequenceResultSet(
-+ m_refMutex, *this, sp().tableTypeNames, sp().tableTypeData,
-+ m_pSettings->tc );
-+}
-+
-+
-+/** returns the constant from sdbc.DataType
-+ */
-+static OUString typeNameToDataType( const OUString &typeName, const OUString &typtype )
-+{
-+ sal_Int32 ret = com::sun::star::sdbc::DataType::VARCHAR;
-+ if( 0 == typtype.compareToAscii( "b" ) )
-+ {
-+ // base type
-+ Strings &strs = sp();
-+ BaseTypeMap::iterator ii = strs.baseTypeMap.find( typeName );
-+ if( ii != strs.baseTypeMap.end() )
-+ {
-+ ret = ii->second;
-+ }
-+ }
-+ else if( 0 == typtype.compareToAscii( "c" ) )
-+ {
-+ ret = com::sun::star::sdbc::DataType::STRUCT;
-+ }
-+ else if( 0 == typtype.compareToAscii( "d" ) )
-+ {
-+ ret = com::sun::star::sdbc::DataType::DISTINCT;
-+ }
-+ return OUString::valueOf( ret );
-+}
-+
-+static bool isSystemColumn( const OUString &columnName )
-+{
-+ return sal_False;
-+}
-+
-+::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getColumns(
-+ const ::com::sun::star::uno::Any& catalog,
-+ const OUString& schemaPattern,
-+ const OUString& tableNamePattern,
-+ const OUString& columnNamePattern ) throw (SQLException, RuntimeException)
-+{
-+ Strings &strs = sp();
-+
-+ // continue !
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+
-+ // ignore catalog, as a single pq connection
-+ // does not support multiple catalogs eitherway
-+
-+ // 1. TABLE_CAT string => table catalog (may be NULL)
-+ // => not supported
-+ // 2. TABLE_SCHEM string => table schema (may be NULL)
-+ // 3. TABLE_NAME string => table name
-+ // 4. COLUMN_NAME string => column name
-+ // 5. DATA_TYPE short => SQL type from java.sql.Types
-+ // 6. TYPE_NAME string => Data source dependent type name, for a UDT the
-+ // type name is fully qualified
-+ // 7. COLUMN_SIZE long => column size. For char or date types this is
-+ // the maximum number of characters, for numeric
-+ // or decimal types this is precision.
-+ // 8. BUFFER_LENGTH is not used.
-+ // => not used
-+ // 9. DECIMAL_DIGITS long => the number of fractional digits
-+ // => don't know ! TODO !
-+ // 10. NUM_PREC_RADIX long => Radix (typically either 10 or 2)
-+ // => TODO ??
-+ // 11. NULLABLE long => is NULL allowed?
-+ // NO_NULLS - might not allow NULL values
-+ // NULABLE - definitely allows NULL values
-+ // NULLABLE_UNKNOWN - nullability unknown
-+ // 12. REMARKS string => comment describing column (may be NULL )
-+ // 13. COLUMN_DEF string => default value (may be NULL)
-+ // 14. SQL_DATA_TYPE long => unused
-+ // => empty
-+ // 15. SQL_DATETIME_SUB long => unused
-+ // => empty
-+ // 16. CHAR_OCTET_LENGTH long => for char types the maximum number of
-+ // bytes in the column
-+ // 17. ORDINAL_POSITION int => index of column in table (starting at 1)
-+ // pg_attribute.attnum
-+ // 18. IS_NULLABLE string => "NO" means column definitely does not allow
-+ // NULL values; "YES" means the column might
-+ // allow NULL values. An empty string means
-+ // nobody knows.
-+ AnyVector vec;
-+ if (!getColumnStrings(m_pSettings->pConnection, tableNamePattern,vec,m_pSettings->encoding ))
-+ return NULL;
-+
-+ return new SequenceResultSet(
-+ m_refMutex, *this, strs.columnRowNames,
-+ Sequence< Sequence< Any > > ( &vec[0],vec.size() ), m_pSettings->tc );
-+}
-+
-+::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getColumnPrivileges(
-+ const ::com::sun::star::uno::Any& catalog,
-+ const OUString& schema,
-+ const OUString& table,
-+ const OUString& columnNamePattern ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return new SequenceResultSet(
-+ m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > (), m_pSettings->tc );
-+}
-+
-+static void addPrivilegesToVector(
-+ sal_Int32 privilege, const OUString &catalog, const OUString & schema,
-+ const OUString &tableName, const OUString &grantor, const OUString &grantee,
-+ bool grantable, AnyVector &vec )
-+{
-+ Strings & st = sp();
-+ for( int index = 1; index <= PRIVILEGE_MAX ; index = index << 1 )
-+ {
-+ OUString privname;
-+ switch( privilege & index )
-+ {
-+ case PRIVILEGE_SELECT:
-+ privname = st.SELECT; break;
-+ case PRIVILEGE_UPDATE:
-+ privname = st.UPDATE; break;
-+ case PRIVILEGE_INSERT:
-+ privname = st.INSERT; break;
-+ case PRIVILEGE_DELETE:
-+ privname = st.DELETE; break;
-+ case PRIVILEGE_RULE:
-+ privname = st.RULE; break;
-+ case PRIVILEGE_REFERENCES:
-+ privname = st.REFERENCES; break;
-+ case PRIVILEGE_TRIGGER:
-+ privname = st.TRIGGER; break;
-+ case PRIVILEGE_EXECUTE:
-+ privname = st.EXECUTE; break;
-+ case PRIVILEGE_USAGE:
-+ privname = st.USAGE; break;
-+ case PRIVILEGE_CREATE:
-+ privname = st.CREATE; break;
-+ case PRIVILEGE_TEMPORARY:
-+ privname = st.TEMPORARY; break;
-+ default:
-+// printf( "error\n" );
-+ break;
-+ }
-+
-+ Sequence< Any > seq( 7 );
-+ seq[0] <<= catalog;
-+ seq[1] <<= schema;
-+ seq[2] <<= tableName;
-+ seq[3] <<= grantor;
-+ seq[4] <<= grantee;
-+ seq[5] <<= privname;
-+ seq[6] <<= (grantable ? st.YES : st.NO );
-+ vec.push_back( seq );
-+ }
-+}
-+
-+
-+::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getTablePrivileges(
-+ const ::com::sun::star::uno::Any& catalog,
-+ const OUString& schemaPattern,
-+ const OUString& tableNamePattern ) throw (SQLException, RuntimeException)
-+{
-+ return NULL;
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+
-+ return new SequenceResultSet(
-+ m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > (), m_pSettings->tc );
-+}
-+
-+::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getBestRowIdentifier(
-+ const ::com::sun::star::uno::Any& catalog,
-+ const OUString& schema,
-+ const OUString& table,
-+ sal_Int32 scope,
-+ sal_Bool nullable ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return new SequenceResultSet(
-+ m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > (), m_pSettings->tc );
-+}
-+
-+::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getVersionColumns(
-+ const ::com::sun::star::uno::Any& catalog,
-+ const OUString& schema,
-+ const OUString& table ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return new SequenceResultSet(
-+ m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > (), m_pSettings->tc );
-+}
-+
-+::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getPrimaryKeys(
-+ const ::com::sun::star::uno::Any& catalog,
-+ const OUString& schema,
-+ const OUString& table ) throw (SQLException, RuntimeException)
-+{
-+
-+ return NULL;
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+
-+ return new SequenceResultSet(
-+ m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > (), m_pSettings->tc );
-+}
-+
-+::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getImportedKeys(
-+ const ::com::sun::star::uno::Any& catalog,
-+ const OUString& schema,
-+ const OUString& table ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return new SequenceResultSet(
-+ m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > (), m_pSettings->tc );
-+}
-+
-+::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getExportedKeys(
-+ const ::com::sun::star::uno::Any& catalog,
-+ const OUString& schema,
-+ const OUString& table ) throw (SQLException, RuntimeException)
-+{
-+ throw ::com::sun::star::sdbc::SQLException(
-+ ASCII_STR( "mdb_databasemetadata: imported keys from tables not supported " ),
-+ *this,
-+ OUString(), 1, Any() );
-+}
-+
-+::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getCrossReference(
-+ const ::com::sun::star::uno::Any& primaryCatalog,
-+ const OUString& primarySchema,
-+ const OUString& primaryTable,
-+ const ::com::sun::star::uno::Any& foreignCatalog,
-+ const OUString& foreignSchema,
-+ const OUString& foreignTable ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return new SequenceResultSet(
-+ m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > (), m_pSettings->tc );
-+}
-+
-+
-+::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getTypeInfo( )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ AnyVector vec;
-+ if (!getTypeInfos(vec))
-+ return new SequenceResultSet(
-+ m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > (), m_pSettings->tc );
-+
-+ Sequence< OUString > typeRowNames=createStringSequence( typeInfoColumn, 18 );
-+
-+ return new SequenceResultSet(
-+ m_refMutex, *this, typeRowNames,
-+ Sequence< Sequence< Any > > ( &vec[0],vec.size() ), m_pSettings->tc );
-+
-+}
-+
-+::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getIndexInfo(
-+ const ::com::sun::star::uno::Any& catalog,
-+ const OUString& schema,
-+ const OUString& table,
-+ sal_Bool unique,
-+ sal_Bool approximate ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return new SequenceResultSet(
-+ m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > (), m_pSettings->tc );
-+}
-+
-+sal_Bool DatabaseMetaData::supportsResultSetType( sal_Int32 setType )
-+ throw (SQLException, RuntimeException)
-+{
-+ return
-+ setType == com::sun::star::sdbc::ResultSetType::SCROLL_INSENSITIVE ||
-+ setType == com::sun::star::sdbc::ResultSetType::FORWARD_ONLY;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsResultSetConcurrency(
-+ sal_Int32 setType, sal_Int32 concurrency ) throw (SQLException, RuntimeException)
-+{
-+ return supportsResultSetType( setType ) &&
-+ (concurrency == com::sun::star::sdbc::TransactionIsolation::READ_COMMITTED ||
-+ concurrency == com::sun::star::sdbc::TransactionIsolation::SERIALIZABLE );
-+}
-+
-+sal_Bool DatabaseMetaData::ownUpdatesAreVisible( sal_Int32 setType ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::ownDeletesAreVisible( sal_Int32 setType ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::ownInsertsAreVisible( sal_Int32 setType ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::othersUpdatesAreVisible( sal_Int32 setType ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::othersDeletesAreVisible( sal_Int32 setType ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::othersInsertsAreVisible( sal_Int32 setType ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::updatesAreDetected( sal_Int32 setType ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::deletesAreDetected( sal_Int32 setType ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+sal_Bool DatabaseMetaData::insertsAreDetected( sal_Int32 setType ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool DatabaseMetaData::supportsBatchUpdates( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+::com::sun::star::uno::Reference< XResultSet > DatabaseMetaData::getUDTs( const ::com::sun::star::uno::Any& catalog, const OUString& schemaPattern, const OUString& typeNamePattern, const ::com::sun::star::uno::Sequence< sal_Int32 >& types ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return new SequenceResultSet(
-+ m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > (), m_pSettings->tc );
-+}
-+
-+::com::sun::star::uno::Reference< com::sun::star::sdbc::XConnection > DatabaseMetaData::getConnection()
-+ throw (SQLException, RuntimeException)
-+{
-+ return m_origin;
-+}
-+}
-+
diff --git a/patches/src680/connectivity-source-drivers-mdb-mdb-databasemetadata-hxx.diff b/patches/src680/connectivity-source-drivers-mdb-mdb-databasemetadata-hxx.diff
deleted file mode 100644
index 955a93df9..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-mdb-databasemetadata-hxx.diff
+++ /dev/null
@@ -1,251 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/mdb_databasemetadata.hxx 2005-06-29 11:18:53.000000000 +0530
-@@ -0,0 +1,248 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Joerg Budischewski
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Joerg Budischewski
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _MDB_DATABASEMETADATA_HXX_
-+#define _MDB_DATABASEMETADATA_HXX_
-+
-+#include "mdb_connection.hxx"
-+#include <com/sun/star/sdbc/XDatabaseMetaData.hpp>
-+
-+#include <cppuhelper/implbase1.hxx>
-+
-+#ifndef _CONNECTIVITY_FDATABASEMETADATARESULTSET_HXX_
-+#include <FDatabaseMetaDataResultSet.hxx>
-+#endif
-+using namespace connectivity;
-+namespace mdb_sdbc_driver
-+{
-+
-+class DatabaseMetaData :
-+ public ::cppu::WeakImplHelper1 < com::sun::star::sdbc::XDatabaseMetaData >
-+{
-+ ::rtl::Reference< RefCountedMutex > m_refMutex;
-+ ConnectionSettings *m_pSettings;
-+ ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > m_origin;
-+
-+ void checkClosed()
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+public:
-+ DatabaseMetaData(
-+ const ::rtl::Reference< RefCountedMutex > & reMutex,
-+ const ::com::sun::star::uno::Reference< com::sun::star::sdbc::XConnection > & origin,
-+ ConnectionSettings *pSettings
-+ );
-+
-+public:
-+ // Methods
-+ virtual sal_Bool SAL_CALL allProceduresAreCallable( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL allTablesAreSelectable( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getURL( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getUserName( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isReadOnly( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL nullsAreSortedHigh( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL nullsAreSortedLow( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL nullsAreSortedAtStart( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL nullsAreSortedAtEnd( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getDatabaseProductName( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getDatabaseProductVersion( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getDriverName( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getDriverVersion( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getDriverMajorVersion( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getDriverMinorVersion( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL usesLocalFiles( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL usesLocalFilePerTable( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsMixedCaseIdentifiers( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL storesUpperCaseIdentifiers( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL storesLowerCaseIdentifiers( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL storesMixedCaseIdentifiers( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsMixedCaseQuotedIdentifiers( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL storesUpperCaseQuotedIdentifiers( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL storesLowerCaseQuotedIdentifiers( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL storesMixedCaseQuotedIdentifiers( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getIdentifierQuoteString( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getSQLKeywords( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getNumericFunctions( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getStringFunctions( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getSystemFunctions( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getTimeDateFunctions( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getSearchStringEscape( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getExtraNameCharacters( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsAlterTableWithAddColumn( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsAlterTableWithDropColumn( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsColumnAliasing( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL nullPlusNonNullIsNull( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsTypeConversion( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsConvert( sal_Int32 fromType, sal_Int32 toType ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsTableCorrelationNames( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsDifferentTableCorrelationNames( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsExpressionsInOrderBy( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsOrderByUnrelated( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsGroupBy( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsGroupByUnrelated( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsGroupByBeyondSelect( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsLikeEscapeClause( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsMultipleResultSets( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsMultipleTransactions( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsNonNullableColumns( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsMinimumSQLGrammar( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsCoreSQLGrammar( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsExtendedSQLGrammar( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsANSI92EntryLevelSQL( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsANSI92IntermediateSQL( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsANSI92FullSQL( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsIntegrityEnhancementFacility( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsOuterJoins( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsFullOuterJoins( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsLimitedOuterJoins( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getSchemaTerm( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getProcedureTerm( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getCatalogTerm( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isCatalogAtStart( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getCatalogSeparator( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsSchemasInDataManipulation( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsSchemasInProcedureCalls( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsSchemasInTableDefinitions( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsSchemasInIndexDefinitions( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsSchemasInPrivilegeDefinitions( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsCatalogsInDataManipulation( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsCatalogsInProcedureCalls( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsCatalogsInTableDefinitions( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsCatalogsInIndexDefinitions( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsCatalogsInPrivilegeDefinitions( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsPositionedDelete( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsPositionedUpdate( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsSelectForUpdate( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsStoredProcedures( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsSubqueriesInComparisons( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsSubqueriesInExists( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsSubqueriesInIns( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsSubqueriesInQuantifieds( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsCorrelatedSubqueries( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsUnion( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsUnionAll( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsOpenCursorsAcrossCommit( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsOpenCursorsAcrossRollback( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsOpenStatementsAcrossCommit( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsOpenStatementsAcrossRollback( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxBinaryLiteralLength( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxCharLiteralLength( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxColumnNameLength( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxColumnsInGroupBy( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxColumnsInIndex( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxColumnsInOrderBy( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxColumnsInSelect( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxColumnsInTable( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxConnections( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxCursorNameLength( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxIndexLength( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxSchemaNameLength( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxProcedureNameLength( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxCatalogNameLength( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxRowSize( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL doesMaxRowSizeIncludeBlobs( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxStatementLength( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxStatements( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxTableNameLength( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxTablesInSelect( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxUserNameLength( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getDefaultTransactionIsolation( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsTransactions( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsTransactionIsolationLevel( sal_Int32 level ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsDataDefinitionAndDataManipulationTransactions( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsDataManipulationTransactionsOnly( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL dataDefinitionCausesTransactionCommit( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL dataDefinitionIgnoredInTransactions( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getProcedures( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& procedureNamePattern ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getProcedureColumns( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& procedureNamePattern, const ::rtl::OUString& columnNamePattern ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getTables( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& tableNamePattern, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& types ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getSchemas( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getCatalogs( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getTableTypes( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getColumns( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& tableNamePattern, const ::rtl::OUString& columnNamePattern ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getColumnPrivileges( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table, const ::rtl::OUString& columnNamePattern ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getTablePrivileges( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& tableNamePattern ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getBestRowIdentifier( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table, sal_Int32 scope, sal_Bool nullable ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getVersionColumns( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getPrimaryKeys( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getImportedKeys( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getExportedKeys( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getCrossReference( const ::com::sun::star::uno::Any& primaryCatalog, const ::rtl::OUString& primarySchema, const ::rtl::OUString& primaryTable, const ::com::sun::star::uno::Any& foreignCatalog, const ::rtl::OUString& foreignSchema, const ::rtl::OUString& foreignTable ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getTypeInfo( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getIndexInfo( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table, sal_Bool unique, sal_Bool approximate ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsResultSetType( sal_Int32 setType ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsResultSetConcurrency( sal_Int32 setType, sal_Int32 concurrency ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL ownUpdatesAreVisible( sal_Int32 setType ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL ownDeletesAreVisible( sal_Int32 setType ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL ownInsertsAreVisible( sal_Int32 setType ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL othersUpdatesAreVisible( sal_Int32 setType ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL othersDeletesAreVisible( sal_Int32 setType ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL othersInsertsAreVisible( sal_Int32 setType ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL updatesAreDetected( sal_Int32 setType ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL deletesAreDetected( sal_Int32 setType ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL insertsAreDetected( sal_Int32 setType ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsBatchUpdates( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getUDTs( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& typeNamePattern, const ::com::sun::star::uno::Sequence< sal_Int32 >& types ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > SAL_CALL getConnection( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+};
-+
-+}
-+
-+#endif
diff --git a/patches/src680/connectivity-source-drivers-mdb-mdb-driver-cxx.diff b/patches/src680/connectivity-source-drivers-mdb-mdb-driver-cxx.diff
deleted file mode 100644
index 20adda99d..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-mdb-driver-cxx.diff
+++ /dev/null
@@ -1,390 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/mdb_driver.cxx 2005-07-29 09:53:55.000000000 +0530
-@@ -0,0 +1,387 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Joerg Budischewski
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Joerg Budischewski
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include <stdio.h>
-+
-+#include <cppuhelper/factory.hxx>
-+#include <cppuhelper/compbase1.hxx>
-+#include <cppuhelper/implementationentry.hxx>
-+
-+#include <com/sun/star/beans/XPropertySet.hpp>
-+
-+#include "mdb_driver.hxx"
-+
-+using rtl::OUString;
-+using rtl::OUStringToOString;
-+using osl::MutexGuard;
-+
-+using cppu::WeakComponentImplHelper2;
-+
-+using com::sun::star::lang::XSingleComponentFactory;
-+using com::sun::star::lang::XServiceInfo;
-+using com::sun::star::lang::XComponent;
-+
-+using com::sun::star::uno::RuntimeException;
-+using com::sun::star::uno::Exception;
-+using com::sun::star::uno::Sequence;
-+using com::sun::star::uno::Reference;
-+using com::sun::star::uno::XInterface;
-+using com::sun::star::uno::UNO_QUERY;
-+using com::sun::star::uno::XComponentContext;
-+using com::sun::star::uno::Any;
-+
-+using com::sun::star::beans::PropertyValue;
-+using com::sun::star::beans::XPropertySet;
-+
-+using com::sun::star::sdbc::XConnection;
-+using com::sun::star::sdbc::SQLException;
-+using com::sun::star::sdbc::DriverPropertyInfo;
-+
-+
-+namespace mdb_sdbc_driver
-+{
-+#define ASCII_STR(x) OUString( RTL_CONSTASCII_USTRINGPARAM( x ) )
-+
-+OUString DriverGetImplementationName()
-+{
-+ static OUString *p;
-+ if (! p )
-+ {
-+ MutexGuard guard( osl::Mutex::getGlobalMutex() );
-+ static OUString instance(
-+ RTL_CONSTASCII_USTRINGPARAM( "org.openoffice.comp.connectivity.mdb.Driver" ) );
-+ p = &instance;
-+ }
-+ return *p;
-+}
-+
-+Sequence< OUString > DriverGetSupportedServiceNames()
-+{
-+ static Sequence< OUString > *p;
-+ if( ! p )
-+ {
-+ MutexGuard guard( osl::Mutex::getGlobalMutex() );
-+ OUString tmp( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.sdbc.Driver" ) );
-+ static Sequence< OUString > instance( &tmp,1 );
-+ p = &instance;
-+ }
-+ return *p;
-+}
-+
-+Reference< XConnection > Driver::connect(
-+ const OUString& url,const Sequence< PropertyValue >& info )
-+ throw (SQLException, RuntimeException)
-+{
-+ if( ! acceptsURL( url ) ) // XDriver spec tells me to do so ...
-+ return Reference< XConnection > ();
-+ Sequence< Any > seq ( 2 );
-+ seq[0] <<= url;
-+ seq[1] <<= info;
-+ return Reference< XConnection> (
-+ m_smgr->createInstanceWithArgumentsAndContext(
-+ OUString(RTL_CONSTASCII_USTRINGPARAM("org.openoffice.comp.connectivity.mdb.Connection" ) ),
-+ seq, m_ctx ),
-+ UNO_QUERY );
-+}
-+
-+sal_Bool Driver::acceptsURL( const ::rtl::OUString& url )
-+ throw (SQLException, RuntimeException)
-+{
-+ return url.compareToAscii( RTL_CONSTASCII_STRINGPARAM( "sdbc:mdb:" ) ) == 0;
-+}
-+
-+Sequence< DriverPropertyInfo > Driver::getPropertyInfo(
-+ const OUString& url,const Sequence< PropertyValue >& info )
-+ throw (SQLException, RuntimeException)
-+{
-+ return Sequence< DriverPropertyInfo > ();
-+}
-+
-+sal_Int32 Driver::getMajorVersion( ) throw (RuntimeException)
-+{
-+ return MDB_MAJOR;
-+}
-+
-+
-+sal_Int32 Driver::getMinorVersion( ) throw (RuntimeException)
-+{
-+ return MDB_MAJOR;
-+}
-+
-+ // XServiceInfo
-+OUString SAL_CALL Driver::getImplementationName()
-+ throw(::com::sun::star::uno::RuntimeException)
-+{
-+ return DriverGetImplementationName();
-+}
-+
-+sal_Bool Driver::supportsService(const OUString& ServiceName)
-+ throw(::com::sun::star::uno::RuntimeException)
-+{
-+ Sequence< OUString > serviceNames = DriverGetSupportedServiceNames();
-+ for( int i = 0 ; i < serviceNames.getLength() ; i ++ )
-+ if( serviceNames[i] == ServiceName )
-+ return sal_True;
-+ return sal_False;
-+}
-+
-+Sequence< OUString > Driver::getSupportedServiceNames(void)
-+ throw(::com::sun::star::uno::RuntimeException)
-+{
-+ return DriverGetSupportedServiceNames();
-+}
-+
-+// XComponent
-+void Driver::disposing()
-+{
-+
-+}
-+
-+Reference< XInterface > DriverCreateInstance( const Reference < XComponentContext > & ctx )
-+{
-+ Reference< XInterface > ret = * new Driver( ctx );
-+ return ret;
-+}
-+
-+
-+
-+
-+class OOneInstanceComponentFactory :
-+ public MutexHolder,
-+ public WeakComponentImplHelper2< XSingleComponentFactory, XServiceInfo >
-+{
-+public:
-+ OOneInstanceComponentFactory(
-+ const OUString & rImplementationName_,
-+ cppu::ComponentFactoryFunc fptr,
-+ const Sequence< OUString > & serviceNames,
-+ const Reference< XComponentContext > & defaultContext) :
-+ WeakComponentImplHelper2< XSingleComponentFactory, XServiceInfo >( this->m_mutex ),
-+ m_implName( rImplementationName_ ),
-+ m_create( fptr ),
-+ m_serviceNames( serviceNames ),
-+ m_defaultContext( defaultContext )
-+ {
-+ }
-+
-+ // XSingleComponentFactory
-+ virtual Reference< XInterface > SAL_CALL createInstanceWithContext(
-+ Reference< XComponentContext > const & xContext )
-+ throw (Exception, RuntimeException);
-+ virtual Reference< XInterface > SAL_CALL createInstanceWithArgumentsAndContext(
-+ Sequence< Any > const & rArguments,
-+ Reference< XComponentContext > const & xContext )
-+ throw (Exception, RuntimeException);
-+
-+ // XServiceInfo
-+ OUString SAL_CALL getImplementationName()
-+ throw(::com::sun::star::uno::RuntimeException)
-+ {
-+ return m_implName;
-+ }
-+ sal_Bool SAL_CALL supportsService(const OUString& ServiceName)
-+ throw(::com::sun::star::uno::RuntimeException)
-+ {
-+ for( int i = 0 ; i < m_serviceNames.getLength() ; i ++ )
-+ if( m_serviceNames[i] == ServiceName )
-+ return sal_True;
-+ return sal_False;
-+ }
-+ Sequence< OUString > SAL_CALL getSupportedServiceNames(void)
-+ throw(::com::sun::star::uno::RuntimeException)
-+ {
-+ return m_serviceNames;
-+ }
-+
-+ // XComponent
-+ virtual void SAL_CALL disposing();
-+
-+private:
-+ cppu::ComponentFactoryFunc m_create;
-+ Sequence< OUString > m_serviceNames;
-+ OUString m_implName;
-+ Reference< XInterface > m_theInstance;
-+ Reference< XComponentContext > m_defaultContext;
-+};
-+
-+Reference< XInterface > OOneInstanceComponentFactory::createInstanceWithArgumentsAndContext(
-+ Sequence< Any > const &rArguments, const Reference< XComponentContext > & ctx )
-+ throw( RuntimeException, Exception )
-+{
-+ return createInstanceWithContext( ctx );
-+}
-+
-+Reference< XInterface > OOneInstanceComponentFactory::createInstanceWithContext(
-+ const Reference< XComponentContext > & ctx )
-+ throw( RuntimeException, Exception )
-+{
-+ if( ! m_theInstance.is() )
-+ {
-+ // work around the problem in sdbc
-+ Reference< XComponentContext > useCtx = ctx;
-+ if( ! useCtx.is() )
-+ useCtx = m_defaultContext;
-+ Reference< XInterface > theInstance = m_create( useCtx );
-+ MutexGuard guard( osl::Mutex::getGlobalMutex() );
-+ if( ! m_theInstance.is () )
-+ {
-+ m_theInstance = theInstance;
-+ }
-+ }
-+ return m_theInstance;
-+}
-+
-+void OOneInstanceComponentFactory::disposing()
-+{
-+ Reference< XComponent > rComp;
-+ {
-+ MutexGuard guard( osl::Mutex::getGlobalMutex() );
-+ rComp = Reference< XComponent >( m_theInstance, UNO_QUERY );
-+ m_theInstance.clear();
-+ }
-+ if( rComp.is() )
-+ rComp->dispose();
-+}
-+
-+// Reference< XSingleComponentFactory > createOneInstanceComponentFactory(
-+// cppu::ComponentFactoryFunc fptr,
-+// ::rtl::OUString const & rImplementationName,
-+// ::com::sun::star::uno::Sequence< ::rtl::OUString > const & rServiceNames,
-+// rtl_ModuleCount * pModCount = 0 )
-+// SAL_THROW( () )
-+// {
-+// return new OOneInstanceComponentFactory( rImplementationName, fptr , rServiceNames);
-+// }
-+
-+}
-+
-+static struct cppu::ImplementationEntry g_entries[] =
-+{
-+ {
-+ mdb_sdbc_driver::DriverCreateInstance, mdb_sdbc_driver::DriverGetImplementationName,
-+ mdb_sdbc_driver::DriverGetSupportedServiceNames, 0,
-+ 0 , 0
-+ },
-+ { 0, 0, 0, 0, 0, 0 }
-+};
-+
-+extern "C"
-+{
-+
-+//==================================================================================================
-+void SAL_CALL component_getImplementationEnvironment(
-+ const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
-+{
-+ *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
-+}
-+//==================================================================================================
-+sal_Bool SAL_CALL component_writeInfo(
-+ void * pServiceManager, void * pRegistryKey )
-+{
-+ return cppu::component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries );
-+}
-+//==================================================================================================
-+void * SAL_CALL component_getFactory(
-+ const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
-+{
-+ // need to extract the defaultcontext, because the way, sdbc
-+ // bypasses the servicemanager, does not allow to use the
-+ // XSingleComponentFactory interface ...
-+ void * pRet = 0;
-+ Reference< XSingleComponentFactory > xFactory;
-+ Reference< XInterface > xSmgr( (XInterface * ) pServiceManager );
-+
-+ for( sal_Int32 i = 0 ; g_entries[i].create ; i ++ )
-+ {
-+ OUString implName = g_entries[i].getImplementationName();
-+ if( 0 == implName.compareToAscii( pImplName ) )
-+ {
-+ Reference< XComponentContext > defaultContext;
-+ Reference< XPropertySet > propSet( xSmgr, UNO_QUERY );
-+ if( propSet.is() )
-+ {
-+ try
-+ {
-+ propSet->getPropertyValue( ASCII_STR( "DefaultContext" ) ) >>= defaultContext;
-+ }
-+ catch( com::sun::star::uno::Exception &e )
-+ {
-+ // if there is no default context, ignore it
-+ }
-+ }
-+ xFactory = new mdb_sdbc_driver::OOneInstanceComponentFactory(
-+ implName,
-+ g_entries[i].create,
-+ g_entries[i].getSupportedServiceNames(),
-+ defaultContext );
-+ }
-+ }
-+
-+ if( xFactory.is() )
-+ {
-+ xFactory->acquire();
-+ pRet = xFactory.get();
-+ }
-+ return pRet;
-+}
-+
-+}
-+
diff --git a/patches/src680/connectivity-source-drivers-mdb-mdb-driver-hxx.diff b/patches/src680/connectivity-source-drivers-mdb-mdb-driver-hxx.diff
deleted file mode 100644
index 76d59a6b1..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-mdb-driver-hxx.diff
+++ /dev/null
@@ -1,140 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/mdb_driver.hxx 2005-06-29 11:18:53.000000000 +0530
-@@ -0,0 +1,137 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Joerg Budischewski
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Wind Li
-+ *
-+ *
-+ ************************************************************************/
-+#ifndef _MDB_DRIVER_HXX_
-+#define _MDB_DRIVER_HXX_
-+
-+#include <osl/mutex.hxx>
-+
-+#include <cppuhelper/compbase2.hxx>
-+
-+#include <com/sun/star/lang/XServiceInfo.hpp>
-+
-+#include <com/sun/star/sdbc/XDriver.hpp>
-+
-+#include <com/sun/star/uno/XComponentContext.hpp>
-+
-+namespace mdb_sdbc_driver
-+{
-+
-+#define MY_STRINGIFY( x ) #x
-+
-+#define MDB_SDBC_DRIVER_VERSION MY_STRINGIFY(MDB_MAJOR) "." \
-+ MY_STRINGIFY(MDB_MINOR) "." \
-+ MY_STRINGIFY(MDB_MICRO)
-+
-+#define MDBTOOLS_VERSION MY_STRINGIFY(MDBTOOLS_MAJOR) "." \
-+ MY_STRINGIFY(MDBTOOLS_MINOR) "." \
-+ MY_STRINGIFY(MDBTOOLS_MICRO)
-+
-+
-+struct MutexHolder { osl::Mutex m_mutex; };
-+typedef cppu::WeakComponentImplHelper2< com::sun::star::sdbc::XDriver, com::sun::star::lang::XServiceInfo > DriverBase ;
-+class Driver : public MutexHolder, public DriverBase
-+{
-+ com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext > m_ctx;
-+ com::sun::star::uno::Reference< com::sun::star::lang::XMultiComponentFactory > m_smgr;
-+
-+public:
-+ Driver ( const com::sun::star::uno::Reference < com::sun::star::uno::XComponentContext > & ctx )
-+ : DriverBase( this->m_mutex ),
-+ m_ctx( ctx ),
-+ m_smgr( ctx->getServiceManager() )
-+ {}
-+
-+public: // XDriver
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > SAL_CALL connect(
-+ const ::rtl::OUString& url,
-+ const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& info )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+ virtual sal_Bool SAL_CALL acceptsURL( const ::rtl::OUString& url )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::sdbc::DriverPropertyInfo > SAL_CALL getPropertyInfo(
-+ const ::rtl::OUString& url,
-+ const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& info )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+ virtual sal_Int32 SAL_CALL getMajorVersion( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMinorVersion( ) throw (::com::sun::star::uno::RuntimeException);
-+
-+public: // XServiceInfo
-+ // XServiceInfo
-+ virtual rtl::OUString SAL_CALL getImplementationName()
-+ throw(::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName)
-+ throw(::com::sun::star::uno::RuntimeException);
-+
-+ virtual com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void)
-+ throw(::com::sun::star::uno::RuntimeException);
-+
-+ // XComponent
-+ virtual void SAL_CALL disposing();
-+
-+};
-+
-+
-+}
-+
-+#endif
diff --git a/patches/src680/connectivity-source-drivers-mdb-mdb-map.diff b/patches/src680/connectivity-source-drivers-mdb-mdb-map.diff
deleted file mode 100644
index dcc26a2a6..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-mdb-map.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/mdb.map 2005-06-29 11:18:53.000000000 +0530
-@@ -0,0 +1,8 @@
-+MDB_1_0 {
-+ global:
-+ component_getImplementationEnvironment;
-+ component_writeInfo;
-+ component_getFactory;
-+ local:
-+ *;
-+};
diff --git a/patches/src680/connectivity-source-drivers-mdb-mdb-preparedstatement-cxx.diff b/patches/src680/connectivity-source-drivers-mdb-mdb-preparedstatement-cxx.diff
deleted file mode 100644
index c53a2b166..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-mdb-preparedstatement-cxx.diff
+++ /dev/null
@@ -1,740 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/mdb_preparedstatement.cxx 2005-06-29 11:18:53.000000000 +0530
-@@ -0,0 +1,737 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Joerg Budischewski
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Joerg Budischewski
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include "mdb_preparedstatement.hxx"
-+#include "mdb_resultset.hxx"
-+
-+#include <rtl/strbuf.hxx>
-+#include <rtl/ustrbuf.hxx>
-+
-+
-+#include <cppuhelper/typeprovider.hxx>
-+#include <cppuhelper/queryinterface.hxx>
-+
-+#include <com/sun/star/beans/PropertyAttribute.hpp>
-+
-+#include <com/sun/star/sdbc/ResultSetConcurrency.hpp>
-+#include <com/sun/star/sdbc/ResultSetType.hpp>
-+
-+using osl::Mutex;
-+using osl::MutexGuard;
-+
-+using rtl::OUString;
-+using rtl::OUStringToOString;
-+using rtl::OStringToOUString;
-+using rtl::OUStringBuffer;
-+using rtl::OStringBuffer;
-+using rtl::OString;
-+
-+using com::sun::star::uno::Any;
-+using com::sun::star::uno::makeAny;
-+using com::sun::star::uno::Type;
-+using com::sun::star::uno::RuntimeException;
-+using com::sun::star::uno::Exception;
-+using com::sun::star::uno::Sequence;
-+using com::sun::star::uno::Reference;
-+using com::sun::star::uno::XInterface;
-+
-+using com::sun::star::lang::IllegalArgumentException;
-+
-+using com::sun::star::sdbc::XWarningsSupplier;
-+using com::sun::star::sdbc::XCloseable;
-+using com::sun::star::sdbc::XPreparedStatement;
-+using com::sun::star::sdbc::XParameters;
-+using com::sun::star::sdbc::XResultSet;
-+using com::sun::star::sdbc::XRef;
-+using com::sun::star::sdbc::XBlob;
-+using com::sun::star::sdbc::XClob;
-+using com::sun::star::sdbc::XArray;
-+using com::sun::star::sdbc::XConnection;
-+using com::sun::star::sdbc::SQLException;
-+
-+using com::sun::star::beans::Property;
-+using com::sun::star::beans::XPropertySetInfo;
-+using com::sun::star::beans::XPropertySet;
-+using com::sun::star::beans::XMultiPropertySet;
-+using com::sun::star::beans::XFastPropertySet;
-+
-+#define ASCII_STR(x) OUString( RTL_CONSTASCII_USTRINGPARAM( x ) )
-+namespace mdb_sdbc_driver
-+{
-+static ::cppu::IPropertyArrayHelper & getPreparedStatementPropertyArrayHelper()
-+{
-+ static ::cppu::IPropertyArrayHelper *pArrayHelper;
-+ if( ! pArrayHelper )
-+ {
-+ MutexGuard guard( Mutex::getGlobalMutex() );
-+ if( ! pArrayHelper )
-+ {
-+ static Property aTable[] =
-+ {
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("CursorName") ), 0,
-+ ::getCppuType( (OUString *)0) , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("EscapeProcessing") ), 0,
-+ ::getBooleanCppuType() , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("FetchDirection") ), 0,
-+ ::getCppuType( (sal_Int32 *)0) , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("FetchSize") ), 0,
-+ ::getCppuType( (sal_Int32 *)0) , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("MaxFieldSize") ), 0,
-+ ::getCppuType( (sal_Int32 *)0) , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("MaxRows") ), 0,
-+ ::getCppuType( (sal_Int32 *)0) , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("QueryTimeOut") ), 0,
-+ ::getCppuType( (sal_Int32 *)0) , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("ResultSetConcurrency") ), 0,
-+ ::getCppuType( (sal_Int32 *)0) , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("ResultSetType") ), 0,
-+ ::getCppuType( (sal_Int32 *)0) , 0 )
-+ };
-+ OSL_ASSERT( sizeof(aTable)/ sizeof(Property) == PREPARED_STATEMENT_SIZE );
-+ static ::cppu::OPropertyArrayHelper arrayHelper( aTable, PREPARED_STATEMENT_SIZE, sal_True );
-+ pArrayHelper = &arrayHelper;
-+ }
-+ }
-+ return *pArrayHelper;
-+}
-+
-+PreparedStatement::PreparedStatement(
-+ const ::rtl::Reference< RefCountedMutex > & refMutex,
-+ const Reference< XConnection > & conn,
-+ struct ConnectionSettings *pSettings,
-+ const ::rtl::OString & stmt )
-+ : OComponentHelper( refMutex->mutex ),
-+ OPropertySetHelper( OComponentHelper::rBHelper ),
-+ m_refMutex( refMutex ),
-+ m_connection( conn ),
-+ m_pSettings( pSettings ),
-+ m_stmt( stmt )
-+{
-+ m_props[PREPARED_STATEMENT_QUERY_TIME_OUT] = makeAny( (sal_Int32)0 );
-+ m_props[PREPARED_STATEMENT_MAX_ROWS] = makeAny( (sal_Int32)0 );
-+ m_props[PREPARED_STATEMENT_RESULT_SET_CONCURRENCY] = makeAny(
-+ com::sun::star::sdbc::ResultSetConcurrency::READ_ONLY );
-+ m_props[PREPARED_STATEMENT_RESULT_SET_TYPE] = makeAny(
-+ com::sun::star::sdbc::ResultSetType::SCROLL_INSENSITIVE );
-+
-+ int elements = 0;
-+ for ( int i = m_stmt.indexOf( '?' ) ; i != -1 ; i = m_stmt.indexOf( '?' , i +1) )
-+ {
-+ elements ++;
-+ }
-+ m_vars = OStringVector ( elements );
-+}
-+
-+PreparedStatement::~PreparedStatement()
-+{
-+ POSTGRE_TRACE( "dtor PreparedStatement" );
-+}
-+
-+void PreparedStatement::checkColumnIndex( sal_Int32 parameterIndex )
-+{
-+ if( parameterIndex < 1 || parameterIndex > (sal_Int32) m_vars.size() )
-+ {
-+ OUStringBuffer buf( 128 );
-+ buf.appendAscii( "mdb_preparedstatement: parameter index out of range (expected 1 to " );
-+ buf.append( (sal_Int32 ) m_vars.size() );
-+ buf.appendAscii( ", got " );
-+ buf.append( parameterIndex );
-+ buf.appendAscii( ")" );
-+ throw SQLException( buf.makeStringAndClear(), *this, OUString(), 1, Any () );
-+ }
-+}
-+void PreparedStatement::checkClosed() throw (SQLException, RuntimeException )
-+{
-+ if( ! m_pSettings || ! m_pSettings->pConnection )
-+ throw SQLException(
-+ ASCII_STR("mdb_driver: PreparedStatement or connection has already been closed !" ),
-+ *this, OUString(),1,Any());
-+}
-+
-+Any PreparedStatement::queryInterface( const Type & reqType ) throw (RuntimeException)
-+{
-+ Any ret;
-+
-+ ret = OComponentHelper::queryInterface( reqType );
-+ if( ! ret.hasValue() )
-+ ret = ::cppu::queryInterface( reqType,
-+ static_cast< XWarningsSupplier * > ( this ),
-+ static_cast< XPreparedStatement * > ( this ),
-+ static_cast< XParameters * > ( this ),
-+ static_cast< XCloseable * > ( this ),
-+ static_cast< XPropertySet * > ( this ),
-+ static_cast< XMultiPropertySet * > ( this ),
-+ static_cast< XFastPropertySet * > ( this ) );
-+ return ret;
-+}
-+
-+
-+Sequence< Type > PreparedStatement::getTypes() throw ( RuntimeException )
-+{
-+ static cppu::OTypeCollection *pCollection;
-+ if( ! pCollection )
-+ {
-+ MutexGuard guard( osl::Mutex::getGlobalMutex() );
-+ if( !pCollection )
-+ {
-+ static cppu::OTypeCollection collection(
-+ getCppuType( (Reference< XWarningsSupplier> *) 0 ),
-+ getCppuType( (Reference< XPreparedStatement> *) 0 ),
-+ getCppuType( (Reference< XParameters> *) 0 ),
-+ getCppuType( (Reference< XCloseable> *) 0 ),
-+ getCppuType( (Reference< XPropertySet >*) 0 ),
-+ getCppuType( (Reference< XFastPropertySet > *) 0 ),
-+ getCppuType( (Reference< XMultiPropertySet > *) 0 ),
-+ OComponentHelper::getTypes());
-+ pCollection = &collection;
-+ }
-+ }
-+ return pCollection->getTypes();
-+}
-+
-+Sequence< sal_Int8> PreparedStatement::getImplementationId() throw ( RuntimeException )
-+{
-+ static cppu::OImplementationId *pId;
-+ if( ! pId )
-+ {
-+ MutexGuard guard( osl::Mutex::getGlobalMutex() );
-+ if( ! pId )
-+ {
-+ static cppu::OImplementationId id(sal_False);
-+ pId = &id;
-+ }
-+ }
-+ return pId->getImplementationId();
-+}
-+
-+void PreparedStatement::close( ) throw (SQLException, RuntimeException)
-+{
-+ // let the connection die without acquired mutex !
-+ Reference< XConnection > r;
-+ Reference< XCloseable > resultSet;
-+ {
-+ MutexGuard guard( m_refMutex->mutex );
-+ m_pSettings = 0;
-+ r = m_connection;
-+ m_connection.clear();
-+
-+ resultSet = m_lastResultset;
-+ m_lastResultset.clear();
-+ }
-+ if( resultSet.is() )
-+ {
-+ resultSet->close();
-+ POSTGRE_TRACE( "statement closed" );
-+ }
-+}
-+
-+// void PreparedStatement::raiseSQLException(
-+// const OUString & sql, const char * errorMsg, const char *errorType )
-+// throw( SQLException )
-+// {
-+// OUStringBuffer buf(128);
-+// buf.appendAscii( "mdb_driver: ");
-+// if( errorType )
-+// {
-+// buf.appendAscii( "[" );
-+// buf.appendAscii( errorType );
-+// buf.appendAscii( "]" );
-+// }
-+// buf.append(
-+// rtl::OStringToOUString( errorMsg, strlen(errorMsg) , m_pSettings->encoding ) );
-+// buf.appendAscii( " (caused by statement '" );
-+// buf.append( sql );
-+// buf.appendAscii( "')" );
-+// throw SQLException( buf.makeStringAndClear(), *this, OUString(), 1, Any() );
-+// }
-+
-+
-+Reference< XResultSet > PreparedStatement::mdbExecute( OString *pQuery )
-+{
-+ OStringBuffer buf( m_stmt.getLength() *2 );
-+
-+ int element = 0;
-+ int before = 0;
-+ for ( int i = m_stmt.indexOf( '?' ) ; i != -1 ; i = m_stmt.indexOf( '?' , i +1) )
-+ {
-+ buf.append( m_stmt.getStr() + before, i - before );
-+ buf.append( m_vars[element] );
-+ before = i+1;
-+ element ++;
-+ }
-+ buf.append( m_stmt.getStr() + before );
-+
-+ *pQuery = buf.makeStringAndClear();
-+
-+ osl::ClearableMutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ AnyVector aRows;
-+ Sequence< OUString > seqColumns;
-+ ::rtl::OString o = *pQuery;
-+ if (!mdb_ExecuteQuery(
-+ m_pSettings->pConnection,o,aRows,seqColumns)
-+ )
-+ {
-+ return new ResultSet(
-+ m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > (), m_pSettings->tc );
-+ }
-+
-+ return new ResultSet(
-+ m_refMutex, *this, seqColumns,
-+ Sequence< Sequence< Any > > ( &aRows[0],aRows.size() ), m_pSettings->tc );
-+}
-+
-+Reference< XResultSet > PreparedStatement::executeQuery( )
-+ throw (SQLException, RuntimeException)
-+{
-+ osl::ClearableMutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ OString query;
-+ return mdbExecute( &query );
-+}
-+
-+sal_Int32 PreparedStatement::executeUpdate( )
-+ throw (SQLException, RuntimeException)
-+{
-+ osl::ClearableMutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+
-+ OString query;
-+ Reference< XResultSet > result = mdbExecute( &query);
-+/*
-+ ExecStatusType state = PQresultStatus( result );
-+ switch( state )
-+ {
-+ case PGRES_COMMAND_OK: // success
-+ break;
-+ case PGRES_TUPLES_OK:
-+ {
-+ OUStringBuffer buf(128);
-+ buf.appendAscii( "mdb_preparedstatement: statment is not a command, use executeQuery() instead (" );
-+ buf.append( OStringToOUString( query , m_pSettings->encoding ) );
-+ buf.appendAscii( ")" );
-+ throw SQLException(buf.makeStringAndClear(), *this, OUString() , 1 , Any() );
-+ }
-+ case PGRES_EMPTY_QUERY:
-+ case PGRES_COPY_OUT:
-+ case PGRES_COPY_IN:
-+ case PGRES_BAD_RESPONSE:
-+ case PGRES_NONFATAL_ERROR:
-+ case PGRES_FATAL_ERROR:
-+ default:
-+ OUStringBuffer buf(128);
-+ buf.appendAscii( "mdb_preparedstatement: " );
-+ buf.appendAscii( PQresultErrorMessage( result ) );
-+ buf.appendAscii( " during command '" );
-+ buf.append( OStringToOUString( query, m_pSettings->encoding ) );
-+ buf.appendAscii( "')" );
-+ throw SQLException(buf.makeStringAndClear(), *this, OUString() , 1 , Any() );
-+ }
-+
-+ Reference< XCloseable > lastResultSet = m_lastResultset;
-+ m_lastResultset.clear();
-+ sal_Int32 affectedTuples = atoi( PQcmdTuples(result) );
-+ PQclear( result );
-+ guard.clear();
-+
-+ if( lastResultSet.is())
-+ lastResultSet->close();
-+ return affectedTuples;
-+*/
-+return 0;
-+}
-+
-+sal_Bool PreparedStatement::execute( )
-+ throw (SQLException, RuntimeException)
-+{
-+ throw SQLException( ASCII_STR( "mdb_statement: execute() method is not supported, use executeUpdate or executeQuery instead" ),
-+ *this, OUString() , 1 , Any () );
-+ return sal_False;
-+}
-+
-+Reference< XConnection > PreparedStatement::getConnection( )
-+ throw (SQLException, RuntimeException)
-+{
-+ Reference< XConnection > ret;
-+ {
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ ret = m_connection;
-+ }
-+ return ret;
-+}
-+
-+
-+void PreparedStatement::setNull( sal_Int32 parameterIndex, sal_Int32 sqlType )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( parameterIndex );
-+ m_vars[parameterIndex-1] = OString( "NULL" );
-+}
-+
-+void PreparedStatement::setObjectNull(
-+ sal_Int32 parameterIndex, sal_Int32 sqlType, const ::rtl::OUString& typeName )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( parameterIndex );
-+ m_vars[parameterIndex-1] = OString( "NULL" );
-+}
-+
-+
-+void PreparedStatement::setBoolean( sal_Int32 parameterIndex, sal_Bool x )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard(m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( parameterIndex );
-+ if( x )
-+ m_vars[parameterIndex-1] = OString( "'t'" );
-+ else
-+ m_vars[parameterIndex-1] = OString( "'f'" );
-+}
-+
-+void PreparedStatement::setByte( sal_Int32 parameterIndex, sal_Int8 x )
-+ throw (SQLException, RuntimeException)
-+{
-+ setInt(parameterIndex,x);
-+}
-+
-+void PreparedStatement::setShort( sal_Int32 parameterIndex, sal_Int16 x )
-+ throw (SQLException, RuntimeException)
-+{
-+ setInt(parameterIndex, x );
-+}
-+
-+void PreparedStatement::setInt( sal_Int32 parameterIndex, sal_Int32 x )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard(m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( parameterIndex );
-+ OStringBuffer buf( 20 );
-+ buf.append( "'" );
-+ buf.append( (sal_Int32) x );
-+ buf.append( "'" );
-+ m_vars[parameterIndex-1] = buf.makeStringAndClear();
-+}
-+
-+void PreparedStatement::setLong( sal_Int32 parameterIndex, sal_Int64 x )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard(m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( parameterIndex );
-+ OStringBuffer buf( 20 );
-+ buf.append( "'" );
-+ buf.append( (sal_Int64) x );
-+ buf.append( "'" );
-+ m_vars[parameterIndex-1] = buf.makeStringAndClear();
-+}
-+
-+void PreparedStatement::setFloat( sal_Int32 parameterIndex, float x )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard(m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( parameterIndex );
-+ OStringBuffer buf( 20 );
-+ buf.append( "'" );
-+ buf.append( x );
-+ buf.append( "'" );
-+ m_vars[parameterIndex-1] = buf.makeStringAndClear();
-+}
-+
-+void PreparedStatement::setDouble( sal_Int32 parameterIndex, double x )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard(m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( parameterIndex );
-+ OStringBuffer buf( 20 );
-+ buf.append( "'" );
-+ buf.append( x );
-+ buf.append( "'" );
-+ m_vars[parameterIndex-1] = buf.makeStringAndClear();
-+}
-+
-+void PreparedStatement::setString( sal_Int32 parameterIndex, const ::rtl::OUString& x )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard(m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( parameterIndex );
-+ OStringBuffer buf( 20 );
-+ buf.append( "'" );
-+ OString y = OUStringToOString( x, m_pSettings->encoding );
-+ buf.ensureCapacity( y.getLength() * 2 + 2 );
-+ int len = 1;//PQescapeString( ((char*)buf.getStr())+1, y.getStr() , y.getLength() );
-+ buf.setLength( 1 + len );
-+ buf.append( "'" );
-+ m_vars[parameterIndex-1] = buf.makeStringAndClear();
-+}
-+
-+void PreparedStatement::setBytes(
-+ sal_Int32 parameterIndex, const Sequence< sal_Int8 >& x )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard(m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( parameterIndex );
-+ OStringBuffer buf( 20 );
-+ buf.append( "'" );
-+ size_t len;
-+ unsigned char * escapedString = NULL;
-+// PQescapeBytea( (unsigned char *)x.getConstArray(), x.getLength(), &len);
-+ if( ! escapedString )
-+ {
-+ throw SQLException(
-+ ASCII_STR("mdb_preparedstatement.setBytes: Error during converting bytesequence to an SQL conform string" ),
-+ *this, OUString(), 1, Any() );
-+ }
-+// buf.append( (const sal_Char *)escapedString, len -1 );
-+ free( escapedString );
-+ buf.append( "'" );
-+ m_vars[parameterIndex-1] = buf.makeStringAndClear();
-+}
-+
-+void PreparedStatement::setDate( sal_Int32 parameterIndex, const ::com::sun::star::util::Date& x )
-+ throw (SQLException, RuntimeException)
-+{
-+}
-+
-+void PreparedStatement::setTime( sal_Int32 parameterIndex, const ::com::sun::star::util::Time& x )
-+ throw (SQLException, RuntimeException)
-+{
-+}
-+
-+void PreparedStatement::setTimestamp(
-+ sal_Int32 parameterIndex, const ::com::sun::star::util::DateTime& x )
-+ throw (SQLException, RuntimeException)
-+{
-+}
-+
-+void PreparedStatement::setBinaryStream(
-+ sal_Int32 parameterIndex,
-+ const Reference< ::com::sun::star::io::XInputStream >& x,
-+ sal_Int32 length )
-+ throw (SQLException, RuntimeException)
-+{
-+}
-+
-+void PreparedStatement::setCharacterStream(
-+ sal_Int32 parameterIndex,
-+ const Reference< ::com::sun::star::io::XInputStream >& x,
-+ sal_Int32 length )
-+ throw (SQLException, RuntimeException)
-+{
-+}
-+
-+void PreparedStatement::setObject( sal_Int32 parameterIndex, const Any& x )
-+ throw (SQLException, RuntimeException)
-+{
-+}
-+
-+void PreparedStatement::setObjectWithInfo(
-+ sal_Int32 parameterIndex,
-+ const Any& x,
-+ sal_Int32 targetSqlType,
-+ sal_Int32 scale )
-+ throw (SQLException, RuntimeException)
-+{
-+}
-+
-+void PreparedStatement::setRef(
-+ sal_Int32 parameterIndex,
-+ const Reference< XRef >& x )
-+ throw (SQLException, RuntimeException)
-+{
-+}
-+
-+void PreparedStatement::setBlob(
-+ sal_Int32 parameterIndex,
-+ const Reference< XBlob >& x )
-+ throw (SQLException, RuntimeException)
-+{
-+}
-+
-+void PreparedStatement::setClob(
-+ sal_Int32 parameterIndex,
-+ const Reference< XClob >& x )
-+ throw (SQLException, RuntimeException)
-+{
-+}
-+
-+void PreparedStatement::setArray(
-+ sal_Int32 parameterIndex,
-+ const Reference< XArray >& x )
-+ throw (SQLException, RuntimeException)
-+{
-+}
-+
-+void PreparedStatement::clearParameters( )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard(m_refMutex->mutex );
-+ m_vars = OStringVector ( m_vars.size() );
-+}
-+
-+Any PreparedStatement::getWarnings( )
-+ throw (SQLException,RuntimeException)
-+{
-+ return Any();
-+}
-+
-+void PreparedStatement::clearWarnings( )
-+ throw (SQLException, RuntimeException)
-+{
-+}
-+
-+::cppu::IPropertyArrayHelper & PreparedStatement::getInfoHelper()
-+{
-+ return getPreparedStatementPropertyArrayHelper();
-+}
-+
-+
-+sal_Bool PreparedStatement::convertFastPropertyValue(
-+ Any & rConvertedValue, Any & rOldValue, sal_Int32 nHandle, const Any& rValue )
-+ throw (IllegalArgumentException)
-+{
-+ sal_Bool bRet;
-+ switch( nHandle )
-+ {
-+ case PREPARED_STATEMENT_CURSOR_NAME:
-+ {
-+ OUString val;
-+ bRet = ( rValue >>= val );
-+ m_props[nHandle] = makeAny( val );
-+ break;
-+ }
-+ case PREPARED_STATEMENT_ESCAPE_PROCESSING:
-+ {
-+ sal_Bool val;
-+ bRet = ( rValue >>= val );
-+ m_props[nHandle] = makeAny( val );
-+ break;
-+ }
-+ case PREPARED_STATEMENT_FETCH_DIRECTION:
-+ case PREPARED_STATEMENT_FETCH_SIZE:
-+ case PREPARED_STATEMENT_MAX_FIELD_SIZE:
-+ case PREPARED_STATEMENT_MAX_ROWS:
-+ case PREPARED_STATEMENT_QUERY_TIME_OUT:
-+ case PREPARED_STATEMENT_RESULT_SET_CONCURRENCY:
-+ case PREPARED_STATEMENT_RESULT_SET_TYPE:
-+ {
-+ sal_Int32 val;
-+ bRet = ( rValue >>= val );
-+ m_props[nHandle] = makeAny( val );
-+ break;
-+ }
-+ default:
-+ {
-+ OUStringBuffer buf(128);
-+ buf.appendAscii( "mdb_statement: Invalid property handle (" );
-+ buf.append( nHandle );
-+ buf.appendAscii( ")" );
-+ throw IllegalArgumentException( buf.makeStringAndClear(), *this, 2 );
-+ }
-+ }
-+ return bRet;
-+}
-+
-+
-+void PreparedStatement::setFastPropertyValue_NoBroadcast(
-+ sal_Int32 nHandle,const Any& rValue ) throw (Exception)
-+{
-+ m_props[nHandle] = rValue;
-+}
-+
-+void PreparedStatement::getFastPropertyValue( Any& rValue, sal_Int32 nHandle ) const
-+{
-+ rValue = m_props[nHandle];
-+}
-+
-+Reference < XPropertySetInfo > PreparedStatement::getPropertySetInfo()
-+ throw(RuntimeException)
-+{
-+ return OPropertySetHelper::createPropertySetInfo( getPreparedStatementPropertyArrayHelper() );
-+}
-+
-+void PreparedStatement::disposing()
-+{
-+ close();
-+}
-+
-+
-+}
-+
diff --git a/patches/src680/connectivity-source-drivers-mdb-mdb-preparedstatement-hxx.diff b/patches/src680/connectivity-source-drivers-mdb-mdb-preparedstatement-hxx.diff
deleted file mode 100644
index 0f9083062..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-mdb-preparedstatement-hxx.diff
+++ /dev/null
@@ -1,257 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/mdb_preparedstatement.hxx 2005-06-29 11:18:53.000000000 +0530
-@@ -0,0 +1,254 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Joerg Budischewski
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Joerg Budischewski
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _MDB_PREPARED_STATEMENT_HXX_
-+#define _MDB_PREPARED_STATEMENT_HXX_
-+#include <vector>
-+
-+//#include <mdbtools.h>
-+
-+#include <cppuhelper/propshlp.hxx>
-+#include <cppuhelper/component.hxx>
-+
-+#include <com/sun/star/sdbc/XParameters.hpp>
-+
-+#include "mdb_connection.hxx"
-+namespace rtl { class OString; }
-+namespace mdb_sdbc_driver
-+{
-+
-+static const sal_Int32 PREPARED_STATEMENT_CURSOR_NAME = 0;
-+static const sal_Int32 PREPARED_STATEMENT_ESCAPE_PROCESSING = 1;
-+static const sal_Int32 PREPARED_STATEMENT_FETCH_DIRECTION = 2;
-+static const sal_Int32 PREPARED_STATEMENT_FETCH_SIZE = 3;
-+static const sal_Int32 PREPARED_STATEMENT_MAX_FIELD_SIZE = 4;
-+static const sal_Int32 PREPARED_STATEMENT_MAX_ROWS = 5;
-+static const sal_Int32 PREPARED_STATEMENT_QUERY_TIME_OUT = 6;
-+static const sal_Int32 PREPARED_STATEMENT_RESULT_SET_CONCURRENCY = 7;
-+static const sal_Int32 PREPARED_STATEMENT_RESULT_SET_TYPE = 8;
-+
-+#define PREPARED_STATEMENT_SIZE 9
-+class ResultSet;
-+
-+typedef ::std::vector< rtl::OString, Allocator< ::rtl::OString > > OStringVector;
-+class PreparedStatement : public cppu::OComponentHelper,
-+ public cppu::OPropertySetHelper,
-+ public com::sun::star::sdbc::XPreparedStatement,
-+ public com::sun::star::sdbc::XParameters,
-+ public com::sun::star::sdbc::XCloseable,
-+ public com::sun::star::sdbc::XWarningsSupplier
-+{
-+private:
-+ com::sun::star::uno::Any m_props[PREPARED_STATEMENT_SIZE];
-+ com::sun::star::uno::Reference< com::sun::star::sdbc::XConnection > m_connection;
-+ ConnectionSettings *m_pSettings;
-+ ::com::sun::star::uno::Reference< com::sun::star::sdbc::XCloseable > m_lastResultset;
-+ ::rtl::OString m_stmt;
-+ ::rtl::Reference< RefCountedMutex > m_refMutex;
-+ OStringVector m_vars;
-+
-+public:
-+ /**
-+ * @param ppConnection The piece of memory, pConnection points to, is accessisble
-+ * as long as a reference to paramenter con is held.
-+ */
-+ PreparedStatement( const rtl::Reference< RefCountedMutex > & refMutex,
-+ const com::sun::star::uno::Reference< com::sun::star::sdbc::XConnection> & con,
-+ struct ConnectionSettings *pSettings,
-+ const rtl::OString &stmt );
-+
-+ virtual ~PreparedStatement();
-+public: // XInterface
-+ virtual void SAL_CALL acquire() throw() { OComponentHelper::acquire(); }
-+ virtual void SAL_CALL release() throw() { OComponentHelper::release(); }
-+ virtual com::sun::star::uno::Any SAL_CALL queryInterface( const com::sun::star::uno::Type & reqType )
-+ throw (com::sun::star::uno::RuntimeException);
-+
-+public: // XCloseable
-+ virtual void SAL_CALL close( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+public: // XPreparedStatement
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL executeQuery()
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL executeUpdate( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL execute( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > SAL_CALL getConnection( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+public: // XParameters
-+ virtual void SAL_CALL setNull( sal_Int32 parameterIndex, sal_Int32 sqlType )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setObjectNull(
-+ sal_Int32 parameterIndex, sal_Int32 sqlType, const ::rtl::OUString& typeName )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setBoolean( sal_Int32 parameterIndex, sal_Bool x )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setByte( sal_Int32 parameterIndex, sal_Int8 x )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setShort( sal_Int32 parameterIndex, sal_Int16 x )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setInt( sal_Int32 parameterIndex, sal_Int32 x )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setLong( sal_Int32 parameterIndex, sal_Int64 x )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setFloat( sal_Int32 parameterIndex, float x )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setDouble( sal_Int32 parameterIndex, double x )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setString( sal_Int32 parameterIndex, const ::rtl::OUString& x )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setBytes(
-+ sal_Int32 parameterIndex, const ::com::sun::star::uno::Sequence< sal_Int8 >& x )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setDate( sal_Int32 parameterIndex, const ::com::sun::star::util::Date& x )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setTime( sal_Int32 parameterIndex, const ::com::sun::star::util::Time& x )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setTimestamp(
-+ sal_Int32 parameterIndex, const ::com::sun::star::util::DateTime& x )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setBinaryStream(
-+ sal_Int32 parameterIndex,
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& x,
-+ sal_Int32 length )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setCharacterStream(
-+ sal_Int32 parameterIndex,
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& x,
-+ sal_Int32 length )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setObject( sal_Int32 parameterIndex, const ::com::sun::star::uno::Any& x )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setObjectWithInfo(
-+ sal_Int32 parameterIndex,
-+ const ::com::sun::star::uno::Any& x,
-+ sal_Int32 targetSqlType,
-+ sal_Int32 scale )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setRef(
-+ sal_Int32 parameterIndex,
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRef >& x )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setBlob(
-+ sal_Int32 parameterIndex,
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XBlob >& x )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setClob(
-+ sal_Int32 parameterIndex,
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XClob >& x )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setArray(
-+ sal_Int32 parameterIndex,
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XArray >& x )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL clearParameters( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+public: // XWarningsSupplier
-+ virtual ::com::sun::star::uno::Any SAL_CALL getWarnings( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL clearWarnings( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+public: // XTypeProvider, first implemented by OPropertySetHelper
-+ virtual com::sun::star::uno::Sequence< com::sun::star::uno::Type > SAL_CALL getTypes()
-+ throw( com::sun::star::uno::RuntimeException );
-+ virtual com::sun::star::uno::Sequence< sal_Int8> SAL_CALL getImplementationId()
-+ throw( com::sun::star::uno::RuntimeException );
-+
-+public: // OPropertySetHelper
-+ virtual cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper();
-+
-+ virtual sal_Bool SAL_CALL convertFastPropertyValue(
-+ ::com::sun::star::uno::Any & rConvertedValue,
-+ ::com::sun::star::uno::Any & rOldValue,
-+ sal_Int32 nHandle,
-+ const ::com::sun::star::uno::Any& rValue )
-+ throw (::com::sun::star::lang::IllegalArgumentException);
-+
-+ virtual void SAL_CALL setFastPropertyValue_NoBroadcast(
-+ sal_Int32 nHandle,
-+ const ::com::sun::star::uno::Any& rValue )
-+ throw (::com::sun::star::uno::Exception);
-+
-+ virtual void SAL_CALL getFastPropertyValue(
-+ ::com::sun::star::uno::Any& rValue,
-+ sal_Int32 nHandle ) const;
-+
-+ // XPropertySet
-+ ::com::sun::star::uno::Reference < ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo()
-+ throw(com::sun::star::uno::RuntimeException);
-+
-+public: // OComponentHelper
-+ virtual void SAL_CALL disposing();
-+
-+private:
-+ void checkColumnIndex( sal_Int32 parameterIndex );
-+ void checkClosed() throw (com::sun::star::sdbc::SQLException, com::sun::star::uno::RuntimeException);
-+ void raiseSQLException( const ::rtl::OUString & sql, const char * errorMsg, const char *errorType = 0 )
-+ throw ( com::sun::star::sdbc::SQLException );
-+ Reference< XResultSet > mdbExecute( ::rtl::OString *pQuery );
-+};
-+
-+}
-+#endif
diff --git a/patches/src680/connectivity-source-drivers-mdb-mdb-resultset-cxx.diff b/patches/src680/connectivity-source-drivers-mdb-mdb-resultset-cxx.diff
deleted file mode 100644
index b1470589f..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-mdb-resultset-cxx.diff
+++ /dev/null
@@ -1,743 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/mdb_resultset.cxx 2005-06-29 11:18:53.000000000 +0530
-@@ -0,0 +1,740 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Joerg Budischewski
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Joerg Budischewski
-+ *
-+ *
-+ ************************************************************************/
-+#include <osl/thread.h>
-+
-+#include <rtl/ustrbuf.hxx>
-+
-+#include <cppuhelper/typeprovider.hxx>
-+#include <cppuhelper/queryinterface.hxx>
-+
-+#include "mdb_statement.hxx"
-+#include "mdb_resultset.hxx"
-+#include "mdb_resultsetmetadata.hxx"
-+
-+#include <com/sun/star/lang/DisposedException.hpp>
-+
-+using osl::Mutex;
-+using osl::MutexGuard;
-+
-+using rtl::OUString;
-+using rtl::OUStringToOString;
-+using rtl::OUStringBuffer;
-+using rtl::OString;
-+
-+using com::sun::star::beans::XPropertySetInfo;
-+using com::sun::star::beans::XPropertySet;
-+using com::sun::star::beans::XMultiPropertySet;
-+using com::sun::star::beans::XFastPropertySet;
-+
-+using com::sun::star::uno::Any;
-+using com::sun::star::uno::makeAny;
-+using com::sun::star::uno::Type;
-+using com::sun::star::uno::RuntimeException;
-+using com::sun::star::uno::Exception;
-+using com::sun::star::uno::Sequence;
-+using com::sun::star::uno::Reference;
-+using com::sun::star::uno::XInterface;
-+
-+using com::sun::star::lang::IllegalArgumentException;
-+
-+using com::sun::star::sdbc::XWarningsSupplier;
-+using com::sun::star::sdbc::XCloseable;
-+using com::sun::star::sdbc::XStatement;
-+using com::sun::star::sdbc::XResultSet;
-+using com::sun::star::sdbc::XConnection;
-+using com::sun::star::sdbc::SQLException;
-+using com::sun::star::sdbc::XRow;
-+using com::sun::star::sdbc::XColumnLocate;
-+using com::sun::star::sdbc::XResultSetMetaData;
-+using com::sun::star::sdbc::XResultSetMetaDataSupplier;
-+
-+
-+using com::sun::star::beans::Property;
-+
-+namespace mdb_sdbc_driver
-+{
-+#define ASCII_STR(x) OUString( RTL_CONSTASCII_USTRINGPARAM( x ) )
-+
-+static ::cppu::IPropertyArrayHelper & getResultSetPropertyArrayHelper()
-+{
-+ static ::cppu::IPropertyArrayHelper *pArrayHelper;
-+ if( ! pArrayHelper )
-+ {
-+ MutexGuard guard( Mutex::getGlobalMutex() );
-+ if( ! pArrayHelper )
-+ {
-+ static Property aTable[] =
-+ {
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("CursorName") ), 0,
-+ ::getCppuType( (OUString *)0) , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("EscapeProcessing") ), 0,
-+ ::getBooleanCppuType() , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("FetchDirection") ), 0,
-+ ::getCppuType( (sal_Int32 *)0) , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("FetchSize") ), 0,
-+ ::getCppuType( (sal_Int32 *)0) , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("ResultSetConcurrency") ), 0,
-+ ::getCppuType( (sal_Int32 *)0) , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("ResultSetType") ), 0,
-+ ::getCppuType( (sal_Int32 *)0) , 0 )
-+ };
-+ OSL_ASSERT( sizeof(aTable) / sizeof(Property) == RESULTSET_SIZE );
-+ static ::cppu::OPropertyArrayHelper arrayHelper( aTable, RESULTSET_SIZE, sal_True );
-+ pArrayHelper = &arrayHelper;
-+ }
-+ }
-+ return *pArrayHelper;
-+}
-+
-+ResultSet::ResultSet( const ::rtl::Reference< RefCountedMutex > & refMutex,
-+ const Reference< XInterface > & owner,
-+ ConnectionSettings **ppSettings,
-+ void * result )
-+ : OComponentHelper( refMutex->mutex ),
-+ OPropertySetHelper( OComponentHelper::rBHelper ),
-+ m_refMutex( refMutex ),
-+ m_owner( owner ),
-+ m_row( -1 ),
-+ m_ppSettings( ppSettings ),
-+ m_result( result )
-+{
-+ POSTGRE_TRACE( "ctor ResultSet" );
-+// m_rowCount = PQntuples( m_result );
-+// m_fieldCount = PQnfields( m_result );
-+ m_row = -1;
-+}
-+
-+ResultSet::ResultSet( const ::rtl::Reference< RefCountedMutex > & refMutex,
-+ const Reference< XInterface > & owner,
-+ const Sequence< OUString > &colNames,
-+ const Sequence< Sequence< Any > > &data,
-+ const Reference< com::sun::star::script::XTypeConverter > & tc) :
-+ m_data(data ),
-+ m_columnNames( colNames ),
-+ OComponentHelper( refMutex->mutex ),
-+ OPropertySetHelper( OComponentHelper::rBHelper ),
-+ m_refMutex( refMutex ),
-+ m_owner( owner ),
-+ m_row( -1 )
-+{
-+ m_rowCount = data.getLength();
-+ m_fieldCount = colNames.getLength();
-+ m_row = -1;
-+}
-+
-+
-+ResultSet::~ResultSet()
-+{
-+}
-+
-+Any ResultSet::queryInterface( const Type & reqType ) throw (RuntimeException)
-+{
-+ Any ret;
-+
-+ ret = OComponentHelper::queryInterface( reqType );
-+ if( ! ret.hasValue() )
-+ ret = ::cppu::queryInterface( reqType,
-+ static_cast< XResultSet * > ( this ),
-+ static_cast< XResultSetMetaDataSupplier * > ( this ),
-+ static_cast< XRow * > ( this ),
-+ static_cast< XColumnLocate * > ( this ),
-+ static_cast< XCloseable * > ( this ),
-+ static_cast< XPropertySet * > ( this ),
-+ static_cast< XMultiPropertySet * > ( this ),
-+ static_cast< XFastPropertySet * > ( this ) );
-+ return ret;
-+}
-+
-+void ResultSet::close( ) throw (SQLException, RuntimeException)
-+{
-+ Reference< XInterface > owner;
-+ {
-+ MutexGuard guard( m_refMutex->mutex );
-+ if( m_result )
-+ {
-+// PQclear(m_result );
-+ m_result = 0;
-+ m_row = -1;
-+ }
-+ owner = m_owner;
-+ m_owner.clear();
-+ }
-+}
-+
-+Sequence<Type > ResultSet::getTypes() throw( RuntimeException )
-+{
-+ static cppu::OTypeCollection *pCollection;
-+ if( ! pCollection )
-+ {
-+ MutexGuard guard( osl::Mutex::getGlobalMutex() );
-+ if( !pCollection )
-+ {
-+ static cppu::OTypeCollection collection(
-+ getCppuType( (Reference< XResultSet> *) 0 ),
-+ getCppuType( (Reference< XResultSetMetaDataSupplier> *) 0 ),
-+ getCppuType( (Reference< XRow> *) 0 ),
-+ getCppuType( (Reference< XColumnLocate> *) 0 ),
-+ getCppuType( (Reference< XCloseable> *) 0 ),
-+ getCppuType( (Reference< XPropertySet >*) 0 ),
-+ getCppuType( (Reference< XFastPropertySet > *) 0 ),
-+ getCppuType( (Reference< XMultiPropertySet > *) 0 ),
-+ OComponentHelper::getTypes());
-+ pCollection = &collection;
-+ }
-+ }
-+ return pCollection->getTypes();
-+}
-+
-+Sequence< sal_Int8> ResultSet::getImplementationId() throw( RuntimeException )
-+{
-+ static cppu::OImplementationId *pId;
-+ if( ! pId )
-+ {
-+ MutexGuard guard( osl::Mutex::getGlobalMutex() );
-+ if( ! pId )
-+ {
-+ static cppu::OImplementationId id(sal_False);
-+ pId = &id;
-+ }
-+ }
-+ return pId->getImplementationId();
-+}
-+
-+Reference< XResultSetMetaData > ResultSet::getMetaData( ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return
-+ new ResultSetMetaData(m_refMutex, this, m_columnNames);
-+}
-+
-+sal_Bool ResultSet::next( ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ m_row ++;
-+ return m_row < m_rowCount;
-+}
-+
-+sal_Bool ResultSet::isBeforeFirst( ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return m_row == -1;
-+}
-+
-+sal_Bool ResultSet::isAfterLast( ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return m_row >= m_rowCount;
-+}
-+
-+sal_Bool ResultSet::isFirst( ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return m_row == 0 && m_rowCount;
-+}
-+
-+sal_Bool ResultSet::isLast( ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return m_row >= 0 && m_row + 1 == m_rowCount;
-+}
-+
-+void ResultSet::beforeFirst( ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ m_row = -1;
-+}
-+
-+void ResultSet::afterLast( ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ m_row = m_rowCount;
-+}
-+
-+sal_Bool ResultSet::first( ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ sal_Bool bRet = ( m_rowCount > 0 );
-+ if( bRet )
-+ m_row = 0;
-+ return bRet;
-+}
-+
-+sal_Bool ResultSet::last( ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ sal_Bool bRet = ( m_rowCount > 0 );
-+ if( bRet )
-+ m_row = m_rowCount -1;
-+ return bRet;
-+}
-+
-+sal_Int32 ResultSet::getRow( ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return m_row +1;
-+}
-+
-+sal_Bool ResultSet::absolute( sal_Int32 row ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ if( row > 0 )
-+ {
-+ m_row = row -1;
-+ if( m_row > m_rowCount )
-+ m_row = m_rowCount;
-+ }
-+ else
-+ {
-+ m_row = m_rowCount + row;
-+ if( m_row < -1 )
-+ m_row = -1;
-+ }
-+ return sal_True;
-+}
-+
-+sal_Bool ResultSet::relative( sal_Int32 rows ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ m_row += rows;
-+
-+ if( m_row > m_rowCount )
-+ m_row = m_rowCount;
-+ else if ( m_row < -1 )
-+ m_row = -1;
-+ return sal_True;
-+}
-+
-+sal_Bool ResultSet::previous( ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ sal_Bool bRet = ( m_row != -1 );
-+ if( bRet )
-+ m_row --;
-+ return bRet;
-+}
-+
-+void ResultSet::refreshRow( ) throw (SQLException, RuntimeException)
-+{
-+ // TODO: not supported for now
-+}
-+
-+sal_Bool ResultSet::rowUpdated( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool ResultSet::rowInserted( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+sal_Bool ResultSet::rowDeleted( ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+
-+Reference< XInterface > ResultSet::getStatement() throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return m_owner;
-+}
-+
-+
-+//----------------- XRow interface ----------------------------------------------------
-+
-+sal_Bool ResultSet::wasNull( ) throw (SQLException, RuntimeException)
-+{
-+ return m_wasNull;
-+}
-+
-+
-+OUString ResultSet::getString( sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( columnIndex );
-+ return getValueAsString( columnIndex );
-+}
-+
-+inline Any ResultSet::convertTo( const OUString & str , const Type & type )
-+{
-+ Any aRet;
-+ try
-+ {
-+ aRet = (*m_ppSettings)->tc->convertTo( makeAny(str), type );
-+ }
-+ catch( com::sun::star::lang::IllegalArgumentException & e )
-+ {}
-+ catch( com::sun::star::script::CannotConvertException & e )
-+ {}
-+ return aRet;
-+}
-+
-+sal_Bool ResultSet::getBoolean( sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( columnIndex );
-+
-+ sal_Bool b = sal_False;
-+
-+// m_wasNull = PQgetisnull( m_result, m_row, columnIndex -1 );
-+// char * p = PQgetvalue( m_result, m_row, columnIndex -1 );
-+/*
-+ switch(p[0])
-+ {
-+ case '1':
-+ case 't':
-+ case 'T':
-+ case 'y':
-+ case 'Y':
-+ return sal_True;
-+ }
-+*/
-+ return sal_False;
-+}
-+
-+sal_Int8 ResultSet::getByte( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( columnIndex );
-+ sal_Int8 b = 0;
-+ convertTo( getValueAsString( columnIndex ), getCppuType( &b )) >>= b;
-+ return b;
-+}
-+
-+sal_Int16 ResultSet::getShort( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( columnIndex );
-+ sal_Int16 i = 0;
-+ convertTo( getValueAsString( columnIndex ), getCppuType( &i )) >>= i;
-+ return i;
-+}
-+
-+sal_Int32 ResultSet::getInt( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( columnIndex );
-+ sal_Int32 i = 0;
-+ convertTo( getValueAsString( columnIndex ), getCppuType( &i )) >>= i;
-+ return i;
-+}
-+
-+sal_Int64 ResultSet::getLong( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( columnIndex );
-+ sal_Int64 i = 0;
-+ convertTo( getValueAsString( columnIndex ), getCppuType( &i )) >>= i;
-+ return i;
-+}
-+
-+float ResultSet::getFloat( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( columnIndex );
-+ float f = 0.;
-+ convertTo( getValueAsString( columnIndex ), getCppuType( &f )) >>= f;
-+ return f;
-+}
-+
-+double ResultSet::getDouble( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( columnIndex );
-+ double d = 0.;
-+ convertTo( getValueAsString( columnIndex ), getCppuType( &d )) >>= d;
-+ return d;
-+}
-+
-+Sequence< sal_Int8 > ResultSet::getBytes( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( columnIndex );
-+
-+// m_wasNull = PQgetisnull( m_result, m_row, columnIndex -1 );
-+ size_t length;
-+// char * res = (char*) PQunescapeBytea(
-+// (unsigned char*) PQgetvalue( m_result, m_row, columnIndex -1 ), &length);
-+// Sequence< sal_Int8 > ret( (sal_Int8*)res, length );
-+// if( res )
-+// free( res );
-+ return NULL;
-+}
-+
-+::com::sun::star::util::Date ResultSet::getDate( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ return com::sun::star::util::Date();
-+}
-+
-+::com::sun::star::util::Time ResultSet::getTime( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ return com::sun::star::util::Time();
-+}
-+
-+::com::sun::star::util::DateTime ResultSet::getTimestamp( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ return com::sun::star::util::DateTime();
-+}
-+
-+Reference< ::com::sun::star::io::XInputStream > ResultSet::getBinaryStream( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ return 0;
-+}
-+
-+Reference< ::com::sun::star::io::XInputStream > ResultSet::getCharacterStream( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ return 0;
-+}
-+
-+Any ResultSet::getObject(
-+ sal_Int32 columnIndex,
-+ const Reference< ::com::sun::star::container::XNameAccess >& typeMap )
-+ throw (SQLException, RuntimeException)
-+{
-+ return Any();
-+}
-+
-+Reference< ::com::sun::star::sdbc::XRef > ResultSet::getRef( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ return Reference< com::sun::star::sdbc::XRef > ();
-+}
-+
-+Reference< ::com::sun::star::sdbc::XBlob > ResultSet::getBlob( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ return Reference< com::sun::star::sdbc::XBlob > ();
-+}
-+
-+Reference< ::com::sun::star::sdbc::XClob > ResultSet::getClob( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ return Reference< com::sun::star::sdbc::XClob > ();
-+}
-+
-+Reference< ::com::sun::star::sdbc::XArray > ResultSet::getArray( sal_Int32 columnIndex )
-+ throw (SQLException, RuntimeException)
-+{
-+ return Reference< com::sun::star::sdbc::XArray > ();
-+}
-+
-+
-+sal_Int32 ResultSet::findColumn( const ::rtl::OUString& columnName )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ return 0;
-+// return PQfnumber( m_result, OUStringToOString( columnName, (*m_ppSettings)->encoding ).getStr())+1;
-+}
-+
-+::cppu::IPropertyArrayHelper & ResultSet::getInfoHelper()
-+{
-+ return getResultSetPropertyArrayHelper();
-+}
-+
-+
-+sal_Bool ResultSet::convertFastPropertyValue(
-+ Any & rConvertedValue, Any & rOldValue, sal_Int32 nHandle, const Any& rValue )
-+ throw (IllegalArgumentException)
-+{
-+ sal_Bool bRet;
-+ switch( nHandle )
-+ {
-+ case RESULTSET_CURSOR_NAME:
-+ {
-+ OUString val;
-+ bRet = ( rValue >>= val );
-+ m_props[nHandle] = makeAny( val );
-+ break;
-+ }
-+ case RESULTSET_ESCAPE_PROCESSING:
-+ {
-+ sal_Bool val;
-+ bRet = ( rValue >>= val );
-+ m_props[nHandle] = makeAny( val );
-+ break;
-+ }
-+ case RESULTSET_FETCH_DIRECTION:
-+ case RESULTSET_FETCH_SIZE:
-+ case RESULTSET_RESULT_SET_CONCURRENCY:
-+ case RESULTSET_RESULT_SET_TYPE:
-+ {
-+ sal_Int32 val;
-+ bRet = ( rValue >>= val );
-+ m_props[nHandle] = makeAny( val );
-+ break;
-+ }
-+ default:
-+ {
-+ OUStringBuffer buf(128);
-+ buf.appendAscii( "mdb_resultset: Invalid property handle (" );
-+ buf.append( nHandle );
-+ buf.appendAscii( ")" );
-+ throw IllegalArgumentException( buf.makeStringAndClear(), *this, 2 );
-+ }
-+ }
-+ return bRet;
-+}
-+
-+
-+void ResultSet::setFastPropertyValue_NoBroadcast(
-+ sal_Int32 nHandle,const Any& rValue ) throw (Exception)
-+{
-+ m_props[nHandle] = rValue;
-+}
-+
-+void ResultSet::getFastPropertyValue( Any& rValue, sal_Int32 nHandle ) const
-+{
-+ rValue = m_props[nHandle];
-+}
-+
-+Reference < XPropertySetInfo > ResultSet::getPropertySetInfo()
-+ throw(RuntimeException)
-+{
-+ return OPropertySetHelper::createPropertySetInfo( getResultSetPropertyArrayHelper() );
-+}
-+
-+void ResultSet::disposing()
-+{
-+ close();
-+}
-+
-+void ResultSet::checkClosed() throw ( SQLException, RuntimeException )
-+{
-+// if( ! m_columnNames.getLength() )
-+// {
-+// throw SQLException( ASCII_STR( "mdb_resultset: already closed" ), *this, OUString(), 1, Any() );
-+// }
-+
-+// if( ! m_ppSettings || ! *m_ppSettings || ! (*m_ppSettings)->pConnection )
-+// {
-+// throw SQLException( ASCII_STR( "mdb_resultset: statement has been closed already" ),
-+// *this, OUString(), 1, Any() );
-+// }
-+}
-+
-+void ResultSet::checkColumnIndex(sal_Int32 index ) throw ( SQLException, RuntimeException )
-+{
-+ if( index < 1 || index > m_fieldCount )
-+ {
-+ OUStringBuffer buf(128);
-+ buf.appendAscii( "mdb_resultset: index out of range (" );
-+ buf.append( index );
-+ buf.appendAscii( ", allowed range is 1 to " );
-+ buf.append( m_fieldCount );
-+ buf.appendAscii( ")" );
-+ throw SQLException( buf.makeStringAndClear(), *this, OUString(), 1, Any() );
-+ }
-+
-+ if( m_row < 0 || m_row >= m_rowCount )
-+ {
-+ OUStringBuffer buf( 128 );
-+ buf.appendAscii( "mdb_resultset: row index out of range, allowed is 1 to " );
-+ buf.append( m_rowCount );
-+ buf.appendAscii( ", got " );
-+ buf.append( index );
-+ throw SQLException( buf.makeStringAndClear(), *this, OUString(),1, Any() );
-+ }
-+}
-+}
diff --git a/patches/src680/connectivity-source-drivers-mdb-mdb-resultset-hxx.diff b/patches/src680/connectivity-source-drivers-mdb-mdb-resultset-hxx.diff
deleted file mode 100644
index 8cf595a25..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-mdb-resultset-hxx.diff
+++ /dev/null
@@ -1,286 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/mdb_resultset.hxx 2005-06-29 11:18:53.000000000 +0530
-@@ -0,0 +1,283 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Joerg Budischewski
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Joerg Budischewski
-+ *
-+ *
-+ ************************************************************************/
-+#ifndef _PG_RESULTSET_HXX_
-+#define _PG_RESULTSET_HXX_
-+
-+#include <cppuhelper/propshlp.hxx>
-+#include <cppuhelper/component.hxx>
-+
-+#include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp>
-+#include <com/sun/star/sdbc/XRow.hpp>
-+#include <com/sun/star/sdbc/XCloseable.hpp>
-+#include <com/sun/star/sdbc/XColumnLocate.hpp>
-+#include "mdb_connection.hxx"
-+
-+namespace mdb_sdbc_driver
-+{
-+
-+static const sal_Int32 RESULTSET_CURSOR_NAME = 0;
-+static const sal_Int32 RESULTSET_ESCAPE_PROCESSING = 1;
-+static const sal_Int32 RESULTSET_FETCH_DIRECTION = 2;
-+static const sal_Int32 RESULTSET_FETCH_SIZE = 3;
-+static const sal_Int32 RESULTSET_RESULT_SET_CONCURRENCY = 4;
-+static const sal_Int32 RESULTSET_RESULT_SET_TYPE = 5;
-+
-+#define RESULTSET_SIZE 6
-+
-+class RefCountedMutex;
-+class ResultSet : public cppu::OComponentHelper,
-+ public cppu::OPropertySetHelper,
-+ public com::sun::star::sdbc::XCloseable,
-+ public com::sun::star::sdbc::XResultSetMetaDataSupplier,
-+ public com::sun::star::sdbc::XResultSet,
-+ public com::sun::star::sdbc::XRow,
-+ public com::sun::star::sdbc::XColumnLocate
-+{
-+private:
-+ com::sun::star::uno::Any m_props[RESULTSET_SIZE];
-+ com::sun::star::uno::Reference< com::sun::star::uno::XInterface > m_owner;
-+ ::rtl::Reference< RefCountedMutex > m_refMutex;
-+ ConnectionSettings **m_ppSettings;
-+ void *m_result;
-+ sal_Int32 m_row;
-+ sal_Int32 m_rowCount;
-+ sal_Int32 m_fieldCount;
-+ sal_Bool m_wasNull;
-+ ::com::sun::star::uno::Sequence< com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > > m_data;
-+
-+ ::com::sun::star::uno::Sequence< ::rtl::OUString > m_columnNames;
-+
-+public:
-+ inline cppu::OBroadcastHelper & getRBHelper() { return OComponentHelper::rBHelper;}
-+
-+private:
-+ /** mutex should be locked before called
-+ */
-+ void checkClosed() throw ( com::sun::star::sdbc::SQLException, com::sun::star::uno::RuntimeException );
-+ void checkColumnIndex( sal_Int32 index )
-+ throw ( com::sun::star::sdbc::SQLException, com::sun::star::uno::RuntimeException );
-+
-+ /** unchecked !
-+ */
-+ inline ::rtl::OUString getValueAsString( sal_Int32 columnIndex )
-+ {
-+ OUString str;
-+ // currently support only string and void !
-+ m_wasNull = !( m_data[m_row][columnIndex-1] >>= str );
-+
-+ return str;
-+ }
-+ inline com::sun::star::uno::Any convertTo(
-+ const ::rtl::OUString &str, const com::sun::star::uno::Type &type );
-+
-+public:
-+ ResultSet( const ::rtl::Reference< RefCountedMutex > & mutex,
-+ const com::sun::star::uno::Reference< com::sun::star::uno::XInterface > &owner,
-+ ConnectionSettings **pSettings,
-+ void *result );
-+ ResultSet( const ::rtl::Reference< RefCountedMutex > & refMutex,
-+ const Reference< XInterface > & owner,
-+ const Sequence< OUString > &colNames,
-+ const Sequence< Sequence< Any > > &data,
-+ const Reference< com::sun::star::script::XTypeConverter > & tc);
-+
-+ ~ResultSet();
-+
-+public: // XInterface
-+ virtual void SAL_CALL acquire() throw() { OComponentHelper::acquire(); }
-+ virtual void SAL_CALL release() throw() { OComponentHelper::release(); }
-+ virtual com::sun::star::uno::Any SAL_CALL queryInterface(
-+ const com::sun::star::uno::Type & reqType )
-+ throw (com::sun::star::uno::RuntimeException);
-+
-+public: // XCloseable
-+ virtual void SAL_CALL close( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+public: // XTypeProvider, first implemented by OPropertySetHelper
-+ virtual com::sun::star::uno::Sequence< com::sun::star::uno::Type > SAL_CALL getTypes()
-+ throw( com::sun::star::uno::RuntimeException );
-+ virtual com::sun::star::uno::Sequence< sal_Int8> SAL_CALL getImplementationId()
-+ throw( com::sun::star::uno::RuntimeException );
-+
-+public: // XResultSetMetaDataSupplier
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetMetaData > SAL_CALL getMetaData( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+public: // XResultSet
-+ // Methods
-+ virtual sal_Bool SAL_CALL next( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isBeforeFirst( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isAfterLast( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isFirst( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isLast( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL beforeFirst( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL afterLast( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL first( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL last( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getRow( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL absolute( sal_Int32 row )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL relative( sal_Int32 rows )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL previous( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL refreshRow( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL rowUpdated( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL rowInserted( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL rowDeleted( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getStatement()
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+
-+public: // XRow
-+ virtual sal_Bool SAL_CALL wasNull( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getString( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL getBoolean( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int8 SAL_CALL getByte( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int16 SAL_CALL getShort( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getInt( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int64 SAL_CALL getLong( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual float SAL_CALL getFloat( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual double SAL_CALL getDouble( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getBytes( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::util::Date SAL_CALL getDate( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::util::Time SAL_CALL getTime( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::util::DateTime SAL_CALL getTimestamp( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getBinaryStream( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getCharacterStream( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Any SAL_CALL getObject(
-+ sal_Int32 columnIndex,
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& typeMap )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRef > SAL_CALL getRef( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XBlob > SAL_CALL getBlob( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XClob > SAL_CALL getClob( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XArray > SAL_CALL getArray( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+public: // XColumnLocate
-+ virtual sal_Int32 SAL_CALL findColumn( const ::rtl::OUString& columnName )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+public: // OPropertySetHelper
-+ virtual cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper();
-+
-+ virtual sal_Bool SAL_CALL convertFastPropertyValue(
-+ ::com::sun::star::uno::Any & rConvertedValue,
-+ ::com::sun::star::uno::Any & rOldValue,
-+ sal_Int32 nHandle,
-+ const ::com::sun::star::uno::Any& rValue )
-+ throw (::com::sun::star::lang::IllegalArgumentException);
-+
-+ virtual void SAL_CALL setFastPropertyValue_NoBroadcast(
-+ sal_Int32 nHandle,
-+ const ::com::sun::star::uno::Any& rValue )
-+ throw (::com::sun::star::uno::Exception);
-+
-+ virtual void SAL_CALL getFastPropertyValue(
-+ ::com::sun::star::uno::Any& rValue,
-+ sal_Int32 nHandle ) const;
-+
-+ // XPropertySet
-+ ::com::sun::star::uno::Reference < ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo()
-+ throw(com::sun::star::uno::RuntimeException);
-+
-+public: // OComponentHelper
-+ virtual void SAL_CALL disposing();
-+
-+
-+};
-+
-+}
-+#endif
diff --git a/patches/src680/connectivity-source-drivers-mdb-mdb-resultsetmetadata-cxx.diff b/patches/src680/connectivity-source-drivers-mdb-mdb-resultsetmetadata-cxx.diff
deleted file mode 100644
index 09a11ac1b..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-mdb-resultsetmetadata-cxx.diff
+++ /dev/null
@@ -1,299 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/mdb_resultsetmetadata.cxx 2005-06-29 11:18:53.000000000 +0530
-@@ -0,0 +1,296 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Joerg Budischewski
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Joerg Budischewski
-+ *
-+ *
-+ ************************************************************************/
-+#include <rtl/ustrbuf.hxx>
-+
-+#include "mdb_resultsetmetadata.hxx"
-+
-+
-+using osl::Mutex;
-+using osl::MutexGuard;
-+
-+using rtl::OUString;
-+using rtl::OUStringBuffer;
-+using rtl::OString;
-+
-+using com::sun::star::uno::Any;
-+using com::sun::star::uno::RuntimeException;
-+using com::sun::star::uno::Exception;
-+using com::sun::star::uno::Reference;
-+using com::sun::star::uno::XInterface;
-+
-+using com::sun::star::lang::IllegalArgumentException;
-+
-+using com::sun::star::sdbc::SQLException;
-+
-+#define ASCII_STR(x) OUString( RTL_CONSTASCII_USTRINGPARAM( x ) )
-+
-+namespace mdb_sdbc_driver
-+{
-+
-+ResultSetMetaData::ResultSetMetaData(
-+ const ::rtl::Reference< RefCountedMutex > & refMutex,
-+ const ::com::sun::star::uno::Reference< com::sun::star::sdbc::XResultSet > & origin,
-+ const Sequence< OUString > &colNames ) :
-+ m_refMutex( refMutex ),
-+ m_origin( origin ),
-+ m_colNames(colNames)
-+{
-+ m_ppResult = 0;
-+ m_colCount = colNames.getLength();
-+
-+}
-+
-+ResultSetMetaData::ResultSetMetaData(
-+ int afieldCount )
-+{
-+ m_colCount = afieldCount;
-+
-+}
-+
-+
-+// Methods
-+sal_Int32 ResultSetMetaData::getColumnCount( )
-+ throw (SQLException, RuntimeException)
-+{
-+ return m_colCount;
-+}
-+
-+sal_Bool ResultSetMetaData::isAutoIncrement( sal_Int32 column )
-+ throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+// MutexGuard guard( m_refMutex->mutex );
-+ throw SQLException(
-+ ASCII_STR( "mdb_resultsetmetadata.isAutoIncrement(): don't know" ),
-+ *this, OUString(), 1, Any() );
-+}
-+
-+sal_Bool ResultSetMetaData::isCaseSensitive( sal_Int32 column )
-+ throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+ throw SQLException(
-+ ASCII_STR( "mdb_resultsetmetadata.isCaseSensitive(): don't know" ),
-+ *this, OUString(), 1, Any() );
-+}
-+
-+sal_Bool ResultSetMetaData::isSearchable( sal_Int32 column ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+ throw SQLException(
-+ ASCII_STR( "mdb_resultsetmetadata.isSearchable(): don't know" ),
-+ *this, OUString(), 1, Any() );
-+}
-+
-+sal_Bool ResultSetMetaData::isCurrency( sal_Int32 column ) throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+ throw SQLException(
-+ ASCII_STR( "mdb_resultsetmetadata.isCurrency(): don't know" ),
-+ *this, OUString(), 1, Any() );
-+}
-+
-+sal_Int32 ResultSetMetaData::isNullable( sal_Int32 column )
-+ throw (SQLException, RuntimeException)
-+{
-+ return sal_True;
-+ throw SQLException(
-+ ASCII_STR( "mdb_resultsetmetadata.isNullable(): don't know" ),
-+ *this, OUString(), 1, Any() );
-+}
-+
-+sal_Bool ResultSetMetaData::isSigned( sal_Int32 column )
-+ throw (SQLException, RuntimeException)
-+{
-+ return sal_False;
-+ throw SQLException(
-+ ASCII_STR( "mdb_resultsetmetadata.isSigned(): don't know" ),
-+ *this, OUString(), 1, Any() );
-+}
-+
-+sal_Int32 ResultSetMetaData::getColumnDisplaySize( sal_Int32 column )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( column );
-+
-+ sal_Int32 size = -1;//PQfsize( *m_ppResult, column -1 );
-+ if( size == -1 )
-+ size = 25;
-+
-+ // improvement needed !, possible solution is to iterate once over all
-+ // rows !
-+
-+ return size;
-+}
-+
-+::rtl::OUString ResultSetMetaData::getColumnLabel( sal_Int32 column )
-+ throw (SQLException, RuntimeException)
-+{
-+ return getColumnName( column);
-+}
-+
-+::rtl::OUString ResultSetMetaData::getColumnName( sal_Int32 column ) throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ checkColumnIndex( column );
-+
-+ return m_colNames[column-1];
-+}
-+
-+::rtl::OUString ResultSetMetaData::getSchemaName( sal_Int32 column ) throw (SQLException, RuntimeException)
-+{
-+ // Need meta data therefor
-+ return OUString();
-+}
-+
-+sal_Int32 ResultSetMetaData::getPrecision( sal_Int32 column )
-+ throw (SQLException, RuntimeException)
-+{
-+
-+ return 0;
-+}
-+
-+sal_Int32 ResultSetMetaData::getScale( sal_Int32 column )
-+ throw (SQLException, RuntimeException)
-+{
-+ return 0;
-+}
-+
-+::rtl::OUString ResultSetMetaData::getTableName( sal_Int32 column )
-+ throw (SQLException, RuntimeException)
-+{
-+ return rtl::OUString();
-+}
-+
-+::rtl::OUString ResultSetMetaData::getCatalogName( sal_Int32 column )
-+ throw (SQLException, RuntimeException)
-+{
-+ // can do this through XConnection.getCatalog() !
-+ return OUString();
-+}
-+sal_Int32 ResultSetMetaData::getColumnType( sal_Int32 column )
-+ throw (SQLException, RuntimeException)
-+{
-+ return -1;
-+}
-+
-+::rtl::OUString ResultSetMetaData::getColumnTypeName( sal_Int32 column )
-+ throw (SQLException, RuntimeException)
-+{
-+ return OUString();
-+}
-+
-+
-+sal_Bool ResultSetMetaData::isReadOnly( sal_Int32 column )
-+ throw (SQLException, RuntimeException)
-+{
-+ // Hey, that's correct !
-+ return sal_True;
-+}
-+
-+sal_Bool ResultSetMetaData::isWritable( sal_Int32 column )
-+ throw (SQLException, RuntimeException)
-+{
-+ return ! isReadOnly( column ); // what's the sense if this method ?
-+}
-+
-+sal_Bool ResultSetMetaData::isDefinitelyWritable( sal_Int32 column )
-+ throw (SQLException, RuntimeException)
-+{
-+ return isWritable(column); // uhh, now it becomes really esoteric ....
-+}
-+::rtl::OUString ResultSetMetaData::getColumnServiceName( sal_Int32 column )
-+ throw (SQLException, RuntimeException)
-+{
-+ return OUString();
-+}
-+
-+void ResultSetMetaData::checkClosed()
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException)
-+{
-+// if( ! *m_ppResult )
-+// {
-+// throw SQLException(
-+// ASCII_STR( "mdb_resultsetmetadata: resultset is closed already" ),
-+// *this, OUString(), 1, Any() );
-+// }
-+}
-+
-+void ResultSetMetaData::checkColumnIndex(sal_Int32 columnIndex)
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException)
-+{
-+ if( columnIndex < 1 || columnIndex > m_colCount )
-+ {
-+ OUStringBuffer buf(128);
-+
-+ buf.appendAscii( "mdb_resultsetmetadata: index out of range (expected 1 to " );
-+ buf.append( m_colCount );
-+ buf.appendAscii( ", got " );
-+ buf.append( columnIndex );
-+ throw SQLException(
-+ buf.makeStringAndClear(), *this, OUString(), 1, Any() );
-+ }
-+}
-+
-+}
diff --git a/patches/src680/connectivity-source-drivers-mdb-mdb-resultsetmetadata-hxx.diff b/patches/src680/connectivity-source-drivers-mdb-mdb-resultsetmetadata-hxx.diff
deleted file mode 100644
index 8eada882e..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-mdb-resultsetmetadata-hxx.diff
+++ /dev/null
@@ -1,127 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/mdb_resultsetmetadata.hxx 2005-06-29 11:18:53.000000000 +0530
-@@ -0,0 +1,124 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Joerg Budischewski
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Joerg Budischewski
-+ *
-+ *
-+ ************************************************************************/
-+#ifndef _MDB_RESULTSETMETADATA_HXX_
-+#define _MDB_RESULTSETMETADATA_HXX_
-+
-+#include "mdb_connection.hxx"
-+
-+#include <com/sun/star/sdbc/XResultSetMetaData.hpp>
-+
-+#include <cppuhelper/implbase1.hxx>
-+
-+namespace mdb_sdbc_driver
-+{
-+
-+class ResultSetMetaData :
-+ public ::cppu::WeakImplHelper1 < com::sun::star::sdbc::XResultSetMetaData >
-+{
-+ ::rtl::Reference< RefCountedMutex > m_refMutex;
-+ void **m_ppResult;
-+ ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > m_origin;
-+ sal_Int32 m_colCount;
-+ const Sequence< OUString > m_colNames;
-+
-+ void checkClosed()
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ void checkColumnIndex( sal_Int32 columnIndex )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+
-+public:
-+ ResultSetMetaData(
-+ const ::rtl::Reference< RefCountedMutex > & reMutex,
-+ const ::com::sun::star::uno::Reference< com::sun::star::sdbc::XResultSet > & origin,
-+ const Sequence< OUString > &colNames
-+ );
-+ ResultSetMetaData(
-+ int afieldCount );
-+
-+public:
-+ // Methods
-+ virtual sal_Int32 SAL_CALL getColumnCount( ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isAutoIncrement( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isCaseSensitive( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isSearchable( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isCurrency( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL isNullable( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isSigned( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getColumnDisplaySize( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getColumnLabel( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getColumnName( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getSchemaName( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getPrecision( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getScale( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getTableName( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getCatalogName( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getColumnType( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getColumnTypeName( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isReadOnly( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isWritable( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isDefinitelyWritable( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getColumnServiceName( sal_Int32 column ) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+};
-+
-+}
-+
-+#endif
diff --git a/patches/src680/connectivity-source-drivers-mdb-mdb-sequenceresultset-cxx.diff b/patches/src680/connectivity-source-drivers-mdb-mdb-sequenceresultset-cxx.diff
deleted file mode 100644
index 10a1aba85..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-mdb-sequenceresultset-cxx.diff
+++ /dev/null
@@ -1,148 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/mdb_sequenceresultset.cxx 2005-06-29 11:18:53.000000000 +0530
-@@ -0,0 +1,145 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Joerg Budischewski
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Joerg Budischewski
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include "mdb_resultsetmetadata.hxx"
-+#include "mdb_sequenceresultset.hxx"
-+
-+using rtl::OUString;
-+
-+using com::sun::star::sdbc::XResultSetMetaData;
-+
-+using com::sun::star::uno::Sequence;
-+using com::sun::star::uno::Reference;
-+using com::sun::star::uno::Any;
-+
-+namespace mdb_sdbc_driver
-+{
-+#define ASCII_STR(x) OUString( RTL_CONSTASCII_USTRINGPARAM( x ) )
-+
-+void SequenceResultSet::checkClosed()
-+ throw ( com::sun::star::sdbc::SQLException,
-+ com::sun::star::uno::RuntimeException )
-+{
-+ // we never close :o)
-+}
-+
-+
-+::rtl::OUString SequenceResultSet::getValueAsString( sal_Int32 columnIndex )
-+{
-+ OUString str;
-+ // currently support only string and void !
-+ m_wasNull = !( m_data[m_row][columnIndex-1] >>= str );
-+
-+ return str;
-+}
-+
-+SequenceResultSet::SequenceResultSet(
-+ const ::rtl::Reference< RefCountedMutex > & mutex,
-+ const com::sun::star::uno::Reference< com::sun::star::uno::XInterface > &owner,
-+ const Sequence< OUString > &colNames,
-+ const Sequence< Sequence< Any > > &data,
-+ const Reference< com::sun::star::script::XTypeConverter > & tc) :
-+ BaseResultSet( mutex, owner, data.getLength(), colNames.getLength(),tc ),
-+ m_data(data ),
-+ m_columnNames( colNames )
-+{
-+}
-+
-+SequenceResultSet::~SequenceResultSet()
-+{
-+
-+}
-+
-+void SequenceResultSet::close( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException)
-+{
-+ // a noop
-+}
-+
-+Reference< XResultSetMetaData > SAL_CALL SequenceResultSet::getMetaData( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException)
-+{
-+ // Oh no, not again
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+
-+ return
-+ new ResultSetMetaData(m_refMutex, this, m_columnNames);
-+}
-+
-+
-+sal_Int32 SAL_CALL SequenceResultSet::findColumn(
-+ const ::rtl::OUString& columnName )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException)
-+{
-+ // no need to guard, as all members are readonly !
-+ sal_Int32 ret = -1;
-+ for( int i = 0 ;i < m_fieldCount ; i ++ )
-+ {
-+ if( columnName == m_columnNames[i] )
-+ {
-+ ret = i;
-+ break;
-+ }
-+ }
-+ return ret;
-+}
-+}
diff --git a/patches/src680/connectivity-source-drivers-mdb-mdb-sequenceresultset-hxx.diff b/patches/src680/connectivity-source-drivers-mdb-mdb-sequenceresultset-hxx.diff
deleted file mode 100644
index 9e19172e7..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-mdb-sequenceresultset-hxx.diff
+++ /dev/null
@@ -1,129 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/mdb_sequenceresultset.hxx 2005-06-29 11:18:53.000000000 +0530
-@@ -0,0 +1,126 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Joerg Budischewski
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Joerg Budischewski
-+ *
-+ *
-+ ************************************************************************/
-+#ifndef _PG_SEQUENCERESULTSET_HXX_
-+#define _PG_SEQUENCERESULTSET_HXX_
-+
-+#include <cppuhelper/propshlp.hxx>
-+#include <cppuhelper/component.hxx>
-+
-+#include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp>
-+#include <com/sun/star/sdbc/XRow.hpp>
-+#include <com/sun/star/sdbc/XCloseable.hpp>
-+#include <com/sun/star/sdbc/XColumnLocate.hpp>
-+#include "mdb_connection.hxx"
-+#include "mdb_baseresultset.hxx"
-+
-+namespace mdb_sdbc_driver
-+{
-+
-+static const sal_Int32 RESULTSET_CURSOR_NAME = 0;
-+static const sal_Int32 RESULTSET_ESCAPE_PROCESSING = 1;
-+static const sal_Int32 RESULTSET_FETCH_DIRECTION = 2;
-+static const sal_Int32 RESULTSET_FETCH_SIZE = 3;
-+static const sal_Int32 RESULTSET_RESULT_SET_CONCURRENCY = 4;
-+static const sal_Int32 RESULTSET_RESULT_SET_TYPE = 5;
-+
-+#define RESULTSET_SIZE 6
-+class ResultSetGuard;
-+
-+class SequenceResultSet : public BaseResultSet
-+{
-+private:
-+ ::com::sun::star::uno::Sequence< com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > > m_data;
-+ ::com::sun::star::uno::Sequence< ::rtl::OUString > m_columnNames;
-+
-+protected:
-+ /** mutex should be locked before called
-+ */
-+ virtual void checkClosed()
-+ throw ( com::sun::star::sdbc::SQLException, com::sun::star::uno::RuntimeException );
-+
-+ /** unchecked, acquire mutex before calling
-+ */
-+ virtual ::rtl::OUString getValueAsString( sal_Int32 columnIndex );
-+
-+public:
-+ SequenceResultSet(
-+ const ::rtl::Reference< RefCountedMutex > & mutex,
-+ const com::sun::star::uno::Reference< com::sun::star::uno::XInterface > &owner,
-+ const com::sun::star::uno::Sequence< rtl::OUString > &colNames,
-+ const com::sun::star::uno::Sequence< com::sun::star::uno::Sequence< com::sun::star::uno::Any > > &data,
-+ const com::sun::star::uno::Reference< com::sun::star::script::XTypeConverter > &tc);
-+ ~SequenceResultSet();
-+
-+public: // XCloseable
-+ virtual void SAL_CALL close( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+public: // XResultSetMetaDataSupplier
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetMetaData > SAL_CALL getMetaData( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+public: // XColumnLocate
-+ virtual sal_Int32 SAL_CALL findColumn( const ::rtl::OUString& columnName )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+};
-+
-+}
-+#endif
diff --git a/patches/src680/connectivity-source-drivers-mdb-mdb-statement-cxx.diff b/patches/src680/connectivity-source-drivers-mdb-mdb-statement-cxx.diff
deleted file mode 100644
index faa5a4951..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-mdb-statement-cxx.diff
+++ /dev/null
@@ -1,453 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/mdb_statement.cxx 2005-06-29 11:18:53.000000000 +0530
-@@ -0,0 +1,450 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Joerg Budischewski
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Joerg Budischewski
-+ *
-+ *
-+ ************************************************************************/
-+#include "mdb_statement.hxx"
-+//#include "mdb_sequenceresultset.hxx"
-+#include "mdb_resultset.hxx"
-+
-+#include <osl/thread.h>
-+
-+#include <rtl/ustrbuf.hxx>
-+
-+#include <cppuhelper/typeprovider.hxx>
-+#include <cppuhelper/queryinterface.hxx>
-+
-+#include <com/sun/star/beans/PropertyAttribute.hpp>
-+
-+#include <com/sun/star/sdbc/ResultSetConcurrency.hpp>
-+#include <com/sun/star/sdbc/ResultSetType.hpp>
-+
-+using osl::Mutex;
-+using osl::MutexGuard;
-+
-+using rtl::OUString;
-+using rtl::OUStringBuffer;
-+using rtl::OString;
-+
-+using com::sun::star::uno::Any;
-+using com::sun::star::uno::makeAny;
-+using com::sun::star::uno::Type;
-+using com::sun::star::uno::RuntimeException;
-+using com::sun::star::uno::Exception;
-+using com::sun::star::uno::Sequence;
-+using com::sun::star::uno::Reference;
-+using com::sun::star::uno::XInterface;
-+
-+using com::sun::star::lang::IllegalArgumentException;
-+
-+using com::sun::star::sdbc::XWarningsSupplier;
-+using com::sun::star::sdbc::XCloseable;
-+using com::sun::star::sdbc::XStatement;
-+using com::sun::star::sdbc::XResultSet;
-+using com::sun::star::sdbc::XConnection;
-+using com::sun::star::sdbc::SQLException;
-+
-+using com::sun::star::beans::Property;
-+using com::sun::star::beans::XPropertySetInfo;
-+using com::sun::star::beans::XPropertySet;
-+using com::sun::star::beans::XFastPropertySet;
-+using com::sun::star::beans::XMultiPropertySet;
-+
-+#define ASCII_STR(x) OUString( RTL_CONSTASCII_USTRINGPARAM( x ) )
-+namespace mdb_sdbc_driver
-+{
-+static ::cppu::IPropertyArrayHelper & getStatementPropertyArrayHelper()
-+{
-+ static ::cppu::IPropertyArrayHelper *pArrayHelper;
-+ if( ! pArrayHelper )
-+ {
-+ MutexGuard guard( Mutex::getGlobalMutex() );
-+ if( ! pArrayHelper )
-+ {
-+ static Property aTable[] =
-+ {
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("CursorName") ), 0,
-+ ::getCppuType( (OUString *)0) , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("EscapeProcessing") ), 0,
-+ ::getBooleanCppuType() , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("FetchDirection") ), 0,
-+ ::getCppuType( (sal_Int32 *)0) , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("FetchSize") ), 0,
-+ ::getCppuType( (sal_Int32 *)0) , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("MaxFieldSize") ), 0,
-+ ::getCppuType( (sal_Int32 *)0) , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("MaxRows") ), 0,
-+ ::getCppuType( (sal_Int32 *)0) , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("QueryTimeOut") ), 0,
-+ ::getCppuType( (sal_Int32 *)0) , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("ResultSetConcurrency") ), 0,
-+ ::getCppuType( (sal_Int32 *)0) , 0 ),
-+ Property(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM("ResultSetType") ), 0,
-+ ::getCppuType( (sal_Int32 *)0) , 0 )
-+ };
-+ OSL_ASSERT( sizeof(aTable)/ sizeof(Property) == STATEMENT_SIZE );
-+ static ::cppu::OPropertyArrayHelper arrayHelper( aTable, STATEMENT_SIZE, sal_True );
-+ pArrayHelper = &arrayHelper;
-+ }
-+ }
-+ return *pArrayHelper;
-+}
-+
-+Statement::Statement( const ::rtl::Reference< RefCountedMutex > & refMutex,
-+ const Reference< XConnection > & conn,
-+ struct ConnectionSettings *pSettings )
-+ : OComponentHelper( refMutex->mutex ),
-+ OPropertySetHelper( OComponentHelper::rBHelper ),
-+ m_refMutex( refMutex ),
-+ m_connection( conn ),
-+ m_pSettings( pSettings )
-+{
-+ m_props[STATEMENT_QUERY_TIME_OUT] = makeAny( (sal_Int32)0 );
-+ m_props[STATEMENT_MAX_ROWS] = makeAny( (sal_Int32)0 );
-+ m_props[STATEMENT_RESULT_SET_CONCURRENCY] = makeAny(
-+ com::sun::star::sdbc::ResultSetConcurrency::READ_ONLY );
-+ m_props[STATEMENT_RESULT_SET_TYPE] = makeAny(
-+ com::sun::star::sdbc::ResultSetType::SCROLL_INSENSITIVE );
-+}
-+
-+Statement::~Statement()
-+{
-+ POSTGRE_TRACE( "dtor Statement" );
-+}
-+
-+void Statement::checkClosed() throw (SQLException, RuntimeException )
-+{
-+ if( ! m_pSettings || ! m_pSettings->pConnection )
-+ throw SQLException(
-+ ASCII_STR("mdb_driver: Statement or connection has already been closed !" ),
-+ *this, OUString(),1,Any());
-+}
-+
-+Any Statement::queryInterface( const Type & reqType ) throw (RuntimeException)
-+{
-+ Any ret;
-+
-+ ret = OComponentHelper::queryInterface( reqType );
-+ if( ! ret.hasValue() )
-+ ret = ::cppu::queryInterface( reqType,
-+ static_cast< XWarningsSupplier * > ( this ),
-+ static_cast< XStatement * > ( this ),
-+ static_cast< XCloseable * > ( this ),
-+ static_cast< XPropertySet * > ( this ),
-+ static_cast< XMultiPropertySet * > ( this ),
-+ static_cast< XFastPropertySet * > ( this ) );
-+ return ret;
-+}
-+
-+
-+Sequence< Type > Statement::getTypes() throw ( RuntimeException )
-+{
-+ static cppu::OTypeCollection *pCollection;
-+ if( ! pCollection )
-+ {
-+ MutexGuard guard( osl::Mutex::getGlobalMutex() );
-+ if( !pCollection )
-+ {
-+ static cppu::OTypeCollection collection(
-+ getCppuType( (Reference< XWarningsSupplier> *) 0 ),
-+ getCppuType( (Reference< XStatement> *) 0 ),
-+ getCppuType( (Reference< XCloseable> *) 0 ),
-+ getCppuType( (Reference< XPropertySet >*) 0 ),
-+ getCppuType( (Reference< XFastPropertySet > *) 0 ),
-+ getCppuType( (Reference< XMultiPropertySet > *) 0 ),
-+ OComponentHelper::getTypes());
-+ pCollection = &collection;
-+ }
-+ }
-+ return pCollection->getTypes();
-+}
-+
-+Sequence< sal_Int8> Statement::getImplementationId() throw ( RuntimeException )
-+{
-+ static cppu::OImplementationId *pId;
-+ if( ! pId )
-+ {
-+ MutexGuard guard( osl::Mutex::getGlobalMutex() );
-+ if( ! pId )
-+ {
-+ static cppu::OImplementationId id(sal_False);
-+ pId = &id;
-+ }
-+ }
-+ return pId->getImplementationId();
-+}
-+
-+void Statement::close( ) throw (SQLException, RuntimeException)
-+{
-+ // let the connection die without acquired mutex !
-+ Reference< XConnection > r;
-+ Reference< XCloseable > resultSet;
-+ {
-+ MutexGuard guard( m_refMutex->mutex );
-+ m_pSettings = 0;
-+ r = m_connection;
-+ m_connection.clear();
-+
-+ resultSet = m_lastResultset;
-+ m_lastResultset.clear();
-+ }
-+ if( resultSet.is() )
-+ {
-+ resultSet->close();
-+ POSTGRE_TRACE( "statement closed" );
-+ }
-+
-+}
-+
-+void Statement::raiseSQLException(
-+ const OUString & sql, const char * errorMsg, const char *errorType )
-+ throw( SQLException )
-+{
-+ OUStringBuffer buf(128);
-+ buf.appendAscii( "mdb_driver: ");
-+ if( errorType )
-+ {
-+ buf.appendAscii( "[" );
-+ buf.appendAscii( errorType );
-+ buf.appendAscii( "]" );
-+ }
-+ buf.append(
-+ rtl::OStringToOUString( errorMsg, strlen(errorMsg) , m_pSettings->encoding ) );
-+ buf.appendAscii( " (caused by statement '" );
-+ buf.append( sql );
-+ buf.appendAscii( "')" );
-+ throw SQLException( buf.makeStringAndClear(), *this, OUString(), 1, Any() );
-+}
-+
-+::com::sun::star::uno::Reference< XResultSet > Statement::executeQuery(const OUString& sql )
-+ throw (SQLException, RuntimeException)
-+{
-+ osl::ClearableMutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ OString o = rtl::OUStringToOString( sql, RTL_TEXTENCODING_UTF8 );
-+ AnyVector aRows;
-+ Sequence< OUString > seqColumns;
-+ if (!mdb_ExecuteQuery(
-+ m_pSettings->pConnection,o,aRows,seqColumns)
-+ )
-+ {
-+ return new ResultSet(
-+ m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > (), m_pSettings->tc );
-+ }
-+
-+ return new ResultSet(
-+ m_refMutex, *this, seqColumns,
-+ Sequence< Sequence< Any > > ( &aRows[0],aRows.size() ), m_pSettings->tc );
-+}
-+
-+sal_Int32 Statement::executeUpdate( const OUString& sql )
-+ throw (SQLException, RuntimeException)
-+{
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ OString o = rtl::OUStringToOString( sql, RTL_TEXTENCODING_UTF8 );
-+
-+ POSTGRE_TRACE_1( "mdb_statement: executing update %s\n" , o.getStr() );
-+// PGresult *result = PQexec( m_pSettings->pConnection, o.getStr() );
-+// if( ! result )
-+// raiseSQLException( sql, PQerrorMessage( m_pSettings->pConnection ) );
-+
-+// ExecStatusType state = PQresultStatus( result );
-+/*
-+ switch( state )
-+ {
-+ case PGRES_COMMAND_OK:
-+ break;
-+ case PGRES_TUPLES_OK: // success
-+ raiseSQLException( sql, "not a command" );
-+ break;
-+ case PGRES_EMPTY_QUERY:
-+ case PGRES_COPY_OUT:
-+ case PGRES_COPY_IN:
-+ case PGRES_BAD_RESPONSE:
-+ case PGRES_NONFATAL_ERROR:
-+ case PGRES_FATAL_ERROR:
-+ default:
-+ raiseSQLException( sql, PQresultErrorMessage( result ) , PQresStatus( state ) );
-+ }
-+ sal_Int32 affectedTuples = atoi( PQcmdTuples(result) );
-+ PQclear( result );
-+*/
-+ sal_Int32 affectedTuples = 1;
-+ return affectedTuples;
-+}
-+
-+sal_Bool Statement::execute( const OUString& sql )
-+ throw (SQLException, RuntimeException)
-+{
-+ throw SQLException( ASCII_STR( "mdb_statement: execute() method is not supported, use executeUpdate or executeQuery instead" ),
-+ *this, OUString() , 1 , Any () );
-+ return sal_False;
-+}
-+
-+Reference< XConnection > Statement::getConnection( )
-+ throw (SQLException, RuntimeException)
-+{
-+ Reference< XConnection > ret;
-+ {
-+ MutexGuard guard( m_refMutex->mutex );
-+ checkClosed();
-+ ret = m_connection;
-+ }
-+ return ret;
-+}
-+
-+
-+Any Statement::getWarnings( )
-+ throw (SQLException,RuntimeException)
-+{
-+ return Any();
-+}
-+
-+void Statement::clearWarnings( )
-+ throw (SQLException, RuntimeException)
-+{
-+}
-+
-+::cppu::IPropertyArrayHelper & Statement::getInfoHelper()
-+{
-+ return getStatementPropertyArrayHelper();
-+}
-+
-+
-+sal_Bool Statement::convertFastPropertyValue(
-+ Any & rConvertedValue, Any & rOldValue, sal_Int32 nHandle, const Any& rValue )
-+ throw (IllegalArgumentException)
-+{
-+ sal_Bool bRet;
-+ switch( nHandle )
-+ {
-+ case STATEMENT_CURSOR_NAME:
-+ {
-+ OUString val;
-+ bRet = ( rValue >>= val );
-+ m_props[nHandle] = makeAny( val );
-+ break;
-+ }
-+ case STATEMENT_ESCAPE_PROCESSING:
-+ {
-+ sal_Bool val;
-+ bRet = ( rValue >>= val );
-+ m_props[nHandle] = makeAny( val );
-+ break;
-+ }
-+ case STATEMENT_FETCH_DIRECTION:
-+ case STATEMENT_FETCH_SIZE:
-+ case STATEMENT_MAX_FIELD_SIZE:
-+ case STATEMENT_MAX_ROWS:
-+ case STATEMENT_QUERY_TIME_OUT:
-+ case STATEMENT_RESULT_SET_CONCURRENCY:
-+ case STATEMENT_RESULT_SET_TYPE:
-+ {
-+ sal_Int32 val;
-+ bRet = ( rValue >>= val );
-+ m_props[nHandle] = makeAny( val );
-+ break;
-+ }
-+ default:
-+ {
-+ OUStringBuffer buf(128);
-+ buf.appendAscii( "mdb_statement: Invalid property handle (" );
-+ buf.append( nHandle );
-+ buf.appendAscii( ")" );
-+ throw IllegalArgumentException( buf.makeStringAndClear(), *this, 2 );
-+ }
-+ }
-+ return bRet;
-+}
-+
-+
-+void Statement::setFastPropertyValue_NoBroadcast(
-+ sal_Int32 nHandle,const Any& rValue ) throw (Exception)
-+{
-+ m_props[nHandle] = rValue;
-+}
-+
-+void Statement::getFastPropertyValue( Any& rValue, sal_Int32 nHandle ) const
-+{
-+ rValue = m_props[nHandle];
-+}
-+
-+Reference < XPropertySetInfo > Statement::getPropertySetInfo()
-+ throw(RuntimeException)
-+{
-+ return OPropertySetHelper::createPropertySetInfo( getStatementPropertyArrayHelper() );
-+}
-+
-+void Statement::disposing()
-+{
-+ close();
-+}
-+
-+
-+}
-+
diff --git a/patches/src680/connectivity-source-drivers-mdb-mdb-statement-hxx.diff b/patches/src680/connectivity-source-drivers-mdb-mdb-statement-hxx.diff
deleted file mode 100644
index 9a9fb3aac..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-mdb-statement-hxx.diff
+++ /dev/null
@@ -1,179 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/mdb_statement.hxx 2005-06-29 11:18:53.000000000 +0530
-@@ -0,0 +1,176 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Joerg Budischewski
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Joerg Budischewski
-+ *
-+ *
-+ ************************************************************************/
-+#ifndef _MDB_STATEMENT_HXX_
-+#define _MDB_STATEMENT_HXX_
-+
-+#include "mdb_connection.hxx"
-+
-+#include <cppuhelper/propshlp.hxx>
-+#include <cppuhelper/component.hxx>
-+
-+
-+
-+namespace mdb_sdbc_driver
-+{
-+
-+static const sal_Int32 STATEMENT_CURSOR_NAME = 0;
-+static const sal_Int32 STATEMENT_ESCAPE_PROCESSING = 1;
-+static const sal_Int32 STATEMENT_FETCH_DIRECTION = 2;
-+static const sal_Int32 STATEMENT_FETCH_SIZE = 3;
-+static const sal_Int32 STATEMENT_MAX_FIELD_SIZE = 4;
-+static const sal_Int32 STATEMENT_MAX_ROWS = 5;
-+static const sal_Int32 STATEMENT_QUERY_TIME_OUT = 6;
-+static const sal_Int32 STATEMENT_RESULT_SET_CONCURRENCY = 7;
-+static const sal_Int32 STATEMENT_RESULT_SET_TYPE = 8;
-+
-+#define STATEMENT_SIZE 9
-+class ResultSet;
-+
-+class Statement : public cppu::OComponentHelper,
-+ public cppu::OPropertySetHelper,
-+ public com::sun::star::sdbc::XStatement,
-+ public com::sun::star::sdbc::XCloseable,
-+ public com::sun::star::sdbc::XWarningsSupplier
-+{
-+private:
-+ com::sun::star::uno::Any m_props[STATEMENT_SIZE];
-+ com::sun::star::uno::Reference< com::sun::star::sdbc::XConnection > m_connection;
-+ ConnectionSettings *m_pSettings;
-+ com::sun::star::uno::Reference< com::sun::star::sdbc::XCloseable > m_lastResultset;
-+ ::rtl::Reference< RefCountedMutex > m_refMutex;
-+
-+public:
-+ /**
-+ * @param ppConnection The piece of memory, pConnection points to, is accessisble
-+ * as long as a reference to paramenter con is held.
-+ */
-+ Statement( const rtl::Reference< RefCountedMutex > & refMutex,
-+ const com::sun::star::uno::Reference< com::sun::star::sdbc::XConnection> & con,
-+ struct ConnectionSettings *pSettings );
-+
-+ virtual ~Statement();
-+public: // XInterface
-+ virtual void SAL_CALL acquire() throw() { OComponentHelper::acquire(); }
-+ virtual void SAL_CALL release() throw() { OComponentHelper::release(); }
-+ virtual com::sun::star::uno::Any SAL_CALL queryInterface( const com::sun::star::uno::Type & reqType )
-+ throw (com::sun::star::uno::RuntimeException);
-+
-+public: // XCloseable
-+ virtual void SAL_CALL close( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+public: // XStatement
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL executeQuery(
-+ const ::rtl::OUString& sql )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL executeUpdate( const ::rtl::OUString& sql )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL execute( const ::rtl::OUString& sql )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > SAL_CALL getConnection( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+public: // XWarningsSupplier
-+ virtual ::com::sun::star::uno::Any SAL_CALL getWarnings( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL clearWarnings( )
-+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+public: // XTypeProvider, first implemented by OPropertySetHelper
-+ virtual com::sun::star::uno::Sequence< com::sun::star::uno::Type > SAL_CALL getTypes()
-+ throw( com::sun::star::uno::RuntimeException );
-+ virtual com::sun::star::uno::Sequence< sal_Int8> SAL_CALL getImplementationId()
-+ throw( com::sun::star::uno::RuntimeException );
-+
-+public: // OPropertySetHelper
-+ virtual cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper();
-+
-+ virtual sal_Bool SAL_CALL convertFastPropertyValue(
-+ ::com::sun::star::uno::Any & rConvertedValue,
-+ ::com::sun::star::uno::Any & rOldValue,
-+ sal_Int32 nHandle,
-+ const ::com::sun::star::uno::Any& rValue )
-+ throw (::com::sun::star::lang::IllegalArgumentException);
-+
-+ virtual void SAL_CALL setFastPropertyValue_NoBroadcast(
-+ sal_Int32 nHandle,
-+ const ::com::sun::star::uno::Any& rValue )
-+ throw (::com::sun::star::uno::Exception);
-+
-+ virtual void SAL_CALL getFastPropertyValue(
-+ ::com::sun::star::uno::Any& rValue,
-+ sal_Int32 nHandle ) const;
-+
-+ // XPropertySet
-+ ::com::sun::star::uno::Reference < ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo()
-+ throw(com::sun::star::uno::RuntimeException);
-+
-+public: // OComponentHelper
-+ virtual void SAL_CALL disposing();
-+
-+private:
-+ void checkClosed() throw (com::sun::star::sdbc::SQLException, com::sun::star::uno::RuntimeException);
-+ void raiseSQLException( const ::rtl::OUString & sql, const char * errorMsg, const char *errorType = 0 )
-+ throw ( com::sun::star::sdbc::SQLException );
-+};
-+
-+}
-+#endif
diff --git a/patches/src680/connectivity-source-drivers-mdb-mdb-wrapper-cxx.diff b/patches/src680/connectivity-source-drivers-mdb-mdb-wrapper-cxx.diff
deleted file mode 100644
index dd2c8903e..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-mdb-wrapper-cxx.diff
+++ /dev/null
@@ -1,334 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/mdb_wrapper.cxx 2005-07-29 10:20:07.000000000 +0530
-@@ -0,0 +1,331 @@
-+
-+#include <mdb_wrapper.hxx>
-+
-+char *mdb_access_types1[] =
-+ {"Unknown 0x00",
-+ "Boolean",
-+ "Byte",
-+ "Integer",
-+ "Long Integer",
-+ "Currency",
-+ "Single",
-+ "Double",
-+ "DateTime (Short)",
-+ "Unknown 0x09",
-+ "Text",
-+ "OLE",
-+ "Memo/Hyperlink",
-+ "Unknown 0x0d",
-+ "Unknown 0x0e",
-+ "Replication ID",
-+ "Numeric"};
-+
-+struct BaseTypeDef { const char * typeName; sal_Int32 length; sal_Int32 value; };
-+ BaseTypeDef mdb_access_types[] =
-+ {
-+ { "Unknown 0x00" , 4, com::sun::star::sdbc::DataType::OTHER },
-+ { "Boolean", 1, com::sun::star::sdbc::DataType::BIT },
-+ { "Byte" , 1, com::sun::star::sdbc::DataType::SMALLINT },
-+ { "Integer" , 4, com::sun::star::sdbc::DataType::INTEGER },
-+ { "Long Integer" , 8, com::sun::star::sdbc::DataType::BIGINT },
-+ { "Currency", 8, com::sun::star::sdbc::DataType::DOUBLE },
-+ { "Single", 4, com::sun::star::sdbc::DataType::REAL },
-+ { "Double", 8, com::sun::star::sdbc::DataType::DOUBLE },
-+ { "DateTime(Short)", 8, com::sun::star::sdbc::DataType::BIGINT },
-+ { "Unknown 0x09" , 4, com::sun::star::sdbc::DataType::OTHER },
-+ { "Text", 65535,com::sun::star::sdbc::DataType::VARCHAR },
-+ { "OLE" , 0,com::sun::star::sdbc::DataType::OBJECT },
-+ { "Memo/Hyperlink", 65535,com::sun::star::sdbc::DataType::VARCHAR },
-+
-+ { "Unknown 0x0d" , 4, com::sun::star::sdbc::DataType::OTHER },
-+ { "Unknown 0x0e" , 4, com::sun::star::sdbc::DataType::OTHER },
-+ { "Replication ID" , 16, com::sun::star::sdbc::DataType::INTEGER },
-+ { "Numeric" , 8, com::sun::star::sdbc::DataType::INTEGER },
-+
-+ { 0,0, 0 }
-+
-+ };
-+
-+ ::MdbHandle * OpenMDB(char * sFileName)
-+ {
-+ MdbHandle *mdb;
-+
-+ /* initialize the library */
-+ mdb_init();
-+
-+ /* open the database */
-+
-+ if (!(mdb = mdb_open (sFileName,MDB_NOFLAGS))) {
-+ fprintf(stderr,"Couldn't open database.\n");
-+ }
-+ return mdb;
-+ }
-+ void CloseMDB(::MdbHandle * mdb)
-+ {
-+ mdb_close(mdb);
-+ mdb_exit();
-+ }
-+sal_Bool getTableStrings( MdbHandle *aMdb,
-+ ::std::vector< ::rtl::OUString >& _rStrings,
-+ rtl_TextEncoding encoding,
-+ sal_Bool forceLoad)
-+{
-+int i, j, k;
-+MdbHandle *mdb=aMdb;
-+MdbCatalogEntry *entry;
-+MdbTableDef *table;
-+MdbColumn *col;
-+char delimiter[4] = " | ";
-+int line_break=1;
-+int skip_sys=1;
-+int opt;
-+
-+::std::vector< ::rtl::OUString > m_aTableNames;
-+::rtl::OUString aTableName;
-+::rtl::OString sTemp;
-+
-+
-+ if (!mdb) {
-+ fprintf(stderr,"Couldn't open database.\n");
-+ return sal_False;
-+ }
-+
-+
-+ /* read the catalog */
-+ mdb_read_catalog (mdb, MDB_TABLE);
-+
-+ /* loop over each entry in the catalog */
-+ for (i=0; i < mdb->num_catalog; i++) {
-+ entry = (MdbCatalogEntry *) g_ptr_array_index (mdb->catalog, i);
-+
-+ /* if it's a table */
-+ if (entry->object_type == MDB_TABLE) {
-+ /* skip the MSys tables */
-+ if (!skip_sys || strncmp (entry->object_name, "MSys", 4))
-+ {
-+ sTemp = rtl::OString (entry->object_name);
-+ aTableName = rtl::OStringToOUString(sTemp, RTL_TEXTENCODING_UTF8);
-+ m_aTableNames.push_back( aTableName ); // Table name
-+
-+ /*if (line_break)
-+ fprintf (stdout, "%s\n", entry->object_name);
-+ else if (delimiter)
-+ fprintf (stdout, "%s%s", entry->object_name, delimiter);
-+ else
-+ fprintf (stdout, "%s ", entry->object_name);*/
-+ }
-+ }
-+ }
-+ if (!line_break)
-+ fprintf (stdout, "\n");
-+
-+ _rStrings = m_aTableNames;
-+ return( sal_True );
-+
-+}
-+sal_Bool getColumnStrings( ::MdbHandle *aMdb,
-+ ::rtl::OUString aTableName,
-+ AnyVector & aColumns,
-+ rtl_TextEncoding encoding)
-+{
-+ int i, j, k;
-+ MdbHandle *mdb=aMdb;
-+ MdbCatalogEntry *entry;
-+ MdbTableDef *table;
-+ MdbColumn *col;
-+ int line_break=1;
-+ int skip_sys=0;
-+ int opt;
-+ ::rtl::OString sTemp;
-+
-+ ::rtl::OUString aColumnName;
-+ ::rtl::OString sTableNameTemp=
-+ ::rtl::OUStringToOString(aTableName, RTL_TEXTENCODING_UTF8);
-+ if (sTableNameTemp.getLength()==0) return sal_False;
-+
-+ if (!mdb) {
-+ fprintf(stderr,"Couldn't open database.\n");
-+ return sal_False;
-+ }
-+
-+
-+ /* read the catalog */
-+ mdb_read_catalog (mdb, MDB_TABLE);
-+
-+ /* loop over each entry in the catalog */
-+ for (i=0; i < mdb->num_catalog; i++)
-+ {
-+ entry = (MdbCatalogEntry*) g_ptr_array_index (mdb->catalog, i);
-+ /* if it's a table */
-+ if (entry->object_type == MDB_TABLE)
-+ {
-+ /* is wanted table */
-+ if (!strcmp (entry->object_name,sTableNameTemp.getStr()))
-+ {
-+ table = mdb_read_table (entry);
-+
-+ /* get the columns */
-+ mdb_read_columns (table);
-+ Sequence< Any > aRow( 18 );
-+
-+ /* loop over the columns, dumping the names and types */
-+
-+ for (k = 0; k < table->num_cols; k++)
-+ {
-+ col = (MdbColumn*) g_ptr_array_index (table->columns, k);
-+ // Catalog
-+ aRow[0] <<= ::rtl::OUString::createFromAscii("");
-+ // Schema
-+ aRow[1] <<= ::rtl::OUString::createFromAscii("");
-+ // TABLE_NAME
-+ sTemp = rtl::OString (entry->object_name);
-+ aRow[2] <<= rtl::OStringToOUString(sTemp, RTL_TEXTENCODING_UTF8);
-+ // COLUMN_NAME
-+ sTemp = rtl::OString (col->name);
-+ aRow[3] <<= rtl::OStringToOUString(sTemp, RTL_TEXTENCODING_UTF8);
-+ // DATA_TYPE
-+ aRow[4] <<= ::rtl::OUString::valueOf( mdb_access_types[col->col_type].value ,10);
-+ // TYPE_NAME, not used
-+ aRow[5] <<= ::rtl::OUString::createFromAscii(mdb_access_types[col->col_type].typeName);
-+ // COLUMN_SIZE
-+ aRow[6] <<= ::rtl::OUString::valueOf((long)col->col_size,10);
-+ // BUFFER_LENGTH, not used
-+ aRow[7] <<=::rtl::OUString::createFromAscii("");
-+ // DECIMAL_DIGITS.
-+ aRow[8] <<= ::rtl::OUString::createFromAscii("0");
-+ // NUM_PREC_RADIX
-+ aRow[9] <<= ::rtl::OUString::createFromAscii("10");
-+ // NULLABLE
-+ aRow[10] <<= ::rtl::OUString::createFromAscii("1");
-+ // REMARKS
-+ aRow[11] <<= ::rtl::OUString::createFromAscii("");
-+ // COULUMN_DEF, not used
-+ aRow[12] <<= ::rtl::OUString::createFromAscii("");
-+ // SQL_DATA_TYPE, not used
-+ aRow[13] <<= ::rtl::OUString::createFromAscii("");
-+ // SQL_DATETIME_SUB, not used
-+ aRow[14] <<= ::rtl::OUString::createFromAscii("");
-+ // CHAR_OCTET_LENGTH
-+ aRow[15] <<= ::rtl::OUString::valueOf((long)mdb_access_types[col->col_type].length,10);
-+ // ORDINAL_POSITION
-+ aRow[16] <<= ::rtl::OUString::valueOf((long)k,10);
-+ // IS_NULLABLE
-+ aRow[17] <<= ::rtl::OUString::createFromAscii("YES");
-+
-+ aColumns.push_back( aRow );
-+ }
-+
-+ }
-+ }
-+ }
-+
-+ return( sal_True );
-+
-+}
-+
-+sal_Bool getTypeInfos(AnyVector & aTypes)
-+{
-+ int i=0;
-+ while(mdb_access_types[i].typeName)
-+ {
-+ Sequence< Any > aRow( 18 );
-+
-+ // TYPE_NAME
-+ aRow[0] <<= ::rtl::OUString::createFromAscii(mdb_access_types[i].typeName) ;
-+ // DATA_TYPE
-+ aRow[1] <<= ::rtl::OUString::valueOf((long)mdb_access_types[i].value,10);
-+ // PRECISION
-+ aRow[2] <<= ::rtl::OUString::valueOf((long)mdb_access_types[i].length,10);
-+ // LITERAL_PREFIX
-+ aRow[3] <<= ::rtl::OUString::createFromAscii("\"");
-+ // LITERAL_SUFFIX
-+ aRow[4] <<= ::rtl::OUString::createFromAscii("\"");
-+ // CREATE_PARAMS
-+ aRow[5] <<= ::rtl::OUString::createFromAscii(mdb_access_types[i].typeName) ;
-+ // NULLABLE
-+ aRow[6] <<= ::rtl::OUString::createFromAscii("1");
-+ // CASE_SENSITIVE
-+ aRow[7] <<= ::rtl::OUString::createFromAscii("0");
-+ // SEARCHABLE. full
-+ aRow[8] <<= ::rtl::OUString::createFromAscii("3");
-+ // UNSIGNED_ATTRIBUTE
-+ aRow[9] <<= ::rtl::OUString::createFromAscii("0");
-+ // FIXED_PREC_SCALE
-+ aRow[10] <<= ::rtl::OUString::createFromAscii("1");
-+ // AUTO_INCREMENT
-+ aRow[11] <<= ::rtl::OUString::createFromAscii("0");
-+ // LOCAL_TYPE_NAME
-+ aRow[12] <<= ::rtl::OUString::createFromAscii(mdb_access_types[i].typeName) ;
-+ // MINIMUM_SCALE
-+ aRow[13] <<= ::rtl::OUString::createFromAscii("0");
-+ // MAXIMUM_SCALE
-+ aRow[14] <<= ::rtl::OUString::createFromAscii("0");
-+ // SQL_DATA_TYPE
-+ aRow[15] <<= ::rtl::OUString::createFromAscii("0");
-+ // SQL_DATETIME_SUB
-+ aRow[16] <<= ::rtl::OUString::createFromAscii("0");
-+ // NUM_PREC_RADIX
-+ aRow[17] <<= ::rtl::OUString::createFromAscii("10");
-+
-+ aTypes.push_back( aRow );
-+ i++;
-+ }
-+
-+ return( sal_True );
-+
-+}
-+
-+sal_Bool mdb_ExecuteQuery(
-+ ::MdbHandle *aMdb,
-+ const OString& aSqlStr,
-+ AnyVector & aRows,
-+ Sequence< OUString > &seqColumns )
-+{
-+ if (!aMdb) return sal_False;
-+ MdbSQL *sql=mdb_sql_init();
-+ if (!sql) return sal_False;
-+ sql->mdb=aMdb;
-+ sql->max_rows = -1;
-+
-+ char * pTempSqlStr=strdup(aSqlStr.getStr());
-+ if (!mdb_sql_run_query(sql,pTempSqlStr))
-+ {
-+ return sal_False;
-+ }
-+ free(pTempSqlStr);
-+
-+int j;
-+MdbSQLColumn *sqlcol;
-+unsigned long row_count = 0;
-+
-+ Sequence< OUString > seq( sql->num_columns );
-+ ::rtl::OString sTemp;
-+
-+ for (j=0;j<sql->num_columns;j++) {
-+ sqlcol = (MdbSQLColumn*) g_ptr_array_index(sql->columns,j);
-+ sTemp = rtl::OString (sqlcol->name);
-+ seq[j] = rtl::OStringToOUString(sTemp, RTL_TEXTENCODING_UTF8);
-+ //fprintf(stdout, "%s%s", sqlcol->name, "|");
-+ }
-+ //fprintf(stdout,"\n");
-+
-+ seqColumns = seq;
-+
-+
-+ while((sql->max_rows == -1 || row_count < sql->max_rows)
-+ && mdb_fetch_row(sql->cur_table))
-+ {
-+ Sequence< Any > row( sql->num_columns );
-+ for (j=0;j<sql->num_columns;j++) {
-+ sqlcol = (MdbSQLColumn*) g_ptr_array_index(sql->columns,j);
-+ sTemp = rtl::OString (sql->bound_values[j]);
-+ row[j] <<= rtl::OStringToOUString(sTemp, RTL_TEXTENCODING_UTF8);
-+ //fprintf(stdout, "%s%s", sql->bound_values[j], "|");
-+ }
-+ //fprintf(stdout,"\n");
-+ aRows.push_back(row);
-+ }
-+ mdb_sql_reset(sql);
-+ return sal_True;
-+}
-+
diff --git a/patches/src680/connectivity-source-drivers-mdb-mdb-wrapper-hxx.diff b/patches/src680/connectivity-source-drivers-mdb-mdb-wrapper-hxx.diff
deleted file mode 100644
index 7be05abe1..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-mdb-wrapper-hxx.diff
+++ /dev/null
@@ -1,91 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/mdb_wrapper.hxx 2005-07-29 14:23:39.000000000 +0530
-@@ -0,0 +1,88 @@
-+#ifndef _MDB_WRAPPER_HXX_
-+#define _MDB_WRAPPER_HXX_
-+
-+#include <hash_map>
-+
-+#ifndef _CONNECTIVITY_FDATABASEMETADATARESULTSET_HXX_
-+#include <FDatabaseMetaDataResultSet.hxx>
-+#endif
-+
-+#ifndef _COMPHELPER_PROPERTY_ARRAY_HELPER_HXX_
-+#include <comphelper/proparrhlp.hxx>
-+#endif
-+
-+#ifndef _COMPHELPER_PROPERTYCONTAINER_HXX_
-+#include <comphelper/propertycontainer.hxx>
-+#endif
-+
-+#include <com/sun/star/lang/XInitialization.hpp>
-+
-+//#include <rtl/ref.hxx>
-+//#include <rtl/byteseq.hxx>
-+
-+#include<com/sun/star/sdbc/TransactionIsolation.hpp>
-+#include<com/sun/star/sdbc/ResultSetType.hpp>
-+#include<com/sun/star/sdbc/XPreparedStatement.hpp>
-+#include<com/sun/star/sdbc/XParameters.hpp>
-+#include<com/sun/star/sdbc/DataType.hpp>
-+#include<com/sun/star/sdbc/ColumnValue.hpp>
-+
-+using ::osl::MutexGuard;
-+
-+using ::rtl::OUString;
-+using ::rtl::OString;
-+
-+using com::sun::star::sdbc::SQLException;
-+using com::sun::star::sdbc::XStatement;
-+using com::sun::star::sdbc::XResultSet;
-+using com::sun::star::sdbc::XRow;
-+using com::sun::star::sdbc::XCloseable;
-+using com::sun::star::sdbc::XParameters;
-+using com::sun::star::sdbc::XPreparedStatement;
-+
-+using com::sun::star::uno::RuntimeException;
-+using com::sun::star::uno::Sequence;
-+
-+using com::sun::star::uno::Reference;
-+using com::sun::star::uno::Sequence;
-+using com::sun::star::uno::Any;
-+using com::sun::star::uno::makeAny;
-+using com::sun::star::uno::UNO_QUERY;
-+
-+#include "mdb_allocator.hxx"
-+using namespace mdb_sdbc_driver;
-+
-+typedef std::vector< Sequence< Any >, Allocator< Sequence< Any > > > AnyVector;
-+
-+
-+extern "C"
-+{
-+
-+#ifdef SYSTEM_MDBTOOLS
-+#include <mdbsql.h>
-+//#include <mdbtools.h>
-+#else
-+#include <mdbtools/mdbsql.h>
-+//#include <mdbtools/mdbtools.h>
-+#endif
-+}
-+
-+::MdbHandle * OpenMDB(char * sFileName);
-+void CloseMDB(::MdbHandle * mdb);
-+
-+sal_Bool getTableStrings( ::MdbHandle *aMdb,
-+ ::std::vector< ::rtl::OUString >& _rStrings,
-+ rtl_TextEncoding encoding,
-+ sal_Bool forceLoad = sal_False );
-+
-+sal_Bool getColumnStrings( ::MdbHandle *aMdb,
-+ ::rtl::OUString aTableName,
-+ AnyVector & aColumns,
-+ rtl_TextEncoding encoding);
-+sal_Bool getTypeInfos(AnyVector & aTypes);
-+sal_Bool mdb_ExecuteQuery(::MdbHandle *aMdb,
-+ const ::rtl::OString& aSqlStr,
-+ AnyVector & aRows,
-+ Sequence< OUString > &seqColumns );
-+
-+#endif //_MDB_WRAPPER_HXX_
diff --git a/patches/src680/connectivity-source-drivers-mdb-mdb-xml.diff b/patches/src680/connectivity-source-drivers-mdb-mdb-xml.diff
deleted file mode 100644
index eaaa13df1..000000000
--- a/patches/src680/connectivity-source-drivers-mdb-mdb-xml.diff
+++ /dev/null
@@ -1,36 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ connectivity/source/drivers/mdb/mdb.xml 2005-06-29 11:18:53.000000000 +0530
-@@ -0,0 +1,33 @@
-+<?xml version="1.0" encoding="UTF-8"?>
-+<!DOCTYPE module-description PUBLIC "-//W3C//DTD HTML 3.2//EN" "module-description.dtd">
-+<module-description>
-+ <module-name>mdb</module-name>
-+ <component-description>
-+ <author>Wind Li, Alexandre Horst, Luciano Wolf</author>
-+ <name>org.openoffice.comp.connectivity.mdb.Driver</name>
-+ <description>This library implements the database driver for mdb file format using mdbtools library.
-+</description>
-+ <loader-name>com.sun.star.loader.SharedLibrary</loader-name>
-+ <language>c++</language>
-+ <status value="final"/>
-+ <supported-service>com.sun.star.sdbc.Connection</supported-service>
-+ <supported-service>com.sun.star.sdbc.Driver</supported-service>
-+ <service-dependency> ... </service-dependency>
-+ </component-description>
-+ <project-build-dependency>cppuhelper</project-build-dependency>
-+ <project-build-dependency>cppu</project-build-dependency>
-+ <project-build-dependency>sal</project-build-dependency>
-+ <project-build-dependency>vos</project-build-dependency>
-+ <runtime-module-dependency>file</runtime-module-dependency>
-+ <runtime-module-dependency>cppuhelper</runtime-module-dependency>
-+ <runtime-module-dependency>cppu</runtime-module-dependency>
-+ <runtime-module-dependency>sal</runtime-module-dependency>
-+ <runtime-module-dependency>vos</runtime-module-dependency>
-+ <runtime-module-dependency>osl</runtime-module-dependency>
-+ <runtime-module-dependency>svtools-light1</runtime-module-dependency>
-+ <runtime-module-dependency>svtools</runtime-module-dependency>
-+ <runtime-module-dependency>ucbhelper</runtime-module-dependency>
-+ <runtime-module-dependency>dbtools</runtime-module-dependency>
-+ <runtime-module-dependency>unotools</runtime-module-dependency>
-+ <runtime-module-dependency>comphelper</runtime-module-dependency>
-+</module-description>
diff --git a/patches/src680/context-autocomplete.diff b/patches/src680/context-autocomplete.diff
deleted file mode 100644
index fc852ed0c..000000000
--- a/patches/src680/context-autocomplete.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- sw/source/ui/docvw/edtwin.cxx.bakj 2005-08-10 09:35:53.000000000 +0530
-+++ sw/source/ui/docvw/edtwin.cxx 2005-08-11 11:05:38.000000000 +0530
-@@ -5209,7 +5209,13 @@
- if( rS.Len() > rWord.Len() )
- {
- String* pNew = new String( rS );
-- if( !aArr.Insert( pNew ) )
-+ ByteString bStr(::rtl::OUStringToOString (rWord, RTL_TEXTENCODING_UTF8));
-+ if (bStr.IsLowerAscii())
-+ pNew->ToLowerAscii();
-+ else if (bStr.IsUpperAscii())
-+ pNew->ToUpperAscii();
-+
-+ if( !aArr.Insert(pNew ) )
- delete pNew;
- }
- ++nStt;
diff --git a/patches/src680/corporate-dictionary.diff b/patches/src680/corporate-dictionary.diff
deleted file mode 100644
index 101febefe..000000000
--- a/patches/src680/corporate-dictionary.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- officecfg/registry/schema/org/openoffice/Office/Linguistic.xcs 2005-04-04 18:09:25.000000000 +0530
-+++ officecfg/registry/schema/org/openoffice/Office/Linguistic.xcs 2005-08-04 14:17:21.066786557 +0530
-@@ -144,7 +144,7 @@
- <desc>Specifies the custom dictionaries to be used. The Ignore list (IgnoreAllList (All)) is administered in the RAM only for the current spellcheck.</desc>
- <label>Custom dictionaries</label>
- </info>
-- <value oor:separator=";">IgnoreAllList;soffice.dic;standard.dic;sun.dic</value>
-+ <value oor:separator=";">IgnoreAllList;soffice.dic;standard.dic;sun.dic;corporate.dic</value>
- </prop>
- <prop oor:name="IsUseDictionaryList" oor:type="xs:boolean">
- <!-- OldLocation: NEW -->
diff --git a/patches/src680/crash-sd-spellcheck.diff b/patches/src680/crash-sd-spellcheck.diff
deleted file mode 100644
index ad661a891..000000000
--- a/patches/src680/crash-sd-spellcheck.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- svx/source/dialog/splwrap.cxx
-+++ svx/source/dialog/splwrap.cxx
-@@ -125,8 +125,12 @@
-
- #include "dialogs.hrc"
-
--#define WAIT_ON() pWin->EnterWait()
--#define WAIT_OFF() pWin->LeaveWait()
-+//#define WAIT_ON() pWin->EnterWait()
-+//#define WAIT_OFF() pWin->LeaveWait()
-+
-+#define WAIT_ON() if(pWin != NULL) { pWin->EnterWait(); }
-+
-+#define WAIT_OFF() if(pWin != NULL) { pWin->LeaveWait(); }
-
- using namespace ::com::sun::star;
- using namespace ::com::sun::star::uno;
diff --git a/patches/src680/cws-fakebold.diff b/patches/src680/cws-fakebold.diff
deleted file mode 100644
index f2d4a39b4..000000000
--- a/patches/src680/cws-fakebold.diff
+++ /dev/null
@@ -1,335 +0,0 @@
-Index: vcl/source/glyphs/gcach_ftyp.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/glyphs/gcach_ftyp.cxx,v
-retrieving revision 1.115
-retrieving revision 1.115.46.1
-diff -u -p -u -p -r1.115 -r1.115.46.1
---- vcl/source/glyphs/gcach_ftyp.cxx 9 Sep 2005 12:13:09 -0000 1.115
-+++ vcl/source/glyphs/gcach_ftyp.cxx 11 Oct 2005 14:22:22 -0000 1.115.46.1
-@@ -108,6 +108,29 @@
-
- // -----------------------------------------------------------------------
-
-+// the gamma table makes artificial bold look better for CJK glyphs
-+static unsigned char aGammaTable[257];
-+
-+static void InitGammaTable()
-+{
-+ static const int M_MAX = 255;
-+ static const int M_X = 128;
-+ static const int M_Y = 208;
-+
-+ unsigned int x, a;
-+ for( x = 0; x < 256; x++)
-+ {
-+ if ( x <= M_X )
-+ a = ( x * M_Y + M_X / 2) / M_X;
-+ else
-+ a = M_Y + ( ( x - M_X ) * ( M_MAX - M_Y ) +
-+ ( M_MAX - M_X ) / 2 ) / ( M_MAX - M_X );
-+
-+ aGammaTable[x] = (unsigned char)a;
-+ }
-+}
-+// -----------------------------------------------------------------------
-+
- static FT_Library aLibFT = 0;
-
- // #110607# enable linking with old FT versions
-@@ -465,6 +488,8 @@ FreetypeManager::FreetypeManager()
- pEnv = ::getenv( "SAL_AUTOHINTING_PRIORITY" );
- if( pEnv )
- nPrioAutoHint = pEnv[0] - '0';
-+
-+ InitGammaTable();
- }
-
- // -----------------------------------------------------------------------
-@@ -782,6 +807,26 @@ FreetypeServerFont::FreetypeServerFont(
- // TODO: query GASP table for load flags
- mnLoadFlags = FT_LOAD_DEFAULT;
-
-+ mbArtItalic = (rFSD.meItalic != ITALIC_NONE && rFSD.mpFontData->GetSlant() == ITALIC_NONE);
-+ mbArtBold = (rFSD.meWeight > WEIGHT_MEDIUM && rFSD.mpFontData->GetWeight() <= WEIGHT_MEDIUM);
-+
-+ static const int TT_CODEPAGE_RANGE_874 = (1L << 16); // Thai
-+ static const int TT_CODEPAGE_RANGE_932 = (1L << 17); // JIS/Japan
-+ static const int TT_CODEPAGE_RANGE_936 = (1L << 18); // Chinese: Simplified
-+ static const int TT_CODEPAGE_RANGE_949 = (1L << 19); // Korean Wansung
-+ static const int TT_CODEPAGE_RANGE_950 = (1L << 20); // Chinese: Traditional
-+ static const int TT_CODEPAGE_RANGE_1361 = (1L << 21); // Korean Johab
-+ static const int TT_CODEPAGE_RANGES1_CJKT = 0x3F0000; // all of the above
-+ const TT_OS2* pOs2 = (const TT_OS2*)FT_Get_Sfnt_Table( maFaceFT, ft_sfnt_os2 );
-+ if ((pOs2) && (pOs2->ulCodePageRange1 & TT_CODEPAGE_RANGES1_CJKT )
-+ && rFSD.mnHeight < 20)
-+ mbUseGamma = true;
-+ else
-+ mbUseGamma = false;
-+
-+ if (mbUseGamma)
-+ mnLoadFlags |= FT_LOAD_FORCE_AUTOHINT;
-+
- if( (mnSin != 0) && (mnCos != 0) ) // hinting for 0/90/180/270 degrees only
- mnLoadFlags |= FT_LOAD_NO_HINTING;
- mnLoadFlags |= FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH; //#88334#
-@@ -1092,7 +1137,7 @@ int FreetypeServerFont::FixupGlyphIndex(
-
- #if !defined(TT_CONFIG_OPTION_BYTECODE_INTERPRETER)
- // #95556# autohinting not yet optimized for non-western glyph styles
-- if( !(mnLoadFlags & FT_LOAD_NO_HINTING)
-+ if( !(mnLoadFlags & (FT_LOAD_NO_HINTING | FT_LOAD_FORCE_AUTOHINT) )
- && ( (aChar >= 0x0600 && aChar < 0x1E00) // south-east asian + arabic
- ||(aChar >= 0x2900 && aChar < 0xD800) // CJKV
- ||(aChar >= 0xF800) ) ) // presentation + symbols
-@@ -1126,8 +1171,10 @@ void FreetypeServerFont::InitGlyphData(
- SplitGlyphFlags( *this, nGlyphIndex, nGlyphFlags );
-
- int nLoadFlags = mnLoadFlags;
-- if( nGlyphFlags & GF_UNHINTED )
-- nLoadFlags |= FT_LOAD_NO_HINTING;
-+
-+ // Add by Firefly(firefly@firefly.idv.tw)
-+// if (mbArtItalic)
-+// nLoadFlags |= FT_LOAD_NO_BITMAP;
-
- FT_Error rc = -1;
- #if (FTVERSION <= 2008)
-@@ -1156,6 +1203,7 @@ void FreetypeServerFont::InitGlyphData(
- }
-
- int nCharWidth = maFaceFT->glyph->metrics.horiAdvance;
-+
- if( nGlyphFlags & GF_ROTMASK ) { // for bVertical rotated glyphs
- const FT_Size_Metrics& rMetrics = maFaceFT->size->metrics;
- #if (FTVERSION < 2000)
-@@ -1178,6 +1226,7 @@ void FreetypeServerFont::InitGlyphData(
- {
- int t=aBbox.yMin; aBbox.yMin=aBbox.yMax, aBbox.yMax=t;
- }
-+
- rGD.SetOffset( aBbox.xMin, -aBbox.yMax );
- rGD.SetSize( Size( (aBbox.xMax-aBbox.xMin+1), (aBbox.yMax-aBbox.yMin) ) );
-
-@@ -1207,6 +1256,10 @@ bool FreetypeServerFont::GetGlyphBitmap1
-
- FT_Int nLoadFlags = mnLoadFlags;
-
-+ // Add by Firefly(firefly@firefly.idv.tw)
-+ if (mbArtItalic)
-+ nLoadFlags |= FT_LOAD_NO_BITMAP;
-+
- #if (FTVERSION >= 2002)
- // for 0/90/180/270 degree fonts enable autohinting even if not advisable
- // non-hinted and non-antialiased bitmaps just look too ugly
-@@ -1242,6 +1295,17 @@ bool FreetypeServerFont::GetGlyphBitmap1
-
- int nAngle = ApplyGlyphTransform( nGlyphFlags, pGlyphFT, true );
-
-+ // Add by Firefly(firefly@firefly.idv.tw)
-+ // ¼ÒÀÀ±×Åé
-+ if (mbArtItalic)
-+ {
-+ FT_Matrix matrix;
-+ matrix.xx = matrix.yy = 0x10000L;
-+ matrix.xy = 0x6000L;
-+ matrix.yx = 0;
-+ FT_Glyph_Transform( pGlyphFT, &matrix, NULL );
-+ }
-+
- if( pGlyphFT->format != ft_glyph_format_bitmap )
- {
- if( pGlyphFT->format == ft_glyph_format_outline )
-@@ -1263,9 +1327,18 @@ bool FreetypeServerFont::GetGlyphBitmap1
-
- const FT_Bitmap& rBitmapFT = rBmpGlyphFT->bitmap;
- rRawBitmap.mnHeight = rBitmapFT.rows;
-- rRawBitmap.mnWidth = rBitmapFT.width;
-- rRawBitmap.mnScanlineSize = rBitmapFT.pitch;
- rRawBitmap.mnBitCount = 1;
-+ if( mbArtBold )
-+ {
-+ rRawBitmap.mnWidth = rBitmapFT.width + 1;
-+ int nLineBytes = (rRawBitmap.mnWidth + 7) >> 3;
-+ rRawBitmap.mnScanlineSize = (nLineBytes > rBitmapFT.pitch) ? nLineBytes : rBitmapFT.pitch;
-+ }
-+ else
-+ {
-+ rRawBitmap.mnWidth = rBitmapFT.width;
-+ rRawBitmap.mnScanlineSize = rBitmapFT.pitch;
-+ }
-
- const ULONG nNeededSize = rRawBitmap.mnScanlineSize * rRawBitmap.mnHeight;
-
-@@ -1276,7 +1349,35 @@ bool FreetypeServerFont::GetGlyphBitmap1
- rRawBitmap.mpBits = new unsigned char[ rRawBitmap.mnAllocated ];
- }
-
-- memcpy( rRawBitmap.mpBits, rBitmapFT.buffer, nNeededSize );
-+ if( !mbArtBold )
-+ {
-+ memcpy( rRawBitmap.mpBits, rBitmapFT.buffer, nNeededSize );
-+ }
-+ else
-+ {
-+ memset( rRawBitmap.mpBits, 0, nNeededSize );
-+ const unsigned char* pSrcLine = rBitmapFT.buffer;
-+ unsigned char* pDstLine = rRawBitmap.mpBits;
-+ for( int h = rRawBitmap.mnHeight; --h >= 0; )
-+ {
-+ memcpy( pDstLine, pSrcLine, rBitmapFT.pitch );
-+ pDstLine += rRawBitmap.mnScanlineSize;
-+ pSrcLine += rBitmapFT.pitch;
-+ }
-+
-+ unsigned char* p = rRawBitmap.mpBits;
-+ for( int y=0; y < rRawBitmap.mnHeight; y++ )
-+ {
-+ unsigned char nLastByte = 0;
-+ for( int x=0; x < rRawBitmap.mnScanlineSize; x++ )
-+ {
-+ unsigned char nTmp = p[x] << 7;
-+ p[x] |= (p[x] >> 1) | nLastByte;
-+ nLastByte = nTmp;
-+ }
-+ p += rRawBitmap.mnScanlineSize;
-+ }
-+ }
-
- FT_Done_Glyph( pGlyphFT );
-
-@@ -1306,6 +1407,10 @@ bool FreetypeServerFont::GetGlyphBitmap8
-
- FT_Int nLoadFlags = mnLoadFlags;
-
-+ // Add by Firefly(firefly@firefly.idv.tw)
-+ if (mbArtItalic)
-+ nLoadFlags |= FT_LOAD_NO_BITMAP;
-+
- #if (FTVERSION <= 2004) && !defined(TT_CONFIG_OPTION_BYTECODE_INTERPRETER)
- // autohinting in FT<=2.0.4 makes antialiased glyphs look worse
- nLoadFlags |= FT_LOAD_NO_HINTING;
-@@ -1343,6 +1448,15 @@ bool FreetypeServerFont::GetGlyphBitmap8
-
- int nAngle = ApplyGlyphTransform( nGlyphFlags, pGlyphFT, true );
-
-+ if( mbArtItalic )
-+ {
-+ FT_Matrix matrix;
-+ matrix.xx = matrix.yy = 0x10000L;
-+ matrix.xy = 0x6000L;
-+ matrix.yx = 0;
-+ FT_Glyph_Transform( pGlyphFT, &matrix, NULL );
-+ }
-+
- if( pGlyphFT->format == ft_glyph_format_outline )
- ((FT_OutlineGlyph)pGlyphFT)->outline.flags |= ft_outline_high_precision;
-
-@@ -1361,8 +1475,14 @@ bool FreetypeServerFont::GetGlyphBitmap8
- const FT_Bitmap& rBitmapFT = rBmpGlyphFT->bitmap;
- rRawBitmap.mnHeight = rBitmapFT.rows;
- rRawBitmap.mnWidth = rBitmapFT.width;
-- rRawBitmap.mnScanlineSize = ((bEmbedded?rBitmapFT.width:rBitmapFT.pitch) + 3) & -4;
- rRawBitmap.mnBitCount = 8;
-+ rRawBitmap.mnScanlineSize = bEmbedded ? rBitmapFT.width : rBitmapFT.pitch;
-+ if( mbArtBold )
-+ {
-+ ++rRawBitmap.mnWidth;
-+ ++rRawBitmap.mnScanlineSize;
-+ }
-+ rRawBitmap.mnScanlineSize = (rRawBitmap.mnScanlineSize + 3) & -4;
-
- const ULONG nNeededSize = rRawBitmap.mnScanlineSize * rRawBitmap.mnHeight;
- if( rRawBitmap.mnAllocated < nNeededSize )
-@@ -1400,6 +1520,36 @@ bool FreetypeServerFont::GetGlyphBitmap8
- }
- }
-
-+ if( mbArtBold )
-+ {
-+ // overlay with glyph image shifted by one left pixel
-+ unsigned char* p = rRawBitmap.mpBits;
-+ for( int y=0; y < rRawBitmap.mnHeight; y++ )
-+ {
-+ unsigned char nLastByte = 0;
-+ for( int x=0; x < rRawBitmap.mnWidth; x++ )
-+ {
-+ unsigned char nTmp = p[x];
-+ p[x] |= p[x] | nLastByte;
-+ nLastByte = nTmp;
-+ }
-+ p += rRawBitmap.mnScanlineSize;
-+ }
-+ }
-+
-+ if( !bEmbedded && mbUseGamma )
-+ {
-+ unsigned char* p = rRawBitmap.mpBits;
-+ for( int y=0; y < rRawBitmap.mnHeight; y++ )
-+ {
-+ for( int x=0; x < rRawBitmap.mnWidth; x++ )
-+ {
-+ p[x] = aGammaTable[ p[x] ];
-+ }
-+ p += rRawBitmap.mnScanlineSize;
-+ }
-+ }
-+
- FT_Done_Glyph( pGlyphFT );
-
- // special case for 0/90/180/270 degree orientation
-@@ -1942,7 +2092,7 @@ bool FreetypeServerFont::GetGlyphOutline
- int nGlyphFlags;
- SplitGlyphFlags( *this, nGlyphIndex, nGlyphFlags );
-
-- FT_Int nLoadFlags = FT_LOAD_NO_HINTING | FT_LOAD_NO_BITMAP;
-+ FT_Int nLoadFlags = FT_LOAD_DEFAULT | FT_LOAD_TARGET_LIGHT;
- FT_Error rc = FT_Load_Glyph( maFaceFT, nGlyphIndex, nLoadFlags );
- if( rc != FT_Err_Ok )
- return false;
-Index: vcl/source/glyphs/gcach_ftyp.hxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/glyphs/gcach_ftyp.hxx,v
-retrieving revision 1.31
-retrieving revision 1.31.48.1
-diff -u -p -u -p -r1.31 -r1.31.48.1
---- vcl/source/glyphs/gcach_ftyp.hxx 9 Sep 2005 12:13:26 -0000 1.31
-+++ vcl/source/glyphs/gcach_ftyp.hxx 11 Oct 2005 14:22:27 -0000 1.31.48.1
-@@ -213,6 +213,10 @@ private:
- FT_FaceRec_* maFaceFT;
- FT_SizeRec_* maSizeFT;
-
-+ bool mbArtItalic;
-+ bool mbArtBold;
-+ bool mbUseGamma;
-+
- typedef ::std::hash_map<int,int> GlyphSubstitution;
- GlyphSubstitution maGlyphSubstitution;
- rtl_UnicodeToTextConverter maRecodeConverter;
-Index: vcl/source/glyphs/glyphcache.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/glyphs/glyphcache.cxx,v
-retrieving revision 1.30
-retrieving revision 1.30.46.1
-diff -u -p -u -p -r1.30 -r1.30.46.1
---- vcl/source/glyphs/glyphcache.cxx 9 Sep 2005 12:14:52 -0000 1.30
-+++ vcl/source/glyphs/glyphcache.cxx 11 Oct 2005 14:22:29 -0000 1.30.46.1
-@@ -89,6 +89,8 @@ size_t GlyphCache::IFSD_Hash::operator()
- nHash += rFontSelData.mnHeight;
- nHash += rFontSelData.mnOrientation;
- nHash += rFontSelData.mbVertical;
-+ nHash += rFontSelData.meItalic;
-+ nHash += rFontSelData.meWeight;
- return nHash;
- }
-
-@@ -107,6 +109,10 @@ bool GlyphCache::IFSD_Equal::operator()(
- || (rA.mbNonAntialiased != rB.mbNonAntialiased) )
- return false;
-
-+ if( (rA.meItalic != rB.meItalic)
-+ || (rA.meWeight != rB.meWeight) )
-+ return false;
-+
- if( (rA.mnWidth != rB.mnWidth)
- && ((rA.mnHeight != rB.mnWidth) || (rA.mnWidth != 0)) )
- return false;
diff --git a/patches/src680/cws-fwk28.diff b/patches/src680/cws-fwk28.diff
deleted file mode 100644
index bb5113555..000000000
--- a/patches/src680/cws-fwk28.diff
+++ /dev/null
@@ -1,43 +0,0 @@
-Index: framework/inc/interaction/preventduplicateinteraction.hxx
-===================================================================
-RCS file: /cvs/framework/framework/inc/interaction/preventduplicateinteraction.hxx,v
-retrieving revision 1.2
-retrieving revision 1.2.12.1
-diff -u -p -r1.2 -r1.2.12.1
---- framework/inc/interaction/preventduplicateinteraction.hxx 11 Nov 2005 12:03:33 -0000 1.2
-+++ framework/inc/interaction/preventduplicateinteraction.hxx 30 Nov 2005 10:19:25 -0000 1.2.12.1
-@@ -122,14 +122,14 @@ namespace framework{
- On the other side there exists some interactions, which allow a retry.
- So this helper allow to set a list of interactions combined with a retry value.
- */
--struct ThreadHelpBase
-+struct ThreadHelpBase2
- {
- public:
- mutable ::osl::Mutex m_aLock;
- };
-
- class PreventDuplicateInteraction : public ::cppu::WeakImplHelper1< css::task::XInteractionHandler >
-- , private ThreadHelpBase
-+ , private ThreadHelpBase2
- {
- //_____________________________________
- // structs, types etcp.
-Index: framework/source/interaction/preventduplicateinteraction.cxx
-===================================================================
-RCS file: /cvs/framework/framework/source/interaction/preventduplicateinteraction.cxx,v
-retrieving revision 1.2
-retrieving revision 1.2.12.1
-diff -u -p -r1.2 -r1.2.12.1
---- framework/source/interaction/preventduplicateinteraction.cxx 11 Nov 2005 12:05:36 -0000 1.2
-+++ framework/source/interaction/preventduplicateinteraction.cxx 30 Nov 2005 10:19:40 -0000 1.2.12.1
-@@ -102,7 +102,8 @@ namespace css = ::com::sun::star;
- //_________________________________________________________________________________________________________________
-
- PreventDuplicateInteraction::PreventDuplicateInteraction(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR)
-- : m_xSMGR(xSMGR)
-+ : ThreadHelpBase2()
-+ , m_xSMGR(xSMGR)
- {
- }
-
diff --git a/patches/src680/cws-i18nshrink.diff b/patches/src680/cws-i18nshrink.diff
deleted file mode 100644
index 703b97f57..000000000
--- a/patches/src680/cws-i18nshrink.diff
+++ /dev/null
@@ -1,1962 +0,0 @@
-cvs diff: Diffing i18npool
-cvs diff: Diffing i18npool/inc
-Index: i18npool/inc/chaptercollator.hxx
-===================================================================
-RCS file: /cvs/l10n/i18npool/inc/chaptercollator.hxx,v
-retrieving revision 1.3
-retrieving revision 1.3.20.1
-diff -u -p -r1.3 -r1.3.20.1
---- i18npool/inc/chaptercollator.hxx 7 Sep 2005 16:50:19 -0000 1.3
-+++ i18npool/inc/chaptercollator.hxx 3 Nov 2005 14:37:31 -0000 1.3.20.1
-@@ -35,6 +35,7 @@
- #ifndef _I18N_CHAPTERCOLLATOR_HXX_
- #define _I18N_CHAPTERCOLLATOR_HXX_
-
-+#include <i18npooldllapi.h>
- #include <collatorImpl.hxx>
- #include <com/sun/star/i18n/XCharacterClassification.hpp>
-
-@@ -43,7 +44,7 @@ namespace com { namespace sun { namespac
- // ----------------------------------------------------
- // class ChapterCollator
- // ----------------------------------------------------
--class ChapterCollator : public CollatorImpl
-+class I18NPOOL_DLLPUBLIC ChapterCollator : public CollatorImpl
- {
- public:
- // Constructors
-Index: i18npool/inc/collatorImpl.hxx
-===================================================================
-RCS file: /cvs/l10n/i18npool/inc/collatorImpl.hxx,v
-retrieving revision 1.6
-retrieving revision 1.6.20.1
-diff -u -p -r1.6 -r1.6.20.1
---- i18npool/inc/collatorImpl.hxx 7 Sep 2005 16:51:06 -0000 1.6
-+++ i18npool/inc/collatorImpl.hxx 3 Nov 2005 14:37:31 -0000 1.6.20.1
-@@ -35,6 +35,8 @@
- #ifndef _I18N_COLLATORIMPL_HXX_
- #define _I18N_COLLATORIMPL_HXX_
-
-+#include <i18npooldllapi.h>
-+
- #include <comphelper/processfactory.hxx>
- #include <com/sun/star/lang/XMultiServiceFactory.hpp>
- #include <com/sun/star/uno/Reference.h>
-@@ -54,7 +56,7 @@ namespace com { namespace sun { namespac
- // ----------------------------------------------------
- // class CollatorImpl
- // ----------------------------------------------------
--class CollatorImpl : public cppu::WeakImplHelper2
-+class I18NPOOL_DLLPUBLIC CollatorImpl : public cppu::WeakImplHelper2
- <
- XCollator,
- com::sun::star::lang::XServiceInfo
-Index: i18npool/inc/collator_asian.hxx
-===================================================================
-RCS file: i18npool/inc/collator_asian.hxx
-diff -N i18npool/inc/collator_asian.hxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ i18npool/inc/collator_asian.hxx 3 Nov 2005 14:37:31 -0000 1.1.2.1
-@@ -0,0 +1,31 @@
-+#ifndef _I18N_COLLATOR_ASIAN_HXX_
-+#define _I18N_COLLATOR_ASIAN_HXX_
-+
-+#include <collator_unicode.hxx>
-+
-+namespace com { namespace sun { namespace star { namespace i18n {
-+#define COLLATOR( algorithm ) \
-+class Collator_##algorithm : public Collator_Unicode {\
-+public:\
-+ Collator_##algorithm(); \
-+};
-+
-+COLLATOR( dz_charset )
-+COLLATOR( zh_pinyin )
-+COLLATOR( zh_radical )
-+COLLATOR( zh_stroke )
-+COLLATOR( zh_charset )
-+COLLATOR( zh_zhuyin )
-+COLLATOR( zh_TW_radical )
-+COLLATOR( zh_TW_stroke )
-+COLLATOR( zh_TW_charset )
-+COLLATOR( ne_charset )
-+COLLATOR( ko_charset )
-+COLLATOR( km_charset )
-+COLLATOR( ja_charset )
-+COLLATOR( ja_phonetic_alphanumeric_first )
-+COLLATOR( ja_phonetic_alphanumeric_last )
-+#undef COLLATOR
-+} } } }
-+
-+#endif /* _I18N_COLLATOR_ASIAN_HXX_ */
-Index: i18npool/inc/collator_unicode.hxx
-===================================================================
-RCS file: /cvs/l10n/i18npool/inc/collator_unicode.hxx,v
-retrieving revision 1.8
-retrieving revision 1.8.20.1
-diff -u -p -r1.8 -r1.8.20.1
---- i18npool/inc/collator_unicode.hxx 7 Sep 2005 16:51:23 -0000 1.8
-+++ i18npool/inc/collator_unicode.hxx 3 Nov 2005 14:37:31 -0000 1.8.20.1
-@@ -35,6 +35,8 @@
- #ifndef _I18N_COLLATOR_UNICODE_HXX_
- #define _I18N_COLLATOR_UNICODE_HXX_
-
-+#include <i18npooldllapi.h>
-+
- #include <com/sun/star/uno/Reference.h>
- #include <com/sun/star/i18n/XCollator.hpp>
- #include <cppuhelper/implbase1.hxx>
-@@ -46,7 +48,7 @@
-
- namespace com { namespace sun { namespace star { namespace i18n {
-
--class Collator_Unicode : public cppu::WeakImplHelper1 < XCollator >
-+class I18NPOOL_DLLPUBLIC Collator_Unicode : public cppu::WeakImplHelper1 < XCollator >
- {
- public:
- // Constructors
-@@ -86,28 +88,6 @@ private:
- RuleBasedCollator *collator;
- };
-
--#define COLLATOR( algorithm ) \
--class Collator_##algorithm : public Collator_Unicode {\
--public:\
-- Collator_##algorithm(); \
--};
--
--COLLATOR( dz_charset )
--COLLATOR( zh_pinyin )
--COLLATOR( zh_radical )
--COLLATOR( zh_stroke )
--COLLATOR( zh_charset )
--COLLATOR( zh_zhuyin )
--COLLATOR( zh_TW_radical )
--COLLATOR( zh_TW_stroke )
--COLLATOR( zh_TW_charset )
--COLLATOR( ne_charset )
--COLLATOR( ko_charset )
--COLLATOR( km_charset )
--COLLATOR( ja_charset )
--COLLATOR( ja_phonetic_alphanumeric_first )
--COLLATOR( ja_phonetic_alphanumeric_last )
--#undef COLLATOR
- } } } }
-
- #endif
-Index: i18npool/inc/i18npool.mk
-===================================================================
-RCS file: i18npool/inc/i18npool.mk
-diff -N i18npool/inc/i18npool.mk
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ i18npool/inc/i18npool.mk 3 Nov 2005 14:37:31 -0000 1.1.2.1
-@@ -0,0 +1,12 @@
-+# set default symbol visibility / scope to hidden
-+.IF "$(COMNAME)" == "gcc3"
-+.IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
-+CFLAGS += -fvisibility=hidden
-+.ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
-+.ENDIF # gcc3
-+
-+.IF "$(COMNAME)" == "sunpro5"
-+.IF "$(CCNUMVER)" >= "00050005"
-+CFLAGS += -xldscope=hidden
-+.ENDIF # 5.5
-+.ENDIF # sunpro5
-Index: i18npool/inc/i18npooldllapi.h
-===================================================================
-RCS file: i18npool/inc/i18npooldllapi.h
-diff -N i18npool/inc/i18npooldllapi.h
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ i18npool/inc/i18npooldllapi.h 3 Nov 2005 14:37:32 -0000 1.1.2.1
-@@ -0,0 +1,15 @@
-+#ifndef INCLUDED_I18NPOOLDLLAPI_H
-+#define INCLUDED_I18NPOOLDLLAPI_H
-+
-+#ifndef _SAL_TYPES_H_
-+#include "sal/types.h"
-+#endif
-+
-+#if defined(I18NPOOL_DLLIMPLEMENTATION)
-+#define I18NPOOL_DLLPUBLIC SAL_DLLPUBLIC_EXPORT
-+#else
-+#define I18NPOOL_DLLPUBLIC SAL_DLLPUBLIC_IMPORT
-+#endif
-+#define I18NPOOL_DLLPRIVATE SAL_DLLPRIVATE
-+
-+#endif /* INCLUDED_I18NPOOLDLLAPI_H */
-Index: i18npool/source/localedata/filewriter.cxx
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/localedata/filewriter.cxx,v
-retrieving revision 1.6
-diff -u -r1.6 filewriter.cxx
---- i18npool/source/localedata/filewriter.cxx 7 Sep 2005 17:19:02 -0000 1.6
-+++ i18npool/source/localedata/filewriter.cxx 16 Nov 2005 16:03:54 -0000
-@@ -72,7 +72,7 @@
-
- void OFileWriter::writeFunction(const char *func, const char *count, const char *array) const
- {
-- fprintf(m_f, "sal_Unicode ** SAL_CALL %s%s(sal_Int16& count)\n{\n", func, theLocale);
-+ fprintf(m_f, "SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL %s%s(sal_Int16& count)\n{\n", func, theLocale);
- fprintf(m_f, "\tcount = %s;\n", count);
- fprintf(m_f, "\treturn (sal_Unicode**)%s;\n}\n", array);
- }
-@@ -82,13 +82,13 @@
- OString aRefLocale( OUStringToOString(useLocale, RTL_TEXTENCODING_ASCII_US) );
- const char* locale = aRefLocale.getStr();
- fprintf(m_f, "extern sal_Unicode ** SAL_CALL %s%s(sal_Int16& count);\n", func, locale);
-- fprintf(m_f, "sal_Unicode ** SAL_CALL %s%s(sal_Int16& count)\n{\n", func, theLocale);
-+ fprintf(m_f, "SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL %s%s(sal_Int16& count)\n{\n", func, theLocale);
- fprintf(m_f, "\treturn %s%s(count);\n}\n", func, locale);
- }
-
- void OFileWriter::writeFunction(const char *func, const char *count, const char *array, const char *from, const char *to) const
- {
-- fprintf(m_f, "sal_Unicode ** SAL_CALL %s%s(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)\n{\n", func, theLocale);
-+ fprintf(m_f, "SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL %s%s(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)\n{\n", func, theLocale);
- fprintf(m_f, "\tcount = %s;\n", count);
- fprintf(m_f, "\tfrom = %s;\n", from);
- fprintf(m_f, "\tto = %s;\n", to);
-@@ -100,7 +100,7 @@
- OString aRefLocale( OUStringToOString(useLocale, RTL_TEXTENCODING_ASCII_US) );
- const char* locale = aRefLocale.getStr();
- fprintf(m_f, "extern sal_Unicode ** SAL_CALL %s%s(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to);\n", func, locale);
-- fprintf(m_f, "sal_Unicode ** SAL_CALL %s%s(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)\n{\n", func, theLocale);
-+ fprintf(m_f, "SAL_DLLPUBLIC_EXPORT sal_Unicode ** SAL_CALL %s%s(sal_Int16& count, const sal_Unicode*& from, const sal_Unicode*& to)\n{\n", func, theLocale);
- fprintf(m_f, "\tto = %s;\n", to);
- fprintf(m_f, "\tconst sal_Unicode* tmp;\n");
- fprintf(m_f, "\treturn %s%s(count, from, tmp);\n}\n", func, locale);
-@@ -108,7 +108,7 @@
-
- void OFileWriter::writeFunction2(const char *func, const char *style, const char* attr, const char *array) const
- {
-- fprintf(m_f, "const sal_Unicode *** SAL_CALL %s%s( sal_Int16& nStyles, sal_Int16& nAttributes )\n{\n", func, theLocale);
-+ fprintf(m_f, "SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL %s%s( sal_Int16& nStyles, sal_Int16& nAttributes )\n{\n", func, theLocale);
- fprintf(m_f, "\tnStyles = %s;\n", style);
- fprintf(m_f, "\tnAttributes = %s;\n", attr);
- fprintf(m_f, "\treturn %s;\n}\n", array);
-@@ -119,13 +119,13 @@
- OString aRefLocale( OUStringToOString(useLocale, RTL_TEXTENCODING_ASCII_US) );
- const char* locale = aRefLocale.getStr();
- fprintf(m_f, "extern const sal_Unicode *** SAL_CALL %s%s(sal_Int16& nStyles, sal_Int16& nAttributes);\n", func, locale);
-- fprintf(m_f, "const sal_Unicode *** SAL_CALL %s%s(sal_Int16& nStyles, sal_Int16& nAttributes)\n{\n", func, theLocale);
-+ fprintf(m_f, "SAL_DLLPUBLIC_EXPORT const sal_Unicode *** SAL_CALL %s%s(sal_Int16& nStyles, sal_Int16& nAttributes)\n{\n", func, theLocale);
- fprintf(m_f, "\treturn %s%s(nStyles, nAttributes);\n}\n", func, locale);
- }
-
- void OFileWriter::writeFunction3(const char *func, const char *style, const char* levels, const char* attr, const char *array) const
- {
-- fprintf(m_f, "const sal_Unicode **** SAL_CALL %s%s( sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes )\n{\n", func, theLocale);
-+ fprintf(m_f, "SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL %s%s( sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes )\n{\n", func, theLocale);
- fprintf(m_f, "\tnStyles = %s;\n", style);
- fprintf(m_f, "\tnLevels = %s;\n", levels);
- fprintf(m_f, "\tnAttributes = %s;\n", attr);
-@@ -137,7 +137,7 @@
- OString aRefLocale( OUStringToOString(useLocale, RTL_TEXTENCODING_ASCII_US) );
- const char* locale = aRefLocale.getStr();
- fprintf(m_f, "extern const sal_Unicode **** SAL_CALL %s%s(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes);\n", func, locale);
-- fprintf(m_f, "const sal_Unicode **** SAL_CALL %s%s(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes)\n{\n", func, theLocale);
-+ fprintf(m_f, "SAL_DLLPUBLIC_EXPORT const sal_Unicode **** SAL_CALL %s%s(sal_Int16& nStyles, sal_Int16& nLevels, sal_Int16& nAttributes)\n{\n", func, theLocale);
- fprintf(m_f, "\treturn %s%s(nStyles, nLevels, nAttributes);\n}\n", func, locale);
- }
-
-Index: i18npool/inc/localedata.hxx
-===================================================================
-RCS file: /cvs/l10n/i18npool/inc/localedata.hxx,v
-retrieving revision 1.12
-retrieving revision 1.12.20.2
-diff -u -p -r1.12 -r1.12.20.2
---- i18npool/inc/localedata.hxx 7 Sep 2005 16:54:06 -0000 1.12
-+++ i18npool/inc/localedata.hxx 3 Nov 2005 18:08:10 -0000 1.12.20.2
-@@ -35,6 +35,8 @@
- #ifndef _I18N_LOCALEDATA_HXX_
- #define _I18N_LOCALEDATA_HXX_
-
-+#include <i18npooldllapi.h>
-+
- #include <com/sun/star/lang/XMultiServiceFactory.hpp>
-
- #include <comphelper/processfactory.hxx>
-@@ -88,16 +90,14 @@
-
- namespace com { namespace sun { namespace star { namespace i18n {
-
--class LocaleData : public cppu::WeakImplHelper2
-+class I18NPOOL_DLLPUBLIC LocaleData : public cppu::WeakImplHelper2
- <
- XLocaleData,
- com::sun::star::lang::XServiceInfo
- >
- {
- public:
-- LocaleData(){
-- cachedItem = NULL;
-- }
-+ LocaleData();
- ~LocaleData();
-
- virtual LanguageCountryInfo SAL_CALL getLanguageCountryInfo( const com::sun::star::lang::Locale& rLocale ) throw(com::sun::star::uno::RuntimeException);
-Index: i18npool/inc/nativenumbersupplier.hxx
-===================================================================
-RCS file: /cvs/l10n/i18npool/inc/nativenumbersupplier.hxx,v
-retrieving revision 1.6
-retrieving revision 1.6.20.1
-diff -u -p -r1.6 -r1.6.20.1
---- i18npool/inc/nativenumbersupplier.hxx 7 Sep 2005 16:54:21 -0000 1.6
-+++ i18npool/inc/nativenumbersupplier.hxx 3 Nov 2005 17:01:12 -0000 1.6.20.1
-@@ -35,6 +35,8 @@
- #ifndef _I18N_NATIVENUMBERSUPPLIER_HXX_
- #define _I18N_NATIVENUMBERSUPPLIER_HXX_
-
-+#include <i18npooldllapi.h>
-+
- #include <com/sun/star/i18n/XNativeNumberSupplier.hpp>
- #include <com/sun/star/i18n/NativeNumberMode.hpp>
- #include <com/sun/star/i18n/NativeNumberXmlAttributes.hpp>
-@@ -46,7 +48,7 @@ namespace com { namespace sun { namespac
- // ----------------------------------------------------
- // class NativeNumberSupplier
- // ----------------------------------------------------
--class NativeNumberSupplier : public cppu::WeakImplHelper2
-+class I18NPOOL_DLLPUBLIC NativeNumberSupplier : public cppu::WeakImplHelper2
- <
- com::sun::star::i18n::XNativeNumberSupplier,
- com::sun::star::lang::XServiceInfo
-Index: i18npool/inc/transliteration_Ignore.hxx
-===================================================================
-RCS file: /cvs/l10n/i18npool/inc/transliteration_Ignore.hxx,v
-retrieving revision 1.7
-retrieving revision 1.7.20.3
-diff -u -p -r1.7 -r1.7.20.3
---- i18npool/inc/transliteration_Ignore.hxx 7 Sep 2005 16:57:47 -0000 1.7
-+++ i18npool/inc/transliteration_Ignore.hxx 3 Nov 2005 18:08:10 -0000 1.7.20.3
-@@ -35,6 +35,7 @@
- #ifndef _I18N_TRANSLITERATION_TRANSLITERATION_IGNORE_H_
- #define _I18N_TRANSLITERATION_TRANSLITERATION_IGNORE_H_
-
-+#include <i18npooldllapi.h>
- #include <transliteration_commonclass.hxx>
- #include <i18nutil/oneToOneMapping.hxx>
-
-@@ -49,7 +50,7 @@ typedef struct {
-
- namespace com { namespace sun { namespace star { namespace i18n {
-
--class transliteration_Ignore : public transliteration_commonclass
-+class I18NPOOL_DLLPUBLIC transliteration_Ignore : public transliteration_commonclass
- {
- public:
- virtual rtl::OUString SAL_CALL
-Index: i18npool/inc/transliteration_commonclass.hxx
-===================================================================
-RCS file: /cvs/l10n/i18npool/inc/transliteration_commonclass.hxx,v
-retrieving revision 1.6
-retrieving revision 1.6.20.1
-diff -u -p -r1.6 -r1.6.20.1
---- i18npool/inc/transliteration_commonclass.hxx 7 Sep 2005 16:59:23 -0000 1.6
-+++ i18npool/inc/transliteration_commonclass.hxx 3 Nov 2005 15:49:30 -0000 1.6.20.1
-@@ -35,6 +35,8 @@
- #ifndef _I18N_TRANSLITERATION_TRANSLITERATION_COMMONCLASS_H_
- #define _I18N_TRANSLITERATION_TRANSLITERATION_COMMONCLASS_H_
-
-+#include <i18npooldllapi.h>
-+
- #include <com/sun/star/i18n/XExtendedTransliteration.hpp>
- #include <com/sun/star/i18n/TransliterationType.hpp>
- #include <cppuhelper/implbase1.hxx>
-@@ -44,7 +46,7 @@
-
- namespace com { namespace sun { namespace star { namespace i18n {
-
--class transliteration_commonclass : public cppu::WeakImplHelper1< com::sun::star::i18n::XExtendedTransliteration >
-+class I18NPOOL_DLLPUBLIC transliteration_commonclass : public cppu::WeakImplHelper1< com::sun::star::i18n::XExtendedTransliteration >
- {
- public:
- transliteration_commonclass();
-cvs diff: Diffing i18npool/prj
-Index: i18npool/prj/d.lst
-===================================================================
-RCS file: /cvs/l10n/i18npool/prj/d.lst,v
-retrieving revision 1.9
-retrieving revision 1.9.102.1
-diff -u -p -r1.9 -r1.9.102.1
---- i18npool/prj/d.lst 2 Feb 2004 19:23:02 -0000 1.9
-+++ i18npool/prj/d.lst 3 Nov 2005 14:37:32 -0000 1.9.102.1
-@@ -7,9 +7,13 @@ mkdir: %_DEST%\inc%_EXT%\i18npool
- mkdir: %_DEST%\inc%_EXT%\i18npool
-
- ..\%__SRC%\bin\i18npool.uno.dll %_DEST%\bin%_EXT%\i18npool.uno.dll
--..\%__SRC%\lib\i18npool.uno.so %_DEST%\lib%_EXT%\i18npool.uno.so
--..\%__SRC%\lib\i18npool.uno.dylib %_DEST%\lib%_EXT%\i18npool.uno.dylib
-+..\%__SRC%\lib\libi18npool.uno.so %_DEST%\lib%_EXT%\libi18npool.uno.so
-+..\%__SRC%\lib\libi18npool.uno.dylib %_DEST%\lib%_EXT%\libi18npool.uno.dylib
-
-+..\%__SRC%\bin\i18npool_asian.uno.dll %_DEST%\bin%_EXT%\i18npool_asian.uno.dll
-+..\%__SRC%\lib\libi18npool_asian.uno.so %_DEST%\lib%_EXT%\libi18npool_asian.uno.so
-+..\%__SRC%\lib\libi18npool_asian.uno.dylib %_DEST%\lib%_EXT%\libi18npool_asian.uno.dylib
-+
- ..\%__SRC%\bin\i18nsearch.uno.dll %_DEST%\bin%_EXT%\i18nsearch.uno.dll
- ..\%__SRC%\lib\i18nsearch.uno.so %_DEST%\lib%_EXT%\i18nsearch.uno.so
- ..\%__SRC%\lib\i18nsearch.uno.dylib %_DEST%\lib%_EXT%\i18nsearch.uno.dylib
-cvs diff: Diffing i18npool/source
-cvs diff: Diffing i18npool/source/breakiterator
-Index: i18npool/source/breakiterator/makefile.mk
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/breakiterator/makefile.mk,v
-retrieving revision 1.8
-retrieving revision 1.8.20.1
-diff -u -p -r1.8 -r1.8.20.1
---- i18npool/source/breakiterator/makefile.mk 7 Sep 2005 17:02:10 -0000 1.8
-+++ i18npool/source/breakiterator/makefile.mk 3 Nov 2005 14:37:33 -0000 1.8.20.1
-@@ -43,6 +43,7 @@ ENABLE_EXCEPTIONS=TRUE
-
- .INCLUDE : svpre.mk
- .INCLUDE : settings.mk
-+.INCLUDE : $(PRJ)$/inc$/i18npool.mk
- .INCLUDE : sv.mk
-
- # --- Files --------------------------------------------------------
-cvs diff: Diffing i18npool/source/breakiterator/data
-Index: i18npool/source/breakiterator/data/makefile.mk
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/breakiterator/data/makefile.mk,v
-retrieving revision 1.5
-retrieving revision 1.5.20.1
-diff -u -p -r1.5 -r1.5.20.1
---- i18npool/source/breakiterator/data/makefile.mk 7 Sep 2005 17:02:56 -0000 1.5
-+++ i18npool/source/breakiterator/data/makefile.mk 3 Nov 2005 14:37:33 -0000 1.5.20.1
-@@ -40,6 +40,7 @@ LIBTARGET=NO
-
- # --- Settings -----------------------------------------------------
- .INCLUDE : settings.mk
-+.INCLUDE : $(PRJ)$/inc$/i18npool.mk
-
- # Fix heap limit problem on MSC
- .IF "$(OS)" == "WNT"
-cvs diff: Diffing i18npool/source/calendar
-Index: i18npool/source/calendar/makefile.mk
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/calendar/makefile.mk,v
-retrieving revision 1.3
-retrieving revision 1.3.20.1
-diff -u -p -r1.3 -r1.3.20.1
---- i18npool/source/calendar/makefile.mk 7 Sep 2005 17:04:30 -0000 1.3
-+++ i18npool/source/calendar/makefile.mk 3 Nov 2005 14:37:33 -0000 1.3.20.1
-@@ -45,6 +45,7 @@ ENABLE_EXCEPTIONS=TRUE
- .INCLUDE : svpre.mk
- .INCLUDE : settings.mk
- .INCLUDE : sv.mk
-+.INCLUDE : $(PRJ)$/inc$/i18npool.mk
-
- # --- Files --------------------------------------------------------
-
-cvs diff: Diffing i18npool/source/characterclassification
-Index: i18npool/source/characterclassification/makefile.mk
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/characterclassification/makefile.mk,v
-retrieving revision 1.4
-retrieving revision 1.4.20.1
-diff -u -p -r1.4 -r1.4.20.1
---- i18npool/source/characterclassification/makefile.mk 7 Sep 2005 17:05:47 -0000 1.4
-+++ i18npool/source/characterclassification/makefile.mk 3 Nov 2005 14:37:34 -0000 1.4.20.1
-@@ -45,6 +45,7 @@ ENABLE_EXCEPTIONS=TRUE
- .INCLUDE : svpre.mk
- .INCLUDE : settings.mk
- .INCLUDE : sv.mk
-+.INCLUDE : $(PRJ)$/inc$/i18npool.mk
-
- # --- Files --------------------------------------------------------
-
-cvs diff: Diffing i18npool/source/collator
-Index: i18npool/source/collator/chaptercollator.cxx
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/collator/chaptercollator.cxx,v
-retrieving revision 1.9
-retrieving revision 1.9.20.1
-diff -u -p -r1.9 -r1.9.20.1
---- i18npool/source/collator/chaptercollator.cxx 7 Sep 2005 17:06:30 -0000 1.9
-+++ i18npool/source/collator/chaptercollator.cxx 3 Nov 2005 17:25:36 -0000 1.9.20.1
-@@ -33,6 +33,8 @@
- *
- ************************************************************************/
-
-+#define I18NPOOL_DLLIMPLEMENTATION
-+
- // prevent internal compiler error with MSVC6SP3
- #include <utility>
-
-Index: i18npool/source/collator/collatorImpl.cxx
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/collator/collatorImpl.cxx,v
-retrieving revision 1.8
-retrieving revision 1.8.20.1
-diff -u -p -r1.8 -r1.8.20.1
---- i18npool/source/collator/collatorImpl.cxx 7 Sep 2005 17:06:53 -0000 1.8
-+++ i18npool/source/collator/collatorImpl.cxx 3 Nov 2005 17:25:36 -0000 1.8.20.1
-@@ -33,6 +33,8 @@
- *
- ************************************************************************/
-
-+#define I18NPOOL_DLLIMPLEMENTATION
-+
- #include <collatorImpl.hxx>
- #include <com/sun/star/i18n/CollatorOptions.hpp>
- #include <rtl/ustrbuf.hxx>
-Index: i18npool/source/collator/collator_unicode.cxx
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/collator/collator_unicode.cxx,v
-retrieving revision 1.9
-retrieving revision 1.9.12.1
-diff -u -p -r1.9 -r1.9.12.1
---- i18npool/source/collator/collator_unicode.cxx 17 Oct 2005 15:43:36 -0000 1.9
-+++ i18npool/source/collator/collator_unicode.cxx 3 Nov 2005 17:25:36 -0000 1.9.12.1
-@@ -33,6 +33,8 @@
- *
- ************************************************************************/
-
-+#define I18NPOOL_DLLIMPLEMENTATION
-+
- #include <rtl/ustrbuf.hxx>
- #include <collator_unicode.hxx>
- #include <com/sun/star/i18n/CollatorOptions.hpp>
-Index: i18npool/source/collator/gencoll_rule.cxx
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/collator/gencoll_rule.cxx,v
-retrieving revision 1.5
-retrieving revision 1.5.20.1
-diff -u -p -r1.5 -r1.5.20.1
---- i18npool/source/collator/gencoll_rule.cxx 7 Sep 2005 17:07:35 -0000 1.5
-+++ i18npool/source/collator/gencoll_rule.cxx 3 Nov 2005 14:37:34 -0000 1.5.20.1
-@@ -59,7 +59,7 @@ void data_write(char* file, char* name,
- fprintf(fp, " * All Rights Reserved.\n");
- fprintf(fp, " */\n\n");
- fprintf(fp, "/* !!!The file is generated automatically. DONOT edit the file manually!!! */\n\n");
-- fprintf(fp, "#include <collator_unicode.hxx>\n");
-+ fprintf(fp, "#include <collator_asian.hxx>\n");
- fprintf(fp, "\nnamespace com { namespace sun { namespace star { namespace i18n {\n");
-
- // generate main dict. data array
-Index: i18npool/source/collator/makefile.mk
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/collator/makefile.mk,v
-retrieving revision 1.8
-retrieving revision 1.8.20.2
-diff -u -p -r1.8 -r1.8.20.2
---- i18npool/source/collator/makefile.mk 7 Sep 2005 17:07:53 -0000 1.8
-+++ i18npool/source/collator/makefile.mk 3 Nov 2005 17:25:38 -0000 1.8.20.2
-@@ -37,6 +37,7 @@ PRJ=..$/..
-
- PRJNAME=i18npool
- TARGET=collator
-+LIBTARGET=NO
-
- ENABLE_EXCEPTIONS=TRUE
-
-@@ -45,13 +46,16 @@ ENABLE_EXCEPTIONS=TRUE
- .INCLUDE : svpre.mk
- .INCLUDE : settings.mk
- .INCLUDE : sv.mk
-+.INCLUDE : $(PRJ)$/inc$/i18npool.mk
-
- # --- Files --------------------------------------------------------
-
--SLOFILES= \
-+COMMON_OBJECTS= \
- $(SLO)$/collatorImpl.obj \
- $(SLO)$/chaptercollator.obj \
-- $(SLO)$/collator_unicode.obj \
-+ $(SLO)$/collator_unicode.obj
-+
-+ASIAN_OBJECTS= \
- $(SLO)$/collator_zh_pinyin.obj \
- $(SLO)$/collator_dz_charset.obj \
- $(SLO)$/collator_zh_radical.obj \
-@@ -68,6 +72,13 @@ SLOFILES= \
- $(SLO)$/collator_ja_phonetic_alphanumeric_first.obj \
- $(SLO)$/collator_ja_phonetic_alphanumeric_last.obj
-
-+SLOFILES= $(COMMON_OBJECTS) $(ASIAN_OBJECTS)
-+
-+LIB1TARGET= $(SLB)$/$(TARGET).lib
-+LIB1OBJFILES= $(COMMON_OBJECTS)
-+
-+LIB2TARGET= $(SLB)$/$(TARGET)_asian.lib
-+LIB2OBJFILES= $(ASIAN_OBJECTS)
-
- APP1TARGET = gencoll_rule
-
-@@ -87,6 +98,3 @@ data/%.txt : $(APP1TARGETN)
- +@echo dummy
- $(MISC)$/collator_%.cxx : data/%.txt
- $(APP1TARGETN)$ $< $@ $*
--
--
--
-cvs diff: Diffing i18npool/source/collator/data
-cvs diff: Diffing i18npool/source/defaultnumberingprovider
-Index: i18npool/source/defaultnumberingprovider/makefile.mk
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/defaultnumberingprovider/makefile.mk,v
-retrieving revision 1.3
-retrieving revision 1.3.20.1
-diff -u -p -r1.3 -r1.3.20.1
---- i18npool/source/defaultnumberingprovider/makefile.mk 7 Sep 2005 17:08:35 -0000 1.3
-+++ i18npool/source/defaultnumberingprovider/makefile.mk 3 Nov 2005 14:37:35 -0000 1.3.20.1
-@@ -45,6 +45,7 @@ ENABLE_EXCEPTIONS=TRUE
- .INCLUDE : svpre.mk
- .INCLUDE : settings.mk
- .INCLUDE : sv.mk
-+.INCLUDE : $(PRJ)$/inc$/i18npool.mk
-
- # --- Files --------------------------------------------------------
-
-cvs diff: Diffing i18npool/source/indexentry
-Index: i18npool/source/indexentry/makefile.mk
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/indexentry/makefile.mk,v
-retrieving revision 1.12
-retrieving revision 1.12.20.1
-diff -u -p -r1.12 -r1.12.20.1
---- i18npool/source/indexentry/makefile.mk 7 Sep 2005 17:12:41 -0000 1.12
-+++ i18npool/source/indexentry/makefile.mk 3 Nov 2005 14:37:35 -0000 1.12.20.1
-@@ -44,6 +44,7 @@ ENABLE_EXCEPTIONS=TRUE
- # --- Settings -----------------------------------------------------
-
- .INCLUDE : settings.mk
-+.INCLUDE : $(PRJ)$/inc$/i18npool.mk
-
-
- # --- Files --------------------------------------------------------
-cvs diff: Diffing i18npool/source/indexentry/data
-cvs diff: Diffing i18npool/source/inputchecker
-Index: i18npool/source/inputchecker/makefile.mk
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/inputchecker/makefile.mk,v
-retrieving revision 1.4
-retrieving revision 1.4.20.1
-diff -u -p -r1.4 -r1.4.20.1
---- i18npool/source/inputchecker/makefile.mk 7 Sep 2005 17:18:05 -0000 1.4
-+++ i18npool/source/inputchecker/makefile.mk 3 Nov 2005 14:37:35 -0000 1.4.20.1
-@@ -45,6 +45,7 @@ ENABLE_EXCEPTIONS=TRUE
- .INCLUDE : svpre.mk
- .INCLUDE : settings.mk
- .INCLUDE : sv.mk
-+.INCLUDE : $(PRJ)$/inc$/i18npool.mk
-
- # --- Files --------------------------------------------------------
-
-cvs diff: Diffing i18npool/source/localedata
-Index: i18npool/source/localedata/localedata.cxx
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/localedata/localedata.cxx,v
-retrieving revision 1.33
-retrieving revision 1.33.18.1
-diff -u -p -r1.33 -r1.33.18.1
---- i18npool/source/localedata/localedata.cxx 7 Sep 2005 17:19:23 -0000 1.33
-+++ i18npool/source/localedata/localedata.cxx 3 Nov 2005 18:08:11 -0000 1.33.18.1
-@@ -1201,3 +1201,8 @@ LocaleData::getSupportedServiceNames() t
- aRet[0] = OUString::createFromAscii(clocaledata);
- return aRet;
- }
-+
-+LocaleData::LocaleData()
-+{
-+ cachedItem = NULL;
-+}
-Index: i18npool/source/localedata/makefile.mk
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/localedata/makefile.mk,v
-retrieving revision 1.8
-retrieving revision 1.8.20.1
-diff -u -p -r1.8 -r1.8.20.1
---- i18npool/source/localedata/makefile.mk 7 Sep 2005 17:19:40 -0000 1.8
-+++ i18npool/source/localedata/makefile.mk 3 Nov 2005 14:37:36 -0000 1.8.20.1
-@@ -47,6 +47,7 @@ ENABLE_EXCEPTIONS=TRUE
- .INCLUDE : svpre.mk
- .INCLUDE : settings.mk
- .INCLUDE : sv.mk
-+.INCLUDE : $(PRJ)$/inc$/i18npool.mk
-
- .IF "$(OS)" == "SOLARIS"
- # the xmlparser build breaks in this header file
-@@ -66,6 +67,7 @@ CDEFS+=-D__STD_LIMITS
-
- # --- Files --------------------------------------------------------
-
-+CDEFS += -DI18NPOOL_DLLIMPLEMENTATION
- SLOFILES= $(SLO)$/localedata.obj
-
- APP1TARGET = saxparser
-cvs diff: Diffing i18npool/source/localedata/data
-Index: i18npool/source/localedata/data/makefile.mk
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/localedata/data/makefile.mk,v
-retrieving revision 1.29
-retrieving revision 1.29.18.1
-diff -u -p -r1.29 -r1.29.18.1
---- i18npool/source/localedata/data/makefile.mk 7 Sep 2005 17:20:24 -0000 1.29
-+++ i18npool/source/localedata/data/makefile.mk 3 Nov 2005 14:37:36 -0000 1.29.18.1
-@@ -47,6 +47,7 @@ debug!=
- # --- Settings -----------------------------------------------------
-
- .INCLUDE : settings.mk
-+.INCLUDE : $(PRJ)$/inc$/i18npool.mk
-
- # macro to link with localedata_en library
- .IF "$(GUI)" == "WNT"
-cvs diff: Diffing i18npool/source/nativenumber
-Index: i18npool/source/nativenumber/makefile.mk
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/nativenumber/makefile.mk,v
-retrieving revision 1.2
-retrieving revision 1.2.20.2
-diff -u -p -r1.2 -r1.2.20.2
---- i18npool/source/nativenumber/makefile.mk 7 Sep 2005 17:20:41 -0000 1.2
-+++ i18npool/source/nativenumber/makefile.mk 3 Nov 2005 17:01:13 -0000 1.2.20.2
-@@ -45,9 +45,12 @@ ENABLE_EXCEPTIONS=TRUE
- .INCLUDE : svpre.mk
- .INCLUDE : settings.mk
- .INCLUDE : sv.mk
-+.INCLUDE : $(PRJ)$/inc$/i18npool.mk
-
- # --- Files --------------------------------------------------------
-
-+CDEFS += -DI18NPOOL_DLLIMPLEMENTATION
-+
- SLOFILES= \
- $(SLO)$/nativenumbersupplier.obj \
-
-cvs diff: Diffing i18npool/source/nativenumber/data
-cvs diff: Diffing i18npool/source/numberformatcode
-Index: i18npool/source/numberformatcode/makefile.mk
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/numberformatcode/makefile.mk,v
-retrieving revision 1.3
-retrieving revision 1.3.20.1
-diff -u -p -r1.3 -r1.3.20.1
---- i18npool/source/numberformatcode/makefile.mk 7 Sep 2005 17:21:30 -0000 1.3
-+++ i18npool/source/numberformatcode/makefile.mk 3 Nov 2005 14:37:37 -0000 1.3.20.1
-@@ -45,6 +45,7 @@ ENABLE_EXCEPTIONS=TRUE
- .INCLUDE : svpre.mk
- .INCLUDE : settings.mk
- .INCLUDE : sv.mk
-+.INCLUDE : $(PRJ)$/inc$/i18npool.mk
-
- # --- Files --------------------------------------------------------
-
-cvs diff: Diffing i18npool/source/registerservices
-Index: i18npool/source/registerservices/makefile.mk
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/registerservices/makefile.mk,v
-retrieving revision 1.6
-retrieving revision 1.6.20.1
-diff -u -p -r1.6 -r1.6.20.1
---- i18npool/source/registerservices/makefile.mk 7 Sep 2005 17:22:04 -0000 1.6
-+++ i18npool/source/registerservices/makefile.mk 3 Nov 2005 14:37:37 -0000 1.6.20.1
-@@ -37,6 +37,7 @@ PRJ=..$/..
-
- PRJNAME=i18npool
- TARGET=registerservices
-+LIBTARGET=NO
-
- ENABLE_EXCEPTIONS=TRUE
-
-@@ -45,11 +46,20 @@ ENABLE_EXCEPTIONS=TRUE
- .INCLUDE : svpre.mk
- .INCLUDE : settings.mk
- .INCLUDE : sv.mk
-+.INCLUDE : $(PRJ)$/inc$/i18npool.mk
-
- # --- Files --------------------------------------------------------
-
--SLOFILES= \
-- $(SLO)$/registerservices.obj
-+COMMON_OBJECTS= $(SLO)$/registerservices.obj
-+ASIAN_OBJECTS= $(SLO)$/registerservices_asian.obj
-+
-+SLOFILES= $(COMMON_OBJECTS) $(ASIAN_OBJECTS)
-+
-+LIB1TARGET= $(SLB)$/$(TARGET).lib
-+LIB1OBJFILES= $(COMMON_OBJECTS)
-+
-+LIB2TARGET= $(SLB)$/$(TARGET)_asian.lib
-+LIB2OBJFILES= $(ASIAN_OBJECTS)
-
- # --- Targets ------------------------------------------------------
-
-Index: i18npool/source/registerservices/registerservices.cxx
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/registerservices/registerservices.cxx,v
-retrieving revision 1.38
-retrieving revision 1.38.12.4
-diff -u -p -r1.38 -r1.38.12.4
---- i18npool/source/registerservices/registerservices.cxx 17 Oct 2005 15:44:51 -0000 1.38
-+++ i18npool/source/registerservices/registerservices.cxx 4 Nov 2005 10:12:48 -0000 1.38.12.4
-@@ -33,24 +33,7 @@
- *
- ************************************************************************/
-
--#ifndef _COM_SUN_STAR_LANG_XSINGLESERVICEFACTORY_HPP_
--#include <com/sun/star/lang/XSingleServiceFactory.hpp>
--#endif
--#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
--#include <com/sun/star/lang/XMultiServiceFactory.hpp>
--#endif
--#ifndef _COM_SUN_STAR_REGISTRY_XREGISTRYKEY_HPP_
--#include <com/sun/star/registry/XRegistryKey.hpp>
--#endif
--
--#include <cppuhelper/factory.hxx>
--
--#ifndef _CPPUHELPER_WEAK_HXX_
--#include <cppuhelper/weak.hxx>
--#endif
--#ifndef _OSL_MUTEX_HXX_
--#include <osl/mutex.hxx>
--#endif
-+#include <registerservices.hxx>
-
- #include <localedata.hxx>
- #include <numberformatcode.hxx>
-@@ -58,13 +41,13 @@
- #include <defaultnumberingprovider.hxx>
- #include <servicename.hxx>
-
-+
- #define TRANSLITERATION_ALL
- #include <transliterationImpl.hxx>
- #include <transliteration_body.hxx>
- #include <transliteration_caseignore.hxx>
- #include <transliteration_Ignore.hxx>
- #include <transliteration_OneToOne.hxx>
--#include <textToPronounce_zh.hxx>
- #include <numtotext_cjk.hxx>
- #include <numtochar.hxx>
- #include <texttonum.hxx>
-@@ -82,12 +65,6 @@
- #include <breakiterator_hi.hxx>
- #include <breakiterator_unicode.hxx>
-
--#define INDEXENTRYSUPPLIER_ALL
--#include <indexentrysupplier.hxx>
--#include <indexentrysupplier_asian.hxx>
--#include <indexentrysupplier_common.hxx>
--#include <indexentrysupplier_default.hxx>
--
- #define CCLASS_ALL
- #include <characterclassificationImpl.hxx>
- #include <scripttypedetector.hxx>
-@@ -102,41 +79,6 @@
- #include <inputsequencechecker_th.hxx>
- #include <inputsequencechecker_hi.hxx>
-
--#include <textconversionImpl.hxx>
--#include <textconversion.hxx>
--
--#define IMPL_CREATEINSTANCE( ImplName ) \
-- ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > \
-- SAL_CALL ImplName##_CreateInstance( \
-- const ::com::sun::star::uno::Reference< \
-- ::com::sun::star::lang::XMultiServiceFactory >& ) \
--{ \
-- return ::com::sun::star::uno::Reference < \
-- ::com::sun::star::uno::XInterface >( ( ::cppu::OWeakObject* ) \
-- new ImplName ); \
--}
--
--#define IMPL_CREATEINSTANCE_MSF( ImplName ) \
-- ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > \
-- SAL_CALL ImplName##_CreateInstance( \
-- const ::com::sun::star::uno::Reference< \
-- ::com::sun::star::lang::XMultiServiceFactory >& rxMSF ) \
--{ \
-- return ::com::sun::star::uno::Reference < \
-- ::com::sun::star::uno::XInterface >( ( ::cppu::OWeakObject* ) \
-- new ImplName( rxMSF ) ); \
--}
--
--typedef ::com::sun::star::uno::Reference<
-- ::com::sun::star::uno::XInterface > (SAL_CALL *FN_CreateInstance)(
-- const ::com::sun::star::uno::Reference<
-- ::com::sun::star::lang::XMultiServiceFactory >& );
--
--#define IMPL_TRANSLITERATION_ITEM( implName ) \
-- { TRLT_SERVICELNAME_L10N, \
-- TRLT_IMPLNAME_PREFIX #implName, \
-- &implName##_CreateInstance }
--
- // -------------------------------------------------------------------------------------
-
- using namespace ::com::sun::star::i18n;
-@@ -145,19 +87,6 @@ IMPL_CREATEINSTANCE_MSF( NumberFormatCod
- IMPL_CREATEINSTANCE( NativeNumberSupplier )
- IMPL_CREATEINSTANCE( LocaleData )
- IMPL_CREATEINSTANCE_MSF( DefaultNumberingProvider )
--IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier )
--IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_zh_pinyin )
--IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_zh_radical )
--IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_zh_stroke )
--IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_zh_zhuyin )
--IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_zh_TW_radical )
--IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_zh_TW_stroke )
--IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_ko_dict )
--IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_ja_phonetic_alphanumeric_first_by_syllable )
--IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_ja_phonetic_alphanumeric_first_by_consonant )
--IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_ja_phonetic_alphanumeric_last_by_syllable )
--IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_ja_phonetic_alphanumeric_last_by_consonant )
--IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_Unicode )
- IMPL_CREATEINSTANCE_MSF( CalendarImpl )
- IMPL_CREATEINSTANCE( Calendar_gregorian )
- IMPL_CREATEINSTANCE( Calendar_hanja )
-@@ -176,21 +105,6 @@ IMPL_CREATEINSTANCE( BreakIterator_hi )
- IMPL_CREATEINSTANCE_MSF( ChapterCollator )
- IMPL_CREATEINSTANCE_MSF( CollatorImpl )
- IMPL_CREATEINSTANCE( Collator_Unicode )
--IMPL_CREATEINSTANCE( Collator_dz_charset )
--IMPL_CREATEINSTANCE( Collator_zh_pinyin )
--IMPL_CREATEINSTANCE( Collator_zh_radical )
--IMPL_CREATEINSTANCE( Collator_zh_stroke )
--IMPL_CREATEINSTANCE( Collator_zh_zhuyin )
--IMPL_CREATEINSTANCE( Collator_zh_TW_radical )
--IMPL_CREATEINSTANCE( Collator_zh_TW_stroke )
--IMPL_CREATEINSTANCE( Collator_ko_charset )
--IMPL_CREATEINSTANCE( Collator_zh_charset )
--IMPL_CREATEINSTANCE( Collator_ja_charset )
--IMPL_CREATEINSTANCE( Collator_ja_phonetic_alphanumeric_first )
--IMPL_CREATEINSTANCE( Collator_ja_phonetic_alphanumeric_last )
--IMPL_CREATEINSTANCE( Collator_zh_TW_charset )
--IMPL_CREATEINSTANCE( Collator_ne_charset )
--IMPL_CREATEINSTANCE( Collator_km_charset )
-
- IMPL_CREATEINSTANCE_MSF( CharacterClassificationImpl )
- IMPL_CREATEINSTANCE_MSF( cclass_Unicode )
-@@ -201,41 +115,13 @@ IMPL_CREATEINSTANCE_MSF( InputSequenceCh
- IMPL_CREATEINSTANCE( InputSequenceChecker_th )
- IMPL_CREATEINSTANCE( InputSequenceChecker_hi )
-
--IMPL_CREATEINSTANCE_MSF( TextConversionImpl )
--IMPL_CREATEINSTANCE_MSF( TextConversion_ko )
--IMPL_CREATEINSTANCE_MSF( TextConversion_zh )
--
- IMPL_CREATEINSTANCE( Transliteration_u2l )
- IMPL_CREATEINSTANCE( Transliteration_l2u )
- IMPL_CREATEINSTANCE( Transliteration_caseignore )
--IMPL_CREATEINSTANCE( hiraganaToKatakana )
--IMPL_CREATEINSTANCE( katakanaToHiragana )
--IMPL_CREATEINSTANCE( ignoreKana )
- IMPL_CREATEINSTANCE( fullwidthToHalfwidth )
- IMPL_CREATEINSTANCE( halfwidthToFullwidth )
- IMPL_CREATEINSTANCE( ignoreWidth )
-
--IMPL_CREATEINSTANCE( smallToLarge_ja_JP)
--IMPL_CREATEINSTANCE( largeToSmall_ja_JP)
--IMPL_CREATEINSTANCE( ignoreTraditionalKanji_ja_JP)
--IMPL_CREATEINSTANCE( ignoreTraditionalKana_ja_JP)
--IMPL_CREATEINSTANCE( ignoreMinusSign_ja_JP)
--IMPL_CREATEINSTANCE( ignoreIterationMark_ja_JP)
--IMPL_CREATEINSTANCE( ignoreSeparator_ja_JP)
--IMPL_CREATEINSTANCE( ignoreZiZu_ja_JP)
--IMPL_CREATEINSTANCE( ignoreBaFa_ja_JP)
--IMPL_CREATEINSTANCE( ignoreTiJi_ja_JP)
--IMPL_CREATEINSTANCE( ignoreHyuByu_ja_JP)
--IMPL_CREATEINSTANCE( ignoreSeZe_ja_JP)
--IMPL_CREATEINSTANCE( ignoreIandEfollowedByYa_ja_JP)
--IMPL_CREATEINSTANCE( ignoreKiKuFollowedBySa_ja_JP)
--IMPL_CREATEINSTANCE( ignoreSize_ja_JP)
--IMPL_CREATEINSTANCE( ignoreProlongedSoundMark_ja_JP)
--IMPL_CREATEINSTANCE( ignoreMiddleDot_ja_JP)
--IMPL_CREATEINSTANCE( ignoreSpace_ja_JP)
--
--IMPL_CREATEINSTANCE( TextToChuyin_zh_TW )
--IMPL_CREATEINSTANCE( TextToPinyin_zh_CN )
-
- IMPL_CREATEINSTANCE( NumToCharLower_zh_CN )
- IMPL_CREATEINSTANCE( NumToCharUpper_zh_CN )
-@@ -312,6 +198,28 @@ IMPL_CREATEINSTANCE( NumToTextHangulCirc
- IMPL_CREATEINSTANCE( NumToTextTianGan_zh )
- IMPL_CREATEINSTANCE( NumToTextDiZi_zh )
-
-+IMPL_CREATEINSTANCE( hiraganaToKatakana )
-+IMPL_CREATEINSTANCE( katakanaToHiragana )
-+IMPL_CREATEINSTANCE( smallToLarge_ja_JP)
-+IMPL_CREATEINSTANCE( largeToSmall_ja_JP)
-+IMPL_CREATEINSTANCE( ignoreKana )
-+IMPL_CREATEINSTANCE( ignoreTraditionalKanji_ja_JP)
-+IMPL_CREATEINSTANCE( ignoreTraditionalKana_ja_JP)
-+IMPL_CREATEINSTANCE( ignoreMinusSign_ja_JP)
-+IMPL_CREATEINSTANCE( ignoreIterationMark_ja_JP)
-+IMPL_CREATEINSTANCE( ignoreSeparator_ja_JP)
-+IMPL_CREATEINSTANCE( ignoreZiZu_ja_JP)
-+IMPL_CREATEINSTANCE( ignoreBaFa_ja_JP)
-+IMPL_CREATEINSTANCE( ignoreTiJi_ja_JP)
-+IMPL_CREATEINSTANCE( ignoreHyuByu_ja_JP)
-+IMPL_CREATEINSTANCE( ignoreSeZe_ja_JP)
-+IMPL_CREATEINSTANCE( ignoreIandEfollowedByYa_ja_JP)
-+IMPL_CREATEINSTANCE( ignoreKiKuFollowedBySa_ja_JP)
-+IMPL_CREATEINSTANCE( ignoreSize_ja_JP)
-+IMPL_CREATEINSTANCE( ignoreProlongedSoundMark_ja_JP)
-+IMPL_CREATEINSTANCE( ignoreMiddleDot_ja_JP)
-+IMPL_CREATEINSTANCE( ignoreSpace_ja_JP)
-+
- static const struct InstancesArray {
- const sal_Char* pServiceNm;
- const sal_Char* pImplementationNm;
-@@ -329,54 +237,6 @@ static const struct InstancesArray {
- { "com.sun.star.text.DefaultNumberingProvider",
- "com.sun.star.text.DefaultNumberingProvider",
- &DefaultNumberingProvider_CreateInstance },
-- { "com.sun.star.i18n.IndexEntrySupplier",
-- "com.sun.star.i18n.IndexEntrySupplier",
-- &IndexEntrySupplier_CreateInstance },
-- { "com.sun.star.i18n.IndexEntrySupplier_zh_pinyin",
-- "com.sun.star.i18n.IndexEntrySupplier_zh_pinyin",
-- &IndexEntrySupplier_zh_pinyin_CreateInstance },
-- { "com.sun.star.i18n.IndexEntrySupplier_zh_radical",
-- "com.sun.star.i18n.IndexEntrySupplier_zh_radical",
-- &IndexEntrySupplier_zh_radical_CreateInstance },
-- { "com.sun.star.i18n.IndexEntrySupplier_zh_stroke",
-- "com.sun.star.i18n.IndexEntrySupplier_zh_stroke",
-- &IndexEntrySupplier_zh_stroke_CreateInstance },
-- { "com.sun.star.i18n.IndexEntrySupplier_zh_zhuyin",
-- "com.sun.star.i18n.IndexEntrySupplier_zh_zhuyin",
-- &IndexEntrySupplier_zh_zhuyin_CreateInstance },
-- { "com.sun.star.i18n.IndexEntrySupplier_zh_TW_radical",
-- "com.sun.star.i18n.IndexEntrySupplier_zh_TW_radical",
-- &IndexEntrySupplier_zh_TW_radical_CreateInstance },
-- { "com.sun.star.i18n.IndexEntrySupplier_zh_TW_stroke",
-- "com.sun.star.i18n.IndexEntrySupplier_zh_TW_stroke",
-- &IndexEntrySupplier_zh_TW_stroke_CreateInstance },
-- { "com.sun.star.i18n.IndexEntrySupplier_ko_dict",
-- "com.sun.star.i18n.IndexEntrySupplier_ko_dict",
-- &IndexEntrySupplier_ko_dict_CreateInstance },
-- { "com.sun.star.i18n.IndexEntrySupplier_ko_charset",
-- "com.sun.star.i18n.IndexEntrySupplier_ko_charset",
-- &IndexEntrySupplier_ko_dict_CreateInstance }, // share same table with ko_dict
-- { "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first)",
-- "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first)",
-- &IndexEntrySupplier_ja_phonetic_alphanumeric_first_by_syllable_CreateInstance },
-- { "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last)",
-- "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last)",
-- &IndexEntrySupplier_ja_phonetic_alphanumeric_last_by_syllable_CreateInstance },
-- { "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first) (grouped by syllable)",
-- "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first) (grouped by syllable)",
-- &IndexEntrySupplier_ja_phonetic_alphanumeric_first_by_syllable_CreateInstance },
-- { "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first) (grouped by consonant)",
-- "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first) (grouped by consonant)",
-- &IndexEntrySupplier_ja_phonetic_alphanumeric_first_by_consonant_CreateInstance },
-- { "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last) (grouped by syllable)",
-- "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last) (grouped by syllable)",
-- &IndexEntrySupplier_ja_phonetic_alphanumeric_last_by_syllable_CreateInstance },
-- { "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last) (grouped by consonant)",
-- "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last) (grouped by consonant)",
-- &IndexEntrySupplier_ja_phonetic_alphanumeric_last_by_consonant_CreateInstance },
-- { "com.sun.star.i18n.IndexEntrySupplier_Unicode",
-- "com.sun.star.i18n.IndexEntrySupplier_Unicode",
-- &IndexEntrySupplier_Unicode_CreateInstance },
- { "com.sun.star.i18n.LocaleCalendar",
- "com.sun.star.i18n.CalendarImpl",
- &CalendarImpl_CreateInstance },
-@@ -434,45 +294,6 @@ static const struct InstancesArray {
- { "com.sun.star.i18n.Collator_Unicode",
- "com.sun.star.i18n.Collator_Unicode",
- &Collator_Unicode_CreateInstance },
-- { "com.sun.star.i18n.Collator_dz_charset",
-- "com.sun.star.i18n.Collator_dz_charset",
-- &Collator_dz_charset_CreateInstance },
-- { "com.sun.star.i18n.Collator_zh_pinyin",
-- "com.sun.star.i18n.Collator_zh_pinyin",
-- &Collator_zh_pinyin_CreateInstance },
-- { "com.sun.star.i18n.Collator_zh_radical",
-- "com.sun.star.i18n.Collator_zh_radical",
-- &Collator_zh_radical_CreateInstance },
-- { "com.sun.star.i18n.Collator_zh_stroke",
-- "com.sun.star.i18n.Collator_zh_stroke",
-- &Collator_zh_stroke_CreateInstance },
-- { "com.sun.star.i18n.Collator_zh_zhuyin",
-- "com.sun.star.i18n.Collator_zh_zhuyin",
-- &Collator_zh_zhuyin_CreateInstance },
-- { "com.sun.star.i18n.Collator_zh_TW_radical",
-- "com.sun.star.i18n.Collator_zh_TW_radical",
-- &Collator_zh_TW_radical_CreateInstance },
-- { "com.sun.star.i18n.Collator_zh_TW_stroke",
-- "com.sun.star.i18n.Collator_zh_TW_stroke",
-- &Collator_zh_TW_stroke_CreateInstance },
-- { "com.sun.star.i18n.Collator_ko_charset",
-- "com.sun.star.i18n.Collator_ko_charset",
-- &Collator_ko_charset_CreateInstance },
-- { "com.sun.star.i18n.Collator_ja_phonetic (alphanumeric first)",
-- "com.sun.star.i18n.Collator_ja_phonetic (alphanumeric first)",
-- &Collator_ja_phonetic_alphanumeric_first_CreateInstance },
-- { "com.sun.star.i18n.Collator_ja_phonetic (alphanumeric last)",
-- "com.sun.star.i18n.Collator_ja_phonetic (alphanumeric last)",
-- &Collator_ja_phonetic_alphanumeric_last_CreateInstance },
-- { "com.sun.star.i18n.Collator_ja_charset",
-- "com.sun.star.i18n.Collator_ja_charset",
-- &Collator_ja_charset_CreateInstance },
-- { "com.sun.star.i18n.Collator_zh_charset",
-- "com.sun.star.i18n.Collator_zh_charset",
-- &Collator_zh_charset_CreateInstance },
-- { "com.sun.star.i18n.Collator_zh_TW_charset",
-- "com.sun.star.i18n.Collator_zh_TW_charset",
-- &Collator_zh_TW_charset_CreateInstance },
- { "com.sun.star.i18n.ScriptTypeDetector",
- "com.sun.star.i18n.ScriptTypeDetector",
- &ScriptTypeDetector_CreateInstance },
-@@ -491,15 +312,6 @@ static const struct InstancesArray {
- { "com.sun.star.i18n.InputSequenceChecker_hi",
- "com.sun.star.i18n.InputSequenceChecker_hi",
- &InputSequenceChecker_hi_CreateInstance },
-- { "com.sun.star.i18n.TextConversion",
-- "com.sun.star.i18n.TextConversion",
-- &TextConversionImpl_CreateInstance },
-- { "com.sun.star.i18n.TextConversion_ko",
-- "com.sun.star.i18n.TextConversion_ko",
-- &TextConversion_ko_CreateInstance },
-- { "com.sun.star.i18n.TextConversion_zh",
-- "com.sun.star.i18n.TextConversion_zh",
-- &TextConversion_zh_CreateInstance },
- { TRLT_SERVICELNAME,
- TRLT_IMPLNAME ,
- &TransliterationImpl_CreateInstance },
-@@ -513,15 +325,6 @@ static const struct InstancesArray {
- TRLT_IMPLNAME_PREFIX "IGNORE_CASE",
- &Transliteration_caseignore_CreateInstance },
- { TRLT_SERVICELNAME_L10N,
-- TRLT_IMPLNAME_PREFIX "HIRAGANA_KATAKANA",
-- &hiraganaToKatakana_CreateInstance },
-- { TRLT_SERVICELNAME_L10N,
-- TRLT_IMPLNAME_PREFIX "KATAKANA_HIRAGANA",
-- &katakanaToHiragana_CreateInstance },
-- { TRLT_SERVICELNAME_L10N,
-- TRLT_IMPLNAME_PREFIX "IGNORE_KANA",
-- &ignoreKana_CreateInstance },
-- { TRLT_SERVICELNAME_L10N,
- TRLT_IMPLNAME_PREFIX "FULLWIDTH_HALFWIDTH",
- &fullwidthToHalfwidth_CreateInstance },
- { TRLT_SERVICELNAME_L10N,
-@@ -530,6 +333,16 @@ static const struct InstancesArray {
- { TRLT_SERVICELNAME_L10N,
- TRLT_IMPLNAME_PREFIX "IGNORE_WIDTH",
- &ignoreWidth_CreateInstance },
-+ { TRLT_SERVICELNAME_L10N,
-+ TRLT_IMPLNAME_PREFIX "HIRAGANA_KATAKANA",
-+ &hiraganaToKatakana_CreateInstance },
-+ { TRLT_SERVICELNAME_L10N,
-+ TRLT_IMPLNAME_PREFIX "KATAKANA_HIRAGANA",
-+ &katakanaToHiragana_CreateInstance },
-+ { TRLT_SERVICELNAME_L10N,
-+ TRLT_IMPLNAME_PREFIX "IGNORE_KANA",
-+ &ignoreKana_CreateInstance },
-+
- IMPL_TRANSLITERATION_ITEM (smallToLarge_ja_JP),
- IMPL_TRANSLITERATION_ITEM (largeToSmall_ja_JP),
- IMPL_TRANSLITERATION_ITEM (ignoreTraditionalKanji_ja_JP),
-@@ -549,8 +362,6 @@ static const struct InstancesArray {
- IMPL_TRANSLITERATION_ITEM (ignoreProlongedSoundMark_ja_JP),
- IMPL_TRANSLITERATION_ITEM (ignoreMiddleDot_ja_JP),
- IMPL_TRANSLITERATION_ITEM (ignoreSpace_ja_JP),
-- IMPL_TRANSLITERATION_ITEM (TextToPinyin_zh_CN),
-- IMPL_TRANSLITERATION_ITEM (TextToChuyin_zh_TW),
-
- IMPL_TRANSLITERATION_ITEM (NumToCharUpper_zh_CN),
- IMPL_TRANSLITERATION_ITEM (NumToCharLower_zh_CN),
-@@ -626,15 +437,6 @@ static const struct InstancesArray {
- IMPL_TRANSLITERATION_ITEM (NumToTextHangulCircledSyllable_ko),
- IMPL_TRANSLITERATION_ITEM (NumToTextTianGan_zh),
- IMPL_TRANSLITERATION_ITEM (NumToTextDiZi_zh),
--
-- { "com.sun.star.i18n.Collator_ne_charset",
-- "com.sun.star.i18n.Collator_ne_charset",
-- &Collator_ne_charset_CreateInstance },
--
-- { "com.sun.star.i18n.Collator_km_charset",
-- "com.sun.star.i18n.Collator_km_charset",
-- &Collator_km_charset_CreateInstance },
--
- // add here new services !!
- { 0, 0, 0 }
- };
-@@ -643,12 +445,12 @@ static const struct InstancesArray {
- extern "C"
- {
-
--void SAL_CALL component_getImplementationEnvironment( const sal_Char** ppEnvTypeName, uno_Environment** ppEnv )
-+SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( const sal_Char** ppEnvTypeName, uno_Environment** ppEnv )
- {
- *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
- }
-
--sal_Bool SAL_CALL component_writeInfo( void* _pServiceManager, void* _pRegistryKey )
-+SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( void* _pServiceManager, void* _pRegistryKey )
- {
- if (_pRegistryKey)
- {
-@@ -671,7 +473,7 @@ sal_Bool SAL_CALL component_writeInfo( v
- return sal_True;
- }
-
--void* SAL_CALL component_getFactory( const sal_Char* sImplementationName, void* _pServiceManager, void* _pRegistryKey )
-+SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( const sal_Char* sImplementationName, void* _pServiceManager, void* _pRegistryKey )
- {
- void* pRet = NULL;
-
-Index: i18npool/source/registerservices/registerservices.hxx
-===================================================================
-RCS file: i18npool/source/registerservices/registerservices.hxx
-diff -N i18npool/source/registerservices/registerservices.hxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ i18npool/source/registerservices/registerservices.hxx 3 Nov 2005 14:37:38 -0000 1.1.2.1
-@@ -0,0 +1,50 @@
-+#ifndef _COM_SUN_STAR_LANG_XSINGLESERVICEFACTORY_HPP_
-+#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
-+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_REGISTRY_XREGISTRYKEY_HPP_
-+#include <com/sun/star/registry/XRegistryKey.hpp>
-+#endif
-+
-+#include <cppuhelper/factory.hxx>
-+
-+#ifndef _CPPUHELPER_WEAK_HXX_
-+#include <cppuhelper/weak.hxx>
-+#endif
-+#ifndef _OSL_MUTEX_HXX_
-+#include <osl/mutex.hxx>
-+#endif
-+
-+#define IMPL_CREATEINSTANCE( ImplName ) \
-+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > \
-+ SAL_CALL ImplName##_CreateInstance( \
-+ const ::com::sun::star::uno::Reference< \
-+ ::com::sun::star::lang::XMultiServiceFactory >& ) \
-+{ \
-+ return ::com::sun::star::uno::Reference < \
-+ ::com::sun::star::uno::XInterface >( ( ::cppu::OWeakObject* ) \
-+ new ImplName ); \
-+}
-+
-+#define IMPL_CREATEINSTANCE_MSF( ImplName ) \
-+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > \
-+ SAL_CALL ImplName##_CreateInstance( \
-+ const ::com::sun::star::uno::Reference< \
-+ ::com::sun::star::lang::XMultiServiceFactory >& rxMSF ) \
-+{ \
-+ return ::com::sun::star::uno::Reference < \
-+ ::com::sun::star::uno::XInterface >( ( ::cppu::OWeakObject* ) \
-+ new ImplName( rxMSF ) ); \
-+}
-+
-+typedef ::com::sun::star::uno::Reference<
-+ ::com::sun::star::uno::XInterface > (SAL_CALL *FN_CreateInstance)(
-+ const ::com::sun::star::uno::Reference<
-+ ::com::sun::star::lang::XMultiServiceFactory >& );
-+
-+#define IMPL_TRANSLITERATION_ITEM( implName ) \
-+ { TRLT_SERVICELNAME_L10N, \
-+ TRLT_IMPLNAME_PREFIX #implName, \
-+ &implName##_CreateInstance }
-Index: i18npool/source/registerservices/registerservices_asian.cxx
-===================================================================
-RCS file: i18npool/source/registerservices/registerservices_asian.cxx
-diff -N i18npool/source/registerservices/registerservices_asian.cxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ i18npool/source/registerservices/registerservices_asian.cxx 4 Nov 2005 10:12:52 -0000 1.1.2.4
-@@ -0,0 +1,296 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#include <registerservices.hxx>
-+
-+#include <localedata.hxx>
-+#include <numberformatcode.hxx>
-+#include <nativenumbersupplier.hxx>
-+#include <defaultnumberingprovider.hxx>
-+#include <servicename.hxx>
-+
-+#define TRANSLITERATION_ALL
-+#include <textToPronounce_zh.hxx>
-+
-+#include <calendarImpl.hxx>
-+#include <calendar_gregorian.hxx>
-+#include <calendar_hijri.hxx>
-+#include <calendar_jewish.hxx>
-+
-+#define INDEXENTRYSUPPLIER_ALL
-+#include <indexentrysupplier.hxx>
-+#include <indexentrysupplier_asian.hxx>
-+#include <indexentrysupplier_common.hxx>
-+#include <indexentrysupplier_default.hxx>
-+
-+#define CCLASS_ALL
-+#include <characterclassificationImpl.hxx>
-+#include <scripttypedetector.hxx>
-+#include <cclass_unicode.hxx>
-+
-+#define COLLATOR_ALL
-+#include <collator_asian.hxx>
-+
-+#include <inputsequencechecker.hxx>
-+#include <inputsequencechecker_th.hxx>
-+#include <inputsequencechecker_hi.hxx>
-+
-+#include <textconversionImpl.hxx>
-+#include <textconversion.hxx>
-+
-+
-+// -------------------------------------------------------------------------------------
-+
-+using namespace ::com::sun::star::i18n;
-+
-+IMPL_CREATEINSTANCE( TextToChuyin_zh_TW )
-+IMPL_CREATEINSTANCE( TextToPinyin_zh_CN )
-+
-+IMPL_CREATEINSTANCE_MSF( TextConversionImpl )
-+IMPL_CREATEINSTANCE_MSF( TextConversion_ko )
-+IMPL_CREATEINSTANCE_MSF( TextConversion_zh )
-+
-+IMPL_CREATEINSTANCE( Collator_dz_charset )
-+IMPL_CREATEINSTANCE( Collator_zh_pinyin )
-+IMPL_CREATEINSTANCE( Collator_zh_radical )
-+IMPL_CREATEINSTANCE( Collator_zh_stroke )
-+IMPL_CREATEINSTANCE( Collator_zh_zhuyin )
-+IMPL_CREATEINSTANCE( Collator_zh_TW_radical )
-+IMPL_CREATEINSTANCE( Collator_zh_TW_stroke )
-+IMPL_CREATEINSTANCE( Collator_ko_charset )
-+IMPL_CREATEINSTANCE( Collator_zh_charset )
-+IMPL_CREATEINSTANCE( Collator_ja_charset )
-+IMPL_CREATEINSTANCE( Collator_ja_phonetic_alphanumeric_first )
-+IMPL_CREATEINSTANCE( Collator_ja_phonetic_alphanumeric_last )
-+IMPL_CREATEINSTANCE( Collator_zh_TW_charset )
-+IMPL_CREATEINSTANCE( Collator_ne_charset )
-+IMPL_CREATEINSTANCE( Collator_km_charset )
-+
-+IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier )
-+IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_Unicode )
-+IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_zh_pinyin )
-+IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_zh_radical )
-+IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_zh_stroke )
-+IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_zh_zhuyin )
-+IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_zh_TW_radical )
-+IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_zh_TW_stroke )
-+IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_ko_dict )
-+IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_ja_phonetic_alphanumeric_first_by_syllable )
-+IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_ja_phonetic_alphanumeric_first_by_consonant )
-+IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_ja_phonetic_alphanumeric_last_by_syllable )
-+IMPL_CREATEINSTANCE_MSF( IndexEntrySupplier_ja_phonetic_alphanumeric_last_by_consonant )
-+
-+static const struct InstancesArray {
-+ const sal_Char* pServiceNm;
-+ const sal_Char* pImplementationNm;
-+ FN_CreateInstance pFn;
-+} aInstances[] = {
-+ { "com.sun.star.i18n.Collator_dz_charset",
-+ "com.sun.star.i18n.Collator_dz_charset",
-+ &Collator_dz_charset_CreateInstance },
-+ { "com.sun.star.i18n.Collator_zh_pinyin",
-+ "com.sun.star.i18n.Collator_zh_pinyin",
-+ &Collator_zh_pinyin_CreateInstance },
-+ { "com.sun.star.i18n.Collator_zh_radical",
-+ "com.sun.star.i18n.Collator_zh_radical",
-+ &Collator_zh_radical_CreateInstance },
-+ { "com.sun.star.i18n.Collator_zh_stroke",
-+ "com.sun.star.i18n.Collator_zh_stroke",
-+ &Collator_zh_stroke_CreateInstance },
-+ { "com.sun.star.i18n.Collator_zh_zhuyin",
-+ "com.sun.star.i18n.Collator_zh_zhuyin",
-+ &Collator_zh_zhuyin_CreateInstance },
-+ { "com.sun.star.i18n.Collator_zh_TW_radical",
-+ "com.sun.star.i18n.Collator_zh_TW_radical",
-+ &Collator_zh_TW_radical_CreateInstance },
-+ { "com.sun.star.i18n.Collator_zh_TW_stroke",
-+ "com.sun.star.i18n.Collator_zh_TW_stroke",
-+ &Collator_zh_TW_stroke_CreateInstance },
-+ { "com.sun.star.i18n.Collator_ko_charset",
-+ "com.sun.star.i18n.Collator_ko_charset",
-+ &Collator_ko_charset_CreateInstance },
-+ { "com.sun.star.i18n.Collator_ja_phonetic (alphanumeric first)",
-+ "com.sun.star.i18n.Collator_ja_phonetic (alphanumeric first)",
-+ &Collator_ja_phonetic_alphanumeric_first_CreateInstance },
-+ { "com.sun.star.i18n.Collator_ja_phonetic (alphanumeric last)",
-+ "com.sun.star.i18n.Collator_ja_phonetic (alphanumeric last)",
-+ &Collator_ja_phonetic_alphanumeric_last_CreateInstance },
-+ { "com.sun.star.i18n.Collator_ja_charset",
-+ "com.sun.star.i18n.Collator_ja_charset",
-+ &Collator_ja_charset_CreateInstance },
-+ { "com.sun.star.i18n.Collator_zh_charset",
-+ "com.sun.star.i18n.Collator_zh_charset",
-+ &Collator_zh_charset_CreateInstance },
-+ { "com.sun.star.i18n.Collator_zh_TW_charset",
-+ "com.sun.star.i18n.Collator_zh_TW_charset",
-+ &Collator_zh_TW_charset_CreateInstance },
-+ { "com.sun.star.i18n.Collator_ne_charset",
-+ "com.sun.star.i18n.Collator_ne_charset",
-+ &Collator_ne_charset_CreateInstance },
-+ { "com.sun.star.i18n.Collator_km_charset",
-+ "com.sun.star.i18n.Collator_km_charset",
-+ &Collator_km_charset_CreateInstance },
-+ IMPL_TRANSLITERATION_ITEM (TextToPinyin_zh_CN),
-+ IMPL_TRANSLITERATION_ITEM (TextToChuyin_zh_TW),
-+ { "com.sun.star.i18n.IndexEntrySupplier",
-+ "com.sun.star.i18n.IndexEntrySupplier",
-+ &IndexEntrySupplier_CreateInstance },
-+ { "com.sun.star.i18n.IndexEntrySupplier_Unicode",
-+ "com.sun.star.i18n.IndexEntrySupplier_Unicode",
-+ &IndexEntrySupplier_Unicode_CreateInstance },
-+ { "com.sun.star.i18n.IndexEntrySupplier_zh_pinyin",
-+ "com.sun.star.i18n.IndexEntrySupplier_zh_pinyin",
-+ &IndexEntrySupplier_zh_pinyin_CreateInstance },
-+ { "com.sun.star.i18n.IndexEntrySupplier_zh_radical",
-+ "com.sun.star.i18n.IndexEntrySupplier_zh_radical",
-+ &IndexEntrySupplier_zh_radical_CreateInstance },
-+ { "com.sun.star.i18n.IndexEntrySupplier_zh_stroke",
-+ "com.sun.star.i18n.IndexEntrySupplier_zh_stroke",
-+ &IndexEntrySupplier_zh_stroke_CreateInstance },
-+ { "com.sun.star.i18n.IndexEntrySupplier_zh_zhuyin",
-+ "com.sun.star.i18n.IndexEntrySupplier_zh_zhuyin",
-+ &IndexEntrySupplier_zh_zhuyin_CreateInstance },
-+ { "com.sun.star.i18n.IndexEntrySupplier_zh_TW_radical",
-+ "com.sun.star.i18n.IndexEntrySupplier_zh_TW_radical",
-+ &IndexEntrySupplier_zh_TW_radical_CreateInstance },
-+ { "com.sun.star.i18n.IndexEntrySupplier_zh_TW_stroke",
-+ "com.sun.star.i18n.IndexEntrySupplier_zh_TW_stroke",
-+ &IndexEntrySupplier_zh_TW_stroke_CreateInstance },
-+ { "com.sun.star.i18n.IndexEntrySupplier_ko_dict",
-+ "com.sun.star.i18n.IndexEntrySupplier_ko_dict",
-+ &IndexEntrySupplier_ko_dict_CreateInstance },
-+ { "com.sun.star.i18n.IndexEntrySupplier_ko_charset",
-+ "com.sun.star.i18n.IndexEntrySupplier_ko_charset",
-+ &IndexEntrySupplier_ko_dict_CreateInstance }, // share same table with ko_dict
-+ { "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first)",
-+ "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first)",
-+ &IndexEntrySupplier_ja_phonetic_alphanumeric_first_by_syllable_CreateInstance },
-+ { "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last)",
-+ "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last)",
-+ &IndexEntrySupplier_ja_phonetic_alphanumeric_last_by_syllable_CreateInstance },
-+ { "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first) (grouped by syllable)",
-+ "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first) (grouped by syllable)",
-+ &IndexEntrySupplier_ja_phonetic_alphanumeric_first_by_syllable_CreateInstance },
-+ { "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first) (grouped by consonant)",
-+ "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first) (grouped by consonant)",
-+ &IndexEntrySupplier_ja_phonetic_alphanumeric_first_by_consonant_CreateInstance },
-+ { "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last) (grouped by syllable)",
-+ "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last) (grouped by syllable)",
-+ &IndexEntrySupplier_ja_phonetic_alphanumeric_last_by_syllable_CreateInstance },
-+ { "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last) (grouped by consonant)",
-+ "com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last) (grouped by consonant)",
-+ &IndexEntrySupplier_ja_phonetic_alphanumeric_last_by_consonant_CreateInstance },
-+ { "com.sun.star.i18n.TextConversion",
-+ "com.sun.star.i18n.TextConversion",
-+ &TextConversionImpl_CreateInstance },
-+ { "com.sun.star.i18n.TextConversion_ko",
-+ "com.sun.star.i18n.TextConversion_ko",
-+ &TextConversion_ko_CreateInstance },
-+ { "com.sun.star.i18n.TextConversion_zh",
-+ "com.sun.star.i18n.TextConversion_zh",
-+ &TextConversion_zh_CreateInstance },
-+// add new services here !!
-+ { 0, 0, 0 }
-+};
-+
-+
-+/*
-+ * Cut/paste - ugly - macro generate instead ? have a .impl include ?
-+ */
-+extern "C"
-+{
-+
-+SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( const sal_Char** ppEnvTypeName, uno_Environment** ppEnv )
-+{
-+ *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
-+}
-+
-+SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( void* _pServiceManager, void* _pRegistryKey )
-+{
-+ if (_pRegistryKey)
-+ {
-+ ::com::sun::star::registry::XRegistryKey * pRegistryKey =
-+ reinterpret_cast< ::com::sun::star::registry::XRegistryKey* >(
-+ _pRegistryKey );
-+ ::com::sun::star::uno::Reference<
-+ ::com::sun::star::registry::XRegistryKey > xNewKey;
-+
-+ for( const InstancesArray* pArr = aInstances; pArr->pServiceNm; ++pArr )
-+ {
-+ xNewKey = pRegistryKey->createKey(
-+ ::rtl::OUString::createFromAscii( pArr->pImplementationNm ) );
-+ xNewKey = xNewKey->createKey(
-+ ::rtl::OUString::createFromAscii( "/UNO/SERVICES" ) );
-+ xNewKey->createKey(
-+ ::rtl::OUString::createFromAscii( pArr->pServiceNm ) );
-+ }
-+ }
-+ return sal_True;
-+}
-+
-+SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( const sal_Char* sImplementationName, void* _pServiceManager, void* _pRegistryKey )
-+{
-+ void* pRet = NULL;
-+
-+ ::com::sun::star::lang::XMultiServiceFactory* pServiceManager =
-+ reinterpret_cast< ::com::sun::star::lang::XMultiServiceFactory* >
-+ ( _pServiceManager );
-+ ::com::sun::star::uno::Reference<
-+ ::com::sun::star::lang::XSingleServiceFactory > xFactory;
-+
-+ for( const InstancesArray* pArr = aInstances; pArr->pServiceNm; ++pArr )
-+ {
-+ if( 0 == rtl_str_compare( sImplementationName, pArr->pImplementationNm ) )
-+ {
-+ ::com::sun::star::uno::Sequence< ::rtl::OUString > aServiceNames(1);
-+ aServiceNames.getArray()[0] =
-+ ::rtl::OUString::createFromAscii( pArr->pServiceNm );
-+ xFactory = ::cppu::createSingleFactory(
-+ pServiceManager, aServiceNames.getArray()[0],
-+ *pArr->pFn, aServiceNames );
-+ break;
-+ }
-+ }
-+
-+ if ( xFactory.is() )
-+ {
-+ xFactory->acquire();
-+ pRet = xFactory.get();
-+ }
-+
-+ return pRet;
-+}
-+
-+} // "C"
-cvs diff: Diffing i18npool/source/search
-Index: i18npool/source/search/makefile.mk
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/search/makefile.mk,v
-retrieving revision 1.5
-retrieving revision 1.5.20.1
-diff -u -p -r1.5 -r1.5.20.1
---- i18npool/source/search/makefile.mk 7 Sep 2005 17:23:09 -0000 1.5
-+++ i18npool/source/search/makefile.mk 3 Nov 2005 14:37:39 -0000 1.5.20.1
-@@ -43,6 +43,7 @@ LIBTARGET=NO
- # --- Settings -----------------------------------------------------
-
- .INCLUDE : settings.mk
-+.INCLUDE : $(PRJ)$/inc$/i18npool.mk
- DLLPRE =
-
- # --- Files --------------------------------------------------------
-cvs diff: Diffing i18npool/source/textconversion
-Index: i18npool/source/search/textsearch.cxx
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/search/textsearch.cxx,v
-retrieving revision 1.7
-diff -u -p -r1.7 textsearch.cxx
---- i18npool/source/search/textsearch.cxx 1 Nov 2005 14:57:03 -0000 1.7
-+++ i18npool/source/search/textsearch.cxx 9 Nov 2005 19:24:35 -0000
-@@ -996,13 +998,13 @@ SAL_CALL TextSearch_CreateInstance(
- extern "C"
- {
-
--void SAL_CALL component_getImplementationEnvironment(
-+SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
- const sal_Char** ppEnvTypeName, uno_Environment** ppEnv )
- {
- *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
- }
-
--sal_Bool SAL_CALL component_writeInfo(
-+SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void* _pServiceManager, void* _pRegistryKey )
- {
- if (_pRegistryKey)
-@@ -1021,7 +1023,7 @@ sal_Bool SAL_CALL component_writeInfo(
- return sal_True;
- }
-
--void* SAL_CALL component_getFactory( const sal_Char* sImplementationName,
-+SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( const sal_Char* sImplementationName,
- void* _pServiceManager, void* _pRegistryKey )
- {
- void* pRet = NULL;
-Index: i18npool/source/textconversion/makefile.mk
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/textconversion/makefile.mk,v
-retrieving revision 1.4
-retrieving revision 1.4.20.1
-diff -u -p -r1.4 -r1.4.20.1
---- i18npool/source/textconversion/makefile.mk 7 Sep 2005 17:24:25 -0000 1.4
-+++ i18npool/source/textconversion/makefile.mk 3 Nov 2005 14:37:40 -0000 1.4.20.1
-@@ -45,6 +45,7 @@ ENABLE_EXCEPTIONS=TRUE
- .INCLUDE : svpre.mk
- .INCLUDE : settings.mk
- .INCLUDE : sv.mk
-+.INCLUDE : $(PRJ)$/inc$/i18npool.mk
-
- # --- Files --------------------------------------------------------
-
-cvs diff: Diffing i18npool/source/textconversion/data
-cvs diff: Diffing i18npool/source/transliteration
-Index: i18npool/source/transliteration/makefile.mk
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/transliteration/makefile.mk,v
-retrieving revision 1.7
-retrieving revision 1.7.20.6
-diff -u -p -r1.7 -r1.7.20.6
---- i18npool/source/transliteration/makefile.mk 7 Sep 2005 17:33:17 -0000 1.7
-+++ i18npool/source/transliteration/makefile.mk 4 Nov 2005 10:12:57 -0000 1.7.20.6
-@@ -37,6 +37,7 @@ PRJ=..$/..
-
- PRJNAME=i18npool
- TARGET=transliterationImpl
-+LIBTARGET=NO
-
- ENABLE_EXCEPTIONS=TRUE
-
-@@ -45,25 +46,30 @@ ENABLE_EXCEPTIONS=TRUE
- .INCLUDE : svpre.mk
- .INCLUDE : settings.mk
- .INCLUDE : sv.mk
-+.INCLUDE : $(PRJ)$/inc$/i18npool.mk
-
- # --- Files --------------------------------------------------------
-
--SLOFILES= \
-- $(SLO)$/transliteration_body.obj \
-- $(SLO)$/transliteration_caseignore.obj \
-+COMMON_OBJECTS= \
- $(SLO)$/transliterationImpl.obj \
- $(SLO)$/transliteration_commonclass.obj \
-- $(SLO)$/transliteration_OneToOne.obj \
- $(SLO)$/transliteration_Ignore.obj \
-- $(SLO)$/transliteration_Numeric.obj \
-- $(SLO)$/hiraganaToKatakana.obj \
-- $(SLO)$/katakanaToHiragana.obj \
-- $(SLO)$/ignoreKana.obj \
-+ $(SLO)$/transliteration_body.obj \
-+ $(SLO)$/transliteration_caseignore.obj \
- $(SLO)$/halfwidthToFullwidth.obj \
- $(SLO)$/fullwidthToHalfwidth.obj \
-+ $(SLO)$/transliteration_OneToOne.obj \
- $(SLO)$/ignoreWidth.obj \
-+ $(SLO)$/transliteration_Numeric.obj \
-+ $(SLO)$/numtochar.obj \
-+ $(SLO)$/numtotext_cjk.obj \
-+ $(SLO)$/chartonum.obj \
-+ $(SLO)$/texttonum.obj \
-+ $(SLO)$/hiraganaToKatakana.obj \
-+ $(SLO)$/katakanaToHiragana.obj \
- $(SLO)$/smallToLarge_ja_JP.obj \
- $(SLO)$/largeToSmall_ja_JP.obj \
-+ $(SLO)$/ignoreKana.obj \
- $(SLO)$/ignoreSize_ja_JP.obj \
- $(SLO)$/ignoreMinusSign_ja_JP.obj \
- $(SLO)$/ignoreIterationMark_ja_JP.obj \
-@@ -79,12 +85,18 @@ SLOFILES= \
- $(SLO)$/ignoreKiKuFollowedBySa_ja_JP.obj \
- $(SLO)$/ignoreSeparator_ja_JP.obj \
- $(SLO)$/ignoreSpace_ja_JP.obj \
-- $(SLO)$/ignoreMiddleDot_ja_JP.obj \
-- $(SLO)$/textToPronounce_zh.obj \
-- $(SLO)$/numtochar.obj \
-- $(SLO)$/numtotext_cjk.obj \
-- $(SLO)$/chartonum.obj \
-- $(SLO)$/texttonum.obj
-+ $(SLO)$/ignoreMiddleDot_ja_JP.obj
-+
-+ASIAN_OBJECTS= \
-+ $(SLO)$/textToPronounce_zh.obj # 500k alone
-+
-+SLOFILES= $(COMMON_OBJECTS) $(ASIAN_OBJECTS)
-+
-+LIB1TARGET= $(SLB)$/$(TARGET).lib
-+LIB1OBJFILES= $(COMMON_OBJECTS)
-+
-+LIB2TARGET= $(SLB)$/$(TARGET)_asian.lib
-+LIB2OBJFILES= $(ASIAN_OBJECTS)
-
- # --- Targets ------------------------------------------------------
-
-Index: i18npool/source/transliteration/transliterationImpl.cxx
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/transliteration/transliterationImpl.cxx,v
-retrieving revision 1.13
-retrieving revision 1.13.20.3
-diff -u -p -r1.13 -r1.13.20.3
---- i18npool/source/transliteration/transliterationImpl.cxx 7 Sep 2005 17:35:03 -0000 1.13
-+++ i18npool/source/transliteration/transliterationImpl.cxx 4 Nov 2005 10:12:58 -0000 1.13.20.3
-@@ -599,6 +599,7 @@ static void SAL_CALL loadBody( Reference
- Reference< XContentEnumerationAccess > xEnumAccess( xSMgr, UNO_QUERY );
- Reference< XEnumeration > xEnum(xEnumAccess->createContentEnumeration(
- OUString::createFromAscii(TRLT_SERVICELNAME_L10N)));
-+
- if (xEnum.is()) {
- while (xEnum->hasMoreElements()) {
- Any a = xEnum->nextElement();
-Index: i18npool/source/transliteration/transliteration_Ignore.cxx
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/transliteration/transliteration_Ignore.cxx,v
-retrieving revision 1.11
-retrieving revision 1.11.20.1
-diff -u -p -r1.11 -r1.11.20.1
---- i18npool/source/transliteration/transliteration_Ignore.cxx 7 Sep 2005 17:35:18 -0000 1.11
-+++ i18npool/source/transliteration/transliteration_Ignore.cxx 3 Nov 2005 18:08:13 -0000 1.11.20.1
-@@ -33,6 +33,8 @@
- *
- ************************************************************************/
-
-+#define I18NPOOL_DLLIMPLEMENTATION
-+
- // prevent internal compiler error with MSVC6SP3
- #include <utility>
-
-Index: i18npool/source/transliteration/transliteration_commonclass.cxx
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/transliteration/transliteration_commonclass.cxx,v
-retrieving revision 1.6
-retrieving revision 1.6.20.1
-diff -u -p -r1.6 -r1.6.20.1
---- i18npool/source/transliteration/transliteration_commonclass.cxx 7 Sep 2005 17:36:36 -0000 1.6
-+++ i18npool/source/transliteration/transliteration_commonclass.cxx 3 Nov 2005 17:25:55 -0000 1.6.20.1
-@@ -33,6 +33,8 @@
- *
- ************************************************************************/
-
-+#define I18NPOOL_DLLIMPLEMENTATION
-+
- #include <transliteration_commonclass.hxx>
- #include <com/sun/star/i18n/CollatorOptions.hpp>
-
-cvs diff: Diffing i18npool/source/transliteration/data
-cvs diff: Diffing i18npool/source/unotypes
-Index: i18npool/source/unotypes/makefile.mk
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/unotypes/makefile.mk,v
-retrieving revision 1.12
-retrieving revision 1.12.16.1
-diff -u -p -r1.12 -r1.12.16.1
---- i18npool/source/unotypes/makefile.mk 7 Sep 2005 17:38:05 -0000 1.12
-+++ i18npool/source/unotypes/makefile.mk 3 Nov 2005 14:37:40 -0000 1.12.16.1
-@@ -43,6 +43,7 @@ TARGET= unotypes
- .INCLUDE : svpre.mk
- .INCLUDE : settings.mk
- .INCLUDE : sv.mk
-+.INCLUDE : $(PRJ)$/inc$/i18npool.mk
-
- # ------------------------------------------------------------------
-
-cvs diff: Diffing i18npool/util
-Index: i18npool/util/i18npool_asian.map
-===================================================================
-RCS file: i18npool/util/i18npool_asian.map
-diff -N i18npool/util/i18npool_asian.map
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ i18npool/util/i18npool_asian.map 3 Nov 2005 14:37:41 -0000 1.1.2.1
-@@ -0,0 +1,11 @@
-+UDK_3_0_0 {
-+global:
-+ GetVersionInfo;
-+ component_getDescriptionFunc;
-+ component_getImplementationEnvironment;
-+ component_getFactory;
-+ component_writeInfo;
-+
-+local:
-+ *;
-+};
-Index: i18npool/util/makefile.mk
-===================================================================
-RCS file: /cvs/l10n/i18npool/util/makefile.mk,v
-retrieving revision 1.20
-retrieving revision 1.20.20.1
-diff -u -p -r1.20 -r1.20.20.1
---- i18npool/util/makefile.mk 7 Sep 2005 17:38:27 -0000 1.20
-+++ i18npool/util/makefile.mk 3 Nov 2005 14:37:41 -0000 1.20.20.1
-@@ -36,39 +36,35 @@
- PRJ=..
-
- PRJNAME=i18npool
--TARGET=i18npool.uno
-+TARGET=i18npool
-
- # --- Settings -----------------------------------------------------------
-
- .INCLUDE : settings.mk
--DLLPRE =
-
- # --- Allgemein ----------------------------------------------------------
-
--LIB1TARGET= $(SLB)$/$(TARGET).lib
-+LIB1TARGET= $(SLB)$/$(TARGET).uno.lib
- LIB1FILES= $(SLB)$/defaultnumberingprovider.lib \
- $(SLB)$/nativenumber.lib \
- $(SLB)$/registerservices.lib \
- $(SLB)$/numberformatcode.lib \
- $(SLB)$/locale.lib \
-- $(SLB)$/indexentry.lib \
- $(SLB)$/calendar.lib \
- $(SLB)$/breakiterator.lib \
- $(SLB)$/transliterationImpl.lib \
- $(SLB)$/characterclassification.lib \
- $(SLB)$/collator.lib \
-- $(SLB)$/inputchecker.lib \
-- $(SLB)$/textconversion.lib
-+ $(SLB)$/inputchecker.lib
-
--SHL1TARGET= $(TARGET)
-+SHL1TARGET= $(TARGET).uno
- # WNT needs implib name even if there is none
- SHL1IMPLIB= i$(SHL1TARGET)
-
- SHL1DEPN= makefile.mk
--SHL1VERSIONMAP=$(PRJNAME).map
--SHL1DEF=$(MISC)$/$(SHL1TARGET).def
--DEF1NAME=$(SHL1TARGET)
--
-+# SHL1VERSIONMAP=$(PRJNAME).map
-+# SHL1DEF=$(MISC)$/$(SHL1TARGET).def
-+# DEF1NAME=$(SHL1TARGET)
- SHL1LIBS=$(LIB1TARGET)
- SHL1STDLIBS= \
- $(I18NUTILLIB) \
-@@ -78,6 +74,21 @@ SHL1STDLIBS= \
- $(ICUINLIB) \
- $(ICUUCLIB)
-
-+LIB2TARGET= $(SLB)$/$(TARGET)_asian.uno.lib
-+LIB2FILES= $(SLB)$/collator_asian.lib \
-+ $(SLB)$/indexentry.lib \
-+ $(SLB)$/textconversion.lib \
-+ $(SLB)$/registerservices_asian.lib \
-+ $(SLB)$/transliterationImpl_asian.lib
-+
-+SHL2TARGET= $(TARGET)_asian.uno
-+SHL2VERSIONMAP=$(PRJNAME).map
-+SHL2DEF=$(MISC)$/$(SHL2TARGET).def
-+SHL2NAME=$(MISC)$/$(SHL2TARGET).def
-+SHL2LIBS=$(LIB2TARGET)
-+SHL2DEPN=$(SHL1TARGETN)
-+SHL2STDLIBS=$(SHL1STDLIBS) -l$(SHL1TARGET)
-+
- # --- Targets ------------------------------------------------------------
-
- .INCLUDE : target.mk
-cvs diff: Diffing i18npool/xml
-cvs diff: cannot open CVS/Entries for reading: No such file or directory
-cvs [diff aborted]: no repository
-Index: vcl/workben/makefile.mk
-===================================================================
-RCS file: /cvs/gsl/vcl/workben/makefile.mk,v
-retrieving revision 1.12
-diff -u -p -u -r1.12 makefile.mk
---- vcl/workben/makefile.mk 9 Sep 2005 14:09:34 -0000 1.12
-+++ vcl/workben/makefile.mk 10 Nov 2005 16:22:38 -0000
-@@ -83,10 +83,10 @@ ALL : \
- $(BIN)$/applicat.rdb : makefile.mk $(UNOUCRRDB)
- rm -f $@
- $(GNUCOPY) $(UNOUCRRDB) $@
-- +cd $(BIN) && \
-- regcomp -register -r applicat.rdb \
-- -c i18nsearch.uno$(DLLPOST) \
-- -c i18npool.uno$(DLLPOST)
-+ +cd $(BIN) && \
-+ regcomp -register -r applicat.rdb \
-+ -c i18nsearch.uno$(DLLPOST) \
-+ -c $(DLLPRE)i18npool.uno$(DLLPOST)
-
- # ------------------------------------------------------------------
- # Windows
-Index: goodies/source/inv/makefile.mk
-===================================================================
-RCS file: /cvs/graphics/goodies/source/inv/makefile.mk,v
-retrieving revision 1.7
-diff -u -p -u -r1.7 makefile.mk
---- goodies/source/inv/makefile.mk 9 Sep 2005 03:07:29 -0000 1.7
-+++ goodies/source/inv/makefile.mk 11 Nov 2005 12:45:25 -0000
-@@ -129,7 +129,7 @@ $(BIN)$/applicat.rdb : makefile.mk $(SOL
- $(GNUCOPY) $(SOLARBINDIR)$/types.rdb $@
- +cd $(BIN) && \
- regcomp -register -r applicat.rdb \
-- -c i18npool.uno$(DLLPOST)
-+ -c $(DLLPRE)i18npool.uno$(DLLPOST)
-
- # --- Def-File ---
-
-Index: svx/source/gengal/makefile.mk
-===================================================================
-RCS file: /cvs/graphics/svx/source/gengal/makefile.mk,v
-retrieving revision 1.3
-diff -u -p -u -r1.3 makefile.mk
---- svx/source/gengal/makefile.mk 19 Oct 2005 14:42:19 -0000 1.3
-+++ svx/source/gengal/makefile.mk 11 Nov 2005 16:28:45 -0000
-@@ -107,7 +107,7 @@ $(BIN)$/gengal.rdb : makefile.mk $(UNOUC
- +cd $(BIN) && \
- regcomp -register -r gengal.rdb \
- -c i18nsearch.uno$(DLLPOST) \
-- -c i18npool.uno$(DLLPOST) \
-+ -c $(DLLPRE)i18npool.uno$(DLLPOST) \
- -c configmgr2.uno$(DLLPOST) \
- -c servicemgr.uno$(DLLPOST) \
- -c $(DLLPRE)fwl$(UPD)$(DLLSUFFIX)$(DLLPOST) \
-Index: scp2/source/ooo/file_library_ooo.scp
-===================================================================
-RCS file: /cvs/installation/scp2/source/ooo/file_library_ooo.scp,v
-retrieving revision 1.156
-retrieving revision 1.156.16.1
-diff -u -p -u -r1.156 -r1.156.16.1
---- scp2/source/ooo/file_library_ooo.scp 28 Oct 2005 13:55:50 -0000 1.156
-+++ scp2/source/ooo/file_library_ooo.scp 9 Nov 2005 15:29:24 -0000 1.156.16.1
-@@ -755,9 +755,21 @@ File gid_File_Lib_I18npool
- RegistryID = gid_Starregistry_Services_Rdb;
- Dir = gid_Dir_Program;
- #ifdef UNX
-- Name = STRING(CONCAT2(i18npool.uno,UNXSUFFIX));
-+ Name = STRING(CONCAT2(libi18npool.uno,UNXSUFFIX));
- #else
- Name = STRING(CONCAT2(i18npool.uno,.dll));
-+ #endif
-+End
-+
-+File gid_File_Lib_I18npool_Asian
-+ TXT_FILE_BODY;
-+ Styles = (PACKED,UNO_COMPONENT,PATCH);
-+ RegistryID = gid_Starregistry_Services_Rdb;
-+ Dir = gid_Dir_Program;
-+ #ifdef UNX
-+ Name = STRING(CONCAT2(libi18npool_asian.uno,UNXSUFFIX));
-+ #else
-+ Name = STRING(CONCAT2(i18npool_asian.uno,.dll));
- #endif
- End
-
diff --git a/patches/src680/cws-iconswitching1-binfilter.diff b/patches/src680/cws-iconswitching1-binfilter.diff
deleted file mode 100644
index 90f79cea9..000000000
--- a/patches/src680/cws-iconswitching1-binfilter.diff
+++ /dev/null
@@ -1,422 +0,0 @@
-Index: binfilter/bf_sfx2/source/inc/tbxconf.hxx
-===================================================================
-RCS file: /cvs/framework/binfilter/bf_sfx2/source/inc/tbxconf.hxx,v
-retrieving revision 1.4
-retrieving revision 1.3.132.2
-diff -u -p -u -p -r1.4 -r1.3.132.2
---- binfilter/bf_sfx2/source/inc/tbxconf.hxx 8 Sep 2005 03:36:51 -0000 1.4
-+++ binfilter/bf_sfx2/source/inc/tbxconf.hxx 31 Oct 2005 22:38:40 -0000 1.3.132.2
-@@ -52,7 +52,7 @@ class SfxToolBoxConfig : public SfxConfi
- {
- static SfxToolBoxConfig* pTbxConfig;
-
-- SfxSymbolSet eSymbolSet;
-+ SfxSymbolsSize eSymbolsSize;
- USHORT nOutStyle;
- BOOL bQuiet;
- BOOL bStatusBarVisible;
-Index: binfilter/bf_sfx2/source/toolbox/sfx2_imgmgr.cxx
-===================================================================
-RCS file: /cvs/framework/binfilter/bf_sfx2/source/toolbox/sfx2_imgmgr.cxx,v
-retrieving revision 1.7
-retrieving revision 1.6.112.2
-diff -u -p -u -p -r1.7 -r1.6.112.2
---- binfilter/bf_sfx2/source/toolbox/sfx2_imgmgr.cxx 8 Sep 2005 03:45:19 -0000 1.7
-+++ binfilter/bf_sfx2/source/toolbox/sfx2_imgmgr.cxx 31 Oct 2005 22:43:43 -0000 1.6.112.2
-@@ -166,22 +166,9 @@ static int nGlobalRef=0;
-
- //=========================================================================
-
--/*N*/ sal_Int16 SfxImageManager::GetCurrentSymbolSet()
-+/*N*/ sal_Int16 SfxImageManager::GetCurrentSymbolsSize()
- /*N*/ {
--/*N*/ sal_Int16 eOptSymbolSet = SvtMiscOptions().GetSymbolSet();
--/*N*/
--/*N*/ if ( eOptSymbolSet == SFX_SYMBOLS_AUTO )
--/*N*/ {
--/*N*/ // Use system settings, we have to retrieve the toolbar icon size from the
--/*N*/ // Application class
--/*?*/ ULONG nStyleIconSize = Application::GetSettings().GetStyleSettings().GetToolbarIconSize();
--/*?*/ if ( nStyleIconSize == STYLE_TOOLBAR_ICONSIZE_LARGE )
--/*?*/ eOptSymbolSet = SFX_SYMBOLS_LARGE;
--/*?*/ else
--/*?*/ eOptSymbolSet = SFX_SYMBOLS_SMALL;
--/*N*/ }
--/*N*/
--/*N*/ return eOptSymbolSet;
-+/*N*/ return SvtMiscOptions().GetCurrentSymbolsSize();
- /*N*/ }
-
- //=========================================================================
-@@ -701,14 +688,14 @@ static int nGlobalRef=0;
-
- /*?*/ int SfxImageManager_Impl::Load(SvStream& rStream)
- /*?*/ {DBG_BF_ASSERT(0, "STRIP");return 0; //STRIP001
--//STRIP001 USHORT nFileVersion, nSymbolSet;
-+//STRIP001 USHORT nFileVersion, nSymbolsSize;
- //STRIP001 ULONG nColorCount = Application::GetDefaultDevice()->GetColorCount();
- //STRIP001
- //STRIP001 rStream >> nFileVersion;
- //STRIP001 if ( nFileVersion < nVersion)
- //STRIP001 return SfxConfigItem::WARNING_VERSION;
- //STRIP001
--//STRIP001 rStream >> nSymbolSet // ignore !
-+//STRIP001 rStream >> nSymbolsSize // ignore !
- //STRIP001 >> nColorCount; // evaluate for possible rebuild of userlist
- //STRIP001
- //STRIP001 MakeUserList();
-@@ -745,7 +732,7 @@ static int nGlobalRef=0;
- //STRIP001 // aBitmapStream << pUserImageList->GetBitmap();
- //STRIP001
- //STRIP001 rStream << nVersion
--//STRIP001 << SfxImageManager::GetCurrentSymbolSet()
-+//STRIP001 << SfxImageManager::GetCurrentSymbolsSize()
- //STRIP001 << Application::GetDefaultDevice()->GetColorCount();
- //STRIP001
- //STRIP001 rStream << *m_pUserImageList;
-@@ -792,15 +779,15 @@ static int nGlobalRef=0;
- /*N*/ {
- /*N*/ USHORT nType=0;
- /*N*/ {
--/*N*/ switch ( SfxImageManager::GetCurrentSymbolSet() )
-+/*N*/ switch ( SfxImageManager::GetCurrentSymbolsSize() )
- /*N*/ {
--/*N*/ case SFX_SYMBOLS_SMALL:
-+/*N*/ case SFX_SYMBOLS_SIZE_SMALL:
- /*N*/ if ( bHiContrast )
- /*?*/ pHiImageList = GetImageList( FALSE, TRUE );
- /*N*/ else
- /*N*/ pImageList = GetImageList( FALSE, FALSE );
- /*N*/ break;
--/*N*/ case SFX_SYMBOLS_LARGE:
-+/*N*/ case SFX_SYMBOLS_SIZE_LARGE:
- /*?*/ if ( bHiContrast )
- /*?*/ pHiImageList = GetImageList( TRUE, TRUE );
- /*?*/ else
-@@ -917,7 +904,7 @@ static int nGlobalRef=0;
-
- /*N*/ Image SfxImageManager_Impl::SeekImage( USHORT nId, SfxModule *pModule, BOOL bHiContrast ) const
- /*N*/ {
--/*N*/ BOOL bBig = ( SfxImageManager::GetCurrentSymbolSet() == SFX_SYMBOLS_LARGE );
-+/*N*/ BOOL bBig = ( SfxImageManager::GetCurrentSymbolsSize() == SFX_SYMBOLS_SIZE_LARGE );
- /*N*/
- /*N*/ if ( !pModule )
- /*?*/ pModule = SFX_APP()->GetActiveModule();
-@@ -970,10 +957,10 @@ static int nGlobalRef=0;
- /*N*/ }
- /*N*/
- /*N*/ // internal cached data for comparision in callback
--/*N*/ pData->nSet = SfxImageManager::GetCurrentSymbolSet();
-+/*N*/ pData->nSet = SfxImageManager::GetCurrentSymbolsSize();
- /*N*/ pData->nOutStyle = pImp->m_aOpt.GetToolboxStyle();
- /*N*/
--/*N*/ // register callback for changes of SymbolSet or ToolboxStyle
-+/*N*/ // register callback for changes of SymbolsSize or ToolboxStyle
- /*N*/ pImp->m_aOpt.AddListener( LINK( this, SfxImageManager, OptionsChanged_Impl ) );
- /*N*/ Application::AddEventListener( LINK( this, SfxImageManager, SettingsChanged_Impl ) );
- /*N*/
-@@ -1110,7 +1097,7 @@ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 L
-
- //-------------------------------------------------------------------------
-
--/*?*/ void SfxImageManager::SetSymbolSet_Impl( sal_Int16 nNewSet )
-+/*?*/ void SfxImageManager::SetSymbolsSize_Impl( sal_Int16 nNewSet )
- /*?*/ {DBG_BF_ASSERT(0, "STRIP"); //STRIP001
- //STRIP001 if ( nNewSet != pData->nSet && pImageList )
- //STRIP001 {
-@@ -1213,7 +1200,7 @@ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 L
-
- /*N*/ Image SfxImageManager::GetImage( USHORT nId, BOOL bHiContrast, SfxModule *pModule ) const
- /*N*/ {
--/*N*/ return pImp->GetImage( nId, pModule, ( SfxImageManager::GetCurrentSymbolSet() == SFX_SYMBOLS_LARGE ), bHiContrast );
-+/*N*/ return pImp->GetImage( nId, pModule, ( SfxImageManager::GetCurrentSymbolsSize() == SFX_SYMBOLS_SIZE_LARGE ), bHiContrast );
- /*N*/ }
-
- /*?*/ Image SfxImageManager::GetImage(USHORT nId, SfxModule* pMod, BOOL bBig ) const
-@@ -1235,7 +1222,7 @@ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 L
- /*?*/ {DBG_BF_ASSERT(0, "STRIP"); //STRIP001
- //STRIP001 if ( pModule )
- //STRIP001 {
--//STRIP001 ImageList *pList = pModule->GetImageList_Impl(( SfxImageManager::GetCurrentSymbolSet() == SFX_SYMBOLS_LARGE ), bHiContrast );
-+//STRIP001 ImageList *pList = pModule->GetImageList_Impl(( SfxImageManager::GetCurrentSymbolsSize() == SFX_SYMBOLS_SIZE_LARGE ), bHiContrast );
- //STRIP001 if ( pList )
- //STRIP001 return pList->GetImage( nId );
- //STRIP001 }
-@@ -1257,7 +1244,7 @@ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 L
-
- /*?*/ Image SfxImageManager::GetAndLockImage_Impl( USHORT nId, BOOL bHiContrast, SfxModule *pModule )
- /*?*/ {DBG_BF_ASSERT(0, "STRIP"); return Image();//STRIP001
--//STRIP001 BOOL bBig = ( SfxImageManager::GetCurrentSymbolSet() == SFX_SYMBOLS_LARGE );
-+//STRIP001 BOOL bBig = ( SfxImageManager::GetCurrentSymbolsSize() == SFX_SYMBOLS_SIZE_LARGE );
- //STRIP001 ImageList *pUserImageList = pImp->m_pUserImageList;
- //STRIP001 ImageList *pHCUserImageList = pImp->m_pHCUserImageList;
- //STRIP001
-@@ -1556,7 +1543,7 @@ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 L
-
- /*N*/ void SfxImageManager::SetImages( ToolBox& rToolBox, SfxModule *pModule, BOOL bHiContrast )
- /*N*/ {
--/*N*/ BOOL bBig = ( pData->nSet == SFX_SYMBOLS_LARGE );
-+/*N*/ BOOL bBig = ( pData->nSet == SFX_SYMBOLS_SIZE_LARGE );
- /*N*/
- /*N*/ if ( !pModule )
- /*N*/ pModule = SFX_APP()->GetActiveModule();
-@@ -1658,7 +1645,7 @@ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 L
- /*?*/ IMPL_LINK( SfxImageManager, OptionsChanged_Impl, void*, pVoid )
- /*?*/ {DBG_BF_ASSERT(0, "STRIP"); //STRIP001
- //STRIP001 SetOutStyle_Impl( pImp->m_aOpt.GetToolboxStyle() );
--//STRIP001 SetSymbolSet_Impl( SfxImageManager::GetCurrentSymbolSet() );
-+//STRIP001 SetSymbolsSize_Impl( SfxImageManager::GetCurrentSymbolsSize() );
- //STRIP001
- /*?*/ return 0L;
- /*?*/ }
-@@ -1685,9 +1672,9 @@ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 L
- /*N*/ IMPL_LINK( SfxImageManager, SettingsChanged_Impl, void*, pVoid )
- /*N*/ {
- /*N*/ // Check if toolbar button size have changed and we have to use system settings
--/*N*/ sal_Int16 nSymbolSet = SfxImageManager::GetCurrentSymbolSet();
--/*N*/ if ( pData->nSet != nSymbolSet )
--/*?*/ SetSymbolSet_Impl( nSymbolSet );
-+/*N*/ sal_Int16 nSymbolsSize = SfxImageManager::GetCurrentSymbolsSize();
-+/*N*/ if ( pData->nSet != nSymbolsSize )
-+/*?*/ SetSymbolsSize_Impl( nSymbolsSize );
- /*N*/
- /*N*/ return 0L;
- /*N*/ }
-@@ -1710,7 +1697,7 @@ DBG_BF_ASSERT(0, "STRIP"); //STRIP001 L
- //STRIP001 USHORT nId = pImageList->GetImageId(i);
- //STRIP001 ExchangeItemImage_Impl( nId, pImp->GetImage( nId,
- //STRIP001 pData->pDoc->GetModule(),
--//STRIP001 ( pData->nSet == SFX_SYMBOLS_LARGE ),
-+//STRIP001 ( pData->nSet == SFX_SYMBOLS_SIZE_LARGE ),
- //STRIP001 bHiContrast ) );
- //STRIP001 }
- //STRIP001
-Index: binfilter/bf_sfx2/source/toolbox/sfx2_tbxcfg.cxx
-===================================================================
-RCS file: /cvs/framework/binfilter/bf_sfx2/source/toolbox/sfx2_tbxcfg.cxx,v
-retrieving revision 1.3
-retrieving revision 1.2.148.2
-diff -u -p -u -p -r1.3 -r1.2.148.2
---- binfilter/bf_sfx2/source/toolbox/sfx2_tbxcfg.cxx 8 Sep 2005 03:45:32 -0000 1.3
-+++ binfilter/bf_sfx2/source/toolbox/sfx2_tbxcfg.cxx 31 Oct 2005 22:43:52 -0000 1.2.148.2
-@@ -89,7 +89,7 @@ SfxToolBoxConfigDialog::SfxToolBoxConfig
-
- eAlign ( pMgr->GetAlign () ),
- eButtonType( pMgr->GetButtonType() ),
-- eSymbolSet ( pMgr->GetSymbolSet () )
-+ eSymbolsSize ( pMgr->GetSymbolsSize () )
-
- {
- FreeResource();
-@@ -169,7 +169,7 @@ IMPL_LINK( SfxToolBoxConfigDialog, OKHdl
-
- pMgr->ChangeAlign ( eAlign );
- pMgr->ChangeButtonType( eButtonType );
-- pMgr->ChangeSymbolSet ( eSymbolSet );
-+ pMgr->ChangeSymbolsSize ( eSymbolsSize );
-
- pApp->Wait( FALSE );
-
-@@ -192,7 +192,7 @@ IMPL_LINK( SfxToolBoxConfigDialog, Optio
- {
- eAlign = pDlg->GetAlign();
- eButtonType = pDlg->GetButtonType();
-- eSymbolSet = pDlg->GetSymbolSet();
-+ eSymbolsSize= pDlg->GetSymbolsSize();
- }
-
- delete pDlg;
-@@ -496,10 +496,10 @@ SfxToolBoxOptionsDialog::SfxToolBoxOptio
- case BUTTON_SYMBOLTEXT: aContentsBox.SelectEntryPos( 2 ); break;
- }
-
-- switch ( pMgr->GetSymbolSet() )
-+ switch ( pMgr->GetSymbolsSize() )
- {
-- case SFX_SYMBOLS_SMALL: aSymbolsBox.SelectEntryPos( 0 ); break;
-- case SFX_SYMBOLS_LARGE: aSymbolsBox.SelectEntryPos( 1 ); break;
-+ case SFX_SYMBOLS_SIZE_SMALL: aSymbolsBox.SelectEntryPos( 0 ); break;
-+ case SFX_SYMBOLS_SIZE_LARGE: aSymbolsBox.SelectEntryPos( 1 ); break;
- }
-
- aPositionBox.GrabFocus();
-@@ -530,14 +530,14 @@ ButtonType SfxToolBoxOptionsDialog::GetB
- }
- }
-
--// SfxToolBoxOptionsDialog::GetSymbolSet() *************************************
-+// SfxToolBoxOptionsDialog::GetSymbolsSize() *************************************
-
--SfxSymbolSet SfxToolBoxOptionsDialog::GetSymbolSet() const
-+SfxSymbolsSize SfxToolBoxOptionsDialog::GetSymbolsSize() const
- {
- switch ( aSymbolsBox.GetSelectEntryPos() )
- {
-- case 0 : return SFX_SYMBOLS_SMALL;
-- default: return SFX_SYMBOLS_LARGE;
-+ case 0 : return SFX_SYMBOLS_SIZE_SMALL;
-+ default: return SFX_SYMBOLS_SIZE_LARGE;
- }
- }
-
-Index: binfilter/bf_sfx2/source/toolbox/sfx2_tbxconf.cxx
-===================================================================
-RCS file: /cvs/framework/binfilter/bf_sfx2/source/toolbox/sfx2_tbxconf.cxx,v
-retrieving revision 1.8
-retrieving revision 1.7.108.2
-diff -u -p -u -p -r1.8 -r1.7.108.2
---- binfilter/bf_sfx2/source/toolbox/sfx2_tbxconf.cxx 8 Sep 2005 03:46:00 -0000 1.8
-+++ binfilter/bf_sfx2/source/toolbox/sfx2_tbxconf.cxx 31 Oct 2005 22:44:10 -0000 1.7.108.2
-@@ -112,7 +112,7 @@ extern WindowAlign ConvertAlign_Impl( Sf
- //=========================================================================
- /*N*/ SfxToolBoxConfig::SfxToolBoxConfig( SfxConfigManager* pCfgMgr ) :
- /*N*/ SfxConfigItem( SFX_ITEMTYPE_TOOLBOXCONFIG, pCfgMgr ),
--/*N*/ eSymbolSet( SFX_SYMBOLS_SMALL ),
-+/*N*/ eSymbolsSize( SFX_SYMBOLS_SIZE_SMALL ),
- /*N*/ nOutStyle( TOOLBOX_STYLE_FLAT ),
- /*N*/ bQuiet(FALSE),
- /*N*/ bStatusBarVisible(TRUE)
-@@ -123,7 +123,7 @@ extern WindowAlign ConvertAlign_Impl( Sf
- //-------------------------------------------------------------------------
- /*N*/ SfxToolBoxConfig::SfxToolBoxConfig( const SfxToolBoxConfig& rOther, SfxConfigManager* pCfgMgr ) :
- /*N*/ SfxConfigItem( SFX_ITEMTYPE_TOOLBOXCONFIG, pCfgMgr ),
--/*N*/ eSymbolSet( SFX_SYMBOLS_SMALL ),
-+/*N*/ eSymbolsSize( SFX_SYMBOLS_SIZE_SMALL ),
- /*N*/ nOutStyle( TOOLBOX_STYLE_FLAT ),
- /*N*/ bQuiet(FALSE),
- /*N*/ bStatusBarVisible(TRUE)
-Index: binfilter/bf_sfx2/source/toolbox/sfx2_tbxitem.cxx
-===================================================================
-RCS file: /cvs/framework/binfilter/bf_sfx2/source/toolbox/sfx2_tbxitem.cxx,v
-retrieving revision 1.5
-retrieving revision 1.4.118.2
-diff -u -p -u -p -r1.5 -r1.4.118.2
---- binfilter/bf_sfx2/source/toolbox/sfx2_tbxitem.cxx 8 Sep 2005 03:46:42 -0000 1.5
-+++ binfilter/bf_sfx2/source/toolbox/sfx2_tbxitem.cxx 31 Oct 2005 22:44:35 -0000 1.4.118.2
-@@ -750,7 +750,7 @@ static USHORT nLastId_Impl = SID_NEWDOCD
- /*N*/ if (!bValid)
- /*N*/ aURL = sFallback;
- /*N*/
--/*N*/ BOOL bBig = ( SfxImageManager::GetCurrentSymbolSet() == SFX_SYMBOLS_LARGE );
-+/*N*/ BOOL bBig = ( SfxImageManager::GetCurrentSymbolsSize() == SFX_SYMBOLS_SIZE_LARGE );
- /*N*/ GetToolBox().SetItemImage( GetId(),
- /*N*/ SvFileInformationManager::GetImage( INetURLObject( aURL ),
- /*N*/ bBig,
-Index: binfilter/bf_sfx2/source/toolbox/sfx2_tbxmgr.cxx
-===================================================================
-RCS file: /cvs/framework/binfilter/bf_sfx2/source/toolbox/sfx2_tbxmgr.cxx,v
-retrieving revision 1.7
-retrieving revision 1.6.118.2
-diff -u -p -u -p -r1.7 -r1.6.118.2
---- binfilter/bf_sfx2/source/toolbox/sfx2_tbxmgr.cxx 8 Sep 2005 03:46:54 -0000 1.7
-+++ binfilter/bf_sfx2/source/toolbox/sfx2_tbxmgr.cxx 31 Oct 2005 22:44:45 -0000 1.6.118.2
-@@ -152,7 +152,7 @@ struct TbRuntimeItemData
- /*?*/ pParent(0),
- /*?*/ pBox(0),
- /*?*/ pControls(0),
--/*?*/ eSymbolSet(SFX_SYMBOLS_SMALL),
-+/*?*/ eSymbolsSize(SFX_SYMBOLS_SIZE_SMALL),
- /*?*/ nIteratorPos(0),
- /*?*/ pResMgr(0),
- /*?*/ pBindings(0),
-@@ -174,7 +174,7 @@ struct TbRuntimeItemData
- /*?*/ pParent(_pParent),
- /*?*/ pBox(0),
- /*?*/ pControls(0),
--/*?*/ eSymbolSet(SFX_SYMBOLS_SMALL),
-+/*?*/ eSymbolsSize(SFX_SYMBOLS_SIZE_SMALL),
- /*?*/ nIteratorPos(0),
- /*?*/ pResMgr(rResId.GetResMgr()),
- /*?*/ pBindings(&rBindings),
-@@ -207,7 +207,7 @@ struct TbRuntimeItemData
- /*N*/ pParent(_pParent),
- /*N*/ pBox(0),
- /*N*/ pControls(0),
--/*N*/ eSymbolSet(SFX_SYMBOLS_SMALL),
-+/*N*/ eSymbolsSize(SFX_SYMBOLS_SIZE_SMALL),
- /*N*/ nIteratorPos(0),
- /*N*/ pResMgr(rResId.GetResMgr()),
- /*N*/ pBindings(&rBindings),
-@@ -238,7 +238,7 @@ struct TbRuntimeItemData
- //STRIP001 pParent(_pParent),
- //STRIP001 pBox(0),
- //STRIP001 pControls(0),
--//STRIP001 eSymbolSet(SFX_SYMBOLS_SMALL),
-+//STRIP001 eSymbolsSize(SFX_SYMBOLS_SIZE_SMALL),
- //STRIP001 nIteratorPos(0),
- //STRIP001 pResMgr(rResId.GetResMgr()),
- //STRIP001 pBindings(&rBindings),
-@@ -260,7 +260,7 @@ struct TbRuntimeItemData
- /*?*/ pParent(pTbx->pParent),
- /*?*/ pBox(pTbx->pBox),
- /*?*/ pControls(pTbx->pControls),
--/*?*/ eSymbolSet(pTbx->eSymbolSet),
-+/*?*/ eSymbolsSize(pTbx->eSymbolsSize),
- /*?*/ nIteratorPos(0),
- /*?*/ pResMgr(rResId.GetResMgr()),
- /*?*/ pBindings(pTbx->pBindings),
-@@ -987,7 +987,7 @@ void SfxToolBoxManager::AppendAddOnsItem
- //STRIP001 SfxDispatcher* pDisp = pBindings->GetDispatcher_Impl();
- //STRIP001 if ( pDisp )
- //STRIP001 xFrame = pDisp->GetFrame()->GetFrame()->GetFrameInterface();
--//STRIP001 BOOL bBigImages = ( SfxImageManager::GetCurrentSymbolSet() == SFX_SYMBOLS_LARGE );
-+//STRIP001 BOOL bBigImages = ( SfxImageManager::GetCurrentSymbolsSize() == SFX_SYMBOLS_SIZE_LARGE );
- //STRIP001
- //STRIP001 USHORT nCount = pBox->GetItemCount();
- //STRIP001 for ( USHORT nPos=0; nPos<nCount; nPos++ )
-Index: binfilter/inc/bf_sfx2/imgmgr.hxx
-===================================================================
-RCS file: /cvs/framework/binfilter/inc/bf_sfx2/imgmgr.hxx,v
-retrieving revision 1.3
-retrieving revision 1.2.148.2
-diff -u -p -u -p -r1.3 -r1.2.148.2
---- binfilter/inc/bf_sfx2/imgmgr.hxx 9 Sep 2005 12:22:05 -0000 1.3
-+++ binfilter/inc/bf_sfx2/imgmgr.hxx 1 Nov 2005 06:46:56 -0000 1.2.148.2
-@@ -62,7 +62,7 @@ class SfxImageManager
- SfxImageManagerData_Impl* pData;
- void* pHCImp; // internal use
-
-- void SetSymbolSet_Impl( sal_Int16 );
-+ void SetSymbolsSize_Impl( sal_Int16 );
- void SetOutStyle_Impl( sal_Int16 );
- void ExchangeItemImage_Impl( USHORT nId, const Image& rImage );
-
-@@ -77,7 +77,7 @@ public:
- static Image GetGlobalImage( USHORT nId, BOOL bBig );
- static Image GetGlobalImage( USHORT nId, BOOL bBig, BOOL bHiContrast );
- static ImageList* GetGlobalDefaultImageList( BOOL bBig, BOOL bHiContrast );
-- static sal_Int16 GetCurrentSymbolSet();
-+ static sal_Int16 GetCurrentSymbolsSize();
-
- // each document may have its own imagemanager, but all documents without an own
- // image configuration share the same instance
-Index: binfilter/inc/bf_sfx2/tbxmgr.hxx
-===================================================================
-RCS file: /cvs/framework/binfilter/inc/bf_sfx2/tbxmgr.hxx,v
-retrieving revision 1.3
-retrieving revision 1.2.148.2
-diff -u -p -u -p -r1.3 -r1.2.148.2
---- binfilter/inc/bf_sfx2/tbxmgr.hxx 9 Sep 2005 12:42:32 -0000 1.3
-+++ binfilter/inc/bf_sfx2/tbxmgr.hxx 1 Nov 2005 06:56:23 -0000 1.2.148.2
-@@ -72,7 +72,7 @@ friend class SfxToolbox;
- SfxToolBoxControlArr_Impl* pControls;
- SfxBindings* pBindings;
- USHORT nIteratorPos;
-- SfxSymbolSet eSymbolSet;
-+ SfxSymbolsSize eSymbolsSize;
- ResMgr* pResMgr;
- SfxInterface* pIFace;
- BOOL bInternal : 1;
-@@ -143,9 +143,9 @@ public:
- //STRIP001 USHORT GetId() const; // id of current binding if IsBinding()
-
- ToolBox& GetToolBox() const { return *pBox; }
-- SfxSymbolSet GetSymbolSet() const
-- {return eSymbolSet; }
-- void SetSymbolSet(SfxSymbolSet eNewSet);
-+ SfxSymbolsSize GetSymbolsSize() const
-+ {return eSymbolsSize; }
-+ void SetSymbolsSize(SfxSymbolsSize eNewSet);
- ButtonType GetButtonType() const
- { return pBox->GetButtonType(); }
- void SetButtonType( ButtonType eNewType);
diff --git a/patches/src680/cws-iconswitching1.diff b/patches/src680/cws-iconswitching1.diff
deleted file mode 100644
index 43706bedd..000000000
--- a/patches/src680/cws-iconswitching1.diff
+++ /dev/null
@@ -1,2837 +0,0 @@
-Index: officecfg/registry/data/org/openoffice/Setup.xcu
-===================================================================
-RCS file: /cvs/util/officecfg/registry/data/org/openoffice/Setup.xcu,v
-retrieving revision 1.24
-retrieving revision 1.22.20.3
-diff -u -p -u -p -r1.24 -r1.22.20.3
---- officecfg/registry/data/org/openoffice/Setup.xcu 11 Nov 2005 08:56:33 -0000 1.24
-+++ officecfg/registry/data/org/openoffice/Setup.xcu 30 Nov 2005 13:14:49 -0000 1.22.20.3
-@@ -614,6 +614,7 @@
- org.openoffice.Office.Common/Misc/SymbolSet
- org.openoffice.Office.Common/Misc/UseSystemFileDialog
- org.openoffice.Office.Common/Misc/UseSystemFileDialog
-+ org.openoffice.Office.Common/Misc/SymbolsStyle
- org.openoffice.Office.Common/OfficeObjects
- org.openoffice.Office.Common/Passwords
- org.openoffice.Office.Common/Print/PrintingModifiesDocument
-Index: officecfg/registry/schema/org/openoffice/Office/Common.xcs
-===================================================================
-RCS file: /cvs/util/officecfg/registry/schema/org/openoffice/Office/Common.xcs,v
-retrieving revision 1.110
-retrieving revision 1.107.122.5
-diff -u -p -u -p -r1.110 -r1.107.122.5
---- officecfg/registry/schema/org/openoffice/Office/Common.xcs 16 Nov 2005 09:17:02 -0000 1.110
-+++ officecfg/registry/schema/org/openoffice/Office/Common.xcs 30 Nov 2005 13:19:59 -0000 1.107.122.5
-@@ -4907,7 +4907,7 @@ Dymamic border coloring means that when
- <!-- UIHints: Tools Options General View -->
- <info>
- <author>MBA</author>
-- <desc>Specifies which symbol set is used for the toolbars.</desc>
-+ <desc>Specifies which size of the symbols is used for the toolbars.</desc>
- </info>
- <constraints>
- <enumeration oor:value="0">
-@@ -4922,6 +4922,41 @@ Dymamic border coloring means that when
- </enumeration>
- </constraints>
- <value>0</value>
-+ </prop>
-+ <prop oor:name="SymbolsStyle" oor:type="xs:string">
-+ <!-- UIHints: Tools Options General View -->
-+ <info>
-+ <author>kendy</author>
-+ <desc>Specifies which style of the symbols is used for the toolbars, menus, etc.</desc>
-+ </info>
-+ <constraints>
-+ <enumeration oor:value="auto">
-+ <info>
-+ <desc>Automatic, chosen according to the desktop</desc>
-+ </info>
-+ </enumeration>
-+ <enumeration oor:value="default">
-+ <info>
-+ <desc>Default - the OpenOffice.org default theme</desc>
-+ </info>
-+ </enumeration>
-+ <enumeration oor:value="hicontrast">
-+ <info>
-+ <desc>HiContrast</desc>
-+ </info>
-+ </enumeration>
-+ <enumeration oor:value="industrial">
-+ <info>
-+ <desc>Industrial - the Gnome default theme</desc>
-+ </info>
-+ </enumeration>
-+ <!--enumeration oor:value="crystal">
-+ <info>
-+ <desc>Crystal - the KDE default theme</desc>
-+ </info>
-+ </enumeration-->
-+ </constraints>
-+ <value>auto</value>
- </prop>
- <prop oor:name="ToolboxStyle" oor:type="xs:short">
- <!-- UIHints: Tools Options General View -->
-Index: ooo_custom_images/README.txt
-===================================================================
-RCS file: ooo_custom_images/README.txt
-diff -N ooo_custom_images/README.txt
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ ooo_custom_images/README.txt 22 Jul 2005 13:06:19 -0000 1.1.2.3
-@@ -0,0 +1,172 @@
-+How to add a new image set:
-+---------------------------
-+
-+- Create a directory for it here (let's call it e.g. new_set)
-+
-+- Add it to CUSTOM_IMAGE_SETS in solenv/inc/settings.mk
-+ (e.g. CUSTOM_IMAGE_SETS=hicontrast industrial crystal new_set
-+
-+- Add a SfxSymbolsStyle constant for it in svtools/inc/imgdef.hxx, e.g.
-+ SFX_SYMBOLS_STYLE_NEW_SET
-+
-+- Add a vcl constant for it in vcl/inc/settings.hxx, e.g.
-+ #define STYLE_SYMBOLS_NEW_SET ((ULONG)5)
-+
-+- Map the vcl constant to its real name in
-+ ::rtl::OUString StyleSettings::GetCurrentSymbolsStyleName() const
-+ in vcl/source/app/settings.cxx, e.g.
-+ case STYLE_SYMBOLS_NEW_SET: return ::rtl::OUString::createFromAscii( "new_set" );
-+
-+- Enhance the SFX_SYMBOLS_STYLE <-> STYLE_SYMBOLS converting functions
-+ static sal_Int16 implSymbolsStyleFromVCL( ULONG nStyle )
-+ and
-+ static ULONG implSymbolsStyleToVCL( sal_Int16 nStyle )
-+ in svtools/source/config/miscopt.cxx.
-+
-+- Add SFX_SYMBOLS_STYLE constant to 'switch( nStyleLB_NewSelection )' in
-+ BOOL OfaViewTabPage::FillItemSet( SfxItemSet& rSet )
-+ and to 'switch ( aMiscOptions.GetCurrentSymbolsStyle() )' in
-+ void OfaViewTabPage::Reset( const SfxItemSet& rSet )
-+ both in svx/source/dialog/optgdlg.cxx.
-+
-+- Add the new_set to 'SymbolsStyle' property
-+ in officecfg/registry/schema/org/openoffice/Office/Common.xcs.
-+
-+NOTE: The Crystal icon set is currently disabled, but reserved to be no. 4; it
-+cannot be committed to the OOo CVS at the moment.
-+Some Linux distros enable it and use ooo_crystal_images-*.tar.bz2 from
-+http://www.go-oo.org/packages/SRC680/ , here is the patch:
-+
-+--- officecfg/registry/schema/org/openoffice/Office/Common.xcs 2005-07-21 19:25:53.000000000 +0200
-++++ officecfg/registry/schema/org/openoffice/Office/Common.xcs 2005-07-21 19:49:08.000000000 +0200
-+@@ -4949,11 +4949,11 @@ Dymamic border coloring means that when
-+ <desc>Industrial</desc>
-+ </info>
-+ </enumeration>
-+- <!--enumeration oor:value="4">
-++ <enumeration oor:value="4">
-+ <info>
-+ <desc>Crystal</desc>
-+ </info>
-+- </enumeration-->
-++ </enumeration>
-+ </constraints>
-+ <value>0</value>
-+ </prop>
-+--- solenv/inc/settings.mk 2005-07-21 17:47:34.000000000 +0200
-++++ solenv/inc/settings.mk 2005-07-21 20:11:52.000000000 +0200
-+@@ -1111,7 +1111,7 @@ RSCDEFS+= -DDEBUG
-+ .ENDIF
-+
-+ # additional image sets
-+-CUSTOM_IMAGE_SETS=hicontrast industrial
-++CUSTOM_IMAGE_SETS=hicontrast industrial crystal
-+
-+ UNOIDL=unoidl
-+
-+--- svtools/inc/imgdef.hxx 2005-07-21 19:38:26.000000000 +0200
-++++ svtools/inc/imgdef.hxx 2005-07-20 16:04:06.000000000 +0200
-+@@ -74,8 +74,8 @@ enum SfxSymbolsStyle
-+ SFX_SYMBOLS_STYLE_AUTO,
-+ SFX_SYMBOLS_STYLE_DEFAULT,
-+ SFX_SYMBOLS_STYLE_HICONTRAST,
-+- SFX_SYMBOLS_STYLE_INDUSTRIAL
-+-// SFX_SYMBOLS_STYLE_CRYSTAL
-++ SFX_SYMBOLS_STYLE_INDUSTRIAL,
-++ SFX_SYMBOLS_STYLE_CRYSTAL
-+ };
-+
-+ #define SFX_TOOLBOX_CHANGESYMBOLSET 0x0001
-+--- svtools/source/config/miscopt.cxx 2005-07-21 19:39:08.000000000 +0200
-++++ svtools/source/config/miscopt.cxx 2005-07-20 16:23:18.000000000 +0200
-+@@ -282,7 +282,7 @@ static sal_Int16 implSymbolsStyleFromVCL
-+ case STYLE_SYMBOLS_DEFAULT: return SFX_SYMBOLS_STYLE_DEFAULT;
-+ case STYLE_SYMBOLS_HICONTRAST: return SFX_SYMBOLS_STYLE_HICONTRAST;
-+ case STYLE_SYMBOLS_INDUSTRIAL: return SFX_SYMBOLS_STYLE_INDUSTRIAL;
-+-// case STYLE_SYMBOLS_CRYSTAL: return SFX_SYMBOLS_STYLE_CRYSTAL;
-++ case STYLE_SYMBOLS_CRYSTAL: return SFX_SYMBOLS_STYLE_CRYSTAL;
-+ }
-+
-+ return SFX_SYMBOLS_STYLE_AUTO;
-+@@ -296,7 +296,7 @@ static ULONG implSymbolsStyleToVCL( sal_
-+ case SFX_SYMBOLS_STYLE_DEFAULT: return STYLE_SYMBOLS_DEFAULT;
-+ case SFX_SYMBOLS_STYLE_HICONTRAST: return STYLE_SYMBOLS_HICONTRAST;
-+ case SFX_SYMBOLS_STYLE_INDUSTRIAL: return STYLE_SYMBOLS_INDUSTRIAL;
-+-// case SFX_SYMBOLS_STYLE_CRYSTAL: return STYLE_SYMBOLS_CRYSTAL;
-++ case SFX_SYMBOLS_STYLE_CRYSTAL: return STYLE_SYMBOLS_CRYSTAL;
-+ }
-+
-+ return STYLE_SYMBOLS_AUTO;
-+--- svx/source/dialog/optgdlg.cxx 2005-07-21 19:34:37.000000000 +0200
-++++ svx/source/dialog/optgdlg.cxx 2005-07-20 16:13:44.000000000 +0200
-+@@ -853,7 +853,7 @@ BOOL OfaViewTabPage::FillItemSet( SfxIte
-+ case 1: eSet = SFX_SYMBOLS_STYLE_DEFAULT; break;
-+ case 2: eSet = SFX_SYMBOLS_STYLE_HICONTRAST; break;
-+ case 3: eSet = SFX_SYMBOLS_STYLE_INDUSTRIAL; break;
-+-// case 4: eSet = SFX_SYMBOLS_STYLE_CRYSTAL; break;
-++ case 4: eSet = SFX_SYMBOLS_STYLE_CRYSTAL; break;
-+ default:
-+ DBG_ERROR( "OfaViewTabPage::FillItemSet(): This state of aIconStyleLB should not be possible!" );
-+ }
-+@@ -1040,7 +1040,7 @@ void OfaViewTabPage::Reset( const SfxIte
-+ case SFX_SYMBOLS_STYLE_DEFAULT: nStyleLB_InitialSelection = 1; break;
-+ case SFX_SYMBOLS_STYLE_HICONTRAST: nStyleLB_InitialSelection = 2; break;
-+ case SFX_SYMBOLS_STYLE_INDUSTRIAL: nStyleLB_InitialSelection = 3; break;
-+-// case SFX_SYMBOLS_STYLE_CRYSTAL: nStyleLB_InitialSelection = 4; break;
-++ case SFX_SYMBOLS_STYLE_CRYSTAL: nStyleLB_InitialSelection = 4; break;
-+ default: nStyleLB_InitialSelection = 0; break;
-+ }
-+ }
-+--- svx/source/dialog/optgdlg.src 2005-07-21 19:35:26.000000000 +0200
-++++ svx/source/dialog/optgdlg.src 2005-07-20 16:13:46.000000000 +0200
-+@@ -289,7 +289,7 @@ TabPage OFA_TP_VIEW
-+ < "Standard" ; > ;
-+ < "HiContrast" ; > ;
-+ < "Industrial" ; > ;
-+-// < "Crystal" ; > ;
-++ < "Crystal" ; > ;
-+ };
-+ StringList [ en-US ] =
-+ {
-+@@ -297,7 +297,7 @@ TabPage OFA_TP_VIEW
-+ < "Default" ; > ;
-+ < "HiContrast" ; > ;
-+ < "Industrial" ; > ;
-+-// < "Crystal" ; > ;
-++ < "Crystal" ; > ;
-+ };
-+ };
-+ CheckBox CB_SYSTEM_FONT
-+--- vcl/inc/settings.hxx 2005-07-21 19:36:18.000000000 +0200
-++++ vcl/inc/settings.hxx 2005-07-20 16:04:07.000000000 +0200
-+@@ -548,7 +548,7 @@ private:
-+ #define STYLE_SYMBOLS_DEFAULT ((ULONG)1)
-+ #define STYLE_SYMBOLS_HICONTRAST ((ULONG)2)
-+ #define STYLE_SYMBOLS_INDUSTRIAL ((ULONG)3)
-+-//#define STYLE_SYMBOLS_CRYSTAL ((ULONG)4)
-++#define STYLE_SYMBOLS_CRYSTAL ((ULONG)4)
-+
-+ #define STYLE_CURSOR_NOBLINKTIME ((ULONG)0xFFFFFFFF)
-+
-+--- vcl/source/app/settings.cxx 2005-07-21 19:37:27.000000000 +0200
-++++ vcl/source/app/settings.cxx 2005-07-20 16:04:08.000000000 +0200
-+@@ -755,8 +755,8 @@ ULONG StyleSettings::GetCurrentSymbolsSt
-+
-+ if( rDesktopEnvironment.equalsIgnoreAsciiCaseAscii( "gnome" ) )
-+ snDesktopStyle = STYLE_SYMBOLS_INDUSTRIAL;
-+-// else if( rDesktopEnvironment.equalsIgnoreAsciiCaseAscii( "kde" ) )
-+-// snDesktopStyle = STYLE_SYMBOLS_CRYSTAL;
-++ else if( rDesktopEnvironment.equalsIgnoreAsciiCaseAscii( "kde" ) )
-++ snDesktopStyle = STYLE_SYMBOLS_CRYSTAL;
-+
-+ sbDesktopChecked = true;
-+ }
-+@@ -775,7 +775,7 @@ ULONG StyleSettings::GetCurrentSymbolsSt
-+ {
-+ case STYLE_SYMBOLS_HICONTRAST: return ::rtl::OUString::createFromAscii( "hicontrast" );
-+ case STYLE_SYMBOLS_INDUSTRIAL: return ::rtl::OUString::createFromAscii( "industrial" );
-+-// case STYLE_SYMBOLS_CRYSTAL: return ::rtl::OUString::createFromAscii( "crystal" );
-++ case STYLE_SYMBOLS_CRYSTAL: return ::rtl::OUString::createFromAscii( "crystal" );
-+ }
-+
-+ return ::rtl::OUString();
-Index: svx/source/dialog/cfg.cxx
-===================================================================
-RCS file: /cvs/graphics/svx/source/dialog/cfg.cxx,v
-retrieving revision 1.24
-retrieving revision 1.22.32.3
-diff -u -p -u -p -r1.24 -r1.22.32.3
---- svx/source/dialog/cfg.cxx 3 Nov 2005 11:53:21 -0000 1.24
-+++ svx/source/dialog/cfg.cxx 30 Nov 2005 13:28:38 -0000 1.22.32.3
-@@ -424,22 +424,7 @@ void InitImageType()
- css::ui::ImageType::COLOR_NORMAL |
- css::ui::ImageType::SIZE_DEFAULT;
-
-- sal_Int16 eOptSymbolSet = SvtMiscOptions().GetSymbolSet();
--
-- if ( eOptSymbolSet == SFX_SYMBOLS_AUTO )
-- {
-- // Use system settings, we have to retrieve the toolbar icon size
-- // from the Application class
-- ULONG nStyleIconSize =
-- Application::GetSettings().GetStyleSettings().GetToolbarIconSize();
--
-- if ( nStyleIconSize == STYLE_TOOLBAR_ICONSIZE_LARGE )
-- eOptSymbolSet = SFX_SYMBOLS_LARGE;
-- else
-- eOptSymbolSet = SFX_SYMBOLS_SMALL;
-- }
--
-- if ( eOptSymbolSet != SFX_SYMBOLS_SMALL )
-+ if ( SvtMiscOptions().AreCurrentSymbolsLarge() )
- {
- theImageType |= css::ui::ImageType::SIZE_LARGE;
- }
-Index: svx/source/dialog/optgdlg.cxx
-===================================================================
-RCS file: /cvs/graphics/svx/source/dialog/optgdlg.cxx,v
-retrieving revision 1.27
-retrieving revision 1.23.180.5
-diff -u -p -u -p -r1.27 -r1.23.180.5
---- svx/source/dialog/optgdlg.cxx 16 Nov 2005 10:03:21 -0000 1.27
-+++ svx/source/dialog/optgdlg.cxx 30 Nov 2005 13:33:35 -0000 1.23.180.5
-@@ -680,8 +680,9 @@ OfaViewTabPage::OfaViewTabPage(Window* p
- aUserInterfaceFL ( this, ResId( FL_USERINTERFACE ) ),
- aWindowSizeFT ( this, ResId( FT_WINDOWSIZE ) ),
- aWindowSizeMF ( this, ResId( MF_WINDOWSIZE ) ),
-- aIconSizeFT ( this, ResId( FT_ICONSIZE ) ),
-+ aIconSizeStyleFT ( this, ResId( FT_ICONSIZESTYLE ) ),
- aIconSizeLB ( this, ResId( LB_ICONSIZE ) ),
-+ aIconStyleLB ( this, ResId( LB_ICONSTYLE ) ),
- m_aSystemFont (this, ResId( CB_SYSTEM_FONT ) ),
- #if defined( UNX )
- aFontAntiAliasing ( this, ResId( CB_FONTANTIALIASING )),
-@@ -827,20 +828,37 @@ BOOL OfaViewTabPage::FillItemSet( SfxIte
- BOOL bMenuOptModified = FALSE;
-
- SvtMiscOptions aMiscOptions;
-- UINT16 nBigLB_NewSelection = aIconSizeLB.GetSelectEntryPos();
-- if( nBigLB_InitialSelection != nBigLB_NewSelection )
-+ UINT16 nSizeLB_NewSelection = aIconSizeLB.GetSelectEntryPos();
-+ if( nSizeLB_InitialSelection != nSizeLB_NewSelection )
- {
- // from now on it's modified, even if via auto setting the same size was set as now selected in the LB
-- sal_Int16 eSet = SFX_SYMBOLS_AUTO;
-- switch( nBigLB_NewSelection )
-+ sal_Int16 eSet = SFX_SYMBOLS_SIZE_AUTO;
-+ switch( nSizeLB_NewSelection )
- {
-- case 0: eSet = SFX_SYMBOLS_AUTO; break;
-- case 1: eSet = SFX_SYMBOLS_SMALL; break;
-- case 2: eSet = SFX_SYMBOLS_LARGE; break;
-+ case 0: eSet = SFX_SYMBOLS_SIZE_AUTO; break;
-+ case 1: eSet = SFX_SYMBOLS_SIZE_SMALL; break;
-+ case 2: eSet = SFX_SYMBOLS_SIZE_LARGE; break;
- default:
-- DBG_ERROR( "OfaViewTabPage::FillItemSet(): This state should not be possible!" );
-+ DBG_ERROR( "OfaViewTabPage::FillItemSet(): This state of aIconSizeLB should not be possible!" );
- }
-- aMiscOptions.SetSymbolSet( eSet );
-+ aMiscOptions.SetSymbolsSize( eSet );
-+ }
-+
-+ UINT16 nStyleLB_NewSelection = aIconStyleLB.GetSelectEntryPos();
-+ if( nStyleLB_InitialSelection != nStyleLB_NewSelection )
-+ {
-+ sal_Int16 eSet = SFX_SYMBOLS_STYLE_AUTO;
-+ switch( nStyleLB_NewSelection )
-+ {
-+ case 0: eSet = SFX_SYMBOLS_STYLE_AUTO; break;
-+ case 1: eSet = SFX_SYMBOLS_STYLE_DEFAULT; break;
-+ case 2: eSet = SFX_SYMBOLS_STYLE_HICONTRAST; break;
-+ case 3: eSet = SFX_SYMBOLS_STYLE_INDUSTRIAL; break;
-+// case 4: eSet = SFX_SYMBOLS_STYLE_CRYSTAL; break;
-+ default:
-+ DBG_ERROR( "OfaViewTabPage::FillItemSet(): This state of aIconStyleLB should not be possible!" );
-+ }
-+ aMiscOptions.SetSymbolsStyle( eSet );
- }
-
- BOOL bAppearanceChanged = FALSE;
-@@ -999,24 +1017,6 @@ BOOL OfaViewTabPage::FillItemSet( SfxIte
- /*-----------------06.12.96 11.50-------------------
-
- --------------------------------------------------*/
--static sal_Int16 GetCurrentSymbolSet()
--{
-- sal_Int16 eOptSymbolSet = SvtMiscOptions().GetSymbolSet();
--
-- if ( eOptSymbolSet == SFX_SYMBOLS_AUTO )
-- {
-- // Use system settings, we have to retrieve the toolbar icon size from the
-- // Application class
-- ULONG nStyleIconSize = Application::GetSettings().GetStyleSettings().GetToolbarIconSize();
-- if ( nStyleIconSize == STYLE_TOOLBAR_ICONSIZE_LARGE )
-- eOptSymbolSet = SFX_SYMBOLS_LARGE;
-- else
-- eOptSymbolSet = SFX_SYMBOLS_SMALL;
-- }
--
-- return eOptSymbolSet;
--}
--
- void OfaViewTabPage::Reset( const SfxItemSet& rSet )
- {
-
-@@ -1029,10 +1029,24 @@ void OfaViewTabPage::Reset( const SfxIte
-
- SvtMiscOptions aMiscOptions;
-
-- if( aMiscOptions.GetSymbolSet() != SFX_SYMBOLS_AUTO )
-- nBigLB_InitialSelection = ( GetCurrentSymbolSet() == SFX_SYMBOLS_LARGE )? 2 : 1;
-- aIconSizeLB.SelectEntryPos( nBigLB_InitialSelection );
-+ if( aMiscOptions.GetSymbolsSize() != SFX_SYMBOLS_SIZE_AUTO )
-+ nSizeLB_InitialSelection = ( aMiscOptions.AreCurrentSymbolsLarge() )? 2 : 1;
-+ aIconSizeLB.SelectEntryPos( nSizeLB_InitialSelection );
- aIconSizeLB.SaveValue();
-+
-+ if( aMiscOptions.GetSymbolsStyle() != SFX_SYMBOLS_STYLE_AUTO )
-+ {
-+ switch ( aMiscOptions.GetCurrentSymbolsStyle() )
-+ {
-+ case SFX_SYMBOLS_STYLE_DEFAULT: nStyleLB_InitialSelection = 1; break;
-+ case SFX_SYMBOLS_STYLE_HICONTRAST: nStyleLB_InitialSelection = 2; break;
-+ case SFX_SYMBOLS_STYLE_INDUSTRIAL: nStyleLB_InitialSelection = 3; break;
-+// case SFX_SYMBOLS_STYLE_CRYSTAL: nStyleLB_InitialSelection = 4; break;
-+ default: nStyleLB_InitialSelection = 0; break;
-+ }
-+ }
-+ aIconStyleLB.SelectEntryPos( nStyleLB_InitialSelection );
-+ aIconStyleLB.SaveValue();
-
- if( m_aSystemFont.IsEnabled() )
- {
-Index: svx/source/dialog/optgdlg.hrc
-===================================================================
-RCS file: /cvs/graphics/svx/source/dialog/optgdlg.hrc,v
-retrieving revision 1.16
-retrieving revision 1.14.234.3
-diff -u -p -u -p -r1.16 -r1.14.234.3
---- svx/source/dialog/optgdlg.hrc 11 Nov 2005 11:50:25 -0000 1.16
-+++ svx/source/dialog/optgdlg.hrc 30 Nov 2005 13:33:46 -0000 1.14.234.3
-@@ -70,9 +70,9 @@
- //#define OFFS_PUSHBUTTON_FIXEDTEXT(base) (base+(RSC_CD_PUSHBUTTON_HEIGHT-RSC_CD_FIXEDTEXT_HEIGHT)/2)
-
- #define ROW_MF_SCALING (13)
--#define ROW_FT_ICONSIZE (ROW_MF_SCALING+RSC_CD_DROPDOWN_HEIGHT+ROWSPACE)
--#define ROW_LB_ICONSIZE (ROW_FT_ICONSIZE+RSC_CD_FIXEDTEXT_HEIGHT+ROWSPACE)
--#define ROW_CB_SYSTEM_FONT (ROW_LB_ICONSIZE+RSC_CD_DROPDOWN_HEIGHT+ROWSPACE)
-+#define ROW_FT_ICONSIZESTYLE (ROW_MF_SCALING+RSC_CD_DROPDOWN_HEIGHT+ROWSPACE)
-+#define ROW_LB_ICONSIZESTYLE (ROW_FT_ICONSIZESTYLE+RSC_CD_FIXEDTEXT_HEIGHT+ROWSPACE)
-+#define ROW_CB_SYSTEM_FONT (ROW_LB_ICONSIZESTYLE+RSC_CD_DROPDOWN_HEIGHT+ROWSPACE)
- #define ROW_CB_FONTANTIALIASING (ROW_CB_SYSTEM_FONT+ (2 * RSC_CD_DROPDOWN_HEIGHT) +ROWSPACE)
- #define ROW_NF_AA_POINTLIMIT (ROW_CB_FONTANTIALIASING+RSC_CD_FIXEDLINE_HEIGHT+ROWSPACE)
-
-@@ -132,8 +132,9 @@
- #define BTN_DOCVIEW 51
- #define BTN_OPENWIN 52
- #define LB_ICONSIZE 53
--#define FT_ICONSIZE 54
--#define CB_SYSTEM_FONT 55
-+#define FT_ICONSIZESTYLE 54
-+#define LB_ICONSTYLE 55
-+#define CB_SYSTEM_FONT 56
-
- #define CB_FONT_SHOW 60
- #define CB_SHOW_INACTIVE 61
-Index: svx/source/dialog/optgdlg.hxx
-===================================================================
-RCS file: /cvs/graphics/svx/source/dialog/optgdlg.hxx,v
-retrieving revision 1.15
-retrieving revision 1.13.270.3
-diff -u -p -u -p -r1.15 -r1.13.270.3
---- svx/source/dialog/optgdlg.hxx 11 Nov 2005 11:50:38 -0000 1.15
-+++ svx/source/dialog/optgdlg.hxx 30 Nov 2005 13:33:57 -0000 1.13.270.3
-@@ -110,8 +110,9 @@ private:
- FixedLine aUserInterfaceFL;
- FixedText aWindowSizeFT;
- MetricField aWindowSizeMF;
-- FixedText aIconSizeFT;
-+ FixedText aIconSizeStyleFT;
- ListBox aIconSizeLB;
-+ ListBox aIconStyleLB;
- CheckBox m_aSystemFont;
-
- #if defined( UNX )
-@@ -147,7 +148,8 @@ private:
- FixedText aMouseMiddleFT;
- ListBox aMouseMiddleLB;
-
-- UINT16 nBigLB_InitialSelection;
-+ UINT16 nSizeLB_InitialSelection;
-+ UINT16 nStyleLB_InitialSelection;
- BOOL bSfxSymbolsAuto;
-
- SvtTabAppearanceCfg* pAppearanceCfg;
-Index: svx/source/dialog/optgdlg.src
-===================================================================
-RCS file: /cvs/graphics/svx/source/dialog/optgdlg.src,v
-retrieving revision 1.19
-retrieving revision 1.16.234.4
-diff -u -p -u -p -r1.19 -r1.16.234.4
---- svx/source/dialog/optgdlg.src 11 Nov 2005 11:50:55 -0000 1.19
-+++ svx/source/dialog/optgdlg.src 30 Nov 2005 13:34:06 -0000 1.16.234.4
-@@ -229,17 +229,17 @@ TabPage OFA_TP_VIEW
- Unit = FUNIT_CUSTOM ;
- CustomUnitText = "%" ;
- };
-- FixedText FT_ICONSIZE
-+ FixedText FT_ICONSIZESTYLE
- {
-- Pos = MAP_APPFONT ( 12 , ROW_FT_ICONSIZE ) ;
-+ Pos = MAP_APPFONT ( 12 , ROW_FT_ICONSIZESTYLE ) ;
- Size = MAP_APPFONT ( 114 , 8 ) ;
-- Text [ de ] = "Symbolgröße" ;
-- Text [ en-US ] = "Icon size" ;
-+ Text [ de ] = "Symbolgröße und Symbolstil" ;
-+ Text [ en-US ] = "Icon size and style" ;
- };
- ListBox LB_ICONSIZE
- {
-- Pos = MAP_APPFONT ( 12 , ROW_LB_ICONSIZE ) ;
-- Size = MAP_APPFONT ( 114 , 60 ) ;
-+ Pos = MAP_APPFONT ( 12 , ROW_LB_ICONSIZESTYLE ) ;
-+ Size = MAP_APPFONT ( 55 , 60 ) ;
- DropDown = TRUE ;
- Border = TRUE ;
- TabStop = TRUE ;
-@@ -256,6 +256,30 @@ TabPage OFA_TP_VIEW
- < "Large" ; > ;
- };
- };
-+ ListBox LB_ICONSTYLE
-+ {
-+ Pos = MAP_APPFONT ( 71 , ROW_LB_ICONSIZESTYLE ) ;
-+ Size = MAP_APPFONT ( 55 , 60 ) ;
-+ DropDown = TRUE ;
-+ Border = TRUE ;
-+ TabStop = TRUE ;
-+ StringList [ de ] =
-+ {
-+ < "Automatisch" ; > ;
-+ < "Standard" ; > ;
-+ < "HiContrast" ; > ;
-+ < "Industrial" ; > ;
-+// < "Crystal" ; > ;
-+ };
-+ StringList [ en-US ] =
-+ {
-+ < "Automatic" ; > ;
-+ < "Default" ; > ;
-+ < "HiContrast" ; > ;
-+ < "Industrial" ; > ;
-+// < "Crystal" ; > ;
-+ };
-+ };
- CheckBox CB_SYSTEM_FONT
- {
- TabStop = TRUE ;
-Index: svx/source/gallery2/galbrws2.cxx
-===================================================================
-RCS file: /cvs/graphics/svx/source/gallery2/galbrws2.cxx,v
-retrieving revision 1.47
-retrieving revision 1.45.332.3
-diff -u -p -u -p -r1.47 -r1.45.332.3
---- svx/source/gallery2/galbrws2.cxx 11 Nov 2005 11:03:30 -0000 1.47
-+++ svx/source/gallery2/galbrws2.cxx 30 Nov 2005 13:37:25 -0000 1.45.332.3
-@@ -1222,21 +1222,14 @@ IMPL_LINK( GalleryBrowser2, SelectTbxHdl
- IMPL_LINK( GalleryBrowser2, MiscHdl, void*, p )
- {
- sal_uInt16 nIconResId, nListResId;
-- sal_Int16 eOptSymbolSet = maMiscOptions.GetSymbolSet();
- const sal_Bool bHC = GALLERY_DLG_COLOR.IsDark();
-
-- if( SFX_SYMBOLS_AUTO == eOptSymbolSet )
-- {
-- eOptSymbolSet = ( Application::GetSettings().GetStyleSettings().GetToolbarIconSize() == STYLE_TOOLBAR_ICONSIZE_LARGE ) ?
-- SFX_SYMBOLS_LARGE : SFX_SYMBOLS_SMALL;
-- }
--
- maViewBox.SetOutStyle( maMiscOptions.GetToolboxStyle() );
-
- BitmapEx aIconBmpEx = BitmapEx( Image( GAL_RESID( bHC? RID_SVXIMG_GALLERY_VIEW_ICON_HC : RID_SVXIMG_GALLERY_VIEW_ICON ) ).GetBitmapEx() );
- BitmapEx aListBmpEx = BitmapEx( Image( GAL_RESID( bHC? RID_SVXIMG_GALLERY_VIEW_LIST_HC : RID_SVXIMG_GALLERY_VIEW_LIST ) ).GetBitmapEx() );
-
-- if( SFX_SYMBOLS_SMALL != eOptSymbolSet )
-+ if( maMiscOptions.AreCurrentSymbolsLarge() )
- {
- const Size aLargeSize( 24, 24);
-
-Index: instsetoo_native/packimages/makefile.mk
-===================================================================
-RCS file: /cvs/installation/instsetoo_native/packimages/makefile.mk,v
-retrieving revision 1.10
-retrieving revision 1.9.90.2
-diff -u -p -u -p -r1.10 -r1.9.90.2
---- instsetoo_native/packimages/makefile.mk 7 Sep 2005 18:24:44 -0000 1.10
-+++ instsetoo_native/packimages/makefile.mk 1 Nov 2005 14:35:03 -0000 1.9.90.2
-@@ -47,7 +47,7 @@ IMAGES := $(COMMONBIN)$/images.zip
- CUSTOM_PREFERRED_FALLBACK=$(SOLARSRC)$/ooo_custom_images$/industrial
- CUSTOM_IMAGES=$(foreach,i,$(CUSTOM_IMAGE_SETS) images_$i)
-
--ALLTAR : $(IMAGES) $(CUSTOM_IMAGES)
-+ALLTAR : $(IMAGES) $(SOLARSRC)$/ooo_custom_images$/hicontrast $(CUSTOM_IMAGES)
-
- $(RES)$/img$/commandimagelist.ilst .PHONY :
- +-$(MKDIR) $(RES)$/img
-@@ -62,5 +62,8 @@ $(RES)$/img$/commandimagelist.ilst .PHON
- $(COMMONBIN)$/images.zip .PHONY: $(RES)$/img$/commandimagelist.ilst
- +$(PERL) $(SOLARENV)$/bin$/packimages.pl -g $(SOLARSRC)$/$(RSCDEFIMG) -m $(SOLARSRC)$/$(RSCDEFIMG) -c $(RSCCUSTOMIMG) -l $(SOLARCOMMONRESDIR)$/img -l $(RES)$/img -o $@
-
--images_% :
-+images_% : $(RES)$/img$/commandimagelist.ilst
- +$(PERL) $(SOLARENV)$/bin$/packimages.pl -g $(SOLARSRC)$/$(RSCDEFIMG) -m $(SOLARSRC)$/$(RSCDEFIMG) -c $(RSCCUSTOMIMG) -c $(SOLARSRC)$/ooo_custom_images/$(@:s/images_//) -c $(CUSTOM_PREFERRED_FALLBACK) -l $(SOLARCOMMONRESDIR)$/img -l $(RES)$/img -o $(COMMONBIN)$/$@.zip
-+
-+$(SOLARSRC)$/ooo_custom_images$/hicontrast : $(RES)$/img$/commandimagelist.ilst
-+ +$(PERL) $(SOLARENV)$/bin$/hicontrast-to-theme.pl $(SOLARSRC)$/default_images $@
-Index: dbaccess/source/ui/dlg/indexdialog.cxx
-===================================================================
-RCS file: /cvs/dba/dbaccess/source/ui/dlg/indexdialog.cxx,v
-retrieving revision 1.23
-retrieving revision 1.19.76.2
-diff -u -p -u -p -r1.23 -r1.19.76.2
---- dbaccess/source/ui/dlg/indexdialog.cxx 5 Oct 2005 14:46:33 -0000 1.23
-+++ dbaccess/source/ui/dlg/indexdialog.cxx 1 Nov 2005 15:33:12 -0000 1.19.76.2
-@@ -923,7 +923,7 @@ DBG_NAME(DbaIndexDialog)
- {
- sal_Int16 nN = IMG_INDEX_DLG_SC;
- sal_Int16 nH = IMG_INDEX_DLG_SCH;
-- if ( _eBitmapSet == SFX_SYMBOLS_LARGE )
-+ if ( _eBitmapSet == SFX_SYMBOLS_SIZE_LARGE )
- {
- nN = IMG_INDEX_DLG_LC;
- nH = IMG_INDEX_DLG_LCH;
-Index: dbaccess/source/ui/inc/ToolBoxHelper.hxx
-===================================================================
-RCS file: /cvs/dba/dbaccess/source/ui/inc/ToolBoxHelper.hxx,v
-retrieving revision 1.6
-retrieving revision 1.5.264.2
-diff -u -p -u -p -r1.6 -r1.5.264.2
---- dbaccess/source/ui/inc/ToolBoxHelper.hxx 8 Sep 2005 15:40:11 -0000 1.6
-+++ dbaccess/source/ui/inc/ToolBoxHelper.hxx 1 Nov 2005 15:47:41 -0000 1.5.264.2
-@@ -55,7 +55,7 @@ namespace dbaui
- class OToolBoxHelper
- {
- sal_Bool m_bIsHiContrast;// true when the toolbox is in hi contrast mode
-- sal_Int16 m_nBitmapSet; // shows the toolbox large or small bitmaps
-+ sal_Int16 m_nSymbolsSize; // shows the toolbox large or small bitmaps
- ToolBox* m_pToolBox; // our toolbox (may be NULL)
- public:
- OToolBoxHelper();
-@@ -68,12 +68,12 @@ namespace dbaui
- virtual void resizeControls(const Size& _rDiff) = 0;
-
- /** will be called whenthe id of the image list is needed.
-- @param _eBitmapSet
-+ @param _eSymbolsSize
- <svtools/imgdef.hxx>
- @param _bHiContast
- <TRUE/> when in high contrast mode.
- */
-- virtual sal_Int16 getImageListId(sal_Int16 _eBitmapSet,sal_Bool _bHiContast) const = 0;
-+ virtual sal_Int16 getImageListId(sal_Int16 _eSymbolsSize,sal_Bool _bHiContast) const = 0;
-
- /** only the member will be set, derived classes can overload this function and do what need to be done.
- @param _pTB
-@@ -91,7 +91,6 @@ namespace dbaui
-
- /** retrieve the current symbol set from misc options
- and system settings */
-- sal_Int16 getCurrentSymbolSet();
-
- inline sal_Bool isToolBoxHiContrast() const { return m_bIsHiContrast; }
- protected:
-Index: dbaccess/source/ui/misc/ToolBoxHelper.cxx
-===================================================================
-RCS file: /cvs/dba/dbaccess/source/ui/misc/ToolBoxHelper.cxx,v
-retrieving revision 1.5
-retrieving revision 1.3.378.2
-diff -u -p -u -p -r1.5 -r1.3.378.2
---- dbaccess/source/ui/misc/ToolBoxHelper.cxx 23 Sep 2005 12:38:14 -0000 1.5
-+++ dbaccess/source/ui/misc/ToolBoxHelper.cxx 1 Nov 2005 16:03:27 -0000 1.3.378.2
-@@ -61,11 +61,11 @@ namespace dbaui
- OToolBoxHelper::OToolBoxHelper()
- : m_bIsHiContrast(sal_False)
- ,m_pToolBox(NULL)
-- ,m_nBitmapSet(-1 )
-+ ,m_nSymbolsSize(-1 )
- {
-- DBG_CTOR(OToolBoxHelper,NULL);
-+ DBG_CTOR(OToolBoxHelper,NULL);
-
-- OSL_ENSURE(m_nBitmapSet != getCurrentSymbolSet(),"BitmapSet should not be identical");
-+ OSL_ENSURE(m_nSymbolsSize != SvtMiscOptions().GetCurrentSymbolsSize(),"SymbolsSize should not be identical");
- SvtMiscOptions().AddListener( LINK( this, OToolBoxHelper, ConfigOptionsChanged ) );
- Application::AddEventListener( LINK( this, OToolBoxHelper, SettingsChanged ) );
- }
-@@ -74,42 +74,23 @@ namespace dbaui
- {
- SvtMiscOptions().RemoveListener( LINK( this, OToolBoxHelper, ConfigOptionsChanged ) );
- Application::RemoveEventListener( LINK( this, OToolBoxHelper, SettingsChanged ) );
--
-- DBG_DTOR(OToolBoxHelper,NULL);
-- }
-- // -----------------------------------------------------------------------------
-- sal_Int16 OToolBoxHelper::getCurrentSymbolSet()
-- {
-- sal_Int16 eOptSymbolSet = SvtMiscOptions().GetSymbolSet();
--
-- if ( eOptSymbolSet == SFX_SYMBOLS_AUTO )
-- {
-- // Use system settings, we have to retrieve the toolbar icon size from the
-- // Application class
-- ULONG nStyleIconSize = Application::GetSettings().GetStyleSettings().GetToolbarIconSize();
-- if ( nStyleIconSize == STYLE_TOOLBAR_ICONSIZE_LARGE )
-- eOptSymbolSet = SFX_SYMBOLS_LARGE;
-- else
-- eOptSymbolSet = SFX_SYMBOLS_SMALL;
-- }
--
-- return eOptSymbolSet;
-- }
-+ DBG_DTOR(OToolBoxHelper,NULL);
-+ }
-
- // -----------------------------------------------------------------------------
- void OToolBoxHelper::checkImageList()
- {
- if ( m_pToolBox )
- {
-- sal_Int16 nCurBitmapSet = getCurrentSymbolSet();
-- if ( nCurBitmapSet != m_nBitmapSet ||
-+ sal_Int16 nCurSymbolsSize = SvtMiscOptions().GetCurrentSymbolsSize();
-+ if ( nCurSymbolsSize != m_nSymbolsSize ||
- m_bIsHiContrast != m_pToolBox->GetBackground().GetColor().IsDark() )
- {
-- m_nBitmapSet = nCurBitmapSet;
-+ m_nSymbolsSize = nCurSymbolsSize;
- m_bIsHiContrast = m_pToolBox->GetBackground().GetColor().IsDark();
-
-
-- m_pToolBox->SetImageList( ModuleRes( getImageListId(m_nBitmapSet,m_bIsHiContrast) ) );
-+ m_pToolBox->SetImageList( ModuleRes( getImageListId(m_nSymbolsSize,m_bIsHiContrast) ) );
- Size aTbOldSize = m_pToolBox->GetSizePixel();
- adjustToolBoxSize(m_pToolBox);
- Size aTbNewSize = m_pToolBox->GetSizePixel();
-Index: vcl/inc/image.hxx
-===================================================================
-RCS file: /cvs/gsl/vcl/inc/image.hxx,v
-retrieving revision 1.12
-retrieving revision 1.11.148.2
-diff -u -p -u -p -r1.12 -r1.11.148.2
---- vcl/inc/image.hxx 9 Sep 2005 11:01:51 -0000 1.12
-+++ vcl/inc/image.hxx 1 Nov 2005 16:47:34 -0000 1.11.148.2
-@@ -206,6 +206,7 @@ private:
-
- SAL_DLLPRIVATE void ImplInitBitmapEx( const ::rtl::OUString& rUserImageName,
- const ::std::vector< ::rtl::OUString >& rImageNames,
-+ const ::rtl::OUString& rSymbolsStyle,
- BitmapEx& rBmpEx,
- const Color* pMaskColor ) const;
- SAL_DLLPRIVATE void ImplInit( const BitmapEx& rBitmapEx, USHORT nInit, const USHORT* pIdAry, const ::std::vector< ::rtl::OUString >* pNames, USHORT nGrow );
-Index: vcl/inc/impimagetree.hxx
-===================================================================
-RCS file: /cvs/gsl/vcl/inc/impimagetree.hxx,v
-retrieving revision 1.7
-retrieving revision 1.6.148.2
-diff -u -p -u -p -r1.7 -r1.6.148.2
---- vcl/inc/impimagetree.hxx 9 Sep 2005 11:04:33 -0000 1.7
-+++ vcl/inc/impimagetree.hxx 1 Nov 2005 16:48:52 -0000 1.6.148.2
-@@ -63,7 +63,10 @@ public:
- ImplImageTree();
- ~ImplImageTree();
-
-- bool loadImage( const ::rtl::OUString& rName, BitmapEx& rReturn, bool bSearchLanguageDependent = false );
-+ bool loadImage( const ::rtl::OUString& rName,
-+ const ::rtl::OUString& rSymbolsStyle,
-+ BitmapEx& rReturn,
-+ bool bSearchLanguageDependent = false );
- void addUserImage( const ::rtl::OUString& rName, const BitmapEx& rReturn );
-
- static void cleanup();
-@@ -75,15 +78,17 @@ private:
- ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > mxPathSettings;
- ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XSimpleFileAccess > mxFileAccess;
- bool mbInit;
--
-+ ::rtl::OUString maSymbolsStyle;
-+
- bool implInit();
-- const ::rtl::OUString& implGetZipFileURL() const;
-+ ::rtl::OUString implGetZipFileURL( bool bWithStyle = true ) const;
- const ::rtl::OUString& implGetUserDirURL() const;
- ::rtl::OUString implGetUserFileURL( const ::rtl::OUString& rName ) const;
- void implCheckUserCache();
- bool implLoadFromStream( SvStream& rIStm, const ::rtl::OUString& rFileName, BitmapEx& rReturn );
- ::std::auto_ptr< SvStream > implGetStream( const ::com::sun::star::uno::Reference<
- ::com::sun::star::io::XInputStream >& rxIStm ) const;
-+ void implUpdateSymbolsStyle( const ::rtl::OUString& rSymbolsStyle );
- };
-
- typedef ::salhelper::SingletonRef< ImplImageTree > ImplImageTreeSingletonRef;
-Index: vcl/inc/settings.hxx
-===================================================================
-RCS file: /cvs/gsl/vcl/inc/settings.hxx,v
-retrieving revision 1.30
-retrieving revision 1.29.210.4
-diff -u -p -u -p -r1.30 -r1.29.210.4
---- vcl/inc/settings.hxx 9 Sep 2005 11:25:28 -0000 1.30
-+++ vcl/inc/settings.hxx 4 Nov 2005 14:56:06 -0000 1.29.210.4
-@@ -428,6 +428,7 @@ private:
- ULONG mnLogoDisplayTime;
- ULONG mnDisplayOptions;
- ULONG mnToolbarIconSize;
-+ ULONG mnSymbolsStyle;
- ULONG mnUseFlatMenues;
- ULONG mnOptions;
- USHORT mnScreenZoom;
-@@ -517,6 +518,12 @@ private:
- #define STYLE_TOOLBAR_ICONSIZE_SMALL ((ULONG)1)
- #define STYLE_TOOLBAR_ICONSIZE_LARGE ((ULONG)2)
-
-+#define STYLE_SYMBOLS_AUTO ((ULONG)0)
-+#define STYLE_SYMBOLS_DEFAULT ((ULONG)1)
-+#define STYLE_SYMBOLS_HICONTRAST ((ULONG)2)
-+#define STYLE_SYMBOLS_INDUSTRIAL ((ULONG)3)
-+//#define STYLE_SYMBOLS_CRYSTAL ((ULONG)4)
-+
- #define STYLE_CURSOR_NOBLINKTIME ((ULONG)0xFFFFFFFF)
-
- class VCL_DLLPUBLIC StyleSettings
-@@ -904,6 +911,19 @@ public:
- ULONG GetToolbarIconSize() const
- { return mpData->mnToolbarIconSize; }
-
-+ void SetSymbolsStyle( ULONG nStyle )
-+ { CopyData(); mpData->mnSymbolsStyle = nStyle; }
-+ ULONG GetSymbolsStyle() const
-+ { return mpData->mnSymbolsStyle; }
-+ ULONG GetCurrentSymbolsStyle() const;
-+
-+ void SetSymbolsStyleName( const ::rtl::OUString &rName )
-+ { return SetSymbolsStyle( ImplNameToSymbolsStyle( rName ) ); }
-+ ::rtl::OUString GetSymbolsStyleName() const
-+ { return ImplSymbolsStyleToName( GetSymbolsStyle() ); }
-+ ::rtl::OUString GetCurrentSymbolsStyleName() const
-+ { return ImplSymbolsStyleToName( GetCurrentSymbolsStyle() ); }
-+
- void SetStandardStyles();
- void SetStandardWinStyles();
- void SetStandardOS2Styles();
-@@ -915,6 +935,10 @@ public:
- BOOL operator ==( const StyleSettings& rSet ) const;
- BOOL operator !=( const StyleSettings& rSet ) const
- { return !(*this == rSet); }
-+
-+protected:
-+ ::rtl::OUString ImplSymbolsStyleToName( ULONG nStyle ) const;
-+ ULONG ImplNameToSymbolsStyle( const ::rtl::OUString &rName ) const;
- };
-
- // ----------------
-Index: vcl/source/app/settings.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/app/settings.cxx,v
-retrieving revision 1.54
-retrieving revision 1.53.182.4
-diff -u -p -u -p -r1.54 -r1.53.182.4
---- vcl/source/app/settings.cxx 9 Sep 2005 11:41:53 -0000 1.54
-+++ vcl/source/app/settings.cxx 4 Nov 2005 14:56:07 -0000 1.53.182.4
-@@ -40,6 +40,9 @@
- #include <tools/isolang.hxx>
- #endif
-
-+#ifndef _SV_SVAPP_HXX
-+#include <svapp.hxx>
-+#endif
- #ifndef _SV_SVDATA_HXX
- #include <svdata.hxx>
- #endif
-@@ -464,6 +467,7 @@ ImplStyleData::ImplStyleData()
- mnOptions = 0;
- mnAutoMnemonic = 1;
- mnToolbarIconSize = STYLE_TOOLBAR_ICONSIZE_UNKNOWN;
-+ mnSymbolsStyle = STYLE_SYMBOLS_AUTO;
-
- SetStandardStyles();
- }
-@@ -561,6 +565,7 @@ ImplStyleData::ImplStyleData( const Impl
- mnAutoMnemonic = rData.mnAutoMnemonic;
- mnUseImagesInMenus = rData.mnUseImagesInMenus;
- mnToolbarIconSize = rData.mnToolbarIconSize;
-+ mnSymbolsStyle = rData.mnSymbolsStyle;
- }
-
- // -----------------------------------------------------------------------
-@@ -705,6 +710,66 @@ void StyleSettings::Set3DColors( const C
- mpData->maLightColor = Color( COL_WHITE );
- mpData->maShadowColor = Color( COL_GRAY );
- }
-+}
-+
-+// -----------------------------------------------------------------------
-+
-+::rtl::OUString StyleSettings::ImplSymbolsStyleToName( ULONG nStyle ) const
-+{
-+ switch ( nStyle )
-+ {
-+ case STYLE_SYMBOLS_DEFAULT: return ::rtl::OUString::createFromAscii( "default" );
-+ case STYLE_SYMBOLS_HICONTRAST: return ::rtl::OUString::createFromAscii( "hicontrast" );
-+ case STYLE_SYMBOLS_INDUSTRIAL: return ::rtl::OUString::createFromAscii( "industrial" );
-+// case STYLE_SYMBOLS_CRYSTAL: return ::rtl::OUString::createFromAscii( "crystal" );
-+ }
-+
-+ return ::rtl::OUString::createFromAscii( "auto" );
-+}
-+
-+// -----------------------------------------------------------------------
-+
-+ULONG StyleSettings::ImplNameToSymbolsStyle( const ::rtl::OUString &rName ) const
-+{
-+ if ( rName == ::rtl::OUString::createFromAscii( "default" ) )
-+ return STYLE_SYMBOLS_DEFAULT;
-+ else if ( rName == ::rtl::OUString::createFromAscii( "hicontrast" ) )
-+ return STYLE_SYMBOLS_HICONTRAST;
-+ else if ( rName == ::rtl::OUString::createFromAscii( "industrial" ) )
-+ return STYLE_SYMBOLS_INDUSTRIAL;
-+// else if ( rName == ::rtl::OUString::createFromAscii( "crystal" ) )
-+// return STYLE_SYMBOLS_CRYSTAL;
-+
-+ return STYLE_SYMBOLS_AUTO;
-+}
-+
-+// -----------------------------------------------------------------------
-+
-+ULONG StyleSettings::GetCurrentSymbolsStyle() const
-+{
-+ ULONG nStyle = GetSymbolsStyle();
-+
-+ if ( nStyle == STYLE_SYMBOLS_AUTO )
-+ {
-+ static bool sbDesktopChecked = false;
-+ static ULONG snDesktopStyle = STYLE_SYMBOLS_DEFAULT;
-+
-+ if ( !sbDesktopChecked )
-+ {
-+ const ::rtl::OUString &rDesktopEnvironment = Application::GetDesktopEnvironment();
-+
-+ if( rDesktopEnvironment.equalsIgnoreAsciiCaseAscii( "gnome" ) )
-+ snDesktopStyle = STYLE_SYMBOLS_INDUSTRIAL;
-+// else if( rDesktopEnvironment.equalsIgnoreAsciiCaseAscii( "kde" ) )
-+// snDesktopStyle = STYLE_SYMBOLS_CRYSTAL;
-+
-+ sbDesktopChecked = true;
-+ }
-+
-+ nStyle = GetHighContrastMode()? STYLE_SYMBOLS_HICONTRAST: snDesktopStyle;
-+ }
-+
-+ return nStyle;
- }
-
- // -----------------------------------------------------------------------
-Index: vcl/source/gdi/bitmapex.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/gdi/bitmapex.cxx,v
-retrieving revision 1.16
-retrieving revision 1.15.14.2
-diff -u -p -u -p -r1.16 -r1.15.14.2
---- vcl/source/gdi/bitmapex.cxx 9 Sep 2005 11:53:46 -0000 1.16
-+++ vcl/source/gdi/bitmapex.cxx 1 Nov 2005 17:18:39 -0000 1.15.14.2
-@@ -67,6 +67,9 @@
- #ifndef _SV_RC_H
- #include <tools/rc.h>
- #endif
-+#ifndef _SV_SVAPP_HXX
-+#include <svapp.hxx>
-+#endif
-
- // ------------
- // - BitmapEx -
-@@ -104,8 +107,9 @@ BitmapEx::BitmapEx( const ResId& rResId
- pResMgr->ReadLong();
-
- const String aFileName( pResMgr->ReadString() );
-+ ::rtl::OUString aCurrentSymbolsStyle = Application::GetSettings().GetStyleSettings().GetCurrentSymbolsStyleName();
-
-- if( !aImageTree->loadImage( aFileName, *this ) )
-+ if( !aImageTree->loadImage( aFileName, aCurrentSymbolsStyle, *this ) )
- {
- #ifdef DBG_UTIL
- ByteString aErrorStr( "BitmapEx::BitmapEx( const ResId& rResId ): could not load image <" );
-Index: vcl/source/gdi/image.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/gdi/image.cxx,v
-retrieving revision 1.21
-retrieving revision 1.20.148.2
-diff -u -p -u -p -r1.21 -r1.20.148.2
---- vcl/source/gdi/image.cxx 9 Sep 2005 11:59:48 -0000 1.21
-+++ vcl/source/gdi/image.cxx 1 Nov 2005 17:21:44 -0000 1.20.148.2
-@@ -535,8 +535,11 @@ ImageList::ImageList( const ResId& rResI
-
- aUserImageName += ::rtl::OUString::valueOf( static_cast< sal_Int32 >( rResId.GetId() ) );
- aUserImageName += ::rtl::OUString::valueOf( nCount );
-+
-+ ::rtl::OUString aCurrentSymbolsStyle = Application::GetSettings().GetStyleSettings().GetCurrentSymbolsStyleName();
-+ aUserImageName += aCurrentSymbolsStyle;
-
-- ImplInitBitmapEx( aUserImageName, aImageNames, aBmpEx, spMaskColor.get() );
-+ ImplInitBitmapEx( aUserImageName, aImageNames, aCurrentSymbolsStyle, aBmpEx, spMaskColor.get() );
-
- if( nObjMask & RSC_IMAGELIST_IDCOUNT )
- pResMgr->ReadShort();
-@@ -568,8 +571,11 @@ ImageList::ImageList( const ::std::vecto
-
- aUserImageName = ( ( aUserImageName += rLocale.Language ) += rLocale.Country ).replace( '/', '_' );
- aUserImageName += ::rtl::OUString::valueOf( static_cast< sal_Int32 >( rNameVector.size() ) );
-+
-+ ::rtl::OUString aCurrentSymbolsStyle = Application::GetSettings().GetStyleSettings().GetCurrentSymbolsStyleName();
-+ aUserImageName += aCurrentSymbolsStyle;
-
-- ImplInitBitmapEx( aUserImageName, aImageNames, aBmpEx, pMaskColor );
-+ ImplInitBitmapEx( aUserImageName, aImageNames, aCurrentSymbolsStyle, aBmpEx, pMaskColor );
- ImplInit( aBmpEx, static_cast< USHORT >( rNameVector.size() ), NULL, &rNameVector, 4 );
- }
-
-@@ -669,12 +675,13 @@ ImageList::~ImageList()
-
- void ImageList::ImplInitBitmapEx( const ::rtl::OUString& rUserImageName,
- const ::std::vector< ::rtl::OUString >& rImageNames,
-+ const ::rtl::OUString& rSymbolsStyle,
- BitmapEx& rBmpEx,
- const Color* pMaskColor ) const
- {
- static ImplImageTreeSingletonRef aImageTree;
-
-- if( !aImageTree->loadImage( rUserImageName, rBmpEx ) )
-+ if( !aImageTree->loadImage( rUserImageName, rSymbolsStyle, rBmpEx ) )
- {
- BitmapEx aCurBmpEx;
- Size aItemSizePixel;
-@@ -682,7 +689,7 @@ void ImageList::ImplInitBitmapEx( const
-
- for( sal_Int32 i = 0, nCount = rImageNames.size(); i < nCount; ++i )
- {
-- if( aImageTree->loadImage( rImageNames[ i ], aCurBmpEx, true ) )
-+ if( aImageTree->loadImage( rImageNames[ i ], rSymbolsStyle, aCurBmpEx, true ) )
- {
- const Size aCurSizePixel( aCurBmpEx.GetSizePixel() );
-
-Index: vcl/source/gdi/impimagetree.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/gdi/impimagetree.cxx,v
-retrieving revision 1.8
-retrieving revision 1.7.148.2
-diff -u -p -u -p -r1.8 -r1.7.148.2
---- vcl/source/gdi/impimagetree.cxx 9 Sep 2005 12:01:47 -0000 1.8
-+++ vcl/source/gdi/impimagetree.cxx 1 Nov 2005 17:22:54 -0000 1.7.148.2
-@@ -92,7 +92,8 @@
- #include <hash_map>
-
- #define DEFAULT_PROJECTNAME "res"
--#define IMAGES_ZIPFILENAME "images.zip"
-+#define IMAGES_ZIPFILENAME_PREFIX "images"
-+#define IMAGES_ZIPFILENAME_SUFFIX ".zip"
- #define IMAGES_CACHEDIR "imagecache"
-
- using namespace ::com::sun::star;
-@@ -107,7 +108,8 @@ static BmpExHashMap aBmpExHashMap;
- // -----------------------------------------------------------------------
-
- ImplImageTree::ImplImageTree() :
-- mbInit( false )
-+ mbInit( false ),
-+ maSymbolsStyle( Application::GetSettings().GetStyleSettings().GetCurrentSymbolsStyleName() )
- {
- }
-
-@@ -186,13 +188,20 @@ bool ImplImageTree::implInit()
-
- // -----------------------------------------------------------------------
-
--const ::rtl::OUString& ImplImageTree::implGetZipFileURL() const
-+::rtl::OUString ImplImageTree::implGetZipFileURL( bool bWithStyle ) const
- {
-- static ::rtl::OUString aRet;
-+ ::rtl::OUString aRet;
-
- if( !aRet.getLength() && mxPathSettings.is() && mxFileAccess.is() )
- {
-- const ::rtl::OUString aZipFileName( ::rtl::OUString::createFromAscii( IMAGES_ZIPFILENAME ) );
-+ ::rtl::OUString aZipFileName( ::rtl::OUString::createFromAscii( IMAGES_ZIPFILENAME_PREFIX ) );
-+ if ( bWithStyle && maSymbolsStyle.getLength() > 0 )
-+ {
-+ aZipFileName += ::rtl::OUString::createFromAscii( "_" );
-+ aZipFileName += maSymbolsStyle;
-+ }
-+ aZipFileName += ::rtl::OUString::createFromAscii( IMAGES_ZIPFILENAME_SUFFIX );
-+
- uno::Any aAny( mxPathSettings->getPropertyValue( ::rtl::OUString::createFromAscii( "UserConfig" ) ) );
- INetURLObject aZipURL;
-
-@@ -212,7 +221,10 @@ const ::rtl::OUString& ImplImageTree::im
-
- if( !mxFileAccess->exists( aRet = aZipURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
- {
-- aRet = ::rtl::OUString();
-+ if ( bWithStyle && maSymbolsStyle.getLength() > 0 )
-+ aRet = implGetZipFileURL( false ); // Try without style
-+ else
-+ aRet = ::rtl::OUString();
- }
- }
- }
-@@ -369,8 +381,35 @@ bool ImplImageTree::implLoadFromStream(
-
- // ------------------------------------------------------------------------------
-
--bool ImplImageTree::loadImage( const ::rtl::OUString& rName, BitmapEx& rReturn, bool bSearchLanguageDependent )
-+void ImplImageTree::implUpdateSymbolsStyle( const ::rtl::OUString& rSymbolsStyle )
- {
-+ if ( rSymbolsStyle != maSymbolsStyle )
-+ {
-+ maSymbolsStyle = rSymbolsStyle;
-+ if ( mbInit )
-+ {
-+ mxNameAcc.clear();
-+ mxZipAcc.clear();
-+ mxFileAccess.clear();
-+ mxPathSettings.clear();
-+
-+ BmpExHashMap aTmp;
-+ aBmpExHashMap.swap( aTmp );
-+
-+ mbInit = false;
-+ }
-+ }
-+}
-+
-+// ------------------------------------------------------------------------------
-+
-+bool ImplImageTree::loadImage( const ::rtl::OUString& rName,
-+ const ::rtl::OUString& rSymbolsStyle,
-+ BitmapEx& rReturn,
-+ bool bSearchLanguageDependent )
-+{
-+ implUpdateSymbolsStyle( rSymbolsStyle );
-+
- const BmpExHashMap::const_iterator aBmpExFindIter( aBmpExHashMap.find( rName ) );
-
- if( aBmpExFindIter != aBmpExHashMap.end() )
-Index: extensions/source/bibliography/toolbar.cxx
-===================================================================
-RCS file: /cvs/util/extensions/source/bibliography/toolbar.cxx,v
-retrieving revision 1.16
-retrieving revision 1.14.154.2
-diff -u -p -u -p -r1.16 -r1.14.154.2
---- extensions/source/bibliography/toolbar.cxx 23 Sep 2005 12:51:27 -0000 1.16
-+++ extensions/source/bibliography/toolbar.cxx 1 Nov 2005 18:52:32 -0000 1.14.154.2
-@@ -259,11 +259,12 @@ BibToolBar::BibToolBar(Window* pParent,
- nSelMenuItem(0),
- nMenuId(0),
- aLayoutManager( aLink ),
-- nSymbolSet( SFX_SYMBOLS_SMALL ),
-+ nSymbolsSize( SFX_SYMBOLS_SIZE_SMALL ),
- nOutStyle( 0 )
- {
-- nSymbolSet = GetCurrentSymbolSet();
-- nOutStyle = SvtMiscOptions().GetToolboxStyle();
-+ SvtMiscOptions aSvtMiscOptions;
-+ nSymbolsSize = aSvtMiscOptions.GetCurrentSymbolsSize();
-+ nOutStyle = aSvtMiscOptions.GetToolboxStyle();
-
- ApplyImageList();
- SetStyle(GetStyle()|nStyle);
-@@ -613,9 +614,10 @@ void BibToolBar::DataChanged( const Data
- IMPL_LINK( BibToolBar, OptionsChanged_Impl, void*, pVoid )
- {
- sal_Bool bRebuildToolBar = sal_False;
-- if ( nSymbolSet != GetCurrentSymbolSet() )
-+ sal_Int16 eSymbolsSize = SvtMiscOptions().GetCurrentSymbolsSize();
-+ if ( nSymbolsSize != eSymbolsSize )
- {
-- nSymbolSet = GetCurrentSymbolSet();
-+ nSymbolsSize = eSymbolsSize;
- bRebuildToolBar = sal_True;
- }
- else if ( nOutStyle != SvtMiscOptions().GetToolboxStyle() )
-@@ -636,10 +638,10 @@ IMPL_LINK( BibToolBar, OptionsChanged_Im
- IMPL_LINK( BibToolBar, SettingsChanged_Impl, void*, pVoid )
- {
- // Check if toolbar button size have changed and we have to use system settings
-- sal_Int16 eSymbolSet = GetCurrentSymbolSet();
-- if ( eSymbolSet != nSymbolSet )
-+ sal_Int16 eSymbolsSize = SvtMiscOptions().GetCurrentSymbolsSize();
-+ if ( eSymbolsSize != nSymbolsSize )
- {
-- nSymbolSet = eSymbolSet;
-+ nSymbolsSize = eSymbolsSize;
- RebuildToolbar();
- }
-
-@@ -647,26 +649,6 @@ IMPL_LINK( BibToolBar, SettingsChanged_I
- }
-
- //-----------------------------------------------------------------------------
--
--sal_Int16 BibToolBar::GetCurrentSymbolSet()
--{
-- sal_Int16 eOptSymbolSet = SvtMiscOptions().GetSymbolSet();
--
-- if ( eOptSymbolSet == SFX_SYMBOLS_AUTO )
-- {
-- // Use system settings, we have to retrieve the toolbar icon size from the
-- // Application class
-- ULONG nStyleIconSize = Application::GetSettings().GetStyleSettings().GetToolbarIconSize();
-- if ( nStyleIconSize == STYLE_TOOLBAR_ICONSIZE_LARGE )
-- eOptSymbolSet = SFX_SYMBOLS_LARGE;
-- else
-- eOptSymbolSet = SFX_SYMBOLS_SMALL;
-- }
--
-- return eOptSymbolSet;
--}
--
--//-----------------------------------------------------------------------------
- void BibToolBar::RebuildToolbar()
- {
- ApplyImageList();
-@@ -678,7 +660,7 @@ void BibToolBar::RebuildToolbar()
-
- void BibToolBar::ApplyImageList()
- {
-- ImageList& rList = ( nSymbolSet == SFX_SYMBOLS_SMALL ) ?
-+ ImageList& rList = ( nSymbolsSize == SFX_SYMBOLS_SIZE_SMALL ) ?
- ( GetDisplayBackground().GetColor().IsDark() ? aImgLstHC : aImgLst ) :
- ( GetDisplayBackground().GetColor().IsDark() ? aBigImgLstHC : aBigImgLst );
-
-Index: extensions/source/bibliography/toolbar.hxx
-===================================================================
-RCS file: /cvs/util/extensions/source/bibliography/toolbar.hxx,v
-retrieving revision 1.8
-retrieving revision 1.7.234.2
-diff -u -p -u -p -r1.8 -r1.7.234.2
---- extensions/source/bibliography/toolbar.hxx 8 Sep 2005 19:21:38 -0000 1.8
-+++ extensions/source/bibliography/toolbar.hxx 1 Nov 2005 18:52:50 -0000 1.7.234.2
-@@ -169,7 +169,7 @@ class BibToolBar: public ToolBox
- sal_uInt16 nSelMenuItem;
- rtl::OUString aQueryField;
- Link aLayoutManager;
-- sal_Int16 nSymbolSet;
-+ sal_Int16 nSymbolsSize;
- sal_Int16 nOutStyle;
-
- BibDataManager* pDatMan;
-@@ -189,7 +189,6 @@ class BibToolBar: public ToolBox
- virtual void Select();
- virtual void Click();
- long PreNotify( NotifyEvent& rNEvt );
-- sal_Int16 GetCurrentSymbolSet();
-
-
- public:
-Index: framework/inc/services/layoutmanager.hxx
-===================================================================
-RCS file: /cvs/framework/framework/inc/services/layoutmanager.hxx,v
-retrieving revision 1.24
-retrieving revision 1.21.18.4
-diff -u -p -u -p -r1.24 -r1.21.18.4
---- framework/inc/services/layoutmanager.hxx 11 Nov 2005 12:55:02 -0000 1.24
-+++ framework/inc/services/layoutmanager.hxx 30 Nov 2005 14:25:32 -0000 1.21.18.4
-@@ -459,7 +459,8 @@ namespace framework
- void implts_createCustomToolBar( const rtl::OUString& aTbxResName, const rtl::OUString& aTitle );
- void implts_toggleFloatingUIElementsVisibility( sal_Bool bActive );
- sal_Bool implts_isEmbeddedLayoutManager() const;
-- sal_Int16 implts_getCurrentSymbolSet();
-+ sal_Int16 implts_getCurrentSymbolsSize();
-+ sal_Int16 implts_getCurrentSymbolsStyle();
- ::com::sun::star::uno::Reference< com::sun::star::awt::XWindowPeer > implts_createToolkitWindow( const ::com::sun::star::uno::Reference< com::sun::star::awt::XWindowPeer >& rParent );
- ::com::sun::star::uno::Reference< ::com::sun::star::ui::XUIElement > implts_createElement( const rtl::OUString& aName );
- rtl::OUString implts_generateGenericAddonToolbarTitle( sal_Int32 nNumber ) const;
-@@ -600,7 +601,8 @@ namespace framework
- rtl::OUString m_aCustomizeCmd;
- AddonsOptions* m_pAddonOptions;
- SvtMiscOptions* m_pMiscOptions;
-- sal_Int16 m_eSymbolSet;
-+ sal_Int16 m_eSymbolsSize;
-+ sal_Int16 m_eSymbolsStyle;
- Timer m_aAsyncLayoutTimer;
- ::cppu::OMultiTypeInterfaceContainerHelper m_aListenerContainer; // container for ALL Listener
- };
-Index: framework/inc/uiconfiguration/moduleimagemanager.hxx
-===================================================================
-RCS file: /cvs/framework/framework/inc/uiconfiguration/moduleimagemanager.hxx,v
-retrieving revision 1.4
-retrieving revision 1.3.106.2
-diff -u -p -u -p -r1.4 -r1.3.106.2
---- framework/inc/uiconfiguration/moduleimagemanager.hxx 9 Sep 2005 00:40:04 -0000 1.4
-+++ framework/inc/uiconfiguration/moduleimagemanager.hxx 1 Nov 2005 20:25:36 -0000 1.3.106.2
-@@ -174,6 +174,7 @@ namespace framework
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xServiceManager;
- ::std::vector< rtl::OUString > m_aImageNameVector;
- ::std::vector< rtl::OUString > m_aImageCommandNameVector;
-+ sal_Int16 m_nSymbolsStyle;
- };
-
- class GlobalImageList : public CmdImageList, public rtl::IReference
-Index: framework/inc/uielement/menubarmanager.hxx
-===================================================================
-RCS file: /cvs/framework/framework/inc/uielement/menubarmanager.hxx,v
-retrieving revision 1.13
-retrieving revision 1.11.52.3
-diff -u -p -u -p -r1.13 -r1.11.52.3
---- framework/inc/uielement/menubarmanager.hxx 11 Nov 2005 12:04:08 -0000 1.13
-+++ framework/inc/uielement/menubarmanager.hxx 30 Nov 2005 14:25:47 -0000 1.11.52.3
-@@ -297,6 +297,7 @@ class MenuBarManager : public com::sun::
- ::com::sun::star::uno::Reference< ::com::sun::star::ui::XAcceleratorConfiguration > m_xGlobalAcceleratorManager;
- // #110897#
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& mxServiceFactory;
-+ sal_Int16 m_nSymbolsStyle;
- };
-
- } // namespace
-Index: framework/inc/uielement/toolbarmanager.hxx
-===================================================================
-RCS file: /cvs/framework/framework/inc/uielement/toolbarmanager.hxx,v
-retrieving revision 1.11
-retrieving revision 1.10.4.3
-diff -u -p -u -p -r1.11 -r1.10.4.3
---- framework/inc/uielement/toolbarmanager.hxx 9 Sep 2005 00:48:02 -0000 1.11
-+++ framework/inc/uielement/toolbarmanager.hxx 1 Nov 2005 20:30:08 -0000 1.10.4.3
-@@ -165,7 +165,6 @@ class ToolBarManager : public ::com::sun
- void FillToolbar( const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >& rToolBarData );
- void notifyRegisteredControllers( const rtl::OUString& aUIElementName, const rtl::OUString& aCommand );
- void Destroy();
-- static sal_Int16 GetCurrentSymbolSize();
-
- protected:
- struct ControllerParams
-@@ -248,6 +247,7 @@ class ToolBarManager : public ::com::sun
- CommandToInfoMap m_aCommandMap;
- SubToolBarToSubToolBarControllerMap m_aSubToolBarControllerMap;
- Timer m_aAsyncUpdateControllersTimer;
-+ sal_Int16 m_nSymbolsStyle;
- };
-
- }
-Index: framework/source/layoutmanager/layoutmanager.cxx
-===================================================================
-RCS file: /cvs/framework/framework/source/layoutmanager/layoutmanager.cxx,v
-retrieving revision 1.40
-retrieving revision 1.35.4.4
-diff -u -p -u -p -r1.40 -r1.35.4.4
---- framework/source/layoutmanager/layoutmanager.cxx 11 Nov 2005 12:05:54 -0000 1.40
-+++ framework/source/layoutmanager/layoutmanager.cxx 30 Nov 2005 14:28:44 -0000 1.35.4.4
-@@ -444,7 +444,8 @@ LayoutManager::LayoutManager( const Refe
-
- m_pMiscOptions->AddListener( LINK( this, LayoutManager, OptionsChanged ) );
- Application::AddEventListener( LINK( this, LayoutManager, SettingsChanged ) );
-- m_eSymbolSet = m_pMiscOptions->GetSymbolSet();
-+ m_eSymbolsSize = m_pMiscOptions->GetSymbolsSize();
-+ m_eSymbolsStyle = m_pMiscOptions->GetCurrentSymbolsStyle();
-
- m_aAsyncLayoutTimer.SetTimeout( 50 );
- m_aAsyncLayoutTimer.SetTimeoutHdl( LINK( this, LayoutManager, AsyncLayoutHdl ) );
-@@ -5730,27 +5731,32 @@ void LayoutManager::implts_clearMenuBarC
- }
- }
-
--sal_Int16 LayoutManager::implts_getCurrentSymbolSet()
-+sal_Int16 LayoutManager::implts_getCurrentSymbolsSize()
- {
-- sal_Int16 eOptSymbolSet( 0 );
-- ReadGuard aReadLock( m_aLock );
-- if ( m_pMiscOptions )
-- eOptSymbolSet = m_pMiscOptions->GetSymbolSet();
-- aReadLock.unlock();
-+ sal_Int16 eOptSymbolsSize( 0 );
-
-- if ( eOptSymbolSet == SFX_SYMBOLS_AUTO )
- {
-- // Use system settings, we have to retrieve the toolbar icon size from the
-- // Application class
-- vos::OGuard aGuard( Application::GetSolarMutex() );
-- ULONG nStyleIconSize = Application::GetSettings().GetStyleSettings().GetToolbarIconSize();
-- if ( nStyleIconSize == STYLE_TOOLBAR_ICONSIZE_LARGE )
-- eOptSymbolSet = SFX_SYMBOLS_LARGE;
-- else
-- eOptSymbolSet = SFX_SYMBOLS_SMALL;
-+ ReadGuard aReadLock( m_aLock );
-+ vos::OGuard aGuard( Application::GetSolarMutex() );
-+ if ( m_pMiscOptions )
-+ eOptSymbolsSize = m_pMiscOptions->GetCurrentSymbolsSize();
-+ }
-+
-+ return eOptSymbolsSize;
-+}
-+
-+sal_Int16 LayoutManager::implts_getCurrentSymbolsStyle()
-+{
-+ sal_Int16 eOptSymbolsStyle( 0 );
-+
-+ {
-+ ReadGuard aReadLock( m_aLock );
-+ vos::OGuard aGuard( Application::GetSolarMutex() );
-+ if ( m_pMiscOptions )
-+ eOptSymbolsStyle = m_pMiscOptions->GetCurrentSymbolsStyle();
- }
-
-- return eOptSymbolSet;
-+ return eOptSymbolsStyle;
- }
-
- IMPL_LINK( LayoutManager, MenuBarClose, MenuBar *, pMenu )
-@@ -5773,17 +5779,19 @@ IMPL_LINK( LayoutManager, MenuBarClose,
-
- IMPL_LINK( LayoutManager, OptionsChanged, void*, pVoid )
- {
-- sal_Int16 eOldSymbolSet( 0 );
-- sal_Int16 eSymbolSet( implts_getCurrentSymbolSet() );
-+ sal_Int16 eSymbolsSize( implts_getCurrentSymbolsSize() );
-+ sal_Int16 eSymbolsStyle( implts_getCurrentSymbolsStyle() );
-
- ReadGuard aReadLock( m_aLock );
-- eOldSymbolSet = m_eSymbolSet;
-+ sal_Int16 eOldSymbolsSize = m_eSymbolsSize;
-+ sal_Int16 eOldSymbolsStyle = m_eSymbolsStyle;
- aReadLock.unlock();
-
-- if ( eSymbolSet != eOldSymbolSet )
-+ if ( eSymbolsSize != eOldSymbolsSize || eSymbolsStyle != eOldSymbolsStyle )
- {
- WriteGuard aWriteLock( m_aLock );
-- m_eSymbolSet = eSymbolSet;
-+ m_eSymbolsSize = eSymbolsSize;
-+ m_eSymbolsStyle = eSymbolsStyle;
- aWriteLock.unlock();
-
- std::vector< Reference< XUpdatable > > aToolBarVector;
-Index: framework/source/uiconfiguration/moduleimagemanager.cxx
-===================================================================
-RCS file: /cvs/framework/framework/source/uiconfiguration/moduleimagemanager.cxx,v
-retrieving revision 1.11
-retrieving revision 1.10.10.2
-diff -u -p -u -p -r1.11 -r1.10.10.2
---- framework/source/uiconfiguration/moduleimagemanager.cxx 9 Sep 2005 01:50:22 -0000 1.11
-+++ framework/source/uiconfiguration/moduleimagemanager.cxx 1 Nov 2005 21:07:52 -0000 1.10.10.2
-@@ -114,6 +114,10 @@
- #include <vcl/pngwrite.hxx>
- #endif
-
-+#ifndef INCLUDED_SVTOOLS_MISCOPT_HXX
-+#include "svtools/miscopt.hxx"
-+#endif
-+
- //_________________________________________________________________________________________________________________
- // namespaces
- //_________________________________________________________________________________________________________________
-@@ -204,7 +208,8 @@ static GlobalImageList* getGlobalImageLi
- CmdImageList::CmdImageList( const uno::Reference< XMultiServiceFactory >& rServiceManager, const rtl::OUString& aModuleIdentifier ) :
- m_aModuleIdentifier( aModuleIdentifier ),
- m_bVectorInit( sal_False ),
-- m_xServiceManager( rServiceManager )
-+ m_xServiceManager( rServiceManager ),
-+ m_nSymbolsStyle( SvtMiscOptions().GetCurrentSymbolsStyle() )
- {
- for ( sal_Int32 n=0; n < ImageType_COUNT; n++ )
- m_pImageList[n] = 0;
-@@ -284,6 +289,16 @@ void CmdImageList::impl_fillCommandToIma
-
- ImageList* CmdImageList::impl_getImageList( sal_Int16 nImageType )
- {
-+ SvtMiscOptions aMiscOptions;
-+
-+ sal_Int16 nSymbolsStyle = aMiscOptions.GetCurrentSymbolsStyle();
-+ if ( nSymbolsStyle != m_nSymbolsStyle )
-+ {
-+ m_nSymbolsStyle = nSymbolsStyle;
-+ for ( sal_Int32 n=0; n < ImageType_COUNT; n++ )
-+ delete m_pImageList[n], m_pImageList[n] = NULL;
-+ }
-+
- if ( !m_pImageList[nImageType] )
- {
- m_pImageList[nImageType] = new ImageList( m_aImageNameVector,
-Index: framework/source/uielement/addonstoolbarmanager.cxx
-===================================================================
-RCS file: /cvs/framework/framework/source/uielement/addonstoolbarmanager.cxx,v
-retrieving revision 1.6
-retrieving revision 1.4.106.3
-diff -u -p -u -p -r1.6 -r1.4.106.3
---- framework/source/uielement/addonstoolbarmanager.cxx 11 Nov 2005 12:07:42 -0000 1.6
-+++ framework/source/uielement/addonstoolbarmanager.cxx 30 Nov 2005 14:30:07 -0000 1.4.106.3
-@@ -242,8 +242,7 @@ void SAL_CALL AddonsToolBarManager::disp
-
- void AddonsToolBarManager::RefreshImages()
- {
-- sal_Int16 nSymbolSet = GetCurrentSymbolSize();
-- sal_Bool bBigImages( nSymbolSet == SFX_SYMBOLS_LARGE );
-+ sal_Bool bBigImages( SvtMiscOptions().AreCurrentSymbolsLarge() );
- for ( USHORT nPos = 0; nPos < m_pToolBar->GetItemCount(); nPos++ )
- {
- USHORT nId( m_pToolBar->GetItemId( nPos ) );
-@@ -273,7 +272,6 @@ void AddonsToolBarManager::FillToolbar(
- return;
-
- USHORT nId( 1 );
-- sal_Int16 nSymbolSet( GetCurrentSymbolSize() );
-
- RemoveControllers();
-
-Index: framework/source/uielement/menubarmanager.cxx
-===================================================================
-RCS file: /cvs/framework/framework/source/uielement/menubarmanager.cxx,v
-retrieving revision 1.29
-retrieving revision 1.26.52.3
-diff -u -p -u -p -r1.29 -r1.26.52.3
---- framework/source/uielement/menubarmanager.cxx 11 Nov 2005 12:07:59 -0000 1.29
-+++ framework/source/uielement/menubarmanager.cxx 30 Nov 2005 14:30:15 -0000 1.26.52.3
-@@ -192,6 +192,10 @@
- #include <rtl/logfile.hxx>
- #endif
-
-+#ifndef INCLUDED_SVTOOLS_MISCOPT_HXX
-+#include "svtools/miscopt.hxx"
-+#endif
-+
- //_________________________________________________________________________________________________________________
- // namespace
- //_________________________________________________________________________________________________________________
-@@ -292,6 +296,7 @@ MenuBarManager::MenuBarManager(
- , m_bModuleIdentified( sal_False )
- , m_bRetrieveImages( sal_False )
- , m_bAcceleratorCfg( sal_False )
-+ , m_nSymbolsStyle( SvtMiscOptions().GetCurrentSymbolsStyle() )
- {
- m_xPopupMenuControllerRegistration = Reference< ::com::sun::star::frame::XUIControllerRegistration >(
- getServiceFactory()->createInstance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.frame.PopupMenuControllerFactory" ))),
-@@ -312,6 +317,7 @@ MenuBarManager::MenuBarManager(
- , m_bModuleIdentified( sal_False )
- , m_bRetrieveImages( sal_False )
- , m_bAcceleratorCfg( sal_False )
-+ , m_nSymbolsStyle( SvtMiscOptions().GetCurrentSymbolsStyle() )
- {
- m_bActive = sal_False;
- m_bDeleteMenu = bDelete;
-@@ -399,6 +405,7 @@ MenuBarManager::MenuBarManager(
- , m_bModuleIdentified( sal_False )
- , m_bRetrieveImages( sal_False )
- , m_bAcceleratorCfg( sal_False )
-+ , m_nSymbolsStyle( SvtMiscOptions().GetCurrentSymbolsStyle() )
- {
- m_bActive = sal_False;
- m_bDeleteMenu = bDelete;
-@@ -1077,15 +1084,18 @@ IMPL_LINK( MenuBarManager, Activate, Men
- // Check if some modes have changed so we have to update our menu images
- const StyleSettings& rSettings = Application::GetSettings().GetStyleSettings();
- sal_Bool bIsHiContrast = rSettings.GetMenuColor().IsDark();
-+ sal_Int16 nSymbolsStyle = SvtMiscOptions().GetCurrentSymbolsStyle();
-
- if ( m_bRetrieveImages ||
- m_bWasHiContrast != bIsHiContrast ||
-- bShowMenuImages != m_bShowMenuImages )
-+ bShowMenuImages != m_bShowMenuImages ||
-+ nSymbolsStyle != m_nSymbolsStyle )
- {
- // The mode changed so we have to replace all images
- m_bWasHiContrast = bIsHiContrast;
- m_bShowMenuImages = bShowMenuImages;
- m_bRetrieveImages = sal_False;
-+ m_nSymbolsStyle = nSymbolsStyle;
- AddonsOptions aAddonOptions;
-
- for ( USHORT nPos = 0; nPos < pMenu->GetItemCount(); nPos++ )
-Index: framework/source/uielement/toolbarmanager.cxx
-===================================================================
-RCS file: /cvs/framework/framework/source/uielement/toolbarmanager.cxx,v
-retrieving revision 1.22
-retrieving revision 1.19.4.4
-diff -u -p -u -p -r1.22 -r1.19.4.4
---- framework/source/uielement/toolbarmanager.cxx 11 Nov 2005 14:14:06 -0000 1.22
-+++ framework/source/uielement/toolbarmanager.cxx 30 Nov 2005 14:30:40 -0000 1.19.4.4
-@@ -293,7 +293,7 @@ ToolBarManager::ToolBarManager( const Re
- m_pToolBar( pToolBar ),
- m_bDisposed( sal_False ),
- m_bIsHiContrast( pToolBar->GetDisplayBackground().GetColor().IsDark() ),
-- m_bSmallSymbols( GetCurrentSymbolSize() == SFX_SYMBOLS_SMALL ),
-+ m_bSmallSymbols( !SvtMiscOptions().AreCurrentSymbolsLarge() ),
- m_bModuleIdentified( sal_False ),
- m_aResourceName( rResourceName ),
- m_bAddedToTaskPaneList( sal_True ),
-@@ -302,7 +302,8 @@ ToolBarManager::ToolBarManager( const Re
- m_bImageOrientationRegistered( sal_False ),
- m_bImageMirrored( sal_False ),
- m_bCanBeCustomized( sal_True ),
-- m_lImageRotation( 0 )
-+ m_lImageRotation( 0 ),
-+ m_nSymbolsStyle( SvtMiscOptions().GetCurrentSymbolsStyle() )
- {
- Window* pWindow = m_pToolBar;
- while ( pWindow && !pWindow->IsSystemWindow() )
-@@ -396,10 +397,19 @@ void ToolBarManager::CheckAndUpdateImage
- m_bIsHiContrast = sal_False;
- }
-
-- if ( m_bSmallSymbols != ( GetCurrentSymbolSize() == SFX_SYMBOLS_SMALL ))
-+ SvtMiscOptions aMiscOptions;
-+ bool bCurrentSymbolsSmall = !aMiscOptions.AreCurrentSymbolsLarge();
-+ if ( m_bSmallSymbols != bCurrentSymbolsSmall )
- {
- bRefreshImages = sal_True;
-- m_bSmallSymbols = ( GetCurrentSymbolSize() == SFX_SYMBOLS_SMALL );
-+ m_bSmallSymbols = bCurrentSymbolsSmall;
-+ }
-+
-+ sal_Int16 nCurrentSymbolsStyle = aMiscOptions.GetCurrentSymbolsStyle();
-+ if ( m_nSymbolsStyle != nCurrentSymbolsStyle )
-+ {
-+ bRefreshImages = sal_True;
-+ m_nSymbolsStyle = nCurrentSymbolsStyle;
- }
-
- // Refresh images if requested
-@@ -411,8 +421,7 @@ void ToolBarManager::RefreshImages()
- {
- ResetableGuard aGuard( m_aLock );
-
-- sal_Int16 nSymbolSet = GetCurrentSymbolSize();
-- sal_Bool bBigImages( nSymbolSet == SFX_SYMBOLS_LARGE );
-+ sal_Bool bBigImages( SvtMiscOptions().AreCurrentSymbolsLarge() );
- for ( USHORT nPos = 0; nPos < m_pToolBar->GetItemCount(); nPos++ )
- {
- USHORT nId( m_pToolBar->GetItemId( nPos ) );
-@@ -689,7 +698,7 @@ void SAL_CALL ToolBarManager::elementIns
- Reference< XNameAccess > xNameAccess;
- sal_Int16 nImageType;
- sal_Int16 nCurrentImageType = getImageTypeFromBools(
-- ( GetCurrentSymbolSize() == SFX_SYMBOLS_LARGE ),
-+ SvtMiscOptions().AreCurrentSymbolsLarge(),
- m_bIsHiContrast );
-
- if (( Event.aInfo >>= nImageType ) &&
-@@ -739,7 +748,7 @@ void SAL_CALL ToolBarManager::elementRem
- Reference< XNameAccess > xNameAccess;
- sal_Int16 nImageType;
- sal_Int16 nCurrentImageType = getImageTypeFromBools(
-- ( GetCurrentSymbolSize() == SFX_SYMBOLS_LARGE ),
-+ SvtMiscOptions().AreCurrentSymbolsLarge(),
- m_bIsHiContrast );
-
- if (( Event.aInfo >>= nImageType ) &&
-@@ -792,7 +801,7 @@ void SAL_CALL ToolBarManager::elementRep
- Reference< XNameAccess > xNameAccess;
- sal_Int16 nImageType;
- sal_Int16 nCurrentImageType = getImageTypeFromBools(
-- ( GetCurrentSymbolSize() == SFX_SYMBOLS_LARGE ),
-+ SvtMiscOptions().AreCurrentSymbolsLarge(),
- m_bIsHiContrast );
-
- if (( Event.aInfo >>= nImageType ) &&
-@@ -830,24 +839,6 @@ void SAL_CALL ToolBarManager::elementRep
- }
- }
-
--sal_Int16 ToolBarManager::GetCurrentSymbolSize()
--{
-- sal_Int16 eOptSymbolSet = SvtMiscOptions().GetSymbolSet();
--
-- if ( eOptSymbolSet == SFX_SYMBOLS_AUTO )
-- {
-- // Use system settings, we have to retrieve the toolbar icon size from the
-- // Application class
-- ULONG nStyleIconSize = Application::GetSettings().GetStyleSettings().GetToolbarIconSize();
-- if ( nStyleIconSize == STYLE_TOOLBAR_ICONSIZE_LARGE )
-- eOptSymbolSet = SFX_SYMBOLS_LARGE;
-- else
-- eOptSymbolSet = SFX_SYMBOLS_SMALL;
-- }
--
-- return eOptSymbolSet;
--}
--
- void ToolBarManager::RemoveControllers()
- {
- ResetableGuard aGuard( m_aLock );
-@@ -1361,8 +1352,6 @@ void ToolBarManager::RequestImages()
- {
- RTL_LOGFILE_CONTEXT( aLog, "framework (cd100003) ::ToolBarManager::RequestImages" );
-
-- sal_Int16 nSymbolSet( ToolBarManager::GetCurrentSymbolSize() );
--
- // Request images from image manager
- Sequence< rtl::OUString > aCmdURLSeq( m_aCommandMap.size() );
- Sequence< Reference< XGraphic > > aDocGraphicSeq;
-@@ -1377,7 +1366,7 @@ void ToolBarManager::RequestImages()
- }
-
- m_bIsHiContrast = m_pToolBar->GetDisplayBackground().GetColor().IsDark();
-- sal_Int16 j = getImageTypeFromBools( ( nSymbolSet == SFX_SYMBOLS_LARGE ), m_bIsHiContrast );
-+ sal_Int16 j = getImageTypeFromBools( SvtMiscOptions().AreCurrentSymbolsLarge(), m_bIsHiContrast );
-
- if ( m_xDocImageManager.is() )
- aDocGraphicSeq = m_xDocImageManager->getImages( j, aCmdURLSeq );
-Index: svtools/inc/imgdef.hxx
-===================================================================
-RCS file: /cvs/util/svtools/inc/imgdef.hxx,v
-retrieving revision 1.3
-retrieving revision 1.2.890.4
-diff -u -p -u -p -r1.3 -r1.2.890.4
---- svtools/inc/imgdef.hxx 8 Sep 2005 09:42:15 -0000 1.3
-+++ svtools/inc/imgdef.hxx 1 Nov 2005 21:37:38 -0000 1.2.890.4
-@@ -36,11 +36,20 @@
- #ifndef _SVTOOLS_IMGDEF_HXX
- #define _SVTOOLS_IMGDEF_HXX
-
--enum SfxSymbolSet
-+enum SfxSymbolsSize
- {
-- SFX_SYMBOLS_SMALL,
-- SFX_SYMBOLS_LARGE,
-- SFX_SYMBOLS_AUTO
-+ SFX_SYMBOLS_SIZE_SMALL,
-+ SFX_SYMBOLS_SIZE_LARGE,
-+ SFX_SYMBOLS_SIZE_AUTO
-+};
-+
-+enum SfxSymbolsStyle
-+{
-+ SFX_SYMBOLS_STYLE_AUTO,
-+ SFX_SYMBOLS_STYLE_DEFAULT,
-+ SFX_SYMBOLS_STYLE_HICONTRAST,
-+ SFX_SYMBOLS_STYLE_INDUSTRIAL
-+// SFX_SYMBOLS_STYLE_CRYSTAL
- };
-
- #define SFX_TOOLBOX_CHANGESYMBOLSET 0x0001
-Index: svtools/inc/miscopt.hxx
-===================================================================
-RCS file: /cvs/util/svtools/inc/miscopt.hxx,v
-retrieving revision 1.10
-retrieving revision 1.8.112.4
-diff -u -p -u -p -r1.10 -r1.8.112.4
---- svtools/inc/miscopt.hxx 11 Nov 2005 12:11:31 -0000 1.10
-+++ svtools/inc/miscopt.hxx 30 Nov 2005 14:32:14 -0000 1.8.112.4
-@@ -136,9 +136,17 @@ class SVL_DLLPUBLIC SvtMiscOptions
- void SetPluginsEnabled( sal_Bool bEnable );
- sal_Bool IsPluginsEnabledReadOnly() const;
-
-- sal_Int16 GetSymbolSet() const;
-- void SetSymbolSet( sal_Int16 eSet );
-- sal_Bool IsGetSymbolSetReadOnly() const;
-+ sal_Int16 GetSymbolsSize() const;
-+ void SetSymbolsSize( sal_Int16 eSet );
-+ sal_Int16 GetCurrentSymbolsSize() const;
-+ bool AreCurrentSymbolsLarge() const;
-+ sal_Bool IsGetSymbolsSizeReadOnly() const;
-+
-+ sal_Int16 GetSymbolsStyle() const;
-+ void SetSymbolsStyle( sal_Int16 eSet );
-+ sal_Int16 GetCurrentSymbolsStyle() const;
-+ ::rtl::OUString GetCurrentSymbolsStyleName() const;
-+ sal_Bool IsGetSymbolsStyleReadOnly() const;
-
- sal_Int16 GetToolboxStyle() const;
- void SetToolboxStyle( sal_Int16 nStyle );
-Index: svtools/source/config/miscopt.cxx
-===================================================================
-RCS file: /cvs/util/svtools/source/config/miscopt.cxx,v
-retrieving revision 1.14
-retrieving revision 1.11.126.8
-diff -u -p -u -p -r1.14 -r1.11.126.8
---- svtools/source/config/miscopt.cxx 11 Nov 2005 13:51:22 -0000 1.14
-+++ svtools/source/config/miscopt.cxx 2 Dec 2005 10:05:01 -0000 1.11.126.8
-@@ -78,6 +78,9 @@
- #include <rtl/logfile.hxx>
- #include "itemholder1.hxx"
-
-+#include <imgdef.hxx>
-+#include <vcl/svapp.hxx>
-+
- //_________________________________________________________________________________________________________________
- // namespaces
- //_________________________________________________________________________________________________________________
-@@ -104,8 +107,10 @@ using namespace ::com::sun::star;
- #define PROPERTYHANDLE_TOOLBOXSTYLE 2
- #define PROPERTYNAME_USESYSTEMFILEDIALOG ASCII_STR("UseSystemFileDialog")
- #define PROPERTYHANDLE_USESYSTEMFILEDIALOG 3
-+#define PROPERTYNAME_SYMBOLSSTYLE ASCII_STR("SymbolsStyle")
-+#define PROPERTYHANDLE_SYMBOLSSTYLE 4
-
--#define PROPERTYCOUNT 4
-+#define PROPERTYCOUNT 5
-
- #define VCL_TOOLBOX_STYLE_FLAT ((USHORT)0x0004) // from <vcl/toolbox.hxx>
-
-@@ -127,8 +132,9 @@ class SvtMiscOptions_Impl : public Confi
- sal_Bool m_bIsUseSystemFileDialogRO;
- sal_Bool m_bPluginsEnabled;
- sal_Bool m_bIsPluginsEnabledRO;
-- sal_Int16 m_nSymbolSet;
-- sal_Bool m_bIsSymbolSetRO;
-+ sal_Int16 m_nSymbolsSize;
-+ sal_Bool m_bIsSymbolsSizeRO;
-+ sal_Bool m_bIsSymbolsStyleRO;
- sal_Int16 m_nToolboxStyle;
- sal_Bool m_bIsToolboxStyleRO;
-
-@@ -207,13 +213,26 @@ class SvtMiscOptions_Impl : public Confi
- inline sal_Bool IsPluginsEnabledReadOnly() const
- { return m_bIsPluginsEnabledRO; }
-
-- inline sal_Int16 GetSymbolSet()
-- { return m_nSymbolSet; }
-+ inline sal_Int16 GetSymbolsSize()
-+ { return m_nSymbolsSize; }
-+
-+ void SetSymbolsSize( sal_Int16 nSet );
-
-- void SetSymbolSet( sal_Int16 nSet );
-+ inline sal_Bool IsGetSymbolsSizeReadOnly()
-+ { return m_bIsSymbolsSizeRO; }
-
-- inline sal_Bool IsGetSymbolSetReadOnly()
-- { return m_bIsSymbolSetRO; }
-+ sal_Int16 GetSymbolsStyle() const;
-+ ::rtl::OUString GetSymbolsStyleName() const;
-+ sal_Int16 GetCurrentSymbolsStyle() const;
-+
-+ inline void SetSymbolsStyle( sal_Int16 nSet )
-+ { ImplSetSymbolsStyle( true, nSet, ::rtl::OUString() ); }
-+
-+ inline void SetSymbolsStyleName( ::rtl::OUString &rName )
-+ { ImplSetSymbolsStyle( false, 0, rName ); }
-+
-+ inline sal_Bool IsGetSymbolsStyleReadOnly()
-+ { return m_bIsSymbolsStyleRO; }
-
- // translate to VCL settings ( "0" = 3D, "1" = FLAT )
- inline sal_Int16 GetToolboxStyle()
-@@ -249,12 +268,43 @@ class SvtMiscOptions_Impl : public Confi
- *//*-*****************************************************************************************************/
-
- static Sequence< OUString > GetPropertyNames();
-+
-+ protected:
-+ void ImplSetSymbolsStyle( bool bValue, sal_Int16 nSet, const ::rtl::OUString &rName );
- };
-
- //_________________________________________________________________________________________________________________
- // definitions
- //_________________________________________________________________________________________________________________
-
-+static sal_Int16 implSymbolsStyleFromVCL( ULONG nStyle )
-+{
-+ switch ( nStyle )
-+ {
-+ case STYLE_SYMBOLS_AUTO: return SFX_SYMBOLS_STYLE_AUTO;
-+ case STYLE_SYMBOLS_DEFAULT: return SFX_SYMBOLS_STYLE_DEFAULT;
-+ case STYLE_SYMBOLS_HICONTRAST: return SFX_SYMBOLS_STYLE_HICONTRAST;
-+ case STYLE_SYMBOLS_INDUSTRIAL: return SFX_SYMBOLS_STYLE_INDUSTRIAL;
-+// case STYLE_SYMBOLS_CRYSTAL: return SFX_SYMBOLS_STYLE_CRYSTAL;
-+ }
-+
-+ return SFX_SYMBOLS_STYLE_AUTO;
-+}
-+
-+static ULONG implSymbolsStyleToVCL( sal_Int16 nStyle )
-+{
-+ switch ( nStyle )
-+ {
-+ case SFX_SYMBOLS_STYLE_AUTO: return STYLE_SYMBOLS_AUTO;
-+ case SFX_SYMBOLS_STYLE_DEFAULT: return STYLE_SYMBOLS_DEFAULT;
-+ case SFX_SYMBOLS_STYLE_HICONTRAST: return STYLE_SYMBOLS_HICONTRAST;
-+ case SFX_SYMBOLS_STYLE_INDUSTRIAL: return STYLE_SYMBOLS_INDUSTRIAL;
-+// case SFX_SYMBOLS_STYLE_CRYSTAL: return STYLE_SYMBOLS_CRYSTAL;
-+ }
-+
-+ return STYLE_SYMBOLS_AUTO;
-+}
-+
- //*****************************************************************************************************************
- // constructor
- //*****************************************************************************************************************
-@@ -266,8 +316,9 @@ SvtMiscOptions_Impl::SvtMiscOptions_Impl
- , m_bIsUseSystemFileDialogRO( sal_False )
- , m_bPluginsEnabled( sal_False )
- , m_bIsPluginsEnabledRO( sal_False )
-- , m_nSymbolSet( 0 )
-- , m_bIsSymbolSetRO( sal_False )
-+ , m_nSymbolsSize( 0 )
-+ , m_bIsSymbolsSizeRO( sal_False )
-+ , m_bIsSymbolsStyleRO( sal_False )
- , m_nToolboxStyle( 1 )
- , m_bIsToolboxStyleRO( sal_False )
-
-@@ -302,9 +353,9 @@ SvtMiscOptions_Impl::SvtMiscOptions_Impl
-
- case PROPERTYHANDLE_SYMBOLSET :
- {
-- if( !(seqValues[nProperty] >>= m_nSymbolSet) )
-+ if( !(seqValues[nProperty] >>= m_nSymbolsSize) )
- DBG_ERROR("Wrong type of \"Misc\\SymbolSet\"!" );
-- m_bIsSymbolSetRO = seqRO[nProperty];
-+ m_bIsSymbolsSizeRO = seqRO[nProperty];
- break;
- }
-
-@@ -323,6 +374,17 @@ SvtMiscOptions_Impl::SvtMiscOptions_Impl
- m_bIsUseSystemFileDialogRO = seqRO[nProperty];
- break;
- }
-+
-+ case PROPERTYHANDLE_SYMBOLSSTYLE :
-+ {
-+ ::rtl::OUString aSymbolsStyle;
-+ if( seqValues[nProperty] >>= aSymbolsStyle )
-+ SetSymbolsStyleName( aSymbolsStyle );
-+ else
-+ DBG_ERROR("Wrong type of \"Misc\\SymbolsStyle\"!" );
-+ m_bIsSymbolsStyleRO = seqRO[nProperty];
-+ break;
-+ }
- }
- }
-
-@@ -385,7 +447,7 @@ void SvtMiscOptions_Impl::Load( const Se
- }
- break;
- case PROPERTYHANDLE_SYMBOLSET : {
-- if( !(seqValues[nProperty] >>= m_nSymbolSet) )
-+ if( !(seqValues[nProperty] >>= m_nSymbolsSize) )
- DBG_ERROR("Wrong type of \"Misc\\SymbolSet\"!" );
- }
- break;
-@@ -399,6 +461,14 @@ void SvtMiscOptions_Impl::Load( const Se
- DBG_ERROR("Wrong type of \"Misc\\PluginsEnabled\"!" );
- }
- break;
-+ case PROPERTYHANDLE_SYMBOLSSTYLE : {
-+ ::rtl::OUString aSymbolsStyle;
-+ if( seqValues[nProperty] >>= aSymbolsStyle )
-+ SetSymbolsStyleName( aSymbolsStyle );
-+ else
-+ DBG_ERROR("Wrong type of \"Misc\\SymbolsStyle\"!" );
-+ }
-+ break;
- }
- }
- }
-@@ -434,13 +504,50 @@ void SvtMiscOptions_Impl::SetToolboxStyl
- CallListeners();
- }
-
--void SvtMiscOptions_Impl::SetSymbolSet( sal_Int16 nSet )
-+void SvtMiscOptions_Impl::SetSymbolsSize( sal_Int16 nSet )
- {
-- m_nSymbolSet = nSet;
-+ m_nSymbolsSize = nSet;
- SetModified();
- CallListeners();
- }
-
-+sal_Int16 SvtMiscOptions_Impl::GetSymbolsStyle() const
-+{
-+ return implSymbolsStyleFromVCL( Application::GetSettings().GetStyleSettings().GetSymbolsStyle() );
-+}
-+
-+::rtl::OUString SvtMiscOptions_Impl::GetSymbolsStyleName() const
-+{
-+ return Application::GetSettings().GetStyleSettings().GetSymbolsStyleName();
-+}
-+
-+sal_Int16 SvtMiscOptions_Impl::GetCurrentSymbolsStyle() const
-+{
-+ return implSymbolsStyleFromVCL( Application::GetSettings().GetStyleSettings().GetCurrentSymbolsStyle() );
-+}
-+
-+void SvtMiscOptions_Impl::ImplSetSymbolsStyle( bool bValue, sal_Int16 nSet, const ::rtl::OUString &rName )
-+{
-+ if ( ( bValue && ( nSet != GetSymbolsStyle() ) ) ||
-+ ( !bValue && ( rName != GetSymbolsStyleName() ) ) )
-+ {
-+ AllSettings aAllSettings = Application::GetSettings();
-+ StyleSettings aStyleSettings = aAllSettings.GetStyleSettings();
-+
-+ if ( bValue )
-+ aStyleSettings.SetSymbolsStyle( implSymbolsStyleToVCL( nSet ) );
-+ else
-+ aStyleSettings.SetSymbolsStyleName( rName );
-+
-+ aAllSettings.SetStyleSettings(aStyleSettings);
-+ Application::MergeSystemSettings( aAllSettings );
-+ Application::SetSettings(aAllSettings);
-+
-+ SetModified();
-+ CallListeners();
-+ }
-+}
-+
- void SvtMiscOptions_Impl::SetPluginsEnabled( sal_Bool bEnable )
- {
- m_bPluginsEnabled = bEnable;
-@@ -479,8 +586,8 @@ void SvtMiscOptions_Impl::Commit()
-
- case PROPERTYHANDLE_SYMBOLSET :
- {
-- if ( !m_bIsSymbolSetRO )
-- seqValues[nProperty] <<= m_nSymbolSet;
-+ if ( !m_bIsSymbolsSizeRO )
-+ seqValues[nProperty] <<= m_nSymbolsSize;
- break;
- }
-
-@@ -497,6 +604,13 @@ void SvtMiscOptions_Impl::Commit()
- seqValues[nProperty] <<= m_bUseSystemFileDialog;
- break;
- }
-+
-+ case PROPERTYHANDLE_SYMBOLSSTYLE :
-+ {
-+ if ( !m_bIsSymbolsStyleRO )
-+ seqValues[nProperty] <<= GetSymbolsStyleName();
-+ break;
-+ }
- }
- }
- // Set properties in configuration.
-@@ -514,7 +628,8 @@ Sequence< OUString > SvtMiscOptions_Impl
- PROPERTYNAME_PLUGINSENABLED,
- PROPERTYNAME_SYMBOLSET,
- PROPERTYNAME_TOOLBOXSTYLE,
-- PROPERTYNAME_USESYSTEMFILEDIALOG
-+ PROPERTYNAME_USESYSTEMFILEDIALOG,
-+ PROPERTYNAME_SYMBOLSSTYLE
- };
-
- // Initialize return sequence with these list ...
-@@ -597,19 +712,67 @@ sal_Bool SvtMiscOptions::IsPluginsEnable
- return m_pDataContainer->IsPluginsEnabledReadOnly();
- }
-
--sal_Int16 SvtMiscOptions::GetSymbolSet() const
-+sal_Int16 SvtMiscOptions::GetSymbolsSize() const
-+{
-+ return m_pDataContainer->GetSymbolsSize();
-+}
-+
-+void SvtMiscOptions::SetSymbolsSize( sal_Int16 nSet )
-+{
-+ m_pDataContainer->SetSymbolsSize( nSet );
-+}
-+
-+sal_Int16 SvtMiscOptions::GetCurrentSymbolsSize() const
-+{
-+ sal_Int16 eOptSymbolsSize = m_pDataContainer->GetSymbolsSize();
-+
-+ if ( eOptSymbolsSize == SFX_SYMBOLS_SIZE_AUTO )
-+ {
-+ // Use system settings, we have to retrieve the toolbar icon size from the
-+ // Application class
-+ ULONG nStyleIconSize = Application::GetSettings().GetStyleSettings().GetToolbarIconSize();
-+ if ( nStyleIconSize == STYLE_TOOLBAR_ICONSIZE_LARGE )
-+ eOptSymbolsSize = SFX_SYMBOLS_SIZE_LARGE;
-+ else
-+ eOptSymbolsSize = SFX_SYMBOLS_SIZE_SMALL;
-+ }
-+
-+ return eOptSymbolsSize;
-+}
-+
-+bool SvtMiscOptions::AreCurrentSymbolsLarge() const
-+{
-+ return ( GetCurrentSymbolsSize() == SFX_SYMBOLS_SIZE_LARGE );
-+}
-+
-+sal_Bool SvtMiscOptions::IsGetSymbolsSizeReadOnly() const
-+{
-+ return m_pDataContainer->IsGetSymbolsSizeReadOnly();
-+}
-+
-+sal_Int16 SvtMiscOptions::GetSymbolsStyle() const
-+{
-+ return m_pDataContainer->GetSymbolsStyle();
-+}
-+
-+sal_Int16 SvtMiscOptions::GetCurrentSymbolsStyle() const
-+{
-+ return m_pDataContainer->GetCurrentSymbolsStyle();
-+}
-+
-+OUString SvtMiscOptions::GetCurrentSymbolsStyleName() const
- {
-- return m_pDataContainer->GetSymbolSet();
-+ return Application::GetSettings().GetStyleSettings().GetCurrentSymbolsStyleName();
- }
-
--void SvtMiscOptions::SetSymbolSet( sal_Int16 nSet )
-+void SvtMiscOptions::SetSymbolsStyle( sal_Int16 nSet )
- {
-- m_pDataContainer->SetSymbolSet( nSet );
-+ m_pDataContainer->SetSymbolsStyle( nSet );
- }
-
--sal_Bool SvtMiscOptions::IsGetSymbolSetReadOnly() const
-+sal_Bool SvtMiscOptions::IsGetSymbolsStyleReadOnly() const
- {
-- return m_pDataContainer->IsGetSymbolSetReadOnly();
-+ return m_pDataContainer->IsGetSymbolsStyleReadOnly();
- }
-
- sal_Int16 SvtMiscOptions::GetToolboxStyle() const
-Index: svtools/source/contnr/templwin.cxx
-===================================================================
-RCS file: /cvs/util/svtools/source/contnr/templwin.cxx,v
-retrieving revision 1.68
-retrieving revision 1.66.106.3
-diff -u -p -u -p -r1.68 -r1.66.106.3
---- svtools/source/contnr/templwin.cxx 11 Nov 2005 12:14:15 -0000 1.68
-+++ svtools/source/contnr/templwin.cxx 30 Nov 2005 14:41:04 -0000 1.66.106.3
-@@ -1431,7 +1431,7 @@ void SvtTemplateWindow::InitToolBoxes()
- void SvtTemplateWindow::InitToolBoxImages()
- {
- SvtMiscOptions aMiscOpt;
-- BOOL bLarge = ( aMiscOpt.GetSymbolSet() == SFX_SYMBOLS_LARGE );
-+ BOOL bLarge = aMiscOpt.AreCurrentSymbolsLarge();
- sal_Bool bHiContrast = aFileViewTB.GetBackground().GetColor().IsDark();
-
- aFileViewTB.SetItemImage( TI_DOCTEMPLATE_BACK, Image( SvtResId(
-Index: svtools/source/uno/toolboxcontroller.cxx
-===================================================================
-RCS file: /cvs/util/svtools/source/uno/toolboxcontroller.cxx,v
-retrieving revision 1.8
-retrieving revision 1.7.4.2
-diff -u -p -u -p -r1.8 -r1.7.4.2
---- svtools/source/uno/toolboxcontroller.cxx 8 Sep 2005 16:55:29 -0000 1.8
-+++ svtools/source/uno/toolboxcontroller.cxx 1 Nov 2005 23:20:02 -0000 1.7.4.2
-@@ -669,21 +669,7 @@ sal_Bool ToolboxController::isBound() co
-
- sal_Bool ToolboxController::hasBigImages() const
- {
-- sal_Bool bBig( sal_False );
-- sal_Int16 eOptSymbolSet = SvtMiscOptions().GetSymbolSet();
--
-- if ( eOptSymbolSet == SFX_SYMBOLS_AUTO )
-- {
-- // Use system settings, we have to retrieve the toolbar icon size from the
-- // Application class
-- ULONG nStyleIconSize = Application::GetSettings().GetStyleSettings().GetToolbarIconSize();
-- if ( nStyleIconSize == STYLE_TOOLBAR_ICONSIZE_LARGE )
-- eOptSymbolSet = SFX_SYMBOLS_LARGE;
-- else
-- eOptSymbolSet = SFX_SYMBOLS_SMALL;
-- }
--
-- return ( eOptSymbolSet == SFX_SYMBOLS_LARGE );
-+ return SvtMiscOptions().AreCurrentSymbolsLarge();
- }
-
- sal_Bool ToolboxController::isHighContrast() const
-Index: svtools/util/makefile.mk
-===================================================================
-RCS file: /cvs/util/svtools/util/makefile.mk,v
-retrieving revision 1.55
-retrieving revision 1.54.2.2
-diff -u -p -u -p -r1.55 -r1.54.2.2
---- svtools/util/makefile.mk 8 Sep 2005 16:59:58 -0000 1.55
-+++ svtools/util/makefile.mk 1 Nov 2005 23:23:01 -0000 1.54.2.2
-@@ -195,6 +195,7 @@ SHL2IMPLIB= _isvl
- SHL2USE_EXPORTS=ordinal
-
- SHL2STDLIBS= \
-+ $(VCLLIB) \
- $(UNOTOOLSLIB) \
- $(TOOLSLIB) \
- $(UCBHELPERLIB) \
-Index: solenv/bin/hicontrast-to-theme.pl
-===================================================================
-RCS file: solenv/bin/hicontrast-to-theme.pl
-diff -N solenv/bin/hicontrast-to-theme.pl
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ solenv/bin/hicontrast-to-theme.pl 11 Nov 2005 12:06:40 -0000 1.1.2.2
-@@ -0,0 +1,126 @@
-+:
-+ eval 'exec perl -S $0 ${1+"$@"}'
-+ if 0;
-+#*************************************************************************
-+#
-+# OpenOffice.org - a multi-platform office productivity suite
-+#
-+# $RCSfile$
-+#
-+# $Revision$
-+#
-+# last change: $Author$ $Date$
-+#
-+# The Contents of this file are made available subject to
-+# the terms of GNU Lesser General Public License Version 2.1.
-+#
-+#
-+# GNU Lesser General Public License Version 2.1
-+# =============================================
-+# Copyright 2005 by Sun Microsystems, Inc.
-+# 901 San Antonio Road, Palo Alto, CA 94303, USA
-+#
-+# This library is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU Lesser General Public
-+# License version 2.1, as published by the Free Software Foundation.
-+#
-+# This library 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 for more details.
-+#
-+# You should have received a copy of the GNU Lesser General Public
-+# License along with this library; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+# MA 02111-1307 USA
-+#
-+#*************************************************************************
-+#
-+# Create ordinary theme from HiContrast images.
-+#
-+
-+use File::Copy;
-+use File::Find;
-+use File::Path;
-+use File::Spec;
-+
-+( $src, $dst ) = @ARGV;
-+
-+if ( $src eq "" || $dst eq "" ) {
-+ print STDERR "Usage: hicontrast-to-theme.pl src dest\n\n";
-+ print STDERR "Create ordinary theme from HiContrast images.\n";
-+ exit 1;
-+}
-+
-+$dst = File::Spec->rel2abs( $dst );
-+
-+@hc_table = (
-+ [ ".*_h.png", "_h.png", ".png" ],
-+ [ ".*_sch.png", "_sch.png", ".png" ],
-+ [ ".*_hc.png", "_hc.png", ".png" ],
-+ [ "lch_.*.png", "lch_", "lc_" ],
-+ [ "sch_.*.png", "sch_", "sc_" ],
-+ [ "lch[0-9].*.png", "lch", "lc" ],
-+ [ "sch[0-9].*.png", "sch", "sc" ],
-+ [ "loh[0-9].*.png", "loh", "lo" ],
-+ [ "lxh[0-9].*.png", "lxh", "lx" ],
-+ [ "sxh[0-9].*.png", "sxh", "sx" ],
-+ [ "avh[0-9].*.png", "avh", "av" ],
-+ [ "avlh[0-9].*.png", "avlh", "avl" ],
-+ [ "idh[0-9].*.png", "idh", "id" ],
-+ [ "imh[0-9].*.png", "imh", "im" ],
-+ [ "mih[0-9].*.png", "mih", "mi" ],
-+ [ "tbh[0-9].*.png", "tbh", "tb" ],
-+ [ "nah[0-9].*.png", "nah", "na" ],
-+ [ "nch[0-9].*.png", "nch", "nc" ],
-+ [ "nvh[0-9].*.png", "nvh", "nv" ],
-+ [ "ouh[0-9].*.png", "ouh", "ou" ],
-+ [ "ddh[0-9].*.png", "ddh", "dd" ],
-+ [ "sfh[0-9].*.png", "sfh", "sf" ],
-+ [ "srh[0-9].*.png", "srh", "sr" ],
-+ [ "wrh[0-9].*.png", "wrh", "wr" ],
-+ [ "alh[0-9].*.png", "alh", "al" ],
-+ [ "ath[0-9].*.png", "ath", "at" ],
-+ [ "bih[0-9].*.png", "bih", "bi" ],
-+ [ "coh[0-9].*.png", "coh", "co" ],
-+ [ "foh[0-9].*.png", "foh", "fo" ],
-+ [ "fuh[0-9].*.png", "fuh", "fu" ],
-+ [ "oph[0-9].*.png", "oph", "op" ],
-+ [ "unh[0-9].*.png", "unh", "un" ],
-+ [ "edh[0-9].*.png", "edh", "ed" ],
-+ [ "cdh[0-9].*.png", "cdh", "cd" ],
-+ [ "frh[0-9].*.png", "frh", "fr" ],
-+ [ "fwh[0-9].*.png", "fwh", "fw" ],
-+ [ "nuh[0-9].*.png", "nuh", "nu" ],
-+ [ "prh[0-9].*.png", "prh", "pr" ],
-+ [ "shh[0-9].*.png", "shh", "sh" ],
-+ [ "trh[0-9].*.png", "trh", "tr" ],
-+ [ "reh[0-9].*.png", "reh", "re" ],
-+ [ "joh[0-9].*.png", "joh", "jo" ],
-+ [ "fph[0-9].*.png", "fph", "fp" ],
-+ [ "dah[0-9].*.png", "dah", "da" ]
-+);
-+
-+sub copy_normalized {
-+ $file = $_;
-+ for $hc ( @hc_table ) {
-+ ( $what, $from, $to ) = @$hc;
-+ if ( $file =~ /$what/ ) {
-+ my $dir = File::Spec->catdir( $dst, $File::Find::dir );
-+
-+ if ( ! -d $dir ) {
-+ mkpath( $dir );
-+ }
-+
-+ ( my $copy = $file ) =~ s/$from/$to/;
-+ $copy = File::Spec->catfile( $dir, $copy );
-+
-+ copy( $file, $copy ) || die $!;
-+
-+ last;
-+ }
-+ }
-+}
-+
-+chdir( $src );
-+find( \&copy_normalized, '.' );
-Index: solenv/inc/settings.mk
-===================================================================
-RCS file: /cvs/tools/solenv/inc/settings.mk,v
-retrieving revision 1.178
-retrieving revision 1.172.14.4
-diff -u -p -u -p -r1.178 -r1.172.14.4
---- solenv/inc/settings.mk 14 Nov 2005 09:33:05 -0000 1.178
-+++ solenv/inc/settings.mk 30 Nov 2005 14:51:54 -0000 1.172.14.4
-@@ -1092,6 +1092,9 @@ RSCEXTINC=.
- RSCDEFS+= -DDEBUG
- .ENDIF
-
-+# additional image sets
-+CUSTOM_IMAGE_SETS=hicontrast industrial
-+
- UNOIDL=unoidl
-
- # settings for mozilla idl compiler
-Index: config_office/configure.in
-===================================================================
-RCS file: /cvs/tools/config_office/configure.in,v
-retrieving revision 1.139
-retrieving revision 1.128.2.3
-diff -u -p -u -p -r1.139 -r1.128.2.3
---- config_office/configure.in 25 Oct 2005 11:23:57 -0000 1.139
-+++ config_office/configure.in 30 Nov 2005 14:53:24 -0000 1.128.2.3
-@@ -428,12 +428,6 @@ AC_ARG_ENABLE(macos9,
- [ --enable-macos9 Use this option option if you want to generate a
- macos9 environment on macosx.
- ],,)
--AC_ARG_WITH(images,
--[ --with-images Select different image sets to build & install in
-- addition to the default set.
--
-- Usage: --with-images="industrial crystal"
--],with_images=$withval,with_images=)
- AC_ARG_WITH(lang,
- [ --with-lang Use this option to build OpenOffice.org with
- additional language support. English (US) is always
-@@ -4189,15 +4183,6 @@ else
- AC_MSG_RESULT([no])
- fi
- AC_SUBST(ENABLE_STATIC_GTK)
--
--AC_MSG_CHECKING([whether to use custom image sets])
--if test -z "$with_images"; then
-- AC_MSG_RESULT([no])
--else
-- CUSTOM_IMAGE_SETS="$with_images"
-- AC_MSG_RESULT([$CUSTOM_IMAGE_SETS])
--fi
--AC_SUBST(CUSTOM_IMAGE_SETS)
-
- dnl ===================================================================
- dnl Setting up the environment.
-Index: config_office/set_soenv.in
-===================================================================
-RCS file: /cvs/tools/config_office/set_soenv.in,v
-retrieving revision 1.78
-retrieving revision 1.70.2.3
-diff -u -p -u -p -r1.78 -r1.70.2.3
---- config_office/set_soenv.in 28 Oct 2005 11:59:53 -0000 1.78
-+++ config_office/set_soenv.in 30 Nov 2005 14:53:34 -0000 1.70.2.3
-@@ -1522,7 +1522,6 @@ ToFile( "ENABLE_KDE", "@ENABLE_KD
- ToFile( "KDE_CFLAGS", "@KDE_CFLAGS@", "e" );
- ToFile( "KDE_LIBS", "@KDE_LIBS@", "e" );
- ToFile( "MOC", "@MOC@", "e" );
--ToFile( "CUSTOM_IMAGE_SETS", "@CUSTOM_IMAGE_SETS@","e" );
- ToFile( "PSPRINT", "TRUE", "e" );
- # [ed] 5/14/02 If we're building Aqua graphics, insert a C macro to indicate this.
- # There may be a better way to do this, like splitting unxmacxp into two, but
-Index: xmlhelp/inc/provider/databases.hxx
-===================================================================
-RCS file: /cvs/util/xmlhelp/inc/provider/databases.hxx,v
-retrieving revision 1.27
-retrieving revision 1.25.10.3
-diff -u -p -u -p -r1.27 -r1.25.10.3
---- xmlhelp/inc/provider/databases.hxx 11 Nov 2005 12:16:16 -0000 1.27
-+++ xmlhelp/inc/provider/databases.hxx 30 Nov 2005 14:53:44 -0000 1.25.10.3
-@@ -206,9 +206,9 @@ namespace chelp {
- * Input is the installdirectory in system dependent notation
- */
-
-- Databases( sal_Bool showBasic,
-+ Databases( sal_Bool showBasic,
- const rtl::OUString& instPath,
-- const rtl::OUString& imageZip,
-+ const com::sun::star::uno::Sequence< rtl::OUString >& imagesZipPaths,
- const rtl::OUString& productName,
- const rtl::OUString& productVersion,
- const rtl::OUString& vendorName,
-@@ -362,7 +362,9 @@ namespace chelp {
- prodName,prodVersion,vendName,vendVersion,vendShort;
-
- rtl::OUString m_aInstallDirectory; // Installation directory
-+ com::sun::star::uno::Sequence< rtl::OUString > m_aImagesZipPaths;
- rtl::OString m_aImagesZipFileURL;
-+ sal_Int16 m_nSymbolsStyle;
- rtl::OUString m_aInstallDirectoryWithoutEncoding; // a work around for a Sablot bug.
- rtl::OUString m_aInstallDirectoryAsSystemPath; // Installation directory
-
-Index: xmlhelp/prj/build.lst
-===================================================================
-RCS file: /cvs/util/xmlhelp/prj/build.lst,v
-retrieving revision 1.9
-retrieving revision 1.8.154.2
-diff -u -p -u -p -r1.9 -r1.8.154.2
---- xmlhelp/prj/build.lst 23 Sep 2005 13:48:31 -0000 1.9
-+++ xmlhelp/prj/build.lst 2 Nov 2005 00:05:46 -0000 1.8.154.2
-@@ -1,4 +1,4 @@
--xh xmlhelp : ucbhelper XmlSearch SABLOT:sablot jut unoil BERKELEYDB:berkeleydb NULL
-+xh xmlhelp : ucbhelper XmlSearch SABLOT:sablot jut unoil BERKELEYDB:berkeleydb svtools NULL
- xh xmlhelp usr1 - all xh_mkout NULL
- xh xmlhelp\source\helpprovider nmake - all xh_helpprovider NULL
- xh xmlhelp\source\treeview nmake - all xh_treeview NULL
-Index: xmlhelp/source/cxxhelp/provider/databases.cxx
-===================================================================
-RCS file: /cvs/util/xmlhelp/source/cxxhelp/provider/databases.cxx,v
-retrieving revision 1.43
-retrieving revision 1.41.10.3
-diff -u -p -u -p -r1.43 -r1.41.10.3
---- xmlhelp/source/cxxhelp/provider/databases.cxx 11 Nov 2005 12:16:51 -0000 1.43
-+++ xmlhelp/source/cxxhelp/provider/databases.cxx 30 Nov 2005 14:54:37 -0000 1.41.10.3
-@@ -63,6 +63,9 @@
- #ifndef _RTL_USTRBUF_HXX_
- #include <rtl/ustrbuf.hxx>
- #endif
-+#ifndef INCLUDED_SVTOOLS_MISCOPT_HXX
-+#include <svtools/miscopt.hxx>
-+#endif
- #include "inputstream.hxx"
- #include <algorithm>
-
-@@ -77,7 +80,7 @@ using namespace com::sun::star::lang;
-
- Databases::Databases( sal_Bool showBasic,
- const rtl::OUString& instPath,
-- const rtl::OUString& imageZip,
-+ const com::sun::star::uno::Sequence< rtl::OUString >& imagesZipPaths,
- const rtl::OUString& productName,
- const rtl::OUString& productVersion,
- const rtl::OUString& vendorName,
-@@ -92,12 +95,9 @@ Databases::Databases( sal_Bool showBasic
- m_nCustomCSSDocLength( 0 ),
- m_pCustomCSSDoc( 0 ),
- m_aCSS(styleSheet.toAsciiLowerCase()),
-- m_aImagesZipFileURL(rtl::OUStringToOString(
-- rtl::Uri::encode(
-- imageZip,
-- rtl_UriCharClassPchar,
-- rtl_UriEncodeIgnoreEscapes,
-- RTL_TEXTENCODING_UTF8 ),RTL_TEXTENCODING_UTF8)),
-+ m_aImagesZipPaths( imagesZipPaths ),
-+ m_aImagesZipFileURL(),
-+ m_nSymbolsStyle( 0 ),
- newProdName(rtl::OUString::createFromAscii( "$[officename]" ) ),
- newProdVersion(rtl::OUString::createFromAscii( "$[officeversion]" ) ),
- prodName( rtl::OUString::createFromAscii( "%PRODUCTNAME" ) ),
-@@ -174,9 +174,66 @@ Databases::~Databases()
-
- }
-
-+static bool impl_getZipFile(
-+ Sequence< rtl::OUString > & rImagesZipPaths,
-+ const rtl::OUString & rZipName,
-+ rtl::OUString & rFileName )
-+{
-+ const rtl::OUString *pPathArray = rImagesZipPaths.getArray();
-+ for ( int i = 0; i < rImagesZipPaths.getLength(); ++i )
-+ {
-+ rFileName = pPathArray[ i ];
-+ if ( rFileName.getLength() )
-+ {
-+ if ( 1 + rFileName.lastIndexOf( '/' ) != rFileName.getLength() )
-+ {
-+ rFileName += rtl::OUString::createFromAscii( "/" );
-+ }
-+ rFileName += rZipName;
-+
-+ // test existence
-+ osl::DirectoryItem aDirItem;
-+ if ( osl::DirectoryItem::get( rFileName, aDirItem ) == osl::FileBase::E_None )
-+ return true;
-+ }
-+ }
-+ return false;
-+}
-
- rtl::OString Databases::getImagesZipFileURL()
- {
-+ sal_Int16 nSymbolsStyle = SvtMiscOptions().GetCurrentSymbolsStyle();
-+ if ( !m_aImagesZipFileURL.getLength() || ( m_nSymbolsStyle != nSymbolsStyle ) )
-+ {
-+ m_nSymbolsStyle = nSymbolsStyle;
-+
-+ rtl::OUString aImageZip;
-+ rtl::OUString aSymbolsStyleName = SvtMiscOptions().GetCurrentSymbolsStyleName();
-+ bool bFound = false;
-+
-+ if ( aSymbolsStyleName.getLength() != 0 )
-+ {
-+ rtl::OUString aZipName = rtl::OUString::createFromAscii( "images_" );
-+ aZipName += aSymbolsStyleName;
-+ aZipName += rtl::OUString::createFromAscii( ".zip" );
-+
-+ bFound = impl_getZipFile( m_aImagesZipPaths, aZipName, aImageZip );
-+ }
-+
-+ if ( ! bFound )
-+ bFound = impl_getZipFile( m_aImagesZipPaths, rtl::OUString::createFromAscii( "images.zip" ), aImageZip );
-+
-+ if ( ! bFound )
-+ aImageZip = rtl::OUString();
-+
-+ m_aImagesZipFileURL = rtl::OUStringToOString(
-+ rtl::Uri::encode(
-+ aImageZip,
-+ rtl_UriCharClassPchar,
-+ rtl_UriEncodeIgnoreEscapes,
-+ RTL_TEXTENCODING_UTF8 ), RTL_TEXTENCODING_UTF8 );
-+ }
-+
- return m_aImagesZipFileURL;
- }
-
-Index: xmlhelp/source/cxxhelp/provider/provider.cxx
-===================================================================
-RCS file: /cvs/util/xmlhelp/source/cxxhelp/provider/provider.cxx,v
-retrieving revision 1.19
-retrieving revision 1.17.44.3
-diff -u -p -u -p -r1.19 -r1.17.44.3
---- xmlhelp/source/cxxhelp/provider/provider.cxx 11 Nov 2005 12:17:07 -0000 1.19
-+++ xmlhelp/source/cxxhelp/provider/provider.cxx 30 Nov 2005 14:54:45 -0000 1.17.44.3
-@@ -370,36 +370,23 @@ void ContentProvider::init()
- rtl::OUString vendorshort = vendorname;
-
-
-- bool found = false;
-+ Sequence< rtl::OUString > aImagesZipPaths( 2 );
- xHierAccess = getHierAccess( sProvider,
- "org.openoffice.Office.Common" );
-- rtl::OUString imageZip(getKey(xHierAccess,"Path/Current/UserConfig"));
-- subst(imageZip);
-- if(imageZip.getLength()) {
-- // test existence
-- if(1+imageZip.lastIndexOf('/') == imageZip.getLength())
-- imageZip += rtl::OUString::createFromAscii("images.zip");
-- else
-- imageZip += rtl::OUString::createFromAscii("/images.zip");
-- osl::DirectoryItem aDirItem;
-- if(osl::DirectoryItem::get(imageZip,aDirItem) == osl::FileBase::E_None)
-- found = true;
-- }
--
-- if(!found) {
-- imageZip = getKey(xHierAccess,"Path/Current/Config");
-- subst(imageZip);
-- if(1+imageZip.lastIndexOf('/') == imageZip.getLength())
-- imageZip += rtl::OUString::createFromAscii("images.zip");
-- else
-- imageZip += rtl::OUString::createFromAscii("/images.zip");
-- }
-
-- sal_Bool showBasic = getBooleanKey(xHierAccess,"Help/ShowBasic");
-+ rtl::OUString aPath( getKey( xHierAccess, "Path/Current/UserConfig" ) );
-+ subst( aPath );
-+ aImagesZipPaths[ 0 ] = aPath;
-+
-+ aPath = getKey( xHierAccess, "Path/Current/Config" );
-+ subst( aPath );
-+ aImagesZipPaths[ 1 ] = aPath;
-+
-+ sal_Bool showBasic = getBooleanKey(xHierAccess,"Help/ShowBasic");
- m_pDatabases = new Databases( showBasic,
- instPath,
-- imageZip,
-- productname,
-+ aImagesZipPaths,
-+ productname,
- productversion,
- vendorname,
- vendorversion,
-Index: xmlhelp/util/makefile.mk
-===================================================================
-RCS file: /cvs/util/xmlhelp/util/makefile.mk,v
-retrieving revision 1.8
-retrieving revision 1.7.10.2
-diff -u -p -u -p -r1.8 -r1.7.10.2
---- xmlhelp/util/makefile.mk 9 Sep 2005 12:27:33 -0000 1.8
-+++ xmlhelp/util/makefile.mk 2 Nov 2005 00:12:04 -0000 1.7.10.2
-@@ -78,6 +78,7 @@ SHL1STDLIBS= \
- $(SABLOT3RDLIB) \
- $(EXPATASCII3RDLIB) \
- $(UCBHELPERLIB) \
-+ $(SVLLIB) \
- $(BERKELEYLIB)
- # $(BERKELEYCPPLIB)
-
-Index: sfx2/inc/imgmgr.hxx
-===================================================================
-RCS file: /cvs/framework/sfx2/inc/imgmgr.hxx,v
-retrieving revision 1.16
-retrieving revision 1.15.258.2
-diff -u -p -u -p -r1.16 -r1.15.258.2
---- sfx2/inc/imgmgr.hxx 7 Sep 2005 16:58:13 -0000 1.16
-+++ sfx2/inc/imgmgr.hxx 2 Nov 2005 00:19:15 -0000 1.15.258.2
-@@ -61,7 +61,6 @@ class SFX2_DLLPUBLIC SfxImageManager
- SfxImageManager_Impl* pImp;
-
- public:
-- static sal_Int16 GetCurrentSymbolSet();
- static SfxImageManager* GetImageManager( SfxModule* );
-
- SfxImageManager( SfxModule* pModule = 0 );
-Index: sfx2/source/appl/appcfg.cxx
-===================================================================
-RCS file: /cvs/framework/sfx2/source/appl/appcfg.cxx,v
-retrieving revision 1.63
-retrieving revision 1.62.120.2
-diff -u -p -u -p -r1.63 -r1.62.120.2
---- sfx2/source/appl/appcfg.cxx 7 Sep 2005 17:32:10 -0000 1.63
-+++ sfx2/source/appl/appcfg.cxx 2 Nov 2005 00:34:34 -0000 1.62.120.2
-@@ -289,18 +289,7 @@ BOOL SfxApplication::GetOptions( SfxItem
- break;
- case SID_ATTR_BUTTON_BIGSIZE :
- {
-- sal_Int16 eOptSymbolSet = aMiscOptions.GetSymbolSet();
-- if ( eOptSymbolSet == SFX_SYMBOLS_AUTO )
-- {
-- // Use system settings, we have to retrieve the toolbar icon size from the
-- // Application class
-- ULONG nStyleIconSize = Application::GetSettings().GetStyleSettings().GetToolbarIconSize();
-- if ( nStyleIconSize == STYLE_TOOLBAR_ICONSIZE_LARGE )
-- eOptSymbolSet = SFX_SYMBOLS_LARGE;
-- else
-- eOptSymbolSet = SFX_SYMBOLS_SMALL;
-- }
-- if(rSet.Put( SfxBoolItem( rPool.GetWhich( SID_ATTR_BUTTON_BIGSIZE ), eOptSymbolSet == SFX_SYMBOLS_LARGE)))
-+ if( rSet.Put( SfxBoolItem( rPool.GetWhich( SID_ATTR_BUTTON_BIGSIZE ), aMiscOptions.AreCurrentSymbolsLarge() ) ) )
- bRet = TRUE;
- break;
- }
-@@ -750,7 +739,7 @@ void SfxApplication::SetOptions_Impl( co
- {
- DBG_ASSERT(pItem->ISA(SfxBoolItem), "BoolItem expected");
- BOOL bBigSize = ( (const SfxBoolItem*)pItem )->GetValue();
-- aMiscOptions.SetSymbolSet( bBigSize ? SFX_SYMBOLS_LARGE : SFX_SYMBOLS_SMALL );
-+ aMiscOptions.SetSymbolsSize( bBigSize ? SFX_SYMBOLS_SIZE_LARGE : SFX_SYMBOLS_SIZE_SMALL );
- SfxViewFrame* pViewFrame = SfxViewFrame::GetFirst();
- while ( pViewFrame )
- {
-Index: sfx2/source/appl/newhelp.cxx
-===================================================================
-RCS file: /cvs/framework/sfx2/source/appl/newhelp.cxx,v
-retrieving revision 1.114
-retrieving revision 1.112.8.3
-diff -u -p -u -p -r1.114 -r1.112.8.3
---- sfx2/source/appl/newhelp.cxx 4 Nov 2005 15:49:35 -0000 1.114
-+++ sfx2/source/appl/newhelp.cxx 30 Nov 2005 14:57:10 -0000 1.112.8.3
-@@ -2251,29 +2251,11 @@ sal_Bool SfxHelpTextWindow_Impl::HasSele
- return bRet;
- }
-
--static sal_Int16 GetCurrentSymbolSet()
--{
-- sal_Int16 eOptSymbolSet = SvtMiscOptions().GetSymbolSet();
--
-- if ( eOptSymbolSet == SFX_SYMBOLS_AUTO )
-- {
-- // Use system settings, we have to retrieve the toolbar icon size from the
-- // Application class
-- ULONG nStyleIconSize = Application::GetSettings().GetStyleSettings().GetToolbarIconSize();
-- if ( nStyleIconSize == STYLE_TOOLBAR_ICONSIZE_LARGE )
-- eOptSymbolSet = SFX_SYMBOLS_LARGE;
-- else
-- eOptSymbolSet = SFX_SYMBOLS_SMALL;
-- }
--
-- return eOptSymbolSet;
--}
--
- // -----------------------------------------------------------------------
-
- void SfxHelpTextWindow_Impl::InitToolBoxImages()
- {
-- sal_Bool bLarge = ( GetCurrentSymbolSet() == SFX_SYMBOLS_LARGE );
-+ sal_Bool bLarge = SvtMiscOptions().AreCurrentSymbolsLarge();
- sal_Bool bHiContrast = GetBackground().GetColor().IsDark();
-
- aIndexOnImage = Image( SfxResId(
-Index: sfx2/source/toolbox/imgmgr.cxx
-===================================================================
-RCS file: /cvs/framework/sfx2/source/toolbox/imgmgr.cxx,v
-retrieving revision 1.25
-retrieving revision 1.24.308.2
-diff -u -p -u -p -r1.25 -r1.24.308.2
---- sfx2/source/toolbox/imgmgr.cxx 7 Sep 2005 19:22:11 -0000 1.25
-+++ sfx2/source/toolbox/imgmgr.cxx 2 Nov 2005 01:28:10 -0000 1.24.308.2
-@@ -75,7 +75,7 @@ struct ToolBoxInf_Impl
- class SfxImageManager_Impl
- {
- public:
-- sal_Int16 m_nSet;
-+ sal_Int16 m_nSymbolsSize;
- SvtMiscOptions m_aOpt;
- std::vector< ToolBoxInf_Impl* > m_aToolBoxes;
- ImageList* m_pImageList[IMAGELIST_COUNT];
-@@ -83,7 +83,7 @@ public:
-
- ImageList* GetImageList( BOOL bBig, BOOL bHiContrast );
- Image GetImage( USHORT nId, BOOL bBig, BOOL bHiContrast );
-- void SetSymbolSet_Impl( sal_Int16 );
-+ void SetSymbolsSize_Impl( sal_Int16 );
-
- DECL_LINK( OptionsChanged_Impl, void* );
- DECL_LINK( SettingsChanged_Impl, void* );
-@@ -171,7 +171,7 @@ static sal_Int16 impl_convertBools( sal_
-
- SfxImageManager_Impl::SfxImageManager_Impl( SfxModule* pModule ) :
- m_pModule( pModule ),
-- m_nSet( SfxImageManager::GetCurrentSymbolSet() )
-+ m_nSymbolsSize( SvtMiscOptions().GetCurrentSymbolsSize() )
- {
- for ( sal_uInt32 i = 0; i < IMAGELIST_COUNT; i++ )
- m_pImageList[i] = 0;
-@@ -219,14 +219,14 @@ Image SfxImageManager_Impl::GetImage( US
-
- //-------------------------------------------------------------------------
-
--void SfxImageManager_Impl::SetSymbolSet_Impl( sal_Int16 nNewSet )
-+void SfxImageManager_Impl::SetSymbolsSize_Impl( sal_Int16 nNewSymbolsSize )
- {
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
-- if ( nNewSet != m_nSet )
-+ if ( nNewSymbolsSize != m_nSymbolsSize )
- {
-- m_nSet = nNewSet;
-- BOOL bLarge( m_nSet == SFX_SYMBOLS_LARGE );
-+ m_nSymbolsSize = nNewSymbolsSize;
-+ BOOL bLarge( m_nSymbolsSize == SFX_SYMBOLS_SIZE_LARGE );
-
- for ( sal_uInt32 n=0; n < m_aToolBoxes.size(); n++ )
- {
-@@ -268,7 +268,7 @@ void SfxImageManager_Impl::SetSymbolSet_
-
- IMPL_LINK( SfxImageManager_Impl, OptionsChanged_Impl, void*, pVoid )
- {
-- SetSymbolSet_Impl( SfxImageManager::GetCurrentSymbolSet() );
-+ SetSymbolsSize_Impl( SvtMiscOptions().GetCurrentSymbolsSize() );
- return 0L;
- }
-
-@@ -277,32 +277,14 @@ IMPL_LINK( SfxImageManager_Impl, Options
- IMPL_LINK( SfxImageManager_Impl, SettingsChanged_Impl, void*, pVoid )
- {
- // Check if toolbar button size have changed and we have to use system settings
-- sal_Int16 nSymbolSet = SfxImageManager::GetCurrentSymbolSet();
-- if ( m_nSet != nSymbolSet )
-- SetSymbolSet_Impl( nSymbolSet );
-+ sal_Int16 nSymbolsSize = SvtMiscOptions().GetCurrentSymbolsSize();
-+ if ( m_nSymbolsSize != nSymbolsSize )
-+ SetSymbolsSize_Impl( nSymbolsSize );
- return 0L;
- }
-
- //-------------------------------------------------------------------------
-
--sal_Int16 SfxImageManager::GetCurrentSymbolSet()
--{
-- sal_Int16 eOptSymbolSet = SvtMiscOptions().GetSymbolSet();
--
-- if ( eOptSymbolSet == SFX_SYMBOLS_AUTO )
-- {
-- // Use system settings, we have to retrieve the toolbar icon size from the
-- // Application class
-- ULONG nStyleIconSize = Application::GetSettings().GetStyleSettings().GetToolbarIconSize();
-- if ( nStyleIconSize == STYLE_TOOLBAR_ICONSIZE_LARGE )
-- eOptSymbolSet = SFX_SYMBOLS_LARGE;
-- else
-- eOptSymbolSet = SFX_SYMBOLS_SMALL;
-- }
--
-- return eOptSymbolSet;
--}
--
- //=========================================================================
-
- SfxImageManager::SfxImageManager( SfxModule* pModule )
-@@ -348,7 +330,7 @@ Image SfxImageManager::GetImage( USHORT
-
- Image SfxImageManager::GetImage( USHORT nId, BOOL bHiContrast ) const
- {
-- BOOL bLarge = ( GetCurrentSymbolSet() == SFX_SYMBOLS_LARGE );
-+ BOOL bLarge = SvtMiscOptions().AreCurrentSymbolsLarge();
- return GetImage( nId, bLarge, bHiContrast );
- }
-
-@@ -373,7 +355,7 @@ Image SfxImageManager::SeekImage( USHORT
-
- Image SfxImageManager::SeekImage( USHORT nId, BOOL bHiContrast ) const
- {
-- BOOL bLarge = ( GetCurrentSymbolSet() == SFX_SYMBOLS_LARGE );
-+ BOOL bLarge = SvtMiscOptions().AreCurrentSymbolsLarge();
- return SeekImage( nId, bLarge, bHiContrast );
- }
-
-@@ -443,7 +425,7 @@ void SfxImageManager::SetImagesForceSize
-
- void SfxImageManager::SetImages( ToolBox& rToolBox )
- {
-- BOOL bLarge = ( pImp->m_nSet == SFX_SYMBOLS_LARGE );
-+ BOOL bLarge = ( pImp->m_nSymbolsSize == SFX_SYMBOLS_SIZE_LARGE );
- BOOL bHiContrast = rToolBox.GetBackground().GetColor().IsDark();
- SetImagesForceSize( rToolBox, bHiContrast, bLarge );
- }
-Index: sfx2/source/toolbox/tbxitem.cxx
-===================================================================
-RCS file: /cvs/framework/sfx2/source/toolbox/tbxitem.cxx,v
-retrieving revision 1.53
-retrieving revision 1.50.16.3
-diff -u -p -u -p -r1.53 -r1.50.16.3
---- sfx2/source/toolbox/tbxitem.cxx 11 Nov 2005 14:24:46 -0000 1.53
-+++ sfx2/source/toolbox/tbxitem.cxx 30 Nov 2005 15:00:51 -0000 1.50.16.3
-@@ -1707,24 +1707,6 @@ SfxPopupWindow* SfxAppToolBoxControl_Imp
- return 0;
- }
-
--static sal_Int16 GetCurrentSymbolSet()
--{
-- sal_Int16 eOptSymbolSet = SvtMiscOptions().GetSymbolSet();
--
-- if ( eOptSymbolSet == SFX_SYMBOLS_AUTO )
-- {
-- // Use system settings, we have to retrieve the toolbar icon size from the
-- // Application class
-- ULONG nStyleIconSize = Application::GetSettings().GetStyleSettings().GetToolbarIconSize();
-- if ( nStyleIconSize == STYLE_TOOLBAR_ICONSIZE_LARGE )
-- eOptSymbolSet = SFX_SYMBOLS_LARGE;
-- else
-- eOptSymbolSet = SFX_SYMBOLS_SMALL;
-- }
--
-- return eOptSymbolSet;
--}
--
- void SfxAppToolBoxControl_Impl::SetImage( const String &rURL )
- {
- /* We accept URL's here only, which exist as items of our internal popup menu.
-@@ -1736,7 +1718,7 @@ void SfxAppToolBoxControl_Impl::SetImage
- if (!bValid)
- aURL = sFallback;
-
-- BOOL bBig = ( GetCurrentSymbolSet() == SFX_SYMBOLS_LARGE );
-+ BOOL bBig = SvtMiscOptions().AreCurrentSymbolsLarge();
- BOOL bHC = GetToolBox().GetBackground().GetColor().IsDark();
- Image aImage = SvFileInformationManager::GetImageNoDefault( INetURLObject( aURL ), bBig, bHC );
- if ( !aImage )
diff --git a/patches/src680/cws-kaddrbook.diff b/patches/src680/cws-kaddrbook.diff
deleted file mode 100644
index a9ea5aa33..000000000
--- a/patches/src680/cws-kaddrbook.diff
+++ /dev/null
@@ -1,8151 +0,0 @@
-Index: connectivity/version.mk
-===================================================================
-RCS file: /cvs/dba/connectivity/version.mk,v
-retrieving revision 1.10
-retrieving revision 1.10.104.1
-diff -u -p -u -p -r1.10 -r1.10.104.1
---- connectivity/version.mk 9 Nov 2004 12:05:23 -0000 1.10
-+++ connectivity/version.mk 29 Aug 2005 08:46:07 -0000 1.10.104.1
-@@ -255,6 +255,22 @@ EVOAB_CPP=1
-
- EVOAB=$(EVOAB_TARGET_TARGET)_$(CMPEXT)
-
-+# ----------------------------Kab settings-------------------------------------#
-+# target
-+KAB_TARGET=kab
-+
-+# the major
-+KAB_MAJOR=1
-+# the minor
-+KAB_MINOR=0
-+# the micro
-+KAB_MICRO=0
-+
-+# this is a c++ compatible library
-+KAB_CPP=1
-+
-+KAB=$(KAB_TARGET_TARGET)_$(CMPEXT)
-+
- # ----------------------------HSQLDB settings-----------------------------------#
- # target
- HSQLDB_TARGET=hsqldb
-@@ -269,4 +285,4 @@ HSQLDB_MICRO=0
- # this is a c++ compatible library
- HSQLDB_CPP=1
-
--HSQLDB=$(HSQLDB_TARGET_TARGET)_$(CMPEXT)
-\ No newline at end of file
-+HSQLDB=$(HSQLDB_TARGET_TARGET)_$(CMPEXT)
-Index: connectivity/prj/build.lst
-===================================================================
-RCS file: /cvs/dba/connectivity/prj/build.lst,v
-retrieving revision 1.24
-retrieving revision 1.24.36.1
-diff -u -p -u -p -r1.24 -r1.24.36.1
---- connectivity/prj/build.lst 9 Jun 2005 14:08:55 -0000 1.24
-+++ connectivity/prj/build.lst 29 Aug 2005 08:46:07 -0000 1.24.36.1
-@@ -11,6 +11,7 @@ cn connectivity\source\drivers\ado nma
- cn connectivity\source\drivers\mozab\bootstrap nmake - all cn_mozab_bootstrap NULL
- cn connectivity\source\drivers\mozab\mozillasrc nmake - all cn_mozab_mozillasrc cn_file NULL
- cn connectivity\source\drivers\mozab nmake - all cn_mozab cn_mozab_bootstrap cn_mozab_mozillasrc cn_dbtools NULL
-+cn connectivity\source\drivers\kab nmake - all cn_kab cn_dbtools cn_file NULL
- cn connectivity\source\drivers\evoab nmake - all cn_evoab cn_dbtools cn_file NULL
- cn connectivity\source\drivers\evoab2 nmake - all cn_evoab2 cn_dbtools cn_file NULL
- cn connectivity\source\drivers\calc nmake - all cn_calc cn_file NULL
-Index: connectivity/prj/d.lst
-===================================================================
-RCS file: /cvs/dba/connectivity/prj/d.lst,v
-retrieving revision 1.22
-retrieving revision 1.22.36.1
-diff -u -p -u -p -r1.22 -r1.22.36.1
---- connectivity/prj/d.lst 9 Jun 2005 14:09:09 -0000 1.22
-+++ connectivity/prj/d.lst 29 Aug 2005 08:46:08 -0000 1.22.36.1
-@@ -6,6 +6,7 @@
- ..\source\cpool\*.xml %_DEST%\xml%_EXT%\*.xml
- ..\source\drivers\adabas\*.xml %_DEST%\xml%_EXT%\*.xml
- ..\source\drivers\ado\*.xml %_DEST%\xml%_EXT%\*.xml
-+..\source\drivers\kab\*.xml %_DEST%\xml%_EXT%\*.xml
- ..\source\drivers\file\*.xml %_DEST%\xml%_EXT%\*.xml
- ..\source\drivers\flat\*.xml %_DEST%\xml%_EXT%\*.xml
- ..\source\drivers\dbase\*.xml %_DEST%\xml%_EXT%\*.xml
-Index: connectivity/source/drivers/kab/KCatalog.cxx
-===================================================================
-RCS file: connectivity/source/drivers/kab/KCatalog.cxx
-diff -N connectivity/source/drivers/kab/KCatalog.cxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/KCatalog.cxx 2 Sep 2005 08:04:21 -0000 1.1.2.2
-@@ -0,0 +1,159 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., July, 2005
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2005 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include "KCatalog.hxx"
-+#ifndef _CONNECTIVITY_KAB_CONNECTION_HXX_
-+#include "KConnection.hxx"
-+#endif
-+#ifndef _CONNECTIVITY_KAB_TABLES_HXX_
-+#include "KTables.hxx"
-+#endif
-+
-+using namespace connectivity::kab;
-+using namespace ::com::sun::star::uno;
-+using namespace ::com::sun::star::beans;
-+using namespace ::com::sun::star::sdbcx;
-+using namespace ::com::sun::star::sdbc;
-+using namespace ::com::sun::star::container;
-+using namespace ::com::sun::star::lang;
-+using namespace ::cppu;
-+
-+// -------------------------------------------------------------------------
-+KabCatalog::KabCatalog(KabConnection* _pCon)
-+ : connectivity::sdbcx::OCatalog(_pCon),
-+ m_pConnection(_pCon),
-+ m_xMetaData(m_pConnection->getMetaData())
-+{
-+}
-+// -------------------------------------------------------------------------
-+void KabCatalog::refreshTables()
-+{
-+ TStringVector aVector;
-+ Sequence< ::rtl::OUString > aTypes(1);
-+ aTypes[0] = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%"));
-+ Reference< XResultSet > xResult = m_xMetaData->getTables(
-+ Any(),
-+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("%")),
-+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("%")),
-+ aTypes);
-+
-+ if (xResult.is())
-+ {
-+ Reference< XRow > xRow(xResult,UNO_QUERY);
-+ ::rtl::OUString aName;
-+ // const ::rtl::OUString& sDot = KabCatalog::getDot();
-+
-+ while (xResult->next())
-+ {
-+ // aName = xRow->getString(2);
-+ // aName += sDot;
-+ aName = xRow->getString(3);
-+ aVector.push_back(aName);
-+ }
-+ }
-+ if (m_pTables)
-+ m_pTables->reFill(aVector);
-+ else
-+ m_pTables = new KabTables(m_xMetaData,*this,m_aMutex,aVector);
-+}
-+// -------------------------------------------------------------------------
-+void KabCatalog::refreshViews()
-+{
-+}
-+// -------------------------------------------------------------------------
-+void KabCatalog::refreshGroups()
-+{
-+}
-+// -------------------------------------------------------------------------
-+void KabCatalog::refreshUsers()
-+{
-+}
-+// -------------------------------------------------------------------------
-+const ::rtl::OUString& KabCatalog::getDot()
-+{
-+ static const ::rtl::OUString sDot = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("."));
-+ return sDot;
-+}
-+// -----------------------------------------------------------------------------
-+
-+// XTablesSupplier
-+Reference< XNameAccess > SAL_CALL KabCatalog::getTables( ) throw(RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard(m_aMutex);
-+ checkDisposed(rBHelper.bDisposed);
-+
-+ try
-+ {
-+ if (!m_pTables)
-+ refreshTables();
-+ }
-+ catch( const RuntimeException& )
-+ {
-+ // allowed to leave this method
-+ throw;
-+ }
-+ catch( const Exception& )
-+ {
-+ // allowed
-+ }
-+
-+ return m_pTables;
-+}
-Index: connectivity/source/drivers/kab/KCatalog.hxx
-===================================================================
-RCS file: connectivity/source/drivers/kab/KCatalog.hxx
-diff -N connectivity/source/drivers/kab/KCatalog.hxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/KCatalog.hxx 2 Sep 2005 08:04:22 -0000 1.1.2.2
-@@ -0,0 +1,100 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., July, 2005
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2005 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CONNECTIVITY_KAB_CATALOG_HXX_
-+#define _CONNECTIVITY_KAB_CATALOG_HXX_
-+
-+#ifndef _CONNECTIVITY_SDBCX_CATALOG_HXX_
-+#include "connectivity/sdbcx/VCatalog.hxx"
-+#endif
-+
-+namespace connectivity
-+{
-+ namespace kab
-+ {
-+ class KabConnection;
-+
-+ class KabCatalog : public connectivity::sdbcx::OCatalog
-+ {
-+ KabConnection* m_pConnection; // used to get the metadata
-+ ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData > m_xMetaData; // just to make things easier
-+
-+ public:
-+ KabCatalog(KabConnection* _pCon);
-+
-+ inline KabConnection* getConnection() const { return m_pConnection; }
-+
-+ static const ::rtl::OUString& getDot();
-+
-+ // implementation of the pure virtual methods
-+ virtual void refreshTables();
-+ virtual void refreshViews();
-+ virtual void refreshGroups();
-+ virtual void refreshUsers();
-+
-+ // XTablesSupplier
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL getTables(
-+ ) throw(::com::sun::star::uno::RuntimeException);
-+ };
-+ }
-+}
-+
-+#endif // _CONNECTIVITY_KAB_CATALOG_HXX_
-Index: connectivity/source/drivers/kab/KColumns.cxx
-===================================================================
-RCS file: connectivity/source/drivers/kab/KColumns.cxx
-diff -N connectivity/source/drivers/kab/KColumns.cxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/KColumns.cxx 29 Aug 2005 08:43:47 -0000 1.1.2.1
-@@ -0,0 +1,129 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., July, 2005
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2005 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include "KColumns.hxx"
-+#ifndef _CONNECTIVITY_KAB_TABLE_HXX_
-+#include "KTable.hxx"
-+#endif
-+#ifndef _CONNECTIVITY_KAB_TABLES_HXX_
-+#include "KTables.hxx"
-+#endif
-+#ifndef _CONNECTIVITY_KAB_CATALOG_HXX_
-+#include "KCatalog.hxx"
-+#endif
-+
-+#ifndef _CONNECTIVITY_SDBCX_COLUMN_HXX_
-+#include "connectivity/sdbcx/VColumn.hxx"
-+#endif
-+
-+using namespace connectivity::kab;
-+using namespace connectivity::sdbcx;
-+using namespace connectivity;
-+using namespace ::comphelper;
-+using namespace ::com::sun::star::uno;
-+using namespace ::com::sun::star::beans;
-+using namespace ::com::sun::star::sdbc;
-+using namespace ::com::sun::star::container;
-+using namespace ::com::sun::star::lang;
-+
-+// -------------------------------------------------------------------------
-+sdbcx::ObjectType KabColumns::createObject(const ::rtl::OUString& _rName)
-+{
-+ Reference< XResultSet > xResult = m_pTable->getConnection()->getMetaData()->getColumns(
-+ Any(),
-+ m_pTable->getSchema(),
-+ m_pTable->getTableName(),
-+ _rName);
-+
-+ sdbcx::ObjectType xRet = NULL;
-+ if (xResult.is())
-+ {
-+ Reference< XRow > xRow(xResult,UNO_QUERY);
-+
-+ while (xResult->next())
-+ {
-+ if (xRow->getString(4) == _rName)
-+ {
-+ OColumn* pRet = new OColumn(
-+ _rName,
-+ xRow->getString(6),
-+ xRow->getString(13),
-+ xRow->getInt(11),
-+ xRow->getInt(7),
-+ xRow->getInt(9),
-+ xRow->getInt(5),
-+ sal_False,
-+ sal_False,
-+ sal_False,
-+ sal_True);
-+ xRet = pRet;
-+ break;
-+ }
-+ }
-+ }
-+
-+ return xRet;
-+}
-+// -------------------------------------------------------------------------
-+void KabColumns::impl_refresh() throw(RuntimeException)
-+{
-+ m_pTable->refreshColumns();
-+}
-Index: connectivity/source/drivers/kab/KColumns.hxx
-===================================================================
-RCS file: connectivity/source/drivers/kab/KColumns.hxx
-diff -N connectivity/source/drivers/kab/KColumns.hxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/KColumns.hxx 29 Aug 2005 08:43:47 -0000 1.1.2.1
-@@ -0,0 +1,96 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., July, 2005
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2005 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CONNECTIVITY_KAB_COLUMNS_HXX_
-+#define _CONNECTIVITY_KAB_COLUMNS_HXX_
-+
-+#ifndef _CONNECTIVITY_KAB_TABLE_HXX_
-+#include "KTable.hxx"
-+#endif
-+
-+#ifndef _CONNECTIVITY_SDBCX_COLLECTION_HXX_
-+#include "connectivity/sdbcx/VCollection.hxx"
-+#endif
-+
-+namespace connectivity
-+{
-+ namespace kab
-+ {
-+ class KabColumns : public sdbcx::OCollection
-+ {
-+ protected:
-+ KabTable* m_pTable;
-+
-+ virtual sdbcx::ObjectType createObject(const ::rtl::OUString& _rName);
-+ virtual void impl_refresh() throw(::com::sun::star::uno::RuntimeException);
-+
-+ public:
-+ KabColumns( KabTable* _pTable,
-+ ::osl::Mutex& _rMutex,
-+ const TStringVector &_rVector
-+ ) : sdbcx::OCollection(*_pTable,sal_True,_rMutex,_rVector),
-+ m_pTable(_pTable)
-+ { }
-+ };
-+ }
-+}
-+
-+#endif // _CONNECTIVITY_KAB_COLUMNS_HXX_
-Index: connectivity/source/drivers/kab/KCondition.cxx
-===================================================================
-RCS file: connectivity/source/drivers/kab/KCondition.cxx
-diff -N connectivity/source/drivers/kab/KCondition.cxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/KCondition.cxx 29 Aug 2005 08:43:47 -0000 1.1.2.1
-@@ -0,0 +1,263 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., July, 2005
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2005 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include "KCondition.hxx"
-+#ifndef _CONNECTIVITY_KAB_RESULTSETMETADATA_HXX_
-+#include "KResultSetMetaData.hxx"
-+#endif
-+
-+using namespace ::connectivity::kab;
-+
-+using namespace ::com::sun::star::sdbc;
-+// -----------------------------------------------------------------------------
-+KabCondition::~KabCondition()
-+{
-+}
-+// -----------------------------------------------------------------------------
-+KabConditionConstant::KabConditionConstant(const sal_Bool value)
-+ : m_bValue(value),
-+ KabCondition()
-+{
-+}
-+// -----------------------------------------------------------------------------
-+sal_Bool KabConditionConstant::isAlwaysTrue() const
-+{
-+ return m_bValue;
-+}
-+// -----------------------------------------------------------------------------
-+sal_Bool KabConditionConstant::isAlwaysFalse() const
-+{
-+ return !m_bValue;
-+}
-+// -----------------------------------------------------------------------------
-+sal_Bool KabConditionConstant::eval(::KABC::Addressee &addressee) const
-+{
-+ return m_bValue;
-+}
-+// -----------------------------------------------------------------------------
-+KabConditionColumn::KabConditionColumn(const ::rtl::OUString &columnName) throw(SQLException)
-+ : KabCondition()
-+{
-+ m_nFieldNumber = KabResultSetMetaData::findKabField(columnName);
-+}
-+// -----------------------------------------------------------------------------
-+sal_Bool KabConditionColumn::isAlwaysTrue() const
-+{
-+ // Sometimes true, sometimes false
-+ return sal_False;
-+}
-+// -----------------------------------------------------------------------------
-+sal_Bool KabConditionColumn::isAlwaysFalse() const
-+{
-+ // Sometimes true, sometimes false
-+ return sal_False;
-+}
-+// -----------------------------------------------------------------------------
-+KabConditionNull::KabConditionNull(const ::rtl::OUString &columnName) throw(SQLException)
-+ : KabConditionColumn(columnName)
-+{
-+}
-+// -----------------------------------------------------------------------------
-+sal_Bool KabConditionNull::eval(::KABC::Addressee &addressee) const
-+{
-+ ::KABC::Field::List aFields = ::KABC::Field::allFields();
-+ QString aQtName(aFields[m_nFieldNumber]->value(addressee));
-+
-+ return aQtName.isNull();
-+// KDE address book currently does not use NULL values.
-+// But it might do it someday
-+}
-+// -----------------------------------------------------------------------------
-+KabConditionNotNull::KabConditionNotNull(const ::rtl::OUString &columnName) throw(SQLException)
-+ : KabConditionColumn(columnName)
-+{
-+}
-+// -----------------------------------------------------------------------------
-+sal_Bool KabConditionNotNull::eval(::KABC::Addressee &addressee) const
-+{
-+ ::KABC::Field::List aFields = ::KABC::Field::allFields();
-+ QString aQtName(aFields[m_nFieldNumber]->value(addressee));
-+
-+ return !aQtName.isNull();
-+// KDE address book currently does not use NULL values.
-+// But it might do it someday
-+}
-+// -----------------------------------------------------------------------------
-+KabConditionCompare::KabConditionCompare(const ::rtl::OUString &columnName, const ::rtl::OUString &matchString) throw(SQLException)
-+ : m_sMatchString(matchString),
-+ KabConditionColumn(columnName)
-+{
-+}
-+// -----------------------------------------------------------------------------
-+KabConditionEqual::KabConditionEqual(const ::rtl::OUString &columnName, const ::rtl::OUString &matchString) throw(SQLException)
-+ : KabConditionCompare(columnName, matchString)
-+{
-+}
-+// -----------------------------------------------------------------------------
-+sal_Bool KabConditionEqual::eval(::KABC::Addressee &addressee) const
-+{
-+ ::KABC::Field::List aFields = ::KABC::Field::allFields();
-+ QString aQtName(aFields[m_nFieldNumber]->value(addressee));
-+
-+ if (aQtName.isNull()) return sal_False;
-+
-+ ::rtl::OUString sValue((const sal_Unicode *) aQtName.ucs2());
-+ return sValue == m_sMatchString;
-+}
-+// -----------------------------------------------------------------------------
-+KabConditionDifferent::KabConditionDifferent(const ::rtl::OUString &columnName, const ::rtl::OUString &matchString) throw(SQLException)
-+ : KabConditionCompare(columnName, matchString)
-+{
-+}
-+// -----------------------------------------------------------------------------
-+sal_Bool KabConditionDifferent::eval(::KABC::Addressee &addressee) const
-+{
-+ ::KABC::Field::List aFields = ::KABC::Field::allFields();
-+ QString aQtName(aFields[m_nFieldNumber]->value(addressee));
-+
-+ if (aQtName.isNull()) return sal_False;
-+
-+ ::rtl::OUString sValue((const sal_Unicode *) aQtName.ucs2());
-+ return sValue != m_sMatchString;
-+}
-+// -----------------------------------------------------------------------------
-+KabConditionSimilar::KabConditionSimilar(const ::rtl::OUString &columnName, const ::rtl::OUString &matchString) throw(SQLException)
-+ : KabConditionCompare(columnName, matchString)
-+{
-+}
-+// -----------------------------------------------------------------------------
-+sal_Bool KabConditionSimilar::eval(::KABC::Addressee &addressee) const
-+{
-+ ::KABC::Field::List aFields = ::KABC::Field::allFields();
-+ QString aQtName(aFields[m_nFieldNumber]->value(addressee));
-+
-+ if (aQtName.isNull()) return sal_False;
-+
-+ ::rtl::OUString sValue((const sal_Unicode *) aQtName.ucs2());
-+ return match(m_sMatchString, sValue, '\0');
-+}
-+// -----------------------------------------------------------------------------
-+KabConditionBoolean::KabConditionBoolean(KabCondition *left, KabCondition *right)
-+ : m_pLeft(left),
-+ m_pRight(right),
-+ KabCondition()
-+{
-+}
-+// -----------------------------------------------------------------------------
-+KabConditionBoolean::~KabConditionBoolean()
-+{
-+ delete m_pLeft;
-+ delete m_pRight;
-+}
-+// -----------------------------------------------------------------------------
-+KabConditionOr::KabConditionOr(KabCondition *left, KabCondition *right)
-+ : KabConditionBoolean(left, right)
-+{
-+}
-+// -----------------------------------------------------------------------------
-+sal_Bool KabConditionOr::isAlwaysTrue() const
-+{
-+ return m_pLeft->isAlwaysTrue() || m_pRight->isAlwaysTrue();
-+}
-+// -----------------------------------------------------------------------------
-+sal_Bool KabConditionOr::isAlwaysFalse() const
-+{
-+ return m_pLeft->isAlwaysFalse() && m_pRight->isAlwaysFalse();
-+}
-+// -----------------------------------------------------------------------------
-+sal_Bool KabConditionOr::eval(::KABC::Addressee &addressee) const
-+{
-+ // We avoid evaluating terms as much as we can
-+ if (m_pLeft->isAlwaysTrue() || m_pRight->isAlwaysTrue()) return sal_True;
-+ if (m_pLeft->isAlwaysFalse() && m_pRight->isAlwaysFalse()) return sal_False;
-+
-+ if (m_pLeft->eval(addressee)) return sal_True;
-+ if (m_pRight->eval(addressee)) return sal_True;
-+
-+ return sal_False;
-+}
-+// -----------------------------------------------------------------------------
-+KabConditionAnd::KabConditionAnd(KabCondition *left, KabCondition *right)
-+ : KabConditionBoolean(left, right)
-+{
-+}
-+// -----------------------------------------------------------------------------
-+sal_Bool KabConditionAnd::isAlwaysTrue() const
-+{
-+ return m_pLeft->isAlwaysTrue() && m_pRight->isAlwaysTrue();
-+}
-+// -----------------------------------------------------------------------------
-+sal_Bool KabConditionAnd::isAlwaysFalse() const
-+{
-+ return m_pLeft->isAlwaysFalse() || m_pRight->isAlwaysFalse();
-+}
-+// -----------------------------------------------------------------------------
-+sal_Bool KabConditionAnd::eval(::KABC::Addressee &addressee) const
-+{
-+ // We avoid evaluating terms as much as we can
-+ if (m_pLeft->isAlwaysFalse() || m_pRight->isAlwaysFalse()) return sal_False;
-+ if (m_pLeft->isAlwaysTrue() && m_pRight->isAlwaysTrue()) return sal_True;
-+
-+ if (!m_pLeft->eval(addressee)) return sal_False;
-+ if (!m_pRight->eval(addressee)) return sal_False;
-+
-+ return sal_True;
-+}
-Index: connectivity/source/drivers/kab/KCondition.hxx
-===================================================================
-RCS file: connectivity/source/drivers/kab/KCondition.hxx
-diff -N connectivity/source/drivers/kab/KCondition.hxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/KCondition.hxx 29 Aug 2005 08:43:48 -0000 1.1.2.1
-@@ -0,0 +1,197 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., July, 2005
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2005 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CONNECTIVITY_KAB_CONDITION_HXX_
-+#define _CONNECTIVITY_KAB_CONDITION_HXX_
-+
-+#ifndef _COMPHELPER_TYPES_H_
-+#include <comphelper/types.hxx>
-+#endif
-+#include <kabc/addressee.h>
-+
-+#ifndef _DBHELPER_DBEXCEPTION_HXX_
-+#include <connectivity/dbexception.hxx>
-+#endif
-+
-+namespace connectivity
-+{
-+ namespace kab
-+ {
-+// -----------------------------------------------------------------------------
-+class KabCondition
-+{
-+ public:
-+ virtual ~KabCondition();
-+ virtual sal_Bool isAlwaysTrue() const = 0;
-+ virtual sal_Bool isAlwaysFalse() const = 0;
-+ virtual sal_Bool eval(::KABC::Addressee &addressee) const = 0;
-+};
-+// -----------------------------------------------------------------------------
-+class KabConditionConstant : public KabCondition
-+{
-+ protected:
-+ sal_Bool m_bValue;
-+
-+ public:
-+ KabConditionConstant(const sal_Bool value);
-+ virtual sal_Bool isAlwaysTrue() const;
-+ virtual sal_Bool isAlwaysFalse() const;
-+ virtual sal_Bool eval(::KABC::Addressee &addressee) const;
-+};
-+// -----------------------------------------------------------------------------
-+class KabConditionColumn : public KabCondition
-+{
-+ protected:
-+ sal_Int32 m_nFieldNumber;
-+
-+ public:
-+ KabConditionColumn(
-+ const ::rtl::OUString &columnName) throw(::com::sun::star::sdbc::SQLException);
-+ virtual sal_Bool isAlwaysTrue() const;
-+ virtual sal_Bool isAlwaysFalse() const;
-+};
-+// -----------------------------------------------------------------------------
-+class KabConditionNull : public KabConditionColumn
-+{
-+ public:
-+ KabConditionNull(
-+ const ::rtl::OUString &columnName) throw(::com::sun::star::sdbc::SQLException);
-+ virtual sal_Bool eval(::KABC::Addressee &addressee) const;
-+};
-+// -----------------------------------------------------------------------------
-+class KabConditionNotNull : public KabConditionColumn
-+{
-+ public:
-+ KabConditionNotNull(
-+ const ::rtl::OUString &columnName) throw(::com::sun::star::sdbc::SQLException);
-+ virtual sal_Bool eval(::KABC::Addressee &addressee) const;
-+};
-+// -----------------------------------------------------------------------------
-+class KabConditionCompare : public KabConditionColumn
-+{
-+ protected:
-+ const ::rtl::OUString m_sMatchString;
-+
-+ public:
-+ KabConditionCompare(
-+ const ::rtl::OUString &columnName,
-+ const ::rtl::OUString &matchString) throw(::com::sun::star::sdbc::SQLException);
-+};
-+// -----------------------------------------------------------------------------
-+class KabConditionEqual : public KabConditionCompare
-+{
-+ public:
-+ KabConditionEqual(
-+ const ::rtl::OUString &columnName,
-+ const ::rtl::OUString &matchString) throw(::com::sun::star::sdbc::SQLException);
-+ virtual sal_Bool eval(::KABC::Addressee &addressee) const;
-+};
-+// -----------------------------------------------------------------------------
-+class KabConditionDifferent : public KabConditionCompare
-+{
-+ public:
-+ KabConditionDifferent(
-+ const ::rtl::OUString &columnName,
-+ const ::rtl::OUString &matchString) throw(::com::sun::star::sdbc::SQLException);
-+ virtual sal_Bool eval(::KABC::Addressee &addressee) const;
-+};
-+// -----------------------------------------------------------------------------
-+class KabConditionSimilar : public KabConditionCompare
-+{
-+ public:
-+ KabConditionSimilar(
-+ const ::rtl::OUString &columnName,
-+ const ::rtl::OUString &matchString) throw(::com::sun::star::sdbc::SQLException);
-+ virtual sal_Bool eval(::KABC::Addressee &addressee) const;
-+};
-+// -----------------------------------------------------------------------------
-+class KabConditionBoolean : public KabCondition
-+{
-+ protected:
-+ KabCondition *m_pLeft, *m_pRight;
-+
-+ public:
-+ KabConditionBoolean(KabCondition *left, KabCondition *right);
-+ virtual ~KabConditionBoolean();
-+};
-+// -----------------------------------------------------------------------------
-+class KabConditionOr : public KabConditionBoolean
-+{
-+ public:
-+ KabConditionOr(KabCondition *left, KabCondition *right);
-+ virtual sal_Bool isAlwaysTrue() const;
-+ virtual sal_Bool isAlwaysFalse() const;
-+ virtual sal_Bool eval(::KABC::Addressee &addressee) const;
-+};
-+// -----------------------------------------------------------------------------
-+class KabConditionAnd : public KabConditionBoolean
-+{
-+ public:
-+ KabConditionAnd(KabCondition *left, KabCondition *right);
-+ virtual sal_Bool isAlwaysTrue() const;
-+ virtual sal_Bool isAlwaysFalse() const;
-+ virtual sal_Bool eval(::KABC::Addressee &addressee) const;
-+};
-+// -----------------------------------------------------------------------------
-+ }
-+}
-+
-+#endif // _CONNECTIVITY_KAB_CONDITION_HXX_
-Index: connectivity/source/drivers/kab/KConnection.cxx
-===================================================================
-RCS file: connectivity/source/drivers/kab/KConnection.cxx
-diff -N connectivity/source/drivers/kab/KConnection.cxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/KConnection.cxx 2 Sep 2005 13:50:49 -0000 1.1.2.4
-@@ -0,0 +1,358 @@
-+/*************************************************************************
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., July, 2005
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2005 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include "KConnection.hxx"
-+#ifndef _CONNECTIVITY_KAB_DATABASEMETADATA_HXX_
-+#include "KDatabaseMetaData.hxx"
-+#endif
-+#ifndef _CONNECTIVITY_KAB_STATEMENT_HXX_
-+#include "KStatement.hxx"
-+#endif
-+#ifndef _CONNECTIVITY_KAB_PREPAREDSTATEMENT_HXX_
-+#include "KPreparedStatement.hxx"
-+#endif
-+#ifndef _CONNECTIVITY_KAB_DRIVER_HXX_
-+#include "KDriver.hxx"
-+#endif
-+#ifndef _CONNECTIVITY_KAB_CATALOG_HXX_
-+#include "KCatalog.hxx"
-+#endif
-+
-+#ifndef _COM_SUN_STAR_SDBC_COLUMNVALUE_HPP_
-+#include <com/sun/star/sdbc/ColumnValue.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_SDBC_TRANSACTIONISOLATION_HPP_
-+#include <com/sun/star/sdbc/TransactionIsolation.hpp>
-+#endif
-+
-+using namespace connectivity::kab;
-+using namespace com::sun::star::uno;
-+using namespace com::sun::star::lang;
-+using namespace com::sun::star::beans;
-+using namespace com::sun::star::sdbc;
-+using namespace com::sun::star::sdbcx;
-+
-+IMPLEMENT_SERVICE_INFO(KabConnection, "com.sun.star.sdbc.drivers.KabConnection", "com.sun.star.sdbc.Connection")
-+//-----------------------------------------------------------------------------
-+KabConnection::KabConnection(KabDriver* _pDriver)
-+ : OSubComponent<KabConnection, KabConnection_BASE>((::cppu::OWeakObject*)_pDriver, this),
-+ OMetaConnection_BASE(m_aMutex),
-+ m_pAddressBook(NULL),
-+ m_pDriver(_pDriver),
-+ m_xMetaData(NULL)
-+{
-+ m_pDriver->acquire();
-+}
-+//-----------------------------------------------------------------------------
-+KabConnection::~KabConnection()
-+{
-+ if (!isClosed())
-+ close();
-+
-+ m_pDriver->release();
-+ m_pDriver = NULL;
-+}
-+//-----------------------------------------------------------------------------
-+void SAL_CALL KabConnection::release() throw()
-+{
-+ relase_ChildImpl();
-+}
-+// -----------------------------------------------------------------------------
-+void KabConnection::construct(const ::rtl::OUString& url, const Sequence< PropertyValue >& info) throw(SQLException)
-+{
-+ osl_incrementInterlockedCount( &m_refCount );
-+
-+ // create a KDE address book object
-+ m_pAddressBook = KABC::StdAddressBook::self();
-+ m_pAddressBook->setAutomaticSave(false);
-+// perharps we should analyze the URL to know whether the addressbook is local, over LDAP, etc...
-+// perharps we should get some user and password information from "info" properties
-+
-+ osl_decrementInterlockedCount( &m_refCount );
-+}
-+// XServiceInfo
-+// --------------------------------------------------------------------------------
-+Reference< XStatement > SAL_CALL KabConnection::createStatement( ) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabConnection_BASE::rBHelper.bDisposed);
-+
-+ // create a statement
-+ // the statement can only be executed once
-+ Reference< XStatement > xReturn = new KabStatement(this);
-+ m_aStatements.push_back(WeakReferenceHelper(xReturn));
-+ return xReturn;
-+}
-+// --------------------------------------------------------------------------------
-+Reference< XPreparedStatement > SAL_CALL KabConnection::prepareStatement( const ::rtl::OUString& _sSql ) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabConnection_BASE::rBHelper.bDisposed);
-+
-+ // create a statement
-+ // the statement can only be executed more than once
-+ Reference< XPreparedStatement > xReturn = new KabPreparedStatement(this, _sSql);
-+ m_aStatements.push_back(WeakReferenceHelper(xReturn));
-+ return xReturn;
-+}
-+// --------------------------------------------------------------------------------
-+Reference< XPreparedStatement > SAL_CALL KabConnection::prepareCall( const ::rtl::OUString& _sSql ) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabConnection_BASE::rBHelper.bDisposed);
-+
-+ // not implemented yet :-) a task to do
-+ return NULL;
-+}
-+// --------------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabConnection::nativeSQL( const ::rtl::OUString& _sSql ) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ // when you need to transform SQL92 to you driver specific you can do it here
-+
-+ return _sSql;
-+}
-+// --------------------------------------------------------------------------------
-+void SAL_CALL KabConnection::setAutoCommit( sal_Bool autoCommit ) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabConnection_BASE::rBHelper.bDisposed);
-+ // here you have to set your commit mode please have a look at the jdbc documentation to get a clear explanation
-+}
-+// --------------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabConnection::getAutoCommit( ) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabConnection_BASE::rBHelper.bDisposed);
-+ // you have to distinguish which if you are in autocommit mode or not
-+ // at normal case true should be fine here
-+
-+ return sal_True;
-+}
-+// --------------------------------------------------------------------------------
-+void SAL_CALL KabConnection::commit( ) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabConnection_BASE::rBHelper.bDisposed);
-+
-+ // when you database does support transactions you should commit here
-+}
-+// --------------------------------------------------------------------------------
-+void SAL_CALL KabConnection::rollback( ) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabConnection_BASE::rBHelper.bDisposed);
-+
-+ // same as commit but for the other case
-+}
-+// --------------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabConnection::isClosed( ) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ // just simple -> we are close when we are disposed taht means someone called dispose(); (XComponent)
-+ return KabConnection_BASE::rBHelper.bDisposed;
-+}
-+// --------------------------------------------------------------------------------
-+Reference< XDatabaseMetaData > SAL_CALL KabConnection::getMetaData( ) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabConnection_BASE::rBHelper.bDisposed);
-+
-+ // here we have to create the class with biggest interface
-+ // The answer is 42 :-)
-+ Reference< XDatabaseMetaData > xMetaData = m_xMetaData;
-+ if (!xMetaData.is())
-+ {
-+ xMetaData = new KabDatabaseMetaData(this); // need the connection because it can return it
-+ m_xMetaData = xMetaData;
-+ }
-+
-+ return xMetaData;
-+}
-+// --------------------------------------------------------------------------------
-+void SAL_CALL KabConnection::setReadOnly( sal_Bool readOnly ) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabConnection_BASE::rBHelper.bDisposed);
-+
-+ // set you connection to readonly
-+}
-+// --------------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabConnection::isReadOnly( ) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabConnection_BASE::rBHelper.bDisposed);
-+
-+ // return if your connection to readonly
-+ return sal_False;
-+}
-+// --------------------------------------------------------------------------------
-+void SAL_CALL KabConnection::setCatalog( const ::rtl::OUString& catalog ) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabConnection_BASE::rBHelper.bDisposed);
-+
-+ // if your database doesn't work with catalogs you go to next method otherwise you kjnow what to do
-+}
-+// --------------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabConnection::getCatalog( ) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabConnection_BASE::rBHelper.bDisposed);
-+
-+
-+ // return your current catalog
-+ return ::rtl::OUString();
-+}
-+// --------------------------------------------------------------------------------
-+void SAL_CALL KabConnection::setTransactionIsolation( sal_Int32 level ) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabConnection_BASE::rBHelper.bDisposed);
-+
-+ // set your isolation level
-+ // please have a look at @see com.sun.star.sdbc.TransactionIsolation
-+}
-+// --------------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabConnection::getTransactionIsolation( ) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabConnection_BASE::rBHelper.bDisposed);
-+
-+
-+ // please have a look at @see com.sun.star.sdbc.TransactionIsolation
-+ return TransactionIsolation::NONE;
-+}
-+// --------------------------------------------------------------------------------
-+Reference< ::com::sun::star::container::XNameAccess > SAL_CALL KabConnection::getTypeMap( ) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabConnection_BASE::rBHelper.bDisposed);
-+
-+ // if your driver has special database types you can return it here
-+
-+ return NULL;
-+}
-+// --------------------------------------------------------------------------------
-+void SAL_CALL KabConnection::setTypeMap( const Reference< ::com::sun::star::container::XNameAccess >& typeMap ) throw(SQLException, RuntimeException)
-+{
-+ // the other way around
-+}
-+// --------------------------------------------------------------------------------
-+// XCloseable
-+void SAL_CALL KabConnection::close( ) throw(SQLException, RuntimeException)
-+{
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabConnection_BASE::rBHelper.bDisposed);
-+ }
-+ dispose();
-+}
-+// --------------------------------------------------------------------------------
-+// XWarningsSupplier
-+Any SAL_CALL KabConnection::getWarnings( ) throw(SQLException, RuntimeException)
-+{
-+ // when you collected some warnings -> return it
-+ return Any();
-+}
-+// --------------------------------------------------------------------------------
-+void SAL_CALL KabConnection::clearWarnings( ) throw(SQLException, RuntimeException)
-+{
-+ // you should clear your collected warnings here
-+}
-+//------------------------------------------------------------------------------
-+void KabConnection::disposing()
-+{
-+ // we noticed that we should be destroied in near future so we have to dispose our statements
-+ ::osl::MutexGuard aGuard(m_aMutex);
-+
-+ for (OWeakRefArray::iterator i = m_aStatements.begin(); m_aStatements.end() != i; ++i)
-+ {
-+ Reference< XComponent > xComp(i->get(), UNO_QUERY);
-+ if (xComp.is())
-+ xComp->dispose();
-+ }
-+ m_aStatements.clear();
-+
-+ if (m_pAddressBook != NULL)
-+ {
-+ m_pAddressBook->close();
-+ m_pAddressBook = NULL;
-+ }
-+
-+ m_xMetaData = ::com::sun::star::uno::WeakReference< ::com::sun::star::sdbc::XDatabaseMetaData>();
-+
-+ dispose_ChildImpl();
-+ KabConnection_BASE::disposing();
-+}
-+// -----------------------------------------------------------------------------
-+Reference< XTablesSupplier > SAL_CALL KabConnection::createCatalog()
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ Reference< XTablesSupplier > xTab = m_xCatalog;
-+ if (!m_xCatalog.is())
-+ {
-+ KabCatalog *pCat = new KabCatalog(this);
-+ xTab = pCat;
-+ m_xCatalog = xTab;
-+ }
-+ return xTab;
-+}
-Index: connectivity/source/drivers/kab/KConnection.hxx
-===================================================================
-RCS file: connectivity/source/drivers/kab/KConnection.hxx
-diff -N connectivity/source/drivers/kab/KConnection.hxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/KConnection.hxx 2 Sep 2005 15:57:12 -0000 1.1.2.4
-@@ -0,0 +1,187 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., July, 2005
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2005 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CONNECTIVITY_KAB_CONNECTION_HXX_
-+#define _CONNECTIVITY_KAB_CONNECTION_HXX_
-+
-+#include <map>
-+#include <kabc/stdaddressbook.h>
-+
-+#ifndef _CONNECTIVITY_OSUBCOMPONENT_HXX_
-+#include "OSubComponent.hxx"
-+#endif
-+#ifndef _CONNECTIVITY_COMMONTOOLS_HXX_
-+#include "connectivity/CommonTools.hxx"
-+#endif
-+#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
-+#include <com/sun/star/lang/XServiceInfo.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_SDBC_SQLWARNING_HPP_
-+#include <com/sun/star/sdbc/SQLWarning.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_SDBC_XWARNINGSSUPPLIER_HPP_
-+#include <com/sun/star/sdbc/XWarningsSupplier.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_SDBC_XCONNECTION_HPP_
-+#include <com/sun/star/sdbc/XConnection.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_SDBCX_XTABLESSUPPLIER_HPP_
-+#include <com/sun/star/sdbcx/XTablesSupplier.hpp>
-+#endif
-+#ifndef _COMPHELPER_BROADCASTHELPER_HXX_
-+#include <comphelper/broadcasthelper.hxx>
-+#endif
-+#ifndef _CPPUHELPER_COMPBASE3_HXX_
-+#include <cppuhelper/compbase3.hxx>
-+#endif
-+
-+namespace connectivity
-+{
-+ namespace kab
-+ {
-+
-+ typedef ::cppu::WeakComponentImplHelper3< ::com::sun::star::sdbc::XConnection,
-+ ::com::sun::star::sdbc::XWarningsSupplier,
-+ ::com::sun::star::lang::XServiceInfo
-+ > OMetaConnection_BASE;
-+
-+ class KabStatement_Base;
-+ class KabDriver;
-+ class KabDatabaseMetaData;
-+
-+ typedef OMetaConnection_BASE KabConnection_BASE; // implements basics and text encoding
-+ typedef std::vector< ::com::sun::star::uno::WeakReferenceHelper > OWeakRefArray;
-+
-+ class KabConnection : public comphelper::OBaseMutex,
-+ public KabConnection_BASE,
-+ public OSubComponent<KabConnection, KabConnection_BASE>
-+ {
-+ friend class OSubComponent<KabConnection, KabConnection_BASE>;
-+
-+ protected:
-+ //====================================================================
-+ // Data attributes
-+ //====================================================================
-+ ::com::sun::star::uno::WeakReference< ::com::sun::star::sdbc::XDatabaseMetaData > m_xMetaData;
-+
-+ OWeakRefArray m_aStatements; // vector containing a list of all the Statement objects
-+ // for this Connection
-+
-+ ::KABC::StdAddressBook* m_pAddressBook; // the address book
-+ KabDriver* m_pDriver; // pointer to the owning driver object
-+ ::com::sun::star::uno::Reference< ::com::sun::star::sdbcx::XTablesSupplier>
-+ m_xCatalog; // needed for the SQL interpreter
-+
-+ public:
-+ virtual void construct( const ::rtl::OUString& url,const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& info) throw(::com::sun::star::sdbc::SQLException);
-+
-+ KabConnection(KabDriver* _pDriver);
-+ virtual ~KabConnection();
-+
-+ void closeAllStatements () throw( ::com::sun::star::sdbc::SQLException);
-+
-+ // OComponentHelper
-+ virtual void SAL_CALL disposing(void);
-+
-+ // XInterface
-+ virtual void SAL_CALL release() throw();
-+
-+ // XServiceInfo
-+ DECLARE_SERVICE_INFO();
-+
-+ // XConnection
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XStatement > SAL_CALL createStatement( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XPreparedStatement > SAL_CALL prepareStatement( const ::rtl::OUString& sql ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XPreparedStatement > SAL_CALL prepareCall( const ::rtl::OUString& sql ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL nativeSQL( const ::rtl::OUString& sql ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setAutoCommit( sal_Bool autoCommit ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL getAutoCommit( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL commit( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL rollback( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isClosed( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData > SAL_CALL getMetaData( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setReadOnly( sal_Bool readOnly ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isReadOnly( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setCatalog( const ::rtl::OUString& catalog ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getCatalog( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setTransactionIsolation( sal_Int32 level ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getTransactionIsolation( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > SAL_CALL getTypeMap( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setTypeMap( const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& typeMap ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+ // XCloseable
-+ virtual void SAL_CALL close( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+ // XWarningsSupplier
-+ virtual ::com::sun::star::uno::Any SAL_CALL getWarnings( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL clearWarnings( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+ // needed for the SQL interpreter
-+ ::com::sun::star::uno::Reference< ::com::sun::star::sdbcx::XTablesSupplier > SAL_CALL createCatalog();
-+
-+ // accessors
-+ inline KabDriver* getDriver() const { return m_pDriver;}
-+ inline ::KABC::AddressBook* getAddressBook() const { return m_pAddressBook; }
-+ };
-+ }
-+}
-+
-+#endif // _CONNECTIVITY_KAB_CONNECTION_HXX_
-Index: connectivity/source/drivers/kab/KDatabaseMetaData.cxx
-===================================================================
-RCS file: connectivity/source/drivers/kab/KDatabaseMetaData.cxx
-diff -N connectivity/source/drivers/kab/KDatabaseMetaData.cxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/KDatabaseMetaData.cxx 2 Sep 2005 15:57:11 -0000 1.1.2.4
-@@ -0,0 +1,1078 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., July, 2005
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2005 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include "KDatabaseMetaData.hxx"
-+#include <kabc/field.h>
-+
-+#ifndef _CONNECTIVITY_FDATABASEMETADATARESULTSET_HXX_
-+#include "FDatabaseMetaDataResultSet.hxx"
-+#endif
-+#ifndef _CONNECTIVITY_OTYPEINFO_HXX_
-+#include "OTypeInfo.hxx"
-+#endif
-+
-+#ifndef _COM_SUN_STAR_SDBC_COLUMNVALUE_HPP_
-+#include <com/sun/star/sdbc/ColumnValue.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_SDBC_RESULTSETTYPE_HPP_
-+#include <com/sun/star/sdbc/ResultSetType.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_SDBC_TRANSACTIONISOLATION_HPP_
-+#include <com/sun/star/sdbc/TransactionIsolation.hpp>
-+#endif
-+
-+using namespace connectivity::kab;
-+using namespace com::sun::star::uno;
-+using namespace com::sun::star::lang;
-+using namespace com::sun::star::beans;
-+using namespace com::sun::star::sdbc;
-+
-+KabDatabaseMetaData::KabDatabaseMetaData(KabConnection* _pCon)
-+ : m_xConnection(_pCon),
-+ m_bUseCatalog(sal_True)
-+{
-+ OSL_ENSURE(m_pConnection,"KabDatabaseMetaData::KabDatabaseMetaData: No connection set!");
-+
-+ osl_incrementInterlockedCount( &m_refCount );
-+ m_bUseCatalog = !(usesLocalFiles() || usesLocalFilePerTable());
-+ osl_decrementInterlockedCount( &m_refCount );
-+}
-+// -------------------------------------------------------------------------
-+KabDatabaseMetaData::~KabDatabaseMetaData()
-+{
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabDatabaseMetaData::getCatalogSeparator( ) throw(SQLException, RuntimeException)
-+{
-+ ::rtl::OUString aVal;
-+ if (m_bUseCatalog)
-+ { // do some special here for you database
-+ }
-+
-+ return aVal;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxBinaryLiteralLength( ) throw(SQLException, RuntimeException)
-+{
-+ sal_Int32 nValue = 0; // 0 means no limit
-+ return nValue;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxRowSize( ) throw(SQLException, RuntimeException)
-+{
-+ sal_Int32 nValue = 0; // 0 means no limit
-+ return nValue;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxCatalogNameLength( ) throw(SQLException, RuntimeException)
-+{
-+ sal_Int32 nValue = 0; // 0 means no limit
-+ return nValue;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxCharLiteralLength( ) throw(SQLException, RuntimeException)
-+{
-+ sal_Int32 nValue = 0; // 0 means no limit
-+ return nValue;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxColumnNameLength( ) throw(SQLException, RuntimeException)
-+{
-+ sal_Int32 nValue = 0; // 0 means no limit
-+ return nValue;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxColumnsInIndex( ) throw(SQLException, RuntimeException)
-+{
-+ sal_Int32 nValue = 0; // 0 means no limit
-+ return nValue;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxCursorNameLength( ) throw(SQLException, RuntimeException)
-+{
-+ sal_Int32 nValue = 0; // 0 means no limit
-+ return nValue;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxConnections( ) throw(SQLException, RuntimeException)
-+{
-+ sal_Int32 nValue = 0; // 0 means no limit
-+ return nValue;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxColumnsInTable( ) throw(SQLException, RuntimeException)
-+{
-+ sal_Int32 nValue = 0; // 0 means no limit
-+ return nValue;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxStatementLength( ) throw(SQLException, RuntimeException)
-+{
-+ sal_Int32 nValue = 0; // 0 means no limit
-+ return nValue;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxTableNameLength( ) throw(SQLException, RuntimeException)
-+{
-+ sal_Int32 nValue = 0; // 0 means no limit
-+ return nValue;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxTablesInSelect( ) throw(SQLException, RuntimeException)
-+{
-+ // MaxTablesInSelect describes how many tables can participate in the FROM part of a given SELECT statement,
-+ // currently, the resultset/statement implementations can cope with one table only
-+ sal_Int32 nValue = 1;
-+ return nValue;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::doesMaxRowSizeIncludeBlobs( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::storesLowerCaseQuotedIdentifiers( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::storesLowerCaseIdentifiers( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::storesMixedCaseQuotedIdentifiers( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::storesMixedCaseIdentifiers( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::storesUpperCaseQuotedIdentifiers( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::storesUpperCaseIdentifiers( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsAlterTableWithAddColumn( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsAlterTableWithDropColumn( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxIndexLength( ) throw(SQLException, RuntimeException)
-+{
-+ sal_Int32 nValue = 0; // 0 means no limit
-+ return nValue;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsNonNullableColumns( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabDatabaseMetaData::getCatalogTerm( ) throw(SQLException, RuntimeException)
-+{
-+ ::rtl::OUString aVal;
-+ if (m_bUseCatalog)
-+ {
-+ }
-+ return aVal;
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabDatabaseMetaData::getIdentifierQuoteString( ) throw(SQLException, RuntimeException)
-+{
-+ // normally this is "
-+ ::rtl::OUString aVal = ::rtl::OUString::createFromAscii("\"");
-+ return aVal;
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabDatabaseMetaData::getExtraNameCharacters( ) throw(SQLException, RuntimeException)
-+{
-+ ::rtl::OUString aVal;
-+ return aVal;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsDifferentTableCorrelationNames( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::isCatalogAtStart( ) throw(SQLException, RuntimeException)
-+{
-+ sal_Bool bValue = sal_False;
-+ if (m_bUseCatalog)
-+ {
-+ }
-+ return bValue;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::dataDefinitionIgnoredInTransactions( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::dataDefinitionCausesTransactionCommit( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsDataManipulationTransactionsOnly( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsDataDefinitionAndDataManipulationTransactions( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsPositionedDelete( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsPositionedUpdate( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsOpenStatementsAcrossRollback( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsOpenStatementsAcrossCommit( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsOpenCursorsAcrossCommit( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsOpenCursorsAcrossRollback( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsTransactionIsolationLevel( sal_Int32 level ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsSchemasInDataManipulation( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsANSI92FullSQL( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsANSI92EntryLevelSQL( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_True; // should be supported at least
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsIntegrityEnhancementFacility( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsSchemasInIndexDefinitions( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsSchemasInTableDefinitions( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsCatalogsInTableDefinitions( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsCatalogsInIndexDefinitions( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsCatalogsInDataManipulation( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsOuterJoins( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxStatements( ) throw(SQLException, RuntimeException)
-+{
-+ sal_Int32 nValue = 0; // 0 means no limit
-+ return nValue;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxProcedureNameLength( ) throw(SQLException, RuntimeException)
-+{
-+ sal_Int32 nValue = 0; // 0 means no limit
-+ return nValue;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxSchemaNameLength( ) throw(SQLException, RuntimeException)
-+{
-+ sal_Int32 nValue = 0; // 0 means no limit
-+ return nValue;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsTransactions( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::allProceduresAreCallable( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsStoredProcedures( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsSelectForUpdate( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::allTablesAreSelectable( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::isReadOnly( ) throw(SQLException, RuntimeException)
-+{
-+ // for the moment, we have read-only addresses, but this might change in the future
-+ return sal_True;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::usesLocalFiles( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::usesLocalFilePerTable( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsTypeConversion( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::nullPlusNonNullIsNull( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsColumnAliasing( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsTableCorrelationNames( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsConvert( sal_Int32 fromType, sal_Int32 toType ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsExpressionsInOrderBy( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsGroupBy( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsGroupByBeyondSelect( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsGroupByUnrelated( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsMultipleTransactions( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsMultipleResultSets( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsLikeEscapeClause( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsOrderByUnrelated( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsUnion( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsUnionAll( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsMixedCaseIdentifiers( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsMixedCaseQuotedIdentifiers( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::nullsAreSortedAtEnd( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::nullsAreSortedAtStart( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::nullsAreSortedHigh( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::nullsAreSortedLow( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsSchemasInProcedureCalls( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsSchemasInPrivilegeDefinitions( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsCatalogsInProcedureCalls( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsCatalogsInPrivilegeDefinitions( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsCorrelatedSubqueries( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsSubqueriesInComparisons( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsSubqueriesInExists( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsSubqueriesInIns( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsSubqueriesInQuantifieds( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsANSI92IntermediateSQL( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabDatabaseMetaData::getURL( ) throw(SQLException, RuntimeException)
-+{
-+ // if someday we support more than the default address book,
-+ // this method should return the URL which was used to create it
-+ ::rtl::OUString aValue = ::rtl::OUString::createFromAscii("sdbc:address:kab:");
-+ return aValue;
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabDatabaseMetaData::getUserName( ) throw(SQLException, RuntimeException)
-+{
-+ ::rtl::OUString aValue;
-+ return aValue;
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabDatabaseMetaData::getDriverName( ) throw(SQLException, RuntimeException)
-+{
-+ ::rtl::OUString aValue = ::rtl::OUString::createFromAscii("kab");
-+ return aValue;
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabDatabaseMetaData::getDriverVersion() throw(SQLException, RuntimeException)
-+{
-+ // version 0.1
-+ ::rtl::OUString aValue = ::rtl::OUString::createFromAscii("0.1");
-+ return aValue;
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabDatabaseMetaData::getDatabaseProductVersion( ) throw(SQLException, RuntimeException)
-+{
-+ ::rtl::OUString aValue;
-+ return aValue;
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabDatabaseMetaData::getDatabaseProductName( ) throw(SQLException, RuntimeException)
-+{
-+ ::rtl::OUString aValue;
-+ return aValue;
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabDatabaseMetaData::getProcedureTerm( ) throw(SQLException, RuntimeException)
-+{
-+ ::rtl::OUString aValue;
-+ return aValue;
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabDatabaseMetaData::getSchemaTerm( ) throw(SQLException, RuntimeException)
-+{
-+ ::rtl::OUString aValue;
-+ return aValue;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabDatabaseMetaData::getDriverMajorVersion( ) throw(RuntimeException)
-+{
-+ return 1;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabDatabaseMetaData::getDefaultTransactionIsolation( ) throw(SQLException, RuntimeException)
-+{
-+ return TransactionIsolation::NONE;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabDatabaseMetaData::getDriverMinorVersion( ) throw(RuntimeException)
-+{
-+ return 0;
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabDatabaseMetaData::getSQLKeywords( ) throw(SQLException, RuntimeException)
-+{
-+ ::rtl::OUString aValue;
-+ return aValue;
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabDatabaseMetaData::getSearchStringEscape( ) throw(SQLException, RuntimeException)
-+{
-+ ::rtl::OUString aValue;
-+ return aValue;
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabDatabaseMetaData::getStringFunctions( ) throw(SQLException, RuntimeException)
-+{
-+ return ::rtl::OUString();
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabDatabaseMetaData::getTimeDateFunctions( ) throw(SQLException, RuntimeException)
-+{
-+ return ::rtl::OUString();
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabDatabaseMetaData::getSystemFunctions( ) throw(SQLException, RuntimeException)
-+{
-+ return ::rtl::OUString();
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabDatabaseMetaData::getNumericFunctions( ) throw(SQLException, RuntimeException)
-+{
-+ return ::rtl::OUString();
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsExtendedSQLGrammar( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsCoreSQLGrammar( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsMinimumSQLGrammar( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsFullOuterJoins( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsLimitedOuterJoins( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxColumnsInGroupBy( ) throw(SQLException, RuntimeException)
-+{
-+ sal_Int32 nValue = 0; // 0 means no limit
-+ return nValue;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxColumnsInOrderBy( ) throw(SQLException, RuntimeException)
-+{
-+ sal_Int32 nValue = 0; // 0 means no limit
-+ return nValue;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxColumnsInSelect( ) throw(SQLException, RuntimeException)
-+{
-+ sal_Int32 nValue = 0; // 0 means no limit
-+ return nValue;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabDatabaseMetaData::getMaxUserNameLength( ) throw(SQLException, RuntimeException)
-+{
-+ sal_Int32 nValue = 0; // 0 means no limit
-+ return nValue;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsResultSetType( sal_Int32 setType ) throw(SQLException, RuntimeException)
-+{
-+ switch (setType)
-+ {
-+ case ResultSetType::FORWARD_ONLY:
-+ case ResultSetType::SCROLL_INSENSITIVE:
-+ return sal_True;
-+ }
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsResultSetConcurrency( sal_Int32 setType, sal_Int32 concurrency ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::ownUpdatesAreVisible( sal_Int32 setType ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::ownDeletesAreVisible( sal_Int32 setType ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::ownInsertsAreVisible( sal_Int32 setType ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::othersUpdatesAreVisible( sal_Int32 setType ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::othersDeletesAreVisible( sal_Int32 setType ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::othersInsertsAreVisible( sal_Int32 setType ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::updatesAreDetected( sal_Int32 setType ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::deletesAreDetected( sal_Int32 setType ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::insertsAreDetected( sal_Int32 setType ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDatabaseMetaData::supportsBatchUpdates( ) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+Reference< XConnection > SAL_CALL KabDatabaseMetaData::getConnection( ) throw(SQLException, RuntimeException)
-+{
-+ return (Reference< XConnection >) m_xConnection.get();
-+}
-+// -------------------------------------------------------------------------
-+Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getTableTypes( ) throw(SQLException, RuntimeException)
-+{
-+ ::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet();
-+ Reference< XResultSet > xRef = pResult;
-+
-+ pResult->setTableTypes();
-+
-+ static ODatabaseMetaDataResultSet::ORows aRows;
-+ static const ::rtl::OUString aTable(::rtl::OUString::createFromAscii("TABLE"));
-+
-+ if (aRows.empty())
-+ {
-+ ODatabaseMetaDataResultSet::ORow aRow(2);
-+ aRow[0] = ODatabaseMetaDataResultSet::getEmptyValue();
-+ aRow[1] = new ORowSetValueDecorator(aTable);
-+ aRows.push_back(aRow);
-+ }
-+ pResult->setRows(aRows);
-+ return xRef;
-+}
-+// -------------------------------------------------------------------------
-+Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getTypeInfo( ) throw(SQLException, RuntimeException)
-+{
-+ ODatabaseMetaDataResultSet* pResult = new ODatabaseMetaDataResultSet();
-+ Reference< XResultSet > xRef = pResult;
-+
-+ pResult->setTypeInfoMap();
-+
-+ static ODatabaseMetaDataResultSet::ORows aRows;
-+ if (aRows.empty())
-+ {
-+ ODatabaseMetaDataResultSet::ORow aRow(19);
-+
-+ aRow[0] = ODatabaseMetaDataResultSet::getEmptyValue();
-+ aRow[1] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("CHAR"));
-+ aRow[2] = new ORowSetValueDecorator(DataType::CHAR);
-+ aRow[3] = new ORowSetValueDecorator((sal_Int32) 254);
-+ aRow[4] = ODatabaseMetaDataResultSet::getQuoteValue();
-+ aRow[5] = ODatabaseMetaDataResultSet::getQuoteValue();
-+ aRow[6] = ODatabaseMetaDataResultSet::getEmptyValue();
-+ aRow[7] = new ORowSetValueDecorator((sal_Int32) ColumnValue::NULLABLE);
-+ aRow[8] = ODatabaseMetaDataResultSet::get1Value();
-+ aRow[9] = new ORowSetValueDecorator((sal_Int32) ColumnSearch::CHAR);
-+ aRow[10] = ODatabaseMetaDataResultSet::get1Value();
-+ aRow[11] = ODatabaseMetaDataResultSet::get0Value();
-+ aRow[12] = ODatabaseMetaDataResultSet::get0Value();
-+ aRow[13] = ODatabaseMetaDataResultSet::getEmptyValue();
-+ aRow[14] = ODatabaseMetaDataResultSet::get0Value();
-+ aRow[15] = ODatabaseMetaDataResultSet::get0Value();
-+ aRow[16] = ODatabaseMetaDataResultSet::getEmptyValue();
-+ aRow[17] = ODatabaseMetaDataResultSet::getEmptyValue();
-+ aRow[18] = new ORowSetValueDecorator((sal_Int32) 10);
-+ aRows.push_back(aRow);
-+// Much more types might appear in KDE address books
-+// To be completed
-+ }
-+ pResult->setRows(aRows);
-+ return xRef;
-+}
-+// -------------------------------------------------------------------------
-+Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getCatalogs( ) throw(SQLException, RuntimeException)
-+{
-+ return NULL;
-+}
-+// -----------------------------------------------------------------------------
-+Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getSchemas( ) throw(SQLException, RuntimeException)
-+{
-+ return NULL;
-+}
-+// -------------------------------------------------------------------------
-+Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getColumnPrivileges(
-+ const Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table,
-+ const ::rtl::OUString& columnNamePattern ) throw(SQLException, RuntimeException)
-+{
-+ return NULL;
-+}
-+// -------------------------------------------------------------------------
-+Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getColumns(
-+ const Any& catalog,
-+ const ::rtl::OUString& schemaPattern,
-+ const ::rtl::OUString& tableNamePattern,
-+ const ::rtl::OUString& columnNamePattern) throw(SQLException, RuntimeException)
-+{
-+ ::connectivity::ODatabaseMetaDataResultSet* pResult = new ::connectivity::ODatabaseMetaDataResultSet();
-+ Reference< XResultSet > xRef = pResult;
-+
-+ pResult->setColumnsMap();
-+
-+ ODatabaseMetaDataResultSet::ORows aRows;
-+ static const ::rtl::OUString aAddresses(::rtl::OUString::createFromAscii("addresses"));
-+
-+ if (match(tableNamePattern, aAddresses, '\0'))
-+ {
-+ ODatabaseMetaDataResultSet::ORow aRow(19);
-+
-+ aRow[0] = ODatabaseMetaDataResultSet::getEmptyValue();
-+ aRow[1] = ODatabaseMetaDataResultSet::getEmptyValue();
-+ aRow[2] = ODatabaseMetaDataResultSet::getEmptyValue();
-+ aRow[3] = new ORowSetValueDecorator(aAddresses);
-+ aRow[5] = new ORowSetValueDecorator(DataType::CHAR);
-+ aRow[6] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("CHAR"));
-+ aRow[7] = new ORowSetValueDecorator((sal_Int32) 256);
-+// Might be VARCHAR and not CHAR[256]...
-+ aRow[8] = ODatabaseMetaDataResultSet::getEmptyValue();
-+ aRow[9] = ODatabaseMetaDataResultSet::get0Value();
-+ aRow[10] = new ORowSetValueDecorator((sal_Int32) 10);
-+ aRow[11] = ODatabaseMetaDataResultSet::get1Value();
-+ aRow[12] = ODatabaseMetaDataResultSet::getEmptyValue();
-+ aRow[13] = ODatabaseMetaDataResultSet::getEmptyValue();
-+ aRow[14] = ODatabaseMetaDataResultSet::getEmptyValue();
-+ aRow[15] = ODatabaseMetaDataResultSet::getEmptyValue();
-+ aRow[16] = new ORowSetValueDecorator((sal_Int32) 254);
-+ aRow[18] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("YES"));
-+
-+ ::KABC::Field::List aFields = ::KABC::Field::allFields();
-+ ::KABC::Field::List::iterator aField;
-+ sal_Int32 nPosition;
-+
-+ for ( aField = aFields.begin(), nPosition = 1;
-+ aField != aFields.end();
-+ ++aField, ++nPosition)
-+ {
-+ QString aQtName((*aField)->label());
-+ ::rtl::OUString aName((const sal_Unicode *) aQtName.ucs2());
-+ if (match(columnNamePattern, aName, '\0'))
-+ {
-+ aRow[4] = new ORowSetValueDecorator(aName);
-+ aRow[17] = new ORowSetValueDecorator(nPosition);
-+ aRows.push_back(aRow);
-+ }
-+ }
-+ }
-+ pResult->setRows(aRows);
-+ return xRef;
-+}
-+// -------------------------------------------------------------------------
-+Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getTables(
-+ const Any& catalog,
-+ const ::rtl::OUString& schemaPattern,
-+ const ::rtl::OUString& tableNamePattern,
-+ const Sequence< ::rtl::OUString >& types) throw(SQLException, RuntimeException)
-+{
-+ ODatabaseMetaDataResultSet* pResult = new ODatabaseMetaDataResultSet();
-+ Reference< XResultSet > xRef = pResult;
-+
-+ pResult->setTablesMap();
-+
-+ // check whether we have tables in the requested types
-+ // for the moment, we answer only the "TABLE" table type
-+ // when no types are given at all, we return all the tables
-+ static const ::rtl::OUString aTable(::rtl::OUString::createFromAscii("TABLE"));
-+ sal_Bool bTableFound = sal_False;
-+ const ::rtl::OUString* p = types.getConstArray(),
-+ * pEnd = p + types.getLength();
-+
-+ if (p == pEnd)
-+ {
-+ bTableFound = sal_True;
-+ }
-+ else while (p < pEnd)
-+ {
-+ if (match(*p, aTable, '\0'))
-+ {
-+ bTableFound = sal_True;
-+ break;
-+ }
-+ p++;
-+ }
-+ if (!bTableFound)
-+ return xRef;
-+
-+ static ODatabaseMetaDataResultSet::ORows aRows;
-+ static const ::rtl::OUString aAddresses(::rtl::OUString::createFromAscii("addresses"));
-+
-+ if (aRows.empty())
-+ {
-+ ODatabaseMetaDataResultSet::ORow aRow(6);
-+
-+ aRow[0] = ODatabaseMetaDataResultSet::getEmptyValue();
-+ aRow[1] = ODatabaseMetaDataResultSet::getEmptyValue();
-+ aRow[2] = ODatabaseMetaDataResultSet::getEmptyValue();
-+ aRow[3] = new ORowSetValueDecorator(aAddresses);
-+ aRow[4] = new ORowSetValueDecorator(aTable);
-+ aRow[5] = ODatabaseMetaDataResultSet::getEmptyValue();
-+ aRows.push_back(aRow);
-+ }
-+ pResult->setRows(aRows);
-+ return xRef;
-+}
-+// -------------------------------------------------------------------------
-+Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getProcedureColumns(
-+ const Any& catalog, const ::rtl::OUString& schemaPattern,
-+ const ::rtl::OUString& procedureNamePattern, const ::rtl::OUString& columnNamePattern ) throw(SQLException, RuntimeException)
-+{
-+ return NULL;
-+}
-+// -------------------------------------------------------------------------
-+Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getProcedures(
-+ const Any& catalog, const ::rtl::OUString& schemaPattern,
-+ const ::rtl::OUString& procedureNamePattern ) throw(SQLException, RuntimeException)
-+{
-+ return NULL;
-+}
-+// -------------------------------------------------------------------------
-+Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getVersionColumns(
-+ const Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ) throw(SQLException, RuntimeException)
-+{
-+ return NULL;
-+}
-+// -------------------------------------------------------------------------
-+Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getExportedKeys(
-+ const Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ) throw(SQLException, RuntimeException)
-+{
-+ return NULL;
-+}
-+// -------------------------------------------------------------------------
-+Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getImportedKeys(
-+ const Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ) throw(SQLException, RuntimeException)
-+{
-+ return NULL;
-+}
-+// -------------------------------------------------------------------------
-+Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getPrimaryKeys(
-+ const Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ) throw(SQLException, RuntimeException)
-+{
-+ return NULL;
-+}
-+// -------------------------------------------------------------------------
-+Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getIndexInfo(
-+ const Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table,
-+ sal_Bool unique, sal_Bool approximate ) throw(SQLException, RuntimeException)
-+{
-+ return NULL;
-+}
-+// -------------------------------------------------------------------------
-+Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getBestRowIdentifier(
-+ const Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table, sal_Int32 scope,
-+ sal_Bool nullable ) throw(SQLException, RuntimeException)
-+{
-+ return NULL;
-+}
-+// -------------------------------------------------------------------------
-+Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getTablePrivileges(
-+ const Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& tableNamePattern ) throw(SQLException, RuntimeException)
-+{
-+ return NULL;
-+}
-+// -------------------------------------------------------------------------
-+Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getCrossReference(
-+ const Any& primaryCatalog, const ::rtl::OUString& primarySchema,
-+ const ::rtl::OUString& primaryTable, const Any& foreignCatalog,
-+ const ::rtl::OUString& foreignSchema, const ::rtl::OUString& foreignTable ) throw(SQLException, RuntimeException)
-+{
-+ return NULL;
-+}
-+// -------------------------------------------------------------------------
-+Reference< XResultSet > SAL_CALL KabDatabaseMetaData::getUDTs( const Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& typeNamePattern, const Sequence< sal_Int32 >& types ) throw(SQLException, RuntimeException)
-+{
-+ OSL_ENSURE(0,"Not implemented yet!");
-+ throw SQLException();
-+ return NULL;
-+}
-+// -----------------------------------------------------------------------------
-Index: connectivity/source/drivers/kab/KDatabaseMetaData.hxx
-===================================================================
-RCS file: connectivity/source/drivers/kab/KDatabaseMetaData.hxx
-diff -N connectivity/source/drivers/kab/KDatabaseMetaData.hxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/KDatabaseMetaData.hxx 2 Sep 2005 15:57:11 -0000 1.1.2.2
-@@ -0,0 +1,253 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., July, 2005
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2005 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CONNECTIVITY_KAB_DATABASEMETADATA_HXX_
-+#define _CONNECTIVITY_KAB_DATABASEMETADATA_HXX_
-+
-+#ifndef _CONNECTIVITY_KAB_CONNECTION_HXX_
-+#include "KConnection.hxx"
-+#endif
-+
-+#ifndef _COM_SUN_STAR_SDBC_XDATABASEMETADATA_HPP_
-+#include <com/sun/star/sdbc/XDatabaseMetaData.hpp>
-+#endif
-+#ifndef _CPPUHELPER_IMPLBASE1_HXX_
-+#include <cppuhelper/implbase1.hxx>
-+#endif
-+
-+namespace connectivity
-+{
-+ namespace kab
-+ {
-+ //**************************************************************
-+ //************ Class: KabDatabaseMetaData
-+ //**************************************************************
-+
-+ typedef ::cppu::WeakImplHelper1< ::com::sun::star::sdbc::XDatabaseMetaData> KabDatabaseMetaData_BASE;
-+
-+ class KabDatabaseMetaData : public KabDatabaseMetaData_BASE
-+ {
-+ ::com::sun::star::uno::Reference< KabConnection > m_xConnection;
-+ sal_Bool m_bUseCatalog;
-+
-+ public:
-+
-+ inline KabConnection* getOwnConnection() const { return m_xConnection.get(); }
-+
-+ KabDatabaseMetaData(KabConnection* _pCon);
-+ virtual ~KabDatabaseMetaData();
-+
-+ // this interface is really BIG
-+ // XDatabaseMetaData
-+ virtual sal_Bool SAL_CALL allProceduresAreCallable( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL allTablesAreSelectable( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getURL( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getUserName( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isReadOnly( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL nullsAreSortedHigh( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL nullsAreSortedLow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL nullsAreSortedAtStart( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL nullsAreSortedAtEnd( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getDatabaseProductName( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getDatabaseProductVersion( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getDriverName( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getDriverVersion( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getDriverMajorVersion( ) throw(::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getDriverMinorVersion( ) throw(::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL usesLocalFiles( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL usesLocalFilePerTable( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsMixedCaseIdentifiers( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL storesUpperCaseIdentifiers( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL storesLowerCaseIdentifiers( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL storesMixedCaseIdentifiers( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsMixedCaseQuotedIdentifiers( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL storesUpperCaseQuotedIdentifiers( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL storesLowerCaseQuotedIdentifiers( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL storesMixedCaseQuotedIdentifiers( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getIdentifierQuoteString( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getSQLKeywords( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getNumericFunctions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getStringFunctions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getSystemFunctions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getTimeDateFunctions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getSearchStringEscape( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getExtraNameCharacters( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsAlterTableWithAddColumn( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsAlterTableWithDropColumn( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsColumnAliasing( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL nullPlusNonNullIsNull( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsTypeConversion( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsConvert( sal_Int32 fromType, sal_Int32 toType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsTableCorrelationNames( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsDifferentTableCorrelationNames( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsExpressionsInOrderBy( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsOrderByUnrelated( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsGroupBy( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsGroupByUnrelated( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsGroupByBeyondSelect( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsLikeEscapeClause( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsMultipleResultSets( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsMultipleTransactions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsNonNullableColumns( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsMinimumSQLGrammar( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsCoreSQLGrammar( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsExtendedSQLGrammar( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsANSI92EntryLevelSQL( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsANSI92IntermediateSQL( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsANSI92FullSQL( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsIntegrityEnhancementFacility( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsOuterJoins( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsFullOuterJoins( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsLimitedOuterJoins( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getSchemaTerm( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getProcedureTerm( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getCatalogTerm( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isCatalogAtStart( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getCatalogSeparator( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsSchemasInDataManipulation( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsSchemasInProcedureCalls( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsSchemasInTableDefinitions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsSchemasInIndexDefinitions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsSchemasInPrivilegeDefinitions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsCatalogsInDataManipulation( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsCatalogsInProcedureCalls( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsCatalogsInTableDefinitions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsCatalogsInIndexDefinitions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsCatalogsInPrivilegeDefinitions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsPositionedDelete( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsPositionedUpdate( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsSelectForUpdate( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsStoredProcedures( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsSubqueriesInComparisons( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsSubqueriesInExists( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsSubqueriesInIns( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsSubqueriesInQuantifieds( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsCorrelatedSubqueries( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsUnion( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsUnionAll( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsOpenCursorsAcrossCommit( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsOpenCursorsAcrossRollback( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsOpenStatementsAcrossCommit( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsOpenStatementsAcrossRollback( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxBinaryLiteralLength( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxCharLiteralLength( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxColumnNameLength( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxColumnsInGroupBy( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxColumnsInIndex( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxColumnsInOrderBy( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxColumnsInSelect( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxColumnsInTable( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxConnections( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxCursorNameLength( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxIndexLength( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxSchemaNameLength( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxProcedureNameLength( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxCatalogNameLength( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxRowSize( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL doesMaxRowSizeIncludeBlobs( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxStatementLength( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxStatements( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxTableNameLength( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxTablesInSelect( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMaxUserNameLength( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getDefaultTransactionIsolation( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsTransactions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsTransactionIsolationLevel( sal_Int32 level ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsDataDefinitionAndDataManipulationTransactions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsDataManipulationTransactionsOnly( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL dataDefinitionCausesTransactionCommit( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL dataDefinitionIgnoredInTransactions( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getProcedures( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& procedureNamePattern ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getProcedureColumns( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& procedureNamePattern, const ::rtl::OUString& columnNamePattern ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getTables( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& tableNamePattern, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& types ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getSchemas( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getCatalogs( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getTableTypes( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getColumns( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& tableNamePattern, const ::rtl::OUString& columnNamePattern ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getColumnPrivileges( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table, const ::rtl::OUString& columnNamePattern ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getTablePrivileges( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& tableNamePattern ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getBestRowIdentifier( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table, sal_Int32 scope, sal_Bool nullable ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getVersionColumns( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getPrimaryKeys( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getImportedKeys( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getExportedKeys( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getCrossReference( const ::com::sun::star::uno::Any& primaryCatalog, const ::rtl::OUString& primarySchema, const ::rtl::OUString& primaryTable, const ::com::sun::star::uno::Any& foreignCatalog, const ::rtl::OUString& foreignSchema, const ::rtl::OUString& foreignTable ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getTypeInfo( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getIndexInfo( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schema, const ::rtl::OUString& table, sal_Bool unique, sal_Bool approximate ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsResultSetType( sal_Int32 setType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsResultSetConcurrency( sal_Int32 setType, sal_Int32 concurrency ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL ownUpdatesAreVisible( sal_Int32 setType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL ownDeletesAreVisible( sal_Int32 setType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL ownInsertsAreVisible( sal_Int32 setType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL othersUpdatesAreVisible( sal_Int32 setType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL othersDeletesAreVisible( sal_Int32 setType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL othersInsertsAreVisible( sal_Int32 setType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL updatesAreDetected( sal_Int32 setType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL deletesAreDetected( sal_Int32 setType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL insertsAreDetected( sal_Int32 setType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsBatchUpdates( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL getUDTs( const ::com::sun::star::uno::Any& catalog, const ::rtl::OUString& schemaPattern, const ::rtl::OUString& typeNamePattern, const ::com::sun::star::uno::Sequence< sal_Int32 >& types ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > SAL_CALL getConnection( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ };
-+ }
-+}
-+
-+#endif // _CONNECTIVITY_KAB_DATABASEMETADATA_HXX_
-Index: connectivity/source/drivers/kab/KDriver.cxx
-===================================================================
-RCS file: connectivity/source/drivers/kab/KDriver.cxx
-diff -N connectivity/source/drivers/kab/KDriver.cxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/KDriver.cxx 1 Sep 2005 20:06:23 -0000 1.1.2.2
-@@ -0,0 +1,230 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., July, 2005
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2005 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include "KDriver.hxx"
-+#ifndef _CONNECTIVITY_KAB_CONNECTION_HXX_
-+#include "KConnection.hxx"
-+#endif
-+
-+#include <kcmdlineargs.h>
-+#include <kglobal.h>
-+#include <klocale.h>
-+
-+#ifndef _OSL_PROCESS_H_
-+#include <osl/process.h>
-+#endif
-+
-+using namespace com::sun::star::uno;
-+using namespace com::sun::star::lang;
-+using namespace com::sun::star::beans;
-+using namespace com::sun::star::sdbc;
-+using namespace connectivity::kab;
-+
-+KabDriver::KabDriver(
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory)
-+ : KDriver_BASE(m_aMutex),
-+ m_xMSFactory(_rxFactory),
-+ m_pKApplication(NULL)
-+{
-+ // we create a KDE application only if it is not already done
-+ if (KApplication::kApplication() == NULL)
-+ {
-+ // version 0.1
-+ char *kabargs[1] = {"libkab1"};
-+ KCmdLineArgs::init(1, kabargs, "KAddressBook", *kabargs, "Address Book driver", "0.1");
-+
-+ m_pKApplication = new KApplication(false, false);
-+// It would be better to call this constructor with a "Display" argument
-+// Especially if OOo is run on diplay :1...
-+ }
-+
-+ // set language
-+ rtl_Locale *pProcessLocale;
-+ osl_getProcessLocale(&pProcessLocale);
-+ // sal_Unicode and QChar are (currently) both 16 bits characters
-+ QString aLanguage(
-+ (const QChar *) pProcessLocale->Language->buffer,
-+ (int) pProcessLocale->Language->length);
-+ KGlobal::locale()->setLanguage(aLanguage);
-+}
-+// --------------------------------------------------------------------------------
-+void KabDriver::disposing()
-+{
-+ ::osl::MutexGuard aGuard(m_aMutex);
-+
-+ // when driver will be destroied so all our connections have to be destroied as well
-+ for (OWeakRefArray::iterator i = m_xConnections.begin(); m_xConnections.end() != i; ++i)
-+ {
-+ Reference< XComponent > xComp(i->get(), UNO_QUERY);
-+ if (xComp.is())
-+ xComp->dispose();
-+ }
-+ m_xConnections.clear();
-+
-+ if (m_pKApplication != NULL)
-+ {
-+ delete m_pKApplication;
-+ m_pKApplication = NULL;
-+ }
-+
-+ KDriver_BASE::disposing();
-+}
-+// static ServiceInfo
-+//------------------------------------------------------------------------------
-+rtl::OUString KabDriver::getImplementationName_Static( ) throw(RuntimeException)
-+{
-+ return rtl::OUString::createFromAscii("com.sun.star.comp.sdbc.kab.Driver");
-+ // this name is referenced in the configuration and in the kab.xml
-+ // Please be careful when changing it.
-+}
-+//------------------------------------------------------------------------------
-+Sequence< ::rtl::OUString > KabDriver::getSupportedServiceNames_Static( ) throw (RuntimeException)
-+{
-+ // which service is supported
-+ // for more information @see com.sun.star.sdbc.Driver
-+ Sequence< ::rtl::OUString > aSNS( 1 );
-+ aSNS[0] = ::rtl::OUString::createFromAscii("com.sun.star.sdbc.Driver");
-+
-+ return aSNS;
-+}
-+//------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabDriver::getImplementationName( ) throw(RuntimeException)
-+{
-+ return getImplementationName_Static();
-+}
-+//------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDriver::supportsService( const ::rtl::OUString& _rServiceName ) throw(RuntimeException)
-+{
-+ Sequence< ::rtl::OUString > aSupported(getSupportedServiceNames());
-+ const ::rtl::OUString* pSupported = aSupported.getConstArray();
-+ const ::rtl::OUString* pEnd = pSupported + aSupported.getLength();
-+
-+ while (pSupported != pEnd && !pSupported->equals(_rServiceName))
-+ ++pSupported;
-+ return pSupported != pEnd;
-+}
-+//------------------------------------------------------------------
-+Sequence< ::rtl::OUString > SAL_CALL KabDriver::getSupportedServiceNames( ) throw(RuntimeException)
-+{
-+ return getSupportedServiceNames_Static();
-+}
-+// --------------------------------------------------------------------------------
-+Reference< XConnection > SAL_CALL KabDriver::connect( const ::rtl::OUString& url, const Sequence< PropertyValue >& info ) throw(SQLException, RuntimeException)
-+{
-+ // create a new connection with the given properties and append it to our vector
-+ KabConnection* pCon = new KabConnection(this);
-+ Reference< XConnection > xCon = pCon; // important here because otherwise the connection could be deleted inside (refcount goes -> 0)
-+ pCon->construct(url,info); // late constructor call which can throw exception and allows a correct dtor call when so
-+ m_xConnections.push_back(WeakReferenceHelper(*pCon));
-+
-+ return xCon;
-+}
-+// --------------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabDriver::acceptsURL( const ::rtl::OUString& url )
-+ throw(SQLException, RuntimeException)
-+{
-+ // here we have to look whether we support this URL format
-+ return (!url.compareTo(::rtl::OUString::createFromAscii("sdbc:address:kab:"), 16));
-+}
-+// --------------------------------------------------------------------------------
-+Sequence< DriverPropertyInfo > SAL_CALL KabDriver::getPropertyInfo( const ::rtl::OUString& url, const Sequence< PropertyValue >& info ) throw(SQLException, RuntimeException)
-+{
-+ // if you have something special to say, return it here :-)
-+ return Sequence< DriverPropertyInfo >();
-+}
-+// --------------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabDriver::getMajorVersion( ) throw(RuntimeException)
-+{
-+ // version 0.1
-+ return 0;
-+}
-+// --------------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabDriver::getMinorVersion( ) throw(RuntimeException)
-+{
-+ // version 0.1
-+ return 1;
-+}
-+// --------------------------------------------------------------------------------
-+
-+//.........................................................................
-+namespace connectivity
-+{
-+ namespace kab
-+ {
-+//.........................................................................
-+
-+::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL KabDriver_CreateInstance(
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory
-+ ) throw( ::com::sun::star::uno::Exception )
-+{
-+ return *(new KabDriver(_rxFactory));
-+}
-+
-+void checkDisposed(sal_Bool _bThrow) throw ( DisposedException )
-+{
-+ if (_bThrow)
-+ throw DisposedException();
-+}
-+
-+//.........................................................................
-+ }
-+}
-+//.........................................................................
-Index: connectivity/source/drivers/kab/KDriver.hxx
-===================================================================
-RCS file: connectivity/source/drivers/kab/KDriver.hxx
-diff -N connectivity/source/drivers/kab/KDriver.hxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/KDriver.hxx 29 Aug 2005 08:43:50 -0000 1.1.2.1
-@@ -0,0 +1,127 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., July, 2005
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2005 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CONNECTIVITY_KAB_DRIVER_HXX_
-+#define _CONNECTIVITY_KAB_DRIVER_HXX_
-+
-+#ifndef _CONNECTIVITY_KAB_CONNECTION_HXX_
-+#include "KConnection.hxx"
-+#endif
-+
-+#include <kapplication.h>
-+
-+#ifndef _COM_SUN_STAR_SDBC_XDRIVER_HPP_
-+#include <com/sun/star/sdbc/XDriver.hpp>
-+#endif
-+#ifndef _CPPUHELPER_COMPBASE2_HXX_
-+#include <cppuhelper/compbase2.hxx>
-+#endif
-+
-+namespace connectivity
-+{
-+ namespace kab
-+ {
-+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL KabDriver_CreateInstance(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory) throw( ::com::sun::star::uno::Exception );
-+
-+ typedef ::cppu::WeakComponentImplHelper2< ::com::sun::star::sdbc::XDriver,
-+ ::com::sun::star::lang::XServiceInfo > KDriver_BASE;
-+
-+ class KabDriver : public KDriver_BASE
-+ {
-+ protected:
-+ KApplication* m_pKApplication; // KDE application if we own it
-+ ::osl::Mutex m_aMutex; // mutex is need to control member access
-+ OWeakRefArray m_xConnections; // vector containing a list of all the
-+ // KabConnection objects for this Driver
-+ ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >
-+ m_xMSFactory; // the multi-service factory
-+
-+ public:
-+
-+ KabDriver(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory);
-+
-+ // OComponentHelper
-+ virtual void SAL_CALL disposing(void);
-+
-+ // XInterface
-+ static ::rtl::OUString getImplementationName_Static( ) throw(::com::sun::star::uno::RuntimeException);
-+ static ::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_Static( ) throw (::com::sun::star::uno::RuntimeException);
-+
-+ // XServiceInfo
-+ virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw(::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw(::com::sun::star::uno::RuntimeException);
-+
-+ // XDriver
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > SAL_CALL connect( const ::rtl::OUString& url, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& info ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL acceptsURL( const ::rtl::OUString& url ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::sdbc::DriverPropertyInfo > SAL_CALL getPropertyInfo( const ::rtl::OUString& url, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& info ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMajorVersion() throw(::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getMinorVersion() throw(::com::sun::star::uno::RuntimeException);
-+
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >&
-+ getMSFactory() const { return m_xMSFactory; }
-+ };
-+ }
-+
-+}
-+
-+#endif // _CONNECTIVITY_KAB_DRIVER_HXX_
-Index: connectivity/source/drivers/kab/KPreparedStatement.cxx
-===================================================================
-RCS file: connectivity/source/drivers/kab/KPreparedStatement.cxx
-diff -N connectivity/source/drivers/kab/KPreparedStatement.cxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/KPreparedStatement.cxx 2 Sep 2005 13:50:50 -0000 1.1.2.5
-@@ -0,0 +1,340 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., July, 2005
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2005 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include "KPreparedStatement.hxx"
-+
-+#ifndef _CONNECTIVITY_KAB_RESULTSETMETADATA_HXX_
-+#include "KResultSetMetaData.hxx"
-+#endif
-+
-+#ifndef _CONNECTIVITY_PROPERTYIDS_HXX_
-+#include "propertyids.hxx"
-+#endif
-+
-+using namespace connectivity::kab;
-+using namespace com::sun::star::uno;
-+using namespace com::sun::star::lang;
-+using namespace com::sun::star::beans;
-+using namespace com::sun::star::sdbc;
-+using namespace com::sun::star::container;
-+using namespace com::sun::star::io;
-+using namespace com::sun::star::util;
-+
-+IMPLEMENT_SERVICE_INFO(KabPreparedStatement, "com.sun.star.sdbc.drivers.KabPreparedStatement", "com.sun.star.sdbc.PreparedStatement");
-+// -------------------------------------------------------------------------
-+KabPreparedStatement::KabPreparedStatement(
-+ KabConnection* _pConnection,
-+ const ::rtl::OUString& sql)
-+ : KabPreparedStatement_BASE(_pConnection),
-+ m_bPrepared(sal_False),
-+ m_sSqlStatement(sql)
-+{
-+}
-+// -------------------------------------------------------------------------
-+KabPreparedStatement::~KabPreparedStatement()
-+{
-+}
-+// -------------------------------------------------------------------------
-+Reference< XResultSetMetaData > SAL_CALL KabPreparedStatement::getMetaData() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+ if (!m_xMetaData.is())
-+ m_xMetaData = new KabResultSetMetaData(getOwnConnection());
-+ return m_xMetaData;
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabPreparedStatement::close() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+ // Reset last warning message
-+ try {
-+ clearWarnings ();
-+ KabCommonStatement::close();
-+ }
-+ catch (SQLException &) {
-+ // If we get an error, ignore
-+ }
-+
-+ // Remove this Statement object from the Connection object's
-+ // list
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabPreparedStatement::execute() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+ Reference< XResultSet> xRS = KabCommonStatement::executeQuery(m_sSqlStatement);
-+
-+ return xRS.is();
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabPreparedStatement::executeUpdate() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+ // same as in statement with the difference that this statement also can contain parameter
-+ return 0;
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabPreparedStatement::setString(sal_Int32 parameterIndex, const ::rtl::OUString& x) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+}
-+// -------------------------------------------------------------------------
-+Reference< XConnection > SAL_CALL KabPreparedStatement::getConnection() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+ return (Reference< XConnection >) m_pConnection;
-+}
-+// -------------------------------------------------------------------------
-+Reference< XResultSet > SAL_CALL KabPreparedStatement::executeQuery() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+ Reference< XResultSet > rs = KabCommonStatement::executeQuery(m_sSqlStatement);
-+
-+ return rs;
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabPreparedStatement::setBoolean(sal_Int32 parameterIndex, sal_Bool x) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabPreparedStatement::setByte(sal_Int32 parameterIndex, sal_Int8 x) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabPreparedStatement::setDate(sal_Int32 parameterIndex, const Date& aData) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabPreparedStatement::setTime(sal_Int32 parameterIndex, const Time& aVal) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabPreparedStatement::setTimestamp(sal_Int32 parameterIndex, const DateTime& aVal) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabPreparedStatement::setDouble(sal_Int32 parameterIndex, double x) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabPreparedStatement::setFloat(sal_Int32 parameterIndex, float x) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabPreparedStatement::setInt(sal_Int32 parameterIndex, sal_Int32 x) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabPreparedStatement::setLong(sal_Int32 parameterIndex, sal_Int64 aVal) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabPreparedStatement::setNull(sal_Int32 parameterIndex, sal_Int32 sqlType) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabPreparedStatement::setClob(sal_Int32 parameterIndex, const Reference< XClob >& x) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabPreparedStatement::setBlob(sal_Int32 parameterIndex, const Reference< XBlob >& x) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabPreparedStatement::setArray(sal_Int32 parameterIndex, const Reference< XArray >& x) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+}
-+// -------------------------------------------------------------------------
-+
-+void SAL_CALL KabPreparedStatement::setRef(sal_Int32 parameterIndex, const Reference< XRef >& x) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabPreparedStatement::setObjectWithInfo(sal_Int32 parameterIndex, const Any& x, sal_Int32 sqlType, sal_Int32 scale) throw(SQLException, RuntimeException)
-+{
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabPreparedStatement::setObjectNull(sal_Int32 parameterIndex, sal_Int32 sqlType, const ::rtl::OUString& typeName) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabPreparedStatement::setObject(sal_Int32 parameterIndex, const Any& x) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabPreparedStatement::setShort(sal_Int32 parameterIndex, sal_Int16 x) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabPreparedStatement::setBytes(sal_Int32 parameterIndex, const Sequence< sal_Int8 >& x) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabPreparedStatement::setCharacterStream(sal_Int32 parameterIndex, const Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabPreparedStatement::setBinaryStream(sal_Int32 parameterIndex, const Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabPreparedStatement::clearParameters() throw(SQLException, RuntimeException)
-+{
-+}
-+// -------------------------------------------------------------------------
-+void KabPreparedStatement::setFastPropertyValue_NoBroadcast(sal_Int32 nHandle,const Any& rValue) throw (Exception)
-+{
-+ switch (nHandle)
-+ {
-+ case PROPERTY_ID_RESULTSETCONCURRENCY:
-+ break;
-+ case PROPERTY_ID_RESULTSETTYPE:
-+ break;
-+ case PROPERTY_ID_FETCHDIRECTION:
-+ break;
-+ case PROPERTY_ID_USEBOOKMARKS:
-+ break;
-+ default:
-+ KabCommonStatement::setFastPropertyValue_NoBroadcast(nHandle,rValue);
-+ }
-+}
-+// -----------------------------------------------------------------------------
-+void KabPreparedStatement::checkParameterIndex(sal_Int32 _parameterIndex)
-+{
-+ // no parameters allowed in this implementation
-+ throw SQLException();
-+}
-Index: connectivity/source/drivers/kab/KPreparedStatement.hxx
-===================================================================
-RCS file: connectivity/source/drivers/kab/KPreparedStatement.hxx
-diff -N connectivity/source/drivers/kab/KPreparedStatement.hxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/KPreparedStatement.hxx 2 Sep 2005 02:42:03 -0000 1.1.2.4
-@@ -0,0 +1,166 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., July, 2005
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2005 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CONNECTIVITY_KAB_PREPAREDSTATEMENT_HXX_
-+#define _CONNECTIVITY_KAB_PREPAREDSTATEMENT_HXX_
-+
-+#ifndef _CONNECTIVITY_KAB_STATEMENT_HXX_
-+#include "KStatement.hxx"
-+#endif
-+
-+#ifndef _COM_SUN_STAR_SDBC_XPARAMETERS_HPP_
-+#include <com/sun/star/sdbc/XParameters.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_SDBC_XRESULTSETMETADATASUPPLIER_HPP_
-+#include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp>
-+#endif
-+#ifndef _CPPUHELPER_IMPLBASE4_HXX_
-+#include <cppuhelper/implbase4.hxx>
-+#endif
-+
-+namespace connectivity
-+{
-+ namespace kab
-+ {
-+
-+ class OBoundParam;
-+ typedef ::cppu::ImplInheritanceHelper4< KabCommonStatement,
-+ ::com::sun::star::sdbc::XPreparedStatement,
-+ ::com::sun::star::sdbc::XParameters,
-+ ::com::sun::star::sdbc::XResultSetMetaDataSupplier,
-+ ::com::sun::star::lang::XServiceInfo> KabPreparedStatement_BASE;
-+
-+ class KabPreparedStatement : public KabPreparedStatement_BASE
-+ {
-+ protected:
-+ struct Parameter
-+ {
-+ ::com::sun::star::uno::Any aValue;
-+ sal_Int32 nDataType;
-+
-+ Parameter(const ::com::sun::star::uno::Any& rValue,
-+ sal_Int32 rDataType) : aValue(rValue),nDataType(rDataType)
-+ {
-+ }
-+
-+ };
-+
-+ ::std::vector< Parameter> m_aParameters;
-+ //====================================================================
-+ // Data attributes
-+ //====================================================================
-+ ::rtl::OUString m_sSqlStatement;
-+ ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetMetaData > m_xMetaData;
-+ sal_Bool m_bPrepared;
-+
-+ void checkParameterIndex(sal_Int32 _parameterIndex);
-+
-+ protected:
-+ virtual void SAL_CALL setFastPropertyValue_NoBroadcast(
-+ sal_Int32 nHandle,
-+ const ::com::sun::star::uno::Any& rValue) throw (::com::sun::star::uno::Exception);
-+ virtual ~KabPreparedStatement();
-+
-+ public:
-+ DECLARE_SERVICE_INFO();
-+ KabPreparedStatement(KabConnection* _pConnection, const ::rtl::OUString& sql);
-+
-+ // XPreparedStatement
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL executeQuery( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL executeUpdate( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL execute( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > SAL_CALL getConnection( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+ // XParameters
-+ virtual void SAL_CALL setNull( sal_Int32 parameterIndex, sal_Int32 sqlType ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setObjectNull( sal_Int32 parameterIndex, sal_Int32 sqlType, const ::rtl::OUString& typeName ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setBoolean( sal_Int32 parameterIndex, sal_Bool x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setByte( sal_Int32 parameterIndex, sal_Int8 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setShort( sal_Int32 parameterIndex, sal_Int16 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setInt( sal_Int32 parameterIndex, sal_Int32 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setLong( sal_Int32 parameterIndex, sal_Int64 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setFloat( sal_Int32 parameterIndex, float x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setDouble( sal_Int32 parameterIndex, double x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setString( sal_Int32 parameterIndex, const ::rtl::OUString& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setBytes( sal_Int32 parameterIndex, const ::com::sun::star::uno::Sequence< sal_Int8 >& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setDate( sal_Int32 parameterIndex, const ::com::sun::star::util::Date& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setTime( sal_Int32 parameterIndex, const ::com::sun::star::util::Time& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setTimestamp( sal_Int32 parameterIndex, const ::com::sun::star::util::DateTime& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setBinaryStream( sal_Int32 parameterIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setCharacterStream( sal_Int32 parameterIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setObject( sal_Int32 parameterIndex, const ::com::sun::star::uno::Any& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setObjectWithInfo( sal_Int32 parameterIndex, const ::com::sun::star::uno::Any& x, sal_Int32 targetSqlType, sal_Int32 scale ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setRef( sal_Int32 parameterIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRef >& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setBlob( sal_Int32 parameterIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XBlob >& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setClob( sal_Int32 parameterIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XClob >& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setArray( sal_Int32 parameterIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XArray >& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL clearParameters( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+ // XCloseable
-+ virtual void SAL_CALL close( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+ // XResultSetMetaDataSupplier
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetMetaData > SAL_CALL getMetaData( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ };
-+ }
-+}
-+
-+#endif // _CONNECTIVITY_KAB_PREPAREDSTATEMENT_HXX_
-Index: connectivity/source/drivers/kab/KResultSet.cxx
-===================================================================
-RCS file: connectivity/source/drivers/kab/KResultSet.cxx
-diff -N connectivity/source/drivers/kab/KResultSet.cxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/KResultSet.cxx 2 Sep 2005 15:22:52 -0000 1.1.2.6
-@@ -0,0 +1,882 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., July, 2005
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2005 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include "KResultSet.hxx"
-+#ifndef _CONNECTIVITY_KAB_RESULTSETMETADATA_HXX_
-+#include "KResultSetMetaData.hxx"
-+#endif
-+#ifndef _CONNECTIVITY_KAB_CONNECTION_HXX_
-+#include "KConnection.hxx"
-+#endif
-+#ifndef _CONNECTIVITY_KAB_CONDITION_HXX_
-+#include "KCondition.hxx"
-+#endif
-+#include <kabc/addressbook.h>
-+
-+#ifndef _COM_SUN_STAR_BEANS_PROPERTYATTRIBUTE_HPP_
-+#include <com/sun/star/beans/PropertyAttribute.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_SDBCX_COMPAREBOOKMARK_HPP_
-+#include <com/sun/star/sdbcx/CompareBookmark.hpp>
-+#endif
-+#ifndef CONNECTIVITY_CONNECTION_HXX
-+#include "TConnection.hxx"
-+#endif
-+#ifndef _DBHELPER_DBEXCEPTION_HXX_
-+#include <connectivity/dbexception.hxx>
-+#endif
-+
-+using namespace connectivity::kab;
-+using namespace cppu;
-+using namespace com::sun::star::uno;
-+using namespace com::sun::star::lang;
-+using namespace com::sun::star::beans;
-+using namespace com::sun::star::sdbc;
-+using namespace com::sun::star::sdbcx;
-+using namespace com::sun::star::container;
-+using namespace com::sun::star::io;
-+using namespace com::sun::star::util;
-+
-+IMPLEMENT_SERVICE_INFO(KabResultSet, "com.sun.star.sdbc.drivers.KabResultSet", "com.sun.star.sdbc.ResultSet");
-+// -------------------------------------------------------------------------
-+KabResultSet::KabResultSet(KabCommonStatement* pStmt)
-+ : KabResultSet_BASE(m_aMutex),
-+ OPropertySetHelper(KabResultSet_BASE::rBHelper),
-+ m_xStatement(pStmt),
-+ m_xMetaData(NULL),
-+ m_aKabAddressees(),
-+ m_nRowPos(-1),
-+ m_bWasNull(sal_True)
-+{
-+}
-+// -------------------------------------------------------------------------
-+KabResultSet::~KabResultSet()
-+{
-+}
-+// -------------------------------------------------------------------------
-+void KabResultSet::allKabAddressees()
-+{
-+ KabCommonStatement* pStatement = m_xStatement.get();
-+ KabConnection* pConnection = (KabConnection *) pStatement->getConnection().get();
-+ KABC::AddressBook* pAddressBook = pConnection->getAddressBook();
-+
-+ m_aKabAddressees = pAddressBook->allAddressees();
-+}
-+// -------------------------------------------------------------------------
-+void KabResultSet::someKabAddressees(const KabCondition *pCondition)
-+{
-+ KabCommonStatement* pStatement = m_xStatement.get();
-+ KabConnection* pConnection = (KabConnection *) pStatement->getConnection().get();
-+ KABC::AddressBook* pAddressBook = pConnection->getAddressBook();
-+
-+ KABC::AddressBook::Iterator iterator;
-+
-+ for (iterator = pAddressBook->begin();
-+ iterator != pAddressBook->end();
-+ ++iterator)
-+ {
-+ if (pCondition->eval(*iterator))
-+ m_aKabAddressees.push_back(*iterator);
-+ }
-+}
-+// -------------------------------------------------------------------------
-+void KabResultSet::disposing()
-+{
-+ OPropertySetHelper::disposing();
-+
-+ ::osl::MutexGuard aGuard(m_aMutex);
-+
-+ m_xStatement = NULL;
-+ m_xMetaData = NULL;
-+}
-+// -------------------------------------------------------------------------
-+Any SAL_CALL KabResultSet::queryInterface(const Type & rType) throw(RuntimeException)
-+{
-+ Any aRet = OPropertySetHelper::queryInterface(rType);
-+ if (!aRet.hasValue())
-+ aRet = KabResultSet_BASE::queryInterface(rType);
-+ return aRet;
-+}
-+// -------------------------------------------------------------------------
-+Sequence< Type > SAL_CALL KabResultSet::getTypes() throw(RuntimeException)
-+{
-+ OTypeCollection aTypes(
-+ ::getCppuType( (const Reference< ::com::sun::star::beans::XMultiPropertySet >*) 0),
-+ ::getCppuType( (const Reference< ::com::sun::star::beans::XFastPropertySet >*) 0),
-+ ::getCppuType( (const Reference< ::com::sun::star::beans::XPropertySet >*) 0));
-+
-+ return comphelper::concatSequences(aTypes.getTypes(), KabResultSet_BASE::getTypes());
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabResultSet::findColumn(const ::rtl::OUString& columnName) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ // find the first column with the name columnName
-+ Reference< XResultSetMetaData > xMeta = getMetaData();
-+ sal_Int32 nLen = xMeta->getColumnCount(),
-+ i;
-+
-+ for (i = 1; i <= nLen; ++i)
-+ if (xMeta->isCaseSensitive(i) ?
-+ columnName == xMeta->getColumnName(i) :
-+ columnName.equalsIgnoreAsciiCase(xMeta->getColumnName(i)))
-+ return i;
-+
-+ ::dbtools::throwGenericSQLException(
-+ ::rtl::OUString::createFromAscii("Invalid column name: ") + columnName,
-+ NULL);
-+}
-+// -------------------------------------------------------------------------
-+Reference< XInputStream > SAL_CALL KabResultSet::getBinaryStream(sal_Int32 columnIndex) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ return NULL;
-+}
-+// -------------------------------------------------------------------------
-+Reference< XInputStream > SAL_CALL KabResultSet::getCharacterStream(sal_Int32 columnIndex) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ return NULL;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSet::getBoolean(sal_Int32 columnIndex) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int8 SAL_CALL KabResultSet::getByte(sal_Int32 columnIndex) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ sal_Int8 nRet = 0;
-+ return nRet;
-+}
-+// -------------------------------------------------------------------------
-+Sequence< sal_Int8 > SAL_CALL KabResultSet::getBytes(sal_Int32 columnIndex) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ return Sequence< sal_Int8 >();
-+}
-+// -------------------------------------------------------------------------
-+Date SAL_CALL KabResultSet::getDate(sal_Int32 columnIndex) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ Date nRet;
-+ return nRet;
-+}
-+// -------------------------------------------------------------------------
-+double SAL_CALL KabResultSet::getDouble(sal_Int32 columnIndex) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ double nRet = 0;
-+ return nRet;
-+}
-+// -------------------------------------------------------------------------
-+float SAL_CALL KabResultSet::getFloat(sal_Int32 columnIndex) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ float nVal(0);
-+ return nVal;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabResultSet::getInt(sal_Int32 columnIndex) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ sal_Int32 nRet=0;
-+ return nRet;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabResultSet::getRow() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ return m_nRowPos;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int64 SAL_CALL KabResultSet::getLong(sal_Int32 columnIndex) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ return sal_Int64();
-+}
-+// -------------------------------------------------------------------------
-+Reference< XResultSetMetaData > SAL_CALL KabResultSet::getMetaData() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ if (!m_xMetaData.is())
-+ m_xMetaData = new KabResultSetMetaData(m_xStatement.get()->getOwnConnection());
-+
-+ return m_xMetaData;
-+}
-+// -------------------------------------------------------------------------
-+Reference< XArray > SAL_CALL KabResultSet::getArray(sal_Int32 columnIndex) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ return NULL;
-+}
-+// -------------------------------------------------------------------------
-+Reference< XClob > SAL_CALL KabResultSet::getClob(sal_Int32 columnIndex) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ return NULL;
-+}
-+// -------------------------------------------------------------------------
-+Reference< XBlob > SAL_CALL KabResultSet::getBlob(sal_Int32 columnIndex) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ return NULL;
-+}
-+// -------------------------------------------------------------------------
-+Reference< XRef > SAL_CALL KabResultSet::getRef(sal_Int32 columnIndex) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ return NULL;
-+}
-+// -------------------------------------------------------------------------
-+Any SAL_CALL KabResultSet::getObject(sal_Int32 columnIndex, const Reference< ::com::sun::star::container::XNameAccess >& typeMap) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ return Any();
-+}
-+// -------------------------------------------------------------------------
-+sal_Int16 SAL_CALL KabResultSet::getShort(sal_Int32 columnIndex) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ sal_Int16 nRet=0;
-+ return nRet;
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabResultSet::getString(sal_Int32 columnIndex) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ ::rtl::OUString aRet;
-+ sal_Int32 nAddressees = m_aKabAddressees.size();
-+ ::KABC::Field::List aFields = ::KABC::Field::allFields();
-+
-+ if (m_nRowPos != -1 && m_nRowPos != nAddressees && m_xMetaData.is())
-+ {
-+ KabResultSetMetaData *pMeta = (KabResultSetMetaData *) m_xMetaData.get();
-+ sal_Int32 nFieldNumber = pMeta->fieldAtColumn(columnIndex);
-+ QString aQtName(aFields[nFieldNumber]->value(m_aKabAddressees[m_nRowPos]));
-+
-+ if (!aQtName.isNull())
-+ {
-+ m_bWasNull = false;
-+ aRet = ::rtl::OUString((const sal_Unicode *) aQtName.ucs2());
-+ return aRet;
-+ }
-+ }
-+// KDE address book currently does not use NULL values.
-+// But it might do it someday
-+ m_bWasNull = true;
-+ return aRet;
-+}
-+// -------------------------------------------------------------------------
-+Time SAL_CALL KabResultSet::getTime(sal_Int32 columnIndex) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ Time nRet;
-+ return nRet;
-+}
-+// -------------------------------------------------------------------------
-+DateTime SAL_CALL KabResultSet::getTimestamp(sal_Int32 columnIndex) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ DateTime nRet;
-+ return nRet;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSet::isBeforeFirst() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ if (m_nRowPos == -1)
-+ return sal_True;
-+
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSet::isAfterLast() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ sal_Int32 nAddressees = m_aKabAddressees.size();
-+ if (m_nRowPos == nAddressees)
-+ return sal_True;
-+
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSet::isFirst() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ if (m_nRowPos == 0)
-+ return sal_True;
-+
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSet::isLast() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ sal_Int32 nAddressees = m_aKabAddressees.size();
-+ if (m_nRowPos == nAddressees - 1)
-+ return sal_True;
-+
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::beforeFirst() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ // move before the first row
-+ m_nRowPos == -1;
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::afterLast() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ // move after the last row
-+ sal_Int32 nAddressees = m_aKabAddressees.size();
-+ m_nRowPos = nAddressees;
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::close() throw(SQLException, RuntimeException)
-+{
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+ }
-+ dispose();
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSet::first() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ sal_Int32 nAddressees = m_aKabAddressees.size();
-+ if (nAddressees == 0)
-+ return sal_False;
-+
-+ m_nRowPos = 0;
-+ return sal_True;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSet::last() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ sal_Int32 nAddressees = m_aKabAddressees.size();
-+ if (nAddressees == 0)
-+ return sal_False;
-+
-+ m_nRowPos = nAddressees - 1;
-+ return sal_True;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSet::absolute(sal_Int32 row) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ sal_Int32 nAddressees = m_aKabAddressees.size();
-+ if (row <= -1 ||
-+ row >= nAddressees)
-+ return sal_False;
-+
-+ m_nRowPos = row;
-+ return sal_True;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSet::relative(sal_Int32 row) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ return absolute(m_nRowPos + row);
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSet::next() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ return absolute(m_nRowPos + 1);
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSet::previous() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ return absolute(m_nRowPos - 1);
-+}
-+// -------------------------------------------------------------------------
-+Reference< XInterface > SAL_CALL KabResultSet::getStatement() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ return m_xStatement;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSet::rowDeleted() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSet::rowInserted() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSet::rowUpdated() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSet::wasNull() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ return m_bWasNull;
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::cancel() throw(RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::clearWarnings() throw(SQLException, RuntimeException)
-+{
-+}
-+// -------------------------------------------------------------------------
-+Any SAL_CALL KabResultSet::getWarnings() throw(SQLException, RuntimeException)
-+{
-+ return Any();
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::insertRow() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ // you only have to implement this if you want to insert new rows
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::updateRow() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ // only when you allow updates
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::deleteRow() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::cancelRowUpdates() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::moveToInsertRow() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ // only when you allow inserts
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::moveToCurrentRow() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::updateNull(sal_Int32 columnIndex) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::updateBoolean(sal_Int32 columnIndex, sal_Bool x) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::updateByte(sal_Int32 columnIndex, sal_Int8 x) throw(SQLException, RuntimeException)
-+{
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::updateShort(sal_Int32 columnIndex, sal_Int16 x) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::updateInt(sal_Int32 columnIndex, sal_Int32 x) throw(SQLException, RuntimeException)
-+{
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::updateLong(sal_Int32 columnIndex, sal_Int64 x) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+}
-+// -----------------------------------------------------------------------
-+void SAL_CALL KabResultSet::updateFloat(sal_Int32 columnIndex, float x) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::updateDouble(sal_Int32 columnIndex, double x) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::updateString(sal_Int32 columnIndex, const ::rtl::OUString& x) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::updateBytes(sal_Int32 columnIndex, const Sequence< sal_Int8 >& x) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::updateDate(sal_Int32 columnIndex, const Date& x) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::updateTime(sal_Int32 columnIndex, const Time& x) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::updateTimestamp(sal_Int32 columnIndex, const DateTime& x) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::updateBinaryStream(sal_Int32 columnIndex, const Reference< XInputStream >& x, sal_Int32 length) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::updateCharacterStream(sal_Int32 columnIndex, const Reference< XInputStream >& x, sal_Int32 length) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::refreshRow() throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::updateObject(sal_Int32 columnIndex, const Any& x) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::updateNumericObject(sal_Int32 columnIndex, const Any& x, sal_Int32 scale) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+}
-+// -------------------------------------------------------------------------
-+// XRowLocate
-+Any SAL_CALL KabResultSet::getBookmark() throw( SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ // if you don't want to support bookmark you must remove the XRowLocate interface
-+
-+ return Any();
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSet::moveToBookmark(const Any& bookmark) throw( SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSet::moveRelativeToBookmark(const Any& bookmark, sal_Int32 rows) throw( SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabResultSet::compareBookmarks(const Any& first, const Any& second) throw( SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ return CompareBookmark::NOT_EQUAL;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSet::hasOrderedBookmarks() throw( SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabResultSet::hashBookmark(const Any& bookmark) throw( SQLException, RuntimeException)
-+{
-+ throw SQLException();
-+}
-+// -------------------------------------------------------------------------
-+// XDeleteRows
-+Sequence< sal_Int32 > SAL_CALL KabResultSet::deleteRows(const Sequence< Any >& rows) throw( SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabResultSet_BASE::rBHelper.bDisposed);
-+
-+ return Sequence< sal_Int32 >();
-+}
-+// -------------------------------------------------------------------------
-+IPropertyArrayHelper* KabResultSet::createArrayHelper() const
-+{
-+ Sequence< Property > aProps(6);
-+ Property* pProperties = aProps.getArray();
-+ sal_Int32 nPos = 0;
-+ DECL_PROP1IMPL(CURSORNAME, ::rtl::OUString) PropertyAttribute::READONLY);
-+ DECL_PROP0(FETCHDIRECTION, sal_Int32);
-+ DECL_PROP0(FETCHSIZE, sal_Int32);
-+ DECL_BOOL_PROP1IMPL(ISBOOKMARKABLE) PropertyAttribute::READONLY);
-+ DECL_PROP1IMPL(RESULTSETCONCURRENCY,sal_Int32) PropertyAttribute::READONLY);
-+ DECL_PROP1IMPL(RESULTSETTYPE, sal_Int32) PropertyAttribute::READONLY);
-+
-+ return new OPropertyArrayHelper(aProps);
-+}
-+// -------------------------------------------------------------------------
-+IPropertyArrayHelper & KabResultSet::getInfoHelper()
-+{
-+ return *const_cast<KabResultSet*>(this)->getArrayHelper();
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool KabResultSet::convertFastPropertyValue(
-+ Any & rConvertedValue,
-+ Any & rOldValue,
-+ sal_Int32 nHandle,
-+ const Any& rValue )
-+ throw (::com::sun::star::lang::IllegalArgumentException)
-+{
-+ switch (nHandle)
-+ {
-+ case PROPERTY_ID_ISBOOKMARKABLE:
-+ case PROPERTY_ID_CURSORNAME:
-+ case PROPERTY_ID_RESULTSETCONCURRENCY:
-+ case PROPERTY_ID_RESULTSETTYPE:
-+ throw ::com::sun::star::lang::IllegalArgumentException();
-+ break;
-+ case PROPERTY_ID_FETCHDIRECTION:
-+ case PROPERTY_ID_FETCHSIZE:
-+ default:
-+ ;
-+ }
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+void KabResultSet::setFastPropertyValue_NoBroadcast(
-+ sal_Int32 nHandle,
-+ const Any& rValue )
-+ throw (Exception)
-+{
-+ switch (nHandle)
-+ {
-+ case PROPERTY_ID_ISBOOKMARKABLE:
-+ case PROPERTY_ID_CURSORNAME:
-+ case PROPERTY_ID_RESULTSETCONCURRENCY:
-+ case PROPERTY_ID_RESULTSETTYPE:
-+ throw Exception();
-+ break;
-+ case PROPERTY_ID_FETCHDIRECTION:
-+ break;
-+ case PROPERTY_ID_FETCHSIZE:
-+ break;
-+ default:
-+ ;
-+ }
-+}
-+// -------------------------------------------------------------------------
-+void KabResultSet::getFastPropertyValue(
-+ Any& rValue,
-+ sal_Int32 nHandle) const
-+{
-+ switch (nHandle)
-+ {
-+ case PROPERTY_ID_ISBOOKMARKABLE:
-+ case PROPERTY_ID_CURSORNAME:
-+ case PROPERTY_ID_RESULTSETCONCURRENCY:
-+ case PROPERTY_ID_RESULTSETTYPE:
-+ case PROPERTY_ID_FETCHDIRECTION:
-+ case PROPERTY_ID_FETCHSIZE:
-+ ;
-+ }
-+}
-+// -----------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::acquire() throw()
-+{
-+ KabResultSet_BASE::acquire();
-+}
-+// -----------------------------------------------------------------------------
-+void SAL_CALL KabResultSet::release() throw()
-+{
-+ KabResultSet_BASE::release();
-+}
-+// -----------------------------------------------------------------------------
-+::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL KabResultSet::getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException)
-+{
-+ return ::cppu::OPropertySetHelper::createPropertySetInfo(getInfoHelper());
-+}
-+// -----------------------------------------------------------------------------
-Index: connectivity/source/drivers/kab/KResultSet.hxx
-===================================================================
-RCS file: connectivity/source/drivers/kab/KResultSet.hxx
-diff -N connectivity/source/drivers/kab/KResultSet.hxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/KResultSet.hxx 2 Sep 2005 15:22:52 -0000 1.1.2.3
-@@ -0,0 +1,275 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., July, 2005
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2005 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CONNECTIVITY_KAB_RESULTSET_HXX_
-+#define _CONNECTIVITY_KAB_RESULTSET_HXX_
-+
-+#ifndef _CONNECTIVITY_KAB_STATEMENT_HXX_
-+#include "KStatement.hxx"
-+#endif
-+#include <kabc/addressee.h>
-+
-+#ifndef _COM_SUN_STAR_SDBC_XROW_HPP_
-+#include <com/sun/star/sdbc/XRow.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_SDBC_XRESULTSETMETADATASUPPLIER_HPP_
-+#include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_SDBC_XCOLUMNLOCATE_HPP_
-+#include <com/sun/star/sdbc/XColumnLocate.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_SDBC_XRESULTSETUPDATE_HPP_
-+#include <com/sun/star/sdbc/XResultSetUpdate.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_SDBC_XROWUPDATE_HPP_
-+#include <com/sun/star/sdbc/XRowUpdate.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_SDBCX_XROWLOCATE_HPP_
-+#include <com/sun/star/sdbcx/XRowLocate.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_SDBCX_XDELETEROWS_HPP_
-+#include <com/sun/star/sdbcx/XDeleteRows.hpp>
-+#endif
-+#ifndef _CPPUHELPER_COMPBASE12_HXX_
-+#include <cppuhelper/compbase12.hxx>
-+#endif
-+
-+namespace connectivity
-+{
-+ namespace kab
-+ {
-+ /*
-+ ** KabResultSet
-+ */
-+ typedef ::cppu::WeakComponentImplHelper12< ::com::sun::star::sdbc::XResultSet,
-+ ::com::sun::star::sdbc::XRow,
-+ ::com::sun::star::sdbc::XResultSetMetaDataSupplier,
-+ ::com::sun::star::util::XCancellable,
-+ ::com::sun::star::sdbc::XWarningsSupplier,
-+ ::com::sun::star::sdbc::XResultSetUpdate,
-+ ::com::sun::star::sdbc::XRowUpdate,
-+ ::com::sun::star::sdbcx::XRowLocate,
-+ ::com::sun::star::sdbcx::XDeleteRows,
-+ ::com::sun::star::sdbc::XCloseable,
-+ ::com::sun::star::sdbc::XColumnLocate,
-+ ::com::sun::star::lang::XServiceInfo> KabResultSet_BASE;
-+
-+ class KabResultSet : public comphelper::OBaseMutex,
-+ public KabResultSet_BASE,
-+ public ::cppu::OPropertySetHelper,
-+ public comphelper::OPropertyArrayUsageHelper<KabResultSet>
-+ {
-+ protected:
-+ ::com::sun::star::uno::Reference< KabCommonStatement > m_xStatement;
-+ ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetMetaData > m_xMetaData;
-+ ::KABC::Addressee::List m_aKabAddressees; // address book entries matching the query
-+ sal_Int32 m_nRowPos;
-+ sal_Bool m_bWasNull;
-+
-+ // OPropertyArrayUsageHelper
-+ virtual ::cppu::IPropertyArrayHelper* createArrayHelper( ) const;
-+
-+ // OPropertySetHelper
-+ virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper();
-+
-+ virtual sal_Bool SAL_CALL convertFastPropertyValue(
-+ ::com::sun::star::uno::Any & rConvertedValue,
-+ ::com::sun::star::uno::Any & rOldValue,
-+ sal_Int32 nHandle,
-+ const ::com::sun::star::uno::Any& rValue)
-+ throw (::com::sun::star::lang::IllegalArgumentException);
-+ virtual void SAL_CALL setFastPropertyValue_NoBroadcast(
-+ sal_Int32 nHandle,
-+ const ::com::sun::star::uno::Any& rValue)
-+ throw (::com::sun::star::uno::Exception);
-+ virtual void SAL_CALL getFastPropertyValue(
-+ ::com::sun::star::uno::Any& rValue,
-+ sal_Int32 nHandle) const;
-+
-+ // you can't delete objects of this type
-+ virtual ~KabResultSet();
-+
-+ public:
-+ DECLARE_SERVICE_INFO();
-+
-+ KabResultSet(KabCommonStatement *pStmt);
-+
-+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > operator *()
-+ {
-+ return ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >(*(KabResultSet_BASE*) this);
-+ }
-+
-+ void allKabAddressees();
-+ void someKabAddressees(const class KabCondition *pCondition);
-+
-+ // ::cppu::OComponentHelper
-+ virtual void SAL_CALL disposing(void);
-+
-+ // XInterface
-+ virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL acquire() throw();
-+ virtual void SAL_CALL release() throw();
-+
-+ // XTypeProvider
-+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException);
-+
-+ // XPropertySet
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException);
-+
-+ // XResultSet
-+ virtual sal_Bool SAL_CALL isBeforeFirst( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isAfterLast( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isFirst( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isLast( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL beforeFirst( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL afterLast( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL first( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL last( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL absolute( sal_Int32 row ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL relative( sal_Int32 rows ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL next( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL previous( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL refreshRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL rowUpdated( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL rowInserted( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL rowDeleted( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getStatement( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+ // XRow
-+ virtual sal_Bool SAL_CALL wasNull( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getString( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL getBoolean( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int8 SAL_CALL getByte( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int16 SAL_CALL getShort( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getInt( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int64 SAL_CALL getLong( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual float SAL_CALL getFloat( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual double SAL_CALL getDouble( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getBytes( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::util::Date SAL_CALL getDate( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::util::Time SAL_CALL getTime( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::util::DateTime SAL_CALL getTimestamp( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getBinaryStream( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getCharacterStream( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Any SAL_CALL getObject( sal_Int32 columnIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& typeMap ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRef > SAL_CALL getRef( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XBlob > SAL_CALL getBlob( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XClob > SAL_CALL getClob( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XArray > SAL_CALL getArray( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+ // XResultSetMetaDataSupplier
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetMetaData > SAL_CALL getMetaData( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+ // XCancellable
-+ virtual void SAL_CALL cancel( ) throw(::com::sun::star::uno::RuntimeException);
-+
-+ // XCloseable
-+ virtual void SAL_CALL close( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+ // XWarningsSupplier
-+ virtual ::com::sun::star::uno::Any SAL_CALL getWarnings( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL clearWarnings( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+ // XResultSetUpdate
-+ virtual void SAL_CALL insertRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL updateRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL deleteRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL cancelRowUpdates( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL moveToInsertRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL moveToCurrentRow( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ // XRowUpdate
-+ virtual void SAL_CALL updateNull( sal_Int32 columnIndex ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL updateBoolean( sal_Int32 columnIndex, sal_Bool x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL updateByte( sal_Int32 columnIndex, sal_Int8 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL updateShort( sal_Int32 columnIndex, sal_Int16 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL updateInt( sal_Int32 columnIndex, sal_Int32 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL updateLong( sal_Int32 columnIndex, sal_Int64 x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL updateFloat( sal_Int32 columnIndex, float x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL updateDouble( sal_Int32 columnIndex, double x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL updateString( sal_Int32 columnIndex, const ::rtl::OUString& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL updateBytes( sal_Int32 columnIndex, const ::com::sun::star::uno::Sequence< sal_Int8 >& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL updateDate( sal_Int32 columnIndex, const ::com::sun::star::util::Date& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL updateTime( sal_Int32 columnIndex, const ::com::sun::star::util::Time& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL updateTimestamp( sal_Int32 columnIndex, const ::com::sun::star::util::DateTime& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL updateBinaryStream( sal_Int32 columnIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL updateCharacterStream( sal_Int32 columnIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& x, sal_Int32 length ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL updateObject( sal_Int32 columnIndex, const ::com::sun::star::uno::Any& x ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL updateNumericObject( sal_Int32 columnIndex, const ::com::sun::star::uno::Any& x, sal_Int32 scale ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+ // XColumnLocate
-+ virtual sal_Int32 SAL_CALL findColumn( const ::rtl::OUString& columnName ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+ // XRowLocate
-+ virtual ::com::sun::star::uno::Any SAL_CALL getBookmark( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL moveToBookmark( const ::com::sun::star::uno::Any& bookmark ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL moveRelativeToBookmark( const ::com::sun::star::uno::Any& bookmark, sal_Int32 rows ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL compareBookmarks( const ::com::sun::star::uno::Any& first, const ::com::sun::star::uno::Any& second ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL hasOrderedBookmarks( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL hashBookmark( const ::com::sun::star::uno::Any& bookmark ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+ // XDeleteRows
-+ virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL deleteRows( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& rows ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ };
-+ }
-+}
-+
-+#endif // _CONNECTIVITY_KAB_RESULTSET_HXX_
-Index: connectivity/source/drivers/kab/KResultSetMetaData.cxx
-===================================================================
-RCS file: connectivity/source/drivers/kab/KResultSetMetaData.cxx
-diff -N connectivity/source/drivers/kab/KResultSetMetaData.cxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/KResultSetMetaData.cxx 29 Aug 2005 08:43:52 -0000 1.1.2.1
-@@ -0,0 +1,238 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., July, 2005
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2005 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include "KResultSetMetaData.hxx"
-+#include <kabc/field.h>
-+
-+#ifndef _DBHELPER_DBEXCEPTION_HXX_
-+#include <connectivity/dbexception.hxx>
-+#endif
-+
-+using namespace connectivity::kab;
-+using namespace com::sun::star::uno;
-+using namespace com::sun::star::lang;
-+using namespace com::sun::star::sdbc;
-+
-+KabResultSetMetaData::KabResultSetMetaData(KabConnection* _pConnection)
-+ : m_pConnection(_pConnection),
-+ m_aKabFields()
-+{
-+}
-+// -------------------------------------------------------------------------
-+KabResultSetMetaData::~KabResultSetMetaData()
-+{
-+}
-+// -------------------------------------------------------------------------
-+sal_uInt32 KabResultSetMetaData::findKabField(const ::rtl::OUString& columnName) throw(SQLException)
-+{
-+ // search the KDE address book field number of a given column name
-+
-+ ::KABC::Field::List aFields = ::KABC::Field::allFields();
-+ ::KABC::Field::List::iterator aField;
-+ sal_uInt32 nResult;
-+
-+ for ( aField = aFields.begin(), nResult = 0;
-+ aField != aFields.end();
-+ ++aField, ++nResult)
-+ {
-+ QString aQtName((*aField)->label());
-+ ::rtl::OUString aName((const sal_Unicode *) aQtName.ucs2());
-+
-+ if (aName == columnName)
-+ return nResult;
-+ }
-+
-+ ::dbtools::throwGenericSQLException(
-+ ::rtl::OUString::createFromAscii("Invalid column name: ") + columnName,
-+ NULL);
-+}
-+// -------------------------------------------------------------------------
-+void KabResultSetMetaData::setKabFields(const ::vos::ORef<connectivity::OSQLColumns> &xColumns) throw(SQLException)
-+{
-+ OSQLColumns::const_iterator aIter;
-+ static const ::rtl::OUString aName(::rtl::OUString::createFromAscii("Name"));
-+
-+ for (aIter = xColumns->begin(); aIter != xColumns->end(); ++aIter)
-+ {
-+ ::rtl::OUString aFieldName;
-+ sal_uInt32 nFieldNumber;
-+
-+ (*aIter)->getPropertyValue(aName) >>= aFieldName;
-+ nFieldNumber = findKabField(aFieldName);
-+ m_aKabFields.push_back(nFieldNumber);
-+ }
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabResultSetMetaData::getColumnDisplaySize(sal_Int32 column) throw(SQLException, RuntimeException)
-+{
-+ return 50;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabResultSetMetaData::getColumnType(sal_Int32 column) throw(SQLException, RuntimeException)
-+{
-+ return DataType::CHAR;
-+// KDE address book might support other types
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabResultSetMetaData::getColumnCount() throw(SQLException, RuntimeException)
-+{
-+ return m_aKabFields.size();
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSetMetaData::isCaseSensitive(sal_Int32 column) throw(SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabResultSetMetaData::getSchemaName(sal_Int32 column) throw(SQLException, RuntimeException)
-+{
-+ return ::rtl::OUString();
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabResultSetMetaData::getColumnName(sal_Int32 column) throw(SQLException, RuntimeException)
-+{
-+ ::KABC::Field::List aFields = ::KABC::Field::allFields();
-+ sal_uInt32 nFieldNumber = m_aKabFields[column - 1];
-+ QString aQtName(aFields[nFieldNumber]->label());
-+ ::rtl::OUString aName((const sal_Unicode *) aQtName.ucs2());
-+
-+ return aName;
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabResultSetMetaData::getTableName(sal_Int32 column) throw(SQLException, RuntimeException)
-+{
-+ static const ::rtl::OUString aAddresses(::rtl::OUString::createFromAscii("addresses"));
-+
-+ return aAddresses;
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabResultSetMetaData::getCatalogName(sal_Int32 column) throw(SQLException, RuntimeException)
-+{
-+ return ::rtl::OUString();
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabResultSetMetaData::getColumnTypeName(sal_Int32 column) throw(SQLException, RuntimeException)
-+{
-+ return ::rtl::OUString();
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabResultSetMetaData::getColumnLabel(sal_Int32 column) throw(SQLException, RuntimeException)
-+{
-+ return ::rtl::OUString();
-+}
-+// -------------------------------------------------------------------------
-+::rtl::OUString SAL_CALL KabResultSetMetaData::getColumnServiceName(sal_Int32 column) throw(SQLException, RuntimeException)
-+{
-+ return ::rtl::OUString();
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSetMetaData::isCurrency(sal_Int32 column) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSetMetaData::isAutoIncrement(sal_Int32 column) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSetMetaData::isSigned(sal_Int32 column) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabResultSetMetaData::getPrecision(sal_Int32 column) throw(SQLException, RuntimeException)
-+{
-+ return 0;
-+}
-+// -----------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabResultSetMetaData::getScale(sal_Int32 column) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException)
-+{
-+ return 0;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabResultSetMetaData::isNullable(sal_Int32 column) throw(SQLException, RuntimeException)
-+{
-+ return (sal_Int32) sal_True;
-+// KDE address book currently does not use NULL values.
-+// But it might do it someday
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSetMetaData::isSearchable(sal_Int32 column) throw(SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSetMetaData::isReadOnly(sal_Int32 column) throw(SQLException, RuntimeException)
-+{
-+ return sal_True;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSetMetaData::isDefinitelyWritable(sal_Int32 column) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabResultSetMetaData::isWritable(sal_Int32 column) throw(SQLException, RuntimeException)
-+{
-+ return sal_False;
-+}
-+// -------------------------------------------------------------------------
-Index: connectivity/source/drivers/kab/KResultSetMetaData.hxx
-===================================================================
-RCS file: connectivity/source/drivers/kab/KResultSetMetaData.hxx
-diff -N connectivity/source/drivers/kab/KResultSetMetaData.hxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/KResultSetMetaData.hxx 29 Aug 2005 08:43:53 -0000 1.1.2.1
-@@ -0,0 +1,136 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., July, 2005
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2005 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CONNECTIVITY_KAB_RESULTSETMETADATA_HXX_
-+#define _CONNECTIVITY_KAB_RESULTSETMETADATA_HXX_
-+
-+#ifndef _CONNECTIVITY_KAB_CONNECTION_HXX_
-+#include "KConnection.hxx"
-+#endif
-+
-+#ifndef _CONNECTIVITY_PARSE_SQLITERATOR_HXX_
-+#include "connectivity/sqliterator.hxx"
-+#endif
-+#ifndef _COM_SUN_STAR_SDBC_XRESULTSETMETADATA_HPP_
-+#include <com/sun/star/sdbc/XResultSetMetaData.hpp>
-+#endif
-+#ifndef _CPPUHELPER_IMPLBASE1_HXX_
-+#include <cppuhelper/implbase1.hxx>
-+#endif
-+
-+namespace connectivity
-+{
-+ namespace kab
-+ {
-+ /*
-+ ** KabResultSetMetaData
-+ */
-+ typedef ::cppu::WeakImplHelper1< ::com::sun::star::sdbc::XResultSetMetaData> KabResultSetMetaData_BASE;
-+
-+ class KabResultSetMetaData : public KabResultSetMetaData_BASE
-+ {
-+ KabConnection* m_pConnection;
-+ ::std::vector<sal_Int32> m_aKabFields; // for each selected column, contains the number
-+ // of the corresponding KAddressBook field
-+
-+ protected:
-+ virtual ~KabResultSetMetaData();
-+
-+ public:
-+ KabResultSetMetaData(KabConnection* _pConnection);
-+
-+ // avoid ambigous cast error from the compiler
-+ inline operator ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetMetaData > () throw()
-+ { return this; }
-+
-+ static sal_uInt32 findKabField(
-+ const ::rtl::OUString& columnName) throw(::com::sun::star::sdbc::SQLException);
-+ void setKabFields(
-+ const ::vos::ORef<connectivity::OSQLColumns> &xColumns) throw(::com::sun::star::sdbc::SQLException);
-+ inline sal_uInt32 fieldAtColumn(sal_Int32 columnIndex) const
-+ { return m_aKabFields[columnIndex - 1]; }
-+
-+ virtual sal_Int32 SAL_CALL getColumnCount( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isAutoIncrement( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isCaseSensitive( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isSearchable( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isCurrency( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL isNullable( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isSigned( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getColumnDisplaySize( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getColumnLabel( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getColumnName( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getSchemaName( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getPrecision( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getScale( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getTableName( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getCatalogName( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getColumnType( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getColumnTypeName( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isReadOnly( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isWritable( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL isDefinitelyWritable( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getColumnServiceName( sal_Int32 column ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ };
-+ }
-+}
-+
-+#endif // _CONNECTIVITY_KAB_RESULTSETMETADATA_HXX_
-Index: connectivity/source/drivers/kab/KServices.cxx
-===================================================================
-RCS file: connectivity/source/drivers/kab/KServices.cxx
-diff -N connectivity/source/drivers/kab/KServices.cxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/KServices.cxx 29 Aug 2005 08:43:53 -0000 1.1.2.1
-@@ -0,0 +1,213 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., July, 2005
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2005 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include "KDriver.hxx"
-+
-+#ifndef _CPPUHELPER_FACTORY_HXX_
-+#include <cppuhelper/factory.hxx>
-+#endif
-+#ifndef _OSL_DIAGNOSE_H_
-+#include <osl/diagnose.h>
-+#endif
-+
-+using namespace connectivity::kab;
-+using ::rtl::OUString;
-+using ::com::sun::star::uno::Reference;
-+using ::com::sun::star::uno::Sequence;
-+using ::com::sun::star::registry::XRegistryKey;
-+using ::com::sun::star::lang::XSingleServiceFactory;
-+using ::com::sun::star::lang::XMultiServiceFactory;
-+
-+typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
-+ (
-+ const Reference< XMultiServiceFactory > & rServiceManager,
-+ const OUString & rComponentName,
-+ ::cppu::ComponentInstantiation pCreateFunction,
-+ const Sequence< OUString > & rServiceNames,
-+ rtl_ModuleCount* _pTemp
-+ );
-+
-+//***************************************************************************************
-+//
-+// The following C Api must be provided!
-+// It consists in three functions that must be exported by the module
-+//
-+
-+//---------------------------------------------------------------------------------------
-+void REGISTER_PROVIDER(
-+ const OUString& aServiceImplName,
-+ const Sequence< OUString>& Services,
-+ const Reference< ::com::sun::star::registry::XRegistryKey > & xKey)
-+{
-+ OUString aMainKeyName;
-+ aMainKeyName = OUString::createFromAscii("/");
-+ aMainKeyName += aServiceImplName;
-+ aMainKeyName += OUString::createFromAscii("/UNO/SERVICES");
-+
-+ Reference< ::com::sun::star::registry::XRegistryKey > xNewKey( xKey->createKey(aMainKeyName) );
-+ OSL_ENSURE(xNewKey.is(), "KAB::component_writeInfo : could not create a registry key !");
-+
-+ for (sal_uInt32 i=0; i<Services.getLength(); ++i)
-+ xNewKey->createKey(Services[i]);
-+}
-+
-+
-+//---------------------------------------------------------------------------------------
-+struct ProviderRequest
-+{
-+ Reference< XSingleServiceFactory > xRet;
-+ Reference< XMultiServiceFactory > const xServiceManager;
-+ OUString const sImplementationName;
-+
-+ ProviderRequest(
-+ void* pServiceManager,
-+ sal_Char const* pImplementationName
-+ )
-+ : xServiceManager(reinterpret_cast<XMultiServiceFactory*>(pServiceManager))
-+ , sImplementationName(OUString::createFromAscii(pImplementationName))
-+ {
-+ }
-+
-+ inline
-+ sal_Bool CREATE_PROVIDER(
-+ const OUString& Implname,
-+ const Sequence< OUString > & Services,
-+ ::cppu::ComponentInstantiation Factory,
-+ createFactoryFunc creator
-+ )
-+ {
-+ if (!xRet.is() && (Implname == sImplementationName))
-+ try
-+ {
-+ xRet = creator( xServiceManager, sImplementationName,Factory, Services,0);
-+ }
-+ catch(...)
-+ {
-+ }
-+ return xRet.is();
-+ }
-+
-+ void* getProvider() const { return xRet.get(); }
-+};
-+
-+//---------------------------------------------------------------------------------------
-+
-+extern "C" void SAL_CALL component_getImplementationEnvironment(
-+ const sal_Char **ppEnvTypeName,
-+ uno_Environment **ppEnv
-+ )
-+{
-+ *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
-+}
-+
-+//---------------------------------------------------------------------------------------
-+extern "C" sal_Bool SAL_CALL component_writeInfo(
-+ void* pServiceManager,
-+ void* pRegistryKey
-+ )
-+{
-+ if (pRegistryKey)
-+ try
-+ {
-+ Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
-+
-+ REGISTER_PROVIDER(
-+ KabDriver::getImplementationName_Static(),
-+ KabDriver::getSupportedServiceNames_Static(), xKey);
-+
-+ return sal_True;
-+ }
-+ catch (::com::sun::star::registry::InvalidRegistryException& )
-+ {
-+ OSL_ENSURE(sal_False, "KAB::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
-+ }
-+
-+ return sal_False;
-+}
-+
-+//---------------------------------------------------------------------------------------
-+extern "C" void* SAL_CALL component_getFactory(
-+ const sal_Char* pImplementationName,
-+ void* pServiceManager,
-+ void* pRegistryKey)
-+{
-+ void* pRet = 0;
-+ if (pServiceManager)
-+ {
-+ ProviderRequest aReq(pServiceManager,pImplementationName);
-+
-+ aReq.CREATE_PROVIDER(
-+ KabDriver::getImplementationName_Static(),
-+ KabDriver::getSupportedServiceNames_Static(),
-+ KabDriver_CreateInstance,
-+ ::cppu::createSingleFactory)
-+ ;
-+
-+ if (aReq.xRet.is())
-+ aReq.xRet->acquire();
-+
-+ pRet = aReq.getProvider();
-+ }
-+
-+ return pRet;
-+};
-+
-+
-Index: connectivity/source/drivers/kab/KStatement.cxx
-===================================================================
-RCS file: connectivity/source/drivers/kab/KStatement.cxx
-diff -N connectivity/source/drivers/kab/KStatement.cxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/KStatement.cxx 2 Sep 2005 14:09:53 -0000 1.1.2.6
-@@ -0,0 +1,518 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., July, 2005
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2005 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include "KStatement.hxx"
-+#ifndef _CONNECTIVITY_KAB_CONNECTION_HXX_
-+#include "KConnection.hxx"
-+#endif
-+#ifndef _CONNECTIVITY_KAB_DRIVER_HXX_
-+#include "KDriver.hxx"
-+#endif
-+#ifndef _CONNECTIVITY_KAB_RESULTSET_HXX_
-+#include "KResultSet.hxx"
-+#endif
-+#ifndef _CONNECTIVITY_KAB_RESULTSETMETADATA_HXX_
-+#include "KResultSetMetaData.hxx"
-+#endif
-+#ifndef _CONNECTIVITY_KAB_CONDITION_HXX_
-+#include "KCondition.hxx"
-+#endif
-+
-+#ifndef CONNECTIVITY_CONNECTION_HXX
-+#include "TConnection.hxx"
-+#endif
-+#ifndef _DBHELPER_DBEXCEPTION_HXX_
-+#include <connectivity/dbexception.hxx>
-+#endif
-+
-+#if OSL_DEBUG_LEVEL > 0
-+# define OUtoCStr( x ) ( ::rtl::OUStringToOString ( (x), RTL_TEXTENCODING_ASCII_US).getStr())
-+#else /* OSL_DEBUG_LEVEL */
-+# define OUtoCStr( x ) ("dummy")
-+#endif /* OSL_DEBUG_LEVEL */
-+
-+using namespace connectivity::kab;
-+using namespace com::sun::star::uno;
-+using namespace com::sun::star::lang;
-+using namespace com::sun::star::beans;
-+using namespace com::sun::star::sdbc;
-+using namespace com::sun::star::sdbcx;
-+using namespace com::sun::star::container;
-+using namespace com::sun::star::io;
-+using namespace com::sun::star::util;
-+
-+IMPLEMENT_SERVICE_INFO(KabStatement, "com.sun.star.sdbc.drivers.KabStatement", "com.sun.star.sdbc.Statement");
-+//------------------------------------------------------------------------------
-+KabCommonStatement::KabCommonStatement(KabConnection* _pConnection )
-+ : KabCommonStatement_BASE(m_aMutex),
-+ OPropertySetHelper(KabCommonStatement_BASE::rBHelper),
-+ rBHelper(KabCommonStatement_BASE::rBHelper),
-+ m_pParseTree(NULL),
-+ m_aSQLIterator(_pConnection->createCatalog()->getTables(), _pConnection->getMetaData(), NULL),
-+ m_aParser(_pConnection->getDriver()->getMSFactory()),
-+ m_pConnection(_pConnection)
-+{
-+ m_pConnection->acquire();
-+}
-+// -----------------------------------------------------------------------------
-+KabCommonStatement::~KabCommonStatement()
-+{
-+}
-+// -----------------------------------------------------------------------------
-+KabCondition *KabCommonStatement::analyseWhereClause(const OSQLParseNode *pParseNode) const throw(SQLException)
-+{
-+ if (pParseNode->count() == 3)
-+ {
-+ const OSQLParseNode *pLeft = pParseNode->getChild(0),
-+ *pMiddle = pParseNode->getChild(1),
-+ *pRight = pParseNode->getChild(2);
-+
-+ // WHERE ( ... ) ?
-+ if (SQL_ISPUNCTUATION(pLeft, "(") && SQL_ISPUNCTUATION(pRight, ")"))
-+ {
-+ return analyseWhereClause(pMiddle);
-+ }
-+ else if (SQL_ISRULE(pParseNode, comparison_predicate))
-+ {
-+ if (pLeft->isToken() && pRight->isToken())
-+ {
-+ switch (pMiddle->getNodeType())
-+ {
-+ case SQL_NODE_EQUAL:
-+ // WHERE 0 = 1
-+ return new KabConditionConstant(pLeft->getTokenValue() == pRight->getTokenValue());
-+
-+ case SQL_NODE_NOTEQUAL:
-+ // WHERE 0 <> 1
-+ // (might not be correct SQL... don't care, handling anyway)
-+ return new KabConditionConstant(pLeft->getTokenValue() != pRight->getTokenValue());
-+ }
-+ }
-+ else if (SQL_ISRULE(pLeft, column_ref) && pRight->isToken())
-+ {
-+ ::rtl::OUString sColumnName,
-+ sTableRange,
-+ sMatchString;
-+
-+ m_aSQLIterator.getColumnRange(pLeft, sColumnName, sTableRange);
-+ sMatchString = pRight->getTokenValue();
-+
-+ switch (pMiddle->getNodeType())
-+ {
-+ case SQL_NODE_EQUAL:
-+ // WHERE Name = 'Smith'
-+ return new KabConditionEqual(sColumnName, sMatchString);
-+
-+ case SQL_NODE_NOTEQUAL:
-+ // WHERE Name <> 'Jones'
-+ return new KabConditionDifferent(sColumnName, sMatchString);
-+ }
-+ }
-+ }
-+ else if (SQL_ISRULE(pParseNode, search_condition))
-+ {
-+ if (SQL_ISTOKEN(pMiddle, OR))
-+ {
-+ // WHERE Name = 'Smith' OR Name = 'Jones'
-+ return new KabConditionOr(
-+ analyseWhereClause(pLeft),
-+ analyseWhereClause(pRight));
-+ }
-+ }
-+ else if (SQL_ISRULE(pParseNode, boolean_term))
-+ {
-+ if (SQL_ISTOKEN(pMiddle, AND))
-+ {
-+ // WHERE Name = 'Smith' AND "Given Name" = 'Peter'
-+ return new KabConditionAnd(
-+ analyseWhereClause(pLeft),
-+ analyseWhereClause(pRight));
-+ }
-+ }
-+ }
-+ else if (pParseNode->count() == 4)
-+ {
-+ const OSQLParseNode *pLeft = pParseNode->getChild(0),
-+ *pMiddleLeft = pParseNode->getChild(1),
-+ *pMiddleRight = pParseNode->getChild(2),
-+ *pRight = pParseNode->getChild(3);
-+
-+ if (SQL_ISRULE(pParseNode, test_for_null))
-+ {
-+ if (SQL_ISRULE(pLeft, column_ref) &&
-+ SQL_ISTOKEN(pMiddleLeft, IS) &&
-+ SQL_ISTOKEN(pRight, NULL))
-+ {
-+ ::rtl::OUString sColumnName,
-+ sTableRange;
-+
-+ m_aSQLIterator.getColumnRange(pLeft, sColumnName, sTableRange);
-+
-+ if (SQL_ISTOKEN(pMiddleRight, NOT))
-+ {
-+ // WHERE "Mobile Phone" IS NOT NULL
-+ return new KabConditionNotNull(sColumnName);
-+ }
-+ else
-+ {
-+ // WHERE "Mobile Phone" IS NULL
-+ return new KabConditionNull(sColumnName);
-+ }
-+ }
-+ }
-+ else if (SQL_ISRULE(pParseNode, like_predicate))
-+ {
-+ if (SQL_ISRULE(pLeft, column_ref) && pMiddleRight->getNodeType() == SQL_NODE_STRING)
-+ {
-+ ::rtl::OUString sColumnName,
-+ sTableRange,
-+ sMatchString;
-+
-+ m_aSQLIterator.getColumnRange(pLeft, sColumnName, sTableRange);
-+ sMatchString = pMiddleRight->getTokenValue();
-+
-+ // WHERE Name LIKE 'Sm%'
-+ return new KabConditionSimilar(sColumnName, sMatchString);
-+ }
-+ }
-+ }
-+ ::dbtools::throwGenericSQLException(
-+ ::rtl::OUString::createFromAscii("Syntax error or keyword not recognized."),
-+ NULL);
-+}
-+//------------------------------------------------------------------------------
-+sal_Bool KabCommonStatement::isTableKnown(KabResultSet *pResult) const
-+{
-+ // can handle requests like SELECT * FROM addresses addresses
-+ // but cannot handle requests like SELECT * FROM addresses persons
-+ if (m_aSQLIterator.getTables().size() != 1)
-+ return sal_False;
-+
-+ if (m_aSQLIterator.getTables().begin()->first != pResult->getMetaData()->getTableName(0))
-+ return sal_False;
-+
-+ return sal_True;
-+}
-+//------------------------------------------------------------------------------
-+void KabCommonStatement::setKabFields(KabResultSet *pResult) const throw(SQLException)
-+{
-+ ::vos::ORef<connectivity::OSQLColumns> xColumns; // selected columns
-+ KabResultSetMetaData *pMeta; // meta information - holds the list of KAddressBook fields
-+
-+ xColumns = m_aSQLIterator.getSelectColumns();
-+ if (!xColumns.isValid())
-+ {
-+ ::dbtools::throwGenericSQLException(
-+ ::rtl::OUString::createFromAscii("Invalid selection of columns"),
-+ NULL);
-+ }
-+ pMeta = (KabResultSetMetaData *) pResult->getMetaData().get();
-+ pMeta->setKabFields(xColumns);
-+}
-+// -------------------------------------------------------------------------
-+void KabCommonStatement::selectAddressees(KabResultSet *pResult) const throw(SQLException)
-+{
-+ const OSQLParseNode *pParseNode;
-+ KabCondition *pCondition;
-+
-+ pParseNode = m_aSQLIterator.getWhereTree();
-+ if (pParseNode != NULL)
-+ {
-+ if (SQL_ISRULE(pParseNode, where_clause))
-+ {
-+ pParseNode = pParseNode->getChild(1);
-+ pCondition = analyseWhereClause(pParseNode);
-+ if (pCondition->isAlwaysTrue())
-+ pResult->allKabAddressees();
-+ else if (!pCondition->isAlwaysFalse())
-+ pResult->someKabAddressees(pCondition);
-+ delete pCondition;
-+ return;
-+ }
-+ }
-+
-+ // no WHERE clause: get all rows
-+ pResult->allKabAddressees();
-+}
-+//-----------------------------------------------------------------------------
-+Any SAL_CALL KabCommonStatement::queryInterface( const Type & rType ) throw(RuntimeException)
-+{
-+ Any aRet = KabCommonStatement_BASE::queryInterface(rType);
-+ if (!aRet.hasValue())
-+ aRet = OPropertySetHelper::queryInterface(rType);
-+ return aRet;
-+}
-+// -------------------------------------------------------------------------
-+Sequence< Type > SAL_CALL KabCommonStatement::getTypes( ) throw(RuntimeException)
-+{
-+ ::cppu::OTypeCollection aTypes( ::getCppuType( (const Reference< XMultiPropertySet > *)0 ),
-+ ::getCppuType( (const Reference< XFastPropertySet > *)0 ),
-+ ::getCppuType( (const Reference< XPropertySet > *)0 ));
-+
-+ return comphelper::concatSequences(aTypes.getTypes(),KabCommonStatement_BASE::getTypes());
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabCommonStatement::cancel( ) throw(RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+ // cancel the current sql statement
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabCommonStatement::close( ) throw(SQLException, RuntimeException)
-+{
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+ }
-+ dispose();
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool SAL_CALL KabCommonStatement::execute(
-+ const ::rtl::OUString& sql ) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+ Reference< XResultSet > xRS = executeQuery(sql);
-+
-+ return xRS.is();
-+}
-+// -------------------------------------------------------------------------
-+Reference< XResultSet > SAL_CALL KabCommonStatement::executeQuery(
-+ const ::rtl::OUString& sql ) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+OSL_TRACE("KDE Address book - SQL Request: %s", OUtoCStr(sql));
-+
-+ KabResultSet* pResult = new KabResultSet(this);
-+ Reference< XResultSet > xRS = pResult;
-+ ::rtl::OUString aErr;
-+
-+ m_pParseTree = m_aParser.parseTree(aErr, sql);
-+ if (m_pParseTree == NULL)
-+ throw SQLException(aErr, *this, ::rtl::OUString(), 0, Any());
-+// the above line is copied from another driver, but I did not succeed in
-+// triggering a single case where m_ParseTree was NULL or where aErr was not empty
-+
-+ m_aSQLIterator.setParseTree(m_pParseTree);
-+ m_aSQLIterator.traverseAll();
-+ switch (m_aSQLIterator.getStatementType())
-+ {
-+ case SQL_STATEMENT_SELECT:
-+ if (isTableKnown(pResult)) // FROM which table ?
-+ {
-+ setKabFields(pResult); // SELECT which columns ?
-+ selectAddressees(pResult); // WHERE which condition ?
-+// To be continued: ORDER BY "Name",
-+// DISTINCT
-+// etc...
-+ }
-+ break;
-+
-+ default:
-+// To be continued: UPDATE
-+// DELETE
-+// etc...
-+ ::dbtools::throwGenericSQLException(
-+ ::rtl::OUString::createFromAscii("Unsupported SQL statement"),
-+ NULL);
-+ }
-+
-+ return xRS;
-+}
-+// -------------------------------------------------------------------------
-+Reference< XConnection > SAL_CALL KabCommonStatement::getConnection( ) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+ // just return our connection here
-+ return (Reference< XConnection >) m_pConnection;
-+}
-+// -------------------------------------------------------------------------
-+sal_Int32 SAL_CALL KabCommonStatement::executeUpdate( const ::rtl::OUString& sql ) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+ // the return values gives information about how many rows are affected by executing the sql statement
-+ return 0;
-+}
-+// -------------------------------------------------------------------------
-+Any SAL_CALL KabCommonStatement::getWarnings( ) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+ return makeAny(m_aLastWarning);
-+}
-+// -------------------------------------------------------------------------
-+void SAL_CALL KabCommonStatement::clearWarnings( ) throw(SQLException, RuntimeException)
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+ checkDisposed(KabCommonStatement_BASE::rBHelper.bDisposed);
-+
-+ m_aLastWarning = SQLWarning();
-+}
-+// -------------------------------------------------------------------------
-+::cppu::IPropertyArrayHelper* KabCommonStatement::createArrayHelper( ) const
-+{
-+ // this properties are defined by the service statement
-+ // they must be in alphabetic order
-+ Sequence< Property > aProps(10);
-+ Property* pProperties = aProps.getArray();
-+ sal_Int32 nPos = 0;
-+ DECL_PROP0(CURSORNAME, ::rtl::OUString);
-+ DECL_BOOL_PROP0(ESCAPEPROCESSING);
-+ DECL_PROP0(FETCHDIRECTION,sal_Int32);
-+ DECL_PROP0(FETCHSIZE, sal_Int32);
-+ DECL_PROP0(MAXFIELDSIZE,sal_Int32);
-+ DECL_PROP0(MAXROWS, sal_Int32);
-+ DECL_PROP0(QUERYTIMEOUT,sal_Int32);
-+ DECL_PROP0(RESULTSETCONCURRENCY,sal_Int32);
-+ DECL_PROP0(RESULTSETTYPE,sal_Int32);
-+ DECL_BOOL_PROP0(USEBOOKMARKS);
-+
-+ return new ::cppu::OPropertyArrayHelper(aProps);
-+}
-+// -------------------------------------------------------------------------
-+::cppu::IPropertyArrayHelper & KabCommonStatement::getInfoHelper()
-+{
-+ return *const_cast<KabCommonStatement*>(this)->getArrayHelper();
-+}
-+// -------------------------------------------------------------------------
-+sal_Bool KabCommonStatement::convertFastPropertyValue(
-+ Any & rConvertedValue,
-+ Any & rOldValue,
-+ sal_Int32 nHandle,
-+ const Any& rValue) throw (::com::sun::star::lang::IllegalArgumentException)
-+{
-+ sal_Bool bConverted = sal_False;
-+ // here we have to try to convert
-+OSL_ENSURE(false, "KabCommonStatement::convertFastPropertyValue is not implemented!");
-+ return bConverted;
-+}
-+// -------------------------------------------------------------------------
-+void KabCommonStatement::setFastPropertyValue_NoBroadcast(sal_Int32 nHandle,const Any& rValue) throw (Exception)
-+{
-+ // set the value to whatever is nescessary
-+ switch (nHandle)
-+ {
-+ case PROPERTY_ID_QUERYTIMEOUT:
-+ case PROPERTY_ID_MAXFIELDSIZE:
-+ case PROPERTY_ID_MAXROWS:
-+ case PROPERTY_ID_CURSORNAME:
-+ case PROPERTY_ID_RESULTSETCONCURRENCY:
-+ case PROPERTY_ID_RESULTSETTYPE:
-+ case PROPERTY_ID_FETCHDIRECTION:
-+ case PROPERTY_ID_FETCHSIZE:
-+ case PROPERTY_ID_ESCAPEPROCESSING:
-+ case PROPERTY_ID_USEBOOKMARKS:
-+ default:
-+ ;
-+ }
-+OSL_ENSURE(false, "KabCommonStatement::setFastPropertyValue_NoBroadcast is not implemented!");
-+}
-+// -------------------------------------------------------------------------
-+void KabCommonStatement::getFastPropertyValue(Any& rValue,sal_Int32 nHandle) const
-+{
-+ switch (nHandle)
-+ {
-+ case PROPERTY_ID_QUERYTIMEOUT:
-+ case PROPERTY_ID_MAXFIELDSIZE:
-+ case PROPERTY_ID_MAXROWS:
-+ case PROPERTY_ID_CURSORNAME:
-+ case PROPERTY_ID_RESULTSETCONCURRENCY:
-+ case PROPERTY_ID_RESULTSETTYPE:
-+ case PROPERTY_ID_FETCHDIRECTION:
-+ case PROPERTY_ID_FETCHSIZE:
-+ case PROPERTY_ID_ESCAPEPROCESSING:
-+ case PROPERTY_ID_USEBOOKMARKS:
-+ default:
-+ ;
-+ }
-+OSL_ENSURE(false, "KabCommonStatement::getFastPropertyValue is not implemented!");
-+}
-+// -----------------------------------------------------------------------------
-+void SAL_CALL KabCommonStatement::acquire() throw()
-+{
-+ KabCommonStatement_BASE::acquire();
-+}
-+// -----------------------------------------------------------------------------
-+void SAL_CALL KabCommonStatement::release() throw()
-+{
-+ KabCommonStatement_BASE::release();
-+}
-+// -----------------------------------------------------------------------------
-+Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL KabCommonStatement::getPropertySetInfo( ) throw(RuntimeException)
-+{
-+ return ::cppu::OPropertySetHelper::createPropertySetInfo(getInfoHelper());
-+}
-+// -----------------------------------------------------------------------------
-+KabStatement::KabStatement(KabConnection* _pConnection)
-+ : KabStatement_BASE(_pConnection)
-+{
-+}
-Index: connectivity/source/drivers/kab/KStatement.hxx
-===================================================================
-RCS file: connectivity/source/drivers/kab/KStatement.hxx
-diff -N connectivity/source/drivers/kab/KStatement.hxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/KStatement.hxx 1 Sep 2005 17:11:30 -0000 1.1.2.3
-@@ -0,0 +1,215 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., July, 2005
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2005 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CONNECTIVITY_KAB_STATEMENT_HXX_
-+#define _CONNECTIVITY_KAB_STATEMENT_HXX_
-+
-+#ifndef _CONNECTIVITY_KAB_CONNECTION_HXX_
-+#include "KConnection.hxx"
-+#endif
-+#include <list>
-+
-+#ifndef _CONNECTIVITY_PARSE_SQLITERATOR_HXX_
-+#include "connectivity/sqliterator.hxx"
-+#endif
-+#ifndef _CONNECTIVITY_PARSE_SQLPARSE_HXX_
-+#include "connectivity/sqlparse.hxx"
-+#endif
-+#ifndef _COM_SUN_STAR_SDBC_XSTATEMENT_HPP_
-+#include <com/sun/star/sdbc/XStatement.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_UTIL_XCANCELLABLE_HPP_
-+#include <com/sun/star/util/XCancellable.hpp>
-+#endif
-+#ifndef _CPPUHELPER_COMPBASE4_HXX_
-+#include <cppuhelper/compbase4.hxx>
-+#endif
-+#ifndef _CPPUHELPER_IMPLBASE1_HXX_
-+#include <cppuhelper/implbase1.hxx>
-+#endif
-+#ifndef _COMPHELPER_PROPERTY_ARRAY_HELPER_HXX_
-+#include <comphelper/proparrhlp.hxx>
-+#endif
-+
-+namespace connectivity
-+{
-+ namespace kab
-+ {
-+ typedef ::cppu::WeakComponentImplHelper4< ::com::sun::star::sdbc::XStatement,
-+ ::com::sun::star::sdbc::XWarningsSupplier,
-+ ::com::sun::star::util::XCancellable,
-+ ::com::sun::star::sdbc::XCloseable> KabCommonStatement_BASE;
-+
-+ //**************************************************************
-+ // Class KabCommonStatement
-+ // is a base class for the normal statement and for the prepared statement
-+ //**************************************************************
-+ class KabCommonStatement : public comphelper::OBaseMutex,
-+ public KabCommonStatement_BASE,
-+ public ::cppu::OPropertySetHelper,
-+ public comphelper::OPropertyArrayUsageHelper<KabCommonStatement>
-+
-+ {
-+ ::com::sun::star::sdbc::SQLWarning m_aLastWarning;
-+
-+ protected:
-+ ::std::list< ::rtl::OUString> m_aBatchList;
-+ connectivity::OSQLParser m_aParser;
-+ connectivity::OSQLParseTreeIterator m_aSQLIterator;
-+ connectivity::OSQLParseNode* m_pParseTree;
-+ KabConnection* m_pConnection; // The owning Connection object
-+
-+ protected:
-+ class KabCondition *analyseWhereClause(
-+ const OSQLParseNode *pParseNode) const throw(::com::sun::star::sdbc::SQLException);
-+ sal_Bool isTableKnown(class KabResultSet *pResult) const;
-+ void setKabFields(class KabResultSet *pResult) const throw(::com::sun::star::sdbc::SQLException);
-+ void selectAddressees(KabResultSet *pResult) const throw(::com::sun::star::sdbc::SQLException);
-+
-+ // OPropertyArrayUsageHelper
-+ virtual ::cppu::IPropertyArrayHelper* createArrayHelper() const;
-+
-+ // OPropertySetHelper
-+ virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper();
-+ virtual sal_Bool SAL_CALL convertFastPropertyValue(
-+ ::com::sun::star::uno::Any & rConvertedValue,
-+ ::com::sun::star::uno::Any & rOldValue,
-+ sal_Int32 nHandle,
-+ const ::com::sun::star::uno::Any& rValue) throw (::com::sun::star::lang::IllegalArgumentException);
-+ virtual void SAL_CALL setFastPropertyValue_NoBroadcast(
-+ sal_Int32 nHandle,
-+ const ::com::sun::star::uno::Any& rValue) throw (::com::sun::star::uno::Exception);
-+ virtual void SAL_CALL getFastPropertyValue(
-+ ::com::sun::star::uno::Any& rValue,
-+ sal_Int32 nHandle) const;
-+ virtual ~KabCommonStatement();
-+
-+ public:
-+ ::cppu::OBroadcastHelper& rBHelper;
-+
-+ KabCommonStatement(KabConnection *_pConnection);
-+ using KabCommonStatement_BASE::operator ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >;
-+
-+ // OComponentHelper
-+ virtual void SAL_CALL disposing(void){KabCommonStatement_BASE::disposing();}
-+
-+ // XInterface
-+ virtual void SAL_CALL release() throw();
-+ virtual void SAL_CALL acquire() throw();
-+ virtual ::com::sun::star::uno::Any SAL_CALL queryInterface(
-+ const ::com::sun::star::uno::Type & rType
-+ ) throw(::com::sun::star::uno::RuntimeException);
-+
-+ // XTypeProvider
-+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes(
-+ ) throw(::com::sun::star::uno::RuntimeException);
-+
-+ // XPropertySet
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo(
-+ ) throw(::com::sun::star::uno::RuntimeException);
-+
-+ // XStatement
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet > SAL_CALL executeQuery(
-+ const ::rtl::OUString& sql ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL executeUpdate(
-+ const ::rtl::OUString& sql ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL execute(
-+ const ::rtl::OUString& sql ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > SAL_CALL getConnection(
-+ ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+ // XWarningsSupplier
-+ virtual ::com::sun::star::uno::Any SAL_CALL getWarnings(
-+ ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL clearWarnings(
-+ ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+ // XCancellable
-+ virtual void SAL_CALL cancel(
-+ ) throw(::com::sun::star::uno::RuntimeException);
-+
-+ // XCloseable
-+ virtual void SAL_CALL close(
-+ ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
-+
-+ // other methods
-+ inline KabConnection* getOwnConnection() const { return m_pConnection; }
-+ };
-+
-+ //**************************************************************
-+ // Class KabStatement
-+ //**************************************************************
-+ typedef ::cppu::ImplInheritanceHelper1<
-+ KabCommonStatement, ::com::sun::star::lang::XServiceInfo > KabStatement_BASE;
-+
-+ class KabStatement : public KabStatement_BASE
-+ {
-+ protected:
-+ virtual ~KabStatement() { }
-+
-+ public:
-+ KabStatement(KabConnection* _pConnection);
-+ DECLARE_SERVICE_INFO();
-+ };
-+ }
-+}
-+
-+#endif // _CONNECTIVITY_KAB_STATEMENT_HXX_
-Index: connectivity/source/drivers/kab/KTable.cxx
-===================================================================
-RCS file: connectivity/source/drivers/kab/KTable.cxx
-diff -N connectivity/source/drivers/kab/KTable.cxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/KTable.cxx 30 Aug 2005 15:36:25 -0000 1.1.2.2
-@@ -0,0 +1,133 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., July, 2005
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2005 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include "KTable.hxx"
-+#ifndef _CONNECTIVITY_KAB_TABLES_HXX_
-+#include "KTables.hxx"
-+#endif
-+#ifndef _CONNECTIVITY_KAB_COLUMNS_HXX_
-+#include "KColumns.hxx"
-+#endif
-+#ifndef _CONNECTIVITY_KAB_CATALOG_HXX_
-+#include "KCatalog.hxx"
-+#endif
-+
-+using namespace connectivity::kab;
-+using namespace connectivity;
-+using namespace ::comphelper;
-+using namespace ::com::sun::star::uno;
-+using namespace ::com::sun::star::beans;
-+using namespace ::com::sun::star::sdbcx;
-+using namespace ::com::sun::star::sdbc;
-+using namespace ::com::sun::star::container;
-+using namespace ::com::sun::star::lang;
-+
-+// -------------------------------------------------------------------------
-+KabTable::KabTable( sdbcx::OCollection* _pTables, KabConnection* _pConnection)
-+ : KabTable_TYPEDEF(_pTables, sal_True),
-+ m_pConnection(_pConnection)
-+{
-+ construct();
-+}
-+// -------------------------------------------------------------------------
-+KabTable::KabTable( sdbcx::OCollection* _pTables,
-+ KabConnection* _pConnection,
-+ const ::rtl::OUString& _Name,
-+ const ::rtl::OUString& _Type,
-+ const ::rtl::OUString& _Description ,
-+ const ::rtl::OUString& _SchemaName,
-+ const ::rtl::OUString& _CatalogName
-+ ) : KabTable_TYPEDEF(_pTables,sal_True,
-+ _Name,
-+ _Type,
-+ _Description,
-+ _SchemaName,
-+ _CatalogName),
-+ m_pConnection(_pConnection)
-+{
-+ construct();
-+}
-+// -------------------------------------------------------------------------
-+void KabTable::refreshColumns()
-+{
-+ TStringVector aVector;
-+
-+ if (!isNew())
-+ {
-+ Reference< XResultSet > xResult = m_pConnection->getMetaData()->getColumns(
-+ Any(),
-+ m_SchemaName,
-+ m_Name,
-+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%")));
-+
-+ if (xResult.is())
-+ {
-+ Reference< XRow > xRow(xResult, UNO_QUERY);
-+ while (xResult->next())
-+ aVector.push_back(xRow->getString(4));
-+ }
-+ }
-+
-+ if (m_pColumns)
-+ m_pColumns->reFill(aVector);
-+ else
-+ m_pColumns = new KabColumns(this,m_aMutex,aVector);
-+}
-Index: connectivity/source/drivers/kab/KTable.hxx
-===================================================================
-RCS file: connectivity/source/drivers/kab/KTable.hxx
-diff -N connectivity/source/drivers/kab/KTable.hxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/KTable.hxx 30 Aug 2005 15:36:26 -0000 1.1.2.2
-@@ -0,0 +1,107 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., July, 2005
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2005 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CONNECTIVITY_KAB_TABLE_HXX_
-+#define _CONNECTIVITY_KAB_TABLE_HXX_
-+
-+#ifndef _CONNECTIVITY_KAB_CONNECTION_HXX_
-+#include "KConnection.hxx"
-+#endif
-+
-+#ifndef _CONNECTIVITY_SDBCX_TABLE_HXX_
-+#include "connectivity/sdbcx/VTable.hxx"
-+#endif
-+
-+namespace connectivity
-+{
-+ namespace kab
-+ {
-+ typedef connectivity::sdbcx::OTable KabTable_TYPEDEF;
-+
-+ ::rtl::OUString getTypeString(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xColProp);
-+
-+ class KabTable : public KabTable_TYPEDEF
-+ {
-+ ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData > m_xMetaData;
-+ KabConnection* m_pConnection;
-+
-+ public:
-+ KabTable( sdbcx::OCollection* _pTables, KabConnection* _pConnection);
-+ KabTable( sdbcx::OCollection* _pTables,
-+ KabConnection* _pConnection,
-+ const ::rtl::OUString& _Name,
-+ const ::rtl::OUString& _Type,
-+ const ::rtl::OUString& _Description = ::rtl::OUString(),
-+ const ::rtl::OUString& _SchemaName = ::rtl::OUString(),
-+ const ::rtl::OUString& _CatalogName = ::rtl::OUString()
-+ );
-+
-+ KabConnection* getConnection() { return m_pConnection;}
-+
-+ virtual void refreshColumns();
-+
-+ ::rtl::OUString getTableName() const { return m_Name; }
-+ ::rtl::OUString getSchema() const { return m_SchemaName; }
-+ };
-+ }
-+}
-+
-+#endif // _CONNECTIVITY_KAB_TABLE_HXX_
-Index: connectivity/source/drivers/kab/KTables.cxx
-===================================================================
-RCS file: connectivity/source/drivers/kab/KTables.cxx
-diff -N connectivity/source/drivers/kab/KTables.cxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/KTables.cxx 29 Aug 2005 08:43:55 -0000 1.1.2.1
-@@ -0,0 +1,130 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., July, 2005
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2005 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include "KTables.hxx"
-+#ifndef _CONNECTIVITY_KAB_TABLE_HXX_
-+#include "KTable.hxx"
-+#endif
-+#ifndef _CONNECTIVITY_KAB_CATALOG_HXX_
-+#include "KCatalog.hxx"
-+#endif
-+#ifndef _CONNECTIVITY_KAB_CONNECTION_HXX_
-+#include "KConnection.hxx"
-+#endif
-+
-+#ifndef _COMPHELPER_TYPES_HXX_
-+#include <comphelper/types.hxx>
-+#endif
-+
-+using namespace connectivity::kab;
-+using namespace connectivity;
-+using namespace ::comphelper;
-+using namespace ::cppu;
-+using namespace ::com::sun::star::uno;
-+using namespace ::com::sun::star::beans;
-+using namespace ::com::sun::star::sdbcx;
-+using namespace ::com::sun::star::sdbc;
-+using namespace ::com::sun::star::container;
-+using namespace ::com::sun::star::lang;
-+
-+sdbcx::ObjectType KabTables::createObject(const ::rtl::OUString& _rName)
-+{
-+ ::rtl::OUString aName,aSchema;
-+ aSchema = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("%"));
-+ aName = _rName;
-+
-+ Sequence< ::rtl::OUString > aTypes(1);
-+ aTypes[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("%"));
-+ ::rtl::OUString sEmpty;
-+
-+ Reference< XResultSet > xResult = m_xMetaData->getTables(Any(), aSchema, aName, aTypes);
-+
-+ sdbcx::ObjectType xRet = NULL;
-+ if (xResult.is())
-+ {
-+ Reference< XRow > xRow(xResult, UNO_QUERY);
-+ if (xResult->next()) // there can be only one table with this name
-+ {
-+ KabTable* pRet = new KabTable(
-+ this,
-+ static_cast<KabCatalog&>(m_rParent).getConnection(),
-+ aName,
-+ xRow->getString(4),
-+ xRow->getString(5),
-+ sEmpty);
-+ xRet = pRet;
-+ }
-+ }
-+ ::comphelper::disposeComponent(xResult);
-+
-+ return xRet;
-+}
-+// -------------------------------------------------------------------------
-+void KabTables::impl_refresh( ) throw(RuntimeException)
-+{
-+ static_cast<KabCatalog&>(m_rParent).refreshTables();
-+}
-+// -------------------------------------------------------------------------
-+void KabTables::disposing(void)
-+{
-+ m_xMetaData = NULL;
-+ OCollection::disposing();
-+}
-Index: connectivity/source/drivers/kab/KTables.hxx
-===================================================================
-RCS file: connectivity/source/drivers/kab/KTables.hxx
-diff -N connectivity/source/drivers/kab/KTables.hxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/KTables.hxx 29 Aug 2005 08:43:55 -0000 1.1.2.1
-@@ -0,0 +1,99 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., July, 2005
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2005 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CONNECTIVITY_KAB_TABLES_HXX_
-+#define _CONNECTIVITY_KAB_TABLES_HXX_
-+
-+#ifndef _CONNECTIVITY_SDBCX_COLLECTION_HXX_
-+#include "connectivity/sdbcx/VCollection.hxx"
-+#endif
-+#ifndef _COM_SUN_STAR_SDBC_XDATABASEMETADATA_HPP_
-+#include <com/sun/star/sdbc/XDatabaseMetaData.hpp>
-+#endif
-+
-+namespace connectivity
-+{
-+ namespace kab
-+ {
-+ class KabTables : public sdbcx::OCollection
-+ {
-+ ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData > m_xMetaData;
-+
-+ protected:
-+ virtual sdbcx::ObjectType createObject(const ::rtl::OUString& _rName);
-+ virtual void impl_refresh() throw(::com::sun::star::uno::RuntimeException);
-+
-+ public:
-+ KabTables(
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData >& _rMetaData,
-+ ::cppu::OWeakObject& _rParent,
-+ ::osl::Mutex& _rMutex,
-+ const TStringVector &_rVector)
-+ : sdbcx::OCollection(_rParent,sal_True,_rMutex,_rVector),
-+ m_xMetaData(_rMetaData)
-+ { }
-+
-+ virtual void SAL_CALL disposing(void);
-+ };
-+ }
-+}
-+
-+#endif // _CONNECTIVITY_KAB_TABLES_HXX_
-Index: connectivity/source/drivers/kab/exports.dxp
-===================================================================
-RCS file: connectivity/source/drivers/kab/exports.dxp
-diff -N connectivity/source/drivers/kab/exports.dxp
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/exports.dxp 29 Aug 2005 08:43:56 -0000 1.1.2.1
-@@ -0,0 +1,3 @@
-+component_getImplementationEnvironment
-+component_writeInfo
-+component_getFactory
-Index: connectivity/source/drivers/kab/kab.map
-===================================================================
-RCS file: connectivity/source/drivers/kab/kab.map
-diff -N connectivity/source/drivers/kab/kab.map
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/kab.map 29 Aug 2005 08:43:56 -0000 1.1.2.1
-@@ -0,0 +1,8 @@
-+KAB_1_0 {
-+ global:
-+ component_getImplementationEnvironment;
-+ component_writeInfo;
-+ component_getFactory;
-+ local:
-+ *;
-+};
-Index: connectivity/source/drivers/kab/kab.xml
-===================================================================
-RCS file: connectivity/source/drivers/kab/kab.xml
-diff -N connectivity/source/drivers/kab/kab.xml
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/kab.xml 29 Aug 2005 08:43:56 -0000 1.1.2.1
-@@ -0,0 +1,79 @@
-+<?xml version='1.0' encoding="UTF-8"?>
-+<!DOCTYPE COMPONENTDESCRIPTION PUBLIC "-//W3C//DTD HTML 3.2//EN" "module-description.dtd">
-+<module-description xmlns:xlink="http://www.w3.org/1999/xlink">
-+ <module-name> kab1 </module-name>
-+ <component-description>
-+ <Author>Eric Bischoff</Author>
-+ <Name>com.sun.star.comp.sdbc.kab.Driver</Name>
-+ <description>This library implements the database driver for KDE address book formats.</description>
-+ <loader-name>com.sun.star.loader.SharedLibrary</loader-name>
-+ <language>c++</language>
-+ <status value="final"/>
-+ <supported-service>com.sun.star.sdbc.Driver</supported-service>
-+ <service-dependency> ... </service-dependency>
-+ </component-description>
-+ <project-build-dependency> cppuhelper </project-build-dependency>
-+ <project-build-dependency> cppu </project-build-dependency>
-+ <project-build-dependency> sal </project-build-dependency>
-+ <project-build-dependency> vos </project-build-dependency>
-+
-+ <runtime-module-dependency> cppuhelper </runtime-module-dependency>
-+ <runtime-module-dependency> cppu1 </runtime-module-dependency>
-+ <runtime-module-dependency> sal1 </runtime-module-dependency>
-+ <runtime-module-dependency> vos </runtime-module-dependency>
-+
-+ <type> com.sun.star.registry.XRegistryKey </type>
-+ <type> com.sun.star.util.XCancellable </type>
-+ <type> com.sun.star.util.XNumberFormatter </type>
-+ <type> com.sun.star.uno.TypeClass </type>
-+ <type> com.sun.star.uno.XWeak </type>
-+ <type> com.sun.star.uno.XAggregation </type>
-+ <type> com.sun.star.uno.XComponentContext </type>
-+ <type> com.sun.star.beans.PropertyAttribute </type>
-+ <type> com.sun.star.beans.XPropertyState </type>
-+ <type> com.sun.star.beans.XPropertySet </type>
-+ <type> com.sun.star.beans.PropertyValue </type>
-+ <type> com.sun.star.beans.XMultiPropertySet </type>
-+ <type> com.sun.star.beans.XFastPropertySet </type>
-+ <type> com.sun.star.lang.XSingleServiceFactory </type>
-+ <type> com.sun.star.lang.XTypeProvider </type>
-+ <type> com.sun.star.lang.XSingleComponentFactory </type>
-+ <type> com.sun.star.lang.EventObject </type>
-+ <type> com.sun.star.lang.XComponent </type>
-+ <type> com.sun.star.lang.IllegalArgumentException </type>
-+ <type> com.sun.star.lang.DisposedException </type>
-+ <type> com.sun.star.lang.XMultiServiceFactory </type>
-+ <type> com.sun.star.lang.XServiceInfo </type>
-+ <type> com.sun.star.lang.XUnoTunnel </type>
-+ <type> com.sun.star.java.XJavaThreadRegister_11 </type>
-+ <type> com.sun.star.java.XJavaVM </type>
-+ <type> com.sun.star.sdbc.FetchDirection </type>
-+ <type> com.sun.star.sdbc.XConnection </type>
-+ <type> com.sun.star.sdbc.XStatement </type>
-+ <type> com.sun.star.sdbc.XResultSet </type>
-+ <type> com.sun.star.sdbc.XResultSetMetaDataSupplier</type>
-+ <type> com.sun.star.sdbc.XColumnLocate </type>
-+ <type> com.sun.star.sdbc.XResultSetUpdate </type>
-+ <type> com.sun.star.sdbc.XWarningsSupplier </type>
-+ <type> com.sun.star.sdbc.XRowUpdate </type>
-+ <type> com.sun.star.sdbc.XMultipleResults </type>
-+ <type> com.sun.star.sdbc.XBatchExecution </type>
-+ <type> com.sun.star.sdbc.XPreparedBatchExecution </type>
-+ <type> com.sun.star.sdbc.XParameters </type>
-+ <type> com.sun.star.sdbc.XOutParameters </type>
-+ <type> com.sun.star.sdbc.DriverPropertyInfo </type>
-+ <type> com.sun.star.sdbc.SQLWarning </type>
-+ <type> com.sun.star.sdbc.XRow </type>
-+ <type> com.sun.star.sdbc.ColumnSearch </type>
-+ <type> com.sun.star.sdbc.ColumnValue </type>
-+ <type> com.sun.star.sdbc.DataType </type>
-+ <type> com.sun.star.sdbc.XDriver </type>
-+ <type> com.sun.star.sdbc.TransactionIsolation </type>
-+ <type> com.sun.star.sdbc.ResultSetType </type>
-+ <type> com.sun.star.sdbc.ResultSetConcurrency </type>
-+ <type> com.sun.star.sdbcx.XRowLocate </type>
-+ <type> com.sun.star.sdbcx.XDeleteRows </type>
-+ <type> com.sun.star.sdbcx.CompareBookmark </type>
-+ <type> com.sun.star.sdb.XColumnUpdate </type>
-+ <type> com.sun.star.sdb.XColumn </type>
-+</module-description>
-Index: connectivity/source/drivers/kab/makefile.mk
-===================================================================
-RCS file: connectivity/source/drivers/kab/makefile.mk
-diff -N connectivity/source/drivers/kab/makefile.mk
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ connectivity/source/drivers/kab/makefile.mk 31 Aug 2005 08:30:37 -0000 1.1.2.4
-@@ -0,0 +1,151 @@
-+#*************************************************************************
-+#
-+# $RCSfile$
-+#
-+# $Revision$
-+#
-+# last change: $Author$ $Date$
-+#
-+# The Contents of this file are made available subject to the terms of
-+# either of the following licenses
-+#
-+# - GNU Lesser General Public License Version 2.1
-+# - Sun Industry Standards Source License Version 1.1
-+#
-+# Sun Microsystems Inc., July, 2005
-+#
-+# GNU Lesser General Public License Version 2.1
-+# =============================================
-+# Copyright 2005 by Sun Microsystems, Inc.
-+# 901 San Antonio Road, Palo Alto, CA 94303, USA
-+#
-+# This library is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU Lesser General Public
-+# License version 2.1, as published by the Free Software Foundation.
-+#
-+# This library 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 for more details.
-+#
-+# You should have received a copy of the GNU Lesser General Public
-+# License along with this library; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+# MA 02111-1307 USA
-+#
-+#
-+# Sun Industry Standards Source License Version 1.1
-+# =================================================
-+# The contents of this file are subject to the Sun Industry Standards
-+# Source License Version 1.1 (the "License"); You may not use this file
-+# except in compliance with the License. You may obtain a copy of the
-+# License at http://www.openoffice.org/license.html.
-+#
-+# Software provided under this License is provided on an "AS IS" basis,
-+# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+# See the License for the specific provisions governing your rights and
-+# obligations concerning the Software.
-+#
-+# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+#
-+# Copyright: 2005 by Sun Microsystems, Inc.
-+#
-+# All Rights Reserved.
-+#
-+# Contributor(s): _______________________________________
-+#
-+#
-+#
-+#*************************************************************************
-+
-+PRJ=..$/..$/..
-+PRJINC=..$/..
-+PRJNAME=connectivity
-+TARGET=kab
-+
-+# --- Settings ----------------------------------
-+.IF "$(DBGUTIL_OJ)"!=""
-+ENVCFLAGS+=/FR$(SLO)$/
-+.ENDIF
-+
-+.INCLUDE : settings.mk
-+.INCLUDE : $(PRJ)$/version.mk
-+
-+.IF "$(GUI)" == "UNX"
-+.IF "$(ENABLE_KDE)" == "TRUE"
-+# --- Files -------------------------------------
-+
-+EXCEPTIONSFILES=\
-+ $(SLO)$/KColumns.obj \
-+ $(SLO)$/KTable.obj \
-+ $(SLO)$/KTables.obj \
-+ $(SLO)$/KCatalog.obj \
-+ $(SLO)$/KResultSet.obj \
-+ $(SLO)$/KStatement.obj \
-+ $(SLO)$/KPreparedStatement.obj \
-+ $(SLO)$/KDatabaseMetaData.obj \
-+ $(SLO)$/KConnection.obj \
-+ $(SLO)$/KServices.obj \
-+ $(SLO)$/KResultSetMetaData.obj \
-+ $(SLO)$/KDriver.obj \
-+ $(SLO)$/KCondition.obj
-+
-+CFLAGS+=$(KDE_CFLAGS)
-+
-+SLOFILES=\
-+ $(EXCEPTIONSFILES)
-+
-+KAB_LIB=$(KDE_LIBS) -lkabc
-+
-+SHL1VERSIONMAP=$(TARGET).map
-+
-+
-+# --- Library -----------------------------------
-+
-+SHL1TARGET= $(KAB_TARGET)$(KAB_MAJOR)
-+SHL1OBJS=$(SLOFILES)
-+SHL1STDLIBS=\
-+ $(CPPULIB) \
-+ $(CPPUHELPERLIB) \
-+ $(VOSLIB) \
-+ $(OSLLIB) \
-+ $(SVLLIB) \
-+ $(SVLIB) \
-+ $(TOOLSLIB) \
-+ $(SVTOOLLIB) \
-+ $(SVTLIB) \
-+ $(UNOTOOLSLIB) \
-+ $(UCBHELPERLIB) \
-+ $(SALLIB) \
-+ $(DBTOOLSLIB) \
-+ $(DBFILELIB) \
-+ $(COMPHELPERLIB) \
-+ $(KAB_LIB)
-+
-+.IF "$(DBFILELIB)" == ""
-+SHL1STDLIBS+= ifile$(UPD).lib
-+.ENDIF
-+
-+SHL1DEPN=
-+SHL1IMPLIB= i$(TARGET)
-+
-+SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-+
-+DEF1NAME= $(SHL1TARGET)
-+
-+
-+# --- Targets -----------------------------------
-+.ELSE # "$(ENABLE_KDE)" == "TRUE"
-+dummy:
-+ @echo KDE disabled - nothing to build
-+.ENDIF
-+
-+.ELSE # "$(GUI)" == "UNX"
-+dummy:
-+ @echo "Nothing to build for GUI $(GUI)"
-+.ENDIF
-+
-+.INCLUDE : target.mk
-+
-Index: helpcontent2/source/text/shared/explorer/database/dabawiz01.xhp
-===================================================================
-RCS file: /cvs/documentation/helpcontent2/source/text/shared/explorer/database/dabawiz01.xhp,v
-retrieving revision 1.5
-retrieving revision 1.5.18.1
-diff -u -p -u -p -r1.5 -r1.5.18.1
---- helpcontent2/source/text/shared/explorer/database/dabawiz01.xhp 30 Jun 2005 16:22:49 -0000 1.5
-+++ helpcontent2/source/text/shared/explorer/database/dabawiz01.xhp 29 Aug 2005 09:00:32 -0000 1.5.18.1
-@@ -87,7 +87,7 @@
- <paragraph role="paragraph" id="par_idN10590" xml-lang="en-US" l10n="NEW"><ahelp hid=".">Select to create a database document for an existing database connection.</ahelp></paragraph>
- <paragraph role="heading" id="par_idN10593" xml-lang="en-US" level="3" l10n="NEW">Database type</paragraph>
- <paragraph role="paragraph" id="par_idN10597" xml-lang="en-US" l10n="NEW"><ahelp hid=".">Select the database type for the existing database connection.</ahelp></paragraph>
--<paragraph role="note" id="par_idN1059A" xml-lang="en-US" l10n="NEW">The Outlook, Evolution, and Mozilla database types do not need additional information. For other database types, the wizard contains additional pages to specify the required information.</paragraph>
-+<paragraph role="note" id="par_idN1059A" xml-lang="en-US" l10n="NEW">The Outlook, Evolution, KDE Address Book, and Mozilla database types do not need additional information. For other database types, the wizard contains additional pages to specify the required information.</paragraph>
- <paragraph role="paragraph" id="par_idN10611" xml-lang="en-US" l10n="NEW">The next wizard page is one of the following pages:</paragraph>
- <embed href="text/shared/explorer/database/dabawiz02.xhp#nextsteps"/>
- <paragraph role="paragraph" id="par_idN1061C" xml-lang="en-US" l10n="NEW"><link href="text/shared/explorer/database/dabawiz02text.xhp">Set up text file connection</link></paragraph>
-Index: solenv/inc/unx.mk
-===================================================================
-RCS file: /cvs/tools/solenv/inc/unx.mk,v
-retrieving revision 1.27
-retrieving revision 1.27.286.3
-diff -u -p -u -p -r1.27 -r1.27.286.3
---- solenv/inc/unx.mk 18 Jan 2005 14:50:42 -0000 1.27
-+++ solenv/inc/unx.mk 31 Aug 2005 16:01:01 -0000 1.27.286.3
-@@ -230,3 +230,11 @@ SONAME_SWITCH*=-h
- DLLPOST!:=$(DLLPOST).$($(UNIXVERSIONNAMES)_MAJOR)
- .ENDIF # "$(UNIXVERSIONNAMES)"!=""
-
-+#enable building/linking KDE-dependent code in both OOo and SO build environment
-+.IF "$(ENABLE_KDE)" != ""
-+.IF "$(KDE_ROOT)"!=""
-+KDE_CFLAGS:=-I$(KDE_ROOT)$/include -DQT_CLEAN_NAMESPACE
-+KDE_LIBS:=-lkdeui -lkdecore -lqt-mt
-+SOLARLIB+=-L$(KDE_ROOT)$/lib
-+.ENDIF # "$(KDE_ROOT)"!=""
-+.ENDIF # "$(ENABLE_KDE)" != ""
-Index: officecfg/registry/data/org/openoffice/Office/DataAccess.xcu
-===================================================================
-RCS file: /cvs/util/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu,v
-retrieving revision 1.20
-retrieving revision 1.20.226.1
-diff -u -p -u -p -r1.20 -r1.20.226.1
---- officecfg/registry/data/org/openoffice/Office/DataAccess.xcu 17 Nov 2004 14:07:13 -0000 1.20
-+++ officecfg/registry/data/org/openoffice/Office/DataAccess.xcu 29 Aug 2005 09:21:23 -0000 1.20.226.1
-@@ -85,6 +85,17 @@
- <value>60</value>
- </prop>
- </node>
-+ <node oor:name="com.sun.star.comp.sdbc.kab.Driver" oor:op="replace">
-+ <prop oor:name="DriverName">
-+ <value>com.sun.star.comp.sdbc.kab.Driver</value>
-+ </prop>
-+ <prop oor:name="Enable">
-+ <value>false</value>
-+ </prop>
-+ <prop oor:name="Timeout">
-+ <value>60</value>
-+ </prop>
-+ </node>
- <node oor:name="com.sun.star.comp.sdbc.ado.ODriver" oor:op="replace">
- <prop oor:name="DriverName">
- <value>com.sun.star.comp.sdbc.ado.ODriver</value>
-Index: officecfg/registry/schema/org/openoffice/Office/DataAccess.xcs
-===================================================================
-RCS file: /cvs/util/officecfg/registry/schema/org/openoffice/Office/DataAccess.xcs,v
-retrieving revision 1.32
-retrieving revision 1.32.228.1
-diff -u -p -u -p -r1.32 -r1.32.228.1
---- officecfg/registry/schema/org/openoffice/Office/DataAccess.xcs 24 Nov 2004 17:28:07 -0000 1.32
-+++ officecfg/registry/schema/org/openoffice/Office/DataAccess.xcs 29 Aug 2005 09:21:24 -0000 1.32.228.1
-@@ -754,6 +754,198 @@
- </prop>
- </group>
- </group>
-+ <group oor:name="com.sun.star.comp.sdbc.kab.Driver">
-+ <info>
-+ <desc>Specifies the driver settings for the KAddressBook database driver.</desc>
-+ </info>
-+ <group oor:name="KAddressBookPreferences">
-+ <info>
-+ <desc>Specifies the KAddressBook preferences.</desc>
-+ </info>
-+ <prop oor:name="FullPathExportingCommand" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the KAddressBook full path exporting command name.</desc>
-+ </info>
-+ <value/>
-+ <!-- JB: Empty default inserted into empty property node. Remove if NIL was intended -->
-+ </prop>
-+ </group>
-+ <group oor:name="ColumnAliases">
-+ <info>
-+ <desc>Specifies the column alias names used.</desc>
-+ </info>
-+ <prop oor:name="Formatted Name" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the display name.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Family Name" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the last name.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Given Name" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the first name.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Additional Names" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the other names.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Honorific Prefixes" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the titles before the name.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Honorific Suffixes" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the ttiles after the name.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Nick Name" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the nick name.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Birthday" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the date of birth.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Home Address Street" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the home street.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Home Address City" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the home city.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Home Address State" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the home state.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Home Address Zip Code" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the home postal code.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Home Address Country" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the home country.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Home Address Label" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the home label.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Business Address Street" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the work street.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Business Address City" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the work city.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Business Address State" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the work state.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Business Address Zip Code" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the work postal code.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Business Address Country" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the work country.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Home Phone" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the home phone number.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Business Phone" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the work phone number.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Mobile Phone" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the mobile phone number.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Home Fax" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the home fax number.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Business Fax" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the business fax number.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Car Phone" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the car phone number.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="ISDN" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the ISDN number.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Pager" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the pager number.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Email Address" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the email address.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Mail Client" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the type of email software used.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Title" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the honorific title.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Role" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the exerced job.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Organization" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the company or administration.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Note" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the notes.</desc>
-+ </info>
-+ </prop>
-+ <prop oor:name="Homepage" oor:type="xs:string">
-+ <info>
-+ <desc>Specifies the web page.</desc>
-+ </info>
-+ </prop>
-+ </group>
-+ </group>
- </group>
- <group oor:name="FormSearchOptions">
- <info>
-Index: config_office/configure
-===================================================================
-RCS file: /cvs/tools/config_office/configure,v
-retrieving revision 1.112
-retrieving revision 1.112.8.1
-diff -u -p -u -p -r1.112 -r1.112.8.1
---- config_office/configure 5 Aug 2005 15:58:49 -0000 1.112
-+++ config_office/configure 26 Aug 2005 14:53:44 -0000 1.112.8.1
-@@ -17846,7 +17846,7 @@ your KDE installation by exporting KDEDI
- { (exit 1); exit 1; }; }
- fi
-
-- KDE_CFLAGS="-I$qt_incdir -I$kde_incdir -DQT_CLEAN_NAMESPACE -DQT_NO_EMIT -DQT_THREAD_SUPPORT"
-+ KDE_CFLAGS="-I$qt_incdir -I$kde_incdir -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT"
- KDE_LIBS="-L$kde_libdir -L$qt_libdir -lkdeui -lkdecore -lqt-mt"
- fi
-
-Index: config_office/configure.in
-===================================================================
-RCS file: /cvs/tools/config_office/configure.in,v
-retrieving revision 1.129
-retrieving revision 1.129.8.1
-diff -u -p -u -p -r1.129 -r1.129.8.1
---- config_office/configure.in 5 Aug 2005 15:05:56 -0000 1.129
-+++ config_office/configure.in 26 Aug 2005 14:53:46 -0000 1.129.8.1
-@@ -3779,7 +3779,7 @@ your KDE installation by exporting KDEDI
- fi
-
- dnl Set the variables
-- KDE_CFLAGS="-I$qt_incdir -I$kde_incdir -DQT_CLEAN_NAMESPACE -DQT_NO_EMIT -DQT_THREAD_SUPPORT"
-+ KDE_CFLAGS="-I$qt_incdir -I$kde_incdir -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT"
- KDE_LIBS="-L$kde_libdir -L$qt_libdir -lkdeui -lkdecore -lqt-mt"
- fi
- AC_SUBST(KDE_CFLAGS)
-Index: dbaccess/source/ui/app/AppController.cxx
-===================================================================
-RCS file: /cvs/dba/dbaccess/source/ui/app/AppController.cxx,v
-retrieving revision 1.20
-retrieving revision 1.20.82.1
-diff -u -p -u -p -r1.20 -r1.20.82.1
---- dbaccess/source/ui/app/AppController.cxx 6 Apr 2005 11:40:09 -0000 1.20
-+++ dbaccess/source/ui/app/AppController.cxx 29 Aug 2005 08:51:30 -0000 1.20.82.1
-@@ -801,7 +801,7 @@ FeatureState OApplicationController::Get
- if ( aReturn.bEnabled = m_xDataSource.is() )
- {
- DATASOURCE_TYPE eType = m_aTypeCollection.getType(::comphelper::getString(m_xDataSource->getPropertyValue(PROPERTY_URL)));
-- aReturn.bEnabled = DST_EMBEDDED != eType && DST_MOZILLA != eType && DST_EVOLUTION != eType && DST_OUTLOOK != eType && DST_OUTLOOKEXP != eType;
-+ aReturn.bEnabled = DST_EMBEDDED != eType && DST_MOZILLA != eType && DST_EVOLUTION != eType && DST_KAB != eType && DST_OUTLOOK != eType && DST_OUTLOOKEXP != eType;
- }
- break;
- case SID_DB_APP_DSCONNECTION_TYPE:
-@@ -816,7 +816,7 @@ FeatureState OApplicationController::Get
- if ( aReturn.bEnabled = m_xDataSource.is() )
- {
- DATASOURCE_TYPE eType = m_aTypeCollection.getType(::comphelper::getString(m_xDataSource->getPropertyValue(PROPERTY_URL)));
-- aReturn.bEnabled = DST_EMBEDDED != eType && DST_LDAP != eType && DST_CALC != eType && DST_MOZILLA != eType && DST_THUNDERBIRD != eType && DST_EVOLUTION != eType && DST_OUTLOOK != eType && DST_OUTLOOKEXP != eType;
-+ aReturn.bEnabled = DST_EMBEDDED != eType && DST_LDAP != eType && DST_CALC != eType && DST_MOZILLA != eType && DST_THUNDERBIRD != eType && DST_EVOLUTION != eType && DST_KAB != eType && DST_OUTLOOK != eType && DST_OUTLOOKEXP != eType;
- }
- break;
- case SID_DB_APP_CONVERTTOVIEW:
-Index: dbaccess/source/ui/dlg/AdabasStatDlg.cxx
-===================================================================
-RCS file: /cvs/dba/dbaccess/source/ui/dlg/AdabasStatDlg.cxx,v
-retrieving revision 1.5
-retrieving revision 1.5.44.2
-diff -u -p -u -p -r1.5 -r1.5.44.2
---- dbaccess/source/ui/dlg/AdabasStatDlg.cxx 30 Jun 2005 16:30:03 -0000 1.5
-+++ dbaccess/source/ui/dlg/AdabasStatDlg.cxx 30 Aug 2005 11:11:43 -0000 1.5.44.2
-@@ -141,32 +141,6 @@ namespace dbaui
- case DST_ADABAS:
- AddTabPage(TAB_PAG_ADABAS_SETTINGS, String(ResId(STR_PAGETITLE_ADABAS_STATISTIC)), ODriversSettings::CreateAdabas,0, sal_False, 1);
- break;
-- case DST_DBASE:
-- case DST_FLAT:
-- case DST_MSACCESS:
-- case DST_ADO:
-- case DST_ODBC:
-- case DST_MYSQL_ODBC:
-- case DST_MYSQL_JDBC:
-- case DST_LDAP:
-- case DST_CALC:
-- case DST_MOZILLA:
-- case DST_THUNDERBIRD:
-- case DST_EVOLUTION:
-- case DST_OUTLOOK :
-- case DST_OUTLOOKEXP:
-- case DST_JDBC:
-- case DST_ORACLE_JDBC:
-- case DST_USERDEFINE1: /// first user defined driver
-- case DST_USERDEFINE2:
-- case DST_USERDEFINE3:
-- case DST_USERDEFINE4:
-- case DST_USERDEFINE5:
-- case DST_USERDEFINE6:
-- case DST_USERDEFINE7:
-- case DST_USERDEFINE8:
-- case DST_USERDEFINE9:
-- case DST_USERDEFINE10:
- default:
- OSL_ENSURE(0,"Not supported for other types thasn adabas!");
- break;
-Index: dbaccess/source/ui/dlg/AdvancedPageDlg.cxx
-===================================================================
-RCS file: /cvs/dba/dbaccess/source/ui/dlg/AdvancedPageDlg.cxx,v
-retrieving revision 1.5
-retrieving revision 1.5.44.1
-diff -u -p -u -p -r1.5 -r1.5.44.1
---- dbaccess/source/ui/dlg/AdvancedPageDlg.cxx 30 Jun 2005 16:30:21 -0000 1.5
-+++ dbaccess/source/ui/dlg/AdvancedPageDlg.cxx 29 Aug 2005 08:51:32 -0000 1.5.44.1
-@@ -165,6 +165,7 @@ namespace dbaui
- case DST_MOZILLA:
- case DST_THUNDERBIRD:
- case DST_EVOLUTION:
-+ case DST_KAB:
- case DST_OUTLOOK :
- case DST_OUTLOOKEXP:
- break;
-Index: dbaccess/source/ui/dlg/ConnectionPage.cxx
-===================================================================
-RCS file: /cvs/dba/dbaccess/source/ui/dlg/ConnectionPage.cxx,v
-retrieving revision 1.10
-retrieving revision 1.10.94.1
-diff -u -p -u -p -r1.10 -r1.10.94.1
---- dbaccess/source/ui/dlg/ConnectionPage.cxx 18 Mar 2005 10:09:18 -0000 1.10
-+++ dbaccess/source/ui/dlg/ConnectionPage.cxx 29 Aug 2005 08:51:32 -0000 1.10.94.1
-@@ -323,6 +323,7 @@ namespace dbaui
- case DST_OUTLOOK:
- case DST_OUTLOOKEXP:
- case DST_EVOLUTION:
-+ case DST_KAB:
- m_aFT_Connection.SetText(String(ModuleRes(STR_NO_ADDITIONAL_SETTINGS)));
- {
- String sText = m_aFT_Connection.GetText();
-Index: dbaccess/source/ui/dlg/DriverSettings.cxx
-===================================================================
-RCS file: /cvs/dba/dbaccess/source/ui/dlg/DriverSettings.cxx,v
-retrieving revision 1.3
-retrieving revision 1.3.110.1
-diff -u -p -u -p -r1.3 -r1.3.110.1
---- dbaccess/source/ui/dlg/DriverSettings.cxx 21 Feb 2005 12:41:35 -0000 1.3
-+++ dbaccess/source/ui/dlg/DriverSettings.cxx 29 Aug 2005 08:51:32 -0000 1.3.110.1
-@@ -174,6 +174,9 @@ void ODriversSettings::fillDetailIds(DAT
- case DST_EVOLUTION:
- _rDetailsIds.push_back(DSID_DOSLINEENDS);
- break;
-+ case DST_KAB:
-+ _rDetailsIds.push_back(DSID_DOSLINEENDS);
-+ break;
- case DST_OUTLOOK:
- _rDetailsIds.push_back(DSID_DOSLINEENDS);
- break;
-Index: dbaccess/source/ui/dlg/dbadmin2.src
-===================================================================
-RCS file: /cvs/dba/dbaccess/source/ui/dlg/dbadmin2.src,v
-retrieving revision 1.4
-retrieving revision 1.4.110.1
-diff -u -p -u -p -r1.4 -r1.4.110.1
---- dbaccess/source/ui/dlg/dbadmin2.src 21 Feb 2005 12:43:11 -0000 1.4
-+++ dbaccess/source/ui/dlg/dbadmin2.src 29 Aug 2005 08:51:32 -0000 1.4.110.1
-@@ -133,6 +133,11 @@ String STR_ADDRESSBOOK_EVOLUTION
- Text [ de ] ="Evolution address book";
- Text[ en-US ] = "Evolution address book";
- };
-+String STR_ADDRESSBOOK_KAB
-+{
-+ Text [ de ] ="KDE address book";
-+ Text[ en-US ] = "KDE address book";
-+};
- String STR_ADDRESSBOOK_LDAP
- {
- Text [ de ] ="LDAP Adressbuch";
-Index: dbaccess/source/ui/dlg/dbwiz.cxx
-===================================================================
-RCS file: /cvs/dba/dbaccess/source/ui/dlg/dbwiz.cxx,v
-retrieving revision 1.7
-retrieving revision 1.7.46.1
-diff -u -p -u -p -r1.7 -r1.7.46.1
---- dbaccess/source/ui/dlg/dbwiz.cxx 30 Jun 2005 16:32:42 -0000 1.7
-+++ dbaccess/source/ui/dlg/dbwiz.cxx 29 Aug 2005 08:51:33 -0000 1.7.46.1
-@@ -206,6 +206,7 @@ IMPL_LINK(ODbTypeWizDialog, OnTypeSelect
- case DST_OUTLOOK:
- case DST_OUTLOOKEXP:
- case DST_EVOLUTION:
-+ case DST_KAB:
- enableButtons(WZB_NEXT,sal_False);
- enableButtons(WZB_FINISH,sal_True);
- break;
-@@ -229,6 +230,7 @@ WizardTypes::WizardState ODbTypeWizDialo
- case DST_OUTLOOK:
- case DST_OUTLOOKEXP:
- case DST_EVOLUTION:
-+ case DST_KAB:
- nNextState = WZS_INVALID_STATE;
- break;
- default:
-@@ -244,6 +246,7 @@ WizardTypes::WizardState ODbTypeWizDialo
- case DST_OUTLOOK:
- case DST_OUTLOOKEXP:
- case DST_EVOLUTION:
-+ case DST_KAB:
- case DST_MSACCESS:
- case DST_JDBC:
- case DST_CALC:
-Index: dbaccess/source/ui/dlg/dbwizsetup.cxx
-===================================================================
-RCS file: /cvs/dba/dbaccess/source/ui/dlg/dbwizsetup.cxx,v
-retrieving revision 1.12
-retrieving revision 1.12.44.1
-diff -u -p -u -p -r1.12 -r1.12.44.1
---- dbaccess/source/ui/dlg/dbwizsetup.cxx 30 Jun 2005 16:32:58 -0000 1.12
-+++ dbaccess/source/ui/dlg/dbwizsetup.cxx 29 Aug 2005 08:51:33 -0000 1.12.44.1
-@@ -268,10 +268,11 @@ using namespace ::cppu;
- #define OUTLOOK_PATH 14
- #define MOZILLA_PATH 15
- #define EVOLUTION_PATH 16
--#define THUNDERBIRD_PATH 17
--#define CREATENEW_PATH 18
--#define USERDEFINED_PATH 19
--#define OPEN_DOC_PATH 20
-+#define KAB_PATH 17
-+#define THUNDERBIRD_PATH 18
-+#define CREATENEW_PATH 19
-+#define USERDEFINED_PATH 20
-+#define OPEN_DOC_PATH 21
-
- OFinalDBPageSetup* pFinalPage;
-
-@@ -419,6 +420,11 @@ ODbTypeWizDialogSetup::ODbTypeWizDialogS
- else
- declarePath( EVOLUTION_PATH, PAGE_DBSETUPWIZARD_INTRO, PAGE_DBSETUPWIZARD_FINAL, WZS_INVALID_STATE);
-
-+if ( m_pCollection->hasAuthentication(DST_KAB))
-+ declarePath( KAB_PATH, PAGE_DBSETUPWIZARD_INTRO, PAGE_DBSETUPWIZARD_AUTHENTIFICATION, PAGE_DBSETUPWIZARD_FINAL, WZS_INVALID_STATE);
-+else
-+ declarePath( KAB_PATH, PAGE_DBSETUPWIZARD_INTRO, PAGE_DBSETUPWIZARD_FINAL, WZS_INVALID_STATE);
-+
- if ( m_pCollection->hasAuthentication(m_pCollection->getEmbeddedDatabaseType(getORB())))
- declarePath( CREATENEW_PATH, PAGE_DBSETUPWIZARD_INTRO, PAGE_DBSETUPWIZARD_AUTHENTIFICATION, PAGE_DBSETUPWIZARD_FINAL, WZS_INVALID_STATE);
- else
-@@ -560,6 +566,7 @@ void ODbTypeWizDialogSetup::activateData
- { DST_MOZILLA, MOZILLA_PATH },
- { DST_THUNDERBIRD, THUNDERBIRD_PATH },
- { DST_EVOLUTION, EVOLUTION_PATH },
-+ { DST_KAB, KAB_PATH },
- { DST_USERDEFINE1, USERDEFINED_PATH },
- { DST_USERDEFINE2, USERDEFINED_PATH },
- { DST_USERDEFINE3, USERDEFINED_PATH },
-@@ -630,6 +637,7 @@ sal_Bool ODbTypeWizDialogSetup::IsConnec
- DATASOURCE_TYPE eType = getDatasourceType(*m_pOutSet);
- switch ( m_eType )
- {
-+ case DST_KAB:
- case DST_EVOLUTION:
- case DST_OUTLOOK:
- case DST_OUTLOOKEXP:
-Index: dbaccess/source/ui/inc/dbu_dlg.hrc
-===================================================================
-RCS file: /cvs/dba/dbaccess/source/ui/inc/dbu_dlg.hrc,v
-retrieving revision 1.8
-retrieving revision 1.8.46.1
-diff -u -p -u -p -r1.8 -r1.8.46.1
---- dbaccess/source/ui/inc/dbu_dlg.hrc 30 Jun 2005 16:33:57 -0000 1.8
-+++ dbaccess/source/ui/inc/dbu_dlg.hrc 29 Aug 2005 08:51:34 -0000 1.8.46.1
-@@ -108,28 +108,29 @@
- #define STR_ADDRESSBOOK_SYSTEM RID_STR_DLG_START + 17
- #define STR_ADDRESSBOOK_MOZILLA RID_STR_DLG_START + 18
- #define STR_ADDRESSBOOK_EVOLUTION RID_STR_DLG_START + 19
--#define STR_ADDRESSBOOK_LDAP RID_STR_DLG_START + 20
--#define STR_ADDRESSBOOK_OUTLOOK RID_STR_DLG_START + 21
--#define STR_COMMAND_EXECUTED_SUCCESSFULLY RID_STR_DLG_START + 22
--#define STR_DIRECTSQL_CONNECTIONLOST RID_STR_DLG_START + 23
-+#define STR_ADDRESSBOOK_KAB RID_STR_DLG_START + 20
-+#define STR_ADDRESSBOOK_LDAP RID_STR_DLG_START + 21
-+#define STR_ADDRESSBOOK_OUTLOOK RID_STR_DLG_START + 22
-+#define STR_COMMAND_EXECUTED_SUCCESSFULLY RID_STR_DLG_START + 23
-+#define STR_DIRECTSQL_CONNECTIONLOST RID_STR_DLG_START + 24
- // FREE
--#define STR_HINT_READONLY_CONNECTION RID_STR_DLG_START + 25
--#define STR_HINT_CONNECTION_NOT_CAPABLE RID_STR_DLG_START + 26
--#define STR_USERADMIN_NOT_AVAILABLE RID_STR_DLG_START + 27
--#define STR_TAB_INDEX_SORTORDER RID_STR_DLG_START + 28
--#define STR_TAB_INDEX_FIELD RID_STR_DLG_START + 29
--#define STR_ORDER_ASCENDING RID_STR_DLG_START + 30
--#define STR_ORDER_DESCENDING RID_STR_DLG_START + 31
--#define STR_CONFIRM_DROP_INDEX RID_STR_DLG_START + 32
--#define STR_LOGICAL_INDEX_NAME RID_STR_DLG_START + 33
--#define STR_CONNECTION_TEST RID_STR_DLG_START + 34
--#define STR_CONNECTION_SUCCESS RID_STR_DLG_START + 35
--#define STR_JDBCDRIVER_TEST RID_STR_DLG_START + 36
--#define STR_JDBCDRIVER_SUCCESS RID_STR_DLG_START + 37
--#define STR_JDBCDRIVER_NO_SUCCESS RID_STR_DLG_START + 38
--#define STR_MSACCESS_FILTERNAME RID_STR_DLG_START + 39
--#define STR_CONNECTION_NO_SUCCESS RID_STR_DLG_START + 40
--#define STR_DBASE_PATH_OR_FILE RID_STR_DLG_START + 41
-+#define STR_HINT_READONLY_CONNECTION RID_STR_DLG_START + 26
-+#define STR_HINT_CONNECTION_NOT_CAPABLE RID_STR_DLG_START + 27
-+#define STR_USERADMIN_NOT_AVAILABLE RID_STR_DLG_START + 28
-+#define STR_TAB_INDEX_SORTORDER RID_STR_DLG_START + 29
-+#define STR_TAB_INDEX_FIELD RID_STR_DLG_START + 30
-+#define STR_ORDER_ASCENDING RID_STR_DLG_START + 31
-+#define STR_ORDER_DESCENDING RID_STR_DLG_START + 32
-+#define STR_CONFIRM_DROP_INDEX RID_STR_DLG_START + 33
-+#define STR_LOGICAL_INDEX_NAME RID_STR_DLG_START + 34
-+#define STR_CONNECTION_TEST RID_STR_DLG_START + 35
-+#define STR_CONNECTION_SUCCESS RID_STR_DLG_START + 36
-+#define STR_JDBCDRIVER_TEST RID_STR_DLG_START + 37
-+#define STR_JDBCDRIVER_SUCCESS RID_STR_DLG_START + 38
-+#define STR_JDBCDRIVER_NO_SUCCESS RID_STR_DLG_START + 39
-+#define STR_MSACCESS_FILTERNAME RID_STR_DLG_START + 40
-+#define STR_CONNECTION_NO_SUCCESS RID_STR_DLG_START + 41
-+#define STR_DBASE_PATH_OR_FILE RID_STR_DLG_START + 42
- #define STR_TEXT_PATH_OR_FILE RID_STR_DLG_START + 45
- #define STR_FLAT_PATH_OR_FILE RID_STR_DLG_START + 46
- #define STR_CALC_PATH_OR_FILE RID_STR_DLG_START + 47
-Index: dbaccess/source/ui/inc/dsntypes.hxx
-===================================================================
-RCS file: /cvs/dba/dbaccess/source/ui/inc/dsntypes.hxx,v
-retrieving revision 1.17
-retrieving revision 1.17.110.1
-diff -u -p -u -p -r1.17 -r1.17.110.1
---- dbaccess/source/ui/inc/dsntypes.hxx 21 Feb 2005 12:45:45 -0000 1.17
-+++ dbaccess/source/ui/inc/dsntypes.hxx 29 Aug 2005 08:51:34 -0000 1.17.110.1
-@@ -99,5 +99,6 @@ enum DATASOURCE_TYPE
- DST_OUTLOOKEXP = 16,
- DST_EVOLUTION = 17,
-+ DST_KAB = 18,
-- DST_EMBEDDED = 18,
-+ DST_EMBEDDED = 19,
-
- DST_USERDEFINE1, /// first user defined driver
-
-Index: dbaccess/source/ui/misc/dbumiscres.hrc
-===================================================================
-RCS file: /cvs/dba/dbaccess/source/ui/misc/dbumiscres.hrc,v
-retrieving revision 1.6
-retrieving revision 1.6.110.1
-diff -u -p -u -p -r1.6 -r1.6.110.1
---- dbaccess/source/ui/misc/dbumiscres.hrc 21 Feb 2005 12:45:59 -0000 1.6
-+++ dbaccess/source/ui/misc/dbumiscres.hrc 29 Aug 2005 08:51:34 -0000 1.6.110.1
-@@ -81,8 +81,9 @@
- #define STR_OUTLOOK 14
- #define STR_OUTLOOKEXP 15
- #define STR_EVOLUTION 16
--#define STR_EMBEDDED 17
--#define STR_THUNDERBIRD 18
-+#define STR_KAB 17
-+#define STR_EMBEDDED 18
-+#define STR_THUNDERBIRD 19
-
- #define STR_END STR_THUNDERBIRD + 1
-
-Index: dbaccess/source/ui/misc/dbumiscres.src
-===================================================================
-RCS file: /cvs/dba/dbaccess/source/ui/misc/dbumiscres.src,v
-retrieving revision 1.67
-retrieving revision 1.67.110.1
-diff -u -p -u -p -r1.67 -r1.67.110.1
---- dbaccess/source/ui/misc/dbumiscres.src 21 Feb 2005 12:46:20 -0000 1.67
-+++ dbaccess/source/ui/misc/dbumiscres.src 29 Aug 2005 08:51:35 -0000 1.67.110.1
-@@ -137,6 +137,10 @@ Resource RSC_DATASOURCE_TYPES
- {
- Text ="sdbc:address:evolution";
- };
-+ String STR_KAB
-+ {
-+ Text ="sdbc:address:kab";
-+ };
- String STR_EMBEDDED
- {
- Text = "sdbc:embedded:";
-@@ -226,6 +230,11 @@ Resource RSC_DATASOURCE_TYPE_UINAMES
- Text [ de ] = "Evolution Adressbuch";
- Text[ en-US ] = "Evolution Address Book";
- };
-+ String STR_KAB
-+ {
-+ Text [ de ] = "KDE Adressbuch";
-+ Text[ en-US ] = "KDE Address Book";
-+ };
- String STR_EMBEDDED
- {
- Text [ de ] = "Interne Datenbank";
-Index: dbaccess/source/ui/misc/dsntypes.cxx
-===================================================================
-RCS file: /cvs/dba/dbaccess/source/ui/misc/dsntypes.cxx,v
-retrieving revision 1.25
-retrieving revision 1.25.110.1
-diff -u -p -u -p -r1.25 -r1.25.110.1
---- dbaccess/source/ui/misc/dsntypes.cxx 21 Feb 2005 14:15:14 -0000 1.25
-+++ dbaccess/source/ui/misc/dsntypes.cxx 29 Aug 2005 08:51:35 -0000 1.25.110.1
-@@ -413,6 +413,7 @@ sal_Bool ODsnTypeCollection::supportsTab
- case DST_OUTLOOKEXP:
- case DST_FLAT:
- case DST_EVOLUTION:
-+ case DST_KAB:
- case DST_THUNDERBIRD:
- case DST_CALC:
- bSupportsTableCreation = FALSE;
-@@ -458,6 +459,7 @@ sal_Bool ODsnTypeCollection::supportsBro
- case DST_OUTLOOKEXP:
- case DST_JDBC:
- case DST_EVOLUTION:
-+ case DST_KAB:
- bEnableBrowseButton = FALSE;
- break;
- default:
-@@ -497,6 +499,7 @@ sal_Bool ODsnTypeCollection::hasAuthenti
- case DST_MOZILLA:
- case DST_THUNDERBIRD:
- case DST_EVOLUTION:
-+ case DST_KAB:
- case DST_OUTLOOK:
- case DST_OUTLOOKEXP: //????
- case DST_DBASE:
-@@ -576,6 +579,8 @@ DATASOURCE_TYPE ODsnTypeCollection::impl
- return DST_OUTLOOKEXP;
- if (_rDsn.EqualsIgnoreCaseAscii("evolution", nSeparator,_rDsn.Len() - nSeparator))
- return DST_EVOLUTION;
-+ if (_rDsn.EqualsIgnoreCaseAscii("kab", nSeparator,_rDsn.Len() - nSeparator))
-+ return DST_KAB;
- }
-
- // find third :
-Index: vcl/unx/kde/makefile.mk
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/kde/makefile.mk,v
-retrieving revision 1.5
-retrieving revision 1.5.140.1
-diff -u -p -u -p -r1.5 -r1.5.140.1
---- vcl/unx/kde/makefile.mk 18 May 2005 08:05:57 -0000 1.5
-+++ vcl/unx/kde/makefile.mk 31 Aug 2005 12:40:24 -0000 1.5.140.1
-@@ -85,10 +85,6 @@ dummy:
-
- .IF "$(ENABLE_KDE)" != ""
-
--.IF "$(KDE_ROOT)"!=""
--KDE_CFLAGS:=-I$(KDE_ROOT)$/include -DQT_CLEAN_NAMESPACE
--.ENDIF # "$(KDE_ROOT)"!=""
--
- CFLAGS+=$(KDE_CFLAGS)
-
- SLOFILES=\
-Index: vcl/util/makefile.mk
-===================================================================
-RCS file: /cvs/gsl/vcl/util/makefile.mk,v
-retrieving revision 1.71
-retrieving revision 1.71.68.1
-diff -u -p -u -p -r1.71 -r1.71.68.1
---- vcl/util/makefile.mk 18 Jul 2005 14:10:12 -0000 1.71
-+++ vcl/util/makefile.mk 31 Aug 2005 12:40:43 -0000 1.71.68.1
-@@ -403,10 +403,6 @@ SHL4STDLIBS+=$(SHL3STDLIBS) -lX11 -ldl
-
- # KDE plugin
- .IF "$(ENABLE_KDE)" != ""
--.IF "$(KDE_ROOT)"!=""
--SOLARLIB+=-L$(KDE_ROOT)$/lib
--KDE_LIBS:=-lkdeui -lkdecore -lqt-mt
--.ENDIF # "$(KDE_ROOT)"!=""
- LIB5TARGET=$(SLB)$/ikde_plug_
- LIB5FILES=$(SLB)$/kdeplug.lib
- SHL5TARGET=vclplug_kde$(UPD)$(DLLPOSTFIX)
-Index: scp2/source/ooo/file_library_ooo.scp
-===================================================================
-RCS file: /cvs/installation/scp2/source/ooo/file_library_ooo.scp,v
-retrieving revision 1.136
-retrieving revision 1.136.14.1
-diff -u -p -u -p -r1.136 -r1.136.14.1
---- scp2/source/ooo/file_library_ooo.scp 5 Aug 2005 12:55:52 -0000 1.136
-+++ scp2/source/ooo/file_library_ooo.scp 29 Aug 2005 09:46:58 -0000 1.136.14.1
-@@ -571,6 +571,18 @@ File gid_File_Lib_Evoab_1
- Name = STRING(CONCAT2(libevoab1,UNXSUFFIX));
- End
-
-+#ifdef ENABLE_KDE
-+
-+File gid_File_Lib_Kab_1
-+ TXT_FILE_BODY;
-+ Styles = (PACKED,UNO_COMPONENT);
-+ RegistryID = gid_Starregistry_Services_Rdb;
-+ Dir = gid_Dir_Program;
-+ Name = STRING(CONCAT2(libkab1,UNXSUFFIX));
-+End
-+
-+#endif
-+
- #endif
-
- #ifdef ENABLE_EVOAB2
-Index: scp2/source/ooo/module_hidden_ooo.scp
-===================================================================
-RCS file: /cvs/installation/scp2/source/ooo/module_hidden_ooo.scp,v
-retrieving revision 1.21
-retrieving revision 1.21.48.1
-diff -u -p -u -p -r1.21 -r1.21.48.1
---- scp2/source/ooo/module_hidden_ooo.scp 20 Jul 2005 10:27:24 -0000 1.21
-+++ scp2/source/ooo/module_hidden_ooo.scp 29 Aug 2005 09:46:58 -0000 1.21.48.1
-@@ -327,6 +327,7 @@ Module gid_Module_Root_Files_5
- gid_File_Lib_Embobj,
- gid_File_Lib_Emboleobj,
- gid_File_Lib_Evoab_1,
-+ gid_File_Lib_Kab_1,
- gid_File_Lib_Evtatt,
- gid_File_Lib_Fileacc,
- gid_File_Lib_Filterconfig1,
-Index: extensions/source/abpilot/abpresid.hrc
-===================================================================
-RCS file: /cvs/util/extensions/source/abpilot/abpresid.hrc,v
-retrieving revision 1.7
-retrieving revision 1.7.170.1
-diff -u -p -u -p -r1.7 -r1.7.170.1
---- extensions/source/abpilot/abpresid.hrc 16 Nov 2004 11:57:20 -0000 1.7
-+++ extensions/source/abpilot/abpresid.hrc 29 Aug 2005 08:55:12 -0000 1.7.170.1
-@@ -194,10 +194,11 @@
- #define RB_MORK 1
- #define RB_THUNDERBIRD 2
- #define RB_EVOLUTION 3
--#define RB_LDAP 4
--#define RB_OUTLOOK 5
--#define RB_OUTLOOKEXPRESS 6
--#define RB_OTHER 7
-+#define RB_KAB 4
-+#define RB_LDAP 5
-+#define RB_OUTLOOK 6
-+#define RB_OUTLOOKEXPRESS 7
-+#define RB_OTHER 8
-
- //........................................................................
- #define ET_DATASOURCENAME 1
-Index: extensions/source/abpilot/abspilot.cxx
-===================================================================
-RCS file: /cvs/util/extensions/source/abpilot/abspilot.cxx,v
-retrieving revision 1.10
-retrieving revision 1.10.142.1
-diff -u -p -u -p -r1.10 -r1.10.142.1
---- extensions/source/abpilot/abspilot.cxx 21 Jan 2005 17:24:40 -0000 1.10
-+++ extensions/source/abpilot/abspilot.cxx 29 Aug 2005 08:55:12 -0000 1.10.142.1
-@@ -427,6 +427,10 @@ namespace abp
- m_aNewDataSource = aContext.createNewEvolution( m_aSettings.sDataSourceName );
- break;
-
-+ case AST_KAB:
-+ m_aNewDataSource = aContext.createNewKab( m_aSettings.sDataSourceName );
-+ break;
-+
- case AST_LDAP:
- m_aNewDataSource = aContext.createNewLDAP( m_aSettings.sDataSourceName );
- break;
-Index: extensions/source/abpilot/abspilot.src
-===================================================================
-RCS file: /cvs/util/extensions/source/abpilot/abspilot.src,v
-retrieving revision 1.49
-retrieving revision 1.49.220.1
-diff -u -p -u -p -r1.49 -r1.49.220.1
---- extensions/source/abpilot/abspilot.src 2 Aug 2004 17:35:10 -0000 1.49
-+++ extensions/source/abpilot/abspilot.src 29 Aug 2005 08:55:13 -0000 1.49.220.1
-@@ -165,9 +165,17 @@ TabPage RID_PAGE_SELECTABTYPE
- Text [ de ] = "Evolution";
- Text [ en-US ] = "Evolution";
- };
-+ RadioButton RB_KAB
-+ {
-+ Pos = MAP_APPFONT ( 15, 101 ) ;
-+ Size = MAP_APPFONT ( WINDOW_SIZE_X - 30, 8 ) ;
-+
-+ Text [ de ] = "KDE Adressbuch";
-+ Text [ en-US ] = "KDE address book";
-+ };
- RadioButton RB_LDAP
- {
-- Pos = MAP_APPFONT ( 15, 101 ) ;
-+ Pos = MAP_APPFONT ( 15, 112 ) ;
- Size = MAP_APPFONT ( WINDOW_SIZE_X - 30, 8 ) ;
-
- Text [ de ] = "LDAP Adress-Bestand";
-@@ -175,7 +183,7 @@ TabPage RID_PAGE_SELECTABTYPE
- };
- RadioButton RB_OUTLOOK
- {
-- Pos = MAP_APPFONT ( 15, 111 ) ;
-+ Pos = MAP_APPFONT ( 15, 123 ) ;
- Size = MAP_APPFONT ( WINDOW_SIZE_X - 30, 8 ) ;
-
- Text [ de ] = "Outlook Adressbuch";
-@@ -183,7 +191,7 @@ TabPage RID_PAGE_SELECTABTYPE
- };
- RadioButton RB_OUTLOOKEXPRESS
- {
-- Pos = MAP_APPFONT ( 15,123 ) ;
-+ Pos = MAP_APPFONT ( 15,134 ) ;
- Size = MAP_APPFONT ( WINDOW_SIZE_X - 30, 8 ) ;
-
- Text [ de ] = "Windows System-Adressbuch";
-@@ -191,7 +199,7 @@ TabPage RID_PAGE_SELECTABTYPE
- };
- RadioButton RB_OTHER
- {
-- Pos = MAP_APPFONT ( 15, 134 ) ;
-+ Pos = MAP_APPFONT ( 15, 145 ) ;
- Size = MAP_APPFONT ( WINDOW_SIZE_X - 30, 8 ) ;
-
- Text [ de ] = "andere externe Datenquelle";
-Index: extensions/source/abpilot/addresssettings.hxx
-===================================================================
-RCS file: /cvs/util/extensions/source/abpilot/addresssettings.hxx,v
-retrieving revision 1.4
-retrieving revision 1.4.220.1
-diff -u -p -u -p -r1.4 -r1.4.220.1
---- extensions/source/abpilot/addresssettings.hxx 2 Aug 2004 17:35:26 -0000 1.4
-+++ extensions/source/abpilot/addresssettings.hxx 29 Aug 2005 08:55:13 -0000 1.4.220.1
-@@ -81,6 +81,7 @@ namespace abp
- {
- AST_MORK,
- AST_EVOLUTION,
-+ AST_KAB,
- AST_LDAP,
- AST_OUTLOOK,
- AST_OE,
-Index: extensions/source/abpilot/datasourcehandling.cxx
-===================================================================
-RCS file: /cvs/util/extensions/source/abpilot/datasourcehandling.cxx,v
-retrieving revision 1.6
-retrieving revision 1.6.100.1
-diff -u -p -u -p -r1.6 -r1.6.100.1
---- extensions/source/abpilot/datasourcehandling.cxx 23 Mar 2005 14:53:30 -0000 1.6
-+++ extensions/source/abpilot/datasourcehandling.cxx 29 Aug 2005 08:55:13 -0000 1.6.100.1
-@@ -356,6 +356,12 @@ namespace abp
- }
-
- //---------------------------------------------------------------------
-+ ODataSource ODataSourceContext::createNewKab( const ::rtl::OUString& _rName) SAL_THROW (( ))
-+ {
-+ return lcl_implCreateAndSetURL( m_pImpl->xORB, _rName, "sdbc:address:kab" );
-+ }
-+
-+ //---------------------------------------------------------------------
- ODataSource ODataSourceContext::createNewOutlook( const ::rtl::OUString& _rName) SAL_THROW (( ))
- {
- return lcl_implCreateAndSetURL( m_pImpl->xORB, _rName, "sdbc:address:outlook" );
-Index: extensions/source/abpilot/datasourcehandling.hxx
-===================================================================
-RCS file: /cvs/util/extensions/source/abpilot/datasourcehandling.hxx,v
-retrieving revision 1.4
-retrieving revision 1.4.220.1
-diff -u -p -u -p -r1.4 -r1.4.220.1
---- extensions/source/abpilot/datasourcehandling.hxx 2 Aug 2004 17:36:51 -0000 1.4
-+++ extensions/source/abpilot/datasourcehandling.hxx 29 Aug 2005 08:55:14 -0000 1.4.220.1
-@@ -115,6 +115,9 @@ namespace abp
- /// creates a new Evolution data source
- ODataSource createNewEvolution( const ::rtl::OUString& _rName ) SAL_THROW (( ));
-
-+ /// creates a new KDE address book data source
-+ ODataSource createNewKab( const ::rtl::OUString& _rName ) SAL_THROW (( ));
-+
- /// creates a new LDAP data source
- ODataSource createNewLDAP( const ::rtl::OUString& _rName ) SAL_THROW (( ));
-
-Index: extensions/source/abpilot/typeselectionpage.cxx
-===================================================================
-RCS file: /cvs/util/extensions/source/abpilot/typeselectionpage.cxx,v
-retrieving revision 1.6
-retrieving revision 1.6.220.1
-diff -u -p -u -p -r1.6 -r1.6.220.1
---- extensions/source/abpilot/typeselectionpage.cxx 2 Aug 2004 17:37:33 -0000 1.6
-+++ extensions/source/abpilot/typeselectionpage.cxx 29 Aug 2005 08:55:14 -0000 1.6.220.1
-@@ -91,6 +91,7 @@ namespace abp
- ,m_aTypeSep (this, ResId(FL_TYPE))
- ,m_aMORK (this, ResId(RB_MORK))
- ,m_aEvolution (this, ResId(RB_EVOLUTION))
-+ ,m_aKab (this, ResId(RB_KAB))
- ,m_aLDAP (this, ResId(RB_LDAP))
- ,m_aOutlook (this, ResId(RB_OUTLOOK))
- ,m_aOE (this, ResId(RB_OUTLOOKEXPRESS))
-@@ -101,6 +102,7 @@ namespace abp
- Link aTypeSelectionHandler = LINK(this, TypeSelectionPage, OnTypeSelected );
- m_aMORK.SetClickHdl( aTypeSelectionHandler );
- m_aEvolution.SetClickHdl( aTypeSelectionHandler );
-+ m_aKab.SetClickHdl( aTypeSelectionHandler );
- m_aLDAP.SetClickHdl( aTypeSelectionHandler );
- m_aOutlook.SetClickHdl( aTypeSelectionHandler );
- m_aOE.SetClickHdl( aTypeSelectionHandler );
-@@ -109,6 +111,7 @@ namespace abp
- #ifndef UNX
- sal_Int32 nMoveControlsUp = m_aLDAP.GetPosPixel().Y() - m_aEvolution.GetPosPixel().Y();
- m_aEvolution.Hide();
-+ m_aKab.Hide();
-
- Point aPos = m_aLDAP.GetPosPixel();
- aPos.Y() -= nMoveControlsUp;
-@@ -143,6 +146,7 @@ namespace abp
- {
- nMoveControlsUp = m_aLDAP.GetPosPixel().Y() - m_aEvolution.GetPosPixel().Y();
- m_aEvolution.Hide();
-+ m_aKab.Hide();
-
- aPos = m_aLDAP.GetPosPixel();
- aPos.Y() -= nMoveControlsUp;
-@@ -164,7 +168,7 @@ namespace abp
- AddressBookSourcePage::ActivatePage();
-
- RadioButton* pOptions[] = {
-- &m_aMORK, &m_aThunderbird, &m_aEvolution, &m_aLDAP, &m_aOutlook, &m_aOE, &m_aOther, NULL
-+ &m_aMORK, &m_aThunderbird, &m_aEvolution, &m_aKab, &m_aLDAP, &m_aOutlook, &m_aOE, &m_aOther, NULL
- };
- for ( RadioButton** pCheck = pOptions; *pCheck; ++pCheck )
- if ( (*pCheck)->IsChecked() )
-@@ -188,6 +194,7 @@ namespace abp
- {
- m_aMORK.Check(AST_MORK == _eType);
- m_aEvolution.Check(AST_EVOLUTION == _eType);
-+ m_aKab.Check(AST_KAB == _eType);
- m_aLDAP.Check(AST_LDAP == _eType);
- m_aOutlook.Check(AST_OUTLOOK == _eType);
- m_aOE.Check(AST_OE == _eType);
-@@ -201,6 +208,8 @@ namespace abp
- return AST_MORK;
- else if (m_aEvolution.IsChecked())
- return AST_EVOLUTION;
-+ else if (m_aKab.IsChecked())
-+ return AST_KAB;
- else if (m_aLDAP.IsChecked())
- return AST_LDAP;
- else if (m_aOutlook.IsChecked())
-Index: extensions/source/abpilot/typeselectionpage.hxx
-===================================================================
-RCS file: /cvs/util/extensions/source/abpilot/typeselectionpage.hxx,v
-retrieving revision 1.5
-retrieving revision 1.5.272.1
-diff -u -p -u -p -r1.5 -r1.5.272.1
---- extensions/source/abpilot/typeselectionpage.hxx 19 May 2004 13:38:39 -0000 1.5
-+++ extensions/source/abpilot/typeselectionpage.hxx 29 Aug 2005 08:55:14 -0000 1.5.272.1
-@@ -87,6 +87,7 @@ namespace abp
- FixedLine m_aTypeSep;
- RadioButton m_aMORK;
- RadioButton m_aEvolution;
-+ RadioButton m_aKab;
- RadioButton m_aLDAP;
- RadioButton m_aOutlook;
- RadioButton m_aOE;
diff --git a/patches/src680/cws-mdbdriver01.diff b/patches/src680/cws-mdbdriver01.diff
deleted file mode 100644
index 2ec1f9c59..000000000
--- a/patches/src680/cws-mdbdriver01.diff
+++ /dev/null
@@ -1,180 +0,0 @@
-Index: connectivity/prj/build.lst
-===================================================================
-RCS file: /cvs/dba/connectivity/prj/build.lst,v
-retrieving revision 1.20
-retrieving revision 1.18.134.2
-diff -u -p -r1.20 -r1.18.134.2
---- connectivity/prj/build.lst 10 Nov 2004 13:46:13 -0000 1.20
-+++ connectivity/prj/build.lst 28 Jan 2005 06:43:31 -0000 1.18.134.2
-@@ -1,4 +1,4 @@
--cn connectivity : comphelper MOZ:moz SO:moz_prebuilt svtools UNIXODBC:unixODBC unoil jurt javaunohelper hsqldb NULL
-+cn connectivity : comphelper MOZ:moz SO:moz_prebuilt svtools unixODBC unoil jurt javaunohelper hsqldb mdbtools NULL
- cn connectivity usr1 - all cn_mkout NULL
- cn connectivity\com\sun\star\sdbcx\comp\hsqldb nmake - all cn_jhsqldbdb cn_hsqldb NULL
- cn connectivity\source\types nmake - all cn_types NULL
-@@ -19,6 +19,7 @@ cn connectivity\source\drivers\adabas n
- cn connectivity\source\drivers\file nmake - all cn_file cn_dbtools NULL
- cn connectivity\source\drivers\flat nmake - all cn_flat cn_dbtools cn_file NULL
- cn connectivity\source\drivers\dbase nmake - all cn_dbase cn_dbtools cn_file NULL
-+cn connectivity\source\drivers\mdb nmake - u cn_mdb cn_dbtools cn_file NULL
- cn connectivity\source\drivers\hsqldb nmake - all cn_hsqldb cn_dbtools NULL
- cn connectivity\source\parse nmake - all cn_parse cn_types NULL
- cn connectivity\source\simpledbt nmake - all cn_simpledbt cn_cmtools NULL
-Index: connectivity/prj/d.lst
-===================================================================
-RCS file: /cvs/dba/connectivity/prj/d.lst,v
-retrieving revision 1.21
-retrieving revision 1.20.26.2
-diff -u -p -r1.21 -r1.20.26.2
---- connectivity/prj/d.lst 9 Nov 2004 12:07:13 -0000 1.21
-+++ connectivity/prj/d.lst 28 Jan 2005 06:43:45 -0000 1.20.26.2
-@@ -15,6 +15,7 @@
- ..\source\drivers\evoab\*.xml %_DEST%\xml%_EXT%\*.xml
- ..\source\drivers\calc\*.xml %_DEST%\xml%_EXT%\*.xml
- ..\source\drivers\mysql\*.xml %_DEST%\xml%_EXT%\*.xml
-+..\source\drivers\mdb\*.xml %_DEST%\xml%_EXT%\*.xml
- ..\%__SRC%\class\*.jar %_DEST%\bin%_EXT%\*.jar
-
- mkdir: %_DEST%\inc%_EXT%\connectivity
-Index: officecfg/registry/data/org/openoffice/Office/DataAccess.xcu
-===================================================================
-RCS file: /cvs/util/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu,v
-retrieving revision 1.20
-retrieving revision 1.18.78.2
-diff -u -p -r1.20 -r1.18.78.2
---- officecfg/registry/data/org/openoffice/Office/DataAccess.xcu 17 Nov 2004 14:07:13 -0000 1.20
-+++ officecfg/registry/data/org/openoffice/Office/DataAccess.xcu 27 Jan 2005 09:13:18 -0000 1.18.78.2
-@@ -777,6 +777,19 @@
- </node>
- </node>
- </node>
-+ <node oor:name="UserDefinedDriverSettings">
-+ <node oor:name="MDB Driver" oor:op="replace">
-+ <prop oor:name="DriverPageDisplayName">
-+ <value>MDB-SDBC Driver V 0.1</value>
-+ </prop>
-+ <prop oor:name="DriverTypeDisplayName">
-+ <value>mdb</value>
-+ </prop>
-+ <prop oor:name="DriverDsnPrefix">
-+ <value>sdbc:mdb:</value>
-+ </prop>
-+ </node>
-+ </node>
- </oor:component-data>
-
-
-Index: dbaccess/source/ui/dlg/detailpages.cxx
-===================================================================
-RCS file: /cvs/dba/dbaccess/source/ui/dlg/detailpages.cxx,v
-retrieving revision 1.34
-retrieving revision 1.32.16.2
-diff -u -p -r1.34 -r1.32.16.2
---- dbaccess/source/ui/dlg/detailpages.cxx 21 Jan 2005 17:15:13 -0000 1.34
-+++ dbaccess/source/ui/dlg/detailpages.cxx 27 Jan 2005 12:53:17 -0000 1.32.16.2
-@@ -880,10 +880,9 @@ namespace dbaui
- ,m_aEDHostname (this, ResId(ET_HOSTNAME))
- ,m_aPortNumber (this, ResId(FT_PORTNUMBER))
- ,m_aNFPortNumber (this, ResId(NF_PORTNUMBER))
-- ,m_aSeparator2 (this, ResId(FL_DATAHANDLING))
-- ,m_aUseCatalog (this, ResId(CB_USECATALOG))
-+
-+ /* This function depends on dbadmin.src file*/
- {
-- m_aUseCatalog.SetToggleHdl(getControlModifiedLink());
- FreeResource();
- }
-
-@@ -900,7 +899,6 @@ namespace dbaui
-
- fillInt32(_rSet,&m_aNFPortNumber,DSID_CONN_PORTNUMBER,bChangedSomething);
- fillString(_rSet,&m_aEDHostname,DSID_CONN_HOSTNAME,bChangedSomething);
-- fillBool(_rSet,&m_aUseCatalog,DSID_USECATALOG,bChangedSomething);
-
- return bChangedSomething;
- }
-@@ -909,7 +907,6 @@ namespace dbaui
- {
- OCommonBehaviourTabPage::fillControls(_rControlList);
- _rControlList.push_back(new OSaveValueWrapper<Edit>(&m_aEDHostname));
-- _rControlList.push_back(new OSaveValueWrapper<CheckBox>(&m_aUseCatalog));
- _rControlList.push_back(new OSaveValueWrapper<NumericField>(&m_aNFPortNumber));
- }
- // -----------------------------------------------------------------------
-@@ -918,7 +915,6 @@ namespace dbaui
- OCommonBehaviourTabPage::fillWindows(_rControlList);
- _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aFTHostname));
- _rControlList.push_back(new ODisableWrapper<FixedText>(&m_aPortNumber));
-- _rControlList.push_back(new ODisableWrapper<FixedLine>(&m_aSeparator2));
- }
- // -----------------------------------------------------------------------
- void OUserDriverDetailsPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue)
-@@ -927,7 +923,6 @@ namespace dbaui
- sal_Bool bValid, bReadonly;
- getFlags(_rSet, bValid, bReadonly);
-
-- SFX_ITEMSET_GET(_rSet, pUseCatalogItem, SfxBoolItem, DSID_USECATALOG, sal_True);
- SFX_ITEMSET_GET(_rSet, pHostName, SfxStringItem, DSID_CONN_HOSTNAME, sal_True);
- SFX_ITEMSET_GET(_rSet, pPortNumber, SfxInt32Item, DSID_CONN_PORTNUMBER, sal_True);
-
-@@ -939,7 +934,6 @@ namespace dbaui
- m_aNFPortNumber.SetValue(pPortNumber->GetValue());
- m_aNFPortNumber.ClearModifyFlag();
-
-- m_aUseCatalog.Check(pUseCatalogItem->GetValue());
- }
-
- OCommonBehaviourTabPage::implInitControls(_rSet, _bSaveValue);
-Index: dbaccess/source/ui/dlg/detailpages.hxx
-===================================================================
-RCS file: /cvs/dba/dbaccess/source/ui/dlg/detailpages.hxx,v
-retrieving revision 1.21
-retrieving revision 1.20.16.2
-diff -u -p -r1.21 -r1.20.16.2
---- dbaccess/source/ui/dlg/detailpages.hxx 27 Oct 2004 13:03:38 -0000 1.21
-+++ dbaccess/source/ui/dlg/detailpages.hxx 27 Jan 2005 12:53:44 -0000 1.20.16.2
-@@ -255,8 +255,7 @@ namespace dbaui
- Edit m_aEDHostname;
- FixedText m_aPortNumber;
- NumericField m_aNFPortNumber;
-- FixedLine m_aSeparator2;
-- CheckBox m_aUseCatalog;
-+ /* This function depends on dbadmin.src file*/
- };
-
- //========================================================================
-Index: scp2/source/ooo/file_library_ooo.scp
-===================================================================
-RCS file: /cvs/installation/scp2/source/ooo/file_library_ooo.scp,v
-retrieving revision 1.80
-retrieving revision 1.32.8.3
-diff -u -p -r1.80 -r1.32.8.3
---- scp2/source/ooo/file_library_ooo.scp 25 Jan 2005 09:40:50 -0000 1.80
-+++ scp2/source/ooo/file_library_ooo.scp 27 Jan 2005 14:45:43 -0000 1.32.8.3
-@@ -2039,6 +2039,13 @@ File gid_File_Lib_Sunjavaplugin
- End
- #endif
-
-+#ifdef ENABLE_ACCESS
-+#ifdef UNX
-+STD_UNO_LIB_FILE( gid_File_Lib_Mdb2, mdb )
-+STD_UNO_LIB_FILE( gid_File_Lib_Mdb2_Impl, mdbimpl )
-+#endif
-+#endif
-+
- // AVMedia
- STD_LIB_FILE( gid_File_Lib_AVMedia, avmedia )
-
---- scp2/source/ooo/makefile.mk 2005-08-04 18:45:47.285289074 +0530
-+++ scp2/source/ooo/makefile.mk 2005-08-04 18:44:13.069615555 +0530
-@@ -142,6 +142,10 @@
- SCPDEFS+=-DSYSTEM_CURL
- .ENDIF
-
-+.IF "$(ENABLE_ACCESS)" == "YES"
-+SCPDEFS+=-DENABLE_ACCESS
-+.ENDIF
-+
- .IF "$(WITH_BINFILTER)" == "NO"
- SCPDEFS+=-DWITHOUT_BINFILTER
- .ENDIF
diff --git a/patches/src680/cws-sb41.diff b/patches/src680/cws-sb41.diff
deleted file mode 100644
index 662163e3f..000000000
--- a/patches/src680/cws-sb41.diff
+++ /dev/null
@@ -1,2281 +0,0 @@
-Index: bridges/inc/bridges/remote/marshal.hxx
-===================================================================
-RCS file: /cvs/udk/bridges/inc/bridges/remote/marshal.hxx,v
-retrieving revision 1.2
-retrieving revision 1.2.18.1
-diff -u -p -r1.2 -r1.2.18.1
---- bridges/inc/bridges/remote/marshal.hxx 7 Sep 2005 22:12:40 -0000 1.2
-+++ bridges/inc/bridges/remote/marshal.hxx 25 Nov 2005 09:11:24 -0000 1.2.18.1
-@@ -33,6 +33,9 @@
- *
- ************************************************************************/
- #include <com/sun/star/uno/Sequence.hxx>
-+#ifndef INCLUDED_CPPU_UNOTYPE_HXX
-+#include "cppu/unotype.hxx"
-+#endif
-
- typedef struct _uno_Environment uno_Environment;
- struct remote_Interface;
-@@ -84,7 +87,7 @@ private:
- template < class C >
- inline void operator <<= (Marshal & r, C& value)
- {
-- r.pack( &value, getCppuType( &value ) );
-+ r.pack( &value, cppu::getTypeFavourUnsigned( &value ) );
- }
-
- }
-Index: bridges/inc/bridges/remote/unmarshal.hxx
-===================================================================
-RCS file: /cvs/udk/bridges/inc/bridges/remote/unmarshal.hxx,v
-retrieving revision 1.3
-retrieving revision 1.3.18.1
-diff -u -p -r1.3 -r1.3.18.1
---- bridges/inc/bridges/remote/unmarshal.hxx 7 Sep 2005 22:13:57 -0000 1.3
-+++ bridges/inc/bridges/remote/unmarshal.hxx 25 Nov 2005 09:11:25 -0000 1.3.18.1
-@@ -38,6 +38,10 @@
- #include <com/sun/star/uno/Sequence.hxx>
- #include <uno/data.h>
-
-+#ifndef INCLUDED_CPPU_UNOTYPE_HXX
-+#include "cppu/unotype.hxx"
-+#endif
-+
- #include <bridges/remote/remote.h>
- #include <bridges/remote/context.h>
- #include <bridges/remote/helper.hxx>
-@@ -84,7 +88,8 @@ inline sal_Bool Unmarshal::checkAddition
- template < class C >
- inline sal_Bool operator >>= (Unmarshal & r, C& value)
- {
-- return r.unpackAndDestruct( &value , getCppuType( &value ) );
-+ return r.unpackAndDestruct(
-+ &value , cppu::getTypeFavourUnsigned( &value ) );
- }
-
- }
-Index: codemaker/source/cppumaker/cpputype.cxx
-===================================================================
-RCS file: /cvs/udk/codemaker/source/cppumaker/cpputype.cxx,v
-retrieving revision 1.35
-retrieving revision 1.35.10.1
-diff -u -p -r1.35 -r1.35.10.1
---- codemaker/source/cppumaker/cpputype.cxx 8 Sep 2005 02:12:25 -0000 1.35
-+++ codemaker/source/cppumaker/cpputype.cxx 24 Nov 2005 08:21:08 -0000 1.35.10.1
-@@ -289,7 +289,6 @@ CppuType::CppuType(typereg::Reader& type
- : m_inheritedMemberCount(0)
- , m_cppuTypeLeak(sal_False)
- , m_cppuTypeDynamic(sal_True)
-- , m_cppuTypeStatic(sal_False)
- , m_indentLength(0)
- , m_typeName(typeName)
- , m_name(typeName.copy(typeName.lastIndexOf('/') + 1))
-@@ -310,6 +309,7 @@ void CppuType::addGetCppuTypeIncludes(co
- || m_typeName.equals("com/sun/star/uno/Exception"))
- {
- includes.addType();
-+ includes.addCppuUnotypeHxx();
- includes.addSalTypesH();
- includes.addTypelibTypeclassH();
- includes.addTypelibTypedescriptionH();
-@@ -332,6 +332,7 @@ void CppuType::addLightGetCppuTypeInclud
- {
- //TODO: Determine what is really needed, instead of relying on
- // addDefaultHxxIncludes
-+ includes.addCppuUnotypeHxx();
- }
-
- void CppuType::addNormalGetCppuTypeIncludes(
-@@ -339,6 +340,7 @@ void CppuType::addNormalGetCppuTypeInclu
- {
- //TODO: Determine what is really needed, instead of relying on
- // addDefaultHxxIncludes
-+ includes.addCppuUnotypeHxx();
- }
-
- void CppuType::addComprehensiveGetCppuTypeIncludes(
-@@ -346,6 +348,63 @@ void CppuType::addComprehensiveGetCppuTy
- {
- //TODO: Determine what is really needed, instead of relying on
- // addDefaultHxxIncludes
-+ includes.addCppuUnotypeHxx();
-+}
-+
-+bool CppuType::isPolymorphic() const { return false; }
-+
-+void CppuType::dumpTemplateHead(FileStream & out) const {}
-+
-+void CppuType::dumpTemplateParameters(FileStream &) const {}
-+
-+void CppuType::dumpGetCppuTypePreamble(FileStream & out) {
-+ if (isPolymorphic()) {
-+ out << "namespace cppu {\n\n";
-+ dumpTemplateHead(out);
-+ out << "class UnoType< ";
-+ dumpType(out, m_typeName);
-+ dumpTemplateParameters(out);
-+ out << " > {\npublic:\n";
-+ inc();
-+ out << indent()
-+ << "static inline ::com::sun::star::uno::Type const & get() {\n";
-+ } else {
-+ if (codemaker::cppumaker::dumpNamespaceOpen(out, m_typeName, false)) {
-+ out << "\n\n";
-+ }
-+ out << "inline ::com::sun::star::uno::Type const & cppu_getUnoType(";
-+ dumpType(out, m_typeName, false, false, true);
-+ out << " const *) {\n";
-+ }
-+ inc();
-+}
-+
-+void CppuType::dumpGetCppuTypePostamble(FileStream & out) {
-+ dec();
-+ if (isPolymorphic()) {
-+ out << indent() << "}\n\nprivate:\n"
-+ << indent() << "UnoType(UnoType &); // not defined\n"
-+ << indent() << "~UnoType(); // not defined\n"
-+ << indent()
-+ << "void operator =(UnoType); // not defined\n};\n\n}\n\n";
-+ } else {
-+ out << "};\n\n";
-+ if (codemaker::cppumaker::dumpNamespaceClose(out, m_typeName, false)) {
-+ out << "\n\n";
-+ }
-+ }
-+ dumpTemplateHead(out);
-+ out << "inline ::com::sun::star::uno::Type const & SAL_CALL getCppuType(";
-+ dumpType(out, m_typeName);
-+ dumpTemplateParameters(out);
-+ out << " const *) SAL_THROW(()) {\n";
-+ inc();
-+ out << indent() << "return ::cppu::UnoType< ";
-+ dumpType(out, m_typeName);
-+ dumpTemplateParameters(out);
-+ out << " >::get();\n";
-+ dec();
-+ out << indent() << "}\n";
- }
-
- sal_Bool CppuType::dump(CppuOptions* pOptions)
-@@ -360,13 +419,8 @@ sal_Bool CppuType::dump(CppuOptions* pOp
-
- if (pOptions->isValid("-L"))
- m_cppuTypeLeak = sal_True;
-- if (pOptions->isValid("-C"))
-+ if (pOptions->isValid("-C") || pOptions->isValid("-CS"))
- m_cppuTypeDynamic = sal_False;
-- if (pOptions->isValid("-CS"))
-- {
-- m_cppuTypeDynamic = sal_False;
-- m_cppuTypeStatic = sal_True;
-- }
-
- OString outPath;
- if (pOptions->isValid("-O"))
-@@ -575,9 +629,8 @@ void CppuType::dumpGetCppuType(FileStrea
- out << " *) SAL_THROW(()) {\n";
- inc();
- out << indent()
-- << ("return *reinterpret_cast< const ::com::sun::star::uno::Type *"
-- " >(::typelib_static_type_getByTypeClass("
-- "typelib_TypeClass_INTERFACE));\n");
-+ << ("return ::cppu::UnoType< ::com::sun::star::uno::XInterface"
-+ " >::get();\n");
- dec();
- out << indent() << "}\n";
- } else if (m_typeName.equals("com/sun/star/uno/Exception")) {
-@@ -588,9 +641,8 @@ void CppuType::dumpGetCppuType(FileStrea
- out << " *) SAL_THROW(()) {\n";
- inc();
- out << indent()
-- << ("return *reinterpret_cast< const ::com::sun::star::uno::Type *"
-- " >(::typelib_static_type_getByTypeClass("
-- "typelib_TypeClass_EXCEPTION));\n");
-+ << ("return ::cppu::UnoType< ::com::sun::star::uno::Exception"
-+ " >::get();\n");
- dec();
- out << indent() << "}\n";
- } else if (m_cppuTypeLeak) {
-@@ -604,18 +656,7 @@ void CppuType::dumpGetCppuType(FileStrea
-
- void CppuType::dumpLightGetCppuType(FileStream& o)
- {
-- if (m_reader.getTypeClass() == RT_TYPE_TYPEDEF)
-- {
-- o << "inline const ::com::sun::star::uno::Type& SAL_CALL get_"
-- << m_typeName.replace('/', '_') << "_Type( ) SAL_THROW( () )\n{\n";
-- } else
-- {
-- o << "inline const ::com::sun::star::uno::Type& SAL_CALL getCppuType( ";
-- dumpType(o, m_typeName, sal_True, sal_False);
-- o << "* ) SAL_THROW( () )\n{\n";
-- }
-- inc();
--
-+ dumpGetCppuTypePreamble(o);
- o << indent()
- << "static typelib_TypeDescriptionReference * the_type = 0;\n";
-
-@@ -628,18 +669,12 @@ void CppuType::dumpLightGetCppuType(File
- o << indent()
- << ("return * reinterpret_cast< ::com::sun::star::uno::Type * >("
- " &the_type );\n");
-- dec();
-- o << indent() << "}\n";
--
-- return;
-+ dumpGetCppuTypePostamble(o);
- }
-
- void CppuType::dumpNormalGetCppuType(FileStream& o)
- {
-- o << "inline const ::com::sun::star::uno::Type& SAL_CALL getCppuType( ";
-- dumpType(o, m_typeName, sal_True, sal_False);
-- o << "* ) SAL_THROW( () )\n{\n";
-- inc();
-+ dumpGetCppuTypePreamble(o);
-
- o << indent()
- << "static typelib_TypeDescriptionReference * the_type = 0;\n";
-@@ -742,22 +777,12 @@ void CppuType::dumpNormalGetCppuType(Fil
- << ("return * reinterpret_cast< const ::com::sun::star::uno::Type * >("
- " &the_type );\n");
-
-- dec();
-- o << indent() << "}\n";
--
-- return;
-+ dumpGetCppuTypePostamble(o);
- }
-
- void CppuType::dumpComprehensiveGetCppuType(FileStream& o)
- {
-- if (m_cppuTypeStatic)
-- o << "static";
-- else
-- o << "inline";
-- o << " const ::com::sun::star::uno::Type& SAL_CALL getCppuType( ";
-- dumpType(o, m_typeName, sal_True, sal_False);
-- o << "* ) SAL_THROW( () )\n{\n";
-- inc();
-+ dumpGetCppuTypePreamble(o);
-
- o << indent() << "static ::com::sun::star::uno::Type * the_pType = 0;\n";
-
-@@ -861,8 +886,7 @@ void CppuType::dumpComprehensiveGetCppuT
- dec();
- o << indent() << "}\n\n";
- o << indent() << "return *the_pType;\n";
-- dec();
-- o << "}\n";
-+ dumpGetCppuTypePostamble(o);
- }
-
- void CppuType::dumpCppuGetTypeMemberDecl(FileStream& o, CppuTypeDecl eDeclFlag)
-@@ -1443,12 +1467,7 @@ sal_Bool InterfaceType::dumpHFile(
- o << "\n";
- }
-
-- o << "\n";
-- if (m_cppuTypeStatic)
-- o << "static";
-- else
-- o << "inline";
-- o << " const ::com::sun::star::uno::Type& SAL_CALL getCppuType( ";
-+ o << "\ninline const ::com::sun::star::uno::Type& SAL_CALL getCppuType( ";
- dumpType(o, m_typeName, sal_True, sal_False);
- o << "* ) SAL_THROW( () );\n\n";
-
-@@ -1635,10 +1654,7 @@ void InterfaceType::dumpMethods(FileStre
-
- void InterfaceType::dumpNormalGetCppuType(FileStream& o)
- {
-- o << "inline const ::com::sun::star::uno::Type& SAL_CALL getCppuType( ";
-- dumpType(o, m_typeName, sal_True, sal_False);
-- o << "* ) SAL_THROW( () )\n{\n";
-- inc();
-+ dumpGetCppuTypePreamble(o);
-
- o << indent()
- << "static typelib_TypeDescriptionReference * the_type = 0;\n";
-@@ -1684,22 +1700,12 @@ void InterfaceType::dumpNormalGetCppuTyp
- << ("return * reinterpret_cast< ::com::sun::star::uno::Type * >("
- " &the_type );\n");
-
-- dec();
-- o << indent() << "}\n";
--
-- return;
-+ dumpGetCppuTypePostamble(o);
- }
-
- void InterfaceType::dumpComprehensiveGetCppuType(FileStream& o)
- {
-- if (m_cppuTypeStatic)
-- o << "static";
-- else
-- o << "inline";
-- o << " const ::com::sun::star::uno::Type& SAL_CALL getCppuType( ";
-- dumpType(o, m_typeName, sal_True, sal_False);
-- o << "* ) SAL_THROW( () )\n{\n";
-- inc();
-+ dumpGetCppuTypePreamble(o);
-
- o << indent() << "static ::com::sun::star::uno::Type * the_pType = 0;\n";
-
-@@ -1807,8 +1813,7 @@ void InterfaceType::dumpComprehensiveGet
- o << indent() << "}\n\n"
- << indent() << "return *the_pType;\n";
-
-- dec();
-- o << "}\n";
-+ dumpGetCppuTypePostamble(o);
- }
-
- void InterfaceType::dumpCppuAttributeRefs(FileStream& o, sal_uInt32& index)
-@@ -1964,6 +1969,7 @@ void InterfaceType::addComprehensiveGetC
- {
- // The comprehensive getCppuType method always includes a line
- // "getCppuType( (const ::com::sun::star::uno::RuntimeException*)0 );":
-+ includes.addCppuUnotypeHxx();
- includes.add("com/sun/star/uno/RuntimeException");
- }
-
-@@ -2540,11 +2546,7 @@ sal_Bool StructureType::dumpHFile(
- << "class Type;\n} } } }\n\n";
-
- dumpTemplateHead(o);
-- if (m_cppuTypeStatic)
-- o << "static";
-- else
-- o << "inline";
-- o << " const ::com::sun::star::uno::Type& SAL_CALL getCppuType( ";
-+ o << "inline const ::com::sun::star::uno::Type& SAL_CALL getCppuType( ";
- dumpType(o, m_typeName, sal_True, sal_False);
- dumpTemplateParameters(o);
- o << "* );\n\n";
-@@ -3123,6 +3125,7 @@ void StructureType::addLightGetCppuTypeI
- codemaker::cppumaker::Includes & includes) const
- {
- includes.addType();
-+ includes.addCppuUnotypeHxx();
- includes.addSalTypesH();
- includes.addTypelibTypeclassH();
- includes.addTypelibTypedescriptionH();
-@@ -3137,6 +3140,7 @@ void StructureType::addNormalGetCppuType
- codemaker::cppumaker::Includes & includes) const
- {
- includes.addType();
-+ includes.addCppuUnotypeHxx();
- includes.addSalTypesH();
- includes.addTypelibTypeclassH();
- includes.addTypelibTypedescriptionH();
-@@ -3151,6 +3155,7 @@ void StructureType::addComprehensiveGetC
- codemaker::cppumaker::Includes & includes) const
- {
- includes.addType();
-+ includes.addCppuUnotypeHxx();
- includes.addOslDoublecheckedlockingH();
- includes.addOslMutexHxx();
- includes.addRtlUstringH();
-@@ -3207,22 +3212,6 @@ void StructureType::dumpTemplateParamete
- }
- }
-
--void StructureType::dumpGetCppuTypePreamble(FileStream & out) {
-- out << indent();
-- dumpTemplateHead(out);
-- out << (m_cppuTypeStatic ? "static" : "inline")
-- << " ::com::sun::star::uno::Type const & SAL_CALL getCppuType(";
-- dumpType(out, m_typeName);
-- dumpTemplateParameters(out);
-- out << " const *) {\n";
-- inc();
--}
--
--void StructureType::dumpGetCppuTypePostamble(FileStream & out) {
-- dec();
-- out << indent() << "}\n";
--}
--
- //*************************************************************************
- // ExceptionType
- //*************************************************************************
-@@ -3262,11 +3251,7 @@ sal_Bool ExceptionType::dumpHFile(
- o << "\nnamespace com { namespace sun { namespace star { namespace uno {\n"
- << "class Type;\n} } } }\n\n";
-
-- if (m_cppuTypeStatic)
-- o << "static";
-- else
-- o << "inline";
-- o << " const ::com::sun::star::uno::Type& SAL_CALL getCppuType( ";
-+ o << "inline const ::com::sun::star::uno::Type& SAL_CALL getCppuType( ";
- dumpType(o, m_typeName, sal_True, sal_False);
- o << "* ) SAL_THROW( () );\n\n";
-
-@@ -3648,11 +3633,7 @@ sal_Bool EnumType::dumpHFile(
- o << "\nnamespace com { namespace sun { namespace star { namespace uno {\n"
- << "class Type;\n} } } }\n\n";
-
-- if (m_cppuTypeStatic)
-- o << "static";
-- else
-- o << "inline";
-- o << " const ::com::sun::star::uno::Type& SAL_CALL getCppuType( ";
-+ o << "inline const ::com::sun::star::uno::Type& SAL_CALL getCppuType( ";
- dumpType(o, m_typeName, sal_True, sal_False);
- o << "* ) SAL_THROW( () );\n\n";
-
-@@ -3718,10 +3699,7 @@ sal_Bool EnumType::dumpHxxFile(
-
- void EnumType::dumpNormalGetCppuType(FileStream& o)
- {
-- o << "inline const ::com::sun::star::uno::Type& SAL_CALL getCppuType( ";
-- dumpType(o, m_typeName, sal_True, sal_False);
-- o << "* ) SAL_THROW( () )\n{\n";
-- inc();
-+ dumpGetCppuTypePreamble(o);
-
- o << indent()
- << "static typelib_TypeDescriptionReference * the_type = 0;\n";
-@@ -3741,22 +3719,12 @@ void EnumType::dumpNormalGetCppuType(Fil
- o << indent()
- << ("return * reinterpret_cast< ::com::sun::star::uno::Type * >("
- " &the_type );\n");
-- dec();
-- o << indent() << "}\n";
--
-- return;
-+ dumpGetCppuTypePostamble(o);
- }
-
- void EnumType::dumpComprehensiveGetCppuType(FileStream& o)
- {
-- if (m_cppuTypeStatic)
-- o << "static";
-- else
-- o << "inline";
-- o << " const ::com::sun::star::uno::Type& SAL_CALL getCppuType( ";
-- dumpType(o, m_typeName, sal_True, sal_False);
-- o << "* ) SAL_THROW( () )\n{\n";
-- inc();
-+ dumpGetCppuTypePreamble(o);
-
- o << indent() << "static ::com::sun::star::uno::Type * the_pType = 0;\n";
-
-@@ -3826,8 +3794,7 @@ void EnumType::dumpComprehensiveGetCppuT
- o << indent() << "}\n\n"
- << indent() << "return *the_pType;\n";
-
-- dec();
-- o << "}\n";
-+ dumpGetCppuTypePostamble(o);
- }
-
- //*************************************************************************
-Index: codemaker/source/cppumaker/cpputype.hxx
-===================================================================
-RCS file: /cvs/udk/codemaker/source/cppumaker/cpputype.hxx,v
-retrieving revision 1.8
-retrieving revision 1.8.10.1
-diff -u -p -r1.8 -r1.8.10.1
---- codemaker/source/cppumaker/cpputype.hxx 8 Sep 2005 02:12:40 -0000 1.8
-+++ codemaker/source/cppumaker/cpputype.hxx 24 Nov 2005 08:21:09 -0000 1.8.10.1
-@@ -130,6 +130,16 @@ protected:
- virtual void addComprehensiveGetCppuTypeIncludes(
- codemaker::cppumaker::Includes & includes) const;
-
-+ virtual bool isPolymorphic() const;
-+
-+ virtual void dumpTemplateHead(FileStream & out) const;
-+
-+ virtual void dumpTemplateParameters(FileStream & out) const;
-+
-+ void dumpGetCppuTypePreamble(FileStream & out);
-+
-+ void dumpGetCppuTypePostamble(FileStream & out);
-+
- void addDefaultHIncludes(codemaker::cppumaker::Includes & includes) const;
- void addDefaultHxxIncludes(codemaker::cppumaker::Includes & includes) const;
-
-@@ -141,7 +151,6 @@ protected:
-
- sal_Bool m_cppuTypeLeak;
- sal_Bool m_cppuTypeDynamic;
-- sal_Bool m_cppuTypeStatic;
- sal_uInt32 m_indentLength;
- ::rtl::OString m_typeName;
- ::rtl::OString m_name;
-@@ -275,16 +284,11 @@ protected:
- virtual void addComprehensiveGetCppuTypeIncludes(
- codemaker::cppumaker::Includes & includes) const;
-
--private:
-- bool isPolymorphic() const;
--
-- void dumpTemplateHead(FileStream & out) const;
-+ virtual bool isPolymorphic() const;
-
-- void dumpTemplateParameters(FileStream & out) const;
-+ virtual void dumpTemplateHead(FileStream & out) const;
-
-- void dumpGetCppuTypePreamble(FileStream & out);
--
-- void dumpGetCppuTypePostamble(FileStream & out);
-+ virtual void dumpTemplateParameters(FileStream & out) const;
- };
-
- class ExceptionType : public CppuType
-Index: codemaker/source/cppumaker/includes.cxx
-===================================================================
-RCS file: /cvs/udk/codemaker/source/cppumaker/includes.cxx,v
-retrieving revision 1.3
-retrieving revision 1.3.12.1
-diff -u -p -r1.3 -r1.3.12.1
---- codemaker/source/cppumaker/includes.cxx 8 Sep 2005 02:13:24 -0000 1.3
-+++ codemaker/source/cppumaker/includes.cxx 24 Nov 2005 08:21:09 -0000 1.3.12.1
-@@ -58,10 +58,11 @@ Includes::Includes(
- m_includeAny(dependencies.hasAnyDependency()), m_includeReference(false),
- m_includeSequence(dependencies.hasSequenceDependency()),
- m_includeType(dependencies.hasTypeDependency()),
-- m_includeCppuMacrosHxx(false), m_includeOslDoublecheckedlockingH(false),
-- m_includeOslMutexHxx(false), m_includeRtlStrbufHxx(false),
-- m_includeRtlStringH(false), m_includeRtlTextencH(false),
-- m_includeRtlUstrbufHxx(false), m_includeRtlUstringH(false),
-+ m_includeCppuMacrosHxx(false), m_includeCppuUnotypeHxx(false),
-+ m_includeOslDoublecheckedlockingH(false), m_includeOslMutexHxx(false),
-+ m_includeRtlStrbufHxx(false), m_includeRtlStringH(false),
-+ m_includeRtlTextencH(false), m_includeRtlUstrbufHxx(false),
-+ m_includeRtlUstringH(false),
- m_includeRtlUstringHxx(dependencies.hasStringDependency()),
- m_includeSalTypesH(
- dependencies.hasBooleanDependency() || dependencies.hasByteDependency()
-@@ -227,6 +228,11 @@ void Includes::dump(FileStream & out, rt
- dumpEmptyLineBeforeFirst(out, &first);
- out << ("#ifndef _CPPU_MACROS_HXX_\n"
- "#include \"cppu/macros.hxx\"\n#endif\n");
-+ }
-+ if (m_includeCppuUnotypeHxx) {
-+ dumpEmptyLineBeforeFirst(out, &first);
-+ out << ("#ifndef INCLUDED_CPPU_UNOTYPE_HXX\n"
-+ "#include \"cppu/unotype.hxx\"\n#endif\n");
- }
- if (m_includeOslDoublecheckedlockingH) {
- dumpEmptyLineBeforeFirst(out, &first);
-Index: codemaker/source/cppumaker/includes.hxx
-===================================================================
-RCS file: /cvs/udk/codemaker/source/cppumaker/includes.hxx,v
-retrieving revision 1.3
-retrieving revision 1.3.12.1
-diff -u -p -r1.3 -r1.3.12.1
---- codemaker/source/cppumaker/includes.hxx 8 Sep 2005 02:13:38 -0000 1.3
-+++ codemaker/source/cppumaker/includes.hxx 24 Nov 2005 08:21:09 -0000 1.3.12.1
-@@ -65,6 +65,8 @@ public:
-
- void addCppuMacrosHxx() { m_includeCppuMacrosHxx = true; }
-
-+ void addCppuUnotypeHxx() { m_includeCppuUnotypeHxx = true; }
-+
- void addOslDoublecheckedlockingH()
- { m_includeOslDoublecheckedlockingH = true; }
-
-@@ -109,6 +111,7 @@ private:
- bool m_includeSequence;
- bool m_includeType;
- bool m_includeCppuMacrosHxx;
-+ bool m_includeCppuUnotypeHxx;
- bool m_includeOslDoublecheckedlockingH;
- bool m_includeOslMutexHxx;
- bool m_includeRtlStrbufHxx;
---- comphelper/inc/comphelper/IdPropArrayHelper.hxx.old 2005-09-08 04:23:01.000000000 +0200
-+++ comphelper/inc/comphelper/IdPropArrayHelper.hxx 2005-12-07 19:53:49.000000000 +0100
-@@ -55,12 +55,13 @@
- #endif
- #include <cppuhelper/propshlp.hxx>
-
-+namespace cppu { class IPropertyArrayHelper; }
-+
- namespace comphelper
- {
- //************************************************************
- // OIdPropertyArrayUsageHelper
- //************************************************************
-- namespace cppu { class IPropertyArrayHelper; }
- template <typename TYPE> struct OIdPropertyArrayUsageHelperMutex
- : public rtl::Static< ::osl::Mutex, OIdPropertyArrayUsageHelperMutex<TYPE> > {};
-
---- comphelper/inc/comphelper/extract.hxx.old 2005-09-08 04:30:55.000000000 +0200
-+++ comphelper/inc/comphelper/extract.hxx 2005-12-05 12:04:15.000000000 +0100
-@@ -50,7 +50,9 @@
- #ifndef _COM_SUN_STAR_UNO_ANY_HXX_
- #include <com/sun/star/uno/Any.hxx>
- #endif
--
-+#ifndef INCLUDED_CPPU_UNOTYPE_HXX
-+#include "cppu/unotype.hxx"
-+#endif
-
- namespace cppu
- {
-@@ -123,7 +125,7 @@
- template< typename E >
- inline ::com::sun::star::uno::Any SAL_CALL enum2any( E eEnum )
- {
-- return ::com::sun::star::uno::Any( &eEnum, getCppuType((const E*)0) );
-+ return ::com::sun::star::uno::Any( &eEnum, ::cppu::UnoType< E >::get() );
- }
-
- /**
-Index: comphelper/inc/comphelper/property.hxx
-===================================================================
-RCS file: /cvs/util/comphelper/inc/comphelper/property.hxx,v
-retrieving revision 1.7
-retrieving revision 1.7.32.1
-diff -u -p -r1.7 -r1.7.32.1
---- comphelper/inc/comphelper/property.hxx 8 Sep 2005 02:35:26 -0000 1.7
-+++ comphelper/inc/comphelper/property.hxx 28 Nov 2005 13:00:58 -0000 1.7.32.1
-@@ -52,6 +52,9 @@
- #ifndef INCLUDED_COMPHELPERDLLAPI_H
- #include "comphelper/comphelperdllapi.h"
- #endif
-+#ifndef INCLUDED_CPPU_UNOTYPE_HXX
-+#include "cppu/unotype.hxx"
-+#endif
-
- //=========================================================================
- //= property helper classes
-@@ -156,7 +159,8 @@ sal_Bool tryPropertyValue(staruno::Any&
- template <class ENUMTYPE>
- sal_Bool tryPropertyValueEnum(staruno::Any& /*out*/_rConvertedValue, staruno::Any& /*out*/_rOldValue, const staruno::Any& _rValueToSet, const ENUMTYPE& _rCurrentValue)
- {
-- if (getCppuType(&_rCurrentValue).getTypeClass() != staruno::TypeClass_ENUM)
-+ if (cppu::getTypeFavourUnsigned(&_rCurrentValue).getTypeClass()
-+ != staruno::TypeClass_ENUM)
- return tryPropertyValue(_rConvertedValue, _rOldValue, _rValueToSet, _rCurrentValue);
-
- sal_Bool bModified(sal_False);
-Index: comphelper/inc/comphelper/types.hxx
-===================================================================
-RCS file: /cvs/util/comphelper/inc/comphelper/types.hxx,v
-retrieving revision 1.8
-retrieving revision 1.8.32.1
-diff -u -p -r1.8 -r1.8.32.1
---- comphelper/inc/comphelper/types.hxx 8 Sep 2005 02:40:50 -0000 1.8
-+++ comphelper/inc/comphelper/types.hxx 25 Nov 2005 09:10:15 -0000 1.8.32.1
-@@ -61,7 +61,9 @@
- #ifndef INCLUDED_COMPHELPERDLLAPI_H
- #include "comphelper/comphelperdllapi.h"
- #endif
--
-+#ifndef INCLUDED_CPPU_UNOTYPE_HXX
-+#include "cppu/unotype.hxx"
-+#endif
-
- namespace com { namespace sun { namespace star { namespace awt {
- struct FontDescriptor;
-@@ -110,7 +112,7 @@ namespace comphelper
- template <class TYPE>
- sal_Bool isA(const staruno::Type& _rType, TYPE* pDummy)
- {
-- return _rType.equals(getCppuType(pDummy));
-+ return _rType.equals(cppu::getTypeFavourUnsigned(pDummy));
- }
-
- //-------------------------------------------------------------------------
-@@ -120,7 +122,8 @@ namespace comphelper
- template <class TYPE>
- sal_Bool isA(const staruno::Any& _rVal, TYPE* pDummy)
- {
-- return _rVal.getValueType().equals(getCppuType(pDummy));
-+ return _rVal.getValueType().equals(
-+ cppu::getTypeFavourUnsigned(pDummy));
- }
-
- //-------------------------------------------------------------------------
-@@ -129,7 +132,9 @@ namespace comphelper
- template <class TYPE>
- sal_Bool isAReference(const staruno::Type& _rType, TYPE* pDummy)
- {
-- return _rType.equals(getCppuType(reinterpret_cast<staruno::Reference<TYPE>*>(NULL)));
-+ return _rType.equals(
-+ cppu::getTypeFavourUnsigned(
-+ static_cast<staruno::Reference<TYPE>*>(NULL)));
- }
-
- //-------------------------------------------------------------------------
-@@ -138,7 +143,9 @@ namespace comphelper
- template <class TYPE>
- sal_Bool isAReference(const staruno::Any& _rVal, TYPE* pDummy)
- {
-- return _rVal.getValueType().equals(getCppuType(reinterpret_cast<staruno::Reference<TYPE>*>(NULL)));
-+ return _rVal.getValueType().equals(
-+ cppu::getTypeFavourUnsigned(
-+ static_cast<staruno::Reference<TYPE>*>(NULL)));
- }
-
- //-------------------------------------------------------------------------
-Index: cppu/inc/com/sun/star/uno/Any.h
-===================================================================
-RCS file: /cvs/udk/cppu/inc/com/sun/star/uno/Any.h,v
-retrieving revision 1.11
-retrieving revision 1.11.18.1
-diff -u -p -r1.11 -r1.11.18.1
---- cppu/inc/com/sun/star/uno/Any.h 8 Sep 2005 08:32:57 -0000 1.11
-+++ cppu/inc/com/sun/star/uno/Any.h 24 Nov 2005 08:18:07 -0000 1.11.18.1
-@@ -44,6 +44,9 @@
- #ifndef _COM_SUN_STAR_UNO_TYPE_H_
- #include <com/sun/star/uno/Type.h>
- #endif
-+#ifndef INCLUDED_CPPU_UNOTYPE_HXX
-+#include "cppu/unotype.hxx"
-+#endif
-
- #ifndef _RTL_ALLOC_H_
- #include <rtl/alloc.h>
-@@ -385,13 +388,15 @@ inline sal_Bool SAL_CALL operator == ( c
-
- /** Gets the meta type of IDL type any.
-
-+ There are cases (involving templates) where uses of getCppuType are known to
-+ not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead.
-+
- @param dummy typed pointer for function signature
- @return type of IDL type any
- */
- inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const ::com::sun::star::uno::Any * ) SAL_THROW( () )
- {
-- return * reinterpret_cast< const ::com::sun::star::uno::Type * >(
-- ::typelib_static_type_getByTypeClass( typelib_TypeClass_ANY ) );
-+ return ::cppu::UnoType< ::com::sun::star::uno::Any >::get();
- }
-
- #endif
-Index: cppu/inc/com/sun/star/uno/Any.hxx
-===================================================================
-RCS file: /cvs/udk/cppu/inc/com/sun/star/uno/Any.hxx,v
-retrieving revision 1.16
-retrieving revision 1.16.18.1
-diff -u -p -r1.16 -r1.16.18.1
---- cppu/inc/com/sun/star/uno/Any.hxx 8 Sep 2005 08:33:21 -0000 1.16
-+++ cppu/inc/com/sun/star/uno/Any.hxx 24 Nov 2005 08:18:08 -0000 1.16.18.1
-@@ -50,7 +50,9 @@
- #ifndef _COM_SUN_STAR_UNO_GENFUNC_HXX_
- #include <com/sun/star/uno/genfunc.hxx>
- #endif
--
-+#ifndef INCLUDED_CPPU_UNOTYPE_HXX
-+#include "cppu/unotype.hxx"
-+#endif
-
- namespace com
- {
-@@ -72,7 +74,8 @@ template <typename T>
- inline Any::Any( T const & value )
- {
- ::uno_type_any_construct(
-- this, const_cast<T *>(&value), getCppuType(&value).getTypeLibType(),
-+ this, const_cast<T *>(&value),
-+ ::cppu::getTypeFavourUnsigned(&value).getTypeLibType(),
- (uno_AcquireFunc) cpp_acquire );
- }
- //______________________________________________________________________________
-@@ -169,7 +172,7 @@ inline sal_Bool Any::isExtractableTo( co
- template <typename T>
- inline bool Any::has() const
- {
-- Type const & rType = getCppuType( static_cast<T const *>(0) );
-+ Type const & rType = ::cppu::getTypeFavourUnsigned(static_cast< T * >(0));
- return ::uno_type_isAssignableFromData(
- rType.getTypeLibType(), pData, pType,
- (uno_QueryInterfaceFunc) cpp_queryInterface,
-@@ -200,7 +203,7 @@ inline sal_Bool Any::operator != ( const
- template< class C >
- inline Any SAL_CALL makeAny( const C & value ) SAL_THROW( () )
- {
-- return Any( &value, getCppuType( &value ) );
-+ return Any( &value, ::cppu::getTypeFavourUnsigned(&value) );
- }
-
- // additionally specialized for C++ bool
-@@ -216,7 +219,7 @@ inline Any SAL_CALL makeAny( bool const
- template< class C >
- inline void SAL_CALL operator <<= ( Any & rAny, const C & value ) SAL_THROW( () )
- {
-- const Type & rType = getCppuType( &value );
-+ const Type & rType = ::cppu::getTypeFavourUnsigned(&value);
- ::uno_type_any_assign(
- &rAny, const_cast< C * >( &value ), rType.getTypeLibType(),
- (uno_AcquireFunc)cpp_acquire, (uno_ReleaseFunc)cpp_release );
-@@ -237,7 +240,7 @@ inline void SAL_CALL operator <<= ( Any
- template< class C >
- inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, C & value ) SAL_THROW( () )
- {
-- const Type & rType = getCppuType( &value );
-+ const Type & rType = ::cppu::getTypeFavourUnsigned(&value);
- return ::uno_type_assignData(
- &value, rType.getTypeLibType(),
- rAny.pData, rAny.pType,
-@@ -558,7 +561,7 @@ inline sal_Bool SAL_CALL operator == ( c
- template< class C >
- inline sal_Bool SAL_CALL operator == ( const Any & rAny, const C & value ) SAL_THROW( () )
- {
-- const Type & rType = getCppuType( &value );
-+ const Type & rType = ::cppu::getTypeFavourUnsigned(&value);
- return ::uno_type_equalData(
- rAny.pData, rAny.pType,
- const_cast< C * >( &value ), rType.getTypeLibType(),
-@@ -584,9 +587,11 @@ T Any::get() const
- T value;
- if (! (*this >>= value)) {
- throw RuntimeException(
-- ::rtl::OUString( cppu_Any_extraction_failure_msg(
-- this, getCppuType(&value).getTypeLibType() ),
-- SAL_NO_ACQUIRE ),
-+ ::rtl::OUString(
-+ cppu_Any_extraction_failure_msg(
-+ this,
-+ ::cppu::getTypeFavourUnsigned(&value).getTypeLibType() ),
-+ SAL_NO_ACQUIRE ),
- Reference<XInterface>() );
- }
- return value;
-Index: cppu/inc/com/sun/star/uno/Sequence.h
-===================================================================
-RCS file: /cvs/udk/cppu/inc/com/sun/star/uno/Sequence.h,v
-retrieving revision 1.16
-retrieving revision 1.16.18.1
-diff -u -p -r1.16 -r1.16.18.1
---- cppu/inc/com/sun/star/uno/Sequence.h 8 Sep 2005 08:34:21 -0000 1.16
-+++ cppu/inc/com/sun/star/uno/Sequence.h 24 Nov 2005 08:18:08 -0000 1.16.18.1
-@@ -265,6 +265,9 @@ inline ::com::sun::star::uno::Sequence<
-
- /** Gets the meta type of IDL sequence.
-
-+ There are cases (involving templates) where uses of getCppuType are known to
-+ not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead.
-+
- @tplparam E element type of sequence
- @param dummy typed pointer for function signature
- @return type of IDL sequence
-Index: cppu/inc/com/sun/star/uno/Sequence.hxx
-===================================================================
-RCS file: /cvs/udk/cppu/inc/com/sun/star/uno/Sequence.hxx,v
-retrieving revision 1.20
-retrieving revision 1.20.18.1
-diff -u -p -r1.20 -r1.20.18.1
---- cppu/inc/com/sun/star/uno/Sequence.hxx 8 Sep 2005 08:34:43 -0000 1.20
-+++ cppu/inc/com/sun/star/uno/Sequence.hxx 24 Nov 2005 08:18:09 -0000 1.20.18.1
-@@ -53,7 +53,9 @@
- #ifndef _COM_SUN_STAR_UNO_GENFUNC_HXX_
- #include "com/sun/star/uno/genfunc.hxx"
- #endif
--
-+#ifndef INCLUDED_CPPU_UNOTYPE_HXX
-+#include "cppu/unotype.hxx"
-+#endif
-
- namespace com
- {
-@@ -72,7 +74,7 @@ typelib_TypeDescriptionReference * Seque
- template< class E >
- inline Sequence< E >::Sequence() SAL_THROW( () )
- {
-- const Type & rType = getCppuType( this );
-+ const Type & rType = ::cppu::getTypeFavourUnsigned( this );
- ::uno_type_sequence_construct(
- &_pSequence, rType.getTypeLibType(),
- 0, 0, (uno_AcquireFunc)cpp_acquire );
-@@ -99,7 +101,7 @@ inline Sequence< E >::Sequence(
- template< class E >
- inline Sequence< E >::Sequence( const E * pElements, sal_Int32 len )
- {
-- const Type & rType = getCppuType( this );
-+ const Type & rType = ::cppu::getTypeFavourUnsigned( this );
- #if ! defined EXCEPTIONS_OFF
- sal_Bool success =
- #endif
-@@ -116,7 +118,7 @@ inline Sequence< E >::Sequence( const E
- template< class E >
- inline Sequence< E >::Sequence( sal_Int32 len )
- {
-- const Type & rType = getCppuType( this );
-+ const Type & rType = ::cppu::getTypeFavourUnsigned( this );
- #if ! defined EXCEPTIONS_OFF
- sal_Bool success =
- #endif
-@@ -133,7 +135,7 @@ inline Sequence< E >::Sequence( sal_Int3
- template< class E >
- inline Sequence< E >::~Sequence() SAL_THROW( () )
- {
-- const Type & rType = getCppuType( this );
-+ const Type & rType = ::cppu::getTypeFavourUnsigned( this );
- ::uno_type_destructData(
- this, rType.getTypeLibType(), (uno_ReleaseFunc)cpp_release );
- }
-@@ -142,7 +144,7 @@ inline Sequence< E >::~Sequence() SAL_TH
- template< class E >
- inline Sequence< E > & Sequence< E >::operator = ( const Sequence< E > & rSeq ) SAL_THROW( () )
- {
-- const Type & rType = getCppuType( this );
-+ const Type & rType = ::cppu::getTypeFavourUnsigned( this );
- ::uno_type_sequence_assign(
- &_pSequence, rSeq._pSequence, rType.getTypeLibType(), (uno_ReleaseFunc)cpp_release );
- return *this;
-@@ -155,7 +157,7 @@ inline sal_Bool Sequence< E >::operator
- {
- if (_pSequence == rSeq._pSequence)
- return sal_True;
-- const Type & rType = getCppuType( this );
-+ const Type & rType = ::cppu::getTypeFavourUnsigned( this );
- return ::uno_type_equalData(
- const_cast< Sequence< E > * >( this ), rType.getTypeLibType(),
- const_cast< Sequence< E > * >( &rSeq ), rType.getTypeLibType(),
-@@ -175,7 +177,7 @@ inline sal_Bool Sequence< E >::operator
- template< class E >
- inline E * Sequence< E >::getArray()
- {
-- const Type & rType = getCppuType( this );
-+ const Type & rType = ::cppu::getTypeFavourUnsigned( this );
- #if ! defined EXCEPTIONS_OFF
- sal_Bool success =
- #endif
-@@ -214,7 +216,7 @@ inline const E & Sequence< E >::operator
- template< class E >
- inline void Sequence< E >::realloc( sal_Int32 nSize )
- {
-- const Type & rType = getCppuType( this );
-+ const Type & rType = ::cppu::getTypeFavourUnsigned( this );
- #if !defined EXCEPTIONS_OFF
- sal_Bool success =
- #endif
-@@ -240,22 +242,33 @@ inline ::com::sun::star::uno::Sequence<
- }
- }
-
-+namespace cppu {
-+
-+template< typename T > inline ::com::sun::star::uno::Type const &
-+getTypeFavourUnsigned(::com::sun::star::uno::Sequence< T > const *) {
-+ if (::com::sun::star::uno::Sequence< T >::s_pType == 0) {
-+ ::typelib_static_sequence_type_init(
-+ &::com::sun::star::uno::Sequence< T >::s_pType,
-+ (::cppu::getTypeFavourUnsigned(
-+ static_cast<
-+ typename ::com::sun::star::uno::Sequence< T >::ElementType * >(
-+ 0)).
-+ getTypeLibType()));
-+ }
-+ return detail::getTypeFromTypeDescriptionReference(
-+ &::com::sun::star::uno::Sequence< T >::s_pType);
-+}
-+
-+}
-+
- // generic sequence template
- template< class E >
- inline const ::com::sun::star::uno::Type &
- SAL_CALL getCppuType( const ::com::sun::star::uno::Sequence< E > * )
- SAL_THROW( () )
- {
-- if (! ::com::sun::star::uno::Sequence< E >::s_pType)
-- {
-- const ::com::sun::star::uno::Type & rElementType = getCppuType(
-- (typename ::com::sun::star::uno::Sequence< E >::ElementType const *)0 );
-- ::typelib_static_sequence_type_init(
-- & ::com::sun::star::uno::Sequence< E >::s_pType,
-- rElementType.getTypeLibType() );
-- }
-- return * reinterpret_cast< const ::com::sun::star::uno::Type * >(
-- & ::com::sun::star::uno::Sequence< E >::s_pType );
-+ return ::cppu::getTypeFavourUnsigned(
-+ static_cast< ::com::sun::star::uno::Sequence< E > * >(0));
- }
-
- // generic sequence template for given element type (e.g. C++ arrays)
-Index: cppu/inc/com/sun/star/uno/Type.h
-===================================================================
-RCS file: /cvs/udk/cppu/inc/com/sun/star/uno/Type.h,v
-retrieving revision 1.13
-retrieving revision 1.13.18.1
-diff -u -p -r1.13 -r1.13.18.1
---- cppu/inc/com/sun/star/uno/Type.h 8 Sep 2005 08:35:01 -0000 1.13
-+++ cppu/inc/com/sun/star/uno/Type.h 24 Nov 2005 08:18:09 -0000 1.13.18.1
-@@ -234,6 +234,9 @@ public:
- }
-
- /** Gets the meta type of IDL type "type".
-+
-+ There are cases (involving templates) where uses of getCppuType are known to
-+ not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead.
-
- @param dummy typed pointer for function signature
- @return type of IDL type "type"
-@@ -262,12 +265,18 @@ inline const ::com::sun::star::uno::Type
- inline const ::com::sun::star::uno::Type & SAL_CALL getBooleanCppuType() SAL_THROW( () );
- /** Gets the meta type of IDL type boolean.
-
-+ There are cases (involving templates) where uses of getCppuType are known to
-+ not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead.
-+
- @param dummy typed pointer for function signature
- @return type of IDL type boolean
- */
- inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const sal_Bool * ) SAL_THROW( () );
- /** Gets the meta type of IDL type boolean.
-
-+ There are cases (involving templates) where uses of getCppuType are known to
-+ not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead.
-+
- @param dummy typed pointer for function signature
- @return type of IDL type boolean
- */
-@@ -287,6 +296,9 @@ inline const ::com::sun::star::uno::Type
-
- /** Gets the meta type of IDL type byte.
-
-+ There are cases (involving templates) where uses of getCppuType are known to
-+ not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead.
-+
- @param dummy typed pointer for function signature
- @return type of IDL type byte
- */
-@@ -294,6 +306,9 @@ inline const ::com::sun::star::uno::Type
-
- /** Gets the meta type of IDL type string.
-
-+ There are cases (involving templates) where uses of getCppuType are known to
-+ not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead.
-+
- @param dummy typed pointer for function signature
- @return type of IDL type string
- */
-@@ -301,6 +316,9 @@ inline const ::com::sun::star::uno::Type
-
- /** Gets the meta type of IDL type short.
-
-+ There are cases (involving templates) where uses of getCppuType are known to
-+ not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead.
-+
- @param dummy typed pointer for function signature
- @return type of IDL type short
- */
-@@ -308,6 +326,9 @@ inline const ::com::sun::star::uno::Type
-
- /** Gets the meta type of IDL type unsigned short.
-
-+ There are cases (involving templates) where uses of getCppuType are known to
-+ not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead.
-+
- @param dummy typed pointer for function signature
- @return type of IDL type unsigned short
- */
-@@ -315,6 +336,9 @@ inline const ::com::sun::star::uno::Type
-
- /** Gets the meta type of IDL type long.
-
-+ There are cases (involving templates) where uses of getCppuType are known to
-+ not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead.
-+
- @param dummy typed pointer for function signature
- @return type of IDL type long
- */
-@@ -322,6 +346,9 @@ inline const ::com::sun::star::uno::Type
-
- /** Gets the meta type of IDL type unsigned long.
-
-+ There are cases (involving templates) where uses of getCppuType are known to
-+ not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead.
-+
- @param dummy typed pointer for function signature
- @return type of IDL type unsigned long
- */
-@@ -329,6 +356,9 @@ inline const ::com::sun::star::uno::Type
-
- /** Gets the meta type of IDL type hyper.
-
-+ There are cases (involving templates) where uses of getCppuType are known to
-+ not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead.
-+
- @param dummy typed pointer for function signature
- @return type of IDL type hyper
- */
-@@ -336,6 +366,9 @@ inline const ::com::sun::star::uno::Type
-
- /** Gets the meta type of IDL type unsigned hyper.
-
-+ There are cases (involving templates) where uses of getCppuType are known to
-+ not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead.
-+
- @param dummy typed pointer for function signature
- @return type of IDL type unsigned hyper
- */
-@@ -343,6 +376,9 @@ inline const ::com::sun::star::uno::Type
-
- /** Gets the meta type of IDL type float.
-
-+ There are cases (involving templates) where uses of getCppuType are known to
-+ not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead.
-+
- @param dummy typed pointer for function signature
- @return type of IDL type float
- */
-@@ -350,6 +386,9 @@ inline const ::com::sun::star::uno::Type
-
- /** Gets the meta type of IDL type double.
-
-+ There are cases (involving templates) where uses of getCppuType are known to
-+ not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead.
-+
- @param dummy typed pointer for function signature
- @return type of IDL type double
- */
-@@ -415,7 +454,7 @@ template< typename T > inline const ::co
- getCppuType() SAL_THROW(());
-
- /** Gets the meta type of IDL type char.
--
-+
- @return type of IDL type char
-
- @since UDK 3.2.0
-Index: cppu/inc/com/sun/star/uno/Type.hxx
-===================================================================
-RCS file: /cvs/udk/cppu/inc/com/sun/star/uno/Type.hxx,v
-retrieving revision 1.12
-retrieving revision 1.12.18.1
-diff -u -p -r1.12 -r1.12.18.1
---- cppu/inc/com/sun/star/uno/Type.hxx 8 Sep 2005 08:35:19 -0000 1.12
-+++ cppu/inc/com/sun/star/uno/Type.hxx 24 Nov 2005 08:18:10 -0000 1.12.18.1
-@@ -42,7 +42,9 @@
- #ifndef _COM_SUN_STAR_UNO_TYPE_H_
- #include <com/sun/star/uno/Type.h>
- #endif
--
-+#ifndef INCLUDED_CPPU_UNOTYPE_HXX
-+#include "cppu/unotype.hxx"
-+#endif
-
- namespace com
- {
-@@ -117,113 +119,94 @@ typelib_TypeDescriptionReference * Array
-
- inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const ::com::sun::star::uno::Type * ) SAL_THROW( () )
- {
-- return * reinterpret_cast< const ::com::sun::star::uno::Type * >(
-- ::typelib_static_type_getByTypeClass( typelib_TypeClass_TYPE ) );
-+ return ::cppu::UnoType< ::com::sun::star::uno::Type >::get();
- }
-
- inline const ::com::sun::star::uno::Type & SAL_CALL getCppuVoidType() SAL_THROW( () )
- {
-- return * reinterpret_cast< const ::com::sun::star::uno::Type * >(
-- ::typelib_static_type_getByTypeClass( typelib_TypeClass_VOID ) );
-+ return ::cppu::UnoType< ::cppu::UnoVoidType >::get();
- }
- inline const ::com::sun::star::uno::Type & SAL_CALL getVoidCppuType() SAL_THROW( () )
- {
-- return * reinterpret_cast< const ::com::sun::star::uno::Type * >(
-- ::typelib_static_type_getByTypeClass( typelib_TypeClass_VOID ) );
-+ return ::cppu::UnoType< ::cppu::UnoVoidType >::get();
- }
-
- inline const ::com::sun::star::uno::Type & SAL_CALL getCppuBooleanType() SAL_THROW( () )
- {
-- return * reinterpret_cast< const ::com::sun::star::uno::Type * >(
-- ::typelib_static_type_getByTypeClass( typelib_TypeClass_BOOLEAN ) );
-+ return ::cppu::UnoType< bool >::get();
- }
- inline const ::com::sun::star::uno::Type & SAL_CALL getBooleanCppuType() SAL_THROW( () )
- {
-- return * reinterpret_cast< const ::com::sun::star::uno::Type * >(
-- ::typelib_static_type_getByTypeClass( typelib_TypeClass_BOOLEAN ) );
-+ return ::cppu::UnoType< bool >::get();
- }
- inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const sal_Bool * ) SAL_THROW( () )
- {
-- return * reinterpret_cast< const ::com::sun::star::uno::Type * >(
-- ::typelib_static_type_getByTypeClass( typelib_TypeClass_BOOLEAN ) );
-+ return ::cppu::UnoType< bool >::get();
- }
-
- inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType(
- bool const * ) SAL_THROW( () )
- {
-- return * reinterpret_cast< const ::com::sun::star::uno::Type * >(
-- ::typelib_static_type_getByTypeClass( typelib_TypeClass_BOOLEAN ) );
-+ return ::cppu::UnoType< bool >::get();
- }
-
- inline const ::com::sun::star::uno::Type & SAL_CALL getCharCppuType() SAL_THROW( () )
- {
-- return * reinterpret_cast< const ::com::sun::star::uno::Type * >(
-- ::typelib_static_type_getByTypeClass( typelib_TypeClass_CHAR ) );
-+ return ::cppu::UnoType< ::cppu::UnoCharType >::get();
- }
- inline const ::com::sun::star::uno::Type & SAL_CALL getCppuCharType() SAL_THROW( () )
- {
-- return * reinterpret_cast< const ::com::sun::star::uno::Type * >(
-- ::typelib_static_type_getByTypeClass( typelib_TypeClass_CHAR ) );
-+ return ::cppu::UnoType< ::cppu::UnoCharType >::get();
- }
-
- inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const sal_Int8 * ) SAL_THROW( () )
- {
-- return * reinterpret_cast< const ::com::sun::star::uno::Type * >(
-- ::typelib_static_type_getByTypeClass( typelib_TypeClass_BYTE ) );
-+ return ::cppu::UnoType< ::sal_Int8 >::get();
- }
-
- inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const ::rtl::OUString * ) SAL_THROW( () )
- {
-- return * reinterpret_cast< const ::com::sun::star::uno::Type * >(
-- ::typelib_static_type_getByTypeClass( typelib_TypeClass_STRING ) );
-+ return ::cppu::UnoType< ::rtl::OUString >::get();
- }
-
- inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const sal_Int16 * ) SAL_THROW( () )
- {
-- return * reinterpret_cast< const ::com::sun::star::uno::Type * >(
-- ::typelib_static_type_getByTypeClass( typelib_TypeClass_SHORT ) );
-+ return ::cppu::UnoType< ::sal_Int16 >::get();
- }
-
- inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const sal_uInt16 * ) SAL_THROW( () )
- {
-- return * reinterpret_cast< const ::com::sun::star::uno::Type * >(
-- ::typelib_static_type_getByTypeClass( typelib_TypeClass_UNSIGNED_SHORT ) );
-+ return ::cppu::UnoType< ::cppu::UnoUnsignedShortType >::get();
- }
-
- inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const sal_Int32 * ) SAL_THROW( () )
- {
-- return * reinterpret_cast< const ::com::sun::star::uno::Type * >(
-- ::typelib_static_type_getByTypeClass( typelib_TypeClass_LONG ) );
-+ return ::cppu::UnoType< ::sal_Int32 >::get();
- }
-
- inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const sal_uInt32 * ) SAL_THROW( () )
- {
-- return * reinterpret_cast< const ::com::sun::star::uno::Type * >(
-- ::typelib_static_type_getByTypeClass( typelib_TypeClass_UNSIGNED_LONG ) );
-+ return ::cppu::UnoType< ::sal_uInt32 >::get();
- }
-
- inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const sal_Int64 * ) SAL_THROW( () )
- {
-- return * reinterpret_cast< const ::com::sun::star::uno::Type * >(
-- ::typelib_static_type_getByTypeClass( typelib_TypeClass_HYPER ) );
-+ return ::cppu::UnoType< ::sal_Int64 >::get();
- }
-
- inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const sal_uInt64 * ) SAL_THROW( () )
- {
-- return * reinterpret_cast< const ::com::sun::star::uno::Type * >(
-- ::typelib_static_type_getByTypeClass( typelib_TypeClass_UNSIGNED_HYPER ) );
-+ return ::cppu::UnoType< ::sal_uInt64 >::get();
- }
-
- inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const float * ) SAL_THROW( () )
- {
-- return * reinterpret_cast< const ::com::sun::star::uno::Type * >(
-- ::typelib_static_type_getByTypeClass( typelib_TypeClass_FLOAT ) );
-+ return ::cppu::UnoType< float >::get();
- }
-
- inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const double * ) SAL_THROW( () )
- {
-- return * reinterpret_cast< const ::com::sun::star::uno::Type * >(
-- ::typelib_static_type_getByTypeClass( typelib_TypeClass_DOUBLE ) );
-+ return ::cppu::UnoType< double >::get();
- }
-
- template< class T >
-@@ -231,7 +214,8 @@ inline const ::com::sun::star::uno::Type
- {
- if (! ::com::sun::star::uno::Array< T >::s_pType)
- {
-- const ::com::sun::star::uno::Type & rElementType = getCppuType( *pT );
-+ const ::com::sun::star::uno::Type & rElementType =
-+ ::cppu::getTypeFavourUnsigned( *pT );
- sal_Int32 size = sizeof( **pT );
- sal_Int32 dim1 = sizeof( *pT ) / size;
- ::typelib_static_array_type_init(
-@@ -247,7 +231,8 @@ inline const ::com::sun::star::uno::Type
- {
- if (! ::com::sun::star::uno::Array< T >::s_pType)
- {
-- const ::com::sun::star::uno::Type & rElementType = getCppuType( **pT );
-+ const ::com::sun::star::uno::Type & rElementType =
-+ ::cppu::getTypeFavourUnsigned( **pT );
- sal_Int32 size = sizeof( ***pT );
- sal_Int32 dim2 = sizeof( **pT ) / size;
- sal_Int32 dim1 = sizeof( *pT ) / dim2 / size;
-@@ -264,7 +249,8 @@ inline const ::com::sun::star::uno::Type
- {
- if (! ::com::sun::star::uno::Array< T >::s_pType)
- {
-- const ::com::sun::star::uno::Type & rElementType = getCppuType( ***pT );
-+ const ::com::sun::star::uno::Type & rElementType =
-+ ::cppu::getTypeFavourUnsigned( ***pT );
- sal_Int32 size = sizeof( ****pT );
- sal_Int32 dim3 = sizeof( ***pT ) / size;
- sal_Int32 dim2 = sizeof( **pT ) / dim3 / size;
-@@ -282,7 +268,8 @@ inline const ::com::sun::star::uno::Type
- {
- if (! ::com::sun::star::uno::Array< T >::s_pType)
- {
-- const ::com::sun::star::uno::Type & rElementType = getCppuType( ****pT );
-+ const ::com::sun::star::uno::Type & rElementType =
-+ ::cppu::getTypeFavourUnsigned( ****pT );
- sal_Int32 size = sizeof( *****pT );
- sal_Int32 dim4 = sizeof( ****pT ) / size;
- sal_Int32 dim3 = sizeof( ***pT ) / dim4 / size;
-@@ -301,7 +288,8 @@ inline const ::com::sun::star::uno::Type
- {
- if (! ::com::sun::star::uno::Array< T >::s_pType)
- {
-- const ::com::sun::star::uno::Type & rElementType = getCppuType( *****pT );
-+ const ::com::sun::star::uno::Type & rElementType =
-+ ::cppu::getTypeFavourUnsigned( *****pT );
- sal_Int32 size = sizeof( ******pT );
- sal_Int32 dim5 = sizeof( *****pT ) / size;
- sal_Int32 dim4 = sizeof( ****pT ) / dim5 / size;
-@@ -321,7 +309,8 @@ inline const ::com::sun::star::uno::Type
- {
- if (! ::com::sun::star::uno::Array< T >::s_pType)
- {
-- const ::com::sun::star::uno::Type & rElementType = getCppuType( ******pT );
-+ const ::com::sun::star::uno::Type & rElementType =
-+ ::cppu::getTypeFavourUnsigned( ******pT );
- sal_Int32 size = sizeof( *******pT );
- sal_Int32 dim6 = sizeof( ******pT ) / size;
- sal_Int32 dim5 = sizeof( *****pT ) / dim6 / size;
-@@ -340,14 +329,14 @@ inline const ::com::sun::star::uno::Type
- template< typename T >
- inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType() SAL_THROW(())
- {
-- return getCppuType(static_cast< T * >(0));
-+ return ::cppu::UnoType< T >::get();
- }
-
- template<>
- inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType< sal_Unicode >()
- SAL_THROW(())
- {
-- return getCharCppuType();
-+ return ::cppu::UnoType< ::cppu::UnoCharType >::get();
- }
-
- #endif
-Index: cppu/inc/cppu/unotype.hxx
-===================================================================
-RCS file: cppu/inc/cppu/unotype.hxx
-diff -N cppu/inc/cppu/unotype.hxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ cppu/inc/cppu/unotype.hxx 24 Nov 2005 08:19:28 -0000 1.1.2.1
-@@ -0,0 +1,338 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#ifndef INCLUDED_CPPU_UNOTYPE_HXX
-+#define INCLUDED_CPPU_UNOTYPE_HXX
-+
-+#ifndef _SAL_CONFIG_H_
-+#include "sal/config.h"
-+#endif
-+
-+#include <cstddef>
-+
-+#ifndef _COM_SUN_STAR_UNO_TYPE_H_
-+#include "com/sun/star/uno/Type.h"
-+#endif
-+#ifndef _SAL_TYPES_H_
-+#include "sal/types.h"
-+#endif
-+#ifndef _TYPELIB_TYPECLASS_H_
-+#include "typelib/typeclass.h"
-+#endif
-+#ifndef _TYPELIB_TYPEDESCRIPTION_H_
-+#include "typelib/typedescription.h"
-+#endif
-+
-+namespace com { namespace sun { namespace star { namespace uno {
-+ class Any;
-+ class Exception;
-+ template< typename > class Reference;
-+ template< typename > class Sequence;
-+ class XInterface;
-+} } } }
-+namespace rtl { class OUString; }
-+
-+namespace cppu {
-+
-+template< typename > class UnoType;
-+
-+/**
-+ A unique C++ type representing the UNO type VOID in cppu::UnoType.
-+
-+ This type is declared but not defined. Its only use is as a template
-+ argument to cppu::UnoType.
-+*/
-+struct UnoVoidType;
-+
-+/**
-+ A unique C++ type representing the UNO type UNSIGNED SHORT in cppu::UnoType.
-+
-+ On some platforms, the UNO types UNSIGNED SHORT and CHAR map to the same C++
-+ type, so this C++ type is needed to unambiguously specify UNO types in
-+ cppu::UnoType.
-+
-+ This type is declared but not defined. Its only use is as a template
-+ argument to cppu::UnoType.
-+*/
-+struct UnoUnsignedShortType;
-+
-+/**
-+ A unique C++ type representing the UNO type UNSIGNED SHORT in cppu::UnoType.
-+
-+ On some platforms, the UNO types UNSIGNED SHORT and CHAR map to the same C++
-+ type, so this C++ type is needed to unambiguously specify UNO types in
-+ cppu::UnoType.
-+
-+ This type is declared but not defined. Its only use is as a template
-+ argument to cppu::UnoType.
-+*/
-+struct UnoCharType;
-+
-+/**
-+ A unique C++ type template representing the UNO sequence types in
-+ cppu::UnoType.
-+
-+ On some platforms, the UNO types UNSIGNED SHORT and CHAR map to the same C++
-+ type, so this C++ type is needed to unambiguously specify UNO types in
-+ cppu::UnoType.
-+
-+ This type is declared but not defined. Its only use is as a template
-+ argument to cppu::UnoType.
-+*/
-+template< typename > struct UnoSequenceType;
-+
-+namespace detail {
-+
-+inline ::com::sun::star::uno::Type const & getTypeFromTypeDescriptionReference(
-+ ::typelib_TypeDescriptionReference * const * tdr)
-+{
-+ return *reinterpret_cast< ::com::sun::star::uno::Type const * >(tdr);
-+}
-+
-+inline ::com::sun::star::uno::Type const &
-+getTypeFromTypeClass(::typelib_TypeClass tc) {
-+ return getTypeFromTypeDescriptionReference(
-+ ::typelib_static_type_getByTypeClass(tc));
-+}
-+
-+inline ::com::sun::star::uno::Type const &
-+cppu_getUnoType(::cppu::UnoVoidType const *) {
-+ return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_VOID);
-+}
-+
-+inline ::com::sun::star::uno::Type const &
-+cppu_getUnoType(bool const *) {
-+ return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_BOOLEAN);
-+}
-+
-+inline ::com::sun::star::uno::Type const &
-+cppu_getUnoType(::sal_Bool const *) {
-+ return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_BOOLEAN);
-+}
-+
-+inline ::com::sun::star::uno::Type const &
-+cppu_getUnoType(::sal_Int8 const *) {
-+ return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_BYTE);
-+}
-+
-+inline ::com::sun::star::uno::Type const &
-+cppu_getUnoType(::sal_Int16 const *) {
-+ return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_SHORT);
-+}
-+
-+inline ::com::sun::star::uno::Type const &
-+cppu_getUnoType(::cppu::UnoUnsignedShortType const *) {
-+ return ::cppu::detail::getTypeFromTypeClass(
-+ ::typelib_TypeClass_UNSIGNED_SHORT);
-+}
-+
-+inline ::com::sun::star::uno::Type const &
-+cppu_getUnoType(::sal_Int32 const *) {
-+ return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_LONG);
-+}
-+
-+inline ::com::sun::star::uno::Type const &
-+cppu_getUnoType(::sal_uInt32 const *) {
-+ return ::cppu::detail::getTypeFromTypeClass(
-+ ::typelib_TypeClass_UNSIGNED_LONG);
-+}
-+
-+inline ::com::sun::star::uno::Type const &
-+cppu_getUnoType(::sal_Int64 const *) {
-+ return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_HYPER);
-+}
-+
-+inline ::com::sun::star::uno::Type const &
-+cppu_getUnoType(::sal_uInt64 const *) {
-+ return ::cppu::detail::getTypeFromTypeClass(
-+ ::typelib_TypeClass_UNSIGNED_HYPER);
-+}
-+
-+inline ::com::sun::star::uno::Type const &
-+cppu_getUnoType(float const *) {
-+ return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_FLOAT);
-+}
-+
-+inline ::com::sun::star::uno::Type const &
-+cppu_getUnoType(double const *) {
-+ return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_DOUBLE);
-+}
-+
-+inline ::com::sun::star::uno::Type const &
-+cppu_getUnoType(::cppu::UnoCharType const *) {
-+ return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_CHAR);
-+}
-+
-+inline ::com::sun::star::uno::Type const &
-+cppu_getUnoType(::rtl::OUString const *) {
-+ return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_STRING);
-+}
-+
-+inline ::com::sun::star::uno::Type const &
-+cppu_getUnoType(::com::sun::star::uno::Type const *) {
-+ return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_TYPE);
-+}
-+
-+inline ::com::sun::star::uno::Type const &
-+cppu_getUnoType(::com::sun::star::uno::Any const *) {
-+ return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_ANY);
-+}
-+
-+template< typename T > inline ::com::sun::star::uno::Type const &
-+cppu_getUnoType(::cppu::UnoSequenceType< T > const *) {
-+ static typelib_TypeDescriptionReference * p = 0;
-+ if (p == 0) {
-+ ::typelib_static_sequence_type_init(
-+ &p, ::cppu::UnoType< T >::get().getTypeLibType());
-+ }
-+ return ::cppu::detail::getTypeFromTypeDescriptionReference(&p);
-+}
-+
-+template< typename T > inline ::com::sun::star::uno::Type const &
-+cppu_getUnoType(::com::sun::star::uno::Sequence< T > const *) {
-+ return ::cppu::detail::cppu_getUnoType(
-+ static_cast< ::cppu::UnoSequenceType< T > * >(0));
-+}
-+
-+inline ::com::sun::star::uno::Type const &
-+cppu_getUnoType(::com::sun::star::uno::Exception const *) {
-+ return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_EXCEPTION);
-+}
-+
-+inline ::com::sun::star::uno::Type const &
-+cppu_getUnoType(::com::sun::star::uno::XInterface const *) {
-+ return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_INTERFACE);
-+}
-+
-+template< typename T > inline ::com::sun::star::uno::Type const &
-+cppu_getUnoType(::com::sun::star::uno::Reference< T > const *) {
-+ return ::cppu::UnoType< T >::get();
-+}
-+
-+template< typename T > struct UnsignedShortVsChar1 {
-+ typedef T t;
-+};
-+
-+template<> struct UnsignedShortVsChar1< ::sal_Unicode > {
-+ typedef ::cppu::UnoCharType t;
-+};
-+
-+template< typename T > struct UnsignedShortVsChar2 {
-+ typedef typename ::cppu::detail::UnsignedShortVsChar1< T >::t t;
-+};
-+
-+template<> struct UnsignedShortVsChar2< ::sal_uInt16 > {};
-+
-+}
-+
-+/**
-+ Get the com::sun::star::uno::Type instance representing a certain UNO type.
-+
-+ For each C++ type representing a UNO type, the corresponding instantiation of
-+ this template has a public static member function get(). (The template is
-+ specialized for C++ templates representing polymorphic struct type templates
-+ of UNO. In those cases, it does not work to instantiate UnoType with a C++
-+ type that is derived from a C++ type that represents a UNO type, but does not
-+ itself represent a UNO type. In all other cases, UnoType even works for such
-+ C++ types that are unambiguously derived from one C++ type that represents a
-+ UNO type.) In addition to those C++ types that are mappings of UNO types
-+ (except for sal_uInt16 and sal_Unicode, see below), the following C++ types
-+ are appropriate as template arguments: cppu::UnoVoidType, bool,
-+ cppu::UnoUnsignedShortType, cppu::UnoCharType, cppu::UnoSequenceType with any
-+ appropriate template argument (the latter three to unambiguously specify UNO
-+ types, as the UNO types UNSIGNED SHORT and CHAR map to the same C++ type on
-+ some platforms), and com::sun::star::uno::Reference with any appropriate
-+ template argument.
-+*/
-+template< typename T > class UnoType {
-+public:
-+ static inline ::com::sun::star::uno::Type const & get() {
-+ using namespace ::cppu::detail;
-+ return cppu_getUnoType(static_cast< T * >(0));
-+ }
-+
-+private:
-+ UnoType(UnoType &); // not defined
-+ ~UnoType(); // not defined
-+ void operator =(UnoType); // not defined
-+};
-+
-+/**
-+ A working replacement for getCppuType (see there).
-+
-+ There are three overloads of this function that together form the replacement
-+ of getCppuType. The replacement has exactly the same semantics as
-+ getCppuType, in that it works for the the UNO type UNSIGNED SHORT but not for
-+ the UNO type CHAR on those platforms where both UNO types map to the same C++
-+ type.
-+*/
-+template< typename T > inline ::com::sun::star::uno::Type const &
-+getTypeFavourUnsigned(
-+ T const *,
-+ typename ::cppu::detail::UnsignedShortVsChar2< T >::t const * = 0)
-+{
-+ return ::cppu::UnoType<
-+ typename ::cppu::detail::UnsignedShortVsChar2< T >::t >::get();
-+}
-+
-+/**
-+ A working replacement for getCppuType (see there).
-+
-+ There are three overloads of this function that together form the replacement
-+ of getCppuType. The replacement has exactly the same semantics as
-+ getCppuType, in that it works for the the UNO type UNSIGNED SHORT but not for
-+ the UNO type CHAR on those platforms where both UNO types map to the same C++
-+ type.
-+*/
-+inline ::com::sun::star::uno::Type const &
-+getTypeFavourUnsigned(sal_uInt16 const *) {
-+ return ::cppu::UnoType< ::cppu::UnoUnsignedShortType >::get();
-+}
-+
-+/**
-+ A working replacement for getCppuType (see there).
-+
-+ There are three overloads of this function that together form the replacement
-+ of getCppuType. The replacement has the same semantics as getCppuType, in
-+ that it works for the the UNO type UNSIGNED SHORT, but not for the UNO type
-+ CHAR.
-+*/
-+template< typename T > inline ::com::sun::star::uno::Type const &
-+getTypeFavourUnsigned(::com::sun::star::uno::Sequence< T > const *);
-+ // defined in com/sun/star/uno/Sequence.hxx
-+
-+}
-+
-+#endif
-Index: cppu/inc/uno/mapping.hxx
-===================================================================
-RCS file: /cvs/udk/cppu/inc/uno/mapping.hxx,v
-retrieving revision 1.8
-retrieving revision 1.8.18.1
-diff -u -p -r1.8 -r1.8.18.1
---- cppu/inc/uno/mapping.hxx 8 Sep 2005 08:41:49 -0000 1.8
-+++ cppu/inc/uno/mapping.hxx 24 Nov 2005 08:18:11 -0000 1.8.18.1
-@@ -53,7 +53,9 @@
- #ifndef _COM_SUN_STAR_UNO_REFERENCE_HXX_
- #include <com/sun/star/uno/Reference.hxx>
- #endif
--
-+#ifndef INCLUDED_CPPU_UNOTYPE_HXX
-+#include "cppu/unotype.hxx"
-+#endif
-
- typedef struct _typelib_TypeDescription typelib_TypeDescription;
- typedef struct _typelib_InterfaceTypeDescription typelib_InterfaceTypeDescription;
-@@ -314,7 +316,8 @@ inline sal_Bool mapToCpp( Reference< C >
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO) ),
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) ) );
- OSL_ASSERT( aMapping.is() );
-- aMapping.mapInterface( (void **)ppRet, pUnoI, getCppuType( ppRet ) );
-+ aMapping.mapInterface(
-+ (void **)ppRet, pUnoI, ::cppu::getTypeFavourUnsigned( ppRet ) );
- return (0 != *ppRet);
- }
- /** Maps an UNO interface of the currently used compiler environment to binary C UNO.
-@@ -331,7 +334,8 @@ inline sal_Bool mapToUno( uno_Interface
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) ),
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO) ) );
- OSL_ASSERT( aMapping.is() );
-- aMapping.mapInterface( (void **)ppRet, x.get(), getCppuType( &x ) );
-+ aMapping.mapInterface(
-+ (void **)ppRet, x.get(), ::cppu::getTypeFavourUnsigned( &x ) );
- return (0 != *ppRet);
- }
-
-Index: cppu/prj/d.lst
-===================================================================
-RCS file: /cvs/udk/cppu/prj/d.lst,v
-retrieving revision 1.15
-retrieving revision 1.15.46.1
-diff -u -p -r1.15 -r1.15.46.1
---- cppu/prj/d.lst 3 Nov 2004 08:49:55 -0000 1.15
-+++ cppu/prj/d.lst 24 Nov 2005 08:18:12 -0000 1.15.46.1
-@@ -7,6 +7,7 @@ mkdir: %_DEST%\inc%_EXT%\typelib
- mkdir: %_DEST%\inc%_EXT%\uno
-
- ..\inc\cppu\macros.hxx %_DEST%\inc%_EXT%\cppu\macros.hxx
-+..\inc\cppu\unotype.hxx %_DEST%\inc%_EXT%\cppu\unotype.hxx
-
- ..\inc\com\sun\star\uno\Reference.h %_DEST%\inc%_EXT%\com\sun\star\uno\Reference.h
- ..\inc\com\sun\star\uno\Reference.hxx %_DEST%\inc%_EXT%\com\sun\star\uno\Reference.hxx
-Index: cppu/qa/makefile.mk
-===================================================================
-RCS file: /cvs/udk/cppu/qa/makefile.mk,v
-retrieving revision 1.3
-retrieving revision 1.3.18.1
-diff -u -p -r1.3 -r1.3.18.1
---- cppu/qa/makefile.mk 8 Sep 2005 08:42:56 -0000 1.3
-+++ cppu/qa/makefile.mk 24 Nov 2005 08:18:12 -0000 1.3.18.1
-@@ -45,14 +45,21 @@ DLLPRE = # no leading "lib" on .so files
-
- INCPRE += $(MISC)$/$(TARGET)$/inc
-
--SHL1TARGET = $(TARGET)
-+SHL1TARGET = $(TARGET)_any
- SHL1OBJS = $(SLO)$/test_any.obj
- SHL1STDLIBS = $(CPPULIB) $(CPPUNITLIB) $(SALLIB)
- SHL1VERSIONMAP = version.map
- SHL1IMPLIB = i$(SHL1TARGET)
- DEF1NAME = $(SHL1TARGET)
-
--SLOFILES = $(SHL1OBJS)
-+SHL2TARGET = $(TARGET)_unotype
-+SHL2OBJS = $(SLO)$/test_unotype.obj
-+SHL2STDLIBS = $(CPPULIB) $(CPPUNITLIB) $(SALLIB)
-+SHL2VERSIONMAP = version.map
-+SHL2IMPLIB = i$(SHL2TARGET)
-+DEF2NAME = $(SHL2TARGET)
-+
-+SLOFILES = $(SHL1OBJS) $(SHL2OBJS)
-
- .INCLUDE: target.mk
-
-@@ -74,5 +81,6 @@ $(MISC)$/$(TARGET)$/types.urd: types.idl
- - $(MKDIR) $(MISC)$/$(TARGET)
- $(IDLC) -O$(MISC)$/$(TARGET) -I$(SOLARIDLDIR) -cid -we $<
-
--test .PHONY: $(SHL1TARGETN)
-+test .PHONY: $(SHL1TARGETN) $(SHL2TARGETN)
- testshl2 $(SHL1TARGETN)
-+ testshl2 $(SHL2TARGETN)
-Index: cppu/qa/test_unotype.cxx
-===================================================================
-RCS file: cppu/qa/test_unotype.cxx
-diff -N cppu/qa/test_unotype.cxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ cppu/qa/test_unotype.cxx 24 Nov 2005 08:19:41 -0000 1.1.2.1
-@@ -0,0 +1,463 @@
-+/*************************************************************************
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to
-+ * the terms of GNU Lesser General Public License Version 2.1.
-+ *
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2005 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ ************************************************************************/
-+
-+#include "sal/config.h"
-+
-+#include <iostream>
-+#include <typeinfo>
-+
-+#include "com/sun/star/beans/Optional.hpp"
-+#include "com/sun/star/beans/PropertyChangeEvent.hpp"
-+#include "com/sun/star/lang/EventObject.hpp"
-+#include "com/sun/star/uno/Exception.hpp"
-+#include "com/sun/star/uno/Reference.hxx"
-+#include "com/sun/star/uno/RuntimeException.hpp"
-+#include "com/sun/star/uno/Sequence.hxx"
-+#include "com/sun/star/uno/Type.hxx"
-+#include "com/sun/star/uno/TypeClass.hpp"
-+#include "com/sun/star/uno/XComponentContext.hpp"
-+#include "com/sun/star/uno/XInterface.hpp"
-+#include "cppu/unotype.hxx"
-+#include "cppunit/simpleheader.hxx"
-+#include "rtl/ustring.h"
-+#include "rtl/ustring.hxx"
-+#include "sal/types.h"
-+
-+namespace com { namespace sun { namespace star { namespace uno {
-+ class Any;
-+} } } }
-+
-+namespace {
-+
-+namespace css = com::sun::star;
-+
-+struct DerivedStruct1: css::lang::EventObject {};
-+
-+struct DerivedStruct2: css::beans::PropertyChangeEvent {};
-+
-+struct DerivedException1: css::uno::Exception {};
-+
-+struct DerivedException2: css::uno::RuntimeException {};
-+
-+struct DerivedInterface1: css::uno::XInterface {};
-+
-+struct DerivedInterface2: css::uno::XComponentContext {};
-+
-+class Test: public ::CppUnit::TestFixture {
-+public:
-+ void testUnoType();
-+
-+ void testGetTypeFavourUnsigned();
-+
-+ CPPUNIT_TEST_SUITE(Test);
-+ CPPUNIT_TEST(testUnoType);
-+ CPPUNIT_TEST(testGetTypeFavourUnsigned);
-+ CPPUNIT_TEST_SUITE_END();
-+};
-+
-+void Test::testUnoType() {
-+ css::uno::Type t;
-+ t = ::cppu::UnoType< ::cppu::UnoVoidType >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_VOID, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("void")), t.getTypeName());
-+ t = ::cppu::UnoType< bool >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_BOOLEAN, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("boolean")),
-+ t.getTypeName());
-+ CPPUNIT_ASSERT(::cppu::UnoType< ::sal_Bool >::get() == t);
-+ t = ::cppu::UnoType< ::sal_Int8 >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_BYTE, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("byte")), t.getTypeName());
-+ t = ::cppu::UnoType< ::sal_Int16 >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_SHORT, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("short")), t.getTypeName());
-+ t = ::cppu::UnoType< ::cppu::UnoUnsignedShortType >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_UNSIGNED_SHORT, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("unsigned short")),
-+ t.getTypeName());
-+ t = ::cppu::UnoType< ::sal_Int32 >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_LONG, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("long")), t.getTypeName());
-+ t = ::cppu::UnoType< ::sal_uInt32 >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_UNSIGNED_LONG, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("unsigned long")),
-+ t.getTypeName());
-+ t = ::cppu::UnoType< ::sal_Int64 >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_HYPER, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("hyper")), t.getTypeName());
-+ t = ::cppu::UnoType< ::sal_uInt64 >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_UNSIGNED_HYPER, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("unsigned hyper")),
-+ t.getTypeName());
-+ t = ::cppu::UnoType< float >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_FLOAT, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("float")), t.getTypeName());
-+ t = ::cppu::UnoType< double >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_DOUBLE, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("double")),
-+ t.getTypeName());
-+ t = ::cppu::UnoType< ::cppu::UnoCharType >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_CHAR, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("char")), t.getTypeName());
-+ t = ::cppu::UnoType< ::rtl::OUString >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_STRING, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("string")),
-+ t.getTypeName());
-+ t = ::cppu::UnoType< css::uno::Type >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_TYPE, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("type")), t.getTypeName());
-+ t = ::cppu::UnoType< css::uno::Any >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_ANY, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("any")), t.getTypeName());
-+ t = ::cppu::UnoType< ::cppu::UnoSequenceType< ::sal_Int8 > >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_SEQUENCE, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("[]byte")),
-+ t.getTypeName());
-+ CPPUNIT_ASSERT(
-+ ::cppu::UnoType< css::uno::Sequence< ::sal_Int8 > >::get() == t);
-+ t = ::cppu::UnoType<
-+ ::cppu::UnoSequenceType< ::cppu::UnoUnsignedShortType > >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_SEQUENCE, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("[]unsigned short")),
-+ t.getTypeName());
-+ t = ::cppu::UnoType<
-+ ::cppu::UnoSequenceType< ::cppu::UnoCharType > >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_SEQUENCE, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("[]char")),
-+ t.getTypeName());
-+ t = ::cppu::UnoType< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
-+ ::sal_Int8 > > >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_SEQUENCE, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("[][]byte")),
-+ t.getTypeName());
-+ CPPUNIT_ASSERT(
-+ ::cppu::UnoType<
-+ css::uno::Sequence< css::uno::Sequence< ::sal_Int8 > > >::get() == t);
-+ t = ::cppu::UnoType< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
-+ ::cppu::UnoUnsignedShortType > > >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_SEQUENCE, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("[][]unsigned short")),
-+ t.getTypeName());
-+ t = ::cppu::UnoType< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
-+ ::cppu::UnoCharType > > >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_SEQUENCE, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("[][]char")),
-+ t.getTypeName());
-+ t = ::cppu::UnoType< css::uno::TypeClass >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_ENUM, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(
-+ RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.TypeClass")),
-+ t.getTypeName());
-+ t = ::cppu::UnoType< css::lang::EventObject >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_STRUCT, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(
-+ RTL_CONSTASCII_USTRINGPARAM("com.sun.star.lang.EventObject")),
-+ t.getTypeName());
-+ CPPUNIT_ASSERT(::cppu::UnoType< DerivedStruct1 >::get() == t);
-+ t = ::cppu::UnoType< css::beans::PropertyChangeEvent >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_STRUCT, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(
-+ RTL_CONSTASCII_USTRINGPARAM(
-+ "com.sun.star.beans.PropertyChangeEvent")),
-+ t.getTypeName());
-+#if !(defined __SUNPRO_CC && __SUNPRO_CC <= 0x550) // erroneous ambiguity stated
-+ CPPUNIT_ASSERT(::cppu::UnoType< DerivedStruct2 >::get() == t);
-+#endif
-+ t = ::cppu::UnoType< css::beans::Optional< ::sal_Int8 > >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_STRUCT, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(
-+ RTL_CONSTASCII_USTRINGPARAM("com.sun.star.beans.Optional<byte>")),
-+ t.getTypeName());
-+ t = ::cppu::UnoType< css::uno::Exception >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_EXCEPTION, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(
-+ RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.Exception")),
-+ t.getTypeName());
-+ CPPUNIT_ASSERT(::cppu::UnoType< DerivedException1 >::get() == t);
-+ t = ::cppu::UnoType< css::uno::RuntimeException >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_EXCEPTION, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(
-+ RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.RuntimeException")),
-+ t.getTypeName());
-+#if !(defined __SUNPRO_CC && __SUNPRO_CC <= 0x550) // erroneous ambiguity stated
-+ CPPUNIT_ASSERT(::cppu::UnoType< DerivedException2 >::get() == t);
-+#endif
-+ t = ::cppu::UnoType< css::uno::XInterface >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_INTERFACE, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(
-+ RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XInterface")),
-+ t.getTypeName());
-+ CPPUNIT_ASSERT(
-+ ::cppu::UnoType< css::uno::Reference< css::uno::XInterface > >::get() ==
-+ t);
-+ CPPUNIT_ASSERT(::cppu::UnoType< DerivedInterface1 >::get() == t);
-+ CPPUNIT_ASSERT(
-+ ::cppu::UnoType< css::uno::Reference< DerivedInterface1 > >::get() ==
-+ t);
-+ t = ::cppu::UnoType< css::uno::XComponentContext >::get();
-+ CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_INTERFACE, t.getTypeClass());
-+ CPPUNIT_ASSERT_EQUAL(
-+ ::rtl::OUString(
-+ RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XComponentContext")),
-+ t.getTypeName());
-+ CPPUNIT_ASSERT(
-+ ::cppu::UnoType<
-+ css::uno::Reference< css::uno::XComponentContext > >::get() == t);
-+#if !(defined __SUNPRO_CC && __SUNPRO_CC <= 0x550) // erroneous ambiguity stated
-+ CPPUNIT_ASSERT(::cppu::UnoType< DerivedInterface2 >::get() == t);
-+ CPPUNIT_ASSERT(
-+ ::cppu::UnoType< css::uno::Reference< DerivedInterface2 > >::get() ==
-+ t);
-+#endif
-+}
-+
-+void Test::testGetTypeFavourUnsigned() {
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(static_cast< ::cppu::UnoVoidType *>(0)) ==
-+ ::cppu::UnoType< ::cppu::UnoVoidType >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(static_cast< bool *>(0)) ==
-+ ::cppu::UnoType< bool >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Bool *>(0)) ==
-+ ::cppu::UnoType< bool >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Int8 *>(0)) ==
-+ ::cppu::UnoType< ::sal_Int8 >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Int16 *>(0)) ==
-+ ::cppu::UnoType< ::sal_Int16 >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(
-+ static_cast< ::cppu::UnoUnsignedShortType *>(0)) ==
-+ ::cppu::UnoType< ::cppu::UnoUnsignedShortType >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(
-+ static_cast< ::sal_uInt16 *>(0)) ==
-+ ::cppu::UnoType< ::cppu::UnoUnsignedShortType >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Int32 *>(0)) ==
-+ ::cppu::UnoType< ::sal_Int32 >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(static_cast< ::sal_uInt32 *>(0)) ==
-+ ::cppu::UnoType< ::sal_uInt32 >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Int64 *>(0)) ==
-+ ::cppu::UnoType< ::sal_Int64 >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(static_cast< ::sal_uInt64 *>(0)) ==
-+ ::cppu::UnoType< ::sal_uInt64 >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(static_cast< float *>(0)) ==
-+ ::cppu::UnoType< float >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(static_cast< double *>(0)) ==
-+ ::cppu::UnoType< double >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(static_cast< ::cppu::UnoCharType *>(0)) ==
-+ ::cppu::UnoType< ::cppu::UnoCharType >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(static_cast< ::rtl::OUString *>(0)) ==
-+ ::cppu::UnoType< ::rtl::OUString >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(static_cast< css::uno::Type *>(0)) ==
-+ ::cppu::UnoType< css::uno::Type >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(static_cast< css::uno::Any *>(0)) ==
-+ ::cppu::UnoType< css::uno::Any >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(
-+ static_cast<
-+ ::cppu::UnoSequenceType< ::cppu::UnoUnsignedShortType > *>(0)) ==
-+ ::cppu::UnoType<
-+ ::cppu::UnoSequenceType< ::cppu::UnoUnsignedShortType > >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(
-+ static_cast< css::uno::Sequence< ::sal_uInt16 > *>(0)) ==
-+ ::cppu::UnoType<
-+ ::cppu::UnoSequenceType< ::cppu::UnoUnsignedShortType > >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(
-+ static_cast< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
-+ ::cppu::UnoUnsignedShortType > > *>(0)) ==
-+ ::cppu::UnoType< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
-+ ::cppu::UnoUnsignedShortType > > >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(
-+ static_cast< css::uno::Sequence< css::uno::Sequence<
-+ ::sal_uInt16 > > *>(0)) ==
-+ ::cppu::UnoType< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
-+ ::cppu::UnoUnsignedShortType > > >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(static_cast< css::uno::TypeClass *>(0)) ==
-+ ::cppu::UnoType< css::uno::TypeClass >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(
-+ static_cast< css::lang::EventObject *>(0)) ==
-+ ::cppu::UnoType< css::lang::EventObject >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(static_cast< DerivedStruct1 *>(0)) ==
-+ ::cppu::UnoType< css::lang::EventObject >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(
-+ static_cast< css::beans::PropertyChangeEvent *>(0)) ==
-+ ::cppu::UnoType< css::beans::PropertyChangeEvent >::get());
-+#if !(defined __SUNPRO_CC && __SUNPRO_CC <= 0x550) // erroneous ambiguity stated
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(static_cast< DerivedStruct2 *>(0)) ==
-+ ::cppu::UnoType< css::beans::PropertyChangeEvent >::get());
-+#endif
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(
-+ static_cast< css::beans::Optional< ::sal_Int8 > *>(0)) ==
-+ ::cppu::UnoType< css::beans::Optional< ::sal_Int8 > >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(static_cast< css::uno::Exception *>(0)) ==
-+ ::cppu::UnoType< css::uno::Exception >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(static_cast< DerivedException1 *>(0)) ==
-+ ::cppu::UnoType< css::uno::Exception >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(
-+ static_cast< css::uno::RuntimeException *>(0)) ==
-+ ::cppu::UnoType< css::uno::RuntimeException >::get());
-+#if !(defined __SUNPRO_CC && __SUNPRO_CC <= 0x550) // erroneous ambiguity stated
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(static_cast< DerivedException2 *>(0)) ==
-+ ::cppu::UnoType< css::uno::RuntimeException >::get());
-+#endif
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(
-+ static_cast< css::uno::XInterface *>(0)) ==
-+ ::cppu::UnoType< css::uno::XInterface >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(
-+ static_cast< css::uno::Reference< css::uno::XInterface > *>(0)) ==
-+ ::cppu::UnoType< css::uno::XInterface >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(static_cast< DerivedInterface1 *>(0)) ==
-+ ::cppu::UnoType< css::uno::XInterface >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(
-+ static_cast< css::uno::Reference< DerivedInterface1 > *>(0)) ==
-+ ::cppu::UnoType< css::uno::XInterface >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(
-+ static_cast< css::uno::XComponentContext *>(0)) ==
-+ ::cppu::UnoType< css::uno::XComponentContext >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(
-+ static_cast<
-+ css::uno::Reference< css::uno::XComponentContext > *>(0)) ==
-+ ::cppu::UnoType< css::uno::XComponentContext >::get());
-+#if !(defined __SUNPRO_CC && __SUNPRO_CC <= 0x550) // erroneous ambiguity stated
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(static_cast< DerivedInterface2 *>(0)) ==
-+ ::cppu::UnoType< css::uno::XComponentContext >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(
-+ static_cast< css::uno::Reference< DerivedInterface2 > *>(0)) ==
-+ ::cppu::UnoType< css::uno::XComponentContext >::get());
-+#endif
-+ if (typeid(::sal_Unicode) == typeid(::sal_uInt16)) {
-+ ::std::cout << "info: typeid(::sal_Unicode) == typeid(::sal_uInt16)\n";
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(
-+ static_cast< ::sal_Unicode *>(0)) ==
-+ ::cppu::UnoType< ::cppu::UnoUnsignedShortType >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(
-+ static_cast< css::uno::Sequence< ::sal_Unicode > *>(0)) ==
-+ ::cppu::UnoType<
-+ ::cppu::UnoSequenceType< ::cppu::UnoUnsignedShortType > >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(
-+ static_cast< css::uno::Sequence< css::uno::Sequence<
-+ ::sal_Unicode > > *>(0)) ==
-+ ::cppu::UnoType< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
-+ ::cppu::UnoUnsignedShortType > > >::get());
-+ } else {
-+ ::std::cout << "info: typeid(::sal_Unicode) != typeid(::sal_uInt16)\n";
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(
-+ static_cast< ::sal_Unicode *>(0)) ==
-+ ::cppu::UnoType< ::cppu::UnoCharType >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(
-+ static_cast< css::uno::Sequence< ::sal_Unicode > *>(0)) ==
-+ ::cppu::UnoType<
-+ ::cppu::UnoSequenceType< ::cppu::UnoCharType > >::get());
-+ CPPUNIT_ASSERT(
-+ ::cppu::getTypeFavourUnsigned(
-+ static_cast< css::uno::Sequence< css::uno::Sequence<
-+ ::sal_Unicode > > *>(0)) ==
-+ ::cppu::UnoType< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
-+ ::cppu::UnoCharType > > >::get());
-+ }
-+}
-+
-+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(Test, "alltests");
-+
-+}
-+
-+NOADDITIONAL;
diff --git a/patches/src680/cws-unxlngs04.diff b/patches/src680/cws-unxlngs04.diff
deleted file mode 100644
index f183fd85f..000000000
--- a/patches/src680/cws-unxlngs04.diff
+++ /dev/null
@@ -1,121 +0,0 @@
-Index: bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx
-===================================================================
-RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx,v
-retrieving revision 1.8
-retrieving revision 1.8.6.1
-diff -u -u -r1.8 -r1.8.6.1
---- bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx 7 Sep 2005 22:25:05 -0000 1.8
-+++ bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx 23 Sep 2005 11:40:28 -0000 1.8.6.1
-@@ -371,11 +371,13 @@
- */
- static void cpp_vtable_call()
- {
-- volatile sal_Int64 nRegReturn;
-+ sal_Int64 nRegReturn;
- int nFunctionIndex;
- void** pCallStack;
- int vTableOffset;
-
-+void * pRegReturn = &nRegReturn;
-+
- __asm__( "st %%i0, %0\n\t"
- "st %%i1, %1\n\t"
- "st %%i2, %2\n\t"
-@@ -394,41 +396,40 @@
- case typelib_TypeClass_BYTE:
- __asm__( "ld %0, %%l0\n\t"
- "ldsb [%%l0], %%i0\n"
-- : : "m"(&nRegReturn) );
-+ : : "m"(pRegReturn) );
- break;
- case typelib_TypeClass_CHAR:
- case typelib_TypeClass_SHORT:
- case typelib_TypeClass_UNSIGNED_SHORT:
- __asm__( "ld %0, %%l0\n\t"
- "ldsh [%%l0], %%i0\n"
-- : : "m"(&nRegReturn) );
-+ : : "m"(pRegReturn) );
- break;
- case typelib_TypeClass_HYPER:
- case typelib_TypeClass_UNSIGNED_HYPER:
--
- __asm__( "ld %0, %%l0\n\t"
- "ld [%%l0], %%i0\n\t"
-- "ld %1, %%l0\n\t"
-+ "add %%l0, 4, %%l0\n\t"
- "ld [%%l0], %%i1\n\t"
-- : : "m"(&nRegReturn), "m"(((long*)&nRegReturn) +1) );
-+ : : "m"(pRegReturn) );
-
- break;
- case typelib_TypeClass_FLOAT:
- __asm__( "ld %0, %%l0\n\t"
- "ld [%%l0], %%f0\n"
-- : : "m"(&nRegReturn) );
-+ : : "m"(pRegReturn) );
- break;
- case typelib_TypeClass_DOUBLE:
- __asm__( "ld %0, %%l0\n\t"
- "ldd [%%l0], %%f0\n"
-- : : "m"(&nRegReturn) );
-+ : : "m"(pRegReturn) );
- break;
- case typelib_TypeClass_VOID:
- break;
- default:
- __asm__( "ld %0, %%l0\n\t"
- "ld [%%l0], %%i0\n"
-- : : "m"(&nRegReturn) );
-+ : : "m"(pRegReturn) );
- break;
- }
-
-Index: solenv/bin/modules/installer/epmfile.pm
-===================================================================
-RCS file: /cvs/tools/solenv/bin/modules/installer/epmfile.pm,v
-retrieving revision 1.42
-retrieving revision 1.40.32.3
-diff -u -u -r1.42 -r1.40.32.3
---- solenv/bin/modules/installer/epmfile.pm 9 Nov 2005 09:09:49 -0000 1.42
-+++ solenv/bin/modules/installer/epmfile.pm 13 Nov 2005 01:26:04 -0000 1.40.32.3
-@@ -1732,6 +1732,7 @@
- my $target = "";
- if ( $installer::globals::compiler =~ /unxlngi/) { $target = "i586"; }
- if ( $installer::globals::compiler =~ /unxlngx/) { $target = "x86_64"; }
-+ if ( $installer::globals::compiler =~ /unxlngs/) { $target = "sparc"; }
-
- my $systemcall = "$rpmcommand -bb $specfilename --target $target 2\>\&1 |";
-
-@@ -1912,6 +1913,7 @@
- my $rpmdir;
- if ( $installer::globals::compiler =~ /unxlngi/) { $rpmdir = "$installer::globals::epmoutpath/RPMS/i586"; }
- if ( $installer::globals::compiler =~ /unxlngx/) { $rpmdir = "$installer::globals::epmoutpath/RPMS/x86_64"; }
-+ if ( $installer::globals::compiler =~ /unxlngs/) { $rpmdir = "$installer::globals::epmoutpath/RPMS/sparc"; }
-
- my $systemcall = "mv $rpmdir/* $newdir"; # moving the rpms into the directory "RPMS"
-
-@@ -1936,6 +1938,7 @@
- installer::systemactions::remove_empty_directory("$installer::globals::epmoutpath/RPMS/x86_64");
- installer::systemactions::remove_empty_directory("$installer::globals::epmoutpath/RPMS/i586");
- installer::systemactions::remove_empty_directory("$installer::globals::epmoutpath/RPMS/i386");
-+ installer::systemactions::remove_empty_directory("$installer::globals::epmoutpath/RPMS/sparc");
- installer::systemactions::remove_empty_directory("$installer::globals::epmoutpath/RPMS");
-
- }
-Index: solenv/bin/modules/installer/parameter.pm
-===================================================================
-RCS file: /cvs/tools/solenv/bin/modules/installer/parameter.pm,v
-retrieving revision 1.29
-retrieving revision 1.26.32.3
-diff -u -u -r1.29 -r1.26.32.3
---- solenv/bin/modules/installer/parameter.pm 9 Nov 2005 09:10:12 -0000 1.29
-+++ solenv/bin/modules/installer/parameter.pm 13 Nov 2005 01:26:20 -0000 1.26.32.3
-@@ -311,7 +311,7 @@
-
- if (( $installer::globals::compiler =~ /unx/ ) && ( $installer::globals::addpackagelist )) { $installer::globals::is_unix_multi = 1; }
-
-- if ( $installer::globals::compiler =~ /unxlngi/ || $installer::globals::compiler =~ /unxlngx/ )
-+ if ( $installer::globals::compiler =~ /unxlngi/ || $installer::globals::compiler =~ /unxlngx/ || $installer::globals::compiler =~ /unxlngs/ )
- {
- $installer::globals::islinuxbuild = 1;
- if ( $installer::globals::packageformat eq "rpm" )
diff --git a/patches/src680/db4-jni-casting-m146.diff b/patches/src680/db4-jni-casting-m146.diff
deleted file mode 100644
index 4309b71d4..000000000
--- a/patches/src680/db4-jni-casting-m146.diff
+++ /dev/null
@@ -1,3546 +0,0 @@
---- berkeleydb/db-4.2.52.patch.jni-casting-misuse 2005-05-23 14:12:18.000000000 -0400
-+++ berkeleydb/db-4.2.52.patch 2005-05-23 14:56:09.000000000 -0400
-@@ -317,8 +317,3541 @@
- ! SLOFILES= $(SLO)$/hsearch.obj
- !
- ! .INCLUDE : target.mk
--*** misc/db-4.2.52.NC/libdb_java/makefile.mk 2005-04-07 17:09:42.000000000 +0200
----- misc/build/db-4.2.52.NC/libdb_java/makefile.mk 2005-04-07 17:09:09.000000000 +0200
-+*** misc/db-4.2.52.NC/libdb_java/db_java_wrap.c 2003-12-03 16:10:36.000000000 -0500
-+--- misc/build/db-4.2.52.NC/libdb_java/db_java_wrap.c 2005-05-23 14:54:42.000000000 -0400
-+***************
-+*** 371,377 ****
-+ memset(lsn_copy, 0, sizeof(DB_LSN));
-+ *lsn_copy = *lsn;
-+ /* Magic to convert a pointer to a long - must match SWIG */
-+! *(DB_LSN **)&jptr = lsn_copy;
-+ return (*jenv)->NewObject(jenv, dblsn_class, dblsn_construct,
-+ jptr, JNI_TRUE);
-+ }
-+--- 371,378 ----
-+ memset(lsn_copy, 0, sizeof(DB_LSN));
-+ *lsn_copy = *lsn;
-+ /* Magic to convert a pointer to a long - must match SWIG */
-+! jptr = (intptr_t) lsn_copy;
-+! /* *(DB_LSN **)&jptr = lsn_copy; */
-+ return (*jenv)->NewObject(jenv, dblsn_class, dblsn_construct,
-+ jptr, JNI_TRUE);
-+ }
-+***************
-+*** 632,638 ****
-+ int completed;
-+
-+ COMPQUIET(jcls, NULL);
-+! dbenv = *(DB_ENV **)&jdbenvp;
-+ jdbenv = (jobject)DB_ENV_INTERNAL(dbenv);
-+
-+ if (dbenv == NULL) {
-+--- 633,640 ----
-+ int completed;
-+
-+ COMPQUIET(jcls, NULL);
-+! dbenv = (DB_ENV *)((intptr_t)jdbenvp);
-+! /* dbenv = *(DB_ENV **)&jdbenvp; */
-+ jdbenv = (jobject)DB_ENV_INTERNAL(dbenv);
-+
-+ if (dbenv == NULL) {
-+***************
-+*** 701,707 ****
-+ "DbLockRequest lock field is NULL", NULL, jdbenv);
-+ goto out2;
-+ }
-+! lockp = *(DB_LOCK **)&jlockp;
-+ prereq->lock = *lockp;
-+ break;
-+ case DB_LOCK_PUT_ALL:
-+--- 703,710 ----
-+ "DbLockRequest lock field is NULL", NULL, jdbenv);
-+ goto out2;
-+ }
-+! lockp = (DB_LOCK *)((intptr_t)jlockp);
-+! /* lockp = *(DB_LOCK **)&jlockp; */
-+ prereq->lock = *lockp;
-+ break;
-+ case DB_LOCK_PUT_ALL:
-+***************
-+*** 745,751 ****
-+ lockreq_lock_fid);
-+ jlockp = (*jenv)->GetLongField(jenv, jlock,
-+ lock_cptr_fid);
-+! lockp = *(DB_LOCK **)&jlockp;
-+ __os_free(NULL, lockp);
-+ (*jenv)->SetLongField(jenv, jlock, lock_cptr_fid,
-+ (jlong)0);
-+--- 748,755 ----
-+ lockreq_lock_fid);
-+ jlockp = (*jenv)->GetLongField(jenv, jlock,
-+ lock_cptr_fid);
-+! lockp = (DB_LOCK *)((intptr_t)jlockp);
-+! /* lockp = *(DB_LOCK **)&jlockp; */
-+ __os_free(NULL, lockp);
-+ (*jenv)->SetLongField(jenv, jlock, lock_cptr_fid,
-+ (jlong)0);
-+***************
-+*** 763,769 ****
-+ }
-+
-+ *lockp = lockreq[i].lock;
-+! *(DB_LOCK **)&jlockp = lockp;
-+
-+ jlockreq = (*jenv)->GetObjectArrayElement(jenv,
-+ list, i + offset);
-+--- 767,774 ----
-+ }
-+
-+ *lockp = lockreq[i].lock;
-+! jlockp = (intptr_t)lockp;
-+! /* *(DB_LOCK **)&jlockp = lockp; */
-+
-+ jlockreq = (*jenv)->GetObjectArrayElement(jenv,
-+ list, i + offset);
-+***************
-+*** 1194,1200 ****
-+
-+ JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbEnvRef0(
-+ JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
-+! DB_ENV *self = *(DB_ENV **)&jarg1;
-+ COMPQUIET(jcls, NULL);
-+
-+ DB_ENV_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
-+--- 1199,1206 ----
-+
-+ JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbEnvRef0(
-+ JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
-+! DB_ENV *self = (DB_ENV *)((intptr_t)jarg1);
-+! /* DB_ENV *self = *(DB_ENV **)&jarg1; */
-+ COMPQUIET(jcls, NULL);
-+
-+ DB_ENV_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
-+***************
-+*** 1204,1210 ****
-+
-+ JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbRef0(
-+ JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
-+! DB *self = *(DB **)&jarg1;
-+ COMPQUIET(jcls, NULL);
-+
-+ DB_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
-+--- 1210,1217 ----
-+
-+ JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbRef0(
-+ JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
-+! DB *self = (DB *)((intptr_t)jarg1);
-+! /* DB *self = *(DB **)&jarg1; */
-+ COMPQUIET(jcls, NULL);
-+
-+ DB_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
-+***************
-+*** 1221,1227 ****
-+
-+ JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbRef0(
-+ JNIEnv *jenv, jclass jcls, jlong jarg1) {
-+! DB *self = *(DB **)&jarg1;
-+ COMPQUIET(jcls, NULL);
-+ COMPQUIET(jenv, NULL);
-+
-+--- 1228,1235 ----
-+
-+ JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbRef0(
-+ JNIEnv *jenv, jclass jcls, jlong jarg1) {
-+! DB *self = (DB *)((intptr_t)jarg1);
-+! /* DB *self = *(DB **)&jarg1; */
-+ COMPQUIET(jcls, NULL);
-+ COMPQUIET(jenv, NULL);
-+
-+***************
-+*** 1230,1242 ****
-+
-+ JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbEnv0(
-+ JNIEnv *jenv, jclass jcls, jlong jarg1) {
-+! DB *self = *(DB **)&jarg1;
-+ jlong env_cptr;
-+
-+ COMPQUIET(jenv, NULL);
-+ COMPQUIET(jcls, NULL);
-+
-+! *(DB_ENV **)&env_cptr = self->dbenv;
-+ return env_cptr;
-+ }
-+
-+--- 1238,1252 ----
-+
-+ JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbEnv0(
-+ JNIEnv *jenv, jclass jcls, jlong jarg1) {
-+! DB *self = (DB *)((intptr_t)jarg1);
-+! /* DB *self = *(DB **)&jarg1; */
-+ jlong env_cptr;
-+
-+ COMPQUIET(jenv, NULL);
-+ COMPQUIET(jcls, NULL);
-+
-+! env_cptr = (jlong)((intptr_t)(self->dbenv));
-+! /* *(DB_ENV **)&env_cptr = self->dbenv; */
-+ return env_cptr;
-+ }
-+
-+***************
-+*** 1997,2003 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(DB_ENV **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ errno = 0;
-+--- 2007,2014 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (DB_ENV *)((intptr_t)jarg1);
-+! /* arg1 = *(DB_ENV **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ errno = 0;
-+***************
-+*** 2006,2012 ****
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
-+
-+! *(struct __db **)&jresult = result;
-+ return jresult;
-+ }
-+
-+--- 2017,2024 ----
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
-+
-+! jresult = (jlong)((intptr_t)result);
-+! /* *(struct __db **)&jresult = result; */
-+ return jresult;
-+ }
-+
-+***************
-+*** 2021,2029 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+! arg2 = *(DB_TXN **)&jarg2;
-+! arg3 = *(DB **)&jarg3;
-+
-+ arg4 = (jarg4 == NULL) ? NULL : __dbj_seckey_create;
-+
-+--- 2033,2044 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+! arg2 = (DB_TXN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_TXN **)&jarg2; */
-+! arg3 = (DB *)((intptr_t)jarg3);
-+! /* arg3 = *(DB **)&jarg3; */
-+
-+ arg4 = (jarg4 == NULL) ? NULL : __dbj_seckey_create;
-+
-+***************
-+*** 2051,2057 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 2066,2073 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 2080,2087 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+! arg2 = *(DB_TXN **)&jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+ if (jarg1 == 0) {
-+--- 2096,2105 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+! arg2 = (DB_TXN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_TXN **)&jarg2; */
-+ arg3 = (u_int32_t)jarg3;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 2096,2102 ****
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
-+
-+! *(DBC **)&jresult = result;
-+ return jresult;
-+ }
-+
-+--- 2114,2121 ----
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
-+
-+! jresult = (jlong)((intptr_t)result);
-+! /* *(DBC **)&jresult = result; */
-+ return jresult;
-+ }
-+
-+***************
-+*** 2112,2119 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+! arg2 = *(DB_TXN **)&jarg2;
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return 0;
-+--- 2131,2140 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+! arg2 = (DB_TXN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_TXN **)&jarg2; */
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return 0;
-+***************
-+*** 2147,2153 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (int)jarg2;
-+ {
-+ arg3 = 0;
-+--- 2168,2175 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (int)jarg2;
-+ {
-+ arg3 = 0;
-+***************
-+*** 2176,2182 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 2198,2205 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 2211,2218 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+! arg2 = *(DB_TXN **)&jarg2;
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return 0;
-+--- 2234,2243 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+! arg2 = (DB_TXN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_TXN **)&jarg2; */
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return 0;
-+***************
-+*** 2254,2260 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2279,2286 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2282,2288 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2308,2315 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2308,2314 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2335,2342 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2334,2340 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2362,2369 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2362,2368 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2391,2398 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2390,2396 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2420,2427 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2416,2422 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2447,2454 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2442,2448 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2474,2481 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2468,2474 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2501,2508 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2482,2488 ****
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
-+
-+! *(DB_MPOOLFILE **)&jresult = result;
-+ return jresult;
-+ }
-+
-+--- 2516,2523 ----
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
-+
-+! jresult = (jlong)((intptr_t)result);
-+! /* *(DB_MPOOLFILE **)&jresult = result; */
-+ return jresult;
-+ }
-+
-+***************
-+*** 2494,2500 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2529,2536 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2520,2526 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2556,2563 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2546,2552 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2583,2590 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2572,2578 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2610,2617 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2598,2604 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2637,2644 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2624,2630 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2664,2671 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2650,2656 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2691,2698 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2676,2682 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2718,2725 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2702,2708 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2745,2752 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2730,2736 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2774,2781 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2756,2762 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2801,2808 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2782,2788 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2828,2835 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2810,2816 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2857,2864 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2838,2844 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ {
-+ int i, count, err;
-+
-+--- 2886,2893 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ {
-+ int i, count, err;
-+
-+***************
-+*** 2858,2864 ****
-+ }else {
-+ jlong jptr = (*jenv)->GetLongField(jenv, jobj,
-+ dbc_cptr_fid);
-+! arg2[i] = *(DBC **)&jptr;
-+ }
-+ }
-+ arg2[count] = NULL;
-+--- 2907,2914 ----
-+ }else {
-+ jlong jptr = (*jenv)->GetLongField(jenv, jobj,
-+ dbc_cptr_fid);
-+! arg2[i] = (DBC *)((intptr_t)jptr);
-+! /* arg2[i] = *(DBC **)&jptr; */
-+ }
-+ }
-+ arg2[count] = NULL;
-+***************
-+*** 2877,2883 ****
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
-+
-+! *(DBC **)&jresult = result;
-+
-+ __os_free(NULL, arg2);
-+
-+--- 2927,2934 ----
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
-+
-+! jresult = (jlong)((intptr_t)result);
-+! /* *(DBC **)&jresult = result; */
-+
-+ __os_free(NULL, arg2);
-+
-+***************
-+*** 2897,2904 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+! arg2 = *(DB_TXN **)&jarg2;
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return ;
-+--- 2948,2957 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+! arg2 = (DB_TXN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_TXN **)&jarg2; */
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return ;
-+***************
-+*** 2943,2950 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+! arg2 = *(DB_TXN **)&jarg2;
-+ {
-+ arg3 = 0;
-+ if (jarg3) {
-+--- 2996,3005 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+! arg2 = (DB_TXN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_TXN **)&jarg2; */
-+ {
-+ arg3 = 0;
-+ if (jarg3) {
-+***************
-+*** 2998,3005 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+! arg2 = *(DB_TXN **)&jarg2;
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return 0;
-+--- 3053,3062 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+! arg2 = (DB_TXN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_TXN **)&jarg2; */
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return 0;
-+***************
-+*** 3055,3062 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+! arg2 = *(DB_TXN **)&jarg2;
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return 0;
-+--- 3112,3121 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+! arg2 = (DB_TXN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_TXN **)&jarg2; */
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return 0;
-+***************
-+*** 3100,3106 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 3159,3166 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 3147,3153 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 3207,3214 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 3201,3207 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_append_recno;
-+
-+--- 3262,3269 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_append_recno;
-+
-+***************
-+*** 3227,3233 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_bt_compare;
-+
-+--- 3289,3296 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_bt_compare;
-+
-+***************
-+*** 3253,3259 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3316,3323 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3277,3283 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3341,3348 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3301,3307 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_bt_prefix;
-+
-+--- 3366,3373 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_bt_prefix;
-+
-+***************
-+*** 3328,3334 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = jarg2;
-+ arg3 = (int)jarg3;
-+
-+--- 3394,3401 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = jarg2;
-+ arg3 = (int)jarg3;
-+
-+***************
-+*** 3353,3359 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_dup_compare;
-+
-+--- 3420,3427 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_dup_compare;
-+
-+***************
-+*** 3380,3386 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 3448,3455 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 3414,3420 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_db_feedback;
-+
-+--- 3483,3490 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_db_feedback;
-+
-+***************
-+*** 3440,3446 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3510,3517 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3464,3470 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3535,3542 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3488,3494 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_h_hash;
-+
-+--- 3560,3567 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_h_hash;
-+
-+***************
-+*** 3514,3520 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3587,3594 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3538,3544 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (int)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3612,3619 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (int)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3562,3568 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3637,3644 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3586,3592 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (int)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3662,3669 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (int)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3610,3616 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3687,3694 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3634,3640 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (int)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3712,3719 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (int)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3658,3664 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 3737,3744 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 3691,3697 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3771,3778 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3716,3722 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3797,3804 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3793,3799 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3875,3882 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3819,3826 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+! arg2 = *(DB_TXN **)&jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+ if (jarg1 == 0) {
-+--- 3902,3911 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+! arg2 = (DB_TXN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_TXN **)&jarg2; */
-+ arg3 = (u_int32_t)jarg3;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3848,3854 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 3933,3940 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 3886,3892 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 3972,3979 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 3937,3943 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __dbc **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 4024,4031 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __dbc *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __dbc **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 3961,3967 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __dbc **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 4049,4056 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __dbc *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __dbc **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3989,3995 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __dbc **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 4078,4085 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __dbc *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __dbc **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 4016,4022 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __dbc **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 4106,4113 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __dbc *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __dbc **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 4031,4037 ****
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, DBC2JDBENV);
-+
-+! *(DBC **)&jresult = result;
-+ return jresult;
-+ }
-+
-+--- 4122,4129 ----
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, DBC2JDBENV);
-+
-+! jresult = (jlong)((intptr_t)result);
-+! /* *(DBC **)&jresult = result; */
-+ return jresult;
-+ }
-+
-+***************
-+*** 4048,4054 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __dbc **)&jarg1;
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
-+ return 0;
-+--- 4140,4147 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __dbc *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __dbc **)&jarg1; */
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
-+ return 0;
-+***************
-+*** 4097,4103 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __dbc **)&jarg1;
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
-+ return 0;
-+--- 4190,4198 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __dbc *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __dbc **)&jarg1; */
-+!
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
-+ return 0;
-+***************
-+*** 4152,4158 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __dbc **)&jarg1;
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
-+ return 0;
-+--- 4247,4255 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __dbc *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __dbc **)&jarg1; */
-+!
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
-+ return 0;
-+***************
-+*** 4202,4208 ****
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, NULL);
-+
-+! *(struct __db_env **)&jresult = result;
-+ return jresult;
-+ }
-+
-+--- 4299,4306 ----
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, NULL);
-+
-+! jresult = (jlong)((intptr_t)result);
-+! /* *(struct __db_env **)&jresult = result; */
-+ return jresult;
-+ }
-+
-+***************
-+*** 4214,4220 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 4312,4319 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 4241,4248 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+! arg2 = *(DB_TXN **)&jarg2;
-+ {
-+ arg3 = 0;
-+ if (jarg3) {
-+--- 4340,4349 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+! arg2 = (DB_TXN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_TXN **)&jarg2; */
-+ {
-+ arg3 = 0;
-+ if (jarg3) {
-+***************
-+*** 4290,4297 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+! arg2 = *(DB_TXN **)&jarg2;
-+ {
-+ arg3 = 0;
-+ if (jarg3) {
-+--- 4391,4400 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+! arg2 = (DB_TXN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_TXN **)&jarg2; */
-+ {
-+ arg3 = 0;
-+ if (jarg3) {
-+***************
-+*** 4345,4351 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (int)jarg2;
-+ {
-+ arg3 = 0;
-+--- 4448,4455 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (int)jarg2;
-+ {
-+ arg3 = 0;
-+***************
-+*** 4374,4380 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 4478,4485 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 4403,4409 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 4508,4515 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 4445,4451 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 4551,4558 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 4471,4477 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 4578,4585 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 4497,4503 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 4605,4612 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 4525,4531 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 4634,4641 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 4551,4557 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 4661,4668 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 4577,4583 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 4688,4695 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 4603,4609 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 4715,4722 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 4632,4638 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 4745,4752 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 4663,4669 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 4777,4784 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 4699,4705 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 4814,4821 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 4734,4740 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = jarg2;
-+ arg3 = (int)jarg3;
-+
-+--- 4850,4857 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = jarg2;
-+ arg3 = (int)jarg3;
-+
-+***************
-+*** 4759,4765 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 4876,4883 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 4793,4799 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 4911,4918 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 4826,4832 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_error;
-+
-+--- 4945,4952 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_error;
-+
-+***************
-+*** 4849,4855 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ arg3 = (jarg3 == JNI_TRUE);
-+--- 4969,4976 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ arg3 = (jarg3 == JNI_TRUE);
-+***************
-+*** 4876,4882 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_env_feedback;
-+
-+--- 4997,5004 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_env_feedback;
-+
-+***************
-+*** 4902,4908 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (size_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 5024,5031 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (size_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 4926,4932 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_panic;
-+
-+--- 5049,5056 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_panic;
-+
-+***************
-+*** 4956,4963 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+! arg2 = *(void **)&jarg2;
-+ {
-+ arg3 = 0;
-+ if (jarg3) {
-+--- 5080,5089 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+! arg2 = (void *)((intptr_t)jarg2);
-+! /* arg2 = *(void **)&jarg2; */
-+ {
-+ arg3 = 0;
-+ if (jarg3) {
-+***************
-+*** 5000,5006 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (long)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 5126,5133 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (long)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 5024,5030 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 5151,5158 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 5049,5055 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (db_timeout_t)jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+--- 5177,5184 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (db_timeout_t)jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+***************
-+*** 5074,5080 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 5203,5210 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 5107,5113 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 5237,5244 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 5131,5137 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_app_dispatch;
-+
-+--- 5262,5269 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_app_dispatch;
-+
-+***************
-+*** 5158,5164 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ time2 = (time_t)jarg2;
-+ arg2 = &time2;
-+--- 5290,5297 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ time2 = (time_t)jarg2;
-+ arg2 = &time2;
-+***************
-+*** 5186,5192 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ arg3 = (jarg3 == JNI_TRUE);
-+--- 5319,5326 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ arg3 = (jarg3 == JNI_TRUE);
-+***************
-+*** 5213,5219 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 5347,5354 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5255,5261 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 5390,5397 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5281,5287 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 5417,5424 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5307,5313 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 5444,5451 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5333,5339 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 5471,5478 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5361,5367 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+--- 5500,5507 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+***************
-+*** 5394,5400 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+--- 5534,5541 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+***************
-+*** 5421,5427 ****
-+ }else if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
-+
-+! *(DB_LOCK **)&jresult = result;
-+
-+ if (ldbt4.jarr != NULL) {
-+ (*jenv)->ReleaseByteArrayElements(jenv, ldbt4.jarr,
-+--- 5562,5569 ----
-+ }else if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
-+
-+! jresult = (jlong)((intptr_t)result);
-+! /* *(DB_LOCK **)&jresult = result; */
-+
-+ if (ldbt4.jarr != NULL) {
-+ (*jenv)->ReleaseByteArrayElements(jenv, ldbt4.jarr,
-+***************
-+*** 5439,5445 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 5581,5588 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5465,5471 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 5608,5615 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 5489,5496 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+! arg2 = *(DB_LOCK **)&jarg2;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 5633,5642 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+! arg2 = (DB_LOCK *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_LOCK **)&jarg2; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5514,5520 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 5660,5667 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 5546,5552 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ {
-+ int i, len, err;
-+ size_t bytesize;
-+--- 5693,5700 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ {
-+ int i, len, err;
-+ size_t bytesize;
-+***************
-+*** 5591,5597 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 5739,5746 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 5615,5621 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 5764,5771 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 5639,5645 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 5789,5796 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 5663,5669 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 5814,5821 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 5687,5693 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 5839,5846 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5713,5719 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 5866,5873 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5741,5747 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 5895,5902 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5767,5773 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 5922,5929 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5794,5800 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 5950,5957 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 5839,5846 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(DB_LSN **)&jarg1;
-+! arg2 = *(DB_LSN **)&jarg2;
-+ result = (int)DbEnv_log_compare((DB_LSN const *)arg1,(DB_LSN const *)arg2);
-+
-+ jresult = (jint)result;
-+--- 5996,6005 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (DB_LSN *)((intptr_t)jarg1);
-+! /* arg1 = *(DB_LSN **)&jarg1; */
-+! arg2 = (DB_LSN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_LSN **)&jarg2; */
-+ result = (int)DbEnv_log_compare((DB_LSN const *)arg1,(DB_LSN const *)arg2);
-+
-+ jresult = (jint)result;
-+***************
-+*** 5856,5862 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 6015,6022 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 5871,5877 ****
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
-+
-+! *(DB_LOGC **)&jresult = result;
-+ return jresult;
-+ }
-+
-+--- 6031,6038 ----
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
-+
-+! jresult = (jlong)((intptr_t)result);
-+! /* *(DB_LOGC **)&jresult = result; */
-+ return jresult;
-+ }
-+
-+***************
-+*** 5884,5891 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+! arg2 = *(DB_LSN **)&jarg2;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 6045,6054 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+! arg2 = (DB_LSN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_LSN **)&jarg2; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5913,5920 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+! arg2 = *(DB_LSN **)&jarg2;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 6076,6085 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+! arg2 = (DB_LSN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_LSN **)&jarg2; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5940,5947 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+! arg2 = *(DB_LSN **)&jarg2;
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return ;
-+--- 6105,6114 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+! arg2 = (DB_LSN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_LSN **)&jarg2; */
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return ;
-+***************
-+*** 5977,5983 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 6144,6151 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6009,6015 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 6177,6184 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6033,6039 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 6202,6209 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 6066,6072 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 6236,6243 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6090,6096 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 6261,6268 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6114,6120 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 6286,6293 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 6140,6146 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 6313,6320 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 6166,6172 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 6340,6347 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 6193,6199 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 6368,6375 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6226,6232 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 6402,6409 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6276,6282 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (int)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 6453,6460 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (int)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6303,6309 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 6481,6488 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 6329,6335 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 6508,6515 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 6356,6362 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 6536,6543 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6385,6392 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+! arg2 = *(DB_TXN **)&jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+ if (jarg1 == 0) {
-+--- 6566,6575 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+! arg2 = (DB_TXN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_TXN **)&jarg2; */
-+ arg3 = (u_int32_t)jarg3;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6401,6407 ****
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
-+
-+! *(DB_TXN **)&jresult = result;
-+ return jresult;
-+ }
-+
-+--- 6584,6591 ----
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
-+
-+! jresult = (jlong)((intptr_t)result);
-+! /* *(DB_TXN **)&jresult = result; */
-+ return jresult;
-+ }
-+
-+***************
-+*** 6415,6421 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+ arg4 = (u_int32_t)jarg4;
-+--- 6599,6606 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+ arg4 = (u_int32_t)jarg4;
-+***************
-+*** 6443,6449 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (int)jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+--- 6628,6635 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (int)jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+***************
-+*** 6498,6504 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 6684,6691 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6551,6557 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 6738,6745 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 6580,6586 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (int)jarg2;
-+ arg3 = (int)jarg3;
-+ arg4 = (u_int32_t)jarg4;
-+--- 6768,6775 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (int)jarg2;
-+ arg3 = (int)jarg3;
-+ arg4 = (u_int32_t)jarg4;
-+***************
-+*** 6616,6622 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
-+ return 0;
-+--- 6805,6812 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
-+ return 0;
-+***************
-+*** 6631,6637 ****
-+ id4 = (*jenv)->GetIntField(jenv, jarg4, rep_processmsg_envid);
-+ arg4 = &id4;
-+
-+! arg5 = *(DB_LSN **)&jarg5;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 6821,6828 ----
-+ id4 = (*jenv)->GetIntField(jenv, jarg4, rep_processmsg_envid);
-+ arg4 = &id4;
-+
-+! arg5 = (DB_LSN *)((intptr_t)jarg5);
-+! /* arg5 = *(DB_LSN **)&jarg5; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 6667,6673 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
-+ return ;
-+--- 6858,6865 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
-+ return ;
-+***************
-+*** 6700,6706 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 6892,6899 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6732,6738 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 6925,6932 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6757,6763 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (int)jarg2;
-+
-+ arg3 = (jarg3 == NULL) ? NULL : __dbj_rep_transport;
-+--- 6951,6958 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (int)jarg2;
-+
-+ arg3 = (jarg3 == NULL) ? NULL : __dbj_rep_transport;
-+***************
-+*** 6854,6860 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_txn **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 7049,7056 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_txn *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_txn **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 6877,6883 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_txn **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 7073,7080 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_txn *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_txn **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6901,6907 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_txn **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 7098,7105 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_txn *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_txn **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6925,6931 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_txn **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 7123,7130 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_txn *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_txn **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 6946,6952 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_txn **)&jarg1;
-+
-+ arg2 = (u_int8_t *)(*jenv)->GetByteArrayElements(jenv, jarg2, NULL);
-+
-+--- 7145,7152 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_txn *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_txn **)&jarg1; */
-+
-+ arg2 = (u_int8_t *)(*jenv)->GetByteArrayElements(jenv, jarg2, NULL);
-+
-+***************
-+*** 6983,6989 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_txn **)&jarg1;
-+ arg2 = (db_timeout_t)jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+--- 7183,7190 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_txn *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_txn **)&jarg1; */
-+ arg2 = (db_timeout_t)jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+***************
-+*** 7008,7014 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_log_cursor **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 7209,7216 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_log_cursor *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_log_cursor **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 7036,7043 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_log_cursor **)&jarg1;
-+! arg2 = *(DB_LSN **)&jarg2;
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return 0;
-+--- 7238,7247 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_log_cursor *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_log_cursor **)&jarg1; */
-+! arg2 = (DB_LSN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_LSN **)&jarg2; */
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return 0;
-+***************
-+*** 7069,7075 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_lock_u **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 7273,7280 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_lock_u *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_lock_u **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 7098,7104 ****
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, NULL);
-+
-+! *(struct __db_lsn **)&jresult = result;
-+ return jresult;
-+ }
-+
-+--- 7303,7310 ----
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, NULL);
-+
-+! jresult = (jlong)((intptr_t)result);
-+! /* *(struct __db_lsn **)&jresult = result; */
-+ return jresult;
-+ }
-+
-+***************
-+*** 7108,7114 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_lsn **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 7314,7321 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_lsn *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_lsn **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 7127,7133 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_lsn **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 7334,7341 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_lsn *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_lsn **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 7148,7154 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_lsn **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 7356,7363 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_lsn *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_lsn **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 7169,7175 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_mpoolfile **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 7378,7385 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_mpoolfile *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_mpoolfile **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 7195,7201 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_mpoolfile **)&jarg1;
-+ arg2 = (DB_CACHE_PRIORITY)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 7405,7412 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_mpoolfile *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_mpoolfile **)&jarg1; */
-+ arg2 = (DB_CACHE_PRIORITY)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 7219,7225 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_mpoolfile **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 7430,7437 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_mpoolfile *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_mpoolfile **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 7246,7252 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_mpoolfile **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ arg3 = (jarg3 == JNI_TRUE);
-+--- 7458,7465 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_mpoolfile *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_mpoolfile **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ arg3 = (jarg3 == JNI_TRUE);
-+***************
-+*** 7273,7279 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_mpoolfile **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 7486,7493 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_mpoolfile *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_mpoolfile **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 7299,7305 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_mpoolfile **)&jarg1;
-+ arg2 = jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 7513,7520 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_mpoolfile *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_mpoolfile **)&jarg1; */
-+ arg2 = jarg2;
-+
-+ if (jarg1 == 0) {
-+*** misc/db-4.2.52.NC/libdb_java/makefile.mk 2005-05-23 14:56:08.000000000 -0400
-+--- misc/build/db-4.2.52.NC/libdb_java/makefile.mk 2005-05-23 14:12:27.000000000 -0400
- ***************
- *** 1 ****
- ! dummy
diff --git a/patches/src680/db4-jni-casting.diff b/patches/src680/db4-jni-casting.diff
deleted file mode 100644
index 4e0787cac..000000000
--- a/patches/src680/db4-jni-casting.diff
+++ /dev/null
@@ -1,3546 +0,0 @@
---- berkeleydb/db-4.2.52.patch.jni-casting-misuse 2005-05-23 14:12:18.000000000 -0400
-+++ berkeleydb/db-4.2.52.patch 2005-05-23 14:56:09.000000000 -0400
-@@ -383,8 +383,3541 @@
- ! SLOFILES= $(SLO)$/hsearch.obj
- !
- ! .INCLUDE : target.mk
--*** misc/db-4.2.52.NC/libdb_java/makefile.mk 2005-12-22 13:32:58.468663000 +0100
----- misc/build/db-4.2.52.NC/libdb_java/makefile.mk 2005-12-22 13:28:08.208664000 +0100
-+*** misc/db-4.2.52.NC/libdb_java/db_java_wrap.c 2003-12-03 16:10:36.000000000 -0500
-+--- misc/build/db-4.2.52.NC/libdb_java/db_java_wrap.c 2005-05-23 14:54:42.000000000 -0400
-+***************
-+*** 371,377 ****
-+ memset(lsn_copy, 0, sizeof(DB_LSN));
-+ *lsn_copy = *lsn;
-+ /* Magic to convert a pointer to a long - must match SWIG */
-+! *(DB_LSN **)&jptr = lsn_copy;
-+ return (*jenv)->NewObject(jenv, dblsn_class, dblsn_construct,
-+ jptr, JNI_TRUE);
-+ }
-+--- 371,378 ----
-+ memset(lsn_copy, 0, sizeof(DB_LSN));
-+ *lsn_copy = *lsn;
-+ /* Magic to convert a pointer to a long - must match SWIG */
-+! jptr = (intptr_t) lsn_copy;
-+! /* *(DB_LSN **)&jptr = lsn_copy; */
-+ return (*jenv)->NewObject(jenv, dblsn_class, dblsn_construct,
-+ jptr, JNI_TRUE);
-+ }
-+***************
-+*** 632,638 ****
-+ int completed;
-+
-+ COMPQUIET(jcls, NULL);
-+! dbenv = *(DB_ENV **)&jdbenvp;
-+ jdbenv = (jobject)DB_ENV_INTERNAL(dbenv);
-+
-+ if (dbenv == NULL) {
-+--- 633,640 ----
-+ int completed;
-+
-+ COMPQUIET(jcls, NULL);
-+! dbenv = (DB_ENV *)((intptr_t)jdbenvp);
-+! /* dbenv = *(DB_ENV **)&jdbenvp; */
-+ jdbenv = (jobject)DB_ENV_INTERNAL(dbenv);
-+
-+ if (dbenv == NULL) {
-+***************
-+*** 701,707 ****
-+ "DbLockRequest lock field is NULL", NULL, jdbenv);
-+ goto out2;
-+ }
-+! lockp = *(DB_LOCK **)&jlockp;
-+ prereq->lock = *lockp;
-+ break;
-+ case DB_LOCK_PUT_ALL:
-+--- 703,710 ----
-+ "DbLockRequest lock field is NULL", NULL, jdbenv);
-+ goto out2;
-+ }
-+! lockp = (DB_LOCK *)((intptr_t)jlockp);
-+! /* lockp = *(DB_LOCK **)&jlockp; */
-+ prereq->lock = *lockp;
-+ break;
-+ case DB_LOCK_PUT_ALL:
-+***************
-+*** 745,751 ****
-+ lockreq_lock_fid);
-+ jlockp = (*jenv)->GetLongField(jenv, jlock,
-+ lock_cptr_fid);
-+! lockp = *(DB_LOCK **)&jlockp;
-+ __os_free(NULL, lockp);
-+ (*jenv)->SetLongField(jenv, jlock, lock_cptr_fid,
-+ (jlong)0);
-+--- 748,755 ----
-+ lockreq_lock_fid);
-+ jlockp = (*jenv)->GetLongField(jenv, jlock,
-+ lock_cptr_fid);
-+! lockp = (DB_LOCK *)((intptr_t)jlockp);
-+! /* lockp = *(DB_LOCK **)&jlockp; */
-+ __os_free(NULL, lockp);
-+ (*jenv)->SetLongField(jenv, jlock, lock_cptr_fid,
-+ (jlong)0);
-+***************
-+*** 763,769 ****
-+ }
-+
-+ *lockp = lockreq[i].lock;
-+! *(DB_LOCK **)&jlockp = lockp;
-+
-+ jlockreq = (*jenv)->GetObjectArrayElement(jenv,
-+ list, i + offset);
-+--- 767,774 ----
-+ }
-+
-+ *lockp = lockreq[i].lock;
-+! jlockp = (intptr_t)lockp;
-+! /* *(DB_LOCK **)&jlockp = lockp; */
-+
-+ jlockreq = (*jenv)->GetObjectArrayElement(jenv,
-+ list, i + offset);
-+***************
-+*** 1194,1200 ****
-+
-+ JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbEnvRef0(
-+ JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
-+! DB_ENV *self = *(DB_ENV **)&jarg1;
-+ COMPQUIET(jcls, NULL);
-+
-+ DB_ENV_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
-+--- 1199,1206 ----
-+
-+ JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbEnvRef0(
-+ JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
-+! DB_ENV *self = (DB_ENV *)((intptr_t)jarg1);
-+! /* DB_ENV *self = *(DB_ENV **)&jarg1; */
-+ COMPQUIET(jcls, NULL);
-+
-+ DB_ENV_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
-+***************
-+*** 1204,1210 ****
-+
-+ JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbRef0(
-+ JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
-+! DB *self = *(DB **)&jarg1;
-+ COMPQUIET(jcls, NULL);
-+
-+ DB_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
-+--- 1210,1217 ----
-+
-+ JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_initDbRef0(
-+ JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg2) {
-+! DB *self = (DB *)((intptr_t)jarg1);
-+! /* DB *self = *(DB **)&jarg1; */
-+ COMPQUIET(jcls, NULL);
-+
-+ DB_INTERNAL(self) = (void *)(*jenv)->NewGlobalRef(jenv, jarg2);
-+***************
-+*** 1221,1227 ****
-+
-+ JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbRef0(
-+ JNIEnv *jenv, jclass jcls, jlong jarg1) {
-+! DB *self = *(DB **)&jarg1;
-+ COMPQUIET(jcls, NULL);
-+ COMPQUIET(jenv, NULL);
-+
-+--- 1228,1235 ----
-+
-+ JNIEXPORT jobject JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbRef0(
-+ JNIEnv *jenv, jclass jcls, jlong jarg1) {
-+! DB *self = (DB *)((intptr_t)jarg1);
-+! /* DB *self = *(DB **)&jarg1; */
-+ COMPQUIET(jcls, NULL);
-+ COMPQUIET(jenv, NULL);
-+
-+***************
-+*** 1230,1242 ****
-+
-+ JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbEnv0(
-+ JNIEnv *jenv, jclass jcls, jlong jarg1) {
-+! DB *self = *(DB **)&jarg1;
-+ jlong env_cptr;
-+
-+ COMPQUIET(jenv, NULL);
-+ COMPQUIET(jcls, NULL);
-+
-+! *(DB_ENV **)&env_cptr = self->dbenv;
-+ return env_cptr;
-+ }
-+
-+--- 1238,1252 ----
-+
-+ JNIEXPORT jlong JNICALL Java_com_sleepycat_db_db_1javaJNI_getDbEnv0(
-+ JNIEnv *jenv, jclass jcls, jlong jarg1) {
-+! DB *self = (DB *)((intptr_t)jarg1);
-+! /* DB *self = *(DB **)&jarg1; */
-+ jlong env_cptr;
-+
-+ COMPQUIET(jenv, NULL);
-+ COMPQUIET(jcls, NULL);
-+
-+! env_cptr = (jlong)((intptr_t)(self->dbenv));
-+! /* *(DB_ENV **)&env_cptr = self->dbenv; */
-+ return env_cptr;
-+ }
-+
-+***************
-+*** 1997,2003 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(DB_ENV **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ errno = 0;
-+--- 2007,2014 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (DB_ENV *)((intptr_t)jarg1);
-+! /* arg1 = *(DB_ENV **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ errno = 0;
-+***************
-+*** 2006,2012 ****
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
-+
-+! *(struct __db **)&jresult = result;
-+ return jresult;
-+ }
-+
-+--- 2017,2024 ----
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
-+
-+! jresult = (jlong)((intptr_t)result);
-+! /* *(struct __db **)&jresult = result; */
-+ return jresult;
-+ }
-+
-+***************
-+*** 2021,2029 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+! arg2 = *(DB_TXN **)&jarg2;
-+! arg3 = *(DB **)&jarg3;
-+
-+ arg4 = (jarg4 == NULL) ? NULL : __dbj_seckey_create;
-+
-+--- 2033,2044 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+! arg2 = (DB_TXN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_TXN **)&jarg2; */
-+! arg3 = (DB *)((intptr_t)jarg3);
-+! /* arg3 = *(DB **)&jarg3; */
-+
-+ arg4 = (jarg4 == NULL) ? NULL : __dbj_seckey_create;
-+
-+***************
-+*** 2051,2057 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 2066,2073 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 2080,2087 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+! arg2 = *(DB_TXN **)&jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+ if (jarg1 == 0) {
-+--- 2096,2105 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+! arg2 = (DB_TXN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_TXN **)&jarg2; */
-+ arg3 = (u_int32_t)jarg3;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 2096,2102 ****
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
-+
-+! *(DBC **)&jresult = result;
-+ return jresult;
-+ }
-+
-+--- 2114,2121 ----
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
-+
-+! jresult = (jlong)((intptr_t)result);
-+! /* *(DBC **)&jresult = result; */
-+ return jresult;
-+ }
-+
-+***************
-+*** 2112,2119 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+! arg2 = *(DB_TXN **)&jarg2;
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return 0;
-+--- 2131,2140 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+! arg2 = (DB_TXN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_TXN **)&jarg2; */
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return 0;
-+***************
-+*** 2147,2153 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (int)jarg2;
-+ {
-+ arg3 = 0;
-+--- 2168,2175 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (int)jarg2;
-+ {
-+ arg3 = 0;
-+***************
-+*** 2176,2182 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 2198,2205 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 2211,2218 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+! arg2 = *(DB_TXN **)&jarg2;
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return 0;
-+--- 2234,2243 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+! arg2 = (DB_TXN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_TXN **)&jarg2; */
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return 0;
-+***************
-+*** 2254,2260 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2279,2286 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2282,2288 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2308,2315 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2308,2314 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2335,2342 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2334,2340 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2362,2369 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2362,2368 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2391,2398 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2390,2396 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2420,2427 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2416,2422 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2447,2454 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2442,2448 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2474,2481 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2468,2474 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2501,2508 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2482,2488 ****
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
-+
-+! *(DB_MPOOLFILE **)&jresult = result;
-+ return jresult;
-+ }
-+
-+--- 2516,2523 ----
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
-+
-+! jresult = (jlong)((intptr_t)result);
-+! /* *(DB_MPOOLFILE **)&jresult = result; */
-+ return jresult;
-+ }
-+
-+***************
-+*** 2494,2500 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2529,2536 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2520,2526 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2556,2563 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2546,2552 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2583,2590 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2572,2578 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2610,2617 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2598,2604 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2637,2644 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2624,2630 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2664,2671 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2650,2656 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2691,2698 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2676,2682 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2718,2725 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2702,2708 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2745,2752 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2730,2736 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2774,2781 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2756,2762 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2801,2808 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2782,2788 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2828,2835 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2810,2816 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 2857,2864 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 2838,2844 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ {
-+ int i, count, err;
-+
-+--- 2886,2893 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ {
-+ int i, count, err;
-+
-+***************
-+*** 2858,2864 ****
-+ }else {
-+ jlong jptr = (*jenv)->GetLongField(jenv, jobj,
-+ dbc_cptr_fid);
-+! arg2[i] = *(DBC **)&jptr;
-+ }
-+ }
-+ arg2[count] = NULL;
-+--- 2907,2914 ----
-+ }else {
-+ jlong jptr = (*jenv)->GetLongField(jenv, jobj,
-+ dbc_cptr_fid);
-+! arg2[i] = (DBC *)((intptr_t)jptr);
-+! /* arg2[i] = *(DBC **)&jptr; */
-+ }
-+ }
-+ arg2[count] = NULL;
-+***************
-+*** 2877,2883 ****
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
-+
-+! *(DBC **)&jresult = result;
-+
-+ __os_free(NULL, arg2);
-+
-+--- 2927,2934 ----
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, DB2JDBENV);
-+
-+! jresult = (jlong)((intptr_t)result);
-+! /* *(DBC **)&jresult = result; */
-+
-+ __os_free(NULL, arg2);
-+
-+***************
-+*** 2897,2904 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+! arg2 = *(DB_TXN **)&jarg2;
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return ;
-+--- 2948,2957 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+! arg2 = (DB_TXN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_TXN **)&jarg2; */
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return ;
-+***************
-+*** 2943,2950 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+! arg2 = *(DB_TXN **)&jarg2;
-+ {
-+ arg3 = 0;
-+ if (jarg3) {
-+--- 2996,3005 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+! arg2 = (DB_TXN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_TXN **)&jarg2; */
-+ {
-+ arg3 = 0;
-+ if (jarg3) {
-+***************
-+*** 2998,3005 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+! arg2 = *(DB_TXN **)&jarg2;
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return 0;
-+--- 3053,3062 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+! arg2 = (DB_TXN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_TXN **)&jarg2; */
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return 0;
-+***************
-+*** 3055,3062 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+! arg2 = *(DB_TXN **)&jarg2;
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return 0;
-+--- 3112,3121 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+! arg2 = (DB_TXN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_TXN **)&jarg2; */
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return 0;
-+***************
-+*** 3100,3106 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 3159,3166 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 3147,3153 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 3207,3214 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 3201,3207 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_append_recno;
-+
-+--- 3262,3269 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_append_recno;
-+
-+***************
-+*** 3227,3233 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_bt_compare;
-+
-+--- 3289,3296 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_bt_compare;
-+
-+***************
-+*** 3253,3259 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3316,3323 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3277,3283 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3341,3348 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3301,3307 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_bt_prefix;
-+
-+--- 3366,3373 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_bt_prefix;
-+
-+***************
-+*** 3328,3334 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = jarg2;
-+ arg3 = (int)jarg3;
-+
-+--- 3394,3401 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = jarg2;
-+ arg3 = (int)jarg3;
-+
-+***************
-+*** 3353,3359 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_dup_compare;
-+
-+--- 3420,3427 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_dup_compare;
-+
-+***************
-+*** 3380,3386 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 3448,3455 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 3414,3420 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_db_feedback;
-+
-+--- 3483,3490 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_db_feedback;
-+
-+***************
-+*** 3440,3446 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3510,3517 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3464,3470 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3535,3542 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3488,3494 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_h_hash;
-+
-+--- 3560,3567 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_h_hash;
-+
-+***************
-+*** 3514,3520 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3587,3594 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3538,3544 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (int)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3612,3619 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (int)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3562,3568 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3637,3644 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3586,3592 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (int)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3662,3669 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (int)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3610,3616 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3687,3694 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3634,3640 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (int)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3712,3719 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (int)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3658,3664 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 3737,3744 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 3691,3697 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3771,3778 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3716,3722 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3797,3804 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3793,3799 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 3875,3882 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3819,3826 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+! arg2 = *(DB_TXN **)&jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+ if (jarg1 == 0) {
-+--- 3902,3911 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+! arg2 = (DB_TXN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_TXN **)&jarg2; */
-+ arg3 = (u_int32_t)jarg3;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3848,3854 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 3933,3940 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 3886,3892 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 3972,3979 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 3937,3943 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __dbc **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 4024,4031 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __dbc *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __dbc **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 3961,3967 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __dbc **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 4049,4056 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __dbc *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __dbc **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 3989,3995 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __dbc **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 4078,4085 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __dbc *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __dbc **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 4016,4022 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __dbc **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 4106,4113 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __dbc *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __dbc **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 4031,4037 ****
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, DBC2JDBENV);
-+
-+! *(DBC **)&jresult = result;
-+ return jresult;
-+ }
-+
-+--- 4122,4129 ----
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, DBC2JDBENV);
-+
-+! jresult = (jlong)((intptr_t)result);
-+! /* *(DBC **)&jresult = result; */
-+ return jresult;
-+ }
-+
-+***************
-+*** 4048,4054 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __dbc **)&jarg1;
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
-+ return 0;
-+--- 4140,4147 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __dbc *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __dbc **)&jarg1; */
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
-+ return 0;
-+***************
-+*** 4097,4103 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __dbc **)&jarg1;
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
-+ return 0;
-+--- 4190,4198 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __dbc *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __dbc **)&jarg1; */
-+!
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
-+ return 0;
-+***************
-+*** 4152,4158 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __dbc **)&jarg1;
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
-+ return 0;
-+--- 4247,4255 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __dbc *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __dbc **)&jarg1; */
-+!
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
-+ return 0;
-+***************
-+*** 4202,4208 ****
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, NULL);
-+
-+! *(struct __db_env **)&jresult = result;
-+ return jresult;
-+ }
-+
-+--- 4299,4306 ----
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, NULL);
-+
-+! jresult = (jlong)((intptr_t)result);
-+! /* *(struct __db_env **)&jresult = result; */
-+ return jresult;
-+ }
-+
-+***************
-+*** 4214,4220 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 4312,4319 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 4241,4248 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+! arg2 = *(DB_TXN **)&jarg2;
-+ {
-+ arg3 = 0;
-+ if (jarg3) {
-+--- 4340,4349 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+! arg2 = (DB_TXN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_TXN **)&jarg2; */
-+ {
-+ arg3 = 0;
-+ if (jarg3) {
-+***************
-+*** 4290,4297 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+! arg2 = *(DB_TXN **)&jarg2;
-+ {
-+ arg3 = 0;
-+ if (jarg3) {
-+--- 4391,4400 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+! arg2 = (DB_TXN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_TXN **)&jarg2; */
-+ {
-+ arg3 = 0;
-+ if (jarg3) {
-+***************
-+*** 4345,4351 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (int)jarg2;
-+ {
-+ arg3 = 0;
-+--- 4448,4455 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (int)jarg2;
-+ {
-+ arg3 = 0;
-+***************
-+*** 4374,4380 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 4478,4485 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 4403,4409 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 4508,4515 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 4445,4451 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 4551,4558 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 4471,4477 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 4578,4585 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 4497,4503 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 4605,4612 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 4525,4531 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 4634,4641 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 4551,4557 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 4661,4668 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 4577,4583 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 4688,4695 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 4603,4609 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 4715,4722 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 4632,4638 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 4745,4752 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 4663,4669 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 4777,4784 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 4699,4705 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 4814,4821 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 4734,4740 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = jarg2;
-+ arg3 = (int)jarg3;
-+
-+--- 4850,4857 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = jarg2;
-+ arg3 = (int)jarg3;
-+
-+***************
-+*** 4759,4765 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 4876,4883 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 4793,4799 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 4911,4918 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 4826,4832 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_error;
-+
-+--- 4945,4952 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_error;
-+
-+***************
-+*** 4849,4855 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ arg3 = (jarg3 == JNI_TRUE);
-+--- 4969,4976 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ arg3 = (jarg3 == JNI_TRUE);
-+***************
-+*** 4876,4882 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_env_feedback;
-+
-+--- 4997,5004 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_env_feedback;
-+
-+***************
-+*** 4902,4908 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (size_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 5024,5031 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (size_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 4926,4932 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_panic;
-+
-+--- 5049,5056 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_panic;
-+
-+***************
-+*** 4956,4963 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+! arg2 = *(void **)&jarg2;
-+ {
-+ arg3 = 0;
-+ if (jarg3) {
-+--- 5080,5089 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+! arg2 = (void *)((intptr_t)jarg2);
-+! /* arg2 = *(void **)&jarg2; */
-+ {
-+ arg3 = 0;
-+ if (jarg3) {
-+***************
-+*** 5000,5006 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (long)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 5126,5133 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (long)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 5024,5030 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 5151,5158 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 5049,5055 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (db_timeout_t)jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+--- 5177,5184 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (db_timeout_t)jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+***************
-+*** 5074,5080 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 5203,5210 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 5107,5113 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 5237,5244 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 5131,5137 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_app_dispatch;
-+
-+--- 5262,5269 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ arg2 = (jarg2 == NULL) ? NULL : __dbj_app_dispatch;
-+
-+***************
-+*** 5158,5164 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ time2 = (time_t)jarg2;
-+ arg2 = &time2;
-+--- 5290,5297 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ time2 = (time_t)jarg2;
-+ arg2 = &time2;
-+***************
-+*** 5186,5192 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ arg3 = (jarg3 == JNI_TRUE);
-+--- 5319,5326 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ arg3 = (jarg3 == JNI_TRUE);
-+***************
-+*** 5213,5219 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 5347,5354 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5255,5261 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 5390,5397 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5281,5287 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 5417,5424 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5307,5313 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 5444,5451 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5333,5339 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 5471,5478 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5361,5367 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+--- 5500,5507 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+***************
-+*** 5394,5400 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+--- 5534,5541 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+***************
-+*** 5421,5427 ****
-+ }else if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
-+
-+! *(DB_LOCK **)&jresult = result;
-+
-+ if (ldbt4.jarr != NULL) {
-+ (*jenv)->ReleaseByteArrayElements(jenv, ldbt4.jarr,
-+--- 5562,5569 ----
-+ }else if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
-+
-+! jresult = (jlong)((intptr_t)result);
-+! /* *(DB_LOCK **)&jresult = result; */
-+
-+ if (ldbt4.jarr != NULL) {
-+ (*jenv)->ReleaseByteArrayElements(jenv, ldbt4.jarr,
-+***************
-+*** 5439,5445 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 5581,5588 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5465,5471 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 5608,5615 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 5489,5496 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+! arg2 = *(DB_LOCK **)&jarg2;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 5633,5642 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+! arg2 = (DB_LOCK *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_LOCK **)&jarg2; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5514,5520 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 5660,5667 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 5546,5552 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ {
-+ int i, len, err;
-+ size_t bytesize;
-+--- 5693,5700 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ {
-+ int i, len, err;
-+ size_t bytesize;
-+***************
-+*** 5591,5597 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 5739,5746 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 5615,5621 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 5764,5771 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 5639,5645 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 5789,5796 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 5663,5669 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 5814,5821 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 5687,5693 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 5839,5846 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5713,5719 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 5866,5873 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5741,5747 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 5895,5902 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5767,5773 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 5922,5929 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5794,5800 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 5950,5957 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 5839,5846 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(DB_LSN **)&jarg1;
-+! arg2 = *(DB_LSN **)&jarg2;
-+ result = (int)DbEnv_log_compare((DB_LSN const *)arg1,(DB_LSN const *)arg2);
-+
-+ jresult = (jint)result;
-+--- 5996,6005 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (DB_LSN *)((intptr_t)jarg1);
-+! /* arg1 = *(DB_LSN **)&jarg1; */
-+! arg2 = (DB_LSN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_LSN **)&jarg2; */
-+ result = (int)DbEnv_log_compare((DB_LSN const *)arg1,(DB_LSN const *)arg2);
-+
-+ jresult = (jint)result;
-+***************
-+*** 5856,5862 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 6015,6022 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 5871,5877 ****
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
-+
-+! *(DB_LOGC **)&jresult = result;
-+ return jresult;
-+ }
-+
-+--- 6031,6038 ----
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
-+
-+! jresult = (jlong)((intptr_t)result);
-+! /* *(DB_LOGC **)&jresult = result; */
-+ return jresult;
-+ }
-+
-+***************
-+*** 5884,5891 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+! arg2 = *(DB_LSN **)&jarg2;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 6045,6054 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+! arg2 = (DB_LSN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_LSN **)&jarg2; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5913,5920 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+! arg2 = *(DB_LSN **)&jarg2;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 6076,6085 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+! arg2 = (DB_LSN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_LSN **)&jarg2; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 5940,5947 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+! arg2 = *(DB_LSN **)&jarg2;
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return ;
-+--- 6105,6114 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+! arg2 = (DB_LSN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_LSN **)&jarg2; */
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return ;
-+***************
-+*** 5977,5983 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 6144,6151 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6009,6015 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 6177,6184 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6033,6039 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+--- 6202,6209 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ {
-+ arg2 = 0;
-+ if (jarg2) {
-+***************
-+*** 6066,6072 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 6236,6243 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6090,6096 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 6261,6268 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6114,6120 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 6286,6293 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 6140,6146 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 6313,6320 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 6166,6172 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 6340,6347 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 6193,6199 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 6368,6375 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6226,6232 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 6402,6409 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6276,6282 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (int)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 6453,6460 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (int)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6303,6309 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 6481,6488 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 6329,6335 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 6508,6515 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 6356,6362 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 6536,6543 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6385,6392 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+! arg2 = *(DB_TXN **)&jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+ if (jarg1 == 0) {
-+--- 6566,6575 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+! arg2 = (DB_TXN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_TXN **)&jarg2; */
-+ arg3 = (u_int32_t)jarg3;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6401,6407 ****
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
-+
-+! *(DB_TXN **)&jresult = result;
-+ return jresult;
-+ }
-+
-+--- 6584,6591 ----
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, JDBENV);
-+
-+! jresult = (jlong)((intptr_t)result);
-+! /* *(DB_TXN **)&jresult = result; */
-+ return jresult;
-+ }
-+
-+***************
-+*** 6415,6421 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+ arg4 = (u_int32_t)jarg4;
-+--- 6599,6606 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+ arg4 = (u_int32_t)jarg4;
-+***************
-+*** 6443,6449 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (int)jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+--- 6628,6635 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (int)jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+***************
-+*** 6498,6504 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 6684,6691 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6551,6557 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 6738,6745 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 6580,6586 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (int)jarg2;
-+ arg3 = (int)jarg3;
-+ arg4 = (u_int32_t)jarg4;
-+--- 6768,6775 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (int)jarg2;
-+ arg3 = (int)jarg3;
-+ arg4 = (u_int32_t)jarg4;
-+***************
-+*** 6616,6622 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
-+ return 0;
-+--- 6805,6812 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
-+ return 0;
-+***************
-+*** 6631,6637 ****
-+ id4 = (*jenv)->GetIntField(jenv, jarg4, rep_processmsg_envid);
-+ arg4 = &id4;
-+
-+! arg5 = *(DB_LSN **)&jarg5;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 6821,6828 ----
-+ id4 = (*jenv)->GetIntField(jenv, jarg4, rep_processmsg_envid);
-+ arg4 = &id4;
-+
-+! arg5 = (DB_LSN *)((intptr_t)jarg5);
-+! /* arg5 = *(DB_LSN **)&jarg5; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 6667,6673 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
-+ return ;
-+--- 6858,6865 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt2, jarg2) != 0)
-+ return ;
-+***************
-+*** 6700,6706 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 6892,6899 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6732,6738 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 6925,6932 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6757,6763 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_env **)&jarg1;
-+ arg2 = (int)jarg2;
-+
-+ arg3 = (jarg3 == NULL) ? NULL : __dbj_rep_transport;
-+--- 6951,6958 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_env *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_env **)&jarg1; */
-+ arg2 = (int)jarg2;
-+
-+ arg3 = (jarg3 == NULL) ? NULL : __dbj_rep_transport;
-+***************
-+*** 6854,6860 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_txn **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 7049,7056 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_txn *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_txn **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 6877,6883 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_txn **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 7073,7080 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_txn *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_txn **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6901,6907 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_txn **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 7098,7105 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_txn *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_txn **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 6925,6931 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_txn **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 7123,7130 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_txn *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_txn **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 6946,6952 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_txn **)&jarg1;
-+
-+ arg2 = (u_int8_t *)(*jenv)->GetByteArrayElements(jenv, jarg2, NULL);
-+
-+--- 7145,7152 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_txn *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_txn **)&jarg1; */
-+
-+ arg2 = (u_int8_t *)(*jenv)->GetByteArrayElements(jenv, jarg2, NULL);
-+
-+***************
-+*** 6983,6989 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_txn **)&jarg1;
-+ arg2 = (db_timeout_t)jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+--- 7183,7190 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_txn *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_txn **)&jarg1; */
-+ arg2 = (db_timeout_t)jarg2;
-+ arg3 = (u_int32_t)jarg3;
-+
-+***************
-+*** 7008,7014 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_log_cursor **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 7209,7216 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_log_cursor *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_log_cursor **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 7036,7043 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_log_cursor **)&jarg1;
-+! arg2 = *(DB_LSN **)&jarg2;
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return 0;
-+--- 7238,7247 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_log_cursor *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_log_cursor **)&jarg1; */
-+! arg2 = (DB_LSN *)((intptr_t)jarg2);
-+! /* arg2 = *(DB_LSN **)&jarg2; */
-+
-+ if (__dbj_dbt_copyin(jenv, &ldbt3, jarg3) != 0)
-+ return 0;
-+***************
-+*** 7069,7075 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_lock_u **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 7273,7280 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_lock_u *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_lock_u **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 7098,7104 ****
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, NULL);
-+
-+! *(struct __db_lsn **)&jresult = result;
-+ return jresult;
-+ }
-+
-+--- 7303,7310 ----
-+ if (!DB_RETOK_STD(errno))
-+ __dbj_throw(jenv, errno, NULL, NULL, NULL);
-+
-+! jresult = (jlong)((intptr_t)result);
-+! /* *(struct __db_lsn **)&jresult = result; */
-+ return jresult;
-+ }
-+
-+***************
-+*** 7108,7114 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_lsn **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 7314,7321 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_lsn *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_lsn **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 7127,7133 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_lsn **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 7334,7341 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_lsn *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_lsn **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 7148,7154 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_lsn **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 7356,7363 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_lsn *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_lsn **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 7169,7175 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_mpoolfile **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 7378,7385 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_mpoolfile *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_mpoolfile **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 7195,7201 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_mpoolfile **)&jarg1;
-+ arg2 = (DB_CACHE_PRIORITY)jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 7405,7412 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_mpoolfile *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_mpoolfile **)&jarg1; */
-+ arg2 = (DB_CACHE_PRIORITY)jarg2;
-+
-+ if (jarg1 == 0) {
-+***************
-+*** 7219,7225 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_mpoolfile **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 7430,7437 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_mpoolfile *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_mpoolfile **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 7246,7252 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_mpoolfile **)&jarg1;
-+ arg2 = (u_int32_t)jarg2;
-+
-+ arg3 = (jarg3 == JNI_TRUE);
-+--- 7458,7465 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_mpoolfile *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_mpoolfile **)&jarg1; */
-+ arg2 = (u_int32_t)jarg2;
-+
-+ arg3 = (jarg3 == JNI_TRUE);
-+***************
-+*** 7273,7279 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_mpoolfile **)&jarg1;
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+--- 7486,7493 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_mpoolfile *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_mpoolfile **)&jarg1; */
-+
-+ if (jarg1 == 0) {
-+ __dbj_throw(jenv, EINVAL, "call on closed handle", NULL, NULL);
-+***************
-+*** 7299,7305 ****
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = *(struct __db_mpoolfile **)&jarg1;
-+ arg2 = jarg2;
-+
-+ if (jarg1 == 0) {
-+--- 7513,7520 ----
-+
-+ (void)jenv;
-+ (void)jcls;
-+! arg1 = (struct __db_mpoolfile *)((intptr_t)jarg1);
-+! /* arg1 = *(struct __db_mpoolfile **)&jarg1; */
-+ arg2 = jarg2;
-+
-+ if (jarg1 == 0) {
-+*** misc/db-4.2.52.NC/libdb_java/makefile.mk 2005-05-23 14:56:08.000000000 -0400
-+--- misc/build/db-4.2.52.NC/libdb_java/makefile.mk 2005-05-23 14:12:27.000000000 -0400
- ***************
- *** 1 ****
- ! dummy
diff --git a/patches/src680/debian-hunspell-build.diff b/patches/src680/debian-hunspell-build.diff
deleted file mode 100644
index b708f1fe0..000000000
--- a/patches/src680/debian-hunspell-build.diff
+++ /dev/null
@@ -1,34 +0,0 @@
---- hunspell/source/makefile.mk 2005-08-12 14:22:43.479246368 +0200
-+++ hunspell/source/makefile.mk 2005-08-12 13:38:40.000000000 +0200
-@@ -71,7 +71,11 @@
-
- .INCLUDE : settings.mk
-
-+.IF "$(SYSTEM_HUNSPELL)" == "YES"
-+HUNSPELLLIB=-lhunspell_pic
-+.ELSE
- HUNSPELLLIB=-lhunspell
-+.ENDIF
-
- # --- Files --------------------------------------------------------
-
-@@ -112,6 +112,8 @@
-
- .IF "$(SYSTEM_HUNSPELL)" != "YES"
- SOLARINC += -I$(SOLARVER)/$(UPD)/$(INPATH)/inc/libhunspell
-+.ELSE
-+SOLARINC += -I/usr/include/hunspell
- .ENDIF
-
- CXXFLAGS += -I. -I./include -DHAVE_CONFIG_H
---- config_office/configure.in-old 2005-08-12 16:39:14.856967672 +0200
-+++ config_office/configure.in 2005-08-12 16:39:33.206178168 +0200
-@@ -3298,7 +3298,7 @@
- AC_MSG_RESULT([external])
- SYSTEM_HUNSPELL=YES
- AC_LANG(C++)
-- AC_CHECK_HEADER(hunspell.hxx, [],
-+ AC_CHECK_HEADER(hunspell/hunspell.hxx, [],
- [AC_MSG_ERROR(hunspell headers not found.)], [])
- AC_CHECK_LIB(hunspell, main, [],
- [ AC_MSG_ERROR(hunspell library not found.) ], [])
diff --git a/patches/src680/debian-splash.diff b/patches/src680/debian-splash.diff
deleted file mode 100644
index a3a73c016..000000000
--- a/patches/src680/debian-splash.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- scp2/source/ooo/profileitem_ooo.scp-old 2005-09-14 23:48:03.232375952 +0200
-+++ scp2/source/ooo/profileitem_ooo.scp 2005-09-14 23:48:32.327952752 +0200
-@@ -523,7 +523,7 @@
- Section = "Bootstrap";
- Order = 2;
- Key = "ProgressBarColor";
-- Value = "0,0,128";
-+ Value = "215,7,81";
- End
-
- ProfileItem gid_Profileitem_Soffice_ProgressSize
diff --git a/patches/src680/debug-bits.diff b/patches/src680/debug-bits.diff
deleted file mode 100644
index eb5bbbe2b..000000000
--- a/patches/src680/debug-bits.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-diff -u -p -u -r1.6 debug.cxx
---- tools/source/debug/debug.cxx
-+++ tools/source/debug/debug.cxx
-@@ -196,7 +196,11 @@ static DebugData aDebugData =
- TRUE,
- DBG_OUT_NULL,
- DBG_OUT_NULL,
-+#ifdef UNX
-+ DBG_OUT_SHELL,
-+#else
- DBG_OUT_MSGBOX,
-+#endif
- 0x77,
- 0x55,
- 0x33,
-
diff --git a/patches/src680/default-evolution-database.diff b/patches/src680/default-evolution-database.diff
deleted file mode 100644
index 43115c052..000000000
--- a/patches/src680/default-evolution-database.diff
+++ /dev/null
@@ -1,30 +0,0 @@
---- extras/source/database/makefile.mk.bakj 2005-03-16 18:49:33.251075928 +0530
-+++ extras/source/database/makefile.mk 2005-03-16 18:50:38.651285353 +0530
-@@ -72,8 +72,8 @@
-
- ZIP1TARGET = $(DATABASE_USER_TARGET)
-
--ZIP1LIST = biblio.odb
--
-+ZIP1LIST = biblio.odb \
-+ evolocal.odb
- ZIP2TARGET = $(DATABASE_USER_BIBLIO_TARGET)
-
- ZIP2LIST = biblio.dbf biblio.dbt
---- officecfg/registry/data/org/openoffice/Office/DataAccess.xcu.bakj 2005-03-16 18:51:43.777536725 +0530
-+++ officecfg/registry/data/org/openoffice/Office/DataAccess.xcu 2005-03-16 18:52:51.471404727 +0530
-@@ -187,6 +187,14 @@
- </node>
- </node>
- <node oor:name="RegisteredNames">
-+ <node oor:name="EvolutionLocal" oor:op="replace">
-+ <prop oor:name="Location" oor:type="xs:string">
-+ <value>$(userurl)/database/evolocal.odb</value>
-+ </prop>
-+ <prop oor:name="Name" oor:type="xs:string">
-+ <value>EvolutionLocal</value>
-+ </prop>
-+ </node>
- <node oor:name="Bibliography" oor:op="replace">
- <prop oor:name="Location" oor:type="xs:string">
- <value>$(userurl)/database/biblio.odb</value>
diff --git a/patches/src680/default-font-aasize.diff b/patches/src680/default-font-aasize.diff
deleted file mode 100644
index 407c029de..000000000
--- a/patches/src680/default-font-aasize.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: officecfg/registry/schema/org/openoffice/Office/Common.xcs
-===================================================================
-RCS file: /cvs/util/officecfg/registry/schema/org/openoffice/Office/Common.xcs,v
-retrieving revision 1.99
-diff -u -r1.99 Common.xcs
---- officecfg/registry/schema/org/openoffice/Office/Common.xcs 8 Sep 2004 16:01:25 -0000 1.99
-+++ officecfg/registry/schema/org/openoffice/Office/Common.xcs 14 Oct 2004 16:23:24 -0000
-@@ -2646,7 +2646,7 @@
- <desc>Specifies an additional limit if Font Antialiasing is enabled. Fonts that are smaller than the specified limit are not anti-aliased.</desc>
- <label>Font Antialiasing Minimum Pixel Height</label>
- </info>
-- <value>8</value>
-+ <value>1</value>
- </prop>
- </group>
- </group>
diff --git a/patches/src680/default-font-size.diff b/patches/src680/default-font-size.diff
deleted file mode 100644
index 7b0f1185b..000000000
--- a/patches/src680/default-font-size.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: vcl/source/app/settings.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/app/settings.cxx,v
-retrieving revision 1.38
-diff -u -3 -p -r1.38 settings.cxx
---- vcl/source/app/settings.cxx 11 Apr 2003 17:27:37 -0000 1.38
-+++ vcl/source/app/settings.cxx 23 Oct 2003 15:41:27 -0000
-@@ -592,7 +592,7 @@ ImplStyleData::ImplStyleData( const Impl
-
- void ImplStyleData::SetStandardStyles()
- {
-- Font aStdFont( FAMILY_SWISS, Size( 0, 8 ) );
-+ Font aStdFont( FAMILY_SWISS, Size( 0, 10 ) );
- aStdFont.SetCharSet( gsl_getSystemTextEncoding() );
- aStdFont.SetWeight( WEIGHT_NORMAL );
- aStdFont.SetName( vcl::DefaultFontConfigItem::get()->getUserInterfaceFont(LANGUAGE_ENGLISH) );
diff --git a/patches/src680/default-graphics-cache.diff b/patches/src680/default-graphics-cache.diff
deleted file mode 100644
index 387977904..000000000
--- a/patches/src680/default-graphics-cache.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- officecfg/registry/schema/org/openoffice/Office/Common.xcs.old 2005-02-28 20:41:30.000000000 +0100
-+++ officecfg/registry/schema/org/openoffice/Office/Common.xcs 2005-03-03 21:36:44.000000000 +0100
-@@ -1216,7 +1216,7 @@
- <desc>Specifies the maximum cache size for all graphical display objects.</desc>
- <label>Total Graphic Cache Size</label>
- </info>
-- <value>10240000</value>
-+ <value>20480000</value>
- </prop>
- <prop oor:name="ObjectCacheSize" oor:type="xs:int">
- <info>
-@@ -1224,7 +1224,7 @@
- <desc>Specifies the maximum cache size for a single graphic display object.</desc>
- <label>Graphic Object Cache Size</label>
- </info>
-- <value>2560000</value>
-+ <value>5120000</value>
- </prop>
- <prop oor:name="ObjectReleaseTime" oor:type="xs:int">
- <info>
diff --git a/patches/src680/default-impress-ruler.diff b/patches/src680/default-impress-ruler.diff
deleted file mode 100644
index f52c340fc..000000000
--- a/patches/src680/default-impress-ruler.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: officecfg/registry/schema/org/openoffice/Office/Impress.xcs
-===================================================================
-RCS file: /cvs/util/officecfg/registry/schema/org/openoffice/Office/Impress.xcs,v
-retrieving revision 1.24
-diff -u -p -u -r1.24 Impress.xcs
---- officecfg/registry/schema/org/openoffice/Office/Impress.xcs 21 Jan 2005 18:15:46 -0000 1.24
-+++ officecfg/registry/schema/org/openoffice/Office/Impress.xcs 19 Sep 2005 10:14:48 -0000
-@@ -99,7 +99,7 @@
- <desc>Indicates whether to show the rulers at the left and at the top of the working area.</desc>
- <label>Rulers visible</label>
- </info>
-- <value>false</value>
-+ <value>true</value>
- </prop>
- <prop oor:name="Helpline" oor:type="xs:boolean">
- <!-- OldPath: Impress/Layout/Display -->
diff --git a/patches/src680/default-industrial-icons-w32.diff b/patches/src680/default-industrial-icons-w32.diff
deleted file mode 100644
index 036a0d821..000000000
--- a/patches/src680/default-industrial-icons-w32.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- vcl/source/app/settings.cxx 2005-05-13 17:45:56.511440487 +0200
-+++ vcl/source/app/settings.cxx 2005-05-20 17:46:55.803210222 +0200
-@@ -758,7 +758,8 @@
- {
- const ::rtl::OUString &rDesktopEnvironment = Application::GetDesktopEnvironment();
-
-- if( rDesktopEnvironment.equalsIgnoreAsciiCaseAscii( "gnome" ) )
-+ if( rDesktopEnvironment.equalsIgnoreAsciiCaseAscii( "gnome" ) ||
-+ rDesktopEnvironment.equalsIgnoreAsciiCaseAscii( "windows" ) )
- snDesktopStyle = STYLE_SYMBOLS_INDUSTRIAL;
- else if( rDesktopEnvironment.equalsIgnoreAsciiCaseAscii( "kde" ) )
- snDesktopStyle = STYLE_SYMBOLS_CRYSTAL;
diff --git a/patches/src680/default-ms-filter-convert.diff b/patches/src680/default-ms-filter-convert.diff
deleted file mode 100644
index f6484e980..000000000
--- a/patches/src680/default-ms-filter-convert.diff
+++ /dev/null
@@ -1,117 +0,0 @@
-Index: officecfg/registry/schema/org/openoffice/Office/Common.xcs
-===================================================================
-RCS file: /cvs/util/officecfg/registry/schema/org/openoffice/Office/Common.xcs,v
-retrieving revision 1.84
-diff -u -p -u -r1.84 Common.xcs
---- officecfg/registry/schema/org/openoffice/Office/Common.xcs 24 Jul 2003 13:12:08 -0000 1.84
-+++ officecfg/registry/schema/org/openoffice/Office/Common.xcs 5 Jan 2004 14:57:29 -0000
-@@ -19360,9 +19360,9 @@
- <desc xml:lang="th">Specifies if convertible MathType OLE objects are converted into Math objects.</desc>
- <desc xml:lang="x-comment">Specifies if convertible MathType OLE objects are converted into Math objects.</desc>
- </info>
-- <value>false</value>
-- </prop>
-- <prop oor:name="WinWordToWriter" oor:type="xs:boolean">
-+ <value>true</value> <!-- patch 1 -->
-+ </prop> <!-- patch 1 -->
-+ <prop oor:name="WinWordToWriter" oor:type="xs:boolean"> <!-- patch 1 -->
- <info>
- <desc xml:lang="en-US">Specifies if convertible WinWord OLE objects are converted into Writer objects.</desc>
- <desc xml:lang="el">Specifies if convertible WinWord OLE objects are converted into Writer objects.</desc>
-@@ -19391,9 +19391,9 @@
- <desc xml:lang="th">Specifies if convertible WinWord OLE objects are converted into Writer objects.</desc>
- <desc xml:lang="x-comment">Specifies if convertible WinWord OLE objects are converted into Writer objects.</desc>
- </info>
-- <value>false</value>
-- </prop>
-- <prop oor:name="ExcelToCalc" oor:type="xs:boolean">
-+ <value>true</value> <!-- patch 1 -->
-+ </prop> <!-- patch 1 -->
-+ <prop oor:name="ExcelToCalc" oor:type="xs:boolean"> <!-- patch 1 -->
- <info>
- <desc xml:lang="en-US">Specifies if convertible Excel OLE objects are converted into Calc objects.</desc>
- <desc xml:lang="el">Specifies if convertible Excel OLE objects are converted into Calc objects.</desc>
-@@ -19422,9 +19422,9 @@
- <desc xml:lang="th">Specifies if convertible Excel OLE objects are converted into Calc objects.</desc>
- <desc xml:lang="x-comment">Specifies if convertible Excel OLE objects are converted into Calc objects.</desc>
- </info>
-- <value>false</value>
-- </prop>
-- <prop oor:name="PowerPointToImpress" oor:type="xs:boolean">
-+ <value>true</value> <!-- patch 1 -->
-+ </prop> <!-- patch 1 -->
-+ <prop oor:name="PowerPointToImpress" oor:type="xs:boolean"> <!-- patch 1 -->
- <info>
- <desc xml:lang="en-US">Specifies if convertible PowerPoint OLE objects are converted into Impress objects.</desc>
- <desc xml:lang="el">Specifies if convertible PowerPoint OLE objects are converted into Impress objects.</desc>
-@@ -19453,10 +19453,10 @@
- <desc xml:lang="th">Specifies if convertible PowerPoint OLE objects are converted into Impress objects.</desc>
- <desc xml:lang="x-comment">Specifies if convertible PowerPoint OLE objects are converted into Impress objects.</desc>
- </info>
-- <value>false</value>
-- </prop>
-- </group>
-- <group oor:name="Export">
-+ <value>true</value> <!-- patch 1 -->
-+ </prop> <!-- patch 1 -->
-+ </group> <!-- patch 1 -->
-+ <group oor:name="Export"> <!-- patch 1 -->
- <info>
- <desc xml:lang="en-US">Specifies default settings of Microsoft export filters.</desc>
- <desc xml:lang="el">Specifies default settings of Microsoft export filters.</desc>
-@@ -19514,9 +19514,9 @@
- <desc xml:lang="th">Specifies if embedded Math objects are converted into MathType objects.</desc>
- <desc xml:lang="x-comment">Specifies if embedded Math objects are converted into MathType objects.</desc>
- </info>
-- <value>false</value>
-- </prop>
-- <prop oor:name="WriterToWinWord" oor:type="xs:boolean">
-+ <value>true</value> <!-- patch 1 -->
-+ </prop> <!-- patch 1 -->
-+ <prop oor:name="WriterToWinWord" oor:type="xs:boolean"> <!-- patch 1 -->
- <info>
- <desc xml:lang="en-US">Specifies if embedded Writer objects are converted into WinWord objects.</desc>
- <desc xml:lang="el">Specifies if embedded Writer objects are converted into WinWord objects.</desc>
-@@ -19545,9 +19545,9 @@
- <desc xml:lang="th">Specifies if embedded Writer objects are converted into WinWord objects.</desc>
- <desc xml:lang="x-comment">Specifies if embedded Writer objects are converted into WinWord objects.</desc>
- </info>
-- <value>false</value>
-- </prop>
-- <prop oor:name="CalcToExcel" oor:type="xs:boolean">
-+ <value>true</value> <!-- patch 1 -->
-+ </prop> <!-- patch 1 -->
-+ <prop oor:name="CalcToExcel" oor:type="xs:boolean"> <!-- patch 1 -->
- <info>
- <desc xml:lang="en-US">Specifies if embedded Calc objects are converted into Excel objects.</desc>
- <desc xml:lang="el">Specifies if embedded Calc objects are converted into Excel objects.</desc>
-@@ -19576,9 +19576,9 @@
- <desc xml:lang="th">Specifies if embedded Calc objects are converted into Excel objects.</desc>
- <desc xml:lang="x-comment">Specifies if embedded Calc objects are converted into Excel objects.</desc>
- </info>
-- <value>false</value>
-- </prop>
-- <prop oor:name="ImpressToPowerPoint" oor:type="xs:boolean">
-+ <value>true</value>
-+ </prop> <!-- patch 1 -->
-+ <prop oor:name="ImpressToPowerPoint" oor:type="xs:boolean"> <!-- patch 2 -->
- <info>
- <desc xml:lang="en-US">Specifies if embedded Impress objects are converted into PowerPoint objects.</desc>
- <desc xml:lang="el">Specifies if embedded Impress objects are converted into PowerPoint objects.</desc>
-@@ -19607,11 +19607,11 @@
- <desc xml:lang="th">Specifies if embedded Impress objects are converted into PowerPoint objects.</desc>
- <desc xml:lang="x-comment">Specifies if embedded Impress objects are converted into PowerPoint objects.</desc>
- </info>
-- <value>false</value>
-- </prop>
-- </group>
-- </group>
-- <group oor:name="Graphic">
-+ <value>true</value>
-+ </prop> <!-- patch 1 -->
-+ </group> <!-- patch 2 -->
-+ </group> <!-- patch 3 -->
-+ <group oor:name="Graphic"> <!-- patch 4 -->
- <info>
- <author>SJ</author>
- <desc xml:lang="en-US">Specifies default settings of graphic import and export dialogs.</desc>
diff --git a/patches/src680/default-no-install-wizards.diff b/patches/src680/default-no-install-wizards.diff
deleted file mode 100644
index ea54f29a2..000000000
--- a/patches/src680/default-no-install-wizards.diff
+++ /dev/null
@@ -1,45 +0,0 @@
-Index: officecfg/registry/data/org/openoffice/Office/Common.xcu
-===================================================================
-RCS file: /cvs/util/officecfg/registry/data/org/openoffice/Office/Common.xcu,v
-retrieving revision 1.31
-diff -u -p -u -r1.31 Common.xcu
---- officecfg/registry/data/org/openoffice/Office/Common.xcu 23 Mar 2005 10:53:46 -0000 1.31
-+++ officecfg/registry/data/org/openoffice/Office/Common.xcu 20 Jun 2005 14:05:26 -0000
-@@ -523,37 +523,6 @@
- <value >private:image/3216</value>
- </prop>
- </node>
-- <node oor:name="m15" oor:op="replace" install:module="dicooo">
-- <prop oor:name="URL" oor:type="xs:string">
-- <value >macro:///Launcher.DicOOo.StartDicOOo</value>
-- </prop>
-- <prop oor:name="Title">
-- <value xml:lang="de">Weitere Wörterbücher installieren...</value>
-- <value xml:lang="en-US">Install new dictionaries...</value>
-- </prop>
-- <prop oor:name="TargetName" oor:type="xs:string">
-- <value >_self</value>
-- </prop>
-- <prop oor:name="ImageIdentifier" oor:type="xs:string">
-- <value >private:image/3216</value>
-- </prop>
-- </node>
-- <node oor:name="m16" oor:op="replace" install:module="dicooo">
-- <prop oor:name="URL" oor:type="xs:string">
-- <value >macro:///Launcher.FontOOo.StartFontOOo</value>
-- </prop>
-- <prop oor:name="Title">
-- <value>FontOOo Wizard...</value>
-- <value xml:lang="de">Schriftarten aus dem Internet installieren...</value>
-- <value xml:lang="en-US">Install fonts from the web...</value>
-- </prop>
-- <prop oor:name="TargetName" oor:type="xs:string">
-- <value >_self</value>
-- </prop>
-- <prop oor:name="ImageIdentifier" oor:type="xs:string">
-- <value >private:image/3216</value>
-- </prop>
-- </node>
- </node>
- </node>
- <node oor:name="Forms">
diff --git a/patches/src680/default-no-registration-menu.diff b/patches/src680/default-no-registration-menu.diff
deleted file mode 100644
index 48fd1a749..000000000
--- a/patches/src680/default-no-registration-menu.diff
+++ /dev/null
@@ -1,18 +0,0 @@
-Index: svx/inc/globlmn_tmpl.hrc
-===================================================================
-RCS file: /cvs/graphics/svx/inc/globlmn_tmpl.hrc,v
-retrieving revision 1.2
-diff -u -p -u -r1.2 globlmn_tmpl.hrc
---- svx/inc/globlmn_tmpl.hrc 25 Jun 2004 11:46:55 -0000 1.2
-+++ svx/inc/globlmn_tmpl.hrc 26 Nov 2004 12:10:29 -0000
-@@ -1388,10 +1388,6 @@
- {\
- ITEM_HELP_SUPPORTPAGE\
- };\
-- MenuItem\
-- {\
-- ITEM_HELP_ONLINE_REGISTRATION\
-- };\
- MenuItem\
- {\
- Separator = TRUE ; \
diff --git a/patches/src680/default-no-registration.diff b/patches/src680/default-no-registration.diff
deleted file mode 100644
index 293b90976..000000000
--- a/patches/src680/default-no-registration.diff
+++ /dev/null
@@ -1,22 +0,0 @@
-Index: officecfg/registry/data/org/openoffice/Office/Jobs.xcu
-===================================================================
-RCS file: /cvs/util/officecfg/registry/data/org/openoffice/Office/Jobs.xcu,v
-retrieving revision 1.7
-diff -u -p -u -r1.7 Jobs.xcu
---- officecfg/registry/data/org/openoffice/Office/Jobs.xcu 15 Nov 2004 15:05:43 -0000 1.7
-+++ officecfg/registry/data/org/openoffice/Office/Jobs.xcu 10 Dec 2004 09:37:59 -0000
-@@ -69,14 +69,5 @@
- </node>
- </node>
- <node oor:name="Events">
-- <node oor:name="onFirstVisibleTask" oor:op="replace">
-- <node oor:name="JobList">
-- <node oor:name="RegistrationRequest" oor:op="replace">
-- <prop oor:name="UserTime">
-- <value>2003-01-01T00:00:00+00:01</value>
-- </prop>
-- </node>
-- </node>
-- </node>
- </node>
- </oor:component-data>
diff --git a/patches/src680/default-no-startup-wizard.diff b/patches/src680/default-no-startup-wizard.diff
deleted file mode 100644
index bc724a47c..000000000
--- a/patches/src680/default-no-startup-wizard.diff
+++ /dev/null
@@ -1,22 +0,0 @@
-Index: desktop/source/migration/wizard.cxx
-===================================================================
-RCS file: /cvs/framework/desktop/source/migration/wizard.cxx,v
-retrieving revision 1.2
-diff -u -p -u -r1.2 wizard.cxx
---- desktop/source/migration/wizard.cxx 15 Nov 2004 15:49:35 -0000 1.2
-+++ desktop/source/migration/wizard.cxx 10 Dec 2004 11:18:12 -0000
-@@ -118,5 +118,6 @@ FirstStartWizard::FirstStartWizard(Windo
- ,m_bAccepted(sal_False)
- ,m_bOverride(sal_False)
- {
-+ return;
- // ---
- // FreeResource();
-@@ -318,5 +318,5 @@ sal_Bool FirstStartWizard::onFinish(sal_
-
- short FirstStartWizard::Execute()
- {
-- return svt::RoadmapWizard::Execute();
-+ return sal_True || svt::RoadmapWizard::Execute();
- }
-
diff --git a/patches/src680/default-no-style-dialog.diff b/patches/src680/default-no-style-dialog.diff
deleted file mode 100644
index 10731e4bd..000000000
--- a/patches/src680/default-no-style-dialog.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: sfx2/source/appl/appreg.cxx
-===================================================================
-RCS file: /cvs/framework/sfx2/source/appl/appreg.cxx,v
-retrieving revision 1.7
-diff -u -p -u -r1.7 appreg.cxx
---- sfx2/source/appl/appreg.cxx 11 Oct 2002 15:14:20 -0000 1.7
-+++ sfx2/source/appl/appreg.cxx 9 Oct 2003 13:51:03 -0000
-@@ -110,7 +110,7 @@ void SfxApplication::Registrations_Impl(
- SfxMailChildWinWrapper_Impl::RegisterChildWindow();
- SfxMailChildWinWrapper_Impl::RegisterChildWindow();
- SfxPartChildWnd_Impl::RegisterChildWindow();
-- SfxTemplateDialogWrapper::RegisterChildWindow(TRUE);
-+ SfxTemplateDialogWrapper::RegisterChildWindow();
-
- // Controller
- SfxObjectVerbsControl::RegisterControl(SID_OBJECT);
diff --git a/patches/src680/default-no-x-fonts.diff b/patches/src680/default-no-x-fonts.diff
deleted file mode 100644
index 2b63d179e..000000000
--- a/patches/src680/default-no-x-fonts.diff
+++ /dev/null
@@ -1,19 +0,0 @@
-Index: vcl/unx/source/gdi/salgdi3.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/source/gdi/salgdi3.cxx,v
-retrieving revision 1.122
-diff -u -r1.122 salgdi3.cxx
---- vcl/unx/source/gdi/salgdi3.cxx 8 Sep 2004 15:58:06 -0000 1.122
-+++ vcl/unx/source/gdi/salgdi3.cxx 15 Oct 2004 16:11:02 -0000
-@@ -1204,9 +1204,11 @@
-
- void X11SalGraphics::GetDevFontList( ImplDevFontList *pList )
- {
-+#if defined( NASTY_SLOW_UGLY_X_FONTS )
- // announce X11 fonts
- XlfdStorage* pX11FontList = GetDisplay()->GetXlfdList();
- pX11FontList->AnnounceFonts( pList );
-+#endif
-
- // prepare the GlyphCache using psprint's font infos
- aX11GlyphPeer.SetDisplay( GetXDisplay(),
diff --git a/patches/src680/default-pairkerning-on.diff b/patches/src680/default-pairkerning-on.diff
deleted file mode 100644
index f92b349ac..000000000
--- a/patches/src680/default-pairkerning-on.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- svx/inc/akrnitem.hxx 2004-10-15 19:24:32.399851088 +0200
-+++ svx/inc/akrnitem.hxx 2004-10-15 19:24:58.966812296 +0200
-@@ -93,7 +93,7 @@ class SvxAutoKernItem : public SfxBoolIt
- public:
- TYPEINFO();
-
-- SvxAutoKernItem( const BOOL bAutoKern = FALSE,
-+ SvxAutoKernItem( const BOOL bAutoKern = TRUE,
- const USHORT nId = ITEMID_AUTOKERN );
-
- // "pure virtual Methoden" vom SfxPoolItem
diff --git a/patches/src680/default-system-fpicker.diff b/patches/src680/default-system-fpicker.diff
deleted file mode 100644
index 7d70b3f00..000000000
--- a/patches/src680/default-system-fpicker.diff
+++ /dev/null
@@ -1,18 +0,0 @@
-Index: officecfg/registry/data/org/openoffice/Office/Common.xcu
-===================================================================
-RCS file: /cvs/util/officecfg/registry/data/org/openoffice/Office/Common.xcu,v
-retrieving revision 1.31
-diff -u -p -u -r1.31 Common.xcu
---- officecfg/registry/data/org/openoffice/Office/Common.xcu 23 Mar 2005 10:53:46 -0000 1.31
-+++ officecfg/registry/data/org/openoffice/Office/Common.xcu 6 Apr 2005 09:58:37 -0000
-@@ -593,8 +593,8 @@
- </node>
- </node>
- <node oor:name="Misc">
-- <prop oor:name="UseSystemFileDialog" install:module="UseOOoFileDialogs">
-- <value>false</value>
-+ <prop oor:name="UseSystemFileDialog" install:module="UseOOoFileDialogs"> <!-- safe -->
-+ <value>true</value>
- </prop>
- </node>
- </oor:component-data>
diff --git a/patches/src680/default-vba-compatible.diff b/patches/src680/default-vba-compatible.diff
deleted file mode 100644
index 9ebb049f8..000000000
--- a/patches/src680/default-vba-compatible.diff
+++ /dev/null
@@ -1,24 +0,0 @@
---- basic/source/comp/parser.cxx
-+++ basic/source/comp/parser.cxx
-@@ -185,7 +185,10 @@ SbiParser::SbiParser( StarBASIC* pb, SbM
-
- rTypeArray = new SbxArray; // Array fuer Benutzerdefinierte Typen
- rEnumArray = new SbxArray; // Array for Enum types
-+
-+ bCompatible = TRUE;
-+ AddConstants();
- }
-
-
-
---- basic/source/runtime/runtime.cxx
-+++ basic/source/runtime/runtime.cxx
-@@ -300,7 +300,7 @@ SbiInstance::SbiInstance( StarBASIC* p )
- nErr =
- nErl = 0;
- bReschedule = TRUE;
-- bCompatibility = FALSE;
-+ bCompatibility = TRUE;
- }
-
- SbiInstance::~SbiInstance()
diff --git a/patches/src680/dejavu-fonts.diff b/patches/src680/dejavu-fonts.diff
deleted file mode 100644
index ee99921e1..000000000
--- a/patches/src680/dejavu-fonts.diff
+++ /dev/null
@@ -1,174 +0,0 @@
---- config_office/configure.in.OLD 2005-11-21 02:16:33.437250000 +0200
-+++ config_office/configure.in 2005-11-23 05:12:58.296875000 +0200
-@@ -52,6 +52,11 @@
- for specific distributions where the fonts are known
- to be already available
- ],,)
-+AC_ARG_WITH(dejavu-fonts,
-+[ --without-dejavu-fonts Remove DejaVu fonts
-+ (even if present) in the openoffice.org installation
-+ set.
-+],,with_dejavu_fonts="yes")
- AC_ARG_ENABLE(epm,
- [ --disable-epm OO.o includes self-packaging code, that requires
- epm, however epm is useless for large scale
-@@ -4094,6 +4099,18 @@
- fi
- AC_SUBST(WITH_FONTS)
-
-+AC_MSG_CHECKING([whether to include DejaVu fonts])
-+if test "$with_dejavu_fonts" != "no" -a -e ../dejavu_fonts/download/dejavu-ttf-20050914.tar.gz; then
-+ AC_MSG_RESULT([yes])
-+ WITH_DEJAVU_FONTS=YES
-+ SCPDEFS="$SCPDEFS -DWITH_DEJAVU_FONTS"
-+ BUILD_TYPE="$BUILD_TYPE DEJAVU_FONTS"
-+else
-+ AC_MSG_RESULT([no])
-+ WITH_DEJAVU_FONTS=NO
-+fi
-+AC_SUBST(WITH_DEJAVU_FONTS)
-+
- AC_SUBST(SCPDEFS)
-
- AC_MSG_CHECKING([whether and how to use Xinerama])
---- config_office/makefile.rc.OLD 2005-09-16 18:20:13.000000000 +0300
-+++ config_office/makefile.rc 2005-11-22 18:13:07.312500000 +0200
-@@ -75,6 +75,7 @@
- berkeleydb \
- binfilter \
- bitstream_vera_fonts \
-+ dejavu_fonts \
- boost \
- bridges \
- canvas \
---- dejavu_fonts/makefile.mk.OLD 1970-01-01 02:00:00.000000000 +0200
-+++ dejavu_fonts/makefile.mk 2005-11-23 05:07:41.015625000 +0200
-@@ -0,0 +1,78 @@
-+#*************************************************************************
-+#
-+# OpenOffice.org - a multi-platform office productivity suite
-+#
-+# $RCSfile$
-+#
-+# $Revision$
-+#
-+# last change: $Author$ $Date$
-+#
-+# The Contents of this file are made available subject to
-+# the terms of GNU Lesser General Public License Version 2.1.
-+#
-+#
-+# GNU Lesser General Public License Version 2.1
-+# =============================================
-+# Copyright 2005 by Sun Microsystems, Inc.
-+# 901 San Antonio Road, Palo Alto, CA 94303, USA
-+#
-+# This library is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU Lesser General Public
-+# License version 2.1, as published by the Free Software Foundation.
-+#
-+# This library 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 for more details.
-+#
-+# You should have received a copy of the GNU Lesser General Public
-+# License along with this library; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+# MA 02111-1307 USA
-+#
-+#*************************************************************************
-+
-+PRJ=.
-+
-+PRJNAME=dejavu_fonts
-+TARGET=dejavu_fonts
-+
-+# --- Settings -----------------------------------------------------
-+
-+.INCLUDE : settings.mk
-+
-+# --- Files --------------------------------------------------------
-+
-+TARFILE_NAME=dejavu-fonts
-+TARFILE_ROOTDIR=dejavu-fonts
-+
-+PATCH_FILE_NAME=
-+
-+
-+CONFIGURE_DIR=
-+CONFIGURE_ACTION=
-+
-+BUILD_DIR=
-+BUILD_ACTION=
-+BUILD_FLAGS=
-+
-+# --- Targets ------------------------------------------------------
-+
-+all: \
-+ $(MISC)$/remove_build.flag \
-+ ALLTAR
-+
-+.INCLUDE : set_ext.mk
-+.INCLUDE : target.mk
-+
-+.IF "$(WITH_DEJAVU_FONTS)"!="NO"
-+.INCLUDE : tg_ext.mk
-+.ENDIF
-+
-+# Since you never know what will be in a patch (for example, it may already
-+# patch at configure level), we remove the entire package directory if a patch
-+# is newer.
-+$(MISC)$/remove_build.flag : $(PATCH_FILE_NAME)
-+ $(REMOVE_PACKAGE_COMMAND)
-+ +$(TOUCH) $(MISC)$/remove_build.flag
---- dejavu_fonts/prj/d.lst.OLD 1970-01-01 02:00:00.000000000 +0200
-+++ dejavu_fonts/prj/d.lst 2005-11-23 04:52:41.531250000 +0200
-@@ -0,0 +1,2 @@
-+mkdir: %_DEST%\pck%_EXT%
-+..\%__SRC%\misc\build\dejavu-fonts\*.ttf %_DEST%\pck%_EXT%\*.ttf
---- dejavu_fonts/prj/build.lst.OLD 1970-01-01 02:00:00.000000000 +0200
-+++ dejavu_fonts/prj/build.lst 2005-11-22 12:05:42.843750000 +0200
-@@ -0,0 +1,3 @@
-+bs dejavu_fonts : solenv NULL
-+bs dejavu_fonts usr1 - all amt_mkout NULL
-+bs dejavu_fonts nmake - all amt_fonts NULL
---- scp2/source/ooo/file_font_ooo.scp.OLD 2005-09-09 04:37:10.000000000 +0300
-+++ scp2/source/ooo/file_font_ooo.scp 2005-11-23 05:08:35.375000000 +0200
-@@ -151,3 +151,28 @@
- STD_FONTWIN_FILE( gid_File_Fnt_Verasebd, VeraSeBd.ttf, Vera Serif Bold)
- #endif
- #endif
-+
-+#ifdef WNT
-+#ifdef WITH_DEJAVU_FONTS
-+STD_FONTWIN_FILE( gid_File_Fnt_DejaVuSansBoldOblique, DejaVuSans-BoldOblique.ttf, DejaVu Sans Bold Oblique)
-+STD_FONTWIN_FILE( gid_File_Fnt_DejaVuSansBold, DejaVuSans-Bold.ttf, DejaVu Sans Bold)
-+STD_FONTWIN_FILE( gid_File_Fnt_DejaVuSansCondensedBoldOblique, DejaVuSansCondensed-BoldOblique.ttf, DejaVu Sans Condensed Bold Oblique)
-+STD_FONTWIN_FILE( gid_File_Fnt_DejaVuSansCondensedBold, DejaVuSansCondensed-Bold.ttf, DejaVu Sans Condensed Bold)
-+STD_FONTWIN_FILE( gid_File_Fnt_DejaVuSansCondensedOblique, DejaVuSansCondensed-Oblique.ttf, DejaVu Sans Condensed Oblique)
-+STD_FONTWIN_FILE( gid_File_Fnt_DejaVuSansCondensed, DejaVuSansCondensed.ttf, DejaVu Sans Condensed)
-+STD_FONTWIN_FILE( gid_File_Fnt_DejaVuSansMonoBoldOb, DejaVuSansMono-BoldOb.ttf, DejaVu Sans Mono Bold Oblique)
-+STD_FONTWIN_FILE( gid_File_Fnt_DejaVuSansMonoBold, DejaVuSansMono-Bold.ttf, DejaVu Sans Mono Bold)
-+STD_FONTWIN_FILE( gid_File_Fnt_DejaVuSansMonoOblique, DejaVuSansMono-Oblique.ttf, DejaVu Sans Mono Oblique)
-+STD_FONTWIN_FILE( gid_File_Fnt_DejaVuSansMonoRoman, DejaVuSansMono-Roman.ttf, DejaVu Sans Mono)
-+STD_FONTWIN_FILE( gid_File_Fnt_DejaVuSansOblique, DejaVuSans-Oblique.ttf, DejaVu Sans Oblique)
-+STD_FONTWIN_FILE( gid_File_Fnt_DejaVuSans, DejaVuSans.ttf, DejaVu Sans)
-+STD_FONTWIN_FILE( gid_File_Fnt_DejaVuSerifBoldOblique, DejaVuSerif-BoldOblique.ttf, DejaVu Serif Bold Oblique)
-+STD_FONTWIN_FILE( gid_File_Fnt_DejaVuSerifBold, DejaVuSerif-Bold.ttf, DejaVu Serif Bold)
-+STD_FONTWIN_FILE( gid_File_Fnt_DejaVuSerifCondensedBoldOblique, DejaVuSerifCondensed-BoldOblique.ttf, DejaVu Serif Condensed Bold Oblique)
-+STD_FONTWIN_FILE( gid_File_Fnt_DejaVuSerifCondensedBold, DejaVuSerifCondensed-Bold.ttf, DejaVu Serif Condensed Bold)
-+STD_FONTWIN_FILE( gid_File_Fnt_DejaVuSerifCondensedOblique, DejaVuSerifCondensed-Oblique.ttf, DejaVu Serif Condensed Oblique)
-+STD_FONTWIN_FILE( gid_File_Fnt_DejaVuSerifCondensed, DejaVuSerifCondensed.ttf, DejaVu Serif Condensed)
-+STD_FONTWIN_FILE( gid_File_Fnt_DejaVuSerifOblique, DejaVuSerif-Oblique.ttf, DejaVu Serif Oblique)
-+STD_FONTWIN_FILE( gid_File_Fnt_DejaVuSerifRoman, DejaVuSerif-Roman.ttf, DejaVu Serif)
-+#endif
-+#endif
---- postprocess/prj/build.lst 2005-11-23 05:56:34.703125000 +0200
-+++ postprocess/prj/build.lst 2005-11-23 05:56:48.812500000 +0200
-@@ -1,4 +1,4 @@
--po postprocess :: accessibility automation basctl bean BINFILTER:binfilter chart2 configmgr CRASHREP:crashrep dbaccess desktop dtrans embeddedobj embedserv EPM:epm eventattacher extensions extras fileaccess filter forms fpicker helpcontent2 hwpfilter io lingucomponent MATHMLDTD:MathMLDTD MSFONTEXTRACT:msfontextract ODK:odk officecfg package padmin psprint_config remotebridges sc scaddins scp2 scripting sd sdk_oo setup_native slideshow starmath sw sysui testshl testshl2 testtools ucb UnoControls unoxml ure wizards xmerge xmlsecurity BITSTREAM_VERA_FONTS:bitstream_vera_fonts DICTIONARIES:dictionaries OOo:pyuno OOo:readlicense_oo SO:top unodevtools NULL
-+po postprocess :: accessibility automation basctl bean BINFILTER:binfilter chart2 configmgr CRASHREP:crashrep dbaccess desktop dtrans embeddedobj embedserv EPM:epm eventattacher extensions extras fileaccess filter forms fpicker helpcontent2 hwpfilter io lingucomponent MATHMLDTD:MathMLDTD MSFONTEXTRACT:msfontextract ODK:odk officecfg package padmin psprint_config remotebridges sc scaddins scp2 scripting sd sdk_oo setup_native slideshow starmath sw sysui testshl testshl2 testtools ucb UnoControls unoxml ure wizards xmerge xmlsecurity BITSTREAM_VERA_FONTS:bitstream_vera_fonts DEJAVU_FONTS:dejavu_fonts DICTIONARIES:dictionaries OOo:pyuno OOo:readlicense_oo SO:top unodevtools NULL
- po postprocess usr1 - all po_mkout NULL
- po postprocess\checkxml nmake - all po_checkxml NULL
- po postprocess\packconfig nmake - all po_packconfig po_checkxml NULL
diff --git a/patches/src680/disable-access.diff b/patches/src680/disable-access.diff
deleted file mode 100644
index 3174d9862..000000000
--- a/patches/src680/disable-access.diff
+++ /dev/null
@@ -1,55 +0,0 @@
---- config_office/configure.in 2005-07-29 14:22:24.000000000 +0530
-+++ config_office/configure.in 2005-08-04 16:36:39.908621384 +0530
-@@ -88,6 +91,12 @@ AC_ARG_ENABLE(directx,
- AC_ARG_ENABLE(atlmfc,
- [ --disable-atlmfc Disable the use of ATL/MFC for windows build.
- ],,)
-+AC_ARG_ENABLE(access,
-+[ --disable-access Disable the Access import pieces.
-+],,)
-+AC_ARG_WITH(system-mdbtools,
-+[ --with-system-mdbtools Use mdbtools' libraries from system
-+],,)
-
- AC_ARG_ENABLE(symbols,
- [ --enable-symbols Include debugging symbols in output.
-@@ -866,6 +872,28 @@ if test "$_os" = "WINNT"; then
- fi
-
- dnl ===================================================================
-+dnl Disable the Access import pieces?
-+dnl ===================================================================
-+AC_MSG_CHECKING([whether to enable the Access import pieces])
-+if test "$enable_access" = "no"; then
-+ AC_MSG_RESULT([no])
-+ ENABLE_ACCESS="NO"
-+else
-+ AC_MSG_RESULT([yes])
-+ ENABLE_ACCESS="YES"
-+ AC_MSG_CHECKING([which mdbtools to use])
-+ if test "$with_system_mdbtools" == "yes"; then
-+ AC_MSG_RESULT([external])
-+ SYSTEM_MDBTOOLS=YES
-+ else
-+ AC_MSG_RESULT([internal])
-+ SYSTEM_MDBTOOLS=NO
-+ fi
-+fi
-+AC_SUBST(ENABLE_ACCESS)
-+AC_SUBST(SYSTEM_MDBTOOLS)
-+
-+dnl ===================================================================
- dnl Disable rpath in shared libraries?
- dnl ===================================================================
- AC_MSG_CHECKING([whether to use RPATH in shared libraries])
---- config_office/set_soenv.in 2005-07-29 14:22:24.000000000 +0530
-+++ config_office/set_soenv.in 2005-08-04 16:39:57.758227869 +0530
-@@ -1682,6 +1682,8 @@ ToFile( "ENABLE_CRASHDUMP", "@ENABLE_CR
- ToFile( "ENABLE_CUPS", "@ENABLE_CUPS@", "e" );
- ToFile( "ENABLE_FONTCONFIG", "@ENABLE_FONTCONFIG@", "e" );
- ToFile( "ENABLE_DIRECTX", "@ENABLE_DIRECTX@", "e" );
-+ToFile( "ENABLE_ACCESS", "@ENABLE_ACCESS@", "e" );
-+ToFile( "SYSTEM_MDBTOOLS", "@SYSTEM_MDBTOOLS@", "e" );
- ToFile( "VC_STANDARD", "@VC_STANDARD@", "e" );
- ToFile( "WITH_GPC", "@WITH_GPC@", "e" );
- ToFile( "WITH_LIBART", "@WITH_LIBART@", "e" );
diff --git a/patches/src680/disable-helpcontent2.diff b/patches/src680/disable-helpcontent2.diff
deleted file mode 100644
index a65c672b5..000000000
--- a/patches/src680/disable-helpcontent2.diff
+++ /dev/null
@@ -1,251 +0,0 @@
---- scp2/source/base/file_base.scp 30 Jun 2005 16:38:33 -0000 1.3
-+++ scp2/source/base/file_base.scp 5 Jul 2005 09:54:43 -0000
-@@ -75,16 +75,6 @@
-
- #endif
-
--#ifdef SOLAR_JAVA
--
--File gid_File_Help_Sdatabase_Zip
-- Dir = gid_Dir_Help_Isolanguage;
-- ARCHIVE_TXT_FILE_BODY_PATCH;
-- EXTRA_ALL_LANG(sdatabase);
--End
--
--#endif
--
- File gid_File_Registry_Spool_Oo_Setup_Base_Xcu
- TXT_FILE_BODY;
- Styles = (PACKED);
-
---- scp2/source/calc/file_calc.scp 28 Jun 2005 11:35:19 -0000 1.19
-+++ scp2/source/calc/file_calc.scp 1 Jul 2005 11:26:19 -0000
-@@ -99,16 +99,6 @@
- Name = "/registry/spool/org/openoffice/Office/Embedding-calc.xcu";
- End
-
--#ifdef SOLAR_JAVA
--
--File gid_File_Help_Scalc_Zip
-- Dir = gid_Dir_Help_Isolanguage;
-- ARCHIVE_TXT_FILE_BODY;
-- EXTRA_ALL_LANG(scalc);
--End
--
--#endif
--
- // new user interface configuration files
- /*
- File gid_File_Share_Config_Sofficecfg_Calc_Menubar_Xml
-
---- scp2/source/calc/module_calc.scp 20 Apr 2005 12:01:05 -0000 1.12
-+++ scp2/source/calc/module_calc.scp 1 Jul 2005 11:26:20 -0000
-@@ -78,13 +78,6 @@
- gid_File_Lib_Bf_Sc,gid_File_Res_Bf_Sc,gid_File_Oo_Office_Ui_Calcwindowstate_Xcu,gid_File_Registry_Spool_Oo_TypeDetection_Calc_Types_Xcu,gid_File_Registry_Spool_Oo_TypeDetection_Calc_Filters_Xcu, gid_File_Tmp_Userinstall_Calc_Inf);
- End
-
--Module gid_Module_Prg_Calc_Help
-- MOD_NAME_DESC ( MODULE_PRG_CALC_HELP );
-- ParentID = gid_Module_Prg_Calc;
-- Default = YES;
-- Files = (gid_File_Help_Scalc_Zip);
--End
--
- Module gid_Module_Prg_Calc_Addins
- MOD_NAME_DESC ( MODULE_OPTIONAL_ADDINS );
- ParentID = gid_Module_Prg_Calc;
-
---- scp2/source/draw/file_draw.scp 7 Feb 2005 15:35:16 -0000 1.14
-+++ scp2/source/draw/file_draw.scp 1 Jul 2005 11:26:20 -0000
-@@ -64,16 +64,6 @@
- Name = "/registry/spool/org/openoffice/Office/Embedding-draw.xcu";
- End
-
--#ifdef SOLAR_JAVA
--
--File gid_File_Help_Sdraw_Zip
-- Dir = gid_Dir_Help_Isolanguage;
-- ARCHIVE_TXT_FILE_BODY;
-- EXTRA_ALL_LANG(sdraw);
--End
--
--#endif
--
- File gid_File_Exe_Sdraw
- BIN_FILE_BODY;
- Dir = gid_Dir_Program;
-
---- scp2/source/draw/module_draw.scp 4 Apr 2005 10:13:32 -0000 1.9
-+++ scp2/source/draw/module_draw.scp 1 Jul 2005 11:26:20 -0000
-@@ -77,9 +77,3 @@
- gid_File_Registry_Spool_Oo_TypeDetection_Draw_Types_Xcu,gid_File_Registry_Spool_Oo_TypeDetection_Draw_Filters_Xcu, gid_File_Tmp_Userinstall_Draw_Inf);
- End
-
--Module gid_Module_Prg_Draw_Help
-- MOD_NAME_DESC ( MODULE_PRG_DRAW_HELP );
-- ParentID = gid_Module_Prg_Draw;
-- Default = YES;
-- Files = (gid_File_Help_Sdraw_Zip);
--End
-
---- scp2/source/impress/file_impress.scp 7 Feb 2005 15:35:37 -0000 1.16
-+++ scp2/source/impress/file_impress.scp 1 Jul 2005 11:26:20 -0000
-@@ -74,17 +74,6 @@
- Name = "/registry/spool/org/openoffice/Office/Embedding-impress.xcu";
- End
-
--#ifdef SOLAR_JAVA
--
--File gid_File_Help_Simpress_Zip
-- Dir = gid_Dir_Help_Isolanguage;
-- TXT_FILE_BODY;
-- Styles = (ARCHIVE,DONT_OVERWRITE);
-- EXTRA_ALL_LANG(simpress);
--End
--
--#endif
--
- File gid_File_Exe_Simpress
- BIN_FILE_BODY;
- Dir = gid_Dir_Program;
-
---- scp2/source/impress/module_impress.scp 4 Apr 2005 10:13:51 -0000 1.10
-+++ scp2/source/impress/module_impress.scp 1 Jul 2005 11:26:20 -0000
-@@ -79,9 +79,3 @@
- gid_File_Registry_Spool_Oo_TypeDetection_Impress_Filters_Xcu,gid_File_Registry_Spool_Oo_TypeDetection_Impress_Types_Xcu, gid_File_Tmp_Userinstall_Impress_Inf);
- End
-
--Module gid_Module_Prg_Impress_Help
-- MOD_NAME_DESC ( MODULE_PRG_IMPRESS_HELP );
-- ParentID = gid_Module_Prg_Impress;
-- Default = YES;
-- Files = (gid_File_Help_Simpress_Zip);
--End
-
---- scp2/source/math/file_math.scp 11 Feb 2005 15:54:09 -0000 1.16
-+++ scp2/source/math/file_math.scp 1 Jul 2005 11:26:20 -0000
-@@ -97,16 +97,6 @@
- Name = "/registry/spool/org/openoffice/Office/Embedding-math.xcu";
- End
-
--#ifdef SOLAR_JAVA
--
--File gid_File_Help_Smath_Zip
-- Dir = gid_Dir_Help_Isolanguage;
-- ARCHIVE_TXT_FILE_BODY;
-- EXTRA_ALL_LANG(smath);
--End
--
--#endif
--
- File gid_File_Exe_Smath
- BIN_FILE_BODY;
- Dir = gid_Dir_Program;
-
---- scp2/source/math/module_math.scp 4 Apr 2005 10:14:25 -0000 1.10
-+++ scp2/source/math/module_math.scp 1 Jul 2005 11:26:20 -0000
-@@ -79,9 +79,3 @@
- gid_File_Registry_Spool_Oo_TypeDetection_Math_Types_Xcu,gid_File_Registry_Spool_Oo_TypeDetection_Math_Filters_Xcu, gid_File_Tmp_Userinstall_Math_Inf);
- End
-
--Module gid_Module_Prg_Math_Help
-- MOD_NAME_DESC ( MODULE_PRG_MATH_HELP );
-- ParentID = gid_Module_Prg_Math;
-- Default = YES;
-- Files = (gid_File_Help_Smath_Zip);
--End
-
---- scp2/source/ooo/file_ooo.scp 27 Jun 2005 09:19:56 -0000 1.97
-+++ scp2/source/ooo/file_ooo.scp 1 Jul 2005 11:26:20 -0000
-@@ -570,34 +599,6 @@
-
- STD_RES_FILE( gid_File_Res_Eme, eme )
-
--#ifdef SOLAR_JAVA
--
--File gid_File_Help_Common_Zip
-- Dir = gid_Dir_Help_Isolanguage;
-- ARCHIVE_TXT_FILE_BODY;
-- EXTRA_ALL_LANG(shared);
--End
--
--File gid_File_Help_Help_Zip
-- Dir = gid_Dir_Help;
-- ARCHIVE_TXT_FILE_BODY;
-- Name = "helpxsl.zip";
--End
--
--File gid_File_Help_Sbasic_Zip
-- Dir = gid_Dir_Help_Isolanguage;
-- ARCHIVE_TXT_FILE_BODY;
-- EXTRA_ALL_LANG(sbasic);
--End
--
--File gid_File_Help_Schart_Zip
-- Dir = gid_Dir_Help_Isolanguage;
-- ARCHIVE_TXT_FILE_BODY;
-- EXTRA_ALL_LANG(schart);
--End
--
--#endif
--
- File gid_File_Html_Thirdpartylicensereadme
- Name = "THIRDPARTYLICENSEREADME.html";
- Dir = PREDEFINED_PROGDIR;
-
---- scp2/source/testtool/file_testtool.scp 20 Jun 2005 15:38:36 -0000 1.2
-+++ scp2/source/testtool/file_testtool.scp 1 Jul 2005 11:26:21 -0000
-@@ -75,9 +75,3 @@
- #endif
- End
-
--File gid_File_Hid_Testtool
-- BIN_FILE_BODY;
-- Dir = gid_Dir_Program;
-- Styles = (PACKED);
-- Name = "hid.lst";
--End
-
---- scp2/source/writer/file_writer.scp 7 Feb 2005 15:36:44 -0000 1.14
-+++ scp2/source/writer/file_writer.scp 1 Jul 2005 11:26:21 -0000
-@@ -96,16 +96,6 @@
- Name = "/registry/spool/org/openoffice/Office/Embedding-writer.xcu";
- End
-
--#ifdef SOLAR_JAVA
--
--File gid_File_Help_Swriter_Zip
-- Dir = gid_Dir_Help_Isolanguage;
-- ARCHIVE_TXT_FILE_BODY;
-- EXTRA_ALL_LANG(swriter);
--End
--
--#endif
--
- /*
- File gid_File_Share_Config_Sofficecfg_Writer_Menubar_Xml
- TXT_FILE_BODY;
-
---- scp2/source/writer/module_writer.scp 4 Apr 2005 10:16:52 -0000 1.13
-+++ scp2/source/writer/module_writer.scp 1 Jul 2005 11:26:21 -0000
-@@ -101,10 +101,3 @@
- gid_File_Tmp_Userinstall_Wrt_Inf);
- End
-
--Module gid_Module_Prg_Wrt_Help
-- MOD_NAME_DESC ( MODULE_PRG_WRT_HELP );
-- ParentID = gid_Module_Prg_Wrt;
-- Default = YES;
-- Minimal = YES;
-- Files = (gid_File_Help_Swriter_Zip);
--End
-
---- postprocess/prj/build.lst 8 Mar 2005 16:32:45 -0000 1.15
-+++ postprocess/prj/build.lst 15 Apr 2005 22:56:52 -0000
-@@ -1,4 +1,4 @@
--po postprocess :: accessibility automation basctl bean BINFILTER:binfilter chart2 configmgr CRASHREP:crashrep dbaccess desktop dtrans embeddedobj embedserv EPM:epm eventattacher extensions extras fileaccess filter forms fpicker helpcontent2 hwpfilter io lingucomponent MATHMLDTD:MathMLDTD MSFONTEXTRACT:msfontextract ODK:odk officecfg package padmin psprint_config remotebridges sc scaddins scp2 scripting sd sdk_oo setup_native slideshow starmath sw sysui testshl testshl2 testtools ucb UnoControls unoxml ure wizards xmerge xmlsecurity BITSTREAM_VERA_FONTS:bitstream_vera_fonts DICTIONARIES:dictionaries OOo:pyuno OOo:readlicense_oo SO:top unodevtools NULL
-+po postprocess :: accessibility automation basctl bean BINFILTER:binfilter chart2 configmgr CRASHREP:crashrep dbaccess desktop dtrans embeddedobj embedserv EPM:epm eventattacher extensions extras fileaccess filter forms fpicker xmlhelp hwpfilter io lingucomponent MATHMLDTD:MathMLDTD MSFONTEXTRACT:msfontextract ODK:odk officecfg package padmin psprint_config remotebridges sc scaddins scp2 scripting sd sdk_oo setup_native slideshow starmath sw sysui testshl testshl2 testtools ucb UnoControls unoxml ure wizards xmerge xmlsecurity BITSTREAM_VERA_FONTS:bitstream_vera_fonts DICTIONARIES:dictionaries OOo:pyuno OOo:readlicense_oo SO:top unodevtools NULL
- po postprocess usr1 - all po_mkout NULL
- po postprocess\checkxml nmake - all po_checkxml NULL
- po postprocess\packconfig nmake - all po_packconfig po_checkxml NULL
-
diff --git a/patches/src680/disable-recovery.diff b/patches/src680/disable-recovery.diff
deleted file mode 100644
index ddf22cf85..000000000
--- a/patches/src680/disable-recovery.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: desktop/source/app/app.cxx
-===================================================================
-RCS file: /cvs/framework/desktop/source/app/app.cxx,v
-retrieving revision 1.182
-diff -u -r1.182 app.cxx
---- desktop/source/app/app.cxx 12 Jul 2005 14:29:16 -0000 1.182
-+++ desktop/source/app/app.cxx 6 Sep 2005 15:17:27 -0000
-@@ -2085,7 +2086,7 @@
-
- impl_checkRecoveryState(bCrashed, bExistsRecoveryData, bExistsSessionData);
-
-- if (
-+ if ( !getenv ("OOO_DISABLE_RECOVERY") &&
- ( ! bLoaded ) &&
- (
- ( bExistsRecoveryData ) || // => crash with files => recovery
diff --git a/patches/src680/disable-rhino-without-system-bsh.diff b/patches/src680/disable-rhino-without-system-bsh.diff
deleted file mode 100644
index 48a2b9160..000000000
--- a/patches/src680/disable-rhino-without-system-bsh.diff
+++ /dev/null
@@ -1,875 +0,0 @@
---- scripting/java/com/sun/star/script/framework/provider/javascript/ScriptProviderForJavaScript.java 2005-10-15 13:15:51.865567480 +0200
-+++ /dev/null 2005-03-29 00:33:24.000000000 +0200
-@@ -1,417 +0,0 @@
--/*************************************************************************
--*
-- * OpenOffice.org - a multi-platform office productivity suite
-- *
-- * $RCSfile: ScriptProviderForJavaScript.java,v $
-- *
-- * $Revision: 1.8 $
-- *
-- * last change: $Author: rt $ $Date: 2005/09/09 02:05:15 $
-- *
-- * The Contents of this file are made available subject to
-- * the terms of GNU Lesser General Public License Version 2.1.
-- *
-- *
-- * GNU Lesser General Public License Version 2.1
-- * =============================================
-- * Copyright 2005 by Sun Microsystems, Inc.
-- * 901 San Antonio Road, Palo Alto, CA 94303, USA
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Lesser General Public
-- * License version 2.1, as published by the Free Software Foundation.
-- *
-- * This library 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 for more details.
-- *
-- * You should have received a copy of the GNU Lesser General Public
-- * License along with this library; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-- * MA 02111-1307 USA
-- *
--************************************************************************/
--package com.sun.star.script.framework.provider.javascript;
--
--import com.sun.star.uno.UnoRuntime;
--import com.sun.star.uno.XComponentContext;
--import com.sun.star.lang.XMultiComponentFactory;
--import com.sun.star.lang.XMultiServiceFactory;
--import com.sun.star.lang.XSingleServiceFactory;
--import com.sun.star.frame.XModel;
--import com.sun.star.registry.XRegistryKey;
--import com.sun.star.comp.loader.FactoryHelper;
--import com.sun.star.lang.XTypeProvider;
--import com.sun.star.lang.XServiceInfo;
--import com.sun.star.lang.XInitialization;
--import com.sun.star.uno.AnyConverter;
--import com.sun.star.uno.Type;
--import com.sun.star.uno.Any;
--import com.sun.star.beans.XPropertySet;
--
--import com.sun.star.lang.IllegalArgumentException;
--import com.sun.star.lang.WrappedTargetException;
--import com.sun.star.reflection.InvocationTargetException;
--import com.sun.star.script.CannotConvertException;
--
--import java.io.*;
--import java.util.Vector;
--import java.util.Map;
--import java.net.MalformedURLException;
--import java.net.URL;
--
--import com.sun.star.script.provider.XScriptProvider;
--import com.sun.star.script.provider.XScript;
--import com.sun.star.script.provider.XScriptContext;
--
--import com.sun.star.script.provider.ScriptErrorRaisedException;
--import com.sun.star.script.provider.ScriptExceptionRaisedException;
--import com.sun.star.script.provider.ScriptFrameworkErrorException;
--import com.sun.star.script.provider.ScriptFrameworkErrorType;
--
--import com.sun.star.script.framework.log.LogUtils;
--import com.sun.star.script.framework.provider.ScriptContext;
--import com.sun.star.script.framework.provider.ClassLoaderFactory;
--import com.sun.star.script.framework.provider.ScriptProvider;
--import com.sun.star.script.framework.provider.ScriptEditor;
--import com.sun.star.script.framework.container.ScriptMetaData;
--import com.sun.star.script.framework.log.*;
--
--import org.mozilla.javascript.Context;
--import org.mozilla.javascript.ImporterTopLevel;
--import org.mozilla.javascript.Scriptable;
--import org.mozilla.javascript.JavaScriptException;
--import org.mozilla.javascript.EcmaError;
--
--public class ScriptProviderForJavaScript
--{
-- public static class _ScriptProviderForJavaScript extends ScriptProvider
-- {
-- public _ScriptProviderForJavaScript(XComponentContext ctx)
-- {
-- super(ctx, "JavaScript");
-- }
--
-- public XScript getScript( /*IN*/String scriptURI )
-- throws com.sun.star.uno.RuntimeException,
-- ScriptFrameworkErrorException
-- {
-- ScriptMetaData scriptData = null;
-- try
-- {
-- scriptData = getScriptData( scriptURI );
-- ScriptImpl script = new ScriptImpl( m_xContext, scriptData, m_xModel );
-- return script;
-- }
-- catch ( com.sun.star.uno.RuntimeException re )
-- {
-- throw new ScriptFrameworkErrorException( "Failed to create script object: " + re.getMessage(),
-- null, scriptData.getLanguageName(), language, ScriptFrameworkErrorType.UNKNOWN );
-- }
-- }
--
-- public boolean hasScriptEditor()
-- {
-- return true;
-- }
--
-- public ScriptEditor getScriptEditor()
-- {
-- return ScriptEditorForJavaScript.getEditor();
-- }
-- }
--
-- /**
-- * Returns a factory for creating the service.
-- * This method is called by the <code>JavaLoader</code>
-- * <p>
-- *
-- * @param implName the name of the implementation for which a service is desired
-- * @param multiFactory the service manager to be used if needed
-- * @param regKey the registryKey
-- * @return returns a <code>XSingleServiceFactory</code> for creating
-- * the component
-- * @see com.sun.star.comp.loader.JavaLoader
-- */
-- public static XSingleServiceFactory __getServiceFactory( String implName,
-- XMultiServiceFactory multiFactory,
-- XRegistryKey regKey )
-- {
-- XSingleServiceFactory xSingleServiceFactory = null;
--
-- if ( implName.equals( ScriptProviderForJavaScript._ScriptProviderForJavaScript.class.getName() ) )
-- {
-- xSingleServiceFactory = FactoryHelper.getServiceFactory(
-- ScriptProviderForJavaScript._ScriptProviderForJavaScript.class,
-- "com.sun.star.script.provider.ScriptProviderForJavaScript",
-- multiFactory,
-- regKey );
-- }
--
-- return xSingleServiceFactory;
-- }
--
--
-- /**
-- * Writes the service information into the given registry key.
-- * This method is called by the <code>JavaLoader</code>
-- * <p>
-- *
-- * @param regKey the registryKey
-- * @return returns true if the operation succeeded
-- * @see com.sun.star.comp.loader.JavaLoader
-- */
-- public static boolean __writeRegistryServiceInfo( XRegistryKey regKey )
-- {
-- String impl = "com.sun.star.script.framework.provider.javascript." +
-- "ScriptProviderForJavaScript$_ScriptProviderForJavaScript";
--
-- String service1 = "com.sun.star.script.provider." +
-- "ScriptProvider";
-- String service2 = "com.sun.star.script.provider." +
-- "LanguageScriptProvider";
-- String service3 = "com.sun.star.script.provider." +
-- "ScriptProviderForJavaScript";
-- String service4 = "com.sun.star.script.browse." +
-- "BrowseNode";
--
-- if ( FactoryHelper.writeRegistryServiceInfo(impl, service1, regKey) &&
-- FactoryHelper.writeRegistryServiceInfo(impl, service2, regKey) &&
-- FactoryHelper.writeRegistryServiceInfo(impl, service3, regKey) &&
-- FactoryHelper.writeRegistryServiceInfo(impl, service4, regKey) )
-- {
-- return true;
-- }
-- return false;
-- }
--}
--class ScriptImpl implements XScript
--{
-- private ScriptMetaData metaData;
-- private XComponentContext m_xContext;
-- private XMultiComponentFactory m_xMultiComponentFactory;
-- private XModel m_xModel;
--
-- ScriptImpl( XComponentContext ctx, ScriptMetaData metaData, XModel xModel ) throws com.sun.star.uno.RuntimeException
-- {
-- this.metaData = metaData;
-- this.m_xContext = ctx;
-- this.m_xModel = xModel;
-- try
-- {
-- this.m_xMultiComponentFactory = m_xContext.getServiceManager();
-- }
-- catch ( Exception e )
-- {
-- LogUtils.DEBUG( LogUtils.getTrace( e ) );
-- throw new com.sun.star.uno.RuntimeException(
-- "Error constructing ScriptImpl: [javascript]");
-- }
-- LogUtils.DEBUG("ScriptImpl [javascript] script data = " + metaData );
-- }
--
-- /**
-- * The invoke method of the ScriptProviderForJavaScript runs the
-- * JavaScript script specified in the URI
-- *
-- *
-- *
-- * @param aParams All parameters; pure, out params are
-- * undefined in sequence, i.e., the value
-- * has to be ignored by the callee
-- *
-- * @param aOutParamIndex Out indices
-- *
-- * @param aOutParam Out parameters
-- *
-- * @returns The value returned from the function
-- * being invoked
-- *
-- * @throws ScriptFrameworkErrorException If there is no matching script name
-- *
-- *
-- * @throws InvocationTargetException If the running script throws
-- * an exception this information
-- * is captured and rethrown as
-- * ScriptErrorRaisedException or
-- * ScriptExceptionRaisedException
-- */
--
-- public Object invoke(
-- /*IN*/Object[] params,
-- /*OUT*/short[][] aOutParamIndex,
-- /*OUT*/Object[][] aOutParam )
--
-- throws ScriptFrameworkErrorException, InvocationTargetException
-- {
-- // Initialise the out paramters - not used at the moment
-- aOutParamIndex[0] = new short[0];
-- aOutParam[0] = new Object[0];
--
--
--
-- ClassLoader cl = null;
-- URL sourceUrl = null;
-- try {
-- cl = ClassLoaderFactory.getURLClassLoader( metaData );
-- sourceUrl = metaData.getSourceURL();
-- }
-- catch ( java.net.MalformedURLException mfu )
-- {
-- throw new ScriptFrameworkErrorException(
-- mfu.getMessage(), null,
-- metaData.getLanguageName(), metaData.getLanguage(),
-- ScriptFrameworkErrorType.UNKNOWN );
-- }
-- catch ( com.sun.star.script.framework.provider.NoSuitableClassLoaderException nsc )
-- {
-- // Framework error
-- throw new ScriptFrameworkErrorException(
-- nsc.getMessage(), null,
-- metaData.getLanguageName(), metaData.getLanguage(),
-- ScriptFrameworkErrorType.UNKNOWN );
-- }
-- Context ctxt = null;
--
-- try
-- {
-- String editorURL = sourceUrl.toString();
-- Object result = null;
-- String source = null;
-- ScriptEditorForJavaScript editor =
-- ScriptEditorForJavaScript.getEditor(
-- metaData.getSourceURL() );
--
-- if (editor != null)
-- {
-- editorURL = editor.getURL();
-- result = editor.execute();
-- if ( result != null &&
-- result.getClass().getName().equals( "org.mozilla.javascript.Undefined" ) )
-- {
-- // Always return a string
-- // TODO revisit
-- return Context.toString( result );
-- }
--
-- }
--
-- if (editor != null && editor.isModified() == true)
-- {
-- LogUtils.DEBUG("GOT A MODIFIED SOURCE");
-- source = editor.getText();
-- }
-- else
-- {
-- metaData.loadSource();
-- source = metaData.getSource();
--
-- }
--
-- if ( source == null || source.length() == 0 ) {
-- throw new ScriptFrameworkErrorException(
-- "Failed to read source data for script", null,
-- metaData.getLanguageName(), metaData.getLanguage(),
-- ScriptFrameworkErrorType.UNKNOWN );
-- }
--
-- /* Set the context ClassLoader on the current thread to
-- be our custom ClassLoader. This is the suggested method
-- for setting up a ClassLoader to be used by the Rhino
-- interpreter
-- */
-- if (cl != null) {
-- Thread.currentThread().setContextClassLoader(cl);
-- }
--
-- // Initialize a Rhino Context object
-- ctxt = Context.enter();
--
-- /* The ImporterTopLevel ensures that importClass and
-- importPackage statements work in Javascript scripts
-- Make the XScriptContext available as a global variable
-- to the script
-- */
-- ImporterTopLevel scope = new ImporterTopLevel(ctxt);
--
-- Scriptable jsCtxt = Context.toObject(
-- ScriptContext.createContext(
-- m_xModel, m_xContext,
-- m_xMultiComponentFactory), scope);
-- scope.put("XSCRIPTCONTEXT", scope, jsCtxt);
--
-- Scriptable jsArgs = Context.toObject(params, scope);
-- scope.put("ARGUMENTS", scope, jsArgs);
--
-- result = ctxt.evaluateString(scope,
-- source, "<stdin>", 1, null);
-- result = ctxt.toString(result);
-- return result;
-- }
-- catch (JavaScriptException jse) {
-- LogUtils.DEBUG( "Caught JavaScriptException exception for JavaScript type = " + jse.getClass() );
-- String message = jse.getMessage();
-- //int lineNo = jse.getLineNumber();
-- Object wrap = jse.getValue();
-- LogUtils.DEBUG( "\t message " + message );
-- LogUtils.DEBUG( "\t wrapped type " + wrap.getClass() );
-- LogUtils.DEBUG( "\t wrapped toString " + wrap.toString() );
-- ScriptExceptionRaisedException se = new
-- ScriptExceptionRaisedException( message );
-- se.lineNum = -1;
-- se.language = "JavaScript";
-- se.scriptName = metaData.getLanguageName();
-- se.exceptionType = wrap.getClass().getName();
-- se.language = metaData.getLanguage();
-- LogUtils.DEBUG( "ExceptionRaised exception " );
-- LogUtils.DEBUG( "\t message " + se.getMessage() );
-- LogUtils.DEBUG( "\t lineNum " + se.lineNum );
-- LogUtils.DEBUG( "\t language " + se.language );
-- LogUtils.DEBUG( "\t scriptName " + se.scriptName );
-- raiseEditor( se.lineNum );
-- throw new InvocationTargetException( "JavaScript uncaught exception" + metaData.getLanguageName(), null, se );
-- }
-- catch (Exception ex) {
-- LogUtils.DEBUG("Caught Exception " + ex );
-- LogUtils.DEBUG("rethrowing as ScriptFramework error" );
-- throw new ScriptFrameworkErrorException(
-- ex.getMessage(), null,
-- metaData.getLanguageName(), metaData.getLanguage(),
-- ScriptFrameworkErrorType.UNKNOWN );
-- }
-- finally {
-- if ( ctxt != null )
-- {
-- Context.exit();
-- }
-- }
-- }
--
-- private void raiseEditor( int lineNum )
-- {
-- ScriptEditorForJavaScript editor = null;
-- try
-- {
-- URL sourceUrl = metaData.getSourceURL();
-- editor = ScriptEditorForJavaScript.getEditor( sourceUrl );
-- if ( editor == null )
-- {
-- editor = ScriptEditorForJavaScript.getEditor();
-- editor.edit(
-- ScriptContext.createContext(m_xModel,
-- m_xContext, m_xMultiComponentFactory), metaData );
-- editor = ScriptEditorForJavaScript.getEditor( sourceUrl );
-- }
-- if ( editor != null )
-- {
-- System.out.println("** Have raised IDE for JavaScript, calling indicateErrorLine for line " + lineNum );
-- editor.indicateErrorLine( lineNum );
-- }
-- }
-- catch( Exception ignore )
-- {
-- }
-- }
--}
--
---- scripting/java/com/sun/star/script/framework/provider/javascript/ScriptEditorForJavaScript.java 2005-10-15 13:15:51.843570824 +0200
-+++ /dev/null 2005-03-29 00:33:24.000000000 +0200
-@@ -1,385 +0,0 @@
--/*************************************************************************
-- *
-- * OpenOffice.org - a multi-platform office productivity suite
-- *
-- * $RCSfile: ScriptEditorForJavaScript.java,v $
-- *
-- * $Revision: 1.7 $
-- *
-- * last change: $Author: rt $ $Date: 2005/09/09 02:04:45 $
-- *
-- * The Contents of this file are made available subject to
-- * the terms of GNU Lesser General Public License Version 2.1.
-- *
-- *
-- * GNU Lesser General Public License Version 2.1
-- * =============================================
-- * Copyright 2005 by Sun Microsystems, Inc.
-- * 901 San Antonio Road, Palo Alto, CA 94303, USA
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Lesser General Public
-- * License version 2.1, as published by the Free Software Foundation.
-- *
-- * This library 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 for more details.
-- *
-- * You should have received a copy of the GNU Lesser General Public
-- * License along with this library; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-- * MA 02111-1307 USA
-- *
-- ************************************************************************/
--
--package com.sun.star.script.framework.provider.javascript;
--
--import org.mozilla.javascript.Context;
--import org.mozilla.javascript.Scriptable;
--import org.mozilla.javascript.ImporterTopLevel;
--import org.mozilla.javascript.tools.debugger.Main;
--import org.mozilla.javascript.tools.debugger.ScopeProvider;
--
--import com.sun.star.script.provider.XScriptContext;
--import com.sun.star.script.framework.container.ScriptMetaData;
--import com.sun.star.script.framework.provider.ScriptEditor;
--import com.sun.star.script.framework.log.LogUtils;
--
--import java.io.InputStream;
--import java.io.IOException;
--import java.net.URL;
--
--import java.util.Map;
--import java.util.HashMap;
--
--import javax.swing.JFrame;
--import javax.swing.SwingUtilities;
--import java.awt.event.WindowAdapter;
--import java.awt.event.WindowEvent;
--
--public class ScriptEditorForJavaScript implements ScriptEditor
--{
-- // global ScriptEditorForJavaScript instance
-- private static ScriptEditorForJavaScript theScriptEditorForJavaScript;
--
-- // template for JavaScript scripts
-- private static String JSTEMPLATE;
--
-- static private Main rhinoWindow;
-- private URL scriptURL;
-- // global list of ScriptEditors, key is URL of file being edited
-- private static Map BEING_EDITED = new HashMap();
--
-- static {
-- try {
-- URL url =
-- ScriptEditorForJavaScript.class.getResource("template.js");
--
-- InputStream in = url.openStream();
-- StringBuffer buf = new StringBuffer();
-- byte[] b = new byte[1024];
-- int len = 0;
--
-- while ((len = in.read(b)) != -1) {
-- buf.append(new String(b, 0, len));
-- }
--
-- in.close();
--
-- JSTEMPLATE = buf.toString();
-- }
-- catch (IOException ioe) {
-- JSTEMPLATE = "// JavaScript script";
-- }
-- catch (Exception e) {
-- JSTEMPLATE = "// JavaScript script";
-- }
-- }
--
-- /**
-- * Returns the global ScriptEditorForJavaScript instance.
-- */
-- public static ScriptEditorForJavaScript getEditor()
-- {
-- if (theScriptEditorForJavaScript == null)
-- {
-- synchronized(ScriptEditorForJavaScript.class)
-- {
-- if (theScriptEditorForJavaScript == null)
-- {
-- theScriptEditorForJavaScript =
-- new ScriptEditorForJavaScript();
-- }
-- }
-- }
-- return theScriptEditorForJavaScript;
-- }
--
-- /**
-- * Get the ScriptEditorForJavaScript instance for this URL
-- *
-- * @param url The URL of the script source file
-- *
-- * @return The ScriptEditorForJavaScript associated with
-- * the given URL if one exists, otherwise null.
-- */
-- public static ScriptEditorForJavaScript getEditor(URL url)
-- {
-- return (ScriptEditorForJavaScript)BEING_EDITED.get(url);
-- }
--
-- /**
-- * Returns whether or not the script source being edited in this
-- * ScriptEditorForJavaScript has been modified
-- */
-- public boolean isModified()
-- {
-- return rhinoWindow.isModified( scriptURL );
-- }
--
-- /**
-- * Returns the text being displayed in this ScriptEditorForJavaScript
-- *
-- * @return The text displayed in this ScriptEditorForJavaScript
-- */
-- public String getText()
-- {
-- return rhinoWindow.getText( scriptURL );
-- }
--
-- /**
-- * Returns the Rhino Debugger url of this ScriptEditorForJavaScript
-- *
-- * @return The url of this ScriptEditorForJavaScript
-- */
-- public String getURL()
-- {
-- return scriptURL.toString();
-- }
--
-- /**
-- * Returns the template text for JavaScript scripts
-- *
-- * @return The template text for JavaScript scripts
-- */
-- public String getTemplate()
-- {
-- return JSTEMPLATE;
-- }
--
-- /**
-- * Returns the default extension for JavaScript scripts
-- *
-- * @return The default extension for JavaScript scripts
-- */
-- public String getExtension()
-- {
-- return "js";
-- }
--
-- /**
-- * Opens an editor window for the specified ScriptMetaData.
-- * If an editor window is already open for that data it will be
-- * moved to the front.
-- *
-- * @param metadata The metadata describing the script
-- * @param context The context in which to execute the script
-- *
-- */
-- public void edit(final XScriptContext context, ScriptMetaData entry)
-- {
-- try {
-- String sUrl = entry.getParcelLocation();
-- if ( !sUrl.endsWith( "/" ) )
-- {
-- sUrl += "/";
-- }
-- sUrl += entry.getLanguageName();
-- URL url = entry.getSourceURL();
--
-- // check if there is already an editing session for this script
-- //if (BEING_EDITED.containsKey(url))
-- if ( rhinoWindow != null )
-- {
-- ScriptEditorForJavaScript editor =
-- (ScriptEditorForJavaScript) BEING_EDITED.get(url);
-- if ( editor == null )
-- {
-- editor = new ScriptEditorForJavaScript( context, url );
-- editor.edit( context, entry );
-- }
-- else
-- {
-- rhinoWindow.showScriptWindow( url );
-- }
-- }
-- else
-- {
-- ScriptEditorForJavaScript editor =
-- new ScriptEditorForJavaScript( context, url );
--
-- }
-- rhinoWindow.toFront();
-- }
-- catch ( IOException e )
-- {
-- LogUtils.DEBUG("Caught exception: " + e);
-- LogUtils.DEBUG(LogUtils.getTrace(e));
-- }
-- }
--
-- // Ensures that new instances of this class can only be created using
-- // the factory methods
-- private ScriptEditorForJavaScript()
-- {
-- }
--
-- private ScriptEditorForJavaScript(XScriptContext context, URL url)
-- {
-- initUI();
-- Scriptable scope = getScope( context );
-- this.rhinoWindow.openFile(url, scope, new closeHandler( url ) );
--
--
-- this.scriptURL = url;
-- synchronized( ScriptEditorForJavaScript.class )
-- {
-- BEING_EDITED.put(url, this);
-- }
--
-- }
--
-- /**
-- * Executes the script edited by the editor
-- *
-- */
--
-- public Object execute() throws Exception
-- {
-- rhinoWindow.toFront();
--
-- return this.rhinoWindow.runScriptWindow( scriptURL );
-- }
--
-- /**
-- * Indicates the line where error occured
-- *
-- */
-- public void indicateErrorLine( int lineNum )
-- {
-- this.rhinoWindow.toFront();
-- this.rhinoWindow.highlighLineInScriptWindow( scriptURL, lineNum );
-- }
-- // This code is based on the main method of the Rhino Debugger Main class
-- // We pass in the XScriptContext in the global scope for script execution
-- private void initUI() {
-- try {
-- synchronized ( ScriptEditorForJavaScript.class )
-- {
-- if ( this.rhinoWindow != null )
-- {
-- return;
-- }
--
-- final Main sdb = new Main("Rhino JavaScript Debugger");
-- swingInvoke(new Runnable() {
-- public void run() {
-- sdb.pack();
-- sdb.setSize(640, 640);
-- sdb.setVisible(true);
-- }
-- });
-- sdb.setExitAction(new Runnable() {
-- public void run() {
-- sdb.clearAllBreakpoints();
-- sdb.dispose();
-- shutdown();
-- }
-- });
-- Context.addContextListener(sdb);
-- sdb.setScopeProvider(new ScopeProvider() {
-- public Scriptable getScope() {
-- return org.mozilla.javascript.tools.shell.Main.getScope();
-- }
-- });
-- sdb.addWindowListener( new WindowAdapter() {
-- public void windowClosing(WindowEvent e) {
-- shutdown();
-- }
-- });
-- this.rhinoWindow = sdb;
-- }
-- } catch (Exception exc) {
-- LogUtils.DEBUG( LogUtils.getTrace( exc ) );
-- }
-- }
--
-- private static void swingInvoke(Runnable f) {
-- if (SwingUtilities.isEventDispatchThread()) {
-- f.run();
-- return;
-- }
-- try {
-- SwingUtilities.invokeAndWait(f);
-- } catch (Exception exc) {
-- LogUtils.DEBUG( LogUtils.getTrace( exc ) );
-- }
-- }
--
-- private void shutdown()
-- {
-- // dereference Rhino Debugger window
-- this.rhinoWindow = null;
-- this.scriptURL = null;
-- // remove all scripts from BEING_EDITED
-- synchronized( BEING_EDITED )
-- {
-- java.util.Iterator iter = BEING_EDITED.keySet().iterator();
-- java.util.Vector keysToRemove = new java.util.Vector();
-- while ( iter.hasNext() )
-- {
--
-- URL key = (URL)iter.next();
-- keysToRemove.add( key );
-- }
-- for ( int i=0; i<keysToRemove.size(); i++ )
-- {
-- BEING_EDITED.remove( keysToRemove.elementAt( i ) );
-- }
-- keysToRemove = null;
-- }
--
-- }
-- private Scriptable getScope(XScriptContext xsctxt )
-- {
-- Context ctxt = Context.enter();
-- ImporterTopLevel scope = new ImporterTopLevel(ctxt);
--
-- Scriptable jsCtxt = Context.toObject(xsctxt, scope);
-- scope.put("XSCRIPTCONTEXT", scope, jsCtxt);
--
-- Scriptable jsArgs = Context.toObject(
-- new Object[0], scope);
-- scope.put("ARGUMENTS", scope, jsArgs);
--
-- Context.exit();
-- return scope;
-- }
--
-- class closeHandler implements Runnable
-- {
-- URL url;
-- closeHandler( URL url )
-- {
-- this.url = url;
-- }
-- public void run()
-- {
-- synchronized( BEING_EDITED )
-- {
-- Object o = BEING_EDITED.remove( this.url );
-- }
-- }
-- }
--}
---- scripting/java/build.xml-old 2005-10-15 13:03:27.000000000 +0200
-+++ scripting/java/build.xml 2005-10-15 13:04:25.000000000 +0200
-@@ -59,7 +59,6 @@
- <pathelement location="${solar.jar}/java_uno.jar"/>
- <pathelement location="${solar.jar}/ridl.jar"/>
- <pathelement location="${solar.jar}/bsh.jar"/>
-- <pathelement location="${solar.jar}/js.jar"/>
- <pathelement location="${jardir}"/>
- </path>
-
-@@ -169,19 +168,6 @@
- </fileset>
- </jar>
-
-- <jar jarfile="${jardir}/ScriptProviderForJavaScript.jar"
-- basedir="${jardir}">
-- <manifest>
-- <attribute name="Built-By" value="Sun Microsystems"/>
-- <attribute name="RegistrationClassName"
-- value="com.sun.star.script.framework.provider.javascript.ScriptProviderForJavaScript"/>
-- </manifest>
-- <include name="**/provider/javascript/*.class"/>
-- <fileset dir=".">
-- <include name="**/provider/javascript/*.js"/>
-- </fileset>
-- </jar>
--
- <jar jarfile="${jardir}/ScriptFramework.jar"
- basedir="${jardir}">
- <manifest>
-@@ -254,7 +240,6 @@
- <!-- ====================== Clean Generated Files ===================== -->
- <target name="clean">
- <delete file="${jardir}/ScriptProviderForJava.jar"/>
-- <delete file="${jardir}/ScriptProviderForJavaScript.jar"/>
- <delete file="${jardir}/ScriptProviderForBeanShell.jar"/>
- <delete file="${jardir}/ScriptFramework.jar"/>
- <delete file="${jardir}/office.jar"/>
---- scp2/source/ooo/file_ooo.scp-old 2005-10-16 00:54:49.944255848 +0200
-+++ scp2/source/ooo/file_ooo.scp 2005-10-16 00:56:44.868784664 +0200
-@@ -626,10 +626,6 @@
- #endif
-
- #ifdef SOLAR_JAVA
--STD_JAR_FILE( gid_File_Jar_Js, js )
--#endif
--
--#ifdef SOLAR_JAVA
-
- File gid_File_Jar_Juh
- TXT_FILE_BODY;
-@@ -742,7 +738,6 @@
- UNO_JAR_FILE( gid_File_Jar_Scriptframework, ScriptFramework )
- UNO_JAR_FILE( gid_File_Jar_Scriptproviderforbeanshell, ScriptProviderForBeanShell )
- UNO_JAR_FILE( gid_File_Jar_Scriptproviderforjava, ScriptProviderForJava )
--UNO_JAR_FILE( gid_File_Jar_Scriptproviderforjavascript, ScriptProviderForJavaScript )
- #endif
-
- #ifdef SOLAR_JAVA
---- scripting/prj/build.lst-old 2005-10-16 13:16:18.799921760 +0200
-+++ scripting/prj/build.lst 2005-10-16 13:16:30.053211000 +0200
-@@ -1,4 +1,4 @@
--tc scripting : bridges rdbmaker vcl xmlscript basic sfx2 rhino beanshell javaunohelper NULL
-+tc scripting : bridges rdbmaker vcl xmlscript basic sfx2 beanshell javaunohelper NULL
- tc scripting usr1 - all tc_mkout NULL
- tc scripting\source\provider nmake - all tc_scriptingprovider NULL
- tc scripting\source\basprov nmake - all tc_scriptingbasprov NULL
diff --git a/patches/src680/disable-rhino.diff b/patches/src680/disable-rhino.diff
deleted file mode 100644
index 1afcf50dd..000000000
--- a/patches/src680/disable-rhino.diff
+++ /dev/null
@@ -1,875 +0,0 @@
---- scripting/java/com/sun/star/script/framework/provider/javascript/ScriptProviderForJavaScript.java 2005-10-15 13:15:51.865567480 +0200
-+++ /dev/null 2005-03-29 00:33:24.000000000 +0200
-@@ -1,417 +0,0 @@
--/*************************************************************************
--*
-- * OpenOffice.org - a multi-platform office productivity suite
-- *
-- * $RCSfile: ScriptProviderForJavaScript.java,v $
-- *
-- * $Revision: 1.8 $
-- *
-- * last change: $Author: rt $ $Date: 2005/09/09 02:05:15 $
-- *
-- * The Contents of this file are made available subject to
-- * the terms of GNU Lesser General Public License Version 2.1.
-- *
-- *
-- * GNU Lesser General Public License Version 2.1
-- * =============================================
-- * Copyright 2005 by Sun Microsystems, Inc.
-- * 901 San Antonio Road, Palo Alto, CA 94303, USA
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Lesser General Public
-- * License version 2.1, as published by the Free Software Foundation.
-- *
-- * This library 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 for more details.
-- *
-- * You should have received a copy of the GNU Lesser General Public
-- * License along with this library; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-- * MA 02111-1307 USA
-- *
--************************************************************************/
--package com.sun.star.script.framework.provider.javascript;
--
--import com.sun.star.uno.UnoRuntime;
--import com.sun.star.uno.XComponentContext;
--import com.sun.star.lang.XMultiComponentFactory;
--import com.sun.star.lang.XMultiServiceFactory;
--import com.sun.star.lang.XSingleServiceFactory;
--import com.sun.star.frame.XModel;
--import com.sun.star.registry.XRegistryKey;
--import com.sun.star.comp.loader.FactoryHelper;
--import com.sun.star.lang.XTypeProvider;
--import com.sun.star.lang.XServiceInfo;
--import com.sun.star.lang.XInitialization;
--import com.sun.star.uno.AnyConverter;
--import com.sun.star.uno.Type;
--import com.sun.star.uno.Any;
--import com.sun.star.beans.XPropertySet;
--
--import com.sun.star.lang.IllegalArgumentException;
--import com.sun.star.lang.WrappedTargetException;
--import com.sun.star.reflection.InvocationTargetException;
--import com.sun.star.script.CannotConvertException;
--
--import java.io.*;
--import java.util.Vector;
--import java.util.Map;
--import java.net.MalformedURLException;
--import java.net.URL;
--
--import com.sun.star.script.provider.XScriptProvider;
--import com.sun.star.script.provider.XScript;
--import com.sun.star.script.provider.XScriptContext;
--
--import com.sun.star.script.provider.ScriptErrorRaisedException;
--import com.sun.star.script.provider.ScriptExceptionRaisedException;
--import com.sun.star.script.provider.ScriptFrameworkErrorException;
--import com.sun.star.script.provider.ScriptFrameworkErrorType;
--
--import com.sun.star.script.framework.log.LogUtils;
--import com.sun.star.script.framework.provider.ScriptContext;
--import com.sun.star.script.framework.provider.ClassLoaderFactory;
--import com.sun.star.script.framework.provider.ScriptProvider;
--import com.sun.star.script.framework.provider.ScriptEditor;
--import com.sun.star.script.framework.container.ScriptMetaData;
--import com.sun.star.script.framework.log.*;
--
--import org.mozilla.javascript.Context;
--import org.mozilla.javascript.ImporterTopLevel;
--import org.mozilla.javascript.Scriptable;
--import org.mozilla.javascript.JavaScriptException;
--import org.mozilla.javascript.EcmaError;
--
--public class ScriptProviderForJavaScript
--{
-- public static class _ScriptProviderForJavaScript extends ScriptProvider
-- {
-- public _ScriptProviderForJavaScript(XComponentContext ctx)
-- {
-- super(ctx, "JavaScript");
-- }
--
-- public XScript getScript( /*IN*/String scriptURI )
-- throws com.sun.star.uno.RuntimeException,
-- ScriptFrameworkErrorException
-- {
-- ScriptMetaData scriptData = null;
-- try
-- {
-- scriptData = getScriptData( scriptURI );
-- ScriptImpl script = new ScriptImpl( m_xContext, scriptData, m_xModel );
-- return script;
-- }
-- catch ( com.sun.star.uno.RuntimeException re )
-- {
-- throw new ScriptFrameworkErrorException( "Failed to create script object: " + re.getMessage(),
-- null, scriptData.getLanguageName(), language, ScriptFrameworkErrorType.UNKNOWN );
-- }
-- }
--
-- public boolean hasScriptEditor()
-- {
-- return true;
-- }
--
-- public ScriptEditor getScriptEditor()
-- {
-- return ScriptEditorForJavaScript.getEditor();
-- }
-- }
--
-- /**
-- * Returns a factory for creating the service.
-- * This method is called by the <code>JavaLoader</code>
-- * <p>
-- *
-- * @param implName the name of the implementation for which a service is desired
-- * @param multiFactory the service manager to be used if needed
-- * @param regKey the registryKey
-- * @return returns a <code>XSingleServiceFactory</code> for creating
-- * the component
-- * @see com.sun.star.comp.loader.JavaLoader
-- */
-- public static XSingleServiceFactory __getServiceFactory( String implName,
-- XMultiServiceFactory multiFactory,
-- XRegistryKey regKey )
-- {
-- XSingleServiceFactory xSingleServiceFactory = null;
--
-- if ( implName.equals( ScriptProviderForJavaScript._ScriptProviderForJavaScript.class.getName() ) )
-- {
-- xSingleServiceFactory = FactoryHelper.getServiceFactory(
-- ScriptProviderForJavaScript._ScriptProviderForJavaScript.class,
-- "com.sun.star.script.provider.ScriptProviderForJavaScript",
-- multiFactory,
-- regKey );
-- }
--
-- return xSingleServiceFactory;
-- }
--
--
-- /**
-- * Writes the service information into the given registry key.
-- * This method is called by the <code>JavaLoader</code>
-- * <p>
-- *
-- * @param regKey the registryKey
-- * @return returns true if the operation succeeded
-- * @see com.sun.star.comp.loader.JavaLoader
-- */
-- public static boolean __writeRegistryServiceInfo( XRegistryKey regKey )
-- {
-- String impl = "com.sun.star.script.framework.provider.javascript." +
-- "ScriptProviderForJavaScript$_ScriptProviderForJavaScript";
--
-- String service1 = "com.sun.star.script.provider." +
-- "ScriptProvider";
-- String service2 = "com.sun.star.script.provider." +
-- "LanguageScriptProvider";
-- String service3 = "com.sun.star.script.provider." +
-- "ScriptProviderForJavaScript";
-- String service4 = "com.sun.star.script.browse." +
-- "BrowseNode";
--
-- if ( FactoryHelper.writeRegistryServiceInfo(impl, service1, regKey) &&
-- FactoryHelper.writeRegistryServiceInfo(impl, service2, regKey) &&
-- FactoryHelper.writeRegistryServiceInfo(impl, service3, regKey) &&
-- FactoryHelper.writeRegistryServiceInfo(impl, service4, regKey) )
-- {
-- return true;
-- }
-- return false;
-- }
--}
--class ScriptImpl implements XScript
--{
-- private ScriptMetaData metaData;
-- private XComponentContext m_xContext;
-- private XMultiComponentFactory m_xMultiComponentFactory;
-- private XModel m_xModel;
--
-- ScriptImpl( XComponentContext ctx, ScriptMetaData metaData, XModel xModel ) throws com.sun.star.uno.RuntimeException
-- {
-- this.metaData = metaData;
-- this.m_xContext = ctx;
-- this.m_xModel = xModel;
-- try
-- {
-- this.m_xMultiComponentFactory = m_xContext.getServiceManager();
-- }
-- catch ( Exception e )
-- {
-- LogUtils.DEBUG( LogUtils.getTrace( e ) );
-- throw new com.sun.star.uno.RuntimeException(
-- "Error constructing ScriptImpl: [javascript]");
-- }
-- LogUtils.DEBUG("ScriptImpl [javascript] script data = " + metaData );
-- }
--
-- /**
-- * The invoke method of the ScriptProviderForJavaScript runs the
-- * JavaScript script specified in the URI
-- *
-- *
-- *
-- * @param aParams All parameters; pure, out params are
-- * undefined in sequence, i.e., the value
-- * has to be ignored by the callee
-- *
-- * @param aOutParamIndex Out indices
-- *
-- * @param aOutParam Out parameters
-- *
-- * @returns The value returned from the function
-- * being invoked
-- *
-- * @throws ScriptFrameworkErrorException If there is no matching script name
-- *
-- *
-- * @throws InvocationTargetException If the running script throws
-- * an exception this information
-- * is captured and rethrown as
-- * ScriptErrorRaisedException or
-- * ScriptExceptionRaisedException
-- */
--
-- public Object invoke(
-- /*IN*/Object[] params,
-- /*OUT*/short[][] aOutParamIndex,
-- /*OUT*/Object[][] aOutParam )
--
-- throws ScriptFrameworkErrorException, InvocationTargetException
-- {
-- // Initialise the out paramters - not used at the moment
-- aOutParamIndex[0] = new short[0];
-- aOutParam[0] = new Object[0];
--
--
--
-- ClassLoader cl = null;
-- URL sourceUrl = null;
-- try {
-- cl = ClassLoaderFactory.getURLClassLoader( metaData );
-- sourceUrl = metaData.getSourceURL();
-- }
-- catch ( java.net.MalformedURLException mfu )
-- {
-- throw new ScriptFrameworkErrorException(
-- mfu.getMessage(), null,
-- metaData.getLanguageName(), metaData.getLanguage(),
-- ScriptFrameworkErrorType.UNKNOWN );
-- }
-- catch ( com.sun.star.script.framework.provider.NoSuitableClassLoaderException nsc )
-- {
-- // Framework error
-- throw new ScriptFrameworkErrorException(
-- nsc.getMessage(), null,
-- metaData.getLanguageName(), metaData.getLanguage(),
-- ScriptFrameworkErrorType.UNKNOWN );
-- }
-- Context ctxt = null;
--
-- try
-- {
-- String editorURL = sourceUrl.toString();
-- Object result = null;
-- String source = null;
-- ScriptEditorForJavaScript editor =
-- ScriptEditorForJavaScript.getEditor(
-- metaData.getSourceURL() );
--
-- if (editor != null)
-- {
-- editorURL = editor.getURL();
-- result = editor.execute();
-- if ( result != null &&
-- result.getClass().getName().equals( "org.mozilla.javascript.Undefined" ) )
-- {
-- // Always return a string
-- // TODO revisit
-- return Context.toString( result );
-- }
--
-- }
--
-- if (editor != null && editor.isModified() == true)
-- {
-- LogUtils.DEBUG("GOT A MODIFIED SOURCE");
-- source = editor.getText();
-- }
-- else
-- {
-- metaData.loadSource();
-- source = metaData.getSource();
--
-- }
--
-- if ( source == null || source.length() == 0 ) {
-- throw new ScriptFrameworkErrorException(
-- "Failed to read source data for script", null,
-- metaData.getLanguageName(), metaData.getLanguage(),
-- ScriptFrameworkErrorType.UNKNOWN );
-- }
--
-- /* Set the context ClassLoader on the current thread to
-- be our custom ClassLoader. This is the suggested method
-- for setting up a ClassLoader to be used by the Rhino
-- interpreter
-- */
-- if (cl != null) {
-- Thread.currentThread().setContextClassLoader(cl);
-- }
--
-- // Initialize a Rhino Context object
-- ctxt = Context.enter();
--
-- /* The ImporterTopLevel ensures that importClass and
-- importPackage statements work in Javascript scripts
-- Make the XScriptContext available as a global variable
-- to the script
-- */
-- ImporterTopLevel scope = new ImporterTopLevel(ctxt);
--
-- Scriptable jsCtxt = Context.toObject(
-- ScriptContext.createContext(
-- m_xModel, m_xContext,
-- m_xMultiComponentFactory), scope);
-- scope.put("XSCRIPTCONTEXT", scope, jsCtxt);
--
-- Scriptable jsArgs = Context.toObject(params, scope);
-- scope.put("ARGUMENTS", scope, jsArgs);
--
-- result = ctxt.evaluateString(scope,
-- source, "<stdin>", 1, null);
-- result = ctxt.toString(result);
-- return result;
-- }
-- catch (JavaScriptException jse) {
-- LogUtils.DEBUG( "Caught JavaScriptException exception for JavaScript type = " + jse.getClass() );
-- String message = jse.getMessage();
-- //int lineNo = jse.getLineNumber();
-- Object wrap = jse.getValue();
-- LogUtils.DEBUG( "\t message " + message );
-- LogUtils.DEBUG( "\t wrapped type " + wrap.getClass() );
-- LogUtils.DEBUG( "\t wrapped toString " + wrap.toString() );
-- ScriptExceptionRaisedException se = new
-- ScriptExceptionRaisedException( message );
-- se.lineNum = -1;
-- se.language = "JavaScript";
-- se.scriptName = metaData.getLanguageName();
-- se.exceptionType = wrap.getClass().getName();
-- se.language = metaData.getLanguage();
-- LogUtils.DEBUG( "ExceptionRaised exception " );
-- LogUtils.DEBUG( "\t message " + se.getMessage() );
-- LogUtils.DEBUG( "\t lineNum " + se.lineNum );
-- LogUtils.DEBUG( "\t language " + se.language );
-- LogUtils.DEBUG( "\t scriptName " + se.scriptName );
-- raiseEditor( se.lineNum );
-- throw new InvocationTargetException( "JavaScript uncaught exception" + metaData.getLanguageName(), null, se );
-- }
-- catch (Exception ex) {
-- LogUtils.DEBUG("Caught Exception " + ex );
-- LogUtils.DEBUG("rethrowing as ScriptFramework error" );
-- throw new ScriptFrameworkErrorException(
-- ex.getMessage(), null,
-- metaData.getLanguageName(), metaData.getLanguage(),
-- ScriptFrameworkErrorType.UNKNOWN );
-- }
-- finally {
-- if ( ctxt != null )
-- {
-- Context.exit();
-- }
-- }
-- }
--
-- private void raiseEditor( int lineNum )
-- {
-- ScriptEditorForJavaScript editor = null;
-- try
-- {
-- URL sourceUrl = metaData.getSourceURL();
-- editor = ScriptEditorForJavaScript.getEditor( sourceUrl );
-- if ( editor == null )
-- {
-- editor = ScriptEditorForJavaScript.getEditor();
-- editor.edit(
-- ScriptContext.createContext(m_xModel,
-- m_xContext, m_xMultiComponentFactory), metaData );
-- editor = ScriptEditorForJavaScript.getEditor( sourceUrl );
-- }
-- if ( editor != null )
-- {
-- System.out.println("** Have raised IDE for JavaScript, calling indicateErrorLine for line " + lineNum );
-- editor.indicateErrorLine( lineNum );
-- }
-- }
-- catch( Exception ignore )
-- {
-- }
-- }
--}
--
---- scripting/java/com/sun/star/script/framework/provider/javascript/ScriptEditorForJavaScript.java 2005-10-15 13:15:51.843570824 +0200
-+++ /dev/null 2005-03-29 00:33:24.000000000 +0200
-@@ -1,385 +0,0 @@
--/*************************************************************************
-- *
-- * OpenOffice.org - a multi-platform office productivity suite
-- *
-- * $RCSfile: ScriptEditorForJavaScript.java,v $
-- *
-- * $Revision: 1.7 $
-- *
-- * last change: $Author: rt $ $Date: 2005/09/09 02:04:45 $
-- *
-- * The Contents of this file are made available subject to
-- * the terms of GNU Lesser General Public License Version 2.1.
-- *
-- *
-- * GNU Lesser General Public License Version 2.1
-- * =============================================
-- * Copyright 2005 by Sun Microsystems, Inc.
-- * 901 San Antonio Road, Palo Alto, CA 94303, USA
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Lesser General Public
-- * License version 2.1, as published by the Free Software Foundation.
-- *
-- * This library 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 for more details.
-- *
-- * You should have received a copy of the GNU Lesser General Public
-- * License along with this library; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-- * MA 02111-1307 USA
-- *
-- ************************************************************************/
--
--package com.sun.star.script.framework.provider.javascript;
--
--import org.mozilla.javascript.Context;
--import org.mozilla.javascript.Scriptable;
--import org.mozilla.javascript.ImporterTopLevel;
--import org.mozilla.javascript.tools.debugger.Main;
--import org.mozilla.javascript.tools.debugger.ScopeProvider;
--
--import com.sun.star.script.provider.XScriptContext;
--import com.sun.star.script.framework.container.ScriptMetaData;
--import com.sun.star.script.framework.provider.ScriptEditor;
--import com.sun.star.script.framework.log.LogUtils;
--
--import java.io.InputStream;
--import java.io.IOException;
--import java.net.URL;
--
--import java.util.Map;
--import java.util.HashMap;
--
--import javax.swing.JFrame;
--import javax.swing.SwingUtilities;
--import java.awt.event.WindowAdapter;
--import java.awt.event.WindowEvent;
--
--public class ScriptEditorForJavaScript implements ScriptEditor
--{
-- // global ScriptEditorForJavaScript instance
-- private static ScriptEditorForJavaScript theScriptEditorForJavaScript;
--
-- // template for JavaScript scripts
-- private static String JSTEMPLATE;
--
-- static private Main rhinoWindow;
-- private URL scriptURL;
-- // global list of ScriptEditors, key is URL of file being edited
-- private static Map BEING_EDITED = new HashMap();
--
-- static {
-- try {
-- URL url =
-- ScriptEditorForJavaScript.class.getResource("template.js");
--
-- InputStream in = url.openStream();
-- StringBuffer buf = new StringBuffer();
-- byte[] b = new byte[1024];
-- int len = 0;
--
-- while ((len = in.read(b)) != -1) {
-- buf.append(new String(b, 0, len));
-- }
--
-- in.close();
--
-- JSTEMPLATE = buf.toString();
-- }
-- catch (IOException ioe) {
-- JSTEMPLATE = "// JavaScript script";
-- }
-- catch (Exception e) {
-- JSTEMPLATE = "// JavaScript script";
-- }
-- }
--
-- /**
-- * Returns the global ScriptEditorForJavaScript instance.
-- */
-- public static ScriptEditorForJavaScript getEditor()
-- {
-- if (theScriptEditorForJavaScript == null)
-- {
-- synchronized(ScriptEditorForJavaScript.class)
-- {
-- if (theScriptEditorForJavaScript == null)
-- {
-- theScriptEditorForJavaScript =
-- new ScriptEditorForJavaScript();
-- }
-- }
-- }
-- return theScriptEditorForJavaScript;
-- }
--
-- /**
-- * Get the ScriptEditorForJavaScript instance for this URL
-- *
-- * @param url The URL of the script source file
-- *
-- * @return The ScriptEditorForJavaScript associated with
-- * the given URL if one exists, otherwise null.
-- */
-- public static ScriptEditorForJavaScript getEditor(URL url)
-- {
-- return (ScriptEditorForJavaScript)BEING_EDITED.get(url);
-- }
--
-- /**
-- * Returns whether or not the script source being edited in this
-- * ScriptEditorForJavaScript has been modified
-- */
-- public boolean isModified()
-- {
-- return rhinoWindow.isModified( scriptURL );
-- }
--
-- /**
-- * Returns the text being displayed in this ScriptEditorForJavaScript
-- *
-- * @return The text displayed in this ScriptEditorForJavaScript
-- */
-- public String getText()
-- {
-- return rhinoWindow.getText( scriptURL );
-- }
--
-- /**
-- * Returns the Rhino Debugger url of this ScriptEditorForJavaScript
-- *
-- * @return The url of this ScriptEditorForJavaScript
-- */
-- public String getURL()
-- {
-- return scriptURL.toString();
-- }
--
-- /**
-- * Returns the template text for JavaScript scripts
-- *
-- * @return The template text for JavaScript scripts
-- */
-- public String getTemplate()
-- {
-- return JSTEMPLATE;
-- }
--
-- /**
-- * Returns the default extension for JavaScript scripts
-- *
-- * @return The default extension for JavaScript scripts
-- */
-- public String getExtension()
-- {
-- return "js";
-- }
--
-- /**
-- * Opens an editor window for the specified ScriptMetaData.
-- * If an editor window is already open for that data it will be
-- * moved to the front.
-- *
-- * @param metadata The metadata describing the script
-- * @param context The context in which to execute the script
-- *
-- */
-- public void edit(final XScriptContext context, ScriptMetaData entry)
-- {
-- try {
-- String sUrl = entry.getParcelLocation();
-- if ( !sUrl.endsWith( "/" ) )
-- {
-- sUrl += "/";
-- }
-- sUrl += entry.getLanguageName();
-- URL url = entry.getSourceURL();
--
-- // check if there is already an editing session for this script
-- //if (BEING_EDITED.containsKey(url))
-- if ( rhinoWindow != null )
-- {
-- ScriptEditorForJavaScript editor =
-- (ScriptEditorForJavaScript) BEING_EDITED.get(url);
-- if ( editor == null )
-- {
-- editor = new ScriptEditorForJavaScript( context, url );
-- editor.edit( context, entry );
-- }
-- else
-- {
-- rhinoWindow.showScriptWindow( url );
-- }
-- }
-- else
-- {
-- ScriptEditorForJavaScript editor =
-- new ScriptEditorForJavaScript( context, url );
--
-- }
-- rhinoWindow.toFront();
-- }
-- catch ( IOException e )
-- {
-- LogUtils.DEBUG("Caught exception: " + e);
-- LogUtils.DEBUG(LogUtils.getTrace(e));
-- }
-- }
--
-- // Ensures that new instances of this class can only be created using
-- // the factory methods
-- private ScriptEditorForJavaScript()
-- {
-- }
--
-- private ScriptEditorForJavaScript(XScriptContext context, URL url)
-- {
-- initUI();
-- Scriptable scope = getScope( context );
-- this.rhinoWindow.openFile(url, scope, new closeHandler( url ) );
--
--
-- this.scriptURL = url;
-- synchronized( ScriptEditorForJavaScript.class )
-- {
-- BEING_EDITED.put(url, this);
-- }
--
-- }
--
-- /**
-- * Executes the script edited by the editor
-- *
-- */
--
-- public Object execute() throws Exception
-- {
-- rhinoWindow.toFront();
--
-- return this.rhinoWindow.runScriptWindow( scriptURL );
-- }
--
-- /**
-- * Indicates the line where error occured
-- *
-- */
-- public void indicateErrorLine( int lineNum )
-- {
-- this.rhinoWindow.toFront();
-- this.rhinoWindow.highlighLineInScriptWindow( scriptURL, lineNum );
-- }
-- // This code is based on the main method of the Rhino Debugger Main class
-- // We pass in the XScriptContext in the global scope for script execution
-- private void initUI() {
-- try {
-- synchronized ( ScriptEditorForJavaScript.class )
-- {
-- if ( this.rhinoWindow != null )
-- {
-- return;
-- }
--
-- final Main sdb = new Main("Rhino JavaScript Debugger");
-- swingInvoke(new Runnable() {
-- public void run() {
-- sdb.pack();
-- sdb.setSize(640, 640);
-- sdb.setVisible(true);
-- }
-- });
-- sdb.setExitAction(new Runnable() {
-- public void run() {
-- sdb.clearAllBreakpoints();
-- sdb.dispose();
-- shutdown();
-- }
-- });
-- Context.addContextListener(sdb);
-- sdb.setScopeProvider(new ScopeProvider() {
-- public Scriptable getScope() {
-- return org.mozilla.javascript.tools.shell.Main.getScope();
-- }
-- });
-- sdb.addWindowListener( new WindowAdapter() {
-- public void windowClosing(WindowEvent e) {
-- shutdown();
-- }
-- });
-- this.rhinoWindow = sdb;
-- }
-- } catch (Exception exc) {
-- LogUtils.DEBUG( LogUtils.getTrace( exc ) );
-- }
-- }
--
-- private static void swingInvoke(Runnable f) {
-- if (SwingUtilities.isEventDispatchThread()) {
-- f.run();
-- return;
-- }
-- try {
-- SwingUtilities.invokeAndWait(f);
-- } catch (Exception exc) {
-- LogUtils.DEBUG( LogUtils.getTrace( exc ) );
-- }
-- }
--
-- private void shutdown()
-- {
-- // dereference Rhino Debugger window
-- this.rhinoWindow = null;
-- this.scriptURL = null;
-- // remove all scripts from BEING_EDITED
-- synchronized( BEING_EDITED )
-- {
-- java.util.Iterator iter = BEING_EDITED.keySet().iterator();
-- java.util.Vector keysToRemove = new java.util.Vector();
-- while ( iter.hasNext() )
-- {
--
-- URL key = (URL)iter.next();
-- keysToRemove.add( key );
-- }
-- for ( int i=0; i<keysToRemove.size(); i++ )
-- {
-- BEING_EDITED.remove( keysToRemove.elementAt( i ) );
-- }
-- keysToRemove = null;
-- }
--
-- }
-- private Scriptable getScope(XScriptContext xsctxt )
-- {
-- Context ctxt = Context.enter();
-- ImporterTopLevel scope = new ImporterTopLevel(ctxt);
--
-- Scriptable jsCtxt = Context.toObject(xsctxt, scope);
-- scope.put("XSCRIPTCONTEXT", scope, jsCtxt);
--
-- Scriptable jsArgs = Context.toObject(
-- new Object[0], scope);
-- scope.put("ARGUMENTS", scope, jsArgs);
--
-- Context.exit();
-- return scope;
-- }
--
-- class closeHandler implements Runnable
-- {
-- URL url;
-- closeHandler( URL url )
-- {
-- this.url = url;
-- }
-- public void run()
-- {
-- synchronized( BEING_EDITED )
-- {
-- Object o = BEING_EDITED.remove( this.url );
-- }
-- }
-- }
--}
---- scripting/java/build.xml-old 2005-10-15 13:03:27.000000000 +0200
-+++ scripting/java/build.xml 2005-10-15 13:04:25.000000000 +0200
-@@ -59,7 +59,6 @@
- <pathelement location="${solar.jar}/java_uno.jar"/>
- <pathelement location="${solar.jar}/ridl.jar"/>
- <pathelement location="/usr/share/java/bsh.jar"/>
-- <pathelement location="${solar.jar}/js.jar"/>
- <pathelement location="${jardir}"/>
- </path>
-
-@@ -169,19 +168,6 @@
- </fileset>
- </jar>
-
-- <jar jarfile="${jardir}/ScriptProviderForJavaScript.jar"
-- basedir="${jardir}">
-- <manifest>
-- <attribute name="Built-By" value="Sun Microsystems"/>
-- <attribute name="RegistrationClassName"
-- value="com.sun.star.script.framework.provider.javascript.ScriptProviderForJavaScript"/>
-- </manifest>
-- <include name="**/provider/javascript/*.class"/>
-- <fileset dir=".">
-- <include name="**/provider/javascript/*.js"/>
-- </fileset>
-- </jar>
--
- <jar jarfile="${jardir}/ScriptFramework.jar"
- basedir="${jardir}">
- <manifest>
-@@ -254,7 +240,6 @@
- <!-- ====================== Clean Generated Files ===================== -->
- <target name="clean">
- <delete file="${jardir}/ScriptProviderForJava.jar"/>
-- <delete file="${jardir}/ScriptProviderForJavaScript.jar"/>
- <delete file="${jardir}/ScriptProviderForBeanShell.jar"/>
- <delete file="${jardir}/ScriptFramework.jar"/>
- <delete file="${jardir}/office.jar"/>
---- scp2/source/ooo/file_ooo.scp-old 2005-10-16 00:54:49.944255848 +0200
-+++ scp2/source/ooo/file_ooo.scp 2005-10-16 00:56:44.868784664 +0200
-@@ -626,10 +626,6 @@
- #endif
-
- #ifdef SOLAR_JAVA
--STD_JAR_FILE( gid_File_Jar_Js, js )
--#endif
--
--#ifdef SOLAR_JAVA
-
- File gid_File_Jar_Juh
- TXT_FILE_BODY;
-@@ -742,7 +738,6 @@
- UNO_JAR_FILE( gid_File_Jar_Scriptframework, ScriptFramework )
- UNO_JAR_FILE( gid_File_Jar_Scriptproviderforbeanshell, ScriptProviderForBeanShell )
- UNO_JAR_FILE( gid_File_Jar_Scriptproviderforjava, ScriptProviderForJava )
--UNO_JAR_FILE( gid_File_Jar_Scriptproviderforjavascript, ScriptProviderForJavaScript )
- #endif
-
- #ifdef SOLAR_JAVA
---- scripting/prj/build.lst-old 2005-10-16 13:16:18.799921760 +0200
-+++ scripting/prj/build.lst 2005-10-16 13:16:30.053211000 +0200
-@@ -1,4 +1,4 @@
--tc scripting : bridges rdbmaker vcl xmlscript basic sfx2 rhino beanshell javaunohelper NULL
-+tc scripting : bridges rdbmaker vcl xmlscript basic sfx2 beanshell javaunohelper NULL
- tc scripting usr1 - all tc_mkout NULL
- tc scripting\source\provider nmake - all tc_scriptingprovider NULL
- tc scripting\source\basprov nmake - all tc_scriptingbasprov NULL
diff --git a/patches/src680/disable-testtools.diff b/patches/src680/disable-testtools.diff
deleted file mode 100644
index 27e79d689..000000000
--- a/patches/src680/disable-testtools.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- postprocess/prj/build.lst-old 2005-09-09 00:21:59.170645224 +0200
-+++ postprocess/prj/build.lst 2005-09-09 00:06:40.000000000 +0200
-@@ -1,4 +1,4 @@
--po postprocess :: accessibility automation basctl bean BINFILTER:binfilter chart2 configmgr CRASHREP:crashrep dbaccess desktop dtrans embeddedobj embedserv EPM:epm eventattacher extensions extras fileaccess filter forms fpicker hwpfilter io lingucomponent MATHMLDTD:MathMLDTD MSFONTEXTRACT:msfontextract ODK:odk officecfg package padmin psprint_config remotebridges sc scaddins scp2 scripting sd sdk_oo setup_native slideshow starmath sw sysui testshl testshl2 testtools ucb UnoControls unoxml ure wizards xmerge xmlsecurity BITSTREAM_VERA_FONTS:bitstream_vera_fonts DICTIONARIES:dictionaries OOo:pyuno OOo:readlicense_oo SO:top unodevtools NULL
-+po postprocess :: accessibility automation basctl bean BINFILTER:binfilter chart2 configmgr CRASHREP:crashrep dbaccess desktop dtrans embeddedobj embedserv EPM:epm eventattacher extensions extras fileaccess filter forms fpicker hwpfilter io lingucomponent MATHMLDTD:MathMLDTD MSFONTEXTRACT:msfontextract ODK:odk officecfg package padmin psprint_config remotebridges sc scaddins scp2 scripting sd sdk_oo setup_native slideshow starmath sw sysui testshl testshl2 ucb UnoControls unoxml ure wizards xmerge xmlsecurity BITSTREAM_VERA_FONTS:bitstream_vera_fonts DICTIONARIES:dictionaries OOo:pyuno OOo:readlicense_oo SO:top unodevtools NULL
- po postprocess usr1 - all po_mkout NULL
- po postprocess\checkxml nmake - all po_checkxml NULL
- po postprocess\packconfig nmake - all po_packconfig po_checkxml NULL
diff --git a/patches/src680/disable-xmlsearch-and-xmlhelp-jar.diff b/patches/src680/disable-xmlsearch-and-xmlhelp-jar.diff
deleted file mode 100644
index b70a96d4d..000000000
--- a/patches/src680/disable-xmlsearch-and-xmlhelp-jar.diff
+++ /dev/null
@@ -1,17 +0,0 @@
-Index: xmlhelp/prj/build.lst
-===================================================================
-RCS file: /cvs/util/xmlhelp/prj/build.lst,v
-retrieving revision 1.8
-diff -u -u -r1.8 build.lst
---- xmlhelp/prj/build.lst 14 Feb 2002 13:22:16 -0000 1.8
-+++ xmlhelp/prj/build.lst 3 Jun 2005 11:34:12 -0000
-@@ -1,8 +1,7 @@
--xh xmlhelp : ucbhelper XmlSearch SABLOT:sablot jut unoil BERKELEYDB:berkeleydb svtools NULL
-+xh xmlhelp : ucbhelper SABLOT:sablot jut unoil BERKELEYDB:berkeleydb svtools NULL
- xh xmlhelp usr1 - all xh_mkout NULL
- xh xmlhelp\source\helpprovider nmake - all xh_helpprovider NULL
- xh xmlhelp\source\treeview nmake - all xh_treeview NULL
--xh xmlhelp\source\com\sun\star\help nmake - all xh_help NULL
- xh xmlhelp\source\cxxhelp\util nmake - all xh_cutil NULL
- xh xmlhelp\source\cxxhelp\qe nmake - all xh_qe NULL
- xh xmlhelp\source\cxxhelp\db nmake - all xh_db NULL
diff --git a/patches/src680/dont-build-cfgimport-jar.diff b/patches/src680/dont-build-cfgimport-jar.diff
deleted file mode 100644
index fc95640af..000000000
--- a/patches/src680/dont-build-cfgimport-jar.diff
+++ /dev/null
@@ -1,17 +0,0 @@
-Index: org/openoffice/configuration/makefile.mk
-===================================================================
-RCS file: /cvs/util/officecfg/org/openoffice/configuration/makefile.mk,v
-retrieving revision 1.8
-diff -u -u -r1.8 makefile.mk
---- officecfg/org/openoffice/configuration/makefile.mk 26 Mar 2003 13:49:47 -0000 1.8
-+++ officecfg/org/openoffice/configuration/makefile.mk 2 Jun 2005 16:40:07 -0000
-@@ -68,6 +68,9 @@
-
- # --- Settings -----------------------------------------------------
-
-+@all:
-+ @echo "disabled."
-+
- .INCLUDE : settings.mk
-
- EXTRAJARFILES = jaxp.jar parser.jar xt.jar
diff --git a/patches/src680/dont-copy-and-install-stlport.diff b/patches/src680/dont-copy-and-install-stlport.diff
deleted file mode 100644
index 678e8001c..000000000
--- a/patches/src680/dont-copy-and-install-stlport.diff
+++ /dev/null
@@ -1,117 +0,0 @@
-Index: makefile.mk
-===================================================================
-RCS file: /cvs/external/stlport/makefile.mk,v
-retrieving revision 1.31
-diff -u -u -r1.31 makefile.mk
---- stlport/makefile.mk 18 Jul 2005 08:43:21 -0000 1.31
-+++ stlport/makefile.mk 3 Aug 2005 15:37:32 -0000
-@@ -203,7 +203,6 @@
- all :
- @echo " An already available installation of STLport has been chosen in the configure process."
- @echo " Therefore the version provided here does not need to be built in addition."
-- +$(COPY) $(STLPORT4)$/lib$/*stlport*$(DLLPOST) $(DLLDEST)
- .ENDIF
-
- .INCLUDE : set_ext.mk
-Index: source/ure/ure.scp
-===================================================================
-RCS file: /cvs/installation/scp2/source/ure/ure.scp,v
-retrieving revision 1.5
-diff -u -u -r1.5 ure.scp
---- scp2/source/ure/ure.scp 20 Jul 2005 12:31:24 -0000 1.5
-+++ scp2/source/ure/ure.scp 4 Aug 2005 19:16:39 -0000
-@@ -612,23 +612,6 @@
- End
- #endif
-
--#if !defined USE_SYSTEM_STL
--File gid_File_Dl_Stlport
-- TXT_FILE_BODY;
-- Dir = SCP2_URE_DL_DIR;
--#if defined _gcc3
-- Name = SCP2_URE_DL_NORMAL(stlport_gcc);
--#elif defined SOLARIS
-- Name = SCP2_URE_DL_NORMAL(stlport_sunpro);
--#elif defined WNT
-- Name = SCP2_URE_DL_NORMAL(stlport_vc7145);
--#else
--#error "stlport dynamic library: unsupported platform"
--#endif
-- Styles = (PACKED);
--End
--#endif
--
- #if defined _gcc3 && \
- !(defined FREEBSD || defined NETBSD || defined MACOSX \
- || defined SYSTEM_STDLIBS)
-Index: source/ooo/file_library_ooo.scp
-===================================================================
-RCS file: /cvs/installation/scp2/source/ooo/file_library_ooo.scp,v
-retrieving revision 1.138
-diff -u -u -r1.138 file_library_ooo.scp
---- scp2/source/ooo/file_library_ooo.scp 5 Sep 2005 09:09:32 -0000 1.138
-+++ scp2/source/ooo/file_library_ooo.scp 7 Sep 2005 09:46:36 -0000
-@@ -1705,63 +1705,6 @@
-
- SPECIAL_UNO_LIB_FILE(gid_File_Lib_Srtrs1,srtrs1)
-
--#ifndef USE_SYSTEM_STL
--File gid_File_Lib_Stlport
-- TXT_FILE_BODY;
-- Styles = (PACKED);
-- Dir = gid_Dir_Program;
-- #ifdef _STLP_DEBUG
-- #ifdef UNX
-- #if defined(_gcc3) || defined(_GCC)
-- #ifdef IRIX
-- Name = STRING(CONCAT3(libstlport_,gcc_stldebug,.so.4.5));
-- #else
-- Name = STRING(CONCAT3(libstlport_,gcc_stldebug,UNXSUFFIX));
-- #endif
-- #else
-- #ifdef SOLARIS
-- Name = STRING(CONCAT3(libstlport_,sunpro_debug,.so));
-- #else
-- Name = STRING(CONCAT4(libstlport_,COMNAME,_debug,.so));
-- #endif
-- #endif
-- #else
-- #ifdef M1300
-- Name = STRING(CONCAT3(stlport_,vc74_stldebug5,.dll));
-- #elif defined(M1310)
-- Name = STRING(CONCAT3(stlport_,vc71_stldebug45,.dll));
-- #else
-- Name = STRING(CONCAT3(stlport_,vc6_stldebug,.dll));
-- #endif
-- #endif
-- #else
-- #ifdef UNX
-- #if defined(_gcc3) || defined(_GCC)
-- #ifdef IRIX
-- Name = STRING(CONCAT3(libstlport_,gcc,.so.4.5));
-- #else
-- Name = STRING(CONCAT3(libstlport_,gcc,UNXSUFFIX));
-- #endif
-- #else
-- #ifdef SOLARIS
-- Name = STRING(CONCAT3(libstlport_,sunpro,.so));
-- #else
-- Name = STRING(CONCAT3(libstlport_,COMNAME,.so));
-- #endif
-- #endif
-- #else
-- #ifdef M1300
-- Name = STRING(CONCAT3(stlport_,vc745,.dll));
-- #elif defined(M1310)
-- Name = STRING(CONCAT3(stlport_,vc7145,.dll));
-- #else
-- Name = STRING(CONCAT3(stlport_,vc6,.dll));
-- #endif
-- #endif
-- #endif
--End
--#endif
--
- File gid_File_Lib_Stm
- TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
diff --git a/patches/src680/dropline-gnome-splash.diff b/patches/src680/dropline-gnome-splash.diff
deleted file mode 100644
index 081906bed..000000000
--- a/patches/src680/dropline-gnome-splash.diff
+++ /dev/null
@@ -1,44 +0,0 @@
-Index: svx/prj/d.lst
-===================================================================
-RCS file: /cvs/graphics/svx/prj/d.lst,v
-retrieving revision 1.108
-diff -u -r1.108 d.lst
---- svx/prj/d.lst 9 Dec 2004 16:36:45 -0000 1.108
-+++ svx/prj/d.lst 16 Dec 2004 12:43:47 -0000
-@@ -55,7 +55,7 @@
- ..\res\cjkintro.bmp %COMMON_DEST%\pck%_EXT%\starsuite_bitmap\intro.bmp
- ..\res\ofaabout.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\about.bmp
- ..\res\soffice.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\intro.bmp
--..\res\ooointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro.bmp
-+..\res\openintro_DroplineGNOME.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro.bmp
- ..\res\ooonologointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\nologointro.bmp
-
- mkdir: %_DEST%\inc%_EXT%\svx
-
-Index: svx/source/intro/ooo.src
-===================================================================
-RCS file: /cvs/graphics/svx/source/intro/ooo.src,v
-retrieving revision 1.11
-diff -u -r1.11 ooo.src
---- svx/source/intro/ooo.src 7 Jan 2005 09:49:30 -0000 1.11
-+++ svx/source/intro/ooo.src 1 Feb 2005 16:48:49 -0000
-@@ -48,8 +48,8 @@
- #include "svxids.hrc"
- #include "intro.hrc"
-
--#ifdef BUILD_SPECIAL
--#define OOO_VENDOR "Sun Microsystems Inc."
-+#if 1
-+#define OOO_VENDOR "Dropline GNOME"
- #else
- //#define OOO_VENDOR "my company"
- #endif
-@@ -56,7 +56,7 @@
-
- Bitmap RID_DEFAULT_ABOUT_BMP_LOGO
- {
-- File = "openabout.bmp" ;
-+ File = "openabout_DroplineGNOME.bmp" ;
- };
-
- String RID_APPTITLE
diff --git a/patches/src680/email-attachment-underscore-zero.diff b/patches/src680/email-attachment-underscore-zero.diff
deleted file mode 100644
index ffbb3c404..000000000
--- a/patches/src680/email-attachment-underscore-zero.diff
+++ /dev/null
@@ -1,38 +0,0 @@
---- sfx2/source/dialog/mailmodel.cxx 2005-03-10 13:10:16.914719560 +0530
-+++ sfx2/source/dialog/mailmodel.cxx 2005-03-10 13:35:27.835328771 +0530
-@@ -290,12 +290,10 @@
- pExt = new String( String::CreateFromAscii( "." ) + (OUString) aFileObj.getExtension() );
- aFileObj.removeExtension();
- aLeadingStr = aFileObj.getName( INetURLObject::LAST_SEGMENT, true, INetURLObject::DECODE_WITH_CHARSET );
-- aLeadingStr += String::CreateFromAscii( "_" );
- }
- else
- {
- aLeadingStr = aFileObj.getName( INetURLObject::LAST_SEGMENT, true, INetURLObject::DECODE_WITH_CHARSET );
-- aLeadingStr += String::CreateFromAscii( "_" );
- }
- }
-
-@@ -399,12 +397,10 @@
- pExt = new String( aExtension );
- aFileObj.removeExtension();
- aLeadingStr = aFileObj.getName( INetURLObject::LAST_SEGMENT, true, INetURLObject::DECODE_WITH_CHARSET );
-- aLeadingStr += String::CreateFromAscii( "_" );
- }
- else
- {
- aLeadingStr = aFileObj.getName( INetURLObject::LAST_SEGMENT, true, INetURLObject::DECODE_WITH_CHARSET );
-- aLeadingStr += String::CreateFromAscii( "_" );
- }
- }
-
---- unotools/source/ucbhelper/tempfile.cxx 2005-03-10 13:10:05.114485790 +0530
-+++ unotools/source/ucbhelper/tempfile.cxx 2005-03-10 13:11:08.509997758 +0530
-@@ -314,6 +314,7 @@
- for ( sal_Int32 i=0;; i++ )
- {
- String aTmp( aName );
-+ if (i)
- aTmp += String::CreateFromInt32( i );
- if ( pExtension )
- aTmp += *pExtension;
diff --git a/patches/src680/evo-addrbook.diff b/patches/src680/evo-addrbook.diff
deleted file mode 100644
index 4360e7632..000000000
--- a/patches/src680/evo-addrbook.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: officecfg/registry/data/org/openoffice/Office/DataAccess.xcu
-===================================================================
-RCS file: /cvs/util/officecfg/registry/data/org/openoffice/Office/DataAccess.xcu,v
-retrieving revision 1.14
-diff -u -p -u -r1.14 DataAccess.xcu
---- officecfg/registry/data/org/openoffice/Office/DataAccess.xcu 25 Jul 2003 08:26:19 -0000 1.14
-+++ officecfg/registry/data/org/openoffice/Office/DataAccess.xcu 10 Mar 2004 15:48:18 -0000
-@@ -1539,7 +1539,7 @@
- <node oor:name="com.sun.star.comp.sdbc.evoab.OEvoabDriver">
- <node oor:name="EvolutionPreferences">
- <prop oor:name="FullPathExportingCommand">
-- <value>file:///usr/share/evolution/*/evolution-addressbook-export</value>
-+ <value>evolution-addressbook-export</value>
- </prop>
- </node>
- <node oor:name="ColumnAliases">
diff --git a/patches/src680/evo2-fixes-m109.diff b/patches/src680/evo2-fixes-m109.diff
deleted file mode 100644
index 257b6ecc5..000000000
--- a/patches/src680/evo2-fixes-m109.diff
+++ /dev/null
@@ -1,832 +0,0 @@
-diff -u -r connectivity/source/drivers/evoab2/EApi.cxx evoab1.5/EApi.cxx
---- connectivity/source/drivers/evoab2/EApi.cxx 2005-06-09 15:09:20.000000000 +0100
-+++ connectivity/source/drivers/evoab2/EApi.cxx 2005-06-15 10:20:27.000000000 +0100
-@@ -62,7 +62,7 @@
- #include <rtl/ustring.hxx>
- #include <osl/module.h>
- #include <stdio.h>
--#define _EVOLUTION_ALREADY_DEFINED_ 1
-+#define DECLARE_FN_POINTERS 1
- #ifndef _CONNECTIVITY_EVOAB_EVOLUTION_API_HXX_
- #include "EApi.h"
- #endif
-@@ -82,6 +83,8 @@
- const char *sym_name;
- SymbolFunc *ref_value;
- } aApiMap[] = {
-+ SYM_MAP( e_contact_field_name ),
-+ SYM_MAP( e_contact_get ),
- SYM_MAP( e_contact_get_type ),
- SYM_MAP( e_contact_field_id ),
- SYM_MAP( e_source_peek_name ),
-@@ -136,8 +139,10 @@
- SAL_LOADMODULE_DEFAULT );
- if( aModule)
- {
-- if ( tryLink( aModule, eBookLibNames[ j ] ) )
-+ if ( tryLink( aModule, eBookLibNames[ j ] ) ) {
-+ if (j==1) bIsEVO_2_2 = true;
- return true;
-+ }
- osl_unloadModule( aModule );
- }
- }
-Only in evoab1.5: EApi.cxx.orig
-diff -u -r connectivity/source/drivers/evoab2/EApi.h connectivity/source/drivers/evoab2/EApi.h
---- connectivity/source/drivers/evoab2/EApi.h 2005-06-09 15:09:34.000000000 +0100
-+++ connectivity/source/drivers/evoab2/EApi.h 2005-06-15 10:20:27.000000000 +0100
-@@ -77,52 +77,42 @@
- // We attempt to define a minimum API that we use:
-
- // e-contact.h
-+#ifdef DECLARE_FN_POINTERS
-+#define EAPI_EXTERN
-+#else
-+#define EAPI_EXTERN extern
-+#endif
-+
-+
-+EAPI_EXTERN bool bIsEVO_2_2;
- typedef void EContact;
- #define E_CONTACT(a) ((EContact *)(a))
- #define E_TYPE_CONTACT (e_contact_get_type())
- typedef int EContactField;
-
-+EAPI_EXTERN const char *(*e_contact_field_name) ( EContactField field_id);
-+EAPI_EXTERN gpointer (*e_contact_get) (EContact *contact, EContactField field_id);
-+EAPI_EXTERN const gpointer (*e_contact_get_const) (EContact *contact, EContactField field_id);
- // e-source.h
- typedef void ESource;
- #define E_SOURCE(a) ((ESource *)(a))
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--const char *(*e_source_peek_name) (ESource *source);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--const gchar *(*e_source_get_property) (ESource *source,
-+EAPI_EXTERN const char *(*e_source_peek_name) (ESource *source);
-+EAPI_EXTERN const gchar *(*e_source_get_property) (ESource *source,
- const gchar *property);
-
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--GType (*e_contact_get_type) (void);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--EContactField (*e_contact_field_id) (const char *field_name);
-+EAPI_EXTERN GType (*e_contact_get_type) (void);
-+EAPI_EXTERN EContactField (*e_contact_field_id) (const char *field_name);
-
- // e-source-list.h
- typedef void ESourceList;
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--GSList *(*e_source_list_peek_groups) (ESourceList *list);
-+EAPI_EXTERN GSList *(*e_source_list_peek_groups) (ESourceList *list);
-
- // e-source-group.h
- typedef void ESourceGroup;
- #define E_SOURCE_GROUP(a) ((ESourceGroup *)(a))
-
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--GSList *(*e_source_group_peek_sources) (ESourceGroup *group);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--const char *(*e_source_group_peek_base_uri) (ESourceGroup *group);
-+EAPI_EXTERN GSList *(*e_source_group_peek_sources) (ESourceGroup *group);
-+EAPI_EXTERN const char *(*e_source_group_peek_base_uri) (ESourceGroup *group);
- // e-book.h
- typedef enum {
- E_BOOK_QUERY_IS,
-@@ -134,76 +124,53 @@
- typedef void EBook;
- typedef void EBookQuery;
-
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--EBook *(*e_book_new) (ESource *source,
-- GError **error);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--gboolean (*e_book_open) (EBook *book,
-- gboolean only_if_exists,
-- GError **error);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--const char *(*e_book_get_uri) (EBook *book);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--ESource *(*e_book_get_source) (EBook *book);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--gboolean (*e_book_get_addressbooks) (ESourceList **addressbook_sources,
-- GError **error);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--gboolean (*e_book_get_contacts) (EBook *book,
-- EBookQuery *query,
-- GList **contacts,
-- GError **error);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--gboolean (*e_book_authenticate_user) (EBook *book,
-- const char *user,
-- const char *passwd,
-- const char *auth_method,
-- GError **error);
-+EAPI_EXTERN EBook *(*e_book_new) (ESource *source,
-+ GError **error);
-+
-+EAPI_EXTERN gboolean (*e_book_open) (EBook *book,
-+ gboolean only_if_exists,
-+ GError **error);
-+
-+EAPI_EXTERN const char *(*e_book_get_uri) (EBook *book);
-+EAPI_EXTERN ESource *(*e_book_get_source)(EBook *book);
-+
-+EAPI_EXTERN gboolean (*e_book_get_addressbooks) (ESourceList **addressbook_sources,
-+ GError **error);
-+
-+EAPI_EXTERN gboolean (*e_book_get_contacts) (EBook *book,
-+ EBookQuery *query,
-+ GList **contacts,
-+ GError **error);
-+
-+EAPI_EXTERN gboolean (*e_book_authenticate_user) (EBook *book,
-+ const char *user,
-+ const char *passwd,
-+ const char *auth_method,
-+ GError **error);
-
- // e-book-query.h
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--EBookQuery* (*e_book_query_field_exists) (EContactField field);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--EBookQuery* (*e_book_query_field_test) (EContactField field,
-- EBookQueryTest test,
-- const char *value);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--EBookQuery* (*e_book_query_and) (int nqs, EBookQuery **qs, gboolean unref);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--EBookQuery* (*e_book_query_or) (int nqs, EBookQuery **qs, gboolean unref);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--EBookQuery* (*e_book_query_not) (EBookQuery *q, gboolean unref);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--void (*e_book_query_unref) (EBookQuery *q);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--char* (*e_book_query_to_string) (EBookQuery *q);
-+EAPI_EXTERN EBookQuery* (*e_book_query_field_exists) (EContactField field);
-+EAPI_EXTERN EBookQuery* (*e_book_query_field_test) (EContactField field,
-+ EBookQueryTest test,
-+ const char *value);
-+EAPI_EXTERN EBookQuery* (*e_book_query_and) (int nqs, EBookQuery **qs, gboolean unref);
-+EAPI_EXTERN EBookQuery* (*e_book_query_or) (int nqs, EBookQuery **qs, gboolean unref);
-+EAPI_EXTERN EBookQuery* (*e_book_query_not) (EBookQuery *q, gboolean unref);
-+EAPI_EXTERN void (*e_book_query_unref) (EBookQuery *q);
-+EAPI_EXTERN char* (*e_book_query_to_string) (EBookQuery *q);
-+
-+typedef struct {
-+ char *address_format; /* the two letter country code that
-+ determines the format/meaning of the
-+ following fields */
-+ char *po;
-+ char *ext;
-+ char *street;
-+ char *locality;
-+ char *region;
-+ char *code;
-+ char *country;
-+} EContactAddress;
- G_END_DECLS
- #endif
-+
-
-diff -u -r connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx
---- connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx 2005-06-09 15:10:29.000000000 +0100
-+++ connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx 2005-06-15 10:20:27.000000000 +0100
-@@ -115,129 +115,174 @@
- static sal_Int32 const s_nNULLABLE = 1;
- static sal_Int32 const s_nCHAR_OCTET_LENGTH = 65535;
-
--static GParamSpec **pFields = NULL;
--static guint nFields = 0;
-+ static ColumnProperty **pFields=NULL;
-+ static guint nFields = 0;
-
--static const char *pBlackList[] = {
-- "id",
-- "list-show-addresses"
--};
--
--static void
--initFields()
--{
-- if( !pFields )
-- {
-- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
-- if( !pFields )
-- {
-- guint nProps;
-- GParamSpec **pProps;
-- GParamSpec **pToBeFields;
-- pProps = g_object_class_list_properties
-- ( (GObjectClass *) g_type_class_ref( E_TYPE_CONTACT ),
-- &nProps );
-- pToBeFields = g_new0( GParamSpec *, nProps );
--
-- for ( guint i = 0; i < nProps; i++ )
-- {
-- switch (pProps[i]->value_type)
-- {
-- case G_TYPE_STRING:
-- case G_TYPE_BOOLEAN:
-- {
-- bool bAdd = true;
-- const char *pName = g_param_spec_get_name( pProps[i] );
-- for (int j = 0; j < G_N_ELEMENTS( pBlackList ); j++ )
-- {
-- if( !strcmp( pBlackList[j], pName ) )
-- {
-- bAdd = false;
-- break;
-- }
-- }
-- if( bAdd )
-- pToBeFields[ nFields++ ] = g_param_spec_ref( pProps[i] );
-- break;
-- }
-- default:
-- break;
-- }
-- }
-- pFields = pToBeFields;
-- }
-- }
--}
--
--guint
--getFieldCount()
--{
-- initFields();
-- return nFields;
--}
--
--const GParamSpec *
--getField(guint n)
--{
-- initFields();
-- if( n < nFields )
-- return pFields[n];
-- else
-- return NULL;
--}
--
--sal_Int32
--getFieldType( sal_Int32 nCol )
--{
-- sal_Int32 nType = DataType::VARCHAR;
-- initFields();
-- if (nCol >= 0 && nCol < nFields )
-- {
-- if( pFields[nCol]->value_type == G_TYPE_STRING )
-- nType = DataType::VARCHAR;
-- else
-- nType = DataType::BIT;
-- }
-- return nType;
--}
-+ static const char *pBlackList[] =
-+ {
-+ "id",
-+ "list-show-addresses",
-+ "address-label-home",
-+ "address-label-work",
-+ "address-label-other"
-+ };
-+
-+ static void
-+ splitColumn (ColumnProperty **pToBeFields)
-+ {
-+ for (int i = 0; i < OTHER_ZIP; i++)
-+ {
-+ pToBeFields[nFields] = g_new0(ColumnProperty,1);
-+ pToBeFields[nFields]->bIsSplittedValue = true;
-+ pToBeFields[nFields]->pField = g_param_spec_ref(g_param_spec_string (evo_addr[i].pColumnName,evo_addr[i].pColumnName,"",NULL,G_PARAM_WRITABLE));
-+ nFields++;
-+ }
-+ }
-+
-+ static void
-+ initFields()
-+ {
-+ if( !pFields )
-+ {
-+ ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
-+ if( !pFields )
-+ {
-+ guint nProps;
-+ ColumnProperty **pToBeFields;
-+ GParamSpec **pProps;
-+ nFields = 0;
-+ pProps = g_object_class_list_properties
-+ ( (GObjectClass *) g_type_class_ref( E_TYPE_CONTACT ),
-+ &nProps );
-+ pToBeFields = g_new0(ColumnProperty *, (nProps + OTHER_ZIP)/* new column(s)*/ );
-+ for ( guint i = 0; i < nProps; i++ )
-+ {
-+ switch (pProps[i]->value_type)
-+ {
-+ case G_TYPE_STRING:
-+ case G_TYPE_BOOLEAN:
-+ {
-+ bool bAdd = true;
-+ const char *pName = g_param_spec_get_name( pProps[i] );
-+ for (int j = 0; j < G_N_ELEMENTS( pBlackList ); j++ )
-+ {
-+ if( !strcmp( pBlackList[j], pName ) )
-+ {
-+ bAdd = false;
-+ break;
-+ }
-+ }
-+ if( bAdd )
-+ {
-+ pToBeFields[nFields]= g_new0(ColumnProperty,1);
-+ pToBeFields[nFields]->bIsSplittedValue=false;
-+ pToBeFields[ nFields++ ]->pField = g_param_spec_ref( pProps[i] );
-+ }
-+ break;
-+ }
-+ default:
-+ break;
-+ }
-+ }
-+
-+ splitColumn(pToBeFields);
-+ pFields = pToBeFields;
-+ }
-+ }
-+ }
-+
-+
-+ guint
-+ getFieldCount()
-+ {
-+ initFields();
-+ return nFields;
-+ }
-+
-+ const ColumnProperty *
-+ getField(guint n)
-+ {
-+ initFields();
-+ if( n < nFields )
-+ return pFields[n];
-+ else
-+ return NULL;
-+ }
-+
-+ sal_Int32
-+ getFieldType( sal_Int32 nCol )
-+ {
-+ sal_Int32 nType = DataType::VARCHAR;
-+ initFields();
-+ if (nCol >= 0 && nCol < nFields )
-+ {
-+ if( ((GParamSpec *)pFields[nCol]->pField)->value_type == G_TYPE_STRING )
-+ nType = DataType::VARCHAR;
-+ else
-+ nType = DataType::BIT;
-+ }
-+ return nType;
-+ }
-+
-+ rtl::OUString
-+ getFieldTypeName( sal_Int32 nCol )
-+ {
-+ switch( getFieldType( nCol ) )
-+ {
-+ case DataType::BIT:
-+ return ::rtl::OUString::createFromAscii( "BIT" );
-+ case DataType::VARCHAR:
-+ return ::rtl::OUString::createFromAscii( "VARCHAR" );
-+ default:
-+ break;
-+ }
-+ return ::rtl::OUString();
-+ }
-+
-+ rtl::OUString
-+ getFieldName( sal_Int32 nCol )
-+ {
-+ const GParamSpec *pSpec = getField( nCol )->pField;
-+ rtl::OUString aName;
-+ initFields();
-
--rtl::OUString
--getFieldTypeName( sal_Int32 nCol )
--{
-- switch( getFieldType( nCol ) )
-- {
-- case DataType::BIT:
-- return ::rtl::OUString::createFromAscii( "BIT" );
-- case DataType::VARCHAR:
-- return ::rtl::OUString::createFromAscii( "VARCHAR" );
-- default:
-- break;
-- }
-- return ::rtl::OUString();
--}
-+ if( pSpec )
-+ aName = rtl::OStringToOUString( g_param_spec_get_name( ( GParamSpec * )pSpec ),
-+ RTL_TEXTENCODING_UTF8 );
-+ aName = aName.replace( '-', '_' );
-+ return aName;
-+ }
-+
-+ void
-+ free_column_resources()
-+ {
-+ for (int i=nFields-1;i > 0;i--)
-+ {
-+ if (pFields && pFields[i] )
-+ {
-+ if (pFields[i]->pField)
-+ g_param_spec_unref(pFields[i]->pField);
-+ g_free(pFields[i]);
-+ }
-+ }
-+ if(pFields)
-+ {
-+ g_free(pFields);
-+ pFields=NULL;
-+ }
-+
-+ }
-
--rtl::OUString
--getFieldName( sal_Int32 nCol )
--{
-- const GParamSpec *pSpec = getField( nCol );
-- rtl::OUString aName;
-
-- if( pSpec )
-- aName = rtl::OStringToOUString( g_param_spec_get_name( ( GParamSpec * )pSpec ),
-- RTL_TEXTENCODING_UTF8 );
-- aName = aName.replace( '-', '_' );
-- return aName;
-+ }
- }
-
-- }
--}
-
- OEvoabDatabaseMetaData::OEvoabDatabaseMetaData(OEvoabConnection* _pCon)
- : ::connectivity::ODatabaseMetaDataBase(_pCon)
- ,m_pConnection(_pCon)
- {
- OSL_ENSURE(m_pConnection,"OEvoabDatabaseMetaData::OEvoabDatabaseMetaData: No connection set!");
-- //construct();
- }
- void OEvoabDatabaseMetaData::construct()
- {
-@@ -298,7 +343,7 @@
- aRow[5] = new ORowSetValueDecorator( static_cast<sal_Int16>( getFieldType( i ) ) );
- aRow[6] = new ORowSetValueDecorator( getFieldTypeName( i ) );
-
-- OSL_TRACE( " ColumnName = '%s'", g_param_spec_get_name( pFields[i] ) );
-+ OSL_TRACE( " ColumnName = '%s'", g_param_spec_get_name( pFields[i]->pField ) );
- // COLUMN_NAME
- aRow[4] = new ORowSetValueDecorator( getFieldName( i ) );
- // ORDINAL_POSITION
-Only in evoab1.5: NDatabaseMetaData.cxx.orig
-diff -u -r connectivity/source/drivers/evoab2/NDatabaseMetaData.hxx connectivity/source/drivers/evoab2/NDatabaseMetaData.hxx
---- connectivity/source/drivers/evoab2/NDatabaseMetaData.hxx 2005-06-09 15:10:46.000000000 +0100
-+++ connectivity/source/drivers/evoab2/NDatabaseMetaData.hxx 2005-06-15 10:20:27.000000000 +0100
-@@ -86,13 +84,37 @@
- //**************************************************************
- //************ Class: OEvoabDatabaseMetaData
- //**************************************************************
-+ typedef struct{
-+ gboolean bIsSplittedValue;
-+ GParamSpec *pField;
-+ }ColumnProperty;
-+
-+ typedef enum {
-+ DEFAULT_ADDR_LINE1=1,DEFAULT_ADDR_LINE2,DEFAULT_CITY,DEFAULT_STATE,DEFAULT_COUNTRY,DEFAULT_ZIP,
-+ WORK_ADDR_LINE1,WORK_ADDR_LINE2,WORK_CITY,WORK_STATE,WORK_COUNTRY,WORK_ZIP,
-+ HOME_ADDR_LINE1,HOME_ADDR_LINE2,HOME_CITY,HOME_STATE,HOME_COUNTRY,HOME_ZIP,
-+ OTHER_ADDR_LINE1,OTHER_ADDR_LINE2,OTHER_CITY,OTHER_STATE,OTHER_COUNTRY,OTHER_ZIP
-+ }ColumnNumber;
-+
-+ typedef struct {
-+ const gchar *pColumnName;
-+ ColumnNumber value;
-+ }SplitEvoColumns;
-
-- const GParamSpec *getField(guint n);
-- guint getFieldCount() G_GNUC_CONST;
-- sal_Int32 getFieldType(sal_Int32 nCol) G_GNUC_CONST;
-+ static SplitEvoColumns evo_addr[] = {
-+ {"addr-line1",DEFAULT_ADDR_LINE1},{"addr-line2",DEFAULT_ADDR_LINE2},{"city",DEFAULT_CITY},{"state",DEFAULT_STATE},{"country",DEFAULT_COUNTRY},{"zip",DEFAULT_ZIP},
-+ {"work-addr-line1",WORK_ADDR_LINE1},{"work-addr-line2",WORK_ADDR_LINE2},{"work-city",WORK_CITY},{"work-state",WORK_STATE},{"work-country",WORK_COUNTRY},{"work-zip",WORK_ZIP},
-+ {"home-addr-line1",HOME_ADDR_LINE1},{"home-addr-line2",HOME_ADDR_LINE2},{"home-addr-City",HOME_CITY},{"home-state",HOME_STATE},{"home-country",HOME_COUNTRY},{"home-zip",HOME_ZIP},
-+ {"other-addr-line1",OTHER_ADDR_LINE1},{"other-addr-line2",OTHER_ADDR_LINE2},{"other-addr-city",OTHER_CITY},{"other-addr-state",OTHER_STATE},{"other-addr-country",OTHER_COUNTRY},{"other-addr-zip",OTHER_ZIP}
-+ };
-+
-+ const ColumnProperty *getField(guint n);
-+ guint getFieldCount() G_GNUC_CONST;
-+ sal_Int32 getFieldType(sal_Int32 nCol) G_GNUC_CONST;
- rtl::OUString getFieldTypeName(sal_Int32 nCol) G_GNUC_CONST;
-- rtl::OUString getFieldName(sal_Int32 nCol) G_GNUC_CONST;
--
-+ rtl::OUString getFieldName(sal_Int32 nCol) G_GNUC_CONST;
-+
-+ void free_column_resources();
- class OEvoabDatabaseMetaData : public ODatabaseMetaDataBase
- {
- OEvoabConnection* m_pConnection;
-diff -u -r connectivity/source/drivers/evoab2/NPreparedStatement.cxx connectivity/source/drivers/evoab2/NPreparedStatement.cxx
---- connectivity/source/drivers/evoab2/NPreparedStatement.cxx 2005-06-09 15:11:45.000000000 +0100
-+++ connectivity/source/drivers/evoab2/NPreparedStatement.cxx 2005-06-15 10:20:27.000000000 +0100
-@@ -147,9 +147,8 @@
- ::osl::MutexGuard aGuard( m_aMutex );
- checkDisposed(OStatement_BASE::rBHelper.bDisposed);
-
--
-+ free_column_resources();
- // Reset last warning message
--
- try {
- clearWarnings ();
- OStatement_BASE2::close();
-@@ -158,8 +157,6 @@
- // If we get an error, ignore
- }
-
-- // Remove this Statement object from the Connection object's
-- // list
- }
- // -------------------------------------------------------------------------
-
-diff -u -r connectivity/source/drivers/evoab2/NResultSet.cxx connectivity/source/drivers/evoab2/NResultSet.cxx
---- connectivity/source/drivers/evoab2/NResultSet.cxx 2005-06-09 15:12:07.000000000 +0100
-+++ connectivity/source/drivers/evoab2/NResultSet.cxx 2005-06-15 10:20:27.000000000 +0100
-@@ -315,7 +315,7 @@
- ::osl::MutexGuard aGuard(m_aMutex);
-
- m_pStatement = NULL;
-- m_xMetaData = NULL;
-+ m_xMetaData = NULL;
- }
- // -------------------------------------------------------------------------
- Any SAL_CALL OEvoabResultSet::queryInterface( const Type & rType ) throw(RuntimeException)
-@@ -336,25 +336,167 @@
- return ::comphelper::concatSequences(aTypes.getTypes(),OResultSet_BASE::getTypes());
- }
-
-+static int
-+whichAddress(int value)
-+{
-+ int fieldEnum;
-+ switch (value)
-+ {
-+ case HOME_ADDR_LINE1:
-+ case HOME_ADDR_LINE2:
-+ case HOME_CITY:
-+ case HOME_STATE:
-+ case HOME_COUNTRY:
-+ case HOME_ZIP:
-+ bIsEVO_2_2 ? fieldEnum=89:fieldEnum=88/*E_CONTACT_ADDRESS_HOME*/;break;
-+ case WORK_ADDR_LINE1:
-+ case WORK_ADDR_LINE2:
-+ case WORK_CITY:
-+ case WORK_STATE:
-+ case WORK_COUNTRY:
-+ case WORK_ZIP:
-+ bIsEVO_2_2 ? fieldEnum = 90:fieldEnum=89/*E_CONTACT_ADDRESS_WORK*/;break;
-+ case OTHER_ADDR_LINE1:
-+ case OTHER_ADDR_LINE2:
-+ case OTHER_CITY:
-+ case OTHER_STATE:
-+ case OTHER_COUNTRY:
-+ case OTHER_ZIP:
-+ bIsEVO_2_2 ? fieldEnum=91:fieldEnum= 90/*E_ CONTACT_ADDRESS_OTHER*/; break;
-+ default: fieldEnum=89;
-+ }
-+ return fieldEnum;
-+}
-+
-+/*
-+* This function decides the default column values based on the first field of EContactAddress.
-+* The search order is Work->Home->other(defaults).
-+*/
-+static EContactAddress *
-+getDefaultContactAddress(EContact *pContact,int *value)
-+{
-+ EContactAddress *ec = (EContactAddress *)e_contact_get(pContact,whichAddress(WORK_ADDR_LINE1));
-+ if ( ec && (strlen(ec->street)>0) )
-+ {
-+ *value= *value +WORK_ADDR_LINE1 -1;
-+ return ec;
-+ }
-+ else
-+ {
-+ ec = (EContactAddress *)e_contact_get(pContact,whichAddress(HOME_ADDR_LINE1));
-+ if ( ec && (strlen(ec->street)>0) )
-+ {
-+ *value=*value+HOME_ADDR_LINE1-1;
-+ return ec;
-+ }
-+ }
-+
-+ *value=*value+OTHER_ADDR_LINE1-1;
-+ return (EContactAddress *)e_contact_get(pContact,whichAddress(OTHER_ADDR_LINE1));
-+}
-+
-+static EContactAddress*
-+getContactAddress(EContact *pContact, int * address_enum)
-+{
-+ EContactAddress *ec = NULL;
-+ switch (*address_enum) {
-+
-+ case DEFAULT_ADDR_LINE1:
-+ case DEFAULT_ADDR_LINE2:
-+ case DEFAULT_CITY:
-+ case DEFAULT_STATE:
-+ case DEFAULT_COUNTRY:
-+ case DEFAULT_ZIP:
-+ ec = getDefaultContactAddress(pContact,address_enum);break;
-+ default:
-+ ec = (EContactAddress *)e_contact_get(pContact,whichAddress(*address_enum));
-+ }
-+ return ec;
-+}
-+
-+static bool
-+handleSplitAddress(EContact *pContact,GValue *pStackValue,int value)
-+{
-+
-+ EContactAddress *ec = getContactAddress(pContact,&value) ;
-+
-+ if (ec==NULL)
-+ return true;
-+
-+ switch (value) {
-+ case WORK_ADDR_LINE1:
-+ g_value_set_string(pStackValue,ec->street ); break;
-+ case WORK_ADDR_LINE2:
-+ g_value_set_string(pStackValue,ec->po ); break;
-+ case WORK_CITY:
-+ g_value_set_string(pStackValue,ec->locality ); break;
-+ case WORK_STATE:
-+ g_value_set_string(pStackValue,ec->region ); break;
-+ case WORK_COUNTRY:
-+ g_value_set_string(pStackValue,ec->country ); break;
-+ case WORK_ZIP:
-+ g_value_set_string(pStackValue,ec->code ); break;
-+
-+ case HOME_ADDR_LINE1:
-+ g_value_set_string(pStackValue,ec->street ); break;
-+ case HOME_ADDR_LINE2:
-+ g_value_set_string(pStackValue,ec->po ); break;
-+ case HOME_CITY:
-+ g_value_set_string(pStackValue,ec->locality ); break;
-+ case HOME_STATE:
-+ g_value_set_string(pStackValue,ec->region ); break;
-+ case HOME_COUNTRY:
-+ g_value_set_string(pStackValue,ec->country ); break;
-+ case HOME_ZIP:
-+ g_value_set_string(pStackValue,ec->code ); break;
-+
-+ case OTHER_ADDR_LINE1:
-+ g_value_set_string(pStackValue,ec->street ); break;
-+ case OTHER_ADDR_LINE2:
-+ g_value_set_string(pStackValue,ec->po ); break;
-+ case OTHER_CITY:
-+ g_value_set_string(pStackValue,ec->locality ); break;
-+ case OTHER_STATE:
-+ g_value_set_string(pStackValue,ec->region ); break;
-+ case OTHER_COUNTRY:
-+ g_value_set_string(pStackValue,ec->country ); break;
-+ case OTHER_ZIP:
-+ g_value_set_string(pStackValue,ec->code ); break;
-+
-+ }
-+
-+return false;
-+}
- // -------------------------------------------------------------------------
- // XRow Interface
-
- bool
- OEvoabResultSet::getValue( sal_Int32 nColumnNum, GType nType, GValue *pStackValue)
- {
-- const GParamSpec *pSpec = evoab::getField (nColumnNum - 1);
-+ const ColumnProperty * pSpecs = evoab::getField (nColumnNum - 1);
-+ GParamSpec *pSpec = pSpecs->pField;
-+ gboolean bIsSplittedColumn=pSpecs->bIsSplittedValue;
- EContact *pContact = getCur();
--
-+
- m_bWasNull = true;
-- if (!pSpec || !pContact)
-+ if (!pSpec || !pContact) {
- return false;
--
-+ }
- if (G_PARAM_SPEC_VALUE_TYPE (pSpec) != nType)
- {
- g_warning ("Wrong type");
- return false;
- }
- g_value_init (pStackValue, nType);
-+ if (bIsSplittedColumn) {
-+ for (int i=0;i<OTHER_ZIP;i++) {
-+ if (0==strcmp(g_param_spec_get_name(( GParamSpec * )pSpec),evo_addr[i].pColumnName)) {
-+ m_bWasNull = handleSplitAddress(pContact,pStackValue,evo_addr[i].value);
-+ return true;
-+ }
-+ }
-+ }
-+ else {
- g_object_get_property (G_OBJECT (pContact),
- g_param_spec_get_name ((GParamSpec *) pSpec),
- pStackValue);
-@@ -364,7 +506,7 @@
- g_value_unset (pStackValue);
- return false;
- }
--
-+ }
- m_bWasNull = false;
- return true;
- }
-@@ -632,6 +774,7 @@
- checkDisposed(OResultSet_BASE::rBHelper.bDisposed);
-
- m_nIndex = 0;
-+ return true;
- }
- // -------------------------------------------------------------------------
-
-@@ -641,6 +784,7 @@
- checkDisposed(OResultSet_BASE::rBHelper.bDisposed);
-
- m_nIndex = m_nLength - 1;
-+ return true;
- }
- // -------------------------------------------------------------------------
- sal_Bool SAL_CALL OEvoabResultSet::absolute( sal_Int32 row ) throw(SQLException, RuntimeException)
-@@ -737,7 +881,6 @@
- {
- ::osl::MutexGuard aGuard( m_aMutex );
- checkDisposed(OResultSet_BASE::rBHelper.bDisposed);
--
- }
- OSL_TRACE("In/Out: OEvoabResultSet::close" );
- dispose();
-
-diff -u -r connectivity/source/drivers/evoab2/NResultSetMetaData.cxx connectivity/source/drivers/evoab2/NResultSetMetaData.cxx
---- connectivity/source/drivers/evoab2/NResultSetMetaData.cxx 2005-06-09 15:12:28.000000000 +0100
-+++ connectivity/source/drivers/evoab2/NResultSetMetaData.cxx 2005-06-15 10:20:27.000000000 +0100
-@@ -130,7 +130,8 @@
- // -------------------------------------------------------------------------
- ::rtl::OUString SAL_CALL OEvoabResultSetMetaData::getColumnLabel( sal_Int32 nColumnNum ) throw(SQLException, RuntimeException)
- {
-- const GParamSpec *pSpec = getField( nColumnNum - 1 );
-+ const ColumnProperty *pSpecs = getField(nColumnNum - 1);
-+ GParamSpec *pSpec = pSpecs->pField;
- rtl::OUString aLabel;
-
- if( pSpec )
-
diff --git a/patches/src680/evo2-fixes.diff b/patches/src680/evo2-fixes.diff
deleted file mode 100644
index 5f928f926..000000000
--- a/patches/src680/evo2-fixes.diff
+++ /dev/null
@@ -1,821 +0,0 @@
---- connectivity/source/drivers/evoab2/EApi.cxx.evo2~ 2005-09-23 16:05:13.000000000 +0000
-+++ connectivity/source/drivers/evoab2/EApi.cxx 2005-12-19 19:53:12.000000000 +0000
-@@ -36,7 +36,7 @@
- #include <rtl/ustring.hxx>
- #include <osl/module.h>
- #include <stdio.h>
--#define _EVOLUTION_ALREADY_DEFINED_ 1
-+#define DECLARE_FN_POINTERS 1
- #ifndef _CONNECTIVITY_EVOAB_EVOLUTION_API_HXX_
- #include "EApi.h"
- #endif
-@@ -56,6 +56,8 @@
- const char *sym_name;
- SymbolFunc *ref_value;
- } aApiMap[] = {
-+ SYM_MAP( e_contact_field_name ),
-+ SYM_MAP( e_contact_get ),
- SYM_MAP( e_contact_get_type ),
- SYM_MAP( e_contact_field_id ),
- SYM_MAP( e_source_peek_name ),
-@@ -110,8 +112,10 @@
- SAL_LOADMODULE_DEFAULT );
- if( aModule)
- {
-- if ( tryLink( aModule, eBookLibNames[ j ] ) )
-+ if ( tryLink( aModule, eBookLibNames[ j ] ) ) {
-+ if (j==1) bIsEVO_2_2 = true;
- return true;
-+ }
- osl_unloadModule( aModule );
- }
- }
---- connectivity/source/drivers/evoab2/EApi.h.evo2~ 2005-09-23 16:05:13.000000000 +0000
-+++ connectivity/source/drivers/evoab2/EApi.h 2005-12-19 19:53:12.000000000 +0000
-@@ -51,52 +51,42 @@
- // We attempt to define a minimum API that we use:
-
- // e-contact.h
-+#ifdef DECLARE_FN_POINTERS
-+#define EAPI_EXTERN
-+#else
-+#define EAPI_EXTERN extern
-+#endif
-+
-+
-+EAPI_EXTERN bool bIsEVO_2_2;
- typedef void EContact;
- #define E_CONTACT(a) ((EContact *)(a))
- #define E_TYPE_CONTACT (e_contact_get_type())
- typedef int EContactField;
-
-+EAPI_EXTERN const char *(*e_contact_field_name) ( EContactField field_id);
-+EAPI_EXTERN gpointer (*e_contact_get) (EContact *contact, EContactField field_id);
-+EAPI_EXTERN const gpointer (*e_contact_get_const) (EContact *contact, EContactField field_id);
- // e-source.h
- typedef void ESource;
- #define E_SOURCE(a) ((ESource *)(a))
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--const char *(*e_source_peek_name) (ESource *source);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--const gchar *(*e_source_get_property) (ESource *source,
-+EAPI_EXTERN const char *(*e_source_peek_name) (ESource *source);
-+EAPI_EXTERN const gchar *(*e_source_get_property) (ESource *source,
- const gchar *property);
-
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--GType (*e_contact_get_type) (void);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--EContactField (*e_contact_field_id) (const char *field_name);
-+EAPI_EXTERN GType (*e_contact_get_type) (void);
-+EAPI_EXTERN EContactField (*e_contact_field_id) (const char *field_name);
-
- // e-source-list.h
- typedef void ESourceList;
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--GSList *(*e_source_list_peek_groups) (ESourceList *list);
-+EAPI_EXTERN GSList *(*e_source_list_peek_groups) (ESourceList *list);
-
- // e-source-group.h
- typedef void ESourceGroup;
- #define E_SOURCE_GROUP(a) ((ESourceGroup *)(a))
-
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--GSList *(*e_source_group_peek_sources) (ESourceGroup *group);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--const char *(*e_source_group_peek_base_uri) (ESourceGroup *group);
-+EAPI_EXTERN GSList *(*e_source_group_peek_sources) (ESourceGroup *group);
-+EAPI_EXTERN const char *(*e_source_group_peek_base_uri) (ESourceGroup *group);
- // e-book.h
- typedef enum {
- E_BOOK_QUERY_IS,
-@@ -108,76 +98,53 @@
- typedef void EBook;
- typedef void EBookQuery;
-
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--EBook *(*e_book_new) (ESource *source,
-- GError **error);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--gboolean (*e_book_open) (EBook *book,
-- gboolean only_if_exists,
-- GError **error);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--const char *(*e_book_get_uri) (EBook *book);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--ESource *(*e_book_get_source) (EBook *book);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--gboolean (*e_book_get_addressbooks) (ESourceList **addressbook_sources,
-- GError **error);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--gboolean (*e_book_get_contacts) (EBook *book,
-- EBookQuery *query,
-- GList **contacts,
-- GError **error);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--gboolean (*e_book_authenticate_user) (EBook *book,
-- const char *user,
-- const char *passwd,
-- const char *auth_method,
-- GError **error);
-+EAPI_EXTERN EBook *(*e_book_new) (ESource *source,
-+ GError **error);
-+
-+EAPI_EXTERN gboolean (*e_book_open) (EBook *book,
-+ gboolean only_if_exists,
-+ GError **error);
-+
-+EAPI_EXTERN const char *(*e_book_get_uri) (EBook *book);
-+EAPI_EXTERN ESource *(*e_book_get_source)(EBook *book);
-+
-+EAPI_EXTERN gboolean (*e_book_get_addressbooks) (ESourceList **addressbook_sources,
-+ GError **error);
-+
-+EAPI_EXTERN gboolean (*e_book_get_contacts) (EBook *book,
-+ EBookQuery *query,
-+ GList **contacts,
-+ GError **error);
-+
-+EAPI_EXTERN gboolean (*e_book_authenticate_user) (EBook *book,
-+ const char *user,
-+ const char *passwd,
-+ const char *auth_method,
-+ GError **error);
-
- // e-book-query.h
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--EBookQuery* (*e_book_query_field_exists) (EContactField field);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--EBookQuery* (*e_book_query_field_test) (EContactField field,
-- EBookQueryTest test,
-- const char *value);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--EBookQuery* (*e_book_query_and) (int nqs, EBookQuery **qs, gboolean unref);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--EBookQuery* (*e_book_query_or) (int nqs, EBookQuery **qs, gboolean unref);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--EBookQuery* (*e_book_query_not) (EBookQuery *q, gboolean unref);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--void (*e_book_query_unref) (EBookQuery *q);
--#ifndef _EVOLUTION_ALREADY_DEFINED_
--extern
--#endif
--char* (*e_book_query_to_string) (EBookQuery *q);
-+EAPI_EXTERN EBookQuery* (*e_book_query_field_exists) (EContactField field);
-+EAPI_EXTERN EBookQuery* (*e_book_query_field_test) (EContactField field,
-+ EBookQueryTest test,
-+ const char *value);
-+EAPI_EXTERN EBookQuery* (*e_book_query_and) (int nqs, EBookQuery **qs, gboolean unref);
-+EAPI_EXTERN EBookQuery* (*e_book_query_or) (int nqs, EBookQuery **qs, gboolean unref);
-+EAPI_EXTERN EBookQuery* (*e_book_query_not) (EBookQuery *q, gboolean unref);
-+EAPI_EXTERN void (*e_book_query_unref) (EBookQuery *q);
-+EAPI_EXTERN char* (*e_book_query_to_string) (EBookQuery *q);
-+
-+typedef struct {
-+ char *address_format; /* the two letter country code that
-+ determines the format/meaning of the
-+ following fields */
-+ char *po;
-+ char *ext;
-+ char *street;
-+ char *locality;
-+ char *region;
-+ char *code;
-+ char *country;
-+} EContactAddress;
- G_END_DECLS
- #endif
-+
---- connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx.evo2~ 2005-09-23 16:05:13.000000000 +0000
-+++ connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx 2005-12-19 19:53:12.000000000 +0000
-@@ -89,129 +89,174 @@
- static sal_Int32 const s_nNULLABLE = 1;
- static sal_Int32 const s_nCHAR_OCTET_LENGTH = 65535;
-
--static GParamSpec **pFields = NULL;
--static guint nFields = 0;
-+ static ColumnProperty **pFields=NULL;
-+ static guint nFields = 0;
-
--static const char *pBlackList[] = {
-- "id",
-- "list-show-addresses"
--};
--
--static void
--initFields()
--{
-- if( !pFields )
-- {
-- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
-- if( !pFields )
-- {
-- guint nProps;
-- GParamSpec **pProps;
-- GParamSpec **pToBeFields;
-- pProps = g_object_class_list_properties
-- ( (GObjectClass *) g_type_class_ref( E_TYPE_CONTACT ),
-- &nProps );
-- pToBeFields = g_new0( GParamSpec *, nProps );
--
-- for ( guint i = 0; i < nProps; i++ )
-- {
-- switch (pProps[i]->value_type)
-- {
-- case G_TYPE_STRING:
-- case G_TYPE_BOOLEAN:
-- {
-- bool bAdd = true;
-- const char *pName = g_param_spec_get_name( pProps[i] );
-- for (int j = 0; j < G_N_ELEMENTS( pBlackList ); j++ )
-- {
-- if( !strcmp( pBlackList[j], pName ) )
-- {
-- bAdd = false;
-- break;
-- }
-- }
-- if( bAdd )
-- pToBeFields[ nFields++ ] = g_param_spec_ref( pProps[i] );
-- break;
-- }
-- default:
-- break;
-- }
-- }
-- pFields = pToBeFields;
-- }
-- }
--}
--
--guint
--getFieldCount()
--{
-- initFields();
-- return nFields;
--}
--
--const GParamSpec *
--getField(guint n)
--{
-- initFields();
-- if( n < nFields )
-- return pFields[n];
-- else
-- return NULL;
--}
--
--sal_Int32
--getFieldType( sal_Int32 nCol )
--{
-- sal_Int32 nType = DataType::VARCHAR;
-- initFields();
-- if (nCol >= 0 && nCol < nFields )
-- {
-- if( pFields[nCol]->value_type == G_TYPE_STRING )
-- nType = DataType::VARCHAR;
-- else
-- nType = DataType::BIT;
-- }
-- return nType;
--}
-+ static const char *pBlackList[] =
-+ {
-+ "id",
-+ "list-show-addresses",
-+ "address-label-home",
-+ "address-label-work",
-+ "address-label-other"
-+ };
-+
-+ static void
-+ splitColumn (ColumnProperty **pToBeFields)
-+ {
-+ for (int i = 0; i < OTHER_ZIP; i++)
-+ {
-+ pToBeFields[nFields] = g_new0(ColumnProperty,1);
-+ pToBeFields[nFields]->bIsSplittedValue = true;
-+ pToBeFields[nFields]->pField = g_param_spec_ref(g_param_spec_string (evo_addr[i].pColumnName,evo_addr[i].pColumnName,"",NULL,G_PARAM_WRITABLE));
-+ nFields++;
-+ }
-+ }
-+
-+ static void
-+ initFields()
-+ {
-+ if( !pFields )
-+ {
-+ ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
-+ if( !pFields )
-+ {
-+ guint nProps;
-+ ColumnProperty **pToBeFields;
-+ GParamSpec **pProps;
-+ nFields = 0;
-+ pProps = g_object_class_list_properties
-+ ( (GObjectClass *) g_type_class_ref( E_TYPE_CONTACT ),
-+ &nProps );
-+ pToBeFields = g_new0(ColumnProperty *, (nProps + OTHER_ZIP)/* new column(s)*/ );
-+ for ( guint i = 0; i < nProps; i++ )
-+ {
-+ switch (pProps[i]->value_type)
-+ {
-+ case G_TYPE_STRING:
-+ case G_TYPE_BOOLEAN:
-+ {
-+ bool bAdd = true;
-+ const char *pName = g_param_spec_get_name( pProps[i] );
-+ for (int j = 0; j < G_N_ELEMENTS( pBlackList ); j++ )
-+ {
-+ if( !strcmp( pBlackList[j], pName ) )
-+ {
-+ bAdd = false;
-+ break;
-+ }
-+ }
-+ if( bAdd )
-+ {
-+ pToBeFields[nFields]= g_new0(ColumnProperty,1);
-+ pToBeFields[nFields]->bIsSplittedValue=false;
-+ pToBeFields[ nFields++ ]->pField = g_param_spec_ref( pProps[i] );
-+ }
-+ break;
-+ }
-+ default:
-+ break;
-+ }
-+ }
-+
-+ splitColumn(pToBeFields);
-+ pFields = pToBeFields;
-+ }
-+ }
-+ }
-+
-+
-+ guint
-+ getFieldCount()
-+ {
-+ initFields();
-+ return nFields;
-+ }
-+
-+ const ColumnProperty *
-+ getField(guint n)
-+ {
-+ initFields();
-+ if( n < nFields )
-+ return pFields[n];
-+ else
-+ return NULL;
-+ }
-+
-+ sal_Int32
-+ getFieldType( sal_Int32 nCol )
-+ {
-+ sal_Int32 nType = DataType::VARCHAR;
-+ initFields();
-+ if (nCol >= 0 && nCol < nFields )
-+ {
-+ if( ((GParamSpec *)pFields[nCol]->pField)->value_type == G_TYPE_STRING )
-+ nType = DataType::VARCHAR;
-+ else
-+ nType = DataType::BIT;
-+ }
-+ return nType;
-+ }
-+
-+ rtl::OUString
-+ getFieldTypeName( sal_Int32 nCol )
-+ {
-+ switch( getFieldType( nCol ) )
-+ {
-+ case DataType::BIT:
-+ return ::rtl::OUString::createFromAscii( "BIT" );
-+ case DataType::VARCHAR:
-+ return ::rtl::OUString::createFromAscii( "VARCHAR" );
-+ default:
-+ break;
-+ }
-+ return ::rtl::OUString();
-+ }
-+
-+ rtl::OUString
-+ getFieldName( sal_Int32 nCol )
-+ {
-+ const GParamSpec *pSpec = getField( nCol )->pField;
-+ rtl::OUString aName;
-+ initFields();
-
--rtl::OUString
--getFieldTypeName( sal_Int32 nCol )
--{
-- switch( getFieldType( nCol ) )
-- {
-- case DataType::BIT:
-- return ::rtl::OUString::createFromAscii( "BIT" );
-- case DataType::VARCHAR:
-- return ::rtl::OUString::createFromAscii( "VARCHAR" );
-- default:
-- break;
-- }
-- return ::rtl::OUString();
--}
-+ if( pSpec )
-+ aName = rtl::OStringToOUString( g_param_spec_get_name( ( GParamSpec * )pSpec ),
-+ RTL_TEXTENCODING_UTF8 );
-+ aName = aName.replace( '-', '_' );
-+ return aName;
-+ }
-+
-+ void
-+ free_column_resources()
-+ {
-+ for (int i=nFields-1;i > 0;i--)
-+ {
-+ if (pFields && pFields[i] )
-+ {
-+ if (pFields[i]->pField)
-+ g_param_spec_unref(pFields[i]->pField);
-+ g_free(pFields[i]);
-+ }
-+ }
-+ if(pFields)
-+ {
-+ g_free(pFields);
-+ pFields=NULL;
-+ }
-+
-+ }
-
--rtl::OUString
--getFieldName( sal_Int32 nCol )
--{
-- const GParamSpec *pSpec = getField( nCol );
-- rtl::OUString aName;
-
-- if( pSpec )
-- aName = rtl::OStringToOUString( g_param_spec_get_name( ( GParamSpec * )pSpec ),
-- RTL_TEXTENCODING_UTF8 );
-- aName = aName.replace( '-', '_' );
-- return aName;
-+ }
- }
-
-- }
--}
-
- OEvoabDatabaseMetaData::OEvoabDatabaseMetaData(OEvoabConnection* _pCon)
- : ::connectivity::ODatabaseMetaDataBase(_pCon)
- ,m_pConnection(_pCon)
- {
- OSL_ENSURE(m_pConnection,"OEvoabDatabaseMetaData::OEvoabDatabaseMetaData: No connection set!");
-- //construct();
- }
- void OEvoabDatabaseMetaData::construct()
- {
-@@ -272,7 +317,7 @@
- aRow[5] = new ORowSetValueDecorator( static_cast<sal_Int16>( getFieldType( i ) ) );
- aRow[6] = new ORowSetValueDecorator( getFieldTypeName( i ) );
-
-- OSL_TRACE( " ColumnName = '%s'", g_param_spec_get_name( pFields[i] ) );
-+ OSL_TRACE( " ColumnName = '%s'", g_param_spec_get_name( pFields[i]->pField ) );
- // COLUMN_NAME
- aRow[4] = new ORowSetValueDecorator( getFieldName( i ) );
- // ORDINAL_POSITION
---- connectivity/source/drivers/evoab2/NDatabaseMetaData.hxx.evo2~ 2005-12-19 19:38:21.000000000 +0000
-+++ connectivity/source/drivers/evoab2/NDatabaseMetaData.hxx 2005-12-19 19:56:49.000000000 +0000
-@@ -60,13 +60,38 @@
- //**************************************************************
- //************ Class: OEvoabDatabaseMetaData
- //**************************************************************
-+ typedef struct{
-+ gboolean bIsSplittedValue;
-+ GParamSpec *pField;
-+ }ColumnProperty;
-
-- const GParamSpec *getField(guint n);
-- guint getFieldCount();
-- sal_Int32 getFieldType(sal_Int32 nCol);
-- rtl::OUString getFieldTypeName(sal_Int32 nCol);
-- rtl::OUString getFieldName(sal_Int32 nCol);
-+ typedef enum {
-+ DEFAULT_ADDR_LINE1=1,DEFAULT_ADDR_LINE2,DEFAULT_CITY,DEFAULT_STATE,DEFAULT_COUNTRY,DEFAULT_ZIP,
-+ WORK_ADDR_LINE1,WORK_ADDR_LINE2,WORK_CITY,WORK_STATE,WORK_COUNTRY,WORK_ZIP,
-+ HOME_ADDR_LINE1,HOME_ADDR_LINE2,HOME_CITY,HOME_STATE,HOME_COUNTRY,HOME_ZIP,
-+ OTHER_ADDR_LINE1,OTHER_ADDR_LINE2,OTHER_CITY,OTHER_STATE,OTHER_COUNTRY,OTHER_ZIP
-+ }ColumnNumber;
-+
-+ typedef struct {
-+ const gchar *pColumnName;
-+ ColumnNumber value;
-+ }SplitEvoColumns;
-+
-+ static SplitEvoColumns evo_addr[] = {
-+ {"addr-line1",DEFAULT_ADDR_LINE1},{"addr-line2",DEFAULT_ADDR_LINE2},{"city",DEFAULT_CITY},{"state",DEFAULT_STATE},{"country",DEFAULT_COUNTRY},{"zip",DEFAULT_ZIP},
-+ {"work-addr-line1",WORK_ADDR_LINE1},{"work-addr-line2",WORK_ADDR_LINE2},{"work-city",WORK_CITY},{"work-state",WORK_STATE},{"work-country",WORK_COUNTRY},{"work-zip",WORK_ZIP},
-+ {"home-addr-line1",HOME_ADDR_LINE1},{"home-addr-line2",HOME_ADDR_LINE2},{"home-addr-City",HOME_CITY},{"home-state",HOME_STATE},{"home-country",HOME_COUNTRY},{"home-zip",HOME_ZIP},
-+ {"other-addr-line1",OTHER_ADDR_LINE1},{"other-addr-line2",OTHER_ADDR_LINE2},{"other-addr-city",OTHER_CITY},{"other-addr-state",OTHER_STATE},{"other-addr-country",OTHER_COUNTRY},{"other-addr-zip",OTHER_ZIP}
-+ };
-+
-+ const ColumnProperty *getField(guint n);
-+ guint getFieldCount() G_GNUC_CONST;
-+ sal_Int32 getFieldType(sal_Int32 nCol) G_GNUC_CONST;
-+ rtl::OUString getFieldTypeName(sal_Int32 nCol) G_GNUC_CONST;
-+ rtl::OUString getFieldName(sal_Int32 nCol) G_GNUC_CONST;
-
-+ void free_column_resources();
-+
- class OEvoabDatabaseMetaData : public ODatabaseMetaDataBase
- {
- OEvoabConnection* m_pConnection;
---- connectivity/source/drivers/evoab2/NPreparedStatement.cxx.evo2~ 2005-09-23 16:05:13.000000000 +0000
-+++ connectivity/source/drivers/evoab2/NPreparedStatement.cxx 2005-12-19 19:53:12.000000000 +0000
-@@ -121,9 +121,8 @@
- ::osl::MutexGuard aGuard( m_aMutex );
- checkDisposed(OStatement_BASE::rBHelper.bDisposed);
-
--
-+ free_column_resources();
- // Reset last warning message
--
- try {
- clearWarnings ();
- OStatement_BASE2::close();
-@@ -132,8 +131,6 @@
- // If we get an error, ignore
- }
-
-- // Remove this Statement object from the Connection object's
-- // list
- }
- // -------------------------------------------------------------------------
-
---- connectivity/source/drivers/evoab2/NResultSet.cxx.evo2~ 2005-09-23 16:05:13.000000000 +0000
-+++ connectivity/source/drivers/evoab2/NResultSet.cxx 2005-12-19 19:53:12.000000000 +0000
-@@ -289,7 +289,7 @@
- ::osl::MutexGuard aGuard(m_aMutex);
-
- m_pStatement = NULL;
-- m_xMetaData = NULL;
-+ m_xMetaData = NULL;
- }
- // -------------------------------------------------------------------------
- Any SAL_CALL OEvoabResultSet::queryInterface( const Type & rType ) throw(RuntimeException)
-@@ -310,25 +310,167 @@
- return ::comphelper::concatSequences(aTypes.getTypes(),OResultSet_BASE::getTypes());
- }
-
-+static int
-+whichAddress(int value)
-+{
-+ int fieldEnum;
-+ switch (value)
-+ {
-+ case HOME_ADDR_LINE1:
-+ case HOME_ADDR_LINE2:
-+ case HOME_CITY:
-+ case HOME_STATE:
-+ case HOME_COUNTRY:
-+ case HOME_ZIP:
-+ bIsEVO_2_2 ? fieldEnum=89:fieldEnum=88/*E_CONTACT_ADDRESS_HOME*/;break;
-+ case WORK_ADDR_LINE1:
-+ case WORK_ADDR_LINE2:
-+ case WORK_CITY:
-+ case WORK_STATE:
-+ case WORK_COUNTRY:
-+ case WORK_ZIP:
-+ bIsEVO_2_2 ? fieldEnum = 90:fieldEnum=89/*E_CONTACT_ADDRESS_WORK*/;break;
-+ case OTHER_ADDR_LINE1:
-+ case OTHER_ADDR_LINE2:
-+ case OTHER_CITY:
-+ case OTHER_STATE:
-+ case OTHER_COUNTRY:
-+ case OTHER_ZIP:
-+ bIsEVO_2_2 ? fieldEnum=91:fieldEnum= 90/*E_ CONTACT_ADDRESS_OTHER*/; break;
-+ default: fieldEnum=89;
-+ }
-+ return fieldEnum;
-+}
-+
-+/*
-+* This function decides the default column values based on the first field of EContactAddress.
-+* The search order is Work->Home->other(defaults).
-+*/
-+static EContactAddress *
-+getDefaultContactAddress(EContact *pContact,int *value)
-+{
-+ EContactAddress *ec = (EContactAddress *)e_contact_get(pContact,whichAddress(WORK_ADDR_LINE1));
-+ if ( ec && (strlen(ec->street)>0) )
-+ {
-+ *value= *value +WORK_ADDR_LINE1 -1;
-+ return ec;
-+ }
-+ else
-+ {
-+ ec = (EContactAddress *)e_contact_get(pContact,whichAddress(HOME_ADDR_LINE1));
-+ if ( ec && (strlen(ec->street)>0) )
-+ {
-+ *value=*value+HOME_ADDR_LINE1-1;
-+ return ec;
-+ }
-+ }
-+
-+ *value=*value+OTHER_ADDR_LINE1-1;
-+ return (EContactAddress *)e_contact_get(pContact,whichAddress(OTHER_ADDR_LINE1));
-+}
-+
-+static EContactAddress*
-+getContactAddress(EContact *pContact, int * address_enum)
-+{
-+ EContactAddress *ec = NULL;
-+ switch (*address_enum) {
-+
-+ case DEFAULT_ADDR_LINE1:
-+ case DEFAULT_ADDR_LINE2:
-+ case DEFAULT_CITY:
-+ case DEFAULT_STATE:
-+ case DEFAULT_COUNTRY:
-+ case DEFAULT_ZIP:
-+ ec = getDefaultContactAddress(pContact,address_enum);break;
-+ default:
-+ ec = (EContactAddress *)e_contact_get(pContact,whichAddress(*address_enum));
-+ }
-+ return ec;
-+}
-+
-+static bool
-+handleSplitAddress(EContact *pContact,GValue *pStackValue,int value)
-+{
-+
-+ EContactAddress *ec = getContactAddress(pContact,&value) ;
-+
-+ if (ec==NULL)
-+ return true;
-+
-+ switch (value) {
-+ case WORK_ADDR_LINE1:
-+ g_value_set_string(pStackValue,ec->street ); break;
-+ case WORK_ADDR_LINE2:
-+ g_value_set_string(pStackValue,ec->po ); break;
-+ case WORK_CITY:
-+ g_value_set_string(pStackValue,ec->locality ); break;
-+ case WORK_STATE:
-+ g_value_set_string(pStackValue,ec->region ); break;
-+ case WORK_COUNTRY:
-+ g_value_set_string(pStackValue,ec->country ); break;
-+ case WORK_ZIP:
-+ g_value_set_string(pStackValue,ec->code ); break;
-+
-+ case HOME_ADDR_LINE1:
-+ g_value_set_string(pStackValue,ec->street ); break;
-+ case HOME_ADDR_LINE2:
-+ g_value_set_string(pStackValue,ec->po ); break;
-+ case HOME_CITY:
-+ g_value_set_string(pStackValue,ec->locality ); break;
-+ case HOME_STATE:
-+ g_value_set_string(pStackValue,ec->region ); break;
-+ case HOME_COUNTRY:
-+ g_value_set_string(pStackValue,ec->country ); break;
-+ case HOME_ZIP:
-+ g_value_set_string(pStackValue,ec->code ); break;
-+
-+ case OTHER_ADDR_LINE1:
-+ g_value_set_string(pStackValue,ec->street ); break;
-+ case OTHER_ADDR_LINE2:
-+ g_value_set_string(pStackValue,ec->po ); break;
-+ case OTHER_CITY:
-+ g_value_set_string(pStackValue,ec->locality ); break;
-+ case OTHER_STATE:
-+ g_value_set_string(pStackValue,ec->region ); break;
-+ case OTHER_COUNTRY:
-+ g_value_set_string(pStackValue,ec->country ); break;
-+ case OTHER_ZIP:
-+ g_value_set_string(pStackValue,ec->code ); break;
-+
-+ }
-+
-+return false;
-+}
- // -------------------------------------------------------------------------
- // XRow Interface
-
- bool
- OEvoabResultSet::getValue( sal_Int32 nColumnNum, GType nType, GValue *pStackValue)
- {
-- const GParamSpec *pSpec = evoab::getField (nColumnNum - 1);
-+ const ColumnProperty * pSpecs = evoab::getField (nColumnNum - 1);
-+ GParamSpec *pSpec = pSpecs->pField;
-+ gboolean bIsSplittedColumn=pSpecs->bIsSplittedValue;
- EContact *pContact = getCur();
--
-+
- m_bWasNull = true;
-- if (!pSpec || !pContact)
-+ if (!pSpec || !pContact) {
- return false;
--
-+ }
- if (G_PARAM_SPEC_VALUE_TYPE (pSpec) != nType)
- {
- g_warning ("Wrong type");
- return false;
- }
- g_value_init (pStackValue, nType);
-+ if (bIsSplittedColumn) {
-+ for (int i=0;i<OTHER_ZIP;i++) {
-+ if (0==strcmp(g_param_spec_get_name(( GParamSpec * )pSpec),evo_addr[i].pColumnName)) {
-+ m_bWasNull = handleSplitAddress(pContact,pStackValue,evo_addr[i].value);
-+ return true;
-+ }
-+ }
-+ }
-+ else {
- g_object_get_property (G_OBJECT (pContact),
- g_param_spec_get_name ((GParamSpec *) pSpec),
- pStackValue);
-@@ -338,7 +480,7 @@
- g_value_unset (pStackValue);
- return false;
- }
--
-+ }
- m_bWasNull = false;
- return true;
- }
-@@ -606,6 +748,7 @@
- checkDisposed(OResultSet_BASE::rBHelper.bDisposed);
-
- m_nIndex = 0;
-+ return true;
- }
- // -------------------------------------------------------------------------
-
-@@ -615,6 +758,7 @@
- checkDisposed(OResultSet_BASE::rBHelper.bDisposed);
-
- m_nIndex = m_nLength - 1;
-+ return true;
- }
- // -------------------------------------------------------------------------
- sal_Bool SAL_CALL OEvoabResultSet::absolute( sal_Int32 row ) throw(SQLException, RuntimeException)
-@@ -711,7 +855,6 @@
- {
- ::osl::MutexGuard aGuard( m_aMutex );
- checkDisposed(OResultSet_BASE::rBHelper.bDisposed);
--
- }
- OSL_TRACE("In/Out: OEvoabResultSet::close" );
- dispose();
---- connectivity/source/drivers/evoab2/NResultSetMetaData.cxx.evo2~ 2005-09-23 16:05:13.000000000 +0000
-+++ connectivity/source/drivers/evoab2/NResultSetMetaData.cxx 2005-12-19 19:53:12.000000000 +0000
-@@ -104,7 +104,8 @@
- // -------------------------------------------------------------------------
- ::rtl::OUString SAL_CALL OEvoabResultSetMetaData::getColumnLabel( sal_Int32 nColumnNum ) throw(SQLException, RuntimeException)
- {
-- const GParamSpec *pSpec = getField( nColumnNum - 1 );
-+ const ColumnProperty *pSpecs = getField(nColumnNum - 1);
-+ GParamSpec *pSpec = pSpecs->pField;
- rtl::OUString aLabel;
-
- if( pSpec )
diff --git a/patches/src680/extensions-ldap-system-openldap-2.3.x.diff b/patches/src680/extensions-ldap-system-openldap-2.3.x.diff
deleted file mode 100644
index 6a3dc626f..000000000
--- a/patches/src680/extensions-ldap-system-openldap-2.3.x.diff
+++ /dev/null
@@ -1,22 +0,0 @@
---- extensions/source/config/ldap/ldapaccess.cxx.ark 2005-07-22 10:34:44.000000000 +0200
-+++ extensions/source/config/ldap/ldapaccess.cxx 2005-07-22 10:35:06.000000000 +0200
-@@ -59,6 +59,8 @@
- *
- ************************************************************************/
-
-+#define LDAP_DEPRECATED 1 /* for OpenLDAP 2.3.x */
-+
- #include "ldapaccess.hxx"
-
- #include "ldapuserprof.hxx"
---- extensions/source/config/ldap/ldapuserprof.cxx.ark 2005-07-22 11:04:57.000000000 +0200
-+++ extensions/source/config/ldap/ldapuserprof.cxx 2005-07-22 11:05:21.000000000 +0200
-@@ -59,6 +59,8 @@
- *
- ************************************************************************/
-
-+#define LDAP_DEPRECATED 1 /* for OpenLDAP 2.3.x */
-+
- #ifndef EXTENSIONS_CONFIG_LDAP_LDAPUSERPROF_HXX_
- #include "ldapuserprof.hxx"
- #endif // EXTENSIONS_CONFIG_LDAP_LDAPUSERPROF_HXX_
diff --git a/patches/src680/filebug-support.diff b/patches/src680/filebug-support.diff
deleted file mode 100644
index f99c81143..000000000
--- a/patches/src680/filebug-support.diff
+++ /dev/null
@@ -1,68 +0,0 @@
-Index: sfx2/source/appl/appserv.cxx
-===================================================================
-RCS file: /cvs/framework/sfx2/source/appl/appserv.cxx,v
-retrieving revision 1.30.116.1
-diff -u -r1.30.116.1 appserv.cxx
---- sfx2/source/appl/appserv.cxx 20 Jan 2004 10:43:08 -0000 1.30.116.1
-+++ sfx2/source/appl/appserv.cxx 9 Sep 2004 10:45:38 -0000
-@@ -123,6 +123,12 @@
- #ifndef _SV_MSGBOX_HXX
- #include <vcl/msgbox.hxx>
- #endif
-+#ifndef _COM_SUN_STAR_SYSTEM_XSYSTEMSHELLEXECUTE_HPP_
-+#include <com/sun/star/system/XSystemShellExecute.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_SYSTEM_SYSTEMSHELLEXECUTEFLAGS_HPP_
-+#include <com/sun/star/system/SystemShellExecuteFlags.hpp>
-+#endif
- #ifndef _SFXCANCEL_HXX //autogen
- #include <svtools/cancel.hxx>
- #endif
-@@ -467,9 +473,24 @@
- break;
- }
-
-+ case SID_HELP_SUPPORTPAGE:
-+ {
-+ try {
-+ Reference< com::sun::star::system::XSystemShellExecute > xSystemShell
-+ ( ::comphelper::getProcessServiceFactory()->createInstance( DEFINE_CONST_UNICODE("com.sun.star.system.SystemShellExecute" ) ), UNO_QUERY );
-+ if ( xSystemShell.is()) {
-+ rtl::OUString aURI( DEFINE_CONST_UNICODE( "http://www.novell.com/support" ) );
-+ xSystemShell->execute( aURI, ::rtl::OUString(), com::sun::star::system::SystemShellExecuteFlags::DEFAULTS );
-+ }
-+
-+ break;
-+ } catch (const ::com::sun::star::uno::Exception &) {
-+ }
-+ /* drop through on exception */
-+ }
-+
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- case SID_HELPINDEX:
-- case SID_HELP_SUPPORTPAGE:
- {
- Help* pHelp = Application::GetHelp();
- if ( pHelp )
-Index: sfx2/source/appl/app.src
-===================================================================
-RCS file: /cvs/framework/sfx2/source/appl/app.src,v
-retrieving revision 1.98
-diff -u -p -u -r1.98 app.src
---- sfx2/source/appl/app.src 4 Oct 2004 20:42:11 -0000 1.98
-+++ sfx2/source/appl/app.src 26 Nov 2004 12:28:56 -0000
-@@ -1062,6 +1062,14 @@ ToolBox RID_ENVTOOLBOX
- {
- Type = TOOLBOXITEM_SEPARATOR ;
- };
-+ ToolBoxItem
-+ {
-+ Identifier = SID_HELP_SUPPORTPAGE ;
-+ };
-+ ToolBoxItem
-+ {
-+ Type = TOOLBOXITEM_SEPARATOR ;
-+ };
- ToolBoxItem
- {
- Identifier = SID_GALLERY ;
diff --git a/patches/src680/fix-stlport-includes.diff b/patches/src680/fix-stlport-includes.diff
deleted file mode 100644
index d9df141d6..000000000
--- a/patches/src680/fix-stlport-includes.diff
+++ /dev/null
@@ -1,35 +0,0 @@
---- dtrans/source/win32/workbench/test_wincb.cxx.orig 2005-11-26 12:57:32.000000000 +0100
-+++ dtrans/source/win32/workbench/test_wincb.cxx 2005-11-26 12:48:37.000000000 +0100
-@@ -97,7 +97,7 @@
- #include <windows.h>
- #include <objbase.h>
-
--#include <stl/memory>
-+#include <memory>
-
- #include <process.h>
-
---- testtools/source/performance/ubtest.cxx.orig 2005-11-26 12:58:14.000000000 +0100
-+++ testtools/source/performance/ubtest.cxx 2005-11-26 12:48:37.000000000 +0100
-@@ -12,8 +12,8 @@
- #include <stdio.h>
- #include <math.h>
- #include <string>
--#include <stl/hash_map>
--#include <stl/map>
-+#include <hash_map>
-+#include <map>
-
- #include <osl/diagnose.h>
- #include <osl/mutex.hxx>
---- ure/source/uretest/cppmain.cc.orig 2005-11-26 12:58:33.000000000 +0100
-+++ ure/source/uretest/cppmain.cc 2005-11-26 12:48:37.000000000 +0100
-@@ -63,7 +63,7 @@
- #include "rtl/ustring.hxx"
- #include "sal/types.h"
- #include "salhelper/simplereferenceobject.hxx"
--#include "stl/hash_map"
-+#include <hash_map>
- #include "uno/current_context.hxx"
- #include "uno/environment.h"
- #include "uno/lbnames.h"
diff --git a/patches/src680/fpicker-common-build.diff b/patches/src680/fpicker-common-build.diff
deleted file mode 100644
index 54ef94c7d..000000000
--- a/patches/src680/fpicker-common-build.diff
+++ /dev/null
@@ -1,76 +0,0 @@
-Index: fpicker/prj/build.lst
-===================================================================
-RCS file: /cvs/gsl/fpicker/prj/build.lst,v
-retrieving revision 1.6
-Index: fpicker/prj/build.lst
-===================================================================
---- fpicker/prj/build.lst.orig 2004-07-31 19:07:38.510660640 +0200
-+++ fpicker/prj/build.lst 2004-07-31 19:13:36.266273520 +0200
-@@ -2,7 +2,9 @@
- fp fpicker\source\generic nmake - all fp_generic NULL
- fp fpicker\source\office nmake - all fp_office NULL
- fp fpicker\source\unx\gnome nmake - u fp_gnome_filepicker NULL
-+fp fpicker\source\unx\kde_unx nmake - u fp_unx_common NULL
-+fp fpicker\source\unx\kde nmake - u fp_unx_kde_filepicker NULL
- fp fpicker\source\win32\filepicker nmake - w fp_win32_filepicker NULL
- fp fpicker\source\win32\folderpicker nmake - w fp_win32_folderpicker NULL
- fp fpicker\source\win32\misc nmake - w fp_win32_misc fp_win32_filepicker.w fp_win32_folderpicker.w NULL
--fp fpicker\util nmake - all fp_util fp_win32_filepicker.w fp_win32_misc.w fp_win32_folderpicker.w NULL
-+fp fpicker\util nmake - all fp_util fp_gnome_filepicker.u fp_unx_common.u fp_unx_kde_filepicker.u fp_win32_filepicker.w fp_win32_misc.w fp_win32_folderpicker.w NULL
-Index: fpicker/prj/d.lst
-===================================================================
---- fpicker/prj/d.lst.orig 2004-07-31 19:07:38.523658664 +0200
-+++ fpicker/prj/d.lst 2004-07-31 19:13:36.267273368 +0200
-@@ -1,5 +1,6 @@
- ..\%__SRC%\bin\*.res %_DEST%\bin%_EXT%\*.res
- ..\%__SRC%\bin\*.dll %_DEST%\bin%_EXT%\*.dll
-+..\%__SRC%\bin\kdefilepicker %_DEST%\bin%_EXT%\kdefilepicker
- ..\%__SRC%\lib\*.so %_DEST%\lib%_EXT%\*.so
- ..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
-
-Index: fpicker/util/makefile.mk
-===================================================================
-RCS file: /cvs/gsl/fpicker/util/makefile.mk,v
-retrieving revision 1.9
-diff -u -r1.9 makefile.mk
---- fpicker/util/makefile.mk 17 Dec 2004 13:27:40 -0000 1.9
-+++ fpicker/util/makefile.mk 7 Jan 2005 17:59:07 -0000
-@@ -105,6 +105,38 @@
- DEF1EXPORTFILE= exports.dxp
-
- .ENDIF # "$(GUI)"=="WNT"
-+
-+.IF "$(ENABLE_KDE)" == "TRUE"
-+SHL3TARGET=fps_kde
-+SHL3STDLIBS=$(COMMON_LIBS) \
-+ $(SVTOOLLIB)
-+SHL3DEPN=
-+SHL3IMPLIB=i$(SHL1TARGET)
-+SHL3LIBS=$(SLB)$/fps_kde.lib
-+
-+SHL3OBJS=$(SLOFILES)
-+SHL3DEF=$(MISC)$/$(SHL3TARGET).def
-+
-+DEF3NAME=$(SHL3TARGET)
-+DEF3EXPORTFILE= exports.dxp
-+
-+# kdefilepicker binary
-+
-+APP4TARGET=kdefilepicker
-+
-+APP4STDLIBS=\
-+ $(SALLIB) \
-+ $(KDE_LIBS) -lkio
-+
-+APP4OBJS=\
-+ $(SLO)$/kdecommandthread.obj \
-+ $(SLO)$/kdefilepicker.obj \
-+ $(SLO)$/kdefilepicker.moc.obj \
-+ $(SLO)$/kdefpmain.obj \
-+ $(SLO)$/kdemodalityfilter.obj
-+
-+.ENDIF # "$(ENABLE_KDE)" == "TRUE"
-+
-
- # --- fop dynlib --------------------------------------------------
-
diff --git a/patches/src680/fpicker-common-scp2.diff b/patches/src680/fpicker-common-scp2.diff
deleted file mode 100644
index 7a914d53f..000000000
--- a/patches/src680/fpicker-common-scp2.diff
+++ /dev/null
@@ -1,26 +0,0 @@
---- scp2/source/ooo/file_library_ooo.scp 2004-11-15 11:46:49.141039128 +0100
-+++ scp2/source/ooo/file_library_ooo.scp 2004-11-15 11:49:31.741320128 +0100
-@@ -649,6 +649,23 @@ File gid_File_Lib_Fps_Gnome
- #endif
- #endif
- #endif
-+#ifdef ENABLE_KDE
-+#ifndef MACOSX
-+File gid_File_Lib_Fps_Kde
-+ TXT_FILE_BODY;
-+ Styles = (PACKED,UNO_COMPONENT);
-+ RegistryID = gid_Starregistry_Services_Rdb;
-+ Dir = gid_Dir_Program;
-+ Name = STRING(CONCAT2(libfps_kde,UNXSUFFIX));
-+End
-+File gid_File_Bin_KdeFilePicker
-+ BIN_FILE_BODY;
-+ Styles = (PACKED);
-+ Dir = gid_Dir_Program;
-+ Name = "kdefilepicker";
-+End
-+#endif
-+#endif
- #endif
-
-
diff --git a/patches/src680/fpicker-export-expand.diff b/patches/src680/fpicker-export-expand.diff
deleted file mode 100644
index b1ef24286..000000000
--- a/patches/src680/fpicker-export-expand.diff
+++ /dev/null
@@ -1,74 +0,0 @@
-Index: offapi/com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.idl
-===================================================================
-RCS file: /cvs/api/offapi/com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.idl,v
-retrieving revision 1.4
-diff -u -r1.4 ExtendedFilePickerElementIds.idl
---- offapi/com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.idl 4 Jun 2004 01:47:05 -0000 1.4
-+++ offapi/com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.idl 20 Jun 2005 15:34:55 -0000
-@@ -147,6 +147,11 @@
- /**
- */
- const short LISTBOX_IMAGE_TEMPLATE_LABEL = 209;
-+
-+ //---------------------------------------------------------------------
-+ /**
-+ */
-+ const short LISTBOX_FILTER_SELECTOR = 210;
- };
-
- //=============================================================================
-
-
-Index: sfx2/source/dialog/filedlghelper.cxx
-===================================================================
-RCS file: /cvs/framework/sfx2/source/dialog/filedlghelper.cxx,v
-retrieving revision 1.115
-diff -u -r1.115 filedlghelper.cxx
---- sfx2/source/dialog/filedlghelper.cxx 21 Feb 2005 16:59:45 -0000 1.115
-+++ sfx2/source/dialog/filedlghelper.cxx 20 Jun 2005 15:34:58 -0000
-@@ -1224,7 +1224,14 @@
-
- // Export dialog
- if ( mbExport )
-+ {
- mxFileDlg->setTitle( OUString( String( SfxResId( STR_SFX_EXPLORERFILE_EXPORT ) ) ) );
-+ try {
-+ Reference < XFilePickerControlAccess > xCtrlAccess( mxFileDlg, UNO_QUERY_THROW );
-+ xCtrlAccess->enableControl( ExtendedFilePickerElementIds::LISTBOX_FILTER_SELECTOR, sal_True );
-+ }
-+ catch( const Exception &e ) { }
-+ }
-
- // the "insert file" dialog needs another title
- if ( mbInsert )
-
-
-Index: fpicker/source/unx/gnome/SalGtkFilePicker.cxx
-===================================================================
-RCS file: /cvs/gsl/fpicker/source/unx/gnome/SalGtkFilePicker.cxx,v
-retrieving revision 1.6
-diff -u -r1.6 SalGtkFilePicker.cxx
---- fpicker/source/unx/gnome/SalGtkFilePicker.cxx 3 May 2005 13:47:32 -0000 1.6
-+++ fpicker/source/unx/gnome/SalGtkFilePicker.cxx 20 Jun 2005 15:35:00 -0000
-@@ -1029,8 +1054,8 @@
- GtkWidget *SalGtkFilePicker::getWidget( sal_Int16 nControlId, GType *pType )
- {
- OSL_TRACE("control id is %d", nControlId);
- GType tType;
-- GtkWidget *pWidget;
-+ GtkWidget *pWidget = NULL;
-
- #define MAP_TOGGLE( elem ) \
- case ExtendedFilePickerElementIds::CHECKBOX_##elem: \
-@@ -1294,7 +1322,10 @@
-
- GtkWidget *pWidget;
-
-- if( ( pWidget = getWidget( nControlId ) ) )
-+ if ( nControlId == ExtendedFilePickerElementIds::LISTBOX_FILTER_SELECTOR )
-+ gtk_expander_set_expanded( GTK_EXPANDER( m_pFilterExpander ), bEnable );
-+
-+ else if( ( pWidget = getWidget( nControlId ) ) )
- {
- if( bEnable )
- {
diff --git a/patches/src680/fpicker-generic-extn.diff b/patches/src680/fpicker-generic-extn.diff
deleted file mode 100644
index f31a8a65b..000000000
--- a/patches/src680/fpicker-generic-extn.diff
+++ /dev/null
@@ -1,109 +0,0 @@
---- fpicker/source/office/iodlgimp.hxx 2005-05-10 16:39:30.000000000 +0530
-+++ fpicker/source/office/iodlgimp.hxx 2005-05-10 16:39:39.000000000 +0530
-@@ -125,6 +125,7 @@
-
- const String& GetName() const { return m_aName; }
- const String& GetType() const { return m_aType; }
-+ const String GetExtension() const { return m_aType.Copy( 2 ); }
-
- sal_Bool isGroupSeparator() const { return 0 == m_aType.Len(); }
- };
---- fpicker/source/office/iodlg.cxx 2005-05-10 16:37:23.000000000 +0530
-+++ fpicker/source/office/iodlg.cxx 2005-05-10 16:39:39.000000000 +0530
-@@ -309,14 +309,22 @@
- }
-
- //-----------------------------------------------------------------------------
-- String GetFsysExtension_Impl( const String& rFile )
-+ String GetFsysExtension_Impl( const String& rFile, const String& rLastFilterExt )
- {
- const sal_Unicode* p0 = rFile.GetBuffer();
- const sal_Unicode* p1 = p0 + rFile.Len() - 1;
- while ( p1 >= p0 && *p1 != sal_Unicode( '.' ) )
- p1--;
- if ( p1 >= p0 )
-- return String( rFile.Copy( p1 - p0 + 1 ) );
-+ {
-+ if ( rLastFilterExt.Len() )
-+ {
-+ if ( rFile.Copy( p1 - p0 + 1).EqualsIgnoreCaseAscii( rLastFilterExt ) )
-+ return String( rFile.Copy( p1 - p0 + 1 ) );
-+ }
-+ else
-+ return String( rFile.Copy( p1 - p0 + 1 ) );
-+ }
- return String();
- }
-
-@@ -363,14 +371,14 @@
- }
-
- //-------------------------------------------------------------------------
-- void lcl_autoUpdateFileExtension( SvtFileDialog* _pDialog )
-+ void lcl_autoUpdateFileExtension( SvtFileDialog* _pDialog, const String& _rLastFilterExt )
- {
- // if auto extension is enabled ....
- if ( _pDialog->isAutoExtensionEnabled() )
- {
- // automatically switch to the extension of the (maybe just newly selected) extension
- String aNewFile = _pDialog->getCurrentFileText( );
-- String aExt = GetFsysExtension_Impl( aNewFile );
-+ String aExt = GetFsysExtension_Impl( aNewFile, _rLastFilterExt );
-
- // but only if there already is an extension
- if ( aExt.Len() )
-@@ -1075,7 +1083,7 @@
- if ( !_bAllowUserDefExt || bUseCurFilterExt )
- {
- if ( _pImp->GetCurFilter( ) )
-- SetDefaultExt( _pImp->GetCurFilter( )->GetType().Copy(2) );
-+ SetDefaultExt( _pImp->GetCurFilter( )->GetExtension() );
- else
- EraseDefaultExt();
- }
-@@ -1535,20 +1543,22 @@
- || pThis->_pImp->_pUserFilter
- )
- {
-- // Ggf. Filter des Benutzers entfernen.
-+ // Store the old filter for the auto extension handling
-+ const String& rLastFilterExt = pThis->_pImp->GetCurFilter()->GetExtension();
- DELETEZ( pThis->_pImp->_pUserFilter );
-+
-+ // Ggf. Filter des Benutzers entfernen.
- pThis->_pImp->SetCurFilter( pSelectedFilter, sSelectedFilterDisplayName );
-
- // Ggf. Endung anzeigen.
-- const String& rType = pSelectedFilter->GetType();
-- pThis->SetDefaultExt( rType.Copy( 2 ) );
-+ pThis->SetDefaultExt( pSelectedFilter->GetExtension() );
- USHORT nSepPos = pThis->GetDefaultExt().Search( FILEDIALOG_DEF_EXTSEP );
-
- if ( nSepPos != STRING_NOTFOUND )
- pThis->EraseDefaultExt( nSepPos );
-
- // update the extension of the current file if necessary
-- lcl_autoUpdateFileExtension( pThis );
-+ lcl_autoUpdateFileExtension( pThis, rLastFilterExt );
-
- // wenn der Benutzer schnell durch die Filterbox
- // travelt, nicht sofort Filtern
-@@ -1848,7 +1858,7 @@
- CHECKBOX_AUTOEXTENSION );
-
- // update the extension of the current file if necessary
-- lcl_autoUpdateFileExtension( this );
-+ lcl_autoUpdateFileExtension( this, this->_pImp->GetCurFilter()->GetExtension() );
-
- return 0;
- }
-@@ -2097,8 +2107,7 @@
-
- // Anzeige anpassen.
- _pImp->SelectFilterListEntry( _pImp->GetCurFilter()->GetName() );
-- String aType( _pImp->GetCurFilter()->GetType() );
-- SetDefaultExt( aType.Copy( 2 ) );
-+ SetDefaultExt( _pImp->GetCurFilter()->GetExtension() );
- USHORT nSepPos = GetDefaultExt().Search( FILEDIALOG_DEF_EXTSEP );
- if ( nSepPos != STRING_NOTFOUND )
- EraseDefaultExt( nSepPos );
diff --git a/patches/src680/fpicker-kde-dialog.diff b/patches/src680/fpicker-kde-dialog.diff
deleted file mode 100644
index 8d5e3e081..000000000
--- a/patches/src680/fpicker-kde-dialog.diff
+++ /dev/null
@@ -1,1527 +0,0 @@
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ fpicker/source/unx/kde/kdecommandthread.cxx 2004-06-21 17:38:20.886719904 +0200
-@@ -0,0 +1,208 @@
-+/*************************************************************************
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Jan Holesovsky <kendy@openoffice.org>
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include <kdecommandthread.hxx>
-+
-+#include <qstringlist.h>
-+
-+#include <kapplication.h>
-+
-+#include <iostream>
-+
-+//////////////////////////////////////////////////////////////////////////
-+// CommandEvent
-+//////////////////////////////////////////////////////////////////////////
-+
-+CommandEvent::CommandEvent( const QString &qCommand, QStringList *pStringList )
-+ : QCustomEvent( TypeId, pStringList ),
-+ m_eCommand( Unknown )
-+{
-+ struct {
-+ const char *pName;
-+ CommandEventType eType;
-+ } *pIdx, pMapping[] =
-+ {
-+ { "appendControl", AppendControl },
-+ { "enableControl", EnableControl },
-+ { "getValue", GetValue },
-+ { "setValue", SetValue },
-+ { "appendFilter", AppendFilter },
-+ { "appendFilterGroup", AppendFilterGroup },
-+ { "getCurrentFilter", GetCurrentFilter },
-+ { "setCurrentFilter", SetCurrentFilter },
-+ { "getDirectory", GetDirectory },
-+ { "setDirectory", SetDirectory },
-+ { "getFiles", GetFiles },
-+ { "setTitle", SetTitle },
-+ { "setType", SetType },
-+ { "setDefaultName", SetDefaultName },
-+ { "setMultiSelection", SetMultiSelection },
-+ { "exec", Exec },
-+ { 0, Unknown }
-+ };
-+
-+ for ( pIdx = pMapping; pIdx->pName && qCommand != pIdx->pName; ++pIdx )
-+ ;
-+
-+ m_eCommand = pIdx->eType;
-+}
-+
-+//////////////////////////////////////////////////////////////////////////
-+// CommandThread
-+//////////////////////////////////////////////////////////////////////////
-+
-+CommandThread::CommandThread( QWidget *pObject )
-+ : m_pObject( pObject )
-+{
-+}
-+
-+CommandThread::~CommandThread()
-+{
-+}
-+
-+void CommandThread::run()
-+{
-+ QTextIStream qStream( stdin );
-+ qStream.setEncoding( QTextStream::UnicodeUTF8 );
-+
-+ QString qLine;
-+ bool bQuit = false;
-+ while ( !bQuit && !qStream.atEnd() )
-+ {
-+ qLine = qStream.readLine();
-+ handleCommand( qLine, bQuit );
-+ }
-+}
-+
-+void CommandThread::handleCommand( const QString &rString, bool &bQuit )
-+{
-+ QMutexLocker qMutexLocker( &m_aMutex );
-+
-+#if OSL_DEBUG_LEVEL > 0
-+ ::std::cerr << "kdefilepicker received: " << rString.latin1() << ::std::endl;
-+#endif
-+
-+ bQuit = false;
-+ QStringList *pTokens = tokenize( rString );
-+
-+ if ( !pTokens )
-+ return;
-+ if ( pTokens->empty() )
-+ {
-+ delete pTokens, pTokens = NULL;
-+ return;
-+ }
-+
-+ QString qCommand = pTokens->front();
-+ pTokens->pop_front();
-+
-+ if ( qCommand == "exit" )
-+ {
-+ bQuit = true;
-+ kapp->exit();
-+ kapp->wakeUpGuiThread();
-+ }
-+ else
-+ kapp->postEvent( m_pObject, new CommandEvent( qCommand, pTokens ) );
-+}
-+
-+QStringList* CommandThread::tokenize( const QString &rString )
-+{
-+ // Commands look like:
-+ // command arg1 arg2 arg3 ...
-+ // Args may be enclosed in '"', if they contain spaces.
-+
-+ QStringList *pList = new QStringList();
-+
-+ QString qBuffer;
-+ qBuffer.reserve( 1024 );
-+
-+ const QChar *pUnicode = rString.unicode();
-+ const QChar *pEnd = pUnicode + rString.length();
-+ bool bQuoted = false;
-+
-+ for ( ; pUnicode != pEnd; ++pUnicode )
-+ {
-+ if ( *pUnicode == '\\' )
-+ {
-+ ++pUnicode;
-+ if ( pUnicode != pEnd )
-+ {
-+ if ( *pUnicode == 'n' )
-+ qBuffer.append( '\n' );
-+ else
-+ qBuffer.append( *pUnicode );
-+ }
-+ }
-+ else if ( *pUnicode == '"' )
-+ bQuoted = !bQuoted;
-+ else if ( *pUnicode == ' ' && !bQuoted )
-+ {
-+ pList->push_back( qBuffer );
-+ qBuffer.setLength( 0 );
-+ }
-+ else
-+ qBuffer.append( *pUnicode );
-+ }
-+ pList->push_back( qBuffer );
-+
-+ return pList;
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ fpicker/source/unx/kde/kdecommandthread.hxx 2004-06-14 14:37:20.597310272 +0200
-@@ -0,0 +1,128 @@
-+/*************************************************************************
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Jan Holesovsky <kendy@openoffice.org>
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _KDECOMMANDTHREAD_HXX_
-+#define _KDECOMMANDTHREAD_HXX_
-+
-+#include <qevent.h>
-+#include <qmutex.h>
-+#include <qthread.h>
-+
-+class CommandEvent : public QCustomEvent
-+{
-+public:
-+ enum CommandEventType {
-+ Unknown = 0,
-+
-+ AppendControl,
-+ EnableControl,
-+ GetValue,
-+ SetValue,
-+
-+ AppendFilter,
-+ AppendFilterGroup,
-+ UpdateFilters,
-+ GetCurrentFilter,
-+ SetCurrentFilter,
-+
-+ GetDirectory,
-+ SetDirectory,
-+
-+ GetFiles,
-+
-+ SetTitle,
-+ SetType,
-+ SetDefaultName,
-+ SetMultiSelection,
-+
-+ Exec
-+ };
-+ static const QEvent::Type TypeId = (QEvent::Type) ( (int) QEvent::User + 42 /*random magic value*/ );
-+
-+protected:
-+ CommandEventType m_eCommand;
-+
-+public:
-+ CommandEvent( const QString &qCommand, QStringList *pStringList );
-+
-+ CommandEventType command() const { return m_eCommand; }
-+ QStringList* stringList() { return static_cast< QStringList* >( data() ); }
-+};
-+
-+class CommandThread : public QThread
-+{
-+protected:
-+ QObject *m_pObject;
-+
-+ QMutex m_aMutex;
-+
-+public:
-+ CommandThread( QWidget *pObject );
-+ virtual ~CommandThread();
-+
-+ virtual void run();
-+
-+protected:
-+ void handleCommand( const QString &rString, bool &bQuit );
-+ QStringList* tokenize( const QString &rString );
-+};
-+
-+#endif // _KDECOMMANDTHREAD_HXX_
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ fpicker/source/unx/kde/kdefilepicker.cxx 2004-09-08 17:01:55.270345192 +0200
-@@ -0,0 +1,629 @@
-+/*************************************************************************
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Jan Holesovsky <kendy@openoffice.org>
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include <kdecommandthread.hxx>
-+#include <kdefilepicker.hxx>
-+
-+#include <qcheckbox.h>
-+#include <qcombobox.h>
-+#include <qgrid.h>
-+#include <qhbox.h>
-+#include <qlabel.h>
-+#include <qlayout.h>
-+#include <qobjectlist.h>
-+#include <qpushbutton.h>
-+#include <qvbox.h>
-+
-+#ifdef QT_NO_EMIT
-+#define emit
-+#endif
-+
-+#include <kdiroperator.h>
-+#include <kfiledialog.h>
-+#include <kfilefiltercombo.h>
-+#include <klocale.h>
-+#include <kmessagebox.h>
-+
-+#include <algorithm>
-+#include <iostream>
-+
-+//////////////////////////////////////////////////////////////////////////
-+// FileDialog
-+//////////////////////////////////////////////////////////////////////////
-+
-+FileDialog::FileDialog( const QString &startDir, const QString &filter,
-+ QWidget *parent, const char *name )
-+ : KFileDialog( startDir, filter, parent, name, true, m_pCustomWidget = new QVBox() ),
-+ m_pCombosAndButtons( new QHBox( m_pCustomWidget ) ),
-+ m_pLabels( new QVBox( m_pCombosAndButtons ) ),
-+ m_pComboBoxes( new QVBox( m_pCombosAndButtons ) ),
-+ m_pPushButtons( new QVBox( m_pCombosAndButtons ) ),
-+ m_pCheckBoxes( new QGrid( 2, m_pCustomWidget ) ),
-+ m_bIsSave( false ),
-+ m_bCanNotifySelection( true )
-+{
-+ connect( this, SIGNAL( fileHighlighted( const QString & ) ),
-+ this, SLOT( fileHighlightedCommand( const QString & ) ) );
-+
-+ connect( this, SIGNAL( selectionChanged() ),
-+ this, SLOT( selectionChangedCommand() ) );
-+
-+ m_pCustomWidget->setSpacing( KDialog::spacingHint() );
-+ m_pCombosAndButtons->setSpacing( KDialog::spacingHint() );
-+
-+ updateCustomWidgetLayout();
-+}
-+
-+FileDialog::~FileDialog()
-+{
-+}
-+
-+void FileDialog::resizeEvent( QResizeEvent *pEvent )
-+{
-+ KFileDialog::resizeEvent( pEvent );
-+
-+ updateCustomWidgetLayout();
-+}
-+
-+void FileDialog::showEvent( QShowEvent *pEvent )
-+{
-+ KFileDialog::showEvent( pEvent );
-+
-+ updateCustomWidgetLayout();
-+}
-+
-+void FileDialog::updateCustomWidgetLayout()
-+{
-+ QPoint qReferencePoint = filterWidget->mapTo( this, QPoint( 0, 0 ) );
-+ QPoint qCustomPoint = m_pCustomWidget->mapTo( this, QPoint( 0, 0 ) );
-+
-+ int nLeft = qReferencePoint.x() - qCustomPoint.x();
-+ int nRight = m_pCustomWidget->width() - filterWidget->width() - nLeft;
-+
-+ nLeft -= KDialog::spacingHint();
-+ nRight -= KDialog::spacingHint();
-+ m_pLabels->setFixedWidth( ( nLeft > 0 )? nLeft: 80 );
-+ // FIXME The following call sets the width of m_pPushButtons all right,
-+ // but it also increases the width of m_pComboBoxes rapidly. Can we do
-+ // anything about it?
-+ m_pPushButtons->setFixedWidth( ( nRight > 0 )? nRight: 100 );
-+}
-+
-+void FileDialog::customEvent( QCustomEvent *pEvent )
-+{
-+ if ( pEvent && pEvent->type() == CommandEvent::TypeId )
-+ {
-+ CommandEvent *pCommandEvent = static_cast< CommandEvent* >( pEvent );
-+ QStringList *pStringList = pCommandEvent->stringList();
-+
-+ int nListSize = -1;
-+ if ( pStringList )
-+ nListSize = pStringList->size();
-+
-+ switch ( pCommandEvent->command() )
-+ {
-+ case CommandEvent::AppendControl:
-+ if ( nListSize >= 3 )
-+ {
-+ appendControl( (*pStringList)[0], (*pStringList)[1], (*pStringList)[2] );
-+ }
-+ break;
-+ case CommandEvent::EnableControl:
-+ if ( nListSize >= 2 )
-+ {
-+ enableControl( (*pStringList)[0], (*pStringList)[1] );
-+ }
-+ break;
-+ case CommandEvent::GetValue:
-+ if ( nListSize >= 2 )
-+ {
-+ getValue( (*pStringList)[0], (*pStringList)[1] );
-+ }
-+ break;
-+ case CommandEvent::SetValue:
-+ if ( nListSize >= 2 )
-+ {
-+ QStringList qStringList = (*pStringList);
-+ qStringList.pop_front();
-+ qStringList.pop_front();
-+
-+ setValue( (*pStringList)[0], (*pStringList)[1], qStringList );
-+ }
-+ break;
-+ case CommandEvent::AppendFilter:
-+ if ( nListSize >= 2 )
-+ {
-+ appendFilter( (*pStringList)[0], (*pStringList)[1] );
-+
-+ // update the filters widget
-+ setFilter( filters() );
-+ }
-+ break;
-+ case CommandEvent::AppendFilterGroup:
-+ if ( nListSize >= 1 )
-+ {
-+ QStringList::const_iterator it = pStringList->begin();
-+ ++it; // We ignore the filter group name
-+
-+ while ( it != pStringList->end() )
-+ {
-+ QString qTitle = *it;
-+ ++it;
-+ if ( it != pStringList->end() )
-+ {
-+ appendFilter( qTitle, (*it) );
-+ ++it;
-+ }
-+ }
-+
-+ // update the filters widget
-+ setFilter( filters() );
-+ }
-+ break;
-+ case CommandEvent::GetCurrentFilter:
-+ {
-+ QString qCurrentFilter = filterWidget->currentText();
-+ sendCommand( "currentFilter " + escapeString( qCurrentFilter ) );
-+ }
-+ break;
-+ case CommandEvent::SetCurrentFilter:
-+ if ( nListSize >= 1 )
-+ {
-+ static_cast< FileFilterComboHack* >( filterWidget )->setCurrentFilter( pStringList->front() );
-+ }
-+ break;
-+ case CommandEvent::GetDirectory:
-+ {
-+ QString qDirectory = baseURL().url();
-+ if ( qDirectory.startsWith( "file:/" ) && qDirectory.mid( 6, 1 ) != "/" )
-+ qDirectory.replace( "file:/", "file:///" );
-+ sendCommand( "currentDirectory " + escapeString( qDirectory ) );
-+ }
-+ break;
-+ case CommandEvent::SetDirectory:
-+ if ( nListSize >= 1 )
-+ {
-+ setURL( pStringList->front() );
-+ }
-+ break;
-+ case CommandEvent::GetFiles:
-+ {
-+ QString qString;
-+ qString.reserve( 1024 );
-+
-+ qString.append( "files" );
-+
-+ if ( result() == QDialog::Accepted )
-+ {
-+ KURL::List qList( selectedURLs() );
-+ for ( KURL::List::const_iterator it = qList.begin(); it != qList.end(); ++it )
-+ {
-+ qString.append( " " );
-+ QString qUrlStr = (*it).url();
-+ if ( qUrlStr.startsWith( "file:/" ) && qUrlStr.mid( 6, 1 ) != "/" )
-+ qUrlStr.replace( "file:/", "file:///" );
-+ appendEscaped( qString, addExtension( qUrlStr ) );
-+ }
-+ }
-+ else
-+ {
-+ // we have to return the selected files anyway
-+ const KFileItemList *pItems = ops->selectedItems();
-+ for ( KFileItemListIterator it( *pItems ); it.current(); ++it )
-+ {
-+ qString.append( " " );
-+ QString qUrlStr = (*it)->url().url();
-+ if ( qUrlStr.startsWith( "file:/" ) && qUrlStr.mid( 6, 1 ) != "/" )
-+ qUrlStr.replace( "file:/", "file:///" );
-+ appendEscaped( qString, addExtension( qUrlStr ) );
-+ }
-+ }
-+
-+ sendCommand( qString );
-+ setCanNotifySelection( true );
-+ }
-+ break;
-+ case CommandEvent::SetTitle:
-+ if ( nListSize >= 1 )
-+ {
-+ setCaption( pStringList->front() );
-+ }
-+ break;
-+ case CommandEvent::SetType:
-+ if ( nListSize >= 1 )
-+ {
-+ QString qType( pStringList->front() );
-+ if ( qType == "open" )
-+ {
-+ setIsSave( false );
-+ setCaption( i18n( "Open" ) );
-+ }
-+ else if ( qType == "save" )
-+ {
-+ setIsSave( true );
-+ setCaption( i18n( "Save As" ) );
-+ }
-+ }
-+ break;
-+ case CommandEvent::SetDefaultName:
-+ if ( nListSize >= 1 )
-+ {
-+ setSelection( pStringList->front() );
-+ }
-+ break;
-+ case CommandEvent::SetMultiSelection:
-+ if ( nListSize >= 1 )
-+ {
-+ if ( pStringList->front() == "true" )
-+ setMode( KFile::Files );
-+ else
-+ setMode( KFile::File );
-+ }
-+ break;
-+ case CommandEvent::Exec:
-+ {
-+ filterWidget->setEditable( false );
-+ QString qSelectedURL;
-+ do {
-+ setCanNotifySelection( true );
-+ exec();
-+ qSelectedURL = addExtension( selectedURL().url() );
-+ } while ( isSave() &&
-+ result() == QDialog::Accepted &&
-+ ( qSelectedURL.startsWith( "file:" ) && QFile::exists( qSelectedURL.mid( 5 ) ) ) &&
-+ KMessageBox::warningYesNo( 0,
-+ i18n( "A file named \"%1\" already exists. "
-+ "Are you sure you want to overwrite it?" ).arg( qSelectedURL ),
-+ i18n( "Overwrite File?" ),
-+ i18n( "Overwrite" ), KStdGuiItem::cancel() ) != KMessageBox::Yes );
-+
-+ if ( result() == QDialog::Accepted )
-+ sendCommand( "accept" );
-+ else
-+ sendCommand( "reject" );
-+ }
-+ break;
-+ default:
-+ break;
-+ }
-+
-+ // FIXME Some cleanup of pEvent? delete something, etc.?
-+ }
-+}
-+
-+void FileDialog::appendControl( const QString &rId, const QString &rType, const QString &rTitle )
-+{
-+ QString qLabel( rTitle );
-+ qLabel.replace( '~', '&' );
-+
-+ if ( rType == "checkbox" )
-+ {
-+ QCheckBox *pCheckBox = new QCheckBox( qLabel, m_pCheckBoxes, rId.utf8() );
-+
-+ pCheckBox->setEnabled( true );
-+ pCheckBox->setChecked( false );
-+ }
-+ else if ( rType == "listbox" )
-+ {
-+ QLabel *pComboLabel = new QLabel( qLabel, m_pLabels );
-+ QComboBox *pComboBox = new QComboBox( m_pComboBoxes, rId.utf8() );
-+
-+ pComboLabel->setBuddy( pComboBox );
-+ pComboBox->setEnabled( true );
-+ }
-+ else if ( rType == "pushbutton" )
-+ {
-+ QPushButton *pPushButton = new QPushButton( qLabel, m_pPushButtons, rId.utf8() );
-+ pPushButton->setEnabled( true );
-+ }
-+}
-+
-+QWidget* FileDialog::findControl( const QString &rId ) const
-+{
-+ QObjectList *pList = m_pCustomWidget->queryList();
-+ QCString qName( rId.utf8() );
-+ QObjectList::const_iterator it = pList->begin();
-+
-+ for ( ; it != pList->end() && qName != (*it)->name(); ++it )
-+ ;
-+
-+ QWidget *pWidget = NULL;
-+ if ( it != pList->end() )
-+ pWidget = static_cast< QWidget* >( *it );
-+
-+ delete pList;
-+
-+ return pWidget;
-+}
-+
-+void FileDialog::enableControl( const QString &rId, const QString &rValue )
-+{
-+ QWidget *pWidget = findControl( rId );
-+
-+ if ( pWidget )
-+ pWidget->setEnabled( rValue.lower() == "true" );
-+}
-+
-+void FileDialog::getValue( const QString &rId, const QString &rAction )
-+{
-+ QWidget *pWidget = findControl( rId );
-+ QString qString;
-+ qString.reserve( 1024 );
-+ qString.append( "value" );
-+
-+ if ( pWidget )
-+ {
-+ QCString qClassName = pWidget->className();
-+ if ( qClassName == "QCheckBox" )
-+ {
-+ QCheckBox *pCheckBox = static_cast< QCheckBox* >( pWidget );
-+
-+ if ( pCheckBox->isChecked() )
-+ qString.append( " bool true" );
-+ else
-+ qString.append( " bool false" );
-+ }
-+ else if ( qClassName == "QComboBox" )
-+ {
-+ QComboBox *pComboBox = static_cast< QComboBox* >( pWidget );
-+ if ( rAction == "getItems" )
-+ {
-+ qString.append( " stringList" );
-+ for ( int nIdx = 0; nIdx < pComboBox->count(); ++nIdx )
-+ {
-+ qString.append( ' ' );
-+ appendEscaped( qString, pComboBox->text( nIdx ) );
-+ }
-+ }
-+ else if ( rAction == "getSelectedItem" )
-+ {
-+ qString.append( " string " );
-+ appendEscaped( qString, pComboBox->currentText() );
-+ }
-+ else if ( rAction == "getSelectedItemIndex" )
-+ {
-+ qString.append( " int " );
-+ qString.append( QString().setNum( pComboBox->currentItem() ) );
-+ }
-+ // TODO getHelpURL
-+ }
-+ // TODO push button
-+ }
-+
-+ sendCommand( qString );
-+}
-+
-+void FileDialog::setValue( const QString &rId, const QString &rAction, const QStringList &rValue )
-+{
-+ QWidget *pWidget = findControl( rId );
-+
-+ if ( pWidget )
-+ {
-+ QCString qClassName = pWidget->className();
-+ if ( qClassName == "QCheckBox" )
-+ {
-+ QCheckBox *pCheckBox = static_cast< QCheckBox* >( pWidget );
-+
-+ bool bValue = ( !rValue.isEmpty() ) && ( rValue.front().lower() == "true" );
-+ pCheckBox->setChecked( bValue );
-+ }
-+ else if ( qClassName == "QComboBox" )
-+ {
-+ QComboBox *pComboBox = static_cast< QComboBox* >( pWidget );
-+ if ( rAction == "addItem" )
-+ {
-+ if ( !rValue.isEmpty() )
-+ pComboBox->insertItem( rValue.front() );
-+ }
-+ else if ( rAction == "addItems" )
-+ {
-+ pComboBox->insertStringList( rValue );
-+ }
-+ else if ( rAction == "deleteItem" )
-+ {
-+ if ( !rValue.isEmpty() )
-+ pComboBox->removeItem( rValue.front().toInt() );
-+ }
-+ else if ( rAction == "deleteItems" )
-+ {
-+ pComboBox->clear();
-+ }
-+ else if ( rAction == "setSelectedItem" )
-+ {
-+ if ( !rValue.isEmpty() )
-+ pComboBox->setCurrentItem( rValue.front().toInt() );
-+ }
-+ // FIXME setHelpURL is ignored
-+ }
-+ // TODO push button
-+ }
-+}
-+
-+void FileDialog::appendFilter( const QString &rTitle, const QString &rFilter )
-+{
-+ // Filters are separated by ';'
-+ QString qFilter( rFilter );
-+ qFilter.replace( QChar( ';' ), QChar( ' ' ) ).replace( "*.*", "*" );
-+
-+ m_aFilters.push_back( qMakePair( rTitle, qFilter ) );
-+}
-+
-+QString FileDialog::filters() const
-+{
-+ QString qString, qTmp;
-+ bool bFirstFilter = true;
-+
-+ for ( FilterList::const_iterator it = m_aFilters.begin(); it != m_aFilters.end(); ++it )
-+ {
-+ if ( bFirstFilter )
-+ bFirstFilter = false;
-+ else
-+ qString.append( '\n' );
-+
-+ qString.append( (*it).second );
-+ qString.append( '|' );
-+
-+ qTmp = (*it).first;
-+ qString.append( qTmp.replace( '/', "\\/" ) );
-+ }
-+
-+ return qString;
-+}
-+
-+QString FileDialog::addExtension( const QString &rFileName ) const
-+{
-+ if ( !isSave() )
-+ return rFileName;
-+
-+ QString qExtension;
-+
-+ QWidget *pExtensionWidget = findControl( "100" ); // CHECKBOX_AUTOEXTENSION
-+ QCheckBox *pExtensionCB = pExtensionWidget? static_cast< QCheckBox* >( pExtensionWidget->qt_cast( "QCheckBox" ) ): NULL;
-+ if ( pExtensionCB && pExtensionCB->isChecked() )
-+ {
-+ // FIXME: qFilter can be a MIME; we ignore it now...
-+ QStringList qFilterList = QStringList::split( " ", currentFilter() );
-+ for ( QStringList::const_iterator it = qFilterList.begin();
-+ qExtension.isEmpty() && it != qFilterList.end();
-+ ++it )
-+ {
-+ int nUnwanted = (*it).findRev( '*' );
-+ if ( nUnwanted < 0 )
-+ nUnwanted = (*it).findRev( '?' );
-+ else
-+ nUnwanted = ::std::max( nUnwanted, (*it).find( '?', nUnwanted ) );
-+
-+ int nIdx = (*it).find( '.', ::std::max( nUnwanted, 0 ) );
-+ if ( nIdx >= 0 )
-+ qExtension = (*it).mid( nIdx ).lower();
-+ }
-+ }
-+
-+ if ( qExtension.isEmpty() || qExtension == "." || rFileName.endsWith( qExtension ) )
-+ return rFileName;
-+ else
-+ return rFileName + qExtension;
-+}
-+
-+void FileDialog::fileHighlightedCommand( const QString & )
-+{
-+ if ( canNotifySelection() )
-+ {
-+ sendCommand( "fileSelectionChanged" );
-+ setCanNotifySelection( false );
-+ }
-+}
-+
-+void FileDialog::selectionChangedCommand()
-+{
-+ if ( canNotifySelection() )
-+ {
-+ sendCommand( "fileSelectionChanged" );
-+ setCanNotifySelection( false );
-+ }
-+}
-+
-+void FileDialog::sendCommand( const QString &rCommand )
-+{
-+#if OSL_DEBUG_LEVEL > 0
-+ ::std::cerr << "kdefilepicker sent: " << rCommand.latin1() << ::std::endl;
-+#endif
-+
-+ //m_aOutputStream << rCommand << endl;
-+ ::std::cout << rCommand.utf8() << ::std::endl;
-+}
-+
-+void FileDialog::appendEscaped( QString &rBuffer, const QString &rString )
-+{
-+ const QChar *pUnicode = rString.unicode();
-+ const QChar *pEnd = pUnicode + rString.length();
-+
-+ rBuffer.append( '"' );
-+ for ( ; pUnicode != pEnd; ++pUnicode )
-+ {
-+ if ( *pUnicode == '\\' )
-+ rBuffer.append( "\\\\" );
-+ else if ( *pUnicode == '"' )
-+ rBuffer.append( "\\\"" );
-+ else if ( *pUnicode == '\n' )
-+ rBuffer.append( "\\\n" );
-+ else
-+ rBuffer.append( *pUnicode );
-+ }
-+ rBuffer.append( '"' );
-+}
-+
-+QString FileDialog::escapeString( const QString &rString )
-+{
-+ QString qString;
-+ qString.reserve( 2*rString.length() + 2 ); // every char escaped + quotes
-+
-+ appendEscaped( qString, rString );
-+
-+ return qString;
-+}
-+
-+
-+void FileFilterComboHack::setCurrentFilter( const QString& filter )
-+{
-+ setCurrentText( filter );
-+ filterChanged();
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ fpicker/source/unx/kde/kdefilepicker.hxx 2004-06-11 14:03:03.937359576 +0200
-@@ -0,0 +1,147 @@
-+/*************************************************************************
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Jan Holesovsky <kendy@openoffice.org>
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _KDEFILEPICKER_HXX_
-+#define _KDEFILEPICKER_HXX_
-+
-+#include <kfiledialog.h>
-+#include <kfilefiltercombo.h>
-+
-+class QGrid;
-+class QHBox;
-+class QVBox;
-+
-+class FileDialog : public KFileDialog
-+{
-+ Q_OBJECT
-+
-+protected:
-+ typedef QPair< QString, QString > FilterEntry;
-+ typedef QValueList< FilterEntry > FilterList;
-+
-+ QVBox *m_pCustomWidget;
-+ QHBox *m_pCombosAndButtons;
-+
-+ QVBox *m_pLabels;
-+ QVBox *m_pComboBoxes;
-+ QVBox *m_pPushButtons;
-+
-+ QGrid *m_pCheckBoxes;
-+
-+ FilterList m_aFilters;
-+
-+ /** Are we a "Save As" dialog?
-+ *
-+ * We cannot use KFileDialog::setOperationMode() here, because then
-+ * it automatically adds an "Automatically select filename extension"
-+ * check box, and completely destroys the dialog's layout
-+ * (custom list boxes are under this check box, which looks ugly).
-+ */
-+ bool m_bIsSave;
-+
-+ bool m_bCanNotifySelection;
-+
-+public:
-+ FileDialog( const QString &startDir, const QString &filter,
-+ QWidget *parent, const char *name );
-+ virtual ~FileDialog();
-+
-+protected:
-+ virtual void resizeEvent( QResizeEvent *pEvent );
-+ virtual void showEvent( QShowEvent *pEvent );
-+ void updateCustomWidgetLayout();
-+
-+ virtual void customEvent( QCustomEvent *pEvent );
-+
-+protected:
-+ void appendControl( const QString &rId, const QString &rType, const QString &rTitle );
-+ QWidget* findControl( const QString &rId ) const;
-+ void enableControl( const QString &rId, const QString &rValue );
-+ void getValue( const QString &rId, const QString &rAction );
-+ void setValue( const QString &rId, const QString &rAction, const QStringList &rValue );
-+
-+ void appendFilter( const QString &rTitle, const QString &rFilter );
-+ QString filters() const;
-+ QString addExtension( const QString &rFileName ) const;
-+
-+ void setIsSave( bool bIsSave ) { m_bIsSave = bIsSave; }
-+ bool isSave( void ) const { return m_bIsSave; }
-+
-+ void setCanNotifySelection( bool bCanNotifySelection ) { m_bCanNotifySelection = bCanNotifySelection; }
-+ bool canNotifySelection( void ) const { return m_bCanNotifySelection; }
-+
-+protected slots:
-+ void fileHighlightedCommand( const QString & );
-+ void selectionChangedCommand();
-+
-+protected:
-+ void sendCommand( const QString &rCommand );
-+ void appendEscaped( QString &rBuffer, const QString &rString );
-+ QString escapeString( const QString &rString );
-+};
-+
-+class FileFilterComboHack : public KFileFilterCombo
-+{
-+public:
-+ void setCurrentFilter( const QString& filter );
-+};
-+
-+#endif // _KDEFILEPICKER_HXX_
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ fpicker/source/unx/kde/kdefpmain.cxx 2004-06-21 17:40:44.786843760 +0200
-@@ -0,0 +1,109 @@
-+/*************************************************************************
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Jan Holesovsky <kendy@openoffice.org>
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include <kdemodalityfilter.hxx>
-+#include <kdefilepicker.hxx>
-+#include <kdecommandthread.hxx>
-+
-+#include <kaboutdata.h>
-+#include <kapplication.h>
-+#include <kcmdlineargs.h>
-+
-+#include <iostream>
-+
-+//////////////////////////////////////////////////////////////////////////
-+// Main
-+//////////////////////////////////////////////////////////////////////////
-+
-+int main( int argc, char* argv[] )
-+{
-+ // we fake the name of the application to have "OpenOffice.org" in the
-+ // title
-+ KAboutData qAboutData( "kdefilepicker", I18N_NOOP( "OpenOffice.org" ),
-+ "0.1", I18N_NOOP( "kdefilepicker is an implementation of the KDE file dialog for OpenOffice.org." ),
-+ KAboutData::License_LGPL,
-+ "(c) 2004, Jan Holesovsky" );
-+ qAboutData.addAuthor( "Jan Holesovsky", I18N_NOOP("Original author and current maintainer"), "kendy@openoffice.org" );
-+
-+ // Let the user see that this does something...
-+ ::std::cerr << "kdefilepicker, an implementation of KDE file dialog for OOo." << ::std::endl
-+ << "Type 'exit' and press Enter to finish." << ::std::endl;
-+
-+ KCmdLineArgs::init( argc, argv, &qAboutData );
-+
-+ KLocale::setMainCatalogue( "kdialog" );
-+
-+ KApplication kApplication;
-+ //ModalityFilter qFilter( /*winid*/ 79691780 );
-+
-+ FileDialog aFileDialog( NULL, QString(), NULL, "kdefiledialog" );
-+
-+ CommandThread qCommandThread( &aFileDialog );
-+ qCommandThread.start();
-+
-+ kApplication.exec();
-+
-+ qCommandThread.wait();
-+
-+ ::std::cout << "exited" << ::std::endl;
-+
-+ return 0;
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ fpicker/source/unx/kde/kdemodalityfilter.cxx 2004-06-11 14:18:36.003663960 +0200
-@@ -0,0 +1,100 @@
-+/*************************************************************************
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Jan Holesovsky <kendy@openoffice.org>
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include <kdemodalityfilter.hxx>
-+
-+#include <kapplication.h>
-+#include <kdialogbase.h>
-+
-+#include <netwm.h>
-+#include <X11/Xlib.h>
-+#include <X11/Xutil.h>
-+
-+//////////////////////////////////////////////////////////////////////////
-+// Modality filter
-+//////////////////////////////////////////////////////////////////////////
-+
-+ModalityFilter::ModalityFilter( WId nWinId )
-+ : m_nWinId( nWinId )
-+{
-+ kapp->installEventFilter( this );
-+}
-+
-+ModalityFilter::~ModalityFilter()
-+{
-+ kapp->removeEventFilter( this );
-+}
-+
-+bool ModalityFilter::eventFilter( QObject *pObject, QEvent *pEvent )
-+{
-+ if ( pObject->isWidgetType() && pEvent->type() == QEvent::Show )
-+ {
-+ KDialogBase* pDlg = ::qt_cast< KDialogBase* >( pObject );
-+ if ( pDlg != NULL && m_nWinId != 0 )
-+ {
-+ XSetTransientForHint( qt_xdisplay(), pDlg->winId(), m_nWinId );
-+ NETWinInfo aInfo( qt_xdisplay(), pDlg->winId(), qt_xrootwin(), NET::WMState );
-+ aInfo.setState( NET::Modal, NET::Modal );
-+ m_nWinId = 0;
-+ }
-+ }
-+ return false;
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ fpicker/source/unx/kde/kdemodalityfilter.hxx 2004-06-11 13:50:46.856412912 +0200
-@@ -0,0 +1,79 @@
-+/*************************************************************************
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Jan Holesovsky <kendy@openoffice.org>
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _KDEMODALITYFILTER_HXX_
-+#define _KDEMODALITYFILTER_HXX_
-+
-+#include <qobject.h>
-+
-+class ModalityFilter : public QObject
-+{
-+private:
-+ WId m_nWinId;
-+
-+public:
-+ ModalityFilter( WId nWinId );
-+ virtual ~ModalityFilter();
-+
-+ virtual bool eventFilter( QObject *pObject, QEvent *pEvent );
-+};
-+
-+#endif // _KDEMODALITYFILTER_HXX_
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ fpicker/source/unx/kde/makefile.mk 2004-06-15 10:53:54.282583408 +0200
-@@ -0,0 +1,103 @@
-+#*************************************************************************
-+#
-+#
-+#
-+#
-+#
-+#
-+#
-+# The Contents of this file are made available subject to the terms of
-+# either of the following licenses
-+#
-+# - GNU Lesser General Public License Version 2.1
-+# - Sun Industry Standards Source License Version 1.1
-+#
-+# Sun Microsystems Inc., October, 2000
-+#
-+# GNU Lesser General Public License Version 2.1
-+# =============================================
-+# Copyright 2000 by Sun Microsystems, Inc.
-+# 901 San Antonio Road, Palo Alto, CA 94303, USA
-+#
-+# This library is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU Lesser General Public
-+# License version 2.1, as published by the Free Software Foundation.
-+#
-+# This library 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 for more details.
-+#
-+# You should have received a copy of the GNU Lesser General Public
-+# License along with this library; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+# MA 02111-1307 USA
-+#
-+#
-+# Sun Industry Standards Source License Version 1.1
-+# =================================================
-+# The contents of this file are subject to the Sun Industry Standards
-+# Source License Version 1.1 (the "License"); You may not use this file
-+# except in compliance with the License. You may obtain a copy of the
-+# License at http://www.openoffice.org/license.html.
-+#
-+# Software provided under this License is provided on an "AS IS" basis,
-+# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+# See the License for the specific provisions governing your rights and
-+# obligations concerning the Software.
-+#
-+# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+#
-+# Copyright: 2000 by Sun Microsystems, Inc.
-+#
-+# All Rights Reserved.
-+#
-+# Contributor(s): _______________________________________
-+#
-+#
-+#
-+#*************************************************************************
-+
-+PRJ=..$/..$/..
-+
-+PRJNAME=fpicker
-+TARGET=kdefilepicker
-+LIBTARGET=NO
-+ENABLE_EXCEPTIONS=TRUE
-+#COMP1TYPELIST=$(TARGET)
-+#COMPRDB=$(SOLARBINDIR)$/types.rdb
-+
-+# --- Settings -----------------------------------------------------
-+
-+.INCLUDE : settings.mk
-+
-+# ------------------------------------------------------------------
-+
-+.IF "$(GUIBASE)" != "unx" || "$(ENABLE_KDE)" != "TRUE"
-+
-+dummy:
-+ @echo "Nothing to build. GUIBASE == $(GUIBASE), ENABLE_KDE is not set"
-+
-+.ELSE # we build for KDE
-+
-+CFLAGS+= $(KDE_CFLAGS)
-+
-+# --- Files --------------------------------------------------------
-+
-+SLOFILES =\
-+ $(SLO)$/kdecommandthread.obj \
-+ $(SLO)$/kdefilepicker.obj \
-+ $(SLO)$/kdefilepicker.moc.obj \
-+ $(SLO)$/kdefpmain.obj \
-+ $(SLO)$/kdemodalityfilter.obj
-+
-+.ENDIF # "$(GUIBASE)" != "unx" || "$(ENABLE_KDE)" != "TRUE"
-+
-+# --- Targets ------------------------------------------------------
-+
-+.INCLUDE : target.mk
-+
-+$(MISC)$/kdefilepicker.moc.cxx : kdefilepicker.hxx
-+ $(MOC) $< -o $@
diff --git a/patches/src680/fpicker-kde-filter-name.diff b/patches/src680/fpicker-kde-filter-name.diff
deleted file mode 100644
index e7961297e..000000000
--- a/patches/src680/fpicker-kde-filter-name.diff
+++ /dev/null
@@ -1,21 +0,0 @@
---- fpicker/source/unx/kde/kdefilepicker.cxx 2005-05-09 15:16:26.005903927 +0200
-+++ fpicker/source/unx/kde/kdefilepicker.cxx 2005-05-09 15:16:13.962981172 +0200
-@@ -714,4 +714,18 @@ void FileFilterComboHack::setCurrentFilt
- {
- setCurrentText( filter );
- filterChanged();
-+
-+ // Workaround for 'Filter name (*.blah)' vs. 'Filter name'
-+ if ( currentText() != text( currentItem() ) )
-+ {
-+ int nItem = 0;
-+ for ( ; nItem < count() && !text( nItem ).startsWith( filter ); ++nItem );
-+
-+ if ( nItem < count() )
-+ setCurrentItem( nItem );
-+ else
-+ setCurrentItem( 0 );
-+
-+ filterChanged();
-+ }
- }
diff --git a/patches/src680/fpicker-kde-gcc4-visibility.diff b/patches/src680/fpicker-kde-gcc4-visibility.diff
deleted file mode 100644
index da7bbbef5..000000000
--- a/patches/src680/fpicker-kde-gcc4-visibility.diff
+++ /dev/null
@@ -1,35 +0,0 @@
---- svtools/inc/svtdata.hxx.old 2004-06-25 18:31:52.000000000 +0200
-+++ svtools/inc/svtdata.hxx 2005-04-29 15:19:20.000000000 +0200
-@@ -62,6 +62,12 @@
- #ifndef _SVTOOLS_SVTDATA_HXX
- #define _SVTOOLS_SVTDATA_HXX
-
-+#ifndef INCLUDED_SVLDLLAPI_H
-+#include "svtools/svldllapi.h"
-+#endif
-+#ifndef INCLUDED_SVTDLLAPI_H
-+#include "svtools/svtdllapi.h"
-+#endif
- #ifndef _LANG_HXX
- #include <tools/lang.hxx>
- #endif
-@@ -102,15 +108,15 @@
-
- public:
- ResMgr * GetResMgr(const ::com::sun::star::lang::Locale aLocale);
-- ResMgr * GetResMgr(); // VCL dependant, only available in SVT, not in SVL!
-+ SVT_DLLPUBLIC ResMgr * GetResMgr(); // VCL dependant, only available in SVT, not in SVL!
-
-- ResMgr * GetPatchResMgr();
-- ResMgr * GetPatchResMgr(const ::com::sun::star::lang::Locale& aLocale);
-+ ResMgr * GetPatchResMgr();
-+ ResMgr * GetPatchResMgr(const ::com::sun::star::lang::Locale& aLocale);
-
-
- SimpleResMgr * GetSimpleRM(const ::com::sun::star::lang::Locale& rLocale);
-
-- static ImpSvtData & GetSvtData();
-+ SVL_DLLPUBLIC static ImpSvtData & GetSvtData();
- };
-
- //============================================================================
diff --git a/patches/src680/fpicker-kde-partial-kio.diff b/patches/src680/fpicker-kde-partial-kio.diff
deleted file mode 100644
index 160264fa3..000000000
--- a/patches/src680/fpicker-kde-partial-kio.diff
+++ /dev/null
@@ -1,189 +0,0 @@
---- fpicker/source/unx/kde/kdefilepicker.hxx 2005-03-03 15:38:55.741091637 +0100
-+++ fpicker/source/unx/kde/kdefilepicker.hxx 2005-03-04 16:23:10.215148048 +0100
-@@ -96,6 +96,7 @@ protected:
- * (custom list boxes are under this check box, which looks ugly).
- */
- bool m_bIsSave;
-+ bool m_bIsExecuting;
-
- bool m_bCanNotifySelection;
-
-@@ -125,6 +126,12 @@ protected:
- void setIsSave( bool bIsSave ) { m_bIsSave = bIsSave; }
- bool isSave( void ) const { return m_bIsSave; }
-
-+ void setIsExecuting( bool bIsExecuting ) { m_bIsExecuting = bIsExecuting; }
-+ bool isExecuting( void ) const { return m_bIsExecuting; }
-+
-+ bool isSupportedProtocol( const QString &rProtocol ) const;
-+ QString localCopy( const QString &rFileName ) const;
-+
- void setCanNotifySelection( bool bCanNotifySelection ) { m_bCanNotifySelection = bCanNotifySelection; }
- bool canNotifySelection( void ) const { return m_bCanNotifySelection; }
-
---- fpicker/source/unx/kde/kdefilepicker.cxx 2005-03-03 15:38:50.737956764 +0100
-+++ fpicker/source/unx/kde/kdefilepicker.cxx 2005-03-04 16:39:33.815625995 +0100
-@@ -79,8 +79,10 @@
- #include <kdiroperator.h>
- #include <kfiledialog.h>
- #include <kfilefiltercombo.h>
-+#include <kio/netaccess.h>
- #include <klocale.h>
- #include <kmessagebox.h>
-+#include <ktempfile.h>
-
- #include <algorithm>
- #include <iostream>
-@@ -98,6 +100,7 @@ FileDialog::FileDialog( const QString &s
- m_pPushButtons( new QVBox( m_pCombosAndButtons ) ),
- m_pCheckBoxes( new QGrid( 2, m_pCustomWidget ) ),
- m_bIsSave( false ),
-+ m_bIsExecuting( false ),
- m_bCanNotifySelection( true )
- {
- connect( this, SIGNAL( fileHighlighted( const QString & ) ),
-@@ -257,10 +260,16 @@ void FileDialog::customEvent( QCustomEve
- for ( KURL::List::const_iterator it = qList.begin(); it != qList.end(); ++it )
- {
- qString.append( " " );
-- QString qUrlStr = (*it).url();
-+ QString qUrlStr = addExtension( (*it).url() );
-+
-+ if ( !isExecuting() && !isSupportedProtocol( KURL( qUrlStr ).protocol() ) )
-+ qUrlStr = localCopy( qUrlStr );
-+
- if ( qUrlStr.startsWith( "file:/" ) && qUrlStr.mid( 6, 1 ) != "/" )
- qUrlStr.replace( "file:/", "file:///" );
-- appendEscaped( qString, addExtension( qUrlStr ) );
-+
-+ if ( !qUrlStr.isEmpty() )
-+ appendEscaped( qString, qUrlStr );
- }
- }
- else
-@@ -270,10 +279,16 @@ void FileDialog::customEvent( QCustomEve
- for ( KFileItemListIterator it( *pItems ); it.current(); ++it )
- {
- qString.append( " " );
-- QString qUrlStr = (*it)->url().url();
-+ QString qUrlStr = addExtension( (*it)->url().url() );
-+
-+ if ( !isExecuting() && !isSupportedProtocol( KURL( qUrlStr ).protocol() ) )
-+ qUrlStr = localCopy( qUrlStr );
-+
- if ( qUrlStr.startsWith( "file:/" ) && qUrlStr.mid( 6, 1 ) != "/" )
- qUrlStr.replace( "file:/", "file:///" );
-- appendEscaped( qString, addExtension( qUrlStr ) );
-+
-+ if ( !qUrlStr.isEmpty() )
-+ appendEscaped( qString, qUrlStr );
- }
- }
-
-@@ -322,18 +337,47 @@ void FileDialog::customEvent( QCustomEve
- {
- filterWidget->setEditable( false );
- QString qSelectedURL;
-+ setIsExecuting( true );
-+ bool bCanExit = false;
- do {
- setCanNotifySelection( true );
- exec();
-+
- qSelectedURL = addExtension( selectedURL().url() );
-- } while ( isSave() &&
-- result() == QDialog::Accepted &&
-- ( qSelectedURL.startsWith( "file:" ) && QFile::exists( qSelectedURL.mid( 5 ) ) ) &&
-- KMessageBox::warningYesNo( 0,
-- i18n( "A file named \"%1\" already exists. "
-- "Are you sure you want to overwrite it?" ).arg( qSelectedURL ),
-- i18n( "Overwrite File?" ),
-- i18n( "Overwrite" ), KStdGuiItem::cancel() ) != KMessageBox::Yes );
-+ QString qProtocol( selectedURL().protocol() );
-+
-+ if ( isSave() && result() == QDialog::Accepted )
-+ {
-+ if ( qSelectedURL.startsWith( "file:" ) )
-+ {
-+ bCanExit =
-+ !QFile::exists( qSelectedURL.mid( 5 ) ) ||
-+ ( KMessageBox::warningYesNo( 0,
-+ i18n( "A file named \"%1\" already exists. "
-+ "Are you sure you want to overwrite it?" ).arg( qSelectedURL ),
-+ i18n( "Overwrite File?" ),
-+ i18n( "Overwrite" ), KStdGuiItem::cancel() ) == KMessageBox::Yes );
-+ }
-+ else if ( !isSupportedProtocol( qProtocol ) )
-+ {
-+ KMessageBox::sorry( 0,
-+ i18n( "Saving using protocol \"%1\" is not supported." ).arg( qProtocol ) );
-+ bCanExit = false;
-+ }
-+ else
-+ bCanExit = true;
-+ }
-+ else if ( !isSave() && result() == QDialog::Accepted && !isSupportedProtocol( qProtocol ) )
-+ {
-+ KMessageBox::information( 0,
-+ i18n( "Protocol \"%1\" is supported only partially. "
-+ "Local copy of the file will be created." ).arg( qProtocol ) );
-+ bCanExit = true;
-+ }
-+ else
-+ bCanExit = true;
-+ } while ( !bCanExit );
-+ setIsExecuting( false );
-
- if ( result() == QDialog::Accepted )
- sendCommand( "accept" );
-@@ -563,6 +607,50 @@ QString FileDialog::addExtension( const
- return rFileName + qExtension;
- }
-
-+bool FileDialog::isSupportedProtocol( const QString &rProtocol ) const
-+{
-+ // TODO Get this information directly from OOo
-+ const char * pOOoProtocols[] = { "", "ftp", "http", "file", "mailto",
-+ "vnd.sun.star.webdav", "news", "private", "vnd.sun.star.help",
-+ "https", "slot", "macro", "javascript", "imap", "pop3", "data",
-+ "cid", "out", "vnd.sun.star.wfs", "vnd.sun.star.hier", "vim",
-+ ".uno", ".component", "vnd.sun.star.pkg", "ldap", "db",
-+ "vnd.sun.star.cmd", "vnd.sun.star.script", "vnd.sun.star.odma",
-+ "telnet",
-+ NULL };
-+
-+ for ( const char **pIndex = pOOoProtocols; *pIndex != NULL; ++pIndex )
-+ {
-+ if ( rProtocol == *pIndex )
-+ return true;
-+ }
-+
-+ // TODO gnome-vfs bits here
-+
-+ return false;
-+}
-+
-+QString FileDialog::localCopy( const QString &rFileName ) const
-+{
-+ int nExtensionPos = rFileName.findRev( '/' );
-+ if ( nExtensionPos >= 0 )
-+ nExtensionPos = rFileName.find( '.', nExtensionPos );
-+ else
-+ nExtensionPos = rFileName.find( '.' );
-+
-+ KTempFile qTempFile( QString::null, ( nExtensionPos < 0 )? QString(): rFileName.mid( nExtensionPos ) );
-+ KURL qDestURL;
-+ qDestURL.setPath( qTempFile.name() );
-+
-+ if ( !KIO::NetAccess::file_copy( rFileName, qDestURL, 0600, true, false, NULL ) )
-+ {
-+ KMessageBox::error( 0, KIO::NetAccess::lastErrorString() );
-+ return QString::null;
-+ }
-+
-+ return qDestURL.url();
-+}
-+
- void FileDialog::fileHighlightedCommand( const QString & )
- {
- if ( canNotifySelection() )
diff --git a/patches/src680/fpicker-kde-resmgr.diff b/patches/src680/fpicker-kde-resmgr.diff
deleted file mode 100644
index fc1d0c79a..000000000
--- a/patches/src680/fpicker-kde-resmgr.diff
+++ /dev/null
@@ -1,72 +0,0 @@
---- fpicker/source/unx/kde_unx/UnxFilePicker.cxx 2005-05-23 16:40:20.093844000 +0200
-+++ fpicker/source/unx/kde_unx/UnxFilePicker.cxx 2005-05-26 10:49:11.305359078 +0200
-@@ -107,8 +107,8 @@
- #include <FPServiceInfo.hxx>
- #endif
-
--#ifndef _SVTOOLS_SVTDATA_HXX
--#include <svtools/svtdata.hxx>
-+#ifndef _TOOLS_RESMGR_HXX
-+#include <tools/resmgr.hxx>
- #endif
-
- #ifndef _SVTOOLS_HRC
-@@ -178,7 +178,8 @@ UnxFilePicker::UnxFilePicker( const uno:
- m_nFilePickerWrite( -1 ),
- m_nFilePickerRead( -1 ),
- m_pNotifyThread( NULL ),
-- m_pCommandThread( NULL )
-+ m_pCommandThread( NULL ),
-+ m_pResMgr( CREATEVERSIONRESMGR( fps_office ) )
- {
- }
-
-@@ -211,6 +212,8 @@ UnxFilePicker::~UnxFilePicker()
-
- if ( m_nFilePickerRead >= 0 )
- close( m_nFilePickerRead );
-+
-+ delete m_pResMgr, m_pResMgr = NULL;
- }
-
- void SAL_CALL UnxFilePicker::addFilePickerListener( const uno::Reference<XFilePickerListener>& xListener )
-@@ -970,7 +973,7 @@ void UnxFilePicker::sendAppendControlCom
- aBuffer.appendAscii( " ", 1 );
- appendEscaped( aBuffer, aType );
- aBuffer.appendAscii( " ", 1 );
-- appendEscaped( aBuffer, String( SvtResId( nTitleId ) ) );
-+ appendEscaped( aBuffer, String( ResId( nTitleId, m_pResMgr ) ) );
-
- sendCommand( aBuffer.makeStringAndClear() );
- }
---- fpicker/source/unx/kde_unx/UnxFilePicker.hxx 2005-05-23 16:40:20.094844000 +0200
-+++ fpicker/source/unx/kde_unx/UnxFilePicker.hxx 2005-05-26 10:40:18.652234700 +0200
-@@ -114,6 +114,7 @@
-
- class UnxFilePickerCommandThread;
- class UnxFilePickerNotifyThread;
-+class ResMgr;
-
- class UnxFilePickerDummy
- {
-@@ -145,6 +146,8 @@ protected:
- UnxFilePickerNotifyThread *m_pNotifyThread;
- UnxFilePickerCommandThread *m_pCommandThread;
-
-+ ResMgr *m_pResMgr;
-+
- public:
- UnxFilePicker( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceMgr );
- virtual ~UnxFilePicker();
---- fpicker/util/makefile.mk 2005-05-23 16:40:03.889639000 +0200
-+++ fpicker/util/makefile.mk 2005-05-26 10:52:51.299413013 +0200
-@@ -108,8 +108,7 @@ DEF1EXPORTFILE= exports.dxp
-
- .IF "$(ENABLE_KDE)" == "TRUE"
- SHL3TARGET=fps_kde
--SHL3STDLIBS=$(COMMON_LIBS) \
-- $(SVTOOLLIB)
-+SHL3STDLIBS=$(COMMON_LIBS)
- SHL3DEPN=
- SHL3IMPLIB=i$(SHL1TARGET)
- SHL3LIBS=$(SLB)$/fps_kde.lib
diff --git a/patches/src680/fpicker-kde-service.diff b/patches/src680/fpicker-kde-service.diff
deleted file mode 100644
index 56a1d79bb..000000000
--- a/patches/src680/fpicker-kde-service.diff
+++ /dev/null
@@ -1,2423 +0,0 @@
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ fpicker/source/unx/kde_unx/UnxFPentry.cxx 2004-06-14 14:08:19.923932848 +0200
-@@ -0,0 +1,169 @@
-+/*************************************************************************
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _CPPUHELPER_FACTORY_HXX_
-+#include <cppuhelper/factory.hxx>
-+#endif
-+
-+#ifndef _COM_SUN_STAR_CONTAINER_XSET_HPP_
-+#include <com/sun/star/container/XSet.hpp>
-+#endif
-+
-+#ifndef _OSL_DIAGNOSE_H_
-+#include <osl/diagnose.h>
-+#endif
-+
-+#ifndef _UNXFILEPICKER_HXX_
-+#include "UnxFilePicker.hxx"
-+#endif
-+
-+#ifndef _FPSERVICEINFO_HXX_
-+#include "FPServiceInfo.hxx"
-+#endif
-+
-+using namespace ::rtl;
-+using namespace ::com::sun::star::uno;
-+using namespace ::com::sun::star::container;
-+using namespace ::com::sun::star::lang;
-+using namespace ::com::sun::star::registry;
-+using namespace ::cppu;
-+using ::com::sun::star::ui::dialogs::XFilePicker;
-+
-+//////////////////////////////////////////////////////////////////////////
-+//
-+//////////////////////////////////////////////////////////////////////////
-+
-+static Reference< XInterface > SAL_CALL createInstance( const Reference< XMultiServiceFactory >& rServiceManager )
-+{
-+ return Reference< XInterface >(
-+ static_cast< XFilePicker* >( new UnxFilePicker( rServiceManager ) ) );
-+}
-+
-+//////////////////////////////////////////////////////////////////////////
-+// the three uno functions that will be exported
-+//////////////////////////////////////////////////////////////////////////
-+
-+extern "C"
-+{
-+
-+//////////////////////////////////////////////////////////////////////////
-+// component_getImplementationEnvironment
-+//////////////////////////////////////////////////////////////////////////
-+
-+void SAL_CALL component_getImplementationEnvironment( const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
-+{
-+ *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
-+}
-+
-+//////////////////////////////////////////////////////////////////////////
-+//
-+//////////////////////////////////////////////////////////////////////////
-+
-+sal_Bool SAL_CALL component_writeInfo( void* pServiceManager, void* pRegistryKey )
-+{
-+ sal_Bool bRetVal = sal_True;
-+
-+ if ( pRegistryKey )
-+ {
-+ try
-+ {
-+ Reference< XRegistryKey > pXNewKey( static_cast< XRegistryKey* >( pRegistryKey ) );
-+ pXNewKey->createKey( OUString::createFromAscii( FILE_PICKER_REGKEY_NAME ) );
-+ }
-+ catch( InvalidRegistryException& )
-+ {
-+ OSL_ENSURE( sal_False, "InvalidRegistryException caught" );
-+ bRetVal = sal_False;
-+ }
-+ }
-+
-+ return bRetVal;
-+}
-+
-+//////////////////////////////////////////////////////////////////////////
-+//
-+//////////////////////////////////////////////////////////////////////////
-+
-+void* SAL_CALL component_getFactory( const sal_Char* pImplName, uno_Interface* pSrvManager, uno_Interface* pRegistryKey )
-+{
-+ void* pRet = 0;
-+
-+ if ( pSrvManager && ( 0 == rtl_str_compare( pImplName, FILE_PICKER_IMPL_NAME ) ) )
-+ {
-+ Sequence< OUString > aSNS( 1 );
-+ aSNS.getArray( )[0] = OUString::createFromAscii( FILE_PICKER_SERVICE_NAME );
-+
-+ Reference< XSingleServiceFactory > xFactory ( createSingleFactory(
-+ reinterpret_cast< XMultiServiceFactory* > ( pSrvManager ),
-+ OUString::createFromAscii( pImplName ),
-+ createInstance,
-+ aSNS ) );
-+ if ( xFactory.is() )
-+ {
-+ xFactory->acquire();
-+ pRet = xFactory.get();
-+ }
-+ }
-+
-+ return pRet;
-+}
-+
-+} // extern "C"
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ fpicker/source/unx/kde_unx/FPServiceInfo.hxx 2004-06-14 14:09:17.226221576 +0200
-@@ -0,0 +1,77 @@
-+/*************************************************************************
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _FPSERVICEINFO_HXX_
-+#define _FPSERVICEINFO_HXX_
-+
-+// the service names
-+#define FILE_PICKER_SERVICE_NAME "com.sun.star.ui.dialogs.KDEFilePicker"
-+
-+// the implementation names
-+#define FILE_PICKER_IMPL_NAME "com.sun.star.ui.dialogs.UnxFilePicker"
-+
-+// the registry key names
-+// a key under which this service will be registered,
-+// Format: -> "/ImplName/UNO/SERVICES/ServiceName"
-+// <Implementation-Name></UNO/SERVICES/><Service-Name>
-+#define FILE_PICKER_REGKEY_NAME "/com.sun.star.ui.dialogs.UnxFilePicker/UNO/SERVICES/com.sun.star.ui.dialogs.KDEFilePicker"
-+
-+#endif
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ fpicker/source/unx/kde_unx/fps_kde.xml 2004-06-21 17:30:23.370313432 +0200
-@@ -0,0 +1,51 @@
-+<?xml version="1.0" encoding="UTF-8"?>
-+<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd">
-+<module-description xmlns:xlink="http://www.w3.org/1999/xlink">
-+ <module-name>fps_kde</module-name>
-+ <component-description>
-+ <author> Jan Holesovsky </author>
-+ <name> com.sun.star.comp.ui.dialogs.FilePicker </name>
-+ <description>
-+ The KDE implementation of the FilePicker service.
-+ </description>
-+ <loader-name>com.sun.star.loader.SharedLibrary</loader-name>
-+ <language> c++ </language>
-+ <status value="beta"/>
-+ <supported-service> com.sun.star.ui.dialogs.FilePicker </supported-service>
-+ <service-dependency>...</service-dependency>
-+ <type> com.sun.star.ui.dialogs.XExecutableDialog </type>
-+ <type> com.sun.star.ui.dialogs.XFilePicker </type>
-+ <type> com.sun.star.ui.dialogs.XFilterManager </type>
-+ <type> com.sun.star.ui.dialogs.XFilterGroupManager </type>
-+ <type> com.sun.star.ui.dialogs.XFilePickerListener </type>
-+ <type> com.sun.star.ui.dialogs.ExecutableDialogException </type>
-+ <type> com.sun.star.ui.dialogs.XFilePickerNotifier </type>
-+ <type> com.sun.star.ui.dialogs.XFilePickerControlAccess </type>
-+ <type> com.sun.star.ui.dialogs.XFilePreview </type>
-+ <type> com.sun.star.ui.dialogs.ExtendedFilePickerElementIds </type>
-+ <type> com.sun.star.ui.dialogs.ExecutableDialogResults </type>
-+ <type> com.sun.star.ui.dialogs.FilePickerEvent </type>
-+ <type> com.sun.star.ui.dialogs.CommonFilePickerElementIds </type>
-+ <type> com.sun.star.ui.dialogs.ListboxControlActions </type>
-+ <type> com.sun.star.ui.dialogs.TemplateDescription </type>
-+ <type> com.sun.star.ui.dialogs.FilePreviewImageFormats </type>
-+ <type> com.sun.star.util.XCancellable </type>
-+ <type> com.sun.star.lang.XComponent </type>
-+ <type> com.sun.star.lang.XMultiServiceFactory </type>
-+ <type> com.sun.star.lang.XSingleServiceFactory </type>
-+ <type> com.sun.star.lang.XServiceInfo </type>
-+ <type> com.sun.star.lang.XTypeProvider </type>
-+ <type> com.sun.star.lang.IllegalArgumentException </type>
-+ <type> com.sun.star.uno.TypeClass </type>
-+ <type> com.sun.star.uno.XWeak </type>
-+ <type> com.sun.star.uno.XAggregation </type>
-+ <type> com.sun.star.registry.XRegistryKey </type>
-+ <type> com.sun.star.container.XSet </type>
-+ </component-description>
-+ <project-build-dependency> cppuhelper </project-build-dependency>
-+ <project-build-dependency> cppu </project-build-dependency>
-+ <project-build-dependency> sal </project-build-dependency>
-+ <runtime-module-dependency> cppuhelper </runtime-module-dependency>
-+ <runtime-module-dependency> cppu2 </runtime-module-dependency>
-+ <runtime-module-dependency> sal2 </runtime-module-dependency>
-+</module-description>
-
-
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ fpicker/source/unx/kde_unx/makefile.mk 2004-06-15 10:52:55.099580592 +0200
-@@ -0,0 +1,98 @@
-+#*************************************************************************
-+#
-+#
-+#
-+#
-+#
-+#
-+#
-+# The Contents of this file are made available subject to the terms of
-+# either of the following licenses
-+#
-+# - GNU Lesser General Public License Version 2.1
-+# - Sun Industry Standards Source License Version 1.1
-+#
-+# Sun Microsystems Inc., October, 2000
-+#
-+# GNU Lesser General Public License Version 2.1
-+# =============================================
-+# Copyright 2000 by Sun Microsystems, Inc.
-+# 901 San Antonio Road, Palo Alto, CA 94303, USA
-+#
-+# This library is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU Lesser General Public
-+# License version 2.1, as published by the Free Software Foundation.
-+#
-+# This library 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 for more details.
-+#
-+# You should have received a copy of the GNU Lesser General Public
-+# License along with this library; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+# MA 02111-1307 USA
-+#
-+#
-+# Sun Industry Standards Source License Version 1.1
-+# =================================================
-+# The contents of this file are subject to the Sun Industry Standards
-+# Source License Version 1.1 (the "License"); You may not use this file
-+# except in compliance with the License. You may obtain a copy of the
-+# License at http://www.openoffice.org/license.html.
-+#
-+# Software provided under this License is provided on an "AS IS" basis,
-+# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+# See the License for the specific provisions governing your rights and
-+# obligations concerning the Software.
-+#
-+# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+#
-+# Copyright: 2000 by Sun Microsystems, Inc.
-+#
-+# All Rights Reserved.
-+#
-+# Contributor(s): _______________________________________
-+#
-+#
-+#
-+#*************************************************************************
-+
-+PRJ=..$/..$/..
-+
-+PRJNAME=fpicker
-+TARGET=fps_kde
-+#LIBTARGET=NO
-+ENABLE_EXCEPTIONS=TRUE
-+#COMP1TYPELIST=$(TARGET)
-+#COMPRDB=$(SOLARBINDIR)$/types.rdb
-+
-+# --- Settings -----------------------------------------------------
-+
-+.INCLUDE : settings.mk
-+
-+# ------------------------------------------------------------------
-+
-+# Currently just KDE is supported...
-+.IF "$(GUIBASE)" != "unx" || "$(ENABLE_KDE)" != "TRUE"
-+
-+dummy:
-+ @echo "Nothing to build. GUIBASE == $(GUIBASE), ENABLE_KDE is not set"
-+
-+.ELSE # we build for KDE
-+
-+# --- Files --------------------------------------------------------
-+
-+SLOFILES =\
-+ $(SLO)$/UnxCommandThread.obj \
-+ $(SLO)$/UnxFilePicker.obj \
-+ $(SLO)$/UnxNotifyThread.obj \
-+ $(SLO)$/UnxFPentry.obj
-+
-+.ENDIF # "$(GUIBASE)" != "unx" || "$(ENABLE_KDE)" != "TRUE"
-+
-+# --- Targets ------------------------------------------------------
-+
-+.INCLUDE : target.mk
-
-
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ fpicker/source/unx/kde_unx/UnxCommandThread.cxx 2004-06-21 17:39:06.421797520 +0200
-@@ -0,0 +1,355 @@
-+/*************************************************************************
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Jan Holesovsky <kendy@openoffice.org>
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _UNXCOMMANDTHREAD_HXX_
-+#include <UnxCommandThread.hxx>
-+#endif
-+
-+#ifndef _UNXNOTIFYTHREAD_HXX_
-+#include <UnxNotifyThread.hxx>
-+#endif
-+
-+#ifndef _RTL_USTRING_H_
-+#include <rtl/ustring.hxx>
-+#endif
-+
-+#ifndef _RTL_USTRBUF_HXX_
-+#include <rtl/ustrbuf.hxx>
-+#endif
-+
-+#include <unistd.h>
-+
-+#include <iostream>
-+
-+using namespace ::com::sun::star;
-+
-+//////////////////////////////////////////////////////////////////////////
-+// UnxFilePickerCommandThread
-+//////////////////////////////////////////////////////////////////////////
-+
-+UnxFilePickerCommandThread::UnxFilePickerCommandThread( UnxFilePickerNotifyThread *pNotifyThread, int nReadFD )
-+ : m_pNotifyThread( pNotifyThread ),
-+ m_nReadFD( nReadFD )
-+{
-+}
-+
-+UnxFilePickerCommandThread::~UnxFilePickerCommandThread()
-+{
-+}
-+
-+sal_Bool SAL_CALL UnxFilePickerCommandThread::result()
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ return m_aResult;
-+}
-+
-+::rtl::OUString SAL_CALL UnxFilePickerCommandThread::getCurrentFilter()
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ return m_aGetCurrentFilter;
-+}
-+
-+::rtl::OUString SAL_CALL UnxFilePickerCommandThread::getDirectory()
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ return m_aGetDirectory;
-+}
-+
-+uno::Sequence< ::rtl::OUString > SAL_CALL UnxFilePickerCommandThread::getFiles()
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ sal_Int32 nSize = m_aGetFiles.size();
-+ uno::Sequence< ::rtl::OUString > aFiles( ( nSize > 1 )? nSize + 1: nSize );
-+
-+ if ( nSize == 1 )
-+ aFiles[0] = m_aGetFiles.front();
-+ else if ( nSize > 1 )
-+ {
-+ // First entry in the sequence must be the dirname, the others are the
-+ // filenames, so we have to rearrange the list...
-+
-+ ::rtl::OUString aFront = m_aGetFiles.front();
-+ sal_Int32 nLastSlash = aFront.lastIndexOf( '/' );
-+
-+ aFiles[0] = ( nLastSlash >= 0 )? aFront.copy( 0, nLastSlash ): ::rtl::OUString();
-+ ++nLastSlash;
-+
-+ sal_Int32 nIdx = 1;
-+ for ( ::std::list< ::rtl::OUString >::const_iterator it = m_aGetFiles.begin();
-+ it != m_aGetFiles.end(); ++it, ++nIdx )
-+ {
-+ sal_Int32 nLength = (*it).getLength() - nLastSlash;
-+ aFiles[nIdx] = ( nLength >= 0 )? (*it).copy( nLastSlash, nLength ): ::rtl::OUString();
-+ }
-+ }
-+
-+ return aFiles;
-+}
-+
-+uno::Any SAL_CALL UnxFilePickerCommandThread::getValue()
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ return m_aGetValue;
-+}
-+
-+void SAL_CALL UnxFilePickerCommandThread::run()
-+{
-+ if ( m_nReadFD < 0 )
-+ return;
-+
-+ sal_Int32 nBufferSize = 1024; // 1 is for testing, 1024 for real use
-+ sal_Char *pBuffer = new sal_Char[nBufferSize];
-+ sal_Char *pBufferEnd = pBuffer + nBufferSize;
-+
-+ sal_Char *pWhereToRead = pBuffer;
-+ sal_Char *pEntryBegin = pBuffer;
-+ sal_Int32 nBytesRead = 0;
-+ sal_Bool bShouldExit = sal_False;
-+ while ( !bShouldExit && ( nBytesRead = read( m_nReadFD, pWhereToRead, pBufferEnd - pWhereToRead ) ) > 0 )
-+ {
-+ sal_Bool bFoundNL = sal_False;
-+ sal_Char *pWhereToReadEnd = pWhereToRead + nBytesRead;
-+ sal_Char *pEntryEnd = pWhereToRead;
-+ do {
-+ for ( ; pEntryEnd < pWhereToReadEnd && *pEntryEnd != '\n'; ++pEntryEnd )
-+ ;
-+
-+ if ( pEntryEnd < pWhereToReadEnd )
-+ {
-+ bFoundNL = sal_True;
-+ *pEntryEnd = 0;
-+
-+ if ( strcmp( pEntryBegin, "exited" ) == 0 )
-+ bShouldExit = sal_True;
-+ else
-+ handleCommand( ::rtl::OUString( pEntryBegin, pEntryEnd - pEntryBegin, RTL_TEXTENCODING_UTF8 )/*, bQuit*/ );
-+
-+ pEntryBegin = pEntryEnd + 1;
-+ }
-+ } while ( pEntryEnd < pWhereToReadEnd );
-+
-+ if ( bFoundNL )
-+ {
-+ if ( pEntryBegin < pBufferEnd )
-+ memmove( pBuffer, pEntryBegin, pWhereToReadEnd - pEntryBegin );
-+ }
-+ else
-+ {
-+ // enlarge the buffer size
-+ nBufferSize *= 2;
-+ sal_Char *pNewBuffer = new sal_Char[nBufferSize];
-+ if ( pEntryBegin < pBufferEnd )
-+ memmove( pNewBuffer, pEntryBegin, pWhereToReadEnd - pEntryBegin );
-+
-+ delete[] pBuffer;
-+ pBuffer = pNewBuffer;
-+ pBufferEnd = pBuffer + nBufferSize;
-+ }
-+
-+ pWhereToRead = pBuffer + ( pWhereToReadEnd - pEntryBegin );
-+ pEntryBegin = pBuffer;
-+ }
-+}
-+
-+void SAL_CALL UnxFilePickerCommandThread::handleCommand( const ::rtl::OUString &rCommand )
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+#if OSL_DEBUG_LEVEL > 0
-+ ::std::cerr << "UnxFilePicker received: \"" <<
-+ OUStringToOString( rCommand, RTL_TEXTENCODING_ASCII_US ).getStr() << "\"" << ::std::endl;
-+#endif
-+
-+ ::std::list< ::rtl::OUString > aList = tokenize( rCommand );
-+
-+ if ( aList.size() == 0 )
-+ return;
-+
-+ ::rtl::OUString aCommandName = aList.front();
-+ aList.pop_front();
-+
-+ if ( aCommandName.equalsAscii( "accept" ) )
-+ {
-+ m_aResult = sal_True;
-+ m_aExecCondition.set();
-+ }
-+ else if ( aCommandName.equalsAscii( "reject" ) )
-+ {
-+ m_aResult = sal_False;
-+ m_aExecCondition.set();
-+ }
-+ else if ( aCommandName.equalsAscii( "fileSelectionChanged" ) )
-+ {
-+ if ( m_pNotifyThread )
-+ m_pNotifyThread->fileSelectionChanged();
-+ }
-+ else if ( aCommandName.equalsAscii( "files" ) )
-+ {
-+ m_aGetFiles = aList;
-+ m_aGetFilesCondition.set();
-+ }
-+ else if ( aCommandName.equalsAscii( "value" ) )
-+ {
-+ ::rtl::OUString aType;
-+ if ( !aList.empty() )
-+ {
-+ aType = aList.front();
-+ aList.pop_front();
-+ }
-+
-+ if ( aType.equalsAscii( "bool" ) )
-+ {
-+ sal_Bool bValue = !aList.empty() && aList.front().equalsIgnoreAsciiCaseAscii( "true" );
-+
-+ m_aGetValue <<= bValue;
-+ m_aGetValueCondition.set();
-+ }
-+ else if ( aType.equalsAscii( "int" ) )
-+ {
-+ sal_Int32 nValue = 0;
-+ if ( !aList.empty() )
-+ nValue = aList.front().toInt32();
-+
-+ m_aGetValue <<= nValue;
-+ m_aGetValueCondition.set();
-+ }
-+ else if ( aType.equalsAscii( "string" ) )
-+ {
-+ ::rtl::OUString aValue;
-+ if ( !aList.empty() )
-+ aValue = aList.front();
-+
-+ m_aGetValue <<= aValue;
-+ m_aGetValueCondition.set();
-+ }
-+ else if ( aType.equalsAscii( "stringList" ) )
-+ {
-+ uno::Sequence< ::rtl::OUString > aSequence( aList.size() );
-+ sal_Int32 nIdx = 0;
-+ for ( ::std::list< ::rtl::OUString >::const_iterator it = aList.begin(); it != aList.end(); ++it, ++nIdx )
-+ aSequence[nIdx] = (*it);
-+
-+ m_aGetValue <<= aSequence;
-+ m_aGetValueCondition.set();
-+ }
-+ else
-+ {
-+ m_aGetValue = uno::Any();
-+ m_aGetValueCondition.set();
-+ }
-+ }
-+ else if ( aCommandName.equalsAscii( "currentFilter" ) )
-+ {
-+ m_aGetCurrentFilter = aList.empty()? ::rtl::OUString(): aList.front();
-+ m_aGetCurrentFilterCondition.set();
-+ }
-+ else if ( aCommandName.equalsAscii( "currentDirectory" ) )
-+ {
-+ m_aGetDirectory = aList.empty()? ::rtl::OUString(): aList.front();
-+ m_aGetDirectoryCondition.set();
-+ }
-+ else
-+ {
-+#if OSL_DEBUG_LEVEL > 0
-+ ::std::cerr << "Unrecognized command: "
-+ << OUStringToOString( aCommandName, RTL_TEXTENCODING_ASCII_US ).getStr() << "\"" << ::std::endl;
-+#endif
-+ }
-+}
-+
-+::std::list< ::rtl::OUString > SAL_CALL UnxFilePickerCommandThread::tokenize( const ::rtl::OUString &rCommand )
-+{
-+ ::std::list< ::rtl::OUString > aList;
-+ ::rtl::OUStringBuffer aBuffer( 1024 );
-+
-+ const sal_Unicode *pUnicode = rCommand.getStr();
-+ const sal_Unicode *pEnd = pUnicode + rCommand.getLength();
-+ sal_Bool bQuoted = sal_False;
-+
-+ for ( ; pUnicode != pEnd; ++pUnicode )
-+ {
-+ if ( *pUnicode == '\\' )
-+ {
-+ ++pUnicode;
-+ if ( pUnicode != pEnd )
-+ {
-+ if ( *pUnicode == 'n' )
-+ aBuffer.appendAscii( "\n", 1 );
-+ else
-+ aBuffer.append( *pUnicode );
-+ }
-+ }
-+ else if ( *pUnicode == '"' )
-+ bQuoted = !bQuoted;
-+ else if ( *pUnicode == ' ' && !bQuoted )
-+ aList.push_back( aBuffer.makeStringAndClear() );
-+ else
-+ aBuffer.append( *pUnicode );
-+ }
-+ aList.push_back( aBuffer.makeStringAndClear() );
-+
-+ return aList;
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ fpicker/source/unx/kde_unx/UnxCommandThread.hxx 2004-06-11 17:08:30.375883816 +0200
-@@ -0,0 +1,142 @@
-+/*************************************************************************
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Jan Holesovsky <kendy@openoffice.org>
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _UNXCOMMANDTHREAD_HXX_
-+#define _UNXCOMMANDTHREAD_HXX_
-+
-+#ifndef _COM_SUN_STAR_UNO_ANY_HXX_
-+#include <com/sun/star/uno/Any.hxx>
-+#endif
-+
-+#ifndef _COM_SUN_STAR_UNO_SEQUENCE_HXX_
-+#include <com/sun/star/uno/Sequence.hxx>
-+#endif
-+
-+#ifndef _OSL_CONDITN_HXX_
-+#include <osl/conditn.hxx>
-+#endif
-+
-+#ifndef _OSL_MUTEX_HXX_
-+#include <osl/mutex.hxx>
-+#endif
-+
-+#ifndef _OSL_THREAD_HXX_
-+#include <osl/thread.hxx>
-+#endif
-+
-+#ifndef _RTL_USTRBUF_HXX_
-+#include <rtl/ustring.hxx>
-+#endif
-+
-+#include <list>
-+
-+class UnxFilePickerNotifyThread;
-+
-+class UnxFilePickerCommandThread : public ::osl::Thread
-+{
-+protected:
-+ UnxFilePickerNotifyThread *m_pNotifyThread;
-+ int m_nReadFD;
-+
-+ ::osl::Mutex m_aMutex;
-+
-+ ::osl::Condition m_aExecCondition;
-+ sal_Bool m_aResult;
-+
-+ ::osl::Condition m_aGetCurrentFilterCondition;
-+ ::rtl::OUString m_aGetCurrentFilter;
-+
-+ ::osl::Condition m_aGetDirectoryCondition;
-+ ::rtl::OUString m_aGetDirectory;
-+
-+ ::osl::Condition m_aGetFilesCondition;
-+ ::std::list< ::rtl::OUString > m_aGetFiles;
-+
-+ ::osl::Condition m_aGetValueCondition;
-+ ::com::sun::star::uno::Any m_aGetValue;
-+
-+public:
-+ UnxFilePickerCommandThread( UnxFilePickerNotifyThread *pNotifyThread, int nReadFD );
-+ ~UnxFilePickerCommandThread();
-+
-+ ::osl::Condition& SAL_CALL execCondition() { return m_aExecCondition; }
-+ sal_Bool SAL_CALL result();
-+
-+ ::osl::Condition& SAL_CALL getCurrentFilterCondition() { return m_aGetCurrentFilterCondition; }
-+ ::rtl::OUString SAL_CALL getCurrentFilter();
-+
-+ ::osl::Condition& SAL_CALL getDirectoryCondition() { return m_aGetDirectoryCondition; }
-+ ::rtl::OUString SAL_CALL getDirectory();
-+
-+ ::osl::Condition& SAL_CALL getFilesCondition() { return m_aGetFilesCondition; }
-+ ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getFiles();
-+
-+ ::osl::Condition& SAL_CALL getValueCondition() { return m_aGetValueCondition; }
-+ ::com::sun::star::uno::Any SAL_CALL getValue();
-+
-+protected:
-+ virtual void SAL_CALL run();
-+
-+ virtual void SAL_CALL handleCommand( const ::rtl::OUString &rCommand/*, sal_Bool &rQuit*/ );
-+ ::std::list< ::rtl::OUString > SAL_CALL tokenize( const ::rtl::OUString &rCommand );
-+};
-+
-+#endif // _UNXCOMMANDTHREAD_HXX_
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ fpicker/source/unx/kde_unx/UnxFilePicker.cxx 2004-06-21 17:40:01.026496344 +0200
-@@ -0,0 +1,977 @@
-+/*************************************************************************
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Jan Holesovsky <kendy@openoffice.org>
-+ *
-+ *
-+ ************************************************************************/
-+
-+//////////////////////////////////////////////////////////////////////////
-+// includes
-+//////////////////////////////////////////////////////////////////////////
-+
-+#ifndef _COM_SUN_STAR_LANG_DISPOSEDEXCEPTION_HPP_
-+#include <com/sun/star/lang/DisposedException.hpp>
-+#endif
-+
-+#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
-+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-+#endif
-+
-+#ifndef _CPPUHELPER_INTERFACECONTAINER_H_
-+#include <cppuhelper/interfacecontainer.h>
-+#endif
-+
-+#ifndef _OSL_DIAGNOSE_H_
-+#include <osl/diagnose.h>
-+#endif
-+
-+#ifndef _COM_SUN_STAR_UI_DIALOGS_TEMPLATEDESCRIPTION_HPP_
-+#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
-+#endif
-+
-+#ifndef _COM_SUN_STAR_UI_DIALOGS_COMMONFILEPICKERELEMENTIDS_HPP_
-+#include <com/sun/star/ui/dialogs/CommonFilePickerElementIds.hpp>
-+#endif
-+
-+#ifndef _COM_SUN_STAR_UI_DIALOGS_EXTENDEDFILEPICKERELEMENTIDS_HPP_
-+#include <com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.hpp>
-+#endif
-+
-+#ifndef _COM_SUN_STAR_UI_DIALOGS_CONTROLACTIONS_HPP_
-+#include <com/sun/star/ui/dialogs/ControlActions.hpp>
-+#endif
-+
-+#ifndef _RTL_USTRING_H_
-+#include <rtl/ustring.hxx>
-+#endif
-+
-+#ifndef _RTL_USTRBUF_HXX_
-+#include <rtl/ustrbuf.hxx>
-+#endif
-+
-+#ifndef _FPSERVICEINFO_HXX_
-+#include <FPServiceInfo.hxx>
-+#endif
-+
-+#ifndef _SVTOOLS_SVTDATA_HXX
-+#include <svtools/svtdata.hxx>
-+#endif
-+
-+#ifndef _SVTOOLS_HRC
-+#include <svtools/svtools.hrc>
-+#endif
-+
-+#ifndef _UNXFILEOPENIMPL_HXX_
-+#include <UnxFilePicker.hxx>
-+#endif
-+
-+#ifndef _UNXCOMMANDTHREAD_HXX_
-+#include <UnxCommandThread.hxx>
-+#endif
-+
-+#ifndef _UNXNOTIFYTHREAD_HXX_
-+#include <UnxNotifyThread.hxx>
-+#endif
-+
-+#include <sys/wait.h>
-+#include <unistd.h>
-+#include <fcntl.h>
-+
-+#include <iostream>
-+
-+using namespace ::com::sun::star;
-+
-+using namespace ::com::sun::star::ui::dialogs;
-+using namespace ::com::sun::star::ui::dialogs::TemplateDescription;
-+
-+//////////////////////////////////////////////////////////////////////////
-+// helper functions
-+//////////////////////////////////////////////////////////////////////////
-+
-+namespace
-+{
-+ // controling event notifications
-+ const bool STARTUP_SUSPENDED = true;
-+ const bool STARTUP_ALIVE = false;
-+
-+ uno::Sequence<rtl::OUString> SAL_CALL FilePicker_getSupportedServiceNames()
-+ {
-+ uno::Sequence<rtl::OUString> aRet(3);
-+ aRet[0] = rtl::OUString::createFromAscii("com.sun.star.ui.dialogs.FilePicker");
-+ aRet[1] = rtl::OUString::createFromAscii("com.sun.star.ui.dialogs.SystemFilePicker");
-+ aRet[2] = rtl::OUString::createFromAscii("com.sun.star.ui.dialogs.KDEFilePicker");
-+ return aRet;
-+ }
-+}
-+
-+//////////////////////////////////////////////////////////////////////////
-+// UnxFilePicker
-+//////////////////////////////////////////////////////////////////////////
-+
-+UnxFilePicker::UnxFilePicker( const uno::Reference<lang::XMultiServiceFactory>& xServiceMgr )
-+ : cppu::WeakComponentImplHelper8<
-+ XFilterManager,
-+ XFilterGroupManager,
-+ XFilePickerControlAccess,
-+ XFilePickerNotifier,
-+// TODO XFilePreview,
-+ lang::XInitialization,
-+ util::XCancellable,
-+ lang::XEventListener,
-+ lang::XServiceInfo>( m_rbHelperMtx ),
-+ m_xServiceMgr( xServiceMgr ),
-+ m_nFilePickerPid( -1 ),
-+ m_nFilePickerWrite( -1 ),
-+ m_nFilePickerRead( -1 ),
-+ m_pNotifyThread( NULL ),
-+ m_pCommandThread( NULL )
-+{
-+}
-+
-+UnxFilePicker::~UnxFilePicker()
-+{
-+ if ( m_nFilePickerPid > 0 )
-+ {
-+ sendCommand( ::rtl::OUString::createFromAscii( "exit" ) );
-+ waitpid( m_nFilePickerPid, NULL, 0 );
-+ }
-+
-+ if ( m_pCommandThread )
-+ {
-+ m_pCommandThread->join();
-+
-+ delete m_pCommandThread, m_pCommandThread = NULL;
-+ }
-+
-+ if ( m_pNotifyThread )
-+ {
-+ m_pNotifyThread->exit();
-+
-+ m_pNotifyThread->join();
-+
-+ delete m_pNotifyThread, m_pNotifyThread = NULL;
-+ }
-+
-+ if ( m_nFilePickerWrite >= 0 )
-+ close( m_nFilePickerWrite );
-+
-+ if ( m_nFilePickerRead >= 0 )
-+ close( m_nFilePickerRead );
-+}
-+
-+void SAL_CALL UnxFilePicker::addFilePickerListener( const uno::Reference<XFilePickerListener>& xListener )
-+ throw( uno::RuntimeException )
-+{
-+ OSL_ASSERT( m_pNotifyThread );
-+ osl::MutexGuard aGuard( m_aMutex );
-+
-+ m_pNotifyThread->addFilePickerListener( xListener );
-+}
-+
-+void SAL_CALL UnxFilePicker::removeFilePickerListener( const uno::Reference<XFilePickerListener>& xListener )
-+ throw( uno::RuntimeException )
-+{
-+ OSL_ASSERT( m_pNotifyThread );
-+ osl::MutexGuard aGuard( m_aMutex );
-+
-+ m_pNotifyThread->removeFilePickerListener( xListener );
-+}
-+
-+void SAL_CALL UnxFilePicker::setTitle( const rtl::OUString &rTitle )
-+ throw( uno::RuntimeException )
-+{
-+ checkFilePicker();
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ ::rtl::OUStringBuffer aBuffer( 1024 );
-+
-+ aBuffer.appendAscii( "setTitle " );
-+ appendEscaped( aBuffer, rTitle );
-+
-+ sendCommand( aBuffer.makeStringAndClear() );
-+}
-+
-+sal_Int16 SAL_CALL UnxFilePicker::execute()
-+ throw( uno::RuntimeException )
-+{
-+ checkFilePicker();
-+
-+ sendCommand( ::rtl::OUString::createFromAscii( "exec" ),
-+ m_pCommandThread->execCondition() );
-+
-+ return m_pCommandThread->result();
-+}
-+
-+void SAL_CALL UnxFilePicker::setMultiSelectionMode( sal_Bool bMode )
-+ throw( uno::RuntimeException )
-+{
-+ checkFilePicker();
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ ::rtl::OUString aString = bMode?
-+ ::rtl::OUString::createFromAscii( "setMultiSelection true" ):
-+ ::rtl::OUString::createFromAscii( "setMultiSelection false" );
-+
-+ sendCommand( aString );
-+}
-+
-+void SAL_CALL UnxFilePicker::setDefaultName( const ::rtl::OUString &rName )
-+ throw( uno::RuntimeException )
-+{
-+ checkFilePicker();
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ ::rtl::OUStringBuffer aBuffer( 1024 );
-+
-+ aBuffer.appendAscii( "setDefaultName " );
-+ appendEscaped( aBuffer, rName );
-+
-+ sendCommand( aBuffer.makeStringAndClear() );
-+}
-+
-+void SAL_CALL UnxFilePicker::setDisplayDirectory( const rtl::OUString &rDirectory )
-+ throw( uno::RuntimeException )
-+{
-+ checkFilePicker();
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ ::rtl::OUStringBuffer aBuffer( 1024 );
-+
-+ aBuffer.appendAscii( "setDirectory " );
-+ appendEscaped( aBuffer, rDirectory );
-+
-+ sendCommand( aBuffer.makeStringAndClear() );
-+}
-+
-+rtl::OUString SAL_CALL UnxFilePicker::getDisplayDirectory()
-+ throw( uno::RuntimeException )
-+{
-+ checkFilePicker();
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ sendCommand( ::rtl::OUString::createFromAscii( "getDirectory" ),
-+ m_pCommandThread->getDirectoryCondition() );
-+
-+ return m_pCommandThread->getDirectory();
-+}
-+
-+uno::Sequence< ::rtl::OUString > SAL_CALL UnxFilePicker::getFiles()
-+ throw( uno::RuntimeException )
-+{
-+ checkFilePicker();
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ sendCommand( ::rtl::OUString::createFromAscii( "getFiles" ),
-+ m_pCommandThread->getFilesCondition() );
-+
-+ return m_pCommandThread->getFiles();
-+}
-+
-+void SAL_CALL UnxFilePicker::appendFilter( const ::rtl::OUString &rTitle, const ::rtl::OUString &rFilter )
-+ throw( lang::IllegalArgumentException, uno::RuntimeException )
-+{
-+ checkFilePicker();
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ ::rtl::OUStringBuffer aBuffer( 1024 );
-+
-+ aBuffer.appendAscii( "appendFilter " );
-+ appendEscaped( aBuffer, rTitle );
-+ aBuffer.appendAscii( " ", 1 );
-+ appendEscaped( aBuffer, rFilter );
-+
-+ sendCommand( aBuffer.makeStringAndClear() );
-+}
-+
-+void SAL_CALL UnxFilePicker::setCurrentFilter( const rtl::OUString &rTitle )
-+ throw( lang::IllegalArgumentException, uno::RuntimeException )
-+{
-+ checkFilePicker();
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ ::rtl::OUStringBuffer aBuffer( 1024 );
-+
-+ aBuffer.appendAscii( "setCurrentFilter " );
-+ appendEscaped( aBuffer, rTitle );
-+
-+ sendCommand( aBuffer.makeStringAndClear() );
-+}
-+
-+rtl::OUString SAL_CALL UnxFilePicker::getCurrentFilter()
-+ throw( uno::RuntimeException )
-+{
-+ checkFilePicker();
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ sendCommand( ::rtl::OUString::createFromAscii( "getCurrentFilter" ),
-+ m_pCommandThread->getCurrentFilterCondition() );
-+
-+ return m_pCommandThread->getCurrentFilter();
-+}
-+
-+void SAL_CALL UnxFilePicker::appendFilterGroup( const rtl::OUString &rGroupTitle, const uno::Sequence<beans::StringPair> &rFilters )
-+ throw( lang::IllegalArgumentException, uno::RuntimeException )
-+{
-+ checkFilePicker();
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ ::rtl::OUStringBuffer aBuffer( 1024 );
-+
-+ aBuffer.appendAscii( "appendFilterGroup " );
-+ appendEscaped( aBuffer, rGroupTitle );
-+
-+ for ( sal_Int32 i = 0; i < rFilters.getLength(); ++i )
-+ {
-+ beans::StringPair aPair = rFilters[i];
-+
-+ aBuffer.appendAscii( " ", 1 );
-+ appendEscaped( aBuffer, aPair.First );
-+ aBuffer.appendAscii( " ", 1 );
-+ appendEscaped( aBuffer, aPair.Second );
-+ }
-+
-+ sendCommand( aBuffer.makeStringAndClear() );
-+}
-+
-+void SAL_CALL UnxFilePicker::setValue( sal_Int16 nControlId, sal_Int16 nControlAction, const uno::Any &rValue )
-+ throw( uno::RuntimeException )
-+{
-+ checkFilePicker();
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ ::rtl::OUString aType;
-+ ::rtl::OUString aAction;
-+ sal_Int32 nTitleId;
-+
-+ if ( controlIdInfo( nControlId, aType, nTitleId ) && controlActionInfo( nControlAction, aAction ) )
-+ {
-+ ::rtl::OUStringBuffer aBuffer( 1024 );
-+
-+ aBuffer.appendAscii( "setValue " );
-+ aBuffer.append( static_cast< sal_Int32 >( nControlId ) );
-+ aBuffer.appendAscii( " ", 1 );
-+ aBuffer.append( aAction );
-+
-+ if ( aType.equalsAscii( "checkbox" ) )
-+ {
-+ sal_Bool bControlValue;
-+ if ( ( rValue >>= bControlValue ) && bControlValue )
-+ aBuffer.appendAscii( " true" );
-+ else
-+ aBuffer.appendAscii( " false" );
-+ }
-+ else if ( aType.equalsAscii( "listbox" ) )
-+ {
-+ switch ( nControlAction )
-+ {
-+ case ControlActions::ADD_ITEM:
-+ case ControlActions::SET_HELP_URL:
-+ {
-+ ::rtl::OUString aString;
-+ if ( rValue >>= aString )
-+ {
-+ aBuffer.appendAscii( " ", 1 );
-+ appendEscaped( aBuffer, aString );
-+ }
-+ }
-+ break;
-+
-+ case ControlActions::ADD_ITEMS:
-+ {
-+ uno::Sequence< ::rtl::OUString > aSequence;
-+ if ( rValue >>= aSequence )
-+ {
-+ for ( sal_Int32 nIdx = 0; nIdx < aSequence.getLength(); ++nIdx )
-+ {
-+ aBuffer.appendAscii( " ", 1 );
-+ appendEscaped( aBuffer, aSequence[nIdx] );
-+ }
-+
-+ }
-+ }
-+ break;
-+
-+ case ControlActions::DELETE_ITEM:
-+ case ControlActions::SET_SELECT_ITEM:
-+ {
-+ sal_Int32 nInt;
-+ if ( rValue >>= nInt )
-+ {
-+ aBuffer.appendAscii( " ", 1 );
-+ aBuffer.append( nInt );
-+ }
-+ }
-+ break;
-+
-+ default:
-+ // nothing
-+ break;
-+ }
-+ }
-+ // TODO else if push button...
-+
-+ sendCommand( aBuffer.makeStringAndClear() );
-+ }
-+}
-+
-+uno::Any SAL_CALL UnxFilePicker::getValue( sal_Int16 nControlId, sal_Int16 nControlAction )
-+ throw( uno::RuntimeException )
-+{
-+ checkFilePicker();
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ ::rtl::OUString aAction;
-+
-+ if ( controlActionInfo( nControlAction, aAction ) )
-+ {
-+ ::rtl::OUStringBuffer aBuffer( 1024 );
-+
-+ aBuffer.appendAscii( "getValue " );
-+ aBuffer.append( static_cast< sal_Int32 >( nControlId ) );
-+ aBuffer.appendAscii( " ", 1 );
-+ aBuffer.append( aAction );
-+
-+ sendCommand( aBuffer.makeStringAndClear(),
-+ m_pCommandThread->getValueCondition() );
-+
-+ return m_pCommandThread->getValue();
-+ }
-+
-+ return uno::Any();
-+}
-+
-+void SAL_CALL UnxFilePicker::enableControl( sal_Int16 nControlId, sal_Bool bEnable )
-+ throw( uno::RuntimeException )
-+{
-+ checkFilePicker();
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ ::rtl::OUStringBuffer aBuffer( 1024 );
-+
-+ aBuffer.appendAscii( "enableControl " );
-+ aBuffer.append( static_cast< sal_Int32 >( nControlId ) );
-+ aBuffer.appendAscii( bEnable? " true": " false" );
-+
-+ sendCommand( aBuffer.makeStringAndClear() );
-+}
-+
-+void SAL_CALL UnxFilePicker::setLabel( sal_Int16 nControlId, const ::rtl::OUString &rLabel )
-+ throw( uno::RuntimeException )
-+{
-+ checkFilePicker();
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ ::rtl::OUStringBuffer aBuffer( 1024 );
-+
-+ aBuffer.appendAscii( "setLabel " );
-+ aBuffer.append( static_cast< sal_Int32 >( nControlId ) );
-+ aBuffer.appendAscii( " ", 1 );
-+ appendEscaped( aBuffer, rLabel );
-+
-+ sendCommand( aBuffer.makeStringAndClear() );
-+}
-+
-+rtl::OUString SAL_CALL UnxFilePicker::getLabel(sal_Int16 nControlId)
-+ throw ( uno::RuntimeException )
-+{
-+ // FIXME getLabel() is not yet implemented
-+ checkFilePicker();
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ // TODO return m_pImpl->getLabel(nControlId);
-+ return ::rtl::OUString();
-+}
-+
-+/* TODO
-+uno::Sequence<sal_Int16> SAL_CALL UnxFilePicker::getSupportedImageFormats()
-+ throw( uno::RuntimeException )
-+{
-+ checkFilePicker();
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ return m_pImpl->getSupportedImageFormats();
-+}
-+
-+sal_Int32 SAL_CALL UnxFilePicker::getTargetColorDepth()
-+ throw( uno::RuntimeException )
-+{
-+ checkFilePicker();
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ return m_pImpl->getTargetColorDepth();
-+}
-+
-+sal_Int32 SAL_CALL UnxFilePicker::getAvailableWidth()
-+ throw( uno::RuntimeException )
-+{
-+ checkFilePicker();
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ return m_pImpl->getAvailableWidth();
-+}
-+
-+sal_Int32 SAL_CALL UnxFilePicker::getAvailableHeight()
-+ throw( uno::RuntimeException )
-+{
-+ checkFilePicker();
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ return m_pImpl->getAvailableHeight();
-+}
-+
-+void SAL_CALL UnxFilePicker::setImage( sal_Int16 aImageFormat, const uno::Any &rImage )
-+ throw( lang::IllegalArgumentException, uno::RuntimeException )
-+{
-+ checkFilePicker();
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ m_pImpl->setImage( aImageFormat, aImage );
-+}
-+
-+sal_Bool SAL_CALL UnxFilePicker::setShowState( sal_Bool bShowState )
-+ throw( uno::RuntimeException )
-+{
-+ checkFilePicker();
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ return m_pImpl->setShowState( bShowState );
-+}
-+
-+sal_Bool SAL_CALL UnxFilePicker::getShowState()
-+ throw( uno::RuntimeException )
-+{
-+ checkFilePicker();
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ return m_pImpl->getShowState();
-+}
-+*/
-+
-+void SAL_CALL UnxFilePicker::initialize( const uno::Sequence<uno::Any> &rArguments )
-+ throw( uno::Exception, uno::RuntimeException )
-+{
-+ initFilePicker();
-+
-+ // parameter checking
-+ uno::Any aAny;
-+ if ( 0 == rArguments.getLength( ) )
-+ throw lang::IllegalArgumentException(
-+ rtl::OUString::createFromAscii( "no arguments" ),
-+ static_cast< XFilePicker* >( this ), 1 );
-+
-+ aAny = rArguments[0];
-+
-+ if ( ( aAny.getValueType() != ::getCppuType( (sal_Int16*)0 ) ) && ( aAny.getValueType() != ::getCppuType( (sal_Int8*)0 ) ) )
-+ throw lang::IllegalArgumentException(
-+ rtl::OUString::createFromAscii( "invalid argument type" ),
-+ static_cast< XFilePicker* >( this ), 1 );
-+
-+ sal_Int16 templateId = -1;
-+ aAny >>= templateId;
-+
-+ ::rtl::OUString aTypeOpen = ::rtl::OUString::createFromAscii( "setType \"open\"" );
-+ ::rtl::OUString aTypeSaveAs = ::rtl::OUString::createFromAscii( "setType \"save\"" );
-+
-+ switch ( templateId )
-+ {
-+ case FILEOPEN_SIMPLE:
-+ sendCommand( aTypeOpen );
-+ break;
-+
-+ case FILESAVE_SIMPLE:
-+ sendCommand( aTypeSaveAs );
-+ break;
-+
-+ case FILESAVE_AUTOEXTENSION_PASSWORD:
-+ sendCommand( aTypeSaveAs );
-+
-+ sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_AUTOEXTENSION );
-+ sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_PASSWORD );
-+ break;
-+
-+ case FILESAVE_AUTOEXTENSION_PASSWORD_FILTEROPTIONS:
-+ sendCommand( aTypeSaveAs );
-+
-+ sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_AUTOEXTENSION );
-+ sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_PASSWORD );
-+ sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_FILTEROPTIONS );
-+ break;
-+
-+ case FILESAVE_AUTOEXTENSION_SELECTION:
-+ sendCommand( aTypeSaveAs );
-+
-+ sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_AUTOEXTENSION );
-+ sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_SELECTION );
-+ break;
-+
-+ case FILESAVE_AUTOEXTENSION_TEMPLATE:
-+ sendCommand( aTypeSaveAs );
-+
-+ sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_AUTOEXTENSION );
-+ sendAppendControlCommand( ExtendedFilePickerElementIds::LISTBOX_TEMPLATE );
-+ break;
-+
-+ case FILEOPEN_LINK_PREVIEW_IMAGE_TEMPLATE:
-+ sendCommand( aTypeOpen );
-+
-+ sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_LINK );
-+ sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_PREVIEW );
-+ sendAppendControlCommand( ExtendedFilePickerElementIds::LISTBOX_IMAGE_TEMPLATE );
-+ break;
-+
-+ case FILEOPEN_PLAY:
-+ sendCommand( aTypeOpen );
-+
-+ sendAppendControlCommand( ExtendedFilePickerElementIds::PUSHBUTTON_PLAY );
-+ break;
-+
-+ case FILEOPEN_READONLY_VERSION:
-+ sendCommand( aTypeOpen );
-+
-+ sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_READONLY );
-+ sendAppendControlCommand( ExtendedFilePickerElementIds::LISTBOX_VERSION );
-+ break;
-+
-+ case FILEOPEN_LINK_PREVIEW:
-+ sendCommand( aTypeOpen );
-+
-+ sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_LINK );
-+ sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_PREVIEW );
-+ break;
-+
-+ case FILESAVE_AUTOEXTENSION:
-+ sendCommand( aTypeSaveAs );
-+
-+ sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_AUTOEXTENSION );
-+ break;
-+
-+ default:
-+ throw lang::IllegalArgumentException(
-+ rtl::OUString::createFromAscii( "Unknown template" ),
-+ static_cast< XFilePicker* >( this ),
-+ 1 );
-+ }
-+}
-+
-+void SAL_CALL UnxFilePicker::cancel()
-+ throw ( uno::RuntimeException )
-+{
-+ // FIXME cancel() is not implemented
-+ checkFilePicker();
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ // TODO m_pImpl->cancel();
-+}
-+
-+void SAL_CALL UnxFilePicker::disposing( const lang::EventObject &rEvent )
-+ throw( uno::RuntimeException )
-+{
-+ uno::Reference<XFilePickerListener> xFilePickerListener( rEvent.Source, uno::UNO_QUERY );
-+
-+ if ( xFilePickerListener.is() )
-+ removeFilePickerListener( xFilePickerListener );
-+}
-+
-+rtl::OUString SAL_CALL UnxFilePicker::getImplementationName()
-+ throw( uno::RuntimeException )
-+{
-+ return rtl::OUString::createFromAscii( FILE_PICKER_IMPL_NAME );
-+}
-+
-+sal_Bool SAL_CALL UnxFilePicker::supportsService( const rtl::OUString& ServiceName )
-+ throw( uno::RuntimeException )
-+{
-+ uno::Sequence< ::rtl::OUString > SupportedServicesNames = FilePicker_getSupportedServiceNames();
-+
-+ for ( sal_Int32 n = SupportedServicesNames.getLength(); n--; )
-+ {
-+ if ( SupportedServicesNames[n].compareTo( ServiceName ) == 0 )
-+ return sal_True;
-+ }
-+
-+ return sal_False;
-+}
-+
-+uno::Sequence< ::rtl::OUString > SAL_CALL UnxFilePicker::getSupportedServiceNames()
-+ throw( uno::RuntimeException )
-+{
-+ return FilePicker_getSupportedServiceNames();
-+}
-+
-+void UnxFilePicker::initFilePicker()
-+{
-+ int aFiledesStdin[2], aFiledesStdout[2];
-+ if ( pipe( aFiledesStdin ) < 0 || pipe( aFiledesStdout ) < 0 )
-+ return;
-+
-+ m_nFilePickerPid = fork();
-+ if ( m_nFilePickerPid < 0 )
-+ return;
-+
-+ if ( m_nFilePickerPid == 0 )
-+ {
-+ // Child...
-+ close( aFiledesStdin[1] ); // write end of the pipe
-+ dup2( aFiledesStdin[0], 0 );
-+ close( aFiledesStdin[0] );
-+
-+ close( aFiledesStdout[0] ); // read end of the pipe
-+ dup2( aFiledesStdout[1], 1 );
-+ close( aFiledesStdout[1] );
-+
-+#if OSL_DEBUG_LEVEL == 0
-+ int nRedirect = open( "/dev/null", O_WRONLY );
-+ if( nRedirect != -1 )
-+ {
-+ dup2( nRedirect, 2 );
-+ }
-+#endif
-+
-+ // FIXME: window id, etc.
-+ const char *pFname = "kdefilepicker";
-+
-+ execlp( pFname, pFname, NULL );
-+
-+ // Error, finish the child
-+ exit( -1 );
-+ }
-+
-+ // Parent continues
-+ close( aFiledesStdin[0] );
-+ m_nFilePickerWrite = aFiledesStdin[1];
-+
-+ close( aFiledesStdout[1] );
-+ m_nFilePickerRead = aFiledesStdout[0];
-+
-+ // Create the notify thread
-+ if ( !m_pNotifyThread )
-+ m_pNotifyThread = new UnxFilePickerNotifyThread( this );
-+
-+ // Create the command thread
-+ if ( !m_pCommandThread )
-+ m_pCommandThread = new UnxFilePickerCommandThread( m_pNotifyThread, m_nFilePickerRead );
-+
-+ // Start the threads
-+ m_pNotifyThread->create();
-+ m_pCommandThread->create();
-+
-+ return;
-+}
-+
-+void UnxFilePicker::checkFilePicker() throw( ::com::sun::star::uno::RuntimeException )
-+{
-+ if ( m_nFilePickerPid > 0 )
-+ {
-+ // TODO check if external file picker is runnning
-+ }
-+ else
-+ {
-+ throw uno::RuntimeException(
-+ ::rtl::OUString::createFromAscii( "the external file picker does not run" ),
-+ *this );
-+ }
-+}
-+
-+void UnxFilePicker::sendCommand( const ::rtl::OUString &rCommand )
-+{
-+ if ( m_nFilePickerWrite < 0 )
-+ return;
-+
-+ ::rtl::OString aUtfString = OUStringToOString( rCommand + ::rtl::OUString::createFromAscii( "\n" ), RTL_TEXTENCODING_UTF8 );
-+
-+#if OSL_DEBUG_LEVEL > 0
-+ ::std::cerr << "UnxFilePicker sent: \"" << aUtfString.getStr() << "\"" << ::std::endl;
-+#endif
-+
-+ write( m_nFilePickerWrite, aUtfString.getStr(), aUtfString.getLength() );
-+}
-+
-+void UnxFilePicker::sendCommand( const ::rtl::OUString &rCommand, ::osl::Condition &rCondition )
-+{
-+ rCondition.reset();
-+
-+ sendCommand( rCommand );
-+
-+ rCondition.wait();
-+}
-+
-+void UnxFilePicker::appendEscaped( ::rtl::OUStringBuffer &rBuffer, const ::rtl::OUString &rString )
-+{
-+ const sal_Unicode *pUnicode = rString.getStr();
-+ const sal_Unicode *pEnd = pUnicode + rString.getLength();
-+
-+ rBuffer.appendAscii( "\"" , 1 );
-+
-+ for ( ; pUnicode != pEnd; ++pUnicode )
-+ {
-+ if ( *pUnicode == '\\' )
-+ rBuffer.appendAscii( "\\\\", 2 );
-+ else if ( *pUnicode == '"' )
-+ rBuffer.appendAscii( "\\\"", 2 );
-+ else if ( *pUnicode == '\n' )
-+ rBuffer.appendAscii( "\\n", 2 );
-+ else
-+ rBuffer.append( *pUnicode );
-+ }
-+
-+ rBuffer.appendAscii( "\"", 1 );
-+}
-+
-+sal_Bool UnxFilePicker::controlIdInfo( sal_Int16 nControlId, ::rtl::OUString &rType, sal_Int32 &rTitleId )
-+{
-+ typedef struct {
-+ sal_Int16 nId;
-+ const ::rtl::OUString *pType;
-+ sal_Int32 nTitle;
-+ } ElementToName;
-+
-+ const ::rtl::OUString aCheckBox( RTL_CONSTASCII_USTRINGPARAM( "checkbox" ) );
-+ const ::rtl::OUString aControl( RTL_CONSTASCII_USTRINGPARAM( "control" ) );
-+ const ::rtl::OUString aEdit( RTL_CONSTASCII_USTRINGPARAM( "edit" ) );
-+ const ::rtl::OUString aLabel( RTL_CONSTASCII_USTRINGPARAM( "label" ) );
-+ const ::rtl::OUString aListBox( RTL_CONSTASCII_USTRINGPARAM( "listbox" ) );
-+ const ::rtl::OUString aPushButton( RTL_CONSTASCII_USTRINGPARAM( "pushbutton" ) );
-+
-+ const ElementToName *pPtr;
-+ const ElementToName pArray[] =
-+ {
-+ { CommonFilePickerElementIds::PUSHBUTTON_OK, &aPushButton, 0/*FIXME?*/ },
-+ { CommonFilePickerElementIds::PUSHBUTTON_CANCEL, &aPushButton, 0/*FIXME?*/ },
-+ { CommonFilePickerElementIds::LISTBOX_FILTER, &aListBox, 0/*FIXME?*/ },
-+ { CommonFilePickerElementIds::CONTROL_FILEVIEW, &aControl, 0/*FIXME?*/ },
-+ { CommonFilePickerElementIds::EDIT_FILEURL, &aEdit, 0/*FIXME?*/ },
-+ { CommonFilePickerElementIds::LISTBOX_FILTER_LABEL, &aLabel, 0/*FIXME?*/ },
-+ { CommonFilePickerElementIds::EDIT_FILEURL_LABEL, &aLabel, 0/*FIXME?*/ },
-+
-+ { ExtendedFilePickerElementIds::CHECKBOX_AUTOEXTENSION, &aCheckBox, STR_SVT_FILEPICKER_AUTO_EXTENSION },
-+ { ExtendedFilePickerElementIds::CHECKBOX_PASSWORD, &aCheckBox, STR_SVT_FILEPICKER_PASSWORD },
-+ { ExtendedFilePickerElementIds::CHECKBOX_FILTEROPTIONS, &aCheckBox, STR_SVT_FILEPICKER_FILTER_OPTIONS },
-+ { ExtendedFilePickerElementIds::CHECKBOX_READONLY, &aCheckBox, STR_SVT_FILEPICKER_READONLY },
-+ { ExtendedFilePickerElementIds::CHECKBOX_LINK, &aCheckBox, STR_SVT_FILEPICKER_INSERT_AS_LINK },
-+ { ExtendedFilePickerElementIds::CHECKBOX_PREVIEW, &aCheckBox, STR_SVT_FILEPICKER_SHOW_PREVIEW },
-+ { ExtendedFilePickerElementIds::PUSHBUTTON_PLAY, &aPushButton, STR_SVT_FILEPICKER_PLAY },
-+ { ExtendedFilePickerElementIds::LISTBOX_VERSION, &aListBox, STR_SVT_FILEPICKER_VERSION },
-+ { ExtendedFilePickerElementIds::LISTBOX_TEMPLATE, &aListBox, STR_SVT_FILEPICKER_TEMPLATES },
-+ { ExtendedFilePickerElementIds::LISTBOX_IMAGE_TEMPLATE, &aListBox, STR_SVT_FILEPICKER_IMAGE_TEMPLATE },
-+ { ExtendedFilePickerElementIds::CHECKBOX_SELECTION, &aCheckBox, STR_SVT_FILEPICKER_SELECTION },
-+ { 0, 0, 0 }
-+ };
-+
-+ for ( pPtr = pArray; pPtr->nId && ( pPtr->nId != nControlId ); ++pPtr )
-+ ;
-+
-+ if ( pPtr->nId == nControlId )
-+ {
-+ rType = *(pPtr->pType);
-+ rTitleId = pPtr->nTitle;
-+
-+ return sal_True;
-+ }
-+
-+ return sal_False;
-+}
-+
-+sal_Bool UnxFilePicker::controlActionInfo( sal_Int16 nControlAction, ::rtl::OUString &rType )
-+{
-+ typedef struct {
-+ sal_Int16 nId;
-+ const ::rtl::OUString pType;
-+ } ElementToName;
-+
-+ const ElementToName *pPtr;
-+ const ElementToName pArray[] =
-+ {
-+ { ControlActions::ADD_ITEM, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "addItem" ) ) },
-+ { ControlActions::ADD_ITEMS, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "addItems" ) ) },
-+ { ControlActions::DELETE_ITEM, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "deleteItem" ) ) },
-+ { ControlActions::DELETE_ITEMS, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "deleteItems" ) ) },
-+ { ControlActions::SET_SELECT_ITEM, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "setSelectedItem" ) ) },
-+ { ControlActions::GET_ITEMS, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getItems" ) ) },
-+ { ControlActions::GET_SELECTED_ITEM, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getSelectedItem" ) ) },
-+ { ControlActions::GET_SELECTED_ITEM_INDEX, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getSelectedItemIndex" ) ) },
-+ { ControlActions::SET_HELP_URL, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "setHelpURL" ) ) },
-+ { ControlActions::GET_HELP_URL, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getHelpURL" ) ) },
-+ { 0, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "noAction" ) ) }
-+ };
-+
-+ for ( pPtr = pArray; pPtr->nId && ( pPtr->nId != nControlAction ); ++pPtr )
-+ ;
-+
-+ rType = pPtr->pType;
-+
-+ return sal_True;
-+}
-+
-+void UnxFilePicker::sendAppendControlCommand( sal_Int16 nControlId )
-+{
-+ ::rtl::OUString aType;
-+ sal_Int32 nTitleId;
-+
-+ if ( controlIdInfo( nControlId, aType, nTitleId ) )
-+ {
-+ ::rtl::OUStringBuffer aBuffer( 1024 );
-+
-+ aBuffer.appendAscii( "appendControl " );
-+ aBuffer.append( static_cast< sal_Int32 >( nControlId ) );
-+ aBuffer.appendAscii( " ", 1 );
-+ appendEscaped( aBuffer, aType );
-+ aBuffer.appendAscii( " ", 1 );
-+ appendEscaped( aBuffer, String( SvtResId( nTitleId ) ) );
-+
-+ sendCommand( aBuffer.makeStringAndClear() );
-+ }
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ fpicker/source/unx/kde_unx/UnxFilePicker.hxx 2004-06-16 13:57:49.733143432 +0200
-@@ -0,0 +1,238 @@
-+/*************************************************************************
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Jan Holesovsky <kendy@openoffice.org>
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _UNXFILEPICKER_HXX_
-+#define _UNXFILEPICKER_HXX_
-+
-+#ifndef _CPPUHELPER_COMPBASE8_HXX_
-+#include <cppuhelper/compbase8.hxx>
-+#endif
-+
-+#ifndef _OSL_CONDITN_HXX_
-+#include <osl/conditn.hxx>
-+#endif
-+
-+#ifndef _OSL_MUTEX_HXX_
-+#include <osl/mutex.hxx>
-+#endif
-+
-+#ifndef _COM_SUN_STAR_LANG_XINITIALIZATION_HPP_
-+#include <com/sun/star/lang/XInitialization.hpp>
-+#endif
-+
-+#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
-+#include <com/sun/star/lang/XServiceInfo.hpp>
-+#endif
-+
-+#ifndef _COM_SUN_STAR_UI_DIALOGS_XFILEPICKERNOTIFIER_HPP_
-+#include <com/sun/star/ui/dialogs/XFilePickerNotifier.hpp>
-+#endif
-+
-+#ifndef _COM_SUN_STAR_UI_DIALOGS_XFILTERMANAGER_HPP_
-+#include <com/sun/star/ui/dialogs/XFilterManager.hpp>
-+#endif
-+
-+#ifndef _COM_SUN_STAR_UI_DIALOGS_XFILTERGROUPMANAGER_HPP_
-+#include <com/sun/star/ui/dialogs/XFilterGroupManager.hpp>
-+#endif
-+
-+#ifndef _COM_SUN_STAR_UI_DIALOGS_XFILEPICKERCONTROLACCESS_HPP_
-+#include <com/sun/star/ui/dialogs/XFilePickerControlAccess.hpp>
-+#endif
-+
-+#ifndef _COM_SUN_STAR_UI_DIALOGS_XFILEPREVIEW_HPP_
-+#include <com/sun/star/ui/dialogs/XFilePreview.hpp>
-+#endif
-+
-+#ifndef _COM_SUN_STAR_UTIL_XCANCELLABLE_HPP_
-+#include <com/sun/star/util/XCancellable.hpp>
-+#endif
-+
-+#ifndef _RTL_USTRBUF_HXX_
-+#include <rtl/ustrbuf.hxx>
-+#endif
-+
-+#include <list>
-+
-+class UnxFilePickerCommandThread;
-+class UnxFilePickerNotifyThread;
-+
-+class UnxFilePickerDummy
-+{
-+protected:
-+ osl::Mutex m_aMutex;
-+ osl::Mutex m_rbHelperMtx;
-+};
-+
-+class UnxFilePicker :
-+ public UnxFilePickerDummy,
-+ public cppu::WeakComponentImplHelper8<
-+ ::com::sun::star::ui::dialogs::XFilterManager,
-+ ::com::sun::star::ui::dialogs::XFilterGroupManager,
-+ ::com::sun::star::ui::dialogs::XFilePickerControlAccess,
-+ ::com::sun::star::ui::dialogs::XFilePickerNotifier,
-+// TODO ::com::sun::star::ui::dialogs::XFilePreview,
-+ ::com::sun::star::lang::XInitialization,
-+ ::com::sun::star::util::XCancellable,
-+ ::com::sun::star::lang::XEventListener,
-+ ::com::sun::star::lang::XServiceInfo >
-+{
-+protected:
-+ ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xServiceMgr; // to instanciate own services
-+
-+ pid_t m_nFilePickerPid;
-+ int m_nFilePickerWrite; // (kde|...)filepicker gets it as stdin
-+ int m_nFilePickerRead; // (kde|...)filepicker gets it as stdout
-+
-+ UnxFilePickerNotifyThread *m_pNotifyThread;
-+ UnxFilePickerCommandThread *m_pCommandThread;
-+
-+public:
-+ UnxFilePicker( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xServiceMgr );
-+ virtual ~UnxFilePicker();
-+
-+ // XFilePickerNotifier
-+
-+ virtual void SAL_CALL addFilePickerListener( const ::com::sun::star::uno::Reference< ::com::sun::star::ui::dialogs::XFilePickerListener >& xListener ) throw( ::com::sun::star::uno::RuntimeException );
-+ virtual void SAL_CALL removeFilePickerListener( const ::com::sun::star::uno::Reference< ::com::sun::star::ui::dialogs::XFilePickerListener >& xListener ) throw( ::com::sun::star::uno::RuntimeException );
-+
-+ // XExecutableDialog functions
-+
-+ virtual void SAL_CALL setTitle( const ::rtl::OUString &rTitle ) throw( ::com::sun::star::uno::RuntimeException );
-+ virtual sal_Int16 SAL_CALL execute() throw( ::com::sun::star::uno::RuntimeException );
-+
-+ // XFilePicker functions
-+
-+ virtual void SAL_CALL setMultiSelectionMode( sal_Bool bMode ) throw( ::com::sun::star::uno::RuntimeException );
-+ virtual void SAL_CALL setDefaultName( const ::rtl::OUString &rName ) throw( ::com::sun::star::uno::RuntimeException );
-+ virtual void SAL_CALL setDisplayDirectory( const ::rtl::OUString &rDirectory ) throw( ::com::sun::star::uno::RuntimeException );
-+ virtual ::rtl::OUString SAL_CALL getDisplayDirectory() throw( ::com::sun::star::uno::RuntimeException );
-+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getFiles() throw( ::com::sun::star::uno::RuntimeException );
-+
-+ // XFilterManager functions
-+
-+ virtual void SAL_CALL appendFilter( const ::rtl::OUString &rTitle, const ::rtl::OUString &rFilter ) throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException );
-+ virtual void SAL_CALL setCurrentFilter( const ::rtl::OUString &rTitle ) throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException );
-+ virtual ::rtl::OUString SAL_CALL getCurrentFilter() throw( ::com::sun::star::uno::RuntimeException );
-+
-+ // XFilterGroupManager functions
-+
-+ virtual void SAL_CALL appendFilterGroup( const ::rtl::OUString &rGroupTitle, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::StringPair > &rFilters ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-+
-+ // XFilePickerControlAccess functions
-+
-+ virtual void SAL_CALL setValue( sal_Int16 nControlId, sal_Int16 nControlAction, const ::com::sun::star::uno::Any &rValue ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Any SAL_CALL getValue( sal_Int16 nControlId, sal_Int16 nControlAction ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL enableControl( sal_Int16 nControlId, sal_Bool bEnable ) throw( ::com::sun::star::uno::RuntimeException );
-+ virtual void SAL_CALL setLabel( sal_Int16 nControlId, const ::rtl::OUString &rLabel ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getLabel( sal_Int16 nControlId ) throw (::com::sun::star::uno::RuntimeException);
-+
-+ /* TODO XFilePreview
-+
-+ virtual ::com::sun::star::uno::Sequence< sal_Int16 > SAL_CALL getSupportedImageFormats( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getTargetColorDepth( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getAvailableWidth( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getAvailableHeight( ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual void SAL_CALL setImage( sal_Int16 aImageFormat, const ::com::sun::star::uno::Any &rImage ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL setShowState( sal_Bool bShowState ) throw (::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL getShowState( ) throw (::com::sun::star::uno::RuntimeException);
-+ */
-+
-+ // XInitialization
-+
-+ virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > &rArguments ) throw( ::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException );
-+
-+ // XCancellable
-+
-+ virtual void SAL_CALL cancel( ) throw( ::com::sun::star::uno::RuntimeException );
-+
-+ // XEventListener
-+
-+ virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject &rEvent ) throw( ::com::sun::star::uno::RuntimeException );
-+
-+ // XServiceInfo
-+
-+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw( ::com::sun::star::uno::RuntimeException );
-+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString &rServiceName ) throw( ::com::sun::star::uno::RuntimeException );
-+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw( ::com::sun::star::uno::RuntimeException );
-+
-+private:
-+ // prevent copy and assignment
-+ UnxFilePicker( const UnxFilePicker& );
-+ UnxFilePicker& operator=( const UnxFilePicker& );
-+
-+protected:
-+ void initFilePicker();
-+ void checkFilePicker() throw( ::com::sun::star::uno::RuntimeException );
-+
-+ // Async sendCommand
-+ void sendCommand( const ::rtl::OUString &rCommand );
-+ // Synchronized sendCommand
-+ void sendCommand( const ::rtl::OUString &rCommand, ::osl::Condition &rCondition );
-+ void appendEscaped( ::rtl::OUStringBuffer &rBuffer, const ::rtl::OUString &rString );
-+
-+private:
-+ sal_Bool controlIdInfo( sal_Int16 nControlId, ::rtl::OUString &rType, sal_Int32 &rTitleId );
-+ sal_Bool controlActionInfo( sal_Int16 nControlId, ::rtl::OUString &rType );
-+ void sendAppendControlCommand( sal_Int16 nControlId );
-+};
-+
-+#endif // _UNXFILEPICKER_HXX_
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ fpicker/source/unx/kde_unx/UnxNotifyThread.cxx 2004-06-16 17:38:35.509479352 +0200
-@@ -0,0 +1,150 @@
-+/*************************************************************************
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Jan Holesovsky <kendy@openoffice.org>
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _UNXNOTIFYTHREAD_HXX_
-+#include <UnxNotifyThread.hxx>
-+#endif
-+
-+#ifndef _UNXFILEOPENIMPL_HXX_
-+#include <UnxFilePicker.hxx>
-+#endif
-+
-+using namespace ::com::sun::star;
-+
-+//////////////////////////////////////////////////////////////////////////
-+// UnxFilePickerNotifyThread
-+//////////////////////////////////////////////////////////////////////////
-+
-+UnxFilePickerNotifyThread::UnxFilePickerNotifyThread( UnxFilePicker *pUnxFilePicker )
-+ : m_pUnxFilePicker( pUnxFilePicker ),
-+ m_bExit( sal_False ),
-+ m_eNotifyType( Nothing ),
-+ m_nControlId( 0 )
-+{
-+}
-+
-+void SAL_CALL UnxFilePickerNotifyThread::addFilePickerListener( const uno::Reference< ui::dialogs::XFilePickerListener >& xListener )
-+ throw( uno::RuntimeException )
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ m_xListener = xListener;
-+}
-+
-+void SAL_CALL UnxFilePickerNotifyThread::removeFilePickerListener( const uno::Reference< ui::dialogs::XFilePickerListener >& xListener )
-+ throw( uno::RuntimeException )
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ m_xListener.clear();
-+}
-+
-+void SAL_CALL UnxFilePickerNotifyThread::exit()
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ m_bExit = sal_True;
-+
-+ m_aExitCondition.reset();
-+ m_aNotifyCondition.set();
-+
-+ m_aExitCondition.wait();
-+}
-+
-+void SAL_CALL UnxFilePickerNotifyThread::fileSelectionChanged()
-+{
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ m_eNotifyType = FileSelectionChanged;
-+ m_nControlId = 0;
-+
-+ m_aNotifyCondition.set();
-+}
-+
-+void SAL_CALL UnxFilePickerNotifyThread::run()
-+{
-+ do {
-+ m_aNotifyCondition.reset();
-+ m_aNotifyCondition.wait();
-+
-+ if ( m_xListener.is() && m_pUnxFilePicker )
-+ {
-+ ::osl::MutexGuard aGuard( m_aMutex );
-+
-+ ui::dialogs::FilePickerEvent aEvent( *m_pUnxFilePicker, m_nControlId );
-+
-+ switch ( m_eNotifyType )
-+ {
-+ case FileSelectionChanged:
-+ m_xListener->fileSelectionChanged( aEvent );
-+ break;
-+
-+ // TODO More to come...
-+
-+ default:
-+ // nothing
-+ break;
-+ }
-+ }
-+ } while ( !m_bExit );
-+
-+ m_aExitCondition.set();
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ fpicker/source/unx/kde_unx/UnxNotifyThread.hxx 2004-06-16 17:30:52.535862040 +0200
-@@ -0,0 +1,132 @@
-+/*************************************************************************
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): Jan Holesovsky <kendy@openoffice.org>
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef _UNXNOTIFYTHREAD_HXX_
-+#define _UNXNOTIFYTHREAD_HXX_
-+
-+#ifndef _COM_SUN_STAR_UI_DIALOGS_XFILEPICKERLISTENER_HPP_
-+#include <com/sun/star/ui/dialogs/XFilePickerListener.hpp>
-+#endif
-+
-+#ifndef _COM_SUN_STAR_UNO_REFERENCE_HXX_
-+#include <com/sun/star/uno/Reference.hxx>
-+#endif
-+
-+#ifndef _OSL_CONDITN_HXX_
-+#include <osl/conditn.hxx>
-+#endif
-+
-+#ifndef _OSL_MUTEX_HXX_
-+#include <osl/mutex.hxx>
-+#endif
-+
-+#ifndef _OSL_THREAD_HXX_
-+#include <osl/thread.hxx>
-+#endif
-+
-+class UnxFilePicker;
-+
-+class UnxFilePickerNotifyThread : public ::osl::Thread
-+{
-+protected:
-+ enum NotifyType
-+ {
-+ Nothing = 0,
-+ FileSelectionChanged
-+ // TODO More to come...
-+ };
-+
-+ UnxFilePicker *m_pUnxFilePicker;
-+
-+ ::osl::Mutex m_aMutex;
-+
-+ ::com::sun::star::uno::Reference< ::com::sun::star::ui::dialogs::XFilePickerListener > m_xListener;
-+
-+ sal_Bool m_bExit;
-+ ::osl::Condition m_aExitCondition;
-+
-+ NotifyType m_eNotifyType;
-+ ::osl::Condition m_aNotifyCondition;
-+ sal_Int16 m_nControlId;
-+
-+public:
-+ UnxFilePickerNotifyThread( UnxFilePicker *pUnxFilePicker );
-+
-+ virtual void SAL_CALL addFilePickerListener( const ::com::sun::star::uno::Reference< ::com::sun::star::ui::dialogs::XFilePickerListener >& xListener )
-+ throw( ::com::sun::star::uno::RuntimeException );
-+ virtual void SAL_CALL removeFilePickerListener( const ::com::sun::star::uno::Reference< ::com::sun::star::ui::dialogs::XFilePickerListener >& xListener )
-+ throw( ::com::sun::star::uno::RuntimeException );
-+
-+ void SAL_CALL exit();
-+
-+ void SAL_CALL fileSelectionChanged();
-+ /* TODO
-+ void SAL_CALL directoryChanged( ::com::sun::star::ui::dialogs::FilePickerEvent aEvent );
-+ rtl::OUString SAL_CALL helpRequested( ::com::sun::star::ui::dialogs::FilePickerEvent aEvent ) const;
-+ void SAL_CALL controlStateChanged( ::com::sun::star::ui::dialogs::FilePickerEvent aEvent );
-+ void SAL_CALL dialogSizeChanged( );
-+ */
-+
-+protected:
-+ virtual void SAL_CALL run();
-+};
-+
-+#endif // _UNXNOTIFYTHREAD_HXX_
diff --git a/patches/src680/fpicker-show-checkbox.diff b/patches/src680/fpicker-show-checkbox.diff
deleted file mode 100644
index 4ae881bd6..000000000
--- a/patches/src680/fpicker-show-checkbox.diff
+++ /dev/null
@@ -1,44 +0,0 @@
---- svx/source/dialog/makefile.mk 2005-01-27 16:07:36.524512181 +0100
-+++ svx/source/dialog/makefile.mk 2005-01-27 16:08:16.079495949 +0100
-@@ -74,6 +74,10 @@ LIBTARGET=NO
- CFLAGS+=-DENABLE_GTK
- .ENDIF
-
-+.IF "$(ENABLE_KDE)" != ""
-+CFLAGS+=-DENABLE_KDE
-+.ENDIF
-+
- CFLAGS+=-DDG_DLL
- RSCDEFS += -Dause_hack
-
---- svx/source/dialog/optgdlg.cxx 2005-01-27 16:07:50.057118604 +0100
-+++ svx/source/dialog/optgdlg.cxx 2005-01-27 16:10:32.283203749 +0100
-@@ -242,7 +242,7 @@ int OfaMiscTabPage::DeactivatePage( SfxI
- return LEAVE_PAGE;
- }
-
--# ifdef ENABLE_GTK
-+#if defined( ENABLE_GTK ) || defined( ENABLE_KDE )
- namespace
- {
- ::rtl::OUString impl_SystemFileOpenServiceName()
-@@ -315,17 +315,15 @@ OfaMiscTabPage::OfaMiscTabPage(Window* p
-
- //system fileopen only available in Windows and with gtk vclplug based
- //picker
--#if !defined( WNT ) && !defined( ENABLE_GTK )
-+#if !defined( WNT ) && !defined( ENABLE_GTK ) && !defined( ENABLE_KDE )
- aFileDlgFL.Hide();
- aFileDlgCB.Hide();
--#else
--# ifdef ENABLE_GTK
-+#elif defined( ENABLE_GTK ) || defined( ENABLE_KDE )
- if (!lcl_HasSystemFilePicker())
- {
- aFileDlgFL.Hide();
- aFileDlgCB.Hide();
- }
--# endif
- #endif
-
- // at least the button is as wide as its text
diff --git a/patches/src680/freedesktop-menus-spec.diff b/patches/src680/freedesktop-menus-spec.diff
deleted file mode 100644
index 7b48066cd..000000000
--- a/patches/src680/freedesktop-menus-spec.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- sysui/desktop/freedesktop/freedesktop-menus.spec.old 2005-03-08 16:34:01.000000000 +0100
-+++ sysui/desktop/freedesktop/freedesktop-menus.spec 2005-03-24 13:46:05.000000000 +0100
-@@ -10,6 +10,8 @@
- License: LGPL / SISSL
- BuildArch: noarch
- AutoReqProv: no
-+# necessary to disable the brp-symlink check in SUSE Linux 9.3 and higher
-+%define __os_install_post %{nil}
-
- %description
- OpenOffice.org desktop integration
diff --git a/patches/src680/frugalware.diff b/patches/src680/frugalware.diff
deleted file mode 100644
index 675af7650..000000000
--- a/patches/src680/frugalware.diff
+++ /dev/null
@@ -1,43 +0,0 @@
-Index: svx/prj/d.lst
-===================================================================
-RCS file: /cvs/graphics/svx/prj/d.lst,v
-retrieving revision 1.108
-diff -u -r1.108 d.lst
---- svx/prj/d.lst 9 Dec 2004 16:36:45 -0000 1.108
-+++ svx/prj/d.lst 16 Dec 2004 12:43:47 -0000
-@@ -55,7 +55,7 @@
- ..\res\cjkintro.bmp %COMMON_DEST%\pck%_EXT%\starsuite_bitmap\intro.bmp
- ..\res\ofaabout.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\about.bmp
- ..\res\soffice.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\intro.bmp
--..\res\ooointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro.bmp
-+..\res\openintro_fw.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro.bmp
- ..\res\ooonologointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\nologointro.bmp
-
- mkdir: %_DEST%\inc%_EXT%\svx
-Index: svx/source/intro/ooo.src
-===================================================================
-RCS file: /cvs/graphics/svx/source/intro/ooo.src,v
-retrieving revision 1.11
-diff -u -r1.11 ooo.src
---- svx/source/intro/ooo.src 7 Jan 2005 09:49:30 -0000 1.11
-+++ svx/source/intro/ooo.src 1 Feb 2005 16:48:49 -0000
-@@ -48,8 +48,8 @@
- #include "svxids.hrc"
- #include "intro.hrc"
-
--#ifdef BUILD_SPECIAL
--#define OOO_VENDOR "Sun Microsystems Inc."
-+#if 1
-+#define OOO_VENDOR "Frugalware Linux i686 Edition"
- #else
- //#define OOO_VENDOR "my company"
- #endif
-@@ -56,7 +56,7 @@
-
- Bitmap RID_DEFAULT_ABOUT_BMP_LOGO
- {
-- File = "openabout.bmp" ;
-+ File = "openabout_fw.bmp" ;
- };
-
- String RID_APPTITLE
diff --git a/patches/src680/frugalware64.diff b/patches/src680/frugalware64.diff
deleted file mode 100644
index fcac84183..000000000
--- a/patches/src680/frugalware64.diff
+++ /dev/null
@@ -1,43 +0,0 @@
-Index: svx/prj/d.lst
-===================================================================
-RCS file: /cvs/graphics/svx/prj/d.lst,v
-retrieving revision 1.108
-diff -u -r1.108 d.lst
---- svx/prj/d.lst 9 Dec 2004 16:36:45 -0000 1.108
-+++ svx/prj/d.lst 16 Dec 2004 12:43:47 -0000
-@@ -55,7 +55,7 @@
- ..\res\cjkintro.bmp %COMMON_DEST%\pck%_EXT%\starsuite_bitmap\intro.bmp
- ..\res\ofaabout.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\about.bmp
- ..\res\soffice.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\intro.bmp
--..\res\ooointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro.bmp
-+..\res\openintro_fw64.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro.bmp
- ..\res\ooonologointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\nologointro.bmp
-
- mkdir: %_DEST%\inc%_EXT%\svx
-Index: svx/source/intro/ooo.src
-===================================================================
-RCS file: /cvs/graphics/svx/source/intro/ooo.src,v
-retrieving revision 1.11
-diff -u -r1.11 ooo.src
---- svx/source/intro/ooo.src 7 Jan 2005 09:49:30 -0000 1.11
-+++ svx/source/intro/ooo.src 1 Feb 2005 16:48:49 -0000
-@@ -48,8 +48,8 @@
- #include "svxids.hrc"
- #include "intro.hrc"
-
--#ifdef BUILD_SPECIAL
--#define OOO_VENDOR "Sun Microsystems Inc."
-+#if 1
-+#define OOO_VENDOR "Frugalware Linux 64bit Edition"
- #else
- //#define OOO_VENDOR "my company"
- #endif
-@@ -56,7 +56,7 @@
-
- Bitmap RID_DEFAULT_ABOUT_BMP_LOGO
- {
-- File = "openabout.bmp" ;
-+ File = "openabout_fw64.bmp" ;
- };
-
- String RID_APPTITLE
diff --git a/patches/src680/gcc4-visibility-sc.diff b/patches/src680/gcc4-visibility-sc.diff
deleted file mode 100644
index ee227e5a0..000000000
--- a/patches/src680/gcc4-visibility-sc.diff
+++ /dev/null
@@ -1,38 +0,0 @@
---- sc/inc/miscuno.hxx.old 2005-03-23 13:44:54.000000000 +0100
-+++ sc/inc/miscuno.hxx 2005-08-02 19:38:06.000000000 +0200
-@@ -337,11 +337,11 @@
- com::sun::star::beans::XPropertySet>& xProp,
- const ::rtl::OUString& rName, long nDefault );
-
-- static sal_Bool GetBoolFromAny( const com::sun::star::uno::Any& aAny );
-+ SC_DLLPUBLIC static sal_Bool GetBoolFromAny( const com::sun::star::uno::Any& aAny );
- static sal_Int16 GetInt16FromAny( const com::sun::star::uno::Any& aAny );
- static sal_Int32 GetInt32FromAny( const com::sun::star::uno::Any& aAny );
- static sal_Int32 GetEnumFromAny( const com::sun::star::uno::Any& aAny );
-- static void SetBoolInAny( com::sun::star::uno::Any& rAny, sal_Bool bValue );
-+ SC_DLLPUBLIC static void SetBoolInAny( com::sun::star::uno::Any& rAny, sal_Bool bValue );
- };
-
-
---- sc/inc/optutil.hxx.old 2000-11-02 20:08:15.000000000 +0100
-+++ sc/inc/optutil.hxx 2005-08-02 19:32:54.000000000 +0200
-@@ -70,6 +70,10 @@
- #include <tools/link.hxx>
- #endif
-
-+#ifndef INCLUDED_SCDLLAPI_H
-+#include "scdllapi.h"
-+#endif
-+
-
- class ScOptionsUtil
- {
-@@ -80,7 +84,7 @@
-
- // ConfigItem for classes that use items from several sub trees
-
--class ScLinkConfigItem : public utl::ConfigItem
-+class SC_DLLPUBLIC ScLinkConfigItem : public utl::ConfigItem
- {
- Link aCommitLink;
-
diff --git a/patches/src680/gcc401-stlport45-include.diff b/patches/src680/gcc401-stlport45-include.diff
deleted file mode 100644
index 9e9a14538..000000000
--- a/patches/src680/gcc401-stlport45-include.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- stlport/STLport-4.5.patch.gcc401pch 2005-06-20 17:41:05.000000000 +0200
-+++ stlport/STLport-4.5.patch 2005-06-22 21:11:48.581445640 +0200
-@@ -481,3 +481,16 @@
- }
-
-
-+--- misc/build/STLport-4.5/stlport/config/stl_gcc.h.gcc401 2005-06-22 21:05:26.985457048 +0200
-++++ misc/build/STLport-4.5/stlport/config/stl_gcc.h 2005-06-22 21:09:27.472897400 +0200
-+@@ -373,3 +373,10 @@
-+ # undef _STLP_HAS_NATIVE_FLOAT_ABS
-+ # define _STLP_VENDOR_GLOBAL_CSTD 1
-+ #endif
-++
-++// Setting _STLP_NATIVE_INCLUDE_PATH (brute force method to avoid a problem
-++// with gcc 4.0.1 (macros "i586-<distro>-linux" were expanded to "i586-<distro>-1 ")
-++#undef _STLP_NATIVE_INCLUDE_PATH
-++#undef _STLP_NATIVE_OLD_STREAMS_INCLUDE_PATH
-++#define _STLP_NATIVE_INCLUDE_PATH /usr/include/c++/__GNUC__.__GNUC_MINOR__.__GNUC_PATCHLEVEL__
-++#define _STLP_NATIVE_OLD_STREAMS_INCLUDE_PATH /usr/include/c++/__GNUC__.__GNUC_MINOR__.__GNUC_PATCHLEVEL__/backward
diff --git a/patches/src680/gcj-HelpLinker-native.diff b/patches/src680/gcj-HelpLinker-native.diff
deleted file mode 100644
index ff8eb6fd8..000000000
--- a/patches/src680/gcj-HelpLinker-native.diff
+++ /dev/null
@@ -1,121 +0,0 @@
-Index: set_soenv.in
-===================================================================
-RCS file: /cvs/tools/config_office/set_soenv.in,v
-retrieving revision 1.74
-diff -u -p -u -r1.74 set_soenv.in
---- config_office/set_soenv.in 30 Aug 2005 09:12:51 -0000 1.74
-+++ config_office/set_soenv.in 16 Sep 2005 10:53:11 -0000
-@@ -78,7 +78,7 @@ my ( $oldPATH, $SRC_ROOT, $SO_HOME, $JAV
- $UPD, $SOLARUPD, $WORK_STAMP, $TF_ONE51, $TF_UCB,
- $URD_ONLY, $SOLARROOT, $SOLARSRC, $DEVROOT, $SOLARVER, $SOLARVERSION, $SOLARENV,
- $STAR_INIROOT, $STAR_INIROOTOLD, $STAR_STANDLST, $STAR_SSCOMMON, $STAR_SSOLARINI,
-- $STAR_REGISTRY, $STAR_RESOURCEPATH, $DMAKEROOT, $CLASSPATH, $XCLASSPATH, $COMPATH, $GCJ_DATABASE,
-+ $STAR_REGISTRY, $STAR_RESOURCEPATH, $DMAKEROOT, $CLASSPATH, $XCLASSPATH, $COMPATH, $GCJ_DATABASE, $GCJ_CACHEDIR,
- $MSPDB_PATH, $MIDL_PATH, $CSC_PATH, $NMAKE_PATH,
- $LD_LIBRARY_PATH, $PATH, $SOLARDEF, $SOLAREXTRAINC, $SOLAREXTRALIB, $SOLARLIB,
- $SOLARINC, $LOCALINI, $PATHEXTRA, $FRAMEWORKSHOME, $COMEX, $MULTITHREAD_OBJ, $PERL,
-@@ -894,8 +894,10 @@ $CLASSPATH = '$JAVA_HOME'.$ds
- # Location of the JDK supported standard classes.zip file.
- # see above for why the change
- $XCLASSPATH = '$JAVA_HOME'.$ds.'jre'.$LIB.$ds."rt.jar".$ps.'.';
--# Localtion of gcj cache
--$GCJ_DATABASE = '$SOLARVER'.$ds.'$UPD'.$ds.'$INPATH'.$LIB.$ds."openoffice.org.gcjdb";
-+# Location of gcj cache
-+$GCJ_CACHEDIR = '$SOLARVER'.$ds.'$UPD'.$ds.'$INPATH'.$LIB.$ds;
-+# Location of gcj database
-+$GCJ_DATABASE = $GCJ_CACHEDIR."openoffice.org.gcjdb";
-
- # Paths to run time shared libraries.
- if ($platform =~ m/solaris/)
-@@ -1659,6 +1661,7 @@ if ( $JDK ne "gcj" ) {
- ToFile( "XCLASSPATH", $XCLASSPATH, "e" );
- }
- else {
-+ ToFile( "GCJ_CACHEDIR", $GCJ_CACHEDIR, "e" );
- ToFile( "GCJ_DATABASE", $GCJ_DATABASE, "e" );
- ToFile( "JAVACACHE", '@JAVACACHE@', "e" );
- ToFile( "AWTLIB", '@AWTLIB@', "e" );
-Index: util/target.pmk
-===================================================================
-RCS file: /cvs/documentation/helpcontent2/util/target.pmk,v
-retrieving revision 1.10
-diff -u -p -u -r1.10 target.pmk
---- helpcontent2/util/target.pmk 8 Sep 2005 03:01:39 -0000 1.10
-+++ helpcontent2/util/target.pmk 16 Sep 2005 11:12:39 -0000
-@@ -46,5 +46,8 @@
-
- $(LINKALLTARGETS) : $(foreach,i,$(LINKLINKFILES) $(COMMONMISC)$/$$(@:b:s/_/./:e:s/.//)/$i) $(subst,LANGUAGE,$$(@:b:s/_/./:e:s/.//) $(LINKADDEDDEPS)) $(COMMONMISC)$/xhp_changed.flag
- @+-$(MKDIR) -p $(@:d)
-+.IF "$(JDK)" != "gcj"
- $(JAVAI) $(JAVA_LIBRARY_PATH) -cp $(my_cp) com.sun.star.help.HelpLinker @$(mktmp -mod $(LINKNAME) -hid $(PRJ)$/helpers/hid.lst -src $(COMMONMISC) -sty $(PRJ)$/source$/auxiliary$/embed.xsl -idx $(PRJ)$/source$/auxiliary$/index.xsl -lang {$(subst,$(LINKNAME)_, $(@:b))} $(subst,LANGUAGE,{$(subst,$(LINKNAME)_, $(@:b))} $(LINKADDEDFILES)) $(foreach,i,$(LINKLINKFILES) $(COMMONMISC)$/{$(subst,$(LINKNAME)_, $(@:b))}/$i) -o $@)
--
-+.ELSE
-+ HelpLinker @$(mktmp -mod $(LINKNAME) -hid $(PRJ)$/helpers/hid.lst -src $(COMMONMISC) -sty $(PRJ)$/source$/auxiliary$/embed.xsl -idx $(PRJ)$/source$/auxiliary$/index.xsl -lang {$(subst,$(LINKNAME)_, $(@:b))} $(subst,LANGUAGE,{$(subst,$(LINKNAME)_, $(@:b))} $(LINKADDEDFILES)) $(foreach,i,$(LINKLINKFILES) $(COMMONMISC)$/{$(subst,$(LINKNAME)_, $(@:b))}/$i) -o $@)
-+.ENDIF
-Index: bin/deliver.pl
-===================================================================
-RCS file: /cvs/tools/solenv/bin/deliver.pl,v
-retrieving revision 1.92
-diff -u -p -u -r1.92 deliver.pl
---- solenv/bin/deliver.pl 7 Sep 2005 22:07:53 -0000 1.92
-+++ solenv/bin/deliver.pl 16 Sep 2005 10:53:51 -0000
-@@ -720,8 +720,10 @@ sub strip_target {
- };
-
- sub cachejar {
-+ my $todir = $ENV{'GCJ_CACHEDIR'};
- my $file = shift;
-- my $to = $file.".so";
-+ $lib = basename($file);
-+ my $to = $todir."lib".$lib.".so";
- print "CACHEJAR: $file -> $to with $ENV{GCJ_DATABASE}\n";
- print "Caching 1/2: $ENV{JAVACOMPILER} -shared -fPIC -Wl,-Bsymbolic -O2 -findirect-dispatch -fjni -o $to $file\n";
- system("$ENV{JAVACOMPILER} -shared -fPIC -Wl,-Bsymbolic -O2 -findirect-dispatch -fjni -o $to $file");
-Index: prj/d.lst
-===================================================================
-RCS file: /cvs/util/xmlhelp/prj/d.lst,v
-retrieving revision 1.12
-diff -u -p -u -r1.12 d.lst
---- xmlhelp/prj/d.lst 27 May 2003 15:54:01 -0000 1.12
-+++ xmlhelp/prj/d.lst 16 Sep 2005 10:51:40 -0000
-@@ -1,4 +1,5 @@
- ..\%__SRC%\bin\*.dll %_DEST%\bin%_EXT%\*.*
-+..\%__SRC%\bin\HelpLinker %_DEST%\bin%_EXT%\HelpLinker
- ..\%__SRC%\lib\lib*.so %_DEST%\lib%_EXT%
- ..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.*
- ..\%__SRC%\class\*.jar %_DEST%\bin%_EXT%\*.*
-Index: source/com/sun/star/help/makefile.mk
-===================================================================
-RCS file: /cvs/util/xmlhelp/source/com/sun/star/help/makefile.mk,v
-retrieving revision 1.20
-diff -u -p -u -r1.20 makefile.mk
---- xmlhelp/source/com/sun/star/help/makefile.mk 11 Apr 2005 09:31:48 -0000 1.20
-+++ xmlhelp/source/com/sun/star/help/makefile.mk 21 Sep 2005 13:00:11 -0000
-@@ -75,10 +75,27 @@ JAVACLASSFILES += \
- $(CLASSDIR)$/$(PACKAGE)$/FileURLStreamHandlerWithNotify.class
- .ENDIF
-
-+.IF "$(JDK)"=="gcj"
-+
-+.IF "$(SYSTEM_DB)"=="YES"
-+$(BIN)$/HelpLinker: $(LB)$/libdb.jar.a
-+.ELSE
-+$(BIN)$/HelpLinker:
-+.ENDIF
-+ $(JAVACOMPILER) --main=com.sun.star.help.HelpLinker -o $(BIN)$/HelpLinker \
-+ -O2 -Wl,-Bsymbolic -findirect-dispatch -fjni -fno-assert -Wno-deprecated \
-+ $(JAVACPS) $(CLASSPATH) $(JAVAFILES) $(SOLARLIB) -L$(LB) \
-+ -ldb.jar -lxmlsearch.jar -lxt.jar -lunoil.jar -ljurt.jar -lridl.jar
-+
-+$(LB)$/libdb.jar.a:
-+ $(JAVACOMPILER) -c -O2 -findirect-dispatch -fjni $(DB_JAR) -o $(LB)$/libdb.jar.a
-+
-+.ELSE
- JARCLASSDIRS = com
- JARTARGET = $(PRJNAME).jar
- JARCOMPRESS = TRUE
- CUSTOMMANIFESTFILE = manifest
-+.ENDIF
-
-
- # --- Targets ------------------------------------------------------
diff --git a/patches/src680/gcj-dbtool-optional.diff b/patches/src680/gcj-dbtool-optional.diff
deleted file mode 100644
index 423719774..000000000
--- a/patches/src680/gcj-dbtool-optional.diff
+++ /dev/null
@@ -1,68 +0,0 @@
---- config_office/configure.in.ark 2005-06-02 13:58:53.000000000 +0200
-+++ config_office/configure.in 2005-06-02 14:02:02.000000000 +0200
-@@ -261,6 +261,8 @@
- or XML filters. Use --with-java=gij to enable gij/gcj
- as java/javac replacements
- ], if test "$withval" = "yes"; then WITH_JAVA=java; else WITH_JAVA=$withval; fi, WITH_JAVA=java)
-+AC_ARG_ENABLE(gcj-dbtool,
-+[ --enable-gcj-dbtool Use gcj-dbtool to cache te used jars to speed up using them (gcj-only)],,)
- AC_ARG_WITH(ant-home,
- [ --with-ant-home If you have installed Jakarta Ant on your system,
- please supply the path here.
-@@ -1898,18 +1900,24 @@
- dnl Check for optional gcj-dbtool
- dnl ===================================================================
- if test "$JDK" = "gcj"; then
-- javacache=`echo $WITH_JAVA | $SED -e "s/gij/gcj-dbtool/g"`
-- if test -z "$with_jdk_home"; then
-- AC_PATH_PROG(JAVACACHE, $javacache)
-- else
-- _javac_path="$with_jdk_home/bin/$javacache"
-- dnl Check if there is a gcj-dbtool at all.
-- if test -x "$_javac_path"; then
-- JAVACACHE=$_javac_path
-+ AC_MSG_CHECKING([whether to cache jars])
-+ if test -n "$enable_gcj_dbtool" && test "$enable_gcj_dbtool" != "no"; then
-+ AC_MSG_RESULT([yes])
-+ javacache=`echo $WITH_JAVA | $SED -e "s/gij/gcj-dbtool/g"`
-+ if test -z "$with_jdk_home"; then
-+ AC_PATH_PROG(JAVACACHE, $javacache)
-+ else
-+ _javac_path="$with_jdk_home/bin/$javacache"
-+ dnl Check if there is a gcj-dbtool at all.
-+ if test -x "$_javac_path"; then
-+ JAVACACHE=$_javac_path
-+ fi
- fi
-- fi
-- if test -z "$JAVACACHE"; then
-- AC_MSG_WARN([$javacache not found set with_jdk_home])
-+ if test -z "$JAVACACHE"; then
-+ AC_MSG_WARN([$javacache not found set with_jdk_home])
-+ fi
-+ else
-+ AC_MSG_RESULT([no])
- fi
- fi
- AC_SUBST(JAVACACHE)
---- solenv/bin/deliver.pl.ark 2005-06-02 14:02:08.000000000 +0200
-+++ solenv/bin/deliver.pl 2005-06-02 14:03:08.000000000 +0200
-@@ -782,7 +782,8 @@
- # hard link if possible
- if( link($from, $to) ){
- print "LINK: $from -> $to\n";
-- if ($ENV{JDK} eq 'gcj' && is_jar($from)) {
-+ if (defined $ENV{JDK} && $ENV{JDK} eq 'gcj' &&
-+ defined $ENV{JAVACACHE} && $ENV{JAVACACHE} ne '' && is_jar($from)) {
- cachejar($to);
- }
- return 1;
-@@ -818,7 +818,7 @@
- fix_file_permissions($$from_stat_ref[2], $temp_file);
- $rc = rename($temp_file, $to);
- if ( $rc ) {
-- if (defined($ENV{JDK}) && $ENV{JDK} eq 'gcj' && is_jar($from)) {
-+ if (defined($ENV{JDK}) && $ENV{JDK} eq 'gcj' && defined($ENV{JAVACACHE}) && $ENV{CACHEJAR} ne '' && is_jar($from)) {
- cachejar($to);
- }
- # handle special packaging of *.dylib files for Mac OS X
diff --git a/patches/src680/gcj-filter-xalan-classpath.diff b/patches/src680/gcj-filter-xalan-classpath.diff
deleted file mode 100644
index 81a74a18a..000000000
--- a/patches/src680/gcj-filter-xalan-classpath.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- filter/source/config/fragments/makefile.mk 2005-10-21 17:40:55.000000000 +0200
-+++ filter/source/config/fragments/makefile.mk 2005-10-21 17:33:10.000000000 +0200
-@@ -164,7 +164,7 @@
- XALANCLASS=$(SOLARBINDIR)/xalan.jar
- CLASSPATH:=$(CLASSPATH)$(PATH_SEPERATOR){$(subst,%Z*Z%,$(PATH_SEPERATOR) $(XALANCLASS:s/ /%Z*Z%/))}
- .ENDIF
--PACKLANG := $(JAVAI) org.apache.xalan.xslt.Process -XSL langfilter.xsl
-+PACKLANG := $(JAVAI) -classpath .:$(XALANCLASS) org.apache.xalan.xslt.Process -XSL langfilter.xsl
- PACKLANG_IN := -IN
- PACKLANG_PARAM := -PARAM
- PACKLANG_XSL := -XSL
diff --git a/patches/src680/gcj-jvmfwk-gcc41.diff b/patches/src680/gcj-jvmfwk-gcc41.diff
deleted file mode 100644
index 982576c55..000000000
--- a/patches/src680/gcj-jvmfwk-gcc41.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- jvmfwk/plugins/sunmajor/pluginlib/gnujre.cxx 7 Sep 2005 19:29:41 -0000 1.4
-+++ jvmfwk/plugins/sunmajor/pluginlib/gnujre.cxx 5 Dec 2005 13:34:53 -0000 1.4.16.1
-@@ -63,6 +63,7 @@ char const* const* GnuInfo::getJavaExePa
- char const* const* GnuInfo::getRuntimePaths(int * size)
- {
- static char const* ar[]= {
-+ "/lib/libgcj.so.7",
- "/lib/libgcj.so.6"
- #if 0 //unreliable
- , "/lib/libgcj.so.5"
diff --git a/patches/src680/gcj-no-broken-jaxp.diff b/patches/src680/gcj-no-broken-jaxp.diff
deleted file mode 100644
index 715d70295..000000000
--- a/patches/src680/gcj-no-broken-jaxp.diff
+++ /dev/null
@@ -1,427 +0,0 @@
---- toolkit/test/accessibility/jawb.mf.ark 2005-11-25 21:33:48.000000000 +0000
-+++ toolkit/test/accessibility/jawb.mf 2005-11-25 21:33:55.000000000 +0000
-@@ -1,3 +1,3 @@
- Manifest-Version: 1.0
- Main-Class: AccessibilityWorkBench
--Class-Path: classes.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar xt.jar jaxp.jar
-+Class-Path: classes.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar xt.jar
---- solenv/bin/modules/installer/javainstaller.pm.ark 2005-11-25 21:34:06.000000000 +0000
-+++ solenv/bin/modules/installer/javainstaller.pm 2005-11-25 21:34:18.000000000 +0000
-@@ -494,14 +494,13 @@
-
- # The variable CLASSPATH has to contain:
- # $installsdk/classes:$installsdk/classes/setupsdk.jar:
-- # $installsdk/classes/parser.jar:$installsdk/classes/jaxp.jar:
-+ # $installsdk/classes/parser.jar:
- # $installsdk/classes/ldapjdk.jar:$directory
-
- my @additional_classpath = ();
- push(@additional_classpath, "$installsdk\/classes");
- push(@additional_classpath, "$installsdk\/installsdk.jar");
- push(@additional_classpath, "$installsdk\/classes\/parser.jar");
-- push(@additional_classpath, "$installsdk\/classes\/jaxp.jar");
- push(@additional_classpath, "$directory");
-
- my $newclasspathstring = "";
---- solenv/inc/tg_config.mk.ark 2005-11-25 21:34:37.000000000 +0000
-+++ solenv/inc/tg_config.mk 2005-11-25 21:35:55.000000000 +0000
-@@ -62,12 +62,12 @@
- -$(MKDIRHIER) $(@:d)
- .IF "$(XSLTPROC)"=="NO_XSLTPROC"
- .IF "$(NO_INSPECTION)"==""
-- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/jaxp.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/cfgimport.jar -Djavax.xml.parsers.SAXParserFactory=com.sun.xml.parser.SAXParserFactoryImpl org.openoffice.configuration.Inspector $<
-+ $(JAVAI) $(JAVACPS) $(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/cfgimport.jar -Djavax.xml.parsers.SAXParserFactory=com.sun.xml.parser.SAXParserFactoryImpl org.openoffice.configuration.Inspector $<
- .ENDIF # "$(NO_INSPECTION)"==""
- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $< $(XSLDIR)$/schema_val.xsl $(@:d)$*.val componentName=$(PACKAGE).$*
- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $< $(XSLDIR)$/sanity.xsl $(@:d)$*.san
- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $< $(XSLDIR)$/schema_trim.xsl $(@:d)$*.tmp
-- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/jaxp.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/schema.jar -Djavax.xml.parsers.SAXParserFactory=com.sun.xml.parser.SAXParserFactoryImpl org.openoffice.helper.PrettyPrinter $(@:d)$*.tmp $@
-+ $(JAVAI) $(JAVACPS) $(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/schema.jar -Djavax.xml.parsers.SAXParserFactory=com.sun.xml.parser.SAXParserFactoryImpl org.openoffice.helper.PrettyPrinter $(@:d)$*.tmp $@
- .ELSE
- # xsltproc already validates against the dtd. For additional validation,
- # org.openoffice.configuration.Inspector should be replaced and the
-@@ -129,11 +129,11 @@
- -$(MKDIRHIER) $(@:d)
- .IF "$(XSLTPROC)"=="NO_XSLTPROC"
- .IF "$(NO_INSPECTION)"==""
-- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/jaxp.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/cfgimport.jar -Djavax.xml.parsers.SAXParserFactory=com.sun.xml.parser.SAXParserFactoryImpl org.openoffice.configuration.Inspector $<
-+ $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/cfgimport.jar -Djavax.xml.parsers.SAXParserFactory=com.sun.xml.parser.SAXParserFactoryImpl org.openoffice.configuration.Inspector $<
- .ENDIF # "$(NO_INSPECTION)"==""
- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/cfgimport.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $< $(XSLDIR)$/data_val.xsl $(@:d)$*.val xcs=$(XCSROOT)$/registry$/schema$/$(PACKAGEDIR)$/$*.xcs schemaRoot=$(XCSROOT)$/registry$/schema
- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/cfgimport.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $< $(XSLDIR)$/alllang.xsl $(@:d)$*.tmp xcs=$(XCSROOT)$/registry$/schema$/$(PACKAGEDIR)$/$*.xcs schemaRoot=$(XCSROOT)$/registry$/schema
-- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/jaxp.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/schema.jar -Djavax.xml.parsers.SAXParserFactory=com.sun.xml.parser.SAXParserFactoryImpl org.openoffice.helper.PrettyPrinter $(@:d)$*.tmp $@
-+ $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/schema.jar -Djavax.xml.parsers.SAXParserFactory=com.sun.xml.parser.SAXParserFactoryImpl org.openoffice.helper.PrettyPrinter $(@:d)$*.tmp $@
- .ELSE
- # xsltproc already validates against the dtd. For additional validation,
- # org.openoffice.configuration.Inspector should be replaced and the
-@@ -171,7 +171,7 @@
- -$(MKDIRHIER) $(@:d)
- .IF "$(XSLTPROC)"=="NO_XSLTPROC"
- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/cfgimport.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $< $(XSLDIR)$/alllang.xsl $(@:d)$*.tmp xcs=$(XCSROOT)$/registry$/schema$/$(PACKAGEDIR)$/$*.xcs schemaRoot=$(XCSROOT)$/registry$/schema locale={$(subst,$/$(PACKAGEDIR)$/$(@:f), $(subst,$(PROCESSOUT)$/registry$/res$/, $@))}
-- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/jaxp.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/schema.jar -Djavax.xml.parsers.SAXParserFactory=com.sun.xml.parser.SAXParserFactoryImpl org.openoffice.helper.PrettyPrinter $(@:d)$*.tmp $@
-+ $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/schema.jar -Djavax.xml.parsers.SAXParserFactory=com.sun.xml.parser.SAXParserFactoryImpl org.openoffice.helper.PrettyPrinter $(@:d)$*.tmp $@
- .ELSE
- $(XSLTPROC) -o $(@:d)$*.tmp \
- --stringparam xcs $(XCSROOT)$/registry$/schema$/$(PACKAGEDIR)$/$*.xcs \
-@@ -207,7 +207,7 @@
- -$(MKDIRHIER) $(@:d)
- .IF "$(XSLTPROC)"=="NO_XSLTPROC"
- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/cfgimport.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $< $(XSLDIR)$/alllang.xsl $(@:d)$(@:f:s/.xcu/.tmp/) xcs=$(XCSROOT)$/registry$/schema$/$(PACKAGEDIR)$/$(<:b).xcs schemaRoot=$(XCSROOT)$/registry$/schema module={$(subst,$(<:b)-, $(*))}
-- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/jaxp.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/schema.jar -Djavax.xml.parsers.SAXParserFactory=com.sun.xml.parser.SAXParserFactoryImpl org.openoffice.helper.PrettyPrinter $(@:d)$(@:f:s/.xcu/.tmp/) $@
-+ $(JAVAI) $(JAVACPS) $(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/schema.jar -Djavax.xml.parsers.SAXParserFactory=com.sun.xml.parser.SAXParserFactoryImpl org.openoffice.helper.PrettyPrinter $(@:d)$(@:f:s/.xcu/.tmp/) $@
- .ELSE
- $(XSLTPROC) -o $(@:d)$(@:f:s/.xcu/.tmp/) \
- --stringparam xcs $(XCSROOT)$/registry$/schema$/$(PACKAGEDIR)$/$(<:b).xcs \
---- external/prj/d.lst.ark 2005-11-25 21:36:21.000000000 +0000
-+++ external/prj/d.lst 2005-11-25 21:36:28.000000000 +0000
-@@ -24,7 +24,6 @@
- ..\%__SRC%\bin\*.zip %_DEST%\pck%_EXT%\*.zip
- ..\common.pro\bin\*.zip %_DEST%\pck%_EXT%\*.zip
- ..\common\xt.jar %_DEST%\bin%_EXT%\xt.jar
--..\common\jaxp.jar %_DEST%\bin%_EXT%\jaxp.jar
- ..\common\parser.jar %_DEST%\bin%_EXT%\parser.jar
-
- ..\audio\rtufiles\lib\audio\libaudio.a %_DEST%\lib%_EXT%\libaudio.a
---- officecfg/org/openoffice/configuration/makefile.mk.ark 2005-11-25 21:36:44.000000000 +0000
-+++ officecfg/org/openoffice/configuration/makefile.mk 2005-11-25 21:36:50.000000000 +0000
-@@ -43,7 +43,7 @@
-
- .INCLUDE : settings.mk
-
--JARFILES = jaxp.jar parser.jar xt.jar
-+JARFILES = parser.jar xt.jar
-
- JAVACLASSFILES= \
- $(CLASSDIR)$/$(PACKAGE)$/XMLDefaultGenerator.class \
---- officecfg/org/openoffice/helper/makefile.mk.ark 2005-11-25 21:36:59.000000000 +0000
-+++ officecfg/org/openoffice/helper/makefile.mk 2005-11-25 21:37:03.000000000 +0000
-@@ -43,7 +43,7 @@
-
- .INCLUDE : settings.mk
-
--JARFILES = jaxp.jar parser.jar
-+JARFILES = parser.jar
-
- JAVACLASSFILES= \
- $(CLASSDIR)$/$(PACKAGE)$/DefaultNamespaceRemover.class \
---- xmlhelp/source/com/sun/star/help/helpserver.sh.ark 2005-11-25 21:37:18.000000000 +0000
-+++ xmlhelp/source/com/sun/star/help/helpserver.sh 2005-11-25 21:37:22.000000000 +0000
-@@ -11,7 +11,7 @@
- _DIR="program"
- _MAIN_CLASS="com.sun.star.tools.uno.UnoApp"
- _MAIN_JAR="xmlhelp.jar"
--_NEEDED_JARS="$_MAIN_JAR jut.jar juh.jar ridl.jar daemons2.jar java_uno.jar unoil.jar jurt.jar db.jar jaxp.jar xmlsearch.jar parser.jar xt.jar"
-+_NEEDED_JARS="$_MAIN_JAR jut.jar juh.jar ridl.jar daemons2.jar java_uno.jar unoil.jar jurt.jar db.jar xmlsearch.jar parser.jar xt.jar"
- THREADS_FLAG=native; export THREADS_FLAG
-
- usage_error()
---- xmlhelp/source/com/sun/star/help/makefile.mk.ark 2005-11-25 21:37:33.000000000 +0000
-+++ xmlhelp/source/com/sun/star/help/makefile.mk 2005-11-25 21:37:37.000000000 +0000
-@@ -22,7 +22,7 @@
-
- .INCLUDE : settings.mk
-
--JARFILES = jaxp.jar parser.jar xt.jar unoil.jar ridl.jar jurt.jar jut.jar xmlsearch.jar
-+JARFILES = parser.jar xt.jar unoil.jar ridl.jar jurt.jar jut.jar xmlsearch.jar
- EXTRAJARFILES =
-
- .IF "$(SYSTEM_DB)" == "YES"
---- xmlhelp/source/com/sun/star/help/startXMLHelp.ark 2005-11-25 21:37:50.000000000 +0000
-+++ xmlhelp/source/com/sun/star/help/startXMLHelp 2005-11-25 21:38:03.000000000 +0000
-@@ -1,4 +1,4 @@
--d:\jbuilder35\jdk1.2.2\bin\java -classpath .;..\..\..\..\..\wntmsci3\class;.;e:\local\r\jdk121\jre\lib\rt.jar;e:\local\o\SRC608\wntmsci3\bin.a\unoil.jar;e:\local\o\SRC608\wntmsci3\bin.a\jurt.jar;e:\local\o\SRC608\wntmsci3\bin.a\juh.jar;e:\local\o\SRC608\wntmsci3\bin.a\db31.jar;e:\local\o\SRC608\wntmsci3\bin.a\jaxp.jar;e:\local\o\SRC608\wntmsci3\bin.a\parser.jar;e:\local\o\SRC608\wntmsci3\bin.a\xt.jar;e:\jarpatches\daemons2.jar;e:\test\jut\wntmsci3\class com.sun.star.tools.uno.UnoApp -smgr \"-c file:///e:/local/o/src606/xmlhelp/wntmsci3/class/xmlhelp.jar\" -u "uno:socket,host=0,port=12000;urp;HelpProvider" -s com.sun.star.help.XMLHelp
-+d:\jbuilder35\jdk1.2.2\bin\java -classpath .;..\..\..\..\..\wntmsci3\class;.;e:\local\r\jdk121\jre\lib\rt.jar;e:\local\o\SRC608\wntmsci3\bin.a\unoil.jar;e:\local\o\SRC608\wntmsci3\bin.a\jurt.jar;e:\local\o\SRC608\wntmsci3\bin.a\juh.jar;e:\local\o\SRC608\wntmsci3\bin.a\db31.jar;e:\local\o\SRC608\wntmsci3\bin.a\parser.jar;e:\local\o\SRC608\wntmsci3\bin.a\xt.jar;e:\jarpatches\daemons2.jar;e:\test\jut\wntmsci3\class com.sun.star.tools.uno.UnoApp -smgr \"-c file:///e:/local/o/src606/xmlhelp/wntmsci3/class/xmlhelp.jar\" -u "uno:socket,host=0,port=12000;urp;HelpProvider" -s com.sun.star.help.XMLHelp
-
-
-
---- XmlSearch/src/com/sun/xmlsearch/makefile.mk.ark 2005-11-25 22:02:50.000000000 +0000
-+++ XmlSearch/src/com/sun/xmlsearch/makefile.mk 2005-11-25 22:03:00.000000000 +0000
-@@ -21,8 +21,8 @@
-
- .INCLUDE : settings.mk
-
--JARFILES = jaxp.jar parser.jar xt.jar
--#EXTRAJARFILES = jaxp.jar parser.jar xt.jar
-+JARFILES = parser.jar xt.jar
-+#EXTRAJARFILES = parser.jar xt.jar
-
- JAVAFILES = $(subst,$(CLASSDIR)$/$(PACKAGE)$/, $(subst,.class,.java $(JAVACLASSFILES)))
-
---- filter/source/config/tools/utils/makefile.mk.ark 2005-11-25 22:03:09.000000000 +0000
-+++ filter/source/config/tools/utils/makefile.mk 2005-11-25 22:03:16.000000000 +0000
-@@ -51,7 +51,6 @@
- juh.jar \
- jut.jar \
- java_uno.jar \
-- jaxp.jar \
- parser.jar
-
- JAVACLASSFILES = \
---- xmerge/java/org/openoffice/xmerge/converter/dom/build.xml.ark 2005-11-25 22:03:44.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/converter/dom/build.xml 2005-11-25 22:03:50.000000000 +0000
-@@ -62,7 +62,6 @@
- <path id="classpath">
- <pathelement location="${build.class}"/>
- <pathelement location="${solar.jar}/parser.jar"/>
-- <pathelement location="${solar.jar}/jaxp.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/build.xml.ark 2005-11-25 22:03:59.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/build.xml 2005-11-25 22:04:02.000000000 +0000
-@@ -62,7 +62,6 @@
- <path id="classpath">
- <pathelement location="${build.class}"/>
- <pathelement location="${solar.jar}/parser.jar"/>
-- <pathelement location="${solar.jar}/jaxp.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- <pathelement location="${solar.jar}/jmc.jar"/>
- </path>
---- xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/build.xml.ark 2005-11-25 22:04:28.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/build.xml 2005-11-25 22:04:31.000000000 +0000
-@@ -62,7 +62,6 @@
- <path id="classpath">
- <pathelement location="${build.class}"/>
- <pathelement location="${solar.jar}/parser.jar"/>
-- <pathelement location="${solar.jar}/jaxp.jar"/>
- </path>
-
- <!-- set wether we want to compile with or without deprecation -->
---- xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/build.xml.ark 2005-11-25 22:04:34.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/build.xml 2005-11-25 22:04:38.000000000 +0000
-@@ -62,7 +62,6 @@
- <path id="classpath">
- <pathelement location="${build.class}"/>
- <pathelement location="${solar.jar}/parser.jar"/>
-- <pathelement location="${solar.jar}/jaxp.jar"/>
- </path>
-
- <!-- set wether we want to compile with or without deprecation -->
---- xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/build.xml.ark 2005-11-25 22:04:19.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/build.xml 2005-11-25 22:04:22.000000000 +0000
-@@ -62,7 +62,6 @@
- <path id="classpath">
- <pathelement location="${build.class}"/>
- <pathelement location="${solar.jar}/parser.jar"/>
-- <pathelement location="${solar.jar}/jaxp.jar"/>
- </path>
-
- <!-- set wether we want to compile with or without deprecation -->
---- xmerge/java/org/openoffice/xmerge/converter/xml/sxc/build.xml.ark 2005-11-25 22:04:09.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/converter/xml/sxc/build.xml 2005-11-25 22:04:11.000000000 +0000
-@@ -62,7 +62,6 @@
- <path id="classpath">
- <pathelement location="${build.class}"/>
- <pathelement location="${solar.jar}/parser.jar"/>
-- <pathelement location="${solar.jar}/jaxp.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/build.xml.ark 2005-11-25 22:04:46.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/build.xml 2005-11-25 22:04:48.000000000 +0000
-@@ -62,7 +62,6 @@
- <path id="classpath">
- <pathelement location="${build.class}"/>
- <pathelement location="${solar.jar}/parser.jar"/>
-- <pathelement location="${solar.jar}/jaxp.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/build.xml.ark 2005-11-25 22:05:06.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/build.xml 2005-11-25 22:05:08.000000000 +0000
-@@ -62,7 +62,6 @@
- <path id="classpath">
- <pathelement location="${build.class}"/>
- <pathelement location="${solar.jar}/parser.jar"/>
-- <pathelement location="${solar.jar}/jaxp.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/build.xml.ark 2005-11-25 22:05:14.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/build.xml 2005-11-25 22:05:17.000000000 +0000
-@@ -62,7 +62,6 @@
- <path id="classpath">
- <pathelement location="${build.class}"/>
- <pathelement location="${solar.jar}/parser.jar"/>
-- <pathelement location="${solar.jar}/jaxp.jar"/>
- </path>
-
- <!-- set wether we want to compile with or without deprecation -->
---- xmerge/java/org/openoffice/xmerge/converter/xml/sxw/build.xml.ark 2005-11-25 22:04:53.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/converter/xml/sxw/build.xml 2005-11-25 22:04:55.000000000 +0000
-@@ -62,7 +62,6 @@
- <path id="classpath">
- <pathelement location="${build.class}"/>
- <pathelement location="${solar.jar}/parser.jar"/>
-- <pathelement location="${solar.jar}/jaxp.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/converter/xml/xslt/build.xml.ark 2005-11-25 22:05:29.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/converter/xml/xslt/build.xml 2005-11-25 22:05:32.000000000 +0000
-@@ -63,7 +63,6 @@
- <pathelement location="${build.class}"/>
- <pathelement location="${solar.jar}/xalan.jar"/>
- <pathelement location="${solar.jar}/parser.jar"/>
-- <pathelement location="${solar.jar}/jaxp.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/converter/xml/build.xml.ark 2005-11-25 22:05:22.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/converter/xml/build.xml 2005-11-25 22:05:24.000000000 +0000
-@@ -62,7 +62,6 @@
- <path id="classpath">
- <pathelement location="${build.class}"/>
- <pathelement location="${solar.jar}/parser.jar"/>
-- <pathelement location="${solar.jar}/jaxp.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/merger/diff/build.xml.ark 2005-11-25 22:05:51.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/merger/diff/build.xml 2005-11-25 22:05:53.000000000 +0000
-@@ -62,7 +62,6 @@
- <path id="classpath">
- <pathelement location="${build.class}"/>
- <pathelement location="${solar.jar}/parser.jar"/>
-- <pathelement location="${solar.jar}/jaxp.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/merger/merge/build.xml.ark 2005-11-25 22:06:04.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/merger/merge/build.xml 2005-11-25 22:06:07.000000000 +0000
-@@ -62,7 +62,6 @@
- <path id="classpath">
- <pathelement location="${build.class}"/>
- <pathelement location="${solar.jar}/parser.jar"/>
-- <pathelement location="${solar.jar}/jaxp.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/merger/build.xml.ark 2005-11-25 22:05:57.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/merger/build.xml 2005-11-25 22:05:59.000000000 +0000
-@@ -62,7 +62,6 @@
- <path id="classpath">
- <pathelement location="${build.class}"/>
- <pathelement location="${solar.jar}/parser.jar"/>
-- <pathelement location="${solar.jar}/jaxp.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/test/build.xml.ark 2005-11-25 22:06:12.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/test/build.xml 2005-11-25 22:06:16.000000000 +0000
-@@ -61,7 +61,6 @@
- <path id="classpath">
- <pathelement location="${build.class}"/>
- <pathelement location="${solar.jar}/parser.jar"/>
-- <pathelement location="${solar.jar}/jaxp.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/util/registry/build.xml.ark 2005-11-25 22:06:23.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/util/registry/build.xml 2005-11-25 22:06:26.000000000 +0000
-@@ -61,7 +61,6 @@
- <path id="classpath">
- <pathelement location="${build.class}"/>
- <pathelement location="${solar.jar}/parser.jar"/>
-- <pathelement location="${solar.jar}/jaxp.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/util/build.xml.ark 2005-11-25 22:06:29.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/util/build.xml 2005-11-25 22:06:31.000000000 +0000
-@@ -61,7 +61,6 @@
- <path id="classpath">
- <pathelement location="${build.class}"/>
- <pathelement location="${solar.jar}/parser.jar"/>
-- <pathelement location="${solar.jar}/jaxp.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/build.xml.ark 2005-11-25 22:05:39.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/build.xml 2005-11-25 22:05:41.000000000 +0000
-@@ -61,7 +61,6 @@
- <path id="classpath">
- <pathelement location="${build.class}"/>
- <pathelement location="${solar.jar}/parser.jar"/>
-- <pathelement location="${solar.jar}/jaxp.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/build.xml.ark 2005-11-25 22:06:37.000000000 +0000
-+++ xmerge/java/build.xml 2005-11-25 22:06:39.000000000 +0000
-@@ -62,7 +62,6 @@
- <path id="classpath">
- <pathelement location="${build.class}"/>
- <pathelement location="${solar.jar}/parser.jar"/>
-- <pathelement location="${solar.jar}/jaxp.jar"/>
- <pathelement location="${solar.jar}/xalan.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- <pathelement location="${solar.jar}/jurt.jar"/>
---- xmerge/source/xmerge/java/org/openoffice/xmerge/util/registry/build.xml.ark 2005-11-25 22:06:57.000000000 +0000
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/util/registry/build.xml 2005-11-25 22:06:59.000000000 +0000
-@@ -80,7 +80,6 @@
- <path id="classpath">
- <pathelement location="${build.class}"/>
- <pathelement location="${solar.jar}/parser.jar"/>
-- <pathelement location="${solar.jar}/jaxp.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/source/xmerge/build.xml.ark 2005-11-25 22:07:03.000000000 +0000
-+++ xmerge/source/xmerge/build.xml 2005-11-25 22:07:09.000000000 +0000
-@@ -59,7 +59,6 @@
-
- <path id="classpath">
- <pathelement location="${solar.jar}/parser.jar"/>
-- <pathelement location="${solar.jar}/jaxp.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- <pathelement location="${solar.jar}/unoil.jar"/>
- <pathelement location="${solar.jar}/ridl.jar"/>
-@@ -96,7 +95,7 @@
- <attribute name="Specification-Vendor" value="OpenOffice.org"/>
- <attribute name="Specification-Version" value="0.6.0"/>
- <attribute name="Implementation-Version" value="#IMPL-VERSION#"/>
-- <attribute name="Class-Path" value="jaxp.jar parser.jar"/>
-+ <attribute name="Class-Path" value="parser.jar"/>
- </manifest>
- </jar>
- </target>
---- xmerge/util/build.xml.ark 2005-11-25 22:07:16.000000000 +0000
-+++ xmerge/util/build.xml 2005-11-25 22:07:18.000000000 +0000
-@@ -40,7 +40,6 @@
-
- <path id="classpath">
- <pathelement location="${solar.jar}/parser.jar"/>
-- <pathelement location="${solar.jar}/jaxp.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- <pathelement location="${solar.jar}/unoil.jar"/>
- <pathelement location="${solar.jar}/ridl.jar"/>
---- xmerge/util/xmerge.mf.ark 2005-11-25 22:07:27.000000000 +0000
-+++ xmerge/util/xmerge.mf 2005-11-25 22:07:32.000000000 +0000
-@@ -1,6 +1,6 @@
- Manifest-Version: 1.0
- Main-Class: org.openoffice.xmerge.test.Driver
--Class-Path: jaxp.jar parser.jar
-+Class-Path: parser.jar
- Specification-Title: OpenOffice XMerge Framework
- Specification-Vendor: OpenOffice.org
- Specification-Version: 0.6.0
---- xmerge/workben/build.xml.ark 2005-11-25 22:07:39.000000000 +0000
-+++ xmerge/workben/build.xml 2005-11-25 22:07:42.000000000 +0000
-@@ -61,7 +61,6 @@
- <path id="classpath">
- <pathelement location="${build.class}"/>
- <pathelement location="${solar.jar}/parser.jar"/>
-- <pathelement location="${solar.jar}/jaxp.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- helpcontent2/settings.pmk.ark 2005-11-25 22:07:46.000000000 +0000
-+++ helpcontent2/settings.pmk 2005-11-25 22:07:55.000000000 +0000
-@@ -1,5 +1,5 @@
-
--my_cp:=$(CLASSPATH)$(PATH_SEPERATOR)$(SOLARBINDIR)$/jaxp.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/unoil.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/ridl.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/jurt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/jut.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xmlsearch.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xmlhelp.jar
-+my_cp:=$(CLASSPATH)$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/unoil.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/ridl.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/jurt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/jut.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xmlsearch.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xmlhelp.jar
-
- .IF "$(SYSTEM_DB)" == "YES"
- my_cp!:=$(my_cp)$(PATH_SEPERATOR)$(DB_JAR)
diff --git a/patches/src680/gcj-no-com.sun.xml.diff b/patches/src680/gcj-no-com.sun.xml.diff
deleted file mode 100644
index dfd374ece..000000000
--- a/patches/src680/gcj-no-com.sun.xml.diff
+++ /dev/null
@@ -1,459 +0,0 @@
---- solenv/bin/modules/installer/javainstaller.pm.ark 2005-11-26 23:18:32.000000000 +0000
-+++ solenv/bin/modules/installer/javainstaller.pm 2005-11-26 23:18:49.000000000 +0000
-@@ -494,13 +494,11 @@
-
- # The variable CLASSPATH has to contain:
- # $installsdk/classes:$installsdk/classes/setupsdk.jar:
-- # $installsdk/classes/parser.jar:
- # $installsdk/classes/ldapjdk.jar:$directory
-
- my @additional_classpath = ();
- push(@additional_classpath, "$installsdk\/classes");
- push(@additional_classpath, "$installsdk\/installsdk.jar");
-- push(@additional_classpath, "$installsdk\/classes\/parser.jar");
- push(@additional_classpath, "$directory");
-
- my $newclasspathstring = "";
---- solenv/inc/tg_config.mk.ark 2005-11-26 23:18:59.000000000 +0000
-+++ solenv/inc/tg_config.mk 2005-11-26 23:24:15.000000000 +0000
-@@ -62,12 +62,12 @@
- -$(MKDIRHIER) $(@:d)
- .IF "$(XSLTPROC)"=="NO_XSLTPROC"
- .IF "$(NO_INSPECTION)"==""
-- $(JAVAI) $(JAVACPS) $(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/cfgimport.jar -Djavax.xml.parsers.SAXParserFactory=com.sun.xml.parser.SAXParserFactoryImpl org.openoffice.configuration.Inspector $<
-+ $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xercesImpl.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/cfgimport.jar -Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl org.openoffice.configuration.Inspector $<
- .ENDIF # "$(NO_INSPECTION)"==""
-- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $< $(XSLDIR)$/schema_val.xsl $(@:d)$*.val componentName=$(PACKAGE).$*
-- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $< $(XSLDIR)$/sanity.xsl $(@:d)$*.san
-- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $< $(XSLDIR)$/schema_trim.xsl $(@:d)$*.tmp
-- $(JAVAI) $(JAVACPS) $(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/schema.jar -Djavax.xml.parsers.SAXParserFactory=com.sun.xml.parser.SAXParserFactoryImpl org.openoffice.helper.PrettyPrinter $(@:d)$*.tmp $@
-+ $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xercesImpl.jar -Dcom.jclark.xsl.sax.parser=org.apache.xerces.parsers.SAXParser com.jclark.xsl.sax.Driver $< $(XSLDIR)$/schema_val.xsl $(@:d)$*.val componentName=$(PACKAGE).$*
-+ $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xercesImpl.jar -Dcom.jclark.xsl.sax.parser=org.apache.xerces.parsers.SAXParser com.jclark.xsl.sax.Driver $< $(XSLDIR)$/sanity.xsl $(@:d)$*.san
-+ $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xercesImpl.jar -Dcom.jclark.xsl.sax.parser=org.apache.xerces.parsers.SAXParser com.jclark.xsl.sax.Driver $< $(XSLDIR)$/schema_trim.xsl $(@:d)$*.tmp
-+ $(JAVAI) $(JAVACPS) $(PATH_SEPERATOR)$(SOLARBINDIR)$/xercesImpl.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/schema.jar -Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl org.openoffice.helper.PrettyPrinter $(@:d)$*.tmp $@
- .ELSE
- # xsltproc already validates against the dtd. For additional validation,
- # org.openoffice.configuration.Inspector should be replaced and the
-@@ -101,7 +101,7 @@
- @+echo -------------+ creating locale dependent resource bundles
- -$(MKDIRHIER) $(@:d)
- .IF "$(XSLTPROC)"=="NO_XSLTPROC"
-- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $< $(XSLDIR)$/resource.xsl $@ locale={$(subst,$/$(PACKAGEDIR)$/$(@:f), $(subst,$(PROCESSOUT)$/registry$/res$/, $@))}
-+ $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xercesImpl.jar -Dcom.jclark.xsl.sax.parser=org.apache.xerces.parsers.SAXParser com.jclark.xsl.sax.Driver $< $(XSLDIR)$/resource.xsl $@ locale={$(subst,$/$(PACKAGEDIR)$/$(@:f), $(subst,$(PROCESSOUT)$/registry$/res$/, $@))}
- .ELSE
- $(XSLTPROC) -o $@ \
- --stringparam locale {$(subst,$/$(PACKAGEDIR)$/$(@:f), $(subst,$(PROCESSOUT)$/registry$/res$/, $@))} \
-@@ -129,11 +129,11 @@
- -$(MKDIRHIER) $(@:d)
- .IF "$(XSLTPROC)"=="NO_XSLTPROC"
- .IF "$(NO_INSPECTION)"==""
-- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/cfgimport.jar -Djavax.xml.parsers.SAXParserFactory=com.sun.xml.parser.SAXParserFactoryImpl org.openoffice.configuration.Inspector $<
-+ $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xercesImpl.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/cfgimport.jar -Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl org.openoffice.configuration.Inspector $<
- .ENDIF # "$(NO_INSPECTION)"==""
-- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/cfgimport.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $< $(XSLDIR)$/data_val.xsl $(@:d)$*.val xcs=$(XCSROOT)$/registry$/schema$/$(PACKAGEDIR)$/$*.xcs schemaRoot=$(XCSROOT)$/registry$/schema
-- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/cfgimport.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $< $(XSLDIR)$/alllang.xsl $(@:d)$*.tmp xcs=$(XCSROOT)$/registry$/schema$/$(PACKAGEDIR)$/$*.xcs schemaRoot=$(XCSROOT)$/registry$/schema
-- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/schema.jar -Djavax.xml.parsers.SAXParserFactory=com.sun.xml.parser.SAXParserFactoryImpl org.openoffice.helper.PrettyPrinter $(@:d)$*.tmp $@
-+ $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xercesImpl.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/cfgimport.jar -Dcom.jclark.xsl.sax.parser=org.apache.xerces.parsers.SAXParser com.jclark.xsl.sax.Driver $< $(XSLDIR)$/data_val.xsl $(@:d)$*.val xcs=$(XCSROOT)$/registry$/schema$/$(PACKAGEDIR)$/$*.xcs schemaRoot=$(XCSROOT)$/registry$/schema
-+ $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xercesImpl.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/cfgimport.jar -Dcom.jclark.xsl.sax.parser=org.apache.xerces.parsers.SAXParser com.jclark.xsl.sax.Driver $< $(XSLDIR)$/alllang.xsl $(@:d)$*.tmp xcs=$(XCSROOT)$/registry$/schema$/$(PACKAGEDIR)$/$*.xcs schemaRoot=$(XCSROOT)$/registry$/schema
-+ $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xercesImpl.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/schema.jar -Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl org.openoffice.helper.PrettyPrinter $(@:d)$*.tmp $@
- .ELSE
- # xsltproc already validates against the dtd. For additional validation,
- # org.openoffice.configuration.Inspector should be replaced and the
-@@ -170,8 +170,8 @@
- @+echo -------------+ creating locale dependent entries
- -$(MKDIRHIER) $(@:d)
- .IF "$(XSLTPROC)"=="NO_XSLTPROC"
-- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/cfgimport.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $< $(XSLDIR)$/alllang.xsl $(@:d)$*.tmp xcs=$(XCSROOT)$/registry$/schema$/$(PACKAGEDIR)$/$*.xcs schemaRoot=$(XCSROOT)$/registry$/schema locale={$(subst,$/$(PACKAGEDIR)$/$(@:f), $(subst,$(PROCESSOUT)$/registry$/res$/, $@))}
-- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/schema.jar -Djavax.xml.parsers.SAXParserFactory=com.sun.xml.parser.SAXParserFactoryImpl org.openoffice.helper.PrettyPrinter $(@:d)$*.tmp $@
-+ $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xercesImpl.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/cfgimport.jar -Dcom.jclark.xsl.sax.parser=org.apache.xerces.parsers.SAXParser com.jclark.xsl.sax.Driver $< $(XSLDIR)$/alllang.xsl $(@:d)$*.tmp xcs=$(XCSROOT)$/registry$/schema$/$(PACKAGEDIR)$/$*.xcs schemaRoot=$(XCSROOT)$/registry$/schema locale={$(subst,$/$(PACKAGEDIR)$/$(@:f), $(subst,$(PROCESSOUT)$/registry$/res$/, $@))}
-+ $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xercesImpl.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/schema.jar -Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl org.openoffice.helper.PrettyPrinter $(@:d)$*.tmp $@
- .ELSE
- $(XSLTPROC) -o $(@:d)$*.tmp \
- --stringparam xcs $(XCSROOT)$/registry$/schema$/$(PACKAGEDIR)$/$*.xcs \
-@@ -206,8 +206,8 @@
- @+echo -------------+ creating a module file
- -$(MKDIRHIER) $(@:d)
- .IF "$(XSLTPROC)"=="NO_XSLTPROC"
-- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/cfgimport.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $< $(XSLDIR)$/alllang.xsl $(@:d)$(@:f:s/.xcu/.tmp/) xcs=$(XCSROOT)$/registry$/schema$/$(PACKAGEDIR)$/$(<:b).xcs schemaRoot=$(XCSROOT)$/registry$/schema module={$(subst,$(<:b)-, $(*))}
-- $(JAVAI) $(JAVACPS) $(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/schema.jar -Djavax.xml.parsers.SAXParserFactory=com.sun.xml.parser.SAXParserFactoryImpl org.openoffice.helper.PrettyPrinter $(@:d)$(@:f:s/.xcu/.tmp/) $@
-+ $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xercesImpl.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/cfgimport.jar -Dcom.jclark.xsl.sax.parser=org.apache.xerces.parsers.SAXParser com.jclark.xsl.sax.Driver $< $(XSLDIR)$/alllang.xsl $(@:d)$(@:f:s/.xcu/.tmp/) xcs=$(XCSROOT)$/registry$/schema$/$(PACKAGEDIR)$/$(<:b).xcs schemaRoot=$(XCSROOT)$/registry$/schema module={$(subst,$(<:b)-, $(*))}
-+ $(JAVAI) $(JAVACPS) $(PATH_SEPERATOR)$(SOLARBINDIR)$/xercesImpl.jar$(PATH_SEPERATOR)$(PROCESSORDIR)$/schema.jar -Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl org.openoffice.helper.PrettyPrinter $(@:d)$(@:f:s/.xcu/.tmp/) $@
- .ELSE
- $(XSLTPROC) -o $(@:d)$(@:f:s/.xcu/.tmp/) \
- --stringparam xcs $(XCSROOT)$/registry$/schema$/$(PACKAGEDIR)$/$(<:b).xcs \
---- external/prj/d.lst.ark 2005-11-26 23:24:41.000000000 +0000
-+++ external/prj/d.lst 2005-11-26 23:24:46.000000000 +0000
-@@ -24,7 +24,6 @@
- ..\%__SRC%\bin\*.zip %_DEST%\pck%_EXT%\*.zip
- ..\common.pro\bin\*.zip %_DEST%\pck%_EXT%\*.zip
- ..\common\xt.jar %_DEST%\bin%_EXT%\xt.jar
--..\common\parser.jar %_DEST%\bin%_EXT%\parser.jar
-
- ..\audio\rtufiles\lib\audio\libaudio.a %_DEST%\lib%_EXT%\libaudio.a
- ..\audio\rtufiles\lib\audio\*.h %_DEST%\inc%_EXT%\audio\*
---- officecfg/org/openoffice/configuration/makefile.mk.ark 2005-11-26 23:24:53.000000000 +0000
-+++ officecfg/org/openoffice/configuration/makefile.mk 2005-11-26 23:24:57.000000000 +0000
-@@ -43,7 +43,7 @@
-
- .INCLUDE : settings.mk
-
--JARFILES = parser.jar xt.jar
-+JARFILES = xt.jar
-
- JAVACLASSFILES= \
- $(CLASSDIR)$/$(PACKAGE)$/XMLDefaultGenerator.class \
---- officecfg/org/openoffice/helper/makefile.mk.ark 2005-11-26 23:25:10.000000000 +0000
-+++ officecfg/org/openoffice/helper/makefile.mk 2005-11-26 23:25:15.000000000 +0000
-@@ -43,7 +43,7 @@
-
- .INCLUDE : settings.mk
-
--JARFILES = parser.jar
-+JARFILES =
-
- JAVACLASSFILES= \
- $(CLASSDIR)$/$(PACKAGE)$/DefaultNamespaceRemover.class \
---- xmlhelp/source/com/sun/star/help/helpserver.sh.ark 2005-11-26 23:25:29.000000000 +0000
-+++ xmlhelp/source/com/sun/star/help/helpserver.sh 2005-11-26 23:25:40.000000000 +0000
-@@ -11,7 +11,7 @@
- _DIR="program"
- _MAIN_CLASS="com.sun.star.tools.uno.UnoApp"
- _MAIN_JAR="xmlhelp.jar"
--_NEEDED_JARS="$_MAIN_JAR jut.jar juh.jar ridl.jar daemons2.jar java_uno.jar unoil.jar jurt.jar db.jar xmlsearch.jar parser.jar xt.jar"
-+_NEEDED_JARS="$_MAIN_JAR jut.jar juh.jar ridl.jar daemons2.jar java_uno.jar unoil.jar jurt.jar db.jar xmlsearch.jar xt.jar"
- THREADS_FLAG=native; export THREADS_FLAG
-
- usage_error()
---- xmlhelp/source/com/sun/star/help/makefile.mk.ark 2005-11-26 23:25:51.000000000 +0000
-+++ xmlhelp/source/com/sun/star/help/makefile.mk 2005-11-26 23:25:56.000000000 +0000
-@@ -22,7 +22,7 @@
-
- .INCLUDE : settings.mk
-
--JARFILES = parser.jar xt.jar unoil.jar ridl.jar jurt.jar jut.jar xmlsearch.jar
-+JARFILES = xt.jar unoil.jar ridl.jar jurt.jar jut.jar xmlsearch.jar
- EXTRAJARFILES =
-
- .IF "$(SYSTEM_DB)" == "YES"
---- xmlhelp/source/com/sun/star/help/startXMLHelp.ark 2005-11-26 23:26:07.000000000 +0000
-+++ xmlhelp/source/com/sun/star/help/startXMLHelp 2005-11-26 23:26:39.000000000 +0000
-@@ -1,4 +1,4 @@
--d:\jbuilder35\jdk1.2.2\bin\java -classpath .;..\..\..\..\..\wntmsci3\class;.;e:\local\r\jdk121\jre\lib\rt.jar;e:\local\o\SRC608\wntmsci3\bin.a\unoil.jar;e:\local\o\SRC608\wntmsci3\bin.a\jurt.jar;e:\local\o\SRC608\wntmsci3\bin.a\juh.jar;e:\local\o\SRC608\wntmsci3\bin.a\db31.jar;e:\local\o\SRC608\wntmsci3\bin.a\parser.jar;e:\local\o\SRC608\wntmsci3\bin.a\xt.jar;e:\jarpatches\daemons2.jar;e:\test\jut\wntmsci3\class com.sun.star.tools.uno.UnoApp -smgr \"-c file:///e:/local/o/src606/xmlhelp/wntmsci3/class/xmlhelp.jar\" -u "uno:socket,host=0,port=12000;urp;HelpProvider" -s com.sun.star.help.XMLHelp
-+d:\jbuilder35\jdk1.2.2\bin\java -classpath .;..\..\..\..\..\wntmsci3\class;.;e:\local\r\jdk121\jre\lib\rt.jar;e:\local\o\SRC608\wntmsci3\bin.a\unoil.jar;e:\local\o\SRC608\wntmsci3\bin.a\jurt.jar;e:\local\o\SRC608\wntmsci3\bin.a\juh.jar;e:\local\o\SRC608\wntmsci3\bin.a\db31.jar;e:\local\o\SRC608\wntmsci3\bin.a\xt.jar;e:\jarpatches\daemons2.jar;e:\test\jut\wntmsci3\class com.sun.star.tools.uno.UnoApp -smgr \"-c file:///e:/local/o/src606/xmlhelp/wntmsci3/class/xmlhelp.jar\" -u "uno:socket,host=0,port=12000;urp;HelpProvider" -s com.sun.star.help.XMLHelp
-
-
-
---- XmlSearch/src/com/sun/xmlsearch/makefile.mk.ark 2005-11-26 23:26:56.000000000 +0000
-+++ XmlSearch/src/com/sun/xmlsearch/makefile.mk 2005-11-26 23:27:01.000000000 +0000
-@@ -21,8 +21,8 @@
-
- .INCLUDE : settings.mk
-
--JARFILES = parser.jar xt.jar
--#EXTRAJARFILES = parser.jar xt.jar
-+JARFILES = xt.jar
-+#EXTRAJARFILES = xt.jar
-
- JAVAFILES = $(subst,$(CLASSDIR)$/$(PACKAGE)$/, $(subst,.class,.java $(JAVACLASSFILES)))
-
---- filter/source/config/tools/utils/makefile.mk.ark 2005-11-26 23:27:12.000000000 +0000
-+++ filter/source/config/tools/utils/makefile.mk 2005-11-26 23:27:22.000000000 +0000
-@@ -50,8 +50,7 @@
- jurt.jar \
- juh.jar \
- jut.jar \
-- java_uno.jar \
-- parser.jar
-+ java_uno.jar
-
- JAVACLASSFILES = \
- $(CLASSDIR)$/$(PACKAGE)$/AnalyzeStartupLog.class \
---- scripting/java/build.xml.ark 2005-11-26 23:27:29.000000000 +0000
-+++ scripting/java/build.xml 2005-11-26 23:27:43.000000000 +0000
-@@ -65,9 +65,7 @@
-
- <path id="idesupport.class.path">
- <pathelement path="${jardir}"/>
-- <!-- <pathelement path="${solar.jar}/jaxp.jar"/>
-- <pathelement path="${solar.jar}/parser.jar"/>
-- <pathelement path="${install.dir}/xerces.jar"/> -->
-+ <!-- <pathelement path="${install.dir}/xerces.jar"/> -->
- </path>
-
- <path id="openide.class.path">
---- readlicense_oo/util/makefile.pmk.ark 2005-11-26 23:27:59.000000000 +0000
-+++ readlicense_oo/util/makefile.pmk 2005-11-26 23:28:15.000000000 +0000
-@@ -70,7 +70,7 @@
- $(MISC)$/readme%.html :
- @+-$(MKDIR) $(@:d)
- .IF "$(XSLTPROC)"=="NO_XSLTPROC"
-- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $(subst,_$(@:b:s/_/./:e:s/.//), $(COMMONMISC)$/$(TARGET)$/$(@:b).xrm) ..$/readme.xsl os1=$(OS) gui1=$(GUI) cp1=$(CPUNAME) com1=$(COM) lang1=$(@:b:s/_/./:e:s/.//) type=html file=$@
-+ $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xercesImpl.jar -Dcom.jclark.xsl.sax.parser=org.apache.xerces.parsers.SAXParser com.jclark.xsl.sax.Driver $(subst,_$(@:b:s/_/./:e:s/.//), $(COMMONMISC)$/$(TARGET)$/$(@:b).xrm) ..$/readme.xsl os1=$(OS) gui1=$(GUI) cp1=$(CPUNAME) com1=$(COM) lang1=$(@:b:s/_/./:e:s/.//) type=html file=$@
- .ELSE
- sed 's|xmlns:xt="http://www.jclark.com/xt"||;s|extension-element-prefixes="xt"||;s|.*xt:document.*||;s|<xsl:output method = "HTML" doctype-public = "-//W3C//DTD HTML 3.2//EN" />|<xsl:output method="html" doctype-public="-//W3C//DTD HTML 3.2//EN" />|' < ..$/readme.xsl | xsltproc -o $@ \
- --stringparam os1 $(OS) \
-@@ -86,7 +86,7 @@
- $(MISC)$/readme%.txt :
- @+-$(MKDIR) $(@:d)
- .IF "$(XSLTPROC)"=="NO_XSLTPROC"
-- $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar -Dcom.jclark.xsl.sax.parser=com.sun.xml.parser.Parser com.jclark.xsl.sax.Driver $(subst,_$(@:b:s/_/./:e:s/.//), $(COMMONMISC)$/$(TARGET)$/$(@:b).xrm) ..$/readme.xsl os1=$(OS) gui1=$(GUI) cp1=$(CPUNAME) com1=$(COM) lang1=$(@:b:s/_/./:e:s/.//) type=text file=$@
-+ $(JAVAI) $(JAVACPS) $(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xercesImpl.jar -Dcom.jclark.xsl.sax.parser=org.apache.xerces.parsers.SAXParser com.jclark.xsl.sax.Driver $(subst,_$(@:b:s/_/./:e:s/.//), $(COMMONMISC)$/$(TARGET)$/$(@:b).xrm) ..$/readme.xsl os1=$(OS) gui1=$(GUI) cp1=$(CPUNAME) com1=$(COM) lang1=$(@:b:s/_/./:e:s/.//) type=text file=$@
- .ELSE
- sed 's|xmlns:xt="http://www.jclark.com/xt"||;s|extension-element-prefixes="xt"||;s|.*xt:document.*||;s|<xsl:output method = "HTML" doctype-public = "-//W3C//DTD HTML 3.2//EN" />|<xsl:output method="text" />|' < ..$/readme.xsl | xsltproc -o $@ \
- --stringparam os1 $(OS) \
---- xmerge/java/org/openoffice/xmerge/converter/dom/build.xml.ark 2005-11-26 23:28:55.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/converter/dom/build.xml 2005-11-26 23:29:02.000000000 +0000
-@@ -61,7 +61,6 @@
- <!-- classpath settings for javac tasks -->
- <path id="classpath">
- <pathelement location="${build.class}"/>
-- <pathelement location="${solar.jar}/parser.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/build.xml.ark 2005-11-26 23:29:59.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/build.xml 2005-11-26 23:30:01.000000000 +0000
-@@ -61,7 +61,6 @@
- <!-- classpath settings for javac tasks -->
- <path id="classpath">
- <pathelement location="${build.class}"/>
-- <pathelement location="${solar.jar}/parser.jar"/>
- </path>
-
- <!-- set wether we want to compile with or without deprecation -->
---- xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/build.xml.ark 2005-11-26 23:29:47.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/build.xml 2005-11-26 23:29:50.000000000 +0000
-@@ -61,7 +61,6 @@
- <!-- classpath settings for javac tasks -->
- <path id="classpath">
- <pathelement location="${build.class}"/>
-- <pathelement location="${solar.jar}/parser.jar"/>
- </path>
-
- <!-- set wether we want to compile with or without deprecation -->
---- xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/build.xml.ark 2005-11-26 23:29:34.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/build.xml 2005-11-26 23:29:37.000000000 +0000
-@@ -61,7 +61,6 @@
- <!-- classpath settings for javac tasks -->
- <path id="classpath">
- <pathelement location="${build.class}"/>
-- <pathelement location="${solar.jar}/parser.jar"/>
- </path>
-
- <!-- set wether we want to compile with or without deprecation -->
---- xmerge/java/org/openoffice/xmerge/converter/xml/sxc/build.xml.ark 2005-11-26 23:29:14.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/converter/xml/sxc/build.xml 2005-11-26 23:29:18.000000000 +0000
-@@ -61,7 +61,6 @@
- <!-- classpath settings for javac tasks -->
- <path id="classpath">
- <pathelement location="${build.class}"/>
-- <pathelement location="${solar.jar}/parser.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/build.xml.ark 2005-11-26 23:30:22.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/build.xml 2005-11-26 23:30:24.000000000 +0000
-@@ -61,7 +61,6 @@
- <!-- classpath settings for javac tasks -->
- <path id="classpath">
- <pathelement location="${build.class}"/>
-- <pathelement location="${solar.jar}/parser.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/build.xml.ark 2005-11-26 23:31:04.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/build.xml 2005-11-26 23:31:19.000000000 +0000
-@@ -61,7 +61,6 @@
- <!-- classpath settings for javac tasks -->
- <path id="classpath">
- <pathelement location="${build.class}"/>
-- <pathelement location="${solar.jar}/parser.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/build.xml.ark 2005-11-26 23:31:25.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/build.xml 2005-11-26 23:31:30.000000000 +0000
-@@ -61,7 +61,6 @@
- <!-- classpath settings for javac tasks -->
- <path id="classpath">
- <pathelement location="${build.class}"/>
-- <pathelement location="${solar.jar}/parser.jar"/>
- </path>
-
- <!-- set wether we want to compile with or without deprecation -->
---- xmerge/java/org/openoffice/xmerge/converter/xml/sxw/build.xml.ark 2005-11-26 23:30:38.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/converter/xml/sxw/build.xml 2005-11-26 23:30:40.000000000 +0000
-@@ -61,7 +61,6 @@
- <!-- classpath settings for javac tasks -->
- <path id="classpath">
- <pathelement location="${build.class}"/>
-- <pathelement location="${solar.jar}/parser.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/converter/xml/xslt/build.xml.ark 2005-11-26 23:31:59.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/converter/xml/xslt/build.xml 2005-11-26 23:32:02.000000000 +0000
-@@ -62,7 +62,6 @@
- <path id="classpath">
- <pathelement location="${build.class}"/>
- <pathelement location="${solar.jar}/xalan.jar"/>
-- <pathelement location="${solar.jar}/parser.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/converter/xml/build.xml.ark 2005-11-26 23:31:44.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/converter/xml/build.xml 2005-11-26 23:31:47.000000000 +0000
-@@ -61,7 +61,6 @@
- <!-- classpath settings for javac tasks -->
- <path id="classpath">
- <pathelement location="${build.class}"/>
-- <pathelement location="${solar.jar}/parser.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/merger/diff/build.xml.ark 2005-11-26 23:32:28.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/merger/diff/build.xml 2005-11-26 23:32:34.000000000 +0000
-@@ -61,7 +61,6 @@
- <!-- classpath settings for javac tasks -->
- <path id="classpath">
- <pathelement location="${build.class}"/>
-- <pathelement location="${solar.jar}/parser.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/merger/merge/build.xml.ark 2005-11-26 23:32:52.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/merger/merge/build.xml 2005-11-26 23:32:55.000000000 +0000
-@@ -61,7 +61,6 @@
- <!-- classpath settings for javac tasks -->
- <path id="classpath">
- <pathelement location="${build.class}"/>
-- <pathelement location="${solar.jar}/parser.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/merger/build.xml.ark 2005-11-26 23:32:43.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/merger/build.xml 2005-11-26 23:32:47.000000000 +0000
-@@ -61,7 +61,6 @@
- <!-- classpath settings for javac tasks -->
- <path id="classpath">
- <pathelement location="${build.class}"/>
-- <pathelement location="${solar.jar}/parser.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/test/build.xml.ark 2005-11-26 23:33:04.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/test/build.xml 2005-11-26 23:33:06.000000000 +0000
-@@ -60,7 +60,6 @@
- <!-- classpath settings for javac tasks -->
- <path id="classpath">
- <pathelement location="${build.class}"/>
-- <pathelement location="${solar.jar}/parser.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/util/registry/build.xml.ark 2005-11-26 23:33:14.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/util/registry/build.xml 2005-11-26 23:33:16.000000000 +0000
-@@ -60,7 +60,6 @@
- <!-- classpath settings for javac tasks -->
- <path id="classpath">
- <pathelement location="${build.class}"/>
-- <pathelement location="${solar.jar}/parser.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/util/build.xml.ark 2005-11-26 23:33:33.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/util/build.xml 2005-11-26 23:33:36.000000000 +0000
-@@ -60,7 +60,6 @@
- <!-- classpath settings for javac tasks -->
- <path id="classpath">
- <pathelement location="${build.class}"/>
-- <pathelement location="${solar.jar}/parser.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/org/openoffice/xmerge/build.xml.ark 2005-11-26 23:32:12.000000000 +0000
-+++ xmerge/java/org/openoffice/xmerge/build.xml 2005-11-26 23:32:14.000000000 +0000
-@@ -60,7 +60,6 @@
- <!-- classpath settings for javac tasks -->
- <path id="classpath">
- <pathelement location="${build.class}"/>
-- <pathelement location="${solar.jar}/parser.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/java/build.xml.ark 2005-11-26 23:33:44.000000000 +0000
-+++ xmerge/java/build.xml 2005-11-26 23:33:47.000000000 +0000
-@@ -61,7 +61,6 @@
- <!-- classpath settings for javac tasks -->
- <path id="classpath">
- <pathelement location="${build.class}"/>
-- <pathelement location="${solar.jar}/parser.jar"/>
- <pathelement location="${solar.jar}/xalan.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- <pathelement location="${solar.jar}/jurt.jar"/>
---- xmerge/source/xmerge/java/org/openoffice/xmerge/util/registry/build.xml.ark 2005-11-26 23:34:04.000000000 +0000
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/util/registry/build.xml 2005-11-26 23:34:07.000000000 +0000
-@@ -79,7 +79,6 @@
- <!-- classpath settings for javac tasks -->
- <path id="classpath">
- <pathelement location="${build.class}"/>
-- <pathelement location="${solar.jar}/parser.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- xmerge/source/xmerge/build.xml.ark 2005-11-26 23:34:17.000000000 +0000
-+++ xmerge/source/xmerge/build.xml 2005-11-26 23:34:22.000000000 +0000
-@@ -58,7 +58,6 @@
- <property file="../inc/antbuild.properties"/>
-
- <path id="classpath">
-- <pathelement location="${solar.jar}/parser.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- <pathelement location="${solar.jar}/unoil.jar"/>
- <pathelement location="${solar.jar}/ridl.jar"/>
-@@ -95,7 +94,6 @@
- <attribute name="Specification-Vendor" value="OpenOffice.org"/>
- <attribute name="Specification-Version" value="0.6.0"/>
- <attribute name="Implementation-Version" value="#IMPL-VERSION#"/>
-- <attribute name="Class-Path" value="parser.jar"/>
- </manifest>
- </jar>
- </target>
---- xmerge/util/build.xml.ark 2005-11-26 23:34:27.000000000 +0000
-+++ xmerge/util/build.xml 2005-11-26 23:34:30.000000000 +0000
-@@ -39,7 +39,6 @@
- <property name="javadoc.dir" location="${build.dir}/javadoc"/>
-
- <path id="classpath">
-- <pathelement location="${solar.jar}/parser.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- <pathelement location="${solar.jar}/unoil.jar"/>
- <pathelement location="${solar.jar}/ridl.jar"/>
---- xmerge/util/xmerge.mf.ark 2005-11-26 23:34:40.000000000 +0000
-+++ xmerge/util/xmerge.mf 2005-11-26 23:34:43.000000000 +0000
-@@ -1,6 +1,5 @@
- Manifest-Version: 1.0
- Main-Class: org.openoffice.xmerge.test.Driver
--Class-Path: parser.jar
- Specification-Title: OpenOffice XMerge Framework
- Specification-Vendor: OpenOffice.org
- Specification-Version: 0.6.0
---- xmerge/workben/build.xml.ark 2005-11-26 23:34:49.000000000 +0000
-+++ xmerge/workben/build.xml 2005-11-26 23:34:52.000000000 +0000
-@@ -60,7 +60,6 @@
- <!-- classpath settings for javac tasks -->
- <path id="classpath">
- <pathelement location="${build.class}"/>
-- <pathelement location="${solar.jar}/parser.jar"/>
- <pathelement location="${solar.jar}/xerces.jar"/>
- </path>
-
---- helpcontent2/settings.pmk.ark 2005-11-26 23:34:56.000000000 +0000
-+++ helpcontent2/settings.pmk 2005-11-26 23:35:05.000000000 +0000
-@@ -1,5 +1,5 @@
-
--my_cp:=$(CLASSPATH)$(PATH_SEPERATOR)$(SOLARBINDIR)$/parser.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/unoil.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/ridl.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/jurt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/jut.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xmlsearch.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xmlhelp.jar
-+my_cp:=$(CLASSPATH)$(PATH_SEPERATOR)$(SOLARBINDIR)$/xercesImpl.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/unoil.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/ridl.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/jurt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/jut.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xmlsearch.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xmlhelp.jar
-
- .IF "$(SYSTEM_DB)" == "YES"
- my_cp!:=$(my_cp)$(PATH_SEPERATOR)$(DB_JAR)
diff --git a/patches/src680/gentoo-dicooo.diff b/patches/src680/gentoo-dicooo.diff
deleted file mode 100644
index 13cce2c52..000000000
--- a/patches/src680/gentoo-dicooo.diff
+++ /dev/null
@@ -1,24 +0,0 @@
- --- officecfg/registry/data/org/openoffice/Office/Common.xcu
-+++ officecfg/registry/data/org/openoffice/Office/Common.xcu
-@@ -523,6 +523,21 @@
- <value >private:image/3216</value>
- </prop>
- </node>
-+ <node oor:name="m15" oor:op="replace" install:module="dicooo">
-+ <prop oor:name="URL" oor:type="xs:string">
-+ <value >macro:///Launcher.DicOOo.StartDicOOo</value>
-+ </prop>
-+ <prop oor:name="Title">
-+ <value xml:lang="de">Weitere Wörterbücher installieren...</value>
-+ <value xml:lang="en-US">Install new dictionaries...</value>
-+ </prop>
-+ <prop oor:name="TargetName" oor:type="xs:string">
-+ <value >_self</value>
-+ </prop>
-+ <prop oor:name="ImageIdentifier" oor:type="xs:string">
-+ <value >private:image/3216</value>
-+ </prop>
-+ </node>
- </node>
- </node>
- <node oor:name="Forms">
diff --git a/patches/src680/gentoo-splash.diff b/patches/src680/gentoo-splash.diff
deleted file mode 100644
index bb74ba33b..000000000
--- a/patches/src680/gentoo-splash.diff
+++ /dev/null
@@ -1,35 +0,0 @@
-Index: svx/prj/d.lst
-===================================================================
-RCS file: /cvs/graphics/svx/prj/d.lst,v
-retrieving revision 1.108
-diff -u -r1.108 d.lst
---- svx/prj/d.lst 9 Dec 2004 16:36:45 -0000 1.108
-+++ svx/prj/d.lst 16 Dec 2004 12:43:47 -0000
-@@ -55,7 +55,7 @@
- ..\res\cjkintro.bmp %COMMON_DEST%\pck%_EXT%\starsuite_bitmap\intro.bmp
- ..\res\ofaabout.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\about.bmp
- ..\res\soffice.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\intro.bmp
--..\res\ooointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro.bmp
-+..\res\openintro_gentoo.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro.bmp
- ..\res\ooonologointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\nologointro.bmp
-
- mkdir: %_DEST%\inc%_EXT%\svx
-
-Index: svx/source/intro/ooo.src
-===================================================================
-RCS file: /cvs/graphics/svx/source/intro/ooo.src,v
-retrieving revision 1.11
-diff -u -r1.11 ooo.src
---- svx/source/intro/ooo.src 7 Jan 2005 09:49:30 -0000 1.11
-+++ svx/source/intro/ooo.src 1 Feb 2005 16:48:49 -0000
-@@ -48,8 +48,8 @@
- #include "svxids.hrc"
- #include "intro.hrc"
-
--#ifdef BUILD_SPECIAL
--#define OOO_VENDOR "Sun Microsystems Inc."
-+#if 1
-+#define OOO_VENDOR "Gentoo Foundation"
- #else
- //#define OOO_VENDOR "my company"
- #endif
diff --git a/patches/src680/gnome-desktop-integration.diff b/patches/src680/gnome-desktop-integration.diff
deleted file mode 100644
index e8cc89554..000000000
--- a/patches/src680/gnome-desktop-integration.diff
+++ /dev/null
@@ -1,1178 +0,0 @@
---- config_office/configure.in 2005-06-01 14:33:59.000000000 +0530
-+++ config_office/configure.in 2005-06-23 14:17:05.593146173 +0530
-@@ -37,6 +37,9 @@ AC_ARG_ENABLE(openldap,
- [ --enable-openldap Enables the use of the OpenLDAP LDAP SDK instead
- of the Netscape/Mozilla one
- ],,)
-+AC_ARG_ENABLE(lockdown,
-+[ --enable-lockdown Enables the gconf integration work in OOo
-+],,)
- AC_ARG_ENABLE(libsn,
- [ --enable-libsn Enables the use of libstartup-notification
- ],,)
-@@ -3784,6 +3787,19 @@ AC_SUBST(KDE_LIBS)
- AC_SUBST(MOC)
-
- dnl ===================================================================
-+dnl Test for the enabling the lockdown pieces
-+dnl ===================================================================
-+AC_MSG_CHECKING([whether to enable the lockdown pieces])
-+ENABLE_LOCKDOWN=""
-+if test -n "$enable_lockdown" && test "$enable_lockdown" != "no"; then
-+ ENABLE_LOCKDOWN=YES
-+ AC_MSG_RESULT([yes])
-+else
-+ AC_MSG_RESULT([no])
-+fi
-+AC_SUBST(ENABLE_LOCKDOWN)
-+
-+dnl ===================================================================
- dnl Test for the presence of libstartup-notification
- dnl ===================================================================
- AC_MSG_CHECKING([whether to use libstartup-notification])
---- config_office/set_soenv.in 2005-06-01 14:33:59.000000000 +0530
-+++ config_office/set_soenv.in 2005-06-23 14:16:39.292395253 +0530
-@@ -1678,6 +1678,7 @@ ToFile( "WITH_LIBART", "@WITH_LIBA
- ToFile( "LIBART_CFLAGS", "@LIBART_CFLAGS@", "e" );
- ToFile( "WITH_MYSPELL_DICTS","@WITH_MYSPELL_DICTS@","e");
- ToFile( "LIBART_LIBS", "@LIBART_LIBS@", "e" );
-+ToFile( "ENABLE_LOCKDOWN", "@ENABLE_LOCKDOWN@", "e" );
- ToFile( "WITH_LIBSN", "@WITH_LIBSN@", "e" );
- ToFile( "LIBSN_CFLAGS", "@LIBSN_CFLAGS@", "e" );
- ToFile( "LIBSN_LIBS", "@LIBSN_LIBS@", "e" );
---- shell/source/backends/gconfbe/gconfbackend.cxx 2005-08-25 19:52:37.000000000 +0530
-+++ shell/source/backends/gconfbe/gconfbackend.cxx 2005-08-25 19:53:41.000000000 +0530
-@@ -61,17 +61,9 @@
-
- #include "gconfbackend.hxx"
-
--#ifndef GCONFCOMMONLAYER_HXX_
--#include "gconfcommonlayer.hxx"
--#endif
--
--#ifndef GCONFINETLAYER_HXX_
--#include "gconfinetlayer.hxx"
--#endif
--
--#ifndef GCONFVCLLAYER_HXX_
--#include "gconfvcllayer.hxx"
--#endif
-+#ifndef GCONFLAYER_HXX_
-+#include "gconflayer.hxx"
-+#endif // GCONFLAYER_HXX_
-
- #ifndef _COM_SUN_STAR_CONFIGURATION_BACKEND_COMPONENTCHANGEEVENT_HPP_
- #include <com/sun/star/configuration/backend/ComponentChangeEvent.hpp>
-@@ -99,6 +91,481 @@
-
- #include <stdio.h>
-
-+// each entry should have an identifying ConfigurationSetting
-+static const ConfigurationValue SetupConfigurationValuesList[] =
-+{
-+#ifdef ENABLE_LOCKDOWN
-+ {
-+ SETTING_WRITER_DEFAULT_DOC_FORMAT,
-+ "/apps/openoffice/writer_default_document_format",
-+ "org.openoffice.Setup/Office/Factories/com.sun.star.text.TextDocument/ooSetupFactoryDefaultFilter",
-+ "string",
-+ sal_False,
-+ sal_False,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_IMPRESS_DEFAULT_DOC_FORMAT,
-+ "/apps/openoffice/impress_default_document_format",
-+ "org.openoffice.Setup/Office/Factories/com.sun.star.presentation.PresentationDocument/ooSetupFactoryDefaultFilter",
-+ "string",
-+ sal_False,
-+ sal_False,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_CALC_DEFAULT_DOC_FORMAT,
-+ "/apps/openoffice/calc_default_document_format",
-+ "org.openoffice.Setup/Office/Factories/com.sun.star.sheet.SpreadsheetDocument/ooSetupFactoryDefaultFilter",
-+ "string",
-+ sal_False,
-+ sal_False,
-+ SETTINGS_LAST
-+ },
-+#endif // ENABLE_LOCKDOWN
-+};
-+
-+// each entry should have an identifying ConfigurationSetting
-+static const ConfigurationValue RecoveryConfigurationValuesList[] =
-+{
-+#ifdef ENABLE_LOCKDOWN
-+ {
-+ SETTING_AUTO_SAVE,
-+ GCONF_AUTO_SAVE_KEY,
-+ "org.openoffice.Office.Recovery/AutoSave/Enabled",
-+ "boolean",
-+ sal_False,
-+ sal_False,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_AUTO_SAVE_INTERVAL,
-+ "/apps/openoffice/auto_save_interval",
-+ "org.openoffice.Office.Recovery/AutoSave/TimeIntervall",
-+ "int",
-+ sal_False,
-+ sal_False,
-+ SETTING_AUTO_SAVE
-+ },
-+#endif // ENABLE_LOCKDOWN
-+};
-+
-+// each entry should have an identifying ConfigurationSetting
-+static const ConfigurationValue UserProfileConfigurationValuesList[] =
-+{
-+ {
-+ SETTING_USER_GIVENNAME,
-+ "/desktop/gnome/url-handlers/mailto/command", // dummy, needed for getTimestamp
-+ "org.openoffice.UserProfile/Data/givenname",
-+ "string",
-+ sal_False,
-+ sal_True,
-+ SETTING_USER_GIVENNAME
-+ },
-+
-+ {
-+ SETTING_USER_SURNAME,
-+ "/desktop/gnome/url-handlers/mailto/command", // dummy, needed for getTimestamp
-+ "org.openoffice.UserProfile/Data/sn",
-+ "string",
-+ sal_False,
-+ sal_True,
-+ SETTING_USER_SURNAME
-+ },
-+};
-+
-+// each entry should have an identifying ConfigurationSetting
-+static const ConfigurationValue VCLConfigurationValuesList[] =
-+{
-+ {
-+ SETTING_ENABLE_ACCESSIBILITY,
-+ "/desktop/gnome/interface/accessibility",
-+ "org.openoffice.VCL/Settings/Accessibility/EnableATToolSupport",
-+ "string",
-+ sal_False,
-+ sal_True,
-+ SETTINGS_LAST
-+ },
-+
-+#ifdef ENABLE_LOCKDOWN
-+
-+ {
-+ SETTING_DISABLE_PRINTING,
-+ "/desktop/gnome/lockdown/disable_printing",
-+ "org.openoffice.VCL/Settings/DesktopManagement/DisablePrinting",
-+ "string",
-+ sal_False,
-+ sal_True,
-+ SETTINGS_LAST
-+ },
-+
-+#endif // ENABLE_LOCKDOWN
-+
-+};
-+
-+// each entry should have an identifying ConfigurationSetting
-+static const ConfigurationValue InetConfigurationValuesList[] =
-+{
-+ {
-+ SETTING_PROXY_MODE,
-+ GCONF_PROXY_MODE_KEY,
-+ "org.openoffice.Inet/Settings/ooInetProxyType",
-+ "int",
-+ sal_False,
-+ sal_True,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_PROXY_HTTP_HOST,
-+ "/system/http_proxy/host",
-+ "org.openoffice.Inet/Settings/ooInetHTTPProxyName",
-+ "string",
-+ sal_False,
-+ sal_False,
-+ SETTING_PROXY_MODE
-+ },
-+
-+ {
-+ SETTING_PROXY_HTTP_PORT,
-+ "/system/http_proxy/port",
-+ "org.openoffice.Inet/Settings/ooInetHTTPProxyPort",
-+ "int",
-+ sal_False,
-+ sal_False,
-+ SETTING_PROXY_MODE
-+ },
-+
-+ {
-+ SETTING_PROXY_FTP_HOST,
-+ "/system/proxy/ftp_host",
-+ "org.openoffice.Inet/Settings/ooInetFTPProxyName",
-+ "string",
-+ sal_False,
-+ sal_False,
-+ SETTING_PROXY_MODE
-+ },
-+
-+ {
-+ SETTING_PROXY_FTP_PORT,
-+ "/system/proxy/ftp_port",
-+ "org.openoffice.Inet/Settings/ooInetFTPProxyPort",
-+ "int",
-+ sal_False,
-+ sal_False,
-+ SETTING_PROXY_MODE
-+ },
-+};
-+
-+// each entry should have an identifying ConfigurationSetting
-+static const ConfigurationValue CommonConfigurationValuesList[] =
-+{
-+ {
-+ SETTING_MAILER_PROGRAM,
-+ "/desktop/gnome/url-handlers/mailto/command",
-+ "org.openoffice.Office.Common/ExternalMailer/Program",
-+ "string",
-+ sal_False,
-+ sal_True,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_WORK_DIRECTORY,
-+ "/desktop/gnome/url-handlers/mailto/command", // dummy, needed for getTimestamp
-+ "org.openoffice.Office.Common/Path/Current/Work",
-+ "string",
-+ sal_False,
-+ sal_True,
-+ SETTING_WORK_DIRECTORY, // so that the existence of the dir can be checked
-+ },
-+
-+#ifdef ENABLE_LOCKDOWN
-+
-+ {
-+ SETTING_USE_SYSTEM_FILE_DIALOG,
-+ "/apps/openoffice/use_system_file_dialog",
-+ "org.openoffice.Office.Common/Misc/UseSystemFileDialog",
-+ "boolean",
-+ sal_False,
-+ sal_False,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_DISABLE_UI_CUSTOMIZATION,
-+ "/apps/openoffice/lockdown/disable_ui_customization",
-+ "org.openoffice.Office.Common/Misc/DisableUICustomization",
-+ "boolean",
-+ sal_False,
-+ sal_False,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_PRINTING_MODIFIES_DOCUMENT,
-+ "/apps/openoffice/printing_modifies_doc",
-+ "org.openoffice.Office.Common/Print/PrintingModifiesDocument",
-+ "boolean",
-+ sal_False,
-+ sal_False,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_SHOW_ICONS_IN_MENUS,
-+ "/apps/openoffice/show_menu_icons",
-+ "org.openoffice.Office.Common/View/Menu/ShowIconsInMenues",
-+ "boolean",
-+ sal_False,
-+ sal_False,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_SHOW_INACTIVE_MENUITEMS,
-+ "/apps/openoffice/show_menu_inactive_items",
-+ "org.openoffice.Office.Common/View/Menu/DontHideDisabledEntry",
-+ "boolean",
-+ sal_False,
-+ sal_False,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_SHOW_FONT_PREVIEW,
-+ "/apps/openoffice/show_font_preview",
-+ "org.openoffice.Office.Common/Font/View/ShowFontBoxWYSIWYG",
-+ "boolean",
-+ sal_False,
-+ sal_False,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_SHOW_FONT_HISTORY,
-+ "/apps/openoffice/show_font_history",
-+ "org.openoffice.Office.Common/Font/View/History",
-+ "boolean",
-+ sal_False,
-+ sal_False,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_ENABLE_OPENGL,
-+ "/apps/openoffice/use_opengl",
-+ "org.openoffice.Office.Common/_3D_Engine/OpenGL",
-+ "boolean",
-+ sal_False,
-+ sal_False,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_OPTIMIZE_OPENGL,
-+ "/apps/openoffice/optimize_opengl",
-+ "org.openoffice.Office.Common/_3D_Engine/OpenGL_Faster",
-+ "boolean",
-+ sal_False,
-+ sal_False,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_USE_SYSTEM_FONT,
-+ "/apps/openoffice/use_system_font",
-+ "org.openoffice.Office.Common/Accessibility/IsSystemFont",
-+ "boolean",
-+ sal_False,
-+ sal_False,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_USE_FONT_ANTI_ALIASING,
-+ "/apps/openoffice/use_font_anti_aliasing",
-+ "org.openoffice.Office.Common/View/FontAntiAliasing/Enabled",
-+ "boolean",
-+ sal_False,
-+ sal_False,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_FONT_ANTI_ALIASING_MIN_PIXEL,
-+ "/apps/openoffice/font_anti_aliasing_min_pixel",
-+ "org.openoffice.Office.Common/View/FontAntiAliasing/MinPixelHeight",
-+ "short",
-+ sal_False,
-+ sal_True,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_WARN_CREATE_PDF,
-+ "/apps/openoffice/lockdown/warn_info_create_pdf",
-+ "org.openoffice.Office.Common/Security/Scripting/WarnCreatePDF",
-+ "boolean",
-+ sal_False,
-+ sal_False,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_WARN_PRINT_DOC,
-+ "/apps/openoffice/lockdown/warn_info_printing",
-+ "org.openoffice.Office.Common/Security/Scripting/WarnPrintDoc",
-+ "boolean",
-+ sal_False,
-+ sal_False,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_WARN_SAVEORSEND_DOC,
-+ "/apps/openoffice/lockdown/warn_info_saving",
-+ "org.openoffice.Office.Common/Security/Scripting/WarnSaveOrSendDoc",
-+ "boolean",
-+ sal_False,
-+ sal_False,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_WARN_SIGN_DOC,
-+ "/apps/openoffice/lockdown/warn_info_signing",
-+ "org.openoffice.Office.Common/Security/Scripting/WarnSignDoc",
-+ "boolean",
-+ sal_False,
-+ sal_False,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_REMOVE_PERSONAL_INFO,
-+ "/apps/openoffice/lockdown/remove_personal_info_on_save",
-+ "org.openoffice.Office.Common/Security/Scripting/RemovePersonalInfoOnSaving",
-+ "boolean",
-+ sal_False,
-+ sal_False,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_RECOMMEND_PASSWORD,
-+ "/apps/openoffice/lockdown/recommend_password_on_save",
-+ "org.openoffice.Office.Common/Security/Scripting/RecommendPasswordProtection",
-+ "boolean",
-+ sal_False,
-+ sal_False,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_UNDO_STEPS,
-+ "/apps/openoffice/undo_steps",
-+ "org.openoffice.Office.Common/Undo/Steps",
-+ "int",
-+ sal_False,
-+ sal_False,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_SYMBOL_SET,
-+ "/apps/openoffice/icon_size",
-+ "org.openoffice.Office.Common/Misc/SymbolSet",
-+ "short",
-+ sal_False,
-+ sal_True,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_MACRO_SECURITY_LEVEL,
-+ "/apps/openoffice/lockdown/macro_security_level",
-+ "org.openoffice.Office.Common/Security/Scripting/MacroSecurityLevel",
-+ "int",
-+ sal_False,
-+ sal_False,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_CREATE_BACKUP,
-+ "/apps/openoffice/create_backup",
-+ "org.openoffice.Office.Common/Save/Document/CreateBackup",
-+ "boolean",
-+ sal_False,
-+ sal_False,
-+ SETTINGS_LAST
-+ },
-+
-+ {
-+ SETTING_WARN_ALIEN_FORMAT,
-+ "/apps/openoffice/warn_alien_format",
-+ "org.openoffice.Office.Common/Save/Document/WarnAlienFormat",
-+ "boolean",
-+ sal_False,
-+ sal_False,
-+ SETTINGS_LAST
-+ },
-+
-+#endif // ENABLE_LOCKDOWN
-+
-+};
-+
-+static const char * SetupPreloadValuesList[] =
-+{
-+#ifdef ENABLE_LOCKDOWN
-+ "/apps/openoffice",
-+#endif // ENABLE_LOCKDOWN
-+ NULL
-+};
-+
-+static const char * RecoveryPreloadValuesList[] =
-+{
-+#ifdef ENABLE_LOCKDOWN
-+ "/apps/openoffice",
-+#endif // ENABLE_LOCKDOWN
-+ NULL
-+};
-+
-+static const char * UserProfilePreloadValuesList[] =
-+{
-+ NULL
-+};
-+
-+static const char * VCLPreloadValuesList[] =
-+{
-+ "/desktop/gnome/interface",
-+#ifdef ENABLE_LOCKDOWN
-+ "/desktop/gnome/lockdown",
-+#endif // ENABLE_LOCKDOWN
-+ NULL
-+};
-+
-+static const char * InetPreloadValuesList[] =
-+{
-+ "/system/proxy",
-+ "/system/http_proxy/host",
-+ NULL
-+};
-+
-+static const char * CommonPreloadValuesList[] =
-+{
-+ "/desktop/gnome/url-handlers/mailto",
-+#ifdef ENABLE_LOCKDOWN
-+ "/apps/openoffice/lockdown",
-+ "/apps/openoffice",
-+#endif // ENABLE_LOCKDOWN
-+ NULL
-+};
-+
- //==============================================================================
-
- /*
-@@ -193,16 +660,47 @@ uno::Reference<backend::XLayer> SAL_CALL
-
- if( aComponent.equalsAscii("org.openoffice.Office.Common" ) )
- {
-- xLayer = new GconfCommonLayer(m_xContext);
-+ xLayer = new GconfLayer( m_xContext,
-+ CommonConfigurationValuesList,
-+ G_N_ELEMENTS( CommonConfigurationValuesList ),
-+ CommonPreloadValuesList );
- }
- else if( aComponent.equalsAscii("org.openoffice.Inet" ) )
- {
-- xLayer = new GconfInetLayer(m_xContext);
-+ xLayer = new GconfLayer( m_xContext,
-+ InetConfigurationValuesList,
-+ G_N_ELEMENTS( InetConfigurationValuesList ),
-+ InetPreloadValuesList );
- }
- else if( aComponent.equalsAscii("org.openoffice.VCL" ) )
- {
-- xLayer = new GconfVCLLayer(m_xContext);
-+ xLayer = new GconfLayer( m_xContext,
-+ VCLConfigurationValuesList,
-+ G_N_ELEMENTS( VCLConfigurationValuesList ),
-+ VCLPreloadValuesList );
-+ }
-+ else if( aComponent.equalsAscii("org.openoffice.UserProfile" ) )
-+ {
-+ xLayer = new GconfLayer( m_xContext,
-+ UserProfileConfigurationValuesList,
-+ G_N_ELEMENTS( UserProfileConfigurationValuesList ),
-+ UserProfilePreloadValuesList );
- }
-+ else if( aComponent.equalsAscii("org.openoffice.Office.Recovery" ) )
-+ {
-+ xLayer = new GconfLayer( m_xContext,
-+ RecoveryConfigurationValuesList,
-+ G_N_ELEMENTS( RecoveryConfigurationValuesList ),
-+ RecoveryPreloadValuesList );
-+ }
-+ else if( aComponent.equalsAscii("org.openoffice.Setup" ) )
-+ {
-+ xLayer = new GconfLayer( m_xContext,
-+ SetupConfigurationValuesList,
-+ G_N_ELEMENTS( SetupConfigurationValuesList ),
-+ SetupPreloadValuesList );
-+ }
-+
-
- return xLayer;
- }
-@@ -460,13 +958,20 @@ uno::Sequence<rtl::OUString> SAL_CALL Gc
-
- uno::Sequence<rtl::OUString> SAL_CALL GconfBackend::getSupportedComponents(void)
- {
-- uno::Sequence<rtl::OUString> aSupportedComponentsList(3) ;
-+ uno::Sequence<rtl::OUString> aSupportedComponentsList(6) ;
-+
- aSupportedComponentsList[0] = rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("org.openoffice.VCL")) ;
- aSupportedComponentsList[1] = rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("org.openoffice.Inet")) ;
- aSupportedComponentsList[2] = rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("org.openoffice.Office.Common")) ;
-+ aSupportedComponentsList[3] = rtl::OUString(
-+ RTL_CONSTASCII_USTRINGPARAM("org.openoffice.UserProfile")) ;
-+ aSupportedComponentsList[4] = rtl::OUString(
-+ RTL_CONSTASCII_USTRINGPARAM("org.openoffice.Office.Recovery")) ;
-+ aSupportedComponentsList[4] = rtl::OUString(
-+ RTL_CONSTASCII_USTRINGPARAM("org.openoffice.Setup")) ;
-
- return aSupportedComponentsList ;
- }
---- shell/source/backends/gconfbe/gconfbe1-ucd.txt 2005-08-25 19:52:37.000000000 +0530
-+++ shell/source/backends/gconfbe/gconfbe1-ucd.txt 2005-08-10 23:24:49.000000000 +0530
-@@ -3,7 +3,7 @@ ImplementationName=com.sun.star.comp.con
- ComponentName=gconfbe1.uno.so
- LoaderName=com.sun.star.loader.SharedLibrary
- [Data]
--SupportedComponents=org.openoffice.VCL;org.openoffice.Inet;org.openoffice.Office.Common
-+SupportedComponents=org.openoffice.VCL;org.openoffice.Inet;org.openoffice.Office.Common;org.openoffice.UserProfile;org.openoffice.Office.Recovery;org.openoffice.Setup
- [SupportedServices]
- com.sun.star.configuration.backend.GconfBackend
- com.sun.star.configuration.backend.PlatformBackend
---- shell/source/backends/gconfbe/gconfbecdef.cxx 2005-08-25 19:52:37.000000000 +0530
-+++ shell/source/backends/gconfbe/gconfbecdef.cxx 2005-08-10 23:24:49.000000000 +0530
-@@ -97,18 +97,11 @@ static uno::Reference<uno::XInterface> S
-
- if (xCurrentContext.is())
- {
-- uno::Any aValue = xCurrentContext->getValueByName(
-- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "system.desktop-environment" ) ) );
--
-- rtl::OUString aDesktopEnvironment;
-- if ( (aValue >>= aDesktopEnvironment) && (aDesktopEnvironment.equalsAscii("GNOME")) )
-- {
- // ORBit-2 versions < 2.8 cause a deadlock with the gtk+ VCL plugin
- if ( (orbit_major_version >= 2) && (orbit_minor_version >= 8) )
- {
- return * GconfBackend::createInstance(xContext);
- }
-- }
- }
-
- return uno::Reference<uno::XInterface>();
---- shell/source/backends/gconfbe/makefile.mk 2005-08-25 19:52:37.000000000 +0530
-+++ shell/source/backends/gconfbe/makefile.mk 2005-08-10 23:24:49.000000000 +0530
-@@ -81,6 +81,10 @@ UNIXTEXT=$(MISC)/$(TARGET)1-ucd.txt
- # no "lib" prefix
- DLLPRE =
-
-+.IF "$(ENABLE_LOCKDOWN)" == "YES"
-+CFLAGS+=-DENABLE_LOCKDOWN
-+.ENDIF
-+
- .IF "$(ENABLE_GNOMEVFS)"!=""
- COMPILER_WARN_ALL=TRUE
- PKGCONFIG_MODULES=gconf-2.0 gobject-2.0 ORBit-2.0 glib-2.0
-@@ -102,9 +106,7 @@ PKGCONFIG_LIBS!:=-Wl,--export-dynamic $(
- SLOFILES=\
- $(SLO)$/gconfbecdef.obj \
- $(SLO)$/gconfbackend.obj \
-- $(SLO)$/gconfvcllayer.obj \
-- $(SLO)$/gconfinetlayer.obj \
-- $(SLO)$/gconfcommonlayer.obj
-+ $(SLO)$/gconflayer.obj
-
- SHL1NOCHECK=TRUE
- SHL1TARGET=$(TARGET)1.uno
---- /dev/null 2005-08-10 18:59:19.600151000 +0530
-+++ shell/source/backends/gconfbe/gconflayer.hxx 2005-08-25 19:06:13.000000000 +0530
-@@ -0,0 +1,142 @@
-+#ifndef GCONFLAYER_HXX_
-+#define GCONFLAYER_HXX_
-+
-+#ifndef GCONFBACKEND_HXX_
-+#include "gconfbackend.hxx"
-+#endif // GCONFBACKEND_HXX_
-+
-+#ifndef _COM_SUN_STAR_CONFIGURATION_BACKEND_XLAYER_HPP_
-+#include <com/sun/star/configuration/backend/XLayer.hpp>
-+#endif // _COM_SUN_STAR_CONFIGURATION_BACKEND_XLAYER_HPP_
-+
-+#ifndef _COM_SUN_STAR_CONFIGURATION_BACKEND_BACKENDACCESSEXCEPTION_HPP_
-+#include <com/sun/star/configuration/backend/BackendAccessException.hpp>
-+#endif // _COM_SUN_STAR_CONFIGURATION_BACKEND_BACKENDACCESSEXCEPTION_HPP_
-+
-+#ifndef _COM_SUN_STAR_CONFIGURATION_BACKEND_XLAYERCONTENTDESCIBER_HPP_
-+#include <com/sun/star/configuration/backend/XLayerContentDescriber.hpp>
-+#endif // _COM_SUN_STAR_CONFIGURATION_BACKEND_XLAYERCONTENTDESCIBER_HPP_
-+
-+#ifndef _COM_SUN_STAR_UTIL_XTIMESTAMPED_HPP_
-+#include <com/sun/star/util/XTimeStamped.hpp>
-+#endif // _COM_SUN_STAR_UTIL_XTIMESTAMPED_HPP_
-+
-+#ifndef _CPPUHELPER_IMPLBASE2_HXX_
-+#include <cppuhelper/implbase2.hxx>
-+#endif // _CPPUHELPER_IMPLBASE2_HXX_
-+
-+#define GCONF_PROXY_MODE_KEY "/system/proxy/mode"
-+#define GCONF_AUTO_SAVE_KEY "/apps/openoffice/auto_save"
-+
-+enum ConfigurationSetting
-+{
-+ SETTING_PROXY_MODE,
-+ SETTING_PROXY_HTTP_HOST,
-+ SETTING_PROXY_HTTP_PORT,
-+ SETTING_PROXY_FTP_HOST,
-+ SETTING_PROXY_FTP_PORT,
-+ SETTING_ENABLE_ACCESSIBILITY,
-+ SETTING_MAILER_PROGRAM,
-+ SETTING_WORK_DIRECTORY,
-+ SETTING_USER_GIVENNAME,
-+ SETTING_USER_SURNAME,
-+
-+#ifdef ENABLE_LOCKDOWN
-+
-+ SETTING_DISABLE_PRINTING,
-+ SETTING_USE_SYSTEM_FILE_DIALOG,
-+ SETTING_DISABLE_UI_CUSTOMIZATION,
-+ SETTING_PRINTING_MODIFIES_DOCUMENT,
-+ SETTING_SHOW_ICONS_IN_MENUS,
-+ SETTING_SHOW_INACTIVE_MENUITEMS,
-+ SETTING_SHOW_FONT_PREVIEW,
-+ SETTING_SHOW_FONT_HISTORY,
-+ SETTING_ENABLE_OPENGL,
-+ SETTING_OPTIMIZE_OPENGL,
-+ SETTING_SAVE_DOCUMENT_WINDOWS,
-+ SETTING_SAVE_DOCUMENT_VIEW_INFO,
-+ SETTING_USE_SYSTEM_FONT,
-+ SETTING_USE_FONT_ANTI_ALIASING,
-+ SETTING_FONT_ANTI_ALIASING_MIN_PIXEL,
-+ SETTING_WARN_CREATE_PDF,
-+ SETTING_WARN_PRINT_DOC,
-+ SETTING_WARN_SAVEORSEND_DOC,
-+ SETTING_WARN_SIGN_DOC,
-+ SETTING_REMOVE_PERSONAL_INFO,
-+ SETTING_RECOMMEND_PASSWORD,
-+ SETTING_UNDO_STEPS,
-+ SETTING_SYMBOL_SET,
-+ SETTING_MACRO_SECURITY_LEVEL,
-+ SETTING_CREATE_BACKUP,
-+ SETTING_WARN_ALIEN_FORMAT,
-+ SETTING_AUTO_SAVE,
-+ SETTING_AUTO_SAVE_INTERVAL,
-+ SETTING_WRITER_DEFAULT_DOC_FORMAT,
-+ SETTING_IMPRESS_DEFAULT_DOC_FORMAT,
-+ SETTING_CALC_DEFAULT_DOC_FORMAT,
-+
-+#endif // ENABLE_LOCKDOWN
-+
-+ SETTINGS_LAST
-+};
-+
-+struct ConfigurationValue
-+{
-+ const ConfigurationSetting nSettingId;
-+ const gchar *GconfItem;
-+ const char *OOoConfItem;
-+ const char *OOoConfValueType;
-+ const sal_Bool bLocked;
-+ const sal_Bool bNeedsTranslation;
-+ const ConfigurationSetting nDependsOn;
-+};
-+
-+namespace css = com::sun::star ;
-+namespace uno = css::uno ;
-+namespace lang = css::lang ;
-+namespace backend = css::configuration::backend ;
-+namespace util = css::util ;
-+
-+/**
-+ Implementation of the XLayer interface for the Gconf values mapped into
-+ the org.openoffice.* configuration component.
-+ */
-+class GconfLayer : public cppu::WeakImplHelper2<backend::XLayer, util::XTimeStamped>
-+{
-+public :
-+ /**
-+ Constructor given the component context
-+
-+ @param xContext The component context
-+ */
-+
-+ GconfLayer( const uno::Reference<uno::XComponentContext>& xContext,
-+ const ConfigurationValue pConfigurationValuesList[],
-+ const sal_Int32 nConfigurationValues,
-+ const char * pPreloadValuesList[] );
-+
-+ // XLayer
-+ virtual void SAL_CALL readData(
-+ const uno::Reference<backend::XLayerHandler>& xHandler)
-+ throw ( backend::MalformedDataException,
-+ lang::NullPointerException,
-+ lang::WrappedTargetException,
-+ uno::RuntimeException );
-+
-+ // XTimeStamped
-+ virtual rtl::OUString SAL_CALL getTimestamp(void)
-+ throw (uno::RuntimeException);
-+
-+ protected:
-+
-+ /** Destructor */
-+ ~GconfLayer(void) {}
-+
-+private :
-+ uno::Reference<backend::XLayerContentDescriber> m_xLayerContentDescriber;
-+ const ConfigurationValue* m_pConfigurationValuesList;
-+ const sal_Int32 m_nConfigurationValues;
-+ const char** m_pPreloadValuesList;
-+ } ;
-+
-+#endif // GCONFLAYER
---- /dev/null 2005-08-10 18:59:19.600151000 +0530
-+++ shell/source/backends/gconfbe/gconflayer.cxx 2005-08-25 19:41:24.000000000 +0530
-@@ -0,0 +1,354 @@
-+#ifndef GCONFLAYER_HXX_
-+#include "gconflayer.hxx"
-+#endif
-+
-+#ifndef _COM_SUN_STAR_CONFIGURATION_BACKEND_PROPERTYINFO_HPP_
-+#include <com/sun/star/configuration/backend/PropertyInfo.hpp>
-+#endif
-+
-+#ifndef _COM_SUN_STAR_CONFIGURATION_BACKEND_XLAYERCONTENTDESCIBER_HPP_
-+#include <com/sun/star/configuration/backend/XLayerContentDescriber.hpp>
-+#endif
-+
-+#ifndef _RTL_STRBUF_HXX_
-+#include <rtl/strbuf.hxx>
-+#endif
-+
-+#ifndef _OSL_SECURITY_HXX_
-+#include <osl/security.hxx>
-+#endif
-+
-+#ifndef _OSL_FILE_HXX_
-+#include <osl/file.hxx>
-+#endif
-+
-+#ifndef _OSL_THREAD_H_
-+#include <osl/thread.h>
-+#endif
-+
-+#ifndef _COM_SUN_STAR_UNO_SEQUENCE_HXX_
-+#include <com/sun/star/uno/Sequence.hxx>
-+#endif
-+
-+//==============================================================================
-+
-+GconfLayer::GconfLayer( const uno::Reference<uno::XComponentContext>& xContext,
-+ const ConfigurationValue pConfigurationValuesList[],
-+ const sal_Int32 nConfigurationValues,
-+ const char * pPreloadValuesList[] )
-+ :m_pConfigurationValuesList( pConfigurationValuesList )
-+ ,m_nConfigurationValues( nConfigurationValues )
-+ ,m_pPreloadValuesList( pPreloadValuesList )
-+{
-+ //Create instance of LayerContentDescriber Service
-+ rtl::OUString const k_sLayerDescriberService( RTL_CONSTASCII_USTRINGPARAM(
-+ "com.sun.star.comp.configuration.backend.LayerDescriber" ) );
-+
-+ typedef uno::Reference<backend::XLayerContentDescriber> LayerDescriber;
-+ uno::Reference< lang::XMultiComponentFactory > xServiceManager = xContext->getServiceManager();
-+ if( xServiceManager.is() )
-+ {
-+ m_xLayerContentDescriber = LayerDescriber::query(
-+ xServiceManager->createInstanceWithContext( k_sLayerDescriberService, xContext ) );
-+ }
-+ else
-+ {
-+ OSL_TRACE( "Could not retrieve ServiceManager" );
-+ }
-+}
-+
-+//------------------------------------------------------------------------------
-+
-+uno::Any makeAnyOfGconfValue( GConfValue *aGconfValue )
-+{
-+ switch( aGconfValue->type )
-+ {
-+ case GCONF_VALUE_BOOL:
-+ return uno::makeAny( (sal_Bool) gconf_value_get_bool( aGconfValue ) );
-+
-+ case GCONF_VALUE_INT:
-+ return uno::makeAny( (sal_Int32) gconf_value_get_int( aGconfValue ) );
-+
-+ case GCONF_VALUE_STRING:
-+ return uno::makeAny( OStringToOUString( rtl::OString(
-+ gconf_value_get_string(aGconfValue) ), RTL_TEXTENCODING_UTF8 ) );
-+
-+ default:
-+ fprintf( stderr, "makeAnyOfGconfValue: Type not handled.\n" );
-+ break;
-+ }
-+
-+ return uno::Any();
-+}
-+
-+//------------------------------------------------------------------------------
-+
-+uno::Any translateToOOo( const ConfigurationValue aValue, GConfValue *aGconfValue )
-+{
-+ switch( aValue.nSettingId )
-+ {
-+ case SETTING_PROXY_MODE:
-+ {
-+ rtl::OUString aProxyMode;
-+ uno::Any aOriginalValue = makeAnyOfGconfValue( aGconfValue );
-+ aOriginalValue >>= aProxyMode;
-+
-+ if( aProxyMode.equals( rtl::OUString::createFromAscii( "manual" ) ) )
-+ return uno::makeAny( (sal_Int32) 1 );
-+ else if( aProxyMode.equals( rtl::OUString::createFromAscii( "none" ) ) )
-+ return uno::makeAny( (sal_Int32) 0 );
-+ }
-+ break;
-+
-+ case SETTING_MAILER_PROGRAM:
-+ {
-+ rtl::OUString aMailer;
-+ uno::Any aOriginalValue = makeAnyOfGconfValue( aGconfValue );
-+ aOriginalValue >>= aMailer;
-+ sal_Int32 nIndex = 0;
-+ return uno::makeAny( aMailer.getToken( 0, ' ', nIndex ) );
-+ }
-+ break;
-+
-+#ifdef ENABLE_LOCKDOWN
-+ // "short" values need to be returned a sal_Int16
-+ case SETTING_FONT_ANTI_ALIASING_MIN_PIXEL:
-+ case SETTING_SYMBOL_SET:
-+ {
-+ sal_Int32 nShortValue;
-+ uno::Any aOriginalValue = makeAnyOfGconfValue( aGconfValue );
-+ aOriginalValue >>= nShortValue;
-+ return uno::makeAny( (sal_Int16) nShortValue );
-+ }
-+ break;
-+#endif // ENABLE_LOCKDOWN
-+
-+ // "boolean" values that need a string to be returned
-+ case SETTING_ENABLE_ACCESSIBILITY:
-+#ifdef ENABLE_LOCKDOWN
-+ case SETTING_DISABLE_PRINTING:
-+#endif // ENABLE_LOCKDOWN
-+ {
-+ sal_Bool bBooleanValue;
-+ uno::Any aOriginalValue = makeAnyOfGconfValue( aGconfValue );
-+ aOriginalValue >>= bBooleanValue;
-+ return uno::makeAny( rtl::OUString::valueOf( (sal_Bool) bBooleanValue ) );
-+ }
-+ break;
-+
-+ case SETTING_WORK_DIRECTORY:
-+ {
-+ return uno::makeAny( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "$(work)/Documents" ) ) );
-+ }
-+ break;
-+
-+ case SETTING_USER_GIVENNAME:
-+ {
-+ rtl::OUString aCompleteName( rtl::OStringToOUString(
-+ g_get_real_name(), osl_getThreadTextEncoding() ) );
-+ sal_Int32 nIndex = 0;
-+ rtl::OUString aGivenName;
-+ do
-+ aGivenName = aCompleteName.getToken( 0, ' ', nIndex );
-+ while ( nIndex == 0 );
-+
-+ return uno::makeAny( aGivenName );
-+
-+ }
-+ break;
-+
-+ case SETTING_USER_SURNAME:
-+ {
-+ rtl::OUString aCompleteName( rtl::OStringToOUString(
-+ g_get_real_name(), osl_getThreadTextEncoding() ) );
-+ sal_Int32 nIndex = 0;
-+ rtl::OUString aSurname;
-+ do
-+ aSurname = aCompleteName.getToken( 0, ' ', nIndex );
-+ while ( nIndex >= 0 );
-+
-+ return uno::makeAny( aSurname );
-+ }
-+ break;
-+
-+ default:
-+ fprintf( stderr, "Unhandled setting to translate.\n" );
-+ break;
-+ }
-+
-+ return uno::Any();
-+}
-+
-+//------------------------------------------------------------------------------
-+
-+sal_Bool SAL_CALL isDependencySatisfied( const ConfigurationValue aValue )
-+{
-+ switch( aValue.nDependsOn )
-+ {
-+ case SETTING_PROXY_MODE:
-+ {
-+ GConfClient* aClient = GconfBackend::getGconfClient();
-+ GConfValue* aGconfValue = gconf_client_get( aClient, GCONF_PROXY_MODE_KEY, NULL );
-+
-+ if( ( aGconfValue != NULL ) && ( g_strcasecmp( "manual", gconf_value_get_string( aGconfValue ) ) == 0 ) )
-+ return sal_True;
-+ }
-+ break;
-+
-+ case SETTING_WORK_DIRECTORY:
-+ {
-+ osl::Security aSecurity;
-+ rtl::OUString aDocumentsDirURL;
-+ if ( aSecurity.getHomeDir( aDocumentsDirURL ) )
-+ {
-+ aDocumentsDirURL += rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "/Documents" ) );
-+ osl::Directory aDocumentsDir( aDocumentsDirURL );
-+
-+ if( osl::FileBase::E_None == aDocumentsDir.open() )
-+ return sal_True;
-+ }
-+ }
-+ break;
-+
-+ case SETTING_USER_GIVENNAME:
-+ {
-+ rtl::OUString aCompleteName( rtl::OStringToOUString(
-+ g_get_real_name(), osl_getThreadTextEncoding() ) );
-+ if( !aCompleteName.equalsAscii( "Unknown" ) )
-+ return sal_True;
-+ }
-+ break;
-+
-+ case SETTING_USER_SURNAME:
-+ {
-+ rtl::OUString aCompleteName( rtl::OStringToOUString(
-+ g_get_real_name(), osl_getThreadTextEncoding() ) );
-+ if( !aCompleteName.equalsAscii( "Unknown" ) )
-+ {
-+ if( aCompleteName.trim().indexOf(rtl::OUString::createFromAscii(" "), 0) != -1 )
-+ return sal_True;
-+ }
-+ }
-+ break;
-+
-+#ifdef ENABLE_LOCKDOWN
-+ case SETTING_AUTO_SAVE:
-+ {
-+ GConfClient* aClient = GconfBackend::getGconfClient();
-+ GConfValue* aGconfValue = gconf_client_get( aClient, GCONF_AUTO_SAVE_KEY, NULL );
-+
-+ if( ( aGconfValue != NULL ) && gconf_value_get_bool( aGconfValue ) )
-+ return sal_True;
-+ }
-+ break;
-+#endif // ENABLE_LOCKDOWN
-+
-+ default:
-+ fprintf( stderr, "Unhandled setting to check dependency.\n" );
-+ break;
-+ }
-+
-+ return sal_False;
-+}
-+
-+//------------------------------------------------------------------------------
-+
-+void SAL_CALL GconfLayer::readData( const uno::Reference<backend::XLayerHandler>& xHandler )
-+ throw ( backend::MalformedDataException, lang::NullPointerException,
-+ lang::WrappedTargetException, uno::RuntimeException )
-+{
-+ if( ! m_xLayerContentDescriber.is() )
-+ {
-+ throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
-+ "Could not create com.sun.star.configuration.backend.LayerContentDescriber Service"
-+ ) ), static_cast < backend::XLayer * > (this) );
-+ }
-+
-+ uno::Sequence<backend::PropertyInfo> aPropInfoList( m_nConfigurationValues );
-+ sal_Int32 nProperties = 0;
-+
-+ GConfClient* aClient = GconfBackend::getGconfClient();
-+ GConfValue* aGconfValue;
-+ int i = 0;
-+
-+ while( m_pPreloadValuesList[i] != NULL )
-+ gconf_client_preload( aClient, m_pPreloadValuesList[i++], GCONF_CLIENT_PRELOAD_ONELEVEL, NULL );
-+
-+ for( i = 0; i < m_nConfigurationValues; i++ )
-+ {
-+ aGconfValue = gconf_client_get( aClient, m_pConfigurationValuesList[i].GconfItem, NULL );
-+
-+ if( ( m_pConfigurationValuesList[i].nDependsOn != SETTINGS_LAST ) && !isDependencySatisfied( m_pConfigurationValuesList[i] ) )
-+ continue;
-+
-+ if( aGconfValue != NULL )
-+ {
-+ aPropInfoList[nProperties].Name = rtl::OUString::createFromAscii( m_pConfigurationValuesList[i].OOoConfItem );
-+ aPropInfoList[nProperties].Type = rtl::OUString::createFromAscii( m_pConfigurationValuesList[i].OOoConfValueType );
-+ aPropInfoList[nProperties].Protected = m_pConfigurationValuesList[i].bLocked;
-+
-+ if( m_pConfigurationValuesList[i].bNeedsTranslation )
-+ aPropInfoList[nProperties].Value = translateToOOo( m_pConfigurationValuesList[i], aGconfValue );
-+ else
-+ aPropInfoList[nProperties].Value = makeAnyOfGconfValue( aGconfValue );
-+
-+ nProperties++;
-+ }
-+ }
-+
-+ if( nProperties > 0 )
-+ {
-+ aPropInfoList.realloc( nProperties );
-+ m_xLayerContentDescriber->describeLayer( xHandler, aPropInfoList );
-+ }
-+}
-+
-+//------------------------------------------------------------------------------
-+
-+rtl::OUString SAL_CALL GconfLayer::getTimestamp( void )
-+ throw (uno::RuntimeException)
-+{
-+ // Return a hash of the values as timestamp to avoid regenerating
-+ // the binary cache on each office launch.
-+ rtl::OStringBuffer aTimeStamp;
-+
-+ // Make sure the timestamp differs from beta
-+ sal_Int32 nHashCode = 0;
-+
-+ GConfClient* aClient = GconfBackend::getGconfClient();
-+ GConfValue* aGconfValue;
-+ int i = 0;
-+
-+ while( m_pPreloadValuesList[i] != NULL )
-+ gconf_client_preload( aClient, m_pPreloadValuesList[i++], GCONF_CLIENT_PRELOAD_ONELEVEL, NULL );
-+
-+ for( i = 0; i < m_nConfigurationValues; i++ )
-+ {
-+ aGconfValue = gconf_client_get( aClient, m_pConfigurationValuesList[i].GconfItem, NULL );
-+
-+ if( aGconfValue != NULL )
-+ {
-+ switch( aGconfValue->type )
-+ {
-+ case GCONF_VALUE_BOOL:
-+ nHashCode ^= (sal_Int32) !gconf_value_get_bool( aGconfValue );
-+ break;
-+
-+ case GCONF_VALUE_INT:
-+ nHashCode ^= (sal_Int32) gconf_value_get_int( aGconfValue );
-+ break;
-+
-+ case GCONF_VALUE_STRING:
-+ nHashCode ^= (sal_Int32) g_str_hash( gconf_value_get_string( aGconfValue ) );
-+ break;
-+
-+ default:
-+ fprintf( stderr, "getTimestamp: Type not handled.\n" );
-+ break;
-+ }
-+ nHashCode = (nHashCode << 5) - nHashCode;
-+ }
-+ }
-+
-+ return rtl::OUString::valueOf( nHashCode );
-+}
diff --git a/patches/src680/gnome-fpicker-auto-file-type-by-extension.diff b/patches/src680/gnome-fpicker-auto-file-type-by-extension.diff
deleted file mode 100644
index 1da751a90..000000000
--- a/patches/src680/gnome-fpicker-auto-file-type-by-extension.diff
+++ /dev/null
@@ -1,62 +0,0 @@
---- fpicker/source/unx/gnome/SalGtkFilePicker.cxx 2005-08-25 20:40:15.000000000 +0530
-+++ fpicker/source/unx/gnome/SalGtkFilePicker.cxx 2005-08-27 21:43:54.000000000 +0530
-@@ -931,6 +931,8 @@ uno::Sequence<rtl::OUString> SAL_CALL Sa
- if( GTK_FILE_CHOOSER_ACTION_SAVE == eAction )
- {
- OUString sFilterName;
-+ sal_Int32 nTokenIndex = 0;
-+ bool bExtensionTypedIn = false;
-
- GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(m_pFilterView));
- GtkTreeIter iter;
-@@ -944,6 +946,33 @@ uno::Sequence<rtl::OUString> SAL_CALL Sa
- }
- else
- {
-+ if( aSelectedFiles[nToIndex].indexOf('.') > 0 )
-+ {
-+ rtl::OUString sExtension;
-+ nTokenIndex = 0;
-+ do
-+ sExtension = aSelectedFiles[nToIndex].getToken( 0, '.', nTokenIndex );
-+ while( nTokenIndex >= 0 );
-+
-+ if( sExtension.getLength() >= 3 ) // 3 = typical/minimum extension length
-+ {
-+ static const OUString aStarDot = OUString::createFromAscii( "*." );
-+
-+ for ( FilterList::iterator aListIter = m_pFilterList->begin();
-+ aListIter != m_pFilterList->end();
-+ ++aListIter
-+ )
-+ {
-+ if( aListIter->getFilter().indexOf( aStarDot+sExtension ) >= 0 )
-+ {
-+ setCurrentFilter( aListIter->getTitle() );
-+ bExtensionTypedIn = true;
-+ break;
-+ }
-+ }
-+ }
-+ }
-+
- const gchar* filtername =
- gtk_file_filter_get_name( gtk_file_chooser_get_filter( GTK_FILE_CHOOSER( m_pDialog ) ) );
- sFilterName = OUString( filtername, strlen( filtername ), RTL_TEXTENCODING_UTF8 );
-@@ -960,7 +989,7 @@ uno::Sequence<rtl::OUString> SAL_CALL Sa
- OSL_TRACE( "turned into %s\n",
- OUStringToOString( aFilter, RTL_TEXTENCODING_UTF8 ).getStr() );
-
-- sal_Int32 nTokenIndex = 0;
-+ nTokenIndex = 0;
- rtl::OUString sToken;
- // rtl::OUString strExt;
- do
-@@ -981,6 +1010,7 @@ uno::Sequence<rtl::OUString> SAL_CALL Sa
- // if AutoExtension is enabled and checked and current filter is not *,
- // then complete the file name by concatinating the filter
- if( mbToggleVisibility[AUTOEXTENSION]
-+ && ( !bExtensionTypedIn )
- && ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( m_pToggles[AUTOEXTENSION] ) ) )
- && ( !sToken.equalsAscii( "*" ) ) )
- {
diff --git a/patches/src680/gtk-kde-fix.diff b/patches/src680/gtk-kde-fix.diff
deleted file mode 100644
index 75c969b70..000000000
--- a/patches/src680/gtk-kde-fix.diff
+++ /dev/null
@@ -1,27 +0,0 @@
-Index: vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx,v
-retrieving revision 1.14
-diff -u -p -u -r1.14 salnativewidgets-gtk.cxx
---- vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
-+++ vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
-@@ -392,10 +393,15 @@ void GtkData::initNWF( void )
- pSVData->maNWFData.mbDockingAreaSeparateTB = true;
-
- if( SalGetDesktopEnvironment().equalsAscii( "KDE" ) )
-- // KDE 3.3 invented a bug in the qt<->gtk theme engine
-- // that makes direct rendering impossible: they totally
-- // ignore the clip rectangle passed to the paint methods
-- GtkSalGraphics::bNeedPixmapPaint = true;
-+ {
-+ if( g_type_from_name( "QtEngineStyle" ) )
-+ {
-+ // KDE 3.3 invented a bug in the qt<->gtk theme engine
-+ // that makes direct rendering impossible: they totally
-+ // ignore the clip rectangle passed to the paint methods
-+ GtkSalGraphics::bNeedPixmapPaint = true;
-+ }
-+ }
-
- #if OSL_DEBUG_LEVEL > 1
- fprintf( stderr, "GtkPlugin: using %s NWF\n",
diff --git a/patches/src680/gui-font-paranoid-fallback.diff b/patches/src680/gui-font-paranoid-fallback.diff
deleted file mode 100644
index 9f75ffeca..000000000
--- a/patches/src680/gui-font-paranoid-fallback.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- vcl/source/gdi/fontcfg.cxx
-+++ vcl/source/gdi/fontcfg.cxx
-@@ -415,8 +415,8 @@
-
- // fallback mechanism (either no configuration or no entry in configuration
-
-- #define FALLBACKFONT_UI_SANS "Andale Sans UI;Tahoma;Arial Unicode MS;Arial;Bitstream Vera Sans;gnu-unifont;Interface User;Geneva;WarpSans;Dialog;Swiss;Lucida;Helvetica;Charcoal;Chicago;MS Sans Serif;Helv;Times;Times New Roman;Interface System"
-- #define FALLBACKFONT_UI_SANS_LATIN2 "Andale Sans UI;Tahoma;Arial Unicode MS;Arial;Luxi Sans;Bitstream Vera Sans;Interface User;Geneva;WarpSans;Dialog;Swiss;Lucida;Helvetica;Charcoal;Chicago;MS Sans Serif;Helv;Times;Times New Roman;Interface System"
-+ #define FALLBACKFONT_UI_SANS "Albany;Albany AMT;Andale Sans UI;Tahoma;Arial Unicode MS;Arial;Nimbus Sans L;Bitstream Vera Sans;gnu-unifont;Interface User;Geneva;WarpSans;Dialog;Swiss;Lucida;Helvetica;Charcoal;Chicago;MS Sans Serif;Helv;Times;Times New Roman;Interface System"
-+ #define FALLBACKFONT_UI_SANS_LATIN2 "Albany;Albany AMT;Andale Sans UI;Tahoma;Arial Unicode MS;Arial;Nimbus Sans L;Luxi Sans;Bitstream Vera Sans;Interface User;Geneva;WarpSans;Dialog;Swiss;Lucida;Helvetica;Charcoal;Chicago;MS Sans Serif;Helv;Times;Times New Roman;Interface System"
- #define FALLBACKFONT_UI_SANS_ARABIC "Tahoma;Traditional Arabic;Simplified Arabic;Lucidasans;Lucida Sans;Supplement;Andale Sans UI;clearlyU;Interface User;Arial Unicode MS;Lucida Sans Unicode;WarpSans;Geneva;MS Sans Serif;Helv;Dialog;Albany;Lucida;Helvetica;Charcoal;Chicago;Arial;Helmet;Interface System;Sans Serif"
- #define FALLBACKFONT_UI_SANS_THAI "OONaksit;Tahoma;Lucidasans;Arial Unicode MS"
- #define FALLBACKFONT_UI_SANS_KOREAN "SunGulim;BaekmukGulim;Gulim;Roundgothic;Arial Unicode MS;Lucida Sans Unicode;gnu-unifont;Andale Sans UI"
diff --git a/patches/src680/gui-insensitive.diff b/patches/src680/gui-insensitive.diff
deleted file mode 100644
index 1675f5c0d..000000000
--- a/patches/src680/gui-insensitive.diff
+++ /dev/null
@@ -1,331 +0,0 @@
-Index: vcl/inc/image.h
-===================================================================
-RCS file: /cvs/gsl/vcl/inc/image.h,v
-retrieving revision 1.7
-diff -u -p -u -r1.7 image.h
---- vcl/inc/image.h 10 Jun 2004 17:38:14 -0000 1.7
-+++ vcl/inc/image.h 26 Nov 2004 04:29:48 -0000
-@@ -97,7 +97,7 @@ public:
- private:
-
- BitmapEx maBmpEx;
-- Bitmap maDisabledBmp;
-+ BitmapEx maDisabledBmpEx;
- BitmapEx* mpDisplayBmp;
- Size maSize;
- BYTE* mpInfoAry;
-Index: vcl/source/gdi/impimage.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/gdi/impimage.cxx,v
-retrieving revision 1.16
-diff -u -p -u -r1.16 impimage.cxx
---- vcl/source/gdi/impimage.cxx 10 Jun 2004 17:53:28 -0000 1.16
-+++ vcl/source/gdi/impimage.cxx 26 Nov 2004 04:28:04 -0000
-@@ -252,7 +252,7 @@ void ImplImageBmp::Create( long nItemWid
- const Size aTotalSize( nInitSize * nItemWidth, nItemHeight );
-
- maBmpEx = Bitmap( aTotalSize, 24 );
-- maDisabledBmp.SetEmpty();
-+ maDisabledBmpEx.SetEmpty();
-
- delete mpDisplayBmp;
- mpDisplayBmp = NULL;
-@@ -270,7 +270,7 @@ void ImplImageBmp::Create( long nItemWid
- void ImplImageBmp::Create( const BitmapEx& rBmpEx, long nItemWidth, long nItemHeight, USHORT nInitSize )
- {
- maBmpEx = rBmpEx;
-- maDisabledBmp.SetEmpty();
-+ maDisabledBmpEx.SetEmpty();
-
- delete mpDisplayBmp;
- mpDisplayBmp = NULL;
-@@ -295,8 +295,8 @@ void ImplImageBmp::Expand( USHORT nGrowS
-
- maBmpEx.Expand( nDX, 0UL );
-
-- if( !maDisabledBmp.IsEmpty() )
-- maDisabledBmp.Expand( nDX, 0UL );
-+ if( !maDisabledBmpEx.IsEmpty() )
-+ maDisabledBmpEx.Expand( nDX, 0UL );
-
- delete mpDisplayBmp;
- mpDisplayBmp = NULL;
-@@ -327,8 +327,8 @@ void ImplImageBmp::Replace( USHORT nPos,
-
- maBmpEx.CopyPixel( aDstRect, aSrcRect );
-
-- if( !maDisabledBmp.IsEmpty() )
-- maDisabledBmp.CopyPixel( aDstRect, aSrcRect );
-+ if( !maDisabledBmpEx.IsEmpty() )
-+ maDisabledBmpEx.CopyPixel( aDstRect, aSrcRect );
-
- delete mpDisplayBmp;
- mpDisplayBmp = NULL;
-@@ -429,8 +429,15 @@ void ImplImageBmp::Draw( USHORT nPos, Ou
-
- ImplUpdateDisabledBmp( -1 );
-
-- pOutDev->DrawMask( aOutPos1, aOutSize, aSrcPos, maSize, maDisabledBmp, rSettings.GetLightColor() );
-- pOutDev->DrawMask( rPos, aOutSize, aSrcPos, maSize, maDisabledBmp, rSettings.GetShadowColor() );
-+ if( maDisabledBmpEx.IsAlpha() )
-+ pOutDev->DrawBitmapEx( rPos, aOutSize, aSrcPos, maSize, maDisabledBmpEx );
-+ else
-+ {
-+ pOutDev->DrawMask( aOutPos1, aOutSize, aSrcPos, maSize, maDisabledBmpEx.GetBitmap(),
-+ rSettings.GetLightColor() );
-+ pOutDev->DrawMask( rPos, aOutSize, aSrcPos, maSize, maDisabledBmpEx.GetBitmap(),
-+ rSettings.GetShadowColor() );
-+ }
- }
- else
- {
-@@ -618,158 +625,112 @@
-
- void ImplImageBmp::ImplUpdateDisabledBmp( int nPos )
- {
-- if( ( nPos >= 0 && !maDisabledBmp.IsEmpty() ) ||
-- ( nPos < 0 && maDisabledBmp.IsEmpty() ) )
-- {
-- Bitmap aBmp( maBmpEx.GetBitmap() );
-- Bitmap aMask;
--
-- if( maBmpEx.IsTransparent() )
-- aMask = maBmpEx.GetMask();
-- else
-- {
-- aMask = aBmp;
-- aMask.Convert( BMP_CONVERSION_1BIT_THRESHOLD );
-- }
--
-- if( maDisabledBmp.IsEmpty() )
-- maDisabledBmp = Bitmap( aBmp.GetSizePixel(), 1 );
--
-- BitmapReadAccess* pAcc = aBmp.AcquireReadAccess();
-- BitmapReadAccess* pMsk = aMask.AcquireReadAccess();
-- BitmapWriteAccess* pDis = maDisabledBmp.AcquireWriteAccess();
-+ if( ! ( nPos >= 0 && !maDisabledBmpEx.IsEmpty() ) &&
-+ ! ( nPos < 0 && maDisabledBmpEx.IsEmpty() ) )
-+ return;
-+
-+ Bitmap aBitmap;
-+
-+ if( maBmpEx.IsAlpha() )
-+ aBitmap = Bitmap( maBmpEx.GetSizePixel(),
-+ maBmpEx.GetBitCount() );
-+ else
-+ aBitmap = Bitmap( maBmpEx.GetSizePixel(), 1 );
-+
-+ Bitmap aSrcBitmap = maBmpEx.GetBitmap();
-+ BitmapReadAccess *pAcc = aSrcBitmap.AcquireReadAccess();
-+ if( !pAcc )
-+ return;
-+ BitmapWriteAccess *pDis = aBitmap.AcquireWriteAccess();
-
-- if( pAcc && pMsk && pDis )
-- {
-- const Color aWhite( COL_WHITE );
-- const Color aBlack( COL_BLACK );
-- const BitmapColor aAccWhite( pAcc->GetBestMatchingColor( aWhite ) );
-- const BitmapColor aMskWhite( pMsk->GetBestMatchingColor( aWhite ) );
-- const BitmapColor aDisWhite( pDis->GetBestMatchingColor( aWhite ) );
-- const BitmapColor aDisBlack( pDis->GetBestMatchingColor( aBlack ) );
-- long nLeft, nTop, nRight, nBottom;
-- long nCurLeft, nCurRight;
-- const long nBlackThreshold = FRound( maSize.Width() * maSize.Height() * 0.10 );
-+ if( !pDis )
-+ {
-+ aSrcBitmap.ReleaseAccess( pAcc );
-+ return;
-+ }
-
-- if( nPos >= 0 )
-- {
-- const Point aPos( nPos * maSize.Width(), 0 );
-+ long nLeft, nTop, nRight, nBottom;
-
-- nLeft = aPos.X();
-- nTop = 0;
-- nRight = nLeft + maSize.Width();
-- nBottom = nTop + maSize.Height();
-- }
-- else
-- {
-- nLeft = nTop = 0L;
-- nRight = pDis->Width();
-- nBottom = pDis->Height();
-- }
-+ if( nPos >= 0 )
-+ {
-+ const Point aPos( nPos * maSize.Width(), 0 );
-
-- nCurLeft = nLeft;
-- nCurRight = nCurLeft + maSize.Width();
-+ nLeft = aPos.X();
-+ nTop = 0;
-+ nRight = nLeft + maSize.Width();
-+ nBottom = nTop + maSize.Height();
-+ }
-+ else
-+ {
-+ nLeft = nTop = 0L;
-+ nRight = pDis->Width();
-+ nBottom = pDis->Height();
-+ }
-
-- while( nCurLeft < nRight )
-+ if( maBmpEx.IsAlpha() )
-+ {
-+ if( pAcc && pDis )
-+ {
-+ for( long nY = nTop; nY < nBottom; nY++ )
- {
-- sal_Int32 nBlackCount = 0;
--
-- if( pAcc->GetScanlineFormat() == BMP_FORMAT_4BIT_MSN_PAL &&
-- pMsk->GetScanlineFormat() == BMP_FORMAT_1BIT_MSB_PAL )
-- {
-- // optimized version
-- const BYTE cAccTest = aAccWhite.GetIndex();
-- const BYTE cMskTest = aMskWhite.GetIndex();
--
-- for( long nY = nTop; nY < nBottom; nY++ )
-- {
-- Scanline pAccScan = pAcc->GetScanline( nY );
-- Scanline pMskScan = pMsk->GetScanline( nY );
--
-- for( long nX = nCurLeft; nX < nCurRight; nX++ )
-- {
-- if( ( cMskTest == ( pMskScan[ nX >> 3 ] & ( 1 << ( 7 - ( nX & 7 ) ) ) ? 1 : 0 ) ) ||
-- ( cAccTest == ( ( pAccScan[ nX >> 1 ] >> ( nX & 1 ? 0 : 4 ) ) & 0x0f ) ) )
-- {
-- pDis->SetPixel( nY, nX, aDisWhite );
-- }
-- else
-- {
-- pDis->SetPixel( nY, nX, aDisBlack );
-- ++nBlackCount;
-- }
-- }
-- }
-- }
-- else if( pAcc->GetScanlineFormat() == BMP_FORMAT_8BIT_PAL &&
-- pMsk->GetScanlineFormat() == BMP_FORMAT_1BIT_MSB_PAL )
-- {
-- // optimized version
-- const BYTE cAccTest = aAccWhite.GetIndex();
-- const BYTE cMskTest = aMskWhite.GetIndex();
-+ for( long nX = nLeft; nX < nRight; nX++ )
-+ {
-+ BitmapColor col = pAcc->GetPixel( nY, nX );
-
-- for( long nY = nTop; nY < nBottom; nY++ )
-+ if ((nY + nX) % 2 == 0)
- {
-- Scanline pAccScan = pAcc->GetScanline( nY );
-- Scanline pMskScan = pMsk->GetScanline( nY );
--
-- for( long nX = nCurLeft; nX < nCurRight; nX++ )
-- {
-- if( ( cMskTest == ( pMskScan[ nX >> 3 ] & ( 1 << ( 7 - ( nX & 7 ) ) ) ? 1 : 0 ) ) ||
-- ( cAccTest == pAccScan[ nX ] ) )
-- {
-- pDis->SetPixel( nY, nX, aDisWhite );
-- }
-- else
-- {
-- pDis->SetPixel( nY, nX, aDisBlack );
-- ++nBlackCount;
-- }
-- }
-+ unsigned char i;
-+ i = (unsigned char ) ( col.GetRed() * 0.3 + // magic numbers
-+ col.GetGreen() * 0.59 +
-+ col.GetBlue () * 0.11 );
-+
-+ col.SetRed (i / 2 + 127);
-+ col.SetGreen (i / 2 + 127);
-+ col.SetBlue (i / 2 + 127);
- }
-- }
-- else
-- {
-- for( long nY = nTop; nY < nBottom; nY++ )
-+ else
- {
-- for( long nX = nCurLeft; nX < nCurRight; nX++ )
-- {
-- if( ( aMskWhite == pMsk->GetPixel( nY, nX ) ) ||
-- ( aAccWhite == pAcc->GetPixel( nY, nX ) ) )
-- {
-- pDis->SetPixel( nY, nX, aDisWhite );
-- }
-- else
-- {
-- pDis->SetPixel( nY, nX, aDisBlack );
-- ++nBlackCount;
-- }
-- }
-+#define GT_ZERO(c) ((unsigned char)(((c) >= 0) ? (c) : 0))
-+ col.SetRed (GT_ZERO (( col.GetRed ()) * 0.7));
-+ col.SetGreen (GT_ZERO (( col.GetGreen ()) * 0.7));
-+ col.SetBlue (GT_ZERO (( col.GetBlue ()) * 0.7));
-+#undef GT_ZERO
- }
-+ pDis->SetPixel( nY, nX, col );
- }
-+ }
-+ }
-+ }
-+ else
-+ {
-+ BitmapReadAccess *pMsk = aBitmap.AcquireReadAccess();
-
-- if( nBlackCount < nBlackThreshold )
-- {
-- // emergency solution if paint bitmap is mostly white
-- for( long nY = nTop; nY < nBottom; nY++ )
-- {
-- for( long nX = nCurLeft; nX < nCurRight; nX++ )
-- {
-- if( aMskWhite == pMsk->GetPixel( nY, nX ) )
-- pDis->SetPixel( nY, nX, aDisWhite );
-- else
-- pDis->SetPixel( nY, nX, aDisBlack );
-- }
-- }
-- }
-+ const Color aWhite( COL_WHITE );
-+ const Color aBlack( COL_BLACK );
-+ const BitmapColor aAccWhite( pAcc->GetBestMatchingColor( aWhite ) );
-+ const BitmapColor aMskWhite( pMsk->GetBestMatchingColor( aWhite ) );
-+ const BitmapColor aDisWhite( pDis->GetBestMatchingColor( aWhite ) );
-+ const BitmapColor aDisBlack( pDis->GetBestMatchingColor( aBlack ) );
-
-- nCurLeft += maSize.Width();
-- nCurRight += maSize.Width();
-+ for( long nY = nTop; nY < nBottom; nY++ )
-+ {
-+ for( long nX = nLeft; nX < nRight; nX++ )
-+ {
-+ if( ( aMskWhite == pMsk->GetPixel( nY, nX ) ) &&
-+ ( aAccWhite != pAcc->GetPixel( nY, nX ) ) )
-+ pDis->SetPixel( nY, nX, aDisBlack );
-+ else
-+ pDis->SetPixel( nY, nX, aDisWhite );
- }
- }
--
-- aBmp.ReleaseAccess( pAcc );
-- aMask.ReleaseAccess( pMsk );
-- maDisabledBmp.ReleaseAccess( pDis );
-+ aBitmap.ReleaseAccess( pMsk );
- }
-+
-+ aSrcBitmap.ReleaseAccess( pAcc );
-+ aBitmap.ReleaseAccess( pDis );
-+
-+ if( maBmpEx.IsAlpha() )
-+ maDisabledBmpEx = BitmapEx( aBitmap, maBmpEx.GetAlpha() );
-+ else
-+ maDisabledBmpEx = BitmapEx( aBitmap );
- }
diff --git a/patches/src680/gui-metric-fonts-descr.diff b/patches/src680/gui-metric-fonts-descr.diff
deleted file mode 100644
index ea0d370b6..000000000
--- a/patches/src680/gui-metric-fonts-descr.diff
+++ /dev/null
@@ -1,122 +0,0 @@
---- officecfg/registry/data/org/openoffice/VCL.xcu
-+++ officecfg/registry/data/org/openoffice/VCL.xcu
-@@ -746,6 +746,29 @@
- <value>Default,Standard,Normal,SansSerif</value>
- </prop>
- </node>
-+ <node oor:name="albanyamt" oor:op="replace">
-+ <prop oor:name="SubstFonts">
-+ <value>albany;albanyamt;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans;andalesansui;arialunicodems;lucidaunicode</value>
-+ </prop>
-+ <prop oor:name="SubstFontsMS">
-+ <value>Arial</value>
-+ </prop>
-+ <prop oor:name="SubstFontsPS">
-+ <value>Helvetica</value>
-+ </prop>
-+ <prop oor:name="SubstFontsHTML">
-+ <value>sans-serif</value>
-+ </prop>
-+ <prop oor:name="FontWeight">
-+ <value>Normal</value>
-+ </prop>
-+ <prop oor:name="FontWidth">
-+ <value>Normal</value>
-+ </prop>
-+ <prop oor:name="FontType">
-+ <value>Default,Standard,Normal,SansSerif</value>
-+ </prop>
-+ </node>
- <node oor:name="algerian" oor:op="replace">
- <prop oor:name="SubstFonts">
- <value>imprintmtshadow;imprintshadow;imprint;chevara;gallia;algerian;imprintmtshadow;imprintshadow;imprint;chevaraoutline;chevara;gallia;colonnamt;algerian;castellar;monotypeoldstyleboldoutline;monotypeoldstyleoutline;chevaraoutline;imprintmtshadow;imprintshadow;imprint;colonnamt;castellar</value>
-@@ -1827,6 +1850,29 @@
- <value>Default,Standard,Normal,Fixed,Typewriter</value>
- </prop>
- </node>
-+ <node oor:name="cumberlandamt" oor:op="replace">
-+ <prop oor:name="SubstFonts">
-+ <value>cumberland;cumberlandamt;couriernew;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value>
-+ </prop>
-+ <prop oor:name="SubstFontsMS">
-+ <value>Courier New</value>
-+ </prop>
-+ <prop oor:name="SubstFontsPS">
-+ <value>Courier</value>
-+ </prop>
-+ <prop oor:name="SubstFontsHTML">
-+ <value>monospace</value>
-+ </prop>
-+ <prop oor:name="FontWeight">
-+ <value>Normal</value>
-+ </prop>
-+ <prop oor:name="FontWidth">
-+ <value>Normal</value>
-+ </prop>
-+ <prop oor:name="FontType">
-+ <value>Default,Standard,Normal,Fixed,Typewriter</value>
-+ </prop>
-+ </node>
- <node oor:name="curlz" oor:op="replace">
- <prop oor:name="SubstFonts">
- <value>comicsansms;kidprint;;zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;palacescript;palacescriptmt;arioso;shelley</value>
-@@ -5021,6 +5064,29 @@
- <value>Normal,Serif</value>
- </prop>
- </node>
-+ <node oor:name="nimbusromanno9l" oor:op="replace">
-+ <prop oor:name="SubstFonts">
-+ <value>thorndale;thorndaleamt;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value>
-+ </prop>
-+ <prop oor:name="SubstFontsMS">
-+ <value>Times New Roman</value>
-+ </prop>
-+ <prop oor:name="SubstFontsPS">
-+ <value>Times</value>
-+ </prop>
-+ <prop oor:name="SubstFontsHTML">
-+ <value>serif</value>
-+ </prop>
-+ <prop oor:name="FontWeight">
-+ <value>Normal</value>
-+ </prop>
-+ <prop oor:name="FontWidth">
-+ <value>Normal</value>
-+ </prop>
-+ <prop oor:name="FontType">
-+ <value>Default,Standard,Normal,Serif</value>
-+ </prop>
-+ </node>
- <node oor:name="nlq" oor:op="replace">
- <prop oor:name="SubstFonts">
- <value>cumberland;cumberlandamt;couriernew;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value>
-@@ -6355,6 +6470,29 @@
- <value>Default,Standard,Normal,Serif</value>
- </prop>
- </node>
-+ <node oor:name="thorndaleamt" oor:op="replace">
-+ <prop oor:name="SubstFonts">
-+ <value>thorndale;thorndaleamt;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value>
-+ </prop>
-+ <prop oor:name="SubstFontsMS">
-+ <value>Times New Roman</value>
-+ </prop>
-+ <prop oor:name="SubstFontsPS">
-+ <value>Times</value>
-+ </prop>
-+ <prop oor:name="SubstFontsHTML">
-+ <value>serif</value>
-+ </prop>
-+ <prop oor:name="FontWeight">
-+ <value>Normal</value>
-+ </prop>
-+ <prop oor:name="FontWidth">
-+ <value>Normal</value>
-+ </prop>
-+ <prop oor:name="FontType">
-+ <value>Default,Standard,Normal,Serif</value>
-+ </prop>
-+ </node>
- <node oor:name="times" oor:op="replace">
- <prop oor:name="SubstFonts">
- <value>thorndale;thorndaleamt;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value>
diff --git a/patches/src680/gui-metric-fonts.diff b/patches/src680/gui-metric-fonts.diff
deleted file mode 100644
index 9bf892709..000000000
--- a/patches/src680/gui-metric-fonts.diff
+++ /dev/null
@@ -1,69 +0,0 @@
-Index: officecfg/registry/data/org/openoffice/VCL.xcu
-===================================================================
-RCS file: /cvs/util/officecfg/registry/data/org/openoffice/VCL.xcu,v
-retrieving revision 1.20.14.3
-diff -u -p -u -r1.20.14.3 VCL.xcu
---- officecfg/registry/data/org/openoffice/VCL.xcu 19 Sep 2003 07:46:21 -0000 1.20.14.3
-+++ officecfg/registry/data/org/openoffice/VCL.xcu 11 Nov 2003 11:58:25 -0000
-@@ -866,7 +866,7 @@
- <value>comicsansms;kidprint;;zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting</value>
- </prop>
- <prop oor:name="SubstFontsMS">
-- <value></value>
-+ <value>comic</value>
- </prop>
- <prop oor:name="SubstFontsPS">
- <value></value>
-@@ -880,7 +880,7 @@
- <value>albany;arial;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussansl;nimbussans;andalesansui;arialunicodems;lucidaunicode</value>
- </prop>
- <prop oor:name="SubstFontsMS">
-- <value></value>
-+ <value>Trebuchet</value>
- </prop>
- <prop oor:name="SubstFontsPS">
- <value></value>
-@@ -5621,7 +5644,7 @@
- </node>
- <node oor:name="sans" oor:op="replace">
- <prop oor:name="SubstFonts">
-- <value>albany;arial;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussansl;nimbussans;andalesansui;arialunicodems;lucidaunicode</value>
-+ <value>helvetica;arial;albany;bitstreamvera;verdana;nimbussansl;luxisans;lucidasans;lucida;geneva;helmet;sansserif;nimbussansl;nimbussans;andalesansui;arialunicodems;lucidaunicode</value>
- </prop>
- <prop oor:name="SubstFontsMS">
- <value/>
-@@ -5670,7 +5692,7 @@
- <value>albany;arial;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussansl;nimbussans;andalesansui;arialunicodems;lucidaunicode</value>
- </prop>
- <prop oor:name="SubstFontsMS">
-- <value></value>
-+ <value>Verdana</value>
- </prop>
- <prop oor:name="SubstFontsPS">
- <value></value>
-@@ -6472,7 +6492,7 @@
- </node>
- <node oor:name="trebuchet" oor:op="replace">
- <prop oor:name="SubstFonts">
-- <value>albany;arial;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussansl;nimbussans;andalesansui;arialunicodems;lucidaunicode</value>
-+ <value>andalesans;verdana;trebuchetms;albany;arial;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussansl;nimbussans;andalesansui;arialunicodems;lucidaunicode</value>
- </prop>
- <prop oor:name="SubstFontsMS">
- <value/>
-@@ -6610,7 +6630,7 @@
- </node>
- <node oor:name="verdana" oor:op="replace">
- <prop oor:name="SubstFonts">
-- <value>lucidasans;albany;arial;helvetica;lucida;geneva;helmet;sansserif;nimbussansl;nimbussans</value>
-+ <value>segoe;lucidasans;albany;arial;helvetica;lucida;geneva;helmet;sansserif;nimbussansl;nimbussans</value>
- </prop>
- <prop oor:name="SubstFontsMS">
- <value/>
-@@ -7437,6 +7437,6 @@
- <node oor:name="georgia" oor:op="replace">
- <prop oor:name="SubstFonts">
-- <value>bitstreamcharter;charter;timesnewroman</value>
-+ <value>bell;bitstreamcharter;charter;timesnewroman</value>
- </prop>
- <prop oor:name="FontWeight">
- <value>Normal</value>
diff --git a/patches/src680/gui-sc-delete.diff b/patches/src680/gui-sc-delete.diff
deleted file mode 100644
index e3bdcd7aa..000000000
--- a/patches/src680/gui-sc-delete.diff
+++ /dev/null
@@ -1,22 +0,0 @@
-Index: sc/source/ui/view/cellsh1.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/view/cellsh1.cxx,v
-retrieving revision 1.36
-diff -u -p -u -r1.36 cellsh1.cxx
---- sc/source/ui/view/cellsh1.cxx 4 Oct 2004 20:21:53 -0000 1.36
-+++ sc/source/ui/view/cellsh1.cxx 16 Dec 2004 17:47:32 -0000
-@@ -373,12 +373,12 @@ void ScCellShell::ExecuteEdit( SfxReques
- // Inhalte von Zellen loeschen
- //
-
-- case SID_DELETE_CONTENTS:
-+ case SID_DELETE:
- pTabViewShell->DeleteContents( IDF_CONTENTS );
- rReq.Done();
- break;
-
-- case SID_DELETE:
-+ case SID_DELETE_CONTENTS:
- {
- USHORT nFlags = IDF_NONE;
-
diff --git a/patches/src680/gui-slide-switch.diff b/patches/src680/gui-slide-switch.diff
deleted file mode 100644
index 3ef60b878..000000000
--- a/patches/src680/gui-slide-switch.diff
+++ /dev/null
@@ -1,18 +0,0 @@
---- sd/source/ui/slideshow/slideshowimpl.cxx
-+++ sd/source/ui/slideshow/slideshowimpl.cxx
-@@ -1834,6 +1834,7 @@
-
- // advance show
- case KEY_SPACE:
-+ case KEY_RIGHT:
- mxShow->nextEffect();
- update();
- break;
-@@ -1873,7 +1874,6 @@
- break;
-
- case KEY_PAGEDOWN:
-- case KEY_RIGHT:
- case KEY_DOWN:
- case KEY_N:
- gotoNextSlide();
diff --git a/patches/src680/gui-slidesort-backspace.diff b/patches/src680/gui-slidesort-backspace.diff
deleted file mode 100644
index 629f88e66..000000000
--- a/patches/src680/gui-slidesort-backspace.diff
+++ /dev/null
@@ -1,15 +0,0 @@
-Index: sd/source/ui/slidesorter/controller/SlsSelectionFunction.cxx
-===================================================================
-RCS file: /cvs/graphics/sd/source/ui/slidesorter/controller/SlsSelectionFunction.cxx,v
-retrieving revision 1.22
-diff -u -p -u -r1.22 SlsSelectionFunction.cxx
---- sd/source/ui/slidesorter/controller/SlsSelectionFunction.cxx 14 Jul 2005 10:16:28 -0000 1.22
-+++ sd/source/ui/slidesorter/controller/SlsSelectionFunction.cxx 16 Sep 2005 20:49:12 -0000
-@@ -481,6 +484,7 @@ BOOL SelectionFunction::KeyInput (const
- break;
-
- case KEY_DELETE:
-+ case KEY_BACKSPACE:
- {
- int nSelectedPagesCount = 0;
- int nPageCount = mrController.GetModel().GetPageCount();
diff --git a/patches/src680/gui-sw-insert-symbol.diff b/patches/src680/gui-sw-insert-symbol.diff
deleted file mode 100644
index 4ef7a9156..000000000
--- a/patches/src680/gui-sw-insert-symbol.diff
+++ /dev/null
@@ -1,15 +0,0 @@
-Index: sw/source/ui/config/viewopt.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/ui/config/viewopt.cxx,v
-retrieving revision 1.4
-diff -u -p -u -r1.4 viewopt.cxx
---- sw/source/ui/config/viewopt.cxx 5 Jul 2001 13:48:54 -0000 1.4
-+++ sw/source/ui/config/viewopt.cxx 25 Feb 2003 16:15:51 -0000
-@@ -441,6 +441,7 @@ void SwViewOption::PaintPostIts( OutputD
- |*************************************************************************/
-
- SwViewOption::SwViewOption() :
-+ sSymbolFont( RTL_CONSTASCII_STRINGPARAM( "symbol" ) ),
- nZoom( 100 ),
- nPagePrevRow( 1 ),
- nPagePrevCol( 2 ),
diff --git a/patches/src680/gui-sw-scroll.diff b/patches/src680/gui-sw-scroll.diff
deleted file mode 100644
index 22e27c1e3..000000000
--- a/patches/src680/gui-sw-scroll.diff
+++ /dev/null
@@ -1,24 +0,0 @@
-Index: sw/source/ui/uiview/viewport.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/ui/uiview/viewport.cxx,v
-retrieving revision 1.25.160.1
-diff -u -p -u -r1.25.160.1 viewport.cxx
---- sw/source/ui/uiview/viewport.cxx 22 Aug 2003 12:01:25 -0000 1.25.160.1
-+++ sw/source/ui/uiview/viewport.cxx 7 Oct 2003 09:33:04 -0000
-@@ -785,6 +785,7 @@ IMPL_LINK( SwView, ScrollHdl, SwScrollba
- //Hier wieder auskommentieren wenn das mitscrollen nicht gewuenscht ist.
- // JP 21.07.00: the end scrollhandler invalidate the FN_STAT_PAGE,
- // so we dont must do it agin.
-+ long nOldPge = nPgNum;
- EndScrollHdl(pScrollbar);
-
- Point aPos( aVisArea.TopLeft() );
-@@ -805,7 +807,7 @@ IMPL_LINK( SwView, ScrollHdl, SwScrollba
- USHORT nPageCnt = pWrtShell->GetPageCnt();
- if( nPageCnt > 1 && Help::IsQuickHelpEnabled() )
- {
-- if( !nPgNum || nPgNum != nPhNum )
-+ if( !nOldPge || nOldPge != nPhNum )
- {
- Rectangle aRect;
- aRect.Left() = pScrollbar->GetParent()->OutputToScreenPixel(
diff --git a/patches/src680/gui-toolbox-large-icons.diff b/patches/src680/gui-toolbox-large-icons.diff
deleted file mode 100644
index c8a389ca8..000000000
--- a/patches/src680/gui-toolbox-large-icons.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- ../ooo-build/build/src680-m55/officecfg/registry/schema/org/openoffice/Office/Common.xcs 2004-10-11 21:18:44.000000000 +0100
-+++ officecfg/registry/schema/org/openoffice/Office/Common.xcs 2004-10-13 16:58:35.914719096 +0100
-@@ -4894,11 +4894,11 @@
- </enumeration>
- <enumeration oor:value="1">
- <info>
-- <desc>32x32 pixel icons</desc>
-+ <desc>larger icons</desc>
- </info>
- </enumeration>
- </constraints>
-- <value>0</value>
-+ <value>1</value>
- </prop>
- <prop oor:name="ToolboxStyle" oor:type="xs:short">
- <!-- UIHints: Tools Options General View -->
diff --git a/patches/src680/hebrew-culmus.diff b/patches/src680/hebrew-culmus.diff
deleted file mode 100644
index 2be58be98..000000000
--- a/patches/src680/hebrew-culmus.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: registry/data/org/openoffice/VCL.xcu
-===================================================================
-RCS file: /cvs/util/officecfg/registry/data/org/openoffice/VCL.xcu,v
-retrieving revision 1.44
-diff -u -u -r1.44 VCL.xcu
---- officecfg/registry/data/org/openoffice/VCL.xcu 25 Aug 2005 16:10:07 -0000 1.44
-+++ officecfg/registry/data/org/openoffice/VCL.xcu 5 Sep 2005 02:33:16 -0000
-@@ -417,7 +417,7 @@
- </node>
- <node oor:name="he" oor:op="replace">
- <prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string">
-- <value>lucidagrande;nachlieli;tahoma;lucidasans;supplement;Andale Sans UI;arialunicodems;lucidasansunicode;interfaceuser;WarpSans;Geneva;MS Sans Serif;Helv;Dialog;Albany;Lucida;Helvetica;Charcoal;Chicago;Arial;Helmet;Interface System;Sans Serif</value>
-+ <value>Miriam Mono CLM;Ellinia CLM;lucidagrande;nachlieli;tahoma;lucidasans;supplement;Andale Sans UI;arialunicodems;lucidasansunicode;interfaceuser;WarpSans;Geneva;MS Sans Serif;Helv;Dialog;Albany;Lucida;Helvetica;Charcoal;Chicago;Arial;Helmet;Interface System;Sans Serif</value>
- </prop>
- <prop oor:name="SANS_UNICODE" oor:type="xs:string" oor:op="replace">
- <value>lucidagrande;lucidasans;arialunicodems;lucidasansunicode;tahoma;clearlyu;lucida;sansserif</value>
diff --git a/patches/src680/help-messagebox.diff b/patches/src680/help-messagebox.diff
deleted file mode 100644
index 36d51e028..000000000
--- a/patches/src680/help-messagebox.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- sfx2/source/appl/sfxhelp.cxx~ 2005-09-07 19:47:17.000000000 +0200
-+++ sfx2/source/appl/sfxhelp.cxx 2005-10-10 19:26:00.111394472 +0200
-@@ -151,7 +151,7 @@
-
- NoHelpErrorBox::NoHelpErrorBox( Window* _pParent ) :
-
-- ErrorBox( _pParent, WB_OK, String( SfxResId( RID_STR_HLPAPPNOTSTARTED ) ) )
-+ ErrorBox( _pParent, WB_OK, String( SfxResId( RID_STR_HLPAPPNOTSTARTED ) ).Append(String(DEFINE_CONST_UNICODE(".\n"))).Append(String( SfxResId( RID_STR_HLPFILENOTEXIST ))).Append(String(DEFINE_CONST_UNICODE("."))) )
- {
- // Error message: "No help available"
- }
-
-
diff --git a/patches/src680/help-support.diff b/patches/src680/help-support.diff
deleted file mode 100644
index f882f3015..000000000
--- a/patches/src680/help-support.diff
+++ /dev/null
@@ -1,46 +0,0 @@
-Index: sfx2/source/appl/appserv.cxx
-===================================================================
-RCS file: /cvs/framework/sfx2/source/appl/appserv.cxx,v
-retrieving revision 1.30.116.1
-diff -u -r1.30.116.1 appserv.cxx
---- sfx2/source/appl/appserv.cxx 20 Jan 2004 10:43:08 -0000 1.30.116.1
-+++ sfx2/source/appl/appserv.cxx 9 Sep 2004 10:45:38 -0000
-@@ -123,6 +123,12 @@
- #ifndef _SV_MSGBOX_HXX
- #include <vcl/msgbox.hxx>
- #endif
-+#ifndef _COM_SUN_STAR_SYSTEM_XSYSTEMSHELLEXECUTE_HPP_
-+#include <com/sun/star/system/XSystemShellExecute.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_SYSTEM_SYSTEMSHELLEXECUTEFLAGS_HPP_
-+#include <com/sun/star/system/SystemShellExecuteFlags.hpp>
-+#endif
- #ifndef _SFXCANCEL_HXX //autogen
- #include <svtools/cancel.hxx>
- #endif
-@@ -467,9 +473,24 @@
- break;
- }
-
-+ case SID_HELP_SUPPORTPAGE:
-+ {
-+ try {
-+ Reference< com::sun::star::system::XSystemShellExecute > xSystemShell
-+ ( ::comphelper::getProcessServiceFactory()->createInstance( DEFINE_CONST_UNICODE("com.sun.star.system.SystemShellExecute" ) ), UNO_QUERY );
-+ if ( xSystemShell.is()) {
-+ rtl::OUString aURI( DEFINE_CONST_UNICODE( "http://www.novell.com/support" ) );
-+ xSystemShell->execute( aURI, ::rtl::OUString(), com::sun::star::system::SystemShellExecuteFlags::DEFAULTS );
-+ }
-+
-+ break;
-+ } catch (const ::com::sun::star::uno::Exception &) {
-+ }
-+ /* drop through on exception */
-+ }
-+
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- case SID_HELPINDEX:
-- case SID_HELP_SUPPORTPAGE:
- {
- Help* pHelp = Application::GetHelp();
- if ( pHelp )
diff --git a/patches/src680/hunspell-build.diff b/patches/src680/hunspell-build.diff
deleted file mode 100644
index 2ed14fc1c..000000000
--- a/patches/src680/hunspell-build.diff
+++ /dev/null
@@ -1,43 +0,0 @@
---- hunspell/prj/build.lst.orig 2005-07-21 11:27:17.000000000 +0200
-+++ hunspell/prj/build.lst 2005-08-09 16:22:37.000000000 +0200
-@@ -1,3 +1,3 @@
--mb hunspell : linguistic NULL
-+mb hunspell : linguistic libhunspell NULL
- mb hunspell usr1 - all hs_mkout NULL
- mb hunspell\source nmake - all hs_libhunspell NULL
---- hunspell/prj/d.lst.old 2005-02-18 02:27:28.000000000 +0100
-+++ hunspell/prj/d.lst 2005-08-09 17:45:44.000000000 +0200
-@@ -1,5 +1 @@
--..\%__SRC%\bin\morphbase* %_DEST%\bin%_EXT%\morphbase*
--..\%__SRC%\lib\ilmorphbase* %_DEST%\lib%_EXT%\ilmorphbase*
--..\%__SRC%\lib\libmorphbase.a %_DEST%\lib%_EXT%\libmorphbase.a
--..\%__SRC%\lib\libmorphbase*.dylib %_DEST%\lib%_EXT%\libmorphbase*.dylib
--..\%__SRC%\lib\libmorphbase*.so %_DEST%\lib%_EXT%\libmorphbase*.so
-+..\%__SRC%\lib\*.so %_DEST%\lib%_EXT%\*.so
---- hunspell/source/makefile.mk.orig 2005-07-21 11:53:51.000000000 +0200
-+++ hunspell/source/makefile.mk 2005-08-09 17:00:24.000000000 +0200
-@@ -71,12 +71,7 @@
-
- .INCLUDE : settings.mk
-
--.IF "$(OS)"!="WNT"
--HUNSPELLLIB=/usr/local/lib/libhunspell.a
--.ELSE
--HUNSPELLLIB=./libhunspell.a
--.ENDIF
--
-+HUNSPELLLIB=-lhunspell
-
- # --- Files --------------------------------------------------------
-
-@@ -111,6 +106,10 @@
- com.sun.star.linguistic2.XThesaurus
-
-
-+.IF "$(SYSTEM_HUNSPELL)" != "YES"
-+SOLARINC += -I$(SOLARVER)/$(UPD)/$(INPATH)/inc/libhunspell
-+.ENDIF
-+
- CXXFLAGS += -I. -I./include -DHAVE_CONFIG_H
- CFLAGSCXX += -I. -I./include -DHAVE_CONFIG_H
- CFLAGSCC += -I. -I./include -DHAVE_CONFIG_H
diff --git a/patches/src680/hunspell-config.diff b/patches/src680/hunspell-config.diff
deleted file mode 100644
index fb7fb137e..000000000
--- a/patches/src680/hunspell-config.diff
+++ /dev/null
@@ -1,85 +0,0 @@
---- config_office/configure.in.old 2005-08-04 21:37:32.000000000 +0200
-+++ config_office/configure.in 2005-08-09 18:25:04.000000000 +0200
-@@ -46,6 +46,9 @@
- AC_ARG_ENABLE(libsn,
- [ --enable-libsn Enables the use of libstartup-notification
- ],,)
-+AC_ARG_ENABLE(hunspell,
-+[ --enable-hunspell Enables the Hunspell UNO component
-+],,)
- AC_ARG_ENABLE(mozilla,
- [ --disable-mozilla OO.o usually includes a strangely hacked up mozilla
- binary for your platform, to build without this
-@@ -267,6 +270,9 @@
- AC_ARG_WITH(system-myspell,
- [ --with-system-myspell Use myspell already on system
- ],,)
-+AC_ARG_WITH(system-hunspell,
-+[ --with-system-hunspell Use libhunspell already on system
-+],,)
- AC_ARG_WITH(system-mythes,
- [ --with-system-mythes Use mythes already on system
- ],,)
-@@ -3252,6 +3258,24 @@
- AC_SUBST(MYSPELL_LIBS)
-
- dnl ===================================================================
-+dnl Check for system hunspell
-+dnl ===================================================================
-+AC_MSG_CHECKING([which libhunspell to use])
-+if test -n "$with_system_hunspell" && test "$with_system_hunspell" != "no"; then
-+ AC_MSG_RESULT([external])
-+ SYSTEM_HUNSPELL=YES
-+ AC_LANG(C++)
-+ AC_CHECK_HEADER(hunspell.hxx, [],
-+ [AC_MSG_ERROR(hunspell headers not found.)], [])
-+ AC_CHECK_LIB(hunspell, main, [],
-+ [ AC_MSG_ERROR(hunspell library not found.) ], [])
-+else
-+ AC_MSG_RESULT([internal])
-+ SYSTEM_HUNSPELL=NO
-+fi
-+AC_SUBST(SYSTEM_HUNSPELL)
-+
-+dnl ===================================================================
- dnl Checking for altlinuxhyph
- dnl ===================================================================
- AC_MSG_CHECKING([which altlinuxhyph to use])
-@@ -3966,6 +3990,19 @@
- AC_SUBST(LIBSN_LIBS)
-
- dnl ===================================================================
-+dnl Test whether to build Hunspell UNO component
-+dnl ===================================================================
-+AC_MSG_CHECKING([whether to build Hunspell UNO component])
-+if test -n "$enable_hunspell" && test "$enable_hunspell" != "no"; then
-+ ENABLE_HUNSPELL="TRUE"
-+ AC_MSG_RESULT([yes])
-+else
-+ ENABLE_HUNSPELL="FALSE"
-+ AC_MSG_RESULT([no])
-+fi
-+AC_SUBST(ENABLE_HUNSPELL)
-+
-+dnl ===================================================================
- dnl Test whether to include Evolution 2 support
- dnl ===================================================================
- AC_MSG_CHECKING([whether to enable evolution 2 support])
---- config_office/set_soenv.in.old 2005-08-04 21:37:32.000000000 +0200
-+++ config_office/set_soenv.in 2005-08-09 18:15:17.000000000 +0200
-@@ -1695,6 +1695,7 @@
- ToFile( "WITH_LIBSN", "@WITH_LIBSN@", "e" );
- ToFile( "LIBSN_CFLAGS", "@LIBSN_CFLAGS@", "e" );
- ToFile( "LIBSN_LIBS", "@LIBSN_LIBS@", "e" );
-+ToFile( "ENABLE_HUNSPELL", "@ENABLE_HUNSPELL@", "e" );
- ToFile( "WITH_OPENLDAP", "@WITH_OPENLDAP@", "e" );
- ToFile( "WITH_MOZILLA", "@WITH_MOZILLA@", "e" );
- ToFile( "SYSTEM_MOZILLA", "@SYSTEM_MOZILLA@", "e" );
-@@ -1766,6 +1767,7 @@
- ToFile( "USE_XINERAMA", "@USE_XINERAMA@", "e" );
- ToFile( "XINERAMA_LINK", "@XINERAMA_LINK@", "e" );
- ToFile( "SYSTEM_MYSPELL", "@SYSTEM_MYSPELL@", "e" );
-+ToFile( "SYSTEM_HUNSPELL", "@SYSTEM_HUNSPELL@", "e" );
- ToFile( "MYSPELL_CFLAGS", "@MYSPELL_CFLAGS@", "e" );
- ToFile( "MYSPELL_LIBS", "@MYSPELL_LIBS@", "e" );
- ToFile( "SYSTEM_HYPH", "@SYSTEM_HYPH@", "e" );
diff --git a/patches/src680/hunspell-lingucomponent-dep.diff b/patches/src680/hunspell-lingucomponent-dep.diff
deleted file mode 100644
index 3272a443b..000000000
--- a/patches/src680/hunspell-lingucomponent-dep.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- lingucomponent/prj/build.lst.old 2004-02-04 13:54:10.000000000 +0100
-+++ lingucomponent/prj/build.lst 2005-08-09 17:49:18.000000000 +0200
-@@ -1,4 +1,4 @@
--lc lingucomponent : linguistic NULL
-+lc lingucomponent : linguistic hunspell NULL
- lc lingucomponent usr1 - all lc_mkout NULL
- lc lingucomponent\source\lingutil nmake - all lc_util NULL
- lc lingucomponent\source\thesaurus\mythes nmake - all lc_mythes lc_util NULL
diff --git a/patches/src680/hunspell-no-hunspell_version.diff b/patches/src680/hunspell-no-hunspell_version.diff
deleted file mode 100644
index b74748ece..000000000
--- a/patches/src680/hunspell-no-hunspell_version.diff
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -urN hunspell-uno-1.1/source/hunspellimp.cxx hunspell-uno-1.2/source/hunspellimp.cxx
---- hunspell/source/hunspellimp.cxx 2005-07-22 23:09:42.000000000 +0200
-+++ hunspell/source/hunspellimp.cxx 2005-08-23 18:16:05.000000000 +0200
-@@ -698,7 +698,7 @@
- throw(RuntimeException)
- {
- MutexGuard aGuard( GetLinguMutex() );
-- return A2OU( "Hunspell Spell Checker and Morphological Analyzer " ) + A2OU( hunspell_version() );
-+ return A2OU( "Hunspell Spell Checker and Morphological Analyzer" );
- }
-
-
diff --git a/patches/src680/hunspell-scp2.diff b/patches/src680/hunspell-scp2.diff
deleted file mode 100644
index f44fc4a2a..000000000
--- a/patches/src680/hunspell-scp2.diff
+++ /dev/null
@@ -1,38 +0,0 @@
---- scp2/source/ooo/file_library_ooo.scp.old 2005-08-04 21:37:32.000000000 +0200
-+++ scp2/source/ooo/file_library_ooo.scp 2005-08-09 17:28:42.000000000 +0200
-@@ -1753,6 +1753,22 @@
- Dir = gid_Dir_Program;
- End
-
-+#ifdef ENABLE_HUNSPELL
-+
-+File gid_File_Lib_Hunspell
-+ TXT_FILE_BODY;
-+ Styles = (PACKED,UNO_COMPONENT);
-+ RegistryID = gid_Starregistry_Services_Rdb;
-+ #ifdef UNX
-+ Name = STRING(CONCAT4(libhunspell,SUPD,DLLSUFFIX,UNXSUFFIX));
-+ #else
-+ Name = "hunspell.dll";
-+ #endif
-+ Dir = gid_Dir_Program;
-+End
-+
-+#endif
-+
- STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Spl, spl)
-
- SPECIAL_UNO_LIB_FILE(gid_File_Lib_Srtrs1,srtrs1)
---- scp2/source/ooo/makefile.mk.old 2005-08-04 21:37:32.000000000 +0200
-+++ scp2/source/ooo/makefile.mk 2005-08-09 17:32:19.000000000 +0200
-@@ -122,6 +122,10 @@
- SCPDEFS+=-DSYSTEM_DB
- .ENDIF
-
-+.IF "$(ENABLE_HUNSPELL)" == "TRUE"
-+SCPDEFS+=-DENABLE_HUNSPELL
-+.ENDIF
-+
- .IF "$(USE_SYSTEM_STL)" == "YES"
- SCPDEFS+=-DUSE_SYSTEM_STL
- .ENDIF
diff --git a/patches/src680/icons-enable-crystal.diff b/patches/src680/icons-enable-crystal.diff
deleted file mode 100644
index a1d28ae30..000000000
--- a/patches/src680/icons-enable-crystal.diff
+++ /dev/null
@@ -1,144 +0,0 @@
---- officecfg/registry/schema/org/openoffice/Office/Common.xcs 16 Nov 2005 09:17:02 -0000 1.110
-+++ officecfg/registry/schema/org/openoffice/Office/Common.xcs 30 Nov 2005 13:19:59 -0000 1.107.122.5
-@@ -5066,11 +5066,11 @@ Dymamic border coloring means that when
- <desc>Industrial - the Gnome default theme</desc>
- </info>
- </enumeration>
-- <!--enumeration oor:value="crystal">
-+ <enumeration oor:value="crystal">
- <info>
- <desc>Crystal - the KDE default theme</desc>
- </info>
-- </enumeration-->
-+ </enumeration>
- </constraints>
- <value>auto</value>
- </prop>
---- solenv/inc/settings.mk
-+++ solenv/inc/settings.mk
-@@ -1093,7 +1093,7 @@
- .ENDIF
-
- # additional image sets
--CUSTOM_IMAGE_SETS=hicontrast industrial
-+CUSTOM_IMAGE_SETS=hicontrast industrial crystal
-
- UNOIDL=unoidl
-
---- svx/source/dialog/optgdlg.cxx 16 Nov 2005 10:03:21 -0000 1.27
-+++ svx/source/dialog/optgdlg.cxx 30 Nov 2005 13:33:35 -0000 1.23.180.5
-@@ -854,7 +854,7 @@ BOOL OfaViewTabPage::FillItemSet( SfxIte
- case 1: eSet = SFX_SYMBOLS_STYLE_DEFAULT; break;
- case 2: eSet = SFX_SYMBOLS_STYLE_HICONTRAST; break;
- case 3: eSet = SFX_SYMBOLS_STYLE_INDUSTRIAL; break;
--// case 4: eSet = SFX_SYMBOLS_STYLE_CRYSTAL; break;
-+ case 4: eSet = SFX_SYMBOLS_STYLE_CRYSTAL; break;
- default:
- DBG_ERROR( "OfaViewTabPage::FillItemSet(): This state of aIconStyleLB should not be possible!" );
- }
-@@ -1041,7 +1041,7 @@ void OfaViewTabPage::Reset( const SfxIte
- case SFX_SYMBOLS_STYLE_DEFAULT: nStyleLB_InitialSelection = 1; break;
- case SFX_SYMBOLS_STYLE_HICONTRAST: nStyleLB_InitialSelection = 2; break;
- case SFX_SYMBOLS_STYLE_INDUSTRIAL: nStyleLB_InitialSelection = 3; break;
--// case SFX_SYMBOLS_STYLE_CRYSTAL: nStyleLB_InitialSelection = 4; break;
-+ case SFX_SYMBOLS_STYLE_CRYSTAL: nStyleLB_InitialSelection = 4; break;
- default: nStyleLB_InitialSelection = 0; break;
- }
- }
---- svx/source/dialog/optgdlg.src 11 Nov 2005 11:50:55 -0000 1.19
-+++ svx/source/dialog/optgdlg.src 30 Nov 2005 13:34:06 -0000 1.16.234.4
-@@ -269,7 +269,7 @@ TabPage OFA_TP_VIEW
- < "Standard" ; > ;
- < "HiContrast" ; > ;
- < "Industrial" ; > ;
--// < "Crystal" ; > ;
-+ < "Crystal" ; > ;
- };
- StringList [ en-US ] =
- {
-@@ -277,7 +277,7 @@ TabPage OFA_TP_VIEW
- < "Default" ; > ;
- < "HiContrast" ; > ;
- < "Industrial" ; > ;
--// < "Crystal" ; > ;
-+ < "Crystal" ; > ;
- };
- };
- CheckBox CB_SYSTEM_FONT
---- vcl/inc/settings.hxx 9 Sep 2005 11:25:28 -0000 1.30
-+++ vcl/inc/settings.hxx 4 Nov 2005 14:56:06 -0000 1.29.210.4
-@@ -522,7 +522,7 @@ private:
- #define STYLE_SYMBOLS_DEFAULT ((ULONG)1)
- #define STYLE_SYMBOLS_HICONTRAST ((ULONG)2)
- #define STYLE_SYMBOLS_INDUSTRIAL ((ULONG)3)
--//#define STYLE_SYMBOLS_CRYSTAL ((ULONG)4)
-+#define STYLE_SYMBOLS_CRYSTAL ((ULONG)4)
-
- #define STYLE_CURSOR_NOBLINKTIME ((ULONG)0xFFFFFFFF)
-
---- vcl/source/app/settings.cxx 9 Sep 2005 11:41:53 -0000 1.54
-+++ vcl/source/app/settings.cxx 4 Nov 2005 14:56:07 -0000 1.53.182.4
-@@ -721,7 +721,7 @@ void StyleSettings::Set3DColors( const C
- case STYLE_SYMBOLS_DEFAULT: return ::rtl::OUString::createFromAscii( "default" );
- case STYLE_SYMBOLS_HICONTRAST: return ::rtl::OUString::createFromAscii( "hicontrast" );
- case STYLE_SYMBOLS_INDUSTRIAL: return ::rtl::OUString::createFromAscii( "industrial" );
--// case STYLE_SYMBOLS_CRYSTAL: return ::rtl::OUString::createFromAscii( "crystal" );
-+ case STYLE_SYMBOLS_CRYSTAL: return ::rtl::OUString::createFromAscii( "crystal" );
- }
-
- return ::rtl::OUString::createFromAscii( "auto" );
-@@ -737,8 +737,8 @@ void StyleSettings::Set3DColors( const C
- return STYLE_SYMBOLS_HICONTRAST;
- else if ( rName == ::rtl::OUString::createFromAscii( "industrial" ) )
- return STYLE_SYMBOLS_INDUSTRIAL;
--// else if ( rName == ::rtl::OUString::createFromAscii( "crystal" ) )
--// return STYLE_SYMBOLS_CRYSTAL;
-+ else if ( rName == ::rtl::OUString::createFromAscii( "crystal" ) )
-+ return STYLE_SYMBOLS_CRYSTAL;
-
- return STYLE_SYMBOLS_AUTO;
- }
-@@ -760,8 +760,8 @@ void StyleSettings::Set3DColors( const C
-
- if( rDesktopEnvironment.equalsIgnoreAsciiCaseAscii( "gnome" ) )
- snDesktopStyle = STYLE_SYMBOLS_INDUSTRIAL;
--// else if( rDesktopEnvironment.equalsIgnoreAsciiCaseAscii( "kde" ) )
--// snDesktopStyle = STYLE_SYMBOLS_CRYSTAL;
-+ else if( rDesktopEnvironment.equalsIgnoreAsciiCaseAscii( "kde" ) )
-+ snDesktopStyle = STYLE_SYMBOLS_CRYSTAL;
-
- sbDesktopChecked = true;
- }
---- svtools/inc/imgdef.hxx 8 Sep 2005 09:42:15 -0000 1.3
-+++ svtools/inc/imgdef.hxx 1 Nov 2005 21:37:38 -0000 1.2.890.4
-@@ -48,8 +48,8 @@
- SFX_SYMBOLS_STYLE_AUTO,
- SFX_SYMBOLS_STYLE_DEFAULT,
- SFX_SYMBOLS_STYLE_HICONTRAST,
-- SFX_SYMBOLS_STYLE_INDUSTRIAL
--// SFX_SYMBOLS_STYLE_CRYSTAL
-+ SFX_SYMBOLS_STYLE_INDUSTRIAL,
-+ SFX_SYMBOLS_STYLE_CRYSTAL
- };
-
- #define SFX_TOOLBOX_CHANGESYMBOLSET 0x0001
---- svtools/source/config/miscopt.cxx 11 Nov 2005 13:51:22 -0000 1.14
-+++ svtools/source/config/miscopt.cxx 2 Dec 2005 10:05:01 -0000 1.11.126.8
-@@ -285,7 +285,7 @@ class SvtMiscOptions_Impl : public Confi
- case STYLE_SYMBOLS_DEFAULT: return SFX_SYMBOLS_STYLE_DEFAULT;
- case STYLE_SYMBOLS_HICONTRAST: return SFX_SYMBOLS_STYLE_HICONTRAST;
- case STYLE_SYMBOLS_INDUSTRIAL: return SFX_SYMBOLS_STYLE_INDUSTRIAL;
--// case STYLE_SYMBOLS_CRYSTAL: return SFX_SYMBOLS_STYLE_CRYSTAL;
-+ case STYLE_SYMBOLS_CRYSTAL: return SFX_SYMBOLS_STYLE_CRYSTAL;
- }
-
- return SFX_SYMBOLS_STYLE_AUTO;
-@@ -299,7 +299,7 @@ class SvtMiscOptions_Impl : public Confi
- case SFX_SYMBOLS_STYLE_DEFAULT: return STYLE_SYMBOLS_DEFAULT;
- case SFX_SYMBOLS_STYLE_HICONTRAST: return STYLE_SYMBOLS_HICONTRAST;
- case SFX_SYMBOLS_STYLE_INDUSTRIAL: return STYLE_SYMBOLS_INDUSTRIAL;
--// case SFX_SYMBOLS_STYLE_CRYSTAL: return STYLE_SYMBOLS_CRYSTAL;
-+ case SFX_SYMBOLS_STYLE_CRYSTAL: return STYLE_SYMBOLS_CRYSTAL;
- }
-
- return STYLE_SYMBOLS_AUTO;
diff --git a/patches/src680/idl-doc-fixes.diff b/patches/src680/idl-doc-fixes.diff
deleted file mode 100644
index e0dfc455b..000000000
--- a/patches/src680/idl-doc-fixes.diff
+++ /dev/null
@@ -1,84 +0,0 @@
-Index: offapi/com/sun/star/i18n/LocaleDataItem.idl
-===================================================================
-RCS file: /cvs/api/offapi/com/sun/star/i18n/LocaleDataItem.idl,v
-retrieving revision 1.3
-diff -u -p -r1.3 LocaleDataItem.idl
---- offapi/com/sun/star/i18n/LocaleDataItem.idl 3 Jun 2004 20:35:52 -0000 1.3
-+++ offapi/com/sun/star/i18n/LocaleDataItem.idl 22 Jul 2005 19:52:39 -0000
-@@ -76,7 +76,7 @@ module com { module sun { module star {
-
- published struct LocaleDataItem
- {
-- /// internal ID string, not unique, not meaningful to the outer world
-+ /// internal ID string, not unique, not meaningful to the outer world
- string unoID;
- /// date separator, for example, <b>"/"</b> or <b>"."</b> or <b>"-"</b>
- string dateSeparator;
-@@ -98,12 +98,12 @@ published struct LocaleDataItem
- string doubleQuotationStart;
- /// double quotation mark end
- string doubleQuotationEnd;
-- /// measurement system, <b>"metric"</b> or <b>"us"</b>
-+ /// time AM symbol, for example, <b>"AM"</b> or <b>"am"</b>
- string timeAM;
-- /// time AM symbol, for example, <b>"AM"</b> or <b>"am"</b>
-- string timePM;
- /// time PM symbol, for example, <b>"PM"</b> or <b>"pm"</b>
-- string measurementSystem;
-+ string timePM;
-+ /// measurement system, <b>"metric"</b> or <b>"us"</b>
-+ string measurementSystem;
- /// long date day of week separator, for example, <b>", "</b>
- string LongDateDayOfWeekSeparator;
- /// long date day separator, for example, <b>", "</b>
-Index: ./offapi/com/sun/star/util/XSearchable.idl
-===================================================================
-RCS file: /cvs/api/offapi/com/sun/star/util/XSearchable.idl,v
-retrieving revision 1.11
-diff -u -p -r1.11 XSearchable.idl
---- ./offapi/com/sun/star/util/XSearchable.idl 4 Jun 2004 02:10:09 -0000 1.11
-+++ ./offapi/com/sun/star/util/XSearchable.idl 22 Jul 2005 19:20:41 -0000
-@@ -91,9 +91,9 @@ module com { module sun { module star
- xSearchDescr = xDocument.createSearchDescriptor()
- xSearchDescr.SearchString = "to look for"
- xSearchDescr.SearchCaseSensitive = <TRUE/>
-- xSearchDescr.SearchWholeWords = <TRUE/>
-+ xSearchDescr.SearchWords = <TRUE/>
- xFound = xDocument.findFirst( xSearchDescr )
-- do while xFound
-+ do while Not IsNull(xFound)
- xFound.CharWeight = CharWeight_BOLD
- xFound = xDocument.findNext( xFound.End, xSearchDescr )
- loop
-Index: offapi/com/sun/star/document/FilterFactory.idl
-===================================================================
-RCS file: /cvs/api/offapi/com/sun/star/document/FilterFactory.idl,v
-retrieving revision 1.6
-diff -u -p -r1.6 FilterFactory.idl
---- offapi/com/sun/star/document/FilterFactory.idl 3 Jun 2004 18:42:14 -0000 1.6
-+++ offapi/com/sun/star/document/FilterFactory.idl 22 Jul 2005 19:58:10 -0000
-@@ -140,7 +140,7 @@ published service FilterFactory
- The new prosposed implementation will throw an <type scope="com::sun::star::container">NoSuchElementException</type>
- if the first parameter of createInstance() or createInstanceWithArguments() does not match to a valid container (means
- filter) item. Further it will throw an <type scope="com::sun::star::lang">IllegalArgumentException</type> if the optional
-- parameter "FilterName" could be detected inside the argument list of call createInstanceWithArguments().
-+ parameter "FilterName" could not be detected inside the argument list of call createInstanceWithArguments().
- </p>
-
- <p>
-Index: offapi/com/sun/star/presentation/PresentationView.idl
-===================================================================
-RCS file: /cvs/api/offapi/com/sun/star/presentation/PresentationView.idl,v
-retrieving revision 1.3
-diff -u -p -r1.3 PresentationView.idl
---- offapi/com/sun/star/presentation/PresentationView.idl 3 Jun 2004 21:27:56 -0000 1.3
-+++ offapi/com/sun/star/presentation/PresentationView.idl 22 Jul 2005 20:05:40 -0000
-@@ -92,7 +92,7 @@
-
- //=============================================================================
-
--/** This componend integrates a view to a slide show of a presentation
-+/** This component integrates a view to a slide show of a presentation
- document into the desktop.
- */
- published service PresentationView
diff --git a/patches/src680/installer-strip-optional.diff b/patches/src680/installer-strip-optional.diff
deleted file mode 100644
index 5aff68700..000000000
--- a/patches/src680/installer-strip-optional.diff
+++ /dev/null
@@ -1,18 +0,0 @@
---- solenv/bin/modules/installer/parameter.pm.old 2005-07-18 16:03:40.000000000 +0200
-+++ solenv/bin/modules/installer/parameter.pm 2005-08-17 19:11:55.000000000 +0200
-@@ -98,6 +98,7 @@
- -format: Package format
- -debian: Create Debian packages for Linux
- -dontunzip: do not unzip all files with flag ARCHIVE
-+-dontstrip : do not strip binaries, keep the debugging symbols
- -dontcallepm : do not call epm to create install sets (opt., non-Windows only)
- -ispatchedepm : Usage of a patched (non-standard) epm (opt., non-Windows only)
- -packagelist : file, containing a list of module gids (opt., non-Windows only)
-@@ -181,6 +182,7 @@
- elsif ($param eq "-u") { $installer::globals::unpackpath = shift(@ARGV); }
- elsif ($param eq "-i") { $installer::globals::rootpath = shift(@ARGV); }
- elsif ($param eq "-dontcallepm") { $installer::globals::call_epm = 0; }
-+ elsif ($param eq "-dontstrip") { $installer::globals::strip = 0; }
- elsif ($param eq "-msitemplate") { $installer::globals::idttemplatepath = shift(@ARGV); }
- elsif ($param eq "-msilanguage") { $installer::globals::idtlanguagepath = shift(@ARGV); }
- elsif ($param eq "-patchinc") { $installer::globals::patchincludepath = shift(@ARGV); }
diff --git a/patches/src680/internal-nss-xmlsecurity-libnss.diff b/patches/src680/internal-nss-xmlsecurity-libnss.diff
deleted file mode 100644
index f8b131b7b..000000000
--- a/patches/src680/internal-nss-xmlsecurity-libnss.diff
+++ /dev/null
@@ -1,87981 +0,0 @@
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/alg1485.c 2004-12-13 13:06:46.688399376 +0100
-@@ -0,0 +1,1168 @@
-+/* alg1485.c - implementation of RFCs 1485, 1779 and 2253.
-+ *
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#include "prprf.h"
-+#include "cert.h"
-+#include "xconst.h"
-+#include "genname.h"
-+#include "secitem.h"
-+#include "secerr.h"
-+
-+/* for better RFC 2253 compliance. */
-+#define NSS_STRICT_RFC_2253_VALUES_ONLY 1
-+
-+struct NameToKind {
-+ const char * name;
-+ unsigned int maxLen; /* max bytes in UTF8 encoded string value */
-+ SECOidTag kind;
-+};
-+
-+/* Add new entries to this table, and maybe to function CERT_ParseRFC1485AVA */
-+static const struct NameToKind name2kinds[] = {
-+/* keywords given in RFC 2253 */
-+ { "CN", 64, SEC_OID_AVA_COMMON_NAME },
-+ { "L", 128, SEC_OID_AVA_LOCALITY },
-+ { "ST", 128, SEC_OID_AVA_STATE_OR_PROVINCE },
-+ { "O", 64, SEC_OID_AVA_ORGANIZATION_NAME },
-+ { "OU", 64, SEC_OID_AVA_ORGANIZATIONAL_UNIT_NAME },
-+ { "C", 2, SEC_OID_AVA_COUNTRY_NAME },
-+ { "STREET", 128, SEC_OID_AVA_STREET_ADDRESS },
-+ { "DC", 128, SEC_OID_AVA_DC },
-+ { "UID", 256, SEC_OID_RFC1274_UID },
-+
-+#ifndef NSS_STRICT_RFC_2253_KEYWORDS_ONLY
-+/* NSS legacy keywords */
-+ { "dnQualifier", 32767, SEC_OID_AVA_DN_QUALIFIER },
-+ { "E", 128, SEC_OID_PKCS9_EMAIL_ADDRESS },
-+ { "MAIL", 256, SEC_OID_RFC1274_MAIL },
-+
-+#ifndef NSS_LEGACY_KEYWORDS_ONLY
-+/* values from draft-ietf-ldapbis-user-schema-05 */
-+ { "SN", 64, SEC_OID_AVA_SURNAME },
-+ { "serialNumber", 64, SEC_OID_AVA_SERIAL_NUMBER },
-+ { "title", 64, SEC_OID_AVA_TITLE },
-+ { "postalAddress", 128, SEC_OID_AVA_POSTAL_ADDRESS },
-+ { "postalCode", 40, SEC_OID_AVA_POSTAL_CODE },
-+ { "postOfficeBox", 40, SEC_OID_AVA_POST_OFFICE_BOX },
-+ { "givenName", 64, SEC_OID_AVA_GIVEN_NAME },
-+ { "initials", 64, SEC_OID_AVA_INITIALS },
-+ { "generationQualifier", 64, SEC_OID_AVA_GENERATION_QUALIFIER },
-+ { "houseIdentifier", 64, SEC_OID_AVA_HOUSE_IDENTIFIER },
-+#if 0 /* removed. Not yet in any IETF draft or RFC. */
-+ { "pseudonym", 64, SEC_OID_AVA_PSEUDONYM },
-+#endif
-+#endif
-+#endif
-+ { 0, 256, SEC_OID_UNKNOWN }
-+};
-+
-+#define C_DOUBLE_QUOTE '\042'
-+
-+#define C_BACKSLASH '\134'
-+
-+#define C_EQUAL '='
-+
-+#define OPTIONAL_SPACE(c) \
-+ (((c) == ' ') || ((c) == '\r') || ((c) == '\n'))
-+
-+#define SPECIAL_CHAR(c) \
-+ (((c) == ',') || ((c) == '=') || ((c) == C_DOUBLE_QUOTE) || \
-+ ((c) == '\r') || ((c) == '\n') || ((c) == '+') || \
-+ ((c) == '<') || ((c) == '>') || ((c) == '#') || \
-+ ((c) == ';') || ((c) == C_BACKSLASH))
-+
-+
-+#define IS_PRINTABLE(c) \
-+ ((((c) >= 'a') && ((c) <= 'z')) || \
-+ (((c) >= 'A') && ((c) <= 'Z')) || \
-+ (((c) >= '0') && ((c) <= '9')) || \
-+ ((c) == ' ') || \
-+ ((c) == '\'') || \
-+ ((c) == '\050') || /* ( */ \
-+ ((c) == '\051') || /* ) */ \
-+ (((c) >= '+') && ((c) <= '/')) || /* + , - . / */ \
-+ ((c) == ':') || \
-+ ((c) == '=') || \
-+ ((c) == '?'))
-+
-+int
-+cert_AVAOidTagToMaxLen(SECOidTag tag)
-+{
-+ const struct NameToKind *n2k = name2kinds;
-+
-+ while (n2k->kind != tag && n2k->kind != SEC_OID_UNKNOWN) {
-+ ++n2k;
-+ }
-+ return (n2k->kind != SEC_OID_UNKNOWN) ? n2k->maxLen : -1;
-+}
-+
-+static PRBool
-+IsPrintable(unsigned char *data, unsigned len)
-+{
-+ unsigned char ch, *end;
-+
-+ end = data + len;
-+ while (data < end) {
-+ ch = *data++;
-+ if (!IS_PRINTABLE(ch)) {
-+ return PR_FALSE;
-+ }
-+ }
-+ return PR_TRUE;
-+}
-+
-+static PRBool
-+Is7Bit(unsigned char *data, unsigned len)
-+{
-+ unsigned char ch, *end;
-+
-+ end = data + len;
-+ while (data < end) {
-+ ch = *data++;
-+ if ((ch & 0x80)) {
-+ return PR_FALSE;
-+ }
-+ }
-+ return PR_TRUE;
-+}
-+
-+static void
-+skipSpace(char **pbp, char *endptr)
-+{
-+ char *bp = *pbp;
-+ while (bp < endptr && OPTIONAL_SPACE(*bp)) {
-+ bp++;
-+ }
-+ *pbp = bp;
-+}
-+
-+static SECStatus
-+scanTag(char **pbp, char *endptr, char *tagBuf, int tagBufSize)
-+{
-+ char *bp, *tagBufp;
-+ int taglen;
-+
-+ PORT_Assert(tagBufSize > 0);
-+
-+ /* skip optional leading space */
-+ skipSpace(pbp, endptr);
-+ if (*pbp == endptr) {
-+ /* nothing left */
-+ return SECFailure;
-+ }
-+
-+ /* fill tagBuf */
-+ taglen = 0;
-+ bp = *pbp;
-+ tagBufp = tagBuf;
-+ while (bp < endptr && !OPTIONAL_SPACE(*bp) && (*bp != C_EQUAL)) {
-+ if (++taglen >= tagBufSize) {
-+ *pbp = bp;
-+ return SECFailure;
-+ }
-+ *tagBufp++ = *bp++;
-+ }
-+ /* null-terminate tagBuf -- guaranteed at least one space left */
-+ *tagBufp++ = 0;
-+ *pbp = bp;
-+
-+ /* skip trailing spaces till we hit something - should be an equal sign */
-+ skipSpace(pbp, endptr);
-+ if (*pbp == endptr) {
-+ /* nothing left */
-+ return SECFailure;
-+ }
-+ if (**pbp != C_EQUAL) {
-+ /* should be an equal sign */
-+ return SECFailure;
-+ }
-+ /* skip over the equal sign */
-+ (*pbp)++;
-+
-+ return SECSuccess;
-+}
-+
-+static SECStatus
-+scanVal(char **pbp, char *endptr, char *valBuf, int valBufSize)
-+{
-+ char *bp, *valBufp;
-+ int vallen;
-+ PRBool isQuoted;
-+
-+ PORT_Assert(valBufSize > 0);
-+
-+ /* skip optional leading space */
-+ skipSpace(pbp, endptr);
-+ if(*pbp == endptr) {
-+ /* nothing left */
-+ return SECFailure;
-+ }
-+
-+ bp = *pbp;
-+
-+ /* quoted? */
-+ if (*bp == C_DOUBLE_QUOTE) {
-+ isQuoted = PR_TRUE;
-+ /* skip over it */
-+ bp++;
-+ } else {
-+ isQuoted = PR_FALSE;
-+ }
-+
-+ valBufp = valBuf;
-+ vallen = 0;
-+ while (bp < endptr) {
-+ char c = *bp;
-+ if (c == C_BACKSLASH) {
-+ /* escape character */
-+ bp++;
-+ if (bp >= endptr) {
-+ /* escape charater must appear with paired char */
-+ *pbp = bp;
-+ return SECFailure;
-+ }
-+ } else if (!isQuoted && SPECIAL_CHAR(c)) {
-+ /* unescaped special and not within quoted value */
-+ break;
-+ } else if (c == C_DOUBLE_QUOTE) {
-+ /* reached unescaped double quote */
-+ break;
-+ }
-+ /* append character */
-+ vallen++;
-+ if (vallen >= valBufSize) {
-+ *pbp = bp;
-+ return SECFailure;
-+ }
-+ *valBufp++ = *bp++;
-+ }
-+
-+ /* stip trailing spaces from unquoted values */
-+ if (!isQuoted) {
-+ if (valBufp > valBuf) {
-+ valBufp--;
-+ while ((valBufp > valBuf) && OPTIONAL_SPACE(*valBufp)) {
-+ valBufp--;
-+ }
-+ valBufp++;
-+ }
-+ }
-+
-+ if (isQuoted) {
-+ /* insist that we stopped on a double quote */
-+ if (*bp != C_DOUBLE_QUOTE) {
-+ *pbp = bp;
-+ return SECFailure;
-+ }
-+ /* skip over the quote and skip optional space */
-+ bp++;
-+ skipSpace(&bp, endptr);
-+ }
-+
-+ *pbp = bp;
-+
-+ if (valBufp == valBuf) {
-+ /* empty value -- not allowed */
-+ return SECFailure;
-+ }
-+
-+ /* null-terminate valBuf -- guaranteed at least one space left */
-+ *valBufp++ = 0;
-+
-+ return SECSuccess;
-+}
-+
-+CERTAVA *
-+CERT_ParseRFC1485AVA(PRArenaPool *arena, char **pbp, char *endptr,
-+ PRBool singleAVA)
-+{
-+ CERTAVA *a;
-+ const struct NameToKind *n2k;
-+ int vt;
-+ int valLen;
-+ char *bp;
-+
-+ char tagBuf[32];
-+ char valBuf[384];
-+
-+ if (scanTag(pbp, endptr, tagBuf, sizeof(tagBuf)) == SECFailure ||
-+ scanVal(pbp, endptr, valBuf, sizeof(valBuf)) == SECFailure) {
-+ PORT_SetError(SEC_ERROR_INVALID_AVA);
-+ return 0;
-+ }
-+
-+ /* insist that if we haven't finished we've stopped on a separator */
-+ bp = *pbp;
-+ if (bp < endptr) {
-+ if (singleAVA || (*bp != ',' && *bp != ';')) {
-+ PORT_SetError(SEC_ERROR_INVALID_AVA);
-+ *pbp = bp;
-+ return 0;
-+ }
-+ /* ok, skip over separator */
-+ bp++;
-+ }
-+ *pbp = bp;
-+
-+ for (n2k = name2kinds; n2k->name; n2k++) {
-+ if (PORT_Strcasecmp(n2k->name, tagBuf) == 0) {
-+ valLen = PORT_Strlen(valBuf);
-+ if (n2k->kind == SEC_OID_AVA_COUNTRY_NAME) {
-+ vt = SEC_ASN1_PRINTABLE_STRING;
-+ if (valLen != 2) {
-+ PORT_SetError(SEC_ERROR_INVALID_AVA);
-+ return 0;
-+ }
-+ if (!IsPrintable((unsigned char*) valBuf, 2)) {
-+ PORT_SetError(SEC_ERROR_INVALID_AVA);
-+ return 0;
-+ }
-+ } else if ((n2k->kind == SEC_OID_PKCS9_EMAIL_ADDRESS) ||
-+ (n2k->kind == SEC_OID_RFC1274_MAIL)) {
-+ vt = SEC_ASN1_IA5_STRING;
-+ } else {
-+ /* Hack -- for rationale see X.520 DirectoryString defn */
-+ if (IsPrintable((unsigned char*)valBuf, valLen)) {
-+ vt = SEC_ASN1_PRINTABLE_STRING;
-+ } else if (Is7Bit((unsigned char *)valBuf, valLen)) {
-+ vt = SEC_ASN1_T61_STRING;
-+ } else {
-+ /* according to RFC3280, UTF8String is preferred encoding */
-+ vt = SEC_ASN1_UTF8_STRING;
-+ }
-+ }
-+ a = CERT_CreateAVA(arena, n2k->kind, vt, (char *) valBuf);
-+ return a;
-+ }
-+ }
-+ /* matched no kind -- invalid tag */
-+ PORT_SetError(SEC_ERROR_INVALID_AVA);
-+ return 0;
-+}
-+
-+static CERTName *
-+ParseRFC1485Name(char *buf, int len)
-+{
-+ SECStatus rv;
-+ CERTName *name;
-+ char *bp, *e;
-+ CERTAVA *ava;
-+ CERTRDN *rdn;
-+
-+ name = CERT_CreateName(NULL);
-+ if (name == NULL) {
-+ return NULL;
-+ }
-+
-+ e = buf + len;
-+ bp = buf;
-+ while (bp < e) {
-+ ava = CERT_ParseRFC1485AVA(name->arena, &bp, e, PR_FALSE);
-+ if (ava == 0) goto loser;
-+ rdn = CERT_CreateRDN(name->arena, ava, 0);
-+ if (rdn == 0) goto loser;
-+ rv = CERT_AddRDN(name, rdn);
-+ if (rv) goto loser;
-+ skipSpace(&bp, e);
-+ }
-+
-+ if (name->rdns[0] == 0) {
-+ /* empty name -- illegal */
-+ goto loser;
-+ }
-+
-+ /* Reverse order of RDNS to comply with RFC */
-+ {
-+ CERTRDN **firstRdn;
-+ CERTRDN **lastRdn;
-+ CERTRDN *tmp;
-+
-+ /* get first one */
-+ firstRdn = name->rdns;
-+
-+ /* find last one */
-+ lastRdn = name->rdns;
-+ while (*lastRdn) lastRdn++;
-+ lastRdn--;
-+
-+ /* reverse list */
-+ for ( ; firstRdn < lastRdn; firstRdn++, lastRdn--) {
-+ tmp = *firstRdn;
-+ *firstRdn = *lastRdn;
-+ *lastRdn = tmp;
-+ }
-+ }
-+
-+ /* return result */
-+ return name;
-+
-+ loser:
-+ CERT_DestroyName(name);
-+ return NULL;
-+}
-+
-+CERTName *
-+CERT_AsciiToName(char *string)
-+{
-+ CERTName *name;
-+ name = ParseRFC1485Name(string, PORT_Strlen(string));
-+ return name;
-+}
-+
-+/************************************************************************/
-+
-+typedef struct stringBufStr {
-+ char *buffer;
-+ unsigned offset;
-+ unsigned size;
-+} stringBuf;
-+
-+#define DEFAULT_BUFFER_SIZE 200
-+
-+static SECStatus
-+AppendStr(stringBuf *bufp, char *str)
-+{
-+ char *buf;
-+ unsigned bufLen, bufSize, len;
-+ int size = 0;
-+
-+ /* Figure out how much to grow buf by (add in the '\0') */
-+ buf = bufp->buffer;
-+ bufLen = bufp->offset;
-+ len = PORT_Strlen(str);
-+ bufSize = bufLen + len;
-+ if (!buf) {
-+ bufSize++;
-+ size = PR_MAX(DEFAULT_BUFFER_SIZE,bufSize*2);
-+ buf = (char *) PORT_Alloc(size);
-+ bufp->size = size;
-+ } else if (bufp->size < bufSize) {
-+ size = bufSize*2;
-+ buf =(char *) PORT_Realloc(buf,size);
-+ bufp->size = size;
-+ }
-+ if (!buf) {
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ return SECFailure;
-+ }
-+ bufp->buffer = buf;
-+ bufp->offset = bufSize;
-+
-+ /* Concatenate str onto buf */
-+ buf = buf + bufLen;
-+ if (bufLen) buf--; /* stomp on old '\0' */
-+ PORT_Memcpy(buf, str, len+1); /* put in new null */
-+ return SECSuccess;
-+}
-+
-+SECStatus
-+CERT_RFC1485_EscapeAndQuote(char *dst, int dstlen, char *src, int srclen)
-+{
-+ int i, reqLen=0;
-+ char *d = dst;
-+ PRBool needsQuoting = PR_FALSE;
-+ char lastC = 0;
-+
-+ /* need to make an initial pass to determine if quoting is needed */
-+ for (i = 0; i < srclen; i++) {
-+ char c = src[i];
-+ reqLen++;
-+ if (!needsQuoting && (SPECIAL_CHAR(c) ||
-+ (OPTIONAL_SPACE(c) && OPTIONAL_SPACE(lastC)))) {
-+ /* entirety will need quoting */
-+ needsQuoting = PR_TRUE;
-+ }
-+ if (c == C_DOUBLE_QUOTE || c == C_BACKSLASH) {
-+ /* this char will need escaping */
-+ reqLen++;
-+ }
-+ lastC = c;
-+ }
-+ /* if it begins or ends in optional space it needs quoting */
-+ if (!needsQuoting && srclen > 0 &&
-+ (OPTIONAL_SPACE(src[srclen-1]) || OPTIONAL_SPACE(src[0]))) {
-+ needsQuoting = PR_TRUE;
-+ }
-+
-+ if (needsQuoting) reqLen += 2;
-+
-+ /* space for terminal null */
-+ reqLen++;
-+
-+ if (reqLen > dstlen) {
-+ PORT_SetError(SEC_ERROR_OUTPUT_LEN);
-+ return SECFailure;
-+ }
-+
-+ d = dst;
-+ if (needsQuoting) *d++ = C_DOUBLE_QUOTE;
-+ for (i = 0; i < srclen; i++) {
-+ char c = src[i];
-+ if (c == C_DOUBLE_QUOTE || c == C_BACKSLASH) {
-+ /* escape it */
-+ *d++ = C_BACKSLASH;
-+ }
-+ *d++ = c;
-+ }
-+ if (needsQuoting) *d++ = C_DOUBLE_QUOTE;
-+ *d++ = 0;
-+ return SECSuccess;
-+}
-+
-+/* convert an OID to dotted-decimal representation */
-+/* Returns a string that must be freed with PR_smprintf_free(), */
-+char *
-+CERT_GetOidString(const SECItem *oid)
-+{
-+ PRUint8 *end;
-+ PRUint8 *d;
-+ PRUint8 *e;
-+ char *a = NULL;
-+ char *b;
-+
-+#define MAX_OID_LEN 1024 /* bytes */
-+
-+ if (oid->len > MAX_OID_LEN) {
-+ PORT_SetError(SEC_ERROR_INPUT_LEN);
-+ return NULL;
-+ }
-+
-+ /* d will point to the next sequence of bytes to decode */
-+ d = (PRUint8 *)oid->data;
-+ /* end points to one past the legitimate data */
-+ end = &d[ oid->len ];
-+
-+ /*
-+ * Check for our pseudo-encoded single-digit OIDs
-+ */
-+ if( (*d == 0x80) && (2 == oid->len) ) {
-+ /* Funky encoding. The second byte is the number */
-+ a = PR_smprintf("%lu", (PRUint32)d[1]);
-+ if( (char *)NULL == a ) {
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ return (char *)NULL;
-+ }
-+ return a;
-+ }
-+
-+ for( ; d < end; d = &e[1] ) {
-+
-+ for( e = d; e < end; e++ ) {
-+ if( 0 == (*e & 0x80) ) {
-+ break;
-+ }
-+ }
-+
-+ if( ((e-d) > 4) || (((e-d) == 4) && (*d & 0x70)) ) {
-+ /* More than a 32-bit number */
-+ } else {
-+ PRUint32 n = 0;
-+
-+ switch( e-d ) {
-+ case 4:
-+ n |= ((PRUint32)(e[-4] & 0x0f)) << 28;
-+ case 3:
-+ n |= ((PRUint32)(e[-3] & 0x7f)) << 21;
-+ case 2:
-+ n |= ((PRUint32)(e[-2] & 0x7f)) << 14;
-+ case 1:
-+ n |= ((PRUint32)(e[-1] & 0x7f)) << 7;
-+ case 0:
-+ n |= ((PRUint32)(e[-0] & 0x7f)) ;
-+ }
-+
-+ if( (char *)NULL == a ) {
-+ /* This is the first number.. decompose it */
-+ PRUint32 one = PR_MIN(n/40, 2); /* never > 2 */
-+ PRUint32 two = n - one * 40;
-+
-+ a = PR_smprintf("OID.%lu.%lu", one, two);
-+ if( (char *)NULL == a ) {
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ return (char *)NULL;
-+ }
-+ } else {
-+ b = PR_smprintf("%s.%lu", a, n);
-+ if( (char *)NULL == b ) {
-+ PR_smprintf_free(a);
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ return (char *)NULL;
-+ }
-+
-+ PR_smprintf_free(a);
-+ a = b;
-+ }
-+ }
-+ }
-+
-+ return a;
-+}
-+
-+/* convert DER-encoded hex to a string */
-+static SECItem *
-+get_hex_string(SECItem *data)
-+{
-+ SECItem *rv;
-+ unsigned int i, j;
-+ static const char hex[] = { "0123456789ABCDEF" };
-+
-+ /* '#' + 2 chars per octet + terminator */
-+ rv = SECITEM_AllocItem(NULL, NULL, data->len*2 + 2);
-+ if (!rv) {
-+ return NULL;
-+ }
-+ rv->data[0] = '#';
-+ rv->len = 1 + 2 * data->len;
-+ for (i=0; i<data->len; i++) {
-+ j = data->data[i];
-+ rv->data[2*i+1] = hex[j >> 4];
-+ rv->data[2*i+2] = hex[j & 15];
-+ }
-+ rv->data[rv->len] = 0;
-+ return rv;
-+}
-+
-+static SECStatus
-+AppendAVA(stringBuf *bufp, CERTAVA *ava)
-+{
-+ const struct NameToKind *n2k = name2kinds;
-+ const char *tagName;
-+ unsigned len, maxLen;
-+ int tag;
-+ SECStatus rv;
-+ SECItem *avaValue = NULL;
-+ char *unknownTag = NULL;
-+ PRBool hexValue = PR_FALSE;
-+ char tmpBuf[384];
-+
-+ tag = CERT_GetAVATag(ava);
-+ while (n2k->kind != tag && n2k->kind != SEC_OID_UNKNOWN) {
-+ ++n2k;
-+ }
-+ if (n2k->kind != SEC_OID_UNKNOWN) {
-+ tagName = n2k->name;
-+ } else {
-+ /* handle unknown attribute types per RFC 2253 */
-+ tagName = unknownTag = CERT_GetOidString(&ava->type);
-+ if (!tagName)
-+ return SECFailure;
-+ }
-+ maxLen = n2k->maxLen;
-+
-+#ifdef NSS_STRICT_RFC_2253_VALUES_ONLY
-+ if (!unknownTag)
-+#endif
-+ avaValue = CERT_DecodeAVAValue(&ava->value);
-+ if(!avaValue) {
-+ /* the attribute value is not recognized, get the hex value */
-+ avaValue = get_hex_string(&ava->value);
-+ if(!avaValue) {
-+ if (unknownTag) PR_smprintf_free(unknownTag);
-+ return SECFailure;
-+ }
-+ hexValue = PR_TRUE;
-+ }
-+
-+ /* Check value length */
-+ if (avaValue->len > maxLen + 3) { /* must be room for "..." */
-+ /* avaValue is a UTF8 string, freshly allocated and returned to us
-+ ** by CERT_DecodeAVAValue just above, so we can modify it here.
-+ ** See if we're in the middle of a multi-byte UTF8 character.
-+ */
-+ while (((avaValue->data[maxLen] & 0xc0) == 0x80) && maxLen > 0) {
-+ maxLen--;
-+ }
-+ /* add elipsis to signify truncation. */
-+ avaValue->data[maxLen++] = '.';
-+ avaValue->data[maxLen++] = '.';
-+ avaValue->data[maxLen++] = '.';
-+ avaValue->data[maxLen] = 0;
-+ avaValue->len = maxLen;
-+ }
-+
-+ len = PORT_Strlen(tagName);
-+ if (len+1 > sizeof(tmpBuf)) {
-+ if (unknownTag) PR_smprintf_free(unknownTag);
-+ SECITEM_FreeItem(avaValue, PR_TRUE);
-+ PORT_SetError(SEC_ERROR_OUTPUT_LEN);
-+ return SECFailure;
-+ }
-+ PORT_Memcpy(tmpBuf, tagName, len);
-+ if (unknownTag) PR_smprintf_free(unknownTag);
-+ tmpBuf[len++] = '=';
-+
-+ /* escape and quote as necessary - don't quote hex strings */
-+ if (hexValue) {
-+ /* appent avaValue to tmpBuf */
-+ if (avaValue->len + len + 1 > sizeof tmpBuf) {
-+ PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
-+ rv = SECFailure;
-+ } else {
-+ PORT_Strncpy(tmpBuf+len, (char *)avaValue->data, avaValue->len + 1);
-+ rv = SECSuccess;
-+ }
-+ } else
-+ rv = CERT_RFC1485_EscapeAndQuote(tmpBuf+len, sizeof(tmpBuf)-len,
-+ (char *)avaValue->data, avaValue->len);
-+ SECITEM_FreeItem(avaValue, PR_TRUE);
-+ if (rv) return SECFailure;
-+
-+ rv = AppendStr(bufp, tmpBuf);
-+ return rv;
-+}
-+
-+char *
-+CERT_NameToAscii(CERTName *name)
-+{
-+ CERTRDN** rdns;
-+ CERTRDN** lastRdn;
-+ CERTRDN** rdn;
-+ PRBool first = PR_TRUE;
-+ stringBuf strBuf = { NULL, 0, 0 };
-+
-+ rdns = name->rdns;
-+ if (rdns == NULL) {
-+ return NULL;
-+ }
-+
-+ /* find last RDN */
-+ lastRdn = rdns;
-+ while (*lastRdn) lastRdn++;
-+ lastRdn--;
-+
-+ /*
-+ * Loop over name contents in _reverse_ RDN order appending to string
-+ */
-+ for (rdn = lastRdn; rdn >= rdns; rdn--) {
-+ CERTAVA** avas = (*rdn)->avas;
-+ CERTAVA* ava;
-+ PRBool newRDN = PR_TRUE;
-+
-+ /*
-+ * XXX Do we need to traverse the AVAs in reverse order, too?
-+ */
-+ while (avas && (ava = *avas++) != NULL) {
-+ SECStatus rv;
-+ /* Put in comma or plus separator */
-+ if (!first) {
-+ /* Use of spaces is deprecated in RFC 2253. */
-+ rv = AppendStr(&strBuf, newRDN ? "," : "+");
-+ if (rv) goto loser;
-+ } else {
-+ first = PR_FALSE;
-+ }
-+
-+ /* Add in tag type plus value into buf */
-+ rv = AppendAVA(&strBuf, ava);
-+ if (rv) goto loser;
-+ newRDN = PR_FALSE;
-+ }
-+ }
-+ return strBuf.buffer;
-+loser:
-+ if (strBuf.buffer) {
-+ PORT_Free(strBuf.buffer);
-+ }
-+ return NULL;
-+}
-+
-+/*
-+ * Return the string representation of a DER encoded distinguished name
-+ * "dername" - The DER encoded name to convert
-+ */
-+char *
-+CERT_DerNameToAscii(SECItem *dername)
-+{
-+ int rv;
-+ PRArenaPool *arena = NULL;
-+ CERTName name;
-+ char *retstr = NULL;
-+
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+
-+ if ( arena == NULL) {
-+ goto loser;
-+ }
-+
-+ rv = SEC_QuickDERDecodeItem(arena, &name, CERT_NameTemplate, dername);
-+
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+
-+ retstr = CERT_NameToAscii(&name);
-+
-+loser:
-+ if ( arena != NULL ) {
-+ PORT_FreeArena(arena, PR_FALSE);
-+ }
-+
-+ return(retstr);
-+}
-+
-+static char *
-+CERT_GetNameElement(PRArenaPool *arena, CERTName *name, int wantedTag)
-+{
-+ CERTRDN** rdns;
-+ CERTRDN *rdn;
-+ char *buf = 0;
-+
-+ rdns = name->rdns;
-+ while (rdns && (rdn = *rdns++) != 0) {
-+ CERTAVA** avas = rdn->avas;
-+ CERTAVA* ava;
-+ while (avas && (ava = *avas++) != 0) {
-+ int tag = CERT_GetAVATag(ava);
-+ if ( tag == wantedTag ) {
-+ SECItem *decodeItem = CERT_DecodeAVAValue(&ava->value);
-+ if(!decodeItem) {
-+ return NULL;
-+ }
-+ if (arena) {
-+ buf = (char *)PORT_ArenaZAlloc(arena,decodeItem->len + 1);
-+ } else {
-+ buf = (char *)PORT_ZAlloc(decodeItem->len + 1);
-+ }
-+ if ( buf ) {
-+ PORT_Memcpy(buf, decodeItem->data, decodeItem->len);
-+ buf[decodeItem->len] = 0;
-+ }
-+ SECITEM_FreeItem(decodeItem, PR_TRUE);
-+ goto done;
-+ }
-+ }
-+ }
-+
-+ done:
-+ return buf;
-+}
-+
-+char *
-+CERT_GetCertificateEmailAddress(CERTCertificate *cert)
-+{
-+ char *rawEmailAddr = NULL;
-+ SECItem subAltName;
-+ SECStatus rv;
-+ CERTGeneralName *nameList = NULL;
-+ CERTGeneralName *current;
-+ PRArenaPool *arena = NULL;
-+ int i;
-+
-+ subAltName.data = NULL;
-+
-+ rawEmailAddr = CERT_GetNameElement(cert->arena, &(cert->subject),
-+ SEC_OID_PKCS9_EMAIL_ADDRESS);
-+ if ( rawEmailAddr == NULL ) {
-+ rawEmailAddr = CERT_GetNameElement(cert->arena, &(cert->subject),
-+ SEC_OID_RFC1274_MAIL);
-+ }
-+ if ( rawEmailAddr == NULL) {
-+
-+ rv = CERT_FindCertExtension(cert, SEC_OID_X509_SUBJECT_ALT_NAME,
-+ &subAltName);
-+ if (rv != SECSuccess) {
-+ goto finish;
-+ }
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ if (!arena) {
-+ goto finish;
-+ }
-+ nameList = current = CERT_DecodeAltNameExtension(arena, &subAltName);
-+ if (!nameList ) {
-+ goto finish;
-+ }
-+ if (nameList != NULL) {
-+ do {
-+ if (current->type == certDirectoryName) {
-+ rawEmailAddr = CERT_GetNameElement(cert->arena,
-+ &(current->name.directoryName),
-+ SEC_OID_PKCS9_EMAIL_ADDRESS);
-+ if ( rawEmailAddr == NULL ) {
-+ rawEmailAddr = CERT_GetNameElement(cert->arena,
-+ &(current->name.directoryName), SEC_OID_RFC1274_MAIL);
-+ }
-+ } else if (current->type == certRFC822Name) {
-+ rawEmailAddr = (char*)PORT_ArenaZAlloc(cert->arena,
-+ current->name.other.len + 1);
-+ if (!rawEmailAddr) {
-+ goto finish;
-+ }
-+ PORT_Memcpy(rawEmailAddr, current->name.other.data,
-+ current->name.other.len);
-+ rawEmailAddr[current->name.other.len] = '\0';
-+ }
-+ if (rawEmailAddr) {
-+ break;
-+ }
-+ current = cert_get_next_general_name(current);
-+ } while (current != nameList);
-+ }
-+ }
-+ if (rawEmailAddr) {
-+ for (i = 0; i <= (int) PORT_Strlen(rawEmailAddr); i++) {
-+ rawEmailAddr[i] = tolower(rawEmailAddr[i]);
-+ }
-+ }
-+
-+finish:
-+
-+ /* Don't free nameList, it's part of the arena. */
-+
-+ if (arena) {
-+ PORT_FreeArena(arena, PR_FALSE);
-+ }
-+
-+ if ( subAltName.data ) {
-+ SECITEM_FreeItem(&subAltName, PR_FALSE);
-+ }
-+
-+ return(rawEmailAddr);
-+}
-+
-+static char *
-+appendStringToBuf(char *dest, char *src, PRUint32 *pRemaining)
-+{
-+ PRUint32 len;
-+ if (dest && src && src[0] && *pRemaining > (len = PL_strlen(src))) {
-+ PRUint32 i;
-+ for (i = 0; i < len; ++i)
-+ dest[i] = tolower(src[i]);
-+ dest[len] = 0;
-+ dest += len + 1;
-+ *pRemaining -= len + 1;
-+ }
-+ return dest;
-+}
-+
-+static char *
-+appendItemToBuf(char *dest, SECItem *src, PRUint32 *pRemaining)
-+{
-+ if (dest && src && src->data && src->len && src->data[0] &&
-+ *pRemaining > src->len + 1 ) {
-+ PRUint32 len = src->len;
-+ PRUint32 i;
-+ for (i = 0; i < len && src->data[i] ; ++i)
-+ dest[i] = tolower(src->data[i]);
-+ dest[len] = 0;
-+ dest += len + 1;
-+ *pRemaining -= len + 1;
-+ }
-+ return dest;
-+}
-+
-+/* Returns a pointer to an environment-like string, a series of
-+** null-terminated strings, terminated by a zero-length string.
-+** This function is intended to be internal to NSS.
-+*/
-+char *
-+cert_GetCertificateEmailAddresses(CERTCertificate *cert)
-+{
-+ char * rawEmailAddr = NULL;
-+ char * addrBuf = NULL;
-+ char * pBuf = NULL;
-+ PRArenaPool * tmpArena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ PRUint32 maxLen = 0;
-+ PRInt32 finalLen = 0;
-+ SECStatus rv;
-+ SECItem subAltName;
-+
-+ if (!tmpArena)
-+ return addrBuf;
-+
-+ subAltName.data = NULL;
-+ maxLen = cert->derCert.len;
-+ PORT_Assert(maxLen);
-+ if (!maxLen)
-+ maxLen = 2000; /* a guess, should never happen */
-+
-+ pBuf = addrBuf = (char *)PORT_ArenaZAlloc(tmpArena, maxLen + 1);
-+ if (!addrBuf)
-+ goto loser;
-+
-+ rawEmailAddr = CERT_GetNameElement(tmpArena, &cert->subject,
-+ SEC_OID_PKCS9_EMAIL_ADDRESS);
-+ pBuf = appendStringToBuf(pBuf, rawEmailAddr, &maxLen);
-+
-+ rawEmailAddr = CERT_GetNameElement(tmpArena, &cert->subject,
-+ SEC_OID_RFC1274_MAIL);
-+ pBuf = appendStringToBuf(pBuf, rawEmailAddr, &maxLen);
-+
-+ rv = CERT_FindCertExtension(cert, SEC_OID_X509_SUBJECT_ALT_NAME,
-+ &subAltName);
-+ if (rv == SECSuccess && subAltName.data) {
-+ CERTGeneralName *nameList = NULL;
-+
-+ if (!!(nameList = CERT_DecodeAltNameExtension(tmpArena, &subAltName))) {
-+ CERTGeneralName *current = nameList;
-+ do {
-+ if (current->type == certDirectoryName) {
-+ rawEmailAddr = CERT_GetNameElement(tmpArena,
-+ &current->name.directoryName,
-+ SEC_OID_PKCS9_EMAIL_ADDRESS);
-+ pBuf = appendStringToBuf(pBuf, rawEmailAddr, &maxLen);
-+
-+ rawEmailAddr = CERT_GetNameElement(tmpArena,
-+ &current->name.directoryName,
-+ SEC_OID_RFC1274_MAIL);
-+ pBuf = appendStringToBuf(pBuf, rawEmailAddr, &maxLen);
-+ } else if (current->type == certRFC822Name) {
-+ pBuf = appendItemToBuf(pBuf, &current->name.other, &maxLen);
-+ }
-+ current = cert_get_next_general_name(current);
-+ } while (current != nameList);
-+ }
-+ SECITEM_FreeItem(&subAltName, PR_FALSE);
-+ /* Don't free nameList, it's part of the tmpArena. */
-+ }
-+ /* now copy superstring to cert's arena */
-+ finalLen = (pBuf - addrBuf) + 1;
-+ pBuf = NULL;
-+ if (finalLen > 1) {
-+ pBuf = PORT_ArenaAlloc(cert->arena, finalLen);
-+ if (pBuf) {
-+ PORT_Memcpy(pBuf, addrBuf, finalLen);
-+ }
-+ }
-+loser:
-+ if (tmpArena)
-+ PORT_FreeArena(tmpArena, PR_FALSE);
-+
-+ return pBuf;
-+}
-+
-+/* returns pointer to storage in cert's arena. Storage remains valid
-+** as long as cert's reference count doesn't go to zero.
-+** Caller should strdup or otherwise copy.
-+*/
-+const char * /* const so caller won't muck with it. */
-+CERT_GetFirstEmailAddress(CERTCertificate * cert)
-+{
-+ if (cert && cert->emailAddr && cert->emailAddr[0])
-+ return (const char *)cert->emailAddr;
-+ return NULL;
-+}
-+
-+/* returns pointer to storage in cert's arena. Storage remains valid
-+** as long as cert's reference count doesn't go to zero.
-+** Caller should strdup or otherwise copy.
-+*/
-+const char * /* const so caller won't muck with it. */
-+CERT_GetNextEmailAddress(CERTCertificate * cert, const char * prev)
-+{
-+ if (cert && prev && prev[0]) {
-+ PRUint32 len = PL_strlen(prev);
-+ prev += len + 1;
-+ if (prev && prev[0])
-+ return prev;
-+ }
-+ return NULL;
-+}
-+
-+/* This is seriously bogus, now that certs store their email addresses in
-+** subject Alternative Name extensions.
-+** Returns a string allocated by PORT_StrDup, which the caller must free.
-+*/
-+char *
-+CERT_GetCertEmailAddress(CERTName *name)
-+{
-+ char *rawEmailAddr;
-+ char *emailAddr;
-+
-+
-+ rawEmailAddr = CERT_GetNameElement(NULL, name, SEC_OID_PKCS9_EMAIL_ADDRESS);
-+ if ( rawEmailAddr == NULL ) {
-+ rawEmailAddr = CERT_GetNameElement(NULL, name, SEC_OID_RFC1274_MAIL);
-+ }
-+ emailAddr = CERT_FixupEmailAddr(rawEmailAddr);
-+ if ( rawEmailAddr ) {
-+ PORT_Free(rawEmailAddr);
-+ }
-+ return(emailAddr);
-+}
-+
-+/* The return value must be freed with PORT_Free. */
-+char *
-+CERT_GetCommonName(CERTName *name)
-+{
-+ return(CERT_GetNameElement(NULL, name, SEC_OID_AVA_COMMON_NAME));
-+}
-+
-+char *
-+CERT_GetCountryName(CERTName *name)
-+{
-+ return(CERT_GetNameElement(NULL, name, SEC_OID_AVA_COUNTRY_NAME));
-+}
-+
-+char *
-+CERT_GetLocalityName(CERTName *name)
-+{
-+ return(CERT_GetNameElement(NULL, name, SEC_OID_AVA_LOCALITY));
-+}
-+
-+char *
-+CERT_GetStateName(CERTName *name)
-+{
-+ return(CERT_GetNameElement(NULL, name, SEC_OID_AVA_STATE_OR_PROVINCE));
-+}
-+
-+char *
-+CERT_GetOrgName(CERTName *name)
-+{
-+ return(CERT_GetNameElement(NULL, name, SEC_OID_AVA_ORGANIZATION_NAME));
-+}
-+
-+char *
-+CERT_GetDomainComponentName(CERTName *name)
-+{
-+ return(CERT_GetNameElement(NULL, name, SEC_OID_AVA_DC));
-+}
-+
-+char *
-+CERT_GetOrgUnitName(CERTName *name)
-+{
-+ return(CERT_GetNameElement(NULL, name, SEC_OID_AVA_ORGANIZATIONAL_UNIT_NAME));
-+}
-+
-+char *
-+CERT_GetDnQualifier(CERTName *name)
-+{
-+ return(CERT_GetNameElement(NULL, name, SEC_OID_AVA_DN_QUALIFIER));
-+}
-+
-+char *
-+CERT_GetCertUid(CERTName *name)
-+{
-+ return(CERT_GetNameElement(NULL, name, SEC_OID_RFC1274_UID));
-+}
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/alghmac.h 2004-12-13 15:50:16.153134064 +0100
-@@ -0,0 +1,88 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifndef _ALGHMAC_H_
-+#define _ALGHMAC_H_
-+
-+typedef struct HMACContextStr HMACContext;
-+
-+SEC_BEGIN_PROTOS
-+
-+/* destroy HMAC context */
-+extern void
-+HMAC_Destroy(HMACContext *cx);
-+
-+/* create HMAC context
-+ * hashObj hash object from SECRawHashObjects[]
-+ * secret the secret with which the HMAC is performed.
-+ * secret_len the length of the secret.
-+ * isFIPS true if conforming to FIPS 198.
-+ *
-+ * NULL is returned if an error occurs.
-+ */
-+extern HMACContext *
-+HMAC_Create(const SECHashObject *hashObj, const unsigned char *secret,
-+ unsigned int secret_len, PRBool isFIPS);
-+
-+/* reset HMAC for a fresh round */
-+extern void
-+HMAC_Begin(HMACContext *cx);
-+
-+/* update HMAC
-+ * cx HMAC Context
-+ * data the data to perform HMAC on
-+ * data_len the length of the data to process
-+ */
-+extern void
-+HMAC_Update(HMACContext *cx, const unsigned char *data, unsigned int data_len);
-+
-+/* Finish HMAC -- place the results within result
-+ * cx HMAC context
-+ * result buffer for resulting hmac'd data
-+ * result_len where the resultant hmac length is stored
-+ * max_result_len maximum possible length that can be stored in result
-+ */
-+extern SECStatus
-+HMAC_Finish(HMACContext *cx, unsigned char *result, unsigned int *result_len,
-+ unsigned int max_result_len);
-+
-+/* clone a copy of the HMAC state. this is usefult when you would
-+ * need to keep a running hmac but also need to extract portions
-+ * partway through the process.
-+ */
-+extern HMACContext *
-+HMAC_Clone(HMACContext *cx);
-+
-+SEC_END_PROTOS
-+
-+#endif
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/arena.c 2004-12-13 13:06:46.837376728 +0100
-@@ -0,0 +1,1142 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+/*
-+ * arena.c
-+ *
-+ * This contains the implementation of NSS's thread-safe arenas.
-+ */
-+
-+#ifndef BASE_H
-+#include "base.h"
-+#endif /* BASE_H */
-+
-+#ifdef ARENA_THREADMARK
-+#include "prthread.h"
-+#endif /* ARENA_THREADMARK */
-+
-+#include "prlock.h"
-+#include "plarena.h"
-+
-+#include <string.h>
-+
-+/*
-+ * NSSArena
-+ *
-+ * This is based on NSPR's arena code, but it is threadsafe.
-+ *
-+ * The public methods relating to this type are:
-+ *
-+ * NSSArena_Create -- constructor
-+ * NSSArena_Destroy
-+ *
-+ * The nonpublic methods relating to this type are:
-+ *
-+ * nssArena_Create -- constructor
-+ * nssArena_Destroy
-+ * nssArena_Mark
-+ * nssArena_Release
-+ * nssArena_Unmark
-+ *
-+ * nss_ZAlloc
-+ * nss_ZFreeIf
-+ * nss_ZRealloc
-+ *
-+ * In debug builds, the following calls are available:
-+ *
-+ * nssArena_verifyPointer
-+ * nssArena_registerDestructor
-+ * nssArena_deregisterDestructor
-+ */
-+
-+struct NSSArenaStr {
-+ PLArenaPool pool;
-+ PRLock *lock;
-+#ifdef ARENA_THREADMARK
-+ PRThread *marking_thread;
-+ nssArenaMark *first_mark;
-+ nssArenaMark *last_mark;
-+#endif /* ARENA_THREADMARK */
-+#ifdef ARENA_DESTRUCTOR_LIST
-+ struct arena_destructor_node *first_destructor;
-+ struct arena_destructor_node *last_destructor;
-+#endif /* ARENA_DESTRUCTOR_LIST */
-+};
-+
-+/*
-+ * nssArenaMark
-+ *
-+ * This type is used to mark the current state of an NSSArena.
-+ */
-+
-+struct nssArenaMarkStr {
-+ PRUint32 magic;
-+ void *mark;
-+#ifdef ARENA_THREADMARK
-+ nssArenaMark *next;
-+#endif /* ARENA_THREADMARK */
-+#ifdef ARENA_DESTRUCTOR_LIST
-+ struct arena_destructor_node *next_destructor;
-+ struct arena_destructor_node *prev_destructor;
-+#endif /* ARENA_DESTRUCTOR_LIST */
-+};
-+
-+#define MARK_MAGIC 0x4d41524b /* "MARK" how original */
-+
-+/*
-+ * But first, the pointer-tracking code
-+ */
-+#ifdef DEBUG
-+extern const NSSError NSS_ERROR_INTERNAL_ERROR;
-+
-+static nssPointerTracker arena_pointer_tracker;
-+
-+static PRStatus
-+arena_add_pointer
-+(
-+ const NSSArena *arena
-+)
-+{
-+ PRStatus rv;
-+
-+ rv = nssPointerTracker_initialize(&arena_pointer_tracker);
-+ if( PR_SUCCESS != rv ) {
-+ return rv;
-+ }
-+
-+ rv = nssPointerTracker_add(&arena_pointer_tracker, arena);
-+ if( PR_SUCCESS != rv ) {
-+ NSSError e = NSS_GetError();
-+ if( NSS_ERROR_NO_MEMORY != e ) {
-+ nss_SetError(NSS_ERROR_INTERNAL_ERROR);
-+ }
-+
-+ return rv;
-+ }
-+
-+ return PR_SUCCESS;
-+}
-+
-+static PRStatus
-+arena_remove_pointer
-+(
-+ const NSSArena *arena
-+)
-+{
-+ PRStatus rv;
-+
-+ rv = nssPointerTracker_remove(&arena_pointer_tracker, arena);
-+ if( PR_SUCCESS != rv ) {
-+ nss_SetError(NSS_ERROR_INTERNAL_ERROR);
-+ }
-+
-+ return rv;
-+}
-+
-+/*
-+ * nssArena_verifyPointer
-+ *
-+ * This method is only present in debug builds.
-+ *
-+ * If the specified pointer is a valid pointer to an NSSArena object,
-+ * this routine will return PR_SUCCESS. Otherwise, it will put an
-+ * error on the error stack and return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ARENA
-+ *
-+ * Return value:
-+ * PR_SUCCESS if the pointer is valid
-+ * PR_FAILURE if it isn't
-+ */
-+
-+NSS_IMPLEMENT PRStatus
-+nssArena_verifyPointer
-+(
-+ const NSSArena *arena
-+)
-+{
-+ PRStatus rv;
-+
-+ rv = nssPointerTracker_initialize(&arena_pointer_tracker);
-+ if( PR_SUCCESS != rv ) {
-+ /*
-+ * This is a little disingenious. We have to initialize the
-+ * tracker, because someone could "legitimately" try to verify
-+ * an arena pointer before one is ever created. And this step
-+ * might fail, due to lack of memory. But the only way that
-+ * this step can fail is if it's doing the call_once stuff,
-+ * (later calls just no-op). And if it didn't no-op, there
-+ * aren't any valid arenas.. so the argument certainly isn't one.
-+ */
-+ nss_SetError(NSS_ERROR_INVALID_ARENA);
-+ return PR_FAILURE;
-+ }
-+
-+ rv = nssPointerTracker_verify(&arena_pointer_tracker, arena);
-+ if( PR_SUCCESS != rv ) {
-+ nss_SetError(NSS_ERROR_INVALID_ARENA);
-+ return PR_FAILURE;
-+ }
-+
-+ return PR_SUCCESS;
-+}
-+#endif /* DEBUG */
-+
-+#ifdef ARENA_DESTRUCTOR_LIST
-+
-+struct arena_destructor_node {
-+ struct arena_destructor_node *next;
-+ struct arena_destructor_node *prev;
-+ void (*destructor)(void *argument);
-+ void *arg;
-+};
-+
-+/*
-+ * nssArena_registerDestructor
-+ *
-+ * This routine stores a pointer to a callback and an arbitrary
-+ * pointer-sized argument in the arena, at the current point in
-+ * the mark stack. If the arena is destroyed, or an "earlier"
-+ * mark is released, then this destructor will be called at that
-+ * time. Note that the destructor will be called with the arena
-+ * locked, which means the destructor may free memory in that
-+ * arena, but it may not allocate or cause to be allocated any
-+ * memory. This callback facility was included to support our
-+ * debug-version pointer-tracker feature; overuse runs counter to
-+ * the the original intent of arenas. This routine returns a
-+ * PRStatus value; if successful, it will return PR_SUCCESS. If
-+ * unsuccessful, it will set an error on the error stack and
-+ * return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ARENA
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * PR_SUCCESS
-+ * PR_FAILURE
-+ */
-+
-+NSS_IMPLEMENT PRStatus
-+nssArena_registerDestructor
-+(
-+ NSSArena *arena,
-+ void (*destructor)(void *argument),
-+ void *arg
-+)
-+{
-+ struct arena_destructor_node *it;
-+
-+#ifdef NSSDEBUG
-+ if( PR_SUCCESS != nssArena_verifyPointer(arena) ) {
-+ return PR_FAILURE;
-+ }
-+#endif /* NSSDEBUG */
-+
-+ it = nss_ZNEW(arena, struct arena_destructor_node);
-+ if( (struct arena_destructor_node *)NULL == it ) {
-+ return PR_FAILURE;
-+ }
-+
-+ it->prev = arena->last_destructor;
-+ arena->last_destructor->next = it;
-+ arena->last_destructor = it;
-+ it->destructor = destructor;
-+ it->arg = arg;
-+
-+ if( (nssArenaMark *)NULL != arena->last_mark ) {
-+ arena->last_mark->prev_destructor = it->prev;
-+ arena->last_mark->next_destructor = it->next;
-+ }
-+
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssArena_deregisterDestructor
-+(
-+ NSSArena *arena,
-+ void (*destructor)(void *argument),
-+ void *arg
-+)
-+{
-+ struct arena_destructor_node *it;
-+
-+#ifdef NSSDEBUG
-+ if( PR_SUCCESS != nssArena_verifyPointer(arena) ) {
-+ return PR_FAILURE;
-+ }
-+#endif /* NSSDEBUG */
-+
-+ for( it = arena->first_destructor; it; it = it->next ) {
-+ if( (it->destructor == destructor) && (it->arg == arg) ) {
-+ break;
-+ }
-+ }
-+
-+ if( (struct arena_destructor_node *)NULL == it ) {
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+ }
-+
-+ if( it == arena->first_destructor ) {
-+ arena->first_destructor = it->next;
-+ }
-+
-+ if( it == arena->last_destructor ) {
-+ arena->last_destructor = it->prev;
-+ }
-+
-+ if( (struct arena_destructor_node *)NULL != it->prev ) {
-+ it->prev->next = it->next;
-+ }
-+
-+ if( (struct arena_destructor_node *)NULL != it->next ) {
-+ it->next->prev = it->prev;
-+ }
-+
-+ {
-+ nssArenaMark *m;
-+ for( m = arena->first_mark; m; m = m->next ) {
-+ if( m->next_destructor == it ) {
-+ m->next_destructor = it->next;
-+ }
-+ if( m->prev_destructor == it ) {
-+ m->prev_destructor = it->prev;
-+ }
-+ }
-+ }
-+
-+ nss_ZFreeIf(it);
-+ return PR_SUCCESS;
-+}
-+
-+static void
-+nss_arena_call_destructor_chain
-+(
-+ struct arena_destructor_node *it
-+)
-+{
-+ for( ; it ; it = it->next ) {
-+ (*(it->destructor))(it->arg);
-+ }
-+}
-+
-+#endif /* ARENA_DESTRUCTOR_LIST */
-+
-+/*
-+ * NSSArena_Create
-+ *
-+ * This routine creates a new memory arena. This routine may return
-+ * NULL upon error, in which case it will have created an error stack.
-+ *
-+ * The top-level error may be one of the following values:
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to an NSSArena upon success
-+ */
-+
-+NSS_IMPLEMENT NSSArena *
-+NSSArena_Create
-+(
-+ void
-+)
-+{
-+ nss_ClearErrorStack();
-+ return nssArena_Create();
-+}
-+
-+/*
-+ * nssArena_Create
-+ *
-+ * This routine creates a new memory arena. This routine may return
-+ * NULL upon error, in which case it will have set an error on the
-+ * error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to an NSSArena upon success
-+ */
-+
-+NSS_IMPLEMENT NSSArena *
-+nssArena_Create
-+(
-+ void
-+)
-+{
-+ NSSArena *rv = (NSSArena *)NULL;
-+
-+ rv = nss_ZNEW((NSSArena *)NULL, NSSArena);
-+ if( (NSSArena *)NULL == rv ) {
-+ nss_SetError(NSS_ERROR_NO_MEMORY);
-+ return (NSSArena *)NULL;
-+ }
-+
-+ rv->lock = PR_NewLock();
-+ if( (PRLock *)NULL == rv->lock ) {
-+ (void)nss_ZFreeIf(rv);
-+ nss_SetError(NSS_ERROR_NO_MEMORY);
-+ return (NSSArena *)NULL;
-+ }
-+
-+ /*
-+ * Arena sizes. The current security code has 229 occurrences of
-+ * PORT_NewArena. The default chunksizes specified break down as
-+ *
-+ * Size Mult. Specified as
-+ * 512 1 512
-+ * 1024 7 1024
-+ * 2048 5 2048
-+ * 2048 5 CRMF_DEFAULT_ARENA_SIZE
-+ * 2048 190 DER_DEFAULT_CHUNKSIZE
-+ * 2048 20 SEC_ASN1_DEFAULT_ARENA_SIZE
-+ * 4096 1 4096
-+ *
-+ * Obviously this "default chunksize" flexibility isn't very
-+ * useful to us, so I'll just pick 2048.
-+ */
-+
-+ PL_InitArenaPool(&rv->pool, "NSS", 2048, sizeof(double));
-+
-+#ifdef DEBUG
-+ {
-+ PRStatus st;
-+ st = arena_add_pointer(rv);
-+ if( PR_SUCCESS != st ) {
-+ PL_FinishArenaPool(&rv->pool);
-+ PR_DestroyLock(rv->lock);
-+ (void)nss_ZFreeIf(rv);
-+ return (NSSArena *)NULL;
-+ }
-+ }
-+#endif /* DEBUG */
-+
-+ return rv;
-+}
-+
-+/*
-+ * NSSArena_Destroy
-+ *
-+ * This routine will destroy the specified arena, freeing all memory
-+ * allocated from it. This routine returns a PRStatus value; if
-+ * successful, it will return PR_SUCCESS. If unsuccessful, it will
-+ * create an error stack and return PR_FAILURE.
-+ *
-+ * The top-level error may be one of the following values:
-+ * NSS_ERROR_INVALID_ARENA
-+ *
-+ * Return value:
-+ * PR_SUCCESS upon success
-+ * PR_FAILURE upon failure
-+ */
-+
-+NSS_IMPLEMENT PRStatus
-+NSSArena_Destroy
-+(
-+ NSSArena *arena
-+)
-+{
-+ nss_ClearErrorStack();
-+
-+#ifdef DEBUG
-+ if( PR_SUCCESS != nssArena_verifyPointer(arena) ) {
-+ return PR_FAILURE;
-+ }
-+#endif /* DEBUG */
-+
-+ return nssArena_Destroy(arena);
-+}
-+
-+/*
-+ * nssArena_Destroy
-+ *
-+ * This routine will destroy the specified arena, freeing all memory
-+ * allocated from it. This routine returns a PRStatus value; if
-+ * successful, it will return PR_SUCCESS. If unsuccessful, it will
-+ * set an error on the error stack and return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ARENA
-+ *
-+ * Return value:
-+ * PR_SUCCESS
-+ * PR_FAILURE
-+ */
-+
-+NSS_IMPLEMENT PRStatus
-+nssArena_Destroy
-+(
-+ NSSArena *arena
-+)
-+{
-+ PRLock *lock;
-+
-+#ifdef NSSDEBUG
-+ if( PR_SUCCESS != nssArena_verifyPointer(arena) ) {
-+ return PR_FAILURE;
-+ }
-+#endif /* NSSDEBUG */
-+
-+ PR_Lock(arena->lock);
-+ if( (PRLock *)NULL == arena->lock ) {
-+ /* Just got destroyed */
-+ nss_SetError(NSS_ERROR_INVALID_ARENA);
-+ return PR_FAILURE;
-+ }
-+
-+#ifdef DEBUG
-+ if( PR_SUCCESS != arena_remove_pointer(arena) ) {
-+ return PR_FAILURE;
-+ }
-+#endif /* DEBUG */
-+
-+#ifdef ARENA_DESTRUCTOR_LIST
-+ /* Note that the arena is locked at this time */
-+ nss_arena_call_destructor_chain(arena->first_destructor);
-+#endif /* ARENA_DESTRUCTOR_LIST */
-+
-+ PL_FinishArenaPool(&arena->pool);
-+ lock = arena->lock;
-+ arena->lock = (PRLock *)NULL;
-+ PR_Unlock(lock);
-+ PR_DestroyLock(lock);
-+ (void)nss_ZFreeIf(arena);
-+ return PR_SUCCESS;
-+}
-+
-+static void *nss_zalloc_arena_locked(NSSArena *arena, PRUint32 size);
-+
-+/*
-+ * nssArena_Mark
-+ *
-+ * This routine "marks" the current state of an arena. Space
-+ * allocated after the arena has been marked can be freed by
-+ * releasing the arena back to the mark with nssArena_Release,
-+ * or committed by calling nssArena_Unmark. When successful,
-+ * this routine returns a valid nssArenaMark pointer. This
-+ * routine may return NULL upon error, in which case it will
-+ * have set an error on the error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ARENA
-+ * NSS_ERROR_NO_MEMORY
-+ * NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD
-+ *
-+ * Return value:
-+ * NULL upon failure
-+ * An nssArenaMark pointer upon success
-+ */
-+
-+NSS_IMPLEMENT nssArenaMark *
-+nssArena_Mark
-+(
-+ NSSArena *arena
-+)
-+{
-+ nssArenaMark *rv;
-+ void *p;
-+
-+#ifdef NSSDEBUG
-+ if( PR_SUCCESS != nssArena_verifyPointer(arena) ) {
-+ return (nssArenaMark *)NULL;
-+ }
-+#endif /* NSSDEBUG */
-+
-+ PR_Lock(arena->lock);
-+ if( (PRLock *)NULL == arena->lock ) {
-+ /* Just got destroyed */
-+ nss_SetError(NSS_ERROR_INVALID_ARENA);
-+ return (nssArenaMark *)NULL;
-+ }
-+
-+#ifdef ARENA_THREADMARK
-+ if( (PRThread *)NULL == arena->marking_thread ) {
-+ /* Unmarked. Store our thread ID */
-+ arena->marking_thread = PR_GetCurrentThread();
-+ /* This call never fails. */
-+ } else {
-+ /* Marked. Verify it's the current thread */
-+ if( PR_GetCurrentThread() != arena->marking_thread ) {
-+ PR_Unlock(arena->lock);
-+ nss_SetError(NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD);
-+ return (nssArenaMark *)NULL;
-+ }
-+ }
-+#endif /* ARENA_THREADMARK */
-+
-+ p = PL_ARENA_MARK(&arena->pool);
-+ /* No error possible */
-+
-+ /* Do this after the mark */
-+ rv = (nssArenaMark *)nss_zalloc_arena_locked(arena, sizeof(nssArenaMark));
-+ if( (nssArenaMark *)NULL == rv ) {
-+ PR_Unlock(arena->lock);
-+ nss_SetError(NSS_ERROR_NO_MEMORY);
-+ return (nssArenaMark *)NULL;
-+ }
-+
-+#ifdef ARENA_THREADMARK
-+ if ( (nssArenaMark *)NULL == arena->first_mark) {
-+ arena->first_mark = rv;
-+ arena->last_mark = rv;
-+ } else {
-+ arena->last_mark->next = rv;
-+ arena->last_mark = rv;
-+ }
-+#endif /* ARENA_THREADMARK */
-+
-+ rv->mark = p;
-+ rv->magic = MARK_MAGIC;
-+
-+#ifdef ARENA_DESTRUCTOR_LIST
-+ rv->prev_destructor = arena->last_destructor;
-+#endif /* ARENA_DESTRUCTOR_LIST */
-+
-+ PR_Unlock(arena->lock);
-+
-+ return rv;
-+}
-+
-+/*
-+ * nss_arena_unmark_release
-+ *
-+ * This static routine implements the routines nssArena_Release
-+ * ans nssArena_Unmark, which are almost identical.
-+ */
-+
-+static PRStatus
-+nss_arena_unmark_release
-+(
-+ NSSArena *arena,
-+ nssArenaMark *arenaMark,
-+ PRBool release
-+)
-+{
-+ void *inner_mark;
-+
-+#ifdef NSSDEBUG
-+ if( PR_SUCCESS != nssArena_verifyPointer(arena) ) {
-+ return PR_FAILURE;
-+ }
-+#endif /* NSSDEBUG */
-+
-+ if( MARK_MAGIC != arenaMark->magic ) {
-+ nss_SetError(NSS_ERROR_INVALID_ARENA_MARK);
-+ return PR_FAILURE;
-+ }
-+
-+ PR_Lock(arena->lock);
-+ if( (PRLock *)NULL == arena->lock ) {
-+ /* Just got destroyed */
-+ nss_SetError(NSS_ERROR_INVALID_ARENA);
-+ return PR_FAILURE;
-+ }
-+
-+#ifdef ARENA_THREADMARK
-+ if( (PRThread *)NULL != arena->marking_thread ) {
-+ if( PR_GetCurrentThread() != arena->marking_thread ) {
-+ PR_Unlock(arena->lock);
-+ nss_SetError(NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD);
-+ return PR_FAILURE;
-+ }
-+ }
-+#endif /* ARENA_THREADMARK */
-+
-+ if( MARK_MAGIC != arenaMark->magic ) {
-+ /* Just got released */
-+ PR_Unlock(arena->lock);
-+ nss_SetError(NSS_ERROR_INVALID_ARENA_MARK);
-+ return PR_FAILURE;
-+ }
-+
-+ arenaMark->magic = 0;
-+ inner_mark = arenaMark->mark;
-+
-+#ifdef ARENA_THREADMARK
-+ {
-+ nssArenaMark **pMark = &arena->first_mark;
-+ nssArenaMark *rest;
-+ nssArenaMark *last = (nssArenaMark *)NULL;
-+
-+ /* Find this mark */
-+ while( *pMark != arenaMark ) {
-+ last = *pMark;
-+ pMark = &(*pMark)->next;
-+ }
-+
-+ /* Remember the pointer, then zero it */
-+ rest = (*pMark)->next;
-+ *pMark = (nssArenaMark *)NULL;
-+
-+ arena->last_mark = last;
-+
-+ /* Invalidate any later marks being implicitly released */
-+ for( ; (nssArenaMark *)NULL != rest; rest = rest->next ) {
-+ rest->magic = 0;
-+ }
-+
-+ /* If we just got rid of the first mark, clear the thread ID */
-+ if( (nssArenaMark *)NULL == arena->first_mark ) {
-+ arena->marking_thread = (PRThread *)NULL;
-+ }
-+ }
-+#endif /* ARENA_THREADMARK */
-+
-+ if( release ) {
-+#ifdef ARENA_DESTRUCTOR_LIST
-+ if( (struct arena_destructor_node *)NULL != arenaMark->prev_destructor ) {
-+ arenaMark->prev_destructor->next = (struct arena_destructor_node *)NULL;
-+ }
-+ arena->last_destructor = arenaMark->prev_destructor;
-+
-+ /* Note that the arena is locked at this time */
-+ nss_arena_call_destructor_chain(arenaMark->next_destructor);
-+#endif /* ARENA_DESTRUCTOR_LIST */
-+
-+ PR_ARENA_RELEASE(&arena->pool, inner_mark);
-+ /* No error return */
-+ }
-+
-+ PR_Unlock(arena->lock);
-+ return PR_SUCCESS;
-+}
-+
-+/*
-+ * nssArena_Release
-+ *
-+ * This routine invalidates and releases all memory allocated from
-+ * the specified arena after the point at which the specified mark
-+ * was obtained. This routine returns a PRStatus value; if successful,
-+ * it will return PR_SUCCESS. If unsuccessful, it will set an error
-+ * on the error stack and return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ARENA
-+ * NSS_ERROR_INVALID_ARENA_MARK
-+ * NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD
-+ *
-+ * Return value:
-+ * PR_SUCCESS
-+ * PR_FAILURE
-+ */
-+
-+NSS_IMPLEMENT PRStatus
-+nssArena_Release
-+(
-+ NSSArena *arena,
-+ nssArenaMark *arenaMark
-+)
-+{
-+ return nss_arena_unmark_release(arena, arenaMark, PR_TRUE);
-+}
-+
-+/*
-+ * nssArena_Unmark
-+ *
-+ * This routine "commits" the indicated mark and any marks after
-+ * it, making them unreleasable. Note that any earlier marks can
-+ * still be released, and such a release will invalidate these
-+ * later unmarked regions. If an arena is to be safely shared by
-+ * more than one thread, all marks must be either released or
-+ * unmarked. This routine returns a PRStatus value; if successful,
-+ * it will return PR_SUCCESS. If unsuccessful, it will set an error
-+ * on the error stack and return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ARENA
-+ * NSS_ERROR_INVALID_ARENA_MARK
-+ * NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD
-+ *
-+ * Return value:
-+ * PR_SUCCESS
-+ * PR_FAILURE
-+ */
-+
-+NSS_IMPLEMENT PRStatus
-+nssArena_Unmark
-+(
-+ NSSArena *arena,
-+ nssArenaMark *arenaMark
-+)
-+{
-+ return nss_arena_unmark_release(arena, arenaMark, PR_FALSE);
-+}
-+
-+/*
-+ * We prefix this header to all allocated blocks. It is a multiple
-+ * of the alignment size. Note that this usage of a header may make
-+ * purify spew bogus warnings about "potentially leaked blocks" of
-+ * memory; if that gets too annoying we can add in a pointer to the
-+ * header in the header itself. There's not a lot of safety here;
-+ * maybe we should add a magic value?
-+ */
-+struct pointer_header {
-+ NSSArena *arena;
-+ PRUint32 size;
-+};
-+
-+static void *
-+nss_zalloc_arena_locked
-+(
-+ NSSArena *arena,
-+ PRUint32 size
-+)
-+{
-+ void *p;
-+ void *rv;
-+ struct pointer_header *h;
-+ PRUint32 my_size = size + sizeof(struct pointer_header);
-+ PR_ARENA_ALLOCATE(p, &arena->pool, my_size);
-+ if( (void *)NULL == p ) {
-+ nss_SetError(NSS_ERROR_NO_MEMORY);
-+ return (void *)NULL;
-+ }
-+ /*
-+ * Do this before we unlock. This way if the user is using
-+ * an arena in one thread while destroying it in another, he'll
-+ * fault/FMR in his code, not ours.
-+ */
-+ h = (struct pointer_header *)p;
-+ h->arena = arena;
-+ h->size = size;
-+ rv = (void *)((char *)h + sizeof(struct pointer_header));
-+ (void)nsslibc_memset(rv, 0, size);
-+ return rv;
-+}
-+
-+/*
-+ * nss_ZAlloc
-+ *
-+ * This routine allocates and zeroes a section of memory of the
-+ * size, and returns to the caller a pointer to that memory. If
-+ * the optional arena argument is non-null, the memory will be
-+ * obtained from that arena; otherwise, the memory will be obtained
-+ * from the heap. This routine may return NULL upon error, in
-+ * which case it will have set an error upon the error stack. The
-+ * value specified for size may be zero; in which case a valid
-+ * zero-length block of memory will be allocated. This block may
-+ * be expanded by calling nss_ZRealloc.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ARENA
-+ * NSS_ERROR_NO_MEMORY
-+ * NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to the new segment of zeroed memory
-+ */
-+
-+NSS_IMPLEMENT void *
-+nss_ZAlloc
-+(
-+ NSSArena *arenaOpt,
-+ PRUint32 size
-+)
-+{
-+ struct pointer_header *h;
-+ PRUint32 my_size = size + sizeof(struct pointer_header);
-+
-+ if( my_size < sizeof(struct pointer_header) ) {
-+ /* Wrapped */
-+ nss_SetError(NSS_ERROR_NO_MEMORY);
-+ return (void *)NULL;
-+ }
-+
-+ if( (NSSArena *)NULL == arenaOpt ) {
-+ /* Heap allocation, no locking required. */
-+ h = (struct pointer_header *)PR_Calloc(1, my_size);
-+ if( (struct pointer_header *)NULL == h ) {
-+ nss_SetError(NSS_ERROR_NO_MEMORY);
-+ return (void *)NULL;
-+ }
-+
-+ h->arena = (NSSArena *)NULL;
-+ h->size = size;
-+ /* We used calloc: it's already zeroed */
-+
-+ return (void *)((char *)h + sizeof(struct pointer_header));
-+ } else {
-+ void *rv;
-+ /* Arena allocation */
-+#ifdef NSSDEBUG
-+ if( PR_SUCCESS != nssArena_verifyPointer(arenaOpt) ) {
-+ return (void *)NULL;
-+ }
-+#endif /* NSSDEBUG */
-+
-+ PR_Lock(arenaOpt->lock);
-+ if( (PRLock *)NULL == arenaOpt->lock ) {
-+ /* Just got destroyed */
-+ nss_SetError(NSS_ERROR_INVALID_ARENA);
-+ return (void *)NULL;
-+ }
-+
-+#ifdef ARENA_THREADMARK
-+ if( (PRThread *)NULL != arenaOpt->marking_thread ) {
-+ if( PR_GetCurrentThread() != arenaOpt->marking_thread ) {
-+ nss_SetError(NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD);
-+ PR_Unlock(arenaOpt->lock);
-+ return (void *)NULL;
-+ }
-+ }
-+#endif /* ARENA_THREADMARK */
-+
-+ rv = nss_zalloc_arena_locked(arenaOpt, size);
-+
-+ PR_Unlock(arenaOpt->lock);
-+ return rv;
-+ }
-+ /*NOTREACHED*/
-+}
-+
-+/*
-+ * nss_ZFreeIf
-+ *
-+ * If the specified pointer is non-null, then the region of memory
-+ * to which it points -- which must have been allocated with
-+ * nss_ZAlloc -- will be zeroed and released. This routine
-+ * returns a PRStatus value; if successful, it will return PR_SUCCESS.
-+ * If unsuccessful, it will set an error on the error stack and return
-+ * PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_POINTER
-+ *
-+ * Return value:
-+ * PR_SUCCESS
-+ * PR_FAILURE
-+ */
-+
-+NSS_IMPLEMENT PRStatus
-+nss_ZFreeIf
-+(
-+ void *pointer
-+)
-+{
-+ struct pointer_header *h;
-+
-+ if( (void *)NULL == pointer ) {
-+ return PR_SUCCESS;
-+ }
-+
-+ h = (struct pointer_header *)&((char *)pointer)
-+ [ - sizeof(struct pointer_header) ];
-+
-+ /* Check any magic here */
-+
-+ if( (NSSArena *)NULL == h->arena ) {
-+ /* Heap */
-+ (void)nsslibc_memset(pointer, 0, h->size);
-+ PR_Free(h);
-+ return PR_SUCCESS;
-+ } else {
-+ /* Arena */
-+#ifdef NSSDEBUG
-+ if( PR_SUCCESS != nssArena_verifyPointer(h->arena) ) {
-+ return PR_FAILURE;
-+ }
-+#endif /* NSSDEBUG */
-+
-+ PR_Lock(h->arena->lock);
-+ if( (PRLock *)NULL == h->arena->lock ) {
-+ /* Just got destroyed.. so this pointer is invalid */
-+ nss_SetError(NSS_ERROR_INVALID_POINTER);
-+ return PR_FAILURE;
-+ }
-+
-+ (void)nsslibc_memset(pointer, 0, h->size);
-+
-+ /* No way to "free" it within an NSPR arena. */
-+
-+ PR_Unlock(h->arena->lock);
-+ return PR_SUCCESS;
-+ }
-+ /*NOTREACHED*/
-+}
-+
-+/*
-+ * nss_ZRealloc
-+ *
-+ * This routine reallocates a block of memory obtained by calling
-+ * nss_ZAlloc or nss_ZRealloc. The portion of memory
-+ * between the new and old sizes -- which is either being newly
-+ * obtained or released -- is in either case zeroed. This routine
-+ * may return NULL upon failure, in which case it will have placed
-+ * an error on the error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_POINTER
-+ * NSS_ERROR_NO_MEMORY
-+ * NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to the replacement segment of memory
-+ */
-+
-+NSS_EXTERN void *
-+nss_ZRealloc
-+(
-+ void *pointer,
-+ PRUint32 newSize
-+)
-+{
-+ struct pointer_header *h, *new_h;
-+ PRUint32 my_newSize = newSize + sizeof(struct pointer_header);
-+ void *rv;
-+
-+ if( my_newSize < sizeof(struct pointer_header) ) {
-+ /* Wrapped */
-+ nss_SetError(NSS_ERROR_NO_MEMORY);
-+ return (void *)NULL;
-+ }
-+
-+ if( (void *)NULL == pointer ) {
-+ nss_SetError(NSS_ERROR_INVALID_POINTER);
-+ return (void *)NULL;
-+ }
-+
-+ h = (struct pointer_header *)&((char *)pointer)
-+ [ - sizeof(struct pointer_header) ];
-+
-+ /* Check any magic here */
-+
-+ if( newSize == h->size ) {
-+ /* saves thrashing */
-+ return pointer;
-+ }
-+
-+ if( (NSSArena *)NULL == h->arena ) {
-+ /* Heap */
-+ new_h = (struct pointer_header *)PR_Calloc(1, my_newSize);
-+ if( (struct pointer_header *)NULL == new_h ) {
-+ nss_SetError(NSS_ERROR_NO_MEMORY);
-+ return (void *)NULL;
-+ }
-+
-+ new_h->arena = (NSSArena *)NULL;
-+ new_h->size = newSize;
-+ rv = (void *)((char *)new_h + sizeof(struct pointer_header));
-+
-+ if( newSize > h->size ) {
-+ (void)nsslibc_memcpy(rv, pointer, h->size);
-+ (void)nsslibc_memset(&((char *)rv)[ h->size ],
-+ 0, (newSize - h->size));
-+ } else {
-+ (void)nsslibc_memcpy(rv, pointer, newSize);
-+ }
-+
-+ (void)nsslibc_memset(pointer, 0, h->size);
-+ h->size = 0;
-+ PR_Free(h);
-+
-+ return rv;
-+ } else {
-+ void *p;
-+ /* Arena */
-+#ifdef NSSDEBUG
-+ if( PR_SUCCESS != nssArena_verifyPointer(h->arena) ) {
-+ return (void *)NULL;
-+ }
-+#endif /* NSSDEBUG */
-+
-+ PR_Lock(h->arena->lock);
-+ if( (PRLock *)NULL == h->arena->lock ) {
-+ /* Just got destroyed.. so this pointer is invalid */
-+ nss_SetError(NSS_ERROR_INVALID_POINTER);
-+ return (void *)NULL;
-+ }
-+
-+#ifdef ARENA_THREADMARK
-+ if( (PRThread *)NULL != h->arena->marking_thread ) {
-+ if( PR_GetCurrentThread() != h->arena->marking_thread ) {
-+ PR_Unlock(h->arena->lock);
-+ nss_SetError(NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD);
-+ return (void *)NULL;
-+ }
-+ }
-+#endif /* ARENA_THREADMARK */
-+
-+ if( newSize < h->size ) {
-+ /*
-+ * We have no general way of returning memory to the arena
-+ * (mark/release doesn't work because things may have been
-+ * allocated after this object), so the memory is gone
-+ * anyway. We might as well just return the same pointer to
-+ * the user, saying "yeah, uh-hunh, you can only use less of
-+ * it now." We'll zero the leftover part, of course. And
-+ * in fact we might as well *not* adjust h->size-- this way,
-+ * if the user reallocs back up to something not greater than
-+ * the original size, then voila, there's the memory! This
-+ * way a thrash big/small/big/small doesn't burn up the arena.
-+ */
-+ char *extra = &((char *)pointer)[ newSize ];
-+ (void)nsslibc_memset(extra, 0, (h->size - newSize));
-+ PR_Unlock(h->arena->lock);
-+ return pointer;
-+ }
-+
-+ PR_ARENA_ALLOCATE(p, &h->arena->pool, my_newSize);
-+ if( (void *)NULL == p ) {
-+ PR_Unlock(h->arena->lock);
-+ nss_SetError(NSS_ERROR_NO_MEMORY);
-+ return (void *)NULL;
-+ }
-+
-+ new_h = (struct pointer_header *)p;
-+ new_h->arena = h->arena;
-+ new_h->size = newSize;
-+ rv = (void *)((char *)new_h + sizeof(struct pointer_header));
-+ if (rv != pointer) {
-+ (void)nsslibc_memcpy(rv, pointer, h->size);
-+ (void)nsslibc_memset(pointer, 0, h->size);
-+ }
-+ (void)nsslibc_memset(&((char *)rv)[ h->size ], 0, (newSize - h->size));
-+ h->arena = (NSSArena *)NULL;
-+ h->size = 0;
-+ PR_Unlock(new_h->arena->lock);
-+ return rv;
-+ }
-+ /*NOTREACHED*/
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/asymmkey.c 2004-12-13 13:06:46.785384632 +0100
-@@ -0,0 +1,431 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#ifndef NSSPKI_H
-+#include "nsspki.h"
-+#endif /* NSSPKI_H */
-+
-+#ifndef BASE_H
-+#include "base.h"
-+#endif /* BASE_H */
-+
-+extern const NSSError NSS_ERROR_NOT_FOUND;
-+
-+NSS_IMPLEMENT PRStatus
-+NSSPrivateKey_Destroy (
-+ NSSPrivateKey *vk
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSPrivateKey_DeleteStoredObject (
-+ NSSPrivateKey *vk,
-+ NSSCallback *uhh
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT PRUint32
-+NSSPrivateKey_GetSignatureLength (
-+ NSSPrivateKey *vk
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return -1;
-+}
-+
-+NSS_IMPLEMENT PRUint32
-+NSSPrivateKey_GetPrivateModulusLength (
-+ NSSPrivateKey *vk
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return -1;
-+}
-+
-+NSS_IMPLEMENT PRBool
-+NSSPrivateKey_IsStillPresent (
-+ NSSPrivateKey *vk,
-+ PRStatus *statusOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FALSE;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSPrivateKey_Encode (
-+ NSSPrivateKey *vk,
-+ NSSAlgorithmAndParameters *ap,
-+ NSSItem *passwordOpt, /* NULL will cause a callback; "" for no password */
-+ NSSCallback *uhhOpt,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSTrustDomain *
-+NSSPrivateKey_GetTrustDomain (
-+ NSSPrivateKey *vk,
-+ PRStatus *statusOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSToken *
-+NSSPrivateKey_GetToken (
-+ NSSPrivateKey *vk
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSSlot *
-+NSSPrivateKey_GetSlot (
-+ NSSPrivateKey *vk
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSModule *
-+NSSPrivateKey_GetModule (
-+ NSSPrivateKey *vk
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSPrivateKey_Decrypt (
-+ NSSPrivateKey *vk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *encryptedData,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSPrivateKey_Sign (
-+ NSSPrivateKey *vk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSPrivateKey_SignRecover (
-+ NSSPrivateKey *vk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSSymmetricKey *
-+NSSPrivateKey_UnwrapSymmetricKey (
-+ NSSPrivateKey *vk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *wrappedKey,
-+ NSSCallback *uhh
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSSymmetricKey *
-+NSSPrivateKey_DeriveSymmetricKey (
-+ NSSPrivateKey *vk,
-+ NSSPublicKey *bk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSOID *target,
-+ PRUint32 keySizeOpt, /* zero for best allowed */
-+ NSSOperations operations,
-+ NSSCallback *uhh
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSPublicKey *
-+NSSPrivateKey_FindPublicKey (
-+ NSSPrivateKey *vk
-+ /* { don't need the callback here, right? } */
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCryptoContext *
-+NSSPrivateKey_CreateCryptoContext (
-+ NSSPrivateKey *vk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSCallback *uhh
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate **
-+NSSPrivateKey_FindCertificates (
-+ NSSPrivateKey *vk,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt, /* 0 for no max */
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSPrivateKey_FindBestCertificate (
-+ NSSPrivateKey *vk,
-+ NSSTime *timeOpt,
-+ NSSUsage *usageOpt,
-+ NSSPolicies *policiesOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSPublicKey_Destroy (
-+ NSSPublicKey *bk
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSPublicKey_DeleteStoredObject (
-+ NSSPublicKey *bk,
-+ NSSCallback *uhh
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSPublicKey_Encode (
-+ NSSPublicKey *bk,
-+ NSSAlgorithmAndParameters *ap,
-+ NSSCallback *uhhOpt,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSTrustDomain *
-+NSSPublicKey_GetTrustDomain (
-+ NSSPublicKey *bk,
-+ PRStatus *statusOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSToken *
-+NSSPublicKey_GetToken (
-+ NSSPublicKey *bk,
-+ PRStatus *statusOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSSlot *
-+NSSPublicKey_GetSlot (
-+ NSSPublicKey *bk,
-+ PRStatus *statusOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSModule *
-+NSSPublicKey_GetModule (
-+ NSSPublicKey *bk,
-+ PRStatus *statusOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSPublicKey_Encrypt (
-+ NSSPublicKey *bk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSPublicKey_Verify (
-+ NSSPublicKey *bk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSItem *signature,
-+ NSSCallback *uhh
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSPublicKey_VerifyRecover (
-+ NSSPublicKey *bk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *signature,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSPublicKey_WrapSymmetricKey (
-+ NSSPublicKey *bk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSSymmetricKey *keyToWrap,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCryptoContext *
-+NSSPublicKey_CreateCryptoContext (
-+ NSSPublicKey *bk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSCallback *uhh
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate **
-+NSSPublicKey_FindCertificates (
-+ NSSPublicKey *bk,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt, /* 0 for no max */
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSPublicKey_FindBestCertificate (
-+ NSSPublicKey *bk,
-+ NSSTime *timeOpt,
-+ NSSUsage *usageOpt,
-+ NSSPolicies *policiesOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSPrivateKey *
-+NSSPublicKey_FindPrivateKey (
-+ NSSPublicKey *bk,
-+ NSSCallback *uhh
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/base.h 2004-12-13 15:50:15.871176928 +0100
-@@ -0,0 +1,1445 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifndef BASE_H
-+#define BASE_H
-+
-+#ifdef DEBUG
-+static const char BASE_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+/*
-+ * base.h
-+ *
-+ * This header file contains basic prototypes and preprocessor
-+ * definitions used throughout nss but not available publicly.
-+ */
-+
-+#ifndef BASET_H
-+#include "baset.h"
-+#endif /* BASET_H */
-+
-+#ifndef NSSBASE_H
-+#include "nssbase.h"
-+#endif /* NSSBASE_H */
-+
-+#include "plhash.h"
-+#include "prthread.h"
-+
-+PR_BEGIN_EXTERN_C
-+
-+/*
-+ * NSSArena
-+ *
-+ * The nonpublic methods relating to this type are:
-+ *
-+ * nssArena_Create -- constructor
-+ * nssArena_Destroy
-+ * nssArena_Mark
-+ * nssArena_Release
-+ * nssArena_Unmark
-+ *
-+ * nss_ZAlloc
-+ * nss_ZFreeIf
-+ * nss_ZRealloc
-+ *
-+ * Additionally, there are some preprocessor macros:
-+ *
-+ * nss_ZNEW
-+ * nss_ZNEWARRAY
-+ *
-+ * In debug builds, the following calls are available:
-+ *
-+ * nssArena_verifyPointer
-+ * nssArena_registerDestructor
-+ * nssArena_deregisterDestructor
-+ *
-+ * The following preprocessor macro is also always available:
-+ *
-+ * nssArena_VERIFYPOINTER
-+ *
-+ * A constant PLHashAllocOps structure is available for users
-+ * of the NSPL PLHashTable routines.
-+ *
-+ * nssArenaHashAllocOps
-+ */
-+
-+/*
-+ * nssArena_Create
-+ *
-+ * This routine creates a new memory arena. This routine may return
-+ * NULL upon error, in which case it will have set an error on the
-+ * error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to an NSSArena upon success
-+ */
-+
-+/*
-+ * XXX fgmr
-+ * Arenas can be named upon creation; this is mostly of use when
-+ * debugging. Should we expose that here, allowing an optional
-+ * "const char *name" argument? Should the public version of this
-+ * call (NSSArena_Create) have it too?
-+ */
-+
-+NSS_EXTERN NSSArena *
-+nssArena_Create
-+(
-+ void
-+);
-+
-+extern const NSSError NSS_ERROR_NO_MEMORY;
-+
-+/*
-+ * nssArena_Destroy
-+ *
-+ * This routine will destroy the specified arena, freeing all memory
-+ * allocated from it. This routine returns a PRStatus value; if
-+ * successful, it will return PR_SUCCESS. If unsuccessful, it will
-+ * set an error on the error stack and return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ARENA
-+ *
-+ * Return value:
-+ * PR_SUCCESS
-+ * PR_FAILURE
-+ */
-+
-+NSS_EXTERN PRStatus
-+nssArena_Destroy
-+(
-+ NSSArena *arena
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_ARENA;
-+
-+/*
-+ * nssArena_Mark
-+ *
-+ * This routine "marks" the current state of an arena. Space
-+ * allocated after the arena has been marked can be freed by
-+ * releasing the arena back to the mark with nssArena_Release,
-+ * or committed by calling nssArena_Unmark. When successful,
-+ * this routine returns a valid nssArenaMark pointer. This
-+ * routine may return NULL upon error, in which case it will
-+ * have set an error on the error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ARENA
-+ * NSS_ERROR_NO_MEMORY
-+ * NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD
-+ *
-+ * Return value:
-+ * NULL upon failure
-+ * An nssArenaMark pointer upon success
-+ */
-+
-+NSS_EXTERN nssArenaMark *
-+nssArena_Mark
-+(
-+ NSSArena *arena
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_ARENA;
-+extern const NSSError NSS_ERROR_NO_MEMORY;
-+extern const NSSError NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD;
-+
-+/*
-+ * nssArena_Release
-+ *
-+ * This routine invalidates and releases all memory allocated from
-+ * the specified arena after the point at which the specified mark
-+ * was obtained. This routine returns a PRStatus value; if successful,
-+ * it will return PR_SUCCESS. If unsuccessful, it will set an error
-+ * on the error stack and return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ARENA
-+ * NSS_ERROR_INVALID_ARENA_MARK
-+ * NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD
-+ *
-+ * Return value:
-+ * PR_SUCCESS
-+ * PR_FAILURE
-+ */
-+
-+NSS_EXTERN PRStatus
-+nssArena_Release
-+(
-+ NSSArena *arena,
-+ nssArenaMark *arenaMark
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_ARENA;
-+extern const NSSError NSS_ERROR_INVALID_ARENA_MARK;
-+
-+/*
-+ * nssArena_Unmark
-+ *
-+ * This routine "commits" the indicated mark and any marks after
-+ * it, making them unreleasable. Note that any earlier marks can
-+ * still be released, and such a release will invalidate these
-+ * later unmarked regions. If an arena is to be safely shared by
-+ * more than one thread, all marks must be either released or
-+ * unmarked. This routine returns a PRStatus value; if successful,
-+ * it will return PR_SUCCESS. If unsuccessful, it will set an error
-+ * on the error stack and return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ARENA
-+ * NSS_ERROR_INVALID_ARENA_MARK
-+ * NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD
-+ *
-+ * Return value:
-+ * PR_SUCCESS
-+ * PR_FAILURE
-+ */
-+
-+NSS_EXTERN PRStatus
-+nssArena_Unmark
-+(
-+ NSSArena *arena,
-+ nssArenaMark *arenaMark
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_ARENA;
-+extern const NSSError NSS_ERROR_INVALID_ARENA_MARK;
-+extern const NSSError NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD;
-+
-+#ifdef ARENA_DESTRUCTOR_LIST
-+
-+/*
-+ * nssArena_registerDestructor
-+ *
-+ * This routine stores a pointer to a callback and an arbitrary
-+ * pointer-sized argument in the arena, at the current point in
-+ * the mark stack. If the arena is destroyed, or an "earlier"
-+ * mark is released, then this destructor will be called at that
-+ * time. Note that the destructor will be called with the arena
-+ * locked, which means the destructor may free memory in that
-+ * arena, but it may not allocate or cause to be allocated any
-+ * memory. This callback facility was included to support our
-+ * debug-version pointer-tracker feature; overuse runs counter to
-+ * the the original intent of arenas. This routine returns a
-+ * PRStatus value; if successful, it will return PR_SUCCESS. If
-+ * unsuccessful, it will set an error on the error stack and
-+ * return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ARENA
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * PR_SUCCESS
-+ * PR_FAILURE
-+ */
-+
-+NSS_EXTERN PRStatus
-+nssArena_registerDestructor
-+(
-+ NSSArena *arena,
-+ void (*destructor)(void *argument),
-+ void *arg
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_ARENA;
-+extern const NSSError NSS_ERROR_NO_MEMORY;
-+
-+/*
-+ * nssArena_deregisterDestructor
-+ *
-+ * This routine will remove the first destructor in the specified
-+ * arena which has the specified destructor and argument values.
-+ * The destructor will not be called. This routine returns a
-+ * PRStatus value; if successful, it will return PR_SUCCESS. If
-+ * unsuccessful, it will set an error on the error stack and
-+ * return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ARENA
-+ * NSS_ERROR_NOT_FOUND
-+ *
-+ * Return value:
-+ * PR_SUCCESS
-+ * PR_FAILURE
-+ */
-+
-+NSS_EXTERN PRStatus
-+nssArena_deregisterDestructor
-+(
-+ NSSArena *arena,
-+ void (*destructor)(void *argument),
-+ void *arg
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_ITEM;
-+extern const NSSError NSS_ERROR_INVALID_ARENA;
-+extern const NSSError NSS_ERROR_NOT_FOUND;
-+
-+#endif /* ARENA_DESTRUCTOR_LIST */
-+
-+/*
-+ * nss_ZAlloc
-+ *
-+ * This routine allocates and zeroes a section of memory of the
-+ * size, and returns to the caller a pointer to that memory. If
-+ * the optional arena argument is non-null, the memory will be
-+ * obtained from that arena; otherwise, the memory will be obtained
-+ * from the heap. This routine may return NULL upon error, in
-+ * which case it will have set an error upon the error stack. The
-+ * value specified for size may be zero; in which case a valid
-+ * zero-length block of memory will be allocated. This block may
-+ * be expanded by calling nss_ZRealloc.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ARENA
-+ * NSS_ERROR_NO_MEMORY
-+ * NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to the new segment of zeroed memory
-+ */
-+
-+NSS_EXTERN void *
-+nss_ZAlloc
-+(
-+ NSSArena *arenaOpt,
-+ PRUint32 size
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_ARENA;
-+extern const NSSError NSS_ERROR_NO_MEMORY;
-+extern const NSSError NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD;
-+
-+/*
-+ * nss_ZFreeIf
-+ *
-+ * If the specified pointer is non-null, then the region of memory
-+ * to which it points -- which must have been allocated with
-+ * nss_ZAlloc -- will be zeroed and released. This routine
-+ * returns a PRStatus value; if successful, it will return PR_SUCCESS.
-+ * If unsuccessful, it will set an error on the error stack and return
-+ * PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_POINTER
-+ *
-+ * Return value:
-+ * PR_SUCCESS
-+ * PR_FAILURE
-+ */
-+
-+NSS_EXTERN PRStatus
-+nss_ZFreeIf
-+(
-+ void *pointer
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_POINTER;
-+
-+/*
-+ * nss_ZRealloc
-+ *
-+ * This routine reallocates a block of memory obtained by calling
-+ * nss_ZAlloc or nss_ZRealloc. The portion of memory
-+ * between the new and old sizes -- which is either being newly
-+ * obtained or released -- is in either case zeroed. This routine
-+ * may return NULL upon failure, in which case it will have placed
-+ * an error on the error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_POINTER
-+ * NSS_ERROR_NO_MEMORY
-+ * NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to the replacement segment of memory
-+ */
-+
-+NSS_EXTERN void *
-+nss_ZRealloc
-+(
-+ void *pointer,
-+ PRUint32 newSize
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_POINTER;
-+extern const NSSError NSS_ERROR_NO_MEMORY;
-+extern const NSSError NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD;
-+
-+/*
-+ * nss_ZNEW
-+ *
-+ * This preprocessor macro will allocate memory for a new object
-+ * of the specified type with nss_ZAlloc, and will cast the
-+ * return value appropriately. If the optional arena argument is
-+ * non-null, the memory will be obtained from that arena; otherwise,
-+ * the memory will be obtained from the heap. This routine may
-+ * return NULL upon error, in which case it will have set an error
-+ * upon the error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ARENA
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to the new segment of zeroed memory
-+ */
-+
-+/* The following line exceeds 72 characters, but emacs screws up if I split it. */
-+#define nss_ZNEW(arenaOpt, type) ((type *)nss_ZAlloc((arenaOpt), sizeof(type)))
-+
-+/*
-+ * nss_ZNEWARRAY
-+ *
-+ * This preprocessor macro will allocate memory for an array of
-+ * new objects, and will cast the return value appropriately.
-+ * If the optional arena argument is non-null, the memory will
-+ * be obtained from that arena; otherwise, the memory will be
-+ * obtained from the heap. This routine may return NULL upon
-+ * error, in which case it will have set an error upon the error
-+ * stack. The array size may be specified as zero.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ARENA
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to the new segment of zeroed memory
-+ */
-+
-+/* The following line exceeds 72 characters, but emacs screws up if I split it. */
-+#define nss_ZNEWARRAY(arenaOpt, type, quantity) ((type *)nss_ZAlloc((arenaOpt), sizeof(type) * (quantity)))
-+
-+/*
-+ * nss_ZREALLOCARRAY
-+ *
-+ * This preprocessor macro will reallocate memory for an array of
-+ * new objects, and will cast the return value appropriately.
-+ * This routine may return NULL upon error, in which case it will
-+ * have set an error upon the error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_POINTER
-+ * NSS_ERROR_NO_MEMORY
-+ * NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to the replacement segment of memory
-+ */
-+#define nss_ZREALLOCARRAY(p, type, quantity) ((type *)nss_ZRealloc((p), sizeof(type) * (quantity)))
-+
-+/*
-+ * nssArena_verifyPointer
-+ *
-+ * This method is only present in debug builds.
-+ *
-+ * If the specified pointer is a valid pointer to an NSSArena object,
-+ * this routine will return PR_SUCCESS. Otherwise, it will put an
-+ * error on the error stack and return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ARENA
-+ *
-+ * Return value:
-+ * PR_SUCCESS if the pointer is valid
-+ * PR_FAILURE if it isn't
-+ */
-+
-+#ifdef DEBUG
-+NSS_EXTERN PRStatus
-+nssArena_verifyPointer
-+(
-+ const NSSArena *arena
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_ARENA;
-+#endif /* DEBUG */
-+
-+/*
-+ * nssArena_VERIFYPOINTER
-+ *
-+ * This macro is always available. In debug builds it will call
-+ * nssArena_verifyPointer; in non-debug builds, it will merely
-+ * check that the pointer is not null. Note that in non-debug
-+ * builds it cannot place an error on the error stack.
-+ *
-+ * Return value:
-+ * PR_SUCCESS if the pointer is valid
-+ * PR_FAILURE if it isn't
-+ */
-+
-+#ifdef DEBUG
-+#define nssArena_VERIFYPOINTER(p) nssArena_verifyPointer(p)
-+#else /* DEBUG */
-+/* The following line exceeds 72 characters, but emacs screws up if I split it. */
-+#define nssArena_VERIFYPOINTER(p) (((NSSArena *)NULL == (p))?PR_FAILURE:PR_SUCCESS)
-+#endif /* DEBUG */
-+
-+/*
-+ * nssArenaHashAllocOps
-+ *
-+ * This constant structure contains allocation callbacks designed for
-+ * use with the NSPL routine PL_NewHashTable. For example:
-+ *
-+ * NSSArena *hashTableArena = nssArena_Create();
-+ * PLHashTable *t = PL_NewHashTable(n, hasher, key_compare,
-+ * value_compare, nssArenaHashAllocOps, hashTableArena);
-+ */
-+
-+NSS_EXTERN_DATA PLHashAllocOps nssArenaHashAllocOps;
-+
-+/*
-+ * The error stack
-+ *
-+ * The nonpublic methods relating to the error stack are:
-+ *
-+ * nss_SetError
-+ * nss_ClearErrorStack
-+ */
-+
-+/*
-+ * nss_SetError
-+ *
-+ * This routine places a new error code on the top of the calling
-+ * thread's error stack. Calling this routine wiht an error code
-+ * of zero will clear the error stack.
-+ */
-+
-+NSS_EXTERN void
-+nss_SetError
-+(
-+ PRUint32 error
-+);
-+
-+/*
-+ * nss_ClearErrorStack
-+ *
-+ * This routine clears the calling thread's error stack.
-+ */
-+
-+NSS_EXTERN void
-+nss_ClearErrorStack
-+(
-+ void
-+);
-+
-+/*
-+ * NSSItem
-+ *
-+ * nssItem_Create
-+ * nssItem_Duplicate
-+ * nssItem_Equal
-+ */
-+
-+NSS_EXTERN NSSItem *
-+nssItem_Create
-+(
-+ NSSArena *arenaOpt,
-+ NSSItem *rvOpt,
-+ PRUint32 length,
-+ const void *data
-+);
-+
-+NSS_EXTERN void
-+nssItem_Destroy
-+(
-+ NSSItem *item
-+);
-+
-+NSS_EXTERN NSSItem *
-+nssItem_Duplicate
-+(
-+ NSSItem *obj,
-+ NSSArena *arenaOpt,
-+ NSSItem *rvOpt
-+);
-+
-+NSS_EXTERN PRBool
-+nssItem_Equal
-+(
-+ const NSSItem *one,
-+ const NSSItem *two,
-+ PRStatus *statusOpt
-+);
-+
-+/*
-+ * NSSUTF8
-+ *
-+ * nssUTF8_CaseIgnoreMatch
-+ * nssUTF8_Duplicate
-+ * nssUTF8_Size
-+ * nssUTF8_Length
-+ * nssUTF8_CopyIntoFixedBuffer
-+ */
-+
-+/*
-+ * nssUTF8_CaseIgnoreMatch
-+ *
-+ * Returns true if the two UTF8-encoded strings pointed to by the
-+ * two specified NSSUTF8 pointers differ only in typcase.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_POINTER
-+ *
-+ * Return value:
-+ * PR_TRUE if the strings match, ignoring case
-+ * PR_FALSE if they don't
-+ * PR_FALSE upon error
-+ */
-+
-+NSS_EXTERN PRBool
-+nssUTF8_CaseIgnoreMatch
-+(
-+ const NSSUTF8 *a,
-+ const NSSUTF8 *b,
-+ PRStatus *statusOpt
-+);
-+
-+/*
-+ * nssUTF8_Duplicate
-+ *
-+ * This routine duplicates the UTF8-encoded string pointed to by the
-+ * specified NSSUTF8 pointer. If the optional arenaOpt argument is
-+ * not null, the memory required will be obtained from that arena;
-+ * otherwise, the memory required will be obtained from the heap.
-+ * A pointer to the new string will be returned. In case of error,
-+ * an error will be placed on the error stack and NULL will be
-+ * returned.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_POINTER
-+ * NSS_ERROR_INVALID_ARENA
-+ * NSS_ERROR_NO_MEMORY
-+ */
-+
-+NSS_EXTERN NSSUTF8 *
-+nssUTF8_Duplicate
-+(
-+ const NSSUTF8 *s,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * nssUTF8_PrintableMatch
-+ *
-+ * Returns true if the two Printable strings pointed to by the
-+ * two specified NSSUTF8 pointers match when compared with the
-+ * rules for Printable String (leading and trailing spaces are
-+ * disregarded, extents of whitespace match irregardless of length,
-+ * and case is not significant), then PR_TRUE will be returned.
-+ * Otherwise, PR_FALSE will be returned. Upon failure, PR_FALSE
-+ * will be returned. If the optional statusOpt argument is not
-+ * NULL, then PR_SUCCESS or PR_FAILURE will be stored in that
-+ * location.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_POINTER
-+ *
-+ * Return value:
-+ * PR_TRUE if the strings match, ignoring case
-+ * PR_FALSE if they don't
-+ * PR_FALSE upon error
-+ */
-+
-+NSS_EXTERN PRBool
-+nssUTF8_PrintableMatch
-+(
-+ const NSSUTF8 *a,
-+ const NSSUTF8 *b,
-+ PRStatus *statusOpt
-+);
-+
-+/*
-+ * nssUTF8_Size
-+ *
-+ * This routine returns the length in bytes (including the terminating
-+ * null) of the UTF8-encoded string pointed to by the specified
-+ * NSSUTF8 pointer. Zero is returned on error.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_POINTER
-+ * NSS_ERROR_VALUE_TOO_LARGE
-+ *
-+ * Return value:
-+ * nonzero size of the string
-+ * 0 on error
-+ */
-+
-+NSS_EXTERN PRUint32
-+nssUTF8_Size
-+(
-+ const NSSUTF8 *s,
-+ PRStatus *statusOpt
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_POINTER;
-+extern const NSSError NSS_ERROR_VALUE_TOO_LARGE;
-+
-+/*
-+ * nssUTF8_Length
-+ *
-+ * This routine returns the length in characters (not including the
-+ * terminating null) of the UTF8-encoded string pointed to by the
-+ * specified NSSUTF8 pointer.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_POINTER
-+ * NSS_ERROR_VALUE_TOO_LARGE
-+ * NSS_ERROR_INVALID_STRING
-+ *
-+ * Return value:
-+ * length of the string (which may be zero)
-+ * 0 on error
-+ */
-+
-+NSS_EXTERN PRUint32
-+nssUTF8_Length
-+(
-+ const NSSUTF8 *s,
-+ PRStatus *statusOpt
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_POINTER;
-+extern const NSSError NSS_ERROR_VALUE_TOO_LARGE;
-+extern const NSSError NSS_ERROR_INVALID_STRING;
-+
-+/*
-+ * nssUTF8_Create
-+ *
-+ * This routine creates a UTF8 string from a string in some other
-+ * format. Some types of string may include embedded null characters,
-+ * so for them the length parameter must be used. For string types
-+ * that are null-terminated, the length parameter is optional; if it
-+ * is zero, it will be ignored. If the optional arena argument is
-+ * non-null, the memory used for the new string will be obtained from
-+ * that arena, otherwise it will be obtained from the heap. This
-+ * routine may return NULL upon error, in which case it will have
-+ * placed an error on the error stack.
-+ *
-+ * The error may be one of the following:
-+ * NSS_ERROR_INVALID_POINTER
-+ * NSS_ERROR_NO_MEMORY
-+ * NSS_ERROR_UNSUPPORTED_TYPE
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A non-null pointer to a new UTF8 string otherwise
-+ */
-+
-+NSS_EXTERN NSSUTF8 *
-+nssUTF8_Create
-+(
-+ NSSArena *arenaOpt,
-+ nssStringType type,
-+ const void *inputString,
-+ PRUint32 size /* in bytes, not characters */
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_POINTER;
-+extern const NSSError NSS_ERROR_NO_MEMORY;
-+extern const NSSError NSS_ERROR_UNSUPPORTED_TYPE;
-+
-+NSS_EXTERN NSSItem *
-+nssUTF8_GetEncoding
-+(
-+ NSSArena *arenaOpt,
-+ NSSItem *rvOpt,
-+ nssStringType type,
-+ NSSUTF8 *string
-+);
-+
-+/*
-+ * nssUTF8_CopyIntoFixedBuffer
-+ *
-+ * This will copy a UTF8 string into a fixed-length buffer, making
-+ * sure that the all characters are valid. Any remaining space will
-+ * be padded with the specified ASCII character, typically either
-+ * null or space.
-+ *
-+ * Blah, blah, blah.
-+ */
-+
-+extern const NSSError NSS_ERROR_INVALID_POINTER;
-+extern const NSSError NSS_ERROR_INVALID_ARGUMENT;
-+
-+NSS_EXTERN PRStatus
-+nssUTF8_CopyIntoFixedBuffer
-+(
-+ NSSUTF8 *string,
-+ char *buffer,
-+ PRUint32 bufferSize,
-+ char pad
-+);
-+
-+/*
-+ * nssUTF8_Equal
-+ *
-+ */
-+
-+NSS_EXTERN PRBool
-+nssUTF8_Equal
-+(
-+ const NSSUTF8 *a,
-+ const NSSUTF8 *b,
-+ PRStatus *statusOpt
-+);
-+
-+/*
-+ * nssList
-+ *
-+ * The goal is to provide a simple, optionally threadsafe, linked list
-+ * class. Since NSS did not seem to use the circularity of PRCList
-+ * much before, this provides a list that appears to be a linear,
-+ * NULL-terminated list.
-+ */
-+
-+/*
-+ * nssList_Create
-+ *
-+ * If threadsafe is true, the list will be locked during modifications
-+ * and traversals.
-+ */
-+NSS_EXTERN nssList *
-+nssList_Create
-+(
-+ NSSArena *arenaOpt,
-+ PRBool threadSafe
-+);
-+
-+/*
-+ * nssList_Destroy
-+ */
-+NSS_EXTERN PRStatus
-+nssList_Destroy
-+(
-+ nssList *list
-+);
-+
-+NSS_EXTERN void
-+nssList_Clear
-+(
-+ nssList *list,
-+ nssListElementDestructorFunc destructor
-+);
-+
-+/*
-+ * nssList_SetCompareFunction
-+ *
-+ * By default, two list elements will be compared by comparing their
-+ * data pointers. By setting this function, the user can control
-+ * how elements are compared.
-+ */
-+NSS_EXTERN void
-+nssList_SetCompareFunction
-+(
-+ nssList *list,
-+ nssListCompareFunc compareFunc
-+);
-+
-+/*
-+ * nssList_SetSortFunction
-+ *
-+ * Sort function to use for an ordered list.
-+ */
-+NSS_EXTERN void
-+nssList_SetSortFunction
-+(
-+ nssList *list,
-+ nssListSortFunc sortFunc
-+);
-+
-+/*
-+ * nssList_Add
-+ */
-+NSS_EXTERN PRStatus
-+nssList_Add
-+(
-+ nssList *list,
-+ void *data
-+);
-+
-+/*
-+ * nssList_AddUnique
-+ *
-+ * This will use the compare function to see if the element is already
-+ * in the list.
-+ */
-+NSS_EXTERN PRStatus
-+nssList_AddUnique
-+(
-+ nssList *list,
-+ void *data
-+);
-+
-+/*
-+ * nssList_Remove
-+ *
-+ * Uses the compare function to locate the element and remove it.
-+ */
-+NSS_EXTERN PRStatus
-+nssList_Remove(nssList *list, void *data);
-+
-+/*
-+ * nssList_Get
-+ *
-+ * Uses the compare function to locate an element. Also serves as
-+ * nssList_Exists.
-+ */
-+NSS_EXTERN void *
-+nssList_Get
-+(
-+ nssList *list,
-+ void *data
-+);
-+
-+/*
-+ * nssList_Count
-+ */
-+NSS_EXTERN PRUint32
-+nssList_Count
-+(
-+ nssList *list
-+);
-+
-+/*
-+ * nssList_GetArray
-+ *
-+ * Fill rvArray, up to maxElements, with elements in the list. The
-+ * array is NULL-terminated, so its allocated size must be maxElements + 1.
-+ */
-+NSS_EXTERN PRStatus
-+nssList_GetArray
-+(
-+ nssList *list,
-+ void **rvArray,
-+ PRUint32 maxElements
-+);
-+
-+/*
-+ * nssList_CreateIterator
-+ *
-+ * Create an iterator for list traversal.
-+ */
-+NSS_EXTERN nssListIterator *
-+nssList_CreateIterator
-+(
-+ nssList *list
-+);
-+
-+NSS_EXTERN nssList *
-+nssList_Clone
-+(
-+ nssList *list
-+);
-+
-+/*
-+ * nssListIterator_Destroy
-+ */
-+NSS_EXTERN void
-+nssListIterator_Destroy
-+(
-+ nssListIterator *iter
-+);
-+
-+/*
-+ * nssListIterator_Start
-+ *
-+ * Begin a list iteration. After this call, if the list is threadSafe,
-+ * the list is *locked*.
-+ */
-+NSS_EXTERN void *
-+nssListIterator_Start
-+(
-+ nssListIterator *iter
-+);
-+
-+/*
-+ * nssListIterator_Next
-+ *
-+ * Continue a list iteration.
-+ */
-+NSS_EXTERN void *
-+nssListIterator_Next
-+(
-+ nssListIterator *iter
-+);
-+
-+/*
-+ * nssListIterator_Finish
-+ *
-+ * Complete a list iteration. This *must* be called in order for the
-+ * lock to be released.
-+ */
-+NSS_EXTERN PRStatus
-+nssListIterator_Finish
-+(
-+ nssListIterator *iter
-+);
-+
-+/*
-+ * nssHash
-+ *
-+ * nssHash_Create
-+ * nssHash_Destroy
-+ * nssHash_Add
-+ * nssHash_Remove
-+ * nssHash_Count
-+ * nssHash_Exists
-+ * nssHash_Lookup
-+ * nssHash_Iterate
-+ */
-+
-+/*
-+ * nssHash_Create
-+ *
-+ */
-+
-+NSS_EXTERN nssHash *
-+nssHash_Create
-+(
-+ NSSArena *arenaOpt,
-+ PRUint32 numBuckets,
-+ PLHashFunction keyHash,
-+ PLHashComparator keyCompare,
-+ PLHashComparator valueCompare
-+);
-+
-+NSS_EXTERN nssHash *
-+nssHash_CreatePointer
-+(
-+ NSSArena *arenaOpt,
-+ PRUint32 numBuckets
-+);
-+
-+NSS_EXTERN nssHash *
-+nssHash_CreateString
-+(
-+ NSSArena *arenaOpt,
-+ PRUint32 numBuckets
-+);
-+
-+NSS_EXTERN nssHash *
-+nssHash_CreateItem
-+(
-+ NSSArena *arenaOpt,
-+ PRUint32 numBuckets
-+);
-+
-+/*
-+ * nssHash_Destroy
-+ *
-+ */
-+NSS_EXTERN void
-+nssHash_Destroy
-+(
-+ nssHash *hash
-+);
-+
-+/*
-+ * nssHash_Add
-+ *
-+ */
-+
-+extern const NSSError NSS_ERROR_HASH_COLLISION;
-+
-+NSS_EXTERN PRStatus
-+nssHash_Add
-+(
-+ nssHash *hash,
-+ const void *key,
-+ const void *value
-+);
-+
-+/*
-+ * nssHash_Remove
-+ *
-+ */
-+NSS_EXTERN void
-+nssHash_Remove
-+(
-+ nssHash *hash,
-+ const void *it
-+);
-+
-+/*
-+ * nssHash_Count
-+ *
-+ */
-+NSS_EXTERN PRUint32
-+nssHash_Count
-+(
-+ nssHash *hash
-+);
-+
-+/*
-+ * nssHash_Exists
-+ *
-+ */
-+NSS_EXTERN PRBool
-+nssHash_Exists
-+(
-+ nssHash *hash,
-+ const void *it
-+);
-+
-+/*
-+ * nssHash_Lookup
-+ *
-+ */
-+NSS_EXTERN void *
-+nssHash_Lookup
-+(
-+ nssHash *hash,
-+ const void *it
-+);
-+
-+/*
-+ * nssHash_Iterate
-+ *
-+ */
-+NSS_EXTERN void
-+nssHash_Iterate
-+(
-+ nssHash *hash,
-+ nssHashIterator fcn,
-+ void *closure
-+);
-+
-+
-+/*
-+ * nssPointerTracker
-+ *
-+ * This type and these methods are only present in debug builds.
-+ *
-+ * The nonpublic methods relating to this type are:
-+ *
-+ * nssPointerTracker_initialize
-+ * nssPointerTracker_finalize
-+ * nssPointerTracker_add
-+ * nssPointerTracker_remove
-+ * nssPointerTracker_verify
-+ */
-+
-+/*
-+ * nssPointerTracker_initialize
-+ *
-+ * This method is only present in debug builds.
-+ *
-+ * This routine initializes an nssPointerTracker object. Note that
-+ * the object must have been declared *static* to guarantee that it
-+ * is in a zeroed state initially. This routine is idempotent, and
-+ * may even be safely called by multiple threads simultaneously with
-+ * the same argument. This routine returns a PRStatus value; if
-+ * successful, it will return PR_SUCCESS. On failure it will set an
-+ * error on the error stack and return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * PR_SUCCESS
-+ * PR_FAILURE
-+ */
-+
-+#ifdef DEBUG
-+NSS_EXTERN PRStatus
-+nssPointerTracker_initialize
-+(
-+ nssPointerTracker *tracker
-+);
-+
-+extern const NSSError NSS_ERROR_NO_MEMORY;
-+#endif /* DEBUG */
-+
-+/*
-+ * nssPointerTracker_finalize
-+ *
-+ * This method is only present in debug builds.
-+ *
-+ * This routine returns the nssPointerTracker object to the pre-
-+ * initialized state, releasing all resources used by the object.
-+ * It will *NOT* destroy the objects being tracked by the pointer
-+ * (should any remain), and therefore cannot be used to "sweep up"
-+ * remaining objects. This routine returns a PRStatus value; if
-+ * successful, it will return PR_SUCCES. On failure it will set an
-+ * error on the error stack and return PR_FAILURE. If any objects
-+ * remain in the tracker when it is finalized, that will be treated
-+ * as an error.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_TRACKER_NOT_EMPTY
-+ *
-+ * Return value:
-+ * PR_SUCCESS
-+ * PR_FAILURE
-+ */
-+
-+#ifdef DEBUG
-+NSS_EXTERN PRStatus
-+nssPointerTracker_finalize
-+(
-+ nssPointerTracker *tracker
-+);
-+
-+extern const NSSError NSS_ERROR_TRACKER_NOT_EMPTY;
-+#endif /* DEBUG */
-+
-+/*
-+ * nssPointerTracker_add
-+ *
-+ * This method is only present in debug builds.
-+ *
-+ * This routine adds the specified pointer to the nssPointerTracker
-+ * object. It should be called in constructor objects to register
-+ * new valid objects. The nssPointerTracker is threadsafe, but this
-+ * call is not idempotent. This routine returns a PRStatus value;
-+ * if successful it will return PR_SUCCESS. On failure it will set
-+ * an error on the error stack and return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_NO_MEMORY
-+ * NSS_ERROR_TRACKER_NOT_INITIALIZED
-+ * NSS_ERROR_DUPLICATE_POINTER
-+ *
-+ * Return value:
-+ * PR_SUCCESS
-+ * PR_FAILURE
-+ */
-+
-+#ifdef DEBUG
-+NSS_EXTERN PRStatus
-+nssPointerTracker_add
-+(
-+ nssPointerTracker *tracker,
-+ const void *pointer
-+);
-+
-+extern const NSSError NSS_ERROR_NO_MEMORY;
-+extern const NSSError NSS_ERROR_TRACKER_NOT_INITIALIZED;
-+extern const NSSError NSS_ERROR_DUPLICATE_POINTER;
-+#endif /* DEBUG */
-+
-+/*
-+ * nssPointerTracker_remove
-+ *
-+ * This method is only present in debug builds.
-+ *
-+ * This routine removes the specified pointer from the
-+ * nssPointerTracker object. It does not call any destructor for the
-+ * object; rather, this should be called from the object's destructor.
-+ * The nssPointerTracker is threadsafe, but this call is not
-+ * idempotent. This routine returns a PRStatus value; if successful
-+ * it will return PR_SUCCESS. On failure it will set an error on the
-+ * error stack and return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_TRACKER_NOT_INITIALIZED
-+ * NSS_ERROR_POINTER_NOT_REGISTERED
-+ *
-+ * Return value:
-+ * PR_SUCCESS
-+ * PR_FAILURE
-+ */
-+
-+#ifdef DEBUG
-+NSS_EXTERN PRStatus
-+nssPointerTracker_remove
-+(
-+ nssPointerTracker *tracker,
-+ const void *pointer
-+);
-+
-+extern const NSSError NSS_ERROR_TRACKER_NOT_INITIALIZED;
-+extern const NSSError NSS_ERROR_POINTER_NOT_REGISTERED;
-+#endif /* DEBUG */
-+
-+/*
-+ * nssPointerTracker_verify
-+ *
-+ * This method is only present in debug builds.
-+ *
-+ * This routine verifies that the specified pointer has been registered
-+ * with the nssPointerTracker object. The nssPointerTracker object is
-+ * threadsafe, and this call may be safely called from multiple threads
-+ * simultaneously with the same arguments. This routine returns a
-+ * PRStatus value; if the pointer is registered this will return
-+ * PR_SUCCESS. Otherwise it will set an error on the error stack and
-+ * return PR_FAILURE. Although the error is suitable for leaving on
-+ * the stack, callers may wish to augment the information available by
-+ * placing a more type-specific error on the stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_POINTER_NOT_REGISTERED
-+ *
-+ * Return value:
-+ * PR_SUCCESS
-+ * PR_FAILRUE
-+ */
-+
-+#ifdef DEBUG
-+NSS_EXTERN PRStatus
-+nssPointerTracker_verify
-+(
-+ nssPointerTracker *tracker,
-+ const void *pointer
-+);
-+
-+extern const NSSError NSS_ERROR_POINTER_NOT_REGISTERED;
-+#endif /* DEBUG */
-+
-+/*
-+ * libc
-+ *
-+ * nsslibc_memcpy
-+ * nsslibc_memset
-+ * nsslibc_offsetof
-+ */
-+
-+/*
-+ * nsslibc_memcpy
-+ *
-+ * Errors:
-+ * NSS_ERROR_INVALID_POINTER
-+ *
-+ * Return value:
-+ * NULL on error
-+ * The destination pointer on success
-+ */
-+
-+NSS_EXTERN void *
-+nsslibc_memcpy
-+(
-+ void *dest,
-+ const void *source,
-+ PRUint32 n
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_POINTER;
-+
-+/*
-+ * nsslibc_memset
-+ *
-+ * Errors:
-+ * NSS_ERROR_INVALID_POINTER
-+ *
-+ * Return value:
-+ * NULL on error
-+ * The destination pointer on success
-+ */
-+
-+NSS_EXTERN void *
-+nsslibc_memset
-+(
-+ void *dest,
-+ PRUint8 byte,
-+ PRUint32 n
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_POINTER;
-+
-+/*
-+ * nsslibc_memequal
-+ *
-+ * Errors:
-+ * NSS_ERROR_INVALID_POINTER
-+ *
-+ * Return value:
-+ * PR_TRUE if they match
-+ * PR_FALSE if they don't
-+ * PR_FALSE upon error
-+ */
-+
-+NSS_EXTERN PRBool
-+nsslibc_memequal
-+(
-+ const void *a,
-+ const void *b,
-+ PRUint32 len,
-+ PRStatus *statusOpt
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_POINTER;
-+
-+#define nsslibc_offsetof(str, memb) ((PRPtrdiff)(&(((str *)0)->memb)))
-+
-+/*
-+ * nss_NewThreadPrivateIndex
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+nss_NewThreadPrivateIndex
-+(
-+ PRUintn *ip,
-+ PRThreadPrivateDTOR dtor
-+);
-+
-+/*
-+ * nss_GetThreadPrivate
-+ *
-+ */
-+
-+NSS_EXTERN void *
-+nss_GetThreadPrivate
-+(
-+ PRUintn i
-+);
-+
-+/*
-+ * nss_SetThreadPrivate
-+ *
-+ */
-+
-+NSS_EXTERN void
-+nss_SetThreadPrivate
-+(
-+ PRUintn i,
-+ void *v
-+);
-+
-+
-+PR_END_EXTERN_C
-+
-+#endif /* BASE_H */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/base_utf8.c 2004-12-13 13:06:46.847375208 +0100
-@@ -0,0 +1,759 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+/*
-+ * utf8.c
-+ *
-+ * This file contains some additional utility routines required for
-+ * handling UTF8 strings.
-+ */
-+
-+#ifndef BASE_H
-+#include "base.h"
-+#endif /* BASE_H */
-+
-+#include "plstr.h"
-+
-+/*
-+ * NOTES:
-+ *
-+ * There's an "is hex string" function in pki1/atav.c. If we need
-+ * it in more places, pull that one out.
-+ */
-+
-+/*
-+ * nssUTF8_CaseIgnoreMatch
-+ *
-+ * Returns true if the two UTF8-encoded strings pointed to by the
-+ * two specified NSSUTF8 pointers differ only in typcase.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_POINTER
-+ *
-+ * Return value:
-+ * PR_TRUE if the strings match, ignoring case
-+ * PR_FALSE if they don't
-+ * PR_FALSE upon error
-+ */
-+
-+NSS_IMPLEMENT PRBool
-+nssUTF8_CaseIgnoreMatch
-+(
-+ const NSSUTF8 *a,
-+ const NSSUTF8 *b,
-+ PRStatus *statusOpt
-+)
-+{
-+#ifdef NSSDEBUG
-+ if( ((const NSSUTF8 *)NULL == a) ||
-+ ((const NSSUTF8 *)NULL == b) ) {
-+ nss_SetError(NSS_ERROR_INVALID_POINTER);
-+ if( (PRStatus *)NULL != statusOpt ) {
-+ *statusOpt = PR_FAILURE;
-+ }
-+ return PR_FALSE;
-+ }
-+#endif /* NSSDEBUG */
-+
-+ if( (PRStatus *)NULL != statusOpt ) {
-+ *statusOpt = PR_SUCCESS;
-+ }
-+
-+ /*
-+ * XXX fgmr
-+ *
-+ * This is, like, so wrong!
-+ */
-+ if( 0 == PL_strcasecmp((const char *)a, (const char *)b) ) {
-+ return PR_TRUE;
-+ } else {
-+ return PR_FALSE;
-+ }
-+}
-+
-+/*
-+ * nssUTF8_PrintableMatch
-+ *
-+ * Returns true if the two Printable strings pointed to by the
-+ * two specified NSSUTF8 pointers match when compared with the
-+ * rules for Printable String (leading and trailing spaces are
-+ * disregarded, extents of whitespace match irregardless of length,
-+ * and case is not significant), then PR_TRUE will be returned.
-+ * Otherwise, PR_FALSE will be returned. Upon failure, PR_FALSE
-+ * will be returned. If the optional statusOpt argument is not
-+ * NULL, then PR_SUCCESS or PR_FAILURE will be stored in that
-+ * location.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_POINTER
-+ *
-+ * Return value:
-+ * PR_TRUE if the strings match, ignoring case
-+ * PR_FALSE if they don't
-+ * PR_FALSE upon error
-+ */
-+
-+NSS_IMPLEMENT PRBool
-+nssUTF8_PrintableMatch
-+(
-+ const NSSUTF8 *a,
-+ const NSSUTF8 *b,
-+ PRStatus *statusOpt
-+)
-+{
-+ PRUint8 *c;
-+ PRUint8 *d;
-+
-+#ifdef NSSDEBUG
-+ if( ((const NSSUTF8 *)NULL == a) ||
-+ ((const NSSUTF8 *)NULL == b) ) {
-+ nss_SetError(NSS_ERROR_INVALID_POINTER);
-+ if( (PRStatus *)NULL != statusOpt ) {
-+ *statusOpt = PR_FAILURE;
-+ }
-+ return PR_FALSE;
-+ }
-+#endif /* NSSDEBUG */
-+
-+ if( (PRStatus *)NULL != statusOpt ) {
-+ *statusOpt = PR_SUCCESS;
-+ }
-+
-+ c = (PRUint8 *)a;
-+ d = (PRUint8 *)b;
-+
-+ while( ' ' == *c ) {
-+ c++;
-+ }
-+
-+ while( ' ' == *d ) {
-+ d++;
-+ }
-+
-+ while( ('\0' != *c) && ('\0' != *d) ) {
-+ PRUint8 e, f;
-+
-+ e = *c;
-+ f = *d;
-+
-+ if( ('a' <= e) && (e <= 'z') ) {
-+ e -= ('a' - 'A');
-+ }
-+
-+ if( ('a' <= f) && (f <= 'z') ) {
-+ f -= ('a' - 'A');
-+ }
-+
-+ if( e != f ) {
-+ return PR_FALSE;
-+ }
-+
-+ c++;
-+ d++;
-+
-+ if( ' ' == *c ) {
-+ while( ' ' == *c ) {
-+ c++;
-+ }
-+ c--;
-+ }
-+
-+ if( ' ' == *d ) {
-+ while( ' ' == *d ) {
-+ d++;
-+ }
-+ d--;
-+ }
-+ }
-+
-+ while( ' ' == *c ) {
-+ c++;
-+ }
-+
-+ while( ' ' == *d ) {
-+ d++;
-+ }
-+
-+ if( *c == *d ) {
-+ /* And both '\0', btw */
-+ return PR_TRUE;
-+ } else {
-+ return PR_FALSE;
-+ }
-+}
-+
-+/*
-+ * nssUTF8_Duplicate
-+ *
-+ * This routine duplicates the UTF8-encoded string pointed to by the
-+ * specified NSSUTF8 pointer. If the optional arenaOpt argument is
-+ * not null, the memory required will be obtained from that arena;
-+ * otherwise, the memory required will be obtained from the heap.
-+ * A pointer to the new string will be returned. In case of error,
-+ * an error will be placed on the error stack and NULL will be
-+ * returned.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_POINTER
-+ * NSS_ERROR_INVALID_ARENA
-+ * NSS_ERROR_NO_MEMORY
-+ */
-+
-+NSS_IMPLEMENT NSSUTF8 *
-+nssUTF8_Duplicate
-+(
-+ const NSSUTF8 *s,
-+ NSSArena *arenaOpt
-+)
-+{
-+ NSSUTF8 *rv;
-+ PRUint32 len;
-+
-+#ifdef NSSDEBUG
-+ if( (const NSSUTF8 *)NULL == s ) {
-+ nss_SetError(NSS_ERROR_INVALID_POINTER);
-+ return (NSSUTF8 *)NULL;
-+ }
-+
-+ if( (NSSArena *)NULL != arenaOpt ) {
-+ if( PR_SUCCESS != nssArena_verifyPointer(arenaOpt) ) {
-+ return (NSSUTF8 *)NULL;
-+ }
-+ }
-+#endif /* NSSDEBUG */
-+
-+ len = PL_strlen((const char *)s);
-+#ifdef PEDANTIC
-+ if( '\0' != ((const char *)s)[ len ] ) {
-+ /* must have wrapped, e.g., too big for PRUint32 */
-+ nss_SetError(NSS_ERROR_NO_MEMORY);
-+ return (NSSUTF8 *)NULL;
-+ }
-+#endif /* PEDANTIC */
-+ len++; /* zero termination */
-+
-+ rv = nss_ZAlloc(arenaOpt, len);
-+ if( (void *)NULL == rv ) {
-+ return (NSSUTF8 *)NULL;
-+ }
-+
-+ (void)nsslibc_memcpy(rv, s, len);
-+ return rv;
-+}
-+
-+/*
-+ * nssUTF8_Size
-+ *
-+ * This routine returns the length in bytes (including the terminating
-+ * null) of the UTF8-encoded string pointed to by the specified
-+ * NSSUTF8 pointer. Zero is returned on error.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_POINTER
-+ * NSS_ERROR_VALUE_TOO_LARGE
-+ *
-+ * Return value:
-+ * 0 on error
-+ * nonzero length of the string.
-+ */
-+
-+NSS_IMPLEMENT PRUint32
-+nssUTF8_Size
-+(
-+ const NSSUTF8 *s,
-+ PRStatus *statusOpt
-+)
-+{
-+ PRUint32 sv;
-+
-+#ifdef NSSDEBUG
-+ if( (const NSSUTF8 *)NULL == s ) {
-+ nss_SetError(NSS_ERROR_INVALID_POINTER);
-+ if( (PRStatus *)NULL != statusOpt ) {
-+ *statusOpt = PR_FAILURE;
-+ }
-+ return 0;
-+ }
-+#endif /* NSSDEBUG */
-+
-+ sv = PL_strlen((const char *)s) + 1;
-+#ifdef PEDANTIC
-+ if( '\0' != ((const char *)s)[ sv-1 ] ) {
-+ /* wrapped */
-+ nss_SetError(NSS_ERROR_VALUE_TOO_LARGE);
-+ if( (PRStatus *)NULL != statusOpt ) {
-+ *statusOpt = PR_FAILURE;
-+ }
-+ return 0;
-+ }
-+#endif /* PEDANTIC */
-+
-+ if( (PRStatus *)NULL != statusOpt ) {
-+ *statusOpt = PR_SUCCESS;
-+ }
-+
-+ return sv;
-+}
-+
-+/*
-+ * nssUTF8_Length
-+ *
-+ * This routine returns the length in characters (not including the
-+ * terminating null) of the UTF8-encoded string pointed to by the
-+ * specified NSSUTF8 pointer.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_POINTER
-+ * NSS_ERROR_VALUE_TOO_LARGE
-+ * NSS_ERROR_INVALID_STRING
-+ *
-+ * Return value:
-+ * length of the string (which may be zero)
-+ * 0 on error
-+ */
-+
-+NSS_IMPLEMENT PRUint32
-+nssUTF8_Length
-+(
-+ const NSSUTF8 *s,
-+ PRStatus *statusOpt
-+)
-+{
-+ PRUint32 l = 0;
-+ const PRUint8 *c = (const PRUint8 *)s;
-+
-+#ifdef NSSDEBUG
-+ if( (const NSSUTF8 *)NULL == s ) {
-+ nss_SetError(NSS_ERROR_INVALID_POINTER);
-+ goto loser;
-+ }
-+#endif /* NSSDEBUG */
-+
-+ /*
-+ * From RFC 2044:
-+ *
-+ * UCS-4 range (hex.) UTF-8 octet sequence (binary)
-+ * 0000 0000-0000 007F 0xxxxxxx
-+ * 0000 0080-0000 07FF 110xxxxx 10xxxxxx
-+ * 0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx
-+ * 0001 0000-001F FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
-+ * 0020 0000-03FF FFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
-+ * 0400 0000-7FFF FFFF 1111110x 10xxxxxx ... 10xxxxxx
-+ */
-+
-+ while( 0 != *c ) {
-+ PRUint32 incr;
-+ if( (*c & 0x80) == 0 ) {
-+ incr = 1;
-+ } else if( (*c & 0xE0) == 0xC0 ) {
-+ incr = 2;
-+ } else if( (*c & 0xF0) == 0xE0 ) {
-+ incr = 3;
-+ } else if( (*c & 0xF8) == 0xF0 ) {
-+ incr = 4;
-+ } else if( (*c & 0xFC) == 0xF8 ) {
-+ incr = 5;
-+ } else if( (*c & 0xFE) == 0xFC ) {
-+ incr = 6;
-+ } else {
-+ nss_SetError(NSS_ERROR_INVALID_STRING);
-+ goto loser;
-+ }
-+
-+ l += incr;
-+
-+#ifdef PEDANTIC
-+ if( l < incr ) {
-+ /* Wrapped-- too big */
-+ nss_SetError(NSS_ERROR_VALUE_TOO_LARGE);
-+ goto loser;
-+ }
-+
-+ {
-+ PRUint8 *d;
-+ for( d = &c[1]; d < &c[incr]; d++ ) {
-+ if( (*d & 0xC0) != 0xF0 ) {
-+ nss_SetError(NSS_ERROR_INVALID_STRING);
-+ goto loser;
-+ }
-+ }
-+ }
-+#endif /* PEDANTIC */
-+
-+ c += incr;
-+ }
-+
-+ if( (PRStatus *)NULL != statusOpt ) {
-+ *statusOpt = PR_SUCCESS;
-+ }
-+
-+ return l;
-+
-+ loser:
-+ if( (PRStatus *)NULL != statusOpt ) {
-+ *statusOpt = PR_FAILURE;
-+ }
-+
-+ return 0;
-+}
-+
-+
-+/*
-+ * nssUTF8_Create
-+ *
-+ * This routine creates a UTF8 string from a string in some other
-+ * format. Some types of string may include embedded null characters,
-+ * so for them the length parameter must be used. For string types
-+ * that are null-terminated, the length parameter is optional; if it
-+ * is zero, it will be ignored. If the optional arena argument is
-+ * non-null, the memory used for the new string will be obtained from
-+ * that arena, otherwise it will be obtained from the heap. This
-+ * routine may return NULL upon error, in which case it will have
-+ * placed an error on the error stack.
-+ *
-+ * The error may be one of the following:
-+ * NSS_ERROR_INVALID_POINTER
-+ * NSS_ERROR_NO_MEMORY
-+ * NSS_ERROR_UNSUPPORTED_TYPE
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A non-null pointer to a new UTF8 string otherwise
-+ */
-+
-+extern const NSSError NSS_ERROR_INTERNAL_ERROR; /* XXX fgmr */
-+
-+NSS_IMPLEMENT NSSUTF8 *
-+nssUTF8_Create
-+(
-+ NSSArena *arenaOpt,
-+ nssStringType type,
-+ const void *inputString,
-+ PRUint32 size /* in bytes, not characters */
-+)
-+{
-+ NSSUTF8 *rv = NULL;
-+
-+#ifdef NSSDEBUG
-+ if( (NSSArena *)NULL != arenaOpt ) {
-+ if( PR_SUCCESS != nssArena_verifyPointer(arenaOpt) ) {
-+ return (NSSUTF8 *)NULL;
-+ }
-+ }
-+
-+ if( (const void *)NULL == inputString ) {
-+ nss_SetError(NSS_ERROR_INVALID_POINTER);
-+ return (NSSUTF8 *)NULL;
-+ }
-+#endif /* NSSDEBUG */
-+
-+ switch( type ) {
-+ case nssStringType_DirectoryString:
-+ /* This is a composite type requiring BER */
-+ nss_SetError(NSS_ERROR_UNSUPPORTED_TYPE);
-+ break;
-+ case nssStringType_TeletexString:
-+ /*
-+ * draft-ietf-pkix-ipki-part1-11 says in part:
-+ *
-+ * In addition, many legacy implementations support names encoded
-+ * in the ISO 8859-1 character set (Latin1String) but tag them as
-+ * TeletexString. The Latin1String includes characters used in
-+ * Western European countries which are not part of the
-+ * TeletexString charcter set. Implementations that process
-+ * TeletexString SHOULD be prepared to handle the entire ISO
-+ * 8859-1 character set.[ISO 8859-1].
-+ */
-+ nss_SetError(NSS_ERROR_INTERNAL_ERROR); /* unimplemented */
-+ break;
-+ case nssStringType_PrintableString:
-+ /*
-+ * PrintableString consists of A-Za-z0-9 ,()+,-./:=?
-+ * This is a subset of ASCII, which is a subset of UTF8.
-+ * So we can just duplicate the string over.
-+ */
-+
-+ if( 0 == size ) {
-+ rv = nssUTF8_Duplicate((const NSSUTF8 *)inputString, arenaOpt);
-+ } else {
-+ rv = nss_ZAlloc(arenaOpt, size+1);
-+ if( (NSSUTF8 *)NULL == rv ) {
-+ return (NSSUTF8 *)NULL;
-+ }
-+
-+ (void)nsslibc_memcpy(rv, inputString, size);
-+ }
-+
-+ break;
-+ case nssStringType_UniversalString:
-+ /* 4-byte unicode */
-+ nss_SetError(NSS_ERROR_INTERNAL_ERROR); /* unimplemented */
-+ break;
-+ case nssStringType_BMPString:
-+ /* Base Multilingual Plane of Unicode */
-+ nss_SetError(NSS_ERROR_INTERNAL_ERROR); /* unimplemented */
-+ break;
-+ case nssStringType_UTF8String:
-+ if( 0 == size ) {
-+ rv = nssUTF8_Duplicate((const NSSUTF8 *)inputString, arenaOpt);
-+ } else {
-+ rv = nss_ZAlloc(arenaOpt, size+1);
-+ if( (NSSUTF8 *)NULL == rv ) {
-+ return (NSSUTF8 *)NULL;
-+ }
-+
-+ (void)nsslibc_memcpy(rv, inputString, size);
-+ }
-+
-+ break;
-+ case nssStringType_PHGString:
-+ /*
-+ * PHGString is an IA5String (with case-insensitive comparisons).
-+ * IA5 is ~almost~ ascii; ascii has dollar-sign where IA5 has
-+ * currency symbol.
-+ */
-+ nss_SetError(NSS_ERROR_INTERNAL_ERROR); /* unimplemented */
-+ break;
-+ case nssStringType_GeneralString:
-+ nss_SetError(NSS_ERROR_INTERNAL_ERROR); /* unimplemented */
-+ break;
-+ default:
-+ nss_SetError(NSS_ERROR_UNSUPPORTED_TYPE);
-+ break;
-+ }
-+
-+ return rv;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+nssUTF8_GetEncoding
-+(
-+ NSSArena *arenaOpt,
-+ NSSItem *rvOpt,
-+ nssStringType type,
-+ NSSUTF8 *string
-+)
-+{
-+ NSSItem *rv = (NSSItem *)NULL;
-+ PRStatus status = PR_SUCCESS;
-+
-+#ifdef NSSDEBUG
-+ if( (NSSArena *)NULL != arenaOpt ) {
-+ if( PR_SUCCESS != nssArena_verifyPointer(arenaOpt) ) {
-+ return (NSSItem *)NULL;
-+ }
-+ }
-+
-+ if( (NSSUTF8 *)NULL == string ) {
-+ nss_SetError(NSS_ERROR_INVALID_POINTER);
-+ return (NSSItem *)NULL;
-+ }
-+#endif /* NSSDEBUG */
-+
-+ switch( type ) {
-+ case nssStringType_DirectoryString:
-+ nss_SetError(NSS_ERROR_INTERNAL_ERROR); /* unimplemented */
-+ break;
-+ case nssStringType_TeletexString:
-+ nss_SetError(NSS_ERROR_INTERNAL_ERROR); /* unimplemented */
-+ break;
-+ case nssStringType_PrintableString:
-+ nss_SetError(NSS_ERROR_INTERNAL_ERROR); /* unimplemented */
-+ break;
-+ case nssStringType_UniversalString:
-+ nss_SetError(NSS_ERROR_INTERNAL_ERROR); /* unimplemented */
-+ break;
-+ case nssStringType_BMPString:
-+ nss_SetError(NSS_ERROR_INTERNAL_ERROR); /* unimplemented */
-+ break;
-+ case nssStringType_UTF8String:
-+ {
-+ NSSUTF8 *dup = nssUTF8_Duplicate(string, arenaOpt);
-+ if( (NSSUTF8 *)NULL == dup ) {
-+ return (NSSItem *)NULL;
-+ }
-+
-+ if( (NSSItem *)NULL == rvOpt ) {
-+ rv = nss_ZNEW(arenaOpt, NSSItem);
-+ if( (NSSItem *)NULL == rv ) {
-+ (void)nss_ZFreeIf(dup);
-+ return (NSSItem *)NULL;
-+ }
-+ } else {
-+ rv = rvOpt;
-+ }
-+
-+ rv->data = dup;
-+ dup = (NSSUTF8 *)NULL;
-+ rv->size = nssUTF8_Size(rv->data, &status);
-+ if( (0 == rv->size) && (PR_SUCCESS != status) ) {
-+ if( (NSSItem *)NULL == rvOpt ) {
-+ (void)nss_ZFreeIf(rv);
-+ }
-+ return (NSSItem *)NULL;
-+ }
-+ }
-+ break;
-+ case nssStringType_PHGString:
-+ nss_SetError(NSS_ERROR_INTERNAL_ERROR); /* unimplemented */
-+ break;
-+ default:
-+ nss_SetError(NSS_ERROR_UNSUPPORTED_TYPE);
-+ break;
-+ }
-+
-+ return rv;
-+}
-+
-+/*
-+ * nssUTF8_CopyIntoFixedBuffer
-+ *
-+ * This will copy a UTF8 string into a fixed-length buffer, making
-+ * sure that the all characters are valid. Any remaining space will
-+ * be padded with the specified ASCII character, typically either
-+ * null or space.
-+ *
-+ * Blah, blah, blah.
-+ */
-+
-+NSS_IMPLEMENT PRStatus
-+nssUTF8_CopyIntoFixedBuffer
-+(
-+ NSSUTF8 *string,
-+ char *buffer,
-+ PRUint32 bufferSize,
-+ char pad
-+)
-+{
-+ PRUint32 stringSize = 0;
-+
-+#ifdef NSSDEBUG
-+ if( (char *)NULL == buffer ) {
-+ nss_SetError(NSS_ERROR_INVALID_POINTER);
-+ return PR_FALSE;
-+ }
-+
-+ if( 0 == bufferSize ) {
-+ nss_SetError(NSS_ERROR_INVALID_ARGUMENT);
-+ return PR_FALSE;
-+ }
-+
-+ if( (pad & 0x80) != 0x00 ) {
-+ nss_SetError(NSS_ERROR_INVALID_ARGUMENT);
-+ return PR_FALSE;
-+ }
-+#endif /* NSSDEBUG */
-+
-+ if( (NSSUTF8 *)NULL == string ) {
-+ string = (NSSUTF8 *) "";
-+ }
-+
-+ stringSize = nssUTF8_Size(string, (PRStatus *)NULL);
-+ stringSize--; /* don't count the trailing null */
-+ if( stringSize > bufferSize ) {
-+ PRUint32 bs = bufferSize;
-+ (void)nsslibc_memcpy(buffer, string, bufferSize);
-+
-+ if( ( ((buffer[ bs-1 ] & 0x80) == 0x00)) ||
-+ ((bs > 1) && ((buffer[ bs-2 ] & 0xE0) == 0xC0)) ||
-+ ((bs > 2) && ((buffer[ bs-3 ] & 0xF0) == 0xE0)) ||
-+ ((bs > 3) && ((buffer[ bs-4 ] & 0xF8) == 0xF0)) ||
-+ ((bs > 4) && ((buffer[ bs-5 ] & 0xFC) == 0xF8)) ||
-+ ((bs > 5) && ((buffer[ bs-6 ] & 0xFE) == 0xFC)) ) {
-+ /* It fit exactly */
-+ return PR_SUCCESS;
-+ }
-+
-+ /* Too long. We have to trim the last character */
-+ for( /*bs*/; bs != 0; bs-- ) {
-+ if( (buffer[bs-1] & 0xC0) != 0x80 ) {
-+ buffer[bs-1] = pad;
-+ break;
-+ } else {
-+ buffer[bs-1] = pad;
-+ }
-+ }
-+ } else {
-+ (void)nsslibc_memset(buffer, pad, bufferSize);
-+ (void)nsslibc_memcpy(buffer, string, stringSize);
-+ }
-+
-+ return PR_SUCCESS;
-+}
-+
-+/*
-+ * nssUTF8_Equal
-+ *
-+ */
-+
-+NSS_IMPLEMENT PRBool
-+nssUTF8_Equal
-+(
-+ const NSSUTF8 *a,
-+ const NSSUTF8 *b,
-+ PRStatus *statusOpt
-+)
-+{
-+ PRUint32 la, lb;
-+
-+#ifdef NSSDEBUG
-+ if( ((const NSSUTF8 *)NULL == a) ||
-+ ((const NSSUTF8 *)NULL == b) ) {
-+ nss_SetError(NSS_ERROR_INVALID_POINTER);
-+ if( (PRStatus *)NULL != statusOpt ) {
-+ *statusOpt = PR_FAILURE;
-+ }
-+ return PR_FALSE;
-+ }
-+#endif /* NSSDEBUG */
-+
-+ la = nssUTF8_Size(a, statusOpt);
-+ if( 0 == la ) {
-+ return PR_FALSE;
-+ }
-+
-+ lb = nssUTF8_Size(b, statusOpt);
-+ if( 0 == lb ) {
-+ return PR_FALSE;
-+ }
-+
-+ if( la != lb ) {
-+ return PR_FALSE;
-+ }
-+
-+ return nsslibc_memequal(a, b, la, statusOpt);
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/baset.h 2004-12-13 15:50:15.884174952 +0100
-@@ -0,0 +1,158 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifndef BASET_H
-+#define BASET_H
-+
-+#ifdef DEBUG
-+static const char BASET_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+/*
-+ * baset.h
-+ *
-+ * This file contains definitions for the basic types used throughout
-+ * nss but not available publicly.
-+ */
-+
-+#ifndef NSSBASET_H
-+#include "nssbaset.h"
-+#endif /* NSSBASET_H */
-+
-+#include "plhash.h"
-+
-+PR_BEGIN_EXTERN_C
-+
-+/*
-+ * nssArenaMark
-+ *
-+ * This type is used to mark the current state of an NSSArena.
-+ */
-+
-+struct nssArenaMarkStr;
-+typedef struct nssArenaMarkStr nssArenaMark;
-+
-+#ifdef DEBUG
-+/*
-+ * ARENA_THREADMARK
-+ *
-+ * Optionally, this arena implementation can be compiled with some
-+ * runtime checking enabled, which will catch the situation where
-+ * one thread "marks" the arena, another thread allocates memory,
-+ * and then the mark is released. Usually this is a surprise to
-+ * the second thread, and this leads to weird runtime errors.
-+ * Define ARENA_THREADMARK to catch these cases; we define it for all
-+ * (internal and external) debug builds.
-+ */
-+#define ARENA_THREADMARK
-+
-+/*
-+ * ARENA_DESTRUCTOR_LIST
-+ *
-+ * Unfortunately, our pointer-tracker facility, used in debug
-+ * builds to agressively fight invalid pointers, requries that
-+ * pointers be deregistered when objects are destroyed. This
-+ * conflicts with the standard arena usage where "memory-only"
-+ * objects (that don't hold onto resources outside the arena)
-+ * can be allocated in an arena, and never destroyed other than
-+ * when the arena is destroyed. Therefore we have added a
-+ * destructor-registratio facility to our arenas. This was not
-+ * a simple decision, since we're getting ever-further away from
-+ * the original arena philosophy. However, it was felt that
-+ * adding this in debug builds wouldn't be so bad; as it would
-+ * discourage them from being used for "serious" purposes.
-+ * This facility requires ARENA_THREADMARK to be defined.
-+ */
-+#ifdef ARENA_THREADMARK
-+#define ARENA_DESTRUCTOR_LIST
-+#endif /* ARENA_THREADMARK */
-+
-+#endif /* DEBUG */
-+
-+typedef struct nssListStr nssList;
-+typedef struct nssListIteratorStr nssListIterator;
-+typedef PRBool (* nssListCompareFunc)(void *a, void *b);
-+typedef PRIntn (* nssListSortFunc)(void *a, void *b);
-+typedef void (* nssListElementDestructorFunc)(void *el);
-+
-+typedef struct nssHashStr nssHash;
-+typedef void (PR_CALLBACK *nssHashIterator)(const void *key,
-+ void *value,
-+ void *arg);
-+
-+/*
-+ * nssPointerTracker
-+ *
-+ * This type is used in debug builds (both external and internal) to
-+ * track our object pointers. Objects of this type must be statically
-+ * allocated, which means the structure size must be available to the
-+ * compiler. Therefore we must expose the contents of this structure.
-+ * But please don't access elements directly; use the accessors.
-+ */
-+
-+#ifdef DEBUG
-+struct nssPointerTrackerStr {
-+ PRCallOnceType once;
-+ PZLock *lock;
-+ PLHashTable *table;
-+};
-+typedef struct nssPointerTrackerStr nssPointerTracker;
-+#endif /* DEBUG */
-+
-+/*
-+ * nssStringType
-+ *
-+ * There are several types of strings in the real world. We try to
-+ * use only UTF8 and avoid the rest, but that's not always possible.
-+ * So we have a couple converter routines to go to and from the other
-+ * string types. We have to be able to specify those string types,
-+ * so we have this enumeration.
-+ */
-+
-+enum nssStringTypeEnum {
-+ nssStringType_DirectoryString,
-+ nssStringType_TeletexString, /* Not "teletext" with trailing 't' */
-+ nssStringType_PrintableString,
-+ nssStringType_UniversalString,
-+ nssStringType_BMPString,
-+ nssStringType_UTF8String,
-+ nssStringType_PHGString,
-+ nssStringType_GeneralString,
-+
-+ nssStringType_Unknown = -1
-+};
-+typedef enum nssStringTypeEnum nssStringType;
-+
-+PR_END_EXTERN_C
-+
-+#endif /* BASET_H */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/blapi.h 2004-12-13 15:50:16.183129504 +0100
-@@ -0,0 +1,992 @@
-+/*
-+ * crypto.h - public data structures and prototypes for the crypto library
-+ *
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Portions created by Sun Microsystems, Inc. are Copyright (C) 2003
-+ * Sun Microsystems, Inc. All Rights Reserved.
-+ *
-+ * Contributor(s):
-+ * Dr Vipul Gupta <vipul.gupta@sun.com>, Sun Microsystems Laboratories
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ *
-+ * $Id$
-+ */
-+
-+#ifndef _BLAPI_H_
-+#define _BLAPI_H_
-+
-+#include "blapit.h"
-+
-+
-+SEC_BEGIN_PROTOS
-+
-+/*
-+** RSA encryption/decryption. When encrypting/decrypting the output
-+** buffer must be at least the size of the public key modulus.
-+*/
-+
-+/*
-+** Generate and return a new RSA public and private key.
-+** Both keys are encoded in a single RSAPrivateKey structure.
-+** "cx" is the random number generator context
-+** "keySizeInBits" is the size of the key to be generated, in bits.
-+** 512, 1024, etc.
-+** "publicExponent" when not NULL is a pointer to some data that
-+** represents the public exponent to use. The data is a byte
-+** encoded integer, in "big endian" order.
-+*/
-+extern RSAPrivateKey *RSA_NewKey(int keySizeInBits,
-+ SECItem * publicExponent);
-+
-+/*
-+** Perform a raw public-key operation
-+** Length of input and output buffers are equal to key's modulus len.
-+*/
-+extern SECStatus RSA_PublicKeyOp(RSAPublicKey * key,
-+ unsigned char * output,
-+ const unsigned char * input);
-+
-+/*
-+** Perform a raw private-key operation
-+** Length of input and output buffers are equal to key's modulus len.
-+*/
-+extern SECStatus RSA_PrivateKeyOp(RSAPrivateKey * key,
-+ unsigned char * output,
-+ const unsigned char * input);
-+
-+/*
-+** Perform a raw private-key operation, and check the parameters used in
-+** the operation for validity by performing a test operation first.
-+** Length of input and output buffers are equal to key's modulus len.
-+*/
-+extern SECStatus RSA_PrivateKeyOpDoubleChecked(RSAPrivateKey * key,
-+ unsigned char * output,
-+ const unsigned char * input);
-+
-+/*
-+** Perform a check of private key parameters for consistency.
-+*/
-+extern SECStatus RSA_PrivateKeyCheck(RSAPrivateKey *key);
-+
-+
-+/********************************************************************
-+** DSA signing algorithm
-+*/
-+
-+/*
-+** Generate and return a new DSA public and private key pair,
-+** both of which are encoded into a single DSAPrivateKey struct.
-+** "params" is a pointer to the PQG parameters for the domain
-+** Uses a random seed.
-+*/
-+extern SECStatus DSA_NewKey(const PQGParams * params,
-+ DSAPrivateKey ** privKey);
-+
-+/* signature is caller-supplied buffer of at least 20 bytes.
-+** On input, signature->len == size of buffer to hold signature.
-+** digest->len == size of digest.
-+** On output, signature->len == size of signature in buffer.
-+** Uses a random seed.
-+*/
-+extern SECStatus DSA_SignDigest(DSAPrivateKey * key,
-+ SECItem * signature,
-+ const SECItem * digest);
-+
-+/* signature is caller-supplied buffer of at least 20 bytes.
-+** On input, signature->len == size of buffer to hold signature.
-+** digest->len == size of digest.
-+*/
-+extern SECStatus DSA_VerifyDigest(DSAPublicKey * key,
-+ const SECItem * signature,
-+ const SECItem * digest);
-+
-+/* For FIPS compliance testing. Seed must be exactly 20 bytes long */
-+extern SECStatus DSA_NewKeyFromSeed(const PQGParams *params,
-+ const unsigned char * seed,
-+ DSAPrivateKey **privKey);
-+
-+/* For FIPS compliance testing. Seed must be exactly 20 bytes. */
-+extern SECStatus DSA_SignDigestWithSeed(DSAPrivateKey * key,
-+ SECItem * signature,
-+ const SECItem * digest,
-+ const unsigned char * seed);
-+
-+/******************************************************
-+** Diffie Helman key exchange algorithm
-+*/
-+
-+/* Generates parameters for Diffie-Helman key generation.
-+** primeLen is the length in bytes of prime P to be generated.
-+*/
-+extern SECStatus DH_GenParam(int primeLen, DHParams ** params);
-+
-+/* Generates a public and private key, both of which are encoded in a single
-+** DHPrivateKey struct. Params is input, privKey are output.
-+** This is Phase 1 of Diffie Hellman.
-+*/
-+extern SECStatus DH_NewKey(DHParams * params,
-+ DHPrivateKey ** privKey);
-+
-+/*
-+** DH_Derive does the Diffie-Hellman phase 2 calculation, using the
-+** other party's publicValue, and the prime and our privateValue.
-+** maxOutBytes is the requested length of the generated secret in bytes.
-+** A zero value means produce a value of any length up to the size of
-+** the prime. If successful, derivedSecret->data is set
-+** to the address of the newly allocated buffer containing the derived
-+** secret, and derivedSecret->len is the size of the secret produced.
-+** The size of the secret produced will never be larger than the length
-+** of the prime, and it may be smaller than maxOutBytes.
-+** It is the caller's responsibility to free the allocated buffer
-+** containing the derived secret.
-+*/
-+extern SECStatus DH_Derive(SECItem * publicValue,
-+ SECItem * prime,
-+ SECItem * privateValue,
-+ SECItem * derivedSecret,
-+ unsigned int maxOutBytes);
-+
-+/*
-+** KEA_CalcKey returns octet string with the private key for a dual
-+** Diffie-Helman key generation as specified for government key exchange.
-+*/
-+extern SECStatus KEA_Derive(SECItem *prime,
-+ SECItem *public1,
-+ SECItem *public2,
-+ SECItem *private1,
-+ SECItem *private2,
-+ SECItem *derivedSecret);
-+
-+/*
-+ * verify that a KEA or DSA public key is a valid key for this prime and
-+ * subprime domain.
-+ */
-+extern PRBool KEA_Verify(SECItem *Y, SECItem *prime, SECItem *subPrime);
-+
-+/******************************************************
-+** Elliptic Curve algorithms
-+*/
-+
-+/* Generates a public and private key, both of which are encoded
-+** in a single ECPrivateKey struct. Params is input, privKey are
-+** output.
-+*/
-+extern SECStatus EC_NewKey(ECParams * params,
-+ ECPrivateKey ** privKey);
-+
-+extern SECStatus EC_NewKeyFromSeed(ECParams * params,
-+ ECPrivateKey ** privKey,
-+ const unsigned char* seed,
-+ int seedlen);
-+
-+/* Validates an EC public key as described in Section 5.2.2 of
-+ * X9.63. Such validation prevents against small subgroup attacks
-+ * when the ECDH primitive is used with the cofactor.
-+ */
-+extern SECStatus EC_ValidatePublicKey(ECParams * params,
-+ SECItem * publicValue);
-+
-+/*
-+** ECDH_Derive performs a scalar point multiplication of a point
-+** representing a (peer's) public key and a large integer representing
-+** a private key (its own). Both keys must use the same elliptic curve
-+** parameters. If the withCofactor parameter is true, the
-+** multiplication also uses the cofactor associated with the curve
-+** parameters. The output of this scheme is the x-coordinate of the
-+** resulting point. If successful, derivedSecret->data is set to the
-+** address of the newly allocated buffer containing the derived
-+** secret, and derivedSecret->len is the size of the secret
-+** produced. It is the caller's responsibility to free the allocated
-+** buffer containing the derived secret.
-+*/
-+extern SECStatus ECDH_Derive(SECItem * publicValue,
-+ ECParams * params,
-+ SECItem * privateValue,
-+ PRBool withCofactor,
-+ SECItem * derivedSecret);
-+
-+/* On input, signature->len == size of buffer to hold signature.
-+** digest->len == size of digest.
-+** On output, signature->len == size of signature in buffer.
-+** Uses a random seed.
-+*/
-+extern SECStatus ECDSA_SignDigest(ECPrivateKey *key,
-+ SECItem *signature,
-+ const SECItem *digest);
-+
-+/* On input, signature->len == size of buffer to hold signature.
-+** digest->len == size of digest.
-+*/
-+extern SECStatus ECDSA_VerifyDigest(ECPublicKey *key,
-+ const SECItem *signature,
-+ const SECItem *digest);
-+
-+/* Uses the provided seed. */
-+extern SECStatus ECDSA_SignDigestWithSeed(ECPrivateKey *key,
-+ SECItem *signature,
-+ const SECItem *digest,
-+ const unsigned char *seed,
-+ const int seedlen);
-+
-+/******************************************/
-+/*
-+** RC4 symmetric stream cypher
-+*/
-+
-+/*
-+** Create a new RC4 context suitable for RC4 encryption/decryption.
-+** "key" raw key data
-+** "len" the number of bytes of key data
-+*/
-+extern RC4Context *RC4_CreateContext(const unsigned char *key, int len);
-+
-+/*
-+** Destroy an RC4 encryption/decryption context.
-+** "cx" the context
-+** "freeit" if PR_TRUE then free the object as well as its sub-objects
-+*/
-+extern void RC4_DestroyContext(RC4Context *cx, PRBool freeit);
-+
-+/*
-+** Perform RC4 encryption.
-+** "cx" the context
-+** "output" the output buffer to store the encrypted data.
-+** "outputLen" how much data is stored in "output". Set by the routine
-+** after some data is stored in output.
-+** "maxOutputLen" the maximum amount of data that can ever be
-+** stored in "output"
-+** "input" the input data
-+** "inputLen" the amount of input data
-+*/
-+extern SECStatus RC4_Encrypt(RC4Context *cx, unsigned char *output,
-+ unsigned int *outputLen, unsigned int maxOutputLen,
-+ const unsigned char *input, unsigned int inputLen);
-+
-+/*
-+** Perform RC4 decryption.
-+** "cx" the context
-+** "output" the output buffer to store the decrypted data.
-+** "outputLen" how much data is stored in "output". Set by the routine
-+** after some data is stored in output.
-+** "maxOutputLen" the maximum amount of data that can ever be
-+** stored in "output"
-+** "input" the input data
-+** "inputLen" the amount of input data
-+*/
-+extern SECStatus RC4_Decrypt(RC4Context *cx, unsigned char *output,
-+ unsigned int *outputLen, unsigned int maxOutputLen,
-+ const unsigned char *input, unsigned int inputLen);
-+
-+/******************************************/
-+/*
-+** RC2 symmetric block cypher
-+*/
-+
-+/*
-+** Create a new RC2 context suitable for RC2 encryption/decryption.
-+** "key" raw key data
-+** "len" the number of bytes of key data
-+** "iv" is the CBC initialization vector (if mode is NSS_RC2_CBC)
-+** "mode" one of NSS_RC2 or NSS_RC2_CBC
-+** "effectiveKeyLen" is the effective key length (as specified in
-+** RFC 2268) in bytes (not bits).
-+**
-+** When mode is set to NSS_RC2_CBC the RC2 cipher is run in "cipher block
-+** chaining" mode.
-+*/
-+extern RC2Context *RC2_CreateContext(const unsigned char *key, unsigned int len,
-+ const unsigned char *iv, int mode,
-+ unsigned effectiveKeyLen);
-+
-+/*
-+** Destroy an RC2 encryption/decryption context.
-+** "cx" the context
-+** "freeit" if PR_TRUE then free the object as well as its sub-objects
-+*/
-+extern void RC2_DestroyContext(RC2Context *cx, PRBool freeit);
-+
-+/*
-+** Perform RC2 encryption.
-+** "cx" the context
-+** "output" the output buffer to store the encrypted data.
-+** "outputLen" how much data is stored in "output". Set by the routine
-+** after some data is stored in output.
-+** "maxOutputLen" the maximum amount of data that can ever be
-+** stored in "output"
-+** "input" the input data
-+** "inputLen" the amount of input data
-+*/
-+extern SECStatus RC2_Encrypt(RC2Context *cx, unsigned char *output,
-+ unsigned int *outputLen, unsigned int maxOutputLen,
-+ const unsigned char *input, unsigned int inputLen);
-+
-+/*
-+** Perform RC2 decryption.
-+** "cx" the context
-+** "output" the output buffer to store the decrypted data.
-+** "outputLen" how much data is stored in "output". Set by the routine
-+** after some data is stored in output.
-+** "maxOutputLen" the maximum amount of data that can ever be
-+** stored in "output"
-+** "input" the input data
-+** "inputLen" the amount of input data
-+*/
-+extern SECStatus RC2_Decrypt(RC2Context *cx, unsigned char *output,
-+ unsigned int *outputLen, unsigned int maxOutputLen,
-+ const unsigned char *input, unsigned int inputLen);
-+
-+/******************************************/
-+/*
-+** RC5 symmetric block cypher -- 64-bit block size
-+*/
-+
-+/*
-+** Create a new RC5 context suitable for RC5 encryption/decryption.
-+** "key" raw key data
-+** "len" the number of bytes of key data
-+** "iv" is the CBC initialization vector (if mode is NSS_RC5_CBC)
-+** "mode" one of NSS_RC5 or NSS_RC5_CBC
-+**
-+** When mode is set to NSS_RC5_CBC the RC5 cipher is run in "cipher block
-+** chaining" mode.
-+*/
-+extern RC5Context *RC5_CreateContext(const SECItem *key, unsigned int rounds,
-+ unsigned int wordSize, const unsigned char *iv, int mode);
-+
-+/*
-+** Destroy an RC5 encryption/decryption context.
-+** "cx" the context
-+** "freeit" if PR_TRUE then free the object as well as its sub-objects
-+*/
-+extern void RC5_DestroyContext(RC5Context *cx, PRBool freeit);
-+
-+/*
-+** Perform RC5 encryption.
-+** "cx" the context
-+** "output" the output buffer to store the encrypted data.
-+** "outputLen" how much data is stored in "output". Set by the routine
-+** after some data is stored in output.
-+** "maxOutputLen" the maximum amount of data that can ever be
-+** stored in "output"
-+** "input" the input data
-+** "inputLen" the amount of input data
-+*/
-+extern SECStatus RC5_Encrypt(RC5Context *cx, unsigned char *output,
-+ unsigned int *outputLen, unsigned int maxOutputLen,
-+ const unsigned char *input, unsigned int inputLen);
-+
-+/*
-+** Perform RC5 decryption.
-+** "cx" the context
-+** "output" the output buffer to store the decrypted data.
-+** "outputLen" how much data is stored in "output". Set by the routine
-+** after some data is stored in output.
-+** "maxOutputLen" the maximum amount of data that can ever be
-+** stored in "output"
-+** "input" the input data
-+** "inputLen" the amount of input data
-+*/
-+
-+extern SECStatus RC5_Decrypt(RC5Context *cx, unsigned char *output,
-+ unsigned int *outputLen, unsigned int maxOutputLen,
-+ const unsigned char *input, unsigned int inputLen);
-+
-+
-+
-+/******************************************/
-+/*
-+** DES symmetric block cypher
-+*/
-+
-+/*
-+** Create a new DES context suitable for DES encryption/decryption.
-+** "key" raw key data
-+** "len" the number of bytes of key data
-+** "iv" is the CBC initialization vector (if mode is NSS_DES_CBC or
-+** mode is DES_EDE3_CBC)
-+** "mode" one of NSS_DES, NSS_DES_CBC, NSS_DES_EDE3 or NSS_DES_EDE3_CBC
-+** "encrypt" is PR_TRUE if the context will be used for encryption
-+**
-+** When mode is set to NSS_DES_CBC or NSS_DES_EDE3_CBC then the DES
-+** cipher is run in "cipher block chaining" mode.
-+*/
-+extern DESContext *DES_CreateContext(const unsigned char *key,
-+ const unsigned char *iv,
-+ int mode, PRBool encrypt);
-+
-+/*
-+** Destroy an DES encryption/decryption context.
-+** "cx" the context
-+** "freeit" if PR_TRUE then free the object as well as its sub-objects
-+*/
-+extern void DES_DestroyContext(DESContext *cx, PRBool freeit);
-+
-+/*
-+** Perform DES encryption.
-+** "cx" the context
-+** "output" the output buffer to store the encrypted data.
-+** "outputLen" how much data is stored in "output". Set by the routine
-+** after some data is stored in output.
-+** "maxOutputLen" the maximum amount of data that can ever be
-+** stored in "output"
-+** "input" the input data
-+** "inputLen" the amount of input data
-+**
-+** NOTE: the inputLen must be a multiple of DES_KEY_LENGTH
-+*/
-+extern SECStatus DES_Encrypt(DESContext *cx, unsigned char *output,
-+ unsigned int *outputLen, unsigned int maxOutputLen,
-+ const unsigned char *input, unsigned int inputLen);
-+
-+/*
-+** Perform DES decryption.
-+** "cx" the context
-+** "output" the output buffer to store the decrypted data.
-+** "outputLen" how much data is stored in "output". Set by the routine
-+** after some data is stored in output.
-+** "maxOutputLen" the maximum amount of data that can ever be
-+** stored in "output"
-+** "input" the input data
-+** "inputLen" the amount of input data
-+**
-+** NOTE: the inputLen must be a multiple of DES_KEY_LENGTH
-+*/
-+extern SECStatus DES_Decrypt(DESContext *cx, unsigned char *output,
-+ unsigned int *outputLen, unsigned int maxOutputLen,
-+ const unsigned char *input, unsigned int inputLen);
-+
-+/******************************************/
-+/*
-+** AES symmetric block cypher (Rijndael)
-+*/
-+
-+/*
-+** Create a new AES context suitable for AES encryption/decryption.
-+** "key" raw key data
-+** "keylen" the number of bytes of key data (16, 24, or 32)
-+** "blocklen" is the blocksize to use (16, 24, or 32)
-+** XXX currently only blocksize==16 has been tested!
-+*/
-+extern AESContext *
-+AES_CreateContext(const unsigned char *key, const unsigned char *iv,
-+ int mode, int encrypt,
-+ unsigned int keylen, unsigned int blocklen);
-+
-+/*
-+** Destroy a AES encryption/decryption context.
-+** "cx" the context
-+** "freeit" if PR_TRUE then free the object as well as its sub-objects
-+*/
-+extern void
-+AES_DestroyContext(AESContext *cx, PRBool freeit);
-+
-+/*
-+** Perform AES encryption.
-+** "cx" the context
-+** "output" the output buffer to store the encrypted data.
-+** "outputLen" how much data is stored in "output". Set by the routine
-+** after some data is stored in output.
-+** "maxOutputLen" the maximum amount of data that can ever be
-+** stored in "output"
-+** "input" the input data
-+** "inputLen" the amount of input data
-+*/
-+extern SECStatus
-+AES_Encrypt(AESContext *cx, unsigned char *output,
-+ unsigned int *outputLen, unsigned int maxOutputLen,
-+ const unsigned char *input, unsigned int inputLen);
-+
-+/*
-+** Perform AES decryption.
-+** "cx" the context
-+** "output" the output buffer to store the decrypted data.
-+** "outputLen" how much data is stored in "output". Set by the routine
-+** after some data is stored in output.
-+** "maxOutputLen" the maximum amount of data that can ever be
-+** stored in "output"
-+** "input" the input data
-+** "inputLen" the amount of input data
-+*/
-+extern SECStatus
-+AES_Decrypt(AESContext *cx, unsigned char *output,
-+ unsigned int *outputLen, unsigned int maxOutputLen,
-+ const unsigned char *input, unsigned int inputLen);
-+
-+/******************************************/
-+/*
-+** AES key wrap algorithm, RFC 3394
-+*/
-+
-+/*
-+** Create a new AES context suitable for AES encryption/decryption.
-+** "key" raw key data
-+** "iv" The 8 byte "initial value"
-+** "encrypt", a boolean, true for key wrapping, false for unwrapping.
-+** "keylen" the number of bytes of key data (16, 24, or 32)
-+*/
-+extern AESKeyWrapContext *
-+AESKeyWrap_CreateContext(const unsigned char *key, const unsigned char *iv,
-+ int encrypt, unsigned int keylen);
-+
-+/*
-+** Destroy a AES KeyWrap context.
-+** "cx" the context
-+** "freeit" if PR_TRUE then free the object as well as its sub-objects
-+*/
-+extern void
-+AESKeyWrap_DestroyContext(AESKeyWrapContext *cx, PRBool freeit);
-+
-+/*
-+** Perform AES key wrap.
-+** "cx" the context
-+** "output" the output buffer to store the encrypted data.
-+** "outputLen" how much data is stored in "output". Set by the routine
-+** after some data is stored in output.
-+** "maxOutputLen" the maximum amount of data that can ever be
-+** stored in "output"
-+** "input" the input data
-+** "inputLen" the amount of input data
-+*/
-+extern SECStatus
-+AESKeyWrap_Encrypt(AESKeyWrapContext *cx, unsigned char *output,
-+ unsigned int *outputLen, unsigned int maxOutputLen,
-+ const unsigned char *input, unsigned int inputLen);
-+
-+/*
-+** Perform AES key unwrap.
-+** "cx" the context
-+** "output" the output buffer to store the decrypted data.
-+** "outputLen" how much data is stored in "output". Set by the routine
-+** after some data is stored in output.
-+** "maxOutputLen" the maximum amount of data that can ever be
-+** stored in "output"
-+** "input" the input data
-+** "inputLen" the amount of input data
-+*/
-+extern SECStatus
-+AESKeyWrap_Decrypt(AESKeyWrapContext *cx, unsigned char *output,
-+ unsigned int *outputLen, unsigned int maxOutputLen,
-+ const unsigned char *input, unsigned int inputLen);
-+
-+
-+/******************************************/
-+/*
-+** MD5 secure hash function
-+*/
-+
-+/*
-+** Hash a null terminated string "src" into "dest" using MD5
-+*/
-+extern SECStatus MD5_Hash(unsigned char *dest, const char *src);
-+
-+/*
-+** Hash a non-null terminated string "src" into "dest" using MD5
-+*/
-+extern SECStatus MD5_HashBuf(unsigned char *dest, const unsigned char *src,
-+ uint32 src_length);
-+
-+/*
-+** Create a new MD5 context
-+*/
-+extern MD5Context *MD5_NewContext(void);
-+
-+
-+/*
-+** Destroy an MD5 secure hash context.
-+** "cx" the context
-+** "freeit" if PR_TRUE then free the object as well as its sub-objects
-+*/
-+extern void MD5_DestroyContext(MD5Context *cx, PRBool freeit);
-+
-+/*
-+** Reset an MD5 context, preparing it for a fresh round of hashing
-+*/
-+extern void MD5_Begin(MD5Context *cx);
-+
-+/*
-+** Update the MD5 hash function with more data.
-+** "cx" the context
-+** "input" the data to hash
-+** "inputLen" the amount of data to hash
-+*/
-+extern void MD5_Update(MD5Context *cx,
-+ const unsigned char *input, unsigned int inputLen);
-+
-+/*
-+** Finish the MD5 hash function. Produce the digested results in "digest"
-+** "cx" the context
-+** "digest" where the 16 bytes of digest data are stored
-+** "digestLen" where the digest length (16) is stored
-+** "maxDigestLen" the maximum amount of data that can ever be
-+** stored in "digest"
-+*/
-+extern void MD5_End(MD5Context *cx, unsigned char *digest,
-+ unsigned int *digestLen, unsigned int maxDigestLen);
-+/*
-+ * Return the the size of a buffer needed to flatten the MD5 Context into
-+ * "cx" the context
-+ * returns size;
-+ */
-+extern unsigned int MD5_FlattenSize(MD5Context *cx);
-+
-+/*
-+ * Flatten the MD5 Context into a buffer:
-+ * "cx" the context
-+ * "space" the buffer to flatten to
-+ * returns status;
-+ */
-+extern SECStatus MD5_Flatten(MD5Context *cx,unsigned char *space);
-+
-+/*
-+ * Resurrect a flattened context into a MD5 Context
-+ * "space" the buffer of the flattend buffer
-+ * "arg" ptr to void used by cryptographic resurrect
-+ * returns resurected context;
-+ */
-+extern MD5Context * MD5_Resurrect(unsigned char *space, void *arg);
-+
-+/*
-+** trace the intermediate state info of the MD5 hash.
-+*/
-+extern void MD5_TraceState(MD5Context *cx);
-+
-+
-+/******************************************/
-+/*
-+** MD2 secure hash function
-+*/
-+
-+/*
-+** Hash a null terminated string "src" into "dest" using MD2
-+*/
-+extern SECStatus MD2_Hash(unsigned char *dest, const char *src);
-+
-+/*
-+** Create a new MD2 context
-+*/
-+extern MD2Context *MD2_NewContext(void);
-+
-+
-+/*
-+** Destroy an MD2 secure hash context.
-+** "cx" the context
-+** "freeit" if PR_TRUE then free the object as well as its sub-objects
-+*/
-+extern void MD2_DestroyContext(MD2Context *cx, PRBool freeit);
-+
-+/*
-+** Reset an MD2 context, preparing it for a fresh round of hashing
-+*/
-+extern void MD2_Begin(MD2Context *cx);
-+
-+/*
-+** Update the MD2 hash function with more data.
-+** "cx" the context
-+** "input" the data to hash
-+** "inputLen" the amount of data to hash
-+*/
-+extern void MD2_Update(MD2Context *cx,
-+ const unsigned char *input, unsigned int inputLen);
-+
-+/*
-+** Finish the MD2 hash function. Produce the digested results in "digest"
-+** "cx" the context
-+** "digest" where the 16 bytes of digest data are stored
-+** "digestLen" where the digest length (16) is stored
-+** "maxDigestLen" the maximum amount of data that can ever be
-+** stored in "digest"
-+*/
-+extern void MD2_End(MD2Context *cx, unsigned char *digest,
-+ unsigned int *digestLen, unsigned int maxDigestLen);
-+
-+/*
-+ * Return the the size of a buffer needed to flatten the MD2 Context into
-+ * "cx" the context
-+ * returns size;
-+ */
-+extern unsigned int MD2_FlattenSize(MD2Context *cx);
-+
-+/*
-+ * Flatten the MD2 Context into a buffer:
-+ * "cx" the context
-+ * "space" the buffer to flatten to
-+ * returns status;
-+ */
-+extern SECStatus MD2_Flatten(MD2Context *cx,unsigned char *space);
-+
-+/*
-+ * Resurrect a flattened context into a MD2 Context
-+ * "space" the buffer of the flattend buffer
-+ * "arg" ptr to void used by cryptographic resurrect
-+ * returns resurected context;
-+ */
-+extern MD2Context * MD2_Resurrect(unsigned char *space, void *arg);
-+
-+/******************************************/
-+/*
-+** SHA-1 secure hash function
-+*/
-+
-+/*
-+** Hash a null terminated string "src" into "dest" using SHA-1
-+*/
-+extern SECStatus SHA1_Hash(unsigned char *dest, const char *src);
-+
-+/*
-+** Hash a non-null terminated string "src" into "dest" using SHA-1
-+*/
-+extern SECStatus SHA1_HashBuf(unsigned char *dest, const unsigned char *src,
-+ uint32 src_length);
-+
-+/*
-+** Create a new SHA-1 context
-+*/
-+extern SHA1Context *SHA1_NewContext(void);
-+
-+
-+/*
-+** Destroy a SHA-1 secure hash context.
-+** "cx" the context
-+** "freeit" if PR_TRUE then free the object as well as its sub-objects
-+*/
-+extern void SHA1_DestroyContext(SHA1Context *cx, PRBool freeit);
-+
-+/*
-+** Reset a SHA-1 context, preparing it for a fresh round of hashing
-+*/
-+extern void SHA1_Begin(SHA1Context *cx);
-+
-+/*
-+** Update the SHA-1 hash function with more data.
-+** "cx" the context
-+** "input" the data to hash
-+** "inputLen" the amount of data to hash
-+*/
-+extern void SHA1_Update(SHA1Context *cx, const unsigned char *input,
-+ unsigned int inputLen);
-+
-+/*
-+** Finish the SHA-1 hash function. Produce the digested results in "digest"
-+** "cx" the context
-+** "digest" where the 16 bytes of digest data are stored
-+** "digestLen" where the digest length (20) is stored
-+** "maxDigestLen" the maximum amount of data that can ever be
-+** stored in "digest"
-+*/
-+extern void SHA1_End(SHA1Context *cx, unsigned char *digest,
-+ unsigned int *digestLen, unsigned int maxDigestLen);
-+
-+/*
-+** trace the intermediate state info of the SHA1 hash.
-+*/
-+extern void SHA1_TraceState(SHA1Context *cx);
-+
-+/*
-+ * Return the the size of a buffer needed to flatten the SHA-1 Context into
-+ * "cx" the context
-+ * returns size;
-+ */
-+extern unsigned int SHA1_FlattenSize(SHA1Context *cx);
-+
-+/*
-+ * Flatten the SHA-1 Context into a buffer:
-+ * "cx" the context
-+ * "space" the buffer to flatten to
-+ * returns status;
-+ */
-+extern SECStatus SHA1_Flatten(SHA1Context *cx,unsigned char *space);
-+
-+/*
-+ * Resurrect a flattened context into a SHA-1 Context
-+ * "space" the buffer of the flattend buffer
-+ * "arg" ptr to void used by cryptographic resurrect
-+ * returns resurected context;
-+ */
-+extern SHA1Context * SHA1_Resurrect(unsigned char *space, void *arg);
-+
-+/******************************************/
-+
-+extern SHA256Context *SHA256_NewContext(void);
-+extern void SHA256_DestroyContext(SHA256Context *cx, PRBool freeit);
-+extern void SHA256_Begin(SHA256Context *cx);
-+extern void SHA256_Update(SHA256Context *cx, const unsigned char *input,
-+ unsigned int inputLen);
-+extern void SHA256_End(SHA256Context *cx, unsigned char *digest,
-+ unsigned int *digestLen, unsigned int maxDigestLen);
-+extern SECStatus SHA256_HashBuf(unsigned char *dest, const unsigned char *src,
-+ uint32 src_length);
-+extern SECStatus SHA256_Hash(unsigned char *dest, const char *src);
-+extern void SHA256_TraceState(SHA256Context *cx);
-+extern unsigned int SHA256_FlattenSize(SHA256Context *cx);
-+extern SECStatus SHA256_Flatten(SHA256Context *cx,unsigned char *space);
-+extern SHA256Context * SHA256_Resurrect(unsigned char *space, void *arg);
-+
-+/******************************************/
-+
-+extern SHA512Context *SHA512_NewContext(void);
-+extern void SHA512_DestroyContext(SHA512Context *cx, PRBool freeit);
-+extern void SHA512_Begin(SHA512Context *cx);
-+extern void SHA512_Update(SHA512Context *cx, const unsigned char *input,
-+ unsigned int inputLen);
-+extern void SHA512_End(SHA512Context *cx, unsigned char *digest,
-+ unsigned int *digestLen, unsigned int maxDigestLen);
-+extern SECStatus SHA512_HashBuf(unsigned char *dest, const unsigned char *src,
-+ uint32 src_length);
-+extern SECStatus SHA512_Hash(unsigned char *dest, const char *src);
-+extern void SHA512_TraceState(SHA512Context *cx);
-+extern unsigned int SHA512_FlattenSize(SHA512Context *cx);
-+extern SECStatus SHA512_Flatten(SHA512Context *cx,unsigned char *space);
-+extern SHA512Context * SHA512_Resurrect(unsigned char *space, void *arg);
-+
-+/******************************************/
-+
-+extern SHA384Context *SHA384_NewContext(void);
-+extern void SHA384_DestroyContext(SHA384Context *cx, PRBool freeit);
-+extern void SHA384_Begin(SHA384Context *cx);
-+extern void SHA384_Update(SHA384Context *cx, const unsigned char *input,
-+ unsigned int inputLen);
-+extern void SHA384_End(SHA384Context *cx, unsigned char *digest,
-+ unsigned int *digestLen, unsigned int maxDigestLen);
-+extern SECStatus SHA384_HashBuf(unsigned char *dest, const unsigned char *src,
-+ uint32 src_length);
-+extern SECStatus SHA384_Hash(unsigned char *dest, const char *src);
-+extern void SHA384_TraceState(SHA384Context *cx);
-+extern unsigned int SHA384_FlattenSize(SHA384Context *cx);
-+extern SECStatus SHA384_Flatten(SHA384Context *cx,unsigned char *space);
-+extern SHA384Context * SHA384_Resurrect(unsigned char *space, void *arg);
-+
-+/******************************************/
-+/*
-+** Pseudo Random Number Generation. FIPS compliance desirable.
-+*/
-+
-+/*
-+** Initialize the global RNG context and give it some seed input taken
-+** from the system. This function is thread-safe and will only allow
-+** the global context to be initialized once. The seed input is likely
-+** small, so it is imperative that RNG_RandomUpdate() be called with
-+** additional seed data before the generator is used. A good way to
-+** provide the generator with additional entropy is to call
-+** RNG_SystemInfoForRNG(). Note that NSS_Init() does exactly that.
-+*/
-+extern SECStatus RNG_RNGInit(void);
-+
-+/*
-+** Update the global random number generator with more seeding
-+** material
-+*/
-+extern SECStatus RNG_RandomUpdate(const void *data, size_t bytes);
-+
-+/*
-+** Generate some random bytes, using the global random number generator
-+** object.
-+*/
-+extern SECStatus RNG_GenerateGlobalRandomBytes(void *dest, size_t len);
-+
-+/* Destroy the global RNG context. After a call to RNG_RNGShutdown()
-+** a call to RNG_RNGInit() is required in order to use the generator again,
-+** along with seed data (see the comment above RNG_RNGInit()).
-+*/
-+extern void RNG_RNGShutdown(void);
-+
-+
-+/* Generate PQGParams and PQGVerify structs.
-+ * Length of seed and length of h both equal length of P.
-+ * All lengths are specified by "j", according to the table above.
-+ */
-+extern SECStatus
-+PQG_ParamGen(unsigned int j, /* input : determines length of P. */
-+ PQGParams **pParams, /* output: P Q and G returned here */
-+ PQGVerify **pVfy); /* output: counter and seed. */
-+
-+/* Generate PQGParams and PQGVerify structs.
-+ * Length of P specified by j. Length of h will match length of P.
-+ * Length of SEED in bytes specified in seedBytes.
-+ * seedBbytes must be in the range [20..255] or an error will result.
-+ */
-+extern SECStatus
-+PQG_ParamGenSeedLen(
-+ unsigned int j, /* input : determines length of P. */
-+ unsigned int seedBytes, /* input : length of seed in bytes.*/
-+ PQGParams **pParams, /* output: P Q and G returned here */
-+ PQGVerify **pVfy); /* output: counter and seed. */
-+
-+
-+/* Test PQGParams for validity as DSS PQG values.
-+ * If vfy is non-NULL, test PQGParams to make sure they were generated
-+ * using the specified seed, counter, and h values.
-+ *
-+ * Return value indicates whether Verification operation ran succesfully
-+ * to completion, but does not indicate if PQGParams are valid or not.
-+ * If return value is SECSuccess, then *pResult has these meanings:
-+ * SECSuccess: PQGParams are valid.
-+ * SECFailure: PQGParams are invalid.
-+ *
-+ * Verify the following 12 facts about PQG counter SEED g and h
-+ * 1. Q is 160 bits long.
-+ * 2. P is one of the 9 valid lengths.
-+ * 3. G < P
-+ * 4. P % Q == 1
-+ * 5. Q is prime
-+ * 6. P is prime
-+ * Steps 7-12 are done only if the optional PQGVerify is supplied.
-+ * 7. counter < 4096
-+ * 8. g >= 160 and g < 2048 (g is length of seed in bits)
-+ * 9. Q generated from SEED matches Q in PQGParams.
-+ * 10. P generated from (L, counter, g, SEED, Q) matches P in PQGParams.
-+ * 11. 1 < h < P-1
-+ * 12. G generated from h matches G in PQGParams.
-+ */
-+
-+extern SECStatus PQG_VerifyParams(const PQGParams *params,
-+ const PQGVerify *vfy, SECStatus *result);
-+
-+
-+/*
-+ * clean-up any global tables freebl may have allocated after it starts up.
-+ * This function is not thread safe and should be called only after the
-+ * library has been quiessed.
-+ */
-+extern void BL_Cleanup(void);
-+
-+
-+/**************************************************************************
-+ * Verify a given Shared library signature *
-+ **************************************************************************/
-+PRBool BLAPI_SHVerify(const char *name, PRFuncPtr addr);
-+
-+/**************************************************************************
-+ * Verify Are Own Shared library signature *
-+ **************************************************************************/
-+PRBool BLAPI_VerifySelf(const char *name);
-+
-+SEC_END_PROTOS
-+
-+#endif /* _BLAPI_H_ */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/certdb.c 2004-12-13 13:06:46.689399224 +0100
-@@ -0,0 +1,2906 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+/*
-+ * Certificate handling code
-+ *
-+ * $Id$
-+ */
-+
-+#include "nssilock.h"
-+#include "prmon.h"
-+#include "prtime.h"
-+#include "cert.h"
-+#include "certi.h"
-+#include "secder.h"
-+#include "secoid.h"
-+#include "secasn1.h"
-+#include "genname.h"
-+#include "keyhi.h"
-+#include "secitem.h"
-+#include "mcom_db.h"
-+#include "certdb.h"
-+#include "prprf.h"
-+#include "sechash.h"
-+#include "prlong.h"
-+#include "certxutl.h"
-+#include "portreg.h"
-+#include "secerr.h"
-+#include "sslerr.h"
-+#include "nsslocks.h"
-+#include "pk11func.h"
-+#include "xconst.h" /* for CERT_DecodeAltNameExtension */
-+
-+#ifndef NSS_3_4_CODE
-+#define NSS_3_4_CODE
-+#endif /* NSS_3_4_CODE */
-+#include "pki.h"
-+#include "pki3hack.h"
-+
-+/*
-+ * Certificate database handling code
-+ */
-+
-+
-+const SEC_ASN1Template CERT_CertExtensionTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(CERTCertExtension) },
-+ { SEC_ASN1_OBJECT_ID,
-+ offsetof(CERTCertExtension,id) },
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_BOOLEAN, /* XXX DER_DEFAULT */
-+ offsetof(CERTCertExtension,critical) },
-+ { SEC_ASN1_OCTET_STRING,
-+ offsetof(CERTCertExtension,value) },
-+ { 0, }
-+};
-+
-+const SEC_ASN1Template CERT_SequenceOfCertExtensionTemplate[] = {
-+ { SEC_ASN1_SEQUENCE_OF, 0, CERT_CertExtensionTemplate }
-+};
-+
-+const SEC_ASN1Template CERT_CertificateTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(CERTCertificate) },
-+ { SEC_ASN1_EXPLICIT | SEC_ASN1_OPTIONAL | SEC_ASN1_CONSTRUCTED |
-+ SEC_ASN1_CONTEXT_SPECIFIC | 0, /* XXX DER_DEFAULT */
-+ offsetof(CERTCertificate,version),
-+ SEC_IntegerTemplate },
-+ { SEC_ASN1_INTEGER,
-+ offsetof(CERTCertificate,serialNumber) },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTCertificate,signature),
-+ SECOID_AlgorithmIDTemplate },
-+ { SEC_ASN1_SAVE,
-+ offsetof(CERTCertificate,derIssuer) },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTCertificate,issuer),
-+ CERT_NameTemplate },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTCertificate,validity),
-+ CERT_ValidityTemplate },
-+ { SEC_ASN1_SAVE,
-+ offsetof(CERTCertificate,derSubject) },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTCertificate,subject),
-+ CERT_NameTemplate },
-+ { SEC_ASN1_SAVE,
-+ offsetof(CERTCertificate,derPublicKey) },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTCertificate,subjectPublicKeyInfo),
-+ CERT_SubjectPublicKeyInfoTemplate },
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_CONTEXT_SPECIFIC | 1,
-+ offsetof(CERTCertificate,issuerID),
-+ SEC_BitStringTemplate },
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_CONTEXT_SPECIFIC | 2,
-+ offsetof(CERTCertificate,subjectID),
-+ SEC_BitStringTemplate },
-+ { SEC_ASN1_EXPLICIT | SEC_ASN1_OPTIONAL | SEC_ASN1_CONSTRUCTED |
-+ SEC_ASN1_CONTEXT_SPECIFIC | 3,
-+ offsetof(CERTCertificate,extensions),
-+ CERT_SequenceOfCertExtensionTemplate },
-+ { 0 }
-+};
-+
-+const SEC_ASN1Template SEC_SignedCertificateTemplate[] =
-+{
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(CERTCertificate) },
-+ { SEC_ASN1_SAVE,
-+ offsetof(CERTCertificate,signatureWrap.data) },
-+ { SEC_ASN1_INLINE,
-+ 0, CERT_CertificateTemplate },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTCertificate,signatureWrap.signatureAlgorithm),
-+ SECOID_AlgorithmIDTemplate },
-+ { SEC_ASN1_BIT_STRING,
-+ offsetof(CERTCertificate,signatureWrap.signature) },
-+ { 0 }
-+};
-+
-+/*
-+ * Find the subjectName in a DER encoded certificate
-+ */
-+const SEC_ASN1Template SEC_CertSubjectTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(SECItem) },
-+ { SEC_ASN1_EXPLICIT | SEC_ASN1_OPTIONAL | SEC_ASN1_CONSTRUCTED |
-+ SEC_ASN1_CONTEXT_SPECIFIC | 0,
-+ 0, SEC_SkipTemplate }, /* version */
-+ { SEC_ASN1_SKIP }, /* serial number */
-+ { SEC_ASN1_SKIP }, /* signature algorithm */
-+ { SEC_ASN1_SKIP }, /* issuer */
-+ { SEC_ASN1_SKIP }, /* validity */
-+ { SEC_ASN1_ANY, 0, NULL }, /* subject */
-+ { SEC_ASN1_SKIP_REST },
-+ { 0 }
-+};
-+
-+/*
-+ * Find the issuerName in a DER encoded certificate
-+ */
-+const SEC_ASN1Template SEC_CertIssuerTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(SECItem) },
-+ { SEC_ASN1_EXPLICIT | SEC_ASN1_OPTIONAL | SEC_ASN1_CONSTRUCTED |
-+ SEC_ASN1_CONTEXT_SPECIFIC | 0,
-+ 0, SEC_SkipTemplate }, /* version */
-+ { SEC_ASN1_SKIP }, /* serial number */
-+ { SEC_ASN1_SKIP }, /* signature algorithm */
-+ { SEC_ASN1_ANY, 0, NULL }, /* issuer */
-+ { SEC_ASN1_SKIP_REST },
-+ { 0 }
-+};
-+/*
-+ * Find the subjectName in a DER encoded certificate
-+ */
-+const SEC_ASN1Template SEC_CertSerialNumberTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(SECItem) },
-+ { SEC_ASN1_EXPLICIT | SEC_ASN1_OPTIONAL | SEC_ASN1_CONSTRUCTED |
-+ SEC_ASN1_CONTEXT_SPECIFIC | 0,
-+ 0, SEC_SkipTemplate }, /* version */
-+ { SEC_ASN1_ANY, 0, NULL }, /* serial number */
-+ { SEC_ASN1_SKIP_REST },
-+ { 0 }
-+};
-+
-+/*
-+ * Find the issuer and serialNumber in a DER encoded certificate.
-+ * This data is used as the database lookup key since its the unique
-+ * identifier of a certificate.
-+ */
-+const SEC_ASN1Template CERT_CertKeyTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(CERTCertKey) },
-+ { SEC_ASN1_EXPLICIT | SEC_ASN1_OPTIONAL | SEC_ASN1_CONSTRUCTED |
-+ SEC_ASN1_CONTEXT_SPECIFIC | 0,
-+ 0, SEC_SkipTemplate }, /* version */
-+ { SEC_ASN1_INTEGER,
-+ offsetof(CERTCertKey,serialNumber) },
-+ { SEC_ASN1_SKIP }, /* signature algorithm */
-+ { SEC_ASN1_ANY,
-+ offsetof(CERTCertKey,derIssuer) },
-+ { SEC_ASN1_SKIP_REST },
-+ { 0 }
-+};
-+
-+SEC_ASN1_CHOOSER_IMPLEMENT(CERT_CertificateTemplate)
-+SEC_ASN1_CHOOSER_IMPLEMENT(SEC_SignedCertificateTemplate)
-+
-+SECStatus
-+CERT_KeyFromIssuerAndSN(PRArenaPool *arena, SECItem *issuer, SECItem *sn,
-+ SECItem *key)
-+{
-+ key->len = sn->len + issuer->len;
-+
-+ if ((sn->data == NULL) || (issuer->data == NULL)) {
-+ goto loser;
-+ }
-+
-+ key->data = (unsigned char*)PORT_ArenaAlloc(arena, key->len);
-+ if ( !key->data ) {
-+ goto loser;
-+ }
-+
-+ /* copy the serialNumber */
-+ PORT_Memcpy(key->data, sn->data, sn->len);
-+
-+ /* copy the issuer */
-+ PORT_Memcpy(&key->data[sn->len], issuer->data, issuer->len);
-+
-+ return(SECSuccess);
-+
-+loser:
-+ return(SECFailure);
-+}
-+
-+
-+/*
-+ * Extract the subject name from a DER certificate
-+ */
-+SECStatus
-+CERT_NameFromDERCert(SECItem *derCert, SECItem *derName)
-+{
-+ int rv;
-+ PRArenaPool *arena;
-+ CERTSignedData sd;
-+ void *tmpptr;
-+
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+
-+ if ( ! arena ) {
-+ return(SECFailure);
-+ }
-+
-+ PORT_Memset(&sd, 0, sizeof(CERTSignedData));
-+ rv = SEC_QuickDERDecodeItem(arena, &sd, CERT_SignedDataTemplate, derCert);
-+
-+ if ( rv ) {
-+ goto loser;
-+ }
-+
-+ PORT_Memset(derName, 0, sizeof(SECItem));
-+ rv = SEC_QuickDERDecodeItem(arena, derName, SEC_CertSubjectTemplate, &sd.data);
-+
-+ if ( rv ) {
-+ goto loser;
-+ }
-+
-+ tmpptr = derName->data;
-+ derName->data = (unsigned char*)PORT_Alloc(derName->len);
-+ if ( derName->data == NULL ) {
-+ goto loser;
-+ }
-+
-+ PORT_Memcpy(derName->data, tmpptr, derName->len);
-+
-+ PORT_FreeArena(arena, PR_FALSE);
-+ return(SECSuccess);
-+
-+loser:
-+ PORT_FreeArena(arena, PR_FALSE);
-+ return(SECFailure);
-+}
-+
-+SECStatus
-+CERT_IssuerNameFromDERCert(SECItem *derCert, SECItem *derName)
-+{
-+ int rv;
-+ PRArenaPool *arena;
-+ CERTSignedData sd;
-+ void *tmpptr;
-+
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+
-+ if ( ! arena ) {
-+ return(SECFailure);
-+ }
-+
-+ PORT_Memset(&sd, 0, sizeof(CERTSignedData));
-+ rv = SEC_QuickDERDecodeItem(arena, &sd, CERT_SignedDataTemplate, derCert);
-+
-+ if ( rv ) {
-+ goto loser;
-+ }
-+
-+ PORT_Memset(derName, 0, sizeof(SECItem));
-+ rv = SEC_QuickDERDecodeItem(arena, derName, SEC_CertIssuerTemplate, &sd.data);
-+
-+ if ( rv ) {
-+ goto loser;
-+ }
-+
-+ tmpptr = derName->data;
-+ derName->data = (unsigned char*)PORT_Alloc(derName->len);
-+ if ( derName->data == NULL ) {
-+ goto loser;
-+ }
-+
-+ PORT_Memcpy(derName->data, tmpptr, derName->len);
-+
-+ PORT_FreeArena(arena, PR_FALSE);
-+ return(SECSuccess);
-+
-+loser:
-+ PORT_FreeArena(arena, PR_FALSE);
-+ return(SECFailure);
-+}
-+
-+SECStatus
-+CERT_SerialNumberFromDERCert(SECItem *derCert, SECItem *derName)
-+{
-+ int rv;
-+ PRArenaPool *arena;
-+ CERTSignedData sd;
-+ void *tmpptr;
-+
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+
-+ if ( ! arena ) {
-+ return(SECFailure);
-+ }
-+
-+ PORT_Memset(&sd, 0, sizeof(CERTSignedData));
-+ rv = SEC_QuickDERDecodeItem(arena, &sd, CERT_SignedDataTemplate, derCert);
-+
-+ if ( rv ) {
-+ goto loser;
-+ }
-+
-+ PORT_Memset(derName, 0, sizeof(SECItem));
-+ rv = SEC_QuickDERDecodeItem(arena, derName, SEC_CertSerialNumberTemplate, &sd.data);
-+
-+ if ( rv ) {
-+ goto loser;
-+ }
-+
-+ tmpptr = derName->data;
-+ derName->data = (unsigned char*)PORT_Alloc(derName->len);
-+ if ( derName->data == NULL ) {
-+ goto loser;
-+ }
-+
-+ PORT_Memcpy(derName->data, tmpptr, derName->len);
-+
-+ PORT_FreeArena(arena, PR_FALSE);
-+ return(SECSuccess);
-+
-+loser:
-+ PORT_FreeArena(arena, PR_FALSE);
-+ return(SECFailure);
-+}
-+
-+/*
-+ * Generate a database key, based on serial number and issuer, from a
-+ * DER certificate.
-+ */
-+SECStatus
-+CERT_KeyFromDERCert(PRArenaPool *arena, SECItem *derCert, SECItem *key)
-+{
-+ int rv;
-+ CERTSignedData sd;
-+ CERTCertKey certkey;
-+
-+ PORT_Memset(&sd, 0, sizeof(CERTSignedData));
-+ rv = SEC_ASN1DecodeItem(arena, &sd, CERT_SignedDataTemplate, derCert);
-+
-+ if ( rv ) {
-+ goto loser;
-+ }
-+
-+ PORT_Memset(&certkey, 0, sizeof(CERTCertKey));
-+ rv = SEC_ASN1DecodeItem(arena, &certkey, CERT_CertKeyTemplate, &sd.data);
-+
-+ if ( rv ) {
-+ goto loser;
-+ }
-+
-+ return(CERT_KeyFromIssuerAndSN(arena, &certkey.derIssuer,
-+ &certkey.serialNumber, key));
-+loser:
-+ return(SECFailure);
-+}
-+
-+/*
-+ * fill in keyUsage field of the cert based on the cert extension
-+ * if the extension is not critical, then we allow all uses
-+ */
-+static SECStatus
-+GetKeyUsage(CERTCertificate *cert)
-+{
-+ SECStatus rv;
-+ SECItem tmpitem;
-+
-+ rv = CERT_FindKeyUsageExtension(cert, &tmpitem);
-+ if ( rv == SECSuccess ) {
-+ /* remember the actual value of the extension */
-+ cert->rawKeyUsage = tmpitem.data[0];
-+ cert->keyUsagePresent = PR_TRUE;
-+ cert->keyUsage = tmpitem.data[0];
-+
-+ PORT_Free(tmpitem.data);
-+ tmpitem.data = NULL;
-+
-+ } else {
-+ /* if the extension is not present, then we allow all uses */
-+ cert->keyUsage = KU_ALL;
-+ cert->rawKeyUsage = KU_ALL;
-+ cert->keyUsagePresent = PR_FALSE;
-+ }
-+
-+ if ( CERT_GovtApprovedBitSet(cert) ) {
-+ cert->keyUsage |= KU_NS_GOVT_APPROVED;
-+ cert->rawKeyUsage |= KU_NS_GOVT_APPROVED;
-+ }
-+
-+ return(SECSuccess);
-+}
-+
-+
-+/*
-+ * determine if a fortezza V1 Cert is a CA or not.
-+ */
-+static PRBool
-+fortezzaIsCA( CERTCertificate *cert) {
-+ PRBool isCA = PR_FALSE;
-+ CERTSubjectPublicKeyInfo *spki = &cert->subjectPublicKeyInfo;
-+ int tag;
-+
-+ tag = SECOID_GetAlgorithmTag(&spki->algorithm);
-+ if ((tag == SEC_OID_MISSI_KEA_DSS_OLD) ||
-+ (tag == SEC_OID_MISSI_KEA_DSS) ||
-+ (tag == SEC_OID_MISSI_DSS_OLD) ||
-+ (tag == SEC_OID_MISSI_DSS) ) {
-+ SECItem rawkey;
-+ unsigned char *rawptr;
-+ unsigned char *end;
-+ int len;
-+
-+ rawkey = spki->subjectPublicKey;
-+ DER_ConvertBitString(&rawkey);
-+ rawptr = rawkey.data;
-+ end = rawkey.data + rawkey.len;
-+
-+ /* version */
-+ rawptr += sizeof(((SECKEYPublicKey*)0)->u.fortezza.KMID)+2;
-+
-+ /* clearance (the string up to the first byte with the hi-bit on */
-+ while ((rawptr < end) && (*rawptr++ & 0x80));
-+ if (rawptr >= end) { return PR_FALSE; }
-+
-+ /* KEAPrivilege (the string up to the first byte with the hi-bit on */
-+ while ((rawptr < end) && (*rawptr++ & 0x80));
-+ if (rawptr >= end) { return PR_FALSE; }
-+
-+ /* skip the key */
-+ len = (*rawptr << 8) | rawptr[1];
-+ rawptr += 2 + len;
-+
-+ /* shared key */
-+ if (rawptr >= end) { return PR_FALSE; }
-+ /* DSS Version is next */
-+ rawptr += 2;
-+
-+ /* DSSPrivilege (the string up to the first byte with the hi-bit on */
-+ if (*rawptr & 0x30) isCA = PR_TRUE;
-+
-+ }
-+ return isCA;
-+}
-+
-+static SECStatus
-+findOIDinOIDSeqByTagNum(CERTOidSequence *seq, SECOidTag tagnum)
-+{
-+ SECItem **oids;
-+ SECItem *oid;
-+ SECStatus rv = SECFailure;
-+
-+ if (seq != NULL) {
-+ oids = seq->oids;
-+ while (oids != NULL && *oids != NULL) {
-+ oid = *oids;
-+ if (SECOID_FindOIDTag(oid) == tagnum) {
-+ rv = SECSuccess;
-+ break;
-+ }
-+ oids++;
-+ }
-+ }
-+ return rv;
-+}
-+
-+/*
-+ * fill in nsCertType field of the cert based on the cert extension
-+ */
-+SECStatus
-+cert_GetCertType(CERTCertificate *cert)
-+{
-+ SECStatus rv;
-+ SECItem tmpitem;
-+ SECItem encodedExtKeyUsage;
-+ CERTOidSequence *extKeyUsage = NULL;
-+ PRBool basicConstraintPresent = PR_FALSE;
-+ CERTBasicConstraints basicConstraint;
-+ unsigned int nsCertType = 0;
-+
-+ if (cert->nsCertType) {
-+ /* once set, no need to recalculate */
-+ return SECSuccess;
-+ }
-+
-+ tmpitem.data = NULL;
-+ CERT_FindNSCertTypeExtension(cert, &tmpitem);
-+ rv = CERT_FindCertExtension(cert, SEC_OID_X509_EXT_KEY_USAGE,
-+ &encodedExtKeyUsage);
-+ if (rv == SECSuccess) {
-+ extKeyUsage = CERT_DecodeOidSequence(&encodedExtKeyUsage);
-+ }
-+ rv = CERT_FindBasicConstraintExten(cert, &basicConstraint);
-+ if (rv == SECSuccess) {
-+ basicConstraintPresent = PR_TRUE;
-+ }
-+ if (tmpitem.data != NULL || extKeyUsage != NULL) {
-+ if (tmpitem.data == NULL) {
-+ nsCertType = 0;
-+ } else {
-+ nsCertType = tmpitem.data[0];
-+ }
-+
-+ /* free tmpitem data pointer to avoid memory leak */
-+ PORT_Free(tmpitem.data);
-+ tmpitem.data = NULL;
-+
-+ /*
-+ * for this release, we will allow SSL certs with an email address
-+ * to be used for email
-+ */
-+ if ( ( nsCertType & NS_CERT_TYPE_SSL_CLIENT ) &&
-+ cert->emailAddr && cert->emailAddr[0]) {
-+ nsCertType |= NS_CERT_TYPE_EMAIL;
-+ }
-+ /*
-+ * for this release, we will allow SSL intermediate CAs to be
-+ * email intermediate CAs too.
-+ */
-+ if ( nsCertType & NS_CERT_TYPE_SSL_CA ) {
-+ nsCertType |= NS_CERT_TYPE_EMAIL_CA;
-+ }
-+ /*
-+ * allow a cert with the extended key usage of EMail Protect
-+ * to be used for email or as an email CA, if basic constraints
-+ * indicates that it is a CA.
-+ */
-+ if (findOIDinOIDSeqByTagNum(extKeyUsage,
-+ SEC_OID_EXT_KEY_USAGE_EMAIL_PROTECT) ==
-+ SECSuccess) {
-+ if (basicConstraintPresent == PR_TRUE &&
-+ (basicConstraint.isCA)) {
-+ nsCertType |= NS_CERT_TYPE_EMAIL_CA;
-+ } else {
-+ nsCertType |= NS_CERT_TYPE_EMAIL;
-+ }
-+ }
-+ if (findOIDinOIDSeqByTagNum(extKeyUsage,
-+ SEC_OID_EXT_KEY_USAGE_SERVER_AUTH) ==
-+ SECSuccess){
-+ if (basicConstraintPresent == PR_TRUE &&
-+ (basicConstraint.isCA)) {
-+ nsCertType |= NS_CERT_TYPE_SSL_CA;
-+ } else {
-+ nsCertType |= NS_CERT_TYPE_SSL_SERVER;
-+ }
-+ }
-+ if (findOIDinOIDSeqByTagNum(extKeyUsage,
-+ SEC_OID_EXT_KEY_USAGE_CLIENT_AUTH) ==
-+ SECSuccess){
-+ if (basicConstraintPresent == PR_TRUE &&
-+ (basicConstraint.isCA)) {
-+ nsCertType |= NS_CERT_TYPE_SSL_CA;
-+ } else {
-+ nsCertType |= NS_CERT_TYPE_SSL_CLIENT;
-+ }
-+ }
-+ if (findOIDinOIDSeqByTagNum(extKeyUsage,
-+ SEC_OID_EXT_KEY_USAGE_CODE_SIGN) ==
-+ SECSuccess) {
-+ if (basicConstraintPresent == PR_TRUE &&
-+ (basicConstraint.isCA)) {
-+ nsCertType |= NS_CERT_TYPE_OBJECT_SIGNING_CA;
-+ } else {
-+ nsCertType |= NS_CERT_TYPE_OBJECT_SIGNING;
-+ }
-+ }
-+ if (findOIDinOIDSeqByTagNum(extKeyUsage,
-+ SEC_OID_EXT_KEY_USAGE_TIME_STAMP) ==
-+ SECSuccess) {
-+ nsCertType |= EXT_KEY_USAGE_TIME_STAMP;
-+ }
-+ if (findOIDinOIDSeqByTagNum(extKeyUsage,
-+ SEC_OID_OCSP_RESPONDER) ==
-+ SECSuccess) {
-+ nsCertType |= EXT_KEY_USAGE_STATUS_RESPONDER;
-+ }
-+ } else {
-+ /* if no extension, then allow any ssl or email (no ca or object
-+ * signing)
-+ */
-+ nsCertType = NS_CERT_TYPE_SSL_CLIENT | NS_CERT_TYPE_SSL_SERVER |
-+ NS_CERT_TYPE_EMAIL;
-+
-+ /* if the basic constraint extension says the cert is a CA, then
-+ allow SSL CA and EMAIL CA and Status Responder */
-+ if ((basicConstraintPresent == PR_TRUE)
-+ && (basicConstraint.isCA)) {
-+ nsCertType |= NS_CERT_TYPE_SSL_CA;
-+ nsCertType |= NS_CERT_TYPE_EMAIL_CA;
-+ nsCertType |= EXT_KEY_USAGE_STATUS_RESPONDER;
-+ } else if (CERT_IsCACert(cert, NULL) == PR_TRUE) {
-+ nsCertType |= EXT_KEY_USAGE_STATUS_RESPONDER;
-+ }
-+
-+ /* if the cert is a fortezza CA cert, then allow SSL CA and EMAIL CA */
-+ if (fortezzaIsCA(cert)) {
-+ nsCertType |= NS_CERT_TYPE_SSL_CA;
-+ nsCertType |= NS_CERT_TYPE_EMAIL_CA;
-+ }
-+ }
-+
-+ if (extKeyUsage != NULL) {
-+ PORT_Free(encodedExtKeyUsage.data);
-+ CERT_DestroyOidSequence(extKeyUsage);
-+ }
-+ PR_AtomicSet(&cert->nsCertType, nsCertType);
-+ return(SECSuccess);
-+}
-+
-+/*
-+ * cert_GetKeyID() - extract or generate the subjectKeyID from a certificate
-+ */
-+SECStatus
-+cert_GetKeyID(CERTCertificate *cert)
-+{
-+ SECItem tmpitem;
-+ SECStatus rv;
-+ SECKEYPublicKey *key;
-+
-+ cert->subjectKeyID.len = 0;
-+
-+ /* see of the cert has a key identifier extension */
-+ rv = CERT_FindSubjectKeyIDExtension(cert, &tmpitem);
-+ if ( rv == SECSuccess ) {
-+ cert->subjectKeyID.data = (unsigned char*) PORT_ArenaAlloc(cert->arena, tmpitem.len);
-+ if ( cert->subjectKeyID.data != NULL ) {
-+ PORT_Memcpy(cert->subjectKeyID.data, tmpitem.data, tmpitem.len);
-+ cert->subjectKeyID.len = tmpitem.len;
-+ cert->keyIDGenerated = PR_FALSE;
-+ }
-+
-+ PORT_Free(tmpitem.data);
-+ }
-+
-+ /* if the cert doesn't have a key identifier extension and the cert is
-+ * a V1 fortezza certificate, use the cert's 8 byte KMID as the
-+ * key identifier. */
-+ key = CERT_KMIDPublicKey(cert);
-+
-+ if (key != NULL) {
-+
-+ if (key->keyType == fortezzaKey) {
-+
-+ cert->subjectKeyID.data = (unsigned char *)PORT_ArenaAlloc(cert->arena, 8);
-+ if ( cert->subjectKeyID.data != NULL ) {
-+ PORT_Memcpy(cert->subjectKeyID.data, key->u.fortezza.KMID, 8);
-+ cert->subjectKeyID.len = 8;
-+ cert->keyIDGenerated = PR_FALSE;
-+ }
-+ }
-+
-+ SECKEY_DestroyPublicKey(key);
-+ }
-+
-+ /* if the cert doesn't have a key identifier extension, then generate one*/
-+ if ( cert->subjectKeyID.len == 0 ) {
-+ /*
-+ * pkix says that if the subjectKeyID is not present, then we should
-+ * use the SHA-1 hash of the DER-encoded publicKeyInfo from the cert
-+ */
-+ cert->subjectKeyID.data = (unsigned char *)PORT_ArenaAlloc(cert->arena, SHA1_LENGTH);
-+ if ( cert->subjectKeyID.data != NULL ) {
-+ rv = PK11_HashBuf(SEC_OID_SHA1,cert->subjectKeyID.data,
-+ cert->derPublicKey.data,
-+ cert->derPublicKey.len);
-+ if ( rv == SECSuccess ) {
-+ cert->subjectKeyID.len = SHA1_LENGTH;
-+ }
-+ }
-+ }
-+
-+ if ( cert->subjectKeyID.len == 0 ) {
-+ return(SECFailure);
-+ }
-+ return(SECSuccess);
-+
-+}
-+
-+static PRBool
-+cert_IsRootCert(CERTCertificate *cert)
-+{
-+ SECStatus rv;
-+ SECItem tmpitem;
-+
-+ /* cache the authKeyID extension, if present */
-+ cert->authKeyID = CERT_FindAuthKeyIDExten(cert->arena, cert);
-+
-+ /* it MUST be self-issued to be a root */
-+ if (cert->derIssuer.len == 0 ||
-+ !SECITEM_ItemsAreEqual(&cert->derIssuer, &cert->derSubject))
-+ {
-+ return PR_FALSE;
-+ }
-+
-+ /* check the authKeyID extension */
-+ if (cert->authKeyID) {
-+ /* authority key identifier is present */
-+ if (cert->authKeyID->keyID.len > 0) {
-+ /* the keyIdentifier field is set, look for subjectKeyID */
-+ rv = CERT_FindSubjectKeyIDExtension(cert, &tmpitem);
-+ if (rv == SECSuccess) {
-+ PRBool match;
-+ /* also present, they MUST match for it to be a root */
-+ match = SECITEM_ItemsAreEqual(&cert->authKeyID->keyID,
-+ &tmpitem);
-+ PORT_Free(tmpitem.data);
-+ if (!match) return PR_FALSE; /* else fall through */
-+ } else {
-+ /* the subject key ID is required when AKI is present */
-+ return PR_FALSE;
-+ }
-+ }
-+ if (cert->authKeyID->authCertIssuer) {
-+ SECItem *caName;
-+ caName = (SECItem *)CERT_GetGeneralNameByType(
-+ cert->authKeyID->authCertIssuer,
-+ certDirectoryName, PR_TRUE);
-+ if (caName) {
-+ if (!SECITEM_ItemsAreEqual(&cert->derIssuer, caName)) {
-+ return PR_FALSE;
-+ } /* else fall through */
-+ } /* else ??? could not get general name as directory name? */
-+ }
-+ if (cert->authKeyID->authCertSerialNumber.len > 0) {
-+ if (!SECITEM_ItemsAreEqual(&cert->serialNumber,
-+ &cert->authKeyID->authCertSerialNumber)) {
-+ return PR_FALSE;
-+ } /* else fall through */
-+ }
-+ /* all of the AKI fields that were present passed the test */
-+ return PR_TRUE;
-+ }
-+ /* else the AKI was not present, so this is a root */
-+ return PR_TRUE;
-+}
-+
-+/*
-+ * take a DER certificate and decode it into a certificate structure
-+ */
-+CERTCertificate *
-+CERT_DecodeDERCertificate(SECItem *derSignedCert, PRBool copyDER,
-+ char *nickname)
-+{
-+ CERTCertificate *cert;
-+ PRArenaPool *arena;
-+ void *data;
-+ int rv;
-+ int len;
-+ char *tmpname;
-+
-+ /* make a new arena */
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+
-+ if ( !arena ) {
-+ return 0;
-+ }
-+
-+ /* allocate the certificate structure */
-+ cert = (CERTCertificate *)PORT_ArenaZAlloc(arena, sizeof(CERTCertificate));
-+
-+ if ( !cert ) {
-+ goto loser;
-+ }
-+
-+ cert->arena = arena;
-+
-+ if ( copyDER ) {
-+ /* copy the DER data for the cert into this arena */
-+ data = (void *)PORT_ArenaAlloc(arena, derSignedCert->len);
-+ if ( !data ) {
-+ goto loser;
-+ }
-+ cert->derCert.data = (unsigned char *)data;
-+ cert->derCert.len = derSignedCert->len;
-+ PORT_Memcpy(data, derSignedCert->data, derSignedCert->len);
-+ } else {
-+ /* point to passed in DER data */
-+ cert->derCert = *derSignedCert;
-+ }
-+
-+ /* decode the certificate info */
-+ rv = SEC_QuickDERDecodeItem(arena, cert, SEC_SignedCertificateTemplate,
-+ &cert->derCert);
-+
-+ if ( rv ) {
-+ goto loser;
-+ }
-+
-+ if (cert_HasUnknownCriticalExten (cert->extensions) == PR_TRUE) {
-+ PORT_SetError(SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION);
-+ goto loser;
-+ }
-+
-+ /* generate and save the database key for the cert */
-+ rv = CERT_KeyFromIssuerAndSN(arena, &cert->derIssuer, &cert->serialNumber,
-+ &cert->certKey);
-+ if ( rv ) {
-+ goto loser;
-+ }
-+
-+ /* set the nickname */
-+ if ( nickname == NULL ) {
-+ cert->nickname = NULL;
-+ } else {
-+ /* copy and install the nickname */
-+ len = PORT_Strlen(nickname) + 1;
-+ cert->nickname = (char*)PORT_ArenaAlloc(arena, len);
-+ if ( cert->nickname == NULL ) {
-+ goto loser;
-+ }
-+
-+ PORT_Memcpy(cert->nickname, nickname, len);
-+ }
-+
-+ /* set the email address */
-+ cert->emailAddr = cert_GetCertificateEmailAddresses(cert);
-+
-+ /* initialize the subjectKeyID */
-+ rv = cert_GetKeyID(cert);
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+
-+ /* initialize keyUsage */
-+ rv = GetKeyUsage(cert);
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+
-+ /* initialize the certType */
-+ rv = cert_GetCertType(cert);
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+
-+ /* determine if this is a root cert */
-+ cert->isRoot = cert_IsRootCert(cert);
-+
-+ tmpname = CERT_NameToAscii(&cert->subject);
-+ if ( tmpname != NULL ) {
-+ cert->subjectName = PORT_ArenaStrdup(cert->arena, tmpname);
-+ PORT_Free(tmpname);
-+ }
-+
-+ tmpname = CERT_NameToAscii(&cert->issuer);
-+ if ( tmpname != NULL ) {
-+ cert->issuerName = PORT_ArenaStrdup(cert->arena, tmpname);
-+ PORT_Free(tmpname);
-+ }
-+
-+ cert->referenceCount = 1;
-+ cert->slot = NULL;
-+ cert->pkcs11ID = CK_INVALID_HANDLE;
-+ cert->dbnickname = NULL;
-+
-+ return(cert);
-+
-+loser:
-+
-+ if ( arena ) {
-+ PORT_FreeArena(arena, PR_FALSE);
-+ }
-+
-+ return(0);
-+}
-+
-+CERTCertificate *
-+__CERT_DecodeDERCertificate(SECItem *derSignedCert, PRBool copyDER,
-+ char *nickname)
-+{
-+ return CERT_DecodeDERCertificate(derSignedCert, copyDER, nickname);
-+}
-+
-+
-+/*
-+** Amount of time that a certifiate is allowed good before it is actually
-+** good. This is used for pending certificates, ones that are about to be
-+** valid. The slop is designed to allow for some variance in the clocks
-+** of the machine checking the certificate.
-+*/
-+#define PENDING_SLOP (24L*60L*60L) /* seconds per day */
-+static PRInt32 pendingSlop = PENDING_SLOP; /* seconds */
-+
-+PRInt32
-+CERT_GetSlopTime(void)
-+{
-+ return pendingSlop; /* seconds */
-+}
-+
-+SECStatus
-+CERT_SetSlopTime(PRInt32 slop) /* seconds */
-+{
-+ if (slop < 0)
-+ return SECFailure;
-+ pendingSlop = slop;
-+ return SECSuccess;
-+}
-+
-+SECStatus
-+CERT_GetCertTimes(CERTCertificate *c, PRTime *notBefore, PRTime *notAfter)
-+{
-+ SECStatus rv;
-+
-+ if (!c || !notBefore || !notAfter) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+
-+ /* convert DER not-before time */
-+ rv = DER_DecodeTimeChoice(notBefore, &c->validity.notBefore);
-+ if (rv) {
-+ return(SECFailure);
-+ }
-+
-+ /* convert DER not-after time */
-+ rv = DER_DecodeTimeChoice(notAfter, &c->validity.notAfter);
-+ if (rv) {
-+ return(SECFailure);
-+ }
-+
-+ return(SECSuccess);
-+}
-+
-+/*
-+ * Check the validity times of a certificate
-+ */
-+SECCertTimeValidity
-+CERT_CheckCertValidTimes(CERTCertificate *c, PRTime t, PRBool allowOverride)
-+{
-+ PRTime notBefore, notAfter, llPendingSlop, tmp1;
-+ SECStatus rv;
-+
-+ /* if cert is already marked OK, then don't bother to check */
-+ if ( allowOverride && c->timeOK ) {
-+ return(secCertTimeValid);
-+ }
-+
-+ rv = CERT_GetCertTimes(c, &notBefore, &notAfter);
-+
-+ if (rv) {
-+ return(secCertTimeExpired); /*XXX is this the right thing to do here?*/
-+ }
-+
-+ LL_I2L(llPendingSlop, pendingSlop);
-+ /* convert to micro seconds */
-+ LL_UI2L(tmp1, PR_USEC_PER_SEC);
-+ LL_MUL(llPendingSlop, llPendingSlop, tmp1);
-+ LL_SUB(notBefore, notBefore, llPendingSlop);
-+ if ( LL_CMP( t, <, notBefore ) ) {
-+ PORT_SetError(SEC_ERROR_EXPIRED_CERTIFICATE);
-+ return(secCertTimeNotValidYet);
-+ }
-+ if ( LL_CMP( t, >, notAfter) ) {
-+ PORT_SetError(SEC_ERROR_EXPIRED_CERTIFICATE);
-+ return(secCertTimeExpired);
-+ }
-+
-+ return(secCertTimeValid);
-+}
-+
-+SECStatus
-+SEC_GetCrlTimes(CERTCrl *date, PRTime *notBefore, PRTime *notAfter)
-+{
-+ int rv;
-+
-+ /* convert DER not-before time */
-+ rv = DER_DecodeTimeChoice(notBefore, &date->lastUpdate);
-+ if (rv) {
-+ return(SECFailure);
-+ }
-+
-+ /* convert DER not-after time */
-+ if (date->nextUpdate.data) {
-+ rv = DER_DecodeTimeChoice(notAfter, &date->nextUpdate);
-+ if (rv) {
-+ return(SECFailure);
-+ }
-+ }
-+ else {
-+ LL_I2L(*notAfter, 0L);
-+ }
-+ return(SECSuccess);
-+}
-+
-+/* These routines should probably be combined with the cert
-+ * routines using an common extraction routine.
-+ */
-+SECCertTimeValidity
-+SEC_CheckCrlTimes(CERTCrl *crl, PRTime t) {
-+ PRTime notBefore, notAfter, llPendingSlop, tmp1;
-+ SECStatus rv;
-+
-+ rv = SEC_GetCrlTimes(crl, &notBefore, &notAfter);
-+
-+ if (rv) {
-+ return(secCertTimeExpired);
-+ }
-+
-+ LL_I2L(llPendingSlop, pendingSlop);
-+ /* convert to micro seconds */
-+ LL_I2L(tmp1, PR_USEC_PER_SEC);
-+ LL_MUL(llPendingSlop, llPendingSlop, tmp1);
-+ LL_SUB(notBefore, notBefore, llPendingSlop);
-+ if ( LL_CMP( t, <, notBefore ) ) {
-+ return(secCertTimeNotValidYet);
-+ }
-+
-+ /* If next update is omitted and the test for notBefore passes, then
-+ we assume that the crl is up to date.
-+ */
-+ if ( LL_IS_ZERO(notAfter) ) {
-+ return(secCertTimeValid);
-+ }
-+
-+ if ( LL_CMP( t, >, notAfter) ) {
-+ return(secCertTimeExpired);
-+ }
-+
-+ return(secCertTimeValid);
-+}
-+
-+PRBool
-+SEC_CrlIsNewer(CERTCrl *inNew, CERTCrl *old) {
-+ PRTime newNotBefore, newNotAfter;
-+ PRTime oldNotBefore, oldNotAfter;
-+ SECStatus rv;
-+
-+ /* problems with the new CRL? reject it */
-+ rv = SEC_GetCrlTimes(inNew, &newNotBefore, &newNotAfter);
-+ if (rv) return PR_FALSE;
-+
-+ /* problems with the old CRL? replace it */
-+ rv = SEC_GetCrlTimes(old, &oldNotBefore, &oldNotAfter);
-+ if (rv) return PR_TRUE;
-+
-+ /* Question: what about the notAfter's? */
-+ return ((PRBool)LL_CMP(oldNotBefore, <, newNotBefore));
-+}
-+
-+/*
-+ * return required key usage and cert type based on cert usage
-+ */
-+SECStatus
-+CERT_KeyUsageAndTypeForCertUsage(SECCertUsage usage,
-+ PRBool ca,
-+ unsigned int *retKeyUsage,
-+ unsigned int *retCertType)
-+{
-+ unsigned int requiredKeyUsage = 0;
-+ unsigned int requiredCertType = 0;
-+
-+ if ( ca ) {
-+ switch ( usage ) {
-+ case certUsageSSLServerWithStepUp:
-+ requiredKeyUsage = KU_NS_GOVT_APPROVED | KU_KEY_CERT_SIGN;
-+ requiredCertType = NS_CERT_TYPE_SSL_CA;
-+ break;
-+ case certUsageSSLClient:
-+ requiredKeyUsage = KU_KEY_CERT_SIGN;
-+ requiredCertType = NS_CERT_TYPE_SSL_CA;
-+ break;
-+ case certUsageSSLServer:
-+ requiredKeyUsage = KU_KEY_CERT_SIGN;
-+ requiredCertType = NS_CERT_TYPE_SSL_CA;
-+ break;
-+ case certUsageSSLCA:
-+ requiredKeyUsage = KU_KEY_CERT_SIGN;
-+ requiredCertType = NS_CERT_TYPE_SSL_CA;
-+ break;
-+ case certUsageEmailSigner:
-+ requiredKeyUsage = KU_KEY_CERT_SIGN;
-+ requiredCertType = NS_CERT_TYPE_EMAIL_CA;
-+ break;
-+ case certUsageEmailRecipient:
-+ requiredKeyUsage = KU_KEY_CERT_SIGN;
-+ requiredCertType = NS_CERT_TYPE_EMAIL_CA;
-+ break;
-+ case certUsageObjectSigner:
-+ requiredKeyUsage = KU_KEY_CERT_SIGN;
-+ requiredCertType = NS_CERT_TYPE_OBJECT_SIGNING_CA;
-+ break;
-+ case certUsageAnyCA:
-+ case certUsageVerifyCA:
-+ case certUsageStatusResponder:
-+ requiredKeyUsage = KU_KEY_CERT_SIGN;
-+ requiredCertType = NS_CERT_TYPE_OBJECT_SIGNING_CA |
-+ NS_CERT_TYPE_EMAIL_CA |
-+ NS_CERT_TYPE_SSL_CA;
-+ break;
-+ default:
-+ PORT_Assert(0);
-+ goto loser;
-+ }
-+ } else {
-+ switch ( usage ) {
-+ case certUsageSSLClient:
-+ requiredKeyUsage = KU_DIGITAL_SIGNATURE;
-+ requiredCertType = NS_CERT_TYPE_SSL_CLIENT;
-+ break;
-+ case certUsageSSLServer:
-+ requiredKeyUsage = KU_KEY_AGREEMENT_OR_ENCIPHERMENT;
-+ requiredCertType = NS_CERT_TYPE_SSL_SERVER;
-+ break;
-+ case certUsageSSLServerWithStepUp:
-+ requiredKeyUsage = KU_KEY_AGREEMENT_OR_ENCIPHERMENT |
-+ KU_NS_GOVT_APPROVED;
-+ requiredCertType = NS_CERT_TYPE_SSL_SERVER;
-+ break;
-+ case certUsageSSLCA:
-+ requiredKeyUsage = KU_KEY_CERT_SIGN;
-+ requiredCertType = NS_CERT_TYPE_SSL_CA;
-+ break;
-+ case certUsageEmailSigner:
-+ requiredKeyUsage = KU_DIGITAL_SIGNATURE;
-+ requiredCertType = NS_CERT_TYPE_EMAIL;
-+ break;
-+ case certUsageEmailRecipient:
-+ requiredKeyUsage = KU_KEY_AGREEMENT_OR_ENCIPHERMENT;
-+ requiredCertType = NS_CERT_TYPE_EMAIL;
-+ break;
-+ case certUsageObjectSigner:
-+ requiredKeyUsage = KU_DIGITAL_SIGNATURE;
-+ requiredCertType = NS_CERT_TYPE_OBJECT_SIGNING;
-+ break;
-+ case certUsageStatusResponder:
-+ requiredKeyUsage = KU_DIGITAL_SIGNATURE;
-+ requiredCertType = EXT_KEY_USAGE_STATUS_RESPONDER;
-+ break;
-+ default:
-+ PORT_Assert(0);
-+ goto loser;
-+ }
-+ }
-+
-+ if ( retKeyUsage != NULL ) {
-+ *retKeyUsage = requiredKeyUsage;
-+ }
-+ if ( retCertType != NULL ) {
-+ *retCertType = requiredCertType;
-+ }
-+
-+ return(SECSuccess);
-+loser:
-+ return(SECFailure);
-+}
-+
-+/*
-+ * check the key usage of a cert against a set of required values
-+ */
-+SECStatus
-+CERT_CheckKeyUsage(CERTCertificate *cert, unsigned int requiredUsage)
-+{
-+ if (!cert) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+ /* choose between key agreement or key encipherment based on key
-+ * type in cert
-+ */
-+ if ( requiredUsage & KU_KEY_AGREEMENT_OR_ENCIPHERMENT ) {
-+ KeyType keyType = CERT_GetCertKeyType(&cert->subjectPublicKeyInfo);
-+ /* turn off the special bit */
-+ requiredUsage &= (~KU_KEY_AGREEMENT_OR_ENCIPHERMENT);
-+
-+ switch (keyType) {
-+ case rsaKey:
-+ requiredUsage |= KU_KEY_ENCIPHERMENT;
-+ break;
-+ case dsaKey:
-+ requiredUsage |= KU_DIGITAL_SIGNATURE;
-+ break;
-+ case fortezzaKey:
-+ case keaKey:
-+ case dhKey:
-+ requiredUsage |= KU_KEY_AGREEMENT;
-+ break;
-+ case ecKey:
-+ /* Accept either signature or agreement. */
-+ if (!(cert->keyUsage & (KU_DIGITAL_SIGNATURE | KU_KEY_AGREEMENT)))
-+ goto loser;
-+ break;
-+ default:
-+ goto loser;
-+ }
-+ }
-+
-+ if ( (cert->keyUsage & requiredUsage) == requiredUsage )
-+ return SECSuccess;
-+loser:
-+ PORT_SetError(SEC_ERROR_INADEQUATE_KEY_USAGE);
-+ return SECFailure;
-+}
-+
-+
-+CERTCertificate *
-+CERT_DupCertificate(CERTCertificate *c)
-+{
-+ if (c) {
-+#ifdef NSS_CLASSIC
-+ CERT_LockCertRefCount(c);
-+ ++c->referenceCount;
-+ CERT_UnlockCertRefCount(c);
-+#else
-+ NSSCertificate *tmp = STAN_GetNSSCertificate(c);
-+ nssCertificate_AddRef(tmp);
-+#endif
-+ }
-+ return c;
-+}
-+
-+/*
-+ * Allow use of default cert database, so that apps(such as mozilla) don't
-+ * have to pass the handle all over the place.
-+ */
-+static CERTCertDBHandle *default_cert_db_handle = 0;
-+
-+void
-+CERT_SetDefaultCertDB(CERTCertDBHandle *handle)
-+{
-+ default_cert_db_handle = handle;
-+
-+ return;
-+}
-+
-+CERTCertDBHandle *
-+CERT_GetDefaultCertDB(void)
-+{
-+ return(default_cert_db_handle);
-+}
-+
-+/* XXX this would probably be okay/better as an xp routine? */
-+static void
-+sec_lower_string(char *s)
-+{
-+ if ( s == NULL ) {
-+ return;
-+ }
-+
-+ while ( *s ) {
-+ *s = PORT_Tolower(*s);
-+ s++;
-+ }
-+
-+ return;
-+}
-+
-+/*
-+** Add a domain name to the list of names that the user has explicitly
-+** allowed (despite cert name mismatches) for use with a server cert.
-+*/
-+SECStatus
-+CERT_AddOKDomainName(CERTCertificate *cert, const char *hn)
-+{
-+ CERTOKDomainName *domainOK;
-+ int newNameLen;
-+
-+ if (!hn || !(newNameLen = strlen(hn))) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+ domainOK = (CERTOKDomainName *)PORT_ArenaZAlloc(cert->arena,
-+ (sizeof *domainOK) + newNameLen);
-+ if (!domainOK)
-+ return SECFailure; /* error code is already set. */
-+
-+ PORT_Strcpy(domainOK->name, hn);
-+ sec_lower_string(domainOK->name);
-+
-+ /* put at head of list. */
-+ domainOK->next = cert->domainOK;
-+ cert->domainOK = domainOK;
-+ return SECSuccess;
-+}
-+
-+/* returns SECSuccess if hn matches pattern cn,
-+** returns SECFailure with SSL_ERROR_BAD_CERT_DOMAIN if no match,
-+** returns SECFailure with some other error code if another error occurs.
-+**
-+** may modify cn, so caller must pass a modifiable copy.
-+*/
-+static SECStatus
-+cert_TestHostName(char * cn, const char * hn)
-+{
-+ int regvalid = PORT_RegExpValid(cn);
-+ if (regvalid != NON_SXP) {
-+ SECStatus rv;
-+ /* cn is a regular expression, try to match the shexp */
-+ int match = PORT_RegExpCaseSearch(hn, cn);
-+
-+ if ( match == 0 ) {
-+ rv = SECSuccess;
-+ } else {
-+ PORT_SetError(SSL_ERROR_BAD_CERT_DOMAIN);
-+ rv = SECFailure;
-+ }
-+ return rv;
-+ }
-+ /* cn is not a regular expression */
-+
-+ /* compare entire hn with cert name */
-+ if (PORT_Strcasecmp(hn, cn) == 0) {
-+ return SECSuccess;
-+ }
-+
-+ PORT_SetError(SSL_ERROR_BAD_CERT_DOMAIN);
-+ return SECFailure;
-+}
-+
-+
-+SECStatus
-+cert_VerifySubjectAltName(CERTCertificate *cert, const char *hn)
-+{
-+ PRArenaPool * arena = NULL;
-+ CERTGeneralName * nameList = NULL;
-+ CERTGeneralName * current;
-+ char * cn;
-+ int cnBufLen;
-+ unsigned int hnLen;
-+ int DNSextCount = 0;
-+ int IPextCount = 0;
-+ PRBool isIPaddr;
-+ SECStatus rv = SECFailure;
-+ SECItem subAltName;
-+ PRNetAddr netAddr;
-+ char cnbuf[128];
-+
-+ subAltName.data = NULL;
-+ hnLen = strlen(hn);
-+ cn = cnbuf;
-+ cnBufLen = sizeof cnbuf;
-+
-+ rv = CERT_FindCertExtension(cert, SEC_OID_X509_SUBJECT_ALT_NAME,
-+ &subAltName);
-+ if (rv != SECSuccess) {
-+ goto finish;
-+ }
-+ isIPaddr = (PR_SUCCESS == PR_StringToNetAddr(hn, &netAddr));
-+ rv = SECFailure;
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ if (!arena)
-+ goto finish;
-+
-+ nameList = current = CERT_DecodeAltNameExtension(arena, &subAltName);
-+ if (!current)
-+ goto finish;
-+
-+ do {
-+ switch (current->type) {
-+ case certDNSName:
-+ if (!isIPaddr) {
-+ /* DNS name current->name.other.data is not null terminated.
-+ ** so must copy it.
-+ */
-+ int cnLen = current->name.other.len;
-+ if (cnLen + 1 > cnBufLen) {
-+ cnBufLen = cnLen + 1;
-+ cn = (char *)PORT_ArenaAlloc(arena, cnBufLen);
-+ if (!cn)
-+ goto finish;
-+ }
-+ PORT_Memcpy(cn, current->name.other.data, cnLen);
-+ cn[cnLen] = 0;
-+ rv = cert_TestHostName(cn ,hn);
-+ if (rv == SECSuccess)
-+ goto finish;
-+ }
-+ DNSextCount++;
-+ break;
-+ case certIPAddress:
-+ if (isIPaddr) {
-+ int match = 0;
-+ PRIPv6Addr v6Addr;
-+ if (current->name.other.len == 4 && /* IP v4 address */
-+ netAddr.inet.family == PR_AF_INET) {
-+ match = !memcmp(&netAddr.inet.ip,
-+ current->name.other.data, 4);
-+ } else if (current->name.other.len == 16 && /* IP v6 address */
-+ netAddr.ipv6.family == PR_AF_INET6) {
-+ match = !memcmp(&netAddr.ipv6.ip,
-+ current->name.other.data, 16);
-+ } else if (current->name.other.len == 16 && /* IP v6 address */
-+ netAddr.inet.family == PR_AF_INET) {
-+ /* convert netAddr to ipv6, then compare. */
-+ /* ipv4 must be in Network Byte Order on input. */
-+ PR_ConvertIPv4AddrToIPv6(netAddr.inet.ip, &v6Addr);
-+ match = !memcmp(&v6Addr, current->name.other.data, 16);
-+ } else if (current->name.other.len == 4 && /* IP v4 address */
-+ netAddr.inet.family == PR_AF_INET6) {
-+ /* convert netAddr to ipv6, then compare. */
-+ PRUint32 ipv4 = (current->name.other.data[0] << 24) |
-+ (current->name.other.data[1] << 16) |
-+ (current->name.other.data[2] << 8) |
-+ current->name.other.data[3];
-+ /* ipv4 must be in Network Byte Order on input. */
-+ PR_ConvertIPv4AddrToIPv6(PR_htonl(ipv4), &v6Addr);
-+ match = !memcmp(&netAddr.ipv6.ip, &v6Addr, 16);
-+ }
-+ if (match) {
-+ rv = SECSuccess;
-+ goto finish;
-+ }
-+ }
-+ IPextCount++;
-+ break;
-+ default:
-+ break;
-+ }
-+ current = cert_get_next_general_name(current);
-+ } while (current != nameList);
-+
-+ if ((!isIPaddr && !DNSextCount) || (isIPaddr && !IPextCount)) {
-+ /* no relevant value in the extension was found. */
-+ PORT_SetError(SEC_ERROR_EXTENSION_NOT_FOUND);
-+ } else {
-+ PORT_SetError(SSL_ERROR_BAD_CERT_DOMAIN);
-+ }
-+ rv = SECFailure;
-+
-+finish:
-+
-+ /* Don't free nameList, it's part of the arena. */
-+ if (arena) {
-+ PORT_FreeArena(arena, PR_FALSE);
-+ }
-+
-+ if (subAltName.data) {
-+ SECITEM_FreeItem(&subAltName, PR_FALSE);
-+ }
-+
-+ return rv;
-+}
-+
-+
-+/* Make sure that the name of the host we are connecting to matches the
-+ * name that is incoded in the common-name component of the certificate
-+ * that they are using.
-+ */
-+SECStatus
-+CERT_VerifyCertName(CERTCertificate *cert, const char *hn)
-+{
-+ char * cn;
-+ SECStatus rv;
-+ CERTOKDomainName *domainOK;
-+
-+ if (!hn || !strlen(hn)) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+
-+ /* if the name is one that the user has already approved, it's OK. */
-+ for (domainOK = cert->domainOK; domainOK; domainOK = domainOK->next) {
-+ if (0 == PORT_Strcasecmp(hn, domainOK->name)) {
-+ return SECSuccess;
-+ }
-+ }
-+
-+ /* Per RFC 2818, if the SubjectAltName extension is present, it must
-+ ** be used as the cert's identity.
-+ */
-+ rv = cert_VerifySubjectAltName(cert, hn);
-+ if (rv == SECSuccess || PORT_GetError() != SEC_ERROR_EXTENSION_NOT_FOUND)
-+ return rv;
-+
-+ /* try the cert extension first, then the common name */
-+ cn = CERT_FindNSStringExtension(cert, SEC_OID_NS_CERT_EXT_SSL_SERVER_NAME);
-+ if ( !cn ) {
-+ cn = CERT_GetCommonName(&cert->subject);
-+ }
-+ if ( cn ) {
-+ rv = cert_TestHostName(cn, hn);
-+ PORT_Free(cn);
-+ } else
-+ PORT_SetError(SSL_ERROR_BAD_CERT_DOMAIN);
-+ return rv;
-+}
-+
-+PRBool
-+CERT_CompareCerts(CERTCertificate *c1, CERTCertificate *c2)
-+{
-+ SECComparison comp;
-+
-+ comp = SECITEM_CompareItem(&c1->derCert, &c2->derCert);
-+ if ( comp == SECEqual ) { /* certs are the same */
-+ return(PR_TRUE);
-+ } else {
-+ return(PR_FALSE);
-+ }
-+}
-+
-+static SECStatus
-+StringsEqual(char *s1, char *s2) {
-+ if ( ( s1 == NULL ) || ( s2 == NULL ) ) {
-+ if ( s1 != s2 ) { /* only one is null */
-+ return(SECFailure);
-+ }
-+ return(SECSuccess); /* both are null */
-+ }
-+
-+ if ( PORT_Strcmp( s1, s2 ) != 0 ) {
-+ return(SECFailure); /* not equal */
-+ }
-+
-+ return(SECSuccess); /* strings are equal */
-+}
-+
-+
-+PRBool
-+CERT_CompareCertsForRedirection(CERTCertificate *c1, CERTCertificate *c2)
-+{
-+ SECComparison comp;
-+ char *c1str, *c2str;
-+ SECStatus eq;
-+
-+ comp = SECITEM_CompareItem(&c1->derCert, &c2->derCert);
-+ if ( comp == SECEqual ) { /* certs are the same */
-+ return(PR_TRUE);
-+ }
-+
-+ /* check if they are issued by the same CA */
-+ comp = SECITEM_CompareItem(&c1->derIssuer, &c2->derIssuer);
-+ if ( comp != SECEqual ) { /* different issuer */
-+ return(PR_FALSE);
-+ }
-+
-+ /* check country name */
-+ c1str = CERT_GetCountryName(&c1->subject);
-+ c2str = CERT_GetCountryName(&c2->subject);
-+ eq = StringsEqual(c1str, c2str);
-+ PORT_Free(c1str);
-+ PORT_Free(c2str);
-+ if ( eq != SECSuccess ) {
-+ return(PR_FALSE);
-+ }
-+
-+ /* check locality name */
-+ c1str = CERT_GetLocalityName(&c1->subject);
-+ c2str = CERT_GetLocalityName(&c2->subject);
-+ eq = StringsEqual(c1str, c2str);
-+ PORT_Free(c1str);
-+ PORT_Free(c2str);
-+ if ( eq != SECSuccess ) {
-+ return(PR_FALSE);
-+ }
-+
-+ /* check state name */
-+ c1str = CERT_GetStateName(&c1->subject);
-+ c2str = CERT_GetStateName(&c2->subject);
-+ eq = StringsEqual(c1str, c2str);
-+ PORT_Free(c1str);
-+ PORT_Free(c2str);
-+ if ( eq != SECSuccess ) {
-+ return(PR_FALSE);
-+ }
-+
-+ /* check org name */
-+ c1str = CERT_GetOrgName(&c1->subject);
-+ c2str = CERT_GetOrgName(&c2->subject);
-+ eq = StringsEqual(c1str, c2str);
-+ PORT_Free(c1str);
-+ PORT_Free(c2str);
-+ if ( eq != SECSuccess ) {
-+ return(PR_FALSE);
-+ }
-+
-+#ifdef NOTDEF
-+ /* check orgUnit name */
-+ /*
-+ * We need to revisit this and decide which fields should be allowed to be
-+ * different
-+ */
-+ c1str = CERT_GetOrgUnitName(&c1->subject);
-+ c2str = CERT_GetOrgUnitName(&c2->subject);
-+ eq = StringsEqual(c1str, c2str);
-+ PORT_Free(c1str);
-+ PORT_Free(c2str);
-+ if ( eq != SECSuccess ) {
-+ return(PR_FALSE);
-+ }
-+#endif
-+
-+ return(PR_TRUE); /* all fields but common name are the same */
-+}
-+
-+
-+/* CERT_CertChainFromCert and CERT_DestroyCertificateList moved
-+ to certhigh.c */
-+
-+
-+CERTIssuerAndSN *
-+CERT_GetCertIssuerAndSN(PRArenaPool *arena, CERTCertificate *cert)
-+{
-+ CERTIssuerAndSN *result;
-+ SECStatus rv;
-+
-+ if ( arena == NULL ) {
-+ arena = cert->arena;
-+ }
-+
-+ result = (CERTIssuerAndSN*)PORT_ArenaZAlloc(arena, sizeof(*result));
-+ if (result == NULL) {
-+ PORT_SetError (SEC_ERROR_NO_MEMORY);
-+ return NULL;
-+ }
-+
-+ rv = SECITEM_CopyItem(arena, &result->derIssuer, &cert->derIssuer);
-+ if (rv != SECSuccess)
-+ return NULL;
-+
-+ rv = CERT_CopyName(arena, &result->issuer, &cert->issuer);
-+ if (rv != SECSuccess)
-+ return NULL;
-+
-+ rv = SECITEM_CopyItem(arena, &result->serialNumber, &cert->serialNumber);
-+ if (rv != SECSuccess)
-+ return NULL;
-+
-+ return result;
-+}
-+
-+char *
-+CERT_MakeCANickname(CERTCertificate *cert)
-+{
-+ char *firstname = NULL;
-+ char *org = NULL;
-+ char *nickname = NULL;
-+ int count;
-+ CERTCertificate *dummycert;
-+ CERTCertDBHandle *handle;
-+
-+ handle = cert->dbhandle;
-+
-+ nickname = CERT_GetNickName(cert, handle, cert->arena);
-+ if (nickname == NULL) {
-+ firstname = CERT_GetCommonName(&cert->subject);
-+ if ( firstname == NULL ) {
-+ firstname = CERT_GetOrgUnitName(&cert->subject);
-+ }
-+
-+ org = CERT_GetOrgName(&cert->issuer);
-+ if (org == NULL) {
-+ org = CERT_GetDomainComponentName(&cert->issuer);
-+ if (org == NULL) {
-+ if (firstname) {
-+ org = firstname;
-+ firstname = NULL;
-+ } else {
-+ org = PORT_Strdup("Unknown CA");
-+ }
-+ }
-+ }
-+
-+ /* can only fail if PORT_Strdup fails, in which case
-+ * we're having memory problems. */
-+ if (org == NULL) {
-+ goto loser;
-+ }
-+
-+
-+ count = 1;
-+ while ( 1 ) {
-+
-+ if ( firstname ) {
-+ if ( count == 1 ) {
-+ nickname = PR_smprintf("%s - %s", firstname, org);
-+ } else {
-+ nickname = PR_smprintf("%s - %s #%d", firstname, org, count);
-+ }
-+ } else {
-+ if ( count == 1 ) {
-+ nickname = PR_smprintf("%s", org);
-+ } else {
-+ nickname = PR_smprintf("%s #%d", org, count);
-+ }
-+ }
-+ if ( nickname == NULL ) {
-+ goto loser;
-+ }
-+
-+ /* look up the nickname to make sure it isn't in use already */
-+ dummycert = CERT_FindCertByNickname(handle, nickname);
-+
-+ if ( dummycert == NULL ) {
-+ goto done;
-+ }
-+
-+ /* found a cert, destroy it and loop */
-+ CERT_DestroyCertificate(dummycert);
-+
-+ /* free the nickname */
-+ PORT_Free(nickname);
-+
-+ count++;
-+ }
-+ }
-+loser:
-+ if ( nickname ) {
-+ PORT_Free(nickname);
-+ }
-+
-+ nickname = "";
-+
-+done:
-+ if ( firstname ) {
-+ PORT_Free(firstname);
-+ }
-+ if ( org ) {
-+ PORT_Free(org);
-+ }
-+
-+ return(nickname);
-+}
-+
-+/* CERT_Import_CAChain moved to certhigh.c */
-+
-+void
-+CERT_DestroyCrl (CERTSignedCrl *crl)
-+{
-+ SEC_DestroyCrl (crl);
-+}
-+
-+
-+
-+/*
-+ * Does a cert belong to a CA? We decide based on perm database trust
-+ * flags, Netscape Cert Type Extension, and KeyUsage Extension.
-+ */
-+PRBool
-+CERT_IsCACert(CERTCertificate *cert, unsigned int *rettype)
-+{
-+ CERTCertTrust *trust;
-+ SECStatus rv;
-+ unsigned int type;
-+ PRBool ret;
-+
-+ ret = PR_FALSE;
-+ type = 0;
-+
-+ if ( cert->trust && (cert->trust->sslFlags|cert->trust->emailFlags|
-+ cert->trust->objectSigningFlags)) {
-+ trust = cert->trust;
-+ if ( ( ( trust->sslFlags & CERTDB_VALID_CA ) == CERTDB_VALID_CA ) ||
-+ ( ( trust->sslFlags & CERTDB_TRUSTED_CA ) == CERTDB_TRUSTED_CA ) ) {
-+ ret = PR_TRUE;
-+ type |= NS_CERT_TYPE_SSL_CA;
-+ }
-+
-+ if ( ( ( trust->emailFlags & CERTDB_VALID_CA ) == CERTDB_VALID_CA ) ||
-+ ( ( trust->emailFlags & CERTDB_TRUSTED_CA ) == CERTDB_TRUSTED_CA ) ) {
-+ ret = PR_TRUE;
-+ type |= NS_CERT_TYPE_EMAIL_CA;
-+ }
-+
-+ if ( ( ( trust->objectSigningFlags & CERTDB_VALID_CA )
-+ == CERTDB_VALID_CA ) ||
-+ ( ( trust->objectSigningFlags & CERTDB_TRUSTED_CA )
-+ == CERTDB_TRUSTED_CA ) ) {
-+ ret = PR_TRUE;
-+ type |= NS_CERT_TYPE_OBJECT_SIGNING_CA;
-+ }
-+ } else {
-+ if ( cert->nsCertType &
-+ ( NS_CERT_TYPE_SSL_CA | NS_CERT_TYPE_EMAIL_CA |
-+ NS_CERT_TYPE_OBJECT_SIGNING_CA ) ) {
-+ ret = PR_TRUE;
-+ type = (cert->nsCertType & NS_CERT_TYPE_CA);
-+ } else {
-+ CERTBasicConstraints constraints;
-+ rv = CERT_FindBasicConstraintExten(cert, &constraints);
-+ if ( rv == SECSuccess ) {
-+ if ( constraints.isCA ) {
-+ ret = PR_TRUE;
-+ type = (NS_CERT_TYPE_SSL_CA | NS_CERT_TYPE_EMAIL_CA);
-+ }
-+ }
-+ }
-+
-+ /* finally check if it's a FORTEZZA V1 CA */
-+ if (ret == PR_FALSE) {
-+ if (fortezzaIsCA(cert)) {
-+ ret = PR_TRUE;
-+ type = (NS_CERT_TYPE_SSL_CA | NS_CERT_TYPE_EMAIL_CA);
-+ }
-+ }
-+ }
-+
-+ /* the isRoot flag trumps all */
-+ if (cert->isRoot) {
-+ ret = PR_TRUE;
-+ /* set only these by default, same as above */
-+ type = (NS_CERT_TYPE_SSL_CA | NS_CERT_TYPE_EMAIL_CA);
-+ }
-+
-+ if ( rettype != NULL ) {
-+ *rettype = type;
-+ }
-+
-+ return(ret);
-+}
-+
-+PRBool
-+CERT_IsCADERCert(SECItem *derCert, unsigned int *type) {
-+ CERTCertificate *cert;
-+ PRBool isCA;
-+
-+ /* This is okay -- only looks at extensions */
-+ cert = CERT_DecodeDERCertificate(derCert, PR_FALSE, NULL);
-+ if (cert == NULL) return PR_FALSE;
-+
-+ isCA = CERT_IsCACert(cert,type);
-+ CERT_DestroyCertificate (cert);
-+ return isCA;
-+}
-+
-+PRBool
-+CERT_IsRootDERCert(SECItem *derCert)
-+{
-+ CERTCertificate *cert;
-+ PRBool isRoot;
-+
-+ /* This is okay -- only looks at extensions */
-+ cert = CERT_DecodeDERCertificate(derCert, PR_FALSE, NULL);
-+ if (cert == NULL) return PR_FALSE;
-+
-+ isRoot = cert->isRoot;
-+ CERT_DestroyCertificate (cert);
-+ return isRoot;
-+}
-+
-+
-+/*
-+ * is certa newer than certb? If one is expired, pick the other one.
-+ */
-+PRBool
-+CERT_IsNewer(CERTCertificate *certa, CERTCertificate *certb)
-+{
-+ PRTime notBeforeA, notAfterA, notBeforeB, notAfterB, now;
-+ SECStatus rv;
-+ PRBool newerbefore, newerafter;
-+
-+ rv = CERT_GetCertTimes(certa, &notBeforeA, &notAfterA);
-+ if ( rv != SECSuccess ) {
-+ return(PR_FALSE);
-+ }
-+
-+ rv = CERT_GetCertTimes(certb, &notBeforeB, &notAfterB);
-+ if ( rv != SECSuccess ) {
-+ return(PR_TRUE);
-+ }
-+
-+ newerbefore = PR_FALSE;
-+ if ( LL_CMP(notBeforeA, >, notBeforeB) ) {
-+ newerbefore = PR_TRUE;
-+ }
-+
-+ newerafter = PR_FALSE;
-+ if ( LL_CMP(notAfterA, >, notAfterB) ) {
-+ newerafter = PR_TRUE;
-+ }
-+
-+ if ( newerbefore && newerafter ) {
-+ return(PR_TRUE);
-+ }
-+
-+ if ( ( !newerbefore ) && ( !newerafter ) ) {
-+ return(PR_FALSE);
-+ }
-+
-+ /* get current time */
-+ now = PR_Now();
-+
-+ if ( newerbefore ) {
-+ /* cert A was issued after cert B, but expires sooner */
-+ /* if A is expired, then pick B */
-+ if ( LL_CMP(notAfterA, <, now ) ) {
-+ return(PR_FALSE);
-+ }
-+ return(PR_TRUE);
-+ } else {
-+ /* cert B was issued after cert A, but expires sooner */
-+ /* if B is expired, then pick A */
-+ if ( LL_CMP(notAfterB, <, now ) ) {
-+ return(PR_TRUE);
-+ }
-+ return(PR_FALSE);
-+ }
-+}
-+
-+void
-+CERT_DestroyCertArray(CERTCertificate **certs, unsigned int ncerts)
-+{
-+ unsigned int i;
-+
-+ if ( certs ) {
-+ for ( i = 0; i < ncerts; i++ ) {
-+ if ( certs[i] ) {
-+ CERT_DestroyCertificate(certs[i]);
-+ }
-+ }
-+
-+ PORT_Free(certs);
-+ }
-+
-+ return;
-+}
-+
-+char *
-+CERT_FixupEmailAddr(char *emailAddr)
-+{
-+ char *retaddr;
-+ char *str;
-+
-+ if ( emailAddr == NULL ) {
-+ return(NULL);
-+ }
-+
-+ /* copy the string */
-+ str = retaddr = PORT_Strdup(emailAddr);
-+ if ( str == NULL ) {
-+ return(NULL);
-+ }
-+
-+ /* make it lower case */
-+ while ( *str ) {
-+ *str = tolower( *str );
-+ str++;
-+ }
-+
-+ return(retaddr);
-+}
-+
-+/*
-+ * NOTE - don't allow encode of govt-approved or invisible bits
-+ */
-+SECStatus
-+CERT_DecodeTrustString(CERTCertTrust *trust, char *trusts)
-+{
-+ unsigned int i;
-+ unsigned int *pflags;
-+
-+ trust->sslFlags = 0;
-+ trust->emailFlags = 0;
-+ trust->objectSigningFlags = 0;
-+
-+ pflags = &trust->sslFlags;
-+
-+ for (i=0; i < PORT_Strlen(trusts); i++) {
-+ switch (trusts[i]) {
-+ case 'p':
-+ *pflags = *pflags | CERTDB_VALID_PEER;
-+ break;
-+
-+ case 'P':
-+ *pflags = *pflags | CERTDB_TRUSTED | CERTDB_VALID_PEER;
-+ break;
-+
-+ case 'w':
-+ *pflags = *pflags | CERTDB_SEND_WARN;
-+ break;
-+
-+ case 'c':
-+ *pflags = *pflags | CERTDB_VALID_CA;
-+ break;
-+
-+ case 'T':
-+ *pflags = *pflags | CERTDB_TRUSTED_CLIENT_CA | CERTDB_VALID_CA;
-+ break;
-+
-+ case 'C' :
-+ *pflags = *pflags | CERTDB_TRUSTED_CA | CERTDB_VALID_CA;
-+ break;
-+
-+ case 'u':
-+ *pflags = *pflags | CERTDB_USER;
-+ break;
-+
-+#ifdef DEBUG_NSSTEAM_ONLY
-+ case 'i':
-+ *pflags = *pflags | CERTDB_INVISIBLE_CA;
-+ break;
-+ case 'g':
-+ *pflags = *pflags | CERTDB_GOVT_APPROVED_CA;
-+ break;
-+#endif /* DEBUG_NSSTEAM_ONLY */
-+
-+ case ',':
-+ if ( pflags == &trust->sslFlags ) {
-+ pflags = &trust->emailFlags;
-+ } else {
-+ pflags = &trust->objectSigningFlags;
-+ }
-+ break;
-+ default:
-+ return SECFailure;
-+ }
-+ }
-+
-+ return SECSuccess;
-+}
-+
-+static void
-+EncodeFlags(char *trusts, unsigned int flags)
-+{
-+ if (flags & CERTDB_VALID_CA)
-+ if (!(flags & CERTDB_TRUSTED_CA) &&
-+ !(flags & CERTDB_TRUSTED_CLIENT_CA))
-+ PORT_Strcat(trusts, "c");
-+ if (flags & CERTDB_VALID_PEER)
-+ if (!(flags & CERTDB_TRUSTED))
-+ PORT_Strcat(trusts, "p");
-+ if (flags & CERTDB_TRUSTED_CA)
-+ PORT_Strcat(trusts, "C");
-+ if (flags & CERTDB_TRUSTED_CLIENT_CA)
-+ PORT_Strcat(trusts, "T");
-+ if (flags & CERTDB_TRUSTED)
-+ PORT_Strcat(trusts, "P");
-+ if (flags & CERTDB_USER)
-+ PORT_Strcat(trusts, "u");
-+ if (flags & CERTDB_SEND_WARN)
-+ PORT_Strcat(trusts, "w");
-+ if (flags & CERTDB_INVISIBLE_CA)
-+ PORT_Strcat(trusts, "I");
-+ if (flags & CERTDB_GOVT_APPROVED_CA)
-+ PORT_Strcat(trusts, "G");
-+ return;
-+}
-+
-+char *
-+CERT_EncodeTrustString(CERTCertTrust *trust)
-+{
-+ char tmpTrustSSL[32];
-+ char tmpTrustEmail[32];
-+ char tmpTrustSigning[32];
-+ char *retstr = NULL;
-+
-+ if ( trust ) {
-+ tmpTrustSSL[0] = '\0';
-+ tmpTrustEmail[0] = '\0';
-+ tmpTrustSigning[0] = '\0';
-+
-+ EncodeFlags(tmpTrustSSL, trust->sslFlags);
-+ EncodeFlags(tmpTrustEmail, trust->emailFlags);
-+ EncodeFlags(tmpTrustSigning, trust->objectSigningFlags);
-+
-+ retstr = PR_smprintf("%s,%s,%s", tmpTrustSSL, tmpTrustEmail,
-+ tmpTrustSigning);
-+ }
-+
-+ return(retstr);
-+}
-+
-+/* in 3.4, this will only set trust */
-+SECStatus
-+CERT_SaveImportedCert(CERTCertificate *cert, SECCertUsage usage,
-+ PRBool caOnly, char *nickname)
-+{
-+ SECStatus rv;
-+ PRBool saveit;
-+ CERTCertTrust trust;
-+ PRBool isCA;
-+ unsigned int certtype;
-+
-+ isCA = CERT_IsCACert(cert, NULL);
-+ if ( caOnly && ( !isCA ) ) {
-+ return(SECSuccess);
-+ }
-+ /* In NSS 3.4, certs are given zero trust upon import. However, this
-+ * function needs to set up default CA trust (CERTDB_VALID_CA), or
-+ * PKCS#12 imported certs will not show up correctly. In the case of a
-+ * CA cert with zero trust, continue with this function. But if the cert
-+ * does already have some trust bits, exit and do not change them.
-+ */
-+ if (isCA && cert->trust &&
-+ (cert->trust->sslFlags |
-+ cert->trust->emailFlags |
-+ cert->trust->objectSigningFlags)) {
-+ return(SECSuccess);
-+ }
-+
-+ saveit = PR_TRUE;
-+
-+ PORT_Memset((void *)&trust, 0, sizeof(trust));
-+
-+ certtype = cert->nsCertType;
-+
-+ /* if no CA bits in cert type, then set all CA bits */
-+ if ( isCA && ( ! ( certtype & NS_CERT_TYPE_CA ) ) ) {
-+ certtype |= NS_CERT_TYPE_CA;
-+ }
-+
-+ /* if no app bits in cert type, then set all app bits */
-+ if ( ( !isCA ) && ( ! ( certtype & NS_CERT_TYPE_APP ) ) ) {
-+ certtype |= NS_CERT_TYPE_APP;
-+ }
-+
-+ switch ( usage ) {
-+ case certUsageEmailSigner:
-+ case certUsageEmailRecipient:
-+ if ( isCA ) {
-+ if ( certtype & NS_CERT_TYPE_EMAIL_CA ) {
-+ trust.emailFlags = CERTDB_VALID_CA;
-+ }
-+ } else {
-+ if ( !cert->emailAddr || !cert->emailAddr[0] ) {
-+ saveit = PR_FALSE;
-+ }
-+
-+ if ( certtype & NS_CERT_TYPE_EMAIL ) {
-+ trust.emailFlags = CERTDB_VALID_PEER;
-+ if ( ! ( cert->rawKeyUsage & KU_KEY_ENCIPHERMENT ) ) {
-+ /* don't save it if KeyEncipherment is not allowed */
-+ saveit = PR_FALSE;
-+ }
-+ }
-+ }
-+ break;
-+ case certUsageUserCertImport:
-+ if ( isCA ) {
-+ if ( certtype & NS_CERT_TYPE_SSL_CA ) {
-+ trust.sslFlags = CERTDB_VALID_CA;
-+ }
-+
-+ if ( certtype & NS_CERT_TYPE_EMAIL_CA ) {
-+ trust.emailFlags = CERTDB_VALID_CA;
-+ }
-+
-+ if ( certtype & NS_CERT_TYPE_OBJECT_SIGNING_CA ) {
-+ trust.objectSigningFlags = CERTDB_VALID_CA;
-+ }
-+
-+ } else {
-+ if ( certtype & NS_CERT_TYPE_SSL_CLIENT ) {
-+ trust.sslFlags = CERTDB_VALID_PEER;
-+ }
-+
-+ if ( certtype & NS_CERT_TYPE_EMAIL ) {
-+ trust.emailFlags = CERTDB_VALID_PEER;
-+ }
-+
-+ if ( certtype & NS_CERT_TYPE_OBJECT_SIGNING ) {
-+ trust.objectSigningFlags = CERTDB_VALID_PEER;
-+ }
-+ }
-+ break;
-+ case certUsageAnyCA:
-+ trust.sslFlags = CERTDB_VALID_CA;
-+ break;
-+ case certUsageSSLCA:
-+ trust.sslFlags = CERTDB_VALID_CA |
-+ CERTDB_TRUSTED_CA | CERTDB_TRUSTED_CLIENT_CA;
-+ break;
-+ default: /* XXX added to quiet warnings; no other cases needed? */
-+ break;
-+ }
-+
-+ if ( saveit ) {
-+ rv = CERT_ChangeCertTrust(cert->dbhandle, cert, &trust);
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+ }
-+
-+ rv = SECSuccess;
-+ goto done;
-+
-+loser:
-+ rv = SECFailure;
-+done:
-+
-+ return(rv);
-+}
-+
-+SECStatus
-+CERT_ImportCerts(CERTCertDBHandle *certdb, SECCertUsage usage,
-+ unsigned int ncerts, SECItem **derCerts,
-+ CERTCertificate ***retCerts, PRBool keepCerts,
-+ PRBool caOnly, char *nickname)
-+{
-+ unsigned int i;
-+ CERTCertificate **certs = NULL;
-+ SECStatus rv;
-+ unsigned int fcerts = 0;
-+
-+ if ( ncerts ) {
-+ certs = PORT_ZNewArray(CERTCertificate*, ncerts);
-+ if ( certs == NULL ) {
-+ return(SECFailure);
-+ }
-+
-+ /* decode all of the certs into the temporary DB */
-+ for ( i = 0, fcerts= 0; i < ncerts; i++) {
-+ certs[fcerts] = CERT_NewTempCertificate(certdb,
-+ derCerts[i],
-+ NULL,
-+ PR_FALSE,
-+ PR_TRUE);
-+ if (certs[fcerts]) fcerts++;
-+ }
-+
-+ if ( keepCerts ) {
-+ for ( i = 0; i < fcerts; i++ ) {
-+ char* canickname = NULL;
-+ PRBool freeNickname = PR_FALSE;
-+
-+ SECKEY_UpdateCertPQG(certs[i]);
-+
-+ if ( CERT_IsCACert(certs[i], NULL) ) {
-+ canickname = CERT_MakeCANickname(certs[i]);
-+ if ( canickname != NULL ) {
-+ freeNickname = PR_TRUE;
-+ }
-+ }
-+
-+ if(CERT_IsCACert(certs[i], NULL) && (fcerts > 1)) {
-+ /* if we are importing only a single cert and specifying
-+ * a nickname, we want to use that nickname if it a CA,
-+ * otherwise if there are more than one cert, we don't
-+ * know which cert it belongs to. But we still may try
-+ * the individual canickname from the cert itself.
-+ */
-+ rv = CERT_AddTempCertToPerm(certs[i], canickname, NULL);
-+ } else {
-+ rv = CERT_AddTempCertToPerm(certs[i],
-+ nickname?nickname:canickname, NULL);
-+ }
-+ if (rv == SECSuccess) {
-+ CERT_SaveImportedCert(certs[i], usage, caOnly, NULL);
-+ }
-+
-+ if (PR_TRUE == freeNickname) {
-+ PORT_Free(canickname);
-+ }
-+ /* don't care if it fails - keep going */
-+ }
-+ }
-+ }
-+
-+ if ( retCerts ) {
-+ *retCerts = certs;
-+ } else {
-+ if (certs) {
-+ CERT_DestroyCertArray(certs, fcerts);
-+ }
-+ }
-+
-+ return (fcerts ? SECSuccess : SECFailure);
-+}
-+
-+/*
-+ * a real list of certificates - need to convert CERTCertificateList
-+ * stuff and ASN 1 encoder/decoder over to using this...
-+ */
-+CERTCertList *
-+CERT_NewCertList(void)
-+{
-+ PRArenaPool *arena = NULL;
-+ CERTCertList *ret = NULL;
-+
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ if ( arena == NULL ) {
-+ goto loser;
-+ }
-+
-+ ret = (CERTCertList *)PORT_ArenaZAlloc(arena, sizeof(CERTCertList));
-+ if ( ret == NULL ) {
-+ goto loser;
-+ }
-+
-+ ret->arena = arena;
-+
-+ PR_INIT_CLIST(&ret->list);
-+
-+ return(ret);
-+
-+loser:
-+ if ( arena != NULL ) {
-+ PORT_FreeArena(arena, PR_FALSE);
-+ }
-+
-+ return(NULL);
-+}
-+
-+void
-+CERT_DestroyCertList(CERTCertList *certs)
-+{
-+ PRCList *node;
-+
-+ while( !PR_CLIST_IS_EMPTY(&certs->list) ) {
-+ node = PR_LIST_HEAD(&certs->list);
-+ CERT_DestroyCertificate(((CERTCertListNode *)node)->cert);
-+ PR_REMOVE_LINK(node);
-+ }
-+
-+ PORT_FreeArena(certs->arena, PR_FALSE);
-+
-+ return;
-+}
-+
-+void
-+CERT_RemoveCertListNode(CERTCertListNode *node)
-+{
-+ CERT_DestroyCertificate(node->cert);
-+ PR_REMOVE_LINK(&node->links);
-+ return;
-+}
-+
-+
-+SECStatus
-+CERT_AddCertToListTailWithData(CERTCertList *certs,
-+ CERTCertificate *cert, void *appData)
-+{
-+ CERTCertListNode *node;
-+
-+ node = (CERTCertListNode *)PORT_ArenaZAlloc(certs->arena,
-+ sizeof(CERTCertListNode));
-+ if ( node == NULL ) {
-+ goto loser;
-+ }
-+
-+ PR_INSERT_BEFORE(&node->links, &certs->list);
-+ /* certs->count++; */
-+ node->cert = cert;
-+ node->appData = appData;
-+ return(SECSuccess);
-+
-+loser:
-+ return(SECFailure);
-+}
-+
-+SECStatus
-+CERT_AddCertToListTail(CERTCertList *certs, CERTCertificate *cert)
-+{
-+ return CERT_AddCertToListTailWithData(certs, cert, NULL);
-+}
-+
-+SECStatus
-+CERT_AddCertToListHeadWithData(CERTCertList *certs,
-+ CERTCertificate *cert, void *appData)
-+{
-+ CERTCertListNode *node;
-+ CERTCertListNode *head;
-+
-+ head = CERT_LIST_HEAD(certs);
-+
-+ if (head == NULL) return CERT_AddCertToListTail(certs,cert);
-+
-+ node = (CERTCertListNode *)PORT_ArenaZAlloc(certs->arena,
-+ sizeof(CERTCertListNode));
-+ if ( node == NULL ) {
-+ goto loser;
-+ }
-+
-+ PR_INSERT_BEFORE(&node->links, &head->links);
-+ /* certs->count++; */
-+ node->cert = cert;
-+ node->appData = appData;
-+ return(SECSuccess);
-+
-+loser:
-+ return(SECFailure);
-+}
-+
-+SECStatus
-+CERT_AddCertToListHead(CERTCertList *certs, CERTCertificate *cert)
-+{
-+ return CERT_AddCertToListHeadWithData(certs, cert, NULL);
-+}
-+
-+/*
-+ * Sort callback function to determine if cert a is newer than cert b.
-+ * Not valid certs are considered older than valid certs.
-+ */
-+PRBool
-+CERT_SortCBValidity(CERTCertificate *certa,
-+ CERTCertificate *certb,
-+ void *arg)
-+{
-+ PRTime sorttime;
-+ PRTime notBeforeA, notAfterA, notBeforeB, notAfterB;
-+ SECStatus rv;
-+ PRBool newerbefore, newerafter;
-+ PRBool aNotValid = PR_FALSE, bNotValid = PR_FALSE;
-+
-+ sorttime = *(PRTime *)arg;
-+
-+ rv = CERT_GetCertTimes(certa, &notBeforeA, &notAfterA);
-+ if ( rv != SECSuccess ) {
-+ return(PR_FALSE);
-+ }
-+
-+ rv = CERT_GetCertTimes(certb, &notBeforeB, &notAfterB);
-+ if ( rv != SECSuccess ) {
-+ return(PR_TRUE);
-+ }
-+ newerbefore = PR_FALSE;
-+ if ( LL_CMP(notBeforeA, >, notBeforeB) ) {
-+ newerbefore = PR_TRUE;
-+ }
-+ newerafter = PR_FALSE;
-+ if ( LL_CMP(notAfterA, >, notAfterB) ) {
-+ newerafter = PR_TRUE;
-+ }
-+
-+ /* check if A is valid at sorttime */
-+ if ( CERT_CheckCertValidTimes(certa, sorttime, PR_FALSE)
-+ != secCertTimeValid ) {
-+ aNotValid = PR_TRUE;
-+ }
-+
-+ /* check if B is valid at sorttime */
-+ if ( CERT_CheckCertValidTimes(certb, sorttime, PR_FALSE)
-+ != secCertTimeValid ) {
-+ bNotValid = PR_TRUE;
-+ }
-+
-+ /* a is valid, b is not */
-+ if ( bNotValid && ( ! aNotValid ) ) {
-+ return(PR_TRUE);
-+ }
-+
-+ /* b is valid, a is not */
-+ if ( aNotValid && ( ! bNotValid ) ) {
-+ return(PR_FALSE);
-+ }
-+
-+ /* a and b are either valid or not valid */
-+ if ( newerbefore && newerafter ) {
-+ return(PR_TRUE);
-+ }
-+
-+ if ( ( !newerbefore ) && ( !newerafter ) ) {
-+ return(PR_FALSE);
-+ }
-+
-+ if ( newerbefore ) {
-+ /* cert A was issued after cert B, but expires sooner */
-+ return(PR_TRUE);
-+ } else {
-+ /* cert B was issued after cert A, but expires sooner */
-+ return(PR_FALSE);
-+ }
-+}
-+
-+
-+SECStatus
-+CERT_AddCertToListSorted(CERTCertList *certs,
-+ CERTCertificate *cert,
-+ CERTSortCallback f,
-+ void *arg)
-+{
-+ CERTCertListNode *node;
-+ CERTCertListNode *head;
-+ PRBool ret;
-+
-+ node = (CERTCertListNode *)PORT_ArenaZAlloc(certs->arena,
-+ sizeof(CERTCertListNode));
-+ if ( node == NULL ) {
-+ goto loser;
-+ }
-+
-+ head = CERT_LIST_HEAD(certs);
-+
-+ while ( !CERT_LIST_END(head, certs) ) {
-+
-+ /* if cert is already in the list, then don't add it again */
-+ if ( cert == head->cert ) {
-+ /*XXX*/
-+ /* don't keep a reference */
-+ CERT_DestroyCertificate(cert);
-+ goto done;
-+ }
-+
-+ ret = (* f)(cert, head->cert, arg);
-+ /* if sort function succeeds, then insert before current node */
-+ if ( ret ) {
-+ PR_INSERT_BEFORE(&node->links, &head->links);
-+ goto done;
-+ }
-+
-+ head = CERT_LIST_NEXT(head);
-+ }
-+ /* if we get to the end, then just insert it at the tail */
-+ PR_INSERT_BEFORE(&node->links, &certs->list);
-+
-+done:
-+ /* certs->count++; */
-+ node->cert = cert;
-+ return(SECSuccess);
-+
-+loser:
-+ return(SECFailure);
-+}
-+
-+/* This routine is here because pcertdb.c still has a call to it.
-+ * The SMIME profile code in pcertdb.c should be split into high (find
-+ * the email cert) and low (store the profile) code. At that point, we
-+ * can move this to certhigh.c where it belongs.
-+ *
-+ * remove certs from a list that don't have keyUsage and certType
-+ * that match the given usage.
-+ */
-+SECStatus
-+CERT_FilterCertListByUsage(CERTCertList *certList, SECCertUsage usage,
-+ PRBool ca)
-+{
-+ unsigned int requiredKeyUsage;
-+ unsigned int requiredCertType;
-+ CERTCertListNode *node, *savenode;
-+ SECStatus rv;
-+
-+ if (certList == NULL) goto loser;
-+
-+ rv = CERT_KeyUsageAndTypeForCertUsage(usage, ca, &requiredKeyUsage,
-+ &requiredCertType);
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+
-+ node = CERT_LIST_HEAD(certList);
-+
-+ while ( !CERT_LIST_END(node, certList) ) {
-+
-+ PRBool bad = (PRBool)(!node->cert);
-+
-+ /* bad key usage ? */
-+ if ( !bad &&
-+ CERT_CheckKeyUsage(node->cert, requiredKeyUsage) != SECSuccess ) {
-+ bad = PR_TRUE;
-+ }
-+ /* bad cert type ? */
-+ if ( !bad ) {
-+ unsigned int certType = 0;
-+ if ( ca ) {
-+ /* This function returns a more comprehensive cert type that
-+ * takes trust flags into consideration. Should probably
-+ * fix the cert decoding code to do this.
-+ */
-+ (void)CERT_IsCACert(node->cert, &certType);
-+ } else {
-+ certType = node->cert->nsCertType;
-+ }
-+ if ( !( certType & requiredCertType ) ) {
-+ bad = PR_TRUE;
-+ }
-+ }
-+
-+ if ( bad ) {
-+ /* remove the node if it is bad */
-+ savenode = CERT_LIST_NEXT(node);
-+ CERT_RemoveCertListNode(node);
-+ node = savenode;
-+ } else {
-+ node = CERT_LIST_NEXT(node);
-+ }
-+ }
-+ return(SECSuccess);
-+
-+loser:
-+ return(SECFailure);
-+}
-+
-+PRBool CERT_IsUserCert(CERTCertificate* cert)
-+{
-+ if ( cert->trust &&
-+ ((cert->trust->sslFlags & CERTDB_USER ) ||
-+ (cert->trust->emailFlags & CERTDB_USER ) ||
-+ (cert->trust->objectSigningFlags & CERTDB_USER )) ) {
-+ return PR_TRUE;
-+ } else {
-+ return PR_FALSE;
-+ }
-+}
-+
-+SECStatus
-+CERT_FilterCertListForUserCerts(CERTCertList *certList)
-+{
-+ CERTCertListNode *node, *freenode;
-+ CERTCertificate *cert;
-+
-+ if (!certList) {
-+ return SECFailure;
-+ }
-+
-+ node = CERT_LIST_HEAD(certList);
-+
-+ while ( ! CERT_LIST_END(node, certList) ) {
-+ cert = node->cert;
-+ if ( PR_TRUE != CERT_IsUserCert(cert) ) {
-+ /* Not a User Cert, so remove this cert from the list */
-+ freenode = node;
-+ node = CERT_LIST_NEXT(node);
-+ CERT_RemoveCertListNode(freenode);
-+ } else {
-+ /* Is a User cert, so leave it in the list */
-+ node = CERT_LIST_NEXT(node);
-+ }
-+ }
-+
-+ return(SECSuccess);
-+}
-+
-+static PZLock *certRefCountLock = NULL;
-+
-+/*
-+ * Acquire the cert reference count lock
-+ * There is currently one global lock for all certs, but I'm putting a cert
-+ * arg here so that it will be easy to make it per-cert in the future if
-+ * that turns out to be necessary.
-+ */
-+void
-+CERT_LockCertRefCount(CERTCertificate *cert)
-+{
-+ if ( certRefCountLock == NULL ) {
-+ nss_InitLock(&certRefCountLock, nssILockRefLock);
-+ PORT_Assert(certRefCountLock != NULL);
-+ }
-+
-+ PZ_Lock(certRefCountLock);
-+ return;
-+}
-+
-+/*
-+ * Free the cert reference count lock
-+ */
-+void
-+CERT_UnlockCertRefCount(CERTCertificate *cert)
-+{
-+ PRStatus prstat;
-+
-+ PORT_Assert(certRefCountLock != NULL);
-+
-+ prstat = PZ_Unlock(certRefCountLock);
-+
-+ PORT_Assert(prstat == PR_SUCCESS);
-+
-+ return;
-+}
-+
-+static PZLock *certTrustLock = NULL;
-+
-+/*
-+ * Acquire the cert trust lock
-+ * There is currently one global lock for all certs, but I'm putting a cert
-+ * arg here so that it will be easy to make it per-cert in the future if
-+ * that turns out to be necessary.
-+ */
-+void
-+CERT_LockCertTrust(CERTCertificate *cert)
-+{
-+ if ( certTrustLock == NULL ) {
-+ nss_InitLock(&certTrustLock, nssILockCertDB);
-+ PORT_Assert(certTrustLock != NULL);
-+ }
-+
-+ PZ_Lock(certTrustLock);
-+ return;
-+}
-+
-+/*
-+ * Free the cert trust lock
-+ */
-+void
-+CERT_UnlockCertTrust(CERTCertificate *cert)
-+{
-+ PRStatus prstat;
-+
-+ PORT_Assert(certTrustLock != NULL);
-+
-+ prstat = PZ_Unlock(certTrustLock);
-+
-+ PORT_Assert(prstat == PR_SUCCESS);
-+
-+ return;
-+}
-+
-+
-+/*
-+ * Get the StatusConfig data for this handle
-+ */
-+CERTStatusConfig *
-+CERT_GetStatusConfig(CERTCertDBHandle *handle)
-+{
-+ return handle->statusConfig;
-+}
-+
-+/*
-+ * Set the StatusConfig data for this handle. There
-+ * should not be another configuration set.
-+ */
-+void
-+CERT_SetStatusConfig(CERTCertDBHandle *handle, CERTStatusConfig *statusConfig)
-+{
-+ PORT_Assert(handle->statusConfig == NULL);
-+ handle->statusConfig = statusConfig;
-+}
-+
-+/*
-+ * Code for dealing with subjKeyID to cert mappings.
-+ */
-+
-+static PLHashTable *gSubjKeyIDHash = NULL;
-+static PRLock *gSubjKeyIDLock = NULL;
-+
-+static void *cert_AllocTable(void *pool, PRSize size)
-+{
-+ return PORT_Alloc(size);
-+}
-+
-+static void cert_FreeTable(void *pool, void *item)
-+{
-+ PORT_Free(item);
-+}
-+
-+static PLHashEntry* cert_AllocEntry(void *pool, const void *key)
-+{
-+ return PORT_New(PLHashEntry);
-+}
-+
-+static void cert_FreeEntry(void *pool, PLHashEntry *he, PRUintn flag)
-+{
-+ SECITEM_FreeItem((SECItem*)(he->value), PR_TRUE);
-+ if (flag == HT_FREE_ENTRY) {
-+ SECITEM_FreeItem((SECItem*)(he->key), PR_TRUE);
-+ PORT_Free(he);
-+ }
-+}
-+
-+static PLHashAllocOps cert_AllocOps = {
-+ cert_AllocTable, cert_FreeTable, cert_AllocEntry, cert_FreeEntry
-+};
-+
-+SECStatus
-+cert_CreateSubjectKeyIDHashTable(void)
-+{
-+ gSubjKeyIDHash = PL_NewHashTable(0, SECITEM_Hash, SECITEM_HashCompare,
-+ SECITEM_HashCompare,
-+ &cert_AllocOps, NULL);
-+ if (!gSubjKeyIDHash) {
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ return SECFailure;
-+ }
-+ gSubjKeyIDLock = PR_NewLock();
-+ if (!gSubjKeyIDLock) {
-+ PL_HashTableDestroy(gSubjKeyIDHash);
-+ gSubjKeyIDHash = NULL;
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ return SECFailure;
-+ }
-+ return SECSuccess;
-+
-+}
-+
-+SECStatus
-+cert_AddSubjectKeyIDMapping(SECItem *subjKeyID, CERTCertificate *cert)
-+{
-+ SECItem *newKeyID, *oldVal, *newVal;
-+ SECStatus rv = SECFailure;
-+
-+ if (!gSubjKeyIDLock) {
-+ /* If one is created, then both are there. So only check for one. */
-+ return SECFailure;
-+ }
-+
-+ newVal = SECITEM_DupItem(&cert->derCert);
-+ if (!newVal) {
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ goto done;
-+ }
-+ newKeyID = SECITEM_DupItem(subjKeyID);
-+ if (!newKeyID) {
-+ SECITEM_FreeItem(newVal, PR_TRUE);
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ goto done;
-+ }
-+
-+ PR_Lock(gSubjKeyIDLock);
-+ /* The hash table implementation does not free up the memory
-+ * associated with the key of an already existing entry if we add a
-+ * duplicate, so we would wind up leaking the previously allocated
-+ * key if we don't remove before adding.
-+ */
-+ oldVal = (SECItem*)PL_HashTableLookup(gSubjKeyIDHash, subjKeyID);
-+ if (oldVal) {
-+ PL_HashTableRemove(gSubjKeyIDHash, subjKeyID);
-+ }
-+
-+ rv = (PL_HashTableAdd(gSubjKeyIDHash, newKeyID, newVal)) ? SECSuccess :
-+ SECFailure;
-+ PR_Unlock(gSubjKeyIDLock);
-+done:
-+ return rv;
-+}
-+
-+SECStatus
-+cert_RemoveSubjectKeyIDMapping(SECItem *subjKeyID)
-+{
-+ SECStatus rv;
-+ if (!gSubjKeyIDLock)
-+ return SECFailure;
-+
-+ PR_Lock(gSubjKeyIDLock);
-+ rv = (PL_HashTableRemove(gSubjKeyIDHash, subjKeyID)) ? SECSuccess :
-+ SECFailure;
-+ PR_Unlock(gSubjKeyIDLock);
-+ return rv;
-+}
-+
-+SECStatus
-+cert_DestroySubjectKeyIDHashTable(void)
-+{
-+ if (gSubjKeyIDHash) {
-+ PR_Lock(gSubjKeyIDLock);
-+ PL_HashTableDestroy(gSubjKeyIDHash);
-+ gSubjKeyIDHash = NULL;
-+ PR_Unlock(gSubjKeyIDLock);
-+ PR_DestroyLock(gSubjKeyIDLock);
-+ gSubjKeyIDLock = NULL;
-+ }
-+ return SECSuccess;
-+}
-+
-+SECItem*
-+cert_FindDERCertBySubjectKeyID(SECItem *subjKeyID)
-+{
-+ SECItem *val;
-+
-+ if (!gSubjKeyIDLock)
-+ return NULL;
-+
-+ PR_Lock(gSubjKeyIDLock);
-+ val = (SECItem*)PL_HashTableLookup(gSubjKeyIDHash, subjKeyID);
-+ if (val) {
-+ val = SECITEM_DupItem(val);
-+ }
-+ PR_Unlock(gSubjKeyIDLock);
-+ return val;
-+}
-+
-+CERTCertificate*
-+CERT_FindCertBySubjectKeyID(CERTCertDBHandle *handle, SECItem *subjKeyID)
-+{
-+ CERTCertificate *cert = NULL;
-+ SECItem *derCert;
-+
-+ derCert = cert_FindDERCertBySubjectKeyID(subjKeyID);
-+ if (derCert) {
-+ cert = CERT_FindCertByDERCert(handle, derCert);
-+ SECITEM_FreeItem(derCert, PR_TRUE);
-+ }
-+ return cert;
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/certdecode.c 2004-12-13 13:06:46.789384024 +0100
-@@ -0,0 +1,118 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#ifndef PKIT_H
-+#include "pkit.h"
-+#endif /* PKIT_H */
-+
-+#ifndef PKIM_H
-+#include "pkim.h"
-+#endif /* PKIM_H */
-+
-+#ifdef NSS_3_4_CODE
-+/* This is defined in pki3hack.c */
-+NSS_EXTERN nssDecodedCert *
-+nssDecodedPKIXCertificate_Create (
-+ NSSArena *arenaOpt,
-+ NSSDER *encoding
-+);
-+
-+NSS_IMPLEMENT PRStatus
-+nssDecodedPKIXCertificate_Destroy (
-+ nssDecodedCert *dc
-+);
-+#else /* NSS_4_0_CODE */
-+/* This is where 4.0 PKIX code will handle the decoding */
-+static nssDecodedCert *
-+nssDecodedPKIXCertificate_Create (
-+ NSSArena *arenaOpt,
-+ NSSDER *encoding
-+)
-+{
-+ return (nssDecodedCert *)NULL;
-+}
-+
-+static PRStatus
-+nssDecodedPKIXCertificate_Destroy (
-+ nssDecodedCert *dc
-+)
-+{
-+ return PR_FAILURE;
-+}
-+#endif /* not NSS_3_4_CODE */
-+
-+NSS_IMPLEMENT nssDecodedCert *
-+nssDecodedCert_Create (
-+ NSSArena *arenaOpt,
-+ NSSDER *encoding,
-+ NSSCertificateType type
-+)
-+{
-+ nssDecodedCert *rvDC = NULL;
-+ switch(type) {
-+ case NSSCertificateType_PKIX:
-+ rvDC = nssDecodedPKIXCertificate_Create(arenaOpt, encoding);
-+ break;
-+ default:
-+#if 0
-+ nss_SetError(NSS_ERROR_INVALID_ARGUMENT);
-+#endif
-+ return (nssDecodedCert *)NULL;
-+ }
-+ return rvDC;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssDecodedCert_Destroy (
-+ nssDecodedCert *dc
-+)
-+{
-+ if (!dc) {
-+ return PR_FAILURE;
-+ }
-+ switch(dc->type) {
-+ case NSSCertificateType_PKIX:
-+ return nssDecodedPKIXCertificate_Destroy(dc);
-+ default:
-+#if 0
-+ nss_SetError(NSS_ERROR_INVALID_ARGUMENT);
-+#endif
-+ break;
-+ }
-+ return PR_FAILURE;
-+}
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/certi.h 2004-12-13 15:50:15.922169176 +0100
-@@ -0,0 +1,216 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+/*
-+ * certi.h - private data structures for the certificate library
-+ *
-+ * $Id$
-+ */
-+#ifndef _CERTI_H_
-+#define _CERTI_H_
-+
-+#include "certt.h"
-+#include "nssrwlkt.h"
-+
-+#define USE_RWLOCK 1
-+
-+/* all definitions in this file are subject to change */
-+
-+typedef struct OpaqueCRLFieldsStr OpaqueCRLFields;
-+typedef struct CRLEntryCacheStr CRLEntryCache;
-+typedef struct CRLDPCacheStr CRLDPCache;
-+typedef struct CRLIssuerCacheStr CRLIssuerCache;
-+typedef struct CRLCacheStr CRLCache;
-+
-+struct OpaqueCRLFieldsStr {
-+ PRBool partial;
-+ PRBool badEntries;
-+ PRBool bad;
-+ PRBool badDER;
-+ PRBool badExtensions;
-+ PRBool deleted;
-+ PRBool heapDER;
-+ PRBool unverified;
-+};
-+
-+typedef struct PreAllocatorStr PreAllocator;
-+
-+struct PreAllocatorStr
-+{
-+ PRSize len;
-+ void* data;
-+ PRSize used;
-+ PRArenaPool* arena;
-+ PRSize extra;
-+};
-+
-+/* CRL entry cache.
-+ This is the same as an entry plus the next/prev pointers for the hash table
-+*/
-+
-+struct CRLEntryCacheStr {
-+ CERTCrlEntry entry;
-+ CRLEntryCache *prev, *next;
-+};
-+
-+#define CRL_CACHE_INVALID_CRLS 0x0001 /* this state will be set
-+ if we have CRL objects with an invalid DER or signature. Can be
-+ cleared if the invalid objects are deleted from the token */
-+#define CRL_CACHE_LAST_FETCH_FAILED 0x0002 /* this state will be set
-+ if the last CRL fetch encountered an error. Can be cleared if a
-+ new fetch succeeds */
-+
-+#define CRL_CACHE_OUT_OF_MEMORY 0x0004 /* this state will be set
-+ if we don't have enough memory to build the hash table of entries */
-+
-+/* CRL distribution point cache object
-+ This is a cache of CRL entries for a given distribution point of an issuer
-+ It is built from a collection of one full and 0 or more delta CRLs.
-+*/
-+
-+struct CRLDPCacheStr {
-+#ifdef USE_RWLOCK
-+ NSSRWLock* lock;
-+#else
-+ PRLock* lock;
-+#endif
-+ CERTCertificate* issuer; /* cert issuer */
-+ SECItem* subject; /* DER of issuer subject */
-+ SECItem* distributionPoint; /* DER of distribution point. This may be
-+ NULL when distribution points aren't
-+ in use (ie. the CA has a single CRL) */
-+
-+ /* hash table of entries. We use a PLHashTable and pre-allocate the
-+ required amount of memory in one shot, so that our allocator can
-+ simply pass offsets into it when hashing.
-+
-+ This won't work anymore when we support delta CRLs and iCRLs, because
-+ the size of the hash table will vary over time. At that point, the best
-+ solution will be to allocate large CRLEntry structures by modifying
-+ the DER decoding template. The extra space would be for next/prev
-+ pointers. This would allow entries from different CRLs to be mixed in
-+ the same hash table.
-+ */
-+ PLHashTable* entries;
-+ PreAllocator* prebuffer; /* big pre-allocated buffer mentioned above */
-+
-+ /* array of CRLs matching this distribution point */
-+ PRUint32 ncrls; /* total number of CRLs in crls */
-+ CERTSignedCrl** crls; /* array of all matching DER CRLs
-+ from all tokens */
-+ /* XCRL With iCRLs and multiple DPs, the CRL can be shared accross several
-+ issuers. In the future, we'll need to globally recycle the CRL in a
-+ separate list in order to avoid extra lookups, decodes, and copies */
-+
-+ /* pointers to good decoded CRLs used to build the cache */
-+ CERTSignedCrl* full; /* full CRL used for the cache */
-+#if 0
-+ /* for future use */
-+ PRInt32 numdeltas; /* number of delta CRLs used for the cache */
-+ CERTSignedCrl** deltas; /* delta CRLs used for the cache */
-+#endif
-+ /* invalidity bitflag */
-+ PRUint16 invalid; /* this state will be set if either
-+ CRL_CACHE_INVALID_CRLS or CRL_CACHE_LAST_FETCH_FAILED is set.
-+ In those cases, all certs are considered revoked as a
-+ security precaution. The invalid state can only be cleared
-+ during an update if all error states are cleared */
-+};
-+
-+/* CRL issuer cache object
-+ This object tracks all the distribution point caches for a given issuer.
-+ XCRL once we support multiple issuing distribution points, this object
-+ will be a hash table. For now, it just holds the single CRL distribution
-+ point cache structure.
-+*/
-+
-+struct CRLIssuerCacheStr {
-+ SECItem* subject; /* DER of issuer subject */
-+ CRLDPCache dp; /* DER of distribution point */
-+ CRLDPCache* dpp;
-+#if 0
-+ /* XCRL for future use.
-+ We don't need to lock at the moment because we only have one DP,
-+ which gets created at the same time as this object */
-+ NSSRWLock* lock;
-+ CRLDPCache** dps;
-+ PLHashTable* distributionpoints;
-+ CERTCertificate* issuer;
-+#endif
-+};
-+
-+/* CRL revocation cache object
-+ This object tracks all the issuer caches
-+*/
-+
-+struct CRLCacheStr {
-+ PRLock* lock;
-+ /* hash table of issuer to CRLIssuerCacheStr,
-+ indexed by issuer DER subject */
-+ PLHashTable* issuers;
-+};
-+
-+SECStatus InitCRLCache(void);
-+SECStatus ShutdownCRLCache(void);
-+
-+/* Returns a pointer to an environment-like string, a series of
-+** null-terminated strings, terminated by a zero-length string.
-+** This function is intended to be internal to NSS.
-+*/
-+extern char * cert_GetCertificateEmailAddresses(CERTCertificate *cert);
-+
-+/*
-+ * These functions are used to map subjectKeyID extension values to certs.
-+ */
-+SECStatus
-+cert_CreateSubjectKeyIDHashTable(void);
-+
-+SECStatus
-+cert_AddSubjectKeyIDMapping(SECItem *subjKeyID, CERTCertificate *cert);
-+
-+/*
-+ * Call this function to remove an entry from the mapping table.
-+ */
-+SECStatus
-+cert_RemoveSubjectKeyIDMapping(SECItem *subjKeyID);
-+
-+SECStatus
-+cert_DestroySubjectKeyIDHashTable(void);
-+
-+SECItem*
-+cert_FindDERCertBySubjectKeyID(SECItem *subjKeyID);
-+
-+/* return maximum length of AVA value based on its type OID tag. */
-+extern int cert_AVAOidTagToMaxLen(SECOidTag tag);
-+
-+#endif /* _CERTI_H_ */
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/certificate.c 2004-12-13 13:06:46.790383872 +0100
-@@ -0,0 +1,1196 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#ifndef NSSPKI_H
-+#include "nsspki.h"
-+#endif /* NSSPKI_H */
-+
-+#ifndef PKIT_H
-+#include "pkit.h"
-+#endif /* PKIT_H */
-+
-+#ifndef PKIM_H
-+#include "pkim.h"
-+#endif /* PKIM_H */
-+
-+#ifndef DEV_H
-+#include "dev.h"
-+#endif /* DEV_H */
-+
-+#include "pkistore.h"
-+
-+#ifdef NSS_3_4_CODE
-+#include "pki3hack.h"
-+#include "pk11func.h"
-+#include "hasht.h"
-+#endif
-+
-+#ifndef BASE_H
-+#include "base.h"
-+#endif /* BASE_H */
-+
-+extern const NSSError NSS_ERROR_NOT_FOUND;
-+
-+/* Creates a certificate from a base object */
-+NSS_IMPLEMENT NSSCertificate *
-+nssCertificate_Create (
-+ nssPKIObject *object
-+)
-+{
-+ PRStatus status;
-+ NSSCertificate *rvCert;
-+ /* mark? */
-+ NSSArena *arena = object->arena;
-+ PR_ASSERT(object->instances != NULL && object->numInstances > 0);
-+ rvCert = nss_ZNEW(arena, NSSCertificate);
-+ if (!rvCert) {
-+ return (NSSCertificate *)NULL;
-+ }
-+ rvCert->object = *object;
-+ /* XXX should choose instance based on some criteria */
-+ status = nssCryptokiCertificate_GetAttributes(object->instances[0],
-+ NULL, /* XXX sessionOpt */
-+ arena,
-+ &rvCert->type,
-+ &rvCert->id,
-+ &rvCert->encoding,
-+ &rvCert->issuer,
-+ &rvCert->serial,
-+ &rvCert->subject);
-+ if (status != PR_SUCCESS) {
-+ return (NSSCertificate *)NULL;
-+ }
-+ /* all certs need an encoding value */
-+ if (rvCert->encoding.data == NULL) {
-+ return (NSSCertificate *)NULL;
-+ }
-+ return rvCert;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+nssCertificate_AddRef (
-+ NSSCertificate *c
-+)
-+{
-+ if (c) {
-+ nssPKIObject_AddRef(&c->object);
-+ }
-+ return c;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssCertificate_Destroy (
-+ NSSCertificate *c
-+)
-+{
-+ if (c) {
-+ PRUint32 i;
-+ nssDecodedCert *dc = c->decoding;
-+ NSSTrustDomain *td = STAN_GetDefaultTrustDomain();
-+ NSSCryptoContext *cc = c->object.cryptoContext;
-+
-+ PR_ASSERT(c->object.refCount > 0);
-+
-+ /* --- LOCK storage --- */
-+ if (cc) {
-+ nssCertificateStore_Lock(cc->certStore);
-+ } else {
-+ nssTrustDomain_LockCertCache(td);
-+ }
-+ if (PR_AtomicDecrement(&c->object.refCount) == 0) {
-+ /* --- remove cert and UNLOCK storage --- */
-+ if (cc) {
-+ nssCertificateStore_RemoveCertLOCKED(cc->certStore, c);
-+ nssCertificateStore_Unlock(cc->certStore);
-+ } else {
-+ nssTrustDomain_RemoveCertFromCacheLOCKED(td, c);
-+ nssTrustDomain_UnlockCertCache(td);
-+ }
-+ /* free cert data */
-+ for (i=0; i<c->object.numInstances; i++) {
-+ nssCryptokiObject_Destroy(c->object.instances[i]);
-+ }
-+ PZ_DestroyLock(c->object.lock);
-+ nssArena_Destroy(c->object.arena);
-+ nssDecodedCert_Destroy(dc);
-+ } else {
-+ /* --- UNLOCK storage --- */
-+ if (cc) {
-+ nssCertificateStore_Unlock(cc->certStore);
-+ } else {
-+ nssTrustDomain_UnlockCertCache(td);
-+ }
-+ }
-+ }
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSCertificate_Destroy (
-+ NSSCertificate *c
-+)
-+{
-+ return nssCertificate_Destroy(c);
-+}
-+
-+NSS_IMPLEMENT NSSDER *
-+nssCertificate_GetEncoding (
-+ NSSCertificate *c
-+)
-+{
-+ if (c->encoding.size > 0 && c->encoding.data) {
-+ return &c->encoding;
-+ } else {
-+ return (NSSDER *)NULL;
-+ }
-+}
-+
-+NSS_IMPLEMENT NSSDER *
-+nssCertificate_GetIssuer (
-+ NSSCertificate *c
-+)
-+{
-+ if (c->issuer.size > 0 && c->issuer.data) {
-+ return &c->issuer;
-+ } else {
-+ return (NSSDER *)NULL;
-+ }
-+}
-+
-+NSS_IMPLEMENT NSSDER *
-+nssCertificate_GetSerialNumber (
-+ NSSCertificate *c
-+)
-+{
-+ if (c->serial.size > 0 && c->serial.data) {
-+ return &c->serial;
-+ } else {
-+ return (NSSDER *)NULL;
-+ }
-+}
-+
-+NSS_IMPLEMENT NSSDER *
-+nssCertificate_GetSubject (
-+ NSSCertificate *c
-+)
-+{
-+ if (c->subject.size > 0 && c->subject.data) {
-+ return &c->subject;
-+ } else {
-+ return (NSSDER *)NULL;
-+ }
-+}
-+
-+NSS_IMPLEMENT NSSUTF8 *
-+nssCertificate_GetNickname (
-+ NSSCertificate *c,
-+ NSSToken *tokenOpt
-+)
-+{
-+ return nssPKIObject_GetNicknameForToken(&c->object, tokenOpt);
-+}
-+
-+NSS_IMPLEMENT NSSASCII7 *
-+nssCertificate_GetEmailAddress (
-+ NSSCertificate *c
-+)
-+{
-+ return c->email;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSCertificate_DeleteStoredObject (
-+ NSSCertificate *c,
-+ NSSCallback *uhh
-+)
-+{
-+ return nssPKIObject_DeleteStoredObject(&c->object, uhh, PR_TRUE);
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSCertificate_Validate (
-+ NSSCertificate *c,
-+ NSSTime *timeOpt, /* NULL for "now" */
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt /* NULL for none */
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT void ** /* void *[] */
-+NSSCertificate_ValidateCompletely (
-+ NSSCertificate *c,
-+ NSSTime *timeOpt, /* NULL for "now" */
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt, /* NULL for none */
-+ void **rvOpt, /* NULL for allocate */
-+ PRUint32 rvLimit, /* zero for no limit */
-+ NSSArena *arenaOpt /* NULL for heap */
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSCertificate_ValidateAndDiscoverUsagesAndPolicies (
-+ NSSCertificate *c,
-+ NSSTime **notBeforeOutOpt,
-+ NSSTime **notAfterOutOpt,
-+ void *allowedUsages,
-+ void *disallowedUsages,
-+ void *allowedPolicies,
-+ void *disallowedPolicies,
-+ /* more args.. work on this fgmr */
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT NSSDER *
-+NSSCertificate_Encode (
-+ NSSCertificate *c,
-+ NSSDER *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ /* Item, DER, BER are all typedefs now... */
-+ return nssItem_Duplicate((NSSItem *)&c->encoding, arenaOpt, rvOpt);
-+}
-+
-+NSS_IMPLEMENT nssDecodedCert *
-+nssCertificate_GetDecoding (
-+ NSSCertificate *c
-+)
-+{
-+ /* There is a race in assigning c->decoding.
-+ ** This is a workaround. Bugzilla bug 225525.
-+ */
-+ if (!c->decoding) {
-+ nssDecodedCert * deco =
-+ nssDecodedCert_Create(NULL, &c->encoding, c->type);
-+ /* Once this race is fixed, an assertion should be put
-+ ** here to detect any regressions.
-+ PORT_Assert(!c->decoding);
-+ */
-+ if (!c->decoding) {
-+ /* we won the race. Use our copy. */
-+ c->decoding = deco;
-+ } else {
-+ /* we lost the race. discard deco. */
-+ nssDecodedCert_Destroy(deco);
-+ }
-+ }
-+ return c->decoding;
-+}
-+
-+static NSSCertificate **
-+filter_subject_certs_for_id (
-+ NSSCertificate **subjectCerts,
-+ void *id
-+)
-+{
-+ NSSCertificate **si;
-+ nssDecodedCert *dcp;
-+ int nextOpenSlot = 0;
-+ int i;
-+ nssCertIDMatch matchLevel = nssCertIDMatch_Unknown;
-+ nssCertIDMatch match;
-+
-+ /* walk the subject certs */
-+ for (si = subjectCerts; *si; si++) {
-+ dcp = nssCertificate_GetDecoding(*si);
-+ if (!dcp) {
-+ NSSCertificate_Destroy(*si);
-+ continue;
-+ }
-+ match = dcp->matchIdentifier(dcp, id);
-+ switch (match) {
-+ case nssCertIDMatch_Yes:
-+ if (matchLevel == nssCertIDMatch_Unknown) {
-+ /* we have non-definitive matches, forget them */
-+ for (i = 0; i < nextOpenSlot; i++) {
-+ NSSCertificate_Destroy(subjectCerts[i]);
-+ subjectCerts[i] = NULL;
-+ }
-+ nextOpenSlot = 0;
-+ /* only keep definitive matches from now on */
-+ matchLevel = nssCertIDMatch_Yes;
-+ }
-+ /* keep the cert */
-+ subjectCerts[nextOpenSlot++] = *si;
-+ break;
-+ case nssCertIDMatch_Unknown:
-+ if (matchLevel == nssCertIDMatch_Unknown) {
-+ /* only have non-definitive matches so far, keep it */
-+ subjectCerts[nextOpenSlot++] = *si;
-+ break;
-+ }
-+ /* else fall through, we have a definitive match already */
-+ case nssCertIDMatch_No:
-+ default:
-+ NSSCertificate_Destroy(*si);
-+ *si = NULL;
-+ }
-+ }
-+ subjectCerts[nextOpenSlot] = NULL;
-+ return subjectCerts;
-+}
-+
-+static NSSCertificate **
-+filter_certs_for_valid_issuers (
-+ NSSCertificate **certs
-+)
-+{
-+ NSSCertificate **cp;
-+ nssDecodedCert *dcp;
-+ int nextOpenSlot = 0;
-+
-+ for (cp = certs; *cp; cp++) {
-+ dcp = nssCertificate_GetDecoding(*cp);
-+ if (dcp && dcp->isValidIssuer(dcp)) {
-+ certs[nextOpenSlot++] = *cp;
-+ } else {
-+ NSSCertificate_Destroy(*cp);
-+ }
-+ }
-+ certs[nextOpenSlot] = NULL;
-+ return certs;
-+}
-+
-+static NSSCertificate *
-+find_cert_issuer (
-+ NSSCertificate *c,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt
-+)
-+{
-+ NSSArena *arena;
-+ NSSCertificate **certs = NULL;
-+ NSSCertificate **ccIssuers = NULL;
-+ NSSCertificate **tdIssuers = NULL;
-+ NSSCertificate *issuer = NULL;
-+ NSSTrustDomain *td;
-+ NSSCryptoContext *cc;
-+ cc = c->object.cryptoContext; /* NSSCertificate_GetCryptoContext(c); */
-+ td = NSSCertificate_GetTrustDomain(c);
-+#ifdef NSS_3_4_CODE
-+ if (!td) {
-+ td = STAN_GetDefaultTrustDomain();
-+ }
-+#endif
-+ arena = nssArena_Create();
-+ if (!arena) {
-+ return (NSSCertificate *)NULL;
-+ }
-+ if (cc) {
-+ ccIssuers = nssCryptoContext_FindCertificatesBySubject(cc,
-+ &c->issuer,
-+ NULL,
-+ 0,
-+ arena);
-+ }
-+ tdIssuers = nssTrustDomain_FindCertificatesBySubject(td,
-+ &c->issuer,
-+ NULL,
-+ 0,
-+ arena);
-+ certs = nssCertificateArray_Join(ccIssuers, tdIssuers);
-+ if (certs) {
-+ nssDecodedCert *dc = NULL;
-+ void *issuerID = NULL;
-+ dc = nssCertificate_GetDecoding(c);
-+ if (dc) {
-+ issuerID = dc->getIssuerIdentifier(dc);
-+ }
-+ if (issuerID) {
-+ certs = filter_subject_certs_for_id(certs, issuerID);
-+ }
-+ certs = filter_certs_for_valid_issuers(certs);
-+ issuer = nssCertificateArray_FindBestCertificate(certs,
-+ timeOpt,
-+ usage,
-+ policiesOpt);
-+ nssCertificateArray_Destroy(certs);
-+ }
-+ nssArena_Destroy(arena);
-+ return issuer;
-+}
-+
-+/* XXX review based on CERT_FindCertIssuer
-+ * this function is not using the authCertIssuer field as a fallback
-+ * if authority key id does not exist
-+ */
-+NSS_IMPLEMENT NSSCertificate **
-+nssCertificate_BuildChain (
-+ NSSCertificate *c,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt,
-+ NSSCertificate **rvOpt,
-+ PRUint32 rvLimit,
-+ NSSArena *arenaOpt,
-+ PRStatus *statusOpt
-+)
-+{
-+ NSSCertificate **rvChain;
-+#ifdef NSS_3_4_CODE
-+ NSSCertificate *cp;
-+ CERTCertificate *cCert;
-+#endif
-+ NSSUsage issuerUsage = *usage;
-+ NSSTrustDomain *td;
-+ nssPKIObjectCollection *collection;
-+
-+ td = NSSCertificate_GetTrustDomain(c);
-+#ifdef NSS_3_4_CODE
-+ if (!td) {
-+ td = STAN_GetDefaultTrustDomain();
-+ }
-+ /* bump the usage up to CA level */
-+ issuerUsage.nss3lookingForCA = PR_TRUE;
-+#endif
-+ if (statusOpt) *statusOpt = PR_SUCCESS;
-+ collection = nssCertificateCollection_Create(td, NULL);
-+ if (!collection) {
-+ if (statusOpt) *statusOpt = PR_FAILURE;
-+ return (NSSCertificate **)NULL;
-+ }
-+ nssPKIObjectCollection_AddObject(collection, (nssPKIObject *)c);
-+ if (rvLimit == 1) {
-+ goto finish;
-+ }
-+ /* XXX This breaks code for which NSS_3_4_CODE is not defined (pure
-+ * 4.0 builds). That won't affect the tip. But be careful
-+ * when merging 4.0!!!
-+ */
-+ while (c != (NSSCertificate *)NULL) {
-+#ifdef NSS_3_4_CODE
-+ cCert = STAN_GetCERTCertificate(c);
-+ if (cCert->isRoot) {
-+ /* not including the issuer of the self-signed cert, which is,
-+ * of course, itself
-+ */
-+ break;
-+ }
-+ cp = c;
-+#endif
-+ c = find_cert_issuer(c, timeOpt, &issuerUsage, policiesOpt);
-+ if (c) {
-+ nssPKIObjectCollection_AddObject(collection, (nssPKIObject *)c);
-+ nssCertificate_Destroy(c); /* collection has it */
-+ if (rvLimit > 0 &&
-+ nssPKIObjectCollection_Count(collection) == rvLimit)
-+ {
-+ break;
-+ }
-+ } else {
-+ nss_SetError(NSS_ERROR_CERTIFICATE_ISSUER_NOT_FOUND);
-+ if (statusOpt) *statusOpt = PR_FAILURE;
-+ break;
-+ }
-+ }
-+finish:
-+ rvChain = nssPKIObjectCollection_GetCertificates(collection,
-+ rvOpt,
-+ rvLimit,
-+ arenaOpt);
-+ nssPKIObjectCollection_Destroy(collection);
-+ return rvChain;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate **
-+NSSCertificate_BuildChain (
-+ NSSCertificate *c,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt,
-+ NSSCertificate **rvOpt,
-+ PRUint32 rvLimit, /* zero for no limit */
-+ NSSArena *arenaOpt,
-+ PRStatus *statusOpt
-+)
-+{
-+ return nssCertificate_BuildChain(c, timeOpt, usage, policiesOpt,
-+ rvOpt, rvLimit, arenaOpt, statusOpt);
-+}
-+
-+NSS_IMPLEMENT NSSCryptoContext *
-+nssCertificate_GetCryptoContext (
-+ NSSCertificate *c
-+)
-+{
-+ return c->object.cryptoContext;
-+}
-+
-+NSS_IMPLEMENT NSSTrustDomain *
-+nssCertificate_GetTrustDomain (
-+ NSSCertificate *c
-+)
-+{
-+ return c->object.trustDomain;
-+}
-+
-+NSS_IMPLEMENT NSSTrustDomain *
-+NSSCertificate_GetTrustDomain (
-+ NSSCertificate *c
-+)
-+{
-+ return nssCertificate_GetTrustDomain(c);
-+}
-+
-+NSS_IMPLEMENT NSSToken *
-+NSSCertificate_GetToken (
-+ NSSCertificate *c,
-+ PRStatus *statusOpt
-+)
-+{
-+ return (NSSToken *)NULL;
-+}
-+
-+NSS_IMPLEMENT NSSSlot *
-+NSSCertificate_GetSlot (
-+ NSSCertificate *c,
-+ PRStatus *statusOpt
-+)
-+{
-+ return (NSSSlot *)NULL;
-+}
-+
-+NSS_IMPLEMENT NSSModule *
-+NSSCertificate_GetModule (
-+ NSSCertificate *c,
-+ PRStatus *statusOpt
-+)
-+{
-+ return (NSSModule *)NULL;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSCertificate_Encrypt (
-+ NSSCertificate *c,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSCertificate_Verify (
-+ NSSCertificate *c,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSItem *signature,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt,
-+ NSSCallback *uhh
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSCertificate_VerifyRecover (
-+ NSSCertificate *c,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *signature,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSCertificate_WrapSymmetricKey (
-+ NSSCertificate *c,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSSymmetricKey *keyToWrap,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCryptoContext *
-+NSSCertificate_CreateCryptoContext (
-+ NSSCertificate *c,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt,
-+ NSSCallback *uhh
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSPublicKey *
-+NSSCertificate_GetPublicKey (
-+ NSSCertificate *c
-+)
-+{
-+#if 0
-+ CK_ATTRIBUTE pubktemplate[] = {
-+ { CKA_CLASS, NULL, 0 },
-+ { CKA_ID, NULL, 0 },
-+ { CKA_SUBJECT, NULL, 0 }
-+ };
-+ PRStatus nssrv;
-+ CK_ULONG count = sizeof(pubktemplate) / sizeof(pubktemplate[0]);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(pubktemplate, 0, &g_ck_class_pubkey);
-+ if (c->id.size > 0) {
-+ /* CKA_ID */
-+ NSS_CK_ITEM_TO_ATTRIBUTE(&c->id, &pubktemplate[1]);
-+ } else {
-+ /* failure, yes? */
-+ return (NSSPublicKey *)NULL;
-+ }
-+ if (c->subject.size > 0) {
-+ /* CKA_SUBJECT */
-+ NSS_CK_ITEM_TO_ATTRIBUTE(&c->subject, &pubktemplate[2]);
-+ } else {
-+ /* failure, yes? */
-+ return (NSSPublicKey *)NULL;
-+ }
-+ /* Try the cert's token first */
-+ if (c->token) {
-+ nssrv = nssToken_FindObjectByTemplate(c->token, pubktemplate, count);
-+ }
-+#endif
-+ /* Try all other key tokens */
-+ return (NSSPublicKey *)NULL;
-+}
-+
-+NSS_IMPLEMENT NSSPrivateKey *
-+NSSCertificate_FindPrivateKey (
-+ NSSCertificate *c,
-+ NSSCallback *uhh
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT PRBool
-+NSSCertificate_IsPrivateKeyAvailable (
-+ NSSCertificate *c,
-+ NSSCallback *uhh,
-+ PRStatus *statusOpt
-+)
-+{
-+ PRBool isUser = PR_FALSE;
-+ nssCryptokiObject **ip;
-+ nssCryptokiObject **instances = nssPKIObject_GetInstances(&c->object);
-+ if (!instances) {
-+ return PR_FALSE;
-+ }
-+ for (ip = instances; *ip; ip++) {
-+ nssCryptokiObject *instance = *ip;
-+ if (nssToken_IsPrivateKeyAvailable(instance->token, c, instance)) {
-+ isUser = PR_TRUE;
-+ }
-+ }
-+ nssCryptokiObjectArray_Destroy(instances);
-+ return isUser;
-+}
-+
-+NSS_IMPLEMENT PRBool
-+NSSUserCertificate_IsStillPresent (
-+ NSSUserCertificate *uc,
-+ PRStatus *statusOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FALSE;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSUserCertificate_Decrypt (
-+ NSSUserCertificate *uc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSUserCertificate_Sign (
-+ NSSUserCertificate *uc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSUserCertificate_SignRecover (
-+ NSSUserCertificate *uc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSSymmetricKey *
-+NSSUserCertificate_UnwrapSymmetricKey (
-+ NSSUserCertificate *uc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *wrappedKey,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSSymmetricKey *
-+NSSUserCertificate_DeriveSymmetricKey (
-+ NSSUserCertificate *uc, /* provides private key */
-+ NSSCertificate *c, /* provides public key */
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSOID *target,
-+ PRUint32 keySizeOpt, /* zero for best allowed */
-+ NSSOperations operations,
-+ NSSCallback *uhh
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT void
-+nssBestCertificate_SetArgs (
-+ nssBestCertificateCB *best,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policies
-+)
-+{
-+ if (timeOpt) {
-+ best->time = timeOpt;
-+ } else {
-+ NSSTime_Now(&best->sTime);
-+ best->time = &best->sTime;
-+ }
-+ best->usage = usage;
-+ best->policies = policies;
-+ best->cert = NULL;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssBestCertificate_Callback (
-+ NSSCertificate *c,
-+ void *arg
-+)
-+{
-+ nssBestCertificateCB *best = (nssBestCertificateCB *)arg;
-+ nssDecodedCert *dc, *bestdc;
-+ dc = nssCertificate_GetDecoding(c);
-+ if (!best->cert) {
-+ /* usage */
-+ if (best->usage->anyUsage) {
-+ best->cert = nssCertificate_AddRef(c);
-+ } else {
-+#ifdef NSS_3_4_CODE
-+ /* For this to work in NSS 3.4, we have to go out and fill in
-+ * all of the CERTCertificate fields. Why? Because the
-+ * matchUsage function calls CERT_IsCACert, which needs to know
-+ * what the trust values are for the cert.
-+ * Ignore the returned pointer, the refcount is in c anyway.
-+ */
-+ if (STAN_GetCERTCertificate(c) == NULL) {
-+ return PR_FAILURE;
-+ }
-+#endif
-+ if (dc->matchUsage(dc, best->usage)) {
-+ best->cert = nssCertificate_AddRef(c);
-+ }
-+ }
-+ return PR_SUCCESS;
-+ }
-+ bestdc = nssCertificate_GetDecoding(best->cert);
-+ /* time */
-+ if (bestdc->isValidAtTime(bestdc, best->time)) {
-+ /* The current best cert is valid at time */
-+ if (!dc->isValidAtTime(dc, best->time)) {
-+ /* If the new cert isn't valid at time, it's not better */
-+ return PR_SUCCESS;
-+ }
-+ } else {
-+ /* The current best cert is not valid at time */
-+ if (dc->isValidAtTime(dc, best->time)) {
-+ /* If the new cert is valid at time, it's better */
-+ NSSCertificate_Destroy(best->cert);
-+ best->cert = nssCertificate_AddRef(c);
-+ return PR_SUCCESS;
-+ }
-+ }
-+ /* either they are both valid at time, or neither valid; take the newer */
-+ /* XXX later -- defer to policies */
-+ if (!bestdc->isNewerThan(bestdc, dc)) {
-+ NSSCertificate_Destroy(best->cert);
-+ best->cert = nssCertificate_AddRef(c);
-+ }
-+ /* policies */
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT nssSMIMEProfile *
-+nssSMIMEProfile_Create (
-+ NSSCertificate *cert,
-+ NSSItem *profileTime,
-+ NSSItem *profileData
-+)
-+{
-+ NSSArena *arena;
-+ nssSMIMEProfile *rvProfile;
-+ nssPKIObject *object;
-+ NSSTrustDomain *td = nssCertificate_GetTrustDomain(cert);
-+ NSSCryptoContext *cc = nssCertificate_GetCryptoContext(cert);
-+ arena = nssArena_Create();
-+ if (!arena) {
-+ return NULL;
-+ }
-+ object = nssPKIObject_Create(arena, NULL, td, cc);
-+ if (!object) {
-+ goto loser;
-+ }
-+ rvProfile = nss_ZNEW(arena, nssSMIMEProfile);
-+ if (!rvProfile) {
-+ goto loser;
-+ }
-+ rvProfile->object = *object;
-+ rvProfile->certificate = cert;
-+ rvProfile->email = nssUTF8_Duplicate(cert->email, arena);
-+ rvProfile->subject = nssItem_Duplicate(&cert->subject, arena, NULL);
-+ if (profileTime) {
-+ rvProfile->profileTime = nssItem_Duplicate(profileTime, arena, NULL);
-+ }
-+ if (profileData) {
-+ rvProfile->profileData = nssItem_Duplicate(profileData, arena, NULL);
-+ }
-+ return rvProfile;
-+loser:
-+ nssPKIObject_Destroy(object);
-+ return (nssSMIMEProfile *)NULL;
-+}
-+
-+/* execute a callback function on all members of a cert list */
-+NSS_EXTERN PRStatus
-+nssCertificateList_DoCallback (
-+ nssList *certList,
-+ PRStatus (* callback)(NSSCertificate *c, void *arg),
-+ void *arg
-+)
-+{
-+ nssListIterator *certs;
-+ NSSCertificate *cert;
-+ PRStatus nssrv;
-+ certs = nssList_CreateIterator(certList);
-+ for (cert = (NSSCertificate *)nssListIterator_Start(certs);
-+ cert != (NSSCertificate *)NULL;
-+ cert = (NSSCertificate *)nssListIterator_Next(certs))
-+ {
-+ nssrv = (*callback)(cert, arg);
-+ }
-+ nssListIterator_Finish(certs);
-+ nssListIterator_Destroy(certs);
-+ return PR_SUCCESS;
-+}
-+
-+static PRStatus add_ref_callback(NSSCertificate *c, void *a)
-+{
-+ nssCertificate_AddRef(c);
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT void
-+nssCertificateList_AddReferences (
-+ nssList *certList
-+)
-+{
-+ (void)nssCertificateList_DoCallback(certList, add_ref_callback, NULL);
-+}
-+
-+NSS_IMPLEMENT NSSTrust *
-+nssTrust_Create (
-+ nssPKIObject *object,
-+ NSSItem *certData
-+)
-+{
-+ PRStatus status;
-+ PRUint32 i;
-+ PRUint32 lastTrustOrder, myTrustOrder;
-+ unsigned char sha1_hashcmp[SHA1_LENGTH];
-+ unsigned char sha1_hashin[SHA1_LENGTH];
-+ NSSItem sha1_hash;
-+ NSSTrust *rvt;
-+ nssCryptokiObject *instance;
-+ nssTrustLevel serverAuth, clientAuth, codeSigning, emailProtection;
-+ SECStatus rv; /* Should be stan flavor */
-+ lastTrustOrder = 1<<16; /* just make it big */
-+ PR_ASSERT(object->instances != NULL && object->numInstances > 0);
-+ rvt = nss_ZNEW(object->arena, NSSTrust);
-+ if (!rvt) {
-+ return (NSSTrust *)NULL;
-+ }
-+ rvt->object = *object;
-+
-+ /* should be stan flavor of Hashbuf */
-+ rv = PK11_HashBuf(SEC_OID_SHA1,sha1_hashcmp,certData->data,certData->size);
-+ if (rv != SECSuccess) {
-+ return (NSSTrust *)NULL;
-+ }
-+ sha1_hash.data = sha1_hashin;
-+ sha1_hash.size = sizeof (sha1_hashin);
-+ /* trust has to peek into the base object members */
-+ PZ_Lock(object->lock);
-+ for (i=0; i<object->numInstances; i++) {
-+ instance = object->instances[i];
-+ myTrustOrder = nssToken_GetTrustOrder(instance->token);
-+ status = nssCryptokiTrust_GetAttributes(instance, NULL,
-+ &sha1_hash,
-+ &serverAuth,
-+ &clientAuth,
-+ &codeSigning,
-+ &emailProtection);
-+ if (status != PR_SUCCESS) {
-+ PZ_Unlock(object->lock);
-+ return (NSSTrust *)NULL;
-+ }
-+ if (PORT_Memcmp(sha1_hashin,sha1_hashcmp,SHA1_LENGTH) != 0) {
-+ PZ_Unlock(object->lock);
-+ return (NSSTrust *)NULL;
-+ }
-+ if (rvt->serverAuth == nssTrustLevel_Unknown ||
-+ myTrustOrder < lastTrustOrder)
-+ {
-+ rvt->serverAuth = serverAuth;
-+ }
-+ if (rvt->clientAuth == nssTrustLevel_Unknown ||
-+ myTrustOrder < lastTrustOrder)
-+ {
-+ rvt->clientAuth = clientAuth;
-+ }
-+ if (rvt->emailProtection == nssTrustLevel_Unknown ||
-+ myTrustOrder < lastTrustOrder)
-+ {
-+ rvt->emailProtection = emailProtection;
-+ }
-+ if (rvt->codeSigning == nssTrustLevel_Unknown ||
-+ myTrustOrder < lastTrustOrder)
-+ {
-+ rvt->codeSigning = codeSigning;
-+ }
-+ lastTrustOrder = myTrustOrder;
-+ }
-+ PZ_Unlock(object->lock);
-+ return rvt;
-+}
-+
-+NSS_IMPLEMENT NSSTrust *
-+nssTrust_AddRef (
-+ NSSTrust *trust
-+)
-+{
-+ if (trust) {
-+ nssPKIObject_AddRef(&trust->object);
-+ }
-+ return trust;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssTrust_Destroy (
-+ NSSTrust *trust
-+)
-+{
-+ if (trust) {
-+ (void)nssPKIObject_Destroy(&trust->object);
-+ }
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT nssSMIMEProfile *
-+nssSMIMEProfile_AddRef (
-+ nssSMIMEProfile *profile
-+)
-+{
-+ if (profile) {
-+ nssPKIObject_AddRef(&profile->object);
-+ }
-+ return profile;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssSMIMEProfile_Destroy (
-+ nssSMIMEProfile *profile
-+)
-+{
-+ if (profile) {
-+ (void)nssPKIObject_Destroy(&profile->object);
-+ }
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT NSSCRL *
-+nssCRL_Create (
-+ nssPKIObject *object
-+)
-+{
-+ PRStatus status;
-+ NSSCRL *rvCRL;
-+ NSSArena *arena = object->arena;
-+ PR_ASSERT(object->instances != NULL && object->numInstances > 0);
-+ rvCRL = nss_ZNEW(arena, NSSCRL);
-+ if (!rvCRL) {
-+ return (NSSCRL *)NULL;
-+ }
-+ rvCRL->object = *object;
-+ /* XXX should choose instance based on some criteria */
-+ status = nssCryptokiCRL_GetAttributes(object->instances[0],
-+ NULL, /* XXX sessionOpt */
-+ arena,
-+ &rvCRL->encoding,
-+ NULL, /* subject */
-+ NULL, /* class */
-+ &rvCRL->url,
-+ &rvCRL->isKRL);
-+ if (status != PR_SUCCESS) {
-+ return (NSSCRL *)NULL;
-+ }
-+ return rvCRL;
-+}
-+
-+NSS_IMPLEMENT NSSCRL *
-+nssCRL_AddRef (
-+ NSSCRL *crl
-+)
-+{
-+ if (crl) {
-+ nssPKIObject_AddRef(&crl->object);
-+ }
-+ return crl;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssCRL_Destroy (
-+ NSSCRL *crl
-+)
-+{
-+ if (crl) {
-+ (void)nssPKIObject_Destroy(&crl->object);
-+ }
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssCRL_DeleteStoredObject (
-+ NSSCRL *crl,
-+ NSSCallback *uhh
-+)
-+{
-+ return nssPKIObject_DeleteStoredObject(&crl->object, uhh, PR_TRUE);
-+}
-+
-+NSS_IMPLEMENT NSSDER *
-+nssCRL_GetEncoding (
-+ NSSCRL *crl
-+)
-+{
-+ if (crl->encoding.data != NULL && crl->encoding.size > 0) {
-+ return &crl->encoding;
-+ } else {
-+ return (NSSDER *)NULL;
-+ }
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/certv3.c 2004-12-13 13:06:46.689399224 +0100
-@@ -0,0 +1,415 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+/*
-+ * Code for dealing with X509.V3 extensions.
-+ *
-+ * $Id$
-+ */
-+
-+#include "cert.h"
-+#include "secitem.h"
-+#include "secoid.h"
-+#include "secder.h"
-+#include "secasn1.h"
-+#include "certxutl.h"
-+#include "secerr.h"
-+
-+SECStatus
-+CERT_FindCertExtensionByOID(CERTCertificate *cert, SECItem *oid,
-+ SECItem *value)
-+{
-+ return (cert_FindExtensionByOID (cert->extensions, oid, value));
-+}
-+
-+
-+SECStatus
-+CERT_FindCertExtension(CERTCertificate *cert, int tag, SECItem *value)
-+{
-+ return (cert_FindExtension (cert->extensions, tag, value));
-+}
-+
-+static void
-+SetExts(void *object, CERTCertExtension **exts)
-+{
-+ CERTCertificate *cert = (CERTCertificate *)object;
-+
-+ cert->extensions = exts;
-+ DER_SetUInteger (cert->arena, &(cert->version), SEC_CERTIFICATE_VERSION_3);
-+}
-+
-+void *
-+CERT_StartCertExtensions(CERTCertificate *cert)
-+{
-+ return (cert_StartExtensions ((void *)cert, cert->arena, SetExts));
-+}
-+
-+/* find the given extension in the certificate of the Issuer of 'cert' */
-+SECStatus
-+CERT_FindIssuerCertExtension(CERTCertificate *cert, int tag, SECItem *value)
-+{
-+ CERTCertificate *issuercert;
-+ SECStatus rv;
-+
-+ issuercert = CERT_FindCertByName(cert->dbhandle, &cert->derIssuer);
-+ if ( issuercert ) {
-+ rv = cert_FindExtension(issuercert->extensions, tag, value);
-+ CERT_DestroyCertificate(issuercert);
-+ } else {
-+ rv = SECFailure;
-+ }
-+
-+ return(rv);
-+}
-+
-+/* find a URL extension in the cert or its CA
-+ * apply the base URL string if it exists
-+ */
-+char *
-+CERT_FindCertURLExtension(CERTCertificate *cert, int tag, int catag)
-+{
-+ SECStatus rv;
-+ SECItem urlitem;
-+ SECItem baseitem;
-+ SECItem urlstringitem = {siBuffer,0};
-+ SECItem basestringitem = {siBuffer,0};
-+ PRArenaPool *arena = NULL;
-+ PRBool hasbase;
-+ char *urlstring;
-+ char *str;
-+ int len;
-+ unsigned int i;
-+
-+ urlstring = NULL;
-+
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ if ( ! arena ) {
-+ goto loser;
-+ }
-+
-+ hasbase = PR_FALSE;
-+ urlitem.data = NULL;
-+ baseitem.data = NULL;
-+
-+ rv = cert_FindExtension(cert->extensions, tag, &urlitem);
-+ if ( rv == SECSuccess ) {
-+ rv = cert_FindExtension(cert->extensions, SEC_OID_NS_CERT_EXT_BASE_URL,
-+ &baseitem);
-+ if ( rv == SECSuccess ) {
-+ hasbase = PR_TRUE;
-+ }
-+
-+ } else if ( catag ) {
-+ /* if the cert doesn't have the extensions, see if the issuer does */
-+ rv = CERT_FindIssuerCertExtension(cert, catag, &urlitem);
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+ rv = CERT_FindIssuerCertExtension(cert, SEC_OID_NS_CERT_EXT_BASE_URL,
-+ &baseitem);
-+ if ( rv == SECSuccess ) {
-+ hasbase = PR_TRUE;
-+ }
-+ } else {
-+ goto loser;
-+ }
-+
-+ rv = SEC_QuickDERDecodeItem(arena, &urlstringitem, SEC_IA5StringTemplate,
-+ &urlitem);
-+
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+ if ( hasbase ) {
-+ rv = SEC_QuickDERDecodeItem(arena, &basestringitem, SEC_IA5StringTemplate,
-+ &baseitem);
-+
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+ }
-+
-+ len = urlstringitem.len + ( hasbase ? basestringitem.len : 0 ) + 1;
-+
-+ str = urlstring = (char *)PORT_Alloc(len);
-+ if ( urlstring == NULL ) {
-+ goto loser;
-+ }
-+
-+ /* copy the URL base first */
-+ if ( hasbase ) {
-+
-+ /* if the urlstring has a : in it, then we assume it is an absolute
-+ * URL, and will not get the base string pre-pended
-+ */
-+ for ( i = 0; i < urlstringitem.len; i++ ) {
-+ if ( urlstringitem.data[i] == ':' ) {
-+ goto nobase;
-+ }
-+ }
-+
-+ PORT_Memcpy(str, basestringitem.data, basestringitem.len);
-+ str += basestringitem.len;
-+
-+ }
-+
-+nobase:
-+ /* copy the rest (or all) of the URL */
-+ PORT_Memcpy(str, urlstringitem.data, urlstringitem.len);
-+ str += urlstringitem.len;
-+
-+ *str = '\0';
-+ goto done;
-+
-+loser:
-+ if ( urlstring ) {
-+ PORT_Free(urlstring);
-+ }
-+
-+ urlstring = NULL;
-+done:
-+ if ( arena ) {
-+ PORT_FreeArena(arena, PR_FALSE);
-+ }
-+ if ( baseitem.data ) {
-+ PORT_Free(baseitem.data);
-+ }
-+ if ( urlitem.data ) {
-+ PORT_Free(urlitem.data);
-+ }
-+
-+ return(urlstring);
-+}
-+
-+/*
-+ * get the value of the Netscape Certificate Type Extension
-+ */
-+SECStatus
-+CERT_FindNSCertTypeExtension(CERTCertificate *cert, SECItem *retItem)
-+{
-+
-+ return (CERT_FindBitStringExtension
-+ (cert->extensions, SEC_OID_NS_CERT_EXT_CERT_TYPE, retItem));
-+}
-+
-+
-+/*
-+ * get the value of a string type extension
-+ */
-+char *
-+CERT_FindNSStringExtension(CERTCertificate *cert, int oidtag)
-+{
-+ SECItem wrapperItem, tmpItem = {siBuffer,0};
-+ SECStatus rv;
-+ PRArenaPool *arena = NULL;
-+ char *retstring = NULL;
-+
-+ wrapperItem.data = NULL;
-+ tmpItem.data = NULL;
-+
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+
-+ if ( ! arena ) {
-+ goto loser;
-+ }
-+
-+ rv = cert_FindExtension(cert->extensions, oidtag,
-+ &wrapperItem);
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+
-+ rv = SEC_QuickDERDecodeItem(arena, &tmpItem, SEC_IA5StringTemplate,
-+ &wrapperItem);
-+
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+
-+ retstring = (char *)PORT_Alloc(tmpItem.len + 1 );
-+ if ( retstring == NULL ) {
-+ goto loser;
-+ }
-+
-+ PORT_Memcpy(retstring, tmpItem.data, tmpItem.len);
-+ retstring[tmpItem.len] = '\0';
-+
-+loser:
-+ if ( arena ) {
-+ PORT_FreeArena(arena, PR_FALSE);
-+ }
-+
-+ if ( wrapperItem.data ) {
-+ PORT_Free(wrapperItem.data);
-+ }
-+
-+ return(retstring);
-+}
-+
-+/*
-+ * get the value of the X.509 v3 Key Usage Extension
-+ */
-+SECStatus
-+CERT_FindKeyUsageExtension(CERTCertificate *cert, SECItem *retItem)
-+{
-+
-+ return (CERT_FindBitStringExtension(cert->extensions,
-+ SEC_OID_X509_KEY_USAGE, retItem));
-+}
-+
-+/*
-+ * get the value of the X.509 v3 Key Usage Extension
-+ */
-+SECStatus
-+CERT_FindSubjectKeyIDExtension(CERTCertificate *cert, SECItem *retItem)
-+{
-+
-+ SECStatus rv;
-+ SECItem encodedValue = {siBuffer, NULL, 0 };
-+ SECItem decodedValue = {siBuffer, NULL, 0 };
-+
-+ rv = cert_FindExtension
-+ (cert->extensions, SEC_OID_X509_SUBJECT_KEY_ID, &encodedValue);
-+ if (rv == SECSuccess) {
-+ PLArenaPool * tmpArena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ if (tmpArena) {
-+ rv = SEC_QuickDERDecodeItem(tmpArena, &decodedValue,
-+ SEC_OctetStringTemplate,
-+ &encodedValue);
-+ if (rv == SECSuccess) {
-+ rv = SECITEM_CopyItem(NULL, retItem, &decodedValue);
-+ }
-+ PORT_FreeArena(tmpArena, PR_FALSE);
-+ } else {
-+ rv = SECFailure;
-+ }
-+ }
-+ SECITEM_FreeItem(&encodedValue, PR_FALSE);
-+ return rv;
-+}
-+
-+SECStatus
-+CERT_FindBasicConstraintExten(CERTCertificate *cert,
-+ CERTBasicConstraints *value)
-+{
-+ SECItem encodedExtenValue;
-+ SECStatus rv;
-+
-+ encodedExtenValue.data = NULL;
-+ encodedExtenValue.len = 0;
-+
-+ rv = cert_FindExtension(cert->extensions, SEC_OID_X509_BASIC_CONSTRAINTS,
-+ &encodedExtenValue);
-+ if ( rv != SECSuccess ) {
-+ return (rv);
-+ }
-+
-+ rv = CERT_DecodeBasicConstraintValue (value, &encodedExtenValue);
-+
-+ /* free the raw extension data */
-+ PORT_Free(encodedExtenValue.data);
-+ encodedExtenValue.data = NULL;
-+
-+ return(rv);
-+}
-+
-+CERTAuthKeyID *
-+CERT_FindAuthKeyIDExten (PRArenaPool *arena, CERTCertificate *cert)
-+{
-+ SECItem encodedExtenValue;
-+ SECStatus rv;
-+ CERTAuthKeyID *ret;
-+
-+ encodedExtenValue.data = NULL;
-+ encodedExtenValue.len = 0;
-+
-+ rv = cert_FindExtension(cert->extensions, SEC_OID_X509_AUTH_KEY_ID,
-+ &encodedExtenValue);
-+ if ( rv != SECSuccess ) {
-+ return (NULL);
-+ }
-+
-+ ret = CERT_DecodeAuthKeyID (arena, &encodedExtenValue);
-+
-+ PORT_Free(encodedExtenValue.data);
-+ encodedExtenValue.data = NULL;
-+
-+ return(ret);
-+}
-+
-+SECStatus
-+CERT_CheckCertUsage(CERTCertificate *cert, unsigned char usage)
-+{
-+ PRBool critical;
-+ SECItem keyUsage;
-+ SECStatus rv;
-+
-+ /* There is no extension, v1 or v2 certificate */
-+ if (cert->extensions == NULL) {
-+ return (SECSuccess);
-+ }
-+
-+ keyUsage.data = NULL;
-+
-+ do {
-+ /* if the keyUsage extension exists and is critical, make sure that the
-+ CA certificate is used for certificate signing purpose only. If the
-+ extension does not exist, we will assum that it can be used for
-+ certificate signing purpose.
-+ */
-+ rv = CERT_GetExtenCriticality(cert->extensions,
-+ SEC_OID_X509_KEY_USAGE,
-+ &critical);
-+ if (rv == SECFailure) {
-+ rv = (PORT_GetError () == SEC_ERROR_EXTENSION_NOT_FOUND) ?
-+ SECSuccess : SECFailure;
-+ break;
-+ }
-+
-+ if (critical == PR_FALSE) {
-+ rv = SECSuccess;
-+ break;
-+ }
-+
-+ rv = CERT_FindKeyUsageExtension(cert, &keyUsage);
-+ if (rv != SECSuccess) {
-+ break;
-+ }
-+ if (!(keyUsage.data[0] & usage)) {
-+ PORT_SetError (SEC_ERROR_CERT_USAGES_INVALID);
-+ rv = SECFailure;
-+ }
-+ }while (0);
-+ PORT_Free (keyUsage.data);
-+ return (rv);
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/certxutl.c 2004-12-13 13:06:46.689399224 +0100
-@@ -0,0 +1,482 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+/*
-+ * Certificate Extensions handling code
-+ *
-+ */
-+
-+#include "cert.h"
-+#include "secitem.h"
-+#include "secoid.h"
-+#include "secder.h"
-+#include "secasn1.h"
-+#include "certxutl.h"
-+#include "secerr.h"
-+
-+#ifdef OLD
-+#include "ocspti.h" /* XXX a better extensions interface would not
-+ * require knowledge of data structures of callers */
-+#endif
-+
-+static CERTCertExtension *
-+GetExtension (CERTCertExtension **extensions, SECItem *oid)
-+{
-+ CERTCertExtension **exts;
-+ CERTCertExtension *ext = NULL;
-+ SECComparison comp;
-+
-+ exts = extensions;
-+
-+ if (exts) {
-+ while ( *exts ) {
-+ ext = *exts;
-+ comp = SECITEM_CompareItem(oid, &ext->id);
-+ if ( comp == SECEqual )
-+ break;
-+
-+ exts++;
-+ }
-+ return (*exts ? ext : NULL);
-+ }
-+ return (NULL);
-+}
-+
-+SECStatus
-+cert_FindExtensionByOID (CERTCertExtension **extensions, SECItem *oid, SECItem *value)
-+{
-+ CERTCertExtension *ext;
-+ SECStatus rv = SECSuccess;
-+
-+ ext = GetExtension (extensions, oid);
-+ if (ext == NULL) {
-+ PORT_SetError (SEC_ERROR_EXTENSION_NOT_FOUND);
-+ return (SECFailure);
-+ }
-+ if (value)
-+ rv = SECITEM_CopyItem(NULL, value, &ext->value);
-+ return (rv);
-+}
-+
-+
-+SECStatus
-+CERT_GetExtenCriticality (CERTCertExtension **extensions, int tag, PRBool *isCritical)
-+{
-+ CERTCertExtension *ext;
-+ SECOidData *oid;
-+
-+ if (!isCritical)
-+ return (SECSuccess);
-+
-+ /* find the extension in the extensions list */
-+ oid = SECOID_FindOIDByTag((SECOidTag)tag);
-+ if ( !oid ) {
-+ return(SECFailure);
-+ }
-+ ext = GetExtension (extensions, &oid->oid);
-+ if (ext == NULL) {
-+ PORT_SetError (SEC_ERROR_EXTENSION_NOT_FOUND);
-+ return (SECFailure);
-+ }
-+
-+ /* If the criticality is omitted, then it is false by default.
-+ ex->critical.data is NULL */
-+ if (ext->critical.data == NULL)
-+ *isCritical = PR_FALSE;
-+ else
-+ *isCritical = (ext->critical.data[0] == 0xff) ? PR_TRUE : PR_FALSE;
-+ return (SECSuccess);
-+}
-+
-+SECStatus
-+cert_FindExtension(CERTCertExtension **extensions, int tag, SECItem *value)
-+{
-+ SECOidData *oid;
-+
-+ oid = SECOID_FindOIDByTag((SECOidTag)tag);
-+ if ( !oid ) {
-+ return(SECFailure);
-+ }
-+
-+ return(cert_FindExtensionByOID(extensions, &oid->oid, value));
-+}
-+
-+
-+typedef struct _extNode {
-+ struct _extNode *next;
-+ CERTCertExtension *ext;
-+} extNode;
-+
-+typedef struct {
-+ void (*setExts)(void *object, CERTCertExtension **exts);
-+ void *object;
-+ PRArenaPool *ownerArena;
-+ PRArenaPool *arena;
-+ extNode *head;
-+ int count;
-+}extRec;
-+
-+/*
-+ * cert_StartExtensions
-+ *
-+ * NOTE: This interface changed significantly to remove knowledge
-+ * about callers data structures (owner objects)
-+ */
-+void *
-+cert_StartExtensions(void *owner, PRArenaPool *ownerArena,
-+ void (*setExts)(void *object, CERTCertExtension **exts))
-+{
-+ PRArenaPool *arena;
-+ extRec *handle;
-+
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ if ( !arena ) {
-+ return(0);
-+ }
-+
-+ handle = (extRec *)PORT_ArenaAlloc(arena, sizeof(extRec));
-+ if ( !handle ) {
-+ PORT_FreeArena(arena, PR_FALSE);
-+ return(0);
-+ }
-+
-+ handle->object = owner;
-+ handle->ownerArena = ownerArena;
-+ handle->setExts = setExts;
-+
-+ handle->arena = arena;
-+ handle->head = 0;
-+ handle->count = 0;
-+
-+ return(handle);
-+}
-+
-+static unsigned char hextrue = 0xff;
-+
-+/*
-+ * Note - assumes that data pointed to by oid->data will not move
-+ */
-+SECStatus
-+CERT_AddExtensionByOID (void *exthandle, SECItem *oid, SECItem *value,
-+ PRBool critical, PRBool copyData)
-+{
-+ CERTCertExtension *ext;
-+ SECStatus rv;
-+ extNode *node;
-+ extRec *handle;
-+
-+ handle = (extRec *)exthandle;
-+
-+ /* allocate space for extension and list node */
-+ ext = (CERTCertExtension*)PORT_ArenaZAlloc(handle->ownerArena,
-+ sizeof(CERTCertExtension));
-+ if ( !ext ) {
-+ return(SECFailure);
-+ }
-+
-+ node = (extNode*)PORT_ArenaAlloc(handle->arena, sizeof(extNode));
-+ if ( !node ) {
-+ return(SECFailure);
-+ }
-+
-+ /* add to list */
-+ node->next = handle->head;
-+ handle->head = node;
-+
-+ /* point to ext struct */
-+ node->ext = ext;
-+
-+ /* the object ID of the extension */
-+ ext->id = *oid;
-+
-+ /* set critical field */
-+ if ( critical ) {
-+ ext->critical.data = (unsigned char*)&hextrue;
-+ ext->critical.len = 1;
-+ }
-+
-+ /* set the value */
-+ if ( copyData ) {
-+ rv = SECITEM_CopyItem(handle->ownerArena, &ext->value, value);
-+ if ( rv ) {
-+ return(SECFailure);
-+ }
-+ } else {
-+ ext->value = *value;
-+ }
-+
-+ handle->count++;
-+
-+ return(SECSuccess);
-+
-+}
-+
-+SECStatus
-+CERT_AddExtension(void *exthandle, int idtag, SECItem *value,
-+ PRBool critical, PRBool copyData)
-+{
-+ SECOidData *oid;
-+
-+ oid = SECOID_FindOIDByTag((SECOidTag)idtag);
-+ if ( !oid ) {
-+ return(SECFailure);
-+ }
-+
-+ return(CERT_AddExtensionByOID(exthandle, &oid->oid, value, critical, copyData));
-+}
-+
-+SECStatus
-+CERT_EncodeAndAddExtension(void *exthandle, int idtag, void *value,
-+ PRBool critical, const SEC_ASN1Template *atemplate)
-+{
-+ extRec *handle;
-+ SECItem *encitem;
-+
-+ handle = (extRec *)exthandle;
-+
-+ encitem = SEC_ASN1EncodeItem(handle->ownerArena, NULL, value, atemplate);
-+ if ( encitem == NULL ) {
-+ return(SECFailure);
-+ }
-+
-+ return CERT_AddExtension(exthandle, idtag, encitem, critical, PR_FALSE);
-+}
-+
-+void
-+PrepareBitStringForEncoding (SECItem *bitsmap, SECItem *value)
-+{
-+ unsigned char onebyte;
-+ unsigned int i, len = 0;
-+
-+ /* to prevent warning on some platform at compile time */
-+ onebyte = '\0';
-+ /* Get the position of the right-most turn-on bit */
-+ for (i = 0; i < (value->len ) * 8; ++i) {
-+ if (i % 8 == 0)
-+ onebyte = value->data[i/8];
-+ if (onebyte & 0x80)
-+ len = i;
-+ onebyte <<= 1;
-+
-+ }
-+ bitsmap->data = value->data;
-+ /* Add one here since we work with base 1 */
-+ bitsmap->len = len + 1;
-+}
-+
-+SECStatus
-+CERT_EncodeAndAddBitStrExtension (void *exthandle, int idtag,
-+ SECItem *value, PRBool critical)
-+{
-+ SECItem bitsmap;
-+
-+ PrepareBitStringForEncoding (&bitsmap, value);
-+ return (CERT_EncodeAndAddExtension
-+ (exthandle, idtag, &bitsmap, critical, SEC_BitStringTemplate));
-+}
-+
-+SECStatus
-+CERT_FinishExtensions(void *exthandle)
-+{
-+ extRec *handle;
-+ extNode *node;
-+ CERTCertExtension **exts;
-+ SECStatus rv = SECFailure;
-+
-+ handle = (extRec *)exthandle;
-+
-+ /* allocate space for extensions array */
-+ exts = PORT_ArenaNewArray(handle->ownerArena, CERTCertExtension *,
-+ handle->count + 1);
-+ if (exts == NULL) {
-+ goto loser;
-+ }
-+
-+ /* put extensions in owner object and update its version number */
-+
-+#ifdef OLD
-+ switch (handle->type) {
-+ case CertificateExtensions:
-+ handle->owner.cert->extensions = exts;
-+ DER_SetUInteger (ownerArena, &(handle->owner.cert->version),
-+ SEC_CERTIFICATE_VERSION_3);
-+ break;
-+ case CrlExtensions:
-+ handle->owner.crl->extensions = exts;
-+ DER_SetUInteger (ownerArena, &(handle->owner.crl->version),
-+ SEC_CRL_VERSION_2);
-+ break;
-+ case OCSPRequestExtensions:
-+ handle->owner.request->tbsRequest->requestExtensions = exts;
-+ break;
-+ case OCSPSingleRequestExtensions:
-+ handle->owner.singleRequest->singleRequestExtensions = exts;
-+ break;
-+ case OCSPResponseSingleExtensions:
-+ handle->owner.singleResponse->singleExtensions = exts;
-+ break;
-+ }
-+#endif
-+
-+ handle->setExts(handle->object, exts);
-+
-+ /* update the version number */
-+
-+ /* copy each extension pointer */
-+ node = handle->head;
-+ while ( node ) {
-+ *exts = node->ext;
-+
-+ node = node->next;
-+ exts++;
-+ }
-+
-+ /* terminate the array of extensions */
-+ *exts = 0;
-+
-+ rv = SECSuccess;
-+
-+loser:
-+ /* free working arena */
-+ PORT_FreeArena(handle->arena, PR_FALSE);
-+ return rv;
-+}
-+
-+/*
-+ * get the value of the Netscape Certificate Type Extension
-+ */
-+SECStatus
-+CERT_FindBitStringExtension (CERTCertExtension **extensions, int tag,
-+ SECItem *retItem)
-+{
-+ SECItem wrapperItem, tmpItem = {siBuffer,0};
-+ SECStatus rv;
-+ PRArenaPool *arena = NULL;
-+
-+ wrapperItem.data = NULL;
-+ tmpItem.data = NULL;
-+
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+
-+ if ( ! arena ) {
-+ return(SECFailure);
-+ }
-+
-+ rv = cert_FindExtension(extensions, tag, &wrapperItem);
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+
-+ rv = SEC_QuickDERDecodeItem(arena, &tmpItem, SEC_BitStringTemplate,
-+ &wrapperItem);
-+
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+
-+ retItem->data = (unsigned char *)PORT_Alloc( ( tmpItem.len + 7 ) >> 3 );
-+ if ( retItem->data == NULL ) {
-+ goto loser;
-+ }
-+
-+ PORT_Memcpy(retItem->data, tmpItem.data, ( tmpItem.len + 7 ) >> 3);
-+ retItem->len = tmpItem.len;
-+
-+ rv = SECSuccess;
-+ goto done;
-+
-+loser:
-+ rv = SECFailure;
-+
-+done:
-+ if ( arena ) {
-+ PORT_FreeArena(arena, PR_FALSE);
-+ }
-+
-+ if ( wrapperItem.data ) {
-+ PORT_Free(wrapperItem.data);
-+ }
-+
-+ return(rv);
-+}
-+
-+PRBool
-+cert_HasCriticalExtension (CERTCertExtension **extensions)
-+{
-+ CERTCertExtension **exts;
-+ CERTCertExtension *ext = NULL;
-+ PRBool hasCriticalExten = PR_FALSE;
-+
-+ exts = extensions;
-+
-+ if (exts) {
-+ while ( *exts ) {
-+ ext = *exts;
-+ /* If the criticality is omitted, it's non-critical */
-+ if (ext->critical.data && ext->critical.data[0] == 0xff) {
-+ hasCriticalExten = PR_TRUE;
-+ break;
-+ }
-+ exts++;
-+ }
-+ }
-+ return (hasCriticalExten);
-+}
-+
-+PRBool
-+cert_HasUnknownCriticalExten (CERTCertExtension **extensions)
-+{
-+ CERTCertExtension **exts;
-+ CERTCertExtension *ext = NULL;
-+ PRBool hasUnknownCriticalExten = PR_FALSE;
-+
-+ exts = extensions;
-+
-+ if (exts) {
-+ while ( *exts ) {
-+ ext = *exts;
-+ /* If the criticality is omitted, it's non-critical.
-+ If an extension is critical, make sure that we know
-+ how to process the extension.
-+ */
-+ if (ext->critical.data && ext->critical.data[0] == 0xff) {
-+ if (SECOID_KnownCertExtenOID (&ext->id) == PR_FALSE) {
-+ hasUnknownCriticalExten = PR_TRUE;
-+ break;
-+ }
-+ }
-+ exts++;
-+ }
-+ }
-+ return (hasUnknownCriticalExten);
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/certxutl.h 2004-12-13 15:50:15.970161880 +0100
-@@ -0,0 +1,79 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+/*
-+ * x.509 v3 certificate extension helper routines
-+ *
-+ */
-+
-+
-+#ifndef _CERTXUTL_H_
-+#define _CERTXUTL_H_
-+
-+#include "nspr.h"
-+
-+#ifdef OLD
-+typedef enum {
-+ CertificateExtensions,
-+ CrlExtensions,
-+ OCSPRequestExtensions,
-+ OCSPSingleRequestExtensions,
-+ OCSPResponseSingleExtensions
-+} ExtensionsType;
-+#endif
-+
-+extern PRBool
-+cert_HasCriticalExtension (CERTCertExtension **extensions);
-+
-+extern SECStatus
-+CERT_FindBitStringExtension (CERTCertExtension **extensions,
-+ int tag, SECItem *retItem);
-+extern void *
-+cert_StartExtensions (void *owner, PLArenaPool *arena,
-+ void (*setExts)(void *object, CERTCertExtension **exts));
-+
-+extern SECStatus
-+cert_FindExtension (CERTCertExtension **extensions, int tag, SECItem *value);
-+
-+extern SECStatus
-+cert_FindExtensionByOID (CERTCertExtension **extensions,
-+ SECItem *oid, SECItem *value);
-+
-+extern SECStatus
-+cert_GetExtenCriticality (CERTCertExtension **extensions,
-+ int tag, PRBool *isCritical);
-+
-+extern PRBool
-+cert_HasUnknownCriticalExten (CERTCertExtension **extensions);
-+
-+#endif
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/ckhelper.c 2004-12-13 13:06:46.861373080 +0100
-@@ -0,0 +1,718 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#ifndef NSSCKEPV_H
-+#include "nssckepv.h"
-+#endif /* NSSCKEPV_H */
-+
-+#ifndef DEVM_H
-+#include "devm.h"
-+#endif /* DEVM_H */
-+
-+#ifndef CKHELPER_H
-+#include "ckhelper.h"
-+#endif /* CKHELPER_H */
-+
-+extern const NSSError NSS_ERROR_DEVICE_ERROR;
-+
-+static const CK_BBOOL s_true = CK_TRUE;
-+NSS_IMPLEMENT_DATA const NSSItem
-+g_ck_true = { (CK_VOID_PTR)&s_true, sizeof(s_true) };
-+
-+static const CK_BBOOL s_false = CK_FALSE;
-+NSS_IMPLEMENT_DATA const NSSItem
-+g_ck_false = { (CK_VOID_PTR)&s_false, sizeof(s_false) };
-+
-+static const CK_OBJECT_CLASS s_class_cert = CKO_CERTIFICATE;
-+NSS_IMPLEMENT_DATA const NSSItem
-+g_ck_class_cert = { (CK_VOID_PTR)&s_class_cert, sizeof(s_class_cert) };
-+
-+static const CK_OBJECT_CLASS s_class_pubkey = CKO_PUBLIC_KEY;
-+NSS_IMPLEMENT_DATA const NSSItem
-+g_ck_class_pubkey = { (CK_VOID_PTR)&s_class_pubkey, sizeof(s_class_pubkey) };
-+
-+static const CK_OBJECT_CLASS s_class_privkey = CKO_PRIVATE_KEY;
-+NSS_IMPLEMENT_DATA const NSSItem
-+g_ck_class_privkey = { (CK_VOID_PTR)&s_class_privkey, sizeof(s_class_privkey) };
-+
-+static PRBool
-+is_string_attribute (
-+ CK_ATTRIBUTE_TYPE aType
-+)
-+{
-+ PRBool isString;
-+ switch (aType) {
-+ case CKA_LABEL:
-+ case CKA_NETSCAPE_EMAIL:
-+ isString = PR_TRUE;
-+ break;
-+ default:
-+ isString = PR_FALSE;
-+ break;
-+ }
-+ return isString;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssCKObject_GetAttributes (
-+ CK_OBJECT_HANDLE object,
-+ CK_ATTRIBUTE_PTR obj_template,
-+ CK_ULONG count,
-+ NSSArena *arenaOpt,
-+ nssSession *session,
-+ NSSSlot *slot
-+)
-+{
-+ nssArenaMark *mark = NULL;
-+ CK_SESSION_HANDLE hSession;
-+ CK_ULONG i = 0;
-+ CK_RV ckrv;
-+ PRStatus nssrv;
-+ PRBool alloced = PR_FALSE;
-+ void *epv = nssSlot_GetCryptokiEPV(slot);
-+ hSession = session->handle;
-+ if (arenaOpt) {
-+ mark = nssArena_Mark(arenaOpt);
-+ if (!mark) {
-+ goto loser;
-+ }
-+ }
-+ nssSession_EnterMonitor(session);
-+ /* XXX kinda hacky, if the storage size is already in the first template
-+ * item, then skip the alloc portion
-+ */
-+ if (obj_template[0].ulValueLen == 0) {
-+ /* Get the storage size needed for each attribute */
-+ ckrv = CKAPI(epv)->C_GetAttributeValue(hSession,
-+ object, obj_template, count);
-+ if (ckrv != CKR_OK &&
-+ ckrv != CKR_ATTRIBUTE_TYPE_INVALID &&
-+ ckrv != CKR_ATTRIBUTE_SENSITIVE)
-+ {
-+ nssSession_ExitMonitor(session);
-+ nss_SetError(NSS_ERROR_DEVICE_ERROR);
-+ goto loser;
-+ }
-+ /* Allocate memory for each attribute. */
-+ for (i=0; i<count; i++) {
-+ CK_ULONG ulValueLen = obj_template[i].ulValueLen;
-+ if (ulValueLen == 0) continue;
-+ if (ulValueLen == (CK_ULONG) -1) {
-+ obj_template[i].ulValueLen = 0;
-+ continue;
-+ }
-+ if (is_string_attribute(obj_template[i].type)) {
-+ ulValueLen++;
-+ }
-+ obj_template[i].pValue = nss_ZAlloc(arenaOpt, ulValueLen);
-+ if (!obj_template[i].pValue) {
-+ nssSession_ExitMonitor(session);
-+ goto loser;
-+ }
-+ }
-+ alloced = PR_TRUE;
-+ }
-+ /* Obtain the actual attribute values. */
-+ ckrv = CKAPI(epv)->C_GetAttributeValue(hSession,
-+ object, obj_template, count);
-+ nssSession_ExitMonitor(session);
-+ if (ckrv != CKR_OK &&
-+ ckrv != CKR_ATTRIBUTE_TYPE_INVALID &&
-+ ckrv != CKR_ATTRIBUTE_SENSITIVE)
-+ {
-+ nss_SetError(NSS_ERROR_DEVICE_ERROR);
-+ goto loser;
-+ }
-+ if (alloced && arenaOpt) {
-+ nssrv = nssArena_Unmark(arenaOpt, mark);
-+ if (nssrv != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ }
-+
-+ if (count > 1 && ((ckrv == CKR_ATTRIBUTE_TYPE_INVALID) ||
-+ (ckrv == CKR_ATTRIBUTE_SENSITIVE))) {
-+ /* old tokens would keep the length of '0' and not deal with any
-+ * of the attributes we passed. For those tokens read them one at
-+ * a time */
-+ for (i=0; i < count; i++) {
-+ if ((obj_template[i].ulValueLen == 0)
-+ || (obj_template[i].ulValueLen == -1)) {
-+ obj_template[i].ulValueLen=0;
-+ (void) nssCKObject_GetAttributes(object,&obj_template[i], 1,
-+ arenaOpt, session, slot);
-+ }
-+ }
-+ }
-+ return PR_SUCCESS;
-+loser:
-+ if (alloced) {
-+ if (arenaOpt) {
-+ /* release all arena memory allocated before the failure. */
-+ (void)nssArena_Release(arenaOpt, mark);
-+ } else {
-+ CK_ULONG j;
-+ /* free each heap object that was allocated before the failure. */
-+ for (j=0; j<i; j++) {
-+ nss_ZFreeIf(obj_template[j].pValue);
-+ }
-+ }
-+ }
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssCKObject_GetAttributeItem (
-+ CK_OBJECT_HANDLE object,
-+ CK_ATTRIBUTE_TYPE attribute,
-+ NSSArena *arenaOpt,
-+ nssSession *session,
-+ NSSSlot *slot,
-+ NSSItem *rvItem
-+)
-+{
-+ CK_ATTRIBUTE attr = { 0, NULL, 0 };
-+ PRStatus nssrv;
-+ attr.type = attribute;
-+ nssrv = nssCKObject_GetAttributes(object, &attr, 1,
-+ arenaOpt, session, slot);
-+ if (nssrv != PR_SUCCESS) {
-+ return nssrv;
-+ }
-+ rvItem->data = (void *)attr.pValue;
-+ rvItem->size = (PRUint32)attr.ulValueLen;
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT PRBool
-+nssCKObject_IsAttributeTrue (
-+ CK_OBJECT_HANDLE object,
-+ CK_ATTRIBUTE_TYPE attribute,
-+ nssSession *session,
-+ NSSSlot *slot,
-+ PRStatus *rvStatus
-+)
-+{
-+ CK_BBOOL bool;
-+ CK_ATTRIBUTE_PTR attr;
-+ CK_ATTRIBUTE atemplate = { 0, NULL, 0 };
-+ CK_RV ckrv;
-+ void *epv = nssSlot_GetCryptokiEPV(slot);
-+ attr = &atemplate;
-+ NSS_CK_SET_ATTRIBUTE_VAR(attr, attribute, bool);
-+ nssSession_EnterMonitor(session);
-+ ckrv = CKAPI(epv)->C_GetAttributeValue(session->handle, object,
-+ &atemplate, 1);
-+ nssSession_ExitMonitor(session);
-+ if (ckrv != CKR_OK) {
-+ *rvStatus = PR_FAILURE;
-+ return PR_FALSE;
-+ }
-+ *rvStatus = PR_SUCCESS;
-+ return (PRBool)(bool == CK_TRUE);
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssCKObject_SetAttributes (
-+ CK_OBJECT_HANDLE object,
-+ CK_ATTRIBUTE_PTR obj_template,
-+ CK_ULONG count,
-+ nssSession *session,
-+ NSSSlot *slot
-+)
-+{
-+ CK_RV ckrv;
-+ void *epv = nssSlot_GetCryptokiEPV(slot);
-+ nssSession_EnterMonitor(session);
-+ ckrv = CKAPI(epv)->C_SetAttributeValue(session->handle, object,
-+ obj_template, count);
-+ nssSession_ExitMonitor(session);
-+ if (ckrv == CKR_OK) {
-+ return PR_SUCCESS;
-+ } else {
-+ return PR_FAILURE;
-+ }
-+}
-+
-+NSS_IMPLEMENT PRBool
-+nssCKObject_IsTokenObjectTemplate (
-+ CK_ATTRIBUTE_PTR objectTemplate,
-+ CK_ULONG otsize
-+)
-+{
-+ CK_ULONG ul;
-+ for (ul=0; ul<otsize; ul++) {
-+ if (objectTemplate[ul].type == CKA_TOKEN) {
-+ return (*((CK_BBOOL*)objectTemplate[ul].pValue) == CK_TRUE);
-+ }
-+ }
-+ return PR_FALSE;
-+}
-+
-+static NSSCertificateType
-+nss_cert_type_from_ck_attrib(CK_ATTRIBUTE_PTR attrib)
-+{
-+ CK_CERTIFICATE_TYPE ckCertType;
-+ if (!attrib->pValue) {
-+ /* default to PKIX */
-+ return NSSCertificateType_PKIX;
-+ }
-+ ckCertType = *((CK_ULONG *)attrib->pValue);
-+ switch (ckCertType) {
-+ case CKC_X_509:
-+ return NSSCertificateType_PKIX;
-+ default:
-+ break;
-+ }
-+ return NSSCertificateType_Unknown;
-+}
-+
-+/* incoming pointers must be valid */
-+NSS_IMPLEMENT PRStatus
-+nssCryptokiCertificate_GetAttributes (
-+ nssCryptokiObject *certObject,
-+ nssSession *sessionOpt,
-+ NSSArena *arenaOpt,
-+ NSSCertificateType *certTypeOpt,
-+ NSSItem *idOpt,
-+ NSSDER *encodingOpt,
-+ NSSDER *issuerOpt,
-+ NSSDER *serialOpt,
-+ NSSDER *subjectOpt
-+)
-+{
-+ PRStatus status;
-+ PRUint32 i;
-+ nssSession *session;
-+ NSSSlot *slot;
-+ CK_ULONG template_size;
-+ CK_ATTRIBUTE_PTR attr;
-+ CK_ATTRIBUTE cert_template[6];
-+ /* Set up a template of all options chosen by caller */
-+ NSS_CK_TEMPLATE_START(cert_template, attr, template_size);
-+ if (certTypeOpt) {
-+ NSS_CK_SET_ATTRIBUTE_NULL(attr, CKA_CERTIFICATE_TYPE);
-+ }
-+ if (idOpt) {
-+ NSS_CK_SET_ATTRIBUTE_NULL(attr, CKA_ID);
-+ }
-+ if (encodingOpt) {
-+ NSS_CK_SET_ATTRIBUTE_NULL(attr, CKA_VALUE);
-+ }
-+ if (issuerOpt) {
-+ NSS_CK_SET_ATTRIBUTE_NULL(attr, CKA_ISSUER);
-+ }
-+ if (serialOpt) {
-+ NSS_CK_SET_ATTRIBUTE_NULL(attr, CKA_SERIAL_NUMBER);
-+ }
-+ if (subjectOpt) {
-+ NSS_CK_SET_ATTRIBUTE_NULL(attr, CKA_SUBJECT);
-+ }
-+ NSS_CK_TEMPLATE_FINISH(cert_template, attr, template_size);
-+ if (template_size == 0) {
-+ /* caller didn't want anything */
-+ return PR_SUCCESS;
-+ }
-+
-+ status = nssToken_GetCachedObjectAttributes(certObject->token, arenaOpt,
-+ certObject, CKO_CERTIFICATE,
-+ cert_template, template_size);
-+ if (status != PR_SUCCESS) {
-+
-+ session = sessionOpt ?
-+ sessionOpt :
-+ nssToken_GetDefaultSession(certObject->token);
-+
-+ slot = nssToken_GetSlot(certObject->token);
-+ status = nssCKObject_GetAttributes(certObject->handle,
-+ cert_template, template_size,
-+ arenaOpt, session, slot);
-+ nssSlot_Destroy(slot);
-+ if (status != PR_SUCCESS) {
-+ return status;
-+ }
-+ }
-+
-+ i=0;
-+ if (certTypeOpt) {
-+ *certTypeOpt = nss_cert_type_from_ck_attrib(&cert_template[i]); i++;
-+ }
-+ if (idOpt) {
-+ NSS_CK_ATTRIBUTE_TO_ITEM(&cert_template[i], idOpt); i++;
-+ }
-+ if (encodingOpt) {
-+ NSS_CK_ATTRIBUTE_TO_ITEM(&cert_template[i], encodingOpt); i++;
-+ }
-+ if (issuerOpt) {
-+ NSS_CK_ATTRIBUTE_TO_ITEM(&cert_template[i], issuerOpt); i++;
-+ }
-+ if (serialOpt) {
-+ NSS_CK_ATTRIBUTE_TO_ITEM(&cert_template[i], serialOpt); i++;
-+ }
-+ if (subjectOpt) {
-+ NSS_CK_ATTRIBUTE_TO_ITEM(&cert_template[i], subjectOpt); i++;
-+ }
-+ return PR_SUCCESS;
-+}
-+
-+#ifdef PURE_STAN_BUILD
-+static NSSKeyPairType
-+nss_key_pair_type_from_ck_attrib(CK_ATTRIBUTE_PTR attrib)
-+{
-+ CK_KEY_TYPE ckKeyType;
-+ PR_ASSERT(attrib->pValue);
-+ ckKeyType = *((CK_ULONG *)attrib->pValue);
-+ switch (ckKeyType) {
-+ case CKK_RSA: return NSSKeyPairType_RSA;
-+ case CKK_DSA: return NSSKeyPairType_DSA;
-+ default: break;
-+ }
-+ return NSSKeyPairType_Unknown;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssCryptokiPrivateKey_GetAttributes (
-+ nssCryptokiObject *keyObject,
-+ nssSession *sessionOpt,
-+ NSSArena *arenaOpt,
-+ NSSKeyPairType *keyTypeOpt,
-+ NSSItem *idOpt
-+)
-+{
-+ PRStatus status;
-+ PRUint32 i;
-+ nssSession *session;
-+ NSSSlot *slot;
-+ CK_ULONG template_size;
-+ CK_ATTRIBUTE_PTR attr;
-+ CK_ATTRIBUTE key_template[2];
-+ /* Set up a template of all options chosen by caller */
-+ NSS_CK_TEMPLATE_START(key_template, attr, template_size);
-+ if (keyTypeOpt) {
-+ NSS_CK_SET_ATTRIBUTE_NULL(attr, CKA_KEY_TYPE);
-+ }
-+ if (idOpt) {
-+ NSS_CK_SET_ATTRIBUTE_NULL(attr, CKA_ID);
-+ }
-+ NSS_CK_TEMPLATE_FINISH(key_template, attr, template_size);
-+ if (template_size == 0) {
-+ /* caller didn't want anything */
-+ return PR_SUCCESS;
-+ }
-+
-+ session = sessionOpt ?
-+ sessionOpt :
-+ nssToken_GetDefaultSession(keyObject->token);
-+
-+ slot = nssToken_GetSlot(keyObject->token);
-+ status = nssCKObject_GetAttributes(keyObject->handle,
-+ key_template, template_size,
-+ arenaOpt, session, slot);
-+ nssSlot_Destroy(slot);
-+ if (status != PR_SUCCESS) {
-+ return status;
-+ }
-+
-+ i=0;
-+ if (keyTypeOpt) {
-+ *keyTypeOpt = nss_key_pair_type_from_ck_attrib(&key_template[i]); i++;
-+ }
-+ if (idOpt) {
-+ NSS_CK_ATTRIBUTE_TO_ITEM(&key_template[i], idOpt); i++;
-+ }
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssCryptokiPublicKey_GetAttributes (
-+ nssCryptokiObject *keyObject,
-+ nssSession *sessionOpt,
-+ NSSArena *arenaOpt,
-+ NSSKeyPairType *keyTypeOpt,
-+ NSSItem *idOpt
-+)
-+{
-+ PRStatus status;
-+ PRUint32 i;
-+ nssSession *session;
-+ NSSSlot *slot;
-+ CK_ULONG template_size;
-+ CK_ATTRIBUTE_PTR attr;
-+ CK_ATTRIBUTE key_template[2];
-+ /* Set up a template of all options chosen by caller */
-+ NSS_CK_TEMPLATE_START(key_template, attr, template_size);
-+ if (keyTypeOpt) {
-+ NSS_CK_SET_ATTRIBUTE_NULL(attr, CKA_KEY_TYPE);
-+ }
-+ if (idOpt) {
-+ NSS_CK_SET_ATTRIBUTE_NULL(attr, CKA_ID);
-+ }
-+ NSS_CK_TEMPLATE_FINISH(key_template, attr, template_size);
-+ if (template_size == 0) {
-+ /* caller didn't want anything */
-+ return PR_SUCCESS;
-+ }
-+
-+ session = sessionOpt ?
-+ sessionOpt :
-+ nssToken_GetDefaultSession(keyObject->token);
-+
-+ slot = nssToken_GetSlot(keyObject->token);
-+ status = nssCKObject_GetAttributes(keyObject->handle,
-+ key_template, template_size,
-+ arenaOpt, session, slot);
-+ nssSlot_Destroy(slot);
-+ if (status != PR_SUCCESS) {
-+ return status;
-+ }
-+
-+ i=0;
-+ if (keyTypeOpt) {
-+ *keyTypeOpt = nss_key_pair_type_from_ck_attrib(&key_template[i]); i++;
-+ }
-+ if (idOpt) {
-+ NSS_CK_ATTRIBUTE_TO_ITEM(&key_template[i], idOpt); i++;
-+ }
-+ return PR_SUCCESS;
-+}
-+#endif /* PURE_STAN_BUILD */
-+
-+static nssTrustLevel
-+get_nss_trust (
-+ CK_TRUST ckt
-+)
-+{
-+ nssTrustLevel t;
-+ switch (ckt) {
-+ case CKT_NETSCAPE_UNTRUSTED: t = nssTrustLevel_NotTrusted; break;
-+ case CKT_NETSCAPE_TRUSTED_DELEGATOR: t = nssTrustLevel_TrustedDelegator;
-+ break;
-+ case CKT_NETSCAPE_VALID_DELEGATOR: t = nssTrustLevel_ValidDelegator; break;
-+ case CKT_NETSCAPE_TRUSTED: t = nssTrustLevel_Trusted; break;
-+ case CKT_NETSCAPE_VALID: t = nssTrustLevel_Valid; break;
-+ case CKT_NETSCAPE_MUST_VERIFY:
-+ case CKT_NETSCAPE_TRUST_UNKNOWN:
-+ default:
-+ t = nssTrustLevel_Unknown; break;
-+ }
-+ return t;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssCryptokiTrust_GetAttributes (
-+ nssCryptokiObject *trustObject,
-+ nssSession *sessionOpt,
-+ NSSItem *sha1_hash,
-+ nssTrustLevel *serverAuth,
-+ nssTrustLevel *clientAuth,
-+ nssTrustLevel *codeSigning,
-+ nssTrustLevel *emailProtection
-+)
-+{
-+ PRStatus status;
-+ NSSSlot *slot;
-+ nssSession *session;
-+ CK_BBOOL isToken;
-+ CK_TRUST saTrust, caTrust, epTrust, csTrust;
-+ CK_ATTRIBUTE_PTR attr;
-+ CK_ATTRIBUTE trust_template[6];
-+ CK_ULONG trust_size;
-+
-+ /* Use the trust object to find the trust settings */
-+ NSS_CK_TEMPLATE_START(trust_template, attr, trust_size);
-+ NSS_CK_SET_ATTRIBUTE_VAR(attr, CKA_TOKEN, isToken);
-+ NSS_CK_SET_ATTRIBUTE_VAR(attr, CKA_TRUST_SERVER_AUTH, saTrust);
-+ NSS_CK_SET_ATTRIBUTE_VAR(attr, CKA_TRUST_CLIENT_AUTH, caTrust);
-+ NSS_CK_SET_ATTRIBUTE_VAR(attr, CKA_TRUST_EMAIL_PROTECTION, epTrust);
-+ NSS_CK_SET_ATTRIBUTE_VAR(attr, CKA_TRUST_CODE_SIGNING, csTrust);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_CERT_SHA1_HASH, sha1_hash);
-+ NSS_CK_TEMPLATE_FINISH(trust_template, attr, trust_size);
-+
-+ status = nssToken_GetCachedObjectAttributes(trustObject->token, NULL,
-+ trustObject,
-+ CKO_NETSCAPE_TRUST,
-+ trust_template, trust_size);
-+ if (status != PR_SUCCESS) {
-+ session = sessionOpt ?
-+ sessionOpt :
-+ nssToken_GetDefaultSession(trustObject->token);
-+
-+ slot = nssToken_GetSlot(trustObject->token);
-+ status = nssCKObject_GetAttributes(trustObject->handle,
-+ trust_template, trust_size,
-+ NULL, session, slot);
-+ nssSlot_Destroy(slot);
-+ if (status != PR_SUCCESS) {
-+ return status;
-+ }
-+ }
-+
-+ *serverAuth = get_nss_trust(saTrust);
-+ *clientAuth = get_nss_trust(caTrust);
-+ *emailProtection = get_nss_trust(epTrust);
-+ *codeSigning = get_nss_trust(csTrust);
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssCryptokiCRL_GetAttributes (
-+ nssCryptokiObject *crlObject,
-+ nssSession *sessionOpt,
-+ NSSArena *arenaOpt,
-+ NSSItem *encodingOpt,
-+ NSSItem *subjectOpt,
-+ CK_ULONG* crl_class,
-+ NSSUTF8 **urlOpt,
-+ PRBool *isKRLOpt
-+)
-+{
-+ PRStatus status;
-+ NSSSlot *slot;
-+ nssSession *session;
-+ CK_ATTRIBUTE_PTR attr;
-+ CK_ATTRIBUTE crl_template[7];
-+ CK_ULONG crl_size;
-+ PRUint32 i;
-+
-+ NSS_CK_TEMPLATE_START(crl_template, attr, crl_size);
-+ if (crl_class) {
-+ NSS_CK_SET_ATTRIBUTE_NULL(attr, CKA_CLASS);
-+ }
-+ if (encodingOpt) {
-+ NSS_CK_SET_ATTRIBUTE_NULL(attr, CKA_VALUE);
-+ }
-+ if (urlOpt) {
-+ NSS_CK_SET_ATTRIBUTE_NULL(attr, CKA_NETSCAPE_URL);
-+ }
-+ if (isKRLOpt) {
-+ NSS_CK_SET_ATTRIBUTE_NULL(attr, CKA_NETSCAPE_KRL);
-+ }
-+ if (subjectOpt) {
-+ NSS_CK_SET_ATTRIBUTE_NULL(attr, CKA_SUBJECT);
-+ }
-+ NSS_CK_TEMPLATE_FINISH(crl_template, attr, crl_size);
-+
-+ status = nssToken_GetCachedObjectAttributes(crlObject->token, NULL,
-+ crlObject,
-+ CKO_NETSCAPE_CRL,
-+ crl_template, crl_size);
-+ if (status != PR_SUCCESS) {
-+ session = sessionOpt ?
-+ sessionOpt :
-+ nssToken_GetDefaultSession(crlObject->token);
-+
-+ slot = nssToken_GetSlot(crlObject->token);
-+ status = nssCKObject_GetAttributes(crlObject->handle,
-+ crl_template, crl_size,
-+ arenaOpt, session, slot);
-+ nssSlot_Destroy(slot);
-+ if (status != PR_SUCCESS) {
-+ return status;
-+ }
-+ }
-+
-+ i=0;
-+ if (crl_class) {
-+ NSS_CK_ATTRIBUTE_TO_ULONG(&crl_template[i], *crl_class); i++;
-+ }
-+ if (encodingOpt) {
-+ NSS_CK_ATTRIBUTE_TO_ITEM(&crl_template[i], encodingOpt); i++;
-+ }
-+ if (urlOpt) {
-+ NSS_CK_ATTRIBUTE_TO_UTF8(&crl_template[i], *urlOpt); i++;
-+ }
-+ if (isKRLOpt) {
-+ NSS_CK_ATTRIBUTE_TO_BOOL(&crl_template[i], *isKRLOpt); i++;
-+ }
-+ if (subjectOpt) {
-+ NSS_CK_ATTRIBUTE_TO_ITEM(&crl_template[i], subjectOpt); i++;
-+ }
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssCryptokiPrivateKey_SetCertificate (
-+ nssCryptokiObject *keyObject,
-+ nssSession *sessionOpt,
-+ NSSUTF8 *nickname,
-+ NSSItem *id,
-+ NSSDER *subject
-+)
-+{
-+ CK_RV ckrv;
-+ CK_ATTRIBUTE_PTR attr;
-+ CK_ATTRIBUTE key_template[3];
-+ CK_ULONG key_size;
-+ void *epv = nssToken_GetCryptokiEPV(keyObject->token);
-+ nssSession *session;
-+ NSSToken *token = keyObject->token;
-+ nssSession *defaultSession = nssToken_GetDefaultSession(token);
-+ PRBool createdSession = PR_FALSE;
-+
-+ NSS_CK_TEMPLATE_START(key_template, attr, key_size);
-+ NSS_CK_SET_ATTRIBUTE_UTF8(attr, CKA_LABEL, nickname);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_ID, id);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_SUBJECT, subject);
-+ NSS_CK_TEMPLATE_FINISH(key_template, attr, key_size);
-+
-+ if (sessionOpt) {
-+ if (!nssSession_IsReadWrite(sessionOpt)) {
-+ return PR_FAILURE;
-+ } else {
-+ session = sessionOpt;
-+ }
-+ } else if (nssSession_IsReadWrite(defaultSession)) {
-+ session = defaultSession;
-+ } else {
-+ NSSSlot *slot = nssToken_GetSlot(token);
-+ session = nssSlot_CreateSession(token->slot, NULL, PR_TRUE);
-+ createdSession = PR_TRUE;
-+ nssSlot_Destroy(slot);
-+ }
-+
-+ ckrv = CKAPI(epv)->C_SetAttributeValue(session->handle,
-+ keyObject->handle,
-+ key_template,
-+ key_size);
-+
-+ if (createdSession) {
-+ nssSession_Destroy(session);
-+ }
-+
-+ return (ckrv == CKR_OK) ? PR_SUCCESS : PR_FAILURE;
-+}
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/ckhelper.h 2004-12-13 15:50:16.001157168 +0100
-@@ -0,0 +1,194 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+/*
-+ * ckhelper.h
-+ *
-+ * This file contains some helper utilities for interaction with cryptoki.
-+ */
-+
-+#ifndef CKHELPER_H
-+#define CKHELPER_H
-+
-+#ifdef DEBUG
-+static const char CKHELPER_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#ifndef NSSCKT_H
-+#include "nssckt.h"
-+#endif /* NSSCKT_H */
-+
-+PR_BEGIN_EXTERN_C
-+
-+/* Some globals to keep from constantly redeclaring common cryptoki
-+ * attribute types on the stack.
-+ */
-+
-+/* Boolean values */
-+NSS_EXTERN_DATA const NSSItem g_ck_true;
-+NSS_EXTERN_DATA const NSSItem g_ck_false;
-+
-+/* Object classes */
-+NSS_EXTERN_DATA const NSSItem g_ck_class_cert;
-+NSS_EXTERN_DATA const NSSItem g_ck_class_pubkey;
-+NSS_EXTERN_DATA const NSSItem g_ck_class_privkey;
-+
-+#define NSS_CK_TEMPLATE_START(_template, attr, size) \
-+ attr = _template; \
-+ size = 0;
-+
-+#define NSS_CK_SET_ATTRIBUTE_ITEM(pattr, kind, item) \
-+ (pattr)->type = kind; \
-+ (pattr)->pValue = (CK_VOID_PTR)(item)->data; \
-+ (pattr)->ulValueLen = (CK_ULONG)(item)->size; \
-+ (pattr)++;
-+
-+#define NSS_CK_SET_ATTRIBUTE_UTF8(pattr, kind, utf8) \
-+ (pattr)->type = kind; \
-+ (pattr)->pValue = (CK_VOID_PTR)utf8; \
-+ (pattr)->ulValueLen = (CK_ULONG)nssUTF8_Size(utf8, NULL); \
-+ if ((pattr)->ulValueLen) ((pattr)->ulValueLen)--; \
-+ (pattr)++;
-+
-+#define NSS_CK_SET_ATTRIBUTE_VAR(pattr, kind, var) \
-+ (pattr)->type = kind; \
-+ (pattr)->pValue = (CK_VOID_PTR)&var; \
-+ (pattr)->ulValueLen = (CK_ULONG)sizeof(var); \
-+ (pattr)++;
-+
-+#define NSS_CK_SET_ATTRIBUTE_NULL(pattr, kind) \
-+ (pattr)->type = kind; \
-+ (pattr)->pValue = (CK_VOID_PTR)NULL; \
-+ (pattr)->ulValueLen = 0; \
-+ (pattr)++;
-+
-+#define NSS_CK_TEMPLATE_FINISH(_template, attr, size) \
-+ size = (attr) - (_template); \
-+ PR_ASSERT(size <= sizeof(_template)/sizeof(_template[0]));
-+
-+/* NSS_CK_ATTRIBUTE_TO_ITEM(attrib, item)
-+ *
-+ * Convert a CK_ATTRIBUTE to an NSSItem.
-+ */
-+#define NSS_CK_ATTRIBUTE_TO_ITEM(attrib, item) \
-+ if ((CK_LONG)(attrib)->ulValueLen > 0) { \
-+ (item)->data = (void *)(attrib)->pValue; \
-+ (item)->size = (PRUint32)(attrib)->ulValueLen; \
-+ } else { \
-+ (item)->data = 0; \
-+ (item)->size = 0; \
-+ }
-+
-+#define NSS_CK_ATTRIBUTE_TO_BOOL(attrib, boolvar) \
-+ if ((attrib)->ulValueLen > 0) { \
-+ if (*((CK_BBOOL*)(attrib)->pValue) == CK_TRUE) { \
-+ boolvar = PR_TRUE; \
-+ } else { \
-+ boolvar = PR_FALSE; \
-+ } \
-+ }
-+
-+#define NSS_CK_ATTRIBUTE_TO_ULONG(attrib, ulongvar) \
-+ if ((attrib)->ulValueLen > 0) { \
-+ ulongvar = *((CK_ULONG*)(attrib)->pValue); \
-+ }
-+
-+/* NSS_CK_ATTRIBUTE_TO_UTF8(attrib, str)
-+ *
-+ * Convert a CK_ATTRIBUTE to a string.
-+ */
-+#define NSS_CK_ATTRIBUTE_TO_UTF8(attrib, str) \
-+ str = (NSSUTF8 *)((attrib)->pValue);
-+
-+/* NSS_CK_ITEM_TO_ATTRIBUTE(item, attrib)
-+ *
-+ * Convert an NSSItem to a CK_ATTRIBUTE.
-+ */
-+#define NSS_CK_ITEM_TO_ATTRIBUTE(item, attrib) \
-+ (attrib)->pValue = (CK_VOID_PTR)(item)->data; \
-+ (attrib)->ulValueLen = (CK_ULONG)(item)->size; \
-+
-+/* Get an array of attributes from an object. */
-+NSS_EXTERN PRStatus
-+nssCKObject_GetAttributes
-+(
-+ CK_OBJECT_HANDLE object,
-+ CK_ATTRIBUTE_PTR obj_template,
-+ CK_ULONG count,
-+ NSSArena *arenaOpt,
-+ nssSession *session,
-+ NSSSlot *slot
-+);
-+
-+/* Get a single attribute as an item. */
-+NSS_EXTERN PRStatus
-+nssCKObject_GetAttributeItem
-+(
-+ CK_OBJECT_HANDLE object,
-+ CK_ATTRIBUTE_TYPE attribute,
-+ NSSArena *arenaOpt,
-+ nssSession *session,
-+ NSSSlot *slot,
-+ NSSItem *rvItem
-+);
-+
-+NSS_EXTERN PRBool
-+nssCKObject_IsAttributeTrue
-+(
-+ CK_OBJECT_HANDLE object,
-+ CK_ATTRIBUTE_TYPE attribute,
-+ nssSession *session,
-+ NSSSlot *slot,
-+ PRStatus *rvStatus
-+);
-+
-+NSS_EXTERN PRStatus
-+nssCKObject_SetAttributes
-+(
-+ CK_OBJECT_HANDLE object,
-+ CK_ATTRIBUTE_PTR obj_template,
-+ CK_ULONG count,
-+ nssSession *session,
-+ NSSSlot *slot
-+);
-+
-+NSS_EXTERN PRBool
-+nssCKObject_IsTokenObjectTemplate
-+(
-+ CK_ATTRIBUTE_PTR objectTemplate,
-+ CK_ULONG otsize
-+);
-+
-+PR_END_EXTERN_C
-+
-+#endif /* CKHELPER_H */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/crl.c 2004-12-13 13:06:46.689399224 +0100
-@@ -0,0 +1,1952 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+/*
-+ * Moved from secpkcs7.c
-+ *
-+ * $Id$
-+ */
-+
-+#include "cert.h"
-+#include "certi.h"
-+#include "secder.h"
-+#include "secasn1.h"
-+#include "secoid.h"
-+#include "certdb.h"
-+#include "certxutl.h"
-+#include "prtime.h"
-+#include "secerr.h"
-+#include "pk11func.h"
-+#include "dev.h"
-+#include "dev3hack.h"
-+#include "nssbase.h"
-+#ifdef USE_RWLOCK
-+#include "nssrwlk.h"
-+#endif
-+
-+const SEC_ASN1Template SEC_CERTExtensionTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(CERTCertExtension) },
-+ { SEC_ASN1_OBJECT_ID,
-+ offsetof(CERTCertExtension,id) },
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_BOOLEAN, /* XXX DER_DEFAULT */
-+ offsetof(CERTCertExtension,critical), },
-+ { SEC_ASN1_OCTET_STRING,
-+ offsetof(CERTCertExtension,value) },
-+ { 0, }
-+};
-+
-+static const SEC_ASN1Template SEC_CERTExtensionsTemplate[] = {
-+ { SEC_ASN1_SEQUENCE_OF, 0, SEC_CERTExtensionTemplate}
-+};
-+
-+/*
-+ * XXX Also, these templates, especially the Krl/FORTEZZA ones, need to
-+ * be tested; Lisa did the obvious translation but they still should be
-+ * verified.
-+ */
-+
-+const SEC_ASN1Template CERT_IssuerAndSNTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(CERTIssuerAndSN) },
-+ { SEC_ASN1_SAVE,
-+ offsetof(CERTIssuerAndSN,derIssuer) },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTIssuerAndSN,issuer),
-+ CERT_NameTemplate },
-+ { SEC_ASN1_INTEGER,
-+ offsetof(CERTIssuerAndSN,serialNumber) },
-+ { 0 }
-+};
-+
-+static const SEC_ASN1Template cert_KrlEntryTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(CERTCrlEntry) },
-+ { SEC_ASN1_OCTET_STRING,
-+ offsetof(CERTCrlEntry,serialNumber) },
-+ { SEC_ASN1_UTC_TIME,
-+ offsetof(CERTCrlEntry,revocationDate) },
-+ { 0 }
-+};
-+
-+static const SEC_ASN1Template cert_KrlTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(CERTCrl) },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTCrl,signatureAlg),
-+ SECOID_AlgorithmIDTemplate },
-+ { SEC_ASN1_SAVE,
-+ offsetof(CERTCrl,derName) },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTCrl,name),
-+ CERT_NameTemplate },
-+ { SEC_ASN1_UTC_TIME,
-+ offsetof(CERTCrl,lastUpdate) },
-+ { SEC_ASN1_UTC_TIME,
-+ offsetof(CERTCrl,nextUpdate) },
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_SEQUENCE_OF,
-+ offsetof(CERTCrl,entries),
-+ cert_KrlEntryTemplate },
-+ { 0 }
-+};
-+
-+static const SEC_ASN1Template cert_SignedKrlTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(CERTSignedCrl) },
-+ { SEC_ASN1_SAVE,
-+ offsetof(CERTSignedCrl,signatureWrap.data) },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTSignedCrl,crl),
-+ cert_KrlTemplate },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTSignedCrl,signatureWrap.signatureAlgorithm),
-+ SECOID_AlgorithmIDTemplate },
-+ { SEC_ASN1_BIT_STRING,
-+ offsetof(CERTSignedCrl,signatureWrap.signature) },
-+ { 0 }
-+};
-+
-+static const SEC_ASN1Template cert_CrlKeyTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(CERTCrlKey) },
-+ { SEC_ASN1_INTEGER | SEC_ASN1_OPTIONAL, offsetof(CERTCrlKey,dummy) },
-+ { SEC_ASN1_SKIP },
-+ { SEC_ASN1_ANY, offsetof(CERTCrlKey,derName) },
-+ { SEC_ASN1_SKIP_REST },
-+ { 0 }
-+};
-+
-+static const SEC_ASN1Template cert_CrlEntryTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(CERTCrlEntry) },
-+ { SEC_ASN1_INTEGER,
-+ offsetof(CERTCrlEntry,serialNumber) },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTCrlEntry,revocationDate), CERT_TimeChoiceTemplate },
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_SEQUENCE_OF,
-+ offsetof(CERTCrlEntry, extensions),
-+ SEC_CERTExtensionTemplate},
-+ { 0 }
-+};
-+
-+const SEC_ASN1Template CERT_CrlTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(CERTCrl) },
-+ { SEC_ASN1_INTEGER | SEC_ASN1_OPTIONAL, offsetof (CERTCrl, version) },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTCrl,signatureAlg),
-+ SECOID_AlgorithmIDTemplate },
-+ { SEC_ASN1_SAVE,
-+ offsetof(CERTCrl,derName) },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTCrl,name),
-+ CERT_NameTemplate },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTCrl,lastUpdate), CERT_TimeChoiceTemplate },
-+ { SEC_ASN1_INLINE | SEC_ASN1_OPTIONAL,
-+ offsetof(CERTCrl,nextUpdate), CERT_TimeChoiceTemplate },
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_SEQUENCE_OF,
-+ offsetof(CERTCrl,entries),
-+ cert_CrlEntryTemplate },
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC |
-+ SEC_ASN1_EXPLICIT | 0,
-+ offsetof(CERTCrl,extensions),
-+ SEC_CERTExtensionsTemplate},
-+ { 0 }
-+};
-+
-+const SEC_ASN1Template CERT_CrlTemplateNoEntries[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(CERTCrl) },
-+ { SEC_ASN1_INTEGER | SEC_ASN1_OPTIONAL, offsetof (CERTCrl, version) },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTCrl,signatureAlg),
-+ SECOID_AlgorithmIDTemplate },
-+ { SEC_ASN1_SAVE,
-+ offsetof(CERTCrl,derName) },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTCrl,name),
-+ CERT_NameTemplate },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTCrl,lastUpdate), CERT_TimeChoiceTemplate },
-+ { SEC_ASN1_INLINE | SEC_ASN1_OPTIONAL,
-+ offsetof(CERTCrl,nextUpdate), CERT_TimeChoiceTemplate },
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_SEQUENCE_OF |
-+ SEC_ASN1_SKIP }, /* skip entries */
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC |
-+ SEC_ASN1_EXPLICIT | 0,
-+ offsetof(CERTCrl,extensions),
-+ SEC_CERTExtensionsTemplate },
-+ { 0 }
-+};
-+
-+const SEC_ASN1Template CERT_CrlTemplateEntriesOnly[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(CERTCrl) },
-+ { SEC_ASN1_SKIP | SEC_ASN1_INTEGER | SEC_ASN1_OPTIONAL },
-+ { SEC_ASN1_SKIP },
-+ { SEC_ASN1_SKIP },
-+ { SEC_ASN1_SKIP | SEC_ASN1_INLINE,
-+ offsetof(CERTCrl,lastUpdate), CERT_TimeChoiceTemplate },
-+ { SEC_ASN1_SKIP | SEC_ASN1_INLINE | SEC_ASN1_OPTIONAL,
-+ offsetof(CERTCrl,nextUpdate), CERT_TimeChoiceTemplate },
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_SEQUENCE_OF,
-+ offsetof(CERTCrl,entries),
-+ cert_CrlEntryTemplate }, /* decode entries */
-+ { SEC_ASN1_SKIP_REST },
-+ { 0 }
-+};
-+
-+static const SEC_ASN1Template cert_SignedCrlTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(CERTSignedCrl) },
-+ { SEC_ASN1_SAVE,
-+ offsetof(CERTSignedCrl,signatureWrap.data) },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTSignedCrl,crl),
-+ CERT_CrlTemplate },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTSignedCrl,signatureWrap.signatureAlgorithm),
-+ SECOID_AlgorithmIDTemplate },
-+ { SEC_ASN1_BIT_STRING,
-+ offsetof(CERTSignedCrl,signatureWrap.signature) },
-+ { 0 }
-+};
-+
-+static const SEC_ASN1Template cert_SignedCrlTemplateNoEntries[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(CERTSignedCrl) },
-+ { SEC_ASN1_SAVE,
-+ offsetof(CERTSignedCrl,signatureWrap.data) },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTSignedCrl,crl),
-+ CERT_CrlTemplateNoEntries },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTSignedCrl,signatureWrap.signatureAlgorithm),
-+ SECOID_AlgorithmIDTemplate },
-+ { SEC_ASN1_BIT_STRING,
-+ offsetof(CERTSignedCrl,signatureWrap.signature) },
-+ { 0 }
-+};
-+
-+const SEC_ASN1Template CERT_SetOfSignedCrlTemplate[] = {
-+ { SEC_ASN1_SET_OF, 0, cert_SignedCrlTemplate },
-+};
-+
-+/* Check the version of the CRL. If there is a critical extension in the crl
-+ or crl entry, then the version must be v2. Otherwise, it should be v1. If
-+ the crl contains critical extension(s), then we must recognized the extension's
-+ OID.
-+ */
-+SECStatus cert_check_crl_version (CERTCrl *crl)
-+{
-+ CERTCrlEntry **entries;
-+ CERTCrlEntry *entry;
-+ PRBool hasCriticalExten = PR_FALSE;
-+ SECStatus rv = SECSuccess;
-+ int version;
-+
-+ /* CRL version is defaulted to v1 */
-+ version = SEC_CRL_VERSION_1;
-+ if (crl->version.data != 0)
-+ version = (int)DER_GetUInteger (&crl->version);
-+
-+ if (version > SEC_CRL_VERSION_2) {
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ return (SECFailure);
-+ }
-+
-+ /* Check the crl extensions for a critial extension. If one is found,
-+ and the version is not v2, then we are done.
-+ */
-+ if (crl->extensions) {
-+ hasCriticalExten = cert_HasCriticalExtension (crl->extensions);
-+ if (hasCriticalExten) {
-+ if (version != SEC_CRL_VERSION_2)
-+ return (SECFailure);
-+ /* make sure that there is no unknown critical extension */
-+ if (cert_HasUnknownCriticalExten (crl->extensions) == PR_TRUE) {
-+ PORT_SetError (SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION);
-+ return (SECFailure);
-+ }
-+ }
-+ }
-+
-+
-+ if (crl->entries == NULL) {
-+ return (SECSuccess);
-+ }
-+ /* Look in the crl entry extensions. If there is a critical extension,
-+ then the crl version must be v2; otherwise, it should be v1.
-+ */
-+ entries = crl->entries;
-+ while (*entries) {
-+ entry = *entries;
-+ if (entry->extensions) {
-+ /* If there is a critical extension in the entries, then the
-+ CRL must be of version 2. If we already saw a critical extension,
-+ there is no need to check the version again.
-+ */
-+ if (hasCriticalExten == PR_FALSE) {
-+ hasCriticalExten = cert_HasCriticalExtension (entry->extensions);
-+ if (hasCriticalExten && version != SEC_CRL_VERSION_2) {
-+ rv = SECFailure;
-+ break;
-+ }
-+ }
-+
-+ /* For each entry, make sure that it does not contain an unknown
-+ critical extension. If it does, we must reject the CRL since
-+ we don't know how to process the extension.
-+ */
-+ if (cert_HasUnknownCriticalExten (entry->extensions) == PR_TRUE) {
-+ PORT_SetError (SEC_ERROR_UNKNOWN_CRITICAL_EXTENSION);
-+ rv = SECFailure;
-+ break;
-+ }
-+ }
-+ ++entries;
-+ }
-+ if (rv == SECFailure)
-+ return (rv);
-+
-+ return (SECSuccess);
-+}
-+
-+/*
-+ * Generate a database key, based on the issuer name from a
-+ * DER crl.
-+ */
-+SECStatus
-+CERT_KeyFromDERCrl(PRArenaPool *arena, SECItem *derCrl, SECItem *key)
-+{
-+ SECStatus rv;
-+ CERTSignedData sd;
-+ CERTCrlKey crlkey;
-+
-+ PORT_Memset (&sd, 0, sizeof (sd));
-+ rv = SEC_ASN1DecodeItem (arena, &sd, CERT_SignedDataTemplate, derCrl);
-+ if (rv != SECSuccess) {
-+ return rv;
-+ }
-+
-+ PORT_Memset (&crlkey, 0, sizeof (crlkey));
-+ rv = SEC_ASN1DecodeItem(arena, &crlkey, cert_CrlKeyTemplate, &sd.data);
-+ if (rv != SECSuccess) {
-+ return rv;
-+ }
-+
-+ key->len = crlkey.derName.len;
-+ key->data = crlkey.derName.data;
-+
-+ return(SECSuccess);
-+}
-+
-+#define GetOpaqueCRLFields(x) ((OpaqueCRLFields*)x->opaque)
-+
-+/*
-+PRBool CERT_CRLIsInvalid(CERTSignedCrl* crl)
-+{
-+ OpaqueCRLFields* extended = NULL;
-+
-+ if (crl && (extended = (OpaqueCRLFields*) crl->opaque)) {
-+ return extended->bad;
-+ }
-+ return PR_TRUE;
-+}
-+*/
-+
-+SECStatus CERT_CompleteCRLDecodeEntries(CERTSignedCrl* crl)
-+{
-+ SECStatus rv = SECSuccess;
-+ SECItem* crldata = NULL;
-+ OpaqueCRLFields* extended = NULL;
-+
-+ if ( (!crl) ||
-+ (!(extended = (OpaqueCRLFields*) crl->opaque)) ) {
-+ rv = SECFailure;
-+ } else {
-+ if (PR_FALSE == extended->partial) {
-+ /* the CRL has already been fully decoded */
-+ return SECSuccess;
-+ }
-+ if (PR_TRUE == extended->badEntries) {
-+ /* the entries decoding already failed */
-+ return SECFailure;
-+ }
-+ crldata = &crl->signatureWrap.data;
-+ if (!crldata) {
-+ rv = SECFailure;
-+ }
-+ }
-+
-+ if (SECSuccess == rv) {
-+ rv = SEC_QuickDERDecodeItem(crl->arena,
-+ &crl->crl,
-+ CERT_CrlTemplateEntriesOnly,
-+ crldata);
-+ if (SECSuccess == rv) {
-+ extended->partial = PR_FALSE; /* successful decode, avoid
-+ decoding again */
-+ } else {
-+ extended->bad = PR_TRUE;
-+ extended->badEntries = PR_TRUE;
-+ /* cache the decoding failure. If it fails the first time,
-+ it will fail again, which will grow the arena and leak
-+ memory, so we want to avoid it */
-+ }
-+ }
-+ return rv;
-+}
-+
-+/*
-+ * take a DER CRL or KRL and decode it into a CRL structure
-+ * allow reusing the input DER without making a copy
-+ */
-+CERTSignedCrl *
-+CERT_DecodeDERCrlWithFlags(PRArenaPool *narena, SECItem *derSignedCrl,
-+ int type, PRInt32 options)
-+{
-+ PRArenaPool *arena;
-+ CERTSignedCrl *crl;
-+ SECStatus rv;
-+ OpaqueCRLFields* extended = NULL;
-+ const SEC_ASN1Template* crlTemplate = cert_SignedCrlTemplate;
-+
-+ /* make a new arena */
-+ if (narena == NULL) {
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ if ( !arena ) {
-+ return NULL;
-+ }
-+ } else {
-+ arena = narena;
-+ }
-+
-+ /* allocate the CRL structure */
-+ crl = (CERTSignedCrl *)PORT_ArenaZAlloc(arena, sizeof(CERTSignedCrl));
-+ if ( !crl ) {
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ goto loser;
-+ }
-+
-+ crl->arena = arena;
-+
-+ /* allocate opaque fields */
-+ crl->opaque = (void*)PORT_ArenaZAlloc(arena, sizeof(OpaqueCRLFields));
-+ if ( !crl->opaque ) {
-+ goto loser;
-+ }
-+ extended = (OpaqueCRLFields*) crl->opaque;
-+
-+ if (options & CRL_DECODE_DONT_COPY_DER) {
-+ crl->derCrl = derSignedCrl; /* DER is not copied . The application
-+ must keep derSignedCrl until it
-+ destroys the CRL */
-+ } else {
-+ crl->derCrl = (SECItem *)PORT_ArenaZAlloc(arena,sizeof(SECItem));
-+ if (crl->derCrl == NULL) {
-+ goto loser;
-+ }
-+ rv = SECITEM_CopyItem(arena, crl->derCrl, derSignedCrl);
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+ }
-+
-+ /* Save the arena in the inner crl for CRL extensions support */
-+ crl->crl.arena = arena;
-+ if (options & CRL_DECODE_SKIP_ENTRIES) {
-+ crlTemplate = cert_SignedCrlTemplateNoEntries;
-+ extended->partial = PR_TRUE;
-+ }
-+
-+ /* decode the CRL info */
-+ switch (type) {
-+ case SEC_CRL_TYPE:
-+ rv = SEC_QuickDERDecodeItem(arena, crl, crlTemplate, crl->derCrl);
-+ if (rv != SECSuccess) {
-+ extended->badDER = PR_TRUE;
-+ break;
-+ }
-+ /* check for critical extentions */
-+ rv = cert_check_crl_version (&crl->crl);
-+ if (rv != SECSuccess) {
-+ extended->badExtensions = PR_TRUE;
-+ }
-+ break;
-+
-+ case SEC_KRL_TYPE:
-+ rv = SEC_QuickDERDecodeItem
-+ (arena, crl, cert_SignedKrlTemplate, derSignedCrl);
-+ break;
-+ default:
-+ rv = SECFailure;
-+ break;
-+ }
-+
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+
-+ crl->referenceCount = 1;
-+
-+ return(crl);
-+
-+loser:
-+ if (options & CRL_DECODE_KEEP_BAD_CRL) {
-+ extended->bad = PR_TRUE;
-+ crl->referenceCount = 1;
-+ return(crl);
-+ }
-+
-+ if ((narena == NULL) && arena ) {
-+ PORT_FreeArena(arena, PR_FALSE);
-+ }
-+
-+ return(0);
-+}
-+
-+/*
-+ * take a DER CRL or KRL and decode it into a CRL structure
-+ */
-+CERTSignedCrl *
-+CERT_DecodeDERCrl(PRArenaPool *narena, SECItem *derSignedCrl, int type)
-+{
-+ return CERT_DecodeDERCrlWithFlags(narena, derSignedCrl, type, CRL_DECODE_DEFAULT_OPTIONS);
-+}
-+
-+/*
-+ * Lookup a CRL in the databases. We mirror the same fast caching data base
-+ * caching stuff used by certificates....?
-+ * return values :
-+ *
-+ * SECSuccess means we got a valid DER CRL (passed in "decoded"), or no CRL at all
-+ *
-+ * SECFailure means we got a fatal error - most likely, we found a CRL,
-+ * and it failed decoding, or there was an out of memory error. Do NOT ignore
-+ * it and specifically do NOT treat it the same as having no CRL, as this
-+ * can compromise security !!! Ideally, you should treat this case as if you
-+ * received a "catch-all" CRL where all certs you were looking up are
-+ * considered to be revoked
-+ */
-+static SECStatus
-+SEC_FindCrlByKeyOnSlot(PK11SlotInfo *slot, SECItem *crlKey, int type,
-+ CERTSignedCrl** decoded, PRInt32 decodeoptions)
-+{
-+ SECStatus rv = SECSuccess;
-+ CERTSignedCrl *crl = NULL;
-+ SECItem *derCrl = NULL;
-+ CK_OBJECT_HANDLE crlHandle = 0;
-+ char *url = NULL;
-+ int nsserror;
-+
-+ PORT_Assert(decoded);
-+ if (!decoded) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+
-+ /* XXX it would be really useful to be able to fetch the CRL directly into an
-+ arena. This would avoid a copy later on in the decode step */
-+ PORT_SetError(0);
-+ derCrl = PK11_FindCrlByName(&slot, &crlHandle, crlKey, type, &url);
-+ if (derCrl == NULL) {
-+ /* if we had a problem other than the CRL just didn't exist, return
-+ * a failure to the upper level */
-+ nsserror = PORT_GetError();
-+ if ((nsserror != 0) && (nsserror != SEC_ERROR_CRL_NOT_FOUND)) {
-+ rv = SECFailure;
-+ }
-+ goto loser;
-+ }
-+ PORT_Assert(crlHandle != CK_INVALID_HANDLE);
-+ /* PK11_FindCrlByName obtained a slot reference. */
-+
-+ crl = CERT_DecodeDERCrlWithFlags(NULL, derCrl, type, decodeoptions);
-+ if (crl) {
-+ crl->slot = slot;
-+ slot = NULL; /* adopt it */
-+ crl->pkcs11ID = crlHandle;
-+ if (url) {
-+ crl->url = PORT_ArenaStrdup(crl->arena,url);
-+ }
-+ } else {
-+ rv = SECFailure;
-+ }
-+
-+ if (url) {
-+ PORT_Free(url);
-+ }
-+
-+ if (slot) {
-+ PK11_FreeSlot(slot);
-+ }
-+
-+loser:
-+ if (derCrl) {
-+ /* destroy the DER, unless a decoded CRL was returned with DER
-+ allocated on the heap. This is solely for cache purposes */
-+ if (crl && (decodeoptions & CRL_DECODE_DONT_COPY_DER)) {
-+ /* mark the DER as having come from the heap instead of the
-+ arena, so it can be destroyed */
-+ GetOpaqueCRLFields(crl)->heapDER = PR_TRUE;
-+ } else {
-+ SECITEM_FreeItem(derCrl, PR_TRUE);
-+ }
-+ }
-+
-+ *decoded = crl;
-+
-+ return rv;
-+}
-+
-+SECStatus SEC_DestroyCrl(CERTSignedCrl *crl);
-+
-+CERTSignedCrl *
-+crl_storeCRL (PK11SlotInfo *slot,char *url,
-+ CERTSignedCrl *newCrl, SECItem *derCrl, int type)
-+{
-+ CERTSignedCrl *oldCrl = NULL, *crl = NULL;
-+ PRBool deleteOldCrl = PR_FALSE;
-+ CK_OBJECT_HANDLE crlHandle = CK_INVALID_HANDLE;
-+
-+ PORT_Assert(newCrl);
-+ PORT_Assert(derCrl);
-+
-+ /* we can't use the cache here because we must look in the same
-+ token */
-+ SEC_FindCrlByKeyOnSlot(slot, &newCrl->crl.derName, type,
-+ &oldCrl, CRL_DECODE_SKIP_ENTRIES);
-+
-+ /* if there is an old crl on the token, make sure the one we are
-+ installing is newer. If not, exit out, otherwise delete the
-+ old crl.
-+ */
-+ if (oldCrl != NULL) {
-+ /* if it's already there, quietly continue */
-+ if (SECITEM_CompareItem(newCrl->derCrl, oldCrl->derCrl)
-+ == SECEqual) {
-+ crl = newCrl;
-+ crl->slot = PK11_ReferenceSlot(slot);
-+ crl->pkcs11ID = oldCrl->pkcs11ID;
-+ goto done;
-+ }
-+ if (!SEC_CrlIsNewer(&newCrl->crl,&oldCrl->crl)) {
-+
-+ if (type == SEC_CRL_TYPE) {
-+ PORT_SetError(SEC_ERROR_OLD_CRL);
-+ } else {
-+ PORT_SetError(SEC_ERROR_OLD_KRL);
-+ }
-+
-+ goto done;
-+ }
-+
-+ if ((SECITEM_CompareItem(&newCrl->crl.derName,
-+ &oldCrl->crl.derName) != SECEqual) &&
-+ (type == SEC_KRL_TYPE) ) {
-+
-+ PORT_SetError(SEC_ERROR_CKL_CONFLICT);
-+ goto done;
-+ }
-+
-+ /* if we have a url in the database, use that one */
-+ if (oldCrl->url) {
-+ url = oldCrl->url;
-+ }
-+
-+ /* really destroy this crl */
-+ /* first drum it out of the permanment Data base */
-+ deleteOldCrl = PR_TRUE;
-+ }
-+
-+ /* invalidate CRL cache for this issuer */
-+ CERT_CRLCacheRefreshIssuer(NULL, &newCrl->crl.derName);
-+ /* Write the new entry into the data base */
-+ crlHandle = PK11_PutCrl(slot, derCrl, &newCrl->crl.derName, url, type);
-+ if (crlHandle != CK_INVALID_HANDLE) {
-+ crl = newCrl;
-+ crl->slot = PK11_ReferenceSlot(slot);
-+ crl->pkcs11ID = crlHandle;
-+ if (url) {
-+ crl->url = PORT_ArenaStrdup(crl->arena,url);
-+ }
-+ }
-+
-+done:
-+ if (oldCrl) {
-+ if (deleteOldCrl && crlHandle != CK_INVALID_HANDLE) {
-+ SEC_DeletePermCRL(oldCrl);
-+ }
-+ SEC_DestroyCrl(oldCrl);
-+ }
-+
-+ return crl;
-+}
-+
-+/*
-+ *
-+ * create a new CRL from DER material.
-+ *
-+ * The signature on this CRL must be checked before you
-+ * load it. ???
-+ */
-+CERTSignedCrl *
-+SEC_NewCrl(CERTCertDBHandle *handle, char *url, SECItem *derCrl, int type)
-+{
-+ CERTSignedCrl* retCrl = NULL;
-+ PK11SlotInfo* slot = PK11_GetInternalKeySlot();
-+ retCrl = PK11_ImportCRL(slot, derCrl, url, type, NULL,
-+ CRL_IMPORT_BYPASS_CHECKS, NULL, CRL_DECODE_DEFAULT_OPTIONS);
-+ PK11_FreeSlot(slot);
-+
-+ return retCrl;
-+}
-+
-+CERTSignedCrl *
-+SEC_FindCrlByDERCert(CERTCertDBHandle *handle, SECItem *derCrl, int type)
-+{
-+ PRArenaPool *arena;
-+ SECItem crlKey;
-+ SECStatus rv;
-+ CERTSignedCrl *crl = NULL;
-+
-+ /* create a scratch arena */
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ if ( arena == NULL ) {
-+ return(NULL);
-+ }
-+
-+ /* extract the database key from the cert */
-+ rv = CERT_KeyFromDERCrl(arena, derCrl, &crlKey);
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+
-+ /* find the crl */
-+ crl = SEC_FindCrlByName(handle, &crlKey, type);
-+
-+loser:
-+ PORT_FreeArena(arena, PR_FALSE);
-+ return(crl);
-+}
-+
-+CERTSignedCrl* SEC_DupCrl(CERTSignedCrl* acrl)
-+{
-+ if (acrl)
-+ {
-+ PR_AtomicIncrement(&acrl->referenceCount);
-+ return acrl;
-+ }
-+ return NULL;
-+}
-+
-+SECStatus
-+SEC_DestroyCrl(CERTSignedCrl *crl)
-+{
-+ if (crl) {
-+ if (PR_AtomicDecrement(&crl->referenceCount) < 1) {
-+ if (crl->slot) {
-+ PK11_FreeSlot(crl->slot);
-+ }
-+ if (PR_TRUE == GetOpaqueCRLFields(crl)->heapDER) {
-+ SECITEM_FreeItem(crl->derCrl, PR_TRUE);
-+ }
-+ PORT_FreeArena(crl->arena, PR_FALSE);
-+ }
-+ }
-+ return SECSuccess;
-+}
-+
-+SECStatus
-+SEC_LookupCrls(CERTCertDBHandle *handle, CERTCrlHeadNode **nodes, int type)
-+{
-+ CERTCrlHeadNode *head;
-+ PRArenaPool *arena = NULL;
-+ SECStatus rv;
-+
-+ *nodes = NULL;
-+
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ if ( arena == NULL ) {
-+ return SECFailure;
-+ }
-+
-+ /* build a head structure */
-+ head = (CERTCrlHeadNode *)PORT_ArenaAlloc(arena, sizeof(CERTCrlHeadNode));
-+ head->arena = arena;
-+ head->first = NULL;
-+ head->last = NULL;
-+ head->dbhandle = handle;
-+
-+ /* Look up the proper crl types */
-+ *nodes = head;
-+
-+ rv = PK11_LookupCrls(head, type, NULL);
-+
-+ if (rv != SECSuccess) {
-+ if ( arena ) {
-+ PORT_FreeArena(arena, PR_FALSE);
-+ *nodes = NULL;
-+ }
-+ }
-+
-+ return rv;
-+}
-+
-+/* These functions simply return the address of the above-declared templates.
-+** This is necessary for Windows DLLs. Sigh.
-+*/
-+SEC_ASN1_CHOOSER_IMPLEMENT(CERT_IssuerAndSNTemplate)
-+SEC_ASN1_CHOOSER_IMPLEMENT(CERT_CrlTemplate)
-+SEC_ASN1_CHOOSER_IMPLEMENT(CERT_SetOfSignedCrlTemplate)
-+
-+/*
-+** Pre-allocator hash allocator ops.
-+*/
-+static void * PR_CALLBACK
-+PreAllocTable(void *pool, PRSize size)
-+{
-+ PreAllocator* alloc = (PreAllocator*)pool;
-+ PR_ASSERT(alloc);
-+ if (!alloc)
-+ {
-+ /* no allocator, or buffer full */
-+ return NULL;
-+ }
-+ if (size > (alloc->len - alloc->used))
-+ {
-+ alloc->extra += size;
-+ return PORT_ArenaAlloc(alloc->arena, size);
-+ }
-+ alloc->used += size;
-+ return (char*) alloc->data + alloc->used - size;
-+}
-+
-+static void PR_CALLBACK
-+PreFreeTable(void *pool, void *item)
-+{
-+}
-+
-+static PLHashEntry * PR_CALLBACK
-+PreAllocEntry(void *pool, const void *key)
-+{
-+ return PreAllocTable(pool, sizeof(PLHashEntry));
-+}
-+
-+static void PR_CALLBACK
-+PreFreeEntry(void *pool, PLHashEntry *he, PRUintn flag)
-+{
-+}
-+
-+static PLHashAllocOps preAllocOps = {
-+ PreAllocTable, PreFreeTable,
-+ PreAllocEntry, PreFreeEntry
-+};
-+
-+void PreAllocator_Destroy(PreAllocator* PreAllocator)
-+{
-+ if (!PreAllocator)
-+ {
-+ return;
-+ }
-+ if (PreAllocator->arena)
-+ {
-+ PORT_FreeArena(PreAllocator->arena, PR_TRUE);
-+ }
-+ if (PreAllocator->data)
-+ {
-+ PORT_Free(PreAllocator->data);
-+ }
-+ PORT_Free(PreAllocator);
-+}
-+
-+PreAllocator* PreAllocator_Create(PRSize size)
-+{
-+ PreAllocator prebuffer;
-+ PreAllocator* prepointer = NULL;
-+ memset(&prebuffer, 0, sizeof(PreAllocator));
-+ prebuffer.len = size;
-+ prebuffer.arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ PR_ASSERT(prebuffer.arena);
-+ if (!prebuffer.arena) {
-+ PreAllocator_Destroy(&prebuffer);
-+ return NULL;
-+ }
-+ if (prebuffer.len) {
-+ prebuffer.data = PR_Malloc(prebuffer.len);
-+ if (!prebuffer.data) {
-+ PreAllocator_Destroy(&prebuffer);
-+ return NULL;
-+ }
-+ } else {
-+ prebuffer.data = NULL;
-+ }
-+ prepointer = (PreAllocator*)PR_Malloc(sizeof(PreAllocator));
-+ if (!prepointer) {
-+ PreAllocator_Destroy(&prebuffer);
-+ return NULL;
-+ }
-+ *prepointer = prebuffer;
-+ return prepointer;
-+}
-+
-+static CRLCache crlcache = { NULL, NULL };
-+
-+static PRBool crlcache_initialized = PR_FALSE;
-+
-+/* this needs to be called at NSS initialization time */
-+
-+SECStatus InitCRLCache(void)
-+{
-+ if (PR_FALSE == crlcache_initialized)
-+ {
-+ PR_ASSERT(NULL == crlcache.lock);
-+ crlcache.lock = PR_NewLock();
-+ if (!crlcache.lock)
-+ {
-+ return SECFailure;
-+ }
-+ PR_ASSERT(NULL == crlcache.issuers);
-+ crlcache.issuers = PL_NewHashTable(0, SECITEM_Hash, SECITEM_HashCompare,
-+ PL_CompareValues, NULL, NULL);
-+ if (!crlcache.issuers)
-+ {
-+ PR_DestroyLock(crlcache.lock);
-+ crlcache.lock = NULL;
-+ return SECFailure;
-+ }
-+ crlcache_initialized = PR_TRUE;
-+ return SECSuccess;
-+ }
-+ else
-+ {
-+ PR_ASSERT(crlcache.lock);
-+ PR_ASSERT(crlcache.issuers);
-+ if ( (NULL == crlcache.lock) || (NULL == crlcache.issuers) )
-+ {
-+ return SECFailure;
-+ }
-+ else
-+ {
-+ return SECSuccess;
-+ }
-+ }
-+}
-+
-+SECStatus DPCache_Destroy(CRLDPCache* cache)
-+{
-+ PRUint32 i = 0;
-+ PR_ASSERT(cache);
-+ if (!cache) {
-+ return SECFailure;
-+ }
-+ if (cache->lock)
-+ {
-+#ifdef USE_RWLOCK
-+ NSSRWLock_Destroy(cache->lock);
-+#else
-+ PR_DestroyLock(cache->lock);
-+#endif
-+ }
-+ /* destroy all our CRL objects */
-+ for (i=0;i<cache->ncrls;i++)
-+ {
-+ SEC_DestroyCrl(cache->crls[i]);
-+ }
-+ /* free the array of CRLs */
-+ if (cache->crls)
-+ {
-+ PR_Free(cache->crls);
-+ }
-+ /* destroy the hash table */
-+ if (cache->entries)
-+ {
-+ PL_HashTableDestroy(cache->entries);
-+ }
-+ /* free the pre buffer */
-+ if (cache->prebuffer)
-+ {
-+ PreAllocator_Destroy(cache->prebuffer);
-+ }
-+ /* destroy the cert */
-+ if (cache->issuer)
-+ {
-+ CERT_DestroyCertificate(cache->issuer);
-+ }
-+ /* free the subject */
-+ if (cache->subject)
-+ {
-+ SECITEM_FreeItem(cache->subject, PR_TRUE);
-+ }
-+ /* free the distribution points */
-+ if (cache->distributionPoint)
-+ {
-+ SECITEM_FreeItem(cache->distributionPoint, PR_TRUE);
-+ }
-+ return SECSuccess;
-+}
-+
-+SECStatus IssuerCache_Destroy(CRLIssuerCache* cache)
-+{
-+ PORT_Assert(cache);
-+ if (!cache)
-+ {
-+ return SECFailure;
-+ }
-+#if 0
-+ /* XCRL */
-+ if (cache->lock)
-+ {
-+ NSSRWLock_Destroy(cache->lock);
-+ }
-+ if (cache->issuer)
-+ {
-+ CERT_DestroyCertificate(cache->issuer);
-+ }
-+#endif
-+ /* free the subject */
-+ if (cache->subject)
-+ {
-+ SECITEM_FreeItem(cache->subject, PR_TRUE);
-+ }
-+ DPCache_Destroy(&cache->dp);
-+ PR_Free(cache);
-+ return SECSuccess;
-+}
-+
-+PRIntn PR_CALLBACK FreeIssuer(PLHashEntry *he, PRIntn i, void *arg)
-+{
-+ CRLIssuerCache* issuer = NULL;
-+ PR_ASSERT(he);
-+ if (!he) {
-+ return HT_ENUMERATE_NEXT;
-+ }
-+ issuer = (CRLIssuerCache*) he->value;
-+ PR_ASSERT(issuer);
-+ if (issuer) {
-+ IssuerCache_Destroy(issuer);
-+ }
-+ return HT_ENUMERATE_NEXT;
-+}
-+
-+SECStatus ShutdownCRLCache(void)
-+{
-+ if (!crlcache.lock || !crlcache.issuers)
-+ {
-+ return SECFailure;
-+ }
-+ /* empty the cache */
-+ PL_HashTableEnumerateEntries(crlcache.issuers, &FreeIssuer, NULL);
-+ PL_HashTableDestroy(crlcache.issuers);
-+ crlcache.issuers = NULL;
-+ PR_DestroyLock(crlcache.lock);
-+ crlcache.lock = NULL;
-+ crlcache_initialized = PR_FALSE;
-+ return SECSuccess;
-+}
-+
-+SECStatus DPCache_AddCRL(CRLDPCache* cache, CERTSignedCrl* crl)
-+{
-+ CERTSignedCrl** newcrls = NULL;
-+ PORT_Assert(cache);
-+ PORT_Assert(crl);
-+ if (!cache || !crl) {
-+ return SECFailure;
-+ }
-+
-+ newcrls = (CERTSignedCrl**)PORT_Realloc(cache->crls,
-+ (cache->ncrls+1)*sizeof(CERTSignedCrl*));
-+ if (!newcrls) {
-+ return SECFailure;
-+ }
-+ cache->crls = newcrls;
-+ cache->ncrls++;
-+ cache->crls[cache->ncrls-1] = crl;
-+ return SECSuccess;
-+}
-+
-+SECStatus DPCache_Cleanup(CRLDPCache* cache)
-+{
-+ /* remove deleted CRLs from memory */
-+ PRUint32 i = 0;
-+ PORT_Assert(cache);
-+ if (!cache) {
-+ return SECFailure;
-+ }
-+ for (i=0;i<cache->ncrls;i++) {
-+ CERTSignedCrl* acrl = cache->crls[i];
-+ if (acrl && (PR_TRUE == GetOpaqueCRLFields(acrl)->deleted)) {
-+ cache->crls[i] = cache->crls[cache->ncrls-1];
-+ cache->crls[cache->ncrls-1] = NULL;
-+ cache->ncrls--;
-+ }
-+ }
-+ return SECSuccess;
-+}
-+
-+PRBool CRLStillExists(CERTSignedCrl* crl)
-+{
-+ NSSItem newsubject;
-+ SECItem subject;
-+ CK_ULONG crl_class;
-+ PRStatus status;
-+ PK11SlotInfo* slot = NULL;
-+ nssCryptokiObject instance;
-+ NSSArena* arena;
-+ PRBool xstatus = PR_TRUE;
-+ SECItem* oldSubject = NULL;
-+
-+ PORT_Assert(crl);
-+ if (!crl) {
-+ return PR_FALSE;
-+ }
-+ slot = crl->slot;
-+ PORT_Assert(slot);
-+ if (!slot) {
-+ return PR_FALSE;
-+ }
-+ oldSubject = &crl->crl.derName;
-+ PR_ASSERT(oldSubject);
-+ if (!oldSubject) {
-+ return PR_FALSE;
-+ }
-+
-+ /* query subject and type attributes in order to determine if the
-+ object has been deleted */
-+
-+ /* first, make an nssCryptokiObject */
-+ instance.handle = crl->pkcs11ID;
-+ PORT_Assert(instance.handle);
-+ if (!instance.handle) {
-+ return PR_FALSE;
-+ }
-+ instance.token = PK11Slot_GetNSSToken(slot);
-+ PORT_Assert(instance.token);
-+ if (!instance.token) {
-+ return PR_FALSE;
-+ }
-+ instance.isTokenObject = PR_TRUE;
-+ instance.label = NULL;
-+
-+ arena = NSSArena_Create();
-+ PORT_Assert(arena);
-+ if (!arena) {
-+ return PR_FALSE;
-+ }
-+
-+ status = nssCryptokiCRL_GetAttributes(&instance,
-+ NULL, /* XXX sessionOpt */
-+ arena,
-+ NULL,
-+ &newsubject, /* subject */
-+ &crl_class, /* class */
-+ NULL,
-+ NULL);
-+ if (PR_SUCCESS == status) {
-+ subject.data = newsubject.data;
-+ subject.len = newsubject.size;
-+ if (SECITEM_CompareItem(oldSubject, &subject) != SECEqual) {
-+ xstatus = PR_FALSE;
-+ }
-+ if (CKO_NETSCAPE_CRL != crl_class) {
-+ xstatus = PR_FALSE;
-+ }
-+ } else {
-+ xstatus = PR_FALSE;
-+ }
-+ NSSArena_Destroy(arena);
-+ return xstatus;
-+}
-+
-+SECStatus DPCache_Refresh(CRLDPCache* cache, CERTSignedCrl* crlobject,
-+ PRTime vfdate, void* wincx)
-+{
-+ SECStatus rv = SECSuccess;
-+ /* Check if it is an invalid CRL
-+ if we got a bad CRL, we want to cache it in order to avoid
-+ subsequent fetches of this same identical bad CRL. We set
-+ the cache to the invalid state to ensure that all certs
-+ on this DP are considered revoked from now on. The cache
-+ object will remain in this state until the bad CRL object
-+ is removed from the token it was fetched from. If the cause
-+ of the failure is that we didn't have the issuer cert to
-+ verify the signature, this state can be cleared when
-+ the issuer certificate becomes available if that causes the
-+ signature to verify */
-+
-+ if (PR_TRUE == GetOpaqueCRLFields(crlobject)->bad) {
-+ PORT_SetError(SEC_ERROR_BAD_DER);
-+ cache->invalid |= CRL_CACHE_INVALID_CRLS;
-+ return SECSuccess;
-+ } else {
-+ SECStatus signstatus = SECFailure;
-+ if (cache->issuer) {
-+ signstatus = CERT_VerifySignedData(&crlobject->signatureWrap,
-+ cache->issuer, vfdate, wincx);
-+ }
-+ if (SECSuccess != signstatus) {
-+ if (!cache->issuer) {
-+ /* we tried to verify without an issuer cert . This is
-+ because this CRL came through a call to SEC_FindCrlByName.
-+ So we don't cache this verification failure. We'll try
-+ to verify the CRL again when a certificate from that issuer
-+ becomes available */
-+ GetOpaqueCRLFields(crlobject)->unverified = PR_TRUE;
-+ } else {
-+ GetOpaqueCRLFields(crlobject)->unverified = PR_FALSE;
-+ }
-+ PORT_SetError(SEC_ERROR_CRL_BAD_SIGNATURE);
-+ cache->invalid |= CRL_CACHE_INVALID_CRLS;
-+ return SECSuccess;
-+ } else {
-+ GetOpaqueCRLFields(crlobject)->unverified = PR_FALSE;
-+ }
-+ }
-+
-+ /* complete the entry decoding */
-+ rv = CERT_CompleteCRLDecodeEntries(crlobject);
-+ if (SECSuccess == rv) {
-+ /* XCRL : if this is a delta, add it to the hash table */
-+ /* for now, always build the hash table from the full CRL */
-+ CERTCrlEntry** crlEntry = NULL;
-+ PRUint32 numEntries = 0;
-+ if (cache->entries) {
-+ /* we already have a hash table, destroy it */
-+ PL_HashTableDestroy(cache->entries);
-+ cache->entries = NULL;
-+ }
-+ /* also destroy the PreAllocator */
-+ if (cache->prebuffer)
-+ {
-+ PreAllocator_Destroy(cache->prebuffer);
-+ cache->prebuffer = NULL;
-+ }
-+ /* count CRL entries so we can pre-allocate space for hash table entries */
-+ for (crlEntry = crlobject->crl.entries; crlEntry && *crlEntry; crlEntry++) {
-+ numEntries++;
-+ }
-+ cache->prebuffer = PreAllocator_Create(numEntries*sizeof(PLHashEntry));
-+ PR_ASSERT(cache->prebuffer);
-+ if (cache->prebuffer) {
-+ /* create a new hash table */
-+ cache->entries = PL_NewHashTable(0, SECITEM_Hash, SECITEM_HashCompare,
-+ PL_CompareValues, &preAllocOps, cache->prebuffer);
-+ }
-+ PR_ASSERT(cache->entries);
-+ if (!cache->entries) {
-+ rv = SECFailure;
-+ }
-+ if (SECSuccess == rv) {
-+ /* add all serial numbers to the hash table */
-+ for (crlEntry = crlobject->crl.entries; crlEntry && *crlEntry; crlEntry++) {
-+ PL_HashTableAdd(cache->entries, &(*crlEntry)->serialNumber, *crlEntry);
-+ }
-+ cache->full = crlobject;
-+ cache->invalid = 0; /* valid cache */
-+ } else {
-+ cache->invalid |= CRL_CACHE_OUT_OF_MEMORY;
-+ }
-+ } else {
-+ cache->invalid |= CRL_CACHE_INVALID_CRLS;
-+ }
-+ return rv;
-+}
-+
-+void DPCache_Empty(CRLDPCache* cache)
-+{
-+ PRUint32 i;
-+ PR_ASSERT(cache);
-+ if (!cache)
-+ {
-+ return;
-+ }
-+ cache->full = NULL;
-+
-+ cache->invalid = 0;
-+
-+ if (cache->entries) {
-+ /* we already have a hash table, destroy it */
-+ PL_HashTableDestroy(cache->entries);
-+ cache->entries = NULL;
-+ }
-+ /* also destroy the PreAllocator */
-+ if (cache->prebuffer)
-+ {
-+ PreAllocator_Destroy(cache->prebuffer);
-+ cache->prebuffer = NULL;
-+ }
-+
-+ for (i=0;i<cache->ncrls;i++)
-+ {
-+ CERTSignedCrl* crl = cache->crls[i];
-+ if (crl)
-+ {
-+ GetOpaqueCRLFields(crl)->deleted = PR_TRUE;
-+ }
-+ }
-+}
-+
-+SECStatus DPCache_Fetch(CRLDPCache* cache, PRTime vfdate, void* wincx)
-+{
-+ SECStatus rv = SECSuccess;
-+ CERTSignedCrl* crlobject = NULL;
-+ PRUint32 i=0;
-+ /* XCRL For now, we can only get one full CRL. In the future, we'll be able to
-+ find more than one object, because of multiple tokens and deltas */
-+ rv = SEC_FindCrlByKeyOnSlot(NULL, cache->subject, SEC_CRL_TYPE,
-+ &crlobject, CRL_DECODE_DONT_COPY_DER |
-+ CRL_DECODE_SKIP_ENTRIES |
-+ CRL_DECODE_KEEP_BAD_CRL);
-+ /* if this function fails, something very wrong happened, such as an out
-+ of memory error during CRL decoding. We don't want to proceed and must
-+ mark the cache object invalid */
-+ if (SECFailure == rv) {
-+ cache->invalid |= CRL_CACHE_LAST_FETCH_FAILED;
-+ } else {
-+ cache->invalid &= (~CRL_CACHE_LAST_FETCH_FAILED);
-+ }
-+
-+ if ((SECSuccess == rv) && (!crlobject)) {
-+ /* no CRL was found. This is OK */
-+ DPCache_Empty(cache);
-+ return SECSuccess;
-+ }
-+
-+ /* now check if we already have a binary equivalent DER CRL */
-+ for (i=0;i<cache->ncrls;i++) {
-+ CERTSignedCrl* existing = cache->crls[i];
-+ if (existing && (SECEqual == SECITEM_CompareItem(existing->derCrl, crlobject->derCrl))) {
-+ /* yes. Has the matching CRL been marked deleted ? */
-+ if (PR_TRUE == GetOpaqueCRLFields(crlobject)->deleted) {
-+ /* Yes. Just replace the CK object ID and slot in the existing object.
-+ This avoids an unnecessary signature verification & entry decode */
-+ /* XCRL we'll need to lock the CRL here in the future for iCRLs that are
-+ shared between multiple CAs */
-+ existing->pkcs11ID = crlobject->pkcs11ID;
-+ PK11_FreeSlot(existing->slot); /* release reference to old
-+ CRL slot */
-+ existing->slot = crlobject->slot; /* adopt new CRL slot */
-+ crlobject->slot = NULL; /* clear slot to avoid double-freeing it
-+ during CRL destroy */
-+ rv = SEC_DestroyCrl(crlobject);
-+ PORT_Assert(SECSuccess == rv);
-+ return rv;
-+ } else {
-+ /* We got an identical CRL from a different token.
-+ Throw it away. */
-+ return SEC_DestroyCrl(crlobject);
-+ }
-+ }
-+ }
-+
-+ /* add the CRL to our array */
-+ if (SECSuccess == rv) {
-+ rv = DPCache_AddCRL(cache, crlobject);
-+ }
-+
-+ /* update the cache with this new CRL */
-+ if (SECSuccess == rv) {
-+ rv = DPCache_Refresh(cache, crlobject, vfdate, wincx);
-+ }
-+ return rv;
-+}
-+
-+SECStatus DPCache_Lookup(CRLDPCache* cache, SECItem* sn, CERTCrlEntry** returned)
-+{
-+ CERTSignedCrl* crl = NULL;
-+ CERTCrlEntry* acrlEntry = NULL;
-+ if (!cache || !sn) {
-+ /* no cache or SN to look up, this is bad */
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+ if (0 != cache->invalid) {
-+ /* the cache contains a bad CRL, consider all certs revoked
-+ as a security measure */
-+ PORT_SetError(SEC_ERROR_CRL_INVALID);
-+ return SECFailure;
-+ }
-+ if (!cache->full) {
-+ /* no CRL means no entry to return, but this is OK */
-+ *returned = NULL;
-+ return SECSuccess;
-+ }
-+ crl = cache->full;
-+ PR_ASSERT(cache->entries);
-+ if (!cache->entries)
-+ {
-+ return SECFailure;
-+ }
-+ acrlEntry = PL_HashTableLookup(cache->entries, (void*)sn);
-+ if (acrlEntry)
-+ {
-+ *returned = acrlEntry;
-+ }
-+ return SECSuccess;
-+}
-+
-+#ifdef USE_RWLOCK
-+
-+#define DPCache_LockWrite() { \
-+ if (readlocked){ \
-+ NSSRWLock_UnlockRead(cache->lock); \
-+ } \
-+ NSSRWLock_LockWrite(cache->lock); \
-+}
-+
-+#define DPCache_UnlockWrite() { \
-+ if (readlocked){ \
-+ NSSRWLock_LockRead(cache->lock); \
-+ } \
-+ NSSRWLock_UnlockWrite(cache->lock); \
-+}
-+
-+#else
-+
-+#define DPCache_LockWrite() {}
-+
-+#define DPCache_UnlockWrite() {}
-+
-+#endif
-+
-+SECStatus DPCache_Update(CRLDPCache* cache, CERTCertificate* issuer,
-+ PRBool readlocked, PRTime vfdate, void* wincx)
-+{
-+ /* Update the CRLDPCache now. We don't cache token CRL lookup misses
-+ yet, as we have no way of getting notified of new PKCS#11 object
-+ creation that happens in a token */
-+ SECStatus rv = SECSuccess;
-+ PRUint32 i = 0;
-+ PRBool updated = PR_FALSE;
-+
-+ if (!cache) {
-+ return SECFailure;
-+ }
-+
-+ /* verify CRLs that couldn't be checked when inserted into the cache
-+ because the issuer cert was unavailable. These are CRLs that were
-+ inserted into the cache through SEC_FindCrlByName, rather than
-+ through a certificate verification (CERT_CheckCRL) */
-+ if (issuer) {
-+ /* if we didn't have a valid issuer cert yet, but we do now. add it */
-+ if (NULL == cache->issuer) {
-+ /* save the issuer cert */
-+ cache->issuer = CERT_DupCertificate(issuer);
-+ }
-+
-+ /* re-process all unverified CRLs */
-+ if (cache->issuer) {
-+ for (i = 0; i < cache->ncrls ; i++) {
-+ CERTSignedCrl* acrl = cache->crls[i];
-+ if (PR_TRUE == GetOpaqueCRLFields(acrl)->unverified) {
-+ DPCache_LockWrite();
-+ /* check that we are the first thread to update */
-+ if (PR_TRUE == GetOpaqueCRLFields(acrl)->unverified) {
-+ DPCache_Refresh(cache, acrl, vfdate, wincx);
-+ /* also check all the other CRLs */
-+ for (i = i+1 ; i < cache->ncrls ; i++) {
-+ acrl = cache->crls[i];
-+ if (acrl && (PR_TRUE == GetOpaqueCRLFields(acrl)->unverified)) {
-+ DPCache_Refresh(cache, acrl, vfdate, wincx);
-+ }
-+ }
-+ }
-+ DPCache_UnlockWrite();
-+ break;
-+ }
-+ }
-+ }
-+ }
-+
-+ if (cache->ncrls) {
-+ /* check if all CRLs still exist */
-+ for (i = 0; (i < cache->ncrls) && (PR_FALSE == updated); i++)
-+ {
-+ CERTSignedCrl* savcrl = cache->crls[i];
-+ if (savcrl && (PR_TRUE != CRLStillExists(savcrl))) {
-+
-+ /* this CRL is gone */
-+ DPCache_LockWrite();
-+ /* first, we need to check if another thread updated
-+ it before we did, and abort if it has been modified since
-+ we acquired the lock */
-+ if ((savcrl == cache->crls[i]) &&
-+ PR_TRUE != CRLStillExists(savcrl)) {
-+ /* the CRL is gone. And we are the one to do the update */
-+ /* Mark the CRL deleted */
-+ GetOpaqueCRLFields(savcrl)->deleted = PR_TRUE;
-+ /* also check all the other CRLs */
-+ for (i = i+1 ; i < cache->ncrls ; i++) {
-+ CERTSignedCrl* acrl = cache->crls[i];
-+ if (acrl && (PR_TRUE != CRLStillExists(acrl))) {
-+ GetOpaqueCRLFields(acrl)->deleted = PR_TRUE;
-+ }
-+ }
-+ /* and try to fetch a new one */
-+ rv = DPCache_Fetch(cache, vfdate, wincx);
-+ updated = PR_TRUE;
-+ if (SECSuccess == rv) {
-+ rv = DPCache_Cleanup(cache); /* clean up deleted CRLs
-+ from the cache*/
-+ }
-+ }
-+ DPCache_UnlockWrite();
-+ }
-+ }
-+ } else {
-+ /* we had zero CRL for this DP, try to get one from tokens */
-+ DPCache_LockWrite();
-+ /* check if another thread updated before us, and skip update if so */
-+ if (0 == cache->ncrls)
-+ {
-+ /* we are the first */
-+ rv = DPCache_Fetch(cache, vfdate, wincx);
-+ }
-+ DPCache_UnlockWrite();
-+ }
-+
-+ return rv;
-+}
-+
-+SECStatus DPCache_Initialize(CRLDPCache* cache, CERTCertificate* issuer,
-+ SECItem* subject, SECItem* dp)
-+{
-+ PORT_Assert(cache);
-+ if (!cache) {
-+ return SECFailure;
-+ }
-+ memset(cache, 0, sizeof(CRLDPCache));
-+#ifdef USE_RWLOCK
-+ cache->lock = NSSRWLock_New(NSS_RWLOCK_RANK_NONE, NULL);
-+#else
-+ cache->lock = PR_NewLock();
-+#endif
-+ if (!cache->lock)
-+ {
-+ return SECFailure;
-+ }
-+ if (issuer)
-+ {
-+ cache->issuer = CERT_DupCertificate(issuer);
-+ }
-+ cache->distributionPoint = SECITEM_DupItem(dp);
-+ cache->subject = SECITEM_DupItem(subject);
-+ return SECSuccess;
-+}
-+
-+SECStatus IssuerCache_Create(CRLIssuerCache** returned,
-+ CERTCertificate* issuer,
-+ SECItem* subject, SECItem* dp)
-+{
-+ SECStatus rv = SECSuccess;
-+ CRLIssuerCache* cache = NULL;
-+ PORT_Assert(returned);
-+ PORT_Assert(subject);
-+ if (!returned || !subject)
-+ {
-+ return SECFailure;
-+ }
-+ cache = (CRLIssuerCache*) PR_Malloc(sizeof(CRLIssuerCache));
-+ if (!cache)
-+ {
-+ return SECFailure;
-+ }
-+ memset(cache, 0, sizeof(CRLIssuerCache));
-+ cache->subject = SECITEM_DupItem(subject);
-+#if 0
-+ /* XCRL */
-+ cache->lock = NSSRWLock_New(NSS_RWLOCK_RANK_NONE, NULL);
-+ if (!cache->lock)
-+ {
-+ rv = SECFailure;
-+ }
-+ if (SECSuccess == rv && issuer)
-+ {
-+ cache->issuer = CERT_DupCertificate(issuer);
-+ if (!cache->issuer)
-+ {
-+ rv = SECFailure;
-+ }
-+ }
-+#endif
-+ if (SECSuccess != rv)
-+ {
-+ return IssuerCache_Destroy(cache);
-+ }
-+ *returned = cache;
-+ return SECSuccess;
-+}
-+
-+SECStatus IssuerCache_AddDP(CRLIssuerCache* cache, CERTCertificate* issuer,
-+ SECItem* subject, SECItem* dp, CRLDPCache** newdpc)
-+{
-+ SECStatus rv = SECSuccess;
-+ /* now create the required DP cache object */
-+ if (!dp) {
-+ /* default distribution point */
-+ rv = DPCache_Initialize(&cache->dp, issuer, subject, NULL);
-+ if (SECSuccess == rv) {
-+ cache->dpp = &cache->dp;
-+ if (newdpc) {
-+ *newdpc = cache->dpp;
-+ }
-+ }
-+ } else {
-+ /* we should never hit this until we support multiple DPs */
-+ PORT_Assert(dp);
-+ rv = SECFailure;
-+ /* XCRL allocate a new distribution point cache object, initialize it,
-+ and add it to the hash table of DPs */
-+ }
-+ return rv;
-+}
-+
-+SECStatus CRLCache_AddIssuer(CRLIssuerCache* issuer)
-+{
-+ PORT_Assert(issuer);
-+ PORT_Assert(crlcache.issuers);
-+ if (!issuer || !crlcache.issuers) {
-+ return SECFailure;
-+ }
-+ if (NULL == PL_HashTableAdd(crlcache.issuers, (void*) issuer->subject,
-+ (void*) issuer)) {
-+ return SECFailure;
-+ }
-+ return SECSuccess;
-+}
-+
-+SECStatus GetIssuerCache(CRLCache* cache, SECItem* subject, CRLIssuerCache** returned)
-+{
-+ /* we need to look up the issuer in the hash table */
-+ SECStatus rv = SECSuccess;
-+ PORT_Assert(cache);
-+ PORT_Assert(subject);
-+ PORT_Assert(returned);
-+ PORT_Assert(crlcache.issuers);
-+ if (!cache || !subject || !returned || !crlcache.issuers) {
-+ rv = SECFailure;
-+ }
-+
-+ if (SECSuccess == rv){
-+ *returned = (CRLIssuerCache*) PL_HashTableLookup(crlcache.issuers,
-+ (void*) subject);
-+ }
-+
-+ return rv;
-+}
-+
-+CERTSignedCrl* GetBestCRL(CRLDPCache* cache)
-+{
-+ PRUint32 i = 0;
-+ PR_ASSERT(cache);
-+ if (!cache) {
-+ return NULL;
-+ }
-+ if (0 == cache->ncrls) {
-+ /* no CRLs in the cache */
-+ return NULL;
-+ }
-+ /* first, check if we have a valid full CRL, and use that */
-+ if (cache->full) {
-+ return SEC_DupCrl(cache->full);
-+ }
-+ /* otherwise, check all the fetched CRLs for one with valid DER */
-+ for (i = 0; i < cache->ncrls ; i++) {
-+ CERTSignedCrl* acrl = cache->crls[i];
-+ if (PR_FALSE == GetOpaqueCRLFields(acrl)->bad) {
-+ SECStatus rv = CERT_CompleteCRLDecodeEntries(acrl);
-+ if (SECSuccess == rv) {
-+ return SEC_DupCrl(acrl);
-+ }
-+ }
-+ }
-+ return NULL;
-+}
-+
-+CRLDPCache* GetDPCache(CRLIssuerCache* cache, SECItem* dp)
-+{
-+ CRLDPCache* dpp = NULL;
-+ PORT_Assert(cache);
-+ /* XCRL for now we only support the "default" DP, ie. the
-+ full CRL. So we can return the global one without locking. In
-+ the future we will have a lock */
-+ PORT_Assert(NULL == dp);
-+ if (!cache || dp) {
-+ return NULL;
-+ }
-+#if 0
-+ /* XCRL */
-+ NSSRWLock_LockRead(cache->lock);
-+#endif
-+ dpp = cache->dpp;
-+#if 0
-+ /* XCRL */
-+ NSSRWLock_UnlockRead(cache->lock);
-+#endif
-+ return dpp;
-+}
-+
-+SECStatus AcquireDPCache(CERTCertificate* issuer, SECItem* subject, SECItem* dp,
-+ int64 t, void* wincx, CRLDPCache** dpcache,
-+ PRBool* writeLocked)
-+{
-+ SECStatus rv = SECSuccess;
-+ CRLIssuerCache* issuercache = NULL;
-+
-+ PORT_Assert(crlcache.lock);
-+ if (!crlcache.lock) {
-+ /* CRL cache is not initialized */
-+ return SECFailure;
-+ }
-+ PR_Lock(crlcache.lock);
-+ rv = GetIssuerCache(&crlcache, subject, &issuercache);
-+ if (SECSuccess != rv) {
-+ PR_Unlock(crlcache.lock);
-+ return SECFailure;
-+ }
-+ if (!issuercache) {
-+ /* there is no cache for this issuer yet. This means this is the
-+ first time we look up a cert from that issuer, and we need to
-+ create the cache. Do it within the global cache lock to ensure
-+ no two threads will simultaneously try to create the same issuer
-+ cache. XXX this could be optimized with a r/w lock at this level
-+ too. But the code would have to check if it already exists when
-+ adding to the hash table */
-+
-+ rv = IssuerCache_Create(&issuercache, issuer, subject, dp);
-+ if (SECSuccess == rv && !issuercache) {
-+ PORT_Assert(issuercache);
-+ rv = SECFailure;
-+ }
-+
-+ if (SECSuccess == rv) {
-+ /* This is the first time we look up a cert of this issuer.
-+ Create the DPCache for this DP . */
-+ rv = IssuerCache_AddDP(issuercache, issuer, subject, dp, dpcache);
-+ }
-+
-+ if (SECSuccess == rv) {
-+ /* lock the DPCache for write to ensure the update happens in this thread */
-+ *writeLocked = PR_TRUE;
-+#ifdef USE_RWLOCK
-+ NSSRWLock_LockWrite((*dpcache)->lock);
-+#else
-+ PR_Lock((*dpcache)->lock);
-+#endif
-+ }
-+
-+ if (SECSuccess == rv) {
-+ /* now add the new issuer cache to the global hash table of issuers */
-+ rv = CRLCache_AddIssuer(issuercache);
-+ if (SECSuccess != rv) {
-+ /* failure */
-+ rv = SECFailure;
-+ }
-+ }
-+
-+ /* now unlock the global cache. We only want to lock the hash table
-+ addition. Holding it longer would hurt scalability */
-+ PR_Unlock(crlcache.lock);
-+
-+ if (SECSuccess != rv && issuercache) {
-+ if (PR_TRUE == *writeLocked) {
-+#ifdef USE_RWLOCK
-+ NSSRWLock_UnlockWrite((*dpcache)->lock);
-+#else
-+ PR_Unlock((*dpcache)->lock);
-+#endif
-+ }
-+ IssuerCache_Destroy(issuercache);
-+ issuercache = NULL;
-+ }
-+
-+ if (SECSuccess != rv) {
-+ return SECFailure;
-+ }
-+ } else {
-+ PR_Unlock(crlcache.lock);
-+ *dpcache = GetDPCache(issuercache, dp);
-+ }
-+ /* we now have a DPCache that we can use for lookups */
-+ /* lock it for read, unless we already locked for write */
-+ if (PR_FALSE == *writeLocked)
-+ {
-+#ifdef USE_RWLOCK
-+ NSSRWLock_LockRead((*dpcache)->lock);
-+#else
-+ PR_Lock((*dpcache)->lock);
-+#endif
-+ }
-+
-+ if (SECSuccess == rv) {
-+ /* currently there is always one and only one DPCache */
-+ PORT_Assert(*dpcache);
-+ if (*dpcache)
-+ {
-+ /* make sure the DP cache is up to date before using it */
-+ rv = DPCache_Update(*dpcache, issuer, PR_FALSE == *writeLocked, t, wincx);
-+ }
-+ else
-+ {
-+ rv = SECFailure;
-+ }
-+ }
-+ return rv;
-+}
-+
-+void ReleaseDPCache(CRLDPCache* dpcache, PRBool writeLocked)
-+{
-+ if (!dpcache) {
-+ return;
-+ }
-+ if (PR_TRUE == writeLocked) {
-+#ifdef USE_RWLOCK
-+ NSSRWLock_UnlockWrite(dpcache->lock);
-+#else
-+ PR_Unlock(dpcache->lock);
-+#endif
-+ } else {
-+#ifdef USE_RWLOCK
-+ NSSRWLock_UnlockRead(dpcache->lock);
-+#else
-+ PR_Unlock(dpcache->lock);
-+#endif
-+ }
-+}
-+
-+SECStatus
-+CERT_CheckCRL(CERTCertificate* cert, CERTCertificate* issuer, SECItem* dp,
-+ int64 t, void* wincx)
-+{
-+ PRBool lockedwrite = PR_FALSE;
-+ SECStatus rv = SECSuccess;
-+ CRLDPCache* dpcache = NULL;
-+ if (!cert || !issuer) {
-+ return SECFailure;
-+ }
-+
-+ if (SECSuccess != CERT_CheckCertValidTimes(issuer, t, PR_FALSE)) {
-+ /* we won't be able to check the CRL's signature if the issuer cert
-+ is expired as of the time we are verifying. This may cause a valid
-+ CRL to be cached as bad. short-circuit to avoid this case. */
-+ PORT_SetError(SEC_ERROR_EXPIRED_ISSUER_CERTIFICATE);
-+ return SECFailure;
-+ }
-+
-+ rv = AcquireDPCache(issuer, &issuer->derSubject, dp, t, wincx, &dpcache, &lockedwrite);
-+
-+ if (SECSuccess == rv) {
-+ /* now look up the certificate SN in the DP cache's CRL */
-+ CERTCrlEntry* entry = NULL;
-+ rv = DPCache_Lookup(dpcache, &cert->serialNumber, &entry);
-+ if (SECSuccess == rv && entry) {
-+ /* check the time if we have one */
-+ if (entry->revocationDate.data && entry->revocationDate.len) {
-+ int64 revocationDate = 0;
-+ if (SECSuccess == DER_DecodeTimeChoice(&revocationDate,
-+ &entry->revocationDate)) {
-+ /* we got a good revocation date, only consider the
-+ certificate revoked if the time we are inquiring about
-+ is past the revocation date */
-+ if (t>=revocationDate) {
-+ rv = SECFailure;
-+ }
-+ } else {
-+ /* invalid revocation date, consider the certificate
-+ permanently revoked */
-+ rv = SECFailure;
-+ }
-+ } else {
-+ /* no revocation date, certificate is permanently revoked */
-+ rv = SECFailure;
-+ }
-+ if (SECFailure == rv) {
-+ PORT_SetError(SEC_ERROR_REVOKED_CERTIFICATE);
-+ }
-+ }
-+ }
-+
-+ ReleaseDPCache(dpcache, lockedwrite);
-+ return rv;
-+}
-+
-+CERTSignedCrl *
-+SEC_FindCrlByName(CERTCertDBHandle *handle, SECItem *crlKey, int type)
-+{
-+ CERTSignedCrl* acrl = NULL;
-+ CRLDPCache* dpcache = NULL;
-+ SECStatus rv = SECSuccess;
-+ PRBool writeLocked = PR_FALSE;
-+
-+ rv = AcquireDPCache(NULL, crlKey, NULL, 0, NULL, &dpcache, &writeLocked);
-+ if (SECSuccess == rv)
-+ {
-+ acrl = GetBestCRL(dpcache);
-+ ReleaseDPCache(dpcache, writeLocked);
-+ }
-+ return acrl;
-+}
-+
-+void CERT_CRLCacheRefreshIssuer(CERTCertDBHandle* dbhandle, SECItem* crlKey)
-+{
-+ CRLDPCache* cache = NULL;
-+ SECStatus rv = SECSuccess;
-+ PRBool writeLocked = PR_FALSE;
-+
-+ (void) dbhandle; /* silence compiler warnings */
-+
-+ rv = AcquireDPCache(NULL, crlKey, NULL, 0, NULL, &cache, &writeLocked);
-+ if (SECSuccess != rv)
-+ {
-+ return;
-+ }
-+ if (PR_TRUE == writeLocked)
-+ {
-+ /* the DPCache is write-locked. This means that the issuer was just
-+ added to the CRL cache. There is no need to do anything */
-+ }
-+ else
-+ {
-+ PRBool readlocked = PR_TRUE;
-+ /* we need to invalidate the DPCache here */
-+ DPCache_LockWrite();
-+ DPCache_Empty(cache);
-+ DPCache_Cleanup(cache);
-+ DPCache_UnlockWrite();
-+ }
-+ ReleaseDPCache(cache, writeLocked);
-+ return;
-+}
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/cryptocontext.c 2004-12-13 13:06:46.792383568 +0100
-@@ -0,0 +1,1003 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#ifndef DEV_H
-+#include "dev.h"
-+#endif /* DEV_H */
-+
-+#ifndef PKIM_H
-+#include "pkim.h"
-+#endif /* PKIM_H */
-+
-+#ifndef PKISTORE_H
-+#include "pkistore.h"
-+#endif /* PKISTORE_H */
-+
-+#include "pki1t.h"
-+
-+#ifdef PURE_STAN_BUILD
-+struct NSSCryptoContextStr
-+{
-+ PRInt32 refCount;
-+ NSSArena *arena;
-+ NSSTrustDomain *td;
-+ NSSToken *token;
-+ nssSession *session;
-+ nssCertificateStore *certStore;
-+};
-+#endif
-+
-+extern const NSSError NSS_ERROR_NOT_FOUND;
-+
-+NSS_IMPLEMENT NSSCryptoContext *
-+nssCryptoContext_Create (
-+ NSSTrustDomain *td,
-+ NSSCallback *uhhOpt
-+)
-+{
-+ NSSArena *arena;
-+ NSSCryptoContext *rvCC;
-+ arena = NSSArena_Create();
-+ if (!arena) {
-+ return NULL;
-+ }
-+ rvCC = nss_ZNEW(arena, NSSCryptoContext);
-+ if (!rvCC) {
-+ return NULL;
-+ }
-+ rvCC->td = td;
-+ rvCC->arena = arena;
-+ return rvCC;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSCryptoContext_Destroy (
-+ NSSCryptoContext *cc
-+)
-+{
-+ PRStatus status = PR_SUCCESS;
-+ if (cc->certStore) {
-+ status = nssCertificateStore_Destroy(cc->certStore);
-+ if (status == PR_FAILURE) {
-+ return status;
-+ }
-+ }
-+ nssArena_Destroy(cc->arena);
-+ return status;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSCryptoContext_SetDefaultCallback (
-+ NSSCryptoContext *td,
-+ NSSCallback *newCallback,
-+ NSSCallback **oldCallbackOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT NSSCallback *
-+NSSCryptoContext_GetDefaultCallback (
-+ NSSCryptoContext *td,
-+ PRStatus *statusOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSTrustDomain *
-+NSSCryptoContext_GetTrustDomain (
-+ NSSCryptoContext *td
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSCryptoContext_ImportCertificate (
-+ NSSCryptoContext *cc,
-+ NSSCertificate *c
-+)
-+{
-+ PRStatus nssrv;
-+ if (!cc->certStore) {
-+ cc->certStore = nssCertificateStore_Create(cc->arena);
-+ if (!cc->certStore) {
-+ return PR_FAILURE;
-+ }
-+ }
-+ nssrv = nssCertificateStore_Add(cc->certStore, c);
-+ if (nssrv == PR_SUCCESS) {
-+ c->object.cryptoContext = cc;
-+ }
-+ return nssrv;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSCryptoContext_ImportPKIXCertificate (
-+ NSSCryptoContext *cc,
-+ struct NSSPKIXCertificateStr *pc
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSCryptoContext_ImportEncodedCertificate (
-+ NSSCryptoContext *cc,
-+ NSSBER *ber
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSCryptoContext_ImportEncodedPKIXCertificateChain (
-+ NSSCryptoContext *cc,
-+ NSSBER *ber
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssCryptoContext_ImportTrust (
-+ NSSCryptoContext *cc,
-+ NSSTrust *trust
-+)
-+{
-+ PRStatus nssrv;
-+ if (!cc->certStore) {
-+ cc->certStore = nssCertificateStore_Create(cc->arena);
-+ if (!cc->certStore) {
-+ return PR_FAILURE;
-+ }
-+ }
-+ nssrv = nssCertificateStore_AddTrust(cc->certStore, trust);
-+#if 0
-+ if (nssrv == PR_SUCCESS) {
-+ trust->object.cryptoContext = cc;
-+ }
-+#endif
-+ return nssrv;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssCryptoContext_ImportSMIMEProfile (
-+ NSSCryptoContext *cc,
-+ nssSMIMEProfile *profile
-+)
-+{
-+ PRStatus nssrv;
-+ if (!cc->certStore) {
-+ cc->certStore = nssCertificateStore_Create(cc->arena);
-+ if (!cc->certStore) {
-+ return PR_FAILURE;
-+ }
-+ }
-+ nssrv = nssCertificateStore_AddSMIMEProfile(cc->certStore, profile);
-+#if 0
-+ if (nssrv == PR_SUCCESS) {
-+ profile->object.cryptoContext = cc;
-+ }
-+#endif
-+ return nssrv;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSCryptoContext_FindBestCertificateByNickname (
-+ NSSCryptoContext *cc,
-+ NSSUTF8 *name,
-+ NSSTime *timeOpt, /* NULL for "now" */
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt /* NULL for none */
-+)
-+{
-+ NSSCertificate **certs;
-+ NSSCertificate *rvCert = NULL;
-+ if (!cc->certStore) {
-+ return NULL;
-+ }
-+ certs = nssCertificateStore_FindCertificatesByNickname(cc->certStore,
-+ name,
-+ NULL, 0, NULL);
-+ if (certs) {
-+ rvCert = nssCertificateArray_FindBestCertificate(certs,
-+ timeOpt,
-+ usage,
-+ policiesOpt);
-+ nssCertificateArray_Destroy(certs);
-+ }
-+ return rvCert;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate **
-+NSSCryptoContext_FindCertificatesByNickname (
-+ NSSCryptoContext *cc,
-+ NSSUTF8 *name,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt, /* 0 for no max */
-+ NSSArena *arenaOpt
-+)
-+{
-+ NSSCertificate **rvCerts;
-+ if (!cc->certStore) {
-+ return NULL;
-+ }
-+ rvCerts = nssCertificateStore_FindCertificatesByNickname(cc->certStore,
-+ name,
-+ rvOpt,
-+ maximumOpt,
-+ arenaOpt);
-+ return rvCerts;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSCryptoContext_FindCertificateByIssuerAndSerialNumber (
-+ NSSCryptoContext *cc,
-+ NSSDER *issuer,
-+ NSSDER *serialNumber
-+)
-+{
-+ if (!cc->certStore) {
-+ return NULL;
-+ }
-+ return nssCertificateStore_FindCertificateByIssuerAndSerialNumber(
-+ cc->certStore,
-+ issuer,
-+ serialNumber);
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSCryptoContext_FindBestCertificateBySubject (
-+ NSSCryptoContext *cc,
-+ NSSDER *subject,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt
-+)
-+{
-+ NSSCertificate **certs;
-+ NSSCertificate *rvCert = NULL;
-+ if (!cc->certStore) {
-+ return NULL;
-+ }
-+ certs = nssCertificateStore_FindCertificatesBySubject(cc->certStore,
-+ subject,
-+ NULL, 0, NULL);
-+ if (certs) {
-+ rvCert = nssCertificateArray_FindBestCertificate(certs,
-+ timeOpt,
-+ usage,
-+ policiesOpt);
-+ nssCertificateArray_Destroy(certs);
-+ }
-+ return rvCert;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate **
-+nssCryptoContext_FindCertificatesBySubject (
-+ NSSCryptoContext *cc,
-+ NSSDER *subject,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt, /* 0 for no max */
-+ NSSArena *arenaOpt
-+)
-+{
-+ NSSCertificate **rvCerts;
-+ if (!cc->certStore) {
-+ return NULL;
-+ }
-+ rvCerts = nssCertificateStore_FindCertificatesBySubject(cc->certStore,
-+ subject,
-+ rvOpt,
-+ maximumOpt,
-+ arenaOpt);
-+ return rvCerts;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate **
-+NSSCryptoContext_FindCertificatesBySubject (
-+ NSSCryptoContext *cc,
-+ NSSDER *subject,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt, /* 0 for no max */
-+ NSSArena *arenaOpt
-+)
-+{
-+ return nssCryptoContext_FindCertificatesBySubject(cc, subject,
-+ rvOpt, maximumOpt,
-+ arenaOpt);
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSCryptoContext_FindBestCertificateByNameComponents (
-+ NSSCryptoContext *cc,
-+ NSSUTF8 *nameComponents,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate **
-+NSSCryptoContext_FindCertificatesByNameComponents (
-+ NSSCryptoContext *cc,
-+ NSSUTF8 *nameComponents,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt, /* 0 for no max */
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSCryptoContext_FindCertificateByEncodedCertificate (
-+ NSSCryptoContext *cc,
-+ NSSBER *encodedCertificate
-+)
-+{
-+ if (!cc->certStore) {
-+ return NULL;
-+ }
-+ return nssCertificateStore_FindCertificateByEncodedCertificate(
-+ cc->certStore,
-+ encodedCertificate);
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSCryptoContext_FindBestCertificateByEmail (
-+ NSSCryptoContext *cc,
-+ NSSASCII7 *email,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt
-+)
-+{
-+ NSSCertificate **certs;
-+ NSSCertificate *rvCert = NULL;
-+ if (!cc->certStore) {
-+ return NULL;
-+ }
-+ certs = nssCertificateStore_FindCertificatesByEmail(cc->certStore,
-+ email,
-+ NULL, 0, NULL);
-+ if (certs) {
-+ rvCert = nssCertificateArray_FindBestCertificate(certs,
-+ timeOpt,
-+ usage,
-+ policiesOpt);
-+ nssCertificateArray_Destroy(certs);
-+ }
-+ return rvCert;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate **
-+NSSCryptoContext_FindCertificatesByEmail (
-+ NSSCryptoContext *cc,
-+ NSSASCII7 *email,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt, /* 0 for no max */
-+ NSSArena *arenaOpt
-+)
-+{
-+ NSSCertificate **rvCerts;
-+ if (!cc->certStore) {
-+ return NULL;
-+ }
-+ rvCerts = nssCertificateStore_FindCertificatesByEmail(cc->certStore,
-+ email,
-+ rvOpt,
-+ maximumOpt,
-+ arenaOpt);
-+ return rvCerts;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSCryptoContext_FindCertificateByOCSPHash (
-+ NSSCryptoContext *cc,
-+ NSSItem *hash
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSCryptoContext_FindBestUserCertificate (
-+ NSSCryptoContext *cc,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate **
-+NSSCryptoContext_FindUserCertificates (
-+ NSSCryptoContext *cc,
-+ NSSTime *timeOpt,
-+ NSSUsage *usageOpt,
-+ NSSPolicies *policiesOpt,
-+ NSSCertificate **rvOpt,
-+ PRUint32 rvLimit, /* zero for no limit */
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSCryptoContext_FindBestUserCertificateForSSLClientAuth (
-+ NSSCryptoContext *cc,
-+ NSSUTF8 *sslHostOpt,
-+ NSSDER *rootCAsOpt[], /* null pointer for none */
-+ PRUint32 rootCAsMaxOpt, /* zero means list is null-terminated */
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSPolicies *policiesOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate **
-+NSSCryptoContext_FindUserCertificatesForSSLClientAuth (
-+ NSSCryptoContext *cc,
-+ NSSUTF8 *sslHostOpt,
-+ NSSDER *rootCAsOpt[], /* null pointer for none */
-+ PRUint32 rootCAsMaxOpt, /* zero means list is null-terminated */
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSPolicies *policiesOpt,
-+ NSSCertificate **rvOpt,
-+ PRUint32 rvLimit, /* zero for no limit */
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSCryptoContext_FindBestUserCertificateForEmailSigning (
-+ NSSCryptoContext *cc,
-+ NSSASCII7 *signerOpt,
-+ NSSASCII7 *recipientOpt,
-+ /* anything more here? */
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSPolicies *policiesOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSCryptoContext_FindUserCertificatesForEmailSigning (
-+ NSSCryptoContext *cc,
-+ NSSASCII7 *signerOpt, /* fgmr or a more general name? */
-+ NSSASCII7 *recipientOpt,
-+ /* anything more here? */
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSPolicies *policiesOpt,
-+ NSSCertificate **rvOpt,
-+ PRUint32 rvLimit, /* zero for no limit */
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSTrust *
-+nssCryptoContext_FindTrustForCertificate (
-+ NSSCryptoContext *cc,
-+ NSSCertificate *cert
-+)
-+{
-+ if (!cc->certStore) {
-+ return NULL;
-+ }
-+ return nssCertificateStore_FindTrustForCertificate(cc->certStore, cert);
-+}
-+
-+NSS_IMPLEMENT nssSMIMEProfile *
-+nssCryptoContext_FindSMIMEProfileForCertificate (
-+ NSSCryptoContext *cc,
-+ NSSCertificate *cert
-+)
-+{
-+ if (!cc->certStore) {
-+ return NULL;
-+ }
-+ return nssCertificateStore_FindSMIMEProfileForCertificate(cc->certStore,
-+ cert);
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSCryptoContext_GenerateKeyPair (
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *ap,
-+ NSSPrivateKey **pvkOpt,
-+ NSSPublicKey **pbkOpt,
-+ PRBool privateKeyIsSensitive,
-+ NSSToken *destination,
-+ NSSCallback *uhhOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT NSSSymmetricKey *
-+NSSCryptoContext_GenerateSymmetricKey (
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *ap,
-+ PRUint32 keysize,
-+ NSSToken *destination,
-+ NSSCallback *uhhOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSSymmetricKey *
-+NSSCryptoContext_GenerateSymmetricKeyFromPassword (
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *ap,
-+ NSSUTF8 *passwordOpt, /* if null, prompt */
-+ NSSToken *destinationOpt,
-+ NSSCallback *uhhOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSSymmetricKey *
-+NSSCryptoContext_FindSymmetricKeyByAlgorithmAndKeyID (
-+ NSSCryptoContext *cc,
-+ NSSOID *algorithm,
-+ NSSItem *keyID,
-+ NSSCallback *uhhOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+struct token_session_str {
-+ NSSToken *token;
-+ nssSession *session;
-+};
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSCryptoContext_Decrypt (
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *encryptedData,
-+ NSSCallback *uhhOpt,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSCryptoContext_BeginDecrypt (
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSCallback *uhhOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSCryptoContext_ContinueDecrypt (
-+ NSSCryptoContext *cc,
-+ NSSItem *data,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSCryptoContext_FinishDecrypt (
-+ NSSCryptoContext *cc,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSCryptoContext_Sign (
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSCallback *uhhOpt,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSCryptoContext_BeginSign (
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSCallback *uhhOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSCryptoContext_ContinueSign (
-+ NSSCryptoContext *cc,
-+ NSSItem *data
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSCryptoContext_FinishSign (
-+ NSSCryptoContext *cc,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSCryptoContext_SignRecover (
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSCallback *uhhOpt,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSCryptoContext_BeginSignRecover (
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSCallback *uhhOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSCryptoContext_ContinueSignRecover (
-+ NSSCryptoContext *cc,
-+ NSSItem *data,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSCryptoContext_FinishSignRecover (
-+ NSSCryptoContext *cc,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSSymmetricKey *
-+NSSCryptoContext_UnwrapSymmetricKey (
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *wrappedKey,
-+ NSSCallback *uhhOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSSymmetricKey *
-+NSSCryptoContext_DeriveSymmetricKey (
-+ NSSCryptoContext *cc,
-+ NSSPublicKey *bk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSOID *target,
-+ PRUint32 keySizeOpt, /* zero for best allowed */
-+ NSSOperations operations,
-+ NSSCallback *uhhOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSCryptoContext_Encrypt (
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSCallback *uhhOpt,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSCryptoContext_BeginEncrypt (
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSCallback *uhhOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSCryptoContext_ContinueEncrypt (
-+ NSSCryptoContext *cc,
-+ NSSItem *data,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSCryptoContext_FinishEncrypt (
-+ NSSCryptoContext *cc,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSCryptoContext_Verify (
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSItem *signature,
-+ NSSCallback *uhhOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSCryptoContext_BeginVerify (
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *signature,
-+ NSSCallback *uhhOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSCryptoContext_ContinueVerify (
-+ NSSCryptoContext *cc,
-+ NSSItem *data
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSCryptoContext_FinishVerify (
-+ NSSCryptoContext *cc
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSCryptoContext_VerifyRecover (
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *signature,
-+ NSSCallback *uhhOpt,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSCryptoContext_BeginVerifyRecover (
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSCallback *uhhOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSCryptoContext_ContinueVerifyRecover (
-+ NSSCryptoContext *cc,
-+ NSSItem *data,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSCryptoContext_FinishVerifyRecover (
-+ NSSCryptoContext *cc,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSCryptoContext_WrapSymmetricKey (
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSSymmetricKey *keyToWrap,
-+ NSSCallback *uhhOpt,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSCryptoContext_Digest (
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSCallback *uhhOpt,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ return nssToken_Digest(cc->token, cc->session, apOpt,
-+ data, rvOpt, arenaOpt);
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSCryptoContext_BeginDigest (
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSCallback *uhhOpt
-+)
-+{
-+ return nssToken_BeginDigest(cc->token, cc->session, apOpt);
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSCryptoContext_ContinueDigest (
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *item
-+)
-+{
-+ /*
-+ NSSAlgorithmAndParameters *ap;
-+ ap = (apOpt) ? apOpt : cc->ap;
-+ */
-+ /* why apOpt? can't change it at this point... */
-+ return nssToken_ContinueDigest(cc->token, cc->session, item);
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSCryptoContext_FinishDigest (
-+ NSSCryptoContext *cc,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ return nssToken_FinishDigest(cc->token, cc->session, rvOpt, arenaOpt);
-+}
-+
-+NSS_IMPLEMENT NSSCryptoContext *
-+NSSCryptoContext_Clone (
-+ NSSCryptoContext *cc
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/debug_module.c 2004-12-13 13:06:46.681400440 +0100
-@@ -0,0 +1,2209 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+#include "prlog.h"
-+#include <stdio.h>
-+
-+static PRLogModuleInfo *modlog = NULL;
-+
-+static CK_FUNCTION_LIST_PTR module_functions;
-+
-+static CK_FUNCTION_LIST debug_functions;
-+
-+static void print_final_statistics(void);
-+
-+/* The AIX 64-bit compiler chokes on large switch statements (see
-+ * bug #63815). I tried the trick recommended there, using -O2 in
-+ * debug builds, and it didn't work. Instead, I'll suppress some of
-+ * the verbose output and just dump values.
-+ */
-+
-+static void get_attr_type_str(CK_ATTRIBUTE_TYPE atype, char *str, int len)
-+{
-+#define SETA(attr) \
-+ PR_snprintf(str, len, "%s", attr); break;
-+ switch (atype) {
-+#ifndef AIX_64BIT
-+ case CKA_CLASS: SETA("CKA_CLASS");
-+ case CKA_TOKEN: SETA("CKA_TOKEN");
-+ case CKA_PRIVATE: SETA("CKA_PRIVATE");
-+ case CKA_LABEL: SETA("CKA_LABEL");
-+ case CKA_APPLICATION: SETA("CKA_APPLICATION");
-+ case CKA_VALUE: SETA("CKA_VALUE");
-+ case CKA_OBJECT_ID: SETA("CKA_OBJECT_ID");
-+ case CKA_CERTIFICATE_TYPE: SETA("CKA_CERTIFICATE_TYPE");
-+ case CKA_ISSUER: SETA("CKA_ISSUER");
-+ case CKA_SERIAL_NUMBER: SETA("CKA_SERIAL_NUMBER");
-+ case CKA_AC_ISSUER: SETA("CKA_AC_ISSUER");
-+ case CKA_OWNER: SETA("CKA_OWNER");
-+ case CKA_ATTR_TYPES: SETA("CKA_ATTR_TYPES");
-+ case CKA_TRUSTED: SETA("CKA_TRUSTED");
-+ case CKA_KEY_TYPE: SETA("CKA_KEY_TYPE");
-+ case CKA_SUBJECT: SETA("CKA_SUBJECT");
-+ case CKA_ID: SETA("CKA_ID");
-+ case CKA_SENSITIVE: SETA("CKA_SENSITIVE");
-+ case CKA_ENCRYPT: SETA("CKA_ENCRYPT");
-+ case CKA_DECRYPT: SETA("CKA_DECRYPT");
-+ case CKA_WRAP: SETA("CKA_WRAP");
-+ case CKA_UNWRAP: SETA("CKA_UNWRAP");
-+ case CKA_SIGN: SETA("CKA_SIGN");
-+ case CKA_SIGN_RECOVER: SETA("CKA_SIGN_RECOVER");
-+ case CKA_VERIFY: SETA("CKA_VERIFY");
-+ case CKA_VERIFY_RECOVER: SETA("CKA_VERIFY_RECOVER");
-+ case CKA_DERIVE: SETA("CKA_DERIVE");
-+ case CKA_START_DATE: SETA("CKA_START_DATE");
-+ case CKA_END_DATE: SETA("CKA_END_DATE");
-+ case CKA_MODULUS: SETA("CKA_MODULUS");
-+ case CKA_MODULUS_BITS: SETA("CKA_MODULUS_BITS");
-+ case CKA_PUBLIC_EXPONENT: SETA("CKA_PUBLIC_EXPONENT");
-+ case CKA_PRIVATE_EXPONENT: SETA("CKA_PRIVATE_EXPONENT");
-+ case CKA_PRIME_1: SETA("CKA_PRIME_1");
-+ case CKA_PRIME_2: SETA("CKA_PRIME_2");
-+ case CKA_EXPONENT_1: SETA("CKA_EXPONENT_1");
-+ case CKA_EXPONENT_2: SETA("CKA_EXPONENT_2");
-+ case CKA_COEFFICIENT: SETA("CKA_COEFFICIENT");
-+ case CKA_PRIME: SETA("CKA_PRIME");
-+ case CKA_SUBPRIME: SETA("CKA_SUBPRIME");
-+ case CKA_BASE: SETA("CKA_BASE");
-+ case CKA_PRIME_BITS: SETA("CKA_PRIME_BITS");
-+ case CKA_SUB_PRIME_BITS: SETA("CKA_SUB_PRIME_BITS");
-+ case CKA_VALUE_BITS: SETA("CKA_VALUE_BITS");
-+ case CKA_VALUE_LEN: SETA("CKA_VALUE_LEN");
-+ case CKA_EXTRACTABLE: SETA("CKA_EXTRACTABLE");
-+ case CKA_LOCAL: SETA("CKA_LOCAL");
-+ case CKA_NEVER_EXTRACTABLE: SETA("CKA_NEVER_EXTRACTABLE");
-+ case CKA_ALWAYS_SENSITIVE: SETA("CKA_ALWAYS_SENSITIVE");
-+ case CKA_KEY_GEN_MECHANISM: SETA("CKA_KEY_GEN_MECHANISM");
-+ case CKA_MODIFIABLE: SETA("CKA_MODIFIABLE");
-+ case CKA_ECDSA_PARAMS: SETA("CKA_ECDSA_PARAMS");
-+ case CKA_EC_POINT: SETA("CKA_EC_POINT");
-+ case CKA_SECONDARY_AUTH: SETA("CKA_SECONDARY_AUTH");
-+ case CKA_AUTH_PIN_FLAGS: SETA("CKA_AUTH_PIN_FLAGS");
-+ case CKA_HW_FEATURE_TYPE: SETA("CKA_HW_FEATURE_TYPE");
-+ case CKA_RESET_ON_INIT: SETA("CKA_RESET_ON_INIT");
-+ case CKA_HAS_RESET: SETA("CKA_HAS_RESET");
-+ case CKA_VENDOR_DEFINED: SETA("CKA_VENDOR_DEFINED");
-+ case CKA_NETSCAPE_URL: SETA("CKA_NETSCAPE_URL");
-+ case CKA_NETSCAPE_EMAIL: SETA("CKA_NETSCAPE_EMAIL");
-+ case CKA_NETSCAPE_SMIME_INFO: SETA("CKA_NETSCAPE_SMIME_INFO");
-+ case CKA_NETSCAPE_SMIME_TIMESTAMP: SETA("CKA_NETSCAPE_SMIME_TIMESTAMP");
-+ case CKA_NETSCAPE_PKCS8_SALT: SETA("CKA_NETSCAPE_PKCS8_SALT");
-+ case CKA_NETSCAPE_PASSWORD_CHECK: SETA("CKA_NETSCAPE_PASSWORD_CHECK");
-+ case CKA_NETSCAPE_EXPIRES: SETA("CKA_NETSCAPE_EXPIRES");
-+ case CKA_NETSCAPE_KRL: SETA("CKA_NETSCAPE_KRL");
-+ case CKA_NETSCAPE_PQG_COUNTER: SETA("CKA_NETSCAPE_PQG_COUNTER");
-+ case CKA_NETSCAPE_PQG_SEED: SETA("CKA_NETSCAPE_PQG_SEED");
-+ case CKA_NETSCAPE_PQG_H: SETA("CKA_NETSCAPE_PQG_H");
-+ case CKA_NETSCAPE_PQG_SEED_BITS: SETA("CKA_NETSCAPE_PQG_SEED_BITS");
-+ case CKA_TRUST: SETA("CKA_TRUST");
-+ case CKA_TRUST_DIGITAL_SIGNATURE: SETA("CKA_TRUST_DIGITAL_SIGNATURE");
-+ case CKA_TRUST_NON_REPUDIATION: SETA("CKA_TRUST_NON_REPUDIATION");
-+ case CKA_TRUST_KEY_ENCIPHERMENT: SETA("CKA_TRUST_KEY_ENCIPHERMENT");
-+ case CKA_TRUST_DATA_ENCIPHERMENT: SETA("CKA_TRUST_DATA_ENCIPHERMENT");
-+ case CKA_TRUST_KEY_AGREEMENT: SETA("CKA_TRUST_KEY_AGREEMENT");
-+ case CKA_TRUST_KEY_CERT_SIGN: SETA("CKA_TRUST_KEY_CERT_SIGN");
-+ case CKA_TRUST_CRL_SIGN: SETA("CKA_TRUST_CRL_SIGN");
-+ case CKA_TRUST_SERVER_AUTH: SETA("CKA_TRUST_SERVER_AUTH");
-+ case CKA_TRUST_CLIENT_AUTH: SETA("CKA_TRUST_CLIENT_AUTH");
-+ case CKA_TRUST_CODE_SIGNING: SETA("CKA_TRUST_CODE_SIGNING");
-+ case CKA_TRUST_EMAIL_PROTECTION: SETA("CKA_TRUST_EMAIL_PROTECTION");
-+ case CKA_TRUST_IPSEC_END_SYSTEM: SETA("CKA_TRUST_IPSEC_END_SYSTEM");
-+ case CKA_TRUST_IPSEC_TUNNEL: SETA("CKA_TRUST_IPSEC_TUNNEL");
-+ case CKA_TRUST_IPSEC_USER: SETA("CKA_TRUST_IPSEC_USER");
-+ case CKA_TRUST_TIME_STAMPING: SETA("CKA_TRUST_TIME_STAMPING");
-+ case CKA_CERT_SHA1_HASH: SETA("CKA_CERT_SHA1_HASH");
-+ case CKA_CERT_MD5_HASH: SETA("CKA_CERT_MD5_HASH");
-+ case CKA_NETSCAPE_DB: SETA("CKA_NETSCAPE_DB");
-+ case CKA_NETSCAPE_TRUST: SETA("CKA_NETSCAPE_TRUST");
-+#endif
-+ default: PR_snprintf(str, len, "0x%p", atype); break;
-+ }
-+}
-+
-+static void get_obj_class(CK_OBJECT_CLASS class, char *str, int len)
-+{
-+#define SETO(objc) \
-+ PR_snprintf(str, len, "%s", objc); break;
-+ switch (class) {
-+#ifndef AIX_64BIT
-+ case CKO_DATA: SETO("CKO_DATA");
-+ case CKO_CERTIFICATE: SETO("CKO_CERTIFICATE");
-+ case CKO_PUBLIC_KEY: SETO("CKO_PUBLIC_KEY");
-+ case CKO_PRIVATE_KEY: SETO("CKO_PRIVATE_KEY");
-+ case CKO_SECRET_KEY: SETO("CKO_SECRET_KEY");
-+ case CKO_HW_FEATURE: SETO("CKO_HW_FEATURE");
-+ case CKO_DOMAIN_PARAMETERS: SETO("CKO_DOMAIN_PARAMETERS");
-+ case CKO_NETSCAPE_CRL: SETO("CKO_NETSCAPE_CRL");
-+ case CKO_NETSCAPE_SMIME: SETO("CKO_NETSCAPE_SMIME");
-+ case CKO_NETSCAPE_TRUST: SETO("CKO_NETSCAPE_TRUST");
-+ case CKO_NETSCAPE_BUILTIN_ROOT_LIST: SETO("CKO_NETSCAPE_BUILTIN_ROOT_LIST");
-+#endif
-+ default: PR_snprintf(str, len, "0x%p", class); break;
-+ }
-+}
-+
-+static void get_trust_val(CK_TRUST trust, char *str, int len)
-+{
-+#define SETT(objc) \
-+ PR_snprintf(str, len, "%s", objc); break;
-+ switch (trust) {
-+#ifndef AIX_64BIT
-+ case CKT_NETSCAPE_TRUSTED: SETT("CKT_NETSCAPE_TRUSTED");
-+ case CKT_NETSCAPE_TRUSTED_DELEGATOR: SETT("CKT_NETSCAPE_TRUSTED_DELEGATOR");
-+ case CKT_NETSCAPE_UNTRUSTED: SETT("CKT_NETSCAPE_UNTRUSTED");
-+ case CKT_NETSCAPE_MUST_VERIFY: SETT("CKT_NETSCAPE_MUST_VERIFY");
-+ case CKT_NETSCAPE_TRUST_UNKNOWN: SETT("CKT_NETSCAPE_TRUST_UNKNOWN");
-+ case CKT_NETSCAPE_VALID: SETT("CKT_NETSCAPE_VALID");
-+ case CKT_NETSCAPE_VALID_DELEGATOR: SETT("CKT_NETSCAPE_VALID_DELEGATOR");
-+#endif
-+ default: PR_snprintf(str, len, "0x%p", trust); break;
-+ }
-+}
-+
-+static void print_attr_value(CK_ATTRIBUTE_PTR attr)
-+{
-+ char atype[48];
-+ char valstr[48];
-+ int len;
-+ get_attr_type_str(attr->type, atype, sizeof atype);
-+ switch (attr->type) {
-+ case CKA_TOKEN:
-+ case CKA_PRIVATE:
-+ case CKA_SENSITIVE:
-+ case CKA_ENCRYPT:
-+ case CKA_DECRYPT:
-+ case CKA_WRAP:
-+ case CKA_UNWRAP:
-+ case CKA_SIGN:
-+ case CKA_SIGN_RECOVER:
-+ case CKA_VERIFY:
-+ case CKA_VERIFY_RECOVER:
-+ case CKA_DERIVE:
-+ case CKA_EXTRACTABLE:
-+ case CKA_LOCAL:
-+ case CKA_NEVER_EXTRACTABLE:
-+ case CKA_ALWAYS_SENSITIVE:
-+ case CKA_MODIFIABLE:
-+ if (attr->ulValueLen > 0 && attr->pValue) {
-+ CK_BBOOL tf = *((CK_BBOOL *)attr->pValue);
-+ len = sizeof(valstr);
-+ PR_snprintf(valstr, len, "%s", tf ? "CK_TRUE" : "CK_FALSE");
-+ PR_LOG(modlog, 4, (" %s = %s [%d]",
-+ atype, valstr, attr->ulValueLen));
-+ break;
-+ }
-+ case CKA_CLASS:
-+ if (attr->ulValueLen > 0 && attr->pValue) {
-+ CK_OBJECT_CLASS class = *((CK_OBJECT_CLASS *)attr->pValue);
-+ get_obj_class(class, valstr, sizeof valstr);
-+ PR_LOG(modlog, 4, (" %s = %s [%d]",
-+ atype, valstr, attr->ulValueLen));
-+ break;
-+ }
-+ case CKA_TRUST_SERVER_AUTH:
-+ case CKA_TRUST_CLIENT_AUTH:
-+ case CKA_TRUST_CODE_SIGNING:
-+ case CKA_TRUST_EMAIL_PROTECTION:
-+ if (attr->ulValueLen > 0 && attr->pValue) {
-+ CK_TRUST trust = *((CK_TRUST *)attr->pValue);
-+ get_trust_val(trust, valstr, sizeof valstr);
-+ PR_LOG(modlog, 4, (" %s = %s [%d]",
-+ atype, valstr, attr->ulValueLen));
-+ break;
-+ }
-+ case CKA_LABEL:
-+ case CKA_NETSCAPE_EMAIL:
-+ case CKA_NETSCAPE_URL:
-+ if (attr->ulValueLen > 0 && attr->pValue) {
-+ len = PR_MIN(attr->ulValueLen + 1, sizeof valstr);
-+ PR_snprintf(valstr, len, "%s", attr->pValue);
-+ PR_LOG(modlog, 4, (" %s = %s [%d]",
-+ atype, valstr, attr->ulValueLen));
-+ break;
-+ }
-+ default:
-+ PR_LOG(modlog, 4, (" %s = 0x%p [%d]",
-+ atype, attr->pValue, attr->ulValueLen));
-+ break;
-+ }
-+}
-+
-+static void print_template(CK_ATTRIBUTE_PTR templ, CK_ULONG tlen)
-+{
-+ CK_ULONG i;
-+ for (i=0; i<tlen; i++) {
-+ print_attr_value(&templ[i]);
-+ }
-+}
-+
-+static void print_mechanism(CK_MECHANISM_PTR m)
-+{
-+ PR_LOG(modlog, 4, (" mechanism = 0x%p", m->mechanism));
-+}
-+
-+struct nssdbg_prof_str {
-+ PRUint32 time;
-+ PRUint32 calls;
-+ char *function;
-+};
-+
-+#define NSSDBG_DEFINE(func) { 0, 0, #func }
-+
-+struct nssdbg_prof_str nssdbg_prof_data[] = {
-+#define FUNC_C_INITIALIZE 0
-+ NSSDBG_DEFINE(C_Initialize),
-+#define FUNC_C_FINALIZE 1
-+ NSSDBG_DEFINE(C_Finalize),
-+#define FUNC_C_GETINFO 2
-+ NSSDBG_DEFINE(C_GetInfo),
-+#define FUNC_C_GETFUNCITONLIST 3
-+ NSSDBG_DEFINE(C_GetFunctionList),
-+#define FUNC_C_GETSLOTLIST 4
-+ NSSDBG_DEFINE(C_GetSlotList),
-+#define FUNC_C_GETSLOTINFO 5
-+ NSSDBG_DEFINE(C_GetSlotInfo),
-+#define FUNC_C_GETTOKENINFO 6
-+ NSSDBG_DEFINE(C_GetTokenInfo),
-+#define FUNC_C_GETMECHANISMLIST 7
-+ NSSDBG_DEFINE(C_GetMechanismList),
-+#define FUNC_C_GETMECHANISMINFO 8
-+ NSSDBG_DEFINE(C_GetMechanismInfo),
-+#define FUNC_C_INITTOKEN 9
-+ NSSDBG_DEFINE(C_InitToken),
-+#define FUNC_C_INITPIN 10
-+ NSSDBG_DEFINE(C_InitPIN),
-+#define FUNC_C_SETPIN 11
-+ NSSDBG_DEFINE(C_SetPIN),
-+#define FUNC_C_OPENSESSION 12
-+ NSSDBG_DEFINE(C_OpenSession),
-+#define FUNC_C_CLOSESESSION 13
-+ NSSDBG_DEFINE(C_CloseSession),
-+#define FUNC_C_CLOSEALLSESSIONS 14
-+ NSSDBG_DEFINE(C_CloseAllSessions),
-+#define FUNC_C_GETSESSIONINFO 15
-+ NSSDBG_DEFINE(C_GetSessionInfo),
-+#define FUNC_C_GETOPERATIONSTATE 16
-+ NSSDBG_DEFINE(C_GetOperationState),
-+#define FUNC_C_SETOPERATIONSTATE 17
-+ NSSDBG_DEFINE(C_SetOperationState),
-+#define FUNC_C_LOGIN 18
-+ NSSDBG_DEFINE(C_Login),
-+#define FUNC_C_LOGOUT 19
-+ NSSDBG_DEFINE(C_Logout),
-+#define FUNC_C_CREATEOBJECT 20
-+ NSSDBG_DEFINE(C_CreateObject),
-+#define FUNC_C_COPYOBJECT 21
-+ NSSDBG_DEFINE(C_CopyObject),
-+#define FUNC_C_DESTROYOBJECT 22
-+ NSSDBG_DEFINE(C_DestroyObject),
-+#define FUNC_C_GETOBJECTSIZE 23
-+ NSSDBG_DEFINE(C_GetObjectSize),
-+#define FUNC_C_GETATTRIBUTEVALUE 24
-+ NSSDBG_DEFINE(C_GetAttributeValue),
-+#define FUNC_C_SETATTRIBUTEVALUE 25
-+ NSSDBG_DEFINE(C_SetAttributeValue),
-+#define FUNC_C_FINDOBJECTSINIT 26
-+ NSSDBG_DEFINE(C_FindObjectsInit),
-+#define FUNC_C_FINDOBJECTS 27
-+ NSSDBG_DEFINE(C_FindObjects),
-+#define FUNC_C_FINDOBJECTSFINAL 28
-+ NSSDBG_DEFINE(C_FindObjectsFinal),
-+#define FUNC_C_ENCRYPTINIT 29
-+ NSSDBG_DEFINE(C_EncryptInit),
-+#define FUNC_C_ENCRYPT 30
-+ NSSDBG_DEFINE(C_Encrypt),
-+#define FUNC_C_ENCRYPTUPDATE 31
-+ NSSDBG_DEFINE(C_EncryptUpdate),
-+#define FUNC_C_ENCRYPTFINAL 32
-+ NSSDBG_DEFINE(C_EncryptFinal),
-+#define FUNC_C_DECRYPTINIT 33
-+ NSSDBG_DEFINE(C_DecryptInit),
-+#define FUNC_C_DECRYPT 34
-+ NSSDBG_DEFINE(C_Decrypt),
-+#define FUNC_C_DECRYPTUPDATE 35
-+ NSSDBG_DEFINE(C_DecryptUpdate),
-+#define FUNC_C_DECRYPTFINAL 36
-+ NSSDBG_DEFINE(C_DecryptFinal),
-+#define FUNC_C_DIGESTINIT 37
-+ NSSDBG_DEFINE(C_DigestInit),
-+#define FUNC_C_DIGEST 38
-+ NSSDBG_DEFINE(C_Digest),
-+#define FUNC_C_DIGESTUPDATE 39
-+ NSSDBG_DEFINE(C_DigestUpdate),
-+#define FUNC_C_DIGESTKEY 40
-+ NSSDBG_DEFINE(C_DigestKey),
-+#define FUNC_C_DIGESTFINAL 41
-+ NSSDBG_DEFINE(C_DigestFinal),
-+#define FUNC_C_SIGNINIT 42
-+ NSSDBG_DEFINE(C_SignInit),
-+#define FUNC_C_SIGN 43
-+ NSSDBG_DEFINE(C_Sign),
-+#define FUNC_C_SIGNUPDATE 44
-+ NSSDBG_DEFINE(C_SignUpdate),
-+#define FUNC_C_SIGNFINAL 45
-+ NSSDBG_DEFINE(C_SignFinal),
-+#define FUNC_C_SIGNRECOVERINIT 46
-+ NSSDBG_DEFINE(C_SignRecoverInit),
-+#define FUNC_C_SIGNRECOVER 47
-+ NSSDBG_DEFINE(C_SignRecover),
-+#define FUNC_C_VERIFYINIT 48
-+ NSSDBG_DEFINE(C_VerifyInit),
-+#define FUNC_C_VERIFY 49
-+ NSSDBG_DEFINE(C_Verify),
-+#define FUNC_C_VERIFYUPDATE 50
-+ NSSDBG_DEFINE(C_VerifyUpdate),
-+#define FUNC_C_VERIFYFINAL 51
-+ NSSDBG_DEFINE(C_VerifyFinal),
-+#define FUNC_C_VERIFYRECOVERINIT 52
-+ NSSDBG_DEFINE(C_VerifyRecoverInit),
-+#define FUNC_C_VERIFYRECOVER 53
-+ NSSDBG_DEFINE(C_VerifyRecover),
-+#define FUNC_C_DIGESTENCRYPTUPDATE 54
-+ NSSDBG_DEFINE(C_DigestEncryptUpdate),
-+#define FUNC_C_DECRYPTDIGESTUPDATE 55
-+ NSSDBG_DEFINE(C_DecryptDigestUpdate),
-+#define FUNC_C_SIGNENCRYPTUPDATE 56
-+ NSSDBG_DEFINE(C_SignEncryptUpdate),
-+#define FUNC_C_DECRYPTVERIFYUPDATE 57
-+ NSSDBG_DEFINE(C_DecryptVerifyUpdate),
-+#define FUNC_C_GENERATEKEY 58
-+ NSSDBG_DEFINE(C_GenerateKey),
-+#define FUNC_C_GENERATEKEYPAIR 59
-+ NSSDBG_DEFINE(C_GenerateKeyPair),
-+#define FUNC_C_WRAPKEY 60
-+ NSSDBG_DEFINE(C_WrapKey),
-+#define FUNC_C_UNWRAPKEY 61
-+ NSSDBG_DEFINE(C_UnWrapKey),
-+#define FUNC_C_DERIVEKEY 62
-+ NSSDBG_DEFINE(C_DeriveKey),
-+#define FUNC_C_SEEDRANDOM 63
-+ NSSDBG_DEFINE(C_SeedRandom),
-+#define FUNC_C_GENERATERANDOM 64
-+ NSSDBG_DEFINE(C_GenerateRandom),
-+#define FUNC_C_GETFUNCTIONSTATUS 65
-+ NSSDBG_DEFINE(C_GetFunctionStatus),
-+#define FUNC_C_CANCELFUNCTION 66
-+ NSSDBG_DEFINE(C_CancelFunction),
-+#define FUNC_C_WAITFORSLOTEVENT 67
-+ NSSDBG_DEFINE(C_WaitForSlotEvent)
-+};
-+
-+int nssdbg_prof_size = sizeof(nssdbg_prof_data)/sizeof(nssdbg_prof_data[0]);
-+
-+
-+static void nssdbg_finish_time(PRInt32 fun_number, PRIntervalTime start)
-+{
-+ PRIntervalTime ival;
-+ PRIntervalTime end = PR_IntervalNow();
-+
-+ ival = end-start;
-+ /* sigh, lie to PRAtomic add and say we are using signed values */
-+ PR_AtomicAdd((PRInt32 *)&nssdbg_prof_data[fun_number].time, (PRInt32)ival);
-+}
-+
-+static void nssdbg_start_time(PRInt32 fun_number, PRIntervalTime *start)
-+{
-+ PR_AtomicIncrement((PRInt32 *)&nssdbg_prof_data[fun_number].calls);
-+ *start = PR_IntervalNow();
-+}
-+
-+CK_RV NSSDBGC_Initialize(
-+ CK_VOID_PTR pInitArgs
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_Initialize"));
-+ PR_LOG(modlog, 3, (" pInitArgs = 0x%p", pInitArgs));
-+ nssdbg_start_time(FUNC_C_INITIALIZE,&start);
-+ rv = module_functions->C_Initialize(pInitArgs);
-+ nssdbg_finish_time(FUNC_C_INITIALIZE,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_Finalize(
-+ CK_VOID_PTR pReserved
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_Finalize"));
-+ PR_LOG(modlog, 3, (" pReserved = 0x%p", pReserved));
-+ nssdbg_start_time(FUNC_C_FINALIZE,&start);
-+ rv = module_functions->C_Finalize(pReserved);
-+ nssdbg_finish_time(FUNC_C_FINALIZE,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_GetInfo(
-+ CK_INFO_PTR pInfo
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_GetInfo"));
-+ PR_LOG(modlog, 3, (" pInfo = 0x%p", pInfo));
-+ nssdbg_start_time(FUNC_C_GETINFO,&start);
-+ rv = module_functions->C_GetInfo(pInfo);
-+ nssdbg_finish_time(FUNC_C_GETINFO,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_GetFunctionList(
-+ CK_FUNCTION_LIST_PTR_PTR ppFunctionList
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_GetFunctionList"));
-+ PR_LOG(modlog, 3, (" ppFunctionList = 0x%p", ppFunctionList));
-+ nssdbg_start_time(FUNC_C_GETFUNCITONLIST,&start);
-+ rv = module_functions->C_GetFunctionList(ppFunctionList);
-+ nssdbg_finish_time(FUNC_C_GETFUNCITONLIST,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_GetSlotList(
-+ CK_BBOOL tokenPresent,
-+ CK_SLOT_ID_PTR pSlotList,
-+ CK_ULONG_PTR pulCount
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ CK_ULONG i;
-+ PR_LOG(modlog, 1, ("C_GetSlotList"));
-+ PR_LOG(modlog, 3, (" tokenPresent = 0x%x", tokenPresent));
-+ PR_LOG(modlog, 3, (" pSlotList = 0x%p", pSlotList));
-+ PR_LOG(modlog, 3, (" pulCount = 0x%p", pulCount));
-+ nssdbg_start_time(FUNC_C_GETSLOTLIST,&start);
-+ rv = module_functions->C_GetSlotList(tokenPresent,
-+ pSlotList,
-+ pulCount);
-+ nssdbg_finish_time(FUNC_C_GETSLOTLIST,start);
-+ PR_LOG(modlog, 4, (" *pulCount = 0x%x", *pulCount));
-+ if (pSlotList) {
-+ for (i=0; i<*pulCount; i++) {
-+ PR_LOG(modlog, 4, (" slotID[%d] = %x", i, pSlotList[i]));
-+ }
-+ }
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_GetSlotInfo(
-+ CK_SLOT_ID slotID,
-+ CK_SLOT_INFO_PTR pInfo
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_GetSlotInfo"));
-+ PR_LOG(modlog, 3, (" slotID = 0x%x", slotID));
-+ PR_LOG(modlog, 3, (" pInfo = 0x%p", pInfo));
-+ nssdbg_start_time(FUNC_C_GETSLOTINFO,&start);
-+ rv = module_functions->C_GetSlotInfo(slotID,
-+ pInfo);
-+ nssdbg_finish_time(FUNC_C_GETSLOTINFO,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_GetTokenInfo(
-+ CK_SLOT_ID slotID,
-+ CK_TOKEN_INFO_PTR pInfo
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_GetTokenInfo"));
-+ PR_LOG(modlog, 3, (" slotID = 0x%x", slotID));
-+ PR_LOG(modlog, 3, (" pInfo = 0x%p", pInfo));
-+ nssdbg_start_time(FUNC_C_GETTOKENINFO,&start);
-+ rv = module_functions->C_GetTokenInfo(slotID,
-+ pInfo);
-+ nssdbg_finish_time(FUNC_C_GETTOKENINFO,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_GetMechanismList(
-+ CK_SLOT_ID slotID,
-+ CK_MECHANISM_TYPE_PTR pMechanismList,
-+ CK_ULONG_PTR pulCount
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_GetMechanismList"));
-+ PR_LOG(modlog, 3, (" slotID = 0x%x", slotID));
-+ PR_LOG(modlog, 3, (" pMechanismList = 0x%p", pMechanismList));
-+ PR_LOG(modlog, 3, (" pulCount = 0x%p", pulCount));
-+ nssdbg_start_time(FUNC_C_GETMECHANISMLIST,&start);
-+ rv = module_functions->C_GetMechanismList(slotID,
-+ pMechanismList,
-+ pulCount);
-+ nssdbg_finish_time(FUNC_C_GETMECHANISMLIST,start);
-+ PR_LOG(modlog, 4, (" *pulCount = 0x%x", *pulCount));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_GetMechanismInfo(
-+ CK_SLOT_ID slotID,
-+ CK_MECHANISM_TYPE type,
-+ CK_MECHANISM_INFO_PTR pInfo
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_GetMechanismInfo"));
-+ PR_LOG(modlog, 3, (" slotID = 0x%x", slotID));
-+ PR_LOG(modlog, 3, (" type = 0x%x", type));
-+ PR_LOG(modlog, 3, (" pInfo = 0x%p", pInfo));
-+ nssdbg_start_time(FUNC_C_GETMECHANISMINFO,&start);
-+ rv = module_functions->C_GetMechanismInfo(slotID,
-+ type,
-+ pInfo);
-+ nssdbg_finish_time(FUNC_C_GETMECHANISMINFO,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_InitToken(
-+ CK_SLOT_ID slotID,
-+ CK_CHAR_PTR pPin,
-+ CK_ULONG ulPinLen,
-+ CK_CHAR_PTR pLabel
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_InitToken"));
-+ PR_LOG(modlog, 3, (" slotID = 0x%x", slotID));
-+ PR_LOG(modlog, 3, (" pPin = 0x%p", pPin));
-+ PR_LOG(modlog, 3, (" ulPinLen = %d", ulPinLen));
-+ PR_LOG(modlog, 3, (" pLabel = 0x%p", pLabel));
-+ nssdbg_start_time(FUNC_C_INITTOKEN,&start);
-+ rv = module_functions->C_InitToken(slotID,
-+ pPin,
-+ ulPinLen,
-+ pLabel);
-+ nssdbg_finish_time(FUNC_C_INITTOKEN,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_InitPIN(
-+ CK_SESSION_HANDLE hSession,
-+ CK_CHAR_PTR pPin,
-+ CK_ULONG ulPinLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_InitPIN"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pPin = 0x%p", pPin));
-+ PR_LOG(modlog, 3, (" ulPinLen = %d", ulPinLen));
-+ nssdbg_start_time(FUNC_C_INITPIN,&start);
-+ rv = module_functions->C_InitPIN(hSession,
-+ pPin,
-+ ulPinLen);
-+ nssdbg_finish_time(FUNC_C_INITPIN,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_SetPIN(
-+ CK_SESSION_HANDLE hSession,
-+ CK_CHAR_PTR pOldPin,
-+ CK_ULONG ulOldLen,
-+ CK_CHAR_PTR pNewPin,
-+ CK_ULONG ulNewLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_SetPIN"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pOldPin = 0x%p", pOldPin));
-+ PR_LOG(modlog, 3, (" ulOldLen = %d", ulOldLen));
-+ PR_LOG(modlog, 3, (" pNewPin = 0x%p", pNewPin));
-+ PR_LOG(modlog, 3, (" ulNewLen = %d", ulNewLen));
-+ nssdbg_start_time(FUNC_C_SETPIN,&start);
-+ rv = module_functions->C_SetPIN(hSession,
-+ pOldPin,
-+ ulOldLen,
-+ pNewPin,
-+ ulNewLen);
-+ nssdbg_finish_time(FUNC_C_SETPIN,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+static PRUint32 numOpenSessions = 0;
-+static PRUint32 maxOpenSessions = 0;
-+CK_RV NSSDBGC_OpenSession(
-+ CK_SLOT_ID slotID,
-+ CK_FLAGS flags,
-+ CK_VOID_PTR pApplication,
-+ CK_NOTIFY Notify,
-+ CK_SESSION_HANDLE_PTR phSession
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_AtomicIncrement((PRInt32 *)&numOpenSessions);
-+ maxOpenSessions = PR_MAX(numOpenSessions, maxOpenSessions);
-+ PR_LOG(modlog, 1, ("C_OpenSession"));
-+ PR_LOG(modlog, 3, (" slotID = 0x%x", slotID));
-+ PR_LOG(modlog, 3, (" flags = 0x%x", flags));
-+ PR_LOG(modlog, 3, (" pApplication = 0x%p", pApplication));
-+ PR_LOG(modlog, 3, (" Notify = 0x%x", Notify));
-+ PR_LOG(modlog, 3, (" phSession = 0x%p", phSession));
-+ nssdbg_start_time(FUNC_C_OPENSESSION,&start);
-+ rv = module_functions->C_OpenSession(slotID,
-+ flags,
-+ pApplication,
-+ Notify,
-+ phSession);
-+ nssdbg_finish_time(FUNC_C_OPENSESSION,start);
-+ PR_LOG(modlog, 4, (" *phSession = 0x%x", *phSession));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_CloseSession(
-+ CK_SESSION_HANDLE hSession
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_AtomicDecrement((PRInt32 *)&numOpenSessions);
-+ PR_LOG(modlog, 1, ("C_CloseSession"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ nssdbg_start_time(FUNC_C_CLOSESESSION,&start);
-+ rv = module_functions->C_CloseSession(hSession);
-+ nssdbg_finish_time(FUNC_C_CLOSESESSION,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_CloseAllSessions(
-+ CK_SLOT_ID slotID
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_CloseAllSessions"));
-+ PR_LOG(modlog, 3, (" slotID = 0x%x", slotID));
-+ nssdbg_start_time(FUNC_C_CLOSEALLSESSIONS,&start);
-+ rv = module_functions->C_CloseAllSessions(slotID);
-+ nssdbg_finish_time(FUNC_C_CLOSEALLSESSIONS,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_GetSessionInfo(
-+ CK_SESSION_HANDLE hSession,
-+ CK_SESSION_INFO_PTR pInfo
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_GetSessionInfo"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pInfo = 0x%p", pInfo));
-+ nssdbg_start_time(FUNC_C_GETSESSIONINFO,&start);
-+ rv = module_functions->C_GetSessionInfo(hSession,
-+ pInfo);
-+ nssdbg_finish_time(FUNC_C_GETSESSIONINFO,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_GetOperationState(
-+ CK_SESSION_HANDLE hSession,
-+ CK_BYTE_PTR pOperationState,
-+ CK_ULONG_PTR pulOperationStateLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_GetOperationState"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pOperationState = 0x%p", pOperationState));
-+ PR_LOG(modlog, 3, (" pulOperationStateLen = 0x%p", pulOperationStateLen));
-+ nssdbg_start_time(FUNC_C_GETOPERATIONSTATE,&start);
-+ rv = module_functions->C_GetOperationState(hSession,
-+ pOperationState,
-+ pulOperationStateLen);
-+ nssdbg_finish_time(FUNC_C_GETOPERATIONSTATE,start);
-+ PR_LOG(modlog, 4, (" *pulOperationStateLen = 0x%x", *pulOperationStateLen));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_SetOperationState(
-+ CK_SESSION_HANDLE hSession,
-+ CK_BYTE_PTR pOperationState,
-+ CK_ULONG ulOperationStateLen,
-+ CK_OBJECT_HANDLE hEncryptionKey,
-+ CK_OBJECT_HANDLE hAuthenticationKey
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_SetOperationState"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pOperationState = 0x%p", pOperationState));
-+ PR_LOG(modlog, 3, (" ulOperationStateLen = %d", ulOperationStateLen));
-+ PR_LOG(modlog, 3, (" hEncryptionKey = 0x%x", hEncryptionKey));
-+ PR_LOG(modlog, 3, (" hAuthenticationKey = 0x%x", hAuthenticationKey));
-+ nssdbg_start_time(FUNC_C_SETOPERATIONSTATE,&start);
-+ rv = module_functions->C_SetOperationState(hSession,
-+ pOperationState,
-+ ulOperationStateLen,
-+ hEncryptionKey,
-+ hAuthenticationKey);
-+ nssdbg_finish_time(FUNC_C_SETOPERATIONSTATE,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_Login(
-+ CK_SESSION_HANDLE hSession,
-+ CK_USER_TYPE userType,
-+ CK_CHAR_PTR pPin,
-+ CK_ULONG ulPinLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_Login"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" userType = 0x%x", userType));
-+ PR_LOG(modlog, 3, (" pPin = 0x%p", pPin));
-+ PR_LOG(modlog, 3, (" ulPinLen = %d", ulPinLen));
-+ nssdbg_start_time(FUNC_C_LOGIN,&start);
-+ rv = module_functions->C_Login(hSession,
-+ userType,
-+ pPin,
-+ ulPinLen);
-+ nssdbg_finish_time(FUNC_C_LOGIN,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_Logout(
-+ CK_SESSION_HANDLE hSession
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_Logout"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ nssdbg_start_time(FUNC_C_LOGOUT,&start);
-+ rv = module_functions->C_Logout(hSession);
-+ nssdbg_finish_time(FUNC_C_LOGOUT,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_CreateObject(
-+ CK_SESSION_HANDLE hSession,
-+ CK_ATTRIBUTE_PTR pTemplate,
-+ CK_ULONG ulCount,
-+ CK_OBJECT_HANDLE_PTR phObject
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_CreateObject"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pTemplate = 0x%p", pTemplate));
-+ PR_LOG(modlog, 3, (" ulCount = %d", ulCount));
-+ PR_LOG(modlog, 3, (" phObject = 0x%p", phObject));
-+ print_template(pTemplate, ulCount);
-+ nssdbg_start_time(FUNC_C_CREATEOBJECT,&start);
-+ rv = module_functions->C_CreateObject(hSession,
-+ pTemplate,
-+ ulCount,
-+ phObject);
-+ nssdbg_finish_time(FUNC_C_CREATEOBJECT,start);
-+ PR_LOG(modlog, 4, (" *phObject = 0x%x", *phObject));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_CopyObject(
-+ CK_SESSION_HANDLE hSession,
-+ CK_OBJECT_HANDLE hObject,
-+ CK_ATTRIBUTE_PTR pTemplate,
-+ CK_ULONG ulCount,
-+ CK_OBJECT_HANDLE_PTR phNewObject
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_CopyObject"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" hObject = 0x%x", hObject));
-+ PR_LOG(modlog, 3, (" pTemplate = 0x%p", pTemplate));
-+ PR_LOG(modlog, 3, (" ulCount = %d", ulCount));
-+ PR_LOG(modlog, 3, (" phNewObject = 0x%p", phNewObject));
-+ print_template(pTemplate, ulCount);
-+ nssdbg_start_time(FUNC_C_COPYOBJECT,&start);
-+ rv = module_functions->C_CopyObject(hSession,
-+ hObject,
-+ pTemplate,
-+ ulCount,
-+ phNewObject);
-+ nssdbg_finish_time(FUNC_C_COPYOBJECT,start);
-+ PR_LOG(modlog, 4, (" *phNewObject = 0x%x", *phNewObject));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_DestroyObject(
-+ CK_SESSION_HANDLE hSession,
-+ CK_OBJECT_HANDLE hObject
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_DestroyObject"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" hObject = 0x%x", hObject));
-+ nssdbg_start_time(FUNC_C_DESTROYOBJECT,&start);
-+ rv = module_functions->C_DestroyObject(hSession,
-+ hObject);
-+ nssdbg_finish_time(FUNC_C_DESTROYOBJECT,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_GetObjectSize(
-+ CK_SESSION_HANDLE hSession,
-+ CK_OBJECT_HANDLE hObject,
-+ CK_ULONG_PTR pulSize
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_GetObjectSize"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" hObject = 0x%x", hObject));
-+ PR_LOG(modlog, 3, (" pulSize = 0x%p", pulSize));
-+ nssdbg_start_time(FUNC_C_GETOBJECTSIZE,&start);
-+ rv = module_functions->C_GetObjectSize(hSession,
-+ hObject,
-+ pulSize);
-+ nssdbg_finish_time(FUNC_C_GETOBJECTSIZE,start);
-+ PR_LOG(modlog, 4, (" *pulSize = 0x%x", *pulSize));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_GetAttributeValue(
-+ CK_SESSION_HANDLE hSession,
-+ CK_OBJECT_HANDLE hObject,
-+ CK_ATTRIBUTE_PTR pTemplate,
-+ CK_ULONG ulCount
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_GetAttributeValue"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" hObject = 0x%x", hObject));
-+ PR_LOG(modlog, 3, (" pTemplate = 0x%p", pTemplate));
-+ PR_LOG(modlog, 3, (" ulCount = %d", ulCount));
-+ nssdbg_start_time(FUNC_C_GETATTRIBUTEVALUE,&start);
-+ rv = module_functions->C_GetAttributeValue(hSession,
-+ hObject,
-+ pTemplate,
-+ ulCount);
-+ nssdbg_finish_time(FUNC_C_GETATTRIBUTEVALUE,start);
-+ print_template(pTemplate, ulCount);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_SetAttributeValue(
-+ CK_SESSION_HANDLE hSession,
-+ CK_OBJECT_HANDLE hObject,
-+ CK_ATTRIBUTE_PTR pTemplate,
-+ CK_ULONG ulCount
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_SetAttributeValue"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" hObject = 0x%x", hObject));
-+ PR_LOG(modlog, 3, (" pTemplate = 0x%p", pTemplate));
-+ PR_LOG(modlog, 3, (" ulCount = %d", ulCount));
-+ print_template(pTemplate, ulCount);
-+ nssdbg_start_time(FUNC_C_SETATTRIBUTEVALUE,&start);
-+ rv = module_functions->C_SetAttributeValue(hSession,
-+ hObject,
-+ pTemplate,
-+ ulCount);
-+ nssdbg_finish_time(FUNC_C_SETATTRIBUTEVALUE,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_FindObjectsInit(
-+ CK_SESSION_HANDLE hSession,
-+ CK_ATTRIBUTE_PTR pTemplate,
-+ CK_ULONG ulCount
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_FindObjectsInit"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pTemplate = 0x%p", pTemplate));
-+ PR_LOG(modlog, 3, (" ulCount = %d", ulCount));
-+ print_template(pTemplate, ulCount);
-+ nssdbg_start_time(FUNC_C_FINDOBJECTSINIT,&start);
-+ rv = module_functions->C_FindObjectsInit(hSession,
-+ pTemplate,
-+ ulCount);
-+ nssdbg_finish_time(FUNC_C_FINDOBJECTSINIT,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_FindObjects(
-+ CK_SESSION_HANDLE hSession,
-+ CK_OBJECT_HANDLE_PTR phObject,
-+ CK_ULONG ulMaxObjectCount,
-+ CK_ULONG_PTR pulObjectCount
-+)
-+{
-+ CK_RV rv;
-+ CK_ULONG i;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_FindObjects"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" phObject = 0x%p", phObject));
-+ PR_LOG(modlog, 3, (" ulMaxObjectCount = %d", ulMaxObjectCount));
-+ PR_LOG(modlog, 3, (" pulObjectCount = 0x%p", pulObjectCount));
-+ nssdbg_start_time(FUNC_C_FINDOBJECTS,&start);
-+ rv = module_functions->C_FindObjects(hSession,
-+ phObject,
-+ ulMaxObjectCount,
-+ pulObjectCount);
-+ nssdbg_finish_time(FUNC_C_FINDOBJECTS,start);
-+ PR_LOG(modlog, 4, (" *pulObjectCount = 0x%x", *pulObjectCount));
-+ for (i=0; i<*pulObjectCount; i++) {
-+ PR_LOG(modlog, 4, (" phObject[%d] = 0x%x", i, phObject[i]));
-+ }
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_FindObjectsFinal(
-+ CK_SESSION_HANDLE hSession
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_FindObjectsFinal"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ nssdbg_start_time(FUNC_C_FINDOBJECTSFINAL,&start);
-+ rv = module_functions->C_FindObjectsFinal(hSession);
-+ nssdbg_finish_time(FUNC_C_FINDOBJECTSFINAL,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_EncryptInit(
-+ CK_SESSION_HANDLE hSession,
-+ CK_MECHANISM_PTR pMechanism,
-+ CK_OBJECT_HANDLE hKey
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_EncryptInit"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pMechanism = 0x%p", pMechanism));
-+ PR_LOG(modlog, 3, (" hKey = 0x%x", hKey));
-+ print_mechanism(pMechanism);
-+ nssdbg_start_time(FUNC_C_ENCRYPTINIT,&start);
-+ rv = module_functions->C_EncryptInit(hSession,
-+ pMechanism,
-+ hKey);
-+ nssdbg_finish_time(FUNC_C_ENCRYPTINIT,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_Encrypt(
-+ CK_SESSION_HANDLE hSession,
-+ CK_BYTE_PTR pData,
-+ CK_ULONG ulDataLen,
-+ CK_BYTE_PTR pEncryptedData,
-+ CK_ULONG_PTR pulEncryptedDataLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_Encrypt"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pData = 0x%p", pData));
-+ PR_LOG(modlog, 3, (" ulDataLen = %d", ulDataLen));
-+ PR_LOG(modlog, 3, (" pEncryptedData = 0x%p", pEncryptedData));
-+ PR_LOG(modlog, 3, (" pulEncryptedDataLen = 0x%p", pulEncryptedDataLen));
-+ nssdbg_start_time(FUNC_C_ENCRYPT,&start);
-+ rv = module_functions->C_Encrypt(hSession,
-+ pData,
-+ ulDataLen,
-+ pEncryptedData,
-+ pulEncryptedDataLen);
-+ nssdbg_finish_time(FUNC_C_ENCRYPT,start);
-+ PR_LOG(modlog, 4, (" *pulEncryptedDataLen = 0x%x", *pulEncryptedDataLen));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_EncryptUpdate(
-+ CK_SESSION_HANDLE hSession,
-+ CK_BYTE_PTR pPart,
-+ CK_ULONG ulPartLen,
-+ CK_BYTE_PTR pEncryptedPart,
-+ CK_ULONG_PTR pulEncryptedPartLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_EncryptUpdate"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pPart = 0x%p", pPart));
-+ PR_LOG(modlog, 3, (" ulPartLen = %d", ulPartLen));
-+ PR_LOG(modlog, 3, (" pEncryptedPart = 0x%p", pEncryptedPart));
-+ PR_LOG(modlog, 3, (" pulEncryptedPartLen = 0x%p", pulEncryptedPartLen));
-+ nssdbg_start_time(FUNC_C_ENCRYPTUPDATE,&start);
-+ rv = module_functions->C_EncryptUpdate(hSession,
-+ pPart,
-+ ulPartLen,
-+ pEncryptedPart,
-+ pulEncryptedPartLen);
-+ nssdbg_finish_time(FUNC_C_ENCRYPTUPDATE,start);
-+ PR_LOG(modlog, 4, (" *pulEncryptedPartLen = 0x%x", *pulEncryptedPartLen));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_EncryptFinal(
-+ CK_SESSION_HANDLE hSession,
-+ CK_BYTE_PTR pLastEncryptedPart,
-+ CK_ULONG_PTR pulLastEncryptedPartLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_EncryptFinal"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pLastEncryptedPart = 0x%p", pLastEncryptedPart));
-+ PR_LOG(modlog, 3, (" pulLastEncryptedPartLen = 0x%p", pulLastEncryptedPartLen));
-+ nssdbg_start_time(FUNC_C_ENCRYPTFINAL,&start);
-+ rv = module_functions->C_EncryptFinal(hSession,
-+ pLastEncryptedPart,
-+ pulLastEncryptedPartLen);
-+ nssdbg_finish_time(FUNC_C_ENCRYPTFINAL,start);
-+ PR_LOG(modlog, 4, (" *pulLastEncryptedPartLen = 0x%x", *pulLastEncryptedPartLen));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_DecryptInit(
-+ CK_SESSION_HANDLE hSession,
-+ CK_MECHANISM_PTR pMechanism,
-+ CK_OBJECT_HANDLE hKey
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_DecryptInit"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pMechanism = 0x%p", pMechanism));
-+ PR_LOG(modlog, 3, (" hKey = 0x%x", hKey));
-+ print_mechanism(pMechanism);
-+ nssdbg_start_time(FUNC_C_DECRYPTINIT,&start);
-+ rv = module_functions->C_DecryptInit(hSession,
-+ pMechanism,
-+ hKey);
-+ nssdbg_finish_time(FUNC_C_DECRYPTINIT,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_Decrypt(
-+ CK_SESSION_HANDLE hSession,
-+ CK_BYTE_PTR pEncryptedData,
-+ CK_ULONG ulEncryptedDataLen,
-+ CK_BYTE_PTR pData,
-+ CK_ULONG_PTR pulDataLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_Decrypt"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pEncryptedData = 0x%p", pEncryptedData));
-+ PR_LOG(modlog, 3, (" ulEncryptedDataLen = %d", ulEncryptedDataLen));
-+ PR_LOG(modlog, 3, (" pData = 0x%p", pData));
-+ PR_LOG(modlog, 3, (" pulDataLen = 0x%p", pulDataLen));
-+ nssdbg_start_time(FUNC_C_DECRYPT,&start);
-+ rv = module_functions->C_Decrypt(hSession,
-+ pEncryptedData,
-+ ulEncryptedDataLen,
-+ pData,
-+ pulDataLen);
-+ nssdbg_finish_time(FUNC_C_DECRYPT,start);
-+ PR_LOG(modlog, 4, (" *pulDataLen = 0x%x", *pulDataLen));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_DecryptUpdate(
-+ CK_SESSION_HANDLE hSession,
-+ CK_BYTE_PTR pEncryptedPart,
-+ CK_ULONG ulEncryptedPartLen,
-+ CK_BYTE_PTR pPart,
-+ CK_ULONG_PTR pulPartLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_DecryptUpdate"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pEncryptedPart = 0x%p", pEncryptedPart));
-+ PR_LOG(modlog, 3, (" ulEncryptedPartLen = %d", ulEncryptedPartLen));
-+ PR_LOG(modlog, 3, (" pPart = 0x%p", pPart));
-+ PR_LOG(modlog, 3, (" pulPartLen = 0x%p", pulPartLen));
-+ nssdbg_start_time(FUNC_C_DECRYPTUPDATE,&start);
-+ rv = module_functions->C_DecryptUpdate(hSession,
-+ pEncryptedPart,
-+ ulEncryptedPartLen,
-+ pPart,
-+ pulPartLen);
-+ nssdbg_finish_time(FUNC_C_DECRYPTUPDATE,start);
-+ PR_LOG(modlog, 4, (" *pulPartLen = 0x%x", *pulPartLen));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_DecryptFinal(
-+ CK_SESSION_HANDLE hSession,
-+ CK_BYTE_PTR pLastPart,
-+ CK_ULONG_PTR pulLastPartLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_DecryptFinal"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pLastPart = 0x%p", pLastPart));
-+ PR_LOG(modlog, 3, (" pulLastPartLen = 0x%p", pulLastPartLen));
-+ nssdbg_start_time(FUNC_C_DECRYPTFINAL,&start);
-+ rv = module_functions->C_DecryptFinal(hSession,
-+ pLastPart,
-+ pulLastPartLen);
-+ nssdbg_finish_time(FUNC_C_DECRYPTFINAL,start);
-+ PR_LOG(modlog, 4, (" *pulLastPartLen = 0x%x", *pulLastPartLen));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_DigestInit(
-+ CK_SESSION_HANDLE hSession,
-+ CK_MECHANISM_PTR pMechanism
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_DigestInit"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pMechanism = 0x%p", pMechanism));
-+ print_mechanism(pMechanism);
-+ nssdbg_start_time(FUNC_C_DIGESTINIT,&start);
-+ rv = module_functions->C_DigestInit(hSession,
-+ pMechanism);
-+ nssdbg_finish_time(FUNC_C_DIGESTINIT,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_Digest(
-+ CK_SESSION_HANDLE hSession,
-+ CK_BYTE_PTR pData,
-+ CK_ULONG ulDataLen,
-+ CK_BYTE_PTR pDigest,
-+ CK_ULONG_PTR pulDigestLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_Digest"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pData = 0x%p", pData));
-+ PR_LOG(modlog, 3, (" ulDataLen = %d", ulDataLen));
-+ PR_LOG(modlog, 3, (" pDigest = 0x%p", pDigest));
-+ PR_LOG(modlog, 3, (" pulDigestLen = 0x%p", pulDigestLen));
-+ nssdbg_start_time(FUNC_C_DIGEST,&start);
-+ rv = module_functions->C_Digest(hSession,
-+ pData,
-+ ulDataLen,
-+ pDigest,
-+ pulDigestLen);
-+ nssdbg_finish_time(FUNC_C_DIGEST,start);
-+ PR_LOG(modlog, 4, (" *pulDigestLen = 0x%x", *pulDigestLen));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_DigestUpdate(
-+ CK_SESSION_HANDLE hSession,
-+ CK_BYTE_PTR pPart,
-+ CK_ULONG ulPartLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_DigestUpdate"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pPart = 0x%p", pPart));
-+ PR_LOG(modlog, 3, (" ulPartLen = %d", ulPartLen));
-+ nssdbg_start_time(FUNC_C_DIGESTUPDATE,&start);
-+ rv = module_functions->C_DigestUpdate(hSession,
-+ pPart,
-+ ulPartLen);
-+ nssdbg_finish_time(FUNC_C_DIGESTUPDATE,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_DigestKey(
-+ CK_SESSION_HANDLE hSession,
-+ CK_OBJECT_HANDLE hKey
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_DigestKey"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ nssdbg_start_time(FUNC_C_DIGESTKEY,&start);
-+ rv = module_functions->C_DigestKey(hSession,
-+ hKey);
-+ nssdbg_finish_time(FUNC_C_DIGESTKEY,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_DigestFinal(
-+ CK_SESSION_HANDLE hSession,
-+ CK_BYTE_PTR pDigest,
-+ CK_ULONG_PTR pulDigestLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_DigestFinal"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pDigest = 0x%p", pDigest));
-+ PR_LOG(modlog, 3, (" pulDigestLen = 0x%p", pulDigestLen));
-+ nssdbg_start_time(FUNC_C_DIGESTFINAL,&start);
-+ rv = module_functions->C_DigestFinal(hSession,
-+ pDigest,
-+ pulDigestLen);
-+ nssdbg_finish_time(FUNC_C_DIGESTFINAL,start);
-+ PR_LOG(modlog, 4, (" *pulDigestLen = 0x%x", *pulDigestLen));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_SignInit(
-+ CK_SESSION_HANDLE hSession,
-+ CK_MECHANISM_PTR pMechanism,
-+ CK_OBJECT_HANDLE hKey
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_SignInit"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pMechanism = 0x%p", pMechanism));
-+ PR_LOG(modlog, 3, (" hKey = 0x%x", hKey));
-+ print_mechanism(pMechanism);
-+ nssdbg_start_time(FUNC_C_SIGNINIT,&start);
-+ rv = module_functions->C_SignInit(hSession,
-+ pMechanism,
-+ hKey);
-+ nssdbg_finish_time(FUNC_C_SIGNINIT,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_Sign(
-+ CK_SESSION_HANDLE hSession,
-+ CK_BYTE_PTR pData,
-+ CK_ULONG ulDataLen,
-+ CK_BYTE_PTR pSignature,
-+ CK_ULONG_PTR pulSignatureLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_Sign"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pData = 0x%p", pData));
-+ PR_LOG(modlog, 3, (" ulDataLen = %d", ulDataLen));
-+ PR_LOG(modlog, 3, (" pSignature = 0x%p", pSignature));
-+ PR_LOG(modlog, 3, (" pulSignatureLen = 0x%p", pulSignatureLen));
-+ nssdbg_start_time(FUNC_C_SIGN,&start);
-+ rv = module_functions->C_Sign(hSession,
-+ pData,
-+ ulDataLen,
-+ pSignature,
-+ pulSignatureLen);
-+ nssdbg_finish_time(FUNC_C_SIGN,start);
-+ PR_LOG(modlog, 4, (" *pulSignatureLen = 0x%x", *pulSignatureLen));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_SignUpdate(
-+ CK_SESSION_HANDLE hSession,
-+ CK_BYTE_PTR pPart,
-+ CK_ULONG ulPartLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_SignUpdate"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pPart = 0x%p", pPart));
-+ PR_LOG(modlog, 3, (" ulPartLen = %d", ulPartLen));
-+ nssdbg_start_time(FUNC_C_SIGNUPDATE,&start);
-+ rv = module_functions->C_SignUpdate(hSession,
-+ pPart,
-+ ulPartLen);
-+ nssdbg_finish_time(FUNC_C_SIGNUPDATE,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_SignFinal(
-+ CK_SESSION_HANDLE hSession,
-+ CK_BYTE_PTR pSignature,
-+ CK_ULONG_PTR pulSignatureLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_SignFinal"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pSignature = 0x%p", pSignature));
-+ PR_LOG(modlog, 3, (" pulSignatureLen = 0x%p", pulSignatureLen));
-+ nssdbg_start_time(FUNC_C_SIGNFINAL,&start);
-+ rv = module_functions->C_SignFinal(hSession,
-+ pSignature,
-+ pulSignatureLen);
-+ nssdbg_finish_time(FUNC_C_SIGNFINAL,start);
-+ PR_LOG(modlog, 4, (" *pulSignatureLen = 0x%x", *pulSignatureLen));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_SignRecoverInit(
-+ CK_SESSION_HANDLE hSession,
-+ CK_MECHANISM_PTR pMechanism,
-+ CK_OBJECT_HANDLE hKey
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_SignRecoverInit"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pMechanism = 0x%p", pMechanism));
-+ PR_LOG(modlog, 3, (" hKey = 0x%x", hKey));
-+ print_mechanism(pMechanism);
-+ nssdbg_start_time(FUNC_C_SIGNRECOVERINIT,&start);
-+ rv = module_functions->C_SignRecoverInit(hSession,
-+ pMechanism,
-+ hKey);
-+ nssdbg_finish_time(FUNC_C_SIGNRECOVERINIT,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_SignRecover(
-+ CK_SESSION_HANDLE hSession,
-+ CK_BYTE_PTR pData,
-+ CK_ULONG ulDataLen,
-+ CK_BYTE_PTR pSignature,
-+ CK_ULONG_PTR pulSignatureLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_SignRecover"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pData = 0x%p", pData));
-+ PR_LOG(modlog, 3, (" ulDataLen = %d", ulDataLen));
-+ PR_LOG(modlog, 3, (" pSignature = 0x%p", pSignature));
-+ PR_LOG(modlog, 3, (" pulSignatureLen = 0x%p", pulSignatureLen));
-+ nssdbg_start_time(FUNC_C_SIGNRECOVER,&start);
-+ rv = module_functions->C_SignRecover(hSession,
-+ pData,
-+ ulDataLen,
-+ pSignature,
-+ pulSignatureLen);
-+ nssdbg_finish_time(FUNC_C_SIGNRECOVER,start);
-+ PR_LOG(modlog, 4, (" *pulSignatureLen = 0x%x", *pulSignatureLen));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_VerifyInit(
-+ CK_SESSION_HANDLE hSession,
-+ CK_MECHANISM_PTR pMechanism,
-+ CK_OBJECT_HANDLE hKey
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_VerifyInit"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pMechanism = 0x%p", pMechanism));
-+ PR_LOG(modlog, 3, (" hKey = 0x%x", hKey));
-+ print_mechanism(pMechanism);
-+ nssdbg_start_time(FUNC_C_VERIFYINIT,&start);
-+ rv = module_functions->C_VerifyInit(hSession,
-+ pMechanism,
-+ hKey);
-+ nssdbg_finish_time(FUNC_C_VERIFYINIT,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_Verify(
-+ CK_SESSION_HANDLE hSession,
-+ CK_BYTE_PTR pData,
-+ CK_ULONG ulDataLen,
-+ CK_BYTE_PTR pSignature,
-+ CK_ULONG ulSignatureLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_Verify"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pData = 0x%p", pData));
-+ PR_LOG(modlog, 3, (" ulDataLen = %d", ulDataLen));
-+ PR_LOG(modlog, 3, (" pSignature = 0x%p", pSignature));
-+ PR_LOG(modlog, 3, (" ulSignatureLen = %d", ulSignatureLen));
-+ nssdbg_start_time(FUNC_C_VERIFY,&start);
-+ rv = module_functions->C_Verify(hSession,
-+ pData,
-+ ulDataLen,
-+ pSignature,
-+ ulSignatureLen);
-+ nssdbg_finish_time(FUNC_C_VERIFY,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_VerifyUpdate(
-+ CK_SESSION_HANDLE hSession,
-+ CK_BYTE_PTR pPart,
-+ CK_ULONG ulPartLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_VerifyUpdate"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pPart = 0x%p", pPart));
-+ PR_LOG(modlog, 3, (" ulPartLen = %d", ulPartLen));
-+ nssdbg_start_time(FUNC_C_VERIFYUPDATE,&start);
-+ rv = module_functions->C_VerifyUpdate(hSession,
-+ pPart,
-+ ulPartLen);
-+ nssdbg_finish_time(FUNC_C_VERIFYUPDATE,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_VerifyFinal(
-+ CK_SESSION_HANDLE hSession,
-+ CK_BYTE_PTR pSignature,
-+ CK_ULONG ulSignatureLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_VerifyFinal"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pSignature = 0x%p", pSignature));
-+ PR_LOG(modlog, 3, (" ulSignatureLen = %d", ulSignatureLen));
-+ nssdbg_start_time(FUNC_C_VERIFYFINAL,&start);
-+ rv = module_functions->C_VerifyFinal(hSession,
-+ pSignature,
-+ ulSignatureLen);
-+ nssdbg_finish_time(FUNC_C_VERIFYFINAL,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_VerifyRecoverInit(
-+ CK_SESSION_HANDLE hSession,
-+ CK_MECHANISM_PTR pMechanism,
-+ CK_OBJECT_HANDLE hKey
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_VerifyRecoverInit"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pMechanism = 0x%p", pMechanism));
-+ PR_LOG(modlog, 3, (" hKey = 0x%x", hKey));
-+ print_mechanism(pMechanism);
-+ nssdbg_start_time(FUNC_C_VERIFYRECOVERINIT,&start);
-+ rv = module_functions->C_VerifyRecoverInit(hSession,
-+ pMechanism,
-+ hKey);
-+ nssdbg_finish_time(FUNC_C_VERIFYRECOVERINIT,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_VerifyRecover(
-+ CK_SESSION_HANDLE hSession,
-+ CK_BYTE_PTR pSignature,
-+ CK_ULONG ulSignatureLen,
-+ CK_BYTE_PTR pData,
-+ CK_ULONG_PTR pulDataLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_VerifyRecover"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pSignature = 0x%p", pSignature));
-+ PR_LOG(modlog, 3, (" ulSignatureLen = %d", ulSignatureLen));
-+ PR_LOG(modlog, 3, (" pData = 0x%p", pData));
-+ PR_LOG(modlog, 3, (" pulDataLen = 0x%p", pulDataLen));
-+ nssdbg_start_time(FUNC_C_VERIFYRECOVER,&start);
-+ rv = module_functions->C_VerifyRecover(hSession,
-+ pSignature,
-+ ulSignatureLen,
-+ pData,
-+ pulDataLen);
-+ nssdbg_finish_time(FUNC_C_VERIFYRECOVER,start);
-+ PR_LOG(modlog, 4, (" *pulDataLen = 0x%x", *pulDataLen));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_DigestEncryptUpdate(
-+ CK_SESSION_HANDLE hSession,
-+ CK_BYTE_PTR pPart,
-+ CK_ULONG ulPartLen,
-+ CK_BYTE_PTR pEncryptedPart,
-+ CK_ULONG_PTR pulEncryptedPartLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_DigestEncryptUpdate"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pPart = 0x%p", pPart));
-+ PR_LOG(modlog, 3, (" ulPartLen = %d", ulPartLen));
-+ PR_LOG(modlog, 3, (" pEncryptedPart = 0x%p", pEncryptedPart));
-+ PR_LOG(modlog, 3, (" pulEncryptedPartLen = 0x%p", pulEncryptedPartLen));
-+ nssdbg_start_time(FUNC_C_DIGESTENCRYPTUPDATE,&start);
-+ rv = module_functions->C_DigestEncryptUpdate(hSession,
-+ pPart,
-+ ulPartLen,
-+ pEncryptedPart,
-+ pulEncryptedPartLen);
-+ nssdbg_finish_time(FUNC_C_DIGESTENCRYPTUPDATE,start);
-+ PR_LOG(modlog, 4, (" *pulEncryptedPartLen = 0x%x", *pulEncryptedPartLen));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_DecryptDigestUpdate(
-+ CK_SESSION_HANDLE hSession,
-+ CK_BYTE_PTR pEncryptedPart,
-+ CK_ULONG ulEncryptedPartLen,
-+ CK_BYTE_PTR pPart,
-+ CK_ULONG_PTR pulPartLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_DecryptDigestUpdate"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pEncryptedPart = 0x%p", pEncryptedPart));
-+ PR_LOG(modlog, 3, (" ulEncryptedPartLen = %d", ulEncryptedPartLen));
-+ PR_LOG(modlog, 3, (" pPart = 0x%p", pPart));
-+ PR_LOG(modlog, 3, (" pulPartLen = 0x%p", pulPartLen));
-+ nssdbg_start_time(FUNC_C_DECRYPTDIGESTUPDATE,&start);
-+ rv = module_functions->C_DecryptDigestUpdate(hSession,
-+ pEncryptedPart,
-+ ulEncryptedPartLen,
-+ pPart,
-+ pulPartLen);
-+ nssdbg_finish_time(FUNC_C_DECRYPTDIGESTUPDATE,start);
-+ PR_LOG(modlog, 4, (" *pulPartLen = 0x%x", *pulPartLen));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_SignEncryptUpdate(
-+ CK_SESSION_HANDLE hSession,
-+ CK_BYTE_PTR pPart,
-+ CK_ULONG ulPartLen,
-+ CK_BYTE_PTR pEncryptedPart,
-+ CK_ULONG_PTR pulEncryptedPartLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_SignEncryptUpdate"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pPart = 0x%p", pPart));
-+ PR_LOG(modlog, 3, (" ulPartLen = %d", ulPartLen));
-+ PR_LOG(modlog, 3, (" pEncryptedPart = 0x%p", pEncryptedPart));
-+ PR_LOG(modlog, 3, (" pulEncryptedPartLen = 0x%p", pulEncryptedPartLen));
-+ nssdbg_start_time(FUNC_C_SIGNENCRYPTUPDATE,&start);
-+ rv = module_functions->C_SignEncryptUpdate(hSession,
-+ pPart,
-+ ulPartLen,
-+ pEncryptedPart,
-+ pulEncryptedPartLen);
-+ nssdbg_finish_time(FUNC_C_SIGNENCRYPTUPDATE,start);
-+ PR_LOG(modlog, 4, (" *pulEncryptedPartLen = 0x%x", *pulEncryptedPartLen));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_DecryptVerifyUpdate(
-+ CK_SESSION_HANDLE hSession,
-+ CK_BYTE_PTR pEncryptedPart,
-+ CK_ULONG ulEncryptedPartLen,
-+ CK_BYTE_PTR pPart,
-+ CK_ULONG_PTR pulPartLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_DecryptVerifyUpdate"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pEncryptedPart = 0x%p", pEncryptedPart));
-+ PR_LOG(modlog, 3, (" ulEncryptedPartLen = %d", ulEncryptedPartLen));
-+ PR_LOG(modlog, 3, (" pPart = 0x%p", pPart));
-+ PR_LOG(modlog, 3, (" pulPartLen = 0x%p", pulPartLen));
-+ nssdbg_start_time(FUNC_C_DECRYPTVERIFYUPDATE,&start);
-+ rv = module_functions->C_DecryptVerifyUpdate(hSession,
-+ pEncryptedPart,
-+ ulEncryptedPartLen,
-+ pPart,
-+ pulPartLen);
-+ nssdbg_finish_time(FUNC_C_DECRYPTVERIFYUPDATE,start);
-+ PR_LOG(modlog, 4, (" *pulPartLen = 0x%x", *pulPartLen));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_GenerateKey(
-+ CK_SESSION_HANDLE hSession,
-+ CK_MECHANISM_PTR pMechanism,
-+ CK_ATTRIBUTE_PTR pTemplate,
-+ CK_ULONG ulCount,
-+ CK_OBJECT_HANDLE_PTR phKey
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_GenerateKey"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pMechanism = 0x%p", pMechanism));
-+ PR_LOG(modlog, 3, (" pTemplate = 0x%p", pTemplate));
-+ PR_LOG(modlog, 3, (" ulCount = %d", ulCount));
-+ PR_LOG(modlog, 3, (" phKey = 0x%p", phKey));
-+ print_template(pTemplate, ulCount);
-+ print_mechanism(pMechanism);
-+ nssdbg_start_time(FUNC_C_GENERATEKEY,&start);
-+ rv = module_functions->C_GenerateKey(hSession,
-+ pMechanism,
-+ pTemplate,
-+ ulCount,
-+ phKey);
-+ nssdbg_finish_time(FUNC_C_GENERATEKEY,start);
-+ PR_LOG(modlog, 4, (" *phKey = 0x%x", *phKey));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_GenerateKeyPair(
-+ CK_SESSION_HANDLE hSession,
-+ CK_MECHANISM_PTR pMechanism,
-+ CK_ATTRIBUTE_PTR pPublicKeyTemplate,
-+ CK_ULONG ulPublicKeyAttributeCount,
-+ CK_ATTRIBUTE_PTR pPrivateKeyTemplate,
-+ CK_ULONG ulPrivateKeyAttributeCount,
-+ CK_OBJECT_HANDLE_PTR phPublicKey,
-+ CK_OBJECT_HANDLE_PTR phPrivateKey
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_GenerateKeyPair"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pMechanism = 0x%p", pMechanism));
-+ PR_LOG(modlog, 3, (" pPublicKeyTemplate = 0x%p", pPublicKeyTemplate));
-+ PR_LOG(modlog, 3, (" ulPublicKeyAttributeCount = %d", ulPublicKeyAttributeCount));
-+ PR_LOG(modlog, 3, (" pPrivateKeyTemplate = 0x%p", pPrivateKeyTemplate));
-+ PR_LOG(modlog, 3, (" ulPrivateKeyAttributeCount = %d", ulPrivateKeyAttributeCount));
-+ PR_LOG(modlog, 3, (" phPublicKey = 0x%p", phPublicKey));
-+ PR_LOG(modlog, 3, (" phPrivateKey = 0x%p", phPrivateKey));
-+ print_template(pPublicKeyTemplate, ulPublicKeyAttributeCount);
-+ print_template(pPrivateKeyTemplate, ulPrivateKeyAttributeCount);
-+ print_mechanism(pMechanism);
-+ nssdbg_start_time(FUNC_C_GENERATEKEYPAIR,&start);
-+ rv = module_functions->C_GenerateKeyPair(hSession,
-+ pMechanism,
-+ pPublicKeyTemplate,
-+ ulPublicKeyAttributeCount,
-+ pPrivateKeyTemplate,
-+ ulPrivateKeyAttributeCount,
-+ phPublicKey,
-+ phPrivateKey);
-+ nssdbg_finish_time(FUNC_C_GENERATEKEYPAIR,start);
-+ PR_LOG(modlog, 4, (" *phPublicKey = 0x%x", *phPublicKey));
-+ PR_LOG(modlog, 4, (" *phPrivateKey = 0x%x", *phPrivateKey));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_WrapKey(
-+ CK_SESSION_HANDLE hSession,
-+ CK_MECHANISM_PTR pMechanism,
-+ CK_OBJECT_HANDLE hWrappingKey,
-+ CK_OBJECT_HANDLE hKey,
-+ CK_BYTE_PTR pWrappedKey,
-+ CK_ULONG_PTR pulWrappedKeyLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_WrapKey"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pMechanism = 0x%p", pMechanism));
-+ PR_LOG(modlog, 3, (" hWrappingKey = 0x%x", hWrappingKey));
-+ PR_LOG(modlog, 3, (" hKey = 0x%x", hKey));
-+ PR_LOG(modlog, 3, (" pWrappedKey = 0x%p", pWrappedKey));
-+ PR_LOG(modlog, 3, (" pulWrappedKeyLen = 0x%p", pulWrappedKeyLen));
-+ print_mechanism(pMechanism);
-+ nssdbg_start_time(FUNC_C_WRAPKEY,&start);
-+ rv = module_functions->C_WrapKey(hSession,
-+ pMechanism,
-+ hWrappingKey,
-+ hKey,
-+ pWrappedKey,
-+ pulWrappedKeyLen);
-+ nssdbg_finish_time(FUNC_C_WRAPKEY,start);
-+ PR_LOG(modlog, 4, (" *pulWrappedKeyLen = 0x%x", *pulWrappedKeyLen));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_UnwrapKey(
-+ CK_SESSION_HANDLE hSession,
-+ CK_MECHANISM_PTR pMechanism,
-+ CK_OBJECT_HANDLE hUnwrappingKey,
-+ CK_BYTE_PTR pWrappedKey,
-+ CK_ULONG ulWrappedKeyLen,
-+ CK_ATTRIBUTE_PTR pTemplate,
-+ CK_ULONG ulAttributeCount,
-+ CK_OBJECT_HANDLE_PTR phKey
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_UnwrapKey"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pMechanism = 0x%p", pMechanism));
-+ PR_LOG(modlog, 3, (" hUnwrappingKey = 0x%x", hUnwrappingKey));
-+ PR_LOG(modlog, 3, (" pWrappedKey = 0x%p", pWrappedKey));
-+ PR_LOG(modlog, 3, (" ulWrappedKeyLen = %d", ulWrappedKeyLen));
-+ PR_LOG(modlog, 3, (" pTemplate = 0x%p", pTemplate));
-+ PR_LOG(modlog, 3, (" ulAttributeCount = %d", ulAttributeCount));
-+ PR_LOG(modlog, 3, (" phKey = 0x%p", phKey));
-+ print_template(pTemplate, ulAttributeCount);
-+ print_mechanism(pMechanism);
-+ nssdbg_start_time(FUNC_C_UNWRAPKEY,&start);
-+ rv = module_functions->C_UnwrapKey(hSession,
-+ pMechanism,
-+ hUnwrappingKey,
-+ pWrappedKey,
-+ ulWrappedKeyLen,
-+ pTemplate,
-+ ulAttributeCount,
-+ phKey);
-+ nssdbg_finish_time(FUNC_C_UNWRAPKEY,start);
-+ PR_LOG(modlog, 4, (" *phKey = 0x%x", *phKey));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_DeriveKey(
-+ CK_SESSION_HANDLE hSession,
-+ CK_MECHANISM_PTR pMechanism,
-+ CK_OBJECT_HANDLE hBaseKey,
-+ CK_ATTRIBUTE_PTR pTemplate,
-+ CK_ULONG ulAttributeCount,
-+ CK_OBJECT_HANDLE_PTR phKey
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_DeriveKey"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pMechanism = 0x%p", pMechanism));
-+ PR_LOG(modlog, 3, (" hBaseKey = 0x%x", hBaseKey));
-+ PR_LOG(modlog, 3, (" pTemplate = 0x%p", pTemplate));
-+ PR_LOG(modlog, 3, (" ulAttributeCount = %d", ulAttributeCount));
-+ PR_LOG(modlog, 3, (" phKey = 0x%p", phKey));
-+ print_template(pTemplate, ulAttributeCount);
-+ print_mechanism(pMechanism);
-+ nssdbg_start_time(FUNC_C_DERIVEKEY,&start);
-+ rv = module_functions->C_DeriveKey(hSession,
-+ pMechanism,
-+ hBaseKey,
-+ pTemplate,
-+ ulAttributeCount,
-+ phKey);
-+ nssdbg_finish_time(FUNC_C_DERIVEKEY,start);
-+ PR_LOG(modlog, 4, (" *phKey = 0x%x", *phKey));
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_SeedRandom(
-+ CK_SESSION_HANDLE hSession,
-+ CK_BYTE_PTR pSeed,
-+ CK_ULONG ulSeedLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_SeedRandom"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" pSeed = 0x%p", pSeed));
-+ PR_LOG(modlog, 3, (" ulSeedLen = %d", ulSeedLen));
-+ nssdbg_start_time(FUNC_C_SEEDRANDOM,&start);
-+ rv = module_functions->C_SeedRandom(hSession,
-+ pSeed,
-+ ulSeedLen);
-+ nssdbg_finish_time(FUNC_C_SEEDRANDOM,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_GenerateRandom(
-+ CK_SESSION_HANDLE hSession,
-+ CK_BYTE_PTR RandomData,
-+ CK_ULONG ulRandomLen
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_GenerateRandom"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ PR_LOG(modlog, 3, (" RandomData = 0x%p", RandomData));
-+ PR_LOG(modlog, 3, (" ulRandomLen = %d", ulRandomLen));
-+ nssdbg_start_time(FUNC_C_GENERATERANDOM,&start);
-+ rv = module_functions->C_GenerateRandom(hSession,
-+ RandomData,
-+ ulRandomLen);
-+ nssdbg_finish_time(FUNC_C_GENERATERANDOM,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_GetFunctionStatus(
-+ CK_SESSION_HANDLE hSession
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_GetFunctionStatus"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ nssdbg_start_time(FUNC_C_GETFUNCTIONSTATUS,&start);
-+ rv = module_functions->C_GetFunctionStatus(hSession);
-+ nssdbg_finish_time(FUNC_C_GETFUNCTIONSTATUS,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_CancelFunction(
-+ CK_SESSION_HANDLE hSession
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_CancelFunction"));
-+ PR_LOG(modlog, 3, (" hSession = 0x%x", hSession));
-+ nssdbg_start_time(FUNC_C_CANCELFUNCTION,&start);
-+ rv = module_functions->C_CancelFunction(hSession);
-+ nssdbg_finish_time(FUNC_C_CANCELFUNCTION,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_RV NSSDBGC_WaitForSlotEvent(
-+ CK_FLAGS flags,
-+ CK_SLOT_ID_PTR pSlot,
-+ CK_VOID_PTR pRserved
-+)
-+{
-+ CK_RV rv;
-+ PRIntervalTime start;
-+ PR_LOG(modlog, 1, ("C_WaitForSlotEvent"));
-+ PR_LOG(modlog, 3, (" flags = 0x%x", flags));
-+ PR_LOG(modlog, 3, (" pSlot = 0x%p", pSlot));
-+ PR_LOG(modlog, 3, (" pRserved = 0x%p", pRserved));
-+ nssdbg_start_time(FUNC_C_WAITFORSLOTEVENT,&start);
-+ rv = module_functions->C_WaitForSlotEvent(flags,
-+ pSlot,
-+ pRserved);
-+ nssdbg_finish_time(FUNC_C_WAITFORSLOTEVENT,start);
-+ PR_LOG(modlog, 1, (" rv = 0x%x\n", rv));
-+ return rv;
-+}
-+
-+CK_FUNCTION_LIST_PTR nss_InsertDeviceLog(
-+ CK_FUNCTION_LIST_PTR devEPV
-+)
-+{
-+ module_functions = devEPV;
-+ modlog = PR_NewLogModule("nss_mod_log");
-+ debug_functions.C_Initialize = NSSDBGC_Initialize;
-+ debug_functions.C_Finalize = NSSDBGC_Finalize;
-+ debug_functions.C_GetInfo = NSSDBGC_GetInfo;
-+ debug_functions.C_GetFunctionList = NSSDBGC_GetFunctionList;
-+ debug_functions.C_GetSlotList = NSSDBGC_GetSlotList;
-+ debug_functions.C_GetSlotInfo = NSSDBGC_GetSlotInfo;
-+ debug_functions.C_GetTokenInfo = NSSDBGC_GetTokenInfo;
-+ debug_functions.C_GetMechanismList = NSSDBGC_GetMechanismList;
-+ debug_functions.C_GetMechanismInfo = NSSDBGC_GetMechanismInfo;
-+ debug_functions.C_InitToken = NSSDBGC_InitToken;
-+ debug_functions.C_InitPIN = NSSDBGC_InitPIN;
-+ debug_functions.C_SetPIN = NSSDBGC_SetPIN;
-+ debug_functions.C_OpenSession = NSSDBGC_OpenSession;
-+ debug_functions.C_CloseSession = NSSDBGC_CloseSession;
-+ debug_functions.C_CloseAllSessions = NSSDBGC_CloseAllSessions;
-+ debug_functions.C_GetSessionInfo = NSSDBGC_GetSessionInfo;
-+ debug_functions.C_GetOperationState = NSSDBGC_GetOperationState;
-+ debug_functions.C_SetOperationState = NSSDBGC_SetOperationState;
-+ debug_functions.C_Login = NSSDBGC_Login;
-+ debug_functions.C_Logout = NSSDBGC_Logout;
-+ debug_functions.C_CreateObject = NSSDBGC_CreateObject;
-+ debug_functions.C_CopyObject = NSSDBGC_CopyObject;
-+ debug_functions.C_DestroyObject = NSSDBGC_DestroyObject;
-+ debug_functions.C_GetObjectSize = NSSDBGC_GetObjectSize;
-+ debug_functions.C_GetAttributeValue = NSSDBGC_GetAttributeValue;
-+ debug_functions.C_SetAttributeValue = NSSDBGC_SetAttributeValue;
-+ debug_functions.C_FindObjectsInit = NSSDBGC_FindObjectsInit;
-+ debug_functions.C_FindObjects = NSSDBGC_FindObjects;
-+ debug_functions.C_FindObjectsFinal = NSSDBGC_FindObjectsFinal;
-+ debug_functions.C_EncryptInit = NSSDBGC_EncryptInit;
-+ debug_functions.C_Encrypt = NSSDBGC_Encrypt;
-+ debug_functions.C_EncryptUpdate = NSSDBGC_EncryptUpdate;
-+ debug_functions.C_EncryptFinal = NSSDBGC_EncryptFinal;
-+ debug_functions.C_DecryptInit = NSSDBGC_DecryptInit;
-+ debug_functions.C_Decrypt = NSSDBGC_Decrypt;
-+ debug_functions.C_DecryptUpdate = NSSDBGC_DecryptUpdate;
-+ debug_functions.C_DecryptFinal = NSSDBGC_DecryptFinal;
-+ debug_functions.C_DigestInit = NSSDBGC_DigestInit;
-+ debug_functions.C_Digest = NSSDBGC_Digest;
-+ debug_functions.C_DigestUpdate = NSSDBGC_DigestUpdate;
-+ debug_functions.C_DigestKey = NSSDBGC_DigestKey;
-+ debug_functions.C_DigestFinal = NSSDBGC_DigestFinal;
-+ debug_functions.C_SignInit = NSSDBGC_SignInit;
-+ debug_functions.C_Sign = NSSDBGC_Sign;
-+ debug_functions.C_SignUpdate = NSSDBGC_SignUpdate;
-+ debug_functions.C_SignFinal = NSSDBGC_SignFinal;
-+ debug_functions.C_SignRecoverInit = NSSDBGC_SignRecoverInit;
-+ debug_functions.C_SignRecover = NSSDBGC_SignRecover;
-+ debug_functions.C_VerifyInit = NSSDBGC_VerifyInit;
-+ debug_functions.C_Verify = NSSDBGC_Verify;
-+ debug_functions.C_VerifyUpdate = NSSDBGC_VerifyUpdate;
-+ debug_functions.C_VerifyFinal = NSSDBGC_VerifyFinal;
-+ debug_functions.C_VerifyRecoverInit = NSSDBGC_VerifyRecoverInit;
-+ debug_functions.C_VerifyRecover = NSSDBGC_VerifyRecover;
-+ debug_functions.C_DigestEncryptUpdate = NSSDBGC_DigestEncryptUpdate;
-+ debug_functions.C_DecryptDigestUpdate = NSSDBGC_DecryptDigestUpdate;
-+ debug_functions.C_SignEncryptUpdate = NSSDBGC_SignEncryptUpdate;
-+ debug_functions.C_DecryptVerifyUpdate = NSSDBGC_DecryptVerifyUpdate;
-+ debug_functions.C_GenerateKey = NSSDBGC_GenerateKey;
-+ debug_functions.C_GenerateKeyPair = NSSDBGC_GenerateKeyPair;
-+ debug_functions.C_WrapKey = NSSDBGC_WrapKey;
-+ debug_functions.C_UnwrapKey = NSSDBGC_UnwrapKey;
-+ debug_functions.C_DeriveKey = NSSDBGC_DeriveKey;
-+ debug_functions.C_SeedRandom = NSSDBGC_SeedRandom;
-+ debug_functions.C_GenerateRandom = NSSDBGC_GenerateRandom;
-+ debug_functions.C_GetFunctionStatus = NSSDBGC_GetFunctionStatus;
-+ debug_functions.C_CancelFunction = NSSDBGC_CancelFunction;
-+ debug_functions.C_WaitForSlotEvent = NSSDBGC_WaitForSlotEvent;
-+ return &debug_functions;
-+}
-+
-+/*
-+ * scale the time factor up accordingly.
-+ * This routine tries to keep at least 2 significant figures on output.
-+ * If the time is 0, then indicate that with a 'z' for units.
-+ * If the time is greater than 10 minutes, output the time in minutes.
-+ * If the time is less than 10 minutes but greater than 10 seconds output
-+ * the time in second.
-+ * If the time is less than 10 seconds but greater than 10 milliseconds
-+ * output * the time in millisecond.
-+ * If the time is less than 10 milliseconds but greater than 0 ticks output
-+ * the time in microsecond.
-+ *
-+ */
-+static PRUint32 getPrintTime(PRIntervalTime time ,char **type)
-+{
-+ PRUint32 prTime;
-+
-+ /* detect a programming error by outputting 'bu' to the output stream
-+ * rather than crashing */
-+ *type = "bug";
-+ if (time == 0) {
-+ *type = "z";
-+ return 0;
-+ }
-+
-+ prTime = PR_IntervalToSeconds(time);
-+
-+ if (prTime >= 600) {
-+ *type="m";
-+ return prTime/60;
-+ }
-+ if (prTime >= 10) {
-+ *type="s";
-+ return prTime;
-+ }
-+ prTime = PR_IntervalToMilliseconds(time);
-+ if (prTime >= 10) {
-+ *type="ms";
-+ return prTime;
-+ }
-+ *type = "us";
-+ return PR_IntervalToMicroseconds(time);
-+}
-+
-+static void print_final_statistics(void)
-+{
-+ int total_calls = 0;
-+ PRIntervalTime total_time = 0;
-+ PRUint32 pr_total_time;
-+ char *type;
-+ char *fname;
-+ FILE *outfile = NULL;
-+ int i;
-+
-+ fname = PR_GetEnv("NSS_OUTPUT_FILE");
-+ if (fname) {
-+ /* need to add an optional process id to the filename */
-+ outfile = fopen(fname,"w+");
-+ }
-+ if (!outfile) {
-+ outfile = stdout;
-+ }
-+
-+
-+ fprintf(outfile,"%-25s %10s %12s %12s %10s\n", "Function", "# Calls",
-+ "Time", "Avg.", "% Time");
-+ fprintf(outfile,"\n");
-+ for (i=0; i < nssdbg_prof_size; i++) {
-+ total_calls += nssdbg_prof_data[i].calls;
-+ total_time += nssdbg_prof_data[i].time;
-+ }
-+ for (i=0; i < nssdbg_prof_size; i++) {
-+ PRIntervalTime time = nssdbg_prof_data[i].time;
-+ PRUint32 usTime = PR_IntervalToMicroseconds(time);
-+ PRUint32 prTime = 0;
-+ PRUint32 calls = nssdbg_prof_data[i].calls;
-+ /* don't print out functions that weren't even called */
-+ if (calls == 0) {
-+ continue;
-+ }
-+
-+ prTime = getPrintTime(time,&type);
-+
-+ fprintf(outfile,"%-25s %10d %10d%2s ", nssdbg_prof_data[i].function,
-+ calls, prTime, type);
-+ /* for now always output the average in microseconds */
-+ fprintf(outfile,"%10.2f%2s", (float)usTime / (float)calls, "us" );
-+ fprintf(outfile,"%10.2f%%", ((float)time / (float)total_time) * 100);
-+ fprintf(outfile,"\n");
-+ }
-+ fprintf(outfile,"\n");
-+
-+ pr_total_time = getPrintTime(total_time,&type);
-+
-+ fprintf(outfile,"%25s %10d %10d%2s\n", "Totals", total_calls,
-+ pr_total_time, type);
-+ fprintf(outfile,"\n\nMaximum number of concurrent open sessions: %d\n\n",
-+ maxOpenSessions);
-+ fflush (outfile);
-+ if (outfile != stdout) {
-+ fclose(outfile);
-+ }
-+}
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/derdec.c 2004-12-13 13:06:46.705396792 +0100
-@@ -0,0 +1,552 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#include "secder.h"
-+#include "secerr.h"
-+
-+static uint32
-+der_indefinite_length(unsigned char *buf, unsigned char *end)
-+{
-+ uint32 len, ret, dataLen;
-+ unsigned char tag, lenCode;
-+ int dataLenLen;
-+
-+ len = 0;
-+ while ( 1 ) {
-+ if ((buf + 2) > end) {
-+ return(0);
-+ }
-+
-+ tag = *buf++;
-+ lenCode = *buf++;
-+ len += 2;
-+
-+ if ( ( tag == 0 ) && ( lenCode == 0 ) ) {
-+ return(len);
-+ }
-+
-+ if ( lenCode == 0x80 ) { /* indefinite length */
-+ ret = der_indefinite_length(buf, end); /* recurse to find length */
-+ if (ret == 0)
-+ return 0;
-+ len += ret;
-+ buf += ret;
-+ } else { /* definite length */
-+ if (lenCode & 0x80) {
-+ /* Length of data is in multibyte format */
-+ dataLenLen = lenCode & 0x7f;
-+ switch (dataLenLen) {
-+ case 1:
-+ dataLen = buf[0];
-+ break;
-+ case 2:
-+ dataLen = (buf[0]<<8)|buf[1];
-+ break;
-+ case 3:
-+ dataLen = ((unsigned long)buf[0]<<16)|(buf[1]<<8)|buf[2];
-+ break;
-+ case 4:
-+ dataLen = ((unsigned long)buf[0]<<24)|
-+ ((unsigned long)buf[1]<<16)|(buf[2]<<8)|buf[3];
-+ break;
-+ default:
-+ PORT_SetError(SEC_ERROR_BAD_DER);
-+ return SECFailure;
-+ }
-+ } else {
-+ /* Length of data is in single byte */
-+ dataLen = lenCode;
-+ dataLenLen = 0;
-+ }
-+
-+ /* skip this item */
-+ buf = buf + dataLenLen + dataLen;
-+ len = len + dataLenLen + dataLen;
-+ }
-+ }
-+}
-+
-+/*
-+** Capture the next thing in the buffer.
-+** Returns the length of the header and the length of the contents.
-+*/
-+static SECStatus
-+der_capture(unsigned char *buf, unsigned char *end,
-+ int *header_len_p, uint32 *contents_len_p)
-+{
-+ unsigned char *bp;
-+ unsigned char whole_tag;
-+ uint32 contents_len;
-+ int tag_number;
-+
-+ if ((buf + 2) > end) {
-+ *header_len_p = 0;
-+ *contents_len_p = 0;
-+ if (buf == end)
-+ return SECSuccess;
-+ return SECFailure;
-+ }
-+
-+ bp = buf;
-+
-+ /* Get tag and verify that it is ok. */
-+ whole_tag = *bp++;
-+ tag_number = whole_tag & DER_TAGNUM_MASK;
-+
-+ /*
-+ * XXX This code does not (yet) handle the high-tag-number form!
-+ */
-+ if (tag_number == DER_HIGH_TAG_NUMBER) {
-+ PORT_SetError(SEC_ERROR_BAD_DER);
-+ return SECFailure;
-+ }
-+
-+ if ((whole_tag & DER_CLASS_MASK) == DER_UNIVERSAL) {
-+ /* Check that the universal tag number is one we implement. */
-+ switch (tag_number) {
-+ case DER_BOOLEAN:
-+ case DER_INTEGER:
-+ case DER_BIT_STRING:
-+ case DER_OCTET_STRING:
-+ case DER_NULL:
-+ case DER_OBJECT_ID:
-+ case DER_SEQUENCE:
-+ case DER_SET:
-+ case DER_PRINTABLE_STRING:
-+ case DER_T61_STRING:
-+ case DER_IA5_STRING:
-+ case DER_VISIBLE_STRING:
-+ case DER_UTC_TIME:
-+ case 0: /* end-of-contents tag */
-+ break;
-+ default:
-+ PORT_SetError(SEC_ERROR_BAD_DER);
-+ return SECFailure;
-+ }
-+ }
-+
-+ /*
-+ * Get first byte of length code (might contain entire length, might not).
-+ */
-+ contents_len = *bp++;
-+
-+ /*
-+ * If the high bit is set, then the length is in multibyte format,
-+ * or the thing has an indefinite-length.
-+ */
-+ if (contents_len & 0x80) {
-+ int bytes_of_encoded_len;
-+
-+ bytes_of_encoded_len = contents_len & 0x7f;
-+ contents_len = 0;
-+
-+ switch (bytes_of_encoded_len) {
-+ case 4:
-+ contents_len |= *bp++;
-+ contents_len <<= 8;
-+ /* fallthru */
-+ case 3:
-+ contents_len |= *bp++;
-+ contents_len <<= 8;
-+ /* fallthru */
-+ case 2:
-+ contents_len |= *bp++;
-+ contents_len <<= 8;
-+ /* fallthru */
-+ case 1:
-+ contents_len |= *bp++;
-+ break;
-+
-+ case 0:
-+ contents_len = der_indefinite_length (bp, end);
-+ if (contents_len)
-+ break;
-+ /* fallthru */
-+ default:
-+ PORT_SetError(SEC_ERROR_BAD_DER);
-+ return SECFailure;
-+ }
-+ }
-+
-+ if ((bp + contents_len) > end) {
-+ /* Ran past end of buffer */
-+ PORT_SetError(SEC_ERROR_BAD_DER);
-+ return SECFailure;
-+ }
-+
-+ *header_len_p = bp - buf;
-+ *contents_len_p = contents_len;
-+
-+ return SECSuccess;
-+}
-+
-+static unsigned char *
-+der_decode(PRArenaPool *arena, void *dest, DERTemplate *dtemplate,
-+ unsigned char *buf, int header_len, uint32 contents_len)
-+{
-+ unsigned char *orig_buf, *end;
-+ unsigned long encode_kind, under_kind;
-+ PRBool explicit, optional, universal, check_tag;
-+ SECItem *item;
-+ SECStatus rv;
-+ PRBool indefinite_length, explicit_indefinite_length;
-+
-+ encode_kind = dtemplate->kind;
-+ explicit = (encode_kind & DER_EXPLICIT) ? PR_TRUE : PR_FALSE;
-+ optional = (encode_kind & DER_OPTIONAL) ? PR_TRUE : PR_FALSE;
-+ universal = ((encode_kind & DER_CLASS_MASK) == DER_UNIVERSAL)
-+ ? PR_TRUE : PR_FALSE;
-+
-+ PORT_Assert (!(explicit && universal)); /* bad templates */
-+
-+ if (header_len == 0) {
-+ if (optional || (encode_kind & DER_ANY))
-+ return buf;
-+ PORT_SetError(SEC_ERROR_BAD_DER);
-+ return NULL;
-+ }
-+
-+ if (encode_kind & DER_POINTER) {
-+ void *place, **placep;
-+ int offset;
-+
-+ if (dtemplate->sub != NULL) {
-+ dtemplate = dtemplate->sub;
-+ under_kind = dtemplate->kind;
-+ if (universal) {
-+ encode_kind = under_kind;
-+ }
-+ place = PORT_ArenaZAlloc(arena, dtemplate->arg);
-+ offset = dtemplate->offset;
-+ } else {
-+ if (universal) {
-+ under_kind = encode_kind & ~DER_POINTER;
-+ } else {
-+ under_kind = dtemplate->arg;
-+ }
-+ place = PORT_ArenaZAlloc(arena, sizeof(SECItem));
-+ offset = 0;
-+ }
-+ if (place == NULL) {
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ return NULL; /* Out of memory */
-+ }
-+ placep = (void **)dest;
-+ *placep = place;
-+ dest = (void *)((char *)place + offset);
-+ } else if (encode_kind & DER_INLINE) {
-+ PORT_Assert (dtemplate->sub != NULL);
-+ dtemplate = dtemplate->sub;
-+ under_kind = dtemplate->kind;
-+ if (universal) {
-+ encode_kind = under_kind;
-+ }
-+ dest = (void *)((char *)dest + dtemplate->offset);
-+ } else if (universal) {
-+ under_kind = encode_kind;
-+ } else {
-+ under_kind = dtemplate->arg;
-+ }
-+
-+ orig_buf = buf;
-+ end = buf + header_len + contents_len;
-+
-+ explicit_indefinite_length = PR_FALSE;
-+
-+ if (explicit) {
-+ /*
-+ * This tag is expected to match exactly.
-+ * (The template has all of the bits specified.)
-+ */
-+ if (*buf != (encode_kind & DER_TAG_MASK)) {
-+ if (optional)
-+ return buf;
-+ PORT_SetError(SEC_ERROR_BAD_DER);
-+ return NULL;
-+ }
-+ if ((header_len == 2) && (*(buf + 1) == 0x80))
-+ explicit_indefinite_length = PR_TRUE;
-+ buf += header_len;
-+ rv = der_capture (buf, end, &header_len, &contents_len);
-+ if (rv != SECSuccess)
-+ return NULL;
-+ if (header_len == 0) { /* XXX is this right? */
-+ PORT_SetError(SEC_ERROR_BAD_DER);
-+ return NULL;
-+ }
-+ optional = PR_FALSE; /* can no longer be optional */
-+ encode_kind = under_kind;
-+ }
-+
-+ check_tag = PR_TRUE;
-+ if (encode_kind & (DER_DERPTR | DER_ANY | DER_FORCE | DER_SKIP)) {
-+ PORT_Assert ((encode_kind & DER_ANY) || !optional);
-+ encode_kind = encode_kind & (~DER_FORCE);
-+ under_kind = under_kind & (~DER_FORCE);
-+ check_tag = PR_FALSE;
-+ }
-+
-+ if (check_tag) {
-+ PRBool wrong;
-+ unsigned char expect_tag, expect_num;
-+
-+ /*
-+ * This tag is expected to match, but the simple types
-+ * may or may not have the constructed bit set, so we
-+ * have to have all this extra logic.
-+ */
-+ wrong = PR_TRUE;
-+ expect_tag = (unsigned char)encode_kind & DER_TAG_MASK;
-+ expect_num = expect_tag & DER_TAGNUM_MASK;
-+ if (expect_num == DER_SET || expect_num == DER_SEQUENCE) {
-+ if (*buf == (expect_tag | DER_CONSTRUCTED))
-+ wrong = PR_FALSE;
-+ } else {
-+ if (*buf == expect_tag)
-+ wrong = PR_FALSE;
-+ else if (*buf == (expect_tag | DER_CONSTRUCTED))
-+ wrong = PR_FALSE;
-+ }
-+ if (wrong) {
-+ if (optional)
-+ return buf;
-+ PORT_SetError(SEC_ERROR_BAD_DER);
-+ return NULL;
-+ }
-+ }
-+
-+ if (under_kind & DER_DERPTR) {
-+ item = (SECItem *)dest;
-+ if (under_kind & DER_OUTER) {
-+ item->data = buf;
-+ item->len = header_len + contents_len;
-+ } else {
-+ item->data = buf + header_len;
-+ item->len = contents_len;
-+ }
-+ return orig_buf;
-+ }
-+
-+ if (encode_kind & DER_ANY) {
-+ contents_len += header_len;
-+ header_len = 0;
-+ }
-+
-+ if ((header_len == 2) && (*(buf + 1) == 0x80))
-+ indefinite_length = PR_TRUE;
-+ else
-+ indefinite_length = PR_FALSE;
-+
-+ buf += header_len;
-+
-+ if (contents_len == 0)
-+ return buf;
-+
-+ under_kind &= ~DER_OPTIONAL;
-+
-+ if (under_kind & DER_INDEFINITE) {
-+ int count, thing_size;
-+ unsigned char *sub_buf;
-+ DERTemplate *tmpt;
-+ void *things, **indp, ***placep;
-+
-+ under_kind &= ~DER_INDEFINITE;
-+
-+ /*
-+ * Count items.
-+ */
-+ count = 0;
-+ sub_buf = buf;
-+ while (sub_buf < end) {
-+ if (indefinite_length && sub_buf[0] == 0 && sub_buf[1] == 0) {
-+ break;
-+ }
-+ rv = der_capture (sub_buf, end, &header_len, &contents_len);
-+ if (rv != SECSuccess)
-+ return NULL;
-+ count++;
-+ sub_buf += header_len + contents_len;
-+ }
-+
-+ /*
-+ * Allocate an array of pointers to items; extra one is for a NULL.
-+ */
-+ indp = (void**)PORT_ArenaZAlloc(arena, (count + 1) * sizeof(void *));
-+ if (indp == NULL) {
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ return NULL;
-+ }
-+
-+ /*
-+ * Prepare.
-+ */
-+ if (under_kind == DER_SET || under_kind == DER_SEQUENCE) {
-+ tmpt = dtemplate->sub;
-+ PORT_Assert (tmpt != NULL);
-+ thing_size = tmpt->arg;
-+ PORT_Assert (thing_size != 0);
-+ } else {
-+ tmpt = NULL;
-+ thing_size = sizeof(SECItem);
-+ }
-+
-+ /*
-+ * Allocate the items themselves.
-+ */
-+ things = PORT_ArenaZAlloc(arena, count * thing_size);
-+ if (things == NULL) {
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ return NULL;
-+ }
-+
-+ placep = (void ***)dest;
-+ *placep = indp;
-+
-+ while (count) {
-+ /* ignore return value because we already did whole thing above */
-+ (void) der_capture (buf, end, &header_len, &contents_len);
-+ if (tmpt != NULL) {
-+ void *sub_thing;
-+
-+ sub_thing = (void *)((char *)things + tmpt->offset);
-+ buf = der_decode (arena, sub_thing, tmpt,
-+ buf, header_len, contents_len);
-+ if (buf == NULL)
-+ return NULL;
-+ } else {
-+ item = (SECItem *)things;
-+ if (under_kind == DER_ANY) {
-+ contents_len += header_len;
-+ header_len = 0;
-+ }
-+ buf += header_len;
-+ if (under_kind == DER_BIT_STRING) {
-+ item->data = buf + 1;
-+ item->len = ((contents_len - 1) << 3) - *buf;
-+ } else {
-+ item->data = buf;
-+ item->len = contents_len;
-+ }
-+ buf += contents_len;
-+ }
-+ *indp++ = things;
-+ things = (void *)((char *)things + thing_size);
-+ count--;
-+ }
-+
-+ *indp = NULL;
-+
-+ goto der_decode_done;
-+ }
-+
-+ switch (under_kind) {
-+ case DER_SEQUENCE:
-+ case DER_SET:
-+ {
-+ DERTemplate *tmpt;
-+ void *sub_dest;
-+
-+ for (tmpt = dtemplate + 1; tmpt->kind; tmpt++) {
-+ sub_dest = (void *)((char *)dest + tmpt->offset);
-+ rv = der_capture (buf, end, &header_len, &contents_len);
-+ if (rv != SECSuccess)
-+ return NULL;
-+ buf = der_decode (arena, sub_dest, tmpt,
-+ buf, header_len, contents_len);
-+ if (buf == NULL)
-+ return NULL;
-+ }
-+ }
-+ break;
-+
-+ case DER_BIT_STRING:
-+ item = (SECItem *)dest;
-+ item->data = buf + 1;
-+ item->len = ((contents_len - 1) << 3) - *buf;
-+ buf += contents_len;
-+ break;
-+
-+ case DER_SKIP:
-+ buf += contents_len;
-+ break;
-+
-+ default:
-+ item = (SECItem *)dest;
-+ item->data = buf;
-+ item->len = contents_len;
-+ buf += contents_len;
-+ break;
-+ }
-+
-+der_decode_done:
-+
-+ if (indefinite_length && buf[0] == 0 && buf[1] == 0) {
-+ buf += 2;
-+ }
-+
-+ if (explicit_indefinite_length && buf[0] == 0 && buf[1] == 0) {
-+ buf += 2;
-+ }
-+
-+ return buf;
-+}
-+
-+SECStatus
-+DER_Decode(PRArenaPool *arena, void *dest, DERTemplate *dtemplate, SECItem *src)
-+{
-+ unsigned char *buf;
-+ uint32 buf_len, contents_len;
-+ int header_len;
-+ SECStatus rv;
-+
-+ buf = src->data;
-+ buf_len = src->len;
-+
-+ rv = der_capture (buf, buf + buf_len, &header_len, &contents_len);
-+ if (rv != SECSuccess)
-+ return rv;
-+
-+ dest = (void *)((char *)dest + dtemplate->offset);
-+ buf = der_decode (arena, dest, dtemplate, buf, header_len, contents_len);
-+ if (buf == NULL)
-+ return SECFailure;
-+
-+ return SECSuccess;
-+}
-+
-+SECStatus
-+DER_Lengths(SECItem *item, int *header_len_p, uint32 *contents_len_p)
-+{
-+ return(der_capture(item->data, &item->data[item->len], header_len_p,
-+ contents_len_p));
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/derenc.c 2004-12-13 13:06:46.706396640 +0100
-@@ -0,0 +1,504 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#include "secder.h"
-+#include "secerr.h"
-+/*
-+ * Generic templates for individual/simple items.
-+ */
-+
-+DERTemplate SECAnyTemplate[] = {
-+ { DER_ANY,
-+ 0, NULL, sizeof(SECItem) }
-+};
-+
-+DERTemplate SECBitStringTemplate[] = {
-+ { DER_BIT_STRING,
-+ 0, NULL, sizeof(SECItem) }
-+};
-+
-+DERTemplate SECBooleanTemplate[] = {
-+ { DER_BOOLEAN,
-+ 0, NULL, sizeof(SECItem) }
-+};
-+
-+DERTemplate SECIA5StringTemplate[] = {
-+ { DER_IA5_STRING,
-+ 0, NULL, sizeof(SECItem) }
-+};
-+
-+DERTemplate SECIntegerTemplate[] = {
-+ { DER_INTEGER,
-+ 0, NULL, sizeof(SECItem) }
-+};
-+
-+DERTemplate SECNullTemplate[] = {
-+ { DER_NULL,
-+ 0, NULL, sizeof(SECItem) }
-+};
-+
-+DERTemplate SECObjectIDTemplate[] = {
-+ { DER_OBJECT_ID,
-+ 0, NULL, sizeof(SECItem) }
-+};
-+
-+DERTemplate SECOctetStringTemplate[] = {
-+ { DER_OCTET_STRING,
-+ 0, NULL, sizeof(SECItem) }
-+};
-+
-+DERTemplate SECPrintableStringTemplate[] = {
-+ { DER_PRINTABLE_STRING,
-+ 0, NULL, sizeof(SECItem) }
-+};
-+
-+DERTemplate SECT61StringTemplate[] = {
-+ { DER_T61_STRING,
-+ 0, NULL, sizeof(SECItem) }
-+};
-+
-+DERTemplate SECUTCTimeTemplate[] = {
-+ { DER_UTC_TIME,
-+ 0, NULL, sizeof(SECItem) }
-+};
-+
-+
-+static int
-+header_length(DERTemplate *dtemplate, uint32 contents_len)
-+{
-+ uint32 len;
-+ unsigned long encode_kind, under_kind;
-+ PRBool explicit, optional, universal;
-+
-+ encode_kind = dtemplate->kind;
-+
-+ explicit = (encode_kind & DER_EXPLICIT) ? PR_TRUE : PR_FALSE;
-+ optional = (encode_kind & DER_OPTIONAL) ? PR_TRUE : PR_FALSE;
-+ universal = ((encode_kind & DER_CLASS_MASK) == DER_UNIVERSAL)
-+ ? PR_TRUE : PR_FALSE;
-+
-+ PORT_Assert (!(explicit && universal)); /* bad templates */
-+
-+ if (encode_kind & DER_POINTER) {
-+ if (dtemplate->sub != NULL) {
-+ under_kind = dtemplate->sub->kind;
-+ if (universal) {
-+ encode_kind = under_kind;
-+ }
-+ } else if (universal) {
-+ under_kind = encode_kind & ~DER_POINTER;
-+ } else {
-+ under_kind = dtemplate->arg;
-+ }
-+ } else if (encode_kind & DER_INLINE) {
-+ under_kind = dtemplate->sub->kind;
-+ if (universal) {
-+ encode_kind = under_kind;
-+ }
-+ } else if (universal) {
-+ under_kind = encode_kind;
-+ } else {
-+ under_kind = dtemplate->arg;
-+ }
-+
-+ /* This is only used in decoding; it plays no part in encoding. */
-+ if (under_kind & DER_DERPTR)
-+ return 0;
-+
-+ /* No header at all for an "empty" optional. */
-+ if ((contents_len == 0) && optional)
-+ return 0;
-+
-+ /* And no header for a full DER_ANY. */
-+ if (encode_kind & DER_ANY)
-+ return 0;
-+
-+ /*
-+ * The common case: one octet for identifier and as many octets
-+ * as necessary to hold the content length.
-+ */
-+ len = 1 + DER_LengthLength(contents_len);
-+
-+ /* Account for the explicit wrapper, if necessary. */
-+ if (explicit) {
-+#if 0 /*
-+ * Well, I was trying to do something useful, but these
-+ * assertions are too restrictive on valid templates.
-+ * I wanted to make sure that the top-level "kind" of
-+ * a template does not also specify DER_EXPLICIT, which
-+ * should only modify a component field. Maybe later
-+ * I can figure out a better way to detect such a problem,
-+ * but for now I must remove these checks altogether.
-+ */
-+ /*
-+ * This modifier applies only to components of a set or sequence;
-+ * it should never be used on a set/sequence itself -- confirm.
-+ */
-+ PORT_Assert (under_kind != DER_SEQUENCE);
-+ PORT_Assert (under_kind != DER_SET);
-+#endif
-+
-+ len += 1 + DER_LengthLength(len + contents_len);
-+ }
-+
-+ return len;
-+}
-+
-+
-+static uint32
-+contents_length(DERTemplate *dtemplate, void *src)
-+{
-+ uint32 len;
-+ unsigned long encode_kind, under_kind;
-+ PRBool universal;
-+
-+
-+ PORT_Assert (src != NULL);
-+
-+ encode_kind = dtemplate->kind;
-+
-+ universal = ((encode_kind & DER_CLASS_MASK) == DER_UNIVERSAL)
-+ ? PR_TRUE : PR_FALSE;
-+ encode_kind &= ~DER_OPTIONAL;
-+
-+ if (encode_kind & DER_POINTER) {
-+ src = *(void **)src;
-+ if (src == NULL) {
-+ return 0;
-+ }
-+ if (dtemplate->sub != NULL) {
-+ dtemplate = dtemplate->sub;
-+ under_kind = dtemplate->kind;
-+ src = (void *)((char *)src + dtemplate->offset);
-+ } else if (universal) {
-+ under_kind = encode_kind & ~DER_POINTER;
-+ } else {
-+ under_kind = dtemplate->arg;
-+ }
-+ } else if (encode_kind & DER_INLINE) {
-+ PORT_Assert (dtemplate->sub != NULL);
-+ dtemplate = dtemplate->sub;
-+ under_kind = dtemplate->kind;
-+ src = (void *)((char *)src + dtemplate->offset);
-+ } else if (universal) {
-+ under_kind = encode_kind;
-+ } else {
-+ under_kind = dtemplate->arg;
-+ }
-+
-+ /* Having any of these bits is not expected here... */
-+ PORT_Assert ((under_kind & (DER_EXPLICIT | DER_INLINE | DER_OPTIONAL
-+ | DER_POINTER | DER_SKIP)) == 0);
-+
-+ /* This is only used in decoding; it plays no part in encoding. */
-+ if (under_kind & DER_DERPTR)
-+ return 0;
-+
-+ if (under_kind & DER_INDEFINITE) {
-+ uint32 sub_len;
-+ void **indp;
-+
-+ indp = *(void ***)src;
-+ if (indp == NULL)
-+ return 0;
-+
-+ len = 0;
-+ under_kind &= ~DER_INDEFINITE;
-+
-+ if (under_kind == DER_SET || under_kind == DER_SEQUENCE) {
-+ DERTemplate *tmpt;
-+ void *sub_src;
-+
-+ tmpt = dtemplate->sub;
-+
-+ for (; *indp != NULL; indp++) {
-+ sub_src = (void *)((char *)(*indp) + tmpt->offset);
-+ sub_len = contents_length (tmpt, sub_src);
-+ len += sub_len + header_length (tmpt, sub_len);
-+ }
-+ } else {
-+ /*
-+ * XXX Lisa is not sure this code (for handling, for example,
-+ * DER_INDEFINITE | DER_OCTET_STRING) is right.
-+ */
-+ for (; *indp != NULL; indp++) {
-+ SECItem *item;
-+ item = (SECItem *)(*indp);
-+ sub_len = item->len;
-+ if (under_kind == DER_BIT_STRING) {
-+ sub_len = (sub_len + 7) >> 3;
-+ /* bit string contents involve an extra octet */
-+ if (sub_len)
-+ sub_len++;
-+ }
-+ if (under_kind != DER_ANY)
-+ len += 1 + DER_LengthLength (sub_len);
-+ }
-+ }
-+
-+ return len;
-+ }
-+
-+ switch (under_kind) {
-+ case DER_SEQUENCE:
-+ case DER_SET:
-+ {
-+ DERTemplate *tmpt;
-+ void *sub_src;
-+ uint32 sub_len;
-+
-+ len = 0;
-+ for (tmpt = dtemplate + 1; tmpt->kind; tmpt++) {
-+ sub_src = (void *)((char *)src + tmpt->offset);
-+ sub_len = contents_length (tmpt, sub_src);
-+ len += sub_len + header_length (tmpt, sub_len);
-+ }
-+ }
-+ break;
-+
-+ case DER_BIT_STRING:
-+ len = (((SECItem *)src)->len + 7) >> 3;
-+ /* bit string contents involve an extra octet */
-+ if (len)
-+ len++;
-+ break;
-+
-+ default:
-+ len = ((SECItem *)src)->len;
-+ break;
-+ }
-+
-+ return len;
-+}
-+
-+
-+static unsigned char *
-+der_encode(unsigned char *buf, DERTemplate *dtemplate, void *src)
-+{
-+ int header_len;
-+ uint32 contents_len;
-+ unsigned long encode_kind, under_kind;
-+ PRBool explicit, optional, universal;
-+
-+
-+ /*
-+ * First figure out how long the encoding will be. Do this by
-+ * traversing the template from top to bottom and accumulating
-+ * the length of each leaf item.
-+ */
-+ contents_len = contents_length (dtemplate, src);
-+ header_len = header_length (dtemplate, contents_len);
-+
-+ /*
-+ * Enough smarts was involved already, so that if both the
-+ * header and the contents have a length of zero, then we
-+ * are not doing any encoding for this element.
-+ */
-+ if (header_len == 0 && contents_len == 0)
-+ return buf;
-+
-+ encode_kind = dtemplate->kind;
-+
-+ explicit = (encode_kind & DER_EXPLICIT) ? PR_TRUE : PR_FALSE;
-+ optional = (encode_kind & DER_OPTIONAL) ? PR_TRUE : PR_FALSE;
-+ encode_kind &= ~DER_OPTIONAL;
-+ universal = ((encode_kind & DER_CLASS_MASK) == DER_UNIVERSAL)
-+ ? PR_TRUE : PR_FALSE;
-+
-+ if (encode_kind & DER_POINTER) {
-+ if (contents_len) {
-+ src = *(void **)src;
-+ PORT_Assert (src != NULL);
-+ }
-+ if (dtemplate->sub != NULL) {
-+ dtemplate = dtemplate->sub;
-+ under_kind = dtemplate->kind;
-+ if (universal) {
-+ encode_kind = under_kind;
-+ }
-+ src = (void *)((char *)src + dtemplate->offset);
-+ } else if (universal) {
-+ under_kind = encode_kind & ~DER_POINTER;
-+ } else {
-+ under_kind = dtemplate->arg;
-+ }
-+ } else if (encode_kind & DER_INLINE) {
-+ dtemplate = dtemplate->sub;
-+ under_kind = dtemplate->kind;
-+ if (universal) {
-+ encode_kind = under_kind;
-+ }
-+ src = (void *)((char *)src + dtemplate->offset);
-+ } else if (universal) {
-+ under_kind = encode_kind;
-+ } else {
-+ under_kind = dtemplate->arg;
-+ }
-+
-+ if (explicit) {
-+ buf = DER_StoreHeader (buf, encode_kind,
-+ (1 + DER_LengthLength(contents_len)
-+ + contents_len));
-+ encode_kind = under_kind;
-+ }
-+
-+ if ((encode_kind & DER_ANY) == 0) { /* DER_ANY already contains header */
-+ buf = DER_StoreHeader (buf, encode_kind, contents_len);
-+ }
-+
-+ /* If no real contents to encode, then we are done. */
-+ if (contents_len == 0)
-+ return buf;
-+
-+ if (under_kind & DER_INDEFINITE) {
-+ void **indp;
-+
-+ indp = *(void ***)src;
-+ PORT_Assert (indp != NULL);
-+
-+ under_kind &= ~DER_INDEFINITE;
-+ if (under_kind == DER_SET || under_kind == DER_SEQUENCE) {
-+ DERTemplate *tmpt;
-+ void *sub_src;
-+
-+ tmpt = dtemplate->sub;
-+ for (; *indp != NULL; indp++) {
-+ sub_src = (void *)((char *)(*indp) + tmpt->offset);
-+ buf = der_encode (buf, tmpt, sub_src);
-+ }
-+ } else {
-+ for (; *indp != NULL; indp++) {
-+ SECItem *item;
-+ int sub_len;
-+
-+ item = (SECItem *)(*indp);
-+ sub_len = item->len;
-+ if (under_kind == DER_BIT_STRING) {
-+ if (sub_len) {
-+ int rem;
-+
-+ sub_len = (sub_len + 7) >> 3;
-+ buf = DER_StoreHeader (buf, under_kind, sub_len + 1);
-+ rem = (sub_len << 3) - item->len;
-+ *buf++ = rem; /* remaining bits */
-+ } else {
-+ buf = DER_StoreHeader (buf, under_kind, 0);
-+ }
-+ } else if (under_kind != DER_ANY) {
-+ buf = DER_StoreHeader (buf, under_kind, sub_len);
-+ }
-+ PORT_Memcpy (buf, item->data, sub_len);
-+ buf += sub_len;
-+ }
-+ }
-+ return buf;
-+ }
-+
-+ switch (under_kind) {
-+ case DER_SEQUENCE:
-+ case DER_SET:
-+ {
-+ DERTemplate *tmpt;
-+ void *sub_src;
-+
-+ for (tmpt = dtemplate + 1; tmpt->kind; tmpt++) {
-+ sub_src = (void *)((char *)src + tmpt->offset);
-+ buf = der_encode (buf, tmpt, sub_src);
-+ }
-+ }
-+ break;
-+
-+ case DER_BIT_STRING:
-+ {
-+ SECItem *item;
-+ int rem;
-+
-+ /*
-+ * The contents length includes our extra octet; subtract
-+ * it off so we just have the real string length there.
-+ */
-+ contents_len--;
-+ item = (SECItem *)src;
-+ PORT_Assert (contents_len == ((item->len + 7) >> 3));
-+ rem = (contents_len << 3) - item->len;
-+ *buf++ = rem; /* remaining bits */
-+ PORT_Memcpy (buf, item->data, contents_len);
-+ buf += contents_len;
-+ }
-+ break;
-+
-+ default:
-+ {
-+ SECItem *item;
-+
-+ item = (SECItem *)src;
-+ PORT_Assert (contents_len == item->len);
-+ PORT_Memcpy (buf, item->data, contents_len);
-+ buf += contents_len;
-+ }
-+ break;
-+ }
-+
-+ return buf;
-+}
-+
-+
-+SECStatus
-+DER_Encode(PRArenaPool *arena, SECItem *dest, DERTemplate *dtemplate, void *src)
-+{
-+ unsigned int contents_len, header_len;
-+
-+ src = (void **)((char *)src + dtemplate->offset);
-+
-+ /*
-+ * First figure out how long the encoding will be. Do this by
-+ * traversing the template from top to bottom and accumulating
-+ * the length of each leaf item.
-+ */
-+ contents_len = contents_length (dtemplate, src);
-+ header_len = header_length (dtemplate, contents_len);
-+
-+ dest->len = contents_len + header_len;
-+
-+ /* Allocate storage to hold the encoding */
-+ dest->data = (unsigned char*) PORT_ArenaAlloc(arena, dest->len);
-+ if (dest->data == NULL) {
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ return SECFailure;
-+ }
-+
-+ /* Now encode into the buffer */
-+ (void) der_encode (dest->data, dtemplate, src);
-+
-+ return SECSuccess;
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/dersubr.c 2004-12-13 13:06:46.710396032 +0100
-@@ -0,0 +1,263 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#include "secder.h"
-+#include <limits.h>
-+#include "secerr.h"
-+
-+int
-+DER_LengthLength(uint32 len)
-+{
-+ if (len > 127) {
-+ if (len > 255) {
-+ if (len > 65535L) {
-+ if (len > 16777215L) {
-+ return 5;
-+ } else {
-+ return 4;
-+ }
-+ } else {
-+ return 3;
-+ }
-+ } else {
-+ return 2;
-+ }
-+ } else {
-+ return 1;
-+ }
-+}
-+
-+unsigned char *
-+DER_StoreHeader(unsigned char *buf, unsigned int code, uint32 len)
-+{
-+ unsigned char b[4];
-+
-+ b[0] = (unsigned char)(len >> 24);
-+ b[1] = (unsigned char)(len >> 16);
-+ b[2] = (unsigned char)(len >> 8);
-+ b[3] = (unsigned char)len;
-+ if ((code & DER_TAGNUM_MASK) == DER_SET
-+ || (code & DER_TAGNUM_MASK) == DER_SEQUENCE)
-+ code |= DER_CONSTRUCTED;
-+ *buf++ = code;
-+ if (len > 127) {
-+ if (len > 255) {
-+ if (len > 65535) {
-+ if (len > 16777215) {
-+ *buf++ = 0x84;
-+ *buf++ = b[0];
-+ *buf++ = b[1];
-+ *buf++ = b[2];
-+ *buf++ = b[3];
-+ } else {
-+ *buf++ = 0x83;
-+ *buf++ = b[1];
-+ *buf++ = b[2];
-+ *buf++ = b[3];
-+ }
-+ } else {
-+ *buf++ = 0x82;
-+ *buf++ = b[2];
-+ *buf++ = b[3];
-+ }
-+ } else {
-+ *buf++ = 0x81;
-+ *buf++ = b[3];
-+ }
-+ } else {
-+ *buf++ = b[3];
-+ }
-+ return buf;
-+}
-+
-+/*
-+ * XXX This should be rewritten, generalized, to take a long instead
-+ * of an int32.
-+ */
-+SECStatus
-+DER_SetInteger(PRArenaPool *arena, SECItem *it, int32 i)
-+{
-+ unsigned char bb[4];
-+ unsigned len;
-+
-+ bb[0] = (unsigned char) (i >> 24);
-+ bb[1] = (unsigned char) (i >> 16);
-+ bb[2] = (unsigned char) (i >> 8);
-+ bb[3] = (unsigned char) (i);
-+
-+ /*
-+ ** Small integers are encoded in a single byte. Larger integers
-+ ** require progressively more space.
-+ */
-+ if (i < -128) {
-+ if (i < -32768L) {
-+ if (i < -8388608L) {
-+ len = 4;
-+ } else {
-+ len = 3;
-+ }
-+ } else {
-+ len = 2;
-+ }
-+ } else if (i > 127) {
-+ if (i > 32767L) {
-+ if (i > 8388607L) {
-+ len = 4;
-+ } else {
-+ len = 3;
-+ }
-+ } else {
-+ len = 2;
-+ }
-+ } else {
-+ len = 1;
-+ }
-+ it->data = (unsigned char*) PORT_ArenaAlloc(arena, len);
-+ if (!it->data) {
-+ return SECFailure;
-+ }
-+ it->len = len;
-+ PORT_Memcpy(it->data, bb + (4 - len), len);
-+ return SECSuccess;
-+}
-+
-+/*
-+ * XXX This should be rewritten, generalized, to take an unsigned long instead
-+ * of a uint32.
-+ */
-+SECStatus
-+DER_SetUInteger(PRArenaPool *arena, SECItem *it, uint32 ui)
-+{
-+ unsigned char bb[5];
-+ int len;
-+
-+ bb[0] = 0;
-+ bb[1] = (unsigned char) (ui >> 24);
-+ bb[2] = (unsigned char) (ui >> 16);
-+ bb[3] = (unsigned char) (ui >> 8);
-+ bb[4] = (unsigned char) (ui);
-+
-+ /*
-+ ** Small integers are encoded in a single byte. Larger integers
-+ ** require progressively more space.
-+ */
-+ if (ui > 0x7f) {
-+ if (ui > 0x7fff) {
-+ if (ui > 0x7fffffL) {
-+ if (ui >= 0x80000000L) {
-+ len = 5;
-+ } else {
-+ len = 4;
-+ }
-+ } else {
-+ len = 3;
-+ }
-+ } else {
-+ len = 2;
-+ }
-+ } else {
-+ len = 1;
-+ }
-+
-+ it->data = (unsigned char *)PORT_ArenaAlloc(arena, len);
-+ if (it->data == NULL) {
-+ return SECFailure;
-+ }
-+
-+ it->len = len;
-+ PORT_Memcpy(it->data, bb + (sizeof(bb) - len), len);
-+
-+ return SECSuccess;
-+}
-+
-+/*
-+** Convert a der encoded *signed* integer into a machine integral value.
-+** If an underflow/overflow occurs, sets error code and returns min/max.
-+*/
-+long
-+DER_GetInteger(SECItem *it)
-+{
-+ long ival = 0;
-+ unsigned len = it->len;
-+ unsigned char *cp = it->data;
-+ unsigned long overflow = 0x1ffUL << (((sizeof(ival) - 1) * 8) - 1);
-+ unsigned long ofloinit;
-+
-+ if (*cp & 0x80)
-+ ival = -1L;
-+ ofloinit = ival & overflow;
-+
-+ while (len) {
-+ if ((ival & overflow) != ofloinit) {
-+ PORT_SetError(SEC_ERROR_BAD_DER);
-+ if (ival < 0) {
-+ return LONG_MIN;
-+ }
-+ return LONG_MAX;
-+ }
-+ ival = ival << 8;
-+ ival |= *cp++;
-+ --len;
-+ }
-+ return ival;
-+}
-+
-+/*
-+** Convert a der encoded *unsigned* integer into a machine integral value.
-+** If an underflow/overflow occurs, sets error code and returns min/max.
-+*/
-+unsigned long
-+DER_GetUInteger(SECItem *it)
-+{
-+ unsigned long ival = 0;
-+ unsigned len = it->len;
-+ unsigned char *cp = it->data;
-+ unsigned long overflow = 0xffUL << ((sizeof(ival) - 1) * 8);
-+
-+ /* Cannot put a negative value into an unsigned container. */
-+ if (*cp & 0x80) {
-+ PORT_SetError(SEC_ERROR_BAD_DER);
-+ return 0;
-+ }
-+
-+ while (len) {
-+ if (ival & overflow) {
-+ PORT_SetError(SEC_ERROR_BAD_DER);
-+ return ULONG_MAX;
-+ }
-+ ival = ival << 8;
-+ ival |= *cp++;
-+ --len;
-+ }
-+ return ival;
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/dertime.c 2004-12-13 13:06:46.711395880 +0100
-@@ -0,0 +1,400 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#include "prtypes.h"
-+#include "prtime.h"
-+#include "secder.h"
-+#include "prlong.h"
-+#include "secerr.h"
-+
-+#define HIDIGIT(v) (((v) / 10) + '0')
-+#define LODIGIT(v) (((v) % 10) + '0')
-+
-+#define C_SINGLE_QUOTE '\047'
-+
-+#define DIGITHI(dig) (((dig) - '0') * 10)
-+#define DIGITLO(dig) ((dig) - '0')
-+#define ISDIGIT(dig) (((dig) >= '0') && ((dig) <= '9'))
-+#define CAPTURE(var,p,label) \
-+{ \
-+ if (!ISDIGIT((p)[0]) || !ISDIGIT((p)[1])) goto label; \
-+ (var) = ((p)[0] - '0') * 10 + ((p)[1] - '0'); \
-+}
-+
-+#define SECMIN ((time_t) 60L)
-+#define SECHOUR (60L*SECMIN)
-+#define SECDAY (24L*SECHOUR)
-+#define SECYEAR (365L*SECDAY)
-+
-+static long monthToDayInYear[12] = {
-+ 0,
-+ 31,
-+ 31+28,
-+ 31+28+31,
-+ 31+28+31+30,
-+ 31+28+31+30+31,
-+ 31+28+31+30+31+30,
-+ 31+28+31+30+31+30+31,
-+ 31+28+31+30+31+30+31+31,
-+ 31+28+31+30+31+30+31+31+30,
-+ 31+28+31+30+31+30+31+31+30+31,
-+ 31+28+31+30+31+30+31+31+30+31+30,
-+};
-+
-+/* gmttime must contains UTC time in micro-seconds unit */
-+SECStatus
-+DER_TimeToUTCTimeArena(PRArenaPool* arenaOpt, SECItem *dst, int64 gmttime)
-+{
-+ PRExplodedTime printableTime;
-+ unsigned char *d;
-+
-+ dst->len = 13;
-+ if (arenaOpt) {
-+ dst->data = d = (unsigned char*) PORT_ArenaAlloc(arenaOpt, dst->len);
-+ } else {
-+ dst->data = d = (unsigned char*) PORT_Alloc(dst->len);
-+ }
-+ dst->type = siUTCTime;
-+ if (!d) {
-+ return SECFailure;
-+ }
-+
-+ /* Convert an int64 time to a printable format. */
-+ PR_ExplodeTime(gmttime, PR_GMTParameters, &printableTime);
-+
-+ /* The month in UTC time is base one */
-+ printableTime.tm_month++;
-+
-+ /* UTC time does not handle the years before 1950 */
-+ if (printableTime.tm_year < 1950)
-+ return SECFailure;
-+
-+ /* remove the century since it's added to the tm_year by the
-+ PR_ExplodeTime routine, but is not needed for UTC time */
-+ printableTime.tm_year %= 100;
-+
-+ d[0] = HIDIGIT(printableTime.tm_year);
-+ d[1] = LODIGIT(printableTime.tm_year);
-+ d[2] = HIDIGIT(printableTime.tm_month);
-+ d[3] = LODIGIT(printableTime.tm_month);
-+ d[4] = HIDIGIT(printableTime.tm_mday);
-+ d[5] = LODIGIT(printableTime.tm_mday);
-+ d[6] = HIDIGIT(printableTime.tm_hour);
-+ d[7] = LODIGIT(printableTime.tm_hour);
-+ d[8] = HIDIGIT(printableTime.tm_min);
-+ d[9] = LODIGIT(printableTime.tm_min);
-+ d[10] = HIDIGIT(printableTime.tm_sec);
-+ d[11] = LODIGIT(printableTime.tm_sec);
-+ d[12] = 'Z';
-+ return SECSuccess;
-+}
-+
-+SECStatus
-+DER_TimeToUTCTime(SECItem *dst, int64 gmttime)
-+{
-+ return DER_TimeToUTCTimeArena(NULL, dst, gmttime);
-+}
-+
-+/* The caller of DER_AsciiToItem MUST ENSURE that either
-+** a) "string" points to a null-terminated ASCII string, or
-+** b) "string" points to a buffer containing a valid UTCTime,
-+** whether null terminated or not.
-+** otherwise, this function may UMR and/or crash.
-+** It suffices to ensure that the input "string" is at least 17 bytes long.
-+*/
-+SECStatus
-+DER_AsciiToTime(int64 *dst, const char *string)
-+{
-+ long year, month, mday, hour, minute, second, hourOff, minOff, days;
-+ int64 result, tmp1, tmp2;
-+
-+ if (string == NULL) {
-+ goto loser;
-+ }
-+
-+ /* Verify time is formatted properly and capture information */
-+ second = 0;
-+ hourOff = 0;
-+ minOff = 0;
-+ CAPTURE(year,string+0,loser);
-+ if (year < 50) {
-+ /* ASSUME that year # is in the 2000's, not the 1900's */
-+ year += 100;
-+ }
-+ CAPTURE(month,string+2,loser);
-+ if ((month == 0) || (month > 12)) goto loser;
-+ CAPTURE(mday,string+4,loser);
-+ if ((mday == 0) || (mday > 31)) goto loser;
-+ CAPTURE(hour,string+6,loser);
-+ if (hour > 23) goto loser;
-+ CAPTURE(minute,string+8,loser);
-+ if (minute > 59) goto loser;
-+ if (ISDIGIT(string[10])) {
-+ CAPTURE(second,string+10,loser);
-+ if (second > 59) goto loser;
-+ string += 2;
-+ }
-+ if (string[10] == '+') {
-+ CAPTURE(hourOff,string+11,loser);
-+ if (hourOff > 23) goto loser;
-+ CAPTURE(minOff,string+13,loser);
-+ if (minOff > 59) goto loser;
-+ } else if (string[10] == '-') {
-+ CAPTURE(hourOff,string+11,loser);
-+ if (hourOff > 23) goto loser;
-+ hourOff = -hourOff;
-+ CAPTURE(minOff,string+13,loser);
-+ if (minOff > 59) goto loser;
-+ minOff = -minOff;
-+ } else if (string[10] != 'Z') {
-+ goto loser;
-+ }
-+
-+
-+ /* Convert pieces back into a single value year */
-+ LL_I2L(tmp1, (year-70L));
-+ LL_I2L(tmp2, SECYEAR);
-+ LL_MUL(result, tmp1, tmp2);
-+
-+ LL_I2L(tmp1, ( (mday-1L)*SECDAY + hour*SECHOUR + minute*SECMIN -
-+ hourOff*SECHOUR - minOff*SECMIN + second ) );
-+ LL_ADD(result, result, tmp1);
-+
-+ /*
-+ ** Have to specially handle the day in the month and the year, to
-+ ** take into account leap days. The return time value is in
-+ ** seconds since January 1st, 12:00am 1970, so start examining
-+ ** the time after that. We can't represent a time before that.
-+ */
-+
-+ /* Using two digit years, we can only represent dates from 1970
-+ to 2069. As a result, we cannot run into the leap year rule
-+ that states that 1700, 2100, etc. are not leap years (but 2000
-+ is). In other words, there are no years in the span of time
-+ that we can represent that are == 0 mod 4 but are not leap
-+ years. Whew.
-+ */
-+
-+ days = monthToDayInYear[month-1];
-+ days += (year - 68)/4;
-+
-+ if (((year % 4) == 0) && (month < 3)) {
-+ days--;
-+ }
-+
-+ LL_I2L(tmp1, (days * SECDAY) );
-+ LL_ADD(result, result, tmp1 );
-+
-+ /* convert to micro seconds */
-+ LL_I2L(tmp1, PR_USEC_PER_SEC);
-+ LL_MUL(result, result, tmp1);
-+
-+ *dst = result;
-+ return SECSuccess;
-+
-+ loser:
-+ PORT_SetError(SEC_ERROR_INVALID_TIME);
-+ return SECFailure;
-+
-+}
-+
-+SECStatus
-+DER_UTCTimeToTime(int64 *dst, const SECItem *time)
-+{
-+ const char * string;
-+ char localBuf[20];
-+
-+ /* Minimum valid UTCTime is yymmddhhmmZ which is 11 bytes.
-+ ** Maximum valid UTCTime is yymmddhhmmss+0000 which is 17 bytes.
-+ ** 20 should be large enough for all valid encoded times.
-+ */
-+ if (!time || !time->data || time->len < 11) {
-+ PORT_SetError(SEC_ERROR_INVALID_TIME);
-+ return SECFailure;
-+ }
-+ if (time->len >= sizeof localBuf) {
-+ string = (const char *)time->data;
-+ } else {
-+ memset(localBuf, 0, sizeof localBuf);
-+ memcpy(localBuf, time->data, time->len);
-+ string = (const char *)localBuf;
-+ }
-+ return DER_AsciiToTime(dst, string);
-+}
-+
-+/*
-+ gmttime must contains UTC time in micro-seconds unit.
-+ Note: the caller should make sure that Generalized time
-+ should only be used for certifiate validities after the
-+ year 2049. Otherwise, UTC time should be used. This routine
-+ does not check this case, since it can be used to encode
-+ certificate extension, which does not have this restriction.
-+ */
-+SECStatus
-+DER_TimeToGeneralizedTimeArena(PRArenaPool* arenaOpt, SECItem *dst, int64 gmttime)
-+{
-+ PRExplodedTime printableTime;
-+ unsigned char *d;
-+
-+ dst->len = 15;
-+ if (arenaOpt) {
-+ dst->data = d = (unsigned char*) PORT_ArenaAlloc(arenaOpt, dst->len);
-+ } else {
-+ dst->data = d = (unsigned char*) PORT_Alloc(dst->len);
-+ }
-+ dst->type = siGeneralizedTime;
-+ if (!d) {
-+ return SECFailure;
-+ }
-+
-+ /*Convert a int64 time to a printable format. This is a temporary call
-+ until we change to NSPR 2.0
-+ */
-+ PR_ExplodeTime(gmttime, PR_GMTParameters, &printableTime);
-+
-+ /* The month in Generalized time is base one */
-+ printableTime.tm_month++;
-+
-+ d[0] = (printableTime.tm_year /1000) + '0';
-+ d[1] = ((printableTime.tm_year % 1000) / 100) + '0';
-+ d[2] = ((printableTime.tm_year % 100) / 10) + '0';
-+ d[3] = (printableTime.tm_year % 10) + '0';
-+ d[4] = HIDIGIT(printableTime.tm_month);
-+ d[5] = LODIGIT(printableTime.tm_month);
-+ d[6] = HIDIGIT(printableTime.tm_mday);
-+ d[7] = LODIGIT(printableTime.tm_mday);
-+ d[8] = HIDIGIT(printableTime.tm_hour);
-+ d[9] = LODIGIT(printableTime.tm_hour);
-+ d[10] = HIDIGIT(printableTime.tm_min);
-+ d[11] = LODIGIT(printableTime.tm_min);
-+ d[12] = HIDIGIT(printableTime.tm_sec);
-+ d[13] = LODIGIT(printableTime.tm_sec);
-+ d[14] = 'Z';
-+ return SECSuccess;
-+}
-+
-+SECStatus
-+DER_TimeToGeneralizedTime(SECItem *dst, int64 gmttime)
-+{
-+ return DER_TimeToGeneralizedTimeArena(NULL, dst, gmttime);
-+}
-+
-+
-+/*
-+ The caller should make sure that the generalized time should only
-+ be used for the certificate validity after the year 2051; otherwise,
-+ the certificate should be consider invalid!?
-+ */
-+SECStatus
-+DER_GeneralizedTimeToTime(int64 *dst, const SECItem *time)
-+{
-+ PRExplodedTime genTime;
-+ const char *string;
-+ long hourOff, minOff;
-+ uint16 century;
-+ char localBuf[20];
-+
-+ /* Minimum valid GeneralizedTime is ccyymmddhhmmZ which is 13 bytes.
-+ ** Maximum valid GeneralizedTime is ccyymmddhhmmss+0000 which is 19 bytes.
-+ ** 20 should be large enough for all valid encoded times.
-+ */
-+ if (!time || !time->data || time->len < 13)
-+ goto loser;
-+ if (time->len >= sizeof localBuf) {
-+ string = (const char *)time->data;
-+ } else {
-+ memset(localBuf, 0, sizeof localBuf);
-+ memcpy(localBuf, time->data, time->len);
-+ string = (const char *)localBuf;
-+ }
-+
-+ memset(&genTime, 0, sizeof genTime);
-+
-+ /* Verify time is formatted properly and capture information */
-+ hourOff = 0;
-+ minOff = 0;
-+
-+ CAPTURE(century, string+0, loser);
-+ century *= 100;
-+ CAPTURE(genTime.tm_year,string+2,loser);
-+ genTime.tm_year += century;
-+
-+ CAPTURE(genTime.tm_month,string+4,loser);
-+ if ((genTime.tm_month == 0) || (genTime.tm_month > 12)) goto loser;
-+
-+ /* NSPR month base is 0 */
-+ --genTime.tm_month;
-+
-+ CAPTURE(genTime.tm_mday,string+6,loser);
-+ if ((genTime.tm_mday == 0) || (genTime.tm_mday > 31)) goto loser;
-+
-+ CAPTURE(genTime.tm_hour,string+8,loser);
-+ if (genTime.tm_hour > 23) goto loser;
-+
-+ CAPTURE(genTime.tm_min,string+10,loser);
-+ if (genTime.tm_min > 59) goto loser;
-+
-+ if (ISDIGIT(string[12])) {
-+ CAPTURE(genTime.tm_sec,string+12,loser);
-+ if (genTime.tm_sec > 59) goto loser;
-+ string += 2;
-+ }
-+ if (string[12] == '+') {
-+ CAPTURE(hourOff,string+13,loser);
-+ if (hourOff > 23) goto loser;
-+ CAPTURE(minOff,string+15,loser);
-+ if (minOff > 59) goto loser;
-+ } else if (string[12] == '-') {
-+ CAPTURE(hourOff,string+13,loser);
-+ if (hourOff > 23) goto loser;
-+ hourOff = -hourOff;
-+ CAPTURE(minOff,string+15,loser);
-+ if (minOff > 59) goto loser;
-+ minOff = -minOff;
-+ } else if (string[12] != 'Z') {
-+ goto loser;
-+ }
-+
-+ /* Since the values of hourOff and minOff are small, there will
-+ be no loss of data by the conversion to int8 */
-+ /* Convert the GMT offset to seconds and save it it genTime
-+ for the implode time process */
-+ genTime.tm_params.tp_gmt_offset = (PRInt32)((hourOff * 60L + minOff) * 60L);
-+ *dst = PR_ImplodeTime (&genTime);
-+ return SECSuccess;
-+
-+ loser:
-+ PORT_SetError(SEC_ERROR_INVALID_TIME);
-+ return SECFailure;
-+
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/dev.h 2004-12-13 15:50:15.954164312 +0100
-@@ -0,0 +1,993 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifndef DEV_H
-+#define DEV_H
-+
-+/*
-+ * dev.h
-+ *
-+ * Low-level methods for interaction with cryptoki devices
-+ */
-+
-+#ifdef DEBUG
-+static const char DEV_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#ifndef NSSCKT_H
-+#include "nssckt.h"
-+#endif /* NSSCKT_H */
-+
-+#ifndef NSSDEV_H
-+#include "nssdev.h"
-+#endif /* NSSDEV_H */
-+
-+#ifndef DEVT_H
-+#include "devt.h"
-+#endif /* DEVT_H */
-+
-+PR_BEGIN_EXTERN_C
-+
-+/* the global module list
-+ *
-+ * These functions are for managing the global set of modules. Trust Domains,
-+ * etc., will draw from this set. These functions are completely internal
-+ * and only invoked when there are changes to the global module state
-+ * (load or unload).
-+ *
-+ * nss_InitializeGlobalModuleList
-+ * nss_DestroyGlobalModuleList
-+ * nss_GetLoadedModules
-+ *
-+ * nssGlobalModuleList_Add
-+ * nssGlobalModuleList_Remove
-+ * nssGlobalModuleList_FindModuleByName
-+ * nssGlobalModuleList_FindSlotByName
-+ * nssGlobalModuleList_FindTokenByName
-+ */
-+
-+NSS_EXTERN PRStatus
-+nss_InitializeGlobalModuleList
-+(
-+ void
-+);
-+
-+NSS_EXTERN PRStatus
-+nss_DestroyGlobalModuleList
-+(
-+ void
-+);
-+
-+NSS_EXTERN NSSModule **
-+nss_GetLoadedModules
-+(
-+ void
-+);
-+
-+NSS_EXTERN PRStatus
-+nssGlobalModuleList_Add
-+(
-+ NSSModule *module
-+);
-+
-+NSS_EXTERN PRStatus
-+nssGlobalModuleList_Remove
-+(
-+ NSSModule *module
-+);
-+
-+NSS_EXTERN NSSModule *
-+nssGlobalModuleList_FindModuleByName
-+(
-+ NSSUTF8 *moduleName
-+);
-+
-+NSS_EXTERN NSSSlot *
-+nssGlobalModuleList_FindSlotByName
-+(
-+ NSSUTF8 *slotName
-+);
-+
-+NSS_EXTERN NSSToken *
-+nssGlobalModuleList_FindTokenByName
-+(
-+ NSSUTF8 *tokenName
-+);
-+
-+NSS_EXTERN NSSToken *
-+nss_GetDefaultCryptoToken
-+(
-+ void
-+);
-+
-+NSS_EXTERN NSSToken *
-+nss_GetDefaultDatabaseToken
-+(
-+ void
-+);
-+
-+/*
-+ * |-----------|<---> NSSSlot <--> NSSToken
-+ * | NSSModule |<---> NSSSlot <--> NSSToken
-+ * |-----------|<---> NSSSlot <--> NSSToken
-+ */
-+
-+/* NSSModule
-+ *
-+ * nssModule_Create
-+ * nssModule_CreateFromSpec
-+ * nssModule_AddRef
-+ * nssModule_GetName
-+ * nssModule_GetSlots
-+ * nssModule_FindSlotByName
-+ * nssModule_FindTokenByName
-+ * nssModule_GetCertOrder
-+ */
-+
-+NSS_EXTERN NSSModule *
-+nssModule_Create
-+(
-+ NSSUTF8 *moduleOpt,
-+ NSSUTF8 *uriOpt,
-+ NSSUTF8 *opaqueOpt,
-+ void *reserved
-+);
-+
-+/* This is to use the new loading mechanism. */
-+NSS_EXTERN NSSModule *
-+nssModule_CreateFromSpec
-+(
-+ NSSUTF8 *moduleSpec,
-+ NSSModule *parent,
-+ PRBool loadSubModules
-+);
-+
-+NSS_EXTERN PRStatus
-+nssModule_Destroy
-+(
-+ NSSModule *mod
-+);
-+
-+NSS_EXTERN NSSModule *
-+nssModule_AddRef
-+(
-+ NSSModule *mod
-+);
-+
-+NSS_EXTERN NSSUTF8 *
-+nssModule_GetName
-+(
-+ NSSModule *mod
-+);
-+
-+NSS_EXTERN NSSSlot **
-+nssModule_GetSlots
-+(
-+ NSSModule *mod
-+);
-+
-+NSS_EXTERN NSSSlot *
-+nssModule_FindSlotByName
-+(
-+ NSSModule *mod,
-+ NSSUTF8 *slotName
-+);
-+
-+NSS_EXTERN NSSToken *
-+nssModule_FindTokenByName
-+(
-+ NSSModule *mod,
-+ NSSUTF8 *tokenName
-+);
-+
-+NSS_EXTERN PRInt32
-+nssModule_GetCertOrder
-+(
-+ NSSModule *module
-+);
-+
-+/* NSSSlot
-+ *
-+ * nssSlot_Destroy
-+ * nssSlot_AddRef
-+ * nssSlot_GetName
-+ * nssSlot_GetTokenName
-+ * nssSlot_IsTokenPresent
-+ * nssSlot_IsPermanent
-+ * nssSlot_IsFriendly
-+ * nssSlot_IsHardware
-+ * nssSlot_Refresh
-+ * nssSlot_GetModule
-+ * nssSlot_GetToken
-+ * nssSlot_Login
-+ * nssSlot_Logout
-+ * nssSlot_SetPassword
-+ * nssSlot_CreateSession
-+ */
-+
-+NSS_EXTERN PRStatus
-+nssSlot_Destroy
-+(
-+ NSSSlot *slot
-+);
-+
-+NSS_EXTERN NSSSlot *
-+nssSlot_AddRef
-+(
-+ NSSSlot *slot
-+);
-+
-+NSS_EXTERN NSSUTF8 *
-+nssSlot_GetName
-+(
-+ NSSSlot *slot
-+);
-+
-+NSS_EXTERN NSSUTF8 *
-+nssSlot_GetTokenName
-+(
-+ NSSSlot *slot
-+);
-+
-+NSS_EXTERN NSSModule *
-+nssSlot_GetModule
-+(
-+ NSSSlot *slot
-+);
-+
-+NSS_EXTERN NSSToken *
-+nssSlot_GetToken
-+(
-+ NSSSlot *slot
-+);
-+
-+NSS_EXTERN PRBool
-+nssSlot_IsTokenPresent
-+(
-+ NSSSlot *slot
-+);
-+
-+NSS_EXTERN PRBool
-+nssSlot_IsPermanent
-+(
-+ NSSSlot *slot
-+);
-+
-+NSS_EXTERN PRBool
-+nssSlot_IsFriendly
-+(
-+ NSSSlot *slot
-+);
-+
-+NSS_EXTERN PRBool
-+nssSlot_IsHardware
-+(
-+ NSSSlot *slot
-+);
-+
-+NSS_EXTERN PRBool
-+nssSlot_IsLoggedIn
-+(
-+ NSSSlot *slot
-+);
-+
-+NSS_EXTERN PRStatus
-+nssSlot_Refresh
-+(
-+ NSSSlot *slot
-+);
-+
-+NSS_EXTERN PRStatus
-+nssSlot_Login
-+(
-+ NSSSlot *slot,
-+ NSSCallback *pwcb
-+);
-+extern const NSSError NSS_ERROR_INVALID_PASSWORD;
-+extern const NSSError NSS_ERROR_USER_CANCELED;
-+
-+NSS_EXTERN PRStatus
-+nssSlot_Logout
-+(
-+ NSSSlot *slot,
-+ nssSession *sessionOpt
-+);
-+
-+NSS_EXTERN void
-+nssSlot_EnterMonitor
-+(
-+ NSSSlot *slot
-+);
-+
-+NSS_EXTERN void
-+nssSlot_ExitMonitor
-+(
-+ NSSSlot *slot
-+);
-+
-+#define NSSSLOT_ASK_PASSWORD_FIRST_TIME -1
-+#define NSSSLOT_ASK_PASSWORD_EVERY_TIME 0
-+NSS_EXTERN void
-+nssSlot_SetPasswordDefaults
-+(
-+ NSSSlot *slot,
-+ PRInt32 askPasswordTimeout
-+);
-+
-+NSS_EXTERN PRStatus
-+nssSlot_SetPassword
-+(
-+ NSSSlot *slot,
-+ NSSUTF8 *oldPasswordOpt,
-+ NSSUTF8 *newPassword
-+);
-+extern const NSSError NSS_ERROR_INVALID_PASSWORD;
-+extern const NSSError NSS_ERROR_USER_CANCELED;
-+
-+/*
-+ * nssSlot_IsLoggedIn
-+ */
-+
-+NSS_EXTERN nssSession *
-+nssSlot_CreateSession
-+(
-+ NSSSlot *slot,
-+ NSSArena *arenaOpt,
-+ PRBool readWrite /* so far, this is the only flag used */
-+);
-+
-+/* NSSToken
-+ *
-+ * nssToken_Destroy
-+ * nssToken_AddRef
-+ * nssToken_GetName
-+ * nssToken_GetModule
-+ * nssToken_GetSlot
-+ * nssToken_NeedsPINInitialization
-+ * nssToken_ImportCertificate
-+ * nssToken_ImportTrust
-+ * nssToken_ImportCRL
-+ * nssToken_GenerateKeyPair
-+ * nssToken_GenerateSymmetricKey
-+ * nssToken_DeleteStoredObject
-+ * nssToken_FindCertificates
-+ * nssToken_FindCertificatesBySubject
-+ * nssToken_FindCertificatesByNickname
-+ * nssToken_FindCertificatesByEmail
-+ * nssToken_FindCertificateByIssuerAndSerialNumber
-+ * nssToken_FindCertificateByEncodedCertificate
-+ * nssToken_FindTrustObjects
-+ * nssToken_FindTrustForCertificate
-+ * nssToken_FindCRLs
-+ * nssToken_FindCRLsBySubject
-+ * nssToken_FindPrivateKeys
-+ * nssToken_FindPrivateKeyByID
-+ * nssToken_Digest
-+ * nssToken_BeginDigest
-+ * nssToken_ContinueDigest
-+ * nssToken_FinishDigest
-+ */
-+
-+NSS_EXTERN PRStatus
-+nssToken_Destroy
-+(
-+ NSSToken *tok
-+);
-+
-+NSS_EXTERN NSSToken *
-+nssToken_AddRef
-+(
-+ NSSToken *tok
-+);
-+
-+NSS_EXTERN NSSUTF8 *
-+nssToken_GetName
-+(
-+ NSSToken *tok
-+);
-+
-+NSS_EXTERN NSSModule *
-+nssToken_GetModule
-+(
-+ NSSToken *token
-+);
-+
-+NSS_EXTERN NSSSlot *
-+nssToken_GetSlot
-+(
-+ NSSToken *tok
-+);
-+
-+NSS_EXTERN PRBool
-+nssToken_NeedsPINInitialization
-+(
-+ NSSToken *token
-+);
-+
-+NSS_EXTERN nssCryptokiObject *
-+nssToken_ImportCertificate
-+(
-+ NSSToken *tok,
-+ nssSession *sessionOpt,
-+ NSSCertificateType certType,
-+ NSSItem *id,
-+ NSSUTF8 *nickname,
-+ NSSDER *encoding,
-+ NSSDER *issuer,
-+ NSSDER *subject,
-+ NSSDER *serial,
-+ NSSASCII7 *emailAddr,
-+ PRBool asTokenObject
-+);
-+
-+NSS_EXTERN nssCryptokiObject *
-+nssToken_ImportTrust
-+(
-+ NSSToken *tok,
-+ nssSession *sessionOpt,
-+ NSSDER *certEncoding,
-+ NSSDER *certIssuer,
-+ NSSDER *certSerial,
-+ nssTrustLevel serverAuth,
-+ nssTrustLevel clientAuth,
-+ nssTrustLevel codeSigning,
-+ nssTrustLevel emailProtection,
-+ PRBool asTokenObject
-+);
-+
-+NSS_EXTERN nssCryptokiObject *
-+nssToken_ImportCRL
-+(
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ NSSDER *subject,
-+ NSSDER *encoding,
-+ PRBool isKRL,
-+ NSSUTF8 *url,
-+ PRBool asTokenObject
-+);
-+
-+/* Permanently remove an object from the token. */
-+NSS_EXTERN PRStatus
-+nssToken_DeleteStoredObject
-+(
-+ nssCryptokiObject *instance
-+);
-+
-+NSS_EXTERN nssCryptokiObject **
-+nssToken_FindCertificates
-+(
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ nssTokenSearchType searchType,
-+ PRUint32 maximumOpt,
-+ PRStatus *statusOpt
-+);
-+
-+NSS_EXTERN nssCryptokiObject **
-+nssToken_FindCertificatesBySubject
-+(
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ NSSDER *subject,
-+ nssTokenSearchType searchType,
-+ PRUint32 maximumOpt,
-+ PRStatus *statusOpt
-+);
-+
-+NSS_EXTERN nssCryptokiObject **
-+nssToken_FindCertificatesByNickname
-+(
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ NSSUTF8 *name,
-+ nssTokenSearchType searchType,
-+ PRUint32 maximumOpt,
-+ PRStatus *statusOpt
-+);
-+
-+NSS_EXTERN nssCryptokiObject **
-+nssToken_FindCertificatesByEmail
-+(
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ NSSASCII7 *email,
-+ nssTokenSearchType searchType,
-+ PRUint32 maximumOpt,
-+ PRStatus *statusOpt
-+);
-+
-+NSS_EXTERN nssCryptokiObject **
-+nssToken_FindCertificatesByID
-+(
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ NSSItem *id,
-+ nssTokenSearchType searchType,
-+ PRUint32 maximumOpt,
-+ PRStatus *statusOpt
-+);
-+
-+NSS_EXTERN nssCryptokiObject *
-+nssToken_FindCertificateByIssuerAndSerialNumber
-+(
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ NSSDER *issuer,
-+ NSSDER *serial,
-+ nssTokenSearchType searchType,
-+ PRStatus *statusOpt
-+);
-+
-+NSS_EXTERN nssCryptokiObject *
-+nssToken_FindCertificateByEncodedCertificate
-+(
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ NSSBER *encodedCertificate,
-+ nssTokenSearchType searchType,
-+ PRStatus *statusOpt
-+);
-+
-+NSS_EXTERN nssCryptokiObject **
-+nssToken_FindTrustObjects
-+(
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ nssTokenSearchType searchType,
-+ PRUint32 maximumOpt,
-+ PRStatus *statusOpt
-+);
-+
-+NSS_EXTERN nssCryptokiObject *
-+nssToken_FindTrustForCertificate
-+(
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ NSSDER *certEncoding,
-+ NSSDER *certIssuer,
-+ NSSDER *certSerial,
-+ nssTokenSearchType searchType
-+);
-+
-+NSS_EXTERN nssCryptokiObject **
-+nssToken_FindCRLs
-+(
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ nssTokenSearchType searchType,
-+ PRUint32 maximumOpt,
-+ PRStatus *statusOpt
-+);
-+
-+NSS_EXTERN nssCryptokiObject **
-+nssToken_FindCRLsBySubject
-+(
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ NSSDER *subject,
-+ nssTokenSearchType searchType,
-+ PRUint32 maximumOpt,
-+ PRStatus *statusOpt
-+);
-+
-+NSS_EXTERN nssCryptokiObject **
-+nssToken_FindPrivateKeys
-+(
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ nssTokenSearchType searchType,
-+ PRUint32 maximumOpt,
-+ PRStatus *statusOpt
-+);
-+
-+NSS_EXTERN nssCryptokiObject *
-+nssToken_FindPrivateKeyByID
-+(
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ NSSItem *keyID
-+);
-+
-+NSS_EXTERN nssCryptokiObject *
-+nssToken_FindPublicKeyByID
-+(
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ NSSItem *keyID
-+);
-+
-+NSS_EXTERN NSSItem *
-+nssToken_Digest
-+(
-+ NSSToken *tok,
-+ nssSession *sessionOpt,
-+ NSSAlgorithmAndParameters *ap,
-+ NSSItem *data,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+NSS_EXTERN PRStatus
-+nssToken_BeginDigest
-+(
-+ NSSToken *tok,
-+ nssSession *sessionOpt,
-+ NSSAlgorithmAndParameters *ap
-+);
-+
-+NSS_EXTERN PRStatus
-+nssToken_ContinueDigest
-+(
-+ NSSToken *tok,
-+ nssSession *sessionOpt,
-+ NSSItem *item
-+);
-+
-+NSS_EXTERN NSSItem *
-+nssToken_FinishDigest
-+(
-+ NSSToken *tok,
-+ nssSession *sessionOpt,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/* nssSession
-+ *
-+ * nssSession_Destroy
-+ * nssSession_EnterMonitor
-+ * nssSession_ExitMonitor
-+ * nssSession_IsReadWrite
-+ */
-+
-+NSS_EXTERN PRStatus
-+nssSession_Destroy
-+(
-+ nssSession *s
-+);
-+
-+/* would like to inline */
-+NSS_EXTERN PRStatus
-+nssSession_EnterMonitor
-+(
-+ nssSession *s
-+);
-+
-+/* would like to inline */
-+NSS_EXTERN PRStatus
-+nssSession_ExitMonitor
-+(
-+ nssSession *s
-+);
-+
-+/* would like to inline */
-+NSS_EXTERN PRBool
-+nssSession_IsReadWrite
-+(
-+ nssSession *s
-+);
-+
-+/* nssCryptokiObject
-+ *
-+ * An object living on a cryptoki token.
-+ * Not really proper to mix up the object types just because
-+ * nssCryptokiObject itself is generic, but doing so anyway.
-+ *
-+ * nssCryptokiObject_Destroy
-+ * nssCryptokiObject_Equal
-+ * nssCryptokiObject_Clone
-+ * nssCryptokiCertificate_GetAttributes
-+ * nssCryptokiPrivateKey_GetAttributes
-+ * nssCryptokiPublicKey_GetAttributes
-+ * nssCryptokiTrust_GetAttributes
-+ * nssCryptokiCRL_GetAttributes
-+ */
-+
-+NSS_EXTERN void
-+nssCryptokiObject_Destroy
-+(
-+ nssCryptokiObject *object
-+);
-+
-+NSS_EXTERN PRBool
-+nssCryptokiObject_Equal
-+(
-+ nssCryptokiObject *object1,
-+ nssCryptokiObject *object2
-+);
-+
-+NSS_EXTERN nssCryptokiObject *
-+nssCryptokiObject_Clone
-+(
-+ nssCryptokiObject *object
-+);
-+
-+NSS_EXTERN PRStatus
-+nssCryptokiCertificate_GetAttributes
-+(
-+ nssCryptokiObject *object,
-+ nssSession *sessionOpt,
-+ NSSArena *arenaOpt,
-+ NSSCertificateType *certTypeOpt,
-+ NSSItem *idOpt,
-+ NSSDER *encodingOpt,
-+ NSSDER *issuerOpt,
-+ NSSDER *serialOpt,
-+ NSSDER *subjectOpt
-+);
-+
-+NSS_EXTERN PRStatus
-+nssCryptokiTrust_GetAttributes
-+(
-+ nssCryptokiObject *trustObject,
-+ nssSession *sessionOpt,
-+ NSSItem *sha1_hash,
-+ nssTrustLevel *serverAuth,
-+ nssTrustLevel *clientAuth,
-+ nssTrustLevel *codeSigning,
-+ nssTrustLevel *emailProtection
-+);
-+
-+NSS_EXTERN PRStatus
-+nssCryptokiCRL_GetAttributes
-+(
-+ nssCryptokiObject *crlObject,
-+ nssSession *sessionOpt,
-+ NSSArena *arenaOpt,
-+ NSSItem *encodingOpt,
-+ NSSItem * subjectOpt,
-+ CK_ULONG * crl_class,
-+ NSSUTF8 **urlOpt,
-+ PRBool *isKRLOpt
-+);
-+
-+/* I'm including this to handle import of certificates in NSS 3.5. This
-+ * function will set the cert-related attributes of a key, in order to
-+ * associate it with a cert. Does it stay like this for 4.0?
-+ */
-+NSS_EXTERN PRStatus
-+nssCryptokiPrivateKey_SetCertificate
-+(
-+ nssCryptokiObject *keyObject,
-+ nssSession *sessionOpt,
-+ NSSUTF8 *nickname,
-+ NSSItem *id,
-+ NSSDER *subject
-+);
-+
-+NSS_EXTERN void
-+nssModuleArray_Destroy
-+(
-+ NSSModule **modules
-+);
-+
-+/* nssSlotArray
-+ *
-+ * nssSlotArray_Destroy
-+ */
-+
-+NSS_EXTERN void
-+nssSlotArray_Destroy
-+(
-+ NSSSlot **slots
-+);
-+
-+/* nssTokenArray
-+ *
-+ * nssTokenArray_Destroy
-+ */
-+
-+NSS_EXTERN void
-+nssTokenArray_Destroy
-+(
-+ NSSToken **tokens
-+);
-+
-+/* nssCryptokiObjectArray
-+ *
-+ * nssCryptokiObjectArray_Destroy
-+ */
-+NSS_EXTERN void
-+nssCryptokiObjectArray_Destroy
-+(
-+ nssCryptokiObject **object
-+);
-+
-+/* nssSlotList
-+*
-+ * An ordered list of slots. The order can be anything, it is set in the
-+ * Add methods. Perhaps it should be CreateInCertOrder, ...?
-+ *
-+ * nssSlotList_Create
-+ * nssSlotList_Destroy
-+ * nssSlotList_Add
-+ * nssSlotList_AddModuleSlots
-+ * nssSlotList_GetSlots
-+ * nssSlotList_FindSlotByName
-+ * nssSlotList_FindTokenByName
-+ * nssSlotList_GetBestSlot
-+ * nssSlotList_GetBestSlotForAlgorithmAndParameters
-+ * nssSlotList_GetBestSlotForAlgorithmsAndParameters
-+ */
-+
-+/* nssSlotList_Create
-+ */
-+NSS_EXTERN nssSlotList *
-+nssSlotList_Create
-+(
-+ NSSArena *arenaOpt
-+);
-+
-+/* nssSlotList_Destroy
-+ */
-+NSS_EXTERN void
-+nssSlotList_Destroy
-+(
-+ nssSlotList *slotList
-+);
-+
-+/* nssSlotList_Add
-+ *
-+ * Add the given slot in the given order.
-+ */
-+NSS_EXTERN PRStatus
-+nssSlotList_Add
-+(
-+ nssSlotList *slotList,
-+ NSSSlot *slot,
-+ PRUint32 order
-+);
-+
-+/* nssSlotList_AddModuleSlots
-+ *
-+ * Add all slots in the module, in the given order (the slots will have
-+ * equal weight).
-+ */
-+NSS_EXTERN PRStatus
-+nssSlotList_AddModuleSlots
-+(
-+ nssSlotList *slotList,
-+ NSSModule *module,
-+ PRUint32 order
-+);
-+
-+/* nssSlotList_GetSlots
-+ */
-+NSS_EXTERN NSSSlot **
-+nssSlotList_GetSlots
-+(
-+ nssSlotList *slotList
-+);
-+
-+/* nssSlotList_FindSlotByName
-+ */
-+NSS_EXTERN NSSSlot *
-+nssSlotList_FindSlotByName
-+(
-+ nssSlotList *slotList,
-+ NSSUTF8 *slotName
-+);
-+
-+/* nssSlotList_FindTokenByName
-+ */
-+NSS_EXTERN NSSToken *
-+nssSlotList_FindTokenByName
-+(
-+ nssSlotList *slotList,
-+ NSSUTF8 *tokenName
-+);
-+
-+/* nssSlotList_GetBestSlot
-+ *
-+ * The best slot is the highest ranking in order, i.e., the first in the
-+ * list.
-+ */
-+NSS_EXTERN NSSSlot *
-+nssSlotList_GetBestSlot
-+(
-+ nssSlotList *slotList
-+);
-+
-+/* nssSlotList_GetBestSlotForAlgorithmAndParameters
-+ *
-+ * Highest-ranking slot than can handle algorithm/parameters.
-+ */
-+NSS_EXTERN NSSSlot *
-+nssSlotList_GetBestSlotForAlgorithmAndParameters
-+(
-+ nssSlotList *slotList,
-+ NSSAlgorithmAndParameters *ap
-+);
-+
-+/* nssSlotList_GetBestSlotForAlgorithmsAndParameters
-+ *
-+ * Highest-ranking slot than can handle all algorithms/parameters.
-+ */
-+NSS_EXTERN NSSSlot *
-+nssSlotList_GetBestSlotForAlgorithmsAndParameters
-+(
-+ nssSlotList *slotList,
-+ NSSAlgorithmAndParameters **ap
-+);
-+
-+#ifdef NSS_3_4_CODE
-+
-+NSS_EXTERN PRBool
-+nssToken_IsPresent
-+(
-+ NSSToken *token
-+);
-+
-+NSS_EXTERN nssSession *
-+nssToken_GetDefaultSession
-+(
-+ NSSToken *token
-+);
-+
-+NSS_EXTERN PRStatus
-+nssToken_GetTrustOrder
-+(
-+ NSSToken *tok
-+);
-+
-+NSS_EXTERN PRStatus
-+nssToken_NotifyCertsNotVisible
-+(
-+ NSSToken *tok
-+);
-+
-+NSS_EXTERN PRStatus
-+nssToken_TraverseCertificates
-+(
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ nssTokenSearchType searchType,
-+ PRStatus (* callback)(nssCryptokiObject *instance, void *arg),
-+ void *arg
-+);
-+
-+NSS_EXTERN PRBool
-+nssToken_IsPrivateKeyAvailable
-+(
-+ NSSToken *token,
-+ NSSCertificate *c,
-+ nssCryptokiObject *instance
-+);
-+
-+
-+#endif
-+
-+PR_END_EXTERN_C
-+
-+#endif /* DEV_H */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/dev3hack.c 2004-12-13 13:06:46.681400440 +0100
-@@ -0,0 +1,313 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#ifndef NSS_3_4_CODE
-+#define NSS_3_4_CODE
-+#endif /* NSS_3_4_CODE */
-+
-+#ifndef PKIT_H
-+#include "pkit.h"
-+#endif /* PKIT_H */
-+
-+#ifndef DEVM_H
-+#include "devm.h"
-+#endif /* DEVM_H */
-+
-+#include "pki3hack.h"
-+#include "dev3hack.h"
-+#include "pkim.h"
-+
-+#ifndef BASE_H
-+#include "base.h"
-+#endif /* BASE_H */
-+
-+#include "pk11func.h"
-+#include "secmodti.h"
-+
-+NSS_IMPLEMENT nssSession *
-+nssSession_ImportNSS3Session(NSSArena *arenaOpt,
-+ CK_SESSION_HANDLE session,
-+ PZLock *lock, PRBool rw)
-+{
-+ nssSession *rvSession;
-+ rvSession = nss_ZNEW(arenaOpt, nssSession);
-+ rvSession->handle = session;
-+ rvSession->lock = lock;
-+ rvSession->ownLock = PR_FALSE;
-+ rvSession->isRW = rw;
-+ return rvSession;
-+}
-+
-+NSS_IMPLEMENT nssSession *
-+nssSlot_CreateSession
-+(
-+ NSSSlot *slot,
-+ NSSArena *arenaOpt,
-+ PRBool readWrite
-+)
-+{
-+ nssSession *rvSession;
-+ rvSession = nss_ZNEW(arenaOpt, nssSession);
-+ if (!rvSession) {
-+ return (nssSession *)NULL;
-+ }
-+ if (readWrite) {
-+ rvSession->handle = PK11_GetRWSession(slot->pk11slot);
-+ if (rvSession->handle == CK_INVALID_HANDLE) {
-+ nss_ZFreeIf(rvSession);
-+ return NULL;
-+ }
-+ rvSession->isRW = PR_TRUE;
-+ rvSession->slot = slot;
-+ /*
-+ * The session doesn't need its own lock. Here's why.
-+ * 1. If we are reusing the default RW session of the slot,
-+ * the slot lock is already locked to protect the session.
-+ * 2. If the module is not thread safe, the slot (or rather
-+ * module) lock is already locked.
-+ * 3. If the module is thread safe and we are using a new
-+ * session, no higher-level lock has been locked and we
-+ * would need a lock for the new session. However, the
-+ * NSS_3_4_CODE usage of the session is that it is always
-+ * used and destroyed within the same function and never
-+ * shared with another thread.
-+ * So the session is either already protected by another
-+ * lock or only used by one thread.
-+ */
-+ rvSession->lock = NULL;
-+ rvSession->ownLock = PR_FALSE;
-+ return rvSession;
-+ } else {
-+ return NULL;
-+ }
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssSession_Destroy
-+(
-+ nssSession *s
-+)
-+{
-+ CK_RV ckrv = CKR_OK;
-+ if (s) {
-+ if (s->isRW) {
-+ PK11_RestoreROSession(s->slot->pk11slot, s->handle);
-+ }
-+ nss_ZFreeIf(s);
-+ }
-+ return (ckrv == CKR_OK) ? PR_SUCCESS : PR_FAILURE;
-+}
-+
-+static NSSSlot *
-+nssSlot_CreateFromPK11SlotInfo(NSSTrustDomain *td, PK11SlotInfo *nss3slot)
-+{
-+ NSSSlot *rvSlot;
-+ NSSArena *arena;
-+ arena = nssArena_Create();
-+ if (!arena) {
-+ return NULL;
-+ }
-+ rvSlot = nss_ZNEW(arena, NSSSlot);
-+ if (!rvSlot) {
-+ nssArena_Destroy(arena);
-+ return NULL;
-+ }
-+ rvSlot->base.refCount = 1;
-+ rvSlot->base.lock = PZ_NewLock(nssILockOther);
-+ rvSlot->base.arena = arena;
-+ rvSlot->pk11slot = nss3slot;
-+ rvSlot->epv = nss3slot->functionList;
-+ rvSlot->slotID = nss3slot->slotID;
-+ /* Grab the slot name from the PKCS#11 fixed-length buffer */
-+ rvSlot->base.name = nssUTF8_Duplicate(nss3slot->slot_name,td->arena);
-+ rvSlot->lock = (nss3slot->isThreadSafe) ? NULL : nss3slot->sessionLock;
-+ return rvSlot;
-+}
-+
-+NSS_IMPLEMENT NSSToken *
-+nssToken_CreateFromPK11SlotInfo(NSSTrustDomain *td, PK11SlotInfo *nss3slot)
-+{
-+ NSSToken *rvToken;
-+ NSSArena *arena;
-+ arena = nssArena_Create();
-+ if (!arena) {
-+ return NULL;
-+ }
-+ rvToken = nss_ZNEW(arena, NSSToken);
-+ if (!rvToken) {
-+ nssArena_Destroy(arena);
-+ return NULL;
-+ }
-+ rvToken->base.refCount = 1;
-+ rvToken->base.lock = PZ_NewLock(nssILockOther);
-+ rvToken->base.arena = arena;
-+ rvToken->pk11slot = nss3slot;
-+ rvToken->epv = nss3slot->functionList;
-+ rvToken->defaultSession = nssSession_ImportNSS3Session(td->arena,
-+ nss3slot->session,
-+ nss3slot->sessionLock,
-+ nss3slot->defRWSession);
-+ /* The above test was used in 3.4, for this cache have it always on */
-+ if (!PK11_IsInternal(nss3slot) && PK11_IsHW(nss3slot)) {
-+ rvToken->cache = nssTokenObjectCache_Create(rvToken,
-+ PR_TRUE, PR_TRUE, PR_TRUE);
-+ if (!rvToken->cache) {
-+ nssArena_Destroy(arena);
-+ return (NSSToken *)NULL;
-+ }
-+ }
-+ rvToken->trustDomain = td;
-+ /* Grab the token name from the PKCS#11 fixed-length buffer */
-+ rvToken->base.name = nssUTF8_Duplicate(nss3slot->token_name,td->arena);
-+ rvToken->slot = nssSlot_CreateFromPK11SlotInfo(td, nss3slot);
-+ rvToken->slot->token = rvToken;
-+ rvToken->defaultSession->slot = rvToken->slot;
-+ return rvToken;
-+}
-+
-+NSS_IMPLEMENT void
-+nssToken_UpdateName(NSSToken *token)
-+{
-+ if (!token) {
-+ return;
-+ }
-+ token->base.name = nssUTF8_Duplicate(token->pk11slot->token_name,token->base.arena);
-+}
-+
-+NSS_IMPLEMENT PRBool
-+nssSlot_IsPermanent
-+(
-+ NSSSlot *slot
-+)
-+{
-+ return slot->pk11slot->isPerm;
-+}
-+
-+NSS_IMPLEMENT PRBool
-+nssSlot_IsFriendly
-+(
-+ NSSSlot *slot
-+)
-+{
-+ return PK11_IsFriendly(slot->pk11slot);
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssToken_Refresh(NSSToken *token)
-+{
-+ PK11SlotInfo *nss3slot;
-+
-+ if (!token) {
-+ return PR_SUCCESS;
-+ }
-+ nss3slot = token->pk11slot;
-+ token->defaultSession = nssSession_ImportNSS3Session(token->slot->base.arena,
-+ nss3slot->session,
-+ nss3slot->sessionLock,
-+ nss3slot->defRWSession);
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssSlot_Refresh
-+(
-+ NSSSlot *slot
-+)
-+{
-+ PK11SlotInfo *nss3slot = slot->pk11slot;
-+ PRBool doit = PR_FALSE;
-+ if (slot->token->base.name[0] == 0) {
-+ doit = PR_TRUE;
-+ }
-+ if (PK11_InitToken(nss3slot, PR_FALSE) != SECSuccess) {
-+ return PR_FAILURE;
-+ }
-+ if (doit) {
-+ nssTrustDomain_UpdateCachedTokenCerts(slot->token->trustDomain,
-+ slot->token);
-+ }
-+ return nssToken_Refresh(slot->token);
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssToken_GetTrustOrder
-+(
-+ NSSToken *tok
-+)
-+{
-+ PK11SlotInfo *slot;
-+ SECMODModule *module;
-+ slot = tok->pk11slot;
-+ module = PK11_GetModule(slot);
-+ return module->trustOrder;
-+}
-+
-+NSS_IMPLEMENT PRBool
-+nssSlot_IsLoggedIn
-+(
-+ NSSSlot *slot
-+)
-+{
-+ if (!slot->pk11slot->needLogin) {
-+ return PR_TRUE;
-+ }
-+ return PK11_IsLoggedIn(slot->pk11slot, NULL);
-+}
-+
-+
-+NSSTrustDomain *
-+nssToken_GetTrustDomain(NSSToken *token)
-+{
-+ return token->trustDomain;
-+}
-+
-+NSS_EXTERN PRStatus
-+nssTrustDomain_RemoveTokenCertsFromCache
-+(
-+ NSSTrustDomain *td,
-+ NSSToken *token
-+);
-+
-+NSS_IMPLEMENT PRStatus
-+nssToken_NotifyCertsNotVisible
-+(
-+ NSSToken *tok
-+)
-+{
-+ return nssTrustDomain_RemoveTokenCertsFromCache(tok->trustDomain, tok);
-+}
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/dev3hack.h 2004-12-13 15:50:16.009155952 +0100
-@@ -0,0 +1,63 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifndef DEVNSS3HACK_H
-+#define DEVNSS3HACK_H
-+
-+#ifdef DEBUG
-+static const char DEVNSS3HACK_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#include "cert.h"
-+
-+PR_BEGIN_EXTERN_C
-+
-+NSS_EXTERN NSSToken *
-+nssToken_CreateFromPK11SlotInfo(NSSTrustDomain *td, PK11SlotInfo *nss3slot);
-+
-+NSS_EXTERN void
-+nssToken_UpdateName(NSSToken *);
-+
-+NSS_EXTERN PRStatus
-+nssToken_Refresh(NSSToken *);
-+
-+NSSTrustDomain *
-+nssToken_GetTrustDomain(NSSToken *token);
-+
-+void PK11Slot_SetNSSToken(PK11SlotInfo *sl, NSSToken *nsst);
-+
-+NSSToken * PK11Slot_GetNSSToken(PK11SlotInfo *sl);
-+
-+PR_END_EXTERN_C
-+
-+#endif /* DEVNSS3HACK_H */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/devm.h 2004-12-13 15:50:15.994158232 +0100
-@@ -0,0 +1,242 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifndef DEVM_H
-+#define DEVM_H
-+
-+#ifdef DEBUG
-+static const char DEVM_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#ifndef BASE_H
-+#include "base.h"
-+#endif /* BASE_H */
-+
-+#ifndef NSSCKT_H
-+#include "nssckt.h"
-+#endif /* NSSCKT_H */
-+
-+#ifndef DEV_H
-+#include "dev.h"
-+#endif /* DEV_H */
-+
-+#ifndef DEVTM_H
-+#include "devtm.h"
-+#endif /* DEVTM_H */
-+
-+PR_BEGIN_EXTERN_C
-+
-+/* Shortcut to cryptoki API functions. */
-+#define CKAPI(epv) \
-+ ((CK_FUNCTION_LIST_PTR)(epv))
-+
-+NSS_EXTERN void
-+nssDevice_AddRef
-+(
-+ struct nssDeviceBaseStr *device
-+);
-+
-+NSS_EXTERN PRBool
-+nssDevice_Destroy
-+(
-+ struct nssDeviceBaseStr *device
-+);
-+
-+NSS_EXTERN PRBool
-+nssModule_IsThreadSafe
-+(
-+ NSSModule *module
-+);
-+
-+NSS_EXTERN PRBool
-+nssModule_IsInternal
-+(
-+ NSSModule *mod
-+);
-+
-+NSS_EXTERN PRBool
-+nssModule_IsModuleDBOnly
-+(
-+ NSSModule *mod
-+);
-+
-+NSS_EXTERN void *
-+nssModule_GetCryptokiEPV
-+(
-+ NSSModule *mod
-+);
-+
-+NSS_EXTERN NSSSlot *
-+nssSlot_Create
-+(
-+ CK_SLOT_ID slotId,
-+ NSSModule *parent
-+);
-+
-+NSS_EXTERN void *
-+nssSlot_GetCryptokiEPV
-+(
-+ NSSSlot *slot
-+);
-+
-+NSS_EXTERN NSSToken *
-+nssToken_Create
-+(
-+ CK_SLOT_ID slotID,
-+ NSSSlot *peer
-+);
-+
-+NSS_EXTERN void *
-+nssToken_GetCryptokiEPV
-+(
-+ NSSToken *token
-+);
-+
-+NSS_EXTERN nssSession *
-+nssToken_GetDefaultSession
-+(
-+ NSSToken *token
-+);
-+
-+NSS_EXTERN PRBool
-+nssToken_IsLoginRequired
-+(
-+ NSSToken *token
-+);
-+
-+NSS_EXTERN void
-+nssToken_Remove
-+(
-+ NSSToken *token
-+);
-+
-+NSS_EXTERN nssCryptokiObject *
-+nssCryptokiObject_Create
-+(
-+ NSSToken *t,
-+ nssSession *session,
-+ CK_OBJECT_HANDLE h
-+);
-+
-+NSS_EXTERN nssTokenObjectCache *
-+nssTokenObjectCache_Create
-+(
-+ NSSToken *token,
-+ PRBool cacheCerts,
-+ PRBool cacheTrust,
-+ PRBool cacheCRLs
-+);
-+
-+NSS_EXTERN void
-+nssTokenObjectCache_Destroy
-+(
-+ nssTokenObjectCache *cache
-+);
-+
-+NSS_EXTERN void
-+nssTokenObjectCache_Clear
-+(
-+ nssTokenObjectCache *cache
-+);
-+
-+NSS_EXTERN PRBool
-+nssTokenObjectCache_HaveObjectClass
-+(
-+ nssTokenObjectCache *cache,
-+ CK_OBJECT_CLASS objclass
-+);
-+
-+NSS_EXTERN nssCryptokiObject **
-+nssTokenObjectCache_FindObjectsByTemplate
-+(
-+ nssTokenObjectCache *cache,
-+ CK_OBJECT_CLASS objclass,
-+ CK_ATTRIBUTE_PTR otemplate,
-+ CK_ULONG otlen,
-+ PRUint32 maximumOpt,
-+ PRStatus *statusOpt
-+);
-+
-+NSS_EXTERN PRStatus
-+nssTokenObjectCache_GetObjectAttributes
-+(
-+ nssTokenObjectCache *cache,
-+ NSSArena *arenaOpt,
-+ nssCryptokiObject *object,
-+ CK_OBJECT_CLASS objclass,
-+ CK_ATTRIBUTE_PTR atemplate,
-+ CK_ULONG atlen
-+);
-+
-+NSS_EXTERN PRStatus
-+nssTokenObjectCache_ImportObject
-+(
-+ nssTokenObjectCache *cache,
-+ nssCryptokiObject *object,
-+ CK_OBJECT_CLASS objclass,
-+ CK_ATTRIBUTE_PTR ot,
-+ CK_ULONG otlen
-+);
-+
-+NSS_EXTERN void
-+nssTokenObjectCache_RemoveObject
-+(
-+ nssTokenObjectCache *cache,
-+ nssCryptokiObject *object
-+);
-+
-+/* XXX allows peek back into token */
-+NSS_EXTERN PRStatus
-+nssToken_GetCachedObjectAttributes
-+(
-+ NSSToken *token,
-+ NSSArena *arenaOpt,
-+ nssCryptokiObject *object,
-+ CK_OBJECT_CLASS objclass,
-+ CK_ATTRIBUTE_PTR atemplate,
-+ CK_ULONG atlen
-+);
-+
-+/* PKCS#11 stores strings in a fixed-length buffer padded with spaces. This
-+ * function gets the length of the actual string.
-+ */
-+NSS_EXTERN PRUint32
-+nssPKCS11String_Length
-+(
-+ CK_CHAR *pkcs11str,
-+ PRUint32 bufLen
-+);
-+
-+PR_END_EXTERN_C
-+
-+#endif /* DEV_H */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/devmod.c 2004-12-13 13:06:46.862372928 +0100
-@@ -0,0 +1,875 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#ifndef NSSCKEPV_H
-+#include "nssckepv.h"
-+#endif /* NSSCKEPV_H */
-+
-+#ifndef DEVM_H
-+#include "devm.h"
-+#endif /* DEVM_H */
-+
-+#ifndef CKHELPER_H
-+#include "ckhelper.h"
-+#endif /* CKHELPER_H */
-+
-+#ifdef PURE_STAN_CODE
-+
-+extern void FC_GetFunctionList(void);
-+extern void NSC_GetFunctionList(void);
-+extern void NSC_ModuleDBFunc(void);
-+
-+/* The list of boolean flags used to describe properties of a
-+ * module.
-+ */
-+#define NSSMODULE_FLAGS_NOT_THREADSAFE 0x0001 /* isThreadSafe */
-+#define NSSMODULE_FLAGS_INTERNAL 0x0002 /* isInternal */
-+#define NSSMODULE_FLAGS_FIPS 0x0004 /* isFIPS */
-+#define NSSMODULE_FLAGS_MODULE_DB 0x0008 /* isModuleDB */
-+#define NSSMODULE_FLAGS_MODULE_DB_ONLY 0x0010 /* moduleDBOnly */
-+#define NSSMODULE_FLAGS_CRITICAL 0x0020 /* isCritical */
-+
-+struct NSSModuleStr {
-+ struct nssDeviceBaseStr base;
-+ NSSUTF8 *libraryName;
-+ PRLibrary *library;
-+ char *libraryParams;
-+ void *moduleDBFunc;
-+ void *epv;
-+ CK_INFO info;
-+ NSSSlot **slots;
-+ PRUint32 numSlots;
-+ PRBool isLoaded;
-+ struct {
-+ PRInt32 trust;
-+ PRInt32 cipher;
-+ PRInt32 certStorage;
-+ } order;
-+};
-+
-+#define NSSMODULE_IS_THREADSAFE(module) \
-+ (!(module->base.flags & NSSMODULE_FLAGS_NOT_THREADSAFE))
-+
-+#define NSSMODULE_IS_INTERNAL(module) \
-+ (module->base.flags & NSSMODULE_FLAGS_INTERNAL)
-+
-+#define NSSMODULE_IS_FIPS(module) \
-+ (module->base.flags & NSSMODULE_FLAGS_FIPS)
-+
-+#define NSSMODULE_IS_MODULE_DB(module) \
-+ (module->base.flags & NSSMODULE_FLAGS_MODULE_DB)
-+
-+#define NSSMODULE_IS_MODULE_DB_ONLY(module) \
-+ (module->base.flags & NSSMODULE_FLAGS_MODULE_DB_ONLY)
-+
-+#define NSSMODULE_IS_CRITICAL(module) \
-+ (module->base.flags & NSSMODULE_FLAGS_CRITICAL)
-+
-+/* Threading callbacks for C_Initialize. Use NSPR threads. */
-+
-+CK_RV PR_CALLBACK
-+nss_ck_CreateMutex(CK_VOID_PTR_PTR pMutex)
-+{
-+ CK_VOID_PTR mutex = (CK_VOID_PTR)PZ_NewLock(nssILockOther);
-+ if (mutex != NULL) {
-+ *pMutex = (CK_VOID_PTR)mutex;
-+ return CKR_OK;
-+ }
-+ return CKR_HOST_MEMORY;
-+}
-+
-+CK_RV PR_CALLBACK
-+nss_ck_DestroyMutex(CK_VOID_PTR mutex)
-+{
-+ PZ_DestroyLock((PZLock *)mutex);
-+ return CKR_OK;
-+}
-+
-+CK_RV PR_CALLBACK
-+nss_ck_LockMutex(CK_VOID_PTR mutex)
-+{
-+ PZ_Lock((PZLock *)mutex);
-+ return CKR_OK;
-+}
-+
-+CK_RV PR_CALLBACK
-+nss_ck_UnlockMutex(CK_VOID_PTR mutex)
-+{
-+ return (PZ_Unlock((PZLock *)mutex) == PR_SUCCESS) ?
-+ CKR_OK : CKR_MUTEX_NOT_LOCKED;
-+}
-+
-+/* Default callback args to C_Initialize */
-+/* XXX not const because we are modifying the pReserved argument in order
-+ * to use the libraryParams extension.
-+ */
-+static CK_C_INITIALIZE_ARGS
-+s_ck_initialize_args = {
-+ nss_ck_CreateMutex, /* CreateMutex */
-+ nss_ck_DestroyMutex, /* DestroyMutex */
-+ nss_ck_LockMutex, /* LockMutex */
-+ nss_ck_UnlockMutex, /* UnlockMutex */
-+ CKF_LIBRARY_CANT_CREATE_OS_THREADS |
-+ CKF_OS_LOCKING_OK, /* flags */
-+ NULL /* pReserved */
-+};
-+
-+/* load all slots in a module. */
-+static PRStatus
-+module_load_slots(NSSModule *mod)
-+{
-+ CK_ULONG i, ulNumSlots;
-+ CK_SLOT_ID *slotIDs;
-+ nssArenaMark *mark = NULL;
-+ NSSSlot **slots;
-+ PRStatus nssrv;
-+ CK_RV ckrv;
-+ /* Get the number of slots */
-+ ckrv = CKAPI(mod->epv)->C_GetSlotList(CK_FALSE, NULL, &ulNumSlots);
-+ if (ckrv != CKR_OK) {
-+ /* what is the error? */
-+ return PR_FAILURE;
-+ }
-+ /* Alloc memory for the array of slot ID's */
-+ slotIDs = nss_ZNEWARRAY(NULL, CK_SLOT_ID, ulNumSlots);
-+ if (!slotIDs) {
-+ goto loser;
-+ }
-+ /* Get the actual slot list */
-+ ckrv = CKAPI(mod->epv)->C_GetSlotList(CK_FALSE, slotIDs, &ulNumSlots);
-+ if (ckrv != CKR_OK) {
-+ /* what is the error? */
-+ goto loser;
-+ }
-+ /* Alloc memory for the array of slots, in the module's arena */
-+ mark = nssArena_Mark(mod->base.arena); /* why mark? it'll be destroyed */
-+ if (!mark) {
-+ return PR_FAILURE;
-+ }
-+ slots = nss_ZNEWARRAY(mod->base.arena, NSSSlot *, ulNumSlots);
-+ if (!slots) {
-+ goto loser;
-+ }
-+ /* Initialize each slot */
-+ for (i=0; i<ulNumSlots; i++) {
-+ slots[i] = nssSlot_Create(slotIDs[i], mod);
-+ }
-+ nss_ZFreeIf(slotIDs);
-+ nssrv = nssArena_Unmark(mod->base.arena, mark);
-+ if (nssrv != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ mod->slots = slots;
-+ mod->numSlots = ulNumSlots;
-+ return PR_SUCCESS;
-+loser:
-+ if (mark) {
-+ nssArena_Release(mod->base.arena, mark);
-+ }
-+ nss_ZFreeIf(slotIDs);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssModule_Load (
-+ NSSModule *mod
-+)
-+{
-+ PRLibrary *library = NULL;
-+ CK_C_GetFunctionList epv;
-+ CK_RV ckrv;
-+ if (NSSMODULE_IS_INTERNAL(mod)) {
-+ /* internal, statically get the C_GetFunctionList function */
-+ if (NSSMODULE_IS_FIPS(mod)) {
-+ epv = (CK_C_GetFunctionList) FC_GetFunctionList;
-+ } else {
-+ epv = (CK_C_GetFunctionList) NSC_GetFunctionList;
-+ }
-+ if (NSSMODULE_IS_MODULE_DB(mod)) {
-+ mod->moduleDBFunc = (void *) NSC_ModuleDBFunc;
-+ }
-+ if (NSSMODULE_IS_MODULE_DB_ONLY(mod)) {
-+ mod->isLoaded = PR_TRUE; /* XXX needed? */
-+ return PR_SUCCESS;
-+ }
-+ } else {
-+ /* Use NSPR to load the library */
-+ library = PR_LoadLibrary(mod->libraryName);
-+ if (!library) {
-+ /* what's the error to set? */
-+ return PR_FAILURE;
-+ }
-+ mod->library = library;
-+ /* Skip if only getting the db loader function */
-+ if (!NSSMODULE_IS_MODULE_DB_ONLY(mod)) {
-+ /* Load the cryptoki entry point function */
-+ epv = (CK_C_GetFunctionList)PR_FindSymbol(library,
-+ "C_GetFunctionList");
-+ }
-+ /* Load the module database loader function */
-+ if (NSSMODULE_IS_MODULE_DB(mod)) {
-+ mod->moduleDBFunc = (void *)PR_FindSymbol(library,
-+ "NSS_ReturnModuleSpecData");
-+ }
-+ }
-+ if (epv == NULL) {
-+ goto loser;
-+ }
-+ /* Load the cryptoki entry point vector (function list) */
-+ ckrv = (*epv)((CK_FUNCTION_LIST_PTR *)&mod->epv);
-+ if (ckrv != CKR_OK) {
-+ goto loser;
-+ }
-+ /* Initialize the module */
-+ if (mod->libraryParams) {
-+ s_ck_initialize_args.LibraryParameters = (void *)mod->libraryParams;
-+ } else {
-+ s_ck_initialize_args.LibraryParameters = NULL;
-+ }
-+ ckrv = CKAPI(mod->epv)->C_Initialize(&s_ck_initialize_args);
-+ if (ckrv != CKR_OK) {
-+ /* Apparently the token is not thread safe. Retry without
-+ * threading parameters.
-+ */
-+ mod->base.flags |= NSSMODULE_FLAGS_NOT_THREADSAFE;
-+ ckrv = CKAPI(mod->epv)->C_Initialize((CK_VOID_PTR)NULL);
-+ if (ckrv != CKR_OK) {
-+ goto loser;
-+ }
-+ }
-+ /* TODO: check the version # using C_GetInfo */
-+ ckrv = CKAPI(mod->epv)->C_GetInfo(&mod->info);
-+ if (ckrv != CKR_OK) {
-+ goto loser;
-+ }
-+ /* TODO: if the name is not set, get it from info.libraryDescription */
-+ /* Now load the slots */
-+ if (module_load_slots(mod) != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ /* Module has successfully loaded */
-+ mod->isLoaded = PR_TRUE;
-+ return PR_SUCCESS;
-+loser:
-+ if (library) {
-+ PR_UnloadLibrary(library);
-+ }
-+ /* clear all values set above, they are invalid now */
-+ mod->library = NULL;
-+ mod->epv = NULL;
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssModule_Unload (
-+ NSSModule *mod
-+)
-+{
-+ PRStatus nssrv = PR_SUCCESS;
-+ if (mod->library) {
-+ (void)CKAPI(mod->epv)->C_Finalize(NULL);
-+ nssrv = PR_UnloadLibrary(mod->library);
-+ }
-+ /* Free the slots, yes? */
-+ mod->library = NULL;
-+ mod->epv = NULL;
-+ mod->isLoaded = PR_FALSE;
-+ return nssrv;
-+}
-+
-+/* Alloc memory for a module. Copy in the module name and library path
-+ * if provided. XXX use the opaque arg also, right?
-+ */
-+NSS_IMPLEMENT NSSModule *
-+nssModule_Create (
-+ NSSUTF8 *moduleOpt,
-+ NSSUTF8 *uriOpt,
-+ NSSUTF8 *opaqueOpt,
-+ void *reserved
-+)
-+{
-+ NSSArena *arena;
-+ NSSModule *rvMod;
-+ arena = NSSArena_Create();
-+ if(!arena) {
-+ return (NSSModule *)NULL;
-+ }
-+ rvMod = nss_ZNEW(arena, NSSModule);
-+ if (!rvMod) {
-+ goto loser;
-+ }
-+ if (moduleOpt) {
-+ /* XXX making the gross assumption this is just the module name */
-+ /* if the name is a duplicate, should that be tested here? or
-+ * wait for Load?
-+ */
-+ rvMod->base.name = nssUTF8_Duplicate(moduleOpt, arena);
-+ if (!rvMod->base.name) {
-+ goto loser;
-+ }
-+ }
-+ if (uriOpt) {
-+ /* Load the module from a URI. */
-+ /* XXX at this time - only file URI (even worse, no file:// for now) */
-+ rvMod->libraryName = nssUTF8_Duplicate(uriOpt, arena);
-+ if (!rvMod->libraryName) {
-+ goto loser;
-+ }
-+ }
-+ rvMod->base.arena = arena;
-+ rvMod->base.refCount = 1;
-+ rvMod->base.lock = PZ_NewLock(nssNSSILockOther);
-+ if (!rvMod->base.lock) {
-+ goto loser;
-+ }
-+ /* everything else is 0/NULL at this point. */
-+ return rvMod;
-+loser:
-+ nssArena_Destroy(arena);
-+ return (NSSModule *)NULL;
-+}
-+
-+NSS_EXTERN PRStatus
-+nssCryptokiArgs_ParseNextPair (
-+ NSSUTF8 *start,
-+ NSSUTF8 **attrib,
-+ NSSUTF8 **value,
-+ NSSUTF8 **remainder,
-+ NSSArena *arenaOpt
-+);
-+
-+static PRStatus
-+parse_slot_flags (
-+ NSSSlot *slot,
-+ NSSUTF8 *slotFlags
-+)
-+{
-+ PRStatus nssrv = PR_SUCCESS;
-+#if 0
-+ PRBool done = PR_FALSE;
-+ NSSUTF8 *mark, *last;
-+ last = mark = slotFlags;
-+ while (PR_TRUE) {
-+ while (*mark && *mark != ',') ++mark;
-+ if (!*mark) done = PR_TRUE;
-+ *mark = '\0';
-+ if (nssUTF8_Equal(last, "RANDOM", &nssrv)) {
-+ slot->base.flags |= NSSSLOT_FLAGS_HAS_RANDOM;
-+ } else if (nssUTF8_Equal(last, "RSA", &nssrv)) {
-+ slot->base.flags |= NSSSLOT_FLAGS_RSA;
-+ } else if (nssUTF8_Equal(last, "DSA", &nssrv)) {
-+ slot->base.flags |= NSSSLOT_FLAGS_DSA;
-+ } else if (nssUTF8_Equal(last, "DH", &nssrv)) {
-+ slot->base.flags |= NSSSLOT_FLAGS_DH;
-+ } else if (nssUTF8_Equal(last, "RC2", &nssrv)) {
-+ slot->base.flags |= NSSSLOT_FLAGS_RC2;
-+ } else if (nssUTF8_Equal(last, "RC4", &nssrv)) {
-+ slot->base.flags |= NSSSLOT_FLAGS_RC4;
-+ } else if (nssUTF8_Equal(last, "RC5", &nssrv)) {
-+ slot->base.flags |= NSSSLOT_FLAGS_RC5;
-+ } else if (nssUTF8_Equal(last, "DES", &nssrv)) {
-+ slot->base.flags |= NSSSLOT_FLAGS_DES;
-+ } else if (nssUTF8_Equal(last, "AES", &nssrv)) {
-+ slot->base.flags |= NSSSLOT_FLAGS_AES;
-+ } else if (nssUTF8_Equal(last, "SHA1", &nssrv)) {
-+ slot->base.flags |= NSSSLOT_FLAGS_SHA1;
-+ } else if (nssUTF8_Equal(last, "MD2", &nssrv)) {
-+ slot->base.flags |= NSSSLOT_FLAGS_MD2;
-+ } else if (nssUTF8_Equal(last, "MD5", &nssrv)) {
-+ slot->base.flags |= NSSSLOT_FLAGS_MD5;
-+ } else if (nssUTF8_Equal(last, "SSL", &nssrv)) {
-+ slot->base.flags |= NSSSLOT_FLAGS_SSL;
-+ } else if (nssUTF8_Equal(last, "TLS", &nssrv)) {
-+ slot->base.flags |= NSSSLOT_FLAGS_TLS;
-+ } else if (nssUTF8_Equal(last, "PublicCerts", &nssrv)) {
-+ slot->base.flags |= NSSSLOT_FLAGS_FRIENDLY;
-+ } else {
-+ return PR_FAILURE;
-+ }
-+ if (done) break;
-+ last = ++mark;
-+ }
-+#endif
-+ return nssrv;
-+}
-+
-+static PRStatus
-+parse_slot_parameters (
-+ NSSSlot *slot,
-+ NSSUTF8 *slotParams,
-+ NSSArena *tmparena
-+)
-+{
-+ PRStatus nssrv = PR_SUCCESS;
-+ NSSUTF8 *current, *remainder;
-+ NSSUTF8 *attrib, *value;
-+ current = slotParams;
-+ while (nssrv == PR_SUCCESS) {
-+ nssrv = nssCryptokiArgs_ParseNextPair(current,
-+ &attrib, &value,
-+ &remainder, tmparena);
-+ if (nssrv != PR_SUCCESS) break;
-+ if (value) {
-+ if (nssUTF8_Equal(attrib, "slotFlags", &nssrv)) {
-+ nssrv = parse_slot_flags(slot, value);
-+ } else if (nssUTF8_Equal(attrib, "askpw", &nssrv)) {
-+ } else if (nssUTF8_Equal(attrib, "timeout", &nssrv)) {
-+ }
-+ }
-+ if (*remainder == '\0') break;
-+ current = remainder;
-+ }
-+ return nssrv;
-+}
-+
-+/* softoken seems to use "0x0000001", but no standard yet... perhaps this
-+ * should store the number as an ID, in case the input isn't 1,2,3,...?
-+ */
-+static PRIntn
-+get_slot_number(NSSUTF8* snString)
-+{
-+ /* XXX super big hack */
-+ return atoi(&snString[strlen(snString)-1]);
-+}
-+
-+static PRStatus
-+parse_module_slot_parameters (
-+ NSSModule *mod,
-+ NSSUTF8 *slotParams
-+)
-+{
-+ PRStatus nssrv = PR_SUCCESS;
-+ NSSUTF8 *current, *remainder;
-+ NSSUTF8 *attrib, *value;
-+ NSSArena *tmparena;
-+ PRIntn slotNum;
-+ tmparena = nssArena_Create();
-+ if (!tmparena) {
-+ return PR_FAILURE;
-+ }
-+ current = slotParams;
-+ while (nssrv == PR_SUCCESS) {
-+ nssrv = nssCryptokiArgs_ParseNextPair(current,
-+ &attrib, &value,
-+ &remainder, tmparena);
-+ if (nssrv != PR_SUCCESS) break;
-+ if (value) {
-+ slotNum = get_slot_number(attrib);
-+ if (slotNum < 0 || slotNum > mod->numSlots) {
-+ return PR_FAILURE;
-+ }
-+ nssrv = parse_slot_parameters(mod->slots[slotNum],
-+ value, tmparena);
-+ if (nssrv != PR_SUCCESS) break;
-+ }
-+ if (*remainder == '\0') break;
-+ current = remainder;
-+ }
-+ return nssrv;
-+}
-+
-+static PRStatus
-+parse_nss_flags (
-+ NSSModule *mod,
-+ NSSUTF8 *nssFlags
-+)
-+{
-+ PRStatus nssrv = PR_SUCCESS;
-+ PRBool done = PR_FALSE;
-+ NSSUTF8 *mark, *last;
-+ last = mark = nssFlags;
-+ while (PR_TRUE) {
-+ while (*mark && *mark != ',') ++mark;
-+ if (!*mark) done = PR_TRUE;
-+ *mark = '\0';
-+ if (nssUTF8_Equal(last, "internal", &nssrv)) {
-+ mod->base.flags |= NSSMODULE_FLAGS_INTERNAL;
-+ } else if (nssUTF8_Equal(last, "moduleDB", &nssrv)) {
-+ mod->base.flags |= NSSMODULE_FLAGS_MODULE_DB;
-+ } else if (nssUTF8_Equal(last, "moduleDBOnly", &nssrv)) {
-+ mod->base.flags |= NSSMODULE_FLAGS_MODULE_DB_ONLY;
-+ } else if (nssUTF8_Equal(last, "critical", &nssrv)) {
-+ mod->base.flags |= NSSMODULE_FLAGS_CRITICAL;
-+ } else {
-+ return PR_FAILURE;
-+ }
-+ if (done) break;
-+ last = ++mark;
-+ }
-+ return nssrv;
-+}
-+
-+static PRStatus
-+parse_nss_parameters (
-+ NSSModule *mod,
-+ NSSUTF8 *nssParams,
-+ NSSArena *tmparena,
-+ NSSUTF8 **slotParams
-+)
-+{
-+ PRStatus nssrv = PR_SUCCESS;
-+ NSSUTF8 *current, *remainder;
-+ NSSUTF8 *attrib, *value;
-+ current = nssParams;
-+ while (nssrv == PR_SUCCESS) {
-+ nssrv = nssCryptokiArgs_ParseNextPair(current,
-+ &attrib, &value,
-+ &remainder, tmparena);
-+ if (nssrv != PR_SUCCESS) break;
-+ if (value) {
-+ if (nssUTF8_Equal(attrib, "flags", &nssrv) ||
-+ nssUTF8_Equal(attrib, "Flags", &nssrv)) {
-+ nssrv = parse_nss_flags(mod, value);
-+ } else if (nssUTF8_Equal(attrib, "trustOrder", &nssrv)) {
-+ mod->order.trust = atoi(value);
-+ } else if (nssUTF8_Equal(attrib, "cipherOrder", &nssrv)) {
-+ mod->order.cipher = atoi(value);
-+ } else if (nssUTF8_Equal(attrib, "ciphers", &nssrv)) {
-+ } else if (nssUTF8_Equal(attrib, "slotParams", &nssrv)) {
-+ /* slotParams doesn't get an arena, it is handled separately */
-+ *slotParams = nssUTF8_Duplicate(value, NULL);
-+ }
-+ }
-+ if (*remainder == '\0') break;
-+ current = remainder;
-+ }
-+ return nssrv;
-+}
-+
-+static PRStatus
-+parse_module_parameters (
-+ NSSModule *mod,
-+ NSSUTF8 *moduleParams,
-+ NSSUTF8 **slotParams
-+)
-+{
-+ PRStatus nssrv = PR_SUCCESS;
-+ NSSUTF8 *current, *remainder;
-+ NSSUTF8 *attrib, *value;
-+ NSSArena *arena = mod->base.arena;
-+ NSSArena *tmparena;
-+ current = moduleParams;
-+ tmparena = nssArena_Create();
-+ if (!tmparena) {
-+ return PR_FAILURE;
-+ }
-+ while (nssrv == PR_SUCCESS) {
-+ nssrv = nssCryptokiArgs_ParseNextPair(current,
-+ &attrib, &value,
-+ &remainder, tmparena);
-+ if (nssrv != PR_SUCCESS) break;
-+ if (value) {
-+ if (nssUTF8_Equal(attrib, "name", &nssrv)) {
-+ mod->base.name = nssUTF8_Duplicate(value, arena);
-+ } else if (nssUTF8_Equal(attrib, "library", &nssrv)) {
-+ mod->libraryName = nssUTF8_Duplicate(value, arena);
-+ } else if (nssUTF8_Equal(attrib, "parameters", &nssrv)) {
-+ mod->libraryParams = nssUTF8_Duplicate(value, arena);
-+ } else if (nssUTF8_Equal(attrib, "NSS", &nssrv)) {
-+ parse_nss_parameters(mod, value, tmparena, slotParams);
-+ }
-+ }
-+ if (*remainder == '\0') break;
-+ current = remainder;
-+ }
-+ nssArena_Destroy(tmparena);
-+ return nssrv;
-+}
-+
-+static NSSUTF8 **
-+get_module_specs (
-+ NSSModule *mod
-+)
-+{
-+ SECMODModuleDBFunc func = (SECMODModuleDBFunc)mod->moduleDBFunc;
-+ if (func) {
-+ return (*func)(SECMOD_MODULE_DB_FUNCTION_FIND,
-+ mod->libraryParams,
-+ NULL);
-+ }
-+ return NULL;
-+}
-+
-+/* XXX continue working on */
-+NSS_IMPLEMENT NSSModule *
-+nssModule_CreateFromSpec (
-+ NSSUTF8 *moduleSpec,
-+ NSSModule *parent,
-+ PRBool loadSubModules
-+)
-+{
-+ PRStatus nssrv;
-+ NSSModule *thisModule;
-+ NSSArena *arena;
-+ NSSUTF8 *slotParams = NULL;
-+ arena = nssArena_Create();
-+ if (!arena) {
-+ return NULL;
-+ }
-+ thisModule = nss_ZNEW(arena, NSSModule);
-+ if (!thisModule) {
-+ goto loser;
-+ }
-+ thisModule->base.lock = PZ_NewLock(nssILockOther);
-+ if (!thisModule->base.lock) {
-+ goto loser;
-+ }
-+ PR_AtomicIncrement(&thisModule->base.refCount);
-+ thisModule->base.arena = arena;
-+ thisModule->base.lock = PZ_NewLock(nssNSSILockOther);
-+ if (!thisModule->base.lock) {
-+ goto loser;
-+ }
-+ nssrv = parse_module_parameters(thisModule, moduleSpec, &slotParams);
-+ if (nssrv != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ nssrv = nssModule_Load(thisModule);
-+ if (nssrv != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ if (slotParams) {
-+ nssrv = parse_module_slot_parameters(thisModule, slotParams);
-+ nss_ZFreeIf(slotParams);
-+ if (nssrv != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ }
-+ if (loadSubModules && NSSMODULE_IS_MODULE_DB(thisModule)) {
-+ NSSUTF8 **moduleSpecs;
-+ NSSUTF8 **index;
-+ /* get the array of sub modules one level below this module */
-+ moduleSpecs = get_module_specs(thisModule);
-+ /* iterate over the array */
-+ for (index = moduleSpecs; index && *index; index++) {
-+ NSSModule *child;
-+ /* load the child recursively */
-+ child = nssModule_CreateFromSpec(*index, thisModule, PR_TRUE);
-+ if (!child) {
-+ /* when children fail, does the parent? */
-+ nssrv = PR_FAILURE;
-+ break;
-+ }
-+ if (NSSMODULE_IS_CRITICAL(child) && !child->isLoaded) {
-+ nssrv = PR_FAILURE;
-+ nssModule_Destroy(child);
-+ break;
-+ }
-+ nssModule_Destroy(child);
-+ /*nss_ZFreeIf(*index);*/
-+ }
-+ /*nss_ZFreeIf(moduleSpecs);*/
-+ }
-+ /* The global list inherits the reference */
-+ nssrv = nssGlobalModuleList_Add(thisModule);
-+ if (nssrv != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ return thisModule;
-+loser:
-+ if (thisModule->base.lock) {
-+ PZ_DestroyLock(thisModule->base.lock);
-+ }
-+ nssArena_Destroy(arena);
-+ return (NSSModule *)NULL;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssModule_Destroy (
-+ NSSModule *mod
-+)
-+{
-+ PRUint32 i, numSlots;
-+ if (PR_AtomicDecrement(&mod->base.refCount) == 0) {
-+ if (mod->numSlots == 0) {
-+ (void)nssModule_Unload(mod);
-+ return nssArena_Destroy(mod->base.arena);
-+ } else {
-+ numSlots = mod->numSlots;
-+ for (i=0; i<numSlots; i++) {
-+ nssSlot_Destroy(mod->slots[i]);
-+ }
-+ }
-+ }
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssModule_DestroyFromSlot (
-+ NSSModule *mod,
-+ NSSSlot *slot
-+)
-+{
-+ PRUint32 i, numSlots = 0;
-+ PR_ASSERT(mod->base.refCount == 0);
-+ for (i=0; i<mod->numSlots; i++) {
-+ if (mod->slots[i] == slot) {
-+ mod->slots[i] = NULL;
-+ } else if (mod->slots[i]) {
-+ numSlots++;
-+ }
-+ }
-+ if (numSlots == 0) {
-+ (void)nssModule_Unload(mod);
-+ return nssArena_Destroy(mod->base.arena);
-+ }
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT NSSModule *
-+nssModule_AddRef (
-+ NSSModule *mod
-+)
-+{
-+ PR_AtomicIncrement(&mod->base.refCount);
-+ return mod;
-+}
-+
-+NSS_IMPLEMENT NSSUTF8 *
-+nssModule_GetName (
-+ NSSModule *mod
-+)
-+{
-+ return mod->base.name;
-+}
-+
-+NSS_IMPLEMENT PRBool
-+nssModule_IsThreadSafe (
-+ NSSModule *module
-+)
-+{
-+ return NSSMODULE_IS_THREADSAFE(module);
-+}
-+
-+NSS_IMPLEMENT PRBool
-+nssModule_IsInternal (
-+ NSSModule *mod
-+)
-+{
-+ return NSSMODULE_IS_INTERNAL(mod);
-+}
-+
-+NSS_IMPLEMENT PRBool
-+nssModule_IsModuleDBOnly (
-+ NSSModule *mod
-+)
-+{
-+ return NSSMODULE_IS_MODULE_DB_ONLY(mod);
-+}
-+
-+NSS_IMPLEMENT void *
-+nssModule_GetCryptokiEPV (
-+ NSSModule *mod
-+)
-+{
-+ return mod->epv;
-+}
-+
-+NSS_IMPLEMENT NSSSlot **
-+nssModule_GetSlots (
-+ NSSModule *mod
-+)
-+{
-+ PRUint32 i;
-+ NSSSlot **rvSlots;
-+ rvSlots = nss_ZNEWARRAY(NULL, NSSSlot *, mod->numSlots + 1);
-+ if (rvSlots) {
-+ for (i=0; i<mod->numSlots; i++) {
-+ rvSlots[i] = nssSlot_AddRef(mod->slots[i]);
-+ }
-+ }
-+ return rvSlots;
-+}
-+
-+NSS_IMPLEMENT NSSSlot *
-+nssModule_FindSlotByName (
-+ NSSModule *mod,
-+ NSSUTF8 *slotName
-+)
-+{
-+ PRUint32 i;
-+ PRStatus nssrv;
-+ NSSSlot *slot;
-+ NSSUTF8 *name;
-+ for (i=0; i<mod->numSlots; i++) {
-+ slot = mod->slots[i];
-+ name = nssSlot_GetName(slot);
-+ if (nssUTF8_Equal(name, slotName, &nssrv)) {
-+ return nssSlot_AddRef(slot);
-+ }
-+ if (nssrv != PR_SUCCESS) {
-+ break;
-+ }
-+ }
-+ return (NSSSlot *)NULL;
-+}
-+
-+NSS_IMPLEMENT NSSToken *
-+nssModule_FindTokenByName (
-+ NSSModule *mod,
-+ NSSUTF8 *tokenName
-+)
-+{
-+ PRUint32 i;
-+ PRStatus nssrv;
-+ NSSToken *tok;
-+ NSSUTF8 *name;
-+ for (i=0; i<mod->numSlots; i++) {
-+ tok = nssSlot_GetToken(mod->slots[i]);
-+ if (tok) {
-+ name = nssToken_GetName(tok);
-+ if (nssUTF8_Equal(name, tokenName, &nssrv)) {
-+ return tok;
-+ }
-+ if (nssrv != PR_SUCCESS) {
-+ break;
-+ }
-+ }
-+ }
-+ return (NSSToken *)NULL;
-+}
-+
-+NSS_IMPLEMENT PRInt32
-+nssModule_GetCertOrder (
-+ NSSModule *module
-+)
-+{
-+ return 1; /* XXX */
-+}
-+
-+#endif /* PURE_STAN_BUILD */
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/devslot.c 2004-12-13 13:06:46.868372016 +0100
-@@ -0,0 +1,838 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#ifndef NSSCKEPV_H
-+#include "nssckepv.h"
-+#endif /* NSSCKEPV_H */
-+
-+#ifndef DEVM_H
-+#include "devm.h"
-+#endif /* DEVM_H */
-+
-+#ifndef CKHELPER_H
-+#include "ckhelper.h"
-+#endif /* CKHELPER_H */
-+
-+/* measured in seconds */
-+#define NSSSLOT_TOKEN_DELAY_TIME 1
-+
-+/* this should track global and per-transaction login information */
-+
-+#ifdef PURE_STAN_CODE
-+typedef enum {
-+ nssSlotAskPasswordTimes_FirstTime = 0,
-+ nssSlotAskPasswordTimes_EveryTime = 1,
-+ nssSlotAskPasswordTimes_Timeout = 2
-+}
-+nssSlotAskPasswordTimes;
-+
-+struct nssSlotAuthInfoStr
-+{
-+ PRTime lastLogin;
-+ nssSlotAskPasswordTimes askTimes;
-+ PRIntervalTime askPasswordTimeout;
-+};
-+
-+struct NSSSlotStr
-+{
-+ struct nssDeviceBaseStr base;
-+ NSSModule *module; /* Parent */
-+ NSSToken *token; /* Peer */
-+ CK_SLOT_ID slotID;
-+ CK_FLAGS ckFlags; /* from CK_SLOT_INFO.flags */
-+ struct nssSlotAuthInfoStr authInfo;
-+ PRIntervalTime lastTokenPing;
-+ PZLock *lock;
-+#ifdef NSS_3_4_CODE
-+ PK11SlotInfo *pk11slot;
-+#endif
-+};
-+#endif /* PURE_STAN_CODE */
-+
-+#define NSSSLOT_IS_FRIENDLY(slot) \
-+ (slot->base.flags & NSSSLOT_FLAGS_FRIENDLY)
-+
-+/* measured as interval */
-+static PRIntervalTime s_token_delay_time = 0;
-+
-+/* The flags needed to open a read-only session. */
-+static const CK_FLAGS s_ck_readonly_flags = CKF_SERIAL_SESSION;
-+
-+#ifdef PURE_STAN_BUILD
-+/* In pk11slot.c, this was a no-op. So it is here also. */
-+static CK_RV PR_CALLBACK
-+nss_ck_slot_notify (
-+ CK_SESSION_HANDLE session,
-+ CK_NOTIFICATION event,
-+ CK_VOID_PTR pData
-+)
-+{
-+ return CKR_OK;
-+}
-+
-+NSS_IMPLEMENT NSSSlot *
-+nssSlot_Create (
-+ CK_SLOT_ID slotID,
-+ NSSModule *parent
-+)
-+{
-+ NSSArena *arena = NULL;
-+ NSSSlot *rvSlot;
-+ NSSToken *token = NULL;
-+ NSSUTF8 *slotName = NULL;
-+ PRUint32 length;
-+ CK_SLOT_INFO slotInfo;
-+ CK_RV ckrv;
-+ void *epv;
-+ arena = NSSArena_Create();
-+ if(!arena) {
-+ return (NSSSlot *)NULL;
-+ }
-+ rvSlot = nss_ZNEW(arena, NSSSlot);
-+ if (!rvSlot) {
-+ goto loser;
-+ }
-+ /* Get slot information */
-+ epv = nssModule_GetCryptokiEPV(parent);
-+ ckrv = CKAPI(epv)->C_GetSlotInfo(slotID, &slotInfo);
-+ if (ckrv != CKR_OK) {
-+ /* set an error here, eh? */
-+ goto loser;
-+ }
-+ /* Grab the slot description from the PKCS#11 fixed-length buffer */
-+ length = nssPKCS11String_Length(slotInfo.slotDescription,
-+ sizeof(slotInfo.slotDescription));
-+ if (length > 0) {
-+ slotName = nssUTF8_Create(arena, nssStringType_UTF8String,
-+ (void *)slotInfo.slotDescription, length);
-+ if (!slotName) {
-+ goto loser;
-+ }
-+ }
-+ rvSlot->base.arena = arena;
-+ rvSlot->base.refCount = 1;
-+ rvSlot->base.name = slotName;
-+ rvSlot->base.lock = PZ_NewLock(nssNSSILockOther); /* XXX */
-+ if (!rvSlot->base.lock) {
-+ goto loser;
-+ }
-+ if (!nssModule_IsThreadSafe(parent)) {
-+ rvSlot->lock = nssModule_GetLock(parent);
-+ }
-+ rvSlot->module = parent; /* refs go from module to slots */
-+ rvSlot->slotID = slotID;
-+ rvSlot->ckFlags = slotInfo.flags;
-+ /* Initialize the token if present. */
-+ if (slotInfo.flags & CKF_TOKEN_PRESENT) {
-+ token = nssToken_Create(slotID, rvSlot);
-+ if (!token) {
-+ goto loser;
-+ }
-+ }
-+ rvSlot->token = token;
-+ return rvSlot;
-+loser:
-+ nssArena_Destroy(arena);
-+ /* everything was created in the arena, nothing to see here, move along */
-+ return (NSSSlot *)NULL;
-+}
-+#endif /* PURE_STAN_BUILD */
-+
-+NSS_IMPLEMENT PRStatus
-+nssSlot_Destroy (
-+ NSSSlot *slot
-+)
-+{
-+ if (slot) {
-+ if (PR_AtomicDecrement(&slot->base.refCount) == 0) {
-+ PZ_DestroyLock(slot->base.lock);
-+#ifdef PURE_STAN_BUILD
-+ nssToken_Destroy(slot->token);
-+ nssModule_DestroyFromSlot(slot->module, slot);
-+#endif
-+ return nssArena_Destroy(slot->base.arena);
-+ }
-+ }
-+ return PR_SUCCESS;
-+}
-+
-+void
-+nssSlot_EnterMonitor(NSSSlot *slot)
-+{
-+ if (slot->lock) {
-+ PZ_Lock(slot->lock);
-+ }
-+}
-+
-+void
-+nssSlot_ExitMonitor(NSSSlot *slot)
-+{
-+ if (slot->lock) {
-+ PZ_Unlock(slot->lock);
-+ }
-+}
-+
-+NSS_IMPLEMENT void
-+NSSSlot_Destroy (
-+ NSSSlot *slot
-+)
-+{
-+ (void)nssSlot_Destroy(slot);
-+}
-+
-+NSS_IMPLEMENT NSSSlot *
-+nssSlot_AddRef (
-+ NSSSlot *slot
-+)
-+{
-+ PR_AtomicIncrement(&slot->base.refCount);
-+ return slot;
-+}
-+
-+NSS_IMPLEMENT NSSUTF8 *
-+nssSlot_GetName (
-+ NSSSlot *slot
-+)
-+{
-+ return slot->base.name;
-+}
-+
-+NSS_IMPLEMENT NSSUTF8 *
-+nssSlot_GetTokenName (
-+ NSSSlot *slot
-+)
-+{
-+ return nssToken_GetName(slot->token);
-+}
-+
-+static PRBool
-+within_token_delay_period(NSSSlot *slot)
-+{
-+ PRIntervalTime time, lastTime;
-+ /* Set the delay time for checking the token presence */
-+ if (s_token_delay_time == 0) {
-+ s_token_delay_time = PR_SecondsToInterval(NSSSLOT_TOKEN_DELAY_TIME);
-+ }
-+ time = PR_IntervalNow();
-+ lastTime = slot->lastTokenPing;
-+ if ((lastTime) && ((time - lastTime) < s_token_delay_time)) {
-+ return PR_TRUE;
-+ }
-+ slot->lastTokenPing = time;
-+ return PR_FALSE;
-+}
-+
-+NSS_IMPLEMENT PRBool
-+nssSlot_IsTokenPresent (
-+ NSSSlot *slot
-+)
-+{
-+ CK_RV ckrv;
-+ PRStatus nssrv;
-+ /* XXX */
-+ nssSession *session;
-+ CK_SLOT_INFO slotInfo;
-+ void *epv;
-+ /* permanent slots are always present */
-+ if (nssSlot_IsPermanent(slot)) {
-+ return PR_TRUE;
-+ }
-+ /* avoid repeated calls to check token status within set interval */
-+ if (within_token_delay_period(slot)) {
-+ return (PRBool)((slot->ckFlags & CKF_TOKEN_PRESENT) != 0);
-+ }
-+
-+ /* First obtain the slot info */
-+#ifdef PURE_STAN_BUILD
-+ epv = nssModule_GetCryptokiEPV(slot->module);
-+#else
-+ epv = slot->epv;
-+#endif
-+ if (!epv) {
-+ return PR_FALSE;
-+ }
-+ nssSlot_EnterMonitor(slot);
-+ ckrv = CKAPI(epv)->C_GetSlotInfo(slot->slotID, &slotInfo);
-+ nssSlot_ExitMonitor(slot);
-+ if (ckrv != CKR_OK) {
-+ slot->token->base.name[0] = 0; /* XXX */
-+ return PR_FALSE;
-+ }
-+ slot->ckFlags = slotInfo.flags;
-+ /* check for the presence of the token */
-+ if ((slot->ckFlags & CKF_TOKEN_PRESENT) == 0) {
-+ if (!slot->token) {
-+ /* token was ne'er present */
-+ return PR_FALSE;
-+ }
-+ session = nssToken_GetDefaultSession(slot->token);
-+ nssSession_EnterMonitor(session);
-+ /* token is not present */
-+ if (session->handle != CK_INVALID_SESSION) {
-+ /* session is valid, close and invalidate it */
-+ CKAPI(epv)->C_CloseSession(session->handle);
-+ session->handle = CK_INVALID_SESSION;
-+ }
-+ nssSession_ExitMonitor(session);
-+#ifdef NSS_3_4_CODE
-+ if (slot->token->base.name[0] != 0) {
-+ /* notify the high-level cache that the token is removed */
-+ slot->token->base.name[0] = 0; /* XXX */
-+ nssToken_NotifyCertsNotVisible(slot->token);
-+ }
-+#endif
-+ slot->token->base.name[0] = 0; /* XXX */
-+ /* clear the token cache */
-+ nssToken_Remove(slot->token);
-+ return PR_FALSE;
-+#ifdef PURE_STAN_CODE
-+ } else if (!slot->token) {
-+ /* token was not present at boot time, is now */
-+ slot->token = nssToken_Create(slot->slotID, slot);
-+ return (slot->token != NULL);
-+#endif
-+ }
-+ /* token is present, use the session info to determine if the card
-+ * has been removed and reinserted.
-+ */
-+ session = nssToken_GetDefaultSession(slot->token);
-+ nssSession_EnterMonitor(session);
-+ if (session->handle != CK_INVALID_SESSION) {
-+ CK_SESSION_INFO sessionInfo;
-+ ckrv = CKAPI(epv)->C_GetSessionInfo(session->handle, &sessionInfo);
-+ if (ckrv != CKR_OK) {
-+ /* session is screwy, close and invalidate it */
-+ CKAPI(epv)->C_CloseSession(session->handle);
-+ session->handle = CK_INVALID_SESSION;
-+ }
-+ }
-+ nssSession_ExitMonitor(session);
-+ /* token not removed, finished */
-+ if (session->handle != CK_INVALID_SESSION) {
-+ return PR_TRUE;
-+ } else {
-+ /* the token has been removed, and reinserted, invalidate all the old
-+ * information we had on this token */
-+#ifdef NSS_3_4_CODE
-+ nssToken_NotifyCertsNotVisible(slot->token);
-+#endif /* NSS_3_4_CODE */
-+ nssToken_Remove(slot->token);
-+ /* token has been removed, need to refresh with new session */
-+ nssrv = nssSlot_Refresh(slot);
-+ if (nssrv != PR_SUCCESS) {
-+ slot->token->base.name[0] = 0; /* XXX */
-+ return PR_FALSE;
-+ }
-+ return PR_TRUE;
-+ }
-+}
-+
-+#ifdef PURE_STAN_BUILD
-+NSS_IMPLEMENT NSSModule *
-+nssSlot_GetModule (
-+ NSSSlot *slot
-+)
-+{
-+ return nssModule_AddRef(slot->module);
-+}
-+#endif /* PURE_STAN_BUILD */
-+
-+NSS_IMPLEMENT void *
-+nssSlot_GetCryptokiEPV (
-+ NSSSlot *slot
-+)
-+{
-+#ifdef PURE_STAN_BUILD
-+ return nssModule_GetCryptokiEPV(slot->module);
-+#else
-+ return slot->epv;
-+#endif
-+}
-+
-+NSS_IMPLEMENT NSSToken *
-+nssSlot_GetToken (
-+ NSSSlot *slot
-+)
-+{
-+ if (nssSlot_IsTokenPresent(slot)) {
-+ return nssToken_AddRef(slot->token);
-+ }
-+ return (NSSToken *)NULL;
-+}
-+
-+#ifdef PURE_STAN_BUILD
-+NSS_IMPLEMENT PRBool
-+nssSlot_IsPermanent (
-+ NSSSlot *slot
-+)
-+{
-+ return (!(slot->ckFlags & CKF_REMOVABLE_DEVICE));
-+}
-+
-+NSS_IMPLEMENT PRBool
-+nssSlot_IsFriendly (
-+ NSSSlot *slot
-+)
-+{
-+ return PR_TRUE /* XXX NSSSLOT_IS_FRIENDLY(slot)*/;
-+}
-+
-+NSS_IMPLEMENT PRBool
-+nssSlot_IsHardware (
-+ NSSSlot *slot
-+)
-+{
-+ return (slot->ckFlags & CKF_HW_SLOT);
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssSlot_Refresh (
-+ NSSSlot *slot
-+)
-+{
-+ /* XXX */
-+#if 0
-+ nssToken_Destroy(slot->token);
-+ if (slotInfo.flags & CKF_TOKEN_PRESENT) {
-+ slot->token = nssToken_Create(NULL, slotID, slot);
-+ }
-+#endif
-+ return PR_SUCCESS;
-+}
-+
-+static PRBool
-+slot_needs_login (
-+ NSSSlot *slot,
-+ nssSession *session
-+)
-+{
-+ PRBool needsLogin, logout;
-+ struct nssSlotAuthInfoStr *authInfo = &slot->authInfo;
-+ void *epv = nssModule_GetCryptokiEPV(slot->module);
-+ if (!nssToken_IsLoginRequired(slot->token)) {
-+ return PR_FALSE;
-+ }
-+ if (authInfo->askTimes == nssSlotAskPasswordTimes_EveryTime) {
-+ logout = PR_TRUE;
-+ } else if (authInfo->askTimes == nssSlotAskPasswordTimes_Timeout) {
-+ PRIntervalTime currentTime = PR_IntervalNow();
-+ if (authInfo->lastLogin - currentTime < authInfo->askPasswordTimeout) {
-+ logout = PR_FALSE;
-+ } else {
-+ logout = PR_TRUE;
-+ }
-+ } else { /* nssSlotAskPasswordTimes_FirstTime */
-+ logout = PR_FALSE;
-+ }
-+ if (logout) {
-+ /* The login has expired, timeout */
-+ nssSession_EnterMonitor(session);
-+ CKAPI(epv)->C_Logout(session->handle);
-+ nssSession_ExitMonitor(session);
-+ needsLogin = PR_TRUE;
-+ } else {
-+ CK_RV ckrv;
-+ CK_SESSION_INFO sessionInfo;
-+ nssSession_EnterMonitor(session);
-+ ckrv = CKAPI(epv)->C_GetSessionInfo(session->handle, &sessionInfo);
-+ nssSession_ExitMonitor(session);
-+ if (ckrv != CKR_OK) {
-+ /* XXX error -- invalidate session */
-+ return PR_FALSE;
-+ }
-+ switch (sessionInfo.state) {
-+ case CKS_RW_PUBLIC_SESSION:
-+ case CKS_RO_PUBLIC_SESSION:
-+ default:
-+ needsLogin = PR_TRUE;
-+ break;
-+ case CKS_RW_USER_FUNCTIONS:
-+ case CKS_RW_SO_FUNCTIONS:
-+ case CKS_RO_USER_FUNCTIONS:
-+ needsLogin = PR_FALSE;
-+ break;
-+ }
-+ }
-+ return needsLogin;
-+}
-+
-+static PRStatus
-+slot_login (
-+ NSSSlot *slot,
-+ nssSession *session,
-+ CK_USER_TYPE userType,
-+ NSSCallback *pwcb
-+)
-+{
-+ PRStatus nssrv;
-+ PRUint32 attempts;
-+ PRBool keepTrying;
-+ NSSUTF8 *password = NULL;
-+ CK_ULONG pwLen;
-+ CK_RV ckrv;
-+ void *epv;
-+ if (!pwcb->getPW) {
-+ /* set error INVALID_ARG */
-+ return PR_FAILURE;
-+ }
-+ epv = nssModule_GetCryptokiEPV(slot->module);
-+ keepTrying = PR_TRUE;
-+ nssrv = PR_FAILURE;
-+ attempts = 0;
-+ while (keepTrying) {
-+ /* use the token name, since it is present */
-+ NSSUTF8 *tokenName = nssToken_GetName(slot->token);
-+ nssrv = pwcb->getPW(tokenName, attempts, pwcb->arg, &password);
-+ if (nssrv != PR_SUCCESS) {
-+ nss_SetError(NSS_ERROR_USER_CANCELED);
-+ break;
-+ }
-+ pwLen = (CK_ULONG)nssUTF8_Length(password, &nssrv);
-+ if (nssrv != PR_SUCCESS) {
-+ break;
-+ }
-+ nssSession_EnterMonitor(session);
-+ ckrv = CKAPI(epv)->C_Login(session->handle, userType,
-+ (CK_CHAR_PTR)password, pwLen);
-+ nssSession_ExitMonitor(session);
-+ switch (ckrv) {
-+ case CKR_OK:
-+ case CKR_USER_ALREADY_LOGGED_IN:
-+ slot->authInfo.lastLogin = PR_Now();
-+ nssrv = PR_SUCCESS;
-+ keepTrying = PR_FALSE;
-+ break;
-+ case CKR_PIN_INCORRECT:
-+ nss_SetError(NSS_ERROR_INVALID_PASSWORD);
-+ keepTrying = PR_TRUE; /* received bad pw, keep going */
-+ break;
-+ default:
-+ nssrv = PR_FAILURE;
-+ keepTrying = PR_FALSE;
-+ break;
-+ }
-+ nss_ZFreeIf(password);
-+ password = NULL;
-+ ++attempts;
-+ }
-+ return nssrv;
-+}
-+
-+static PRStatus
-+init_slot_password (
-+ NSSSlot *slot,
-+ nssSession *rwSession,
-+ NSSUTF8 *password
-+)
-+{
-+ PRStatus status;
-+ NSSUTF8 *ssoPW = "";
-+ CK_ULONG userPWLen, ssoPWLen;
-+ CK_RV ckrv;
-+ void *epv = nssModule_GetCryptokiEPV(slot->module);
-+ /* Get the SO and user passwords */
-+ userPWLen = (CK_ULONG)nssUTF8_Length(password, &status);
-+ if (status != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ ssoPWLen = (CK_ULONG)nssUTF8_Length(ssoPW, &status);
-+ if (status != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ /* First log in as SO */
-+ ckrv = CKAPI(epv)->C_Login(rwSession->handle, CKU_SO,
-+ (CK_CHAR_PTR)ssoPW, ssoPWLen);
-+ if (ckrv != CKR_OK) {
-+ /* set error ...SO_LOGIN_FAILED */
-+ goto loser;
-+ }
-+ /* Now change the user PIN */
-+ ckrv = CKAPI(epv)->C_InitPIN(rwSession->handle,
-+ (CK_CHAR_PTR)password, userPWLen);
-+ if (ckrv != CKR_OK) {
-+ /* set error */
-+ goto loser;
-+ }
-+ return PR_SUCCESS;
-+loser:
-+ return PR_FAILURE;
-+}
-+
-+static PRStatus
-+change_slot_password (
-+ NSSSlot *slot,
-+ nssSession *rwSession,
-+ NSSUTF8 *oldPassword,
-+ NSSUTF8 *newPassword
-+)
-+{
-+ PRStatus status;
-+ CK_ULONG userPWLen, newPWLen;
-+ CK_RV ckrv;
-+ void *epv = nssModule_GetCryptokiEPV(slot->module);
-+ userPWLen = (CK_ULONG)nssUTF8_Length(oldPassword, &status);
-+ if (status != PR_SUCCESS) {
-+ return status;
-+ }
-+ newPWLen = (CK_ULONG)nssUTF8_Length(newPassword, &status);
-+ if (status != PR_SUCCESS) {
-+ return status;
-+ }
-+ nssSession_EnterMonitor(rwSession);
-+ ckrv = CKAPI(epv)->C_SetPIN(rwSession->handle,
-+ (CK_CHAR_PTR)oldPassword, userPWLen,
-+ (CK_CHAR_PTR)newPassword, newPWLen);
-+ nssSession_ExitMonitor(rwSession);
-+ switch (ckrv) {
-+ case CKR_OK:
-+ slot->authInfo.lastLogin = PR_Now();
-+ status = PR_SUCCESS;
-+ break;
-+ case CKR_PIN_INCORRECT:
-+ nss_SetError(NSS_ERROR_INVALID_PASSWORD);
-+ status = PR_FAILURE;
-+ break;
-+ default:
-+ status = PR_FAILURE;
-+ break;
-+ }
-+ return status;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssSlot_Login (
-+ NSSSlot *slot,
-+ NSSCallback *pwcb
-+)
-+{
-+ PRStatus status;
-+ CK_USER_TYPE userType = CKU_USER;
-+ NSSToken *token = nssSlot_GetToken(slot);
-+ nssSession *session;
-+ if (!token) {
-+ return PR_FAILURE;
-+ }
-+ if (!nssToken_IsLoginRequired(token)) {
-+ nssToken_Destroy(token);
-+ return PR_SUCCESS;
-+ }
-+ session = nssToken_GetDefaultSession(slot->token);
-+ if (nssToken_NeedsPINInitialization(token)) {
-+ NSSUTF8 *password = NULL;
-+ if (!pwcb->getInitPW) {
-+ nssToken_Destroy(token);
-+ return PR_FAILURE; /* don't know how to get initial password */
-+ }
-+ status = (*pwcb->getInitPW)(slot->base.name, pwcb->arg, &password);
-+ if (status == PR_SUCCESS) {
-+ session = nssSlot_CreateSession(slot, NULL, PR_TRUE);
-+ status = init_slot_password(slot, session, password);
-+ nssSession_Destroy(session);
-+ }
-+ } else if (slot_needs_login(slot, session)) {
-+ status = slot_login(slot, session, userType, pwcb);
-+ } else {
-+ status = PR_SUCCESS;
-+ }
-+ nssToken_Destroy(token);
-+ return status;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssSlot_Logout (
-+ NSSSlot *slot,
-+ nssSession *sessionOpt
-+)
-+{
-+ PRStatus nssrv = PR_SUCCESS;
-+ nssSession *session;
-+ CK_RV ckrv;
-+ void *epv = nssModule_GetCryptokiEPV(slot->module);
-+ session = sessionOpt ?
-+ sessionOpt :
-+ nssToken_GetDefaultSession(slot->token);
-+ nssSession_EnterMonitor(session);
-+ ckrv = CKAPI(epv)->C_Logout(session->handle);
-+ nssSession_ExitMonitor(session);
-+ if (ckrv != CKR_OK) {
-+ /* translate the error */
-+ nssrv = PR_FAILURE;
-+ }
-+ return nssrv;
-+}
-+
-+NSS_IMPLEMENT PRBool
-+nssSlot_IsLoggedIn (
-+ NSSSlot *slot
-+)
-+{
-+ nssSession *session = nssToken_GetDefaultSession(slot->token);
-+ return !slot_needs_login(slot, session);
-+}
-+
-+NSS_IMPLEMENT void
-+nssSlot_SetPasswordDefaults (
-+ NSSSlot *slot,
-+ PRInt32 askPasswordTimeout
-+)
-+{
-+ slot->authInfo.askPasswordTimeout = askPasswordTimeout;
-+}
-+
-+
-+NSS_IMPLEMENT PRStatus
-+nssSlot_SetPassword (
-+ NSSSlot *slot,
-+ NSSUTF8 *oldPasswordOpt,
-+ NSSUTF8 *newPassword
-+)
-+{
-+ PRStatus status;
-+ nssSession *rwSession;
-+ NSSToken *token = nssSlot_GetToken(slot);
-+ if (!token) {
-+ return PR_FAILURE;
-+ }
-+ rwSession = nssSlot_CreateSession(slot, NULL, PR_TRUE);
-+ if (nssToken_NeedsPINInitialization(token)) {
-+ status = init_slot_password(slot, rwSession, newPassword);
-+ } else if (oldPasswordOpt) {
-+ status = change_slot_password(slot, rwSession,
-+ oldPasswordOpt, newPassword);
-+ } else {
-+ /* old password must be given in order to change */
-+ status = PR_FAILURE;
-+ }
-+ nssSession_Destroy(rwSession);
-+ nssToken_Destroy(token);
-+ return status;
-+}
-+
-+NSS_IMPLEMENT nssSession *
-+nssSlot_CreateSession (
-+ NSSSlot *slot,
-+ NSSArena *arenaOpt,
-+ PRBool readWrite /* so far, this is the only flag used */
-+)
-+{
-+ CK_RV ckrv;
-+ CK_FLAGS ckflags;
-+ CK_SESSION_HANDLE handle;
-+ void *epv = nssModule_GetCryptokiEPV(slot->module);
-+ nssSession *rvSession;
-+ ckflags = s_ck_readonly_flags;
-+ if (readWrite) {
-+ ckflags |= CKF_RW_SESSION;
-+ }
-+ ckrv = CKAPI(epv)->C_OpenSession(slot->slotID, ckflags,
-+ slot, nss_ck_slot_notify, &handle);
-+ if (ckrv != CKR_OK) {
-+ /* set an error here, eh? */
-+ return (nssSession *)NULL;
-+ }
-+ rvSession = nss_ZNEW(arenaOpt, nssSession);
-+ if (!rvSession) {
-+ return (nssSession *)NULL;
-+ }
-+ if (nssModule_IsThreadSafe(slot->module)) {
-+ /* If the parent module is threadsafe,
-+ * create lock to protect just this session.
-+ */
-+ rvSession->lock = PZ_NewLock(nssILockOther);
-+ if (!rvSession->lock) {
-+ /* need to translate NSPR error? */
-+ if (arenaOpt) {
-+ } else {
-+ nss_ZFreeIf(rvSession);
-+ }
-+ return (nssSession *)NULL;
-+ }
-+ rvSession->ownLock = PR_TRUE;
-+ } else {
-+ rvSession->lock = slot->lock;
-+ rvSession->ownLock = PR_FALSE;
-+ }
-+
-+ rvSession->handle = handle;
-+ rvSession->slot = slot;
-+ rvSession->isRW = readWrite;
-+ return rvSession;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssSession_Destroy (
-+ nssSession *s
-+)
-+{
-+ CK_RV ckrv = CKR_OK;
-+ if (s) {
-+ void *epv = s->slot->epv;
-+ ckrv = CKAPI(epv)->C_CloseSession(s->handle);
-+ if (s->ownLock && s->lock) {
-+ PZ_DestroyLock(s->lock);
-+ }
-+ nss_ZFreeIf(s);
-+ }
-+ return (ckrv == CKR_OK) ? PR_SUCCESS : PR_FAILURE;
-+}
-+#endif /* PURE_STAN_BUILD */
-+
-+NSS_IMPLEMENT PRStatus
-+nssSession_EnterMonitor (
-+ nssSession *s
-+)
-+{
-+ if (s->lock) PZ_Lock(s->lock);
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssSession_ExitMonitor (
-+ nssSession *s
-+)
-+{
-+ return (s->lock) ? PZ_Unlock(s->lock) : PR_SUCCESS;
-+}
-+
-+NSS_EXTERN PRBool
-+nssSession_IsReadWrite (
-+ nssSession *s
-+)
-+{
-+ return s->isRW;
-+}
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/devt.h 2004-12-13 15:50:16.065147440 +0100
-@@ -0,0 +1,204 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifndef DEVT_H
-+#define DEVT_H
-+
-+#ifdef DEBUG
-+static const char DEVT_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+/*
-+ * devt.h
-+ *
-+ * This file contains definitions for the low-level cryptoki devices.
-+ */
-+
-+#ifndef NSSBASET_H
-+#include "nssbaset.h"
-+#endif /* NSSBASET_H */
-+
-+#ifndef NSSPKIT_H
-+#include "nsspkit.h"
-+#endif /* NSSPKIT_H */
-+
-+#ifndef NSSDEVT_H
-+#include "nssdevt.h"
-+#endif /* NSSDEVT_H */
-+
-+#ifndef NSSCKT_H
-+#include "nssckt.h"
-+#endif /* NSSCKT_H */
-+
-+#ifndef BASET_H
-+#include "baset.h"
-+#endif /* BASET_H */
-+
-+#ifdef NSS_3_4_CODE
-+#include "secmodt.h"
-+#endif /* NSS_3_4_CODE */
-+
-+PR_BEGIN_EXTERN_C
-+
-+typedef struct nssSessionStr nssSession;
-+
-+/* XXX until NSSTokenStr is moved */
-+struct nssDeviceBaseStr
-+{
-+ NSSArena *arena;
-+ PZLock *lock;
-+ PRInt32 refCount;
-+ NSSUTF8 *name;
-+ PRUint32 flags;
-+};
-+
-+typedef struct nssTokenObjectCacheStr nssTokenObjectCache;
-+
-+/* XXX until devobject.c goes away */
-+struct NSSTokenStr
-+{
-+ struct nssDeviceBaseStr base;
-+ NSSSlot *slot; /* Parent (or peer, if you will) */
-+ CK_FLAGS ckFlags; /* from CK_TOKEN_INFO.flags */
-+ PRUint32 flags;
-+ void *epv;
-+ nssSession *defaultSession;
-+ NSSTrustDomain *trustDomain;
-+ PRIntervalTime lastTime;
-+ nssTokenObjectCache *cache;
-+#ifdef NSS_3_4_CODE
-+ PK11SlotInfo *pk11slot;
-+#endif
-+};
-+
-+typedef enum {
-+ nssSlotAskPasswordTimes_FirstTime = 0,
-+ nssSlotAskPasswordTimes_EveryTime = 1,
-+ nssSlotAskPasswordTimes_Timeout = 2
-+}
-+nssSlotAskPasswordTimes;
-+
-+struct nssSlotAuthInfoStr
-+{
-+ PRTime lastLogin;
-+ nssSlotAskPasswordTimes askTimes;
-+ PRIntervalTime askPasswordTimeout;
-+};
-+
-+struct NSSSlotStr
-+{
-+ struct nssDeviceBaseStr base;
-+ NSSModule *module; /* Parent */
-+ NSSToken *token; /* Peer */
-+ CK_SLOT_ID slotID;
-+ CK_FLAGS ckFlags; /* from CK_SLOT_INFO.flags */
-+ struct nssSlotAuthInfoStr authInfo;
-+ PRIntervalTime lastTokenPing;
-+ PZLock *lock;
-+#ifdef NSS_3_4_CODE
-+ void *epv;
-+ PK11SlotInfo *pk11slot;
-+#endif
-+};
-+
-+struct nssSessionStr
-+{
-+ PZLock *lock;
-+ CK_SESSION_HANDLE handle;
-+ NSSSlot *slot;
-+ PRBool isRW;
-+ PRBool ownLock;
-+};
-+
-+typedef enum {
-+ NSSCertificateType_Unknown = 0,
-+ NSSCertificateType_PKIX = 1
-+} NSSCertificateType;
-+
-+#ifdef nodef
-+/* the current definition of NSSTrust depends on this value being CK_ULONG */
-+typedef CK_ULONG nssTrustLevel;
-+#else
-+typedef enum {
-+ nssTrustLevel_Unknown = 0,
-+ nssTrustLevel_NotTrusted = 1,
-+ nssTrustLevel_Trusted = 2,
-+ nssTrustLevel_TrustedDelegator = 3,
-+ nssTrustLevel_Valid = 4,
-+ nssTrustLevel_ValidDelegator = 5
-+} nssTrustLevel;
-+#endif
-+
-+typedef struct nssCryptokiInstanceStr nssCryptokiInstance;
-+
-+struct nssCryptokiInstanceStr
-+{
-+ CK_OBJECT_HANDLE handle;
-+ NSSToken *token;
-+ PRBool isTokenObject;
-+ NSSUTF8 *label;
-+};
-+
-+typedef struct nssCryptokiInstanceStr nssCryptokiObject;
-+
-+typedef struct nssTokenCertSearchStr nssTokenCertSearch;
-+
-+typedef enum {
-+ nssTokenSearchType_AllObjects = 0,
-+ nssTokenSearchType_SessionOnly = 1,
-+ nssTokenSearchType_TokenOnly = 2,
-+ nssTokenSearchType_TokenForced = 3
-+} nssTokenSearchType;
-+
-+struct nssTokenCertSearchStr
-+{
-+ nssTokenSearchType searchType;
-+ PRStatus (* callback)(NSSCertificate *c, void *arg);
-+ void *cbarg;
-+ nssList *cached;
-+ /* TODO: add a cache query callback if the list would be large
-+ * (traversal)
-+ */
-+};
-+
-+struct nssSlotListStr;
-+typedef struct nssSlotListStr nssSlotList;
-+
-+struct NSSAlgorithmAndParametersStr
-+{
-+ CK_MECHANISM mechanism;
-+};
-+
-+PR_END_EXTERN_C
-+
-+#endif /* DEVT_H */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/devtm.h 2004-12-13 15:50:16.088143944 +0100
-@@ -0,0 +1,58 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifndef DEVTM_H
-+#define DEVTM_H
-+
-+#ifdef DEBUG
-+static const char DEVTM_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+/*
-+ * devtm.h
-+ *
-+ * This file contains module-private definitions for the low-level
-+ * cryptoki devices.
-+ */
-+
-+#ifndef DEVT_H
-+#include "devt.h"
-+#endif /* DEVT_H */
-+
-+PR_BEGIN_EXTERN_C
-+
-+#define MAX_LOCAL_CACHE_OBJECTS 10
-+
-+PR_END_EXTERN_C
-+
-+#endif /* DEVTM_H */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/devtoken.c 2004-12-13 13:06:46.872371408 +0100
-@@ -0,0 +1,1711 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#ifndef NSSCKEPV_H
-+#include "nssckepv.h"
-+#endif /* NSSCKEPV_H */
-+
-+#ifndef DEVM_H
-+#include "devm.h"
-+#endif /* DEVM_H */
-+
-+#ifndef CKHELPER_H
-+#include "ckhelper.h"
-+#endif /* CKHELPER_H */
-+
-+#ifdef NSS_3_4_CODE
-+#include "pk11func.h"
-+#include "dev3hack.h"
-+#include "secerr.h"
-+#endif
-+
-+extern const NSSError NSS_ERROR_NOT_FOUND;
-+
-+/* The number of object handles to grab during each call to C_FindObjects */
-+#define OBJECT_STACK_SIZE 16
-+
-+#ifdef PURE_STAN_BUILD
-+struct NSSTokenStr
-+{
-+ struct nssDeviceBaseStr base;
-+ NSSSlot *slot; /* Peer */
-+ CK_FLAGS ckFlags; /* from CK_TOKEN_INFO.flags */
-+ nssSession *defaultSession;
-+ nssTokenObjectCache *cache;
-+};
-+
-+NSS_IMPLEMENT NSSToken *
-+nssToken_Create (
-+ CK_SLOT_ID slotID,
-+ NSSSlot *peer
-+)
-+{
-+ NSSArena *arena;
-+ NSSToken *rvToken;
-+ nssSession *session = NULL;
-+ NSSUTF8 *tokenName = NULL;
-+ PRUint32 length;
-+ PRBool readWrite;
-+ CK_TOKEN_INFO tokenInfo;
-+ CK_RV ckrv;
-+ void *epv = nssSlot_GetCryptokiEPV(peer);
-+ arena = NSSArena_Create();
-+ if(!arena) {
-+ return (NSSToken *)NULL;
-+ }
-+ rvToken = nss_ZNEW(arena, NSSToken);
-+ if (!rvToken) {
-+ goto loser;
-+ }
-+ /* Get token information */
-+ ckrv = CKAPI(epv)->C_GetTokenInfo(slotID, &tokenInfo);
-+ if (ckrv != CKR_OK) {
-+ /* set an error here, eh? */
-+ goto loser;
-+ }
-+ /* Grab the slot description from the PKCS#11 fixed-length buffer */
-+ length = nssPKCS11String_Length(tokenInfo.label, sizeof(tokenInfo.label));
-+ if (length > 0) {
-+ tokenName = nssUTF8_Create(arena, nssStringType_UTF8String,
-+ (void *)tokenInfo.label, length);
-+ if (!tokenName) {
-+ goto loser;
-+ }
-+ }
-+ /* Open a default session handle for the token. */
-+ if (tokenInfo.ulMaxSessionCount == 1) {
-+ /* if the token can only handle one session, it must be RW. */
-+ readWrite = PR_TRUE;
-+ } else {
-+ readWrite = PR_FALSE;
-+ }
-+ session = nssSlot_CreateSession(peer, arena, readWrite);
-+ if (session == NULL) {
-+ goto loser;
-+ }
-+ /* TODO: seed the RNG here */
-+ rvToken->base.arena = arena;
-+ rvToken->base.refCount = 1;
-+ rvToken->base.name = tokenName;
-+ rvToken->base.lock = PZ_NewLock(nssNSSILockOther); /* XXX */
-+ if (!rvToken->base.lock) {
-+ goto loser;
-+ }
-+ rvToken->slot = peer; /* slot owns ref to token */
-+ rvToken->ckFlags = tokenInfo.flags;
-+ rvToken->defaultSession = session;
-+ if (nssSlot_IsHardware(peer)) {
-+ rvToken->cache = nssTokenObjectCache_Create(rvToken,
-+ PR_TRUE, PR_TRUE, PR_TRUE);
-+ if (!rvToken->cache) {
-+ nssSlot_Destroy(peer);
-+ goto loser;
-+ }
-+ }
-+ return rvToken;
-+loser:
-+ if (session) {
-+ nssSession_Destroy(session);
-+ }
-+ nssArena_Destroy(arena);
-+ return (NSSToken *)NULL;
-+}
-+#endif /* PURE_STAN_BUILD */
-+
-+NSS_IMPLEMENT PRStatus
-+nssToken_Destroy (
-+ NSSToken *tok
-+)
-+{
-+ if (tok) {
-+ if (PR_AtomicDecrement(&tok->base.refCount) == 0) {
-+ PZ_DestroyLock(tok->base.lock);
-+ nssTokenObjectCache_Destroy(tok->cache);
-+ return nssArena_Destroy(tok->base.arena);
-+ }
-+ }
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT void
-+nssToken_Remove (
-+ NSSToken *tok
-+)
-+{
-+ nssTokenObjectCache_Clear(tok->cache);
-+}
-+
-+NSS_IMPLEMENT void
-+NSSToken_Destroy (
-+ NSSToken *tok
-+)
-+{
-+ (void)nssToken_Destroy(tok);
-+}
-+
-+NSS_IMPLEMENT NSSToken *
-+nssToken_AddRef (
-+ NSSToken *tok
-+)
-+{
-+ PR_AtomicIncrement(&tok->base.refCount);
-+ return tok;
-+}
-+
-+NSS_IMPLEMENT NSSSlot *
-+nssToken_GetSlot (
-+ NSSToken *tok
-+)
-+{
-+ return nssSlot_AddRef(tok->slot);
-+}
-+
-+#ifdef PURE_STAN_BUILD
-+NSS_IMPLEMENT NSSModule *
-+nssToken_GetModule (
-+ NSSToken *token
-+)
-+{
-+ return nssSlot_GetModule(token->slot);
-+}
-+#endif
-+
-+NSS_IMPLEMENT void *
-+nssToken_GetCryptokiEPV (
-+ NSSToken *token
-+)
-+{
-+ return nssSlot_GetCryptokiEPV(token->slot);
-+}
-+
-+NSS_IMPLEMENT nssSession *
-+nssToken_GetDefaultSession (
-+ NSSToken *token
-+)
-+{
-+ return token->defaultSession;
-+}
-+
-+NSS_IMPLEMENT NSSUTF8 *
-+nssToken_GetName (
-+ NSSToken *tok
-+)
-+{
-+ if (tok == NULL) {
-+ return "";
-+ }
-+ if (tok->base.name[0] == 0) {
-+ (void) nssSlot_IsTokenPresent(tok->slot);
-+ }
-+ return tok->base.name;
-+}
-+
-+NSS_IMPLEMENT NSSUTF8 *
-+NSSToken_GetName (
-+ NSSToken *token
-+)
-+{
-+ return nssToken_GetName(token);
-+}
-+
-+NSS_IMPLEMENT PRBool
-+nssToken_IsLoginRequired (
-+ NSSToken *token
-+)
-+{
-+ return (token->ckFlags & CKF_LOGIN_REQUIRED);
-+}
-+
-+NSS_IMPLEMENT PRBool
-+nssToken_NeedsPINInitialization (
-+ NSSToken *token
-+)
-+{
-+ return (!(token->ckFlags & CKF_USER_PIN_INITIALIZED));
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssToken_DeleteStoredObject (
-+ nssCryptokiObject *instance
-+)
-+{
-+ CK_RV ckrv;
-+ PRStatus status;
-+ PRBool createdSession = PR_FALSE;
-+ NSSToken *token = instance->token;
-+ nssSession *session = NULL;
-+ void *epv = nssToken_GetCryptokiEPV(instance->token);
-+ if (token->cache) {
-+ nssTokenObjectCache_RemoveObject(token->cache, instance);
-+ }
-+ if (instance->isTokenObject) {
-+ if (nssSession_IsReadWrite(token->defaultSession)) {
-+ session = token->defaultSession;
-+ } else {
-+ session = nssSlot_CreateSession(token->slot, NULL, PR_TRUE);
-+ createdSession = PR_TRUE;
-+ }
-+ }
-+ if (session == NULL) {
-+ return PR_FAILURE;
-+ }
-+ nssSession_EnterMonitor(session);
-+ ckrv = CKAPI(epv)->C_DestroyObject(session->handle, instance->handle);
-+ nssSession_ExitMonitor(session);
-+ if (createdSession) {
-+ nssSession_Destroy(session);
-+ }
-+ status = (ckrv == CKR_OK) ? PR_SUCCESS : PR_FAILURE;
-+ return status;
-+}
-+
-+static nssCryptokiObject *
-+import_object (
-+ NSSToken *tok,
-+ nssSession *sessionOpt,
-+ CK_ATTRIBUTE_PTR objectTemplate,
-+ CK_ULONG otsize
-+)
-+{
-+ nssSession *session = NULL;
-+ PRBool createdSession = PR_FALSE;
-+ nssCryptokiObject *object = NULL;
-+ CK_OBJECT_HANDLE handle;
-+ CK_RV ckrv;
-+ void *epv = nssToken_GetCryptokiEPV(tok);
-+ if (nssCKObject_IsTokenObjectTemplate(objectTemplate, otsize)) {
-+ if (sessionOpt) {
-+ if (!nssSession_IsReadWrite(sessionOpt)) {
-+ return CK_INVALID_HANDLE;
-+ } else {
-+ session = sessionOpt;
-+ }
-+ } else if (nssSession_IsReadWrite(tok->defaultSession)) {
-+ session = tok->defaultSession;
-+ } else {
-+ session = nssSlot_CreateSession(tok->slot, NULL, PR_TRUE);
-+ createdSession = PR_TRUE;
-+ }
-+ } else {
-+ session = (sessionOpt) ? sessionOpt : tok->defaultSession;
-+ }
-+ if (session == NULL) {
-+ return CK_INVALID_HANDLE;
-+ }
-+ nssSession_EnterMonitor(session);
-+ ckrv = CKAPI(epv)->C_CreateObject(session->handle,
-+ objectTemplate, otsize,
-+ &handle);
-+ nssSession_ExitMonitor(session);
-+ if (ckrv == CKR_OK) {
-+ object = nssCryptokiObject_Create(tok, session, handle);
-+ }
-+ if (createdSession) {
-+ nssSession_Destroy(session);
-+ }
-+ return object;
-+}
-+
-+static nssCryptokiObject **
-+create_objects_from_handles (
-+ NSSToken *tok,
-+ nssSession *session,
-+ CK_OBJECT_HANDLE *handles,
-+ PRUint32 numH
-+)
-+{
-+ nssCryptokiObject **objects;
-+ objects = nss_ZNEWARRAY(NULL, nssCryptokiObject *, numH + 1);
-+ if (objects) {
-+ PRInt32 i;
-+ for (i=0; i<(PRInt32)numH; i++) {
-+ objects[i] = nssCryptokiObject_Create(tok, session, handles[i]);
-+ if (!objects[i]) {
-+ for (--i; i>0; --i) {
-+ nssCryptokiObject_Destroy(objects[i]);
-+ }
-+ return (nssCryptokiObject **)NULL;
-+ }
-+ }
-+ }
-+ return objects;
-+}
-+
-+static nssCryptokiObject **
-+find_objects (
-+ NSSToken *tok,
-+ nssSession *sessionOpt,
-+ CK_ATTRIBUTE_PTR obj_template,
-+ CK_ULONG otsize,
-+ PRUint32 maximumOpt,
-+ PRStatus *statusOpt
-+)
-+{
-+ CK_RV ckrv = CKR_OK;
-+ CK_ULONG count;
-+ CK_OBJECT_HANDLE *objectHandles;
-+ CK_OBJECT_HANDLE staticObjects[OBJECT_STACK_SIZE];
-+ PRUint32 arraySize, numHandles;
-+ void *epv = nssToken_GetCryptokiEPV(tok);
-+ nssCryptokiObject **objects;
-+ nssSession *session = (sessionOpt) ? sessionOpt : tok->defaultSession;
-+
-+ /* the arena is only for the array of object handles */
-+ if (maximumOpt > 0) {
-+ arraySize = maximumOpt;
-+ } else {
-+ arraySize = OBJECT_STACK_SIZE;
-+ }
-+ numHandles = 0;
-+ if (arraySize <= OBJECT_STACK_SIZE) {
-+ objectHandles = staticObjects;
-+ } else {
-+ objectHandles = nss_ZNEWARRAY(NULL, CK_OBJECT_HANDLE, arraySize);
-+ }
-+ if (!objectHandles) {
-+ ckrv = CKR_HOST_MEMORY;
-+ goto loser;
-+ }
-+ nssSession_EnterMonitor(session); /* ==== session lock === */
-+ /* Initialize the find with the template */
-+ ckrv = CKAPI(epv)->C_FindObjectsInit(session->handle,
-+ obj_template, otsize);
-+ if (ckrv != CKR_OK) {
-+ nssSession_ExitMonitor(session);
-+ goto loser;
-+ }
-+ while (PR_TRUE) {
-+ /* Issue the find for up to arraySize - numHandles objects */
-+ ckrv = CKAPI(epv)->C_FindObjects(session->handle,
-+ objectHandles + numHandles,
-+ arraySize - numHandles,
-+ &count);
-+ if (ckrv != CKR_OK) {
-+ nssSession_ExitMonitor(session);
-+ goto loser;
-+ }
-+ /* bump the number of found objects */
-+ numHandles += count;
-+ if (maximumOpt > 0 || numHandles < arraySize) {
-+ /* When a maximum is provided, the search is done all at once,
-+ * so the search is finished. If the number returned was less
-+ * than the number sought, the search is finished.
-+ */
-+ break;
-+ }
-+ /* the array is filled, double it and continue */
-+ arraySize *= 2;
-+ if (objectHandles == staticObjects) {
-+ objectHandles = nss_ZNEWARRAY(NULL,CK_OBJECT_HANDLE, arraySize);
-+ if (objectHandles) {
-+ PORT_Memcpy(objectHandles, staticObjects,
-+ OBJECT_STACK_SIZE * sizeof(objectHandles[1]));
-+ }
-+ } else {
-+ objectHandles = nss_ZREALLOCARRAY(objectHandles,
-+ CK_OBJECT_HANDLE,
-+ arraySize);
-+ }
-+ if (!objectHandles) {
-+ nssSession_ExitMonitor(session);
-+ ckrv = CKR_HOST_MEMORY;
-+ goto loser;
-+ }
-+ }
-+ ckrv = CKAPI(epv)->C_FindObjectsFinal(session->handle);
-+ nssSession_ExitMonitor(session); /* ==== end session lock === */
-+ if (ckrv != CKR_OK) {
-+ goto loser;
-+ }
-+ if (numHandles > 0) {
-+ objects = create_objects_from_handles(tok, session,
-+ objectHandles, numHandles);
-+ } else {
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ objects = NULL;
-+ }
-+ if (objectHandles && objectHandles != staticObjects) {
-+ nss_ZFreeIf(objectHandles);
-+ }
-+ if (statusOpt) *statusOpt = PR_SUCCESS;
-+ return objects;
-+loser:
-+ if (objectHandles && objectHandles != staticObjects) {
-+ nss_ZFreeIf(objectHandles);
-+ }
-+ /*
-+ * These errors should be treated the same as if the objects just weren't
-+ * found..
-+ */
-+ if ((ckrv == CKR_ATTRIBUTE_TYPE_INVALID) ||
-+ (ckrv == CKR_ATTRIBUTE_VALUE_INVALID) ||
-+ (ckrv == CKR_DATA_INVALID) ||
-+ (ckrv == CKR_DATA_LEN_RANGE) ||
-+ (ckrv == CKR_FUNCTION_NOT_SUPPORTED) ||
-+ (ckrv == CKR_TEMPLATE_INCOMPLETE) ||
-+ (ckrv == CKR_TEMPLATE_INCONSISTENT)) {
-+
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ if (statusOpt) *statusOpt = PR_SUCCESS;
-+ } else {
-+ if (statusOpt) *statusOpt = PR_FAILURE;
-+ }
-+ return (nssCryptokiObject **)NULL;
-+}
-+
-+static nssCryptokiObject **
-+find_objects_by_template (
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ CK_ATTRIBUTE_PTR obj_template,
-+ CK_ULONG otsize,
-+ PRUint32 maximumOpt,
-+ PRStatus *statusOpt
-+)
-+{
-+ CK_OBJECT_CLASS objclass = (CK_OBJECT_CLASS)-1;
-+ nssCryptokiObject **objects = NULL;
-+ PRUint32 i;
-+ for (i=0; i<otsize; i++) {
-+ if (obj_template[i].type == CKA_CLASS) {
-+ objclass = *(CK_OBJECT_CLASS *)obj_template[i].pValue;
-+ break;
-+ }
-+ }
-+ PR_ASSERT(i < otsize);
-+ if (i == otsize) {
-+#ifdef NSS_3_4_CODE
-+ PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
-+#endif
-+ if (statusOpt) *statusOpt = PR_FAILURE;
-+ return NULL;
-+ }
-+ /* If these objects are being cached, try looking there first */
-+ if (token->cache &&
-+ nssTokenObjectCache_HaveObjectClass(token->cache, objclass))
-+ {
-+ PRStatus status;
-+ objects = nssTokenObjectCache_FindObjectsByTemplate(token->cache,
-+ objclass,
-+ obj_template,
-+ otsize,
-+ maximumOpt,
-+ &status);
-+ if (status == PR_SUCCESS) {
-+ if (statusOpt) *statusOpt = status;
-+ return objects;
-+ }
-+ }
-+ /* Either they are not cached, or cache failed; look on token. */
-+ objects = find_objects(token, sessionOpt,
-+ obj_template, otsize,
-+ maximumOpt, statusOpt);
-+ return objects;
-+}
-+
-+extern const NSSError NSS_ERROR_INVALID_CERTIFICATE;
-+
-+NSS_IMPLEMENT nssCryptokiObject *
-+nssToken_ImportCertificate (
-+ NSSToken *tok,
-+ nssSession *sessionOpt,
-+ NSSCertificateType certType,
-+ NSSItem *id,
-+ NSSUTF8 *nickname,
-+ NSSDER *encoding,
-+ NSSDER *issuer,
-+ NSSDER *subject,
-+ NSSDER *serial,
-+ NSSASCII7 *email,
-+ PRBool asTokenObject
-+)
-+{
-+ PRStatus status;
-+ CK_CERTIFICATE_TYPE cert_type;
-+ CK_ATTRIBUTE_PTR attr;
-+ CK_ATTRIBUTE cert_tmpl[10];
-+ CK_ULONG ctsize;
-+ nssTokenSearchType searchType;
-+ nssCryptokiObject *rvObject = NULL;
-+
-+ if (certType == NSSCertificateType_PKIX) {
-+ cert_type = CKC_X_509;
-+ } else {
-+ return (nssCryptokiObject *)NULL;
-+ }
-+ NSS_CK_TEMPLATE_START(cert_tmpl, attr, ctsize);
-+ if (asTokenObject) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_true);
-+ searchType = nssTokenSearchType_TokenOnly;
-+ } else {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_false);
-+ searchType = nssTokenSearchType_SessionOnly;
-+ }
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_CLASS, &g_ck_class_cert);
-+ NSS_CK_SET_ATTRIBUTE_VAR( attr, CKA_CERTIFICATE_TYPE, cert_type);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_ID, id);
-+ NSS_CK_SET_ATTRIBUTE_UTF8(attr, CKA_LABEL, nickname);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_VALUE, encoding);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_ISSUER, issuer);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_SUBJECT, subject);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_SERIAL_NUMBER, serial);
-+ if (email) {
-+ NSS_CK_SET_ATTRIBUTE_UTF8(attr, CKA_NETSCAPE_EMAIL, email);
-+ }
-+ NSS_CK_TEMPLATE_FINISH(cert_tmpl, attr, ctsize);
-+ /* see if the cert is already there */
-+ rvObject = nssToken_FindCertificateByIssuerAndSerialNumber(tok,
-+ sessionOpt,
-+ issuer,
-+ serial,
-+ searchType,
-+ NULL);
-+ if (rvObject) {
-+ NSSItem existingDER;
-+ NSSSlot *slot = nssToken_GetSlot(tok);
-+ nssSession *session = nssSlot_CreateSession(slot, NULL, PR_TRUE);
-+ if (!session) {
-+ nssCryptokiObject_Destroy(rvObject);
-+ nssSlot_Destroy(slot);
-+ return (nssCryptokiObject *)NULL;
-+ }
-+ /* Reject any attempt to import a new cert that has the same
-+ * issuer/serial as an existing cert, but does not have the
-+ * same encoding
-+ */
-+ NSS_CK_TEMPLATE_START(cert_tmpl, attr, ctsize);
-+ NSS_CK_SET_ATTRIBUTE_NULL(attr, CKA_VALUE);
-+ NSS_CK_TEMPLATE_FINISH(cert_tmpl, attr, ctsize);
-+ status = nssCKObject_GetAttributes(rvObject->handle,
-+ cert_tmpl, ctsize, NULL,
-+ session, slot);
-+ NSS_CK_ATTRIBUTE_TO_ITEM(cert_tmpl, &existingDER);
-+ if (status == PR_SUCCESS) {
-+ if (!nssItem_Equal(encoding, &existingDER, NULL)) {
-+ nss_SetError(NSS_ERROR_INVALID_CERTIFICATE);
-+ status = PR_FAILURE;
-+ }
-+ nss_ZFreeIf(existingDER.data);
-+ }
-+ if (status == PR_FAILURE) {
-+ nssCryptokiObject_Destroy(rvObject);
-+ nssSession_Destroy(session);
-+ nssSlot_Destroy(slot);
-+ return (nssCryptokiObject *)NULL;
-+ }
-+ /* according to PKCS#11, label, ID, issuer, and serial number
-+ * may change after the object has been created. For PKIX, the
-+ * last two attributes can't change, so for now we'll only worry
-+ * about the first two.
-+ */
-+ NSS_CK_TEMPLATE_START(cert_tmpl, attr, ctsize);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_ID, id);
-+ NSS_CK_SET_ATTRIBUTE_UTF8(attr, CKA_LABEL, nickname);
-+ NSS_CK_TEMPLATE_FINISH(cert_tmpl, attr, ctsize);
-+ /* reset the mutable attributes on the token */
-+ nssCKObject_SetAttributes(rvObject->handle,
-+ cert_tmpl, ctsize,
-+ session, slot);
-+ if (!rvObject->label && nickname) {
-+ rvObject->label = nssUTF8_Duplicate(nickname, NULL);
-+ }
-+ nssSession_Destroy(session);
-+ nssSlot_Destroy(slot);
-+ } else {
-+ /* Import the certificate onto the token */
-+ rvObject = import_object(tok, sessionOpt, cert_tmpl, ctsize);
-+ }
-+ if (rvObject && tok->cache) {
-+ /* The cache will overwrite the attributes if the object already
-+ * exists.
-+ */
-+ nssTokenObjectCache_ImportObject(tok->cache, rvObject,
-+ CKO_CERTIFICATE,
-+ cert_tmpl, ctsize);
-+ }
-+ return rvObject;
-+}
-+
-+/* traverse all certificates - this should only happen if the token
-+ * has been marked as "traversable"
-+ */
-+NSS_IMPLEMENT nssCryptokiObject **
-+nssToken_FindCertificates (
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ nssTokenSearchType searchType,
-+ PRUint32 maximumOpt,
-+ PRStatus *statusOpt
-+)
-+{
-+ CK_ATTRIBUTE_PTR attr;
-+ CK_ATTRIBUTE cert_template[2];
-+ CK_ULONG ctsize;
-+ nssCryptokiObject **objects;
-+ NSS_CK_TEMPLATE_START(cert_template, attr, ctsize);
-+ /* Set the search to token/session only if provided */
-+ if (searchType == nssTokenSearchType_SessionOnly) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_false);
-+ } else if (searchType == nssTokenSearchType_TokenOnly ||
-+ searchType == nssTokenSearchType_TokenForced) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_true);
-+ }
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_CLASS, &g_ck_class_cert);
-+ NSS_CK_TEMPLATE_FINISH(cert_template, attr, ctsize);
-+
-+ if (searchType == nssTokenSearchType_TokenForced) {
-+ objects = find_objects(token, sessionOpt,
-+ cert_template, ctsize,
-+ maximumOpt, statusOpt);
-+ } else {
-+ objects = find_objects_by_template(token, sessionOpt,
-+ cert_template, ctsize,
-+ maximumOpt, statusOpt);
-+ }
-+ return objects;
-+}
-+
-+NSS_IMPLEMENT nssCryptokiObject **
-+nssToken_FindCertificatesBySubject (
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ NSSDER *subject,
-+ nssTokenSearchType searchType,
-+ PRUint32 maximumOpt,
-+ PRStatus *statusOpt
-+)
-+{
-+ CK_ATTRIBUTE_PTR attr;
-+ CK_ATTRIBUTE subj_template[3];
-+ CK_ULONG stsize;
-+ nssCryptokiObject **objects;
-+ NSS_CK_TEMPLATE_START(subj_template, attr, stsize);
-+ /* Set the search to token/session only if provided */
-+ if (searchType == nssTokenSearchType_SessionOnly) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_false);
-+ } else if (searchType == nssTokenSearchType_TokenOnly) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_true);
-+ }
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_CLASS, &g_ck_class_cert);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_SUBJECT, subject);
-+ NSS_CK_TEMPLATE_FINISH(subj_template, attr, stsize);
-+ /* now locate the token certs matching this template */
-+ objects = find_objects_by_template(token, sessionOpt,
-+ subj_template, stsize,
-+ maximumOpt, statusOpt);
-+ return objects;
-+}
-+
-+NSS_IMPLEMENT nssCryptokiObject **
-+nssToken_FindCertificatesByNickname (
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ NSSUTF8 *name,
-+ nssTokenSearchType searchType,
-+ PRUint32 maximumOpt,
-+ PRStatus *statusOpt
-+)
-+{
-+ CK_ATTRIBUTE_PTR attr;
-+ CK_ATTRIBUTE nick_template[3];
-+ CK_ULONG ntsize;
-+ nssCryptokiObject **objects;
-+ NSS_CK_TEMPLATE_START(nick_template, attr, ntsize);
-+ NSS_CK_SET_ATTRIBUTE_UTF8(attr, CKA_LABEL, name);
-+ /* Set the search to token/session only if provided */
-+ if (searchType == nssTokenSearchType_SessionOnly) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_false);
-+ } else if (searchType == nssTokenSearchType_TokenOnly) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_true);
-+ }
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_CLASS, &g_ck_class_cert);
-+ NSS_CK_TEMPLATE_FINISH(nick_template, attr, ntsize);
-+ /* now locate the token certs matching this template */
-+ objects = find_objects_by_template(token, sessionOpt,
-+ nick_template, ntsize,
-+ maximumOpt, statusOpt);
-+ if (!objects) {
-+ /* This is to workaround the fact that PKCS#11 doesn't specify
-+ * whether the '\0' should be included. XXX Is that still true?
-+ * im - this is not needed by the current softoken. However, I'm
-+ * leaving it in until I have surveyed more tokens to see if it needed.
-+ * well, its needed by the builtin token...
-+ */
-+ nick_template[0].ulValueLen++;
-+ objects = find_objects_by_template(token, sessionOpt,
-+ nick_template, ntsize,
-+ maximumOpt, statusOpt);
-+ }
-+ return objects;
-+}
-+
-+/* XXX
-+ * This function *does not* use the token object cache, because not even
-+ * the softoken will return a value for CKA_NETSCAPE_EMAIL from a call
-+ * to GetAttributes. The softoken does allow searches with that attribute,
-+ * it just won't return a value for it.
-+ */
-+NSS_IMPLEMENT nssCryptokiObject **
-+nssToken_FindCertificatesByEmail (
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ NSSASCII7 *email,
-+ nssTokenSearchType searchType,
-+ PRUint32 maximumOpt,
-+ PRStatus *statusOpt
-+)
-+{
-+ CK_ATTRIBUTE_PTR attr;
-+ CK_ATTRIBUTE email_template[3];
-+ CK_ULONG etsize;
-+ nssCryptokiObject **objects;
-+ NSS_CK_TEMPLATE_START(email_template, attr, etsize);
-+ NSS_CK_SET_ATTRIBUTE_UTF8(attr, CKA_NETSCAPE_EMAIL, email);
-+ /* Set the search to token/session only if provided */
-+ if (searchType == nssTokenSearchType_SessionOnly) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_false);
-+ } else if (searchType == nssTokenSearchType_TokenOnly) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_true);
-+ }
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_CLASS, &g_ck_class_cert);
-+ NSS_CK_TEMPLATE_FINISH(email_template, attr, etsize);
-+ /* now locate the token certs matching this template */
-+ objects = find_objects(token, sessionOpt,
-+ email_template, etsize,
-+ maximumOpt, statusOpt);
-+ if (!objects) {
-+ /* This is to workaround the fact that PKCS#11 doesn't specify
-+ * whether the '\0' should be included. XXX Is that still true?
-+ * im - this is not needed by the current softoken. However, I'm
-+ * leaving it in until I have surveyed more tokens to see if it needed.
-+ * well, its needed by the builtin token...
-+ */
-+ email_template[0].ulValueLen++;
-+ objects = find_objects(token, sessionOpt,
-+ email_template, etsize,
-+ maximumOpt, statusOpt);
-+ }
-+ return objects;
-+}
-+
-+NSS_IMPLEMENT nssCryptokiObject **
-+nssToken_FindCertificatesByID (
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ NSSItem *id,
-+ nssTokenSearchType searchType,
-+ PRUint32 maximumOpt,
-+ PRStatus *statusOpt
-+)
-+{
-+ CK_ATTRIBUTE_PTR attr;
-+ CK_ATTRIBUTE id_template[3];
-+ CK_ULONG idtsize;
-+ nssCryptokiObject **objects;
-+ NSS_CK_TEMPLATE_START(id_template, attr, idtsize);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_ID, id);
-+ /* Set the search to token/session only if provided */
-+ if (searchType == nssTokenSearchType_SessionOnly) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_false);
-+ } else if (searchType == nssTokenSearchType_TokenOnly) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_true);
-+ }
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_CLASS, &g_ck_class_cert);
-+ NSS_CK_TEMPLATE_FINISH(id_template, attr, idtsize);
-+ /* now locate the token certs matching this template */
-+ objects = find_objects_by_template(token, sessionOpt,
-+ id_template, idtsize,
-+ maximumOpt, statusOpt);
-+ return objects;
-+}
-+
-+/*
-+ * decode the serial item and return our result.
-+ * NOTE serialDecode's data is really stored in serial. Don't free it.
-+ */
-+static PRStatus
-+nssToken_decodeSerialItem(NSSItem *serial, NSSItem *serialDecode)
-+{
-+ unsigned char *data = (unsigned char *)serial->data;
-+ int data_left, data_len, index;
-+
-+ if ((serial->size >= 3) && (data[0] == 0x2)) {
-+ /* remove the der encoding of the serial number before generating the
-+ * key.. */
-+ data_left = serial->size-2;
-+ data_len = data[1];
-+ index = 2;
-+
-+ /* extended length ? (not very likely for a serial number) */
-+ if (data_len & 0x80) {
-+ int len_count = data_len & 0x7f;
-+
-+ data_len = 0;
-+ data_left -= len_count;
-+ if (data_left > 0) {
-+ while (len_count --) {
-+ data_len = (data_len << 8) | data[index++];
-+ }
-+ }
-+ }
-+ /* XXX leaving any leading zeros on the serial number for backwards
-+ * compatibility
-+ */
-+ /* not a valid der, must be just an unlucky serial number value */
-+ if (data_len == data_left) {
-+ serialDecode->size = data_len;
-+ serialDecode->data = &data[index];
-+ return PR_SUCCESS;
-+ }
-+ }
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT nssCryptokiObject *
-+nssToken_FindCertificateByIssuerAndSerialNumber (
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ NSSDER *issuer,
-+ NSSDER *serial,
-+ nssTokenSearchType searchType,
-+ PRStatus *statusOpt
-+)
-+{
-+ CK_ATTRIBUTE_PTR attr;
-+ CK_ATTRIBUTE_PTR serialAttr;
-+ CK_ATTRIBUTE cert_template[4];
-+ CK_ULONG ctsize;
-+ nssCryptokiObject **objects;
-+ nssCryptokiObject *rvObject = NULL;
-+ NSS_CK_TEMPLATE_START(cert_template, attr, ctsize);
-+ /* Set the search to token/session only if provided */
-+ if (searchType == nssTokenSearchType_SessionOnly) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_false);
-+ } else if ((searchType == nssTokenSearchType_TokenOnly) ||
-+ (searchType == nssTokenSearchType_TokenForced)) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_true);
-+ }
-+ /* Set the unique id */
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_CLASS, &g_ck_class_cert);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_ISSUER, issuer);
-+ serialAttr = attr;
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_SERIAL_NUMBER, serial);
-+ NSS_CK_TEMPLATE_FINISH(cert_template, attr, ctsize);
-+ /* get the object handle */
-+ if (searchType == nssTokenSearchType_TokenForced) {
-+ objects = find_objects(token, sessionOpt,
-+ cert_template, ctsize,
-+ 1, statusOpt);
-+ } else {
-+ objects = find_objects_by_template(token, sessionOpt,
-+ cert_template, ctsize,
-+ 1, statusOpt);
-+ }
-+ if (objects) {
-+ rvObject = objects[0];
-+ nss_ZFreeIf(objects);
-+ }
-+
-+ /*
-+ * NSS used to incorrectly store serial numbers in their decoded form.
-+ * because of this old tokens have decoded serial numbers.
-+ */
-+ if (!objects) {
-+ NSSItem serialDecode;
-+ PRStatus status;
-+
-+ status = nssToken_decodeSerialItem(serial, &serialDecode);
-+ if (status != PR_SUCCESS) {
-+ return NULL;
-+ }
-+ NSS_CK_SET_ATTRIBUTE_ITEM(serialAttr,CKA_SERIAL_NUMBER,&serialDecode);
-+ if (searchType == nssTokenSearchType_TokenForced) {
-+ objects = find_objects(token, sessionOpt,
-+ cert_template, ctsize,
-+ 1, statusOpt);
-+ } else {
-+ objects = find_objects_by_template(token, sessionOpt,
-+ cert_template, ctsize,
-+ 1, statusOpt);
-+ }
-+ if (objects) {
-+ rvObject = objects[0];
-+ nss_ZFreeIf(objects);
-+ }
-+ }
-+ return rvObject;
-+}
-+
-+NSS_IMPLEMENT nssCryptokiObject *
-+nssToken_FindCertificateByEncodedCertificate (
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ NSSBER *encodedCertificate,
-+ nssTokenSearchType searchType,
-+ PRStatus *statusOpt
-+)
-+{
-+ CK_ATTRIBUTE_PTR attr;
-+ CK_ATTRIBUTE cert_template[3];
-+ CK_ULONG ctsize;
-+ nssCryptokiObject **objects;
-+ nssCryptokiObject *rvObject = NULL;
-+ NSS_CK_TEMPLATE_START(cert_template, attr, ctsize);
-+ /* Set the search to token/session only if provided */
-+ if (searchType == nssTokenSearchType_SessionOnly) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_false);
-+ } else if (searchType == nssTokenSearchType_TokenOnly) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_true);
-+ }
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_CLASS, &g_ck_class_cert);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_VALUE, encodedCertificate);
-+ NSS_CK_TEMPLATE_FINISH(cert_template, attr, ctsize);
-+ /* get the object handle */
-+ objects = find_objects_by_template(token, sessionOpt,
-+ cert_template, ctsize,
-+ 1, statusOpt);
-+ if (objects) {
-+ rvObject = objects[0];
-+ nss_ZFreeIf(objects);
-+ }
-+ return rvObject;
-+}
-+
-+NSS_IMPLEMENT nssCryptokiObject **
-+nssToken_FindPrivateKeys (
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ nssTokenSearchType searchType,
-+ PRUint32 maximumOpt,
-+ PRStatus *statusOpt
-+)
-+{
-+ CK_ATTRIBUTE_PTR attr;
-+ CK_ATTRIBUTE key_template[2];
-+ CK_ULONG ktsize;
-+ nssCryptokiObject **objects;
-+
-+ NSS_CK_TEMPLATE_START(key_template, attr, ktsize);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_CLASS, &g_ck_class_privkey);
-+ if (searchType == nssTokenSearchType_SessionOnly) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_false);
-+ } else if (searchType == nssTokenSearchType_TokenOnly) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_true);
-+ }
-+ NSS_CK_TEMPLATE_FINISH(key_template, attr, ktsize);
-+
-+ objects = find_objects_by_template(token, sessionOpt,
-+ key_template, ktsize,
-+ maximumOpt, statusOpt);
-+ return objects;
-+}
-+
-+/* XXX ?there are no session cert objects, so only search token objects */
-+NSS_IMPLEMENT nssCryptokiObject *
-+nssToken_FindPrivateKeyByID (
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ NSSItem *keyID
-+)
-+{
-+ CK_ATTRIBUTE_PTR attr;
-+ CK_ATTRIBUTE key_template[3];
-+ CK_ULONG ktsize;
-+ nssCryptokiObject **objects;
-+ nssCryptokiObject *rvKey = NULL;
-+
-+ NSS_CK_TEMPLATE_START(key_template, attr, ktsize);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_CLASS, &g_ck_class_privkey);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_true);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_ID, keyID);
-+ NSS_CK_TEMPLATE_FINISH(key_template, attr, ktsize);
-+
-+ objects = find_objects_by_template(token, sessionOpt,
-+ key_template, ktsize,
-+ 1, NULL);
-+ if (objects) {
-+ rvKey = objects[0];
-+ nss_ZFreeIf(objects);
-+ }
-+ return rvKey;
-+}
-+
-+/* XXX ?there are no session cert objects, so only search token objects */
-+NSS_IMPLEMENT nssCryptokiObject *
-+nssToken_FindPublicKeyByID (
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ NSSItem *keyID
-+)
-+{
-+ CK_ATTRIBUTE_PTR attr;
-+ CK_ATTRIBUTE key_template[3];
-+ CK_ULONG ktsize;
-+ nssCryptokiObject **objects;
-+ nssCryptokiObject *rvKey = NULL;
-+
-+ NSS_CK_TEMPLATE_START(key_template, attr, ktsize);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_CLASS, &g_ck_class_pubkey);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_true);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_ID, keyID);
-+ NSS_CK_TEMPLATE_FINISH(key_template, attr, ktsize);
-+
-+ objects = find_objects_by_template(token, sessionOpt,
-+ key_template, ktsize,
-+ 1, NULL);
-+ if (objects) {
-+ rvKey = objects[0];
-+ nss_ZFreeIf(objects);
-+ }
-+ return rvKey;
-+}
-+
-+static void
-+sha1_hash(NSSItem *input, NSSItem *output)
-+{
-+ NSSAlgorithmAndParameters *ap;
-+#ifdef NSS_3_4_CODE
-+ PK11SlotInfo *internal = PK11_GetInternalSlot();
-+ NSSToken *token = PK11Slot_GetNSSToken(internal);
-+#else
-+ NSSToken *token = nss_GetDefaultCryptoToken();
-+#endif
-+ ap = NSSAlgorithmAndParameters_CreateSHA1Digest(NULL);
-+ (void)nssToken_Digest(token, NULL, ap, input, output, NULL);
-+#ifdef NSS_3_4_CODE
-+ PK11_FreeSlot(token->pk11slot);
-+#endif
-+ nss_ZFreeIf(ap);
-+}
-+
-+static void
-+md5_hash(NSSItem *input, NSSItem *output)
-+{
-+ NSSAlgorithmAndParameters *ap;
-+#ifdef NSS_3_4_CODE
-+ PK11SlotInfo *internal = PK11_GetInternalSlot();
-+ NSSToken *token = PK11Slot_GetNSSToken(internal);
-+#else
-+ NSSToken *token = nss_GetDefaultCryptoToken();
-+#endif
-+ ap = NSSAlgorithmAndParameters_CreateMD5Digest(NULL);
-+ (void)nssToken_Digest(token, NULL, ap, input, output, NULL);
-+#ifdef NSS_3_4_CODE
-+ PK11_FreeSlot(token->pk11slot);
-+#endif
-+ nss_ZFreeIf(ap);
-+}
-+
-+static CK_TRUST
-+get_ck_trust (
-+ nssTrustLevel nssTrust
-+)
-+{
-+ CK_TRUST t;
-+ switch (nssTrust) {
-+ case nssTrustLevel_NotTrusted: t = CKT_NETSCAPE_UNTRUSTED; break;
-+ case nssTrustLevel_TrustedDelegator: t = CKT_NETSCAPE_TRUSTED_DELEGATOR;
-+ break;
-+ case nssTrustLevel_ValidDelegator: t = CKT_NETSCAPE_VALID_DELEGATOR; break;
-+ case nssTrustLevel_Trusted: t = CKT_NETSCAPE_TRUSTED; break;
-+ case nssTrustLevel_Valid: t = CKT_NETSCAPE_VALID; break;
-+ case nssTrustLevel_Unknown:
-+ default: t = CKT_NETSCAPE_TRUST_UNKNOWN; break;
-+ }
-+ return t;
-+}
-+
-+NSS_IMPLEMENT nssCryptokiObject *
-+nssToken_ImportTrust (
-+ NSSToken *tok,
-+ nssSession *sessionOpt,
-+ NSSDER *certEncoding,
-+ NSSDER *certIssuer,
-+ NSSDER *certSerial,
-+ nssTrustLevel serverAuth,
-+ nssTrustLevel clientAuth,
-+ nssTrustLevel codeSigning,
-+ nssTrustLevel emailProtection,
-+ PRBool asTokenObject
-+)
-+{
-+ nssCryptokiObject *object;
-+ CK_OBJECT_CLASS tobjc = CKO_NETSCAPE_TRUST;
-+ CK_TRUST ckSA, ckCA, ckCS, ckEP;
-+ CK_ATTRIBUTE_PTR attr;
-+ CK_ATTRIBUTE trust_tmpl[10];
-+ CK_ULONG tsize;
-+ PRUint8 sha1[20]; /* this is cheating... */
-+ PRUint8 md5[16];
-+ NSSItem sha1_result, md5_result;
-+ sha1_result.data = sha1; sha1_result.size = sizeof sha1;
-+ md5_result.data = md5; md5_result.size = sizeof md5;
-+ sha1_hash(certEncoding, &sha1_result);
-+ md5_hash(certEncoding, &md5_result);
-+ ckSA = get_ck_trust(serverAuth);
-+ ckCA = get_ck_trust(clientAuth);
-+ ckCS = get_ck_trust(codeSigning);
-+ ckEP = get_ck_trust(emailProtection);
-+ NSS_CK_TEMPLATE_START(trust_tmpl, attr, tsize);
-+ if (asTokenObject) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_true);
-+ } else {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_false);
-+ }
-+ NSS_CK_SET_ATTRIBUTE_VAR( attr, CKA_CLASS, tobjc);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_ISSUER, certIssuer);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_SERIAL_NUMBER, certSerial);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_CERT_SHA1_HASH, &sha1_result);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_CERT_MD5_HASH, &md5_result);
-+ /* now set the trust values */
-+ NSS_CK_SET_ATTRIBUTE_VAR(attr, CKA_TRUST_SERVER_AUTH, ckSA);
-+ NSS_CK_SET_ATTRIBUTE_VAR(attr, CKA_TRUST_CLIENT_AUTH, ckCA);
-+ NSS_CK_SET_ATTRIBUTE_VAR(attr, CKA_TRUST_CODE_SIGNING, ckCS);
-+ NSS_CK_SET_ATTRIBUTE_VAR(attr, CKA_TRUST_EMAIL_PROTECTION, ckEP);
-+ NSS_CK_TEMPLATE_FINISH(trust_tmpl, attr, tsize);
-+ /* import the trust object onto the token */
-+ object = import_object(tok, sessionOpt, trust_tmpl, tsize);
-+ if (object && tok->cache) {
-+ nssTokenObjectCache_ImportObject(tok->cache, object, tobjc,
-+ trust_tmpl, tsize);
-+ }
-+ return object;
-+}
-+
-+NSS_IMPLEMENT nssCryptokiObject **
-+nssToken_FindTrustObjects (
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ nssTokenSearchType searchType,
-+ PRUint32 maximumOpt,
-+ PRStatus *statusOpt
-+)
-+{
-+ CK_OBJECT_CLASS tobjc = CKO_NETSCAPE_TRUST;
-+ CK_ATTRIBUTE_PTR attr;
-+ CK_ATTRIBUTE tobj_template[2];
-+ CK_ULONG tobj_size;
-+ nssCryptokiObject **objects;
-+ nssSession *session = sessionOpt ? sessionOpt : token->defaultSession;
-+
-+ NSS_CK_TEMPLATE_START(tobj_template, attr, tobj_size);
-+ if (searchType == nssTokenSearchType_SessionOnly) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_false);
-+ } else if (searchType == nssTokenSearchType_TokenOnly ||
-+ searchType == nssTokenSearchType_TokenForced) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_true);
-+ }
-+ NSS_CK_SET_ATTRIBUTE_VAR( attr, CKA_CLASS, tobjc);
-+ NSS_CK_TEMPLATE_FINISH(tobj_template, attr, tobj_size);
-+
-+ if (searchType == nssTokenSearchType_TokenForced) {
-+ objects = find_objects(token, session,
-+ tobj_template, tobj_size,
-+ maximumOpt, statusOpt);
-+ } else {
-+ objects = find_objects_by_template(token, session,
-+ tobj_template, tobj_size,
-+ maximumOpt, statusOpt);
-+ }
-+ return objects;
-+}
-+
-+NSS_IMPLEMENT nssCryptokiObject *
-+nssToken_FindTrustForCertificate (
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ NSSDER *certEncoding,
-+ NSSDER *certIssuer,
-+ NSSDER *certSerial,
-+ nssTokenSearchType searchType
-+)
-+{
-+ CK_OBJECT_CLASS tobjc = CKO_NETSCAPE_TRUST;
-+ CK_ATTRIBUTE_PTR attr;
-+ CK_ATTRIBUTE tobj_template[5];
-+ CK_ULONG tobj_size;
-+ nssSession *session = sessionOpt ? sessionOpt : token->defaultSession;
-+ nssCryptokiObject *object, **objects;
-+
-+ NSS_CK_TEMPLATE_START(tobj_template, attr, tobj_size);
-+ if (searchType == nssTokenSearchType_SessionOnly) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_false);
-+ } else if (searchType == nssTokenSearchType_TokenOnly) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_true);
-+ }
-+ NSS_CK_SET_ATTRIBUTE_VAR( attr, CKA_CLASS, tobjc);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_ISSUER, certIssuer);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_SERIAL_NUMBER , certSerial);
-+ NSS_CK_TEMPLATE_FINISH(tobj_template, attr, tobj_size);
-+ object = NULL;
-+ objects = find_objects_by_template(token, session,
-+ tobj_template, tobj_size,
-+ 1, NULL);
-+ if (objects) {
-+ object = objects[0];
-+ nss_ZFreeIf(objects);
-+ }
-+ return object;
-+}
-+
-+NSS_IMPLEMENT nssCryptokiObject *
-+nssToken_ImportCRL (
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ NSSDER *subject,
-+ NSSDER *encoding,
-+ PRBool isKRL,
-+ NSSUTF8 *url,
-+ PRBool asTokenObject
-+)
-+{
-+ nssCryptokiObject *object;
-+ CK_OBJECT_CLASS crlobjc = CKO_NETSCAPE_CRL;
-+ CK_ATTRIBUTE_PTR attr;
-+ CK_ATTRIBUTE crl_tmpl[6];
-+ CK_ULONG crlsize;
-+
-+ NSS_CK_TEMPLATE_START(crl_tmpl, attr, crlsize);
-+ if (asTokenObject) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_true);
-+ } else {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_false);
-+ }
-+ NSS_CK_SET_ATTRIBUTE_VAR( attr, CKA_CLASS, crlobjc);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_SUBJECT, subject);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_VALUE, encoding);
-+ NSS_CK_SET_ATTRIBUTE_UTF8(attr, CKA_NETSCAPE_URL, url);
-+ if (isKRL) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_NETSCAPE_KRL, &g_ck_true);
-+ } else {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_NETSCAPE_KRL, &g_ck_false);
-+ }
-+ NSS_CK_TEMPLATE_FINISH(crl_tmpl, attr, crlsize);
-+
-+ /* import the crl object onto the token */
-+ object = import_object(token, sessionOpt, crl_tmpl, crlsize);
-+ if (object && token->cache) {
-+ nssTokenObjectCache_ImportObject(token->cache, object, crlobjc,
-+ crl_tmpl, crlsize);
-+ }
-+ return object;
-+}
-+
-+NSS_IMPLEMENT nssCryptokiObject **
-+nssToken_FindCRLs (
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ nssTokenSearchType searchType,
-+ PRUint32 maximumOpt,
-+ PRStatus *statusOpt
-+)
-+{
-+ CK_OBJECT_CLASS crlobjc = CKO_NETSCAPE_CRL;
-+ CK_ATTRIBUTE_PTR attr;
-+ CK_ATTRIBUTE crlobj_template[2];
-+ CK_ULONG crlobj_size;
-+ nssCryptokiObject **objects;
-+ nssSession *session = sessionOpt ? sessionOpt : token->defaultSession;
-+
-+ NSS_CK_TEMPLATE_START(crlobj_template, attr, crlobj_size);
-+ if (searchType == nssTokenSearchType_SessionOnly) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_false);
-+ } else if (searchType == nssTokenSearchType_TokenOnly ||
-+ searchType == nssTokenSearchType_TokenForced) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_true);
-+ }
-+ NSS_CK_SET_ATTRIBUTE_VAR( attr, CKA_CLASS, crlobjc);
-+ NSS_CK_TEMPLATE_FINISH(crlobj_template, attr, crlobj_size);
-+
-+ if (searchType == nssTokenSearchType_TokenForced) {
-+ objects = find_objects(token, session,
-+ crlobj_template, crlobj_size,
-+ maximumOpt, statusOpt);
-+ } else {
-+ objects = find_objects_by_template(token, session,
-+ crlobj_template, crlobj_size,
-+ maximumOpt, statusOpt);
-+ }
-+ return objects;
-+}
-+
-+NSS_IMPLEMENT nssCryptokiObject **
-+nssToken_FindCRLsBySubject (
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ NSSDER *subject,
-+ nssTokenSearchType searchType,
-+ PRUint32 maximumOpt,
-+ PRStatus *statusOpt
-+)
-+{
-+ CK_OBJECT_CLASS crlobjc = CKO_NETSCAPE_CRL;
-+ CK_ATTRIBUTE_PTR attr;
-+ CK_ATTRIBUTE crlobj_template[3];
-+ CK_ULONG crlobj_size;
-+ nssCryptokiObject **objects;
-+ nssSession *session = sessionOpt ? sessionOpt : token->defaultSession;
-+
-+ NSS_CK_TEMPLATE_START(crlobj_template, attr, crlobj_size);
-+ if (searchType == nssTokenSearchType_SessionOnly) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_false);
-+ } else if (searchType == nssTokenSearchType_TokenOnly ||
-+ searchType == nssTokenSearchType_TokenForced) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_true);
-+ }
-+ NSS_CK_SET_ATTRIBUTE_VAR( attr, CKA_CLASS, crlobjc);
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_SUBJECT, subject);
-+ NSS_CK_TEMPLATE_FINISH(crlobj_template, attr, crlobj_size);
-+
-+ objects = find_objects_by_template(token, session,
-+ crlobj_template, crlobj_size,
-+ maximumOpt, statusOpt);
-+ return objects;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssToken_GetCachedObjectAttributes (
-+ NSSToken *token,
-+ NSSArena *arenaOpt,
-+ nssCryptokiObject *object,
-+ CK_OBJECT_CLASS objclass,
-+ CK_ATTRIBUTE_PTR atemplate,
-+ CK_ULONG atlen
-+)
-+{
-+ if (!token->cache) {
-+ return PR_FAILURE;
-+ }
-+ return nssTokenObjectCache_GetObjectAttributes(token->cache, arenaOpt,
-+ object, objclass,
-+ atemplate, atlen);
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+nssToken_Digest (
-+ NSSToken *tok,
-+ nssSession *sessionOpt,
-+ NSSAlgorithmAndParameters *ap,
-+ NSSItem *data,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ CK_RV ckrv;
-+ CK_ULONG digestLen;
-+ CK_BYTE_PTR digest;
-+ NSSItem *rvItem = NULL;
-+ void *epv = nssToken_GetCryptokiEPV(tok);
-+ nssSession *session;
-+ session = (sessionOpt) ? sessionOpt : tok->defaultSession;
-+ nssSession_EnterMonitor(session);
-+ ckrv = CKAPI(epv)->C_DigestInit(session->handle, &ap->mechanism);
-+ if (ckrv != CKR_OK) {
-+ nssSession_ExitMonitor(session);
-+ return NULL;
-+ }
-+#if 0
-+ /* XXX the standard says this should work, but it doesn't */
-+ ckrv = CKAPI(epv)->C_Digest(session->handle, NULL, 0, NULL, &digestLen);
-+ if (ckrv != CKR_OK) {
-+ nssSession_ExitMonitor(session);
-+ return NULL;
-+ }
-+#endif
-+ digestLen = 0; /* XXX for now */
-+ digest = NULL;
-+ if (rvOpt) {
-+ if (rvOpt->size > 0 && rvOpt->size < digestLen) {
-+ nssSession_ExitMonitor(session);
-+ /* the error should be bad args */
-+ return NULL;
-+ }
-+ if (rvOpt->data) {
-+ digest = rvOpt->data;
-+ }
-+ digestLen = rvOpt->size;
-+ }
-+ if (!digest) {
-+ digest = (CK_BYTE_PTR)nss_ZAlloc(arenaOpt, digestLen);
-+ if (!digest) {
-+ nssSession_ExitMonitor(session);
-+ return NULL;
-+ }
-+ }
-+ ckrv = CKAPI(epv)->C_Digest(session->handle,
-+ (CK_BYTE_PTR)data->data,
-+ (CK_ULONG)data->size,
-+ (CK_BYTE_PTR)digest,
-+ &digestLen);
-+ nssSession_ExitMonitor(session);
-+ if (ckrv != CKR_OK) {
-+ nss_ZFreeIf(digest);
-+ return NULL;
-+ }
-+ if (!rvOpt) {
-+ rvItem = nssItem_Create(arenaOpt, NULL, digestLen, (void *)digest);
-+ }
-+ return rvItem;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssToken_BeginDigest (
-+ NSSToken *tok,
-+ nssSession *sessionOpt,
-+ NSSAlgorithmAndParameters *ap
-+)
-+{
-+ CK_RV ckrv;
-+ nssSession *session;
-+ void *epv = nssToken_GetCryptokiEPV(tok);
-+ session = (sessionOpt) ? sessionOpt : tok->defaultSession;
-+ nssSession_EnterMonitor(session);
-+ ckrv = CKAPI(epv)->C_DigestInit(session->handle, &ap->mechanism);
-+ nssSession_ExitMonitor(session);
-+ return (ckrv == CKR_OK) ? PR_SUCCESS : PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssToken_ContinueDigest (
-+ NSSToken *tok,
-+ nssSession *sessionOpt,
-+ NSSItem *item
-+)
-+{
-+ CK_RV ckrv;
-+ nssSession *session;
-+ void *epv = nssToken_GetCryptokiEPV(tok);
-+ session = (sessionOpt) ? sessionOpt : tok->defaultSession;
-+ nssSession_EnterMonitor(session);
-+ ckrv = CKAPI(epv)->C_DigestUpdate(session->handle,
-+ (CK_BYTE_PTR)item->data,
-+ (CK_ULONG)item->size);
-+ nssSession_ExitMonitor(session);
-+ return (ckrv == CKR_OK) ? PR_SUCCESS : PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+nssToken_FinishDigest (
-+ NSSToken *tok,
-+ nssSession *sessionOpt,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ CK_RV ckrv;
-+ CK_ULONG digestLen;
-+ CK_BYTE_PTR digest;
-+ NSSItem *rvItem = NULL;
-+ void *epv = nssToken_GetCryptokiEPV(tok);
-+ nssSession *session;
-+ session = (sessionOpt) ? sessionOpt : tok->defaultSession;
-+ nssSession_EnterMonitor(session);
-+ ckrv = CKAPI(epv)->C_DigestFinal(session->handle, NULL, &digestLen);
-+ if (ckrv != CKR_OK || digestLen == 0) {
-+ nssSession_ExitMonitor(session);
-+ return NULL;
-+ }
-+ digest = NULL;
-+ if (rvOpt) {
-+ if (rvOpt->size > 0 && rvOpt->size < digestLen) {
-+ nssSession_ExitMonitor(session);
-+ /* the error should be bad args */
-+ return NULL;
-+ }
-+ if (rvOpt->data) {
-+ digest = rvOpt->data;
-+ }
-+ digestLen = rvOpt->size;
-+ }
-+ if (!digest) {
-+ digest = (CK_BYTE_PTR)nss_ZAlloc(arenaOpt, digestLen);
-+ if (!digest) {
-+ nssSession_ExitMonitor(session);
-+ return NULL;
-+ }
-+ }
-+ ckrv = CKAPI(epv)->C_DigestFinal(session->handle, digest, &digestLen);
-+ nssSession_ExitMonitor(session);
-+ if (ckrv != CKR_OK) {
-+ nss_ZFreeIf(digest);
-+ return NULL;
-+ }
-+ if (!rvOpt) {
-+ rvItem = nssItem_Create(arenaOpt, NULL, digestLen, (void *)digest);
-+ }
-+ return rvItem;
-+}
-+
-+NSS_IMPLEMENT PRBool
-+nssToken_IsPresent (
-+ NSSToken *token
-+)
-+{
-+ return nssSlot_IsTokenPresent(token->slot);
-+}
-+
-+/* Sigh. The methods to find objects declared above cause problems with
-+ * the low-level object cache in the softoken -- the objects are found in
-+ * toto, then one wave of GetAttributes is done, then another. Having a
-+ * large number of objects causes the cache to be thrashed, as the objects
-+ * are gone before there's any chance to ask for their attributes.
-+ * So, for now, bringing back traversal methods for certs. This way all of
-+ * the cert's attributes can be grabbed immediately after finding it,
-+ * increasing the likelihood that the cache takes care of it.
-+ */
-+NSS_IMPLEMENT PRStatus
-+nssToken_TraverseCertificates (
-+ NSSToken *token,
-+ nssSession *sessionOpt,
-+ nssTokenSearchType searchType,
-+ PRStatus (* callback)(nssCryptokiObject *instance, void *arg),
-+ void *arg
-+)
-+{
-+ CK_RV ckrv;
-+ CK_ULONG count;
-+ CK_OBJECT_HANDLE *objectHandles;
-+ CK_ATTRIBUTE_PTR attr;
-+ CK_ATTRIBUTE cert_template[2];
-+ CK_ULONG ctsize;
-+ NSSArena *arena;
-+ PRStatus status;
-+ PRUint32 arraySize, numHandles;
-+ nssCryptokiObject **objects;
-+ void *epv = nssToken_GetCryptokiEPV(token);
-+ nssSession *session = (sessionOpt) ? sessionOpt : token->defaultSession;
-+
-+ /* template for all certs */
-+ NSS_CK_TEMPLATE_START(cert_template, attr, ctsize);
-+ if (searchType == nssTokenSearchType_SessionOnly) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_false);
-+ } else if (searchType == nssTokenSearchType_TokenOnly ||
-+ searchType == nssTokenSearchType_TokenForced) {
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_TOKEN, &g_ck_true);
-+ }
-+ NSS_CK_SET_ATTRIBUTE_ITEM(attr, CKA_CLASS, &g_ck_class_cert);
-+ NSS_CK_TEMPLATE_FINISH(cert_template, attr, ctsize);
-+
-+ /* the arena is only for the array of object handles */
-+ arena = nssArena_Create();
-+ if (!arena) {
-+ return PR_FAILURE;
-+ }
-+ arraySize = OBJECT_STACK_SIZE;
-+ numHandles = 0;
-+ objectHandles = nss_ZNEWARRAY(arena, CK_OBJECT_HANDLE, arraySize);
-+ if (!objectHandles) {
-+ goto loser;
-+ }
-+ nssSession_EnterMonitor(session); /* ==== session lock === */
-+ /* Initialize the find with the template */
-+ ckrv = CKAPI(epv)->C_FindObjectsInit(session->handle,
-+ cert_template, ctsize);
-+ if (ckrv != CKR_OK) {
-+ nssSession_ExitMonitor(session);
-+ goto loser;
-+ }
-+ while (PR_TRUE) {
-+ /* Issue the find for up to arraySize - numHandles objects */
-+ ckrv = CKAPI(epv)->C_FindObjects(session->handle,
-+ objectHandles + numHandles,
-+ arraySize - numHandles,
-+ &count);
-+ if (ckrv != CKR_OK) {
-+ nssSession_ExitMonitor(session);
-+ goto loser;
-+ }
-+ /* bump the number of found objects */
-+ numHandles += count;
-+ if (numHandles < arraySize) {
-+ break;
-+ }
-+ /* the array is filled, double it and continue */
-+ arraySize *= 2;
-+ objectHandles = nss_ZREALLOCARRAY(objectHandles,
-+ CK_OBJECT_HANDLE,
-+ arraySize);
-+ if (!objectHandles) {
-+ nssSession_ExitMonitor(session);
-+ goto loser;
-+ }
-+ }
-+ ckrv = CKAPI(epv)->C_FindObjectsFinal(session->handle);
-+ nssSession_ExitMonitor(session); /* ==== end session lock === */
-+ if (ckrv != CKR_OK) {
-+ goto loser;
-+ }
-+ if (numHandles > 0) {
-+ objects = create_objects_from_handles(token, session,
-+ objectHandles, numHandles);
-+ if (objects) {
-+ nssCryptokiObject **op;
-+ for (op = objects; *op; op++) {
-+ status = (*callback)(*op, arg);
-+ }
-+ nss_ZFreeIf(objects);
-+ }
-+ }
-+ nssArena_Destroy(arena);
-+ return PR_SUCCESS;
-+loser:
-+ nssArena_Destroy(arena);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT PRBool
-+nssToken_IsPrivateKeyAvailable (
-+ NSSToken *token,
-+ NSSCertificate *c,
-+ nssCryptokiObject *instance
-+)
-+{
-+ CK_OBJECT_CLASS theClass;
-+
-+ if (token == NULL) return PR_FALSE;
-+ if (c == NULL) return PR_FALSE;
-+
-+ theClass = CKO_PRIVATE_KEY;
-+ if (!nssSlot_IsLoggedIn(token->slot)) {
-+ theClass = CKO_PUBLIC_KEY;
-+ }
-+ if (PK11_MatchItem(token->pk11slot, instance->handle, theClass)
-+ != CK_INVALID_HANDLE) {
-+ return PR_TRUE;
-+ }
-+ return PR_FALSE;
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/devutil.c 2004-12-13 13:06:46.873371256 +0100
-@@ -0,0 +1,1451 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#ifndef DEVM_H
-+#include "devm.h"
-+#endif /* DEVM_H */
-+
-+#ifndef CKHELPER_H
-+#include "ckhelper.h"
-+#endif /* CKHELPER_H */
-+
-+NSS_IMPLEMENT nssCryptokiObject *
-+nssCryptokiObject_Create (
-+ NSSToken *t,
-+ nssSession *session,
-+ CK_OBJECT_HANDLE h
-+)
-+{
-+ PRStatus status;
-+ NSSSlot *slot;
-+ nssCryptokiObject *object;
-+ CK_BBOOL *isTokenObject;
-+ CK_ATTRIBUTE cert_template[] = {
-+ { CKA_TOKEN, NULL, 0 },
-+ { CKA_LABEL, NULL, 0 }
-+ };
-+ slot = nssToken_GetSlot(t);
-+ status = nssCKObject_GetAttributes(h, cert_template, 2,
-+ NULL, session, slot);
-+ nssSlot_Destroy(slot);
-+ if (status != PR_SUCCESS) {
-+ /* a failure here indicates a device error */
-+ return (nssCryptokiObject *)NULL;
-+ }
-+ object = nss_ZNEW(NULL, nssCryptokiObject);
-+ if (!object) {
-+ return (nssCryptokiObject *)NULL;
-+ }
-+ object->handle = h;
-+ object->token = nssToken_AddRef(t);
-+ isTokenObject = (CK_BBOOL *)cert_template[0].pValue;
-+ object->isTokenObject = *isTokenObject;
-+ nss_ZFreeIf(isTokenObject);
-+ NSS_CK_ATTRIBUTE_TO_UTF8(&cert_template[1], object->label);
-+ return object;
-+}
-+
-+NSS_IMPLEMENT void
-+nssCryptokiObject_Destroy (
-+ nssCryptokiObject *object
-+)
-+{
-+ if (object) {
-+ nssToken_Destroy(object->token);
-+ nss_ZFreeIf(object->label);
-+ nss_ZFreeIf(object);
-+ }
-+}
-+
-+NSS_IMPLEMENT nssCryptokiObject *
-+nssCryptokiObject_Clone (
-+ nssCryptokiObject *object
-+)
-+{
-+ nssCryptokiObject *rvObject;
-+ rvObject = nss_ZNEW(NULL, nssCryptokiObject);
-+ if (rvObject) {
-+ rvObject->handle = object->handle;
-+ rvObject->token = nssToken_AddRef(object->token);
-+ rvObject->isTokenObject = object->isTokenObject;
-+ if (object->label) {
-+ rvObject->label = nssUTF8_Duplicate(object->label, NULL);
-+ }
-+ }
-+ return rvObject;
-+}
-+
-+NSS_EXTERN PRBool
-+nssCryptokiObject_Equal (
-+ nssCryptokiObject *o1,
-+ nssCryptokiObject *o2
-+)
-+{
-+ return (o1->token == o2->token && o1->handle == o2->handle);
-+}
-+
-+NSS_IMPLEMENT PRUint32
-+nssPKCS11String_Length(CK_CHAR *pkcs11Str, PRUint32 bufLen)
-+{
-+ PRInt32 i;
-+ for (i = bufLen - 1; i>=0; ) {
-+ if (pkcs11Str[i] != ' ' && pkcs11Str[i] != '\0') break;
-+ --i;
-+ }
-+ return (PRUint32)(i + 1);
-+}
-+
-+/*
-+ * Slot arrays
-+ */
-+
-+NSS_IMPLEMENT NSSSlot **
-+nssSlotArray_Clone (
-+ NSSSlot **slots
-+)
-+{
-+ NSSSlot **rvSlots = NULL;
-+ NSSSlot **sp = slots;
-+ PRUint32 count = 0;
-+ while (sp && *sp) count++;
-+ if (count > 0) {
-+ rvSlots = nss_ZNEWARRAY(NULL, NSSSlot *, count + 1);
-+ if (rvSlots) {
-+ sp = slots;
-+ count = 0;
-+ for (sp = slots; *sp; sp++) {
-+ rvSlots[count++] = nssSlot_AddRef(*sp);
-+ }
-+ }
-+ }
-+ return rvSlots;
-+}
-+
-+#ifdef PURE_STAN_BUILD
-+NSS_IMPLEMENT void
-+nssModuleArray_Destroy (
-+ NSSModule **modules
-+)
-+{
-+ if (modules) {
-+ NSSModule **mp;
-+ for (mp = modules; *mp; mp++) {
-+ nssModule_Destroy(*mp);
-+ }
-+ nss_ZFreeIf(modules);
-+ }
-+}
-+#endif
-+
-+NSS_IMPLEMENT void
-+nssSlotArray_Destroy (
-+ NSSSlot **slots
-+)
-+{
-+ if (slots) {
-+ NSSSlot **slotp;
-+ for (slotp = slots; *slotp; slotp++) {
-+ nssSlot_Destroy(*slotp);
-+ }
-+ nss_ZFreeIf(slots);
-+ }
-+}
-+
-+NSS_IMPLEMENT void
-+NSSSlotArray_Destroy (
-+ NSSSlot **slots
-+)
-+{
-+ nssSlotArray_Destroy(slots);
-+}
-+
-+NSS_IMPLEMENT void
-+nssTokenArray_Destroy (
-+ NSSToken **tokens
-+)
-+{
-+ if (tokens) {
-+ NSSToken **tokenp;
-+ for (tokenp = tokens; *tokenp; tokenp++) {
-+ nssToken_Destroy(*tokenp);
-+ }
-+ nss_ZFreeIf(tokens);
-+ }
-+}
-+
-+NSS_IMPLEMENT void
-+NSSTokenArray_Destroy (
-+ NSSToken **tokens
-+)
-+{
-+ nssTokenArray_Destroy(tokens);
-+}
-+
-+NSS_IMPLEMENT void
-+nssCryptokiObjectArray_Destroy (
-+ nssCryptokiObject **objects
-+)
-+{
-+ if (objects) {
-+ nssCryptokiObject **op;
-+ for (op = objects; *op; op++) {
-+ nssCryptokiObject_Destroy(*op);
-+ }
-+ nss_ZFreeIf(objects);
-+ }
-+}
-+
-+#ifdef PURE_STAN_BUILD
-+/*
-+ * Slot lists
-+ */
-+
-+struct nssSlotListNodeStr
-+{
-+ PRCList link;
-+ NSSSlot *slot;
-+ PRUint32 order;
-+};
-+
-+/* XXX separate slots with non-present tokens? */
-+struct nssSlotListStr
-+{
-+ NSSArena *arena;
-+ PRBool i_allocated_arena;
-+ PZLock *lock;
-+ PRCList head;
-+ PRUint32 count;
-+};
-+
-+NSS_IMPLEMENT nssSlotList *
-+nssSlotList_Create (
-+ NSSArena *arenaOpt
-+)
-+{
-+ nssSlotList *rvList;
-+ NSSArena *arena;
-+ nssArenaMark *mark;
-+ if (arenaOpt) {
-+ arena = arenaOpt;
-+ mark = nssArena_Mark(arena);
-+ if (!mark) {
-+ return (nssSlotList *)NULL;
-+ }
-+ } else {
-+ arena = nssArena_Create();
-+ if (!arena) {
-+ return (nssSlotList *)NULL;
-+ }
-+ }
-+ rvList = nss_ZNEW(arena, nssSlotList);
-+ if (!rvList) {
-+ goto loser;
-+ }
-+ rvList->lock = PZ_NewLock(nssILockOther); /* XXX */
-+ if (!rvList->lock) {
-+ goto loser;
-+ }
-+ PR_INIT_CLIST(&rvList->head);
-+ rvList->arena = arena;
-+ rvList->i_allocated_arena = (arenaOpt == NULL);
-+ nssArena_Unmark(arena, mark);
-+ return rvList;
-+loser:
-+ if (arenaOpt) {
-+ nssArena_Release(arena, mark);
-+ } else {
-+ nssArena_Destroy(arena);
-+ }
-+ return (nssSlotList *)NULL;
-+}
-+
-+NSS_IMPLEMENT void
-+nssSlotList_Destroy (
-+ nssSlotList *slotList
-+)
-+{
-+ PRCList *link;
-+ struct nssSlotListNodeStr *node;
-+ if (slotList) {
-+ link = PR_NEXT_LINK(&slotList->head);
-+ while (link != &slotList->head) {
-+ node = (struct nssSlotListNodeStr *)link;
-+ nssSlot_Destroy(node->slot);
-+ link = PR_NEXT_LINK(link);
-+ }
-+ if (slotList->i_allocated_arena) {
-+ nssArena_Destroy(slotList->arena);
-+ }
-+ }
-+}
-+
-+/* XXX should do allocs outside of lock */
-+NSS_IMPLEMENT PRStatus
-+nssSlotList_Add (
-+ nssSlotList *slotList,
-+ NSSSlot *slot,
-+ PRUint32 order
-+)
-+{
-+ PRCList *link;
-+ struct nssSlotListNodeStr *node;
-+ PZ_Lock(slotList->lock);
-+ link = PR_NEXT_LINK(&slotList->head);
-+ while (link != &slotList->head) {
-+ node = (struct nssSlotListNodeStr *)link;
-+ if (order < node->order) {
-+ break;
-+ }
-+ link = PR_NEXT_LINK(link);
-+ }
-+ node = nss_ZNEW(slotList->arena, struct nssSlotListNodeStr);
-+ if (!node) {
-+ return PR_FAILURE;
-+ }
-+ PR_INIT_CLIST(&node->link);
-+ node->slot = nssSlot_AddRef(slot);
-+ node->order = order;
-+ PR_INSERT_AFTER(&node->link, link);
-+ slotList->count++;
-+ PZ_Unlock(slotList->lock);
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssSlotList_AddModuleSlots (
-+ nssSlotList *slotList,
-+ NSSModule *module,
-+ PRUint32 order
-+)
-+{
-+ nssArenaMark *mark = NULL;
-+ NSSSlot **sp, **slots = NULL;
-+ PRCList *link;
-+ struct nssSlotListNodeStr *node;
-+ PZ_Lock(slotList->lock);
-+ link = PR_NEXT_LINK(&slotList->head);
-+ while (link != &slotList->head) {
-+ node = (struct nssSlotListNodeStr *)link;
-+ if (order < node->order) {
-+ break;
-+ }
-+ link = PR_NEXT_LINK(link);
-+ }
-+ slots = nssModule_GetSlots(module);
-+ if (!slots) {
-+ PZ_Unlock(slotList->lock);
-+ return PR_SUCCESS;
-+ }
-+ mark = nssArena_Mark(slotList->arena);
-+ if (!mark) {
-+ goto loser;
-+ }
-+ for (sp = slots; *sp; sp++) {
-+ node = nss_ZNEW(slotList->arena, struct nssSlotListNodeStr);
-+ if (!node) {
-+ goto loser;
-+ }
-+ PR_INIT_CLIST(&node->link);
-+ node->slot = *sp; /* have ref from nssModule_GetSlots */
-+ node->order = order;
-+ PR_INSERT_AFTER(&node->link, link);
-+ slotList->count++;
-+ }
-+ PZ_Unlock(slotList->lock);
-+ nssArena_Unmark(slotList->arena, mark);
-+ return PR_SUCCESS;
-+loser:
-+ PZ_Unlock(slotList->lock);
-+ if (mark) {
-+ nssArena_Release(slotList->arena, mark);
-+ }
-+ if (slots) {
-+ nssSlotArray_Destroy(slots);
-+ }
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT NSSSlot **
-+nssSlotList_GetSlots (
-+ nssSlotList *slotList
-+)
-+{
-+ PRUint32 i;
-+ PRCList *link;
-+ struct nssSlotListNodeStr *node;
-+ NSSSlot **rvSlots = NULL;
-+ PZ_Lock(slotList->lock);
-+ rvSlots = nss_ZNEWARRAY(NULL, NSSSlot *, slotList->count + 1);
-+ if (!rvSlots) {
-+ PZ_Unlock(slotList->lock);
-+ return (NSSSlot **)NULL;
-+ }
-+ i = 0;
-+ link = PR_NEXT_LINK(&slotList->head);
-+ while (link != &slotList->head) {
-+ node = (struct nssSlotListNodeStr *)link;
-+ rvSlots[i] = nssSlot_AddRef(node->slot);
-+ link = PR_NEXT_LINK(link);
-+ i++;
-+ }
-+ PZ_Unlock(slotList->lock);
-+ return rvSlots;
-+}
-+
-+#if 0
-+NSS_IMPLEMENT NSSSlot *
-+nssSlotList_GetBestSlotForAlgorithmAndParameters (
-+ nssSlotList *slotList,
-+ NSSAlgorithmAndParameters *ap
-+)
-+{
-+ PRCList *link;
-+ struct nssSlotListNodeStr *node;
-+ NSSSlot *rvSlot = NULL;
-+ PZ_Lock(slotList->lock);
-+ link = PR_NEXT_LINK(&slotList->head);
-+ while (link != &slotList->head) {
-+ node = (struct nssSlotListNodeStr *)link;
-+ if (nssSlot_DoesAlgorithmAndParameters(ap)) {
-+ rvSlot = nssSlot_AddRef(node->slot); /* XXX check isPresent? */
-+ }
-+ link = PR_NEXT_LINK(link);
-+ }
-+ PZ_Unlock(slotList->lock);
-+ return rvSlot;
-+}
-+#endif
-+
-+NSS_IMPLEMENT NSSSlot *
-+nssSlotList_GetBestSlot (
-+ nssSlotList *slotList
-+)
-+{
-+ PRCList *link;
-+ struct nssSlotListNodeStr *node;
-+ NSSSlot *rvSlot = NULL;
-+ PZ_Lock(slotList->lock);
-+ if (PR_CLIST_IS_EMPTY(&slotList->head)) {
-+ PZ_Unlock(slotList->lock);
-+ return (NSSSlot *)NULL;
-+ }
-+ link = PR_NEXT_LINK(&slotList->head);
-+ node = (struct nssSlotListNodeStr *)link;
-+ rvSlot = nssSlot_AddRef(node->slot); /* XXX check isPresent? */
-+ PZ_Unlock(slotList->lock);
-+ return rvSlot;
-+}
-+
-+NSS_IMPLEMENT NSSSlot *
-+nssSlotList_FindSlotByName (
-+ nssSlotList *slotList,
-+ NSSUTF8 *slotName
-+)
-+{
-+ PRCList *link;
-+ struct nssSlotListNodeStr *node;
-+ NSSSlot *rvSlot = NULL;
-+ PZ_Lock(slotList->lock);
-+ link = PR_NEXT_LINK(&slotList->head);
-+ while (link != &slotList->head) {
-+ NSSUTF8 *sName;
-+ node = (struct nssSlotListNodeStr *)link;
-+ sName = nssSlot_GetName(node->slot);
-+ if (nssUTF8_Equal(sName, slotName, NULL)) {
-+ rvSlot = nssSlot_AddRef(node->slot);
-+ break;
-+ }
-+ link = PR_NEXT_LINK(link);
-+ }
-+ PZ_Unlock(slotList->lock);
-+ return rvSlot;
-+}
-+
-+NSS_IMPLEMENT NSSToken *
-+nssSlotList_FindTokenByName (
-+ nssSlotList *slotList,
-+ NSSUTF8 *tokenName
-+)
-+{
-+ PRCList *link;
-+ struct nssSlotListNodeStr *node;
-+ NSSToken *rvToken = NULL;
-+ PZ_Lock(slotList->lock);
-+ link = PR_NEXT_LINK(&slotList->head);
-+ while (link != &slotList->head) {
-+ NSSUTF8 *tName;
-+ node = (struct nssSlotListNodeStr *)link;
-+ tName = nssSlot_GetTokenName(node->slot);
-+ if (nssUTF8_Equal(tName, tokenName, NULL)) {
-+ rvToken = nssSlot_GetToken(node->slot);
-+ break;
-+ }
-+ link = PR_NEXT_LINK(link);
-+ }
-+ PZ_Unlock(slotList->lock);
-+ return rvToken;
-+}
-+#endif /* PURE_STAN_BUILD */
-+
-+/* object cache for token */
-+
-+typedef struct
-+{
-+ NSSArena *arena;
-+ nssCryptokiObject *object;
-+ CK_ATTRIBUTE_PTR attributes;
-+ CK_ULONG numAttributes;
-+}
-+nssCryptokiObjectAndAttributes;
-+
-+enum {
-+ cachedCerts = 0,
-+ cachedTrust = 1,
-+ cachedCRLs = 2
-+} cachedObjectType;
-+
-+struct nssTokenObjectCacheStr
-+{
-+ NSSToken *token;
-+ PZLock *lock;
-+ PRBool loggedIn;
-+ PRBool doObjectType[3];
-+ PRBool searchedObjectType[3];
-+ nssCryptokiObjectAndAttributes **objects[3];
-+};
-+
-+NSS_IMPLEMENT nssTokenObjectCache *
-+nssTokenObjectCache_Create (
-+ NSSToken *token,
-+ PRBool cacheCerts,
-+ PRBool cacheTrust,
-+ PRBool cacheCRLs
-+)
-+{
-+ nssTokenObjectCache *rvCache;
-+ rvCache = nss_ZNEW(NULL, nssTokenObjectCache);
-+ if (!rvCache) {
-+ goto loser;
-+ }
-+ rvCache->lock = PZ_NewLock(nssILockOther); /* XXX */
-+ if (!rvCache->lock) {
-+ goto loser;
-+ }
-+ rvCache->doObjectType[cachedCerts] = cacheCerts;
-+ rvCache->doObjectType[cachedTrust] = cacheTrust;
-+ rvCache->doObjectType[cachedCRLs] = cacheCRLs;
-+ rvCache->token = token; /* cache goes away with token */
-+ return rvCache;
-+loser:
-+ return (nssTokenObjectCache *)NULL;
-+}
-+
-+static void
-+clear_cache (
-+ nssTokenObjectCache *cache
-+)
-+{
-+ nssCryptokiObjectAndAttributes **oa;
-+ PRUint32 objectType;
-+ for (objectType = cachedCerts; objectType <= cachedCRLs; objectType++) {
-+ if (!cache->objects[objectType]) {
-+ continue;
-+ }
-+ for (oa = cache->objects[objectType]; *oa; oa++) {
-+ /* prevent the token from being destroyed */
-+ (*oa)->object->token = NULL;
-+ nssCryptokiObject_Destroy((*oa)->object);
-+ nssArena_Destroy((*oa)->arena);
-+ }
-+ nss_ZFreeIf(cache->objects[objectType]);
-+ cache->objects[objectType] = NULL;
-+ cache->searchedObjectType[objectType] = PR_FALSE;
-+ }
-+}
-+
-+NSS_IMPLEMENT void
-+nssTokenObjectCache_Clear (
-+ nssTokenObjectCache *cache
-+)
-+{
-+ if (cache) {
-+ PZ_Lock(cache->lock);
-+ clear_cache(cache);
-+ PZ_Unlock(cache->lock);
-+ }
-+}
-+
-+NSS_IMPLEMENT void
-+nssTokenObjectCache_Destroy (
-+ nssTokenObjectCache *cache
-+)
-+{
-+ if (cache) {
-+ clear_cache(cache);
-+ PZ_DestroyLock(cache->lock);
-+ nss_ZFreeIf(cache);
-+ }
-+}
-+
-+NSS_IMPLEMENT PRBool
-+nssTokenObjectCache_HaveObjectClass (
-+ nssTokenObjectCache *cache,
-+ CK_OBJECT_CLASS objclass
-+)
-+{
-+ PRBool haveIt;
-+ PZ_Lock(cache->lock);
-+ switch (objclass) {
-+ case CKO_CERTIFICATE: haveIt = cache->doObjectType[cachedCerts]; break;
-+ case CKO_NETSCAPE_TRUST: haveIt = cache->doObjectType[cachedTrust]; break;
-+ case CKO_NETSCAPE_CRL: haveIt = cache->doObjectType[cachedCRLs]; break;
-+ default: haveIt = PR_FALSE;
-+ }
-+ PZ_Unlock(cache->lock);
-+ return haveIt;
-+}
-+
-+static nssCryptokiObjectAndAttributes **
-+create_object_array (
-+ nssCryptokiObject **objects,
-+ PRBool *doObjects,
-+ PRUint32 *numObjects,
-+ PRStatus *status
-+)
-+{
-+ nssCryptokiObjectAndAttributes **rvOandA = NULL;
-+ *numObjects = 0;
-+ /* There are no objects for this type */
-+ if (!objects || !*objects) {
-+ *status = PR_SUCCESS;
-+ return rvOandA;
-+ }
-+ while (*objects++) (*numObjects)++;
-+ if (*numObjects >= MAX_LOCAL_CACHE_OBJECTS) {
-+ /* Hit the maximum allowed, so don't use a cache (there are
-+ * too many objects to make caching worthwhile, presumably, if
-+ * the token can handle that many objects, it can handle searching.
-+ */
-+ *doObjects = PR_FALSE;
-+ *status = PR_FAILURE;
-+ *numObjects = 0;
-+ } else {
-+ rvOandA = nss_ZNEWARRAY(NULL,
-+ nssCryptokiObjectAndAttributes *,
-+ *numObjects + 1);
-+ *status = rvOandA ? PR_SUCCESS : PR_FAILURE;
-+ }
-+ return rvOandA;
-+}
-+
-+static nssCryptokiObjectAndAttributes *
-+create_object (
-+ nssCryptokiObject *object,
-+ const CK_ATTRIBUTE_TYPE *types,
-+ PRUint32 numTypes,
-+ PRStatus *status
-+)
-+{
-+ PRUint32 j;
-+ NSSArena *arena;
-+ NSSSlot *slot = NULL;
-+ nssSession *session = NULL;
-+ nssCryptokiObjectAndAttributes *rvCachedObject = NULL;
-+
-+ slot = nssToken_GetSlot(object->token);
-+ session = nssToken_GetDefaultSession(object->token);
-+
-+ arena = nssArena_Create();
-+ if (!arena) {
-+ goto loser;
-+ }
-+ rvCachedObject = nss_ZNEW(arena, nssCryptokiObjectAndAttributes);
-+ if (!rvCachedObject) {
-+ goto loser;
-+ }
-+ rvCachedObject->arena = arena;
-+ /* The cache is tied to the token, and therefore the objects
-+ * in it should not hold references to the token.
-+ */
-+ nssToken_Destroy(object->token);
-+ rvCachedObject->object = object;
-+ rvCachedObject->attributes = nss_ZNEWARRAY(arena, CK_ATTRIBUTE, numTypes);
-+ if (!rvCachedObject->attributes) {
-+ goto loser;
-+ }
-+ for (j=0; j<numTypes; j++) {
-+ rvCachedObject->attributes[j].type = types[j];
-+ }
-+ *status = nssCKObject_GetAttributes(object->handle,
-+ rvCachedObject->attributes,
-+ numTypes,
-+ arena,
-+ session,
-+ slot);
-+ if (*status != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ rvCachedObject->numAttributes = numTypes;
-+ *status = PR_SUCCESS;
-+ if (slot) {
-+ nssSlot_Destroy(slot);
-+ }
-+ return rvCachedObject;
-+loser:
-+ *status = PR_FAILURE;
-+ if (slot) {
-+ nssSlot_Destroy(slot);
-+ }
-+ if (arena)
-+ nssArena_Destroy(arena);
-+ return (nssCryptokiObjectAndAttributes *)NULL;
-+}
-+
-+/*
-+ *
-+ * State diagram for cache:
-+ *
-+ * token !present token removed
-+ * +-------------------------+<----------------------+
-+ * | ^ |
-+ * v | |
-+ * +----------+ slot friendly | token present +----------+
-+ * | cache | -----------------> % ---------------> | cache |
-+ * | unloaded | | loaded |
-+ * +----------+ +----------+
-+ * ^ | ^ |
-+ * | | slot !friendly slot logged in | |
-+ * | +-----------------------> % ----------------------+ |
-+ * | | |
-+ * | slot logged out v slot !friendly |
-+ * +-----------------------------+<--------------------------+
-+ *
-+ */
-+
-+/* This function must not be called with cache->lock locked. */
-+static PRBool
-+token_is_present (
-+ nssTokenObjectCache *cache
-+)
-+{
-+ NSSSlot *slot = nssToken_GetSlot(cache->token);
-+ PRBool tokenPresent = nssSlot_IsTokenPresent(slot);
-+ nssSlot_Destroy(slot);
-+ return tokenPresent;
-+}
-+
-+static PRBool
-+search_for_objects (
-+ nssTokenObjectCache *cache
-+)
-+{
-+ PRBool doSearch = PR_FALSE;
-+ NSSSlot *slot = nssToken_GetSlot(cache->token);
-+ /* Handle non-friendly slots (slots which require login for objects) */
-+ if (!nssSlot_IsFriendly(slot)) {
-+ if (nssSlot_IsLoggedIn(slot)) {
-+ /* Either no state change, or went from !logged in -> logged in */
-+ cache->loggedIn = PR_TRUE;
-+ doSearch = PR_TRUE;
-+ } else {
-+ if (cache->loggedIn) {
-+ /* went from logged in -> !logged in, destroy cached objects */
-+ clear_cache(cache);
-+ cache->loggedIn = PR_FALSE;
-+ } /* else no state change, still not logged in, so exit */
-+ }
-+ } else {
-+ /* slot is friendly, thus always available for search */
-+ doSearch = PR_TRUE;
-+ }
-+ nssSlot_Destroy(slot);
-+ return doSearch;
-+}
-+
-+static nssCryptokiObjectAndAttributes *
-+create_cert (
-+ nssCryptokiObject *object,
-+ PRStatus *status
-+)
-+{
-+ static const CK_ATTRIBUTE_TYPE certAttr[] = {
-+ CKA_CLASS,
-+ CKA_TOKEN,
-+ CKA_LABEL,
-+ CKA_CERTIFICATE_TYPE,
-+ CKA_ID,
-+ CKA_VALUE,
-+ CKA_ISSUER,
-+ CKA_SERIAL_NUMBER,
-+ CKA_SUBJECT,
-+ CKA_NETSCAPE_EMAIL
-+ };
-+ static const PRUint32 numCertAttr = sizeof(certAttr) / sizeof(certAttr[0]);
-+ return create_object(object, certAttr, numCertAttr, status);
-+}
-+
-+static PRStatus
-+get_token_certs_for_cache (
-+ nssTokenObjectCache *cache
-+)
-+{
-+ PRStatus status;
-+ nssCryptokiObject **objects;
-+ PRBool *doIt = &cache->doObjectType[cachedCerts];
-+ PRUint32 i, numObjects;
-+
-+ if (!search_for_objects(cache) ||
-+ cache->searchedObjectType[cachedCerts] ||
-+ !cache->doObjectType[cachedCerts])
-+ {
-+ /* Either there was a state change that prevents a search
-+ * (token logged out), or the search was already done,
-+ * or certs are not being cached.
-+ */
-+ return PR_SUCCESS;
-+ }
-+ objects = nssToken_FindCertificates(cache->token, NULL,
-+ nssTokenSearchType_TokenForced,
-+ MAX_LOCAL_CACHE_OBJECTS, &status);
-+ if (status != PR_SUCCESS) {
-+ return status;
-+ }
-+ cache->objects[cachedCerts] = create_object_array(objects,
-+ doIt,
-+ &numObjects,
-+ &status);
-+ if (status != PR_SUCCESS) {
-+ return status;
-+ }
-+ for (i=0; i<numObjects; i++) {
-+ cache->objects[cachedCerts][i] = create_cert(objects[i], &status);
-+ if (status != PR_SUCCESS) {
-+ break;
-+ }
-+ }
-+ if (status == PR_SUCCESS) {
-+ nss_ZFreeIf(objects);
-+ } else {
-+ PRUint32 j;
-+ for (j=0; j<i; j++) {
-+ /* sigh */
-+ nssToken_AddRef(cache->objects[cachedCerts][j]->object->token);
-+ nssArena_Destroy(cache->objects[cachedCerts][j]->arena);
-+ }
-+ nssCryptokiObjectArray_Destroy(objects);
-+ }
-+ cache->searchedObjectType[cachedCerts] = PR_TRUE;
-+ return status;
-+}
-+
-+static nssCryptokiObjectAndAttributes *
-+create_trust (
-+ nssCryptokiObject *object,
-+ PRStatus *status
-+)
-+{
-+ static const CK_ATTRIBUTE_TYPE trustAttr[] = {
-+ CKA_CLASS,
-+ CKA_TOKEN,
-+ CKA_LABEL,
-+ CKA_CERT_SHA1_HASH,
-+ CKA_CERT_MD5_HASH,
-+ CKA_ISSUER,
-+ CKA_SUBJECT,
-+ CKA_TRUST_SERVER_AUTH,
-+ CKA_TRUST_CLIENT_AUTH,
-+ CKA_TRUST_EMAIL_PROTECTION,
-+ CKA_TRUST_CODE_SIGNING
-+ };
-+ static const PRUint32 numTrustAttr = sizeof(trustAttr) / sizeof(trustAttr[0]);
-+ return create_object(object, trustAttr, numTrustAttr, status);
-+}
-+
-+static PRStatus
-+get_token_trust_for_cache (
-+ nssTokenObjectCache *cache
-+)
-+{
-+ PRStatus status;
-+ nssCryptokiObject **objects;
-+ PRBool *doIt = &cache->doObjectType[cachedTrust];
-+ PRUint32 i, numObjects;
-+
-+ if (!search_for_objects(cache) ||
-+ cache->searchedObjectType[cachedTrust] ||
-+ !cache->doObjectType[cachedTrust])
-+ {
-+ /* Either there was a state change that prevents a search
-+ * (token logged out), or the search was already done,
-+ * or trust is not being cached.
-+ */
-+ return PR_SUCCESS;
-+ }
-+ objects = nssToken_FindTrustObjects(cache->token, NULL,
-+ nssTokenSearchType_TokenForced,
-+ MAX_LOCAL_CACHE_OBJECTS, &status);
-+ if (status != PR_SUCCESS) {
-+ return status;
-+ }
-+ cache->objects[cachedTrust] = create_object_array(objects,
-+ doIt,
-+ &numObjects,
-+ &status);
-+ if (status != PR_SUCCESS) {
-+ return status;
-+ }
-+ for (i=0; i<numObjects; i++) {
-+ cache->objects[cachedTrust][i] = create_trust(objects[i], &status);
-+ if (status != PR_SUCCESS) {
-+ break;
-+ }
-+ }
-+ if (status == PR_SUCCESS) {
-+ nss_ZFreeIf(objects);
-+ } else {
-+ PRUint32 j;
-+ for (j=0; j<i; j++) {
-+ /* sigh */
-+ nssToken_AddRef(cache->objects[cachedTrust][j]->object->token);
-+ nssArena_Destroy(cache->objects[cachedTrust][j]->arena);
-+ }
-+ nssCryptokiObjectArray_Destroy(objects);
-+ }
-+ cache->searchedObjectType[cachedTrust] = PR_TRUE;
-+ return status;
-+}
-+
-+static nssCryptokiObjectAndAttributes *
-+create_crl (
-+ nssCryptokiObject *object,
-+ PRStatus *status
-+)
-+{
-+ static const CK_ATTRIBUTE_TYPE crlAttr[] = {
-+ CKA_CLASS,
-+ CKA_TOKEN,
-+ CKA_LABEL,
-+ CKA_VALUE,
-+ CKA_SUBJECT,
-+ CKA_NETSCAPE_KRL,
-+ CKA_NETSCAPE_URL
-+ };
-+ static const PRUint32 numCRLAttr = sizeof(crlAttr) / sizeof(crlAttr[0]);
-+ return create_object(object, crlAttr, numCRLAttr, status);
-+}
-+
-+static PRStatus
-+get_token_crls_for_cache (
-+ nssTokenObjectCache *cache
-+)
-+{
-+ PRStatus status;
-+ nssCryptokiObject **objects;
-+ PRBool *doIt = &cache->doObjectType[cachedCRLs];
-+ PRUint32 i, numObjects;
-+
-+ if (!search_for_objects(cache) ||
-+ cache->searchedObjectType[cachedCRLs] ||
-+ !cache->doObjectType[cachedCRLs])
-+ {
-+ /* Either there was a state change that prevents a search
-+ * (token logged out), or the search was already done,
-+ * or CRLs are not being cached.
-+ */
-+ return PR_SUCCESS;
-+ }
-+ objects = nssToken_FindCRLs(cache->token, NULL,
-+ nssTokenSearchType_TokenForced,
-+ MAX_LOCAL_CACHE_OBJECTS, &status);
-+ if (status != PR_SUCCESS) {
-+ return status;
-+ }
-+ cache->objects[cachedCRLs] = create_object_array(objects,
-+ doIt,
-+ &numObjects,
-+ &status);
-+ if (status != PR_SUCCESS) {
-+ return status;
-+ }
-+ for (i=0; i<numObjects; i++) {
-+ cache->objects[cachedCRLs][i] = create_crl(objects[i], &status);
-+ if (status != PR_SUCCESS) {
-+ break;
-+ }
-+ }
-+ if (status == PR_SUCCESS) {
-+ nss_ZFreeIf(objects);
-+ } else {
-+ PRUint32 j;
-+ for (j=0; j<i; j++) {
-+ /* sigh */
-+ nssToken_AddRef(cache->objects[cachedCRLs][j]->object->token);
-+ nssArena_Destroy(cache->objects[cachedCRLs][j]->arena);
-+ }
-+ nssCryptokiObjectArray_Destroy(objects);
-+ }
-+ cache->searchedObjectType[cachedCRLs] = PR_TRUE;
-+ return status;
-+}
-+
-+static CK_ATTRIBUTE_PTR
-+find_attribute_in_object (
-+ nssCryptokiObjectAndAttributes *obj,
-+ CK_ATTRIBUTE_TYPE attrType
-+)
-+{
-+ PRUint32 j;
-+ for (j=0; j<obj->numAttributes; j++) {
-+ if (attrType == obj->attributes[j].type) {
-+ return &obj->attributes[j];
-+ }
-+ }
-+ return (CK_ATTRIBUTE_PTR)NULL;
-+}
-+
-+/* Find all objects in the array that match the supplied template */
-+static nssCryptokiObject **
-+find_objects_in_array (
-+ nssCryptokiObjectAndAttributes **objArray,
-+ CK_ATTRIBUTE_PTR ot,
-+ CK_ULONG otlen,
-+ PRUint32 maximumOpt
-+)
-+{
-+ PRIntn oi = 0;
-+ PRUint32 i;
-+ NSSArena *arena;
-+ PRUint32 size = 8;
-+ PRUint32 numMatches = 0;
-+ nssCryptokiObject **objects = NULL;
-+ nssCryptokiObjectAndAttributes **matches = NULL;
-+ CK_ATTRIBUTE_PTR attr;
-+
-+ if (!objArray) {
-+ return (nssCryptokiObject **)NULL;
-+ }
-+ arena = nssArena_Create();
-+ if (!arena) {
-+ return (nssCryptokiObject **)NULL;
-+ }
-+ matches = nss_ZNEWARRAY(arena, nssCryptokiObjectAndAttributes *, size);
-+ if (!matches) {
-+ goto loser;
-+ }
-+ if (maximumOpt == 0) maximumOpt = ~0;
-+ /* loop over the cached objects */
-+ for (; *objArray && numMatches < maximumOpt; objArray++) {
-+ nssCryptokiObjectAndAttributes *obj = *objArray;
-+ /* loop over the test template */
-+ for (i=0; i<otlen; i++) {
-+ /* see if the object has the attribute */
-+ attr = find_attribute_in_object(obj, ot[i].type);
-+ if (!attr) {
-+ /* nope, match failed */
-+ break;
-+ }
-+ /* compare the attribute against the test value */
-+ if (ot[i].ulValueLen != attr->ulValueLen ||
-+ !nsslibc_memequal(ot[i].pValue,
-+ attr->pValue,
-+ attr->ulValueLen, NULL))
-+ {
-+ /* nope, match failed */
-+ break;
-+ }
-+ }
-+ if (i == otlen) {
-+ /* all of the attributes in the test template were found
-+ * in the object's template, and they all matched
-+ */
-+ matches[numMatches++] = obj;
-+ if (numMatches == size) {
-+ size *= 2;
-+ matches = nss_ZREALLOCARRAY(matches,
-+ nssCryptokiObjectAndAttributes *,
-+ size);
-+ if (!matches) {
-+ goto loser;
-+ }
-+ }
-+ }
-+ }
-+ if (numMatches > 0) {
-+ objects = nss_ZNEWARRAY(NULL, nssCryptokiObject *, numMatches + 1);
-+ if (!objects) {
-+ goto loser;
-+ }
-+ for (oi=0; oi<(PRIntn)numMatches; oi++) {
-+ objects[oi] = nssCryptokiObject_Clone(matches[oi]->object);
-+ if (!objects[oi]) {
-+ goto loser;
-+ }
-+ }
-+ }
-+ nssArena_Destroy(arena);
-+ return objects;
-+loser:
-+ if (objects) {
-+ for (--oi; oi>=0; --oi) {
-+ nssCryptokiObject_Destroy(objects[oi]);
-+ }
-+ }
-+ nssArena_Destroy(arena);
-+ return (nssCryptokiObject **)NULL;
-+}
-+
-+NSS_IMPLEMENT nssCryptokiObject **
-+nssTokenObjectCache_FindObjectsByTemplate (
-+ nssTokenObjectCache *cache,
-+ CK_OBJECT_CLASS objclass,
-+ CK_ATTRIBUTE_PTR otemplate,
-+ CK_ULONG otlen,
-+ PRUint32 maximumOpt,
-+ PRStatus *statusOpt
-+)
-+{
-+ PRStatus status = PR_FAILURE;
-+ nssCryptokiObject **rvObjects = NULL;
-+ if (!token_is_present(cache)) {
-+ status = PR_SUCCESS;
-+ goto finish;
-+ }
-+ PZ_Lock(cache->lock);
-+ switch (objclass) {
-+ case CKO_CERTIFICATE:
-+ if (cache->doObjectType[cachedCerts]) {
-+ status = get_token_certs_for_cache(cache);
-+ if (status != PR_SUCCESS) {
-+ goto unlock;
-+ }
-+ rvObjects = find_objects_in_array(cache->objects[cachedCerts],
-+ otemplate, otlen, maximumOpt);
-+ }
-+ break;
-+ case CKO_NETSCAPE_TRUST:
-+ if (cache->doObjectType[cachedTrust]) {
-+ status = get_token_trust_for_cache(cache);
-+ if (status != PR_SUCCESS) {
-+ goto unlock;
-+ }
-+ rvObjects = find_objects_in_array(cache->objects[cachedTrust],
-+ otemplate, otlen, maximumOpt);
-+ }
-+ break;
-+ case CKO_NETSCAPE_CRL:
-+ if (cache->doObjectType[cachedCRLs]) {
-+ status = get_token_crls_for_cache(cache);
-+ if (status != PR_SUCCESS) {
-+ goto unlock;
-+ }
-+ rvObjects = find_objects_in_array(cache->objects[cachedCRLs],
-+ otemplate, otlen, maximumOpt);
-+ }
-+ break;
-+ default: break;
-+ }
-+unlock:
-+ PZ_Unlock(cache->lock);
-+finish:
-+ if (statusOpt) {
-+ *statusOpt = status;
-+ }
-+ return rvObjects;
-+}
-+
-+static PRBool
-+cache_available_for_object_type (
-+ nssTokenObjectCache *cache,
-+ PRUint32 objectType
-+)
-+{
-+ if (!cache->doObjectType[objectType]) {
-+ /* not caching this object kind */
-+ return PR_FALSE;
-+ }
-+ if (!cache->searchedObjectType[objectType]) {
-+ /* objects are not cached yet */
-+ return PR_FALSE;
-+ }
-+ if (!search_for_objects(cache)) {
-+ /* not logged in */
-+ return PR_FALSE;
-+ }
-+ return PR_TRUE;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssTokenObjectCache_GetObjectAttributes (
-+ nssTokenObjectCache *cache,
-+ NSSArena *arenaOpt,
-+ nssCryptokiObject *object,
-+ CK_OBJECT_CLASS objclass,
-+ CK_ATTRIBUTE_PTR atemplate,
-+ CK_ULONG atlen
-+)
-+{
-+ PRUint32 i, j;
-+ NSSArena *arena = NULL;
-+ nssArenaMark *mark = NULL;
-+ nssCryptokiObjectAndAttributes *cachedOA = NULL;
-+ nssCryptokiObjectAndAttributes **oa = NULL;
-+ PRUint32 objectType;
-+ if (!token_is_present(cache)) {
-+ return PR_FAILURE;
-+ }
-+ PZ_Lock(cache->lock);
-+ switch (objclass) {
-+ case CKO_CERTIFICATE: objectType = cachedCerts; break;
-+ case CKO_NETSCAPE_TRUST: objectType = cachedTrust; break;
-+ case CKO_NETSCAPE_CRL: objectType = cachedCRLs; break;
-+ default: goto loser;
-+ }
-+ if (!cache_available_for_object_type(cache, objectType)) {
-+ goto loser;
-+ }
-+ oa = cache->objects[objectType];
-+ if (!oa) {
-+ goto loser;
-+ }
-+ for (; *oa; oa++) {
-+ if (nssCryptokiObject_Equal((*oa)->object, object)) {
-+ cachedOA = *oa;
-+ break;
-+ }
-+ }
-+ if (!cachedOA) {
-+ goto loser; /* don't have this object */
-+ }
-+ if (arenaOpt) {
-+ arena = arenaOpt;
-+ mark = nssArena_Mark(arena);
-+ }
-+ for (i=0; i<atlen; i++) {
-+ for (j=0; j<cachedOA->numAttributes; j++) {
-+ if (atemplate[i].type == cachedOA->attributes[j].type) {
-+ CK_ATTRIBUTE_PTR attr = &cachedOA->attributes[j];
-+ if (cachedOA->attributes[j].ulValueLen == 0 ||
-+ cachedOA->attributes[j].ulValueLen == (CK_ULONG)-1)
-+ {
-+ break; /* invalid attribute */
-+ }
-+ if (atemplate[i].ulValueLen > 0) {
-+ if (atemplate[i].pValue == NULL ||
-+ atemplate[i].ulValueLen < attr->ulValueLen)
-+ {
-+ goto loser;
-+ }
-+ } else {
-+ atemplate[i].pValue = nss_ZAlloc(arena, attr->ulValueLen);
-+ if (!atemplate[i].pValue) {
-+ goto loser;
-+ }
-+ }
-+ nsslibc_memcpy(atemplate[i].pValue,
-+ attr->pValue, attr->ulValueLen);
-+ atemplate[i].ulValueLen = attr->ulValueLen;
-+ break;
-+ }
-+ }
-+ if (j == cachedOA->numAttributes) {
-+ atemplate[i].ulValueLen = (CK_ULONG)-1;
-+ }
-+ }
-+ PZ_Unlock(cache->lock);
-+ if (mark) {
-+ nssArena_Unmark(arena, mark);
-+ }
-+ return PR_SUCCESS;
-+loser:
-+ PZ_Unlock(cache->lock);
-+ if (mark) {
-+ nssArena_Release(arena, mark);
-+ }
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssTokenObjectCache_ImportObject (
-+ nssTokenObjectCache *cache,
-+ nssCryptokiObject *object,
-+ CK_OBJECT_CLASS objclass,
-+ CK_ATTRIBUTE_PTR ot,
-+ CK_ULONG otlen
-+)
-+{
-+ PRStatus status = PR_SUCCESS;
-+ PRUint32 count;
-+ nssCryptokiObjectAndAttributes **oa, ***otype;
-+ PRUint32 objectType;
-+ PRBool haveIt = PR_FALSE;
-+
-+ if (!token_is_present(cache)) {
-+ return PR_SUCCESS; /* cache not active, ignored */
-+ }
-+ PZ_Lock(cache->lock);
-+ switch (objclass) {
-+ case CKO_CERTIFICATE: objectType = cachedCerts; break;
-+ case CKO_NETSCAPE_TRUST: objectType = cachedTrust; break;
-+ case CKO_NETSCAPE_CRL: objectType = cachedCRLs; break;
-+ default:
-+ PZ_Unlock(cache->lock);
-+ return PR_SUCCESS; /* don't need to import it here */
-+ }
-+ if (!cache_available_for_object_type(cache, objectType)) {
-+ PZ_Unlock(cache->lock);
-+ return PR_SUCCESS; /* cache not active, ignored */
-+ }
-+ count = 0;
-+ otype = &cache->objects[objectType]; /* index into array of types */
-+ oa = *otype; /* the array of objects for this type */
-+ while (oa && *oa) {
-+ if (nssCryptokiObject_Equal((*oa)->object, object)) {
-+ haveIt = PR_TRUE;
-+ break;
-+ }
-+ count++;
-+ oa++;
-+ }
-+ if (haveIt) {
-+ /* Destroy the old entry */
-+ (*oa)->object->token = NULL;
-+ nssCryptokiObject_Destroy((*oa)->object);
-+ nssArena_Destroy((*oa)->arena);
-+ } else {
-+ /* Create space for a new entry */
-+ if (count > 0) {
-+ *otype = nss_ZREALLOCARRAY(*otype,
-+ nssCryptokiObjectAndAttributes *,
-+ count + 2);
-+ } else {
-+ *otype = nss_ZNEWARRAY(NULL, nssCryptokiObjectAndAttributes *, 2);
-+ }
-+ }
-+ if (*otype) {
-+ nssCryptokiObject *copyObject = nssCryptokiObject_Clone(object);
-+ if (objectType == cachedCerts) {
-+ (*otype)[count] = create_cert(copyObject, &status);
-+ } else if (objectType == cachedTrust) {
-+ (*otype)[count] = create_trust(copyObject, &status);
-+ } else if (objectType == cachedCRLs) {
-+ (*otype)[count] = create_crl(copyObject, &status);
-+ }
-+ } else {
-+ status = PR_FAILURE;
-+ }
-+ PZ_Unlock(cache->lock);
-+ return status;
-+}
-+
-+NSS_IMPLEMENT void
-+nssTokenObjectCache_RemoveObject (
-+ nssTokenObjectCache *cache,
-+ nssCryptokiObject *object
-+)
-+{
-+ PRUint32 oType;
-+ nssCryptokiObjectAndAttributes **oa, **swp = NULL;
-+ if (!token_is_present(cache)) {
-+ return;
-+ }
-+ PZ_Lock(cache->lock);
-+ for (oType=0; oType<3; oType++) {
-+ if (!cache_available_for_object_type(cache, oType) ||
-+ !cache->objects[oType])
-+ {
-+ continue;
-+ }
-+ for (oa = cache->objects[oType]; *oa; oa++) {
-+ if (nssCryptokiObject_Equal((*oa)->object, object)) {
-+ swp = oa; /* the entry to remove */
-+ while (oa[1]) oa++; /* go to the tail */
-+ (*swp)->object->token = NULL;
-+ nssCryptokiObject_Destroy((*swp)->object);
-+ nssArena_Destroy((*swp)->arena); /* destroy it */
-+ *swp = *oa; /* swap the last with the removed */
-+ *oa = NULL; /* null-terminate the array */
-+ break;
-+ }
-+ }
-+ if (swp) {
-+ break;
-+ }
-+ }
-+ if ((oType <3) &&
-+ cache->objects[oType] && cache->objects[oType][0] == NULL) {
-+ nss_ZFreeIf(cache->objects[oType]); /* no entries remaining */
-+ cache->objects[oType] = NULL;
-+ }
-+ PZ_Unlock(cache->lock);
-+}
-+
-+/* These two hash algorithms are presently sufficient.
-+** They are used for fingerprints of certs which are stored as the
-+** CKA_CERT_SHA1_HASH and CKA_CERT_MD5_HASH attributes.
-+** We don't need to add SHAxxx to these now.
-+*/
-+/* XXX of course this doesn't belong here */
-+NSS_IMPLEMENT NSSAlgorithmAndParameters *
-+NSSAlgorithmAndParameters_CreateSHA1Digest (
-+ NSSArena *arenaOpt
-+)
-+{
-+ NSSAlgorithmAndParameters *rvAP = NULL;
-+ rvAP = nss_ZNEW(arenaOpt, NSSAlgorithmAndParameters);
-+ if (rvAP) {
-+ rvAP->mechanism.mechanism = CKM_SHA_1;
-+ rvAP->mechanism.pParameter = NULL;
-+ rvAP->mechanism.ulParameterLen = 0;
-+ }
-+ return rvAP;
-+}
-+
-+NSS_IMPLEMENT NSSAlgorithmAndParameters *
-+NSSAlgorithmAndParameters_CreateMD5Digest (
-+ NSSArena *arenaOpt
-+)
-+{
-+ NSSAlgorithmAndParameters *rvAP = NULL;
-+ rvAP = nss_ZNEW(arenaOpt, NSSAlgorithmAndParameters);
-+ if (rvAP) {
-+ rvAP->mechanism.mechanism = CKM_MD5;
-+ rvAP->mechanism.pParameter = NULL;
-+ rvAP->mechanism.ulParameterLen = 0;
-+ }
-+ return rvAP;
-+}
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/dsautil.c 2004-12-13 13:06:46.876370800 +0100
-@@ -0,0 +1,300 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Portions created by Sun Microsystems, Inc. are Copyright (C) 2003
-+ * Sun Microsystems, Inc. All Rights Reserved.
-+ *
-+ * Contributor(s):
-+ * Dr Vipul Gupta <vipul.gupta@sun.com>, Sun Microsystems Laboratories
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+#include "cryptohi.h"
-+#include "secasn1.h"
-+#include "secitem.h"
-+#include "prerr.h"
-+
-+#ifndef DSA_SUBPRIME_LEN
-+#define DSA_SUBPRIME_LEN 20 /* bytes */
-+#endif
-+
-+typedef struct {
-+ SECItem r;
-+ SECItem s;
-+} DSA_ASN1Signature;
-+
-+const SEC_ASN1Template DSA_SignatureTemplate[] =
-+{
-+ { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(DSA_ASN1Signature) },
-+ { SEC_ASN1_INTEGER, offsetof(DSA_ASN1Signature,r) },
-+ { SEC_ASN1_INTEGER, offsetof(DSA_ASN1Signature,s) },
-+ { 0, }
-+};
-+
-+/* Input is variable length multi-byte integer, MSB first (big endian).
-+** Most signficant bit of first byte is NOT treated as a sign bit.
-+** May be one or more leading bytes of zeros.
-+** Output is variable length multi-byte integer, MSB first (big endian).
-+** Most significant bit of first byte will be zero (positive sign bit)
-+** No more than one leading zero byte.
-+** Caller supplies dest buffer, and assures that it is long enough,
-+** e.g. at least one byte longer that src's buffer.
-+*/
-+void
-+DSAU_ConvertUnsignedToSigned(SECItem *dest, SECItem *src)
-+{
-+ unsigned char *pSrc = src->data;
-+ unsigned char *pDst = dest->data;
-+ unsigned int cntSrc = src->len;
-+
-+ /* skip any leading zeros. */
-+ while (cntSrc && !(*pSrc)) {
-+ pSrc++;
-+ cntSrc--;
-+ }
-+ if (!cntSrc) {
-+ *pDst = 0;
-+ dest->len = 1;
-+ return;
-+ }
-+
-+ if (*pSrc & 0x80)
-+ *pDst++ = 0;
-+
-+ PORT_Memcpy(pDst, pSrc, cntSrc);
-+ dest->len = (pDst - dest->data) + cntSrc;
-+}
-+
-+/*
-+** src is a buffer holding a signed variable length integer.
-+** dest is a buffer which will be filled with an unsigned integer,
-+** MSB first (big endian) with leading zeros, so that the last byte
-+** of src will be the LSB of the integer. The result will be exactly
-+** the length specified by the caller in dest->len.
-+** src can be shorter than dest. src can be longer than dst, but only
-+** if the extra leading bytes are zeros.
-+*/
-+SECStatus
-+DSAU_ConvertSignedToFixedUnsigned(SECItem *dest, SECItem *src)
-+{
-+ unsigned char *pSrc = src->data;
-+ unsigned char *pDst = dest->data;
-+ unsigned int cntSrc = src->len;
-+ unsigned int cntDst = dest->len;
-+ int zCount = cntDst - cntSrc;
-+
-+ if (zCount > 0) {
-+ PORT_Memset(pDst, 0, zCount);
-+ PORT_Memcpy(pDst + zCount, pSrc, cntSrc);
-+ return SECSuccess;
-+ }
-+ if (zCount <= 0) {
-+ /* Source is longer than destination. Check for leading zeros. */
-+ while (zCount++ < 0) {
-+ if (*pSrc++ != 0)
-+ goto loser;
-+ }
-+ }
-+ PORT_Memcpy(pDst, pSrc, cntDst);
-+ return SECSuccess;
-+
-+loser:
-+ PORT_SetError( PR_INVALID_ARGUMENT_ERROR );
-+ return SECFailure;
-+}
-+
-+/* src is a "raw" ECDSA or DSA signature, the first half contains r
-+ * and the second half contains s. dest is the DER encoded signature.
-+*/
-+static SECStatus
-+common_EncodeDerSig(SECItem *dest, SECItem *src)
-+{
-+ SECItem * item;
-+ SECItem srcItem;
-+ DSA_ASN1Signature sig;
-+ unsigned char *signedR;
-+ unsigned char *signedS;
-+ unsigned int len;
-+
-+ /* Allocate memory with room for an extra byte that
-+ * may be required if the top bit in the first byte
-+ * is already set.
-+ */
-+ len = src->len/2;
-+ signedR = (unsigned char *) PORT_Alloc(len + 1);
-+ if (!signedR) return SECFailure;
-+ signedS = (unsigned char *) PORT_ZAlloc(len + 1);
-+ if (!signedS) {
-+ if (signedR) PORT_Free(signedR);
-+ return SECFailure;
-+ }
-+
-+ PORT_Memset(&sig, 0, sizeof(sig));
-+
-+ /* Must convert r and s from "unsigned" integers to "signed" integers.
-+ ** If the high order bit of the first byte (MSB) is 1, then must
-+ ** prepend with leading zero.
-+ ** Must remove all but one leading zero byte from numbers.
-+ */
-+ sig.r.type = siUnsignedInteger;
-+ sig.r.data = signedR;
-+ sig.r.len = sizeof signedR;
-+ sig.s.type = siUnsignedInteger;
-+ sig.s.data = signedS;
-+ sig.s.len = sizeof signedR;
-+
-+ srcItem.data = src->data;
-+ srcItem.len = len;
-+
-+ DSAU_ConvertUnsignedToSigned(&sig.r, &srcItem);
-+ srcItem.data += len;
-+ DSAU_ConvertUnsignedToSigned(&sig.s, &srcItem);
-+
-+ item = SEC_ASN1EncodeItem(NULL, dest, &sig, DSA_SignatureTemplate);
-+ if (signedR) PORT_Free(signedR);
-+ if (signedS) PORT_Free(signedS);
-+ if (item == NULL)
-+ return SECFailure;
-+
-+ /* XXX leak item? */
-+ return SECSuccess;
-+}
-+
-+/* src is a DER-encoded ECDSA or DSA signature.
-+** Returns a newly-allocated SECItem structure, pointing at a newly allocated
-+** buffer containing the "raw" signature, which is len bytes of r,
-+** followed by len bytes of s. For DSA, len is always DSA_SUBPRIME_LEN.
-+** For ECDSA, len depends on the key size used to create the signature.
-+*/
-+static SECItem *
-+common_DecodeDerSig(SECItem *item, unsigned int len)
-+{
-+ SECItem * result = NULL;
-+ SECStatus status;
-+ DSA_ASN1Signature sig;
-+ SECItem dst;
-+
-+ PORT_Memset(&sig, 0, sizeof(sig));
-+
-+ result = PORT_ZNew(SECItem);
-+ if (result == NULL)
-+ goto loser;
-+
-+ result->len = 2 * len;
-+ result->data = (unsigned char*)PORT_Alloc(2 * len);
-+ if (result->data == NULL)
-+ goto loser;
-+
-+ sig.r.type = siUnsignedInteger;
-+ sig.s.type = siUnsignedInteger;
-+ status = SEC_ASN1DecodeItem(NULL, &sig, DSA_SignatureTemplate, item);
-+ if (status != SECSuccess)
-+ goto loser;
-+
-+ /* Convert sig.r and sig.s from variable length signed integers to
-+ ** fixed length unsigned integers.
-+ */
-+ dst.data = result->data;
-+ dst.len = len;
-+ status = DSAU_ConvertSignedToFixedUnsigned(&dst, &sig.r);
-+ if (status != SECSuccess)
-+ goto loser;
-+
-+ dst.data += len;
-+ status = DSAU_ConvertSignedToFixedUnsigned(&dst, &sig.s);
-+ if (status != SECSuccess)
-+ goto loser;
-+
-+done:
-+ if (sig.r.data != NULL)
-+ PORT_Free(sig.r.data);
-+ if (sig.s.data != NULL)
-+ PORT_Free(sig.s.data);
-+
-+ return result;
-+
-+loser:
-+ if (result != NULL) {
-+ SECITEM_FreeItem(result, PR_TRUE);
-+ result = NULL;
-+ }
-+ goto done;
-+}
-+
-+/* src is a "raw" DSA signature, 20 bytes of r followed by 20 bytes of s.
-+** dest is the signature DER encoded. ?
-+*/
-+SECStatus
-+DSAU_EncodeDerSig(SECItem *dest, SECItem *src)
-+{
-+ PORT_Assert(src->len == 2 * DSA_SUBPRIME_LEN);
-+ if (src->len != 2 * DSA_SUBPRIME_LEN) {
-+ PORT_SetError( PR_INVALID_ARGUMENT_ERROR );
-+ return SECFailure;
-+ }
-+
-+ return common_EncodeDerSig(dest, src);
-+}
-+
-+/* src is a "raw" DSA signature of length len (len/2 bytes of r followed
-+** by len/2 bytes of s). dest is the signature DER encoded.
-+*/
-+SECStatus
-+DSAU_EncodeDerSigWithLen(SECItem *dest, SECItem *src, unsigned int len)
-+{
-+
-+ PORT_Assert((src->len == len) && (len % 2 == 0));
-+ if ((src->len != len) || (src->len % 2 != 0)) {
-+ PORT_SetError( PR_INVALID_ARGUMENT_ERROR );
-+ return SECFailure;
-+ }
-+
-+ return common_EncodeDerSig(dest, src);
-+}
-+
-+/* src is a DER-encoded DSA signature.
-+** Returns a newly-allocated SECItem structure, pointing at a newly allocated
-+** buffer containing the "raw" DSA signature, which is 20 bytes of r,
-+** followed by 20 bytes of s.
-+*/
-+SECItem *
-+DSAU_DecodeDerSig(SECItem *item)
-+{
-+ return common_DecodeDerSig(item, DSA_SUBPRIME_LEN);
-+}
-+
-+/* src is a DER-encoded ECDSA signature.
-+** Returns a newly-allocated SECItem structure, pointing at a newly allocated
-+** buffer containing the "raw" ECDSA signature of length len containing
-+** r followed by s (both padded to take up exactly len/2 bytes).
-+*/
-+SECItem *
-+DSAU_DecodeDerSigToLen(SECItem *item, unsigned int len)
-+{
-+ return common_DecodeDerSig(item, len/2);
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/ec.h 2004-12-13 15:50:16.190128440 +0100
-@@ -0,0 +1,50 @@
-+/*
-+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
-+ *
-+ * The contents of this file are subject to the Mozilla Public License Version
-+ * 1.1 (the "License"); you may not use this file except in compliance with
-+ * the License. You may obtain a copy of the License at
-+ * http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-+ * for the specific language governing rights and limitations under the
-+ * License.
-+ *
-+ * The Original Code is the Elliptic Curve Cryptography library.
-+ *
-+ * The Initial Developer of the Original Code is Sun Microsystems, Inc.
-+ * Portions created by Sun Microsystems, Inc. are Copyright (C) 2003
-+ * Sun Microsystems, Inc. All Rights Reserved.
-+ *
-+ * Contributor(s):
-+ * Dr Vipul Gupta <vipul.gupta@sun.com>, Sun Microsystems Laboratories
-+ *
-+ * Alternatively, the contents of this file may be used under the terms of
-+ * either the GNU General Public License Version 2 or later (the "GPL"), or
-+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-+ * in which case the provisions of the GPL or the LGPL are applicable instead
-+ * of those above. If you wish to allow use of your version of this file only
-+ * under the terms of either the GPL or the LGPL, and not to allow others to
-+ * use your version of this file under the terms of the MPL, indicate your
-+ * decision by deleting the provisions above and replace them with the notice
-+ * and other provisions required by the GPL or the LGPL. If you do not delete
-+ * the provisions above, a recipient may use your version of this file under
-+ * the terms of any one of the MPL, the GPL or the LGPL.
-+ *
-+ */
-+
-+#ifndef __ec_h_
-+#define __ec_h_
-+
-+#define EC_DEBUG 0
-+#define EC_POINT_FORM_COMPRESSED_Y0 0x02
-+#define EC_POINT_FORM_COMPRESSED_Y1 0x03
-+#define EC_POINT_FORM_UNCOMPRESSED 0x04
-+#define EC_POINT_FORM_HYBRID_Y0 0x06
-+#define EC_POINT_FORM_HYBRID_Y1 0x07
-+
-+#define ANSI_X962_CURVE_OID_TOTAL_LEN 10
-+#define SECG_CURVE_OID_TOTAL_LEN 7
-+
-+#endif /* __ec_h_ */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/error.c 2004-12-13 13:06:46.840376272 +0100
-@@ -0,0 +1,284 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+/*
-+ * error.c
-+ *
-+ * This file contains the code implementing the per-thread error
-+ * stacks upon which most NSS routines report their errors.
-+ */
-+
-+#ifndef BASE_H
-+#include "base.h"
-+#endif /* BASE_H */
-+#include <string.h> /* for memmove */
-+
-+#define NSS_MAX_ERROR_STACK_COUNT 16 /* error codes */
-+
-+/*
-+ * The stack itself has a header, and a sequence of integers.
-+ * The header records the amount of space (as measured in stack
-+ * slots) already allocated for the stack, and the count of the
-+ * number of records currently being used.
-+ */
-+
-+struct stack_header_str {
-+ PRUint16 space;
-+ PRUint16 count;
-+};
-+
-+struct error_stack_str {
-+ struct stack_header_str header;
-+ PRInt32 stack[1];
-+};
-+typedef struct error_stack_str error_stack;
-+
-+/*
-+ * error_stack_index
-+ *
-+ * Thread-private data must be indexed. This is that index.
-+ * See PR_NewThreadPrivateIndex for more information.
-+ */
-+
-+static PRUintn error_stack_index;
-+
-+/*
-+ * call_once
-+ *
-+ * The thread-private index must be obtained (once!) at runtime.
-+ * This block is used for that one-time call.
-+ */
-+
-+static PRCallOnceType error_call_once;
-+
-+/*
-+ * error_once_function
-+ *
-+ * This is the once-called callback.
-+ */
-+static PRStatus
-+error_once_function ( void)
-+{
-+ return nss_NewThreadPrivateIndex(&error_stack_index,PR_Free);
-+ /* return PR_NewThreadPrivateIndex(&error_stack_index, PR_Free); */
-+}
-+
-+/*
-+ * error_get_my_stack
-+ *
-+ * This routine returns the calling thread's error stack, creating
-+ * it if necessary. It may return NULL upon error, which implicitly
-+ * means that it ran out of memory.
-+ */
-+
-+static error_stack *
-+error_get_my_stack ( void)
-+{
-+ PRStatus st;
-+ error_stack *rv;
-+ PRUintn new_size;
-+ PRUint32 new_bytes;
-+ error_stack *new_stack;
-+
-+ if( 0 == error_stack_index ) {
-+ st = PR_CallOnce(&error_call_once, error_once_function);
-+ if( PR_SUCCESS != st ) {
-+ return (error_stack *)NULL;
-+ }
-+ }
-+
-+ rv = (error_stack *)nss_GetThreadPrivate(error_stack_index);
-+ if( (error_stack *)NULL == rv ) {
-+ /* Doesn't exist; create one */
-+ new_size = 16;
-+ } else if( rv->header.count == rv->header.space &&
-+ rv->header.count < NSS_MAX_ERROR_STACK_COUNT ) {
-+ /* Too small, expand it */
-+ new_size = PR_MIN( rv->header.space * 2, NSS_MAX_ERROR_STACK_COUNT);
-+ } else {
-+ /* Okay, return it */
-+ return rv;
-+ }
-+
-+ new_bytes = (new_size * sizeof(PRInt32)) + sizeof(error_stack);
-+ /* Use NSPR's calloc/realloc, not NSS's, to avoid loops! */
-+ new_stack = PR_Calloc(1, new_bytes);
-+
-+ if( (error_stack *)NULL != new_stack ) {
-+ if( (error_stack *)NULL != rv ) {
-+ (void)nsslibc_memcpy(new_stack,rv,rv->header.space);
-+ }
-+ new_stack->header.space = new_size;
-+ }
-+
-+ /* Set the value, whether or not the allocation worked */
-+ nss_SetThreadPrivate(error_stack_index, new_stack);
-+ return new_stack;
-+}
-+
-+/*
-+ * The error stack
-+ *
-+ * The public methods relating to the error stack are:
-+ *
-+ * NSS_GetError
-+ * NSS_GetErrorStack
-+ *
-+ * The nonpublic methods relating to the error stack are:
-+ *
-+ * nss_SetError
-+ * nss_ClearErrorStack
-+ *
-+ */
-+
-+/*
-+ * NSS_GetError
-+ *
-+ * This routine returns the highest-level (most general) error set
-+ * by the most recent NSS library routine called by the same thread
-+ * calling this routine.
-+ *
-+ * This routine cannot fail. However, it may return zero, which
-+ * indicates that the previous NSS library call did not set an error.
-+ *
-+ * Return value:
-+ * 0 if no error has been set
-+ * A nonzero error number
-+ */
-+
-+NSS_IMPLEMENT PRInt32
-+NSS_GetError ( void)
-+{
-+ error_stack *es = error_get_my_stack();
-+
-+ if( (error_stack *)NULL == es ) {
-+ return NSS_ERROR_NO_MEMORY; /* Good guess! */
-+ }
-+
-+ if( 0 == es->header.count ) {
-+ return 0;
-+ }
-+
-+ return es->stack[ es->header.count-1 ];
-+}
-+
-+/*
-+ * NSS_GetErrorStack
-+ *
-+ * This routine returns a pointer to an array of integers, containing
-+ * the entire sequence or "stack" of errors set by the most recent NSS
-+ * library routine called by the same thread calling this routine.
-+ * NOTE: the caller DOES NOT OWN the memory pointed to by the return
-+ * value. The pointer will remain valid until the calling thread
-+ * calls another NSS routine. The lowest-level (most specific) error
-+ * is first in the array, and the highest-level is last. The array is
-+ * zero-terminated. This routine may return NULL upon error; this
-+ * indicates a low-memory situation.
-+ *
-+ * Return value:
-+ * NULL upon error, which is an implied NSS_ERROR_NO_MEMORY
-+ * A NON-caller-owned pointer to an array of integers
-+ */
-+
-+NSS_IMPLEMENT PRInt32 *
-+NSS_GetErrorStack ( void)
-+{
-+ error_stack *es = error_get_my_stack();
-+
-+ if( (error_stack *)NULL == es ) {
-+ return (PRInt32 *)NULL;
-+ }
-+
-+ /* Make sure it's terminated */
-+ es->stack[ es->header.count ] = 0;
-+
-+ return es->stack;
-+}
-+
-+/*
-+ * nss_SetError
-+ *
-+ * This routine places a new error code on the top of the calling
-+ * thread's error stack. Calling this routine wiht an error code
-+ * of zero will clear the error stack.
-+ */
-+
-+NSS_IMPLEMENT void
-+nss_SetError ( PRUint32 error)
-+{
-+ error_stack *es;
-+
-+ if( 0 == error ) {
-+ nss_ClearErrorStack();
-+ return;
-+ }
-+
-+ es = error_get_my_stack();
-+ if( (error_stack *)NULL == es ) {
-+ /* Oh, well. */
-+ return;
-+ }
-+
-+ if (es->header.count < es->header.space) {
-+ es->stack[ es->header.count++ ] = error;
-+ } else {
-+ memmove(es->stack, es->stack + 1,
-+ (es->header.space - 1) * (sizeof es->stack[0]));
-+ es->stack[ es->header.space - 1 ] = error;
-+ }
-+ return;
-+}
-+
-+/*
-+ * nss_ClearErrorStack
-+ *
-+ * This routine clears the calling thread's error stack.
-+ */
-+
-+NSS_IMPLEMENT void
-+nss_ClearErrorStack ( void)
-+{
-+ error_stack *es = error_get_my_stack();
-+ if( (error_stack *)NULL == es ) {
-+ /* Oh, well. */
-+ return;
-+ }
-+
-+ es->header.count = 0;
-+ es->stack[0] = 0;
-+ return;
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/errorval.c 2004-12-13 13:06:46.843375816 +0100
-@@ -0,0 +1,93 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+/*
-+ * errorval.c
-+ *
-+ * This file contains the actual error constants used in NSS.
-+ */
-+
-+#ifndef NSSBASET_H
-+#include "nssbaset.h"
-+#endif /* NSSBASET_H */
-+
-+const NSSError NSS_ERROR_NO_ERROR = 0;
-+const NSSError NSS_ERROR_INTERNAL_ERROR = 1;
-+const NSSError NSS_ERROR_NO_MEMORY = 2;
-+const NSSError NSS_ERROR_INVALID_POINTER = 3;
-+const NSSError NSS_ERROR_INVALID_ARENA = 4;
-+const NSSError NSS_ERROR_INVALID_ARENA_MARK = 5;
-+const NSSError NSS_ERROR_DUPLICATE_POINTER = 6;
-+const NSSError NSS_ERROR_POINTER_NOT_REGISTERED = 7;
-+const NSSError NSS_ERROR_TRACKER_NOT_EMPTY = 8;
-+const NSSError NSS_ERROR_TRACKER_NOT_INITIALIZED = 9;
-+const NSSError NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD = 10;
-+const NSSError NSS_ERROR_VALUE_TOO_LARGE = 11;
-+const NSSError NSS_ERROR_UNSUPPORTED_TYPE = 12;
-+const NSSError NSS_ERROR_BUFFER_TOO_SHORT = 13;
-+const NSSError NSS_ERROR_INVALID_ATOB_CONTEXT = 14;
-+const NSSError NSS_ERROR_INVALID_BASE64 = 15;
-+const NSSError NSS_ERROR_INVALID_BTOA_CONTEXT = 16;
-+const NSSError NSS_ERROR_INVALID_ITEM = 17;
-+const NSSError NSS_ERROR_INVALID_STRING = 18;
-+const NSSError NSS_ERROR_INVALID_ASN1ENCODER = 19;
-+const NSSError NSS_ERROR_INVALID_ASN1DECODER = 20;
-+
-+const NSSError NSS_ERROR_INVALID_BER = 21;
-+const NSSError NSS_ERROR_INVALID_ATAV = 22;
-+const NSSError NSS_ERROR_INVALID_ARGUMENT = 23;
-+const NSSError NSS_ERROR_INVALID_UTF8 = 24;
-+const NSSError NSS_ERROR_INVALID_NSSOID = 25;
-+const NSSError NSS_ERROR_UNKNOWN_ATTRIBUTE = 26;
-+
-+const NSSError NSS_ERROR_NOT_FOUND = 27;
-+
-+const NSSError NSS_ERROR_INVALID_PASSWORD = 28;
-+const NSSError NSS_ERROR_USER_CANCELED = 29;
-+
-+const NSSError NSS_ERROR_MAXIMUM_FOUND = 30;
-+
-+const NSSError NSS_ERROR_CERTIFICATE_ISSUER_NOT_FOUND = 31;
-+
-+const NSSError NSS_ERROR_CERTIFICATE_IN_CACHE = 32;
-+
-+const NSSError NSS_ERROR_HASH_COLLISION = 33;
-+const NSSError NSS_ERROR_DEVICE_ERROR = 34;
-+const NSSError NSS_ERROR_INVALID_CERTIFICATE = 35;
-+const NSSError NSS_ERROR_BUSY = 36;
-+const NSSError NSS_ERROR_ALREADY_INITIALIZED = 37;
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/genname.c 2004-12-13 13:06:46.690399072 +0100
-@@ -0,0 +1,1827 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#include "plarena.h"
-+#include "seccomon.h"
-+#include "secitem.h"
-+#include "secoidt.h"
-+#include "mcom_db.h"
-+#include "secasn1.h"
-+#include "secder.h"
-+#include "certt.h"
-+#include "cert.h"
-+#include "xconst.h"
-+#include "secerr.h"
-+#include "secoid.h"
-+#include "prprf.h"
-+#include "genname.h"
-+
-+
-+
-+static const SEC_ASN1Template CERTNameConstraintTemplate[] = {
-+ { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(CERTNameConstraint) },
-+ { SEC_ASN1_ANY, offsetof(CERTNameConstraint, DERName) },
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_CONTEXT_SPECIFIC | 0,
-+ offsetof(CERTNameConstraint, min), SEC_IntegerTemplate },
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_CONTEXT_SPECIFIC | 1,
-+ offsetof(CERTNameConstraint, max), SEC_IntegerTemplate },
-+ { 0, }
-+};
-+
-+const SEC_ASN1Template CERT_NameConstraintSubtreeSubTemplate[] = {
-+ { SEC_ASN1_SEQUENCE_OF, 0, SEC_AnyTemplate }
-+};
-+
-+
-+const SEC_ASN1Template CERT_NameConstraintSubtreePermitedTemplate[] = {
-+ { SEC_ASN1_CONTEXT_SPECIFIC | 0, 0, CERT_NameConstraintSubtreeSubTemplate }
-+};
-+
-+const SEC_ASN1Template CERT_NameConstraintSubtreeExcludedTemplate[] = {
-+ { SEC_ASN1_CONTEXT_SPECIFIC | 1, 0, CERT_NameConstraintSubtreeSubTemplate }
-+};
-+
-+
-+static const SEC_ASN1Template CERTNameConstraintsTemplate[] = {
-+ { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(CERTNameConstraints) },
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_CONTEXT_SPECIFIC | 0,
-+ offsetof(CERTNameConstraints, DERPermited),
-+ CERT_NameConstraintSubtreeSubTemplate},
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_CONTEXT_SPECIFIC | 1,
-+ offsetof(CERTNameConstraints, DERExcluded),
-+ CERT_NameConstraintSubtreeSubTemplate},
-+ { 0, }
-+};
-+
-+
-+static const SEC_ASN1Template CERTOthNameTemplate[] = {
-+ { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(OtherName) },
-+ { SEC_ASN1_OBJECT_ID,
-+ offsetof(OtherName, oid) },
-+ { SEC_ASN1_CONTEXT_SPECIFIC | SEC_ASN1_CONSTRUCTED | SEC_ASN1_EXPLICIT | 0,
-+ offsetof(OtherName, name), SEC_AnyTemplate },
-+ { 0, }
-+};
-+
-+static const SEC_ASN1Template CERTOtherNameTemplate[] = {
-+ { SEC_ASN1_CONTEXT_SPECIFIC | SEC_ASN1_CONSTRUCTED | 0 ,
-+ offsetof(CERTGeneralName, name.OthName), CERTOthNameTemplate,
-+ sizeof(CERTGeneralName) }
-+};
-+
-+static const SEC_ASN1Template CERTOtherName2Template[] = {
-+ { SEC_ASN1_SEQUENCE | SEC_ASN1_CONTEXT_SPECIFIC | 0 ,
-+ 0, NULL, sizeof(CERTGeneralName) },
-+ { SEC_ASN1_OBJECT_ID,
-+ offsetof(CERTGeneralName, name.OthName) + offsetof(OtherName, oid) },
-+ { SEC_ASN1_ANY,
-+ offsetof(CERTGeneralName, name.OthName) + offsetof(OtherName, name) },
-+ { 0, }
-+};
-+
-+static const SEC_ASN1Template CERT_RFC822NameTemplate[] = {
-+ { SEC_ASN1_CONTEXT_SPECIFIC | 1 ,
-+ offsetof(CERTGeneralName, name.other), SEC_IA5StringTemplate,
-+ sizeof (CERTGeneralName)}
-+};
-+
-+static const SEC_ASN1Template CERT_DNSNameTemplate[] = {
-+ { SEC_ASN1_CONTEXT_SPECIFIC | 2 ,
-+ offsetof(CERTGeneralName, name.other), SEC_IA5StringTemplate,
-+ sizeof (CERTGeneralName)}
-+};
-+
-+static const SEC_ASN1Template CERT_X400AddressTemplate[] = {
-+ { SEC_ASN1_CONTEXT_SPECIFIC | SEC_ASN1_CONSTRUCTED | 3,
-+ offsetof(CERTGeneralName, name.other), SEC_AnyTemplate,
-+ sizeof (CERTGeneralName)}
-+};
-+
-+static const SEC_ASN1Template CERT_DirectoryNameTemplate[] = {
-+ { SEC_ASN1_CONTEXT_SPECIFIC | SEC_ASN1_CONSTRUCTED | SEC_ASN1_EXPLICIT | 4,
-+ offsetof(CERTGeneralName, derDirectoryName), SEC_AnyTemplate,
-+ sizeof (CERTGeneralName)}
-+};
-+
-+
-+static const SEC_ASN1Template CERT_EDIPartyNameTemplate[] = {
-+ { SEC_ASN1_CONTEXT_SPECIFIC | SEC_ASN1_CONSTRUCTED | 5,
-+ offsetof(CERTGeneralName, name.other), SEC_AnyTemplate,
-+ sizeof (CERTGeneralName)}
-+};
-+
-+static const SEC_ASN1Template CERT_URITemplate[] = {
-+ { SEC_ASN1_CONTEXT_SPECIFIC | 6 ,
-+ offsetof(CERTGeneralName, name.other), SEC_IA5StringTemplate,
-+ sizeof (CERTGeneralName)}
-+};
-+
-+static const SEC_ASN1Template CERT_IPAddressTemplate[] = {
-+ { SEC_ASN1_CONTEXT_SPECIFIC | 7 ,
-+ offsetof(CERTGeneralName, name.other), SEC_OctetStringTemplate,
-+ sizeof (CERTGeneralName)}
-+};
-+
-+static const SEC_ASN1Template CERT_RegisteredIDTemplate[] = {
-+ { SEC_ASN1_CONTEXT_SPECIFIC | 8 ,
-+ offsetof(CERTGeneralName, name.other), SEC_ObjectIDTemplate,
-+ sizeof (CERTGeneralName)}
-+};
-+
-+
-+const SEC_ASN1Template CERT_GeneralNamesTemplate[] = {
-+ { SEC_ASN1_SEQUENCE_OF, 0, SEC_AnyTemplate }
-+};
-+
-+
-+
-+CERTGeneralName *
-+cert_NewGeneralName(PLArenaPool *arena, CERTGeneralNameType type)
-+{
-+ CERTGeneralName *name = arena
-+ ? PORT_ArenaZNew(arena, CERTGeneralName)
-+ : PORT_ZNew(CERTGeneralName);
-+ if (name) {
-+ name->type = type;
-+ name->l.prev = name->l.next = &name->l;
-+ }
-+ return name;
-+}
-+
-+/* Copy content of one General Name to another.
-+** Caller has allocated destination general name.
-+** This function does not change the destinate's GeneralName's list linkage.
-+*/
-+SECStatus
-+cert_CopyOneGeneralName(PRArenaPool *arena,
-+ CERTGeneralName *dest,
-+ CERTGeneralName *src)
-+{
-+ SECStatus rv;
-+
-+ /* TODO: mark arena */
-+ PORT_Assert(dest != NULL);
-+ dest->type = src->type;
-+
-+ switch (src->type) {
-+ case certDirectoryName:
-+ rv = SECITEM_CopyItem(arena, &dest->derDirectoryName,
-+ &src->derDirectoryName);
-+ if (rv == SECSuccess)
-+ rv = CERT_CopyName(arena, &dest->name.directoryName,
-+ &src->name.directoryName);
-+ break;
-+
-+ case certOtherName:
-+ rv = SECITEM_CopyItem(arena, &dest->name.OthName.name,
-+ &src->name.OthName.name);
-+ if (rv == SECSuccess)
-+ rv = SECITEM_CopyItem(arena, &dest->name.OthName.oid,
-+ &src->name.OthName.oid);
-+ break;
-+
-+ default:
-+ rv = SECITEM_CopyItem(arena, &dest->name.other,
-+ &src->name.other);
-+ break;
-+
-+ }
-+ if (rv != SECSuccess) {
-+ /* TODO: release back to mark */
-+ } else {
-+ /* TODO: unmark arena */
-+ }
-+ return rv;
-+}
-+
-+
-+void
-+CERT_DestroyGeneralNameList(CERTGeneralNameList *list)
-+{
-+ PZLock *lock;
-+
-+ if (list != NULL) {
-+ lock = list->lock;
-+ PZ_Lock(lock);
-+ if (--list->refCount <= 0 && list->arena != NULL) {
-+ PORT_FreeArena(list->arena, PR_FALSE);
-+ PZ_Unlock(lock);
-+ PZ_DestroyLock(lock);
-+ } else {
-+ PZ_Unlock(lock);
-+ }
-+ }
-+ return;
-+}
-+
-+CERTGeneralNameList *
-+CERT_CreateGeneralNameList(CERTGeneralName *name) {
-+ PRArenaPool *arena;
-+ CERTGeneralNameList *list = NULL;
-+
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ if (arena == NULL) {
-+ goto done;
-+ }
-+ list = PORT_ArenaZNew(arena, CERTGeneralNameList);
-+ if (!list)
-+ goto loser;
-+ if (name != NULL) {
-+ SECStatus rv;
-+ list->name = cert_NewGeneralName(arena, (CERTGeneralNameType)0);
-+ if (!list->name)
-+ goto loser;
-+ rv = CERT_CopyGeneralName(arena, list->name, name);
-+ if (rv != SECSuccess)
-+ goto loser;
-+ }
-+ list->lock = PZ_NewLock(nssILockList);
-+ if (!list->lock)
-+ goto loser;
-+ list->arena = arena;
-+ list->refCount = 1;
-+done:
-+ return list;
-+
-+loser:
-+ PORT_FreeArena(arena, PR_FALSE);
-+ return NULL;
-+}
-+
-+CERTGeneralName *
-+cert_get_next_general_name(CERTGeneralName *current)
-+{
-+ PRCList *next;
-+
-+ next = current->l.next;
-+ return (CERTGeneralName *) (((char *) next) - offsetof(CERTGeneralName, l));
-+}
-+
-+CERTGeneralName *
-+cert_get_prev_general_name(CERTGeneralName *current)
-+{
-+ PRCList *prev;
-+ prev = current->l.prev;
-+ return (CERTGeneralName *) (((char *) prev) - offsetof(CERTGeneralName, l));
-+}
-+
-+CERTNameConstraint *
-+cert_get_next_name_constraint(CERTNameConstraint *current)
-+{
-+ PRCList *next;
-+
-+ next = current->l.next;
-+ return (CERTNameConstraint *) (((char *) next) - offsetof(CERTNameConstraint, l));
-+}
-+
-+CERTNameConstraint *
-+cert_get_prev_name_constraint(CERTNameConstraint *current)
-+{
-+ PRCList *prev;
-+ prev = current->l.prev;
-+ return (CERTNameConstraint *) (((char *) prev) - offsetof(CERTNameConstraint, l));
-+}
-+
-+SECItem *
-+CERT_EncodeGeneralName(CERTGeneralName *genName, SECItem *dest, PRArenaPool *arena)
-+{
-+
-+ const SEC_ASN1Template * template;
-+
-+ PORT_Assert(arena);
-+ if (arena == NULL) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return NULL;
-+ }
-+ /* TODO: mark arena */
-+ if (dest == NULL) {
-+ dest = PORT_ArenaZNew(arena, SECItem);
-+ if (!dest)
-+ goto loser;
-+ }
-+ if (genName->type == certDirectoryName) {
-+ if (genName->derDirectoryName.data == NULL) {
-+ /* The field hasn't been encoded yet. */
-+ SECItem * pre_dest =
-+ SEC_ASN1EncodeItem (arena, &(genName->derDirectoryName),
-+ &(genName->name.directoryName),
-+ CERT_NameTemplate);
-+ if (!pre_dest)
-+ goto loser;
-+ }
-+ if (genName->derDirectoryName.data == NULL) {
-+ goto loser;
-+ }
-+ }
-+ switch (genName->type) {
-+ case certURI: template = CERT_URITemplate; break;
-+ case certRFC822Name: template = CERT_RFC822NameTemplate; break;
-+ case certDNSName: template = CERT_DNSNameTemplate; break;
-+ case certIPAddress: template = CERT_IPAddressTemplate; break;
-+ case certOtherName: template = CERTOtherNameTemplate; break;
-+ case certRegisterID: template = CERT_RegisteredIDTemplate; break;
-+ /* for this type, we expect the value is already encoded */
-+ case certEDIPartyName: template = CERT_EDIPartyNameTemplate; break;
-+ /* for this type, we expect the value is already encoded */
-+ case certX400Address: template = CERT_X400AddressTemplate; break;
-+ case certDirectoryName: template = CERT_DirectoryNameTemplate; break;
-+ default:
-+ PORT_Assert(0); goto loser;
-+ }
-+ dest = SEC_ASN1EncodeItem(arena, dest, genName, template);
-+ if (!dest) {
-+ goto loser;
-+ }
-+ /* TODO: unmark arena */
-+ return dest;
-+loser:
-+ /* TODO: release arena back to mark */
-+ return NULL;
-+}
-+
-+SECItem **
-+cert_EncodeGeneralNames(PRArenaPool *arena, CERTGeneralName *names)
-+{
-+ CERTGeneralName *current_name;
-+ SECItem **items = NULL;
-+ int count = 0;
-+ int i;
-+ PRCList *head;
-+
-+ PORT_Assert(arena);
-+ /* TODO: mark arena */
-+ current_name = names;
-+ if (names != NULL) {
-+ count = 1;
-+ }
-+ head = &(names->l);
-+ while (current_name->l.next != head) {
-+ current_name = cert_get_next_general_name(current_name);
-+ ++count;
-+ }
-+ current_name = cert_get_next_general_name(current_name);
-+ items = PORT_ArenaNewArray(arena, SECItem *, count + 1);
-+ if (items == NULL) {
-+ goto loser;
-+ }
-+ for (i = 0; i < count; i++) {
-+ items[i] = CERT_EncodeGeneralName(current_name, (SECItem *)NULL, arena);
-+ if (items[i] == NULL) {
-+ goto loser;
-+ }
-+ current_name = cert_get_next_general_name(current_name);
-+ }
-+ items[i] = NULL;
-+ /* TODO: unmark arena */
-+ return items;
-+loser:
-+ /* TODO: release arena to mark */
-+ return NULL;
-+}
-+
-+CERTGeneralName *
-+CERT_DecodeGeneralName(PRArenaPool *arena,
-+ SECItem *encodedName,
-+ CERTGeneralName *genName)
-+{
-+ const SEC_ASN1Template * template;
-+ CERTGeneralNameType genNameType;
-+ SECStatus rv = SECSuccess;
-+
-+ PORT_Assert(arena);
-+ /* TODO: mark arena */
-+ genNameType = (CERTGeneralNameType)((*(encodedName->data) & 0x0f) + 1);
-+ if (genName == NULL) {
-+ genName = cert_NewGeneralName(arena, genNameType);
-+ if (!genName)
-+ goto loser;
-+ } else {
-+ genName->type = genNameType;
-+ genName->l.prev = genName->l.next = &genName->l;
-+ }
-+ switch (genNameType) {
-+ case certURI: template = CERT_URITemplate; break;
-+ case certRFC822Name: template = CERT_RFC822NameTemplate; break;
-+ case certDNSName: template = CERT_DNSNameTemplate; break;
-+ case certIPAddress: template = CERT_IPAddressTemplate; break;
-+ case certOtherName: template = CERTOtherNameTemplate; break;
-+ case certRegisterID: template = CERT_RegisteredIDTemplate; break;
-+ case certEDIPartyName: template = CERT_EDIPartyNameTemplate; break;
-+ case certX400Address: template = CERT_X400AddressTemplate; break;
-+ case certDirectoryName: template = CERT_DirectoryNameTemplate; break;
-+ default:
-+ goto loser;
-+ }
-+ rv = SEC_ASN1DecodeItem(arena, genName, template, encodedName);
-+ if (rv != SECSuccess)
-+ goto loser;
-+ if (genNameType == certDirectoryName) {
-+ rv = SEC_ASN1DecodeItem(arena, &(genName->name.directoryName),
-+ CERT_NameTemplate,
-+ &(genName->derDirectoryName));
-+ if (rv != SECSuccess)
-+ goto loser;
-+ }
-+
-+ /* TODO: unmark arena */
-+ return genName;
-+loser:
-+ /* TODO: release arena to mark */
-+ return NULL;
-+}
-+
-+CERTGeneralName *
-+cert_DecodeGeneralNames (PRArenaPool *arena,
-+ SECItem **encodedGenName)
-+{
-+ PRCList *head = NULL;
-+ PRCList *tail = NULL;
-+ CERTGeneralName *currentName = NULL;
-+
-+ PORT_Assert(arena);
-+ if (!encodedGenName || !arena) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return NULL;
-+ }
-+ /* TODO: mark arena */
-+ while (*encodedGenName != NULL) {
-+ currentName = CERT_DecodeGeneralName(arena, *encodedGenName, NULL);
-+ if (currentName == NULL)
-+ break;
-+ if (head == NULL) {
-+ head = &(currentName->l);
-+ tail = head;
-+ }
-+ currentName->l.next = head;
-+ currentName->l.prev = tail;
-+ tail = head->prev = tail->next = &(currentName->l);
-+ encodedGenName++;
-+ }
-+ if (currentName) {
-+ /* TODO: unmark arena */
-+ return cert_get_next_general_name(currentName);
-+ }
-+ /* TODO: release arena to mark */
-+ return NULL;
-+}
-+
-+void
-+CERT_DestroyGeneralName(CERTGeneralName *name)
-+{
-+ cert_DestroyGeneralNames(name);
-+}
-+
-+SECStatus
-+cert_DestroyGeneralNames(CERTGeneralName *name)
-+{
-+ CERTGeneralName *first;
-+ CERTGeneralName *next = NULL;
-+
-+
-+ first = name;
-+ do {
-+ next = cert_get_next_general_name(name);
-+ PORT_Free(name);
-+ name = next;
-+ } while (name != first);
-+ return SECSuccess;
-+}
-+
-+static SECItem *
-+cert_EncodeNameConstraint(CERTNameConstraint *constraint,
-+ SECItem *dest,
-+ PRArenaPool *arena)
-+{
-+ PORT_Assert(arena);
-+ if (dest == NULL) {
-+ dest = PORT_ArenaZNew(arena, SECItem);
-+ if (dest == NULL) {
-+ return NULL;
-+ }
-+ }
-+ CERT_EncodeGeneralName(&(constraint->name), &(constraint->DERName), arena);
-+
-+ dest = SEC_ASN1EncodeItem (arena, dest, constraint,
-+ CERTNameConstraintTemplate);
-+ return dest;
-+}
-+
-+SECStatus
-+cert_EncodeNameConstraintSubTree(CERTNameConstraint *constraints,
-+ PRArenaPool *arena,
-+ SECItem ***dest,
-+ PRBool permited)
-+{
-+ CERTNameConstraint *current_constraint = constraints;
-+ SECItem **items = NULL;
-+ int count = 0;
-+ int i;
-+ PRCList *head;
-+
-+ PORT_Assert(arena);
-+ /* TODO: mark arena */
-+ if (constraints != NULL) {
-+ count = 1;
-+ }
-+ head = &constraints->l;
-+ while (current_constraint->l.next != head) {
-+ current_constraint = cert_get_next_name_constraint(current_constraint);
-+ ++count;
-+ }
-+ current_constraint = cert_get_next_name_constraint(current_constraint);
-+ items = PORT_ArenaZNewArray(arena, SECItem *, count + 1);
-+ if (items == NULL) {
-+ goto loser;
-+ }
-+ for (i = 0; i < count; i++) {
-+ items[i] = cert_EncodeNameConstraint(current_constraint,
-+ (SECItem *) NULL, arena);
-+ if (items[i] == NULL) {
-+ goto loser;
-+ }
-+ current_constraint = cert_get_next_name_constraint(current_constraint);
-+ }
-+ *dest = items;
-+ if (*dest == NULL) {
-+ goto loser;
-+ }
-+ /* TODO: unmark arena */
-+ return SECSuccess;
-+loser:
-+ /* TODO: release arena to mark */
-+ return SECFailure;
-+}
-+
-+SECStatus
-+cert_EncodeNameConstraints(CERTNameConstraints *constraints,
-+ PRArenaPool *arena,
-+ SECItem *dest)
-+{
-+ SECStatus rv = SECSuccess;
-+
-+ PORT_Assert(arena);
-+ /* TODO: mark arena */
-+ if (constraints->permited != NULL) {
-+ rv = cert_EncodeNameConstraintSubTree(constraints->permited, arena,
-+ &constraints->DERPermited,
-+ PR_TRUE);
-+ if (rv == SECFailure) {
-+ goto loser;
-+ }
-+ }
-+ if (constraints->excluded != NULL) {
-+ rv = cert_EncodeNameConstraintSubTree(constraints->excluded, arena,
-+ &constraints->DERExcluded,
-+ PR_FALSE);
-+ if (rv == SECFailure) {
-+ goto loser;
-+ }
-+ }
-+ dest = SEC_ASN1EncodeItem(arena, dest, constraints,
-+ CERTNameConstraintsTemplate);
-+ if (dest == NULL) {
-+ goto loser;
-+ }
-+ /* TODO: unmark arena */
-+ return SECSuccess;
-+loser:
-+ /* TODO: release arena to mark */
-+ return SECFailure;
-+}
-+
-+
-+CERTNameConstraint *
-+cert_DecodeNameConstraint(PRArenaPool *arena,
-+ SECItem *encodedConstraint)
-+{
-+ CERTNameConstraint *constraint;
-+ SECStatus rv = SECSuccess;
-+ CERTGeneralName *temp;
-+
-+ PORT_Assert(arena);
-+ /* TODO: mark arena */
-+ constraint = PORT_ArenaZNew(arena, CERTNameConstraint);
-+ if (!constraint)
-+ goto loser;
-+ rv = SEC_ASN1DecodeItem(arena, constraint, CERTNameConstraintTemplate,
-+ encodedConstraint);
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+ temp = CERT_DecodeGeneralName(arena, &(constraint->DERName),
-+ &(constraint->name));
-+ if (temp != &(constraint->name)) {
-+ goto loser;
-+ }
-+
-+ /* ### sjlee: since the name constraint contains only one
-+ * CERTGeneralName, the list within CERTGeneralName shouldn't
-+ * point anywhere else. Otherwise, bad things will happen.
-+ */
-+ constraint->name.l.prev = constraint->name.l.next = &(constraint->name.l);
-+ /* TODO: unmark arena */
-+ return constraint;
-+loser:
-+ /* TODO: release arena back to mark */
-+ return NULL;
-+}
-+
-+CERTNameConstraint *
-+cert_DecodeNameConstraintSubTree(PRArenaPool *arena,
-+ SECItem **subTree,
-+ PRBool permited)
-+{
-+ CERTNameConstraint *current = NULL;
-+ CERTNameConstraint *first = NULL;
-+ CERTNameConstraint *last = NULL;
-+ int i = 0;
-+
-+ PORT_Assert(arena);
-+ /* TODO: mark arena */
-+ while (subTree[i] != NULL) {
-+ current = cert_DecodeNameConstraint(arena, subTree[i]);
-+ if (current == NULL) {
-+ goto loser;
-+ }
-+ if (last == NULL) {
-+ first = last = current;
-+ }
-+ current->l.prev = &(last->l);
-+ current->l.next = last->l.next;
-+ last->l.next = &(current->l);
-+ i++;
-+ }
-+ first->l.prev = &(current->l);
-+ /* TODO: unmark arena */
-+ return first;
-+loser:
-+ /* TODO: release arena back to mark */
-+ return NULL;
-+}
-+
-+CERTNameConstraints *
-+cert_DecodeNameConstraints(PRArenaPool *arena,
-+ SECItem *encodedConstraints)
-+{
-+ CERTNameConstraints *constraints;
-+ SECStatus rv;
-+
-+ PORT_Assert(arena);
-+ PORT_Assert(encodedConstraints);
-+ /* TODO: mark arena */
-+ constraints = PORT_ArenaZNew(arena, CERTNameConstraints);
-+ if (constraints == NULL) {
-+ goto loser;
-+ }
-+ rv = SEC_ASN1DecodeItem(arena, constraints, CERTNameConstraintsTemplate,
-+ encodedConstraints);
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+ if (constraints->DERPermited != NULL &&
-+ constraints->DERPermited[0] != NULL) {
-+ constraints->permited =
-+ cert_DecodeNameConstraintSubTree(arena, constraints->DERPermited,
-+ PR_TRUE);
-+ if (constraints->permited == NULL) {
-+ goto loser;
-+ }
-+ }
-+ if (constraints->DERExcluded != NULL &&
-+ constraints->DERExcluded[0] != NULL) {
-+ constraints->excluded =
-+ cert_DecodeNameConstraintSubTree(arena, constraints->DERExcluded,
-+ PR_FALSE);
-+ if (constraints->excluded == NULL) {
-+ goto loser;
-+ }
-+ }
-+ /* TODO: unmark arena */
-+ return constraints;
-+loser:
-+ /* TODO: release arena back to mark */
-+ return NULL;
-+}
-+
-+/* Copy a chain of one or more general names to a destination chain.
-+** Caller has allocated at least the first destination GeneralName struct.
-+** Both source and destination chains are circular doubly-linked lists.
-+** The first source struct is copied to the first destination struct.
-+** If the source chain has more than one member, and the destination chain
-+** has only one member, then this function allocates new structs for all but
-+** the first copy from the arena and links them into the destination list.
-+** If the destination struct is part of a list with more than one member,
-+** then this function traverses both the source and destination lists,
-+** copying each source struct to the corresponding dest struct.
-+** In that case, the destination list MUST contain at least as many
-+** structs as the source list or some dest entries will be overwritten.
-+*/
-+SECStatus
-+CERT_CopyGeneralName(PRArenaPool *arena,
-+ CERTGeneralName *dest,
-+ CERTGeneralName *src)
-+{
-+ SECStatus rv;
-+ CERTGeneralName *destHead = dest;
-+ CERTGeneralName *srcHead = src;
-+
-+ PORT_Assert(dest != NULL);
-+ if (!dest) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+ /* TODO: mark arena */
-+ do {
-+ rv = cert_CopyOneGeneralName(arena, dest, src);
-+ if (rv != SECSuccess)
-+ goto loser;
-+ src = cert_get_next_general_name(src);
-+ /* if there is only one general name, we shouldn't do this */
-+ if (src != srcHead) {
-+ if (dest->l.next == &destHead->l) {
-+ CERTGeneralName *temp;
-+ temp = cert_NewGeneralName(arena, (CERTGeneralNameType)0);
-+ if (!temp)
-+ goto loser;
-+ temp->l.next = &destHead->l;
-+ temp->l.prev = &dest->l;
-+ destHead->l.prev = &temp->l;
-+ dest->l.next = &temp->l;
-+ dest = temp;
-+ } else {
-+ dest = cert_get_next_general_name(dest);
-+ }
-+ }
-+ } while (src != srcHead && rv == SECSuccess);
-+ /* TODO: unmark arena */
-+ return rv;
-+loser:
-+ /* TODO: release back to mark */
-+ return SECFailure;
-+}
-+
-+
-+CERTGeneralNameList *
-+CERT_DupGeneralNameList(CERTGeneralNameList *list)
-+{
-+ if (list != NULL) {
-+ PZ_Lock(list->lock);
-+ list->refCount++;
-+ PZ_Unlock(list->lock);
-+ }
-+ return list;
-+}
-+
-+CERTNameConstraint *
-+CERT_CopyNameConstraint(PRArenaPool *arena,
-+ CERTNameConstraint *dest,
-+ CERTNameConstraint *src)
-+{
-+ SECStatus rv;
-+
-+ /* TODO: mark arena */
-+ if (dest == NULL) {
-+ dest = PORT_ArenaZNew(arena, CERTNameConstraint);
-+ if (!dest)
-+ goto loser;
-+ /* mark that it is not linked */
-+ dest->name.l.prev = dest->name.l.next = &(dest->name.l);
-+ }
-+ rv = CERT_CopyGeneralName(arena, &dest->name, &src->name);
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+ rv = SECITEM_CopyItem(arena, &dest->DERName, &src->DERName);
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+ rv = SECITEM_CopyItem(arena, &dest->min, &src->min);
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+ rv = SECITEM_CopyItem(arena, &dest->max, &src->max);
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+ dest->l.prev = dest->l.next = &dest->l;
-+ /* TODO: unmark arena */
-+ return dest;
-+loser:
-+ /* TODO: release arena to mark */
-+ return NULL;
-+}
-+
-+
-+CERTGeneralName *
-+cert_CombineNamesLists(CERTGeneralName *list1, CERTGeneralName *list2)
-+{
-+ PRCList *begin1;
-+ PRCList *begin2;
-+ PRCList *end1;
-+ PRCList *end2;
-+
-+ if (list1 == NULL){
-+ return list2;
-+ } else if (list2 == NULL) {
-+ return list1;
-+ } else {
-+ begin1 = &list1->l;
-+ begin2 = &list2->l;
-+ end1 = list1->l.prev;
-+ end2 = list2->l.prev;
-+ end1->next = begin2;
-+ end2->next = begin1;
-+ begin1->prev = end2;
-+ begin2->prev = end1;
-+ return list1;
-+ }
-+}
-+
-+
-+CERTNameConstraint *
-+cert_CombineConstraintsLists(CERTNameConstraint *list1, CERTNameConstraint *list2)
-+{
-+ PRCList *begin1;
-+ PRCList *begin2;
-+ PRCList *end1;
-+ PRCList *end2;
-+
-+ if (list1 == NULL){
-+ return list2;
-+ } else if (list2 == NULL) {
-+ return list1;
-+ } else {
-+ begin1 = &list1->l;
-+ begin2 = &list2->l;
-+ end1 = list1->l.prev;
-+ end2 = list2->l.prev;
-+ end1->next = begin2;
-+ end2->next = begin1;
-+ begin1->prev = end2;
-+ begin2->prev = end1;
-+ return list1;
-+ }
-+}
-+
-+
-+CERTNameConstraint *
-+CERT_AddNameConstraint(CERTNameConstraint *list,
-+ CERTNameConstraint *constraint)
-+{
-+ PORT_Assert(constraint != NULL);
-+ constraint->l.next = constraint->l.prev = &constraint->l;
-+ list = cert_CombineConstraintsLists(list, constraint);
-+ return list;
-+}
-+
-+
-+SECStatus
-+CERT_GetNameConstraintByType (CERTNameConstraint *constraints,
-+ CERTGeneralNameType type,
-+ CERTNameConstraint **returnList,
-+ PRArenaPool *arena)
-+{
-+ CERTNameConstraint *current;
-+
-+ *returnList = NULL;
-+ if (!constraints)
-+ return SECSuccess;
-+ /* TODO: mark arena */
-+ current = constraints;
-+ do {
-+ PORT_Assert(current->name.type);
-+ if (current->name.type == type) {
-+ CERTNameConstraint *temp;
-+ temp = CERT_CopyNameConstraint(arena, NULL, current);
-+ if (temp == NULL)
-+ goto loser;
-+ *returnList = CERT_AddNameConstraint(*returnList, temp);
-+ }
-+ current = cert_get_next_name_constraint(current);
-+ } while (current != constraints);
-+ /* TODO: unmark arena */
-+ return SECSuccess;
-+loser:
-+ /* TODO: release arena back to mark */
-+ return SECFailure;
-+}
-+
-+void *
-+CERT_GetGeneralNameByType (CERTGeneralName *genNames,
-+ CERTGeneralNameType type, PRBool derFormat)
-+{
-+ CERTGeneralName *current;
-+
-+ if (!genNames)
-+ return NULL;
-+ current = genNames;
-+
-+ do {
-+ if (current->type == type) {
-+ switch (type) {
-+ case certDNSName:
-+ case certEDIPartyName:
-+ case certIPAddress:
-+ case certRegisterID:
-+ case certRFC822Name:
-+ case certX400Address:
-+ case certURI:
-+ return (void *)&current->name.other; /* SECItem * */
-+
-+ case certOtherName:
-+ return (void *)&current->name.OthName; /* OthName * */
-+
-+ case certDirectoryName:
-+ return derFormat
-+ ? (void *)&current->derDirectoryName /* SECItem * */
-+ : (void *)&current->name.directoryName; /* CERTName * */
-+ }
-+ PORT_Assert(0);
-+ return NULL;
-+ }
-+ current = cert_get_next_general_name(current);
-+ } while (current != genNames);
-+ return NULL;
-+}
-+
-+int
-+CERT_GetNamesLength(CERTGeneralName *names)
-+{
-+ int length = 0;
-+ CERTGeneralName *first;
-+
-+ first = names;
-+ if (names != NULL) {
-+ do {
-+ length++;
-+ names = cert_get_next_general_name(names);
-+ } while (names != first);
-+ }
-+ return length;
-+}
-+
-+/* Creates new GeneralNames for any email addresses found in the
-+** input DN, and links them onto the list for the DN.
-+*/
-+SECStatus
-+cert_ExtractDNEmailAddrs(CERTGeneralName *name, PLArenaPool *arena)
-+{
-+ CERTGeneralName *nameList = NULL;
-+ const CERTRDN **nRDNs = name->name.directoryName.rdns;
-+ SECStatus rv = SECSuccess;
-+
-+ PORT_Assert(name->type == certDirectoryName);
-+ if (name->type != certDirectoryName) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+ /* TODO: mark arena */
-+ while (nRDNs && *nRDNs) { /* loop over RDNs */
-+ const CERTRDN *nRDN = *nRDNs++;
-+ CERTAVA **nAVAs = nRDN->avas;
-+ while (nAVAs && *nAVAs) { /* loop over AVAs */
-+ int tag;
-+ CERTAVA *nAVA = *nAVAs++;
-+ tag = CERT_GetAVATag(nAVA);
-+ if ( tag == SEC_OID_PKCS9_EMAIL_ADDRESS ||
-+ tag == SEC_OID_RFC1274_MAIL) { /* email AVA */
-+ CERTGeneralName *newName = NULL;
-+ SECItem *avaValue = CERT_DecodeAVAValue(&nAVA->value);
-+ if (!avaValue)
-+ goto loser;
-+ rv = SECFailure;
-+ newName = cert_NewGeneralName(arena, certRFC822Name);
-+ if (newName) {
-+ rv = SECITEM_CopyItem(arena, &newName->name.other, avaValue);
-+ }
-+ SECITEM_FreeItem(avaValue, PR_TRUE);
-+ if (rv != SECSuccess)
-+ goto loser;
-+ nameList = cert_CombineNamesLists(nameList, newName);
-+ } /* handle one email AVA */
-+ } /* loop over AVAs */
-+ } /* loop over RDNs */
-+ /* combine new names with old one. */
-+ name = cert_CombineNamesLists(name, nameList);
-+ /* TODO: unmark arena */
-+ return SECSuccess;
-+
-+loser:
-+ /* TODO: release arena back to mark */
-+ return SECFailure;
-+}
-+
-+/* This function is called by CERT_VerifyCertChain to extract all
-+** names from a cert in preparation for a name constraints test.
-+*/
-+CERTGeneralName *
-+CERT_GetCertificateNames(CERTCertificate *cert, PRArenaPool *arena)
-+{
-+ CERTGeneralName *DN;
-+ CERTGeneralName *altName = NULL;
-+ SECItem altNameExtension = {siBuffer, NULL, 0 };
-+ SECStatus rv;
-+
-+ /* TODO: mark arena */
-+ DN = cert_NewGeneralName(arena, certDirectoryName);
-+ if (DN == NULL) {
-+ goto loser;
-+ }
-+ rv = CERT_CopyName(arena, &DN->name.directoryName, &cert->subject);
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+ rv = SECITEM_CopyItem(arena, &DN->derDirectoryName, &cert->derSubject);
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+ /* Extract email addresses from DN, construct CERTGeneralName structs
-+ ** for them, add them to the name list
-+ */
-+ rv = cert_ExtractDNEmailAddrs(DN, arena);
-+ if (rv != SECSuccess)
-+ goto loser;
-+
-+ /* Now extract any GeneralNames from the subject name names extension. */
-+ rv = CERT_FindCertExtension(cert, SEC_OID_X509_SUBJECT_ALT_NAME,
-+ &altNameExtension);
-+ if (rv == SECSuccess) {
-+ altName = CERT_DecodeAltNameExtension(arena, &altNameExtension);
-+ rv = altName ? SECSuccess : SECFailure;
-+ }
-+ if (rv != SECSuccess && PORT_GetError() == SEC_ERROR_EXTENSION_NOT_FOUND)
-+ rv = SECSuccess;
-+ if (altNameExtension.data)
-+ SECITEM_FreeItem(&altNameExtension, PR_FALSE);
-+ if (rv != SECSuccess)
-+ goto loser;
-+ DN = cert_CombineNamesLists(DN, altName);
-+
-+ /* TODO: unmark arena */
-+ return DN;
-+loser:
-+ /* TODO: release arena to mark */
-+ return NULL;
-+}
-+
-+/* Returns SECSuccess if name matches constraint per RFC 3280 rules for
-+** URI name constraints. SECFailure otherwise.
-+** If the constraint begins with a dot, it is a domain name, otherwise
-+** It is a host name. Examples:
-+** Constraint Name Result
-+** ------------ --------------- --------
-+** foo.bar.com foo.bar.com matches
-+** foo.bar.com FoO.bAr.CoM matches
-+** foo.bar.com www.foo.bar.com no match
-+** foo.bar.com nofoo.bar.com no match
-+** .foo.bar.com www.foo.bar.com matches
-+** .foo.bar.com nofoo.bar.com no match
-+** .foo.bar.com foo.bar.com no match
-+** .foo.bar.com www..foo.bar.com no match
-+*/
-+static SECStatus
-+compareURIN2C(const SECItem *name, const SECItem *constraint)
-+{
-+ int offset;
-+ /* The spec is silent on intepreting zero-length constraints.
-+ ** We interpret them as matching no URI names.
-+ */
-+ if (!constraint->len)
-+ return SECFailure;
-+ if (constraint->data[0] != '.') {
-+ /* constraint is a host name. */
-+ if (name->len != constraint->len ||
-+ PL_strncasecmp(name->data, constraint->data, constraint->len))
-+ return SECFailure;
-+ return SECSuccess;
-+ }
-+ /* constraint is a domain name. */
-+ if (name->len < constraint->len)
-+ return SECFailure;
-+ offset = name->len - constraint->len;
-+ if (PL_strncasecmp(name->data + offset, constraint->data, constraint->len))
-+ return SECFailure;
-+ if (!offset ||
-+ (name->data[offset - 1] == '.') + (constraint->data[0] == '.') == 1)
-+ return SECSuccess;
-+ return SECFailure;
-+}
-+
-+/* for DNSname constraints, RFC 3280 says, (section 4.2.1.11, page 38)
-+**
-+** DNS name restrictions are expressed as foo.bar.com. Any DNS name
-+** that can be constructed by simply adding to the left hand side of the
-+** name satisfies the name constraint. For example, www.foo.bar.com
-+** would satisfy the constraint but foo1.bar.com would not.
-+**
-+** But NIST's PKITS test suite requires that the constraint be treated
-+** as a domain name, and requires that any name added to the left hand
-+** side end in a dot ".". Sensible, but not strictly following the RFC.
-+**
-+** Constraint Name RFC 3280 NIST PKITS
-+** ------------ --------------- -------- ----------
-+** foo.bar.com foo.bar.com matches matches
-+** foo.bar.com FoO.bAr.CoM matches matches
-+** foo.bar.com www.foo.bar.com matches matches
-+** foo.bar.com nofoo.bar.com MATCHES NO MATCH
-+** .foo.bar.com www.foo.bar.com matches matches? disallowed?
-+** .foo.bar.com foo.bar.com no match no match
-+** .foo.bar.com www..foo.bar.com matches probably not
-+**
-+** We will try to conform to NIST's PKITS tests, and the unstated
-+** rules they imply.
-+*/
-+static SECStatus
-+compareDNSN2C(const SECItem *name, const SECItem *constraint)
-+{
-+ int offset;
-+ /* The spec is silent on intepreting zero-length constraints.
-+ ** We interpret them as matching all DNSnames.
-+ */
-+ if (!constraint->len)
-+ return SECSuccess;
-+ if (name->len < constraint->len)
-+ return SECFailure;
-+ offset = name->len - constraint->len;
-+ if (PL_strncasecmp(name->data + offset, constraint->data, constraint->len))
-+ return SECFailure;
-+ if (!offset ||
-+ (name->data[offset - 1] == '.') + (constraint->data[0] == '.') == 1)
-+ return SECSuccess;
-+ return SECFailure;
-+}
-+
-+/* Returns SECSuccess if name matches constraint per RFC 3280 rules for
-+** internet email addresses. SECFailure otherwise.
-+** If constraint contains a '@' then the two strings much match exactly.
-+** Else if constraint starts with a '.'. then it must match the right-most
-+** substring of the name,
-+** else constraint string must match entire name after the name's '@'.
-+** Empty constraint string matches all names. All comparisons case insensitive.
-+*/
-+static SECStatus
-+compareRFC822N2C(const SECItem *name, const SECItem *constraint)
-+{
-+ int offset;
-+ if (!constraint->len)
-+ return SECSuccess;
-+ if (name->len < constraint->len)
-+ return SECFailure;
-+ if (constraint->len == 1 && constraint->data[0] == '.')
-+ return SECSuccess;
-+ for (offset = constraint->len - 1; offset >= 0; --offset) {
-+ if (constraint->data[offset] == '@') {
-+ return (name->len == constraint->len &&
-+ !PL_strncasecmp(name->data, constraint->data, constraint->len))
-+ ? SECSuccess : SECFailure;
-+ }
-+ }
-+ offset = name->len - constraint->len;
-+ if (PL_strncasecmp(name->data + offset, constraint->data, constraint->len))
-+ return SECFailure;
-+ if (constraint->data[0] == '.')
-+ return SECSuccess;
-+ if (offset > 0 && name->data[offset - 1] == '@')
-+ return SECSuccess;
-+ return SECFailure;
-+}
-+
-+/* name contains either a 4 byte IPv4 address or a 16 byte IPv6 address.
-+** constraint contains an address of the same length, and a subnet mask
-+** of the same length. Compare name's address to the constraint's
-+** address, subject to the mask.
-+** Return SECSuccess if they match, SECFailure if they don't.
-+*/
-+static SECStatus
-+compareIPaddrN2C(const SECItem *name, const SECItem *constraint)
-+{
-+ int i;
-+ if (name->len == 4 && constraint->len == 8) { /* ipv4 addr */
-+ for (i = 0; i < 4; i++) {
-+ if ((name->data[i] ^ constraint->data[i]) & constraint->data[i+4])
-+ goto loser;
-+ }
-+ return SECSuccess;
-+ }
-+ if (name->len == 16 && constraint->len == 32) { /* ipv6 addr */
-+ for (i = 0; i < 16; i++) {
-+ if ((name->data[i] ^ constraint->data[i]) & constraint->data[i+16])
-+ goto loser;
-+ }
-+ return SECSuccess;
-+ }
-+loser:
-+ return SECFailure;
-+}
-+
-+/* start with a SECItem that points to a URI. Parse it lookingg for
-+** a hostname. Modify item->data and item->len to define the hostname,
-+** but do not modify and data at item->data.
-+** If anything goes wrong, the contents of *item are undefined.
-+*/
-+static SECStatus
-+parseUriHostname(SECItem * item)
-+{
-+ int i;
-+ PRBool found = PR_FALSE;
-+ for (i = 0; (unsigned)(i+2) < item->len; ++i) {
-+ if (item->data[i ] == ':' &&
-+ item->data[i+1] == '/' &&
-+ item->data[i+2] == '/') {
-+ i += 3;
-+ item->data += i;
-+ item->len -= i;
-+ found = PR_TRUE;
-+ break;
-+ }
-+ }
-+ if (!found)
-+ return SECFailure;
-+ /* now look for a '/', which is an upper bound in the end of the name */
-+ for (i = 0; (unsigned)i < item->len; ++i) {
-+ if (item->data[i] == '/') {
-+ item->len = i;
-+ break;
-+ }
-+ }
-+ /* now look for a ':', which marks the end of the name */
-+ for (i = item->len; --i >= 0; ) {
-+ if (item->data[i] == ':') {
-+ item->len = i;
-+ break;
-+ }
-+ }
-+ /* now look for an '@', which marks the beginning of the hostname */
-+ for (i = 0; (unsigned)i < item->len; ++i) {
-+ if (item->data[i] == '@') {
-+ ++i;
-+ item->data += i;
-+ item->len -= i;
-+ break;
-+ }
-+ }
-+ return item->len ? SECSuccess : SECFailure;
-+}
-+
-+/* This function takes one name, and a list of constraints.
-+** It searches the constraints looking for a match.
-+** It returns SECSuccess if the name satisfies the constraints, i.e.,
-+** if excluded, then the name does not match any constraint,
-+** if permitted, then the name matches at least one constraint.
-+** It returns SECFailure if the name fails to satisfy the constraints,
-+** or if some code fails (e.g. out of memory, or invalid constraint)
-+*/
-+static SECStatus
-+cert_CompareNameWithConstraints(CERTGeneralName *name,
-+ CERTNameConstraint *constraints,
-+ PRBool excluded)
-+{
-+ SECStatus rv = SECSuccess;
-+ SECStatus matched = SECFailure;
-+ CERTNameConstraint *current;
-+
-+ PORT_Assert(constraints); /* caller should not call with NULL */
-+ if (!constraints) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+
-+ current = constraints;
-+ do {
-+ rv = SECSuccess;
-+ matched = SECFailure;
-+ PORT_Assert(name->type == current->name.type);
-+ switch (name->type) {
-+
-+ case certDNSName:
-+ matched = compareDNSN2C(&name->name.other,
-+ &current->name.name.other);
-+ break;
-+
-+ case certRFC822Name:
-+ matched = compareRFC822N2C(&name->name.other,
-+ &current->name.name.other);
-+ break;
-+
-+ case certURI:
-+ {
-+ /* make a modifiable copy of the URI SECItem. */
-+ SECItem uri = name->name.other;
-+ /* find the hostname in the URI */
-+ rv = parseUriHostname(&uri);
-+ if (rv == SECSuccess) {
-+ /* does our hostname meet the constraint? */
-+ matched = compareURIN2C(&uri, &current->name.name.other);
-+ }
-+ }
-+ break;
-+
-+ case certDirectoryName:
-+ /* Determine if the constraint directory name is a "prefix"
-+ ** for the directory name being tested.
-+ */
-+ {
-+ /* status defaults to SECEqual, so that a constraint with
-+ ** no AVAs will be a wildcard, matching all directory names.
-+ */
-+ SECComparison status = SECEqual;
-+ const CERTRDN **cRDNs = current->name.name.directoryName.rdns;
-+ const CERTRDN **nRDNs = name->name.directoryName.rdns;
-+ while (cRDNs && *cRDNs && nRDNs && *nRDNs) {
-+ /* loop over name RDNs and constraint RDNs in lock step */
-+ const CERTRDN *cRDN = *cRDNs++;
-+ const CERTRDN *nRDN = *nRDNs++;
-+ CERTAVA **cAVAs = cRDN->avas;
-+ while (cAVAs && *cAVAs) { /* loop over constraint AVAs */
-+ CERTAVA *cAVA = *cAVAs++;
-+ CERTAVA **nAVAs = nRDN->avas;
-+ while (nAVAs && *nAVAs) { /* loop over name AVAs */
-+ CERTAVA *nAVA = *nAVAs++;
-+ status = CERT_CompareAVA(cAVA, nAVA);
-+ if (status == SECEqual)
-+ break;
-+ } /* loop over name AVAs */
-+ if (status != SECEqual)
-+ break;
-+ } /* loop over constraint AVAs */
-+ if (status != SECEqual)
-+ break;
-+ } /* loop over name RDNs and constraint RDNs */
-+ matched = (status == SECEqual) ? SECSuccess : SECFailure;
-+ break;
-+ }
-+
-+ case certIPAddress: /* type 8 */
-+ matched = compareIPaddrN2C(&name->name.other,
-+ &current->name.name.other);
-+ break;
-+
-+ /* NSS does not know how to compare these "Other" type names with
-+ ** their respective constraints. But it does know how to tell
-+ ** if the constraint applies to the type of name (by comparing
-+ ** the constraint OID to the name OID). NSS makes no use of "Other"
-+ ** type names at all, so NSS errs on the side of leniency for these
-+ ** types, provided that their OIDs match. So, when an "Other"
-+ ** name constraint appears in an excluded subtree, it never causes
-+ ** a name to fail. When an "Other" name constraint appears in a
-+ ** permitted subtree, AND the constraint's OID matches the name's
-+ ** OID, then name is treated as if it matches the constraint.
-+ */
-+ case certOtherName: /* type 1 */
-+ matched = (!excluded &&
-+ name->type == current->name.type &&
-+ SECITEM_ItemsAreEqual(&name->name.OthName.oid,
-+ &current->name.name.OthName.oid))
-+ ? SECSuccess : SECFailure;
-+ break;
-+
-+ /* NSS does not know how to compare these types of names with their
-+ ** respective constraints. But NSS makes no use of these types of
-+ ** names at all, so it errs on the side of leniency for these types.
-+ ** Constraints for these types of names never cause the name to
-+ ** fail the constraints test. NSS behaves as if the name matched
-+ ** for permitted constraints, and did not match for excluded ones.
-+ */
-+ case certX400Address: /* type 4 */
-+ case certEDIPartyName: /* type 6 */
-+ case certRegisterID: /* type 9 */
-+ matched = excluded ? SECFailure : SECSuccess;
-+ break;
-+
-+ default: /* non-standard types are not supported */
-+ rv = SECFailure;
-+ break;
-+ }
-+ if (matched == SECSuccess || rv != SECSuccess)
-+ break;
-+ current = cert_get_next_name_constraint(current);
-+ } while (current != constraints);
-+ if (rv == SECSuccess) {
-+ if (matched == SECSuccess)
-+ rv = excluded ? SECFailure : SECSuccess;
-+ else
-+ rv = excluded ? SECSuccess : SECFailure;
-+ return rv;
-+ }
-+
-+ return SECFailure;
-+}
-+
-+/* Extract the name constraints extension from the CA cert.
-+** Test each and every name in namesList against all the constraints
-+** relevant to that type of name.
-+** Returns NULL for success, all names are acceptable.
-+** If some name is not acceptable, returns a pointer to the cert that
-+** contained that name.
-+*/
-+SECStatus
-+CERT_CompareNameSpace(CERTCertificate *cert,
-+ CERTGeneralName *namesList,
-+ CERTCertificate **certsList,
-+ PRArenaPool *arena,
-+ CERTCertificate **pBadCert)
-+{
-+ SECStatus rv;
-+ SECItem constraintsExtension;
-+ CERTNameConstraints *constraints;
-+ CERTGeneralName *currentName;
-+ int count = 0;
-+ CERTNameConstraint *matchingConstraints;
-+ CERTCertificate *badCert = NULL;
-+
-+ rv = CERT_FindCertExtension(cert, SEC_OID_X509_NAME_CONSTRAINTS,
-+ &constraintsExtension);
-+ if (rv != SECSuccess) {
-+ if (PORT_GetError() == SEC_ERROR_EXTENSION_NOT_FOUND) {
-+ rv = SECSuccess;
-+ } else {
-+ count = -1;
-+ }
-+ goto done;
-+ }
-+ /* TODO: mark arena */
-+ constraints = cert_DecodeNameConstraints(arena, &constraintsExtension);
-+ currentName = namesList;
-+ if (constraints == NULL) { /* decode failed */
-+ rv = SECFailure;
-+ count = -1;
-+ goto done;
-+ }
-+ do {
-+ if (constraints->excluded != NULL) {
-+ rv = CERT_GetNameConstraintByType(constraints->excluded,
-+ currentName->type,
-+ &matchingConstraints, arena);
-+ if (rv == SECSuccess && matchingConstraints != NULL) {
-+ rv = cert_CompareNameWithConstraints(currentName,
-+ matchingConstraints,
-+ PR_TRUE);
-+ }
-+ if (rv != SECSuccess)
-+ break;
-+ }
-+ if (constraints->permited != NULL) {
-+ rv = CERT_GetNameConstraintByType(constraints->permited,
-+ currentName->type,
-+ &matchingConstraints, arena);
-+ if (rv == SECSuccess && matchingConstraints != NULL) {
-+ rv = cert_CompareNameWithConstraints(currentName,
-+ matchingConstraints,
-+ PR_FALSE);
-+ }
-+ if (rv != SECSuccess)
-+ break;
-+ }
-+ currentName = cert_get_next_general_name(currentName);
-+ count ++;
-+ } while (currentName != namesList);
-+done:
-+ if (rv != SECSuccess) {
-+ badCert = (count >= 0) ? certsList[count] : cert;
-+ }
-+ if (pBadCert)
-+ *pBadCert = badCert;
-+ /* TODO: release back to mark */
-+ return rv;
-+}
-+
-+/* Search the cert for an X509_SUBJECT_ALT_NAME extension.
-+** ASN1 Decode it into a list of alternate names.
-+** Search the list of alternate names for one with the NETSCAPE_NICKNAME OID.
-+** ASN1 Decode that name. Turn the result into a zString.
-+** Look for duplicate nickname already in the certdb.
-+** If one is found, create a nickname string that is not a duplicate.
-+*/
-+char *
-+CERT_GetNickName(CERTCertificate *cert,
-+ CERTCertDBHandle *handle,
-+ PRArenaPool *nicknameArena)
-+{
-+ CERTGeneralName *current;
-+ CERTGeneralName *names;
-+ char *nickname = NULL;
-+ char *returnName = NULL;
-+ char *basename = NULL;
-+ PRArenaPool *arena = NULL;
-+ CERTCertificate *tmpcert;
-+ SECStatus rv;
-+ int count;
-+ int found = 0;
-+ SECItem altNameExtension;
-+ SECItem nick;
-+
-+ if (handle == NULL) {
-+ handle = CERT_GetDefaultCertDB();
-+ }
-+ altNameExtension.data = NULL;
-+ rv = CERT_FindCertExtension(cert, SEC_OID_X509_SUBJECT_ALT_NAME,
-+ &altNameExtension);
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ if (arena == NULL) {
-+ goto loser;
-+ }
-+ names = CERT_DecodeAltNameExtension(arena, &altNameExtension);
-+ if (names == NULL) {
-+ goto loser;
-+ }
-+ current = names;
-+ do {
-+ if (current->type == certOtherName &&
-+ SECOID_FindOIDTag(&current->name.OthName.oid) ==
-+ SEC_OID_NETSCAPE_NICKNAME) {
-+ found = 1;
-+ break;
-+ }
-+ current = cert_get_next_general_name(current);
-+ } while (current != names);
-+ if (!found)
-+ goto loser;
-+
-+ rv = SEC_ASN1DecodeItem(arena, &nick, SEC_IA5StringTemplate,
-+ &current->name.OthName.name);
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+
-+ /* make a null terminated string out of nick, with room enough at
-+ ** the end to add on a number of up to 21 digits in length, (a signed
-+ ** 64-bit number in decimal) plus a space and a "#".
-+ */
-+ nickname = (char*)PORT_ZAlloc(nick.len + 24);
-+ if (!nickname)
-+ goto loser;
-+ PORT_Strncpy(nickname, (char *)nick.data, nick.len);
-+
-+ /* Don't let this cert's nickname duplicate one already in the DB.
-+ ** If it does, create a variant of the nickname that doesn't.
-+ */
-+ count = 0;
-+ while ((tmpcert = CERT_FindCertByNickname(handle, nickname)) != NULL) {
-+ CERT_DestroyCertificate(tmpcert);
-+ if (!basename) {
-+ basename = PORT_Strdup(nickname);
-+ if (!basename)
-+ goto loser;
-+ }
-+ count++;
-+ sprintf(nickname, "%s #%d", basename, count);
-+ }
-+
-+ /* success */
-+ if (nicknameArena) {
-+ returnName = PORT_ArenaStrdup(nicknameArena, nickname);
-+ } else {
-+ returnName = nickname;
-+ nickname = NULL;
-+ }
-+loser:
-+ if (arena != NULL)
-+ PORT_FreeArena(arena, PR_FALSE);
-+ if (nickname)
-+ PORT_Free(nickname);
-+ if (basename)
-+ PORT_Free(basename);
-+ if (altNameExtension.data)
-+ PORT_Free(altNameExtension.data);
-+ return returnName;
-+}
-+
-+#if 0
-+/* not exported from shared libs, not used. Turn on if we ever need it. */
-+SECStatus
-+CERT_CompareGeneralName(CERTGeneralName *a, CERTGeneralName *b)
-+{
-+ CERTGeneralName *currentA;
-+ CERTGeneralName *currentB;
-+ PRBool found;
-+
-+ currentA = a;
-+ currentB = b;
-+ if (a != NULL) {
-+ do {
-+ if (currentB == NULL) {
-+ return SECFailure;
-+ }
-+ currentB = cert_get_next_general_name(currentB);
-+ currentA = cert_get_next_general_name(currentA);
-+ } while (currentA != a);
-+ }
-+ if (currentB != b) {
-+ return SECFailure;
-+ }
-+ currentA = a;
-+ do {
-+ currentB = b;
-+ found = PR_FALSE;
-+ do {
-+ if (currentB->type == currentA->type) {
-+ switch (currentB->type) {
-+ case certDNSName:
-+ case certEDIPartyName:
-+ case certIPAddress:
-+ case certRegisterID:
-+ case certRFC822Name:
-+ case certX400Address:
-+ case certURI:
-+ if (SECITEM_CompareItem(&currentA->name.other,
-+ &currentB->name.other)
-+ == SECEqual) {
-+ found = PR_TRUE;
-+ }
-+ break;
-+ case certOtherName:
-+ if (SECITEM_CompareItem(&currentA->name.OthName.oid,
-+ &currentB->name.OthName.oid)
-+ == SECEqual &&
-+ SECITEM_CompareItem(&currentA->name.OthName.name,
-+ &currentB->name.OthName.name)
-+ == SECEqual) {
-+ found = PR_TRUE;
-+ }
-+ break;
-+ case certDirectoryName:
-+ if (CERT_CompareName(&currentA->name.directoryName,
-+ &currentB->name.directoryName)
-+ == SECEqual) {
-+ found = PR_TRUE;
-+ }
-+ }
-+
-+ }
-+ currentB = cert_get_next_general_name(currentB);
-+ } while (currentB != b && found != PR_TRUE);
-+ if (found != PR_TRUE) {
-+ return SECFailure;
-+ }
-+ currentA = cert_get_next_general_name(currentA);
-+ } while (currentA != a);
-+ return SECSuccess;
-+}
-+
-+SECStatus
-+CERT_CompareGeneralNameLists(CERTGeneralNameList *a, CERTGeneralNameList *b)
-+{
-+ SECStatus rv;
-+
-+ if (a == b) {
-+ return SECSuccess;
-+ }
-+ if (a != NULL && b != NULL) {
-+ PZ_Lock(a->lock);
-+ PZ_Lock(b->lock);
-+ rv = CERT_CompareGeneralName(a->name, b->name);
-+ PZ_Unlock(a->lock);
-+ PZ_Unlock(b->lock);
-+ } else {
-+ rv = SECFailure;
-+ }
-+ return rv;
-+}
-+#endif
-+
-+#if 0
-+/* This function is not exported from NSS shared libraries, and is not
-+** used inside of NSS.
-+** XXX it doesn't check for failed allocations. :-(
-+*/
-+void *
-+CERT_GetGeneralNameFromListByType(CERTGeneralNameList *list,
-+ CERTGeneralNameType type,
-+ PRArenaPool *arena)
-+{
-+ CERTName *name = NULL;
-+ SECItem *item = NULL;
-+ OtherName *other = NULL;
-+ OtherName *tmpOther = NULL;
-+ void *data;
-+
-+ PZ_Lock(list->lock);
-+ data = CERT_GetGeneralNameByType(list->name, type, PR_FALSE);
-+ if (data != NULL) {
-+ switch (type) {
-+ case certDNSName:
-+ case certEDIPartyName:
-+ case certIPAddress:
-+ case certRegisterID:
-+ case certRFC822Name:
-+ case certX400Address:
-+ case certURI:
-+ if (arena != NULL) {
-+ item = PORT_ArenaNew(arena, SECItem);
-+ if (item != NULL) {
-+XXX SECITEM_CopyItem(arena, item, (SECItem *) data);
-+ }
-+ } else {
-+ item = SECITEM_DupItem((SECItem *) data);
-+ }
-+ PZ_Unlock(list->lock);
-+ return item;
-+ case certOtherName:
-+ other = (OtherName *) data;
-+ if (arena != NULL) {
-+ tmpOther = PORT_ArenaNew(arena, OtherName);
-+ } else {
-+ tmpOther = PORT_New(OtherName);
-+ }
-+ if (tmpOther != NULL) {
-+XXX SECITEM_CopyItem(arena, &tmpOther->oid, &other->oid);
-+XXX SECITEM_CopyItem(arena, &tmpOther->name, &other->name);
-+ }
-+ PZ_Unlock(list->lock);
-+ return tmpOther;
-+ case certDirectoryName:
-+ if (arena) {
-+ name = PORT_ArenaZNew(list->arena, CERTName);
-+ if (name) {
-+XXX CERT_CopyName(arena, name, (CERTName *) data);
-+ }
-+ }
-+ PZ_Unlock(list->lock);
-+ return name;
-+ }
-+ }
-+ PZ_Unlock(list->lock);
-+ return NULL;
-+}
-+#endif
-+
-+#if 0
-+/* This function is not exported from NSS shared libraries, and is not
-+** used inside of NSS.
-+** XXX it should NOT be a void function, since it does allocations
-+** that can fail.
-+*/
-+void
-+CERT_AddGeneralNameToList(CERTGeneralNameList *list,
-+ CERTGeneralNameType type,
-+ void *data, SECItem *oid)
-+{
-+ CERTGeneralName *name;
-+
-+ if (list != NULL && data != NULL) {
-+ PZ_Lock(list->lock);
-+ name = cert_NewGeneralName(list->arena, type);
-+ if (!name)
-+ goto done;
-+ switch (type) {
-+ case certDNSName:
-+ case certEDIPartyName:
-+ case certIPAddress:
-+ case certRegisterID:
-+ case certRFC822Name:
-+ case certX400Address:
-+ case certURI:
-+XXX SECITEM_CopyItem(list->arena, &name->name.other, (SECItem *)data);
-+ break;
-+ case certOtherName:
-+XXX SECITEM_CopyItem(list->arena, &name->name.OthName.name,
-+ (SECItem *) data);
-+XXX SECITEM_CopyItem(list->arena, &name->name.OthName.oid,
-+ oid);
-+ break;
-+ case certDirectoryName:
-+XXX CERT_CopyName(list->arena, &name->name.directoryName,
-+ (CERTName *) data);
-+ break;
-+ }
-+ list->name = cert_CombineNamesLists(list->name, name);
-+ list->len++;
-+done:
-+ PZ_Unlock(list->lock);
-+ }
-+ return;
-+}
-+#endif
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/genname.h 2004-12-13 15:50:15.930167960 +0100
-@@ -0,0 +1,149 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifndef _GENAME_H_
-+#define _GENAME_H_
-+
-+#include "plarena.h"
-+#include "seccomon.h"
-+#include "secoidt.h"
-+#include "secasn1.h"
-+#include "secder.h"
-+#include "certt.h"
-+
-+/************************************************************************/
-+SEC_BEGIN_PROTOS
-+
-+extern const SEC_ASN1Template CERT_GeneralNamesTemplate[];
-+
-+extern CERTGeneralName *
-+cert_get_next_general_name(CERTGeneralName *current);
-+
-+extern CERTGeneralName *
-+cert_get_prev_general_name(CERTGeneralName *current);
-+
-+extern SECItem *
-+CERT_EncodeGeneralName(CERTGeneralName *genName, SECItem *dest,
-+ PRArenaPool *arena);
-+
-+extern SECItem **
-+cert_EncodeGeneralNames(PRArenaPool *arena, CERTGeneralName *names);
-+
-+extern CERTGeneralName *
-+CERT_DecodeGeneralName(PRArenaPool *arena, SECItem *encodedName,
-+ CERTGeneralName *genName);
-+
-+extern CERTGeneralName *
-+cert_DecodeGeneralNames(PRArenaPool *arena, SECItem **encodedGenName);
-+
-+extern SECStatus
-+cert_DestroyGeneralNames(CERTGeneralName *name);
-+
-+extern SECStatus
-+cert_EncodeNameConstraints(CERTNameConstraints *constraints, PRArenaPool *arena,
-+ SECItem *dest);
-+
-+extern CERTNameConstraints *
-+cert_DecodeNameConstraints(PRArenaPool *arena, SECItem *encodedConstraints);
-+
-+extern CERTGeneralName *
-+cert_CombineNamesLists(CERTGeneralName *list1, CERTGeneralName *list2);
-+
-+extern CERTNameConstraint *
-+cert_CombineConstraintsLists(CERTNameConstraint *list1, CERTNameConstraint *list2);
-+
-+/*********************************************************************/
-+/* A thread safe implementation of General Names */
-+/*********************************************************************/
-+
-+/* Destroy a Single CERTGeneralName */
-+void
-+CERT_DestroyGeneralName(CERTGeneralName *name);
-+
-+SECStatus
-+CERT_CompareGeneralName(CERTGeneralName *a, CERTGeneralName *b);
-+
-+SECStatus
-+CERT_CopyGeneralName(PRArenaPool *arena,
-+ CERTGeneralName *dest,
-+ CERTGeneralName *src);
-+
-+/* General Name Lists are a thread safe, reference counting layer to
-+ * general names */
-+
-+/* Destroys a CERTGeneralNameList */
-+void
-+CERT_DestroyGeneralNameList(CERTGeneralNameList *list);
-+
-+/* Creates a CERTGeneralNameList */
-+CERTGeneralNameList *
-+CERT_CreateGeneralNameList(CERTGeneralName *name);
-+
-+/* Compares two CERTGeneralNameList */
-+SECStatus
-+CERT_CompareGeneralNameLists(CERTGeneralNameList *a, CERTGeneralNameList *b);
-+
-+/* returns a copy of the first name of the type requested */
-+void *
-+CERT_GetGeneralNameFromListByType(CERTGeneralNameList *list,
-+ CERTGeneralNameType type,
-+ PRArenaPool *arena);
-+
-+/* Adds a name to the tail of the list */
-+void
-+CERT_AddGeneralNameToList(CERTGeneralNameList *list,
-+ CERTGeneralNameType type,
-+ void *data, SECItem *oid);
-+
-+/* returns a duplicate of the CERTGeneralNameList */
-+CERTGeneralNameList *
-+CERT_DupGeneralNameList(CERTGeneralNameList *list);
-+
-+/* returns the number of CERTGeneralName objects in the doubly linked
-+** list of which *names is a member.
-+*/
-+extern int
-+CERT_GetNamesLength(CERTGeneralName *names);
-+
-+/************************************************************************/
-+
-+SECStatus
-+CERT_CompareNameSpace(CERTCertificate *cert,
-+ CERTGeneralName *namesList,
-+ CERTCertificate **certsList,
-+ PRArenaPool *arena,
-+ CERTCertificate **pBadCert);
-+
-+SEC_END_PROTOS
-+
-+#endif
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/hash.c 2004-12-13 13:06:46.844375664 +0100
-@@ -0,0 +1,404 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+/*
-+ * hash.c
-+ *
-+ * This is merely a couple wrappers around NSPR's PLHashTable, using
-+ * the identity hash and arena-aware allocators.
-+ * This is a copy of ckfw/hash.c, with modifications to use NSS types
-+ * (not Cryptoki types). Would like for this to be a single implementation,
-+ * but doesn't seem like it will work.
-+ */
-+
-+#ifndef BASE_H
-+#include "base.h"
-+#endif /* BASE_H */
-+
-+/*
-+ * nssHash
-+ *
-+ * nssHash_Create
-+ * nssHash_Destroy
-+ * nssHash_Add
-+ * nssHash_Remove
-+ * nssHash_Count
-+ * nssHash_Exists
-+ * nssHash_Lookup
-+ * nssHash_Iterate
-+ */
-+
-+struct nssHashStr {
-+ NSSArena *arena;
-+ PRBool i_alloced_arena;
-+ PRLock *mutex;
-+
-+ /*
-+ * The invariant that mutex protects is:
-+ * The count accurately reflects the hashtable state.
-+ */
-+
-+ PLHashTable *plHashTable;
-+ PRUint32 count;
-+};
-+
-+static PLHashNumber
-+nss_identity_hash
-+(
-+ const void *key
-+)
-+{
-+ PRUint32 i = (PRUint32)key;
-+ PR_ASSERT(sizeof(PLHashNumber) == sizeof(PRUint32));
-+ return (PLHashNumber)i;
-+}
-+
-+static PLHashNumber
-+nss_item_hash
-+(
-+ const void *key
-+)
-+{
-+ unsigned int i;
-+ PLHashNumber h;
-+ NSSItem *it = (NSSItem *)key;
-+ h = 0;
-+ for (i=0; i<it->size; i++)
-+ h = (h >> 28) ^ (h << 4) ^ ((unsigned char *)it->data)[i];
-+ return h;
-+}
-+
-+static int
-+nss_compare_items(const void *v1, const void *v2)
-+{
-+ PRStatus ignore;
-+ return (int)nssItem_Equal((NSSItem *)v1, (NSSItem *)v2, &ignore);
-+}
-+
-+/*
-+ * nssHash_create
-+ *
-+ */
-+NSS_IMPLEMENT nssHash *
-+nssHash_Create
-+(
-+ NSSArena *arenaOpt,
-+ PRUint32 numBuckets,
-+ PLHashFunction keyHash,
-+ PLHashComparator keyCompare,
-+ PLHashComparator valueCompare
-+)
-+{
-+ nssHash *rv;
-+ NSSArena *arena;
-+ PRBool i_alloced;
-+
-+#ifdef NSSDEBUG
-+ if( arenaOpt && PR_SUCCESS != nssArena_verifyPointer(arenaOpt) ) {
-+ nss_SetError(NSS_ERROR_INVALID_POINTER);
-+ return (nssHash *)NULL;
-+ }
-+#endif /* NSSDEBUG */
-+
-+ if (arenaOpt) {
-+ arena = arenaOpt;
-+ i_alloced = PR_FALSE;
-+ } else {
-+ arena = nssArena_Create();
-+ i_alloced = PR_TRUE;
-+ }
-+
-+ rv = nss_ZNEW(arena, nssHash);
-+ if( (nssHash *)NULL == rv ) {
-+ goto loser;
-+ }
-+
-+ rv->mutex = PZ_NewLock(nssILockOther);
-+ if( (PZLock *)NULL == rv->mutex ) {
-+ goto loser;
-+ }
-+
-+ rv->plHashTable = PL_NewHashTable(numBuckets,
-+ keyHash, keyCompare, valueCompare,
-+ &nssArenaHashAllocOps, arena);
-+ if( (PLHashTable *)NULL == rv->plHashTable ) {
-+ (void)PZ_DestroyLock(rv->mutex);
-+ goto loser;
-+ }
-+
-+ rv->count = 0;
-+ rv->arena = arena;
-+ rv->i_alloced_arena = i_alloced;
-+
-+ return rv;
-+loser:
-+ (void)nss_ZFreeIf(rv);
-+ return (nssHash *)NULL;
-+}
-+
-+/*
-+ * nssHash_CreatePointer
-+ *
-+ */
-+NSS_IMPLEMENT nssHash *
-+nssHash_CreatePointer
-+(
-+ NSSArena *arenaOpt,
-+ PRUint32 numBuckets
-+)
-+{
-+ return nssHash_Create(arenaOpt, numBuckets,
-+ nss_identity_hash, PL_CompareValues, PL_CompareValues);
-+}
-+
-+/*
-+ * nssHash_CreateString
-+ *
-+ */
-+NSS_IMPLEMENT nssHash *
-+nssHash_CreateString
-+(
-+ NSSArena *arenaOpt,
-+ PRUint32 numBuckets
-+)
-+{
-+ return nssHash_Create(arenaOpt, numBuckets,
-+ PL_HashString, PL_CompareStrings, PL_CompareStrings);
-+}
-+
-+/*
-+ * nssHash_CreateItem
-+ *
-+ */
-+NSS_IMPLEMENT nssHash *
-+nssHash_CreateItem
-+(
-+ NSSArena *arenaOpt,
-+ PRUint32 numBuckets
-+)
-+{
-+ return nssHash_Create(arenaOpt, numBuckets,
-+ nss_item_hash, nss_compare_items, PL_CompareValues);
-+}
-+
-+/*
-+ * nssHash_Destroy
-+ *
-+ */
-+NSS_IMPLEMENT void
-+nssHash_Destroy
-+(
-+ nssHash *hash
-+)
-+{
-+ (void)PZ_DestroyLock(hash->mutex);
-+ PL_HashTableDestroy(hash->plHashTable);
-+ if (hash->i_alloced_arena) {
-+ nssArena_Destroy(hash->arena);
-+ } else {
-+ nss_ZFreeIf(hash);
-+ }
-+}
-+
-+/*
-+ * nssHash_Add
-+ *
-+ */
-+NSS_IMPLEMENT PRStatus
-+nssHash_Add
-+(
-+ nssHash *hash,
-+ const void *key,
-+ const void *value
-+)
-+{
-+ PRStatus error = PR_FAILURE;
-+ PLHashEntry *he;
-+
-+ PZ_Lock(hash->mutex);
-+
-+ he = PL_HashTableAdd(hash->plHashTable, key, (void *)value);
-+ if( (PLHashEntry *)NULL == he ) {
-+ nss_SetError(NSS_ERROR_NO_MEMORY);
-+ } else if (he->value != value) {
-+ nss_SetError(NSS_ERROR_HASH_COLLISION);
-+ } else {
-+ hash->count++;
-+ error = PR_SUCCESS;
-+ }
-+
-+ (void)PZ_Unlock(hash->mutex);
-+
-+ return error;
-+}
-+
-+/*
-+ * nssHash_Remove
-+ *
-+ */
-+NSS_IMPLEMENT void
-+nssHash_Remove
-+(
-+ nssHash *hash,
-+ const void *it
-+)
-+{
-+ PRBool found;
-+
-+ PZ_Lock(hash->mutex);
-+
-+ found = PL_HashTableRemove(hash->plHashTable, it);
-+ if( found ) {
-+ hash->count--;
-+ }
-+
-+ (void)PZ_Unlock(hash->mutex);
-+ return;
-+}
-+
-+/*
-+ * nssHash_Count
-+ *
-+ */
-+NSS_IMPLEMENT PRUint32
-+nssHash_Count
-+(
-+ nssHash *hash
-+)
-+{
-+ PRUint32 count;
-+
-+ PZ_Lock(hash->mutex);
-+
-+ count = hash->count;
-+
-+ (void)PZ_Unlock(hash->mutex);
-+
-+ return count;
-+}
-+
-+/*
-+ * nssHash_Exists
-+ *
-+ */
-+NSS_IMPLEMENT PRBool
-+nssHash_Exists
-+(
-+ nssHash *hash,
-+ const void *it
-+)
-+{
-+ void *value;
-+
-+ PZ_Lock(hash->mutex);
-+
-+ value = PL_HashTableLookup(hash->plHashTable, it);
-+
-+ (void)PZ_Unlock(hash->mutex);
-+
-+ if( (void *)NULL == value ) {
-+ return PR_FALSE;
-+ } else {
-+ return PR_TRUE;
-+ }
-+}
-+
-+/*
-+ * nssHash_Lookup
-+ *
-+ */
-+NSS_IMPLEMENT void *
-+nssHash_Lookup
-+(
-+ nssHash *hash,
-+ const void *it
-+)
-+{
-+ void *rv;
-+
-+ PZ_Lock(hash->mutex);
-+
-+ rv = PL_HashTableLookup(hash->plHashTable, it);
-+
-+ (void)PZ_Unlock(hash->mutex);
-+
-+ return rv;
-+}
-+
-+struct arg_str {
-+ nssHashIterator fcn;
-+ void *closure;
-+};
-+
-+static PRIntn
-+nss_hash_enumerator
-+(
-+ PLHashEntry *he,
-+ PRIntn index,
-+ void *arg
-+)
-+{
-+ struct arg_str *as = (struct arg_str *)arg;
-+ as->fcn(he->key, he->value, as->closure);
-+ return HT_ENUMERATE_NEXT;
-+}
-+
-+/*
-+ * nssHash_Iterate
-+ *
-+ * NOTE that the iteration function will be called with the hashtable locked.
-+ */
-+NSS_IMPLEMENT void
-+nssHash_Iterate
-+(
-+ nssHash *hash,
-+ nssHashIterator fcn,
-+ void *closure
-+)
-+{
-+ struct arg_str as;
-+ as.fcn = fcn;
-+ as.closure = closure;
-+
-+ PZ_Lock(hash->mutex);
-+
-+ PL_HashTableEnumerateEntries(hash->plHashTable, nss_hash_enumerator, &as);
-+
-+ (void)PZ_Unlock(hash->mutex);
-+
-+ return;
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/hashops.c 2004-12-13 13:06:46.844375664 +0100
-@@ -0,0 +1,117 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+/*
-+ * hashops.c
-+ *
-+ * This file includes a set of PLHashAllocOps that use NSSArenas.
-+ */
-+
-+#ifndef BASE_H
-+#include "base.h"
-+#endif /* BASE_H */
-+
-+static void * PR_CALLBACK
-+nss_arena_hash_alloc_table
-+(
-+ void *pool,
-+ PRSize size
-+)
-+{
-+ NSSArena *arena = (NSSArena *)NULL;
-+
-+#ifdef NSSDEBUG
-+ if( (void *)NULL != arena ) {
-+ if( PR_SUCCESS != nssArena_verifyPointer(arena) ) {
-+ return (void *)NULL;
-+ }
-+ }
-+#endif /* NSSDEBUG */
-+
-+ return nss_ZAlloc(arena, size);
-+}
-+
-+static void PR_CALLBACK
-+nss_arena_hash_free_table
-+(
-+ void *pool,
-+ void *item
-+)
-+{
-+ (void)nss_ZFreeIf(item);
-+}
-+
-+static PLHashEntry * PR_CALLBACK
-+nss_arena_hash_alloc_entry
-+(
-+ void *pool,
-+ const void *key
-+)
-+{
-+ NSSArena *arena = NULL;
-+
-+#ifdef NSSDEBUG
-+ if( (void *)NULL != arena ) {
-+ if( PR_SUCCESS != nssArena_verifyPointer(arena) ) {
-+ return (void *)NULL;
-+ }
-+ }
-+#endif /* NSSDEBUG */
-+
-+ return nss_ZNEW(arena, PLHashEntry);
-+}
-+
-+static void PR_CALLBACK
-+nss_arena_hash_free_entry
-+(
-+ void *pool,
-+ PLHashEntry *he,
-+ PRUintn flag
-+)
-+{
-+ if( HT_FREE_ENTRY == flag ) {
-+ (void)nss_ZFreeIf(he);
-+ }
-+}
-+
-+NSS_IMPLEMENT_DATA PLHashAllocOps
-+nssArenaHashAllocOps = {
-+ nss_arena_hash_alloc_table,
-+ nss_arena_hash_free_table,
-+ nss_arena_hash_alloc_entry,
-+ nss_arena_hash_free_entry
-+};
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/item.c 2004-12-13 13:06:46.844375664 +0100
-@@ -0,0 +1,241 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+/*
-+ * item.c
-+ *
-+ * This contains some item-manipulation code.
-+ */
-+
-+#ifndef BASE_H
-+#include "base.h"
-+#endif /* BASE_H */
-+
-+/*
-+ * nssItem_Create
-+ *
-+ * -- fgmr comments --
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ARENA
-+ * NSS_ERROR_NO_MEMORY
-+ * NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD
-+ * NSS_ERROR_INVALID_POINTER
-+ *
-+ * Return value:
-+ * A pointer to an NSSItem upon success
-+ * NULL upon failure
-+ */
-+
-+NSS_IMPLEMENT NSSItem *
-+nssItem_Create
-+(
-+ NSSArena *arenaOpt,
-+ NSSItem *rvOpt,
-+ PRUint32 length,
-+ const void *data
-+)
-+{
-+ NSSItem *rv = (NSSItem *)NULL;
-+
-+#ifdef DEBUG
-+ if( (NSSArena *)NULL != arenaOpt ) {
-+ if( PR_SUCCESS != nssArena_verifyPointer(arenaOpt) ) {
-+ return (NSSItem *)NULL;
-+ }
-+ }
-+
-+ if( (const void *)NULL == data ) {
-+ if( length > 0 ) {
-+ nss_SetError(NSS_ERROR_INVALID_POINTER);
-+ return (NSSItem *)NULL;
-+ }
-+ }
-+#endif /* DEBUG */
-+
-+ if( (NSSItem *)NULL == rvOpt ) {
-+ rv = (NSSItem *)nss_ZNEW(arenaOpt, NSSItem);
-+ if( (NSSItem *)NULL == rv ) {
-+ goto loser;
-+ }
-+ } else {
-+ rv = rvOpt;
-+ }
-+
-+ rv->size = length;
-+ rv->data = nss_ZAlloc(arenaOpt, length);
-+ if( (void *)NULL == rv->data ) {
-+ goto loser;
-+ }
-+
-+ if( length > 0 ) {
-+ (void)nsslibc_memcpy(rv->data, data, length);
-+ }
-+
-+ return rv;
-+
-+ loser:
-+ if( rv != rvOpt ) {
-+ nss_ZFreeIf(rv);
-+ }
-+
-+ return (NSSItem *)NULL;
-+}
-+
-+NSS_IMPLEMENT void
-+nssItem_Destroy
-+(
-+ NSSItem *item
-+)
-+{
-+ nss_ClearErrorStack();
-+
-+ nss_ZFreeIf(item->data);
-+ nss_ZFreeIf(item);
-+
-+}
-+
-+/*
-+ * nssItem_Duplicate
-+ *
-+ * -- fgmr comments --
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ARENA
-+ * NSS_ERROR_NO_MEMORY
-+ * NSS_ERROR_ARENA_MARKED_BY_ANOTHER_THREAD
-+ * NSS_ERROR_INVALID_ITEM
-+ *
-+ * Return value:
-+ * A pointer to an NSSItem upon success
-+ * NULL upon failure
-+ */
-+
-+NSS_IMPLEMENT NSSItem *
-+nssItem_Duplicate
-+(
-+ NSSItem *obj,
-+ NSSArena *arenaOpt,
-+ NSSItem *rvOpt
-+)
-+{
-+#ifdef DEBUG
-+ if( (NSSArena *)NULL != arenaOpt ) {
-+ if( PR_SUCCESS != nssArena_verifyPointer(arenaOpt) ) {
-+ return (NSSItem *)NULL;
-+ }
-+ }
-+
-+ if( (NSSItem *)NULL == obj ) {
-+ nss_SetError(NSS_ERROR_INVALID_ITEM);
-+ return (NSSItem *)NULL;
-+ }
-+#endif /* DEBUG */
-+
-+ return nssItem_Create(arenaOpt, rvOpt, obj->size, obj->data);
-+}
-+
-+#ifdef DEBUG
-+/*
-+ * nssItem_verifyPointer
-+ *
-+ * -- fgmr comments --
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ITEM
-+ *
-+ * Return value:
-+ * PR_SUCCESS upon success
-+ * PR_FAILURE upon failure
-+ */
-+
-+NSS_IMPLEMENT PRStatus
-+nssItem_verifyPointer
-+(
-+ const NSSItem *item
-+)
-+{
-+ if( ((const NSSItem *)NULL == item) ||
-+ (((void *)NULL == item->data) && (item->size > 0)) ) {
-+ nss_SetError(NSS_ERROR_INVALID_ITEM);
-+ return PR_FAILURE;
-+ }
-+
-+ return PR_SUCCESS;
-+}
-+#endif /* DEBUG */
-+
-+/*
-+ * nssItem_Equal
-+ *
-+ * -- fgmr comments --
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ITEM
-+ *
-+ * Return value:
-+ * PR_TRUE if the items are identical
-+ * PR_FALSE if they aren't
-+ * PR_FALSE upon error
-+ */
-+
-+NSS_IMPLEMENT PRBool
-+nssItem_Equal
-+(
-+ const NSSItem *one,
-+ const NSSItem *two,
-+ PRStatus *statusOpt
-+)
-+{
-+ if( (PRStatus *)NULL != statusOpt ) {
-+ *statusOpt = PR_SUCCESS;
-+ }
-+
-+ if( ((const NSSItem *)NULL == one) && ((const NSSItem *)NULL == two) ) {
-+ return PR_TRUE;
-+ }
-+
-+ if( ((const NSSItem *)NULL == one) || ((const NSSItem *)NULL == two) ) {
-+ return PR_FALSE;
-+ }
-+
-+ if( one->size != two->size ) {
-+ return PR_FALSE;
-+ }
-+
-+ return nsslibc_memequal(one->data, two->data, one->size, statusOpt);
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/libc.c 2004-12-13 13:06:46.845375512 +0100
-@@ -0,0 +1,197 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+/*
-+ * libc.c
-+ *
-+ * This file contains our wrappers/reimplementations for "standard"
-+ * libc functions. Things like "memcpy." We add to this as we need
-+ * it. Oh, and let's keep it in alphabetical order, should it ever
-+ * get large. Most string/character stuff should be in utf8.c, not
-+ * here. This file (and maybe utf8.c) should be the only ones in
-+ * NSS to include files with angle brackets.
-+ */
-+
-+#ifndef BASE_H
-+#include "base.h"
-+#endif /* BASE_H */
-+
-+#include <string.h> /* memcpy, memset */
-+
-+/*
-+ * nsslibc_memcpy
-+ * nsslibc_memset
-+ * nsslibc_offsetof
-+ * nsslibc_memequal
-+ */
-+
-+/*
-+ * nsslibc_memcpy
-+ *
-+ * Errors:
-+ * NSS_ERROR_INVALID_POINTER
-+ *
-+ * Return value:
-+ * NULL on error
-+ * The destination pointer on success
-+ */
-+
-+NSS_IMPLEMENT void *
-+nsslibc_memcpy
-+(
-+ void *dest,
-+ const void *source,
-+ PRUint32 n
-+)
-+{
-+#ifdef NSSDEBUG
-+ if( ((void *)NULL == dest) || ((const void *)NULL == source) ) {
-+ nss_SetError(NSS_ERROR_INVALID_POINTER);
-+ return (void *)NULL;
-+ }
-+#endif /* NSSDEBUG */
-+
-+ return memcpy(dest, source, (size_t)n);
-+}
-+
-+/*
-+ * nsslibc_memset
-+ *
-+ * Errors:
-+ * NSS_ERROR_INVALID_POINTER
-+ *
-+ * Return value:
-+ * NULL on error
-+ * The destination pointer on success
-+ */
-+
-+NSS_IMPLEMENT void *
-+nsslibc_memset
-+(
-+ void *dest,
-+ PRUint8 byte,
-+ PRUint32 n
-+)
-+{
-+#ifdef NSSDEBUG
-+ if( ((void *)NULL == dest) ) {
-+ nss_SetError(NSS_ERROR_INVALID_POINTER);
-+ return (void *)NULL;
-+ }
-+#endif /* NSSDEBUG */
-+
-+ return memset(dest, (int)byte, (size_t)n);
-+}
-+
-+/*
-+ * nsslibc_memequal
-+ *
-+ * Errors:
-+ * NSS_ERROR_INVALID_POINTER
-+ *
-+ * Return value:
-+ * PR_TRUE if they match
-+ * PR_FALSE if they don't
-+ * PR_FALSE upon error
-+ */
-+
-+NSS_IMPLEMENT PRBool
-+nsslibc_memequal
-+(
-+ const void *a,
-+ const void *b,
-+ PRUint32 len,
-+ PRStatus *statusOpt
-+)
-+{
-+#ifdef NSSDEBUG
-+ if( (((void *)NULL == a) || ((void *)NULL == b)) ) {
-+ nss_SetError(NSS_ERROR_INVALID_POINTER);
-+ if( (PRStatus *)NULL != statusOpt ) {
-+ *statusOpt = PR_FAILURE;
-+ }
-+ return PR_FALSE;
-+ }
-+#endif /* NSSDEBUG */
-+
-+ if( (PRStatus *)NULL != statusOpt ) {
-+ *statusOpt = PR_SUCCESS;
-+ }
-+
-+ if( 0 == memcmp(a, b, len) ) {
-+ return PR_TRUE;
-+ } else {
-+ return PR_FALSE;
-+ }
-+}
-+
-+/*
-+ * nsslibc_memcmp
-+ */
-+
-+NSS_IMPLEMENT PRInt32
-+nsslibc_memcmp
-+(
-+ const void *a,
-+ const void *b,
-+ PRUint32 len,
-+ PRStatus *statusOpt
-+)
-+{
-+ int v;
-+
-+#ifdef NSSDEBUG
-+ if( (((void *)NULL == a) || ((void *)NULL == b)) ) {
-+ nss_SetError(NSS_ERROR_INVALID_POINTER);
-+ if( (PRStatus *)NULL != statusOpt ) {
-+ *statusOpt = PR_FAILURE;
-+ }
-+ return -2;
-+ }
-+#endif /* NSSDEBUG */
-+
-+ if( (PRStatus *)NULL != statusOpt ) {
-+ *statusOpt = PR_SUCCESS;
-+ }
-+
-+ v = memcmp(a, b, len);
-+ return (PRInt32)v;
-+}
-+
-+/*
-+ * offsetof is a preprocessor definition
-+ */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/list.c 2004-12-13 13:06:46.845375512 +0100
-@@ -0,0 +1,433 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+/*
-+ * list.c
-+ *
-+ * This contains the implementation of NSS's thread-safe linked list.
-+ */
-+
-+#ifndef BASE_H
-+#include "base.h"
-+#endif /* BASE_H */
-+
-+struct nssListElementStr {
-+ PRCList link;
-+ void *data;
-+};
-+
-+typedef struct nssListElementStr nssListElement;
-+
-+struct nssListStr {
-+ NSSArena *arena;
-+ PZLock *lock;
-+ nssListElement *head;
-+ PRUint32 count;
-+ nssListCompareFunc compareFunc;
-+ nssListSortFunc sortFunc;
-+ PRBool i_alloced_arena;
-+};
-+
-+struct nssListIteratorStr {
-+ PZLock *lock;
-+ nssList *list;
-+ nssListElement *current;
-+};
-+
-+#define NSSLIST_LOCK_IF(list) \
-+ if ((list)->lock) PZ_Lock((list)->lock)
-+
-+#define NSSLIST_UNLOCK_IF(list) \
-+ if ((list)->lock) PZ_Unlock((list)->lock)
-+
-+static PRBool
-+pointer_compare(void *a, void *b)
-+{
-+ return (PRBool)(a == b);
-+}
-+
-+static nssListElement *
-+nsslist_get_matching_element(nssList *list, void *data)
-+{
-+ PRCList *link;
-+ nssListElement *node;
-+ node = list->head;
-+ if (!node) {
-+ return NULL;
-+ }
-+ link = &node->link;
-+ while (node) {
-+ /* using a callback slows things down when it's just compare ... */
-+ if (list->compareFunc(node->data, data)) {
-+ break;
-+ }
-+ link = &node->link;
-+ if (link == PR_LIST_TAIL(&list->head->link)) {
-+ node = NULL;
-+ break;
-+ }
-+ node = (nssListElement *)PR_NEXT_LINK(&node->link);
-+ }
-+ return node;
-+}
-+
-+NSS_IMPLEMENT nssList *
-+nssList_Create
-+(
-+ NSSArena *arenaOpt,
-+ PRBool threadSafe
-+)
-+{
-+ NSSArena *arena;
-+ nssList *list;
-+ PRBool i_alloced;
-+ if (arenaOpt) {
-+ arena = arenaOpt;
-+ i_alloced = PR_FALSE;
-+ } else {
-+ arena = nssArena_Create();
-+ i_alloced = PR_TRUE;
-+ }
-+ if (!arena) {
-+ return (nssList *)NULL;
-+ }
-+ list = nss_ZNEW(arena, nssList);
-+ if (!list) {
-+ if (!arenaOpt) {
-+ NSSArena_Destroy(arena);
-+ }
-+ return (nssList *)NULL;
-+ }
-+ if (threadSafe) {
-+ list->lock = PZ_NewLock(nssILockOther);
-+ if (!list->lock) {
-+ if (arenaOpt) {
-+ nss_ZFreeIf(list);
-+ } else {
-+ NSSArena_Destroy(arena);
-+ }
-+ return (nssList *)NULL;
-+ }
-+ }
-+ list->arena = arena;
-+ list->i_alloced_arena = i_alloced;
-+ list->compareFunc = pointer_compare;
-+ return list;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssList_Destroy(nssList *list)
-+{
-+ if (!list->i_alloced_arena) {
-+ nssList_Clear(list, NULL);
-+ }
-+ if (list->lock) {
-+ (void)PZ_DestroyLock(list->lock);
-+ }
-+ if (list->i_alloced_arena) {
-+ NSSArena_Destroy(list->arena);
-+ list = NULL;
-+ }
-+ nss_ZFreeIf(list);
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT void
-+nssList_SetCompareFunction(nssList *list, nssListCompareFunc compareFunc)
-+{
-+ list->compareFunc = compareFunc;
-+}
-+
-+NSS_IMPLEMENT void
-+nssList_SetSortFunction(nssList *list, nssListSortFunc sortFunc)
-+{
-+ /* XXX if list already has elements, sort them */
-+ list->sortFunc = sortFunc;
-+}
-+
-+NSS_IMPLEMENT nssListCompareFunc
-+nssList_GetCompareFunction(nssList *list)
-+{
-+ return list->compareFunc;
-+}
-+
-+NSS_IMPLEMENT void
-+nssList_Clear(nssList *list, nssListElementDestructorFunc destructor)
-+{
-+ PRCList *link;
-+ nssListElement *node, *tmp;
-+ NSSLIST_LOCK_IF(list);
-+ node = list->head;
-+ list->head = NULL;
-+ while (node && list->count > 0) {
-+ if (destructor) (*destructor)(node->data);
-+ link = &node->link;
-+ tmp = (nssListElement *)PR_NEXT_LINK(link);
-+ PR_REMOVE_LINK(link);
-+ nss_ZFreeIf(node);
-+ node = tmp;
-+ --list->count;
-+ }
-+ NSSLIST_UNLOCK_IF(list);
-+}
-+
-+static PRStatus
-+nsslist_add_element(nssList *list, void *data)
-+{
-+ nssListElement *node = nss_ZNEW(list->arena, nssListElement);
-+ if (!node) {
-+ return PR_FAILURE;
-+ }
-+ PR_INIT_CLIST(&node->link);
-+ node->data = data;
-+ if (list->head) {
-+ if (list->sortFunc) {
-+ PRCList *link;
-+ nssListElement *currNode;
-+ currNode = list->head;
-+ /* insert in ordered list */
-+ while (currNode) {
-+ link = &currNode->link;
-+ if (list->sortFunc(data, currNode->data) <= 0) {
-+ /* new element goes before current node */
-+ PR_INSERT_BEFORE(&node->link, link);
-+ /* reset head if this is first */
-+ if (currNode == list->head) list->head = node;
-+ break;
-+ }
-+ if (link == PR_LIST_TAIL(&list->head->link)) {
-+ /* reached end of list, append */
-+ PR_INSERT_AFTER(&node->link, link);
-+ break;
-+ }
-+ currNode = (nssListElement *)PR_NEXT_LINK(&currNode->link);
-+ }
-+ } else {
-+ /* not sorting */
-+ PR_APPEND_LINK(&node->link, &list->head->link);
-+ }
-+ } else {
-+ list->head = node;
-+ }
-+ ++list->count;
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssList_Add(nssList *list, void *data)
-+{
-+ PRStatus nssrv;
-+ NSSLIST_LOCK_IF(list);
-+ nssrv = nsslist_add_element(list, data);
-+ NSSLIST_UNLOCK_IF(list);
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssList_AddUnique(nssList *list, void *data)
-+{
-+ PRStatus nssrv;
-+ nssListElement *node;
-+ NSSLIST_LOCK_IF(list);
-+ node = nsslist_get_matching_element(list, data);
-+ if (node) {
-+ /* already in, finish */
-+ NSSLIST_UNLOCK_IF(list);
-+ return PR_SUCCESS;
-+ }
-+ nssrv = nsslist_add_element(list, data);
-+ NSSLIST_UNLOCK_IF(list);
-+ return nssrv;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssList_Remove(nssList *list, void *data)
-+{
-+ nssListElement *node;
-+ NSSLIST_LOCK_IF(list);
-+ node = nsslist_get_matching_element(list, data);
-+ if (node) {
-+ if (node == list->head) {
-+ list->head = (nssListElement *)PR_NEXT_LINK(&node->link);
-+ }
-+ PR_REMOVE_LINK(&node->link);
-+ nss_ZFreeIf(node);
-+ if (--list->count == 0) {
-+ list->head = NULL;
-+ }
-+ }
-+ NSSLIST_UNLOCK_IF(list);
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT void *
-+nssList_Get(nssList *list, void *data)
-+{
-+ nssListElement *node;
-+ NSSLIST_LOCK_IF(list);
-+ node = nsslist_get_matching_element(list, data);
-+ NSSLIST_UNLOCK_IF(list);
-+ return (node) ? node->data : NULL;
-+}
-+
-+NSS_IMPLEMENT PRUint32
-+nssList_Count(nssList *list)
-+{
-+ return list->count;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssList_GetArray(nssList *list, void **rvArray, PRUint32 maxElements)
-+{
-+ nssListElement *node;
-+ PRUint32 i = 0;
-+ PR_ASSERT(maxElements > 0);
-+ node = list->head;
-+ if (!node) {
-+ return PR_SUCCESS;
-+ }
-+ NSSLIST_LOCK_IF(list);
-+ while (node) {
-+ rvArray[i++] = node->data;
-+ if (i == maxElements) break;
-+ node = (nssListElement *)PR_NEXT_LINK(&node->link);
-+ if (node == list->head) {
-+ break;
-+ }
-+ }
-+ NSSLIST_UNLOCK_IF(list);
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT nssList *
-+nssList_Clone(nssList *list)
-+{
-+ nssList *rvList;
-+ nssListElement *node;
-+ rvList = nssList_Create(NULL, (list->lock != NULL));
-+ if (!rvList) {
-+ return NULL;
-+ }
-+ NSSLIST_LOCK_IF(list);
-+ if (list->count > 0) {
-+ node = list->head;
-+ while (PR_TRUE) {
-+ nssList_Add(rvList, node->data);
-+ node = (nssListElement *)PR_NEXT_LINK(&node->link);
-+ if (node == list->head) {
-+ break;
-+ }
-+ }
-+ }
-+ NSSLIST_UNLOCK_IF(list);
-+ return rvList;
-+}
-+
-+NSS_IMPLEMENT nssListIterator *
-+nssList_CreateIterator(nssList *list)
-+{
-+ nssListIterator *rvIterator;
-+ rvIterator = nss_ZNEW(NULL, nssListIterator);
-+ if (!rvIterator) {
-+ return NULL;
-+ }
-+ rvIterator->list = nssList_Clone(list);
-+ if (!rvIterator->list) {
-+ nss_ZFreeIf(rvIterator);
-+ return NULL;
-+ }
-+ rvIterator->current = rvIterator->list->head;
-+ if (list->lock) {
-+ rvIterator->lock = PZ_NewLock(nssILockOther);
-+ if (!rvIterator->lock) {
-+ nssList_Destroy(rvIterator->list);
-+ nss_ZFreeIf(rvIterator);
-+ }
-+ }
-+ return rvIterator;
-+}
-+
-+NSS_IMPLEMENT void
-+nssListIterator_Destroy(nssListIterator *iter)
-+{
-+ if (iter->lock) {
-+ (void)PZ_DestroyLock(iter->lock);
-+ }
-+ nssList_Destroy(iter->list);
-+ nss_ZFreeIf(iter);
-+}
-+
-+NSS_IMPLEMENT void *
-+nssListIterator_Start(nssListIterator *iter)
-+{
-+ NSSLIST_LOCK_IF(iter);
-+ if (iter->list->count == 0) {
-+ return NULL;
-+ }
-+ iter->current = iter->list->head;
-+ return iter->current->data;
-+}
-+
-+NSS_IMPLEMENT void *
-+nssListIterator_Next(nssListIterator *iter)
-+{
-+ nssListElement *node;
-+ PRCList *link;
-+ if (iter->list->count == 1 || iter->current == NULL) {
-+ /* Reached the end of the list. Don't change the state, force to
-+ * user to call nssList_Finish to clean up.
-+ */
-+ return NULL;
-+ }
-+ node = (nssListElement *)PR_NEXT_LINK(&iter->current->link);
-+ link = &node->link;
-+ if (link == PR_LIST_TAIL(&iter->list->head->link)) {
-+ /* Signal the end of the list. */
-+ iter->current = NULL;
-+ return node->data;
-+ }
-+ iter->current = node;
-+ return node->data;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssListIterator_Finish(nssListIterator *iter)
-+{
-+ iter->current = iter->list->head;
-+ return (iter->lock) ? PZ_Unlock(iter->lock) : PR_SUCCESS;
-+}
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/nssb64d.c 2004-12-13 13:06:46.711395880 +0100
-@@ -0,0 +1,861 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+/*
-+ * Base64 decoding (ascii to binary).
-+ *
-+ * $Id$
-+ */
-+
-+#include "nssb64.h"
-+#include "nspr.h"
-+#include "secitem.h"
-+#include "secerr.h"
-+
-+/*
-+ * XXX We want this basic support to go into NSPR (the PL part).
-+ * Until that can happen, the PL interface is going to be kept entirely
-+ * internal here -- all static functions and opaque data structures.
-+ * When someone can get it moved over into NSPR, that should be done:
-+ * - giving everything names that are accepted by the NSPR module owners
-+ * (though I tried to choose ones that would work without modification)
-+ * - exporting the functions (remove static declarations and add
-+ * PR_IMPLEMENT as necessary)
-+ * - put prototypes into appropriate header file (probably replacing
-+ * the entire current lib/libc/include/plbase64.h in NSPR)
-+ * along with a typedef for the context structure (which should be
-+ * kept opaque -- definition in the source file only, but typedef
-+ * ala "typedef struct PLBase64FooStr PLBase64Foo;" in header file)
-+ * - modify anything else as necessary to conform to NSPR required style
-+ * (I looked but found no formatting guide to follow)
-+ *
-+ * You will want to move over everything from here down to the comment
-+ * which says "XXX End of base64 decoding code to be moved into NSPR",
-+ * into a new file in NSPR.
-+ */
-+
-+/*
-+ **************************************************************
-+ * XXX Beginning of base64 decoding code to be moved into NSPR.
-+ */
-+
-+/*
-+ * This typedef would belong in the NSPR header file (i.e. plbase64.h).
-+ */
-+typedef struct PLBase64DecoderStr PLBase64Decoder;
-+
-+/*
-+ * The following implementation of base64 decoding was based on code
-+ * found in libmime (specifically, in mimeenc.c). It has been adapted to
-+ * use PR types and naming as well as to provide other necessary semantics
-+ * (like buffer-in/buffer-out in addition to "streaming" without undue
-+ * performance hit of extra copying if you made the buffer versions
-+ * use the output_fn). It also incorporates some aspects of the current
-+ * NSPR base64 decoding code. As such, you may find similarities to
-+ * both of those implementations. I tried to use names that reflected
-+ * the original code when possible. For this reason you may find some
-+ * inconsistencies -- libmime used lots of "in" and "out" whereas the
-+ * NSPR version uses "src" and "dest"; sometimes I changed one to the other
-+ * and sometimes I left them when I thought the subroutines were at least
-+ * self-consistent.
-+ */
-+
-+PR_BEGIN_EXTERN_C
-+
-+/*
-+ * Opaque object used by the decoder to store state.
-+ */
-+struct PLBase64DecoderStr {
-+ /* Current token (or portion, if token_size < 4) being decoded. */
-+ unsigned char token[4];
-+ int token_size;
-+
-+ /*
-+ * Where to write the decoded data (used when streaming, not when
-+ * doing all in-memory (buffer) operations).
-+ *
-+ * Note that this definition is chosen to be compatible with PR_Write.
-+ */
-+ PRInt32 (*output_fn) (void *output_arg, const unsigned char *buf,
-+ PRInt32 size);
-+ void *output_arg;
-+
-+ /*
-+ * Where the decoded output goes -- either temporarily (in the streaming
-+ * case, staged here before it goes to the output function) or what will
-+ * be the entire buffered result for users of the buffer version.
-+ */
-+ unsigned char *output_buffer;
-+ PRUint32 output_buflen; /* the total length of allocated buffer */
-+ PRUint32 output_length; /* the length that is currently populated */
-+};
-+
-+PR_END_EXTERN_C
-+
-+
-+/*
-+ * Table to convert an ascii "code" to its corresponding binary value.
-+ * For ease of use, the binary values in the table are the actual values
-+ * PLUS ONE. This is so that the special value of zero can denote an
-+ * invalid mapping; that was much easier than trying to fill in the other
-+ * values with some value other than zero, and to check for it.
-+ * Just remember to SUBTRACT ONE when using the value retrieved.
-+ */
-+static unsigned char base64_codetovaluep1[256] = {
-+/* 0: */ 0, 0, 0, 0, 0, 0, 0, 0,
-+/* 8: */ 0, 0, 0, 0, 0, 0, 0, 0,
-+/* 16: */ 0, 0, 0, 0, 0, 0, 0, 0,
-+/* 24: */ 0, 0, 0, 0, 0, 0, 0, 0,
-+/* 32: */ 0, 0, 0, 0, 0, 0, 0, 0,
-+/* 40: */ 0, 0, 0, 63, 0, 0, 0, 64,
-+/* 48: */ 53, 54, 55, 56, 57, 58, 59, 60,
-+/* 56: */ 61, 62, 0, 0, 0, 0, 0, 0,
-+/* 64: */ 0, 1, 2, 3, 4, 5, 6, 7,
-+/* 72: */ 8, 9, 10, 11, 12, 13, 14, 15,
-+/* 80: */ 16, 17, 18, 19, 20, 21, 22, 23,
-+/* 88: */ 24, 25, 26, 0, 0, 0, 0, 0,
-+/* 96: */ 0, 27, 28, 29, 30, 31, 32, 33,
-+/* 104: */ 34, 35, 36, 37, 38, 39, 40, 41,
-+/* 112: */ 42, 43, 44, 45, 46, 47, 48, 49,
-+/* 120: */ 50, 51, 52, 0, 0, 0, 0, 0,
-+/* 128: */ 0, 0, 0, 0, 0, 0, 0, 0
-+/* and rest are all zero as well */
-+};
-+
-+#define B64_PAD '='
-+
-+
-+/*
-+ * Reads 4; writes 3 (known, or expected, to have no trailing padding).
-+ * Returns bytes written; -1 on error (unexpected character).
-+ */
-+static int
-+pl_base64_decode_4to3 (const unsigned char *in, unsigned char *out)
-+{
-+ int j;
-+ PRUint32 num = 0;
-+ unsigned char bits;
-+
-+ for (j = 0; j < 4; j++) {
-+ bits = base64_codetovaluep1[in[j]];
-+ if (bits == 0)
-+ return -1;
-+ num = (num << 6) | (bits - 1);
-+ }
-+
-+ out[0] = (unsigned char) (num >> 16);
-+ out[1] = (unsigned char) ((num >> 8) & 0xFF);
-+ out[2] = (unsigned char) (num & 0xFF);
-+
-+ return 3;
-+}
-+
-+/*
-+ * Reads 3; writes 2 (caller already confirmed EOF or trailing padding).
-+ * Returns bytes written; -1 on error (unexpected character).
-+ */
-+static int
-+pl_base64_decode_3to2 (const unsigned char *in, unsigned char *out)
-+{
-+ PRUint32 num = 0;
-+ unsigned char bits1, bits2, bits3;
-+
-+ bits1 = base64_codetovaluep1[in[0]];
-+ bits2 = base64_codetovaluep1[in[1]];
-+ bits3 = base64_codetovaluep1[in[2]];
-+
-+ if ((bits1 == 0) || (bits2 == 0) || (bits3 == 0))
-+ return -1;
-+
-+ num = ((PRUint32)(bits1 - 1)) << 10;
-+ num |= ((PRUint32)(bits2 - 1)) << 4;
-+ num |= ((PRUint32)(bits3 - 1)) >> 2;
-+
-+ out[0] = (unsigned char) (num >> 8);
-+ out[1] = (unsigned char) (num & 0xFF);
-+
-+ return 2;
-+}
-+
-+/*
-+ * Reads 2; writes 1 (caller already confirmed EOF or trailing padding).
-+ * Returns bytes written; -1 on error (unexpected character).
-+ */
-+static int
-+pl_base64_decode_2to1 (const unsigned char *in, unsigned char *out)
-+{
-+ PRUint32 num = 0;
-+ unsigned char bits1, bits2;
-+
-+ bits1 = base64_codetovaluep1[in[0]];
-+ bits2 = base64_codetovaluep1[in[1]];
-+
-+ if ((bits1 == 0) || (bits2 == 0))
-+ return -1;
-+
-+ num = ((PRUint32)(bits1 - 1)) << 2;
-+ num |= ((PRUint32)(bits2 - 1)) >> 4;
-+
-+ out[0] = (unsigned char) num;
-+
-+ return 1;
-+}
-+
-+/*
-+ * Reads 4; writes 0-3. Returns bytes written or -1 on error.
-+ * (Writes less than 3 only at (presumed) EOF.)
-+ */
-+static int
-+pl_base64_decode_token (const unsigned char *in, unsigned char *out)
-+{
-+ if (in[3] != B64_PAD)
-+ return pl_base64_decode_4to3 (in, out);
-+
-+ if (in[2] == B64_PAD)
-+ return pl_base64_decode_2to1 (in, out);
-+
-+ return pl_base64_decode_3to2 (in, out);
-+}
-+
-+static PRStatus
-+pl_base64_decode_buffer (PLBase64Decoder *data, const unsigned char *in,
-+ PRUint32 length)
-+{
-+ unsigned char *out = data->output_buffer;
-+ unsigned char *token = data->token;
-+ int i, n = 0;
-+
-+ i = data->token_size;
-+ data->token_size = 0;
-+
-+ while (length > 0) {
-+ while (i < 4 && length > 0) {
-+ /*
-+ * XXX Note that the following simply ignores any unexpected
-+ * characters. This is exactly what the original code in
-+ * libmime did, and I am leaving it. We certainly want to skip
-+ * over whitespace (we must); this does much more than that.
-+ * I am not confident changing it, and I don't want to slow
-+ * the processing down doing more complicated checking, but
-+ * someone else might have different ideas in the future.
-+ */
-+ if (base64_codetovaluep1[*in] > 0 || *in == B64_PAD)
-+ token[i++] = *in;
-+ in++;
-+ length--;
-+ }
-+
-+ if (i < 4) {
-+ /* Didn't get enough for a complete token. */
-+ data->token_size = i;
-+ break;
-+ }
-+ i = 0;
-+
-+ PR_ASSERT((out - data->output_buffer + 3) <= data->output_buflen);
-+
-+ /*
-+ * Assume we are not at the end; the following function only works
-+ * for an internal token (no trailing padding characters) but is
-+ * faster that way. If it hits an invalid character (padding) it
-+ * will return an error; we break out of the loop and try again
-+ * calling the routine that will handle a final token.
-+ * Note that we intentionally do it this way rather than explicitly
-+ * add a check for padding here (because that would just slow down
-+ * the normal case) nor do we rely on checking whether we have more
-+ * input to process (because that would also slow it down but also
-+ * because we want to allow trailing garbage, especially white space
-+ * and cannot tell that without read-ahead, also a slow proposition).
-+ * Whew. Understand?
-+ */
-+ n = pl_base64_decode_4to3 (token, out);
-+ if (n < 0)
-+ break;
-+
-+ /* Advance "out" by the number of bytes just written to it. */
-+ out += n;
-+ n = 0;
-+ }
-+
-+ /*
-+ * See big comment above, before call to pl_base64_decode_4to3.
-+ * Here we check if we error'd out of loop, and allow for the case
-+ * that we are processing the last interesting token. If the routine
-+ * which should handle padding characters also fails, then we just
-+ * have bad input and give up.
-+ */
-+ if (n < 0) {
-+ n = pl_base64_decode_token (token, out);
-+ if (n < 0)
-+ return PR_FAILURE;
-+
-+ out += n;
-+ }
-+
-+ /*
-+ * As explained above, we can get here with more input remaining, but
-+ * it should be all characters we do not care about (i.e. would be
-+ * ignored when transferring from "in" to "token" in loop above,
-+ * except here we choose to ignore extraneous pad characters, too).
-+ * Swallow it, performing that check. If we find more characters that
-+ * we would expect to decode, something is wrong.
-+ */
-+ while (length > 0) {
-+ if (base64_codetovaluep1[*in] > 0)
-+ return PR_FAILURE;
-+ in++;
-+ length--;
-+ }
-+
-+ /* Record the length of decoded data we have left in output_buffer. */
-+ data->output_length = (PRUint32) (out - data->output_buffer);
-+ return PR_SUCCESS;
-+}
-+
-+/*
-+ * Flush any remaining buffered characters. Given well-formed input,
-+ * this will have nothing to do. If the input was missing the padding
-+ * characters at the end, though, there could be 1-3 characters left
-+ * behind -- we will tolerate that by adding the padding for them.
-+ */
-+static PRStatus
-+pl_base64_decode_flush (PLBase64Decoder *data)
-+{
-+ int count;
-+
-+ /*
-+ * If no remaining characters, or all are padding (also not well-formed
-+ * input, but again, be tolerant), then nothing more to do. (And, that
-+ * is considered successful.)
-+ */
-+ if (data->token_size == 0 || data->token[0] == B64_PAD)
-+ return PR_SUCCESS;
-+
-+ /*
-+ * Assume we have all the interesting input except for some expected
-+ * padding characters. Add them and decode the resulting token.
-+ */
-+ while (data->token_size < 4)
-+ data->token[data->token_size++] = B64_PAD;
-+
-+ data->token_size = 0; /* so a subsequent flush call is a no-op */
-+
-+ count = pl_base64_decode_token (data->token,
-+ data->output_buffer + data->output_length);
-+ if (count < 0)
-+ return PR_FAILURE;
-+
-+ /*
-+ * If there is an output function, call it with this last bit of data.
-+ * Otherwise we are doing all buffered output, and the decoded bytes
-+ * are now there, we just need to reflect that in the length.
-+ */
-+ if (data->output_fn != NULL) {
-+ PRInt32 output_result;
-+
-+ PR_ASSERT(data->output_length == 0);
-+ output_result = data->output_fn (data->output_arg,
-+ data->output_buffer,
-+ (PRInt32) count);
-+ if (output_result < 0)
-+ return PR_FAILURE;
-+ } else {
-+ data->output_length += count;
-+ }
-+
-+ return PR_SUCCESS;
-+}
-+
-+
-+/*
-+ * The maximum space needed to hold the output of the decoder given
-+ * input data of length "size".
-+ */
-+static PRUint32
-+PL_Base64MaxDecodedLength (PRUint32 size)
-+{
-+ return ((size * 3) / 4);
-+}
-+
-+
-+/*
-+ * A distinct internal creation function for the buffer version to use.
-+ * (It does not want to specify an output_fn, and we want the normal
-+ * Create function to require that.) If more common initialization
-+ * of the decoding context needs to be done, it should be done *here*.
-+ */
-+static PLBase64Decoder *
-+pl_base64_create_decoder (void)
-+{
-+ return PR_NEWZAP(PLBase64Decoder);
-+}
-+
-+/*
-+ * Function to start a base64 decoding context.
-+ * An "output_fn" is required; the "output_arg" parameter to that is optional.
-+ */
-+static PLBase64Decoder *
-+PL_CreateBase64Decoder (PRInt32 (*output_fn) (void *, const unsigned char *,
-+ PRInt32),
-+ void *output_arg)
-+{
-+ PLBase64Decoder *data;
-+
-+ if (output_fn == NULL) {
-+ PR_SetError (PR_INVALID_ARGUMENT_ERROR, 0);
-+ return NULL;
-+ }
-+
-+ data = pl_base64_create_decoder ();
-+ if (data != NULL) {
-+ data->output_fn = output_fn;
-+ data->output_arg = output_arg;
-+ }
-+ return data;
-+}
-+
-+
-+/*
-+ * Push data through the decoder, causing the output_fn (provided to Create)
-+ * to be called with the decoded data.
-+ */
-+static PRStatus
-+PL_UpdateBase64Decoder (PLBase64Decoder *data, const char *buffer,
-+ PRUint32 size)
-+{
-+ PRUint32 need_length;
-+ PRStatus status;
-+
-+ /* XXX Should we do argument checking only in debug build? */
-+ if (data == NULL || buffer == NULL || size == 0) {
-+ PR_SetError (PR_INVALID_ARGUMENT_ERROR, 0);
-+ return PR_FAILURE;
-+ }
-+
-+ /*
-+ * How much space could this update need for decoding?
-+ */
-+ need_length = PL_Base64MaxDecodedLength (size + data->token_size);
-+
-+ /*
-+ * Make sure we have at least that much. If not, (re-)allocate.
-+ */
-+ if (need_length > data->output_buflen) {
-+ unsigned char *output_buffer = data->output_buffer;
-+
-+ if (output_buffer != NULL)
-+ output_buffer = (unsigned char *) PR_Realloc(output_buffer,
-+ need_length);
-+ else
-+ output_buffer = (unsigned char *) PR_Malloc(need_length);
-+
-+ if (output_buffer == NULL)
-+ return PR_FAILURE;
-+
-+ data->output_buffer = output_buffer;
-+ data->output_buflen = need_length;
-+ }
-+
-+ /* There should not have been any leftover output data in the buffer. */
-+ PR_ASSERT(data->output_length == 0);
-+ data->output_length = 0;
-+
-+ status = pl_base64_decode_buffer (data, (const unsigned char *) buffer,
-+ size);
-+
-+ /* Now that we have some decoded data, write it. */
-+ if (status == PR_SUCCESS && data->output_length > 0) {
-+ PRInt32 output_result;
-+
-+ PR_ASSERT(data->output_fn != NULL);
-+ output_result = data->output_fn (data->output_arg,
-+ data->output_buffer,
-+ (PRInt32) data->output_length);
-+ if (output_result < 0)
-+ status = PR_FAILURE;
-+ }
-+
-+ data->output_length = 0;
-+ return status;
-+}
-+
-+
-+/*
-+ * When you're done decoding, call this to free the data. If "abort_p"
-+ * is false, then calling this may cause the output_fn to be called
-+ * one last time (as the last buffered data is flushed out).
-+ */
-+static PRStatus
-+PL_DestroyBase64Decoder (PLBase64Decoder *data, PRBool abort_p)
-+{
-+ PRStatus status = PR_SUCCESS;
-+
-+ /* XXX Should we do argument checking only in debug build? */
-+ if (data == NULL) {
-+ PR_SetError (PR_INVALID_ARGUMENT_ERROR, 0);
-+ return PR_FAILURE;
-+ }
-+
-+ /* Flush out the last few buffered characters. */
-+ if (!abort_p)
-+ status = pl_base64_decode_flush (data);
-+
-+ if (data->output_buffer != NULL)
-+ PR_Free(data->output_buffer);
-+ PR_Free(data);
-+
-+ return status;
-+}
-+
-+
-+/*
-+ * Perform base64 decoding from an input buffer to an output buffer.
-+ * The output buffer can be provided (as "dest"); you can also pass in
-+ * a NULL and this function will allocate a buffer large enough for you,
-+ * and return it. If you do provide the output buffer, you must also
-+ * provide the maximum length of that buffer (as "maxdestlen").
-+ * The actual decoded length of output will be returned to you in
-+ * "output_destlen".
-+ *
-+ * Return value is NULL on error, the output buffer (allocated or provided)
-+ * otherwise.
-+ */
-+static unsigned char *
-+PL_Base64DecodeBuffer (const char *src, PRUint32 srclen, unsigned char *dest,
-+ PRUint32 maxdestlen, PRUint32 *output_destlen)
-+{
-+ PRUint32 need_length;
-+ unsigned char *output_buffer = NULL;
-+ PLBase64Decoder *data = NULL;
-+ PRStatus status;
-+
-+ PR_ASSERT(srclen > 0);
-+ if (srclen == 0)
-+ return dest;
-+
-+ /*
-+ * How much space could we possibly need for decoding this input?
-+ */
-+ need_length = PL_Base64MaxDecodedLength (srclen);
-+
-+ /*
-+ * Make sure we have at least that much, if output buffer provided.
-+ * If no output buffer provided, then we allocate that much.
-+ */
-+ if (dest != NULL) {
-+ PR_ASSERT(maxdestlen >= need_length);
-+ if (maxdestlen < need_length) {
-+ PR_SetError(PR_BUFFER_OVERFLOW_ERROR, 0);
-+ goto loser;
-+ }
-+ output_buffer = dest;
-+ } else {
-+ output_buffer = (unsigned char *) PR_Malloc(need_length);
-+ if (output_buffer == NULL)
-+ goto loser;
-+ maxdestlen = need_length;
-+ }
-+
-+ data = pl_base64_create_decoder();
-+ if (data == NULL)
-+ goto loser;
-+
-+ data->output_buflen = maxdestlen;
-+ data->output_buffer = output_buffer;
-+
-+ status = pl_base64_decode_buffer (data, (const unsigned char *) src,
-+ srclen);
-+
-+ /*
-+ * We do not wait for Destroy to flush, because Destroy will also
-+ * get rid of our decoder context, which we need to look at first!
-+ */
-+ if (status == PR_SUCCESS)
-+ status = pl_base64_decode_flush (data);
-+
-+ /* Must clear this or Destroy will free it. */
-+ data->output_buffer = NULL;
-+
-+ if (status == PR_SUCCESS) {
-+ *output_destlen = data->output_length;
-+ status = PL_DestroyBase64Decoder (data, PR_FALSE);
-+ data = NULL;
-+ if (status == PR_FAILURE)
-+ goto loser;
-+ return output_buffer;
-+ }
-+
-+loser:
-+ if (dest == NULL && output_buffer != NULL)
-+ PR_Free(output_buffer);
-+ if (data != NULL)
-+ (void) PL_DestroyBase64Decoder (data, PR_TRUE);
-+ return NULL;
-+}
-+
-+
-+/*
-+ * XXX End of base64 decoding code to be moved into NSPR.
-+ ********************************************************
-+ */
-+
-+/*
-+ * This is the beginning of the NSS cover functions. These will
-+ * provide the interface we want to expose as NSS-ish. For example,
-+ * they will operate on our Items, do any special handling or checking
-+ * we want to do, etc.
-+ */
-+
-+
-+PR_BEGIN_EXTERN_C
-+
-+/*
-+ * A boring cover structure for now. Perhaps someday it will include
-+ * some more interesting fields.
-+ */
-+struct NSSBase64DecoderStr {
-+ PLBase64Decoder *pl_data;
-+};
-+
-+PR_END_EXTERN_C
-+
-+
-+/*
-+ * Function to start a base64 decoding context.
-+ */
-+NSSBase64Decoder *
-+NSSBase64Decoder_Create (PRInt32 (*output_fn) (void *, const unsigned char *,
-+ PRInt32),
-+ void *output_arg)
-+{
-+ PLBase64Decoder *pl_data;
-+ NSSBase64Decoder *nss_data;
-+
-+ nss_data = PORT_ZNew(NSSBase64Decoder);
-+ if (nss_data == NULL)
-+ return NULL;
-+
-+ pl_data = PL_CreateBase64Decoder (output_fn, output_arg);
-+ if (pl_data == NULL) {
-+ PORT_Free(nss_data);
-+ return NULL;
-+ }
-+
-+ nss_data->pl_data = pl_data;
-+ return nss_data;
-+}
-+
-+
-+/*
-+ * Push data through the decoder, causing the output_fn (provided to Create)
-+ * to be called with the decoded data.
-+ */
-+SECStatus
-+NSSBase64Decoder_Update (NSSBase64Decoder *data, const char *buffer,
-+ PRUint32 size)
-+{
-+ PRStatus pr_status;
-+
-+ /* XXX Should we do argument checking only in debug build? */
-+ if (data == NULL) {
-+ PORT_SetError (SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+
-+ pr_status = PL_UpdateBase64Decoder (data->pl_data, buffer, size);
-+ if (pr_status == PR_FAILURE)
-+ return SECFailure;
-+
-+ return SECSuccess;
-+}
-+
-+
-+/*
-+ * When you're done decoding, call this to free the data. If "abort_p"
-+ * is false, then calling this may cause the output_fn to be called
-+ * one last time (as the last buffered data is flushed out).
-+ */
-+SECStatus
-+NSSBase64Decoder_Destroy (NSSBase64Decoder *data, PRBool abort_p)
-+{
-+ PRStatus pr_status;
-+
-+ /* XXX Should we do argument checking only in debug build? */
-+ if (data == NULL) {
-+ PORT_SetError (SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+
-+ pr_status = PL_DestroyBase64Decoder (data->pl_data, abort_p);
-+
-+ PORT_Free(data);
-+
-+ if (pr_status == PR_FAILURE)
-+ return SECFailure;
-+
-+ return SECSuccess;
-+}
-+
-+
-+/*
-+ * Perform base64 decoding from an ascii string "inStr" to an Item.
-+ * The length of the input must be provided as "inLen". The Item
-+ * may be provided (as "outItemOpt"); you can also pass in a NULL
-+ * and the Item will be allocated for you.
-+ *
-+ * In any case, the data within the Item will be allocated for you.
-+ * All allocation will happen out of the passed-in "arenaOpt", if non-NULL.
-+ * If "arenaOpt" is NULL, standard allocation (heap) will be used and
-+ * you will want to free the result via SECITEM_FreeItem.
-+ *
-+ * Return value is NULL on error, the Item (allocated or provided) otherwise.
-+ */
-+SECItem *
-+NSSBase64_DecodeBuffer (PRArenaPool *arenaOpt, SECItem *outItemOpt,
-+ const char *inStr, unsigned int inLen)
-+{
-+ SECItem *out_item = outItemOpt;
-+ PRUint32 max_out_len = PL_Base64MaxDecodedLength (inLen);
-+ PRUint32 out_len;
-+ void *mark = NULL;
-+ unsigned char *dummy;
-+
-+ PORT_Assert(outItemOpt == NULL || outItemOpt->data == NULL);
-+
-+ if (arenaOpt != NULL)
-+ mark = PORT_ArenaMark (arenaOpt);
-+
-+ out_item = SECITEM_AllocItem (arenaOpt, outItemOpt, max_out_len);
-+ if (out_item == NULL) {
-+ if (arenaOpt != NULL)
-+ PORT_ArenaRelease (arenaOpt, mark);
-+ return NULL;
-+ }
-+
-+ dummy = PL_Base64DecodeBuffer (inStr, inLen, out_item->data,
-+ max_out_len, &out_len);
-+ if (dummy == NULL) {
-+ if (arenaOpt != NULL) {
-+ PORT_ArenaRelease (arenaOpt, mark);
-+ if (outItemOpt != NULL) {
-+ outItemOpt->data = NULL;
-+ outItemOpt->len = 0;
-+ }
-+ } else {
-+ SECITEM_FreeItem (out_item,
-+ (outItemOpt == NULL) ? PR_TRUE : PR_FALSE);
-+ }
-+ return NULL;
-+ }
-+
-+ if (arenaOpt != NULL)
-+ PORT_ArenaUnmark (arenaOpt, mark);
-+ out_item->len = out_len;
-+ return out_item;
-+}
-+
-+
-+/*
-+ * XXX Everything below is deprecated. If you add new stuff, put it
-+ * *above*, not below.
-+ */
-+
-+/*
-+ * XXX The following "ATOB" functions are provided for backward compatibility
-+ * with current code. They should be considered strongly deprecated.
-+ * When we can convert all our code over to using the new NSSBase64Decoder_
-+ * functions defined above, we should get rid of these altogether. (Remove
-+ * protoypes from base64.h as well -- actually, remove that file completely).
-+ * If someone thinks either of these functions provides such a very useful
-+ * interface (though, as shown, the same functionality can already be
-+ * obtained by calling NSSBase64_DecodeBuffer directly), fine -- but then
-+ * that API should be provided with a nice new NSSFoo name and using
-+ * appropriate types, etc.
-+ */
-+
-+#include "base64.h"
-+
-+/*
-+** Return an PORT_Alloc'd string which is the base64 decoded version
-+** of the input string; set *lenp to the length of the returned data.
-+*/
-+unsigned char *
-+ATOB_AsciiToData(const char *string, unsigned int *lenp)
-+{
-+ SECItem binary_item, *dummy;
-+
-+ binary_item.data = NULL;
-+ binary_item.len = 0;
-+
-+ dummy = NSSBase64_DecodeBuffer (NULL, &binary_item, string,
-+ (PRUint32) PORT_Strlen(string));
-+ if (dummy == NULL)
-+ return NULL;
-+
-+ PORT_Assert(dummy == &binary_item);
-+
-+ *lenp = dummy->len;
-+ return dummy->data;
-+}
-+
-+/*
-+** Convert from ascii to binary encoding of an item.
-+*/
-+SECStatus
-+ATOB_ConvertAsciiToItem(SECItem *binary_item, char *ascii)
-+{
-+ SECItem *dummy;
-+
-+ if (binary_item == NULL) {
-+ PORT_SetError (SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+
-+ /*
-+ * XXX Would prefer to assert here if data is non-null (actually,
-+ * don't need to, just let NSSBase64_DecodeBuffer do it), so as to
-+ * to catch unintended memory leaks, but callers are not clean in
-+ * this respect so we need to explicitly clear here to avoid the
-+ * assert in NSSBase64_DecodeBuffer.
-+ */
-+ binary_item->data = NULL;
-+ binary_item->len = 0;
-+
-+ dummy = NSSBase64_DecodeBuffer (NULL, binary_item, ascii,
-+ (PRUint32) PORT_Strlen(ascii));
-+
-+ if (dummy == NULL)
-+ return SECFailure;
-+
-+ return SECSuccess;
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/nssb64e.c 2004-12-13 13:06:46.712395728 +0100
-@@ -0,0 +1,762 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+/*
-+ * Base64 encoding (binary to ascii).
-+ *
-+ * $Id$
-+ */
-+
-+#include "nssb64.h"
-+#include "nspr.h"
-+#include "secitem.h"
-+#include "secerr.h"
-+
-+/*
-+ * XXX See the big comment at the top of nssb64d.c about moving the
-+ * bulk of this code over into NSPR (the PL part). It all applies
-+ * here but I didn't want to duplicate it, to avoid divergence problems.
-+ */
-+
-+/*
-+ **************************************************************
-+ * XXX Beginning of base64 encoding code to be moved into NSPR.
-+ */
-+
-+
-+struct PLBase64EncodeStateStr {
-+ unsigned chunks;
-+ unsigned saved;
-+ unsigned char buf[3];
-+};
-+
-+/*
-+ * This typedef would belong in the NSPR header file (i.e. plbase64.h).
-+ */
-+typedef struct PLBase64EncoderStr PLBase64Encoder;
-+
-+/*
-+ * The following implementation of base64 encoding was based on code
-+ * found in libmime (specifically, in mimeenc.c). It has been adapted to
-+ * use PR types and naming as well as to provide other necessary semantics
-+ * (like buffer-in/buffer-out in addition to "streaming" without undue
-+ * performance hit of extra copying if you made the buffer versions
-+ * use the output_fn). It also incorporates some aspects of the current
-+ * NSPR base64 encoding code. As such, you may find similarities to
-+ * both of those implementations. I tried to use names that reflected
-+ * the original code when possible. For this reason you may find some
-+ * inconsistencies -- libmime used lots of "in" and "out" whereas the
-+ * NSPR version uses "src" and "dest"; sometimes I changed one to the other
-+ * and sometimes I left them when I thought the subroutines were at least
-+ * self-consistent.
-+ */
-+
-+PR_BEGIN_EXTERN_C
-+
-+/*
-+ * Opaque object used by the encoder to store state.
-+ */
-+struct PLBase64EncoderStr {
-+ /*
-+ * The one or two bytes pending. (We need 3 to create a "token",
-+ * and hold the leftovers here. in_buffer_count is *only* ever
-+ * 0, 1, or 2.
-+ */
-+ unsigned char in_buffer[2];
-+ int in_buffer_count;
-+
-+ /*
-+ * If the caller wants linebreaks added, line_length specifies
-+ * where they come out. It must be a multiple of 4; if the caller
-+ * provides one that isn't, we round it down to the nearest
-+ * multiple of 4.
-+ *
-+ * The value of current_column counts how many characters have been
-+ * added since the last linebreaks (or since the beginning, on the
-+ * first line). It is also always a multiple of 4; it is unused when
-+ * line_length is 0.
-+ */
-+ PRUint32 line_length;
-+ PRUint32 current_column;
-+
-+ /*
-+ * Where to write the encoded data (used when streaming, not when
-+ * doing all in-memory (buffer) operations).
-+ *
-+ * Note that this definition is chosen to be compatible with PR_Write.
-+ */
-+ PRInt32 (*output_fn) (void *output_arg, const char *buf, PRInt32 size);
-+ void *output_arg;
-+
-+ /*
-+ * Where the encoded output goes -- either temporarily (in the streaming
-+ * case, staged here before it goes to the output function) or what will
-+ * be the entire buffered result for users of the buffer version.
-+ */
-+ char *output_buffer;
-+ PRUint32 output_buflen; /* the total length of allocated buffer */
-+ PRUint32 output_length; /* the length that is currently populated */
-+};
-+
-+PR_END_EXTERN_C
-+
-+
-+/*
-+ * Table to convert a binary value to its corresponding ascii "code".
-+ */
-+static unsigned char base64_valuetocode[64] =
-+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-+
-+#define B64_PAD '='
-+#define B64_CR '\r'
-+#define B64_LF '\n'
-+
-+static PRStatus
-+pl_base64_encode_buffer (PLBase64Encoder *data, const unsigned char *in,
-+ PRUint32 size)
-+{
-+ const unsigned char *end = in + size;
-+ char *out = data->output_buffer + data->output_length;
-+ unsigned int i = data->in_buffer_count;
-+ PRUint32 n = 0;
-+ int off;
-+ PRUint32 output_threshold;
-+
-+ /* If this input buffer is too small, wait until next time. */
-+ if (size < (3 - i)) {
-+ data->in_buffer[i++] = in[0];
-+ if (size > 1)
-+ data->in_buffer[i++] = in[1];
-+ PR_ASSERT(i < 3);
-+ data->in_buffer_count = i;
-+ return PR_SUCCESS;
-+ }
-+
-+ /* If there are bytes that were put back last time, take them now. */
-+ if (i > 0) {
-+ n = data->in_buffer[0];
-+ if (i > 1)
-+ n = (n << 8) | data->in_buffer[1];
-+ data->in_buffer_count = 0;
-+ }
-+
-+ /* If our total is not a multiple of three, put one or two bytes back. */
-+ off = (size + i) % 3;
-+ if (off > 0) {
-+ size -= off;
-+ data->in_buffer[0] = in[size];
-+ if (off > 1)
-+ data->in_buffer[1] = in[size + 1];
-+ data->in_buffer_count = off;
-+ end -= off;
-+ }
-+
-+ output_threshold = data->output_buflen - 3;
-+
-+ /*
-+ * Populate the output buffer with base64 data, one line (or buffer)
-+ * at a time.
-+ */
-+ while (in < end) {
-+ int j, k;
-+
-+ while (i < 3) {
-+ n = (n << 8) | *in++;
-+ i++;
-+ }
-+ i = 0;
-+
-+ if (data->line_length > 0) {
-+ if (data->current_column >= data->line_length) {
-+ data->current_column = 0;
-+ *out++ = B64_CR;
-+ *out++ = B64_LF;
-+ data->output_length += 2;
-+ }
-+ data->current_column += 4; /* the bytes we are about to add */
-+ }
-+
-+ for (j = 18; j >= 0; j -= 6) {
-+ k = (n >> j) & 0x3F;
-+ *out++ = base64_valuetocode[k];
-+ }
-+ n = 0;
-+ data->output_length += 4;
-+
-+ if (data->output_length >= output_threshold) {
-+ PR_ASSERT(data->output_length <= data->output_buflen);
-+ if (data->output_fn != NULL) {
-+ PRInt32 output_result;
-+
-+ output_result = data->output_fn (data->output_arg,
-+ data->output_buffer,
-+ (PRInt32) data->output_length);
-+ if (output_result < 0)
-+ return PR_FAILURE;
-+
-+ out = data->output_buffer;
-+ data->output_length = 0;
-+ } else {
-+ /*
-+ * Check that we are about to exit the loop. (Since we
-+ * are over the threshold, there isn't enough room in the
-+ * output buffer for another trip around.)
-+ */
-+ PR_ASSERT(in == end);
-+ if (in < end) {
-+ PR_SetError (PR_BUFFER_OVERFLOW_ERROR, 0);
-+ return PR_FAILURE;
-+ }
-+ }
-+ }
-+ }
-+
-+ return PR_SUCCESS;
-+}
-+
-+static PRStatus
-+pl_base64_encode_flush (PLBase64Encoder *data)
-+{
-+ int i = data->in_buffer_count;
-+
-+ if (i == 0 && data->output_length == 0)
-+ return PR_SUCCESS;
-+
-+ if (i > 0) {
-+ char *out = data->output_buffer + data->output_length;
-+ PRUint32 n;
-+ int j, k;
-+
-+ n = ((PRUint32) data->in_buffer[0]) << 16;
-+ if (i > 1)
-+ n |= ((PRUint32) data->in_buffer[1] << 8);
-+
-+ data->in_buffer_count = 0;
-+
-+ if (data->line_length > 0) {
-+ if (data->current_column >= data->line_length) {
-+ data->current_column = 0;
-+ *out++ = B64_CR;
-+ *out++ = B64_LF;
-+ data->output_length += 2;
-+ }
-+ }
-+
-+ /*
-+ * This will fill in more than we really have data for, but the
-+ * valid parts will end up in the correct position and the extras
-+ * will be over-written with pad characters below.
-+ */
-+ for (j = 18; j >= 0; j -= 6) {
-+ k = (n >> j) & 0x3F;
-+ *out++ = base64_valuetocode[k];
-+ }
-+
-+ /* Pad with equal-signs. */
-+ if (i == 1)
-+ out[-2] = B64_PAD;
-+ out[-1] = B64_PAD;
-+
-+ data->output_length += 4;
-+ }
-+
-+ if (data->output_fn != NULL) {
-+ PRInt32 output_result;
-+
-+ output_result = data->output_fn (data->output_arg, data->output_buffer,
-+ (PRInt32) data->output_length);
-+ data->output_length = 0;
-+
-+ if (output_result < 0)
-+ return PR_FAILURE;
-+ }
-+
-+ return PR_SUCCESS;
-+}
-+
-+
-+/*
-+ * The maximum space needed to hold the output of the encoder given input
-+ * data of length "size", and allowing for CRLF added at least every
-+ * line_length bytes (we will add it at nearest lower multiple of 4).
-+ * There is no trailing CRLF.
-+ */
-+static PRUint32
-+PL_Base64MaxEncodedLength (PRUint32 size, PRUint32 line_length)
-+{
-+ PRUint32 tokens, tokens_per_line, full_lines, line_break_chars, remainder;
-+
-+ tokens = (size + 2) / 3;
-+
-+ if (line_length == 0)
-+ return tokens * 4;
-+
-+ if (line_length < 4) /* too small! */
-+ line_length = 4;
-+
-+ tokens_per_line = line_length / 4;
-+ full_lines = tokens / tokens_per_line;
-+ remainder = (tokens - (full_lines * tokens_per_line)) * 4;
-+ line_break_chars = full_lines * 2;
-+ if (remainder == 0)
-+ line_break_chars -= 2;
-+
-+ return (full_lines * tokens_per_line * 4) + line_break_chars + remainder;
-+}
-+
-+
-+/*
-+ * A distinct internal creation function for the buffer version to use.
-+ * (It does not want to specify an output_fn, and we want the normal
-+ * Create function to require that.) All common initialization of the
-+ * encoding context should be done *here*.
-+ *
-+ * Save "line_length", rounded down to nearest multiple of 4 (if not
-+ * already even multiple). Allocate output_buffer, if not provided --
-+ * based on given size if specified, otherwise based on line_length.
-+ */
-+static PLBase64Encoder *
-+pl_base64_create_encoder (PRUint32 line_length, char *output_buffer,
-+ PRUint32 output_buflen)
-+{
-+ PLBase64Encoder *data;
-+ PRUint32 line_tokens;
-+
-+ data = PR_NEWZAP(PLBase64Encoder);
-+ if (data == NULL)
-+ return NULL;
-+
-+ if (line_length > 0 && line_length < 4) /* too small! */
-+ line_length = 4;
-+
-+ line_tokens = line_length / 4;
-+ data->line_length = line_tokens * 4;
-+
-+ if (output_buffer == NULL) {
-+ if (output_buflen == 0) {
-+ if (data->line_length > 0) /* need to include room for CRLF */
-+ output_buflen = data->line_length + 2;
-+ else
-+ output_buflen = 64; /* XXX what is a good size? */
-+ }
-+
-+ output_buffer = (char *) PR_Malloc(output_buflen);
-+ if (output_buffer == NULL) {
-+ PR_Free(data);
-+ return NULL;
-+ }
-+ }
-+
-+ data->output_buffer = output_buffer;
-+ data->output_buflen = output_buflen;
-+ return data;
-+}
-+
-+/*
-+ * Function to start a base64 encoding context.
-+ * An "output_fn" is required; the "output_arg" parameter to that is optional.
-+ * If linebreaks in the encoded output are desired, "line_length" specifies
-+ * where to place them -- it will be rounded down to the nearest multiple of 4
-+ * (if it is not already an even multiple of 4). If it is zero, no linebreaks
-+ * will be added. (FYI, a linebreak is CRLF -- two characters.)
-+ */
-+static PLBase64Encoder *
-+PL_CreateBase64Encoder (PRInt32 (*output_fn) (void *, const char *, PRInt32),
-+ void *output_arg, PRUint32 line_length)
-+{
-+ PLBase64Encoder *data;
-+
-+ if (output_fn == NULL) {
-+ PR_SetError (PR_INVALID_ARGUMENT_ERROR, 0);
-+ return NULL;
-+ }
-+
-+ data = pl_base64_create_encoder (line_length, NULL, 0);
-+ if (data == NULL)
-+ return NULL;
-+
-+ data->output_fn = output_fn;
-+ data->output_arg = output_arg;
-+
-+ return data;
-+}
-+
-+
-+/*
-+ * Push data through the encoder, causing the output_fn (provided to Create)
-+ * to be called with the encoded data.
-+ */
-+static PRStatus
-+PL_UpdateBase64Encoder (PLBase64Encoder *data, const unsigned char *buffer,
-+ PRUint32 size)
-+{
-+ /* XXX Should we do argument checking only in debug build? */
-+ if (data == NULL || buffer == NULL || size == 0) {
-+ PR_SetError (PR_INVALID_ARGUMENT_ERROR, 0);
-+ return PR_FAILURE;
-+ }
-+
-+ return pl_base64_encode_buffer (data, buffer, size);
-+}
-+
-+
-+/*
-+ * When you're done encoding, call this to free the data. If "abort_p"
-+ * is false, then calling this may cause the output_fn to be called
-+ * one last time (as the last buffered data is flushed out).
-+ */
-+static PRStatus
-+PL_DestroyBase64Encoder (PLBase64Encoder *data, PRBool abort_p)
-+{
-+ PRStatus status = PR_SUCCESS;
-+
-+ /* XXX Should we do argument checking only in debug build? */
-+ if (data == NULL) {
-+ PR_SetError (PR_INVALID_ARGUMENT_ERROR, 0);
-+ return PR_FAILURE;
-+ }
-+
-+ /* Flush out the last few buffered characters. */
-+ if (!abort_p)
-+ status = pl_base64_encode_flush (data);
-+
-+ if (data->output_buffer != NULL)
-+ PR_Free(data->output_buffer);
-+ PR_Free(data);
-+
-+ return status;
-+}
-+
-+
-+/*
-+ * Perform base64 encoding from an input buffer to an output buffer.
-+ * The output buffer can be provided (as "dest"); you can also pass in
-+ * a NULL and this function will allocate a buffer large enough for you,
-+ * and return it. If you do provide the output buffer, you must also
-+ * provide the maximum length of that buffer (as "maxdestlen").
-+ * The actual encoded length of output will be returned to you in
-+ * "output_destlen".
-+ *
-+ * If linebreaks in the encoded output are desired, "line_length" specifies
-+ * where to place them -- it will be rounded down to the nearest multiple of 4
-+ * (if it is not already an even multiple of 4). If it is zero, no linebreaks
-+ * will be added. (FYI, a linebreak is CRLF -- two characters.)
-+ *
-+ * Return value is NULL on error, the output buffer (allocated or provided)
-+ * otherwise.
-+ */
-+static char *
-+PL_Base64EncodeBuffer (const unsigned char *src, PRUint32 srclen,
-+ PRUint32 line_length, char *dest, PRUint32 maxdestlen,
-+ PRUint32 *output_destlen)
-+{
-+ PRUint32 need_length;
-+ PLBase64Encoder *data = NULL;
-+ PRStatus status;
-+
-+ PR_ASSERT(srclen > 0);
-+ if (srclen == 0)
-+ return dest;
-+
-+ /*
-+ * How much space could we possibly need for encoding this input?
-+ */
-+ need_length = PL_Base64MaxEncodedLength (srclen, line_length);
-+
-+ /*
-+ * Make sure we have at least that much, if output buffer provided.
-+ */
-+ if (dest != NULL) {
-+ PR_ASSERT(maxdestlen >= need_length);
-+ if (maxdestlen < need_length) {
-+ PR_SetError(PR_BUFFER_OVERFLOW_ERROR, 0);
-+ return NULL;
-+ }
-+ } else {
-+ maxdestlen = need_length;
-+ }
-+
-+ data = pl_base64_create_encoder(line_length, dest, maxdestlen);
-+ if (data == NULL)
-+ return NULL;
-+
-+ status = pl_base64_encode_buffer (data, src, srclen);
-+
-+ /*
-+ * We do not wait for Destroy to flush, because Destroy will also
-+ * get rid of our encoder context, which we need to look at first!
-+ */
-+ if (status == PR_SUCCESS)
-+ status = pl_base64_encode_flush (data);
-+
-+ if (status != PR_SUCCESS) {
-+ (void) PL_DestroyBase64Encoder (data, PR_TRUE);
-+ return NULL;
-+ }
-+
-+ dest = data->output_buffer;
-+
-+ /* Must clear this or Destroy will free it. */
-+ data->output_buffer = NULL;
-+
-+ *output_destlen = data->output_length;
-+ status = PL_DestroyBase64Encoder (data, PR_FALSE);
-+ if (status == PR_FAILURE) {
-+ PR_Free(dest);
-+ return NULL;
-+ }
-+
-+ return dest;
-+}
-+
-+/*
-+ * XXX End of base64 encoding code to be moved into NSPR.
-+ ********************************************************
-+ */
-+
-+/*
-+ * This is the beginning of the NSS cover functions. These will
-+ * provide the interface we want to expose as NSS-ish. For example,
-+ * they will operate on our Items, do any special handling or checking
-+ * we want to do, etc.
-+ */
-+
-+
-+PR_BEGIN_EXTERN_C
-+
-+/*
-+ * A boring cover structure for now. Perhaps someday it will include
-+ * some more interesting fields.
-+ */
-+struct NSSBase64EncoderStr {
-+ PLBase64Encoder *pl_data;
-+};
-+
-+PR_END_EXTERN_C
-+
-+
-+/*
-+ * Function to start a base64 encoding context.
-+ */
-+NSSBase64Encoder *
-+NSSBase64Encoder_Create (PRInt32 (*output_fn) (void *, const char *, PRInt32),
-+ void *output_arg)
-+{
-+ PLBase64Encoder *pl_data;
-+ NSSBase64Encoder *nss_data;
-+
-+ nss_data = PORT_ZNew(NSSBase64Encoder);
-+ if (nss_data == NULL)
-+ return NULL;
-+
-+ pl_data = PL_CreateBase64Encoder (output_fn, output_arg, 64);
-+ if (pl_data == NULL) {
-+ PORT_Free(nss_data);
-+ return NULL;
-+ }
-+
-+ nss_data->pl_data = pl_data;
-+ return nss_data;
-+}
-+
-+
-+/*
-+ * Push data through the encoder, causing the output_fn (provided to Create)
-+ * to be called with the encoded data.
-+ */
-+SECStatus
-+NSSBase64Encoder_Update (NSSBase64Encoder *data, const unsigned char *buffer,
-+ PRUint32 size)
-+{
-+ PRStatus pr_status;
-+
-+ /* XXX Should we do argument checking only in debug build? */
-+ if (data == NULL) {
-+ PORT_SetError (SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+
-+ pr_status = PL_UpdateBase64Encoder (data->pl_data, buffer, size);
-+ if (pr_status == PR_FAILURE)
-+ return SECFailure;
-+
-+ return SECSuccess;
-+}
-+
-+
-+/*
-+ * When you're done encoding, call this to free the data. If "abort_p"
-+ * is false, then calling this may cause the output_fn to be called
-+ * one last time (as the last buffered data is flushed out).
-+ */
-+SECStatus
-+NSSBase64Encoder_Destroy (NSSBase64Encoder *data, PRBool abort_p)
-+{
-+ PRStatus pr_status;
-+
-+ /* XXX Should we do argument checking only in debug build? */
-+ if (data == NULL) {
-+ PORT_SetError (SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+
-+ pr_status = PL_DestroyBase64Encoder (data->pl_data, abort_p);
-+
-+ PORT_Free(data);
-+
-+ if (pr_status == PR_FAILURE)
-+ return SECFailure;
-+
-+ return SECSuccess;
-+}
-+
-+
-+/*
-+ * Perform base64 encoding of binary data "inItem" to an ascii string.
-+ * The output buffer may be provided (as "outStrOpt"); you can also pass
-+ * in a NULL and the buffer will be allocated for you. The result will
-+ * be null-terminated, and if the buffer is provided, "maxOutLen" must
-+ * specify the maximum length of the buffer and will be checked to
-+ * supply sufficient space space for the encoded result. (If "outStrOpt"
-+ * is NULL, "maxOutLen" is ignored.)
-+ *
-+ * If "outStrOpt" is NULL, allocation will happen out of the passed-in
-+ * "arenaOpt", if *it* is non-NULL, otherwise standard allocation (heap)
-+ * will be used.
-+ *
-+ * Return value is NULL on error, the output buffer (allocated or provided)
-+ * otherwise.
-+ */
-+char *
-+NSSBase64_EncodeItem (PRArenaPool *arenaOpt, char *outStrOpt,
-+ unsigned int maxOutLen, SECItem *inItem)
-+{
-+ char *out_string = outStrOpt;
-+ PRUint32 max_out_len;
-+ PRUint32 out_len;
-+ void *mark = NULL;
-+ char *dummy;
-+
-+ PORT_Assert(inItem != NULL && inItem->data != NULL && inItem->len != 0);
-+ if (inItem == NULL || inItem->data == NULL || inItem->len == 0) {
-+ PORT_SetError (SEC_ERROR_INVALID_ARGS);
-+ return NULL;
-+ }
-+
-+ max_out_len = PL_Base64MaxEncodedLength (inItem->len, 64);
-+
-+ if (arenaOpt != NULL)
-+ mark = PORT_ArenaMark (arenaOpt);
-+
-+ if (out_string == NULL) {
-+ if (arenaOpt != NULL)
-+ out_string = PORT_ArenaAlloc (arenaOpt, max_out_len + 1);
-+ else
-+ out_string = PORT_Alloc (max_out_len + 1);
-+
-+ if (out_string == NULL) {
-+ if (arenaOpt != NULL)
-+ PORT_ArenaRelease (arenaOpt, mark);
-+ return NULL;
-+ }
-+ } else {
-+ if ((max_out_len + 1) > maxOutLen) {
-+ PORT_SetError (SEC_ERROR_OUTPUT_LEN);
-+ return NULL;
-+ }
-+ max_out_len = maxOutLen;
-+ }
-+
-+
-+ dummy = PL_Base64EncodeBuffer (inItem->data, inItem->len, 64,
-+ out_string, max_out_len, &out_len);
-+ if (dummy == NULL) {
-+ if (arenaOpt != NULL) {
-+ PORT_ArenaRelease (arenaOpt, mark);
-+ } else {
-+ PORT_Free (out_string);
-+ }
-+ return NULL;
-+ }
-+
-+ if (arenaOpt != NULL)
-+ PORT_ArenaUnmark (arenaOpt, mark);
-+
-+ out_string[out_len] = '\0';
-+ return out_string;
-+}
-+
-+
-+/*
-+ * XXX Everything below is deprecated. If you add new stuff, put it
-+ * *above*, not below.
-+ */
-+
-+/*
-+ * XXX The following "BTOA" functions are provided for backward compatibility
-+ * with current code. They should be considered strongly deprecated.
-+ * When we can convert all our code over to using the new NSSBase64Encoder_
-+ * functions defined above, we should get rid of these altogether. (Remove
-+ * protoypes from base64.h as well -- actually, remove that file completely).
-+ * If someone thinks either of these functions provides such a very useful
-+ * interface (though, as shown, the same functionality can already be
-+ * obtained by calling NSSBase64_EncodeItem directly), fine -- but then
-+ * that API should be provided with a nice new NSSFoo name and using
-+ * appropriate types, etc.
-+ */
-+
-+#include "base64.h"
-+
-+/*
-+** Return an PORT_Alloc'd ascii string which is the base64 encoded
-+** version of the input string.
-+*/
-+char *
-+BTOA_DataToAscii(const unsigned char *data, unsigned int len)
-+{
-+ SECItem binary_item;
-+
-+ binary_item.data = (unsigned char *)data;
-+ binary_item.len = len;
-+
-+ return NSSBase64_EncodeItem (NULL, NULL, 0, &binary_item);
-+}
-+
-+/*
-+** Convert from binary encoding of an item to ascii.
-+*/
-+char *
-+BTOA_ConvertItemToAscii (SECItem *binary_item)
-+{
-+ return NSSBase64_EncodeItem (NULL, NULL, 0, binary_item);
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/nssdev.h 2004-12-13 15:50:16.080145160 +0100
-@@ -0,0 +1,72 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifndef NSSDEV_H
-+#define NSSDEV_H
-+
-+#ifdef DEBUG
-+static const char NSSDEV_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+/*
-+ * nssdev.h
-+ *
-+ * High-level methods for interaction with cryptoki devices
-+ */
-+
-+#ifndef NSSDEVT_H
-+#include "nssdevt.h"
-+#endif /* NSSDEVT_H */
-+
-+PR_BEGIN_EXTERN_C
-+
-+/* NSSAlgorithmAndParameters
-+ *
-+ * NSSAlgorithmAndParameters_CreateSHA1Digest
-+ * NSSAlgorithmAndParameters_CreateMD5Digest
-+ */
-+
-+NSS_EXTERN NSSAlgorithmAndParameters *
-+NSSAlgorithmAndParameters_CreateSHA1Digest
-+(
-+ NSSArena *arenaOpt
-+);
-+
-+NSS_EXTERN NSSAlgorithmAndParameters *
-+NSSAlgorithmAndParameters_CreateMD5Digest
-+(
-+ NSSArena *arenaOpt
-+);
-+
-+PR_END_EXTERN_C
-+
-+#endif /* DEV_H */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/nssdevt.h 2004-12-13 15:50:16.017154736 +0100
-@@ -0,0 +1,69 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifndef NSSDEVT_H
-+#define NSSDEVT_H
-+
-+#ifdef DEBUG
-+static const char NSSDEVT_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+/*
-+ * nssdevt.h
-+ *
-+ * This file contains definitions for the low-level cryptoki devices.
-+ */
-+
-+#ifndef NSSBASET_H
-+#include "nssbaset.h"
-+#endif /* NSSBASET_H */
-+
-+#ifndef NSSPKIT_H
-+#include "nsspkit.h"
-+#endif /* NSSPKIT_H */
-+
-+PR_BEGIN_EXTERN_C
-+
-+/*
-+ * NSSModule and NSSSlot -- placeholders for the PKCS#11 types
-+ */
-+
-+typedef struct NSSModuleStr NSSModule;
-+
-+typedef struct NSSSlotStr NSSSlot;
-+
-+typedef struct NSSTokenStr NSSToken;
-+
-+PR_END_EXTERN_C
-+
-+#endif /* NSSDEVT_H */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/nssilock.c 2004-12-13 13:06:46.747390408 +0100
-@@ -0,0 +1,519 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+/*
-+ * nssilock.c - NSS lock instrumentation wrapper functions
-+ *
-+ * NOTE - These are not public interfaces
-+ *
-+ * Implementation Notes:
-+ * I've tried to make the instrumentation relatively non-intrusive.
-+ * To do this, I have used a single PR_LOG() call in each
-+ * instrumented function. There's room for improvement.
-+ *
-+ *
-+ */
-+
-+#include "prinit.h"
-+#include "prerror.h"
-+#include "prlock.h"
-+#include "prmem.h"
-+#include "prenv.h"
-+#include "prcvar.h"
-+#include "prio.h"
-+
-+#if defined(NEED_NSS_ILOCK)
-+#include "prlog.h"
-+#include "nssilock.h"
-+
-+/*
-+** Declare the instrumented PZLock
-+*/
-+struct pzlock_s {
-+ PRLock *lock; /* the PZLock to be instrumented */
-+ PRIntervalTime time; /* timestamp when the lock was aquired */
-+ nssILockType ltype;
-+};
-+
-+/*
-+** Declare the instrumented PZMonitor
-+*/
-+struct pzmonitor_s {
-+ PRMonitor *mon; /* the PZMonitor to be instrumented */
-+ PRIntervalTime time; /* timestamp when the monitor was aquired */
-+ nssILockType ltype;
-+};
-+
-+/*
-+** Declare the instrumented PZCondVar
-+*/
-+struct pzcondvar_s {
-+ PRCondVar *cvar; /* the PZCondVar to be instrumented */
-+ nssILockType ltype;
-+};
-+
-+
-+/*
-+** Define a CallOnce type to ensure serialized self-initialization
-+*/
-+static PRCallOnceType coNssILock; /* CallOnce type */
-+static PRIntn nssILockInitialized; /* initialization done when 1 */
-+static PRLogModuleInfo *nssILog; /* Log instrumentation to this handle */
-+
-+
-+#define NUM_TT_ENTRIES 6000000
-+static PRInt32 traceIndex = -1; /* index into trace table */
-+static struct pzTrace_s *tt; /* pointer to trace table */
-+static PRInt32 ttBufSize = (NUM_TT_ENTRIES * sizeof(struct pzTrace_s ));
-+static PRCondVar *ttCVar;
-+static PRLock *ttLock;
-+static PRFileDesc *ttfd; /* trace table file */
-+
-+/*
-+** Vtrace() -- Trace events, write events to external media
-+**
-+** Vtrace() records traced events in an in-memory trace table
-+** when the trace table fills, Vtrace writes the entire table
-+** to a file.
-+**
-+** data can be lost!
-+**
-+*/
-+static void Vtrace(
-+ nssILockOp op,
-+ nssILockType ltype,
-+ PRIntervalTime callTime,
-+ PRIntervalTime heldTime,
-+ void *lock,
-+ PRIntn line,
-+ char *file
-+) {
-+ PRInt32 idx;
-+ struct pzTrace_s *tp;
-+
-+RetryTrace:
-+ idx = PR_AtomicIncrement( &traceIndex );
-+ while( NUM_TT_ENTRIES <= idx || op == FlushTT ) {
-+ if( NUM_TT_ENTRIES == idx || op == FlushTT ) {
-+ int writeSize = idx * sizeof(struct pzTrace_s);
-+ PR_Lock(ttLock);
-+ PR_Write( ttfd, tt, writeSize );
-+ traceIndex = -1;
-+ PR_NotifyAllCondVar( ttCVar );
-+ PR_Unlock(ttLock);
-+ goto RetryTrace;
-+ } else {
-+ PR_Lock(ttLock);
-+ while( NUM_TT_ENTRIES < idx )
-+ PR_WaitCondVar(ttCVar, PR_INTERVAL_NO_WAIT);
-+ PR_Unlock(ttLock);
-+ goto RetryTrace;
-+ }
-+ } /* end while() */
-+
-+ /* create the trace entry */
-+ tp = tt + idx;
-+ tp->threadID = PR_GetThreadID(PR_GetCurrentThread());
-+ tp->op = op;
-+ tp->ltype = ltype;
-+ tp->callTime = callTime;
-+ tp->heldTime = heldTime;
-+ tp->lock = lock;
-+ tp ->line = line;
-+ strcpy(tp->file, file );
-+ return;
-+} /* --- end Vtrace() --- */
-+
-+/*
-+** pz_TraceFlush() -- Force trace table write to file
-+**
-+*/
-+extern void pz_TraceFlush( void )
-+{
-+ Vtrace( FlushTT, nssILockSelfServ, 0, 0, NULL, 0, "" );
-+ return;
-+} /* --- end pz_TraceFlush() --- */
-+
-+/*
-+** nssILockInit() -- Initialization for nssilock
-+**
-+** This function is called from the CallOnce mechanism.
-+*/
-+static PRStatus
-+ nssILockInit( void )
-+{
-+ int i;
-+ nssILockInitialized = 1;
-+
-+ /* new log module */
-+ nssILog = PR_NewLogModule("nssilock");
-+ if ( NULL == nssILog ) {
-+ return(PR_FAILURE);
-+ }
-+
-+ tt = PR_Calloc( NUM_TT_ENTRIES, sizeof(struct pzTrace_s));
-+ if (NULL == tt ) {
-+ fprintf(stderr, "nssilock: can't allocate trace table\n");
-+ exit(1);
-+ }
-+
-+ ttfd = PR_Open( "xxxTTLog", PR_CREATE_FILE | PR_WRONLY, 0666 );
-+ if ( NULL == ttfd ) {
-+ fprintf( stderr, "Oh Drat! Can't open 'xxxTTLog'\n");
-+ exit(1);
-+ }
-+
-+ ttLock = PR_NewLock();
-+ ttCVar = PR_NewCondVar(ttLock);
-+
-+ return(PR_SUCCESS);
-+} /* --- end nssILockInit() --- */
-+
-+extern PZLock * pz_NewLock(
-+ nssILockType ltype,
-+ char *file,
-+ PRIntn line )
-+{
-+ PRStatus rc;
-+ PZLock *lock;
-+
-+ /* Self Initialize the nssILock feature */
-+ if (!nssILockInitialized) {
-+ rc = PR_CallOnce( &coNssILock, nssILockInit );
-+ if ( PR_FAILURE == rc ) {
-+ PR_SetError( PR_UNKNOWN_ERROR, 0 );
-+ return( NULL );
-+ }
-+ }
-+
-+ lock = PR_NEWZAP( PZLock );
-+ if ( NULL != lock ) {
-+ lock->lock = PR_NewLock();
-+ if ( NULL == lock->lock ) {
-+ PR_DELETE( lock );
-+ lock = NULL;
-+ }
-+ }
-+ lock->ltype = ltype;
-+
-+ Vtrace( NewLock, ltype, 0, 0, lock, line, file );
-+ return(lock);
-+} /* --- end pz_NewLock() --- */
-+
-+extern void
-+ pz_Lock(
-+ PZLock *lock,
-+ char *file,
-+ PRIntn line
-+ )
-+{
-+ PRIntervalTime callTime;
-+
-+ callTime = PR_IntervalNow();
-+ PR_Lock( lock->lock );
-+ lock->time = PR_IntervalNow();
-+ callTime = lock->time - callTime;
-+
-+ Vtrace( Lock, lock->ltype, callTime, 0, lock, line, file );
-+ return;
-+} /* --- end pz_Lock() --- */
-+
-+extern PRStatus
-+ pz_Unlock(
-+ PZLock *lock,
-+ char *file,
-+ PRIntn line
-+ )
-+{
-+ PRStatus rc;
-+ PRIntervalTime callTime, now, heldTime;
-+
-+ callTime = PR_IntervalNow();
-+ rc = PR_Unlock( lock->lock );
-+ now = PR_IntervalNow();
-+ callTime = now - callTime;
-+ heldTime = now - lock->time;
-+ Vtrace( Unlock, lock->ltype, callTime, heldTime, lock, line, file );
-+ return( rc );
-+} /* --- end pz_Unlock() --- */
-+
-+extern void
-+ pz_DestroyLock(
-+ PZLock *lock,
-+ char *file,
-+ PRIntn line
-+ )
-+{
-+ Vtrace( DestroyLock, lock->ltype, 0, 0, lock, line, file );
-+ PR_DestroyLock( lock->lock );
-+ PR_DELETE( lock );
-+ return;
-+} /* --- end pz_DestroyLock() --- */
-+
-+
-+
-+extern PZCondVar *
-+ pz_NewCondVar(
-+ PZLock *lock,
-+ char *file,
-+ PRIntn line
-+ )
-+{
-+ PZCondVar *cvar;
-+
-+ cvar = PR_NEWZAP( PZCondVar );
-+ if ( NULL == cvar ) return(NULL);
-+
-+ cvar->ltype = lock->ltype;
-+ cvar->cvar = PR_NewCondVar( lock->lock );
-+ if ( NULL == cvar->cvar ) {
-+ PR_DELETE( cvar );
-+ }
-+ Vtrace( NewCondVar, cvar->ltype, 0, 0, cvar, line, file );
-+ return( cvar );
-+} /* --- end pz_NewCondVar() --- */
-+
-+extern void
-+ pz_DestroyCondVar(
-+ PZCondVar *cvar,
-+ char *file,
-+ PRIntn line
-+ )
-+{
-+ Vtrace( DestroyCondVar, cvar->ltype, 0, 0, cvar, line, file );
-+ PR_DestroyCondVar( cvar->cvar );
-+ PR_DELETE( cvar );
-+} /* --- end pz_DestroyCondVar() --- */
-+
-+extern PRStatus
-+ pz_WaitCondVar(
-+ PZCondVar *cvar,
-+ PRIntervalTime timeout,
-+ char *file,
-+ PRIntn line
-+ )
-+{
-+ PRStatus rc;
-+ PRIntervalTime callTime;
-+
-+ callTime = PR_IntervalNow();
-+ rc = PR_WaitCondVar( cvar->cvar, timeout );
-+ callTime = PR_IntervalNow() - callTime;
-+
-+ Vtrace( WaitCondVar, cvar->ltype, callTime, 0, cvar, line, file );
-+ return(rc);
-+} /* --- end pz_WaitCondVar() --- */
-+
-+extern PRStatus
-+ pz_NotifyCondVar(
-+ PZCondVar *cvar,
-+ char *file,
-+ PRIntn line
-+ )
-+{
-+ PRStatus rc;
-+
-+ rc = PR_NotifyCondVar( cvar->cvar );
-+
-+ Vtrace( NotifyCondVar, cvar->ltype, 0, 0, cvar, line, file );
-+ return(rc);
-+} /* --- end pz_NotifyCondVar() --- */
-+
-+extern PRStatus
-+ pz_NotifyAllCondVar(
-+ PZCondVar *cvar,
-+ char *file,
-+ PRIntn line
-+ )
-+{
-+ PRStatus rc;
-+
-+ rc = PR_NotifyAllCondVar( cvar->cvar );
-+
-+ Vtrace( NotifyAllCondVar, cvar->ltype, 0, 0, cvar, line, file );
-+ return(rc);
-+} /* --- end pz_NotifyAllCondVar() --- */
-+
-+extern PZMonitor *
-+ pz_NewMonitor(
-+ nssILockType ltype,
-+ char *file,
-+ PRIntn line
-+ )
-+{
-+ PRStatus rc;
-+ PZMonitor *mon;
-+
-+ /* Self Initialize the nssILock feature */
-+ if (!nssILockInitialized) {
-+ rc = PR_CallOnce( &coNssILock, nssILockInit );
-+ if ( PR_FAILURE == rc ) {
-+ PR_SetError( PR_UNKNOWN_ERROR, 0 );
-+ return( NULL );
-+ }
-+ }
-+
-+ mon = PR_NEWZAP( PZMonitor );
-+ if ( NULL != mon ) {
-+ mon->mon = PR_NewMonitor();
-+ if ( NULL == mon->mon ) {
-+ PR_DELETE( mon );
-+ return NULL;
-+ }
-+ }
-+ mon->ltype = ltype;
-+
-+ Vtrace( NewMonitor, mon->ltype, 0, 0, mon, line, file );
-+ return(mon);
-+} /* --- end pz_NewMonitor() --- */
-+
-+extern void
-+ pz_DestroyMonitor(
-+ PZMonitor *mon,
-+ char *file,
-+ PRIntn line
-+ )
-+{
-+ Vtrace( DestroyMonitor, mon->ltype, 0, 0, mon, line, file );
-+ PR_DestroyMonitor( mon->mon );
-+ PR_DELETE( mon );
-+ return;
-+} /* --- end pz_DestroyMonitor() --- */
-+
-+extern void
-+ pz_EnterMonitor(
-+ PZMonitor *mon,
-+ char *file,
-+ PRIntn line
-+ )
-+{
-+ PRIntervalTime callTime, now;
-+
-+ callTime = PR_IntervalNow();
-+ PR_EnterMonitor( mon->mon );
-+ now = PR_IntervalNow();
-+ callTime = now - callTime;
-+ if ( PR_GetMonitorEntryCount(mon->mon) == 1 ) {
-+ mon->time = now;
-+ }
-+ Vtrace( EnterMonitor, mon->ltype, callTime, 0, mon, line, file );
-+ return;
-+} /* --- end pz_EnterMonitor() --- */
-+
-+extern PRStatus
-+ pz_ExitMonitor(
-+ PZMonitor *mon,
-+ char *file,
-+ PRIntn line
-+ )
-+{
-+ PRStatus rc;
-+ PRIntervalTime callTime, now, heldTime;
-+ PRIntn mec = PR_GetMonitorEntryCount( mon->mon );
-+
-+ heldTime = (PRIntervalTime)-1;
-+ callTime = PR_IntervalNow();
-+ rc = PR_ExitMonitor( mon->mon );
-+ now = PR_IntervalNow();
-+ callTime = now - callTime;
-+ if ( mec == 1 )
-+ heldTime = now - mon->time;
-+ Vtrace( ExitMonitor, mon->ltype, callTime, heldTime, mon, line, file );
-+ return( rc );
-+} /* --- end pz_ExitMonitor() --- */
-+
-+extern PRIntn
-+ pz_GetMonitorEntryCount(
-+ PZMonitor *mon,
-+ char *file,
-+ PRIntn line
-+ )
-+{
-+ return( PR_GetMonitorEntryCount(mon->mon));
-+} /* --- end pz_GetMonitorEntryCount() --- */
-+
-+
-+extern PRStatus
-+ pz_Wait(
-+ PZMonitor *mon,
-+ PRIntervalTime ticks,
-+ char *file,
-+ PRIntn line
-+ )
-+{
-+ PRStatus rc;
-+ PRIntervalTime callTime;
-+
-+ callTime = PR_IntervalNow();
-+ rc = PR_Wait( mon->mon, ticks );
-+ callTime = PR_IntervalNow() - callTime;
-+ Vtrace( Wait, mon->ltype, callTime, 0, mon, line, file );
-+ return( rc );
-+} /* --- end pz_Wait() --- */
-+
-+extern PRStatus
-+ pz_Notify(
-+ PZMonitor *mon,
-+ char *file,
-+ PRIntn line
-+ )
-+{
-+ PRStatus rc;
-+ PRIntervalTime callTime;
-+
-+ callTime = PR_IntervalNow();
-+ rc = PR_Notify( mon->mon );
-+ callTime = PR_IntervalNow() - callTime;
-+ Vtrace( Notify, mon->ltype, callTime, 0, mon, line, file );
-+ return( rc );
-+} /* --- end pz_Notify() --- */
-+
-+extern PRStatus
-+ pz_NotifyAll(
-+ PZMonitor *mon,
-+ char *file,
-+ PRIntn line
-+ )
-+{
-+ PRStatus rc;
-+ PRIntervalTime callTime;
-+
-+ callTime = PR_IntervalNow();
-+ rc = PR_NotifyAll( mon->mon );
-+ callTime = PR_IntervalNow() - callTime;
-+ Vtrace( NotifyAll, mon->ltype, callTime, 0, mon, line, file );
-+ return( rc );
-+} /* --- end pz_NotifyAll() --- */
-+
-+#endif /* NEED_NSS_ILOCK */
-+/* --- end nssilock.c --------------------------------- */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/nsslocks.c 2004-12-13 13:06:46.750389952 +0100
-@@ -0,0 +1,109 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+/*
-+ * nsslocks.h - threadsafe functions to initialize lock pointers.
-+ *
-+ * NOTE - These are not public interfaces
-+ *
-+ * $Id$
-+ */
-+
-+#include "seccomon.h"
-+#include "nsslocks.h"
-+#include "pratom.h"
-+#include "prthread.h"
-+
-+/* Given the address of a (global) pointer to a PZLock,
-+ * atomicly create the lock and initialize the (global) pointer,
-+ * if it is not already created/initialized.
-+ */
-+
-+SECStatus
-+__nss_InitLock( PZLock **ppLock, nssILockType ltype )
-+{
-+ static PRInt32 initializers;
-+
-+ PORT_Assert( ppLock != NULL);
-+
-+ /* atomically initialize the lock */
-+ while (!*ppLock) {
-+ PRInt32 myAttempt = PR_AtomicIncrement(&initializers);
-+ if (myAttempt == 1) {
-+ if (!*ppLock) {
-+ *ppLock = PZ_NewLock(ltype);
-+ }
-+ (void) PR_AtomicDecrement(&initializers);
-+ break;
-+ }
-+ PR_Sleep(PR_INTERVAL_NO_WAIT); /* PR_Yield() */
-+ (void) PR_AtomicDecrement(&initializers);
-+ }
-+
-+ return (*ppLock != NULL) ? SECSuccess : SECFailure;
-+}
-+
-+SECStatus
-+nss_InitLock( PZLock **ppLock, nssILockType ltype )
-+{
-+ return __nss_InitLock(ppLock, ltype);
-+}
-+
-+/* Given the address of a (global) pointer to a PZMonitor,
-+ * atomicly create the monitor and initialize the (global) pointer,
-+ * if it is not already created/initialized.
-+ */
-+
-+SECStatus
-+nss_InitMonitor(PZMonitor **ppMonitor, nssILockType ltype )
-+{
-+ static PRInt32 initializers;
-+
-+ PORT_Assert( ppMonitor != NULL);
-+
-+ /* atomically initialize the lock */
-+ while (!*ppMonitor) {
-+ PRInt32 myAttempt = PR_AtomicIncrement(&initializers);
-+ if (myAttempt == 1) {
-+ if (!*ppMonitor) {
-+ *ppMonitor = PZ_NewMonitor(ltype);
-+ }
-+ (void) PR_AtomicDecrement(&initializers);
-+ break;
-+ }
-+ PR_Sleep(PR_INTERVAL_NO_WAIT); /* PR_Yield() */
-+ (void) PR_AtomicDecrement(&initializers);
-+ }
-+
-+ return (*ppMonitor != NULL) ? SECSuccess : SECFailure;
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/nsspki.h 2004-12-13 15:50:15.938166744 +0100
-@@ -0,0 +1,3190 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifndef NSSPKI_H
-+#define NSSPKI_H
-+
-+#ifdef DEBUG
-+static const char NSSPKI_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+/*
-+ * nsspki.h
-+ *
-+ * This file prototypes the methods of the top-level PKI objects.
-+ */
-+
-+#ifndef NSSDEVT_H
-+#include "nssdevt.h"
-+#endif /* NSSDEVT_H */
-+
-+#ifndef NSSPKIT_H
-+#include "nsspkit.h"
-+#endif /* NSSPKIT_H */
-+
-+#ifndef NSSPKI1_H
-+#include "nsspki1.h"
-+#endif /* NSSPKI1_H */
-+
-+#ifndef BASE_H
-+#include "base.h"
-+#endif /* BASE_H */
-+
-+PR_BEGIN_EXTERN_C
-+
-+/*
-+ * A note about interfaces
-+ *
-+ * Although these APIs are specified in C, a language which does
-+ * not have fancy support for abstract interfaces, this library
-+ * was designed from an object-oriented perspective. It may be
-+ * useful to consider the standard interfaces which went into
-+ * the writing of these APIs.
-+ *
-+ * Basic operations on all objects:
-+ * Destroy -- free a pointer to an object
-+ * DeleteStoredObject -- delete an object permanently
-+ *
-+ * Public Key cryptographic operations:
-+ * Encrypt
-+ * Verify
-+ * VerifyRecover
-+ * Wrap
-+ * Derive
-+ *
-+ * Private Key cryptographic operations:
-+ * IsStillPresent
-+ * Decrypt
-+ * Sign
-+ * SignRecover
-+ * Unwrap
-+ * Derive
-+ *
-+ * Symmetric Key cryptographic operations:
-+ * IsStillPresent
-+ * Encrypt
-+ * Decrypt
-+ * Sign
-+ * SignRecover
-+ * Verify
-+ * VerifyRecover
-+ * Wrap
-+ * Unwrap
-+ * Derive
-+ *
-+ */
-+
-+/*
-+ * NSSCertificate
-+ *
-+ * These things can do crypto ops like public keys, except that the trust,
-+ * usage, and other constraints are checked. These objects are "high-level,"
-+ * so trust, usages, etc. are in the form we throw around (client auth,
-+ * email signing, etc.). Remember that theoretically another implementation
-+ * (think PGP) could be beneath this object.
-+ */
-+
-+/*
-+ * NSSCertificate_Destroy
-+ *
-+ * Free a pointer to a certificate object.
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSCertificate_Destroy
-+(
-+ NSSCertificate *c
-+);
-+
-+/*
-+ * NSSCertificate_DeleteStoredObject
-+ *
-+ * Permanently remove this certificate from storage. If this is the
-+ * only (remaining) certificate corresponding to a private key,
-+ * public key, and/or other object; then that object (those objects)
-+ * are deleted too.
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSCertificate_DeleteStoredObject
-+(
-+ NSSCertificate *c,
-+ NSSCallback *uhh
-+);
-+
-+/*
-+ * NSSCertificate_Validate
-+ *
-+ * Verify that this certificate is trusted, for the specified usage(s),
-+ * at the specified time, {word word} the specified policies.
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSCertificate_Validate
-+(
-+ NSSCertificate *c,
-+ NSSTime *timeOpt, /* NULL for "now" */
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt /* NULL for none */
-+);
-+
-+/*
-+ * NSSCertificate_ValidateCompletely
-+ *
-+ * Verify that this certificate is trusted. The difference between
-+ * this and the previous call is that NSSCertificate_Validate merely
-+ * returns success or failure with an appropriate error stack.
-+ * However, there may be (and often are) multiple problems with a
-+ * certificate. This routine returns an array of errors, specifying
-+ * every problem.
-+ */
-+
-+/*
-+ * Return value must be an array of objects, each of which has
-+ * an NSSError, and any corresponding certificate (in the chain)
-+ * and/or policy.
-+ */
-+
-+NSS_EXTERN void ** /* void *[] */
-+NSSCertificate_ValidateCompletely
-+(
-+ NSSCertificate *c,
-+ NSSTime *timeOpt, /* NULL for "now" */
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt, /* NULL for none */
-+ void **rvOpt, /* NULL for allocate */
-+ PRUint32 rvLimit, /* zero for no limit */
-+ NSSArena *arenaOpt /* NULL for heap */
-+);
-+
-+/*
-+ * NSSCertificate_ValidateAndDiscoverUsagesAndPolicies
-+ *
-+ * Returns PR_SUCCESS if the certificate is valid for at least something.
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSCertificate_ValidateAndDiscoverUsagesAndPolicies
-+(
-+ NSSCertificate *c,
-+ NSSTime **notBeforeOutOpt,
-+ NSSTime **notAfterOutOpt,
-+ void *allowedUsages,
-+ void *disallowedUsages,
-+ void *allowedPolicies,
-+ void *disallowedPolicies,
-+ /* more args.. work on this fgmr */
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCertificate_Encode
-+ *
-+ */
-+
-+NSS_EXTERN NSSDER *
-+NSSCertificate_Encode
-+(
-+ NSSCertificate *c,
-+ NSSDER *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCertificate_BuildChain
-+ *
-+ * This routine returns NSSCertificate *'s for each certificate
-+ * in the "chain" starting from the specified one up to and
-+ * including the root. The zeroth element in the array is the
-+ * specified ("leaf") certificate.
-+ *
-+ * If statusOpt is supplied, and is returned as PR_FAILURE, possible
-+ * error values are:
-+ *
-+ * NSS_ERROR_CERTIFICATE_ISSUER_NOT_FOUND - the chain is incomplete
-+ *
-+ */
-+
-+extern const NSSError NSS_ERROR_CERTIFICATE_ISSUER_NOT_FOUND;
-+
-+NSS_EXTERN NSSCertificate **
-+NSSCertificate_BuildChain
-+(
-+ NSSCertificate *c,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt,
-+ NSSCertificate **rvOpt,
-+ PRUint32 rvLimit, /* zero for no limit */
-+ NSSArena *arenaOpt,
-+ PRStatus *statusOpt
-+);
-+
-+/*
-+ * NSSCertificate_GetTrustDomain
-+ *
-+ */
-+
-+NSS_EXTERN NSSTrustDomain *
-+NSSCertificate_GetTrustDomain
-+(
-+ NSSCertificate *c
-+);
-+
-+/*
-+ * NSSCertificate_GetToken
-+ *
-+ * There doesn't have to be one.
-+ */
-+
-+NSS_EXTERN NSSToken *
-+NSSCertificate_GetToken
-+(
-+ NSSCertificate *c,
-+ PRStatus *statusOpt
-+);
-+
-+/*
-+ * NSSCertificate_GetSlot
-+ *
-+ * There doesn't have to be one.
-+ */
-+
-+NSS_EXTERN NSSSlot *
-+NSSCertificate_GetSlot
-+(
-+ NSSCertificate *c,
-+ PRStatus *statusOpt
-+);
-+
-+/*
-+ * NSSCertificate_GetModule
-+ *
-+ * There doesn't have to be one.
-+ */
-+
-+NSS_EXTERN NSSModule *
-+NSSCertificate_GetModule
-+(
-+ NSSCertificate *c,
-+ PRStatus *statusOpt
-+);
-+
-+/*
-+ * NSSCertificate_Encrypt
-+ *
-+ * Encrypt a single chunk of data with the public key corresponding to
-+ * this certificate.
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSCertificate_Encrypt
-+(
-+ NSSCertificate *c,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCertificate_Verify
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSCertificate_Verify
-+(
-+ NSSCertificate *c,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSItem *signature,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt,
-+ NSSCallback *uhh
-+);
-+
-+/*
-+ * NSSCertificate_VerifyRecover
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSCertificate_VerifyRecover
-+(
-+ NSSCertificate *c,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *signature,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCertificate_WrapSymmetricKey
-+ *
-+ * This method tries very hard to to succeed, even in situations
-+ * involving sensitive keys and multiple modules.
-+ * { relyea: want to add verbiage? }
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSCertificate_WrapSymmetricKey
-+(
-+ NSSCertificate *c,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSSymmetricKey *keyToWrap,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCertificate_CreateCryptoContext
-+ *
-+ * Create a crypto context, in this certificate's trust domain, with this
-+ * as the distinguished certificate.
-+ */
-+
-+NSS_EXTERN NSSCryptoContext *
-+NSSCertificate_CreateCryptoContext
-+(
-+ NSSCertificate *c,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt,
-+ NSSCallback *uhh
-+);
-+
-+/*
-+ * NSSCertificate_GetPublicKey
-+ *
-+ * Returns the public key corresponding to this certificate.
-+ */
-+
-+NSS_EXTERN NSSPublicKey *
-+NSSCertificate_GetPublicKey
-+(
-+ NSSCertificate *c
-+);
-+
-+/*
-+ * NSSCertificate_FindPrivateKey
-+ *
-+ * Finds and returns the private key corresponding to this certificate,
-+ * if it is available.
-+ *
-+ * { Should this hang off of NSSUserCertificate? }
-+ */
-+
-+NSS_EXTERN NSSPrivateKey *
-+NSSCertificate_FindPrivateKey
-+(
-+ NSSCertificate *c,
-+ NSSCallback *uhh
-+);
-+
-+/*
-+ * NSSCertificate_IsPrivateKeyAvailable
-+ *
-+ * Returns success if the private key corresponding to this certificate
-+ * is available to be used.
-+ *
-+ * { Should *this* hang off of NSSUserCertificate?? }
-+ */
-+
-+NSS_EXTERN PRBool
-+NSSCertificate_IsPrivateKeyAvailable
-+(
-+ NSSCertificate *c,
-+ NSSCallback *uhh,
-+ PRStatus *statusOpt
-+);
-+
-+/*
-+ * If we make NSSUserCertificate not a typedef of NSSCertificate,
-+ * then we'll need implementations of the following:
-+ *
-+ * NSSUserCertificate_Destroy
-+ * NSSUserCertificate_DeleteStoredObject
-+ * NSSUserCertificate_Validate
-+ * NSSUserCertificate_ValidateCompletely
-+ * NSSUserCertificate_ValidateAndDiscoverUsagesAndPolicies
-+ * NSSUserCertificate_Encode
-+ * NSSUserCertificate_BuildChain
-+ * NSSUserCertificate_GetTrustDomain
-+ * NSSUserCertificate_GetToken
-+ * NSSUserCertificate_GetSlot
-+ * NSSUserCertificate_GetModule
-+ * NSSUserCertificate_GetCryptoContext
-+ * NSSUserCertificate_GetPublicKey
-+ */
-+
-+/*
-+ * NSSUserCertificate_IsStillPresent
-+ *
-+ * Verify that if this certificate lives on a token, that the token
-+ * is still present and the certificate still exists. This is a
-+ * lightweight call which should be used whenever it should be
-+ * verified that the user hasn't perhaps popped out his or her
-+ * token and strolled away.
-+ */
-+
-+NSS_EXTERN PRBool
-+NSSUserCertificate_IsStillPresent
-+(
-+ NSSUserCertificate *uc,
-+ PRStatus *statusOpt
-+);
-+
-+/*
-+ * NSSUserCertificate_Decrypt
-+ *
-+ * Decrypt a single chunk of data with the private key corresponding
-+ * to this certificate.
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSUserCertificate_Decrypt
-+(
-+ NSSUserCertificate *uc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSUserCertificate_Sign
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSUserCertificate_Sign
-+(
-+ NSSUserCertificate *uc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSUserCertificate_SignRecover
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSUserCertificate_SignRecover
-+(
-+ NSSUserCertificate *uc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSUserCertificate_UnwrapSymmetricKey
-+ *
-+ */
-+
-+NSS_EXTERN NSSSymmetricKey *
-+NSSUserCertificate_UnwrapSymmetricKey
-+(
-+ NSSUserCertificate *uc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *wrappedKey,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSUserCertificate_DeriveSymmetricKey
-+ *
-+ */
-+
-+NSS_EXTERN NSSSymmetricKey *
-+NSSUserCertificate_DeriveSymmetricKey
-+(
-+ NSSUserCertificate *uc, /* provides private key */
-+ NSSCertificate *c, /* provides public key */
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSOID *target,
-+ PRUint32 keySizeOpt, /* zero for best allowed */
-+ NSSOperations operations,
-+ NSSCallback *uhh
-+);
-+
-+/* filter-certs function(s) */
-+
-+/**
-+ ** fgmr -- trust objects
-+ **/
-+
-+/*
-+ * NSSPrivateKey
-+ *
-+ */
-+
-+/*
-+ * NSSPrivateKey_Destroy
-+ *
-+ * Free a pointer to a private key object.
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSPrivateKey_Destroy
-+(
-+ NSSPrivateKey *vk
-+);
-+
-+/*
-+ * NSSPrivateKey_DeleteStoredObject
-+ *
-+ * Permanently remove this object, and any related objects (such as the
-+ * certificates corresponding to this key).
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSPrivateKey_DeleteStoredObject
-+(
-+ NSSPrivateKey *vk,
-+ NSSCallback *uhh
-+);
-+
-+/*
-+ * NSSPrivateKey_GetSignatureLength
-+ *
-+ */
-+
-+NSS_EXTERN PRUint32
-+NSSPrivateKey_GetSignatureLength
-+(
-+ NSSPrivateKey *vk
-+);
-+
-+/*
-+ * NSSPrivateKey_GetPrivateModulusLength
-+ *
-+ */
-+
-+NSS_EXTERN PRUint32
-+NSSPrivateKey_GetPrivateModulusLength
-+(
-+ NSSPrivateKey *vk
-+);
-+
-+/*
-+ * NSSPrivateKey_IsStillPresent
-+ *
-+ */
-+
-+NSS_EXTERN PRBool
-+NSSPrivateKey_IsStillPresent
-+(
-+ NSSPrivateKey *vk,
-+ PRStatus *statusOpt
-+);
-+
-+/*
-+ * NSSPrivateKey_Encode
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSPrivateKey_Encode
-+(
-+ NSSPrivateKey *vk,
-+ NSSAlgorithmAndParameters *ap,
-+ NSSItem *passwordOpt, /* NULL will cause a callback; "" for no password */
-+ NSSCallback *uhhOpt,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSPrivateKey_GetTrustDomain
-+ *
-+ * There doesn't have to be one.
-+ */
-+
-+NSS_EXTERN NSSTrustDomain *
-+NSSPrivateKey_GetTrustDomain
-+(
-+ NSSPrivateKey *vk,
-+ PRStatus *statusOpt
-+);
-+
-+/*
-+ * NSSPrivateKey_GetToken
-+ *
-+ */
-+
-+NSS_EXTERN NSSToken *
-+NSSPrivateKey_GetToken
-+(
-+ NSSPrivateKey *vk
-+);
-+
-+/*
-+ * NSSPrivateKey_GetSlot
-+ *
-+ */
-+
-+NSS_EXTERN NSSSlot *
-+NSSPrivateKey_GetSlot
-+(
-+ NSSPrivateKey *vk
-+);
-+
-+/*
-+ * NSSPrivateKey_GetModule
-+ *
-+ */
-+
-+NSS_EXTERN NSSModule *
-+NSSPrivateKey_GetModule
-+(
-+ NSSPrivateKey *vk
-+);
-+
-+/*
-+ * NSSPrivateKey_Decrypt
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSPrivateKey_Decrypt
-+(
-+ NSSPrivateKey *vk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *encryptedData,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSPrivateKey_Sign
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSPrivateKey_Sign
-+(
-+ NSSPrivateKey *vk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSPrivateKey_SignRecover
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSPrivateKey_SignRecover
-+(
-+ NSSPrivateKey *vk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSPrivateKey_UnwrapSymmetricKey
-+ *
-+ */
-+
-+NSS_EXTERN NSSSymmetricKey *
-+NSSPrivateKey_UnwrapSymmetricKey
-+(
-+ NSSPrivateKey *vk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *wrappedKey,
-+ NSSCallback *uhh
-+);
-+
-+/*
-+ * NSSPrivateKey_DeriveSymmetricKey
-+ *
-+ */
-+
-+NSS_EXTERN NSSSymmetricKey *
-+NSSPrivateKey_DeriveSymmetricKey
-+(
-+ NSSPrivateKey *vk,
-+ NSSPublicKey *bk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSOID *target,
-+ PRUint32 keySizeOpt, /* zero for best allowed */
-+ NSSOperations operations,
-+ NSSCallback *uhh
-+);
-+
-+/*
-+ * NSSPrivateKey_FindPublicKey
-+ *
-+ */
-+
-+NSS_EXTERN NSSPublicKey *
-+NSSPrivateKey_FindPublicKey
-+(
-+ NSSPrivateKey *vk
-+ /* { don't need the callback here, right? } */
-+);
-+
-+/*
-+ * NSSPrivateKey_CreateCryptoContext
-+ *
-+ * Create a crypto context, in this key's trust domain,
-+ * with this as the distinguished private key.
-+ */
-+
-+NSS_EXTERN NSSCryptoContext *
-+NSSPrivateKey_CreateCryptoContext
-+(
-+ NSSPrivateKey *vk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSCallback *uhh
-+);
-+
-+/*
-+ * NSSPrivateKey_FindCertificates
-+ *
-+ * Note that there may be more than one certificate for this
-+ * private key. { FilterCertificates function to further
-+ * reduce the list. }
-+ */
-+
-+NSS_EXTERN NSSCertificate **
-+NSSPrivateKey_FindCertificates
-+(
-+ NSSPrivateKey *vk,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt, /* 0 for no max */
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSPrivateKey_FindBestCertificate
-+ *
-+ * The parameters for this function will depend on what the users
-+ * need. This is just a starting point.
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSPrivateKey_FindBestCertificate
-+(
-+ NSSPrivateKey *vk,
-+ NSSTime *timeOpt,
-+ NSSUsage *usageOpt,
-+ NSSPolicies *policiesOpt
-+);
-+
-+/*
-+ * NSSPublicKey
-+ *
-+ * Once you generate, find, or derive one of these, you can use it
-+ * to perform (simple) cryptographic operations. Though there may
-+ * be certificates associated with these public keys, they are not
-+ * verified.
-+ */
-+
-+/*
-+ * NSSPublicKey_Destroy
-+ *
-+ * Free a pointer to a public key object.
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSPublicKey_Destroy
-+(
-+ NSSPublicKey *bk
-+);
-+
-+/*
-+ * NSSPublicKey_DeleteStoredObject
-+ *
-+ * Permanently remove this object, and any related objects (such as the
-+ * corresponding private keys and certificates).
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSPublicKey_DeleteStoredObject
-+(
-+ NSSPublicKey *bk,
-+ NSSCallback *uhh
-+);
-+
-+/*
-+ * NSSPublicKey_Encode
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSPublicKey_Encode
-+(
-+ NSSPublicKey *bk,
-+ NSSAlgorithmAndParameters *ap,
-+ NSSCallback *uhhOpt,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSPublicKey_GetTrustDomain
-+ *
-+ * There doesn't have to be one.
-+ */
-+
-+NSS_EXTERN NSSTrustDomain *
-+NSSPublicKey_GetTrustDomain
-+(
-+ NSSPublicKey *bk,
-+ PRStatus *statusOpt
-+);
-+
-+/*
-+ * NSSPublicKey_GetToken
-+ *
-+ * There doesn't have to be one.
-+ */
-+
-+NSS_EXTERN NSSToken *
-+NSSPublicKey_GetToken
-+(
-+ NSSPublicKey *bk,
-+ PRStatus *statusOpt
-+);
-+
-+/*
-+ * NSSPublicKey_GetSlot
-+ *
-+ * There doesn't have to be one.
-+ */
-+
-+NSS_EXTERN NSSSlot *
-+NSSPublicKey_GetSlot
-+(
-+ NSSPublicKey *bk,
-+ PRStatus *statusOpt
-+);
-+
-+/*
-+ * NSSPublicKey_GetModule
-+ *
-+ * There doesn't have to be one.
-+ */
-+
-+NSS_EXTERN NSSModule *
-+NSSPublicKey_GetModule
-+(
-+ NSSPublicKey *bk,
-+ PRStatus *statusOpt
-+);
-+
-+/*
-+ * NSSPublicKey_Encrypt
-+ *
-+ * Encrypt a single chunk of data with the public key corresponding to
-+ * this certificate.
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSPublicKey_Encrypt
-+(
-+ NSSPublicKey *bk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSPublicKey_Verify
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSPublicKey_Verify
-+(
-+ NSSPublicKey *bk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSItem *signature,
-+ NSSCallback *uhh
-+);
-+
-+/*
-+ * NSSPublicKey_VerifyRecover
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSPublicKey_VerifyRecover
-+(
-+ NSSPublicKey *bk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *signature,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSPublicKey_WrapSymmetricKey
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSPublicKey_WrapSymmetricKey
-+(
-+ NSSPublicKey *bk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSSymmetricKey *keyToWrap,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSPublicKey_CreateCryptoContext
-+ *
-+ * Create a crypto context, in this key's trust domain, with this
-+ * as the distinguished public key.
-+ */
-+
-+NSS_EXTERN NSSCryptoContext *
-+NSSPublicKey_CreateCryptoContext
-+(
-+ NSSPublicKey *bk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSCallback *uhh
-+);
-+
-+/*
-+ * NSSPublicKey_FindCertificates
-+ *
-+ * Note that there may be more than one certificate for this
-+ * public key. The current implementation may not find every
-+ * last certificate available for this public key: that would
-+ * involve trolling e.g. huge ldap databases, which will be
-+ * grossly inefficient and not generally useful.
-+ * { FilterCertificates function to further reduce the list }
-+ */
-+
-+NSS_EXTERN NSSCertificate **
-+NSSPublicKey_FindCertificates
-+(
-+ NSSPublicKey *bk,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt, /* 0 for no max */
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSPrivateKey_FindBestCertificate
-+ *
-+ * The parameters for this function will depend on what the users
-+ * need. This is just a starting point.
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSPublicKey_FindBestCertificate
-+(
-+ NSSPublicKey *bk,
-+ NSSTime *timeOpt,
-+ NSSUsage *usageOpt,
-+ NSSPolicies *policiesOpt
-+);
-+
-+/*
-+ * NSSPublicKey_FindPrivateKey
-+ *
-+ */
-+
-+NSS_EXTERN NSSPrivateKey *
-+NSSPublicKey_FindPrivateKey
-+(
-+ NSSPublicKey *bk,
-+ NSSCallback *uhh
-+);
-+
-+/*
-+ * NSSSymmetricKey
-+ *
-+ */
-+
-+/*
-+ * NSSSymmetricKey_Destroy
-+ *
-+ * Free a pointer to a symmetric key object.
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSSymmetricKey_Destroy
-+(
-+ NSSSymmetricKey *mk
-+);
-+
-+/*
-+ * NSSSymmetricKey_DeleteStoredObject
-+ *
-+ * Permanently remove this object.
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSSymmetricKey_DeleteStoredObject
-+(
-+ NSSSymmetricKey *mk,
-+ NSSCallback *uhh
-+);
-+
-+/*
-+ * NSSSymmetricKey_GetKeyLength
-+ *
-+ */
-+
-+NSS_EXTERN PRUint32
-+NSSSymmetricKey_GetKeyLength
-+(
-+ NSSSymmetricKey *mk
-+);
-+
-+/*
-+ * NSSSymmetricKey_GetKeyStrength
-+ *
-+ */
-+
-+NSS_EXTERN PRUint32
-+NSSSymmetricKey_GetKeyStrength
-+(
-+ NSSSymmetricKey *mk
-+);
-+
-+/*
-+ * NSSSymmetricKey_IsStillPresent
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSSymmetricKey_IsStillPresent
-+(
-+ NSSSymmetricKey *mk
-+);
-+
-+/*
-+ * NSSSymmetricKey_GetTrustDomain
-+ *
-+ * There doesn't have to be one.
-+ */
-+
-+NSS_EXTERN NSSTrustDomain *
-+NSSSymmetricKey_GetTrustDomain
-+(
-+ NSSSymmetricKey *mk,
-+ PRStatus *statusOpt
-+);
-+
-+/*
-+ * NSSSymmetricKey_GetToken
-+ *
-+ * There doesn't have to be one.
-+ */
-+
-+NSS_EXTERN NSSToken *
-+NSSSymmetricKey_GetToken
-+(
-+ NSSSymmetricKey *mk,
-+ PRStatus *statusOpt
-+);
-+
-+/*
-+ * NSSSymmetricKey_GetSlot
-+ *
-+ * There doesn't have to be one.
-+ */
-+
-+NSS_EXTERN NSSSlot *
-+NSSSymmetricKey_GetSlot
-+(
-+ NSSSymmetricKey *mk,
-+ PRStatus *statusOpt
-+);
-+
-+/*
-+ * NSSSymmetricKey_GetModule
-+ *
-+ * There doesn't have to be one.
-+ */
-+
-+NSS_EXTERN NSSModule *
-+NSSSymmetricKey_GetModule
-+(
-+ NSSSymmetricKey *mk,
-+ PRStatus *statusOpt
-+);
-+
-+/*
-+ * NSSSymmetricKey_Encrypt
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSSymmetricKey_Encrypt
-+(
-+ NSSSymmetricKey *mk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSSymmetricKey_Decrypt
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSSymmetricKey_Decrypt
-+(
-+ NSSSymmetricKey *mk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *encryptedData,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSSymmetricKey_Sign
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSSymmetricKey_Sign
-+(
-+ NSSSymmetricKey *mk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSSymmetricKey_SignRecover
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSSymmetricKey_SignRecover
-+(
-+ NSSSymmetricKey *mk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSSymmetricKey_Verify
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSSymmetricKey_Verify
-+(
-+ NSSSymmetricKey *mk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSItem *signature,
-+ NSSCallback *uhh
-+);
-+
-+/*
-+ * NSSSymmetricKey_VerifyRecover
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSSymmetricKey_VerifyRecover
-+(
-+ NSSSymmetricKey *mk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *signature,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSSymmetricKey_WrapSymmetricKey
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSSymmetricKey_WrapSymmetricKey
-+(
-+ NSSSymmetricKey *wrappingKey,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSSymmetricKey *keyToWrap,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSSymmetricKey_WrapPrivateKey
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSSymmetricKey_WrapPrivateKey
-+(
-+ NSSSymmetricKey *wrappingKey,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSPrivateKey *keyToWrap,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSSymmetricKey_UnwrapSymmetricKey
-+ *
-+ */
-+
-+NSS_EXTERN NSSSymmetricKey *
-+NSSSymmetricKey_UnwrapSymmetricKey
-+(
-+ NSSSymmetricKey *wrappingKey,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *wrappedKey,
-+ NSSOID *target,
-+ PRUint32 keySizeOpt,
-+ NSSOperations operations,
-+ NSSCallback *uhh
-+);
-+
-+/*
-+ * NSSSymmetricKey_UnwrapPrivateKey
-+ *
-+ */
-+
-+NSS_EXTERN NSSPrivateKey *
-+NSSSymmetricKey_UnwrapPrivateKey
-+(
-+ NSSSymmetricKey *wrappingKey,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *wrappedKey,
-+ NSSUTF8 *labelOpt,
-+ NSSItem *keyIDOpt,
-+ PRBool persistant,
-+ PRBool sensitive,
-+ NSSToken *destinationOpt,
-+ NSSCallback *uhh
-+);
-+
-+/*
-+ * NSSSymmetricKey_DeriveSymmetricKey
-+ *
-+ */
-+
-+NSS_EXTERN NSSSymmetricKey *
-+NSSSymmetricKey_DeriveSymmetricKey
-+(
-+ NSSSymmetricKey *originalKey,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSOID *target,
-+ PRUint32 keySizeOpt,
-+ NSSOperations operations,
-+ NSSCallback *uhh
-+);
-+
-+/*
-+ * NSSSymmetricKey_CreateCryptoContext
-+ *
-+ * Create a crypto context, in this key's trust domain,
-+ * with this as the distinguished symmetric key.
-+ */
-+
-+NSS_EXTERN NSSCryptoContext *
-+NSSSymmetricKey_CreateCryptoContext
-+(
-+ NSSSymmetricKey *mk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSCallback *uhh
-+);
-+
-+/*
-+ * NSSTrustDomain
-+ *
-+ */
-+
-+/*
-+ * NSSTrustDomain_Create
-+ *
-+ * This creates a trust domain, optionally with an initial cryptoki
-+ * module. If the module name is not null, the module is loaded if
-+ * needed (using the uriOpt argument), and initialized with the
-+ * opaqueOpt argument. If mumble mumble priority settings, then
-+ * module-specification objects in the module can cause the loading
-+ * and initialization of further modules.
-+ *
-+ * The uriOpt is defined to take a URI. At present, we only
-+ * support file: URLs pointing to platform-native shared libraries.
-+ * However, by specifying this as a URI, this keeps open the
-+ * possibility of supporting other, possibly remote, resources.
-+ *
-+ * The "reserved" arguments is held for when we figure out the
-+ * module priority stuff.
-+ */
-+
-+NSS_EXTERN NSSTrustDomain *
-+NSSTrustDomain_Create
-+(
-+ NSSUTF8 *moduleOpt,
-+ NSSUTF8 *uriOpt,
-+ NSSUTF8 *opaqueOpt,
-+ void *reserved
-+);
-+
-+/*
-+ * NSSTrustDomain_Destroy
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSTrustDomain_Destroy
-+(
-+ NSSTrustDomain *td
-+);
-+
-+/*
-+ * NSSTrustDomain_SetDefaultCallback
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSTrustDomain_SetDefaultCallback
-+(
-+ NSSTrustDomain *td,
-+ NSSCallback *newCallback,
-+ NSSCallback **oldCallbackOpt
-+);
-+
-+/*
-+ * NSSTrustDomain_GetDefaultCallback
-+ *
-+ */
-+
-+NSS_EXTERN NSSCallback *
-+NSSTrustDomain_GetDefaultCallback
-+(
-+ NSSTrustDomain *td,
-+ PRStatus *statusOpt
-+);
-+
-+/*
-+ * Default policies?
-+ * Default usage?
-+ * Default time, for completeness?
-+ */
-+
-+/*
-+ * NSSTrustDomain_LoadModule
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSTrustDomain_LoadModule
-+(
-+ NSSTrustDomain *td,
-+ NSSUTF8 *moduleOpt,
-+ NSSUTF8 *uriOpt,
-+ NSSUTF8 *opaqueOpt,
-+ void *reserved
-+);
-+
-+/*
-+ * NSSTrustDomain_AddModule
-+ * NSSTrustDomain_AddSlot
-+ * NSSTrustDomain_UnloadModule
-+ * Managing modules, slots, tokens; priorities;
-+ * Traversing all of the above
-+ * this needs more work
-+ */
-+
-+/*
-+ * NSSTrustDomain_DisableToken
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSTrustDomain_DisableToken
-+(
-+ NSSTrustDomain *td,
-+ NSSToken *token,
-+ NSSError why
-+);
-+
-+/*
-+ * NSSTrustDomain_EnableToken
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSTrustDomain_EnableToken
-+(
-+ NSSTrustDomain *td,
-+ NSSToken *token
-+);
-+
-+/*
-+ * NSSTrustDomain_IsTokenEnabled
-+ *
-+ * If disabled, "why" is always on the error stack.
-+ * The optional argument is just for convenience.
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSTrustDomain_IsTokenEnabled
-+(
-+ NSSTrustDomain *td,
-+ NSSToken *token,
-+ NSSError *whyOpt
-+);
-+
-+/*
-+ * NSSTrustDomain_FindSlotByName
-+ *
-+ */
-+
-+NSS_EXTERN NSSSlot *
-+NSSTrustDomain_FindSlotByName
-+(
-+ NSSTrustDomain *td,
-+ NSSUTF8 *slotName
-+);
-+
-+/*
-+ * NSSTrustDomain_FindTokenByName
-+ *
-+ */
-+
-+NSS_EXTERN NSSToken *
-+NSSTrustDomain_FindTokenByName
-+(
-+ NSSTrustDomain *td,
-+ NSSUTF8 *tokenName
-+);
-+
-+/*
-+ * NSSTrustDomain_FindTokenBySlotName
-+ *
-+ */
-+
-+NSS_EXTERN NSSToken *
-+NSSTrustDomain_FindTokenBySlotName
-+(
-+ NSSTrustDomain *td,
-+ NSSUTF8 *slotName
-+);
-+
-+/*
-+ * NSSTrustDomain_FindBestTokenForAlgorithm
-+ *
-+ */
-+
-+NSS_EXTERN NSSToken *
-+NSSTrustDomain_FindTokenForAlgorithm
-+(
-+ NSSTrustDomain *td,
-+ NSSOID *algorithm
-+);
-+
-+/*
-+ * NSSTrustDomain_FindBestTokenForAlgorithms
-+ *
-+ */
-+
-+NSS_EXTERN NSSToken *
-+NSSTrustDomain_FindBestTokenForAlgorithms
-+(
-+ NSSTrustDomain *td,
-+ NSSOID *algorithms[], /* may be null-terminated */
-+ PRUint32 nAlgorithmsOpt /* limits the array if nonzero */
-+);
-+
-+/*
-+ * NSSTrustDomain_Login
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSTrustDomain_Login
-+(
-+ NSSTrustDomain *td,
-+ NSSCallback *uhhOpt
-+);
-+
-+/*
-+ * NSSTrustDomain_Logout
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSTrustDomain_Logout
-+(
-+ NSSTrustDomain *td
-+);
-+
-+/* Importing things */
-+
-+/*
-+ * NSSTrustDomain_ImportCertificate
-+ *
-+ * The implementation will pull some data out of the certificate
-+ * (e.g. e-mail address) for use in pkcs#11 object attributes.
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSTrustDomain_ImportCertificate
-+(
-+ NSSTrustDomain *td,
-+ NSSCertificate *c
-+);
-+
-+/*
-+ * NSSTrustDomain_ImportPKIXCertificate
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSTrustDomain_ImportPKIXCertificate
-+(
-+ NSSTrustDomain *td,
-+ /* declared as a struct until these "data types" are defined */
-+ struct NSSPKIXCertificateStr *pc
-+);
-+
-+/*
-+ * NSSTrustDomain_ImportEncodedCertificate
-+ *
-+ * Imports any type of certificate we support.
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSTrustDomain_ImportEncodedCertificate
-+(
-+ NSSTrustDomain *td,
-+ NSSBER *ber
-+);
-+
-+/*
-+ * NSSTrustDomain_ImportEncodedCertificateChain
-+ *
-+ * If you just want the leaf, pass in a maximum of one.
-+ */
-+
-+NSS_EXTERN NSSCertificate **
-+NSSTrustDomain_ImportEncodedCertificateChain
-+(
-+ NSSTrustDomain *td,
-+ NSSBER *ber,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt, /* 0 for no max */
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSTrustDomain_ImportEncodedPrivateKey
-+ *
-+ */
-+
-+NSS_EXTERN NSSPrivateKey *
-+NSSTrustDomain_ImportEncodedPrivateKey
-+(
-+ NSSTrustDomain *td,
-+ NSSBER *ber,
-+ NSSItem *passwordOpt, /* NULL will cause a callback */
-+ NSSCallback *uhhOpt,
-+ NSSToken *destination
-+);
-+
-+/*
-+ * NSSTrustDomain_ImportEncodedPublicKey
-+ *
-+ */
-+
-+NSS_EXTERN NSSPublicKey *
-+NSSTrustDomain_ImportEncodedPublicKey
-+(
-+ NSSTrustDomain *td,
-+ NSSBER *ber
-+);
-+
-+/* Other importations: S/MIME capabilities */
-+
-+/*
-+ * NSSTrustDomain_FindBestCertificateByNickname
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSTrustDomain_FindBestCertificateByNickname
-+(
-+ NSSTrustDomain *td,
-+ NSSUTF8 *name,
-+ NSSTime *timeOpt, /* NULL for "now" */
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt /* NULL for none */
-+);
-+
-+/*
-+ * NSSTrustDomain_FindCertificatesByNickname
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate **
-+NSSTrustDomain_FindCertificatesByNickname
-+(
-+ NSSTrustDomain *td,
-+ NSSUTF8 *name,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt, /* 0 for no max */
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSTrustDomain_FindCertificateByIssuerAndSerialNumber
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSTrustDomain_FindCertificateByIssuerAndSerialNumber
-+(
-+ NSSTrustDomain *td,
-+ NSSDER *issuer,
-+ NSSDER *serialNumber
-+);
-+
-+/*
-+ * NSSTrustDomain_FindCertificatesByIssuerAndSerialNumber
-+ *
-+ * Theoretically, this should never happen. However, some companies
-+ * we know have issued duplicate certificates with the same issuer
-+ * and serial number. Do we just ignore them? I'm thinking yes.
-+ */
-+
-+/*
-+ * NSSTrustDomain_FindBestCertificateBySubject
-+ *
-+ * This does not search through alternate names hidden in extensions.
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSTrustDomain_FindBestCertificateBySubject
-+(
-+ NSSTrustDomain *td,
-+ NSSDER /*NSSUTF8*/ *subject,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt
-+);
-+
-+/*
-+ * NSSTrustDomain_FindCertificatesBySubject
-+ *
-+ * This does not search through alternate names hidden in extensions.
-+ */
-+
-+NSS_EXTERN NSSCertificate **
-+NSSTrustDomain_FindCertificatesBySubject
-+(
-+ NSSTrustDomain *td,
-+ NSSDER /*NSSUTF8*/ *subject,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt, /* 0 for no max */
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSTrustDomain_FindBestCertificateByNameComponents
-+ *
-+ * This call does try several tricks, including a pseudo pkcs#11
-+ * attribute for the ldap module to try as a query. Eventually
-+ * this call falls back to a traversal if that's what's required.
-+ * It will search through alternate names hidden in extensions.
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSTrustDomain_FindBestCertificateByNameComponents
-+(
-+ NSSTrustDomain *td,
-+ NSSUTF8 *nameComponents,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt
-+);
-+
-+/*
-+ * NSSTrustDomain_FindCertificatesByNameComponents
-+ *
-+ * This call, too, tries several tricks. It will stop on the first
-+ * attempt that generates results, so it won't e.g. traverse the
-+ * entire ldap database.
-+ */
-+
-+NSS_EXTERN NSSCertificate **
-+NSSTrustDomain_FindCertificatesByNameComponents
-+(
-+ NSSTrustDomain *td,
-+ NSSUTF8 *nameComponents,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt, /* 0 for no max */
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSTrustDomain_FindCertificateByEncodedCertificate
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSTrustDomain_FindCertificateByEncodedCertificate
-+(
-+ NSSTrustDomain *td,
-+ NSSBER *encodedCertificate
-+);
-+
-+/*
-+ * NSSTrustDomain_FindBestCertificateByEmail
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSTrustDomain_FindCertificateByEmail
-+(
-+ NSSTrustDomain *td,
-+ NSSASCII7 *email,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt
-+);
-+
-+/*
-+ * NSSTrustDomain_FindCertificatesByEmail
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate **
-+NSSTrustDomain_FindCertificatesByEmail
-+(
-+ NSSTrustDomain *td,
-+ NSSASCII7 *email,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt, /* 0 for no max */
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSTrustDomain_FindCertificateByOCSPHash
-+ *
-+ * There can be only one.
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSTrustDomain_FindCertificateByOCSPHash
-+(
-+ NSSTrustDomain *td,
-+ NSSItem *hash
-+);
-+
-+/*
-+ * NSSTrustDomain_TraverseCertificates
-+ *
-+ * This function descends from one in older versions of NSS which
-+ * traverses the certs in the permanent database. That function
-+ * was used to implement selection routines, but was directly
-+ * available too. Trust domains are going to contain a lot more
-+ * certs now (e.g., an ldap server), so we'd really like to
-+ * discourage traversal. Thus for now, this is commented out.
-+ * If it's needed, let's look at the situation more closely to
-+ * find out what the actual requirements are.
-+ */
-+
-+/* For now, adding this function. This may only be for debugging
-+ * purposes.
-+ * Perhaps some equivalent function, on a specified token, will be
-+ * needed in a "friend" header file?
-+ */
-+NSS_EXTERN PRStatus *
-+NSSTrustDomain_TraverseCertificates
-+(
-+ NSSTrustDomain *td,
-+ PRStatus (*callback)(NSSCertificate *c, void *arg),
-+ void *arg
-+);
-+
-+/*
-+ * NSSTrustDomain_FindBestUserCertificate
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSTrustDomain_FindBestUserCertificate
-+(
-+ NSSTrustDomain *td,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt
-+);
-+
-+/*
-+ * NSSTrustDomain_FindUserCertificates
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate **
-+NSSTrustDomain_FindUserCertificates
-+(
-+ NSSTrustDomain *td,
-+ NSSTime *timeOpt,
-+ NSSUsage *usageOpt,
-+ NSSPolicies *policiesOpt,
-+ NSSCertificate **rvOpt,
-+ PRUint32 rvLimit, /* zero for no limit */
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSTrustDomain_FindBestUserCertificateForSSLClientAuth
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSTrustDomain_FindBestUserCertificateForSSLClientAuth
-+(
-+ NSSTrustDomain *td,
-+ NSSUTF8 *sslHostOpt,
-+ NSSDER *rootCAsOpt[], /* null pointer for none */
-+ PRUint32 rootCAsMaxOpt, /* zero means list is null-terminated */
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSPolicies *policiesOpt
-+);
-+
-+/*
-+ * NSSTrustDomain_FindUserCertificatesForSSLClientAuth
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate **
-+NSSTrustDomain_FindUserCertificatesForSSLClientAuth
-+(
-+ NSSTrustDomain *td,
-+ NSSUTF8 *sslHostOpt,
-+ NSSDER *rootCAsOpt[], /* null pointer for none */
-+ PRUint32 rootCAsMaxOpt, /* zero means list is null-terminated */
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSPolicies *policiesOpt,
-+ NSSCertificate **rvOpt,
-+ PRUint32 rvLimit, /* zero for no limit */
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSTrustDomain_FindBestUserCertificateForEmailSigning
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSTrustDomain_FindBestUserCertificateForEmailSigning
-+(
-+ NSSTrustDomain *td,
-+ NSSASCII7 *signerOpt,
-+ NSSASCII7 *recipientOpt,
-+ /* anything more here? */
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSPolicies *policiesOpt
-+);
-+
-+/*
-+ * NSSTrustDomain_FindUserCertificatesForEmailSigning
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate **
-+NSSTrustDomain_FindUserCertificatesForEmailSigning
-+(
-+ NSSTrustDomain *td,
-+ NSSASCII7 *signerOpt,
-+ NSSASCII7 *recipientOpt,
-+ /* anything more here? */
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSPolicies *policiesOpt,
-+ NSSCertificate **rvOpt,
-+ PRUint32 rvLimit, /* zero for no limit */
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * Here is where we'd add more Find[Best]UserCertificate[s]For<usage>
-+ * routines.
-+ */
-+
-+/* Private Keys */
-+
-+/*
-+ * NSSTrustDomain_GenerateKeyPair
-+ *
-+ * Creates persistant objects. If you want session objects, use
-+ * NSSCryptoContext_GenerateKeyPair. The destination token is where
-+ * the keys are stored. If that token can do the required math, then
-+ * that's where the keys are generated too. Otherwise, the keys are
-+ * generated elsewhere and moved to that token.
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSTrustDomain_GenerateKeyPair
-+(
-+ NSSTrustDomain *td,
-+ NSSAlgorithmAndParameters *ap,
-+ NSSPrivateKey **pvkOpt,
-+ NSSPublicKey **pbkOpt,
-+ PRBool privateKeyIsSensitive,
-+ NSSToken *destination,
-+ NSSCallback *uhhOpt
-+);
-+
-+/*
-+ * NSSTrustDomain_TraversePrivateKeys
-+ *
-+ *
-+ * NSS_EXTERN PRStatus *
-+ * NSSTrustDomain_TraversePrivateKeys
-+ * (
-+ * NSSTrustDomain *td,
-+ * PRStatus (*callback)(NSSPrivateKey *vk, void *arg),
-+ * void *arg
-+ * );
-+ */
-+
-+/* Symmetric Keys */
-+
-+/*
-+ * NSSTrustDomain_GenerateSymmetricKey
-+ *
-+ */
-+
-+NSS_EXTERN NSSSymmetricKey *
-+NSSTrustDomain_GenerateSymmetricKey
-+(
-+ NSSTrustDomain *td,
-+ NSSAlgorithmAndParameters *ap,
-+ PRUint32 keysize,
-+ NSSToken *destination,
-+ NSSCallback *uhhOpt
-+);
-+
-+/*
-+ * NSSTrustDomain_GenerateSymmetricKeyFromPassword
-+ *
-+ */
-+
-+NSS_EXTERN NSSSymmetricKey *
-+NSSTrustDomain_GenerateSymmetricKeyFromPassword
-+(
-+ NSSTrustDomain *td,
-+ NSSAlgorithmAndParameters *ap,
-+ NSSUTF8 *passwordOpt, /* if null, prompt */
-+ NSSToken *destinationOpt,
-+ NSSCallback *uhhOpt
-+);
-+
-+/*
-+ * NSSTrustDomain_FindSymmetricKeyByAlgorithm
-+ *
-+ * Is this still needed?
-+ *
-+ * NSS_EXTERN NSSSymmetricKey *
-+ * NSSTrustDomain_FindSymmetricKeyByAlgorithm
-+ * (
-+ * NSSTrustDomain *td,
-+ * NSSOID *algorithm,
-+ * NSSCallback *uhhOpt
-+ * );
-+ */
-+
-+/*
-+ * NSSTrustDomain_FindSymmetricKeyByAlgorithmAndKeyID
-+ *
-+ */
-+
-+NSS_EXTERN NSSSymmetricKey *
-+NSSTrustDomain_FindSymmetricKeyByAlgorithmAndKeyID
-+(
-+ NSSTrustDomain *td,
-+ NSSOID *algorithm,
-+ NSSItem *keyID,
-+ NSSCallback *uhhOpt
-+);
-+
-+/*
-+ * NSSTrustDomain_TraverseSymmetricKeys
-+ *
-+ *
-+ * NSS_EXTERN PRStatus *
-+ * NSSTrustDomain_TraverseSymmetricKeys
-+ * (
-+ * NSSTrustDomain *td,
-+ * PRStatus (*callback)(NSSSymmetricKey *mk, void *arg),
-+ * void *arg
-+ * );
-+ */
-+
-+/*
-+ * NSSTrustDomain_CreateCryptoContext
-+ *
-+ * If a callback object is specified, it becomes the for the crypto
-+ * context; otherwise, this trust domain's default (if any) is
-+ * inherited.
-+ */
-+
-+NSS_EXTERN NSSCryptoContext *
-+NSSTrustDomain_CreateCryptoContext
-+(
-+ NSSTrustDomain *td,
-+ NSSCallback *uhhOpt
-+);
-+
-+/*
-+ * NSSTrustDomain_CreateCryptoContextForAlgorithm
-+ *
-+ */
-+
-+NSS_EXTERN NSSCryptoContext *
-+NSSTrustDomain_CreateCryptoContextForAlgorithm
-+(
-+ NSSTrustDomain *td,
-+ NSSOID *algorithm
-+);
-+
-+/*
-+ * NSSTrustDomain_CreateCryptoContextForAlgorithmAndParameters
-+ *
-+ */
-+
-+NSS_EXTERN NSSCryptoContext *
-+NSSTrustDomain_CreateCryptoContextForAlgorithmAndParameters
-+(
-+ NSSTrustDomain *td,
-+ NSSAlgorithmAndParameters *ap
-+);
-+
-+/* find/traverse other objects, e.g. s/mime profiles */
-+
-+/*
-+ * NSSCryptoContext
-+ *
-+ * A crypto context is sort of a short-term snapshot of a trust domain,
-+ * used for the life of "one crypto operation." You can also think of
-+ * it as a "temporary database."
-+ *
-+ * Just about all of the things you can do with a trust domain -- importing
-+ * or creating certs, keys, etc. -- can be done with a crypto context.
-+ * The difference is that the objects will be temporary ("session") objects.
-+ *
-+ * Also, if the context was created for a key, cert, and/or algorithm; or
-+ * if such objects have been "associated" with the context, then the context
-+ * can do everything the keys can, like crypto operations.
-+ *
-+ * And finally, because it keeps the state of the crypto operations, it
-+ * can do streaming crypto ops.
-+ */
-+
-+/*
-+ * NSSTrustDomain_Destroy
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSCryptoContext_Destroy
-+(
-+ NSSCryptoContext *cc
-+);
-+
-+/* establishing a default callback */
-+
-+/*
-+ * NSSCryptoContext_SetDefaultCallback
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSCryptoContext_SetDefaultCallback
-+(
-+ NSSCryptoContext *cc,
-+ NSSCallback *newCallback,
-+ NSSCallback **oldCallbackOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_GetDefaultCallback
-+ *
-+ */
-+
-+NSS_EXTERN NSSCallback *
-+NSSCryptoContext_GetDefaultCallback
-+(
-+ NSSCryptoContext *cc,
-+ PRStatus *statusOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_GetTrustDomain
-+ *
-+ */
-+
-+NSS_EXTERN NSSTrustDomain *
-+NSSCryptoContext_GetTrustDomain
-+(
-+ NSSCryptoContext *cc
-+);
-+
-+/* AddModule, etc: should we allow "temporary" changes here? */
-+/* DisableToken, etc: ditto */
-+/* Ordering of tokens? */
-+/* Finding slots+token etc. */
-+/* login+logout */
-+
-+/* Importing things */
-+
-+/*
-+ * NSSCryptoContext_ImportCertificate
-+ *
-+ * If there's not a "distinguished certificate" for this context, this
-+ * sets the specified one to be it.
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSCryptoContext_ImportCertificate
-+(
-+ NSSCryptoContext *cc,
-+ NSSCertificate *c
-+);
-+
-+/*
-+ * NSSCryptoContext_ImportPKIXCertificate
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSCryptoContext_ImportPKIXCertificate
-+(
-+ NSSCryptoContext *cc,
-+ struct NSSPKIXCertificateStr *pc
-+);
-+
-+/*
-+ * NSSCryptoContext_ImportEncodedCertificate
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSCryptoContext_ImportEncodedCertificate
-+(
-+ NSSCryptoContext *cc,
-+ NSSBER *ber
-+);
-+
-+/*
-+ * NSSCryptoContext_ImportEncodedPKIXCertificateChain
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSCryptoContext_ImportEncodedPKIXCertificateChain
-+(
-+ NSSCryptoContext *cc,
-+ NSSBER *ber
-+);
-+
-+/* Other importations: S/MIME capabilities
-+ */
-+
-+/*
-+ * NSSCryptoContext_FindBestCertificateByNickname
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSCryptoContext_FindBestCertificateByNickname
-+(
-+ NSSCryptoContext *cc,
-+ NSSUTF8 *name,
-+ NSSTime *timeOpt, /* NULL for "now" */
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt /* NULL for none */
-+);
-+
-+/*
-+ * NSSCryptoContext_FindCertificatesByNickname
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate **
-+NSSCryptoContext_FindCertificatesByNickname
-+(
-+ NSSCryptoContext *cc,
-+ NSSUTF8 *name,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt, /* 0 for no max */
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_FindCertificateByIssuerAndSerialNumber
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSCryptoContext_FindCertificateByIssuerAndSerialNumber
-+(
-+ NSSCryptoContext *cc,
-+ NSSDER *issuer,
-+ NSSDER *serialNumber
-+);
-+
-+/*
-+ * NSSCryptoContext_FindBestCertificateBySubject
-+ *
-+ * This does not search through alternate names hidden in extensions.
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSCryptoContext_FindBestCertificateBySubject
-+(
-+ NSSCryptoContext *cc,
-+ NSSDER /*NSSUTF8*/ *subject,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_FindCertificatesBySubject
-+ *
-+ * This does not search through alternate names hidden in extensions.
-+ */
-+
-+NSS_EXTERN NSSCertificate **
-+NSSCryptoContext_FindCertificatesBySubject
-+(
-+ NSSCryptoContext *cc,
-+ NSSDER /*NSSUTF8*/ *subject,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt, /* 0 for no max */
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_FindBestCertificateByNameComponents
-+ *
-+ * This call does try several tricks, including a pseudo pkcs#11
-+ * attribute for the ldap module to try as a query. Eventually
-+ * this call falls back to a traversal if that's what's required.
-+ * It will search through alternate names hidden in extensions.
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSCryptoContext_FindBestCertificateByNameComponents
-+(
-+ NSSCryptoContext *cc,
-+ NSSUTF8 *nameComponents,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_FindCertificatesByNameComponents
-+ *
-+ * This call, too, tries several tricks. It will stop on the first
-+ * attempt that generates results, so it won't e.g. traverse the
-+ * entire ldap database.
-+ */
-+
-+NSS_EXTERN NSSCertificate **
-+NSSCryptoContext_FindCertificatesByNameComponents
-+(
-+ NSSCryptoContext *cc,
-+ NSSUTF8 *nameComponents,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt, /* 0 for no max */
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_FindCertificateByEncodedCertificate
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSCryptoContext_FindCertificateByEncodedCertificate
-+(
-+ NSSCryptoContext *cc,
-+ NSSBER *encodedCertificate
-+);
-+
-+/*
-+ * NSSCryptoContext_FindBestCertificateByEmail
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSCryptoContext_FindBestCertificateByEmail
-+(
-+ NSSCryptoContext *cc,
-+ NSSASCII7 *email,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_FindCertificatesByEmail
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate **
-+NSSCryptoContext_FindCertificatesByEmail
-+(
-+ NSSCryptoContext *cc,
-+ NSSASCII7 *email,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt, /* 0 for no max */
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_FindCertificateByOCSPHash
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSCryptoContext_FindCertificateByOCSPHash
-+(
-+ NSSCryptoContext *cc,
-+ NSSItem *hash
-+);
-+
-+/*
-+ * NSSCryptoContext_TraverseCertificates
-+ *
-+ *
-+ * NSS_EXTERN PRStatus *
-+ * NSSCryptoContext_TraverseCertificates
-+ * (
-+ * NSSCryptoContext *cc,
-+ * PRStatus (*callback)(NSSCertificate *c, void *arg),
-+ * void *arg
-+ * );
-+ */
-+
-+/*
-+ * NSSCryptoContext_FindBestUserCertificate
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSCryptoContext_FindBestUserCertificate
-+(
-+ NSSCryptoContext *cc,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_FindUserCertificates
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate **
-+NSSCryptoContext_FindUserCertificates
-+(
-+ NSSCryptoContext *cc,
-+ NSSTime *timeOpt,
-+ NSSUsage *usageOpt,
-+ NSSPolicies *policiesOpt,
-+ NSSCertificate **rvOpt,
-+ PRUint32 rvLimit, /* zero for no limit */
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_FindBestUserCertificateForSSLClientAuth
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSCryptoContext_FindBestUserCertificateForSSLClientAuth
-+(
-+ NSSCryptoContext *cc,
-+ NSSUTF8 *sslHostOpt,
-+ NSSDER *rootCAsOpt[], /* null pointer for none */
-+ PRUint32 rootCAsMaxOpt, /* zero means list is null-terminated */
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSPolicies *policiesOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_FindUserCertificatesForSSLClientAuth
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate **
-+NSSCryptoContext_FindUserCertificatesForSSLClientAuth
-+(
-+ NSSCryptoContext *cc,
-+ NSSUTF8 *sslHostOpt,
-+ NSSDER *rootCAsOpt[], /* null pointer for none */
-+ PRUint32 rootCAsMaxOpt, /* zero means list is null-terminated */
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSPolicies *policiesOpt,
-+ NSSCertificate **rvOpt,
-+ PRUint32 rvLimit, /* zero for no limit */
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_FindBestUserCertificateForEmailSigning
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSCryptoContext_FindBestUserCertificateForEmailSigning
-+(
-+ NSSCryptoContext *cc,
-+ NSSASCII7 *signerOpt,
-+ NSSASCII7 *recipientOpt,
-+ /* anything more here? */
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSPolicies *policiesOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_FindUserCertificatesForEmailSigning
-+ *
-+ */
-+
-+NSS_EXTERN NSSCertificate *
-+NSSCryptoContext_FindUserCertificatesForEmailSigning
-+(
-+ NSSCryptoContext *cc,
-+ NSSASCII7 *signerOpt, /* fgmr or a more general name? */
-+ NSSASCII7 *recipientOpt,
-+ /* anything more here? */
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSPolicies *policiesOpt,
-+ NSSCertificate **rvOpt,
-+ PRUint32 rvLimit, /* zero for no limit */
-+ NSSArena *arenaOpt
-+);
-+
-+/* Private Keys */
-+
-+/*
-+ * NSSCryptoContext_GenerateKeyPair
-+ *
-+ * Creates session objects. If you want persistant objects, use
-+ * NSSTrustDomain_GenerateKeyPair. The destination token is where
-+ * the keys are stored. If that token can do the required math, then
-+ * that's where the keys are generated too. Otherwise, the keys are
-+ * generated elsewhere and moved to that token.
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSCryptoContext_GenerateKeyPair
-+(
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *ap,
-+ NSSPrivateKey **pvkOpt,
-+ NSSPublicKey **pbkOpt,
-+ PRBool privateKeyIsSensitive,
-+ NSSToken *destination,
-+ NSSCallback *uhhOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_TraversePrivateKeys
-+ *
-+ *
-+ * NSS_EXTERN PRStatus *
-+ * NSSCryptoContext_TraversePrivateKeys
-+ * (
-+ * NSSCryptoContext *cc,
-+ * PRStatus (*callback)(NSSPrivateKey *vk, void *arg),
-+ * void *arg
-+ * );
-+ */
-+
-+/* Symmetric Keys */
-+
-+/*
-+ * NSSCryptoContext_GenerateSymmetricKey
-+ *
-+ */
-+
-+NSS_EXTERN NSSSymmetricKey *
-+NSSCryptoContext_GenerateSymmetricKey
-+(
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *ap,
-+ PRUint32 keysize,
-+ NSSToken *destination,
-+ NSSCallback *uhhOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_GenerateSymmetricKeyFromPassword
-+ *
-+ */
-+
-+NSS_EXTERN NSSSymmetricKey *
-+NSSCryptoContext_GenerateSymmetricKeyFromPassword
-+(
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *ap,
-+ NSSUTF8 *passwordOpt, /* if null, prompt */
-+ NSSToken *destinationOpt,
-+ NSSCallback *uhhOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_FindSymmetricKeyByAlgorithm
-+ *
-+ *
-+ * NSS_EXTERN NSSSymmetricKey *
-+ * NSSCryptoContext_FindSymmetricKeyByType
-+ * (
-+ * NSSCryptoContext *cc,
-+ * NSSOID *type,
-+ * NSSCallback *uhhOpt
-+ * );
-+ */
-+
-+/*
-+ * NSSCryptoContext_FindSymmetricKeyByAlgorithmAndKeyID
-+ *
-+ */
-+
-+NSS_EXTERN NSSSymmetricKey *
-+NSSCryptoContext_FindSymmetricKeyByAlgorithmAndKeyID
-+(
-+ NSSCryptoContext *cc,
-+ NSSOID *algorithm,
-+ NSSItem *keyID,
-+ NSSCallback *uhhOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_TraverseSymmetricKeys
-+ *
-+ *
-+ * NSS_EXTERN PRStatus *
-+ * NSSCryptoContext_TraverseSymmetricKeys
-+ * (
-+ * NSSCryptoContext *cc,
-+ * PRStatus (*callback)(NSSSymmetricKey *mk, void *arg),
-+ * void *arg
-+ * );
-+ */
-+
-+/* Crypto ops on distinguished keys */
-+
-+/*
-+ * NSSCryptoContext_Decrypt
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSCryptoContext_Decrypt
-+(
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *encryptedData,
-+ NSSCallback *uhhOpt,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_BeginDecrypt
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSCryptoContext_BeginDecrypt
-+(
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSCallback *uhhOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_ContinueDecrypt
-+ *
-+ */
-+
-+/*
-+ * NSSItem semantics:
-+ *
-+ * If rvOpt is NULL, a new NSSItem and buffer are allocated.
-+ * If rvOpt is not null, but the buffer pointer is null,
-+ * then rvOpt is returned but a new buffer is allocated.
-+ * In this case, if the length value is not zero, then
-+ * no more than that much space will be allocated.
-+ * If rvOpt is not null and the buffer pointer is not null,
-+ * then that buffer is re-used. No more than the buffer
-+ * length value will be used; if it's not enough, an
-+ * error is returned. If less is used, the number is
-+ * adjusted downwards.
-+ *
-+ * Note that although this is short of some ideal "Item"
-+ * definition, we can usually tell how big these buffers
-+ * have to be.
-+ *
-+ * Feedback is requested; and earlier is better than later.
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSCryptoContext_ContinueDecrypt
-+(
-+ NSSCryptoContext *cc,
-+ NSSItem *data,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_FinishDecrypt
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSCryptoContext_FinishDecrypt
-+(
-+ NSSCryptoContext *cc,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_Sign
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSCryptoContext_Sign
-+(
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSCallback *uhhOpt,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_BeginSign
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSCryptoContext_BeginSign
-+(
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSCallback *uhhOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_ContinueSign
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSCryptoContext_ContinueSign
-+(
-+ NSSCryptoContext *cc,
-+ NSSItem *data
-+);
-+
-+/*
-+ * NSSCryptoContext_FinishSign
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSCryptoContext_FinishSign
-+(
-+ NSSCryptoContext *cc,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_SignRecover
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSCryptoContext_SignRecover
-+(
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSCallback *uhhOpt,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_BeginSignRecover
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSCryptoContext_BeginSignRecover
-+(
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSCallback *uhhOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_ContinueSignRecover
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSCryptoContext_ContinueSignRecover
-+(
-+ NSSCryptoContext *cc,
-+ NSSItem *data,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_FinishSignRecover
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSCryptoContext_FinishSignRecover
-+(
-+ NSSCryptoContext *cc,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_UnwrapSymmetricKey
-+ *
-+ */
-+
-+NSS_EXTERN NSSSymmetricKey *
-+NSSCryptoContext_UnwrapSymmetricKey
-+(
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *wrappedKey,
-+ NSSCallback *uhhOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_DeriveSymmetricKey
-+ *
-+ */
-+
-+NSS_EXTERN NSSSymmetricKey *
-+NSSCryptoContext_DeriveSymmetricKey
-+(
-+ NSSCryptoContext *cc,
-+ NSSPublicKey *bk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSOID *target,
-+ PRUint32 keySizeOpt, /* zero for best allowed */
-+ NSSOperations operations,
-+ NSSCallback *uhhOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_Encrypt
-+ *
-+ * Encrypt a single chunk of data with the distinguished public key
-+ * of this crypto context.
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSCryptoContext_Encrypt
-+(
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSCallback *uhhOpt,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_BeginEncrypt
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSCryptoContext_BeginEncrypt
-+(
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSCallback *uhhOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_ContinueEncrypt
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSCryptoContext_ContinueEncrypt
-+(
-+ NSSCryptoContext *cc,
-+ NSSItem *data,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_FinishEncrypt
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSCryptoContext_FinishEncrypt
-+(
-+ NSSCryptoContext *cc,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_Verify
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSCryptoContext_Verify
-+(
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSItem *signature,
-+ NSSCallback *uhhOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_BeginVerify
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSCryptoContext_BeginVerify
-+(
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *signature,
-+ NSSCallback *uhhOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_ContinueVerify
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSCryptoContext_ContinueVerify
-+(
-+ NSSCryptoContext *cc,
-+ NSSItem *data
-+);
-+
-+/*
-+ * NSSCryptoContext_FinishVerify
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSCryptoContext_FinishVerify
-+(
-+ NSSCryptoContext *cc
-+);
-+
-+/*
-+ * NSSCryptoContext_VerifyRecover
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSCryptoContext_VerifyRecover
-+(
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *signature,
-+ NSSCallback *uhhOpt,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_BeginVerifyRecover
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSCryptoContext_BeginVerifyRecover
-+(
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSCallback *uhhOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_ContinueVerifyRecover
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSCryptoContext_ContinueVerifyRecover
-+(
-+ NSSCryptoContext *cc,
-+ NSSItem *data,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_FinishVerifyRecover
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSCryptoContext_FinishVerifyRecover
-+(
-+ NSSCryptoContext *cc,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_WrapSymmetricKey
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSCryptoContext_WrapSymmetricKey
-+(
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSSymmetricKey *keyToWrap,
-+ NSSCallback *uhhOpt,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_Digest
-+ *
-+ * Digest a single chunk of data with the distinguished digest key
-+ * of this crypto context.
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSCryptoContext_Digest
-+(
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSCallback *uhhOpt,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_BeginDigest
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSCryptoContext_BeginDigest
-+(
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSCallback *uhhOpt
-+);
-+
-+/*
-+ * NSSCryptoContext_ContinueDigest
-+ *
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSCryptoContext_ContinueDigest
-+(
-+ NSSCryptoContext *cc,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *item
-+);
-+
-+/*
-+ * NSSCryptoContext_FinishDigest
-+ *
-+ */
-+
-+NSS_EXTERN NSSItem *
-+NSSCryptoContext_FinishDigest
-+(
-+ NSSCryptoContext *cc,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * tbd: Combination ops
-+ */
-+
-+/*
-+ * NSSCryptoContext_Clone
-+ *
-+ */
-+
-+NSS_EXTERN NSSCryptoContext *
-+NSSCryptoContext_Clone
-+(
-+ NSSCryptoContext *cc
-+);
-+
-+/*
-+ * NSSCryptoContext_Save
-+ * NSSCryptoContext_Restore
-+ *
-+ * We need to be able to save and restore the state of contexts.
-+ * Perhaps a mark-and-release mechanism would be better?
-+ */
-+
-+/*
-+ * ..._SignTBSCertificate
-+ *
-+ * This requires feedback from the cert server team.
-+ */
-+
-+/*
-+ * PRBool NSSCertificate_GetIsTrustedFor{xxx}(NSSCertificate *c);
-+ * PRStatus NSSCertificate_SetIsTrustedFor{xxx}(NSSCertificate *c, PRBool trusted);
-+ *
-+ * These will be helper functions which get the trust object for a cert,
-+ * and then call the corresponding function(s) on it.
-+ *
-+ * PKIX trust objects will have methods to manipulate the low-level trust
-+ * bits (which are based on key usage and extended key usage), and also the
-+ * conceptual high-level usages (e.g. ssl client auth, email encryption, etc.)
-+ *
-+ * Other types of trust objects (if any) might have different low-level
-+ * representations, but hopefully high-level concepts would map.
-+ *
-+ * Only these high-level general routines would be promoted to the
-+ * general certificate level here. Hence the {xxx} above would be things
-+ * like "EmailSigning."
-+ *
-+ *
-+ * NSSPKIXTrust *NSSCertificate_GetPKIXTrustObject(NSSCertificate *c);
-+ * PRStatus NSSCertificate_SetPKIXTrustObject(NSSCertificate *c, NSPKIXTrust *t);
-+ *
-+ * I want to hold off on any general trust object until we've investigated
-+ * other models more thoroughly.
-+ */
-+
-+PR_END_EXTERN_C
-+
-+#endif /* NSSPKI_H */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/nsspki1.h 2004-12-13 15:50:16.033152304 +0100
-@@ -0,0 +1,2869 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifndef NSSPKI1_H
-+#define NSSPKI1_H
-+
-+#ifdef DEBUG
-+static const char NSSPKI1_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+/*
-+ * nsspki1.h
-+ *
-+ * This file contains the prototypes of the public NSS routines
-+ * dealing with the PKIX part-1 definitions.
-+ */
-+
-+#ifndef NSSBASET_H
-+#include "nssbaset.h"
-+#endif /* NSSBASET_H */
-+
-+#ifndef NSSPKI1T_H
-+#include "nsspki1t.h"
-+#endif /* NSSPKI1T_H */
-+
-+#ifndef OIDDATA_H
-+#include "oiddata.h"
-+#endif /* OIDDATA_H */
-+
-+PR_BEGIN_EXTERN_C
-+
-+/*
-+ * NSSOID
-+ *
-+ * The public "methods" regarding this "object" are:
-+ *
-+ * NSSOID_CreateFromBER -- constructor
-+ * NSSOID_CreateFromUTF8 -- constructor
-+ * (there is no explicit destructor)
-+ *
-+ * NSSOID_GetDEREncoding
-+ * NSSOID_GetUTF8Encoding
-+ */
-+
-+extern const NSSOID *NSS_OID_UNKNOWN;
-+
-+/*
-+ * NSSOID_CreateFromBER
-+ *
-+ * This routine creates an NSSOID by decoding a BER- or DER-encoded
-+ * OID. It may return NSS_OID_UNKNOWN upon error, in which case it
-+ * will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_BER
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NSS_OID_UNKNOWN upon error
-+ * An NSSOID upon success
-+ */
-+
-+NSS_EXTERN NSSOID *
-+NSSOID_CreateFromBER
-+(
-+ NSSBER *berOid
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_BER;
-+extern const NSSError NSS_ERROR_NO_MEMORY;
-+
-+/*
-+ * NSSOID_CreateFromUTF8
-+ *
-+ * This routine creates an NSSOID by decoding a UTF8 string
-+ * representation of an OID in dotted-number format. The string may
-+ * optionally begin with an octothorpe. It may return NSS_OID_UNKNOWN
-+ * upon error, in which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_STRING
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NSS_OID_UNKNOWN upon error
-+ * An NSSOID upon success
-+ */
-+
-+NSS_EXTERN NSSOID *
-+NSSOID_CreateFromUTF8
-+(
-+ NSSUTF8 *stringOid
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_STRING;
-+extern const NSSError NSS_ERROR_NO_MEMORY;
-+
-+/*
-+ * NSSOID_GetDEREncoding
-+ *
-+ * This routine returns the DER encoding of the specified NSSOID.
-+ * If the optional arena argument is non-null, the memory used will
-+ * be obtained from that arena; otherwise, the memory will be obtained
-+ * from the heap. This routine may return return null upon error, in
-+ * which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_NSSOID
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * The DER encoding of this NSSOID
-+ */
-+
-+NSS_EXTERN NSSDER *
-+NSSOID_GetDEREncoding
-+(
-+ const NSSOID *oid,
-+ NSSDER *rvOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_NSSOID;
-+extern const NSSError NSS_ERROR_NO_MEMORY;
-+
-+/*
-+ * NSSOID_GetUTF8Encoding
-+ *
-+ * This routine returns a UTF8 string containing the dotted-number
-+ * encoding of the specified NSSOID. If the optional arena argument
-+ * is non-null, the memory used will be obtained from that arena;
-+ * otherwise, the memory will be obtained from the heap. This routine
-+ * may return null upon error, in which case it will have created an
-+ * error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_NSSOID
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a UTF8 string containing the dotted-digit encoding of
-+ * this NSSOID
-+ */
-+
-+NSS_EXTERN NSSUTF8 *
-+NSSOID_GetUTF8Encoding
-+(
-+ const NSSOID *oid,
-+ NSSArena *arenaOpt
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_NSSOID;
-+extern const NSSError NSS_ERROR_NO_MEMORY;
-+
-+/*
-+ * NSSATAV
-+ *
-+ * The public "methods" regarding this "object" are:
-+ *
-+ * NSSATAV_CreateFromBER -- constructor
-+ * NSSATAV_CreateFromUTF8 -- constructor
-+ * NSSATAV_Create -- constructor
-+ *
-+ * NSSATAV_Destroy
-+ * NSSATAV_GetDEREncoding
-+ * NSSATAV_GetUTF8Encoding
-+ * NSSATAV_GetType
-+ * NSSATAV_GetValue
-+ * NSSATAV_Compare
-+ * NSSATAV_Duplicate
-+ */
-+
-+/*
-+ * NSSATAV_CreateFromBER
-+ *
-+ * This routine creates an NSSATAV by decoding a BER- or DER-encoded
-+ * ATAV. If the optional arena argument is non-null, the memory used
-+ * will be obtained from that arena; otherwise, the memory will be
-+ * obtained from the heap. This routine may return NULL upon error,
-+ * in which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_BER
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to an NSSATAV upon success
-+ */
-+
-+NSS_EXTERN NSSATAV *
-+NSSATAV_CreateFromBER
-+(
-+ NSSArena *arenaOpt,
-+ NSSBER *derATAV
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_BER;
-+extern const NSSError NSS_ERROR_NO_MEMORY;
-+
-+/*
-+ * NSSATAV_CreateFromUTF8
-+ *
-+ * This routine creates an NSSATAV by decoding a UTF8 string in the
-+ * "equals" format, e.g., "c=US." If the optional arena argument is
-+ * non-null, the memory used will be obtained from that arena;
-+ * otherwise, the memory will be obtained from the heap. This routine
-+ * may return NULL upon error, in which case it will have created an
-+ * error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_UNKNOWN_ATTRIBUTE
-+ * NSS_ERROR_INVALID_STRING
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to an NSSATAV upon success
-+ */
-+
-+NSS_EXTERN NSSATAV *
-+NSSATAV_CreateFromUTF8
-+(
-+ NSSArena *arenaOpt,
-+ NSSUTF8 *stringATAV
-+);
-+
-+extern const NSSError NSS_ERROR_UNKNOWN_ATTRIBUTE;
-+extern const NSSError NSS_ERROR_INVALID_STRING;
-+extern const NSSError NSS_ERROR_NO_MEMORY;
-+
-+/*
-+ * NSSATAV_Create
-+ *
-+ * This routine creates an NSSATAV from the specified NSSOID and the
-+ * specified data. If the optional arena argument is non-null, the
-+ * memory used will be obtained from that arena; otherwise, the memory
-+ * will be obtained from the heap.If the specified data length is zero,
-+ * the data is assumed to be terminated by first zero byte; this allows
-+ * UTF8 strings to be easily specified. This routine may return NULL
-+ * upon error, in which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ARENA
-+ * NSS_ERROR_INVALID_NSSOID
-+ * NSS_ERROR_INVALID_POINTER
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to an NSSATAV upon success
-+ */
-+
-+NSS_EXTERN NSSATAV *
-+NSSATAV_Create
-+(
-+ NSSArena *arenaOpt,
-+ const NSSOID *oid,
-+ const void *data,
-+ PRUint32 length
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_ARENA;
-+extern const NSSError NSS_ERROR_INVALID_NSSOID;
-+extern const NSSError NSS_ERROR_INVALID_POINTER;
-+extern const NSSError NSS_ERROR_NO_MEMORY;
-+
-+/*
-+ * NSSATAV_Destroy
-+ *
-+ * This routine will destroy an ATAV object. It should eventually be
-+ * called on all ATAVs created without an arena. While it is not
-+ * necessary to call it on ATAVs created within an arena, it is not an
-+ * error to do so. This routine returns a PRStatus value; if
-+ * successful, it will return PR_SUCCESS. If unsuccessful, it will
-+ * create an error stack and return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ATAV
-+ *
-+ * Return value:
-+ * PR_FAILURE upon error
-+ * PR_SUCCESS upon success
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSATAV_Destroy
-+(
-+ NSSATAV *atav
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_ATAV;
-+
-+/*
-+ * NSSATAV_GetDEREncoding
-+ *
-+ * This routine will DER-encode an ATAV object. If the optional arena
-+ * argument is non-null, the memory used will be obtained from that
-+ * arena; otherwise, the memory will be obtained from the heap. This
-+ * routine may return null upon error, in which case it will have
-+ * created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ATAV
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * The DER encoding of this NSSATAV
-+ */
-+
-+NSS_EXTERN NSSDER *
-+NSSATAV_GetDEREncoding
-+(
-+ NSSATAV *atav,
-+ NSSArena *arenaOpt
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_ATAV;
-+extern const NSSError NSS_ERROR_NO_MEMORY;
-+
-+/*
-+ * NSSATAV_GetUTF8Encoding
-+ *
-+ * This routine returns a UTF8 string containing a string
-+ * representation of the ATAV in "equals" notation (e.g., "o=Acme").
-+ * If the optional arena argument is non-null, the memory used will be
-+ * obtained from that arena; otherwise, the memory will be obtained
-+ * from the heap. This routine may return null upon error, in which
-+ * case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ATAV
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a UTF8 string containing the "equals" encoding of the
-+ * ATAV
-+ */
-+
-+NSS_EXTERN NSSUTF8 *
-+NSSATAV_GetUTF8Encoding
-+(
-+ NSSATAV *atav,
-+ NSSArena *arenaOpt
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_ATAV;
-+extern const NSSError NSS_ERROR_NO_MEMORY;
-+
-+/*
-+ * NSSATAV_GetType
-+ *
-+ * This routine returns the NSSOID corresponding to the attribute type
-+ * in the specified ATAV. This routine may return NSS_OID_UNKNOWN
-+ * upon error, in which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ATAV
-+ *
-+ * Return value:
-+ * NSS_OID_UNKNOWN upon error
-+ * An element of enum NSSOIDenum upon success
-+ */
-+
-+NSS_EXTERN const NSSOID *
-+NSSATAV_GetType
-+(
-+ NSSATAV *atav
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_ATAV;
-+
-+/*
-+ * NSSATAV_GetValue
-+ *
-+ * This routine returns an NSSItem containing the attribute value
-+ * in the specified ATAV. If the optional arena argument is non-null,
-+ * the memory used will be obtained from that arena; otherwise, the
-+ * memory will be obtained from the heap. This routine may return
-+ * NULL upon error, in which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ATAV
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to an NSSItem containing the attribute value.
-+ */
-+
-+NSS_EXTERN NSSUTF8 *
-+NSSATAV_GetValue
-+(
-+ NSSATAV *atav,
-+ NSSArena *arenaOpt
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_ATAV;
-+extern const NSSError NSS_ERROR_NO_MEMORY;
-+
-+/*
-+ * NSSATAV_Compare
-+ *
-+ * This routine compares two ATAVs for equality. For two ATAVs to be
-+ * equal, the attribute types must be the same, and the attribute
-+ * values must have equal length and contents. The result of the
-+ * comparison will be stored at the location pointed to by the "equalp"
-+ * variable, which must point to a valid PRBool. This routine may
-+ * return PR_FAILURE upon error, in which case it will have created an
-+ * error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ATAV
-+ * NSS_ERROR_INVALID_ARGUMENT
-+ *
-+ * Return value:
-+ * PR_FAILURE on error
-+ * PR_SUCCESS upon a successful comparison (equal or not)
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSATAV_Compare
-+(
-+ NSSATAV *atav1,
-+ NSSATAV *atav2,
-+ PRBool *equalp
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_ATAV;
-+extern const NSSError NSS_ERROR_INVALID_ARGUMENT;
-+
-+/*
-+ * NSSATAV_Duplicate
-+ *
-+ * This routine duplicates the specified ATAV. If the optional arena
-+ * argument is non-null, the memory required will be obtained from
-+ * that arena; otherwise, the memory will be obtained from the heap.
-+ * This routine may return NULL upon error, in which case it will have
-+ * created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_ATAV
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL on error
-+ * A pointer to a new ATAV
-+ */
-+
-+NSS_EXTERN NSSATAV *
-+NSSATAV_Duplicate
-+(
-+ NSSATAV *atav,
-+ NSSArena *arenaOpt
-+);
-+
-+extern const NSSError NSS_ERROR_INVALID_ATAV;
-+extern const NSSError NSS_ERROR_NO_MEMORY;
-+
-+/*
-+ * NSSRDN
-+ *
-+ * The public "methods" regarding this "object" are:
-+ *
-+ * NSSRDN_CreateFromBER -- constructor
-+ * NSSRDN_CreateFromUTF8 -- constructor
-+ * NSSRDN_Create -- constructor
-+ * NSSRDN_CreateSimple -- constructor
-+ *
-+ * NSSRDN_Destroy
-+ * NSSRDN_GetDEREncoding
-+ * NSSRDN_GetUTF8Encoding
-+ * NSSRDN_AddATAV
-+ * NSSRDN_GetATAVCount
-+ * NSSRDN_GetATAV
-+ * NSSRDN_GetSimpleATAV
-+ * NSSRDN_Compare
-+ * NSSRDN_Duplicate
-+ */
-+
-+/*
-+ * NSSRDN_CreateFromBER
-+ *
-+ * This routine creates an NSSRDN by decoding a BER- or DER-encoded
-+ * RDN. If the optional arena argument is non-null, the memory used
-+ * will be obtained from that arena; otherwise, the memory will be
-+ * obtained from the heap. This routine may return NULL upon error,
-+ * in which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_BER
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to an NSSRDN upon success
-+ */
-+
-+NSS_EXTERN NSSRDN *
-+NSSRDN_CreateFromBER
-+(
-+ NSSArena *arenaOpt,
-+ NSSBER *berRDN
-+);
-+
-+/*
-+ * NSSRDN_CreateFromUTF8
-+ *
-+ * This routine creates an NSSRDN by decoding an UTF8 string
-+ * consisting of either a single ATAV in the "equals" format, e.g.,
-+ * "uid=smith," or one or more such ATAVs in parentheses, e.g.,
-+ * "(sn=Smith,ou=Sales)." If the optional arena argument is non-null,
-+ * the memory used will be obtained from that arena; otherwise, the
-+ * memory will be obtained from the heap. This routine may return
-+ * NULL upon error, in which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_UNKNOWN_ATTRIBUTE
-+ * NSS_ERROR_INVALID_STRING
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to an NSSRDN upon success
-+ */
-+
-+NSS_EXTERN NSSRDN *
-+NSSRDN_CreateFromUTF8
-+(
-+ NSSArena *arenaOpt,
-+ NSSUTF8 *stringRDN
-+);
-+
-+/*
-+ * NSSRDN_Create
-+ *
-+ * This routine creates an NSSRDN from one or more NSSATAVs. The
-+ * final argument to this routine must be NULL. If the optional arena
-+ * argument is non-null, the memory used will be obtained from that
-+ * arena; otherwise, the memory will be obtained from the heap. This
-+ * routine may return NULL upon error, in which case it will have
-+ * created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_NO_MEMORY
-+ * NSS_ERROR_INVALID_ATAV
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to an NSSRDN upon success
-+ */
-+
-+NSS_EXTERN NSSRDN *
-+NSSRDN_Create
-+(
-+ NSSArena *arenaOpt,
-+ NSSATAV *atav1,
-+ ...
-+);
-+
-+/*
-+ * NSSRDN_CreateSimple
-+ *
-+ * This routine creates a simple NSSRDN from a single NSSATAV. If the
-+ * optional arena argument is non-null, the memory used will be
-+ * obtained from that arena; otherwise, the memory will be obtained
-+ * from the heap. This routine may return NULL upon error, in which
-+ * case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_NO_MEMORY
-+ * NSS_ERROR_INVALID_ATAV
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to an NSSRDN upon success
-+ */
-+
-+NSS_EXTERN NSSRDN *
-+NSSRDN_CreateSimple
-+(
-+ NSSArena *arenaOpt,
-+ NSSATAV *atav
-+);
-+
-+/*
-+ * NSSRDN_Destroy
-+ *
-+ * This routine will destroy an RDN object. It should eventually be
-+ * called on all RDNs created without an arena. While it is not
-+ * necessary to call it on RDNs created within an arena, it is not an
-+ * error to do so. This routine returns a PRStatus value; if
-+ * successful, it will return PR_SUCCESS. If unsuccessful, it will
-+ * create an error stack and return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_RDN
-+ *
-+ * Return value:
-+ * PR_FAILURE upon failure
-+ * PR_SUCCESS upon success
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSRDN_Destroy
-+(
-+ NSSRDN *rdn
-+);
-+
-+/*
-+ * NSSRDN_GetDEREncoding
-+ *
-+ * This routine will DER-encode an RDN object. If the optional arena
-+ * argument is non-null, the memory used will be obtained from that
-+ * arena; otherwise, the memory will be obtained from the heap. This
-+ * routine may return null upon error, in which case it will have
-+ * created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_RDN
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * The DER encoding of this NSSRDN
-+ */
-+
-+NSS_EXTERN NSSDER *
-+NSSRDN_GetDEREncoding
-+(
-+ NSSRDN *rdn,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSRDN_GetUTF8Encoding
-+ *
-+ * This routine returns a UTF8 string containing a string
-+ * representation of the RDN. A simple (one-ATAV) RDN will be simply
-+ * the string representation of that ATAV; a non-simple RDN will be in
-+ * parenthesised form. If the optional arena argument is non-null,
-+ * the memory used will be obtained from that arena; otherwise, the
-+ * memory will be obtained from the heap. This routine may return
-+ * null upon error, in which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_RDN
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a UTF8 string
-+ */
-+
-+NSS_EXTERN NSSUTF8 *
-+NSSRDN_GetUTF8Encoding
-+(
-+ NSSRDN *rdn,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSRDN_AddATAV
-+ *
-+ * This routine adds an ATAV to the set of ATAVs in the specified RDN.
-+ * Remember that RDNs consist of an unordered set of ATAVs. If the
-+ * RDN was created with a non-null arena argument, that same arena
-+ * will be used for any additional required memory. If the RDN was
-+ * created with a NULL arena argument, any additional memory will
-+ * be obtained from the heap. This routine returns a PRStatus value;
-+ * it will return PR_SUCCESS upon success, and upon failure it will
-+ * create an error stack and return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_RDN
-+ * NSS_ERROR_INVALID_ATAV
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * PR_SUCCESS upon success
-+ * PR_FAILURE upon failure
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSRDN_AddATAV
-+(
-+ NSSRDN *rdn,
-+ NSSATAV *atav
-+);
-+
-+/*
-+ * NSSRDN_GetATAVCount
-+ *
-+ * This routine returns the cardinality of the set of ATAVs within
-+ * the specified RDN. This routine may return 0 upon error, in which
-+ * case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_RDN
-+ *
-+ * Return value:
-+ * 0 upon error
-+ * A positive number upon success
-+ */
-+
-+NSS_EXTERN PRUint32
-+NSSRDN_GetATAVCount
-+(
-+ NSSRDN *rdn
-+);
-+
-+/*
-+ * NSSRDN_GetATAV
-+ *
-+ * This routine returns a pointer to an ATAV that is a member of
-+ * the set of ATAVs within the specified RDN. While the set of
-+ * ATAVs within an RDN is unordered, this routine will return
-+ * distinct values for distinct values of 'i' as long as the RDN
-+ * is not changed in any way. The RDN may be changed by calling
-+ * NSSRDN_AddATAV. The value of the variable 'i' is on the range
-+ * [0,c) where c is the cardinality returned from NSSRDN_GetATAVCount.
-+ * The caller owns the ATAV the pointer to which is returned. If the
-+ * optional arena argument is non-null, the memory used will be
-+ * obtained from that arena; otherwise, the memory will be obtained
-+ * from the heap. This routine may return NULL upon error, in which
-+ * case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_RDN
-+ * NSS_ERROR_VALUE_OUT_OF_RANGE
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A caller-owned pointer to an NSSATAV
-+ */
-+
-+NSS_EXTERN NSSATAV *
-+NSSRDN_GetATAV
-+(
-+ NSSRDN *rdn,
-+ NSSArena *arenaOpt,
-+ PRUint32 i
-+);
-+
-+/*
-+ * NSSRDN_GetSimpleATAV
-+ *
-+ * Most RDNs are actually very simple, with a single ATAV. This
-+ * routine will return the single ATAV from such an RDN. The caller
-+ * owns the ATAV the pointer to which is returned. If the optional
-+ * arena argument is non-null, the memory used will be obtained from
-+ * that arena; otherwise, the memory will be obtained from the heap.
-+ * This routine may return NULL upon error, including the case where
-+ * the set of ATAVs in the RDN is nonsingular. Upon error, this
-+ * routine will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_RDN
-+ * NSS_ERROR_RDN_NOT_SIMPLE
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A caller-owned pointer to an NSSATAV
-+ */
-+
-+NSS_EXTERN NSSATAV *
-+NSSRDN_GetSimpleATAV
-+(
-+ NSSRDN *rdn,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSRDN_Compare
-+ *
-+ * This routine compares two RDNs for equality. For two RDNs to be
-+ * equal, they must have the same number of ATAVs, and every ATAV in
-+ * one must be equal to an ATAV in the other. (Note that the sets
-+ * of ATAVs are unordered.) The result of the comparison will be
-+ * stored at the location pointed to by the "equalp" variable, which
-+ * must point to a valid PRBool. This routine may return PR_FAILURE
-+ * upon error, in which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_RDN
-+ * NSS_ERROR_INVALID_ARGUMENT
-+ *
-+ * Return value:
-+ * PR_FAILURE on error
-+ * PR_SUCCESS upon a successful comparison (equal or not)
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSRDN_Compare
-+(
-+ NSSRDN *rdn1,
-+ NSSRDN *rdn2,
-+ PRBool *equalp
-+);
-+
-+/*
-+ * NSSRDN_Duplicate
-+ *
-+ * This routine duplicates the specified RDN. If the optional arena
-+ * argument is non-null, the memory required will be obtained from
-+ * that arena; otherwise, the memory will be obtained from the heap.
-+ * This routine may return NULL upon error, in which case it will have
-+ * created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_RDN
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL on error
-+ * A pointer to a new RDN
-+ */
-+
-+NSS_EXTERN NSSRDN *
-+NSSRDN_Duplicate
-+(
-+ NSSRDN *rdn,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSRDNSeq
-+ *
-+ * The public "methods" regarding this "object" are:
-+ *
-+ * NSSRDNSeq_CreateFromBER -- constructor
-+ * NSSRDNSeq_CreateFromUTF8 -- constructor
-+ * NSSRDNSeq_Create -- constructor
-+ *
-+ * NSSRDNSeq_Destroy
-+ * NSSRDNSeq_GetDEREncoding
-+ * NSSRDNSeq_GetUTF8Encoding
-+ * NSSRDNSeq_AppendRDN
-+ * NSSRDNSeq_GetRDNCount
-+ * NSSRDNSeq_GetRDN
-+ * NSSRDNSeq_Compare
-+ * NSSRDNSeq_Duplicate
-+ */
-+
-+/*
-+ * NSSRDNSeq_CreateFromBER
-+ *
-+ * This routine creates an NSSRDNSeq by decoding a BER- or DER-encoded
-+ * sequence of RDNs. If the optional arena argument is non-null,
-+ * the memory used will be obtained from that arena; otherwise, the
-+ * memory will be obtained from the heap. This routine may return
-+ * NULL upon error, in which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_BER
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to an NSSRDNSeq upon success
-+ */
-+
-+NSS_EXTERN NSSRDNSeq *
-+NSSRDNSeq_CreateFromBER
-+(
-+ NSSArena *arenaOpt,
-+ NSSBER *berRDNSeq
-+);
-+
-+/*
-+ * NSSRDNSeq_CreateFromUTF8
-+ *
-+ * This routine creates an NSSRDNSeq by decoding a UTF8 string
-+ * consisting of a comma-separated sequence of RDNs, such as
-+ * "(sn=Smith,ou=Sales),o=Acme,c=US." If the optional arena argument
-+ * is non-null, the memory used will be obtained from that arena;
-+ * otherwise, the memory will be obtained from the heap. This routine
-+ * may return NULL upon error, in which case it will have created an
-+ * error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_UNKNOWN_ATTRIBUTE
-+ * NSS_ERROR_INVALID_STRING
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to an NSSRDNSeq upon success
-+ */
-+
-+NSS_EXTERN NSSRDNSeq *
-+NSSRDNSeq_CreateFromUTF8
-+(
-+ NSSArena *arenaOpt,
-+ NSSUTF8 *stringRDNSeq
-+);
-+
-+/*
-+ * NSSRDNSeq_Create
-+ *
-+ * This routine creates an NSSRDNSeq from one or more NSSRDNs. The
-+ * final argument to this routine must be NULL. If the optional arena
-+ * argument is non-null, the memory used will be obtained from that
-+ * arena; otherwise, the memory will be obtained from the heap. This
-+ * routine may return NULL upon error, in which case it will have
-+ * created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_NO_MEMORY
-+ * NSS_ERROR_INVALID_RDN
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointero to an NSSRDNSeq upon success
-+ */
-+
-+NSS_EXTERN NSSRDNSeq *
-+NSSRDNSeq_Create
-+(
-+ NSSArena *arenaOpt,
-+ NSSRDN *rdn1,
-+ ...
-+);
-+
-+/*
-+ * NSSRDNSeq_Destroy
-+ *
-+ * This routine will destroy an RDNSeq object. It should eventually
-+ * be called on all RDNSeqs created without an arena. While it is not
-+ * necessary to call it on RDNSeqs created within an arena, it is not
-+ * an error to do so. This routine returns a PRStatus value; if
-+ * successful, it will return PR_SUCCESS. If unsuccessful, it will
-+ * create an error stack and return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_RDNSEQ
-+ *
-+ * Return value:
-+ * PR_FAILURE upon error
-+ * PR_SUCCESS upon success
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSRDNSeq_Destroy
-+(
-+ NSSRDNSeq *rdnseq
-+);
-+
-+/*
-+ * NSSRDNSeq_GetDEREncoding
-+ *
-+ * This routine will DER-encode an RDNSeq object. If the optional
-+ * arena argument is non-null, the memory used will be obtained from
-+ * that arena; otherwise, the memory will be obtained from the heap.
-+ * This routine may return null upon error, in which case it will have
-+ * created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_RDNSEQ
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * The DER encoding of this NSSRDNSeq
-+ */
-+
-+NSS_EXTERN NSSDER *
-+NSSRDNSeq_GetDEREncoding
-+(
-+ NSSRDNSeq *rdnseq,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSRDNSeq_GetUTF8Encoding
-+ *
-+ * This routine returns a UTF8 string containing a string
-+ * representation of the RDNSeq as a comma-separated sequence of RDNs.
-+ * If the optional arena argument is non-null, the memory used will be
-+ * obtained from that arena; otherwise, the memory will be obtained
-+ * from the heap. This routine may return null upon error, in which
-+ * case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_RDNSEQ
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to the UTF8 string
-+ */
-+
-+NSS_EXTERN NSSUTF8 *
-+NSSRDNSeq_GetUTF8Encoding
-+(
-+ NSSRDNSeq *rdnseq,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSRDNSeq_AppendRDN
-+ *
-+ * This routine appends an RDN to the end of the existing RDN
-+ * sequence. If the RDNSeq was created with a non-null arena
-+ * argument, that same arena will be used for any additional required
-+ * memory. If the RDNSeq was created with a NULL arena argument, any
-+ * additional memory will be obtained from the heap. This routine
-+ * returns a PRStatus value; it will return PR_SUCCESS upon success,
-+ * and upon failure it will create an error stack and return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_RDNSEQ
-+ * NSS_ERROR_INVALID_RDN
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * PR_SUCCESS upon success
-+ * PR_FAILURE upon failure
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSRDNSeq_AppendRDN
-+(
-+ NSSRDNSeq *rdnseq,
-+ NSSRDN *rdn
-+);
-+
-+/*
-+ * NSSRDNSeq_GetRDNCount
-+ *
-+ * This routine returns the cardinality of the sequence of RDNs within
-+ * the specified RDNSeq. This routine may return 0 upon error, in
-+ * which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_RDNSEQ
-+ *
-+ * Return value:
-+ * 0 upon error
-+ * A positive number upon success
-+ */
-+
-+NSS_EXTERN PRUint32
-+NSSRDNSeq_GetRDNCount
-+(
-+ NSSRDNSeq *rdnseq
-+);
-+
-+/*
-+ * NSSRDNSeq_GetRDN
-+ *
-+ * This routine returns a pointer to the i'th RDN in the sequence of
-+ * RDNs that make up the specified RDNSeq. The sequence begins with
-+ * the top-level (e.g., "c=US") RDN. The value of the variable 'i'
-+ * is on the range [0,c) where c is the cardinality returned from
-+ * NSSRDNSeq_GetRDNCount. The caller owns the RDN the pointer to which
-+ * is returned. If the optional arena argument is non-null, the memory
-+ * used will be obtained from that areana; otherwise, the memory will
-+ * be obtained from the heap. This routine may return NULL upon error,
-+ * in which case it will have created an error stack. Note that the
-+ * usual string representation of RDN Sequences is from last to first.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_RDNSEQ
-+ * NSS_ERROR_VALUE_OUT_OF_RANGE
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A caller-owned pointer to an NSSRDN
-+ */
-+
-+NSS_EXTERN NSSRDN *
-+NSSRDNSeq_GetRDN
-+(
-+ NSSRDNSeq *rdnseq,
-+ NSSArena *arenaOpt,
-+ PRUint32 i
-+);
-+
-+/*
-+ * NSSRDNSeq_Compare
-+ *
-+ * This routine compares two RDNSeqs for equality. For two RDNSeqs to
-+ * be equal, they must have the same number of RDNs, and each RDN in
-+ * one sequence must be equal to the corresponding RDN in the other
-+ * sequence. The result of the comparison will be stored at the
-+ * location pointed to by the "equalp" variable, which must point to a
-+ * valid PRBool. This routine may return PR_FAILURE upon error, in
-+ * which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_RDNSEQ
-+ * NSS_ERROR_INVALID_ARGUMENT
-+ *
-+ * Return value:
-+ * PR_FAILURE on error
-+ * PR_SUCCESS upon a successful comparison (equal or not)
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSRDNSeq_Compare
-+(
-+ NSSRDNSeq *rdnseq1,
-+ NSSRDNSeq *rdnseq2,
-+ PRBool *equalp
-+);
-+
-+/*
-+ * NSSRDNSeq_Duplicate
-+ *
-+ * This routine duplicates the specified RDNSeq. If the optional arena
-+ * argument is non-null, the memory required will be obtained from that
-+ * arena; otherwise, the memory will be obtained from the heap. This
-+ * routine may return NULL upon error, in which case it will have
-+ * created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_RDNSEQ
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a new RDNSeq
-+ */
-+
-+NSS_EXTERN NSSRDNSeq *
-+NSSRDNSeq_Duplicate
-+(
-+ NSSRDNSeq *rdnseq,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSName
-+ *
-+ * The public "methods" regarding this "object" are:
-+ *
-+ * NSSName_CreateFromBER -- constructor
-+ * NSSName_CreateFromUTF8 -- constructor
-+ * NSSName_Create -- constructor
-+ *
-+ * NSSName_Destroy
-+ * NSSName_GetDEREncoding
-+ * NSSName_GetUTF8Encoding
-+ * NSSName_GetChoice
-+ * NSSName_GetRDNSequence
-+ * NSSName_GetSpecifiedChoice
-+ * NSSName_Compare
-+ * NSSName_Duplicate
-+ *
-+ * NSSName_GetUID
-+ * NSSName_GetEmail
-+ * NSSName_GetCommonName
-+ * NSSName_GetOrganization
-+ * NSSName_GetOrganizationalUnits
-+ * NSSName_GetStateOrProvince
-+ * NSSName_GetLocality
-+ * NSSName_GetCountry
-+ * NSSName_GetAttribute
-+ */
-+
-+/*
-+ * NSSName_CreateFromBER
-+ *
-+ * This routine creates an NSSName by decoding a BER- or DER-encoded
-+ * (directory) Name. If the optional arena argument is non-null,
-+ * the memory used will be obtained from that arena; otherwise,
-+ * the memory will be obtained from the heap. This routine may
-+ * return NULL upon error, in which case it will have created an error
-+ * stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_BER
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to an NSSName upon success
-+ */
-+
-+NSS_EXTERN NSSName *
-+NSSName_CreateFromBER
-+(
-+ NSSArena *arenaOpt,
-+ NSSBER *berName
-+);
-+
-+/*
-+ * NSSName_CreateFromUTF8
-+ *
-+ * This routine creates an NSSName by decoding a UTF8 string
-+ * consisting of the string representation of one of the choices of
-+ * (directory) names. Currently the only choice is an RDNSeq. If the
-+ * optional arena argument is non-null, the memory used will be
-+ * obtained from that arena; otherwise, the memory will be obtained
-+ * from the heap. The routine may return NULL upon error, in which
-+ * case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_STRING
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to an NSSName upon success
-+ */
-+
-+NSS_EXTERN NSSName *
-+NSSName_CreateFromUTF8
-+(
-+ NSSArena *arenaOpt,
-+ NSSUTF8 *stringName
-+);
-+
-+/*
-+ * NSSName_Create
-+ *
-+ * This routine creates an NSSName with the specified choice of
-+ * underlying name types. The value of the choice variable must be
-+ * one of the values of the NSSNameChoice enumeration, and the type
-+ * of the arg variable must be as specified in the following table:
-+ *
-+ * Choice Type
-+ * ======================== ===========
-+ * NSSNameChoiceRdnSequence NSSRDNSeq *
-+ *
-+ * If the optional arena argument is non-null, the memory used will
-+ * be obtained from that arena; otherwise, the memory will be
-+ * obtained from the heap. This routine may return NULL upon error,
-+ * in which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_CHOICE
-+ * NSS_ERROR_INVALID_ARGUMENT
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to an NSSName upon success
-+ */
-+
-+NSS_EXTERN NSSName *
-+NSSName_Create
-+(
-+ NSSArena *arenaOpt,
-+ NSSNameChoice choice,
-+ void *arg
-+);
-+
-+/*
-+ * NSSName_Destroy
-+ *
-+ * This routine will destroy a Name object. It should eventually be
-+ * called on all Names created without an arena. While it is not
-+ * necessary to call it on Names created within an arena, it is not
-+ * an error to do so. This routine returns a PRStatus value; if
-+ * successful, it will return PR_SUCCESS. If unsuccessful, it will
-+ * create an error stack and return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_NAME
-+ *
-+ * Return value:
-+ * PR_FAILURE upon error
-+ * PR_SUCCESS upon success
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSName_Destroy
-+(
-+ NSSName *name
-+);
-+
-+/*
-+ * NSSName_GetDEREncoding
-+ *
-+ * This routine will DER-encode a name object. If the optional arena
-+ * argument is non-null, the memory used will be obtained from that
-+ * arena; otherwise, the memory will be obtained from the heap. This
-+ * routine may return null upon error, in which case it will have
-+ * created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_NAME
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * The DER encoding of this NSSName
-+ */
-+
-+NSS_EXTERN NSSDER *
-+NSSName_GetDEREncoding
-+(
-+ NSSName *name,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSName_GetUTF8Encoding
-+ *
-+ * This routine returns a UTF8 string containing a string
-+ * representation of the Name in the format specified by the
-+ * underlying name choice. If the optional arena argument is non-null,
-+ * the memory used will be obtained from that arena; otherwise, the
-+ * memory will be obtained from the heap. This routine may return
-+ * NULL upon error, in which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_NAME
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to the UTF8 string
-+ */
-+
-+NSS_EXTERN NSSUTF8 *
-+NSSName_GetUTF8Encoding
-+(
-+ NSSName *name,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSName_GetChoice
-+ *
-+ * This routine returns the type of the choice underlying the specified
-+ * name. The return value will be a member of the NSSNameChoice
-+ * enumeration. This routine may return NSSNameChoiceInvalid upon
-+ * error, in which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_NAME
-+ *
-+ * Return value:
-+ * NSSNameChoiceInvalid upon error
-+ * An other member of the NSSNameChoice enumeration upon success
-+ */
-+
-+NSS_EXTERN NSSNameChoice
-+NSSName_GetChoice
-+(
-+ NSSName *name
-+);
-+
-+/*
-+ * NSSName_GetRDNSequence
-+ *
-+ * If the choice underlying the specified NSSName is that of an
-+ * RDNSequence, this routine will return a pointer to that RDN
-+ * sequence. Otherwise, this routine will place an error on the
-+ * error stack, and return NULL. If the optional arena argument is
-+ * non-null, the memory required will be obtained from that arena;
-+ * otherwise, the memory will be obtained from the heap. The
-+ * caller owns the returned pointer. This routine may return NULL
-+ * upon error, in which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_NAME
-+ * NSS_ERROR_WRONG_CHOICE
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A caller-owned pointer to an NSSRDNSeq
-+ */
-+
-+NSS_EXTERN NSSRDNSeq *
-+NSSName_GetRDNSequence
-+(
-+ NSSName *name,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSName_GetSpecifiedChoice
-+ *
-+ * If the choice underlying the specified NSSName matches the specified
-+ * choice, a caller-owned pointer to that underlying object will be
-+ * returned. Otherwise, an error will be placed on the error stack and
-+ * NULL will be returned. If the optional arena argument is non-null,
-+ * the memory required will be obtained from that arena; otherwise, the
-+ * memory will be obtained from the heap. The caller owns the returned
-+ * pointer. This routine may return NULL upon error, in which case it
-+ * will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_NAME
-+ * NSS_ERROR_WRONG_CHOICE
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A caller-owned pointer, which must be typecast
-+ */
-+
-+NSS_EXTERN void *
-+NSSName_GetSpecifiedChoice
-+(
-+ NSSName *name,
-+ NSSNameChoice choice,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSName_Compare
-+ *
-+ * This routine compares two Names for equality. For two Names to be
-+ * equal, they must have the same choice of underlying types, and the
-+ * underlying values must be equal. The result of the comparison will
-+ * be stored at the location pointed to by the "equalp" variable, which
-+ * must point to a valid PRBool. This routine may return PR_FAILURE
-+ * upon error, in which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_NAME
-+ * NSS_ERROR_INVALID_ARGUMENT
-+ *
-+ * Return value:
-+ * PR_FAILURE on error
-+ * PR_SUCCESS upon a successful comparison (equal or not)
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSName_Compare
-+(
-+ NSSName *name1,
-+ NSSName *name2,
-+ PRBool *equalp
-+);
-+
-+/*
-+ * NSSName_Duplicate
-+ *
-+ * This routine duplicates the specified nssname. If the optional
-+ * arena argument is non-null, the memory required will be obtained
-+ * from that arena; otherwise, the memory will be obtained from the
-+ * heap. This routine may return NULL upon error, in which case it
-+ * will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_NAME
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a new NSSName
-+ */
-+
-+NSS_EXTERN NSSName *
-+NSSName_Duplicate
-+(
-+ NSSName *name,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSName_GetUID
-+ *
-+ * This routine will attempt to derive a user identifier from the
-+ * specified name, if the choices and content of the name permit.
-+ * If the Name consists of a Sequence of Relative Distinguished
-+ * Names containing a UID attribute, the UID will be the value of
-+ * that attribute. Note that no UID attribute is defined in either
-+ * PKIX or PKCS#9; rather, this seems to derive from RFC 1274, which
-+ * defines the type as a caseIgnoreString. We'll return a Directory
-+ * String. If the optional arena argument is non-null, the memory
-+ * used will be obtained from that arena; otherwise, the memory will
-+ * be obtained from the heap. This routine may return NULL upon error,
-+ * in which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_NAME
-+ * NSS_ERROR_NO_UID
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a UTF8 String.
-+ */
-+
-+NSS_EXTERN NSSUTF8 * /* XXX fgmr DirectoryString */
-+NSSName_GetUID
-+(
-+ NSSName *name,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSName_GetEmail
-+ *
-+ * This routine will attempt to derive an email address from the
-+ * specified name, if the choices and content of the name permit.
-+ * If the Name consists of a Sequence of Relative Distinguished
-+ * Names containing either a PKIX email address or a PKCS#9 email
-+ * address, the result will be the value of that attribute. If the
-+ * optional arena argument is non-null, the memory used will be
-+ * obtained from that arena; otherwise, the memory will be obtained
-+ * from the heap. This routine may return NULL upon error, in which
-+ * case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_NAME
-+ * NSS_ERROR_NO_EMAIL
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a UTF8 String
-+ */
-+
-+NSS_EXTERN NSSUTF8 * /* XXX fgmr IA5 String */
-+NSSName_GetEmail
-+(
-+ NSSName *name,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSName_GetCommonName
-+ *
-+ * This routine will attempt to derive a common name from the
-+ * specified name, if the choices and content of the name permit.
-+ * If the Name consists of a Sequence of Relative Distinguished Names
-+ * containing a PKIX Common Name, the result will be that name. If
-+ * the optional arena argument is non-null, the memory used will be
-+ * obtained from that arena; otherwise, the memory will be obtained
-+ * from the heap. This routine may return NULL upon error, in which
-+ * case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_NAME
-+ * NSS_ERROR_NO_COMMON_NAME
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a UTF8 String
-+ */
-+
-+NSS_EXTERN NSSUTF8 * /* XXX fgmr DirectoryString */
-+NSSName_GetCommonName
-+(
-+ NSSName *name,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSName_GetOrganization
-+ *
-+ * This routine will attempt to derive an organisation name from the
-+ * specified name, if the choices and content of the name permit.
-+ * If Name consists of a Sequence of Relative Distinguished names
-+ * containing a PKIX Organization, the result will be the value of
-+ * that attribute. If the optional arena argument is non-null, the
-+ * memory used will be obtained from that arena; otherwise, the memory
-+ * will be obtained from the heap. This routine may return NULL upon
-+ * error, in which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_NAME
-+ * NSS_ERROR_NO_ORGANIZATION
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a UTF8 String
-+ */
-+
-+NSS_EXTERN NSSUTF8 * /* XXX fgmr DirectoryString */
-+NSSName_GetOrganization
-+(
-+ NSSName *name,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSName_GetOrganizationalUnits
-+ *
-+ * This routine will attempt to derive a sequence of organisational
-+ * unit names from the specified name, if the choices and content of
-+ * the name permit. If the Name consists of a Sequence of Relative
-+ * Distinguished Names containing one or more organisational units,
-+ * the result will be the values of those attributes. If the optional
-+ * arena argument is non-null, the memory used will be obtained from
-+ * that arena; otherwise, the memory will be obtained from the heap.
-+ * This routine may return NULL upon error, in which case it will have
-+ * created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_NAME
-+ * NSS_ERROR_NO_ORGANIZATIONAL_UNITS
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a null-terminated array of UTF8 Strings
-+ */
-+
-+NSS_EXTERN NSSUTF8 ** /* XXX fgmr DirectoryString */
-+NSSName_GetOrganizationalUnits
-+(
-+ NSSName *name,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSName_GetStateOrProvince
-+ *
-+ * This routine will attempt to derive a state or province name from
-+ * the specified name, if the choices and content of the name permit.
-+ * If the Name consists of a Sequence of Relative Distinguished Names
-+ * containing a state or province, the result will be the value of
-+ * that attribute. If the optional arena argument is non-null, the
-+ * memory used will be obtained from that arena; otherwise, the memory
-+ * will be obtained from the heap. This routine may return NULL upon
-+ * error, in which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_NAME
-+ * NSS_ERROR_NO_STATE_OR_PROVINCE
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a UTF8 String
-+ */
-+
-+NSS_EXTERN NSSUTF8 * /* XXX fgmr DirectoryString */
-+NSSName_GetStateOrProvince
-+(
-+ NSSName *name,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSName_GetLocality
-+ *
-+ * This routine will attempt to derive a locality name from the
-+ * specified name, if the choices and content of the name permit. If
-+ * the Name consists of a Sequence of Relative Distinguished names
-+ * containing a Locality, the result will be the value of that
-+ * attribute. If the optional arena argument is non-null, the memory
-+ * used will be obtained from that arena; otherwise, the memory will
-+ * be obtained from the heap. This routine may return NULL upon error,
-+ * in which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_NAME
-+ * NSS_ERROR_NO_LOCALITY
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a UTF8 String
-+ */
-+
-+NSS_EXTERN NSSUTF8 * /* XXX fgmr DirectoryString */
-+NSSName_GetLocality
-+(
-+ NSSName *name,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSName_GetCountry
-+ *
-+ * This routine will attempt to derive a country name from the
-+ * specified name, if the choices and content of the name permit.
-+ * If the Name consists of a Sequence of Relative Distinguished
-+ * Names containing a Country, the result will be the value of
-+ * that attribute.. If the optional arena argument is non-null,
-+ * the memory used will be obtained from that arena; otherwise,
-+ * the memory will be obtained from the heap. This routine may
-+ * return NULL upon error, in which case it will have created an
-+ * error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_NAME
-+ * NSS_ERROR_NO_COUNTRY
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a UTF8 String
-+ */
-+
-+NSS_EXTERN NSSUTF8 * /* XXX fgmr PrintableString */
-+NSSName_GetCountry
-+(
-+ NSSName *name,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSName_GetAttribute
-+ *
-+ * If the specified name consists of a Sequence of Relative
-+ * Distinguished Names containing an attribute with the specified
-+ * type, and the actual value of that attribute may be expressed
-+ * with a Directory String, then the value of that attribute will
-+ * be returned as a Directory String. If the optional arena argument
-+ * is non-null, the memory used will be obtained from that arena;
-+ * otherwise, the memory will be obtained from the heap. This routine
-+ * may return NULL upon error, in which case it will have created an
-+ * error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_NAME
-+ * NSS_ERROR_NO_ATTRIBUTE
-+ * NSS_ERROR_ATTRIBUTE_VALUE_NOT_STRING
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a UTF8 String
-+ */
-+
-+NSS_EXTERN NSSUTF8 * /* XXX fgmr DirectoryString */
-+NSSName_GetAttribute
-+(
-+ NSSName *name,
-+ NSSOID *attribute,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSGeneralName
-+ *
-+ * The public "methods" regarding this "object" are:
-+ *
-+ * NSSGeneralName_CreateFromBER -- constructor
-+ * NSSGeneralName_CreateFromUTF8 -- constructor
-+ * NSSGeneralName_Create -- constructor
-+ *
-+ * NSSGeneralName_Destroy
-+ * NSSGeneralName_GetDEREncoding
-+ * NSSGeneralName_GetUTF8Encoding
-+ * NSSGeneralName_GetChoice
-+ * NSSGeneralName_GetOtherName
-+ * NSSGeneralName_GetRfc822Name
-+ * NSSGeneralName_GetDNSName
-+ * NSSGeneralName_GetX400Address
-+ * NSSGeneralName_GetDirectoryName
-+ * NSSGeneralName_GetEdiPartyName
-+ * NSSGeneralName_GetUniformResourceIdentifier
-+ * NSSGeneralName_GetIPAddress
-+ * NSSGeneralName_GetRegisteredID
-+ * NSSGeneralName_GetSpecifiedChoice
-+ * NSSGeneralName_Compare
-+ * NSSGeneralName_Duplicate
-+ *
-+ * NSSGeneralName_GetUID
-+ * NSSGeneralName_GetEmail
-+ * NSSGeneralName_GetCommonName
-+ * NSSGeneralName_GetOrganization
-+ * NSSGeneralName_GetOrganizationalUnits
-+ * NSSGeneralName_GetStateOrProvince
-+ * NSSGeneralName_GetLocality
-+ * NSSGeneralName_GetCountry
-+ * NSSGeneralName_GetAttribute
-+ */
-+
-+/*
-+ * NSSGeneralName_CreateFromBER
-+ *
-+ * This routine creates an NSSGeneralName by decoding a BER- or DER-
-+ * encoded general name. If the optional arena argument is non-null,
-+ * the memory used will be obtained from that arena; otherwise, the
-+ * memory will be obtained from the heap. This routine may return
-+ * NULL upon error, in which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_BER
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to an NSSGeneralName upon success
-+ */
-+
-+NSS_EXTERN NSSGeneralName *
-+NSSGeneralName_CreateFromBER
-+(
-+ NSSArena *arenaOpt,
-+ NSSBER *berGeneralName
-+);
-+
-+/*
-+ * NSSGeneralName_CreateFromUTF8
-+ *
-+ * This routine creates an NSSGeneralName by decoding a UTF8 string
-+ * consisting of the string representation of one of the choices of
-+ * general names. If the optional arena argument is non-null, the
-+ * memory used will be obtained from that arena; otherwise, the memory
-+ * will be obtained from the heap. The routine may return NULL upon
-+ * error, in which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_STRING
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to an NSSGeneralName upon success
-+ */
-+
-+NSS_EXTERN NSSGeneralName *
-+NSSGeneralName_CreateFromUTF8
-+(
-+ NSSArena *arenaOpt,
-+ NSSUTF8 *stringGeneralName
-+);
-+
-+/*
-+ * NSSGeneralName_Create
-+ *
-+ * This routine creates an NSSGeneralName with the specified choice of
-+ * underlying name types. The value of the choice variable must be one
-+ * of the values of the NSSGeneralNameChoice enumeration, and the type
-+ * of the arg variable must be as specified in the following table:
-+ *
-+ * Choice Type
-+ * ============================================ =========
-+ * NSSGeneralNameChoiceOtherName
-+ * NSSGeneralNameChoiceRfc822Name
-+ * NSSGeneralNameChoiceDNSName
-+ * NSSGeneralNameChoiceX400Address
-+ * NSSGeneralNameChoiceDirectoryName NSSName *
-+ * NSSGeneralNameChoiceEdiPartyName
-+ * NSSGeneralNameChoiceUniformResourceIdentifier
-+ * NSSGeneralNameChoiceIPAddress
-+ * NSSGeneralNameChoiceRegisteredID
-+ *
-+ * If the optional arena argument is non-null, the memory used will
-+ * be obtained from that arena; otherwise, the memory will be
-+ * obtained from the heap. This routine may return NULL upon error,
-+ * in which case it will have created an error stack.
-+ *
-+ * The error may be one fo the following values:
-+ * NSS_ERROR_INVALID_CHOICE
-+ * NSS_ERROR_INVALID_ARGUMENT
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to an NSSGeneralName upon success
-+ */
-+
-+NSS_EXTERN NSSGeneralName *
-+NSSGeneralName_Create
-+(
-+ NSSGeneralNameChoice choice,
-+ void *arg
-+);
-+
-+/*
-+ * NSSGeneralName_Destroy
-+ *
-+ * This routine will destroy a General Name object. It should
-+ * eventually be called on all General Names created without an arena.
-+ * While it is not necessary to call it on General Names created within
-+ * an arena, it is not an error to do so. This routine returns a
-+ * PRStatus value; if successful, it will return PR_SUCCESS. If
-+ * usuccessful, it will create an error stack and return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ *
-+ * Return value:
-+ * PR_FAILURE upon failure
-+ * PR_SUCCESS upon success
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSGeneralName_Destroy
-+(
-+ NSSGeneralName *generalName
-+);
-+
-+/*
-+ * NSSGeneralName_GetDEREncoding
-+ *
-+ * This routine will DER-encode a name object. If the optional arena
-+ * argument is non-null, the memory used will be obtained from that
-+ * arena; otherwise, the memory will be obtained from the heap. This
-+ * routine may return null upon error, in which case it will have
-+ * created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * The DER encoding of this NSSGeneralName
-+ */
-+
-+NSS_EXTERN NSSDER *
-+NSSGeneralName_GetDEREncoding
-+(
-+ NSSGeneralName *generalName,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSGeneralName_GetUTF8Encoding
-+ *
-+ * This routine returns a UTF8 string containing a string
-+ * representation of the General Name in the format specified by the
-+ * underlying name choice. If the optional arena argument is
-+ * non-null, the memory used will be obtained from that arena;
-+ * otherwise, the memory will be obtained from the heap. This routine
-+ * may return NULL upon error, in which case it will have created an
-+ * error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a UTF8 string
-+ */
-+
-+NSS_EXTERN NSSUTF8 *
-+NSSGeneralName_GetUTF8Encoding
-+(
-+ NSSGeneralName *generalName,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSGeneralName_GetChoice
-+ *
-+ * This routine returns the type of choice underlying the specified
-+ * general name. The return value will be a member of the
-+ * NSSGeneralNameChoice enumeration. This routine may return
-+ * NSSGeneralNameChoiceInvalid upon error, in which case it will have
-+ * created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ *
-+ * Return value:
-+ * NSSGeneralNameChoiceInvalid upon error
-+ * An other member of the NSSGeneralNameChoice enumeration
-+ */
-+
-+NSS_EXTERN NSSGeneralNameChoice
-+NSSGeneralName_GetChoice
-+(
-+ NSSGeneralName *generalName
-+);
-+
-+/*
-+ * NSSGeneralName_GetOtherName
-+ *
-+ * If the choice underlying the specified NSSGeneralName is that of an
-+ * Other Name, this routine will return a pointer to that Other name.
-+ * Otherwise, this routine will place an error on the error stack, and
-+ * return NULL. If the optional arena argument is non-null, the memory
-+ * required will be obtained from that arena; otherwise, the memory
-+ * will be obtained from the heap. The caller owns the returned
-+ * pointer. This routine may return NULL upon error, in which case it
-+ * will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ * NSS_ERROR_WRONG_CHOICE
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A caller-owned pointer to an NSSOtherName
-+ */
-+
-+NSS_EXTERN NSSOtherName *
-+NSSGeneralName_GetOtherName
-+(
-+ NSSGeneralName *generalName,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSGeneralName_GetRfc822Name
-+ *
-+ * If the choice underlying the specified NSSGeneralName is that of an
-+ * RFC 822 Name, this routine will return a pointer to that name.
-+ * Otherwise, this routine will place an error on the error stack, and
-+ * return NULL. If the optional arena argument is non-null, the memory
-+ * required will be obtained from that arena; otherwise, the memory
-+ * will be obtained from the heap. The caller owns the returned
-+ * pointer. This routine may return NULL upon error, in which case it
-+ * will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ * NSS_ERROR_WRONG_CHOICE
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A caller-owned pointer to an NSSRFC822Name
-+ */
-+
-+NSS_EXTERN NSSRFC822Name *
-+NSSGeneralName_GetRfc822Name
-+(
-+ NSSGeneralName *generalName,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSGeneralName_GetDNSName
-+ *
-+ * If the choice underlying the specified NSSGeneralName is that of a
-+ * DNS Name, this routine will return a pointer to that DNS name.
-+ * Otherwise, this routine will place an error on the error stack, and
-+ * return NULL. If the optional arena argument is non-null, the memory
-+ * required will be obtained from that arena; otherwise, the memory
-+ * will be obtained from the heap. The caller owns the returned
-+ * pointer. This routine may return NULL upon error, in which case it
-+ * will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ * NSS_ERROR_WRONG_CHOICE
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A caller-owned pointer to an NSSDNSName
-+ */
-+
-+NSS_EXTERN NSSDNSName *
-+NSSGeneralName_GetDNSName
-+(
-+ NSSGeneralName *generalName,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSGeneralName_GetX400Address
-+ *
-+ * If the choice underlying the specified NSSGeneralName is that of an
-+ * X.400 Address, this routine will return a pointer to that Address.
-+ * Otherwise, this routine will place an error on the error stack, and
-+ * return NULL. If the optional arena argument is non-null, the memory
-+ * required will be obtained from that arena; otherwise, the memory
-+ * will be obtained from the heap. The caller owns the returned
-+ * pointer. This routine may return NULL upon error, in which case it
-+ * will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ * NSS_ERROR_WRONG_CHOICE
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A caller-owned pointer to an NSSX400Address
-+ */
-+
-+NSS_EXTERN NSSX400Address *
-+NSSGeneralName_GetX400Address
-+(
-+ NSSGeneralName *generalName,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSGeneralName_GetDirectoryName
-+ *
-+ * If the choice underlying the specified NSSGeneralName is that of a
-+ * (directory) Name, this routine will return a pointer to that name.
-+ * Otherwise, this routine will place an error on the error stack, and
-+ * return NULL. If the optional arena argument is non-null, the memory
-+ * required will be obtained from that arena; otherwise, the memory
-+ * will be obtained from the heap. The caller owns the returned
-+ * pointer. This routine may return NULL upon error, in which case it
-+ * will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ * NSS_ERROR_WRONG_CHOICE
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A caller-owned pointer to an NSSName
-+ */
-+
-+NSS_EXTERN NSSName *
-+NSSGeneralName_GetName
-+(
-+ NSSGeneralName *generalName,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSGeneralName_GetEdiPartyName
-+ *
-+ * If the choice underlying the specified NSSGeneralName is that of an
-+ * EDI Party Name, this routine will return a pointer to that name.
-+ * Otherwise, this routine will place an error on the error stack, and
-+ * return NULL. If the optional arena argument is non-null, the memory
-+ * required will be obtained from that arena; otherwise, the memory
-+ * will be obtained from the heap. The caller owns the returned
-+ * pointer. This routine may return NULL upon error, in which case it
-+ * will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ * NSS_ERROR_WRONG_CHOICE
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A caller-owned pointer to an NSSEdiPartyName
-+ */
-+
-+NSS_EXTERN NSSEdiPartyName *
-+NSSGeneralName_GetEdiPartyName
-+(
-+ NSSGeneralName *generalName,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSGeneralName_GetUniformResourceIdentifier
-+ *
-+ * If the choice underlying the specified NSSGeneralName is that of a
-+ * URI, this routine will return a pointer to that URI.
-+ * Otherwise, this routine will place an error on the error stack, and
-+ * return NULL. If the optional arena argument is non-null, the memory
-+ * required will be obtained from that arena; otherwise, the memory
-+ * will be obtained from the heap. The caller owns the returned
-+ * pointer. This routine may return NULL upon error, in which case it
-+ * will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ * NSS_ERROR_WRONG_CHOICE
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A caller-owned pointer to an NSSURI
-+ */
-+
-+NSS_EXTERN NSSURI *
-+NSSGeneralName_GetUniformResourceIdentifier
-+(
-+ NSSGeneralName *generalName,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSGeneralName_GetIPAddress
-+ *
-+ * If the choice underlying the specified NSSGeneralName is that of an
-+ * IP Address , this routine will return a pointer to that address.
-+ * Otherwise, this routine will place an error on the error stack, and
-+ * return NULL. If the optional arena argument is non-null, the memory
-+ * required will be obtained from that arena; otherwise, the memory
-+ * will be obtained from the heap. The caller owns the returned
-+ * pointer. This routine may return NULL upon error, in which case it
-+ * will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ * NSS_ERROR_WRONG_CHOICE
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A caller-owned pointer to an NSSIPAddress
-+ */
-+
-+NSS_EXTERN NSSIPAddress *
-+NSSGeneralName_GetIPAddress
-+(
-+ NSSGeneralName *generalName,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSGeneralName_GetRegisteredID
-+ *
-+ * If the choice underlying the specified NSSGeneralName is that of a
-+ * Registered ID, this routine will return a pointer to that ID.
-+ * Otherwise, this routine will place an error on the error stack, and
-+ * return NULL. If the optional arena argument is non-null, the memory
-+ * required will be obtained from that arena; otherwise, the memory
-+ * will be obtained from the heap. The caller owns the returned
-+ * pointer. This routine may return NULL upon error, in which case it
-+ * will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ * NSS_ERROR_WRONG_CHOICE
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A caller-owned pointer to an NSSRegisteredID
-+ */
-+
-+NSS_EXTERN NSSRegisteredID *
-+NSSGeneralName_GetRegisteredID
-+(
-+ NSSGeneralName *generalName,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSGeneralName_GetSpecifiedChoice
-+ *
-+ * If the choice underlying the specified NSSGeneralName matches the
-+ * specified choice, a caller-owned pointer to that underlying object
-+ * will be returned. Otherwise, an error will be placed on the error
-+ * stack and NULL will be returned. If the optional arena argument
-+ * is non-null, the memory required will be obtained from that arena;
-+ * otherwise, the memory will be obtained from the heap. The caller
-+ * owns the returned pointer. This routine may return NULL upon
-+ * error, in which caes it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ * NSS_ERROR_WRONG_CHOICE
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A caller-owned pointer, which must be typecast
-+ */
-+
-+NSS_EXTERN void *
-+NSSGeneralName_GetSpecifiedChoice
-+(
-+ NSSGeneralName *generalName,
-+ NSSGeneralNameChoice choice,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSGeneralName_Compare
-+ *
-+ * This routine compares two General Names for equality. For two
-+ * General Names to be equal, they must have the same choice of
-+ * underlying types, and the underlying values must be equal. The
-+ * result of the comparison will be stored at the location pointed
-+ * to by the "equalp" variable, which must point to a valid PRBool.
-+ * This routine may return PR_FAILURE upon error, in which case it
-+ * will have created an error stack.
-+ *
-+ * The error may be one of the following value:
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ * NSS_ERROR_INVALID_ARGUMENT
-+ *
-+ * Return value:
-+ * PR_FAILURE upon error
-+ * PR_SUCCESS upon a successful comparison (equal or not)
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSGeneralName_Compare
-+(
-+ NSSGeneralName *generalName1,
-+ NSSGeneralName *generalName2,
-+ PRBool *equalp
-+);
-+
-+/*
-+ * NSSGeneralName_Duplicate
-+ *
-+ * This routine duplicates the specified General Name. If the optional
-+ * arena argument is non-null, the memory required will be obtained
-+ * from that arena; otherwise, the memory will be obtained from the
-+ * heap. This routine may return NULL upon error, in which case it
-+ * will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a new NSSGeneralName
-+ */
-+
-+NSS_EXTERN NSSGeneralName *
-+NSSGeneralName_Duplicate
-+(
-+ NSSGeneralName *generalName,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSGeneralName_GetUID
-+ *
-+ * This routine will attempt to derive a user identifier from the
-+ * specified general name, if the choices and content of the name
-+ * permit. If the General Name is a (directory) Name consisting
-+ * of a Sequence of Relative Distinguished Names containing a UID
-+ * attribute, the UID will be the value of that attribute. Note
-+ * that no UID attribute is defined in either PKIX or PKCS#9;
-+ * rather, this seems to derive from RFC 1274, which defines the
-+ * type as a caseIgnoreString. We'll return a Directory String.
-+ * If the optional arena argument is non-null, the memory used
-+ * will be obtained from that arena; otherwise, the memory will be
-+ * obtained from the heap. This routine may return NULL upon error,
-+ * in which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ * NSS_ERROR_NO_UID
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a UTF8 String.
-+ */
-+
-+NSS_EXTERN NSSUTF8 * /* XXX fgmr DirectoryString */
-+NSSGeneralName_GetUID
-+(
-+ NSSGeneralName *generalName,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSGeneralName_GetEmail
-+ *
-+ * This routine will attempt to derive an email address from the
-+ * specified general name, if the choices and content of the name
-+ * permit. If the General Name is a (directory) Name consisting
-+ * of a Sequence of Relative Distinguished names containing either
-+ * a PKIX email address or a PKCS#9 email address, the result will
-+ * be the value of that attribute. If the General Name is an RFC 822
-+ * Name, the result will be the string form of that name. If the
-+ * optional arena argument is non-null, the memory used will be
-+ * obtained from that arena; otherwise, the memory will be obtained
-+ * from the heap. This routine may return NULL upon error, in which
-+ * case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ * NSS_ERROR_NO_EMAIL
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a UTF8 String
-+ */
-+
-+NSS_EXTERN NSSUTF8 * /* XXX fgmr IA5String */
-+NSSGeneralName_GetEmail
-+(
-+ NSSGeneralName *generalName,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSGeneralName_GetCommonName
-+ *
-+ * This routine will attempt to derive a common name from the
-+ * specified general name, if the choices and content of the name
-+ * permit. If the General Name is a (directory) Name consisting
-+ * of a Sequence of Relative Distinguished names containing a PKIX
-+ * Common Name, the result will be that name. If the optional arena
-+ * argument is non-null, the memory used will be obtained from that
-+ * arena; otherwise, the memory will be obtained from the heap. This
-+ * routine may return NULL upon error, in which case it will have
-+ * created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ * NSS_ERROR_NO_COMMON_NAME
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a UTF8 String
-+ */
-+
-+NSS_EXTERN NSSUTF8 * /* XXX fgmr DirectoryString */
-+NSSGeneralName_GetCommonName
-+(
-+ NSSGeneralName *generalName,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSGeneralName_GetOrganization
-+ *
-+ * This routine will attempt to derive an organisation name from the
-+ * specified general name, if the choices and content of the name
-+ * permit. If the General Name is a (directory) Name consisting
-+ * of a Sequence of Relative Distinguished names containing an
-+ * Organization, the result will be the value of that attribute.
-+ * If the optional arena argument is non-null, the memory used will
-+ * be obtained from that arena; otherwise, the memory will be obtained
-+ * from the heap. This routine may return NULL upon error, in which
-+ * case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ * NSS_ERROR_NO_ORGANIZATION
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a UTF8 String
-+ */
-+
-+NSS_EXTERN NSSUTF8 * /* XXX fgmr DirectoryString */
-+NSSGeneralName_GetOrganization
-+(
-+ NSSGeneralName *generalName,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSGeneralName_GetOrganizationalUnits
-+ *
-+ * This routine will attempt to derive a sequence of organisational
-+ * unit names from the specified general name, if the choices and
-+ * content of the name permit. If the General Name is a (directory)
-+ * Name consisting of a Sequence of Relative Distinguished names
-+ * containing one or more organisational units, the result will
-+ * consist of those units. If the optional arena argument is non-
-+ * null, the memory used will be obtained from that arena; otherwise,
-+ * the memory will be obtained from the heap. This routine may return
-+ * NULL upon error, in which case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ * NSS_ERROR_NO_ORGANIZATIONAL_UNITS
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a null-terminated array of UTF8 Strings
-+ */
-+
-+NSS_EXTERN NSSUTF8 ** /* XXX fgmr DirectoryString */
-+NSSGeneralName_GetOrganizationalUnits
-+(
-+ NSSGeneralName *generalName,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSGeneralName_GetStateOrProvince
-+ *
-+ * This routine will attempt to derive a state or province name from
-+ * the specified general name, if the choices and content of the name
-+ * permit. If the General Name is a (directory) Name consisting
-+ * of a Sequence of Relative Distinguished names containing a state or
-+ * province, the result will be the value of that attribute. If the
-+ * optional arena argument is non-null, the memory used will be
-+ * obtained from that arena; otherwise, the memory will be obtained
-+ * from the heap. This routine may return NULL upon error, in which
-+ * case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ * NSS_ERROR_NO_STATE_OR_PROVINCE
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a UTF8 String
-+ */
-+
-+NSS_EXTERN NSSUTF8 * /* XXX fgmr DirectoryString */
-+NSSGeneralName_GetStateOrProvince
-+(
-+ NSSGeneralName *generalName,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSGeneralName_GetLocality
-+ *
-+ * This routine will attempt to derive a locality name from
-+ * the specified general name, if the choices and content of the name
-+ * permit. If the General Name is a (directory) Name consisting
-+ * of a Sequence of Relative Distinguished names containing a Locality,
-+ * the result will be the value of that attribute. If the optional
-+ * arena argument is non-null, the memory used will be obtained from
-+ * that arena; otherwise, the memory will be obtained from the heap.
-+ * This routine may return NULL upon error, in which case it will have
-+ * created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ * NSS_ERROR_NO_LOCALITY
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a UTF8 String
-+ */
-+
-+NSS_EXTERN NSSUTF8 * /* XXX fgmr DirectoryString */
-+NSSGeneralName_GetLocality
-+(
-+ NSSGeneralName *generalName,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSGeneralName_GetCountry
-+ *
-+ * This routine will attempt to derive a country name from the
-+ * specified general name, if the choices and content of the name
-+ * permit. If the General Name is a (directory) Name consisting of a
-+ * Sequence of Relative Distinguished names containing a Country, the
-+ * result will be the value of that attribute. If the optional
-+ * arena argument is non-null, the memory used will be obtained from
-+ * that arena; otherwise, the memory will be obtained from the heap.
-+ * This routine may return NULL upon error, in which case it will have
-+ * created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ * NSS_ERROR_NO_COUNTRY
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a UTF8 String
-+ */
-+
-+NSS_EXTERN NSSUTF8 * /* XXX fgmr PrintableString */
-+NSSGeneralName_GetCountry
-+(
-+ NSSGeneralName *generalName,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSGeneralName_GetAttribute
-+ *
-+ * If the specified general name is a (directory) name consisting
-+ * of a Sequence of Relative Distinguished Names containing an
-+ * attribute with the specified type, and the actual value of that
-+ * attribute may be expressed with a Directory String, then the
-+ * value of that attribute will be returned as a Directory String.
-+ * If the optional arena argument is non-null, the memory used will
-+ * be obtained from that arena; otherwise, the memory will be obtained
-+ * from the heap. This routine may return NULL upon error, in which
-+ * case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ * NSS_ERROR_NO_ATTRIBUTE
-+ * NSS_ERROR_ATTRIBUTE_VALUE_NOT_STRING
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a UTF8 String
-+ */
-+
-+NSS_EXTERN NSSUTF8 * /* XXX fgmr DirectoryString */
-+NSSGeneralName_GetAttribute
-+(
-+ NSSGeneralName *generalName,
-+ NSSOID *attribute,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSGeneralNameSeq
-+ *
-+ * The public "methods" regarding this "object" are:
-+ *
-+ * NSSGeneralNameSeq_CreateFromBER -- constructor
-+ * NSSGeneralNameSeq_Create -- constructor
-+ *
-+ * NSSGeneralNameSeq_Destroy
-+ * NSSGeneralNameSeq_GetDEREncoding
-+ * NSSGeneralNameSeq_AppendGeneralName
-+ * NSSGeneralNameSeq_GetGeneralNameCount
-+ * NSSGeneralNameSeq_GetGeneralName
-+ * NSSGeneralNameSeq_Compare
-+ * NSSGeneralnameSeq_Duplicate
-+ */
-+
-+/*
-+ * NSSGeneralNameSeq_CreateFromBER
-+ *
-+ * This routine creates a general name sequence by decoding a BER-
-+ * or DER-encoded GeneralNames. If the optional arena argument is
-+ * non-null, the memory used will be obtained from that arena;
-+ * otherwise, the memory will be obtained from the heap. This routine
-+ * may return NULL upon error, in which case it will have created an
-+ * error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_BER
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to an NSSGeneralNameSeq upon success
-+ */
-+
-+NSS_EXTERN NSSGeneralNameSeq *
-+NSSGeneralNameSeq_CreateFromBER
-+(
-+ NSSArena *arenaOpt,
-+ NSSBER *berGeneralNameSeq
-+);
-+
-+/*
-+ * NSSGeneralNameSeq_Create
-+ *
-+ * This routine creates an NSSGeneralNameSeq from one or more General
-+ * Names. The final argument to this routine must be NULL. If the
-+ * optional arena argument is non-null, the memory used will be
-+ * obtained from that arena; otherwise, the memory will be obtained
-+ * from the heap. This routine may return NULL upon error, in which
-+ * case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_NO_MEMORY
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to an NSSGeneralNameSeq upon success
-+ */
-+
-+NSS_EXTERN NSSGeneralNameSeq *
-+NSSGeneralNameSeq_Create
-+(
-+ NSSArena *arenaOpt,
-+ NSSGeneralName *generalName1,
-+ ...
-+);
-+
-+/*
-+ * NSSGeneralNameSeq_Destroy
-+ *
-+ * This routine will destroy an NSSGeneralNameSeq object. It should
-+ * eventually be called on all NSSGeneralNameSeqs created without an
-+ * arena. While it is not necessary to call it on NSSGeneralNameSeq's
-+ * created within an arena, it is not an error to do so. This routine
-+ * returns a PRStatus value; if successful, it will return PR_SUCCESS.
-+ * If unsuccessful, it will create an error stack and return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME_SEQ
-+ *
-+ * Return value:
-+ * PR_FAILURE upon error
-+ * PR_SUCCESS upon success
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSGeneralNameSeq_Destroy
-+(
-+ NSSGeneralNameSeq *generalNameSeq
-+);
-+
-+/*
-+ * NSSGeneralNameSeq_GetDEREncoding
-+ *
-+ * This routine will DER-encode an NSSGeneralNameSeq object. If the
-+ * optional arena argument is non-null, the memory used will be
-+ * obtained from that arena; otherwise, the memory will be obtained
-+ * from the heap. This routine may return null upon error, in which
-+ * case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME_SEQ
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * The DER encoding of this NSSGeneralNameSeq
-+ */
-+
-+NSS_EXTERN NSSDER *
-+NSSGeneralNameSeq_GetDEREncoding
-+(
-+ NSSGeneralNameSeq *generalNameSeq,
-+ NSSArena *arenaOpt
-+);
-+
-+/*
-+ * NSSGeneralNameSeq_AppendGeneralName
-+ *
-+ * This routine appends a General Name to the end of the existing
-+ * General Name Sequence. If the sequence was created with a non-null
-+ * arena argument, that same arena will be used for any additional
-+ * required memory. If the sequence was created with a NULL arena
-+ * argument, any additional memory will be obtained from the heap.
-+ * This routine returns a PRStatus value; it will return PR_SUCCESS
-+ * upon success, and upon failure it will create an error stack and
-+ * return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME_SEQ
-+ * NSS_ERROR_INVALID_GENERAL_NAME
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * PR_SUCCESS upon success
-+ * PR_FAILURE upon failure.
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSGeneralNameSeq_AppendGeneralName
-+(
-+ NSSGeneralNameSeq *generalNameSeq,
-+ NSSGeneralName *generalName
-+);
-+
-+/*
-+ * NSSGeneralNameSeq_GetGeneralNameCount
-+ *
-+ * This routine returns the cardinality of the specified General name
-+ * Sequence. This routine may return 0 upon error, in which case it
-+ * will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME_SEQ
-+ *
-+ * Return value;
-+ * 0 upon error
-+ * A positive number upon success
-+ */
-+
-+NSS_EXTERN PRUint32
-+NSSGeneralNameSeq_GetGeneralNameCount
-+(
-+ NSSGeneralNameSeq *generalNameSeq
-+);
-+
-+/*
-+ * NSSGeneralNameSeq_GetGeneralName
-+ *
-+ * This routine returns a pointer to the i'th General Name in the
-+ * specified General Name Sequence. The value of the variable 'i' is
-+ * on the range [0,c) where c is the cardinality returned from
-+ * NSSGeneralNameSeq_GetGeneralNameCount. The caller owns the General
-+ * Name the pointer to which is returned. If the optional arena
-+ * argument is non-null, the memory used will be obtained from that
-+ * arena; otherwise, the memory will be obtained from the heap. This
-+ * routine may return NULL upon error, in which case it will have
-+ * created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME_SEQ
-+ * NSS_ERROR_VALUE_OUT_OF_RANGE
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A caller-owned pointer to a General Name.
-+ */
-+
-+NSS_EXTERN NSSGeneralName *
-+NSSGeneralNameSeq_GetGeneralName
-+(
-+ NSSGeneralNameSeq *generalNameSeq,
-+ NSSArena *arenaOpt,
-+ PRUint32 i
-+);
-+
-+/*
-+ * NSSGeneralNameSeq_Compare
-+ *
-+ * This routine compares two General Name Sequences for equality. For
-+ * two General Name Sequences to be equal, they must have the same
-+ * cardinality, and each General Name in one sequence must be equal to
-+ * the corresponding General Name in the other. The result of the
-+ * comparison will be stored at the location pointed to by the "equalp"
-+ * variable, which must point to a valid PRBool. This routine may
-+ * return PR_FAILURE upon error, in which case it will have created an
-+ * error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME_SEQ
-+ * NSS_ERROR_INVALID_ARGUMENT
-+ *
-+ * Return value:
-+ * PR_FAILURE upon error
-+ * PR_SUCCESS upon a successful comparison (equal or not)
-+ */
-+
-+NSS_EXTERN PRStatus
-+NSSGeneralNameSeq_Compare
-+(
-+ NSSGeneralNameSeq *generalNameSeq1,
-+ NSSGeneralNameSeq *generalNameSeq2,
-+ PRBool *equalp
-+);
-+
-+/*
-+ * NSSGeneralNameSeq_Duplicate
-+ *
-+ * This routine duplicates the specified sequence of general names. If
-+ * the optional arena argument is non-null, the memory required will be
-+ * obtained from that arena; otherwise, the memory will be obtained
-+ * from the heap. This routine may return NULL upon error, in which
-+ * case it will have created an error stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_GENERAL_NAME_SEQ
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * NULL upon error
-+ * A pointer to a new General Name Sequence.
-+ */
-+
-+NSS_EXTERN NSSGeneralNameSeq *
-+NSSGeneralNameSeq_Duplicate
-+(
-+ NSSGeneralNameSeq *generalNameSeq,
-+ NSSArena *arenaOpt
-+);
-+
-+PR_END_EXTERN_C
-+
-+#endif /* NSSPT1M_H */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/nsspki1t.h 2004-12-13 15:50:16.041151088 +0100
-@@ -0,0 +1,202 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifndef NSSPKI1T_H
-+#define NSSPKI1T_H
-+
-+#ifdef DEBUG
-+static const char NSSPKI1T_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+/*
-+ * nsspki1t.h
-+ *
-+ * This file contains the public type definitions for the PKIX part-1
-+ * objects.
-+ */
-+
-+#ifndef NSSBASET_H
-+#include "nssbaset.h"
-+#endif /* NSSBASET_H */
-+
-+PR_BEGIN_EXTERN_C
-+
-+/*
-+ * OBJECT IDENTIFIER
-+ *
-+ * This is the basic OID that crops up everywhere.
-+ */
-+
-+struct NSSOIDStr;
-+typedef struct NSSOIDStr NSSOID;
-+
-+/*
-+ * AttributeTypeAndValue
-+ *
-+ * This structure contains an attribute type (indicated by an OID),
-+ * and the type-specific value. RelativeDistinguishedNamess consist
-+ * of a set of these. These are distinct from Attributes (which have
-+ * SET of values), from AttributeDescriptions (which have qualifiers
-+ * on the types), and from AttributeValueAssertions (which assert a
-+ * a value comparison under some matching rule).
-+ */
-+
-+struct NSSATAVStr;
-+typedef struct NSSATAVStr NSSATAV;
-+
-+/*
-+ * RelativeDistinguishedName
-+ *
-+ * This structure contains an unordered set of AttributeTypeAndValue
-+ * objects. RDNs are used to distinguish a set of objects underneath
-+ * a common object.
-+ *
-+ * Often, a single ATAV is sufficient to make a unique distinction.
-+ * For example, if a company assigns its people unique uid values,
-+ * then in the Name "uid=smith,ou=People,o=Acme,c=US" the "uid=smith"
-+ * ATAV by itself forms an RDN. However, sometimes a set of ATAVs is
-+ * needed. For example, if a company needed to distinguish between
-+ * two Smiths by specifying their corporate divisions, then in the
-+ * Name "(cn=Smith,ou=Sales),ou=People,o=Acme,c=US" the parenthesised
-+ * set of ATAVs forms the RDN.
-+ */
-+
-+struct NSSRDNStr;
-+typedef struct NSSRDNStr NSSRDN;
-+
-+/*
-+ * RDNSequence
-+ *
-+ * This structure contains a sequence of RelativeDistinguishedName
-+ * objects.
-+ */
-+
-+struct NSSRDNSeqStr;
-+typedef struct NSSRDNSeqStr NSSRDNSeq;
-+
-+/*
-+ * Name
-+ *
-+ * This structure contains a union of the possible name formats,
-+ * which at the moment is limited to an RDNSequence.
-+ */
-+
-+struct NSSNameStr;
-+typedef struct NSSNameStr NSSName;
-+
-+/*
-+ * NameChoice
-+ *
-+ * This enumeration is used to specify choice within a name.
-+ */
-+
-+enum NSSNameChoiceEnum {
-+ NSSNameChoiceInvalid = -1,
-+ NSSNameChoiceRdnSequence
-+};
-+typedef enum NSSNameChoiceEnum NSSNameChoice;
-+
-+/*
-+ * GeneralName
-+ *
-+ * This structure contains a union of the possible general names,
-+ * of which there are several.
-+ */
-+
-+struct NSSGeneralNameStr;
-+typedef struct NSSGeneralNameStr NSSGeneralName;
-+
-+/*
-+ * GeneralNameChoice
-+ *
-+ * This enumerates the possible general name types.
-+ */
-+
-+enum NSSGeneralNameChoiceEnum {
-+ NSSGeneralNameChoiceInvalid = -1,
-+ NSSGeneralNameChoiceOtherName = 0,
-+ NSSGeneralNameChoiceRfc822Name = 1,
-+ NSSGeneralNameChoiceDNSName = 2,
-+ NSSGeneralNameChoiceX400Address = 3,
-+ NSSGeneralNameChoiceDirectoryName = 4,
-+ NSSGeneralNameChoiceEdiPartyName = 5,
-+ NSSGeneralNameChoiceUniformResourceIdentifier = 6,
-+ NSSGeneralNameChoiceIPAddress = 7,
-+ NSSGeneralNameChoiceRegisteredID = 8
-+};
-+typedef enum NSSGeneralNameChoiceEnum NSSGeneralNameChoice;
-+
-+/*
-+ * The "other" types of general names.
-+ */
-+
-+struct NSSOtherNameStr;
-+typedef struct NSSOtherNameStr NSSOtherName;
-+
-+struct NSSRFC822NameStr;
-+typedef struct NSSRFC822NameStr NSSRFC822Name;
-+
-+struct NSSDNSNameStr;
-+typedef struct NSSDNSNameStr NSSDNSName;
-+
-+struct NSSX400AddressStr;
-+typedef struct NSSX400AddressStr NSSX400Address;
-+
-+struct NSSEdiPartyNameStr;
-+typedef struct NSSEdiPartyNameStr NSSEdiPartyName;
-+
-+struct NSSURIStr;
-+typedef struct NSSURIStr NSSURI;
-+
-+struct NSSIPAddressStr;
-+typedef struct NSSIPAddressStr NSSIPAddress;
-+
-+struct NSSRegisteredIDStr;
-+typedef struct NSSRegisteredIDStr NSSRegisteredID;
-+
-+/*
-+ * GeneralNameSeq
-+ *
-+ * This structure contains a sequence of GeneralName objects.
-+ * Note that the PKIX documents refer to this as "GeneralNames,"
-+ * which differs from "GeneralName" by only one letter. To
-+ * try to reduce confusion, we expand the name slightly to
-+ * "GeneralNameSeq."
-+ */
-+
-+struct NSSGeneralNameSeqStr;
-+typedef struct NSSGeneralNameSeqStr NSSGeneralNameSeq;
-+
-+PR_END_EXTERN_C
-+
-+#endif /* NSSPKI1T_H */
-
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/nsspkit.h 2004-12-13 15:50:16.025153520 +0100
-@@ -0,0 +1,273 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifndef NSSPKIT_H
-+#define NSSPKIT_H
-+
-+#ifdef DEBUG
-+static const char NSSPKIT_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+/*
-+ * nsspkit.h
-+ *
-+ * This file defines the types of the top-level PKI objects.
-+ */
-+
-+#ifndef NSSBASET_H
-+#include "nssbaset.h"
-+#endif /* NSSBASET_H */
-+
-+PR_BEGIN_EXTERN_C
-+
-+/*
-+ * NSSCertificate
-+ *
-+ * This is the public representation of a Certificate. The certificate
-+ * may be one found on a smartcard or other token, one decoded from data
-+ * received as part of a protocol, one constructed from constituent
-+ * parts, etc. Usually it is associated with ("in") a trust domain; as
-+ * it can be verified only within a trust domain. The underlying type
-+ * of certificate may be of any supported standard, e.g. PKIX, PGP, etc.
-+ *
-+ * People speak of "verifying (with) the server's, or correspondant's,
-+ * certificate"; for simple operations we support that simplification
-+ * by implementing public-key crypto operations as methods on this type.
-+ */
-+
-+struct NSSCertificateStr;
-+typedef struct NSSCertificateStr NSSCertificate;
-+
-+/*
-+ * NSSUserCertificate
-+ *
-+ * A ``User'' certificate is one for which the private key is available.
-+ * People speak of "using my certificate to sign my email" and "using
-+ * my certificate to authenticate to (or login to) the server"; for
-+ * simple operations, we support that simplification by implementing
-+ * private-key crypto operations as methods on this type.
-+ *
-+ * The current design only weakly distinguishes between certificates
-+ * and user certificates: as far as the compiler goes they're
-+ * interchangable; debug libraries only have one common pointer-tracker;
-+ * etc. However, attempts to do private-key operations on a certificate
-+ * for which the private key is not available will fail.
-+ *
-+ * Open design question: should these types be more firmly separated?
-+ */
-+
-+typedef NSSCertificate NSSUserCertificate;
-+
-+/*
-+ * NSSPrivateKey
-+ *
-+ * This is the public representation of a Private Key. In general,
-+ * the actual value of the key is not available, but operations may
-+ * be performed with it.
-+ */
-+
-+struct NSSPrivateKeyStr;
-+typedef struct NSSPrivateKeyStr NSSPrivateKey;
-+
-+/*
-+ * NSSPublicKey
-+ *
-+ */
-+
-+struct NSSPublicKeyStr;
-+typedef struct NSSPublicKeyStr NSSPublicKey;
-+
-+/*
-+ * NSSSymmetricKey
-+ *
-+ */
-+
-+struct NSSSymmetricKeyStr;
-+typedef struct NSSSymmetricKeyStr NSSSymmetricKey;
-+
-+/*
-+ * NSSTrustDomain
-+ *
-+ * A Trust Domain is the field in which certificates may be validated.
-+ * A trust domain will generally have one or more cryptographic modules
-+ * open; these modules perform the cryptographic operations, and
-+ * provide the basic "root" trust information from which the trust in
-+ * a specific certificate or key depends.
-+ *
-+ * A client program, or a simple server, would typically have one
-+ * trust domain. A server supporting multiple "virtual servers" might
-+ * have a separate trust domain for each virtual server. The separate
-+ * trust domains might share some modules (e.g., a hardware crypto
-+ * accelerator) but not others (e.g., the tokens storing the different
-+ * servers' private keys, or the databases with each server's trusted
-+ * root certificates).
-+ *
-+ * This object descends from the "permananet database" in the old code.
-+ */
-+
-+struct NSSTrustDomainStr;
-+typedef struct NSSTrustDomainStr NSSTrustDomain;
-+
-+/*
-+ * NSSCryptoContext
-+ *
-+ * A Crypto Context is a short-term, "helper" object which is used
-+ * for the lifetime of one ongoing "crypto operation." Such an
-+ * operation may be the creation of a signed message, the use of an
-+ * TLS socket connection, etc. Each crypto context is "in" a
-+ * specific trust domain, and it may have associated with it a
-+ * distinguished certificate, public key, private key, and/or
-+ * symmetric key. It can also temporarily hold and use temporary
-+ * data (e.g. intermediate certificates) which is not stored
-+ * permanently in the trust domain.
-+ *
-+ * In OO terms, this interface inherits interfaces from the trust
-+ * domain, the certificates, and the keys. It also provides
-+ * streaming crypto operations.
-+ *
-+ * This object descends from the "temporary database" concept in the
-+ * old code, but it has changed a lot as a result of what we've
-+ * learned.
-+ */
-+
-+typedef struct NSSCryptoContextStr NSSCryptoContext;
-+
-+/*
-+ * fgmr others
-+ */
-+
-+/*
-+ * NSSTime
-+ *
-+ * Unfortunately, we need an "exceptional" value to indicate
-+ * an error upon return, or "no value" on input. Note that zero
-+ * is a perfectly valid value for both time_t and PRTime.
-+ *
-+ * If we were to create a "range" object, with two times for
-+ * Not Before and Not After, we would have an obvious place for
-+ * the somewhat arbitrary logic involved in comparing them.
-+ *
-+ * Failing that, let's have an NSSTime_CompareRanges function.
-+ */
-+
-+struct NSSTimeStr;
-+typedef struct NSSTimeStr NSSTime;
-+
-+struct NSSTrustStr;
-+typedef struct NSSTrustStr NSSTrust;
-+
-+/*
-+ * NSSUsage
-+ *
-+ * This is trickier than originally planned; I'll write up a
-+ * doc on it.
-+ *
-+ * We'd still like nsspki.h to have a list of common usages,
-+ * e.g.:
-+ *
-+ * extern const NSSUsage *NSSUsage_ClientAuth;
-+ * extern const NSSUsage *NSSUsage_ServerAuth;
-+ * extern const NSSUsage *NSSUsage_SignEmail;
-+ * extern const NSSUsage *NSSUsage_EncryptEmail;
-+ * etc.
-+ */
-+
-+struct NSSUsageStr;
-+typedef struct NSSUsageStr NSSUsage;
-+
-+/*
-+ * NSSPolicies
-+ *
-+ * Placeholder, for now.
-+ */
-+
-+struct NSSPoliciesStr;
-+typedef struct NSSPoliciesStr NSSPolicies;
-+
-+/*
-+ * NSSAlgorithmAndParameters
-+ *
-+ * Algorithm is an OID
-+ * Parameters depend on the algorithm
-+ */
-+
-+struct NSSAlgorithmAndParametersStr;
-+typedef struct NSSAlgorithmAndParametersStr NSSAlgorithmAndParameters;
-+
-+/*
-+ * NSSCallback
-+ *
-+ * At minimum, a "challenge" method and a closure argument.
-+ * Usually the challenge will just be prompting for a password.
-+ * How OO do we want to make it?
-+ */
-+
-+typedef struct NSSCallbackStr NSSCallback;
-+
-+struct NSSCallbackStr {
-+ /* Prompt for a password to initialize a slot. */
-+ PRStatus (* getInitPW)(NSSUTF8 *slotName, void *arg,
-+ NSSUTF8 **ssoPW, NSSUTF8 **userPW);
-+ /* Prompt for oldPW and newPW in order to change the
-+ * password on a slot.
-+ */
-+ PRStatus (* getNewPW)(NSSUTF8 *slotName, PRUint32 *retries, void *arg,
-+ NSSUTF8 **oldPW, NSSUTF8 **newPW);
-+ /* Prompt for slot password. */
-+ PRStatus (* getPW)(NSSUTF8 *slotName, PRUint32 *retries, void *arg,
-+ NSSUTF8 **password);
-+ void *arg;
-+};
-+
-+/* set errors - user cancelled, ... */
-+
-+typedef PRUint32 NSSOperations;
-+/* 1) Do we want these to be preprocessor definitions or constants? */
-+/* 2) What is the correct and complete list? */
-+
-+#define NSSOperations_ENCRYPT 0x0001
-+#define NSSOperations_DECRYPT 0x0002
-+#define NSSOperations_WRAP 0x0004
-+#define NSSOperations_UNWRAP 0x0008
-+#define NSSOperations_SIGN 0x0010
-+#define NSSOperations_SIGN_RECOVER 0x0020
-+#define NSSOperations_VERIFY 0x0040
-+#define NSSOperations_VERIFY_RECOVER 0x0080
-+
-+struct NSSPKIXCertificateStr;
-+
-+PR_END_EXTERN_C
-+
-+#endif /* NSSPKIT_H */
-+
-+
-
-
-
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/nssrwlk.c 2004-12-13 13:06:46.758388736 +0100
-@@ -0,0 +1,511 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#include "nssrwlk.h"
-+#include "nspr.h"
-+
-+PR_BEGIN_EXTERN_C
-+
-+/*
-+ * Reader-writer lock
-+ */
-+struct nssRWLockStr {
-+ PZLock * rw_lock;
-+ char * rw_name; /* lock name */
-+ PRUint32 rw_rank; /* rank of the lock */
-+ PRInt32 rw_writer_locks; /* == 0, if unlocked */
-+ PRInt32 rw_reader_locks; /* == 0, if unlocked */
-+ /* > 0 , # of read locks */
-+ PRUint32 rw_waiting_readers; /* number of waiting readers */
-+ PRUint32 rw_waiting_writers; /* number of waiting writers */
-+ PZCondVar * rw_reader_waitq; /* cvar for readers */
-+ PZCondVar * rw_writer_waitq; /* cvar for writers */
-+ PRThread * rw_owner; /* lock owner for write-lock */
-+ /* Non-null if write lock held. */
-+};
-+
-+PR_END_EXTERN_C
-+
-+#include <string.h>
-+
-+#ifdef DEBUG_RANK_ORDER
-+#define NSS_RWLOCK_RANK_ORDER_DEBUG /* enable deadlock detection using
-+ rank-order for locks
-+ */
-+#endif
-+
-+#ifdef NSS_RWLOCK_RANK_ORDER_DEBUG
-+
-+static PRUintn nss_thread_rwlock_initialized;
-+static PRUintn nss_thread_rwlock; /* TPD key for lock stack */
-+static PRUintn nss_thread_rwlock_alloc_failed;
-+
-+#define _NSS_RWLOCK_RANK_ORDER_LIMIT 10
-+
-+typedef struct thread_rwlock_stack {
-+ PRInt32 trs_index; /* top of stack */
-+ NSSRWLock *trs_stack[_NSS_RWLOCK_RANK_ORDER_LIMIT]; /* stack of lock
-+ pointers */
-+} thread_rwlock_stack;
-+
-+/* forward static declarations. */
-+static PRUint32 nssRWLock_GetThreadRank(PRThread *me);
-+static void nssRWLock_SetThreadRank(PRThread *me, NSSRWLock *rwlock);
-+static void nssRWLock_UnsetThreadRank(PRThread *me, NSSRWLock *rwlock);
-+static void nssRWLock_ReleaseLockStack(void *lock_stack);
-+
-+#endif
-+
-+#define UNTIL(x) while(!(x))
-+
-+/*
-+ * Reader/Writer Locks
-+ */
-+
-+/*
-+ * NSSRWLock_New
-+ * Create a reader-writer lock, with the given lock rank and lock name
-+ *
-+ */
-+
-+PR_IMPLEMENT(NSSRWLock *)
-+NSSRWLock_New(PRUint32 lock_rank, const char *lock_name)
-+{
-+ NSSRWLock *rwlock;
-+
-+ rwlock = PR_NEWZAP(NSSRWLock);
-+ if (rwlock == NULL)
-+ return NULL;
-+
-+ rwlock->rw_lock = PZ_NewLock(nssILockRWLock);
-+ if (rwlock->rw_lock == NULL) {
-+ goto loser;
-+ }
-+ rwlock->rw_reader_waitq = PZ_NewCondVar(rwlock->rw_lock);
-+ if (rwlock->rw_reader_waitq == NULL) {
-+ goto loser;
-+ }
-+ rwlock->rw_writer_waitq = PZ_NewCondVar(rwlock->rw_lock);
-+ if (rwlock->rw_writer_waitq == NULL) {
-+ goto loser;
-+ }
-+ if (lock_name != NULL) {
-+ rwlock->rw_name = (char*) PR_Malloc(strlen(lock_name) + 1);
-+ if (rwlock->rw_name == NULL) {
-+ goto loser;
-+ }
-+ strcpy(rwlock->rw_name, lock_name);
-+ } else {
-+ rwlock->rw_name = NULL;
-+ }
-+ rwlock->rw_rank = lock_rank;
-+ rwlock->rw_waiting_readers = 0;
-+ rwlock->rw_waiting_writers = 0;
-+ rwlock->rw_reader_locks = 0;
-+ rwlock->rw_writer_locks = 0;
-+
-+ return rwlock;
-+
-+loser:
-+ NSSRWLock_Destroy(rwlock);
-+ return(NULL);
-+}
-+
-+/*
-+** Destroy the given RWLock "lock".
-+*/
-+PR_IMPLEMENT(void)
-+NSSRWLock_Destroy(NSSRWLock *rwlock)
-+{
-+ PR_ASSERT(rwlock != NULL);
-+ PR_ASSERT(rwlock->rw_waiting_readers == 0);
-+
-+ /* XXX Shouldn't we lock the PZLock before destroying this?? */
-+
-+ if (rwlock->rw_name)
-+ PR_Free(rwlock->rw_name);
-+ if (rwlock->rw_reader_waitq)
-+ PZ_DestroyCondVar(rwlock->rw_reader_waitq);
-+ if (rwlock->rw_writer_waitq)
-+ PZ_DestroyCondVar(rwlock->rw_writer_waitq);
-+ if (rwlock->rw_lock)
-+ PZ_DestroyLock(rwlock->rw_lock);
-+ PR_DELETE(rwlock);
-+}
-+
-+/***********************************************************************
-+** Given the address of a NULL pointer to a NSSRWLock,
-+** atomically initializes that pointer to a newly created NSSRWLock.
-+** Returns the value placed into that pointer, or NULL.
-+** If the lock cannot be created because of resource constraints,
-+** the pointer will be left NULL.
-+**
-+***********************************************************************/
-+PR_IMPLEMENT(NSSRWLock *)
-+nssRWLock_AtomicCreate( NSSRWLock ** prwlock,
-+ PRUint32 lock_rank,
-+ const char * lock_name)
-+{
-+ NSSRWLock * rwlock;
-+ static PRInt32 initializers;
-+
-+ PR_ASSERT(prwlock != NULL);
-+
-+ /* atomically initialize the lock */
-+ while (NULL == (rwlock = *prwlock)) {
-+ PRInt32 myAttempt = PR_AtomicIncrement(&initializers);
-+ if (myAttempt == 1) {
-+ if (NULL == (rwlock = *prwlock)) {
-+ *prwlock = rwlock = NSSRWLock_New(lock_rank, lock_name);
-+ }
-+ (void) PR_AtomicDecrement(&initializers);
-+ break;
-+ }
-+ PR_Sleep(PR_INTERVAL_NO_WAIT); /* PR_Yield() */
-+ (void) PR_AtomicDecrement(&initializers);
-+ }
-+
-+ return rwlock;
-+}
-+
-+/*
-+** Read-lock the RWLock.
-+*/
-+PR_IMPLEMENT(void)
-+NSSRWLock_LockRead(NSSRWLock *rwlock)
-+{
-+ PRThread *me = PR_GetCurrentThread();
-+
-+ PZ_Lock(rwlock->rw_lock);
-+#ifdef NSS_RWLOCK_RANK_ORDER_DEBUG
-+
-+ /*
-+ * assert that rank ordering is not violated; the rank of 'rwlock' should
-+ * be equal to or greater than the highest rank of all the locks held by
-+ * the thread.
-+ */
-+ PR_ASSERT((rwlock->rw_rank == NSS_RWLOCK_RANK_NONE) ||
-+ (rwlock->rw_rank >= nssRWLock_GetThreadRank(me)));
-+#endif
-+ /*
-+ * wait if write-locked or if a writer is waiting; preference for writers
-+ */
-+ UNTIL ( (rwlock->rw_owner == me) || /* I own it, or */
-+ ((rwlock->rw_owner == NULL) && /* no-one owns it, and */
-+ (rwlock->rw_waiting_writers == 0))) { /* no-one is waiting to own */
-+
-+ rwlock->rw_waiting_readers++;
-+ PZ_WaitCondVar(rwlock->rw_reader_waitq, PR_INTERVAL_NO_TIMEOUT);
-+ rwlock->rw_waiting_readers--;
-+ }
-+ rwlock->rw_reader_locks++; /* Increment read-lock count */
-+
-+ PZ_Unlock(rwlock->rw_lock);
-+
-+#ifdef NSS_RWLOCK_RANK_ORDER_DEBUG
-+ nssRWLock_SetThreadRank(me, rwlock);/* update thread's lock rank */
-+#endif
-+}
-+
-+/* Unlock a Read lock held on this RW lock.
-+*/
-+PR_IMPLEMENT(void)
-+NSSRWLock_UnlockRead(NSSRWLock *rwlock)
-+{
-+ PZ_Lock(rwlock->rw_lock);
-+
-+ PR_ASSERT(rwlock->rw_reader_locks > 0); /* lock must be read locked */
-+
-+ if (( rwlock->rw_reader_locks > 0) && /* caller isn't screwey */
-+ (--rwlock->rw_reader_locks == 0) && /* not read locked any more */
-+ ( rwlock->rw_owner == NULL) && /* not write locked */
-+ ( rwlock->rw_waiting_writers > 0)) { /* someone's waiting. */
-+
-+ PZ_NotifyCondVar(rwlock->rw_writer_waitq); /* wake him up. */
-+ }
-+
-+ PZ_Unlock(rwlock->rw_lock);
-+
-+#ifdef NSS_RWLOCK_RANK_ORDER_DEBUG
-+ /*
-+ * update thread's lock rank
-+ */
-+ nssRWLock_UnsetThreadRank(me, rwlock);
-+#endif
-+ return;
-+}
-+
-+/*
-+** Write-lock the RWLock.
-+*/
-+PR_IMPLEMENT(void)
-+NSSRWLock_LockWrite(NSSRWLock *rwlock)
-+{
-+ PRThread *me = PR_GetCurrentThread();
-+
-+ PZ_Lock(rwlock->rw_lock);
-+#ifdef NSS_RWLOCK_RANK_ORDER_DEBUG
-+ /*
-+ * assert that rank ordering is not violated; the rank of 'rwlock' should
-+ * be equal to or greater than the highest rank of all the locks held by
-+ * the thread.
-+ */
-+ PR_ASSERT((rwlock->rw_rank == NSS_RWLOCK_RANK_NONE) ||
-+ (rwlock->rw_rank >= nssRWLock_GetThreadRank(me)));
-+#endif
-+ /*
-+ * wait if read locked or write locked.
-+ */
-+ PR_ASSERT(rwlock->rw_reader_locks >= 0);
-+ PR_ASSERT(me != NULL);
-+
-+ UNTIL ( (rwlock->rw_owner == me) || /* I own write lock, or */
-+ ((rwlock->rw_owner == NULL) && /* no writer and */
-+ (rwlock->rw_reader_locks == 0))) { /* no readers, either. */
-+
-+ rwlock->rw_waiting_writers++;
-+ PZ_WaitCondVar(rwlock->rw_writer_waitq, PR_INTERVAL_NO_TIMEOUT);
-+ rwlock->rw_waiting_writers--;
-+ PR_ASSERT(rwlock->rw_reader_locks >= 0);
-+ }
-+
-+ PR_ASSERT(rwlock->rw_reader_locks == 0);
-+ /*
-+ * apply write lock
-+ */
-+ rwlock->rw_owner = me;
-+ rwlock->rw_writer_locks++; /* Increment write-lock count */
-+
-+ PZ_Unlock(rwlock->rw_lock);
-+
-+#ifdef NSS_RWLOCK_RANK_ORDER_DEBUG
-+ /*
-+ * update thread's lock rank
-+ */
-+ nssRWLock_SetThreadRank(me,rwlock);
-+#endif
-+}
-+
-+/* Unlock a Read lock held on this RW lock.
-+*/
-+PR_IMPLEMENT(void)
-+NSSRWLock_UnlockWrite(NSSRWLock *rwlock)
-+{
-+ PRThread *me = PR_GetCurrentThread();
-+
-+ PZ_Lock(rwlock->rw_lock);
-+ PR_ASSERT(rwlock->rw_owner == me); /* lock must be write-locked by me. */
-+ PR_ASSERT(rwlock->rw_writer_locks > 0); /* lock must be write locked */
-+
-+ if ( rwlock->rw_owner == me && /* I own it, and */
-+ rwlock->rw_writer_locks > 0 && /* I own it, and */
-+ --rwlock->rw_writer_locks == 0) { /* I'm all done with it */
-+
-+ rwlock->rw_owner = NULL; /* I don't own it any more. */
-+
-+ /* Give preference to waiting writers. */
-+ if (rwlock->rw_waiting_writers > 0) {
-+ if (rwlock->rw_reader_locks == 0)
-+ PZ_NotifyCondVar(rwlock->rw_writer_waitq);
-+ } else if (rwlock->rw_waiting_readers > 0) {
-+ PZ_NotifyAllCondVar(rwlock->rw_reader_waitq);
-+ }
-+ }
-+ PZ_Unlock(rwlock->rw_lock);
-+
-+#ifdef NSS_RWLOCK_RANK_ORDER_DEBUG
-+ /*
-+ * update thread's lock rank
-+ */
-+ nssRWLock_UnsetThreadRank(me, rwlock);
-+#endif
-+ return;
-+}
-+
-+/* This is primarily for debugging, i.e. for inclusion in ASSERT calls. */
-+PR_IMPLEMENT(PRBool)
-+NSSRWLock_HaveWriteLock(NSSRWLock *rwlock) {
-+ PRBool ownWriteLock;
-+ PRThread *me = PR_GetCurrentThread();
-+
-+ /* This lock call isn't really necessary.
-+ ** If this thread is the owner, that fact cannot change during this call,
-+ ** because this thread is in this call.
-+ ** If this thread is NOT the owner, the owner could change, but it
-+ ** could not become this thread.
-+ */
-+#if UNNECESSARY
-+ PZ_Lock(rwlock->rw_lock);
-+#endif
-+ ownWriteLock = (PRBool)(me == rwlock->rw_owner);
-+#if UNNECESSARY
-+ PZ_Unlock(rwlock->rw_lock);
-+#endif
-+ return ownWriteLock;
-+}
-+
-+#ifdef NSS_RWLOCK_RANK_ORDER_DEBUG
-+
-+/*
-+ * nssRWLock_SetThreadRank
-+ * Set a thread's lock rank, which is the highest of the ranks of all
-+ * the locks held by the thread. Pointers to the locks are added to a
-+ * per-thread list, which is anchored off a thread-private data key.
-+ */
-+
-+static void
-+nssRWLock_SetThreadRank(PRThread *me, NSSRWLock *rwlock)
-+{
-+ thread_rwlock_stack *lock_stack;
-+ PRStatus rv;
-+
-+ /*
-+ * allocated thread-private-data for rwlock list, if not already allocated
-+ */
-+ if (!nss_thread_rwlock_initialized) {
-+ /*
-+ * allocate tpd, only if not failed already
-+ */
-+ if (!nss_thread_rwlock_alloc_failed) {
-+ if (PR_NewThreadPrivateIndex(&nss_thread_rwlock,
-+ nssRWLock_ReleaseLockStack)
-+ == PR_FAILURE) {
-+ nss_thread_rwlock_alloc_failed = 1;
-+ return;
-+ }
-+ } else
-+ return;
-+ }
-+ /*
-+ * allocate a lock stack
-+ */
-+ if ((lock_stack = PR_GetThreadPrivate(nss_thread_rwlock)) == NULL) {
-+ lock_stack = (thread_rwlock_stack *)
-+ PR_CALLOC(1 * sizeof(thread_rwlock_stack));
-+ if (lock_stack) {
-+ rv = PR_SetThreadPrivate(nss_thread_rwlock, lock_stack);
-+ if (rv == PR_FAILURE) {
-+ PR_DELETE(lock_stack);
-+ nss_thread_rwlock_alloc_failed = 1;
-+ return;
-+ }
-+ } else {
-+ nss_thread_rwlock_alloc_failed = 1;
-+ return;
-+ }
-+ }
-+ /*
-+ * add rwlock to lock stack, if limit is not exceeded
-+ */
-+ if (lock_stack) {
-+ if (lock_stack->trs_index < _NSS_RWLOCK_RANK_ORDER_LIMIT)
-+ lock_stack->trs_stack[lock_stack->trs_index++] = rwlock;
-+ }
-+ nss_thread_rwlock_initialized = 1;
-+}
-+
-+static void
-+nssRWLock_ReleaseLockStack(void *lock_stack)
-+{
-+ PR_ASSERT(lock_stack);
-+ PR_DELETE(lock_stack);
-+}
-+
-+/*
-+ * nssRWLock_GetThreadRank
-+ *
-+ * return thread's lock rank. If thread-private-data for the lock
-+ * stack is not allocated, return NSS_RWLOCK_RANK_NONE.
-+ */
-+
-+static PRUint32
-+nssRWLock_GetThreadRank(PRThread *me)
-+{
-+ thread_rwlock_stack *lock_stack;
-+
-+ if (nss_thread_rwlock_initialized) {
-+ if ((lock_stack = PR_GetThreadPrivate(nss_thread_rwlock)) == NULL)
-+ return (NSS_RWLOCK_RANK_NONE);
-+ else
-+ return(lock_stack->trs_stack[lock_stack->trs_index - 1]->rw_rank);
-+
-+ } else
-+ return (NSS_RWLOCK_RANK_NONE);
-+}
-+
-+/*
-+ * nssRWLock_UnsetThreadRank
-+ *
-+ * remove the rwlock from the lock stack. Since locks may not be
-+ * unlocked in a FIFO order, the entire lock stack is searched.
-+ */
-+
-+static void
-+nssRWLock_UnsetThreadRank(PRThread *me, NSSRWLock *rwlock)
-+{
-+ thread_rwlock_stack *lock_stack;
-+ int new_index = 0, index, done = 0;
-+
-+ if (!nss_thread_rwlock_initialized)
-+ return;
-+
-+ lock_stack = PR_GetThreadPrivate(nss_thread_rwlock);
-+
-+ PR_ASSERT(lock_stack != NULL);
-+
-+ index = lock_stack->trs_index - 1;
-+ while (index-- >= 0) {
-+ if ((lock_stack->trs_stack[index] == rwlock) && !done) {
-+ /*
-+ * reset the slot for rwlock
-+ */
-+ lock_stack->trs_stack[index] = NULL;
-+ done = 1;
-+ }
-+ /*
-+ * search for the lowest-numbered empty slot, above which there are
-+ * no non-empty slots
-+ */
-+ if ((lock_stack->trs_stack[index] != NULL) && !new_index)
-+ new_index = index + 1;
-+ if (done && new_index)
-+ break;
-+ }
-+ /*
-+ * set top of stack to highest numbered empty slot
-+ */
-+ lock_stack->trs_index = new_index;
-+
-+}
-+
-+#endif /* NSS_RWLOCK_RANK_ORDER_DEBUG */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/oiddata.h 2004-12-13 15:50:16.049149872 +0100
-@@ -0,0 +1,217 @@
-+/* THIS IS A GENERATED FILE */
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifndef OIDDATA_H
-+#define OIDDATA_H
-+
-+#ifdef DEBUG
-+static const char OIDDATA_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$ ; @(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#ifndef NSSPKI1T_H
-+#include "nsspki1t.h"
-+#endif /* NSSPKI1T_H */
-+
-+extern const NSSOID nss_builtin_oids[];
-+extern const PRUint32 nss_builtin_oid_count;
-+
-+/*extern const nssAttributeTypeAliasTable nss_attribute_type_aliases[];*/
-+/*extern const PRUint32 nss_attribute_type_alias_count;*/
-+
-+extern const NSSOID *NSS_OID_RFC1274_UID;
-+extern const NSSOID *NSS_OID_RFC1274_EMAIL;
-+extern const NSSOID *NSS_OID_RFC2247_DC;
-+extern const NSSOID *NSS_OID_ANSIX9_DSA_SIGNATURE;
-+extern const NSSOID *NSS_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST;
-+extern const NSSOID *NSS_OID_X942_DIFFIE_HELMAN_KEY;
-+extern const NSSOID *NSS_OID_PKCS1_RSA_ENCRYPTION;
-+extern const NSSOID *NSS_OID_PKCS1_MD2_WITH_RSA_ENCRYPTION;
-+extern const NSSOID *NSS_OID_PKCS1_MD4_WITH_RSA_ENCRYPTION;
-+extern const NSSOID *NSS_OID_PKCS1_MD5_WITH_RSA_ENCRYPTION;
-+extern const NSSOID *NSS_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION;
-+extern const NSSOID *NSS_OID_PKCS5_PBE_WITH_MD2_AND_DES_CBC;
-+extern const NSSOID *NSS_OID_PKCS5_PBE_WITH_MD5_AND_DES_CBC;
-+extern const NSSOID *NSS_OID_PKCS5_PBE_WITH_SHA1_AND_DES_CBC;
-+extern const NSSOID *NSS_OID_PKCS7;
-+extern const NSSOID *NSS_OID_PKCS7_DATA;
-+extern const NSSOID *NSS_OID_PKCS7_SIGNED_DATA;
-+extern const NSSOID *NSS_OID_PKCS7_ENVELOPED_DATA;
-+extern const NSSOID *NSS_OID_PKCS7_SIGNED_ENVELOPED_DATA;
-+extern const NSSOID *NSS_OID_PKCS7_DIGESTED_DATA;
-+extern const NSSOID *NSS_OID_PKCS7_ENCRYPTED_DATA;
-+extern const NSSOID *NSS_OID_PKCS9_EMAIL_ADDRESS;
-+extern const NSSOID *NSS_OID_PKCS9_UNSTRUCTURED_NAME;
-+extern const NSSOID *NSS_OID_PKCS9_CONTENT_TYPE;
-+extern const NSSOID *NSS_OID_PKCS9_MESSAGE_DIGEST;
-+extern const NSSOID *NSS_OID_PKCS9_SIGNING_TIME;
-+extern const NSSOID *NSS_OID_PKCS9_COUNTER_SIGNATURE;
-+extern const NSSOID *NSS_OID_PKCS9_CHALLENGE_PASSWORD;
-+extern const NSSOID *NSS_OID_PKCS9_UNSTRUCTURED_ADDRESS;
-+extern const NSSOID *NSS_OID_PKCS9_EXTENDED_CERTIFICATE_ATTRIBUTES;
-+extern const NSSOID *NSS_OID_PKCS9_SMIME_CAPABILITIES;
-+extern const NSSOID *NSS_OID_PKCS9_FRIENDLY_NAME;
-+extern const NSSOID *NSS_OID_PKCS9_LOCAL_KEY_ID;
-+extern const NSSOID *NSS_OID_PKCS9_X509_CERT;
-+extern const NSSOID *NSS_OID_PKCS9_SDSI_CERT;
-+extern const NSSOID *NSS_OID_PKCS9_X509_CRL;
-+extern const NSSOID *NSS_OID_PKCS12;
-+extern const NSSOID *NSS_OID_PKCS12_PBE_IDS;
-+extern const NSSOID *NSS_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC4;
-+extern const NSSOID *NSS_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC4;
-+extern const NSSOID *NSS_OID_PKCS12_PBE_WITH_SHA1_AND_3_KEY_TRIPLE_DES_CBC;
-+extern const NSSOID *NSS_OID_PKCS12_PBE_WITH_SHA1_AND_2_KEY_TRIPLE_DES_CBC;
-+extern const NSSOID *NSS_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC;
-+extern const NSSOID *NSS_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC;
-+extern const NSSOID *NSS_OID_PKCS12_KEY_BAG;
-+extern const NSSOID *NSS_OID_PKCS12_PKCS8_SHROUDED_KEY_BAG;
-+extern const NSSOID *NSS_OID_PKCS12_CERT_BAG;
-+extern const NSSOID *NSS_OID_PKCS12_CRL_BAG;
-+extern const NSSOID *NSS_OID_PKCS12_SECRET_BAG;
-+extern const NSSOID *NSS_OID_PKCS12_SAFE_CONTENTS_BAG;
-+extern const NSSOID *NSS_OID_MD2;
-+extern const NSSOID *NSS_OID_MD4;
-+extern const NSSOID *NSS_OID_MD5;
-+extern const NSSOID *NSS_OID_RC2_CBC;
-+extern const NSSOID *NSS_OID_RC4;
-+extern const NSSOID *NSS_OID_DES_EDE3_CBC;
-+extern const NSSOID *NSS_OID_RC5_CBC_PAD;
-+extern const NSSOID *NSS_OID_X509_AUTH_INFO_ACCESS;
-+extern const NSSOID *NSS_OID_PKIX_CPS_POINTER_QUALIFIER;
-+extern const NSSOID *NSS_OID_PKIX_USER_NOTICE_QUALIFIER;
-+extern const NSSOID *NSS_OID_EXT_KEY_USAGE_SERVER_AUTH;
-+extern const NSSOID *NSS_OID_EXT_KEY_USAGE_CLIENT_AUTH;
-+extern const NSSOID *NSS_OID_EXT_KEY_USAGE_CODE_SIGN;
-+extern const NSSOID *NSS_OID_EXT_KEY_USAGE_EMAIL_PROTECTION;
-+extern const NSSOID *NSS_OID_EXT_KEY_USAGE_IPSEC_END_SYSTEM;
-+extern const NSSOID *NSS_OID_EXT_KEY_USAGE_IPSEC_TUNNEL;
-+extern const NSSOID *NSS_OID_EXT_KEY_USAGE_IPSEC_USER;
-+extern const NSSOID *NSS_OID_EXT_KEY_USAGE_TIME_STAMP;
-+extern const NSSOID *NSS_OID_OCSP_RESPONDER;
-+extern const NSSOID *NSS_OID_PKIX_REGCTRL_REGTOKEN;
-+extern const NSSOID *NSS_OID_PKIX_REGCTRL_AUTHENTICATOR;
-+extern const NSSOID *NSS_OID_PKIX_REGCTRL_PKIPUBINFO;
-+extern const NSSOID *NSS_OID_PKIX_REGCTRL_PKI_ARCH_OPTIONS;
-+extern const NSSOID *NSS_OID_PKIX_REGCTRL_OLD_CERT_ID;
-+extern const NSSOID *NSS_OID_PKIX_REGCTRL_PROTOCOL_ENC_KEY;
-+extern const NSSOID *NSS_OID_PKIX_REGINFO_UTF8_PAIRS;
-+extern const NSSOID *NSS_OID_PKIX_REGINFO_CERT_REQUEST;
-+extern const NSSOID *NSS_OID_OID_PKIX_OCSP;
-+extern const NSSOID *NSS_OID_PKIX_OCSP_BASIC_RESPONSE;
-+extern const NSSOID *NSS_OID_PKIX_OCSP_NONCE;
-+extern const NSSOID *NSS_OID_PKIX_OCSP_RESPONSE;
-+extern const NSSOID *NSS_OID_PKIX_OCSP_CRL;
-+extern const NSSOID *NSS_OID_X509_OCSP_NO_CHECK;
-+extern const NSSOID *NSS_OID_PKIX_OCSP_ARCHIVE_CUTOFF;
-+extern const NSSOID *NSS_OID_PKIX_OCSP_SERVICE_LOCATOR;
-+extern const NSSOID *NSS_OID_DES_ECB;
-+extern const NSSOID *NSS_OID_DES_CBC;
-+extern const NSSOID *NSS_OID_DES_OFB;
-+extern const NSSOID *NSS_OID_DES_CFB;
-+extern const NSSOID *NSS_OID_DES_MAC;
-+extern const NSSOID *NSS_OID_ISO_SHA_WITH_RSA_SIGNATURE;
-+extern const NSSOID *NSS_OID_DES_EDE;
-+extern const NSSOID *NSS_OID_SHA1;
-+extern const NSSOID *NSS_OID_BOGUS_DSA_SIGNATURE_WITH_SHA1_DIGEST;
-+extern const NSSOID *NSS_OID_X520_COMMON_NAME;
-+extern const NSSOID *NSS_OID_X520_SURNAME;
-+extern const NSSOID *NSS_OID_X520_COUNTRY_NAME;
-+extern const NSSOID *NSS_OID_X520_LOCALITY_NAME;
-+extern const NSSOID *NSS_OID_X520_STATE_OR_PROVINCE_NAME;
-+extern const NSSOID *NSS_OID_X520_ORGANIZATION_NAME;
-+extern const NSSOID *NSS_OID_X520_ORGANIZATIONAL_UNIT_NAME;
-+extern const NSSOID *NSS_OID_X520_TITLE;
-+extern const NSSOID *NSS_OID_X520_NAME;
-+extern const NSSOID *NSS_OID_X520_GIVEN_NAME;
-+extern const NSSOID *NSS_OID_X520_INITIALS;
-+extern const NSSOID *NSS_OID_X520_GENERATION_QUALIFIER;
-+extern const NSSOID *NSS_OID_X520_DN_QUALIFIER;
-+extern const NSSOID *NSS_OID_X500_RSA_ENCRYPTION;
-+extern const NSSOID *NSS_OID_X509_SUBJECT_DIRECTORY_ATTR;
-+extern const NSSOID *NSS_OID_X509_SUBJECT_DIRECTORY_ATTRIBUTES;
-+extern const NSSOID *NSS_OID_X509_SUBJECT_KEY_ID;
-+extern const NSSOID *NSS_OID_X509_KEY_USAGE;
-+extern const NSSOID *NSS_OID_X509_PRIVATE_KEY_USAGE_PERIOD;
-+extern const NSSOID *NSS_OID_X509_SUBJECT_ALT_NAME;
-+extern const NSSOID *NSS_OID_X509_ISSUER_ALT_NAME;
-+extern const NSSOID *NSS_OID_X509_BASIC_CONSTRAINTS;
-+extern const NSSOID *NSS_OID_X509_CRL_NUMBER;
-+extern const NSSOID *NSS_OID_X509_REASON_CODE;
-+extern const NSSOID *NSS_OID_X509_HOLD_INSTRUCTION_CODE;
-+extern const NSSOID *NSS_OID_X509_INVALID_DATE;
-+extern const NSSOID *NSS_OID_X509_DELTA_CRL_INDICATOR;
-+extern const NSSOID *NSS_OID_X509_ISSUING_DISTRIBUTION_POINT;
-+extern const NSSOID *NSS_OID_X509_CERTIFICATE_ISSUER;
-+extern const NSSOID *NSS_OID_X509_NAME_CONSTRAINTS;
-+extern const NSSOID *NSS_OID_X509_CRL_DIST_POINTS;
-+extern const NSSOID *NSS_OID_X509_CERTIFICATE_POLICIES;
-+extern const NSSOID *NSS_OID_X509_POLICY_MAPPINGS;
-+extern const NSSOID *NSS_OID_X509_AUTH_KEY_ID;
-+extern const NSSOID *NSS_OID_X509_POLICY_CONSTRAINTS;
-+extern const NSSOID *NSS_OID_X509_EXT_KEY_USAGE;
-+extern const NSSOID *NSS_OID_MISSI_DSS_OLD;
-+extern const NSSOID *NSS_OID_FORTEZZA_SKIPJACK;
-+extern const NSSOID *NSS_OID_MISSI_KEA;
-+extern const NSSOID *NSS_OID_MISSI_KEA_DSS_OLD;
-+extern const NSSOID *NSS_OID_MISSI_DSS;
-+extern const NSSOID *NSS_OID_MISSI_KEA_DSS;
-+extern const NSSOID *NSS_OID_MISSI_ALT_KEY;
-+extern const NSSOID *NSS_OID_NS_CERT_EXT_CERT_TYPE;
-+extern const NSSOID *NSS_OID_NS_CERT_EXT_BASE_URL;
-+extern const NSSOID *NSS_OID_NS_CERT_EXT_REVOCATION_URL;
-+extern const NSSOID *NSS_OID_NS_CERT_EXT_CA_REVOCATION_URL;
-+extern const NSSOID *NSS_OID_NS_CERT_EXT_CA_CRL_URL;
-+extern const NSSOID *NSS_OID_NS_CERT_EXT_CA_CERT_URL;
-+extern const NSSOID *NSS_OID_NS_CERT_EXT_CERT_RENEWAL_URL;
-+extern const NSSOID *NSS_OID_NS_CERT_EXT_CA_POLICY_URL;
-+extern const NSSOID *NSS_OID_NS_CERT_EXT_HOMEPAGE_URL;
-+extern const NSSOID *NSS_OID_NS_CERT_EXT_ENTITY_LOGO;
-+extern const NSSOID *NSS_OID_NS_CERT_EXT_USER_PICTURE;
-+extern const NSSOID *NSS_OID_NS_CERT_EXT_SSL_SERVER_NAME;
-+extern const NSSOID *NSS_OID_NS_CERT_EXT_COMMENT;
-+extern const NSSOID *NSS_OID_NS_CERT_EXT_THAYES;
-+extern const NSSOID *NSS_OID_NS_TYPE_GIF;
-+extern const NSSOID *NSS_OID_NS_TYPE_JPEG;
-+extern const NSSOID *NSS_OID_NS_TYPE_URL;
-+extern const NSSOID *NSS_OID_NS_TYPE_HTML;
-+extern const NSSOID *NSS_OID_NS_TYPE_CERT_SEQUENCE;
-+extern const NSSOID *NSS_OID_NS_KEY_USAGE_GOVT_APPROVED;
-+extern const NSSOID *NSS_OID_NETSCAPE_RECOVERY_REQUEST;
-+extern const NSSOID *NSS_OID_NETSCAPE_SMIME_KEA;
-+extern const NSSOID *NSS_OID_NETSCAPE_NICKNAME;
-+extern const NSSOID *NSS_OID_VERISIGN_USER_NOTICES;
-+extern const NSSOID *NSS_OID_NS_CERT_EXT_NETSCAPE_OK;
-+extern const NSSOID *NSS_OID_NS_CERT_EXT_ISSUER_LOGO;
-+extern const NSSOID *NSS_OID_NS_CERT_EXT_SUBJECT_LOGO;
-+
-+#endif /* OIDDATA_H */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pk11cert.c 2004-12-13 13:06:46.682400288 +0100
-@@ -0,0 +1,4227 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Portions created by Sun Microsystems, Inc. are Copyright (C) 2003
-+ * Sun Microsystems, Inc. All Rights Reserved.
-+ *
-+ * Contributor(s):
-+ * Dr Vipul Gupta <vipul.gupta@sun.com>, Sun Microsystems Laboratories
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+/*
-+ * This file implements the Symkey wrapper and the PKCS context
-+ * Interfaces.
-+ */
-+
-+#include "secport.h"
-+#include "seccomon.h"
-+#include "secmod.h"
-+#include "nssilock.h"
-+#include "secmodi.h"
-+#include "pkcs11.h"
-+#include "pk11func.h"
-+#include "cert.h"
-+#include "certi.h"
-+#include "secitem.h"
-+#include "key.h"
-+#include "hasht.h"
-+#include "secoid.h"
-+#include "pkcs7t.h"
-+#include "cmsreclist.h"
-+
-+#include "certdb.h"
-+#include "secerr.h"
-+#include "sslerr.h"
-+
-+#ifndef NSS_3_4_CODE
-+#define NSS_3_4_CODE
-+#endif /* NSS_3_4_CODE */
-+#include "pki3hack.h"
-+#include "dev3hack.h"
-+
-+#include "devm.h"
-+#include "nsspki.h"
-+#include "pki.h"
-+#include "pkim.h"
-+#include "pkitm.h"
-+#include "pkistore.h" /* to remove temp cert */
-+#include "devt.h"
-+
-+#define PK11_SEARCH_CHUNKSIZE 10
-+
-+extern const NSSError NSS_ERROR_NOT_FOUND;
-+
-+CK_OBJECT_HANDLE
-+pk11_FindPubKeyByAnyCert(CERTCertificate *cert, PK11SlotInfo **slot, void *wincx);
-+
-+struct nss3_cert_cbstr {
-+ SECStatus(* callback)(CERTCertificate*, void *);
-+ nssList *cached;
-+ void *arg;
-+};
-+
-+/* Translate from NSSCertificate to CERTCertificate, then pass the latter
-+ * to a callback.
-+ */
-+static PRStatus convert_cert(NSSCertificate *c, void *arg)
-+{
-+ CERTCertificate *nss3cert;
-+ SECStatus secrv;
-+ struct nss3_cert_cbstr *nss3cb = (struct nss3_cert_cbstr *)arg;
-+ nss3cert = STAN_GetCERTCertificate(c);
-+ if (!nss3cert) return PR_FAILURE;
-+ secrv = (*nss3cb->callback)(nss3cert, nss3cb->arg);
-+ return (secrv) ? PR_FAILURE : PR_SUCCESS;
-+}
-+
-+void
-+PK11Slot_SetNSSToken(PK11SlotInfo *sl, NSSToken *nsst)
-+{
-+ sl->nssToken = nsst;
-+}
-+
-+NSSToken *
-+PK11Slot_GetNSSToken(PK11SlotInfo *sl)
-+{
-+ return sl->nssToken;
-+}
-+
-+/*
-+ * build a cert nickname based on the token name and the label of the
-+ * certificate If the label in NULL, build a label based on the ID.
-+ */
-+static int toHex(int x) { return (x < 10) ? (x+'0') : (x+'a'-10); }
-+#define MAX_CERT_ID 4
-+#define DEFAULT_STRING "Cert ID "
-+static char *
-+pk11_buildNickname(PK11SlotInfo *slot,CK_ATTRIBUTE *cert_label,
-+ CK_ATTRIBUTE *key_label, CK_ATTRIBUTE *cert_id)
-+{
-+ int prefixLen = PORT_Strlen(slot->token_name);
-+ int suffixLen = 0;
-+ char *suffix = NULL;
-+ char buildNew[sizeof(DEFAULT_STRING)+MAX_CERT_ID*2];
-+ char *next,*nickname;
-+
-+ if (cert_label && (cert_label->ulValueLen)) {
-+ suffixLen = cert_label->ulValueLen;
-+ suffix = (char*)cert_label->pValue;
-+ } else if (key_label && (key_label->ulValueLen)) {
-+ suffixLen = key_label->ulValueLen;
-+ suffix = (char*)key_label->pValue;
-+ } else if (cert_id && cert_id->ulValueLen > 0) {
-+ int i,first = cert_id->ulValueLen - MAX_CERT_ID;
-+ int offset = sizeof(DEFAULT_STRING);
-+ char *idValue = (char *)cert_id->pValue;
-+
-+ PORT_Memcpy(buildNew,DEFAULT_STRING,sizeof(DEFAULT_STRING)-1);
-+ next = buildNew + offset;
-+ if (first < 0) first = 0;
-+ for (i=first; i < (int) cert_id->ulValueLen; i++) {
-+ *next++ = toHex((idValue[i] >> 4) & 0xf);
-+ *next++ = toHex(idValue[i] & 0xf);
-+ }
-+ *next++ = 0;
-+ suffix = buildNew;
-+ suffixLen = PORT_Strlen(buildNew);
-+ } else {
-+ PORT_SetError( SEC_ERROR_LIBRARY_FAILURE );
-+ return NULL;
-+ }
-+
-+ /* if is internal key slot, add code to skip the prefix!! */
-+ next = nickname = (char *)PORT_Alloc(prefixLen+1+suffixLen+1);
-+ if (nickname == NULL) return NULL;
-+
-+ PORT_Memcpy(next,slot->token_name,prefixLen);
-+ next += prefixLen;
-+ *next++ = ':';
-+ PORT_Memcpy(next,suffix,suffixLen);
-+ next += suffixLen;
-+ *next++ = 0;
-+ return nickname;
-+}
-+
-+/*
-+ * return the object handle that matches the template
-+ */
-+CK_OBJECT_HANDLE
-+pk11_FindObjectByTemplate(PK11SlotInfo *slot,CK_ATTRIBUTE *theTemplate,int tsize)
-+{
-+ CK_OBJECT_HANDLE object;
-+ CK_RV crv;
-+ CK_ULONG objectCount;
-+
-+ /*
-+ * issue the find
-+ */
-+ PK11_EnterSlotMonitor(slot);
-+ crv=PK11_GETTAB(slot)->C_FindObjectsInit(slot->session, theTemplate, tsize);
-+ if (crv != CKR_OK) {
-+ PK11_ExitSlotMonitor(slot);
-+ PORT_SetError( PK11_MapError(crv) );
-+ return CK_INVALID_HANDLE;
-+ }
-+
-+ crv=PK11_GETTAB(slot)->C_FindObjects(slot->session,&object,1,&objectCount);
-+ PK11_GETTAB(slot)->C_FindObjectsFinal(slot->session);
-+ PK11_ExitSlotMonitor(slot);
-+ if ((crv != CKR_OK) || (objectCount < 1)) {
-+ /* shouldn't use SSL_ERROR... here */
-+ PORT_SetError( crv != CKR_OK ? PK11_MapError(crv) :
-+ SSL_ERROR_NO_CERTIFICATE);
-+ return CK_INVALID_HANDLE;
-+ }
-+
-+ /* blow up if the PKCS #11 module returns us and invalid object handle */
-+ PORT_Assert(object != CK_INVALID_HANDLE);
-+ return object;
-+}
-+
-+/*
-+ * return all the object handles that matches the template
-+ */
-+CK_OBJECT_HANDLE *
-+pk11_FindObjectsByTemplate(PK11SlotInfo *slot,
-+ CK_ATTRIBUTE *findTemplate,int findCount,int *object_count) {
-+ CK_OBJECT_HANDLE *objID = NULL;
-+ CK_ULONG returned_count = 0;
-+ CK_RV crv;
-+
-+
-+ PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_FindObjectsInit(slot->session, findTemplate,
-+ findCount);
-+ if (crv != CKR_OK) {
-+ PK11_ExitSlotMonitor(slot);
-+ PORT_SetError( PK11_MapError(crv) );
-+ *object_count = -1;
-+ return NULL;
-+ }
-+
-+
-+ /*
-+ * collect all the Matching Objects
-+ */
-+ do {
-+ CK_OBJECT_HANDLE *oldObjID = objID;
-+
-+ if (objID == NULL) {
-+ objID = (CK_OBJECT_HANDLE *) PORT_Alloc(sizeof(CK_OBJECT_HANDLE)*
-+ (*object_count+ PK11_SEARCH_CHUNKSIZE));
-+ } else {
-+ objID = (CK_OBJECT_HANDLE *) PORT_Realloc(objID,
-+ sizeof(CK_OBJECT_HANDLE)*(*object_count+PK11_SEARCH_CHUNKSIZE));
-+ }
-+
-+ if (objID == NULL) {
-+ if (oldObjID) PORT_Free(oldObjID);
-+ break;
-+ }
-+ crv = PK11_GETTAB(slot)->C_FindObjects(slot->session,
-+ &objID[*object_count],PK11_SEARCH_CHUNKSIZE,&returned_count);
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ PORT_Free(objID);
-+ objID = NULL;
-+ break;
-+ }
-+ *object_count += returned_count;
-+ } while (returned_count == PK11_SEARCH_CHUNKSIZE);
-+
-+ PK11_GETTAB(slot)->C_FindObjectsFinal(slot->session);
-+ PK11_ExitSlotMonitor(slot);
-+
-+ if (objID && (*object_count == 0)) {
-+ PORT_Free(objID);
-+ return NULL;
-+ }
-+ if (objID == NULL) *object_count = -1;
-+ return objID;
-+}
-+/*
-+ * given a PKCS #11 object, match it's peer based on the KeyID. searchID
-+ * is typically a privateKey or a certificate while the peer is the opposite
-+ */
-+CK_OBJECT_HANDLE
-+PK11_MatchItem(PK11SlotInfo *slot, CK_OBJECT_HANDLE searchID,
-+ CK_OBJECT_CLASS matchclass)
-+{
-+ CK_ATTRIBUTE theTemplate[] = {
-+ { CKA_ID, NULL, 0 },
-+ { CKA_CLASS, NULL, 0 }
-+ };
-+ /* if you change the array, change the variable below as well */
-+ CK_ATTRIBUTE *keyclass = &theTemplate[1];
-+ int tsize = sizeof(theTemplate)/sizeof(theTemplate[0]);
-+ /* if you change the array, change the variable below as well */
-+ CK_OBJECT_HANDLE peerID;
-+ CK_OBJECT_HANDLE parent;
-+ PRArenaPool *arena;
-+ CK_RV crv;
-+
-+ /* now we need to create space for the public key */
-+ arena = PORT_NewArena( DER_DEFAULT_CHUNKSIZE);
-+ if (arena == NULL) return CK_INVALID_HANDLE;
-+
-+ crv = PK11_GetAttributes(arena,slot,searchID,theTemplate,tsize);
-+ if (crv != CKR_OK) {
-+ PORT_FreeArena(arena,PR_FALSE);
-+ PORT_SetError( PK11_MapError(crv) );
-+ return CK_INVALID_HANDLE;
-+ }
-+
-+ if ((theTemplate[0].ulValueLen == 0) || (theTemplate[0].ulValueLen == -1)) {
-+ PORT_FreeArena(arena,PR_FALSE);
-+ PORT_SetError(SEC_ERROR_BAD_KEY);
-+ return CK_INVALID_HANDLE;
-+ }
-+
-+
-+
-+ /*
-+ * issue the find
-+ */
-+ parent = *(CK_OBJECT_CLASS *)(keyclass->pValue);
-+ *(CK_OBJECT_CLASS *)(keyclass->pValue) = matchclass;
-+
-+ peerID = pk11_FindObjectByTemplate(slot,theTemplate,tsize);
-+ PORT_FreeArena(arena,PR_FALSE);
-+
-+ return peerID;
-+}
-+
-+PRBool
-+PK11_IsUserCert(PK11SlotInfo *slot, CERTCertificate *cert,
-+ CK_OBJECT_HANDLE certID)
-+{
-+ CK_OBJECT_CLASS theClass;
-+
-+ if (slot == NULL) return PR_FALSE;
-+ if (cert == NULL) return PR_FALSE;
-+
-+ theClass = CKO_PRIVATE_KEY;
-+ if (!PK11_IsLoggedIn(slot,NULL) && PK11_NeedLogin(slot)) {
-+ theClass = CKO_PUBLIC_KEY;
-+ }
-+ if (PK11_MatchItem(slot, certID , theClass) != CK_INVALID_HANDLE) {
-+ return PR_TRUE;
-+ }
-+
-+ if (theClass == CKO_PUBLIC_KEY) {
-+ SECKEYPublicKey *pubKey= CERT_ExtractPublicKey(cert);
-+ CK_ATTRIBUTE theTemplate;
-+
-+ if (pubKey == NULL) {
-+ return PR_FALSE;
-+ }
-+
-+ PK11_SETATTRS(&theTemplate,0,NULL,0);
-+ switch (pubKey->keyType) {
-+ case rsaKey:
-+ PK11_SETATTRS(&theTemplate,CKA_MODULUS, pubKey->u.rsa.modulus.data,
-+ pubKey->u.rsa.modulus.len);
-+ break;
-+ case dsaKey:
-+ PK11_SETATTRS(&theTemplate,CKA_VALUE, pubKey->u.dsa.publicValue.data,
-+ pubKey->u.dsa.publicValue.len);
-+ break;
-+ case dhKey:
-+ PK11_SETATTRS(&theTemplate,CKA_VALUE, pubKey->u.dh.publicValue.data,
-+ pubKey->u.dh.publicValue.len);
-+ break;
-+ case ecKey:
-+#ifdef NSS_ENABLE_ECC
-+ PK11_SETATTRS(&theTemplate,CKA_EC_POINT,
-+ pubKey->u.ec.publicValue.data,
-+ pubKey->u.ec.publicValue.len);
-+#endif /* NSS_ENABLE_ECC */
-+ break;
-+ case keaKey:
-+ case fortezzaKey:
-+ case nullKey:
-+ /* fall through and return false */
-+ break;
-+ }
-+
-+ if (theTemplate.ulValueLen == 0) {
-+ SECKEY_DestroyPublicKey(pubKey);
-+ return PR_FALSE;
-+ }
-+ pk11_SignedToUnsigned(&theTemplate);
-+ if (pk11_FindObjectByTemplate(slot,&theTemplate,1) != CK_INVALID_HANDLE) {
-+ SECKEY_DestroyPublicKey(pubKey);
-+ return PR_TRUE;
-+ }
-+ SECKEY_DestroyPublicKey(pubKey);
-+ }
-+ return PR_FALSE;
-+}
-+
-+/*
-+ * Check out if a cert has ID of zero. This is a magic ID that tells
-+ * NSS that this cert may be an automagically trusted cert.
-+ * The Cert has to be self signed as well. That check is done elsewhere.
-+ *
-+ */
-+PRBool
-+pk11_isID0(PK11SlotInfo *slot, CK_OBJECT_HANDLE certID)
-+{
-+ CK_ATTRIBUTE keyID = {CKA_ID, NULL, 0};
-+ PRBool isZero = PR_FALSE;
-+ int i;
-+ CK_RV crv;
-+
-+
-+ crv = PK11_GetAttributes(NULL,slot,certID,&keyID,1);
-+ if (crv != CKR_OK) {
-+ return isZero;
-+ }
-+
-+ if (keyID.ulValueLen != 0) {
-+ char *value = (char *)keyID.pValue;
-+ isZero = PR_TRUE; /* ID exists, may be zero */
-+ for (i=0; i < (int) keyID.ulValueLen; i++) {
-+ if (value[i] != 0) {
-+ isZero = PR_FALSE; /* nope */
-+ break;
-+ }
-+ }
-+ }
-+ PORT_Free(keyID.pValue);
-+ return isZero;
-+
-+}
-+
-+/*
-+ * Create an NSSCertificate from a slot/certID pair, return it as a
-+ * CERTCertificate.
-+ */
-+static CERTCertificate
-+*pk11_fastCert(PK11SlotInfo *slot, CK_OBJECT_HANDLE certID,
-+ CK_ATTRIBUTE *privateLabel, char **nickptr)
-+{
-+ NSSCertificate *c;
-+ nssCryptokiObject *co;
-+ nssPKIObject *pkio;
-+ NSSToken *token;
-+ NSSTrustDomain *td = STAN_GetDefaultTrustDomain();
-+
-+ /* Get the cryptoki object from the handle */
-+ token = PK11Slot_GetNSSToken(slot);
-+ co = nssCryptokiObject_Create(token, token->defaultSession, certID);
-+ if (!co) {
-+ return NULL;
-+ }
-+
-+ /* Create a PKI object from the cryptoki instance */
-+ pkio = nssPKIObject_Create(NULL, co, td, NULL);
-+ if (!pkio) {
-+ nssCryptokiObject_Destroy(co);
-+ return NULL;
-+ }
-+
-+ /* Create a certificate */
-+ c = nssCertificate_Create(pkio);
-+ if (!c) {
-+ nssPKIObject_Destroy(pkio);
-+ return NULL;
-+ }
-+
-+ nssTrustDomain_AddCertsToCache(td, &c, 1);
-+
-+ /* Build the old-fashioned nickname */
-+ if ((nickptr) && (co->label)) {
-+ CK_ATTRIBUTE label, id;
-+ label.type = CKA_LABEL;
-+ label.pValue = co->label;
-+ label.ulValueLen = PORT_Strlen(co->label);
-+ id.type = CKA_ID;
-+ id.pValue = c->id.data;
-+ id.ulValueLen = c->id.size;
-+ *nickptr = pk11_buildNickname(slot, &label, privateLabel, &id);
-+ }
-+ return STAN_GetCERTCertificate(c);
-+}
-+
-+CK_TRUST
-+pk11_GetTrustField(PK11SlotInfo *slot, PRArenaPool *arena,
-+ CK_OBJECT_HANDLE id, CK_ATTRIBUTE_TYPE type)
-+{
-+ CK_TRUST rv = 0;
-+ SECItem item;
-+
-+ item.data = NULL;
-+ item.len = 0;
-+
-+ if( SECSuccess == PK11_ReadAttribute(slot, id, type, arena, &item) ) {
-+ PORT_Assert(item.len == sizeof(CK_TRUST));
-+ PORT_Memcpy(&rv, item.data, sizeof(CK_TRUST));
-+ /* Damn, is there an endian problem here? */
-+ return rv;
-+ }
-+
-+ return 0;
-+}
-+
-+PRBool
-+pk11_HandleTrustObject(PK11SlotInfo *slot, CERTCertificate *cert, CERTCertTrust *trust)
-+{
-+ PRArenaPool *arena;
-+
-+ CK_ATTRIBUTE tobjTemplate[] = {
-+ { CKA_CLASS, NULL, 0 },
-+ { CKA_CERT_SHA1_HASH, NULL, 0 },
-+ };
-+
-+ CK_OBJECT_CLASS tobjc = CKO_NETSCAPE_TRUST;
-+ CK_OBJECT_HANDLE tobjID;
-+ unsigned char sha1_hash[SHA1_LENGTH];
-+
-+ CK_TRUST serverAuth, codeSigning, emailProtection, clientAuth;
-+
-+ PK11_HashBuf(SEC_OID_SHA1, sha1_hash, cert->derCert.data, cert->derCert.len);
-+
-+ PK11_SETATTRS(&tobjTemplate[0], CKA_CLASS, &tobjc, sizeof(tobjc));
-+ PK11_SETATTRS(&tobjTemplate[1], CKA_CERT_SHA1_HASH, sha1_hash,
-+ SHA1_LENGTH);
-+
-+ tobjID = pk11_FindObjectByTemplate(slot, tobjTemplate,
-+ sizeof(tobjTemplate)/sizeof(tobjTemplate[0]));
-+ if( CK_INVALID_HANDLE == tobjID ) {
-+ return PR_FALSE;
-+ }
-+
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ if( NULL == arena ) return PR_FALSE;
-+
-+ /* Unfortunately, it seems that PK11_GetAttributes doesn't deal
-+ * well with nonexistant attributes. I guess we have to check
-+ * the trust info fields one at a time.
-+ */
-+
-+ /* We could verify CKA_CERT_HASH here */
-+
-+ /* We could verify CKA_EXPIRES here */
-+
-+
-+ /* "Purpose" trust information */
-+ serverAuth = pk11_GetTrustField(slot, arena, tobjID, CKA_TRUST_SERVER_AUTH);
-+ clientAuth = pk11_GetTrustField(slot, arena, tobjID, CKA_TRUST_CLIENT_AUTH);
-+ codeSigning = pk11_GetTrustField(slot, arena, tobjID, CKA_TRUST_CODE_SIGNING);
-+ emailProtection = pk11_GetTrustField(slot, arena, tobjID,
-+ CKA_TRUST_EMAIL_PROTECTION);
-+ /* Here's where the fun logic happens. We have to map back from the
-+ * key usage, extended key usage, purpose, and possibly other trust values
-+ * into the old trust-flags bits. */
-+
-+ /* First implementation: keep it simple for testing. We can study what other
-+ * mappings would be appropriate and add them later.. fgmr 20000724 */
-+
-+ if ( serverAuth == CKT_NETSCAPE_TRUSTED ) {
-+ trust->sslFlags |= CERTDB_VALID_PEER | CERTDB_TRUSTED;
-+ }
-+
-+ if ( serverAuth == CKT_NETSCAPE_TRUSTED_DELEGATOR ) {
-+ trust->sslFlags |= CERTDB_VALID_CA | CERTDB_TRUSTED_CA |
-+ CERTDB_NS_TRUSTED_CA;
-+ }
-+ if ( clientAuth == CKT_NETSCAPE_TRUSTED_DELEGATOR ) {
-+ trust->sslFlags |= CERTDB_TRUSTED_CLIENT_CA ;
-+ }
-+
-+ if ( emailProtection == CKT_NETSCAPE_TRUSTED ) {
-+ trust->emailFlags |= CERTDB_VALID_PEER | CERTDB_TRUSTED;
-+ }
-+
-+ if ( emailProtection == CKT_NETSCAPE_TRUSTED_DELEGATOR ) {
-+ trust->emailFlags |= CERTDB_VALID_CA | CERTDB_TRUSTED_CA | CERTDB_NS_TRUSTED_CA;
-+ }
-+
-+ if( codeSigning == CKT_NETSCAPE_TRUSTED ) {
-+ trust->objectSigningFlags |= CERTDB_VALID_PEER | CERTDB_TRUSTED;
-+ }
-+
-+ if( codeSigning == CKT_NETSCAPE_TRUSTED_DELEGATOR ) {
-+ trust->objectSigningFlags |= CERTDB_VALID_CA | CERTDB_TRUSTED_CA | CERTDB_NS_TRUSTED_CA;
-+ }
-+
-+ /* There's certainly a lot more logic that can go here.. */
-+
-+ PORT_FreeArena(arena, PR_FALSE);
-+
-+ return PR_TRUE;
-+}
-+
-+/*
-+ * Build an CERTCertificate structure from a PKCS#11 object ID.... certID
-+ * Must be a CertObject. This code does not explicitly checks that.
-+ */
-+CERTCertificate *
-+PK11_MakeCertFromHandle(PK11SlotInfo *slot,CK_OBJECT_HANDLE certID,
-+ CK_ATTRIBUTE *privateLabel)
-+{
-+ char * nickname = NULL;
-+ CERTCertificate *cert = NULL;
-+ CERTCertTrust *trust;
-+ PRBool isFortezzaRootCA = PR_FALSE;
-+ PRBool swapNickname = PR_FALSE;
-+
-+ cert = pk11_fastCert(slot,certID,privateLabel, &nickname);
-+ if (cert == NULL) goto loser;
-+
-+ if (nickname) {
-+ if (cert->nickname != NULL) {
-+ cert->dbnickname = cert->nickname;
-+ }
-+ cert->nickname = PORT_ArenaStrdup(cert->arena,nickname);
-+ PORT_Free(nickname);
-+ nickname = NULL;
-+ swapNickname = PR_TRUE;
-+ }
-+
-+ /* remember where this cert came from.... If we have just looked
-+ * it up from the database and it already has a slot, don't add a new
-+ * one. */
-+ if (cert->slot == NULL) {
-+ cert->slot = PK11_ReferenceSlot(slot);
-+ cert->pkcs11ID = certID;
-+ cert->ownSlot = PR_TRUE;
-+ cert->series = slot->series;
-+ }
-+
-+ trust = (CERTCertTrust*)PORT_ArenaAlloc(cert->arena, sizeof(CERTCertTrust));
-+ if (trust == NULL) goto loser;
-+ PORT_Memset(trust,0, sizeof(CERTCertTrust));
-+ cert->trust = trust;
-+
-+
-+
-+ if(! pk11_HandleTrustObject(slot, cert, trust) ) {
-+ unsigned int type;
-+
-+ /* build some cert trust flags */
-+ if (CERT_IsCACert(cert, &type)) {
-+ unsigned int trustflags = CERTDB_VALID_CA;
-+
-+ /* Allow PKCS #11 modules to give us trusted CA's. We only accept
-+ * valid CA's which are self-signed here. They must have an object
-+ * ID of '0'. */
-+ if (pk11_isID0(slot,certID) &&
-+ SECITEM_CompareItem(&cert->derSubject,&cert->derIssuer)
-+ == SECEqual) {
-+ trustflags |= CERTDB_TRUSTED_CA;
-+ /* is the slot a fortezza card? allow the user or
-+ * admin to turn on objectSigning, but don't turn
-+ * full trust on explicitly */
-+ if (PK11_DoesMechanism(slot,CKM_KEA_KEY_DERIVE)) {
-+ trust->objectSigningFlags |= CERTDB_VALID_CA;
-+ isFortezzaRootCA = PR_TRUE;
-+ }
-+ }
-+ if ((type & NS_CERT_TYPE_SSL_CA) == NS_CERT_TYPE_SSL_CA) {
-+ trust->sslFlags |= trustflags;
-+ }
-+ if ((type & NS_CERT_TYPE_EMAIL_CA) == NS_CERT_TYPE_EMAIL_CA) {
-+ trust->emailFlags |= trustflags;
-+ }
-+ if ((type & NS_CERT_TYPE_OBJECT_SIGNING_CA)
-+ == NS_CERT_TYPE_OBJECT_SIGNING_CA) {
-+ trust->objectSigningFlags |= trustflags;
-+ }
-+ }
-+ }
-+
-+ if (PK11_IsUserCert(slot,cert,certID)) {
-+ trust->sslFlags |= CERTDB_USER;
-+ trust->emailFlags |= CERTDB_USER;
-+ /* trust->objectSigningFlags |= CERTDB_USER; */
-+ }
-+
-+ return cert;
-+
-+loser:
-+ if (nickname) PORT_Free(nickname);
-+ if (cert) CERT_DestroyCertificate(cert);
-+ return NULL;
-+}
-+
-+
-+/*
-+ * Build get a certificate from a private key
-+ */
-+CERTCertificate *
-+PK11_GetCertFromPrivateKey(SECKEYPrivateKey *privKey)
-+{
-+ PK11SlotInfo *slot = privKey->pkcs11Slot;
-+ CK_OBJECT_HANDLE handle = privKey->pkcs11ID;
-+ CK_OBJECT_HANDLE certID =
-+ PK11_MatchItem(slot,handle,CKO_CERTIFICATE);
-+ CERTCertificate *cert;
-+
-+ if (certID == CK_INVALID_HANDLE) {
-+ PORT_SetError(SSL_ERROR_NO_CERTIFICATE);
-+ return NULL;
-+ }
-+ cert = PK11_MakeCertFromHandle(slot,certID,NULL);
-+ return (cert);
-+
-+}
-+
-+/*
-+ * destroy a private key if there are no matching certs.
-+ * this function also frees the privKey structure.
-+ */
-+SECStatus
-+PK11_DeleteTokenPrivateKey(SECKEYPrivateKey *privKey, PRBool force)
-+{
-+ CERTCertificate *cert=PK11_GetCertFromPrivateKey(privKey);
-+
-+ /* found a cert matching the private key?. */
-+ if (!force && cert != NULL) {
-+ /* yes, don't delete the key */
-+ CERT_DestroyCertificate(cert);
-+ SECKEY_DestroyPrivateKey(privKey);
-+ return SECWouldBlock;
-+ }
-+ /* now, then it's safe for the key to go away */
-+ PK11_DestroyTokenObject(privKey->pkcs11Slot,privKey->pkcs11ID);
-+ SECKEY_DestroyPrivateKey(privKey);
-+ return SECSuccess;
-+}
-+
-+/*
-+ * destroy a private key if there are no matching certs.
-+ * this function also frees the privKey structure.
-+ */
-+SECStatus
-+PK11_DeleteTokenPublicKey(SECKEYPublicKey *pubKey)
-+{
-+ /* now, then it's safe for the key to go away */
-+ if (pubKey->pkcs11Slot == NULL) {
-+ return SECFailure;
-+ }
-+ PK11_DestroyTokenObject(pubKey->pkcs11Slot,pubKey->pkcs11ID);
-+ SECKEY_DestroyPublicKey(pubKey);
-+ return SECSuccess;
-+}
-+
-+
-+/*
-+ * delete a cert and it's private key (if no other certs are pointing to the
-+ * private key.
-+ */
-+SECStatus
-+PK11_DeleteTokenCertAndKey(CERTCertificate *cert,void *wincx)
-+{
-+ SECKEYPrivateKey *privKey = PK11_FindKeyByAnyCert(cert,wincx);
-+ CK_OBJECT_HANDLE pubKey;
-+ PK11SlotInfo *slot = NULL;
-+
-+ pubKey = pk11_FindPubKeyByAnyCert(cert, &slot, wincx);
-+ if (privKey) {
-+#ifdef NSS_CLASSIC
-+ PK11_DestroyTokenObject(cert->slot,cert->pkcs11ID);
-+#else
-+ /* For 3.4, utilize the generic cert delete function */
-+ SEC_DeletePermCertificate(cert);
-+#endif
-+ PK11_DeleteTokenPrivateKey(privKey, PR_FALSE);
-+ }
-+ if ((pubKey != CK_INVALID_HANDLE) && (slot != NULL)) {
-+ PK11_DestroyTokenObject(slot,pubKey);
-+ PK11_FreeSlot(slot);
-+ }
-+ return SECSuccess;
-+}
-+
-+/*
-+ * count the number of objects that match the template.
-+ */
-+int
-+PK11_NumberObjectsFor(PK11SlotInfo *slot, CK_ATTRIBUTE *findTemplate,
-+ int templateCount)
-+{
-+ CK_OBJECT_HANDLE objID[PK11_SEARCH_CHUNKSIZE];
-+ int object_count = 0;
-+ CK_ULONG returned_count = 0;
-+ CK_RV crv;
-+
-+ PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_FindObjectsInit(slot->session,
-+ findTemplate, templateCount);
-+ if (crv != CKR_OK) {
-+ PK11_ExitSlotMonitor(slot);
-+ PORT_SetError( PK11_MapError(crv) );
-+ return 0;
-+ }
-+
-+ /*
-+ * collect all the Matching Objects
-+ */
-+ do {
-+ crv = PK11_GETTAB(slot)->C_FindObjects(slot->session,
-+ objID,PK11_SEARCH_CHUNKSIZE,&returned_count);
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ break;
-+ }
-+ object_count += returned_count;
-+ } while (returned_count == PK11_SEARCH_CHUNKSIZE);
-+
-+ PK11_GETTAB(slot)->C_FindObjectsFinal(slot->session);
-+ PK11_ExitSlotMonitor(slot);
-+ return object_count;
-+}
-+
-+/*
-+ * cert callback structure
-+ */
-+typedef struct pk11DoCertCallbackStr {
-+ SECStatus(* callback)(PK11SlotInfo *slot, CERTCertificate*, void *);
-+ SECStatus(* noslotcallback)(CERTCertificate*, void *);
-+ SECStatus(* itemcallback)(CERTCertificate*, SECItem *, void *);
-+ void *callbackArg;
-+} pk11DoCertCallback;
-+
-+#ifdef NSS_CLASSIC
-+/*
-+ * callback to map object handles to certificate structures.
-+ */
-+static SECStatus
-+pk11_DoCerts(PK11SlotInfo *slot, CK_OBJECT_HANDLE certID, void *arg)
-+{
-+ CERTCertificate *cert;
-+ pk11DoCertCallback *certcb = (pk11DoCertCallback *) arg;
-+
-+ cert = PK11_MakeCertFromHandle(slot, certID, NULL);
-+
-+ if (cert == NULL) {
-+ return SECFailure;
-+ }
-+
-+ if (certcb ) {
-+ if (certcb->callback) {
-+ (*certcb->callback)(slot, cert, certcb->callbackArg);
-+ }
-+ if (certcb->noslotcallback) {
-+ (*certcb->noslotcallback)(cert, certcb->callbackArg);
-+ }
-+ if (certcb->itemcallback) {
-+ (*certcb->itemcallback)(cert, NULL, certcb->callbackArg);
-+ }
-+ }
-+
-+ CERT_DestroyCertificate(cert);
-+
-+ return SECSuccess;
-+}
-+#endif
-+
-+static SECStatus
-+pk11_CollectCrls(PK11SlotInfo *slot, CK_OBJECT_HANDLE crlID, void *arg)
-+{
-+ SECItem derCrl;
-+ CERTCrlHeadNode *head = (CERTCrlHeadNode *) arg;
-+ CERTCrlNode *new_node = NULL;
-+ CK_ATTRIBUTE fetchCrl[3] = {
-+ { CKA_VALUE, NULL, 0},
-+ { CKA_NETSCAPE_KRL, NULL, 0},
-+ { CKA_NETSCAPE_URL, NULL, 0},
-+ };
-+ const int fetchCrlSize = sizeof(fetchCrl)/sizeof(fetchCrl[2]);
-+ CK_RV crv;
-+ SECStatus rv = SECFailure;
-+
-+ crv = PK11_GetAttributes(head->arena,slot,crlID,fetchCrl,fetchCrlSize);
-+ if (CKR_OK != crv) {
-+ PORT_SetError(PK11_MapError(crv));
-+ goto loser;
-+ }
-+
-+ if (!fetchCrl[1].pValue) {
-+ PORT_SetError(SEC_ERROR_CRL_INVALID);
-+ goto loser;
-+ }
-+
-+ new_node = (CERTCrlNode *)PORT_ArenaAlloc(head->arena, sizeof(CERTCrlNode));
-+ if (new_node == NULL) {
-+ goto loser;
-+ }
-+
-+ if (*((CK_BBOOL *)fetchCrl[1].pValue))
-+ new_node->type = SEC_KRL_TYPE;
-+ else
-+ new_node->type = SEC_CRL_TYPE;
-+
-+ derCrl.type = siBuffer;
-+ derCrl.data = (unsigned char *)fetchCrl[0].pValue;
-+ derCrl.len = fetchCrl[0].ulValueLen;
-+ new_node->crl=CERT_DecodeDERCrl(head->arena,&derCrl,new_node->type);
-+ if (new_node->crl == NULL) {
-+ goto loser;
-+ }
-+
-+ if (fetchCrl[2].pValue) {
-+ int nnlen = fetchCrl[2].ulValueLen;
-+ new_node->crl->url = (char *)PORT_ArenaAlloc(head->arena, nnlen+1);
-+ if ( !new_node->crl->url ) {
-+ goto loser;
-+ }
-+ PORT_Memcpy(new_node->crl->url, fetchCrl[2].pValue, nnlen);
-+ new_node->crl->url[nnlen] = 0;
-+ } else {
-+ new_node->crl->url = NULL;
-+ }
-+
-+
-+ new_node->next = NULL;
-+ if (head->last) {
-+ head->last->next = new_node;
-+ head->last = new_node;
-+ } else {
-+ head->first = head->last = new_node;
-+ }
-+ rv = SECSuccess;
-+
-+loser:
-+ return(rv);
-+}
-+
-+
-+/*
-+ * key call back structure.
-+ */
-+typedef struct pk11KeyCallbackStr {
-+ SECStatus (* callback)(SECKEYPrivateKey *,void *);
-+ void *callbackArg;
-+ void *wincx;
-+} pk11KeyCallback;
-+
-+/*
-+ * callback to map Object Handles to Private Keys;
-+ */
-+SECStatus
-+pk11_DoKeys(PK11SlotInfo *slot, CK_OBJECT_HANDLE keyHandle, void *arg)
-+{
-+ SECStatus rv = SECSuccess;
-+ SECKEYPrivateKey *privKey;
-+ pk11KeyCallback *keycb = (pk11KeyCallback *) arg;
-+
-+ privKey = PK11_MakePrivKey(slot,nullKey,PR_TRUE,keyHandle,keycb->wincx);
-+
-+ if (privKey == NULL) {
-+ return SECFailure;
-+ }
-+
-+ if (keycb && (keycb->callback)) {
-+ rv = (*keycb->callback)(privKey,keycb->callbackArg);
-+ }
-+
-+ SECKEY_DestroyPrivateKey(privKey);
-+ return rv;
-+}
-+
-+/* Traverse slots callback */
-+typedef struct pk11TraverseSlotStr {
-+ SECStatus (*callback)(PK11SlotInfo *,CK_OBJECT_HANDLE, void *);
-+ void *callbackArg;
-+ CK_ATTRIBUTE *findTemplate;
-+ int templateCount;
-+} pk11TraverseSlot;
-+
-+/*
-+ * Extract all the certs on a card from a slot.
-+ */
-+SECStatus
-+PK11_TraverseSlot(PK11SlotInfo *slot, void *arg)
-+{
-+ int i;
-+ CK_OBJECT_HANDLE *objID = NULL;
-+ int object_count = 0;
-+ pk11TraverseSlot *slotcb = (pk11TraverseSlot*) arg;
-+
-+ objID = pk11_FindObjectsByTemplate(slot,slotcb->findTemplate,
-+ slotcb->templateCount,&object_count);
-+
-+ /*Actually this isn't a failure... there just were no objs to be found*/
-+ if (object_count == 0) {
-+ return SECSuccess;
-+ }
-+
-+ if (objID == NULL) {
-+ return SECFailure;
-+ }
-+
-+ for (i=0; i < object_count; i++) {
-+ (*slotcb->callback)(slot,objID[i],slotcb->callbackArg);
-+ }
-+ PORT_Free(objID);
-+ return SECSuccess;
-+}
-+
-+typedef struct pk11CertCallbackStr {
-+ SECStatus(* callback)(CERTCertificate*,SECItem *,void *);
-+ void *callbackArg;
-+} pk11CertCallback;
-+
-+/*
-+ * Extract all the certs on a card from a slot.
-+ */
-+SECStatus
-+pk11_TraverseAllSlots( SECStatus (*callback)(PK11SlotInfo *,void *),
-+ void *arg,void *wincx) {
-+ PK11SlotList *list;
-+ PK11SlotListElement *le;
-+ SECStatus rv;
-+
-+ /* get them all! */
-+ list = PK11_GetAllTokens(CKM_INVALID_MECHANISM,PR_FALSE,PR_FALSE,wincx);
-+ if (list == NULL) return SECFailure;
-+
-+ /* look at each slot and authenticate as necessary */
-+ for (le = list->head ; le; le = le->next) {
-+ if (!PK11_IsFriendly(le->slot)) {
-+ rv = PK11_Authenticate(le->slot, PR_FALSE, wincx);
-+ if (rv != SECSuccess) continue;
-+ }
-+ if (callback) {
-+ (*callback)(le->slot,arg);
-+ }
-+ }
-+
-+ PK11_FreeSlotList(list);
-+
-+ return SECSuccess;
-+}
-+
-+struct fake_der_cb_argstr
-+{
-+ SECStatus(* callback)(CERTCertificate*, SECItem *, void *);
-+ void *arg;
-+};
-+
-+static SECStatus fake_der_cb(CERTCertificate *c, void *a)
-+{
-+ struct fake_der_cb_argstr *fda = (struct fake_der_cb_argstr *)a;
-+ return (*fda->callback)(c, &c->derCert, fda->arg);
-+}
-+
-+/*
-+ * Extract all the certs on a card from a slot.
-+ */
-+SECStatus
-+PK11_TraverseSlotCerts(SECStatus(* callback)(CERTCertificate*,SECItem *,void *),
-+ void *arg, void *wincx) {
-+#ifdef NSS_CLASSIC
-+ pk11DoCertCallback caller;
-+ pk11TraverseSlot creater;
-+ CK_ATTRIBUTE theTemplate;
-+ CK_OBJECT_CLASS certClass = CKO_CERTIFICATE;
-+
-+ PK11_SETATTRS(&theTemplate, CKA_CLASS, &certClass, sizeof(certClass));
-+
-+ caller.callback = NULL;
-+ caller.noslotcallback = NULL;
-+ caller.itemcallback = callback;
-+ caller.callbackArg = arg;
-+ creater.callback = pk11_DoCerts;
-+ creater.callbackArg = (void *) & caller;
-+ creater.findTemplate = &theTemplate;
-+ creater.templateCount = 1;
-+
-+ return pk11_TraverseAllSlots(PK11_TraverseSlot, &creater, wincx);
-+#else
-+ NSSTrustDomain *defaultTD = STAN_GetDefaultTrustDomain();
-+ struct fake_der_cb_argstr fda;
-+ struct nss3_cert_cbstr pk11cb;
-+
-+ /* authenticate to the tokens first */
-+ (void) pk11_TraverseAllSlots( NULL, NULL, wincx);
-+
-+ fda.callback = callback;
-+ fda.arg = arg;
-+ pk11cb.callback = fake_der_cb;
-+ pk11cb.arg = &fda;
-+ NSSTrustDomain_TraverseCertificates(defaultTD, convert_cert, &pk11cb);
-+ return SECSuccess;
-+#endif
-+}
-+
-+/*
-+ * Extract all the certs on a card from a slot.
-+ */
-+SECStatus
-+PK11_LookupCrls(CERTCrlHeadNode *nodes, int type, void *wincx) {
-+ pk11TraverseSlot creater;
-+ CK_ATTRIBUTE theTemplate[2];
-+ CK_ATTRIBUTE *attrs;
-+ CK_OBJECT_CLASS certClass = CKO_NETSCAPE_CRL;
-+
-+ attrs = theTemplate;
-+ PK11_SETATTRS(attrs, CKA_CLASS, &certClass, sizeof(certClass)); attrs++;
-+ if (type != -1) {
-+ CK_BBOOL isKrl = (CK_BBOOL) (type == SEC_KRL_TYPE);
-+ PK11_SETATTRS(attrs, CKA_NETSCAPE_KRL, &isKrl, sizeof(isKrl)); attrs++;
-+ }
-+
-+ creater.callback = pk11_CollectCrls;
-+ creater.callbackArg = (void *) nodes;
-+ creater.findTemplate = theTemplate;
-+ creater.templateCount = (attrs - theTemplate);
-+
-+ return pk11_TraverseAllSlots(PK11_TraverseSlot, &creater, wincx);
-+}
-+
-+/***********************************************************************
-+ * PK11_TraversePrivateKeysInSlot
-+ *
-+ * Traverses all the private keys on a slot.
-+ *
-+ * INPUTS
-+ * slot
-+ * The PKCS #11 slot whose private keys you want to traverse.
-+ * callback
-+ * A callback function that will be called for each key.
-+ * arg
-+ * An argument that will be passed to the callback function.
-+ */
-+SECStatus
-+PK11_TraversePrivateKeysInSlot( PK11SlotInfo *slot,
-+ SECStatus(* callback)(SECKEYPrivateKey*, void*), void *arg)
-+{
-+ pk11KeyCallback perKeyCB;
-+ pk11TraverseSlot perObjectCB;
-+ CK_OBJECT_CLASS privkClass = CKO_PRIVATE_KEY;
-+ CK_BBOOL ckTrue = CK_TRUE;
-+ CK_ATTRIBUTE theTemplate[2];
-+ int templateSize = 2;
-+
-+ theTemplate[0].type = CKA_CLASS;
-+ theTemplate[0].pValue = &privkClass;
-+ theTemplate[0].ulValueLen = sizeof(privkClass);
-+ theTemplate[1].type = CKA_TOKEN;
-+ theTemplate[1].pValue = &ckTrue;
-+ theTemplate[1].ulValueLen = sizeof(ckTrue);
-+
-+ if(slot==NULL) {
-+ return SECSuccess;
-+ }
-+
-+ perObjectCB.callback = pk11_DoKeys;
-+ perObjectCB.callbackArg = &perKeyCB;
-+ perObjectCB.findTemplate = theTemplate;
-+ perObjectCB.templateCount = templateSize;
-+ perKeyCB.callback = callback;
-+ perKeyCB.callbackArg = arg;
-+ perKeyCB.wincx = NULL;
-+
-+ return PK11_TraverseSlot(slot, &perObjectCB);
-+}
-+
-+CK_OBJECT_HANDLE *
-+PK11_FindObjectsFromNickname(char *nickname,PK11SlotInfo **slotptr,
-+ CK_OBJECT_CLASS objclass, int *returnCount, void *wincx)
-+{
-+ char *tokenName;
-+ char *delimit;
-+ PK11SlotInfo *slot;
-+ CK_OBJECT_HANDLE *objID;
-+ CK_ATTRIBUTE findTemplate[] = {
-+ { CKA_LABEL, NULL, 0},
-+ { CKA_CLASS, NULL, 0},
-+ };
-+ int findCount = sizeof(findTemplate)/sizeof(findTemplate[0]);
-+ SECStatus rv;
-+ PK11_SETATTRS(&findTemplate[1], CKA_CLASS, &objclass, sizeof(objclass));
-+
-+ *slotptr = slot = NULL;
-+ *returnCount = 0;
-+ /* first find the slot associated with this nickname */
-+ if ((delimit = PORT_Strchr(nickname,':')) != NULL) {
-+ int len = delimit - nickname;
-+ tokenName = (char*)PORT_Alloc(len+1);
-+ PORT_Memcpy(tokenName,nickname,len);
-+ tokenName[len] = 0;
-+
-+ slot = *slotptr = PK11_FindSlotByName(tokenName);
-+ PORT_Free(tokenName);
-+ /* if we couldn't find a slot, assume the nickname is an internal cert
-+ * with no proceding slot name */
-+ if (slot == NULL) {
-+ slot = *slotptr = PK11_GetInternalKeySlot();
-+ } else {
-+ nickname = delimit+1;
-+ }
-+ } else {
-+ *slotptr = slot = PK11_GetInternalKeySlot();
-+ }
-+ if (slot == NULL) {
-+ return CK_INVALID_HANDLE;
-+ }
-+
-+ if (!PK11_IsFriendly(slot)) {
-+ rv = PK11_Authenticate(slot, PR_TRUE, wincx);
-+ if (rv != SECSuccess) {
-+ PK11_FreeSlot(slot);
-+ *slotptr = NULL;
-+ return CK_INVALID_HANDLE;
-+ }
-+ }
-+
-+ findTemplate[0].pValue = nickname;
-+ findTemplate[0].ulValueLen = PORT_Strlen(nickname);
-+ objID = pk11_FindObjectsByTemplate(slot,findTemplate,findCount,returnCount);
-+ if (objID == NULL) {
-+ /* PKCS #11 isn't clear on whether or not the NULL is
-+ * stored in the template.... try the find again with the
-+ * full null terminated string. */
-+ findTemplate[0].ulValueLen += 1;
-+ objID = pk11_FindObjectsByTemplate(slot,findTemplate,findCount,
-+ returnCount);
-+ if (objID == NULL) {
-+ /* Well that's the best we can do. It's just not here */
-+ /* what about faked nicknames? */
-+ PK11_FreeSlot(slot);
-+ *slotptr = NULL;
-+ *returnCount = 0;
-+ }
-+ }
-+
-+ return objID;
-+}
-+
-+static void
-+transfer_token_certs_to_collection(nssList *certList, NSSToken *token,
-+ nssPKIObjectCollection *collection)
-+{
-+ NSSCertificate **certs;
-+ PRUint32 i, count;
-+ NSSToken **tokens, **tp;
-+ count = nssList_Count(certList);
-+ if (count == 0) {
-+ return;
-+ }
-+ certs = nss_ZNEWARRAY(NULL, NSSCertificate *, count);
-+ if (!certs) {
-+ return;
-+ }
-+ nssList_GetArray(certList, (void **)certs, count);
-+ for (i=0; i<count; i++) {
-+ tokens = nssPKIObject_GetTokens(&certs[i]->object, NULL);
-+ if (tokens) {
-+ for (tp = tokens; *tp; tp++) {
-+ if (*tp == token) {
-+ nssPKIObjectCollection_AddObject(collection,
-+ (nssPKIObject *)certs[i]);
-+ }
-+ }
-+ nssTokenArray_Destroy(tokens);
-+ }
-+ /* *must* be a valid CERTCertificate, came from cache */
-+ CERT_DestroyCertificate(STAN_GetCERTCertificate(certs[i]));
-+ }
-+ nss_ZFreeIf(certs);
-+}
-+
-+CERTCertificate *
-+PK11_FindCertFromNickname(char *nickname, void *wincx)
-+{
-+#ifdef NSS_CLASSIC
-+ PK11SlotInfo *slot;
-+ int count=0;
-+ CK_OBJECT_HANDLE *certID = PK11_FindObjectsFromNickname(nickname,&slot,
-+ CKO_CERTIFICATE, &count, wincx);
-+ CERTCertificate *cert;
-+
-+ if (certID == CK_INVALID_HANDLE) return NULL;
-+ cert = PK11_MakeCertFromHandle(slot,certID[0],NULL);
-+ PK11_FreeSlot(slot);
-+ PORT_Free(certID);
-+ return cert;
-+#else
-+ PRStatus status;
-+ CERTCertificate *rvCert = NULL;
-+ NSSCertificate *cert = NULL;
-+ NSSCertificate **certs = NULL;
-+ NSSUsage usage;
-+ NSSToken *token;
-+ PK11SlotInfo *slot = NULL;
-+ char *nickCopy;
-+ char *delimit = NULL;
-+ char *tokenName;
-+ NSSTrustDomain *defaultTD = STAN_GetDefaultTrustDomain();
-+ usage.anyUsage = PR_TRUE;
-+ nickCopy = PORT_Strdup(nickname);
-+ if ((delimit = PORT_Strchr(nickCopy,':')) != NULL) {
-+ tokenName = nickCopy;
-+ nickname = delimit + 1;
-+ *delimit = '\0';
-+ /* find token by name */
-+ token = NSSTrustDomain_FindTokenByName(defaultTD, (NSSUTF8 *)tokenName);
-+ if (token) {
-+ slot = PK11_ReferenceSlot(token->pk11slot);
-+ }
-+ *delimit = ':';
-+ } else {
-+ slot = PK11_GetInternalKeySlot();
-+ token = PK11Slot_GetNSSToken(slot);
-+ }
-+ if (token) {
-+ nssList *certList;
-+ nssCryptokiObject **instances;
-+ nssPKIObjectCollection *collection;
-+ nssTokenSearchType tokenOnly = nssTokenSearchType_TokenOnly;
-+ if (!PK11_IsPresent(slot)) {
-+ goto loser;
-+ }
-+ if (!PK11_IsFriendly(slot)) {
-+ if (PK11_Authenticate(slot, PR_TRUE, wincx) != SECSuccess) {
-+ goto loser;
-+ }
-+ }
-+ collection = nssCertificateCollection_Create(defaultTD, NULL);
-+ if (!collection) {
-+ goto loser;
-+ }
-+ certList = nssList_Create(NULL, PR_FALSE);
-+ if (!certList) {
-+ nssPKIObjectCollection_Destroy(collection);
-+ goto loser;
-+ }
-+ (void)nssTrustDomain_GetCertsForNicknameFromCache(defaultTD,
-+ nickname,
-+ certList);
-+ transfer_token_certs_to_collection(certList, token, collection);
-+ instances = nssToken_FindCertificatesByNickname(token,
-+ NULL,
-+ nickname,
-+ tokenOnly,
-+ 0,
-+ &status);
-+ nssPKIObjectCollection_AddInstances(collection, instances, 0);
-+ nss_ZFreeIf(instances);
-+ /* if it wasn't found, repeat the process for email address */
-+ if (nssPKIObjectCollection_Count(collection) == 0 &&
-+ PORT_Strchr(nickname, '@') != NULL)
-+ {
-+ char* lowercaseName = CERT_FixupEmailAddr(nickname);
-+ if (lowercaseName) {
-+ (void)nssTrustDomain_GetCertsForEmailAddressFromCache(defaultTD,
-+ lowercaseName,
-+ certList);
-+ transfer_token_certs_to_collection(certList, token, collection);
-+ instances = nssToken_FindCertificatesByEmail(token,
-+ NULL,
-+ lowercaseName,
-+ tokenOnly,
-+ 0,
-+ &status);
-+ nssPKIObjectCollection_AddInstances(collection, instances, 0);
-+ nss_ZFreeIf(instances);
-+ PORT_Free(lowercaseName);
-+ }
-+ }
-+ certs = nssPKIObjectCollection_GetCertificates(collection,
-+ NULL, 0, NULL);
-+ nssPKIObjectCollection_Destroy(collection);
-+ if (certs) {
-+ cert = nssCertificateArray_FindBestCertificate(certs, NULL,
-+ &usage, NULL);
-+ if (cert) {
-+ rvCert = STAN_GetCERTCertificate(cert);
-+ }
-+ nssCertificateArray_Destroy(certs);
-+ }
-+ nssList_Destroy(certList);
-+ }
-+ if (slot) {
-+ PK11_FreeSlot(slot);
-+ }
-+ if (nickCopy) PORT_Free(nickCopy);
-+ return rvCert;
-+loser:
-+ if (slot) {
-+ PK11_FreeSlot(slot);
-+ }
-+ if (nickCopy) PORT_Free(nickCopy);
-+ return NULL;
-+#endif
-+}
-+
-+CERTCertList *
-+PK11_FindCertsFromNickname(char *nickname, void *wincx) {
-+#ifdef NSS_CLASSIC
-+ PK11SlotInfo *slot;
-+ int i,count = 0;
-+ CK_OBJECT_HANDLE *certID = PK11_FindObjectsFromNickname(nickname,&slot,
-+ CKO_CERTIFICATE, &count, wincx);
-+ CERTCertList *certList = NULL;
-+
-+ if (certID == NULL) return NULL;
-+
-+ certList= CERT_NewCertList();
-+
-+ for (i=0; i < count; i++) {
-+ CERTCertificate *cert = PK11_MakeCertFromHandle(slot,certID[i],NULL);
-+
-+ if (cert) CERT_AddCertToListTail(certList,cert);
-+ }
-+
-+ if (CERT_LIST_HEAD(certList) == NULL) {
-+ CERT_DestroyCertList(certList);
-+ certList = NULL;
-+ }
-+ PK11_FreeSlot(slot);
-+ PORT_Free(certID);
-+ return certList;
-+#else
-+ char *nickCopy;
-+ char *delimit = NULL;
-+ char *tokenName;
-+ int i;
-+ CERTCertList *certList = NULL;
-+ nssPKIObjectCollection *collection = NULL;
-+ NSSCertificate **foundCerts = NULL;
-+ NSSTrustDomain *defaultTD = STAN_GetDefaultTrustDomain();
-+ NSSCertificate *c;
-+ NSSToken *token;
-+ PK11SlotInfo *slot;
-+ nickCopy = PORT_Strdup(nickname);
-+ if ((delimit = PORT_Strchr(nickCopy,':')) != NULL) {
-+ tokenName = nickCopy;
-+ nickname = delimit + 1;
-+ *delimit = '\0';
-+ /* find token by name */
-+ token = NSSTrustDomain_FindTokenByName(defaultTD, (NSSUTF8 *)tokenName);
-+ if (token) {
-+ slot = PK11_ReferenceSlot(token->pk11slot);
-+ } else {
-+ slot = NULL;
-+ }
-+ *delimit = ':';
-+ } else {
-+ slot = PK11_GetInternalKeySlot();
-+ token = PK11Slot_GetNSSToken(slot);
-+ }
-+ if (token) {
-+ PRStatus status;
-+ nssList *nameList;
-+ nssCryptokiObject **instances;
-+ nssTokenSearchType tokenOnly = nssTokenSearchType_TokenOnly;
-+ if (!PK11_IsFriendly(slot)) {
-+ if (PK11_Authenticate(slot, PR_TRUE, wincx) != SECSuccess) {
-+ PK11_FreeSlot(slot);
-+ if (nickCopy) PORT_Free(nickCopy);
-+ return NULL;
-+ }
-+ }
-+ collection = nssCertificateCollection_Create(defaultTD, NULL);
-+ if (!collection) {
-+ PK11_FreeSlot(slot);
-+ if (nickCopy) PORT_Free(nickCopy);
-+ return NULL;
-+ }
-+ nameList = nssList_Create(NULL, PR_FALSE);
-+ if (!nameList) {
-+ PK11_FreeSlot(slot);
-+ if (nickCopy) PORT_Free(nickCopy);
-+ return NULL;
-+ }
-+ (void)nssTrustDomain_GetCertsForNicknameFromCache(defaultTD,
-+ nickname,
-+ nameList);
-+ transfer_token_certs_to_collection(nameList, token, collection);
-+ instances = nssToken_FindCertificatesByNickname(token,
-+ NULL,
-+ nickname,
-+ tokenOnly,
-+ 0,
-+ &status);
-+ nssPKIObjectCollection_AddInstances(collection, instances, 0);
-+ nss_ZFreeIf(instances);
-+ nssList_Destroy(nameList);
-+ foundCerts = nssPKIObjectCollection_GetCertificates(collection,
-+ NULL, 0, NULL);
-+ nssPKIObjectCollection_Destroy(collection);
-+ }
-+ if (slot) {
-+ PK11_FreeSlot(slot);
-+ }
-+ if (nickCopy) PORT_Free(nickCopy);
-+ if (foundCerts) {
-+ PRTime now = PR_Now();
-+ certList = CERT_NewCertList();
-+ for (i=0, c = *foundCerts; c; c = foundCerts[++i]) {
-+ CERTCertificate *certCert = STAN_GetCERTCertificate(c);
-+ if (certCert) {
-+ CERT_AddCertToListSorted(certList, certCert,
-+ CERT_SortCBValidity, &now);
-+ }
-+ }
-+ if (CERT_LIST_HEAD(certList) == NULL) {
-+ CERT_DestroyCertList(certList);
-+ certList = NULL;
-+ }
-+ nss_ZFreeIf(foundCerts);
-+ }
-+ return certList;
-+#endif
-+}
-+
-+/*
-+ * extract a key ID for a certificate...
-+ * NOTE: We call this function from PKCS11.c If we ever use
-+ * pkcs11 to extract the public key (we currently do not), this will break.
-+ */
-+SECItem *
-+PK11_GetPubIndexKeyID(CERTCertificate *cert) {
-+ SECKEYPublicKey *pubk;
-+ SECItem *newItem = NULL;
-+
-+ pubk = CERT_ExtractPublicKey(cert);
-+ if (pubk == NULL) return NULL;
-+
-+ switch (pubk->keyType) {
-+ case rsaKey:
-+ newItem = SECITEM_DupItem(&pubk->u.rsa.modulus);
-+ break;
-+ case dsaKey:
-+ newItem = SECITEM_DupItem(&pubk->u.dsa.publicValue);
-+ break;
-+ case dhKey:
-+ newItem = SECITEM_DupItem(&pubk->u.dh.publicValue);
-+ break;
-+ case ecKey:
-+#ifdef NSS_ENABLE_ECC
-+ newItem = SECITEM_DupItem(&pubk->u.ec.publicValue);
-+#endif /* NSS_ENABLE_ECC */
-+ break;
-+ case fortezzaKey:
-+ default:
-+ newItem = NULL; /* Fortezza Fix later... */
-+ }
-+ SECKEY_DestroyPublicKey(pubk);
-+ /* make hash of it */
-+ return newItem;
-+}
-+
-+/*
-+ * generate a CKA_ID from a certificate.
-+ */
-+SECItem *
-+pk11_mkcertKeyID(CERTCertificate *cert) {
-+ SECItem *pubKeyData = PK11_GetPubIndexKeyID(cert) ;
-+ SECItem *certCKA_ID;
-+
-+ if (pubKeyData == NULL) return NULL;
-+
-+ certCKA_ID = PK11_MakeIDFromPubKey(pubKeyData);
-+ SECITEM_FreeItem(pubKeyData,PR_TRUE);
-+ return certCKA_ID;
-+}
-+
-+
-+/*
-+ * Generate a CKA_ID from the relevant public key data. The CKA_ID is generated
-+ * from the pubKeyData by SHA1_Hashing it to produce a smaller CKA_ID (to make
-+ * smart cards happy.
-+ */
-+SECItem *
-+PK11_MakeIDFromPubKey(SECItem *pubKeyData) {
-+ PK11Context *context;
-+ SECItem *certCKA_ID;
-+ SECStatus rv;
-+
-+ context = PK11_CreateDigestContext(SEC_OID_SHA1);
-+ if (context == NULL) {
-+ return NULL;
-+ }
-+
-+ rv = PK11_DigestBegin(context);
-+ if (rv == SECSuccess) {
-+ rv = PK11_DigestOp(context,pubKeyData->data,pubKeyData->len);
-+ }
-+ if (rv != SECSuccess) {
-+ PK11_DestroyContext(context,PR_TRUE);
-+ return NULL;
-+ }
-+
-+ certCKA_ID = (SECItem *)PORT_Alloc(sizeof(SECItem));
-+ if (certCKA_ID == NULL) {
-+ PK11_DestroyContext(context,PR_TRUE);
-+ return NULL;
-+ }
-+
-+ certCKA_ID->len = SHA1_LENGTH;
-+ certCKA_ID->data = (unsigned char*)PORT_Alloc(certCKA_ID->len);
-+ if (certCKA_ID->data == NULL) {
-+ PORT_Free(certCKA_ID);
-+ PK11_DestroyContext(context,PR_TRUE);
-+ return NULL;
-+ }
-+
-+ rv = PK11_DigestFinal(context,certCKA_ID->data,&certCKA_ID->len,
-+ SHA1_LENGTH);
-+ PK11_DestroyContext(context,PR_TRUE);
-+ if (rv != SECSuccess) {
-+ SECITEM_FreeItem(certCKA_ID,PR_TRUE);
-+ return NULL;
-+ }
-+
-+ return certCKA_ID;
-+}
-+
-+extern const NSSError NSS_ERROR_INVALID_CERTIFICATE;
-+
-+/*
-+ * Write the cert into the token.
-+ */
-+SECStatus
-+PK11_ImportCert(PK11SlotInfo *slot, CERTCertificate *cert,
-+ CK_OBJECT_HANDLE key, char *nickname, PRBool includeTrust) {
-+#ifdef NSS_CLASSIC
-+ int len = 0;
-+ SECItem *keyID = pk11_mkcertKeyID(cert);
-+ CK_ATTRIBUTE keyAttrs[] = {
-+ { CKA_LABEL, NULL, 0},
-+ { CKA_SUBJECT, NULL, 0},
-+ };
-+ CK_OBJECT_CLASS certc = CKO_CERTIFICATE;
-+ CK_CERTIFICATE_TYPE certType = CKC_X_509;
-+ CK_OBJECT_HANDLE certID;
-+ CK_SESSION_HANDLE rwsession;
-+ CK_BBOOL cktrue = CK_TRUE;
-+ SECStatus rv = SECFailure;
-+ CK_ATTRIBUTE certAttrs[] = {
-+ { CKA_ID, NULL, 0 },
-+ { CKA_LABEL, NULL, 0},
-+ { CKA_CLASS, NULL, 0},
-+ { CKA_TOKEN, NULL, 0},
-+ { CKA_CERTIFICATE_TYPE, NULL, 0},
-+ { CKA_SUBJECT, NULL, 0},
-+ { CKA_ISSUER, NULL, 0},
-+ { CKA_SERIAL_NUMBER, NULL, 0},
-+ { CKA_VALUE, NULL, 0},
-+ { CKA_NETSCAPE_TRUST, NULL, 0},
-+ { CKA_NETSCAPE_EMAIL, NULL, 0},
-+ };
-+ int certCount = sizeof(certAttrs)/sizeof(certAttrs[0]), keyCount = 2;
-+ int realCount = 0;
-+ CK_ATTRIBUTE *attrs;
-+ CK_RV crv;
-+ SECCertUsage *certUsage = NULL;
-+ SECItem derSerial = { 0 };
-+ NSSToken *token;
-+
-+ if (keyID == NULL) {
-+ PORT_SetError(SEC_ERROR_ADDING_CERT);
-+ return rv;
-+ }
-+
-+ len = ((nickname) ? PORT_Strlen(nickname) : 0);
-+
-+ attrs = certAttrs;
-+ PK11_SETATTRS(attrs,CKA_ID, keyID->data, keyID->len); attrs++;
-+ if (nickname) {
-+ PK11_SETATTRS(attrs,CKA_LABEL, nickname, len ); attrs++;
-+ }
-+ PK11_SETATTRS(attrs,CKA_CLASS, &certc, sizeof(certc) ); attrs++;
-+ PK11_SETATTRS(attrs,CKA_TOKEN, &cktrue, sizeof(cktrue) ); attrs++;
-+ PK11_SETATTRS(attrs,CKA_CERTIFICATE_TYPE, &certType,
-+ sizeof(certType)); attrs++;
-+ PK11_SETATTRS(attrs,CKA_SUBJECT, cert->derSubject.data,
-+ cert->derSubject.len ); attrs++;
-+ PK11_SETATTRS(attrs,CKA_ISSUER, cert->derIssuer.data,
-+ cert->derIssuer.len ); attrs++;
-+ if (PR_TRUE) {
-+ /* CERTCertificate stores serial numbers decoded. I need the DER
-+ * here. sigh.
-+ */
-+ CERT_SerialNumberFromDERCert(&cert->derCert, &derSerial);
-+ PK11_SETATTRS(attrs,CKA_SERIAL_NUMBER, derSerial.data, derSerial.len);
-+ attrs++;
-+ }
-+ PK11_SETATTRS(attrs,CKA_VALUE, cert->derCert.data,
-+ cert->derCert.len); attrs++;
-+ if (includeTrust && PK11_IsInternal(slot)) {
-+ certUsage = (SECCertUsage*)PORT_Alloc(sizeof(SECCertUsage));
-+ if(!certUsage) {
-+ SECITEM_FreeItem(keyID,PR_TRUE);
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ return rv;
-+ }
-+ *certUsage = certUsageUserCertImport;
-+ PK11_SETATTRS(attrs,CKA_NETSCAPE_TRUST, certUsage,
-+ sizeof(SECCertUsage));
-+ attrs++;
-+ if (cert->emailAddr && cert->emailAddr[0]) {
-+ PK11_SETATTRS(attrs,CKA_NETSCAPE_EMAIL, cert->emailAddr,
-+ PORT_Strlen(cert->emailAddr);
-+ attrs++;
-+ }
-+ }
-+ realCount = attrs - certAttrs;
-+ PORT_Assert(realCount <= certCount);
-+
-+ attrs = keyAttrs;
-+ if(nickname) {
-+ PK11_SETATTRS(attrs,CKA_LABEL, nickname, len ); attrs++;
-+ }
-+ PK11_SETATTRS(attrs,CKA_SUBJECT, cert->derSubject.data,
-+ cert->derSubject.len );
-+
-+ if(!nickname) {
-+ certCount--;
-+ keyCount--;
-+ }
-+
-+ rwsession = PK11_GetRWSession(slot);
-+ if (key != CK_INVALID_HANDLE) {
-+ crv = PK11_GETTAB(slot)->C_SetAttributeValue(rwsession,key,keyAttrs,
-+ keyCount);
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ goto done;
-+ }
-+ }
-+
-+ crv = PK11_GETTAB(slot)->
-+ C_CreateObject(rwsession,certAttrs,realCount,&certID);
-+ if (crv == CKR_OK) {
-+ rv = SECSuccess;
-+ } else {
-+ PORT_SetError( PK11_MapError(crv) );
-+ }
-+
-+ if (!cert->nickname && nickname) {
-+ cert->nickname = PORT_ArenaStrdup(cert->arena, nickname);
-+ }
-+
-+ cert->pkcs11ID = certID;
-+ cert->dbhandle = STAN_GetDefaultTrustDomain();
-+ if (cert->slot == NULL) {
-+ cert->slot = PK11_ReferenceSlot(slot);
-+ cert->series = slot->series;
-+ cert->ownSlot = PR_TRUE;
-+ if (cert->nssCertificate) {
-+ nssCryptokiInstance *instance;
-+ NSSCertificate *c = cert->nssCertificate;
-+ instance = nss_ZNEW(c->object.arena, nssCryptokiInstance);
-+ instance->token = slot->nssToken;
-+ instance->handle = cert->pkcs11ID;
-+ instance->isTokenObject = PR_TRUE;
-+ nssPKIObject_AddInstance(&c->object, instance);
-+ } else {
-+ cert->nssCertificate = STAN_GetNSSCertificate(cert);
-+ }
-+ }
-+ cert->trust = nssTrust_GetCERTCertTrustForCert(cert->nssCertificate, cert);
-+ token = PK11Slot_GetNSSToken(slot);
-+
-+done:
-+ if (derSerial.data) PORT_Free(derSerial.data);
-+ SECITEM_FreeItem(keyID,PR_TRUE);
-+ PK11_RestoreROSession(slot,rwsession);
-+ if(certUsage) {
-+ PORT_Free(certUsage);
-+ }
-+ return rv;
-+#else
-+ PRStatus status;
-+ NSSCertificate *c;
-+ nssCryptokiObject *keyobj, *certobj;
-+ NSSToken *token = PK11Slot_GetNSSToken(slot);
-+ SECItem *keyID = pk11_mkcertKeyID(cert);
-+ char *emailAddr = NULL;
-+
-+ if (keyID == NULL) {
-+ goto loser;
-+ }
-+
-+ if (PK11_IsInternal(slot) && cert->emailAddr && cert->emailAddr[0]) {
-+ emailAddr = cert->emailAddr;
-+ }
-+
-+ /* need to get the cert as a stan cert */
-+ if (cert->nssCertificate) {
-+ c = cert->nssCertificate;
-+ } else {
-+ c = STAN_GetNSSCertificate(cert);
-+ }
-+
-+ if (c->object.cryptoContext) {
-+ /* Delete the temp instance */
-+ NSSCryptoContext *cc = c->object.cryptoContext;
-+ nssCertificateStore_Lock(cc->certStore);
-+ nssCertificateStore_RemoveCertLOCKED(cc->certStore, c);
-+ nssCertificateStore_Unlock(cc->certStore);
-+ c->object.cryptoContext = NULL;
-+ cert->istemp = PR_FALSE;
-+ cert->isperm = PR_TRUE;
-+ }
-+
-+ /* set the id for the cert */
-+ nssItem_Create(c->object.arena, &c->id, keyID->len, keyID->data);
-+ if (!c->id.data) {
-+ goto loser;
-+ }
-+
-+ if (key != CK_INVALID_HANDLE) {
-+ /* create an object for the key, ... */
-+ keyobj = nss_ZNEW(NULL, nssCryptokiObject);
-+ if (!keyobj) {
-+ goto loser;
-+ }
-+ keyobj->token = nssToken_AddRef(token);
-+ keyobj->handle = key;
-+ keyobj->isTokenObject = PR_TRUE;
-+
-+ /* ... in order to set matching attributes for the key */
-+ status = nssCryptokiPrivateKey_SetCertificate(keyobj, NULL, nickname,
-+ &c->id, &c->subject);
-+ nssCryptokiObject_Destroy(keyobj);
-+ if (status != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ }
-+
-+ /* do the token import */
-+ certobj = nssToken_ImportCertificate(token, NULL,
-+ NSSCertificateType_PKIX,
-+ &c->id,
-+ nickname,
-+ &c->encoding,
-+ &c->issuer,
-+ &c->subject,
-+ &c->serial,
-+ emailAddr,
-+ PR_TRUE);
-+ if (!certobj) {
-+ if (NSS_GetError() == NSS_ERROR_INVALID_CERTIFICATE) {
-+ PORT_SetError(SEC_ERROR_REUSED_ISSUER_AND_SERIAL);
-+ SECITEM_FreeItem(keyID,PR_TRUE);
-+ return SECFailure;
-+ }
-+ goto loser;
-+ }
-+ /* add the new instance to the cert, force an update of the
-+ * CERTCertificate, and finish
-+ */
-+ nssPKIObject_AddInstance(&c->object, certobj);
-+ nssTrustDomain_AddCertsToCache(STAN_GetDefaultTrustDomain(), &c, 1);
-+ (void)STAN_ForceCERTCertificateUpdate(c);
-+ SECITEM_FreeItem(keyID,PR_TRUE);
-+ return SECSuccess;
-+loser:
-+ SECITEM_FreeItem(keyID,PR_TRUE);
-+ PORT_SetError(SEC_ERROR_ADDING_CERT);
-+ return SECFailure;
-+#endif
-+}
-+
-+SECStatus
-+PK11_ImportDERCert(PK11SlotInfo *slot, SECItem *derCert,
-+ CK_OBJECT_HANDLE key, char *nickname, PRBool includeTrust) {
-+ CERTCertificate *cert;
-+ SECStatus rv;
-+
-+ cert = CERT_NewTempCertificate(CERT_GetDefaultCertDB(),
-+ derCert, NULL, PR_FALSE, PR_TRUE);
-+ if (cert == NULL) return SECFailure;
-+
-+ rv = PK11_ImportCert(slot, cert, key, nickname, includeTrust);
-+ CERT_DestroyCertificate (cert);
-+ return rv;
-+}
-+
-+/*
-+ * get a certificate handle, look at the cached handle first..
-+ */
-+CK_OBJECT_HANDLE
-+pk11_getcerthandle(PK11SlotInfo *slot, CERTCertificate *cert,
-+ CK_ATTRIBUTE *theTemplate,int tsize)
-+{
-+ CK_OBJECT_HANDLE certh;
-+
-+ if (cert->slot == slot) {
-+ certh = cert->pkcs11ID;
-+ if ((certh == CK_INVALID_HANDLE) ||
-+ (cert->series != slot->series)) {
-+ certh = pk11_FindObjectByTemplate(slot,theTemplate,tsize);
-+ cert->pkcs11ID = certh;
-+ cert->series = slot->series;
-+ }
-+ } else {
-+ certh = pk11_FindObjectByTemplate(slot,theTemplate,tsize);
-+ }
-+ return certh;
-+}
-+
-+/*
-+ * return the private key From a given Cert
-+ */
-+SECKEYPrivateKey *
-+PK11_FindPrivateKeyFromCert(PK11SlotInfo *slot, CERTCertificate *cert,
-+ void *wincx) {
-+ CK_OBJECT_CLASS certClass = CKO_CERTIFICATE;
-+ CK_ATTRIBUTE theTemplate[] = {
-+ { CKA_VALUE, NULL, 0 },
-+ { CKA_CLASS, NULL, 0 }
-+ };
-+ /* if you change the array, change the variable below as well */
-+ int tsize = sizeof(theTemplate)/sizeof(theTemplate[0]);
-+ CK_OBJECT_HANDLE certh;
-+ CK_OBJECT_HANDLE keyh;
-+ CK_ATTRIBUTE *attrs = theTemplate;
-+ SECStatus rv;
-+
-+ PK11_SETATTRS(attrs, CKA_VALUE, cert->derCert.data,
-+ cert->derCert.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_CLASS, &certClass, sizeof(certClass));
-+
-+ /*
-+ * issue the find
-+ */
-+ rv = PK11_Authenticate(slot, PR_TRUE, wincx);
-+ if (rv != SECSuccess) {
-+ return NULL;
-+ }
-+
-+ certh = pk11_getcerthandle(slot,cert,theTemplate,tsize);
-+ if (certh == CK_INVALID_HANDLE) {
-+ return NULL;
-+ }
-+ keyh = PK11_MatchItem(slot,certh,CKO_PRIVATE_KEY);
-+ if (keyh == CK_INVALID_HANDLE) { return NULL; }
-+ return PK11_MakePrivKey(slot, nullKey, PR_TRUE, keyh, wincx);
-+}
-+
-+
-+/*
-+ * return the private key with the given ID
-+ */
-+static CK_OBJECT_HANDLE
-+pk11_FindPrivateKeyFromCertID(PK11SlotInfo *slot, SECItem *keyID) {
-+ CK_OBJECT_CLASS privKey = CKO_PRIVATE_KEY;
-+ CK_ATTRIBUTE theTemplate[] = {
-+ { CKA_ID, NULL, 0 },
-+ { CKA_CLASS, NULL, 0 },
-+ };
-+ /* if you change the array, change the variable below as well */
-+ int tsize = sizeof(theTemplate)/sizeof(theTemplate[0]);
-+ CK_ATTRIBUTE *attrs = theTemplate;
-+
-+ PK11_SETATTRS(attrs, CKA_ID, keyID->data, keyID->len ); attrs++;
-+ PK11_SETATTRS(attrs, CKA_CLASS, &privKey, sizeof(privKey));
-+
-+ return pk11_FindObjectByTemplate(slot,theTemplate,tsize);
-+}
-+
-+/*
-+ * import a cert for a private key we have already generated. Set the label
-+ * on both to be the nickname. This is for the Key Gen, orphaned key case.
-+ */
-+PK11SlotInfo *
-+PK11_KeyForCertExists(CERTCertificate *cert, CK_OBJECT_HANDLE *keyPtr,
-+ void *wincx) {
-+ PK11SlotList *list;
-+ PK11SlotListElement *le;
-+ SECItem *keyID;
-+ CK_OBJECT_HANDLE key;
-+ PK11SlotInfo *slot = NULL;
-+ SECStatus rv;
-+
-+ keyID = pk11_mkcertKeyID(cert);
-+ /* get them all! */
-+ list = PK11_GetAllTokens(CKM_INVALID_MECHANISM,PR_FALSE,PR_TRUE,wincx);
-+ if ((keyID == NULL) || (list == NULL)) {
-+ if (keyID) SECITEM_FreeItem(keyID,PR_TRUE);
-+ if (list) PK11_FreeSlotList(list);
-+ return NULL;
-+ }
-+
-+ /* Look for the slot that holds the Key */
-+ for (le = list->head ; le; le = le->next) {
-+ rv = PK11_Authenticate(le->slot, PR_TRUE, wincx);
-+ if (rv != SECSuccess) continue;
-+
-+ key = pk11_FindPrivateKeyFromCertID(le->slot,keyID);
-+ if (key != CK_INVALID_HANDLE) {
-+ slot = PK11_ReferenceSlot(le->slot);
-+ if (keyPtr) *keyPtr = key;
-+ break;
-+ }
-+ }
-+
-+ SECITEM_FreeItem(keyID,PR_TRUE);
-+ PK11_FreeSlotList(list);
-+ return slot;
-+
-+}
-+/*
-+ * import a cert for a private key we have already generated. Set the label
-+ * on both to be the nickname. This is for the Key Gen, orphaned key case.
-+ */
-+PK11SlotInfo *
-+PK11_KeyForDERCertExists(SECItem *derCert, CK_OBJECT_HANDLE *keyPtr,
-+ void *wincx) {
-+ CERTCertificate *cert;
-+ PK11SlotInfo *slot = NULL;
-+
-+ /* letting this use go -- the only thing that the cert is used for is
-+ * to get the ID attribute.
-+ */
-+ cert = CERT_DecodeDERCertificate(derCert, PR_FALSE, NULL);
-+ if (cert == NULL) return NULL;
-+
-+ slot = PK11_KeyForCertExists(cert, keyPtr, wincx);
-+ CERT_DestroyCertificate (cert);
-+ return slot;
-+}
-+
-+PK11SlotInfo *
-+PK11_ImportCertForKey(CERTCertificate *cert, char *nickname,void *wincx) {
-+ PK11SlotInfo *slot = NULL;
-+ CK_OBJECT_HANDLE key;
-+
-+ slot = PK11_KeyForCertExists(cert,&key,wincx);
-+
-+ if (slot) {
-+ if (PK11_ImportCert(slot,cert,key,nickname,PR_FALSE) != SECSuccess) {
-+ PK11_FreeSlot(slot);
-+ slot = NULL;
-+ }
-+ } else {
-+ PORT_SetError(SEC_ERROR_ADDING_CERT);
-+ }
-+
-+ return slot;
-+}
-+
-+PK11SlotInfo *
-+PK11_ImportDERCertForKey(SECItem *derCert, char *nickname,void *wincx) {
-+ CERTCertificate *cert;
-+ PK11SlotInfo *slot = NULL;
-+
-+ cert = CERT_NewTempCertificate(CERT_GetDefaultCertDB(),
-+ derCert, NULL, PR_FALSE, PR_TRUE);
-+ if (cert == NULL) return NULL;
-+
-+ slot = PK11_ImportCertForKey(cert, nickname, wincx);
-+ CERT_DestroyCertificate (cert);
-+ return slot;
-+}
-+
-+static CK_OBJECT_HANDLE
-+pk11_FindCertObjectByTemplate(PK11SlotInfo **slotPtr,
-+ CK_ATTRIBUTE *searchTemplate, int count, void *wincx) {
-+ PK11SlotList *list;
-+ PK11SlotListElement *le;
-+ CK_OBJECT_HANDLE certHandle = CK_INVALID_HANDLE;
-+ PK11SlotInfo *slot = NULL;
-+ SECStatus rv;
-+
-+ *slotPtr = NULL;
-+
-+ /* get them all! */
-+ list = PK11_GetAllTokens(CKM_INVALID_MECHANISM,PR_FALSE,PR_TRUE,wincx);
-+ if (list == NULL) {
-+ if (list) PK11_FreeSlotList(list);
-+ return CK_INVALID_HANDLE;
-+ }
-+
-+
-+ /* Look for the slot that holds the Key */
-+ for (le = list->head ; le; le = le->next) {
-+ if (!PK11_IsFriendly(le->slot)) {
-+ rv = PK11_Authenticate(le->slot, PR_TRUE, wincx);
-+ if (rv != SECSuccess) continue;
-+ }
-+
-+ certHandle = pk11_FindObjectByTemplate(le->slot,searchTemplate,count);
-+ if (certHandle != CK_INVALID_HANDLE) {
-+ slot = PK11_ReferenceSlot(le->slot);
-+ break;
-+ }
-+ }
-+
-+ PK11_FreeSlotList(list);
-+
-+ if (slot == NULL) {
-+ return CK_INVALID_HANDLE;
-+ }
-+ *slotPtr = slot;
-+ return certHandle;
-+}
-+
-+CERTCertificate *
-+PK11_FindCertByIssuerAndSNOnToken(PK11SlotInfo *slot,
-+ CERTIssuerAndSN *issuerSN, void *wincx)
-+{
-+ CERTCertificate *rvCert = NULL;
-+ NSSCertificate *cert = NULL;
-+ NSSDER issuer, serial;
-+ NSSTrustDomain *td = STAN_GetDefaultTrustDomain();
-+ NSSToken *token = slot->nssToken;
-+ nssSession *session;
-+ nssCryptokiObject *instance = NULL;
-+ nssPKIObject *object = NULL;
-+ SECItem *derSerial;
-+ PRStatus status;
-+
-+ /* Paranoia */
-+ if (token == NULL) {
-+ PORT_SetError(SEC_ERROR_NO_TOKEN);
-+ return NULL;
-+ }
-+
-+
-+ /* PKCS#11 needs to use DER-encoded serial numbers. Create a
-+ * CERTIssuerAndSN that actually has the encoded value and pass that
-+ * to PKCS#11 (and the crypto context).
-+ */
-+ derSerial = SEC_ASN1EncodeItem(NULL, NULL,
-+ &issuerSN->serialNumber,
-+ SEC_IntegerTemplate);
-+ if (!derSerial) {
-+ return NULL;
-+ }
-+
-+ NSSITEM_FROM_SECITEM(&issuer, &issuerSN->derIssuer);
-+ NSSITEM_FROM_SECITEM(&serial, derSerial);
-+
-+ session = nssToken_GetDefaultSession(token);
-+ if (!session) {
-+ goto loser;
-+ }
-+
-+ instance = nssToken_FindCertificateByIssuerAndSerialNumber(token,session,
-+ &issuer, &serial, nssTokenSearchType_TokenForced, &status);
-+
-+ SECITEM_FreeItem(derSerial, PR_TRUE);
-+
-+ if (!instance) {
-+ goto loser;
-+ }
-+ object = nssPKIObject_Create(NULL, instance, td, NULL);
-+ if (!object) {
-+ goto loser;
-+ }
-+ instance = NULL; /* adopted by the previous call */
-+ cert = nssCertificate_Create(object);
-+ if (!cert) {
-+ goto loser;
-+ }
-+ object = NULL; /* adopted by the previous call */
-+ nssTrustDomain_AddCertsToCache(td, &cert,1);
-+ rvCert = STAN_GetCERTCertificate(cert);
-+ if (!rvCert) {
-+ goto loser;
-+ }
-+ return rvCert;
-+
-+loser:
-+ if (instance) {
-+ nssCryptokiObject_Destroy(instance);
-+ }
-+ if (object) {
-+ nssPKIObject_Destroy(object);
-+ }
-+ if (cert) {
-+ nssCertificate_Destroy(cert);
-+ }
-+ return NULL;
-+}
-+
-+/*
-+ * We're looking for a cert which we have the private key for that's on the
-+ * list of recipients. This searches one slot.
-+ * this is the new version for NSS SMIME code
-+ * this stuff should REALLY be in the SMIME code, but some things in here are not public
-+ * (they should be!)
-+ */
-+static CERTCertificate *
-+pk11_FindCertObjectByRecipientNew(PK11SlotInfo *slot, NSSCMSRecipient **recipientlist, int *rlIndex, void *pwarg)
-+{
-+ NSSCMSRecipient *ri = NULL;
-+ int i;
-+
-+ for (i=0; (ri = recipientlist[i]) != NULL; i++) {
-+ CERTCertificate *cert = NULL;
-+ if (ri->kind == RLSubjKeyID) {
-+ SECItem *derCert = cert_FindDERCertBySubjectKeyID(ri->id.subjectKeyID);
-+ if (derCert) {
-+ cert = PK11_FindCertFromDERCertItem(slot, derCert, pwarg);
-+ SECITEM_FreeItem(derCert, PR_TRUE);
-+ }
-+ } else {
-+ cert = PK11_FindCertByIssuerAndSNOnToken(slot, ri->id.issuerAndSN,
-+ pwarg);
-+ }
-+ if (cert) {
-+ /* this isn't our cert */
-+ if ((cert->trust == NULL) ||
-+ ((cert->trust->emailFlags & CERTDB_USER) != CERTDB_USER)) {
-+ CERT_DestroyCertificate(cert);
-+ continue;
-+ }
-+ ri->slot = PK11_ReferenceSlot(slot);
-+ *rlIndex = i;
-+ return cert;
-+ }
-+ }
-+ *rlIndex = -1;
-+ return NULL;
-+}
-+
-+/*
-+ * This function is the same as above, but it searches all the slots.
-+ * this is the new version for NSS SMIME code
-+ * this stuff should REALLY be in the SMIME code, but some things in here are not public
-+ * (they should be!)
-+ */
-+static CERTCertificate *
-+pk11_AllFindCertObjectByRecipientNew(NSSCMSRecipient **recipientlist, void *wincx, int *rlIndex)
-+{
-+ PK11SlotList *list;
-+ PK11SlotListElement *le;
-+ CERTCertificate *cert = NULL;
-+ SECStatus rv;
-+
-+ /* get them all! */
-+ list = PK11_GetAllTokens(CKM_INVALID_MECHANISM,PR_FALSE,PR_TRUE,wincx);
-+ if (list == NULL) {
-+ if (list) PK11_FreeSlotList(list);
-+ return CK_INVALID_HANDLE;
-+ }
-+
-+ /* Look for the slot that holds the Key */
-+ for (le = list->head ; le; le = le->next) {
-+ if ( !PK11_IsFriendly(le->slot)) {
-+ rv = PK11_Authenticate(le->slot, PR_TRUE, wincx);
-+ if (rv != SECSuccess) continue;
-+ }
-+
-+ cert = pk11_FindCertObjectByRecipientNew(le->slot,
-+ recipientlist, rlIndex, wincx);
-+ if (cert)
-+ break;
-+ }
-+
-+ PK11_FreeSlotList(list);
-+
-+ return cert;
-+}
-+
-+/*
-+ * We're looking for a cert which we have the private key for that's on the
-+ * list of recipients. This searches one slot.
-+ */
-+static CERTCertificate *
-+pk11_FindCertObjectByRecipient(PK11SlotInfo *slot,
-+ SEC_PKCS7RecipientInfo **recipientArray,
-+ SEC_PKCS7RecipientInfo **rip, void *pwarg)
-+{
-+ SEC_PKCS7RecipientInfo *ri = NULL;
-+ int i;
-+
-+ for (i=0; (ri = recipientArray[i]) != NULL; i++) {
-+ CERTCertificate *cert;
-+
-+ cert = PK11_FindCertByIssuerAndSNOnToken(slot, ri->issuerAndSN,
-+ pwarg);
-+ if (cert) {
-+ /* this isn't our cert */
-+ if ((cert->trust == NULL) ||
-+ ((cert->trust->emailFlags & CERTDB_USER) != CERTDB_USER)) {
-+ CERT_DestroyCertificate(cert);
-+ continue;
-+ }
-+ *rip = ri;
-+ return cert;
-+ }
-+
-+ }
-+ *rip = NULL;
-+ return NULL;
-+}
-+
-+/*
-+ * This function is the same as above, but it searches all the slots.
-+ */
-+static CERTCertificate *
-+pk11_AllFindCertObjectByRecipient(PK11SlotInfo **slotPtr,
-+ SEC_PKCS7RecipientInfo **recipientArray,SEC_PKCS7RecipientInfo **rip,
-+ void *wincx) {
-+ PK11SlotList *list;
-+ PK11SlotListElement *le;
-+ CERTCertificate * cert = NULL;
-+ PK11SlotInfo *slot = NULL;
-+ SECStatus rv;
-+
-+ *slotPtr = NULL;
-+
-+ /* get them all! */
-+ list = PK11_GetAllTokens(CKM_INVALID_MECHANISM,PR_FALSE,PR_TRUE,wincx);
-+ if (list == NULL) {
-+ if (list) PK11_FreeSlotList(list);
-+ return CK_INVALID_HANDLE;
-+ }
-+
-+ *rip = NULL;
-+
-+ /* Look for the slot that holds the Key */
-+ for (le = list->head ; le; le = le->next) {
-+ if ( !PK11_IsFriendly(le->slot)) {
-+ rv = PK11_Authenticate(le->slot, PR_TRUE, wincx);
-+ if (rv != SECSuccess) continue;
-+ }
-+
-+ cert = pk11_FindCertObjectByRecipient(le->slot, recipientArray,
-+ rip, wincx);
-+ if (cert) {
-+ slot = PK11_ReferenceSlot(le->slot);
-+ break;
-+ }
-+ }
-+
-+ PK11_FreeSlotList(list);
-+
-+ if (slot == NULL) {
-+ return NULL;
-+ }
-+ *slotPtr = slot;
-+ PORT_Assert(cert != NULL);
-+ return cert;
-+}
-+
-+/*
-+ * We need to invert the search logic for PKCS 7 because if we search for
-+ * each cert on the list over all the slots, we wind up with lots of spurious
-+ * password prompts. This way we get only one password prompt per slot, at
-+ * the max, and most of the time we can find the cert, and only prompt for
-+ * the key...
-+ */
-+CERTCertificate *
-+PK11_FindCertAndKeyByRecipientList(PK11SlotInfo **slotPtr,
-+ SEC_PKCS7RecipientInfo **array, SEC_PKCS7RecipientInfo **rip,
-+ SECKEYPrivateKey**privKey, void *wincx)
-+{
-+ CERTCertificate *cert = NULL;
-+ SECStatus rv;
-+
-+ *privKey = NULL;
-+ *slotPtr = NULL;
-+ cert = pk11_AllFindCertObjectByRecipient(slotPtr,array,rip,wincx);
-+ if (!cert) {
-+ return NULL;
-+ }
-+
-+ rv = PK11_Authenticate(*slotPtr,PR_TRUE,wincx);
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+
-+ *privKey = PK11_FindKeyByAnyCert(cert, wincx);
-+ if (*privKey == NULL) {
-+ goto loser;
-+ }
-+
-+ return cert;
-+loser:
-+ if (cert) CERT_DestroyCertificate(cert);
-+ if (*slotPtr) PK11_FreeSlot(*slotPtr);
-+ *slotPtr = NULL;
-+ return NULL;
-+}
-+
-+static PRCallOnceType keyIDHashCallOnce;
-+
-+static PRStatus PR_CALLBACK
-+pk11_keyIDHash_populate(void *wincx)
-+{
-+ CERTCertList *certList;
-+ CERTCertListNode *node = NULL;
-+ SECItem subjKeyID = {siBuffer, NULL, 0};
-+
-+ certList = PK11_ListCerts(PK11CertListUser, wincx);
-+ if (!certList) {
-+ return PR_FAILURE;
-+ }
-+
-+ for (node = CERT_LIST_HEAD(certList);
-+ !CERT_LIST_END(node, certList);
-+ node = CERT_LIST_NEXT(node)) {
-+ if (CERT_FindSubjectKeyIDExtension(node->cert,
-+ &subjKeyID) == SECSuccess &&
-+ subjKeyID.data != NULL) {
-+ cert_AddSubjectKeyIDMapping(&subjKeyID, node->cert);
-+ SECITEM_FreeItem(&subjKeyID, PR_FALSE);
-+ }
-+ }
-+ CERT_DestroyCertList(certList);
-+ return PR_SUCCESS;
-+}
-+
-+/*
-+ * This is the new version of the above function for NSS SMIME code
-+ * this stuff should REALLY be in the SMIME code, but some things in here are not public
-+ * (they should be!)
-+ */
-+int
-+PK11_FindCertAndKeyByRecipientListNew(NSSCMSRecipient **recipientlist, void *wincx)
-+{
-+ CERTCertificate *cert;
-+ NSSCMSRecipient *rl;
-+ PRStatus rv;
-+ int rlIndex;
-+
-+ rv = PR_CallOnceWithArg(&keyIDHashCallOnce, pk11_keyIDHash_populate, wincx);
-+ if (rv != PR_SUCCESS)
-+ return -1;
-+
-+ cert = pk11_AllFindCertObjectByRecipientNew(recipientlist, wincx, &rlIndex);
-+ if (!cert) {
-+ return -1;
-+ }
-+
-+ rl = recipientlist[rlIndex];
-+
-+ /* at this point, rl->slot is set */
-+
-+ /* authenticate to the token */
-+ if (PK11_Authenticate(rl->slot, PR_TRUE, wincx) != SECSuccess) {
-+ goto loser;
-+ }
-+
-+ rl->privkey = PK11_FindKeyByAnyCert(cert, wincx);
-+ if (rl->privkey == NULL) {
-+ goto loser;
-+ }
-+
-+ /* make a cert from the cert handle */
-+ rl->cert = cert;
-+ return rlIndex;
-+
-+loser:
-+ if (cert) CERT_DestroyCertificate(cert);
-+ if (rl->slot) PK11_FreeSlot(rl->slot);
-+ rl->slot = NULL;
-+ return -1;
-+}
-+
-+CERTCertificate *
-+PK11_FindCertByIssuerAndSN(PK11SlotInfo **slotPtr, CERTIssuerAndSN *issuerSN,
-+ void *wincx)
-+{
-+#ifdef NSS_CLASSIC
-+ CK_OBJECT_HANDLE certHandle;
-+ CERTCertificate *cert = NULL;
-+ CK_OBJECT_CLASS certClass = CKO_CERTIFICATE;
-+ CK_ATTRIBUTE searchTemplate[] = {
-+ { CKA_CLASS, NULL, 0 },
-+ { CKA_ISSUER, NULL, 0 },
-+ { CKA_SERIAL_NUMBER, NULL, 0}
-+ };
-+ int count = sizeof(searchTemplate)/sizeof(CK_ATTRIBUTE);
-+ CK_ATTRIBUTE *attrs = searchTemplate;
-+
-+ PK11_SETATTRS(attrs, CKA_CLASS, &certClass, sizeof(certClass)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_ISSUER, issuerSN->derIssuer.data,
-+ issuerSN->derIssuer.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_SERIAL_NUMBER, issuerSN->serialNumber.data,
-+ issuerSN->serialNumber.len);
-+
-+ certHandle = pk11_FindCertObjectByTemplate
-+ (slotPtr,searchTemplate,count,wincx);
-+ if (certHandle == CK_INVALID_HANDLE) {
-+ return NULL;
-+ }
-+ cert = PK11_MakeCertFromHandle(*slotPtr,certHandle,NULL);
-+ if (cert == NULL) {
-+ PK11_FreeSlot(*slotPtr);
-+ return NULL;
-+ }
-+ return cert;
-+#else
-+ CERTCertificate *rvCert = NULL;
-+ NSSCertificate *cert;
-+ NSSDER issuer, serial;
-+ NSSCryptoContext *cc;
-+ SECItem *derSerial;
-+
-+ if (slotPtr) *slotPtr = NULL;
-+
-+ /* PKCS#11 needs to use DER-encoded serial numbers. Create a
-+ * CERTIssuerAndSN that actually has the encoded value and pass that
-+ * to PKCS#11 (and the crypto context).
-+ */
-+ derSerial = SEC_ASN1EncodeItem(NULL, NULL,
-+ &issuerSN->serialNumber,
-+ SEC_IntegerTemplate);
-+ if (!derSerial) {
-+ return NULL;
-+ }
-+
-+ NSSITEM_FROM_SECITEM(&issuer, &issuerSN->derIssuer);
-+ NSSITEM_FROM_SECITEM(&serial, derSerial);
-+
-+ cc = STAN_GetDefaultCryptoContext();
-+ cert = NSSCryptoContext_FindCertificateByIssuerAndSerialNumber(cc,
-+ &issuer,
-+ &serial);
-+ if (cert) {
-+ SECITEM_FreeItem(derSerial, PR_TRUE);
-+ return STAN_GetCERTCertificate(cert);
-+ }
-+retry:
-+ cert = NSSTrustDomain_FindCertificateByIssuerAndSerialNumber(
-+ STAN_GetDefaultTrustDomain(),
-+ &issuer,
-+ &serial);
-+ if (cert) {
-+ rvCert = STAN_GetCERTCertificate(cert);
-+ /* Check to see if the cert's token is still there */
-+ if (!PK11_IsPresent(rvCert->slot)) {
-+ CERT_DestroyCertificate(rvCert);
-+ goto retry;
-+ }
-+ if (slotPtr) *slotPtr = PK11_ReferenceSlot(rvCert->slot);
-+ }
-+ SECITEM_FreeItem(derSerial, PR_TRUE);
-+ return rvCert;
-+#endif
-+}
-+
-+CK_OBJECT_HANDLE
-+PK11_FindObjectForCert(CERTCertificate *cert, void *wincx, PK11SlotInfo **pSlot)
-+{
-+ CK_OBJECT_HANDLE certHandle;
-+ CK_ATTRIBUTE searchTemplate = { CKA_VALUE, NULL, 0 };
-+
-+ PK11_SETATTRS(&searchTemplate, CKA_VALUE, cert->derCert.data,
-+ cert->derCert.len);
-+
-+ if (cert->slot) {
-+ certHandle = pk11_getcerthandle(cert->slot,cert,&searchTemplate,1);
-+ if (certHandle != CK_INVALID_HANDLE) {
-+ *pSlot = PK11_ReferenceSlot(cert->slot);
-+ return certHandle;
-+ }
-+ }
-+
-+ certHandle = pk11_FindCertObjectByTemplate(pSlot,&searchTemplate,1,wincx);
-+ if (certHandle != CK_INVALID_HANDLE) {
-+ if (cert->slot == NULL) {
-+ cert->slot = PK11_ReferenceSlot(*pSlot);
-+ cert->pkcs11ID = certHandle;
-+ cert->ownSlot = PR_TRUE;
-+ cert->series = cert->slot->series;
-+ }
-+ }
-+
-+ return(certHandle);
-+}
-+
-+SECKEYPrivateKey *
-+PK11_FindKeyByAnyCert(CERTCertificate *cert, void *wincx)
-+{
-+ CK_OBJECT_HANDLE certHandle;
-+ CK_OBJECT_HANDLE keyHandle;
-+ PK11SlotInfo *slot = NULL;
-+ SECKEYPrivateKey *privKey;
-+ SECStatus rv;
-+
-+ certHandle = PK11_FindObjectForCert(cert, wincx, &slot);
-+ if (certHandle == CK_INVALID_HANDLE) {
-+ return NULL;
-+ }
-+ rv = PK11_Authenticate(slot, PR_TRUE, wincx);
-+ if (rv != SECSuccess) {
-+ PK11_FreeSlot(slot);
-+ return NULL;
-+ }
-+ keyHandle = PK11_MatchItem(slot,certHandle,CKO_PRIVATE_KEY);
-+ if (keyHandle == CK_INVALID_HANDLE) {
-+ PK11_FreeSlot(slot);
-+ return NULL;
-+ }
-+ privKey = PK11_MakePrivKey(slot, nullKey, PR_TRUE, keyHandle, wincx);
-+ PK11_FreeSlot(slot);
-+ return privKey;
-+}
-+
-+CK_OBJECT_HANDLE
-+pk11_FindPubKeyByAnyCert(CERTCertificate *cert, PK11SlotInfo **slot, void *wincx)
-+{
-+ CK_OBJECT_HANDLE certHandle;
-+ CK_OBJECT_HANDLE keyHandle;
-+
-+ certHandle = PK11_FindObjectForCert(cert, wincx, slot);
-+ if (certHandle == CK_INVALID_HANDLE) {
-+ return CK_INVALID_HANDLE;
-+ }
-+ keyHandle = PK11_MatchItem(*slot,certHandle,CKO_PUBLIC_KEY);
-+ if (keyHandle == CK_INVALID_HANDLE) {
-+ PK11_FreeSlot(*slot);
-+ return CK_INVALID_HANDLE;
-+ }
-+ return keyHandle;
-+}
-+
-+SECKEYPrivateKey *
-+PK11_FindKeyByKeyID(PK11SlotInfo *slot, SECItem *keyID, void *wincx)
-+{
-+ CK_OBJECT_HANDLE keyHandle;
-+ SECKEYPrivateKey *privKey;
-+
-+ keyHandle = pk11_FindPrivateKeyFromCertID(slot, keyID);
-+ if (keyHandle == CK_INVALID_HANDLE) {
-+ return NULL;
-+ }
-+ privKey = PK11_MakePrivKey(slot, nullKey, PR_TRUE, keyHandle, wincx);
-+ return privKey;
-+}
-+
-+/*
-+ * find the number of certs in the slot with the same subject name
-+ */
-+int
-+PK11_NumberCertsForCertSubject(CERTCertificate *cert)
-+{
-+ CK_OBJECT_CLASS certClass = CKO_CERTIFICATE;
-+ CK_ATTRIBUTE theTemplate[] = {
-+ { CKA_CLASS, NULL, 0 },
-+ { CKA_SUBJECT, NULL, 0 },
-+ };
-+ CK_ATTRIBUTE *attr = theTemplate;
-+ int templateSize = sizeof(theTemplate)/sizeof(theTemplate[0]);
-+
-+ PK11_SETATTRS(attr,CKA_CLASS, &certClass, sizeof(certClass)); attr++;
-+ PK11_SETATTRS(attr,CKA_SUBJECT,cert->derSubject.data,cert->derSubject.len);
-+
-+ if (cert->slot == NULL) {
-+ PK11SlotList *list = PK11_GetAllTokens(CKM_INVALID_MECHANISM,
-+ PR_FALSE,PR_TRUE,NULL);
-+ PK11SlotListElement *le;
-+ int count = 0;
-+
-+ /* loop through all the fortezza tokens */
-+ for (le = list->head; le; le = le->next) {
-+ count += PK11_NumberObjectsFor(le->slot,theTemplate,templateSize);
-+ }
-+ PK11_FreeSlotList(list);
-+ return count;
-+ }
-+
-+ return PK11_NumberObjectsFor(cert->slot,theTemplate,templateSize);
-+}
-+
-+/*
-+ * Walk all the certs with the same subject
-+ */
-+SECStatus
-+PK11_TraverseCertsForSubject(CERTCertificate *cert,
-+ SECStatus(* callback)(CERTCertificate*, void *), void *arg)
-+{
-+ if(!cert) {
-+ return SECFailure;
-+ }
-+ if (cert->slot == NULL) {
-+ PK11SlotList *list = PK11_GetAllTokens(CKM_INVALID_MECHANISM,
-+ PR_FALSE,PR_TRUE,NULL);
-+ PK11SlotListElement *le;
-+
-+ /* loop through all the fortezza tokens */
-+ for (le = list->head; le; le = le->next) {
-+ PK11_TraverseCertsForSubjectInSlot(cert,le->slot,callback,arg);
-+ }
-+ PK11_FreeSlotList(list);
-+ return SECSuccess;
-+
-+ }
-+
-+ return PK11_TraverseCertsForSubjectInSlot(cert, cert->slot, callback, arg);
-+}
-+
-+SECStatus
-+PK11_TraverseCertsForSubjectInSlot(CERTCertificate *cert, PK11SlotInfo *slot,
-+ SECStatus(* callback)(CERTCertificate*, void *), void *arg)
-+{
-+#ifdef NSS_CLASSIC
-+ pk11DoCertCallback caller;
-+ pk11TraverseSlot callarg;
-+ CK_OBJECT_CLASS certClass = CKO_CERTIFICATE;
-+ CK_ATTRIBUTE theTemplate[] = {
-+ { CKA_CLASS, NULL, 0 },
-+ { CKA_SUBJECT, NULL, 0 },
-+ };
-+ CK_ATTRIBUTE *attr = theTemplate;
-+ int templateSize = sizeof(theTemplate)/sizeof(theTemplate[0]);
-+
-+ PK11_SETATTRS(attr,CKA_CLASS, &certClass, sizeof(certClass)); attr++;
-+ PK11_SETATTRS(attr,CKA_SUBJECT,cert->derSubject.data,cert->derSubject.len);
-+
-+ if (slot == NULL) {
-+ return SECSuccess;
-+ }
-+ caller.noslotcallback = callback;
-+ caller.callback = NULL;
-+ caller.itemcallback = NULL;
-+ caller.callbackArg = arg;
-+ callarg.callback = pk11_DoCerts;
-+ callarg.callbackArg = (void *) & caller;
-+ callarg.findTemplate = theTemplate;
-+ callarg.templateCount = templateSize;
-+
-+ return PK11_TraverseSlot(slot, &callarg);
-+#else
-+ PRStatus nssrv = PR_SUCCESS;
-+ NSSToken *token;
-+ NSSDER subject;
-+ NSSTrustDomain *td;
-+ nssList *subjectList;
-+ nssPKIObjectCollection *collection;
-+ nssCryptokiObject **instances;
-+ NSSCertificate **certs;
-+ nssTokenSearchType tokenOnly = nssTokenSearchType_TokenOnly;
-+ td = STAN_GetDefaultTrustDomain();
-+ NSSITEM_FROM_SECITEM(&subject, &cert->derSubject);
-+ token = PK11Slot_GetNSSToken(slot);
-+ if (!nssToken_IsPresent(token)) {
-+ return SECSuccess;
-+ }
-+ collection = nssCertificateCollection_Create(td, NULL);
-+ if (!collection) {
-+ return SECFailure;
-+ }
-+ subjectList = nssList_Create(NULL, PR_FALSE);
-+ if (!subjectList) {
-+ nssPKIObjectCollection_Destroy(collection);
-+ return SECFailure;
-+ }
-+ (void)nssTrustDomain_GetCertsForSubjectFromCache(td, &subject,
-+ subjectList);
-+ transfer_token_certs_to_collection(subjectList, token, collection);
-+ instances = nssToken_FindCertificatesBySubject(token, NULL,
-+ &subject,
-+ tokenOnly, 0, &nssrv);
-+ nssPKIObjectCollection_AddInstances(collection, instances, 0);
-+ nss_ZFreeIf(instances);
-+ nssList_Destroy(subjectList);
-+ certs = nssPKIObjectCollection_GetCertificates(collection,
-+ NULL, 0, NULL);
-+ nssPKIObjectCollection_Destroy(collection);
-+ if (certs) {
-+ CERTCertificate *oldie;
-+ NSSCertificate **cp;
-+ for (cp = certs; *cp; cp++) {
-+ oldie = STAN_GetCERTCertificate(*cp);
-+ if ((*callback)(oldie, arg) != SECSuccess) {
-+ nssrv = PR_FAILURE;
-+ break;
-+ }
-+ }
-+ nssCertificateArray_Destroy(certs);
-+ }
-+ return (nssrv == PR_SUCCESS) ? SECSuccess : SECFailure;
-+#endif
-+}
-+
-+SECStatus
-+PK11_TraverseCertsForNicknameInSlot(SECItem *nickname, PK11SlotInfo *slot,
-+ SECStatus(* callback)(CERTCertificate*, void *), void *arg)
-+{
-+#ifdef NSS_CLASSIC
-+ pk11DoCertCallback caller;
-+ pk11TraverseSlot callarg;
-+ CK_OBJECT_CLASS certClass = CKO_CERTIFICATE;
-+ CK_ATTRIBUTE theTemplate[] = {
-+ { CKA_CLASS, NULL, 0 },
-+ { CKA_LABEL, NULL, 0 },
-+ };
-+ CK_ATTRIBUTE *attr = theTemplate;
-+ int templateSize = sizeof(theTemplate)/sizeof(theTemplate[0]);
-+
-+ if(!nickname) {
-+ return SECSuccess;
-+ }
-+
-+ PK11_SETATTRS(attr,CKA_CLASS, &certClass, sizeof(certClass)); attr++;
-+ PK11_SETATTRS(attr,CKA_LABEL,nickname->data,nickname->len);
-+
-+ if (slot == NULL) {
-+ return SECSuccess;
-+ }
-+
-+ caller.noslotcallback = callback;
-+ caller.callback = NULL;
-+ caller.itemcallback = NULL;
-+ caller.callbackArg = arg;
-+ callarg.callback = pk11_DoCerts;
-+ callarg.callbackArg = (void *) & caller;
-+ callarg.findTemplate = theTemplate;
-+ callarg.templateCount = templateSize;
-+
-+ return PK11_TraverseSlot(slot, &callarg);
-+#else
-+ struct nss3_cert_cbstr pk11cb;
-+ PRStatus nssrv = PR_SUCCESS;
-+ NSSToken *token;
-+ NSSTrustDomain *td;
-+ NSSUTF8 *nick;
-+ PRBool created = PR_FALSE;
-+ nssCryptokiObject **instances;
-+ nssPKIObjectCollection *collection = NULL;
-+ NSSCertificate **certs;
-+ nssList *nameList = NULL;
-+ nssTokenSearchType tokenOnly = nssTokenSearchType_TokenOnly;
-+ pk11cb.callback = callback;
-+ pk11cb.arg = arg;
-+ token = PK11Slot_GetNSSToken(slot);
-+ if (!nssToken_IsPresent(token)) {
-+ return SECSuccess;
-+ }
-+ if (nickname->data[nickname->len-1] != '\0') {
-+ nick = nssUTF8_Create(NULL, nssStringType_UTF8String,
-+ nickname->data, nickname->len);
-+ created = PR_TRUE;
-+ } else {
-+ nick = (NSSUTF8 *)nickname->data;
-+ }
-+ td = STAN_GetDefaultTrustDomain();
-+ collection = nssCertificateCollection_Create(td, NULL);
-+ if (!collection) {
-+ goto loser;
-+ }
-+ nameList = nssList_Create(NULL, PR_FALSE);
-+ if (!nameList) {
-+ goto loser;
-+ }
-+ (void)nssTrustDomain_GetCertsForNicknameFromCache(td, nick, nameList);
-+ transfer_token_certs_to_collection(nameList, token, collection);
-+ instances = nssToken_FindCertificatesByNickname(token, NULL,
-+ nick,
-+ tokenOnly, 0, &nssrv);
-+ nssPKIObjectCollection_AddInstances(collection, instances, 0);
-+ nss_ZFreeIf(instances);
-+ nssList_Destroy(nameList);
-+ certs = nssPKIObjectCollection_GetCertificates(collection,
-+ NULL, 0, NULL);
-+ nssPKIObjectCollection_Destroy(collection);
-+ if (certs) {
-+ CERTCertificate *oldie;
-+ NSSCertificate **cp;
-+ for (cp = certs; *cp; cp++) {
-+ oldie = STAN_GetCERTCertificate(*cp);
-+ if ((*callback)(oldie, arg) != SECSuccess) {
-+ nssrv = PR_FAILURE;
-+ break;
-+ }
-+ }
-+ nssCertificateArray_Destroy(certs);
-+ }
-+ if (created) nss_ZFreeIf(nick);
-+ return (nssrv == PR_SUCCESS) ? SECSuccess : SECFailure;
-+loser:
-+ if (created) {
-+ nss_ZFreeIf(nick);
-+ }
-+ if (collection) {
-+ nssPKIObjectCollection_Destroy(collection);
-+ }
-+ if (nameList) {
-+ nssList_Destroy(nameList);
-+ }
-+ return SECFailure;
-+#endif
-+}
-+
-+SECStatus
-+PK11_TraverseCertsInSlot(PK11SlotInfo *slot,
-+ SECStatus(* callback)(CERTCertificate*, void *), void *arg)
-+{
-+#ifdef NSS_CLASSIC
-+ pk11DoCertCallback caller;
-+ pk11TraverseSlot callarg;
-+ CK_OBJECT_CLASS certClass = CKO_CERTIFICATE;
-+ CK_ATTRIBUTE theTemplate[] = {
-+ { CKA_CLASS, NULL, 0 },
-+ };
-+ CK_ATTRIBUTE *attr = theTemplate;
-+ int templateSize = sizeof(theTemplate)/sizeof(theTemplate[0]);
-+
-+ PK11_SETATTRS(attr,CKA_CLASS, &certClass, sizeof(certClass)); attr++;
-+
-+ if (slot == NULL) {
-+ return SECSuccess;
-+ }
-+
-+ caller.noslotcallback = callback;
-+ caller.callback = NULL;
-+ caller.itemcallback = NULL;
-+ caller.callbackArg = arg;
-+ callarg.callback = pk11_DoCerts;
-+ callarg.callbackArg = (void *) & caller;
-+ callarg.findTemplate = theTemplate;
-+ callarg.templateCount = templateSize;
-+ return PK11_TraverseSlot(slot, &callarg);
-+#else
-+ PRStatus nssrv;
-+ NSSTrustDomain *td = STAN_GetDefaultTrustDomain();
-+ NSSToken *tok;
-+ nssList *certList = NULL;
-+ nssCryptokiObject **instances;
-+ nssPKIObjectCollection *collection;
-+ NSSCertificate **certs;
-+ nssTokenSearchType tokenOnly = nssTokenSearchType_TokenOnly;
-+ tok = PK11Slot_GetNSSToken(slot);
-+ if (!nssToken_IsPresent(tok)) {
-+ return SECSuccess;
-+ }
-+ collection = nssCertificateCollection_Create(td, NULL);
-+ if (!collection) {
-+ return SECFailure;
-+ }
-+ certList = nssList_Create(NULL, PR_FALSE);
-+ if (!certList) {
-+ nssPKIObjectCollection_Destroy(collection);
-+ return SECFailure;
-+ }
-+ (void *)nssTrustDomain_GetCertsFromCache(td, certList);
-+ transfer_token_certs_to_collection(certList, tok, collection);
-+ instances = nssToken_FindCertificates(tok, NULL,
-+ tokenOnly, 0, &nssrv);
-+ nssPKIObjectCollection_AddInstances(collection, instances, 0);
-+ nss_ZFreeIf(instances);
-+ nssList_Destroy(certList);
-+ certs = nssPKIObjectCollection_GetCertificates(collection,
-+ NULL, 0, NULL);
-+ nssPKIObjectCollection_Destroy(collection);
-+ if (certs) {
-+ CERTCertificate *oldie;
-+ NSSCertificate **cp;
-+ for (cp = certs; *cp; cp++) {
-+ oldie = STAN_GetCERTCertificate(*cp);
-+ if ((*callback)(oldie, arg) != SECSuccess) {
-+ nssrv = PR_FAILURE;
-+ break;
-+ }
-+ }
-+ nssCertificateArray_Destroy(certs);
-+ }
-+ return (nssrv == PR_SUCCESS) ? SECSuccess : SECFailure;
-+#endif
-+}
-+
-+/*
-+ * return the certificate associated with a derCert
-+ */
-+CERTCertificate *
-+PK11_FindCertFromDERCert(PK11SlotInfo *slot, CERTCertificate *cert,
-+ void *wincx)
-+{
-+ return PK11_FindCertFromDERCertItem(slot, &cert->derCert, wincx);
-+}
-+
-+CERTCertificate *
-+PK11_FindCertFromDERCertItem(PK11SlotInfo *slot, SECItem *inDerCert,
-+ void *wincx)
-+
-+{
-+ CERTCertificate *rvCert = NULL;
-+ NSSCertificate *c;
-+ NSSDER derCert;
-+ NSSToken *tok;
-+ NSSTrustDomain *td = STAN_GetDefaultTrustDomain();
-+ tok = PK11Slot_GetNSSToken(slot);
-+ NSSITEM_FROM_SECITEM(&derCert, inDerCert);
-+ if (!PK11_IsFriendly(slot)) {
-+ if (PK11_Authenticate(slot, PR_TRUE, wincx) != SECSuccess) {
-+ PK11_FreeSlot(slot);
-+ return NULL;
-+ }
-+ }
-+ c = NSSTrustDomain_FindCertificateByEncodedCertificate(td, &derCert);
-+ if (c) {
-+ PRBool isToken = PR_FALSE;
-+ NSSToken **tp;
-+ NSSToken **tokens = nssPKIObject_GetTokens(&c->object, NULL);
-+ if (tokens) {
-+ for (tp = tokens; *tp; tp++) {
-+ if (*tp == tok) {
-+ isToken = PR_TRUE;
-+ break;
-+ }
-+ }
-+ if (!isToken) {
-+ NSSCertificate_Destroy(c);
-+ c = NULL;
-+ }
-+ nssTokenArray_Destroy(tokens);
-+ }
-+ }
-+ if (c) {
-+ rvCert = STAN_GetCERTCertificate(c);
-+ }
-+ return rvCert;
-+}
-+
-+/* mcgreer 3.4 -- nobody uses this, ignoring */
-+/*
-+ * return the certificate associated with a derCert
-+ */
-+CERTCertificate *
-+PK11_FindCertFromDERSubjectAndNickname(PK11SlotInfo *slot,
-+ CERTCertificate *cert,
-+ char *nickname, void *wincx)
-+{
-+ CK_OBJECT_CLASS certClass = CKO_CERTIFICATE;
-+ CK_ATTRIBUTE theTemplate[] = {
-+ { CKA_SUBJECT, NULL, 0 },
-+ { CKA_LABEL, NULL, 0 },
-+ { CKA_CLASS, NULL, 0 }
-+ };
-+ /* if you change the array, change the variable below as well */
-+ int tsize = sizeof(theTemplate)/sizeof(theTemplate[0]);
-+ CK_OBJECT_HANDLE certh;
-+ CK_ATTRIBUTE *attrs = theTemplate;
-+ SECStatus rv;
-+
-+ PK11_SETATTRS(attrs, CKA_SUBJECT, cert->derSubject.data,
-+ cert->derSubject.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_LABEL, nickname, PORT_Strlen(nickname));
-+ PK11_SETATTRS(attrs, CKA_CLASS, &certClass, sizeof(certClass));
-+
-+ /*
-+ * issue the find
-+ */
-+ if ( !PK11_IsFriendly(slot)) {
-+ rv = PK11_Authenticate(slot, PR_TRUE, wincx);
-+ if (rv != SECSuccess) return NULL;
-+ }
-+
-+ certh = pk11_getcerthandle(slot,cert,theTemplate,tsize);
-+ if (certh == CK_INVALID_HANDLE) {
-+ return NULL;
-+ }
-+
-+ return PK11_MakeCertFromHandle(slot, certh, NULL);
-+}
-+
-+/*
-+ * import a cert for a private key we have already generated. Set the label
-+ * on both to be the nickname.
-+ */
-+static CK_OBJECT_HANDLE
-+pk11_findKeyObjectByDERCert(PK11SlotInfo *slot, CERTCertificate *cert,
-+ void *wincx)
-+{
-+ SECItem *keyID;
-+ CK_OBJECT_HANDLE key;
-+ SECStatus rv;
-+
-+ if((slot == NULL) || (cert == NULL)) {
-+ return CK_INVALID_HANDLE;
-+ }
-+
-+ keyID = pk11_mkcertKeyID(cert);
-+ if(keyID == NULL) {
-+ return CK_INVALID_HANDLE;
-+ }
-+
-+ key = CK_INVALID_HANDLE;
-+
-+ rv = PK11_Authenticate(slot, PR_TRUE, wincx);
-+ if (rv != SECSuccess) goto loser;
-+
-+ key = pk11_FindPrivateKeyFromCertID(slot, keyID);
-+
-+loser:
-+ SECITEM_ZfreeItem(keyID, PR_TRUE);
-+ return key;
-+}
-+
-+SECKEYPrivateKey *
-+PK11_FindKeyByDERCert(PK11SlotInfo *slot, CERTCertificate *cert,
-+ void *wincx)
-+{
-+ CK_OBJECT_HANDLE keyHandle;
-+
-+ if((slot == NULL) || (cert == NULL)) {
-+ return NULL;
-+ }
-+
-+ keyHandle = pk11_findKeyObjectByDERCert(slot, cert, wincx);
-+ if (keyHandle == CK_INVALID_HANDLE) {
-+ return NULL;
-+ }
-+
-+ return PK11_MakePrivKey(slot,nullKey,PR_TRUE,keyHandle,wincx);
-+}
-+
-+SECStatus
-+PK11_ImportCertForKeyToSlot(PK11SlotInfo *slot, CERTCertificate *cert,
-+ char *nickname,
-+ PRBool addCertUsage,void *wincx)
-+{
-+ CK_OBJECT_HANDLE keyHandle;
-+
-+ if((slot == NULL) || (cert == NULL) || (nickname == NULL)) {
-+ return SECFailure;
-+ }
-+
-+ keyHandle = pk11_findKeyObjectByDERCert(slot, cert, wincx);
-+ if (keyHandle == CK_INVALID_HANDLE) {
-+ return SECFailure;
-+ }
-+
-+ return PK11_ImportCert(slot, cert, keyHandle, nickname, addCertUsage);
-+}
-+
-+
-+/* remove when the real version comes out */
-+#define SEC_OID_MISSI_KEA 300 /* until we have v3 stuff merged */
-+PRBool
-+KEAPQGCompare(CERTCertificate *server,CERTCertificate *cert) {
-+
-+ if ( SECKEY_KEAParamCompare(server,cert) == SECEqual ) {
-+ return PR_TRUE;
-+ } else {
-+ return PR_FALSE;
-+ }
-+}
-+
-+PRBool
-+PK11_FortezzaHasKEA(CERTCertificate *cert) {
-+ /* look at the subject and see if it is a KEA for MISSI key */
-+ SECOidData *oid;
-+
-+ if ((cert->trust == NULL) ||
-+ ((cert->trust->sslFlags & CERTDB_USER) != CERTDB_USER)) {
-+ return PR_FALSE;
-+ }
-+
-+ oid = SECOID_FindOID(&cert->subjectPublicKeyInfo.algorithm.algorithm);
-+
-+
-+ return (PRBool)((oid->offset == SEC_OID_MISSI_KEA_DSS_OLD) ||
-+ (oid->offset == SEC_OID_MISSI_KEA_DSS) ||
-+ (oid->offset == SEC_OID_MISSI_KEA)) ;
-+}
-+
-+/*
-+ * Find a kea cert on this slot that matches the domain of it's peer
-+ */
-+static CERTCertificate
-+*pk11_GetKEAMate(PK11SlotInfo *slot,CERTCertificate *peer)
-+{
-+ int i;
-+ CERTCertificate *returnedCert = NULL;
-+
-+ for (i=0; i < slot->cert_count; i++) {
-+ CERTCertificate *cert = slot->cert_array[i];
-+
-+ if (PK11_FortezzaHasKEA(cert) && KEAPQGCompare(peer,cert)) {
-+ returnedCert = CERT_DupCertificate(cert);
-+ break;
-+ }
-+ }
-+ return returnedCert;
-+}
-+
-+/*
-+ * The following is a FORTEZZA only Certificate request. We call this when we
-+ * are doing a non-client auth SSL connection. We are only interested in the
-+ * fortezza slots, and we are only interested in certs that share the same root
-+ * key as the server.
-+ */
-+CERTCertificate *
-+PK11_FindBestKEAMatch(CERTCertificate *server, void *wincx)
-+{
-+ PK11SlotList *keaList = PK11_GetAllTokens(CKM_KEA_KEY_DERIVE,
-+ PR_FALSE,PR_TRUE,wincx);
-+ PK11SlotListElement *le;
-+ CERTCertificate *returnedCert = NULL;
-+ SECStatus rv;
-+
-+ /* loop through all the fortezza tokens */
-+ for (le = keaList->head; le; le = le->next) {
-+ rv = PK11_Authenticate(le->slot, PR_TRUE, wincx);
-+ if (rv != SECSuccess) continue;
-+ if (le->slot->session == CK_INVALID_SESSION) {
-+ continue;
-+ }
-+ returnedCert = pk11_GetKEAMate(le->slot,server);
-+ if (returnedCert) break;
-+ }
-+ PK11_FreeSlotList(keaList);
-+
-+ return returnedCert;
-+}
-+
-+/*
-+ * find a matched pair of kea certs to key exchange parameters from one
-+ * fortezza card to another as necessary.
-+ */
-+SECStatus
-+PK11_GetKEAMatchedCerts(PK11SlotInfo *slot1, PK11SlotInfo *slot2,
-+ CERTCertificate **cert1, CERTCertificate **cert2)
-+{
-+ CERTCertificate *returnedCert = NULL;
-+ int i;
-+
-+ for (i=0; i < slot1->cert_count; i++) {
-+ CERTCertificate *cert = slot1->cert_array[i];
-+
-+ if (PK11_FortezzaHasKEA(cert)) {
-+ returnedCert = pk11_GetKEAMate(slot2,cert);
-+ if (returnedCert != NULL) {
-+ *cert2 = returnedCert;
-+ *cert1 = CERT_DupCertificate(cert);
-+ return SECSuccess;
-+ }
-+ }
-+ }
-+ return SECFailure;
-+}
-+
-+SECOidTag
-+PK11_FortezzaMapSig(SECOidTag algTag)
-+{
-+ switch (algTag) {
-+ case SEC_OID_MISSI_KEA_DSS:
-+ case SEC_OID_MISSI_DSS:
-+ case SEC_OID_MISSI_DSS_OLD:
-+ case SEC_OID_MISSI_KEA_DSS_OLD:
-+ case SEC_OID_BOGUS_DSA_SIGNATURE_WITH_SHA1_DIGEST:
-+ return SEC_OID_ANSIX9_DSA_SIGNATURE;
-+ default:
-+ break;
-+ }
-+ return algTag;
-+}
-+
-+/*
-+ * return the private key From a given Cert
-+ */
-+CK_OBJECT_HANDLE
-+PK11_FindCertInSlot(PK11SlotInfo *slot, CERTCertificate *cert, void *wincx)
-+{
-+ CK_OBJECT_CLASS certClass = CKO_CERTIFICATE;
-+ CK_ATTRIBUTE theTemplate[] = {
-+ { CKA_VALUE, NULL, 0 },
-+ { CKA_CLASS, NULL, 0 }
-+ };
-+ /* if you change the array, change the variable below as well */
-+ int tsize = sizeof(theTemplate)/sizeof(theTemplate[0]);
-+ CK_ATTRIBUTE *attrs = theTemplate;
-+ SECStatus rv;
-+
-+ PK11_SETATTRS(attrs, CKA_VALUE, cert->derCert.data,
-+ cert->derCert.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_CLASS, &certClass, sizeof(certClass));
-+
-+ /*
-+ * issue the find
-+ */
-+ rv = PK11_Authenticate(slot, PR_TRUE, wincx);
-+ if (rv != SECSuccess) {
-+ return CK_INVALID_HANDLE;
-+ }
-+
-+ return pk11_getcerthandle(slot,cert,theTemplate,tsize);
-+}
-+
-+SECItem *
-+PK11_GetKeyIDFromCert(CERTCertificate *cert, void *wincx)
-+{
-+ CK_OBJECT_HANDLE handle;
-+ PK11SlotInfo *slot = NULL;
-+ CK_ATTRIBUTE theTemplate[] = {
-+ { CKA_ID, NULL, 0 },
-+ };
-+ int tsize = sizeof(theTemplate)/sizeof(theTemplate[0]);
-+ SECItem *item = NULL;
-+ CK_RV crv;
-+
-+ handle = PK11_FindObjectForCert(cert,wincx,&slot);
-+ if (handle == CK_INVALID_HANDLE) {
-+ goto loser;
-+ }
-+
-+
-+ crv = PK11_GetAttributes(NULL,slot,handle,theTemplate,tsize);
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ goto loser;
-+ }
-+
-+ item = PORT_ZNew(SECItem);
-+ if (item) {
-+ item->data = (unsigned char*) theTemplate[0].pValue;
-+ item->len = theTemplate[0].ulValueLen;
-+ }
-+
-+
-+loser:
-+ PK11_FreeSlot(slot);
-+ return item;
-+}
-+
-+SECItem *
-+PK11_GetKeyIDFromPrivateKey(SECKEYPrivateKey *key, void *wincx)
-+{
-+ CK_ATTRIBUTE theTemplate[] = {
-+ { CKA_ID, NULL, 0 },
-+ };
-+ int tsize = sizeof(theTemplate)/sizeof(theTemplate[0]);
-+ SECItem *item = NULL;
-+ CK_RV crv;
-+
-+ crv = PK11_GetAttributes(NULL,key->pkcs11Slot,key->pkcs11ID,
-+ theTemplate,tsize);
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ goto loser;
-+ }
-+
-+ item = PORT_ZNew(SECItem);
-+ if (item) {
-+ item->data = (unsigned char*) theTemplate[0].pValue;
-+ item->len = theTemplate[0].ulValueLen;
-+ }
-+
-+
-+loser:
-+ return item;
-+}
-+
-+struct listCertsStr {
-+ PK11CertListType type;
-+ CERTCertList *certList;
-+};
-+
-+static PRStatus
-+pk11ListCertCallback(NSSCertificate *c, void *arg)
-+{
-+ struct listCertsStr *listCertP = (struct listCertsStr *)arg;
-+ CERTCertificate *newCert = NULL;
-+ PK11CertListType type = listCertP->type;
-+ CERTCertList *certList = listCertP->certList;
-+ PRBool isUnique = PR_FALSE;
-+ PRBool isCA = PR_FALSE;
-+ char *nickname = NULL;
-+ unsigned int certType;
-+
-+ if ((type == PK11CertListUnique) || (type == PK11CertListRootUnique) ||
-+ (type == PK11CertListCAUnique) || (type == PK11CertListUserUnique) ) {
-+ /* only list one instance of each certificate, even if several exist */
-+ isUnique = PR_TRUE;
-+ }
-+ if ((type == PK11CertListCA) || (type == PK11CertListRootUnique) ||
-+ (type == PK11CertListCAUnique)) {
-+ isCA = PR_TRUE;
-+ }
-+
-+ /* if we want user certs and we don't have one skip this cert */
-+ if ( ( (type == PK11CertListUser) || (type == PK11CertListUserUnique) ) &&
-+ !NSSCertificate_IsPrivateKeyAvailable(c, NULL,NULL)) {
-+ return PR_SUCCESS;
-+ }
-+
-+ /* PK11CertListRootUnique means we want CA certs without a private key.
-+ * This is for legacy app support . PK11CertListCAUnique should be used
-+ * instead to get all CA certs, regardless of private key
-+ */
-+ if ((type == PK11CertListRootUnique) &&
-+ NSSCertificate_IsPrivateKeyAvailable(c, NULL,NULL)) {
-+ return PR_SUCCESS;
-+ }
-+
-+ newCert = STAN_GetCERTCertificate(c);
-+ if (!newCert) {
-+ return PR_SUCCESS;
-+ }
-+ /* if we want CA certs and it ain't one, skip it */
-+ if( isCA && (!CERT_IsCACert(newCert, &certType)) ) {
-+ return PR_SUCCESS;
-+ }
-+ if (isUnique) {
-+ CERT_DupCertificate(newCert);
-+
-+ nickname = STAN_GetCERTCertificateName(certList->arena, c);
-+
-+ /* put slot certs at the end */
-+ if (newCert->slot && !PK11_IsInternal(newCert->slot)) {
-+ CERT_AddCertToListTailWithData(certList,newCert,nickname);
-+ } else {
-+ CERT_AddCertToListHeadWithData(certList,newCert,nickname);
-+ }
-+ } else {
-+ /* add multiple instances to the cert list */
-+ nssCryptokiObject **ip;
-+ nssCryptokiObject **instances = nssPKIObject_GetInstances(&c->object);
-+ if (!instances) {
-+ return PR_SUCCESS;
-+ }
-+ for (ip = instances; *ip; ip++) {
-+ nssCryptokiObject *instance = *ip;
-+ PK11SlotInfo *slot = instance->token->pk11slot;
-+
-+ /* put the same CERTCertificate in the list for all instances */
-+ CERT_DupCertificate(newCert);
-+
-+ nickname = STAN_GetCERTCertificateNameForInstance(
-+ certList->arena, c, instance);
-+
-+ /* put slot certs at the end */
-+ if (slot && !PK11_IsInternal(slot)) {
-+ CERT_AddCertToListTailWithData(certList,newCert,nickname);
-+ } else {
-+ CERT_AddCertToListHeadWithData(certList,newCert,nickname);
-+ }
-+ }
-+ nssCryptokiObjectArray_Destroy(instances);
-+ }
-+ return PR_SUCCESS;
-+}
-+
-+
-+CERTCertList *
-+PK11_ListCerts(PK11CertListType type, void *pwarg)
-+{
-+#ifdef NSS_CLASSIC
-+ CERTCertList *certList = NULL;
-+ struct listCertsStr listCerts;
-+
-+ certList= CERT_NewCertList();
-+ listCerts.type = type;
-+ listCerts.certList = certList;
-+
-+ PK11_TraverseSlotCerts(pk11ListCertCallback,&listCerts,pwarg);
-+
-+ if (CERT_LIST_HEAD(certList) == NULL) {
-+ CERT_DestroyCertList(certList);
-+ certList = NULL;
-+ }
-+ return certList;
-+#else
-+ NSSTrustDomain *defaultTD = STAN_GetDefaultTrustDomain();
-+ CERTCertList *certList = NULL;
-+ struct listCertsStr listCerts;
-+ certList = CERT_NewCertList();
-+ listCerts.type = type;
-+ listCerts.certList = certList;
-+
-+ /* authenticate to the slots */
-+ (void) pk11_TraverseAllSlots( NULL, NULL, pwarg);
-+ NSSTrustDomain_TraverseCertificates(defaultTD, pk11ListCertCallback,
-+ &listCerts);
-+ return certList;
-+#endif
-+}
-+
-+static SECItem *
-+pk11_GetLowLevelKeyFromHandle(PK11SlotInfo *slot, CK_OBJECT_HANDLE handle) {
-+ CK_ATTRIBUTE theTemplate[] = {
-+ { CKA_ID, NULL, 0 },
-+ };
-+ int tsize = sizeof(theTemplate)/sizeof(theTemplate[0]);
-+ CK_RV crv;
-+ SECItem *item;
-+
-+ item = SECITEM_AllocItem(NULL, NULL, 0);
-+
-+ if (item == NULL) {
-+ return NULL;
-+ }
-+
-+ crv = PK11_GetAttributes(NULL,slot,handle,theTemplate,tsize);
-+ if (crv != CKR_OK) {
-+ SECITEM_FreeItem(item,PR_TRUE);
-+ PORT_SetError( PK11_MapError(crv) );
-+ return NULL;
-+ }
-+
-+ item->data = (unsigned char*) theTemplate[0].pValue;
-+ item->len =theTemplate[0].ulValueLen;
-+
-+ return item;
-+}
-+
-+SECItem *
-+PK11_GetLowLevelKeyIDForCert(PK11SlotInfo *slot,
-+ CERTCertificate *cert, void *wincx)
-+{
-+ CK_ATTRIBUTE theTemplate[] = {
-+ { CKA_VALUE, NULL, 0 },
-+ { CKA_CLASS, NULL, 0 }
-+ };
-+ /* if you change the array, change the variable below as well */
-+ int tsize = sizeof(theTemplate)/sizeof(theTemplate[0]);
-+ CK_OBJECT_HANDLE certHandle;
-+ CK_ATTRIBUTE *attrs = theTemplate;
-+ PK11SlotInfo *slotRef = NULL;
-+ SECItem *item;
-+ SECStatus rv;
-+
-+ if (slot) {
-+ PK11_SETATTRS(attrs, CKA_VALUE, cert->derCert.data,
-+ cert->derCert.len); attrs++;
-+
-+ rv = PK11_Authenticate(slot, PR_TRUE, wincx);
-+ if (rv != SECSuccess) {
-+ return NULL;
-+ }
-+ certHandle = pk11_getcerthandle(slot,cert,theTemplate,tsize);
-+ } else {
-+ certHandle = PK11_FindObjectForCert(cert, wincx, &slotRef);
-+ if (certHandle == CK_INVALID_HANDLE) {
-+ return pk11_mkcertKeyID(cert);
-+ }
-+ slot = slotRef;
-+ }
-+
-+ if (certHandle == CK_INVALID_HANDLE) {
-+ return NULL;
-+ }
-+
-+ item = pk11_GetLowLevelKeyFromHandle(slot,certHandle);
-+ if (slotRef) PK11_FreeSlot(slotRef);
-+ return item;
-+}
-+
-+SECItem *
-+PK11_GetLowLevelKeyIDForPrivateKey(SECKEYPrivateKey *privKey)
-+{
-+ return pk11_GetLowLevelKeyFromHandle(privKey->pkcs11Slot,privKey->pkcs11ID);
-+}
-+
-+/* argument type for listCertsCallback */
-+typedef struct {
-+ CERTCertList *list;
-+ PK11SlotInfo *slot;
-+} ListCertsArg;
-+
-+static SECStatus
-+listCertsCallback(CERTCertificate* cert, void*arg)
-+{
-+ ListCertsArg *cdata = (ListCertsArg*)arg;
-+ char *nickname = NULL;
-+ nssCryptokiObject *instance, **ci;
-+ nssCryptokiObject **instances;
-+ NSSCertificate *c = STAN_GetNSSCertificate(cert);
-+
-+ instances = nssPKIObject_GetInstances(&c->object);
-+ instance = NULL;
-+ for (ci = instances; *ci; ci++) {
-+ if ((*ci)->token->pk11slot == cdata->slot) {
-+ instance = *ci;
-+ break;
-+ }
-+ }
-+ PORT_Assert(instance != NULL);
-+ if (!instance) {
-+ nssCryptokiObjectArray_Destroy(instances);
-+ PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
-+ return SECFailure;
-+ }
-+ nickname = STAN_GetCERTCertificateNameForInstance(cdata->list->arena,
-+ c, instance);
-+ nssCryptokiObjectArray_Destroy(instances);
-+
-+ return CERT_AddCertToListTailWithData(cdata->list,
-+ CERT_DupCertificate(cert),nickname);
-+}
-+
-+CERTCertList *
-+PK11_ListCertsInSlot(PK11SlotInfo *slot)
-+{
-+ SECStatus status;
-+ CERTCertList *certs;
-+ ListCertsArg cdata;
-+
-+ certs = CERT_NewCertList();
-+ if(certs == NULL) return NULL;
-+ cdata.list = certs;
-+ cdata.slot = slot;
-+
-+ status = PK11_TraverseCertsInSlot(slot, listCertsCallback,
-+ &cdata);
-+
-+ if( status != SECSuccess ) {
-+ CERT_DestroyCertList(certs);
-+ certs = NULL;
-+ }
-+
-+ return certs;
-+}
-+
-+static SECStatus
-+privateKeyListCallback(SECKEYPrivateKey *key, void *arg)
-+{
-+ SECKEYPrivateKeyList *list = (SECKEYPrivateKeyList*)arg;
-+ return SECKEY_AddPrivateKeyToListTail(list, SECKEY_CopyPrivateKey(key));
-+}
-+
-+SECKEYPrivateKeyList*
-+PK11_ListPrivateKeysInSlot(PK11SlotInfo *slot)
-+{
-+ SECStatus status;
-+ SECKEYPrivateKeyList *keys;
-+
-+ keys = SECKEY_NewPrivateKeyList();
-+ if(keys == NULL) return NULL;
-+
-+ status = PK11_TraversePrivateKeysInSlot(slot, privateKeyListCallback,
-+ (void*)keys);
-+
-+ if( status != SECSuccess ) {
-+ SECKEY_DestroyPrivateKeyList(keys);
-+ keys = NULL;
-+ }
-+
-+ return keys;
-+}
-+
-+SECKEYPublicKeyList*
-+PK11_ListPublicKeysInSlot(PK11SlotInfo *slot, char *nickname)
-+{
-+ CK_ATTRIBUTE findTemp[4];
-+ CK_ATTRIBUTE *attrs;
-+ CK_BBOOL ckTrue = CK_TRUE;
-+ CK_OBJECT_CLASS keyclass = CKO_PUBLIC_KEY;
-+ int tsize = 0;
-+ int objCount = 0;
-+ CK_OBJECT_HANDLE *key_ids;
-+ SECKEYPublicKeyList *keys;
-+ int i,len;
-+
-+
-+ attrs = findTemp;
-+ PK11_SETATTRS(attrs, CKA_CLASS, &keyclass, sizeof(keyclass)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_TOKEN, &ckTrue, sizeof(ckTrue)); attrs++;
-+ if (nickname) {
-+ len = PORT_Strlen(nickname)-1;
-+ PK11_SETATTRS(attrs, CKA_LABEL, nickname, len); attrs++;
-+ }
-+ tsize = attrs - findTemp;
-+ PORT_Assert(tsize <= sizeof(findTemp)/sizeof(CK_ATTRIBUTE));
-+
-+ key_ids = pk11_FindObjectsByTemplate(slot,findTemp,tsize,&objCount);
-+ if (key_ids == NULL) {
-+ return NULL;
-+ }
-+ keys = SECKEY_NewPublicKeyList();
-+ if (keys == NULL) {
-+ PORT_Free(key_ids);
-+ }
-+
-+ for (i=0; i < objCount ; i++) {
-+ SECKEYPublicKey *pubKey =
-+ PK11_ExtractPublicKey(slot,nullKey,key_ids[i]);
-+ if (pubKey) {
-+ SECKEY_AddPublicKeyToListTail(keys, pubKey);
-+ }
-+ }
-+
-+ PORT_Free(key_ids);
-+ return keys;
-+}
-+
-+SECKEYPrivateKeyList*
-+PK11_ListPrivKeysInSlot(PK11SlotInfo *slot, char *nickname, void *wincx)
-+{
-+ CK_ATTRIBUTE findTemp[4];
-+ CK_ATTRIBUTE *attrs;
-+ CK_BBOOL ckTrue = CK_TRUE;
-+ CK_OBJECT_CLASS keyclass = CKO_PRIVATE_KEY;
-+ int tsize = 0;
-+ int objCount = 0;
-+ CK_OBJECT_HANDLE *key_ids;
-+ SECKEYPrivateKeyList *keys;
-+ int i,len;
-+
-+
-+ attrs = findTemp;
-+ PK11_SETATTRS(attrs, CKA_CLASS, &keyclass, sizeof(keyclass)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_TOKEN, &ckTrue, sizeof(ckTrue)); attrs++;
-+ if (nickname) {
-+ len = PORT_Strlen(nickname)-1;
-+ PK11_SETATTRS(attrs, CKA_LABEL, nickname, len); attrs++;
-+ }
-+ tsize = attrs - findTemp;
-+ PORT_Assert(tsize <= sizeof(findTemp)/sizeof(CK_ATTRIBUTE));
-+
-+ key_ids = pk11_FindObjectsByTemplate(slot,findTemp,tsize,&objCount);
-+ if (key_ids == NULL) {
-+ return NULL;
-+ }
-+ keys = SECKEY_NewPrivateKeyList();
-+ if (keys == NULL) {
-+ PORT_Free(key_ids);
-+ }
-+
-+ for (i=0; i < objCount ; i++) {
-+ SECKEYPrivateKey *privKey =
-+ PK11_MakePrivKey(slot,nullKey,PR_TRUE,key_ids[i],wincx);
-+ SECKEY_AddPrivateKeyToListTail(keys, privKey);
-+ }
-+
-+ PORT_Free(key_ids);
-+ return keys;
-+}
-+
-+/*
-+ * return the certificate associated with a derCert
-+ */
-+SECItem *
-+PK11_FindCrlByName(PK11SlotInfo **slot, CK_OBJECT_HANDLE *crlHandle,
-+ SECItem *name, int type, char **url)
-+{
-+#ifdef NSS_CLASSIC
-+ CK_OBJECT_CLASS crlClass = CKO_NETSCAPE_CRL;
-+ CK_ATTRIBUTE theTemplate[] = {
-+ { CKA_SUBJECT, NULL, 0 },
-+ { CKA_CLASS, NULL, 0 },
-+ { CKA_NETSCAPE_KRL, NULL, 0 },
-+ };
-+ CK_ATTRIBUTE crlData[] = {
-+ { CKA_VALUE, NULL, 0 },
-+ { CKA_NETSCAPE_URL, NULL, 0 },
-+ };
-+ /* if you change the array, change the variable below as well */
-+ int tsize = sizeof(theTemplate)/sizeof(theTemplate[0]);
-+ CK_BBOOL ck_true = CK_TRUE;
-+ CK_BBOOL ck_false = CK_FALSE;
-+ CK_OBJECT_HANDLE crlh = CK_INVALID_HANDLE;
-+ CK_ATTRIBUTE *attrs = theTemplate;
-+ CK_RV crv;
-+ SECItem *derCrl = NULL;
-+
-+ PK11_SETATTRS(attrs, CKA_SUBJECT, name->data, name->len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_CLASS, &crlClass, sizeof(crlClass)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_NETSCAPE_KRL, (type == SEC_CRL_TYPE) ?
-+ &ck_false : &ck_true, sizeof (CK_BBOOL)); attrs++;
-+
-+ if (*slot) {
-+ crlh = pk11_FindObjectByTemplate(*slot,theTemplate,tsize);
-+ } else {
-+ PK11SlotList *list = PK11_GetAllTokens(CKM_INVALID_MECHANISM,
-+ PR_FALSE,PR_TRUE,NULL);
-+ PK11SlotListElement *le;
-+
-+ /* loop through all the fortezza tokens */
-+ for (le = list->head; le; le = le->next) {
-+ crlh = pk11_FindObjectByTemplate(le->slot,theTemplate,tsize);
-+ if (crlh != CK_INVALID_HANDLE) {
-+ *slot = PK11_ReferenceSlot(le->slot);
-+ break;
-+ }
-+ }
-+ PK11_FreeSlotList(list);
-+ }
-+
-+ if (crlh == CK_INVALID_HANDLE) {
-+ PORT_SetError(SEC_ERROR_NO_KRL);
-+ return NULL;
-+ }
-+ crv = PK11_GetAttributes(NULL,*slot,crlh,crlData,2);
-+ if (crv != CKR_OK) {
-+ PORT_SetError(PK11_MapError (crv));
-+ goto loser;
-+ }
-+
-+ derCrl = (SECItem *)PORT_ZAlloc(sizeof(SECItem));
-+ if (derCrl == NULL) {
-+ goto loser;
-+ }
-+
-+ derCrl->data = crlData[0].pValue;
-+ derCrl->len = crlData[0].ulValueLen;
-+
-+ if (crlHandle) {
-+ *crlHandle = crlh;
-+ }
-+
-+ if ((url) && crlData[1].ulValueLen != 0) {
-+ /* make sure it's a null terminated string */
-+ *url = PORT_ZAlloc (crlData[1].ulValueLen+1);
-+ if (*url) {
-+ PORT_Memcpy(*url,crlData[1].pValue,crlData[1].ulValueLen);
-+ }
-+ }
-+
-+
-+loser:
-+ if (!derCrl) {
-+ if (crlData[0].pValue) PORT_Free(crlData[0].pValue);
-+ }
-+ if (crlData[1].pValue) PORT_Free(crlData[1].pValue);
-+ return derCrl;
-+#else
-+ NSSCRL **crls, **crlp, *crl;
-+ NSSDER subject;
-+ SECItem *rvItem;
-+ NSSTrustDomain *td = STAN_GetDefaultTrustDomain();
-+ NSSITEM_FROM_SECITEM(&subject, name);
-+ if (*slot) {
-+ nssCryptokiObject **instances;
-+ nssPKIObjectCollection *collection;
-+ nssTokenSearchType tokenOnly = nssTokenSearchType_TokenOnly;
-+ NSSToken *token = PK11Slot_GetNSSToken(*slot);
-+ collection = nssCRLCollection_Create(td, NULL);
-+ if (!collection) {
-+ return NULL;
-+ }
-+ instances = nssToken_FindCRLsBySubject(token, NULL, &subject,
-+ tokenOnly, 0, NULL);
-+ nssPKIObjectCollection_AddInstances(collection, instances, 0);
-+ nss_ZFreeIf(instances);
-+ crls = nssPKIObjectCollection_GetCRLs(collection, NULL, 0, NULL);
-+ nssPKIObjectCollection_Destroy(collection);
-+ } else {
-+ crls = nssTrustDomain_FindCRLsBySubject(td, &subject);
-+ }
-+ if ((!crls) || (*crls == NULL)) {
-+ if (crls) {
-+ nssCRLArray_Destroy(crls);
-+ }
-+ if (NSS_GetError() == NSS_ERROR_NOT_FOUND) {
-+ PORT_SetError(SEC_ERROR_CRL_NOT_FOUND);
-+ }
-+ return NULL;
-+ }
-+ crl = NULL;
-+ for (crlp = crls; *crlp; crlp++) {
-+ if ((!(*crlp)->isKRL && type == SEC_CRL_TYPE) ||
-+ ((*crlp)->isKRL && type != SEC_CRL_TYPE))
-+ {
-+ crl = nssCRL_AddRef(*crlp);
-+ break;
-+ }
-+ }
-+ nssCRLArray_Destroy(crls);
-+ if (!crl) {
-+ /* CRL collection was found, but no interesting CRL's were on it.
-+ * Not an error */
-+ PORT_SetError(SEC_ERROR_CRL_NOT_FOUND);
-+ return NULL;
-+ }
-+ if (crl->url) {
-+ *url = PORT_Strdup(crl->url);
-+ if (!*url) {
-+ nssCRL_Destroy(crl);
-+ return NULL;
-+ }
-+ } else {
-+ *url = NULL;
-+ }
-+ rvItem = SECITEM_AllocItem(NULL, NULL, crl->encoding.size);
-+ if (!rvItem) {
-+ PORT_Free(*url);
-+ nssCRL_Destroy(crl);
-+ return NULL;
-+ }
-+ memcpy(rvItem->data, crl->encoding.data, crl->encoding.size);
-+ *slot = PK11_ReferenceSlot(crl->object.instances[0]->token->pk11slot);
-+ *crlHandle = crl->object.instances[0]->handle;
-+ nssCRL_Destroy(crl);
-+ return rvItem;
-+#endif
-+}
-+
-+CK_OBJECT_HANDLE
-+PK11_PutCrl(PK11SlotInfo *slot, SECItem *crl, SECItem *name,
-+ char *url, int type)
-+{
-+#ifdef NSS_CLASSIC
-+ CK_OBJECT_CLASS crlClass = CKO_NETSCAPE_CRL;
-+ CK_ATTRIBUTE theTemplate[] = {
-+ { CKA_SUBJECT, NULL, 0 },
-+ { CKA_CLASS, NULL, 0 },
-+ { CKA_NETSCAPE_KRL, NULL, 0 },
-+ { CKA_NETSCAPE_URL, NULL, 0 },
-+ { CKA_VALUE, NULL, 0 },
-+ { CKA_TOKEN, NULL, 0 }
-+ };
-+ /* if you change the array, change the variable below as well */
-+ int tsize;
-+ CK_BBOOL ck_true = CK_TRUE;
-+ CK_BBOOL ck_false = CK_FALSE;
-+ CK_OBJECT_HANDLE crlh = CK_INVALID_HANDLE;
-+ CK_ATTRIBUTE *attrs = theTemplate;
-+ CK_SESSION_HANDLE rwsession;
-+ CK_RV crv;
-+
-+ PK11_SETATTRS(attrs, CKA_SUBJECT, name->data, name->len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_CLASS, &crlClass, sizeof(crlClass)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_NETSCAPE_KRL, (type == SEC_CRL_TYPE) ?
-+ &ck_false : &ck_true, sizeof (CK_BBOOL)); attrs++;
-+ if (url) {
-+ PK11_SETATTRS(attrs, CKA_NETSCAPE_URL, url, PORT_Strlen(url)+1); attrs++;
-+ }
-+ PK11_SETATTRS(attrs, CKA_VALUE,crl->data,crl->len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_TOKEN, &ck_true,sizeof(CK_BBOOL)); attrs++;
-+
-+ tsize = attrs - &theTemplate[0];
-+ PORT_Assert(tsize <= sizeof(theTemplate)/sizeof(theTemplate[0]));
-+
-+ rwsession = PK11_GetRWSession(slot);
-+ if (rwsession == CK_INVALID_SESSION) {
-+ PORT_SetError(SEC_ERROR_READ_ONLY);
-+ return crlh;
-+ }
-+
-+ crv = PK11_GETTAB(slot)->
-+ C_CreateObject(rwsession,theTemplate,tsize,&crlh);
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ }
-+
-+ PK11_RestoreROSession(slot,rwsession);
-+
-+ return crlh;
-+#else
-+ NSSItem derCRL, derSubject;
-+ NSSToken *token = PK11Slot_GetNSSToken(slot);
-+ nssCryptokiObject *object;
-+ PRBool isKRL = (type == SEC_CRL_TYPE) ? PR_FALSE : PR_TRUE;
-+ CK_OBJECT_HANDLE rvH;
-+
-+ NSSITEM_FROM_SECITEM(&derSubject, name);
-+ NSSITEM_FROM_SECITEM(&derCRL, crl);
-+
-+ object = nssToken_ImportCRL(token, NULL,
-+ &derSubject, &derCRL, isKRL, url, PR_TRUE);
-+
-+ if (object) {
-+ rvH = object->handle;
-+ nssCryptokiObject_Destroy(object);
-+ } else {
-+ rvH = CK_INVALID_HANDLE;
-+ }
-+ return rvH;
-+#endif
-+}
-+
-+
-+/*
-+ * delete a crl.
-+ */
-+SECStatus
-+SEC_DeletePermCRL(CERTSignedCrl *crl)
-+{
-+#ifdef NSS_CLASSIC
-+ PK11SlotInfo *slot = crl->slot;
-+ CK_RV crv;
-+
-+ if (slot == NULL) {
-+ /* shouldn't happen */
-+ PORT_SetError( SEC_ERROR_CRL_INVALID);
-+ return SECFailure;
-+ }
-+
-+ crv = PK11_DestroyTokenObject(slot,crl->pkcs11ID);
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ return SECFailure;
-+ }
-+ crl->slot = NULL;
-+ PK11_FreeSlot(slot);
-+ return SECSuccess;
-+#else
-+ PRStatus status;
-+ NSSToken *token;
-+ nssCryptokiObject *object;
-+ PK11SlotInfo *slot = crl->slot;
-+
-+ if (slot == NULL) {
-+ PORT_Assert(slot);
-+ /* shouldn't happen */
-+ PORT_SetError( SEC_ERROR_CRL_INVALID);
-+ return SECFailure;
-+ }
-+ token = PK11Slot_GetNSSToken(slot);
-+
-+ object = nss_ZNEW(NULL, nssCryptokiObject);
-+ object->token = nssToken_AddRef(token);
-+ object->handle = crl->pkcs11ID;
-+ object->isTokenObject = PR_TRUE;
-+
-+ status = nssToken_DeleteStoredObject(object);
-+
-+ nssCryptokiObject_Destroy(object);
-+ return (status == PR_SUCCESS) ? SECSuccess : SECFailure;
-+#endif
-+}
-+
-+/*
-+ * return the certificate associated with a derCert
-+ */
-+SECItem *
-+PK11_FindSMimeProfile(PK11SlotInfo **slot, char *emailAddr,
-+ SECItem *name, SECItem **profileTime)
-+{
-+ CK_OBJECT_CLASS smimeClass = CKO_NETSCAPE_SMIME;
-+ CK_ATTRIBUTE theTemplate[] = {
-+ { CKA_SUBJECT, NULL, 0 },
-+ { CKA_CLASS, NULL, 0 },
-+ { CKA_NETSCAPE_EMAIL, NULL, 0 },
-+ };
-+ CK_ATTRIBUTE smimeData[] = {
-+ { CKA_SUBJECT, NULL, 0 },
-+ { CKA_VALUE, NULL, 0 },
-+ };
-+ /* if you change the array, change the variable below as well */
-+ int tsize = sizeof(theTemplate)/sizeof(theTemplate[0]);
-+ CK_OBJECT_HANDLE smimeh = CK_INVALID_HANDLE;
-+ CK_ATTRIBUTE *attrs = theTemplate;
-+ CK_RV crv;
-+ SECItem *emailProfile = NULL;
-+
-+ PK11_SETATTRS(attrs, CKA_SUBJECT, name->data, name->len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_CLASS, &smimeClass, sizeof(smimeClass)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_NETSCAPE_EMAIL, emailAddr, strlen(emailAddr));
-+ attrs++;
-+
-+ if (*slot) {
-+ smimeh = pk11_FindObjectByTemplate(*slot,theTemplate,tsize);
-+ } else {
-+ PK11SlotList *list = PK11_GetAllTokens(CKM_INVALID_MECHANISM,
-+ PR_FALSE,PR_TRUE,NULL);
-+ PK11SlotListElement *le;
-+
-+ /* loop through all the fortezza tokens */
-+ for (le = list->head; le; le = le->next) {
-+ smimeh = pk11_FindObjectByTemplate(le->slot,theTemplate,tsize);
-+ if (smimeh != CK_INVALID_HANDLE) {
-+ *slot = PK11_ReferenceSlot(le->slot);
-+ break;
-+ }
-+ }
-+ PK11_FreeSlotList(list);
-+ }
-+
-+ if (smimeh == CK_INVALID_HANDLE) {
-+ PORT_SetError(SEC_ERROR_NO_KRL);
-+ return NULL;
-+ }
-+
-+ if (profileTime) {
-+ PK11_SETATTRS(smimeData, CKA_NETSCAPE_SMIME_TIMESTAMP, NULL, 0);
-+ }
-+
-+ crv = PK11_GetAttributes(NULL,*slot,smimeh,smimeData,2);
-+ if (crv != CKR_OK) {
-+ PORT_SetError(PK11_MapError (crv));
-+ goto loser;
-+ }
-+
-+ if (!profileTime) {
-+ SECItem profileSubject;
-+
-+ profileSubject.data = (unsigned char*) smimeData[0].pValue;
-+ profileSubject.len = smimeData[0].ulValueLen;
-+ if (!SECITEM_ItemsAreEqual(&profileSubject,name)) {
-+ goto loser;
-+ }
-+ }
-+
-+ emailProfile = (SECItem *)PORT_ZAlloc(sizeof(SECItem));
-+ if (emailProfile == NULL) {
-+ goto loser;
-+ }
-+
-+ emailProfile->data = (unsigned char*) smimeData[1].pValue;
-+ emailProfile->len = smimeData[1].ulValueLen;
-+
-+ if (profileTime) {
-+ *profileTime = (SECItem *)PORT_ZAlloc(sizeof(SECItem));
-+ if (*profileTime) {
-+ (*profileTime)->data = (unsigned char*) smimeData[0].pValue;
-+ (*profileTime)->len = smimeData[0].ulValueLen;
-+ }
-+ }
-+
-+loser:
-+ if (emailProfile == NULL) {
-+ if (smimeData[1].pValue) {
-+ PORT_Free(smimeData[1].pValue);
-+ }
-+ }
-+ if (profileTime == NULL || *profileTime == NULL) {
-+ if (smimeData[0].pValue) {
-+ PORT_Free(smimeData[0].pValue);
-+ }
-+ }
-+ return emailProfile;
-+}
-+
-+
-+SECStatus
-+PK11_SaveSMimeProfile(PK11SlotInfo *slot, char *emailAddr, SECItem *derSubj,
-+ SECItem *emailProfile, SECItem *profileTime)
-+{
-+ CK_OBJECT_CLASS smimeClass = CKO_NETSCAPE_SMIME;
-+ CK_BBOOL ck_true = CK_TRUE;
-+ CK_ATTRIBUTE theTemplate[] = {
-+ { CKA_CLASS, NULL, 0 },
-+ { CKA_TOKEN, NULL, 0 },
-+ { CKA_SUBJECT, NULL, 0 },
-+ { CKA_NETSCAPE_EMAIL, NULL, 0 },
-+ { CKA_NETSCAPE_SMIME_TIMESTAMP, NULL, 0 },
-+ { CKA_VALUE, NULL, 0 }
-+ };
-+ /* if you change the array, change the variable below as well */
-+ int realSize = 0;
-+ CK_OBJECT_HANDLE smimeh = CK_INVALID_HANDLE;
-+ CK_ATTRIBUTE *attrs = theTemplate;
-+ CK_SESSION_HANDLE rwsession;
-+ PK11SlotInfo *free_slot = NULL;
-+ CK_RV crv;
-+#ifdef DEBUG
-+ int tsize = sizeof(theTemplate)/sizeof(theTemplate[0]);
-+#endif
-+
-+ PK11_SETATTRS(attrs, CKA_CLASS, &smimeClass, sizeof(smimeClass)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_TOKEN, &ck_true, sizeof(ck_true)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_SUBJECT, derSubj->data, derSubj->len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_NETSCAPE_EMAIL,
-+ emailAddr, PORT_Strlen(emailAddr)+1); attrs++;
-+ if (profileTime) {
-+ PK11_SETATTRS(attrs, CKA_NETSCAPE_SMIME_TIMESTAMP, profileTime->data,
-+ profileTime->len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_VALUE,emailProfile->data,
-+ emailProfile->len); attrs++;
-+ }
-+ realSize = attrs - theTemplate;
-+ PORT_Assert (realSize <= tsize);
-+
-+ if (slot == NULL) {
-+ free_slot = slot = PK11_GetInternalKeySlot();
-+ /* we need to free the key slot in the end!!! */
-+ }
-+
-+ rwsession = PK11_GetRWSession(slot);
-+ if (rwsession == CK_INVALID_SESSION) {
-+ PORT_SetError(SEC_ERROR_READ_ONLY);
-+ if (free_slot) {
-+ PK11_FreeSlot(free_slot);
-+ }
-+ return SECFailure;
-+ }
-+
-+ crv = PK11_GETTAB(slot)->
-+ C_CreateObject(rwsession,theTemplate,realSize,&smimeh);
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ }
-+
-+ PK11_RestoreROSession(slot,rwsession);
-+
-+ if (free_slot) {
-+ PK11_FreeSlot(free_slot);
-+ }
-+ return SECSuccess;
-+}
-+
-+
-+CERTSignedCrl * crl_storeCRL (PK11SlotInfo *slot,char *url,
-+ CERTSignedCrl *newCrl, SECItem *derCrl, int type);
-+
-+/* import the CRL into the token */
-+
-+CERTSignedCrl* PK11_ImportCRL(PK11SlotInfo * slot, SECItem *derCRL, char *url,
-+ int type, void *wincx, PRInt32 importOptions, PRArenaPool* arena,
-+ PRInt32 decodeoptions)
-+{
-+ CERTSignedCrl *newCrl, *crl;
-+ SECStatus rv;
-+ CERTCertificate *caCert = NULL;
-+
-+ newCrl = crl = NULL;
-+
-+ do {
-+ newCrl = CERT_DecodeDERCrlWithFlags(arena, derCRL, type,
-+ decodeoptions);
-+ if (newCrl == NULL) {
-+ if (type == SEC_CRL_TYPE) {
-+ /* only promote error when the error code is too generic */
-+ if (PORT_GetError () == SEC_ERROR_BAD_DER)
-+ PORT_SetError(SEC_ERROR_CRL_INVALID);
-+ } else {
-+ PORT_SetError(SEC_ERROR_KRL_INVALID);
-+ }
-+ break;
-+ }
-+
-+ if (0 == (importOptions & CRL_IMPORT_BYPASS_CHECKS)){
-+ CERTCertDBHandle* handle = CERT_GetDefaultCertDB();
-+ PR_ASSERT(handle != NULL);
-+ caCert = CERT_FindCertByName (handle,
-+ &newCrl->crl.derName);
-+ if (caCert == NULL) {
-+ PORT_SetError(SEC_ERROR_UNKNOWN_ISSUER);
-+ break;
-+ }
-+
-+ /* If caCert is a v3 certificate, make sure that it can be used for
-+ crl signing purpose */
-+ rv = CERT_CheckCertUsage (caCert, KU_CRL_SIGN);
-+ if (rv != SECSuccess) {
-+ break;
-+ }
-+
-+ rv = CERT_VerifySignedData(&newCrl->signatureWrap, caCert,
-+ PR_Now(), wincx);
-+ if (rv != SECSuccess) {
-+ if (type == SEC_CRL_TYPE) {
-+ PORT_SetError(SEC_ERROR_CRL_BAD_SIGNATURE);
-+ } else {
-+ PORT_SetError(SEC_ERROR_KRL_BAD_SIGNATURE);
-+ }
-+ break;
-+ }
-+ }
-+
-+ crl = crl_storeCRL(slot, url, newCrl, derCRL, type);
-+
-+ } while (0);
-+
-+ if (crl == NULL) {
-+ SEC_DestroyCrl (newCrl);
-+ }
-+ if (caCert) {
-+ CERT_DestroyCertificate(caCert);
-+ }
-+ return (crl);
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pk11err.c 2004-12-13 13:06:46.682400288 +0100
-@@ -0,0 +1,147 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+/*
-+ * this file maps PKCS11 Errors into SECErrors
-+ * This is an information reducing process, since most errors are reflected
-+ * back to the user (the user doesn't care about invalid flags, or active
-+ * operations). If any of these errors need more detail in the upper layers
-+ * which call PK11 library functions, we can add more SEC_ERROR_XXX functions
-+ * and change there mappings here.
-+ */
-+#include "pkcs11t.h"
-+#include "pk11func.h"
-+#include "secerr.h"
-+
-+#ifdef PK11_ERROR_USE_ARRAY
-+
-+/*
-+ * build a static array of entries...
-+ */
-+static struct {
-+ CK_RV pk11_error;
-+ int sec_error;
-+} pk11_error_map = {
-+#define MAPERROR(x,y) {x, y},
-+
-+#else
-+
-+/* the default is to use a big switch statement */
-+int
-+PK11_MapError(CK_RV rv) {
-+
-+ switch (rv) {
-+#define MAPERROR(x,y) case x: return y;
-+
-+#endif
-+
-+/* the guts mapping */
-+ MAPERROR(CKR_OK, 0)
-+ MAPERROR(CKR_CANCEL, SEC_ERROR_IO)
-+ MAPERROR(CKR_HOST_MEMORY, SEC_ERROR_NO_MEMORY)
-+ MAPERROR(CKR_SLOT_ID_INVALID, SEC_ERROR_BAD_DATA)
-+ MAPERROR(CKR_ATTRIBUTE_READ_ONLY, SEC_ERROR_READ_ONLY)
-+ MAPERROR(CKR_ATTRIBUTE_SENSITIVE, SEC_ERROR_IO) /* XX SENSITIVE */
-+ MAPERROR(CKR_ATTRIBUTE_TYPE_INVALID, SEC_ERROR_BAD_DATA)
-+ MAPERROR(CKR_ATTRIBUTE_VALUE_INVALID, SEC_ERROR_BAD_DATA)
-+ MAPERROR(CKR_DATA_INVALID, SEC_ERROR_BAD_DATA)
-+ MAPERROR(CKR_DATA_LEN_RANGE, SEC_ERROR_BAD_DATA)
-+ MAPERROR(CKR_DEVICE_ERROR, SEC_ERROR_IO)
-+ MAPERROR(CKR_DEVICE_MEMORY, SEC_ERROR_NO_MEMORY)
-+ MAPERROR(CKR_DEVICE_REMOVED, SEC_ERROR_NO_TOKEN)
-+ MAPERROR(CKR_ENCRYPTED_DATA_INVALID, SEC_ERROR_BAD_DATA)
-+ MAPERROR(CKR_ENCRYPTED_DATA_LEN_RANGE, SEC_ERROR_BAD_DATA)
-+ MAPERROR(CKR_FUNCTION_CANCELED, SEC_ERROR_LIBRARY_FAILURE)
-+ MAPERROR(CKR_FUNCTION_NOT_PARALLEL, SEC_ERROR_LIBRARY_FAILURE)
-+ MAPERROR(CKR_KEY_HANDLE_INVALID, SEC_ERROR_INVALID_KEY)
-+ MAPERROR(CKR_KEY_SIZE_RANGE, SEC_ERROR_INVALID_KEY)
-+ MAPERROR(CKR_KEY_TYPE_INCONSISTENT, SEC_ERROR_INVALID_KEY)
-+ MAPERROR(CKR_MECHANISM_INVALID, SEC_ERROR_BAD_DATA)
-+ MAPERROR(CKR_MECHANISM_PARAM_INVALID, SEC_ERROR_BAD_DATA)
-+ MAPERROR(CKR_OBJECT_HANDLE_INVALID, SEC_ERROR_BAD_DATA)
-+ MAPERROR(CKR_OPERATION_ACTIVE, SEC_ERROR_LIBRARY_FAILURE)
-+ MAPERROR(CKR_OPERATION_NOT_INITIALIZED,SEC_ERROR_LIBRARY_FAILURE )
-+ MAPERROR(CKR_PIN_INCORRECT, SEC_ERROR_BAD_PASSWORD)
-+ MAPERROR(CKR_PIN_INVALID, SEC_ERROR_BAD_PASSWORD)
-+ MAPERROR(CKR_PIN_LEN_RANGE, SEC_ERROR_BAD_PASSWORD)
-+ MAPERROR(CKR_SESSION_CLOSED, SEC_ERROR_LIBRARY_FAILURE)
-+ MAPERROR(CKR_SESSION_COUNT, SEC_ERROR_NO_MEMORY) /* XXXX? */
-+ MAPERROR(CKR_SESSION_HANDLE_INVALID, SEC_ERROR_BAD_DATA)
-+ MAPERROR(CKR_SESSION_PARALLEL_NOT_SUPPORTED, SEC_ERROR_LIBRARY_FAILURE)
-+ MAPERROR(CKR_SESSION_READ_ONLY, SEC_ERROR_LIBRARY_FAILURE)
-+ MAPERROR(CKR_SIGNATURE_INVALID, SEC_ERROR_BAD_SIGNATURE)
-+ MAPERROR(CKR_SIGNATURE_LEN_RANGE, SEC_ERROR_BAD_SIGNATURE)
-+ MAPERROR(CKR_TEMPLATE_INCOMPLETE, SEC_ERROR_BAD_DATA)
-+ MAPERROR(CKR_TEMPLATE_INCONSISTENT, SEC_ERROR_BAD_DATA)
-+ MAPERROR(CKR_TOKEN_NOT_PRESENT, SEC_ERROR_NO_TOKEN)
-+ MAPERROR(CKR_TOKEN_NOT_RECOGNIZED, SEC_ERROR_IO)
-+ MAPERROR(CKR_TOKEN_WRITE_PROTECTED, SEC_ERROR_READ_ONLY)
-+ MAPERROR(CKR_UNWRAPPING_KEY_HANDLE_INVALID, SEC_ERROR_INVALID_KEY)
-+ MAPERROR(CKR_UNWRAPPING_KEY_SIZE_RANGE, SEC_ERROR_INVALID_KEY)
-+ MAPERROR(CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT, SEC_ERROR_INVALID_KEY)
-+ MAPERROR(CKR_USER_ALREADY_LOGGED_IN, 0)
-+ MAPERROR(CKR_USER_NOT_LOGGED_IN, SEC_ERROR_LIBRARY_FAILURE) /* XXXX */
-+ MAPERROR(CKR_USER_PIN_NOT_INITIALIZED, SEC_ERROR_NO_TOKEN)
-+ MAPERROR(CKR_USER_TYPE_INVALID, SEC_ERROR_LIBRARY_FAILURE)
-+ MAPERROR(CKR_WRAPPED_KEY_INVALID, SEC_ERROR_INVALID_KEY)
-+ MAPERROR(CKR_WRAPPED_KEY_LEN_RANGE, SEC_ERROR_INVALID_KEY)
-+ MAPERROR(CKR_WRAPPING_KEY_HANDLE_INVALID, SEC_ERROR_INVALID_KEY)
-+ MAPERROR(CKR_WRAPPING_KEY_SIZE_RANGE, SEC_ERROR_INVALID_KEY)
-+ MAPERROR(CKR_WRAPPING_KEY_TYPE_INCONSISTENT, SEC_ERROR_INVALID_KEY)
-+ MAPERROR(CKR_VENDOR_DEFINED, SEC_ERROR_LIBRARY_FAILURE)
-+
-+
-+#ifdef PK11_ERROR_USE_ARRAY
-+
-+int
-+PK11_MapError(CK_RV rv) {
-+ int size = sizeof(pk11_error_map)/sizeof(pk11_error_map[0]);
-+
-+ for (i=0; i < size; i++) {
-+ if (pk11_error_map[i].pk11_error == rv) {
-+ return pk11_error_map[i].sec_error;
-+ }
-+ }
-+ return SEC_ERROR_IO;
-+ }
-+
-+
-+#else
-+
-+ default:
-+ break;
-+ }
-+ return SEC_ERROR_IO;
-+}
-+
-+
-+#endif
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pk11init.h 2004-12-13 15:50:16.129137712 +0100
-@@ -0,0 +1,52 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+/*
-+ * Internal header file included in pk11wrap dir, or in softoken
-+ */
-+#ifndef _PK11_INIT_H_
-+#define _PK11_INIT_H_ 1
-+
-+/* hold slot default flags until we initialize a slot. This structure is only
-+ * useful between the time we define a module (either by hand or from the
-+ * database) and the time the module is loaded. Not reference counted */
-+struct PK11PreSlotInfoStr {
-+ CK_SLOT_ID slotID; /* slot these flags are for */
-+ unsigned long defaultFlags; /* bit mask of default implementation this slot
-+ * provides */
-+ int askpw; /* slot specific password bits */
-+ long timeout; /* slot specific timeout value */
-+ char hasRootCerts; /* is this the root cert PKCS #11 module? */
-+ char hasRootTrust; /* is this the root cert PKCS #11 module? */
-+};
-+
-+#endif /* _PK11_INIT_H_ 1 */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pk11kea.c 2004-12-13 13:06:46.682400288 +0100
-@@ -0,0 +1,230 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+/*
-+ * This file implements the Symkey wrapper and the PKCS context
-+ * Interfaces.
-+ */
-+
-+#include "seccomon.h"
-+#include "secmod.h"
-+#include "nssilock.h"
-+#include "secmodi.h"
-+#include "pkcs11.h"
-+#include "pk11func.h"
-+#include "secitem.h"
-+#include "key.h"
-+#include "secasn1.h"
-+#include "sechash.h"
-+#include "cert.h"
-+#include "secerr.h"
-+
-+/*
-+ * find an RSA public key on a card
-+ */
-+static CK_OBJECT_HANDLE
-+pk11_FindRSAPubKey(PK11SlotInfo *slot)
-+{
-+ CK_KEY_TYPE key_type = CKK_RSA;
-+ CK_OBJECT_CLASS class_type = CKO_PUBLIC_KEY;
-+ CK_ATTRIBUTE theTemplate[2];
-+ int template_count = sizeof(theTemplate)/sizeof(theTemplate[0]);
-+ CK_ATTRIBUTE *attrs = theTemplate;
-+
-+ PK11_SETATTRS(attrs,CKA_CLASS,&class_type,sizeof(class_type)); attrs++;
-+ PK11_SETATTRS(attrs,CKA_KEY_TYPE,&key_type,sizeof(key_type)); attrs++;
-+ template_count = attrs - theTemplate;
-+ PR_ASSERT(template_count <= sizeof(theTemplate)/sizeof(CK_ATTRIBUTE));
-+
-+ return pk11_FindObjectByTemplate(slot,theTemplate,template_count);
-+}
-+
-+PK11SymKey *
-+pk11_KeyExchange(PK11SlotInfo *slot,CK_MECHANISM_TYPE type,
-+ CK_ATTRIBUTE_TYPE operation, CK_FLAGS flags,
-+ PRBool isPerm, PK11SymKey *symKey)
-+{
-+ PK11SymKey *newSymKey = NULL;
-+ SECStatus rv;
-+ /* performance improvement can go here --- use a generated key to as a
-+ * per startup wrapping key. If it exists, use it, otherwise do a full
-+ * key exchange. */
-+
-+ /* find a common Key Exchange algorithm */
-+ /* RSA */
-+ if (PK11_DoesMechanism(symKey->slot, CKM_RSA_PKCS) &&
-+ PK11_DoesMechanism(slot,CKM_RSA_PKCS)) {
-+ CK_OBJECT_HANDLE pubKeyHandle = CK_INVALID_HANDLE;
-+ CK_OBJECT_HANDLE privKeyHandle = CK_INVALID_HANDLE;
-+ SECKEYPublicKey *pubKey = NULL;
-+ SECKEYPrivateKey *privKey = NULL;
-+ SECItem wrapData;
-+ unsigned int symKeyLength = PK11_GetKeyLength(symKey);
-+
-+ wrapData.data = NULL;
-+
-+ /* find RSA Public Key on target */
-+ pubKeyHandle = pk11_FindRSAPubKey(slot);
-+ if (pubKeyHandle != CK_INVALID_HANDLE) {
-+ privKeyHandle = PK11_MatchItem(slot,pubKeyHandle,CKO_PRIVATE_KEY);
-+ }
-+
-+ /* if no key exists, generate a key pair */
-+ if (privKeyHandle == CK_INVALID_HANDLE) {
-+ PK11RSAGenParams rsaParams;
-+
-+ if (symKeyLength > 53) /* bytes */ {
-+ /* we'd have to generate an RSA key pair > 512 bits long,
-+ ** and that's too costly. Don't even try.
-+ */
-+ PORT_SetError( SEC_ERROR_CANNOT_MOVE_SENSITIVE_KEY );
-+ goto rsa_failed;
-+ }
-+ rsaParams.keySizeInBits =
-+ (symKeyLength > 21 || symKeyLength == 0) ? 512 : 256;
-+ rsaParams.pe = 0x10001;
-+ privKey = PK11_GenerateKeyPair(slot,CKM_RSA_PKCS_KEY_PAIR_GEN,
-+ &rsaParams, &pubKey,PR_FALSE,PR_TRUE,symKey->cx);
-+ } else {
-+ /* if keys exist, build SECKEY data structures for them */
-+ privKey = PK11_MakePrivKey(slot,nullKey, PR_TRUE, privKeyHandle,
-+ symKey->cx);
-+ if (privKey != NULL) {
-+ pubKey = PK11_ExtractPublicKey(slot, rsaKey, pubKeyHandle);
-+ if (pubKey && pubKey->pkcs11Slot) {
-+ PK11_FreeSlot(pubKey->pkcs11Slot);
-+ pubKey->pkcs11Slot = NULL;
-+ pubKey->pkcs11ID = CK_INVALID_HANDLE;
-+ }
-+ }
-+ }
-+ if (privKey == NULL) goto rsa_failed;
-+ if (pubKey == NULL) goto rsa_failed;
-+
-+ wrapData.len = SECKEY_PublicKeyStrength(pubKey);
-+ if (!wrapData.len) goto rsa_failed;
-+ wrapData.data = PORT_Alloc(wrapData.len);
-+ if (wrapData.data == NULL) goto rsa_failed;
-+
-+ /* now wrap the keys in and out */
-+ rv = PK11_PubWrapSymKey(CKM_RSA_PKCS, pubKey, symKey, &wrapData);
-+ if (rv == SECSuccess) {
-+ newSymKey = PK11_PubUnwrapSymKeyWithFlagsPerm(privKey,
-+ &wrapData,type,operation,symKeyLength,flags,isPerm);
-+ }
-+rsa_failed:
-+ if (wrapData.data != NULL) PORT_Free(wrapData.data);
-+ if (privKey != NULL) SECKEY_DestroyPrivateKey(privKey);
-+ if (pubKey != NULL) SECKEY_DestroyPublicKey(pubKey);
-+
-+ return newSymKey;
-+ }
-+ /* KEA */
-+ if (PK11_DoesMechanism(symKey->slot, CKM_KEA_KEY_DERIVE) &&
-+ PK11_DoesMechanism(slot,CKM_KEA_KEY_DERIVE)) {
-+ CERTCertificate *certSource = NULL;
-+ CERTCertificate *certTarget = NULL;
-+ SECKEYPublicKey *pubKeySource = NULL;
-+ SECKEYPublicKey *pubKeyTarget = NULL;
-+ SECKEYPrivateKey *privKeySource = NULL;
-+ SECKEYPrivateKey *privKeyTarget = NULL;
-+ PK11SymKey *tekSource = NULL;
-+ PK11SymKey *tekTarget = NULL;
-+ SECItem Ra,wrap;
-+
-+ /* can only exchange skipjack keys */
-+ if ((type != CKM_SKIPJACK_CBC64) || (isPerm)) {
-+ PORT_SetError( SEC_ERROR_NO_MODULE );
-+ goto kea_failed;
-+ }
-+
-+ /* find a pair of certs we can use */
-+ rv = PK11_GetKEAMatchedCerts(symKey->slot,slot,&certSource,&certTarget);
-+ if (rv != SECSuccess) goto kea_failed;
-+
-+ /* get all the key pairs */
-+ pubKeyTarget = CERT_ExtractPublicKey(certSource);
-+ pubKeySource = CERT_ExtractPublicKey(certTarget);
-+ privKeySource =
-+ PK11_FindKeyByDERCert(symKey->slot,certSource,symKey->cx);
-+ privKeyTarget =
-+ PK11_FindKeyByDERCert(slot,certTarget,symKey->cx);
-+
-+ if ((pubKeySource == NULL) || (pubKeyTarget == NULL) ||
-+ (privKeySource == NULL) || (privKeyTarget == NULL)) goto kea_failed;
-+
-+ /* generate the wrapping TEK's */
-+ Ra.data = (unsigned char*)PORT_Alloc(128 /* FORTEZZA RA MAGIC */);
-+ Ra.len = 128;
-+ if (Ra.data == NULL) goto kea_failed;
-+
-+ tekSource = PK11_PubDerive(privKeySource,pubKeyTarget,PR_TRUE,&Ra,NULL,
-+ CKM_SKIPJACK_WRAP, CKM_KEA_KEY_DERIVE,CKA_WRAP,0,symKey->cx);
-+ tekTarget = PK11_PubDerive(privKeyTarget,pubKeySource,PR_FALSE,&Ra,NULL,
-+ CKM_SKIPJACK_WRAP, CKM_KEA_KEY_DERIVE,CKA_WRAP,0,symKey->cx);
-+ PORT_Free(Ra.data);
-+
-+ if ((tekSource == NULL) || (tekTarget == NULL)) { goto kea_failed; }
-+
-+ /* wrap the key out of Source into target */
-+ wrap.data = (unsigned char*)PORT_Alloc(12); /* MAGIC SKIPJACK LEN */
-+ wrap.len = 12;
-+
-+ /* paranoia to prevent infinite recursion on bugs */
-+ PORT_Assert(tekSource->slot == symKey->slot);
-+ if (tekSource->slot != symKey->slot) {
-+ PORT_SetError( SEC_ERROR_NO_MODULE );
-+ goto kea_failed;
-+ }
-+
-+ rv = PK11_WrapSymKey(CKM_SKIPJACK_WRAP,NULL,tekSource,symKey,&wrap);
-+ if (rv == SECSuccess) {
-+ newSymKey = PK11_UnwrapSymKeyWithFlags(tekTarget,
-+ CKM_SKIPJACK_WRAP, NULL,
-+ &wrap, type, operation, flags, symKey->size);
-+ }
-+ PORT_Free(wrap.data);
-+kea_failed:
-+ if (certSource == NULL) CERT_DestroyCertificate(certSource);
-+ if (certTarget == NULL) CERT_DestroyCertificate(certTarget);
-+ if (pubKeySource == NULL) SECKEY_DestroyPublicKey(pubKeySource);
-+ if (pubKeyTarget == NULL) SECKEY_DestroyPublicKey(pubKeyTarget);
-+ if (privKeySource == NULL) SECKEY_DestroyPrivateKey(privKeySource);
-+ if (privKeyTarget == NULL) SECKEY_DestroyPrivateKey(privKeyTarget);
-+ if (tekSource == NULL) PK11_FreeSymKey(tekSource);
-+ if (tekTarget == NULL) PK11_FreeSymKey(tekTarget);
-+ return newSymKey;
-+ }
-+ PORT_SetError( SEC_ERROR_NO_MODULE );
-+ return NULL;
-+}
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pk11list.c 2004-12-13 13:06:46.682400288 +0100
-@@ -0,0 +1,169 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+/*
-+ * Locking and queue management primatives
-+ *
-+ */
-+
-+#include "seccomon.h"
-+#include "nssilock.h"
-+#include "prmon.h"
-+#include "secmod.h"
-+#include "secmodi.h"
-+#include "prlong.h"
-+
-+#define ISREADING 1
-+#define ISWRITING 2
-+#define WANTWRITE 4
-+#define ISLOCKED 3
-+
-+/*
-+ * create a new lock for a Module List
-+ */
-+SECMODListLock *SECMOD_NewListLock() {
-+ SECMODListLock *modLock;
-+
-+ modLock = (SECMODListLock*)PORT_Alloc(sizeof(SECMODListLock));
-+#ifdef PKCS11_USE_THREADS
-+ modLock->mutex = NULL;
-+ modLock->monitor = PZ_NewMonitor(nssILockList);
-+#else
-+ modLock->mutex = NULL;
-+ modLock->monitor = NULL;
-+#endif
-+ modLock->state = 0;
-+ modLock->count = 0;
-+ return modLock;
-+}
-+
-+/*
-+ * destroy the lock
-+ */
-+void SECMOD_DestroyListLock(SECMODListLock *lock) {
-+ PK11_USE_THREADS(PZ_DestroyMonitor(lock->monitor);)
-+ PORT_Free(lock);
-+}
-+
-+
-+/*
-+ * Lock the List for Read: NOTE: this assumes the reading isn't so common
-+ * the writing will be starved.
-+ */
-+void SECMOD_GetReadLock(SECMODListLock *modLock) {
-+#ifdef PKCS11_USE_THREADS
-+ if (modLock == NULL) return;
-+ PZ_EnterMonitor(modLock->monitor);
-+ while (modLock->state & ISWRITING) {
-+ PZ_Wait(modLock->monitor,PR_INTERVAL_NO_TIMEOUT); /* wait until woken up */
-+ }
-+ modLock->state |= ISREADING;
-+ modLock->count++;
-+ PZ_ExitMonitor(modLock->monitor);
-+#endif
-+}
-+
-+/*
-+ * Release the Read lock
-+ */
-+void SECMOD_ReleaseReadLock(SECMODListLock *modLock) {
-+#ifdef PKCS11_USE_THREADS
-+ if (modLock == NULL) return;
-+ PZ_EnterMonitor(modLock->monitor);
-+ modLock->count--;
-+ if (modLock->count == 0) {
-+ modLock->state &= ~ISREADING;
-+ if (modLock->state & WANTWRITE) {
-+ PZ_Notify(modLock->monitor); /* only one writer at a time */
-+ }
-+ }
-+ PZ_ExitMonitor(modLock->monitor);
-+#endif
-+}
-+
-+
-+/*
-+ * lock the list for Write
-+ */
-+void SECMOD_GetWriteLock(SECMODListLock *modLock) {
-+#ifdef PKCS11_USE_THREADS
-+ if (modLock == NULL) return;
-+ PZ_EnterMonitor(modLock->monitor);
-+ while (modLock->state & ISLOCKED) {
-+ modLock->state |= WANTWRITE;
-+ PZ_Wait(modLock->monitor,PR_INTERVAL_NO_TIMEOUT); /* wait until woken up */
-+ }
-+ modLock->state = ISWRITING;
-+ PZ_ExitMonitor(modLock->monitor);
-+#endif
-+}
-+
-+
-+/*
-+ * Release the Write Lock: NOTE, this code is pretty inefficient if you have
-+ * lots of write collisions.
-+ */
-+void SECMOD_ReleaseWriteLock(SECMODListLock *modLock) {
-+#ifdef PKCS11_USE_THREADS
-+ if (modLock == NULL) return;
-+ PZ_EnterMonitor(modLock->monitor);
-+ modLock->state = 0;
-+ PR_NotifyAll(modLock->monitor); /* enable all the readers */
-+ PZ_ExitMonitor(modLock->monitor);
-+#endif
-+}
-+
-+
-+/*
-+ * must Hold the Write lock
-+ */
-+void
-+SECMOD_RemoveList(SECMODModuleList **parent, SECMODModuleList *child) {
-+ *parent = child->next;
-+ child->next = NULL;
-+}
-+
-+/*
-+ * if lock is not specified, it must already be held
-+ */
-+void
-+SECMOD_AddList(SECMODModuleList *parent, SECMODModuleList *child,
-+ SECMODListLock *lock) {
-+ if (lock) { SECMOD_GetWriteLock(lock); }
-+
-+ child->next = parent->next;
-+ parent->next = child;
-+
-+ if (lock) { SECMOD_ReleaseWriteLock(lock); }
-+}
-+
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pk11load.c 2004-12-13 13:06:46.682400288 +0100
-@@ -0,0 +1,333 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+/*
-+ * The following handles the loading, unloading and management of
-+ * various PCKS #11 modules
-+ */
-+#include "seccomon.h"
-+#include "pkcs11.h"
-+#include "secmod.h"
-+#include "prlink.h"
-+#include "pk11func.h"
-+#include "secmodi.h"
-+#include "nssilock.h"
-+
-+extern void FC_GetFunctionList(void);
-+extern void NSC_GetFunctionList(void);
-+extern void NSC_ModuleDBFunc(void);
-+
-+#ifdef DEBUG
-+#define DEBUG_MODULE 1
-+#endif
-+
-+#ifdef DEBUG_MODULE
-+static char *modToDBG = NULL;
-+
-+#include "debug_module.c"
-+#endif
-+
-+/* build the PKCS #11 2.01 lock files */
-+CK_RV PR_CALLBACK secmodCreateMutext(CK_VOID_PTR_PTR pmutex) {
-+ *pmutex = (CK_VOID_PTR) PZ_NewLock(nssILockOther);
-+ if ( *pmutex ) return CKR_OK;
-+ return CKR_HOST_MEMORY;
-+}
-+
-+CK_RV PR_CALLBACK secmodDestroyMutext(CK_VOID_PTR mutext) {
-+ PZ_DestroyLock((PZLock *)mutext);
-+ return CKR_OK;
-+}
-+
-+CK_RV PR_CALLBACK secmodLockMutext(CK_VOID_PTR mutext) {
-+ PZ_Lock((PZLock *)mutext);
-+ return CKR_OK;
-+}
-+
-+CK_RV PR_CALLBACK secmodUnlockMutext(CK_VOID_PTR mutext) {
-+ PZ_Unlock((PZLock *)mutext);
-+ return CKR_OK;
-+}
-+
-+static SECMODModuleID nextModuleID = 1;
-+static CK_C_INITIALIZE_ARGS secmodLockFunctions = {
-+ secmodCreateMutext, secmodDestroyMutext, secmodLockMutext,
-+ secmodUnlockMutext, CKF_LIBRARY_CANT_CREATE_OS_THREADS|
-+ CKF_OS_LOCKING_OK
-+ ,NULL
-+};
-+
-+/*
-+ * set the hasRootCerts flags in the module so it can be stored back
-+ * into the database.
-+ */
-+void
-+SECMOD_SetRootCerts(PK11SlotInfo *slot, SECMODModule *mod) {
-+ PK11PreSlotInfo *psi = NULL;
-+ int i;
-+
-+ if (slot->hasRootCerts) {
-+ for (i=0; i < mod->slotInfoCount; i++) {
-+ if (slot->slotID == mod->slotInfo[i].slotID) {
-+ psi = &mod->slotInfo[i];
-+ break;
-+ }
-+ }
-+ if (psi == NULL) {
-+ /* allocate more slots */
-+ PK11PreSlotInfo *psi_list = (PK11PreSlotInfo *)
-+ PORT_ArenaAlloc(mod->arena,
-+ (mod->slotInfoCount+1)* sizeof(PK11PreSlotInfo));
-+ /* copy the old ones */
-+ if (mod->slotInfoCount > 0) {
-+ PORT_Memcpy(psi_list,mod->slotInfo,
-+ (mod->slotInfoCount)*sizeof(PK11PreSlotInfo));
-+ }
-+ /* assign psi to the last new slot */
-+ psi = &psi_list[mod->slotInfoCount];
-+ psi->slotID = slot->slotID;
-+ psi->askpw = 0;
-+ psi->timeout = 0;
-+ psi ->defaultFlags = 0;
-+
-+ /* increment module count & store new list */
-+ mod->slotInfo = psi_list;
-+ mod->slotInfoCount++;
-+
-+ }
-+ psi->hasRootCerts = 1;
-+ }
-+}
-+
-+/*
-+ * load a new module into our address space and initialize it.
-+ */
-+SECStatus
-+SECMOD_LoadPKCS11Module(SECMODModule *mod) {
-+ PRLibrary *library = NULL;
-+ CK_C_GetFunctionList entry = NULL;
-+ char * full_name;
-+ CK_INFO info;
-+ CK_ULONG slotCount = 0;
-+
-+
-+ if (mod->loaded) return SECSuccess;
-+
-+ /* intenal modules get loaded from their internal list */
-+ if (mod->internal) {
-+ /* internal, statically get the C_GetFunctionList function */
-+ if (mod->isFIPS) {
-+ entry = (CK_C_GetFunctionList) FC_GetFunctionList;
-+ } else {
-+ entry = (CK_C_GetFunctionList) NSC_GetFunctionList;
-+ }
-+ if (mod->isModuleDB) {
-+ mod->moduleDBFunc = (void *) NSC_ModuleDBFunc;
-+ }
-+ if (mod->moduleDBOnly) {
-+ mod->loaded = PR_TRUE;
-+ return SECSuccess;
-+ }
-+ } else {
-+ /* Not internal, load the DLL and look up C_GetFunctionList */
-+ if (mod->dllName == NULL) {
-+ return SECFailure;
-+ }
-+
-+#ifdef notdef
-+ /* look up the library name */
-+ full_name = PR_GetLibraryName(PR_GetLibraryPath(),mod->dllName);
-+ if (full_name == NULL) {
-+ return SECFailure;
-+ }
-+#else
-+ full_name = PORT_Strdup(mod->dllName);
-+#endif
-+
-+ /* load the library. If this succeeds, then we have to remember to
-+ * unload the library if anything goes wrong from here on out...
-+ */
-+ library = PR_LoadLibrary(full_name);
-+ mod->library = (void *)library;
-+ PORT_Free(full_name);
-+ if (library == NULL) {
-+ return SECFailure;
-+ }
-+
-+ /*
-+ * now we need to get the entry point to find the function pointers
-+ */
-+ if (!mod->moduleDBOnly) {
-+ entry = (CK_C_GetFunctionList)
-+ PR_FindSymbol(library, "C_GetFunctionList");
-+ }
-+ if (mod->isModuleDB) {
-+ mod->moduleDBFunc = (void *)
-+ PR_FindSymbol(library, "NSS_ReturnModuleSpecData");
-+ }
-+ if (mod->moduleDBFunc == NULL) mod->isModuleDB = PR_FALSE;
-+ if (entry == NULL) {
-+ if (mod->isModuleDB) {
-+ mod->loaded = PR_TRUE;
-+ mod->moduleDBOnly = PR_TRUE;
-+ return SECSuccess;
-+ }
-+ PR_UnloadLibrary(library);
-+ return SECFailure;
-+ }
-+ }
-+
-+ /*
-+ * We need to get the function list
-+ */
-+ if ((*entry)((CK_FUNCTION_LIST_PTR *)&mod->functionList) != CKR_OK)
-+ goto fail;
-+
-+#ifdef DEBUG_MODULE
-+ if (PR_TRUE) {
-+ modToDBG = PR_GetEnv("NSS_DEBUG_PKCS11_MODULE");
-+ if (modToDBG && strcmp(mod->commonName, modToDBG) == 0) {
-+ mod->functionList = (void *)nss_InsertDeviceLog(
-+ (CK_FUNCTION_LIST_PTR)mod->functionList);
-+ }
-+ }
-+#endif
-+
-+ mod->isThreadSafe = PR_TRUE;
-+ /* Now we initialize the module */
-+ if (mod->libraryParams) {
-+ secmodLockFunctions.LibraryParameters = (void *) mod->libraryParams;
-+ } else {
-+ secmodLockFunctions.LibraryParameters = NULL;
-+ }
-+ if (PK11_GETTAB(mod)->C_Initialize(&secmodLockFunctions) != CKR_OK) {
-+ mod->isThreadSafe = PR_FALSE;
-+ if (PK11_GETTAB(mod)->C_Initialize(NULL) != CKR_OK) goto fail;
-+ }
-+
-+ /* check the version number */
-+ if (PK11_GETTAB(mod)->C_GetInfo(&info) != CKR_OK) goto fail2;
-+ if (info.cryptokiVersion.major != 2) goto fail2;
-+ /* all 2.0 are a priori *not* thread safe */
-+ if (info.cryptokiVersion.minor < 1) mod->isThreadSafe = PR_FALSE;
-+
-+
-+ /* If we don't have a common name, get it from the PKCS 11 module */
-+ if ((mod->commonName == NULL) || (mod->commonName[0] == 0)) {
-+ mod->commonName = PK11_MakeString(mod->arena,NULL,
-+ (char *)info.libraryDescription, sizeof(info.libraryDescription));
-+ if (mod->commonName == NULL) goto fail2;
-+ }
-+
-+
-+ /* initialize the Slots */
-+ if (PK11_GETTAB(mod)->C_GetSlotList(CK_FALSE, NULL, &slotCount) == CKR_OK) {
-+ CK_SLOT_ID *slotIDs;
-+ int i;
-+ CK_RV rv;
-+
-+ mod->slots = (PK11SlotInfo **)PORT_ArenaAlloc(mod->arena,
-+ sizeof(PK11SlotInfo *) * slotCount);
-+ if (mod->slots == NULL) goto fail2;
-+
-+ slotIDs = (CK_SLOT_ID *) PORT_Alloc(sizeof(CK_SLOT_ID)*slotCount);
-+ if (slotIDs == NULL) {
-+ goto fail2;
-+ }
-+ rv = PK11_GETTAB(mod)->C_GetSlotList(CK_FALSE, slotIDs, &slotCount);
-+ if (rv != CKR_OK) {
-+ PORT_Free(slotIDs);
-+ goto fail2;
-+ }
-+
-+ /* Initialize each slot */
-+ for (i=0; i < (int)slotCount; i++) {
-+ mod->slots[i] = PK11_NewSlotInfo(mod);
-+ PK11_InitSlot(mod,slotIDs[i],mod->slots[i]);
-+ /* look down the slot info table */
-+ PK11_LoadSlotList(mod->slots[i],mod->slotInfo,mod->slotInfoCount);
-+ SECMOD_SetRootCerts(mod->slots[i],mod);
-+ }
-+ mod->slotCount = slotCount;
-+ mod->slotInfoCount = 0;
-+ PORT_Free(slotIDs);
-+ }
-+
-+ mod->loaded = PR_TRUE;
-+ mod->moduleID = nextModuleID++;
-+ return SECSuccess;
-+fail2:
-+ PK11_GETTAB(mod)->C_Finalize(NULL);
-+fail:
-+ mod->functionList = NULL;
-+ if (library) PR_UnloadLibrary(library);
-+ return SECFailure;
-+}
-+
-+SECStatus
-+SECMOD_UnloadModule(SECMODModule *mod) {
-+ PRLibrary *library;
-+
-+ if (!mod->loaded) {
-+ return SECFailure;
-+ }
-+
-+ if (!mod->moduleDBOnly) PK11_GETTAB(mod)->C_Finalize(NULL);
-+ mod->moduleID = 0;
-+ mod->loaded = PR_FALSE;
-+
-+ /* do we want the semantics to allow unloading the internal library?
-+ * if not, we should change this to SECFailure and move it above the
-+ * mod->loaded = PR_FALSE; */
-+ if (mod->internal) {
-+ return SECSuccess;
-+ }
-+
-+ library = (PRLibrary *)mod->library;
-+ /* paranoia */
-+ if (library == NULL) {
-+ return SECFailure;
-+ }
-+
-+ PR_UnloadLibrary(library);
-+ return SECSuccess;
-+}
-+
-+void
-+nss_DumpModuleLog(void)
-+{
-+#ifdef DEBUG_MODULE
-+ if (modToDBG) {
-+ print_final_statistics();
-+ }
-+#endif
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pk11pars.c 2004-12-13 13:06:46.682400288 +0100
-@@ -0,0 +1,412 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 2001 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+/*
-+ * The following handles the loading, unloading and management of
-+ * various PCKS #11 modules
-+ */
-+
-+#include <ctype.h>
-+#include "pkcs11.h"
-+#include "seccomon.h"
-+#include "secmod.h"
-+#include "secmodi.h"
-+#include "pki3hack.h"
-+#include "secerr.h"
-+
-+#include "pk11pars.h"
-+
-+/* create a new module */
-+static SECMODModule *
-+secmod_NewModule(void)
-+{
-+ SECMODModule *newMod;
-+ PRArenaPool *arena;
-+
-+
-+ /* create an arena in which dllName and commonName can be
-+ * allocated.
-+ */
-+ arena = PORT_NewArena(512);
-+ if (arena == NULL) {
-+ return NULL;
-+ }
-+
-+ newMod = (SECMODModule *)PORT_ArenaAlloc(arena,sizeof (SECMODModule));
-+ if (newMod == NULL) {
-+ PORT_FreeArena(arena,PR_FALSE);
-+ return NULL;
-+ }
-+
-+ /*
-+ * initialize of the fields of the module
-+ */
-+ newMod->arena = arena;
-+ newMod->internal = PR_FALSE;
-+ newMod->loaded = PR_FALSE;
-+ newMod->isFIPS = PR_FALSE;
-+ newMod->dllName = NULL;
-+ newMod->commonName = NULL;
-+ newMod->library = NULL;
-+ newMod->functionList = NULL;
-+ newMod->slotCount = 0;
-+ newMod->slots = NULL;
-+ newMod->slotInfo = NULL;
-+ newMod->slotInfoCount = 0;
-+ newMod->refCount = 1;
-+ newMod->ssl[0] = 0;
-+ newMod->ssl[1] = 0;
-+ newMod->libraryParams = NULL;
-+ newMod->moduleDBFunc = NULL;
-+ newMod->parent = NULL;
-+ newMod->isCritical = PR_FALSE;
-+ newMod->isModuleDB = PR_FALSE;
-+ newMod->moduleDBOnly = PR_FALSE;
-+ newMod->trustOrder = 0;
-+ newMod->cipherOrder = 0;
-+#ifdef PKCS11_USE_THREADS
-+ newMod->refLock = (void *)PZ_NewLock(nssILockRefLock);
-+ if (newMod->refLock == NULL) {
-+ PORT_FreeArena(arena,PR_FALSE);
-+ return NULL;
-+ }
-+#else
-+ newMod->refLock = NULL;
-+#endif
-+ return newMod;
-+
-+}
-+
-+/*
-+ * for 3.4 we continue to use the old SECMODModule structure
-+ */
-+SECMODModule *
-+SECMOD_CreateModule(const char *library, const char *moduleName,
-+ const char *parameters, const char *nss)
-+{
-+ SECMODModule *mod = secmod_NewModule();
-+ char *slotParams,*ciphers;
-+ /* pk11pars.h still does not have const char * interfaces */
-+ char *nssc = (char *)nss;
-+ if (mod == NULL) return NULL;
-+
-+ mod->commonName = PORT_ArenaStrdup(mod->arena,moduleName ? moduleName : "");
-+ if (library) {
-+ mod->dllName = PORT_ArenaStrdup(mod->arena,library);
-+ }
-+ /* new field */
-+ if (parameters) {
-+ mod->libraryParams = PORT_ArenaStrdup(mod->arena,parameters);
-+ }
-+ mod->internal = pk11_argHasFlag("flags","internal",nssc);
-+ mod->isFIPS = pk11_argHasFlag("flags","FIPS",nssc);
-+ mod->isCritical = pk11_argHasFlag("flags","critical",nssc);
-+ slotParams = pk11_argGetParamValue("slotParams",nssc);
-+ mod->slotInfo = pk11_argParseSlotInfo(mod->arena,slotParams,
-+ &mod->slotInfoCount);
-+ if (slotParams) PORT_Free(slotParams);
-+ /* new field */
-+ mod->trustOrder = pk11_argReadLong("trustOrder",nssc,
-+ PK11_DEFAULT_TRUST_ORDER,NULL);
-+ /* new field */
-+ mod->cipherOrder = pk11_argReadLong("cipherOrder",nssc,
-+ PK11_DEFAULT_CIPHER_ORDER,NULL);
-+ /* new field */
-+ mod->isModuleDB = pk11_argHasFlag("flags","moduleDB",nssc);
-+ mod->moduleDBOnly = pk11_argHasFlag("flags","moduleDBOnly",nssc);
-+ if (mod->moduleDBOnly) mod->isModuleDB = PR_TRUE;
-+
-+ ciphers = pk11_argGetParamValue("ciphers",nssc);
-+ pk11_argSetNewCipherFlags(&mod->ssl[0],ciphers);
-+ if (ciphers) PORT_Free(ciphers);
-+
-+ secmod_PrivateModuleCount++;
-+
-+ return mod;
-+}
-+
-+static char *
-+pk11_mkModuleSpec(SECMODModule * module)
-+{
-+ char *nss = NULL, *modSpec = NULL, **slotStrings = NULL;
-+ int slotCount, i, si;
-+
-+ /* allocate target slot info strings */
-+ slotCount = 0;
-+ if (module->slotCount) {
-+ for (i=0; i < module->slotCount; i++) {
-+ if (module->slots[i]->defaultFlags !=0) {
-+ slotCount++;
-+ }
-+ }
-+ } else {
-+ slotCount = module->slotInfoCount;
-+ }
-+
-+ slotStrings = (char **)PORT_ZAlloc(slotCount*sizeof(char *));
-+ if (slotStrings == NULL) {
-+ goto loser;
-+ }
-+
-+
-+ /* build the slot info strings */
-+ if (module->slotCount) {
-+ for (i=0, si= 0; i < module->slotCount; i++) {
-+ if (module->slots[i]->defaultFlags) {
-+ PORT_Assert(si < slotCount);
-+ if (si >= slotCount) break;
-+ slotStrings[si] = pk11_mkSlotString(module->slots[i]->slotID,
-+ module->slots[i]->defaultFlags,
-+ module->slots[i]->timeout,
-+ module->slots[i]->askpw,
-+ module->slots[i]->hasRootCerts,
-+ module->slots[i]->hasRootTrust);
-+ si++;
-+ }
-+ }
-+ } else {
-+ for (i=0; i < slotCount; i++) {
-+ slotStrings[i] = pk11_mkSlotString(module->slotInfo[i].slotID,
-+ module->slotInfo[i].defaultFlags,
-+ module->slotInfo[i].timeout,
-+ module->slotInfo[i].askpw,
-+ module->slotInfo[i].hasRootCerts,
-+ module->slotInfo[i].hasRootTrust);
-+ }
-+ }
-+
-+ nss = pk11_mkNSS(slotStrings,slotCount,module->internal, module->isFIPS,
-+ module->isModuleDB, module->moduleDBOnly, module->isCritical,
-+ module->trustOrder,module->cipherOrder,module->ssl[0],module->ssl[1]);
-+ modSpec= pk11_mkNewModuleSpec(module->dllName,module->commonName,
-+ module->libraryParams,nss);
-+ PORT_Free(slotStrings);
-+ PR_smprintf_free(nss);
-+loser:
-+ return (modSpec);
-+}
-+
-+
-+char **
-+SECMOD_GetModuleSpecList(SECMODModule *module)
-+{
-+ SECMODModuleDBFunc func = (SECMODModuleDBFunc) module->moduleDBFunc;
-+ if (func) {
-+ return (*func)(SECMOD_MODULE_DB_FUNCTION_FIND,
-+ module->libraryParams,NULL);
-+ }
-+ return NULL;
-+}
-+
-+SECStatus
-+SECMOD_AddPermDB(SECMODModule *module)
-+{
-+ SECMODModuleDBFunc func;
-+ char *moduleSpec;
-+ char **retString;
-+
-+ if (module->parent == NULL) return SECFailure;
-+
-+ func = (SECMODModuleDBFunc) module->parent->moduleDBFunc;
-+ if (func) {
-+ moduleSpec = pk11_mkModuleSpec(module);
-+ retString = (*func)(SECMOD_MODULE_DB_FUNCTION_ADD,
-+ module->parent->libraryParams,moduleSpec);
-+ PORT_Free(moduleSpec);
-+ if (retString != NULL) return SECSuccess;
-+ }
-+ return SECFailure;
-+}
-+
-+SECStatus
-+SECMOD_DeletePermDB(SECMODModule *module)
-+{
-+ SECMODModuleDBFunc func;
-+ char *moduleSpec;
-+ char **retString;
-+
-+ if (module->parent == NULL) return SECFailure;
-+
-+ func = (SECMODModuleDBFunc) module->parent->moduleDBFunc;
-+ if (func) {
-+ moduleSpec = pk11_mkModuleSpec(module);
-+ retString = (*func)(SECMOD_MODULE_DB_FUNCTION_DEL,
-+ module->parent->libraryParams,moduleSpec);
-+ PORT_Free(moduleSpec);
-+ if (retString != NULL) return SECSuccess;
-+ }
-+ return SECFailure;
-+}
-+
-+SECStatus
-+SECMOD_FreeModuleSpecList(SECMODModule *module, char **moduleSpecList)
-+{
-+ SECMODModuleDBFunc func = (SECMODModuleDBFunc) module->moduleDBFunc;
-+ char **retString;
-+ if (func) {
-+ retString = (*func)(SECMOD_MODULE_DB_FUNCTION_RELEASE,
-+ module->libraryParams,moduleSpecList);
-+ if (retString != NULL) return SECSuccess;
-+ }
-+ return SECFailure;
-+}
-+
-+/*
-+ * load a PKCS#11 module but do not add it to the default NSS trust domain
-+ */
-+SECMODModule *
-+SECMOD_LoadModule(char *modulespec,SECMODModule *parent, PRBool recurse)
-+{
-+ char *library = NULL, *moduleName = NULL, *parameters = NULL, *nss= NULL;
-+ SECStatus status;
-+ SECMODModule *module = NULL;
-+ SECStatus rv;
-+
-+ /* initialize the underlying module structures */
-+ SECMOD_Init();
-+
-+ status = pk11_argParseModuleSpec(modulespec, &library, &moduleName,
-+ &parameters, &nss);
-+ if (status != SECSuccess) {
-+ goto loser;
-+ }
-+
-+ module = SECMOD_CreateModule(library, moduleName, parameters, nss);
-+ if (library) PORT_Free(library);
-+ if (moduleName) PORT_Free(moduleName);
-+ if (parameters) PORT_Free(parameters);
-+ if (nss) PORT_Free(nss);
-+ if (!module) {
-+ goto loser;
-+ }
-+ if (parent) {
-+ module->parent = SECMOD_ReferenceModule(parent);
-+ }
-+
-+ /* load it */
-+ rv = SECMOD_LoadPKCS11Module(module);
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+
-+ if (recurse && module->isModuleDB) {
-+ char ** moduleSpecList;
-+ PORT_SetError(0);
-+
-+ moduleSpecList = SECMOD_GetModuleSpecList(module);
-+ if (moduleSpecList) {
-+ char **index;
-+
-+ for (index = moduleSpecList; *index; index++) {
-+ SECMODModule *child;
-+ child = SECMOD_LoadModule(*index,module,PR_TRUE);
-+ if (!child) break;
-+ if (child->isCritical && !child->loaded) {
-+ int err = PORT_GetError();
-+ if (!err)
-+ err = SEC_ERROR_NO_MODULE;
-+ SECMOD_DestroyModule(child);
-+ PORT_SetError(err);
-+ rv = SECFailure;
-+ break;
-+ }
-+ SECMOD_DestroyModule(child);
-+ }
-+ SECMOD_FreeModuleSpecList(module,moduleSpecList);
-+ } else {
-+ if (!PORT_GetError())
-+ PORT_SetError(SEC_ERROR_NO_MODULE);
-+ rv = SECFailure;
-+ }
-+ }
-+
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+
-+
-+ /* inherit the reference */
-+ if (!module->moduleDBOnly) {
-+ SECMOD_AddModuleToList(module);
-+ } else {
-+ SECMOD_AddModuleToDBOnlyList(module);
-+ }
-+
-+ /* handle any additional work here */
-+ return module;
-+
-+loser:
-+ if (module) {
-+ if (module->loaded) {
-+ SECMOD_UnloadModule(module);
-+ }
-+ SECMOD_AddModuleToUnloadList(module);
-+ }
-+ return module;
-+}
-+
-+/*
-+ * load a PKCS#11 module and add it to the default NSS trust domain
-+ */
-+SECMODModule *
-+SECMOD_LoadUserModule(char *modulespec,SECMODModule *parent, PRBool recurse)
-+{
-+ SECStatus rv = SECSuccess;
-+ SECMODModule * newmod = SECMOD_LoadModule(modulespec, parent, recurse);
-+ if (newmod) {
-+ rv = STAN_AddModuleToDefaultTrustDomain(newmod);
-+ if (SECSuccess != rv) {
-+ SECMOD_DestroyModule(newmod);
-+ return NULL;
-+ }
-+ }
-+ return newmod;
-+}
-+
-+/*
-+ * remove the PKCS#11 module from the default NSS trust domain, call
-+ * C_Finalize, and destroy the module structure
-+ */
-+SECStatus SECMOD_UnloadUserModule(SECMODModule *mod)
-+{
-+ SECStatus rv = SECSuccess;
-+ int atype = 0;
-+ if (!mod) {
-+ return SECFailure;
-+ }
-+ rv = STAN_RemoveModuleFromDefaultTrustDomain(mod);
-+ if (SECSuccess != rv) {
-+ return SECFailure;
-+ }
-+ return SECMOD_DeleteModuleEx(NULL, mod, &atype, PR_FALSE);
-+}
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pk11pars.h 2004-12-13 15:50:16.145135280 +0100
-@@ -0,0 +1,852 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 2001 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+/*
-+ * The following handles the loading, unloading and management of
-+ * various PCKS #11 modules
-+ */
-+
-+
-+/*
-+ * this header file contains routines for parsing PKCS #11 module spec
-+ * strings. It contains 'C' code and should only be included in one module.
-+ * Currently it is included in both softoken and the wrapper.
-+ */
-+#include <ctype.h>
-+#include "pkcs11.h"
-+#include "seccomon.h"
-+#include "prprf.h"
-+#include "secmodt.h"
-+#include "pk11init.h"
-+
-+#define PK11_ARG_LIBRARY_PARAMETER "library="
-+#define PK11_ARG_NAME_PARAMETER "name="
-+#define PK11_ARG_MODULE_PARAMETER "parameters="
-+#define PK11_ARG_NSS_PARAMETER "NSS="
-+#define PK11_ARG_FORTEZZA_FLAG "FORTEZZA"
-+#define PK11_ARG_ESCAPE '\\'
-+
-+struct pk11argSlotFlagTable {
-+ char *name;
-+ int len;
-+ unsigned long value;
-+};
-+
-+#define PK11_DEFAULT_CIPHER_ORDER 0
-+#define PK11_DEFAULT_TRUST_ORDER 50
-+
-+
-+#define PK11_ARG_ENTRY(arg,flag) \
-+{ #arg , sizeof(#arg)-1, flag }
-+static struct pk11argSlotFlagTable pk11_argSlotFlagTable[] = {
-+ PK11_ARG_ENTRY(RSA,SECMOD_RSA_FLAG),
-+ PK11_ARG_ENTRY(DSA,SECMOD_RSA_FLAG),
-+ PK11_ARG_ENTRY(RC2,SECMOD_RC4_FLAG),
-+ PK11_ARG_ENTRY(RC4,SECMOD_RC2_FLAG),
-+ PK11_ARG_ENTRY(DES,SECMOD_DES_FLAG),
-+ PK11_ARG_ENTRY(DH,SECMOD_DH_FLAG),
-+ PK11_ARG_ENTRY(FORTEZZA,SECMOD_FORTEZZA_FLAG),
-+ PK11_ARG_ENTRY(RC5,SECMOD_RC5_FLAG),
-+ PK11_ARG_ENTRY(SHA1,SECMOD_SHA1_FLAG),
-+ PK11_ARG_ENTRY(MD5,SECMOD_MD5_FLAG),
-+ PK11_ARG_ENTRY(MD2,SECMOD_MD2_FLAG),
-+ PK11_ARG_ENTRY(SSL,SECMOD_SSL_FLAG),
-+ PK11_ARG_ENTRY(TLS,SECMOD_TLS_FLAG),
-+ PK11_ARG_ENTRY(AES,SECMOD_AES_FLAG),
-+ PK11_ARG_ENTRY(PublicCerts,SECMOD_FRIENDLY_FLAG),
-+ PK11_ARG_ENTRY(RANDOM,SECMOD_RANDOM_FLAG),
-+};
-+
-+#define PK11_HANDLE_STRING_ARG(param,target,value,command) \
-+ if (PORT_Strncasecmp(param,value,sizeof(value)-1) == 0) { \
-+ param += sizeof(value)-1; \
-+ target = pk11_argFetchValue(param,&next); \
-+ param += next; \
-+ command ;\
-+ } else
-+
-+#define PK11_HANDLE_FINAL_ARG(param) \
-+ { param = pk11_argSkipParameter(param); } param = pk11_argStrip(param);
-+
-+
-+static int pk11_argSlotFlagTableSize =
-+ sizeof(pk11_argSlotFlagTable)/sizeof(pk11_argSlotFlagTable[0]);
-+
-+
-+static PRBool pk11_argGetPair(char c) {
-+ switch (c) {
-+ case '\'': return c;
-+ case '\"': return c;
-+ case '<': return '>';
-+ case '{': return '}';
-+ case '[': return ']';
-+ case '(': return ')';
-+ default: break;
-+ }
-+ return ' ';
-+}
-+
-+static PRBool pk11_argIsBlank(char c) {
-+ return isspace(c);
-+}
-+
-+static PRBool pk11_argIsEscape(char c) {
-+ return c == '\\';
-+}
-+
-+static PRBool pk11_argIsQuote(char c) {
-+ switch (c) {
-+ case '\'':
-+ case '\"':
-+ case '<':
-+ case '{': /* } end curly to keep vi bracket matching working */
-+ case '(': /* ) */
-+ case '[': /* ] */ return PR_TRUE;
-+ default: break;
-+ }
-+ return PR_FALSE;
-+}
-+
-+static PRBool pk11_argHasChar(char *v, char c)
-+{
-+ for ( ;*v; v++) {
-+ if (*v == c) return PR_TRUE;
-+ }
-+ return PR_FALSE;
-+}
-+
-+static PRBool pk11_argHasBlanks(char *v)
-+{
-+ for ( ;*v; v++) {
-+ if (pk11_argIsBlank(*v)) return PR_TRUE;
-+ }
-+ return PR_FALSE;
-+}
-+
-+static char *pk11_argStrip(char *c) {
-+ while (*c && pk11_argIsBlank(*c)) c++;
-+ return c;
-+}
-+
-+static char *
-+pk11_argFindEnd(char *string) {
-+ char endChar = ' ';
-+ PRBool lastEscape = PR_FALSE;
-+
-+ if (pk11_argIsQuote(*string)) {
-+ endChar = pk11_argGetPair(*string);
-+ string++;
-+ }
-+
-+ for (;*string; string++) {
-+ if (lastEscape) {
-+ lastEscape = PR_FALSE;
-+ continue;
-+ }
-+ if (pk11_argIsEscape(*string) && !lastEscape) {
-+ lastEscape = PR_TRUE;
-+ continue;
-+ }
-+ if ((endChar == ' ') && pk11_argIsBlank(*string)) break;
-+ if (*string == endChar) {
-+ break;
-+ }
-+ }
-+
-+ return string;
-+}
-+
-+static char *
-+pk11_argFetchValue(char *string, int *pcount)
-+{
-+ char *end = pk11_argFindEnd(string);
-+ char *retString, *copyString;
-+ PRBool lastEscape = PR_FALSE;
-+
-+ *pcount = (end - string)+1;
-+
-+ if (*pcount == 0) return NULL;
-+
-+ copyString = retString = (char *)PORT_Alloc(*pcount);
-+ if (retString == NULL) return NULL;
-+
-+ if (pk11_argIsQuote(*string)) string++;
-+ for (; string < end; string++) {
-+ if (pk11_argIsEscape(*string) && !lastEscape) {
-+ lastEscape = PR_TRUE;
-+ continue;
-+ }
-+ lastEscape = PR_FALSE;
-+ *copyString++ = *string;
-+ }
-+ *copyString = 0;
-+ return retString;
-+}
-+
-+static char *
-+pk11_argSkipParameter(char *string)
-+{
-+ char *end;
-+ /* look for the end of the <name>= */
-+ for (;*string; string++) {
-+ if (*string == '=') { string++; break; }
-+ if (pk11_argIsBlank(*string)) return(string);
-+ }
-+
-+ end = pk11_argFindEnd(string);
-+ if (*end) end++;
-+ return end;
-+}
-+
-+
-+static SECStatus
-+pk11_argParseModuleSpec(char *modulespec, char **lib, char **mod,
-+ char **parameters, char **nss)
-+{
-+ int next;
-+ modulespec = pk11_argStrip(modulespec);
-+
-+ *lib = *mod = *parameters = *nss = 0;
-+
-+ while (*modulespec) {
-+ PK11_HANDLE_STRING_ARG(modulespec,*lib,PK11_ARG_LIBRARY_PARAMETER,;)
-+ PK11_HANDLE_STRING_ARG(modulespec,*mod,PK11_ARG_NAME_PARAMETER,;)
-+ PK11_HANDLE_STRING_ARG(modulespec,*parameters,
-+ PK11_ARG_MODULE_PARAMETER,;)
-+ PK11_HANDLE_STRING_ARG(modulespec,*nss,PK11_ARG_NSS_PARAMETER,;)
-+ PK11_HANDLE_FINAL_ARG(modulespec)
-+ }
-+ return SECSuccess;
-+}
-+
-+
-+static char *
-+pk11_argGetParamValue(char *paramName,char *parameters)
-+{
-+ char searchValue[256];
-+ int paramLen = strlen(paramName);
-+ char *returnValue = NULL;
-+ int next;
-+
-+ if ((parameters == NULL) || (*parameters == 0)) return NULL;
-+
-+ PORT_Assert(paramLen+2 < sizeof(searchValue));
-+
-+ PORT_Strcpy(searchValue,paramName);
-+ PORT_Strcat(searchValue,"=");
-+ while (*parameters) {
-+ if (PORT_Strncasecmp(parameters,searchValue,paramLen+1) == 0) {
-+ parameters += paramLen+1;
-+ returnValue = pk11_argFetchValue(parameters,&next);
-+ break;
-+ } else {
-+ parameters = pk11_argSkipParameter(parameters);
-+ }
-+ parameters = pk11_argStrip(parameters);
-+ }
-+ return returnValue;
-+}
-+
-+
-+static char *
-+pk11_argNextFlag(char *flags)
-+{
-+ for (; *flags ; flags++) {
-+ if (*flags == ',') {
-+ flags++;
-+ break;
-+ }
-+ }
-+ return flags;
-+}
-+
-+static PRBool
-+pk11_argHasFlag(char *label, char *flag, char *parameters)
-+{
-+ char *flags,*index;
-+ int len = strlen(flag);
-+ PRBool found = PR_FALSE;
-+
-+ flags = pk11_argGetParamValue(label,parameters);
-+ if (flags == NULL) return PR_FALSE;
-+
-+ for (index=flags; *index; index=pk11_argNextFlag(index)) {
-+ if (PORT_Strncasecmp(index,flag,len) == 0) {
-+ found=PR_TRUE;
-+ break;
-+ }
-+ }
-+ PORT_Free(flags);
-+ return found;
-+}
-+
-+static void
-+pk11_argSetNewCipherFlags(unsigned long *newCiphers,char *cipherList)
-+{
-+ newCiphers[0] = newCiphers[1] = 0;
-+ if ((cipherList == NULL) || (*cipherList == 0)) return;
-+
-+ for (;*cipherList; cipherList=pk11_argNextFlag(cipherList)) {
-+ if (PORT_Strncasecmp(cipherList,PK11_ARG_FORTEZZA_FLAG,
-+ sizeof(PK11_ARG_FORTEZZA_FLAG)-1) == 0) {
-+ newCiphers[0] |= SECMOD_FORTEZZA_FLAG;
-+ }
-+
-+ /* add additional flags here as necessary */
-+ /* direct bit mapping escape */
-+ if (*cipherList == 0) {
-+ if (cipherList[1] == 'l') {
-+ newCiphers[1] |= atoi(&cipherList[2]);
-+ } else {
-+ newCiphers[0] |= atoi(&cipherList[2]);
-+ }
-+ }
-+ }
-+}
-+
-+
-+/*
-+ * decode a number. handle octal (leading '0'), hex (leading '0x') or decimal
-+ */
-+static long
-+pk11_argDecodeNumber(char *num)
-+{
-+ int radix = 10;
-+ unsigned long value = 0;
-+ long retValue = 0;
-+ int sign = 1;
-+ int digit;
-+
-+ if (num == NULL) return retValue;
-+
-+ num = pk11_argStrip(num);
-+
-+ if (*num == '-') {
-+ sign = -1;
-+ num++;
-+ }
-+
-+ if (*num == '0') {
-+ radix = 8;
-+ num++;
-+ if ((*num == 'x') || (*num == 'X')) {
-+ radix = 16;
-+ num++;
-+ }
-+ }
-+
-+
-+ for ( ;*num; num++ ) {
-+ if (isdigit(*num)) {
-+ digit = *num - '0';
-+ } else if ((*num >= 'a') && (*num <= 'f')) {
-+ digit = *num - 'a' + 10;
-+ } else if ((*num >= 'A') && (*num <= 'F')) {
-+ digit = *num - 'A' + 10;
-+ } else {
-+ break;
-+ }
-+ if (digit >= radix) break;
-+ value = value*radix + digit;
-+ }
-+
-+ retValue = ((int) value) * sign;
-+ return retValue;
-+}
-+
-+static long
-+pk11_argReadLong(char *label,char *params, long defValue, PRBool *isdefault)
-+{
-+ char *value;
-+ long retValue;
-+ if (isdefault) *isdefault = PR_FALSE;
-+
-+ value = pk11_argGetParamValue(label,params);
-+ if (value == NULL) {
-+ if (isdefault) *isdefault = PR_TRUE;
-+ return defValue;
-+ }
-+ retValue = pk11_argDecodeNumber(value);
-+ if (value) PORT_Free(value);
-+
-+ return retValue;
-+}
-+
-+
-+static unsigned long
-+pk11_argSlotFlags(char *label,char *params)
-+{
-+ char *flags,*index;
-+ unsigned long retValue = 0;
-+ int i;
-+ PRBool all = PR_FALSE;
-+
-+ flags = pk11_argGetParamValue(label,params);
-+ if (flags == NULL) return 0;
-+
-+ if (PORT_Strcasecmp(flags,"all") == 0) all = PR_TRUE;
-+
-+ for (index=flags; *index; index=pk11_argNextFlag(index)) {
-+ for (i=0; i < pk11_argSlotFlagTableSize; i++) {
-+ if (all || (PORT_Strncasecmp(index, pk11_argSlotFlagTable[i].name,
-+ pk11_argSlotFlagTable[i].len) == 0)) {
-+ retValue |= pk11_argSlotFlagTable[i].value;
-+ }
-+ }
-+ }
-+ PORT_Free(flags);
-+ return retValue;
-+}
-+
-+
-+static void
-+pk11_argDecodeSingleSlotInfo(char *name,char *params,PK11PreSlotInfo *slotInfo)
-+{
-+ char *askpw;
-+
-+ slotInfo->slotID=pk11_argDecodeNumber(name);
-+ slotInfo->defaultFlags=pk11_argSlotFlags("slotFlags",params);
-+ slotInfo->timeout=pk11_argReadLong("timeout",params, 0, NULL);
-+
-+ askpw = pk11_argGetParamValue("askpw",params);
-+ slotInfo->askpw = 0;
-+
-+ if (askpw) {
-+ if (PORT_Strcasecmp(askpw,"every") == 0) {
-+ slotInfo->askpw = -1;
-+ } else if (PORT_Strcasecmp(askpw,"timeout") == 0) {
-+ slotInfo->askpw = 1;
-+ }
-+ PORT_Free(askpw);
-+ slotInfo->defaultFlags |= PK11_OWN_PW_DEFAULTS;
-+ }
-+ slotInfo->hasRootCerts = pk11_argHasFlag("rootFlags","hasRootCerts",params);
-+ slotInfo->hasRootTrust = pk11_argHasFlag("rootFlags","hasRootTrust",params);
-+}
-+
-+static char *
-+pk11_argGetName(char *inString, int *next)
-+{
-+ char *name=NULL;
-+ char *string;
-+ int len;
-+
-+ /* look for the end of the <name>= */
-+ for (string = inString;*string; string++) {
-+ if (*string == '=') { break; }
-+ if (pk11_argIsBlank(*string)) break;
-+ }
-+
-+ len = string - inString;
-+
-+ *next = len;
-+ if (*string == '=') (*next) += 1;
-+ if (len > 0) {
-+ name = PORT_Alloc(len+1);
-+ PORT_Strncpy(name,inString,len);
-+ name[len] = 0;
-+ }
-+ return name;
-+}
-+
-+static PK11PreSlotInfo *
-+pk11_argParseSlotInfo(PRArenaPool *arena, char *slotParams, int *retCount)
-+{
-+ char *slotIndex;
-+ PK11PreSlotInfo *slotInfo = NULL;
-+ int i=0,count = 0,next;
-+
-+ *retCount = 0;
-+ if ((slotParams == NULL) || (*slotParams == 0)) return NULL;
-+
-+ /* first count the number of slots */
-+ for (slotIndex = pk11_argStrip(slotParams); *slotIndex;
-+ slotIndex = pk11_argStrip(pk11_argSkipParameter(slotIndex))) {
-+ count++;
-+ }
-+
-+ /* get the data structures */
-+ if (arena) {
-+ slotInfo = (PK11PreSlotInfo *)
-+ PORT_ArenaAlloc(arena,count*sizeof(PK11PreSlotInfo));
-+ PORT_Memset(slotInfo,0,count*sizeof(PK11PreSlotInfo));
-+ } else {
-+ slotInfo = (PK11PreSlotInfo *)
-+ PORT_ZAlloc(count*sizeof(PK11PreSlotInfo));
-+ }
-+ if (slotInfo == NULL) return NULL;
-+
-+ for (slotIndex = pk11_argStrip(slotParams), i = 0;
-+ *slotIndex && i < count ; ) {
-+ char *name;
-+ name = pk11_argGetName(slotIndex,&next);
-+ slotIndex += next;
-+
-+ if (!pk11_argIsBlank(*slotIndex)) {
-+ char *args = pk11_argFetchValue(slotIndex,&next);
-+ slotIndex += next;
-+ if (args) {
-+ pk11_argDecodeSingleSlotInfo(name,args,&slotInfo[i]);
-+ i++;
-+ PORT_Free(args);
-+ }
-+ }
-+ if (name) PORT_Free(name);
-+ slotIndex = pk11_argStrip(slotIndex);
-+ }
-+ *retCount = i;
-+ return slotInfo;
-+}
-+
-+static char *pk11_nullString = "";
-+
-+static char *
-+pk11_formatValue(PRArenaPool *arena, char *value, char quote)
-+{
-+ char *vp,*vp2,*retval;
-+ int size = 0, escapes = 0;
-+
-+ for (vp=value; *vp ;vp++) {
-+ if ((*vp == quote) || (*vp == PK11_ARG_ESCAPE)) escapes++;
-+ size++;
-+ }
-+ if (arena) {
-+ retval = PORT_ArenaZAlloc(arena,size+escapes+1);
-+ } else {
-+ retval = PORT_ZAlloc(size+escapes+1);
-+ }
-+ if (retval == NULL) return NULL;
-+ vp2 = retval;
-+ for (vp=value; *vp; vp++) {
-+ if ((*vp == quote) || (*vp == PK11_ARG_ESCAPE))
-+ *vp2++ = PK11_ARG_ESCAPE;
-+ *vp2++ = *vp;
-+ }
-+ return retval;
-+}
-+
-+static char *pk11_formatPair(char *name,char *value, char quote)
-+{
-+ char openQuote = quote;
-+ char closeQuote = pk11_argGetPair(quote);
-+ char *newValue = NULL;
-+ char *returnValue;
-+ PRBool need_quote = PR_FALSE;
-+
-+ if (!value || (*value == 0)) return pk11_nullString;
-+
-+ if (pk11_argHasBlanks(value) || pk11_argIsQuote(value[0]))
-+ need_quote=PR_TRUE;
-+
-+ if ((need_quote && pk11_argHasChar(value,closeQuote))
-+ || pk11_argHasChar(value,PK11_ARG_ESCAPE)) {
-+ value = newValue = pk11_formatValue(NULL, value,quote);
-+ if (newValue == NULL) return pk11_nullString;
-+ }
-+ if (need_quote) {
-+ returnValue = PR_smprintf("%s=%c%s%c",name,openQuote,value,closeQuote);
-+ } else {
-+ returnValue = PR_smprintf("%s=%s",name,value);
-+ }
-+ if (returnValue == NULL) returnValue = pk11_nullString;
-+
-+ if (newValue) PORT_Free(newValue);
-+
-+ return returnValue;
-+}
-+
-+static char *pk11_formatIntPair(char *name,unsigned long value, unsigned long def)
-+{
-+ char *returnValue;
-+
-+ if (value == def) return pk11_nullString;
-+
-+ returnValue = PR_smprintf("%s=%d",name,value);
-+
-+ return returnValue;
-+}
-+
-+static void
-+pk11_freePair(char *pair)
-+{
-+ if (pair && pair != pk11_nullString) {
-+ PR_smprintf_free(pair);
-+ }
-+}
-+
-+#define MAX_FLAG_SIZE sizeof("internal")+sizeof("FIPS")+sizeof("moduleDB")+\
-+ sizeof("moduleDBOnly")+sizeof("critical")
-+static char *
-+pk11_mkNSSFlags(PRBool internal, PRBool isFIPS,
-+ PRBool isModuleDB, PRBool isModuleDBOnly, PRBool isCritical)
-+{
-+ char *flags = (char *)PORT_ZAlloc(MAX_FLAG_SIZE);
-+ PRBool first = PR_TRUE;
-+
-+ PORT_Memset(flags,0,MAX_FLAG_SIZE);
-+ if (internal) {
-+ PORT_Strcat(flags,"internal");
-+ first = PR_FALSE;
-+ }
-+ if (isFIPS) {
-+ if (!first) PORT_Strcat(flags,",");
-+ PORT_Strcat(flags,"FIPS");
-+ first = PR_FALSE;
-+ }
-+ if (isModuleDB) {
-+ if (!first) PORT_Strcat(flags,",");
-+ PORT_Strcat(flags,"moduleDB");
-+ first = PR_FALSE;
-+ }
-+ if (isModuleDBOnly) {
-+ if (!first) PORT_Strcat(flags,",");
-+ PORT_Strcat(flags,"moduleDBOnly");
-+ first = PR_FALSE;
-+ }
-+ if (isCritical) {
-+ if (!first) PORT_Strcat(flags,",");
-+ PORT_Strcat(flags,"critical");
-+ first = PR_FALSE;
-+ }
-+ return flags;
-+}
-+
-+static char *
-+pk11_mkCipherFlags(unsigned long ssl0, unsigned long ssl1)
-+{
-+ char *cipher = NULL;
-+ int i;
-+
-+ for (i=0; i < sizeof(ssl0)*8; i++) {
-+ if (ssl0 & (1<<i)) {
-+ char *string;
-+ if ((1<<i) == SECMOD_FORTEZZA_FLAG) {
-+ string = PR_smprintf("%s","FORTEZZA");
-+ } else {
-+ string = PR_smprintf("0h0x%08x",1<<i);
-+ }
-+ if (cipher) {
-+ char *tmp;
-+ tmp = PR_smprintf("%s,%s",cipher,string);
-+ PR_smprintf_free(cipher);
-+ PR_smprintf_free(string);
-+ tmp = cipher;
-+ } else {
-+ cipher = string;
-+ }
-+ }
-+ }
-+ for (i=0; i < sizeof(ssl0)*8; i++) {
-+ if (ssl1 & (1<<i)) {
-+ if (cipher) {
-+ char *tmp;
-+ tmp = PR_smprintf("%s,0l0x%08",cipher,1<<i);
-+ PR_smprintf_free(cipher);
-+ tmp = cipher;
-+ } else {
-+ cipher = PR_smprintf("0l0x%08x",1<<i);
-+ }
-+ }
-+ }
-+
-+ return cipher;
-+}
-+
-+static char *
-+pk11_mkSlotFlags(unsigned long defaultFlags)
-+{
-+ char *flags=NULL;
-+ int i,j;
-+
-+ for (i=0; i < sizeof(defaultFlags)*8; i++) {
-+ if (defaultFlags & (1<<i)) {
-+ char *string = NULL;
-+
-+ for (j=0; j < pk11_argSlotFlagTableSize; j++) {
-+ if (pk11_argSlotFlagTable[j].value == (((unsigned long)1)<<i)) {
-+ string = pk11_argSlotFlagTable[j].name;
-+ break;
-+ }
-+ }
-+ if (string) {
-+ if (flags) {
-+ char *tmp;
-+ tmp = PR_smprintf("%s,%s",flags,string);
-+ PR_smprintf_free(flags);
-+ flags = tmp;
-+ } else {
-+ flags = PR_smprintf("%s",string);
-+ }
-+ }
-+ }
-+ }
-+
-+ return flags;
-+}
-+
-+#define PK11_MAX_ROOT_FLAG_SIZE sizeof("hasRootCerts")+sizeof("hasRootTrust")
-+
-+static char *
-+pk11_mkRootFlags(PRBool hasRootCerts, PRBool hasRootTrust)
-+{
-+ char *flags= (char *)PORT_ZAlloc(PK11_MAX_ROOT_FLAG_SIZE);
-+ PRBool first = PR_TRUE;
-+
-+ PORT_Memset(flags,0,PK11_MAX_ROOT_FLAG_SIZE);
-+ if (hasRootCerts) {
-+ PORT_Strcat(flags,"hasRootCerts");
-+ first = PR_FALSE;
-+ }
-+ if (hasRootTrust) {
-+ if (!first) PORT_Strcat(flags,",");
-+ PORT_Strcat(flags,"hasRootTrust");
-+ first = PR_FALSE;
-+ }
-+ return flags;
-+}
-+
-+static char *
-+pk11_mkSlotString(unsigned long slotID, unsigned long defaultFlags,
-+ unsigned long timeout, unsigned char askpw_in,
-+ PRBool hasRootCerts, PRBool hasRootTrust) {
-+ char *askpw,*flags,*rootFlags,*slotString;
-+ char *flagPair,*rootFlagsPair;
-+
-+ switch (askpw_in) {
-+ case 0xff:
-+ askpw = "every";
-+ break;
-+ case 1:
-+ askpw = "timeout";
-+ break;
-+ default:
-+ askpw = "any";
-+ break;
-+ }
-+ flags = pk11_mkSlotFlags(defaultFlags);
-+ rootFlags = pk11_mkRootFlags(hasRootCerts,hasRootTrust);
-+ flagPair=pk11_formatPair("slotFlags",flags,'\'');
-+ rootFlagsPair=pk11_formatPair("rootFlags",rootFlags,'\'');
-+ if (flags) PR_smprintf_free(flags);
-+ if (rootFlags) PORT_Free(rootFlags);
-+ if (defaultFlags & PK11_OWN_PW_DEFAULTS) {
-+ slotString = PR_smprintf("0x%08x=[%s askpw=%s timeout=%d %s]",slotID,flagPair,askpw,timeout,rootFlagsPair);
-+ } else {
-+ slotString = PR_smprintf("0x%08x=[%s %s]",slotID,flagPair,rootFlagsPair);
-+ }
-+ pk11_freePair(flagPair);
-+ pk11_freePair(rootFlagsPair);
-+ return slotString;
-+}
-+
-+static char *
-+pk11_mkNSS(char **slotStrings, int slotCount, PRBool internal, PRBool isFIPS,
-+ PRBool isModuleDB, PRBool isModuleDBOnly, PRBool isCritical,
-+ unsigned long trustOrder, unsigned long cipherOrder,
-+ unsigned long ssl0, unsigned long ssl1) {
-+ int slotLen, i;
-+ char *slotParams, *ciphers, *nss, *nssFlags, *tmp;
-+ char *trustOrderPair,*cipherOrderPair,*slotPair,*cipherPair,*flagPair;
-+
-+
-+ /* now let's build up the string
-+ * first the slot infos
-+ */
-+ slotLen=0;
-+ for (i=0; i < (int)slotCount; i++) {
-+ slotLen += PORT_Strlen(slotStrings[i])+1;
-+ }
-+ slotLen += 1; /* space for the final NULL */
-+
-+ slotParams = (char *)PORT_ZAlloc(slotLen);
-+ PORT_Memset(slotParams,0,slotLen);
-+ for (i=0; i < (int)slotCount; i++) {
-+ PORT_Strcat(slotParams,slotStrings[i]);
-+ PORT_Strcat(slotParams," ");
-+ PR_smprintf_free(slotStrings[i]);
-+ slotStrings[i]=NULL;
-+ }
-+
-+ /*
-+ * now the NSS structure
-+ */
-+ nssFlags = pk11_mkNSSFlags(internal,isFIPS,isModuleDB,isModuleDBOnly,
-+ isCritical);
-+ /* for now only the internal module is critical */
-+ ciphers = pk11_mkCipherFlags(ssl0, ssl1);
-+
-+ trustOrderPair=pk11_formatIntPair("trustOrder",trustOrder,
-+ PK11_DEFAULT_TRUST_ORDER);
-+ cipherOrderPair=pk11_formatIntPair("cipherOrder",cipherOrder,
-+ PK11_DEFAULT_CIPHER_ORDER);
-+ slotPair=pk11_formatPair("slotParams",slotParams,'{'); /* } */
-+ if (slotParams) PORT_Free(slotParams);
-+ cipherPair=pk11_formatPair("ciphers",ciphers,'\'');
-+ if (ciphers) PR_smprintf_free(ciphers);
-+ flagPair=pk11_formatPair("Flags",nssFlags,'\'');
-+ if (nssFlags) PORT_Free(nssFlags);
-+ nss = PR_smprintf("%s %s %s %s %s",trustOrderPair,
-+ cipherOrderPair,slotPair,cipherPair,flagPair);
-+ pk11_freePair(trustOrderPair);
-+ pk11_freePair(cipherOrderPair);
-+ pk11_freePair(slotPair);
-+ pk11_freePair(cipherPair);
-+ pk11_freePair(flagPair);
-+ tmp = pk11_argStrip(nss);
-+ if (*tmp == '\0') {
-+ PR_smprintf_free(nss);
-+ nss = NULL;
-+ }
-+ return nss;
-+}
-+
-+static char *
-+pk11_mkNewModuleSpec(char *dllName, char *commonName, char *parameters,
-+ char *NSS) {
-+ char *moduleSpec;
-+ char *lib,*name,*param,*nss;
-+
-+ /*
-+ * now the final spec
-+ */
-+ lib = pk11_formatPair("library",dllName,'\"');
-+ name = pk11_formatPair("name",commonName,'\"');
-+ param = pk11_formatPair("parameters",parameters,'\"');
-+ nss = pk11_formatPair("NSS",NSS,'\"');
-+ moduleSpec = PR_smprintf("%s %s %s %s", lib,name,param,nss);
-+ pk11_freePair(lib);
-+ pk11_freePair(name);
-+ pk11_freePair(param);
-+ pk11_freePair(nss);
-+ return (moduleSpec);
-+}
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pk11pbe.c 2004-12-13 13:06:46.683400136 +0100
-@@ -0,0 +1,687 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#include "plarena.h"
-+
-+#include "seccomon.h"
-+#include "secitem.h"
-+#include "secport.h"
-+#include "hasht.h"
-+#include "pkcs11t.h"
-+#include "sechash.h"
-+#include "secasn1.h"
-+#include "secder.h"
-+#include "secoid.h"
-+#include "alghmac.h"
-+#include "secerr.h"
-+#include "secmod.h"
-+#include "pk11func.h"
-+#include "secpkcs5.h"
-+
-+typedef struct SEC_PKCS5PBEParameterStr SEC_PKCS5PBEParameter;
-+struct SEC_PKCS5PBEParameterStr {
-+ PRArenaPool *poolp;
-+ SECItem salt; /* octet string */
-+ SECItem iteration; /* integer */
-+};
-+
-+
-+/* template for PKCS 5 PBE Parameter. This template has been expanded
-+ * based upon the additions in PKCS 12. This should eventually be moved
-+ * if RSA updates PKCS 5.
-+ */
-+const SEC_ASN1Template SEC_PKCS5PBEParameterTemplate[] =
-+{
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(SEC_PKCS5PBEParameter) },
-+ { SEC_ASN1_OCTET_STRING,
-+ offsetof(SEC_PKCS5PBEParameter, salt) },
-+ { SEC_ASN1_INTEGER,
-+ offsetof(SEC_PKCS5PBEParameter, iteration) },
-+ { 0 }
-+};
-+
-+const SEC_ASN1Template SEC_V2PKCS12PBEParameterTemplate[] =
-+{
-+ { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(SEC_PKCS5PBEParameter) },
-+ { SEC_ASN1_OCTET_STRING, offsetof(SEC_PKCS5PBEParameter, salt) },
-+ { SEC_ASN1_INTEGER, offsetof(SEC_PKCS5PBEParameter, iteration) },
-+ { 0 }
-+};
-+
-+/* maps crypto algorithm from PBE algorithm.
-+ */
-+SECOidTag
-+SEC_PKCS5GetCryptoAlgorithm(SECAlgorithmID *algid)
-+{
-+
-+ SECOidTag algorithm;
-+
-+ if(algid == NULL)
-+ return SEC_OID_UNKNOWN;
-+
-+ algorithm = SECOID_GetAlgorithmTag(algid);
-+ switch(algorithm)
-+ {
-+ case SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_3KEY_TRIPLE_DES_CBC:
-+ case SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_2KEY_TRIPLE_DES_CBC:
-+ case SEC_OID_PKCS12_PBE_WITH_SHA1_AND_TRIPLE_DES_CBC:
-+ return SEC_OID_DES_EDE3_CBC;
-+ case SEC_OID_PKCS5_PBE_WITH_SHA1_AND_DES_CBC:
-+ case SEC_OID_PKCS5_PBE_WITH_MD5_AND_DES_CBC:
-+ case SEC_OID_PKCS5_PBE_WITH_MD2_AND_DES_CBC:
-+ return SEC_OID_DES_CBC;
-+ case SEC_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC:
-+ case SEC_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC:
-+ case SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC:
-+ case SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC:
-+ return SEC_OID_RC2_CBC;
-+ case SEC_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC4:
-+ case SEC_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC4:
-+ case SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC4:
-+ case SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC4:
-+ return SEC_OID_RC4;
-+ default:
-+ break;
-+ }
-+
-+ return SEC_OID_UNKNOWN;
-+}
-+
-+/* check to see if an oid is a pbe algorithm
-+ */
-+PRBool
-+SEC_PKCS5IsAlgorithmPBEAlg(SECAlgorithmID *algid)
-+{
-+ return (PRBool)(SEC_PKCS5GetCryptoAlgorithm(algid) != SEC_OID_UNKNOWN);
-+}
-+
-+/* maps PBE algorithm from crypto algorithm, assumes SHA1 hashing.
-+ */
-+SECOidTag
-+SEC_PKCS5GetPBEAlgorithm(SECOidTag algTag, int keyLen)
-+{
-+ switch(algTag)
-+ {
-+ case SEC_OID_DES_EDE3_CBC:
-+ switch(keyLen) {
-+ case 168:
-+ case 192:
-+ return SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_3KEY_TRIPLE_DES_CBC;
-+ case 128:
-+ case 92:
-+ return SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_2KEY_TRIPLE_DES_CBC;
-+ default:
-+ break;
-+ }
-+ break;
-+ case SEC_OID_DES_CBC:
-+ return SEC_OID_PKCS5_PBE_WITH_SHA1_AND_DES_CBC;
-+ case SEC_OID_RC2_CBC:
-+ switch(keyLen) {
-+ case 40:
-+ return SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC;
-+ case 128:
-+ return SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC;
-+ default:
-+ break;
-+ }
-+ break;
-+ case SEC_OID_RC4:
-+ switch(keyLen) {
-+ case 40:
-+ return SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC4;
-+ case 128:
-+ return SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC4;
-+ default:
-+ break;
-+ }
-+ break;
-+ default:
-+ break;
-+ }
-+
-+ return SEC_OID_UNKNOWN;
-+}
-+
-+
-+/* get the key length needed for the PBE algorithm
-+ */
-+
-+int
-+SEC_PKCS5GetKeyLength(SECAlgorithmID *algid)
-+{
-+
-+ SECOidTag algorithm;
-+
-+ if(algid == NULL)
-+ return SEC_OID_UNKNOWN;
-+
-+ algorithm = SECOID_GetAlgorithmTag(algid);
-+
-+ switch(algorithm)
-+ {
-+ case SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_3KEY_TRIPLE_DES_CBC:
-+ case SEC_OID_PKCS12_PBE_WITH_SHA1_AND_TRIPLE_DES_CBC:
-+ case SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_2KEY_TRIPLE_DES_CBC:
-+ return 24;
-+ case SEC_OID_PKCS5_PBE_WITH_MD2_AND_DES_CBC:
-+ case SEC_OID_PKCS5_PBE_WITH_SHA1_AND_DES_CBC:
-+ case SEC_OID_PKCS5_PBE_WITH_MD5_AND_DES_CBC:
-+ return 8;
-+ case SEC_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC:
-+ case SEC_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC4:
-+ case SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC4:
-+ case SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC:
-+ return 5;
-+ case SEC_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC:
-+ case SEC_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC4:
-+ case SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC:
-+ case SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC4:
-+ return 16;
-+ default:
-+ break;
-+ }
-+ return -1;
-+}
-+
-+
-+/* the V2 algorithms only encode the salt, there is no iteration
-+ * count so we need a check for V2 algorithm parameters.
-+ */
-+static PRBool
-+sec_pkcs5_is_algorithm_v2_pkcs12_algorithm(SECOidTag algorithm)
-+{
-+ switch(algorithm)
-+ {
-+ case SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC4:
-+ case SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC4:
-+ case SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_3KEY_TRIPLE_DES_CBC:
-+ case SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_2KEY_TRIPLE_DES_CBC:
-+ case SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC:
-+ case SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC:
-+ return PR_TRUE;
-+ default:
-+ break;
-+ }
-+
-+ return PR_FALSE;
-+}
-+/* destroy a pbe parameter. it assumes that the parameter was
-+ * generated using the appropriate create function and therefor
-+ * contains an arena pool.
-+ */
-+static void
-+sec_pkcs5_destroy_pbe_param(SEC_PKCS5PBEParameter *pbe_param)
-+{
-+ if(pbe_param != NULL)
-+ PORT_FreeArena(pbe_param->poolp, PR_TRUE);
-+}
-+
-+/* creates a PBE parameter based on the PBE algorithm. the only required
-+ * parameters are algorithm and interation. the return is a PBE parameter
-+ * which conforms to PKCS 5 parameter unless an extended parameter is needed.
-+ * this is primarily if keyLen and a variable key length algorithm are
-+ * specified.
-+ * salt - if null, a salt will be generated from random bytes.
-+ * iteration - number of iterations to perform hashing.
-+ * keyLen - only used in variable key length algorithms
-+ * iv - if null, the IV will be generated based on PKCS 5 when needed.
-+ * params - optional, currently unsupported additional parameters.
-+ * once a parameter is allocated, it should be destroyed calling
-+ * sec_pkcs5_destroy_pbe_parameter or SEC_PKCS5DestroyPBEParameter.
-+ */
-+#define DEFAULT_SALT_LENGTH 16
-+static SEC_PKCS5PBEParameter *
-+sec_pkcs5_create_pbe_parameter(SECOidTag algorithm,
-+ SECItem *salt,
-+ int iteration)
-+{
-+ PRArenaPool *poolp = NULL;
-+ SEC_PKCS5PBEParameter *pbe_param = NULL;
-+ SECStatus rv= SECSuccess;
-+ void *dummy = NULL;
-+
-+ if(iteration < 0) {
-+ return NULL;
-+ }
-+
-+ poolp = PORT_NewArena(SEC_ASN1_DEFAULT_ARENA_SIZE);
-+ if(poolp == NULL)
-+ return NULL;
-+
-+ pbe_param = (SEC_PKCS5PBEParameter *)PORT_ArenaZAlloc(poolp,
-+ sizeof(SEC_PKCS5PBEParameter));
-+ if(!pbe_param) {
-+ PORT_FreeArena(poolp, PR_TRUE);
-+ return NULL;
-+ }
-+
-+ pbe_param->poolp = poolp;
-+
-+ rv = SECFailure;
-+ if (salt && salt->data) {
-+ rv = SECITEM_CopyItem(poolp, &pbe_param->salt, salt);
-+ } else {
-+ /* sigh, the old interface generated salt on the fly, so we have to
-+ * preserve the semantics */
-+ pbe_param->salt.len = DEFAULT_SALT_LENGTH;
-+ pbe_param->salt.data = PORT_ArenaZAlloc(poolp,DEFAULT_SALT_LENGTH);
-+ if (pbe_param->salt.data) {
-+ rv = PK11_GenerateRandom(pbe_param->salt.data,DEFAULT_SALT_LENGTH);
-+ }
-+ }
-+
-+ if(rv != SECSuccess) {
-+ PORT_FreeArena(poolp, PR_TRUE);
-+ return NULL;
-+ }
-+
-+ /* encode the integer */
-+ dummy = SEC_ASN1EncodeInteger(poolp, &pbe_param->iteration,
-+ iteration);
-+ rv = (dummy) ? SECSuccess : SECFailure;
-+
-+ if(rv != SECSuccess) {
-+ PORT_FreeArena(poolp, PR_FALSE);
-+ return NULL;
-+ }
-+
-+ return pbe_param;
-+}
-+
-+/* creates a algorithm ID containing the PBE algorithm and appropriate
-+ * parameters. the required parameter is the algorithm. if salt is
-+ * not specified, it is generated randomly. if IV is specified, it overrides
-+ * the PKCS 5 generation of the IV.
-+ *
-+ * the returned SECAlgorithmID should be destroyed using
-+ * SECOID_DestroyAlgorithmID
-+ */
-+SECAlgorithmID *
-+SEC_PKCS5CreateAlgorithmID(SECOidTag algorithm,
-+ SECItem *salt,
-+ int iteration)
-+{
-+ PRArenaPool *poolp = NULL;
-+ SECAlgorithmID *algid, *ret_algid;
-+ SECItem der_param;
-+ SECStatus rv = SECFailure;
-+ SEC_PKCS5PBEParameter *pbe_param;
-+
-+ if(iteration <= 0) {
-+ return NULL;
-+ }
-+
-+ der_param.data = NULL;
-+ der_param.len = 0;
-+
-+ /* generate the parameter */
-+ pbe_param = sec_pkcs5_create_pbe_parameter(algorithm, salt, iteration);
-+ if(!pbe_param) {
-+ return NULL;
-+ }
-+
-+ poolp = PORT_NewArena(SEC_ASN1_DEFAULT_ARENA_SIZE);
-+ if(!poolp) {
-+ sec_pkcs5_destroy_pbe_param(pbe_param);
-+ return NULL;
-+ }
-+
-+ /* generate the algorithm id */
-+ algid = (SECAlgorithmID *)PORT_ArenaZAlloc(poolp, sizeof(SECAlgorithmID));
-+ if(algid != NULL) {
-+ void *dummy;
-+ if(!sec_pkcs5_is_algorithm_v2_pkcs12_algorithm(algorithm)) {
-+ dummy = SEC_ASN1EncodeItem(poolp, &der_param, pbe_param,
-+ SEC_PKCS5PBEParameterTemplate);
-+ } else {
-+ dummy = SEC_ASN1EncodeItem(poolp, &der_param, pbe_param,
-+ SEC_V2PKCS12PBEParameterTemplate);
-+ }
-+
-+ if(dummy) {
-+ rv = SECOID_SetAlgorithmID(poolp, algid, algorithm, &der_param);
-+ }
-+ }
-+
-+ ret_algid = NULL;
-+ if(algid != NULL) {
-+ ret_algid = (SECAlgorithmID *)PORT_ZAlloc(sizeof(SECAlgorithmID));
-+ if(ret_algid != NULL) {
-+ rv = SECOID_CopyAlgorithmID(NULL, ret_algid, algid);
-+ if(rv != SECSuccess) {
-+ SECOID_DestroyAlgorithmID(ret_algid, PR_TRUE);
-+ ret_algid = NULL;
-+ }
-+ }
-+ }
-+
-+ if(poolp != NULL) {
-+ PORT_FreeArena(poolp, PR_TRUE);
-+ algid = NULL;
-+ }
-+
-+ sec_pkcs5_destroy_pbe_param(pbe_param);
-+
-+ return ret_algid;
-+}
-+
-+SECStatus
-+pbe_PK11AlgidToParam(SECAlgorithmID *algid,SECItem *mech)
-+{
-+ CK_PBE_PARAMS *pbe_params = NULL;
-+ SEC_PKCS5PBEParameter p5_param;
-+ SECItem *salt = NULL;
-+ SECOidTag algorithm = SECOID_GetAlgorithmTag(algid);
-+ PRArenaPool *arena = NULL;
-+ SECStatus rv = SECFailure;
-+ int iv_len;
-+
-+
-+ arena = PORT_NewArena(SEC_ASN1_DEFAULT_ARENA_SIZE);
-+ if (arena == NULL) {
-+ goto loser;
-+ }
-+ iv_len = PK11_GetIVLength(PK11_AlgtagToMechanism(algorithm));
-+ if (iv_len < 0) {
-+ goto loser;
-+ }
-+
-+ if (sec_pkcs5_is_algorithm_v2_pkcs12_algorithm(algorithm)) {
-+ rv = SEC_ASN1DecodeItem(arena, &p5_param,
-+ SEC_V2PKCS12PBEParameterTemplate, &algid->parameters);
-+ } else {
-+ rv = SEC_ASN1DecodeItem(arena,&p5_param,SEC_PKCS5PBEParameterTemplate,
-+ &algid->parameters);
-+ }
-+
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+
-+ salt = &p5_param.salt;
-+
-+ pbe_params = (CK_PBE_PARAMS *)PORT_ZAlloc(sizeof(CK_PBE_PARAMS)+
-+ salt->len+iv_len);
-+ if (pbe_params == NULL) {
-+ goto loser;
-+ }
-+
-+ /* get salt */
-+ pbe_params->pSalt = ((CK_CHAR_PTR) pbe_params)+sizeof(CK_PBE_PARAMS);
-+ if (iv_len) {
-+ pbe_params->pInitVector = ((CK_CHAR_PTR) pbe_params)+
-+ sizeof(CK_PBE_PARAMS)+salt->len;
-+ }
-+ PORT_Memcpy(pbe_params->pSalt, salt->data, salt->len);
-+ pbe_params->ulSaltLen = (CK_ULONG) salt->len;
-+
-+ /* get iteration count */
-+ pbe_params->ulIteration = (CK_ULONG) DER_GetInteger(&p5_param.iteration);
-+
-+ /* copy into the mechanism sec item */
-+ mech->data = (unsigned char *)pbe_params;
-+ mech->len = sizeof(*pbe_params);
-+ if (arena) {
-+ PORT_FreeArena(arena,PR_TRUE);
-+ }
-+ return SECSuccess;
-+
-+loser:
-+ if (pbe_params) {
-+ PORT_Free(pbe_params);
-+ }
-+ if (arena) {
-+ PORT_FreeArena(arena,PR_TRUE);
-+ }
-+ return SECFailure;
-+}
-+
-+SECStatus
-+PBE_PK11ParamToAlgid(SECOidTag algTag, SECItem *param, PRArenaPool *arena,
-+ SECAlgorithmID *algId)
-+{
-+ CK_PBE_PARAMS *pbe_param;
-+ SECItem pbeSalt;
-+ SECAlgorithmID *pbeAlgID = NULL;
-+ SECStatus rv;
-+
-+ if(!param || !algId) {
-+ return SECFailure;
-+ }
-+
-+ pbe_param = (CK_PBE_PARAMS *)param->data;
-+ pbeSalt.data = (unsigned char *)pbe_param->pSalt;
-+ pbeSalt.len = pbe_param->ulSaltLen;
-+ pbeAlgID = SEC_PKCS5CreateAlgorithmID(algTag, &pbeSalt,
-+ (int)pbe_param->ulIteration);
-+ if(!pbeAlgID) {
-+ return SECFailure;
-+ }
-+
-+ rv = SECOID_CopyAlgorithmID(arena, algId, pbeAlgID);
-+ SECOID_DestroyAlgorithmID(pbeAlgID, PR_TRUE);
-+ return rv;
-+}
-+
-+PBEBitGenContext *
-+PBE_CreateContext(SECOidTag hashAlgorithm, PBEBitGenID bitGenPurpose,
-+ SECItem *pwitem, SECItem *salt, unsigned int bitsNeeded,
-+ unsigned int iterations)
-+{
-+ SECItem *context = NULL;
-+ SECItem mechItem;
-+ CK_PBE_PARAMS pbe_params;
-+ CK_MECHANISM_TYPE mechanism = CKM_INVALID_MECHANISM;
-+ PK11SlotInfo *slot;
-+ PK11SymKey *symKey = NULL;
-+ unsigned char ivData[8];
-+
-+
-+ /* use the purpose to select the low level keygen algorithm */
-+ switch (bitGenPurpose) {
-+ case pbeBitGenIntegrityKey:
-+ switch (hashAlgorithm) {
-+ case SEC_OID_SHA1:
-+ mechanism = CKM_PBA_SHA1_WITH_SHA1_HMAC;
-+ break;
-+ case SEC_OID_MD2:
-+ mechanism = CKM_NETSCAPE_PBE_MD2_HMAC_KEY_GEN;
-+ break;
-+ case SEC_OID_MD5:
-+ mechanism = CKM_NETSCAPE_PBE_MD5_HMAC_KEY_GEN;
-+ break;
-+ default:
-+ break;
-+ }
-+ break;
-+ case pbeBitGenCipherIV:
-+ if (bitsNeeded > 64) {
-+ break;
-+ }
-+ if (hashAlgorithm != SEC_OID_SHA1) {
-+ break;
-+ }
-+ mechanism = CKM_PBE_SHA1_DES3_EDE_CBC;
-+ break;
-+ case pbeBitGenCipherKey:
-+ if (hashAlgorithm != SEC_OID_SHA1) {
-+ break;
-+ }
-+ switch (bitsNeeded) {
-+ case 40:
-+ mechanism = CKM_PBE_SHA1_RC4_40;
-+ break;
-+ case 128:
-+ mechanism = CKM_PBE_SHA1_RC4_128;
-+ break;
-+ default:
-+ break;
-+ }
-+ case pbeBitGenIDNull:
-+ break;
-+ }
-+
-+ if (mechanism == CKM_INVALID_MECHANISM) {
-+ /* we should set an error, but this is a depricated function, and
-+ * we are keeping bug for bug compatibility;)... */
-+ return NULL;
-+ }
-+
-+ pbe_params.pInitVector = ivData;
-+ pbe_params.pPassword = pwitem->data;
-+ pbe_params.ulPasswordLen = pwitem->len;
-+ pbe_params.pSalt = salt->data;
-+ pbe_params.ulSaltLen = salt->len;
-+ pbe_params.ulIteration = iterations;
-+ mechItem.data = (unsigned char *) &pbe_params;
-+ mechItem.len = sizeof(pbe_params);
-+
-+
-+ slot = PK11_GetInternalSlot();
-+ symKey = PK11_RawPBEKeyGen(slot,mechanism,
-+ &mechItem, pwitem, PR_FALSE, NULL);
-+ PK11_FreeSlot(slot);
-+ if (symKey != NULL) {
-+ if (bitGenPurpose == pbeBitGenCipherIV) {
-+ /* NOTE: this assumes that bitsNeeded is a multiple of 8! */
-+ SECItem ivItem;
-+
-+ ivItem.data = ivData;
-+ ivItem.len = bitsNeeded/8;
-+ context = SECITEM_DupItem(&ivItem);
-+ } else {
-+ SECItem *keyData;
-+ PK11_ExtractKeyValue(symKey);
-+ keyData = PK11_GetKeyData(symKey);
-+
-+ /* assert bitsNeeded with length? */
-+ if (keyData) {
-+ context = SECITEM_DupItem(keyData);
-+ }
-+ }
-+ PK11_FreeSymKey(symKey);
-+ }
-+
-+ return (PBEBitGenContext *)context;
-+}
-+
-+SECItem *
-+PBE_GenerateBits(PBEBitGenContext *context)
-+{
-+ return (SECItem *)context;
-+}
-+
-+void
-+PBE_DestroyContext(PBEBitGenContext *context)
-+{
-+ SECITEM_FreeItem((SECItem *)context,PR_TRUE);
-+}
-+
-+SECItem *
-+SEC_PKCS5GetIV(SECAlgorithmID *algid, SECItem *pwitem, PRBool faulty3DES)
-+{
-+ SECItem mechItem;
-+ SECOidTag algorithm = SECOID_GetAlgorithmTag(algid);
-+ CK_PBE_PARAMS *pbe_params;
-+ CK_MECHANISM_TYPE mechanism;
-+ SECItem *iv = NULL;
-+ SECStatus rv;
-+ int iv_len;
-+ PK11SlotInfo *slot;
-+ PK11SymKey *symKey;
-+
-+ rv = pbe_PK11AlgidToParam(algid,&mechItem);
-+ if (rv != SECSuccess) {
-+ return NULL;
-+ }
-+
-+ mechanism = PK11_AlgtagToMechanism(algorithm);
-+ iv_len = PK11_GetIVLength(mechanism);
-+ pbe_params = (CK_PBE_PARAMS_PTR)mechItem.data;
-+
-+ slot = PK11_GetInternalSlot();
-+ symKey = PK11_RawPBEKeyGen(slot,mechanism,
-+ &mechItem, pwitem, faulty3DES,NULL);
-+ PK11_FreeSlot(slot);
-+
-+ if (symKey) {
-+ SECItem tmp;
-+
-+ tmp.data = pbe_params->pInitVector;
-+ tmp.len = iv_len;
-+ iv = SECITEM_DupItem(&tmp);
-+ PK11_FreeSymKey(symKey);
-+ }
-+
-+ if (mechItem.data) {
-+ PORT_ZFree(mechItem.data,mechItem.len);
-+ }
-+
-+ return iv;
-+}
-+
-+/*
-+ * Subs from nss 3.x that are depricated
-+ */
-+PBEBitGenContext *
-+__PBE_CreateContext(SECOidTag hashAlgorithm, PBEBitGenID bitGenPurpose,
-+ SECItem *pwitem, SECItem *salt, unsigned int bitsNeeded,
-+ unsigned int iterations)
-+{
-+ PORT_Assert("__PBE_CreateContext is Depricated" == NULL);
-+ return NULL;
-+}
-+
-+SECItem *
-+__PBE_GenerateBits(PBEBitGenContext *context)
-+{
-+ PORT_Assert("__PBE_GenerateBits is Depricated" == NULL);
-+ return NULL;
-+}
-+
-+void
-+__PBE_DestroyContext(PBEBitGenContext *context)
-+{
-+ PORT_Assert("__PBE_DestroyContext is Depricated" == NULL);
-+}
-+
-+SECStatus
-+RSA_FormatBlock(SECItem *result, unsigned modulusLen,
-+ int blockType, SECItem *data)
-+{
-+ PORT_Assert("RSA_FormatBlock is Depricated" == NULL);
-+ return SECFailure;
-+}
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pk11pk12.c 2004-12-13 13:06:46.683400136 +0100
-@@ -0,0 +1,553 @@
-+
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+/*
-+ * This file PKCS #12 fuctions that should really be moved to the
-+ * PKCS #12 directory, however we can't do that in a point release
-+ * because that will break binary compatibility, so we keep them here for now.
-+ */
-+
-+#include "seccomon.h"
-+#include "secmod.h"
-+#include "secmodi.h"
-+#include "pkcs11.h"
-+#include "pk11func.h"
-+#include "secitem.h"
-+#include "key.h"
-+#include "secoid.h"
-+#include "secasn1.h"
-+#include "secerr.h"
-+
-+
-+
-+/* These data structures should move to a common .h file shared between the
-+ * wrappers and the pkcs 12 code. */
-+
-+/*
-+** RSA Raw Private Key structures
-+*/
-+
-+/* member names from PKCS#1, section 7.2 */
-+struct SECKEYRSAPrivateKeyStr {
-+ PRArenaPool * arena;
-+ SECItem version;
-+ SECItem modulus;
-+ SECItem publicExponent;
-+ SECItem privateExponent;
-+ SECItem prime1;
-+ SECItem prime2;
-+ SECItem exponent1;
-+ SECItem exponent2;
-+ SECItem coefficient;
-+};
-+typedef struct SECKEYRSAPrivateKeyStr SECKEYRSAPrivateKey;
-+
-+
-+/*
-+** DSA Raw Private Key structures
-+*/
-+
-+struct SECKEYDSAPrivateKeyStr {
-+ SECKEYPQGParams params;
-+ SECItem privateValue;
-+};
-+typedef struct SECKEYDSAPrivateKeyStr SECKEYDSAPrivateKey;
-+
-+/*
-+** Diffie-Hellman Raw Private Key structures
-+** Structure member names suggested by PKCS#3.
-+*/
-+struct SECKEYDHPrivateKeyStr {
-+ PRArenaPool * arena;
-+ SECItem prime;
-+ SECItem base;
-+ SECItem privateValue;
-+};
-+typedef struct SECKEYDHPrivateKeyStr SECKEYDHPrivateKey;
-+
-+/*
-+** raw private key object
-+*/
-+struct SECKEYRawPrivateKeyStr {
-+ PLArenaPool *arena;
-+ KeyType keyType;
-+ union {
-+ SECKEYRSAPrivateKey rsa;
-+ SECKEYDSAPrivateKey dsa;
-+ SECKEYDHPrivateKey dh;
-+ } u;
-+};
-+typedef struct SECKEYRawPrivateKeyStr SECKEYRawPrivateKey;
-+
-+
-+/* ASN1 Templates for new decoder/encoder */
-+/*
-+ * Attribute value for PKCS8 entries (static?)
-+ */
-+const SEC_ASN1Template SECKEY_AttributeTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(SECKEYAttribute) },
-+ { SEC_ASN1_OBJECT_ID, offsetof(SECKEYAttribute, attrType) },
-+ { SEC_ASN1_SET_OF, offsetof(SECKEYAttribute, attrValue),
-+ SEC_AnyTemplate },
-+ { 0 }
-+};
-+
-+const SEC_ASN1Template SECKEY_SetOfAttributeTemplate[] = {
-+ { SEC_ASN1_SET_OF, 0, SECKEY_AttributeTemplate },
-+};
-+
-+const SEC_ASN1Template SECKEY_PrivateKeyInfoTemplate[] = {
-+ { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(SECKEYPrivateKeyInfo) },
-+ { SEC_ASN1_INTEGER, offsetof(SECKEYPrivateKeyInfo,version) },
-+ { SEC_ASN1_INLINE, offsetof(SECKEYPrivateKeyInfo,algorithm),
-+ SECOID_AlgorithmIDTemplate },
-+ { SEC_ASN1_OCTET_STRING, offsetof(SECKEYPrivateKeyInfo,privateKey) },
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | 0,
-+ offsetof(SECKEYPrivateKeyInfo,attributes),
-+ SECKEY_SetOfAttributeTemplate },
-+ { 0 }
-+};
-+
-+const SEC_ASN1Template SECKEY_PointerToPrivateKeyInfoTemplate[] = {
-+ { SEC_ASN1_POINTER, 0, SECKEY_PrivateKeyInfoTemplate }
-+};
-+
-+const SEC_ASN1Template SECKEY_RSAPrivateKeyExportTemplate[] = {
-+ { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(SECKEYRawPrivateKey) },
-+ { SEC_ASN1_INTEGER, offsetof(SECKEYRawPrivateKey,u.rsa.version) },
-+ { SEC_ASN1_INTEGER, offsetof(SECKEYRawPrivateKey,u.rsa.modulus) },
-+ { SEC_ASN1_INTEGER, offsetof(SECKEYRawPrivateKey,u.rsa.publicExponent) },
-+ { SEC_ASN1_INTEGER, offsetof(SECKEYRawPrivateKey,u.rsa.privateExponent) },
-+ { SEC_ASN1_INTEGER, offsetof(SECKEYRawPrivateKey,u.rsa.prime1) },
-+ { SEC_ASN1_INTEGER, offsetof(SECKEYRawPrivateKey,u.rsa.prime2) },
-+ { SEC_ASN1_INTEGER, offsetof(SECKEYRawPrivateKey,u.rsa.exponent1) },
-+ { SEC_ASN1_INTEGER, offsetof(SECKEYRawPrivateKey,u.rsa.exponent2) },
-+ { SEC_ASN1_INTEGER, offsetof(SECKEYRawPrivateKey,u.rsa.coefficient) },
-+ { 0 }
-+};
-+
-+const SEC_ASN1Template SECKEY_DSAPrivateKeyExportTemplate[] = {
-+ { SEC_ASN1_INTEGER, offsetof(SECKEYRawPrivateKey,u.dsa.privateValue) },
-+};
-+
-+const SEC_ASN1Template SECKEY_DHPrivateKeyExportTemplate[] = {
-+ { SEC_ASN1_INTEGER, offsetof(SECKEYRawPrivateKey,u.dh.privateValue) },
-+ { SEC_ASN1_INTEGER, offsetof(SECKEYRawPrivateKey,u.dh.base) },
-+ { SEC_ASN1_INTEGER, offsetof(SECKEYRawPrivateKey,u.dh.prime) },
-+};
-+
-+const SEC_ASN1Template SECKEY_EncryptedPrivateKeyInfoTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(SECKEYEncryptedPrivateKeyInfo) },
-+ { SEC_ASN1_INLINE,
-+ offsetof(SECKEYEncryptedPrivateKeyInfo,algorithm),
-+ SECOID_AlgorithmIDTemplate },
-+ { SEC_ASN1_OCTET_STRING,
-+ offsetof(SECKEYEncryptedPrivateKeyInfo,encryptedData) },
-+ { 0 }
-+};
-+
-+const SEC_ASN1Template SECKEY_PointerToEncryptedPrivateKeyInfoTemplate[] = {
-+ { SEC_ASN1_POINTER, 0, SECKEY_EncryptedPrivateKeyInfoTemplate }
-+};
-+
-+SEC_ASN1_CHOOSER_IMPLEMENT(SECKEY_EncryptedPrivateKeyInfoTemplate)
-+SEC_ASN1_CHOOSER_IMPLEMENT(SECKEY_PointerToEncryptedPrivateKeyInfoTemplate)
-+SEC_ASN1_CHOOSER_IMPLEMENT(SECKEY_PrivateKeyInfoTemplate)
-+SEC_ASN1_CHOOSER_IMPLEMENT(SECKEY_PointerToPrivateKeyInfoTemplate)
-+
-+/*
-+ * See bugzilla bug 125359
-+ * Since NSS (via PKCS#11) wants to handle big integers as unsigned ints,
-+ * all of the templates above that en/decode into integers must be converted
-+ * from ASN.1's signed integer type. This is done by marking either the
-+ * source or destination (encoding or decoding, respectively) type as
-+ * siUnsignedInteger.
-+ */
-+
-+static void
-+prepare_rsa_priv_key_export_for_asn1(SECKEYRawPrivateKey *key)
-+{
-+ key->u.rsa.modulus.type = siUnsignedInteger;
-+ key->u.rsa.publicExponent.type = siUnsignedInteger;
-+ key->u.rsa.privateExponent.type = siUnsignedInteger;
-+ key->u.rsa.prime1.type = siUnsignedInteger;
-+ key->u.rsa.prime2.type = siUnsignedInteger;
-+ key->u.rsa.exponent1.type = siUnsignedInteger;
-+ key->u.rsa.exponent2.type = siUnsignedInteger;
-+ key->u.rsa.coefficient.type = siUnsignedInteger;
-+}
-+
-+static void
-+prepare_dsa_priv_key_export_for_asn1(SECKEYRawPrivateKey *key)
-+{
-+ key->u.dsa.privateValue.type = siUnsignedInteger;
-+ key->u.dsa.params.prime.type = siUnsignedInteger;
-+ key->u.dsa.params.subPrime.type = siUnsignedInteger;
-+ key->u.dsa.params.base.type = siUnsignedInteger;
-+}
-+
-+static void
-+prepare_dh_priv_key_export_for_asn1(SECKEYRawPrivateKey *key)
-+{
-+ key->u.dh.privateValue.type = siUnsignedInteger;
-+ key->u.dh.prime.type = siUnsignedInteger;
-+ key->u.dh.base.type = siUnsignedInteger;
-+}
-+
-+
-+SECStatus
-+PK11_ImportDERPrivateKeyInfo(PK11SlotInfo *slot, SECItem *derPKI,
-+ SECItem *nickname, SECItem *publicValue, PRBool isPerm,
-+ PRBool isPrivate, unsigned int keyUsage, void *wincx)
-+{
-+ return PK11_ImportDERPrivateKeyInfoAndReturnKey(slot, derPKI,
-+ nickname, publicValue, isPerm, isPrivate, keyUsage, NULL, wincx);
-+}
-+
-+SECStatus
-+PK11_ImportDERPrivateKeyInfoAndReturnKey(PK11SlotInfo *slot, SECItem *derPKI,
-+ SECItem *nickname, SECItem *publicValue, PRBool isPerm,
-+ PRBool isPrivate, unsigned int keyUsage, SECKEYPrivateKey** privk,
-+ void *wincx)
-+{
-+ SECKEYPrivateKeyInfo *pki = NULL;
-+ PRArenaPool *temparena = NULL;
-+ SECStatus rv = SECFailure;
-+
-+ temparena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ pki = PORT_ArenaZNew(temparena, SECKEYPrivateKeyInfo);
-+ pki->arena = temparena;
-+
-+ rv = SEC_ASN1DecodeItem(pki->arena, pki, SECKEY_PrivateKeyInfoTemplate,
-+ derPKI);
-+ if( rv != SECSuccess ) {
-+ goto finish;
-+ }
-+
-+ rv = PK11_ImportPrivateKeyInfoAndReturnKey(slot, pki, nickname,
-+ publicValue, isPerm, isPrivate, keyUsage, privk, wincx);
-+
-+finish:
-+ if( pki != NULL ) {
-+ /* this zeroes the key and frees the arena */
-+ SECKEY_DestroyPrivateKeyInfo(pki, PR_TRUE /*freeit*/);
-+ }
-+ return rv;
-+}
-+
-+SECStatus
-+PK11_ImportAndReturnPrivateKey(PK11SlotInfo *slot, SECKEYRawPrivateKey *lpk,
-+ SECItem *nickname, SECItem *publicValue, PRBool isPerm,
-+ PRBool isPrivate, unsigned int keyUsage, SECKEYPrivateKey **privk,
-+ void *wincx)
-+{
-+ CK_BBOOL cktrue = CK_TRUE;
-+ CK_BBOOL ckfalse = CK_FALSE;
-+ CK_OBJECT_CLASS keyClass = CKO_PRIVATE_KEY;
-+ CK_KEY_TYPE keyType = CKK_RSA;
-+ CK_OBJECT_HANDLE objectID;
-+ CK_ATTRIBUTE theTemplate[20];
-+ int templateCount = 0;
-+ SECStatus rv = SECFailure;
-+ PRArenaPool *arena;
-+ CK_ATTRIBUTE *attrs;
-+ CK_ATTRIBUTE *signedattr = NULL;
-+ int signedcount = 0;
-+ CK_ATTRIBUTE *ap;
-+ SECItem *ck_id = NULL;
-+
-+ arena = PORT_NewArena(2048);
-+ if(!arena) {
-+ return SECFailure;
-+ }
-+
-+ attrs = theTemplate;
-+
-+
-+ PK11_SETATTRS(attrs, CKA_CLASS, &keyClass, sizeof(keyClass) ); attrs++;
-+ PK11_SETATTRS(attrs, CKA_KEY_TYPE, &keyType, sizeof(keyType) ); attrs++;
-+ PK11_SETATTRS(attrs, CKA_TOKEN, isPerm ? &cktrue : &ckfalse,
-+ sizeof(CK_BBOOL) ); attrs++;
-+ PK11_SETATTRS(attrs, CKA_SENSITIVE, isPrivate ? &cktrue : &ckfalse,
-+ sizeof(CK_BBOOL) ); attrs++;
-+ PK11_SETATTRS(attrs, CKA_PRIVATE, isPrivate ? &cktrue : &ckfalse,
-+ sizeof(CK_BBOOL) ); attrs++;
-+
-+ switch (lpk->keyType) {
-+ case rsaKey:
-+ keyType = CKK_RSA;
-+ PK11_SETATTRS(attrs, CKA_UNWRAP, (keyUsage & KU_KEY_ENCIPHERMENT) ?
-+ &cktrue : &ckfalse, sizeof(CK_BBOOL) ); attrs++;
-+ PK11_SETATTRS(attrs, CKA_DECRYPT, (keyUsage & KU_DATA_ENCIPHERMENT) ?
-+ &cktrue : &ckfalse, sizeof(CK_BBOOL) ); attrs++;
-+ PK11_SETATTRS(attrs, CKA_SIGN, (keyUsage & KU_DIGITAL_SIGNATURE) ?
-+ &cktrue : &ckfalse, sizeof(CK_BBOOL) ); attrs++;
-+ PK11_SETATTRS(attrs, CKA_SIGN_RECOVER,
-+ (keyUsage & KU_DIGITAL_SIGNATURE) ?
-+ &cktrue : &ckfalse, sizeof(CK_BBOOL) ); attrs++;
-+ ck_id = PK11_MakeIDFromPubKey(&lpk->u.rsa.modulus);
-+ if (ck_id == NULL) {
-+ goto loser;
-+ }
-+ PK11_SETATTRS(attrs, CKA_ID, ck_id->data,ck_id->len); attrs++;
-+ if (nickname) {
-+ PK11_SETATTRS(attrs, CKA_LABEL, nickname->data, nickname->len); attrs++;
-+ }
-+ signedattr = attrs;
-+ PK11_SETATTRS(attrs, CKA_MODULUS, lpk->u.rsa.modulus.data,
-+ lpk->u.rsa.modulus.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_PUBLIC_EXPONENT,
-+ lpk->u.rsa.publicExponent.data,
-+ lpk->u.rsa.publicExponent.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_PRIVATE_EXPONENT,
-+ lpk->u.rsa.privateExponent.data,
-+ lpk->u.rsa.privateExponent.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_PRIME_1,
-+ lpk->u.rsa.prime1.data,
-+ lpk->u.rsa.prime1.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_PRIME_2,
-+ lpk->u.rsa.prime2.data,
-+ lpk->u.rsa.prime2.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_EXPONENT_1,
-+ lpk->u.rsa.exponent1.data,
-+ lpk->u.rsa.exponent1.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_EXPONENT_2,
-+ lpk->u.rsa.exponent2.data,
-+ lpk->u.rsa.exponent2.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_COEFFICIENT,
-+ lpk->u.rsa.coefficient.data,
-+ lpk->u.rsa.coefficient.len); attrs++;
-+ break;
-+ case dsaKey:
-+ keyType = CKK_DSA;
-+ /* To make our intenal PKCS #11 module work correctly with
-+ * our database, we need to pass in the public key value for
-+ * this dsa key. We have a netscape only CKA_ value to do this.
-+ * Only send it to internal slots */
-+ if( publicValue == NULL ) {
-+ goto loser;
-+ }
-+ if (PK11_IsInternal(slot)) {
-+ PK11_SETATTRS(attrs, CKA_NETSCAPE_DB,
-+ publicValue->data, publicValue->len); attrs++;
-+ }
-+ PK11_SETATTRS(attrs, CKA_SIGN, &cktrue, sizeof(CK_BBOOL)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_SIGN_RECOVER, &cktrue, sizeof(CK_BBOOL)); attrs++;
-+ if(nickname) {
-+ PK11_SETATTRS(attrs, CKA_LABEL, nickname->data, nickname->len);
-+ attrs++;
-+ }
-+ ck_id = PK11_MakeIDFromPubKey(publicValue);
-+ if (ck_id == NULL) {
-+ goto loser;
-+ }
-+ PK11_SETATTRS(attrs, CKA_ID, ck_id->data,ck_id->len); attrs++;
-+ signedattr = attrs;
-+ PK11_SETATTRS(attrs, CKA_PRIME, lpk->u.dsa.params.prime.data,
-+ lpk->u.dsa.params.prime.len); attrs++;
-+ PK11_SETATTRS(attrs,CKA_SUBPRIME,lpk->u.dsa.params.subPrime.data,
-+ lpk->u.dsa.params.subPrime.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_BASE, lpk->u.dsa.params.base.data,
-+ lpk->u.dsa.params.base.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_VALUE, lpk->u.dsa.privateValue.data,
-+ lpk->u.dsa.privateValue.len); attrs++;
-+ break;
-+ case dhKey:
-+ keyType = CKK_DH;
-+ /* To make our intenal PKCS #11 module work correctly with
-+ * our database, we need to pass in the public key value for
-+ * this dh key. We have a netscape only CKA_ value to do this.
-+ * Only send it to internal slots */
-+ if (PK11_IsInternal(slot)) {
-+ PK11_SETATTRS(attrs, CKA_NETSCAPE_DB,
-+ publicValue->data, publicValue->len); attrs++;
-+ }
-+ PK11_SETATTRS(attrs, CKA_DERIVE, &cktrue, sizeof(CK_BBOOL)); attrs++;
-+ if(nickname) {
-+ PK11_SETATTRS(attrs, CKA_LABEL, nickname->data, nickname->len);
-+ attrs++;
-+ }
-+ ck_id = PK11_MakeIDFromPubKey(publicValue);
-+ if (ck_id == NULL) {
-+ goto loser;
-+ }
-+ PK11_SETATTRS(attrs, CKA_ID, ck_id->data,ck_id->len); attrs++;
-+ signedattr = attrs;
-+ PK11_SETATTRS(attrs, CKA_PRIME, lpk->u.dh.prime.data,
-+ lpk->u.dh.prime.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_BASE, lpk->u.dh.base.data,
-+ lpk->u.dh.base.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_VALUE, lpk->u.dh.privateValue.data,
-+ lpk->u.dh.privateValue.len); attrs++;
-+ break;
-+ /* what about fortezza??? */
-+ default:
-+ PORT_SetError(SEC_ERROR_BAD_KEY);
-+ goto loser;
-+ }
-+ templateCount = attrs - theTemplate;
-+ PORT_Assert(templateCount <= sizeof(theTemplate)/sizeof(CK_ATTRIBUTE));
-+ PORT_Assert(signedattr != NULL);
-+ signedcount = attrs - signedattr;
-+
-+ for (ap=signedattr; signedcount; ap++, signedcount--) {
-+ pk11_SignedToUnsigned(ap);
-+ }
-+
-+ rv = PK11_CreateNewObject(slot, CK_INVALID_SESSION,
-+ theTemplate, templateCount, isPerm, &objectID);
-+
-+ /* create and return a SECKEYPrivateKey */
-+ if( rv == SECSuccess && privk != NULL) {
-+ *privk = PK11_MakePrivKey(slot, lpk->keyType, !isPerm, objectID, wincx);
-+ if( *privk == NULL ) {
-+ rv = SECFailure;
-+ }
-+ }
-+loser:
-+ if (ck_id) {
-+ SECITEM_ZfreeItem(ck_id, PR_TRUE);
-+ }
-+ return rv;
-+}
-+
-+SECStatus
-+PK11_ImportPrivateKey(PK11SlotInfo *slot, SECKEYRawPrivateKey *lpk,
-+ SECItem *nickname, SECItem *publicValue, PRBool isPerm,
-+ PRBool isPrivate, unsigned int keyUsage, void *wincx)
-+{
-+ return PK11_ImportAndReturnPrivateKey(slot, lpk, nickname, publicValue,
-+ isPerm, isPrivate, keyUsage, NULL, wincx);
-+}
-+
-+SECStatus
-+PK11_ImportPrivateKeyInfoAndReturnKey(PK11SlotInfo *slot,
-+ SECKEYPrivateKeyInfo *pki, SECItem *nickname, SECItem *publicValue,
-+ PRBool isPerm, PRBool isPrivate, unsigned int keyUsage,
-+ SECKEYPrivateKey **privk, void *wincx)
-+{
-+ CK_KEY_TYPE keyType = CKK_RSA;
-+ SECStatus rv = SECFailure;
-+ SECKEYRawPrivateKey *lpk = NULL;
-+ const SEC_ASN1Template *keyTemplate, *paramTemplate;
-+ void *paramDest = NULL;
-+ PRArenaPool *arena;
-+
-+ arena = PORT_NewArena(2048);
-+ if(!arena) {
-+ return SECFailure;
-+ }
-+
-+ /* need to change this to use RSA/DSA keys */
-+ lpk = (SECKEYRawPrivateKey *)PORT_ArenaZAlloc(arena,
-+ sizeof(SECKEYRawPrivateKey));
-+ if(lpk == NULL) {
-+ goto loser;
-+ }
-+ lpk->arena = arena;
-+
-+ switch(SECOID_GetAlgorithmTag(&pki->algorithm)) {
-+ case SEC_OID_PKCS1_RSA_ENCRYPTION:
-+ prepare_rsa_priv_key_export_for_asn1(lpk);
-+ keyTemplate = SECKEY_RSAPrivateKeyExportTemplate;
-+ paramTemplate = NULL;
-+ paramDest = NULL;
-+ lpk->keyType = rsaKey;
-+ keyType = CKK_RSA;
-+ break;
-+ case SEC_OID_ANSIX9_DSA_SIGNATURE:
-+ prepare_dsa_priv_key_export_for_asn1(lpk);
-+ keyTemplate = SECKEY_DSAPrivateKeyExportTemplate;
-+ paramTemplate = SECKEY_PQGParamsTemplate;
-+ paramDest = &(lpk->u.dsa.params);
-+ lpk->keyType = dsaKey;
-+ keyType = CKK_DSA;
-+ break;
-+ case SEC_OID_X942_DIFFIE_HELMAN_KEY:
-+ if(!publicValue) {
-+ goto loser;
-+ }
-+ prepare_dh_priv_key_export_for_asn1(lpk);
-+ keyTemplate = SECKEY_DHPrivateKeyExportTemplate;
-+ paramTemplate = NULL;
-+ paramDest = NULL;
-+ lpk->keyType = dhKey;
-+ keyType = CKK_DH;
-+ break;
-+
-+ default:
-+ keyTemplate = NULL;
-+ paramTemplate = NULL;
-+ paramDest = NULL;
-+ break;
-+ }
-+
-+ if(!keyTemplate) {
-+ goto loser;
-+ }
-+
-+ /* decode the private key and any algorithm parameters */
-+ rv = SEC_ASN1DecodeItem(arena, lpk, keyTemplate, &pki->privateKey);
-+ if(rv != SECSuccess) {
-+ goto loser;
-+ }
-+ if(paramDest && paramTemplate) {
-+ rv = SEC_ASN1DecodeItem(arena, paramDest, paramTemplate,
-+ &(pki->algorithm.parameters));
-+ if(rv != SECSuccess) {
-+ goto loser;
-+ }
-+ }
-+
-+ rv = PK11_ImportAndReturnPrivateKey(slot,lpk,nickname,publicValue, isPerm,
-+ isPrivate, keyUsage, privk, wincx);
-+
-+
-+loser:
-+ if (lpk!= NULL) {
-+ PORT_FreeArena(arena, PR_TRUE);
-+ }
-+
-+ return rv;
-+}
-+
-+SECStatus
-+PK11_ImportPrivateKeyInfo(PK11SlotInfo *slot, SECKEYPrivateKeyInfo *pki,
-+ SECItem *nickname, SECItem *publicValue, PRBool isPerm,
-+ PRBool isPrivate, unsigned int keyUsage, void *wincx)
-+{
-+ return PK11_ImportPrivateKeyInfoAndReturnKey(slot, pki, nickname,
-+ publicValue, isPerm, isPrivate, keyUsage, NULL, wincx);
-+
-+}
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pk11pqg.c 2004-12-13 13:06:46.683400136 +0100
-@@ -0,0 +1,374 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2001 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+/* Thse functions are stub functions which will get replaced with calls through
-+ * PKCS #11.
-+ */
-+
-+#include "pk11func.h"
-+#include "secmod.h"
-+#include "secmodi.h"
-+#include "pkcs11t.h"
-+#include "pk11pqg.h"
-+#include "pqgutil.h"
-+#include "secerr.h"
-+
-+
-+/* Generate PQGParams and PQGVerify structs.
-+ * Length of P specified by j. Length of h will match length of P.
-+ * Length of SEED in bytes specified in seedBytes.
-+ * seedBbytes must be in the range [20..255] or an error will result.
-+ */
-+extern SECStatus
-+PK11_PQG_ParamGenSeedLen( unsigned int j, unsigned int seedBytes,
-+ PQGParams **pParams, PQGVerify **pVfy)
-+{
-+ PK11SlotInfo *slot = NULL;
-+ CK_ATTRIBUTE genTemplate[5];
-+ CK_ATTRIBUTE *attrs = genTemplate;
-+ int count = sizeof(genTemplate)/sizeof(genTemplate[0]);
-+ CK_MECHANISM mechanism;
-+ CK_OBJECT_HANDLE objectID = CK_INVALID_HANDLE;
-+ CK_RV crv;
-+ CK_ATTRIBUTE pTemplate[] = {
-+ { CKA_PRIME, NULL, 0 },
-+ { CKA_SUBPRIME, NULL, 0 },
-+ { CKA_BASE, NULL, 0 },
-+ };
-+ CK_ATTRIBUTE vTemplate[] = {
-+ { CKA_NETSCAPE_PQG_COUNTER, NULL, 0 },
-+ { CKA_NETSCAPE_PQG_SEED, NULL, 0 },
-+ { CKA_NETSCAPE_PQG_H, NULL, 0 },
-+ };
-+ int pTemplateCount = sizeof(pTemplate)/sizeof(pTemplate[0]);
-+ int vTemplateCount = sizeof(vTemplate)/sizeof(vTemplate[0]);
-+ PRArenaPool *parena = NULL;
-+ PRArenaPool *varena = NULL;
-+ PQGParams *params = NULL;
-+ PQGVerify *verify = NULL;
-+ CK_ULONG primeBits = j;
-+ CK_ULONG seedBits = seedBytes*8;
-+
-+ *pParams = NULL;
-+ *pVfy = NULL;
-+
-+ PK11_SETATTRS(attrs, CKA_PRIME_BITS,&primeBits,sizeof(primeBits)); attrs++;
-+ if (seedBits != 0) {
-+ PK11_SETATTRS(attrs, CKA_NETSCAPE_PQG_SEED_BITS,
-+ &seedBits, sizeof(seedBits)); attrs++;
-+ }
-+ count = attrs - genTemplate;
-+ PR_ASSERT(count <= sizeof(genTemplate)/sizeof(CK_ATTRIBUTE));
-+
-+ slot = PK11_GetInternalSlot();
-+ if (slot == NULL) {
-+ /* set error */
-+ goto loser;
-+ }
-+
-+ /* Initialize the Key Gen Mechanism */
-+ mechanism.mechanism = CKM_DSA_PARAMETER_GEN;
-+ mechanism.pParameter = NULL;
-+ mechanism.ulParameterLen = 0;
-+
-+ PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_GenerateKey(slot->session,
-+ &mechanism, genTemplate, count, &objectID);
-+ PK11_ExitSlotMonitor(slot);
-+
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ goto loser;
-+ }
-+
-+ parena = PORT_NewArena(60);
-+ crv = PK11_GetAttributes(parena, slot, objectID, pTemplate, pTemplateCount);
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ goto loser;
-+ }
-+
-+
-+ params = (PQGParams *)PORT_ArenaAlloc(parena,sizeof(PQGParams));
-+ if (params == NULL) {
-+ goto loser;
-+ }
-+
-+ /* fill in Params */
-+ params->arena = parena;
-+ params->prime.data = pTemplate[0].pValue;
-+ params->prime.len = pTemplate[0].ulValueLen;
-+ params->subPrime.data = pTemplate[1].pValue;
-+ params->subPrime.len = pTemplate[1].ulValueLen;
-+ params->base.data = pTemplate[2].pValue;
-+ params->base.len = pTemplate[2].ulValueLen;
-+
-+
-+ varena = PORT_NewArena(60);
-+ crv = PK11_GetAttributes(varena, slot, objectID, vTemplate, vTemplateCount);
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ goto loser;
-+ }
-+
-+
-+ verify = (PQGVerify *)PORT_ArenaAlloc(varena,sizeof(PQGVerify));
-+ if (verify == NULL) {
-+ goto loser;
-+ }
-+ /* fill in Params */
-+ verify->arena = varena;
-+ verify->counter = (unsigned int)(*(CK_ULONG*)vTemplate[0].pValue);
-+ verify->seed.data = vTemplate[1].pValue;
-+ verify->seed.len = vTemplate[1].ulValueLen;
-+ verify->h.data = vTemplate[2].pValue;
-+ verify->h.len = vTemplate[2].ulValueLen;
-+
-+ PK11_DestroyObject(slot,objectID);
-+ PK11_FreeSlot(slot);
-+
-+ *pParams = params;
-+ *pVfy = verify;
-+
-+ return SECSuccess;
-+
-+loser:
-+ if (objectID != CK_INVALID_HANDLE) {
-+ PK11_DestroyObject(slot,objectID);
-+ }
-+ if (parena != NULL) {
-+ PORT_FreeArena(parena,PR_FALSE);
-+ }
-+ if (varena != NULL) {
-+ PORT_FreeArena(varena,PR_FALSE);
-+ }
-+ if (slot) {
-+ PK11_FreeSlot(slot);
-+ }
-+ return SECFailure;
-+}
-+
-+/* Generate PQGParams and PQGVerify structs.
-+ * Length of seed and length of h both equal length of P.
-+ * All lengths are specified by "j", according to the table above.
-+ */
-+extern SECStatus
-+PK11_PQG_ParamGen(unsigned int j, PQGParams **pParams, PQGVerify **pVfy)
-+{
-+ return PK11_PQG_ParamGenSeedLen(j, 0, pParams, pVfy);
-+}
-+
-+/* Test PQGParams for validity as DSS PQG values.
-+ * If vfy is non-NULL, test PQGParams to make sure they were generated
-+ * using the specified seed, counter, and h values.
-+ *
-+ * Return value indicates whether Verification operation ran succesfully
-+ * to completion, but does not indicate if PQGParams are valid or not.
-+ * If return value is SECSuccess, then *pResult has these meanings:
-+ * SECSuccess: PQGParams are valid.
-+ * SECFailure: PQGParams are invalid.
-+ */
-+
-+extern SECStatus
-+PK11_PQG_VerifyParams(const PQGParams *params, const PQGVerify *vfy,
-+ SECStatus *result)
-+{
-+ CK_ATTRIBUTE keyTempl[] = {
-+ { CKA_CLASS, NULL, 0 },
-+ { CKA_KEY_TYPE, NULL, 0 },
-+ { CKA_PRIME, NULL, 0 },
-+ { CKA_SUBPRIME, NULL, 0 },
-+ { CKA_BASE, NULL, 0 },
-+ { CKA_TOKEN, NULL, 0 },
-+ { CKA_NETSCAPE_PQG_COUNTER, NULL, 0 },
-+ { CKA_NETSCAPE_PQG_SEED, NULL, 0 },
-+ { CKA_NETSCAPE_PQG_H, NULL, 0 },
-+ };
-+ CK_ATTRIBUTE *attrs;
-+ CK_BBOOL ckfalse = CK_FALSE;
-+ CK_OBJECT_CLASS class = CKO_KG_PARAMETERS;
-+ CK_KEY_TYPE keyType = CKK_DSA;
-+ SECStatus rv = SECSuccess;
-+ PK11SlotInfo *slot;
-+ int keyCount;
-+ CK_OBJECT_HANDLE objectID;
-+ CK_ULONG counter;
-+ CK_RV crv;
-+
-+ attrs = keyTempl;
-+ PK11_SETATTRS(attrs, CKA_CLASS, &class, sizeof(class)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_KEY_TYPE, &keyType, sizeof(keyType)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_PRIME, params->prime.data,
-+ params->prime.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_SUBPRIME, params->subPrime.data,
-+ params->subPrime.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_BASE,params->base.data,params->base.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_TOKEN, &ckfalse, sizeof(ckfalse)); attrs++;
-+ if (vfy) {
-+ counter = vfy->counter;
-+ PK11_SETATTRS(attrs, CKA_NETSCAPE_PQG_COUNTER,
-+ &counter, sizeof(counter)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_NETSCAPE_PQG_SEED,
-+ vfy->seed.data, vfy->seed.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_NETSCAPE_PQG_H,
-+ vfy->h.data, vfy->h.len); attrs++;
-+ }
-+
-+ keyCount = attrs - keyTempl;
-+ PORT_Assert(keyCount <= sizeof(keyTempl)/sizeof(keyTempl[0]));
-+
-+
-+ slot = PK11_GetInternalSlot();
-+ if (slot == NULL) {
-+ return SECFailure;
-+ }
-+
-+ PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_CreateObject(slot->session, keyTempl, keyCount,
-+ &objectID);
-+ PK11_ExitSlotMonitor(slot);
-+
-+ /* throw away the keys, we only wanted the return code */
-+ PK11_DestroyObject(slot,objectID);
-+ PK11_FreeSlot(slot);
-+
-+ *result = SECSuccess;
-+ if (crv == CKR_ATTRIBUTE_VALUE_INVALID) {
-+ *result = SECFailure;
-+ } else if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ rv = SECFailure;
-+ }
-+ return rv;
-+
-+}
-+
-+
-+
-+/**************************************************************************
-+ * Free the PQGParams struct and the things it points to. *
-+ **************************************************************************/
-+extern void
-+PK11_PQG_DestroyParams(PQGParams *params) {
-+ PQG_DestroyParams(params);
-+ return;
-+}
-+
-+/**************************************************************************
-+ * Free the PQGVerify struct and the things it points to. *
-+ **************************************************************************/
-+extern void
-+PK11_PQG_DestroyVerify(PQGVerify *vfy) {
-+ PQG_DestroyVerify(vfy);
-+ return;
-+}
-+
-+/**************************************************************************
-+ * Return a pointer to a new PQGParams struct that is constructed from *
-+ * copies of the arguments passed in. *
-+ * Return NULL on failure. *
-+ **************************************************************************/
-+extern PQGParams *
-+PK11_PQG_NewParams(const SECItem * prime, const SECItem * subPrime,
-+ const SECItem * base) {
-+ return PQG_NewParams(prime, subPrime, base);
-+}
-+
-+
-+/**************************************************************************
-+ * Fills in caller's "prime" SECItem with the prime value in params.
-+ * Contents can be freed by calling SECITEM_FreeItem(prime, PR_FALSE);
-+ **************************************************************************/
-+extern SECStatus
-+PK11_PQG_GetPrimeFromParams(const PQGParams *params, SECItem * prime) {
-+ return PQG_GetPrimeFromParams(params, prime);
-+}
-+
-+
-+/**************************************************************************
-+ * Fills in caller's "subPrime" SECItem with the prime value in params.
-+ * Contents can be freed by calling SECITEM_FreeItem(subPrime, PR_FALSE);
-+ **************************************************************************/
-+extern SECStatus
-+PK11_PQG_GetSubPrimeFromParams(const PQGParams *params, SECItem * subPrime) {
-+ return PQG_GetSubPrimeFromParams(params, subPrime);
-+}
-+
-+
-+/**************************************************************************
-+ * Fills in caller's "base" SECItem with the base value in params.
-+ * Contents can be freed by calling SECITEM_FreeItem(base, PR_FALSE);
-+ **************************************************************************/
-+extern SECStatus
-+PK11_PQG_GetBaseFromParams(const PQGParams *params, SECItem *base) {
-+ return PQG_GetBaseFromParams(params, base);
-+}
-+
-+
-+/**************************************************************************
-+ * Return a pointer to a new PQGVerify struct that is constructed from *
-+ * copies of the arguments passed in. *
-+ * Return NULL on failure. *
-+ **************************************************************************/
-+extern PQGVerify *
-+PK11_PQG_NewVerify(unsigned int counter, const SECItem * seed,
-+ const SECItem * h) {
-+ return PQG_NewVerify(counter, seed, h);
-+}
-+
-+
-+/**************************************************************************
-+ * Returns "counter" value from the PQGVerify.
-+ **************************************************************************/
-+extern unsigned int
-+PK11_PQG_GetCounterFromVerify(const PQGVerify *verify) {
-+ return PQG_GetCounterFromVerify(verify);
-+}
-+
-+/**************************************************************************
-+ * Fills in caller's "seed" SECItem with the seed value in verify.
-+ * Contents can be freed by calling SECITEM_FreeItem(seed, PR_FALSE);
-+ **************************************************************************/
-+extern SECStatus
-+PK11_PQG_GetSeedFromVerify(const PQGVerify *verify, SECItem *seed) {
-+ return PQG_GetSeedFromVerify(verify, seed);
-+}
-+
-+
-+/**************************************************************************
-+ * Fills in caller's "h" SECItem with the h value in verify.
-+ * Contents can be freed by calling SECITEM_FreeItem(h, PR_FALSE);
-+ **************************************************************************/
-+extern SECStatus
-+PK11_PQG_GetHFromVerify(const PQGVerify *verify, SECItem * h) {
-+ return PQG_GetHFromVerify(verify, h);
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pk11sdr.c 2004-12-13 13:06:46.683400136 +0100
-@@ -0,0 +1,322 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ * thayes@netscape.com
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ *
-+ * PKCS #11 Wrapper functions which handles authenticating to the card's
-+ * choosing the best cards, etc.
-+ */
-+
-+#include "seccomon.h"
-+#include "secoid.h"
-+#include "secasn1.h"
-+#include "pkcs11.h"
-+#include "pk11func.h"
-+#include "pk11sdr.h"
-+
-+/*
-+ * Data structure and template for encoding the result of an SDR operation
-+ * This is temporary. It should include the algorithm ID of the encryption mechanism
-+ */
-+struct SDRResult
-+{
-+ SECItem keyid;
-+ SECAlgorithmID alg;
-+ SECItem data;
-+};
-+typedef struct SDRResult SDRResult;
-+
-+static SEC_ASN1Template template[] = {
-+ { SEC_ASN1_SEQUENCE, 0, NULL, sizeof (SDRResult) },
-+ { SEC_ASN1_OCTET_STRING, offsetof(SDRResult, keyid) },
-+ { SEC_ASN1_INLINE, offsetof(SDRResult, alg), SECOID_AlgorithmIDTemplate },
-+ { SEC_ASN1_OCTET_STRING, offsetof(SDRResult, data) },
-+ { 0 }
-+};
-+
-+static unsigned char keyID[] = {
-+ 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
-+};
-+
-+static SECItem keyIDItem = {
-+ 0,
-+ keyID,
-+ sizeof keyID
-+};
-+
-+/* local utility function for padding an incoming data block
-+ * to the mechanism block size.
-+ */
-+static SECStatus
-+padBlock(SECItem *data, int blockSize, SECItem *result)
-+{
-+ SECStatus rv = SECSuccess;
-+ int padLength;
-+ unsigned int i;
-+
-+ result->data = 0;
-+ result->len = 0;
-+
-+ /* This algorithm always adds to the block (to indicate the number
-+ * of pad bytes). So allocate a block large enough.
-+ */
-+ padLength = blockSize - (data->len % blockSize);
-+ result->len = data->len + padLength;
-+ result->data = (unsigned char *)PORT_Alloc(result->len);
-+
-+ /* Copy the data */
-+ PORT_Memcpy(result->data, data->data, data->len);
-+
-+ /* Add the pad values */
-+ for(i = data->len; i < result->len; i++)
-+ result->data[i] = (unsigned char)padLength;
-+
-+ return rv;
-+}
-+
-+static SECStatus
-+unpadBlock(SECItem *data, int blockSize, SECItem *result)
-+{
-+ SECStatus rv = SECSuccess;
-+ int padLength;
-+
-+ result->data = 0;
-+ result->len = 0;
-+
-+ /* Remove the padding from the end if the input data */
-+ if (data->len == 0 || data->len % blockSize != 0) { rv = SECFailure; goto loser; }
-+
-+ padLength = data->data[data->len-1];
-+ if (padLength > blockSize) { rv = SECFailure; goto loser; }
-+
-+ result->len = data->len - padLength;
-+ result->data = (unsigned char *)PORT_Alloc(result->len);
-+ if (!result->data) { rv = SECFailure; goto loser; }
-+
-+ PORT_Memcpy(result->data, data->data, result->len);
-+
-+loser:
-+ return rv;
-+}
-+
-+static PRLock *pk11sdrLock = NULL;
-+
-+void
-+pk11sdr_Init (void)
-+{
-+ pk11sdrLock = PR_NewLock();
-+}
-+
-+void
-+pk11sdr_Shutdown(void)
-+{
-+ if (pk11sdrLock) {
-+ PR_DestroyLock(pk11sdrLock);
-+ pk11sdrLock = NULL;
-+ }
-+}
-+
-+/*
-+ * PK11SDR_Encrypt
-+ * Encrypt a block of data using the symmetric key identified. The result
-+ * is an ASN.1 (DER) encoded block of keyid, params and data.
-+ */
-+SECStatus
-+PK11SDR_Encrypt(SECItem *keyid, SECItem *data, SECItem *result, void *cx)
-+{
-+ SECStatus rv = SECSuccess;
-+ PK11SlotInfo *slot = 0;
-+ PK11SymKey *key = 0;
-+ SECItem *params = 0;
-+ PK11Context *ctx = 0;
-+ CK_MECHANISM_TYPE type;
-+ SDRResult sdrResult;
-+ SECItem paddedData;
-+ SECItem *pKeyID;
-+ PLArenaPool *arena = 0;
-+
-+ /* Initialize */
-+ paddedData.len = 0;
-+ paddedData.data = 0;
-+
-+ arena = PORT_NewArena(SEC_ASN1_DEFAULT_ARENA_SIZE);
-+ if (!arena) { rv = SECFailure; goto loser; }
-+
-+ /* 1. Locate the requested keyid, or the default key (which has a keyid)
-+ * 2. Create an encryption context
-+ * 3. Encrypt
-+ * 4. Encode the results (using ASN.1)
-+ */
-+
-+ slot = PK11_GetInternalKeySlot();
-+ if (!slot) { rv = SECFailure; goto loser; }
-+
-+ /* Use triple-DES */
-+ type = CKM_DES3_CBC;
-+
-+ /*
-+ * Login to the internal token before we look for the key, otherwise we
-+ * won't find it.
-+ */
-+ rv = PK11_Authenticate(slot, PR_TRUE, cx);
-+ if (rv != SECSuccess) goto loser;
-+
-+ /* Find the key to use */
-+ pKeyID = keyid;
-+ if (pKeyID->len == 0) {
-+ pKeyID = &keyIDItem; /* Use default value */
-+
-+ /* put in a course lock to prevent a race between not finding the
-+ * key and creating one.
-+ */
-+
-+ if (pk11sdrLock) PR_Lock(pk11sdrLock);
-+
-+ /* Try to find the key */
-+ key = PK11_FindFixedKey(slot, type, pKeyID, cx);
-+
-+ /* If the default key doesn't exist yet, try to create it */
-+ if (!key) key = PK11_GenDES3TokenKey(slot, pKeyID, cx);
-+ if (pk11sdrLock) PR_Unlock(pk11sdrLock);
-+ } else {
-+ key = PK11_FindFixedKey(slot, type, pKeyID, cx);
-+ }
-+
-+ if (!key) { rv = SECFailure; goto loser; }
-+
-+ params = PK11_GenerateNewParam(type, key);
-+ if (!params) { rv = SECFailure; goto loser; }
-+
-+ ctx = PK11_CreateContextBySymKey(type, CKA_ENCRYPT, key, params);
-+ if (!ctx) { rv = SECFailure; goto loser; }
-+
-+ rv = padBlock(data, PK11_GetBlockSize(type, 0), &paddedData);
-+ if (rv != SECSuccess) goto loser;
-+
-+ sdrResult.data.len = paddedData.len;
-+ sdrResult.data.data = (unsigned char *)PORT_ArenaAlloc(arena, sdrResult.data.len);
-+
-+ rv = PK11_CipherOp(ctx, sdrResult.data.data, (int*)&sdrResult.data.len, sdrResult.data.len,
-+ paddedData.data, paddedData.len);
-+ if (rv != SECSuccess) goto loser;
-+
-+ PK11_Finalize(ctx);
-+
-+ sdrResult.keyid = *pKeyID;
-+
-+ rv = PK11_ParamToAlgid(SEC_OID_DES_EDE3_CBC, params, arena, &sdrResult.alg);
-+ if (rv != SECSuccess) goto loser;
-+
-+ if (!SEC_ASN1EncodeItem(0, result, &sdrResult, template)) { rv = SECFailure; goto loser; }
-+
-+loser:
-+ SECITEM_ZfreeItem(&paddedData, PR_FALSE);
-+ if (arena) PORT_FreeArena(arena, PR_TRUE);
-+ if (ctx) PK11_DestroyContext(ctx, PR_TRUE);
-+ if (params) SECITEM_ZfreeItem(params, PR_TRUE);
-+ if (key) PK11_FreeSymKey(key);
-+ if (slot) PK11_FreeSlot(slot);
-+
-+ return rv;
-+}
-+
-+/*
-+ * PK11SDR_Decrypt
-+ * Decrypt a block of data produced by PK11SDR_Encrypt. The key used is identified
-+ * by the keyid field within the input.
-+ */
-+SECStatus
-+PK11SDR_Decrypt(SECItem *data, SECItem *result, void *cx)
-+{
-+ SECStatus rv = SECSuccess;
-+ PK11SlotInfo *slot = 0;
-+ PK11SymKey *key = 0;
-+ PK11Context *ctx = 0;
-+ CK_MECHANISM_TYPE type;
-+ SDRResult sdrResult;
-+ SECItem *params = 0;
-+ SECItem paddedResult;
-+ PLArenaPool *arena = 0;
-+
-+ paddedResult.len = 0;
-+ paddedResult.data = 0;
-+
-+ arena = PORT_NewArena(SEC_ASN1_DEFAULT_ARENA_SIZE);
-+ if (!arena) { rv = SECFailure; goto loser; }
-+
-+ /* Decode the incoming data */
-+ memset(&sdrResult, 0, sizeof sdrResult);
-+ rv = SEC_ASN1DecodeItem(arena, &sdrResult, template, data);
-+ if (rv != SECSuccess) goto loser; /* Invalid format */
-+
-+ /* Find the slot and key for the given keyid */
-+ slot = PK11_GetInternalKeySlot();
-+ if (!slot) { rv = SECFailure; goto loser; }
-+
-+ rv = PK11_Authenticate(slot, PR_TRUE, cx);
-+ if (rv != SECSuccess) goto loser;
-+
-+ /* Use triple-DES (Should look up the algorithm) */
-+ type = CKM_DES3_CBC;
-+ key = PK11_FindFixedKey(slot, type, &sdrResult.keyid, cx);
-+ if (!key) { rv = SECFailure; goto loser; }
-+
-+ /* Get the parameter values from the data */
-+ params = PK11_ParamFromAlgid(&sdrResult.alg);
-+ if (!params) { rv = SECFailure; goto loser; }
-+
-+ ctx = PK11_CreateContextBySymKey(type, CKA_DECRYPT, key, params);
-+ if (!ctx) { rv = SECFailure; goto loser; }
-+
-+ paddedResult.len = sdrResult.data.len;
-+ paddedResult.data = PORT_ArenaAlloc(arena, paddedResult.len);
-+
-+ rv = PK11_CipherOp(ctx, paddedResult.data, (int*)&paddedResult.len, paddedResult.len,
-+ sdrResult.data.data, sdrResult.data.len);
-+ if (rv != SECSuccess) goto loser;
-+
-+ PK11_Finalize(ctx);
-+
-+ /* Remove the padding */
-+ rv = unpadBlock(&paddedResult, PK11_GetBlockSize(type, 0), result);
-+ if (rv) goto loser;
-+
-+loser:
-+ /* SECITEM_ZfreeItem(&paddedResult, PR_FALSE); */
-+ if (arena) PORT_FreeArena(arena, PR_TRUE);
-+ if (ctx) PK11_DestroyContext(ctx, PR_TRUE);
-+ if (key) PK11_FreeSymKey(key);
-+ if (params) SECITEM_ZfreeItem(params, PR_TRUE);
-+ if (slot) PK11_FreeSlot(slot);
-+
-+ return rv;
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pk11skey.c 2004-12-13 13:06:46.684399984 +0100
-@@ -0,0 +1,5716 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Portions created by Sun Microsystems, Inc. are Copyright (C) 2003
-+ * Sun Microsystems, Inc. All Rights Reserved.
-+ *
-+ * Contributor(s):
-+ * Dr Stephen Henson <stephen.henson@gemplus.com>
-+ * Dr Vipul Gupta <vipul.gupta@sun.com> and
-+ * Douglas Stebila <douglas@stebila.ca>, Sun Microsystems Laboratories
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+/*
-+ * This file implements the Symkey wrapper and the PKCS context
-+ * Interfaces.
-+ */
-+
-+#include "seccomon.h"
-+#include "secmod.h"
-+#include "nssilock.h"
-+#include "secmodi.h"
-+#include "pkcs11.h"
-+#include "pk11func.h"
-+#include "secitem.h"
-+#include "key.h"
-+#include "secoid.h"
-+#include "secasn1.h"
-+#include "sechash.h"
-+#include "cert.h"
-+#include "secerr.h"
-+#include "secpkcs5.h"
-+#include "ec.h"
-+
-+#define PAIRWISE_SECITEM_TYPE siBuffer
-+#define PAIRWISE_DIGEST_LENGTH SHA1_LENGTH /* 160-bits */
-+#define PAIRWISE_MESSAGE_LENGTH 20 /* 160-bits */
-+
-+static const SECItem pk11_null_params = { 0 };
-+
-+/* forward static declarations. */
-+static PK11SymKey *pk11_DeriveWithTemplate(PK11SymKey *baseKey,
-+ CK_MECHANISM_TYPE derive, SECItem *param, CK_MECHANISM_TYPE target,
-+ CK_ATTRIBUTE_TYPE operation, int keySize, CK_ATTRIBUTE *userAttr,
-+ unsigned int numAttrs, PRBool isPerm);
-+
-+static PRBool pk11_FindAttrInTemplate(CK_ATTRIBUTE *attr,
-+ unsigned int numAttrs, CK_ATTRIBUTE_TYPE target);
-+
-+/*
-+ * strip leading zero's from key material
-+ */
-+void
-+pk11_SignedToUnsigned(CK_ATTRIBUTE *attrib) {
-+ char *ptr = (char *)attrib->pValue;
-+ unsigned long len = attrib->ulValueLen;
-+
-+ while (len && (*ptr == 0)) {
-+ len--;
-+ ptr++;
-+ }
-+ attrib->pValue = ptr;
-+ attrib->ulValueLen = len;
-+}
-+
-+/*
-+ * get a new session on a slot. If we run out of session, use the slot's
-+ * 'exclusive' session. In this case owner becomes false.
-+ */
-+static CK_SESSION_HANDLE
-+pk11_GetNewSession(PK11SlotInfo *slot,PRBool *owner)
-+{
-+ CK_SESSION_HANDLE session;
-+ *owner = PR_TRUE;
-+ if (!slot->isThreadSafe) PK11_EnterSlotMonitor(slot);
-+ if ( PK11_GETTAB(slot)->C_OpenSession(slot->slotID,CKF_SERIAL_SESSION,
-+ slot,pk11_notify,&session) != CKR_OK) {
-+ *owner = PR_FALSE;
-+ session = slot->session;
-+ }
-+ if (!slot->isThreadSafe) PK11_ExitSlotMonitor(slot);
-+
-+ return session;
-+}
-+
-+static void
-+pk11_CloseSession(PK11SlotInfo *slot,CK_SESSION_HANDLE session,PRBool owner)
-+{
-+ if (!owner) return;
-+ if (!slot->isThreadSafe) PK11_EnterSlotMonitor(slot);
-+ (void) PK11_GETTAB(slot)->C_CloseSession(session);
-+ if (!slot->isThreadSafe) PK11_ExitSlotMonitor(slot);
-+}
-+
-+
-+SECStatus
-+PK11_CreateNewObject(PK11SlotInfo *slot, CK_SESSION_HANDLE session,
-+ CK_ATTRIBUTE *theTemplate, int count,
-+ PRBool token, CK_OBJECT_HANDLE *objectID)
-+{
-+ CK_SESSION_HANDLE rwsession;
-+ CK_RV crv;
-+ SECStatus rv = SECSuccess;
-+
-+ rwsession = session;
-+ if (token) {
-+ rwsession = PK11_GetRWSession(slot);
-+ } else if (rwsession == CK_INVALID_SESSION) {
-+ rwsession = slot->session;
-+ PK11_EnterSlotMonitor(slot);
-+ }
-+ crv = PK11_GETTAB(slot)->C_CreateObject(rwsession, theTemplate,
-+ count,objectID);
-+ if(crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ rv = SECFailure;
-+ }
-+ if (token) {
-+ PK11_RestoreROSession(slot, rwsession);
-+ } else if (session == CK_INVALID_SESSION) {
-+ PK11_ExitSlotMonitor(slot);
-+ }
-+
-+ return rv;
-+}
-+
-+static void
-+pk11_EnterKeyMonitor(PK11SymKey *symKey) {
-+ if (!symKey->sessionOwner || !(symKey->slot->isThreadSafe))
-+ PK11_EnterSlotMonitor(symKey->slot);
-+}
-+
-+static void
-+pk11_ExitKeyMonitor(PK11SymKey *symKey) {
-+ if (!symKey->sessionOwner || !(symKey->slot->isThreadSafe))
-+ PK11_ExitSlotMonitor(symKey->slot);
-+}
-+
-+
-+static PK11SymKey *
-+pk11_getKeyFromList(PK11SlotInfo *slot) {
-+ PK11SymKey *symKey = NULL;
-+
-+ PK11_USE_THREADS(PZ_Lock(slot->freeListLock);)
-+ if (slot->freeSymKeysHead) {
-+ symKey = slot->freeSymKeysHead;
-+ slot->freeSymKeysHead = symKey->next;
-+ slot->keyCount--;
-+ }
-+ PK11_USE_THREADS(PZ_Unlock(slot->freeListLock);)
-+ if (symKey) {
-+ symKey->next = NULL;
-+ if ((symKey->series != slot->series) || (!symKey->sessionOwner))
-+ symKey->session = pk11_GetNewSession(slot,&symKey->sessionOwner);
-+ return symKey;
-+ }
-+
-+ symKey = (PK11SymKey *)PORT_ZAlloc(sizeof(PK11SymKey));
-+ if (symKey == NULL) {
-+ return NULL;
-+ }
-+ symKey->session = pk11_GetNewSession(slot,&symKey->sessionOwner);
-+ symKey->next = NULL;
-+ return symKey;
-+}
-+
-+void
-+PK11_CleanKeyList(PK11SlotInfo *slot)
-+{
-+ PK11SymKey *symKey = NULL;
-+
-+ while (slot->freeSymKeysHead) {
-+ symKey = slot->freeSymKeysHead;
-+ slot->freeSymKeysHead = symKey->next;
-+ pk11_CloseSession(slot, symKey->session,symKey->sessionOwner);
-+ PORT_Free(symKey);
-+ };
-+ return;
-+}
-+
-+/*
-+ * create a symetric key:
-+ * Slot is the slot to create the key in.
-+ * type is the mechanism type
-+ */
-+PK11SymKey *
-+PK11_CreateSymKey(PK11SlotInfo *slot, CK_MECHANISM_TYPE type, PRBool owner,
-+ void *wincx)
-+{
-+
-+ PK11SymKey *symKey = pk11_getKeyFromList(slot);
-+
-+
-+ if (symKey == NULL) {
-+ return NULL;
-+ }
-+
-+ symKey->type = type;
-+ symKey->data.data = NULL;
-+ symKey->data.len = 0;
-+ symKey->owner = owner;
-+ symKey->objectID = CK_INVALID_HANDLE;
-+ symKey->slot = slot;
-+ symKey->series = slot->series;
-+ symKey->cx = wincx;
-+ symKey->size = 0;
-+ symKey->refCount = 1;
-+ symKey->origin = PK11_OriginNULL;
-+ symKey->origin = PK11_OriginNULL;
-+ PK11_ReferenceSlot(slot);
-+ return symKey;
-+}
-+
-+/*
-+ * destroy a symetric key
-+ */
-+void
-+PK11_FreeSymKey(PK11SymKey *symKey)
-+{
-+ PK11SlotInfo *slot;
-+ PRBool freeit = PR_TRUE;
-+
-+ if (PR_AtomicDecrement(&symKey->refCount) == 0) {
-+ if ((symKey->owner) && symKey->objectID != CK_INVALID_HANDLE) {
-+ pk11_EnterKeyMonitor(symKey);
-+ (void) PK11_GETTAB(symKey->slot)->
-+ C_DestroyObject(symKey->session, symKey->objectID);
-+ pk11_ExitKeyMonitor(symKey);
-+ }
-+ if (symKey->data.data) {
-+ PORT_Memset(symKey->data.data, 0, symKey->data.len);
-+ PORT_Free(symKey->data.data);
-+ }
-+ slot = symKey->slot;
-+ PK11_USE_THREADS(PZ_Lock(slot->freeListLock);)
-+ if (slot->keyCount < slot->maxKeyCount) {
-+ symKey->next = slot->freeSymKeysHead;
-+ slot->freeSymKeysHead = symKey;
-+ slot->keyCount++;
-+ symKey->slot = NULL;
-+ freeit = PR_FALSE;
-+ }
-+ PK11_USE_THREADS(PZ_Unlock(slot->freeListLock);)
-+ if (freeit) {
-+ pk11_CloseSession(symKey->slot, symKey->session,
-+ symKey->sessionOwner);
-+ PORT_Free(symKey);
-+ }
-+ PK11_FreeSlot(slot);
-+ }
-+}
-+
-+PK11SymKey *
-+PK11_ReferenceSymKey(PK11SymKey *symKey)
-+{
-+ PR_AtomicIncrement(&symKey->refCount);
-+ return symKey;
-+}
-+
-+/*
-+ * turn key handle into an appropriate key object
-+ */
-+PK11SymKey *
-+PK11_SymKeyFromHandle(PK11SlotInfo *slot, PK11SymKey *parent, PK11Origin origin,
-+ CK_MECHANISM_TYPE type, CK_OBJECT_HANDLE keyID, PRBool owner, void *wincx)
-+{
-+ PK11SymKey *symKey;
-+
-+ if (keyID == CK_INVALID_HANDLE) {
-+ return NULL;
-+ }
-+
-+ symKey = PK11_CreateSymKey(slot,type,owner,wincx);
-+ if (symKey == NULL) {
-+ return NULL;
-+ }
-+
-+ symKey->objectID = keyID;
-+ symKey->origin = origin;
-+
-+ /* adopt the parent's session */
-+ /* This is only used by SSL. What we really want here is a session
-+ * structure with a ref count so the session goes away only after all the
-+ * keys do. */
-+ if (owner && parent) {
-+ pk11_CloseSession(symKey->slot, symKey->session,symKey->sessionOwner);
-+ symKey->sessionOwner = parent->sessionOwner;
-+ symKey->session = parent->session;
-+ parent->sessionOwner = PR_FALSE;
-+ }
-+
-+ return symKey;
-+}
-+
-+/*
-+ * turn key handle into an appropriate key object
-+ */
-+PK11SymKey *
-+PK11_GetWrapKey(PK11SlotInfo *slot, int wrap, CK_MECHANISM_TYPE type,
-+ int series, void *wincx)
-+{
-+ PK11SymKey *symKey = NULL;
-+
-+ if (slot->series != series) return NULL;
-+ if (slot->refKeys[wrap] == CK_INVALID_HANDLE) return NULL;
-+ if (type == CKM_INVALID_MECHANISM) type = slot->wrapMechanism;
-+
-+ symKey = PK11_SymKeyFromHandle(slot, NULL, PK11_OriginDerive,
-+ slot->wrapMechanism, slot->refKeys[wrap], PR_FALSE, wincx);
-+ return symKey;
-+}
-+
-+/*
-+ * This function is not thread-safe because it sets wrapKey->sessionOwner
-+ * without using a lock or atomic routine. It can only be called when
-+ * only one thread has a reference to wrapKey.
-+ */
-+void
-+PK11_SetWrapKey(PK11SlotInfo *slot, int wrap, PK11SymKey *wrapKey)
-+{
-+ /* save the handle and mechanism for the wrapping key */
-+ /* mark the key and session as not owned by us to they don't get freed
-+ * when the key goes way... that lets us reuse the key later */
-+ slot->refKeys[wrap] = wrapKey->objectID;
-+ wrapKey->owner = PR_FALSE;
-+ wrapKey->sessionOwner = PR_FALSE;
-+ slot->wrapMechanism = wrapKey->type;
-+}
-+
-+CK_MECHANISM_TYPE
-+PK11_GetMechanism(PK11SymKey *symKey)
-+{
-+ return symKey->type;
-+}
-+
-+/*
-+ * figure out if a key is still valid or if it is stale.
-+ */
-+PRBool
-+PK11_VerifyKeyOK(PK11SymKey *key) {
-+ if (!PK11_IsPresent(key->slot)) {
-+ return PR_FALSE;
-+ }
-+ return (PRBool)(key->series == key->slot->series);
-+}
-+
-+#define MAX_TEMPL_ATTRS 16 /* maximum attributes in template */
-+
-+/* This mask includes all CK_FLAGs with an equivalent CKA_ attribute. */
-+#define CKF_KEY_OPERATION_FLAGS 0x000e7b00UL
-+
-+static unsigned int
-+pk11_FlagsToAttributes(CK_FLAGS flags, CK_ATTRIBUTE *attrs, CK_BBOOL *ckTrue)
-+{
-+
-+ const static CK_ATTRIBUTE_TYPE attrTypes[12] = {
-+ CKA_ENCRYPT, CKA_DECRYPT, 0 /* DIGEST */, CKA_SIGN,
-+ CKA_SIGN_RECOVER, CKA_VERIFY, CKA_VERIFY_RECOVER, 0 /* GEN */,
-+ 0 /* GEN PAIR */, CKA_WRAP, CKA_UNWRAP, CKA_DERIVE
-+ };
-+
-+ const CK_ATTRIBUTE_TYPE *pType = attrTypes;
-+ CK_ATTRIBUTE *attr = attrs;
-+ CK_FLAGS test = CKF_ENCRYPT;
-+
-+
-+ PR_ASSERT(!(flags & ~CKF_KEY_OPERATION_FLAGS));
-+ flags &= CKF_KEY_OPERATION_FLAGS;
-+
-+ for (; flags && test <= CKF_DERIVE; test <<= 1, ++pType) {
-+ if (test & flags) {
-+ flags ^= test;
-+ PK11_SETATTRS(attr, *pType, ckTrue, sizeof *ckTrue);
-+ ++attr;
-+ }
-+ }
-+ return (attr - attrs);
-+}
-+
-+static PK11SymKey *
-+pk11_ImportSymKeyWithTempl(PK11SlotInfo *slot, CK_MECHANISM_TYPE type,
-+ PK11Origin origin, PRBool isToken, CK_ATTRIBUTE *keyTemplate,
-+ unsigned int templateCount, SECItem *key, void *wincx)
-+{
-+ PK11SymKey * symKey;
-+ SECStatus rv;
-+
-+ symKey = PK11_CreateSymKey(slot,type,!isToken,wincx);
-+ if (symKey == NULL) {
-+ return NULL;
-+ }
-+
-+ symKey->size = key->len;
-+
-+ PK11_SETATTRS(&keyTemplate[templateCount], CKA_VALUE, key->data, key->len);
-+ templateCount++;
-+
-+ if (SECITEM_CopyItem(NULL,&symKey->data,key) != SECSuccess) {
-+ PK11_FreeSymKey(symKey);
-+ return NULL;
-+ }
-+
-+ symKey->origin = origin;
-+
-+ /* import the keys */
-+ rv = PK11_CreateNewObject(slot, symKey->session, keyTemplate,
-+ templateCount, isToken, &symKey->objectID);
-+ if ( rv != SECSuccess) {
-+ PK11_FreeSymKey(symKey);
-+ return NULL;
-+ }
-+
-+ return symKey;
-+}
-+
-+/*
-+ * turn key bits into an appropriate key object
-+ */
-+PK11SymKey *
-+PK11_ImportSymKey(PK11SlotInfo *slot, CK_MECHANISM_TYPE type,
-+ PK11Origin origin, CK_ATTRIBUTE_TYPE operation, SECItem *key,void *wincx)
-+{
-+ PK11SymKey * symKey;
-+ unsigned int templateCount = 0;
-+ CK_OBJECT_CLASS keyClass = CKO_SECRET_KEY;
-+ CK_KEY_TYPE keyType = CKK_GENERIC_SECRET;
-+ CK_BBOOL cktrue = CK_TRUE; /* sigh */
-+ CK_ATTRIBUTE keyTemplate[5];
-+ CK_ATTRIBUTE * attrs = keyTemplate;
-+
-+ PK11_SETATTRS(attrs, CKA_CLASS, &keyClass, sizeof(keyClass) ); attrs++;
-+ PK11_SETATTRS(attrs, CKA_KEY_TYPE, &keyType, sizeof(keyType) ); attrs++;
-+ PK11_SETATTRS(attrs, operation, &cktrue, 1); attrs++;
-+ templateCount = attrs - keyTemplate;
-+ PR_ASSERT(templateCount+1 <= sizeof(keyTemplate)/sizeof(CK_ATTRIBUTE));
-+
-+ keyType = PK11_GetKeyType(type,key->len);
-+ symKey = pk11_ImportSymKeyWithTempl(slot, type, origin, PR_FALSE,
-+ keyTemplate, templateCount, key, wincx);
-+ return symKey;
-+}
-+
-+
-+/*
-+ * turn key bits into an appropriate key object
-+ */
-+PK11SymKey *
-+PK11_ImportSymKeyWithFlags(PK11SlotInfo *slot, CK_MECHANISM_TYPE type,
-+ PK11Origin origin, CK_ATTRIBUTE_TYPE operation, SECItem *key,
-+ CK_FLAGS flags, PRBool isPerm, void *wincx)
-+{
-+ PK11SymKey * symKey;
-+ unsigned int templateCount = 0;
-+ CK_OBJECT_CLASS keyClass = CKO_SECRET_KEY;
-+ CK_KEY_TYPE keyType = CKK_GENERIC_SECRET;
-+ CK_BBOOL cktrue = CK_TRUE; /* sigh */
-+ CK_ATTRIBUTE keyTemplate[MAX_TEMPL_ATTRS];
-+ CK_ATTRIBUTE * attrs = keyTemplate;
-+
-+ PK11_SETATTRS(attrs, CKA_CLASS, &keyClass, sizeof(keyClass) ); attrs++;
-+ PK11_SETATTRS(attrs, CKA_KEY_TYPE, &keyType, sizeof(keyType) ); attrs++;
-+ if (isPerm) {
-+ PK11_SETATTRS(attrs, CKA_TOKEN, &cktrue, sizeof(cktrue) ); attrs++;
-+ /* sigh some tokens think CKA_PRIVATE = false is a reasonable
-+ * default for secret keys */
-+ PK11_SETATTRS(attrs, CKA_PRIVATE, &cktrue, sizeof(cktrue) ); attrs++;
-+ }
-+ attrs += pk11_FlagsToAttributes(flags, attrs, &cktrue);
-+ if ((operation != CKA_FLAGS_ONLY) &&
-+ !pk11_FindAttrInTemplate(keyTemplate, attrs-keyTemplate, operation)) {
-+ PK11_SETATTRS(attrs, operation, &cktrue, sizeof(cktrue)); attrs++;
-+ }
-+ templateCount = attrs - keyTemplate;
-+ PR_ASSERT(templateCount+1 <= sizeof(keyTemplate)/sizeof(CK_ATTRIBUTE));
-+
-+ keyType = PK11_GetKeyType(type,key->len);
-+ symKey = pk11_ImportSymKeyWithTempl(slot, type, origin, isPerm,
-+ keyTemplate, templateCount, key, wincx);
-+ if (symKey && isPerm) {
-+ symKey->owner = PR_FALSE;
-+ }
-+ return symKey;
-+}
-+
-+/*
-+ * import a public key into the desired slot
-+ */
-+CK_OBJECT_HANDLE
-+PK11_ImportPublicKey(PK11SlotInfo *slot, SECKEYPublicKey *pubKey,
-+ PRBool isToken)
-+{
-+ CK_BBOOL cktrue = CK_TRUE;
-+ CK_BBOOL ckfalse = CK_FALSE;
-+ CK_OBJECT_CLASS keyClass = CKO_PUBLIC_KEY;
-+ CK_KEY_TYPE keyType = CKK_GENERIC_SECRET;
-+ CK_OBJECT_HANDLE objectID;
-+ CK_ATTRIBUTE theTemplate[10];
-+ CK_ATTRIBUTE *signedattr = NULL;
-+ CK_ATTRIBUTE *attrs = theTemplate;
-+ int signedcount = 0;
-+ int templateCount = 0;
-+ SECStatus rv;
-+
-+ /* if we already have an object in the desired slot, use it */
-+ if (!isToken && pubKey->pkcs11Slot == slot) {
-+ return pubKey->pkcs11ID;
-+ }
-+
-+ /* free the existing key */
-+ if (pubKey->pkcs11Slot != NULL) {
-+ PK11SlotInfo *oSlot = pubKey->pkcs11Slot;
-+ PK11_EnterSlotMonitor(oSlot);
-+ (void) PK11_GETTAB(oSlot)->C_DestroyObject(oSlot->session,
-+ pubKey->pkcs11ID);
-+ PK11_ExitSlotMonitor(oSlot);
-+ PK11_FreeSlot(oSlot);
-+ pubKey->pkcs11Slot = NULL;
-+ }
-+ PK11_SETATTRS(attrs, CKA_CLASS, &keyClass, sizeof(keyClass) ); attrs++;
-+ PK11_SETATTRS(attrs, CKA_KEY_TYPE, &keyType, sizeof(keyType) ); attrs++;
-+ PK11_SETATTRS(attrs, CKA_TOKEN, isToken ? &cktrue : &ckfalse,
-+ sizeof(CK_BBOOL) ); attrs++;
-+
-+ /* now import the key */
-+ {
-+ switch (pubKey->keyType) {
-+ case rsaKey:
-+ keyType = CKK_RSA;
-+ PK11_SETATTRS(attrs, CKA_WRAP, &cktrue, sizeof(CK_BBOOL) ); attrs++;
-+ PK11_SETATTRS(attrs, CKA_ENCRYPT, &cktrue,
-+ sizeof(CK_BBOOL) ); attrs++;
-+ PK11_SETATTRS(attrs, CKA_VERIFY, &cktrue, sizeof(CK_BBOOL)); attrs++;
-+ signedattr = attrs;
-+ PK11_SETATTRS(attrs, CKA_MODULUS, pubKey->u.rsa.modulus.data,
-+ pubKey->u.rsa.modulus.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_PUBLIC_EXPONENT,
-+ pubKey->u.rsa.publicExponent.data,
-+ pubKey->u.rsa.publicExponent.len); attrs++;
-+ break;
-+ case dsaKey:
-+ keyType = CKK_DSA;
-+ PK11_SETATTRS(attrs, CKA_VERIFY, &cktrue, sizeof(CK_BBOOL));attrs++;
-+ signedattr = attrs;
-+ PK11_SETATTRS(attrs, CKA_PRIME, pubKey->u.dsa.params.prime.data,
-+ pubKey->u.dsa.params.prime.len); attrs++;
-+ PK11_SETATTRS(attrs,CKA_SUBPRIME,pubKey->u.dsa.params.subPrime.data,
-+ pubKey->u.dsa.params.subPrime.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_BASE, pubKey->u.dsa.params.base.data,
-+ pubKey->u.dsa.params.base.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_VALUE, pubKey->u.dsa.publicValue.data,
-+ pubKey->u.dsa.publicValue.len); attrs++;
-+ break;
-+ case fortezzaKey:
-+ keyType = CKK_DSA;
-+ PK11_SETATTRS(attrs, CKA_VERIFY, &cktrue, sizeof(CK_BBOOL));attrs++;
-+ signedattr = attrs;
-+ PK11_SETATTRS(attrs, CKA_PRIME,pubKey->u.fortezza.params.prime.data,
-+ pubKey->u.fortezza.params.prime.len); attrs++;
-+ PK11_SETATTRS(attrs,CKA_SUBPRIME,
-+ pubKey->u.fortezza.params.subPrime.data,
-+ pubKey->u.fortezza.params.subPrime.len);attrs++;
-+ PK11_SETATTRS(attrs, CKA_BASE, pubKey->u.fortezza.params.base.data,
-+ pubKey->u.fortezza.params.base.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_VALUE, pubKey->u.fortezza.DSSKey.data,
-+ pubKey->u.fortezza.DSSKey.len); attrs++;
-+ break;
-+ case dhKey:
-+ keyType = CKK_DH;
-+ PK11_SETATTRS(attrs, CKA_DERIVE, &cktrue, sizeof(CK_BBOOL));attrs++;
-+ signedattr = attrs;
-+ PK11_SETATTRS(attrs, CKA_PRIME, pubKey->u.dh.prime.data,
-+ pubKey->u.dh.prime.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_BASE, pubKey->u.dh.base.data,
-+ pubKey->u.dh.base.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_VALUE, pubKey->u.dh.publicValue.data,
-+ pubKey->u.dh.publicValue.len); attrs++;
-+ break;
-+#ifdef NSS_ENABLE_ECC
-+ case ecKey:
-+ keyType = CKK_EC;
-+ PK11_SETATTRS(attrs, CKA_VERIFY, &cktrue, sizeof(CK_BBOOL));attrs++;
-+ PK11_SETATTRS(attrs, CKA_DERIVE, &cktrue, sizeof(CK_BBOOL));attrs++;
-+ signedattr = attrs;
-+ PK11_SETATTRS(attrs, CKA_EC_PARAMS,
-+ pubKey->u.ec.DEREncodedParams.data,
-+ pubKey->u.ec.DEREncodedParams.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_EC_POINT, pubKey->u.ec.publicValue.data,
-+ pubKey->u.ec.publicValue.len); attrs++;
-+ break;
-+#endif /* NSS_ENABLE_ECC */
-+ default:
-+ PORT_SetError( SEC_ERROR_BAD_KEY );
-+ return CK_INVALID_HANDLE;
-+ }
-+
-+ templateCount = attrs - theTemplate;
-+ signedcount = attrs - signedattr;
-+ PORT_Assert(templateCount <= (sizeof(theTemplate)/sizeof(CK_ATTRIBUTE)));
-+ for (attrs=signedattr; signedcount; attrs++, signedcount--) {
-+ pk11_SignedToUnsigned(attrs);
-+ }
-+ rv = PK11_CreateNewObject(slot, CK_INVALID_SESSION, theTemplate,
-+ templateCount, isToken, &objectID);
-+ if ( rv != SECSuccess) {
-+ return CK_INVALID_HANDLE;
-+ }
-+ }
-+
-+ pubKey->pkcs11ID = objectID;
-+ pubKey->pkcs11Slot = PK11_ReferenceSlot(slot);
-+
-+ return objectID;
-+}
-+
-+
-+/*
-+ * return the slot associated with a symetric key
-+ */
-+PK11SlotInfo *
-+PK11_GetSlotFromKey(PK11SymKey *symKey)
-+{
-+ return PK11_ReferenceSlot(symKey->slot);
-+}
-+
-+CK_KEY_TYPE PK11_GetSymKeyType(PK11SymKey *symKey)
-+{
-+ return PK11_GetKeyType(symKey->type,symKey->size);
-+}
-+
-+PK11SymKey *
-+PK11_FindFixedKey(PK11SlotInfo *slot, CK_MECHANISM_TYPE type, SECItem *keyID,
-+ void *wincx)
-+{
-+ CK_ATTRIBUTE findTemp[4];
-+ CK_ATTRIBUTE *attrs;
-+ CK_BBOOL ckTrue = CK_TRUE;
-+ CK_OBJECT_CLASS keyclass = CKO_SECRET_KEY;
-+ int tsize = 0;
-+ CK_OBJECT_HANDLE key_id;
-+
-+ attrs = findTemp;
-+ PK11_SETATTRS(attrs, CKA_CLASS, &keyclass, sizeof(keyclass)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_TOKEN, &ckTrue, sizeof(ckTrue)); attrs++;
-+ if (keyID) {
-+ PK11_SETATTRS(attrs, CKA_ID, keyID->data, keyID->len); attrs++;
-+ }
-+ tsize = attrs - findTemp;
-+ PORT_Assert(tsize <= sizeof(findTemp)/sizeof(CK_ATTRIBUTE));
-+
-+ key_id = pk11_FindObjectByTemplate(slot,findTemp,tsize);
-+ if (key_id == CK_INVALID_HANDLE) {
-+ return NULL;
-+ }
-+ return PK11_SymKeyFromHandle(slot, NULL, PK11_OriginDerive, type, key_id,
-+ PR_FALSE, wincx);
-+}
-+
-+PK11SymKey *
-+PK11_ListFixedKeysInSlot(PK11SlotInfo *slot, char *nickname, void *wincx)
-+{
-+ CK_ATTRIBUTE findTemp[4];
-+ CK_ATTRIBUTE *attrs;
-+ CK_BBOOL ckTrue = CK_TRUE;
-+ CK_OBJECT_CLASS keyclass = CKO_SECRET_KEY;
-+ int tsize = 0;
-+ int objCount = 0;
-+ CK_OBJECT_HANDLE *key_ids;
-+ PK11SymKey *nextKey = NULL;
-+ PK11SymKey *topKey = NULL;
-+ int i,len;
-+
-+ attrs = findTemp;
-+ PK11_SETATTRS(attrs, CKA_CLASS, &keyclass, sizeof(keyclass)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_TOKEN, &ckTrue, sizeof(ckTrue)); attrs++;
-+ if (nickname) {
-+ len = PORT_Strlen(nickname);
-+ PK11_SETATTRS(attrs, CKA_LABEL, nickname, len); attrs++;
-+ }
-+ tsize = attrs - findTemp;
-+ PORT_Assert(tsize <= sizeof(findTemp)/sizeof(CK_ATTRIBUTE));
-+
-+ key_ids = pk11_FindObjectsByTemplate(slot,findTemp,tsize,&objCount);
-+ if (key_ids == NULL) {
-+ return NULL;
-+ }
-+
-+ for (i=0; i < objCount ; i++) {
-+ SECItem typeData;
-+ CK_KEY_TYPE type = CKK_GENERIC_SECRET;
-+ SECStatus rv = PK11_ReadAttribute(slot, key_ids[i],
-+ CKA_KEY_TYPE, NULL, &typeData);
-+ if (rv == SECSuccess) {
-+ if (typeData.len == sizeof(CK_KEY_TYPE)) {
-+ type = *(CK_KEY_TYPE *)typeData.data;
-+ }
-+ PORT_Free(typeData.data);
-+ }
-+ nextKey = PK11_SymKeyFromHandle(slot, NULL, PK11_OriginDerive,
-+ PK11_GetKeyMechanism(type), key_ids[i], PR_FALSE, wincx);
-+ if (nextKey) {
-+ nextKey->next = topKey;
-+ topKey = nextKey;
-+ }
-+ }
-+ PORT_Free(key_ids);
-+ return topKey;
-+}
-+
-+void *
-+PK11_GetWindow(PK11SymKey *key)
-+{
-+ return key->cx;
-+}
-+
-+
-+/*
-+ * extract a symetric key value. NOTE: if the key is sensitive, we will
-+ * not be able to do this operation. This function is used to move
-+ * keys from one token to another */
-+SECStatus
-+PK11_ExtractKeyValue(PK11SymKey *symKey)
-+{
-+ SECStatus rv;
-+
-+ if (symKey->data.data != NULL) {
-+ if (symKey->size == 0) {
-+ symKey->size = symKey->data.len;
-+ }
-+ return SECSuccess;
-+ }
-+
-+ if (symKey->slot == NULL) {
-+ PORT_SetError( SEC_ERROR_INVALID_KEY );
-+ return SECFailure;
-+ }
-+
-+ rv = PK11_ReadAttribute(symKey->slot,symKey->objectID,CKA_VALUE,NULL,
-+ &symKey->data);
-+ if (rv == SECSuccess) {
-+ symKey->size = symKey->data.len;
-+ }
-+ return rv;
-+}
-+
-+SECStatus
-+PK11_DeleteTokenSymKey(PK11SymKey *symKey)
-+{
-+ if (!PK11_IsPermObject(symKey->slot, symKey->objectID)) {
-+ return SECFailure;
-+ }
-+ PK11_DestroyTokenObject(symKey->slot,symKey->objectID);
-+ symKey->objectID = CK_INVALID_HANDLE;
-+ return SECSuccess;
-+}
-+
-+SECItem *
-+__PK11_GetKeyData(PK11SymKey *symKey)
-+{
-+ return &symKey->data;
-+}
-+
-+SECItem *
-+PK11_GetKeyData(PK11SymKey *symKey)
-+{
-+ return __PK11_GetKeyData(symKey);
-+}
-+
-+/*
-+ * take an attribute and copy it into a secitem
-+ */
-+static CK_RV
-+pk11_Attr2SecItem(PRArenaPool *arena, CK_ATTRIBUTE *attr, SECItem *item)
-+{
-+ item->data = NULL;
-+
-+ (void)SECITEM_AllocItem(arena, item, attr->ulValueLen);
-+ if (item->data == NULL) {
-+ return CKR_HOST_MEMORY;
-+ }
-+ PORT_Memcpy(item->data, attr->pValue, item->len);
-+ return CKR_OK;
-+}
-+
-+/*
-+ * extract a public key from a slot and id
-+ */
-+SECKEYPublicKey *
-+PK11_ExtractPublicKey(PK11SlotInfo *slot,KeyType keyType,CK_OBJECT_HANDLE id)
-+{
-+ CK_OBJECT_CLASS keyClass = CKO_PUBLIC_KEY;
-+ PRArenaPool *arena;
-+ PRArenaPool *tmp_arena;
-+ SECKEYPublicKey *pubKey;
-+ int templateCount = 0;
-+ CK_KEY_TYPE pk11KeyType;
-+ CK_RV crv;
-+ CK_ATTRIBUTE template[8];
-+ CK_ATTRIBUTE *attrs= template;
-+ CK_ATTRIBUTE *modulus,*exponent,*base,*prime,*subprime,*value;
-+#ifdef NSS_ENABLE_ECC
-+ CK_ATTRIBUTE *ecparams;
-+#endif /* NSS_ENABLE_ECC */
-+
-+ /* if we didn't know the key type, get it */
-+ if (keyType== nullKey) {
-+
-+ pk11KeyType = PK11_ReadULongAttribute(slot,id,CKA_KEY_TYPE);
-+ if (pk11KeyType == CK_UNAVAILABLE_INFORMATION) {
-+ return NULL;
-+ }
-+ switch (pk11KeyType) {
-+ case CKK_RSA:
-+ keyType = rsaKey;
-+ break;
-+ case CKK_DSA:
-+ keyType = dsaKey;
-+ break;
-+ case CKK_DH:
-+ keyType = dhKey;
-+ break;
-+#ifdef NSS_ENABLE_ECC
-+ case CKK_EC:
-+ keyType = ecKey;
-+ break;
-+#endif /* NSS_ENABLE_ECC */
-+ default:
-+ PORT_SetError( SEC_ERROR_BAD_KEY );
-+ return NULL;
-+ }
-+ }
-+
-+
-+ /* now we need to create space for the public key */
-+ arena = PORT_NewArena( DER_DEFAULT_CHUNKSIZE);
-+ if (arena == NULL) return NULL;
-+ tmp_arena = PORT_NewArena( DER_DEFAULT_CHUNKSIZE);
-+ if (tmp_arena == NULL) {
-+ PORT_FreeArena (arena, PR_FALSE);
-+ return NULL;
-+ }
-+
-+
-+ pubKey = (SECKEYPublicKey *)
-+ PORT_ArenaZAlloc(arena, sizeof(SECKEYPublicKey));
-+ if (pubKey == NULL) {
-+ PORT_FreeArena (arena, PR_FALSE);
-+ PORT_FreeArena (tmp_arena, PR_FALSE);
-+ return NULL;
-+ }
-+
-+ pubKey->arena = arena;
-+ pubKey->keyType = keyType;
-+ pubKey->pkcs11Slot = PK11_ReferenceSlot(slot);
-+ pubKey->pkcs11ID = id;
-+ PK11_SETATTRS(attrs, CKA_CLASS, &keyClass,
-+ sizeof(keyClass)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_KEY_TYPE, &pk11KeyType,
-+ sizeof(pk11KeyType) ); attrs++;
-+ switch (pubKey->keyType) {
-+ case rsaKey:
-+ modulus = attrs;
-+ PK11_SETATTRS(attrs, CKA_MODULUS, NULL, 0); attrs++;
-+ exponent = attrs;
-+ PK11_SETATTRS(attrs, CKA_PUBLIC_EXPONENT, NULL, 0); attrs++;
-+
-+ templateCount = attrs - template;
-+ PR_ASSERT(templateCount <= sizeof(template)/sizeof(CK_ATTRIBUTE));
-+ crv = PK11_GetAttributes(tmp_arena,slot,id,template,templateCount);
-+ if (crv != CKR_OK) break;
-+
-+ if ((keyClass != CKO_PUBLIC_KEY) || (pk11KeyType != CKK_RSA)) {
-+ crv = CKR_OBJECT_HANDLE_INVALID;
-+ break;
-+ }
-+ crv = pk11_Attr2SecItem(arena,modulus,&pubKey->u.rsa.modulus);
-+ if (crv != CKR_OK) break;
-+ crv = pk11_Attr2SecItem(arena,exponent,&pubKey->u.rsa.publicExponent);
-+ if (crv != CKR_OK) break;
-+ break;
-+ case dsaKey:
-+ prime = attrs;
-+ PK11_SETATTRS(attrs, CKA_PRIME, NULL, 0); attrs++;
-+ subprime = attrs;
-+ PK11_SETATTRS(attrs, CKA_SUBPRIME, NULL, 0); attrs++;
-+ base = attrs;
-+ PK11_SETATTRS(attrs, CKA_BASE, NULL, 0); attrs++;
-+ value = attrs;
-+ PK11_SETATTRS(attrs, CKA_VALUE, NULL, 0); attrs++;
-+ templateCount = attrs - template;
-+ PR_ASSERT(templateCount <= sizeof(template)/sizeof(CK_ATTRIBUTE));
-+ crv = PK11_GetAttributes(tmp_arena,slot,id,template,templateCount);
-+ if (crv != CKR_OK) break;
-+
-+ if ((keyClass != CKO_PUBLIC_KEY) || (pk11KeyType != CKK_DSA)) {
-+ crv = CKR_OBJECT_HANDLE_INVALID;
-+ break;
-+ }
-+ crv = pk11_Attr2SecItem(arena,prime,&pubKey->u.dsa.params.prime);
-+ if (crv != CKR_OK) break;
-+ crv = pk11_Attr2SecItem(arena,subprime,&pubKey->u.dsa.params.subPrime);
-+ if (crv != CKR_OK) break;
-+ crv = pk11_Attr2SecItem(arena,base,&pubKey->u.dsa.params.base);
-+ if (crv != CKR_OK) break;
-+ crv = pk11_Attr2SecItem(arena,value,&pubKey->u.dsa.publicValue);
-+ if (crv != CKR_OK) break;
-+ break;
-+ case dhKey:
-+ prime = attrs;
-+ PK11_SETATTRS(attrs, CKA_PRIME, NULL, 0); attrs++;
-+ base = attrs;
-+ PK11_SETATTRS(attrs, CKA_BASE, NULL, 0); attrs++;
-+ value =attrs;
-+ PK11_SETATTRS(attrs, CKA_VALUE, NULL, 0); attrs++;
-+ templateCount = attrs - template;
-+ PR_ASSERT(templateCount <= sizeof(template)/sizeof(CK_ATTRIBUTE));
-+ crv = PK11_GetAttributes(tmp_arena,slot,id,template,templateCount);
-+ if (crv != CKR_OK) break;
-+
-+ if ((keyClass != CKO_PUBLIC_KEY) || (pk11KeyType != CKK_DH)) {
-+ crv = CKR_OBJECT_HANDLE_INVALID;
-+ break;
-+ }
-+ crv = pk11_Attr2SecItem(arena,prime,&pubKey->u.dh.prime);
-+ if (crv != CKR_OK) break;
-+ crv = pk11_Attr2SecItem(arena,base,&pubKey->u.dh.base);
-+ if (crv != CKR_OK) break;
-+ crv = pk11_Attr2SecItem(arena,value,&pubKey->u.dh.publicValue);
-+ if (crv != CKR_OK) break;
-+ break;
-+#ifdef NSS_ENABLE_ECC
-+ case ecKey:
-+ pubKey->u.ec.size = 0;
-+ ecparams = attrs;
-+ PK11_SETATTRS(attrs, CKA_EC_PARAMS, NULL, 0); attrs++;
-+ value =attrs;
-+ PK11_SETATTRS(attrs, CKA_EC_POINT, NULL, 0); attrs++;
-+ templateCount = attrs - template;
-+ PR_ASSERT(templateCount <= sizeof(template)/sizeof(CK_ATTRIBUTE));
-+ crv = PK11_GetAttributes(tmp_arena,slot,id,template,templateCount);
-+ if (crv != CKR_OK) break;
-+
-+ if ((keyClass != CKO_PUBLIC_KEY) || (pk11KeyType != CKK_EC)) {
-+ crv = CKR_OBJECT_HANDLE_INVALID;
-+ break;
-+ }
-+
-+ crv = pk11_Attr2SecItem(arena,ecparams,
-+ &pubKey->u.ec.DEREncodedParams);
-+ if (crv != CKR_OK) break;
-+ crv = pk11_Attr2SecItem(arena,value,&pubKey->u.ec.publicValue);
-+ if (crv != CKR_OK) break;
-+ break;
-+#endif /* NSS_ENABLE_ECC */
-+ case fortezzaKey:
-+ case nullKey:
-+ default:
-+ crv = CKR_OBJECT_HANDLE_INVALID;
-+ break;
-+ }
-+
-+ PORT_FreeArena(tmp_arena,PR_FALSE);
-+
-+ if (crv != CKR_OK) {
-+ PORT_FreeArena(arena,PR_FALSE);
-+ PK11_FreeSlot(slot);
-+ PORT_SetError( PK11_MapError(crv) );
-+ return NULL;
-+ }
-+
-+ return pubKey;
-+}
-+
-+/*
-+ * Build a Private Key structure from raw PKCS #11 information.
-+ */
-+SECKEYPrivateKey *
-+PK11_MakePrivKey(PK11SlotInfo *slot, KeyType keyType,
-+ PRBool isTemp, CK_OBJECT_HANDLE privID, void *wincx)
-+{
-+ PRArenaPool *arena;
-+ SECKEYPrivateKey *privKey;
-+
-+ /* don't know? look it up */
-+ if (keyType == nullKey) {
-+ CK_KEY_TYPE pk11Type = CKK_RSA;
-+
-+ pk11Type = PK11_ReadULongAttribute(slot,privID,CKA_KEY_TYPE);
-+ isTemp = (PRBool)!PK11_HasAttributeSet(slot,privID,CKA_TOKEN);
-+ switch (pk11Type) {
-+ case CKK_RSA: keyType = rsaKey; break;
-+ case CKK_DSA: keyType = dsaKey; break;
-+ case CKK_DH: keyType = dhKey; break;
-+ case CKK_KEA: keyType = fortezzaKey; break;
-+#ifdef NSS_ENABLE_ECC
-+ case CKK_EC: keyType = ecKey; break;
-+#endif /* NSS_ENABLE_ECC */
-+ default:
-+ break;
-+ }
-+ }
-+
-+ /* now we need to create space for the private key */
-+ arena = PORT_NewArena( DER_DEFAULT_CHUNKSIZE);
-+ if (arena == NULL) return NULL;
-+
-+ privKey = (SECKEYPrivateKey *)
-+ PORT_ArenaZAlloc(arena, sizeof(SECKEYPrivateKey));
-+ if (privKey == NULL) {
-+ PORT_FreeArena(arena, PR_FALSE);
-+ return NULL;
-+ }
-+
-+ privKey->arena = arena;
-+ privKey->keyType = keyType;
-+ privKey->pkcs11Slot = PK11_ReferenceSlot(slot);
-+ privKey->pkcs11ID = privID;
-+ privKey->pkcs11IsTemp = isTemp;
-+ privKey->wincx = wincx;
-+
-+ return privKey;
-+}
-+
-+/* return the keylength if possible. '0' if not */
-+unsigned int
-+PK11_GetKeyLength(PK11SymKey *key)
-+{
-+ CK_KEY_TYPE keyType;
-+
-+ if (key->size != 0) return key->size;
-+
-+ /* First try to figure out the key length from its type */
-+ keyType = PK11_ReadULongAttribute(key->slot,key->objectID,CKA_KEY_TYPE);
-+ switch (keyType) {
-+ case CKK_DES: key->size = 8; break;
-+ case CKK_DES2: key->size = 16; break;
-+ case CKK_DES3: key->size = 24; break;
-+ case CKK_SKIPJACK: key->size = 10; break;
-+ case CKK_BATON: key->size = 20; break;
-+ case CKK_JUNIPER: key->size = 20; break;
-+ case CKK_GENERIC_SECRET:
-+ if (key->type == CKM_SSL3_PRE_MASTER_KEY_GEN) {
-+ key->size=48;
-+ }
-+ break;
-+ default: break;
-+ }
-+ if( key->size != 0 ) return key->size;
-+
-+ if (key->data.data == NULL) {
-+ PK11_ExtractKeyValue(key);
-+ }
-+ /* key is probably secret. Look up its length */
-+ /* this is new PKCS #11 version 2.0 functionality. */
-+ if (key->size == 0) {
-+ CK_ULONG keyLength;
-+
-+ keyLength = PK11_ReadULongAttribute(key->slot,key->objectID,CKA_VALUE_LEN);
-+ if (keyLength != CK_UNAVAILABLE_INFORMATION) {
-+ key->size = (unsigned int)keyLength;
-+ }
-+ }
-+
-+ return key->size;
-+}
-+
-+/* return the strength of a key. This is different from length in that
-+ * 1) it returns the size in bits, and 2) it returns only the secret portions
-+ * of the key minus any checksums or parity.
-+ */
-+unsigned int
-+PK11_GetKeyStrength(PK11SymKey *key, SECAlgorithmID *algid)
-+{
-+ int size=0;
-+ CK_MECHANISM_TYPE mechanism= CKM_INVALID_MECHANISM; /* RC2 only */
-+ SECItem *param = NULL; /* RC2 only */
-+ CK_RC2_CBC_PARAMS *rc2_params = NULL; /* RC2 ONLY */
-+ unsigned int effectiveBits = 0; /* RC2 ONLY */
-+
-+ switch (PK11_GetKeyType(key->type,0)) {
-+ case CKK_CDMF:
-+ return 40;
-+ case CKK_DES:
-+ return 56;
-+ case CKK_DES3:
-+ case CKK_DES2:
-+ size = PK11_GetKeyLength(key);
-+ if (size == 16) {
-+ /* double des */
-+ return 112; /* 16*7 */
-+ }
-+ return 168;
-+ /*
-+ * RC2 has is different than other ciphers in that it allows the user
-+ * to deprecating keysize while still requiring all the bits for the
-+ * original key. The info
-+ * on what the effective key strength is in the parameter for the key.
-+ * In S/MIME this parameter is stored in the DER encoded algid. In Our
-+ * other uses of RC2, effectiveBits == keyBits, so this code functions
-+ * correctly without an algid.
-+ */
-+ case CKK_RC2:
-+ /* if no algid was provided, fall through to default */
-+ if (!algid) {
-+ break;
-+ }
-+ /* verify that the algid is for RC2 */
-+ mechanism = PK11_AlgtagToMechanism(SECOID_GetAlgorithmTag(algid));
-+ if ((mechanism != CKM_RC2_CBC) && (mechanism != CKM_RC2_ECB)) {
-+ break;
-+ }
-+
-+ /* now get effective bits from the algorithm ID. */
-+ param = PK11_ParamFromAlgid(algid);
-+ /* if we couldn't get memory just use key length */
-+ if (param == NULL) {
-+ break;
-+ }
-+
-+ rc2_params = (CK_RC2_CBC_PARAMS *) param->data;
-+ /* paranoia... shouldn't happen */
-+ PORT_Assert(param->data != NULL);
-+ if (param->data == NULL) {
-+ SECITEM_FreeItem(param,PR_TRUE);
-+ break;
-+ }
-+ effectiveBits = (unsigned int)rc2_params->ulEffectiveBits;
-+ SECITEM_FreeItem(param,PR_TRUE);
-+ param = NULL; rc2_params=NULL; /* paranoia */
-+
-+ /* we have effective bits, is and allocated memory is free, now
-+ * we need to return the smaller of effective bits and keysize */
-+ size = PK11_GetKeyLength(key);
-+ if ((unsigned int)size*8 > effectiveBits) {
-+ return effectiveBits;
-+ }
-+
-+ return size*8; /* the actual key is smaller, the strength can't be
-+ * greater than the actual key size */
-+
-+ default:
-+ break;
-+ }
-+ return PK11_GetKeyLength(key) * 8;
-+}
-+
-+/* Make a Key type to an appropriate signing/verification mechanism */
-+static CK_MECHANISM_TYPE
-+pk11_mapSignKeyType(KeyType keyType)
-+{
-+ switch (keyType) {
-+ case rsaKey:
-+ return CKM_RSA_PKCS;
-+ case fortezzaKey:
-+ case dsaKey:
-+ return CKM_DSA;
-+#ifdef NSS_ENABLE_ECC
-+ case ecKey:
-+ return CKM_ECDSA;
-+#endif /* NSS_ENABLE_ECC */
-+ case dhKey:
-+ default:
-+ break;
-+ }
-+ return CKM_INVALID_MECHANISM;
-+}
-+
-+static CK_MECHANISM_TYPE
-+pk11_mapWrapKeyType(KeyType keyType)
-+{
-+ switch (keyType) {
-+ case rsaKey:
-+ return CKM_RSA_PKCS;
-+ /* Add fortezza?? */
-+ default:
-+ break;
-+ }
-+ return CKM_INVALID_MECHANISM;
-+}
-+
-+/*
-+ * Some non-compliant PKCS #11 vendors do not give us the modulus, so actually
-+ * set up a signature to get the signaure length.
-+ */
-+static int
-+pk11_backupGetSignLength(SECKEYPrivateKey *key)
-+{
-+ PK11SlotInfo *slot = key->pkcs11Slot;
-+ CK_MECHANISM mech = {0, NULL, 0 };
-+ PRBool owner = PR_TRUE;
-+ CK_SESSION_HANDLE session;
-+ CK_ULONG len;
-+ CK_RV crv;
-+ unsigned char h_data[20] = { 0 };
-+ unsigned char buf[20]; /* obviously to small */
-+ CK_ULONG smallLen = sizeof(buf);
-+
-+ mech.mechanism = pk11_mapSignKeyType(key->keyType);
-+
-+ session = pk11_GetNewSession(slot,&owner);
-+ if (!owner || !(slot->isThreadSafe)) PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_SignInit(session,&mech,key->pkcs11ID);
-+ if (crv != CKR_OK) {
-+ if (!owner || !(slot->isThreadSafe)) PK11_ExitSlotMonitor(slot);
-+ pk11_CloseSession(slot,session,owner);
-+ PORT_SetError( PK11_MapError(crv) );
-+ return -1;
-+ }
-+ len = 0;
-+ crv = PK11_GETTAB(slot)->C_Sign(session,h_data,sizeof(h_data),
-+ NULL, &len);
-+ /* now call C_Sign with too small a buffer to clear the session state */
-+ (void) PK11_GETTAB(slot)->
-+ C_Sign(session,h_data,sizeof(h_data),buf,&smallLen);
-+
-+ if (!owner || !(slot->isThreadSafe)) PK11_ExitSlotMonitor(slot);
-+ pk11_CloseSession(slot,session,owner);
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ return -1;
-+ }
-+ return len;
-+}
-+
-+/*
-+ * get the length of a signature object based on the key
-+ */
-+int
-+PK11_SignatureLen(SECKEYPrivateKey *key)
-+{
-+ int val;
-+#ifdef NSS_ENABLE_ECC
-+ CK_ATTRIBUTE theTemplate = { CKA_EC_PARAMS, NULL, 0 };
-+ SECItem params = {siBuffer, NULL, 0};
-+ int length;
-+#endif /* NSS_ENABLE_ECC */
-+
-+ switch (key->keyType) {
-+ case rsaKey:
-+ val = PK11_GetPrivateModulusLen(key);
-+ if (val == -1) {
-+ return pk11_backupGetSignLength(key);
-+ }
-+ return (unsigned long) val;
-+
-+ case fortezzaKey:
-+ case dsaKey:
-+ return 40;
-+#ifdef NSS_ENABLE_ECC
-+ case ecKey:
-+ if (PK11_GetAttributes(NULL, key->pkcs11Slot, key->pkcs11ID,
-+ &theTemplate, 1) == CKR_OK) {
-+ if (theTemplate.pValue != NULL) {
-+ params.len = theTemplate.ulValueLen;
-+ params.data = (unsigned char *) theTemplate.pValue;
-+ length = SECKEY_ECParamsToKeySize(&params);
-+ PORT_Free(theTemplate.pValue);
-+ }
-+ length = ((length + 7)/8) * 2;
-+ return length;
-+ }
-+ break;
-+#endif /* NSS_ENABLE_ECC */
-+ default:
-+ break;
-+ }
-+ PORT_SetError( SEC_ERROR_INVALID_KEY );
-+ return 0;
-+}
-+
-+PK11SlotInfo *
-+PK11_GetSlotFromPrivateKey(SECKEYPrivateKey *key)
-+{
-+ PK11SlotInfo *slot = key->pkcs11Slot;
-+ slot = PK11_ReferenceSlot(slot);
-+ return slot;
-+}
-+
-+/*
-+ * Get the modulus length for raw parsing
-+ */
-+int
-+PK11_GetPrivateModulusLen(SECKEYPrivateKey *key)
-+{
-+ CK_ATTRIBUTE theTemplate = { CKA_MODULUS, NULL, 0 };
-+ PK11SlotInfo *slot = key->pkcs11Slot;
-+ CK_RV crv;
-+ int length;
-+
-+ switch (key->keyType) {
-+ case rsaKey:
-+ crv = PK11_GetAttributes(NULL, slot, key->pkcs11ID, &theTemplate, 1);
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ return -1;
-+ }
-+ length = theTemplate.ulValueLen;
-+ if ( *(unsigned char *)theTemplate.pValue == 0) {
-+ length--;
-+ }
-+ if (theTemplate.pValue != NULL)
-+ PORT_Free(theTemplate.pValue);
-+ return (int) length;
-+
-+ case fortezzaKey:
-+ case dsaKey:
-+ case dhKey:
-+ default:
-+ break;
-+ }
-+ if (theTemplate.pValue != NULL)
-+ PORT_Free(theTemplate.pValue);
-+ PORT_SetError( SEC_ERROR_INVALID_KEY );
-+ return -1;
-+}
-+
-+/*
-+ * copy a key (or any other object) on a token
-+ */
-+CK_OBJECT_HANDLE
-+PK11_CopyKey(PK11SlotInfo *slot, CK_OBJECT_HANDLE srcObject)
-+{
-+ CK_OBJECT_HANDLE destObject;
-+ CK_RV crv;
-+
-+ PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_CopyObject(slot->session,srcObject,NULL,0,
-+ &destObject);
-+ PK11_ExitSlotMonitor(slot);
-+ if (crv == CKR_OK) return destObject;
-+ PORT_SetError( PK11_MapError(crv) );
-+ return CK_INVALID_HANDLE;
-+}
-+
-+
-+PK11SymKey *
-+pk11_KeyExchange(PK11SlotInfo *slot,CK_MECHANISM_TYPE type,
-+ CK_ATTRIBUTE_TYPE operation, CK_FLAGS flags,
-+ PRBool perm, PK11SymKey *symKey);
-+
-+
-+/*
-+ * The next three utilities are to deal with the fact that a given operation
-+ * may be a multi-slot affair. This creates a new key object that is copied
-+ * into the new slot.
-+ */
-+PK11SymKey *
-+pk11_CopyToSlotPerm(PK11SlotInfo *slot,CK_MECHANISM_TYPE type,
-+ CK_ATTRIBUTE_TYPE operation, CK_FLAGS flags,
-+ PRBool isPerm, PK11SymKey *symKey)
-+{
-+ SECStatus rv;
-+ PK11SymKey *newKey = NULL;
-+
-+ /* Extract the raw key data if possible */
-+ if (symKey->data.data == NULL) {
-+ rv = PK11_ExtractKeyValue(symKey);
-+ /* KEY is sensitive, we're try key exchanging it. */
-+ if (rv != SECSuccess) {
-+ return pk11_KeyExchange(slot, type, operation,
-+ flags, isPerm, symKey);
-+ }
-+ }
-+
-+ newKey = PK11_ImportSymKeyWithFlags(slot, type, symKey->origin,
-+ operation, &symKey->data, flags, isPerm, symKey->cx);
-+ if (newKey == NULL) {
-+ newKey = pk11_KeyExchange(slot, type, operation, flags, isPerm, symKey);
-+ }
-+ return newKey;
-+}
-+
-+PK11SymKey *
-+pk11_CopyToSlot(PK11SlotInfo *slot,CK_MECHANISM_TYPE type,
-+ CK_ATTRIBUTE_TYPE operation, PK11SymKey *symKey)
-+{
-+ return pk11_CopyToSlotPerm(slot, type, operation, 0, PR_FALSE, symKey);
-+}
-+
-+/*
-+ * Make sure the slot we are in the correct slot for the operation
-+ */
-+static PK11SymKey *
-+pk11_ForceSlot(PK11SymKey *symKey,CK_MECHANISM_TYPE type,
-+ CK_ATTRIBUTE_TYPE operation)
-+{
-+ PK11SlotInfo *slot = symKey->slot;
-+ PK11SymKey *newKey = NULL;
-+
-+ if ((slot== NULL) || !PK11_DoesMechanism(slot,type)) {
-+ slot = PK11_GetBestSlot(type,symKey->cx);
-+ if (slot == NULL) {
-+ PORT_SetError( SEC_ERROR_NO_MODULE );
-+ return NULL;
-+ }
-+ newKey = pk11_CopyToSlot(slot, type, operation, symKey);
-+ PK11_FreeSlot(slot);
-+ }
-+ return newKey;
-+}
-+
-+PK11SymKey *
-+PK11_MoveSymKey(PK11SlotInfo *slot, CK_ATTRIBUTE_TYPE operation,
-+ CK_FLAGS flags, PRBool perm, PK11SymKey *symKey)
-+{
-+ if (symKey->slot == slot) {
-+ if (perm) {
-+ return PK11_ConvertSessionSymKeyToTokenSymKey(symKey,symKey->cx);
-+ } else {
-+ return PK11_ReferenceSymKey(symKey);
-+ }
-+ }
-+
-+ return pk11_CopyToSlotPerm(slot, symKey->type,
-+ operation, flags, perm, symKey);
-+}
-+
-+
-+/*
-+ * Use the token to Generate a key. keySize must be 'zero' for fixed key
-+ * length algorithms. NOTE: this means we can never generate a DES2 key
-+ * from this interface!
-+ */
-+PK11SymKey *
-+PK11_TokenKeyGen(PK11SlotInfo *slot, CK_MECHANISM_TYPE type, SECItem *param,
-+ int keySize, SECItem *keyid, PRBool isToken, void *wincx)
-+{
-+ PK11SymKey *symKey;
-+ CK_ATTRIBUTE genTemplate[6];
-+ CK_ATTRIBUTE *attrs = genTemplate;
-+ int count = sizeof(genTemplate)/sizeof(genTemplate[0]);
-+ CK_SESSION_HANDLE session;
-+ CK_MECHANISM mechanism;
-+ CK_RV crv;
-+ PRBool weird = PR_FALSE; /* hack for fortezza */
-+ CK_BBOOL cktrue = CK_TRUE;
-+ CK_ULONG ck_key_size; /* only used for variable-length keys */
-+
-+ if ((keySize == -1) && (type == CKM_SKIPJACK_CBC64)) {
-+ weird = PR_TRUE;
-+ keySize = 0;
-+ }
-+
-+ /* TNH: Isn't this redundant, since "handleKey" will set defaults? */
-+ PK11_SETATTRS(attrs, (!weird)
-+ ? CKA_ENCRYPT : CKA_DECRYPT, &cktrue, sizeof(CK_BBOOL)); attrs++;
-+
-+ if (keySize != 0) {
-+ ck_key_size = keySize; /* Convert to PK11 type */
-+
-+ PK11_SETATTRS(attrs, CKA_VALUE_LEN, &ck_key_size, sizeof(ck_key_size));
-+ attrs++;
-+ }
-+
-+ /* Include key id value if provided */
-+ if (keyid) {
-+ PK11_SETATTRS(attrs, CKA_ID, keyid->data, keyid->len); attrs++;
-+ }
-+
-+ if (isToken) {
-+ PK11_SETATTRS(attrs, CKA_TOKEN, &cktrue, sizeof(cktrue)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_PRIVATE, &cktrue, sizeof(cktrue)); attrs++;
-+ }
-+
-+ PK11_SETATTRS(attrs, CKA_SIGN, &cktrue, sizeof(cktrue)); attrs++;
-+
-+ count = attrs - genTemplate;
-+ PR_ASSERT(count <= sizeof(genTemplate)/sizeof(CK_ATTRIBUTE));
-+
-+ /* find a slot to generate the key into */
-+ /* Only do slot management if this is not a token key */
-+ if (!isToken && (slot == NULL || !PK11_DoesMechanism(slot,type))) {
-+ PK11SlotInfo *bestSlot;
-+
-+ bestSlot = PK11_GetBestSlot(type,wincx); /* TNH: references the slot? */
-+ if (bestSlot == NULL) {
-+ PORT_SetError( SEC_ERROR_NO_MODULE );
-+ return NULL;
-+ }
-+
-+ symKey = PK11_CreateSymKey(bestSlot, type, !isToken, wincx);
-+
-+ PK11_FreeSlot(bestSlot);
-+ } else {
-+ symKey = PK11_CreateSymKey(slot, type, !isToken, wincx);
-+ }
-+ if (symKey == NULL) return NULL;
-+
-+ symKey->size = keySize;
-+ symKey->origin = (!weird) ? PK11_OriginGenerated : PK11_OriginFortezzaHack;
-+
-+ /* Initialize the Key Gen Mechanism */
-+ mechanism.mechanism = PK11_GetKeyGenWithSize(type, keySize);
-+ if (mechanism.mechanism == CKM_FAKE_RANDOM) {
-+ PORT_SetError( SEC_ERROR_NO_MODULE );
-+ return NULL;
-+ }
-+
-+ /* Set the parameters for the key gen if provided */
-+ mechanism.pParameter = NULL;
-+ mechanism.ulParameterLen = 0;
-+ if (param) {
-+ mechanism.pParameter = param->data;
-+ mechanism.ulParameterLen = param->len;
-+ }
-+
-+ /* Get session and perform locking */
-+ if (isToken) {
-+ PK11_Authenticate(symKey->slot,PR_TRUE,wincx);
-+ session = PK11_GetRWSession(symKey->slot); /* Should always be original slot */
-+ symKey->owner = PR_FALSE;
-+ } else {
-+ session = symKey->session;
-+ pk11_EnterKeyMonitor(symKey);
-+ }
-+
-+ crv = PK11_GETTAB(symKey->slot)->C_GenerateKey(session,
-+ &mechanism, genTemplate, count, &symKey->objectID);
-+
-+ /* Release lock and session */
-+ if (isToken) {
-+ PK11_RestoreROSession(symKey->slot, session);
-+ } else {
-+ pk11_ExitKeyMonitor(symKey);
-+ }
-+
-+ if (crv != CKR_OK) {
-+ PK11_FreeSymKey(symKey);
-+ PORT_SetError( PK11_MapError(crv) );
-+ return NULL;
-+ }
-+
-+ return symKey;
-+}
-+
-+PK11SymKey *
-+PK11_KeyGen(PK11SlotInfo *slot, CK_MECHANISM_TYPE type, SECItem *param,
-+ int keySize, void *wincx)
-+{
-+ return PK11_TokenKeyGen(slot, type, param, keySize, 0, PR_FALSE, wincx);
-+}
-+
-+/* --- */
-+PK11SymKey *
-+PK11_GenDES3TokenKey(PK11SlotInfo *slot, SECItem *keyid, void *cx)
-+{
-+ return PK11_TokenKeyGen(slot, CKM_DES3_CBC, 0, 0, keyid, PR_TRUE, cx);
-+}
-+
-+/*
-+ * PKCS #11 pairwise consistency check utilized to validate key pair.
-+ */
-+static SECStatus
-+pk11_PairwiseConsistencyCheck(SECKEYPublicKey *pubKey,
-+ SECKEYPrivateKey *privKey, CK_MECHANISM *mech, void* wincx )
-+{
-+ /* Variables used for Encrypt/Decrypt functions. */
-+ unsigned char *known_message = (unsigned char *)"Known Crypto Message";
-+ CK_BBOOL isEncryptable = CK_FALSE;
-+ CK_BBOOL canSignVerify = CK_FALSE;
-+ CK_BBOOL isDerivable = CK_FALSE;
-+ unsigned char plaintext[PAIRWISE_MESSAGE_LENGTH];
-+ CK_ULONG bytes_decrypted;
-+ PK11SlotInfo *slot;
-+ CK_OBJECT_HANDLE id;
-+ unsigned char *ciphertext;
-+ unsigned char *text_compared;
-+ CK_ULONG max_bytes_encrypted;
-+ CK_ULONG bytes_encrypted;
-+ CK_ULONG bytes_compared;
-+ CK_RV crv;
-+
-+ /* Variables used for Signature/Verification functions. */
-+ unsigned char *known_digest = (unsigned char *)"Mozilla Rules World!";
-+ SECItem signature;
-+ SECItem digest; /* always uses SHA-1 digest */
-+ int signature_length;
-+ SECStatus rv;
-+
-+ /**************************************************/
-+ /* Pairwise Consistency Check of Encrypt/Decrypt. */
-+ /**************************************************/
-+
-+ isEncryptable = PK11_HasAttributeSet( privKey->pkcs11Slot,
-+ privKey->pkcs11ID, CKA_DECRYPT );
-+
-+ /* If the encryption attribute is set; attempt to encrypt */
-+ /* with the public key and decrypt with the private key. */
-+ if( isEncryptable ) {
-+ /* Find a module to encrypt against */
-+ slot = PK11_GetBestSlot(pk11_mapWrapKeyType(privKey->keyType),wincx);
-+ if (slot == NULL) {
-+ PORT_SetError( SEC_ERROR_NO_MODULE );
-+ return SECFailure;
-+ }
-+
-+ id = PK11_ImportPublicKey(slot,pubKey,PR_FALSE);
-+ if (id == CK_INVALID_HANDLE) {
-+ PK11_FreeSlot(slot);
-+ return SECFailure;
-+ }
-+
-+ /* Compute max bytes encrypted from modulus length of private key. */
-+ max_bytes_encrypted = PK11_GetPrivateModulusLen( privKey );
-+
-+
-+ /* Prepare for encryption using the public key. */
-+ PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB( slot )->C_EncryptInit( slot->session,
-+ mech, id );
-+ if( crv != CKR_OK ) {
-+ PK11_ExitSlotMonitor(slot);
-+ PORT_SetError( PK11_MapError( crv ) );
-+ PK11_FreeSlot(slot);
-+ return SECFailure;
-+ }
-+
-+ /* Allocate space for ciphertext. */
-+ ciphertext = (unsigned char *) PORT_Alloc( max_bytes_encrypted );
-+ if( ciphertext == NULL ) {
-+ PK11_ExitSlotMonitor(slot);
-+ PORT_SetError( SEC_ERROR_NO_MEMORY );
-+ PK11_FreeSlot(slot);
-+ return SECFailure;
-+ }
-+
-+ /* Initialize bytes encrypted to max bytes encrypted. */
-+ bytes_encrypted = max_bytes_encrypted;
-+
-+ /* Encrypt using the public key. */
-+ crv = PK11_GETTAB( slot )->C_Encrypt( slot->session,
-+ known_message,
-+ PAIRWISE_MESSAGE_LENGTH,
-+ ciphertext,
-+ &bytes_encrypted );
-+ PK11_ExitSlotMonitor(slot);
-+ PK11_FreeSlot(slot);
-+ if( crv != CKR_OK ) {
-+ PORT_SetError( PK11_MapError( crv ) );
-+ PORT_Free( ciphertext );
-+ return SECFailure;
-+ }
-+
-+ /* Always use the smaller of these two values . . . */
-+ bytes_compared = ( bytes_encrypted > PAIRWISE_MESSAGE_LENGTH )
-+ ? PAIRWISE_MESSAGE_LENGTH
-+ : bytes_encrypted;
-+
-+ /* If there was a failure, the plaintext */
-+ /* goes at the end, therefore . . . */
-+ text_compared = ( bytes_encrypted > PAIRWISE_MESSAGE_LENGTH )
-+ ? (ciphertext + bytes_encrypted -
-+ PAIRWISE_MESSAGE_LENGTH )
-+ : ciphertext;
-+
-+ /* Check to ensure that ciphertext does */
-+ /* NOT EQUAL known input message text */
-+ /* per FIPS PUB 140-1 directive. */
-+ if( ( bytes_encrypted != max_bytes_encrypted ) ||
-+ ( PORT_Memcmp( text_compared, known_message,
-+ bytes_compared ) == 0 ) ) {
-+ /* Set error to Invalid PRIVATE Key. */
-+ PORT_SetError( SEC_ERROR_INVALID_KEY );
-+ PORT_Free( ciphertext );
-+ return SECFailure;
-+ }
-+
-+ slot = privKey->pkcs11Slot;
-+ /* Prepare for decryption using the private key. */
-+ PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB( slot )->C_DecryptInit( slot->session,
-+ mech,
-+ privKey->pkcs11ID );
-+ if( crv != CKR_OK ) {
-+ PK11_ExitSlotMonitor(slot);
-+ PORT_SetError( PK11_MapError(crv) );
-+ PORT_Free( ciphertext );
-+ return SECFailure;
-+ }
-+
-+ /* Initialize bytes decrypted to be the */
-+ /* expected PAIRWISE_MESSAGE_LENGTH. */
-+ bytes_decrypted = PAIRWISE_MESSAGE_LENGTH;
-+
-+ /* Decrypt using the private key. */
-+ /* NOTE: No need to reset the */
-+ /* value of bytes_encrypted. */
-+ crv = PK11_GETTAB( slot )->C_Decrypt( slot->session,
-+ ciphertext,
-+ bytes_encrypted,
-+ plaintext,
-+ &bytes_decrypted );
-+ PK11_ExitSlotMonitor(slot);
-+
-+ /* Finished with ciphertext; free it. */
-+ PORT_Free( ciphertext );
-+
-+ if( crv != CKR_OK ) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ return SECFailure;
-+ }
-+
-+ /* Check to ensure that the output plaintext */
-+ /* does EQUAL known input message text. */
-+ if( ( bytes_decrypted != PAIRWISE_MESSAGE_LENGTH ) ||
-+ ( PORT_Memcmp( plaintext, known_message,
-+ PAIRWISE_MESSAGE_LENGTH ) != 0 ) ) {
-+ /* Set error to Bad PUBLIC Key. */
-+ PORT_SetError( SEC_ERROR_BAD_KEY );
-+ return SECFailure;
-+ }
-+ }
-+
-+ /**********************************************/
-+ /* Pairwise Consistency Check of Sign/Verify. */
-+ /**********************************************/
-+
-+ canSignVerify = PK11_HasAttributeSet ( privKey->pkcs11Slot,
-+ privKey->pkcs11ID, CKA_SIGN);
-+
-+ if (canSignVerify)
-+ {
-+ /* Initialize signature and digest data. */
-+ signature.data = NULL;
-+ digest.data = NULL;
-+
-+ /* Determine length of signature. */
-+ signature_length = PK11_SignatureLen( privKey );
-+ if( signature_length == 0 )
-+ goto failure;
-+
-+ /* Allocate space for signature data. */
-+ signature.data = (unsigned char *) PORT_Alloc( signature_length );
-+ if( signature.data == NULL ) {
-+ PORT_SetError( SEC_ERROR_NO_MEMORY );
-+ goto failure;
-+ }
-+
-+ /* Allocate space for known digest data. */
-+ digest.data = (unsigned char *) PORT_Alloc( PAIRWISE_DIGEST_LENGTH );
-+ if( digest.data == NULL ) {
-+ PORT_SetError( SEC_ERROR_NO_MEMORY );
-+ goto failure;
-+ }
-+
-+ /* "Fill" signature type and length. */
-+ signature.type = PAIRWISE_SECITEM_TYPE;
-+ signature.len = signature_length;
-+
-+ /* "Fill" digest with known SHA-1 digest parameters. */
-+ digest.type = PAIRWISE_SECITEM_TYPE;
-+ PORT_Memcpy( digest.data, known_digest, PAIRWISE_DIGEST_LENGTH );
-+ digest.len = PAIRWISE_DIGEST_LENGTH;
-+
-+ /* Sign the known hash using the private key. */
-+ rv = PK11_Sign( privKey, &signature, &digest );
-+ if( rv != SECSuccess )
-+ goto failure;
-+
-+ /* Verify the known hash using the public key. */
-+ rv = PK11_Verify( pubKey, &signature, &digest, wincx );
-+ if( rv != SECSuccess )
-+ goto failure;
-+
-+ /* Free signature and digest data. */
-+ PORT_Free( signature.data );
-+ PORT_Free( digest.data );
-+ }
-+
-+
-+
-+ /**********************************************/
-+ /* Pairwise Consistency Check for Derivation */
-+ /**********************************************/
-+
-+ isDerivable = PK11_HasAttributeSet ( privKey->pkcs11Slot,
-+ privKey->pkcs11ID, CKA_DERIVE);
-+
-+ if (isDerivable)
-+ {
-+ /*
-+ * We are not doing consistency check for Diffie-Hellman Key -
-+ * otherwise it would be here
-+ * This is also true for Elliptic Curve Diffie-Hellman keys
-+ * NOTE: EC keys are currently subjected to pairwise
-+ * consistency check for signing/verification.
-+ */
-+
-+ }
-+
-+ return SECSuccess;
-+
-+failure:
-+ if( signature.data != NULL )
-+ PORT_Free( signature.data );
-+ if( digest.data != NULL )
-+ PORT_Free( digest.data );
-+
-+ return SECFailure;
-+}
-+
-+
-+
-+/*
-+ * take a private key in one pkcs11 module and load it into another:
-+ * NOTE: the source private key is a rare animal... it can't be sensitive.
-+ * This is used to do a key gen using one pkcs11 module and storing the
-+ * result into another.
-+ */
-+SECKEYPrivateKey *
-+pk11_loadPrivKey(PK11SlotInfo *slot,SECKEYPrivateKey *privKey,
-+ SECKEYPublicKey *pubKey, PRBool token, PRBool sensitive)
-+{
-+ CK_ATTRIBUTE privTemplate[] = {
-+ /* class must be first */
-+ { CKA_CLASS, NULL, 0 },
-+ { CKA_KEY_TYPE, NULL, 0 },
-+ /* these three must be next */
-+ { CKA_TOKEN, NULL, 0 },
-+ { CKA_PRIVATE, NULL, 0 },
-+ { CKA_SENSITIVE, NULL, 0 },
-+ { CKA_ID, NULL, 0 },
-+#ifdef notdef
-+ { CKA_LABEL, NULL, 0 },
-+ { CKA_SUBJECT, NULL, 0 },
-+#endif
-+ /* RSA */
-+ { CKA_MODULUS, NULL, 0 },
-+ { CKA_PRIVATE_EXPONENT, NULL, 0 },
-+ { CKA_PUBLIC_EXPONENT, NULL, 0 },
-+ { CKA_PRIME_1, NULL, 0 },
-+ { CKA_PRIME_2, NULL, 0 },
-+ { CKA_EXPONENT_1, NULL, 0 },
-+ { CKA_EXPONENT_2, NULL, 0 },
-+ { CKA_COEFFICIENT, NULL, 0 },
-+ };
-+ CK_ATTRIBUTE *attrs = NULL, *ap;
-+ int templateSize = sizeof(privTemplate)/sizeof(privTemplate[0]);
-+ PRArenaPool *arena;
-+ CK_OBJECT_HANDLE objectID;
-+ int i, count = 0;
-+ int extra_count = 0;
-+ CK_RV crv;
-+ SECStatus rv;
-+
-+ for (i=0; i < templateSize; i++) {
-+ if (privTemplate[i].type == CKA_MODULUS) {
-+ attrs= &privTemplate[i];
-+ count = i;
-+ break;
-+ }
-+ }
-+ PORT_Assert(attrs != NULL);
-+ if (attrs == NULL) {
-+ PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
-+ return NULL;
-+ }
-+
-+ ap = attrs;
-+
-+ switch (privKey->keyType) {
-+ case rsaKey:
-+ count = templateSize;
-+ extra_count = templateSize - (attrs - privTemplate);
-+ break;
-+ case dsaKey:
-+ ap->type = CKA_PRIME; ap++; count++; extra_count++;
-+ ap->type = CKA_SUBPRIME; ap++; count++; extra_count++;
-+ ap->type = CKA_BASE; ap++; count++; extra_count++;
-+ ap->type = CKA_VALUE; ap++; count++; extra_count++;
-+ break;
-+ case dhKey:
-+ ap->type = CKA_PRIME; ap++; count++; extra_count++;
-+ ap->type = CKA_BASE; ap++; count++; extra_count++;
-+ ap->type = CKA_VALUE; ap++; count++; extra_count++;
-+ break;
-+#ifdef NSS_ENABLE_ECC
-+ case ecKey:
-+ ap->type = CKA_EC_PARAMS; ap++; count++; extra_count++;
-+ ap->type = CKA_VALUE; ap++; count++; extra_count++;
-+ break;
-+#endif /* NSS_ENABLE_ECC */
-+ default:
-+ count = 0;
-+ extra_count = 0;
-+ break;
-+ }
-+
-+ if (count == 0) {
-+ PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
-+ return NULL;
-+ }
-+
-+ arena = PORT_NewArena( DER_DEFAULT_CHUNKSIZE);
-+ if (arena == NULL) return NULL;
-+ /*
-+ * read out the old attributes.
-+ */
-+ crv = PK11_GetAttributes(arena, privKey->pkcs11Slot, privKey->pkcs11ID,
-+ privTemplate,count);
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ PORT_FreeArena(arena, PR_TRUE);
-+ return NULL;
-+ }
-+
-+ /* Reset sensitive, token, and private */
-+ *(CK_BBOOL *)(privTemplate[2].pValue) = token ? CK_TRUE : CK_FALSE;
-+ *(CK_BBOOL *)(privTemplate[3].pValue) = token ? CK_TRUE : CK_FALSE;
-+ *(CK_BBOOL *)(privTemplate[4].pValue) = sensitive ? CK_TRUE : CK_FALSE;
-+
-+ /* Not everyone can handle zero padded key values, give
-+ * them the raw data as unsigned */
-+ for (ap=attrs; extra_count; ap++, extra_count--) {
-+ pk11_SignedToUnsigned(ap);
-+ }
-+
-+ /* now Store the puppies */
-+ rv = PK11_CreateNewObject(slot, CK_INVALID_SESSION, privTemplate,
-+ count, token, &objectID);
-+ PORT_FreeArena(arena, PR_TRUE);
-+ if (rv != SECSuccess) {
-+ return NULL;
-+ }
-+
-+ /* try loading the public key as a token object */
-+ if (pubKey) {
-+ PK11_ImportPublicKey(slot, pubKey, PR_TRUE);
-+ if (pubKey->pkcs11Slot) {
-+ PK11_FreeSlot(pubKey->pkcs11Slot);
-+ pubKey->pkcs11Slot = NULL;
-+ pubKey->pkcs11ID = CK_INVALID_HANDLE;
-+ }
-+ }
-+
-+ /* build new key structure */
-+ return PK11_MakePrivKey(slot, privKey->keyType, (PRBool)!token,
-+ objectID, privKey->wincx);
-+}
-+
-+/*
-+ * export this for PSM
-+ */
-+SECKEYPrivateKey *
-+PK11_LoadPrivKey(PK11SlotInfo *slot,SECKEYPrivateKey *privKey,
-+ SECKEYPublicKey *pubKey, PRBool token, PRBool sensitive)
-+{
-+ return pk11_loadPrivKey(slot,privKey,pubKey,token,sensitive);
-+}
-+
-+
-+/*
-+ * Use the token to Generate a key. keySize must be 'zero' for fixed key
-+ * length algorithms. NOTE: this means we can never generate a DES2 key
-+ * from this interface!
-+ */
-+SECKEYPrivateKey *
-+PK11_GenerateKeyPair(PK11SlotInfo *slot,CK_MECHANISM_TYPE type,
-+ void *param, SECKEYPublicKey **pubKey, PRBool token,
-+ PRBool sensitive, void *wincx)
-+{
-+ /* we have to use these native types because when we call PKCS 11 modules
-+ * we have to make sure that we are using the correct sizes for all the
-+ * parameters. */
-+ CK_BBOOL ckfalse = CK_FALSE;
-+ CK_BBOOL cktrue = CK_TRUE;
-+ CK_ULONG modulusBits;
-+ CK_BYTE publicExponent[4];
-+ CK_ATTRIBUTE privTemplate[] = {
-+ { CKA_SENSITIVE, NULL, 0},
-+ { CKA_TOKEN, NULL, 0},
-+ { CKA_PRIVATE, NULL, 0},
-+ { CKA_DERIVE, NULL, 0},
-+ { CKA_UNWRAP, NULL, 0},
-+ { CKA_SIGN, NULL, 0},
-+ { CKA_DECRYPT, NULL, 0},
-+ };
-+ CK_ATTRIBUTE rsaPubTemplate[] = {
-+ { CKA_MODULUS_BITS, NULL, 0},
-+ { CKA_PUBLIC_EXPONENT, NULL, 0},
-+ { CKA_TOKEN, NULL, 0},
-+ { CKA_DERIVE, NULL, 0},
-+ { CKA_WRAP, NULL, 0},
-+ { CKA_VERIFY, NULL, 0},
-+ { CKA_VERIFY_RECOVER, NULL, 0},
-+ { CKA_ENCRYPT, NULL, 0},
-+ };
-+ CK_ATTRIBUTE dsaPubTemplate[] = {
-+ { CKA_PRIME, NULL, 0 },
-+ { CKA_SUBPRIME, NULL, 0 },
-+ { CKA_BASE, NULL, 0 },
-+ { CKA_TOKEN, NULL, 0},
-+ { CKA_DERIVE, NULL, 0},
-+ { CKA_WRAP, NULL, 0},
-+ { CKA_VERIFY, NULL, 0},
-+ { CKA_VERIFY_RECOVER, NULL, 0},
-+ { CKA_ENCRYPT, NULL, 0},
-+ };
-+ CK_ATTRIBUTE dhPubTemplate[] = {
-+ { CKA_PRIME, NULL, 0 },
-+ { CKA_BASE, NULL, 0 },
-+ { CKA_TOKEN, NULL, 0},
-+ { CKA_DERIVE, NULL, 0},
-+ { CKA_WRAP, NULL, 0},
-+ { CKA_VERIFY, NULL, 0},
-+ { CKA_VERIFY_RECOVER, NULL, 0},
-+ { CKA_ENCRYPT, NULL, 0},
-+ };
-+#ifdef NSS_ENABLE_ECC
-+ CK_ATTRIBUTE ecPubTemplate[] = {
-+ { CKA_EC_PARAMS, NULL, 0 },
-+ { CKA_TOKEN, NULL, 0},
-+ { CKA_DERIVE, NULL, 0},
-+ { CKA_WRAP, NULL, 0},
-+ { CKA_VERIFY, NULL, 0},
-+ { CKA_VERIFY_RECOVER, NULL, 0},
-+ { CKA_ENCRYPT, NULL, 0},
-+ };
-+ int ecPubCount = sizeof(ecPubTemplate)/sizeof(ecPubTemplate[0]);
-+ SECKEYECParams * ecParams;
-+#endif /* NSS_ENABLE_ECC */
-+
-+ int dsaPubCount = sizeof(dsaPubTemplate)/sizeof(dsaPubTemplate[0]);
-+ /*CK_ULONG key_size = 0;*/
-+ CK_ATTRIBUTE *pubTemplate;
-+ int privCount = sizeof(privTemplate)/sizeof(privTemplate[0]);
-+ int rsaPubCount = sizeof(rsaPubTemplate)/sizeof(rsaPubTemplate[0]);
-+ int dhPubCount = sizeof(dhPubTemplate)/sizeof(dhPubTemplate[0]);
-+ int pubCount = 0;
-+ PK11RSAGenParams *rsaParams;
-+ SECKEYPQGParams *dsaParams;
-+ SECKEYDHParams * dhParams;
-+ CK_MECHANISM mechanism;
-+ CK_MECHANISM test_mech;
-+ CK_SESSION_HANDLE session_handle;
-+ CK_RV crv;
-+ CK_OBJECT_HANDLE privID,pubID;
-+ SECKEYPrivateKey *privKey;
-+ KeyType keyType;
-+ PRBool restore;
-+ int peCount,i;
-+ CK_ATTRIBUTE *attrs;
-+ CK_ATTRIBUTE *privattrs;
-+ SECItem *pubKeyIndex;
-+ CK_ATTRIBUTE setTemplate;
-+ SECStatus rv;
-+ CK_MECHANISM_INFO mechanism_info;
-+ CK_OBJECT_CLASS keyClass;
-+ SECItem *cka_id;
-+ PRBool haslock = PR_FALSE;
-+ PRBool pubIsToken = PR_FALSE;
-+
-+ PORT_Assert(slot != NULL);
-+ if (slot == NULL) {
-+ PORT_SetError( SEC_ERROR_NO_MODULE);
-+ return NULL;
-+ }
-+
-+ /* if our slot really doesn't do this mechanism, Generate the key
-+ * in our internal token and write it out */
-+ if (!PK11_DoesMechanism(slot,type)) {
-+ PK11SlotInfo *int_slot = PK11_GetInternalSlot();
-+
-+ /* don't loop forever looking for a slot */
-+ if (slot == int_slot) {
-+ PK11_FreeSlot(int_slot);
-+ PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
-+ return NULL;
-+ }
-+
-+ /* if there isn't a suitable slot, then we can't do the keygen */
-+ if (int_slot == NULL) {
-+ PORT_SetError( SEC_ERROR_NO_MODULE );
-+ return NULL;
-+ }
-+
-+ /* generate the temporary key to load */
-+ privKey = PK11_GenerateKeyPair(int_slot,type, param, pubKey, PR_FALSE,
-+ PR_FALSE, wincx);
-+ PK11_FreeSlot(int_slot);
-+
-+ /* if successful, load the temp key into the new token */
-+ if (privKey != NULL) {
-+ SECKEYPrivateKey *newPrivKey = pk11_loadPrivKey(slot,privKey,
-+ *pubKey,token,sensitive);
-+ SECKEY_DestroyPrivateKey(privKey);
-+ if (newPrivKey == NULL) {
-+ SECKEY_DestroyPublicKey(*pubKey);
-+ *pubKey = NULL;
-+ }
-+ return newPrivKey;
-+ }
-+ return NULL;
-+ }
-+
-+
-+ mechanism.mechanism = type;
-+ mechanism.pParameter = NULL;
-+ mechanism.ulParameterLen = 0;
-+ test_mech.pParameter = NULL;
-+ test_mech.ulParameterLen = 0;
-+
-+ /* set up the private key template */
-+ privattrs = privTemplate;
-+ PK11_SETATTRS(privattrs, CKA_SENSITIVE, sensitive ? &cktrue : &ckfalse,
-+ sizeof(CK_BBOOL)); privattrs++;
-+ PK11_SETATTRS(privattrs, CKA_TOKEN, token ? &cktrue : &ckfalse,
-+ sizeof(CK_BBOOL)); privattrs++;
-+ PK11_SETATTRS(privattrs, CKA_PRIVATE, sensitive ? &cktrue : &ckfalse,
-+ sizeof(CK_BBOOL)); privattrs++;
-+
-+ /* set up the mechanism specific info */
-+ switch (type) {
-+ case CKM_RSA_PKCS_KEY_PAIR_GEN:
-+ rsaParams = (PK11RSAGenParams *)param;
-+ modulusBits = rsaParams->keySizeInBits;
-+ peCount = 0;
-+
-+ /* convert pe to a PKCS #11 string */
-+ for (i=0; i < 4; i++) {
-+ if (peCount || (rsaParams->pe &
-+ ((unsigned long)0xff000000L >> (i*8)))) {
-+ publicExponent[peCount] =
-+ (CK_BYTE)((rsaParams->pe >> (3-i)*8) & 0xff);
-+ peCount++;
-+ }
-+ }
-+ PORT_Assert(peCount != 0);
-+ attrs = rsaPubTemplate;
-+ PK11_SETATTRS(attrs, CKA_MODULUS_BITS,
-+ &modulusBits, sizeof(modulusBits)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_PUBLIC_EXPONENT,
-+ publicExponent, peCount);attrs++;
-+ pubTemplate = rsaPubTemplate;
-+ pubCount = rsaPubCount;
-+ keyType = rsaKey;
-+ test_mech.mechanism = CKM_RSA_PKCS;
-+ break;
-+ case CKM_DSA_KEY_PAIR_GEN:
-+ dsaParams = (SECKEYPQGParams *)param;
-+ attrs = dsaPubTemplate;
-+ PK11_SETATTRS(attrs, CKA_PRIME, dsaParams->prime.data,
-+ dsaParams->prime.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_SUBPRIME, dsaParams->subPrime.data,
-+ dsaParams->subPrime.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_BASE, dsaParams->base.data,
-+ dsaParams->base.len); attrs++;
-+ pubTemplate = dsaPubTemplate;
-+ pubCount = dsaPubCount;
-+ keyType = dsaKey;
-+ test_mech.mechanism = CKM_DSA;
-+ break;
-+ case CKM_DH_PKCS_KEY_PAIR_GEN:
-+ dhParams = (SECKEYDHParams *)param;
-+ attrs = dhPubTemplate;
-+ PK11_SETATTRS(attrs, CKA_PRIME, dhParams->prime.data,
-+ dhParams->prime.len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_BASE, dhParams->base.data,
-+ dhParams->base.len); attrs++;
-+ pubTemplate = dhPubTemplate;
-+ pubCount = dhPubCount;
-+ keyType = dhKey;
-+ test_mech.mechanism = CKM_DH_PKCS_DERIVE;
-+ break;
-+#ifdef NSS_ENABLE_ECC
-+ case CKM_EC_KEY_PAIR_GEN:
-+ ecParams = (SECKEYECParams *)param;
-+ attrs = ecPubTemplate;
-+ PK11_SETATTRS(attrs, CKA_EC_PARAMS, ecParams->data,
-+ ecParams->len); attrs++;
-+ pubTemplate = ecPubTemplate;
-+ pubCount = ecPubCount;
-+ keyType = ecKey;
-+ /* XXX An EC key can be used for other mechanisms too such
-+ * as CKM_ECDSA and CKM_ECDSA_SHA1. How can we reflect
-+ * that in test_mech.mechanism so the CKA_SIGN, CKA_VERIFY
-+ * attributes are set correctly?
-+ */
-+ test_mech.mechanism = CKM_ECDH1_DERIVE;
-+ break;
-+#endif /* NSS_ENABLE_ECC */
-+ default:
-+ PORT_SetError( SEC_ERROR_BAD_KEY );
-+ return NULL;
-+ }
-+
-+ /* now query the slot to find out how "good" a key we can generate */
-+ if (!slot->isThreadSafe) PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_GetMechanismInfo(slot->slotID,
-+ test_mech.mechanism,&mechanism_info);
-+ if (!slot->isThreadSafe) PK11_ExitSlotMonitor(slot);
-+ if ((crv != CKR_OK) || (mechanism_info.flags == 0)) {
-+ /* must be old module... guess what it should be... */
-+ switch (test_mech.mechanism) {
-+ case CKM_RSA_PKCS:
-+ mechanism_info.flags = (CKF_SIGN | CKF_DECRYPT |
-+ CKF_WRAP | CKF_VERIFY_RECOVER | CKF_ENCRYPT | CKF_WRAP);;
-+ break;
-+ case CKM_DSA:
-+ mechanism_info.flags = CKF_SIGN | CKF_VERIFY;
-+ break;
-+ case CKM_DH_PKCS_DERIVE:
-+ mechanism_info.flags = CKF_DERIVE;
-+ break;
-+#ifdef NSS_ENABLE_ECC
-+ case CKM_ECDH1_DERIVE:
-+ mechanism_info.flags = CKF_DERIVE;
-+ break;
-+ case CKM_ECDSA:
-+ case CKM_ECDSA_SHA1:
-+ mechanism_info.flags = CKF_SIGN | CKF_VERIFY;
-+ break;
-+#endif /* NSS_ENABLE_ECC */
-+ default:
-+ break;
-+ }
-+ }
-+ /* set the public key objects */
-+ PK11_SETATTRS(attrs, CKA_TOKEN, token ? &cktrue : &ckfalse,
-+ sizeof(CK_BBOOL)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_DERIVE,
-+ mechanism_info.flags & CKF_DERIVE ? &cktrue : &ckfalse,
-+ sizeof(CK_BBOOL)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_WRAP,
-+ mechanism_info.flags & CKF_WRAP ? &cktrue : &ckfalse,
-+ sizeof(CK_BBOOL)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_VERIFY,
-+ mechanism_info.flags & CKF_VERIFY ? &cktrue : &ckfalse,
-+ sizeof(CK_BBOOL)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_VERIFY_RECOVER,
-+ mechanism_info.flags & CKF_VERIFY_RECOVER ? &cktrue : &ckfalse,
-+ sizeof(CK_BBOOL)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_ENCRYPT,
-+ mechanism_info.flags & CKF_ENCRYPT? &cktrue : &ckfalse,
-+ sizeof(CK_BBOOL)); attrs++;
-+ PK11_SETATTRS(privattrs, CKA_DERIVE,
-+ mechanism_info.flags & CKF_DERIVE ? &cktrue : &ckfalse,
-+ sizeof(CK_BBOOL)); privattrs++;
-+ PK11_SETATTRS(privattrs, CKA_UNWRAP,
-+ mechanism_info.flags & CKF_UNWRAP ? &cktrue : &ckfalse,
-+ sizeof(CK_BBOOL)); privattrs++;
-+ PK11_SETATTRS(privattrs, CKA_SIGN,
-+ mechanism_info.flags & CKF_SIGN ? &cktrue : &ckfalse,
-+ sizeof(CK_BBOOL)); privattrs++;
-+ PK11_SETATTRS(privattrs, CKA_DECRYPT,
-+ mechanism_info.flags & CKF_DECRYPT ? &cktrue : &ckfalse,
-+ sizeof(CK_BBOOL)); privattrs++;
-+
-+ if (token) {
-+ session_handle = PK11_GetRWSession(slot);
-+ haslock = PK11_RWSessionHasLock(slot,session_handle);
-+ restore = PR_TRUE;
-+ } else {
-+ PK11_EnterSlotMonitor(slot); /* gross!! */
-+ session_handle = slot->session;
-+ restore = PR_FALSE;
-+ haslock = PR_TRUE;
-+ }
-+
-+ crv = PK11_GETTAB(slot)->C_GenerateKeyPair(session_handle, &mechanism,
-+ pubTemplate,pubCount,privTemplate,privCount,&pubID,&privID);
-+
-+ if (crv != CKR_OK) {
-+ if (restore) {
-+ PK11_RestoreROSession(slot,session_handle);
-+ } else PK11_ExitSlotMonitor(slot);
-+ PORT_SetError( PK11_MapError(crv) );
-+ return NULL;
-+ }
-+ /* This locking code is dangerous and needs to be more thought
-+ * out... the real problem is that we're holding the mutex open this long
-+ */
-+ if (haslock) { PK11_ExitSlotMonitor(slot); }
-+
-+ /* swap around the ID's for older PKCS #11 modules */
-+ keyClass = PK11_ReadULongAttribute(slot,pubID,CKA_CLASS);
-+ if (keyClass != CKO_PUBLIC_KEY) {
-+ CK_OBJECT_HANDLE tmp = pubID;
-+ pubID = privID;
-+ privID = tmp;
-+ }
-+
-+ *pubKey = PK11_ExtractPublicKey(slot, keyType, pubID);
-+ if (*pubKey == NULL) {
-+ if (restore) {
-+ /* we may have to restore the mutex so it get's exited properly
-+ * in RestoreROSession */
-+ if (haslock) PK11_EnterSlotMonitor(slot);
-+ PK11_RestoreROSession(slot,session_handle);
-+ }
-+ PK11_DestroyObject(slot,pubID);
-+ PK11_DestroyObject(slot,privID);
-+ return NULL;
-+ }
-+
-+ /* set the ID to the public key so we can find it again */
-+ pubKeyIndex = NULL;
-+ switch (type) {
-+ case CKM_RSA_PKCS_KEY_PAIR_GEN:
-+ pubKeyIndex = &(*pubKey)->u.rsa.modulus;
-+ break;
-+ case CKM_DSA_KEY_PAIR_GEN:
-+ pubKeyIndex = &(*pubKey)->u.dsa.publicValue;
-+ break;
-+ case CKM_DH_PKCS_KEY_PAIR_GEN:
-+ pubKeyIndex = &(*pubKey)->u.dh.publicValue;
-+ break;
-+#ifdef NSS_ENABLE_ECC
-+ case CKM_EC_KEY_PAIR_GEN:
-+ pubKeyIndex = &(*pubKey)->u.ec.publicValue;
-+ break;
-+#endif /* NSS_ENABLE_ECC */
-+ }
-+ PORT_Assert(pubKeyIndex != NULL);
-+
-+ cka_id = PK11_MakeIDFromPubKey(pubKeyIndex);
-+ pubIsToken = (PRBool)PK11_HasAttributeSet(slot,pubID, CKA_TOKEN);
-+
-+ PK11_SETATTRS(&setTemplate, CKA_ID, cka_id->data, cka_id->len);
-+
-+ if (haslock) { PK11_EnterSlotMonitor(slot); }
-+ crv = PK11_GETTAB(slot)->C_SetAttributeValue(session_handle, privID,
-+ &setTemplate, 1);
-+
-+ if (crv == CKR_OK && pubIsToken) {
-+ crv = PK11_GETTAB(slot)->C_SetAttributeValue(session_handle, pubID,
-+ &setTemplate, 1);
-+ }
-+
-+
-+ if (restore) {
-+ PK11_RestoreROSession(slot,session_handle);
-+ } else {
-+ PK11_ExitSlotMonitor(slot);
-+ }
-+ SECITEM_FreeItem(cka_id,PR_TRUE);
-+
-+
-+ if (crv != CKR_OK) {
-+ PK11_DestroyObject(slot,pubID);
-+ PK11_DestroyObject(slot,privID);
-+ PORT_SetError( PK11_MapError(crv) );
-+ *pubKey = NULL;
-+ return NULL;
-+ }
-+
-+ privKey = PK11_MakePrivKey(slot,keyType,(PRBool)!token,privID,wincx);
-+ if (privKey == NULL) {
-+ SECKEY_DestroyPublicKey(*pubKey);
-+ PK11_DestroyObject(slot,privID);
-+ *pubKey = NULL;
-+ return NULL; /* due to pairwise consistency check */
-+ }
-+
-+ /* Perform PKCS #11 pairwise consistency check. */
-+ rv = pk11_PairwiseConsistencyCheck( *pubKey, privKey, &test_mech, wincx );
-+ if( rv != SECSuccess ) {
-+ SECKEY_DestroyPublicKey( *pubKey );
-+ SECKEY_DestroyPrivateKey( privKey );
-+ *pubKey = NULL;
-+ privKey = NULL;
-+ return NULL;
-+ }
-+
-+ return privKey;
-+}
-+
-+/*
-+ * This function does a straight public key wrap (which only RSA can do).
-+ * Use PK11_PubGenKey and PK11_WrapSymKey to implement the FORTEZZA and
-+ * Diffie-Hellman Ciphers. */
-+SECStatus
-+PK11_PubWrapSymKey(CK_MECHANISM_TYPE type, SECKEYPublicKey *pubKey,
-+ PK11SymKey *symKey, SECItem *wrappedKey)
-+{
-+ PK11SlotInfo *slot;
-+ CK_ULONG len = wrappedKey->len;
-+ PK11SymKey *newKey = NULL;
-+ CK_OBJECT_HANDLE id;
-+ CK_MECHANISM mechanism;
-+ PRBool owner = PR_TRUE;
-+ CK_SESSION_HANDLE session;
-+ CK_RV crv;
-+
-+ /* if this slot doesn't support the mechanism, go to a slot that does */
-+ newKey = pk11_ForceSlot(symKey,type,CKA_ENCRYPT);
-+ if (newKey != NULL) {
-+ symKey = newKey;
-+ }
-+
-+ if ((symKey == NULL) || (symKey->slot == NULL)) {
-+ PORT_SetError( SEC_ERROR_NO_MODULE );
-+ return SECFailure;
-+ }
-+
-+ slot = symKey->slot;
-+ mechanism.mechanism = pk11_mapWrapKeyType(pubKey->keyType);
-+ mechanism.pParameter = NULL;
-+ mechanism.ulParameterLen = 0;
-+
-+ id = PK11_ImportPublicKey(slot,pubKey,PR_FALSE);
-+ if (id == CK_INVALID_HANDLE) {
-+ if (newKey) {
-+ PK11_FreeSymKey(newKey);
-+ }
-+ return SECFailure; /* Error code has been set. */
-+ }
-+
-+ session = pk11_GetNewSession(slot,&owner);
-+ if (!owner || !(slot->isThreadSafe)) PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_WrapKey(session,&mechanism,
-+ id,symKey->objectID,wrappedKey->data,&len);
-+ if (!owner || !(slot->isThreadSafe)) PK11_ExitSlotMonitor(slot);
-+ pk11_CloseSession(slot,session,owner);
-+ if (newKey) {
-+ PK11_FreeSymKey(newKey);
-+ }
-+
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ return SECFailure;
-+ }
-+ wrappedKey->len = len;
-+ return SECSuccess;
-+}
-+
-+/*
-+ * this little function uses the Encrypt function to wrap a key, just in
-+ * case we have problems with the wrap implementation for a token.
-+ */
-+static SECStatus
-+pk11_HandWrap(PK11SymKey *wrappingKey, SECItem *param, CK_MECHANISM_TYPE type,
-+ SECItem *inKey, SECItem *outKey)
-+{
-+ PK11SlotInfo *slot;
-+ CK_ULONG len;
-+ SECItem *data;
-+ CK_MECHANISM mech;
-+ PRBool owner = PR_TRUE;
-+ CK_SESSION_HANDLE session;
-+ CK_RV crv;
-+
-+ slot = wrappingKey->slot;
-+ /* use NULL IV's for wrapping */
-+ mech.mechanism = type;
-+ if (param) {
-+ mech.pParameter = param->data;
-+ mech.ulParameterLen = param->len;
-+ } else {
-+ mech.pParameter = NULL;
-+ mech.ulParameterLen = 0;
-+ }
-+ session = pk11_GetNewSession(slot,&owner);
-+ if (!owner || !(slot->isThreadSafe)) PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_EncryptInit(session,&mech,
-+ wrappingKey->objectID);
-+ if (crv != CKR_OK) {
-+ if (!owner || !(slot->isThreadSafe)) PK11_ExitSlotMonitor(slot);
-+ pk11_CloseSession(slot,session,owner);
-+ PORT_SetError( PK11_MapError(crv) );
-+ return SECFailure;
-+ }
-+
-+ /* keys are almost always aligned, but if we get this far,
-+ * we've gone above and beyond anyway... */
-+ data = PK11_BlockData(inKey,PK11_GetBlockSize(type,param));
-+ if (data == NULL) {
-+ if (!owner || !(slot->isThreadSafe)) PK11_ExitSlotMonitor(slot);
-+ pk11_CloseSession(slot,session,owner);
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ return SECFailure;
-+ }
-+ len = outKey->len;
-+ crv = PK11_GETTAB(slot)->C_Encrypt(session,data->data,data->len,
-+ outKey->data, &len);
-+ if (!owner || !(slot->isThreadSafe)) PK11_ExitSlotMonitor(slot);
-+ pk11_CloseSession(slot,session,owner);
-+ SECITEM_FreeItem(data,PR_TRUE);
-+ outKey->len = len;
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ return SECFailure;
-+ }
-+ return SECSuccess;
-+}
-+
-+/*
-+ * This function does a symetric based wrap.
-+ */
-+SECStatus
-+PK11_WrapSymKey(CK_MECHANISM_TYPE type, SECItem *param,
-+ PK11SymKey *wrappingKey, PK11SymKey *symKey, SECItem *wrappedKey)
-+{
-+ PK11SlotInfo *slot;
-+ CK_ULONG len = wrappedKey->len;
-+ PK11SymKey *newKey = NULL;
-+ SECItem *param_save = NULL;
-+ CK_MECHANISM mechanism;
-+ PRBool owner = PR_TRUE;
-+ CK_SESSION_HANDLE session;
-+ CK_RV crv;
-+ SECStatus rv;
-+
-+ /* if this slot doesn't support the mechanism, go to a slot that does */
-+ /* Force symKey and wrappingKey into the same slot */
-+ if ((wrappingKey->slot == NULL) || (symKey->slot != wrappingKey->slot)) {
-+ /* first try copying the wrapping Key to the symKey slot */
-+ if (symKey->slot && PK11_DoesMechanism(symKey->slot,type)) {
-+ newKey = pk11_CopyToSlot(symKey->slot,type,CKA_WRAP,wrappingKey);
-+ }
-+ /* Nope, try it the other way */
-+ if (newKey == NULL) {
-+ if (wrappingKey->slot) {
-+ newKey = pk11_CopyToSlot(wrappingKey->slot,
-+ symKey->type, CKA_ENCRYPT, symKey);
-+ }
-+ /* just not playing... one last thing, can we get symKey's data?
-+ * If it's possible, we it should already be in the
-+ * symKey->data.data pointer because pk11_CopyToSlot would have
-+ * tried to put it there. */
-+ if (newKey == NULL) {
-+ /* Can't get symKey's data: Game Over */
-+ if (symKey->data.data == NULL) {
-+ PORT_SetError( SEC_ERROR_NO_MODULE );
-+ return SECFailure;
-+ }
-+ if (param == NULL) {
-+ param_save = param = PK11_ParamFromIV(type,NULL);
-+ }
-+ rv = pk11_HandWrap(wrappingKey, param, type,
-+ &symKey->data,wrappedKey);
-+ if (param_save) SECITEM_FreeItem(param_save,PR_TRUE);
-+ return rv;
-+ }
-+ /* we successfully moved the sym Key */
-+ symKey = newKey;
-+ } else {
-+ /* we successfully moved the wrapping Key */
-+ wrappingKey = newKey;
-+ }
-+ }
-+
-+ /* at this point both keys are in the same token */
-+ slot = wrappingKey->slot;
-+ mechanism.mechanism = type;
-+ /* use NULL IV's for wrapping */
-+ if (param == NULL) {
-+ param_save = param = PK11_ParamFromIV(type,NULL);
-+ }
-+ if (param) {
-+ mechanism.pParameter = param->data;
-+ mechanism.ulParameterLen = param->len;
-+ } else {
-+ mechanism.pParameter = NULL;
-+ mechanism.ulParameterLen = 0;
-+ }
-+
-+ len = wrappedKey->len;
-+
-+ session = pk11_GetNewSession(slot,&owner);
-+ if (!owner || !(slot->isThreadSafe)) PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_WrapKey(session, &mechanism,
-+ wrappingKey->objectID, symKey->objectID,
-+ wrappedKey->data, &len);
-+ if (!owner || !(slot->isThreadSafe)) PK11_ExitSlotMonitor(slot);
-+ pk11_CloseSession(slot,session,owner);
-+ rv = SECSuccess;
-+ if (crv != CKR_OK) {
-+ /* can't wrap it? try hand wrapping it... */
-+ do {
-+ if (symKey->data.data == NULL) {
-+ rv = PK11_ExtractKeyValue(symKey);
-+ if (rv != SECSuccess) break;
-+ }
-+ rv = pk11_HandWrap(wrappingKey, param, type, &symKey->data,
-+ wrappedKey);
-+ } while (PR_FALSE);
-+ } else {
-+ wrappedKey->len = len;
-+ }
-+ if (newKey) PK11_FreeSymKey(newKey);
-+ if (param_save) SECITEM_FreeItem(param_save,PR_TRUE);
-+ return rv;
-+}
-+
-+/*
-+ * This Generates a new key based on a symetricKey
-+ */
-+PK11SymKey *
-+PK11_Derive( PK11SymKey *baseKey, CK_MECHANISM_TYPE derive, SECItem *param,
-+ CK_MECHANISM_TYPE target, CK_ATTRIBUTE_TYPE operation,
-+ int keySize)
-+{
-+ return pk11_DeriveWithTemplate(baseKey, derive, param, target, operation,
-+ keySize, NULL, 0, PR_FALSE);
-+}
-+
-+
-+PK11SymKey *
-+PK11_DeriveWithFlags( PK11SymKey *baseKey, CK_MECHANISM_TYPE derive,
-+ SECItem *param, CK_MECHANISM_TYPE target, CK_ATTRIBUTE_TYPE operation,
-+ int keySize, CK_FLAGS flags)
-+{
-+ CK_BBOOL ckTrue = CK_TRUE;
-+ CK_ATTRIBUTE keyTemplate[MAX_TEMPL_ATTRS];
-+ unsigned int templateCount;
-+
-+ templateCount = pk11_FlagsToAttributes(flags, keyTemplate, &ckTrue);
-+ return pk11_DeriveWithTemplate(baseKey, derive, param, target, operation,
-+ keySize, keyTemplate, templateCount, PR_FALSE);
-+}
-+
-+PK11SymKey *
-+PK11_DeriveWithFlagsPerm( PK11SymKey *baseKey, CK_MECHANISM_TYPE derive,
-+ SECItem *param, CK_MECHANISM_TYPE target, CK_ATTRIBUTE_TYPE operation,
-+ int keySize, CK_FLAGS flags, PRBool isPerm)
-+{
-+ CK_BBOOL cktrue = CK_TRUE;
-+ CK_ATTRIBUTE keyTemplate[MAX_TEMPL_ATTRS+1];
-+ CK_ATTRIBUTE *attrs;
-+ unsigned int templateCount = 0;
-+
-+ attrs = keyTemplate;
-+ if (isPerm) {
-+ PK11_SETATTRS(attrs, CKA_TOKEN, &cktrue, sizeof(CK_BBOOL)); attrs++;
-+ }
-+ templateCount = attrs - keyTemplate;
-+ templateCount += pk11_FlagsToAttributes(flags, attrs, &cktrue);
-+ return pk11_DeriveWithTemplate(baseKey, derive, param, target, operation,
-+ keySize, keyTemplate, templateCount, isPerm);
-+}
-+
-+static PRBool
-+pk11_FindAttrInTemplate(CK_ATTRIBUTE * attr,
-+ unsigned int numAttrs,
-+ CK_ATTRIBUTE_TYPE target)
-+{
-+ for (; numAttrs > 0; ++attr, --numAttrs) {
-+ if (attr->type == target)
-+ return PR_TRUE;
-+ }
-+ return PR_FALSE;
-+}
-+
-+static PK11SymKey *
-+pk11_DeriveWithTemplate( PK11SymKey *baseKey, CK_MECHANISM_TYPE derive,
-+ SECItem *param, CK_MECHANISM_TYPE target, CK_ATTRIBUTE_TYPE operation,
-+ int keySize, CK_ATTRIBUTE *userAttr, unsigned int numAttrs,
-+ PRBool isPerm)
-+{
-+ PK11SlotInfo * slot = baseKey->slot;
-+ PK11SymKey * symKey;
-+ PK11SymKey * newBaseKey = NULL;
-+ CK_BBOOL cktrue = CK_TRUE;
-+ CK_OBJECT_CLASS keyClass = CKO_SECRET_KEY;
-+ CK_KEY_TYPE keyType = CKK_GENERIC_SECRET;
-+ CK_ULONG valueLen = 0;
-+ CK_MECHANISM mechanism;
-+ CK_RV crv;
-+ CK_ATTRIBUTE keyTemplate[MAX_TEMPL_ATTRS];
-+ CK_ATTRIBUTE * attrs = keyTemplate;
-+ CK_SESSION_HANDLE session;
-+ unsigned int templateCount;
-+
-+ if (numAttrs > MAX_TEMPL_ATTRS) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return NULL;
-+ }
-+ /* first copy caller attributes in. */
-+ for (templateCount = 0; templateCount < numAttrs; ++templateCount) {
-+ *attrs++ = *userAttr++;
-+ }
-+
-+ /* We only add the following attributes to the template if the caller
-+ ** didn't already supply them.
-+ */
-+ if (!pk11_FindAttrInTemplate(keyTemplate, numAttrs, CKA_CLASS)) {
-+ PK11_SETATTRS(attrs, CKA_CLASS, &keyClass, sizeof keyClass);
-+ attrs++;
-+ }
-+ if (!pk11_FindAttrInTemplate(keyTemplate, numAttrs, CKA_KEY_TYPE)) {
-+ keyType = PK11_GetKeyType(target, keySize);
-+ PK11_SETATTRS(attrs, CKA_KEY_TYPE, &keyType, sizeof keyType );
-+ attrs++;
-+ }
-+ if (keySize > 0 &&
-+ !pk11_FindAttrInTemplate(keyTemplate, numAttrs, CKA_VALUE_LEN)) {
-+ valueLen = (CK_ULONG)keySize;
-+ PK11_SETATTRS(attrs, CKA_VALUE_LEN, &valueLen, sizeof valueLen);
-+ attrs++;
-+ }
-+ if ((operation != CKA_FLAGS_ONLY) &&
-+ !pk11_FindAttrInTemplate(keyTemplate, numAttrs, operation)) {
-+ PK11_SETATTRS(attrs, operation, &cktrue, sizeof cktrue); attrs++;
-+ }
-+
-+ templateCount = attrs - keyTemplate;
-+ PR_ASSERT(templateCount <= MAX_TEMPL_ATTRS);
-+
-+ /* move the key to a slot that can do the function */
-+ if (!PK11_DoesMechanism(slot,derive)) {
-+ /* get a new base key & slot */
-+ PK11SlotInfo *newSlot = PK11_GetBestSlot(derive, baseKey->cx);
-+
-+ if (newSlot == NULL) return NULL;
-+
-+ newBaseKey = pk11_CopyToSlot (newSlot, derive, CKA_DERIVE,
-+ baseKey);
-+ PK11_FreeSlot(newSlot);
-+ if (newBaseKey == NULL) return NULL;
-+ baseKey = newBaseKey;
-+ slot = baseKey->slot;
-+ }
-+
-+
-+ /* get our key Structure */
-+ symKey = PK11_CreateSymKey(slot,target,!isPerm,baseKey->cx);
-+ if (symKey == NULL) {
-+ return NULL;
-+ }
-+
-+ symKey->size = keySize;
-+
-+ mechanism.mechanism = derive;
-+ if (param) {
-+ mechanism.pParameter = param->data;
-+ mechanism.ulParameterLen = param->len;
-+ } else {
-+ mechanism.pParameter = NULL;
-+ mechanism.ulParameterLen = 0;
-+ }
-+ symKey->origin=PK11_OriginDerive;
-+
-+ if (isPerm) {
-+ session = PK11_GetRWSession(slot);
-+ } else {
-+ pk11_EnterKeyMonitor(symKey);
-+ session = symKey->session;
-+ }
-+ crv = PK11_GETTAB(slot)->C_DeriveKey(session, &mechanism,
-+ baseKey->objectID, keyTemplate, templateCount, &symKey->objectID);
-+ if (isPerm) {
-+ PK11_RestoreROSession(slot, session);
-+ } else {
-+ pk11_ExitKeyMonitor(symKey);
-+ }
-+
-+ if (newBaseKey) PK11_FreeSymKey(newBaseKey);
-+ if (crv != CKR_OK) {
-+ PK11_FreeSymKey(symKey);
-+ return NULL;
-+ }
-+ return symKey;
-+}
-+
-+/* build a public KEA key from the public value */
-+SECKEYPublicKey *
-+PK11_MakeKEAPubKey(unsigned char *keyData,int length)
-+{
-+ SECKEYPublicKey *pubk;
-+ SECItem pkData;
-+ SECStatus rv;
-+ PRArenaPool *arena;
-+
-+ pkData.data = keyData;
-+ pkData.len = length;
-+
-+ arena = PORT_NewArena (DER_DEFAULT_CHUNKSIZE);
-+ if (arena == NULL)
-+ return NULL;
-+
-+ pubk = (SECKEYPublicKey *) PORT_ArenaZAlloc(arena, sizeof(SECKEYPublicKey));
-+ if (pubk == NULL) {
-+ PORT_FreeArena (arena, PR_FALSE);
-+ return NULL;
-+ }
-+
-+ pubk->arena = arena;
-+ pubk->pkcs11Slot = 0;
-+ pubk->pkcs11ID = CK_INVALID_HANDLE;
-+ pubk->keyType = fortezzaKey;
-+ rv = SECITEM_CopyItem(arena, &pubk->u.fortezza.KEAKey, &pkData);
-+ if (rv != SECSuccess) {
-+ PORT_FreeArena (arena, PR_FALSE);
-+ return NULL;
-+ }
-+ return pubk;
-+}
-+
-+
-+/*
-+ * This Generates a wrapping key based on a privateKey, publicKey, and two
-+ * random numbers. For Mail usage RandomB should be NULL. In the Sender's
-+ * case RandomA is generate, outherwize it is passed.
-+ */
-+static unsigned char *rb_email = NULL;
-+
-+PK11SymKey *
-+PK11_PubDerive(SECKEYPrivateKey *privKey, SECKEYPublicKey *pubKey,
-+ PRBool isSender, SECItem *randomA, SECItem *randomB,
-+ CK_MECHANISM_TYPE derive, CK_MECHANISM_TYPE target,
-+ CK_ATTRIBUTE_TYPE operation, int keySize,void *wincx)
-+{
-+ PK11SlotInfo *slot = privKey->pkcs11Slot;
-+ CK_MECHANISM mechanism;
-+ PK11SymKey *symKey;
-+ CK_RV crv;
-+
-+
-+ if (rb_email == NULL) {
-+ rb_email = PORT_ZAlloc(128);
-+ if (rb_email == NULL) {
-+ return NULL;
-+ }
-+ rb_email[127] = 1;
-+ }
-+
-+ /* get our key Structure */
-+ symKey = PK11_CreateSymKey(slot,target,PR_TRUE,wincx);
-+ if (symKey == NULL) {
-+ return NULL;
-+ }
-+
-+ symKey->origin = PK11_OriginDerive;
-+
-+ switch (privKey->keyType) {
-+ case rsaKey:
-+ case nullKey:
-+ PORT_SetError(SEC_ERROR_BAD_KEY);
-+ break;
-+ case dsaKey:
-+ case keaKey:
-+ case fortezzaKey:
-+ {
-+ CK_KEA_DERIVE_PARAMS param;
-+ param.isSender = (CK_BBOOL) isSender;
-+ param.ulRandomLen = randomA->len;
-+ param.pRandomA = randomA->data;
-+ param.pRandomB = rb_email;
-+ if (randomB)
-+ param.pRandomB = randomB->data;
-+ if (pubKey->keyType == fortezzaKey) {
-+ param.ulPublicDataLen = pubKey->u.fortezza.KEAKey.len;
-+ param.pPublicData = pubKey->u.fortezza.KEAKey.data;
-+ } else {
-+ /* assert type == keaKey */
-+ /* XXX change to match key key types */
-+ param.ulPublicDataLen = pubKey->u.fortezza.KEAKey.len;
-+ param.pPublicData = pubKey->u.fortezza.KEAKey.data;
-+ }
-+
-+ mechanism.mechanism = derive;
-+ mechanism.pParameter = &param;
-+ mechanism.ulParameterLen = sizeof(param);
-+
-+ /* get a new symKey structure */
-+ pk11_EnterKeyMonitor(symKey);
-+ crv=PK11_GETTAB(slot)->C_DeriveKey(symKey->session, &mechanism,
-+ privKey->pkcs11ID, NULL, 0, &symKey->objectID);
-+ pk11_ExitKeyMonitor(symKey);
-+ if (crv == CKR_OK) return symKey;
-+ PORT_SetError( PK11_MapError(crv) );
-+ }
-+ break;
-+ case dhKey:
-+ {
-+ CK_BBOOL cktrue = CK_TRUE;
-+ CK_OBJECT_CLASS keyClass = CKO_SECRET_KEY;
-+ CK_KEY_TYPE keyType = CKK_GENERIC_SECRET;
-+ CK_ULONG key_size = 0;
-+ CK_ATTRIBUTE keyTemplate[4];
-+ int templateCount;
-+ CK_ATTRIBUTE *attrs = keyTemplate;
-+
-+ if (pubKey->keyType != dhKey) {
-+ PORT_SetError(SEC_ERROR_BAD_KEY);
-+ break;
-+ }
-+
-+ PK11_SETATTRS(attrs, CKA_CLASS, &keyClass, sizeof(keyClass));
-+ attrs++;
-+ PK11_SETATTRS(attrs, CKA_KEY_TYPE, &keyType, sizeof(keyType));
-+ attrs++;
-+ PK11_SETATTRS(attrs, operation, &cktrue, 1); attrs++;
-+ PK11_SETATTRS(attrs, CKA_VALUE_LEN, &key_size, sizeof(key_size));
-+ attrs++;
-+ templateCount = attrs - keyTemplate;
-+ PR_ASSERT(templateCount <= sizeof(keyTemplate)/sizeof(CK_ATTRIBUTE));
-+
-+ keyType = PK11_GetKeyType(target,keySize);
-+ key_size = keySize;
-+ symKey->size = keySize;
-+ if (key_size == 0) templateCount--;
-+
-+ mechanism.mechanism = derive;
-+
-+ /* we can undefine these when we define diffie-helman keys */
-+ mechanism.pParameter = pubKey->u.dh.publicValue.data;
-+ mechanism.ulParameterLen = pubKey->u.dh.publicValue.len;
-+
-+ pk11_EnterKeyMonitor(symKey);
-+ crv = PK11_GETTAB(slot)->C_DeriveKey(symKey->session, &mechanism,
-+ privKey->pkcs11ID, keyTemplate, templateCount, &symKey->objectID);
-+ pk11_ExitKeyMonitor(symKey);
-+ if (crv == CKR_OK) return symKey;
-+ PORT_SetError( PK11_MapError(crv) );
-+ }
-+ break;
-+#ifdef NSS_ENABLE_ECC
-+ case ecKey:
-+ {
-+ CK_BBOOL cktrue = CK_TRUE;
-+ CK_OBJECT_CLASS keyClass = CKO_SECRET_KEY;
-+ CK_KEY_TYPE keyType = CKK_GENERIC_SECRET;
-+ CK_ULONG key_size = 0;
-+ CK_ATTRIBUTE keyTemplate[4];
-+ int templateCount;
-+ CK_ATTRIBUTE *attrs = keyTemplate;
-+ CK_ECDH1_DERIVE_PARAMS *mechParams = NULL;
-+
-+ if (pubKey->keyType != ecKey) {
-+ PORT_SetError(SEC_ERROR_BAD_KEY);
-+ break;
-+ }
-+
-+ PK11_SETATTRS(attrs, CKA_CLASS, &keyClass, sizeof(keyClass));
-+ attrs++;
-+ PK11_SETATTRS(attrs, CKA_KEY_TYPE, &keyType, sizeof(keyType));
-+ attrs++;
-+ PK11_SETATTRS(attrs, operation, &cktrue, 1); attrs++;
-+ PK11_SETATTRS(attrs, CKA_VALUE_LEN, &key_size, sizeof(key_size));
-+ attrs++;
-+ templateCount = attrs - keyTemplate;
-+ PR_ASSERT(templateCount <= sizeof(keyTemplate)/sizeof(CK_ATTRIBUTE));
-+
-+ keyType = PK11_GetKeyType(target,keySize);
-+ key_size = keySize;
-+ symKey->size = keySize;
-+ if (key_size == 0) templateCount--;
-+
-+ mechParams = (CK_ECDH1_DERIVE_PARAMS *)
-+ PORT_ZAlloc(sizeof(CK_ECDH1_DERIVE_PARAMS));
-+ mechParams->kdf = CKD_SHA1_KDF;
-+ mechParams->ulSharedDataLen = 0;
-+ mechParams->pSharedData = NULL;
-+ mechParams->ulPublicDataLen = pubKey->u.ec.publicValue.len;
-+ mechParams->pPublicData = pubKey->u.ec.publicValue.data;
-+
-+ mechanism.mechanism = derive;
-+ mechanism.pParameter = mechParams;
-+ mechanism.ulParameterLen = sizeof(CK_ECDH1_DERIVE_PARAMS);
-+
-+ pk11_EnterKeyMonitor(symKey);
-+ crv = PK11_GETTAB(slot)->C_DeriveKey(symKey->session,
-+ &mechanism, privKey->pkcs11ID, keyTemplate,
-+ templateCount, &symKey->objectID);
-+ pk11_ExitKeyMonitor(symKey);
-+
-+ PORT_ZFree(mechParams, sizeof(CK_ECDH1_DERIVE_PARAMS));
-+
-+ if (crv == CKR_OK) return symKey;
-+ PORT_SetError( PK11_MapError(crv) );
-+ }
-+#else
-+ case ecKey:
-+ break;
-+#endif /* NSS_ENABLE_ECC */
-+ }
-+
-+ PK11_FreeSymKey(symKey);
-+ return NULL;
-+}
-+
-+PK11SymKey *
-+PK11_PubDeriveWithKDF(SECKEYPrivateKey *privKey, SECKEYPublicKey *pubKey,
-+ PRBool isSender, SECItem *randomA, SECItem *randomB,
-+ CK_MECHANISM_TYPE derive, CK_MECHANISM_TYPE target,
-+ CK_ATTRIBUTE_TYPE operation, int keySize,
-+ CK_ULONG kdf, SECItem *sharedData, void *wincx)
-+{
-+ PK11SlotInfo *slot = privKey->pkcs11Slot;
-+ PK11SymKey *symKey;
-+#ifdef NSS_ENABLE_ECC
-+ CK_MECHANISM mechanism;
-+ CK_RV crv;
-+#endif
-+
-+ /* get our key Structure */
-+ symKey = PK11_CreateSymKey(slot,target,PR_TRUE,wincx);
-+ if (symKey == NULL) {
-+ return NULL;
-+ }
-+
-+ symKey->origin = PK11_OriginDerive;
-+
-+ switch (privKey->keyType) {
-+ case rsaKey:
-+ case nullKey:
-+ case dsaKey:
-+ case keaKey:
-+ case fortezzaKey:
-+ case dhKey:
-+ PK11_FreeSymKey(symKey);
-+ return PK11_PubDerive(privKey, pubKey, isSender, randomA, randomB,
-+ derive, target, operation, keySize, wincx);
-+#ifdef NSS_ENABLE_ECC
-+ case ecKey:
-+ {
-+ CK_BBOOL cktrue = CK_TRUE;
-+ CK_OBJECT_CLASS keyClass = CKO_SECRET_KEY;
-+ CK_KEY_TYPE keyType = CKK_GENERIC_SECRET;
-+ CK_ULONG key_size = 0;
-+ CK_ATTRIBUTE keyTemplate[4];
-+ int templateCount;
-+ CK_ATTRIBUTE *attrs = keyTemplate;
-+ CK_ECDH1_DERIVE_PARAMS *mechParams = NULL;
-+
-+ if (pubKey->keyType != ecKey) {
-+ PORT_SetError(SEC_ERROR_BAD_KEY);
-+ break;
-+ }
-+
-+ PK11_SETATTRS(attrs, CKA_CLASS, &keyClass, sizeof(keyClass));
-+ attrs++;
-+ PK11_SETATTRS(attrs, CKA_KEY_TYPE, &keyType, sizeof(keyType));
-+ attrs++;
-+ PK11_SETATTRS(attrs, operation, &cktrue, 1); attrs++;
-+ PK11_SETATTRS(attrs, CKA_VALUE_LEN, &key_size, sizeof(key_size));
-+ attrs++;
-+ templateCount = attrs - keyTemplate;
-+ PR_ASSERT(templateCount <= sizeof(keyTemplate)/sizeof(CK_ATTRIBUTE));
-+
-+ keyType = PK11_GetKeyType(target,keySize);
-+ key_size = keySize;
-+ symKey->size = keySize;
-+ if (key_size == 0) templateCount--;
-+
-+ mechParams = (CK_ECDH1_DERIVE_PARAMS *)
-+ PORT_ZAlloc(sizeof(CK_ECDH1_DERIVE_PARAMS));
-+ if ((kdf < CKD_NULL) || (kdf > CKD_SHA1_KDF)) {
-+ PORT_SetError(SEC_ERROR_INVALID_ALGORITHM);
-+ break;
-+ }
-+ mechParams->kdf = kdf;
-+ if (sharedData == NULL) {
-+ mechParams->ulSharedDataLen = 0;
-+ mechParams->pSharedData = NULL;
-+ } else {
-+ mechParams->ulSharedDataLen = sharedData->len;
-+ mechParams->pSharedData = sharedData->data;
-+ }
-+ mechParams->ulPublicDataLen = pubKey->u.ec.publicValue.len;
-+ mechParams->pPublicData = pubKey->u.ec.publicValue.data;
-+
-+ mechanism.mechanism = derive;
-+ mechanism.pParameter = mechParams;
-+ mechanism.ulParameterLen = sizeof(CK_ECDH1_DERIVE_PARAMS);
-+
-+ pk11_EnterKeyMonitor(symKey);
-+ crv = PK11_GETTAB(slot)->C_DeriveKey(symKey->session,
-+ &mechanism, privKey->pkcs11ID, keyTemplate,
-+ templateCount, &symKey->objectID);
-+ pk11_ExitKeyMonitor(symKey);
-+
-+ PORT_ZFree(mechParams, sizeof(CK_ECDH1_DERIVE_PARAMS));
-+
-+ if (crv == CKR_OK) return symKey;
-+ PORT_SetError( PK11_MapError(crv) );
-+ }
-+#else
-+ case ecKey:
-+ break;
-+#endif /* NSS_ENABLE_ECC */
-+ }
-+
-+ PK11_FreeSymKey(symKey);
-+ return NULL;
-+}
-+
-+/*
-+ * this little function uses the Decrypt function to unwrap a key, just in
-+ * case we are having problem with unwrap. NOTE: The key size may
-+ * not be preserved properly for some algorithms!
-+ */
-+static PK11SymKey *
-+pk11_HandUnwrap(PK11SlotInfo *slot, CK_OBJECT_HANDLE wrappingKey,
-+ CK_MECHANISM *mech, SECItem *inKey, CK_MECHANISM_TYPE target,
-+ CK_ATTRIBUTE *keyTemplate, unsigned int templateCount,
-+ int key_size, void * wincx, CK_RV *crvp, PRBool isPerm)
-+{
-+ CK_ULONG len;
-+ SECItem outKey;
-+ PK11SymKey *symKey;
-+ CK_RV crv;
-+ PRBool owner = PR_TRUE;
-+ CK_SESSION_HANDLE session;
-+
-+ /* remove any VALUE_LEN parameters */
-+ if (keyTemplate[templateCount-1].type == CKA_VALUE_LEN) {
-+ templateCount--;
-+ }
-+
-+ /* keys are almost always aligned, but if we get this far,
-+ * we've gone above and beyond anyway... */
-+ outKey.data = (unsigned char*)PORT_Alloc(inKey->len);
-+ if (outKey.data == NULL) {
-+ PORT_SetError( SEC_ERROR_NO_MEMORY );
-+ if (crvp) *crvp = CKR_HOST_MEMORY;
-+ return NULL;
-+ }
-+ len = inKey->len;
-+
-+ /* use NULL IV's for wrapping */
-+ session = pk11_GetNewSession(slot,&owner);
-+ if (!owner || !(slot->isThreadSafe)) PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_DecryptInit(session,mech,wrappingKey);
-+ if (crv != CKR_OK) {
-+ if (!owner || !(slot->isThreadSafe)) PK11_ExitSlotMonitor(slot);
-+ pk11_CloseSession(slot,session,owner);
-+ PORT_Free(outKey.data);
-+ PORT_SetError( PK11_MapError(crv) );
-+ if (crvp) *crvp =crv;
-+ return NULL;
-+ }
-+ crv = PK11_GETTAB(slot)->C_Decrypt(session,inKey->data,inKey->len,
-+ outKey.data, &len);
-+ if (!owner || !(slot->isThreadSafe)) PK11_ExitSlotMonitor(slot);
-+ pk11_CloseSession(slot,session,owner);
-+ if (crv != CKR_OK) {
-+ PORT_Free(outKey.data);
-+ PORT_SetError( PK11_MapError(crv) );
-+ if (crvp) *crvp =crv;
-+ return NULL;
-+ }
-+
-+ outKey.len = (key_size == 0) ? len : key_size;
-+ outKey.type = siBuffer;
-+
-+ if (PK11_DoesMechanism(slot,target)) {
-+ symKey = pk11_ImportSymKeyWithTempl(slot, target, PK11_OriginUnwrap,
-+ isPerm, keyTemplate,
-+ templateCount, &outKey, wincx);
-+ } else {
-+ slot = PK11_GetBestSlot(target,wincx);
-+ if (slot == NULL) {
-+ PORT_SetError( SEC_ERROR_NO_MODULE );
-+ PORT_Free(outKey.data);
-+ if (crvp) *crvp = CKR_DEVICE_ERROR;
-+ return NULL;
-+ }
-+ symKey = pk11_ImportSymKeyWithTempl(slot, target, PK11_OriginUnwrap,
-+ isPerm, keyTemplate,
-+ templateCount, &outKey, wincx);
-+ PK11_FreeSlot(slot);
-+ }
-+ PORT_Free(outKey.data);
-+
-+ if (crvp) *crvp = symKey? CKR_OK : CKR_DEVICE_ERROR;
-+ return symKey;
-+}
-+
-+/*
-+ * The wrap/unwrap function is pretty much the same for private and
-+ * public keys. It's just getting the Object ID and slot right. This is
-+ * the combined unwrap function.
-+ */
-+static PK11SymKey *
-+pk11_AnyUnwrapKey(PK11SlotInfo *slot, CK_OBJECT_HANDLE wrappingKey,
-+ CK_MECHANISM_TYPE wrapType, SECItem *param, SECItem *wrappedKey,
-+ CK_MECHANISM_TYPE target, CK_ATTRIBUTE_TYPE operation, int keySize,
-+ void *wincx, CK_ATTRIBUTE *userAttr, unsigned int numAttrs, PRBool isPerm)
-+{
-+ PK11SymKey * symKey;
-+ SECItem * param_free = NULL;
-+ CK_BBOOL cktrue = CK_TRUE;
-+ CK_OBJECT_CLASS keyClass = CKO_SECRET_KEY;
-+ CK_KEY_TYPE keyType = CKK_GENERIC_SECRET;
-+ CK_ULONG valueLen = 0;
-+ CK_MECHANISM mechanism;
-+ CK_SESSION_HANDLE rwsession;
-+ CK_RV crv;
-+ CK_MECHANISM_INFO mechanism_info;
-+ CK_ATTRIBUTE keyTemplate[MAX_TEMPL_ATTRS];
-+ CK_ATTRIBUTE * attrs = keyTemplate;
-+ unsigned int templateCount;
-+
-+ if (numAttrs > MAX_TEMPL_ATTRS) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return NULL;
-+ }
-+ /* first copy caller attributes in. */
-+ for (templateCount = 0; templateCount < numAttrs; ++templateCount) {
-+ *attrs++ = *userAttr++;
-+ }
-+
-+ /* We only add the following attributes to the template if the caller
-+ ** didn't already supply them.
-+ */
-+ if (!pk11_FindAttrInTemplate(keyTemplate, numAttrs, CKA_CLASS)) {
-+ PK11_SETATTRS(attrs, CKA_CLASS, &keyClass, sizeof keyClass);
-+ attrs++;
-+ }
-+ if (!pk11_FindAttrInTemplate(keyTemplate, numAttrs, CKA_KEY_TYPE)) {
-+ keyType = PK11_GetKeyType(target, keySize);
-+ PK11_SETATTRS(attrs, CKA_KEY_TYPE, &keyType, sizeof keyType );
-+ attrs++;
-+ }
-+ if ((operation != CKA_FLAGS_ONLY) &&
-+ !pk11_FindAttrInTemplate(keyTemplate, numAttrs, operation)) {
-+ PK11_SETATTRS(attrs, operation, &cktrue, 1); attrs++;
-+ }
-+
-+ /*
-+ * must be last in case we need to use this template to import the key
-+ */
-+ if (keySize > 0 &&
-+ !pk11_FindAttrInTemplate(keyTemplate, numAttrs, CKA_VALUE_LEN)) {
-+ valueLen = (CK_ULONG)keySize;
-+ PK11_SETATTRS(attrs, CKA_VALUE_LEN, &valueLen, sizeof valueLen);
-+ attrs++;
-+ }
-+
-+ templateCount = attrs - keyTemplate;
-+ PR_ASSERT(templateCount <= sizeof(keyTemplate)/sizeof(CK_ATTRIBUTE));
-+
-+
-+ /* find out if we can do wrap directly. Because the RSA case if *very*
-+ * common, cache the results for it. */
-+ if ((wrapType == CKM_RSA_PKCS) && (slot->hasRSAInfo)) {
-+ mechanism_info.flags = slot->RSAInfoFlags;
-+ } else {
-+ if (!slot->isThreadSafe) PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_GetMechanismInfo(slot->slotID,wrapType,
-+ &mechanism_info);
-+ if (!slot->isThreadSafe) PK11_ExitSlotMonitor(slot);
-+ if (crv != CKR_OK) {
-+ mechanism_info.flags = 0;
-+ }
-+ if (wrapType == CKM_RSA_PKCS) {
-+ slot->RSAInfoFlags = mechanism_info.flags;
-+ slot->hasRSAInfo = PR_TRUE;
-+ }
-+ }
-+
-+ /* initialize the mechanism structure */
-+ mechanism.mechanism = wrapType;
-+ /* use NULL IV's for wrapping */
-+ if (param == NULL)
-+ param = param_free = PK11_ParamFromIV(wrapType,NULL);
-+ if (param) {
-+ mechanism.pParameter = param->data;
-+ mechanism.ulParameterLen = param->len;
-+ } else {
-+ mechanism.pParameter = NULL;
-+ mechanism.ulParameterLen = 0;
-+ }
-+
-+ if ((mechanism_info.flags & CKF_DECRYPT)
-+ && !PK11_DoesMechanism(slot,target)) {
-+ symKey = pk11_HandUnwrap(slot, wrappingKey, &mechanism, wrappedKey,
-+ target, keyTemplate, templateCount, keySize,
-+ wincx, &crv, isPerm);
-+ if (symKey) {
-+ if (param_free) SECITEM_FreeItem(param_free,PR_TRUE);
-+ return symKey;
-+ }
-+ /*
-+ * if the RSA OP simply failed, don't try to unwrap again
-+ * with this module.
-+ */
-+ if (crv == CKR_DEVICE_ERROR){
-+ if (param_free) SECITEM_FreeItem(param_free,PR_TRUE);
-+ return NULL;
-+ }
-+ /* fall through, maybe they incorrectly set CKF_DECRYPT */
-+ }
-+
-+ /* get our key Structure */
-+ symKey = PK11_CreateSymKey(slot,target,!isPerm,wincx);
-+ if (symKey == NULL) {
-+ if (param_free) SECITEM_FreeItem(param_free,PR_TRUE);
-+ return NULL;
-+ }
-+
-+ symKey->size = keySize;
-+ symKey->origin = PK11_OriginUnwrap;
-+
-+ if (isPerm) {
-+ rwsession = PK11_GetRWSession(slot);
-+ } else {
-+ pk11_EnterKeyMonitor(symKey);
-+ rwsession = symKey->session;
-+ }
-+ crv = PK11_GETTAB(slot)->C_UnwrapKey(rwsession,&mechanism,wrappingKey,
-+ wrappedKey->data, wrappedKey->len, keyTemplate, templateCount,
-+ &symKey->objectID);
-+ if (isPerm) {
-+ PK11_RestoreROSession(slot, rwsession);
-+ } else {
-+ pk11_ExitKeyMonitor(symKey);
-+ }
-+ if (param_free) SECITEM_FreeItem(param_free,PR_TRUE);
-+ if ((crv != CKR_OK) && (crv != CKR_DEVICE_ERROR)) {
-+ /* try hand Unwrapping */
-+ PK11_FreeSymKey(symKey);
-+ symKey = pk11_HandUnwrap(slot, wrappingKey, &mechanism, wrappedKey,
-+ target, keyTemplate, templateCount, keySize,
-+ wincx, NULL, isPerm);
-+ }
-+
-+ return symKey;
-+}
-+
-+/* use a symetric key to unwrap another symetric key */
-+PK11SymKey *
-+PK11_UnwrapSymKey( PK11SymKey *wrappingKey, CK_MECHANISM_TYPE wrapType,
-+ SECItem *param, SECItem *wrappedKey,
-+ CK_MECHANISM_TYPE target, CK_ATTRIBUTE_TYPE operation,
-+ int keySize)
-+{
-+ return pk11_AnyUnwrapKey(wrappingKey->slot, wrappingKey->objectID,
-+ wrapType, param, wrappedKey, target, operation, keySize,
-+ wrappingKey->cx, NULL, 0, PR_FALSE);
-+}
-+
-+/* use a symetric key to unwrap another symetric key */
-+PK11SymKey *
-+PK11_UnwrapSymKeyWithFlags(PK11SymKey *wrappingKey, CK_MECHANISM_TYPE wrapType,
-+ SECItem *param, SECItem *wrappedKey,
-+ CK_MECHANISM_TYPE target, CK_ATTRIBUTE_TYPE operation,
-+ int keySize, CK_FLAGS flags)
-+{
-+ CK_BBOOL ckTrue = CK_TRUE;
-+ CK_ATTRIBUTE keyTemplate[MAX_TEMPL_ATTRS];
-+ unsigned int templateCount;
-+
-+ templateCount = pk11_FlagsToAttributes(flags, keyTemplate, &ckTrue);
-+ return pk11_AnyUnwrapKey(wrappingKey->slot, wrappingKey->objectID,
-+ wrapType, param, wrappedKey, target, operation, keySize,
-+ wrappingKey->cx, keyTemplate, templateCount, PR_FALSE);
-+}
-+
-+PK11SymKey *
-+PK11_UnwrapSymKeyWithFlagsPerm(PK11SymKey *wrappingKey,
-+ CK_MECHANISM_TYPE wrapType,
-+ SECItem *param, SECItem *wrappedKey,
-+ CK_MECHANISM_TYPE target, CK_ATTRIBUTE_TYPE operation,
-+ int keySize, CK_FLAGS flags, PRBool isPerm)
-+{
-+ CK_BBOOL cktrue = CK_TRUE;
-+ CK_ATTRIBUTE keyTemplate[MAX_TEMPL_ATTRS];
-+ CK_ATTRIBUTE *attrs;
-+ unsigned int templateCount;
-+
-+ attrs = keyTemplate;
-+ if (isPerm) {
-+ PK11_SETATTRS(attrs, CKA_TOKEN, &cktrue, sizeof(CK_BBOOL)); attrs++;
-+ }
-+ templateCount = attrs-keyTemplate;
-+ templateCount += pk11_FlagsToAttributes(flags, attrs, &cktrue);
-+
-+ return pk11_AnyUnwrapKey(wrappingKey->slot, wrappingKey->objectID,
-+ wrapType, param, wrappedKey, target, operation, keySize,
-+ wrappingKey->cx, keyTemplate, templateCount, isPerm);
-+}
-+
-+
-+/* unwrap a symetric key with a private key. */
-+PK11SymKey *
-+PK11_PubUnwrapSymKey(SECKEYPrivateKey *wrappingKey, SECItem *wrappedKey,
-+ CK_MECHANISM_TYPE target, CK_ATTRIBUTE_TYPE operation, int keySize)
-+{
-+ CK_MECHANISM_TYPE wrapType = pk11_mapWrapKeyType(wrappingKey->keyType);
-+
-+ PK11_HandlePasswordCheck(wrappingKey->pkcs11Slot,wrappingKey->wincx);
-+
-+ return pk11_AnyUnwrapKey(wrappingKey->pkcs11Slot, wrappingKey->pkcs11ID,
-+ wrapType, NULL, wrappedKey, target, operation, keySize,
-+ wrappingKey->wincx, NULL, 0, PR_FALSE);
-+}
-+
-+/* unwrap a symetric key with a private key. */
-+PK11SymKey *
-+PK11_PubUnwrapSymKeyWithFlags(SECKEYPrivateKey *wrappingKey,
-+ SECItem *wrappedKey, CK_MECHANISM_TYPE target,
-+ CK_ATTRIBUTE_TYPE operation, int keySize, CK_FLAGS flags)
-+{
-+ CK_MECHANISM_TYPE wrapType = pk11_mapWrapKeyType(wrappingKey->keyType);
-+ CK_BBOOL ckTrue = CK_TRUE;
-+ CK_ATTRIBUTE keyTemplate[MAX_TEMPL_ATTRS];
-+ unsigned int templateCount;
-+
-+ templateCount = pk11_FlagsToAttributes(flags, keyTemplate, &ckTrue);
-+
-+ PK11_HandlePasswordCheck(wrappingKey->pkcs11Slot,wrappingKey->wincx);
-+
-+ return pk11_AnyUnwrapKey(wrappingKey->pkcs11Slot, wrappingKey->pkcs11ID,
-+ wrapType, NULL, wrappedKey, target, operation, keySize,
-+ wrappingKey->wincx, keyTemplate, templateCount, PR_FALSE);
-+}
-+
-+PK11SymKey *
-+PK11_PubUnwrapSymKeyWithFlagsPerm(SECKEYPrivateKey *wrappingKey,
-+ SECItem *wrappedKey, CK_MECHANISM_TYPE target,
-+ CK_ATTRIBUTE_TYPE operation, int keySize,
-+ CK_FLAGS flags, PRBool isPerm)
-+{
-+ CK_MECHANISM_TYPE wrapType = pk11_mapWrapKeyType(wrappingKey->keyType);
-+ CK_BBOOL cktrue = CK_TRUE;
-+ CK_ATTRIBUTE keyTemplate[MAX_TEMPL_ATTRS];
-+ CK_ATTRIBUTE *attrs;
-+ unsigned int templateCount;
-+
-+ attrs = keyTemplate;
-+ if (isPerm) {
-+ PK11_SETATTRS(attrs, CKA_TOKEN, &cktrue, sizeof(CK_BBOOL)); attrs++;
-+ }
-+ templateCount = attrs-keyTemplate;
-+
-+ templateCount += pk11_FlagsToAttributes(flags, attrs, &cktrue);
-+
-+ PK11_HandlePasswordCheck(wrappingKey->pkcs11Slot,wrappingKey->wincx);
-+
-+ return pk11_AnyUnwrapKey(wrappingKey->pkcs11Slot, wrappingKey->pkcs11ID,
-+ wrapType, NULL, wrappedKey, target, operation, keySize,
-+ wrappingKey->wincx, keyTemplate, templateCount, isPerm);
-+}
-+
-+/*
-+ * Recover the Signed data. We need this because our old verify can't
-+ * figure out which hash algorithm to use until we decryptted this.
-+ */
-+SECStatus
-+PK11_VerifyRecover(SECKEYPublicKey *key,
-+ SECItem *sig, SECItem *dsig, void *wincx)
-+{
-+ PK11SlotInfo *slot = key->pkcs11Slot;
-+ CK_OBJECT_HANDLE id = key->pkcs11ID;
-+ CK_MECHANISM mech = {0, NULL, 0 };
-+ PRBool owner = PR_TRUE;
-+ CK_SESSION_HANDLE session;
-+ CK_ULONG len;
-+ CK_RV crv;
-+
-+ mech.mechanism = pk11_mapSignKeyType(key->keyType);
-+
-+ if (slot == NULL) {
-+ slot = PK11_GetBestSlot(mech.mechanism,wincx);
-+ if (slot == NULL) {
-+ PORT_SetError( SEC_ERROR_NO_MODULE );
-+ return SECFailure;
-+ }
-+ id = PK11_ImportPublicKey(slot,key,PR_FALSE);
-+ } else {
-+ PK11_ReferenceSlot(slot);
-+ }
-+
-+ session = pk11_GetNewSession(slot,&owner);
-+ if (!owner || !(slot->isThreadSafe)) PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_VerifyRecoverInit(session,&mech,id);
-+ if (crv != CKR_OK) {
-+ if (!owner || !(slot->isThreadSafe)) PK11_ExitSlotMonitor(slot);
-+ pk11_CloseSession(slot,session,owner);
-+ PORT_SetError( PK11_MapError(crv) );
-+ PK11_FreeSlot(slot);
-+ return SECFailure;
-+ }
-+ len = dsig->len;
-+ crv = PK11_GETTAB(slot)->C_VerifyRecover(session,sig->data,
-+ sig->len, dsig->data, &len);
-+ if (!owner || !(slot->isThreadSafe)) PK11_ExitSlotMonitor(slot);
-+ pk11_CloseSession(slot,session,owner);
-+ dsig->len = len;
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ PK11_FreeSlot(slot);
-+ return SECFailure;
-+ }
-+ PK11_FreeSlot(slot);
-+ return SECSuccess;
-+}
-+
-+/*
-+ * verify a signature from its hash.
-+ */
-+SECStatus
-+PK11_Verify(SECKEYPublicKey *key, SECItem *sig, SECItem *hash, void *wincx)
-+{
-+ PK11SlotInfo *slot = key->pkcs11Slot;
-+ CK_OBJECT_HANDLE id = key->pkcs11ID;
-+ CK_MECHANISM mech = {0, NULL, 0 };
-+ PRBool owner = PR_TRUE;
-+ CK_SESSION_HANDLE session;
-+ CK_RV crv;
-+
-+ mech.mechanism = pk11_mapSignKeyType(key->keyType);
-+
-+ if (slot == NULL) {
-+ slot = PK11_GetBestSlot(mech.mechanism,wincx);
-+
-+ if (slot == NULL) {
-+ PORT_SetError( SEC_ERROR_NO_MODULE );
-+ return SECFailure;
-+ }
-+ id = PK11_ImportPublicKey(slot,key,PR_FALSE);
-+
-+ } else {
-+ PK11_ReferenceSlot(slot);
-+ }
-+
-+ session = pk11_GetNewSession(slot,&owner);
-+ if (!owner || !(slot->isThreadSafe)) PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_VerifyInit(session,&mech,id);
-+ if (crv != CKR_OK) {
-+ if (!owner || !(slot->isThreadSafe)) PK11_ExitSlotMonitor(slot);
-+ pk11_CloseSession(slot,session,owner);
-+ PK11_FreeSlot(slot);
-+ PORT_SetError( PK11_MapError(crv) );
-+ return SECFailure;
-+ }
-+ crv = PK11_GETTAB(slot)->C_Verify(session,hash->data,
-+ hash->len, sig->data, sig->len);
-+ if (!owner || !(slot->isThreadSafe)) PK11_ExitSlotMonitor(slot);
-+ pk11_CloseSession(slot,session,owner);
-+ PK11_FreeSlot(slot);
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ return SECFailure;
-+ }
-+ return SECSuccess;
-+}
-+
-+/*
-+ * sign a hash. The algorithm is determined by the key.
-+ */
-+SECStatus
-+PK11_Sign(SECKEYPrivateKey *key, SECItem *sig, SECItem *hash)
-+{
-+ PK11SlotInfo *slot = key->pkcs11Slot;
-+ CK_MECHANISM mech = {0, NULL, 0 };
-+ PRBool owner = PR_TRUE;
-+ CK_SESSION_HANDLE session;
-+ CK_ULONG len;
-+ CK_RV crv;
-+
-+ mech.mechanism = pk11_mapSignKeyType(key->keyType);
-+
-+ PK11_HandlePasswordCheck(slot, key->wincx);
-+
-+ session = pk11_GetNewSession(slot,&owner);
-+ if (!owner || !(slot->isThreadSafe)) PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_SignInit(session,&mech,key->pkcs11ID);
-+ if (crv != CKR_OK) {
-+ if (!owner || !(slot->isThreadSafe)) PK11_ExitSlotMonitor(slot);
-+ pk11_CloseSession(slot,session,owner);
-+ PORT_SetError( PK11_MapError(crv) );
-+ return SECFailure;
-+ }
-+ len = sig->len;
-+ crv = PK11_GETTAB(slot)->C_Sign(session,hash->data,
-+ hash->len, sig->data, &len);
-+ if (!owner || !(slot->isThreadSafe)) PK11_ExitSlotMonitor(slot);
-+ pk11_CloseSession(slot,session,owner);
-+ sig->len = len;
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ return SECFailure;
-+ }
-+ return SECSuccess;
-+}
-+
-+/*
-+ * Now SSL 2.0 uses raw RSA stuff. These next to functions *must* use
-+ * RSA keys, or they'll fail. We do the checks up front. If anyone comes
-+ * up with a meaning for rawdecrypt for any other public key operation,
-+ * then we need to move this check into some of PK11_PubDecrypt callers,
-+ * (namely SSL 2.0).
-+ */
-+SECStatus
-+PK11_PubDecryptRaw(SECKEYPrivateKey *key, unsigned char *data,
-+ unsigned *outLen, unsigned int maxLen, unsigned char *enc,
-+ unsigned encLen)
-+{
-+ PK11SlotInfo *slot = key->pkcs11Slot;
-+ CK_MECHANISM mech = {CKM_RSA_X_509, NULL, 0 };
-+ CK_ULONG out = maxLen;
-+ PRBool owner = PR_TRUE;
-+ CK_SESSION_HANDLE session;
-+ CK_RV crv;
-+
-+ if (key->keyType != rsaKey) {
-+ PORT_SetError( SEC_ERROR_INVALID_KEY );
-+ return SECFailure;
-+ }
-+
-+ /* Why do we do a PK11_handle check here? for simple
-+ * decryption? .. because the user may have asked for 'ask always'
-+ * and this is a private key operation. In practice, thought, it's mute
-+ * since only servers wind up using this function */
-+ PK11_HandlePasswordCheck(slot, key->wincx);
-+ session = pk11_GetNewSession(slot,&owner);
-+ if (!owner || !(slot->isThreadSafe)) PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_DecryptInit(session,&mech,key->pkcs11ID);
-+ if (crv != CKR_OK) {
-+ if (!owner || !(slot->isThreadSafe)) PK11_ExitSlotMonitor(slot);
-+ pk11_CloseSession(slot,session,owner);
-+ PORT_SetError( PK11_MapError(crv) );
-+ return SECFailure;
-+ }
-+ crv = PK11_GETTAB(slot)->C_Decrypt(session,enc, encLen,
-+ data, &out);
-+ if (!owner || !(slot->isThreadSafe)) PK11_ExitSlotMonitor(slot);
-+ pk11_CloseSession(slot,session,owner);
-+ *outLen = out;
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ return SECFailure;
-+ }
-+ return SECSuccess;
-+}
-+
-+/* The encrypt version of the above function */
-+SECStatus
-+PK11_PubEncryptRaw(SECKEYPublicKey *key, unsigned char *enc,
-+ unsigned char *data, unsigned dataLen, void *wincx)
-+{
-+ PK11SlotInfo *slot;
-+ CK_MECHANISM mech = {CKM_RSA_X_509, NULL, 0 };
-+ CK_OBJECT_HANDLE id;
-+ CK_ULONG out = dataLen;
-+ PRBool owner = PR_TRUE;
-+ CK_SESSION_HANDLE session;
-+ CK_RV crv;
-+
-+ if (key->keyType != rsaKey) {
-+ PORT_SetError( SEC_ERROR_BAD_KEY );
-+ return SECFailure;
-+ }
-+
-+ slot = PK11_GetBestSlot(mech.mechanism, wincx);
-+ if (slot == NULL) {
-+ PORT_SetError( SEC_ERROR_NO_MODULE );
-+ return SECFailure;
-+ }
-+
-+ id = PK11_ImportPublicKey(slot,key,PR_FALSE);
-+
-+ session = pk11_GetNewSession(slot,&owner);
-+ if (!owner || !(slot->isThreadSafe)) PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_EncryptInit(session,&mech,id);
-+ if (crv != CKR_OK) {
-+ if (!owner || !(slot->isThreadSafe)) PK11_ExitSlotMonitor(slot);
-+ pk11_CloseSession(slot,session,owner);
-+ PK11_FreeSlot(slot);
-+ PORT_SetError( PK11_MapError(crv) );
-+ return SECFailure;
-+ }
-+ crv = PK11_GETTAB(slot)->C_Encrypt(session,data,dataLen,enc,&out);
-+ if (!owner || !(slot->isThreadSafe)) PK11_ExitSlotMonitor(slot);
-+ pk11_CloseSession(slot,session,owner);
-+ PK11_FreeSlot(slot);
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ return SECFailure;
-+ }
-+ return SECSuccess;
-+}
-+
-+
-+/**********************************************************************
-+ *
-+ * Now Deal with Crypto Contexts
-+ *
-+ **********************************************************************/
-+
-+/*
-+ * the monitors...
-+ */
-+void
-+PK11_EnterContextMonitor(PK11Context *cx) {
-+ /* if we own the session and our slot is ThreadSafe, only monitor
-+ * the Context */
-+ if ((cx->ownSession) && (cx->slot->isThreadSafe)) {
-+ /* Should this use monitors instead? */
-+ PZ_Lock(cx->sessionLock);
-+ } else {
-+ PK11_EnterSlotMonitor(cx->slot);
-+ }
-+}
-+
-+void
-+PK11_ExitContextMonitor(PK11Context *cx) {
-+ /* if we own the session and our slot is ThreadSafe, only monitor
-+ * the Context */
-+ if ((cx->ownSession) && (cx->slot->isThreadSafe)) {
-+ /* Should this use monitors instead? */
-+ PZ_Unlock(cx->sessionLock);
-+ } else {
-+ PK11_ExitSlotMonitor(cx->slot);
-+ }
-+}
-+
-+/*
-+ * Free up a Cipher Context
-+ */
-+void
-+PK11_DestroyContext(PK11Context *context, PRBool freeit)
-+{
-+ pk11_CloseSession(context->slot,context->session,context->ownSession);
-+ /* initialize the critical fields of the context */
-+ if (context->savedData != NULL ) PORT_Free(context->savedData);
-+ if (context->key) PK11_FreeSymKey(context->key);
-+ if (context->param && context->param != &pk11_null_params)
-+ SECITEM_FreeItem(context->param, PR_TRUE);
-+ if (context->sessionLock) PZ_DestroyLock(context->sessionLock);
-+ PK11_FreeSlot(context->slot);
-+ if (freeit) PORT_Free(context);
-+}
-+
-+/*
-+ * save the current context. Allocate Space if necessary.
-+ */
-+static unsigned char *
-+pk11_saveContextHelper(PK11Context *context, unsigned char *buffer,
-+ unsigned long *savedLength)
-+{
-+ CK_RV crv;
-+
-+ /* If buffer is NULL, this will get the length */
-+ crv = PK11_GETTAB(context->slot)->C_GetOperationState(context->session,
-+ (CK_BYTE_PTR)buffer,
-+ savedLength);
-+ if (!buffer || (crv == CKR_BUFFER_TOO_SMALL)) {
-+ /* the given buffer wasn't big enough (or was NULL), but we
-+ * have the length, so try again with a new buffer and the
-+ * correct length
-+ */
-+ unsigned long bufLen = *savedLength;
-+ buffer = PORT_Alloc(bufLen);
-+ if (buffer == NULL) {
-+ return (unsigned char *)NULL;
-+ }
-+ crv = PK11_GETTAB(context->slot)->C_GetOperationState(
-+ context->session,
-+ (CK_BYTE_PTR)buffer,
-+ savedLength);
-+ if (crv != CKR_OK) {
-+ PORT_ZFree(buffer, bufLen);
-+ }
-+ }
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ return (unsigned char *)NULL;
-+ }
-+ return buffer;
-+}
-+
-+void *
-+pk11_saveContext(PK11Context *context, void *space, unsigned long *savedLength)
-+{
-+ return pk11_saveContextHelper(context,
-+ (unsigned char *)space, savedLength);
-+}
-+
-+/*
-+ * restore the current context
-+ */
-+SECStatus
-+pk11_restoreContext(PK11Context *context,void *space, unsigned long savedLength)
-+{
-+ CK_RV crv;
-+ CK_OBJECT_HANDLE objectID = (context->key) ? context->key->objectID:
-+ CK_INVALID_HANDLE;
-+
-+ PORT_Assert(space != NULL);
-+ if (space == NULL) {
-+ PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
-+ return SECFailure;
-+ }
-+ crv = PK11_GETTAB(context->slot)->C_SetOperationState(context->session,
-+ (CK_BYTE_PTR)space, savedLength, objectID, 0);
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv));
-+ return SECFailure;
-+ }
-+ return SECSuccess;
-+}
-+
-+SECStatus pk11_Finalize(PK11Context *context);
-+
-+/*
-+ * Context initialization. Used by all flavors of CreateContext
-+ */
-+static SECStatus
-+pk11_context_init(PK11Context *context, CK_MECHANISM *mech_info)
-+{
-+ CK_RV crv;
-+ PK11SymKey *symKey = context->key;
-+ SECStatus rv = SECSuccess;
-+
-+ switch (context->operation) {
-+ case CKA_ENCRYPT:
-+ crv=PK11_GETTAB(context->slot)->C_EncryptInit(context->session,
-+ mech_info, symKey->objectID);
-+ break;
-+ case CKA_DECRYPT:
-+ if (context->fortezzaHack) {
-+ CK_ULONG count = 0;;
-+ /* generate the IV for fortezza */
-+ crv=PK11_GETTAB(context->slot)->C_EncryptInit(context->session,
-+ mech_info, symKey->objectID);
-+ if (crv != CKR_OK) break;
-+ PK11_GETTAB(context->slot)->C_EncryptFinal(context->session,
-+ NULL, &count);
-+ }
-+ crv=PK11_GETTAB(context->slot)->C_DecryptInit(context->session,
-+ mech_info, symKey->objectID);
-+ break;
-+ case CKA_SIGN:
-+ crv=PK11_GETTAB(context->slot)->C_SignInit(context->session,
-+ mech_info, symKey->objectID);
-+ break;
-+ case CKA_VERIFY:
-+ crv=PK11_GETTAB(context->slot)->C_SignInit(context->session,
-+ mech_info, symKey->objectID);
-+ break;
-+ case CKA_DIGEST:
-+ crv=PK11_GETTAB(context->slot)->C_DigestInit(context->session,
-+ mech_info);
-+ break;
-+ default:
-+ crv = CKR_OPERATION_NOT_INITIALIZED;
-+ break;
-+ }
-+
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ return SECFailure;
-+ }
-+
-+ /*
-+ * handle session starvation case.. use our last session to multiplex
-+ */
-+ if (!context->ownSession) {
-+ context->savedData = pk11_saveContext(context,context->savedData,
-+ &context->savedLength);
-+ if (context->savedData == NULL) rv = SECFailure;
-+ /* clear out out session for others to use */
-+ pk11_Finalize(context);
-+ }
-+ return rv;
-+}
-+
-+
-+/*
-+ * Common Helper Function do come up with a new context.
-+ */
-+static PK11Context *pk11_CreateNewContextInSlot(CK_MECHANISM_TYPE type,
-+ PK11SlotInfo *slot, CK_ATTRIBUTE_TYPE operation, PK11SymKey *symKey,
-+ SECItem *param)
-+{
-+ CK_MECHANISM mech_info;
-+ PK11Context *context;
-+ SECStatus rv;
-+
-+ PORT_Assert(slot != NULL);
-+ if (!slot) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return NULL;
-+ }
-+ context = (PK11Context *) PORT_Alloc(sizeof(PK11Context));
-+ if (context == NULL) {
-+ return NULL;
-+ }
-+
-+ /* now deal with the fortezza hack... the fortezza hack is an attempt
-+ * to get around the issue of the card not allowing you to do a FORTEZZA
-+ * LoadIV/Encrypt, which was added because such a combination could be
-+ * use to circumvent the key escrow system. Unfortunately SSL needs to
-+ * do this kind of operation, so in SSL we do a loadIV (to verify it),
-+ * Then GenerateIV, and through away the first 8 bytes on either side
-+ * of the connection.*/
-+ context->fortezzaHack = PR_FALSE;
-+ if (type == CKM_SKIPJACK_CBC64) {
-+ if (symKey->origin == PK11_OriginFortezzaHack) {
-+ context->fortezzaHack = PR_TRUE;
-+ }
-+ }
-+
-+ /* initialize the critical fields of the context */
-+ context->operation = operation;
-+ context->key = symKey ? PK11_ReferenceSymKey(symKey) : NULL;
-+ context->slot = PK11_ReferenceSlot(slot);
-+ context->session = pk11_GetNewSession(slot,&context->ownSession);
-+ context->cx = symKey ? symKey->cx : NULL;
-+ /* get our session */
-+ context->savedData = NULL;
-+
-+ /* save the parameters so that some digesting stuff can do multiple
-+ * begins on a single context */
-+ context->type = type;
-+ if (param) {
-+ if (param->len > 0) {
-+ context->param = SECITEM_DupItem(param);
-+ } else {
-+ context->param = (SECItem *)&pk11_null_params;
-+ }
-+ } else {
-+ context->param = NULL;
-+ }
-+ context->init = PR_FALSE;
-+ context->sessionLock = PZ_NewLock(nssILockPK11cxt);
-+ if ((context->param == NULL) || (context->sessionLock == NULL)) {
-+ PK11_DestroyContext(context,PR_TRUE);
-+ return NULL;
-+ }
-+
-+ mech_info.mechanism = type;
-+ mech_info.pParameter = param->data;
-+ mech_info.ulParameterLen = param->len;
-+ PK11_EnterContextMonitor(context);
-+ rv = pk11_context_init(context,&mech_info);
-+ PK11_ExitContextMonitor(context);
-+
-+ if (rv != SECSuccess) {
-+ PK11_DestroyContext(context,PR_TRUE);
-+ return NULL;
-+ }
-+ context->init = PR_TRUE;
-+ return context;
-+}
-+
-+
-+/*
-+ * put together the various PK11_Create_Context calls used by different
-+ * parts of libsec.
-+ */
-+PK11Context *
-+__PK11_CreateContextByRawKey(PK11SlotInfo *slot, CK_MECHANISM_TYPE type,
-+ PK11Origin origin, CK_ATTRIBUTE_TYPE operation, SECItem *key,
-+ SECItem *param, void *wincx)
-+{
-+ PK11SymKey *symKey;
-+ PK11Context *context;
-+
-+ /* first get a slot */
-+ if (slot == NULL) {
-+ slot = PK11_GetBestSlot(type,wincx);
-+ if (slot == NULL) {
-+ PORT_SetError( SEC_ERROR_NO_MODULE );
-+ return NULL;
-+ }
-+ } else {
-+ PK11_ReferenceSlot(slot);
-+ }
-+
-+ /* now import the key */
-+ symKey = PK11_ImportSymKey(slot, type, origin, operation, key, wincx);
-+ if (symKey == NULL) return NULL;
-+
-+ context = PK11_CreateContextBySymKey(type, operation, symKey, param);
-+
-+ PK11_FreeSymKey(symKey);
-+ PK11_FreeSlot(slot);
-+
-+ return context;
-+}
-+
-+PK11Context *
-+PK11_CreateContextByRawKey(PK11SlotInfo *slot, CK_MECHANISM_TYPE type,
-+ PK11Origin origin, CK_ATTRIBUTE_TYPE operation, SECItem *key,
-+ SECItem *param, void *wincx)
-+{
-+ return __PK11_CreateContextByRawKey(slot, type, origin, operation,
-+ key, param, wincx);
-+}
-+
-+
-+/*
-+ * Create a context from a key. We really should make sure we aren't using
-+ * the same key in multiple session!
-+ */
-+PK11Context *
-+PK11_CreateContextBySymKey(CK_MECHANISM_TYPE type,CK_ATTRIBUTE_TYPE operation,
-+ PK11SymKey *symKey, SECItem *param)
-+{
-+ PK11SymKey *newKey;
-+ PK11Context *context;
-+
-+ /* if this slot doesn't support the mechanism, go to a slot that does */
-+ newKey = pk11_ForceSlot(symKey,type,operation);
-+ if (newKey == NULL) {
-+ PK11_ReferenceSymKey(symKey);
-+ } else {
-+ symKey = newKey;
-+ }
-+
-+
-+ /* Context Adopts the symKey.... */
-+ context = pk11_CreateNewContextInSlot(type, symKey->slot, operation, symKey,
-+ param);
-+ PK11_FreeSymKey(symKey);
-+ return context;
-+}
-+
-+/*
-+ * Digest contexts don't need keys, but the do need to find a slot.
-+ * Macing should use PK11_CreateContextBySymKey.
-+ */
-+PK11Context *
-+PK11_CreateDigestContext(SECOidTag hashAlg)
-+{
-+ /* digesting has to work without authentication to the slot */
-+ CK_MECHANISM_TYPE type;
-+ PK11SlotInfo *slot;
-+ PK11Context *context;
-+ SECItem param;
-+
-+ type = PK11_AlgtagToMechanism(hashAlg);
-+ slot = PK11_GetBestSlot(type, NULL);
-+ if (slot == NULL) {
-+ PORT_SetError( SEC_ERROR_NO_MODULE );
-+ return NULL;
-+ }
-+
-+ /* maybe should really be PK11_GenerateNewParam?? */
-+ param.data = NULL;
-+ param.len = 0;
-+ param.type = 0;
-+
-+ context = pk11_CreateNewContextInSlot(type, slot, CKA_DIGEST, NULL, &param);
-+ PK11_FreeSlot(slot);
-+ return context;
-+}
-+
-+/*
-+ * create a new context which is the clone of the state of old context.
-+ */
-+PK11Context * PK11_CloneContext(PK11Context *old)
-+{
-+ PK11Context *newcx;
-+ PRBool needFree = PR_FALSE;
-+ SECStatus rv = SECSuccess;
-+ void *data;
-+ unsigned long len;
-+
-+ newcx = pk11_CreateNewContextInSlot(old->type, old->slot, old->operation,
-+ old->key, old->param);
-+ if (newcx == NULL) return NULL;
-+
-+ /* now clone the save state. First we need to find the save state
-+ * of the old session. If the old context owns it's session,
-+ * the state needs to be saved, otherwise the state is in saveData. */
-+ if (old->ownSession) {
-+ PK11_EnterContextMonitor(old);
-+ data=pk11_saveContext(old,NULL,&len);
-+ PK11_ExitContextMonitor(old);
-+ needFree = PR_TRUE;
-+ } else {
-+ data = old->savedData;
-+ len = old->savedLength;
-+ }
-+
-+ if (data == NULL) {
-+ PK11_DestroyContext(newcx,PR_TRUE);
-+ return NULL;
-+ }
-+
-+ /* now copy that state into our new context. Again we have different
-+ * work if the new context owns it's own session. If it does, we
-+ * restore the state gathered above. If it doesn't, we copy the
-+ * saveData pointer... */
-+ if (newcx->ownSession) {
-+ PK11_EnterContextMonitor(newcx);
-+ rv = pk11_restoreContext(newcx,data,len);
-+ PK11_ExitContextMonitor(newcx);
-+ } else {
-+ PORT_Assert(newcx->savedData != NULL);
-+ if ((newcx->savedData == NULL) || (newcx->savedLength < len)) {
-+ PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
-+ rv = SECFailure;
-+ } else {
-+ PORT_Memcpy(newcx->savedData,data,len);
-+ newcx->savedLength = len;
-+ }
-+ }
-+
-+ if (needFree) PORT_Free(data);
-+
-+ if (rv != SECSuccess) {
-+ PK11_DestroyContext(newcx,PR_TRUE);
-+ return NULL;
-+ }
-+ return newcx;
-+}
-+
-+/*
-+ * save the current context state into a variable. Required to make FORTEZZA
-+ * work.
-+ */
-+SECStatus
-+PK11_SaveContext(PK11Context *cx,unsigned char *save,int *len, int saveLength)
-+{
-+ unsigned char * data = NULL;
-+ CK_ULONG length = saveLength;
-+
-+ if (cx->ownSession) {
-+ PK11_EnterContextMonitor(cx);
-+ data = pk11_saveContextHelper(cx, save, &length);
-+ PK11_ExitContextMonitor(cx);
-+ if (data) *len = length;
-+ } else if ((unsigned) saveLength >= cx->savedLength) {
-+ data = (unsigned char*)cx->savedData;
-+ if (cx->savedData) {
-+ PORT_Memcpy(save,cx->savedData,cx->savedLength);
-+ }
-+ *len = cx->savedLength;
-+ }
-+ if (data != NULL) {
-+ if (cx->ownSession) {
-+ PORT_ZFree(data, length);
-+ }
-+ return SECSuccess;
-+ } else {
-+ return SECFailure;
-+ }
-+}
-+
-+/* same as above, but may allocate the return buffer. */
-+unsigned char *
-+PK11_SaveContextAlloc(PK11Context *cx,
-+ unsigned char *preAllocBuf, unsigned int pabLen,
-+ unsigned int *stateLen)
-+{
-+ unsigned char *stateBuf = NULL;
-+ unsigned long length = (unsigned long)pabLen;
-+
-+ if (cx->ownSession) {
-+ PK11_EnterContextMonitor(cx);
-+ stateBuf = pk11_saveContextHelper(cx, preAllocBuf, &length);
-+ PK11_ExitContextMonitor(cx);
-+ *stateLen = (stateBuf != NULL) ? length : 0;
-+ } else {
-+ if (pabLen < cx->savedLength) {
-+ stateBuf = (unsigned char *)PORT_Alloc(cx->savedLength);
-+ if (!stateBuf) {
-+ return (unsigned char *)NULL;
-+ }
-+ } else {
-+ stateBuf = preAllocBuf;
-+ }
-+ if (cx->savedData) {
-+ PORT_Memcpy(stateBuf, cx->savedData, cx->savedLength);
-+ }
-+ *stateLen = cx->savedLength;
-+ }
-+ return stateBuf;
-+}
-+
-+/*
-+ * restore the context state into a new running context. Also required for
-+ * FORTEZZA .
-+ */
-+SECStatus
-+PK11_RestoreContext(PK11Context *cx,unsigned char *save,int len)
-+{
-+ SECStatus rv = SECSuccess;
-+ if (cx->ownSession) {
-+ PK11_EnterContextMonitor(cx);
-+ pk11_Finalize(cx);
-+ rv = pk11_restoreContext(cx,save,len);
-+ PK11_ExitContextMonitor(cx);
-+ } else {
-+ PORT_Assert(cx->savedData != NULL);
-+ if ((cx->savedData == NULL) || (cx->savedLength < (unsigned) len)) {
-+ PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
-+ rv = SECFailure;
-+ } else {
-+ PORT_Memcpy(cx->savedData,save,len);
-+ cx->savedLength = len;
-+ }
-+ }
-+ return rv;
-+}
-+
-+/*
-+ * This is to get FIPS compliance until we can convert
-+ * libjar to use PK11_ hashing functions. It returns PR_FALSE
-+ * if we can't get a PK11 Context.
-+ */
-+PRBool
-+PK11_HashOK(SECOidTag algID) {
-+ PK11Context *cx;
-+
-+ cx = PK11_CreateDigestContext(algID);
-+ if (cx == NULL) return PR_FALSE;
-+ PK11_DestroyContext(cx, PR_TRUE);
-+ return PR_TRUE;
-+}
-+
-+
-+
-+/*
-+ * start a new digesting or Mac'ing operation on this context
-+ */
-+SECStatus PK11_DigestBegin(PK11Context *cx)
-+{
-+ CK_MECHANISM mech_info;
-+ SECStatus rv;
-+
-+ if (cx->init == PR_TRUE) {
-+ return SECSuccess;
-+ }
-+
-+ /*
-+ * make sure the old context is clear first
-+ */
-+ PK11_EnterContextMonitor(cx);
-+ pk11_Finalize(cx);
-+
-+ mech_info.mechanism = cx->type;
-+ mech_info.pParameter = cx->param->data;
-+ mech_info.ulParameterLen = cx->param->len;
-+ rv = pk11_context_init(cx,&mech_info);
-+ PK11_ExitContextMonitor(cx);
-+
-+ if (rv != SECSuccess) {
-+ return SECFailure;
-+ }
-+ cx->init = PR_TRUE;
-+ return SECSuccess;
-+}
-+
-+SECStatus
-+PK11_HashBuf(SECOidTag hashAlg, unsigned char *out, unsigned char *in,
-+ int32 len) {
-+ PK11Context *context;
-+ unsigned int max_length;
-+ unsigned int out_length;
-+ SECStatus rv;
-+
-+ context = PK11_CreateDigestContext(hashAlg);
-+ if (context == NULL) return SECFailure;
-+
-+ rv = PK11_DigestBegin(context);
-+ if (rv != SECSuccess) {
-+ PK11_DestroyContext(context, PR_TRUE);
-+ return rv;
-+ }
-+
-+ rv = PK11_DigestOp(context, in, len);
-+ if (rv != SECSuccess) {
-+ PK11_DestroyContext(context, PR_TRUE);
-+ return rv;
-+ }
-+
-+ /* XXX This really should have been an argument to this function! */
-+ max_length = HASH_ResultLenByOidTag(hashAlg);
-+ PORT_Assert(max_length);
-+ if (!max_length)
-+ max_length = HASH_LENGTH_MAX;
-+
-+ rv = PK11_DigestFinal(context,out,&out_length,max_length);
-+ PK11_DestroyContext(context, PR_TRUE);
-+ return rv;
-+}
-+
-+
-+/*
-+ * execute a bulk encryption operation
-+ */
-+SECStatus
-+PK11_CipherOp(PK11Context *context, unsigned char * out, int *outlen,
-+ int maxout, unsigned char *in, int inlen)
-+{
-+ CK_RV crv = CKR_OK;
-+ CK_ULONG length = maxout;
-+ CK_ULONG offset =0;
-+ SECStatus rv = SECSuccess;
-+ unsigned char *saveOut = out;
-+ unsigned char *allocOut = NULL;
-+
-+ /* if we ran out of session, we need to restore our previously stored
-+ * state.
-+ */
-+ PK11_EnterContextMonitor(context);
-+ if (!context->ownSession) {
-+ rv = pk11_restoreContext(context,context->savedData,
-+ context->savedLength);
-+ if (rv != SECSuccess) {
-+ PK11_ExitContextMonitor(context);
-+ return rv;
-+ }
-+ }
-+
-+ /*
-+ * The fortezza hack is to send 8 extra bytes on the first encrypted and
-+ * loose them on the first decrypt.
-+ */
-+ if (context->fortezzaHack) {
-+ unsigned char random[8];
-+ if (context->operation == CKA_ENCRYPT) {
-+ PK11_ExitContextMonitor(context);
-+ rv = PK11_GenerateRandom(random,sizeof(random));
-+ PK11_EnterContextMonitor(context);
-+
-+ /* since we are offseting the output, we can't encrypt back into
-+ * the same buffer... allocate a temporary buffer just for this
-+ * call. */
-+ allocOut = out = (unsigned char*)PORT_Alloc(maxout);
-+ if (out == NULL) {
-+ PK11_ExitContextMonitor(context);
-+ return SECFailure;
-+ }
-+ crv = PK11_GETTAB(context->slot)->C_EncryptUpdate(context->session,
-+ random,sizeof(random),out,&length);
-+
-+ out += length;
-+ maxout -= length;
-+ offset = length;
-+ } else if (context->operation == CKA_DECRYPT) {
-+ length = sizeof(random);
-+ crv = PK11_GETTAB(context->slot)->C_DecryptUpdate(context->session,
-+ in,sizeof(random),random,&length);
-+ inlen -= length;
-+ in += length;
-+ context->fortezzaHack = PR_FALSE;
-+ }
-+ }
-+
-+ switch (context->operation) {
-+ case CKA_ENCRYPT:
-+ length = maxout;
-+ crv=PK11_GETTAB(context->slot)->C_EncryptUpdate(context->session,
-+ in, inlen, out, &length);
-+ length += offset;
-+ break;
-+ case CKA_DECRYPT:
-+ length = maxout;
-+ crv=PK11_GETTAB(context->slot)->C_DecryptUpdate(context->session,
-+ in, inlen, out, &length);
-+ break;
-+ default:
-+ crv = CKR_OPERATION_NOT_INITIALIZED;
-+ break;
-+ }
-+
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ *outlen = 0;
-+ rv = SECFailure;
-+ } else {
-+ *outlen = length;
-+ }
-+
-+ if (context->fortezzaHack) {
-+ if (context->operation == CKA_ENCRYPT) {
-+ PORT_Assert(allocOut);
-+ PORT_Memcpy(saveOut, allocOut, length);
-+ PORT_Free(allocOut);
-+ }
-+ context->fortezzaHack = PR_FALSE;
-+ }
-+
-+ /*
-+ * handle session starvation case.. use our last session to multiplex
-+ */
-+ if (!context->ownSession) {
-+ context->savedData = pk11_saveContext(context,context->savedData,
-+ &context->savedLength);
-+ if (context->savedData == NULL) rv = SECFailure;
-+
-+ /* clear out out session for others to use */
-+ pk11_Finalize(context);
-+ }
-+ PK11_ExitContextMonitor(context);
-+ return rv;
-+}
-+
-+/*
-+ * execute a digest/signature operation
-+ */
-+SECStatus
-+PK11_DigestOp(PK11Context *context, const unsigned char * in, unsigned inLen)
-+{
-+ CK_RV crv = CKR_OK;
-+ SECStatus rv = SECSuccess;
-+
-+ /* if we ran out of session, we need to restore our previously stored
-+ * state.
-+ */
-+ context->init = PR_FALSE;
-+ PK11_EnterContextMonitor(context);
-+ if (!context->ownSession) {
-+ rv = pk11_restoreContext(context,context->savedData,
-+ context->savedLength);
-+ if (rv != SECSuccess) {
-+ PK11_ExitContextMonitor(context);
-+ return rv;
-+ }
-+ }
-+
-+ switch (context->operation) {
-+ /* also for MAC'ing */
-+ case CKA_SIGN:
-+ crv=PK11_GETTAB(context->slot)->C_SignUpdate(context->session,
-+ (unsigned char *)in,
-+ inLen);
-+ break;
-+ case CKA_VERIFY:
-+ crv=PK11_GETTAB(context->slot)->C_VerifyUpdate(context->session,
-+ (unsigned char *)in,
-+ inLen);
-+ break;
-+ case CKA_DIGEST:
-+ crv=PK11_GETTAB(context->slot)->C_DigestUpdate(context->session,
-+ (unsigned char *)in,
-+ inLen);
-+ break;
-+ default:
-+ crv = CKR_OPERATION_NOT_INITIALIZED;
-+ break;
-+ }
-+
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ rv = SECFailure;
-+ }
-+
-+ /*
-+ * handle session starvation case.. use our last session to multiplex
-+ */
-+ if (!context->ownSession) {
-+ context->savedData = pk11_saveContext(context,context->savedData,
-+ &context->savedLength);
-+ if (context->savedData == NULL) rv = SECFailure;
-+
-+ /* clear out out session for others to use */
-+ pk11_Finalize(context);
-+ }
-+ PK11_ExitContextMonitor(context);
-+ return rv;
-+}
-+
-+/*
-+ * Digest a key if possible./
-+ */
-+SECStatus
-+PK11_DigestKey(PK11Context *context, PK11SymKey *key)
-+{
-+ CK_RV crv = CKR_OK;
-+ SECStatus rv = SECSuccess;
-+ PK11SymKey *newKey = NULL;
-+
-+ if (!context || !key) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+
-+ /* if we ran out of session, we need to restore our previously stored
-+ * state.
-+ */
-+ if (context->slot != key->slot) {
-+ newKey = pk11_CopyToSlot(context->slot,CKM_SSL3_SHA1_MAC,CKA_SIGN,key);
-+ } else {
-+ newKey = PK11_ReferenceSymKey(key);
-+ }
-+
-+ context->init = PR_FALSE;
-+ PK11_EnterContextMonitor(context);
-+ if (!context->ownSession) {
-+ rv = pk11_restoreContext(context,context->savedData,
-+ context->savedLength);
-+ if (rv != SECSuccess) {
-+ PK11_ExitContextMonitor(context);
-+ PK11_FreeSymKey(newKey);
-+ return rv;
-+ }
-+ }
-+
-+
-+ if (newKey == NULL) {
-+ crv = CKR_KEY_TYPE_INCONSISTENT;
-+ if (key->data.data) {
-+ crv=PK11_GETTAB(context->slot)->C_DigestUpdate(context->session,
-+ key->data.data,key->data.len);
-+ }
-+ } else {
-+ crv=PK11_GETTAB(context->slot)->C_DigestKey(context->session,
-+ newKey->objectID);
-+ }
-+
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ rv = SECFailure;
-+ }
-+
-+ /*
-+ * handle session starvation case.. use our last session to multiplex
-+ */
-+ if (!context->ownSession) {
-+ context->savedData = pk11_saveContext(context,context->savedData,
-+ &context->savedLength);
-+ if (context->savedData == NULL) rv = SECFailure;
-+
-+ /* clear out out session for others to use */
-+ pk11_Finalize(context);
-+ }
-+ PK11_ExitContextMonitor(context);
-+ if (newKey) PK11_FreeSymKey(newKey);
-+ return rv;
-+}
-+
-+/*
-+ * externally callable version of the lowercase pk11_finalize().
-+ */
-+SECStatus
-+PK11_Finalize(PK11Context *context) {
-+ SECStatus rv;
-+
-+ PK11_EnterContextMonitor(context);
-+ rv = pk11_Finalize(context);
-+ PK11_ExitContextMonitor(context);
-+ return rv;
-+}
-+
-+/*
-+ * clean up a cipher operation, so the session can be used by
-+ * someone new.
-+ */
-+SECStatus
-+pk11_Finalize(PK11Context *context)
-+{
-+ CK_ULONG count = 0;
-+ CK_RV crv;
-+ unsigned char stackBuf[256];
-+ unsigned char *buffer = NULL;
-+
-+ if (!context->ownSession) {
-+ return SECSuccess;
-+ }
-+
-+finalize:
-+ switch (context->operation) {
-+ case CKA_ENCRYPT:
-+ crv=PK11_GETTAB(context->slot)->C_EncryptFinal(context->session,
-+ buffer, &count);
-+ break;
-+ case CKA_DECRYPT:
-+ crv = PK11_GETTAB(context->slot)->C_DecryptFinal(context->session,
-+ buffer, &count);
-+ break;
-+ case CKA_SIGN:
-+ crv=PK11_GETTAB(context->slot)->C_SignFinal(context->session,
-+ buffer, &count);
-+ break;
-+ case CKA_VERIFY:
-+ crv=PK11_GETTAB(context->slot)->C_VerifyFinal(context->session,
-+ buffer, count);
-+ break;
-+ case CKA_DIGEST:
-+ crv=PK11_GETTAB(context->slot)->C_DigestFinal(context->session,
-+ buffer, &count);
-+ break;
-+ default:
-+ crv = CKR_OPERATION_NOT_INITIALIZED;
-+ break;
-+ }
-+
-+ if (crv != CKR_OK) {
-+ if (buffer != stackBuf) {
-+ PORT_Free(buffer);
-+ }
-+ if (crv == CKR_OPERATION_NOT_INITIALIZED) {
-+ /* if there's no operation, it is finalized */
-+ return SECSuccess;
-+ }
-+ PORT_SetError( PK11_MapError(crv) );
-+ return SECFailure;
-+ }
-+
-+ /* try to finalize the session with a buffer */
-+ if (buffer == NULL) {
-+ if (count <= sizeof stackBuf) {
-+ buffer = stackBuf;
-+ } else {
-+ buffer = PORT_Alloc(count);
-+ if (buffer == NULL) {
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ return SECFailure;
-+ }
-+ }
-+ goto finalize;
-+ }
-+ if (buffer != stackBuf) {
-+ PORT_Free(buffer);
-+ }
-+ return SECSuccess;
-+}
-+
-+/*
-+ * Return the final digested or signed data...
-+ * this routine can either take pre initialized data, or allocate data
-+ * either out of an arena or out of the standard heap.
-+ */
-+SECStatus
-+PK11_DigestFinal(PK11Context *context,unsigned char *data,
-+ unsigned int *outLen, unsigned int length)
-+{
-+ CK_ULONG len;
-+ CK_RV crv;
-+ SECStatus rv;
-+
-+
-+ /* if we ran out of session, we need to restore our previously stored
-+ * state.
-+ */
-+ PK11_EnterContextMonitor(context);
-+ if (!context->ownSession) {
-+ rv = pk11_restoreContext(context,context->savedData,
-+ context->savedLength);
-+ if (rv != SECSuccess) {
-+ PK11_ExitContextMonitor(context);
-+ return rv;
-+ }
-+ }
-+
-+ len = length;
-+ switch (context->operation) {
-+ case CKA_SIGN:
-+ crv=PK11_GETTAB(context->slot)->C_SignFinal(context->session,
-+ data,&len);
-+ break;
-+ case CKA_VERIFY:
-+ crv=PK11_GETTAB(context->slot)->C_VerifyFinal(context->session,
-+ data,len);
-+ break;
-+ case CKA_DIGEST:
-+ crv=PK11_GETTAB(context->slot)->C_DigestFinal(context->session,
-+ data,&len);
-+ break;
-+ case CKA_ENCRYPT:
-+ crv=PK11_GETTAB(context->slot)->C_EncryptFinal(context->session,
-+ data, &len);
-+ break;
-+ case CKA_DECRYPT:
-+ crv = PK11_GETTAB(context->slot)->C_DecryptFinal(context->session,
-+ data, &len);
-+ break;
-+ default:
-+ crv = CKR_OPERATION_NOT_INITIALIZED;
-+ break;
-+ }
-+ PK11_ExitContextMonitor(context);
-+
-+ *outLen = (unsigned int) len;
-+ context->init = PR_FALSE; /* allow Begin to start up again */
-+
-+
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ return SECFailure;
-+ }
-+ return SECSuccess;
-+}
-+
-+/****************************************************************************
-+ *
-+ * Now Do The PBE Functions Here...
-+ *
-+ ****************************************************************************/
-+
-+static void
-+pk11_destroy_ck_pbe_params(CK_PBE_PARAMS *pbe_params)
-+{
-+ if (pbe_params) {
-+ if (pbe_params->pPassword)
-+ PORT_ZFree(pbe_params->pPassword, PR_FALSE);
-+ if (pbe_params->pSalt)
-+ PORT_ZFree(pbe_params->pSalt, PR_FALSE);
-+ PORT_ZFree(pbe_params, PR_TRUE);
-+ }
-+}
-+
-+SECItem *
-+PK11_CreatePBEParams(SECItem *salt, SECItem *pwd, unsigned int iterations)
-+{
-+ CK_PBE_PARAMS *pbe_params = NULL;
-+ SECItem *paramRV = NULL;
-+ pbe_params = (CK_PBE_PARAMS *)PORT_ZAlloc(sizeof(CK_PBE_PARAMS));
-+ pbe_params->pPassword = (CK_CHAR_PTR)PORT_ZAlloc(pwd->len);
-+ if (pbe_params->pPassword != NULL) {
-+ PORT_Memcpy(pbe_params->pPassword, pwd->data, pwd->len);
-+ pbe_params->ulPasswordLen = pwd->len;
-+ } else goto loser;
-+ pbe_params->pSalt = (CK_CHAR_PTR)PORT_ZAlloc(salt->len);
-+ if (pbe_params->pSalt != NULL) {
-+ PORT_Memcpy(pbe_params->pSalt, salt->data, salt->len);
-+ pbe_params->ulSaltLen = salt->len;
-+ } else goto loser;
-+ pbe_params->ulIteration = (CK_ULONG)iterations;
-+ paramRV = SECITEM_AllocItem(NULL, NULL, sizeof(CK_PBE_PARAMS));
-+ paramRV->data = (unsigned char *)pbe_params;
-+ return paramRV;
-+loser:
-+ pk11_destroy_ck_pbe_params(pbe_params);
-+ return NULL;
-+}
-+
-+void
-+PK11_DestroyPBEParams(SECItem *params)
-+{
-+ pk11_destroy_ck_pbe_params((CK_PBE_PARAMS *)params->data);
-+}
-+
-+SECAlgorithmID *
-+PK11_CreatePBEAlgorithmID(SECOidTag algorithm, int iteration, SECItem *salt)
-+{
-+ SECAlgorithmID *algid = NULL;
-+ algid = SEC_PKCS5CreateAlgorithmID(algorithm, salt, iteration);
-+ return algid;
-+}
-+
-+PK11SymKey *
-+PK11_RawPBEKeyGen(PK11SlotInfo *slot, CK_MECHANISM_TYPE type, SECItem *mech,
-+ SECItem *pwitem, PRBool faulty3DES, void *wincx)
-+{
-+ /* pbe stuff */
-+ CK_PBE_PARAMS *pbe_params;
-+ PK11SymKey *symKey;
-+
-+ if(faulty3DES && (type == CKM_NETSCAPE_PBE_SHA1_TRIPLE_DES_CBC)) {
-+ type = CKM_NETSCAPE_PBE_SHA1_FAULTY_3DES_CBC;
-+ }
-+ if(mech == NULL) {
-+ return NULL;
-+ }
-+
-+ pbe_params = (CK_PBE_PARAMS *)mech->data;
-+ pbe_params->pPassword = (CK_CHAR_PTR)PORT_ZAlloc(pwitem->len);
-+ if(pbe_params->pPassword != NULL) {
-+ PORT_Memcpy(pbe_params->pPassword, pwitem->data, pwitem->len);
-+ pbe_params->ulPasswordLen = pwitem->len;
-+ } else {
-+ SECITEM_ZfreeItem(mech, PR_TRUE);
-+ return NULL;
-+ }
-+
-+ symKey = PK11_KeyGen(slot, type, mech, 0, wincx);
-+
-+ PORT_ZFree(pbe_params->pPassword, pwitem->len);
-+ pbe_params->pPassword = NULL;
-+ pbe_params->ulPasswordLen = 0;
-+ return symKey;
-+}
-+
-+PK11SymKey *
-+PK11_PBEKeyGen(PK11SlotInfo *slot, SECAlgorithmID *algid, SECItem *pwitem,
-+ PRBool faulty3DES, void *wincx)
-+{
-+ /* pbe stuff */
-+ CK_MECHANISM_TYPE type;
-+ SECItem *mech;
-+ PK11SymKey *symKey;
-+
-+ mech = PK11_ParamFromAlgid(algid);
-+ type = PK11_AlgtagToMechanism(SECOID_FindOIDTag(&algid->algorithm));
-+ if(faulty3DES && (type == CKM_NETSCAPE_PBE_SHA1_TRIPLE_DES_CBC)) {
-+ type = CKM_NETSCAPE_PBE_SHA1_FAULTY_3DES_CBC;
-+ }
-+ if(mech == NULL) {
-+ return NULL;
-+ }
-+ symKey = PK11_RawPBEKeyGen(slot, type, mech, pwitem, faulty3DES, wincx);
-+
-+ SECITEM_ZfreeItem(mech, PR_TRUE);
-+ return symKey;
-+}
-+
-+SECItem *
-+PK11_GetPBEIV(SECAlgorithmID *algid, SECItem *pwitem)
-+{
-+ /* pbe stuff */
-+ CK_MECHANISM_TYPE type;
-+ SECItem *mech;
-+ PK11SymKey *symKey;
-+ PK11SlotInfo *slot = PK11_GetInternalSlot();
-+ int iv_len = 0;
-+ CK_PBE_PARAMS_PTR pPBEparams;
-+ SECItem src;
-+ SECItem *iv;
-+
-+
-+ mech = PK11_ParamFromAlgid(algid);
-+ type = PK11_AlgtagToMechanism(SECOID_FindOIDTag(&algid->algorithm));
-+ if(mech == NULL) {
-+ return NULL;
-+ }
-+ symKey = PK11_RawPBEKeyGen(slot, type, mech, pwitem, PR_FALSE, NULL);
-+ PK11_FreeSlot(slot);
-+ if (symKey == NULL) {
-+ SECITEM_ZfreeItem(mech, PR_TRUE);
-+ return NULL;
-+ }
-+ PK11_FreeSymKey(symKey);
-+ pPBEparams = (CK_PBE_PARAMS_PTR)mech->data;
-+ iv_len = PK11_GetIVLength(type);
-+
-+ src.data = (unsigned char *)pPBEparams->pInitVector;
-+ src.len = iv_len;
-+ iv = SECITEM_DupItem(&src);
-+
-+ SECITEM_ZfreeItem(mech, PR_TRUE);
-+ return iv;
-+}
-+
-+
-+SECStatus
-+PK11_ImportEncryptedPrivateKeyInfo(PK11SlotInfo *slot,
-+ SECKEYEncryptedPrivateKeyInfo *epki, SECItem *pwitem,
-+ SECItem *nickname, SECItem *publicValue, PRBool isPerm,
-+ PRBool isPrivate, KeyType keyType,
-+ unsigned int keyUsage, void *wincx)
-+{
-+ CK_MECHANISM_TYPE mechanism;
-+ SECItem *pbe_param, crypto_param;
-+ PK11SymKey *key = NULL;
-+ SECStatus rv = SECSuccess;
-+ CK_MECHANISM cryptoMech, pbeMech;
-+ CK_RV crv;
-+ SECKEYPrivateKey *privKey = NULL;
-+ PRBool faulty3DES = PR_FALSE;
-+ int usageCount = 0;
-+ CK_KEY_TYPE key_type;
-+ CK_ATTRIBUTE_TYPE *usage = NULL;
-+ CK_ATTRIBUTE_TYPE rsaUsage[] = {
-+ CKA_UNWRAP, CKA_DECRYPT, CKA_SIGN, CKA_SIGN_RECOVER };
-+ CK_ATTRIBUTE_TYPE dsaUsage[] = { CKA_SIGN };
-+ CK_ATTRIBUTE_TYPE dhUsage[] = { CKA_DERIVE };
-+#ifdef NSS_ENABLE_ECC
-+ CK_ATTRIBUTE_TYPE ecUsage[] = { CKA_SIGN, CKA_DERIVE };
-+#endif /* NSS_ENABLE_ECC */
-+ if((epki == NULL) || (pwitem == NULL))
-+ return SECFailure;
-+
-+ crypto_param.data = NULL;
-+
-+ mechanism = PK11_AlgtagToMechanism(SECOID_FindOIDTag(
-+ &epki->algorithm.algorithm));
-+
-+ switch (keyType) {
-+ default:
-+ case rsaKey:
-+ key_type = CKK_RSA;
-+ switch (keyUsage & (KU_KEY_ENCIPHERMENT|KU_DIGITAL_SIGNATURE)) {
-+ case KU_KEY_ENCIPHERMENT:
-+ usage = rsaUsage;
-+ usageCount = 2;
-+ break;
-+ case KU_DIGITAL_SIGNATURE:
-+ usage = &rsaUsage[2];
-+ usageCount = 2;
-+ break;
-+ case KU_KEY_ENCIPHERMENT|KU_DIGITAL_SIGNATURE:
-+ case 0: /* default to everything */
-+ usage = rsaUsage;
-+ usageCount = 4;
-+ break;
-+ }
-+ break;
-+ case dhKey:
-+ key_type = CKK_DH;
-+ usage = dhUsage;
-+ usageCount = sizeof(dhUsage)/sizeof(dhUsage[0]);
-+ break;
-+ case dsaKey:
-+ key_type = CKK_DSA;
-+ usage = dsaUsage;
-+ usageCount = sizeof(dsaUsage)/sizeof(dsaUsage[0]);
-+ break;
-+#ifdef NSS_ENABLE_ECC
-+ case ecKey:
-+ key_type = CKK_EC;
-+ switch (keyUsage & (KU_DIGITAL_SIGNATURE|KU_KEY_AGREEMENT)) {
-+ case KU_DIGITAL_SIGNATURE:
-+ usage = ecUsage;
-+ usageCount = 1;
-+ break;
-+ case KU_KEY_AGREEMENT:
-+ usage = &ecUsage[1];
-+ usageCount = 1;
-+ break;
-+ case KU_DIGITAL_SIGNATURE|KU_KEY_AGREEMENT:
-+ default: /* default to everything */
-+ usage = ecUsage;
-+ usageCount = 2;
-+ break;
-+ }
-+ break;
-+#endif /* NSS_ENABLE_ECC */
-+ }
-+
-+try_faulty_3des:
-+ pbe_param = PK11_ParamFromAlgid(&epki->algorithm);
-+
-+ key = PK11_RawPBEKeyGen(slot, mechanism, pbe_param, pwitem,
-+ faulty3DES, wincx);
-+ if((key == NULL) || (pbe_param == NULL)) {
-+ rv = SECFailure;
-+ goto done;
-+ }
-+
-+ pbeMech.mechanism = mechanism;
-+ pbeMech.pParameter = pbe_param->data;
-+ pbeMech.ulParameterLen = pbe_param->len;
-+
-+ crv = PK11_MapPBEMechanismToCryptoMechanism(&pbeMech, &cryptoMech,
-+ pwitem, faulty3DES);
-+ if(crv != CKR_OK) {
-+ rv = SECFailure;
-+ goto done;
-+ }
-+
-+ cryptoMech.mechanism = PK11_GetPadMechanism(cryptoMech.mechanism);
-+ crypto_param.data = (unsigned char*)cryptoMech.pParameter;
-+ crypto_param.len = cryptoMech.ulParameterLen;
-+
-+ PORT_Assert(usage != NULL);
-+ PORT_Assert(usageCount != 0);
-+ privKey = PK11_UnwrapPrivKey(slot, key, cryptoMech.mechanism,
-+ &crypto_param, &epki->encryptedData,
-+ nickname, publicValue, isPerm, isPrivate,
-+ key_type, usage, usageCount, wincx);
-+ if(privKey) {
-+ SECKEY_DestroyPrivateKey(privKey);
-+ privKey = NULL;
-+ rv = SECSuccess;
-+ goto done;
-+ }
-+ /* if we are unable to import the key and the mechanism is
-+ * CKM_NETSCAPE_PBE_SHA1_TRIPLE_DES_CBC, then it is possible that
-+ * the encrypted blob was created with a buggy key generation method
-+ * which is described in the PKCS 12 implementation notes. So we
-+ * need to try importing via that method.
-+ */
-+ if((mechanism == CKM_NETSCAPE_PBE_SHA1_TRIPLE_DES_CBC) && (!faulty3DES)) {
-+ /* clean up after ourselves before redoing the key generation. */
-+
-+ PK11_FreeSymKey(key);
-+ key = NULL;
-+
-+ if(pbe_param) {
-+ SECITEM_ZfreeItem(pbe_param, PR_TRUE);
-+ pbe_param = NULL;
-+ }
-+
-+ if(crypto_param.data) {
-+ SECITEM_ZfreeItem(&crypto_param, PR_FALSE);
-+ crypto_param.data = NULL;
-+ cryptoMech.pParameter = NULL;
-+ crypto_param.len = cryptoMech.ulParameterLen = 0;
-+ }
-+
-+ faulty3DES = PR_TRUE;
-+ goto try_faulty_3des;
-+ }
-+
-+ /* key import really did fail */
-+ rv = SECFailure;
-+
-+done:
-+ if(pbe_param != NULL) {
-+ SECITEM_ZfreeItem(pbe_param, PR_TRUE);
-+ pbe_param = NULL;
-+ }
-+
-+ if(crypto_param.data != NULL) {
-+ SECITEM_ZfreeItem(&crypto_param, PR_FALSE);
-+ }
-+
-+ if(key != NULL) {
-+ PK11_FreeSymKey(key);
-+ }
-+
-+ return rv;
-+}
-+
-+SECKEYPrivateKeyInfo *
-+PK11_ExportPrivateKeyInfo(CERTCertificate *cert, void *wincx)
-+{
-+ return NULL;
-+}
-+
-+static int
-+pk11_private_key_encrypt_buffer_length(SECKEYPrivateKey *key)
-+
-+{
-+ CK_ATTRIBUTE rsaTemplate = { CKA_MODULUS, NULL, 0 };
-+ CK_ATTRIBUTE dsaTemplate = { CKA_PRIME, NULL, 0 };
-+#ifdef NSS_ENABLE_ECC
-+ /* XXX We should normally choose an attribute such that
-+ * factor times its size is enough to hold the private key.
-+ * For EC keys, we have no choice but to use CKA_EC_PARAMS,
-+ * CKA_VALUE is not available for token keys. But for named
-+ * curves, the number of bytes needed to represent the params
-+ * is quite small so we bump up factor from 10 to 15.
-+ */
-+ CK_ATTRIBUTE ecTemplate = { CKA_EC_PARAMS, NULL, 0 };
-+#endif /* NSS_ENABLE_ECC */
-+ CK_ATTRIBUTE_PTR pTemplate;
-+ CK_RV crv;
-+ int length;
-+ int factor = 10;
-+
-+ if(!key) {
-+ return -1;
-+ }
-+
-+ switch (key->keyType) {
-+ case rsaKey:
-+ pTemplate = &rsaTemplate;
-+ break;
-+ case dsaKey:
-+ case dhKey:
-+ pTemplate = &dsaTemplate;
-+ break;
-+#ifdef NSS_ENABLE_ECC
-+ case ecKey:
-+ pTemplate = &ecTemplate;
-+ factor = 15;
-+ break;
-+#endif /* NSS_ENABLE_ECC */
-+ case fortezzaKey:
-+ default:
-+ pTemplate = NULL;
-+ }
-+
-+ if(!pTemplate) {
-+ return -1;
-+ }
-+
-+ crv = PK11_GetAttributes(NULL, key->pkcs11Slot, key->pkcs11ID,
-+ pTemplate, 1);
-+ if(crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ return -1;
-+ }
-+
-+ length = pTemplate->ulValueLen;
-+ length *= factor;
-+
-+
-+ if(pTemplate->pValue != NULL) {
-+ PORT_Free(pTemplate->pValue);
-+ }
-+
-+ return length;
-+}
-+
-+SECKEYEncryptedPrivateKeyInfo *
-+PK11_ExportEncryptedPrivKeyInfo(
-+ PK11SlotInfo *slot, /* optional, encrypt key in this slot */
-+ SECOidTag algTag, /* encrypt key with this algorithm */
-+ SECItem *pwitem, /* password for PBE encryption */
-+ SECKEYPrivateKey *pk, /* encrypt this private key */
-+ int iteration, /* interations for PBE alg */
-+ void *wincx) /* context for password callback ? */
-+{
-+ SECKEYEncryptedPrivateKeyInfo *epki = NULL;
-+ PRArenaPool *arena = NULL;
-+ SECAlgorithmID *algid;
-+ SECItem *pbe_param = NULL;
-+ PK11SymKey *key = NULL;
-+ SECStatus rv = SECSuccess;
-+ int encryptBufLen;
-+ CK_RV crv;
-+ CK_ULONG encBufLenPtr;
-+ CK_MECHANISM_TYPE mechanism;
-+ CK_MECHANISM pbeMech;
-+ CK_MECHANISM cryptoMech;
-+ SECItem crypto_param;
-+ SECItem encryptedKey = {siBuffer, NULL, 0};
-+
-+ if (!pwitem || !pk) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return NULL;
-+ }
-+
-+ algid = SEC_PKCS5CreateAlgorithmID(algTag, NULL, iteration);
-+ if (algid == NULL) {
-+ return NULL;
-+ }
-+
-+ crypto_param.data = NULL;
-+
-+ arena = PORT_NewArena(2048);
-+ if (arena)
-+ epki = PORT_ArenaZNew(arena, SECKEYEncryptedPrivateKeyInfo);
-+ if(epki == NULL) {
-+ rv = SECFailure;
-+ goto loser;
-+ }
-+ epki->arena = arena;
-+
-+ mechanism = PK11_AlgtagToMechanism(algTag);
-+ pbe_param = PK11_ParamFromAlgid(algid);
-+ if (!pbe_param || mechanism == CKM_INVALID_MECHANISM) {
-+ rv = SECFailure;
-+ goto loser;
-+ }
-+ pbeMech.mechanism = mechanism;
-+ pbeMech.pParameter = pbe_param->data;
-+ pbeMech.ulParameterLen = pbe_param->len;
-+
-+ /* if we didn't specify a slot, use the slot the private key was in */
-+ if (!slot) {
-+ slot = pk->pkcs11Slot;
-+ }
-+
-+ /* if we specified a different slot, and the private key slot can do the
-+ * pbe key gen, generate the key in the private key slot so we don't have
-+ * to move it later */
-+ if (slot != pk->pkcs11Slot) {
-+ if (PK11_DoesMechanism(pk->pkcs11Slot,mechanism)) {
-+ slot = pk->pkcs11Slot;
-+ }
-+ }
-+ key = PK11_RawPBEKeyGen(slot, mechanism, pbe_param, pwitem,
-+ PR_FALSE, wincx);
-+
-+ if((key == NULL) || (pbe_param == NULL)) {
-+ rv = SECFailure;
-+ goto loser;
-+ }
-+
-+ crv = PK11_MapPBEMechanismToCryptoMechanism(&pbeMech, &cryptoMech,
-+ pwitem, PR_FALSE);
-+ if(crv != CKR_OK) {
-+ rv = SECFailure;
-+ goto loser;
-+ }
-+ cryptoMech.mechanism = PK11_GetPadMechanism(cryptoMech.mechanism);
-+ crypto_param.data = (unsigned char *)cryptoMech.pParameter;
-+ crypto_param.len = cryptoMech.ulParameterLen;
-+
-+
-+ encryptBufLen = pk11_private_key_encrypt_buffer_length(pk);
-+ if(encryptBufLen == -1) {
-+ rv = SECFailure;
-+ goto loser;
-+ }
-+ encryptedKey.len = (unsigned int)encryptBufLen;
-+ encBufLenPtr = (CK_ULONG) encryptBufLen;
-+ encryptedKey.data = (unsigned char *)PORT_ZAlloc(encryptedKey.len);
-+ if(!encryptedKey.data) {
-+ rv = SECFailure;
-+ goto loser;
-+ }
-+
-+ /* If the key isn't in the private key slot, move it */
-+ if (key->slot != pk->pkcs11Slot) {
-+ PK11SymKey *newkey = pk11_CopyToSlot(pk->pkcs11Slot,
-+ key->type, CKA_WRAP, key);
-+ if (newkey == NULL) {
-+ rv= SECFailure;
-+ goto loser;
-+ }
-+
-+ /* free the old key and use the new key */
-+ PK11_FreeSymKey(key);
-+ key = newkey;
-+ }
-+
-+ /* we are extracting an encrypted privateKey structure.
-+ * which needs to be freed along with the buffer into which it is
-+ * returned. eventually, we should retrieve an encrypted key using
-+ * pkcs8/pkcs5.
-+ */
-+ PK11_EnterSlotMonitor(pk->pkcs11Slot);
-+ crv = PK11_GETTAB(pk->pkcs11Slot)->C_WrapKey(pk->pkcs11Slot->session,
-+ &cryptoMech, key->objectID, pk->pkcs11ID, encryptedKey.data,
-+ &encBufLenPtr);
-+ PK11_ExitSlotMonitor(pk->pkcs11Slot);
-+ encryptedKey.len = (unsigned int) encBufLenPtr;
-+ if(crv != CKR_OK) {
-+ rv = SECFailure;
-+ goto loser;
-+ }
-+
-+ if(!encryptedKey.len) {
-+ rv = SECFailure;
-+ goto loser;
-+ }
-+
-+ rv = SECITEM_CopyItem(arena, &epki->encryptedData, &encryptedKey);
-+ if(rv != SECSuccess) {
-+ goto loser;
-+ }
-+
-+ rv = SECOID_CopyAlgorithmID(arena, &epki->algorithm, algid);
-+
-+loser:
-+ if(pbe_param != NULL) {
-+ SECITEM_ZfreeItem(pbe_param, PR_TRUE);
-+ pbe_param = NULL;
-+ }
-+
-+ if(crypto_param.data != NULL) {
-+ SECITEM_ZfreeItem(&crypto_param, PR_FALSE);
-+ crypto_param.data = NULL;
-+ }
-+
-+ if(key != NULL) {
-+ PK11_FreeSymKey(key);
-+ }
-+ SECOID_DestroyAlgorithmID(algid, PR_TRUE);
-+
-+ if(rv == SECFailure) {
-+ if(arena != NULL) {
-+ PORT_FreeArena(arena, PR_TRUE);
-+ }
-+ epki = NULL;
-+ }
-+
-+ return epki;
-+}
-+
-+SECKEYEncryptedPrivateKeyInfo *
-+PK11_ExportEncryptedPrivateKeyInfo(
-+ PK11SlotInfo *slot, /* optional, encrypt key in this slot */
-+ SECOidTag algTag, /* encrypt key with this algorithm */
-+ SECItem *pwitem, /* password for PBE encryption */
-+ CERTCertificate *cert, /* wrap priv key for this user cert */
-+ int iteration, /* interations for PBE alg */
-+ void *wincx) /* context for password callback ? */
-+{
-+ SECKEYEncryptedPrivateKeyInfo *epki = NULL;
-+ SECKEYPrivateKey *pk = PK11_FindKeyByAnyCert(cert, wincx);
-+ if (pk != NULL) {
-+ epki = PK11_ExportEncryptedPrivKeyInfo(slot, algTag, pwitem, pk,
-+ iteration, wincx);
-+ SECKEY_DestroyPrivateKey(pk);
-+ }
-+ return epki;
-+}
-+
-+
-+/*
-+ * This is required to allow FORTEZZA_NULL and FORTEZZA_RC4
-+ * working. This function simply gets a valid IV for the keys.
-+ */
-+SECStatus
-+PK11_GenerateFortezzaIV(PK11SymKey *symKey,unsigned char *iv,int len)
-+{
-+ CK_MECHANISM mech_info;
-+ CK_ULONG count = 0;
-+ CK_RV crv;
-+ SECStatus rv = SECFailure;
-+
-+ mech_info.mechanism = CKM_SKIPJACK_CBC64;
-+ mech_info.pParameter = iv;
-+ mech_info.ulParameterLen = len;
-+
-+ /* generate the IV for fortezza */
-+ PK11_EnterSlotMonitor(symKey->slot);
-+ crv=PK11_GETTAB(symKey->slot)->C_EncryptInit(symKey->slot->session,
-+ &mech_info, symKey->objectID);
-+ if (crv == CKR_OK) {
-+ PK11_GETTAB(symKey->slot)->C_EncryptFinal(symKey->slot->session,
-+ NULL, &count);
-+ rv = SECSuccess;
-+ }
-+ PK11_ExitSlotMonitor(symKey->slot);
-+ return rv;
-+}
-+
-+SECKEYPrivateKey *
-+PK11_UnwrapPrivKey(PK11SlotInfo *slot, PK11SymKey *wrappingKey,
-+ CK_MECHANISM_TYPE wrapType, SECItem *param,
-+ SECItem *wrappedKey, SECItem *label,
-+ SECItem *idValue, PRBool perm, PRBool sensitive,
-+ CK_KEY_TYPE keyType, CK_ATTRIBUTE_TYPE *usage, int usageCount,
-+ void *wincx)
-+{
-+ CK_BBOOL cktrue = CK_TRUE;
-+ CK_BBOOL ckfalse = CK_FALSE;
-+ CK_OBJECT_CLASS keyClass = CKO_PRIVATE_KEY;
-+ CK_ATTRIBUTE keyTemplate[15] ;
-+ int templateCount = 0;
-+ CK_OBJECT_HANDLE privKeyID;
-+ CK_MECHANISM mechanism;
-+ CK_ATTRIBUTE *attrs = keyTemplate;
-+ SECItem *param_free = NULL, *ck_id;
-+ CK_RV crv;
-+ CK_SESSION_HANDLE rwsession;
-+ PK11SymKey *newKey = NULL;
-+ int i;
-+
-+ if(!slot || !wrappedKey || !idValue) {
-+ /* SET AN ERROR!!! */
-+ return NULL;
-+ }
-+
-+ ck_id = PK11_MakeIDFromPubKey(idValue);
-+ if(!ck_id) {
-+ return NULL;
-+ }
-+
-+ PK11_SETATTRS(attrs, CKA_TOKEN, perm ? &cktrue : &ckfalse,
-+ sizeof(cktrue)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_CLASS, &keyClass, sizeof(keyClass)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_KEY_TYPE, &keyType, sizeof(keyType)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_PRIVATE, sensitive ? &cktrue : &ckfalse,
-+ sizeof(cktrue)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_SENSITIVE, sensitive ? &cktrue : &ckfalse,
-+ sizeof(cktrue)); attrs++;
-+ PK11_SETATTRS(attrs, CKA_LABEL, label->data, label->len); attrs++;
-+ PK11_SETATTRS(attrs, CKA_ID, ck_id->data, ck_id->len); attrs++;
-+ for (i=0; i < usageCount; i++) {
-+ PK11_SETATTRS(attrs, usage[i], &cktrue, sizeof(cktrue)); attrs++;
-+ }
-+
-+ if (PK11_IsInternal(slot)) {
-+ PK11_SETATTRS(attrs, CKA_NETSCAPE_DB, idValue->data,
-+ idValue->len); attrs++;
-+ }
-+
-+ templateCount = attrs - keyTemplate;
-+ PR_ASSERT(templateCount <= (sizeof(keyTemplate) / sizeof(CK_ATTRIBUTE)) );
-+
-+ mechanism.mechanism = wrapType;
-+ if(!param) param = param_free= PK11_ParamFromIV(wrapType, NULL);
-+ if(param) {
-+ mechanism.pParameter = param->data;
-+ mechanism.ulParameterLen = param->len;
-+ } else {
-+ mechanism.pParameter = NULL;
-+ mechanism.ulParameterLen = 0;
-+ }
-+
-+ if (wrappingKey->slot != slot) {
-+ newKey = pk11_CopyToSlot(slot,wrapType,CKA_WRAP,wrappingKey);
-+ } else {
-+ newKey = PK11_ReferenceSymKey(wrappingKey);
-+ }
-+
-+ if (newKey) {
-+ if (perm) {
-+ /* Get RW Session will either lock the monitor if necessary,
-+ * or return a thread safe session handle. */
-+ rwsession = PK11_GetRWSession(slot);
-+ } else {
-+ rwsession = slot->session;
-+ PK11_EnterSlotMonitor(slot);
-+ }
-+ crv = PK11_GETTAB(slot)->C_UnwrapKey(rwsession, &mechanism,
-+ newKey->objectID,
-+ wrappedKey->data,
-+ wrappedKey->len, keyTemplate,
-+ templateCount, &privKeyID);
-+
-+ if (perm) {
-+ PK11_RestoreROSession(slot, rwsession);
-+ } else {
-+ PK11_ExitSlotMonitor(slot);
-+ }
-+ PK11_FreeSymKey(newKey);
-+ } else {
-+ crv = CKR_FUNCTION_NOT_SUPPORTED;
-+ }
-+
-+ if(ck_id) {
-+ SECITEM_FreeItem(ck_id, PR_TRUE);
-+ ck_id = NULL;
-+ }
-+
-+ if (crv != CKR_OK) {
-+ /* we couldn't unwrap the key, use the internal module to do the
-+ * unwrap, then load the new key into the token */
-+ PK11SlotInfo *int_slot = PK11_GetInternalSlot();
-+
-+ if (int_slot && (slot != int_slot)) {
-+ SECKEYPrivateKey *privKey = PK11_UnwrapPrivKey(int_slot,
-+ wrappingKey, wrapType, param, wrappedKey, label,
-+ idValue, PR_FALSE, PR_FALSE,
-+ keyType, usage, usageCount, wincx);
-+ if (privKey) {
-+ SECKEYPrivateKey *newPrivKey = pk11_loadPrivKey(slot,privKey,
-+ NULL,perm,sensitive);
-+ SECKEY_DestroyPrivateKey(privKey);
-+ PK11_FreeSlot(int_slot);
-+ return newPrivKey;
-+ }
-+ }
-+ if (int_slot) PK11_FreeSlot(int_slot);
-+ PORT_SetError( PK11_MapError(crv) );
-+ return NULL;
-+ }
-+ return PK11_MakePrivKey(slot, nullKey, PR_FALSE, privKeyID, wincx);
-+}
-+
-+#define ALLOC_BLOCK 10
-+
-+/*
-+ * Now we're going to wrap a SECKEYPrivateKey with a PK11SymKey
-+ * The strategy is to get both keys to reside in the same slot,
-+ * one that can perform the desired crypto mechanism and then
-+ * call C_WrapKey after all the setup has taken place.
-+ */
-+SECStatus
-+PK11_WrapPrivKey(PK11SlotInfo *slot, PK11SymKey *wrappingKey,
-+ SECKEYPrivateKey *privKey, CK_MECHANISM_TYPE wrapType,
-+ SECItem *param, SECItem *wrappedKey, void *wincx)
-+{
-+ PK11SlotInfo *privSlot = privKey->pkcs11Slot; /* The slot where
-+ * the private key
-+ * we are going to
-+ * wrap lives.
-+ */
-+ PK11SymKey *newSymKey = NULL;
-+ SECKEYPrivateKey *newPrivKey = NULL;
-+ SECItem *param_free = NULL;
-+ CK_ULONG len = wrappedKey->len;
-+ CK_MECHANISM mech;
-+ CK_RV crv;
-+
-+ if (!privSlot || !PK11_DoesMechanism(privSlot, wrapType)) {
-+ /* Figure out a slot that does the mechanism and try to import
-+ * the private key onto that slot.
-+ */
-+ PK11SlotInfo *int_slot = PK11_GetInternalSlot();
-+
-+ privSlot = int_slot; /* The private key has a new home */
-+ newPrivKey = pk11_loadPrivKey(privSlot,privKey,NULL,PR_FALSE,PR_FALSE);
-+ /* newPrivKey has allocated its own reference to the slot, so it's
-+ * safe until we destroy newPrivkey.
-+ */
-+ PK11_FreeSlot(int_slot);
-+ if (newPrivKey == NULL) {
-+ return SECFailure;
-+ }
-+ privKey = newPrivKey;
-+ }
-+
-+ if (privSlot != wrappingKey->slot) {
-+ newSymKey = pk11_CopyToSlot (privSlot, wrapType, CKA_WRAP,
-+ wrappingKey);
-+ wrappingKey = newSymKey;
-+ }
-+
-+ if (wrappingKey == NULL) {
-+ if (newPrivKey) {
-+ SECKEY_DestroyPrivateKey(newPrivKey);
-+ }
-+ return SECFailure;
-+ }
-+ mech.mechanism = wrapType;
-+ if (!param) {
-+ param = param_free = PK11_ParamFromIV(wrapType, NULL);
-+ }
-+ if (param) {
-+ mech.pParameter = param->data;
-+ mech.ulParameterLen = param->len;
-+ } else {
-+ mech.pParameter = NULL;
-+ mech.ulParameterLen = 0;
-+ }
-+
-+ PK11_EnterSlotMonitor(privSlot);
-+ crv = PK11_GETTAB(privSlot)->C_WrapKey(privSlot->session, &mech,
-+ wrappingKey->objectID,
-+ privKey->pkcs11ID,
-+ wrappedKey->data, &len);
-+ PK11_ExitSlotMonitor(privSlot);
-+
-+ if (newSymKey) {
-+ PK11_FreeSymKey(newSymKey);
-+ }
-+ if (newPrivKey) {
-+ SECKEY_DestroyPrivateKey(newPrivKey);
-+ }
-+ if (param_free) {
-+ SECITEM_FreeItem(param_free,PR_TRUE);
-+ }
-+
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ return SECFailure;
-+ }
-+
-+ wrappedKey->len = len;
-+ return SECSuccess;
-+}
-+
-+void
-+PK11_SetFortezzaHack(PK11SymKey *symKey) {
-+ symKey->origin = PK11_OriginFortezzaHack;
-+}
-+
-+SECItem*
-+PK11_DEREncodePublicKey(SECKEYPublicKey *pubk)
-+{
-+ CERTSubjectPublicKeyInfo *spki=NULL;
-+ SECItem *spkiDER = NULL;
-+
-+ if( pubk == NULL ) {
-+ return NULL;
-+ }
-+
-+ /* get the subjectpublickeyinfo */
-+ spki = SECKEY_CreateSubjectPublicKeyInfo(pubk);
-+ if( spki == NULL ) {
-+ goto finish;
-+ }
-+
-+ /* DER-encode the subjectpublickeyinfo */
-+ spkiDER = SEC_ASN1EncodeItem(NULL /*arena*/, NULL/*dest*/, spki,
-+ CERT_SubjectPublicKeyInfoTemplate);
-+
-+finish:
-+ return spkiDER;
-+}
-+
-+PK11SymKey*
-+PK11_CopySymKeyForSigning(PK11SymKey *originalKey, CK_MECHANISM_TYPE mech)
-+{
-+ CK_RV crv;
-+ CK_ATTRIBUTE setTemplate;
-+ CK_BBOOL ckTrue = CK_TRUE;
-+ PK11SlotInfo *slot = originalKey->slot;
-+
-+ /* first just try to set this key up for signing */
-+ PK11_SETATTRS(&setTemplate, CKA_SIGN, &ckTrue, sizeof(ckTrue));
-+ pk11_EnterKeyMonitor(originalKey);
-+ crv = PK11_GETTAB(slot)-> C_SetAttributeValue(originalKey->session,
-+ originalKey->objectID, &setTemplate, 1);
-+ pk11_ExitKeyMonitor(originalKey);
-+ if (crv == CKR_OK) {
-+ return PK11_ReferenceSymKey(originalKey);
-+ }
-+
-+ /* nope, doesn't like it, use the pk11 copy object command */
-+ return pk11_CopyToSlot(slot, mech, CKA_SIGN, originalKey);
-+}
-+
-+char *
-+PK11_GetSymKeyNickname(PK11SymKey *symKey)
-+{
-+ return PK11_GetObjectNickname(symKey->slot,symKey->objectID);
-+}
-+
-+char *
-+PK11_GetPrivateKeyNickname(SECKEYPrivateKey *privKey)
-+{
-+ return PK11_GetObjectNickname(privKey->pkcs11Slot,privKey->pkcs11ID);
-+}
-+
-+char *
-+PK11_GetPublicKeyNickname(SECKEYPublicKey *pubKey)
-+{
-+ return PK11_GetObjectNickname(pubKey->pkcs11Slot,pubKey->pkcs11ID);
-+}
-+
-+SECStatus
-+PK11_SetSymKeyNickname(PK11SymKey *symKey, const char *nickname)
-+{
-+ return PK11_SetObjectNickname(symKey->slot,symKey->objectID,nickname);
-+}
-+
-+SECStatus
-+PK11_SetPrivateKeyNickname(SECKEYPrivateKey *privKey, const char *nickname)
-+{
-+ return PK11_SetObjectNickname(privKey->pkcs11Slot,
-+ privKey->pkcs11ID,nickname);
-+}
-+
-+SECStatus
-+PK11_SetPublicKeyNickname(SECKEYPublicKey *pubKey, const char *nickname)
-+{
-+ return PK11_SetObjectNickname(pubKey->pkcs11Slot,
-+ pubKey->pkcs11ID,nickname);
-+}
-+
-+SECKEYPQGParams *
-+PK11_GetPQGParamsFromPrivateKey(SECKEYPrivateKey *privKey)
-+{
-+ CK_ATTRIBUTE pTemplate[] = {
-+ { CKA_PRIME, NULL, 0 },
-+ { CKA_SUBPRIME, NULL, 0 },
-+ { CKA_BASE, NULL, 0 },
-+ };
-+ int pTemplateLen = sizeof(pTemplate)/sizeof(pTemplate[0]);
-+ PRArenaPool *arena = NULL;
-+ SECKEYPQGParams *params;
-+ CK_RV crv;
-+
-+
-+ arena = PORT_NewArena(2048);
-+ if (arena == NULL) {
-+ goto loser;
-+ }
-+ params=(SECKEYPQGParams *)PORT_ArenaZAlloc(arena,sizeof(SECKEYPQGParams));
-+ if (params == NULL) {
-+ goto loser;
-+ }
-+
-+ crv = PK11_GetAttributes(arena, privKey->pkcs11Slot, privKey->pkcs11ID,
-+ pTemplate, pTemplateLen);
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ goto loser;
-+ }
-+
-+ params->arena = arena;
-+ params->prime.data = pTemplate[0].pValue;
-+ params->prime.len = pTemplate[0].ulValueLen;
-+ params->subPrime.data = pTemplate[1].pValue;
-+ params->subPrime.len = pTemplate[1].ulValueLen;
-+ params->base.data = pTemplate[2].pValue;
-+ params->base.len = pTemplate[2].ulValueLen;
-+
-+ return params;
-+
-+loser:
-+ if (arena != NULL) {
-+ PORT_FreeArena(arena,PR_FALSE);
-+ }
-+ return NULL;
-+}
-+
-+PK11SymKey *
-+PK11_GetNextSymKey(PK11SymKey *symKey)
-+{
-+ return symKey ? symKey->next : NULL;
-+}
-+
-+
-+SECKEYPrivateKey*
-+PK11_ConvertSessionPrivKeyToTokenPrivKey(SECKEYPrivateKey *privk, void* wincx)
-+{
-+ PK11SlotInfo* slot = privk->pkcs11Slot;
-+ CK_ATTRIBUTE template[1];
-+ CK_ATTRIBUTE *attrs = template;
-+ CK_BBOOL cktrue = CK_TRUE;
-+ CK_RV crv;
-+ CK_OBJECT_HANDLE newKeyID;
-+ CK_SESSION_HANDLE rwsession;
-+
-+ PK11_SETATTRS(attrs, CKA_TOKEN, &cktrue, sizeof(cktrue)); attrs++;
-+
-+ PK11_Authenticate(slot, PR_TRUE, wincx);
-+ rwsession = PK11_GetRWSession(slot);
-+ crv = PK11_GETTAB(slot)->C_CopyObject(rwsession, privk->pkcs11ID,
-+ template, 1, &newKeyID);
-+ PK11_RestoreROSession(slot, rwsession);
-+
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ return NULL;
-+ }
-+
-+ return PK11_MakePrivKey(slot, nullKey /*KeyType*/, PR_FALSE /*isTemp*/,
-+ newKeyID, NULL /*wincx*/);
-+}
-+
-+PK11SymKey*
-+PK11_ConvertSessionSymKeyToTokenSymKey(PK11SymKey *symk, void *wincx)
-+{
-+ PK11SlotInfo* slot = symk->slot;
-+ CK_ATTRIBUTE template[1];
-+ CK_ATTRIBUTE *attrs = template;
-+ CK_BBOOL cktrue = CK_TRUE;
-+ CK_RV crv;
-+ CK_OBJECT_HANDLE newKeyID;
-+ CK_SESSION_HANDLE rwsession;
-+
-+ PK11_SETATTRS(attrs, CKA_TOKEN, &cktrue, sizeof(cktrue)); attrs++;
-+
-+ PK11_Authenticate(slot, PR_TRUE, wincx);
-+ rwsession = PK11_GetRWSession(slot);
-+ crv = PK11_GETTAB(slot)->C_CopyObject(rwsession, symk->objectID,
-+ template, 1, &newKeyID);
-+ PK11_RestoreROSession(slot, rwsession);
-+
-+ if (crv != CKR_OK) {
-+ PORT_SetError( PK11_MapError(crv) );
-+ return NULL;
-+ }
-+
-+ return PK11_SymKeyFromHandle(slot, NULL /*parent*/, symk->origin,
-+ symk->type, newKeyID, PR_FALSE /*owner*/, NULL /*wincx*/);
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pk11slot.c 2004-12-13 13:06:46.685399832 +0100
-@@ -0,0 +1,4868 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Portions created by Sun Microsystems, Inc. are Copyright (C) 2003
-+ * Sun Microsystems, Inc. All Rights Reserved.
-+ *
-+ * Contributor(s):
-+ * Dr Stephen Henson <stephen.henson@gemplus.com>
-+ * Dr Vipul Gupta <vipul.gupta@sun.com>, Sun Microsystems Laboratories
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+/*
-+ * Deal with PKCS #11 Slots.
-+ */
-+#include "seccomon.h"
-+#include "secmod.h"
-+#include "nssilock.h"
-+#include "secmodi.h"
-+#include "pkcs11t.h"
-+#include "pk11func.h"
-+#include "cert.h"
-+#include "key.h"
-+#include "secitem.h"
-+#include "secder.h"
-+#include "secasn1.h"
-+#include "secoid.h"
-+#include "prtime.h"
-+#include "prlong.h"
-+#include "secerr.h"
-+/*#include "secpkcs5.h" */
-+
-+#include "dev.h"
-+#include "dev3hack.h"
-+#include "pki3hack.h"
-+#include "pkim.h"
-+
-+
-+/*************************************************************
-+ * local static and global data
-+ *************************************************************/
-+
-+/*
-+ * This array helps parsing between names, mechanisms, and flags.
-+ * to make the config files understand more entries, add them
-+ * to this table. (NOTE: we need function to export this table and it's size)
-+ */
-+PK11DefaultArrayEntry PK11_DefaultArray[] = {
-+ { "RSA", SECMOD_RSA_FLAG, CKM_RSA_PKCS },
-+ { "DSA", SECMOD_DSA_FLAG, CKM_DSA },
-+ { "DH", SECMOD_DH_FLAG, CKM_DH_PKCS_DERIVE },
-+ { "RC2", SECMOD_RC2_FLAG, CKM_RC2_CBC },
-+ { "RC4", SECMOD_RC4_FLAG, CKM_RC4 },
-+ { "DES", SECMOD_DES_FLAG, CKM_DES_CBC },
-+ { "AES", SECMOD_AES_FLAG, CKM_AES_CBC },
-+ { "RC5", SECMOD_RC5_FLAG, CKM_RC5_CBC },
-+ { "SHA-1", SECMOD_SHA1_FLAG, CKM_SHA_1 },
-+ { "SHA256", SECMOD_SHA256_FLAG, CKM_SHA256 },
-+/* { "SHA384", SECMOD_SHA512_FLAG, CKM_SHA384 }, */
-+ { "SHA512", SECMOD_SHA512_FLAG, CKM_SHA512 },
-+ { "MD5", SECMOD_MD5_FLAG, CKM_MD5 },
-+ { "MD2", SECMOD_MD2_FLAG, CKM_MD2 },
-+ { "SSL", SECMOD_SSL_FLAG, CKM_SSL3_PRE_MASTER_KEY_GEN },
-+ { "TLS", SECMOD_TLS_FLAG, CKM_TLS_MASTER_KEY_DERIVE },
-+ { "SKIPJACK", SECMOD_FORTEZZA_FLAG, CKM_SKIPJACK_CBC64 },
-+ { "Publicly-readable certs", SECMOD_FRIENDLY_FLAG, CKM_INVALID_MECHANISM },
-+ { "Random Num Generator", SECMOD_RANDOM_FLAG, CKM_FAKE_RANDOM },
-+};
-+const int num_pk11_default_mechanisms =
-+ sizeof(PK11_DefaultArray) / sizeof(PK11_DefaultArray[0]);
-+
-+PK11DefaultArrayEntry *
-+PK11_GetDefaultArray(int *size)
-+{
-+ if (size) {
-+ *size = num_pk11_default_mechanisms;
-+ }
-+ return PK11_DefaultArray;
-+}
-+
-+/*
-+ * These slotlists are lists of modules which provide default support for
-+ * a given algorithm or mechanism.
-+ */
-+static PK11SlotList pk11_aesSlotList,
-+ pk11_desSlotList,
-+ pk11_rc4SlotList,
-+ pk11_rc2SlotList,
-+ pk11_rc5SlotList,
-+ pk11_sha1SlotList,
-+ pk11_md5SlotList,
-+ pk11_md2SlotList,
-+ pk11_rsaSlotList,
-+ pk11_dsaSlotList,
-+ pk11_dhSlotList,
-+ pk11_ecSlotList,
-+ pk11_ideaSlotList,
-+ pk11_sslSlotList,
-+ pk11_tlsSlotList,
-+ pk11_randomSlotList,
-+ pk11_sha256SlotList,
-+ pk11_sha512SlotList; /* slots do SHA512 and SHA384 */
-+
-+/*
-+ * Tables used for Extended mechanism mapping (currently not used)
-+ */
-+typedef struct {
-+ CK_MECHANISM_TYPE keyGen;
-+ CK_KEY_TYPE keyType;
-+ CK_MECHANISM_TYPE type;
-+ int blockSize;
-+ int iv;
-+} pk11MechanismData;
-+
-+static pk11MechanismData pk11_default =
-+ { CKM_GENERIC_SECRET_KEY_GEN, CKK_GENERIC_SECRET, CKM_FAKE_RANDOM, 8, 8 };
-+static pk11MechanismData *pk11_MechanismTable = NULL;
-+static int pk11_MechTableSize = 0;
-+static int pk11_MechEntrySize = 0;
-+
-+/*
-+ * list of mechanisms we're willing to wrap secret keys with.
-+ * This list is ordered by preference.
-+ */
-+CK_MECHANISM_TYPE wrapMechanismList[] = {
-+ CKM_DES3_ECB,
-+ CKM_CAST5_ECB,
-+ CKM_AES_ECB,
-+ CKM_CAST5_ECB,
-+ CKM_DES_ECB,
-+ CKM_KEY_WRAP_LYNKS,
-+ CKM_IDEA_ECB,
-+ CKM_CAST3_ECB,
-+ CKM_CAST_ECB,
-+ CKM_RC5_ECB,
-+ CKM_RC2_ECB,
-+ CKM_CDMF_ECB,
-+ CKM_SKIPJACK_WRAP,
-+};
-+
-+int wrapMechanismCount = sizeof(wrapMechanismList)/sizeof(wrapMechanismList[0]);
-+
-+/*
-+ * This structure keeps track of status that spans all the Slots.
-+ * NOTE: This is a global data structure. It semantics expect thread crosstalk
-+ * be very careful when you see it used.
-+ * It's major purpose in life is to allow the user to log in one PER
-+ * Tranaction, even if a transaction spans threads. The problem is the user
-+ * may have to enter a password one just to be able to look at the
-+ * personalities/certificates (s)he can use. Then if Auth every is one, they
-+ * may have to enter the password again to use the card. See PK11_StartTransac
-+ * and PK11_EndTransaction.
-+ */
-+static struct PK11GlobalStruct {
-+ int transaction;
-+ PRBool inTransaction;
-+ char *(PR_CALLBACK *getPass)(PK11SlotInfo *,PRBool,void *);
-+ PRBool (PR_CALLBACK *verifyPass)(PK11SlotInfo *,void *);
-+ PRBool (PR_CALLBACK *isLoggedIn)(PK11SlotInfo *,void *);
-+} PK11_Global = { 1, PR_FALSE, NULL, NULL, NULL };
-+
-+/************************************************************
-+ * Generic Slot List and Slot List element manipulations
-+ ************************************************************/
-+
-+/*
-+ * allocate a new list
-+ */
-+PK11SlotList *
-+PK11_NewSlotList(void)
-+{
-+ PK11SlotList *list;
-+
-+ list = (PK11SlotList *)PORT_Alloc(sizeof(PK11SlotList));
-+ if (list == NULL) return NULL;
-+ list->head = NULL;
-+ list->tail = NULL;
-+#ifdef PKCS11_USE_THREADS
-+ list->lock = PZ_NewLock(nssILockList);
-+ if (list->lock == NULL) {
-+ PORT_Free(list);
-+ return NULL;
-+ }
-+#else
-+ list->lock = NULL;
-+#endif
-+
-+ return list;
-+}
-+
-+/*
-+ * free a list element when all the references go away.
-+ */
-+static void
-+pk11_FreeListElement(PK11SlotList *list, PK11SlotListElement *le)
-+{
-+ PRBool freeit = PR_FALSE;
-+
-+ PK11_USE_THREADS(PZ_Lock((PZLock *)(list->lock));)
-+ if (le->refCount-- == 1) {
-+ freeit = PR_TRUE;
-+ }
-+ PK11_USE_THREADS(PZ_Unlock((PZLock *)(list->lock));)
-+ if (freeit) {
-+ PK11_FreeSlot(le->slot);
-+ PORT_Free(le);
-+ }
-+}
-+
-+/*
-+ * if we are freeing the list, we must be the only ones with a pointer
-+ * to the list.
-+ */
-+void
-+PK11_FreeSlotList(PK11SlotList *list)
-+{
-+ PK11SlotListElement *le, *next ;
-+ if (list == NULL) return;
-+
-+ for (le = list->head ; le; le = next) {
-+ next = le->next;
-+ pk11_FreeListElement(list,le);
-+ }
-+ PK11_USE_THREADS(PZ_DestroyLock((PZLock *)(list->lock));)
-+ PORT_Free(list);
-+}
-+
-+/*
-+ * add a slot to a list
-+ */
-+SECStatus
-+PK11_AddSlotToList(PK11SlotList *list,PK11SlotInfo *slot)
-+{
-+ PK11SlotListElement *le;
-+
-+ le = (PK11SlotListElement *) PORT_Alloc(sizeof(PK11SlotListElement));
-+ if (le == NULL) return SECFailure;
-+
-+ le->slot = PK11_ReferenceSlot(slot);
-+ le->prev = NULL;
-+ le->refCount = 1;
-+ PK11_USE_THREADS(PZ_Lock((PZLock *)(list->lock));)
-+ if (list->head) list->head->prev = le; else list->tail = le;
-+ le->next = list->head;
-+ list->head = le;
-+ PK11_USE_THREADS(PZ_Unlock((PZLock *)(list->lock));)
-+
-+ return SECSuccess;
-+}
-+
-+/*
-+ * remove a slot entry from the list
-+ */
-+SECStatus
-+PK11_DeleteSlotFromList(PK11SlotList *list,PK11SlotListElement *le)
-+{
-+ PK11_USE_THREADS(PZ_Lock((PZLock *)(list->lock));)
-+ if (le->prev) le->prev->next = le->next; else list->head = le->next;
-+ if (le->next) le->next->prev = le->prev; else list->tail = le->prev;
-+ le->next = le->prev = NULL;
-+ PK11_USE_THREADS(PZ_Unlock((PZLock *)(list->lock));)
-+ pk11_FreeListElement(list,le);
-+ return SECSuccess;
-+}
-+
-+/*
-+ * Move a list to the end of the target list. NOTE: There is no locking
-+ * here... This assumes BOTH lists are private copy lists.
-+ */
-+SECStatus
-+PK11_MoveListToList(PK11SlotList *target,PK11SlotList *src)
-+{
-+ if (src->head == NULL) return SECSuccess;
-+
-+ if (target->tail == NULL) {
-+ target->head = src->head;
-+ } else {
-+ target->tail->next = src->head;
-+ }
-+ src->head->prev = target->tail;
-+ target->tail = src->tail;
-+ src->head = src->tail = NULL;
-+ return SECSuccess;
-+}
-+
-+/*
-+ * get an element from the list with a reference. You must own the list.
-+ */
-+PK11SlotListElement *
-+PK11_GetFirstRef(PK11SlotList *list)
-+{
-+ PK11SlotListElement *le;
-+
-+ le = list->head;
-+ if (le != NULL) (le)->refCount++;
-+ return le;
-+}
-+
-+/*
-+ * get the next element from the list with a reference. You must own the list.
-+ */
-+PK11SlotListElement *
-+PK11_GetNextRef(PK11SlotList *list, PK11SlotListElement *le, PRBool restart)
-+{
-+ PK11SlotListElement *new_le;
-+ new_le = le->next;
-+ if (new_le) new_le->refCount++;
-+ pk11_FreeListElement(list,le);
-+ return new_le;
-+}
-+
-+/*
-+ * get an element safely from the list. This just makes sure that if
-+ * this element is not deleted while we deal with it.
-+ */
-+PK11SlotListElement *
-+PK11_GetFirstSafe(PK11SlotList *list)
-+{
-+ PK11SlotListElement *le;
-+
-+ PK11_USE_THREADS(PZ_Lock((PZLock *)(list->lock));)
-+ le = list->head;
-+ if (le != NULL) (le)->refCount++;
-+ PK11_USE_THREADS(PZ_Unlock((PZLock *)(list->lock));)
-+ return le;
-+}
-+
-+/*
-+ * NOTE: if this element gets deleted, we can no longer safely traverse using
-+ * it's pointers. We can either terminate the loop, or restart from the
-+ * beginning. This is controlled by the restart option.
-+ */
-+PK11SlotListElement *
-+PK11_GetNextSafe(PK11SlotList *list, PK11SlotListElement *le, PRBool restart)
-+{
-+ PK11SlotListElement *new_le;
-+ PK11_USE_THREADS(PZ_Lock((PZLock *)(list->lock));)
-+ new_le = le->next;
-+ if (le->next == NULL) {
-+ /* if the prev and next fields are NULL then either this element
-+ * has been removed and we need to walk the list again (if restart
-+ * is true) or this was the only element on the list */
-+ if ((le->prev == NULL) && restart && (list->head != le)) {
-+ new_le = list->head;
-+ }
-+ }
-+ if (new_le) new_le->refCount++;
-+ PK11_USE_THREADS(PZ_Unlock((PZLock *)(list->lock));)
-+ pk11_FreeListElement(list,le);
-+ return new_le;
-+}
-+
-+
-+/*
-+ * Find the element that holds this slot
-+ */
-+PK11SlotListElement *
-+PK11_FindSlotElement(PK11SlotList *list,PK11SlotInfo *slot)
-+{
-+ PK11SlotListElement *le;
-+
-+ for (le = PK11_GetFirstSafe(list); le;
-+ le = PK11_GetNextSafe(list,le,PR_TRUE)) {
-+ if (le->slot == slot) return le;
-+ }
-+ return NULL;
-+}
-+
-+/************************************************************
-+ * Generic Slot Utilities
-+ ************************************************************/
-+/*
-+ * Create a new slot structure
-+ */
-+PK11SlotInfo *
-+PK11_NewSlotInfo(SECMODModule *mod)
-+{
-+ PK11SlotInfo *slot;
-+
-+ slot = (PK11SlotInfo *)PORT_Alloc(sizeof(PK11SlotInfo));
-+ if (slot == NULL) return slot;
-+
-+#ifdef PKCS11_USE_THREADS
-+ slot->sessionLock = mod->isThreadSafe ?
-+ PZ_NewLock(nssILockSession) : (PZLock *)mod->refLock;
-+ if (slot->sessionLock == NULL) {
-+ PORT_Free(slot);
-+ return slot;
-+ }
-+ slot->freeListLock = PZ_NewLock(nssILockFreelist);
-+ if (slot->freeListLock == NULL) {
-+ if (mod->isThreadSafe) {
-+ PZ_DestroyLock(slot->sessionLock);
-+ }
-+ PORT_Free(slot);
-+ return slot;
-+ }
-+#else
-+ slot->sessionLock = NULL;
-+ slot->freeListLock = NULL;
-+#endif
-+ slot->freeSymKeysHead = NULL;
-+ slot->keyCount = 0;
-+ slot->maxKeyCount = 0;
-+ slot->functionList = NULL;
-+ slot->needTest = PR_TRUE;
-+ slot->isPerm = PR_FALSE;
-+ slot->isHW = PR_FALSE;
-+ slot->isInternal = PR_FALSE;
-+ slot->isThreadSafe = PR_FALSE;
-+ slot->disabled = PR_FALSE;
-+ slot->series = 1;
-+ slot->wrapKey = 0;
-+ slot->wrapMechanism = CKM_INVALID_MECHANISM;
-+ slot->refKeys[0] = CK_INVALID_HANDLE;
-+ slot->reason = PK11_DIS_NONE;
-+ slot->readOnly = PR_TRUE;
-+ slot->needLogin = PR_FALSE;
-+ slot->hasRandom = PR_FALSE;
-+ slot->defRWSession = PR_FALSE;
-+ slot->protectedAuthPath = PR_FALSE;
-+ slot->flags = 0;
-+ slot->session = CK_INVALID_SESSION;
-+ slot->slotID = 0;
-+ slot->defaultFlags = 0;
-+ slot->refCount = 1;
-+ slot->askpw = 0;
-+ slot->timeout = 0;
-+ slot->mechanismList = NULL;
-+ slot->mechanismCount = 0;
-+ slot->cert_array = NULL;
-+ slot->cert_count = 0;
-+ slot->slot_name[0] = 0;
-+ slot->token_name[0] = 0;
-+ PORT_Memset(slot->serial,' ',sizeof(slot->serial));
-+ slot->module = NULL;
-+ slot->authTransact = 0;
-+ slot->authTime = LL_ZERO;
-+ slot->minPassword = 0;
-+ slot->maxPassword = 0;
-+ slot->hasRootCerts = PR_FALSE;
-+ slot->nssToken = NULL;
-+ return slot;
-+}
-+
-+/* create a new reference to a slot so it doesn't go away */
-+PK11SlotInfo *
-+PK11_ReferenceSlot(PK11SlotInfo *slot)
-+{
-+ PR_AtomicIncrement(&slot->refCount);
-+ return slot;
-+}
-+
-+/* Destroy all info on a slot we have built up */
-+void
-+PK11_DestroySlot(PK11SlotInfo *slot)
-+{
-+ /* first free up all the sessions on this slot */
-+ if (slot->functionList) {
-+ PK11_GETTAB(slot)->C_CloseAllSessions(slot->slotID);
-+ }
-+
-+ /* free up the cached keys and sessions */
-+ PK11_CleanKeyList(slot);
-+
-+ if (slot->mechanismList) {
-+ PORT_Free(slot->mechanismList);
-+ }
-+#ifdef PKCS11_USE_THREADS
-+ if (slot->isThreadSafe && slot->sessionLock) {
-+ PZ_DestroyLock(slot->sessionLock);
-+ }
-+ slot->sessionLock = NULL;
-+ if (slot->freeListLock) {
-+ PZ_DestroyLock(slot->freeListLock);
-+ slot->freeListLock = NULL;
-+ }
-+#endif
-+
-+ /* finally Tell our parent module that we've gone away so it can unload */
-+ if (slot->module) {
-+ SECMOD_SlotDestroyModule(slot->module,PR_TRUE);
-+ }
-+
-+ /* ok, well not quit finally... now we free the memory */
-+ PORT_Free(slot);
-+}
-+
-+
-+/* We're all done with the slot, free it */
-+void
-+PK11_FreeSlot(PK11SlotInfo *slot)
-+{
-+ if (PR_AtomicDecrement(&slot->refCount) == 0) {
-+ PK11_DestroySlot(slot);
-+ }
-+}
-+
-+void
-+PK11_EnterSlotMonitor(PK11SlotInfo *slot) {
-+ PZ_Lock(slot->sessionLock);
-+}
-+
-+void
-+PK11_ExitSlotMonitor(PK11SlotInfo *slot) {
-+ PZ_Unlock(slot->sessionLock);
-+}
-+
-+/***********************************************************
-+ * Functions to find specific slots.
-+ ***********************************************************/
-+PRBool
-+SECMOD_HasRootCerts(void)
-+{
-+ SECMODModuleList *mlp;
-+ SECMODModuleList *modules = SECMOD_GetDefaultModuleList();
-+ SECMODListLock *moduleLock = SECMOD_GetDefaultModuleListLock();
-+ int i;
-+ PRBool found = PR_FALSE;
-+
-+ /* work through all the slots */
-+ SECMOD_GetReadLock(moduleLock);
-+ for(mlp = modules; mlp != NULL; mlp = mlp->next) {
-+ for (i=0; i < mlp->module->slotCount; i++) {
-+ PK11SlotInfo *tmpSlot = mlp->module->slots[i];
-+ if (PK11_IsPresent(tmpSlot)) {
-+ if (tmpSlot->hasRootCerts) {
-+ found = PR_TRUE;
-+ break;
-+ }
-+ }
-+ }
-+ if (found) break;
-+ }
-+ SECMOD_ReleaseReadLock(moduleLock);
-+
-+ return found;
-+}
-+
-+/***********************************************************
-+ * Functions to find specific slots.
-+ ***********************************************************/
-+PK11SlotList *
-+PK11_FindSlotsByNames(const char *dllName, const char* slotName,
-+ const char* tokenName, PRBool presentOnly)
-+{
-+ SECMODModuleList *mlp;
-+ SECMODModuleList *modules = SECMOD_GetDefaultModuleList();
-+ SECMODListLock *moduleLock = SECMOD_GetDefaultModuleListLock();
-+ int i;
-+ PK11SlotList* slotList = NULL;
-+ PRUint32 slotcount = 0;
-+ SECStatus rv = SECSuccess;
-+
-+ slotList = PK11_NewSlotList();
-+ if (!slotList) {
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ return NULL;
-+ }
-+
-+ if ( ((NULL == dllName) || (0 == *dllName)) &&
-+ ((NULL == slotName) || (0 == *slotName)) &&
-+ ((NULL == tokenName) || (0 == *tokenName)) ) {
-+ /* default to softoken */
-+ PK11_AddSlotToList(slotList, PK11_GetInternalKeySlot());
-+ return slotList;
-+ }
-+
-+ /* work through all the slots */
-+ SECMOD_GetReadLock(moduleLock);
-+ for (mlp = modules; mlp != NULL; mlp = mlp->next) {
-+ PORT_Assert(mlp->module);
-+ if (!mlp->module) {
-+ rv = SECFailure;
-+ break;
-+ }
-+ if ((!dllName) || (mlp->module->dllName &&
-+ (0 == PORT_Strcmp(mlp->module->dllName, dllName)))) {
-+ for (i=0; i < mlp->module->slotCount; i++) {
-+ PK11SlotInfo *tmpSlot = (mlp->module->slots?mlp->module->slots[i]:NULL);
-+ PORT_Assert(tmpSlot);
-+ if (!tmpSlot) {
-+ rv = SECFailure;
-+ break;
-+ }
-+ if ((PR_FALSE == presentOnly || PK11_IsPresent(tmpSlot)) &&
-+ ( (!tokenName) || (tmpSlot->token_name &&
-+ (0==PORT_Strcmp(tmpSlot->token_name, tokenName)))) &&
-+ ( (!slotName) || (tmpSlot->slot_name &&
-+ (0==PORT_Strcmp(tmpSlot->slot_name, slotName)))) ) {
-+ PK11SlotInfo* slot = PK11_ReferenceSlot(tmpSlot);
-+ if (slot) {
-+ PK11_AddSlotToList(slotList, slot);
-+ slotcount++;
-+ }
-+ }
-+ }
-+ }
-+ }
-+ SECMOD_ReleaseReadLock(moduleLock);
-+
-+ if ( (0 == slotcount) || (SECFailure == rv) ) {
-+ PORT_SetError(SEC_ERROR_NO_TOKEN);
-+ PK11_FreeSlotList(slotList);
-+ slotList = NULL;
-+ }
-+
-+ if (SECFailure == rv) {
-+ PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
-+ }
-+
-+ return slotList;
-+}
-+
-+PK11SlotInfo *
-+PK11_FindSlotByName(char *name)
-+{
-+ SECMODModuleList *mlp;
-+ SECMODModuleList *modules = SECMOD_GetDefaultModuleList();
-+ SECMODListLock *moduleLock = SECMOD_GetDefaultModuleListLock();
-+ int i;
-+ PK11SlotInfo *slot = NULL;
-+
-+ if ((name == NULL) || (*name == 0)) {
-+ return PK11_GetInternalKeySlot();
-+ }
-+
-+ /* work through all the slots */
-+ SECMOD_GetReadLock(moduleLock);
-+ for(mlp = modules; mlp != NULL; mlp = mlp->next) {
-+ for (i=0; i < mlp->module->slotCount; i++) {
-+ PK11SlotInfo *tmpSlot = mlp->module->slots[i];
-+ if (PK11_IsPresent(tmpSlot)) {
-+ if (PORT_Strcmp(tmpSlot->token_name,name) == 0) {
-+ slot = PK11_ReferenceSlot(tmpSlot);
-+ break;
-+ }
-+ }
-+ }
-+ if (slot != NULL) break;
-+ }
-+ SECMOD_ReleaseReadLock(moduleLock);
-+
-+ if (slot == NULL) {
-+ PORT_SetError(SEC_ERROR_NO_TOKEN);
-+ }
-+
-+ return slot;
-+}
-+
-+
-+PK11SlotInfo *
-+PK11_FindSlotBySerial(char *serial)
-+{
-+ SECMODModuleList *mlp;
-+ SECMODModuleList *modules = SECMOD_GetDefaultModuleList();
-+ SECMODListLock *moduleLock = SECMOD_GetDefaultModuleListLock();
-+ int i;
-+ PK11SlotInfo *slot = NULL;
-+
-+ /* work through all the slots */
-+ SECMOD_GetReadLock(moduleLock);
-+ for(mlp = modules; mlp != NULL; mlp = mlp->next) {
-+ for (i=0; i < mlp->module->slotCount; i++) {
-+ PK11SlotInfo *tmpSlot = mlp->module->slots[i];
-+ if (PK11_IsPresent(tmpSlot)) {
-+ if (PORT_Memcmp(tmpSlot->serial,serial,
-+ sizeof(tmpSlot->serial)) == 0) {
-+ slot = PK11_ReferenceSlot(tmpSlot);
-+ break;
-+ }
-+ }
-+ }
-+ if (slot != NULL) break;
-+ }
-+ SECMOD_ReleaseReadLock(moduleLock);
-+
-+ if (slot == NULL) {
-+ PORT_SetError(SEC_ERROR_NO_TOKEN);
-+ }
-+
-+ return slot;
-+}
-+
-+
-+
-+
-+/***********************************************************
-+ * Password Utilities
-+ ***********************************************************/
-+/*
-+ * Check the user's password. Log into the card if it's correct.
-+ * succeed if the user is already logged in.
-+ */
-+SECStatus
-+pk11_CheckPassword(PK11SlotInfo *slot,char *pw)
-+{
-+ int len = PORT_Strlen(pw);
-+ CK_RV crv;
-+ SECStatus rv;
-+ int64 currtime = PR_Now();
-+
-+ if (slot->protectedAuthPath) {
-+ len = 0;
-+ pw = NULL;
-+ }
-+
-+ PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_Login(slot->session,CKU_USER,
-+ (unsigned char *)pw,len);
-+ slot->lastLoginCheck = 0;
-+ PK11_ExitSlotMonitor(slot);
-+ switch (crv) {
-+ /* if we're already logged in, we're good to go */
-+ case CKR_OK:
-+ slot->authTransact = PK11_Global.transaction;
-+ case CKR_USER_ALREADY_LOGGED_IN:
-+ slot->authTime = currtime;
-+ rv = SECSuccess;
-+ break;
-+ case CKR_PIN_INCORRECT:
-+ PORT_SetError(SEC_ERROR_BAD_PASSWORD);
-+ rv = SECWouldBlock; /* everything else is ok, only the pin is bad */
-+ break;
-+ default:
-+ PORT_SetError(PK11_MapError(crv));
-+ rv = SECFailure; /* some failure we can't fix by retrying */
-+ }
-+ return rv;
-+}
-+
-+/*
-+ * Check the user's password. Logout before hand to make sure that
-+ * we are really checking the password.
-+ */
-+SECStatus
-+PK11_CheckUserPassword(PK11SlotInfo *slot,char *pw)
-+{
-+ int len = PORT_Strlen(pw);
-+ CK_RV crv;
-+ SECStatus rv;
-+ int64 currtime = PR_Now();
-+
-+ if (slot->protectedAuthPath) {
-+ len = 0;
-+ pw = NULL;
-+ }
-+
-+ /* force a logout */
-+ PK11_EnterSlotMonitor(slot);
-+ PK11_GETTAB(slot)->C_Logout(slot->session);
-+
-+ crv = PK11_GETTAB(slot)->C_Login(slot->session,CKU_USER,
-+ (unsigned char *)pw,len);
-+ slot->lastLoginCheck = 0;
-+ PK11_ExitSlotMonitor(slot);
-+ switch (crv) {
-+ /* if we're already logged in, we're good to go */
-+ case CKR_OK:
-+ slot->authTransact = PK11_Global.transaction;
-+ slot->authTime = currtime;
-+ rv = SECSuccess;
-+ break;
-+ case CKR_PIN_INCORRECT:
-+ PORT_SetError(SEC_ERROR_BAD_PASSWORD);
-+ rv = SECWouldBlock; /* everything else is ok, only the pin is bad */
-+ break;
-+ default:
-+ PORT_SetError(PK11_MapError(crv));
-+ rv = SECFailure; /* some failure we can't fix by retrying */
-+ }
-+ return rv;
-+}
-+
-+SECStatus
-+PK11_Logout(PK11SlotInfo *slot)
-+{
-+ CK_RV crv;
-+
-+ /* force a logout */
-+ PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_Logout(slot->session);
-+ slot->lastLoginCheck = 0;
-+ PK11_ExitSlotMonitor(slot);
-+ if (crv != CKR_OK) {
-+ PORT_SetError(PK11_MapError(crv));
-+ return SECFailure;
-+ }
-+ return SECSuccess;
-+}
-+
-+/*
-+ * transaction stuff is for when we test for the need to do every
-+ * time auth to see if we already did it for this slot/transaction
-+ */
-+void PK11_StartAuthTransaction(void)
-+{
-+PK11_Global.transaction++;
-+PK11_Global.inTransaction = PR_TRUE;
-+}
-+
-+void PK11_EndAuthTransaction(void)
-+{
-+PK11_Global.transaction++;
-+PK11_Global.inTransaction = PR_FALSE;
-+}
-+
-+/*
-+ * before we do a private key op, we check to see if we
-+ * need to reauthenticate.
-+ */
-+void
-+PK11_HandlePasswordCheck(PK11SlotInfo *slot,void *wincx)
-+{
-+ int askpw = slot->askpw;
-+ PRBool NeedAuth = PR_FALSE;
-+
-+ if (!slot->needLogin) return;
-+
-+ if ((slot->defaultFlags & PK11_OWN_PW_DEFAULTS) == 0) {
-+ PK11SlotInfo *def_slot = PK11_GetInternalKeySlot();
-+
-+ if (def_slot) {
-+ askpw = def_slot->askpw;
-+ PK11_FreeSlot(def_slot);
-+ }
-+ }
-+
-+ /* timeouts are handled by isLoggedIn */
-+ if (!PK11_IsLoggedIn(slot,wincx)) {
-+ NeedAuth = PR_TRUE;
-+ } else if (askpw == -1) {
-+ if (!PK11_Global.inTransaction ||
-+ (PK11_Global.transaction != slot->authTransact)) {
-+ PK11_EnterSlotMonitor(slot);
-+ PK11_GETTAB(slot)->C_Logout(slot->session);
-+ slot->lastLoginCheck = 0;
-+ PK11_ExitSlotMonitor(slot);
-+ NeedAuth = PR_TRUE;
-+ }
-+ }
-+ if (NeedAuth) PK11_DoPassword(slot,PR_TRUE,wincx);
-+}
-+
-+void
-+PK11_SlotDBUpdate(PK11SlotInfo *slot)
-+{
-+ SECMOD_UpdateModule(slot->module);
-+}
-+
-+/*
-+ * set new askpw and timeout values
-+ */
-+void
-+PK11_SetSlotPWValues(PK11SlotInfo *slot,int askpw, int timeout)
-+{
-+ slot->askpw = askpw;
-+ slot->timeout = timeout;
-+ slot->defaultFlags |= PK11_OWN_PW_DEFAULTS;
-+ PK11_SlotDBUpdate(slot);
-+}
-+
-+/*
-+ * Get the askpw and timeout values for this slot
-+ */
-+void
-+PK11_GetSlotPWValues(PK11SlotInfo *slot,int *askpw, int *timeout)
-+{
-+ *askpw = slot->askpw;
-+ *timeout = slot->timeout;
-+
-+ if ((slot->defaultFlags & PK11_OWN_PW_DEFAULTS) == 0) {
-+ PK11SlotInfo *def_slot = PK11_GetInternalKeySlot();
-+
-+ if (def_slot) {
-+ *askpw = def_slot->askpw;
-+ *timeout = def_slot->timeout;
-+ PK11_FreeSlot(def_slot);
-+ }
-+ }
-+}
-+
-+/*
-+ * make sure a slot is authenticated...
-+ */
-+SECStatus
-+PK11_Authenticate(PK11SlotInfo *slot, PRBool loadCerts, void *wincx) {
-+ if (slot->needLogin && !PK11_IsLoggedIn(slot,wincx)) {
-+ return PK11_DoPassword(slot,loadCerts,wincx);
-+ }
-+ return SECSuccess;
-+}
-+
-+/*
-+ * notification stub. If we ever get interested in any events that
-+ * the pkcs11 functions may pass back to use, we can catch them here...
-+ * currently pdata is a slotinfo structure.
-+ */
-+CK_RV pk11_notify(CK_SESSION_HANDLE session, CK_NOTIFICATION event,
-+ CK_VOID_PTR pdata)
-+{
-+ return CKR_OK;
-+}
-+
-+
-+/*
-+ * grab a new RW session
-+ * !!! has a side effect of grabbing the Monitor if either the slot's default
-+ * session is RW or the slot is not thread safe. Monitor is release in function
-+ * below
-+ */
-+CK_SESSION_HANDLE PK11_GetRWSession(PK11SlotInfo *slot)
-+{
-+ CK_SESSION_HANDLE rwsession;
-+ CK_RV crv;
-+
-+ if (!slot->isThreadSafe || slot->defRWSession) PK11_EnterSlotMonitor(slot);
-+ if (slot->defRWSession) return slot->session;
-+
-+ crv = PK11_GETTAB(slot)->C_OpenSession(slot->slotID,
-+ CKF_RW_SESSION|CKF_SERIAL_SESSION,
-+ slot, pk11_notify,&rwsession);
-+ if (crv == CKR_SESSION_COUNT) {
-+ PK11_GETTAB(slot)->C_CloseSession(slot->session);
-+ slot->session = CK_INVALID_SESSION;
-+ crv = PK11_GETTAB(slot)->C_OpenSession(slot->slotID,
-+ CKF_RW_SESSION|CKF_SERIAL_SESSION,
-+ slot,pk11_notify,&rwsession);
-+ }
-+ if (crv != CKR_OK) {
-+ PORT_SetError(PK11_MapError(crv));
-+ if (slot->session == CK_INVALID_SESSION) {
-+ PK11_GETTAB(slot)->C_OpenSession(slot->slotID,CKF_SERIAL_SESSION,
-+ slot,pk11_notify,&slot->session);
-+ }
-+ if (!slot->isThreadSafe) PK11_ExitSlotMonitor(slot);
-+ return CK_INVALID_SESSION;
-+ }
-+
-+ return rwsession;
-+}
-+
-+PRBool
-+PK11_RWSessionHasLock(PK11SlotInfo *slot,CK_SESSION_HANDLE session_handle) {
-+ return (PRBool)(!slot->isThreadSafe || slot->defRWSession);
-+}
-+
-+/*
-+ * close the rwsession and restore our readonly session
-+ * !!! has a side effect of releasing the Monitor if either the slot's default
-+ * session is RW or the slot is not thread safe.
-+ */
-+void
-+PK11_RestoreROSession(PK11SlotInfo *slot,CK_SESSION_HANDLE rwsession)
-+{
-+ if (slot->defRWSession) {
-+ PK11_ExitSlotMonitor(slot);
-+ return;
-+ }
-+ PK11_GETTAB(slot)->C_CloseSession(rwsession);
-+ if (slot->session == CK_INVALID_SESSION) {
-+ PK11_GETTAB(slot)->C_OpenSession(slot->slotID,CKF_SERIAL_SESSION,
-+ slot,pk11_notify,&slot->session);
-+ }
-+ if (!slot->isThreadSafe) PK11_ExitSlotMonitor(slot);
-+}
-+
-+/*
-+ * NOTE: this assumes that we are logged out of the card before hand
-+ */
-+SECStatus
-+PK11_CheckSSOPassword(PK11SlotInfo *slot, char *ssopw)
-+{
-+ CK_SESSION_HANDLE rwsession;
-+ CK_RV crv;
-+ SECStatus rv = SECFailure;
-+ int len = PORT_Strlen(ssopw);
-+
-+ /* get a rwsession */
-+ rwsession = PK11_GetRWSession(slot);
-+ if (rwsession == CK_INVALID_SESSION) return rv;
-+
-+ if (slot->protectedAuthPath) {
-+ len = 0;
-+ ssopw = NULL;
-+ }
-+
-+ /* check the password */
-+ crv = PK11_GETTAB(slot)->C_Login(rwsession,CKU_SO,
-+ (unsigned char *)ssopw,len);
-+ slot->lastLoginCheck = 0;
-+ switch (crv) {
-+ /* if we're already logged in, we're good to go */
-+ case CKR_OK:
-+ rv = SECSuccess;
-+ break;
-+ case CKR_PIN_INCORRECT:
-+ PORT_SetError(SEC_ERROR_BAD_PASSWORD);
-+ rv = SECWouldBlock; /* everything else is ok, only the pin is bad */
-+ break;
-+ default:
-+ PORT_SetError(PK11_MapError(crv));
-+ rv = SECFailure; /* some failure we can't fix by retrying */
-+ }
-+ PK11_GETTAB(slot)->C_Logout(rwsession);
-+ slot->lastLoginCheck = 0;
-+
-+ /* release rwsession */
-+ PK11_RestoreROSession(slot,rwsession);
-+ return rv;
-+}
-+
-+/*
-+ * make sure the password conforms to your token's requirements.
-+ */
-+SECStatus
-+PK11_VerifyPW(PK11SlotInfo *slot,char *pw)
-+{
-+ int len = PORT_Strlen(pw);
-+
-+ if ((slot->minPassword > len) || (slot->maxPassword < len)) {
-+ PORT_SetError(SEC_ERROR_BAD_DATA);
-+ return SECFailure;
-+ }
-+ return SECSuccess;
-+}
-+
-+/*
-+ * initialize a user PIN Value
-+ */
-+SECStatus
-+PK11_InitPin(PK11SlotInfo *slot,char *ssopw, char *userpw)
-+{
-+ CK_SESSION_HANDLE rwsession = CK_INVALID_SESSION;
-+ CK_RV crv;
-+ SECStatus rv = SECFailure;
-+ int len;
-+ int ssolen;
-+
-+ if (userpw == NULL) userpw = "";
-+ if (ssopw == NULL) ssopw = "";
-+
-+ len = PORT_Strlen(userpw);
-+ ssolen = PORT_Strlen(ssopw);
-+
-+ /* get a rwsession */
-+ rwsession = PK11_GetRWSession(slot);
-+ if (rwsession == CK_INVALID_SESSION) goto done;
-+
-+ if (slot->protectedAuthPath) {
-+ len = 0;
-+ ssolen = 0;
-+ ssopw = NULL;
-+ userpw = NULL;
-+ }
-+
-+ /* check the password */
-+ crv = PK11_GETTAB(slot)->C_Login(rwsession,CKU_SO,
-+ (unsigned char *)ssopw,ssolen);
-+ slot->lastLoginCheck = 0;
-+ if (crv != CKR_OK) {
-+ PORT_SetError(PK11_MapError(crv));
-+ goto done;
-+ }
-+
-+ crv = PK11_GETTAB(slot)->C_InitPIN(rwsession,(unsigned char *)userpw,len);
-+ if (crv != CKR_OK) {
-+ PORT_SetError(PK11_MapError(crv));
-+ } else {
-+ rv = SECSuccess;
-+ }
-+
-+done:
-+ PK11_GETTAB(slot)->C_Logout(rwsession);
-+ slot->lastLoginCheck = 0;
-+ PK11_RestoreROSession(slot,rwsession);
-+ if (rv == SECSuccess) {
-+ /* update our view of the world */
-+ PK11_InitToken(slot,PR_TRUE);
-+ PK11_EnterSlotMonitor(slot);
-+ PK11_GETTAB(slot)->C_Login(slot->session,CKU_USER,
-+ (unsigned char *)userpw,len);
-+ slot->lastLoginCheck = 0;
-+ PK11_ExitSlotMonitor(slot);
-+ }
-+ return rv;
-+}
-+
-+/*
-+ * Change an existing user password
-+ */
-+SECStatus
-+PK11_ChangePW(PK11SlotInfo *slot,char *oldpw, char *newpw)
-+{
-+ CK_RV crv;
-+ SECStatus rv = SECFailure;
-+ int newLen;
-+ int oldLen;
-+ CK_SESSION_HANDLE rwsession;
-+
-+ if (newpw == NULL) newpw = "";
-+ if (oldpw == NULL) oldpw = "";
-+ newLen = PORT_Strlen(newpw);
-+ oldLen = PORT_Strlen(oldpw);
-+
-+ /* get a rwsession */
-+ rwsession = PK11_GetRWSession(slot);
-+
-+ crv = PK11_GETTAB(slot)->C_SetPIN(rwsession,
-+ (unsigned char *)oldpw,oldLen,(unsigned char *)newpw,newLen);
-+ if (crv == CKR_OK) {
-+ rv = SECSuccess;
-+ } else {
-+ PORT_SetError(PK11_MapError(crv));
-+ }
-+
-+ PK11_RestoreROSession(slot,rwsession);
-+
-+ /* update our view of the world */
-+ PK11_InitToken(slot,PR_TRUE);
-+ return rv;
-+}
-+
-+static char *
-+pk11_GetPassword(PK11SlotInfo *slot, PRBool retry, void * wincx)
-+{
-+ if (PK11_Global.getPass == NULL) return NULL;
-+ return (*PK11_Global.getPass)(slot, retry, wincx);
-+}
-+
-+void
-+PK11_SetPasswordFunc(PK11PasswordFunc func)
-+{
-+ PK11_Global.getPass = func;
-+}
-+
-+void
-+PK11_SetVerifyPasswordFunc(PK11VerifyPasswordFunc func)
-+{
-+ PK11_Global.verifyPass = func;
-+}
-+
-+void
-+PK11_SetIsLoggedInFunc(PK11IsLoggedInFunc func)
-+{
-+ PK11_Global.isLoggedIn = func;
-+}
-+
-+
-+/*
-+ * authenticate to a slot. This loops until we can't recover, the user
-+ * gives up, or we succeed. If we're already logged in and this function
-+ * is called we will still prompt for a password, but we will probably
-+ * succeed no matter what the password was (depending on the implementation
-+ * of the PKCS 11 module.
-+ */
-+SECStatus
-+PK11_DoPassword(PK11SlotInfo *slot, PRBool loadCerts, void *wincx)
-+{
-+ SECStatus rv = SECFailure;
-+ char * password;
-+ PRBool attempt = PR_FALSE;
-+
-+ if (PK11_NeedUserInit(slot)) {
-+ PORT_SetError(SEC_ERROR_IO);
-+ return SECFailure;
-+ }
-+
-+
-+ /*
-+ * Central server type applications which control access to multiple
-+ * slave applications to single crypto devices need to virtuallize the
-+ * login state. This is done by a callback out of PK11_IsLoggedIn and
-+ * here. If we are actually logged in, then we got here because the
-+ * higher level code told us that the particular client application may
-+ * still need to be logged in. If that is the case, we simply tell the
-+ * server code that it should now verify the clients password and tell us
-+ * the results.
-+ */
-+ if (PK11_IsLoggedIn(slot,NULL) &&
-+ (PK11_Global.verifyPass != NULL)) {
-+ if (!PK11_Global.verifyPass(slot,wincx)) {
-+ PORT_SetError(SEC_ERROR_BAD_PASSWORD);
-+ return SECFailure;
-+ }
-+ return SECSuccess;
-+ }
-+
-+ /* get the password. This can drop out of the while loop
-+ * for the following reasons:
-+ * (1) the user refused to enter a password.
-+ * (return error to caller)
-+ * (2) the token user password is disabled [usually due to
-+ * too many failed authentication attempts].
-+ * (return error to caller)
-+ * (3) the password was successful.
-+ */
-+ while ((password = pk11_GetPassword(slot, attempt, wincx)) != NULL) {
-+ attempt = PR_TRUE;
-+ rv = pk11_CheckPassword(slot,password);
-+ PORT_Memset(password, 0, PORT_Strlen(password));
-+ PORT_Free(password);
-+ if (rv != SECWouldBlock) break;
-+ }
-+ if (rv == SECSuccess) {
-+ rv = pk11_CheckVerifyTest(slot);
-+ if (!PK11_IsFriendly(slot)) {
-+ nssTrustDomain_UpdateCachedTokenCerts(slot->nssToken->trustDomain,
-+ slot->nssToken);
-+ }
-+ } else if (!attempt) PORT_SetError(SEC_ERROR_BAD_PASSWORD);
-+ return rv;
-+}
-+
-+void PK11_LogoutAll(void)
-+{
-+ SECMODListLock *lock = SECMOD_GetDefaultModuleListLock();
-+ SECMODModuleList *modList = SECMOD_GetDefaultModuleList();
-+ SECMODModuleList *mlp = NULL;
-+ int i;
-+
-+ SECMOD_GetReadLock(lock);
-+ /* find the number of entries */
-+ for (mlp = modList; mlp != NULL; mlp = mlp->next) {
-+ for (i=0; i < mlp->module->slotCount; i++) {
-+ PK11_Logout(mlp->module->slots[i]);
-+ }
-+ }
-+
-+ SECMOD_ReleaseReadLock(lock);
-+}
-+
-+int
-+PK11_GetMinimumPwdLength(PK11SlotInfo *slot)
-+{
-+ return ((int)slot->minPassword);
-+}
-+
-+/************************************************************
-+ * Manage the built-In Slot Lists
-+ ************************************************************/
-+
-+/* Init the static built int slot list (should actually integrate
-+ * with PK11_NewSlotList */
-+static void
-+pk11_initSlotList(PK11SlotList *list)
-+{
-+#ifdef PKCS11_USE_THREADS
-+ list->lock = PZ_NewLock(nssILockList);
-+#else
-+ list->lock = NULL;
-+#endif
-+ list->head = NULL;
-+}
-+
-+static void
-+pk11_freeSlotList(PK11SlotList *list)
-+{
-+ PK11SlotListElement *le, *next ;
-+ if (list == NULL) return;
-+
-+ for (le = list->head ; le; le = next) {
-+ next = le->next;
-+ pk11_FreeListElement(list,le);
-+ }
-+#ifdef PK11_USE_THREADS
-+ if (list->lock) {
-+ PZ_DestroyLock((PZLock *)(list->lock));
-+ }
-+#endif
-+ list->lock = NULL;
-+ list->head = NULL;
-+}
-+
-+/* initialize the system slotlists */
-+SECStatus
-+PK11_InitSlotLists(void)
-+{
-+ pk11_initSlotList(&pk11_aesSlotList);
-+ pk11_initSlotList(&pk11_desSlotList);
-+ pk11_initSlotList(&pk11_rc4SlotList);
-+ pk11_initSlotList(&pk11_rc2SlotList);
-+ pk11_initSlotList(&pk11_rc5SlotList);
-+ pk11_initSlotList(&pk11_md5SlotList);
-+ pk11_initSlotList(&pk11_md2SlotList);
-+ pk11_initSlotList(&pk11_sha1SlotList);
-+ pk11_initSlotList(&pk11_rsaSlotList);
-+ pk11_initSlotList(&pk11_dsaSlotList);
-+ pk11_initSlotList(&pk11_dhSlotList);
-+ pk11_initSlotList(&pk11_ecSlotList);
-+ pk11_initSlotList(&pk11_ideaSlotList);
-+ pk11_initSlotList(&pk11_sslSlotList);
-+ pk11_initSlotList(&pk11_tlsSlotList);
-+ pk11_initSlotList(&pk11_randomSlotList);
-+ pk11_initSlotList(&pk11_sha256SlotList);
-+ pk11_initSlotList(&pk11_sha512SlotList);
-+ return SECSuccess;
-+}
-+
-+void
-+PK11_DestroySlotLists(void)
-+{
-+ pk11_freeSlotList(&pk11_aesSlotList);
-+ pk11_freeSlotList(&pk11_desSlotList);
-+ pk11_freeSlotList(&pk11_rc4SlotList);
-+ pk11_freeSlotList(&pk11_rc2SlotList);
-+ pk11_freeSlotList(&pk11_rc5SlotList);
-+ pk11_freeSlotList(&pk11_md5SlotList);
-+ pk11_freeSlotList(&pk11_md2SlotList);
-+ pk11_freeSlotList(&pk11_sha1SlotList);
-+ pk11_freeSlotList(&pk11_rsaSlotList);
-+ pk11_freeSlotList(&pk11_dsaSlotList);
-+ pk11_freeSlotList(&pk11_dhSlotList);
-+ pk11_freeSlotList(&pk11_ecSlotList);
-+ pk11_freeSlotList(&pk11_ideaSlotList);
-+ pk11_freeSlotList(&pk11_sslSlotList);
-+ pk11_freeSlotList(&pk11_tlsSlotList);
-+ pk11_freeSlotList(&pk11_randomSlotList);
-+ pk11_freeSlotList(&pk11_sha256SlotList);
-+ pk11_freeSlotList(&pk11_sha512SlotList);
-+ return;
-+}
-+
-+/* return a system slot list based on mechanism */
-+PK11SlotList *
-+PK11_GetSlotList(CK_MECHANISM_TYPE type)
-+{
-+/* XXX a workaround for Bugzilla bug #55267 */
-+#if defined(HPUX) && defined(__LP64__)
-+ if (CKM_INVALID_MECHANISM == type)
-+ return NULL;
-+#endif
-+ switch (type) {
-+ case CKM_AES_CBC:
-+ case CKM_AES_ECB:
-+ return &pk11_aesSlotList;
-+ case CKM_DES_CBC:
-+ case CKM_DES_ECB:
-+ case CKM_DES3_ECB:
-+ case CKM_DES3_CBC:
-+ return &pk11_desSlotList;
-+ case CKM_RC4:
-+ return &pk11_rc4SlotList;
-+ case CKM_RC5_CBC:
-+ return &pk11_rc5SlotList;
-+ case CKM_SHA_1:
-+ return &pk11_sha1SlotList;
-+ case CKM_SHA256:
-+ return &pk11_sha256SlotList;
-+ case CKM_SHA384:
-+ case CKM_SHA512:
-+ return &pk11_sha512SlotList;
-+ case CKM_MD5:
-+ return &pk11_md5SlotList;
-+ case CKM_MD2:
-+ return &pk11_md2SlotList;
-+ case CKM_RC2_ECB:
-+ case CKM_RC2_CBC:
-+ return &pk11_rc2SlotList;
-+ case CKM_RSA_PKCS:
-+ case CKM_RSA_PKCS_KEY_PAIR_GEN:
-+ case CKM_RSA_X_509:
-+ return &pk11_rsaSlotList;
-+ case CKM_DSA:
-+ return &pk11_dsaSlotList;
-+ case CKM_DH_PKCS_KEY_PAIR_GEN:
-+ case CKM_DH_PKCS_DERIVE:
-+ return &pk11_dhSlotList;
-+ case CKM_ECDSA:
-+ case CKM_ECDSA_SHA1:
-+ case CKM_EC_KEY_PAIR_GEN: /* aka CKM_ECDSA_KEY_PAIR_GEN */
-+ case CKM_ECDH1_DERIVE:
-+ return &pk11_ecSlotList;
-+ case CKM_SSL3_PRE_MASTER_KEY_GEN:
-+ case CKM_SSL3_MASTER_KEY_DERIVE:
-+ case CKM_SSL3_SHA1_MAC:
-+ case CKM_SSL3_MD5_MAC:
-+ return &pk11_sslSlotList;
-+ case CKM_TLS_MASTER_KEY_DERIVE:
-+ case CKM_TLS_KEY_AND_MAC_DERIVE:
-+ return &pk11_tlsSlotList;
-+ case CKM_IDEA_CBC:
-+ case CKM_IDEA_ECB:
-+ return &pk11_ideaSlotList;
-+ case CKM_FAKE_RANDOM:
-+ return &pk11_randomSlotList;
-+ }
-+ return NULL;
-+}
-+
-+/*
-+ * load the static SlotInfo structures used to select a PKCS11 slot.
-+ * preSlotInfo has a list of all the default flags for the slots on this
-+ * module.
-+ */
-+void
-+PK11_LoadSlotList(PK11SlotInfo *slot, PK11PreSlotInfo *psi, int count)
-+{
-+ int i;
-+
-+ for (i=0; i < count; i++) {
-+ if (psi[i].slotID == slot->slotID)
-+ break;
-+ }
-+
-+ if (i == count) return;
-+
-+ slot->defaultFlags = psi[i].defaultFlags;
-+ slot->askpw = psi[i].askpw;
-+ slot->timeout = psi[i].timeout;
-+ slot->hasRootCerts = psi[i].hasRootCerts;
-+
-+ /* if the slot is already disabled, don't load them into the
-+ * default slot lists. We get here so we can save the default
-+ * list value. */
-+ if (slot->disabled) return;
-+
-+ /* if the user has disabled us, don't load us in */
-+ if (slot->defaultFlags & PK11_DISABLE_FLAG) {
-+ slot->disabled = PR_TRUE;
-+ slot->reason = PK11_DIS_USER_SELECTED;
-+ /* free up sessions and things?? */
-+ return;
-+ }
-+
-+ for (i=0; i < num_pk11_default_mechanisms; i++) {
-+ if (slot->defaultFlags & PK11_DefaultArray[i].flag) {
-+ CK_MECHANISM_TYPE mechanism = PK11_DefaultArray[i].mechanism;
-+ PK11SlotList *slotList = PK11_GetSlotList(mechanism);
-+
-+ if (slotList) PK11_AddSlotToList(slotList,slot);
-+ }
-+ }
-+
-+ return;
-+}
-+
-+
-+/*
-+ * update a slot to its new attribute according to the slot list
-+ * returns: SECSuccess if nothing to do or add/delete is successful
-+ */
-+SECStatus
-+PK11_UpdateSlotAttribute(PK11SlotInfo *slot, PK11DefaultArrayEntry *entry,
-+ PRBool add)
-+ /* add: PR_TRUE if want to turn on */
-+{
-+ SECStatus result = SECSuccess;
-+ PK11SlotList *slotList = PK11_GetSlotList(entry->mechanism);
-+
-+ if (add) { /* trying to turn on a mechanism */
-+
-+ /* turn on the default flag in the slot */
-+ slot->defaultFlags |= entry->flag;
-+
-+ /* add this slot to the list */
-+ if (slotList!=NULL)
-+ result = PK11_AddSlotToList(slotList, slot);
-+
-+ } else { /* trying to turn off */
-+
-+ /* turn OFF the flag in the slot */
-+ slot->defaultFlags &= ~entry->flag;
-+
-+ if (slotList) {
-+ /* find the element in the list & delete it */
-+ PK11SlotListElement *le = PK11_FindSlotElement(slotList, slot);
-+
-+ /* remove the slot from the list */
-+ if (le)
-+ result = PK11_DeleteSlotFromList(slotList, le);
-+ }
-+ }
-+ return result;
-+}
-+
-+/*
-+ * clear a slot off of all of it's default list
-+ */
-+void
-+PK11_ClearSlotList(PK11SlotInfo *slot)
-+{
-+ int i;
-+
-+ if (slot->disabled) return;
-+ if (slot->defaultFlags == 0) return;
-+
-+ for (i=0; i < num_pk11_default_mechanisms; i++) {
-+ if (slot->defaultFlags & PK11_DefaultArray[i].flag) {
-+ CK_MECHANISM_TYPE mechanism = PK11_DefaultArray[i].mechanism;
-+ PK11SlotList *slotList = PK11_GetSlotList(mechanism);
-+ PK11SlotListElement *le = NULL;
-+
-+ if (slotList) le = PK11_FindSlotElement(slotList,slot);
-+
-+ if (le) {
-+ PK11_DeleteSlotFromList(slotList,le);
-+ pk11_FreeListElement(slotList,le);
-+ }
-+ }
-+ }
-+}
-+
-+
-+/******************************************************************
-+ * Slot initialization
-+ ******************************************************************/
-+/*
-+ * turn a PKCS11 Static Label into a string
-+ */
-+char *
-+PK11_MakeString(PRArenaPool *arena,char *space,
-+ char *staticString,int stringLen)
-+{
-+ int i;
-+ char *newString;
-+ for(i=(stringLen-1); i >= 0; i--) {
-+ if (staticString[i] != ' ') break;
-+ }
-+ /* move i to point to the last space */
-+ i++;
-+ if (arena) {
-+ newString = (char*)PORT_ArenaAlloc(arena,i+1 /* space for NULL */);
-+ } else if (space) {
-+ newString = space;
-+ } else {
-+ newString = (char*)PORT_Alloc(i+1 /* space for NULL */);
-+ }
-+ if (newString == NULL) return NULL;
-+
-+ if (i) PORT_Memcpy(newString,staticString, i);
-+ newString[i] = 0;
-+
-+ return newString;
-+}
-+
-+/*
-+ * verify that slot implements Mechanism mech properly by checking against
-+ * our internal implementation
-+ */
-+PRBool
-+PK11_VerifyMechanism(PK11SlotInfo *slot,PK11SlotInfo *intern,
-+ CK_MECHANISM_TYPE mech, SECItem *data, SECItem *iv)
-+{
-+ PK11Context *test = NULL, *reference = NULL;
-+ PK11SymKey *symKey = NULL, *testKey = NULL;
-+ SECItem *param = NULL;
-+ unsigned char encTest[8];
-+ unsigned char encRef[8];
-+ int outLenTest,outLenRef;
-+ int key_size = 0;
-+ PRBool verify = PR_FALSE;
-+ SECStatus rv;
-+
-+ if ((mech == CKM_RC2_CBC) || (mech == CKM_RC2_ECB) || (mech == CKM_RC4)) {
-+ key_size = 16;
-+ }
-+
-+ /* initialize the mechanism parameter */
-+ param = PK11_ParamFromIV(mech,iv);
-+ if (param == NULL) goto loser;
-+
-+ /* load the keys and contexts */
-+ symKey = PK11_KeyGen(intern,mech,NULL, key_size, NULL);
-+ if (symKey == NULL) goto loser;
-+
-+ reference = PK11_CreateContextBySymKey(mech, CKA_ENCRYPT, symKey, param);
-+ if (reference == NULL) goto loser;
-+
-+ testKey = pk11_CopyToSlot(slot, mech, CKA_ENCRYPT, symKey);
-+ if (testKey == NULL) goto loser;
-+
-+ test = PK11_CreateContextBySymKey(mech, CKA_ENCRYPT, testKey, param);
-+ if (test == NULL) goto loser;
-+ SECITEM_FreeItem(param,PR_TRUE); param = NULL;
-+
-+ /* encrypt the test data */
-+ rv = PK11_CipherOp(test,encTest,&outLenTest,sizeof(encTest),
-+ data->data,data->len);
-+ if (rv != SECSuccess) goto loser;
-+ rv = PK11_CipherOp(reference,encRef,&outLenRef,sizeof(encRef),
-+ data->data,data->len);
-+ if (rv != SECSuccess) goto loser;
-+
-+ PK11_DestroyContext(reference,PR_TRUE); reference = NULL;
-+ PK11_DestroyContext(test,PR_TRUE); test = NULL;
-+
-+ if (outLenTest != outLenRef) goto loser;
-+ if (PORT_Memcmp(encTest, encRef, outLenTest) != 0) goto loser;
-+
-+ verify = PR_TRUE;
-+
-+loser:
-+ if (test) PK11_DestroyContext(test,PR_TRUE);
-+ if (symKey) PK11_FreeSymKey(symKey);
-+ if (testKey) PK11_FreeSymKey(testKey);
-+ if (reference) PK11_DestroyContext(reference,PR_TRUE);
-+ if (param) SECITEM_FreeItem(param,PR_TRUE);
-+
-+ return verify;
-+}
-+
-+/*
-+ * this code verifies that the advertised mechanisms are what they
-+ * seem to be.
-+ */
-+#define MAX_MECH_LIST_SIZE 30 /* we only know of about 30 odd mechanisms */
-+PRBool
-+PK11_VerifySlotMechanisms(PK11SlotInfo *slot)
-+{
-+ CK_MECHANISM_TYPE mechListArray[MAX_MECH_LIST_SIZE];
-+ CK_MECHANISM_TYPE *mechList = mechListArray;
-+ static SECItem data;
-+ static SECItem iv;
-+ static unsigned char dataV[8];
-+ static unsigned char ivV[8];
-+ static PRBool generated = PR_FALSE;
-+ CK_ULONG count;
-+ int i;
-+ CK_RV crv;
-+
-+ PRBool alloced = PR_FALSE;
-+ PK11SlotInfo *intern = PK11_GetInternalSlot();
-+
-+ /* if we couldn't initialize an internal module,
-+ * we can't check external ones */
-+ if (intern == NULL) return PR_FALSE;
-+
-+ /* first get the count of mechanisms */
-+ if (!slot->isThreadSafe) PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_GetMechanismList(slot->slotID,NULL,&count);
-+ if (!slot->isThreadSafe) PK11_ExitSlotMonitor(slot);
-+ if (crv != CKR_OK) {
-+ PK11_FreeSlot(intern);
-+ return PR_FALSE;
-+ }
-+
-+
-+ /* don't blow up just because the card supports more mechanisms than
-+ * we know about, just alloc space for them */
-+ if (count > MAX_MECH_LIST_SIZE) {
-+ mechList = (CK_MECHANISM_TYPE *)
-+ PORT_Alloc(count *sizeof(CK_MECHANISM_TYPE));
-+ alloced = PR_TRUE;
-+ if (mechList == NULL) {
-+ PK11_FreeSlot(intern);
-+ return PR_FALSE;
-+ }
-+ }
-+ /* get the list */
-+ if (!slot->isThreadSafe) PK11_EnterSlotMonitor(slot);
-+ crv =PK11_GETTAB(slot)->C_GetMechanismList(slot->slotID, mechList, &count);
-+ if (!slot->isThreadSafe) PK11_ExitSlotMonitor(slot);
-+ if (crv != CKR_OK) {
-+ if (alloced) PORT_Free(mechList);
-+ PK11_FreeSlot(intern);
-+ return PR_FALSE;
-+ }
-+
-+ if (!generated) {
-+ data.data = dataV;
-+ data.len = sizeof(dataV);
-+ iv.data = ivV;
-+ iv.len = sizeof(ivV);
-+ /* ok, this is a cheat, we know our internal random number generater
-+ * is thread safe */
-+ PK11_GETTAB(intern)->C_GenerateRandom(intern->session,
-+ data.data, data.len);
-+ PK11_GETTAB(intern)->C_GenerateRandom(intern->session,
-+ iv.data, iv.len);
-+ }
-+ for (i=0; i < (int) count; i++) {
-+ switch (mechList[i]) {
-+ case CKM_DES_CBC:
-+ case CKM_DES_ECB:
-+ case CKM_RC4:
-+ case CKM_RC2_CBC:
-+ case CKM_RC2_ECB:
-+ if (!PK11_VerifyMechanism(slot,intern,mechList[i],&data,&iv)){
-+ if (alloced) PORT_Free(mechList);
-+ PK11_FreeSlot(intern);
-+ return PR_FALSE;
-+ }
-+ }
-+ }
-+ if (alloced) PORT_Free(mechList);
-+ PK11_FreeSlot(intern);
-+ return PR_TRUE;
-+}
-+
-+/*
-+ * See if we need to run the verify test, do so if necessary. If we fail,
-+ * disable the slot.
-+ */
-+SECStatus
-+pk11_CheckVerifyTest(PK11SlotInfo *slot)
-+{
-+ PK11_EnterSlotMonitor(slot);
-+ if (slot->needTest) {
-+ slot->needTest = PR_FALSE;
-+ PK11_ExitSlotMonitor(slot);
-+ if (!PK11_VerifySlotMechanisms(slot)) {
-+ (void)PK11_GETTAB(slot)->C_CloseSession(slot->session);
-+ slot->session = CK_INVALID_SESSION;
-+ PK11_ClearSlotList(slot);
-+ slot->disabled = PR_TRUE;
-+ slot->reason = PK11_DIS_TOKEN_VERIFY_FAILED;
-+ slot->needTest = PR_TRUE;
-+ PORT_SetError(SEC_ERROR_IO);
-+ return SECFailure;
-+ }
-+ } else {
-+ PK11_ExitSlotMonitor(slot);
-+ }
-+ return SECSuccess;
-+}
-+
-+/*
-+ * Reads in the slots mechanism list for later use
-+ */
-+SECStatus
-+PK11_ReadMechanismList(PK11SlotInfo *slot)
-+{
-+ CK_ULONG count;
-+ CK_RV crv;
-+ PRUint32 i;
-+
-+ if (slot->mechanismList) {
-+ PORT_Free(slot->mechanismList);
-+ slot->mechanismList = NULL;
-+ }
-+ slot->mechanismCount = 0;
-+
-+ if (!slot->isThreadSafe) PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_GetMechanismList(slot->slotID,NULL,&count);
-+ if (crv != CKR_OK) {
-+ if (!slot->isThreadSafe) PK11_ExitSlotMonitor(slot);
-+ PORT_SetError(PK11_MapError(crv));
-+ return SECFailure;
-+ }
-+
-+ slot->mechanismList = (CK_MECHANISM_TYPE *)
-+ PORT_Alloc(count *sizeof(CK_MECHANISM_TYPE));
-+ if (slot->mechanismList == NULL) {
-+ if (!slot->isThreadSafe) PK11_ExitSlotMonitor(slot);
-+ return SECFailure;
-+ }
-+ crv = PK11_GETTAB(slot)->C_GetMechanismList(slot->slotID,
-+ slot->mechanismList, &count);
-+ if (!slot->isThreadSafe) PK11_ExitSlotMonitor(slot);
-+ if (crv != CKR_OK) {
-+ PORT_Free(slot->mechanismList);
-+ slot->mechanismList = NULL;
-+ PORT_SetError(PK11_MapError(crv));
-+ return SECSuccess;
-+ }
-+ slot->mechanismCount = count;
-+ PORT_Memset(slot->mechanismBits, 0, sizeof(slot->mechanismBits));
-+
-+ for (i=0; i < count; i++) {
-+ CK_MECHANISM_TYPE mech = slot->mechanismList[i];
-+ if (mech < 0x7ff) {
-+ slot->mechanismBits[mech & 0xff] |= 1 << (mech >> 8);
-+ }
-+ }
-+ return SECSuccess;
-+}
-+
-+/*
-+ * initialize a new token
-+ * unlike initialize slot, this can be called multiple times in the lifetime
-+ * of NSS. It reads the information associated with a card or token,
-+ * that is not going to change unless the card or token changes.
-+ */
-+SECStatus
-+PK11_InitToken(PK11SlotInfo *slot, PRBool loadCerts)
-+{
-+ CK_TOKEN_INFO tokenInfo;
-+ CK_RV crv;
-+ char *tmp;
-+ SECStatus rv;
-+
-+ /* set the slot flags to the current token values */
-+ if (!slot->isThreadSafe) PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_GetTokenInfo(slot->slotID,&tokenInfo);
-+ if (!slot->isThreadSafe) PK11_ExitSlotMonitor(slot);
-+ if (crv != CKR_OK) {
-+ PORT_SetError(PK11_MapError(crv));
-+ return SECFailure;
-+ }
-+
-+ /* set the slot flags to the current token values */
-+ slot->series++; /* allow other objects to detect that the
-+ * slot is different */
-+ slot->flags = tokenInfo.flags;
-+ slot->needLogin = ((tokenInfo.flags & CKF_LOGIN_REQUIRED) ?
-+ PR_TRUE : PR_FALSE);
-+ slot->readOnly = ((tokenInfo.flags & CKF_WRITE_PROTECTED) ?
-+ PR_TRUE : PR_FALSE);
-+ slot->hasRandom = ((tokenInfo.flags & CKF_RNG) ? PR_TRUE : PR_FALSE);
-+ slot->protectedAuthPath =
-+ ((tokenInfo.flags & CKF_PROTECTED_AUTHENTICATION_PATH)
-+ ? PR_TRUE : PR_FALSE);
-+ slot->lastLoginCheck = 0;
-+ slot->lastState = 0;
-+ /* on some platforms Active Card incorrectly sets the
-+ * CKF_PROTECTED_AUTHENTICATION_PATH bit when it doesn't mean to. */
-+ if (slot->isActiveCard) {
-+ slot->protectedAuthPath = PR_FALSE;
-+ }
-+ tmp = PK11_MakeString(NULL,slot->token_name,
-+ (char *)tokenInfo.label, sizeof(tokenInfo.label));
-+ slot->minPassword = tokenInfo.ulMinPinLen;
-+ slot->maxPassword = tokenInfo.ulMaxPinLen;
-+ PORT_Memcpy(slot->serial,tokenInfo.serialNumber,sizeof(slot->serial));
-+
-+ nssToken_UpdateName(slot->nssToken);
-+
-+ slot->defRWSession = (PRBool)((!slot->readOnly) &&
-+ (tokenInfo.ulMaxSessionCount == 1));
-+ rv = PK11_ReadMechanismList(slot);
-+ if (rv != SECSuccess) return rv;
-+
-+ slot->hasRSAInfo = PR_FALSE;
-+ slot->RSAInfoFlags = 0;
-+
-+ /* initialize the maxKeyCount value */
-+ if (tokenInfo.ulMaxSessionCount == 0) {
-+ slot->maxKeyCount = 800; /* should be #define or a config param */
-+ } else if (tokenInfo.ulMaxSessionCount < 20) {
-+ /* don't have enough sessions to keep that many keys around */
-+ slot->maxKeyCount = 0;
-+ } else {
-+ slot->maxKeyCount = tokenInfo.ulMaxSessionCount/2;
-+ }
-+
-+ /* Make sure our session handle is valid */
-+ if (slot->session == CK_INVALID_SESSION) {
-+ /* we know we don't have a valid session, go get one */
-+ CK_SESSION_HANDLE session;
-+
-+ /* session should be Readonly, serial */
-+ if (!slot->isThreadSafe) PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_OpenSession(slot->slotID,
-+ (slot->defRWSession ? CKF_RW_SESSION : 0) | CKF_SERIAL_SESSION,
-+ slot,pk11_notify,&session);
-+ if (!slot->isThreadSafe) PK11_ExitSlotMonitor(slot);
-+ if (crv != CKR_OK) {
-+ PORT_SetError(PK11_MapError(crv));
-+ return SECFailure;
-+ }
-+ slot->session = session;
-+ } else {
-+ /* The session we have may be defunct (the token associated with it)
-+ * has been removed */
-+ CK_SESSION_INFO sessionInfo;
-+
-+ if (!slot->isThreadSafe) PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_GetSessionInfo(slot->session,&sessionInfo);
-+ if (crv == CKR_DEVICE_ERROR) {
-+ PK11_GETTAB(slot)->C_CloseSession(slot->session);
-+ crv = CKR_SESSION_CLOSED;
-+ }
-+ if ((crv==CKR_SESSION_CLOSED) || (crv==CKR_SESSION_HANDLE_INVALID)) {
-+ crv =PK11_GETTAB(slot)->C_OpenSession(slot->slotID,
-+ (slot->defRWSession ? CKF_RW_SESSION : 0) | CKF_SERIAL_SESSION,
-+ slot,pk11_notify,&slot->session);
-+ if (crv != CKR_OK) {
-+ PORT_SetError(PK11_MapError(crv));
-+ slot->session = CK_INVALID_SESSION;
-+ if (!slot->isThreadSafe) PK11_ExitSlotMonitor(slot);
-+ return SECFailure;
-+ }
-+ }
-+ if (!slot->isThreadSafe) PK11_ExitSlotMonitor(slot);
-+ }
-+
-+ nssToken_Refresh(slot->nssToken);
-+
-+ if (!(slot->needLogin)) {
-+ return pk11_CheckVerifyTest(slot);
-+ }
-+
-+
-+ if (!(slot->isInternal) && (slot->hasRandom)) {
-+ /* if this slot has a random number generater, use it to add entropy
-+ * to the internal slot. */
-+ PK11SlotInfo *int_slot = PK11_GetInternalSlot();
-+
-+ if (int_slot) {
-+ unsigned char random_bytes[32];
-+
-+ /* if this slot can issue random numbers, get some entropy from
-+ * that random number generater and give it to our internal token.
-+ */
-+ PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_GenerateRandom
-+ (slot->session,random_bytes, sizeof(random_bytes));
-+ PK11_ExitSlotMonitor(slot);
-+ if (crv == CKR_OK) {
-+ PK11_EnterSlotMonitor(int_slot);
-+ PK11_GETTAB(int_slot)->C_SeedRandom(int_slot->session,
-+ random_bytes, sizeof(random_bytes));
-+ PK11_ExitSlotMonitor(int_slot);
-+ }
-+
-+ /* Now return the favor and send entropy to the token's random
-+ * number generater */
-+ PK11_EnterSlotMonitor(int_slot);
-+ crv = PK11_GETTAB(int_slot)->C_GenerateRandom(int_slot->session,
-+ random_bytes, sizeof(random_bytes));
-+ PK11_ExitSlotMonitor(int_slot);
-+ if (crv == CKR_OK) {
-+ PK11_EnterSlotMonitor(slot);
-+ PK11_GETTAB(slot)->C_SeedRandom(slot->session,
-+ random_bytes, sizeof(random_bytes));
-+ PK11_ExitSlotMonitor(slot);
-+ }
-+ PK11_FreeSlot(int_slot);
-+ }
-+ }
-+
-+
-+ return SECSuccess;
-+}
-+
-+/*
-+ * initialize a new token
-+ * unlike initialize slot, this can be called multiple times in the lifetime
-+ * of NSS. It reads the information associated with a card or token,
-+ * that is not going to change unless the card or token changes.
-+ */
-+SECStatus
-+PK11_TokenRefresh(PK11SlotInfo *slot)
-+{
-+ CK_TOKEN_INFO tokenInfo;
-+ CK_RV crv;
-+
-+ /* set the slot flags to the current token values */
-+ if (!slot->isThreadSafe) PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_GetTokenInfo(slot->slotID,&tokenInfo);
-+ if (!slot->isThreadSafe) PK11_ExitSlotMonitor(slot);
-+ if (crv != CKR_OK) {
-+ PORT_SetError(PK11_MapError(crv));
-+ return SECFailure;
-+ }
-+
-+ slot->flags = tokenInfo.flags;
-+ slot->needLogin = ((tokenInfo.flags & CKF_LOGIN_REQUIRED) ?
-+ PR_TRUE : PR_FALSE);
-+ slot->readOnly = ((tokenInfo.flags & CKF_WRITE_PROTECTED) ?
-+ PR_TRUE : PR_FALSE);
-+ slot->hasRandom = ((tokenInfo.flags & CKF_RNG) ? PR_TRUE : PR_FALSE);
-+ slot->protectedAuthPath =
-+ ((tokenInfo.flags & CKF_PROTECTED_AUTHENTICATION_PATH)
-+ ? PR_TRUE : PR_FALSE);
-+ /* on some platforms Active Card incorrectly sets the
-+ * CKF_PROTECTED_AUTHENTICATION_PATH bit when it doesn't mean to. */
-+ if (slot->isActiveCard) {
-+ slot->protectedAuthPath = PR_FALSE;
-+ }
-+ return SECSuccess;
-+}
-+
-+static PRBool
-+pk11_isRootSlot(PK11SlotInfo *slot)
-+{
-+ CK_ATTRIBUTE findTemp[1];
-+ CK_ATTRIBUTE *attrs;
-+ CK_OBJECT_CLASS oclass = CKO_NETSCAPE_BUILTIN_ROOT_LIST;
-+ int tsize;
-+ CK_OBJECT_HANDLE handle;
-+
-+ attrs = findTemp;
-+ PK11_SETATTRS(attrs, CKA_CLASS, &oclass, sizeof(oclass)); attrs++;
-+ tsize = attrs - findTemp;
-+ PORT_Assert(tsize <= sizeof(findTemp)/sizeof(CK_ATTRIBUTE));
-+
-+ handle = pk11_FindObjectByTemplate(slot,findTemp,tsize);
-+ if (handle == CK_INVALID_HANDLE) {
-+ return PR_FALSE;
-+ }
-+ return PR_TRUE;
-+}
-+
-+/*
-+ * Initialize the slot :
-+ * This initialization code is called on each slot a module supports when
-+ * it is loaded. It does the bringup initialization. The difference between
-+ * this and InitToken is Init slot does those one time initialization stuff,
-+ * usually associated with the reader, while InitToken may get called multiple
-+ * times as tokens are removed and re-inserted.
-+ */
-+void
-+PK11_InitSlot(SECMODModule *mod,CK_SLOT_ID slotID,PK11SlotInfo *slot)
-+{
-+ SECStatus rv;
-+ char *tmp;
-+ CK_SLOT_INFO slotInfo;
-+
-+ slot->functionList = mod->functionList;
-+ slot->isInternal = mod->internal;
-+ slot->slotID = slotID;
-+ slot->isThreadSafe = mod->isThreadSafe;
-+ slot->hasRSAInfo = PR_FALSE;
-+
-+ if (PK11_GETTAB(slot)->C_GetSlotInfo(slotID,&slotInfo) != CKR_OK) {
-+ slot->disabled = PR_TRUE;
-+ slot->reason = PK11_DIS_COULD_NOT_INIT_TOKEN;
-+ return;
-+ }
-+
-+ /* test to make sure claimed mechanism work */
-+ slot->needTest = mod->internal ? PR_FALSE : PR_TRUE;
-+ slot->module = mod; /* NOTE: we don't make a reference here because
-+ * modules have references to their slots. This
-+ * works because modules keep implicit references
-+ * from their slots, and won't unload and disappear
-+ * until all their slots have been freed */
-+ tmp = PK11_MakeString(NULL,slot->slot_name,
-+ (char *)slotInfo.slotDescription, sizeof(slotInfo.slotDescription));
-+ slot->isHW = (PRBool)((slotInfo.flags & CKF_HW_SLOT) == CKF_HW_SLOT);
-+#define ACTIVE_CARD "ActivCard SA"
-+ slot->isActiveCard = (PRBool)(PORT_Strncmp((char *)slotInfo.manufacturerID,
-+ ACTIVE_CARD, sizeof(ACTIVE_CARD)-1) == 0);
-+ if ((slotInfo.flags & CKF_REMOVABLE_DEVICE) == 0) {
-+ slot->isPerm = PR_TRUE;
-+ /* permanment slots must have the token present always */
-+ if ((slotInfo.flags & CKF_TOKEN_PRESENT) == 0) {
-+ slot->disabled = PR_TRUE;
-+ slot->reason = PK11_DIS_TOKEN_NOT_PRESENT;
-+ return; /* nothing else to do */
-+ }
-+ }
-+ /* if the token is present, initialize it */
-+ if ((slotInfo.flags & CKF_TOKEN_PRESENT) != 0) {
-+ rv = PK11_InitToken(slot,PR_TRUE);
-+ /* the only hard failures are on permanent devices, or function
-+ * verify failures... function verify failures are already handled
-+ * by tokenInit */
-+ if ((rv != SECSuccess) && (slot->isPerm) && (!slot->disabled)) {
-+ slot->disabled = PR_TRUE;
-+ slot->reason = PK11_DIS_COULD_NOT_INIT_TOKEN;
-+ }
-+ }
-+ if (pk11_isRootSlot(slot)) {
-+ if (!slot->hasRootCerts) {
-+ slot->module->trustOrder = 100;
-+ }
-+ slot->hasRootCerts= PR_TRUE;
-+ }
-+}
-+
-+
-+
-+/*********************************************************************
-+ * Slot mapping utility functions.
-+ *********************************************************************/
-+
-+/*
-+ * determine if the token is present. If the token is present, make sure
-+ * we have a valid session handle. Also set the value of needLogin
-+ * appropriately.
-+ */
-+static PRBool
-+pk11_IsPresentCertLoad(PK11SlotInfo *slot, PRBool loadCerts)
-+{
-+ CK_SLOT_INFO slotInfo;
-+ CK_SESSION_INFO sessionInfo;
-+ CK_RV crv;
-+
-+ /* disabled slots are never present */
-+ if (slot->disabled) {
-+ return PR_FALSE;
-+ }
-+
-+ /* permanent slots are always present */
-+ if (slot->isPerm && (slot->session != CK_INVALID_SESSION)) {
-+ return PR_TRUE;
-+ }
-+
-+ if (slot->nssToken) {
-+ return nssToken_IsPresent(slot->nssToken);
-+ }
-+
-+ /* removable slots have a flag that says they are present */
-+ if (!slot->isThreadSafe) PK11_EnterSlotMonitor(slot);
-+ if (PK11_GETTAB(slot)->C_GetSlotInfo(slot->slotID,&slotInfo) != CKR_OK) {
-+ if (!slot->isThreadSafe) PK11_ExitSlotMonitor(slot);
-+ return PR_FALSE;
-+ }
-+ if ((slotInfo.flags & CKF_TOKEN_PRESENT) == 0) {
-+ /* if the slot is no longer present, close the session */
-+ if (slot->session != CK_INVALID_SESSION) {
-+ PK11_GETTAB(slot)->C_CloseSession(slot->session);
-+ slot->session = CK_INVALID_SESSION;
-+ }
-+ if (!slot->isThreadSafe) PK11_ExitSlotMonitor(slot);
-+ return PR_FALSE;
-+ }
-+
-+ /* use the session Info to determine if the card has been removed and then
-+ * re-inserted */
-+ if (slot->session != CK_INVALID_SESSION) {
-+ if (slot->isThreadSafe) PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_GetSessionInfo(slot->session, &sessionInfo);
-+ if (crv != CKR_OK) {
-+ PK11_GETTAB(slot)->C_CloseSession(slot->session);
-+ slot->session = CK_INVALID_SESSION;
-+ }
-+ if (slot->isThreadSafe) PK11_ExitSlotMonitor(slot);
-+ }
-+ if (!slot->isThreadSafe) PK11_ExitSlotMonitor(slot);
-+
-+ /* card has not been removed, current token info is correct */
-+ if (slot->session != CK_INVALID_SESSION) return PR_TRUE;
-+
-+ /* initialize the token info state */
-+ if (PK11_InitToken(slot,loadCerts) != SECSuccess) {
-+ return PR_FALSE;
-+ }
-+
-+ return PR_TRUE;
-+}
-+
-+/*
-+ * old version of the routine
-+ */
-+PRBool
-+PK11_IsPresent(PK11SlotInfo *slot) {
-+ return pk11_IsPresentCertLoad(slot,PR_TRUE);
-+}
-+
-+/* is the slot disabled? */
-+PRBool
-+PK11_IsDisabled(PK11SlotInfo *slot)
-+{
-+ return slot->disabled;
-+}
-+
-+/* and why? */
-+PK11DisableReasons
-+PK11_GetDisabledReason(PK11SlotInfo *slot)
-+{
-+ return slot->reason;
-+}
-+
-+/* returns PR_TRUE if successfully disable the slot */
-+/* returns PR_FALSE otherwise */
-+PRBool PK11_UserDisableSlot(PK11SlotInfo *slot) {
-+
-+ slot->defaultFlags |= PK11_DISABLE_FLAG;
-+ slot->disabled = PR_TRUE;
-+ slot->reason = PK11_DIS_USER_SELECTED;
-+
-+ return PR_TRUE;
-+}
-+
-+PRBool PK11_UserEnableSlot(PK11SlotInfo *slot) {
-+
-+ slot->defaultFlags &= ~PK11_DISABLE_FLAG;
-+ slot->disabled = PR_FALSE;
-+ slot->reason = PK11_DIS_NONE;
-+ return PR_TRUE;
-+}
-+
-+PRBool PK11_HasRootCerts(PK11SlotInfo *slot) {
-+ return slot->hasRootCerts;
-+}
-+
-+/* Get the module this slot is attached to */
-+SECMODModule *
-+PK11_GetModule(PK11SlotInfo *slot)
-+{
-+ return slot->module;
-+}
-+
-+/* return the default flags of a slot */
-+unsigned long
-+PK11_GetDefaultFlags(PK11SlotInfo *slot)
-+{
-+ return slot->defaultFlags;
-+}
-+
-+/* Does this slot have a protected pin path? */
-+PRBool
-+PK11_ProtectedAuthenticationPath(PK11SlotInfo *slot)
-+{
-+ return slot->protectedAuthPath;
-+}
-+
-+/*
-+ * we can initialize the password if 1) The toke is not inited
-+ * (need login == true and see need UserInit) or 2) the token has
-+ * a NULL password. (slot->needLogin = false & need user Init = false).
-+ */
-+PRBool PK11_NeedPWInitForSlot(PK11SlotInfo *slot)
-+{
-+ if (slot->needLogin && PK11_NeedUserInit(slot)) {
-+ return PR_TRUE;
-+ }
-+ if (!slot->needLogin && !PK11_NeedUserInit(slot)) {
-+ return PR_TRUE;
-+ }
-+ return PR_FALSE;
-+}
-+
-+PRBool PK11_NeedPWInit()
-+{
-+ PK11SlotInfo *slot = PK11_GetInternalKeySlot();
-+ PRBool ret = PK11_NeedPWInitForSlot(slot);
-+
-+ PK11_FreeSlot(slot);
-+ return ret;
-+}
-+
-+/*
-+ * The following wrapper functions allow us to export an opaque slot
-+ * function to the rest of libsec and the world... */
-+PRBool
-+PK11_IsReadOnly(PK11SlotInfo *slot)
-+{
-+ return slot->readOnly;
-+}
-+
-+PRBool
-+PK11_IsHW(PK11SlotInfo *slot)
-+{
-+ return slot->isHW;
-+}
-+
-+PRBool
-+PK11_IsInternal(PK11SlotInfo *slot)
-+{
-+ return slot->isInternal;
-+}
-+
-+PRBool
-+PK11_NeedLogin(PK11SlotInfo *slot)
-+{
-+ return slot->needLogin;
-+}
-+
-+PRBool
-+PK11_IsFriendly(PK11SlotInfo *slot)
-+{
-+ /* internal slot always has public readable certs */
-+ return (PRBool)(slot->isInternal ||
-+ ((slot->defaultFlags & SECMOD_FRIENDLY_FLAG) ==
-+ SECMOD_FRIENDLY_FLAG));
-+}
-+
-+char *
-+PK11_GetTokenName(PK11SlotInfo *slot)
-+{
-+ return slot->token_name;
-+}
-+
-+char *
-+PK11_GetSlotName(PK11SlotInfo *slot)
-+{
-+ return slot->slot_name;
-+}
-+
-+int
-+PK11_GetSlotSeries(PK11SlotInfo *slot)
-+{
-+ return slot->series;
-+}
-+
-+int
-+PK11_GetCurrentWrapIndex(PK11SlotInfo *slot)
-+{
-+ return slot->wrapKey;
-+}
-+
-+CK_SLOT_ID
-+PK11_GetSlotID(PK11SlotInfo *slot)
-+{
-+ return slot->slotID;
-+}
-+
-+SECMODModuleID
-+PK11_GetModuleID(PK11SlotInfo *slot)
-+{
-+ return slot->module->moduleID;
-+}
-+
-+static void
-+pk11_zeroTerminatedToBlankPadded(CK_CHAR *buffer, size_t buffer_size)
-+{
-+ CK_CHAR *walk = buffer;
-+ CK_CHAR *end = buffer + buffer_size;
-+
-+ /* find the NULL */
-+ while (walk < end && *walk != '\0') {
-+ walk++;
-+ }
-+
-+ /* clear out the buffer */
-+ while (walk < end) {
-+ *walk++ = ' ';
-+ }
-+}
-+
-+/* return the slot info structure */
-+SECStatus
-+PK11_GetSlotInfo(PK11SlotInfo *slot, CK_SLOT_INFO *info)
-+{
-+ CK_RV crv;
-+
-+ if (!slot->isThreadSafe) PK11_EnterSlotMonitor(slot);
-+ /*
-+ * some buggy drivers do not fill the buffer completely,
-+ * erase the buffer first
-+ */
-+ PORT_Memset(info->slotDescription,' ',sizeof(info->slotDescription));
-+ PORT_Memset(info->manufacturerID,' ',sizeof(info->manufacturerID));
-+ crv = PK11_GETTAB(slot)->C_GetSlotInfo(slot->slotID,info);
-+ pk11_zeroTerminatedToBlankPadded(info->slotDescription,
-+ sizeof(info->slotDescription));
-+ pk11_zeroTerminatedToBlankPadded(info->manufacturerID,
-+ sizeof(info->manufacturerID));
-+ if (!slot->isThreadSafe) PK11_ExitSlotMonitor(slot);
-+ if (crv != CKR_OK) {
-+ PORT_SetError(PK11_MapError(crv));
-+ return SECFailure;
-+ }
-+ return SECSuccess;
-+}
-+
-+/* return the token info structure */
-+SECStatus
-+PK11_GetTokenInfo(PK11SlotInfo *slot, CK_TOKEN_INFO *info)
-+{
-+ CK_RV crv;
-+ if (!slot->isThreadSafe) PK11_EnterSlotMonitor(slot);
-+ /*
-+ * some buggy drivers do not fill the buffer completely,
-+ * erase the buffer first
-+ */
-+ PORT_Memset(info->label,' ',sizeof(info->label));
-+ PORT_Memset(info->manufacturerID,' ',sizeof(info->manufacturerID));
-+ PORT_Memset(info->model,' ',sizeof(info->model));
-+ PORT_Memset(info->serialNumber,' ',sizeof(info->serialNumber));
-+ crv = PK11_GETTAB(slot)->C_GetTokenInfo(slot->slotID,info);
-+ pk11_zeroTerminatedToBlankPadded(info->label,sizeof(info->label));
-+ pk11_zeroTerminatedToBlankPadded(info->manufacturerID,
-+ sizeof(info->manufacturerID));
-+ pk11_zeroTerminatedToBlankPadded(info->model,sizeof(info->model));
-+ pk11_zeroTerminatedToBlankPadded(info->serialNumber,
-+ sizeof(info->serialNumber));
-+ if (!slot->isThreadSafe) PK11_ExitSlotMonitor(slot);
-+ if (crv != CKR_OK) {
-+ PORT_SetError(PK11_MapError(crv));
-+ return SECFailure;
-+ }
-+ return SECSuccess;
-+}
-+
-+/* Find out if we need to initialize the user's pin */
-+PRBool
-+PK11_NeedUserInit(PK11SlotInfo *slot)
-+{
-+ PRBool needUserInit = (PRBool) ((slot->flags & CKF_USER_PIN_INITIALIZED)
-+ == 0);
-+
-+ if (needUserInit) {
-+ CK_TOKEN_INFO info;
-+ SECStatus rv;
-+
-+ /* see if token has been initialized off line */
-+ rv = PK11_GetTokenInfo(slot, &info);
-+ if (rv == SECSuccess) {
-+ slot->flags = info.flags;
-+ }
-+ }
-+ return (PRBool)((slot->flags & CKF_USER_PIN_INITIALIZED) == 0);
-+}
-+
-+/* get the internal key slot. FIPS has only one slot for both key slots and
-+ * default slots */
-+PK11SlotInfo *
-+PK11_GetInternalKeySlot(void)
-+{
-+ SECMODModule *mod = SECMOD_GetInternalModule();
-+ PORT_Assert(mod != NULL);
-+ if (!mod) {
-+ PORT_SetError( SEC_ERROR_NO_MODULE );
-+ return NULL;
-+ }
-+ return PK11_ReferenceSlot(mod->isFIPS ? mod->slots[0] : mod->slots[1]);
-+}
-+
-+/* get the internal default slot */
-+PK11SlotInfo *
-+PK11_GetInternalSlot(void)
-+{
-+ SECMODModule * mod = SECMOD_GetInternalModule();
-+ PORT_Assert(mod != NULL);
-+ if (!mod) {
-+ PORT_SetError( SEC_ERROR_NO_MODULE );
-+ return NULL;
-+ }
-+ return PK11_ReferenceSlot(mod->slots[0]);
-+}
-+
-+PRBool
-+pk11_InDelayPeriod(PRIntervalTime lastTime, PRIntervalTime delayTime,
-+ PRIntervalTime *retTime)
-+{
-+ PRIntervalTime time;
-+
-+ *retTime = time = PR_IntervalNow();
-+ return (PRBool) (lastTime) && ((time-lastTime) < delayTime);
-+}
-+
-+/*
-+ * Determine if the token is logged in. We have to actually query the token,
-+ * because it's state can change without intervention from us.
-+ */
-+PRBool
-+PK11_IsLoggedIn(PK11SlotInfo *slot,void *wincx)
-+{
-+ CK_SESSION_INFO sessionInfo;
-+ int askpw = slot->askpw;
-+ int timeout = slot->timeout;
-+ CK_RV crv;
-+ PRIntervalTime curTime;
-+ static PRIntervalTime login_delay_time = 0;
-+
-+ if (login_delay_time == 0) {
-+ login_delay_time = PR_SecondsToInterval(1);
-+ }
-+
-+ /* If we don't have our own password default values, use the system
-+ * ones */
-+ if ((slot->defaultFlags & PK11_OWN_PW_DEFAULTS) == 0) {
-+ PK11SlotInfo *def_slot = PK11_GetInternalKeySlot();
-+
-+ if (def_slot) {
-+ askpw = def_slot->askpw;
-+ timeout = def_slot->timeout;
-+ PK11_FreeSlot(def_slot);
-+ }
-+ }
-+
-+ if ((wincx != NULL) && (PK11_Global.isLoggedIn != NULL) &&
-+ (*PK11_Global.isLoggedIn)(slot, wincx) == PR_FALSE) { return PR_FALSE; }
-+
-+
-+ /* forget the password if we've been inactive too long */
-+ if (askpw == 1) {
-+ int64 currtime = PR_Now();
-+ int64 result;
-+ int64 mult;
-+
-+ LL_I2L(result, timeout);
-+ LL_I2L(mult, 60*1000*1000);
-+ LL_MUL(result,result,mult);
-+ LL_ADD(result, result, slot->authTime);
-+ if (LL_CMP(result, <, currtime) ) {
-+ PK11_EnterSlotMonitor(slot);
-+ PK11_GETTAB(slot)->C_Logout(slot->session);
-+ slot->lastLoginCheck = 0;
-+ PK11_ExitSlotMonitor(slot);
-+ } else {
-+ slot->authTime = currtime;
-+ }
-+ }
-+
-+ PK11_EnterSlotMonitor(slot);
-+ if (pk11_InDelayPeriod(slot->lastLoginCheck,login_delay_time, &curTime)) {
-+ sessionInfo.state = slot->lastState;
-+ crv = CKR_OK;
-+ } else {
-+ crv = PK11_GETTAB(slot)->C_GetSessionInfo(slot->session,&sessionInfo);
-+ if (crv == CKR_OK) {
-+ slot->lastState = sessionInfo.state;
-+ slot->lastLoginCheck = curTime;
-+ }
-+ }
-+ PK11_ExitSlotMonitor(slot);
-+ /* if we can't get session info, something is really wrong */
-+ if (crv != CKR_OK) {
-+ slot->session = CK_INVALID_SESSION;
-+ return PR_FALSE;
-+ }
-+
-+ switch (sessionInfo.state) {
-+ case CKS_RW_PUBLIC_SESSION:
-+ case CKS_RO_PUBLIC_SESSION:
-+ default:
-+ break; /* fail */
-+ case CKS_RW_USER_FUNCTIONS:
-+ case CKS_RW_SO_FUNCTIONS:
-+ case CKS_RO_USER_FUNCTIONS:
-+ return PR_TRUE;
-+ }
-+ return PR_FALSE;
-+}
-+
-+
-+/*
-+ * check if a given slot supports the requested mechanism
-+ */
-+PRBool
-+PK11_DoesMechanism(PK11SlotInfo *slot, CK_MECHANISM_TYPE type)
-+{
-+ int i;
-+
-+ /* CKM_FAKE_RANDOM is not a real PKCS mechanism. It's a marker to
-+ * tell us we're looking form someone that has implemented get
-+ * random bits */
-+ if (type == CKM_FAKE_RANDOM) {
-+ return slot->hasRandom;
-+ }
-+
-+ /* for most mechanism, bypass the linear lookup */
-+ if (type < 0x7ff) {
-+ return (slot->mechanismBits[type & 0xff] & (1 << (type >> 8))) ?
-+ PR_TRUE : PR_FALSE;
-+ }
-+
-+ for (i=0; i < (int) slot->mechanismCount; i++) {
-+ if (slot->mechanismList[i] == type) return PR_TRUE;
-+ }
-+ return PR_FALSE;
-+}
-+
-+/*
-+ * Return true if a token that can do the desired mechanism exists.
-+ * This allows us to have hardware tokens that can do function XYZ magically
-+ * allow SSL Ciphers to appear if they are plugged in.
-+ */
-+PRBool
-+PK11_TokenExists(CK_MECHANISM_TYPE type)
-+{
-+ SECMODModuleList *mlp;
-+ SECMODModuleList *modules = SECMOD_GetDefaultModuleList();
-+ SECMODListLock *moduleLock = SECMOD_GetDefaultModuleListLock();
-+ PK11SlotInfo *slot;
-+ PRBool found = PR_FALSE;
-+ int i;
-+
-+ /* we only need to know if there is a token that does this mechanism.
-+ * check the internal module first because it's fast, and supports
-+ * almost everything. */
-+ slot = PK11_GetInternalSlot();
-+ if (slot) {
-+ found = PK11_DoesMechanism(slot,type);
-+ PK11_FreeSlot(slot);
-+ }
-+ if (found) return PR_TRUE; /* bypass getting module locks */
-+
-+ SECMOD_GetReadLock(moduleLock);
-+ for(mlp = modules; mlp != NULL && (!found); mlp = mlp->next) {
-+ for (i=0; i < mlp->module->slotCount; i++) {
-+ slot = mlp->module->slots[i];
-+ if (PK11_IsPresent(slot)) {
-+ if (PK11_DoesMechanism(slot,type)) {
-+ found = PR_TRUE;
-+ break;
-+ }
-+ }
-+ }
-+ }
-+ SECMOD_ReleaseReadLock(moduleLock);
-+ return found;
-+}
-+
-+/*
-+ * get all the currently available tokens in a list.
-+ * that can perform the given mechanism. If mechanism is CKM_INVALID_MECHANISM,
-+ * get all the tokens. Make sure tokens that need authentication are put at
-+ * the end of this list.
-+ */
-+PK11SlotList *
-+PK11_GetAllTokens(CK_MECHANISM_TYPE type, PRBool needRW, PRBool loadCerts,
-+ void *wincx)
-+{
-+ PK11SlotList * list = PK11_NewSlotList();
-+ PK11SlotList * loginList = PK11_NewSlotList();
-+ PK11SlotList * friendlyList = PK11_NewSlotList();
-+ SECMODModuleList * mlp;
-+ SECMODModuleList * modules = SECMOD_GetDefaultModuleList();
-+ SECMODListLock * moduleLock = SECMOD_GetDefaultModuleListLock();
-+ int i;
-+#if defined( XP_WIN32 )
-+ int j = 0;
-+ PRInt32 waste[16];
-+#endif
-+
-+ if ((list == NULL) || (loginList == NULL) || (friendlyList == NULL)) {
-+ if (list) PK11_FreeSlotList(list);
-+ if (loginList) PK11_FreeSlotList(loginList);
-+ if (friendlyList) PK11_FreeSlotList(friendlyList);
-+ return NULL;
-+ }
-+
-+ SECMOD_GetReadLock(moduleLock);
-+ for(mlp = modules; mlp != NULL; mlp = mlp->next) {
-+
-+#if defined( XP_WIN32 )
-+ /* This is works around some horrible cache/page thrashing problems
-+ ** on Win32. Without this, this loop can take up to 6 seconds at
-+ ** 100% CPU on a Pentium-Pro 200. The thing this changes is to
-+ ** increase the size of the stack frame and modify it.
-+ ** Moving the loop code itself seems to have no effect.
-+ ** Dunno why this combination makes a difference, but it does.
-+ */
-+ waste[ j & 0xf] = j++;
-+#endif
-+
-+ for (i = 0; i < mlp->module->slotCount; i++) {
-+ PK11SlotInfo *slot = mlp->module->slots[i];
-+
-+ if (pk11_IsPresentCertLoad(slot, loadCerts)) {
-+ if (needRW && slot->readOnly) continue;
-+ if ((type == CKM_INVALID_MECHANISM)
-+ || PK11_DoesMechanism(slot, type)) {
-+ if (slot->needLogin && !PK11_IsLoggedIn(slot, wincx)) {
-+ if (PK11_IsFriendly(slot)) {
-+ PK11_AddSlotToList(friendlyList, slot);
-+ } else {
-+ PK11_AddSlotToList(loginList, slot);
-+ }
-+ } else {
-+ PK11_AddSlotToList(list, slot);
-+ }
-+ }
-+ }
-+ }
-+ }
-+ SECMOD_ReleaseReadLock(moduleLock);
-+
-+ PK11_MoveListToList(list,friendlyList);
-+ PK11_FreeSlotList(friendlyList);
-+ PK11_MoveListToList(list,loginList);
-+ PK11_FreeSlotList(loginList);
-+
-+ return list;
-+}
-+
-+/*
-+ * NOTE: This routine is working from a private List generated by
-+ * PK11_GetAllTokens. That is why it does not need to lock.
-+ */
-+PK11SlotList *
-+PK11_GetPrivateKeyTokens(CK_MECHANISM_TYPE type,PRBool needRW,void *wincx)
-+{
-+ PK11SlotList *list = PK11_GetAllTokens(type,needRW,PR_TRUE,wincx);
-+ PK11SlotListElement *le, *next ;
-+ SECStatus rv;
-+
-+ if (list == NULL) return list;
-+
-+ for (le = list->head ; le; le = next) {
-+ next = le->next; /* save the pointer here in case we have to
-+ * free the element later */
-+ rv = PK11_Authenticate(le->slot,PR_TRUE,wincx);
-+ if (rv != SECSuccess) {
-+ PK11_DeleteSlotFromList(list,le);
-+ continue;
-+ }
-+ }
-+ return list;
-+}
-+
-+
-+/*
-+ * find the best slot which supports the given
-+ * Mechanism. In normal cases this should grab the first slot on the list
-+ * with no fuss.
-+ */
-+PK11SlotInfo *
-+PK11_GetBestSlotMultiple(CK_MECHANISM_TYPE *type, int mech_count, void *wincx)
-+{
-+ PK11SlotList *list = NULL;
-+ PK11SlotListElement *le ;
-+ PK11SlotInfo *slot = NULL;
-+ PRBool freeit = PR_FALSE;
-+ PRBool listNeedLogin = PR_FALSE;
-+ int i;
-+ SECStatus rv;
-+
-+ list = PK11_GetSlotList(type[0]);
-+
-+ if ((list == NULL) || (list->head == NULL)) {
-+ /* We need to look up all the tokens for the mechanism */
-+ list = PK11_GetAllTokens(type[0],PR_FALSE,PR_TRUE,wincx);
-+ freeit = PR_TRUE;
-+ }
-+
-+ /* no one can do it! */
-+ if (list == NULL) {
-+ PORT_SetError(SEC_ERROR_NO_TOKEN);
-+ return NULL;
-+ }
-+
-+ PORT_SetError(0);
-+
-+
-+ listNeedLogin = PR_FALSE;
-+ for (i=0; i < mech_count; i++) {
-+ if ((type[i] != CKM_FAKE_RANDOM) &&
-+ (type[i] != CKM_SHA_1) &&
-+ (type[i] != CKM_SHA256) &&
-+ (type[i] != CKM_SHA384) &&
-+ (type[i] != CKM_SHA512) &&
-+ (type[i] != CKM_MD5) &&
-+ (type[i] != CKM_MD2)) {
-+ listNeedLogin = PR_TRUE;
-+ break;
-+ }
-+ }
-+
-+ for (le = PK11_GetFirstSafe(list); le;
-+ le = PK11_GetNextSafe(list,le,PR_TRUE)) {
-+ if (PK11_IsPresent(le->slot)) {
-+ PRBool doExit = PR_FALSE;
-+ for (i=0; i < mech_count; i++) {
-+ if (!PK11_DoesMechanism(le->slot,type[i])) {
-+ doExit = PR_TRUE;
-+ break;
-+ }
-+ }
-+ if (doExit) continue;
-+
-+ if (listNeedLogin && le->slot->needLogin) {
-+ rv = PK11_Authenticate(le->slot,PR_TRUE,wincx);
-+ if (rv != SECSuccess) continue;
-+ }
-+ slot = le->slot;
-+ PK11_ReferenceSlot(slot);
-+ pk11_FreeListElement(list,le);
-+ if (freeit) { PK11_FreeSlotList(list); }
-+ return slot;
-+ }
-+ }
-+ if (freeit) { PK11_FreeSlotList(list); }
-+ if (PORT_GetError() == 0) {
-+ PORT_SetError(SEC_ERROR_NO_TOKEN);
-+ }
-+ return NULL;
-+}
-+
-+/* original get best slot now calls the multiple version with only one type */
-+PK11SlotInfo *
-+PK11_GetBestSlot(CK_MECHANISM_TYPE type, void *wincx)
-+{
-+ return PK11_GetBestSlotMultiple(&type, 1, wincx);
-+}
-+
-+/*
-+ * find the best key wrap mechanism for this slot.
-+ */
-+CK_MECHANISM_TYPE
-+PK11_GetBestWrapMechanism(PK11SlotInfo *slot)
-+{
-+ int i;
-+ for (i=0; i < wrapMechanismCount; i++) {
-+ if (PK11_DoesMechanism(slot,wrapMechanismList[i])) {
-+ return wrapMechanismList[i];
-+ }
-+ }
-+ return CKM_INVALID_MECHANISM;
-+}
-+
-+int
-+PK11_GetBestKeyLength(PK11SlotInfo *slot,CK_MECHANISM_TYPE mechanism)
-+{
-+ CK_MECHANISM_INFO mechanism_info;
-+ CK_RV crv;
-+
-+ if (!slot->isThreadSafe) PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_GetMechanismInfo(slot->slotID,
-+ mechanism,&mechanism_info);
-+ if (!slot->isThreadSafe) PK11_ExitSlotMonitor(slot);
-+ if (crv != CKR_OK) return 0;
-+
-+ if (mechanism_info.ulMinKeySize == mechanism_info.ulMaxKeySize)
-+ return 0;
-+ return mechanism_info.ulMaxKeySize;
-+}
-+
-+
-+/*********************************************************************
-+ * Mechanism Mapping functions
-+ *********************************************************************/
-+
-+/*
-+ * lookup an entry in the mechanism table. If none found, return the
-+ * default structure.
-+ */
-+static pk11MechanismData *
-+pk11_lookup(CK_MECHANISM_TYPE type)
-+{
-+ int i;
-+ for (i=0; i < pk11_MechEntrySize; i++) {
-+ if (pk11_MechanismTable[i].type == type) {
-+ return (&pk11_MechanismTable[i]);
-+ }
-+ }
-+ return &pk11_default;
-+}
-+
-+/*
-+ * NOTE: This is not thread safe. Called at init time, and when loading
-+ * a new Entry. It is reasonably safe as long as it is not re-entered
-+ * (readers will always see a consistant table)
-+ *
-+ * This routine is called to add entries to the mechanism table, once there,
-+ * they can not be removed.
-+ */
-+void
-+PK11_AddMechanismEntry(CK_MECHANISM_TYPE type, CK_KEY_TYPE key,
-+ CK_MECHANISM_TYPE keyGen, int ivLen, int blockSize)
-+{
-+ int tableSize = pk11_MechTableSize;
-+ int size = pk11_MechEntrySize;
-+ int entry = size++;
-+ pk11MechanismData *old = pk11_MechanismTable;
-+ pk11MechanismData *newt = pk11_MechanismTable;
-+
-+
-+ if (size > tableSize) {
-+ int oldTableSize = tableSize;
-+ tableSize += 10;
-+ newt = PORT_NewArray(pk11MechanismData, tableSize);
-+ if (newt == NULL) return;
-+
-+ if (old) PORT_Memcpy(newt, old, oldTableSize*sizeof(*newt));
-+ } else old = NULL;
-+
-+ newt[entry].type = type;
-+ newt[entry].keyType = key;
-+ newt[entry].keyGen = keyGen;
-+ newt[entry].iv = ivLen;
-+ newt[entry].blockSize = blockSize;
-+
-+ pk11_MechanismTable = newt;
-+ pk11_MechTableSize = tableSize;
-+ pk11_MechEntrySize = size;
-+ if (old) PORT_Free(old);
-+}
-+
-+/*
-+ * Get the key type needed for the given mechanism
-+ */
-+CK_MECHANISM_TYPE
-+PK11_GetKeyMechanism(CK_KEY_TYPE type)
-+{
-+ switch (type) {
-+ case CKK_AES:
-+ return CKM_AES_CBC;
-+ case CKK_DES:
-+ return CKM_DES_CBC;
-+ case CKK_DES3:
-+ return CKM_DES3_KEY_GEN;
-+ case CKK_DES2:
-+ return CKM_DES2_KEY_GEN;
-+ case CKK_CDMF:
-+ return CKM_CDMF_CBC;
-+ case CKK_RC2:
-+ return CKM_RC2_CBC;
-+ case CKK_RC4:
-+ return CKM_RC4;
-+ case CKK_RC5:
-+ return CKM_RC5_CBC;
-+ case CKK_SKIPJACK:
-+ return CKM_SKIPJACK_CBC64;
-+ case CKK_BATON:
-+ return CKM_BATON_CBC128;
-+ case CKK_JUNIPER:
-+ return CKM_JUNIPER_CBC128;
-+ case CKK_IDEA:
-+ return CKM_IDEA_CBC;
-+ case CKK_CAST:
-+ return CKM_CAST_CBC;
-+ case CKK_CAST3:
-+ return CKM_CAST3_CBC;
-+ case CKK_CAST5:
-+ return CKM_CAST5_CBC;
-+ case CKK_RSA:
-+ return CKM_RSA_PKCS;
-+ case CKK_DSA:
-+ return CKM_DSA;
-+ case CKK_DH:
-+ return CKM_DH_PKCS_DERIVE;
-+ case CKK_KEA:
-+ return CKM_KEA_KEY_DERIVE;
-+ case CKK_EC: /* CKK_ECDSA is deprecated */
-+ return CKM_ECDSA;
-+ case CKK_GENERIC_SECRET:
-+ default:
-+ return CKM_SHA_1_HMAC;
-+ }
-+}
-+/*
-+ * Get the key type needed for the given mechanism
-+ */
-+CK_MECHANISM_TYPE
-+PK11_GetKeyType(CK_MECHANISM_TYPE type,unsigned long len)
-+{
-+ switch (type) {
-+ case CKM_AES_ECB:
-+ case CKM_AES_CBC:
-+ case CKM_AES_MAC:
-+ case CKM_AES_MAC_GENERAL:
-+ case CKM_AES_CBC_PAD:
-+ case CKM_AES_KEY_GEN:
-+ case CKM_NETSCAPE_AES_KEY_WRAP:
-+ case CKM_NETSCAPE_AES_KEY_WRAP_PAD:
-+ return CKK_AES;
-+ case CKM_DES_ECB:
-+ case CKM_DES_CBC:
-+ case CKM_DES_MAC:
-+ case CKM_DES_MAC_GENERAL:
-+ case CKM_DES_CBC_PAD:
-+ case CKM_DES_KEY_GEN:
-+ case CKM_KEY_WRAP_LYNKS:
-+ case CKM_PBE_MD2_DES_CBC:
-+ case CKM_PBE_MD5_DES_CBC:
-+ return CKK_DES;
-+ case CKM_DES3_ECB:
-+ case CKM_DES3_CBC:
-+ case CKM_DES3_MAC:
-+ case CKM_DES3_MAC_GENERAL:
-+ case CKM_DES3_CBC_PAD:
-+ return (len == 16) ? CKK_DES2 : CKK_DES3;
-+ case CKM_DES2_KEY_GEN:
-+ case CKM_PBE_SHA1_DES2_EDE_CBC:
-+ return CKK_DES2;
-+ case CKM_PBE_SHA1_DES3_EDE_CBC:
-+ case CKM_DES3_KEY_GEN:
-+ return CKK_DES3;
-+ case CKM_CDMF_ECB:
-+ case CKM_CDMF_CBC:
-+ case CKM_CDMF_MAC:
-+ case CKM_CDMF_MAC_GENERAL:
-+ case CKM_CDMF_CBC_PAD:
-+ case CKM_CDMF_KEY_GEN:
-+ return CKK_CDMF;
-+ case CKM_RC2_ECB:
-+ case CKM_RC2_CBC:
-+ case CKM_RC2_MAC:
-+ case CKM_RC2_MAC_GENERAL:
-+ case CKM_RC2_CBC_PAD:
-+ case CKM_RC2_KEY_GEN:
-+ case CKM_PBE_SHA1_RC2_128_CBC:
-+ case CKM_PBE_SHA1_RC2_40_CBC:
-+ return CKK_RC2;
-+ case CKM_RC4:
-+ case CKM_RC4_KEY_GEN:
-+ return CKK_RC4;
-+ case CKM_RC5_ECB:
-+ case CKM_RC5_CBC:
-+ case CKM_RC5_MAC:
-+ case CKM_RC5_MAC_GENERAL:
-+ case CKM_RC5_CBC_PAD:
-+ case CKM_RC5_KEY_GEN:
-+ return CKK_RC5;
-+ case CKM_SKIPJACK_CBC64:
-+ case CKM_SKIPJACK_ECB64:
-+ case CKM_SKIPJACK_OFB64:
-+ case CKM_SKIPJACK_CFB64:
-+ case CKM_SKIPJACK_CFB32:
-+ case CKM_SKIPJACK_CFB16:
-+ case CKM_SKIPJACK_CFB8:
-+ case CKM_SKIPJACK_KEY_GEN:
-+ case CKM_SKIPJACK_WRAP:
-+ case CKM_SKIPJACK_PRIVATE_WRAP:
-+ return CKK_SKIPJACK;
-+ case CKM_BATON_ECB128:
-+ case CKM_BATON_ECB96:
-+ case CKM_BATON_CBC128:
-+ case CKM_BATON_COUNTER:
-+ case CKM_BATON_SHUFFLE:
-+ case CKM_BATON_WRAP:
-+ case CKM_BATON_KEY_GEN:
-+ return CKK_BATON;
-+ case CKM_JUNIPER_ECB128:
-+ case CKM_JUNIPER_CBC128:
-+ case CKM_JUNIPER_COUNTER:
-+ case CKM_JUNIPER_SHUFFLE:
-+ case CKM_JUNIPER_WRAP:
-+ case CKM_JUNIPER_KEY_GEN:
-+ return CKK_JUNIPER;
-+ case CKM_IDEA_CBC:
-+ case CKM_IDEA_ECB:
-+ case CKM_IDEA_MAC:
-+ case CKM_IDEA_MAC_GENERAL:
-+ case CKM_IDEA_CBC_PAD:
-+ case CKM_IDEA_KEY_GEN:
-+ return CKK_IDEA;
-+ case CKM_CAST_ECB:
-+ case CKM_CAST_CBC:
-+ case CKM_CAST_MAC:
-+ case CKM_CAST_MAC_GENERAL:
-+ case CKM_CAST_CBC_PAD:
-+ case CKM_CAST_KEY_GEN:
-+ case CKM_PBE_MD5_CAST_CBC:
-+ return CKK_CAST;
-+ case CKM_CAST3_ECB:
-+ case CKM_CAST3_CBC:
-+ case CKM_CAST3_MAC:
-+ case CKM_CAST3_MAC_GENERAL:
-+ case CKM_CAST3_CBC_PAD:
-+ case CKM_CAST3_KEY_GEN:
-+ case CKM_PBE_MD5_CAST3_CBC:
-+ return CKK_CAST3;
-+ case CKM_CAST5_ECB:
-+ case CKM_CAST5_CBC:
-+ case CKM_CAST5_MAC:
-+ case CKM_CAST5_MAC_GENERAL:
-+ case CKM_CAST5_CBC_PAD:
-+ case CKM_CAST5_KEY_GEN:
-+ case CKM_PBE_MD5_CAST5_CBC:
-+ return CKK_CAST5;
-+ case CKM_RSA_PKCS:
-+ case CKM_RSA_9796:
-+ case CKM_RSA_X_509:
-+ case CKM_MD2_RSA_PKCS:
-+ case CKM_MD5_RSA_PKCS:
-+ case CKM_SHA1_RSA_PKCS:
-+ case CKM_SHA256_RSA_PKCS:
-+ case CKM_SHA384_RSA_PKCS:
-+ case CKM_SHA512_RSA_PKCS:
-+ case CKM_KEY_WRAP_SET_OAEP:
-+ case CKM_RSA_PKCS_KEY_PAIR_GEN:
-+ return CKK_RSA;
-+ case CKM_DSA:
-+ case CKM_DSA_SHA1:
-+ case CKM_DSA_KEY_PAIR_GEN:
-+ return CKK_DSA;
-+ case CKM_DH_PKCS_DERIVE:
-+ case CKM_DH_PKCS_KEY_PAIR_GEN:
-+ return CKK_DH;
-+ case CKM_KEA_KEY_DERIVE:
-+ case CKM_KEA_KEY_PAIR_GEN:
-+ return CKK_KEA;
-+ case CKM_ECDSA:
-+ case CKM_ECDSA_SHA1:
-+ case CKM_EC_KEY_PAIR_GEN: /* aka CKM_ECDSA_KEY_PAIR_GEN */
-+ case CKM_ECDH1_DERIVE:
-+ return CKK_EC; /* CKK_ECDSA is deprecated */
-+ case CKM_SSL3_PRE_MASTER_KEY_GEN:
-+ case CKM_GENERIC_SECRET_KEY_GEN:
-+ case CKM_SSL3_MASTER_KEY_DERIVE:
-+ case CKM_SSL3_MASTER_KEY_DERIVE_DH:
-+ case CKM_SSL3_KEY_AND_MAC_DERIVE:
-+ case CKM_SSL3_SHA1_MAC:
-+ case CKM_SSL3_MD5_MAC:
-+ case CKM_TLS_MASTER_KEY_DERIVE:
-+ case CKM_TLS_MASTER_KEY_DERIVE_DH:
-+ case CKM_TLS_KEY_AND_MAC_DERIVE:
-+ case CKM_SHA_1_HMAC:
-+ case CKM_SHA_1_HMAC_GENERAL:
-+ case CKM_SHA256_HMAC:
-+ case CKM_SHA256_HMAC_GENERAL:
-+ case CKM_SHA384_HMAC:
-+ case CKM_SHA384_HMAC_GENERAL:
-+ case CKM_SHA512_HMAC:
-+ case CKM_SHA512_HMAC_GENERAL:
-+ case CKM_MD2_HMAC:
-+ case CKM_MD2_HMAC_GENERAL:
-+ case CKM_MD5_HMAC:
-+ case CKM_MD5_HMAC_GENERAL:
-+ case CKM_TLS_PRF_GENERAL:
-+ return CKK_GENERIC_SECRET;
-+ default:
-+ return pk11_lookup(type)->keyType;
-+ }
-+}
-+
-+/*
-+ * Get the Key Gen Mechanism needed for the given
-+ * crypto mechanism
-+ */
-+CK_MECHANISM_TYPE
-+PK11_GetKeyGen(CK_MECHANISM_TYPE type)
-+{
-+ return PK11_GetKeyGenWithSize(type, 0);
-+}
-+
-+CK_MECHANISM_TYPE
-+PK11_GetKeyGenWithSize(CK_MECHANISM_TYPE type, int size)
-+{
-+ switch (type) {
-+ case CKM_AES_ECB:
-+ case CKM_AES_CBC:
-+ case CKM_AES_MAC:
-+ case CKM_AES_MAC_GENERAL:
-+ case CKM_AES_CBC_PAD:
-+ case CKM_AES_KEY_GEN:
-+ return CKM_AES_KEY_GEN;
-+ case CKM_DES_ECB:
-+ case CKM_DES_CBC:
-+ case CKM_DES_MAC:
-+ case CKM_DES_MAC_GENERAL:
-+ case CKM_KEY_WRAP_LYNKS:
-+ case CKM_DES_CBC_PAD:
-+ case CKM_DES_KEY_GEN:
-+ return CKM_DES_KEY_GEN;
-+ case CKM_DES3_ECB:
-+ case CKM_DES3_CBC:
-+ case CKM_DES3_MAC:
-+ case CKM_DES3_MAC_GENERAL:
-+ case CKM_DES3_CBC_PAD:
-+ return (size == 16) ? CKM_DES2_KEY_GEN : CKM_DES3_KEY_GEN;
-+ case CKM_DES3_KEY_GEN:
-+ return CKM_DES3_KEY_GEN;
-+ case CKM_DES2_KEY_GEN:
-+ return CKM_DES2_KEY_GEN;
-+ case CKM_CDMF_ECB:
-+ case CKM_CDMF_CBC:
-+ case CKM_CDMF_MAC:
-+ case CKM_CDMF_MAC_GENERAL:
-+ case CKM_CDMF_CBC_PAD:
-+ case CKM_CDMF_KEY_GEN:
-+ return CKM_CDMF_KEY_GEN;
-+ case CKM_RC2_ECB:
-+ case CKM_RC2_CBC:
-+ case CKM_RC2_MAC:
-+ case CKM_RC2_MAC_GENERAL:
-+ case CKM_RC2_CBC_PAD:
-+ case CKM_RC2_KEY_GEN:
-+ return CKM_RC2_KEY_GEN;
-+ case CKM_RC4:
-+ case CKM_RC4_KEY_GEN:
-+ return CKM_RC4_KEY_GEN;
-+ case CKM_RC5_ECB:
-+ case CKM_RC5_CBC:
-+ case CKM_RC5_MAC:
-+ case CKM_RC5_MAC_GENERAL:
-+ case CKM_RC5_CBC_PAD:
-+ case CKM_RC5_KEY_GEN:
-+ return CKM_RC5_KEY_GEN;
-+ case CKM_SKIPJACK_CBC64:
-+ case CKM_SKIPJACK_ECB64:
-+ case CKM_SKIPJACK_OFB64:
-+ case CKM_SKIPJACK_CFB64:
-+ case CKM_SKIPJACK_CFB32:
-+ case CKM_SKIPJACK_CFB16:
-+ case CKM_SKIPJACK_CFB8:
-+ case CKM_SKIPJACK_WRAP:
-+ case CKM_SKIPJACK_KEY_GEN:
-+ return CKM_SKIPJACK_KEY_GEN;
-+ case CKM_BATON_ECB128:
-+ case CKM_BATON_ECB96:
-+ case CKM_BATON_CBC128:
-+ case CKM_BATON_COUNTER:
-+ case CKM_BATON_SHUFFLE:
-+ case CKM_BATON_WRAP:
-+ case CKM_BATON_KEY_GEN:
-+ return CKM_BATON_KEY_GEN;
-+ case CKM_JUNIPER_ECB128:
-+ case CKM_JUNIPER_CBC128:
-+ case CKM_JUNIPER_COUNTER:
-+ case CKM_JUNIPER_SHUFFLE:
-+ case CKM_JUNIPER_WRAP:
-+ case CKM_JUNIPER_KEY_GEN:
-+ return CKM_JUNIPER_KEY_GEN;
-+ case CKM_IDEA_CBC:
-+ case CKM_IDEA_ECB:
-+ case CKM_IDEA_MAC:
-+ case CKM_IDEA_MAC_GENERAL:
-+ case CKM_IDEA_CBC_PAD:
-+ case CKM_IDEA_KEY_GEN:
-+ return CKM_IDEA_KEY_GEN;
-+ case CKM_CAST_ECB:
-+ case CKM_CAST_CBC:
-+ case CKM_CAST_MAC:
-+ case CKM_CAST_MAC_GENERAL:
-+ case CKM_CAST_CBC_PAD:
-+ case CKM_CAST_KEY_GEN:
-+ return CKM_CAST_KEY_GEN;
-+ case CKM_CAST3_ECB:
-+ case CKM_CAST3_CBC:
-+ case CKM_CAST3_MAC:
-+ case CKM_CAST3_MAC_GENERAL:
-+ case CKM_CAST3_CBC_PAD:
-+ case CKM_CAST3_KEY_GEN:
-+ return CKM_CAST3_KEY_GEN;
-+ case CKM_CAST5_ECB:
-+ case CKM_CAST5_CBC:
-+ case CKM_CAST5_MAC:
-+ case CKM_CAST5_MAC_GENERAL:
-+ case CKM_CAST5_CBC_PAD:
-+ case CKM_CAST5_KEY_GEN:
-+ return CKM_CAST5_KEY_GEN;
-+ case CKM_RSA_PKCS:
-+ case CKM_RSA_9796:
-+ case CKM_RSA_X_509:
-+ case CKM_MD2_RSA_PKCS:
-+ case CKM_MD5_RSA_PKCS:
-+ case CKM_SHA1_RSA_PKCS:
-+ case CKM_SHA256_RSA_PKCS:
-+ case CKM_SHA384_RSA_PKCS:
-+ case CKM_SHA512_RSA_PKCS:
-+ case CKM_KEY_WRAP_SET_OAEP:
-+ case CKM_RSA_PKCS_KEY_PAIR_GEN:
-+ return CKM_RSA_PKCS_KEY_PAIR_GEN;
-+ case CKM_DSA:
-+ case CKM_DSA_SHA1:
-+ case CKM_DSA_KEY_PAIR_GEN:
-+ return CKM_DSA_KEY_PAIR_GEN;
-+ case CKM_DH_PKCS_DERIVE:
-+ case CKM_DH_PKCS_KEY_PAIR_GEN:
-+ return CKM_DH_PKCS_KEY_PAIR_GEN;
-+ case CKM_KEA_KEY_DERIVE:
-+ case CKM_KEA_KEY_PAIR_GEN:
-+ return CKM_KEA_KEY_PAIR_GEN;
-+ case CKM_ECDSA:
-+ case CKM_ECDSA_SHA1:
-+ case CKM_EC_KEY_PAIR_GEN: /* aka CKM_ECDSA_KEY_PAIR_GEN */
-+ case CKM_ECDH1_DERIVE:
-+ return CKM_EC_KEY_PAIR_GEN;
-+ case CKM_SSL3_PRE_MASTER_KEY_GEN:
-+ case CKM_SSL3_MASTER_KEY_DERIVE:
-+ case CKM_SSL3_KEY_AND_MAC_DERIVE:
-+ case CKM_SSL3_SHA1_MAC:
-+ case CKM_SSL3_MD5_MAC:
-+ case CKM_TLS_MASTER_KEY_DERIVE:
-+ case CKM_TLS_KEY_AND_MAC_DERIVE:
-+ return CKM_SSL3_PRE_MASTER_KEY_GEN;
-+ case CKM_SHA_1_HMAC:
-+ case CKM_SHA_1_HMAC_GENERAL:
-+ case CKM_SHA256_HMAC:
-+ case CKM_SHA256_HMAC_GENERAL:
-+ case CKM_SHA384_HMAC:
-+ case CKM_SHA384_HMAC_GENERAL:
-+ case CKM_SHA512_HMAC:
-+ case CKM_SHA512_HMAC_GENERAL:
-+ case CKM_MD2_HMAC:
-+ case CKM_MD2_HMAC_GENERAL:
-+ case CKM_MD5_HMAC:
-+ case CKM_MD5_HMAC_GENERAL:
-+ case CKM_TLS_PRF_GENERAL:
-+ case CKM_GENERIC_SECRET_KEY_GEN:
-+ return CKM_GENERIC_SECRET_KEY_GEN;
-+ case CKM_PBE_MD2_DES_CBC:
-+ case CKM_PBE_MD5_DES_CBC:
-+ case CKM_PBA_SHA1_WITH_SHA1_HMAC:
-+ case CKM_NETSCAPE_PBE_SHA1_HMAC_KEY_GEN:
-+ case CKM_NETSCAPE_PBE_MD5_HMAC_KEY_GEN:
-+ case CKM_NETSCAPE_PBE_MD2_HMAC_KEY_GEN:
-+ case CKM_NETSCAPE_PBE_SHA1_DES_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_40_BIT_RC2_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_128_BIT_RC2_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_40_BIT_RC4:
-+ case CKM_NETSCAPE_PBE_SHA1_128_BIT_RC4:
-+ case CKM_NETSCAPE_PBE_SHA1_TRIPLE_DES_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_FAULTY_3DES_CBC:
-+ case CKM_PBE_SHA1_RC2_40_CBC:
-+ case CKM_PBE_SHA1_RC2_128_CBC:
-+ case CKM_PBE_SHA1_RC4_40:
-+ case CKM_PBE_SHA1_RC4_128:
-+ case CKM_PBE_SHA1_DES3_EDE_CBC:
-+ case CKM_PBE_SHA1_DES2_EDE_CBC:
-+ return type;
-+ default:
-+ return pk11_lookup(type)->keyGen;
-+ }
-+}
-+
-+/*
-+ * get the mechanism block size
-+ */
-+int
-+PK11_GetBlockSize(CK_MECHANISM_TYPE type,SECItem *params)
-+{
-+ CK_RC5_PARAMS *rc5_params;
-+ CK_RC5_CBC_PARAMS *rc5_cbc_params;
-+ switch (type) {
-+ case CKM_RC5_ECB:
-+ if ((params) && (params->data)) {
-+ rc5_params = (CK_RC5_PARAMS *) params->data;
-+ return (rc5_params->ulWordsize)*2;
-+ }
-+ return 8;
-+ case CKM_RC5_CBC:
-+ case CKM_RC5_CBC_PAD:
-+ if ((params) && (params->data)) {
-+ rc5_cbc_params = (CK_RC5_CBC_PARAMS *) params->data;
-+ return (rc5_cbc_params->ulWordsize)*2;
-+ }
-+ return 8;
-+ case CKM_DES_ECB:
-+ case CKM_DES3_ECB:
-+ case CKM_RC2_ECB:
-+ case CKM_IDEA_ECB:
-+ case CKM_CAST_ECB:
-+ case CKM_CAST3_ECB:
-+ case CKM_CAST5_ECB:
-+ case CKM_RC2_CBC:
-+ case CKM_SKIPJACK_CBC64:
-+ case CKM_SKIPJACK_ECB64:
-+ case CKM_SKIPJACK_OFB64:
-+ case CKM_SKIPJACK_CFB64:
-+ case CKM_DES_CBC:
-+ case CKM_DES3_CBC:
-+ case CKM_IDEA_CBC:
-+ case CKM_CAST_CBC:
-+ case CKM_CAST3_CBC:
-+ case CKM_CAST5_CBC:
-+ case CKM_DES_CBC_PAD:
-+ case CKM_DES3_CBC_PAD:
-+ case CKM_RC2_CBC_PAD:
-+ case CKM_IDEA_CBC_PAD:
-+ case CKM_CAST_CBC_PAD:
-+ case CKM_CAST3_CBC_PAD:
-+ case CKM_CAST5_CBC_PAD:
-+ case CKM_PBE_MD2_DES_CBC:
-+ case CKM_PBE_MD5_DES_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_DES_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_40_BIT_RC2_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_128_BIT_RC2_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_TRIPLE_DES_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_FAULTY_3DES_CBC:
-+ case CKM_PBE_SHA1_RC2_40_CBC:
-+ case CKM_PBE_SHA1_RC2_128_CBC:
-+ case CKM_PBE_SHA1_DES3_EDE_CBC:
-+ case CKM_PBE_SHA1_DES2_EDE_CBC:
-+ return 8;
-+ case CKM_SKIPJACK_CFB32:
-+ case CKM_SKIPJACK_CFB16:
-+ case CKM_SKIPJACK_CFB8:
-+ return 4;
-+ case CKM_AES_ECB:
-+ case CKM_AES_CBC:
-+ case CKM_AES_CBC_PAD:
-+ case CKM_BATON_ECB128:
-+ case CKM_BATON_CBC128:
-+ case CKM_BATON_COUNTER:
-+ case CKM_BATON_SHUFFLE:
-+ case CKM_JUNIPER_ECB128:
-+ case CKM_JUNIPER_CBC128:
-+ case CKM_JUNIPER_COUNTER:
-+ case CKM_JUNIPER_SHUFFLE:
-+ return 16;
-+ case CKM_BATON_ECB96:
-+ return 12;
-+ case CKM_RC4:
-+ case CKM_NETSCAPE_PBE_SHA1_40_BIT_RC4:
-+ case CKM_NETSCAPE_PBE_SHA1_128_BIT_RC4:
-+ case CKM_PBE_SHA1_RC4_40:
-+ case CKM_PBE_SHA1_RC4_128:
-+ return 0;
-+ case CKM_RSA_PKCS:
-+ case CKM_RSA_9796:
-+ case CKM_RSA_X_509:
-+ /*actually it's the modulus length of the key!*/
-+ return -1; /* failure */
-+ default:
-+ return pk11_lookup(type)->blockSize;
-+ }
-+}
-+
-+/*
-+ * get the iv length
-+ */
-+int
-+PK11_GetIVLength(CK_MECHANISM_TYPE type)
-+{
-+ switch (type) {
-+ case CKM_AES_ECB:
-+ case CKM_DES_ECB:
-+ case CKM_DES3_ECB:
-+ case CKM_RC2_ECB:
-+ case CKM_IDEA_ECB:
-+ case CKM_SKIPJACK_WRAP:
-+ case CKM_BATON_WRAP:
-+ case CKM_RC5_ECB:
-+ case CKM_CAST_ECB:
-+ case CKM_CAST3_ECB:
-+ case CKM_CAST5_ECB:
-+ return 0;
-+ case CKM_RC2_CBC:
-+ case CKM_DES_CBC:
-+ case CKM_DES3_CBC:
-+ case CKM_IDEA_CBC:
-+ case CKM_PBE_MD2_DES_CBC:
-+ case CKM_PBE_MD5_DES_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_DES_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_40_BIT_RC2_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_128_BIT_RC2_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_TRIPLE_DES_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_FAULTY_3DES_CBC:
-+ case CKM_PBE_SHA1_RC2_40_CBC:
-+ case CKM_PBE_SHA1_RC2_128_CBC:
-+ case CKM_PBE_SHA1_DES3_EDE_CBC:
-+ case CKM_PBE_SHA1_DES2_EDE_CBC:
-+ case CKM_RC5_CBC:
-+ case CKM_CAST_CBC:
-+ case CKM_CAST3_CBC:
-+ case CKM_CAST5_CBC:
-+ case CKM_RC2_CBC_PAD:
-+ case CKM_DES_CBC_PAD:
-+ case CKM_DES3_CBC_PAD:
-+ case CKM_IDEA_CBC_PAD:
-+ case CKM_RC5_CBC_PAD:
-+ case CKM_CAST_CBC_PAD:
-+ case CKM_CAST3_CBC_PAD:
-+ case CKM_CAST5_CBC_PAD:
-+ return 8;
-+ case CKM_AES_CBC:
-+ case CKM_AES_CBC_PAD:
-+ return 16;
-+ case CKM_SKIPJACK_CBC64:
-+ case CKM_SKIPJACK_ECB64:
-+ case CKM_SKIPJACK_OFB64:
-+ case CKM_SKIPJACK_CFB64:
-+ case CKM_SKIPJACK_CFB32:
-+ case CKM_SKIPJACK_CFB16:
-+ case CKM_SKIPJACK_CFB8:
-+ case CKM_BATON_ECB128:
-+ case CKM_BATON_ECB96:
-+ case CKM_BATON_CBC128:
-+ case CKM_BATON_COUNTER:
-+ case CKM_BATON_SHUFFLE:
-+ case CKM_JUNIPER_ECB128:
-+ case CKM_JUNIPER_CBC128:
-+ case CKM_JUNIPER_COUNTER:
-+ case CKM_JUNIPER_SHUFFLE:
-+ return 24;
-+ case CKM_RC4:
-+ case CKM_RSA_PKCS:
-+ case CKM_RSA_9796:
-+ case CKM_RSA_X_509:
-+ case CKM_NETSCAPE_PBE_SHA1_40_BIT_RC4:
-+ case CKM_NETSCAPE_PBE_SHA1_128_BIT_RC4:
-+ case CKM_PBE_SHA1_RC4_40:
-+ case CKM_PBE_SHA1_RC4_128:
-+ return 0;
-+ default:
-+ return pk11_lookup(type)->iv;
-+ }
-+}
-+
-+
-+/* These next two utilities are here to help facilitate future
-+ * Dynamic Encrypt/Decrypt symetric key mechanisms, and to allow functions
-+ * like SSL and S-MIME to automatically add them.
-+ */
-+SECItem *
-+PK11_ParamFromIV(CK_MECHANISM_TYPE type,SECItem *iv)
-+{
-+ CK_RC2_CBC_PARAMS *rc2_params = NULL;
-+ CK_RC2_PARAMS *rc2_ecb_params = NULL;
-+ CK_RC5_PARAMS *rc5_params = NULL;
-+ CK_RC5_CBC_PARAMS *rc5_cbc_params = NULL;
-+ SECItem *param;
-+
-+ param = (SECItem *)PORT_Alloc(sizeof(SECItem));
-+ if (param == NULL) return NULL;
-+ param->data = NULL;
-+ param->len = 0;
-+ param->type = 0;
-+ switch (type) {
-+ case CKM_AES_ECB:
-+ case CKM_DES_ECB:
-+ case CKM_DES3_ECB:
-+ case CKM_RSA_PKCS:
-+ case CKM_RSA_X_509:
-+ case CKM_RSA_9796:
-+ case CKM_IDEA_ECB:
-+ case CKM_CDMF_ECB:
-+ case CKM_CAST_ECB:
-+ case CKM_CAST3_ECB:
-+ case CKM_CAST5_ECB:
-+ case CKM_RC4:
-+ break;
-+ case CKM_RC2_ECB:
-+ rc2_ecb_params = (CK_RC2_PARAMS *)PORT_Alloc(sizeof(CK_RC2_PARAMS));
-+ if (rc2_ecb_params == NULL) break;
-+ /* Maybe we should pass the key size in too to get this value? */
-+ *rc2_ecb_params = 128;
-+ param->data = (unsigned char *) rc2_ecb_params;
-+ param->len = sizeof(CK_RC2_PARAMS);
-+ break;
-+ case CKM_RC2_CBC:
-+ case CKM_RC2_CBC_PAD:
-+ rc2_params = (CK_RC2_CBC_PARAMS *)PORT_Alloc(sizeof(CK_RC2_CBC_PARAMS));
-+ if (rc2_params == NULL) break;
-+ /* Maybe we should pass the key size in too to get this value? */
-+ rc2_params->ulEffectiveBits = 128;
-+ if (iv && iv->data)
-+ PORT_Memcpy(rc2_params->iv,iv->data,sizeof(rc2_params->iv));
-+ param->data = (unsigned char *) rc2_params;
-+ param->len = sizeof(CK_RC2_CBC_PARAMS);
-+ break;
-+ case CKM_RC5_CBC:
-+ case CKM_RC5_CBC_PAD:
-+ rc5_cbc_params = (CK_RC5_CBC_PARAMS *)
-+ PORT_Alloc(sizeof(CK_RC5_CBC_PARAMS) + ((iv) ? iv->len : 0));
-+ if (rc5_cbc_params == NULL) break;
-+ if (iv && iv->data) {
-+ rc5_cbc_params->pIv = ((CK_BYTE_PTR) rc5_cbc_params)
-+ + sizeof(CK_RC5_CBC_PARAMS);
-+ PORT_Memcpy(rc5_cbc_params->pIv,iv->data,iv->len);
-+ rc5_cbc_params->ulIvLen = iv->len;
-+ rc5_cbc_params->ulWordsize = iv->len/2;
-+ } else {
-+ rc5_cbc_params->ulWordsize = 4;
-+ rc5_cbc_params->pIv = NULL;
-+ rc5_cbc_params->ulIvLen = iv->len;
-+ }
-+ rc5_cbc_params->ulRounds = 16;
-+ param->data = (unsigned char *) rc5_cbc_params;
-+ param->len = sizeof(CK_RC5_CBC_PARAMS);
-+ break;
-+ case CKM_RC5_ECB:
-+ rc5_params = (CK_RC5_PARAMS *)PORT_Alloc(sizeof(CK_RC5_PARAMS));
-+ if (rc5_params == NULL) break;
-+ if (iv && iv->data && iv->len) {
-+ rc5_params->ulWordsize = iv->len/2;
-+ } else {
-+ rc5_params->ulWordsize = 4;
-+ }
-+ rc5_params->ulRounds = 16;
-+ param->data = (unsigned char *) rc5_params;
-+ param->len = sizeof(CK_RC5_PARAMS);
-+ break;
-+ case CKM_AES_CBC:
-+ case CKM_DES_CBC:
-+ case CKM_DES3_CBC:
-+ case CKM_IDEA_CBC:
-+ case CKM_CDMF_CBC:
-+ case CKM_CAST_CBC:
-+ case CKM_CAST3_CBC:
-+ case CKM_CAST5_CBC:
-+ case CKM_AES_CBC_PAD:
-+ case CKM_DES_CBC_PAD:
-+ case CKM_DES3_CBC_PAD:
-+ case CKM_IDEA_CBC_PAD:
-+ case CKM_CDMF_CBC_PAD:
-+ case CKM_CAST_CBC_PAD:
-+ case CKM_CAST3_CBC_PAD:
-+ case CKM_CAST5_CBC_PAD:
-+ case CKM_SKIPJACK_CBC64:
-+ case CKM_SKIPJACK_ECB64:
-+ case CKM_SKIPJACK_OFB64:
-+ case CKM_SKIPJACK_CFB64:
-+ case CKM_SKIPJACK_CFB32:
-+ case CKM_SKIPJACK_CFB16:
-+ case CKM_SKIPJACK_CFB8:
-+ case CKM_BATON_ECB128:
-+ case CKM_BATON_ECB96:
-+ case CKM_BATON_CBC128:
-+ case CKM_BATON_COUNTER:
-+ case CKM_BATON_SHUFFLE:
-+ case CKM_JUNIPER_ECB128:
-+ case CKM_JUNIPER_CBC128:
-+ case CKM_JUNIPER_COUNTER:
-+ case CKM_JUNIPER_SHUFFLE:
-+ if ((iv == NULL) || (iv->data == NULL)) break;
-+ param->data = (unsigned char*)PORT_Alloc(iv->len);
-+ if (param->data != NULL) {
-+ PORT_Memcpy(param->data,iv->data,iv->len);
-+ param->len = iv->len;
-+ }
-+ break;
-+ /* unknown mechanism, pass IV in if it's there */
-+ default:
-+ if (pk11_lookup(type)->iv == 0) {
-+ break;
-+ }
-+ if ((iv == NULL) || (iv->data == NULL)) {
-+ break;
-+ }
-+ param->data = (unsigned char*)PORT_Alloc(iv->len);
-+ if (param->data != NULL) {
-+ PORT_Memcpy(param->data,iv->data,iv->len);
-+ param->len = iv->len;
-+ }
-+ break;
-+ }
-+ return param;
-+}
-+
-+unsigned char *
-+PK11_IVFromParam(CK_MECHANISM_TYPE type,SECItem *param,int *len)
-+{
-+ CK_RC2_CBC_PARAMS *rc2_params;
-+ CK_RC5_CBC_PARAMS *rc5_cbc_params;
-+
-+ *len = 0;
-+ switch (type) {
-+ case CKM_AES_ECB:
-+ case CKM_DES_ECB:
-+ case CKM_DES3_ECB:
-+ case CKM_RSA_PKCS:
-+ case CKM_RSA_X_509:
-+ case CKM_RSA_9796:
-+ case CKM_IDEA_ECB:
-+ case CKM_CDMF_ECB:
-+ case CKM_CAST_ECB:
-+ case CKM_CAST3_ECB:
-+ case CKM_CAST5_ECB:
-+ case CKM_RC4:
-+ return NULL;
-+ case CKM_RC2_ECB:
-+ return NULL;
-+ case CKM_RC2_CBC:
-+ case CKM_RC2_CBC_PAD:
-+ rc2_params = (CK_RC2_CBC_PARAMS *)param->data;
-+ *len = sizeof(rc2_params->iv);
-+ return &rc2_params->iv[0];
-+ case CKM_RC5_CBC:
-+ case CKM_RC5_CBC_PAD:
-+ rc5_cbc_params = (CK_RC5_CBC_PARAMS *) param->data;
-+ *len = rc5_cbc_params->ulIvLen;
-+ return rc5_cbc_params->pIv;
-+ case CKM_AES_CBC:
-+ case CKM_DES_CBC:
-+ case CKM_DES3_CBC:
-+ case CKM_IDEA_CBC:
-+ case CKM_CDMF_CBC:
-+ case CKM_CAST_CBC:
-+ case CKM_CAST3_CBC:
-+ case CKM_CAST5_CBC:
-+ case CKM_DES_CBC_PAD:
-+ case CKM_DES3_CBC_PAD:
-+ case CKM_IDEA_CBC_PAD:
-+ case CKM_CDMF_CBC_PAD:
-+ case CKM_CAST_CBC_PAD:
-+ case CKM_CAST3_CBC_PAD:
-+ case CKM_CAST5_CBC_PAD:
-+ case CKM_SKIPJACK_CBC64:
-+ case CKM_SKIPJACK_ECB64:
-+ case CKM_SKIPJACK_OFB64:
-+ case CKM_SKIPJACK_CFB64:
-+ case CKM_SKIPJACK_CFB32:
-+ case CKM_SKIPJACK_CFB16:
-+ case CKM_SKIPJACK_CFB8:
-+ case CKM_BATON_ECB128:
-+ case CKM_BATON_ECB96:
-+ case CKM_BATON_CBC128:
-+ case CKM_BATON_COUNTER:
-+ case CKM_BATON_SHUFFLE:
-+ case CKM_JUNIPER_ECB128:
-+ case CKM_JUNIPER_CBC128:
-+ case CKM_JUNIPER_COUNTER:
-+ case CKM_JUNIPER_SHUFFLE:
-+ break;
-+ /* unknown mechanism, pass IV in if it's there */
-+ default:
-+ break;
-+ }
-+ if (param->data) {
-+ *len = param->len;
-+ }
-+ return param->data;
-+}
-+
-+typedef struct sec_rc5cbcParameterStr {
-+ SECItem version;
-+ SECItem rounds;
-+ SECItem blockSizeInBits;
-+ SECItem iv;
-+} sec_rc5cbcParameter;
-+
-+static const SEC_ASN1Template sec_rc5ecb_parameter_template[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(sec_rc5cbcParameter) },
-+ { SEC_ASN1_INTEGER,
-+ offsetof(sec_rc5cbcParameter,version) },
-+ { SEC_ASN1_INTEGER,
-+ offsetof(sec_rc5cbcParameter,rounds) },
-+ { SEC_ASN1_INTEGER,
-+ offsetof(sec_rc5cbcParameter,blockSizeInBits) },
-+ { 0 }
-+};
-+
-+static const SEC_ASN1Template sec_rc5cbc_parameter_template[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(sec_rc5cbcParameter) },
-+ { SEC_ASN1_INTEGER,
-+ offsetof(sec_rc5cbcParameter,version) },
-+ { SEC_ASN1_INTEGER,
-+ offsetof(sec_rc5cbcParameter,rounds) },
-+ { SEC_ASN1_INTEGER,
-+ offsetof(sec_rc5cbcParameter,blockSizeInBits) },
-+ { SEC_ASN1_OCTET_STRING,
-+ offsetof(sec_rc5cbcParameter,iv) },
-+ { 0 }
-+};
-+
-+typedef struct sec_rc2cbcParameterStr {
-+ SECItem rc2ParameterVersion;
-+ SECItem iv;
-+} sec_rc2cbcParameter;
-+
-+static const SEC_ASN1Template sec_rc2cbc_parameter_template[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(sec_rc2cbcParameter) },
-+ { SEC_ASN1_INTEGER,
-+ offsetof(sec_rc2cbcParameter,rc2ParameterVersion) },
-+ { SEC_ASN1_OCTET_STRING,
-+ offsetof(sec_rc2cbcParameter,iv) },
-+ { 0 }
-+};
-+
-+static const SEC_ASN1Template sec_rc2ecb_parameter_template[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(sec_rc2cbcParameter) },
-+ { SEC_ASN1_INTEGER,
-+ offsetof(sec_rc2cbcParameter,rc2ParameterVersion) },
-+ { 0 }
-+};
-+
-+/* S/MIME picked id values to represent differnt keysizes */
-+/* I do have a formula, but it ain't pretty, and it only works because you
-+ * can always match three points to a parabola:) */
-+static unsigned char rc2_map(SECItem *version)
-+{
-+ long x;
-+
-+ x = DER_GetInteger(version);
-+
-+ switch (x) {
-+ case 58: return 128;
-+ case 120: return 64;
-+ case 160: return 40;
-+ }
-+ return 128;
-+}
-+
-+static unsigned long rc2_unmap(unsigned long x)
-+{
-+ switch (x) {
-+ case 128: return 58;
-+ case 64: return 120;
-+ case 40: return 160;
-+ }
-+ return 58;
-+}
-+
-+
-+
-+/* Generate a mechaism param from a type, and iv. */
-+SECItem *
-+PK11_ParamFromAlgid(SECAlgorithmID *algid)
-+{
-+ CK_RC2_CBC_PARAMS * rc2_cbc_params = NULL;
-+ CK_RC2_PARAMS * rc2_ecb_params = NULL;
-+ CK_RC5_CBC_PARAMS * rc5_cbc_params = NULL;
-+ CK_RC5_PARAMS * rc5_ecb_params = NULL;
-+ PRArenaPool * arena = NULL;
-+ SECItem * mech = NULL;
-+ SECOidTag algtag;
-+ SECStatus rv;
-+ CK_MECHANISM_TYPE type;
-+ /* initialize these to prevent UMRs in the ASN1 decoder. */
-+ SECItem iv = {siBuffer, NULL, 0};
-+ sec_rc2cbcParameter rc2 = { {siBuffer, NULL, 0}, {siBuffer, NULL, 0} };
-+ sec_rc5cbcParameter rc5 = { {siBuffer, NULL, 0}, {siBuffer, NULL, 0},
-+ {siBuffer, NULL, 0}, {siBuffer, NULL, 0} };
-+
-+ algtag = SECOID_GetAlgorithmTag(algid);
-+ type = PK11_AlgtagToMechanism(algtag);
-+
-+ mech = PORT_New(SECItem);
-+ if (mech == NULL) {
-+ return NULL;
-+ }
-+ mech->type = siBuffer;
-+ mech->data = NULL;
-+ mech->len = 0;
-+
-+ arena = PORT_NewArena(1024);
-+ if (!arena) {
-+ goto loser;
-+ }
-+
-+ /* handle the complicated cases */
-+ switch (type) {
-+ case CKM_RC2_ECB:
-+ rv = SEC_ASN1DecodeItem(arena, &rc2 ,sec_rc2ecb_parameter_template,
-+ &(algid->parameters));
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+ rc2_ecb_params = PORT_New(CK_RC2_PARAMS);
-+ if (rc2_ecb_params == NULL) {
-+ goto loser;
-+ }
-+ *rc2_ecb_params = rc2_map(&rc2.rc2ParameterVersion);
-+ mech->data = (unsigned char *) rc2_ecb_params;
-+ mech->len = sizeof *rc2_ecb_params;
-+ break;
-+ case CKM_RC2_CBC:
-+ case CKM_RC2_CBC_PAD:
-+ rv = SEC_ASN1DecodeItem(arena, &rc2 ,sec_rc2cbc_parameter_template,
-+ &(algid->parameters));
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+ rc2_cbc_params = PORT_New(CK_RC2_CBC_PARAMS);
-+ if (rc2_cbc_params == NULL) {
-+ goto loser;
-+ }
-+ mech->data = (unsigned char *) rc2_cbc_params;
-+ mech->len = sizeof *rc2_cbc_params;
-+ rc2_cbc_params->ulEffectiveBits = rc2_map(&rc2.rc2ParameterVersion);
-+ if (rc2.iv.len != sizeof rc2_cbc_params->iv) {
-+ PORT_SetError(SEC_ERROR_INPUT_LEN);
-+ goto loser;
-+ }
-+ PORT_Memcpy(rc2_cbc_params->iv, rc2.iv.data, rc2.iv.len);
-+ break;
-+ case CKM_RC5_ECB:
-+ rv = SEC_ASN1DecodeItem(arena, &rc5 ,sec_rc5ecb_parameter_template,
-+ &(algid->parameters));
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+ rc5_ecb_params = PORT_New(CK_RC5_PARAMS);
-+ if (rc5_ecb_params == NULL) {
-+ goto loser;
-+ }
-+ rc5_ecb_params->ulRounds = DER_GetInteger(&rc5.rounds);
-+ rc5_ecb_params->ulWordsize = DER_GetInteger(&rc5.blockSizeInBits)/8;
-+ mech->data = (unsigned char *) rc5_ecb_params;
-+ mech->len = sizeof *rc5_ecb_params;
-+ break;
-+ case CKM_RC5_CBC:
-+ case CKM_RC5_CBC_PAD:
-+ rv = SEC_ASN1DecodeItem(arena, &rc5 ,sec_rc5cbc_parameter_template,
-+ &(algid->parameters));
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+ rc5_cbc_params = (CK_RC5_CBC_PARAMS *)
-+ PORT_Alloc(sizeof(CK_RC5_CBC_PARAMS) + rc5.iv.len);
-+ if (rc5_cbc_params == NULL) {
-+ goto loser;
-+ }
-+ mech->data = (unsigned char *) rc5_cbc_params;
-+ mech->len = sizeof *rc5_cbc_params;
-+ rc5_cbc_params->ulRounds = DER_GetInteger(&rc5.rounds);
-+ rc5_cbc_params->ulWordsize = DER_GetInteger(&rc5.blockSizeInBits)/8;
-+ rc5_cbc_params->pIv = ((CK_BYTE_PTR)rc5_cbc_params)
-+ + sizeof(CK_RC5_CBC_PARAMS);
-+ rc5_cbc_params->ulIvLen = rc5.iv.len;
-+ PORT_Memcpy(rc5_cbc_params->pIv, rc5.iv.data, rc5.iv.len);
-+ break;
-+ case CKM_PBE_MD2_DES_CBC:
-+ case CKM_PBE_MD5_DES_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_DES_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_TRIPLE_DES_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_FAULTY_3DES_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_40_BIT_RC2_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_128_BIT_RC2_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_40_BIT_RC4:
-+ case CKM_NETSCAPE_PBE_SHA1_128_BIT_RC4:
-+ case CKM_PBE_SHA1_DES2_EDE_CBC:
-+ case CKM_PBE_SHA1_DES3_EDE_CBC:
-+ case CKM_PBE_SHA1_RC2_40_CBC:
-+ case CKM_PBE_SHA1_RC2_128_CBC:
-+ case CKM_PBE_SHA1_RC4_40:
-+ case CKM_PBE_SHA1_RC4_128:
-+ rv = pbe_PK11AlgidToParam(algid,mech);
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+ break;
-+ case CKM_RC4:
-+ case CKM_AES_ECB:
-+ case CKM_DES_ECB:
-+ case CKM_DES3_ECB:
-+ case CKM_IDEA_ECB:
-+ case CKM_CDMF_ECB:
-+ case CKM_CAST_ECB:
-+ case CKM_CAST3_ECB:
-+ case CKM_CAST5_ECB:
-+ break;
-+
-+ default:
-+ if (pk11_lookup(type)->iv == 0) {
-+ break;
-+ }
-+ /* FALL THROUGH */
-+ case CKM_AES_CBC:
-+ case CKM_DES_CBC:
-+ case CKM_DES3_CBC:
-+ case CKM_IDEA_CBC:
-+ case CKM_CDMF_CBC:
-+ case CKM_CAST_CBC:
-+ case CKM_CAST3_CBC:
-+ case CKM_CAST5_CBC:
-+ case CKM_AES_CBC_PAD:
-+ case CKM_DES_CBC_PAD:
-+ case CKM_DES3_CBC_PAD:
-+ case CKM_IDEA_CBC_PAD:
-+ case CKM_CDMF_CBC_PAD:
-+ case CKM_CAST_CBC_PAD:
-+ case CKM_CAST3_CBC_PAD:
-+ case CKM_CAST5_CBC_PAD:
-+ case CKM_SKIPJACK_CBC64:
-+ case CKM_SKIPJACK_ECB64:
-+ case CKM_SKIPJACK_OFB64:
-+ case CKM_SKIPJACK_CFB64:
-+ case CKM_SKIPJACK_CFB32:
-+ case CKM_SKIPJACK_CFB16:
-+ case CKM_SKIPJACK_CFB8:
-+ case CKM_BATON_ECB128:
-+ case CKM_BATON_ECB96:
-+ case CKM_BATON_CBC128:
-+ case CKM_BATON_COUNTER:
-+ case CKM_BATON_SHUFFLE:
-+ case CKM_JUNIPER_ECB128:
-+ case CKM_JUNIPER_CBC128:
-+ case CKM_JUNIPER_COUNTER:
-+ case CKM_JUNIPER_SHUFFLE:
-+ /* simple cases are simply octet string encoded IVs */
-+ rv = SEC_ASN1DecodeItem(arena, &iv, SEC_OctetStringTemplate,
-+ &(algid->parameters));
-+ if (rv != SECSuccess || iv.data == NULL) {
-+ goto loser;
-+ }
-+ /* XXX Should be some IV length sanity check here. */
-+ mech->data = (unsigned char*)PORT_Alloc(iv.len);
-+ if (mech->data == NULL) {
-+ goto loser;
-+ }
-+ PORT_Memcpy(mech->data, iv.data, iv.len);
-+ mech->len = iv.len;
-+ break;
-+ }
-+ PORT_FreeArena(arena, PR_FALSE);
-+ return mech;
-+
-+loser:
-+ if (arena)
-+ PORT_FreeArena(arena, PR_FALSE);
-+ SECITEM_FreeItem(mech,PR_TRUE);
-+ return NULL;
-+}
-+
-+SECStatus
-+PK11_SeedRandom(PK11SlotInfo *slot, unsigned char *data, int len) {
-+ CK_RV crv;
-+
-+ PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_SeedRandom(slot->session,data, (CK_ULONG)len);
-+ PK11_ExitSlotMonitor(slot);
-+ return (crv != CKR_OK) ? SECFailure : SECSuccess;
-+}
-+
-+/* Attempts to update the Best Slot for "FAKE RANDOM" generation.
-+** If that's not the internal slot, then it also attempts to update the
-+** internal slot.
-+** The return value indicates if the INTERNAL slot was updated OK.
-+*/
-+SECStatus
-+PK11_RandomUpdate(void *data, size_t bytes)
-+{
-+ PK11SlotInfo *slot;
-+ PRBool bestIsInternal;
-+ SECStatus status;
-+
-+ slot = PK11_GetBestSlot(CKM_FAKE_RANDOM, NULL);
-+ if (slot == NULL) {
-+ slot = PK11_GetInternalSlot();
-+ if (!slot)
-+ return SECFailure;
-+ }
-+
-+ bestIsInternal = PK11_IsInternal(slot);
-+ status = PK11_SeedRandom(slot, data, bytes);
-+ PK11_FreeSlot(slot);
-+
-+ if (!bestIsInternal) {
-+ /* do internal slot, too. */
-+ slot = PK11_GetInternalSlot(); /* can't fail */
-+ status = PK11_SeedRandom(slot, data, bytes);
-+ PK11_FreeSlot(slot);
-+ }
-+ return status;
-+}
-+
-+
-+SECStatus
-+PK11_GenerateRandom(unsigned char *data,int len) {
-+ PK11SlotInfo *slot;
-+ CK_RV crv;
-+
-+ slot = PK11_GetBestSlot(CKM_FAKE_RANDOM,NULL);
-+ if (slot == NULL) return SECFailure;
-+
-+ if (!slot->isInternal) PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_GenerateRandom(slot->session,data,
-+ (CK_ULONG)len);
-+ if (!slot->isInternal) PK11_ExitSlotMonitor(slot);
-+ PK11_FreeSlot(slot);
-+ return (crv != CKR_OK) ? SECFailure : SECSuccess;
-+}
-+
-+/*
-+ * Generate an IV for the given mechanism
-+ */
-+static SECStatus
-+pk11_GenIV(CK_MECHANISM_TYPE type, SECItem *iv) {
-+ int iv_size = PK11_GetIVLength(type);
-+ SECStatus rv;
-+
-+ iv->len = iv_size;
-+ if (iv_size == 0) {
-+ iv->data = NULL;
-+ return SECSuccess;
-+ }
-+
-+ iv->data = (unsigned char *) PORT_Alloc(iv_size);
-+ if (iv->data == NULL) {
-+ iv->len = 0;
-+ return SECFailure;
-+ }
-+
-+ rv = PK11_GenerateRandom(iv->data,iv->len);
-+ if (rv != SECSuccess) {
-+ PORT_Free(iv->data);
-+ iv->data = NULL; iv->len = 0;
-+ return SECFailure;
-+ }
-+ return SECSuccess;
-+}
-+
-+
-+/*
-+ * create a new paramter block from the passed in MECHANISM and the
-+ * key. Use Netscape's S/MIME Rules for the New param block.
-+ */
-+SECItem *
-+PK11_GenerateNewParam(CK_MECHANISM_TYPE type, PK11SymKey *key) {
-+ CK_RC2_CBC_PARAMS *rc2_params;
-+ CK_RC2_PARAMS *rc2_ecb_params;
-+ SECItem *mech;
-+ SECItem iv;
-+ SECStatus rv;
-+
-+
-+ mech = (SECItem *) PORT_Alloc(sizeof(SECItem));
-+ if (mech == NULL) return NULL;
-+
-+ rv = SECSuccess;
-+ mech->type = siBuffer;
-+ switch (type) {
-+ case CKM_RC4:
-+ case CKM_AES_ECB:
-+ case CKM_DES_ECB:
-+ case CKM_DES3_ECB:
-+ case CKM_IDEA_ECB:
-+ case CKM_CDMF_ECB:
-+ case CKM_CAST_ECB:
-+ case CKM_CAST3_ECB:
-+ case CKM_CAST5_ECB:
-+ mech->data = NULL;
-+ mech->len = 0;
-+ break;
-+ case CKM_RC2_ECB:
-+ rc2_ecb_params = (CK_RC2_PARAMS *)PORT_Alloc(sizeof(CK_RC2_PARAMS));
-+ if (rc2_ecb_params == NULL) {
-+ rv = SECFailure;
-+ break;
-+ }
-+ /* NOTE PK11_GetKeyLength can return -1 if the key isn't and RC2, RC5,
-+ * or RC4 key. Of course that wouldn't happen here doing RC2:).*/
-+ *rc2_ecb_params = PK11_GetKeyLength(key)*8;
-+ mech->data = (unsigned char *) rc2_ecb_params;
-+ mech->len = sizeof(CK_RC2_PARAMS);
-+ break;
-+ case CKM_RC2_CBC:
-+ case CKM_RC2_CBC_PAD:
-+ rv = pk11_GenIV(type,&iv);
-+ if (rv != SECSuccess) {
-+ break;
-+ }
-+ rc2_params = (CK_RC2_CBC_PARAMS *)PORT_Alloc(sizeof(CK_RC2_CBC_PARAMS));
-+ if (rc2_params == NULL) {
-+ PORT_Free(iv.data);
-+ rv = SECFailure;
-+ break;
-+ }
-+ /* NOTE PK11_GetKeyLength can return -1 if the key isn't and RC2, RC5,
-+ * or RC4 key. Of course that wouldn't happen here doing RC2:).*/
-+ rc2_params->ulEffectiveBits = PK11_GetKeyLength(key)*8;
-+ if (iv.data)
-+ PORT_Memcpy(rc2_params->iv,iv.data,sizeof(rc2_params->iv));
-+ mech->data = (unsigned char *) rc2_params;
-+ mech->len = sizeof(CK_RC2_CBC_PARAMS);
-+ PORT_Free(iv.data);
-+ break;
-+ case CKM_RC5_ECB:
-+ PORT_Free(mech);
-+ return PK11_ParamFromIV(type,NULL);
-+ case CKM_RC5_CBC:
-+ case CKM_RC5_CBC_PAD:
-+ rv = pk11_GenIV(type,&iv);
-+ if (rv != SECSuccess) {
-+ break;
-+ }
-+ PORT_Free(mech);
-+ return PK11_ParamFromIV(type,&iv);
-+ default:
-+ if (pk11_lookup(type)->iv == 0) {
-+ mech->data = NULL;
-+ mech->len = 0;
-+ break;
-+ }
-+ case CKM_AES_CBC:
-+ case CKM_DES_CBC:
-+ case CKM_DES3_CBC:
-+ case CKM_IDEA_CBC:
-+ case CKM_CDMF_CBC:
-+ case CKM_CAST_CBC:
-+ case CKM_CAST3_CBC:
-+ case CKM_CAST5_CBC:
-+ case CKM_DES_CBC_PAD:
-+ case CKM_DES3_CBC_PAD:
-+ case CKM_IDEA_CBC_PAD:
-+ case CKM_CDMF_CBC_PAD:
-+ case CKM_CAST_CBC_PAD:
-+ case CKM_CAST3_CBC_PAD:
-+ case CKM_CAST5_CBC_PAD:
-+ case CKM_SKIPJACK_CBC64:
-+ case CKM_SKIPJACK_ECB64:
-+ case CKM_SKIPJACK_OFB64:
-+ case CKM_SKIPJACK_CFB64:
-+ case CKM_SKIPJACK_CFB32:
-+ case CKM_SKIPJACK_CFB16:
-+ case CKM_SKIPJACK_CFB8:
-+ case CKM_BATON_ECB128:
-+ case CKM_BATON_ECB96:
-+ case CKM_BATON_CBC128:
-+ case CKM_BATON_COUNTER:
-+ case CKM_BATON_SHUFFLE:
-+ case CKM_JUNIPER_ECB128:
-+ case CKM_JUNIPER_CBC128:
-+ case CKM_JUNIPER_COUNTER:
-+ case CKM_JUNIPER_SHUFFLE:
-+ rv = pk11_GenIV(type,&iv);
-+ if (rv != SECSuccess) {
-+ break;
-+ }
-+ mech->data = (unsigned char*)PORT_Alloc(iv.len);
-+ if (mech->data == NULL) {
-+ PORT_Free(iv.data);
-+ rv = SECFailure;
-+ break;
-+ }
-+ PORT_Memcpy(mech->data,iv.data,iv.len);
-+ mech->len = iv.len;
-+ PORT_Free(iv.data);
-+ break;
-+ }
-+ if (rv != SECSuccess) {
-+ SECITEM_FreeItem(mech,PR_TRUE);
-+ return NULL;
-+ }
-+ return mech;
-+
-+}
-+
-+#define RC5_V10 0x10
-+
-+/* turn a PKCS #11 parameter into a DER Encoded Algorithm ID */
-+SECStatus
-+PK11_ParamToAlgid(SECOidTag algTag, SECItem *param,
-+ PRArenaPool *arena, SECAlgorithmID *algid) {
-+ CK_RC2_CBC_PARAMS *rc2_params;
-+ sec_rc2cbcParameter rc2;
-+ CK_RC5_CBC_PARAMS *rc5_params;
-+ sec_rc5cbcParameter rc5;
-+ CK_MECHANISM_TYPE type = PK11_AlgtagToMechanism(algTag);
-+ SECItem *newParams = NULL;
-+ SECStatus rv = SECFailure;
-+ unsigned long rc2version;
-+
-+ rv = SECSuccess;
-+ switch (type) {
-+ case CKM_RC4:
-+ case CKM_AES_ECB:
-+ case CKM_DES_ECB:
-+ case CKM_DES3_ECB:
-+ case CKM_IDEA_ECB:
-+ case CKM_CDMF_ECB:
-+ case CKM_CAST_ECB:
-+ case CKM_CAST3_ECB:
-+ case CKM_CAST5_ECB:
-+ newParams = NULL;
-+ rv = SECSuccess;
-+ break;
-+ case CKM_RC2_ECB:
-+ break;
-+ case CKM_RC2_CBC:
-+ case CKM_RC2_CBC_PAD:
-+ rc2_params = (CK_RC2_CBC_PARAMS *)param->data;
-+ rc2version = rc2_unmap(rc2_params->ulEffectiveBits);
-+ if (SEC_ASN1EncodeUnsignedInteger (NULL, &(rc2.rc2ParameterVersion),
-+ rc2version) == NULL)
-+ break;
-+ rc2.iv.data = rc2_params->iv;
-+ rc2.iv.len = sizeof(rc2_params->iv);
-+ newParams = SEC_ASN1EncodeItem (NULL, NULL, &rc2,
-+ sec_rc2cbc_parameter_template);
-+ PORT_Free(rc2.rc2ParameterVersion.data);
-+ if (newParams == NULL)
-+ break;
-+ rv = SECSuccess;
-+ break;
-+
-+ case CKM_RC5_ECB: /* well not really... */
-+ break;
-+ case CKM_RC5_CBC:
-+ case CKM_RC5_CBC_PAD:
-+ rc5_params = (CK_RC5_CBC_PARAMS *)param->data;
-+ if (SEC_ASN1EncodeUnsignedInteger (NULL, &rc5.version, RC5_V10) == NULL)
-+ break;
-+ if (SEC_ASN1EncodeUnsignedInteger (NULL, &rc5.blockSizeInBits,
-+ rc5_params->ulWordsize*8) == NULL) {
-+ PORT_Free(rc5.version.data);
-+ break;
-+ }
-+ if (SEC_ASN1EncodeUnsignedInteger (NULL, &rc5.rounds,
-+ rc5_params->ulWordsize*8) == NULL) {
-+ PORT_Free(rc5.blockSizeInBits.data);
-+ PORT_Free(rc5.version.data);
-+ break;
-+ }
-+ rc5.iv.data = rc5_params->pIv;
-+ rc5.iv.len = rc5_params->ulIvLen;
-+ newParams = SEC_ASN1EncodeItem (NULL, NULL, &rc5,
-+ sec_rc5cbc_parameter_template);
-+ PORT_Free(rc5.version.data);
-+ PORT_Free(rc5.blockSizeInBits.data);
-+ PORT_Free(rc5.rounds.data);
-+ if (newParams == NULL)
-+ break;
-+ rv = SECSuccess;
-+ break;
-+ case CKM_PBE_MD2_DES_CBC:
-+ case CKM_PBE_MD5_DES_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_DES_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_TRIPLE_DES_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_FAULTY_3DES_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_40_BIT_RC2_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_128_BIT_RC2_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_40_BIT_RC4:
-+ case CKM_NETSCAPE_PBE_SHA1_128_BIT_RC4:
-+ case CKM_PBE_SHA1_DES3_EDE_CBC:
-+ case CKM_PBE_SHA1_DES2_EDE_CBC:
-+ case CKM_PBE_SHA1_RC2_40_CBC:
-+ case CKM_PBE_SHA1_RC2_128_CBC:
-+ case CKM_PBE_SHA1_RC4_40:
-+ case CKM_PBE_SHA1_RC4_128:
-+ return PBE_PK11ParamToAlgid(algTag, param, arena, algid);
-+ default:
-+ if (pk11_lookup(type)->iv == 0) {
-+ rv = SECSuccess;
-+ newParams = NULL;
-+ break;
-+ }
-+ case CKM_AES_CBC:
-+ case CKM_DES_CBC:
-+ case CKM_DES3_CBC:
-+ case CKM_IDEA_CBC:
-+ case CKM_CDMF_CBC:
-+ case CKM_CAST_CBC:
-+ case CKM_CAST3_CBC:
-+ case CKM_CAST5_CBC:
-+ case CKM_DES_CBC_PAD:
-+ case CKM_DES3_CBC_PAD:
-+ case CKM_IDEA_CBC_PAD:
-+ case CKM_CDMF_CBC_PAD:
-+ case CKM_CAST_CBC_PAD:
-+ case CKM_CAST3_CBC_PAD:
-+ case CKM_CAST5_CBC_PAD:
-+ case CKM_SKIPJACK_CBC64:
-+ case CKM_SKIPJACK_ECB64:
-+ case CKM_SKIPJACK_OFB64:
-+ case CKM_SKIPJACK_CFB64:
-+ case CKM_SKIPJACK_CFB32:
-+ case CKM_SKIPJACK_CFB16:
-+ case CKM_SKIPJACK_CFB8:
-+ case CKM_BATON_ECB128:
-+ case CKM_BATON_ECB96:
-+ case CKM_BATON_CBC128:
-+ case CKM_BATON_COUNTER:
-+ case CKM_BATON_SHUFFLE:
-+ case CKM_JUNIPER_ECB128:
-+ case CKM_JUNIPER_CBC128:
-+ case CKM_JUNIPER_COUNTER:
-+ case CKM_JUNIPER_SHUFFLE:
-+ newParams = SEC_ASN1EncodeItem(NULL,NULL,param,
-+ SEC_OctetStringTemplate);
-+ rv = SECSuccess;
-+ break;
-+ }
-+
-+ if (rv != SECSuccess) {
-+ if (newParams) SECITEM_FreeItem(newParams,PR_TRUE);
-+ return rv;
-+ }
-+
-+ rv = SECOID_SetAlgorithmID(arena, algid, algTag, newParams);
-+ SECITEM_FreeItem(newParams,PR_TRUE);
-+ return rv;
-+}
-+
-+/* turn an OID algorithm tag into a PKCS #11 mechanism. This allows us to
-+ * map OID's directly into the PKCS #11 mechanism we want to call. We find
-+ * this mapping in our standard OID table */
-+CK_MECHANISM_TYPE
-+PK11_AlgtagToMechanism(SECOidTag algTag) {
-+ SECOidData *oid = SECOID_FindOIDByTag(algTag);
-+
-+ if (oid) return (CK_MECHANISM_TYPE) oid->mechanism;
-+ return CKM_INVALID_MECHANISM;
-+}
-+
-+/* turn a mechanism into an oid. */
-+SECOidTag
-+PK11_MechanismToAlgtag(CK_MECHANISM_TYPE type) {
-+ SECOidData *oid = SECOID_FindOIDByMechanism((unsigned long)type);
-+
-+ if (oid) return oid->offset;
-+ return SEC_OID_UNKNOWN;
-+}
-+
-+/* Determine appropriate blocking mechanism, used when wrapping private keys
-+ * which require PKCS padding. If the mechanism does not map to a padding
-+ * mechanism, we simply return the mechanism.
-+ */
-+CK_MECHANISM_TYPE
-+PK11_GetPadMechanism(CK_MECHANISM_TYPE type) {
-+ switch(type) {
-+ case CKM_AES_CBC:
-+ return CKM_AES_CBC_PAD;
-+ case CKM_DES_CBC:
-+ return CKM_DES_CBC_PAD;
-+ case CKM_DES3_CBC:
-+ return CKM_DES3_CBC_PAD;
-+ case CKM_RC2_CBC:
-+ return CKM_RC2_CBC_PAD;
-+ case CKM_CDMF_CBC:
-+ return CKM_CDMF_CBC_PAD;
-+ case CKM_CAST_CBC:
-+ return CKM_CAST_CBC_PAD;
-+ case CKM_CAST3_CBC:
-+ return CKM_CAST3_CBC_PAD;
-+ case CKM_CAST5_CBC:
-+ return CKM_CAST5_CBC_PAD;
-+ case CKM_RC5_CBC:
-+ return CKM_RC5_CBC_PAD;
-+ case CKM_IDEA_CBC:
-+ return CKM_IDEA_CBC_PAD;
-+ default:
-+ break;
-+ }
-+
-+ return type;
-+}
-+
-+/*
-+ * Build a block big enough to hold the data
-+ */
-+SECItem *
-+PK11_BlockData(SECItem *data,unsigned long size) {
-+ SECItem *newData;
-+
-+ newData = (SECItem *)PORT_Alloc(sizeof(SECItem));
-+ if (newData == NULL) return NULL;
-+
-+ newData->len = (data->len + (size-1))/size;
-+ newData->len *= size;
-+
-+ newData->data = (unsigned char *) PORT_ZAlloc(newData->len);
-+ if (newData->data == NULL) {
-+ PORT_Free(newData);
-+ return NULL;
-+ }
-+ PORT_Memset(newData->data,newData->len-data->len,newData->len);
-+ PORT_Memcpy(newData->data,data->data,data->len);
-+ return newData;
-+}
-+
-+
-+SECStatus
-+PK11_DestroyObject(PK11SlotInfo *slot,CK_OBJECT_HANDLE object) {
-+ CK_RV crv;
-+
-+ PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_DestroyObject(slot->session,object);
-+ PK11_ExitSlotMonitor(slot);
-+ if (crv != CKR_OK) {
-+ return SECFailure;
-+ }
-+ return SECSuccess;
-+}
-+
-+SECStatus
-+PK11_DestroyTokenObject(PK11SlotInfo *slot,CK_OBJECT_HANDLE object) {
-+ CK_RV crv;
-+ SECStatus rv = SECSuccess;
-+ CK_SESSION_HANDLE rwsession;
-+
-+
-+ rwsession = PK11_GetRWSession(slot);
-+
-+ crv = PK11_GETTAB(slot)->C_DestroyObject(rwsession,object);
-+ if (crv != CKR_OK) {
-+ rv = SECFailure;
-+ PORT_SetError(PK11_MapError(crv));
-+ }
-+ PK11_RestoreROSession(slot,rwsession);
-+ return rv;
-+}
-+
-+/*
-+ * Read in a single attribute into a SECItem. Allocate space for it with
-+ * PORT_Alloc unless an arena is supplied. In the latter case use the arena
-+ * to allocate the space.
-+ */
-+SECStatus
-+PK11_ReadAttribute(PK11SlotInfo *slot, CK_OBJECT_HANDLE id,
-+ CK_ATTRIBUTE_TYPE type, PRArenaPool *arena, SECItem *result) {
-+ CK_ATTRIBUTE attr = { 0, NULL, 0 };
-+ CK_RV crv;
-+
-+ attr.type = type;
-+
-+ PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_GetAttributeValue(slot->session,id,&attr,1);
-+ if (crv != CKR_OK) {
-+ PK11_ExitSlotMonitor(slot);
-+ PORT_SetError(PK11_MapError(crv));
-+ return SECFailure;
-+ }
-+ if (arena) {
-+ attr.pValue = PORT_ArenaAlloc(arena,attr.ulValueLen);
-+ } else {
-+ attr.pValue = PORT_Alloc(attr.ulValueLen);
-+ }
-+ if (attr.pValue == NULL) {
-+ PK11_ExitSlotMonitor(slot);
-+ return SECFailure;
-+ }
-+ crv = PK11_GETTAB(slot)->C_GetAttributeValue(slot->session,id,&attr,1);
-+ PK11_ExitSlotMonitor(slot);
-+ if (crv != CKR_OK) {
-+ PORT_SetError(PK11_MapError(crv));
-+ if (!arena) PORT_Free(attr.pValue);
-+ return SECFailure;
-+ }
-+
-+ result->data = (unsigned char*)attr.pValue;
-+ result->len = attr.ulValueLen;
-+
-+ return SECSuccess;
-+}
-+
-+/*
-+ * Read in a single attribute into As a Ulong.
-+ */
-+CK_ULONG
-+PK11_ReadULongAttribute(PK11SlotInfo *slot, CK_OBJECT_HANDLE id,
-+ CK_ATTRIBUTE_TYPE type) {
-+ CK_ATTRIBUTE attr;
-+ CK_ULONG value = CK_UNAVAILABLE_INFORMATION;
-+ CK_RV crv;
-+
-+ PK11_SETATTRS(&attr,type,&value,sizeof(value));
-+
-+ PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_GetAttributeValue(slot->session,id,&attr,1);
-+ PK11_ExitSlotMonitor(slot);
-+ if (crv != CKR_OK) {
-+ PORT_SetError(PK11_MapError(crv));
-+ }
-+ return value;
-+}
-+
-+/*
-+ * check to see if a bool has been set.
-+ */
-+CK_BBOOL
-+PK11_HasAttributeSet( PK11SlotInfo *slot, CK_OBJECT_HANDLE id,
-+ CK_ATTRIBUTE_TYPE type )
-+{
-+ CK_BBOOL ckvalue = CK_FALSE;
-+ CK_ATTRIBUTE theTemplate;
-+ CK_RV crv;
-+
-+ /* Prepare to retrieve the attribute. */
-+ PK11_SETATTRS( &theTemplate, type, &ckvalue, sizeof( CK_BBOOL ) );
-+
-+ /* Retrieve attribute value. */
-+ PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB( slot )->C_GetAttributeValue( slot->session, id,
-+ &theTemplate, 1 );
-+ PK11_ExitSlotMonitor(slot);
-+ if( crv != CKR_OK ) {
-+ PORT_SetError( PK11_MapError( crv ) );
-+ return CK_FALSE;
-+ }
-+
-+ return ckvalue;
-+}
-+
-+/*
-+ * returns a full list of attributes. Allocate space for them. If an arena is
-+ * provided, allocate space out of the arena.
-+ */
-+CK_RV
-+PK11_GetAttributes(PRArenaPool *arena,PK11SlotInfo *slot,
-+ CK_OBJECT_HANDLE obj,CK_ATTRIBUTE *attr, int count)
-+{
-+ int i;
-+ /* make pedantic happy... note that it's only used arena != NULL */
-+ void *mark = NULL;
-+ CK_RV crv;
-+
-+ /*
-+ * first get all the lengths of the parameters.
-+ */
-+ PK11_EnterSlotMonitor(slot);
-+ crv = PK11_GETTAB(slot)->C_GetAttributeValue(slot->session,obj,attr,count);
-+ if (crv != CKR_OK) {
-+ PK11_ExitSlotMonitor(slot);
-+ return crv;
-+ }
-+
-+ if (arena) {
-+ mark = PORT_ArenaMark(arena);
-+ if (mark == NULL) return CKR_HOST_MEMORY;
-+ }
-+
-+ /*
-+ * now allocate space to store the results.
-+ */
-+ for (i=0; i < count; i++) {
-+ if (arena) {
-+ attr[i].pValue = PORT_ArenaAlloc(arena,attr[i].ulValueLen);
-+ if (attr[i].pValue == NULL) {
-+ /* arena failures, just release the mark */
-+ PORT_ArenaRelease(arena,mark);
-+ PK11_ExitSlotMonitor(slot);
-+ return CKR_HOST_MEMORY;
-+ }
-+ } else {
-+ attr[i].pValue = PORT_Alloc(attr[i].ulValueLen);
-+ if (attr[i].pValue == NULL) {
-+ /* Separate malloc failures, loop to release what we have
-+ * so far */
-+ int j;
-+ for (j= 0; j < i; j++) {
-+ PORT_Free(attr[j].pValue);
-+ /* don't give the caller pointers to freed memory */
-+ attr[j].pValue = NULL;
-+ }
-+ PK11_ExitSlotMonitor(slot);
-+ return CKR_HOST_MEMORY;
-+ }
-+ }
-+ }
-+
-+ /*
-+ * finally get the results.
-+ */
-+ crv = PK11_GETTAB(slot)->C_GetAttributeValue(slot->session,obj,attr,count);
-+ PK11_ExitSlotMonitor(slot);
-+ if (crv != CKR_OK) {
-+ if (arena) {
-+ PORT_ArenaRelease(arena,mark);
-+ } else {
-+ for (i= 0; i < count; i++) {
-+ PORT_Free(attr[i].pValue);
-+ /* don't give the caller pointers to freed memory */
-+ attr[i].pValue = NULL;
-+ }
-+ }
-+ } else if (arena && mark) {
-+ PORT_ArenaUnmark(arena,mark);
-+ }
-+ return crv;
-+}
-+
-+/*
-+ * Reset the token to it's initial state. For the internal module, this will
-+ * Purge your keydb, and reset your cert db certs to USER_INIT.
-+ */
-+SECStatus
-+PK11_ResetToken(PK11SlotInfo *slot, char *sso_pwd)
-+{
-+ unsigned char tokenName[32];
-+ int tokenNameLen;
-+ CK_RV crv;
-+
-+ /* reconstruct the token name */
-+ tokenNameLen = PORT_Strlen(slot->token_name);
-+ if (tokenNameLen > sizeof(tokenName)) {
-+ tokenNameLen = sizeof(tokenName);
-+ }
-+
-+ PORT_Memcpy(tokenName,slot->token_name,tokenNameLen);
-+ if (tokenNameLen < sizeof(tokenName)) {
-+ PORT_Memset(&tokenName[tokenNameLen],' ',
-+ sizeof(tokenName)-tokenNameLen);
-+ }
-+
-+ /* initialize the token */
-+ PK11_EnterSlotMonitor(slot);
-+
-+ /* first shutdown the token. Existing sessions will get closed here */
-+ PK11_GETTAB(slot)->C_CloseAllSessions(slot->slotID);
-+ slot->session = CK_INVALID_SESSION;
-+
-+ /* now re-init the token */
-+ crv = PK11_GETTAB(slot)->C_InitToken(slot->slotID,
-+ (unsigned char *)sso_pwd, sso_pwd ? PORT_Strlen(sso_pwd): 0, tokenName);
-+
-+ /* finally bring the token back up */
-+ PK11_InitToken(slot,PR_TRUE);
-+ PK11_ExitSlotMonitor(slot);
-+ if (crv != CKR_OK) {
-+ PORT_SetError(PK11_MapError(crv));
-+ return SECFailure;
-+ }
-+ nssTrustDomain_UpdateCachedTokenCerts(slot->nssToken->trustDomain,
-+ slot->nssToken);
-+ return SECSuccess;
-+}
-+
-+static PRBool
-+pk11_isAllZero(unsigned char *data,int len) {
-+ while (len--) {
-+ if (*data++) {
-+ return PR_FALSE;
-+ }
-+ }
-+ return PR_TRUE;
-+}
-+
-+CK_RV
-+PK11_MapPBEMechanismToCryptoMechanism(CK_MECHANISM_PTR pPBEMechanism,
-+ CK_MECHANISM_PTR pCryptoMechanism,
-+ SECItem *pbe_pwd, PRBool faulty3DES)
-+{
-+ int iv_len = 0;
-+ CK_PBE_PARAMS_PTR pPBEparams;
-+ CK_RC2_CBC_PARAMS_PTR rc2_params;
-+ CK_ULONG rc2_key_len;
-+
-+ if((pPBEMechanism == CK_NULL_PTR) || (pCryptoMechanism == CK_NULL_PTR)) {
-+ return CKR_HOST_MEMORY;
-+ }
-+
-+ pPBEparams = (CK_PBE_PARAMS_PTR)pPBEMechanism->pParameter;
-+ iv_len = PK11_GetIVLength(pPBEMechanism->mechanism);
-+
-+ if (iv_len) {
-+ if (pk11_isAllZero(pPBEparams->pInitVector,iv_len)) {
-+ SECItem param;
-+ PK11SymKey *symKey;
-+ PK11SlotInfo *intSlot = PK11_GetInternalSlot();
-+
-+ if (intSlot == NULL) {
-+ return CKR_DEVICE_ERROR;
-+ }
-+
-+ param.data = pPBEMechanism->pParameter;
-+ param.len = pPBEMechanism->ulParameterLen;
-+
-+ symKey = PK11_RawPBEKeyGen(intSlot,
-+ pPBEMechanism->mechanism, &param, pbe_pwd, faulty3DES, NULL);
-+ PK11_FreeSlot(intSlot);
-+ if (symKey== NULL) {
-+ return CKR_DEVICE_ERROR; /* sigh */
-+ }
-+ PK11_FreeSymKey(symKey);
-+ }
-+ }
-+
-+ switch(pPBEMechanism->mechanism) {
-+ case CKM_PBE_MD2_DES_CBC:
-+ case CKM_PBE_MD5_DES_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_DES_CBC:
-+ pCryptoMechanism->mechanism = CKM_DES_CBC;
-+ goto have_crypto_mechanism;
-+ case CKM_NETSCAPE_PBE_SHA1_TRIPLE_DES_CBC:
-+ case CKM_NETSCAPE_PBE_SHA1_FAULTY_3DES_CBC:
-+ case CKM_PBE_SHA1_DES3_EDE_CBC:
-+ case CKM_PBE_SHA1_DES2_EDE_CBC:
-+ pCryptoMechanism->mechanism = CKM_DES3_CBC;
-+have_crypto_mechanism:
-+ pCryptoMechanism->pParameter = PORT_Alloc(iv_len);
-+ pCryptoMechanism->ulParameterLen = (CK_ULONG)iv_len;
-+ if(pCryptoMechanism->pParameter == NULL) {
-+ return CKR_HOST_MEMORY;
-+ }
-+ PORT_Memcpy((unsigned char *)(pCryptoMechanism->pParameter),
-+ (unsigned char *)(pPBEparams->pInitVector),
-+ iv_len);
-+ break;
-+ case CKM_NETSCAPE_PBE_SHA1_40_BIT_RC4:
-+ case CKM_NETSCAPE_PBE_SHA1_128_BIT_RC4:
-+ case CKM_PBE_SHA1_RC4_40:
-+ case CKM_PBE_SHA1_RC4_128:
-+ pCryptoMechanism->mechanism = CKM_RC4;
-+ pCryptoMechanism->ulParameterLen = 0;
-+ pCryptoMechanism->pParameter = CK_NULL_PTR;
-+ break;
-+ case CKM_NETSCAPE_PBE_SHA1_40_BIT_RC2_CBC:
-+ case CKM_PBE_SHA1_RC2_40_CBC:
-+ rc2_key_len = 40;
-+ goto have_key_len;
-+ case CKM_NETSCAPE_PBE_SHA1_128_BIT_RC2_CBC:
-+ rc2_key_len = 128;
-+have_key_len:
-+ pCryptoMechanism->mechanism = CKM_RC2_CBC;
-+ pCryptoMechanism->ulParameterLen = (CK_ULONG)
-+ sizeof(CK_RC2_CBC_PARAMS);
-+ pCryptoMechanism->pParameter = (CK_RC2_CBC_PARAMS_PTR)
-+ PORT_ZAlloc(sizeof(CK_RC2_CBC_PARAMS));
-+ if(pCryptoMechanism->pParameter == NULL) {
-+ return CKR_HOST_MEMORY;
-+ }
-+ rc2_params = (CK_RC2_CBC_PARAMS_PTR)pCryptoMechanism->pParameter;
-+ PORT_Memcpy((unsigned char *)rc2_params->iv,
-+ (unsigned char *)pPBEparams->pInitVector,
-+ iv_len);
-+ rc2_params->ulEffectiveBits = rc2_key_len;
-+ break;
-+ default:
-+ return CKR_MECHANISM_INVALID;
-+ }
-+
-+ return CKR_OK;
-+}
-+
-+PRBool
-+PK11_IsPermObject(PK11SlotInfo *slot, CK_OBJECT_HANDLE handle)
-+{
-+ return (PRBool) PK11_HasAttributeSet(slot, handle, CKA_TOKEN);
-+}
-+
-+char *
-+PK11_GetObjectNickname(PK11SlotInfo *slot, CK_OBJECT_HANDLE id)
-+{
-+ char *nickname = NULL;
-+ SECItem result;
-+ SECStatus rv;
-+
-+ rv = PK11_ReadAttribute(slot,id,CKA_LABEL,NULL,&result);
-+ if (rv != SECSuccess) {
-+ return NULL;
-+ }
-+
-+ nickname = PORT_ZAlloc(result.len+1);
-+ if (nickname == NULL) {
-+ PORT_Free(result.data);
-+ return NULL;
-+ }
-+ PORT_Memcpy(nickname, result.data, result.len);
-+ PORT_Free(result.data);
-+ return nickname;
-+}
-+
-+SECStatus
-+PK11_SetObjectNickname(PK11SlotInfo *slot, CK_OBJECT_HANDLE id,
-+ const char *nickname)
-+{
-+ int len = PORT_Strlen(nickname);
-+ CK_ATTRIBUTE setTemplate;
-+ CK_RV crv;
-+ CK_SESSION_HANDLE rwsession;
-+
-+ if (len < 0) {
-+ return SECFailure;
-+ }
-+
-+ PK11_SETATTRS(&setTemplate, CKA_LABEL, (CK_CHAR *) nickname, len);
-+ rwsession = PK11_GetRWSession(slot);
-+ crv = PK11_GETTAB(slot)->C_SetAttributeValue(rwsession, id,
-+ &setTemplate, 1);
-+ PK11_RestoreROSession(slot, rwsession);
-+ if (crv != CKR_OK) {
-+ PORT_SetError(PK11_MapError(crv));
-+ return SECFailure;
-+ }
-+ return SECSuccess;
-+}
-+
-+/*
-+ * wait for a token to change it's state. The application passes in the expected
-+ * new state in event.
-+ */
-+PK11TokenStatus
-+PK11_WaitForTokenEvent(PK11SlotInfo *slot, PK11TokenEvent event,
-+ PRIntervalTime timeout, PRIntervalTime latency, int series)
-+{
-+ PRIntervalTime first_time = 0;
-+ PRBool first_time_set = PR_FALSE;
-+ PRBool waitForRemoval;
-+
-+ if (slot->isPerm) {
-+ return PK11TokenNotRemovable;
-+ }
-+ if (latency == 0) {
-+ latency = PR_SecondsToInterval(5);
-+ }
-+ waitForRemoval = (PRBool) (event == PK11TokenRemovedOrChangedEvent);
-+
-+ if (series == 0) {
-+ series = PK11_GetSlotSeries(slot);
-+ }
-+ while (PK11_IsPresent(slot) == waitForRemoval ) {
-+ PRIntervalTime interval;
-+
-+ if (waitForRemoval && series != PK11_GetSlotSeries(slot)) {
-+ return PK11TokenChanged;
-+ }
-+ if (timeout == PR_INTERVAL_NO_WAIT) {
-+ return waitForRemoval ? PK11TokenPresent : PK11TokenRemoved;
-+ }
-+ if (timeout != PR_INTERVAL_NO_TIMEOUT ) {
-+ interval = PR_IntervalNow();
-+ if (!first_time_set) {
-+ first_time = interval;
-+ first_time_set = PR_TRUE;
-+ }
-+ if ((interval-first_time) > timeout) {
-+ return waitForRemoval ? PK11TokenPresent : PK11TokenRemoved;
-+ }
-+ }
-+ PR_Sleep(latency);
-+ }
-+ return waitForRemoval ? PK11TokenRemoved : PK11TokenPresent;
-+}
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pk11util.c 2004-12-13 13:06:46.685399832 +0100
-@@ -0,0 +1,762 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+/*
-+ * Initialize the PCKS 11 subsystem
-+ */
-+#include "seccomon.h"
-+#include "secmod.h"
-+#include "nssilock.h"
-+#include "secmodi.h"
-+#include "pk11func.h"
-+#include "pki3hack.h"
-+#include "secerr.h"
-+
-+/* these are for displaying error messages */
-+
-+static SECMODModuleList *modules = NULL;
-+static SECMODModuleList *modulesDB = NULL;
-+static SECMODModuleList *modulesUnload = NULL;
-+static SECMODModule *internalModule = NULL;
-+static SECMODModule *defaultDBModule = NULL;
-+static SECMODModule *pendingModule = NULL;
-+static SECMODListLock *moduleLock = NULL;
-+
-+int secmod_PrivateModuleCount = 0;
-+
-+extern PK11DefaultArrayEntry PK11_DefaultArray[];
-+extern int num_pk11_default_mechanisms;
-+
-+
-+void
-+SECMOD_Init() {
-+ /* don't initialize twice */
-+ if (moduleLock) return;
-+
-+ moduleLock = SECMOD_NewListLock();
-+ PK11_InitSlotLists();
-+}
-+
-+
-+SECStatus
-+SECMOD_Shutdown() {
-+ /* destroy the lock */
-+ if (moduleLock) {
-+ SECMOD_DestroyListLock(moduleLock);
-+ moduleLock = NULL;
-+ }
-+ /* free the internal module */
-+ if (internalModule) {
-+ SECMOD_DestroyModule(internalModule);
-+ internalModule = NULL;
-+ }
-+
-+ /* free the default database module */
-+ if (defaultDBModule) {
-+ SECMOD_DestroyModule(defaultDBModule);
-+ defaultDBModule = NULL;
-+ }
-+
-+ /* destroy the list */
-+ if (modules) {
-+ SECMOD_DestroyModuleList(modules);
-+ modules = NULL;
-+ }
-+
-+ if (modulesDB) {
-+ SECMOD_DestroyModuleList(modulesDB);
-+ modulesDB = NULL;
-+ }
-+
-+ if (modulesUnload) {
-+ SECMOD_DestroyModuleList(modulesUnload);
-+ modulesUnload = NULL;
-+ }
-+
-+ /* make all the slots and the lists go away */
-+ PK11_DestroySlotLists();
-+
-+ nss_DumpModuleLog();
-+
-+#ifdef DEBUG
-+ if (PR_GetEnv("NSS_STRICT_SHUTDOWN")) {
-+ PORT_Assert(secmod_PrivateModuleCount == 0);
-+ }
-+#endif
-+ if (secmod_PrivateModuleCount) {
-+ PORT_SetError(SEC_ERROR_BUSY);
-+ return SECFailure;
-+ }
-+ return SECSuccess;
-+}
-+
-+
-+/*
-+ * retrieve the internal module
-+ */
-+SECMODModule *
-+SECMOD_GetInternalModule(void) {
-+ return internalModule;
-+}
-+
-+
-+SECStatus
-+secmod_AddModuleToList(SECMODModuleList **moduleList,SECMODModule *newModule) {
-+ SECMODModuleList *mlp, *newListElement, *last = NULL;
-+
-+ newListElement = SECMOD_NewModuleListElement();
-+ if (newListElement == NULL) {
-+ return SECFailure;
-+ }
-+
-+ newListElement->module = SECMOD_ReferenceModule(newModule);
-+
-+ SECMOD_GetWriteLock(moduleLock);
-+ /* Added it to the end (This is very inefficient, but Adding a module
-+ * on the fly should happen maybe 2-3 times through the life this program
-+ * on a given computer, and this list should be *SHORT*. */
-+ for(mlp = *moduleList; mlp != NULL; mlp = mlp->next) {
-+ last = mlp;
-+ }
-+
-+ if (last == NULL) {
-+ *moduleList = newListElement;
-+ } else {
-+ SECMOD_AddList(last,newListElement,NULL);
-+ }
-+ SECMOD_ReleaseWriteLock(moduleLock);
-+ return SECSuccess;
-+}
-+
-+SECStatus
-+SECMOD_AddModuleToList(SECMODModule *newModule) {
-+ if (newModule->internal && !internalModule) {
-+ internalModule = SECMOD_ReferenceModule(newModule);
-+ }
-+ return secmod_AddModuleToList(&modules,newModule);
-+}
-+
-+SECStatus
-+SECMOD_AddModuleToDBOnlyList(SECMODModule *newModule) {
-+ if (defaultDBModule == NULL) {
-+ defaultDBModule = SECMOD_ReferenceModule(newModule);
-+ }
-+ return secmod_AddModuleToList(&modulesDB,newModule);
-+}
-+
-+SECStatus
-+SECMOD_AddModuleToUnloadList(SECMODModule *newModule) {
-+ return secmod_AddModuleToList(&modulesUnload,newModule);
-+}
-+
-+/*
-+ * get the list of PKCS11 modules that are available.
-+ */
-+SECMODModuleList *SECMOD_GetDefaultModuleList() { return modules; }
-+SECMODModuleList *SECMOD_GetDeadModuleList() { return modulesUnload; }
-+SECMODModuleList *SECMOD_GetDBModuleList() { return modulesDB; }
-+SECMODListLock *SECMOD_GetDefaultModuleListLock() { return moduleLock; }
-+
-+
-+
-+/*
-+ * find a module by name, and add a reference to it.
-+ * return that module.
-+ */
-+SECMODModule *SECMOD_FindModule(const char *name) {
-+ SECMODModuleList *mlp;
-+ SECMODModule *module = NULL;
-+
-+ SECMOD_GetReadLock(moduleLock);
-+ for(mlp = modules; mlp != NULL; mlp = mlp->next) {
-+ if (PORT_Strcmp(name,mlp->module->commonName) == 0) {
-+ module = mlp->module;
-+ SECMOD_ReferenceModule(module);
-+ break;
-+ }
-+ }
-+ if (module) {
-+ goto found;
-+ }
-+ for(mlp = modulesUnload; mlp != NULL; mlp = mlp->next) {
-+ if (PORT_Strcmp(name,mlp->module->commonName) == 0) {
-+ module = mlp->module;
-+ SECMOD_ReferenceModule(module);
-+ break;
-+ }
-+ }
-+
-+found:
-+ SECMOD_ReleaseReadLock(moduleLock);
-+
-+ return module;
-+}
-+
-+/*
-+ * find a module by ID, and add a reference to it.
-+ * return that module.
-+ */
-+SECMODModule *SECMOD_FindModuleByID(SECMODModuleID id) {
-+ SECMODModuleList *mlp;
-+ SECMODModule *module = NULL;
-+
-+ SECMOD_GetReadLock(moduleLock);
-+ for(mlp = modules; mlp != NULL; mlp = mlp->next) {
-+ if (id == mlp->module->moduleID) {
-+ module = mlp->module;
-+ SECMOD_ReferenceModule(module);
-+ break;
-+ }
-+ }
-+ SECMOD_ReleaseReadLock(moduleLock);
-+
-+ return module;
-+}
-+
-+/*
-+ * lookup the Slot module based on it's module ID and slot ID.
-+ */
-+PK11SlotInfo *SECMOD_LookupSlot(SECMODModuleID moduleID,CK_SLOT_ID slotID) {
-+ int i;
-+ SECMODModule *module;
-+
-+ module = SECMOD_FindModuleByID(moduleID);
-+ if (module == NULL) return NULL;
-+
-+ for (i=0; i < module->slotCount; i++) {
-+ PK11SlotInfo *slot = module->slots[i];
-+
-+ if (slot->slotID == slotID) {
-+ SECMOD_DestroyModule(module);
-+ return PK11_ReferenceSlot(slot);
-+ }
-+ }
-+ SECMOD_DestroyModule(module);
-+ return NULL;
-+}
-+
-+
-+/*
-+ * find a module by name or module pointer and delete it off the module list.
-+ * optionally remove it from secmod.db.
-+ */
-+SECStatus
-+SECMOD_DeleteModuleEx(const char *name, SECMODModule *mod,
-+ int *type, PRBool permdb)
-+{
-+ SECMODModuleList *mlp;
-+ SECMODModuleList **mlpp;
-+ SECStatus rv = SECFailure;
-+
-+ *type = SECMOD_EXTERNAL;
-+
-+ SECMOD_GetWriteLock(moduleLock);
-+ for (mlpp = &modules,mlp = modules;
-+ mlp != NULL; mlpp = &mlp->next, mlp = *mlpp) {
-+ if ((name && (PORT_Strcmp(name,mlp->module->commonName) == 0)) ||
-+ mod == mlp->module) {
-+ /* don't delete the internal module */
-+ if (!mlp->module->internal) {
-+ SECMOD_RemoveList(mlpp,mlp);
-+ /* delete it after we release the lock */
-+ rv = STAN_RemoveModuleFromDefaultTrustDomain(mlp->module);
-+ } else if (mlp->module->isFIPS) {
-+ *type = SECMOD_FIPS;
-+ } else {
-+ *type = SECMOD_INTERNAL;
-+ }
-+ break;
-+ }
-+ }
-+ if (mlp) {
-+ goto found;
-+ }
-+ /* not on the internal list, check the unload list */
-+ for (mlpp = &modulesUnload,mlp = modulesUnload;
-+ mlp != NULL; mlpp = &mlp->next, mlp = *mlpp) {
-+ if ((name && (PORT_Strcmp(name,mlp->module->commonName) == 0)) ||
-+ mod == mlp->module) {
-+ /* don't delete the internal module */
-+ if (!mlp->module->internal) {
-+ SECMOD_RemoveList(mlpp,mlp);
-+ rv = SECSuccess;
-+ } else if (mlp->module->isFIPS) {
-+ *type = SECMOD_FIPS;
-+ } else {
-+ *type = SECMOD_INTERNAL;
-+ }
-+ break;
-+ }
-+ }
-+found:
-+ SECMOD_ReleaseWriteLock(moduleLock);
-+
-+
-+ if (rv == SECSuccess) {
-+ if (permdb) {
-+ SECMOD_DeletePermDB(mlp->module);
-+ }
-+ SECMOD_DestroyModuleListElement(mlp);
-+ }
-+ return rv;
-+}
-+
-+/*
-+ * find a module by name and delete it off the module list
-+ */
-+SECStatus
-+SECMOD_DeleteModule(const char *name, int *type) {
-+ return SECMOD_DeleteModuleEx(name, NULL, type, PR_TRUE);
-+}
-+
-+/*
-+ * find a module by name and delete it off the module list
-+ */
-+SECStatus
-+SECMOD_DeleteInternalModule(const char *name) {
-+ SECMODModuleList *mlp;
-+ SECMODModuleList **mlpp;
-+ SECStatus rv = SECFailure;
-+
-+ if (pendingModule) {
-+ PORT_SetError(SEC_ERROR_MODULE_STUCK);
-+ return rv;
-+ }
-+
-+ SECMOD_GetWriteLock(moduleLock);
-+ for(mlpp = &modules,mlp = modules;
-+ mlp != NULL; mlpp = &mlp->next, mlp = *mlpp) {
-+ if (PORT_Strcmp(name,mlp->module->commonName) == 0) {
-+ /* don't delete the internal module */
-+ if (mlp->module->internal) {
-+ SECMOD_RemoveList(mlpp,mlp);
-+ rv = STAN_RemoveModuleFromDefaultTrustDomain(mlp->module);
-+ }
-+ break;
-+ }
-+ }
-+ SECMOD_ReleaseWriteLock(moduleLock);
-+
-+ if (rv == SECSuccess) {
-+ SECMODModule *newModule,*oldModule;
-+
-+ if (mlp->module->isFIPS) {
-+ newModule = SECMOD_CreateModule(NULL, SECMOD_INT_NAME,
-+ NULL, SECMOD_INT_FLAGS);
-+ } else {
-+ newModule = SECMOD_CreateModule(NULL, SECMOD_FIPS_NAME,
-+ NULL, SECMOD_FIPS_FLAGS);
-+ }
-+ if (newModule) {
-+ newModule->libraryParams =
-+ PORT_ArenaStrdup(newModule->arena,mlp->module->libraryParams);
-+ rv = SECMOD_AddModule(newModule);
-+ if (rv != SECSuccess) {
-+ SECMOD_DestroyModule(newModule);
-+ newModule = NULL;
-+ }
-+ }
-+ if (newModule == NULL) {
-+ SECMODModuleList *last = NULL,*mlp2;
-+ /* we're in pretty deep trouble if this happens...Security
-+ * not going to work well... try to put the old module back on
-+ * the list */
-+ SECMOD_GetWriteLock(moduleLock);
-+ for(mlp2 = modules; mlp2 != NULL; mlp2 = mlp->next) {
-+ last = mlp2;
-+ }
-+
-+ if (last == NULL) {
-+ modules = mlp;
-+ } else {
-+ SECMOD_AddList(last,mlp,NULL);
-+ }
-+ SECMOD_ReleaseWriteLock(moduleLock);
-+ return SECFailure;
-+ }
-+ pendingModule = oldModule = internalModule;
-+ internalModule = NULL;
-+ SECMOD_DestroyModule(oldModule);
-+ SECMOD_DeletePermDB(mlp->module);
-+ SECMOD_DestroyModuleListElement(mlp);
-+ internalModule = newModule; /* adopt the module */
-+ }
-+ return rv;
-+}
-+
-+SECStatus
-+SECMOD_AddModule(SECMODModule *newModule) {
-+ SECStatus rv;
-+ SECMODModule *oldModule;
-+
-+ /* Test if a module w/ the same name already exists */
-+ /* and return SECWouldBlock if so. */
-+ /* We should probably add a new return value such as */
-+ /* SECDublicateModule, but to minimize ripples, I'll */
-+ /* give SECWouldBlock a new meaning */
-+ if ((oldModule = SECMOD_FindModule(newModule->commonName)) != NULL) {
-+ SECMOD_DestroyModule(oldModule);
-+ return SECWouldBlock;
-+ /* module already exists. */
-+ }
-+
-+ rv = SECMOD_LoadPKCS11Module(newModule);
-+ if (rv != SECSuccess) {
-+ return rv;
-+ }
-+
-+ if (newModule->parent == NULL) {
-+ newModule->parent = SECMOD_ReferenceModule(defaultDBModule);
-+ }
-+
-+ SECMOD_AddPermDB(newModule);
-+ SECMOD_AddModuleToList(newModule);
-+
-+ rv = STAN_AddModuleToDefaultTrustDomain(newModule);
-+
-+ return rv;
-+}
-+
-+PK11SlotInfo *SECMOD_FindSlot(SECMODModule *module,const char *name) {
-+ int i;
-+ char *string;
-+
-+ for (i=0; i < module->slotCount; i++) {
-+ PK11SlotInfo *slot = module->slots[i];
-+
-+ if (PK11_IsPresent(slot)) {
-+ string = PK11_GetTokenName(slot);
-+ } else {
-+ string = PK11_GetSlotName(slot);
-+ }
-+ if (PORT_Strcmp(name,string) == 0) {
-+ return PK11_ReferenceSlot(slot);
-+ }
-+ }
-+ return NULL;
-+}
-+
-+SECStatus
-+PK11_GetModInfo(SECMODModule *mod,CK_INFO *info)
-+{
-+ CK_RV crv;
-+
-+ if (mod->functionList == NULL) return SECFailure;
-+ crv = PK11_GETTAB(mod)->C_GetInfo(info);
-+ if (crv != CKR_OK) {
-+ PORT_SetError(PK11_MapError(crv));
-+ }
-+ return (crv == CKR_OK) ? SECSuccess : SECFailure;
-+}
-+
-+/* Determine if we have the FIP's module loaded as the default
-+ * module to trigger other bogus FIPS requirements in PKCS #12 and
-+ * SSL
-+ */
-+PRBool
-+PK11_IsFIPS(void)
-+{
-+ SECMODModule *mod = SECMOD_GetInternalModule();
-+
-+ if (mod && mod->internal) {
-+ return mod->isFIPS;
-+ }
-+
-+ return PR_FALSE;
-+}
-+
-+/* combines NewModule() & AddModule */
-+/* give a string for the module name & the full-path for the dll, */
-+/* installs the PKCS11 module & update registry */
-+SECStatus SECMOD_AddNewModuleEx(const char* moduleName, const char* dllPath,
-+ unsigned long defaultMechanismFlags,
-+ unsigned long cipherEnableFlags,
-+ char* modparms,
-+ char* nssparms) {
-+ SECMODModule *module;
-+ SECStatus result = SECFailure;
-+ int s,i;
-+ PK11SlotInfo* slot;
-+
-+ PR_SetErrorText(0, NULL);
-+
-+ module = SECMOD_CreateModule(dllPath, moduleName, modparms, nssparms);
-+
-+ if (module == NULL) {
-+ return result;
-+ }
-+
-+ if (module->dllName != NULL) {
-+ if (module->dllName[0] != 0) {
-+ result = SECMOD_AddModule(module);
-+ if (result == SECSuccess) {
-+ /* turn on SSL cipher enable flags */
-+ module->ssl[0] = cipherEnableFlags;
-+
-+ /* check each slot to turn on appropriate mechanisms */
-+ for (s = 0; s < module->slotCount; s++) {
-+ slot = (module->slots)[s];
-+ /* for each possible mechanism */
-+ for (i=0; i < num_pk11_default_mechanisms; i++) {
-+ /* we are told to turn it on by default ? */
-+ if (PK11_DefaultArray[i].flag & defaultMechanismFlags) {
-+ /* it ignores if slot attribute update failes */
-+ result = PK11_UpdateSlotAttribute(slot, &(PK11_DefaultArray[i]), PR_TRUE);
-+ } else { /* turn this mechanism of the slot off by default */
-+ result = PK11_UpdateSlotAttribute(slot, &(PK11_DefaultArray[i]), PR_FALSE);
-+ }
-+ } /* for each mechanism */
-+ /* disable each slot if the defaultFlags say so */
-+ if (defaultMechanismFlags & PK11_DISABLE_FLAG) {
-+ PK11_UserDisableSlot(slot);
-+ }
-+ } /* for each slot of this module */
-+
-+ /* delete and re-add module in order to save changes to the module */
-+ result = SECMOD_UpdateModule(module);
-+ }
-+ }
-+ }
-+ SECMOD_DestroyModule(module);
-+ return result;
-+}
-+
-+SECStatus SECMOD_AddNewModule(const char* moduleName, const char* dllPath,
-+ unsigned long defaultMechanismFlags,
-+ unsigned long cipherEnableFlags)
-+{
-+ return SECMOD_AddNewModuleEx(moduleName, dllPath, defaultMechanismFlags,
-+ cipherEnableFlags,
-+ NULL, NULL); /* don't pass module or nss params */
-+}
-+
-+SECStatus SECMOD_UpdateModule(SECMODModule *module)
-+{
-+ SECStatus result;
-+
-+ result = SECMOD_DeletePermDB(module);
-+
-+ if (result == SECSuccess) {
-+ result = SECMOD_AddPermDB(module);
-+ }
-+ return result;
-+}
-+
-+/* Public & Internal(Security Library) representation of
-+ * encryption mechanism flags conversion */
-+
-+/* Currently, the only difference is that internal representation
-+ * puts RANDOM_FLAG at bit 31 (Most-significant bit), but
-+ * public representation puts this bit at bit 28
-+ */
-+unsigned long SECMOD_PubMechFlagstoInternal(unsigned long publicFlags) {
-+ unsigned long internalFlags = publicFlags;
-+
-+ if (publicFlags & PUBLIC_MECH_RANDOM_FLAG) {
-+ internalFlags &= ~PUBLIC_MECH_RANDOM_FLAG;
-+ internalFlags |= SECMOD_RANDOM_FLAG;
-+ }
-+ return internalFlags;
-+}
-+
-+unsigned long SECMOD_InternaltoPubMechFlags(unsigned long internalFlags) {
-+ unsigned long publicFlags = internalFlags;
-+
-+ if (internalFlags & SECMOD_RANDOM_FLAG) {
-+ publicFlags &= ~SECMOD_RANDOM_FLAG;
-+ publicFlags |= PUBLIC_MECH_RANDOM_FLAG;
-+ }
-+ return publicFlags;
-+}
-+
-+
-+/* Public & Internal(Security Library) representation of */
-+/* cipher flags conversion */
-+/* Note: currently they are just stubs */
-+unsigned long SECMOD_PubCipherFlagstoInternal(unsigned long publicFlags) {
-+ return publicFlags;
-+}
-+
-+unsigned long SECMOD_InternaltoPubCipherFlags(unsigned long internalFlags) {
-+ return internalFlags;
-+}
-+
-+/* Funtion reports true if module of modType is installed/configured */
-+PRBool
-+SECMOD_IsModulePresent( unsigned long int pubCipherEnableFlags )
-+{
-+ PRBool result = PR_FALSE;
-+ SECMODModuleList *mods = SECMOD_GetDefaultModuleList();
-+ SECMOD_GetReadLock(moduleLock);
-+
-+
-+ for ( ; mods != NULL; mods = mods->next) {
-+ if (mods->module->ssl[0] & SECMOD_PubCipherFlagstoInternal(pubCipherEnableFlags)) {
-+ result = PR_TRUE;
-+ }
-+ }
-+
-+ SECMOD_ReleaseReadLock(moduleLock);
-+ return result;
-+}
-+
-+/* create a new ModuleListElement */
-+SECMODModuleList *SECMOD_NewModuleListElement(void) {
-+ SECMODModuleList *newModList;
-+
-+ newModList= (SECMODModuleList *) PORT_Alloc(sizeof(SECMODModuleList));
-+ if (newModList) {
-+ newModList->next = NULL;
-+ newModList->module = NULL;
-+ }
-+ return newModList;
-+}
-+/*
-+ * make a new reference to a module so It doesn't go away on us
-+ */
-+SECMODModule *
-+SECMOD_ReferenceModule(SECMODModule *module) {
-+ PK11_USE_THREADS(PZ_Lock((PZLock *)module->refLock);)
-+ PORT_Assert(module->refCount > 0);
-+
-+ module->refCount++;
-+ PK11_USE_THREADS(PZ_Unlock((PZLock*)module->refLock);)
-+ return module;
-+}
-+
-+
-+/* destroy an existing module */
-+void
-+SECMOD_DestroyModule(SECMODModule *module) {
-+ PRBool willfree = PR_FALSE;
-+ int slotCount;
-+ int i;
-+
-+ PK11_USE_THREADS(PZ_Lock((PZLock *)module->refLock);)
-+ if (module->refCount-- == 1) {
-+ willfree = PR_TRUE;
-+ }
-+ PORT_Assert(willfree || (module->refCount > 0));
-+ PK11_USE_THREADS(PZ_Unlock((PZLock *)module->refLock);)
-+
-+ if (!willfree) {
-+ return;
-+ }
-+
-+ if (module->parent != NULL) {
-+ SECMODModule *parent = module->parent;
-+ /* paranoia, don't loop forever if the modules are looped */
-+ module->parent = NULL;
-+ SECMOD_DestroyModule(parent);
-+ }
-+
-+ /* slots can't really disappear until our module starts freeing them,
-+ * so this check is safe */
-+ slotCount = module->slotCount;
-+ if (slotCount == 0) {
-+ SECMOD_SlotDestroyModule(module,PR_FALSE);
-+ return;
-+ }
-+
-+ /* now free all out slots, when they are done, they will cause the
-+ * module to disappear altogether */
-+ for (i=0 ; i < slotCount; i++) {
-+ if (!module->slots[i]->disabled) {
-+ PK11_ClearSlotList(module->slots[i]);
-+ }
-+ PK11_FreeSlot(module->slots[i]);
-+ }
-+ /* WARNING: once the last slot has been freed is it possible (even likely)
-+ * that module is no more... touching it now is a good way to go south */
-+}
-+
-+
-+/* we can only get here if we've destroyed the module, or some one has
-+ * erroneously freed a slot that wasn't referenced. */
-+void
-+SECMOD_SlotDestroyModule(SECMODModule *module, PRBool fromSlot) {
-+ PRBool willfree = PR_FALSE;
-+ if (fromSlot) {
-+ PORT_Assert(module->refCount == 0);
-+ PK11_USE_THREADS(PZ_Lock((PZLock *)module->refLock);)
-+ if (module->slotCount-- == 1) {
-+ willfree = PR_TRUE;
-+ }
-+ PORT_Assert(willfree || (module->slotCount > 0));
-+ PK11_USE_THREADS(PZ_Unlock((PZLock *)module->refLock);)
-+ if (!willfree) return;
-+ }
-+
-+ if (module == pendingModule) {
-+ pendingModule = NULL;
-+ }
-+
-+ if (module->loaded) {
-+ SECMOD_UnloadModule(module);
-+ }
-+ PK11_USE_THREADS(PZ_DestroyLock((PZLock *)module->refLock);)
-+ PORT_FreeArena(module->arena,PR_FALSE);
-+ secmod_PrivateModuleCount--;
-+}
-+
-+/* destroy a list element
-+ * this destroys a single element, and returns the next element
-+ * on the chain. It makes it easy to implement for loops to delete
-+ * the chain. It also make deleting a single element easy */
-+SECMODModuleList *
-+SECMOD_DestroyModuleListElement(SECMODModuleList *element) {
-+ SECMODModuleList *next = element->next;
-+
-+ if (element->module) {
-+ SECMOD_DestroyModule(element->module);
-+ element->module = NULL;
-+ }
-+ PORT_Free(element);
-+ return next;
-+}
-+
-+
-+/*
-+ * Destroy an entire module list
-+ */
-+void
-+SECMOD_DestroyModuleList(SECMODModuleList *list) {
-+ SECMODModuleList *lp;
-+
-+ for ( lp = list; lp != NULL; lp = SECMOD_DestroyModuleListElement(lp)) ;
-+}
-+
-+PRBool
-+SECMOD_CanDeleteInternalModule(void)
-+{
-+ return (PRBool) (pendingModule == NULL);
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pki.h 2004-12-13 15:50:16.057148656 +0100
-@@ -0,0 +1,245 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifndef PKI_H
-+#define PKI_H
-+
-+#ifdef DEBUG
-+static const char PKI_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#ifndef NSSDEVT_H
-+#include "nssdevt.h"
-+#endif /* NSSDEVT_H */
-+
-+#ifndef NSSPKI_H
-+#include "nsspki.h"
-+#endif /* NSSPKI_H */
-+
-+#ifndef PKIT_H
-+#include "pkit.h"
-+#endif /* PKIT_H */
-+
-+PR_BEGIN_EXTERN_C
-+
-+NSS_EXTERN NSSCallback *
-+nssTrustDomain_GetDefaultCallback
-+(
-+ NSSTrustDomain *td,
-+ PRStatus *statusOpt
-+);
-+
-+NSS_EXTERN NSSCertificate **
-+nssTrustDomain_FindCertificatesBySubject
-+(
-+ NSSTrustDomain *td,
-+ NSSDER *subject,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+NSS_EXTERN NSSTrust *
-+nssTrustDomain_FindTrustForCertificate
-+(
-+ NSSTrustDomain *td,
-+ NSSCertificate *c
-+);
-+
-+NSS_EXTERN NSSCertificate *
-+nssCertificate_AddRef
-+(
-+ NSSCertificate *c
-+);
-+
-+NSS_EXTERN PRStatus
-+nssCertificate_Destroy
-+(
-+ NSSCertificate *c
-+);
-+
-+NSS_EXTERN NSSDER *
-+nssCertificate_GetEncoding
-+(
-+ NSSCertificate *c
-+);
-+
-+NSS_EXTERN NSSDER *
-+nssCertificate_GetIssuer
-+(
-+ NSSCertificate *c
-+);
-+
-+NSS_EXTERN NSSDER *
-+nssCertificate_GetSerialNumber
-+(
-+ NSSCertificate *c
-+);
-+
-+NSS_EXTERN NSSDER *
-+nssCertificate_GetSubject
-+(
-+ NSSCertificate *c
-+);
-+
-+NSS_EXTERN NSSUTF8 *
-+nssCertificate_GetNickname
-+(
-+ NSSCertificate *c,
-+ NSSToken *tokenOpt
-+);
-+
-+NSS_EXTERN NSSASCII7 *
-+nssCertificate_GetEmailAddress
-+(
-+ NSSCertificate *c
-+);
-+
-+NSS_EXTERN PRBool
-+nssCertificate_IssuerAndSerialEqual
-+(
-+ NSSCertificate *c1,
-+ NSSCertificate *c2
-+);
-+
-+NSS_EXTERN NSSPrivateKey *
-+nssPrivateKey_AddRef
-+(
-+ NSSPrivateKey *vk
-+);
-+
-+NSS_EXTERN PRStatus
-+nssPrivateKey_Destroy
-+(
-+ NSSPrivateKey *vk
-+);
-+
-+NSS_EXTERN NSSItem *
-+nssPrivateKey_GetID
-+(
-+ NSSPrivateKey *vk
-+);
-+
-+NSS_EXTERN NSSUTF8 *
-+nssPrivateKey_GetNickname
-+(
-+ NSSPrivateKey *vk,
-+ NSSToken *tokenOpt
-+);
-+
-+NSS_EXTERN PRStatus
-+nssPublicKey_Destroy
-+(
-+ NSSPublicKey *bk
-+);
-+
-+NSS_EXTERN NSSItem *
-+nssPublicKey_GetID
-+(
-+ NSSPublicKey *vk
-+);
-+
-+NSS_EXTERN NSSCertificate **
-+nssCryptoContext_FindCertificatesBySubject
-+(
-+ NSSCryptoContext *cc,
-+ NSSDER *subject,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt, /* 0 for no max */
-+ NSSArena *arenaOpt
-+);
-+
-+/* putting here for now, needs more thought */
-+NSS_EXTERN PRStatus
-+nssCryptoContext_ImportTrust
-+(
-+ NSSCryptoContext *cc,
-+ NSSTrust *trust
-+);
-+
-+NSS_EXTERN NSSTrust *
-+nssCryptoContext_FindTrustForCertificate
-+(
-+ NSSCryptoContext *cc,
-+ NSSCertificate *cert
-+);
-+
-+NSS_EXTERN PRStatus
-+nssCryptoContext_ImportSMIMEProfile
-+(
-+ NSSCryptoContext *cc,
-+ nssSMIMEProfile *profile
-+);
-+
-+NSS_EXTERN nssSMIMEProfile *
-+nssCryptoContext_FindSMIMEProfileForCertificate
-+(
-+ NSSCryptoContext *cc,
-+ NSSCertificate *cert
-+);
-+
-+NSS_EXTERN NSSTrust *
-+nssTrust_AddRef
-+(
-+ NSSTrust *trust
-+);
-+
-+NSS_EXTERN PRStatus
-+nssTrust_Destroy
-+(
-+ NSSTrust *trust
-+);
-+
-+NSS_EXTERN nssSMIMEProfile *
-+nssSMIMEProfile_AddRef
-+(
-+ nssSMIMEProfile *profile
-+);
-+
-+NSS_EXTERN PRStatus
-+nssSMIMEProfile_Destroy
-+(
-+ nssSMIMEProfile *profile
-+);
-+
-+NSS_EXTERN nssSMIMEProfile *
-+nssSMIMEProfile_Create
-+(
-+ NSSCertificate *cert,
-+ NSSItem *profileTime,
-+ NSSItem *profileData
-+);
-+
-+PR_END_EXTERN_C
-+
-+#endif /* PKI_H */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pki1t.h 2004-12-13 15:50:16.108140904 +0100
-@@ -0,0 +1,104 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifndef PKI1T_H
-+#define PKI1T_H
-+
-+#ifdef DEBUG
-+static const char PKI1T_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+/*
-+ * pki1t.h
-+ *
-+ * This file contains definitions for the types used in the PKIX part-1
-+ * code, but not available publicly.
-+ */
-+
-+#ifndef BASET_H
-+#include "baset.h"
-+#endif /* BASET_H */
-+
-+#ifndef NSSPKI1T_H
-+#include "nsspki1t.h"
-+#endif /* NSSPKI1T_H */
-+
-+PR_BEGIN_EXTERN_C
-+
-+/*
-+ * NSSOID
-+ *
-+ * This structure is used to hold our internal table of built-in OID
-+ * data. The fields are as follows:
-+ *
-+ * NSSItem data -- this is the actual DER-encoded multinumber oid
-+ * const char *expl -- this explains the derivation, and is checked
-+ * in a unit test. While the field always exists,
-+ * it is only populated or used in debug builds.
-+ *
-+ */
-+
-+struct NSSOIDStr {
-+#ifdef DEBUG
-+ const NSSUTF8 *tag;
-+ const NSSUTF8 *expl;
-+#endif /* DEBUG */
-+ NSSItem data;
-+};
-+
-+/*
-+ * nssAttributeTypeAliasTable
-+ *
-+ * Attribute types are passed around as oids (at least in the X.500
-+ * and PKI worlds, as opposed to ldap). However, when written as
-+ * strings they usually have well-known aliases, e.g., "ou" or "c."
-+ *
-+ * This type defines a table, populated in the generated oiddata.c
-+ * file, of the aliases we recognize.
-+ *
-+ * The fields are as follows:
-+ *
-+ * NSSUTF8 *alias -- a well-known string alias for an oid
-+ * NSSOID *oid -- the oid to which the alias corresponds
-+ *
-+ */
-+
-+struct nssAttributeTypeAliasTableStr {
-+ const NSSUTF8 *alias;
-+ const NSSOID **oid;
-+};
-+typedef struct nssAttributeTypeAliasTableStr nssAttributeTypeAliasTable;
-+
-+PR_END_EXTERN_C
-+
-+#endif /* PKI1T_H */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pki3hack.c 2004-12-13 13:06:46.818379616 +0100
-@@ -0,0 +1,1160 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+/*
-+ * Hacks to integrate NSS 3.4 and NSS 4.0 certificates.
-+ */
-+
-+#ifndef NSSPKI_H
-+#include "nsspki.h"
-+#endif /* NSSPKI_H */
-+
-+#ifndef PKI_H
-+#include "pki.h"
-+#endif /* PKI_H */
-+
-+#ifndef PKIM_H
-+#include "pkim.h"
-+#endif /* PKIM_H */
-+
-+#ifndef DEV_H
-+#include "dev.h"
-+#endif /* DEV_H */
-+
-+#ifndef DEVNSS3HACK_H
-+#include "dev3hack.h"
-+#endif /* DEVNSS3HACK_H */
-+
-+#ifndef PKINSS3HACK_H
-+#include "pki3hack.h"
-+#endif /* PKINSS3HACK_H */
-+
-+#include "secitem.h"
-+#include "certdb.h"
-+#include "certt.h"
-+#include "cert.h"
-+#include "pk11func.h"
-+#include "pkistore.h"
-+#include "secmod.h"
-+
-+NSSTrustDomain *g_default_trust_domain = NULL;
-+
-+NSSCryptoContext *g_default_crypto_context = NULL;
-+
-+NSSTrustDomain *
-+STAN_GetDefaultTrustDomain()
-+{
-+ return g_default_trust_domain;
-+}
-+
-+NSSCryptoContext *
-+STAN_GetDefaultCryptoContext()
-+{
-+ return g_default_crypto_context;
-+}
-+
-+extern const NSSError NSS_ERROR_ALREADY_INITIALIZED;
-+extern const NSSError NSS_ERROR_INTERNAL_ERROR;
-+
-+NSS_IMPLEMENT PRStatus
-+STAN_LoadDefaultNSS3TrustDomain (
-+ void
-+)
-+{
-+ NSSTrustDomain *td;
-+ NSSToken *token;
-+ SECMODModuleList *mlp;
-+ SECMODListLock *moduleLock = SECMOD_GetDefaultModuleListLock();
-+ int i;
-+
-+ if (g_default_trust_domain || g_default_crypto_context) {
-+ /* Stan is already initialized or a previous shutdown failed. */
-+ nss_SetError(NSS_ERROR_ALREADY_INITIALIZED);
-+ return PR_FAILURE;
-+ }
-+ td = NSSTrustDomain_Create(NULL, NULL, NULL, NULL);
-+ if (!td) {
-+ return PR_FAILURE;
-+ }
-+ td->tokenList = nssList_Create(td->arena, PR_TRUE);
-+ SECMOD_GetReadLock(moduleLock);
-+ for (mlp = SECMOD_GetDefaultModuleList(); mlp != NULL; mlp=mlp->next) {
-+ for (i=0; i < mlp->module->slotCount; i++) {
-+ token = nssToken_CreateFromPK11SlotInfo(td, mlp->module->slots[i]);
-+ PK11Slot_SetNSSToken(mlp->module->slots[i], token);
-+ nssList_Add(td->tokenList, token);
-+ }
-+ }
-+ SECMOD_ReleaseReadLock(moduleLock);
-+ td->tokens = nssList_CreateIterator(td->tokenList);
-+ g_default_trust_domain = td;
-+ g_default_crypto_context = NSSTrustDomain_CreateCryptoContext(td, NULL);
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT SECStatus
-+STAN_AddModuleToDefaultTrustDomain (
-+ SECMODModule *module
-+)
-+{
-+ NSSToken *token;
-+ NSSTrustDomain *td;
-+ int i;
-+ td = STAN_GetDefaultTrustDomain();
-+ for (i=0; i<module->slotCount; i++) {
-+ token = nssToken_CreateFromPK11SlotInfo(td, module->slots[i]);
-+ PK11Slot_SetNSSToken(module->slots[i], token);
-+ nssList_Add(td->tokenList, token);
-+ }
-+ nssListIterator_Destroy(td->tokens);
-+ td->tokens = nssList_CreateIterator(td->tokenList);
-+ return SECSuccess;
-+}
-+
-+NSS_IMPLEMENT SECStatus
-+STAN_RemoveModuleFromDefaultTrustDomain (
-+ SECMODModule *module
-+)
-+{
-+ NSSToken *token;
-+ NSSTrustDomain *td;
-+ int i;
-+ td = STAN_GetDefaultTrustDomain();
-+ for (i=0; i<module->slotCount; i++) {
-+ token = PK11Slot_GetNSSToken(module->slots[i]);
-+ if (token) {
-+ nssToken_NotifyCertsNotVisible(token);
-+ nssList_Remove(td->tokenList, token);
-+ PK11Slot_SetNSSToken(module->slots[i], NULL);
-+ nssToken_Destroy(token);
-+ }
-+ }
-+ nssListIterator_Destroy(td->tokens);
-+ td->tokens = nssList_CreateIterator(td->tokenList);
-+ return SECSuccess;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+STAN_Shutdown()
-+{
-+ PRStatus status = PR_SUCCESS;
-+ if (g_default_trust_domain) {
-+ if (NSSTrustDomain_Destroy(g_default_trust_domain) == PR_SUCCESS) {
-+ g_default_trust_domain = NULL;
-+ } else {
-+ status = PR_FAILURE;
-+ }
-+ }
-+ if (g_default_crypto_context) {
-+ if (NSSCryptoContext_Destroy(g_default_crypto_context) == PR_SUCCESS) {
-+ g_default_crypto_context = NULL;
-+ } else {
-+ status = PR_FAILURE;
-+ }
-+ }
-+ return status;
-+}
-+
-+/* this function should not be a hack; it will be needed in 4.0 (rename) */
-+NSS_IMPLEMENT NSSItem *
-+STAN_GetCertIdentifierFromDER(NSSArena *arenaOpt, NSSDER *der)
-+{
-+ NSSItem *rvKey;
-+ SECItem secDER;
-+ SECItem secKey = { 0 };
-+ SECStatus secrv;
-+ PRArenaPool *arena;
-+
-+ SECITEM_FROM_NSSITEM(&secDER, der);
-+
-+ /* nss3 call uses nss3 arena's */
-+ arena = PORT_NewArena(256);
-+ if (!arena) {
-+ return NULL;
-+ }
-+ secrv = CERT_KeyFromDERCert(arena, &secDER, &secKey);
-+ if (secrv != SECSuccess) {
-+ return NULL;
-+ }
-+ rvKey = nssItem_Create(arenaOpt, NULL, secKey.len, (void *)secKey.data);
-+ PORT_FreeArena(arena,PR_FALSE);
-+ return rvKey;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssPKIX509_GetIssuerAndSerialFromDER(NSSDER *der, NSSArena *arena,
-+ NSSDER *issuer, NSSDER *serial)
-+{
-+ SECStatus secrv;
-+ SECItem derCert;
-+ SECItem derIssuer = { 0 };
-+ SECItem derSerial = { 0 };
-+ SECITEM_FROM_NSSITEM(&derCert, der);
-+ secrv = CERT_SerialNumberFromDERCert(&derCert, &derSerial);
-+ if (secrv != SECSuccess) {
-+ return PR_FAILURE;
-+ }
-+ (void)nssItem_Create(arena, serial, derSerial.len, derSerial.data);
-+ secrv = CERT_IssuerNameFromDERCert(&derCert, &derIssuer);
-+ if (secrv != SECSuccess) {
-+ PORT_Free(derSerial.data);
-+ return PR_FAILURE;
-+ }
-+ (void)nssItem_Create(arena, issuer, derIssuer.len, derIssuer.data);
-+ PORT_Free(derSerial.data);
-+ PORT_Free(derIssuer.data);
-+ return PR_SUCCESS;
-+}
-+
-+static NSSItem *
-+nss3certificate_getIdentifier(nssDecodedCert *dc)
-+{
-+ NSSItem *rvID;
-+ CERTCertificate *c = (CERTCertificate *)dc->data;
-+ rvID = nssItem_Create(NULL, NULL, c->certKey.len, c->certKey.data);
-+ return rvID;
-+}
-+
-+static void *
-+nss3certificate_getIssuerIdentifier(nssDecodedCert *dc)
-+{
-+ CERTCertificate *c = (CERTCertificate *)dc->data;
-+ return (void *)c->authKeyID;
-+}
-+
-+static nssCertIDMatch
-+nss3certificate_matchIdentifier(nssDecodedCert *dc, void *id)
-+{
-+ CERTCertificate *c = (CERTCertificate *)dc->data;
-+ CERTAuthKeyID *authKeyID = (CERTAuthKeyID *)id;
-+ SECItem skid;
-+ nssCertIDMatch match = nssCertIDMatch_Unknown;
-+
-+ /* keyIdentifier */
-+ if (authKeyID->keyID.len > 0) {
-+ if (CERT_FindSubjectKeyIDExtension(c, &skid) == SECSuccess) {
-+ PRBool skiEqual;
-+ skiEqual = SECITEM_ItemsAreEqual(&authKeyID->keyID, &skid);
-+ PORT_Free(skid.data);
-+ if (skiEqual) {
-+ /* change the state to positive match, but keep going */
-+ match = nssCertIDMatch_Yes;
-+ } else {
-+ /* exit immediately on failure */
-+ return nssCertIDMatch_No;
-+ }
-+ } /* else fall through */
-+ }
-+
-+ /* issuer/serial (treated as pair) */
-+ if (authKeyID->authCertIssuer) {
-+ SECItem *caName = NULL;
-+ SECItem *caSN = &authKeyID->authCertSerialNumber;
-+
-+ caName = (SECItem *)CERT_GetGeneralNameByType(
-+ authKeyID->authCertIssuer,
-+ certDirectoryName, PR_TRUE);
-+ if (caName == NULL) {
-+ /* this is some kind of error, so treat it as unknown */
-+ return nssCertIDMatch_Unknown;
-+ }
-+ if (SECITEM_ItemsAreEqual(&c->derIssuer, caName) &&
-+ SECITEM_ItemsAreEqual(&c->serialNumber, caSN))
-+ {
-+ /* change the state to positive match, but keep going */
-+ match = nssCertIDMatch_Yes;
-+ } else {
-+ /* exit immediately on failure */
-+ return nssCertIDMatch_No;
-+ }
-+ }
-+
-+ /* If the issued cert has a keyIdentifier field with a value, but
-+ * this issuer cert does not have a subjectKeyID extension, and
-+ * the issuer/serial number fields of the authKeyID extension
-+ * are empty, the state will be Unknown. Otherwise it should have
-+ * been set to Yes.
-+ */
-+ return match;
-+}
-+
-+static PRBool
-+nss3certificate_isValidIssuer(nssDecodedCert *dc)
-+{
-+ CERTCertificate *c = (CERTCertificate *)dc->data;
-+ unsigned int ignore;
-+ return CERT_IsCACert(c, &ignore);
-+}
-+
-+static NSSUsage *
-+nss3certificate_getUsage(nssDecodedCert *dc)
-+{
-+ /* CERTCertificate *c = (CERTCertificate *)dc->data; */
-+ return NULL;
-+}
-+
-+static PRBool
-+nss3certificate_isValidAtTime(nssDecodedCert *dc, NSSTime *time)
-+{
-+ SECCertTimeValidity validity;
-+ CERTCertificate *c = (CERTCertificate *)dc->data;
-+ validity = CERT_CheckCertValidTimes(c, NSSTime_GetPRTime(time), PR_TRUE);
-+ if (validity == secCertTimeValid) {
-+ return PR_TRUE;
-+ }
-+ return PR_FALSE;
-+}
-+
-+static PRBool
-+nss3certificate_isNewerThan(nssDecodedCert *dc, nssDecodedCert *cmpdc)
-+{
-+ /* I know this isn't right, but this is glue code anyway */
-+ if (cmpdc->type == dc->type) {
-+ CERTCertificate *certa = (CERTCertificate *)dc->data;
-+ CERTCertificate *certb = (CERTCertificate *)cmpdc->data;
-+ return CERT_IsNewer(certa, certb);
-+ }
-+ return PR_FALSE;
-+}
-+
-+/* CERT_FilterCertListByUsage */
-+static PRBool
-+nss3certificate_matchUsage(nssDecodedCert *dc, NSSUsage *usage)
-+{
-+ SECStatus secrv;
-+ unsigned int requiredKeyUsage;
-+ unsigned int requiredCertType;
-+ unsigned int certType;
-+ PRBool match;
-+ CERTCertificate *cc = (CERTCertificate *)dc->data;
-+ SECCertUsage secUsage = usage->nss3usage;
-+ PRBool ca = usage->nss3lookingForCA;
-+
-+ /* This is for NSS 3.3 functions that do not specify a usage */
-+ if (usage->anyUsage) {
-+ return PR_TRUE;
-+ }
-+ secrv = CERT_KeyUsageAndTypeForCertUsage(secUsage, ca,
-+ &requiredKeyUsage,
-+ &requiredCertType);
-+ if (secrv != SECSuccess) {
-+ return PR_FALSE;
-+ }
-+ match = PR_TRUE;
-+ secrv = CERT_CheckKeyUsage(cc, requiredKeyUsage);
-+ if (secrv != SECSuccess) {
-+ match = PR_FALSE;
-+ }
-+ if (ca) {
-+ (void)CERT_IsCACert(cc, &certType);
-+ } else {
-+ certType = cc->nsCertType;
-+ }
-+ if (!(certType & requiredCertType)) {
-+ match = PR_FALSE;
-+ }
-+ return match;
-+}
-+
-+static NSSASCII7 *
-+nss3certificate_getEmailAddress(nssDecodedCert *dc)
-+{
-+ CERTCertificate *cc = (CERTCertificate *)dc->data;
-+ return (cc && cc->emailAddr && cc->emailAddr[0])
-+ ? (NSSASCII7 *)cc->emailAddr : NULL;
-+}
-+
-+static PRStatus
-+nss3certificate_getDERSerialNumber(nssDecodedCert *dc,
-+ NSSDER *serial, NSSArena *arena)
-+{
-+ CERTCertificate *cc = (CERTCertificate *)dc->data;
-+ SECItem derSerial = { 0 };
-+ SECStatus secrv;
-+ secrv = CERT_SerialNumberFromDERCert(&cc->derCert, &derSerial);
-+ if (secrv == SECSuccess) {
-+ (void)nssItem_Create(arena, serial, derSerial.len, derSerial.data);
-+ PORT_Free(derSerial.data);
-+ return PR_SUCCESS;
-+ }
-+ return PR_FAILURE;
-+}
-+
-+/* Returns NULL if "encoding" cannot be decoded. */
-+NSS_IMPLEMENT nssDecodedCert *
-+nssDecodedPKIXCertificate_Create (
-+ NSSArena *arenaOpt,
-+ NSSDER *encoding
-+)
-+{
-+ nssDecodedCert *rvDC = NULL;
-+ CERTCertificate *cert;
-+ SECItem secDER;
-+
-+ SECITEM_FROM_NSSITEM(&secDER, encoding);
-+ cert = CERT_DecodeDERCertificate(&secDER, PR_TRUE, NULL);
-+ if (cert) {
-+ rvDC = nss_ZNEW(arenaOpt, nssDecodedCert);
-+ if (rvDC) {
-+ rvDC->type = NSSCertificateType_PKIX;
-+ rvDC->data = (void *)cert;
-+ rvDC->getIdentifier = nss3certificate_getIdentifier;
-+ rvDC->getIssuerIdentifier = nss3certificate_getIssuerIdentifier;
-+ rvDC->matchIdentifier = nss3certificate_matchIdentifier;
-+ rvDC->isValidIssuer = nss3certificate_isValidIssuer;
-+ rvDC->getUsage = nss3certificate_getUsage;
-+ rvDC->isValidAtTime = nss3certificate_isValidAtTime;
-+ rvDC->isNewerThan = nss3certificate_isNewerThan;
-+ rvDC->matchUsage = nss3certificate_matchUsage;
-+ rvDC->getEmailAddress = nss3certificate_getEmailAddress;
-+ rvDC->getDERSerialNumber = nss3certificate_getDERSerialNumber;
-+ } else {
-+ CERT_DestroyCertificate(cert);
-+ }
-+ }
-+ return rvDC;
-+}
-+
-+static nssDecodedCert *
-+create_decoded_pkix_cert_from_nss3cert (
-+ NSSArena *arenaOpt,
-+ CERTCertificate *cc
-+)
-+{
-+ nssDecodedCert *rvDC = nss_ZNEW(arenaOpt, nssDecodedCert);
-+ if (rvDC) {
-+ rvDC->type = NSSCertificateType_PKIX;
-+ rvDC->data = (void *)cc;
-+ rvDC->getIdentifier = nss3certificate_getIdentifier;
-+ rvDC->getIssuerIdentifier = nss3certificate_getIssuerIdentifier;
-+ rvDC->matchIdentifier = nss3certificate_matchIdentifier;
-+ rvDC->isValidIssuer = nss3certificate_isValidIssuer;
-+ rvDC->getUsage = nss3certificate_getUsage;
-+ rvDC->isValidAtTime = nss3certificate_isValidAtTime;
-+ rvDC->isNewerThan = nss3certificate_isNewerThan;
-+ rvDC->matchUsage = nss3certificate_matchUsage;
-+ rvDC->getEmailAddress = nss3certificate_getEmailAddress;
-+ }
-+ return rvDC;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssDecodedPKIXCertificate_Destroy (
-+ nssDecodedCert *dc
-+)
-+{
-+ CERTCertificate *cert = (CERTCertificate *)dc->data;
-+
-+ /* The decoder may only be half initialized (the case where we find we
-+ * could not decode the certificate). In this case, there is not cert to
-+ * free, just free the dc structure. */
-+ if (cert) {
-+ PRBool freeSlot = cert->ownSlot;
-+ PK11SlotInfo *slot = cert->slot;
-+ PRArenaPool *arena = cert->arena;
-+ /* zero cert before freeing. Any stale references to this cert
-+ * after this point will probably cause an exception. */
-+ PORT_Memset(cert, 0, sizeof *cert);
-+ /* free the arena that contains the cert. */
-+ PORT_FreeArena(arena, PR_FALSE);
-+ if (slot && freeSlot) {
-+ PK11_FreeSlot(slot);
-+ }
-+ }
-+ nss_ZFreeIf(dc);
-+ return PR_SUCCESS;
-+}
-+
-+/* see pk11cert.c:pk11_HandleTrustObject */
-+static unsigned int
-+get_nss3trust_from_nss4trust(CK_TRUST t)
-+{
-+ unsigned int rt = 0;
-+ if (t == nssTrustLevel_Trusted) {
-+ rt |= CERTDB_VALID_PEER | CERTDB_TRUSTED;
-+ }
-+ if (t == nssTrustLevel_TrustedDelegator) {
-+ rt |= CERTDB_VALID_CA | CERTDB_TRUSTED_CA /*| CERTDB_NS_TRUSTED_CA*/;
-+ }
-+ if (t == nssTrustLevel_Valid) {
-+ rt |= CERTDB_VALID_PEER;
-+ }
-+ if (t == nssTrustLevel_ValidDelegator) {
-+ rt |= CERTDB_VALID_CA;
-+ }
-+ return rt;
-+}
-+
-+static CERTCertTrust *
-+cert_trust_from_stan_trust(NSSTrust *t, PRArenaPool *arena)
-+{
-+ CERTCertTrust *rvTrust;
-+ unsigned int client;
-+ if (!t) {
-+ return NULL;
-+ }
-+ rvTrust = PORT_ArenaAlloc(arena, sizeof(CERTCertTrust));
-+ if (!rvTrust) return NULL;
-+ rvTrust->sslFlags = get_nss3trust_from_nss4trust(t->serverAuth);
-+ client = get_nss3trust_from_nss4trust(t->clientAuth);
-+ if (client & (CERTDB_TRUSTED_CA|CERTDB_NS_TRUSTED_CA)) {
-+ client &= ~(CERTDB_TRUSTED_CA|CERTDB_NS_TRUSTED_CA);
-+ rvTrust->sslFlags |= CERTDB_TRUSTED_CLIENT_CA;
-+ }
-+ rvTrust->sslFlags |= client;
-+ rvTrust->emailFlags = get_nss3trust_from_nss4trust(t->emailProtection);
-+ rvTrust->objectSigningFlags = get_nss3trust_from_nss4trust(t->codeSigning);
-+ return rvTrust;
-+}
-+
-+CERTCertTrust *
-+nssTrust_GetCERTCertTrustForCert(NSSCertificate *c, CERTCertificate *cc)
-+{
-+ CERTCertTrust *rvTrust = NULL;
-+ NSSTrustDomain *td = STAN_GetDefaultTrustDomain();
-+ NSSTrust *t;
-+ t = nssTrustDomain_FindTrustForCertificate(td, c);
-+ if (t) {
-+ rvTrust = cert_trust_from_stan_trust(t, cc->arena);
-+ if (!rvTrust) {
-+ nssTrust_Destroy(t);
-+ return NULL;
-+ }
-+ nssTrust_Destroy(t);
-+ } else {
-+ rvTrust = PORT_ArenaAlloc(cc->arena, sizeof(CERTCertTrust));
-+ if (!rvTrust) {
-+ return NULL;
-+ }
-+ memset(rvTrust, 0, sizeof(*rvTrust));
-+ }
-+ if (NSSCertificate_IsPrivateKeyAvailable(c, NULL, NULL)) {
-+ rvTrust->sslFlags |= CERTDB_USER;
-+ rvTrust->emailFlags |= CERTDB_USER;
-+ rvTrust->objectSigningFlags |= CERTDB_USER;
-+ }
-+ return rvTrust;
-+}
-+
-+static nssCryptokiInstance *
-+get_cert_instance(NSSCertificate *c)
-+{
-+ nssCryptokiObject *instance, **ci;
-+ nssCryptokiObject **instances = nssPKIObject_GetInstances(&c->object);
-+ if (!instances) {
-+ return NULL;
-+ }
-+ instance = NULL;
-+ for (ci = instances; *ci; ci++) {
-+ if (!instance) {
-+ instance = nssCryptokiObject_Clone(*ci);
-+ } else {
-+ /* This only really works for two instances... But 3.4 can't
-+ * handle more anyway. The logic is, if there are multiple
-+ * instances, prefer the one that is not internal (e.g., on
-+ * a hardware device.
-+ */
-+ if (PK11_IsInternal(instance->token->pk11slot)) {
-+ nssCryptokiObject_Destroy(instance);
-+ instance = nssCryptokiObject_Clone(*ci);
-+ }
-+ }
-+ }
-+ nssCryptokiObjectArray_Destroy(instances);
-+ return instance;
-+}
-+
-+char *
-+STAN_GetCERTCertificateNameForInstance (
-+ PLArenaPool *arenaOpt,
-+ NSSCertificate *c,
-+ nssCryptokiInstance *instance
-+)
-+{
-+ NSSCryptoContext *context = c->object.cryptoContext;
-+ PRStatus nssrv;
-+ int nicklen, tokenlen, len;
-+ NSSUTF8 *tokenName = NULL;
-+ NSSUTF8 *stanNick = NULL;
-+ char *nickname = NULL;
-+ char *nick;
-+
-+ if (instance) {
-+ stanNick = instance->label;
-+ } else if (context) {
-+ stanNick = c->object.tempName;
-+ }
-+ if (stanNick) {
-+ /* fill other fields needed by NSS3 functions using CERTCertificate */
-+ if (instance && !PK11_IsInternal(instance->token->pk11slot)) {
-+ tokenName = nssToken_GetName(instance->token);
-+ tokenlen = nssUTF8_Size(tokenName, &nssrv);
-+ } else {
-+ /* don't use token name for internal slot; 3.3 didn't */
-+ tokenlen = 0;
-+ }
-+ nicklen = nssUTF8_Size(stanNick, &nssrv);
-+ len = tokenlen + nicklen;
-+ if (arenaOpt) {
-+ nickname = PORT_ArenaAlloc(arenaOpt, len);
-+ } else {
-+ nickname = PORT_Alloc(len);
-+ }
-+ nick = nickname;
-+ if (tokenName) {
-+ memcpy(nick, tokenName, tokenlen-1);
-+ nick += tokenlen-1;
-+ *nick++ = ':';
-+ }
-+ memcpy(nick, stanNick, nicklen-1);
-+ nickname[len-1] = '\0';
-+ }
-+ return nickname;
-+}
-+
-+char *
-+STAN_GetCERTCertificateName(PLArenaPool *arenaOpt, NSSCertificate *c)
-+{
-+ nssCryptokiInstance *instance = get_cert_instance(c);
-+ return STAN_GetCERTCertificateNameForInstance(arenaOpt, c, instance);
-+}
-+
-+static void
-+fill_CERTCertificateFields(NSSCertificate *c, CERTCertificate *cc, PRBool forced)
-+{
-+ NSSTrust *nssTrust;
-+ NSSCryptoContext *context = c->object.cryptoContext;
-+ nssCryptokiInstance *instance = get_cert_instance(c);
-+ NSSUTF8 *stanNick = NULL;
-+ if (instance) {
-+ stanNick = instance->label;
-+ } else if (context) {
-+ stanNick = c->object.tempName;
-+ }
-+ /* fill other fields needed by NSS3 functions using CERTCertificate */
-+ if ((!cc->nickname && stanNick) || forced) {
-+ PRStatus nssrv;
-+ int nicklen, tokenlen, len;
-+ NSSUTF8 *tokenName = NULL;
-+ char *nick;
-+ if (instance && !PK11_IsInternal(instance->token->pk11slot)) {
-+ tokenName = nssToken_GetName(instance->token);
-+ tokenlen = nssUTF8_Size(tokenName, &nssrv);
-+ } else {
-+ /* don't use token name for internal slot; 3.3 didn't */
-+ tokenlen = 0;
-+ }
-+ if (stanNick) {
-+ nicklen = nssUTF8_Size(stanNick, &nssrv);
-+ len = tokenlen + nicklen;
-+ cc->nickname = PORT_ArenaAlloc(cc->arena, len);
-+ nick = cc->nickname;
-+ if (tokenName) {
-+ memcpy(nick, tokenName, tokenlen-1);
-+ nick += tokenlen-1;
-+ *nick++ = ':';
-+ }
-+ memcpy(nick, stanNick, nicklen-1);
-+ cc->nickname[len-1] = '\0';
-+ } else {
-+ cc->nickname = NULL;
-+ }
-+ }
-+ if (context) {
-+ /* trust */
-+ nssTrust = nssCryptoContext_FindTrustForCertificate(context, c);
-+ if (nssTrust) {
-+ cc->trust = cert_trust_from_stan_trust(nssTrust, cc->arena);
-+ nssTrust_Destroy(nssTrust);
-+ }
-+ } else if (instance) {
-+ /* slot */
-+ if (cc->slot != instance->token->pk11slot) {
-+ if (cc->slot) {
-+ PK11_FreeSlot(cc->slot);
-+ }
-+ cc->slot = PK11_ReferenceSlot(instance->token->pk11slot);
-+ }
-+ cc->ownSlot = PR_TRUE;
-+ /* pkcs11ID */
-+ cc->pkcs11ID = instance->handle;
-+ /* trust */
-+ cc->trust = nssTrust_GetCERTCertTrustForCert(c, cc);
-+ nssCryptokiObject_Destroy(instance);
-+ }
-+ /* database handle is now the trust domain */
-+ cc->dbhandle = c->object.trustDomain;
-+ /* subjectList ? */
-+ /* istemp and isperm are supported in NSS 3.4 */
-+ cc->istemp = PR_FALSE; /* CERT_NewTemp will override this */
-+ cc->isperm = PR_TRUE; /* by default */
-+ /* pointer back */
-+ cc->nssCertificate = c;
-+}
-+
-+static CERTCertificate *
-+stan_GetCERTCertificate(NSSCertificate *c, PRBool forceUpdate)
-+{
-+ nssDecodedCert *dc = c->decoding;
-+ CERTCertificate *cc;
-+
-+ /* There is a race in assigning c->decoding.
-+ ** This is a workaround. Bugzilla bug 225525.
-+ */
-+ if (!dc) {
-+ dc = nssDecodedPKIXCertificate_Create(NULL, &c->encoding);
-+ if (!dc)
-+ return NULL;
-+ cc = (CERTCertificate *)dc->data;
-+ PORT_Assert(cc); /* software error */
-+ if (!cc) {
-+ nssDecodedPKIXCertificate_Destroy(dc);
-+ nss_SetError(NSS_ERROR_INTERNAL_ERROR);
-+ return NULL;
-+ }
-+ /* Once this race is fixed, an assertion should be put
-+ ** here to detect any regressions.
-+ PORT_Assert(!c->decoding);
-+ */
-+ if (!c->decoding) {
-+ c->decoding = dc;
-+ } else {
-+ /* Reduce the leaks here, until the race is fixed. */
-+ nssDecodedPKIXCertificate_Destroy(dc);
-+ dc = c->decoding;
-+ }
-+ }
-+ cc = (CERTCertificate *)dc->data;
-+ PORT_Assert(cc);
-+ /* When c->decoding is non-NULL on input, but dc->data is
-+ * NULL, we don't destroy dc because some other errant
-+ * code allocated it .
-+ */
-+ if (cc) {
-+ if (!cc->nssCertificate || forceUpdate) {
-+ fill_CERTCertificateFields(c, cc, forceUpdate);
-+ } else if (!cc->trust && !c->object.cryptoContext) {
-+ /* if it's a perm cert, it might have been stored before the
-+ * trust, so look for the trust again. But a temp cert can be
-+ * ignored.
-+ */
-+ cc->trust = nssTrust_GetCERTCertTrustForCert(c, cc);
-+ }
-+ }
-+ return cc;
-+}
-+
-+NSS_IMPLEMENT CERTCertificate *
-+STAN_ForceCERTCertificateUpdate(NSSCertificate *c)
-+{
-+ if (c->decoding) {
-+ return stan_GetCERTCertificate(c, PR_TRUE);
-+ }
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT CERTCertificate *
-+STAN_GetCERTCertificate(NSSCertificate *c)
-+{
-+ return stan_GetCERTCertificate(c, PR_FALSE);
-+}
-+
-+static nssTrustLevel
-+get_stan_trust(unsigned int t, PRBool isClientAuth)
-+{
-+ if (isClientAuth) {
-+ if (t & CERTDB_TRUSTED_CLIENT_CA) {
-+ return nssTrustLevel_TrustedDelegator;
-+ }
-+ } else {
-+ if (t & CERTDB_TRUSTED_CA || t & CERTDB_NS_TRUSTED_CA) {
-+ return nssTrustLevel_TrustedDelegator;
-+ }
-+ }
-+ if (t & CERTDB_TRUSTED) {
-+ return nssTrustLevel_Trusted;
-+ }
-+ if (t & CERTDB_VALID_CA) {
-+ return nssTrustLevel_ValidDelegator;
-+ }
-+ if (t & CERTDB_VALID_PEER) {
-+ return nssTrustLevel_Valid;
-+ }
-+ return nssTrustLevel_NotTrusted;
-+}
-+
-+NSS_EXTERN NSSCertificate *
-+STAN_GetNSSCertificate(CERTCertificate *cc)
-+{
-+ NSSCertificate *c;
-+ nssCryptokiInstance *instance;
-+ nssPKIObject *pkiob;
-+ NSSArena *arena;
-+ c = cc->nssCertificate;
-+ if (c) {
-+ return c;
-+ }
-+ /* i don't think this should happen. but if it can, need to create
-+ * NSSCertificate from CERTCertificate values here. */
-+ /* Yup, it can happen. */
-+ arena = NSSArena_Create();
-+ if (!arena) {
-+ return NULL;
-+ }
-+ c = nss_ZNEW(arena, NSSCertificate);
-+ if (!c) {
-+ nssArena_Destroy(arena);
-+ return NULL;
-+ }
-+ NSSITEM_FROM_SECITEM(&c->encoding, &cc->derCert);
-+ c->type = NSSCertificateType_PKIX;
-+ pkiob = nssPKIObject_Create(arena, NULL, cc->dbhandle, NULL);
-+ if (!pkiob) {
-+ nssArena_Destroy(arena);
-+ return NULL;
-+ }
-+ c->object = *pkiob;
-+ nssItem_Create(arena,
-+ &c->issuer, cc->derIssuer.len, cc->derIssuer.data);
-+ nssItem_Create(arena,
-+ &c->subject, cc->derSubject.len, cc->derSubject.data);
-+ if (PR_TRUE) {
-+ /* CERTCertificate stores serial numbers decoded. I need the DER
-+ * here. sigh.
-+ */
-+ SECItem derSerial;
-+ SECStatus secrv;
-+ secrv = CERT_SerialNumberFromDERCert(&cc->derCert, &derSerial);
-+ if (secrv == SECFailure) {
-+ nssArena_Destroy(arena);
-+ return NULL;
-+ }
-+ nssItem_Create(arena, &c->serial, derSerial.len, derSerial.data);
-+ PORT_Free(derSerial.data);
-+ }
-+ if (cc->emailAddr && cc->emailAddr[0]) {
-+ c->email = nssUTF8_Create(arena,
-+ nssStringType_PrintableString,
-+ (NSSUTF8 *)cc->emailAddr,
-+ PORT_Strlen(cc->emailAddr));
-+ }
-+ if (cc->slot) {
-+ instance = nss_ZNEW(arena, nssCryptokiInstance);
-+ instance->token = nssToken_AddRef(PK11Slot_GetNSSToken(cc->slot));
-+ instance->handle = cc->pkcs11ID;
-+ instance->isTokenObject = PR_TRUE;
-+ if (cc->nickname) {
-+ instance->label = nssUTF8_Create(arena,
-+ nssStringType_UTF8String,
-+ (NSSUTF8 *)cc->nickname,
-+ PORT_Strlen(cc->nickname));
-+ }
-+ nssPKIObject_AddInstance(&c->object, instance);
-+ }
-+ c->decoding = create_decoded_pkix_cert_from_nss3cert(NULL, cc);
-+ cc->nssCertificate = c;
-+ return c;
-+}
-+
-+static NSSToken*
-+stan_GetTrustToken (
-+ NSSCertificate *c
-+)
-+{
-+ NSSToken *ttok = NULL;
-+ NSSToken *rtok = NULL;
-+ NSSToken *tok = NULL;
-+ nssCryptokiObject **ip;
-+ nssCryptokiObject **instances = nssPKIObject_GetInstances(&c->object);
-+ if (!instances) {
-+ return PR_FALSE;
-+ }
-+ for (ip = instances; *ip; ip++) {
-+ nssCryptokiObject *instance = *ip;
-+ nssCryptokiObject *to =
-+ nssToken_FindTrustForCertificate(instance->token, NULL,
-+ &c->encoding, &c->issuer, &c->serial,
-+ nssTokenSearchType_TokenOnly);
-+ NSSToken *ctok = instance->token;
-+ PRBool ro = PK11_IsReadOnly(ctok->pk11slot);
-+
-+ if (to) {
-+ nssCryptokiObject_Destroy(to);
-+ ttok = ctok;
-+ if (!ro) {
-+ break;
-+ }
-+ } else {
-+ if (!rtok && ro) {
-+ rtok = ctok;
-+ }
-+ if (!tok && !ro) {
-+ tok = ctok;
-+ }
-+ }
-+ }
-+ nssCryptokiObjectArray_Destroy(instances);
-+ return ttok ? ttok : (tok ? tok : rtok);
-+}
-+
-+NSS_EXTERN PRStatus
-+STAN_ChangeCertTrust(CERTCertificate *cc, CERTCertTrust *trust)
-+{
-+ PRStatus nssrv;
-+ NSSCertificate *c = STAN_GetNSSCertificate(cc);
-+ NSSToken *tok;
-+ NSSTrustDomain *td;
-+ NSSTrust *nssTrust;
-+ NSSArena *arena;
-+ CERTCertTrust *oldTrust;
-+ nssListIterator *tokens;
-+ PRBool moving_object;
-+ nssCryptokiObject *newInstance;
-+ nssPKIObject *pkiob;
-+ oldTrust = nssTrust_GetCERTCertTrustForCert(c, cc);
-+ if (oldTrust) {
-+ if (memcmp(oldTrust, trust, sizeof (CERTCertTrust)) == 0) {
-+ /* ... and the new trust is no different, done) */
-+ return PR_SUCCESS;
-+ } else {
-+ /* take over memory already allocated in cc's arena */
-+ cc->trust = oldTrust;
-+ }
-+ } else {
-+ cc->trust = PORT_ArenaAlloc(cc->arena, sizeof(CERTCertTrust));
-+ }
-+ memcpy(cc->trust, trust, sizeof(CERTCertTrust));
-+ /* Set the NSSCerticate's trust */
-+ arena = nssArena_Create();
-+ if (!arena) return PR_FAILURE;
-+ nssTrust = nss_ZNEW(arena, NSSTrust);
-+ pkiob = nssPKIObject_Create(arena, NULL, cc->dbhandle, NULL);
-+ if (!pkiob) {
-+ nssArena_Destroy(arena);
-+ return PR_FAILURE;
-+ }
-+ nssTrust->object = *pkiob;
-+ nssTrust->certificate = c;
-+ nssTrust->serverAuth = get_stan_trust(trust->sslFlags, PR_FALSE);
-+ nssTrust->clientAuth = get_stan_trust(trust->sslFlags, PR_TRUE);
-+ nssTrust->emailProtection = get_stan_trust(trust->emailFlags, PR_FALSE);
-+ nssTrust->codeSigning = get_stan_trust(trust->objectSigningFlags, PR_FALSE);
-+ if (c->object.cryptoContext != NULL) {
-+ /* The cert is in a context, set the trust there */
-+ NSSCryptoContext *cc = c->object.cryptoContext;
-+ nssrv = nssCryptoContext_ImportTrust(cc, nssTrust);
-+ if (nssrv != PR_SUCCESS) {
-+ goto done;
-+ }
-+ if (c->object.numInstances == 0) {
-+ /* The context is the only instance, finished */
-+ goto done;
-+ }
-+ }
-+ td = STAN_GetDefaultTrustDomain();
-+ tok = stan_GetTrustToken(c);
-+ moving_object = PR_FALSE;
-+ if (tok && PK11_IsReadOnly(tok->pk11slot)) {
-+ tokens = nssList_CreateIterator(td->tokenList);
-+ if (!tokens) {
-+ nssrv = PR_FAILURE;
-+ goto done;
-+ }
-+ for (tok = (NSSToken *)nssListIterator_Start(tokens);
-+ tok != (NSSToken *)NULL;
-+ tok = (NSSToken *)nssListIterator_Next(tokens))
-+ {
-+ if (!PK11_IsReadOnly(tok->pk11slot)) break;
-+ }
-+ nssListIterator_Finish(tokens);
-+ nssListIterator_Destroy(tokens);
-+ moving_object = PR_TRUE;
-+ }
-+ if (tok) {
-+ if (moving_object) {
-+ /* this is kind of hacky. the softoken needs the cert
-+ * object in order to store trust. forcing it to be perm
-+ */
-+ NSSUTF8 *nickname = nssCertificate_GetNickname(c, NULL);
-+ NSSASCII7 *email = NULL;
-+
-+ if (PK11_IsInternal(tok->pk11slot)) {
-+ email = c->email;
-+ }
-+ newInstance = nssToken_ImportCertificate(tok, NULL,
-+ NSSCertificateType_PKIX,
-+ &c->id,
-+ nickname,
-+ &c->encoding,
-+ &c->issuer,
-+ &c->subject,
-+ &c->serial,
-+ email,
-+ PR_TRUE);
-+ if (!newInstance) {
-+ nssrv = PR_FAILURE;
-+ goto done;
-+ }
-+ nssPKIObject_AddInstance(&c->object, newInstance);
-+ }
-+ newInstance = nssToken_ImportTrust(tok, NULL, &c->encoding,
-+ &c->issuer, &c->serial,
-+ nssTrust->serverAuth,
-+ nssTrust->clientAuth,
-+ nssTrust->codeSigning,
-+ nssTrust->emailProtection, PR_TRUE);
-+ /* If the selected token can't handle trust, dump the trust on
-+ * the internal token */
-+ if (!newInstance && !PK11_IsInternal(tok->pk11slot)) {
-+ PK11SlotInfo *slot = PK11_GetInternalKeySlot();
-+ NSSUTF8 *nickname = nssCertificate_GetNickname(c, NULL);
-+ NSSASCII7 *email = c->email;
-+ tok = PK11Slot_GetNSSToken(slot);
-+ PK11_FreeSlot(slot);
-+
-+ newInstance = nssToken_ImportCertificate(tok, NULL,
-+ NSSCertificateType_PKIX,
-+ &c->id,
-+ nickname,
-+ &c->encoding,
-+ &c->issuer,
-+ &c->subject,
-+ &c->serial,
-+ email,
-+ PR_TRUE);
-+ if (!newInstance) {
-+ nssrv = PR_FAILURE;
-+ goto done;
-+ }
-+ nssPKIObject_AddInstance(&c->object, newInstance);
-+ newInstance = nssToken_ImportTrust(tok, NULL, &c->encoding,
-+ &c->issuer, &c->serial,
-+ nssTrust->serverAuth,
-+ nssTrust->clientAuth,
-+ nssTrust->codeSigning,
-+ nssTrust->emailProtection, PR_TRUE);
-+ }
-+ if (newInstance) {
-+ nssCryptokiObject_Destroy(newInstance);
-+ nssrv = PR_SUCCESS;
-+ } else {
-+ nssrv = PR_FAILURE;
-+ }
-+ } else {
-+ nssrv = PR_FAILURE;
-+ }
-+done:
-+ (void)nssTrust_Destroy(nssTrust);
-+ return nssrv;
-+}
-+
-+/* CERT_TraversePermCertsForSubject */
-+NSS_IMPLEMENT PRStatus
-+nssTrustDomain_TraverseCertificatesBySubject (
-+ NSSTrustDomain *td,
-+ NSSDER *subject,
-+ PRStatus (*callback)(NSSCertificate *c, void *arg),
-+ void *arg
-+)
-+{
-+ PRStatus nssrv = PR_SUCCESS;
-+ NSSArena *tmpArena;
-+ NSSCertificate **subjectCerts;
-+ NSSCertificate *c;
-+ PRIntn i;
-+ tmpArena = NSSArena_Create();
-+ subjectCerts = NSSTrustDomain_FindCertificatesBySubject(td, subject, NULL,
-+ 0, tmpArena);
-+ if (subjectCerts) {
-+ for (i=0, c = subjectCerts[i]; c; i++) {
-+ nssrv = callback(c, arg);
-+ if (nssrv != PR_SUCCESS) break;
-+ }
-+ }
-+ nssArena_Destroy(tmpArena);
-+ return nssrv;
-+}
-+
-+/* CERT_TraversePermCertsForNickname */
-+NSS_IMPLEMENT PRStatus
-+nssTrustDomain_TraverseCertificatesByNickname (
-+ NSSTrustDomain *td,
-+ NSSUTF8 *nickname,
-+ PRStatus (*callback)(NSSCertificate *c, void *arg),
-+ void *arg
-+)
-+{
-+ PRStatus nssrv = PR_SUCCESS;
-+ NSSArena *tmpArena;
-+ NSSCertificate **nickCerts;
-+ NSSCertificate *c;
-+ PRIntn i;
-+ tmpArena = NSSArena_Create();
-+ nickCerts = NSSTrustDomain_FindCertificatesByNickname(td, nickname, NULL,
-+ 0, tmpArena);
-+ if (nickCerts) {
-+ for (i=0, c = nickCerts[i]; c; i++) {
-+ nssrv = callback(c, arg);
-+ if (nssrv != PR_SUCCESS) break;
-+ }
-+ }
-+ nssArena_Destroy(tmpArena);
-+ return nssrv;
-+}
-+
-+static void cert_dump_iter(const void *k, void *v, void *a)
-+{
-+ NSSCertificate *c = (NSSCertificate *)k;
-+ CERTCertificate *cert = STAN_GetCERTCertificate(c);
-+ printf("[%2d] \"%s\"\n", c->object.refCount, cert->subjectName);
-+}
-+
-+void
-+nss_DumpCertificateCacheInfo()
-+{
-+ NSSTrustDomain *td;
-+ NSSCryptoContext *cc;
-+ td = STAN_GetDefaultTrustDomain();
-+ cc = STAN_GetDefaultCryptoContext();
-+ printf("\n\nCertificates in the cache:\n");
-+ nssTrustDomain_DumpCacheInfo(td, cert_dump_iter, NULL);
-+ printf("\n\nCertificates in the temporary store:\n");
-+ if (cc->certStore) {
-+ nssCertificateStore_DumpStoreInfo(cc->certStore, cert_dump_iter, NULL);
-+ }
-+}
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pki3hack.h 2004-12-13 15:50:15.986159448 +0100
-@@ -0,0 +1,194 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifndef PKINSS3HACK_H
-+#define PKINSS3HACK_H
-+
-+#ifdef DEBUG
-+static const char PKINSS3HACK_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#ifndef NSSDEVT_H
-+#include "nssdevt.h"
-+#endif /* NSSDEVT_H */
-+
-+#ifndef DEVT_H
-+#include "devt.h"
-+#endif /* DEVT_H */
-+
-+#ifndef NSSPKIT_H
-+#include "nsspkit.h"
-+#endif /* NSSPKIT_H */
-+
-+#include "base.h"
-+
-+#include "cert.h"
-+
-+PR_BEGIN_EXTERN_C
-+
-+#define NSSITEM_FROM_SECITEM(nssit, secit) \
-+ (nssit)->data = (void *)(secit)->data; \
-+ (nssit)->size = (PRUint32)(secit)->len;
-+
-+#define SECITEM_FROM_NSSITEM(secit, nssit) \
-+ (secit)->data = (unsigned char *)(nssit)->data; \
-+ (secit)->len = (unsigned int)(nssit)->size;
-+
-+NSS_EXTERN NSSTrustDomain *
-+STAN_GetDefaultTrustDomain();
-+
-+NSS_EXTERN NSSCryptoContext *
-+STAN_GetDefaultCryptoContext();
-+
-+NSS_EXTERN PRStatus
-+STAN_LoadDefaultNSS3TrustDomain
-+(
-+ void
-+);
-+
-+NSS_EXTERN PRStatus
-+STAN_Shutdown();
-+
-+NSS_EXTERN SECStatus
-+STAN_AddModuleToDefaultTrustDomain
-+(
-+ SECMODModule *module
-+);
-+
-+NSS_EXTERN SECStatus
-+STAN_RemoveModuleFromDefaultTrustDomain
-+(
-+ SECMODModule *module
-+);
-+
-+NSS_EXTERN CERTCertificate *
-+STAN_ForceCERTCertificateUpdate(NSSCertificate *c);
-+
-+NSS_EXTERN CERTCertificate *
-+STAN_GetCERTCertificate(NSSCertificate *c);
-+
-+NSS_EXTERN NSSCertificate *
-+STAN_GetNSSCertificate(CERTCertificate *c);
-+
-+NSS_EXTERN CERTCertTrust *
-+nssTrust_GetCERTCertTrustForCert(NSSCertificate *c, CERTCertificate *cc);
-+
-+NSS_EXTERN PRStatus
-+STAN_ChangeCertTrust(CERTCertificate *cc, CERTCertTrust *trust);
-+
-+NSS_EXTERN PRStatus
-+nssPKIX509_GetIssuerAndSerialFromDER(NSSDER *der, NSSArena *arena,
-+ NSSDER *issuer, NSSDER *serial);
-+
-+NSS_EXTERN char *
-+STAN_GetCERTCertificateName(PLArenaPool *arenaOpt, NSSCertificate *c);
-+
-+NSS_EXTERN char *
-+STAN_GetCERTCertificateNameForInstance(PLArenaPool *arenaOpt,
-+ NSSCertificate *c,
-+ nssCryptokiInstance *instance);
-+
-+/* exposing this */
-+NSS_EXTERN NSSCertificate *
-+NSSCertificate_Create
-+(
-+ NSSArena *arenaOpt
-+);
-+
-+/* This function is being put here because it is a hack for
-+ * PK11_FindCertFromNickname.
-+ */
-+NSS_EXTERN NSSCertificate *
-+nssTrustDomain_FindBestCertificateByNicknameForToken
-+(
-+ NSSTrustDomain *td,
-+ NSSToken *token,
-+ NSSUTF8 *name,
-+ NSSTime *timeOpt, /* NULL for "now" */
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt /* NULL for none */
-+);
-+
-+/* This function is being put here because it is a hack for
-+ * PK11_FindCertsFromNickname.
-+ */
-+NSS_EXTERN NSSCertificate **
-+nssTrustDomain_FindCertificatesByNicknameForToken
-+(
-+ NSSTrustDomain *td,
-+ NSSToken *token,
-+ NSSUTF8 *name,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt, /* 0 for no max */
-+ NSSArena *arenaOpt
-+);
-+
-+/* CERT_TraversePermCertsForSubject */
-+NSS_EXTERN PRStatus
-+nssTrustDomain_TraverseCertificatesBySubject
-+(
-+ NSSTrustDomain *td,
-+ NSSDER *subject,
-+ PRStatus (*callback)(NSSCertificate *c, void *arg),
-+ void *arg
-+);
-+
-+/* CERT_TraversePermCertsForNickname */
-+NSS_EXTERN PRStatus
-+nssTrustDomain_TraverseCertificatesByNickname
-+(
-+ NSSTrustDomain *td,
-+ NSSUTF8 *nickname,
-+ PRStatus (*callback)(NSSCertificate *c, void *arg),
-+ void *arg
-+);
-+
-+/* SEC_TraversePermCerts */
-+NSS_EXTERN PRStatus
-+nssTrustDomain_TraverseCertificates
-+(
-+ NSSTrustDomain *td,
-+ PRStatus (*callback)(NSSCertificate *c, void *arg),
-+ void *arg
-+);
-+
-+/* CERT_AddTempCertToPerm */
-+NSS_EXTERN PRStatus
-+nssTrustDomain_AddTempCertToPerm
-+(
-+ NSSCertificate *c
-+);
-+
-+PR_END_EXTERN_C
-+
-+#endif /* PKINSS3HACK_H */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pkibase.c 2004-12-13 13:06:46.793383416 +0100
-@@ -0,0 +1,1449 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#ifndef DEV_H
-+#include "dev.h"
-+#endif /* DEV_H */
-+
-+#ifndef PKIM_H
-+#include "pkim.h"
-+#endif /* PKIM_H */
-+
-+#ifdef NSS_3_4_CODE
-+#include "pki3hack.h"
-+#endif
-+
-+extern const NSSError NSS_ERROR_NOT_FOUND;
-+
-+NSS_IMPLEMENT nssPKIObject *
-+nssPKIObject_Create (
-+ NSSArena *arenaOpt,
-+ nssCryptokiObject *instanceOpt,
-+ NSSTrustDomain *td,
-+ NSSCryptoContext *cc
-+)
-+{
-+ NSSArena *arena;
-+ nssArenaMark *mark = NULL;
-+ nssPKIObject *object;
-+ if (arenaOpt) {
-+ arena = arenaOpt;
-+ mark = nssArena_Mark(arena);
-+ } else {
-+ arena = nssArena_Create();
-+ if (!arena) {
-+ return (nssPKIObject *)NULL;
-+ }
-+ }
-+ object = nss_ZNEW(arena, nssPKIObject);
-+ if (!object) {
-+ goto loser;
-+ }
-+ object->arena = arena;
-+ object->trustDomain = td; /* XXX */
-+ object->cryptoContext = cc;
-+ object->lock = PZ_NewLock(nssILockOther);
-+ if (!object->lock) {
-+ goto loser;
-+ }
-+ if (instanceOpt) {
-+ if (nssPKIObject_AddInstance(object, instanceOpt) != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ }
-+ PR_AtomicIncrement(&object->refCount);
-+ if (mark) {
-+ nssArena_Unmark(arena, mark);
-+ }
-+ return object;
-+loser:
-+ if (mark) {
-+ nssArena_Release(arena, mark);
-+ } else {
-+ nssArena_Destroy(arena);
-+ }
-+ return (nssPKIObject *)NULL;
-+}
-+
-+NSS_IMPLEMENT PRBool
-+nssPKIObject_Destroy (
-+ nssPKIObject *object
-+)
-+{
-+ PRUint32 i;
-+ PR_ASSERT(object->refCount > 0);
-+ if (PR_AtomicDecrement(&object->refCount) == 0) {
-+ for (i=0; i<object->numInstances; i++) {
-+ nssCryptokiObject_Destroy(object->instances[i]);
-+ }
-+ PZ_DestroyLock(object->lock);
-+ nssArena_Destroy(object->arena);
-+ return PR_TRUE;
-+ }
-+ return PR_FALSE;
-+}
-+
-+NSS_IMPLEMENT nssPKIObject *
-+nssPKIObject_AddRef (
-+ nssPKIObject *object
-+)
-+{
-+ PR_AtomicIncrement(&object->refCount);
-+ return object;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssPKIObject_AddInstance (
-+ nssPKIObject *object,
-+ nssCryptokiObject *instance
-+)
-+{
-+ PZ_Lock(object->lock);
-+ if (object->numInstances == 0) {
-+ object->instances = nss_ZNEWARRAY(object->arena,
-+ nssCryptokiObject *,
-+ object->numInstances + 1);
-+ } else {
-+ PRUint32 i;
-+ for (i=0; i<object->numInstances; i++) {
-+ if (nssCryptokiObject_Equal(object->instances[i], instance)) {
-+ PZ_Unlock(object->lock);
-+ if (instance->label) {
-+ if (!object->instances[i]->label ||
-+ !nssUTF8_Equal(instance->label,
-+ object->instances[i]->label, NULL))
-+ {
-+ /* Either the old instance did not have a label,
-+ * or the label has changed.
-+ */
-+ nss_ZFreeIf(object->instances[i]->label);
-+ object->instances[i]->label = instance->label;
-+ instance->label = NULL;
-+ }
-+ } else if (object->instances[i]->label) {
-+ /* The old label was removed */
-+ nss_ZFreeIf(object->instances[i]->label);
-+ object->instances[i]->label = NULL;
-+ }
-+ nssCryptokiObject_Destroy(instance);
-+ return PR_SUCCESS;
-+ }
-+ }
-+ object->instances = nss_ZREALLOCARRAY(object->instances,
-+ nssCryptokiObject *,
-+ object->numInstances + 1);
-+ }
-+ if (!object->instances) {
-+ PZ_Unlock(object->lock);
-+ return PR_FAILURE;
-+ }
-+ object->instances[object->numInstances++] = instance;
-+ PZ_Unlock(object->lock);
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT PRBool
-+nssPKIObject_HasInstance (
-+ nssPKIObject *object,
-+ nssCryptokiObject *instance
-+)
-+{
-+ PRUint32 i;
-+ PRBool hasIt = PR_FALSE;;
-+ PZ_Lock(object->lock);
-+ for (i=0; i<object->numInstances; i++) {
-+ if (nssCryptokiObject_Equal(object->instances[i], instance)) {
-+ hasIt = PR_TRUE;
-+ break;
-+ }
-+ }
-+ PZ_Unlock(object->lock);
-+ return hasIt;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssPKIObject_RemoveInstanceForToken (
-+ nssPKIObject *object,
-+ NSSToken *token
-+)
-+{
-+ PRUint32 i;
-+ nssCryptokiObject *instanceToRemove = NULL;
-+ PZ_Lock(object->lock);
-+ if (object->numInstances == 0) {
-+ PZ_Unlock(object->lock);
-+ return PR_SUCCESS;
-+ }
-+ for (i=0; i<object->numInstances; i++) {
-+ if (object->instances[i]->token == token) {
-+ instanceToRemove = object->instances[i];
-+ object->instances[i] = object->instances[object->numInstances-1];
-+ object->instances[object->numInstances-1] = NULL;
-+ break;
-+ }
-+ }
-+ if (--object->numInstances > 0) {
-+ nssCryptokiObject **instances = nss_ZREALLOCARRAY(object->instances,
-+ nssCryptokiObject *,
-+ object->numInstances);
-+ if (instances) {
-+ object->instances = instances;
-+ }
-+ } else {
-+ nss_ZFreeIf(object->instances);
-+ }
-+ nssCryptokiObject_Destroy(instanceToRemove);
-+ PZ_Unlock(object->lock);
-+ return PR_SUCCESS;
-+}
-+
-+/* this needs more thought on what will happen when there are multiple
-+ * instances
-+ */
-+NSS_IMPLEMENT PRStatus
-+nssPKIObject_DeleteStoredObject (
-+ nssPKIObject *object,
-+ NSSCallback *uhh,
-+ PRBool isFriendly
-+)
-+{
-+ PRUint32 i, numNotDestroyed;
-+ PRStatus status = PR_SUCCESS;
-+#ifndef NSS_3_4_CODE
-+ NSSTrustDomain *td = object->trustDomain;
-+ NSSCallback *pwcb = uhh ? /* is this optional? */
-+ uhh :
-+ nssTrustDomain_GetDefaultCallback(td, NULL);
-+#endif
-+ numNotDestroyed = 0;
-+ PZ_Lock(object->lock);
-+ for (i=0; i<object->numInstances; i++) {
-+ nssCryptokiObject *instance = object->instances[i];
-+#ifndef NSS_3_4_CODE
-+ NSSSlot *slot = nssToken_GetSlot(instance->token);
-+ /* If both the operation and the slot are friendly, login is
-+ * not required. If either or both are not friendly, it is
-+ * required.
-+ */
-+ if (!(isFriendly && nssSlot_IsFriendly(slot))) {
-+ status = nssSlot_Login(slot, pwcb);
-+ nssSlot_Destroy(slot);
-+ if (status == PR_SUCCESS) {
-+ /* XXX this should be fixed to understand read-only tokens,
-+ * for now, to handle the builtins, just make the attempt.
-+ */
-+ status = nssToken_DeleteStoredObject(instance);
-+ }
-+ }
-+#else
-+ status = nssToken_DeleteStoredObject(instance);
-+#endif
-+ object->instances[i] = NULL;
-+ if (status == PR_SUCCESS) {
-+ nssCryptokiObject_Destroy(instance);
-+ } else {
-+ object->instances[numNotDestroyed++] = instance;
-+ }
-+ }
-+ if (numNotDestroyed == 0) {
-+ nss_ZFreeIf(object->instances);
-+ object->numInstances = 0;
-+ } else {
-+ object->numInstances = numNotDestroyed;
-+ }
-+ PZ_Unlock(object->lock);
-+ return status;
-+}
-+
-+NSS_IMPLEMENT NSSToken **
-+nssPKIObject_GetTokens (
-+ nssPKIObject *object,
-+ PRStatus *statusOpt
-+)
-+{
-+ NSSToken **tokens = NULL;
-+ PZ_Lock(object->lock);
-+ if (object->numInstances > 0) {
-+ tokens = nss_ZNEWARRAY(NULL, NSSToken *, object->numInstances + 1);
-+ if (tokens) {
-+ PRUint32 i;
-+ for (i=0; i<object->numInstances; i++) {
-+ tokens[i] = nssToken_AddRef(object->instances[i]->token);
-+ }
-+ }
-+ }
-+ PZ_Unlock(object->lock);
-+ if (statusOpt) *statusOpt = PR_SUCCESS; /* until more logic here */
-+ return tokens;
-+}
-+
-+NSS_IMPLEMENT NSSUTF8 *
-+nssPKIObject_GetNicknameForToken (
-+ nssPKIObject *object,
-+ NSSToken *tokenOpt
-+)
-+{
-+ PRUint32 i;
-+ NSSUTF8 *nickname = NULL;
-+ PZ_Lock(object->lock);
-+ for (i=0; i<object->numInstances; i++) {
-+ if ((!tokenOpt && object->instances[i]->label) ||
-+ (object->instances[i]->token == tokenOpt))
-+ {
-+ /* XXX should be copy? safe as long as caller has reference */
-+ nickname = object->instances[i]->label;
-+ break;
-+ }
-+ }
-+ PZ_Unlock(object->lock);
-+ return nickname;
-+}
-+
-+#ifdef NSS_3_4_CODE
-+NSS_IMPLEMENT nssCryptokiObject **
-+nssPKIObject_GetInstances (
-+ nssPKIObject *object
-+)
-+{
-+ nssCryptokiObject **instances = NULL;
-+ PRUint32 i;
-+ if (object->numInstances == 0) {
-+ return (nssCryptokiObject **)NULL;
-+ }
-+ PZ_Lock(object->lock);
-+ instances = nss_ZNEWARRAY(NULL, nssCryptokiObject *,
-+ object->numInstances + 1);
-+ if (instances) {
-+ for (i=0; i<object->numInstances; i++) {
-+ instances[i] = nssCryptokiObject_Clone(object->instances[i]);
-+ }
-+ }
-+ PZ_Unlock(object->lock);
-+ return instances;
-+}
-+#endif
-+
-+NSS_IMPLEMENT void
-+nssCertificateArray_Destroy (
-+ NSSCertificate **certs
-+)
-+{
-+ if (certs) {
-+ NSSCertificate **certp;
-+ for (certp = certs; *certp; certp++) {
-+#ifdef NSS_3_4_CODE
-+ if ((*certp)->decoding) {
-+ CERTCertificate *cc = STAN_GetCERTCertificate(*certp);
-+ if (cc) {
-+ CERT_DestroyCertificate(cc);
-+ }
-+ continue;
-+ }
-+#endif
-+ nssCertificate_Destroy(*certp);
-+ }
-+ nss_ZFreeIf(certs);
-+ }
-+}
-+
-+NSS_IMPLEMENT void
-+NSSCertificateArray_Destroy (
-+ NSSCertificate **certs
-+)
-+{
-+ nssCertificateArray_Destroy(certs);
-+}
-+
-+NSS_IMPLEMENT NSSCertificate **
-+nssCertificateArray_Join (
-+ NSSCertificate **certs1,
-+ NSSCertificate **certs2
-+)
-+{
-+ if (certs1 && certs2) {
-+ NSSCertificate **certs, **cp;
-+ PRUint32 count = 0;
-+ PRUint32 count1 = 0;
-+ cp = certs1;
-+ while (*cp++) count1++;
-+ count = count1;
-+ cp = certs2;
-+ while (*cp++) count++;
-+ certs = nss_ZREALLOCARRAY(certs1, NSSCertificate *, count + 1);
-+ if (!certs) {
-+ nss_ZFreeIf(certs1);
-+ nss_ZFreeIf(certs2);
-+ return (NSSCertificate **)NULL;
-+ }
-+ for (cp = certs2; *cp; cp++, count1++) {
-+ certs[count1] = *cp;
-+ }
-+ nss_ZFreeIf(certs2);
-+ return certs;
-+ } else if (certs1) {
-+ return certs1;
-+ } else {
-+ return certs2;
-+ }
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+nssCertificateArray_FindBestCertificate (
-+ NSSCertificate **certs,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt
-+)
-+{
-+ NSSCertificate *bestCert = NULL;
-+ NSSTime *time, sTime;
-+ PRBool haveUsageMatch = PR_FALSE;
-+ PRBool thisCertMatches;
-+
-+ if (timeOpt) {
-+ time = timeOpt;
-+ } else {
-+ NSSTime_Now(&sTime);
-+ time = &sTime;
-+ }
-+ if (!certs) {
-+ return (NSSCertificate *)NULL;
-+ }
-+ for (; *certs; certs++) {
-+ nssDecodedCert *dc, *bestdc;
-+ NSSCertificate *c = *certs;
-+ dc = nssCertificate_GetDecoding(c);
-+ if (!dc) continue;
-+ thisCertMatches = dc->matchUsage(dc, usage);
-+ if (!bestCert) {
-+ /* always take the first cert, but remember whether or not
-+ * the usage matched
-+ */
-+ bestCert = nssCertificate_AddRef(c);
-+ haveUsageMatch = thisCertMatches;
-+ continue;
-+ } else {
-+ if (haveUsageMatch && !thisCertMatches) {
-+ /* if already have a cert for this usage, and if this cert
-+ * doesn't have the correct usage, continue
-+ */
-+ continue;
-+ } else if (!haveUsageMatch && thisCertMatches) {
-+ /* this one does match usage, replace the other */
-+ nssCertificate_Destroy(bestCert);
-+ bestCert = nssCertificate_AddRef(c);
-+ haveUsageMatch = PR_TRUE;
-+ continue;
-+ }
-+ /* this cert match as well as any cert we've found so far,
-+ * defer to time/policies
-+ * */
-+ }
-+ bestdc = nssCertificate_GetDecoding(bestCert);
-+ /* time */
-+ if (bestdc->isValidAtTime(bestdc, time)) {
-+ /* The current best cert is valid at time */
-+ if (!dc->isValidAtTime(dc, time)) {
-+ /* If the new cert isn't valid at time, it's not better */
-+ continue;
-+ }
-+ } else {
-+ /* The current best cert is not valid at time */
-+ if (dc->isValidAtTime(dc, time)) {
-+ /* If the new cert is valid at time, it's better */
-+ nssCertificate_Destroy(bestCert);
-+ bestCert = nssCertificate_AddRef(c);
-+ }
-+ }
-+ /* either they are both valid at time, or neither valid;
-+ * take the newer one
-+ */
-+ if (!bestdc->isNewerThan(bestdc, dc)) {
-+ nssCertificate_Destroy(bestCert);
-+ bestCert = nssCertificate_AddRef(c);
-+ }
-+ /* policies */
-+ /* XXX later -- defer to policies */
-+ }
-+ return bestCert;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssCertificateArray_Traverse (
-+ NSSCertificate **certs,
-+ PRStatus (* callback)(NSSCertificate *c, void *arg),
-+ void *arg
-+)
-+{
-+ PRStatus status = PR_SUCCESS;
-+ if (certs) {
-+ NSSCertificate **certp;
-+ for (certp = certs; *certp; certp++) {
-+ status = (*callback)(*certp, arg);
-+ if (status != PR_SUCCESS) {
-+ break;
-+ }
-+ }
-+ }
-+ return status;
-+}
-+
-+
-+NSS_IMPLEMENT void
-+nssCRLArray_Destroy (
-+ NSSCRL **crls
-+)
-+{
-+ if (crls) {
-+ NSSCRL **crlp;
-+ for (crlp = crls; *crlp; crlp++) {
-+ nssCRL_Destroy(*crlp);
-+ }
-+ nss_ZFreeIf(crls);
-+ }
-+}
-+
-+/*
-+ * Object collections
-+ */
-+
-+typedef enum
-+{
-+ pkiObjectType_Certificate = 0,
-+ pkiObjectType_CRL = 1,
-+ pkiObjectType_PrivateKey = 2,
-+ pkiObjectType_PublicKey = 3
-+} pkiObjectType;
-+
-+/* Each object is defined by a set of items that uniquely identify it.
-+ * Here are the uid sets:
-+ *
-+ * NSSCertificate ==> { issuer, serial }
-+ * NSSPrivateKey
-+ * (RSA) ==> { modulus, public exponent }
-+ *
-+ */
-+#define MAX_ITEMS_FOR_UID 2
-+
-+/* pkiObjectCollectionNode
-+ *
-+ * A node in the collection is the set of unique identifiers for a single
-+ * object, along with either the actual object or a proto-object.
-+ */
-+typedef struct
-+{
-+ PRCList link;
-+ PRBool haveObject;
-+ nssPKIObject *object;
-+ NSSItem uid[MAX_ITEMS_FOR_UID];
-+}
-+pkiObjectCollectionNode;
-+
-+/* nssPKIObjectCollection
-+ *
-+ * The collection is the set of all objects, plus the interfaces needed
-+ * to manage the objects.
-+ *
-+ */
-+struct nssPKIObjectCollectionStr
-+{
-+ NSSArena *arena;
-+ NSSTrustDomain *td;
-+ NSSCryptoContext *cc;
-+ PRCList head; /* list of pkiObjectCollectionNode's */
-+ PRUint32 size;
-+ pkiObjectType objectType;
-+ void (* destroyObject)(nssPKIObject *o);
-+ PRStatus (* getUIDFromObject)(nssPKIObject *o, NSSItem *uid);
-+ PRStatus (* getUIDFromInstance)(nssCryptokiObject *co, NSSItem *uid,
-+ NSSArena *arena);
-+ nssPKIObject * (* createObject)(nssPKIObject *o);
-+};
-+
-+static nssPKIObjectCollection *
-+nssPKIObjectCollection_Create (
-+ NSSTrustDomain *td,
-+ NSSCryptoContext *ccOpt
-+)
-+{
-+ NSSArena *arena;
-+ nssPKIObjectCollection *rvCollection = NULL;
-+ arena = nssArena_Create();
-+ if (!arena) {
-+ return (nssPKIObjectCollection *)NULL;
-+ }
-+ rvCollection = nss_ZNEW(arena, nssPKIObjectCollection);
-+ if (!rvCollection) {
-+ goto loser;
-+ }
-+ PR_INIT_CLIST(&rvCollection->head);
-+ rvCollection->arena = arena;
-+ rvCollection->td = td; /* XXX */
-+ rvCollection->cc = ccOpt;
-+ return rvCollection;
-+loser:
-+ nssArena_Destroy(arena);
-+ return (nssPKIObjectCollection *)NULL;
-+}
-+
-+NSS_IMPLEMENT void
-+nssPKIObjectCollection_Destroy (
-+ nssPKIObjectCollection *collection
-+)
-+{
-+ if (collection) {
-+ PRCList *link;
-+ pkiObjectCollectionNode *node;
-+ /* first destroy any objects in the collection */
-+ link = PR_NEXT_LINK(&collection->head);
-+ while (link != &collection->head) {
-+ node = (pkiObjectCollectionNode *)link;
-+ if (node->haveObject) {
-+ (*collection->destroyObject)(node->object);
-+ } else {
-+ nssPKIObject_Destroy(node->object);
-+ }
-+ link = PR_NEXT_LINK(link);
-+ }
-+ /* then destroy it */
-+ nssArena_Destroy(collection->arena);
-+ }
-+}
-+
-+NSS_IMPLEMENT PRUint32
-+nssPKIObjectCollection_Count (
-+ nssPKIObjectCollection *collection
-+)
-+{
-+ return collection->size;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssPKIObjectCollection_AddObject (
-+ nssPKIObjectCollection *collection,
-+ nssPKIObject *object
-+)
-+{
-+ pkiObjectCollectionNode *node;
-+ node = nss_ZNEW(collection->arena, pkiObjectCollectionNode);
-+ if (!node) {
-+ return PR_FAILURE;
-+ }
-+ node->haveObject = PR_TRUE;
-+ node->object = nssPKIObject_AddRef(object);
-+ (*collection->getUIDFromObject)(object, node->uid);
-+ PR_INIT_CLIST(&node->link);
-+ PR_INSERT_BEFORE(&node->link, &collection->head);
-+ collection->size++;
-+ return PR_SUCCESS;
-+}
-+
-+static pkiObjectCollectionNode *
-+find_instance_in_collection (
-+ nssPKIObjectCollection *collection,
-+ nssCryptokiObject *instance
-+)
-+{
-+ PRCList *link;
-+ pkiObjectCollectionNode *node;
-+ link = PR_NEXT_LINK(&collection->head);
-+ while (link != &collection->head) {
-+ node = (pkiObjectCollectionNode *)link;
-+ if (nssPKIObject_HasInstance(node->object, instance)) {
-+ return node;
-+ }
-+ link = PR_NEXT_LINK(link);
-+ }
-+ return (pkiObjectCollectionNode *)NULL;
-+}
-+
-+static pkiObjectCollectionNode *
-+find_object_in_collection (
-+ nssPKIObjectCollection *collection,
-+ NSSItem *uid
-+)
-+{
-+ PRUint32 i;
-+ PRStatus status;
-+ PRCList *link;
-+ pkiObjectCollectionNode *node;
-+ link = PR_NEXT_LINK(&collection->head);
-+ while (link != &collection->head) {
-+ node = (pkiObjectCollectionNode *)link;
-+ for (i=0; i<MAX_ITEMS_FOR_UID; i++) {
-+ if (!nssItem_Equal(&node->uid[i], &uid[i], &status)) {
-+ break;
-+ }
-+ }
-+ if (i == MAX_ITEMS_FOR_UID) {
-+ return node;
-+ }
-+ link = PR_NEXT_LINK(link);
-+ }
-+ return (pkiObjectCollectionNode *)NULL;
-+}
-+
-+static pkiObjectCollectionNode *
-+add_object_instance (
-+ nssPKIObjectCollection *collection,
-+ nssCryptokiObject *instance,
-+ PRBool *foundIt
-+)
-+{
-+ PRUint32 i;
-+ PRStatus status;
-+ pkiObjectCollectionNode *node;
-+ nssArenaMark *mark = NULL;
-+ NSSItem uid[MAX_ITEMS_FOR_UID];
-+ nsslibc_memset(uid, 0, sizeof uid);
-+ /* The list is traversed twice, first (here) looking to match the
-+ * { token, handle } tuple, and if that is not found, below a search
-+ * for unique identifier is done. Here, a match means this exact object
-+ * instance is already in the collection, and we have nothing to do.
-+ */
-+ *foundIt = PR_FALSE;
-+ node = find_instance_in_collection(collection, instance);
-+ if (node) {
-+ /* The collection is assumed to take over the instance. Since we
-+ * are not using it, it must be destroyed.
-+ */
-+ nssCryptokiObject_Destroy(instance);
-+ *foundIt = PR_TRUE;
-+ return node;
-+ }
-+ mark = nssArena_Mark(collection->arena);
-+ if (!mark) {
-+ goto loser;
-+ }
-+ status = (*collection->getUIDFromInstance)(instance, uid,
-+ collection->arena);
-+ if (status != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ /* Search for unique identifier. A match here means the object exists
-+ * in the collection, but does not have this instance, so the instance
-+ * needs to be added.
-+ */
-+ node = find_object_in_collection(collection, uid);
-+ if (node) {
-+ /* This is a object with multiple instances */
-+ status = nssPKIObject_AddInstance(node->object, instance);
-+ } else {
-+ /* This is a completely new object. Create a node for it. */
-+ node = nss_ZNEW(collection->arena, pkiObjectCollectionNode);
-+ if (!node) {
-+ goto loser;
-+ }
-+ node->object = nssPKIObject_Create(NULL, instance,
-+ collection->td, collection->cc);
-+ if (!node->object) {
-+ goto loser;
-+ }
-+ for (i=0; i<MAX_ITEMS_FOR_UID; i++) {
-+ node->uid[i] = uid[i];
-+ }
-+ node->haveObject = PR_FALSE;
-+ PR_INIT_CLIST(&node->link);
-+ PR_INSERT_BEFORE(&node->link, &collection->head);
-+ collection->size++;
-+ status = PR_SUCCESS;
-+ }
-+ nssArena_Unmark(collection->arena, mark);
-+ return node;
-+loser:
-+ if (mark) {
-+ nssArena_Release(collection->arena, mark);
-+ }
-+ nssCryptokiObject_Destroy(instance);
-+ return (pkiObjectCollectionNode *)NULL;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssPKIObjectCollection_AddInstances (
-+ nssPKIObjectCollection *collection,
-+ nssCryptokiObject **instances,
-+ PRUint32 numInstances
-+)
-+{
-+ PRStatus status = PR_SUCCESS;
-+ PRUint32 i = 0;
-+ PRBool foundIt;
-+ pkiObjectCollectionNode *node;
-+ if (instances) {
-+ for (; *instances; instances++, i++) {
-+ if (numInstances > 0 && i == numInstances) {
-+ break;
-+ }
-+ if (status == PR_SUCCESS) {
-+ node = add_object_instance(collection, *instances, &foundIt);
-+ if (node == NULL) {
-+ /* add_object_instance freed the current instance */
-+ /* free the remaining instances */
-+ status = PR_FAILURE;
-+ }
-+ } else {
-+ nssCryptokiObject_Destroy(*instances);
-+ }
-+ }
-+ }
-+ return status;
-+}
-+
-+static void
-+nssPKIObjectCollection_RemoveNode (
-+ nssPKIObjectCollection *collection,
-+ pkiObjectCollectionNode *node
-+)
-+{
-+ PR_REMOVE_LINK(&node->link);
-+ collection->size--;
-+}
-+
-+static PRStatus
-+nssPKIObjectCollection_GetObjects (
-+ nssPKIObjectCollection *collection,
-+ nssPKIObject **rvObjects,
-+ PRUint32 rvSize
-+)
-+{
-+ PRUint32 i = 0;
-+ PRCList *link = PR_NEXT_LINK(&collection->head);
-+ pkiObjectCollectionNode *node;
-+ int error=0;
-+ while ((i < rvSize) && (link != &collection->head)) {
-+ node = (pkiObjectCollectionNode *)link;
-+ if (!node->haveObject) {
-+ /* Convert the proto-object to an object */
-+ node->object = (*collection->createObject)(node->object);
-+ if (!node->object) {
-+ link = PR_NEXT_LINK(link);
-+ /*remove bogus object from list*/
-+ nssPKIObjectCollection_RemoveNode(collection,node);
-+ error++;
-+ continue;
-+ }
-+ node->haveObject = PR_TRUE;
-+ }
-+ rvObjects[i++] = nssPKIObject_AddRef(node->object);
-+ link = PR_NEXT_LINK(link);
-+ }
-+ if (!error && *rvObjects == NULL) {
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ }
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssPKIObjectCollection_Traverse (
-+ nssPKIObjectCollection *collection,
-+ nssPKIObjectCallback *callback
-+)
-+{
-+ PRStatus status;
-+ PRCList *link = PR_NEXT_LINK(&collection->head);
-+ pkiObjectCollectionNode *node;
-+ while (link != &collection->head) {
-+ node = (pkiObjectCollectionNode *)link;
-+ if (!node->haveObject) {
-+ node->object = (*collection->createObject)(node->object);
-+ if (!node->object) {
-+ link = PR_NEXT_LINK(link);
-+ /*remove bogus object from list*/
-+ nssPKIObjectCollection_RemoveNode(collection,node);
-+ continue;
-+ }
-+ node->haveObject = PR_TRUE;
-+ }
-+ switch (collection->objectType) {
-+ case pkiObjectType_Certificate:
-+ status = (*callback->func.cert)((NSSCertificate *)node->object,
-+ callback->arg);
-+ break;
-+ case pkiObjectType_CRL:
-+ status = (*callback->func.crl)((NSSCRL *)node->object,
-+ callback->arg);
-+ break;
-+ case pkiObjectType_PrivateKey:
-+ status = (*callback->func.pvkey)((NSSPrivateKey *)node->object,
-+ callback->arg);
-+ break;
-+ case pkiObjectType_PublicKey:
-+ status = (*callback->func.pbkey)((NSSPublicKey *)node->object,
-+ callback->arg);
-+ break;
-+ }
-+ link = PR_NEXT_LINK(link);
-+ }
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssPKIObjectCollection_AddInstanceAsObject (
-+ nssPKIObjectCollection *collection,
-+ nssCryptokiObject *instance
-+)
-+{
-+ pkiObjectCollectionNode *node;
-+ PRBool foundIt;
-+ node = add_object_instance(collection, instance, &foundIt);
-+ if (node == NULL) {
-+ return PR_FAILURE;
-+ }
-+ if (!node->haveObject) {
-+ node->object = (*collection->createObject)(node->object);
-+ if (!node->object) {
-+ /*remove bogus object from list*/
-+ nssPKIObjectCollection_RemoveNode(collection,node);
-+ return PR_FAILURE;
-+ }
-+ node->haveObject = PR_TRUE;
-+ }
-+#ifdef NSS_3_4_CODE
-+ else if (!foundIt) {
-+ /* The instance was added to a pre-existing node. This
-+ * function is *only* being used for certificates, and having
-+ * multiple instances of certs in 3.X requires updating the
-+ * CERTCertificate.
-+ * But only do it if it was a new instance!!! If the same instance
-+ * is encountered, we set *foundIt to true. Detect that here and
-+ * ignore it.
-+ */
-+ STAN_ForceCERTCertificateUpdate((NSSCertificate *)node->object);
-+ }
-+#endif
-+ return PR_SUCCESS;
-+}
-+
-+/*
-+ * Certificate collections
-+ */
-+
-+static void
-+cert_destroyObject(nssPKIObject *o)
-+{
-+ NSSCertificate *c = (NSSCertificate *)o;
-+#ifdef NSS_3_4_CODE
-+ if (c->decoding) {
-+ CERTCertificate *cc = STAN_GetCERTCertificate(c);
-+ if (cc) {
-+ CERT_DestroyCertificate(cc);
-+ return;
-+ } /* else destroy it as NSSCertificate below */
-+ }
-+#endif
-+ nssCertificate_Destroy(c);
-+}
-+
-+static PRStatus
-+cert_getUIDFromObject(nssPKIObject *o, NSSItem *uid)
-+{
-+ NSSCertificate *c = (NSSCertificate *)o;
-+#ifdef NSS_3_4_CODE
-+ /* The builtins are still returning decoded serial numbers. Until
-+ * this compatibility issue is resolved, use the full DER of the
-+ * cert to uniquely identify it.
-+ */
-+ NSSDER *derCert;
-+ derCert = nssCertificate_GetEncoding(c);
-+ uid[0].data = NULL; uid[0].size = 0;
-+ uid[1].data = NULL; uid[1].size = 0;
-+ if (derCert != NULL) {
-+ uid[0] = *derCert;
-+ }
-+#else
-+ NSSDER *issuer, *serial;
-+ issuer = nssCertificate_GetIssuer(c);
-+ serial = nssCertificate_GetSerialNumber(c);
-+ uid[0] = *issuer;
-+ uid[1] = *serial;
-+#endif /* NSS_3_4_CODE */
-+ return PR_SUCCESS;
-+}
-+
-+static PRStatus
-+cert_getUIDFromInstance(nssCryptokiObject *instance, NSSItem *uid,
-+ NSSArena *arena)
-+{
-+#ifdef NSS_3_4_CODE
-+ /* The builtins are still returning decoded serial numbers. Until
-+ * this compatibility issue is resolved, use the full DER of the
-+ * cert to uniquely identify it.
-+ */
-+ uid[1].data = NULL; uid[1].size = 0;
-+ return nssCryptokiCertificate_GetAttributes(instance,
-+ NULL, /* XXX sessionOpt */
-+ arena, /* arena */
-+ NULL, /* type */
-+ NULL, /* id */
-+ &uid[0], /* encoding */
-+ NULL, /* issuer */
-+ NULL, /* serial */
-+ NULL); /* subject */
-+#else
-+ return nssCryptokiCertificate_GetAttributes(instance,
-+ NULL, /* XXX sessionOpt */
-+ arena, /* arena */
-+ NULL, /* type */
-+ NULL, /* id */
-+ NULL, /* encoding */
-+ &uid[0], /* issuer */
-+ &uid[1], /* serial */
-+ NULL); /* subject */
-+#endif /* NSS_3_4_CODE */
-+}
-+
-+static nssPKIObject *
-+cert_createObject(nssPKIObject *o)
-+{
-+ NSSCertificate *cert;
-+ cert = nssCertificate_Create(o);
-+#ifdef NSS_3_4_CODE
-+/* if (STAN_GetCERTCertificate(cert) == NULL) {
-+ nssCertificate_Destroy(cert);
-+ return (nssPKIObject *)NULL;
-+ } */
-+ /* In 3.4, have to maintain uniqueness of cert pointers by caching all
-+ * certs. Cache the cert here, before returning. If it is already
-+ * cached, take the cached entry.
-+ */
-+ {
-+ NSSTrustDomain *td = o->trustDomain;
-+ nssTrustDomain_AddCertsToCache(td, &cert, 1);
-+ }
-+#endif
-+ return (nssPKIObject *)cert;
-+}
-+
-+NSS_IMPLEMENT nssPKIObjectCollection *
-+nssCertificateCollection_Create (
-+ NSSTrustDomain *td,
-+ NSSCertificate **certsOpt
-+)
-+{
-+ PRStatus status;
-+ nssPKIObjectCollection *collection;
-+ collection = nssPKIObjectCollection_Create(td, NULL);
-+ collection->objectType = pkiObjectType_Certificate;
-+ collection->destroyObject = cert_destroyObject;
-+ collection->getUIDFromObject = cert_getUIDFromObject;
-+ collection->getUIDFromInstance = cert_getUIDFromInstance;
-+ collection->createObject = cert_createObject;
-+ if (certsOpt) {
-+ for (; *certsOpt; certsOpt++) {
-+ nssPKIObject *object = (nssPKIObject *)(*certsOpt);
-+ status = nssPKIObjectCollection_AddObject(collection, object);
-+ }
-+ }
-+ return collection;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate **
-+nssPKIObjectCollection_GetCertificates (
-+ nssPKIObjectCollection *collection,
-+ NSSCertificate **rvOpt,
-+ PRUint32 maximumOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ PRStatus status;
-+ PRUint32 rvSize;
-+ PRBool allocated = PR_FALSE;
-+ if (collection->size == 0) {
-+ return (NSSCertificate **)NULL;
-+ }
-+ if (maximumOpt == 0) {
-+ rvSize = collection->size;
-+ } else {
-+ rvSize = PR_MIN(collection->size, maximumOpt);
-+ }
-+ if (!rvOpt) {
-+ rvOpt = nss_ZNEWARRAY(arenaOpt, NSSCertificate *, rvSize + 1);
-+ if (!rvOpt) {
-+ return (NSSCertificate **)NULL;
-+ }
-+ allocated = PR_TRUE;
-+ }
-+ status = nssPKIObjectCollection_GetObjects(collection,
-+ (nssPKIObject **)rvOpt,
-+ rvSize);
-+ if (status != PR_SUCCESS) {
-+ if (allocated) {
-+ nss_ZFreeIf(rvOpt);
-+ }
-+ return (NSSCertificate **)NULL;
-+ }
-+ return rvOpt;
-+}
-+
-+/*
-+ * CRL/KRL collections
-+ */
-+
-+static void
-+crl_destroyObject(nssPKIObject *o)
-+{
-+ NSSCRL *crl = (NSSCRL *)o;
-+ nssCRL_Destroy(crl);
-+}
-+
-+static PRStatus
-+crl_getUIDFromObject(nssPKIObject *o, NSSItem *uid)
-+{
-+ NSSCRL *crl = (NSSCRL *)o;
-+ NSSDER *encoding;
-+ encoding = nssCRL_GetEncoding(crl);
-+ uid[0] = *encoding;
-+ uid[1].data = NULL; uid[1].size = 0;
-+ return PR_SUCCESS;
-+}
-+
-+static PRStatus
-+crl_getUIDFromInstance(nssCryptokiObject *instance, NSSItem *uid,
-+ NSSArena *arena)
-+{
-+ return nssCryptokiCRL_GetAttributes(instance,
-+ NULL, /* XXX sessionOpt */
-+ arena, /* arena */
-+ &uid[0], /* encoding */
-+ NULL, /* subject */
-+ NULL, /* class */
-+ NULL, /* url */
-+ NULL); /* isKRL */
-+}
-+
-+static nssPKIObject *
-+crl_createObject(nssPKIObject *o)
-+{
-+ return (nssPKIObject *)nssCRL_Create(o);
-+}
-+
-+NSS_IMPLEMENT nssPKIObjectCollection *
-+nssCRLCollection_Create (
-+ NSSTrustDomain *td,
-+ NSSCRL **crlsOpt
-+)
-+{
-+ PRStatus status;
-+ nssPKIObjectCollection *collection;
-+ collection = nssPKIObjectCollection_Create(td, NULL);
-+ collection->objectType = pkiObjectType_CRL;
-+ collection->destroyObject = crl_destroyObject;
-+ collection->getUIDFromObject = crl_getUIDFromObject;
-+ collection->getUIDFromInstance = crl_getUIDFromInstance;
-+ collection->createObject = crl_createObject;
-+ if (crlsOpt) {
-+ for (; *crlsOpt; crlsOpt++) {
-+ nssPKIObject *object = (nssPKIObject *)(*crlsOpt);
-+ status = nssPKIObjectCollection_AddObject(collection, object);
-+ }
-+ }
-+ return collection;
-+}
-+
-+NSS_IMPLEMENT NSSCRL **
-+nssPKIObjectCollection_GetCRLs (
-+ nssPKIObjectCollection *collection,
-+ NSSCRL **rvOpt,
-+ PRUint32 maximumOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ PRStatus status;
-+ PRUint32 rvSize;
-+ PRBool allocated = PR_FALSE;
-+ if (collection->size == 0) {
-+ return (NSSCRL **)NULL;
-+ }
-+ if (maximumOpt == 0) {
-+ rvSize = collection->size;
-+ } else {
-+ rvSize = PR_MIN(collection->size, maximumOpt);
-+ }
-+ if (!rvOpt) {
-+ rvOpt = nss_ZNEWARRAY(arenaOpt, NSSCRL *, rvSize + 1);
-+ if (!rvOpt) {
-+ return (NSSCRL **)NULL;
-+ }
-+ allocated = PR_TRUE;
-+ }
-+ status = nssPKIObjectCollection_GetObjects(collection,
-+ (nssPKIObject **)rvOpt,
-+ rvSize);
-+ if (status != PR_SUCCESS) {
-+ if (allocated) {
-+ nss_ZFreeIf(rvOpt);
-+ }
-+ return (NSSCRL **)NULL;
-+ }
-+ return rvOpt;
-+}
-+
-+#ifdef PURE_STAN_BUILD
-+/*
-+ * PrivateKey collections
-+ */
-+
-+static void
-+privkey_destroyObject(nssPKIObject *o)
-+{
-+ NSSPrivateKey *pvk = (NSSPrivateKey *)o;
-+ nssPrivateKey_Destroy(pvk);
-+}
-+
-+static PRStatus
-+privkey_getUIDFromObject(nssPKIObject *o, NSSItem *uid)
-+{
-+ NSSPrivateKey *pvk = (NSSPrivateKey *)o;
-+ NSSItem *id;
-+ id = nssPrivateKey_GetID(pvk);
-+ uid[0] = *id;
-+ return PR_SUCCESS;
-+}
-+
-+static PRStatus
-+privkey_getUIDFromInstance(nssCryptokiObject *instance, NSSItem *uid,
-+ NSSArena *arena)
-+{
-+ return nssCryptokiPrivateKey_GetAttributes(instance,
-+ NULL, /* XXX sessionOpt */
-+ arena,
-+ NULL, /* type */
-+ &uid[0]);
-+}
-+
-+static nssPKIObject *
-+privkey_createObject(nssPKIObject *o)
-+{
-+ NSSPrivateKey *pvk;
-+ pvk = nssPrivateKey_Create(o);
-+ return (nssPKIObject *)pvk;
-+}
-+
-+NSS_IMPLEMENT nssPKIObjectCollection *
-+nssPrivateKeyCollection_Create (
-+ NSSTrustDomain *td,
-+ NSSPrivateKey **pvkOpt
-+)
-+{
-+ PRStatus status;
-+ nssPKIObjectCollection *collection;
-+ collection = nssPKIObjectCollection_Create(td, NULL);
-+ collection->objectType = pkiObjectType_PrivateKey;
-+ collection->destroyObject = privkey_destroyObject;
-+ collection->getUIDFromObject = privkey_getUIDFromObject;
-+ collection->getUIDFromInstance = privkey_getUIDFromInstance;
-+ collection->createObject = privkey_createObject;
-+ if (pvkOpt) {
-+ for (; *pvkOpt; pvkOpt++) {
-+ nssPKIObject *o = (nssPKIObject *)(*pvkOpt);
-+ status = nssPKIObjectCollection_AddObject(collection, o);
-+ }
-+ }
-+ return collection;
-+}
-+
-+NSS_IMPLEMENT NSSPrivateKey **
-+nssPKIObjectCollection_GetPrivateKeys (
-+ nssPKIObjectCollection *collection,
-+ NSSPrivateKey **rvOpt,
-+ PRUint32 maximumOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ PRStatus status;
-+ PRUint32 rvSize;
-+ PRBool allocated = PR_FALSE;
-+ if (collection->size == 0) {
-+ return (NSSPrivateKey **)NULL;
-+ }
-+ if (maximumOpt == 0) {
-+ rvSize = collection->size;
-+ } else {
-+ rvSize = PR_MIN(collection->size, maximumOpt);
-+ }
-+ if (!rvOpt) {
-+ rvOpt = nss_ZNEWARRAY(arenaOpt, NSSPrivateKey *, rvSize + 1);
-+ if (!rvOpt) {
-+ return (NSSPrivateKey **)NULL;
-+ }
-+ allocated = PR_TRUE;
-+ }
-+ status = nssPKIObjectCollection_GetObjects(collection,
-+ (nssPKIObject **)rvOpt,
-+ rvSize);
-+ if (status != PR_SUCCESS) {
-+ if (allocated) {
-+ nss_ZFreeIf(rvOpt);
-+ }
-+ return (NSSPrivateKey **)NULL;
-+ }
-+ return rvOpt;
-+}
-+
-+/*
-+ * PublicKey collections
-+ */
-+
-+static void
-+pubkey_destroyObject(nssPKIObject *o)
-+{
-+ NSSPublicKey *pubk = (NSSPublicKey *)o;
-+ nssPublicKey_Destroy(pubk);
-+}
-+
-+static PRStatus
-+pubkey_getUIDFromObject(nssPKIObject *o, NSSItem *uid)
-+{
-+ NSSPublicKey *pubk = (NSSPublicKey *)o;
-+ NSSItem *id;
-+ id = nssPublicKey_GetID(pubk);
-+ uid[0] = *id;
-+ return PR_SUCCESS;
-+}
-+
-+static PRStatus
-+pubkey_getUIDFromInstance(nssCryptokiObject *instance, NSSItem *uid,
-+ NSSArena *arena)
-+{
-+ return nssCryptokiPublicKey_GetAttributes(instance,
-+ NULL, /* XXX sessionOpt */
-+ arena,
-+ NULL, /* type */
-+ &uid[0]);
-+}
-+
-+static nssPKIObject *
-+pubkey_createObject(nssPKIObject *o)
-+{
-+ NSSPublicKey *pubk;
-+ pubk = nssPublicKey_Create(o);
-+ return (nssPKIObject *)pubk;
-+}
-+
-+NSS_IMPLEMENT nssPKIObjectCollection *
-+nssPublicKeyCollection_Create (
-+ NSSTrustDomain *td,
-+ NSSPublicKey **pubkOpt
-+)
-+{
-+ PRStatus status;
-+ nssPKIObjectCollection *collection;
-+ collection = nssPKIObjectCollection_Create(td, NULL);
-+ collection->objectType = pkiObjectType_PublicKey;
-+ collection->destroyObject = pubkey_destroyObject;
-+ collection->getUIDFromObject = pubkey_getUIDFromObject;
-+ collection->getUIDFromInstance = pubkey_getUIDFromInstance;
-+ collection->createObject = pubkey_createObject;
-+ if (pubkOpt) {
-+ for (; *pubkOpt; pubkOpt++) {
-+ nssPKIObject *o = (nssPKIObject *)(*pubkOpt);
-+ status = nssPKIObjectCollection_AddObject(collection, o);
-+ }
-+ }
-+ return collection;
-+}
-+
-+NSS_IMPLEMENT NSSPublicKey **
-+nssPKIObjectCollection_GetPublicKeys (
-+ nssPKIObjectCollection *collection,
-+ NSSPublicKey **rvOpt,
-+ PRUint32 maximumOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ PRStatus status;
-+ PRUint32 rvSize;
-+ PRBool allocated = PR_FALSE;
-+ if (collection->size == 0) {
-+ return (NSSPublicKey **)NULL;
-+ }
-+ if (maximumOpt == 0) {
-+ rvSize = collection->size;
-+ } else {
-+ rvSize = PR_MIN(collection->size, maximumOpt);
-+ }
-+ if (!rvOpt) {
-+ rvOpt = nss_ZNEWARRAY(arenaOpt, NSSPublicKey *, rvSize + 1);
-+ if (!rvOpt) {
-+ return (NSSPublicKey **)NULL;
-+ }
-+ allocated = PR_TRUE;
-+ }
-+ status = nssPKIObjectCollection_GetObjects(collection,
-+ (nssPKIObject **)rvOpt,
-+ rvSize);
-+ if (status != PR_SUCCESS) {
-+ if (allocated) {
-+ nss_ZFreeIf(rvOpt);
-+ }
-+ return (NSSPublicKey **)NULL;
-+ }
-+ return rvOpt;
-+}
-+#endif /* PURE_STAN_BUILD */
-+
-+/* how bad would it be to have a static now sitting around, updated whenever
-+ * this was called? would avoid repeated allocs...
-+ */
-+NSS_IMPLEMENT NSSTime *
-+NSSTime_Now (
-+ NSSTime *timeOpt
-+)
-+{
-+ return NSSTime_SetPRTime(timeOpt, PR_Now());
-+}
-+
-+NSS_IMPLEMENT NSSTime *
-+NSSTime_SetPRTime (
-+ NSSTime *timeOpt,
-+ PRTime prTime
-+)
-+{
-+ NSSTime *rvTime;
-+ rvTime = (timeOpt) ? timeOpt : nss_ZNEW(NULL, NSSTime);
-+ rvTime->prTime = prTime;
-+ return rvTime;
-+}
-+
-+NSS_IMPLEMENT PRTime
-+NSSTime_GetPRTime (
-+ NSSTime *time
-+)
-+{
-+ return time->prTime;
-+}
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pkim.h 2004-12-13 15:50:15.899172672 +0100
-@@ -0,0 +1,716 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifndef PKIM_H
-+#define PKIM_H
-+
-+#ifdef DEBUG
-+static const char PKIM_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#ifndef BASE_H
-+#include "base.h"
-+#endif /* BASE_H */
-+
-+#ifndef PKI_H
-+#include "pki.h"
-+#endif /* PKI_H */
-+
-+#ifndef PKITM_H
-+#include "pkitm.h"
-+#endif /* PKITM_H */
-+
-+PR_BEGIN_EXTERN_C
-+
-+/* nssPKIObject
-+ *
-+ * This is the base object class, common to all PKI objects defined in
-+ * in this module. Each object can be safely 'casted' to an nssPKIObject,
-+ * then passed to these methods.
-+ *
-+ * nssPKIObject_Create
-+ * nssPKIObject_Destroy
-+ * nssPKIObject_AddRef
-+ * nssPKIObject_AddInstance
-+ * nssPKIObject_HasInstance
-+ * nssPKIObject_GetTokens
-+ * nssPKIObject_GetNicknameForToken
-+ * nssPKIObject_RemoveInstanceForToken
-+ * nssPKIObject_DeleteStoredObject
-+ */
-+
-+/* nssPKIObject_Create
-+ *
-+ * A generic PKI object. It must live in a trust domain. It may be
-+ * initialized with a token instance, or alternatively in a crypto context.
-+ */
-+NSS_EXTERN nssPKIObject *
-+nssPKIObject_Create
-+(
-+ NSSArena *arenaOpt,
-+ nssCryptokiObject *instanceOpt,
-+ NSSTrustDomain *td,
-+ NSSCryptoContext *ccOpt
-+);
-+
-+/* nssPKIObject_AddRef
-+ */
-+NSS_EXTERN nssPKIObject *
-+nssPKIObject_AddRef
-+(
-+ nssPKIObject *object
-+);
-+
-+/* nssPKIObject_Destroy
-+ *
-+ * Returns true if object was destroyed. This notifies the subclass that
-+ * all references are gone and it should delete any members it owns.
-+ */
-+NSS_EXTERN PRBool
-+nssPKIObject_Destroy
-+(
-+ nssPKIObject *object
-+);
-+
-+/* nssPKIObject_AddInstance
-+ *
-+ * Add a token instance to the object, if it does not have it already.
-+ */
-+NSS_EXTERN PRStatus
-+nssPKIObject_AddInstance
-+(
-+ nssPKIObject *object,
-+ nssCryptokiObject *instance
-+);
-+
-+/* nssPKIObject_HasInstance
-+ *
-+ * Query the object for a token instance.
-+ */
-+NSS_EXTERN PRBool
-+nssPKIObject_HasInstance
-+(
-+ nssPKIObject *object,
-+ nssCryptokiObject *instance
-+);
-+
-+/* nssPKIObject_GetTokens
-+ *
-+ * Get all tokens which have an instance of the object.
-+ */
-+NSS_EXTERN NSSToken **
-+nssPKIObject_GetTokens
-+(
-+ nssPKIObject *object,
-+ PRStatus *statusOpt
-+);
-+
-+/* nssPKIObject_GetNicknameForToken
-+ *
-+ * tokenOpt == NULL means take the first available, otherwise return the
-+ * nickname for the specified token.
-+ */
-+NSS_EXTERN NSSUTF8 *
-+nssPKIObject_GetNicknameForToken
-+(
-+ nssPKIObject *object,
-+ NSSToken *tokenOpt
-+);
-+
-+/* nssPKIObject_RemoveInstanceForToken
-+ *
-+ * Remove the instance of the object on the specified token.
-+ */
-+NSS_EXTERN PRStatus
-+nssPKIObject_RemoveInstanceForToken
-+(
-+ nssPKIObject *object,
-+ NSSToken *token
-+);
-+
-+/* nssPKIObject_DeleteStoredObject
-+ *
-+ * Delete all token instances of the object, as well as any crypto context
-+ * instances (TODO). If any of the instances are read-only, or if the
-+ * removal fails, the object will keep those instances. 'isFriendly' refers
-+ * to the object -- can this object be removed from a friendly token without
-+ * login? For example, certificates are friendly, private keys are not.
-+ * Note that if the token is not friendly, authentication will be required
-+ * regardless of the value of 'isFriendly'.
-+ */
-+NSS_EXTERN PRStatus
-+nssPKIObject_DeleteStoredObject
-+(
-+ nssPKIObject *object,
-+ NSSCallback *uhh,
-+ PRBool isFriendly
-+);
-+
-+#ifdef NSS_3_4_CODE
-+NSS_EXTERN nssCryptokiObject **
-+nssPKIObject_GetInstances
-+(
-+ nssPKIObject *object
-+);
-+#endif
-+
-+NSS_EXTERN NSSCertificate **
-+nssTrustDomain_FindCertificatesByID
-+(
-+ NSSTrustDomain *td,
-+ NSSItem *id,
-+ NSSCertificate **rvOpt,
-+ PRUint32 maximumOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+NSS_EXTERN NSSCRL **
-+nssTrustDomain_FindCRLsBySubject
-+(
-+ NSSTrustDomain *td,
-+ NSSDER *subject
-+);
-+
-+/* module-private nsspki methods */
-+
-+NSS_EXTERN NSSCryptoContext *
-+nssCryptoContext_Create
-+(
-+ NSSTrustDomain *td,
-+ NSSCallback *uhhOpt
-+);
-+
-+/* XXX for the collection */
-+NSS_EXTERN NSSCertificate *
-+nssCertificate_Create
-+(
-+ nssPKIObject *object
-+);
-+
-+NSS_EXTERN PRStatus
-+nssCertificate_SetCertTrust
-+(
-+ NSSCertificate *c,
-+ NSSTrust *trust
-+);
-+
-+NSS_EXTERN nssDecodedCert *
-+nssCertificate_GetDecoding
-+(
-+ NSSCertificate *c
-+);
-+
-+NSS_EXTERN nssDecodedCert *
-+nssDecodedCert_Create
-+(
-+ NSSArena *arenaOpt,
-+ NSSDER *encoding,
-+ NSSCertificateType type
-+);
-+
-+NSS_EXTERN PRStatus
-+nssDecodedCert_Destroy
-+(
-+ nssDecodedCert *dc
-+);
-+
-+NSS_EXTERN NSSTrust *
-+nssTrust_Create
-+(
-+ nssPKIObject *object,
-+ NSSItem *certData
-+);
-+
-+NSS_EXTERN NSSCRL *
-+nssCRL_Create
-+(
-+ nssPKIObject *object
-+);
-+
-+NSS_EXTERN NSSCRL *
-+nssCRL_AddRef
-+(
-+ NSSCRL *crl
-+);
-+
-+NSS_EXTERN PRStatus
-+nssCRL_Destroy
-+(
-+ NSSCRL *crl
-+);
-+
-+NSS_EXTERN PRStatus
-+nssCRL_DeleteStoredObject
-+(
-+ NSSCRL *crl,
-+ NSSCallback *uhh
-+);
-+
-+NSS_EXTERN NSSPrivateKey *
-+nssPrivateKey_Create
-+(
-+ nssPKIObject *o
-+);
-+
-+NSS_EXTERN NSSDER *
-+nssCRL_GetEncoding
-+(
-+ NSSCRL *crl
-+);
-+
-+NSS_EXTERN NSSPublicKey *
-+nssPublicKey_Create
-+(
-+ nssPKIObject *object
-+);
-+
-+/* nssCertificateArray
-+ *
-+ * These are being thrown around a lot, might as well group together some
-+ * functionality.
-+ *
-+ * nssCertificateArray_Destroy
-+ * nssCertificateArray_Join
-+ * nssCertificateArray_FindBestCertificate
-+ * nssCertificateArray_Traverse
-+ */
-+
-+/* nssCertificateArray_Destroy
-+ *
-+ * Will destroy the array and the certs within it. If the array was created
-+ * in an arena, will *not* (of course) destroy the arena. However, is safe
-+ * to call this method on an arena-allocated array.
-+ */
-+NSS_EXTERN void
-+nssCertificateArray_Destroy
-+(
-+ NSSCertificate **certs
-+);
-+
-+/* nssCertificateArray_Join
-+ *
-+ * Join two arrays into one. The two arrays, certs1 and certs2, should
-+ * be considered invalid after a call to this function (they may be destroyed
-+ * as part of the join). certs1 and/or certs2 may be NULL. Safe to
-+ * call with arrays allocated in an arena, the result will also be in the
-+ * arena.
-+ */
-+NSS_EXTERN NSSCertificate **
-+nssCertificateArray_Join
-+(
-+ NSSCertificate **certs1,
-+ NSSCertificate **certs2
-+);
-+
-+/* nssCertificateArray_FindBestCertificate
-+ *
-+ * Use the usual { time, usage, policies } to find the best cert in the
-+ * array.
-+ */
-+NSS_EXTERN NSSCertificate *
-+nssCertificateArray_FindBestCertificate
-+(
-+ NSSCertificate **certs,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt
-+);
-+
-+/* nssCertificateArray_Traverse
-+ *
-+ * Do the callback for each cert, terminate the traversal if the callback
-+ * fails.
-+ */
-+NSS_EXTERN PRStatus
-+nssCertificateArray_Traverse
-+(
-+ NSSCertificate **certs,
-+ PRStatus (* callback)(NSSCertificate *c, void *arg),
-+ void *arg
-+);
-+
-+NSS_EXTERN void
-+nssCRLArray_Destroy
-+(
-+ NSSCRL **crls
-+);
-+
-+/* nssPKIObjectCollection
-+ *
-+ * This is a handy way to group objects together and perform operations
-+ * on them. It can also handle "proto-objects"-- references to
-+ * objects instances on tokens, where the actual object hasn't
-+ * been formed yet.
-+ *
-+ * nssCertificateCollection_Create
-+ * nssPrivateKeyCollection_Create
-+ * nssPublicKeyCollection_Create
-+ *
-+ * If this was a language that provided for inheritance, each type would
-+ * inherit all of the following methods. Instead, there is only one
-+ * type (nssPKIObjectCollection), shared among all. This may cause
-+ * confusion; an alternative would be to define all of the methods
-+ * for each subtype (nssCertificateCollection_Destroy, ...), but that doesn't
-+ * seem worth the code bloat.. It is left up to the caller to remember
-+ * what type of collection he/she is dealing with.
-+ *
-+ * nssPKIObjectCollection_Destroy
-+ * nssPKIObjectCollection_Count
-+ * nssPKIObjectCollection_AddObject
-+ * nssPKIObjectCollection_AddInstances
-+ * nssPKIObjectCollection_Traverse
-+ *
-+ * Back to type-specific methods.
-+ *
-+ * nssPKIObjectCollection_GetCertificates
-+ * nssPKIObjectCollection_GetCRLs
-+ * nssPKIObjectCollection_GetPrivateKeys
-+ * nssPKIObjectCollection_GetPublicKeys
-+ */
-+
-+/* nssCertificateCollection_Create
-+ *
-+ * Create a collection of certificates in the specified trust domain.
-+ * Optionally provide a starting set of certs.
-+ */
-+NSS_EXTERN nssPKIObjectCollection *
-+nssCertificateCollection_Create
-+(
-+ NSSTrustDomain *td,
-+ NSSCertificate **certsOpt
-+);
-+
-+/* nssCRLCollection_Create
-+ *
-+ * Create a collection of CRLs/KRLs in the specified trust domain.
-+ * Optionally provide a starting set of CRLs.
-+ */
-+NSS_EXTERN nssPKIObjectCollection *
-+nssCRLCollection_Create
-+(
-+ NSSTrustDomain *td,
-+ NSSCRL **crlsOpt
-+);
-+
-+/* nssPrivateKeyCollection_Create
-+ *
-+ * Create a collection of private keys in the specified trust domain.
-+ * Optionally provide a starting set of keys.
-+ */
-+NSS_EXTERN nssPKIObjectCollection *
-+nssPrivateKeyCollection_Create
-+(
-+ NSSTrustDomain *td,
-+ NSSPrivateKey **pvkOpt
-+);
-+
-+/* nssPublicKeyCollection_Create
-+ *
-+ * Create a collection of public keys in the specified trust domain.
-+ * Optionally provide a starting set of keys.
-+ */
-+NSS_EXTERN nssPKIObjectCollection *
-+nssPublicKeyCollection_Create
-+(
-+ NSSTrustDomain *td,
-+ NSSPublicKey **pvkOpt
-+);
-+
-+/* nssPKIObjectCollection_Destroy
-+ */
-+NSS_EXTERN void
-+nssPKIObjectCollection_Destroy
-+(
-+ nssPKIObjectCollection *collection
-+);
-+
-+/* nssPKIObjectCollection_Count
-+ */
-+NSS_EXTERN PRUint32
-+nssPKIObjectCollection_Count
-+(
-+ nssPKIObjectCollection *collection
-+);
-+
-+NSS_EXTERN PRStatus
-+nssPKIObjectCollection_AddObject
-+(
-+ nssPKIObjectCollection *collection,
-+ nssPKIObject *object
-+);
-+
-+/* nssPKIObjectCollection_AddInstances
-+ *
-+ * Add a set of object instances to the collection. The instances
-+ * will be sorted into any existing certs/proto-certs that may be in
-+ * the collection. The instances will be absorbed by the collection,
-+ * the array should not be used after this call (except to free it).
-+ *
-+ * Failure means the collection is in an invalid state.
-+ *
-+ * numInstances = 0 means the array is NULL-terminated
-+ */
-+NSS_EXTERN PRStatus
-+nssPKIObjectCollection_AddInstances
-+(
-+ nssPKIObjectCollection *collection,
-+ nssCryptokiObject **instances,
-+ PRUint32 numInstances
-+);
-+
-+/* nssPKIObjectCollection_Traverse
-+ */
-+NSS_EXTERN PRStatus
-+nssPKIObjectCollection_Traverse
-+(
-+ nssPKIObjectCollection *collection,
-+ nssPKIObjectCallback *callback
-+);
-+
-+/* This function is being added for NSS 3.5. It corresponds to the function
-+ * nssToken_TraverseCertificates. The idea is to use the collection during
-+ * a traversal, creating certs each time a new instance is added for which
-+ * a cert does not already exist.
-+ */
-+NSS_EXTERN PRStatus
-+nssPKIObjectCollection_AddInstanceAsObject
-+(
-+ nssPKIObjectCollection *collection,
-+ nssCryptokiObject *instance
-+);
-+
-+/* nssPKIObjectCollection_GetCertificates
-+ *
-+ * Get all of the certificates in the collection.
-+ */
-+NSS_EXTERN NSSCertificate **
-+nssPKIObjectCollection_GetCertificates
-+(
-+ nssPKIObjectCollection *collection,
-+ NSSCertificate **rvOpt,
-+ PRUint32 maximumOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+NSS_EXTERN NSSCRL **
-+nssPKIObjectCollection_GetCRLs
-+(
-+ nssPKIObjectCollection *collection,
-+ NSSCRL **rvOpt,
-+ PRUint32 maximumOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+NSS_EXTERN NSSPrivateKey **
-+nssPKIObjectCollection_GetPrivateKeys
-+(
-+ nssPKIObjectCollection *collection,
-+ NSSPrivateKey **rvOpt,
-+ PRUint32 maximumOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+NSS_EXTERN NSSPublicKey **
-+nssPKIObjectCollection_GetPublicKeys
-+(
-+ nssPKIObjectCollection *collection,
-+ NSSPublicKey **rvOpt,
-+ PRUint32 maximumOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+NSS_EXTERN NSSTime *
-+NSSTime_Now
-+(
-+ NSSTime *timeOpt
-+);
-+
-+NSS_EXTERN NSSTime *
-+NSSTime_SetPRTime
-+(
-+ NSSTime *timeOpt,
-+ PRTime prTime
-+);
-+
-+NSS_EXTERN PRTime
-+NSSTime_GetPRTime
-+(
-+ NSSTime *time
-+);
-+
-+NSS_EXTERN nssHash *
-+nssHash_CreateCertificate
-+(
-+ NSSArena *arenaOpt,
-+ PRUint32 numBuckets
-+);
-+
-+/* 3.4 Certificate cache routines */
-+
-+NSS_EXTERN PRStatus
-+nssTrustDomain_InitializeCache
-+(
-+ NSSTrustDomain *td,
-+ PRUint32 cacheSize
-+);
-+
-+NSS_EXTERN PRStatus
-+nssTrustDomain_AddCertsToCache
-+(
-+ NSSTrustDomain *td,
-+ NSSCertificate **certs,
-+ PRUint32 numCerts
-+);
-+
-+NSS_EXTERN void
-+nssTrustDomain_RemoveCertFromCacheLOCKED (
-+ NSSTrustDomain *td,
-+ NSSCertificate *cert
-+);
-+
-+NSS_EXTERN void
-+nssTrustDomain_LockCertCache (
-+ NSSTrustDomain *td
-+);
-+
-+NSS_EXTERN void
-+nssTrustDomain_UnlockCertCache (
-+ NSSTrustDomain *td
-+);
-+
-+NSS_IMPLEMENT PRStatus
-+nssTrustDomain_DestroyCache
-+(
-+ NSSTrustDomain *td
-+);
-+
-+/*
-+ * Remove all certs for the given token from the cache. This is
-+ * needed if the token is removed.
-+ */
-+NSS_EXTERN PRStatus
-+nssTrustDomain_RemoveTokenCertsFromCache
-+(
-+ NSSTrustDomain *td,
-+ NSSToken *token
-+);
-+
-+NSS_EXTERN PRStatus
-+nssTrustDomain_UpdateCachedTokenCerts
-+(
-+ NSSTrustDomain *td,
-+ NSSToken *token
-+);
-+
-+/*
-+ * Find all cached certs with this nickname (label).
-+ */
-+NSS_EXTERN NSSCertificate **
-+nssTrustDomain_GetCertsForNicknameFromCache
-+(
-+ NSSTrustDomain *td,
-+ NSSUTF8 *nickname,
-+ nssList *certListOpt
-+);
-+
-+/*
-+ * Find all cached certs with this email address.
-+ */
-+NSS_EXTERN NSSCertificate **
-+nssTrustDomain_GetCertsForEmailAddressFromCache
-+(
-+ NSSTrustDomain *td,
-+ NSSASCII7 *email,
-+ nssList *certListOpt
-+);
-+
-+/*
-+ * Find all cached certs with this subject.
-+ */
-+NSS_EXTERN NSSCertificate **
-+nssTrustDomain_GetCertsForSubjectFromCache
-+(
-+ NSSTrustDomain *td,
-+ NSSDER *subject,
-+ nssList *certListOpt
-+);
-+
-+/*
-+ * Look for a specific cert in the cache.
-+ */
-+NSS_EXTERN NSSCertificate *
-+nssTrustDomain_GetCertForIssuerAndSNFromCache
-+(
-+ NSSTrustDomain *td,
-+ NSSDER *issuer,
-+ NSSDER *serialNum
-+);
-+
-+/*
-+ * Look for a specific cert in the cache.
-+ */
-+NSS_EXTERN NSSCertificate *
-+nssTrustDomain_GetCertByDERFromCache
-+(
-+ NSSTrustDomain *td,
-+ NSSDER *der
-+);
-+
-+/* Get all certs from the cache */
-+/* XXX this is being included to make some old-style calls word, not to
-+ * say we should keep it
-+ */
-+NSS_EXTERN NSSCertificate **
-+nssTrustDomain_GetCertsFromCache
-+(
-+ NSSTrustDomain *td,
-+ nssList *certListOpt
-+);
-+
-+NSS_EXTERN void
-+nssTrustDomain_DumpCacheInfo
-+(
-+ NSSTrustDomain *td,
-+ void (* cert_dump_iter)(const void *, void *, void *),
-+ void *arg
-+);
-+
-+NSS_EXTERN void
-+nssCertificateList_AddReferences
-+(
-+ nssList *certList
-+);
-+
-+PR_END_EXTERN_C
-+
-+#endif /* PKIM_H */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pkistore.c 2004-12-13 13:06:46.794383264 +0100
-@@ -0,0 +1,720 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#ifndef PKIM_H
-+#include "pkim.h"
-+#endif /* PKIM_H */
-+
-+#ifndef PKI_H
-+#include "pki.h"
-+#endif /* PKI_H */
-+
-+#ifndef NSSPKI_H
-+#include "nsspki.h"
-+#endif /* NSSPKI_H */
-+
-+#ifndef BASE_H
-+#include "base.h"
-+#endif /* BASE_H */
-+
-+#ifndef PKISTORE_H
-+#include "pkistore.h"
-+#endif /* PKISTORE_H */
-+
-+#ifdef NSS_3_4_CODE
-+#include "cert.h"
-+#endif
-+
-+/*
-+ * Certificate Store
-+ *
-+ * This differs from the cache in that it is a true storage facility. Items
-+ * stay in until they are explicitly removed. It is only used by crypto
-+ * contexts at this time, but may be more generally useful...
-+ *
-+ */
-+
-+struct nssCertificateStoreStr
-+{
-+ PRBool i_alloced_arena;
-+ NSSArena *arena;
-+ PZLock *lock;
-+ nssHash *subject;
-+ nssHash *issuer_and_serial;
-+};
-+
-+typedef struct certificate_hash_entry_str certificate_hash_entry;
-+
-+struct certificate_hash_entry_str
-+{
-+ NSSCertificate *cert;
-+ NSSTrust *trust;
-+ nssSMIMEProfile *profile;
-+};
-+
-+/* XXX This a common function that should be moved out, possibly an
-+ * nssSubjectCertificateList should be created?
-+ */
-+/* sort the subject list from newest to oldest */
-+static PRIntn subject_list_sort(void *v1, void *v2)
-+{
-+ NSSCertificate *c1 = (NSSCertificate *)v1;
-+ NSSCertificate *c2 = (NSSCertificate *)v2;
-+ nssDecodedCert *dc1 = nssCertificate_GetDecoding(c1);
-+ nssDecodedCert *dc2 = nssCertificate_GetDecoding(c2);
-+ if (dc1->isNewerThan(dc1, dc2)) {
-+ return -1;
-+ } else {
-+ return 1;
-+ }
-+}
-+
-+NSS_IMPLEMENT nssCertificateStore *
-+nssCertificateStore_Create (
-+ NSSArena *arenaOpt
-+)
-+{
-+ NSSArena *arena;
-+ nssCertificateStore *store;
-+ PRBool i_alloced_arena;
-+ if (arenaOpt) {
-+ arena = arenaOpt;
-+ i_alloced_arena = PR_FALSE;
-+ } else {
-+ arena = nssArena_Create();
-+ if (!arena) {
-+ return NULL;
-+ }
-+ i_alloced_arena = PR_TRUE;
-+ }
-+ store = nss_ZNEW(arena, nssCertificateStore);
-+ if (!store) {
-+ goto loser;
-+ }
-+ store->lock = PZ_NewLock(nssILockOther);
-+ if (!store->lock) {
-+ goto loser;
-+ }
-+ /* Create the issuer/serial --> {cert, trust, S/MIME profile } hash */
-+ store->issuer_and_serial = nssHash_CreateCertificate(arena, 0);
-+ if (!store->issuer_and_serial) {
-+ goto loser;
-+ }
-+ /* Create the subject DER --> subject list hash */
-+ store->subject = nssHash_CreateItem(arena, 0);
-+ if (!store->subject) {
-+ goto loser;
-+ }
-+ store->arena = arena;
-+ store->i_alloced_arena = i_alloced_arena;
-+ return store;
-+loser:
-+ if (store) {
-+ if (store->lock) {
-+ PZ_DestroyLock(store->lock);
-+ }
-+ if (store->issuer_and_serial) {
-+ nssHash_Destroy(store->issuer_and_serial);
-+ }
-+ if (store->subject) {
-+ nssHash_Destroy(store->subject);
-+ }
-+ }
-+ if (i_alloced_arena) {
-+ nssArena_Destroy(arena);
-+ }
-+ return NULL;
-+}
-+
-+extern const NSSError NSS_ERROR_BUSY;
-+
-+NSS_IMPLEMENT PRStatus
-+nssCertificateStore_Destroy (
-+ nssCertificateStore *store
-+)
-+{
-+ if (nssHash_Count(store->issuer_and_serial) > 0) {
-+ nss_SetError(NSS_ERROR_BUSY);
-+ return PR_FAILURE;
-+ }
-+ PZ_DestroyLock(store->lock);
-+ nssHash_Destroy(store->issuer_and_serial);
-+ nssHash_Destroy(store->subject);
-+ if (store->i_alloced_arena) {
-+ nssArena_Destroy(store->arena);
-+ } else {
-+ nss_ZFreeIf(store);
-+ }
-+ return PR_SUCCESS;
-+}
-+
-+static PRStatus
-+add_certificate_entry (
-+ nssCertificateStore *store,
-+ NSSCertificate *cert
-+)
-+{
-+ PRStatus nssrv;
-+ certificate_hash_entry *entry;
-+ entry = nss_ZNEW(cert->object.arena, certificate_hash_entry);
-+ if (!entry) {
-+ return PR_FAILURE;
-+ }
-+ entry->cert = cert;
-+ nssrv = nssHash_Add(store->issuer_and_serial, cert, entry);
-+ if (nssrv != PR_SUCCESS) {
-+ nss_ZFreeIf(entry);
-+ }
-+ return nssrv;
-+}
-+
-+static PRStatus
-+add_subject_entry (
-+ nssCertificateStore *store,
-+ NSSCertificate *cert
-+)
-+{
-+ PRStatus nssrv;
-+ nssList *subjectList;
-+ subjectList = (nssList *)nssHash_Lookup(store->subject, &cert->subject);
-+ if (subjectList) {
-+ /* The subject is already in, add this cert to the list */
-+ nssrv = nssList_AddUnique(subjectList, cert);
-+ } else {
-+ /* Create a new subject list for the subject */
-+ subjectList = nssList_Create(NULL, PR_FALSE);
-+ if (!subjectList) {
-+ return PR_FAILURE;
-+ }
-+ nssList_SetSortFunction(subjectList, subject_list_sort);
-+ /* Add the cert entry to this list of subjects */
-+ nssrv = nssList_Add(subjectList, cert);
-+ if (nssrv != PR_SUCCESS) {
-+ return nssrv;
-+ }
-+ /* Add the subject list to the cache */
-+ nssrv = nssHash_Add(store->subject, &cert->subject, subjectList);
-+ }
-+ return nssrv;
-+}
-+
-+/* declared below */
-+static void
-+remove_certificate_entry (
-+ nssCertificateStore *store,
-+ NSSCertificate *cert
-+);
-+
-+NSS_IMPLEMENT PRStatus
-+nssCertificateStore_Add (
-+ nssCertificateStore *store,
-+ NSSCertificate *cert
-+)
-+{
-+ PRStatus nssrv;
-+ PZ_Lock(store->lock);
-+ if (nssHash_Exists(store->issuer_and_serial, cert)) {
-+ PZ_Unlock(store->lock);
-+ return PR_SUCCESS;
-+ }
-+ nssrv = add_certificate_entry(store, cert);
-+ if (nssrv == PR_SUCCESS) {
-+ nssrv = add_subject_entry(store, cert);
-+ if (nssrv == PR_FAILURE) {
-+ remove_certificate_entry(store, cert);
-+ }
-+ }
-+ PZ_Unlock(store->lock);
-+ return nssrv;
-+}
-+
-+static void
-+remove_certificate_entry (
-+ nssCertificateStore *store,
-+ NSSCertificate *cert
-+)
-+{
-+ certificate_hash_entry *entry;
-+ entry = (certificate_hash_entry *)
-+ nssHash_Lookup(store->issuer_and_serial, cert);
-+ if (entry) {
-+ nssHash_Remove(store->issuer_and_serial, cert);
-+ if (entry->trust) {
-+ nssTrust_Destroy(entry->trust);
-+ }
-+ if (entry->profile) {
-+ nssSMIMEProfile_Destroy(entry->profile);
-+ }
-+ nss_ZFreeIf(entry);
-+ }
-+}
-+
-+static void
-+remove_subject_entry (
-+ nssCertificateStore *store,
-+ NSSCertificate *cert
-+)
-+{
-+ nssList *subjectList;
-+ /* Get the subject list for the cert's subject */
-+ subjectList = (nssList *)nssHash_Lookup(store->subject, &cert->subject);
-+ if (subjectList) {
-+ /* Remove the cert from the subject hash */
-+ nssList_Remove(subjectList, cert);
-+ nssHash_Remove(store->subject, &cert->subject);
-+ if (nssList_Count(subjectList) == 0) {
-+ nssList_Destroy(subjectList);
-+ } else {
-+ /* The cert being released may have keyed the subject entry.
-+ * Since there are still subject certs around, get another and
-+ * rekey the entry just in case.
-+ */
-+ NSSCertificate *subjectCert;
-+ (void)nssList_GetArray(subjectList, (void **)&subjectCert, 1);
-+ nssHash_Add(store->subject, &subjectCert->subject, subjectList);
-+ }
-+ }
-+}
-+
-+NSS_IMPLEMENT void
-+nssCertificateStore_RemoveCertLOCKED (
-+ nssCertificateStore *store,
-+ NSSCertificate *cert
-+)
-+{
-+ certificate_hash_entry *entry;
-+ entry = (certificate_hash_entry *)
-+ nssHash_Lookup(store->issuer_and_serial, cert);
-+ if (entry && entry->cert == cert) {
-+ remove_certificate_entry(store, cert);
-+ remove_subject_entry(store, cert);
-+ }
-+}
-+
-+NSS_IMPLEMENT void
-+nssCertificateStore_Lock (
-+ nssCertificateStore *store
-+)
-+{
-+ PZ_Lock(store->lock);
-+}
-+
-+NSS_IMPLEMENT void
-+nssCertificateStore_Unlock (
-+ nssCertificateStore *store
-+)
-+{
-+ PZ_Unlock(store->lock);
-+}
-+
-+static NSSCertificate **
-+get_array_from_list (
-+ nssList *certList,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ PRUint32 count;
-+ NSSCertificate **rvArray = NULL;
-+ count = nssList_Count(certList);
-+ if (count == 0) {
-+ return NULL;
-+ }
-+ if (maximumOpt > 0) {
-+ count = PR_MIN(maximumOpt, count);
-+ }
-+ if (rvOpt) {
-+ nssList_GetArray(certList, (void **)rvOpt, count);
-+ } else {
-+ rvArray = nss_ZNEWARRAY(arenaOpt, NSSCertificate *, count + 1);
-+ if (rvArray) {
-+ nssList_GetArray(certList, (void **)rvArray, count);
-+ }
-+ }
-+ return rvArray;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate **
-+nssCertificateStore_FindCertificatesBySubject (
-+ nssCertificateStore *store,
-+ NSSDER *subject,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ NSSCertificate **rvArray = NULL;
-+ nssList *subjectList;
-+ PZ_Lock(store->lock);
-+ subjectList = (nssList *)nssHash_Lookup(store->subject, subject);
-+ if (subjectList) {
-+ nssCertificateList_AddReferences(subjectList);
-+ rvArray = get_array_from_list(subjectList,
-+ rvOpt, maximumOpt, arenaOpt);
-+ }
-+ PZ_Unlock(store->lock);
-+ return rvArray;
-+}
-+
-+/* Because only subject indexing is implemented, all other lookups require
-+ * full traversal (unfortunately, PLHashTable doesn't allow you to exit
-+ * early from the enumeration). The assumptions are that 1) lookups by
-+ * fields other than subject will be rare, and 2) the hash will not have
-+ * a large number of entries. These assumptions will be tested.
-+ *
-+ * XXX
-+ * For NSS 3.4, it is worth consideration to do all forms of indexing,
-+ * because the only crypto context is global and persistent.
-+ */
-+
-+struct nickname_template_str
-+{
-+ NSSUTF8 *nickname;
-+ nssList *subjectList;
-+};
-+
-+static void match_nickname(const void *k, void *v, void *a)
-+{
-+ PRStatus nssrv;
-+ NSSCertificate *c;
-+ NSSUTF8 *nickname;
-+ nssList *subjectList = (nssList *)v;
-+ struct nickname_template_str *nt = (struct nickname_template_str *)a;
-+ nssrv = nssList_GetArray(subjectList, (void **)&c, 1);
-+ nickname = nssCertificate_GetNickname(c, NULL);
-+ if (nssrv == PR_SUCCESS && nickname &&
-+ nssUTF8_Equal(nickname, nt->nickname, &nssrv))
-+ {
-+ nt->subjectList = subjectList;
-+ }
-+}
-+
-+/*
-+ * Find all cached certs with this label.
-+ */
-+NSS_IMPLEMENT NSSCertificate **
-+nssCertificateStore_FindCertificatesByNickname (
-+ nssCertificateStore *store,
-+ NSSUTF8 *nickname,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ NSSCertificate **rvArray = NULL;
-+ struct nickname_template_str nt;
-+ nt.nickname = nickname;
-+ nt.subjectList = NULL;
-+ PZ_Lock(store->lock);
-+ nssHash_Iterate(store->subject, match_nickname, &nt);
-+ if (nt.subjectList) {
-+ nssCertificateList_AddReferences(nt.subjectList);
-+ rvArray = get_array_from_list(nt.subjectList,
-+ rvOpt, maximumOpt, arenaOpt);
-+ }
-+ PZ_Unlock(store->lock);
-+ return rvArray;
-+}
-+
-+struct email_template_str
-+{
-+ NSSASCII7 *email;
-+ nssList *emailList;
-+};
-+
-+static void match_email(const void *k, void *v, void *a)
-+{
-+ PRStatus nssrv;
-+ NSSCertificate *c;
-+ nssList *subjectList = (nssList *)v;
-+ struct email_template_str *et = (struct email_template_str *)a;
-+ nssrv = nssList_GetArray(subjectList, (void **)&c, 1);
-+ if (nssrv == PR_SUCCESS &&
-+ nssUTF8_Equal(c->email, et->email, &nssrv))
-+ {
-+ nssListIterator *iter = nssList_CreateIterator(subjectList);
-+ if (iter) {
-+ for (c = (NSSCertificate *)nssListIterator_Start(iter);
-+ c != (NSSCertificate *)NULL;
-+ c = (NSSCertificate *)nssListIterator_Next(iter))
-+ {
-+ nssList_Add(et->emailList, c);
-+ }
-+ nssListIterator_Finish(iter);
-+ nssListIterator_Destroy(iter);
-+ }
-+ }
-+}
-+
-+/*
-+ * Find all cached certs with this email address.
-+ */
-+NSS_IMPLEMENT NSSCertificate **
-+nssCertificateStore_FindCertificatesByEmail (
-+ nssCertificateStore *store,
-+ NSSASCII7 *email,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ NSSCertificate **rvArray = NULL;
-+ struct email_template_str et;
-+ et.email = email;
-+ et.emailList = nssList_Create(NULL, PR_FALSE);
-+ if (!et.emailList) {
-+ return NULL;
-+ }
-+ PZ_Lock(store->lock);
-+ nssHash_Iterate(store->subject, match_email, &et);
-+ if (et.emailList) {
-+ /* get references before leaving the store's lock protection */
-+ nssCertificateList_AddReferences(et.emailList);
-+ }
-+ PZ_Unlock(store->lock);
-+ if (et.emailList) {
-+ rvArray = get_array_from_list(et.emailList,
-+ rvOpt, maximumOpt, arenaOpt);
-+ nssList_Destroy(et.emailList);
-+ }
-+ return rvArray;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+nssCertificateStore_FindCertificateByIssuerAndSerialNumber (
-+ nssCertificateStore *store,
-+ NSSDER *issuer,
-+ NSSDER *serial
-+)
-+{
-+ certificate_hash_entry *entry;
-+ NSSCertificate index;
-+ NSSCertificate *rvCert = NULL;
-+ index.issuer = *issuer;
-+ index.serial = *serial;
-+ PZ_Lock(store->lock);
-+ entry = (certificate_hash_entry *)
-+ nssHash_Lookup(store->issuer_and_serial, &index);
-+ if (entry) {
-+ rvCert = nssCertificate_AddRef(entry->cert);
-+ }
-+ PZ_Unlock(store->lock);
-+ return rvCert;
-+}
-+
-+#ifdef NSS_3_4_CODE
-+static PRStatus
-+issuer_and_serial_from_encoding (
-+ NSSBER *encoding,
-+ NSSDER *issuer,
-+ NSSDER *serial
-+)
-+{
-+ SECItem derCert, derIssuer, derSerial;
-+ SECStatus secrv;
-+ derCert.data = (unsigned char *)encoding->data;
-+ derCert.len = encoding->size;
-+ secrv = CERT_IssuerNameFromDERCert(&derCert, &derIssuer);
-+ if (secrv != SECSuccess) {
-+ return PR_FAILURE;
-+ }
-+ secrv = CERT_SerialNumberFromDERCert(&derCert, &derSerial);
-+ if (secrv != SECSuccess) {
-+ PORT_Free(derIssuer.data);
-+ return PR_FAILURE;
-+ }
-+ issuer->data = derIssuer.data;
-+ issuer->size = derIssuer.len;
-+ serial->data = derSerial.data;
-+ serial->size = derSerial.len;
-+ return PR_SUCCESS;
-+}
-+#endif
-+
-+NSS_IMPLEMENT NSSCertificate *
-+nssCertificateStore_FindCertificateByEncodedCertificate (
-+ nssCertificateStore *store,
-+ NSSDER *encoding
-+)
-+{
-+ PRStatus nssrv = PR_FAILURE;
-+ NSSDER issuer, serial;
-+ NSSCertificate *rvCert = NULL;
-+#ifdef NSS_3_4_CODE
-+ nssrv = issuer_and_serial_from_encoding(encoding, &issuer, &serial);
-+#endif
-+ if (nssrv != PR_SUCCESS) {
-+ return NULL;
-+ }
-+ rvCert = nssCertificateStore_FindCertificateByIssuerAndSerialNumber(store,
-+ &issuer,
-+ &serial);
-+#ifdef NSS_3_4_CODE
-+ PORT_Free(issuer.data);
-+ PORT_Free(serial.data);
-+#endif
-+ return rvCert;
-+}
-+
-+NSS_EXTERN PRStatus
-+nssCertificateStore_AddTrust (
-+ nssCertificateStore *store,
-+ NSSTrust *trust
-+)
-+{
-+ NSSCertificate *cert;
-+ certificate_hash_entry *entry;
-+ cert = trust->certificate;
-+ PZ_Lock(store->lock);
-+ entry = (certificate_hash_entry *)
-+ nssHash_Lookup(store->issuer_and_serial, cert);
-+ if (entry) {
-+ entry->trust = nssTrust_AddRef(trust);
-+ }
-+ PZ_Unlock(store->lock);
-+ return (entry) ? PR_SUCCESS : PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT NSSTrust *
-+nssCertificateStore_FindTrustForCertificate (
-+ nssCertificateStore *store,
-+ NSSCertificate *cert
-+)
-+{
-+ certificate_hash_entry *entry;
-+ NSSTrust *rvTrust = NULL;
-+ PZ_Lock(store->lock);
-+ entry = (certificate_hash_entry *)
-+ nssHash_Lookup(store->issuer_and_serial, cert);
-+ if (entry && entry->trust) {
-+ rvTrust = nssTrust_AddRef(entry->trust);
-+ }
-+ PZ_Unlock(store->lock);
-+ return rvTrust;
-+}
-+
-+NSS_EXTERN PRStatus
-+nssCertificateStore_AddSMIMEProfile (
-+ nssCertificateStore *store,
-+ nssSMIMEProfile *profile
-+)
-+{
-+ NSSCertificate *cert;
-+ certificate_hash_entry *entry;
-+ cert = profile->certificate;
-+ PZ_Lock(store->lock);
-+ entry = (certificate_hash_entry *)
-+ nssHash_Lookup(store->issuer_and_serial, cert);
-+ if (entry) {
-+ entry->profile = nssSMIMEProfile_AddRef(profile);
-+ }
-+ PZ_Unlock(store->lock);
-+ return (entry) ? PR_SUCCESS : PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT nssSMIMEProfile *
-+nssCertificateStore_FindSMIMEProfileForCertificate (
-+ nssCertificateStore *store,
-+ NSSCertificate *cert
-+)
-+{
-+ certificate_hash_entry *entry;
-+ nssSMIMEProfile *rvProfile = NULL;
-+ PZ_Lock(store->lock);
-+ entry = (certificate_hash_entry *)
-+ nssHash_Lookup(store->issuer_and_serial, cert);
-+ if (entry && entry->profile) {
-+ rvProfile = nssSMIMEProfile_AddRef(entry->profile);
-+ }
-+ PZ_Unlock(store->lock);
-+ return rvProfile;
-+}
-+
-+/* XXX this is also used by cache and should be somewhere else */
-+
-+static PLHashNumber
-+nss_certificate_hash (
-+ const void *key
-+)
-+{
-+ unsigned int i;
-+ PLHashNumber h;
-+ NSSCertificate *c = (NSSCertificate *)key;
-+ h = 0;
-+ for (i=0; i<c->issuer.size; i++)
-+ h = (h >> 28) ^ (h << 4) ^ ((unsigned char *)c->issuer.data)[i];
-+ for (i=0; i<c->serial.size; i++)
-+ h = (h >> 28) ^ (h << 4) ^ ((unsigned char *)c->serial.data)[i];
-+ return h;
-+}
-+
-+static int
-+nss_compare_certs(const void *v1, const void *v2)
-+{
-+ PRStatus ignore;
-+ NSSCertificate *c1 = (NSSCertificate *)v1;
-+ NSSCertificate *c2 = (NSSCertificate *)v2;
-+ return (int)(nssItem_Equal(&c1->issuer, &c2->issuer, &ignore) &&
-+ nssItem_Equal(&c1->serial, &c2->serial, &ignore));
-+}
-+
-+NSS_IMPLEMENT nssHash *
-+nssHash_CreateCertificate (
-+ NSSArena *arenaOpt,
-+ PRUint32 numBuckets
-+)
-+{
-+ return nssHash_Create(arenaOpt,
-+ numBuckets,
-+ nss_certificate_hash,
-+ nss_compare_certs,
-+ PL_CompareValues);
-+}
-+
-+NSS_IMPLEMENT void
-+nssCertificateStore_DumpStoreInfo (
-+ nssCertificateStore *store,
-+ void (* cert_dump_iter)(const void *, void *, void *),
-+ void *arg
-+)
-+{
-+ PZ_Lock(store->lock);
-+ nssHash_Iterate(store->issuer_and_serial, cert_dump_iter, arg);
-+ PZ_Unlock(store->lock);
-+}
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pkistore.h 2004-12-13 15:50:15.962163096 +0100
-@@ -0,0 +1,188 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifndef PKISTORE_H
-+#define PKISTORE_H
-+
-+#ifdef DEBUG
-+static const char PKISTORE_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#ifndef NSSPKIT_H
-+#include "nsspkit.h"
-+#endif /* NSSPKIT_H */
-+
-+#ifndef BASE_H
-+#include "base.h"
-+#endif /* BASE_H */
-+
-+PR_BEGIN_EXTERN_C
-+
-+/*
-+ * PKI Stores
-+ *
-+ * This is a set of routines for managing local stores of PKI objects.
-+ * Currently, the only application is in crypto contexts, where the
-+ * certificate store is used. In the future, methods should be added
-+ * here for storing local references to keys.
-+ */
-+
-+/*
-+ * nssCertificateStore
-+ *
-+ * Manages local store of certificate, trust, and S/MIME profile objects.
-+ * Within a crypto context, mappings of cert to trust and cert to S/MIME
-+ * profile are always 1-1. Therefore, it is reasonable to store all objects
-+ * in a single collection, indexed by the certificate.
-+ */
-+
-+NSS_EXTERN nssCertificateStore *
-+nssCertificateStore_Create
-+(
-+ NSSArena *arenaOpt
-+);
-+
-+NSS_EXTERN PRStatus
-+nssCertificateStore_Destroy
-+(
-+ nssCertificateStore *store
-+);
-+
-+NSS_EXTERN PRStatus
-+nssCertificateStore_Add
-+(
-+ nssCertificateStore *store,
-+ NSSCertificate *cert
-+);
-+
-+NSS_EXTERN void
-+nssCertificateStore_RemoveCertLOCKED
-+(
-+ nssCertificateStore *store,
-+ NSSCertificate *cert
-+);
-+
-+NSS_EXTERN void
-+nssCertificateStore_Lock (
-+ nssCertificateStore *store
-+);
-+
-+NSS_EXTERN void
-+nssCertificateStore_Unlock (
-+ nssCertificateStore *store
-+);
-+
-+NSS_EXTERN NSSCertificate **
-+nssCertificateStore_FindCertificatesBySubject
-+(
-+ nssCertificateStore *store,
-+ NSSDER *subject,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+NSS_EXTERN NSSCertificate **
-+nssCertificateStore_FindCertificatesByNickname
-+(
-+ nssCertificateStore *store,
-+ NSSUTF8 *nickname,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+NSS_EXTERN NSSCertificate **
-+nssCertificateStore_FindCertificatesByEmail
-+(
-+ nssCertificateStore *store,
-+ NSSASCII7 *email,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt,
-+ NSSArena *arenaOpt
-+);
-+
-+NSS_EXTERN NSSCertificate *
-+nssCertificateStore_FindCertificateByIssuerAndSerialNumber
-+(
-+ nssCertificateStore *store,
-+ NSSDER *issuer,
-+ NSSDER *serial
-+);
-+
-+NSS_EXTERN NSSCertificate *
-+nssCertificateStore_FindCertificateByEncodedCertificate
-+(
-+ nssCertificateStore *store,
-+ NSSDER *encoding
-+);
-+
-+NSS_EXTERN PRStatus
-+nssCertificateStore_AddTrust
-+(
-+ nssCertificateStore *store,
-+ NSSTrust *trust
-+);
-+
-+NSS_EXTERN NSSTrust *
-+nssCertificateStore_FindTrustForCertificate
-+(
-+ nssCertificateStore *store,
-+ NSSCertificate *cert
-+);
-+
-+NSS_EXTERN PRStatus
-+nssCertificateStore_AddSMIMEProfile
-+(
-+ nssCertificateStore *store,
-+ nssSMIMEProfile *profile
-+);
-+
-+NSS_EXTERN nssSMIMEProfile *
-+nssCertificateStore_FindSMIMEProfileForCertificate
-+(
-+ nssCertificateStore *store,
-+ NSSCertificate *cert
-+);
-+
-+NSS_EXTERN void
-+nssCertificateStore_DumpStoreInfo
-+(
-+ nssCertificateStore *store,
-+ void (* cert_dump_iter)(const void *, void *, void *),
-+ void *arg
-+);
-+
-+PR_END_EXTERN_C
-+
-+#endif /* PKISTORE_H */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pkit.h 2004-12-13 15:50:15.946165528 +0100
-@@ -0,0 +1,210 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifndef PKIT_H
-+#define PKIT_H
-+
-+#ifdef DEBUG
-+static const char PKIT_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+/*
-+ * pkit.h
-+ *
-+ * This file contains definitions for the types of the top-level PKI objects.
-+ */
-+
-+#ifndef NSSBASET_H
-+#include "nssbaset.h"
-+#endif /* NSSBASET_H */
-+
-+#ifndef BASET_H
-+#include "baset.h"
-+#endif /* BASET_H */
-+
-+#ifdef NSS_3_4_CODE
-+#include "certt.h"
-+#include "pkcs11t.h"
-+#endif /* NSS_3_4_CODE */
-+
-+#ifndef NSSPKIT_H
-+#include "nsspkit.h"
-+#endif /* NSSPKIT_H */
-+
-+#ifndef NSSDEVT_H
-+#include "nssdevt.h"
-+#endif /* NSSDEVT_H */
-+
-+#ifndef DEVT_H
-+#include "devt.h"
-+#endif /* DEVT_H */
-+
-+PR_BEGIN_EXTERN_C
-+
-+/*
-+ * A note on ephemeral certs
-+ *
-+ * The key objects defined here can only be created on tokens, and can only
-+ * exist on tokens. Therefore, any instance of a key object must have
-+ * a corresponding cryptoki instance. OTOH, certificates created in
-+ * crypto contexts need not be stored as session objects on the token.
-+ * There are good performance reasons for not doing so. The certificate
-+ * and trust objects have been defined with a cryptoContext field to
-+ * allow for ephemeral certs, which may have a single instance in a crypto
-+ * context along with any number (including zero) of cryptoki instances.
-+ * Since contexts may not share objects, there can be only one context
-+ * for each object.
-+ */
-+
-+/* nssPKIObject
-+ *
-+ * This is the base object class, common to all PKI objects defined in
-+ * nsspkit.h
-+ */
-+struct nssPKIObjectStr
-+{
-+ /* The arena for all object memory */
-+ NSSArena *arena;
-+ /* Atomically incremented/decremented reference counting */
-+ PRInt32 refCount;
-+ /* lock protects the array of nssCryptokiInstance's of the object */
-+ PZLock *lock;
-+ /* XXX with LRU cache, this cannot be guaranteed up-to-date. It cannot
-+ * be compared against the update level of the trust domain, since it is
-+ * also affected by import/export. Where is this array needed?
-+ */
-+ nssCryptokiObject **instances;
-+ PRUint32 numInstances;
-+ /* The object must live in a trust domain */
-+ NSSTrustDomain *trustDomain;
-+ /* The object may live in a crypto context */
-+ NSSCryptoContext *cryptoContext;
-+ /* XXX added so temp certs can have nickname, think more ... */
-+ NSSUTF8 *tempName;
-+};
-+
-+typedef struct nssDecodedCertStr nssDecodedCert;
-+
-+typedef struct nssCertificateStoreStr nssCertificateStore;
-+
-+/* How wide is the scope of this? */
-+typedef struct nssSMIMEProfileStr nssSMIMEProfile;
-+
-+typedef struct nssPKIObjectStr nssPKIObject;
-+
-+struct NSSTrustStr
-+{
-+ nssPKIObject object;
-+ NSSCertificate *certificate;
-+ nssTrustLevel serverAuth;
-+ nssTrustLevel clientAuth;
-+ nssTrustLevel emailProtection;
-+ nssTrustLevel codeSigning;
-+};
-+
-+struct nssSMIMEProfileStr
-+{
-+ nssPKIObject object;
-+ NSSCertificate *certificate;
-+ NSSASCII7 *email;
-+ NSSDER *subject;
-+ NSSItem *profileTime;
-+ NSSItem *profileData;
-+};
-+
-+struct NSSCertificateStr
-+{
-+ nssPKIObject object;
-+ NSSCertificateType type;
-+ NSSItem id;
-+ NSSBER encoding;
-+ NSSDER issuer;
-+ NSSDER subject;
-+ NSSDER serial;
-+ NSSASCII7 *email;
-+ nssDecodedCert *decoding;
-+};
-+
-+struct NSSPrivateKeyStr;
-+
-+struct NSSPublicKeyStr;
-+
-+struct NSSSymmetricKeyStr;
-+
-+typedef struct nssTDCertificateCacheStr nssTDCertificateCache;
-+
-+struct NSSTrustDomainStr {
-+ PRInt32 refCount;
-+ NSSArena *arena;
-+ NSSCallback *defaultCallback;
-+ nssList *tokenList;
-+ nssListIterator *tokens;
-+ nssTDCertificateCache *cache;
-+#ifdef NSS_3_4_CODE
-+ void *spkDigestInfo;
-+ CERTStatusConfig *statusConfig;
-+#endif
-+};
-+
-+struct NSSCryptoContextStr
-+{
-+ PRInt32 refCount;
-+ NSSArena *arena;
-+ NSSTrustDomain *td;
-+ NSSToken *token;
-+ nssSession *session;
-+ nssCertificateStore *certStore;
-+};
-+
-+struct NSSTimeStr {
-+ PRTime prTime;
-+};
-+
-+struct NSSCRLStr {
-+ nssPKIObject object;
-+ NSSDER encoding;
-+ NSSUTF8 *url;
-+ PRBool isKRL;
-+};
-+
-+typedef struct NSSCRLStr NSSCRL;
-+
-+struct NSSPoliciesStr;
-+
-+struct NSSAlgorithmAndParametersStr;
-+
-+struct NSSPKIXCertificateStr;
-+
-+PR_END_EXTERN_C
-+
-+#endif /* PKIT_H */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pkitm.h 2004-12-13 15:50:16.073146224 +0100
-@@ -0,0 +1,130 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifndef PKITM_H
-+#define PKITM_H
-+
-+#ifdef DEBUG
-+static const char PKITM_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+/*
-+ * pkitm.h
-+ *
-+ * This file contains PKI-module specific types.
-+ */
-+
-+#ifndef BASET_H
-+#include "baset.h"
-+#endif /* BASET_H */
-+
-+#ifndef PKIT_H
-+#include "pkit.h"
-+#endif /* PKIT_H */
-+
-+PR_BEGIN_EXTERN_C
-+
-+typedef enum nssCertIDMatchEnum {
-+ nssCertIDMatch_Yes = 0,
-+ nssCertIDMatch_No = 1,
-+ nssCertIDMatch_Unknown = 2
-+} nssCertIDMatch;
-+
-+/*
-+ * nssDecodedCert
-+ *
-+ * This is an interface to allow the PKI module access to certificate
-+ * information that can only be found by decoding. The interface is
-+ * generic, allowing each certificate type its own way of providing
-+ * the information
-+ */
-+struct nssDecodedCertStr {
-+ NSSCertificateType type;
-+ void *data;
-+ /* returns the unique identifier for the cert */
-+ NSSItem * (*getIdentifier)(nssDecodedCert *dc);
-+ /* returns the unique identifier for this cert's issuer */
-+ void * (*getIssuerIdentifier)(nssDecodedCert *dc);
-+ /* is id the identifier for this cert? */
-+ nssCertIDMatch (*matchIdentifier)(nssDecodedCert *dc, void *id);
-+ /* is this cert a valid CA cert? */
-+ PRBool (*isValidIssuer)(nssDecodedCert *dc);
-+ /* returns the cert usage */
-+ NSSUsage * (*getUsage)(nssDecodedCert *dc);
-+ /* is time within the validity period of the cert? */
-+ PRBool (*isValidAtTime)(nssDecodedCert *dc, NSSTime *time);
-+ /* is the validity period of this cert newer than cmpdc? */
-+ PRBool (*isNewerThan)(nssDecodedCert *dc, nssDecodedCert *cmpdc);
-+ /* does the usage for this cert match the requested usage? */
-+ PRBool (*matchUsage)(nssDecodedCert *dc, NSSUsage *usage);
-+ /* extract the email address */
-+ NSSASCII7 *(*getEmailAddress)(nssDecodedCert *dc);
-+ /* extract the DER-encoded serial number */
-+ PRStatus (*getDERSerialNumber)(nssDecodedCert *dc,
-+ NSSDER *derSerial, NSSArena *arena);
-+};
-+
-+struct NSSUsageStr {
-+ PRBool anyUsage;
-+#ifdef NSS_3_4_CODE
-+ SECCertUsage nss3usage;
-+ PRBool nss3lookingForCA;
-+#endif
-+};
-+
-+typedef struct nssBestCertificateCBStr nssBestCertificateCB;
-+
-+struct nssBestCertificateCBStr {
-+ NSSCertificate *cert;
-+ NSSTime *time;
-+ NSSTime sTime; /* to avoid allocating when unnecessary */
-+ NSSUsage *usage;
-+ NSSPolicies *policies;
-+};
-+
-+typedef struct nssPKIObjectCollectionStr nssPKIObjectCollection;
-+
-+typedef struct
-+{
-+ union {
-+ PRStatus (* cert)(NSSCertificate *c, void *arg);
-+ PRStatus (* crl)(NSSCRL *crl, void *arg);
-+ PRStatus (* pvkey)(NSSPrivateKey *vk, void *arg);
-+ PRStatus (* pbkey)(NSSPublicKey *bk, void *arg);
-+ } func;
-+ void *arg;
-+} nssPKIObjectCallback;
-+
-+PR_END_EXTERN_C
-+
-+#endif /* PKITM_H */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/polcyxtn.c 2004-12-13 13:06:46.690399072 +0100
-@@ -0,0 +1,565 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+/*
-+ * Support for various policy related extensions
-+ *
-+ * $Id$
-+ */
-+
-+#include "seccomon.h"
-+#include "secport.h"
-+#include "secder.h"
-+#include "cert.h"
-+#include "secoid.h"
-+#include "secasn1.h"
-+#include "secerr.h"
-+#include "nspr.h"
-+
-+const SEC_ASN1Template CERT_NoticeReferenceTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(CERTNoticeReference) },
-+/* NOTE: this should be a choice */
-+ { SEC_ASN1_IA5_STRING,
-+ offsetof(CERTNoticeReference, organization) },
-+ { SEC_ASN1_SEQUENCE_OF,
-+ offsetof(CERTNoticeReference, noticeNumbers),
-+ SEC_IntegerTemplate },
-+ { 0 }
-+};
-+
-+/* this template can not be encoded because of the option inline */
-+const SEC_ASN1Template CERT_UserNoticeTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(CERTUserNotice) },
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_SEQUENCE | SEC_ASN1_CONSTRUCTED,
-+ offsetof(CERTUserNotice, derNoticeReference) },
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_ANY,
-+ offsetof(CERTUserNotice, displayText) },
-+ { 0 }
-+};
-+
-+const SEC_ASN1Template CERT_PolicyQualifierTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(CERTPolicyQualifier) },
-+ { SEC_ASN1_OBJECT_ID,
-+ offsetof(CERTPolicyQualifier, qualifierID) },
-+ { SEC_ASN1_ANY,
-+ offsetof(CERTPolicyQualifier, qualifierValue) },
-+ { 0 }
-+};
-+
-+const SEC_ASN1Template CERT_PolicyInfoTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(CERTPolicyInfo) },
-+ { SEC_ASN1_OBJECT_ID,
-+ offsetof(CERTPolicyInfo, policyID) },
-+ { SEC_ASN1_SEQUENCE_OF | SEC_ASN1_OPTIONAL,
-+ offsetof(CERTPolicyInfo, policyQualifiers),
-+ CERT_PolicyQualifierTemplate },
-+ { 0 }
-+};
-+
-+const SEC_ASN1Template CERT_CertificatePoliciesTemplate[] = {
-+ { SEC_ASN1_SEQUENCE_OF,
-+ offsetof(CERTCertificatePolicies, policyInfos),
-+ CERT_PolicyInfoTemplate, sizeof(CERTCertificatePolicies) }
-+};
-+
-+static void
-+breakLines(char *string)
-+{
-+ char *tmpstr;
-+ char *lastspace = NULL;
-+ int curlen = 0;
-+ int c;
-+
-+ tmpstr = string;
-+
-+ while ( ( c = *tmpstr ) != '\0' ) {
-+ switch ( c ) {
-+ case ' ':
-+ lastspace = tmpstr;
-+ break;
-+ case '\n':
-+ lastspace = NULL;
-+ curlen = 0;
-+ break;
-+ }
-+
-+ if ( ( curlen >= 55 ) && ( lastspace != NULL ) ) {
-+ *lastspace = '\n';
-+ curlen = ( tmpstr - lastspace );
-+ lastspace = NULL;
-+ }
-+
-+ curlen++;
-+ tmpstr++;
-+ }
-+
-+ return;
-+}
-+
-+CERTCertificatePolicies *
-+CERT_DecodeCertificatePoliciesExtension(SECItem *extnValue)
-+{
-+ PRArenaPool *arena = NULL;
-+ SECStatus rv;
-+ CERTCertificatePolicies *policies;
-+ CERTPolicyInfo **policyInfos, *policyInfo;
-+ CERTPolicyQualifier **policyQualifiers, *policyQualifier;
-+ SECItem newExtnValue;
-+
-+ /* make a new arena */
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+
-+ if ( !arena ) {
-+ goto loser;
-+ }
-+
-+ /* allocate the certifiate policies structure */
-+ policies = (CERTCertificatePolicies *)
-+ PORT_ArenaZAlloc(arena, sizeof(CERTCertificatePolicies));
-+
-+ if ( policies == NULL ) {
-+ goto loser;
-+ }
-+
-+ policies->arena = arena;
-+
-+ /* copy the DER into the arena, since Quick DER returns data that points
-+ into the DER input, which may get freed by the caller */
-+ rv = SECITEM_CopyItem(arena, &newExtnValue, extnValue);
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+
-+ /* decode the policy info */
-+ rv = SEC_QuickDERDecodeItem(arena, policies, CERT_CertificatePoliciesTemplate,
-+ &newExtnValue);
-+
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+
-+ /* initialize the oid tags */
-+ policyInfos = policies->policyInfos;
-+ while (*policyInfos != NULL ) {
-+ policyInfo = *policyInfos;
-+ policyInfo->oid = SECOID_FindOIDTag(&policyInfo->policyID);
-+ policyQualifiers = policyInfo->policyQualifiers;
-+ while ( policyQualifiers != NULL && *policyQualifiers != NULL ) {
-+ policyQualifier = *policyQualifiers;
-+ policyQualifier->oid =
-+ SECOID_FindOIDTag(&policyQualifier->qualifierID);
-+ policyQualifiers++;
-+ }
-+ policyInfos++;
-+ }
-+
-+ return(policies);
-+
-+loser:
-+ if ( arena != NULL ) {
-+ PORT_FreeArena(arena, PR_FALSE);
-+ }
-+
-+ return(NULL);
-+}
-+
-+void
-+CERT_DestroyCertificatePoliciesExtension(CERTCertificatePolicies *policies)
-+{
-+ if ( policies != NULL ) {
-+ PORT_FreeArena(policies->arena, PR_FALSE);
-+ }
-+ return;
-+}
-+
-+
-+CERTUserNotice *
-+CERT_DecodeUserNotice(SECItem *noticeItem)
-+{
-+ PRArenaPool *arena = NULL;
-+ SECStatus rv;
-+ CERTUserNotice *userNotice;
-+ SECItem newNoticeItem;
-+
-+ /* make a new arena */
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+
-+ if ( !arena ) {
-+ goto loser;
-+ }
-+
-+ /* allocate the userNotice structure */
-+ userNotice = (CERTUserNotice *)PORT_ArenaZAlloc(arena,
-+ sizeof(CERTUserNotice));
-+
-+ if ( userNotice == NULL ) {
-+ goto loser;
-+ }
-+
-+ userNotice->arena = arena;
-+
-+ /* copy the DER into the arena, since Quick DER returns data that points
-+ into the DER input, which may get freed by the caller */
-+ rv = SECITEM_CopyItem(arena, &newNoticeItem, noticeItem);
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+
-+ /* decode the user notice */
-+ rv = SEC_QuickDERDecodeItem(arena, userNotice, CERT_UserNoticeTemplate,
-+ &newNoticeItem);
-+
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+
-+ if (userNotice->derNoticeReference.data != NULL) {
-+ /* sigh, the asn1 parser stripped the sequence encoding, re add it
-+ * before we decode.
-+ */
-+ SECItem tmpbuf;
-+ int newBytes;
-+
-+ newBytes = SEC_ASN1LengthLength(userNotice->derNoticeReference.len)+1;
-+ tmpbuf.len = newBytes + userNotice->derNoticeReference.len;
-+ tmpbuf.data = PORT_ArenaZAlloc(arena, tmpbuf.len);
-+ if (tmpbuf.data == NULL) {
-+ goto loser;
-+ }
-+ tmpbuf.data[0] = SEC_ASN1_SEQUENCE | SEC_ASN1_CONSTRUCTED;
-+ SEC_ASN1EncodeLength(&tmpbuf.data[1],userNotice->derNoticeReference.len);
-+ PORT_Memcpy(&tmpbuf.data[newBytes],userNotice->derNoticeReference.data,
-+ userNotice->derNoticeReference.len);
-+
-+ /* OK, no decode it */
-+ rv = SEC_QuickDERDecodeItem(arena, &userNotice->noticeReference,
-+ CERT_NoticeReferenceTemplate, &tmpbuf);
-+
-+ PORT_Free(tmpbuf.data); tmpbuf.data = NULL;
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+ }
-+
-+ return(userNotice);
-+
-+loser:
-+ if ( arena != NULL ) {
-+ PORT_FreeArena(arena, PR_FALSE);
-+ }
-+
-+ return(NULL);
-+}
-+
-+void
-+CERT_DestroyUserNotice(CERTUserNotice *userNotice)
-+{
-+ if ( userNotice != NULL ) {
-+ PORT_FreeArena(userNotice->arena, PR_FALSE);
-+ }
-+ return;
-+}
-+
-+static CERTPolicyStringCallback policyStringCB = NULL;
-+static void *policyStringCBArg = NULL;
-+
-+void
-+CERT_SetCAPolicyStringCallback(CERTPolicyStringCallback cb, void *cbarg)
-+{
-+ policyStringCB = cb;
-+ policyStringCBArg = cbarg;
-+ return;
-+}
-+
-+char *
-+stringFromUserNotice(SECItem *noticeItem)
-+{
-+ SECItem *org;
-+ unsigned int len, headerlen;
-+ char *stringbuf;
-+ CERTUserNotice *userNotice;
-+ char *policystr;
-+ char *retstr = NULL;
-+ SECItem *displayText;
-+ SECItem **noticeNumbers;
-+ unsigned int strnum;
-+
-+ /* decode the user notice */
-+ userNotice = CERT_DecodeUserNotice(noticeItem);
-+ if ( userNotice == NULL ) {
-+ return(NULL);
-+ }
-+
-+ org = &userNotice->noticeReference.organization;
-+ if ( (org->len != 0 ) && ( policyStringCB != NULL ) ) {
-+ /* has a noticeReference */
-+
-+ /* extract the org string */
-+ len = org->len;
-+ stringbuf = (char*)PORT_Alloc(len + 1);
-+ if ( stringbuf != NULL ) {
-+ PORT_Memcpy(stringbuf, org->data, len);
-+ stringbuf[len] = '\0';
-+
-+ noticeNumbers = userNotice->noticeReference.noticeNumbers;
-+ while ( *noticeNumbers != NULL ) {
-+ /* XXX - only one byte integers right now*/
-+ strnum = (*noticeNumbers)->data[0];
-+ policystr = (* policyStringCB)(stringbuf,
-+ strnum,
-+ policyStringCBArg);
-+ if ( policystr != NULL ) {
-+ if ( retstr != NULL ) {
-+ retstr = PR_sprintf_append(retstr, "\n%s", policystr);
-+ } else {
-+ retstr = PR_sprintf_append(retstr, "%s", policystr);
-+ }
-+
-+ PORT_Free(policystr);
-+ }
-+
-+ noticeNumbers++;
-+ }
-+
-+ PORT_Free(stringbuf);
-+ }
-+ }
-+
-+ if ( retstr == NULL ) {
-+ if ( userNotice->displayText.len != 0 ) {
-+ displayText = &userNotice->displayText;
-+
-+ if ( displayText->len > 2 ) {
-+ if ( displayText->data[0] == SEC_ASN1_VISIBLE_STRING ) {
-+ headerlen = 2;
-+ if ( displayText->data[1] & 0x80 ) {
-+ /* multibyte length */
-+ headerlen += ( displayText->data[1] & 0x7f );
-+ }
-+
-+ len = displayText->len - headerlen;
-+ retstr = (char*)PORT_Alloc(len + 1);
-+ if ( retstr != NULL ) {
-+ PORT_Memcpy(retstr, &displayText->data[headerlen],len);
-+ retstr[len] = '\0';
-+ }
-+ }
-+ }
-+ }
-+ }
-+
-+ CERT_DestroyUserNotice(userNotice);
-+
-+ return(retstr);
-+}
-+
-+char *
-+CERT_GetCertCommentString(CERTCertificate *cert)
-+{
-+ char *retstring = NULL;
-+ SECStatus rv;
-+ SECItem policyItem;
-+ CERTCertificatePolicies *policies = NULL;
-+ CERTPolicyInfo **policyInfos;
-+ CERTPolicyQualifier **policyQualifiers, *qualifier;
-+
-+ policyItem.data = NULL;
-+
-+ rv = CERT_FindCertExtension(cert, SEC_OID_X509_CERTIFICATE_POLICIES,
-+ &policyItem);
-+ if ( rv != SECSuccess ) {
-+ goto nopolicy;
-+ }
-+
-+ policies = CERT_DecodeCertificatePoliciesExtension(&policyItem);
-+ if ( policies == NULL ) {
-+ goto nopolicy;
-+ }
-+
-+ policyInfos = policies->policyInfos;
-+ /* search through policyInfos looking for the verisign policy */
-+ while (*policyInfos != NULL ) {
-+ if ( (*policyInfos)->oid == SEC_OID_VERISIGN_USER_NOTICES ) {
-+ policyQualifiers = (*policyInfos)->policyQualifiers;
-+ /* search through the policy qualifiers looking for user notice */
-+ while ( policyQualifiers != NULL && *policyQualifiers != NULL ) {
-+ qualifier = *policyQualifiers;
-+ if ( qualifier->oid == SEC_OID_PKIX_USER_NOTICE_QUALIFIER ) {
-+ retstring =
-+ stringFromUserNotice(&qualifier->qualifierValue);
-+ break;
-+ }
-+
-+ policyQualifiers++;
-+ }
-+ break;
-+ }
-+ policyInfos++;
-+ }
-+
-+nopolicy:
-+ if ( policyItem.data != NULL ) {
-+ PORT_Free(policyItem.data);
-+ }
-+
-+ if ( policies != NULL ) {
-+ CERT_DestroyCertificatePoliciesExtension(policies);
-+ }
-+
-+ if ( retstring == NULL ) {
-+ retstring = CERT_FindNSStringExtension(cert,
-+ SEC_OID_NS_CERT_EXT_COMMENT);
-+ }
-+
-+ if ( retstring != NULL ) {
-+ breakLines(retstring);
-+ }
-+
-+ return(retstring);
-+}
-+
-+
-+const SEC_ASN1Template CERT_OidSeqTemplate[] = {
-+ { SEC_ASN1_SEQUENCE_OF,
-+ offsetof(CERTOidSequence, oids),
-+ SEC_ObjectIDTemplate }
-+};
-+
-+CERTOidSequence *
-+CERT_DecodeOidSequence(SECItem *seqItem)
-+{
-+ PRArenaPool *arena = NULL;
-+ SECStatus rv;
-+ CERTOidSequence *oidSeq;
-+ SECItem newSeqItem;
-+
-+ /* make a new arena */
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+
-+ if ( !arena ) {
-+ goto loser;
-+ }
-+
-+ /* allocate the userNotice structure */
-+ oidSeq = (CERTOidSequence *)PORT_ArenaZAlloc(arena,
-+ sizeof(CERTOidSequence));
-+
-+ if ( oidSeq == NULL ) {
-+ goto loser;
-+ }
-+
-+ oidSeq->arena = arena;
-+
-+ /* copy the DER into the arena, since Quick DER returns data that points
-+ into the DER input, which may get freed by the caller */
-+ rv = SECITEM_CopyItem(arena, &newSeqItem, seqItem);
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+
-+ /* decode the user notice */
-+ rv = SEC_QuickDERDecodeItem(arena, oidSeq, CERT_OidSeqTemplate, &newSeqItem);
-+
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+
-+ return(oidSeq);
-+
-+loser:
-+ return(NULL);
-+}
-+
-+
-+void
-+CERT_DestroyOidSequence(CERTOidSequence *oidSeq)
-+{
-+ if ( oidSeq != NULL ) {
-+ PORT_FreeArena(oidSeq->arena, PR_FALSE);
-+ }
-+ return;
-+}
-+
-+PRBool
-+CERT_GovtApprovedBitSet(CERTCertificate *cert)
-+{
-+ SECStatus rv;
-+ SECItem extItem;
-+ CERTOidSequence *oidSeq = NULL;
-+ PRBool ret;
-+ SECItem **oids;
-+ SECItem *oid;
-+ SECOidTag oidTag;
-+
-+ extItem.data = NULL;
-+ rv = CERT_FindCertExtension(cert, SEC_OID_X509_EXT_KEY_USAGE, &extItem);
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+
-+ oidSeq = CERT_DecodeOidSequence(&extItem);
-+ if ( oidSeq == NULL ) {
-+ goto loser;
-+ }
-+
-+ oids = oidSeq->oids;
-+ while ( oids != NULL && *oids != NULL ) {
-+ oid = *oids;
-+
-+ oidTag = SECOID_FindOIDTag(oid);
-+
-+ if ( oidTag == SEC_OID_NS_KEY_USAGE_GOVT_APPROVED ) {
-+ goto success;
-+ }
-+
-+ oids++;
-+ }
-+
-+loser:
-+ ret = PR_FALSE;
-+ goto done;
-+success:
-+ ret = PR_TRUE;
-+done:
-+ if ( oidSeq != NULL ) {
-+ CERT_DestroyOidSequence(oidSeq);
-+ }
-+ if (extItem.data != NULL) {
-+ PORT_Free(extItem.data);
-+ }
-+ return(ret);
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/portreg.c 2004-12-13 13:06:46.758388736 +0100
-@@ -0,0 +1,317 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+/*
-+ * shexp.c: shell-like wildcard match routines
-+ *
-+ *
-+ * See shexp.h for public documentation.
-+ *
-+ */
-+
-+#include "seccomon.h"
-+#include "portreg.h"
-+
-+/* ----------------------------- shexp_valid ------------------------------ */
-+
-+
-+static int
-+_valid_subexp(const char *exp, char stop)
-+{
-+ register int x,y,t;
-+ int nsc,np,tld;
-+
-+ x=0;nsc=0;tld=0;
-+
-+ while(exp[x] && (exp[x] != stop)) {
-+ switch(exp[x]) {
-+ case '~':
-+ if(tld) return INVALID_SXP;
-+ else ++tld;
-+ case '*':
-+ case '?':
-+ case '^':
-+ case '$':
-+ ++nsc;
-+ break;
-+ case '[':
-+ ++nsc;
-+ if((!exp[++x]) || (exp[x] == ']'))
-+ return INVALID_SXP;
-+ for(++x;exp[x] && (exp[x] != ']');++x)
-+ if(exp[x] == '\\')
-+ if(!exp[++x])
-+ return INVALID_SXP;
-+ if(!exp[x])
-+ return INVALID_SXP;
-+ break;
-+ case '(':
-+ ++nsc;np = 0;
-+ while(1) {
-+ if(exp[++x] == ')')
-+ return INVALID_SXP;
-+ for(y=x;(exp[y]) && (exp[y] != '|') && (exp[y] != ')');++y)
-+ if(exp[y] == '\\')
-+ if(!exp[++y])
-+ return INVALID_SXP;
-+ if(!exp[y])
-+ return INVALID_SXP;
-+ if(exp[y] == '|')
-+ ++np;
-+ t = _valid_subexp(&exp[x],exp[y]);
-+ if(t == INVALID_SXP)
-+ return INVALID_SXP;
-+ x+=t;
-+ if(exp[x] == ')') {
-+ if(!np)
-+ return INVALID_SXP;
-+ break;
-+ }
-+ }
-+ break;
-+ case ')':
-+ case ']':
-+ return INVALID_SXP;
-+ case '\\':
-+ if(!exp[++x])
-+ return INVALID_SXP;
-+ default:
-+ break;
-+ }
-+ ++x;
-+ }
-+ if((!stop) && (!nsc))
-+ return NON_SXP;
-+ return ((exp[x] == stop) ? x : INVALID_SXP);
-+}
-+
-+int
-+PORT_RegExpValid(const char *exp)
-+{
-+ int x;
-+
-+ x = _valid_subexp(exp, '\0');
-+ return (x < 0 ? x : VALID_SXP);
-+}
-+
-+
-+/* ----------------------------- shexp_match ----------------------------- */
-+
-+
-+#define MATCH 0
-+#define NOMATCH 1
-+#define ABORTED -1
-+
-+static int _shexp_match(const char *str, const char *exp, PRBool case_insensitive);
-+
-+static int
-+_handle_union(const char *str, const char *exp, PRBool case_insensitive)
-+{
-+ char *e2 = (char *) PORT_Alloc(sizeof(char)*strlen(exp));
-+ register int t,p2,p1 = 1;
-+ int cp;
-+
-+ while(1) {
-+ for(cp=1;exp[cp] != ')';cp++)
-+ if(exp[cp] == '\\')
-+ ++cp;
-+ for(p2 = 0;(exp[p1] != '|') && (p1 != cp);p1++,p2++) {
-+ if(exp[p1] == '\\')
-+ e2[p2++] = exp[p1++];
-+ e2[p2] = exp[p1];
-+ }
-+ for (t=cp+1; ((e2[p2] = exp[t]) != 0); ++t,++p2) {}
-+ if(_shexp_match(str,e2, case_insensitive) == MATCH) {
-+ PORT_Free(e2);
-+ return MATCH;
-+ }
-+ if(p1 == cp) {
-+ PORT_Free(e2);
-+ return NOMATCH;
-+ }
-+ else ++p1;
-+ }
-+}
-+
-+
-+static int
-+_shexp_match(const char *str, const char *exp, PRBool case_insensitive)
-+{
-+ register int x,y;
-+ int ret,neg;
-+
-+ ret = 0;
-+ for(x=0,y=0;exp[y];++y,++x) {
-+ if((!str[x]) && (exp[y] != '(') && (exp[y] != '$') && (exp[y] != '*'))
-+ ret = ABORTED;
-+ else {
-+ switch(exp[y]) {
-+ case '$':
-+ if( (str[x]) )
-+ ret = NOMATCH;
-+ else
-+ --x; /* we don't want loop to increment x */
-+ break;
-+ case '*':
-+ while(exp[++y] == '*'){}
-+ if(!exp[y])
-+ return MATCH;
-+ while(str[x]) {
-+ switch(_shexp_match(&str[x++],&exp[y], case_insensitive)) {
-+ case NOMATCH:
-+ continue;
-+ case ABORTED:
-+ ret = ABORTED;
-+ break;
-+ default:
-+ return MATCH;
-+ }
-+ break;
-+ }
-+ if((exp[y] == '$') && (exp[y+1] == '\0') && (!str[x]))
-+ return MATCH;
-+ else
-+ ret = ABORTED;
-+ break;
-+ case '[':
-+ neg = ((exp[++y] == '^') && (exp[y+1] != ']'));
-+ if (neg)
-+ ++y;
-+
-+ if ((isalnum(exp[y])) && (exp[y+1] == '-') &&
-+ (isalnum(exp[y+2])) && (exp[y+3] == ']'))
-+ {
-+ int start = exp[y], end = exp[y+2];
-+
-+ /* no safeguards here */
-+ if(neg ^ ((str[x] < start) || (str[x] > end))) {
-+ ret = NOMATCH;
-+ break;
-+ }
-+ y+=3;
-+ }
-+ else {
-+ int matched;
-+
-+ for (matched=0;exp[y] != ']';y++)
-+ matched |= (str[x] == exp[y]);
-+ if (neg ^ (!matched))
-+ ret = NOMATCH;
-+ }
-+ break;
-+ case '(':
-+ return _handle_union(&str[x],&exp[y], case_insensitive);
-+ break;
-+ case '?':
-+ break;
-+ case '\\':
-+ ++y;
-+ default:
-+ if(case_insensitive)
-+ {
-+ if(toupper(str[x]) != toupper(exp[y]))
-+ ret = NOMATCH;
-+ }
-+ else
-+ {
-+ if(str[x] != exp[y])
-+ ret = NOMATCH;
-+ }
-+ break;
-+ }
-+ }
-+ if(ret)
-+ break;
-+ }
-+ return (ret ? ret : (str[x] ? NOMATCH : MATCH));
-+}
-+
-+static int
-+port_RegExpMatch(const char *str, const char *xp, PRBool case_insensitive) {
-+ register int x;
-+ char *exp = 0;
-+
-+ exp = PORT_Strdup(xp);
-+
-+ if(!exp)
-+ return 1;
-+
-+ for(x=strlen(exp)-1;x;--x) {
-+ if((exp[x] == '~') && (exp[x-1] != '\\')) {
-+ exp[x] = '\0';
-+ if(_shexp_match(str,&exp[++x], case_insensitive) == MATCH)
-+ goto punt;
-+ break;
-+ }
-+ }
-+ if(_shexp_match(str,exp, PR_FALSE) == MATCH) {
-+ PORT_Free(exp);
-+ return 0;
-+ }
-+
-+ punt:
-+ PORT_Free(exp);
-+ return 1;
-+}
-+
-+
-+/* ------------------------------ shexp_cmp ------------------------------- */
-+
-+int
-+PORT_RegExpSearch(const char *str, const char *exp)
-+{
-+ switch(PORT_RegExpValid(exp))
-+ {
-+ case INVALID_SXP:
-+ return -1;
-+ case NON_SXP:
-+ return (strcmp(exp,str) ? 1 : 0);
-+ default:
-+ return port_RegExpMatch(str, exp, PR_FALSE);
-+ }
-+}
-+
-+int
-+PORT_RegExpCaseSearch(const char *str, const char *exp)
-+{
-+ switch(PORT_RegExpValid(exp))
-+ {
-+ case INVALID_SXP:
-+ return -1;
-+ case NON_SXP:
-+ return (strcmp(exp,str) ? 1 : 0);
-+ default:
-+ return port_RegExpMatch(str, exp, PR_TRUE);
-+ }
-+}
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pqgutil.c 2004-12-13 13:06:46.759388584 +0100
-@@ -0,0 +1,267 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+#include "pqgutil.h"
-+#include "prerror.h"
-+#include "secitem.h"
-+
-+#define PQG_DEFAULT_CHUNKSIZE 2048 /* bytes */
-+
-+/**************************************************************************
-+ * Return a pointer to a new PQGParams struct that is a duplicate of *
-+ * the one passed as an argument. *
-+ * Return NULL on failure, or if NULL was passed in. *
-+ * *
-+ **************************************************************************/
-+
-+PQGParams *
-+PQG_DupParams(const PQGParams *src)
-+{
-+ PRArenaPool *arena;
-+ PQGParams *dest;
-+ SECStatus status;
-+
-+ if (src == NULL) {
-+ PORT_SetError(PR_INVALID_ARGUMENT_ERROR);
-+ return NULL;
-+ }
-+
-+ arena = PORT_NewArena(PQG_DEFAULT_CHUNKSIZE);
-+ if (arena == NULL)
-+ goto loser;
-+
-+ dest = (PQGParams*)PORT_ArenaZAlloc(arena, sizeof(PQGParams));
-+ if (dest == NULL)
-+ goto loser;
-+
-+ dest->arena = arena;
-+
-+ status = SECITEM_CopyItem(arena, &dest->prime, &src->prime);
-+ if (status != SECSuccess)
-+ goto loser;
-+
-+ status = SECITEM_CopyItem(arena, &dest->subPrime, &src->subPrime);
-+ if (status != SECSuccess)
-+ goto loser;
-+
-+ status = SECITEM_CopyItem(arena, &dest->base, &src->base);
-+ if (status != SECSuccess)
-+ goto loser;
-+
-+ return dest;
-+
-+loser:
-+ if (arena != NULL)
-+ PORT_FreeArena(arena, PR_FALSE);
-+ return NULL;
-+}
-+
-+/**************************************************************************
-+ * Return a pointer to a new PQGParams struct that is constructed from *
-+ * copies of the arguments passed in. *
-+ * Return NULL on failure. *
-+ **************************************************************************/
-+
-+PQGParams *
-+PQG_NewParams(const SECItem * prime, const SECItem * subPrime,
-+ const SECItem * base)
-+{
-+ PQGParams * dest;
-+ PQGParams src;
-+
-+ src.arena = NULL;
-+ src.prime = *prime;
-+ src.subPrime = *subPrime;
-+ src.base = *base;
-+ dest = PQG_DupParams(&src);
-+ return dest;
-+}
-+
-+/**************************************************************************
-+ * Fills in caller's "prime" SECItem with the prime value in params.
-+ * Contents can be freed by calling SECITEM_FreeItem(prime, PR_FALSE);
-+ **************************************************************************/
-+SECStatus
-+PQG_GetPrimeFromParams(const PQGParams *params, SECItem * prime)
-+{
-+ return SECITEM_CopyItem(NULL, prime, &params->prime);
-+}
-+
-+/**************************************************************************
-+ * Fills in caller's "subPrime" SECItem with the prime value in params.
-+ * Contents can be freed by calling SECITEM_FreeItem(subPrime, PR_FALSE);
-+ **************************************************************************/
-+SECStatus
-+PQG_GetSubPrimeFromParams(const PQGParams *params, SECItem * subPrime)
-+{
-+ return SECITEM_CopyItem(NULL, subPrime, &params->subPrime);
-+}
-+
-+/**************************************************************************
-+ * Fills in caller's "base" SECItem with the base value in params.
-+ * Contents can be freed by calling SECITEM_FreeItem(base, PR_FALSE);
-+ **************************************************************************/
-+SECStatus
-+PQG_GetBaseFromParams(const PQGParams *params, SECItem * base)
-+{
-+ return SECITEM_CopyItem(NULL, base, &params->base);
-+}
-+
-+/**************************************************************************
-+ * Free the PQGParams struct and the things it points to. *
-+ **************************************************************************/
-+void
-+PQG_DestroyParams(PQGParams *params)
-+{
-+ if (params == NULL)
-+ return;
-+ if (params->arena != NULL) {
-+ PORT_FreeArena(params->arena, PR_FALSE); /* don't zero it */
-+ } else {
-+ SECITEM_FreeItem(&params->prime, PR_FALSE); /* don't free prime */
-+ SECITEM_FreeItem(&params->subPrime, PR_FALSE); /* don't free subPrime */
-+ SECITEM_FreeItem(&params->base, PR_FALSE); /* don't free base */
-+ PORT_Free(params);
-+ }
-+}
-+
-+/**************************************************************************
-+ * Return a pointer to a new PQGVerify struct that is a duplicate of *
-+ * the one passed as an argument. *
-+ * Return NULL on failure, or if NULL was passed in. *
-+ **************************************************************************/
-+
-+PQGVerify *
-+PQG_DupVerify(const PQGVerify *src)
-+{
-+ PRArenaPool *arena;
-+ PQGVerify * dest;
-+ SECStatus status;
-+
-+ if (src == NULL) {
-+ PORT_SetError(PR_INVALID_ARGUMENT_ERROR);
-+ return NULL;
-+ }
-+
-+ arena = PORT_NewArena(PQG_DEFAULT_CHUNKSIZE);
-+ if (arena == NULL)
-+ goto loser;
-+
-+ dest = (PQGVerify*)PORT_ArenaZAlloc(arena, sizeof(PQGVerify));
-+ if (dest == NULL)
-+ goto loser;
-+
-+ dest->arena = arena;
-+ dest->counter = src->counter;
-+
-+ status = SECITEM_CopyItem(arena, &dest->seed, &src->seed);
-+ if (status != SECSuccess)
-+ goto loser;
-+
-+ status = SECITEM_CopyItem(arena, &dest->h, &src->h);
-+ if (status != SECSuccess)
-+ goto loser;
-+
-+ return dest;
-+
-+loser:
-+ if (arena != NULL)
-+ PORT_FreeArena(arena, PR_FALSE);
-+ return NULL;
-+}
-+
-+/**************************************************************************
-+ * Return a pointer to a new PQGVerify struct that is constructed from *
-+ * copies of the arguments passed in. *
-+ * Return NULL on failure. *
-+ **************************************************************************/
-+
-+PQGVerify *
-+PQG_NewVerify(unsigned int counter, const SECItem * seed, const SECItem * h)
-+{
-+ PQGVerify * dest;
-+ PQGVerify src;
-+
-+ src.arena = NULL;
-+ src.counter = counter;
-+ src.seed = *seed;
-+ src.h = *h;
-+ dest = PQG_DupVerify(&src);
-+ return dest;
-+}
-+
-+/**************************************************************************
-+ * Returns the "counter" value from the PQGVerify.
-+ **************************************************************************/
-+unsigned int
-+PQG_GetCounterFromVerify(const PQGVerify *verify)
-+{
-+ return verify->counter;
-+}
-+
-+/**************************************************************************
-+ * Fills in caller's "seed" SECItem with the seed value in verify.
-+ * Contents can be freed by calling SECITEM_FreeItem(seed, PR_FALSE);
-+ **************************************************************************/
-+SECStatus
-+PQG_GetSeedFromVerify(const PQGVerify *verify, SECItem * seed)
-+{
-+ return SECITEM_CopyItem(NULL, seed, &verify->seed);
-+}
-+
-+/**************************************************************************
-+ * Fills in caller's "h" SECItem with the h value in verify.
-+ * Contents can be freed by calling SECITEM_FreeItem(h, PR_FALSE);
-+ **************************************************************************/
-+SECStatus
-+PQG_GetHFromVerify(const PQGVerify *verify, SECItem * h)
-+{
-+ return SECITEM_CopyItem(NULL, h, &verify->h);
-+}
-+
-+/**************************************************************************
-+ * Free the PQGVerify struct and the things it points to. *
-+ **************************************************************************/
-+
-+void
-+PQG_DestroyVerify(PQGVerify *vfy)
-+{
-+ if (vfy == NULL)
-+ return;
-+ if (vfy->arena != NULL) {
-+ PORT_FreeArena(vfy->arena, PR_FALSE); /* don't zero it */
-+ } else {
-+ SECITEM_FreeItem(&vfy->seed, PR_FALSE); /* don't free seed */
-+ SECITEM_FreeItem(&vfy->h, PR_FALSE); /* don't free h */
-+ PORT_Free(vfy);
-+ }
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/pqgutil.h 2004-12-13 15:50:16.161132848 +0100
-@@ -0,0 +1,127 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+#ifndef _PQGUTIL_H_
-+#define _PQGUTIL_H_ 1
-+
-+#include "blapi.h"
-+
-+/**************************************************************************
-+ * Return a pointer to a new PQGParams struct that is a duplicate of *
-+ * the one passed as an argument. *
-+ * Return NULL on failure, or if NULL was passed in. *
-+ **************************************************************************/
-+extern PQGParams * PQG_DupParams(const PQGParams *src);
-+
-+
-+/**************************************************************************
-+ * Return a pointer to a new PQGParams struct that is constructed from *
-+ * copies of the arguments passed in. *
-+ * Return NULL on failure. *
-+ **************************************************************************/
-+extern PQGParams * PQG_NewParams(const SECItem * prime,
-+ const SECItem * subPrime,
-+ const SECItem * base);
-+
-+
-+/**************************************************************************
-+ * Fills in caller's "prime" SECItem with the prime value in params.
-+ * Contents can be freed by calling SECITEM_FreeItem(prime, PR_FALSE);
-+ **************************************************************************/
-+extern SECStatus PQG_GetPrimeFromParams(const PQGParams *params,
-+ SECItem * prime);
-+
-+
-+/**************************************************************************
-+ * Fills in caller's "subPrime" SECItem with the prime value in params.
-+ * Contents can be freed by calling SECITEM_FreeItem(subPrime, PR_FALSE);
-+ **************************************************************************/
-+extern SECStatus PQG_GetSubPrimeFromParams(const PQGParams *params,
-+ SECItem * subPrime);
-+
-+
-+/**************************************************************************
-+ * Fills in caller's "base" SECItem with the base value in params.
-+ * Contents can be freed by calling SECITEM_FreeItem(base, PR_FALSE);
-+ **************************************************************************/
-+extern SECStatus PQG_GetBaseFromParams(const PQGParams *params, SECItem *base);
-+
-+
-+/**************************************************************************
-+ * Free the PQGParams struct and the things it points to. *
-+ **************************************************************************/
-+extern void PQG_DestroyParams(PQGParams *params);
-+
-+
-+/**************************************************************************
-+ * Return a pointer to a new PQGVerify struct that is a duplicate of *
-+ * the one passed as an argument. *
-+ * Return NULL on failure, or if NULL was passed in. *
-+ **************************************************************************/
-+extern PQGVerify * PQG_DupVerify(const PQGVerify *src);
-+
-+
-+/**************************************************************************
-+ * Return a pointer to a new PQGVerify struct that is constructed from *
-+ * copies of the arguments passed in. *
-+ * Return NULL on failure. *
-+ **************************************************************************/
-+extern PQGVerify * PQG_NewVerify(unsigned int counter, const SECItem * seed,
-+ const SECItem * h);
-+
-+
-+/**************************************************************************
-+ * Returns "counter" value from the PQGVerify.
-+ **************************************************************************/
-+extern unsigned int PQG_GetCounterFromVerify(const PQGVerify *verify);
-+
-+/**************************************************************************
-+ * Fills in caller's "seed" SECItem with the seed value in verify.
-+ * Contents can be freed by calling SECITEM_FreeItem(seed, PR_FALSE);
-+ **************************************************************************/
-+extern SECStatus PQG_GetSeedFromVerify(const PQGVerify *verify, SECItem *seed);
-+
-+
-+/**************************************************************************
-+ * Fills in caller's "h" SECItem with the h value in verify.
-+ * Contents can be freed by calling SECITEM_FreeItem(h, PR_FALSE);
-+ **************************************************************************/
-+extern SECStatus PQG_GetHFromVerify(const PQGVerify *verify, SECItem * h);
-+
-+
-+/**************************************************************************
-+ * Free the PQGVerify struct and the things it points to. *
-+ **************************************************************************/
-+extern void PQG_DestroyVerify(PQGVerify *vfy);
-+
-+
-+#endif
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/quickder.c 2004-12-13 13:06:46.759388584 +0100
-@@ -0,0 +1,904 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+/*
-+ Optimized ASN.1 DER decoder
-+
-+*/
-+
-+#include "secerr.h"
-+#include "secasn1.h" /* for SEC_ASN1GetSubtemplate */
-+#include "secitem.h"
-+
-+/*
-+ * simple definite-length ASN.1 decoder
-+ */
-+
-+static unsigned char* definite_length_decoder(const unsigned char *buf,
-+ const unsigned int length,
-+ unsigned int *data_length,
-+ PRBool includeTag)
-+{
-+ unsigned char tag;
-+ unsigned int used_length= 0;
-+ unsigned int data_len;
-+
-+ if (used_length >= length)
-+ {
-+ return NULL;
-+ }
-+ tag = buf[used_length++];
-+
-+ /* blow out when we come to the end */
-+ if (tag == 0)
-+ {
-+ return NULL;
-+ }
-+
-+ if (used_length >= length)
-+ {
-+ return NULL;
-+ }
-+ data_len = buf[used_length++];
-+
-+ if (data_len&0x80)
-+ {
-+ int len_count = data_len & 0x7f;
-+
-+ data_len = 0;
-+
-+ while (len_count-- > 0)
-+ {
-+ if (used_length >= length)
-+ {
-+ return NULL;
-+ }
-+ data_len = (data_len << 8) | buf[used_length++];
-+ }
-+ }
-+
-+ if (data_len > (length-used_length) )
-+ {
-+ return NULL;
-+ }
-+ if (includeTag) data_len += used_length;
-+
-+ *data_length = data_len;
-+ return ((unsigned char*)buf + (includeTag ? 0 : used_length));
-+}
-+
-+static SECStatus GetItem(SECItem* src, SECItem* dest, PRBool includeTag)
-+{
-+ if ( (!src) || (!dest) || (!src->data) )
-+ {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+
-+ if (!src->len)
-+ {
-+ /* reaching the end of the buffer is not an error */
-+ dest->data = NULL;
-+ dest->len = 0;
-+ dest->type = siBuffer;
-+
-+ return SECSuccess;
-+ }
-+
-+ dest->type = siBuffer;
-+ dest->data = definite_length_decoder(src->data, src->len, &dest->len,
-+ includeTag);
-+ if (dest->data == NULL)
-+ {
-+ PORT_SetError(SEC_ERROR_BAD_DER);
-+ return SECFailure;
-+ }
-+ src->len -= (dest->data - src->data) + dest->len;
-+ src->data = dest->data + dest->len;
-+ return SECSuccess;
-+}
-+
-+/* check if the actual component's type matches the type in the template */
-+
-+static SECStatus MatchComponentType(const SEC_ASN1Template* templateEntry,
-+ SECItem* item, PRBool* match, void* dest)
-+{
-+ unsigned long kind = 0;
-+ unsigned char tag = 0;
-+
-+ if ( (!item) || (!templateEntry) || (!match) )
-+ {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+
-+ if (!item->len || !item->data)
-+ {
-+ *match = PR_FALSE;
-+ return SECSuccess;
-+ }
-+
-+ kind = templateEntry->kind;
-+ tag = *(unsigned char*) item->data;
-+
-+ if ( ( (kind & SEC_ASN1_INLINE) ||
-+ (kind & SEC_ASN1_POINTER) ) &&
-+ (0 == (kind & SEC_ASN1_TAG_MASK) ) )
-+ {
-+ /* These cases are special because the template's "kind" does not
-+ give us the information for the ASN.1 tag of the next item. It can
-+ only be figured out from the subtemplate. */
-+ if (!(kind & SEC_ASN1_OPTIONAL))
-+ {
-+ /* This is a required component. If there is a type mismatch,
-+ the decoding of the subtemplate will fail, so assume this
-+ is a match at the parent level and let it fail later. This
-+ avoids a redundant check in matching cases */
-+ *match = PR_TRUE;
-+ return SECSuccess;
-+ }
-+ else
-+ {
-+ /* optional component. This is the hard case. Now we need to
-+ look at the subtemplate to get the expected kind */
-+ const SEC_ASN1Template* subTemplate =
-+ SEC_ASN1GetSubtemplate (templateEntry, dest, PR_FALSE);
-+ if (!subTemplate)
-+ {
-+ PORT_SetError(SEC_ERROR_BAD_TEMPLATE);
-+ return SECFailure;
-+ }
-+ if ( (subTemplate->kind & SEC_ASN1_INLINE) ||
-+ (subTemplate->kind & SEC_ASN1_POINTER) )
-+ {
-+ /* disallow nesting SEC_ASN1_POINTER and SEC_ASN1_INLINE,
-+ otherwise you may get a false positive due to the recursion
-+ optimization above that always matches the type if the
-+ component is required . Nesting these should never be
-+ required, so that no one should miss this ability */
-+ PORT_SetError(SEC_ERROR_BAD_TEMPLATE);
-+ return SECFailure;
-+ }
-+ return MatchComponentType(subTemplate, item, match,
-+ (void*)((char*)dest + templateEntry->offset));
-+ }
-+ }
-+
-+ if (kind & SEC_ASN1_CHOICE)
-+ {
-+ /* we need to check the component's tag against each choice's tag */
-+ /* XXX it would be nice to save the index of the choice here so that
-+ DecodeChoice wouldn't have to do this again. However, due to the
-+ recursivity of MatchComponentType, we don't know if we are in a
-+ required or optional component, so we can't write anywhere in
-+ the destination within this function */
-+ unsigned choiceIndex = 1;
-+ const SEC_ASN1Template* choiceEntry;
-+ while ( (choiceEntry = &templateEntry[choiceIndex++]) && (choiceEntry->kind))
-+ {
-+ if ( (SECSuccess == MatchComponentType(choiceEntry, item, match,
-+ (void*)((char*)dest + choiceEntry->offset))) &&
-+ (PR_TRUE == *match) )
-+ {
-+ return SECSuccess;
-+ }
-+ }
-+ PORT_SetError(SEC_ERROR_BAD_DER);
-+ return SECFailure;
-+ }
-+
-+ if (kind & SEC_ASN1_ANY)
-+ {
-+ /* SEC_ASN1_ANY always matches */
-+ *match = PR_TRUE;
-+ return SECSuccess;
-+ }
-+
-+ if ( (0 == ((unsigned char)kind & SEC_ASN1_TAGNUM_MASK)) &&
-+ (!(kind & SEC_ASN1_EXPLICIT)) &&
-+ ( ( (kind & SEC_ASN1_SAVE) ||
-+ (kind & SEC_ASN1_SKIP) ) &&
-+ (!(kind & SEC_ASN1_OPTIONAL))
-+ )
-+ )
-+ {
-+ /* when saving or skipping a required component, a type is not
-+ required in the template. This is for legacy support of
-+ SEC_ASN1_SAVE and SEC_ASN1_SKIP only. XXX I would like to
-+ deprecate these usages and always require a type, as this
-+ disables type checking, and effectively forbids us from
-+ transparently ignoring optional components we aren't aware of */
-+ *match = PR_TRUE;
-+ return SECSuccess;
-+ }
-+
-+ /* first, do a class check */
-+ if ( (tag & SEC_ASN1_CLASS_MASK) !=
-+ (((unsigned char)kind) & SEC_ASN1_CLASS_MASK) )
-+ {
-+#ifdef DEBUG
-+ /* this is only to help debugging of the decoder in case of problems */
-+ unsigned char tagclass = tag & SEC_ASN1_CLASS_MASK;
-+ unsigned char expectedclass = (unsigned char)kind & SEC_ASN1_CLASS_MASK;
-+#endif
-+ *match = PR_FALSE;
-+ return SECSuccess;
-+ }
-+
-+ /* now do a tag check */
-+ if ( ((unsigned char)kind & SEC_ASN1_TAGNUM_MASK) !=
-+ (tag & SEC_ASN1_TAGNUM_MASK))
-+ {
-+ *match = PR_FALSE;
-+ return SECSuccess;
-+ }
-+
-+ /* now, do a method check. This depends on the class */
-+ switch (tag & SEC_ASN1_CLASS_MASK)
-+ {
-+ case SEC_ASN1_UNIVERSAL:
-+ /* For types of the SEC_ASN1_UNIVERSAL class, we know which must be
-+ primitive or constructed based on the tag */
-+ switch (tag & SEC_ASN1_TAGNUM_MASK)
-+ {
-+ case SEC_ASN1_SEQUENCE:
-+ case SEC_ASN1_SET:
-+ case SEC_ASN1_EMBEDDED_PDV:
-+ /* this component must be a constructed type */
-+ /* XXX add any new universal constructed type here */
-+ if (tag & SEC_ASN1_CONSTRUCTED)
-+ {
-+ *match = PR_TRUE;
-+ return SECSuccess;
-+ }
-+ break;
-+
-+ default:
-+ /* this component must be a primitive type */
-+ if (! (tag & SEC_ASN1_CONSTRUCTED))
-+ {
-+ *match = PR_TRUE;
-+ return SECSuccess;
-+ }
-+ break;
-+ }
-+ break;
-+
-+ default:
-+ /* for all other classes, we check the method based on the template */
-+ if ( (unsigned char)(kind & SEC_ASN1_METHOD_MASK) ==
-+ (tag & SEC_ASN1_METHOD_MASK) )
-+ {
-+ *match = PR_TRUE;
-+ return SECSuccess;
-+ }
-+ /* method does not match between template and component */
-+ break;
-+ }
-+
-+ *match = PR_FALSE;
-+ return SECSuccess;
-+}
-+
-+#ifdef DEBUG
-+
-+static SECStatus CheckSequenceTemplate(const SEC_ASN1Template* sequenceTemplate)
-+{
-+ SECStatus rv = SECSuccess;
-+ const SEC_ASN1Template* sequenceEntry = NULL;
-+ unsigned long seqIndex = 0;
-+ unsigned long lastEntryIndex = 0;
-+ unsigned long ambiguityIndex = 0;
-+ PRBool foundAmbiguity = PR_FALSE;
-+
-+ do
-+ {
-+ sequenceEntry = &sequenceTemplate[seqIndex++];
-+ if (sequenceEntry->kind)
-+ {
-+ /* ensure that we don't have an optional component of SEC_ASN1_ANY
-+ in the middle of the sequence, since we could not handle it */
-+ /* XXX this function needs to dig into the subtemplates to find
-+ the next tag */
-+ if ( (PR_FALSE == foundAmbiguity) &&
-+ (sequenceEntry->kind & SEC_ASN1_OPTIONAL) &&
-+ (sequenceEntry->kind & SEC_ASN1_ANY) )
-+ {
-+ foundAmbiguity = PR_TRUE;
-+ ambiguityIndex = seqIndex - 1;
-+ }
-+ }
-+ } while (sequenceEntry->kind);
-+
-+ lastEntryIndex = seqIndex - 2;
-+
-+ if (PR_FALSE != foundAmbiguity)
-+ {
-+ if (ambiguityIndex < lastEntryIndex)
-+ {
-+ /* ambiguity can only be tolerated on the last entry */
-+ PORT_SetError(SEC_ERROR_BAD_TEMPLATE);
-+ rv = SECFailure;
-+ }
-+ }
-+
-+ /* XXX also enforce ASN.1 requirement that tags be
-+ distinct for consecutive optional components */
-+
-+ return rv;
-+}
-+
-+#endif
-+
-+static SECStatus DecodeItem(void* dest,
-+ const SEC_ASN1Template* templateEntry,
-+ SECItem* src, PRArenaPool* arena, PRBool checkTag);
-+
-+static SECStatus DecodeSequence(void* dest,
-+ const SEC_ASN1Template* templateEntry,
-+ SECItem* src, PRArenaPool* arena)
-+{
-+ SECStatus rv = SECSuccess;
-+ SECItem source;
-+ SECItem sequence;
-+ const SEC_ASN1Template* sequenceTemplate = &(templateEntry[1]);
-+ const SEC_ASN1Template* sequenceEntry = NULL;
-+ unsigned long seqindex = 0;
-+
-+#ifdef DEBUG
-+ /* for a sequence, we need to validate the template. */
-+ rv = CheckSequenceTemplate(sequenceTemplate);
-+#endif
-+
-+ source = *src;
-+
-+ /* get the sequence */
-+ if (SECSuccess == rv)
-+ {
-+ rv = GetItem(&source, &sequence, PR_FALSE);
-+ }
-+
-+ /* process it */
-+ if (SECSuccess == rv)
-+ do
-+ {
-+ sequenceEntry = &sequenceTemplate[seqindex++];
-+ if ( (sequenceEntry && sequenceEntry->kind) &&
-+ (sequenceEntry->kind != SEC_ASN1_SKIP_REST) )
-+ {
-+ rv = DecodeItem(dest, sequenceEntry, &sequence, arena, PR_TRUE);
-+ }
-+ } while ( (SECSuccess == rv) &&
-+ (sequenceEntry->kind &&
-+ sequenceEntry->kind != SEC_ASN1_SKIP_REST) );
-+ /* we should have consumed all the bytes in the sequence by now
-+ unless the caller doesn't care about the rest of the sequence */
-+ if (SECSuccess == rv && sequence.len &&
-+ sequenceEntry && sequenceEntry->kind != SEC_ASN1_SKIP_REST)
-+ {
-+ /* it isn't 100% clear whether this is a bad DER or a bad template.
-+ The problem is that logically, they don't match - there is extra
-+ data in the DER that the template doesn't know about */
-+ PORT_SetError(SEC_ERROR_BAD_DER);
-+ rv = SECFailure;
-+ }
-+
-+ return rv;
-+}
-+
-+static SECStatus DecodeInline(void* dest,
-+ const SEC_ASN1Template* templateEntry,
-+ SECItem* src, PRArenaPool* arena, PRBool checkTag)
-+{
-+ const SEC_ASN1Template* inlineTemplate =
-+ SEC_ASN1GetSubtemplate (templateEntry, dest, PR_FALSE);
-+ return DecodeItem((void*)((char*)dest + templateEntry->offset),
-+ inlineTemplate, src, arena, checkTag);
-+}
-+
-+static SECStatus DecodePointer(void* dest,
-+ const SEC_ASN1Template* templateEntry,
-+ SECItem* src, PRArenaPool* arena, PRBool checkTag)
-+{
-+ const SEC_ASN1Template* ptrTemplate =
-+ SEC_ASN1GetSubtemplate (templateEntry, dest, PR_FALSE);
-+ void* subdata = PORT_ArenaZAlloc(arena, ptrTemplate->size);
-+ *(void**)((char*)dest + templateEntry->offset) = subdata;
-+ if (subdata)
-+ {
-+ return DecodeItem(subdata, ptrTemplate, src, arena, checkTag);
-+ }
-+ else
-+ {
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ return SECFailure;
-+ }
-+}
-+
-+static SECStatus DecodeImplicit(void* dest,
-+ const SEC_ASN1Template* templateEntry,
-+ SECItem* src, PRArenaPool* arena)
-+{
-+ if (templateEntry->kind & SEC_ASN1_POINTER)
-+ {
-+ return DecodePointer((void*)((char*)dest ),
-+ templateEntry, src, arena, PR_FALSE);
-+ }
-+ else
-+ {
-+ return DecodeInline((void*)((char*)dest ),
-+ templateEntry, src, arena, PR_FALSE);
-+ }
-+}
-+
-+static SECStatus DecodeChoice(void* dest,
-+ const SEC_ASN1Template* templateEntry,
-+ SECItem* src, PRArenaPool* arena)
-+{
-+ SECStatus rv = SECSuccess;
-+ SECItem choice;
-+ const SEC_ASN1Template* choiceTemplate = &(templateEntry[1]);
-+ const SEC_ASN1Template* choiceEntry = NULL;
-+ unsigned long choiceindex = 0;
-+
-+ /* XXX for a choice component, we should validate the template to make
-+ sure the tags are distinct, in debug builds. This hasn't been
-+ implemented yet */
-+ /* rv = CheckChoiceTemplate(sequenceTemplate); */
-+
-+ /* process it */
-+ do
-+ {
-+ choice = *src;
-+ choiceEntry = &choiceTemplate[choiceindex++];
-+ if (choiceEntry->kind)
-+ {
-+ rv = DecodeItem(dest, choiceEntry, &choice, arena, PR_TRUE);
-+ }
-+ } while ( (SECFailure == rv) && (choiceEntry->kind));
-+
-+ if (SECFailure == rv)
-+ {
-+ /* the component didn't match any of the choices */
-+ PORT_SetError(SEC_ERROR_BAD_DER);
-+ }
-+ else
-+ {
-+ /* set the type in the union here */
-+ int *which = (int *)((char *)dest + templateEntry->offset);
-+ *which = (int)choiceEntry->size;
-+ }
-+
-+ /* we should have consumed all the bytes by now */
-+ /* fail if we have not */
-+ if (SECSuccess == rv && choice.len)
-+ {
-+ /* there is extra data that isn't listed in the template */
-+ PORT_SetError(SEC_ERROR_BAD_DER);
-+ rv = SECFailure;
-+ }
-+ return rv;
-+}
-+
-+static SECStatus DecodeGroup(void* dest,
-+ const SEC_ASN1Template* templateEntry,
-+ SECItem* src, PRArenaPool* arena)
-+{
-+ SECStatus rv = SECSuccess;
-+ SECItem source;
-+ SECItem group;
-+ PRUint32 totalEntries = 0;
-+ PRUint32 entryIndex = 0;
-+ void** entries = NULL;
-+
-+ const SEC_ASN1Template* subTemplate =
-+ SEC_ASN1GetSubtemplate (templateEntry, dest, PR_FALSE);
-+
-+ source = *src;
-+
-+ /* get the group */
-+ if (SECSuccess == rv)
-+ {
-+ rv = GetItem(&source, &group, PR_FALSE);
-+ }
-+
-+ /* XXX we should check the subtemplate in debug builds */
-+ if (SECSuccess == rv)
-+ {
-+ /* first, count the number of entries. Benchmarking showed that this
-+ counting pass is more efficient than trying to allocate entries as
-+ we read the DER, even if allocating many entries at a time
-+ */
-+ SECItem counter = group;
-+ do
-+ {
-+ SECItem anitem;
-+ rv = GetItem(&counter, &anitem, PR_TRUE);
-+ if (SECSuccess == rv && (anitem.len) )
-+ {
-+ totalEntries++;
-+ }
-+ } while ( (SECSuccess == rv) && (counter.len) );
-+
-+ if (SECSuccess == rv)
-+ {
-+ /* allocate room for pointer array and entries */
-+ /* we want to allocate the array even if there is 0 entry */
-+ entries = (void**)PORT_ArenaZAlloc(arena, sizeof(void*)*
-+ (totalEntries + 1 ) + /* the extra one is for NULL termination */
-+ subTemplate->size*totalEntries);
-+
-+ if (entries)
-+ {
-+ entries[totalEntries] = NULL; /* terminate the array */
-+ }
-+ else
-+ {
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ rv = SECFailure;
-+ }
-+ if (SECSuccess == rv)
-+ {
-+ void* entriesData = (unsigned char*)entries + (unsigned long)(sizeof(void*)*(totalEntries + 1 ));
-+ /* and fix the pointers in the array */
-+ PRUint32 entriesIndex = 0;
-+ for (entriesIndex = 0;entriesIndex<totalEntries;entriesIndex++)
-+ {
-+ entries[entriesIndex] =
-+ (char*)entriesData + (subTemplate->size*entriesIndex);
-+ }
-+ }
-+ }
-+ }
-+
-+ if (SECSuccess == rv && totalEntries)
-+ do
-+ {
-+ if (!(entryIndex<totalEntries))
-+ {
-+ rv = SECFailure;
-+ break;
-+ }
-+ rv = DecodeItem(entries[entryIndex++], subTemplate, &group, arena, PR_TRUE);
-+ } while ( (SECSuccess == rv) && (group.len) );
-+ /* we should be at the end of the set by now */
-+ /* save the entries where requested */
-+ memcpy(((char*)dest + templateEntry->offset), &entries, sizeof(void**));
-+
-+ return rv;
-+}
-+
-+static SECStatus DecodeExplicit(void* dest,
-+ const SEC_ASN1Template* templateEntry,
-+ SECItem* src, PRArenaPool* arena)
-+{
-+ SECStatus rv = SECSuccess;
-+ SECItem subItem;
-+ SECItem constructed = *src;
-+
-+ rv = GetItem(&constructed, &subItem, PR_FALSE);
-+
-+ if (SECSuccess == rv)
-+ {
-+ if (templateEntry->kind & SEC_ASN1_POINTER)
-+ {
-+ rv = DecodePointer(dest, templateEntry, &subItem, arena, PR_TRUE);
-+ }
-+ else
-+ {
-+ rv = DecodeInline(dest, templateEntry, &subItem, arena, PR_TRUE);
-+ }
-+ }
-+
-+ return rv;
-+}
-+
-+/* new decoder implementation. This is a recursive function */
-+
-+static SECStatus DecodeItem(void* dest,
-+ const SEC_ASN1Template* templateEntry,
-+ SECItem* src, PRArenaPool* arena, PRBool checkTag)
-+{
-+ SECStatus rv = SECSuccess;
-+ SECItem temp;
-+ SECItem mark;
-+ PRBool pop = PR_FALSE;
-+ PRBool decode = PR_TRUE;
-+ PRBool save = PR_FALSE;
-+ unsigned long kind;
-+ PRBool match = PR_TRUE;
-+ PRBool optional = PR_FALSE;
-+
-+ PR_ASSERT(src && dest && templateEntry && arena);
-+#if 0
-+ if (!src || !dest || !templateEntry || !arena)
-+ {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ rv = SECFailure;
-+ }
-+#endif
-+
-+ if (SECSuccess == rv)
-+ {
-+ /* do the template validation */
-+ kind = templateEntry->kind;
-+ optional = (0 != (kind & SEC_ASN1_OPTIONAL));
-+ if (!kind)
-+ {
-+ PORT_SetError(SEC_ERROR_BAD_TEMPLATE);
-+ rv = SECFailure;
-+ }
-+ }
-+
-+ if (SECSuccess == rv)
-+ {
-+#ifdef DEBUG
-+ if (kind & SEC_ASN1_DEBUG_BREAK)
-+ {
-+ /* when debugging the decoder or a template that fails to
-+ decode, put SEC_ASN1_DEBUG in the component that gives you
-+ trouble. The decoder will then get to this block and assert.
-+ If you want to debug the rest of the code, you can set a
-+ breakpoint and set dontassert to PR_TRUE, which will let
-+ you skip over the assert and continue the debugging session
-+ past it. */
-+ PRBool dontassert = PR_FALSE;
-+ PR_ASSERT(dontassert); /* set bkpoint here & set dontassert*/
-+ }
-+#endif
-+
-+ if ((kind & SEC_ASN1_SKIP) ||
-+ (kind & SEC_ASN1_SAVE))
-+ {
-+ /* if skipping or saving this component, don't decode it */
-+ decode = PR_FALSE;
-+ }
-+
-+ if (kind & (SEC_ASN1_SAVE | SEC_ASN1_OPTIONAL))
-+ {
-+ /* if saving this component, or if it is optional, we may not want to
-+ move past it, so save the position in case we have to rewind */
-+ mark = *src;
-+ if (kind & SEC_ASN1_SAVE)
-+ {
-+ save = PR_TRUE;
-+ if (0 == (kind & SEC_ASN1_SKIP))
-+ {
-+ /* we will for sure have to rewind when saving this
-+ component and not skipping it. This is true for all
-+ legacy uses of SEC_ASN1_SAVE where the following entry
-+ in the template would causes the same component to be
-+ processed again */
-+ pop = PR_TRUE;
-+ }
-+ }
-+ }
-+
-+ rv = GetItem(src, &temp, PR_TRUE);
-+ }
-+
-+ if (SECSuccess == rv)
-+ {
-+ /* now check if the component matches what we expect in the template */
-+
-+ if (PR_TRUE == checkTag)
-+
-+ {
-+ rv = MatchComponentType(templateEntry, &temp, &match, dest);
-+ }
-+
-+ if ( (SECSuccess == rv) && (PR_TRUE != match) )
-+ {
-+ if (kind & SEC_ASN1_OPTIONAL)
-+ {
-+
-+ /* the optional component is missing. This is not fatal. */
-+ /* Rewind, don't decode, and don't save */
-+ pop = PR_TRUE;
-+ decode = PR_FALSE;
-+ save = PR_FALSE;
-+ }
-+ else
-+ {
-+ /* a required component is missing. abort */
-+ PORT_SetError(SEC_ERROR_BAD_DER);
-+ rv = SECFailure;
-+ }
-+ }
-+ }
-+
-+ if ((SECSuccess == rv) && (PR_TRUE == decode))
-+ {
-+ /* the order of processing here is is the tricky part */
-+ /* we start with our special cases */
-+ /* first, check the component class */
-+ if (kind & SEC_ASN1_INLINE)
-+ {
-+ /* decode inline template */
-+ rv = DecodeInline(dest, templateEntry, &temp , arena, PR_TRUE);
-+ }
-+
-+ else
-+ if (kind & SEC_ASN1_EXPLICIT)
-+ {
-+ rv = DecodeExplicit(dest, templateEntry, &temp, arena);
-+ }
-+ else
-+ if ( (SEC_ASN1_UNIVERSAL != (kind & SEC_ASN1_CLASS_MASK)) &&
-+
-+ (!(kind & SEC_ASN1_EXPLICIT)))
-+ {
-+
-+ /* decode implicitly tagged components */
-+ rv = DecodeImplicit(dest, templateEntry, &temp , arena);
-+ }
-+ else
-+ if (kind & SEC_ASN1_POINTER)
-+ {
-+ rv = DecodePointer(dest, templateEntry, &temp, arena, PR_TRUE);
-+ }
-+ else
-+ if (kind & SEC_ASN1_CHOICE)
-+ {
-+ rv = DecodeChoice(dest, templateEntry, &temp, arena);
-+ }
-+ else
-+ if (kind & SEC_ASN1_ANY)
-+ {
-+ /* catch-all ANY type, don't decode */
-+ save = PR_TRUE;
-+ if (kind & SEC_ASN1_INNER)
-+ {
-+ /* skip the tag and length */
-+ SECItem newtemp = temp;
-+ rv = GetItem(&newtemp, &temp, PR_FALSE);
-+ }
-+ }
-+ else
-+ if (kind & SEC_ASN1_GROUP)
-+ {
-+ if ( (SEC_ASN1_SEQUENCE == (kind & SEC_ASN1_TAGNUM_MASK)) ||
-+ (SEC_ASN1_SET == (kind & SEC_ASN1_TAGNUM_MASK)) )
-+ {
-+ rv = DecodeGroup(dest, templateEntry, &temp , arena);
-+ }
-+ else
-+ {
-+ /* a group can only be a SET OF or SEQUENCE OF */
-+ PORT_SetError(SEC_ERROR_BAD_TEMPLATE);
-+ rv = SECFailure;
-+ }
-+ }
-+ else
-+ if (SEC_ASN1_SEQUENCE == (kind & SEC_ASN1_TAGNUM_MASK))
-+ {
-+ /* plain SEQUENCE */
-+ rv = DecodeSequence(dest, templateEntry, &temp , arena);
-+ }
-+ else
-+ {
-+ /* handle all other types as "save" */
-+ /* we should only get here for primitive universal types */
-+ SECItem newtemp = temp;
-+ rv = GetItem(&newtemp, &temp, PR_FALSE);
-+ save = PR_TRUE;
-+ if ((SECSuccess == rv) && SEC_ASN1_UNIVERSAL == (kind & SEC_ASN1_CLASS_MASK))
-+ switch (kind & SEC_ASN1_TAGNUM_MASK)
-+ {
-+ /* special cases of primitive types */
-+ case SEC_ASN1_INTEGER:
-+ {
-+ /* remove leading zeroes if the caller requested siUnsignedInteger
-+ This is to allow RSA key operations to work */
-+ SECItem* destItem = (SECItem*) ((char*)dest + templateEntry->offset);
-+ if (destItem && (siUnsignedInteger == destItem->type))
-+ {
-+ while (temp.len > 1 && temp.data[0] == 0)
-+ { /* leading 0 */
-+ temp.data++;
-+ temp.len--;
-+ }
-+ }
-+ break;
-+ }
-+
-+ case SEC_ASN1_BIT_STRING:
-+ {
-+ /* change the length in the SECItem to be the number of bits */
-+ if (temp.len && temp.data)
-+ {
-+ temp.len = (temp.len-1)*8 - ((*(unsigned char*)temp.data) & 0x7);
-+ temp.data = (unsigned char*)(temp.data+1);
-+ }
-+ break;
-+ }
-+
-+ default:
-+ {
-+ break;
-+ }
-+ }
-+ }
-+ }
-+
-+ if ((SECSuccess == rv) && (PR_TRUE == save))
-+ {
-+ SECItem* destItem = (SECItem*) ((char*)dest + templateEntry->offset);
-+ if (destItem)
-+ {
-+ *(destItem) = temp;
-+ }
-+ else
-+ {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ rv = SECFailure;
-+ }
-+ }
-+
-+ if (PR_TRUE == pop)
-+ {
-+ /* we don't want to move ahead, so restore the position */
-+ *src = mark;
-+ }
-+ return rv;
-+}
-+
-+/* the function below is the public one */
-+
-+SECStatus SEC_QuickDERDecodeItem(PRArenaPool* arena, void* dest,
-+ const SEC_ASN1Template* templateEntry,
-+ const SECItem* src)
-+{
-+ SECStatus rv = SECSuccess;
-+ SECItem newsrc;
-+
-+ if (!arena || !templateEntry || !src)
-+ {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ rv = SECFailure;
-+ }
-+
-+ if (SECSuccess == rv)
-+ {
-+ newsrc = *src;
-+ rv = DecodeItem(dest, templateEntry, &newsrc, arena, PR_TRUE);
-+ if (SECSuccess == rv && newsrc.len)
-+ {
-+ rv = SECFailure;
-+ PORT_SetError(SEC_ERROR_EXTRA_INPUT);
-+ }
-+ }
-+
-+ return rv;
-+}
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/secalgid.c 2004-12-13 13:06:46.760388432 +0100
-@@ -0,0 +1,179 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#include "secoid.h"
-+#include "secder.h" /* XXX remove this when remove the DERTemplate */
-+#include "secasn1.h"
-+#include "secitem.h"
-+#include "secerr.h"
-+
-+/* XXX Old template; want to expunge it eventually. */
-+DERTemplate SECAlgorithmIDTemplate[] = {
-+ { DER_SEQUENCE,
-+ 0, NULL, sizeof(SECAlgorithmID) },
-+ { DER_OBJECT_ID,
-+ offsetof(SECAlgorithmID,algorithm), },
-+ { DER_OPTIONAL | DER_ANY,
-+ offsetof(SECAlgorithmID,parameters), },
-+ { 0, }
-+};
-+
-+const SEC_ASN1Template SECOID_AlgorithmIDTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(SECAlgorithmID) },
-+ { SEC_ASN1_OBJECT_ID,
-+ offsetof(SECAlgorithmID,algorithm), },
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_ANY,
-+ offsetof(SECAlgorithmID,parameters), },
-+ { 0, }
-+};
-+
-+SECOidTag
-+SECOID_GetAlgorithmTag(SECAlgorithmID *id)
-+{
-+ if (id == NULL || id->algorithm.data == NULL)
-+ return SEC_OID_UNKNOWN;
-+
-+ return SECOID_FindOIDTag (&(id->algorithm));
-+}
-+
-+SECStatus
-+SECOID_SetAlgorithmID(PRArenaPool *arena, SECAlgorithmID *id, SECOidTag which,
-+ SECItem *params)
-+{
-+ SECOidData *oiddata;
-+ PRBool add_null_param;
-+
-+ oiddata = SECOID_FindOIDByTag(which);
-+ if ( !oiddata ) {
-+ PORT_SetError(SEC_ERROR_INVALID_ALGORITHM);
-+ return SECFailure;
-+ }
-+
-+ if (SECITEM_CopyItem(arena, &id->algorithm, &oiddata->oid))
-+ return SECFailure;
-+
-+ switch (which) {
-+ case SEC_OID_MD2:
-+ case SEC_OID_MD4:
-+ case SEC_OID_MD5:
-+ case SEC_OID_SHA1:
-+ case SEC_OID_SHA256:
-+ case SEC_OID_SHA384:
-+ case SEC_OID_SHA512:
-+ case SEC_OID_PKCS1_RSA_ENCRYPTION:
-+ case SEC_OID_PKCS1_MD2_WITH_RSA_ENCRYPTION:
-+ case SEC_OID_PKCS1_MD4_WITH_RSA_ENCRYPTION:
-+ case SEC_OID_PKCS1_MD5_WITH_RSA_ENCRYPTION:
-+ case SEC_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION:
-+ case SEC_OID_PKCS1_SHA256_WITH_RSA_ENCRYPTION:
-+ case SEC_OID_PKCS1_SHA384_WITH_RSA_ENCRYPTION:
-+ case SEC_OID_PKCS1_SHA512_WITH_RSA_ENCRYPTION:
-+ add_null_param = PR_TRUE;
-+ break;
-+ default:
-+ add_null_param = PR_FALSE;
-+ break;
-+ }
-+
-+ if (params) {
-+ /*
-+ * I am specifically *not* enforcing the following assertion
-+ * (by following it up with an error and a return of failure)
-+ * because I do not want to introduce any change in the current
-+ * behavior. But I do want for us to notice if the following is
-+ * ever true, because I do not think it should be so and probably
-+ * signifies an error/bug somewhere.
-+ */
-+ PORT_Assert(!add_null_param || (params->len == 2
-+ && params->data[0] == SEC_ASN1_NULL
-+ && params->data[1] == 0));
-+ if (SECITEM_CopyItem(arena, &id->parameters, params)) {
-+ return SECFailure;
-+ }
-+ } else {
-+ /*
-+ * Again, this is not considered an error. But if we assume
-+ * that nobody tries to set the parameters field themselves
-+ * (but always uses this routine to do that), then we should
-+ * not hit the following assertion. Unless they forgot to zero
-+ * the structure, which could also be a bad (and wrong) thing.
-+ */
-+ PORT_Assert(id->parameters.data == NULL);
-+
-+ if (add_null_param) {
-+ (void) SECITEM_AllocItem(arena, &id->parameters, 2);
-+ if (id->parameters.data == NULL) {
-+ return SECFailure;
-+ }
-+ id->parameters.data[0] = SEC_ASN1_NULL;
-+ id->parameters.data[1] = 0;
-+ }
-+ }
-+
-+ return SECSuccess;
-+}
-+
-+SECStatus
-+SECOID_CopyAlgorithmID(PRArenaPool *arena, SECAlgorithmID *to, SECAlgorithmID *from)
-+{
-+ SECStatus rv;
-+
-+ rv = SECITEM_CopyItem(arena, &to->algorithm, &from->algorithm);
-+ if (rv) return rv;
-+ rv = SECITEM_CopyItem(arena, &to->parameters, &from->parameters);
-+ return rv;
-+}
-+
-+void SECOID_DestroyAlgorithmID(SECAlgorithmID *algid, PRBool freeit)
-+{
-+ SECITEM_FreeItem(&algid->parameters, PR_FALSE);
-+ SECITEM_FreeItem(&algid->algorithm, PR_FALSE);
-+ if(freeit == PR_TRUE)
-+ PORT_Free(algid);
-+}
-+
-+SECComparison
-+SECOID_CompareAlgorithmID(SECAlgorithmID *a, SECAlgorithmID *b)
-+{
-+ SECComparison rv;
-+
-+ rv = SECITEM_CompareItem(&a->algorithm, &b->algorithm);
-+ if (rv) return rv;
-+ rv = SECITEM_CompareItem(&a->parameters, &b->parameters);
-+ return rv;
-+}
-+
-+/* This functions simply returns the address of the above-declared template. */
-+SEC_ASN1_CHOOSER_IMPLEMENT(SECOID_AlgorithmIDTemplate)
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/secasn1d.c 2004-12-13 13:06:46.762388128 +0100
-@@ -0,0 +1,3297 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+/*
-+ * Support for DEcoding ASN.1 data based on BER/DER (Basic/Distinguished
-+ * Encoding Rules).
-+ *
-+ * $Id$
-+ */
-+
-+/* #define DEBUG_ASN1D_STATES 1 */
-+
-+#ifdef DEBUG_ASN1D_STATES
-+#include <stdio.h>
-+#define PR_Assert sec_asn1d_Assert
-+#endif
-+
-+#include "secasn1.h"
-+#include "secerr.h"
-+
-+typedef enum {
-+ beforeIdentifier,
-+ duringIdentifier,
-+ afterIdentifier,
-+ beforeLength,
-+ duringLength,
-+ afterLength,
-+ beforeBitString,
-+ duringBitString,
-+ duringConstructedString,
-+ duringGroup,
-+ duringLeaf,
-+ duringSaveEncoding,
-+ duringSequence,
-+ afterConstructedString,
-+ afterGroup,
-+ afterExplicit,
-+ afterImplicit,
-+ afterInline,
-+ afterPointer,
-+ afterSaveEncoding,
-+ beforeEndOfContents,
-+ duringEndOfContents,
-+ afterEndOfContents,
-+ beforeChoice,
-+ duringChoice,
-+ afterChoice,
-+ notInUse
-+} sec_asn1d_parse_place;
-+
-+#ifdef DEBUG_ASN1D_STATES
-+static const char * const place_names[] = {
-+ "beforeIdentifier",
-+ "duringIdentifier",
-+ "afterIdentifier",
-+ "beforeLength",
-+ "duringLength",
-+ "afterLength",
-+ "beforeBitString",
-+ "duringBitString",
-+ "duringConstructedString",
-+ "duringGroup",
-+ "duringLeaf",
-+ "duringSaveEncoding",
-+ "duringSequence",
-+ "afterConstructedString",
-+ "afterGroup",
-+ "afterExplicit",
-+ "afterImplicit",
-+ "afterInline",
-+ "afterPointer",
-+ "afterSaveEncoding",
-+ "beforeEndOfContents",
-+ "duringEndOfContents",
-+ "afterEndOfContents",
-+ "beforeChoice",
-+ "duringChoice",
-+ "afterChoice",
-+ "notInUse"
-+};
-+
-+static const char * const class_names[] = {
-+ "UNIVERSAL",
-+ "APPLICATION",
-+ "CONTEXT_SPECIFIC",
-+ "PRIVATE"
-+};
-+
-+static const char * const method_names[] = { "PRIMITIVE", "CONSTRUCTED" };
-+
-+static const char * const type_names[] = {
-+ "END_OF_CONTENTS",
-+ "BOOLEAN",
-+ "INTEGER",
-+ "BIT_STRING",
-+ "OCTET_STRING",
-+ "NULL",
-+ "OBJECT_ID",
-+ "OBJECT_DESCRIPTOR",
-+ "(type 08)",
-+ "REAL",
-+ "ENUMERATED",
-+ "EMBEDDED",
-+ "UTF8_STRING",
-+ "(type 0d)",
-+ "(type 0e)",
-+ "(type 0f)",
-+ "SEQUENCE",
-+ "SET",
-+ "NUMERIC_STRING",
-+ "PRINTABLE_STRING",
-+ "T61_STRING",
-+ "VIDEOTEXT_STRING",
-+ "IA5_STRING",
-+ "UTC_TIME",
-+ "GENERALIZED_TIME",
-+ "GRAPHIC_STRING",
-+ "VISIBLE_STRING",
-+ "GENERAL_STRING",
-+ "UNIVERSAL_STRING",
-+ "(type 1d)",
-+ "BMP_STRING",
-+ "HIGH_TAG_VALUE"
-+};
-+
-+static const char * const flag_names[] = { /* flags, right to left */
-+ "OPTIONAL",
-+ "EXPLICIT",
-+ "ANY",
-+ "INLINE",
-+ "POINTER",
-+ "GROUP",
-+ "DYNAMIC",
-+ "SKIP",
-+ "INNER",
-+ "SAVE",
-+ "", /* decoder ignores "MAY_STREAM", */
-+ "SKIP_REST",
-+ "CHOICE",
-+ "NO_STREAM",
-+ "DEBUG_BREAK",
-+ "unknown 08",
-+ "unknown 10",
-+ "unknown 20",
-+ "unknown 40",
-+ "unknown 80"
-+};
-+
-+static int /* bool */
-+formatKind(unsigned long kind, char * buf)
-+{
-+ int i;
-+ unsigned long k = kind & SEC_ASN1_TAGNUM_MASK;
-+ unsigned long notag = kind & (SEC_ASN1_CHOICE | SEC_ASN1_POINTER |
-+ SEC_ASN1_INLINE | SEC_ASN1_ANY | SEC_ASN1_SAVE);
-+
-+ buf[0] = 0;
-+ if ((kind & SEC_ASN1_CLASS_MASK) != SEC_ASN1_UNIVERSAL) {
-+ sprintf(buf, " %s", class_names[(kind & SEC_ASN1_CLASS_MASK) >> 6] );
-+ buf += strlen(buf);
-+ }
-+ if (kind & SEC_ASN1_METHOD_MASK) {
-+ sprintf(buf, " %s", method_names[1]);
-+ buf += strlen(buf);
-+ }
-+ if ((kind & SEC_ASN1_CLASS_MASK) == SEC_ASN1_UNIVERSAL) {
-+ if (k || !notag) {
-+ sprintf(buf, " %s", type_names[k] );
-+ if ((k == SEC_ASN1_SET || k == SEC_ASN1_SEQUENCE) &&
-+ (kind & SEC_ASN1_GROUP)) {
-+ buf += strlen(buf);
-+ sprintf(buf, "_OF");
-+ }
-+ }
-+ } else {
-+ sprintf(buf, " [%d]", k);
-+ }
-+ buf += strlen(buf);
-+
-+ for (k = kind >> 8, i = 0; k; k >>= 1, ++i) {
-+ if (k & 1) {
-+ sprintf(buf, " %s", flag_names[i]);
-+ buf += strlen(buf);
-+ }
-+ }
-+ return notag != 0;
-+}
-+
-+#endif /* DEBUG_ASN1D_STATES */
-+
-+typedef enum {
-+ allDone,
-+ decodeError,
-+ keepGoing,
-+ needBytes
-+} sec_asn1d_parse_status;
-+
-+struct subitem {
-+ const void *data;
-+ unsigned long len; /* only used for substrings */
-+ struct subitem *next;
-+};
-+
-+typedef struct sec_asn1d_state_struct {
-+ SEC_ASN1DecoderContext *top;
-+ const SEC_ASN1Template *theTemplate;
-+ void *dest;
-+
-+ void *our_mark; /* free on completion */
-+
-+ struct sec_asn1d_state_struct *parent; /* aka prev */
-+ struct sec_asn1d_state_struct *child; /* aka next */
-+
-+ sec_asn1d_parse_place place;
-+
-+ /*
-+ * XXX explain the next fields as clearly as possible...
-+ */
-+ unsigned char found_tag_modifiers;
-+ unsigned char expect_tag_modifiers;
-+ unsigned long check_tag_mask;
-+ unsigned long found_tag_number;
-+ unsigned long expect_tag_number;
-+ unsigned long underlying_kind;
-+
-+ unsigned long contents_length;
-+ unsigned long pending;
-+ unsigned long consumed;
-+
-+ int depth;
-+
-+ /*
-+ * Bit strings have their length adjusted -- the first octet of the
-+ * contents contains a value between 0 and 7 which says how many bits
-+ * at the end of the octets are not actually part of the bit string;
-+ * when parsing bit strings we put that value here because we need it
-+ * later, for adjustment of the length (when the whole string is done).
-+ */
-+ unsigned int bit_string_unused_bits;
-+
-+ /*
-+ * The following are used for indefinite-length constructed strings.
-+ */
-+ struct subitem *subitems_head;
-+ struct subitem *subitems_tail;
-+
-+ PRPackedBool
-+ allocate, /* when true, need to allocate the destination */
-+ endofcontents, /* this state ended up parsing end-of-contents octets */
-+ explicit, /* we are handling an explicit header */
-+ indefinite, /* the current item has indefinite-length encoding */
-+ missing, /* an optional field that was not present */
-+ optional, /* the template says this field may be omitted */
-+ substring; /* this is a substring of a constructed string */
-+
-+} sec_asn1d_state;
-+
-+#define IS_HIGH_TAG_NUMBER(n) ((n) == SEC_ASN1_HIGH_TAG_NUMBER)
-+#define LAST_TAG_NUMBER_BYTE(b) (((b) & 0x80) == 0)
-+#define TAG_NUMBER_BITS 7
-+#define TAG_NUMBER_MASK 0x7f
-+
-+#define LENGTH_IS_SHORT_FORM(b) (((b) & 0x80) == 0)
-+#define LONG_FORM_LENGTH(b) ((b) & 0x7f)
-+
-+#define HIGH_BITS(field,cnt) ((field) >> ((sizeof(field) * 8) - (cnt)))
-+
-+
-+/*
-+ * An "outsider" will have an opaque pointer to this, created by calling
-+ * SEC_ASN1DecoderStart(). It will be passed back in to all subsequent
-+ * calls to SEC_ASN1DecoderUpdate(), and when done it is passed to
-+ * SEC_ASN1DecoderFinish().
-+ */
-+struct sec_DecoderContext_struct {
-+ PRArenaPool *our_pool; /* for our internal allocs */
-+ PRArenaPool *their_pool; /* for destination structure allocs */
-+#ifdef SEC_ASN1D_FREE_ON_ERROR /*
-+ * XXX see comment below (by same
-+ * ifdef) that explains why this
-+ * does not work (need more smarts
-+ * in order to free back to mark)
-+ */
-+ /*
-+ * XXX how to make their_mark work in the case where they do NOT
-+ * give us a pool pointer?
-+ */
-+ void *their_mark; /* free on error */
-+#endif
-+
-+ sec_asn1d_state *current;
-+ sec_asn1d_parse_status status;
-+
-+ SEC_ASN1NotifyProc notify_proc; /* call before/after handling field */
-+ void *notify_arg; /* argument to notify_proc */
-+ PRBool during_notify; /* true during call to notify_proc */
-+
-+ SEC_ASN1WriteProc filter_proc; /* pass field bytes to this */
-+ void *filter_arg; /* argument to that function */
-+ PRBool filter_only; /* do not allocate/store fields */
-+};
-+
-+
-+/*
-+ * XXX this is a fairly generic function that may belong elsewhere
-+ */
-+static void *
-+sec_asn1d_alloc (PRArenaPool *poolp, unsigned long len)
-+{
-+ void *thing;
-+
-+ if (poolp != NULL) {
-+ /*
-+ * Allocate from the pool.
-+ */
-+ thing = PORT_ArenaAlloc (poolp, len);
-+ } else {
-+ /*
-+ * Allocate generically.
-+ */
-+ thing = PORT_Alloc (len);
-+ }
-+
-+ return thing;
-+}
-+
-+
-+/*
-+ * XXX this is a fairly generic function that may belong elsewhere
-+ */
-+static void *
-+sec_asn1d_zalloc (PRArenaPool *poolp, unsigned long len)
-+{
-+ void *thing;
-+
-+ thing = sec_asn1d_alloc (poolp, len);
-+ if (thing != NULL)
-+ PORT_Memset (thing, 0, len);
-+ return thing;
-+}
-+
-+
-+static sec_asn1d_state *
-+sec_asn1d_push_state (SEC_ASN1DecoderContext *cx,
-+ const SEC_ASN1Template *theTemplate,
-+ void *dest, PRBool new_depth)
-+{
-+ sec_asn1d_state *state, *new_state;
-+
-+ state = cx->current;
-+
-+ PORT_Assert (state == NULL || state->child == NULL);
-+
-+ if (state != NULL) {
-+ PORT_Assert (state->our_mark == NULL);
-+ state->our_mark = PORT_ArenaMark (cx->our_pool);
-+ }
-+
-+ new_state = (sec_asn1d_state*)sec_asn1d_zalloc (cx->our_pool,
-+ sizeof(*new_state));
-+ if (new_state == NULL) {
-+ goto loser;
-+ }
-+
-+ new_state->top = cx;
-+ new_state->parent = state;
-+ new_state->theTemplate = theTemplate;
-+ new_state->place = notInUse;
-+ if (dest != NULL)
-+ new_state->dest = (char *)dest + theTemplate->offset;
-+
-+ if (state != NULL) {
-+ new_state->depth = state->depth;
-+ if (new_depth) {
-+ if (++new_state->depth > SEC_ASN1D_MAX_DEPTH) {
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ goto loser;
-+ }
-+ }
-+ state->child = new_state;
-+ }
-+
-+ cx->current = new_state;
-+ return new_state;
-+
-+loser:
-+ cx->status = decodeError;
-+ if (state != NULL) {
-+ PORT_ArenaRelease(cx->our_pool, state->our_mark);
-+ state->our_mark = NULL;
-+ }
-+ return NULL;
-+}
-+
-+
-+static void
-+sec_asn1d_scrub_state (sec_asn1d_state *state)
-+{
-+ /*
-+ * Some default "scrubbing".
-+ * XXX right set of initializations?
-+ */
-+ state->place = beforeIdentifier;
-+ state->endofcontents = PR_FALSE;
-+ state->indefinite = PR_FALSE;
-+ state->missing = PR_FALSE;
-+ PORT_Assert (state->consumed == 0);
-+}
-+
-+
-+static void
-+sec_asn1d_notify_before (SEC_ASN1DecoderContext *cx, void *dest, int depth)
-+{
-+ if (cx->notify_proc == NULL)
-+ return;
-+
-+ cx->during_notify = PR_TRUE;
-+ (* cx->notify_proc) (cx->notify_arg, PR_TRUE, dest, depth);
-+ cx->during_notify = PR_FALSE;
-+}
-+
-+
-+static void
-+sec_asn1d_notify_after (SEC_ASN1DecoderContext *cx, void *dest, int depth)
-+{
-+ if (cx->notify_proc == NULL)
-+ return;
-+
-+ cx->during_notify = PR_TRUE;
-+ (* cx->notify_proc) (cx->notify_arg, PR_FALSE, dest, depth);
-+ cx->during_notify = PR_FALSE;
-+}
-+
-+
-+static sec_asn1d_state *
-+sec_asn1d_init_state_based_on_template (sec_asn1d_state *state)
-+{
-+ PRBool explicit, optional, universal;
-+ unsigned char expect_tag_modifiers;
-+ unsigned long encode_kind, under_kind;
-+ unsigned long check_tag_mask, expect_tag_number;
-+
-+
-+ /* XXX Check that both of these tests are really needed/appropriate. */
-+ if (state == NULL || state->top->status == decodeError)
-+ return state;
-+
-+ encode_kind = state->theTemplate->kind;
-+
-+ if (encode_kind & SEC_ASN1_SAVE) {
-+ /*
-+ * This is a "magic" field that saves away all bytes, allowing
-+ * the immediately following field to still be decoded from this
-+ * same spot -- sort of a fork.
-+ */
-+ /* check that there are no extraneous bits */
-+ PORT_Assert (encode_kind == SEC_ASN1_SAVE);
-+ if (state->top->filter_only) {
-+ /*
-+ * If we are not storing, then we do not do the SAVE field
-+ * at all. Just move ahead to the "real" field instead,
-+ * doing the appropriate notify calls before and after.
-+ */
-+ sec_asn1d_notify_after (state->top, state->dest, state->depth);
-+ /*
-+ * Since we are not storing, allow for our current dest value
-+ * to be NULL. (This might not actually occur, but right now I
-+ * cannot convince myself one way or the other.) If it is NULL,
-+ * assume that our parent dest can help us out.
-+ */
-+ if (state->dest == NULL)
-+ state->dest = state->parent->dest;
-+ else
-+ state->dest = (char *)state->dest - state->theTemplate->offset;
-+ state->theTemplate++;
-+ if (state->dest != NULL)
-+ state->dest = (char *)state->dest + state->theTemplate->offset;
-+ sec_asn1d_notify_before (state->top, state->dest, state->depth);
-+ encode_kind = state->theTemplate->kind;
-+ PORT_Assert ((encode_kind & SEC_ASN1_SAVE) == 0);
-+ } else {
-+ sec_asn1d_scrub_state (state);
-+ state->place = duringSaveEncoding;
-+ state = sec_asn1d_push_state (state->top, SEC_AnyTemplate,
-+ state->dest, PR_FALSE);
-+ if (state != NULL)
-+ state = sec_asn1d_init_state_based_on_template (state);
-+ return state;
-+ }
-+ }
-+
-+
-+ universal = ((encode_kind & SEC_ASN1_CLASS_MASK) == SEC_ASN1_UNIVERSAL)
-+ ? PR_TRUE : PR_FALSE;
-+
-+ explicit = (encode_kind & SEC_ASN1_EXPLICIT) ? PR_TRUE : PR_FALSE;
-+ encode_kind &= ~SEC_ASN1_EXPLICIT;
-+
-+ optional = (encode_kind & SEC_ASN1_OPTIONAL) ? PR_TRUE : PR_FALSE;
-+ encode_kind &= ~SEC_ASN1_OPTIONAL;
-+
-+ PORT_Assert (!(explicit && universal)); /* bad templates */
-+
-+ encode_kind &= ~SEC_ASN1_DYNAMIC;
-+ encode_kind &= ~SEC_ASN1_MAY_STREAM;
-+
-+ if (encode_kind & SEC_ASN1_CHOICE) {
-+#if 0 /* XXX remove? */
-+ sec_asn1d_state *child = sec_asn1d_push_state(state->top, state->theTemplate, state->dest, PR_FALSE);
-+ if ((sec_asn1d_state *)NULL == child) {
-+ return (sec_asn1d_state *)NULL;
-+ }
-+
-+ child->allocate = state->allocate;
-+ child->place = beforeChoice;
-+ return child;
-+#else
-+ state->place = beforeChoice;
-+ return state;
-+#endif
-+ }
-+
-+ if ((encode_kind & (SEC_ASN1_POINTER | SEC_ASN1_INLINE)) || (!universal
-+ && !explicit)) {
-+ const SEC_ASN1Template *subt;
-+ void *dest;
-+ PRBool child_allocate;
-+
-+ PORT_Assert ((encode_kind & (SEC_ASN1_ANY | SEC_ASN1_SKIP)) == 0);
-+
-+ sec_asn1d_scrub_state (state);
-+ child_allocate = PR_FALSE;
-+
-+ if (encode_kind & SEC_ASN1_POINTER) {
-+ /*
-+ * A POINTER means we need to allocate the destination for
-+ * this field. But, since it may also be an optional field,
-+ * we defer the allocation until later; we just record that
-+ * it needs to be done.
-+ *
-+ * There are two possible scenarios here -- one is just a
-+ * plain POINTER (kind of like INLINE, except with allocation)
-+ * and the other is an implicitly-tagged POINTER. We don't
-+ * need to do anything special here for the two cases, but
-+ * since the template definition can be tricky, we do check
-+ * that there are no extraneous bits set in encode_kind.
-+ *
-+ * XXX The same conditions which assert should set an error.
-+ */
-+ if (universal) {
-+ /*
-+ * "universal" means this entry is a standalone POINTER;
-+ * there should be no other bits set in encode_kind.
-+ */
-+ PORT_Assert (encode_kind == SEC_ASN1_POINTER);
-+ } else {
-+ /*
-+ * If we get here we have an implicitly-tagged field
-+ * that needs to be put into a POINTER. The subtemplate
-+ * will determine how to decode the field, but encode_kind
-+ * describes the (implicit) tag we are looking for.
-+ * The non-tag bits of encode_kind will be ignored by
-+ * the code below; none of them should be set, however,
-+ * except for the POINTER bit itself -- so check that.
-+ */
-+ PORT_Assert ((encode_kind & ~SEC_ASN1_TAG_MASK)
-+ == SEC_ASN1_POINTER);
-+ }
-+ if (!state->top->filter_only)
-+ child_allocate = PR_TRUE;
-+ dest = NULL;
-+ state->place = afterPointer;
-+ } else {
-+ dest = state->dest;
-+ if (encode_kind & SEC_ASN1_INLINE) {
-+ /* check that there are no extraneous bits */
-+ PORT_Assert (encode_kind == SEC_ASN1_INLINE && !optional);
-+ state->place = afterInline;
-+ } else {
-+ state->place = afterImplicit;
-+ }
-+ }
-+
-+ state->optional = optional;
-+ subt = SEC_ASN1GetSubtemplate (state->theTemplate, state->dest, PR_FALSE);
-+ state = sec_asn1d_push_state (state->top, subt, dest, PR_FALSE);
-+ if (state == NULL)
-+ return NULL;
-+
-+ state->allocate = child_allocate;
-+
-+ if (universal) {
-+ state = sec_asn1d_init_state_based_on_template (state);
-+ if (state != NULL) {
-+ /*
-+ * If this field is optional, we need to record that on
-+ * the pushed child so it won't fail if the field isn't
-+ * found. I can't think of a way that this new state
-+ * could already have optional set (which we would wipe
-+ * out below if our local optional is not set) -- but
-+ * just to be sure, assert that it isn't set.
-+ */
-+ PORT_Assert (!state->optional);
-+ state->optional = optional;
-+ }
-+ return state;
-+ }
-+
-+ under_kind = state->theTemplate->kind;
-+ under_kind &= ~SEC_ASN1_MAY_STREAM;
-+ } else if (explicit) {
-+ /*
-+ * For explicit, we only need to match the encoding tag next,
-+ * then we will push another state to handle the entire inner
-+ * part. In this case, there is no underlying kind which plays
-+ * any part in the determination of the outer, explicit tag.
-+ * So we just set under_kind to 0, which is not a valid tag,
-+ * and the rest of the tag matching stuff should be okay.
-+ */
-+ under_kind = 0;
-+ } else {
-+ /*
-+ * Nothing special; the underlying kind and the given encoding
-+ * information are the same.
-+ */
-+ under_kind = encode_kind;
-+ }
-+
-+ /* XXX is this the right set of bits to test here? */
-+ PORT_Assert ((under_kind & (SEC_ASN1_EXPLICIT | SEC_ASN1_OPTIONAL
-+ | SEC_ASN1_MAY_STREAM
-+ | SEC_ASN1_INLINE | SEC_ASN1_POINTER)) == 0);
-+
-+ if (encode_kind & (SEC_ASN1_ANY | SEC_ASN1_SKIP)) {
-+ PORT_Assert (encode_kind == under_kind);
-+ if (encode_kind & SEC_ASN1_SKIP) {
-+ PORT_Assert (!optional);
-+ PORT_Assert (encode_kind == SEC_ASN1_SKIP);
-+ state->dest = NULL;
-+ }
-+ check_tag_mask = 0;
-+ expect_tag_modifiers = 0;
-+ expect_tag_number = 0;
-+ } else {
-+ check_tag_mask = SEC_ASN1_TAG_MASK;
-+ expect_tag_modifiers = (unsigned char)encode_kind & SEC_ASN1_TAG_MASK
-+ & ~SEC_ASN1_TAGNUM_MASK;
-+ /*
-+ * XXX This assumes only single-octet identifiers. To handle
-+ * the HIGH TAG form we would need to do some more work, especially
-+ * in how to specify them in the template, because right now we
-+ * do not provide a way to specify more *tag* bits in encode_kind.
-+ */
-+ expect_tag_number = encode_kind & SEC_ASN1_TAGNUM_MASK;
-+
-+ switch (under_kind & SEC_ASN1_TAGNUM_MASK) {
-+ case SEC_ASN1_SET:
-+ /*
-+ * XXX A plain old SET (as opposed to a SET OF) is not implemented.
-+ * If it ever is, remove this assert...
-+ */
-+ PORT_Assert ((under_kind & SEC_ASN1_GROUP) != 0);
-+ /* fallthru */
-+ case SEC_ASN1_SEQUENCE:
-+ expect_tag_modifiers |= SEC_ASN1_CONSTRUCTED;
-+ break;
-+ case SEC_ASN1_BIT_STRING:
-+ case SEC_ASN1_BMP_STRING:
-+ case SEC_ASN1_GENERALIZED_TIME:
-+ case SEC_ASN1_IA5_STRING:
-+ case SEC_ASN1_OCTET_STRING:
-+ case SEC_ASN1_PRINTABLE_STRING:
-+ case SEC_ASN1_T61_STRING:
-+ case SEC_ASN1_UNIVERSAL_STRING:
-+ case SEC_ASN1_UTC_TIME:
-+ case SEC_ASN1_UTF8_STRING:
-+ case SEC_ASN1_VISIBLE_STRING:
-+ check_tag_mask &= ~SEC_ASN1_CONSTRUCTED;
-+ break;
-+ }
-+ }
-+
-+ state->check_tag_mask = check_tag_mask;
-+ state->expect_tag_modifiers = expect_tag_modifiers;
-+ state->expect_tag_number = expect_tag_number;
-+ state->underlying_kind = under_kind;
-+ state->explicit = explicit;
-+ state->optional = optional;
-+
-+ sec_asn1d_scrub_state (state);
-+
-+ return state;
-+}
-+
-+static sec_asn1d_state *
-+sec_asn1d_get_enclosing_construct(sec_asn1d_state *state)
-+{
-+ for (state = state->parent; state; state = state->parent) {
-+ sec_asn1d_parse_place place = state->place;
-+ if (place != afterImplicit &&
-+ place != afterPointer &&
-+ place != afterInline &&
-+ place != afterSaveEncoding &&
-+ place != duringSaveEncoding &&
-+ place != duringChoice) {
-+
-+ /* we've walked up the stack to a state that represents
-+ ** the enclosing construct.
-+ */
-+ break;
-+ }
-+ }
-+ return state;
-+}
-+
-+static PRBool
-+sec_asn1d_parent_allows_EOC(sec_asn1d_state *state)
-+{
-+ /* get state of enclosing construct. */
-+ state = sec_asn1d_get_enclosing_construct(state);
-+ if (state) {
-+ sec_asn1d_parse_place place = state->place;
-+ /* Is it one of the types that permits an unexpected EOC? */
-+ int eoc_permitted =
-+ (place == duringGroup ||
-+ place == duringConstructedString ||
-+ state->child->optional);
-+ return (state->indefinite && eoc_permitted) ? PR_TRUE : PR_FALSE;
-+ }
-+ return PR_FALSE;
-+}
-+
-+static unsigned long
-+sec_asn1d_parse_identifier (sec_asn1d_state *state,
-+ const char *buf, unsigned long len)
-+{
-+ unsigned char byte;
-+ unsigned char tag_number;
-+
-+ PORT_Assert (state->place == beforeIdentifier);
-+
-+ if (len == 0) {
-+ state->top->status = needBytes;
-+ return 0;
-+ }
-+
-+ byte = (unsigned char) *buf;
-+#ifdef DEBUG_ASN1D_STATES
-+ {
-+ char kindBuf[256];
-+ formatKind(byte, kindBuf);
-+ printf("Found tag %02x %s\n", byte, kindBuf);
-+ }
-+#endif
-+ tag_number = byte & SEC_ASN1_TAGNUM_MASK;
-+
-+ if (IS_HIGH_TAG_NUMBER (tag_number)) {
-+ state->place = duringIdentifier;
-+ state->found_tag_number = 0;
-+ /*
-+ * Actually, we have no idea how many bytes are pending, but we
-+ * do know that it is at least 1. That is all we know; we have
-+ * to look at each byte to know if there is another, etc.
-+ */
-+ state->pending = 1;
-+ } else {
-+ if (byte == 0 && sec_asn1d_parent_allows_EOC(state)) {
-+ /*
-+ * Our parent has indefinite-length encoding, and the
-+ * entire tag found is 0, so it seems that we have hit the
-+ * end-of-contents octets. To handle this, we just change
-+ * our state to that which expects to get the bytes of the
-+ * end-of-contents octets and let that code re-read this byte
-+ * so that our categorization of field types is correct.
-+ * After that, our parent will then deal with everything else.
-+ */
-+ state->place = duringEndOfContents;
-+ state->pending = 2;
-+ state->found_tag_number = 0;
-+ state->found_tag_modifiers = 0;
-+ /*
-+ * We might be an optional field that is, as we now find out,
-+ * missing. Give our parent a clue that this happened.
-+ */
-+ if (state->optional)
-+ state->missing = PR_TRUE;
-+ return 0;
-+ }
-+ state->place = afterIdentifier;
-+ state->found_tag_number = tag_number;
-+ }
-+ state->found_tag_modifiers = byte & ~SEC_ASN1_TAGNUM_MASK;
-+
-+ return 1;
-+}
-+
-+
-+static unsigned long
-+sec_asn1d_parse_more_identifier (sec_asn1d_state *state,
-+ const char *buf, unsigned long len)
-+{
-+ unsigned char byte;
-+ int count;
-+
-+ PORT_Assert (state->pending == 1);
-+ PORT_Assert (state->place == duringIdentifier);
-+
-+ if (len == 0) {
-+ state->top->status = needBytes;
-+ return 0;
-+ }
-+
-+ count = 0;
-+
-+ while (len && state->pending) {
-+ if (HIGH_BITS (state->found_tag_number, TAG_NUMBER_BITS) != 0) {
-+ /*
-+ * The given high tag number overflows our container;
-+ * just give up. This is not likely to *ever* happen.
-+ */
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ return 0;
-+ }
-+
-+ state->found_tag_number <<= TAG_NUMBER_BITS;
-+
-+ byte = (unsigned char) buf[count++];
-+ state->found_tag_number |= (byte & TAG_NUMBER_MASK);
-+
-+ len--;
-+ if (LAST_TAG_NUMBER_BYTE (byte))
-+ state->pending = 0;
-+ }
-+
-+ if (state->pending == 0)
-+ state->place = afterIdentifier;
-+
-+ return count;
-+}
-+
-+
-+static void
-+sec_asn1d_confirm_identifier (sec_asn1d_state *state)
-+{
-+ PRBool match;
-+
-+ PORT_Assert (state->place == afterIdentifier);
-+
-+ match = (PRBool)(((state->found_tag_modifiers & state->check_tag_mask)
-+ == state->expect_tag_modifiers)
-+ && ((state->found_tag_number & state->check_tag_mask)
-+ == state->expect_tag_number));
-+ if (match) {
-+ state->place = beforeLength;
-+ } else {
-+ if (state->optional) {
-+ state->missing = PR_TRUE;
-+ state->place = afterEndOfContents;
-+ } else {
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ }
-+ }
-+}
-+
-+
-+static unsigned long
-+sec_asn1d_parse_length (sec_asn1d_state *state,
-+ const char *buf, unsigned long len)
-+{
-+ unsigned char byte;
-+
-+ PORT_Assert (state->place == beforeLength);
-+
-+ if (len == 0) {
-+ state->top->status = needBytes;
-+ return 0;
-+ }
-+
-+ /*
-+ * The default/likely outcome. It may get adjusted below.
-+ */
-+ state->place = afterLength;
-+
-+ byte = (unsigned char) *buf;
-+
-+ if (LENGTH_IS_SHORT_FORM (byte)) {
-+ state->contents_length = byte;
-+ } else {
-+ state->contents_length = 0;
-+ state->pending = LONG_FORM_LENGTH (byte);
-+ if (state->pending == 0) {
-+ state->indefinite = PR_TRUE;
-+ } else {
-+ state->place = duringLength;
-+ }
-+ }
-+
-+ /* If we're parsing an ANY, SKIP, or SAVE template, and
-+ ** the object being saved is definite length encoded and constructed,
-+ ** there's no point in decoding that construct's members.
-+ ** So, just forget it's constructed and treat it as primitive.
-+ ** (SAVE appears as an ANY at this point)
-+ */
-+ if (!state->indefinite &&
-+ (state->underlying_kind & (SEC_ASN1_ANY | SEC_ASN1_SKIP))) {
-+ state->found_tag_modifiers &= ~SEC_ASN1_CONSTRUCTED;
-+ }
-+
-+ return 1;
-+}
-+
-+
-+static unsigned long
-+sec_asn1d_parse_more_length (sec_asn1d_state *state,
-+ const char *buf, unsigned long len)
-+{
-+ int count;
-+
-+ PORT_Assert (state->pending > 0);
-+ PORT_Assert (state->place == duringLength);
-+
-+ if (len == 0) {
-+ state->top->status = needBytes;
-+ return 0;
-+ }
-+
-+ count = 0;
-+
-+ while (len && state->pending) {
-+ if (HIGH_BITS (state->contents_length, 9) != 0) {
-+ /*
-+ * The given full content length overflows our container;
-+ * just give up.
-+ */
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ return 0;
-+ }
-+
-+ state->contents_length <<= 8;
-+ state->contents_length |= (unsigned char) buf[count++];
-+
-+ len--;
-+ state->pending--;
-+ }
-+
-+ if (state->pending == 0)
-+ state->place = afterLength;
-+
-+ return count;
-+}
-+
-+
-+static void
-+sec_asn1d_prepare_for_contents (sec_asn1d_state *state)
-+{
-+ SECItem *item;
-+ PRArenaPool *poolp;
-+ unsigned long alloc_len;
-+
-+#ifdef DEBUG_ASN1D_STATES
-+ {
-+ printf("Found Length %d %s\n", state->contents_length,
-+ state->indefinite ? "indefinite" : "");
-+ }
-+#endif
-+
-+ /*
-+ * XXX I cannot decide if this allocation should exclude the case
-+ * where state->endofcontents is true -- figure it out!
-+ */
-+ if (state->allocate) {
-+ void *dest;
-+
-+ PORT_Assert (state->dest == NULL);
-+ /*
-+ * We are handling a POINTER or a member of a GROUP, and need to
-+ * allocate for the data structure.
-+ */
-+ dest = sec_asn1d_zalloc (state->top->their_pool,
-+ state->theTemplate->size);
-+ if (dest == NULL) {
-+ state->top->status = decodeError;
-+ return;
-+ }
-+ state->dest = (char *)dest + state->theTemplate->offset;
-+
-+ /*
-+ * For a member of a GROUP, our parent will later put the
-+ * pointer wherever it belongs. But for a POINTER, we need
-+ * to record the destination now, in case notify or filter
-+ * procs need access to it -- they cannot find it otherwise,
-+ * until it is too late (for one-pass processing).
-+ */
-+ if (state->parent->place == afterPointer) {
-+ void **placep;
-+
-+ placep = state->parent->dest;
-+ *placep = dest;
-+ }
-+ }
-+
-+ /*
-+ * Remember, length may be indefinite here! In that case,
-+ * both contents_length and pending will be zero.
-+ */
-+ state->pending = state->contents_length;
-+
-+ /* If this item has definite length encoding, and
-+ ** is enclosed by a definite length constructed type,
-+ ** make sure it isn't longer than the remaining space in that
-+ ** constructed type.
-+ */
-+ if (state->contents_length > 0) {
-+ sec_asn1d_state *parent = sec_asn1d_get_enclosing_construct(state);
-+ if (parent && !parent->indefinite &&
-+ state->consumed + state->contents_length > parent->pending) {
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ return;
-+ }
-+ }
-+
-+ /*
-+ * An EXPLICIT is nothing but an outer header, which we have
-+ * already parsed and accepted. Now we need to do the inner
-+ * header and its contents.
-+ */
-+ if (state->explicit) {
-+ state->place = afterExplicit;
-+ state = sec_asn1d_push_state (state->top,
-+ SEC_ASN1GetSubtemplate(state->theTemplate,
-+ state->dest,
-+ PR_FALSE),
-+ state->dest, PR_TRUE);
-+ if (state != NULL)
-+ state = sec_asn1d_init_state_based_on_template (state);
-+ return;
-+ }
-+
-+ /*
-+ * For GROUP (SET OF, SEQUENCE OF), even if we know the length here
-+ * we cannot tell how many items we will end up with ... so push a
-+ * state that can keep track of "children" (the individual members
-+ * of the group; we will allocate as we go and put them all together
-+ * at the end.
-+ */
-+ if (state->underlying_kind & SEC_ASN1_GROUP) {
-+ /* XXX If this assertion holds (should be able to confirm it via
-+ * inspection, too) then move this code into the switch statement
-+ * below under cases SET_OF and SEQUENCE_OF; it will be cleaner.
-+ */
-+ PORT_Assert (state->underlying_kind == SEC_ASN1_SET_OF
-+ || state->underlying_kind == SEC_ASN1_SEQUENCE_OF
-+ || state->underlying_kind == (SEC_ASN1_SEQUENCE_OF|SEC_ASN1_DYNAMIC)
-+ || state->underlying_kind == (SEC_ASN1_SEQUENCE_OF|SEC_ASN1_DYNAMIC)
-+ );
-+ if (state->contents_length != 0 || state->indefinite) {
-+ const SEC_ASN1Template *subt;
-+
-+ state->place = duringGroup;
-+ subt = SEC_ASN1GetSubtemplate (state->theTemplate, state->dest,
-+ PR_FALSE);
-+ state = sec_asn1d_push_state (state->top, subt, NULL, PR_TRUE);
-+ if (state != NULL) {
-+ if (!state->top->filter_only)
-+ state->allocate = PR_TRUE; /* XXX propogate this? */
-+ /*
-+ * Do the "before" field notification for next in group.
-+ */
-+ sec_asn1d_notify_before (state->top, state->dest, state->depth);
-+ state = sec_asn1d_init_state_based_on_template (state);
-+ }
-+ } else {
-+ /*
-+ * A group of zero; we are done.
-+ * Set state to afterGroup and let that code plant the NULL.
-+ */
-+ state->place = afterGroup;
-+ }
-+ return;
-+ }
-+
-+ switch (state->underlying_kind) {
-+ case SEC_ASN1_SEQUENCE:
-+ /*
-+ * We need to push a child to handle the individual fields.
-+ */
-+ state->place = duringSequence;
-+ state = sec_asn1d_push_state (state->top, state->theTemplate + 1,
-+ state->dest, PR_TRUE);
-+ if (state != NULL) {
-+ /*
-+ * Do the "before" field notification.
-+ */
-+ sec_asn1d_notify_before (state->top, state->dest, state->depth);
-+ state = sec_asn1d_init_state_based_on_template (state);
-+ }
-+ break;
-+
-+ case SEC_ASN1_SET: /* XXX SET is not really implemented */
-+ /*
-+ * XXX A plain SET requires special handling; scanning of a
-+ * template to see where a field should go (because by definition,
-+ * they are not in any particular order, and you have to look at
-+ * each tag to disambiguate what the field is). We may never
-+ * implement this because in practice, it seems to be unused.
-+ */
-+ PORT_Assert(0);
-+ PORT_SetError (SEC_ERROR_BAD_DER); /* XXX */
-+ state->top->status = decodeError;
-+ break;
-+
-+ case SEC_ASN1_NULL:
-+ /*
-+ * The NULL type, by definition, is "nothing", content length of zero.
-+ * An indefinite-length encoding is not alloweed.
-+ */
-+ if (state->contents_length || state->indefinite) {
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ break;
-+ }
-+ if (state->dest != NULL) {
-+ item = (SECItem *)(state->dest);
-+ item->data = NULL;
-+ item->len = 0;
-+ }
-+ state->place = afterEndOfContents;
-+ break;
-+
-+ case SEC_ASN1_BMP_STRING:
-+ /* Error if length is not divisable by 2 */
-+ if (state->contents_length % 2) {
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ break;
-+ }
-+ /* otherwise, handle as other string types */
-+ goto regular_string_type;
-+
-+ case SEC_ASN1_UNIVERSAL_STRING:
-+ /* Error if length is not divisable by 4 */
-+ if (state->contents_length % 4) {
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ break;
-+ }
-+ /* otherwise, handle as other string types */
-+ goto regular_string_type;
-+
-+ case SEC_ASN1_SKIP:
-+ case SEC_ASN1_ANY:
-+ case SEC_ASN1_ANY_CONTENTS:
-+ /*
-+ * These are not (necessarily) strings, but they need nearly
-+ * identical handling (especially when we need to deal with
-+ * constructed sub-pieces), so we pretend they are.
-+ */
-+ /* fallthru */
-+regular_string_type:
-+ case SEC_ASN1_BIT_STRING:
-+ case SEC_ASN1_IA5_STRING:
-+ case SEC_ASN1_OCTET_STRING:
-+ case SEC_ASN1_PRINTABLE_STRING:
-+ case SEC_ASN1_T61_STRING:
-+ case SEC_ASN1_UTC_TIME:
-+ case SEC_ASN1_UTF8_STRING:
-+ case SEC_ASN1_VISIBLE_STRING:
-+ /*
-+ * We are allocating for a primitive or a constructed string.
-+ * If it is a constructed string, it may also be indefinite-length.
-+ * If it is primitive, the length can (legally) be zero.
-+ * Our first order of business is to allocate the memory for
-+ * the string, if we can (if we know the length).
-+ */
-+ item = (SECItem *)(state->dest);
-+
-+ /*
-+ * If the item is a definite-length constructed string, then
-+ * the contents_length is actually larger than what we need
-+ * (because it also counts each intermediate header which we
-+ * will be throwing away as we go), but it is a perfectly good
-+ * upper bound that we just allocate anyway, and then concat
-+ * as we go; we end up wasting a few extra bytes but save a
-+ * whole other copy.
-+ */
-+ alloc_len = state->contents_length;
-+ poolp = NULL; /* quiet compiler warnings about unused... */
-+
-+ if (item == NULL || state->top->filter_only) {
-+ if (item != NULL) {
-+ item->data = NULL;
-+ item->len = 0;
-+ }
-+ alloc_len = 0;
-+ } else if (state->substring) {
-+ /*
-+ * If we are a substring of a constructed string, then we may
-+ * not have to allocate anything (because our parent, the
-+ * actual constructed string, did it for us). If we are a
-+ * substring and we *do* have to allocate, that means our
-+ * parent is an indefinite-length, so we allocate from our pool;
-+ * later our parent will copy our string into the aggregated
-+ * whole and free our pool allocation.
-+ */
-+ if (item->data == NULL) {
-+ PORT_Assert (item->len == 0);
-+ poolp = state->top->our_pool;
-+ } else {
-+ alloc_len = 0;
-+ }
-+ } else {
-+ item->len = 0;
-+ item->data = NULL;
-+ poolp = state->top->their_pool;
-+ }
-+
-+ if (alloc_len || ((! state->indefinite)
-+ && (state->subitems_head != NULL))) {
-+ struct subitem *subitem;
-+ int len;
-+
-+ PORT_Assert (item->len == 0 && item->data == NULL);
-+ /*
-+ * Check for and handle an ANY which has stashed aside the
-+ * header (identifier and length) bytes for us to include
-+ * in the saved contents.
-+ */
-+ if (state->subitems_head != NULL) {
-+ PORT_Assert (state->underlying_kind == SEC_ASN1_ANY);
-+ for (subitem = state->subitems_head;
-+ subitem != NULL; subitem = subitem->next)
-+ alloc_len += subitem->len;
-+ }
-+
-+ item->data = (unsigned char*)sec_asn1d_zalloc (poolp, alloc_len);
-+ if (item->data == NULL) {
-+ state->top->status = decodeError;
-+ break;
-+ }
-+
-+ len = 0;
-+ for (subitem = state->subitems_head;
-+ subitem != NULL; subitem = subitem->next) {
-+ PORT_Memcpy (item->data + len, subitem->data, subitem->len);
-+ len += subitem->len;
-+ }
-+ item->len = len;
-+
-+ /*
-+ * Because we use arenas and have a mark set, we later free
-+ * everything we have allocated, so this does *not* present
-+ * a memory leak (it is just temporarily left dangling).
-+ */
-+ state->subitems_head = state->subitems_tail = NULL;
-+ }
-+
-+ if (state->contents_length == 0 && (! state->indefinite)) {
-+ /*
-+ * A zero-length simple or constructed string; we are done.
-+ */
-+ state->place = afterEndOfContents;
-+ } else if (state->found_tag_modifiers & SEC_ASN1_CONSTRUCTED) {
-+ const SEC_ASN1Template *sub;
-+
-+ switch (state->underlying_kind) {
-+ case SEC_ASN1_ANY:
-+ case SEC_ASN1_ANY_CONTENTS:
-+ sub = SEC_AnyTemplate;
-+ break;
-+ case SEC_ASN1_BIT_STRING:
-+ sub = SEC_BitStringTemplate;
-+ break;
-+ case SEC_ASN1_BMP_STRING:
-+ sub = SEC_BMPStringTemplate;
-+ break;
-+ case SEC_ASN1_GENERALIZED_TIME:
-+ sub = SEC_GeneralizedTimeTemplate;
-+ break;
-+ case SEC_ASN1_IA5_STRING:
-+ sub = SEC_IA5StringTemplate;
-+ break;
-+ case SEC_ASN1_OCTET_STRING:
-+ sub = SEC_OctetStringTemplate;
-+ break;
-+ case SEC_ASN1_PRINTABLE_STRING:
-+ sub = SEC_PrintableStringTemplate;
-+ break;
-+ case SEC_ASN1_T61_STRING:
-+ sub = SEC_T61StringTemplate;
-+ break;
-+ case SEC_ASN1_UNIVERSAL_STRING:
-+ sub = SEC_UniversalStringTemplate;
-+ break;
-+ case SEC_ASN1_UTC_TIME:
-+ sub = SEC_UTCTimeTemplate;
-+ break;
-+ case SEC_ASN1_UTF8_STRING:
-+ sub = SEC_UTF8StringTemplate;
-+ break;
-+ case SEC_ASN1_VISIBLE_STRING:
-+ sub = SEC_VisibleStringTemplate;
-+ break;
-+ case SEC_ASN1_SKIP:
-+ sub = SEC_SkipTemplate;
-+ break;
-+ default: /* redundant given outer switch cases, but */
-+ PORT_Assert(0); /* the compiler does not seem to know that, */
-+ sub = NULL; /* so just do enough to quiet it. */
-+ break;
-+ }
-+
-+ state->place = duringConstructedString;
-+ state = sec_asn1d_push_state (state->top, sub, item, PR_TRUE);
-+ if (state != NULL) {
-+ state->substring = PR_TRUE; /* XXX propogate? */
-+ state = sec_asn1d_init_state_based_on_template (state);
-+ }
-+ } else if (state->indefinite) {
-+ /*
-+ * An indefinite-length string *must* be constructed!
-+ */
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ } else {
-+ /*
-+ * A non-zero-length simple string.
-+ */
-+ if (state->underlying_kind == SEC_ASN1_BIT_STRING)
-+ state->place = beforeBitString;
-+ else
-+ state->place = duringLeaf;
-+ }
-+ break;
-+
-+ default:
-+ /*
-+ * We are allocating for a simple leaf item.
-+ */
-+ if (state->contents_length) {
-+ if (state->dest != NULL) {
-+ item = (SECItem *)(state->dest);
-+ item->len = 0;
-+ if (state->top->filter_only) {
-+ item->data = NULL;
-+ } else {
-+ item->data = (unsigned char*)
-+ sec_asn1d_zalloc (state->top->their_pool,
-+ state->contents_length);
-+ if (item->data == NULL) {
-+ state->top->status = decodeError;
-+ return;
-+ }
-+ }
-+ }
-+ state->place = duringLeaf;
-+ } else {
-+ /*
-+ * An indefinite-length or zero-length item is not allowed.
-+ * (All legal cases of such were handled above.)
-+ */
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ }
-+ }
-+}
-+
-+
-+static void
-+sec_asn1d_free_child (sec_asn1d_state *state, PRBool error)
-+{
-+ if (state->child != NULL) {
-+ PORT_Assert (error || state->child->consumed == 0);
-+ PORT_Assert (state->our_mark != NULL);
-+ PORT_ArenaRelease (state->top->our_pool, state->our_mark);
-+ if (error && state->top->their_pool == NULL) {
-+ /*
-+ * XXX We need to free anything allocated.
-+ * At this point, we failed in the middle of decoding. But we
-+ * can't free the data we previously allocated with PR_Malloc
-+ * unless we keep track of every pointer. So instead we have a
-+ * memory leak when decoding fails half-way, unless an arena is
-+ * used. See bug 95311 .
-+ */
-+ }
-+ state->child = NULL;
-+ state->our_mark = NULL;
-+ } else {
-+ /*
-+ * It is important that we do not leave a mark unreleased/unmarked.
-+ * But I do not think we should ever have one set in this case, only
-+ * if we had a child (handled above). So check for that. If this
-+ * assertion should ever get hit, then we probably need to add code
-+ * here to release back to our_mark (and then set our_mark to NULL).
-+ */
-+ PORT_Assert (state->our_mark == NULL);
-+ }
-+ state->place = beforeEndOfContents;
-+}
-+
-+/* We have just saved an entire encoded ASN.1 object (type) for a SAVE
-+** template, and now in the next template, we are going to decode that
-+** saved data by calling SEC_ASN1DecoderUpdate recursively.
-+** If that recursive call fails with needBytes, it is a fatal error,
-+** because the encoded object should have been complete.
-+** If that recursive call fails with decodeError, it will have already
-+** cleaned up the state stack, so we must bail out quickly.
-+**
-+** These checks of the status returned by the recursive call are now
-+** done in the caller of this function, immediately after it returns.
-+*/
-+static void
-+sec_asn1d_reuse_encoding (sec_asn1d_state *state)
-+{
-+ sec_asn1d_state *child;
-+ unsigned long consumed;
-+ SECItem *item;
-+ void *dest;
-+
-+
-+ child = state->child;
-+ PORT_Assert (child != NULL);
-+
-+ consumed = child->consumed;
-+ child->consumed = 0;
-+
-+ item = (SECItem *)(state->dest);
-+ PORT_Assert (item != NULL);
-+
-+ PORT_Assert (item->len == consumed);
-+
-+ /*
-+ * Free any grandchild.
-+ */
-+ sec_asn1d_free_child (child, PR_FALSE);
-+
-+ /*
-+ * Notify after the SAVE field.
-+ */
-+ sec_asn1d_notify_after (state->top, state->dest, state->depth);
-+
-+ /*
-+ * Adjust to get new dest and move forward.
-+ */
-+ dest = (char *)state->dest - state->theTemplate->offset;
-+ state->theTemplate++;
-+ child->dest = (char *)dest + state->theTemplate->offset;
-+ child->theTemplate = state->theTemplate;
-+
-+ /*
-+ * Notify before the "real" field.
-+ */
-+ PORT_Assert (state->depth == child->depth);
-+ sec_asn1d_notify_before (state->top, child->dest, child->depth);
-+
-+ /*
-+ * This will tell DecoderUpdate to return when it is done.
-+ */
-+ state->place = afterSaveEncoding;
-+
-+ /*
-+ * We already have a child; "push" it by making it current.
-+ */
-+ state->top->current = child;
-+
-+ /*
-+ * And initialize it so it is ready to parse.
-+ */
-+ (void) sec_asn1d_init_state_based_on_template(child);
-+
-+ /*
-+ * Now parse that out of our data.
-+ */
-+ if (SEC_ASN1DecoderUpdate (state->top,
-+ (char *) item->data, item->len) != SECSuccess)
-+ return;
-+ if (state->top->status == needBytes) {
-+ return;
-+ }
-+
-+ PORT_Assert (state->top->current == state);
-+ PORT_Assert (state->child == child);
-+
-+ /*
-+ * That should have consumed what we consumed before.
-+ */
-+ PORT_Assert (consumed == child->consumed);
-+ child->consumed = 0;
-+
-+ /*
-+ * Done.
-+ */
-+ state->consumed += consumed;
-+ child->place = notInUse;
-+ state->place = afterEndOfContents;
-+}
-+
-+
-+static unsigned long
-+sec_asn1d_parse_leaf (sec_asn1d_state *state,
-+ const char *buf, unsigned long len)
-+{
-+ SECItem *item;
-+ unsigned long bufLen;
-+
-+ if (len == 0) {
-+ state->top->status = needBytes;
-+ return 0;
-+ }
-+
-+ if (state->pending < len)
-+ len = state->pending;
-+
-+ bufLen = len;
-+
-+ item = (SECItem *)(state->dest);
-+ if (item != NULL && item->data != NULL) {
-+ /* Strip leading zeroes when target is unsigned integer */
-+ if (state->underlying_kind == SEC_ASN1_INTEGER && /* INTEGER */
-+ item->len == 0 && /* MSB */
-+ item->type == siUnsignedInteger) /* unsigned */
-+ {
-+ while (len > 1 && buf[0] == 0) { /* leading 0 */
-+ buf++;
-+ len--;
-+ }
-+ }
-+ PORT_Memcpy (item->data + item->len, buf, len);
-+ item->len += len;
-+ }
-+ state->pending -= bufLen;
-+ if (state->pending == 0)
-+ state->place = beforeEndOfContents;
-+
-+ return bufLen;
-+}
-+
-+
-+static unsigned long
-+sec_asn1d_parse_bit_string (sec_asn1d_state *state,
-+ const char *buf, unsigned long len)
-+{
-+ unsigned char byte;
-+
-+ /*PORT_Assert (state->pending > 0); */
-+ PORT_Assert (state->place == beforeBitString);
-+
-+ if (state->pending == 0) {
-+ if (state->dest != NULL) {
-+ SECItem *item = (SECItem *)(state->dest);
-+ item->data = NULL;
-+ item->len = 0;
-+ state->place = beforeEndOfContents;
-+ return 0;
-+ }
-+ }
-+
-+ if (len == 0) {
-+ state->top->status = needBytes;
-+ return 0;
-+ }
-+
-+ byte = (unsigned char) *buf;
-+ if (byte > 7) {
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ return 0;
-+ }
-+
-+ state->bit_string_unused_bits = byte;
-+ state->place = duringBitString;
-+ state->pending -= 1;
-+
-+ return 1;
-+}
-+
-+
-+static unsigned long
-+sec_asn1d_parse_more_bit_string (sec_asn1d_state *state,
-+ const char *buf, unsigned long len)
-+{
-+ PORT_Assert (state->place == duringBitString);
-+ if (state->pending == 0) {
-+ /* An empty bit string with some unused bits is invalid. */
-+ if (state->bit_string_unused_bits) {
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ } else {
-+ /* An empty bit string with no unused bits is OK. */
-+ state->place = beforeEndOfContents;
-+ }
-+ return 0;
-+ }
-+
-+ len = sec_asn1d_parse_leaf (state, buf, len);
-+ if (state->place == beforeEndOfContents && state->dest != NULL) {
-+ SECItem *item;
-+
-+ item = (SECItem *)(state->dest);
-+ if (item->len)
-+ item->len = (item->len << 3) - state->bit_string_unused_bits;
-+ }
-+
-+ return len;
-+}
-+
-+
-+/*
-+ * XXX All callers should be looking at return value to detect
-+ * out-of-memory errors (and stop!).
-+ */
-+static struct subitem *
-+sec_asn1d_add_to_subitems (sec_asn1d_state *state,
-+ const void *data, unsigned long len,
-+ PRBool copy_data)
-+{
-+ struct subitem *thing;
-+
-+ thing = (struct subitem*)sec_asn1d_zalloc (state->top->our_pool,
-+ sizeof (struct subitem));
-+ if (thing == NULL) {
-+ state->top->status = decodeError;
-+ return NULL;
-+ }
-+
-+ if (copy_data) {
-+ void *copy;
-+ copy = sec_asn1d_alloc (state->top->our_pool, len);
-+ if (copy == NULL) {
-+ state->top->status = decodeError;
-+ return NULL;
-+ }
-+ PORT_Memcpy (copy, data, len);
-+ thing->data = copy;
-+ } else {
-+ thing->data = data;
-+ }
-+ thing->len = len;
-+ thing->next = NULL;
-+
-+ if (state->subitems_head == NULL) {
-+ PORT_Assert (state->subitems_tail == NULL);
-+ state->subitems_head = state->subitems_tail = thing;
-+ } else {
-+ state->subitems_tail->next = thing;
-+ state->subitems_tail = thing;
-+ }
-+
-+ return thing;
-+}
-+
-+
-+static void
-+sec_asn1d_record_any_header (sec_asn1d_state *state,
-+ const char *buf,
-+ unsigned long len)
-+{
-+ SECItem *item;
-+
-+ item = (SECItem *)(state->dest);
-+ if (item != NULL && item->data != NULL) {
-+ PORT_Assert (state->substring);
-+ PORT_Memcpy (item->data + item->len, buf, len);
-+ item->len += len;
-+ } else {
-+ sec_asn1d_add_to_subitems (state, buf, len, PR_TRUE);
-+ }
-+}
-+
-+
-+/*
-+ * We are moving along through the substrings of a constructed string,
-+ * and have just finished parsing one -- we need to save our child data
-+ * (if the child was not already writing directly into the destination)
-+ * and then move forward by one.
-+ *
-+ * We also have to detect when we are done:
-+ * - a definite-length encoding stops when our pending value hits 0
-+ * - an indefinite-length encoding stops when our child is empty
-+ * (which means it was the end-of-contents octets)
-+ */
-+static void
-+sec_asn1d_next_substring (sec_asn1d_state *state)
-+{
-+ sec_asn1d_state *child;
-+ SECItem *item;
-+ unsigned long child_consumed;
-+ PRBool done;
-+
-+ PORT_Assert (state->place == duringConstructedString);
-+ PORT_Assert (state->child != NULL);
-+
-+ child = state->child;
-+
-+ child_consumed = child->consumed;
-+ child->consumed = 0;
-+ state->consumed += child_consumed;
-+
-+ done = PR_FALSE;
-+
-+ if (state->pending) {
-+ PORT_Assert (!state->indefinite);
-+ if (child_consumed > state->pending) {
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ return;
-+ }
-+
-+ state->pending -= child_consumed;
-+ if (state->pending == 0)
-+ done = PR_TRUE;
-+ } else {
-+ PORT_Assert (state->indefinite);
-+
-+ item = (SECItem *)(child->dest);
-+ if (item != NULL && item->data != NULL) {
-+ /*
-+ * Save the string away for later concatenation.
-+ */
-+ PORT_Assert (item->data != NULL);
-+ sec_asn1d_add_to_subitems (state, item->data, item->len, PR_FALSE);
-+ /*
-+ * Clear the child item for the next round.
-+ */
-+ item->data = NULL;
-+ item->len = 0;
-+ }
-+
-+ /*
-+ * If our child was just our end-of-contents octets, we are done.
-+ */
-+ if (child->endofcontents)
-+ done = PR_TRUE;
-+ }
-+
-+ /*
-+ * Stop or do the next one.
-+ */
-+ if (done) {
-+ child->place = notInUse;
-+ state->place = afterConstructedString;
-+ } else {
-+ sec_asn1d_scrub_state (child);
-+ state->top->current = child;
-+ }
-+}
-+
-+
-+/*
-+ * We are doing a SET OF or SEQUENCE OF, and have just finished an item.
-+ */
-+static void
-+sec_asn1d_next_in_group (sec_asn1d_state *state)
-+{
-+ sec_asn1d_state *child;
-+ unsigned long child_consumed;
-+
-+ PORT_Assert (state->place == duringGroup);
-+ PORT_Assert (state->child != NULL);
-+
-+ child = state->child;
-+
-+ child_consumed = child->consumed;
-+ child->consumed = 0;
-+ state->consumed += child_consumed;
-+
-+ /*
-+ * If our child was just our end-of-contents octets, we are done.
-+ */
-+ if (child->endofcontents) {
-+ /* XXX I removed the PORT_Assert (child->dest == NULL) because there
-+ * was a bug in that a template that was a sequence of which also had
-+ * a child of a sequence of, in an indefinite group was not working
-+ * properly. This fix seems to work, (added the if statement below),
-+ * and nothing appears broken, but I am putting this note here just
-+ * in case. */
-+ /*
-+ * XXX No matter how many times I read that comment,
-+ * I cannot figure out what case he was fixing. I believe what he
-+ * did was deliberate, so I am loathe to touch it. I need to
-+ * understand how it could ever be that child->dest != NULL but
-+ * child->endofcontents is true, and why it is important to check
-+ * that state->subitems_head is NULL. This really needs to be
-+ * figured out, as I am not sure if the following code should be
-+ * compensating for "offset", as is done a little farther below
-+ * in the more normal case.
-+ */
-+ PORT_Assert (state->indefinite);
-+ PORT_Assert (state->pending == 0);
-+ if(child->dest && !state->subitems_head) {
-+ sec_asn1d_add_to_subitems (state, child->dest, 0, PR_FALSE);
-+ child->dest = NULL;
-+ }
-+
-+ child->place = notInUse;
-+ state->place = afterGroup;
-+ return;
-+ }
-+
-+ /*
-+ * Do the "after" field notification for next in group.
-+ */
-+ sec_asn1d_notify_after (state->top, child->dest, child->depth);
-+
-+ /*
-+ * Save it away (unless we are not storing).
-+ */
-+ if (child->dest != NULL) {
-+ void *dest;
-+
-+ dest = child->dest;
-+ dest = (char *)dest - child->theTemplate->offset;
-+ sec_asn1d_add_to_subitems (state, dest, 0, PR_FALSE);
-+ child->dest = NULL;
-+ }
-+
-+ /*
-+ * Account for those bytes; see if we are done.
-+ */
-+ if (state->pending) {
-+ PORT_Assert (!state->indefinite);
-+ if (child_consumed > state->pending) {
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ return;
-+ }
-+
-+ state->pending -= child_consumed;
-+ if (state->pending == 0) {
-+ child->place = notInUse;
-+ state->place = afterGroup;
-+ return;
-+ }
-+ }
-+
-+ /*
-+ * Do the "before" field notification for next item in group.
-+ */
-+ sec_asn1d_notify_before (state->top, child->dest, child->depth);
-+
-+ /*
-+ * Now we do the next one.
-+ */
-+ sec_asn1d_scrub_state (child);
-+
-+ /* Initialize child state from the template */
-+ sec_asn1d_init_state_based_on_template(child);
-+
-+ state->top->current = child;
-+}
-+
-+
-+/*
-+ * We are moving along through a sequence; move forward by one,
-+ * (detecting end-of-sequence when it happens).
-+ * XXX The handling of "missing" is ugly. Fix it.
-+ */
-+static void
-+sec_asn1d_next_in_sequence (sec_asn1d_state *state)
-+{
-+ sec_asn1d_state *child;
-+ unsigned long child_consumed;
-+ PRBool child_missing;
-+
-+ PORT_Assert (state->place == duringSequence);
-+ PORT_Assert (state->child != NULL);
-+
-+ child = state->child;
-+
-+ /*
-+ * Do the "after" field notification.
-+ */
-+ sec_asn1d_notify_after (state->top, child->dest, child->depth);
-+
-+ child_missing = (PRBool) child->missing;
-+ child_consumed = child->consumed;
-+ child->consumed = 0;
-+
-+ /*
-+ * Take care of accounting.
-+ */
-+ if (child_missing) {
-+ PORT_Assert (child->optional);
-+ } else {
-+ state->consumed += child_consumed;
-+ /*
-+ * Free any grandchild.
-+ */
-+ sec_asn1d_free_child (child, PR_FALSE);
-+ if (state->pending) {
-+ PORT_Assert (!state->indefinite);
-+ if (child_consumed > state->pending) {
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ return;
-+ }
-+ state->pending -= child_consumed;
-+ if (state->pending == 0) {
-+ child->theTemplate++;
-+ while (child->theTemplate->kind != 0) {
-+ if ((child->theTemplate->kind & SEC_ASN1_OPTIONAL) == 0) {
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ return;
-+ }
-+ child->theTemplate++;
-+ }
-+ child->place = notInUse;
-+ state->place = afterEndOfContents;
-+ return;
-+ }
-+ }
-+ }
-+
-+ /*
-+ * Move forward.
-+ */
-+ child->theTemplate++;
-+ if (child->theTemplate->kind == 0) {
-+ /*
-+ * We are done with this sequence.
-+ */
-+ child->place = notInUse;
-+ if (state->pending) {
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ } else if (child_missing) {
-+ /*
-+ * We got to the end, but have a child that started parsing
-+ * and ended up "missing". The only legitimate reason for
-+ * this is that we had one or more optional fields at the
-+ * end of our sequence, and we were encoded indefinite-length,
-+ * so when we went looking for those optional fields we
-+ * found our end-of-contents octets instead.
-+ * (Yes, this is ugly; dunno a better way to handle it.)
-+ * So, first confirm the situation, and then mark that we
-+ * are done.
-+ */
-+ if (state->indefinite && child->endofcontents) {
-+ PORT_Assert (child_consumed == 2);
-+ if (child_consumed != 2) {
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ } else {
-+ state->consumed += child_consumed;
-+ state->place = afterEndOfContents;
-+ }
-+ } else {
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ }
-+ } else {
-+ /*
-+ * We have to finish out, maybe reading end-of-contents octets;
-+ * let the normal logic do the right thing.
-+ */
-+ state->place = beforeEndOfContents;
-+ }
-+ } else {
-+ unsigned char child_found_tag_modifiers = 0;
-+ unsigned long child_found_tag_number = 0;
-+
-+ /*
-+ * Reset state and push.
-+ */
-+ if (state->dest != NULL)
-+ child->dest = (char *)state->dest + child->theTemplate->offset;
-+
-+ /*
-+ * Do the "before" field notification.
-+ */
-+ sec_asn1d_notify_before (state->top, child->dest, child->depth);
-+
-+ if (child_missing) { /* if previous child was missing, copy the tag data we already have */
-+ child_found_tag_modifiers = child->found_tag_modifiers;
-+ child_found_tag_number = child->found_tag_number;
-+ }
-+ state->top->current = child;
-+ child = sec_asn1d_init_state_based_on_template (child);
-+ if (child_missing) {
-+ child->place = afterIdentifier;
-+ child->found_tag_modifiers = child_found_tag_modifiers;
-+ child->found_tag_number = child_found_tag_number;
-+ child->consumed = child_consumed;
-+ if (child->underlying_kind == SEC_ASN1_ANY
-+ && !child->top->filter_only) {
-+ /*
-+ * If the new field is an ANY, and we are storing, then
-+ * we need to save the tag out. We would have done this
-+ * already in the normal case, but since we were looking
-+ * for an optional field, and we did not find it, we only
-+ * now realize we need to save the tag.
-+ */
-+ unsigned char identifier;
-+
-+ /*
-+ * Check that we did not end up with a high tag; for that
-+ * we need to re-encode the tag into multiple bytes in order
-+ * to store it back to look like what we parsed originally.
-+ * In practice this does not happen, but for completeness
-+ * sake it should probably be made to work at some point.
-+ */
-+ PORT_Assert (child_found_tag_number < SEC_ASN1_HIGH_TAG_NUMBER);
-+ identifier = (unsigned char)(child_found_tag_modifiers | child_found_tag_number);
-+ sec_asn1d_record_any_header (child, (char *) &identifier, 1);
-+ }
-+ }
-+ }
-+}
-+
-+
-+static void
-+sec_asn1d_concat_substrings (sec_asn1d_state *state)
-+{
-+ PORT_Assert (state->place == afterConstructedString);
-+
-+ if (state->subitems_head != NULL) {
-+ struct subitem *substring;
-+ unsigned long alloc_len, item_len;
-+ unsigned char *where;
-+ SECItem *item;
-+ PRBool is_bit_string;
-+
-+ item_len = 0;
-+ is_bit_string = (state->underlying_kind == SEC_ASN1_BIT_STRING)
-+ ? PR_TRUE : PR_FALSE;
-+
-+ substring = state->subitems_head;
-+ while (substring != NULL) {
-+ /*
-+ * All bit-string substrings except the last one should be
-+ * a clean multiple of 8 bits.
-+ */
-+ if (is_bit_string && (substring->next == NULL)
-+ && (substring->len & 0x7)) {
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ return;
-+ }
-+ item_len += substring->len;
-+ substring = substring->next;
-+ }
-+
-+ if (is_bit_string) {
-+#ifdef XP_WIN16 /* win16 compiler gets an internal error otherwise */
-+ alloc_len = (((long)item_len + 7) / 8);
-+#else
-+ alloc_len = ((item_len + 7) >> 3);
-+#endif
-+ } else {
-+ /*
-+ * Add 2 for the end-of-contents octets of an indefinite-length
-+ * ANY that is *not* also an INNER. Because we zero-allocate
-+ * below, all we need to do is increase the length here.
-+ */
-+ if (state->underlying_kind == SEC_ASN1_ANY && state->indefinite)
-+ item_len += 2;
-+ alloc_len = item_len;
-+ }
-+
-+ item = (SECItem *)(state->dest);
-+ PORT_Assert (item != NULL);
-+ PORT_Assert (item->data == NULL);
-+ item->data = (unsigned char*)sec_asn1d_zalloc (state->top->their_pool,
-+ alloc_len);
-+ if (item->data == NULL) {
-+ state->top->status = decodeError;
-+ return;
-+ }
-+ item->len = item_len;
-+
-+ where = item->data;
-+ substring = state->subitems_head;
-+ while (substring != NULL) {
-+ if (is_bit_string)
-+ item_len = (substring->len + 7) >> 3;
-+ else
-+ item_len = substring->len;
-+ PORT_Memcpy (where, substring->data, item_len);
-+ where += item_len;
-+ substring = substring->next;
-+ }
-+
-+ /*
-+ * Because we use arenas and have a mark set, we later free
-+ * everything we have allocated, so this does *not* present
-+ * a memory leak (it is just temporarily left dangling).
-+ */
-+ state->subitems_head = state->subitems_tail = NULL;
-+ }
-+
-+ state->place = afterEndOfContents;
-+}
-+
-+
-+static void
-+sec_asn1d_concat_group (sec_asn1d_state *state)
-+{
-+ const void ***placep;
-+
-+ PORT_Assert (state->place == afterGroup);
-+
-+ placep = (const void***)state->dest;
-+ PORT_Assert(state->subitems_head == NULL || placep != NULL);
-+ if (placep != NULL) {
-+ struct subitem *item;
-+ const void **group;
-+ int count;
-+
-+ count = 0;
-+ item = state->subitems_head;
-+ while (item != NULL) {
-+ PORT_Assert (item->next != NULL || item == state->subitems_tail);
-+ count++;
-+ item = item->next;
-+ }
-+
-+ group = (const void**)sec_asn1d_zalloc (state->top->their_pool,
-+ (count + 1) * (sizeof(void *)));
-+ if (group == NULL) {
-+ state->top->status = decodeError;
-+ return;
-+ }
-+
-+ *placep = group;
-+
-+ item = state->subitems_head;
-+ while (item != NULL) {
-+ *group++ = item->data;
-+ item = item->next;
-+ }
-+ *group = NULL;
-+
-+ /*
-+ * Because we use arenas and have a mark set, we later free
-+ * everything we have allocated, so this does *not* present
-+ * a memory leak (it is just temporarily left dangling).
-+ */
-+ state->subitems_head = state->subitems_tail = NULL;
-+ }
-+
-+ state->place = afterEndOfContents;
-+}
-+
-+
-+/*
-+ * For those states that push a child to handle a subtemplate,
-+ * "absorb" that child (transfer necessary information).
-+ */
-+static void
-+sec_asn1d_absorb_child (sec_asn1d_state *state)
-+{
-+ /*
-+ * There is absolutely supposed to be a child there.
-+ */
-+ PORT_Assert (state->child != NULL);
-+
-+ /*
-+ * Inherit the missing status of our child, and do the ugly
-+ * backing-up if necessary.
-+ */
-+ state->missing = state->child->missing;
-+ if (state->missing) {
-+ state->found_tag_number = state->child->found_tag_number;
-+ state->found_tag_modifiers = state->child->found_tag_modifiers;
-+ state->endofcontents = state->child->endofcontents;
-+ }
-+
-+ /*
-+ * Add in number of bytes consumed by child.
-+ * (Only EXPLICIT should have already consumed bytes itself.)
-+ */
-+ PORT_Assert (state->place == afterExplicit || state->consumed == 0);
-+ state->consumed += state->child->consumed;
-+
-+ /*
-+ * Subtract from bytes pending; this only applies to a definite-length
-+ * EXPLICIT field.
-+ */
-+ if (state->pending) {
-+ PORT_Assert (!state->indefinite);
-+ PORT_Assert (state->place == afterExplicit);
-+
-+ /*
-+ * If we had a definite-length explicit, then what the child
-+ * consumed should be what was left pending.
-+ */
-+ if (state->pending != state->child->consumed) {
-+ if (state->pending < state->child->consumed) {
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ return;
-+ }
-+ /*
-+ * Okay, this is a hack. It *should* be an error whether
-+ * pending is too big or too small, but it turns out that
-+ * we had a bug in our *old* DER encoder that ended up
-+ * counting an explicit header twice in the case where
-+ * the underlying type was an ANY. So, because we cannot
-+ * prevent receiving these (our own certificate server can
-+ * send them to us), we need to be lenient and accept them.
-+ * To do so, we need to pretend as if we read all of the
-+ * bytes that the header said we would find, even though
-+ * we actually came up short.
-+ */
-+ state->consumed += (state->pending - state->child->consumed);
-+ }
-+ state->pending = 0;
-+ }
-+
-+ /*
-+ * Indicate that we are done with child.
-+ */
-+ state->child->consumed = 0;
-+
-+ /*
-+ * And move on to final state.
-+ * (Technically everybody could move to afterEndOfContents except
-+ * for an indefinite-length EXPLICIT; for simplicity though we assert
-+ * that but let the end-of-contents code do the real determination.)
-+ */
-+ PORT_Assert (state->place == afterExplicit || (! state->indefinite));
-+ state->place = beforeEndOfContents;
-+}
-+
-+
-+static void
-+sec_asn1d_prepare_for_end_of_contents (sec_asn1d_state *state)
-+{
-+ PORT_Assert (state->place == beforeEndOfContents);
-+
-+ if (state->indefinite) {
-+ state->place = duringEndOfContents;
-+ state->pending = 2;
-+ } else {
-+ state->place = afterEndOfContents;
-+ }
-+}
-+
-+
-+static unsigned long
-+sec_asn1d_parse_end_of_contents (sec_asn1d_state *state,
-+ const char *buf, unsigned long len)
-+{
-+ unsigned int i;
-+
-+ PORT_Assert (state->pending <= 2);
-+ PORT_Assert (state->place == duringEndOfContents);
-+
-+ if (len == 0) {
-+ state->top->status = needBytes;
-+ return 0;
-+ }
-+
-+ if (state->pending < len)
-+ len = state->pending;
-+
-+ for (i = 0; i < len; i++) {
-+ if (buf[i] != 0) {
-+ /*
-+ * We expect to find only zeros; if not, just give up.
-+ */
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ return 0;
-+ }
-+ }
-+
-+ state->pending -= len;
-+
-+ if (state->pending == 0) {
-+ state->place = afterEndOfContents;
-+ state->endofcontents = PR_TRUE;
-+ }
-+
-+ return len;
-+}
-+
-+
-+static void
-+sec_asn1d_pop_state (sec_asn1d_state *state)
-+{
-+#if 0 /* XXX I think this should always be handled explicitly by parent? */
-+ /*
-+ * Account for our child.
-+ */
-+ if (state->child != NULL) {
-+ state->consumed += state->child->consumed;
-+ if (state->pending) {
-+ PORT_Assert (!state->indefinite);
-+ if (state->child->consumed > state->pending) {
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ } else {
-+ state->pending -= state->child->consumed;
-+ }
-+ }
-+ state->child->consumed = 0;
-+ }
-+#endif /* XXX */
-+
-+ /*
-+ * Free our child.
-+ */
-+ sec_asn1d_free_child (state, PR_FALSE);
-+
-+ /*
-+ * Just make my parent be the current state. It will then clean
-+ * up after me and free me (or reuse me).
-+ */
-+ state->top->current = state->parent;
-+}
-+
-+static sec_asn1d_state *
-+sec_asn1d_before_choice (sec_asn1d_state *state)
-+{
-+ sec_asn1d_state *child;
-+
-+ if (state->allocate) {
-+ void *dest;
-+
-+ dest = sec_asn1d_zalloc(state->top->their_pool, state->theTemplate->size);
-+ if ((void *)NULL == dest) {
-+ state->top->status = decodeError;
-+ return (sec_asn1d_state *)NULL;
-+ }
-+
-+ state->dest = (char *)dest + state->theTemplate->offset;
-+ }
-+
-+ child = sec_asn1d_push_state(state->top, state->theTemplate + 1,
-+ (char *)state->dest - state->theTemplate->offset,
-+ PR_FALSE);
-+ if ((sec_asn1d_state *)NULL == child) {
-+ return (sec_asn1d_state *)NULL;
-+ }
-+
-+ sec_asn1d_scrub_state(child);
-+ child = sec_asn1d_init_state_based_on_template(child);
-+ if ((sec_asn1d_state *)NULL == child) {
-+ return (sec_asn1d_state *)NULL;
-+ }
-+
-+ child->optional = PR_TRUE;
-+
-+ state->place = duringChoice;
-+
-+ return child;
-+}
-+
-+static sec_asn1d_state *
-+sec_asn1d_during_choice (sec_asn1d_state *state)
-+{
-+ sec_asn1d_state *child = state->child;
-+
-+ PORT_Assert((sec_asn1d_state *)NULL != child);
-+
-+ if (child->missing) {
-+ unsigned char child_found_tag_modifiers = 0;
-+ unsigned long child_found_tag_number = 0;
-+ void * dest;
-+
-+ state->consumed += child->consumed;
-+
-+ if (child->endofcontents) {
-+ /* This choice is probably the first item in a GROUP
-+ ** (e.g. SET_OF) that was indefinite-length encoded.
-+ ** We're actually at the end of that GROUP.
-+ ** We look up the stack to be sure that we find
-+ ** a state with indefinite length encoding before we
-+ ** find a state (like a SEQUENCE) that is definite.
-+ */
-+ child->place = notInUse;
-+ state->place = afterChoice;
-+ state->endofcontents = PR_TRUE; /* propagate this up */
-+ if (sec_asn1d_parent_allows_EOC(state))
-+ return state;
-+ PORT_SetError(SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ return NULL;
-+ }
-+
-+ dest = (char *)child->dest - child->theTemplate->offset;
-+ child->theTemplate++;
-+
-+ if (0 == child->theTemplate->kind) {
-+ /* Ran out of choices */
-+ PORT_SetError(SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ return (sec_asn1d_state *)NULL;
-+ }
-+ child->dest = (char *)dest + child->theTemplate->offset;
-+
-+ /* cargo'd from next_in_sequence innards */
-+ if (state->pending) {
-+ PORT_Assert(!state->indefinite);
-+ if (child->consumed > state->pending) {
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ return NULL;
-+ }
-+ state->pending -= child->consumed;
-+ if (0 == state->pending) {
-+ /* XXX uh.. not sure if I should have stopped this
-+ * from happening before. */
-+ PORT_Assert(0);
-+ PORT_SetError(SEC_ERROR_BAD_DER);
-+ state->top->status = decodeError;
-+ return (sec_asn1d_state *)NULL;
-+ }
-+ }
-+
-+ child->consumed = 0;
-+ sec_asn1d_scrub_state(child);
-+
-+ /* move it on top again */
-+ state->top->current = child;
-+
-+ child_found_tag_modifiers = child->found_tag_modifiers;
-+ child_found_tag_number = child->found_tag_number;
-+
-+ child = sec_asn1d_init_state_based_on_template(child);
-+ if ((sec_asn1d_state *)NULL == child) {
-+ return (sec_asn1d_state *)NULL;
-+ }
-+
-+ /* copy our findings to the new top */
-+ child->found_tag_modifiers = child_found_tag_modifiers;
-+ child->found_tag_number = child_found_tag_number;
-+
-+ child->optional = PR_TRUE;
-+ child->place = afterIdentifier;
-+
-+ return child;
-+ }
-+ if ((void *)NULL != state->dest) {
-+ /* Store the enum */
-+ int *which = (int *)state->dest;
-+ *which = (int)child->theTemplate->size;
-+ }
-+
-+ child->place = notInUse;
-+
-+ state->place = afterChoice;
-+ return state;
-+}
-+
-+static void
-+sec_asn1d_after_choice (sec_asn1d_state *state)
-+{
-+ state->consumed += state->child->consumed;
-+ state->child->consumed = 0;
-+ state->place = afterEndOfContents;
-+ sec_asn1d_pop_state(state);
-+}
-+
-+unsigned long
-+sec_asn1d_uinteger(SECItem *src)
-+{
-+ unsigned long value;
-+ int len;
-+
-+ if (src->len > 5 || (src->len > 4 && src->data[0] == 0))
-+ return 0;
-+
-+ value = 0;
-+ len = src->len;
-+ while (len) {
-+ value <<= 8;
-+ value |= src->data[--len];
-+ }
-+ return value;
-+}
-+
-+SECStatus
-+SEC_ASN1DecodeInteger(SECItem *src, unsigned long *value)
-+{
-+ unsigned long v;
-+ unsigned int i;
-+
-+ if (src == NULL) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+
-+ if (src->len > sizeof(unsigned long)) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+
-+ if (src->data == NULL) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+
-+ if (src->data[0] & 0x80)
-+ v = -1; /* signed and negative - start with all 1's */
-+ else
-+ v = 0;
-+
-+ for (i= 0; i < src->len; i++) {
-+ /* shift in next byte */
-+ v <<= 8;
-+ v |= src->data[i];
-+ }
-+ *value = v;
-+ return SECSuccess;
-+}
-+
-+#ifdef DEBUG_ASN1D_STATES
-+static void
-+dump_states(SEC_ASN1DecoderContext *cx)
-+{
-+ sec_asn1d_state *state;
-+ char kindBuf[256];
-+
-+ for (state = cx->current; state->parent; state = state->parent) {
-+ ;
-+ }
-+
-+ for (; state; state = state->child) {
-+ int i;
-+ for (i = 0; i < state->depth; i++) {
-+ printf(" ");
-+ }
-+
-+ i = formatKind(state->theTemplate->kind, kindBuf);
-+ printf("%s: tmpl %08x, kind%s",
-+ (state == cx->current) ? "STATE" : "State",
-+ state->theTemplate,
-+ kindBuf);
-+ printf(" %s", (state->place >= 0 && state->place <= notInUse)
-+ ? place_names[ state->place ]
-+ : "(undefined)");
-+ if (!i)
-+ printf(", expect 0x%02x",
-+ state->expect_tag_number | state->expect_tag_modifiers);
-+
-+ printf("%s%s%s %d\n",
-+ state->indefinite ? ", indef" : "",
-+ state->missing ? ", miss" : "",
-+ state->endofcontents ? ", EOC" : "",
-+ state->pending
-+ );
-+ }
-+
-+ return;
-+}
-+#endif /* DEBUG_ASN1D_STATES */
-+
-+SECStatus
-+SEC_ASN1DecoderUpdate (SEC_ASN1DecoderContext *cx,
-+ const char *buf, unsigned long len)
-+{
-+ sec_asn1d_state *state = NULL;
-+ unsigned long consumed;
-+ SEC_ASN1EncodingPart what;
-+ sec_asn1d_state *stateEnd = cx->current;
-+
-+ if (cx->status == needBytes)
-+ cx->status = keepGoing;
-+
-+ while (cx->status == keepGoing) {
-+ state = cx->current;
-+ what = SEC_ASN1_Contents;
-+ consumed = 0;
-+#ifdef DEBUG_ASN1D_STATES
-+ printf("\nPLACE = %s, next byte = 0x%02x, %08x[%d]\n",
-+ (state->place >= 0 && state->place <= notInUse) ?
-+ place_names[ state->place ] : "(undefined)",
-+ (unsigned int)((unsigned char *)buf)[ consumed ],
-+ buf, consumed);
-+ dump_states(cx);
-+#endif /* DEBUG_ASN1D_STATES */
-+ switch (state->place) {
-+ case beforeIdentifier:
-+ consumed = sec_asn1d_parse_identifier (state, buf, len);
-+ what = SEC_ASN1_Identifier;
-+ break;
-+ case duringIdentifier:
-+ consumed = sec_asn1d_parse_more_identifier (state, buf, len);
-+ what = SEC_ASN1_Identifier;
-+ break;
-+ case afterIdentifier:
-+ sec_asn1d_confirm_identifier (state);
-+ break;
-+ case beforeLength:
-+ consumed = sec_asn1d_parse_length (state, buf, len);
-+ what = SEC_ASN1_Length;
-+ break;
-+ case duringLength:
-+ consumed = sec_asn1d_parse_more_length (state, buf, len);
-+ what = SEC_ASN1_Length;
-+ break;
-+ case afterLength:
-+ sec_asn1d_prepare_for_contents (state);
-+ break;
-+ case beforeBitString:
-+ consumed = sec_asn1d_parse_bit_string (state, buf, len);
-+ break;
-+ case duringBitString:
-+ consumed = sec_asn1d_parse_more_bit_string (state, buf, len);
-+ break;
-+ case duringConstructedString:
-+ sec_asn1d_next_substring (state);
-+ break;
-+ case duringGroup:
-+ sec_asn1d_next_in_group (state);
-+ break;
-+ case duringLeaf:
-+ consumed = sec_asn1d_parse_leaf (state, buf, len);
-+ break;
-+ case duringSaveEncoding:
-+ sec_asn1d_reuse_encoding (state);
-+ if (cx->status == decodeError) {
-+ /* recursive call has already popped all states from stack.
-+ ** Bail out quickly.
-+ */
-+ return SECFailure;
-+ }
-+ if (cx->status == needBytes) {
-+ /* recursive call wanted more data. Fatal. Clean up below. */
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ cx->status = decodeError;
-+ }
-+ break;
-+ case duringSequence:
-+ sec_asn1d_next_in_sequence (state);
-+ break;
-+ case afterConstructedString:
-+ sec_asn1d_concat_substrings (state);
-+ break;
-+ case afterExplicit:
-+ case afterImplicit:
-+ case afterInline:
-+ case afterPointer:
-+ sec_asn1d_absorb_child (state);
-+ break;
-+ case afterGroup:
-+ sec_asn1d_concat_group (state);
-+ break;
-+ case afterSaveEncoding:
-+ /* SEC_ASN1DecoderUpdate has called itself recursively to
-+ ** decode SAVEd encoded data, and now is done decoding that.
-+ ** Return to the calling copy of SEC_ASN1DecoderUpdate.
-+ */
-+ return SECSuccess;
-+ case beforeEndOfContents:
-+ sec_asn1d_prepare_for_end_of_contents (state);
-+ break;
-+ case duringEndOfContents:
-+ consumed = sec_asn1d_parse_end_of_contents (state, buf, len);
-+ what = SEC_ASN1_EndOfContents;
-+ break;
-+ case afterEndOfContents:
-+ sec_asn1d_pop_state (state);
-+ break;
-+ case beforeChoice:
-+ state = sec_asn1d_before_choice(state);
-+ break;
-+ case duringChoice:
-+ state = sec_asn1d_during_choice(state);
-+ break;
-+ case afterChoice:
-+ sec_asn1d_after_choice(state);
-+ break;
-+ case notInUse:
-+ default:
-+ /* This is not an error, but rather a plain old BUG! */
-+ PORT_Assert (0);
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ cx->status = decodeError;
-+ break;
-+ }
-+
-+ if (cx->status == decodeError)
-+ break;
-+
-+ /* We should not consume more than we have. */
-+ PORT_Assert (consumed <= len);
-+ if (consumed > len) {
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ cx->status = decodeError;
-+ break;
-+ }
-+
-+ /* It might have changed, so we have to update our local copy. */
-+ state = cx->current;
-+
-+ /* If it is NULL, we have popped all the way to the top. */
-+ if (state == NULL) {
-+ PORT_Assert (consumed == 0);
-+#if 0 /* XXX I want this here, but it seems that we have situations (like
-+ * downloading a pkcs7 cert chain from some issuers) that give us a
-+ * length which is greater than the entire encoding. So, we cannot
-+ * have this be an error.
-+ */
-+ if (len > 0) {
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ cx->status = decodeError;
-+ } else
-+#endif
-+ cx->status = allDone;
-+ break;
-+ }
-+ else if (state->theTemplate->kind == SEC_ASN1_SKIP_REST) {
-+ cx->status = allDone;
-+ break;
-+ }
-+
-+ if (consumed == 0)
-+ continue;
-+
-+ /*
-+ * The following check is specifically looking for an ANY
-+ * that is *not* also an INNER, because we need to save aside
-+ * all bytes in that case -- the contents parts will get
-+ * handled like all other contents, and the end-of-contents
-+ * bytes are added by the concat code, but the outer header
-+ * bytes need to get saved too, so we do them explicitly here.
-+ */
-+ if (state->underlying_kind == SEC_ASN1_ANY
-+ && !cx->filter_only && (what == SEC_ASN1_Identifier
-+ || what == SEC_ASN1_Length)) {
-+ sec_asn1d_record_any_header (state, buf, consumed);
-+ }
-+
-+ /*
-+ * We had some number of good, accepted bytes. If the caller
-+ * has registered to see them, pass them along.
-+ */
-+ if (state->top->filter_proc != NULL) {
-+ int depth;
-+
-+ depth = state->depth;
-+ if (what == SEC_ASN1_EndOfContents && !state->indefinite) {
-+ PORT_Assert (state->parent != NULL
-+ && state->parent->indefinite);
-+ depth--;
-+ PORT_Assert (depth == state->parent->depth);
-+ }
-+ (* state->top->filter_proc) (state->top->filter_arg,
-+ buf, consumed, depth, what);
-+ }
-+
-+ state->consumed += consumed;
-+ buf += consumed;
-+ len -= consumed;
-+ }
-+
-+ if (cx->status == decodeError) {
-+ while (state != NULL && stateEnd->parent!=state) {
-+ sec_asn1d_free_child (state, PR_TRUE);
-+ state = state->parent;
-+ }
-+#ifdef SEC_ASN1D_FREE_ON_ERROR /*
-+ * XXX This does not work because we can
-+ * end up leaving behind dangling pointers
-+ * to stuff that was allocated. In order
-+ * to make this really work (which would
-+ * be a good thing, I think), we need to
-+ * keep track of every place/pointer that
-+ * was allocated and make sure to NULL it
-+ * out before we then free back to the mark.
-+ */
-+ if (cx->their_pool != NULL) {
-+ PORT_Assert (cx->their_mark != NULL);
-+ PORT_ArenaRelease (cx->their_pool, cx->their_mark);
-+ }
-+#endif
-+ return SECFailure;
-+ }
-+
-+#if 0 /* XXX This is what I want, but cannot have because it seems we
-+ * have situations (like when downloading a pkcs7 cert chain from
-+ * some issuers) that give us a total length which is greater than
-+ * the entire encoding. So, we have to allow allDone to have a
-+ * remaining length greater than zero. I wanted to catch internal
-+ * bugs with this, noticing when we do not have the right length.
-+ * Oh well.
-+ */
-+ PORT_Assert (len == 0
-+ && (cx->status == needBytes || cx->status == allDone));
-+#else
-+ PORT_Assert ((len == 0 && cx->status == needBytes)
-+ || cx->status == allDone);
-+#endif
-+ return SECSuccess;
-+}
-+
-+
-+SECStatus
-+SEC_ASN1DecoderFinish (SEC_ASN1DecoderContext *cx)
-+{
-+ SECStatus rv;
-+
-+ if (cx->status == needBytes) {
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ rv = SECFailure;
-+ } else {
-+ rv = SECSuccess;
-+ }
-+
-+ /*
-+ * XXX anything else that needs to be finished?
-+ */
-+
-+ PORT_FreeArena (cx->our_pool, PR_FALSE);
-+
-+ return rv;
-+}
-+
-+
-+SEC_ASN1DecoderContext *
-+SEC_ASN1DecoderStart (PRArenaPool *their_pool, void *dest,
-+ const SEC_ASN1Template *theTemplate)
-+{
-+ PRArenaPool *our_pool;
-+ SEC_ASN1DecoderContext *cx;
-+
-+ our_pool = PORT_NewArena (SEC_ASN1_DEFAULT_ARENA_SIZE);
-+ if (our_pool == NULL)
-+ return NULL;
-+
-+ cx = (SEC_ASN1DecoderContext*)PORT_ArenaZAlloc (our_pool, sizeof(*cx));
-+ if (cx == NULL) {
-+ PORT_FreeArena (our_pool, PR_FALSE);
-+ return NULL;
-+ }
-+
-+ cx->our_pool = our_pool;
-+ if (their_pool != NULL) {
-+ cx->their_pool = their_pool;
-+#ifdef SEC_ASN1D_FREE_ON_ERROR
-+ cx->their_mark = PORT_ArenaMark (their_pool);
-+#endif
-+ }
-+
-+ cx->status = needBytes;
-+
-+ if (sec_asn1d_push_state(cx, theTemplate, dest, PR_FALSE) == NULL
-+ || sec_asn1d_init_state_based_on_template (cx->current) == NULL) {
-+ /*
-+ * Trouble initializing (probably due to failed allocations)
-+ * requires that we just give up.
-+ */
-+ PORT_FreeArena (our_pool, PR_FALSE);
-+ return NULL;
-+ }
-+
-+ return cx;
-+}
-+
-+
-+void
-+SEC_ASN1DecoderSetFilterProc (SEC_ASN1DecoderContext *cx,
-+ SEC_ASN1WriteProc fn, void *arg,
-+ PRBool only)
-+{
-+ /* check that we are "between" fields here */
-+ PORT_Assert (cx->during_notify);
-+
-+ cx->filter_proc = fn;
-+ cx->filter_arg = arg;
-+ cx->filter_only = only;
-+}
-+
-+
-+void
-+SEC_ASN1DecoderClearFilterProc (SEC_ASN1DecoderContext *cx)
-+{
-+ /* check that we are "between" fields here */
-+ PORT_Assert (cx->during_notify);
-+
-+ cx->filter_proc = NULL;
-+ cx->filter_arg = NULL;
-+ cx->filter_only = PR_FALSE;
-+}
-+
-+
-+void
-+SEC_ASN1DecoderSetNotifyProc (SEC_ASN1DecoderContext *cx,
-+ SEC_ASN1NotifyProc fn, void *arg)
-+{
-+ cx->notify_proc = fn;
-+ cx->notify_arg = arg;
-+}
-+
-+
-+void
-+SEC_ASN1DecoderClearNotifyProc (SEC_ASN1DecoderContext *cx)
-+{
-+ cx->notify_proc = NULL;
-+ cx->notify_arg = NULL; /* not necessary; just being clean */
-+}
-+
-+void
-+SEC_ASN1DecoderAbort(SEC_ASN1DecoderContext *cx, int error)
-+{
-+ PORT_Assert(cx);
-+ PORT_SetError(error);
-+ cx->status = decodeError;
-+}
-+
-+
-+SECStatus
-+SEC_ASN1Decode (PRArenaPool *poolp, void *dest,
-+ const SEC_ASN1Template *theTemplate,
-+ const char *buf, long len)
-+{
-+ SEC_ASN1DecoderContext *dcx;
-+ SECStatus urv, frv;
-+
-+ dcx = SEC_ASN1DecoderStart (poolp, dest, theTemplate);
-+ if (dcx == NULL)
-+ return SECFailure;
-+
-+ urv = SEC_ASN1DecoderUpdate (dcx, buf, len);
-+ frv = SEC_ASN1DecoderFinish (dcx);
-+
-+ if (urv != SECSuccess)
-+ return urv;
-+
-+ return frv;
-+}
-+
-+
-+SECStatus
-+SEC_ASN1DecodeItem (PRArenaPool *poolp, void *dest,
-+ const SEC_ASN1Template *theTemplate,
-+ const SECItem *src)
-+{
-+ return SEC_ASN1Decode (poolp, dest, theTemplate,
-+ (const char *)src->data, src->len);
-+}
-+
-+#ifdef DEBUG_ASN1D_STATES
-+void sec_asn1d_Assert(const char *s, const char *file, PRIntn ln)
-+{
-+ printf("Assertion failed, \"%s\", file %s, line %d\n", s, file, ln);
-+ fflush(stdout);
-+}
-+#endif
-+
-+/*
-+ * Generic templates for individual/simple items and pointers to
-+ * and sets of same.
-+ *
-+ * If you need to add a new one, please note the following:
-+ * - For each new basic type you should add *four* templates:
-+ * one plain, one PointerTo, one SequenceOf and one SetOf.
-+ * - If the new type can be constructed (meaning, it is a
-+ * *string* type according to BER/DER rules), then you should
-+ * or-in SEC_ASN1_MAY_STREAM to the type in the basic template.
-+ * See the definition of the OctetString template for an example.
-+ * - It may not be obvious, but these are in *alphabetical*
-+ * order based on the SEC_ASN1_XXX name; so put new ones in
-+ * the appropriate place.
-+ */
-+
-+const SEC_ASN1Template SEC_AnyTemplate[] = {
-+ { SEC_ASN1_ANY | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) }
-+};
-+
-+const SEC_ASN1Template SEC_PointerToAnyTemplate[] = {
-+ { SEC_ASN1_POINTER, 0, SEC_AnyTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SequenceOfAnyTemplate[] = {
-+ { SEC_ASN1_SEQUENCE_OF, 0, SEC_AnyTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SetOfAnyTemplate[] = {
-+ { SEC_ASN1_SET_OF, 0, SEC_AnyTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_BitStringTemplate[] = {
-+ { SEC_ASN1_BIT_STRING | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) }
-+};
-+
-+const SEC_ASN1Template SEC_PointerToBitStringTemplate[] = {
-+ { SEC_ASN1_POINTER, 0, SEC_BitStringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SequenceOfBitStringTemplate[] = {
-+ { SEC_ASN1_SEQUENCE_OF, 0, SEC_BitStringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SetOfBitStringTemplate[] = {
-+ { SEC_ASN1_SET_OF, 0, SEC_BitStringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_BMPStringTemplate[] = {
-+ { SEC_ASN1_BMP_STRING | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) }
-+};
-+
-+const SEC_ASN1Template SEC_PointerToBMPStringTemplate[] = {
-+ { SEC_ASN1_POINTER, 0, SEC_BMPStringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SequenceOfBMPStringTemplate[] = {
-+ { SEC_ASN1_SEQUENCE_OF, 0, SEC_BMPStringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SetOfBMPStringTemplate[] = {
-+ { SEC_ASN1_SET_OF, 0, SEC_BMPStringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_BooleanTemplate[] = {
-+ { SEC_ASN1_BOOLEAN, 0, NULL, sizeof(SECItem) }
-+};
-+
-+const SEC_ASN1Template SEC_PointerToBooleanTemplate[] = {
-+ { SEC_ASN1_POINTER, 0, SEC_BooleanTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SequenceOfBooleanTemplate[] = {
-+ { SEC_ASN1_SEQUENCE_OF, 0, SEC_BooleanTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SetOfBooleanTemplate[] = {
-+ { SEC_ASN1_SET_OF, 0, SEC_BooleanTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_EnumeratedTemplate[] = {
-+ { SEC_ASN1_ENUMERATED, 0, NULL, sizeof(SECItem) }
-+};
-+
-+const SEC_ASN1Template SEC_PointerToEnumeratedTemplate[] = {
-+ { SEC_ASN1_POINTER, 0, SEC_EnumeratedTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SequenceOfEnumeratedTemplate[] = {
-+ { SEC_ASN1_SEQUENCE_OF, 0, SEC_EnumeratedTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SetOfEnumeratedTemplate[] = {
-+ { SEC_ASN1_SET_OF, 0, SEC_EnumeratedTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_GeneralizedTimeTemplate[] = {
-+ { SEC_ASN1_GENERALIZED_TIME | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem)}
-+};
-+
-+const SEC_ASN1Template SEC_PointerToGeneralizedTimeTemplate[] = {
-+ { SEC_ASN1_POINTER, 0, SEC_GeneralizedTimeTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SequenceOfGeneralizedTimeTemplate[] = {
-+ { SEC_ASN1_SEQUENCE_OF, 0, SEC_GeneralizedTimeTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SetOfGeneralizedTimeTemplate[] = {
-+ { SEC_ASN1_SET_OF, 0, SEC_GeneralizedTimeTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_IA5StringTemplate[] = {
-+ { SEC_ASN1_IA5_STRING | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) }
-+};
-+
-+const SEC_ASN1Template SEC_PointerToIA5StringTemplate[] = {
-+ { SEC_ASN1_POINTER, 0, SEC_IA5StringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SequenceOfIA5StringTemplate[] = {
-+ { SEC_ASN1_SEQUENCE_OF, 0, SEC_IA5StringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SetOfIA5StringTemplate[] = {
-+ { SEC_ASN1_SET_OF, 0, SEC_IA5StringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_IntegerTemplate[] = {
-+ { SEC_ASN1_INTEGER, 0, NULL, sizeof(SECItem) }
-+};
-+
-+const SEC_ASN1Template SEC_PointerToIntegerTemplate[] = {
-+ { SEC_ASN1_POINTER, 0, SEC_IntegerTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SequenceOfIntegerTemplate[] = {
-+ { SEC_ASN1_SEQUENCE_OF, 0, SEC_IntegerTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SetOfIntegerTemplate[] = {
-+ { SEC_ASN1_SET_OF, 0, SEC_IntegerTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_NullTemplate[] = {
-+ { SEC_ASN1_NULL, 0, NULL, sizeof(SECItem) }
-+};
-+
-+const SEC_ASN1Template SEC_PointerToNullTemplate[] = {
-+ { SEC_ASN1_POINTER, 0, SEC_NullTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SequenceOfNullTemplate[] = {
-+ { SEC_ASN1_SEQUENCE_OF, 0, SEC_NullTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SetOfNullTemplate[] = {
-+ { SEC_ASN1_SET_OF, 0, SEC_NullTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_ObjectIDTemplate[] = {
-+ { SEC_ASN1_OBJECT_ID, 0, NULL, sizeof(SECItem) }
-+};
-+
-+const SEC_ASN1Template SEC_PointerToObjectIDTemplate[] = {
-+ { SEC_ASN1_POINTER, 0, SEC_ObjectIDTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SequenceOfObjectIDTemplate[] = {
-+ { SEC_ASN1_SEQUENCE_OF, 0, SEC_ObjectIDTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SetOfObjectIDTemplate[] = {
-+ { SEC_ASN1_SET_OF, 0, SEC_ObjectIDTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_OctetStringTemplate[] = {
-+ { SEC_ASN1_OCTET_STRING | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) }
-+};
-+
-+const SEC_ASN1Template SEC_PointerToOctetStringTemplate[] = {
-+ { SEC_ASN1_POINTER | SEC_ASN1_MAY_STREAM, 0, SEC_OctetStringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SequenceOfOctetStringTemplate[] = {
-+ { SEC_ASN1_SEQUENCE_OF, 0, SEC_OctetStringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SetOfOctetStringTemplate[] = {
-+ { SEC_ASN1_SET_OF, 0, SEC_OctetStringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_PrintableStringTemplate[] = {
-+ { SEC_ASN1_PRINTABLE_STRING | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem)}
-+};
-+
-+const SEC_ASN1Template SEC_PointerToPrintableStringTemplate[] = {
-+ { SEC_ASN1_POINTER, 0, SEC_PrintableStringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SequenceOfPrintableStringTemplate[] = {
-+ { SEC_ASN1_SEQUENCE_OF, 0, SEC_PrintableStringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SetOfPrintableStringTemplate[] = {
-+ { SEC_ASN1_SET_OF, 0, SEC_PrintableStringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_T61StringTemplate[] = {
-+ { SEC_ASN1_T61_STRING | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) }
-+};
-+
-+const SEC_ASN1Template SEC_PointerToT61StringTemplate[] = {
-+ { SEC_ASN1_POINTER, 0, SEC_T61StringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SequenceOfT61StringTemplate[] = {
-+ { SEC_ASN1_SEQUENCE_OF, 0, SEC_T61StringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SetOfT61StringTemplate[] = {
-+ { SEC_ASN1_SET_OF, 0, SEC_T61StringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_UniversalStringTemplate[] = {
-+ { SEC_ASN1_UNIVERSAL_STRING | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem)}
-+};
-+
-+const SEC_ASN1Template SEC_PointerToUniversalStringTemplate[] = {
-+ { SEC_ASN1_POINTER, 0, SEC_UniversalStringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SequenceOfUniversalStringTemplate[] = {
-+ { SEC_ASN1_SEQUENCE_OF, 0, SEC_UniversalStringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SetOfUniversalStringTemplate[] = {
-+ { SEC_ASN1_SET_OF, 0, SEC_UniversalStringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_UTCTimeTemplate[] = {
-+ { SEC_ASN1_UTC_TIME | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) }
-+};
-+
-+const SEC_ASN1Template SEC_PointerToUTCTimeTemplate[] = {
-+ { SEC_ASN1_POINTER, 0, SEC_UTCTimeTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SequenceOfUTCTimeTemplate[] = {
-+ { SEC_ASN1_SEQUENCE_OF, 0, SEC_UTCTimeTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SetOfUTCTimeTemplate[] = {
-+ { SEC_ASN1_SET_OF, 0, SEC_UTCTimeTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_UTF8StringTemplate[] = {
-+ { SEC_ASN1_UTF8_STRING | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem)}
-+};
-+
-+const SEC_ASN1Template SEC_PointerToUTF8StringTemplate[] = {
-+ { SEC_ASN1_POINTER, 0, SEC_UTF8StringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SequenceOfUTF8StringTemplate[] = {
-+ { SEC_ASN1_SEQUENCE_OF, 0, SEC_UTF8StringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SetOfUTF8StringTemplate[] = {
-+ { SEC_ASN1_SET_OF, 0, SEC_UTF8StringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_VisibleStringTemplate[] = {
-+ { SEC_ASN1_VISIBLE_STRING | SEC_ASN1_MAY_STREAM, 0, NULL, sizeof(SECItem) }
-+};
-+
-+const SEC_ASN1Template SEC_PointerToVisibleStringTemplate[] = {
-+ { SEC_ASN1_POINTER, 0, SEC_VisibleStringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SequenceOfVisibleStringTemplate[] = {
-+ { SEC_ASN1_SEQUENCE_OF, 0, SEC_VisibleStringTemplate }
-+};
-+
-+const SEC_ASN1Template SEC_SetOfVisibleStringTemplate[] = {
-+ { SEC_ASN1_SET_OF, 0, SEC_VisibleStringTemplate }
-+};
-+
-+
-+/*
-+ * Template for skipping a subitem.
-+ *
-+ * Note that it only makes sense to use this for decoding (when you want
-+ * to decode something where you are only interested in one or two of
-+ * the fields); you cannot encode a SKIP!
-+ */
-+const SEC_ASN1Template SEC_SkipTemplate[] = {
-+ { SEC_ASN1_SKIP }
-+};
-+
-+
-+/* These functions simply return the address of the above-declared templates.
-+** This is necessary for Windows DLLs. Sigh.
-+*/
-+SEC_ASN1_CHOOSER_IMPLEMENT(SEC_AnyTemplate)
-+SEC_ASN1_CHOOSER_IMPLEMENT(SEC_BMPStringTemplate)
-+SEC_ASN1_CHOOSER_IMPLEMENT(SEC_BooleanTemplate)
-+SEC_ASN1_CHOOSER_IMPLEMENT(SEC_BitStringTemplate)
-+SEC_ASN1_CHOOSER_IMPLEMENT(SEC_IA5StringTemplate)
-+SEC_ASN1_CHOOSER_IMPLEMENT(SEC_GeneralizedTimeTemplate)
-+SEC_ASN1_CHOOSER_IMPLEMENT(SEC_IntegerTemplate)
-+SEC_ASN1_CHOOSER_IMPLEMENT(SEC_NullTemplate)
-+SEC_ASN1_CHOOSER_IMPLEMENT(SEC_ObjectIDTemplate)
-+SEC_ASN1_CHOOSER_IMPLEMENT(SEC_OctetStringTemplate)
-+SEC_ASN1_CHOOSER_IMPLEMENT(SEC_PointerToAnyTemplate)
-+SEC_ASN1_CHOOSER_IMPLEMENT(SEC_PointerToOctetStringTemplate)
-+SEC_ASN1_CHOOSER_IMPLEMENT(SEC_SetOfAnyTemplate)
-+SEC_ASN1_CHOOSER_IMPLEMENT(SEC_UTCTimeTemplate)
-+SEC_ASN1_CHOOSER_IMPLEMENT(SEC_UTF8StringTemplate)
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/secasn1e.c 2004-12-13 13:06:46.762388128 +0100
-@@ -0,0 +1,1576 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+/*
-+ * Support for ENcoding ASN.1 data based on BER/DER (Basic/Distinguished
-+ * Encoding Rules).
-+ *
-+ * $Id$
-+ */
-+
-+#include "secasn1.h"
-+
-+typedef enum {
-+ beforeHeader,
-+ duringContents,
-+ duringGroup,
-+ duringSequence,
-+ afterContents,
-+ afterImplicit,
-+ afterInline,
-+ afterPointer,
-+ afterChoice,
-+ notInUse
-+} sec_asn1e_parse_place;
-+
-+typedef enum {
-+ allDone,
-+ encodeError,
-+ keepGoing,
-+ needBytes
-+} sec_asn1e_parse_status;
-+
-+typedef struct sec_asn1e_state_struct {
-+ SEC_ASN1EncoderContext *top;
-+ const SEC_ASN1Template *theTemplate;
-+ void *src;
-+
-+ struct sec_asn1e_state_struct *parent; /* aka prev */
-+ struct sec_asn1e_state_struct *child; /* aka next */
-+
-+ sec_asn1e_parse_place place; /* where we are in encoding process */
-+
-+ /*
-+ * XXX explain the next fields as clearly as possible...
-+ */
-+ unsigned char tag_modifiers;
-+ unsigned char tag_number;
-+ unsigned long underlying_kind;
-+
-+ int depth;
-+
-+ PRBool explicit, /* we are handling an explicit header */
-+ indefinite, /* need end-of-contents */
-+ is_string, /* encoding a simple string or an ANY */
-+ may_stream, /* when streaming, do indefinite encoding */
-+ optional, /* omit field if it has no contents */
-+ ignore_stream; /* ignore streaming value of sub-template */
-+} sec_asn1e_state;
-+
-+/*
-+ * An "outsider" will have an opaque pointer to this, created by calling
-+ * SEC_ASN1EncoderStart(). It will be passed back in to all subsequent
-+ * calls to SEC_ASN1EncoderUpdate() and related routines, and when done
-+ * it is passed to SEC_ASN1EncoderFinish().
-+ */
-+struct sec_EncoderContext_struct {
-+ PRArenaPool *our_pool; /* for our internal allocs */
-+
-+ sec_asn1e_state *current;
-+ sec_asn1e_parse_status status;
-+
-+ PRBool streaming;
-+ PRBool from_buf;
-+
-+ SEC_ASN1NotifyProc notify_proc; /* call before/after handling field */
-+ void *notify_arg; /* argument to notify_proc */
-+ PRBool during_notify; /* true during call to notify_proc */
-+
-+ SEC_ASN1WriteProc output_proc; /* pass encoded bytes to this */
-+ void *output_arg; /* argument to that function */
-+};
-+
-+
-+static sec_asn1e_state *
-+sec_asn1e_push_state (SEC_ASN1EncoderContext *cx,
-+ const SEC_ASN1Template *theTemplate,
-+ const void *src, PRBool new_depth)
-+{
-+ sec_asn1e_state *state, *new_state;
-+
-+ state = cx->current;
-+
-+ new_state = (sec_asn1e_state*)PORT_ArenaZAlloc (cx->our_pool,
-+ sizeof(*new_state));
-+ if (new_state == NULL) {
-+ cx->status = encodeError;
-+ return NULL;
-+ }
-+
-+ new_state->top = cx;
-+ new_state->parent = state;
-+ new_state->theTemplate = theTemplate;
-+ new_state->place = notInUse;
-+ if (src != NULL)
-+ new_state->src = (char *)src + theTemplate->offset;
-+
-+ if (state != NULL) {
-+ new_state->depth = state->depth;
-+ if (new_depth)
-+ new_state->depth++;
-+ state->child = new_state;
-+ }
-+
-+ cx->current = new_state;
-+ return new_state;
-+}
-+
-+
-+static void
-+sec_asn1e_scrub_state (sec_asn1e_state *state)
-+{
-+ /*
-+ * Some default "scrubbing".
-+ * XXX right set of initializations?
-+ */
-+ state->place = beforeHeader;
-+ state->indefinite = PR_FALSE;
-+}
-+
-+
-+static void
-+sec_asn1e_notify_before (SEC_ASN1EncoderContext *cx, void *src, int depth)
-+{
-+ if (cx->notify_proc == NULL)
-+ return;
-+
-+ cx->during_notify = PR_TRUE;
-+ (* cx->notify_proc) (cx->notify_arg, PR_TRUE, src, depth);
-+ cx->during_notify = PR_FALSE;
-+}
-+
-+
-+static void
-+sec_asn1e_notify_after (SEC_ASN1EncoderContext *cx, void *src, int depth)
-+{
-+ if (cx->notify_proc == NULL)
-+ return;
-+
-+ cx->during_notify = PR_TRUE;
-+ (* cx->notify_proc) (cx->notify_arg, PR_FALSE, src, depth);
-+ cx->during_notify = PR_FALSE;
-+}
-+
-+
-+static sec_asn1e_state *
-+sec_asn1e_init_state_based_on_template (sec_asn1e_state *state)
-+{
-+ PRBool explicit, is_string, may_stream, optional, universal, ignore_stream;
-+ unsigned char tag_modifiers;
-+ unsigned long encode_kind, under_kind;
-+ unsigned long tag_number;
-+
-+
-+ encode_kind = state->theTemplate->kind;
-+
-+ universal = ((encode_kind & SEC_ASN1_CLASS_MASK) == SEC_ASN1_UNIVERSAL)
-+ ? PR_TRUE : PR_FALSE;
-+
-+ explicit = (encode_kind & SEC_ASN1_EXPLICIT) ? PR_TRUE : PR_FALSE;
-+ encode_kind &= ~SEC_ASN1_EXPLICIT;
-+
-+ optional = (encode_kind & SEC_ASN1_OPTIONAL) ? PR_TRUE : PR_FALSE;
-+ encode_kind &= ~SEC_ASN1_OPTIONAL;
-+
-+ PORT_Assert (!(explicit && universal)); /* bad templates */
-+
-+ may_stream = (encode_kind & SEC_ASN1_MAY_STREAM) ? PR_TRUE : PR_FALSE;
-+ encode_kind &= ~SEC_ASN1_MAY_STREAM;
-+
-+ ignore_stream = (encode_kind & SEC_ASN1_NO_STREAM) ? PR_TRUE : PR_FALSE;
-+ encode_kind &= ~SEC_ASN1_NO_STREAM;
-+
-+ /* Just clear this to get it out of the way; we do not need it here */
-+ encode_kind &= ~SEC_ASN1_DYNAMIC;
-+
-+ if( encode_kind & SEC_ASN1_CHOICE ) {
-+ under_kind = SEC_ASN1_CHOICE;
-+ } else
-+
-+ if ((encode_kind & (SEC_ASN1_POINTER | SEC_ASN1_INLINE)) || (!universal
-+ && !explicit)) {
-+ const SEC_ASN1Template *subt;
-+ void *src;
-+
-+ PORT_Assert ((encode_kind & (SEC_ASN1_ANY | SEC_ASN1_SKIP)) == 0);
-+
-+ sec_asn1e_scrub_state (state);
-+
-+ if (encode_kind & SEC_ASN1_POINTER) {
-+ /*
-+ * XXX This used to PORT_Assert (encode_kind == SEC_ASN1_POINTER);
-+ * but that was too restrictive. This needs to be fixed,
-+ * probably copying what the decoder now checks for, and
-+ * adding a big comment here to explain what the checks mean.
-+ */
-+ src = *(void **)state->src;
-+ state->place = afterPointer;
-+ if (src == NULL) {
-+ /*
-+ * If this is optional, but NULL, then the field does
-+ * not need to be encoded. In this case we are done;
-+ * we do not want to push a subtemplate.
-+ */
-+ if (optional)
-+ return state;
-+
-+ /*
-+ * XXX this is an error; need to figure out
-+ * how to handle this
-+ */
-+ }
-+ } else {
-+ src = state->src;
-+ if (encode_kind & SEC_ASN1_INLINE) {
-+ /* check that there are no extraneous bits */
-+ PORT_Assert (encode_kind == SEC_ASN1_INLINE && !optional);
-+ state->place = afterInline;
-+ } else {
-+ /*
-+ * Save the tag modifiers and tag number here before moving
-+ * on to the next state in case this is a member of a
-+ * SEQUENCE OF
-+ */
-+ state->tag_modifiers = (unsigned char)encode_kind & SEC_ASN1_TAG_MASK
-+ & ~SEC_ASN1_TAGNUM_MASK;
-+ state->tag_number = (unsigned char)encode_kind & SEC_ASN1_TAGNUM_MASK;
-+
-+ state->place = afterImplicit;
-+ state->optional = optional;
-+ }
-+ }
-+
-+ subt = SEC_ASN1GetSubtemplate (state->theTemplate, state->src, PR_TRUE);
-+ state = sec_asn1e_push_state (state->top, subt, src, PR_FALSE);
-+ if (state == NULL)
-+ return NULL;
-+
-+ if (universal) {
-+ /*
-+ * This is a POINTER or INLINE; just init based on that
-+ * and we are done.
-+ */
-+ return sec_asn1e_init_state_based_on_template (state);
-+ }
-+
-+ /*
-+ * This is an implicit, non-universal (meaning, application-private
-+ * or context-specific) field. This results in a "magic" tag but
-+ * encoding based on the underlying type. We pushed a new state
-+ * that is based on the subtemplate (the underlying type), but
-+ * now we will sort of alias it to give it some of our properties
-+ * (tag, optional status, etc.).
-+ */
-+
-+ under_kind = state->theTemplate->kind;
-+ if (under_kind & SEC_ASN1_MAY_STREAM) {
-+ if (!ignore_stream)
-+ may_stream = PR_TRUE;
-+ under_kind &= ~SEC_ASN1_MAY_STREAM;
-+ }
-+ } else {
-+ under_kind = encode_kind;
-+ }
-+
-+ /*
-+ * Sanity check that there are no unwanted bits marked in under_kind.
-+ * These bits were either removed above (after we recorded them) or
-+ * they simply should not be found (signalling a bad/broken template).
-+ * XXX is this the right set of bits to test here? (i.e. need to add
-+ * or remove any?)
-+ */
-+ PORT_Assert ((under_kind & (SEC_ASN1_EXPLICIT | SEC_ASN1_OPTIONAL
-+ | SEC_ASN1_SKIP | SEC_ASN1_INNER
-+ | SEC_ASN1_DYNAMIC | SEC_ASN1_MAY_STREAM
-+ | SEC_ASN1_INLINE | SEC_ASN1_POINTER)) == 0);
-+
-+ if (encode_kind & SEC_ASN1_ANY) {
-+ PORT_Assert (encode_kind == under_kind);
-+ tag_modifiers = 0;
-+ tag_number = 0;
-+ is_string = PR_TRUE;
-+ } else {
-+ tag_modifiers = (unsigned char)encode_kind & SEC_ASN1_TAG_MASK & ~SEC_ASN1_TAGNUM_MASK;
-+ /*
-+ * XXX This assumes only single-octet identifiers. To handle
-+ * the HIGH TAG form we would need to do some more work, especially
-+ * in how to specify them in the template, because right now we
-+ * do not provide a way to specify more *tag* bits in encode_kind.
-+ */
-+ tag_number = encode_kind & SEC_ASN1_TAGNUM_MASK;
-+
-+ is_string = PR_FALSE;
-+ switch (under_kind & SEC_ASN1_TAGNUM_MASK) {
-+ case SEC_ASN1_SET:
-+ /*
-+ * XXX A plain old SET (as opposed to a SET OF) is not implemented.
-+ * If it ever is, remove this assert...
-+ */
-+ PORT_Assert ((under_kind & SEC_ASN1_GROUP) != 0);
-+ /* fallthru */
-+ case SEC_ASN1_SEQUENCE:
-+ tag_modifiers |= SEC_ASN1_CONSTRUCTED;
-+ break;
-+ case SEC_ASN1_BIT_STRING:
-+ case SEC_ASN1_BMP_STRING:
-+ case SEC_ASN1_GENERALIZED_TIME:
-+ case SEC_ASN1_IA5_STRING:
-+ case SEC_ASN1_OCTET_STRING:
-+ case SEC_ASN1_PRINTABLE_STRING:
-+ case SEC_ASN1_T61_STRING:
-+ case SEC_ASN1_UNIVERSAL_STRING:
-+ case SEC_ASN1_UTC_TIME:
-+ case SEC_ASN1_UTF8_STRING:
-+ case SEC_ASN1_VISIBLE_STRING:
-+ /*
-+ * We do not yet know if we will be constructing the string,
-+ * so we have to wait to do this final tag modification.
-+ */
-+ is_string = PR_TRUE;
-+ break;
-+ }
-+ }
-+
-+ state->tag_modifiers = tag_modifiers;
-+ state->tag_number = (unsigned char)tag_number;
-+ state->underlying_kind = under_kind;
-+ state->explicit = explicit;
-+ state->may_stream = may_stream;
-+ state->is_string = is_string;
-+ state->optional = optional;
-+ state->ignore_stream = ignore_stream;
-+
-+ sec_asn1e_scrub_state (state);
-+
-+ return state;
-+}
-+
-+
-+static void
-+sec_asn1e_write_part (sec_asn1e_state *state,
-+ const char *buf, unsigned long len,
-+ SEC_ASN1EncodingPart part)
-+{
-+ SEC_ASN1EncoderContext *cx;
-+
-+ cx = state->top;
-+ (* cx->output_proc) (cx->output_arg, buf, len, state->depth, part);
-+}
-+
-+
-+/*
-+ * XXX This assumes only single-octet identifiers. To handle
-+ * the HIGH TAG form we would need to modify this interface and
-+ * teach it to properly encode the special form.
-+ */
-+static void
-+sec_asn1e_write_identifier_bytes (sec_asn1e_state *state, unsigned char value)
-+{
-+ char byte;
-+
-+ byte = (char) value;
-+ sec_asn1e_write_part (state, &byte, 1, SEC_ASN1_Identifier);
-+}
-+
-+int
-+SEC_ASN1EncodeLength(unsigned char *buf,int value) {
-+ int lenlen;
-+
-+ lenlen = SEC_ASN1LengthLength (value);
-+ if (lenlen == 1) {
-+ buf[0] = value;
-+ } else {
-+ int i;
-+
-+ i = lenlen - 1;
-+ buf[0] = 0x80 | i;
-+ while (i) {
-+ buf[i--] = value;
-+ value >>= 8;
-+ }
-+ PORT_Assert (value == 0);
-+ }
-+ return lenlen;
-+}
-+
-+static void
-+sec_asn1e_write_length_bytes (sec_asn1e_state *state, unsigned long value,
-+ PRBool indefinite)
-+{
-+ int lenlen;
-+ unsigned char buf[sizeof(unsigned long) + 1];
-+
-+ if (indefinite) {
-+ PORT_Assert (value == 0);
-+ buf[0] = 0x80;
-+ lenlen = 1;
-+ } else {
-+ lenlen = SEC_ASN1EncodeLength(buf,value);
-+ }
-+
-+ sec_asn1e_write_part (state, (char *) buf, lenlen, SEC_ASN1_Length);
-+}
-+
-+
-+static void
-+sec_asn1e_write_contents_bytes (sec_asn1e_state *state,
-+ const char *buf, unsigned long len)
-+{
-+ sec_asn1e_write_part (state, buf, len, SEC_ASN1_Contents);
-+}
-+
-+
-+static void
-+sec_asn1e_write_end_of_contents_bytes (sec_asn1e_state *state)
-+{
-+ const char eoc[2] = {0, 0};
-+
-+ sec_asn1e_write_part (state, eoc, 2, SEC_ASN1_EndOfContents);
-+}
-+
-+static int
-+sec_asn1e_which_choice
-+(
-+ void *src,
-+ const SEC_ASN1Template *theTemplate
-+)
-+{
-+ int rv;
-+ unsigned int which = *(unsigned int *)src;
-+
-+ for( rv = 1, theTemplate++; theTemplate->kind != 0; rv++, theTemplate++ ) {
-+ if( which == theTemplate->size ) {
-+ return rv;
-+ }
-+ }
-+
-+ return 0;
-+}
-+
-+static unsigned long
-+sec_asn1e_contents_length (const SEC_ASN1Template *theTemplate, void *src,
-+ PRBool ignoresubstream, PRBool *noheaderp)
-+{
-+ unsigned long encode_kind, underlying_kind;
-+ PRBool explicit, optional, universal, may_stream;
-+ unsigned long len;
-+
-+ /*
-+ * This function currently calculates the length in all cases
-+ * except the following: when writing out the contents of a
-+ * template that belongs to a state where it was a sub-template
-+ * with the SEC_ASN1_MAY_STREAM bit set and it's parent had the
-+ * optional bit set. The information that the parent is optional
-+ * and that we should return the length of 0 when that length is
-+ * present since that means the optional field is no longer present.
-+ * So we add the ignoresubstream flag which is passed in when
-+ * writing the contents, but for all recursive calls to
-+ * sec_asn1e_contents_length, we pass PR_FALSE, because this
-+ * function correctly calculates the length for children templates
-+ * from that point on. Confused yet? At least you didn't have
-+ * to figure it out. ;) -javi
-+ */
-+ encode_kind = theTemplate->kind;
-+
-+ universal = ((encode_kind & SEC_ASN1_CLASS_MASK) == SEC_ASN1_UNIVERSAL)
-+ ? PR_TRUE : PR_FALSE;
-+
-+ explicit = (encode_kind & SEC_ASN1_EXPLICIT) ? PR_TRUE : PR_FALSE;
-+ encode_kind &= ~SEC_ASN1_EXPLICIT;
-+
-+ optional = (encode_kind & SEC_ASN1_OPTIONAL) ? PR_TRUE : PR_FALSE;
-+ encode_kind &= ~SEC_ASN1_OPTIONAL;
-+
-+ PORT_Assert (!(explicit && universal)); /* bad templates */
-+
-+ may_stream = (encode_kind & SEC_ASN1_MAY_STREAM) ? PR_TRUE : PR_FALSE;
-+ encode_kind &= ~SEC_ASN1_MAY_STREAM;
-+
-+ /* Just clear this to get it out of the way; we do not need it here */
-+ encode_kind &= ~SEC_ASN1_DYNAMIC;
-+ encode_kind &= ~SEC_ASN1_NO_STREAM;
-+
-+ if( encode_kind & SEC_ASN1_CHOICE ) {
-+ void *src2;
-+ int indx = sec_asn1e_which_choice(src, theTemplate);
-+ if( 0 == indx ) {
-+ /* XXX set an error? "choice not found" */
-+ /* state->top->status = encodeError; */
-+ return 0;
-+ }
-+
-+ src2 = (void *)((char *)src - theTemplate->offset + theTemplate[indx].offset);
-+
-+ return sec_asn1e_contents_length(&theTemplate[indx], src2,
-+ PR_FALSE, noheaderp);
-+ }
-+
-+ if ((encode_kind & (SEC_ASN1_POINTER | SEC_ASN1_INLINE)) || !universal) {
-+
-+ /* XXX any bits we want to disallow (PORT_Assert against) here? */
-+
-+ theTemplate = SEC_ASN1GetSubtemplate (theTemplate, src, PR_TRUE);
-+
-+ if (encode_kind & SEC_ASN1_POINTER) {
-+ /*
-+ * XXX This used to PORT_Assert (encode_kind == SEC_ASN1_POINTER);
-+ * but that was too restrictive. This needs to be fixed,
-+ * probably copying what the decoder now checks for, and
-+ * adding a big comment here to explain what the checks mean.
-+ * Alternatively, the check here could be omitted altogether
-+ * just letting sec_asn1e_init_state_based_on_template
-+ * do it, since that routine can do better error handling, too.
-+ */
-+ src = *(void **)src;
-+ if (src == NULL) {
-+ if (optional)
-+ *noheaderp = PR_TRUE;
-+ else
-+ *noheaderp = PR_FALSE;
-+ return 0;
-+ }
-+ } else if (encode_kind & SEC_ASN1_INLINE) {
-+ /* check that there are no extraneous bits */
-+ PORT_Assert (encode_kind == SEC_ASN1_INLINE && !optional);
-+ }
-+
-+ src = (char *)src + theTemplate->offset;
-+
-+ if (explicit) {
-+ len = sec_asn1e_contents_length (theTemplate, src, PR_FALSE,
-+ noheaderp);
-+ if (len == 0 && optional) {
-+ *noheaderp = PR_TRUE;
-+ } else if (*noheaderp) {
-+ /* Okay, *we* do not want to add in a header, but our caller still does. */
-+ *noheaderp = PR_FALSE;
-+ } else {
-+ /* if the inner content exists, our length is
-+ * len(identifier) + len(length) + len(innercontent)
-+ * XXX we currently assume len(identifier) == 1;
-+ * to support a high-tag-number this would need to be smarter.
-+ */
-+ len += 1 + SEC_ASN1LengthLength (len);
-+ }
-+ return len;
-+ }
-+
-+ underlying_kind = theTemplate->kind;
-+ underlying_kind &= ~SEC_ASN1_MAY_STREAM;
-+
-+ /* XXX Should we recurse here? */
-+ } else {
-+ underlying_kind = encode_kind;
-+ }
-+
-+ /* This is only used in decoding; it plays no part in encoding. */
-+ if (underlying_kind & SEC_ASN1_SAVE) {
-+ /* check that there are no extraneous bits */
-+ PORT_Assert (underlying_kind == SEC_ASN1_SAVE);
-+ *noheaderp = PR_TRUE;
-+ return 0;
-+ }
-+
-+ /* Having any of these bits is not expected here... */
-+ PORT_Assert ((underlying_kind & (SEC_ASN1_EXPLICIT | SEC_ASN1_OPTIONAL
-+ | SEC_ASN1_INLINE | SEC_ASN1_POINTER
-+ | SEC_ASN1_DYNAMIC | SEC_ASN1_MAY_STREAM
-+ | SEC_ASN1_SAVE | SEC_ASN1_SKIP)) == 0);
-+
-+ if( underlying_kind & SEC_ASN1_CHOICE ) {
-+ void *src2;
-+ int indx = sec_asn1e_which_choice(src, theTemplate);
-+ if( 0 == indx ) {
-+ /* XXX set an error? "choice not found" */
-+ /* state->top->status = encodeError; */
-+ return 0;
-+ }
-+
-+ src2 = (void *)((char *)src - theTemplate->offset + theTemplate[indx].offset);
-+ len = sec_asn1e_contents_length(&theTemplate[indx], src2, PR_FALSE,
-+ noheaderp);
-+ } else
-+
-+ switch (underlying_kind) {
-+ case SEC_ASN1_SEQUENCE_OF:
-+ case SEC_ASN1_SET_OF:
-+ {
-+ const SEC_ASN1Template *tmpt;
-+ void *sub_src;
-+ unsigned long sub_len;
-+ void **group;
-+
-+ len = 0;
-+
-+ group = *(void ***)src;
-+ if (group == NULL)
-+ break;
-+
-+ tmpt = SEC_ASN1GetSubtemplate (theTemplate, src, PR_TRUE);
-+
-+ for (; *group != NULL; group++) {
-+ sub_src = (char *)(*group) + tmpt->offset;
-+ sub_len = sec_asn1e_contents_length (tmpt, sub_src, PR_FALSE,
-+ noheaderp);
-+ len += sub_len;
-+ /*
-+ * XXX The 1 below is the presumed length of the identifier;
-+ * to support a high-tag-number this would need to be smarter.
-+ */
-+ if (!*noheaderp)
-+ len += 1 + SEC_ASN1LengthLength (sub_len);
-+ }
-+ }
-+ break;
-+
-+ case SEC_ASN1_SEQUENCE:
-+ case SEC_ASN1_SET:
-+ {
-+ const SEC_ASN1Template *tmpt;
-+ void *sub_src;
-+ unsigned long sub_len;
-+
-+ len = 0;
-+ for (tmpt = theTemplate + 1; tmpt->kind; tmpt++) {
-+ sub_src = (char *)src + tmpt->offset;
-+ sub_len = sec_asn1e_contents_length (tmpt, sub_src, PR_FALSE,
-+ noheaderp);
-+ len += sub_len;
-+ /*
-+ * XXX The 1 below is the presumed length of the identifier;
-+ * to support a high-tag-number this would need to be smarter.
-+ */
-+ if (!*noheaderp)
-+ len += 1 + SEC_ASN1LengthLength (sub_len);
-+ }
-+ }
-+ break;
-+
-+ case SEC_ASN1_BIT_STRING:
-+ /* convert bit length to byte */
-+ len = (((SECItem *)src)->len + 7) >> 3;
-+ /* bit string contents involve an extra octet */
-+ if (len)
-+ len++;
-+ break;
-+
-+ case SEC_ASN1_INTEGER:
-+ /* ASN.1 INTEGERs are signed.
-+ * If the source is an unsigned integer, the encoder will need
-+ * to handle the conversion here.
-+ */
-+ {
-+ unsigned char *buf = ((SECItem *)src)->data;
-+ SECItemType integerType = ((SECItem *)src)->type;
-+ len = ((SECItem *)src)->len;
-+ while (len > 0) {
-+ if (*buf != 0) {
-+ if (*buf & 0x80 && integerType == siUnsignedInteger) {
-+ len++; /* leading zero needed to make number signed */
-+ }
-+ break; /* reached beginning of number */
-+ }
-+ if (len == 1) {
-+ break; /* the number 0 */
-+ }
-+ if (buf[1] & 0x80) {
-+ break; /* leading zero already present */
-+ }
-+ /* extraneous leading zero, keep going */
-+ buf++;
-+ len--;
-+ }
-+ }
-+ break;
-+
-+ default:
-+ len = ((SECItem *)src)->len;
-+ if (may_stream && len == 0 && !ignoresubstream)
-+ len = 1; /* if we're streaming, we may have a secitem w/len 0 as placeholder */
-+ break;
-+ }
-+
-+ if ((len == 0 && optional) || underlying_kind == SEC_ASN1_ANY)
-+ *noheaderp = PR_TRUE;
-+ else
-+ *noheaderp = PR_FALSE;
-+
-+ return len;
-+}
-+
-+
-+static void
-+sec_asn1e_write_header (sec_asn1e_state *state)
-+{
-+ unsigned long contents_length;
-+ unsigned char tag_number, tag_modifiers;
-+ PRBool noheader;
-+
-+ PORT_Assert (state->place == beforeHeader);
-+
-+ tag_number = state->tag_number;
-+ tag_modifiers = state->tag_modifiers;
-+
-+ if (state->underlying_kind == SEC_ASN1_ANY) {
-+ state->place = duringContents;
-+ return;
-+ }
-+
-+ if( state->underlying_kind & SEC_ASN1_CHOICE ) {
-+ int indx = sec_asn1e_which_choice(state->src, state->theTemplate);
-+ if( 0 == indx ) {
-+ /* XXX set an error? "choice not found" */
-+ state->top->status = encodeError;
-+ return;
-+ }
-+
-+ state->place = afterChoice;
-+ state = sec_asn1e_push_state(state->top, &state->theTemplate[indx],
-+ (char *)state->src - state->theTemplate->offset,
-+ PR_TRUE);
-+
-+ if( (sec_asn1e_state *)NULL != state ) {
-+ /*
-+ * Do the "before" field notification.
-+ */
-+ sec_asn1e_notify_before (state->top, state->src, state->depth);
-+ state = sec_asn1e_init_state_based_on_template (state);
-+ }
-+
-+ return;
-+ }
-+
-+ /*
-+ * We are doing a definite-length encoding. First we have to
-+ * walk the data structure to calculate the entire contents length.
-+ */
-+ contents_length = sec_asn1e_contents_length (state->theTemplate,
-+ state->src,
-+ state->ignore_stream,
-+ &noheader);
-+ /*
-+ * We might be told explicitly not to put out a header.
-+ * But it can also be the case, via a pushed subtemplate, that
-+ * sec_asn1e_contents_length could not know that this field is
-+ * really optional. So check for that explicitly, too.
-+ */
-+ if (noheader || (contents_length == 0 && state->optional)) {
-+ state->place = afterContents;
-+ if (state->top->streaming && state->may_stream && state->top->from_buf)
-+ /* we did not find an optional indefinite string, so we don't encode it.
-+ * However, if TakeFromBuf is on, we stop here anyway to give our caller
-+ * a chance to intercept at the same point where we would stop if the
-+ * field were present. */
-+ state->top->status = needBytes;
-+ return;
-+ }
-+
-+ if (state->top->streaming && state->may_stream
-+ && (state->top->from_buf || !state->is_string)) {
-+ /*
-+ * We need to put out an indefinite-length encoding.
-+ */
-+ state->indefinite = PR_TRUE;
-+ /*
-+ * The only universal types that can be constructed are SETs,
-+ * SEQUENCEs, and strings; so check that it is one of those,
-+ * or that it is not universal (e.g. context-specific).
-+ */
-+ PORT_Assert ((tag_number == SEC_ASN1_SET)
-+ || (tag_number == SEC_ASN1_SEQUENCE)
-+ || ((tag_modifiers & SEC_ASN1_CLASS_MASK) != 0)
-+ || state->is_string);
-+ tag_modifiers |= SEC_ASN1_CONSTRUCTED;
-+ contents_length = 0;
-+ }
-+
-+ sec_asn1e_write_identifier_bytes (state, (unsigned char)(tag_number | tag_modifiers));
-+ sec_asn1e_write_length_bytes (state, contents_length, state->indefinite);
-+
-+ if (contents_length == 0 && !state->indefinite) {
-+ /*
-+ * If no real contents to encode, then we are done with this field.
-+ */
-+ state->place = afterContents;
-+ return;
-+ }
-+
-+ /*
-+ * An EXPLICIT is nothing but an outer header, which we have already
-+ * written. Now we need to do the inner header and contents.
-+ */
-+ if (state->explicit) {
-+ state->place = afterContents;
-+ state = sec_asn1e_push_state (state->top,
-+ SEC_ASN1GetSubtemplate(state->theTemplate,
-+ state->src,
-+ PR_TRUE),
-+ state->src, PR_TRUE);
-+ if (state != NULL)
-+ state = sec_asn1e_init_state_based_on_template (state);
-+ return;
-+ }
-+
-+ switch (state->underlying_kind) {
-+ case SEC_ASN1_SET_OF:
-+ case SEC_ASN1_SEQUENCE_OF:
-+ /*
-+ * We need to push a child to handle each member.
-+ */
-+ {
-+ void **group;
-+ const SEC_ASN1Template *subt;
-+
-+ group = *(void ***)state->src;
-+ if (group == NULL || *group == NULL) {
-+ /*
-+ * Group is empty; we are done.
-+ */
-+ state->place = afterContents;
-+ return;
-+ }
-+ state->place = duringGroup;
-+ subt = SEC_ASN1GetSubtemplate (state->theTemplate, state->src,
-+ PR_TRUE);
-+ state = sec_asn1e_push_state (state->top, subt, *group, PR_TRUE);
-+ if (state != NULL)
-+ state = sec_asn1e_init_state_based_on_template (state);
-+ }
-+ break;
-+
-+ case SEC_ASN1_SEQUENCE:
-+ case SEC_ASN1_SET:
-+ /*
-+ * We need to push a child to handle the individual fields.
-+ */
-+ state->place = duringSequence;
-+ state = sec_asn1e_push_state (state->top, state->theTemplate + 1,
-+ state->src, PR_TRUE);
-+ if (state != NULL) {
-+ /*
-+ * Do the "before" field notification.
-+ */
-+ sec_asn1e_notify_before (state->top, state->src, state->depth);
-+ state = sec_asn1e_init_state_based_on_template (state);
-+ }
-+ break;
-+
-+ default:
-+ /*
-+ * I think we do not need to do anything else.
-+ * XXX Correct?
-+ */
-+ state->place = duringContents;
-+ break;
-+ }
-+}
-+
-+
-+static void
-+sec_asn1e_write_contents (sec_asn1e_state *state,
-+ const char *buf, unsigned long len)
-+{
-+ PORT_Assert (state->place == duringContents);
-+
-+ if (state->top->from_buf) {
-+ /*
-+ * Probably they just turned on "take from buf", but have not
-+ * yet given us any bytes. If there is nothing in the buffer
-+ * then we have nothing to do but return and wait.
-+ */
-+ if (buf == NULL || len == 0) {
-+ state->top->status = needBytes;
-+ return;
-+ }
-+ /*
-+ * We are streaming, reading from a passed-in buffer.
-+ * This means we are encoding a simple string or an ANY.
-+ * For the former, we need to put out a substring, with its
-+ * own identifier and length. For an ANY, we just write it
-+ * out as is (our caller is required to ensure that it
-+ * is a properly encoded entity).
-+ */
-+ PORT_Assert (state->is_string); /* includes ANY */
-+ if (state->underlying_kind != SEC_ASN1_ANY) {
-+ unsigned char identifier;
-+
-+ /*
-+ * Create the identifier based on underlying_kind. We cannot
-+ * use tag_number and tag_modifiers because this can be an
-+ * implicitly encoded field. In that case, the underlying
-+ * substrings *are* encoded with their real tag.
-+ */
-+ identifier = (unsigned char)state->underlying_kind & SEC_ASN1_TAG_MASK;
-+ /*
-+ * The underlying kind should just be a simple string; there
-+ * should be no bits like CONTEXT_SPECIFIC or CONSTRUCTED set.
-+ */
-+ PORT_Assert ((identifier & SEC_ASN1_TAGNUM_MASK) == identifier);
-+ /*
-+ * Write out the tag and length for the substring.
-+ */
-+ sec_asn1e_write_identifier_bytes (state, identifier);
-+ if (state->underlying_kind == SEC_ASN1_BIT_STRING) {
-+ char byte;
-+ /*
-+ * Assume we have a length in bytes but we need to output
-+ * a proper bit string. This interface only works for bit
-+ * strings that are full multiples of 8. If support for
-+ * real, variable length bit strings is needed then the
-+ * caller will have to know to pass in a bit length instead
-+ * of a byte length and then this code will have to
-+ * perform the encoding necessary (length written is length
-+ * in bytes plus 1, and the first octet of string is the
-+ * number of bits remaining between the end of the bit
-+ * string and the next byte boundary).
-+ */
-+ sec_asn1e_write_length_bytes (state, len + 1, PR_FALSE);
-+ byte = 0;
-+ sec_asn1e_write_contents_bytes (state, &byte, 1);
-+ } else {
-+ sec_asn1e_write_length_bytes (state, len, PR_FALSE);
-+ }
-+ }
-+ sec_asn1e_write_contents_bytes (state, buf, len);
-+ state->top->status = needBytes;
-+ } else {
-+ switch (state->underlying_kind) {
-+ case SEC_ASN1_SET:
-+ case SEC_ASN1_SEQUENCE:
-+ PORT_Assert (0);
-+ break;
-+
-+ case SEC_ASN1_BIT_STRING:
-+ {
-+ SECItem *item;
-+ char rem;
-+
-+ item = (SECItem *)state->src;
-+ len = (item->len + 7) >> 3;
-+ rem = (unsigned char)((len << 3) - item->len); /* remaining bits */
-+ sec_asn1e_write_contents_bytes (state, &rem, 1);
-+ sec_asn1e_write_contents_bytes (state, (char *) item->data,
-+ len);
-+ }
-+ break;
-+
-+ case SEC_ASN1_BMP_STRING:
-+ /* The number of bytes must be divisable by 2 */
-+ if ((((SECItem *)state->src)->len) % 2) {
-+ SEC_ASN1EncoderContext *cx;
-+
-+ cx = state->top;
-+ cx->status = encodeError;
-+ break;
-+ }
-+ /* otherwise, fall through to write the content */
-+ goto process_string;
-+
-+ case SEC_ASN1_UNIVERSAL_STRING:
-+ /* The number of bytes must be divisable by 4 */
-+ if ((((SECItem *)state->src)->len) % 4) {
-+ SEC_ASN1EncoderContext *cx;
-+
-+ cx = state->top;
-+ cx->status = encodeError;
-+ break;
-+ }
-+ /* otherwise, fall through to write the content */
-+ goto process_string;
-+
-+ case SEC_ASN1_INTEGER:
-+ /* ASN.1 INTEGERs are signed. If the source is an unsigned
-+ * integer, the encoder will need to handle the conversion here.
-+ */
-+ {
-+ unsigned int blen;
-+ unsigned char *buf;
-+ SECItemType integerType;
-+ blen = ((SECItem *)state->src)->len;
-+ buf = ((SECItem *)state->src)->data;
-+ integerType = ((SECItem *)state->src)->type;
-+ while (blen > 0) {
-+ if (*buf & 0x80 && integerType == siUnsignedInteger) {
-+ char zero = 0; /* write a leading 0 */
-+ sec_asn1e_write_contents_bytes(state, &zero, 1);
-+ /* and then the remaining buffer */
-+ sec_asn1e_write_contents_bytes(state,
-+ (char *)buf, blen);
-+ break;
-+ }
-+ /* Check three possibilities:
-+ * 1. No leading zeros, msb of MSB is not 1;
-+ * 2. The number is zero itself;
-+ * 3. Encoding a signed integer with a leading zero,
-+ * keep the zero so that the number is positive.
-+ */
-+ if (*buf != 0 ||
-+ blen == 1 ||
-+ (buf[1] & 0x80 && integerType != siUnsignedInteger) )
-+ {
-+ sec_asn1e_write_contents_bytes(state,
-+ (char *)buf, blen);
-+ break;
-+ }
-+ /* byte is 0, continue */
-+ buf++;
-+ blen--;
-+ }
-+ }
-+ /* done with this content */
-+ break;
-+
-+process_string:
-+ default:
-+ {
-+ SECItem *item;
-+
-+ item = (SECItem *)state->src;
-+ sec_asn1e_write_contents_bytes (state, (char *) item->data,
-+ item->len);
-+ }
-+ break;
-+ }
-+ state->place = afterContents;
-+ }
-+}
-+
-+
-+/*
-+ * We are doing a SET OF or SEQUENCE OF, and have just finished an item.
-+ */
-+static void
-+sec_asn1e_next_in_group (sec_asn1e_state *state)
-+{
-+ sec_asn1e_state *child;
-+ void **group;
-+ void *member;
-+
-+ PORT_Assert (state->place == duringGroup);
-+ PORT_Assert (state->child != NULL);
-+
-+ child = state->child;
-+
-+ group = *(void ***)state->src;
-+
-+ /*
-+ * Find placement of current item.
-+ */
-+ member = (char *)(state->child->src) - child->theTemplate->offset;
-+ while (*group != member)
-+ group++;
-+
-+ /*
-+ * Move forward to next item.
-+ */
-+ group++;
-+ if (*group == NULL) {
-+ /*
-+ * That was our last one; we are done now.
-+ */
-+ child->place = notInUse;
-+ state->place = afterContents;
-+ return;
-+ }
-+ child->src = (char *)(*group) + child->theTemplate->offset;
-+
-+ /*
-+ * Re-"push" child.
-+ */
-+ sec_asn1e_scrub_state (child);
-+ state->top->current = child;
-+}
-+
-+
-+/*
-+ * We are moving along through a sequence; move forward by one,
-+ * (detecting end-of-sequence when it happens).
-+ */
-+static void
-+sec_asn1e_next_in_sequence (sec_asn1e_state *state)
-+{
-+ sec_asn1e_state *child;
-+
-+ PORT_Assert (state->place == duringSequence);
-+ PORT_Assert (state->child != NULL);
-+
-+ child = state->child;
-+
-+ /*
-+ * Do the "after" field notification.
-+ */
-+ sec_asn1e_notify_after (state->top, child->src, child->depth);
-+
-+ /*
-+ * Move forward.
-+ */
-+ child->theTemplate++;
-+ if (child->theTemplate->kind == 0) {
-+ /*
-+ * We are done with this sequence.
-+ */
-+ child->place = notInUse;
-+ state->place = afterContents;
-+ return;
-+ }
-+
-+ /*
-+ * Reset state and push.
-+ */
-+
-+ child->src = (char *)state->src + child->theTemplate->offset;
-+
-+ /*
-+ * Do the "before" field notification.
-+ */
-+ sec_asn1e_notify_before (state->top, child->src, child->depth);
-+
-+ state->top->current = child;
-+ (void) sec_asn1e_init_state_based_on_template (child);
-+}
-+
-+
-+static void
-+sec_asn1e_after_contents (sec_asn1e_state *state)
-+{
-+ PORT_Assert (state->place == afterContents);
-+
-+ if (state->indefinite)
-+ sec_asn1e_write_end_of_contents_bytes (state);
-+
-+ /*
-+ * Just make my parent be the current state. It will then clean
-+ * up after me and free me (or reuse me).
-+ */
-+ state->top->current = state->parent;
-+}
-+
-+
-+/*
-+ * This function is called whether or not we are streaming; if we
-+ * *are* streaming, our caller can also instruct us to take bytes
-+ * from the passed-in buffer (at buf, for length len, which is likely
-+ * bytes but could even mean bits if the current field is a bit string).
-+ * If we have been so instructed, we will gobble up bytes from there
-+ * (rather than from our src structure) and output them, and then
-+ * we will just return, expecting to be called again -- either with
-+ * more bytes or after our caller has instructed us that we are done
-+ * (for now) with the buffer.
-+ */
-+SECStatus
-+SEC_ASN1EncoderUpdate (SEC_ASN1EncoderContext *cx,
-+ const char *buf, unsigned long len)
-+{
-+ sec_asn1e_state *state;
-+
-+ if (cx->status == needBytes) {
-+ PORT_Assert (buf != NULL && len != 0);
-+ cx->status = keepGoing;
-+ }
-+
-+ while (cx->status == keepGoing) {
-+ state = cx->current;
-+ switch (state->place) {
-+ case beforeHeader:
-+ sec_asn1e_write_header (state);
-+ break;
-+ case duringContents:
-+ sec_asn1e_write_contents (state, buf, len);
-+ break;
-+ case duringGroup:
-+ sec_asn1e_next_in_group (state);
-+ break;
-+ case duringSequence:
-+ sec_asn1e_next_in_sequence (state);
-+ break;
-+ case afterContents:
-+ sec_asn1e_after_contents (state);
-+ break;
-+ case afterImplicit:
-+ case afterInline:
-+ case afterPointer:
-+ case afterChoice:
-+ /*
-+ * These states are more documentation than anything.
-+ * They just need to force a pop.
-+ */
-+ PORT_Assert (!state->indefinite);
-+ state->place = afterContents;
-+ break;
-+ case notInUse:
-+ default:
-+ /* This is not an error, but rather a plain old BUG! */
-+ PORT_Assert (0);
-+ cx->status = encodeError;
-+ break;
-+ }
-+
-+ if (cx->status == encodeError)
-+ break;
-+
-+ /* It might have changed, so we have to update our local copy. */
-+ state = cx->current;
-+
-+ /* If it is NULL, we have popped all the way to the top. */
-+ if (state == NULL) {
-+ cx->status = allDone;
-+ break;
-+ }
-+ }
-+
-+ if (cx->status == encodeError) {
-+ return SECFailure;
-+ }
-+
-+ return SECSuccess;
-+}
-+
-+
-+void
-+SEC_ASN1EncoderFinish (SEC_ASN1EncoderContext *cx)
-+{
-+ /*
-+ * XXX anything else that needs to be finished?
-+ */
-+
-+ PORT_FreeArena (cx->our_pool, PR_FALSE);
-+}
-+
-+
-+SEC_ASN1EncoderContext *
-+SEC_ASN1EncoderStart (const void *src, const SEC_ASN1Template *theTemplate,
-+ SEC_ASN1WriteProc output_proc, void *output_arg)
-+{
-+ PRArenaPool *our_pool;
-+ SEC_ASN1EncoderContext *cx;
-+
-+ our_pool = PORT_NewArena (SEC_ASN1_DEFAULT_ARENA_SIZE);
-+ if (our_pool == NULL)
-+ return NULL;
-+
-+ cx = (SEC_ASN1EncoderContext*)PORT_ArenaZAlloc (our_pool, sizeof(*cx));
-+ if (cx == NULL) {
-+ PORT_FreeArena (our_pool, PR_FALSE);
-+ return NULL;
-+ }
-+
-+ cx->our_pool = our_pool;
-+ cx->output_proc = output_proc;
-+ cx->output_arg = output_arg;
-+
-+ cx->status = keepGoing;
-+
-+ if (sec_asn1e_push_state(cx, theTemplate, src, PR_FALSE) == NULL
-+ || sec_asn1e_init_state_based_on_template (cx->current) == NULL) {
-+ /*
-+ * Trouble initializing (probably due to failed allocations)
-+ * requires that we just give up.
-+ */
-+ PORT_FreeArena (our_pool, PR_FALSE);
-+ return NULL;
-+ }
-+
-+ return cx;
-+}
-+
-+
-+/*
-+ * XXX Do we need a FilterProc, too?
-+ */
-+
-+
-+void
-+SEC_ASN1EncoderSetNotifyProc (SEC_ASN1EncoderContext *cx,
-+ SEC_ASN1NotifyProc fn, void *arg)
-+{
-+ cx->notify_proc = fn;
-+ cx->notify_arg = arg;
-+}
-+
-+
-+void
-+SEC_ASN1EncoderClearNotifyProc (SEC_ASN1EncoderContext *cx)
-+{
-+ cx->notify_proc = NULL;
-+ cx->notify_arg = NULL; /* not necessary; just being clean */
-+}
-+
-+void
-+SEC_ASN1EncoderAbort(SEC_ASN1EncoderContext *cx, int error)
-+{
-+ PORT_Assert(cx);
-+ PORT_SetError(error);
-+ cx->status = encodeError;
-+}
-+
-+void
-+SEC_ASN1EncoderSetStreaming (SEC_ASN1EncoderContext *cx)
-+{
-+ /* XXX is there a way to check that we are "between" fields here? */
-+
-+ cx->streaming = PR_TRUE;
-+}
-+
-+
-+void
-+SEC_ASN1EncoderClearStreaming (SEC_ASN1EncoderContext *cx)
-+{
-+ /* XXX is there a way to check that we are "between" fields here? */
-+
-+ cx->streaming = PR_FALSE;
-+}
-+
-+
-+void
-+SEC_ASN1EncoderSetTakeFromBuf (SEC_ASN1EncoderContext *cx)
-+{
-+ /*
-+ * XXX is there a way to check that we are "between" fields here? this
-+ * needs to include a check for being in between groups of items in
-+ * a SET_OF or SEQUENCE_OF.
-+ */
-+ PORT_Assert (cx->streaming);
-+
-+ cx->from_buf = PR_TRUE;
-+}
-+
-+
-+void
-+SEC_ASN1EncoderClearTakeFromBuf (SEC_ASN1EncoderContext *cx)
-+{
-+ /* we should actually be taking from buf *now* */
-+ PORT_Assert (cx->from_buf);
-+ if (! cx->from_buf) /* if not, just do nothing */
-+ return;
-+
-+ cx->from_buf = PR_FALSE;
-+
-+ if (cx->status == needBytes) {
-+ cx->status = keepGoing;
-+ cx->current->place = afterContents;
-+ }
-+}
-+
-+
-+SECStatus
-+SEC_ASN1Encode (const void *src, const SEC_ASN1Template *theTemplate,
-+ SEC_ASN1WriteProc output_proc, void *output_arg)
-+{
-+ SEC_ASN1EncoderContext *ecx;
-+ SECStatus rv;
-+
-+ ecx = SEC_ASN1EncoderStart (src, theTemplate, output_proc, output_arg);
-+ if (ecx == NULL)
-+ return SECFailure;
-+
-+ rv = SEC_ASN1EncoderUpdate (ecx, NULL, 0);
-+
-+ SEC_ASN1EncoderFinish (ecx);
-+ return rv;
-+}
-+
-+
-+/*
-+ * XXX depth and data_kind are unused; is there a PC way to silence warnings?
-+ * (I mean "politically correct", not anything to do with intel/win platform)
-+ */
-+static void
-+sec_asn1e_encode_item_count (void *arg, const char *buf, unsigned long len,
-+ int depth, SEC_ASN1EncodingPart data_kind)
-+{
-+ unsigned long *count;
-+
-+ count = (unsigned long*)arg;
-+ PORT_Assert (count != NULL);
-+
-+ *count += len;
-+}
-+
-+
-+/* XXX depth and data_kind are unused; is there a PC way to silence warnings? */
-+static void
-+sec_asn1e_encode_item_store (void *arg, const char *buf, unsigned long len,
-+ int depth, SEC_ASN1EncodingPart data_kind)
-+{
-+ SECItem *dest;
-+
-+ dest = (SECItem*)arg;
-+ PORT_Assert (dest != NULL);
-+
-+ PORT_Memcpy (dest->data + dest->len, buf, len);
-+ dest->len += len;
-+}
-+
-+
-+/*
-+ * Allocate an entire SECItem, or just the data part of it, to hold
-+ * "len" bytes of stuff. Allocate from the given pool, if specified,
-+ * otherwise just do a vanilla PORT_Alloc.
-+ *
-+ * XXX This seems like a reasonable general-purpose function (for SECITEM_)?
-+ */
-+static SECItem *
-+sec_asn1e_allocate_item (PRArenaPool *poolp, SECItem *dest, unsigned long len)
-+{
-+ if (poolp != NULL) {
-+ void *release;
-+
-+ release = PORT_ArenaMark (poolp);
-+ if (dest == NULL)
-+ dest = (SECItem*)PORT_ArenaAlloc (poolp, sizeof(SECItem));
-+ if (dest != NULL) {
-+ dest->data = (unsigned char*)PORT_ArenaAlloc (poolp, len);
-+ if (dest->data == NULL) {
-+ dest = NULL;
-+ }
-+ }
-+ if (dest == NULL) {
-+ /* one or both allocations failed; release everything */
-+ PORT_ArenaRelease (poolp, release);
-+ } else {
-+ /* everything okay; unmark the arena */
-+ PORT_ArenaUnmark (poolp, release);
-+ }
-+ } else {
-+ SECItem *indest;
-+
-+ indest = dest;
-+ if (dest == NULL)
-+ dest = (SECItem*)PORT_Alloc (sizeof(SECItem));
-+ if (dest != NULL) {
-+ dest->type = siBuffer;
-+ dest->data = (unsigned char*)PORT_Alloc (len);
-+ if (dest->data == NULL) {
-+ if (indest == NULL)
-+ PORT_Free (dest);
-+ dest = NULL;
-+ }
-+ }
-+ }
-+
-+ return dest;
-+}
-+
-+
-+SECItem *
-+SEC_ASN1EncodeItem (PRArenaPool *poolp, SECItem *dest, const void *src,
-+ const SEC_ASN1Template *theTemplate)
-+{
-+ unsigned long encoding_length;
-+ SECStatus rv;
-+
-+ PORT_Assert (dest == NULL || dest->data == NULL);
-+
-+ encoding_length = 0;
-+ rv = SEC_ASN1Encode (src, theTemplate,
-+ sec_asn1e_encode_item_count, &encoding_length);
-+ if (rv != SECSuccess)
-+ return NULL;
-+
-+ dest = sec_asn1e_allocate_item (poolp, dest, encoding_length);
-+ if (dest == NULL)
-+ return NULL;
-+
-+ /* XXX necessary? This really just checks for a bug in the allocate fn */
-+ PORT_Assert (dest->data != NULL);
-+ if (dest->data == NULL)
-+ return NULL;
-+
-+ dest->len = 0;
-+ (void) SEC_ASN1Encode (src, theTemplate, sec_asn1e_encode_item_store, dest);
-+
-+ PORT_Assert (encoding_length == dest->len);
-+ return dest;
-+}
-+
-+
-+static SECItem *
-+sec_asn1e_integer(PRArenaPool *poolp, SECItem *dest, unsigned long value,
-+ PRBool make_unsigned)
-+{
-+ unsigned long copy;
-+ unsigned char sign;
-+ int len = 0;
-+
-+ /*
-+ * Determine the length of the encoded value (minimum of 1).
-+ */
-+ copy = value;
-+ do {
-+ len++;
-+ sign = (unsigned char)(copy & 0x80);
-+ copy >>= 8;
-+ } while (copy);
-+
-+ /*
-+ * If this is an unsigned encoding, and the high bit of the last
-+ * byte we counted was set, we need to add one to the length so
-+ * we put a high-order zero byte in the encoding.
-+ */
-+ if (sign && make_unsigned)
-+ len++;
-+
-+ /*
-+ * Allocate the item (if necessary) and the data pointer within.
-+ */
-+ dest = sec_asn1e_allocate_item (poolp, dest, len);
-+ if (dest == NULL)
-+ return NULL;
-+
-+ /*
-+ * Store the value, byte by byte, in the item.
-+ */
-+ dest->len = len;
-+ while (len) {
-+ dest->data[--len] = (unsigned char)value;
-+ value >>= 8;
-+ }
-+ PORT_Assert (value == 0);
-+
-+ return dest;
-+}
-+
-+
-+SECItem *
-+SEC_ASN1EncodeInteger(PRArenaPool *poolp, SECItem *dest, long value)
-+{
-+ return sec_asn1e_integer (poolp, dest, (unsigned long) value, PR_FALSE);
-+}
-+
-+
-+extern SECItem *
-+SEC_ASN1EncodeUnsignedInteger(PRArenaPool *poolp,
-+ SECItem *dest, unsigned long value)
-+{
-+ return sec_asn1e_integer (poolp, dest, value, PR_TRUE);
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/secasn1u.c 2004-12-13 13:06:46.763387976 +0100
-@@ -0,0 +1,106 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+/*
-+ * Utility routines to complement the ASN.1 encoding and decoding functions.
-+ *
-+ * $Id$
-+ */
-+
-+#include "secasn1.h"
-+
-+
-+/*
-+ * We have a length that needs to be encoded; how many bytes will the
-+ * encoding take?
-+ *
-+ * The rules are that 0 - 0x7f takes one byte (the length itself is the
-+ * entire encoding); everything else takes one plus the number of bytes
-+ * in the length.
-+ */
-+int
-+SEC_ASN1LengthLength (unsigned long len)
-+{
-+ int lenlen = 1;
-+
-+ if (len > 0x7f) {
-+ do {
-+ lenlen++;
-+ len >>= 8;
-+ } while (len);
-+ }
-+
-+ return lenlen;
-+}
-+
-+
-+/*
-+ * XXX Move over (and rewrite as appropriate) the rest of the
-+ * stuff in dersubr.c!
-+ */
-+
-+
-+/*
-+ * Find the appropriate subtemplate for the given template.
-+ * This may involve calling a "chooser" function, or it may just
-+ * be right there. In either case, it is expected to *have* a
-+ * subtemplate; this is asserted in debug builds (in non-debug
-+ * builds, NULL will be returned).
-+ *
-+ * "thing" is a pointer to the structure being encoded/decoded
-+ * "encoding", when true, means that we are in the process of encoding
-+ * (as opposed to in the process of decoding)
-+ */
-+const SEC_ASN1Template *
-+SEC_ASN1GetSubtemplate (const SEC_ASN1Template *theTemplate, void *thing,
-+ PRBool encoding)
-+{
-+ const SEC_ASN1Template *subt = NULL;
-+
-+ PORT_Assert (theTemplate->sub != NULL);
-+ if (theTemplate->sub != NULL) {
-+ if (theTemplate->kind & SEC_ASN1_DYNAMIC) {
-+ SEC_ASN1TemplateChooserPtr chooserp;
-+
-+ chooserp = *(SEC_ASN1TemplateChooserPtr *) theTemplate->sub;
-+ if (chooserp) {
-+ if (thing != NULL)
-+ thing = (char *)thing - theTemplate->offset;
-+ subt = (* chooserp)(thing, encoding);
-+ }
-+ } else {
-+ subt = (SEC_ASN1Template*)theTemplate->sub;
-+ }
-+ }
-+ return subt;
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/secdig.c 2004-12-13 13:06:46.763387976 +0100
-@@ -0,0 +1,235 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ *
-+ * $Id$
-+ */
-+#include "secdig.h"
-+
-+#include "secoid.h"
-+#include "secasn1.h"
-+#include "secerr.h"
-+
-+/*
-+ * XXX OLD Template. Once all uses have been switched over to new one,
-+ * remove this.
-+ */
-+DERTemplate SGNDigestInfoTemplate[] = {
-+ { DER_SEQUENCE,
-+ 0, NULL, sizeof(SGNDigestInfo) },
-+ { DER_INLINE,
-+ offsetof(SGNDigestInfo,digestAlgorithm),
-+ SECAlgorithmIDTemplate, },
-+ { DER_OCTET_STRING,
-+ offsetof(SGNDigestInfo,digest), },
-+ { 0, }
-+};
-+
-+/* XXX See comment below about SGN_DecodeDigestInfo -- keep this static! */
-+/* XXX Changed from static -- need to change name? */
-+const SEC_ASN1Template sgn_DigestInfoTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(SGNDigestInfo) },
-+ { SEC_ASN1_INLINE,
-+ offsetof(SGNDigestInfo,digestAlgorithm),
-+ SECOID_AlgorithmIDTemplate },
-+ { SEC_ASN1_OCTET_STRING,
-+ offsetof(SGNDigestInfo,digest) },
-+ { 0 }
-+};
-+
-+SEC_ASN1_CHOOSER_IMPLEMENT(sgn_DigestInfoTemplate)
-+
-+/*
-+ * XXX Want to have a SGN_DecodeDigestInfo, like:
-+ * SGNDigestInfo *SGN_DecodeDigestInfo(SECItem *didata);
-+ * that creates a pool and allocates from it and decodes didata into
-+ * the newly allocated DigestInfo structure. Then fix secvfy.c (it
-+ * will no longer need an arena itself) to call this and then call
-+ * DestroyDigestInfo when it is done, then can remove the old template
-+ * above and keep our new template static and "hidden".
-+ */
-+
-+/*
-+ * XXX It might be nice to combine the following two functions (create
-+ * and encode). I think that is all anybody ever wants to do anyway.
-+ */
-+
-+SECItem *
-+SGN_EncodeDigestInfo(PRArenaPool *poolp, SECItem *dest, SGNDigestInfo *diginfo)
-+{
-+ return SEC_ASN1EncodeItem (poolp, dest, diginfo, sgn_DigestInfoTemplate);
-+}
-+
-+SGNDigestInfo *
-+SGN_CreateDigestInfo(SECOidTag algorithm, unsigned char *sig, unsigned len)
-+{
-+ SGNDigestInfo *di;
-+ SECStatus rv;
-+ PRArenaPool *arena;
-+ SECItem *null_param;
-+ SECItem dummy_value;
-+
-+ switch (algorithm) {
-+ case SEC_OID_MD2:
-+ case SEC_OID_MD5:
-+ case SEC_OID_SHA1:
-+ case SEC_OID_SHA256:
-+ case SEC_OID_SHA384:
-+ case SEC_OID_SHA512:
-+ break;
-+ default:
-+ PORT_SetError(SEC_ERROR_INVALID_ALGORITHM);
-+ return NULL;
-+ }
-+
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ if (arena == NULL) {
-+ return NULL;
-+ }
-+
-+ di = (SGNDigestInfo *) PORT_ArenaZAlloc(arena, sizeof(SGNDigestInfo));
-+ if (di == NULL) {
-+ PORT_FreeArena(arena, PR_FALSE);
-+ return NULL;
-+ }
-+
-+ di->arena = arena;
-+
-+ /*
-+ * PKCS #1 specifies that the AlgorithmID must have a NULL parameter
-+ * (as opposed to no parameter at all).
-+ */
-+ dummy_value.data = NULL;
-+ dummy_value.len = 0;
-+ null_param = SEC_ASN1EncodeItem(NULL, NULL, &dummy_value, SEC_NullTemplate);
-+ if (null_param == NULL) {
-+ goto loser;
-+ }
-+
-+ rv = SECOID_SetAlgorithmID(arena, &di->digestAlgorithm, algorithm,
-+ null_param);
-+
-+ SECITEM_FreeItem(null_param, PR_TRUE);
-+
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+
-+ di->digest.data = (unsigned char *) PORT_ArenaAlloc(arena, len);
-+ if (di->digest.data == NULL) {
-+ goto loser;
-+ }
-+
-+ di->digest.len = len;
-+ PORT_Memcpy(di->digest.data, sig, len);
-+ return di;
-+
-+ loser:
-+ SGN_DestroyDigestInfo(di);
-+ return NULL;
-+}
-+
-+SGNDigestInfo *
-+SGN_DecodeDigestInfo(SECItem *didata)
-+{
-+ PRArenaPool *arena;
-+ SGNDigestInfo *di;
-+ SECStatus rv = SECFailure;
-+
-+ arena = PORT_NewArena(SEC_ASN1_DEFAULT_ARENA_SIZE);
-+ if(arena == NULL)
-+ return NULL;
-+
-+ di = (SGNDigestInfo *)PORT_ArenaZAlloc(arena, sizeof(SGNDigestInfo));
-+ if(di != NULL)
-+ {
-+ di->arena = arena;
-+ rv = SEC_ASN1DecodeItem(arena, di, sgn_DigestInfoTemplate, didata);
-+ }
-+
-+ if((di == NULL) || (rv != SECSuccess))
-+ {
-+ PORT_FreeArena(arena, PR_TRUE);
-+ di = NULL;
-+ }
-+
-+ return di;
-+}
-+
-+void
-+SGN_DestroyDigestInfo(SGNDigestInfo *di)
-+{
-+ if (di && di->arena) {
-+ PORT_FreeArena(di->arena, PR_FALSE);
-+ }
-+
-+ return;
-+}
-+
-+SECStatus
-+SGN_CopyDigestInfo(PRArenaPool *poolp, SGNDigestInfo *a, SGNDigestInfo *b)
-+{
-+ SECStatus rv;
-+ void *mark;
-+
-+ if((poolp == NULL) || (a == NULL) || (b == NULL))
-+ return SECFailure;
-+
-+ mark = PORT_ArenaMark(poolp);
-+ a->arena = poolp;
-+ rv = SECOID_CopyAlgorithmID(poolp, &a->digestAlgorithm,
-+ &b->digestAlgorithm);
-+ if (rv == SECSuccess)
-+ rv = SECITEM_CopyItem(poolp, &a->digest, &b->digest);
-+
-+ if (rv != SECSuccess) {
-+ PORT_ArenaRelease(poolp, mark);
-+ } else {
-+ PORT_ArenaUnmark(poolp, mark);
-+ }
-+
-+ return rv;
-+}
-+
-+SECComparison
-+SGN_CompareDigestInfo(SGNDigestInfo *a, SGNDigestInfo *b)
-+{
-+ SECComparison rv;
-+
-+ /* Check signature algorithm's */
-+ rv = SECOID_CompareAlgorithmID(&a->digestAlgorithm, &b->digestAlgorithm);
-+ if (rv) return rv;
-+
-+ /* Compare signature block length's */
-+ rv = SECITEM_CompareItem(&a->digest, &b->digest);
-+ return rv;
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/sechash.c 2004-12-13 13:06:46.877370648 +0100
-@@ -0,0 +1,364 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+#include "sechash.h"
-+#include "secoidt.h"
-+#include "secerr.h"
-+#include "blapi.h"
-+#include "pk11func.h" /* for the PK11_ calls below. */
-+
-+static void *
-+null_hash_new_context(void)
-+{
-+ return NULL;
-+}
-+
-+static void *
-+null_hash_clone_context(void *v)
-+{
-+ PORT_Assert(v == NULL);
-+ return NULL;
-+}
-+
-+static void
-+null_hash_begin(void *v)
-+{
-+}
-+
-+static void
-+null_hash_update(void *v, const unsigned char *input, unsigned int length)
-+{
-+}
-+
-+static void
-+null_hash_end(void *v, unsigned char *output, unsigned int *outLen,
-+ unsigned int maxOut)
-+{
-+ *outLen = 0;
-+}
-+
-+static void
-+null_hash_destroy_context(void *v, PRBool b)
-+{
-+ PORT_Assert(v == NULL);
-+}
-+
-+
-+static void *
-+md2_NewContext(void) {
-+ return (void *) PK11_CreateDigestContext(SEC_OID_MD2);
-+}
-+
-+static void *
-+md5_NewContext(void) {
-+ return (void *) PK11_CreateDigestContext(SEC_OID_MD5);
-+}
-+
-+static void *
-+sha1_NewContext(void) {
-+ return (void *) PK11_CreateDigestContext(SEC_OID_SHA1);
-+}
-+
-+static void *
-+sha256_NewContext(void) {
-+ return (void *) PK11_CreateDigestContext(SEC_OID_SHA256);
-+}
-+
-+static void *
-+sha384_NewContext(void) {
-+ return (void *) PK11_CreateDigestContext(SEC_OID_SHA384);
-+}
-+
-+static void *
-+sha512_NewContext(void) {
-+ return (void *) PK11_CreateDigestContext(SEC_OID_SHA512);
-+}
-+
-+const SECHashObject SECHashObjects[] = {
-+ { 0,
-+ (void * (*)(void)) null_hash_new_context,
-+ (void * (*)(void *)) null_hash_clone_context,
-+ (void (*)(void *, PRBool)) null_hash_destroy_context,
-+ (void (*)(void *)) null_hash_begin,
-+ (void (*)(void *, const unsigned char *, unsigned int)) null_hash_update,
-+ (void (*)(void *, unsigned char *, unsigned int *,
-+ unsigned int)) null_hash_end
-+ },
-+ { MD2_LENGTH,
-+ (void * (*)(void)) md2_NewContext,
-+ (void * (*)(void *)) PK11_CloneContext,
-+ (void (*)(void *, PRBool)) PK11_DestroyContext,
-+ (void (*)(void *)) PK11_DigestBegin,
-+ (void (*)(void *, const unsigned char *, unsigned int)) PK11_DigestOp,
-+ (void (*)(void *, unsigned char *, unsigned int *, unsigned int))
-+ PK11_DigestFinal
-+ },
-+ { MD5_LENGTH,
-+ (void * (*)(void)) md5_NewContext,
-+ (void * (*)(void *)) PK11_CloneContext,
-+ (void (*)(void *, PRBool)) PK11_DestroyContext,
-+ (void (*)(void *)) PK11_DigestBegin,
-+ (void (*)(void *, const unsigned char *, unsigned int)) PK11_DigestOp,
-+ (void (*)(void *, unsigned char *, unsigned int *, unsigned int))
-+ PK11_DigestFinal
-+ },
-+ { SHA1_LENGTH,
-+ (void * (*)(void)) sha1_NewContext,
-+ (void * (*)(void *)) PK11_CloneContext,
-+ (void (*)(void *, PRBool)) PK11_DestroyContext,
-+ (void (*)(void *)) PK11_DigestBegin,
-+ (void (*)(void *, const unsigned char *, unsigned int)) PK11_DigestOp,
-+ (void (*)(void *, unsigned char *, unsigned int *, unsigned int))
-+ PK11_DigestFinal
-+ },
-+ { SHA256_LENGTH,
-+ (void * (*)(void)) sha256_NewContext,
-+ (void * (*)(void *)) PK11_CloneContext,
-+ (void (*)(void *, PRBool)) PK11_DestroyContext,
-+ (void (*)(void *)) PK11_DigestBegin,
-+ (void (*)(void *, const unsigned char *, unsigned int)) PK11_DigestOp,
-+ (void (*)(void *, unsigned char *, unsigned int *, unsigned int))
-+ PK11_DigestFinal
-+ },
-+ { SHA384_LENGTH,
-+ (void * (*)(void)) sha384_NewContext,
-+ (void * (*)(void *)) PK11_CloneContext,
-+ (void (*)(void *, PRBool)) PK11_DestroyContext,
-+ (void (*)(void *)) PK11_DigestBegin,
-+ (void (*)(void *, const unsigned char *, unsigned int)) PK11_DigestOp,
-+ (void (*)(void *, unsigned char *, unsigned int *, unsigned int))
-+ PK11_DigestFinal
-+ },
-+ { SHA512_LENGTH,
-+ (void * (*)(void)) sha512_NewContext,
-+ (void * (*)(void *)) PK11_CloneContext,
-+ (void (*)(void *, PRBool)) PK11_DestroyContext,
-+ (void (*)(void *)) PK11_DigestBegin,
-+ (void (*)(void *, const unsigned char *, unsigned int)) PK11_DigestOp,
-+ (void (*)(void *, unsigned char *, unsigned int *, unsigned int))
-+ PK11_DigestFinal
-+ },
-+};
-+
-+const SECHashObject *
-+HASH_GetHashObject(HASH_HashType type)
-+{
-+ return &SECHashObjects[type];
-+}
-+
-+HASH_HashType
-+HASH_GetHashTypeByOidTag(SECOidTag hashOid)
-+{
-+ HASH_HashType ht = HASH_AlgNULL;
-+
-+ switch(hashOid) {
-+ case SEC_OID_MD2: ht = HASH_AlgMD2; break;
-+ case SEC_OID_MD5: ht = HASH_AlgMD5; break;
-+ case SEC_OID_SHA1: ht = HASH_AlgSHA1; break;
-+ case SEC_OID_SHA256: ht = HASH_AlgSHA256; break;
-+ case SEC_OID_SHA384: ht = HASH_AlgSHA384; break;
-+ case SEC_OID_SHA512: ht = HASH_AlgSHA512; break;
-+ default: ht = HASH_AlgNULL;
-+ PORT_SetError(SEC_ERROR_INVALID_ALGORITHM);
-+ break;
-+ }
-+ return ht;
-+}
-+
-+const SECHashObject *
-+HASH_GetHashObjectByOidTag(SECOidTag hashOid)
-+{
-+ HASH_HashType ht = HASH_GetHashTypeByOidTag(hashOid);
-+
-+ return (ht == HASH_AlgNULL) ? NULL : &SECHashObjects[ht];
-+}
-+
-+/* returns zero for unknown hash OID */
-+unsigned int
-+HASH_ResultLenByOidTag(SECOidTag hashOid)
-+{
-+ const SECHashObject * hashObject = HASH_GetHashObjectByOidTag(hashOid);
-+ unsigned int resultLen = 0;
-+
-+ if (hashObject)
-+ resultLen = hashObject->length;
-+ return resultLen;
-+}
-+
-+/* returns zero if hash type invalid. */
-+unsigned int
-+HASH_ResultLen(HASH_HashType type)
-+{
-+ if ( ( type < HASH_AlgNULL ) || ( type >= HASH_AlgTOTAL ) ) {
-+ PORT_SetError(SEC_ERROR_INVALID_ALGORITHM);
-+ return(0);
-+ }
-+
-+ return(SECHashObjects[type].length);
-+}
-+
-+unsigned int
-+HASH_ResultLenContext(HASHContext *context)
-+{
-+ return(context->hashobj->length);
-+}
-+
-+
-+
-+SECStatus
-+HASH_HashBuf(HASH_HashType type,
-+ unsigned char *dest,
-+ unsigned char *src,
-+ uint32 src_len)
-+{
-+ HASHContext *cx;
-+ unsigned int part;
-+
-+ if ( ( type < HASH_AlgNULL ) || ( type >= HASH_AlgTOTAL ) ) {
-+ return(SECFailure);
-+ }
-+
-+ cx = HASH_Create(type);
-+ if ( cx == NULL ) {
-+ return(SECFailure);
-+ }
-+ HASH_Begin(cx);
-+ HASH_Update(cx, src, src_len);
-+ HASH_End(cx, dest, &part, HASH_ResultLenContext(cx));
-+ HASH_Destroy(cx);
-+
-+ return(SECSuccess);
-+}
-+
-+HASHContext *
-+HASH_Create(HASH_HashType type)
-+{
-+ void *hash_context = NULL;
-+ HASHContext *ret = NULL;
-+
-+ if ( ( type < HASH_AlgNULL ) || ( type >= HASH_AlgTOTAL ) ) {
-+ return(NULL);
-+ }
-+
-+ hash_context = (* SECHashObjects[type].create)();
-+ if ( hash_context == NULL ) {
-+ goto loser;
-+ }
-+
-+ ret = (HASHContext *)PORT_Alloc(sizeof(HASHContext));
-+ if ( ret == NULL ) {
-+ goto loser;
-+ }
-+
-+ ret->hash_context = hash_context;
-+ ret->hashobj = &SECHashObjects[type];
-+
-+ return(ret);
-+
-+loser:
-+ if ( hash_context != NULL ) {
-+ (* SECHashObjects[type].destroy)(hash_context, PR_TRUE);
-+ }
-+
-+ return(NULL);
-+}
-+
-+
-+HASHContext *
-+HASH_Clone(HASHContext *context)
-+{
-+ void *hash_context = NULL;
-+ HASHContext *ret = NULL;
-+
-+ hash_context = (* context->hashobj->clone)(context->hash_context);
-+ if ( hash_context == NULL ) {
-+ goto loser;
-+ }
-+
-+ ret = (HASHContext *)PORT_Alloc(sizeof(HASHContext));
-+ if ( ret == NULL ) {
-+ goto loser;
-+ }
-+
-+ ret->hash_context = hash_context;
-+ ret->hashobj = context->hashobj;
-+
-+ return(ret);
-+
-+loser:
-+ if ( hash_context != NULL ) {
-+ (* context->hashobj->destroy)(hash_context, PR_TRUE);
-+ }
-+
-+ return(NULL);
-+
-+}
-+
-+void
-+HASH_Destroy(HASHContext *context)
-+{
-+ (* context->hashobj->destroy)(context->hash_context, PR_TRUE);
-+ PORT_Free(context);
-+ return;
-+}
-+
-+
-+void
-+HASH_Begin(HASHContext *context)
-+{
-+ (* context->hashobj->begin)(context->hash_context);
-+ return;
-+}
-+
-+
-+void
-+HASH_Update(HASHContext *context,
-+ const unsigned char *src,
-+ unsigned int len)
-+{
-+ (* context->hashobj->update)(context->hash_context, src, len);
-+ return;
-+}
-+
-+void
-+HASH_End(HASHContext *context,
-+ unsigned char *result,
-+ unsigned int *result_len,
-+ unsigned int max_result_len)
-+{
-+ (* context->hashobj->end)(context->hash_context, result, result_len,
-+ max_result_len);
-+ return;
-+}
-+
-+
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/secinit.c 2004-12-13 13:06:46.764387824 +0100
-@@ -0,0 +1,50 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#include "nspr.h"
-+#include "secport.h"
-+
-+static int sec_inited = 0;
-+
-+void
-+SEC_Init(void)
-+{
-+ /* PR_Init() must be called before SEC_Init() */
-+#if !defined(SERVER_BUILD)
-+ PORT_Assert(PR_Initialized() == PR_TRUE);
-+#endif
-+ if (sec_inited)
-+ return;
-+
-+ sec_inited = 1;
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/secitem.c 2004-12-13 13:06:46.764387824 +0100
-@@ -0,0 +1,310 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+/*
-+ * Support routines for SECItem data structure.
-+ *
-+ * $Id$
-+ */
-+
-+#include "seccomon.h"
-+#include "secitem.h"
-+#include "base64.h"
-+#include "secerr.h"
-+
-+SECItem *
-+SECITEM_AllocItem(PRArenaPool *arena, SECItem *item, unsigned int len)
-+{
-+ SECItem *result = NULL;
-+ void *mark = NULL;
-+
-+ if (arena != NULL) {
-+ mark = PORT_ArenaMark(arena);
-+ }
-+
-+ if (item == NULL) {
-+ if (arena != NULL) {
-+ result = PORT_ArenaZAlloc(arena, sizeof(SECItem));
-+ } else {
-+ result = PORT_ZAlloc(sizeof(SECItem));
-+ }
-+ if (result == NULL) {
-+ goto loser;
-+ }
-+ } else {
-+ PORT_Assert(item->data == NULL);
-+ result = item;
-+ }
-+
-+ result->len = len;
-+ if (len) {
-+ if (arena != NULL) {
-+ result->data = PORT_ArenaAlloc(arena, len);
-+ } else {
-+ result->data = PORT_Alloc(len);
-+ }
-+ }
-+
-+ if (mark) {
-+ PORT_ArenaUnmark(arena, mark);
-+ }
-+ return(result);
-+
-+loser:
-+ if ( arena != NULL ) {
-+ if (mark) {
-+ PORT_ArenaRelease(arena, mark);
-+ }
-+ if (item != NULL) {
-+ item->data = NULL;
-+ item->len = 0;
-+ }
-+ } else {
-+ if (result != NULL) {
-+ SECITEM_FreeItem(result, (item == NULL) ? PR_TRUE : PR_FALSE);
-+ }
-+ }
-+ return(NULL);
-+}
-+
-+SECStatus
-+SECITEM_ReallocItem(PRArenaPool *arena, SECItem *item, unsigned int oldlen,
-+ unsigned int newlen)
-+{
-+ PORT_Assert(item != NULL);
-+ if (item == NULL) {
-+ /* XXX Set error. But to what? */
-+ return SECFailure;
-+ }
-+
-+ /*
-+ * If no old length, degenerate to just plain alloc.
-+ */
-+ if (oldlen == 0) {
-+ PORT_Assert(item->data == NULL || item->len == 0);
-+ if (newlen == 0) {
-+ /* Nothing to do. Weird, but not a failure. */
-+ return SECSuccess;
-+ }
-+ item->len = newlen;
-+ if (arena != NULL) {
-+ item->data = PORT_ArenaAlloc(arena, newlen);
-+ } else {
-+ item->data = PORT_Alloc(newlen);
-+ }
-+ } else {
-+ if (arena != NULL) {
-+ item->data = PORT_ArenaGrow(arena, item->data, oldlen, newlen);
-+ } else {
-+ item->data = PORT_Realloc(item->data, newlen);
-+ }
-+ }
-+
-+ if (item->data == NULL) {
-+ return SECFailure;
-+ }
-+
-+ return SECSuccess;
-+}
-+
-+SECComparison
-+SECITEM_CompareItem(const SECItem *a, const SECItem *b)
-+{
-+ unsigned m;
-+ SECComparison rv;
-+
-+ if (!a || !a->len || !a->data)
-+ return (!b || !b->len || !b->data) ? SECEqual : SECLessThan;
-+ if (!b || !b->len || !b->data)
-+ return SECGreaterThan;
-+
-+ m = ( ( a->len < b->len ) ? a->len : b->len );
-+
-+ rv = (SECComparison) PORT_Memcmp(a->data, b->data, m);
-+ if (rv) {
-+ return rv;
-+ }
-+ if (a->len < b->len) {
-+ return SECLessThan;
-+ }
-+ if (a->len == b->len) {
-+ return SECEqual;
-+ }
-+ return SECGreaterThan;
-+}
-+
-+PRBool
-+SECITEM_ItemsAreEqual(const SECItem *a, const SECItem *b)
-+{
-+ if (a->len != b->len)
-+ return PR_FALSE;
-+ if (!a->len)
-+ return PR_TRUE;
-+ if (!a->data || !b->data) {
-+ /* avoid null pointer crash. */
-+ return (PRBool)(a->data == b->data);
-+ }
-+ return (PRBool)!PORT_Memcmp(a->data, b->data, a->len);
-+}
-+
-+SECItem *
-+SECITEM_DupItem(const SECItem *from)
-+{
-+ return SECITEM_ArenaDupItem(NULL, from);
-+}
-+
-+SECItem *
-+SECITEM_ArenaDupItem(PRArenaPool *arena, const SECItem *from)
-+{
-+ SECItem *to;
-+
-+ if ( from == NULL ) {
-+ return(NULL);
-+ }
-+
-+ if ( arena != NULL ) {
-+ to = (SECItem *)PORT_ArenaAlloc(arena, sizeof(SECItem));
-+ } else {
-+ to = (SECItem *)PORT_Alloc(sizeof(SECItem));
-+ }
-+ if ( to == NULL ) {
-+ return(NULL);
-+ }
-+
-+ if ( arena != NULL ) {
-+ to->data = (unsigned char *)PORT_ArenaAlloc(arena, from->len);
-+ } else {
-+ to->data = (unsigned char *)PORT_Alloc(from->len);
-+ }
-+ if ( to->data == NULL ) {
-+ PORT_Free(to);
-+ return(NULL);
-+ }
-+
-+ to->len = from->len;
-+ to->type = from->type;
-+ if ( to->len ) {
-+ PORT_Memcpy(to->data, from->data, to->len);
-+ }
-+
-+ return(to);
-+}
-+
-+SECStatus
-+SECITEM_CopyItem(PRArenaPool *arena, SECItem *to, const SECItem *from)
-+{
-+ to->type = from->type;
-+ if (from->data && from->len) {
-+ if ( arena ) {
-+ to->data = (unsigned char*) PORT_ArenaAlloc(arena, from->len);
-+ } else {
-+ to->data = (unsigned char*) PORT_Alloc(from->len);
-+ }
-+
-+ if (!to->data) {
-+ return SECFailure;
-+ }
-+ PORT_Memcpy(to->data, from->data, from->len);
-+ to->len = from->len;
-+ } else {
-+ to->data = 0;
-+ to->len = 0;
-+ }
-+ return SECSuccess;
-+}
-+
-+void
-+SECITEM_FreeItem(SECItem *zap, PRBool freeit)
-+{
-+ if (zap) {
-+ PORT_Free(zap->data);
-+ zap->data = 0;
-+ zap->len = 0;
-+ if (freeit) {
-+ PORT_Free(zap);
-+ }
-+ }
-+}
-+
-+void
-+SECITEM_ZfreeItem(SECItem *zap, PRBool freeit)
-+{
-+ if (zap) {
-+ PORT_ZFree(zap->data, zap->len);
-+ zap->data = 0;
-+ zap->len = 0;
-+ if (freeit) {
-+ PORT_ZFree(zap, sizeof(SECItem));
-+ }
-+ }
-+}
-+/* these reroutines were taken from pkix oid.c, which is supposed to
-+ * replace this file some day */
-+/*
-+ * This is the hash function. We simply XOR the encoded form with
-+ * itself in sizeof(PLHashNumber)-byte chunks. Improving this
-+ * routine is left as an excercise for the more mathematically
-+ * inclined student.
-+ */
-+PLHashNumber PR_CALLBACK
-+SECITEM_Hash ( const void *key)
-+{
-+ const SECItem *item = (const SECItem *)key;
-+ PLHashNumber rv = 0;
-+
-+ PRUint8 *data = (PRUint8 *)item->data;
-+ PRUint32 i;
-+ PRUint8 *rvc = (PRUint8 *)&rv;
-+
-+ for( i = 0; i < item->len; i++ ) {
-+ rvc[ i % sizeof(rv) ] ^= *data;
-+ data++;
-+ }
-+
-+ return rv;
-+}
-+
-+/*
-+ * This is the key-compare function. It simply does a lexical
-+ * comparison on the item data. This does not result in
-+ * quite the same ordering as the "sequence of numbers" order,
-+ * but heck it's only used internally by the hash table anyway.
-+ */
-+PRIntn PR_CALLBACK
-+SECITEM_HashCompare ( const void *k1, const void *k2)
-+{
-+ const SECItem *i1 = (const SECItem *)k1;
-+ const SECItem *i2 = (const SECItem *)k2;
-+
-+ return SECITEM_ItemsAreEqual(i1,i2);
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/seckey.c 2004-12-13 13:06:46.876370800 +0100
-@@ -0,0 +1,2283 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Portions created by Sun Microsystems, Inc. are Copyright (C) 2003
-+ * Sun Microsystems, Inc. All Rights Reserved.
-+ *
-+ * Contributor(s):
-+ * Dr Stephen Henson <stephen.henson@gemplus.com>
-+ * Dr Vipul Gupta <vipul.gupta@sun.com>, Sun Microsystems Laboratories
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+#include "cryptohi.h"
-+#include "keyhi.h"
-+#include "secoid.h"
-+#include "secitem.h"
-+#include "secder.h"
-+#include "base64.h"
-+#include "secasn1.h"
-+#include "cert.h"
-+#include "pk11func.h"
-+#include "secerr.h"
-+#include "secdig.h"
-+#include "prtime.h"
-+#include "ec.h"
-+
-+const SEC_ASN1Template CERT_SubjectPublicKeyInfoTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(CERTSubjectPublicKeyInfo) },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTSubjectPublicKeyInfo,algorithm),
-+ SECOID_AlgorithmIDTemplate },
-+ { SEC_ASN1_BIT_STRING,
-+ offsetof(CERTSubjectPublicKeyInfo,subjectPublicKey), },
-+ { 0, }
-+};
-+
-+const SEC_ASN1Template CERT_PublicKeyAndChallengeTemplate[] =
-+{
-+ { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(CERTPublicKeyAndChallenge) },
-+ { SEC_ASN1_ANY, offsetof(CERTPublicKeyAndChallenge,spki) },
-+ { SEC_ASN1_IA5_STRING, offsetof(CERTPublicKeyAndChallenge,challenge) },
-+ { 0 }
-+};
-+
-+const SEC_ASN1Template SECKEY_RSAPublicKeyTemplate[] = {
-+ { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(SECKEYPublicKey) },
-+ { SEC_ASN1_INTEGER, offsetof(SECKEYPublicKey,u.rsa.modulus), },
-+ { SEC_ASN1_INTEGER, offsetof(SECKEYPublicKey,u.rsa.publicExponent), },
-+ { 0, }
-+};
-+
-+const SEC_ASN1Template SECKEY_DSAPublicKeyTemplate[] = {
-+ { SEC_ASN1_INTEGER, offsetof(SECKEYPublicKey,u.dsa.publicValue), },
-+ { 0, }
-+};
-+
-+const SEC_ASN1Template SECKEY_PQGParamsTemplate[] = {
-+ { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(SECKEYPQGParams) },
-+ { SEC_ASN1_INTEGER, offsetof(SECKEYPQGParams,prime) },
-+ { SEC_ASN1_INTEGER, offsetof(SECKEYPQGParams,subPrime) },
-+ { SEC_ASN1_INTEGER, offsetof(SECKEYPQGParams,base) },
-+ { 0, }
-+};
-+
-+const SEC_ASN1Template SECKEY_DHPublicKeyTemplate[] = {
-+ { SEC_ASN1_INTEGER, offsetof(SECKEYPublicKey,u.dh.publicValue), },
-+ { 0, }
-+};
-+
-+const SEC_ASN1Template SECKEY_DHParamKeyTemplate[] = {
-+ { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(SECKEYPublicKey) },
-+ { SEC_ASN1_INTEGER, offsetof(SECKEYPublicKey,u.dh.prime), },
-+ { SEC_ASN1_INTEGER, offsetof(SECKEYPublicKey,u.dh.base), },
-+ /* XXX chrisk: this needs to be expanded for decoding of j and validationParms (RFC2459 7.3.2) */
-+ { SEC_ASN1_SKIP_REST },
-+ { 0, }
-+};
-+
-+const SEC_ASN1Template SECKEY_FortezzaParameterTemplate[] = {
-+ { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(SECKEYPQGParams) },
-+ { SEC_ASN1_OCTET_STRING, offsetof(SECKEYPQGParams,prime), },
-+ { SEC_ASN1_OCTET_STRING, offsetof(SECKEYPQGParams,subPrime), },
-+ { SEC_ASN1_OCTET_STRING, offsetof(SECKEYPQGParams,base), },
-+ { 0 },
-+};
-+
-+const SEC_ASN1Template SECKEY_FortezzaDiffParameterTemplate[] = {
-+ { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(SECKEYDiffPQGParams) },
-+ { SEC_ASN1_INLINE, offsetof(SECKEYDiffPQGParams,DiffKEAParams),
-+ SECKEY_FortezzaParameterTemplate},
-+ { SEC_ASN1_INLINE, offsetof(SECKEYDiffPQGParams,DiffDSAParams),
-+ SECKEY_FortezzaParameterTemplate},
-+ { 0 },
-+};
-+
-+const SEC_ASN1Template SECKEY_FortezzaPreParamTemplate[] = {
-+ { SEC_ASN1_EXPLICIT | SEC_ASN1_CONSTRUCTED |
-+ SEC_ASN1_CONTEXT_SPECIFIC | 1, offsetof(SECKEYPQGDualParams,CommParams),
-+ SECKEY_FortezzaParameterTemplate},
-+ { 0, }
-+};
-+
-+const SEC_ASN1Template SECKEY_FortezzaAltPreParamTemplate[] = {
-+ { SEC_ASN1_EXPLICIT | SEC_ASN1_CONSTRUCTED |
-+ SEC_ASN1_CONTEXT_SPECIFIC | 0, offsetof(SECKEYPQGDualParams,DiffParams),
-+ SECKEY_FortezzaDiffParameterTemplate},
-+ { 0, }
-+};
-+
-+const SEC_ASN1Template SECKEY_KEAPublicKeyTemplate[] = {
-+ { SEC_ASN1_INTEGER, offsetof(SECKEYPublicKey,u.kea.publicValue), },
-+ { 0, }
-+};
-+
-+const SEC_ASN1Template SECKEY_KEAParamsTemplate[] = {
-+ { SEC_ASN1_OCTET_STRING, offsetof(SECKEYPublicKey,u.kea.params.hash), },
-+ { 0, }
-+};
-+
-+SEC_ASN1_CHOOSER_IMPLEMENT(SECKEY_DSAPublicKeyTemplate)
-+SEC_ASN1_CHOOSER_IMPLEMENT(SECKEY_RSAPublicKeyTemplate)
-+SEC_ASN1_CHOOSER_IMPLEMENT(CERT_SubjectPublicKeyInfoTemplate)
-+
-+/*
-+ * See bugzilla bug 125359
-+ * Since NSS (via PKCS#11) wants to handle big integers as unsigned ints,
-+ * all of the templates above that en/decode into integers must be converted
-+ * from ASN.1's signed integer type. This is done by marking either the
-+ * source or destination (encoding or decoding, respectively) type as
-+ * siUnsignedInteger.
-+ */
-+static void
-+prepare_rsa_pub_key_for_asn1(SECKEYPublicKey *pubk)
-+{
-+ pubk->u.rsa.modulus.type = siUnsignedInteger;
-+ pubk->u.rsa.publicExponent.type = siUnsignedInteger;
-+}
-+
-+static void
-+prepare_dsa_pub_key_for_asn1(SECKEYPublicKey *pubk)
-+{
-+ pubk->u.dsa.publicValue.type = siUnsignedInteger;
-+}
-+
-+static void
-+prepare_pqg_params_for_asn1(SECKEYPQGParams *params)
-+{
-+ params->prime.type = siUnsignedInteger;
-+ params->subPrime.type = siUnsignedInteger;
-+ params->base.type = siUnsignedInteger;
-+}
-+
-+static void
-+prepare_dh_pub_key_for_asn1(SECKEYPublicKey *pubk)
-+{
-+ pubk->u.dh.prime.type = siUnsignedInteger;
-+ pubk->u.dh.base.type = siUnsignedInteger;
-+ pubk->u.dh.publicValue.type = siUnsignedInteger;
-+}
-+
-+static void
-+prepare_kea_pub_key_for_asn1(SECKEYPublicKey *pubk)
-+{
-+ pubk->u.kea.publicValue.type = siUnsignedInteger;
-+}
-+
-+/* Create an RSA key pair is any slot able to do so.
-+** The created keys are "session" (temporary), not "token" (permanent),
-+** and they are "sensitive", which makes them costly to move to another token.
-+*/
-+SECKEYPrivateKey *
-+SECKEY_CreateRSAPrivateKey(int keySizeInBits,SECKEYPublicKey **pubk, void *cx)
-+{
-+ SECKEYPrivateKey *privk;
-+ PK11SlotInfo *slot = PK11_GetBestSlot(CKM_RSA_PKCS_KEY_PAIR_GEN,cx);
-+ PK11RSAGenParams param;
-+
-+ param.keySizeInBits = keySizeInBits;
-+ param.pe = 65537L;
-+
-+ privk = PK11_GenerateKeyPair(slot,CKM_RSA_PKCS_KEY_PAIR_GEN,&param,pubk,
-+ PR_FALSE, PR_TRUE, cx);
-+ PK11_FreeSlot(slot);
-+ return(privk);
-+}
-+
-+/* Create a DH key pair in any slot able to do so,
-+** This is a "session" (temporary), not "token" (permanent) key.
-+** Because of the high probability that this key will need to be moved to
-+** another token, and the high cost of moving "sensitive" keys, we attempt
-+** to create this key pair without the "sensitive" attribute, but revert to
-+** creating a "sensitive" key if necessary.
-+*/
-+SECKEYPrivateKey *
-+SECKEY_CreateDHPrivateKey(SECKEYDHParams *param, SECKEYPublicKey **pubk, void *cx)
-+{
-+ SECKEYPrivateKey *privk;
-+ PK11SlotInfo *slot = PK11_GetBestSlot(CKM_DH_PKCS_KEY_PAIR_GEN,cx);
-+
-+ privk = PK11_GenerateKeyPair(slot, CKM_DH_PKCS_KEY_PAIR_GEN, param,
-+ pubk, PR_FALSE, PR_FALSE, cx);
-+ if (!privk)
-+ privk = PK11_GenerateKeyPair(slot, CKM_DH_PKCS_KEY_PAIR_GEN, param,
-+ pubk, PR_FALSE, PR_TRUE, cx);
-+
-+ PK11_FreeSlot(slot);
-+ return(privk);
-+}
-+
-+/* Create an EC key pair in any slot able to do so,
-+** This is a "session" (temporary), not "token" (permanent) key.
-+** Because of the high probability that this key will need to be moved to
-+** another token, and the high cost of moving "sensitive" keys, we attempt
-+** to create this key pair without the "sensitive" attribute, but revert to
-+** creating a "sensitive" key if necessary.
-+*/
-+SECKEYPrivateKey *
-+SECKEY_CreateECPrivateKey(SECKEYECParams *param, SECKEYPublicKey **pubk, void *cx)
-+{
-+#ifdef NSS_ENABLE_ECC
-+ SECKEYPrivateKey *privk;
-+ PK11SlotInfo *slot = PK11_GetBestSlot(CKM_EC_KEY_PAIR_GEN,cx);
-+
-+ privk = PK11_GenerateKeyPair(slot, CKM_EC_KEY_PAIR_GEN, param,
-+ pubk, PR_FALSE, PR_FALSE, cx);
-+ if (!privk)
-+ privk = PK11_GenerateKeyPair(slot, CKM_EC_KEY_PAIR_GEN, param,
-+ pubk, PR_FALSE, PR_TRUE, cx);
-+
-+ PK11_FreeSlot(slot);
-+ return(privk);
-+#else
-+ return NULL;
-+#endif /* NSS_ENABLE_ECC */
-+}
-+
-+void
-+SECKEY_DestroyPrivateKey(SECKEYPrivateKey *privk)
-+{
-+ if (privk) {
-+ if (privk->pkcs11Slot) {
-+ if (privk->pkcs11IsTemp) {
-+ PK11_DestroyObject(privk->pkcs11Slot,privk->pkcs11ID);
-+ }
-+ PK11_FreeSlot(privk->pkcs11Slot);
-+
-+ }
-+ if (privk->arena) {
-+ PORT_FreeArena(privk->arena, PR_TRUE);
-+ }
-+ }
-+}
-+
-+void
-+SECKEY_DestroyPublicKey(SECKEYPublicKey *pubk)
-+{
-+ if (pubk) {
-+ if (pubk->pkcs11Slot) {
-+ if (!PK11_IsPermObject(pubk->pkcs11Slot,pubk->pkcs11ID)) {
-+ PK11_DestroyObject(pubk->pkcs11Slot,pubk->pkcs11ID);
-+ }
-+ PK11_FreeSlot(pubk->pkcs11Slot);
-+ }
-+ if (pubk->arena) {
-+ PORT_FreeArena(pubk->arena, PR_FALSE);
-+ }
-+ }
-+}
-+
-+SECStatus
-+SECKEY_CopySubjectPublicKeyInfo(PRArenaPool *arena,
-+ CERTSubjectPublicKeyInfo *to,
-+ CERTSubjectPublicKeyInfo *from)
-+{
-+ SECStatus rv;
-+
-+ rv = SECOID_CopyAlgorithmID(arena, &to->algorithm, &from->algorithm);
-+ if (rv == SECSuccess)
-+ rv = SECITEM_CopyItem(arena, &to->subjectPublicKey, &from->subjectPublicKey);
-+
-+ return rv;
-+}
-+
-+SECStatus
-+SECKEY_KEASetParams(SECKEYKEAParams * params, SECKEYPublicKey * pubKey) {
-+
-+ if (pubKey->keyType == fortezzaKey) {
-+ /* the key is a fortezza V1 public key */
-+
-+ /* obtain hash of pubkey->u.fortezza.params.prime.data +
-+ pubkey->u.fortezza.params.subPrime.data +
-+ pubkey->u.fortezza.params.base.data */
-+
-+ /* store hash in params->hash */
-+
-+ } else if (pubKey->keyType == keaKey) {
-+
-+ /* the key is a new fortezza KEA public key. */
-+ SECITEM_CopyItem(pubKey->arena, &params->hash,
-+ &pubKey->u.kea.params.hash );
-+
-+ } else {
-+
-+ /* the key has no KEA parameters */
-+ return SECFailure;
-+ }
-+ return SECSuccess;
-+}
-+
-+
-+SECStatus
-+SECKEY_KEAParamCompare(CERTCertificate *cert1,CERTCertificate *cert2)
-+{
-+
-+ SECStatus rv;
-+
-+ SECKEYPublicKey *pubKey1 = 0;
-+ SECKEYPublicKey *pubKey2 = 0;
-+
-+ SECKEYKEAParams params1;
-+ SECKEYKEAParams params2;
-+
-+
-+ rv = SECFailure;
-+
-+ /* get cert1's public key */
-+ pubKey1 = CERT_ExtractPublicKey(cert1);
-+ if ( !pubKey1 ) {
-+ return(SECFailure);
-+ }
-+
-+
-+ /* get cert2's public key */
-+ pubKey2 = CERT_ExtractPublicKey(cert2);
-+ if ( !pubKey2 ) {
-+ return(SECFailure);
-+ }
-+
-+ /* handle the case when both public keys are new
-+ * fortezza KEA public keys. */
-+
-+ if ((pubKey1->keyType == keaKey) &&
-+ (pubKey2->keyType == keaKey) ) {
-+
-+ rv = (SECStatus)SECITEM_CompareItem(&pubKey1->u.kea.params.hash,
-+ &pubKey2->u.kea.params.hash);
-+ goto done;
-+ }
-+
-+ /* handle the case when both public keys are old fortezza
-+ * public keys. */
-+
-+ if ((pubKey1->keyType == fortezzaKey) &&
-+ (pubKey2->keyType == fortezzaKey) ) {
-+
-+ rv = (SECStatus)SECITEM_CompareItem(&pubKey1->u.fortezza.keaParams.prime,
-+ &pubKey2->u.fortezza.keaParams.prime);
-+
-+ if (rv == SECEqual) {
-+ rv = (SECStatus)SECITEM_CompareItem(&pubKey1->u.fortezza.keaParams.subPrime,
-+ &pubKey2->u.fortezza.keaParams.subPrime);
-+ }
-+
-+ if (rv == SECEqual) {
-+ rv = (SECStatus)SECITEM_CompareItem(&pubKey1->u.fortezza.keaParams.base,
-+ &pubKey2->u.fortezza.keaParams.base);
-+ }
-+
-+ goto done;
-+ }
-+
-+
-+ /* handle the case when the public keys are a mixture of
-+ * old and new. */
-+
-+ rv = SECKEY_KEASetParams(&params1, pubKey1);
-+ if (rv != SECSuccess) return rv;
-+
-+ rv = SECKEY_KEASetParams(&params2, pubKey2);
-+ if (rv != SECSuccess) return rv;
-+
-+ rv = (SECStatus)SECITEM_CompareItem(&params1.hash, &params2.hash);
-+
-+done:
-+ SECKEY_DestroyPublicKey(pubKey1);
-+ SECKEY_DestroyPublicKey(pubKey2);
-+
-+ return rv; /* returns SECEqual if parameters are equal */
-+
-+}
-+
-+
-+/* Procedure to update the pqg parameters for a cert's public key.
-+ * pqg parameters only need to be updated for DSA and fortezza certificates.
-+ * The procedure uses calls to itself recursively to update a certificate
-+ * issuer's pqg parameters. Some important rules are:
-+ * - Do nothing if the cert already has PQG parameters.
-+ * - If the cert does not have PQG parameters, obtain them from the issuer.
-+ * - A valid cert chain cannot have a DSA or Fortezza cert without
-+ * pqg parameters that has a parent that is not a DSA or Fortezza cert.
-+ * - pqg paramters are stored in two different formats: the standard
-+ * DER encoded format and the fortezza-only wrapped format. The params
-+ * should be copied from issuer to subject cert without modifying the
-+ * formats. The public key extraction code will deal with the different
-+ * formats at the time of extraction. */
-+
-+static SECStatus
-+seckey_UpdateCertPQGChain(CERTCertificate * subjectCert, int count)
-+{
-+ SECStatus rv, rvCompare;
-+ SECOidData *oid=NULL;
-+ int tag;
-+ CERTSubjectPublicKeyInfo * subjectSpki=NULL;
-+ CERTSubjectPublicKeyInfo * issuerSpki=NULL;
-+ CERTCertificate *issuerCert = NULL;
-+
-+ rv = SECSuccess;
-+
-+ /* increment cert chain length counter*/
-+ count++;
-+
-+ /* check if cert chain length exceeds the maximum length*/
-+ if (count > CERT_MAX_CERT_CHAIN) {
-+ return SECFailure;
-+ }
-+
-+ oid = SECOID_FindOID(&subjectCert->subjectPublicKeyInfo.algorithm.algorithm);
-+ if (oid != NULL) {
-+ tag = oid->offset;
-+
-+ /* Check if cert has a DSA or Fortezza public key. If not, return
-+ * success since no PQG params need to be updated. */
-+
-+ if ( (tag != SEC_OID_MISSI_KEA_DSS_OLD) &&
-+ (tag != SEC_OID_MISSI_DSS_OLD) &&
-+ (tag != SEC_OID_MISSI_KEA_DSS) &&
-+ (tag != SEC_OID_MISSI_DSS) &&
-+ (tag != SEC_OID_ANSIX9_DSA_SIGNATURE) &&
-+ (tag != SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST) &&
-+ (tag != SEC_OID_BOGUS_DSA_SIGNATURE_WITH_SHA1_DIGEST) &&
-+ (tag != SEC_OID_SDN702_DSA_SIGNATURE) &&
-+ (tag != SEC_OID_ANSIX962_EC_PUBLIC_KEY) ) {
-+
-+ return SECSuccess;
-+ }
-+ } else {
-+ return SECFailure; /* return failure if oid is NULL */
-+ }
-+
-+ /* if cert has PQG parameters, return success */
-+
-+ subjectSpki=&subjectCert->subjectPublicKeyInfo;
-+
-+ if (subjectSpki->algorithm.parameters.len != 0) {
-+ return SECSuccess;
-+ }
-+
-+ /* check if the cert is self-signed */
-+ rvCompare = (SECStatus)SECITEM_CompareItem(&subjectCert->derSubject,
-+ &subjectCert->derIssuer);
-+ if (rvCompare == SECEqual) {
-+ /* fail since cert is self-signed and has no pqg params. */
-+ return SECFailure;
-+ }
-+
-+ /* get issuer cert */
-+ issuerCert = CERT_FindCertIssuer(subjectCert, PR_Now(), certUsageAnyCA);
-+ if ( ! issuerCert ) {
-+ return SECFailure;
-+ }
-+
-+ /* if parent is not DSA or fortezza, return failure since
-+ we don't allow this case. */
-+
-+ oid = SECOID_FindOID(&issuerCert->subjectPublicKeyInfo.algorithm.algorithm);
-+ if (oid != NULL) {
-+ tag = oid->offset;
-+
-+ /* Check if issuer cert has a DSA or Fortezza public key. If not,
-+ * return failure. */
-+
-+ if ( (tag != SEC_OID_MISSI_KEA_DSS_OLD) &&
-+ (tag != SEC_OID_MISSI_DSS_OLD) &&
-+ (tag != SEC_OID_MISSI_KEA_DSS) &&
-+ (tag != SEC_OID_MISSI_DSS) &&
-+ (tag != SEC_OID_ANSIX9_DSA_SIGNATURE) &&
-+ (tag != SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST) &&
-+ (tag != SEC_OID_BOGUS_DSA_SIGNATURE_WITH_SHA1_DIGEST) &&
-+ (tag != SEC_OID_SDN702_DSA_SIGNATURE) &&
-+ (tag != SEC_OID_ANSIX962_EC_PUBLIC_KEY) ) {
-+ rv = SECFailure;
-+ goto loser;
-+ }
-+ } else {
-+ rv = SECFailure; /* return failure if oid is NULL */
-+ goto loser;
-+ }
-+
-+
-+ /* at this point the subject cert has no pqg parameters and the
-+ * issuer cert has a DSA or fortezza public key. Update the issuer's
-+ * pqg parameters with a recursive call to this same function. */
-+
-+ rv = seckey_UpdateCertPQGChain(issuerCert, count);
-+ if (rv != SECSuccess) {
-+ rv = SECFailure;
-+ goto loser;
-+ }
-+
-+ /* ensure issuer has pqg parameters */
-+
-+ issuerSpki=&issuerCert->subjectPublicKeyInfo;
-+ if (issuerSpki->algorithm.parameters.len == 0) {
-+ rv = SECFailure;
-+ }
-+
-+ /* if update was successful and pqg params present, then copy the
-+ * parameters to the subject cert's key. */
-+
-+ if (rv == SECSuccess) {
-+ rv = SECITEM_CopyItem(subjectCert->arena,
-+ &subjectSpki->algorithm.parameters,
-+ &issuerSpki->algorithm.parameters);
-+ }
-+
-+loser:
-+ if (issuerCert) {
-+ CERT_DestroyCertificate(issuerCert);
-+ }
-+ return rv;
-+
-+}
-+
-+
-+SECStatus
-+SECKEY_UpdateCertPQG(CERTCertificate * subjectCert)
-+{
-+ if (!subjectCert) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+ return seckey_UpdateCertPQGChain(subjectCert,0);
-+}
-+
-+
-+/* Decode the PQG parameters. The params could be stored in two
-+ * possible formats, the old fortezza-only wrapped format or
-+ * the standard DER encoded format. Store the decoded parameters in an
-+ * old fortezza cert data structure */
-+
-+SECStatus
-+SECKEY_FortezzaDecodePQGtoOld(PRArenaPool *arena, SECKEYPublicKey *pubk,
-+ SECItem *params) {
-+ SECStatus rv;
-+ SECKEYPQGDualParams dual_params;
-+
-+ if (params == NULL) return SECFailure;
-+
-+ if (params->data == NULL) return SECFailure;
-+
-+ /* Check if params use the standard format.
-+ * The value 0xa1 will appear in the first byte of the parameter data
-+ * if the PQG parameters are not using the standard format. This
-+ * code should be changed to use a better method to detect non-standard
-+ * parameters. */
-+
-+ if ((params->data[0] != 0xa1) &&
-+ (params->data[0] != 0xa0)) {
-+
-+ /* PQG params are in the standard format */
-+
-+ /* Store DSA PQG parameters */
-+ prepare_pqg_params_for_asn1(&pubk->u.fortezza.params);
-+ rv = SEC_ASN1DecodeItem(arena, &pubk->u.fortezza.params,
-+ SECKEY_PQGParamsTemplate,
-+ params);
-+
-+ if (rv == SECSuccess) {
-+
-+ /* Copy the DSA PQG parameters to the KEA PQG parameters. */
-+ rv = SECITEM_CopyItem(arena, &pubk->u.fortezza.keaParams.prime,
-+ &pubk->u.fortezza.params.prime);
-+ if (rv != SECSuccess) return rv;
-+ rv = SECITEM_CopyItem(arena, &pubk->u.fortezza.keaParams.subPrime,
-+ &pubk->u.fortezza.params.subPrime);
-+ if (rv != SECSuccess) return rv;
-+ rv = SECITEM_CopyItem(arena, &pubk->u.fortezza.keaParams.base,
-+ &pubk->u.fortezza.params.base);
-+ if (rv != SECSuccess) return rv;
-+ }
-+
-+ } else {
-+
-+ dual_params.CommParams.prime.len = 0;
-+ dual_params.CommParams.subPrime.len = 0;
-+ dual_params.CommParams.base.len = 0;
-+ dual_params.DiffParams.DiffDSAParams.prime.len = 0;
-+ dual_params.DiffParams.DiffDSAParams.subPrime.len = 0;
-+ dual_params.DiffParams.DiffDSAParams.base.len = 0;
-+
-+ /* else the old fortezza-only wrapped format is used. */
-+
-+ if (params->data[0] == 0xa1) {
-+ rv = SEC_ASN1DecodeItem(arena, &dual_params,
-+ SECKEY_FortezzaPreParamTemplate, params);
-+ } else {
-+ rv = SEC_ASN1DecodeItem(arena, &dual_params,
-+ SECKEY_FortezzaAltPreParamTemplate, params);
-+ }
-+
-+ if (rv < 0) return rv;
-+
-+ if ( (dual_params.CommParams.prime.len > 0) &&
-+ (dual_params.CommParams.subPrime.len > 0) &&
-+ (dual_params.CommParams.base.len > 0) ) {
-+ /* copy in common params */
-+
-+ rv = SECITEM_CopyItem(arena, &pubk->u.fortezza.params.prime,
-+ &dual_params.CommParams.prime);
-+ if (rv != SECSuccess) return rv;
-+ rv = SECITEM_CopyItem(arena, &pubk->u.fortezza.params.subPrime,
-+ &dual_params.CommParams.subPrime);
-+ if (rv != SECSuccess) return rv;
-+ rv = SECITEM_CopyItem(arena, &pubk->u.fortezza.params.base,
-+ &dual_params.CommParams.base);
-+
-+ /* Copy the DSA PQG parameters to the KEA PQG parameters. */
-+ rv = SECITEM_CopyItem(arena, &pubk->u.fortezza.keaParams.prime,
-+ &pubk->u.fortezza.params.prime);
-+ if (rv != SECSuccess) return rv;
-+ rv = SECITEM_CopyItem(arena, &pubk->u.fortezza.keaParams.subPrime,
-+ &pubk->u.fortezza.params.subPrime);
-+ if (rv != SECSuccess) return rv;
-+ rv = SECITEM_CopyItem(arena, &pubk->u.fortezza.keaParams.base,
-+ &pubk->u.fortezza.params.base);
-+ if (rv != SECSuccess) return rv;
-+
-+ } else {
-+
-+ /* else copy in different params */
-+
-+ /* copy DSA PQG parameters */
-+ rv = SECITEM_CopyItem(arena, &pubk->u.fortezza.params.prime,
-+ &dual_params.DiffParams.DiffDSAParams.prime);
-+ if (rv != SECSuccess) return rv;
-+ rv = SECITEM_CopyItem(arena, &pubk->u.fortezza.params.subPrime,
-+ &dual_params.DiffParams.DiffDSAParams.subPrime);
-+ if (rv != SECSuccess) return rv;
-+ rv = SECITEM_CopyItem(arena, &pubk->u.fortezza.params.base,
-+ &dual_params.DiffParams.DiffDSAParams.base);
-+
-+ /* copy KEA PQG parameters */
-+
-+ rv = SECITEM_CopyItem(arena, &pubk->u.fortezza.keaParams.prime,
-+ &dual_params.DiffParams.DiffKEAParams.prime);
-+ if (rv != SECSuccess) return rv;
-+ rv = SECITEM_CopyItem(arena, &pubk->u.fortezza.keaParams.subPrime,
-+ &dual_params.DiffParams.DiffKEAParams.subPrime);
-+ if (rv != SECSuccess) return rv;
-+ rv = SECITEM_CopyItem(arena, &pubk->u.fortezza.keaParams.base,
-+ &dual_params.DiffParams.DiffKEAParams.base);
-+ }
-+
-+ }
-+ return rv;
-+}
-+
-+
-+/* Decode the DSA PQG parameters. The params could be stored in two
-+ * possible formats, the old fortezza-only wrapped format or
-+ * the normal standard format. Store the decoded parameters in
-+ * a V3 certificate data structure. */
-+
-+SECStatus
-+SECKEY_DSADecodePQG(PRArenaPool *arena, SECKEYPublicKey *pubk, SECItem *params) {
-+ SECStatus rv;
-+ SECKEYPQGDualParams dual_params;
-+
-+ if (params == NULL) return SECFailure;
-+
-+ if (params->data == NULL) return SECFailure;
-+
-+ /* Check if params use the standard format.
-+ * The value 0xa1 will appear in the first byte of the parameter data
-+ * if the PQG parameters are not using the standard format. This
-+ * code should be changed to use a better method to detect non-standard
-+ * parameters. */
-+
-+ if ((params->data[0] != 0xa1) &&
-+ (params->data[0] != 0xa0)) {
-+
-+ /* PQG params are in the standard format */
-+ prepare_pqg_params_for_asn1(&pubk->u.dsa.params);
-+ rv = SEC_ASN1DecodeItem(arena, &pubk->u.dsa.params,
-+ SECKEY_PQGParamsTemplate,
-+ params);
-+ } else {
-+
-+ dual_params.CommParams.prime.len = 0;
-+ dual_params.CommParams.subPrime.len = 0;
-+ dual_params.CommParams.base.len = 0;
-+ dual_params.DiffParams.DiffDSAParams.prime.len = 0;
-+ dual_params.DiffParams.DiffDSAParams.subPrime.len = 0;
-+ dual_params.DiffParams.DiffDSAParams.base.len = 0;
-+
-+ /* else the old fortezza-only wrapped format is used. */
-+ if (params->data[0] == 0xa1) {
-+ rv = SEC_ASN1DecodeItem(arena, &dual_params,
-+ SECKEY_FortezzaPreParamTemplate, params);
-+ } else {
-+ rv = SEC_ASN1DecodeItem(arena, &dual_params,
-+ SECKEY_FortezzaAltPreParamTemplate, params);
-+ }
-+
-+ if (rv < 0) return rv;
-+
-+ if ( (dual_params.CommParams.prime.len > 0) &&
-+ (dual_params.CommParams.subPrime.len > 0) &&
-+ (dual_params.CommParams.base.len > 0) ) {
-+ /* copy in common params */
-+
-+ rv = SECITEM_CopyItem(arena, &pubk->u.dsa.params.prime,
-+ &dual_params.CommParams.prime);
-+ if (rv != SECSuccess) return rv;
-+ rv = SECITEM_CopyItem(arena, &pubk->u.dsa.params.subPrime,
-+ &dual_params.CommParams.subPrime);
-+ if (rv != SECSuccess) return rv;
-+ rv = SECITEM_CopyItem(arena, &pubk->u.dsa.params.base,
-+ &dual_params.CommParams.base);
-+
-+ } else {
-+
-+ /* else copy in different params */
-+
-+ /* copy DSA PQG parameters */
-+ rv = SECITEM_CopyItem(arena, &pubk->u.dsa.params.prime,
-+ &dual_params.DiffParams.DiffDSAParams.prime);
-+ if (rv != SECSuccess) return rv;
-+ rv = SECITEM_CopyItem(arena, &pubk->u.dsa.params.subPrime,
-+ &dual_params.DiffParams.DiffDSAParams.subPrime);
-+ if (rv != SECSuccess) return rv;
-+ rv = SECITEM_CopyItem(arena, &pubk->u.dsa.params.base,
-+ &dual_params.DiffParams.DiffDSAParams.base);
-+
-+ }
-+ }
-+ return rv;
-+}
-+
-+
-+
-+/* Decodes the DER encoded fortezza public key and stores the results in a
-+ * structure of type SECKEYPublicKey. */
-+
-+SECStatus
-+SECKEY_FortezzaDecodeCertKey(PRArenaPool *arena, SECKEYPublicKey *pubk,
-+ SECItem *rawkey, SECItem *params) {
-+
-+ unsigned char *rawptr = rawkey->data;
-+ unsigned char *end = rawkey->data + rawkey->len;
-+ unsigned char *clearptr;
-+
-+ /* first march down and decode the raw key data */
-+
-+ /* version */
-+ pubk->u.fortezza.KEAversion = *rawptr++;
-+ if (*rawptr++ != 0x01) {
-+ return SECFailure;
-+ }
-+
-+ /* KMID */
-+ PORT_Memcpy(pubk->u.fortezza.KMID,rawptr,
-+ sizeof(pubk->u.fortezza.KMID));
-+ rawptr += sizeof(pubk->u.fortezza.KMID);
-+
-+ /* clearance (the string up to the first byte with the hi-bit on */
-+ clearptr = rawptr;
-+ while ((rawptr < end) && (*rawptr++ & 0x80));
-+
-+ if (rawptr >= end) { return SECFailure; }
-+ pubk->u.fortezza.clearance.len = rawptr - clearptr;
-+ pubk->u.fortezza.clearance.data =
-+ (unsigned char*)PORT_ArenaZAlloc(arena,pubk->u.fortezza.clearance.len);
-+ if (pubk->u.fortezza.clearance.data == NULL) {
-+ return SECFailure;
-+ }
-+ PORT_Memcpy(pubk->u.fortezza.clearance.data,clearptr,
-+ pubk->u.fortezza.clearance.len);
-+
-+ /* KEAPrivilege (the string up to the first byte with the hi-bit on */
-+ clearptr = rawptr;
-+ while ((rawptr < end) && (*rawptr++ & 0x80));
-+ if (rawptr >= end) { return SECFailure; }
-+ pubk->u.fortezza.KEApriviledge.len = rawptr - clearptr;
-+ pubk->u.fortezza.KEApriviledge.data =
-+ (unsigned char*)PORT_ArenaZAlloc(arena,pubk->u.fortezza.KEApriviledge.len);
-+ if (pubk->u.fortezza.KEApriviledge.data == NULL) {
-+ return SECFailure;
-+ }
-+ PORT_Memcpy(pubk->u.fortezza.KEApriviledge.data,clearptr,
-+ pubk->u.fortezza.KEApriviledge.len);
-+
-+
-+ /* now copy the key. The next to bytes are the key length, and the
-+ * key follows */
-+ pubk->u.fortezza.KEAKey.len = (*rawptr << 8) | rawptr[1];
-+
-+ rawptr += 2;
-+ if (rawptr+pubk->u.fortezza.KEAKey.len > end) { return SECFailure; }
-+ pubk->u.fortezza.KEAKey.data =
-+ (unsigned char*)PORT_ArenaZAlloc(arena,pubk->u.fortezza.KEAKey.len);
-+ if (pubk->u.fortezza.KEAKey.data == NULL) {
-+ return SECFailure;
-+ }
-+ PORT_Memcpy(pubk->u.fortezza.KEAKey.data,rawptr,
-+ pubk->u.fortezza.KEAKey.len);
-+ rawptr += pubk->u.fortezza.KEAKey.len;
-+
-+ /* shared key */
-+ if (rawptr >= end) {
-+ pubk->u.fortezza.DSSKey.len = pubk->u.fortezza.KEAKey.len;
-+ /* this depends on the fact that we are going to get freed with an
-+ * ArenaFree call. We cannot free DSSKey and KEAKey separately */
-+ pubk->u.fortezza.DSSKey.data=
-+ pubk->u.fortezza.KEAKey.data;
-+ pubk->u.fortezza.DSSpriviledge.len =
-+ pubk->u.fortezza.KEApriviledge.len;
-+ pubk->u.fortezza.DSSpriviledge.data =
-+ pubk->u.fortezza.DSSpriviledge.data;
-+ goto done;
-+ }
-+
-+
-+ /* DSS Version is next */
-+ pubk->u.fortezza.DSSversion = *rawptr++;
-+
-+ if (*rawptr++ != 2) {
-+ return SECFailure;
-+ }
-+
-+ /* DSSPrivilege (the string up to the first byte with the hi-bit on */
-+ clearptr = rawptr;
-+ while ((rawptr < end) && (*rawptr++ & 0x80));
-+ if (rawptr >= end) { return SECFailure; }
-+ pubk->u.fortezza.DSSpriviledge.len = rawptr - clearptr;
-+ pubk->u.fortezza.DSSpriviledge.data =
-+ (unsigned char*)PORT_ArenaZAlloc(arena,pubk->u.fortezza.DSSpriviledge.len);
-+ if (pubk->u.fortezza.DSSpriviledge.data == NULL) {
-+ return SECFailure;
-+ }
-+ PORT_Memcpy(pubk->u.fortezza.DSSpriviledge.data,clearptr,
-+ pubk->u.fortezza.DSSpriviledge.len);
-+
-+ /* finally copy the DSS key. The next to bytes are the key length,
-+ * and the key follows */
-+ pubk->u.fortezza.DSSKey.len = (*rawptr << 8) | rawptr[1];
-+
-+ rawptr += 2;
-+ if (rawptr+pubk->u.fortezza.DSSKey.len > end){ return SECFailure; }
-+ pubk->u.fortezza.DSSKey.data =
-+ (unsigned char*)PORT_ArenaZAlloc(arena,pubk->u.fortezza.DSSKey.len);
-+ if (pubk->u.fortezza.DSSKey.data == NULL) {
-+ return SECFailure;
-+ }
-+ PORT_Memcpy(pubk->u.fortezza.DSSKey.data,rawptr,
-+ pubk->u.fortezza.DSSKey.len);
-+
-+ /* ok, now we decode the parameters */
-+done:
-+
-+ return SECKEY_FortezzaDecodePQGtoOld(arena, pubk, params);
-+}
-+
-+
-+/* Function used to determine what kind of cert we are dealing with. */
-+KeyType
-+CERT_GetCertKeyType (CERTSubjectPublicKeyInfo *spki) {
-+ int tag;
-+ KeyType keyType;
-+
-+ tag = SECOID_GetAlgorithmTag(&spki->algorithm);
-+ switch (tag) {
-+ case SEC_OID_X500_RSA_ENCRYPTION:
-+ case SEC_OID_PKCS1_RSA_ENCRYPTION:
-+ keyType = rsaKey;
-+ break;
-+ case SEC_OID_ANSIX9_DSA_SIGNATURE:
-+ keyType = dsaKey;
-+ break;
-+ case SEC_OID_MISSI_KEA_DSS_OLD:
-+ case SEC_OID_MISSI_KEA_DSS:
-+ case SEC_OID_MISSI_DSS_OLD:
-+ case SEC_OID_MISSI_DSS:
-+ keyType = fortezzaKey;
-+ break;
-+ case SEC_OID_MISSI_KEA:
-+ case SEC_OID_MISSI_ALT_KEA:
-+ keyType = keaKey;
-+ break;
-+ case SEC_OID_X942_DIFFIE_HELMAN_KEY:
-+ keyType = dhKey;
-+ break;
-+ case SEC_OID_ANSIX962_EC_PUBLIC_KEY:
-+ keyType = ecKey;
-+ break;
-+ default:
-+ keyType = nullKey;
-+ }
-+ return keyType;
-+}
-+
-+static SECKEYPublicKey *
-+seckey_ExtractPublicKey(CERTSubjectPublicKeyInfo *spki)
-+{
-+ SECKEYPublicKey *pubk;
-+ SECItem os, newOs, newParms;
-+ SECStatus rv;
-+ PRArenaPool *arena;
-+ SECOidTag tag;
-+
-+ arena = PORT_NewArena (DER_DEFAULT_CHUNKSIZE);
-+ if (arena == NULL)
-+ return NULL;
-+
-+ pubk = (SECKEYPublicKey *) PORT_ArenaZAlloc(arena, sizeof(SECKEYPublicKey));
-+ if (pubk == NULL) {
-+ PORT_FreeArena (arena, PR_FALSE);
-+ return NULL;
-+ }
-+
-+ pubk->arena = arena;
-+ pubk->pkcs11Slot = 0;
-+ pubk->pkcs11ID = CK_INVALID_HANDLE;
-+
-+
-+ /* Convert bit string length from bits to bytes */
-+ os = spki->subjectPublicKey;
-+ DER_ConvertBitString (&os);
-+
-+ tag = SECOID_GetAlgorithmTag(&spki->algorithm);
-+
-+ /* copy the DER into the arena, since Quick DER returns data that points
-+ into the DER input, which may get freed by the caller */
-+ rv = SECITEM_CopyItem(arena, &newOs, &os);
-+ if ( rv == SECSuccess )
-+ switch ( tag ) {
-+ case SEC_OID_X500_RSA_ENCRYPTION:
-+ case SEC_OID_PKCS1_RSA_ENCRYPTION:
-+ pubk->keyType = rsaKey;
-+ prepare_rsa_pub_key_for_asn1(pubk);
-+ rv = SEC_QuickDERDecodeItem(arena, pubk, SECKEY_RSAPublicKeyTemplate, &newOs);
-+ if (rv == SECSuccess)
-+ return pubk;
-+ break;
-+ case SEC_OID_ANSIX9_DSA_SIGNATURE:
-+ case SEC_OID_SDN702_DSA_SIGNATURE:
-+ pubk->keyType = dsaKey;
-+ prepare_dsa_pub_key_for_asn1(pubk);
-+ rv = SEC_QuickDERDecodeItem(arena, pubk, SECKEY_DSAPublicKeyTemplate, &newOs);
-+ if (rv != SECSuccess) break;
-+
-+ rv = SECKEY_DSADecodePQG(arena, pubk,
-+ &spki->algorithm.parameters);
-+
-+ if (rv == SECSuccess) return pubk;
-+ break;
-+ case SEC_OID_X942_DIFFIE_HELMAN_KEY:
-+ pubk->keyType = dhKey;
-+ prepare_dh_pub_key_for_asn1(pubk);
-+ rv = SEC_QuickDERDecodeItem(arena, pubk, SECKEY_DHPublicKeyTemplate, &newOs);
-+ if (rv != SECSuccess) break;
-+
-+ /* copy the DER into the arena, since Quick DER returns data that points
-+ into the DER input, which may get freed by the caller */
-+ rv = SECITEM_CopyItem(arena, &newParms, &spki->algorithm.parameters);
-+ if ( rv != SECSuccess )
-+ break;
-+
-+ rv = SEC_QuickDERDecodeItem(arena, pubk, SECKEY_DHParamKeyTemplate,
-+ &newParms);
-+
-+ if (rv == SECSuccess) return pubk;
-+ break;
-+ case SEC_OID_MISSI_KEA_DSS_OLD:
-+ case SEC_OID_MISSI_KEA_DSS:
-+ case SEC_OID_MISSI_DSS_OLD:
-+ case SEC_OID_MISSI_DSS:
-+ pubk->keyType = fortezzaKey;
-+ rv = SECKEY_FortezzaDecodeCertKey(arena, pubk, &newOs,
-+ &spki->algorithm.parameters);
-+ if (rv == SECSuccess)
-+ return pubk;
-+ break;
-+
-+ case SEC_OID_MISSI_KEA:
-+ pubk->keyType = keaKey;
-+
-+ prepare_kea_pub_key_for_asn1(pubk);
-+ rv = SEC_QuickDERDecodeItem(arena, pubk,
-+ SECKEY_KEAPublicKeyTemplate, &newOs);
-+ if (rv != SECSuccess) break;
-+
-+ /* copy the DER into the arena, since Quick DER returns data that points
-+ into the DER input, which may get freed by the caller */
-+ rv = SECITEM_CopyItem(arena, &newParms, &spki->algorithm.parameters);
-+ if ( rv != SECSuccess )
-+ break;
-+
-+ rv = SEC_QuickDERDecodeItem(arena, pubk, SECKEY_KEAParamsTemplate,
-+ &newParms);
-+
-+ if (rv == SECSuccess)
-+ return pubk;
-+
-+ break;
-+
-+ case SEC_OID_MISSI_ALT_KEA:
-+ pubk->keyType = keaKey;
-+
-+ rv = SECITEM_CopyItem(arena,&pubk->u.kea.publicValue,&newOs);
-+ if (rv != SECSuccess) break;
-+
-+ /* copy the DER into the arena, since Quick DER returns data that points
-+ into the DER input, which may get freed by the caller */
-+ rv = SECITEM_CopyItem(arena, &newParms, &spki->algorithm.parameters);
-+ if ( rv != SECSuccess )
-+ break;
-+
-+ rv = SEC_QuickDERDecodeItem(arena, pubk, SECKEY_KEAParamsTemplate,
-+ &newParms);
-+
-+ if (rv == SECSuccess)
-+ return pubk;
-+
-+ break;
-+
-+#ifdef NSS_ENABLE_ECC
-+ case SEC_OID_ANSIX962_EC_PUBLIC_KEY:
-+ pubk->keyType = ecKey;
-+ pubk->u.ec.size = 0;
-+
-+ /* Since PKCS#11 directly takes the DER encoding of EC params
-+ * and public value, we don't need any decoding here.
-+ */
-+ rv = SECITEM_CopyItem(arena, &pubk->u.ec.DEREncodedParams,
-+ &spki->algorithm.parameters);
-+ if ( rv != SECSuccess )
-+ break;
-+ rv = SECITEM_CopyItem(arena, &pubk->u.ec.publicValue, &newOs);
-+ if (rv == SECSuccess) return pubk;
-+ break;
-+#endif /* NSS_ENABLE_ECC */
-+
-+ default:
-+ rv = SECFailure;
-+ break;
-+ }
-+
-+ SECKEY_DestroyPublicKey (pubk);
-+ return NULL;
-+}
-+
-+
-+/* required for JSS */
-+SECKEYPublicKey *
-+SECKEY_ExtractPublicKey(CERTSubjectPublicKeyInfo *spki)
-+{
-+ return seckey_ExtractPublicKey(spki);
-+}
-+
-+SECKEYPublicKey *
-+CERT_ExtractPublicKey(CERTCertificate *cert)
-+{
-+ SECStatus rv;
-+
-+ if (!cert) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return NULL;
-+ }
-+ rv = SECKEY_UpdateCertPQG(cert);
-+ if (rv != SECSuccess) return NULL;
-+
-+ return seckey_ExtractPublicKey(&cert->subjectPublicKeyInfo);
-+}
-+
-+/*
-+ * Get the public key for the fortezza KMID. NOTE this requires the
-+ * PQG paramters to be set. We probably should have a fortezza call that
-+ * just extracts the kmid for us directly so this function can work
-+ * without having the whole cert chain
-+ */
-+SECKEYPublicKey *
-+CERT_KMIDPublicKey(CERTCertificate *cert)
-+{
-+ return seckey_ExtractPublicKey(&cert->subjectPublicKeyInfo);
-+}
-+
-+int
-+SECKEY_ECParamsToKeySize(const SECItem *encodedParams)
-+{
-+ SECOidTag tag;
-+ SECItem oid = { siBuffer, NULL, 0};
-+
-+ /* The encodedParams data contains 0x06 (SEC_ASN1_OBJECT_ID),
-+ * followed by the length of the curve oid and the curve oid.
-+ */
-+ oid.len = encodedParams->data[1];
-+ oid.data = encodedParams->data + 2;
-+ if ((tag = SECOID_FindOIDTag(&oid)) == SEC_OID_UNKNOWN)
-+ return 0;
-+
-+ switch (tag) {
-+ case SEC_OID_SECG_EC_SECP112R1:
-+ case SEC_OID_SECG_EC_SECP112R2:
-+ return 112;
-+
-+ case SEC_OID_SECG_EC_SECT113R1:
-+ case SEC_OID_SECG_EC_SECT113R2:
-+ return 113;
-+
-+ case SEC_OID_SECG_EC_SECP128R1:
-+ case SEC_OID_SECG_EC_SECP128R2:
-+ return 128;
-+
-+ case SEC_OID_SECG_EC_SECT131R1:
-+ case SEC_OID_SECG_EC_SECT131R2:
-+ return 131;
-+
-+ case SEC_OID_SECG_EC_SECP160K1:
-+ case SEC_OID_SECG_EC_SECP160R1:
-+ case SEC_OID_SECG_EC_SECP160R2:
-+ return 160;
-+
-+ case SEC_OID_SECG_EC_SECT163K1:
-+ case SEC_OID_SECG_EC_SECT163R1:
-+ case SEC_OID_SECG_EC_SECT163R2:
-+ case SEC_OID_ANSIX962_EC_C2PNB163V1:
-+ case SEC_OID_ANSIX962_EC_C2PNB163V2:
-+ case SEC_OID_ANSIX962_EC_C2PNB163V3:
-+ return 163;
-+
-+ case SEC_OID_ANSIX962_EC_C2PNB176V1:
-+ return 176;
-+
-+ case SEC_OID_ANSIX962_EC_C2TNB191V1:
-+ case SEC_OID_ANSIX962_EC_C2TNB191V2:
-+ case SEC_OID_ANSIX962_EC_C2TNB191V3:
-+ case SEC_OID_ANSIX962_EC_C2ONB191V4:
-+ case SEC_OID_ANSIX962_EC_C2ONB191V5:
-+ return 191;
-+
-+ case SEC_OID_SECG_EC_SECP192K1:
-+ case SEC_OID_ANSIX962_EC_PRIME192V1:
-+ case SEC_OID_ANSIX962_EC_PRIME192V2:
-+ case SEC_OID_ANSIX962_EC_PRIME192V3:
-+ return 192;
-+
-+ case SEC_OID_SECG_EC_SECT193R1:
-+ case SEC_OID_SECG_EC_SECT193R2:
-+ return 193;
-+
-+ case SEC_OID_ANSIX962_EC_C2PNB208W1:
-+ return 208;
-+
-+ case SEC_OID_SECG_EC_SECP224K1:
-+ case SEC_OID_SECG_EC_SECP224R1:
-+ return 224;
-+
-+ case SEC_OID_SECG_EC_SECT233K1:
-+ case SEC_OID_SECG_EC_SECT233R1:
-+ return 233;
-+
-+ case SEC_OID_SECG_EC_SECT239K1:
-+ case SEC_OID_ANSIX962_EC_C2TNB239V1:
-+ case SEC_OID_ANSIX962_EC_C2TNB239V2:
-+ case SEC_OID_ANSIX962_EC_C2TNB239V3:
-+ case SEC_OID_ANSIX962_EC_C2ONB239V4:
-+ case SEC_OID_ANSIX962_EC_C2ONB239V5:
-+ case SEC_OID_ANSIX962_EC_PRIME239V1:
-+ case SEC_OID_ANSIX962_EC_PRIME239V2:
-+ case SEC_OID_ANSIX962_EC_PRIME239V3:
-+ return 239;
-+
-+ case SEC_OID_SECG_EC_SECP256K1:
-+ case SEC_OID_ANSIX962_EC_PRIME256V1:
-+ return 256;
-+
-+ case SEC_OID_ANSIX962_EC_C2PNB272W1:
-+ return 272;
-+
-+ case SEC_OID_SECG_EC_SECT283K1:
-+ case SEC_OID_SECG_EC_SECT283R1:
-+ return 283;
-+
-+ case SEC_OID_ANSIX962_EC_C2PNB304W1:
-+ return 304;
-+
-+ case SEC_OID_ANSIX962_EC_C2TNB359V1:
-+ return 359;
-+
-+ case SEC_OID_ANSIX962_EC_C2PNB368W1:
-+ return 368;
-+
-+ case SEC_OID_SECG_EC_SECP384R1:
-+ return 384;
-+
-+ case SEC_OID_SECG_EC_SECT409K1:
-+ case SEC_OID_SECG_EC_SECT409R1:
-+ return 409;
-+
-+ case SEC_OID_ANSIX962_EC_C2TNB431R1:
-+ return 431;
-+
-+ case SEC_OID_SECG_EC_SECP521R1:
-+ return 521;
-+
-+ case SEC_OID_SECG_EC_SECT571K1:
-+ case SEC_OID_SECG_EC_SECT571R1:
-+ return 571;
-+
-+ default:
-+ return 0;
-+ }
-+}
-+
-+/* returns key strength in bytes (not bits) */
-+unsigned
-+SECKEY_PublicKeyStrength(SECKEYPublicKey *pubk)
-+{
-+ unsigned char b0;
-+
-+ /* interpret modulus length as key strength... in
-+ * fortezza that's the public key length */
-+
-+ switch (pubk->keyType) {
-+ case rsaKey:
-+ b0 = pubk->u.rsa.modulus.data[0];
-+ return b0 ? pubk->u.rsa.modulus.len : pubk->u.rsa.modulus.len - 1;
-+ case dsaKey:
-+ b0 = pubk->u.dsa.publicValue.data[0];
-+ return b0 ? pubk->u.dsa.publicValue.len :
-+ pubk->u.dsa.publicValue.len - 1;
-+ case dhKey:
-+ b0 = pubk->u.dh.publicValue.data[0];
-+ return b0 ? pubk->u.dh.publicValue.len :
-+ pubk->u.dh.publicValue.len - 1;
-+ case fortezzaKey:
-+ return PR_MAX(pubk->u.fortezza.KEAKey.len, pubk->u.fortezza.DSSKey.len);
-+#ifdef NSS_ENABLE_ECC
-+ case ecKey:
-+ /* Get the key size in bits and adjust */
-+ if (pubk->u.ec.size == 0) {
-+ pubk->u.ec.size =
-+ SECKEY_ECParamsToKeySize(&pubk->u.ec.DEREncodedParams);
-+ }
-+ return (pubk->u.ec.size + 7)/8;
-+#endif /* NSS_ENABLE_ECC */
-+ default:
-+ break;
-+ }
-+ return 0;
-+}
-+
-+/* returns key strength in bits */
-+unsigned
-+SECKEY_PublicKeyStrengthInBits(SECKEYPublicKey *pubk)
-+{
-+ switch (pubk->keyType) {
-+ case rsaKey:
-+ case dsaKey:
-+ case dhKey:
-+ case fortezzaKey:
-+ return SECKEY_PublicKeyStrength(pubk) * 8; /* 1 byte = 8 bits */
-+#ifdef NSS_ENABLE_ECC
-+ case ecKey:
-+ if (pubk->u.ec.size == 0) {
-+ pubk->u.ec.size =
-+ SECKEY_ECParamsToKeySize(&pubk->u.ec.DEREncodedParams);
-+ }
-+ return pubk->u.ec.size;
-+#endif /* NSS_ENABLE_ECC */
-+ default:
-+ break;
-+ }
-+ return 0;
-+}
-+
-+SECKEYPrivateKey *
-+SECKEY_CopyPrivateKey(SECKEYPrivateKey *privk)
-+{
-+ SECKEYPrivateKey *copyk;
-+ PRArenaPool *arena;
-+
-+ if (privk == NULL) {
-+ return NULL;
-+ }
-+
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ if (arena == NULL) {
-+ PORT_SetError (SEC_ERROR_NO_MEMORY);
-+ return NULL;
-+ }
-+
-+ copyk = (SECKEYPrivateKey *) PORT_ArenaZAlloc (arena, sizeof (SECKEYPrivateKey));
-+ if (copyk) {
-+ copyk->arena = arena;
-+ copyk->keyType = privk->keyType;
-+
-+ /* copy the PKCS #11 parameters */
-+ copyk->pkcs11Slot = PK11_ReferenceSlot(privk->pkcs11Slot);
-+ /* if the key we're referencing was a temparary key we have just
-+ * created, that we want to go away when we're through, we need
-+ * to make a copy of it */
-+ if (privk->pkcs11IsTemp) {
-+ copyk->pkcs11ID =
-+ PK11_CopyKey(privk->pkcs11Slot,privk->pkcs11ID);
-+ if (copyk->pkcs11ID == CK_INVALID_HANDLE) goto fail;
-+ } else {
-+ copyk->pkcs11ID = privk->pkcs11ID;
-+ }
-+ copyk->pkcs11IsTemp = privk->pkcs11IsTemp;
-+ copyk->wincx = privk->wincx;
-+ return copyk;
-+ } else {
-+ PORT_SetError (SEC_ERROR_NO_MEMORY);
-+ }
-+
-+fail:
-+ PORT_FreeArena (arena, PR_FALSE);
-+ return NULL;
-+}
-+
-+SECKEYPublicKey *
-+SECKEY_CopyPublicKey(SECKEYPublicKey *pubk)
-+{
-+ SECKEYPublicKey *copyk;
-+ PRArenaPool *arena;
-+
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ if (arena == NULL) {
-+ PORT_SetError (SEC_ERROR_NO_MEMORY);
-+ return NULL;
-+ }
-+
-+ copyk = (SECKEYPublicKey *) PORT_ArenaZAlloc (arena, sizeof (SECKEYPublicKey));
-+ if (copyk != NULL) {
-+ SECStatus rv = SECSuccess;
-+
-+ copyk->arena = arena;
-+ copyk->keyType = pubk->keyType;
-+ if (pubk->pkcs11Slot &&
-+ PK11_IsPermObject(pubk->pkcs11Slot,pubk->pkcs11ID)) {
-+ copyk->pkcs11Slot = PK11_ReferenceSlot(pubk->pkcs11Slot);
-+ copyk->pkcs11ID = pubk->pkcs11ID;
-+ } else {
-+ copyk->pkcs11Slot = NULL; /* go get own reference */
-+ copyk->pkcs11ID = CK_INVALID_HANDLE;
-+ }
-+ switch (pubk->keyType) {
-+ case rsaKey:
-+ rv = SECITEM_CopyItem(arena, &copyk->u.rsa.modulus,
-+ &pubk->u.rsa.modulus);
-+ if (rv == SECSuccess) {
-+ rv = SECITEM_CopyItem (arena, &copyk->u.rsa.publicExponent,
-+ &pubk->u.rsa.publicExponent);
-+ if (rv == SECSuccess)
-+ return copyk;
-+ }
-+ break;
-+ case dsaKey:
-+ rv = SECITEM_CopyItem(arena, &copyk->u.dsa.publicValue,
-+ &pubk->u.dsa.publicValue);
-+ if (rv != SECSuccess) break;
-+ rv = SECITEM_CopyItem(arena, &copyk->u.dsa.params.prime,
-+ &pubk->u.dsa.params.prime);
-+ if (rv != SECSuccess) break;
-+ rv = SECITEM_CopyItem(arena, &copyk->u.dsa.params.subPrime,
-+ &pubk->u.dsa.params.subPrime);
-+ if (rv != SECSuccess) break;
-+ rv = SECITEM_CopyItem(arena, &copyk->u.dsa.params.base,
-+ &pubk->u.dsa.params.base);
-+ break;
-+ case keaKey:
-+ rv = SECITEM_CopyItem(arena, &copyk->u.kea.publicValue,
-+ &pubk->u.kea.publicValue);
-+ if (rv != SECSuccess) break;
-+ rv = SECITEM_CopyItem(arena, &copyk->u.kea.params.hash,
-+ &pubk->u.kea.params.hash);
-+ break;
-+ case fortezzaKey:
-+ copyk->u.fortezza.KEAversion = pubk->u.fortezza.KEAversion;
-+ copyk->u.fortezza.DSSversion = pubk->u.fortezza.DSSversion;
-+ PORT_Memcpy(copyk->u.fortezza.KMID, pubk->u.fortezza.KMID,
-+ sizeof(pubk->u.fortezza.KMID));
-+ rv = SECITEM_CopyItem(arena, &copyk->u.fortezza.clearance,
-+ &pubk->u.fortezza.clearance);
-+ if (rv != SECSuccess) break;
-+ rv = SECITEM_CopyItem(arena, &copyk->u.fortezza.KEApriviledge,
-+ &pubk->u.fortezza.KEApriviledge);
-+ if (rv != SECSuccess) break;
-+ rv = SECITEM_CopyItem(arena, &copyk->u.fortezza.DSSpriviledge,
-+ &pubk->u.fortezza.DSSpriviledge);
-+ if (rv != SECSuccess) break;
-+ rv = SECITEM_CopyItem(arena, &copyk->u.fortezza.KEAKey,
-+ &pubk->u.fortezza.KEAKey);
-+ if (rv != SECSuccess) break;
-+ rv = SECITEM_CopyItem(arena, &copyk->u.fortezza.DSSKey,
-+ &pubk->u.fortezza.DSSKey);
-+ if (rv != SECSuccess) break;
-+ rv = SECITEM_CopyItem(arena, &copyk->u.fortezza.params.prime,
-+ &pubk->u.fortezza.params.prime);
-+ if (rv != SECSuccess) break;
-+ rv = SECITEM_CopyItem(arena, &copyk->u.fortezza.params.subPrime,
-+ &pubk->u.fortezza.params.subPrime);
-+ if (rv != SECSuccess) break;
-+ rv = SECITEM_CopyItem(arena, &copyk->u.fortezza.params.base,
-+ &pubk->u.fortezza.params.base);
-+ if (rv != SECSuccess) break;
-+ rv = SECITEM_CopyItem(arena, &copyk->u.fortezza.keaParams.prime,
-+ &pubk->u.fortezza.keaParams.prime);
-+ if (rv != SECSuccess) break;
-+ rv = SECITEM_CopyItem(arena, &copyk->u.fortezza.keaParams.subPrime,
-+ &pubk->u.fortezza.keaParams.subPrime);
-+ if (rv != SECSuccess) break;
-+ rv = SECITEM_CopyItem(arena, &copyk->u.fortezza.keaParams.base,
-+ &pubk->u.fortezza.keaParams.base);
-+ break;
-+ case dhKey:
-+ rv = SECITEM_CopyItem(arena,&copyk->u.dh.prime,&pubk->u.dh.prime);
-+ if (rv != SECSuccess) break;
-+ rv = SECITEM_CopyItem(arena,&copyk->u.dh.base,&pubk->u.dh.base);
-+ if (rv != SECSuccess) break;
-+ rv = SECITEM_CopyItem(arena, &copyk->u.dh.publicValue,
-+ &pubk->u.dh.publicValue);
-+ break;
-+#ifdef NSS_ENABLE_ECC
-+ case ecKey:
-+ copyk->u.ec.size = pubk->u.ec.size;
-+ rv = SECITEM_CopyItem(arena,&copyk->u.ec.DEREncodedParams,
-+ &pubk->u.ec.DEREncodedParams);
-+ if (rv != SECSuccess) break;
-+ rv = SECITEM_CopyItem(arena,&copyk->u.ec.publicValue,
-+ &pubk->u.ec.publicValue);
-+ break;
-+#endif /* NSS_ENABLE_ECC */
-+ case nullKey:
-+ return copyk;
-+ default:
-+ rv = SECFailure;
-+ break;
-+ }
-+ if (rv == SECSuccess)
-+ return copyk;
-+
-+ SECKEY_DestroyPublicKey (copyk);
-+ } else {
-+ PORT_SetError (SEC_ERROR_NO_MEMORY);
-+ }
-+
-+ PORT_FreeArena (arena, PR_FALSE);
-+ return NULL;
-+}
-+
-+
-+SECKEYPublicKey *
-+SECKEY_ConvertToPublicKey(SECKEYPrivateKey *privk)
-+{
-+ SECKEYPublicKey *pubk;
-+ PRArenaPool *arena;
-+ CERTCertificate *cert;
-+ SECStatus rv;
-+
-+ /*
-+ * First try to look up the cert.
-+ */
-+ cert = PK11_GetCertFromPrivateKey(privk);
-+ if (cert) {
-+ pubk = CERT_ExtractPublicKey(cert);
-+ CERT_DestroyCertificate(cert);
-+ return pubk;
-+ }
-+
-+ /* couldn't find the cert, build pub key by hand */
-+ arena = PORT_NewArena (DER_DEFAULT_CHUNKSIZE);
-+ if (arena == NULL) {
-+ PORT_SetError (SEC_ERROR_NO_MEMORY);
-+ return NULL;
-+ }
-+ pubk = (SECKEYPublicKey *)PORT_ArenaZAlloc(arena,
-+ sizeof (SECKEYPublicKey));
-+ if (pubk == NULL) {
-+ PORT_FreeArena(arena,PR_FALSE);
-+ return NULL;
-+ }
-+ pubk->keyType = privk->keyType;
-+ pubk->pkcs11Slot = NULL;
-+ pubk->pkcs11ID = CK_INVALID_HANDLE;
-+ pubk->arena = arena;
-+
-+ /*
-+ * fortezza is at the head of this switch, since we don't want to
-+ * allocate an arena... CERT_ExtractPublicKey will to that for us.
-+ */
-+ switch(privk->keyType) {
-+ case fortezzaKey:
-+ case nullKey:
-+ case dhKey:
-+ case dsaKey:
-+ /* Nothing to query, if the cert isn't there, we're done -- no way
-+ * to get the public key */
-+ break;
-+ case rsaKey:
-+ rv = PK11_ReadAttribute(privk->pkcs11Slot,privk->pkcs11ID,
-+ CKA_MODULUS,arena,&pubk->u.rsa.modulus);
-+ if (rv != SECSuccess) break;
-+ rv = PK11_ReadAttribute(privk->pkcs11Slot,privk->pkcs11ID,
-+ CKA_PUBLIC_EXPONENT,arena,&pubk->u.rsa.publicExponent);
-+ if (rv != SECSuccess) break;
-+ return pubk;
-+ break;
-+ default:
-+ break;
-+ }
-+
-+ PORT_FreeArena (arena, PR_FALSE);
-+ return NULL;
-+}
-+
-+CERTSubjectPublicKeyInfo *
-+SECKEY_CreateSubjectPublicKeyInfo(SECKEYPublicKey *pubk)
-+{
-+ CERTSubjectPublicKeyInfo *spki;
-+ PRArenaPool *arena;
-+ SECItem params = { siBuffer, NULL, 0 };
-+
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ if (arena == NULL) {
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ return NULL;
-+ }
-+
-+ spki = (CERTSubjectPublicKeyInfo *) PORT_ArenaZAlloc(arena, sizeof (*spki));
-+ if (spki != NULL) {
-+ SECStatus rv;
-+ SECItem *rv_item;
-+
-+ spki->arena = arena;
-+ switch(pubk->keyType) {
-+ case rsaKey:
-+ rv = SECOID_SetAlgorithmID(arena, &spki->algorithm,
-+ SEC_OID_PKCS1_RSA_ENCRYPTION, 0);
-+ if (rv == SECSuccess) {
-+ /*
-+ * DER encode the public key into the subjectPublicKeyInfo.
-+ */
-+ prepare_rsa_pub_key_for_asn1(pubk);
-+ rv_item = SEC_ASN1EncodeItem(arena, &spki->subjectPublicKey,
-+ pubk, SECKEY_RSAPublicKeyTemplate);
-+ if (rv_item != NULL) {
-+ /*
-+ * The stored value is supposed to be a BIT_STRING,
-+ * so convert the length.
-+ */
-+ spki->subjectPublicKey.len <<= 3;
-+ /*
-+ * We got a good one; return it.
-+ */
-+ return spki;
-+ }
-+ }
-+ break;
-+ case dsaKey:
-+ /* DER encode the params. */
-+ prepare_pqg_params_for_asn1(&pubk->u.dsa.params);
-+ rv_item = SEC_ASN1EncodeItem(arena, &params, &pubk->u.dsa.params,
-+ SECKEY_PQGParamsTemplate);
-+ if (rv_item != NULL) {
-+ rv = SECOID_SetAlgorithmID(arena, &spki->algorithm,
-+ SEC_OID_ANSIX9_DSA_SIGNATURE,
-+ &params);
-+ if (rv == SECSuccess) {
-+ /*
-+ * DER encode the public key into the subjectPublicKeyInfo.
-+ */
-+ prepare_dsa_pub_key_for_asn1(pubk);
-+ rv_item = SEC_ASN1EncodeItem(arena, &spki->subjectPublicKey,
-+ pubk,
-+ SECKEY_DSAPublicKeyTemplate);
-+ if (rv_item != NULL) {
-+ /*
-+ * The stored value is supposed to be a BIT_STRING,
-+ * so convert the length.
-+ */
-+ spki->subjectPublicKey.len <<= 3;
-+ /*
-+ * We got a good one; return it.
-+ */
-+ return spki;
-+ }
-+ }
-+ }
-+ SECITEM_FreeItem(&params, PR_FALSE);
-+ break;
-+#ifdef NSS_ENABLE_ECC
-+ case ecKey:
-+ rv = SECITEM_CopyItem(arena, &params,
-+ &pubk->u.ec.DEREncodedParams);
-+ if (rv != SECSuccess) break;
-+
-+ rv = SECOID_SetAlgorithmID(arena, &spki->algorithm,
-+ SEC_OID_ANSIX962_EC_PUBLIC_KEY,
-+ &params);
-+ if (rv != SECSuccess) break;
-+
-+ rv = SECITEM_CopyItem(arena, &spki->subjectPublicKey,
-+ &pubk->u.ec.publicValue);
-+
-+ if (rv == SECSuccess) {
-+ /*
-+ * The stored value is supposed to be a BIT_STRING,
-+ * so convert the length.
-+ */
-+ spki->subjectPublicKey.len <<= 3;
-+ /*
-+ * We got a good one; return it.
-+ */
-+ return spki;
-+ }
-+ break;
-+#endif /* NSS_ENABLE_ECC */
-+ case keaKey:
-+ case dhKey: /* later... */
-+
-+ break;
-+ case fortezzaKey:
-+#ifdef notdef
-+ /* encode the DSS parameters (PQG) */
-+ rv = FortezzaBuildParams(&params,pubk);
-+ if (rv != SECSuccess) break;
-+
-+ /* set the algorithm */
-+ rv = SECOID_SetAlgorithmID(arena, &spki->algorithm,
-+ SEC_OID_MISSI_KEA_DSS, &params);
-+ PORT_Free(params.data);
-+ if (rv == SECSuccess) {
-+ /*
-+ * Encode the public key into the subjectPublicKeyInfo.
-+ * Fortezza key material is not standard DER
-+ */
-+ rv = FortezzaEncodeCertKey(arena,&spki->subjectPublicKey,pubk);
-+ if (rv == SECSuccess) {
-+ /*
-+ * The stored value is supposed to be a BIT_STRING,
-+ * so convert the length.
-+ */
-+ spki->subjectPublicKey.len <<= 3;
-+
-+ /*
-+ * We got a good one; return it.
-+ */
-+ return spki;
-+ }
-+ }
-+#endif
-+ break;
-+ default:
-+ break;
-+ }
-+ } else {
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ }
-+
-+ PORT_FreeArena(arena, PR_FALSE);
-+ return NULL;
-+}
-+
-+void
-+SECKEY_DestroySubjectPublicKeyInfo(CERTSubjectPublicKeyInfo *spki)
-+{
-+ if (spki && spki->arena) {
-+ PORT_FreeArena(spki->arena, PR_FALSE);
-+ }
-+}
-+
-+/*
-+ * this only works for RSA keys... need to do something
-+ * similiar to CERT_ExtractPublicKey for other key times.
-+ */
-+SECKEYPublicKey *
-+SECKEY_DecodeDERPublicKey(SECItem *pubkder)
-+{
-+ PRArenaPool *arena;
-+ SECKEYPublicKey *pubk;
-+ SECStatus rv;
-+ SECItem newPubkder;
-+
-+ arena = PORT_NewArena (DER_DEFAULT_CHUNKSIZE);
-+ if (arena == NULL) {
-+ PORT_SetError (SEC_ERROR_NO_MEMORY);
-+ return NULL;
-+ }
-+
-+ pubk = (SECKEYPublicKey *) PORT_ArenaZAlloc (arena, sizeof (SECKEYPublicKey));
-+ if (pubk != NULL) {
-+ pubk->arena = arena;
-+ pubk->pkcs11Slot = NULL;
-+ pubk->pkcs11ID = 0;
-+ prepare_rsa_pub_key_for_asn1(pubk);
-+ /* copy the DER into the arena, since Quick DER returns data that points
-+ into the DER input, which may get freed by the caller */
-+ rv = SECITEM_CopyItem(arena, &newPubkder, pubkder);
-+ if ( rv == SECSuccess ) {
-+ rv = SEC_QuickDERDecodeItem(arena, pubk, SECKEY_RSAPublicKeyTemplate,
-+ &newPubkder);
-+ }
-+ if (rv == SECSuccess)
-+ return pubk;
-+ SECKEY_DestroyPublicKey (pubk);
-+ } else {
-+ PORT_SetError (SEC_ERROR_NO_MEMORY);
-+ }
-+
-+ PORT_FreeArena (arena, PR_FALSE);
-+ return NULL;
-+}
-+
-+/*
-+ * Decode a base64 ascii encoded DER encoded public key.
-+ */
-+SECKEYPublicKey *
-+SECKEY_ConvertAndDecodePublicKey(char *pubkstr)
-+{
-+ SECKEYPublicKey *pubk;
-+ SECStatus rv;
-+ SECItem der;
-+
-+ rv = ATOB_ConvertAsciiToItem (&der, pubkstr);
-+ if (rv != SECSuccess)
-+ return NULL;
-+
-+ pubk = SECKEY_DecodeDERPublicKey (&der);
-+
-+ PORT_Free (der.data);
-+ return pubk;
-+}
-+
-+SECItem *
-+SECKEY_EncodeDERSubjectPublicKeyInfo(SECKEYPublicKey *pubk)
-+{
-+ CERTSubjectPublicKeyInfo *spki=NULL;
-+ SECItem *spkiDER=NULL;
-+
-+ /* get the subjectpublickeyinfo */
-+ spki = SECKEY_CreateSubjectPublicKeyInfo(pubk);
-+ if( spki == NULL ) {
-+ goto finish;
-+ }
-+
-+ /* DER-encode the subjectpublickeyinfo */
-+ spkiDER = SEC_ASN1EncodeItem(NULL /*arena*/, NULL/*dest*/, spki,
-+ CERT_SubjectPublicKeyInfoTemplate);
-+finish:
-+ if (spki!=NULL) {
-+ SECKEY_DestroySubjectPublicKeyInfo(spki);
-+ }
-+ return spkiDER;
-+}
-+
-+
-+CERTSubjectPublicKeyInfo *
-+SECKEY_DecodeDERSubjectPublicKeyInfo(SECItem *spkider)
-+{
-+ PRArenaPool *arena;
-+ CERTSubjectPublicKeyInfo *spki;
-+ SECStatus rv;
-+ SECItem newSpkider;
-+
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ if (arena == NULL) {
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ return NULL;
-+ }
-+
-+ spki = (CERTSubjectPublicKeyInfo *)
-+ PORT_ArenaZAlloc(arena, sizeof (CERTSubjectPublicKeyInfo));
-+ if (spki != NULL) {
-+ spki->arena = arena;
-+
-+ /* copy the DER into the arena, since Quick DER returns data that points
-+ into the DER input, which may get freed by the caller */
-+ rv = SECITEM_CopyItem(arena, &newSpkider, spkider);
-+ if ( rv == SECSuccess ) {
-+ rv = SEC_QuickDERDecodeItem(arena,spki,
-+ CERT_SubjectPublicKeyInfoTemplate, &newSpkider);
-+ }
-+ if (rv == SECSuccess)
-+ return spki;
-+ SECKEY_DestroySubjectPublicKeyInfo(spki);
-+ } else {
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ }
-+
-+ PORT_FreeArena(arena, PR_FALSE);
-+ return NULL;
-+}
-+
-+/*
-+ * Decode a base64 ascii encoded DER encoded subject public key info.
-+ */
-+CERTSubjectPublicKeyInfo *
-+SECKEY_ConvertAndDecodeSubjectPublicKeyInfo(char *spkistr)
-+{
-+ CERTSubjectPublicKeyInfo *spki;
-+ SECStatus rv;
-+ SECItem der;
-+
-+ rv = ATOB_ConvertAsciiToItem(&der, spkistr);
-+ if (rv != SECSuccess)
-+ return NULL;
-+
-+ spki = SECKEY_DecodeDERSubjectPublicKeyInfo(&der);
-+
-+ PORT_Free(der.data);
-+ return spki;
-+}
-+
-+/*
-+ * Decode a base64 ascii encoded DER encoded public key and challenge
-+ * Verify digital signature and make sure challenge matches
-+ */
-+CERTSubjectPublicKeyInfo *
-+SECKEY_ConvertAndDecodePublicKeyAndChallenge(char *pkacstr, char *challenge,
-+ void *wincx)
-+{
-+ CERTSubjectPublicKeyInfo *spki = NULL;
-+ CERTPublicKeyAndChallenge pkac;
-+ SECStatus rv;
-+ SECItem signedItem;
-+ PRArenaPool *arena = NULL;
-+ CERTSignedData sd;
-+ SECItem sig;
-+ SECKEYPublicKey *pubKey = NULL;
-+ unsigned int len;
-+
-+ signedItem.data = NULL;
-+
-+ /* convert the base64 encoded data to binary */
-+ rv = ATOB_ConvertAsciiToItem(&signedItem, pkacstr);
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+
-+ /* create an arena */
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ if (arena == NULL) {
-+ goto loser;
-+ }
-+
-+ /* decode the outer wrapping of signed data */
-+ PORT_Memset(&sd, 0, sizeof(CERTSignedData));
-+ rv = SEC_QuickDERDecodeItem(arena, &sd, CERT_SignedDataTemplate, &signedItem );
-+ if ( rv ) {
-+ goto loser;
-+ }
-+
-+ /* decode the public key and challenge wrapper */
-+ PORT_Memset(&pkac, 0, sizeof(CERTPublicKeyAndChallenge));
-+ rv = SEC_QuickDERDecodeItem(arena, &pkac, CERT_PublicKeyAndChallengeTemplate,
-+ &sd.data);
-+ if ( rv ) {
-+ goto loser;
-+ }
-+
-+ /* decode the subject public key info */
-+ spki = SECKEY_DecodeDERSubjectPublicKeyInfo(&pkac.spki);
-+ if ( spki == NULL ) {
-+ goto loser;
-+ }
-+
-+ /* get the public key */
-+ pubKey = seckey_ExtractPublicKey(spki);
-+ if ( pubKey == NULL ) {
-+ goto loser;
-+ }
-+
-+ /* check the signature */
-+ sig = sd.signature;
-+ DER_ConvertBitString(&sig);
-+ rv = VFY_VerifyData(sd.data.data, sd.data.len, pubKey, &sig,
-+ SECOID_GetAlgorithmTag(&(sd.signatureAlgorithm)), wincx);
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+
-+ /* check the challenge */
-+ if ( challenge ) {
-+ len = PORT_Strlen(challenge);
-+ /* length is right */
-+ if ( len != pkac.challenge.len ) {
-+ goto loser;
-+ }
-+ /* actual data is right */
-+ if ( PORT_Memcmp(challenge, pkac.challenge.data, len) != 0 ) {
-+ goto loser;
-+ }
-+ }
-+ goto done;
-+
-+loser:
-+ /* make sure that we return null if we got an error */
-+ if ( spki ) {
-+ SECKEY_DestroySubjectPublicKeyInfo(spki);
-+ }
-+ spki = NULL;
-+
-+done:
-+ if ( signedItem.data ) {
-+ PORT_Free(signedItem.data);
-+ }
-+ if ( arena ) {
-+ PORT_FreeArena(arena, PR_FALSE);
-+ }
-+ if ( pubKey ) {
-+ SECKEY_DestroyPublicKey(pubKey);
-+ }
-+
-+ return spki;
-+}
-+
-+void
-+SECKEY_DestroyPrivateKeyInfo(SECKEYPrivateKeyInfo *pvk,
-+ PRBool freeit)
-+{
-+ PRArenaPool *poolp;
-+
-+ if(pvk != NULL) {
-+ if(pvk->arena) {
-+ poolp = pvk->arena;
-+ /* zero structure since PORT_FreeArena does not support
-+ * this yet.
-+ */
-+ PORT_Memset(pvk->privateKey.data, 0, pvk->privateKey.len);
-+ PORT_Memset((char *)pvk, 0, sizeof(*pvk));
-+ if(freeit == PR_TRUE) {
-+ PORT_FreeArena(poolp, PR_TRUE);
-+ } else {
-+ pvk->arena = poolp;
-+ }
-+ } else {
-+ SECITEM_ZfreeItem(&pvk->version, PR_FALSE);
-+ SECITEM_ZfreeItem(&pvk->privateKey, PR_FALSE);
-+ SECOID_DestroyAlgorithmID(&pvk->algorithm, PR_FALSE);
-+ PORT_Memset((char *)pvk, 0, sizeof(pvk));
-+ if(freeit == PR_TRUE) {
-+ PORT_Free(pvk);
-+ }
-+ }
-+ }
-+}
-+
-+void
-+SECKEY_DestroyEncryptedPrivateKeyInfo(SECKEYEncryptedPrivateKeyInfo *epki,
-+ PRBool freeit)
-+{
-+ PRArenaPool *poolp;
-+
-+ if(epki != NULL) {
-+ if(epki->arena) {
-+ poolp = epki->arena;
-+ /* zero structure since PORT_FreeArena does not support
-+ * this yet.
-+ */
-+ PORT_Memset(epki->encryptedData.data, 0, epki->encryptedData.len);
-+ PORT_Memset((char *)epki, 0, sizeof(*epki));
-+ if(freeit == PR_TRUE) {
-+ PORT_FreeArena(poolp, PR_TRUE);
-+ } else {
-+ epki->arena = poolp;
-+ }
-+ } else {
-+ SECITEM_ZfreeItem(&epki->encryptedData, PR_FALSE);
-+ SECOID_DestroyAlgorithmID(&epki->algorithm, PR_FALSE);
-+ PORT_Memset((char *)epki, 0, sizeof(epki));
-+ if(freeit == PR_TRUE) {
-+ PORT_Free(epki);
-+ }
-+ }
-+ }
-+}
-+
-+SECStatus
-+SECKEY_CopyPrivateKeyInfo(PRArenaPool *poolp,
-+ SECKEYPrivateKeyInfo *to,
-+ SECKEYPrivateKeyInfo *from)
-+{
-+ SECStatus rv = SECFailure;
-+
-+ if((to == NULL) || (from == NULL)) {
-+ return SECFailure;
-+ }
-+
-+ rv = SECOID_CopyAlgorithmID(poolp, &to->algorithm, &from->algorithm);
-+ if(rv != SECSuccess) {
-+ return SECFailure;
-+ }
-+ rv = SECITEM_CopyItem(poolp, &to->privateKey, &from->privateKey);
-+ if(rv != SECSuccess) {
-+ return SECFailure;
-+ }
-+ rv = SECITEM_CopyItem(poolp, &to->version, &from->version);
-+
-+ return rv;
-+}
-+
-+SECStatus
-+SECKEY_CopyEncryptedPrivateKeyInfo(PRArenaPool *poolp,
-+ SECKEYEncryptedPrivateKeyInfo *to,
-+ SECKEYEncryptedPrivateKeyInfo *from)
-+{
-+ SECStatus rv = SECFailure;
-+
-+ if((to == NULL) || (from == NULL)) {
-+ return SECFailure;
-+ }
-+
-+ rv = SECOID_CopyAlgorithmID(poolp, &to->algorithm, &from->algorithm);
-+ if(rv != SECSuccess) {
-+ return SECFailure;
-+ }
-+ rv = SECITEM_CopyItem(poolp, &to->encryptedData, &from->encryptedData);
-+
-+ return rv;
-+}
-+
-+KeyType
-+SECKEY_GetPrivateKeyType(SECKEYPrivateKey *privKey)
-+{
-+ return privKey->keyType;
-+}
-+
-+KeyType
-+SECKEY_GetPublicKeyType(SECKEYPublicKey *pubKey)
-+{
-+ return pubKey->keyType;
-+}
-+
-+SECKEYPublicKey*
-+SECKEY_ImportDERPublicKey(SECItem *derKey, CK_KEY_TYPE type)
-+{
-+ SECKEYPublicKey *pubk = NULL;
-+ SECStatus rv = SECFailure;
-+ SECItem newDerKey;
-+
-+ if (!derKey) {
-+ return NULL;
-+ }
-+
-+ pubk = PORT_ZNew(SECKEYPublicKey);
-+ if(pubk == NULL) {
-+ goto finish;
-+ }
-+ pubk->arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ if (NULL == pubk->arena) {
-+ goto finish;
-+ }
-+ rv = SECITEM_CopyItem(pubk->arena, &newDerKey, derKey);
-+ if (SECSuccess != rv) {
-+ goto finish;
-+ }
-+
-+ pubk->pkcs11Slot = NULL;
-+ pubk->pkcs11ID = CK_INVALID_HANDLE;
-+
-+ switch( type ) {
-+ case CKK_RSA:
-+ prepare_rsa_pub_key_for_asn1(pubk);
-+ rv = SEC_QuickDERDecodeItem(pubk->arena, pubk, SECKEY_RSAPublicKeyTemplate, &newDerKey);
-+ pubk->keyType = rsaKey;
-+ break;
-+ case CKK_DSA:
-+ prepare_dsa_pub_key_for_asn1(pubk);
-+ rv = SEC_QuickDERDecodeItem(pubk->arena, pubk, SECKEY_DSAPublicKeyTemplate, &newDerKey);
-+ pubk->keyType = dsaKey;
-+ break;
-+ case CKK_DH:
-+ prepare_dh_pub_key_for_asn1(pubk);
-+ rv = SEC_QuickDERDecodeItem(pubk->arena, pubk, SECKEY_DHPublicKeyTemplate, &newDerKey);
-+ pubk->keyType = dhKey;
-+ break;
-+ default:
-+ rv = SECFailure;
-+ break;
-+ }
-+
-+finish:
-+ if( rv != SECSuccess && pubk != NULL) {
-+ if (pubk->arena) {
-+ PORT_FreeArena(pubk->arena, PR_TRUE);
-+ }
-+ PORT_Free(pubk);
-+ pubk = NULL;
-+ }
-+ return pubk;
-+}
-+
-+SECKEYPrivateKeyList*
-+SECKEY_NewPrivateKeyList(void)
-+{
-+ PRArenaPool *arena = NULL;
-+ SECKEYPrivateKeyList *ret = NULL;
-+
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ if ( arena == NULL ) {
-+ goto loser;
-+ }
-+
-+ ret = (SECKEYPrivateKeyList *)PORT_ArenaZAlloc(arena,
-+ sizeof(SECKEYPrivateKeyList));
-+ if ( ret == NULL ) {
-+ goto loser;
-+ }
-+
-+ ret->arena = arena;
-+
-+ PR_INIT_CLIST(&ret->list);
-+
-+ return(ret);
-+
-+loser:
-+ if ( arena != NULL ) {
-+ PORT_FreeArena(arena, PR_FALSE);
-+ }
-+
-+ return(NULL);
-+}
-+
-+void
-+SECKEY_DestroyPrivateKeyList(SECKEYPrivateKeyList *keys)
-+{
-+ while( !PR_CLIST_IS_EMPTY(&keys->list) ) {
-+ SECKEY_RemovePrivateKeyListNode(
-+ (SECKEYPrivateKeyListNode*)(PR_LIST_HEAD(&keys->list)) );
-+ }
-+
-+ PORT_FreeArena(keys->arena, PR_FALSE);
-+
-+ return;
-+}
-+
-+
-+void
-+SECKEY_RemovePrivateKeyListNode(SECKEYPrivateKeyListNode *node)
-+{
-+ PR_ASSERT(node->key);
-+ SECKEY_DestroyPrivateKey(node->key);
-+ node->key = NULL;
-+ PR_REMOVE_LINK(&node->links);
-+ return;
-+
-+}
-+
-+SECStatus
-+SECKEY_AddPrivateKeyToListTail( SECKEYPrivateKeyList *list,
-+ SECKEYPrivateKey *key)
-+{
-+ SECKEYPrivateKeyListNode *node;
-+
-+ node = (SECKEYPrivateKeyListNode *)PORT_ArenaZAlloc(list->arena,
-+ sizeof(SECKEYPrivateKeyListNode));
-+ if ( node == NULL ) {
-+ goto loser;
-+ }
-+
-+ PR_INSERT_BEFORE(&node->links, &list->list);
-+ node->key = key;
-+ return(SECSuccess);
-+
-+loser:
-+ return(SECFailure);
-+}
-+
-+
-+SECKEYPublicKeyList*
-+SECKEY_NewPublicKeyList(void)
-+{
-+ PRArenaPool *arena = NULL;
-+ SECKEYPublicKeyList *ret = NULL;
-+
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ if ( arena == NULL ) {
-+ goto loser;
-+ }
-+
-+ ret = (SECKEYPublicKeyList *)PORT_ArenaZAlloc(arena,
-+ sizeof(SECKEYPublicKeyList));
-+ if ( ret == NULL ) {
-+ goto loser;
-+ }
-+
-+ ret->arena = arena;
-+
-+ PR_INIT_CLIST(&ret->list);
-+
-+ return(ret);
-+
-+loser:
-+ if ( arena != NULL ) {
-+ PORT_FreeArena(arena, PR_FALSE);
-+ }
-+
-+ return(NULL);
-+}
-+
-+void
-+SECKEY_DestroyPublicKeyList(SECKEYPublicKeyList *keys)
-+{
-+ while( !PR_CLIST_IS_EMPTY(&keys->list) ) {
-+ SECKEY_RemovePublicKeyListNode(
-+ (SECKEYPublicKeyListNode*)(PR_LIST_HEAD(&keys->list)) );
-+ }
-+
-+ PORT_FreeArena(keys->arena, PR_FALSE);
-+
-+ return;
-+}
-+
-+
-+void
-+SECKEY_RemovePublicKeyListNode(SECKEYPublicKeyListNode *node)
-+{
-+ PR_ASSERT(node->key);
-+ SECKEY_DestroyPublicKey(node->key);
-+ node->key = NULL;
-+ PR_REMOVE_LINK(&node->links);
-+ return;
-+
-+}
-+
-+SECStatus
-+SECKEY_AddPublicKeyToListTail( SECKEYPublicKeyList *list,
-+ SECKEYPublicKey *key)
-+{
-+ SECKEYPublicKeyListNode *node;
-+
-+ node = (SECKEYPublicKeyListNode *)PORT_ArenaZAlloc(list->arena,
-+ sizeof(SECKEYPublicKeyListNode));
-+ if ( node == NULL ) {
-+ goto loser;
-+ }
-+
-+ PR_INSERT_BEFORE(&node->links, &list->list);
-+ node->key = key;
-+ return(SECSuccess);
-+
-+loser:
-+ return(SECFailure);
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/secmodi.h 2004-12-13 15:50:16.137136496 +0100
-@@ -0,0 +1,117 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+/*
-+ * Internal header file included only by files in pkcs11 dir, or in
-+ * pkcs11 specific client and server files.
-+ */
-+#ifndef _SECMODI_H_
-+#define _SECMODI_H_ 1
-+#include "pkcs11.h"
-+#include "nssilock.h"
-+#include "mcom_db.h"
-+#include "secoidt.h"
-+#include "secdert.h"
-+#include "certt.h"
-+#include "secmodt.h"
-+#include "secmodti.h"
-+
-+#ifdef PKCS11_USE_THREADS
-+#define PK11_USE_THREADS(x) x
-+#else
-+#define PK11_USE_THREADS(x)
-+#endif
-+
-+SEC_BEGIN_PROTOS
-+
-+/* proto-types */
-+extern SECStatus SECMOD_DeletePermDB(SECMODModule *module);
-+extern SECStatus SECMOD_AddPermDB(SECMODModule *module);
-+
-+extern int secmod_PrivateModuleCount;
-+
-+extern void SECMOD_Init(void);
-+
-+/* list managment */
-+extern SECStatus SECMOD_AddModuleToList(SECMODModule *newModule);
-+extern SECStatus SECMOD_AddModuleToDBOnlyList(SECMODModule *newModule);
-+extern SECStatus SECMOD_AddModuleToUnloadList(SECMODModule *newModule);
-+extern void SECMOD_RemoveList(SECMODModuleList **,SECMODModuleList *);
-+extern void SECMOD_AddList(SECMODModuleList *,SECMODModuleList *,SECMODListLock *);
-+
-+/* Operate on modules by name */
-+extern SECMODModule *SECMOD_FindModuleByID(SECMODModuleID);
-+
-+/* database/memory management */
-+extern SECMODModuleList *SECMOD_NewModuleListElement(void);
-+extern SECMODModuleList *SECMOD_DestroyModuleListElement(SECMODModuleList *);
-+extern void SECMOD_DestroyModuleList(SECMODModuleList *);
-+extern SECStatus SECMOD_AddModule(SECMODModule *newModule);
-+SECStatus SECMOD_DeleteModuleEx(const char * name, SECMODModule *mod, int *type, PRBool permdb);
-+
-+extern unsigned long SECMOD_PubCipherFlagstoInternal(unsigned long publicFlags);
-+extern unsigned long SECMOD_InternaltoPubCipherFlags(unsigned long internalFlags);
-+
-+/* Library functions */
-+SECStatus SECMOD_LoadPKCS11Module(SECMODModule *);
-+SECStatus SECMOD_UnloadModule(SECMODModule *);
-+void SECMOD_SetInternalModule(SECMODModule *);
-+
-+void SECMOD_SlotDestroyModule(SECMODModule *module, PRBool fromSlot);
-+CK_RV pk11_notify(CK_SESSION_HANDLE session, CK_NOTIFICATION event,
-+ CK_VOID_PTR pdata);
-+void pk11_SignedToUnsigned(CK_ATTRIBUTE *attrib);
-+CK_OBJECT_HANDLE pk11_FindObjectByTemplate(PK11SlotInfo *slot,
-+ CK_ATTRIBUTE *inTemplate,int tsize);
-+CK_OBJECT_HANDLE *pk11_FindObjectsByTemplate(PK11SlotInfo *slot,
-+ CK_ATTRIBUTE *inTemplate,int tsize, int *objCount);
-+SECStatus PK11_UpdateSlotAttribute(PK11SlotInfo *slot,
-+ PK11DefaultArrayEntry *entry, PRBool add);
-+
-+#define PK11_GETTAB(x) ((CK_FUNCTION_LIST_PTR)((x)->functionList))
-+#define PK11_SETATTRS(x,id,v,l) (x)->type = (id); \
-+ (x)->pValue=(v); (x)->ulValueLen = (l);
-+SECStatus PK11_CreateNewObject(PK11SlotInfo *slot, CK_SESSION_HANDLE session,
-+ CK_ATTRIBUTE *theTemplate, int count,
-+ PRBool token, CK_OBJECT_HANDLE *objectID);
-+
-+SECStatus pbe_PK11AlgidToParam(SECAlgorithmID *algid,SECItem *mech);
-+SECStatus PBE_PK11ParamToAlgid(SECOidTag algTag, SECItem *param,
-+ PRArenaPool *arena, SECAlgorithmID *algId);
-+
-+extern void pk11sdr_Init(void);
-+extern void pk11sdr_Shutdown(void);
-+
-+SEC_END_PROTOS
-+
-+#endif
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/secmodti.h 2004-12-13 15:50:16.121138928 +0100
-@@ -0,0 +1,191 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+/*
-+ * Internal header file included only by files in pkcs11 dir, or in
-+ * pkcs11 specific client and server files.
-+ */
-+
-+#ifndef _SECMODTI_H_
-+#define _SECMODTI_H_ 1
-+#include "prmon.h"
-+#include "prtypes.h"
-+#include "nssilckt.h"
-+#include "pk11init.h"
-+
-+#ifndef NSS_3_4_CODE
-+#define NSS_3_4_CODE
-+#endif /* NSS_3_4_CODE */
-+#include "nssdevt.h"
-+
-+/* internal data structures */
-+
-+/* structure to allow us to implement the read/write locks for our
-+ * module lists */
-+struct SECMODListLockStr {
-+ PZLock *mutex; /*general mutex to protect this data structure*/
-+ PZMonitor *monitor; /* monitor to allow us to signal */
-+ int state; /* read/write/waiting state */
-+ int count; /* how many waiters on this lock */
-+};
-+
-+/* represent a pkcs#11 slot reference counted. */
-+struct PK11SlotInfoStr {
-+ /* the PKCS11 function list for this slot */
-+ void *functionList;
-+ SECMODModule *module; /* our parent module */
-+ /* Boolean to indicate the current state of this slot */
-+ PRBool needTest; /* Has this slot been tested for Export complience */
-+ PRBool isPerm; /* is this slot a permanment device */
-+ PRBool isHW; /* is this slot a hardware device */
-+ PRBool isInternal; /* is this slot one of our internal PKCS #11 devices */
-+ PRBool disabled; /* is this slot disabled... */
-+ PK11DisableReasons reason; /* Why this slot is disabled */
-+ PRBool readOnly; /* is the token in this slot read-only */
-+ PRBool needLogin; /* does the token of the type that needs
-+ * authentication (still true even if token is logged
-+ * in) */
-+ PRBool hasRandom; /* can this token generated random numbers */
-+ PRBool defRWSession; /* is the default session RW (we open our default
-+ * session rw if the token can only handle one session
-+ * at a time. */
-+ PRBool isThreadSafe; /* copied from the module */
-+ /* The actual flags (many of which are distilled into the above PRBools) */
-+ CK_FLAGS flags; /* flags from PKCS #11 token Info */
-+ /* a default session handle to do quick and dirty functions */
-+ CK_SESSION_HANDLE session;
-+ PZLock *sessionLock; /* lock for this session */
-+ /* our ID */
-+ CK_SLOT_ID slotID;
-+ /* persistant flags saved from startup to startup */
-+ unsigned long defaultFlags;
-+ /* keep track of who is using us so we don't accidently get freed while
-+ * still in use */
-+ PRInt32 refCount; /* to be in/decremented by atomic calls ONLY! */
-+ PZLock *freeListLock;
-+ PK11SymKey *freeSymKeysHead;
-+ int keyCount;
-+ int maxKeyCount;
-+ /* Password control functions for this slot. many of these are only
-+ * active if the appropriate flag is on in defaultFlags */
-+ int askpw; /* what our password options are */
-+ int timeout; /* If we're ask_timeout, what is our timeout time is
-+ * seconds */
-+ int authTransact; /* allow multiple authentications off one password if
-+ * they are all part of the same transaction */
-+ int64 authTime; /* when were we last authenticated */
-+ int minPassword; /* smallest legal password */
-+ int maxPassword; /* largest legal password */
-+ uint16 series; /* break up the slot info into various groups of
-+ * inserted tokens so that keys and certs can be
-+ * invalidated */
-+ uint16 wrapKey; /* current wrapping key for SSL master secrets */
-+ CK_MECHANISM_TYPE wrapMechanism;
-+ /* current wrapping mechanism for current wrapKey */
-+ CK_OBJECT_HANDLE refKeys[1]; /* array of existing wrapping keys for */
-+ CK_MECHANISM_TYPE *mechanismList; /* list of mechanism supported by this
-+ * token */
-+ int mechanismCount;
-+ /* cache the certificates stored on the token of this slot */
-+ CERTCertificate **cert_array;
-+ int array_size;
-+ int cert_count;
-+ char serial[16];
-+ /* since these are odd sizes, keep them last. They are odd sizes to
-+ * allow them to become null terminated strings */
-+ char slot_name[65];
-+ char token_name[33];
-+ PRBool hasRootCerts;
-+ PRBool hasRootTrust;
-+ PRBool hasRSAInfo;
-+ CK_FLAGS RSAInfoFlags;
-+ PRBool protectedAuthPath;
-+ PRBool isActiveCard;
-+ PRIntervalTime lastLoginCheck;
-+ unsigned int lastState;
-+ /* for Stan */
-+ NSSToken *nssToken;
-+ /* fast mechanism lookup */
-+ char mechanismBits[256];
-+};
-+
-+/* Symetric Key structure. Reference Counted */
-+struct PK11SymKeyStr {
-+ CK_MECHANISM_TYPE type; /* type of operation this key was created for*/
-+ CK_OBJECT_HANDLE objectID; /* object id of this key in the slot */
-+ PK11SlotInfo *slot; /* Slot this key is loaded into */
-+ void *cx; /* window context in case we need to loggin */
-+ PK11SymKey *next;
-+ PRBool owner;
-+ SECItem data; /* raw key data if available */
-+ CK_SESSION_HANDLE session;
-+ PRBool sessionOwner;
-+ PRInt32 refCount; /* number of references to this key */
-+ int size; /* key size in bytes */
-+ PK11Origin origin; /* where this key came from
-+ (see def in secmodt.h) */
-+ uint16 series; /* break up the slot info into various groups of
-+ * inserted tokens so that keys and certs can be
-+ * invalidated */
-+};
-+
-+
-+/*
-+ * hold a hash, encryption or signing context for multi-part operations.
-+ * hold enough information so that multiple contexts can be interleaved
-+ * if necessary. ... Not RefCounted.
-+ */
-+struct PK11ContextStr {
-+ CK_ATTRIBUTE_TYPE operation; /* type of operation this context is doing
-+ * (CKA_ENCRYPT, CKA_SIGN, CKA_HASH, etc. */
-+ PK11SymKey *key; /* symetric key used in this context */
-+ PK11SlotInfo *slot; /* slot this context is operationing on */
-+ CK_SESSION_HANDLE session; /* session this context is using */
-+ PZLock *sessionLock; /* lock before accessing a PKCS #11
-+ * session */
-+ PRBool ownSession;/* do we own the session? */
-+ void *cx; /* window context in case we need to loggin*/
-+ void *savedData;/* save data when we are multiplexing on a
-+ * single context */
-+ unsigned long savedLength; /* length of the saved context */
-+ SECItem *param; /* mechanism parameters used to build this
-+ context */
-+ PRBool init; /* has this contexted been initialized */
-+ CK_MECHANISM_TYPE type; /* what is the PKCS #11 this context is
-+ * representing (usually what algorithm is
-+ * being used (CKM_RSA_PKCS, CKM_DES,
-+ * CKM_SHA, etc.*/
-+ PRBool fortezzaHack; /*Fortezza SSL has some special
-+ * non-standard semantics*/
-+};
-+
-+#endif /* _SECMODTI_H_ */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/secname.c 2004-12-13 13:06:46.690399072 +0100
-@@ -0,0 +1,701 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ * John Gardiner Myers <jgmyers@speakeasy.net>
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#include "cert.h"
-+#include "secoid.h"
-+#include "secder.h" /* XXX remove this when remove the DERTemplates */
-+#include "secasn1.h"
-+#include "secitem.h"
-+#include <stdarg.h>
-+#include "secerr.h"
-+#include "certi.h"
-+
-+static const SEC_ASN1Template cert_AVATemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(CERTAVA) },
-+ { SEC_ASN1_OBJECT_ID,
-+ offsetof(CERTAVA,type), },
-+ { SEC_ASN1_ANY,
-+ offsetof(CERTAVA,value), },
-+ { 0, }
-+};
-+
-+const SEC_ASN1Template CERT_RDNTemplate[] = {
-+ { SEC_ASN1_SET_OF,
-+ offsetof(CERTRDN,avas), cert_AVATemplate, sizeof(CERTRDN) }
-+};
-+
-+
-+static int
-+CountArray(void **array)
-+{
-+ int count = 0;
-+ if (array) {
-+ while (*array++) {
-+ count++;
-+ }
-+ }
-+ return count;
-+}
-+
-+static void **
-+AddToArray(PRArenaPool *arena, void **array, void *element)
-+{
-+ unsigned count;
-+ void **ap;
-+
-+ /* Count up number of slots already in use in the array */
-+ count = 0;
-+ ap = array;
-+ if (ap) {
-+ while (*ap++) {
-+ count++;
-+ }
-+ }
-+
-+ if (array) {
-+ array = (void**) PORT_ArenaGrow(arena, array,
-+ (count + 1) * sizeof(void *),
-+ (count + 2) * sizeof(void *));
-+ } else {
-+ array = (void**) PORT_ArenaAlloc(arena, (count + 2) * sizeof(void *));
-+ }
-+ if (array) {
-+ array[count] = element;
-+ array[count+1] = 0;
-+ }
-+ return array;
-+}
-+
-+
-+SECOidTag
-+CERT_GetAVATag(CERTAVA *ava)
-+{
-+ SECOidData *oid;
-+ if (!ava->type.data) return (SECOidTag)-1;
-+
-+ oid = SECOID_FindOID(&ava->type);
-+
-+ if ( oid ) {
-+ return(oid->offset);
-+ }
-+ return (SECOidTag)-1;
-+}
-+
-+static SECStatus
-+SetupAVAType(PRArenaPool *arena, SECOidTag type, SECItem *it, unsigned *maxLenp)
-+{
-+ unsigned char *oid;
-+ unsigned oidLen;
-+ unsigned char *cp;
-+ int maxLen;
-+ SECOidData *oidrec;
-+
-+ oidrec = SECOID_FindOIDByTag(type);
-+ if (oidrec == NULL)
-+ return SECFailure;
-+
-+ oid = oidrec->oid.data;
-+ oidLen = oidrec->oid.len;
-+
-+ maxLen = cert_AVAOidTagToMaxLen(type);
-+ if (maxLen < 0) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+
-+ it->data = cp = (unsigned char*) PORT_ArenaAlloc(arena, oidLen);
-+ if (cp == NULL) {
-+ return SECFailure;
-+ }
-+ it->len = oidLen;
-+ PORT_Memcpy(cp, oid, oidLen);
-+ *maxLenp = (unsigned)maxLen;
-+ return SECSuccess;
-+}
-+
-+static SECStatus
-+SetupAVAValue(PRArenaPool *arena, int valueType, char *value, SECItem *it,
-+ unsigned maxLen)
-+{
-+ unsigned valueLen, valueLenLen, total;
-+ unsigned ucs4Len = 0, ucs4MaxLen;
-+ unsigned char *cp, *ucs4Val;
-+
-+ switch (valueType) {
-+ case SEC_ASN1_PRINTABLE_STRING:
-+ case SEC_ASN1_IA5_STRING:
-+ case SEC_ASN1_T61_STRING:
-+ case SEC_ASN1_UTF8_STRING: /* no conversion required */
-+ valueLen = PORT_Strlen(value);
-+ break;
-+ case SEC_ASN1_UNIVERSAL_STRING:
-+ valueLen = PORT_Strlen(value);
-+ ucs4MaxLen = valueLen * 6;
-+ ucs4Val = (unsigned char *)PORT_ArenaZAlloc(arena, ucs4MaxLen);
-+ if(!ucs4Val || !PORT_UCS4_UTF8Conversion(PR_TRUE,
-+ (unsigned char *)value, valueLen,
-+ ucs4Val, ucs4MaxLen, &ucs4Len)) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+ value = (char *)ucs4Val;
-+ valueLen = ucs4Len;
-+ maxLen *= 4;
-+ break;
-+ default:
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+
-+ if (valueLen > maxLen) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+
-+ valueLenLen = DER_LengthLength(valueLen);
-+ total = 1 + valueLenLen + valueLen;
-+ it->data = cp = (unsigned char*) PORT_ArenaAlloc(arena, total);
-+ if (!cp) {
-+ return SECFailure;
-+ }
-+ it->len = total;
-+ cp = (unsigned char*) DER_StoreHeader(cp, valueType, valueLen);
-+ PORT_Memcpy(cp, value, valueLen);
-+ return SECSuccess;
-+}
-+
-+CERTAVA *
-+CERT_CreateAVA(PRArenaPool *arena, SECOidTag kind, int valueType, char *value)
-+{
-+ CERTAVA *ava;
-+ int rv;
-+ unsigned maxLen;
-+
-+ ava = (CERTAVA*) PORT_ArenaZAlloc(arena, sizeof(CERTAVA));
-+ if (ava) {
-+ rv = SetupAVAType(arena, kind, &ava->type, &maxLen);
-+ if (rv) {
-+ /* Illegal AVA type */
-+ return 0;
-+ }
-+ rv = SetupAVAValue(arena, valueType, value, &ava->value, maxLen);
-+ if (rv) {
-+ /* Illegal value type */
-+ return 0;
-+ }
-+ }
-+ return ava;
-+}
-+
-+CERTAVA *
-+CERT_CopyAVA(PRArenaPool *arena, CERTAVA *from)
-+{
-+ CERTAVA *ava;
-+ int rv;
-+
-+ ava = (CERTAVA*) PORT_ArenaZAlloc(arena, sizeof(CERTAVA));
-+ if (ava) {
-+ rv = SECITEM_CopyItem(arena, &ava->type, &from->type);
-+ if (rv) goto loser;
-+ rv = SECITEM_CopyItem(arena, &ava->value, &from->value);
-+ if (rv) goto loser;
-+ }
-+ return ava;
-+
-+ loser:
-+ return 0;
-+}
-+
-+/************************************************************************/
-+/* XXX This template needs to go away in favor of the new SEC_ASN1 version. */
-+static const SEC_ASN1Template cert_RDNTemplate[] = {
-+ { SEC_ASN1_SET_OF,
-+ offsetof(CERTRDN,avas), cert_AVATemplate, sizeof(CERTRDN) }
-+};
-+
-+
-+CERTRDN *
-+CERT_CreateRDN(PRArenaPool *arena, CERTAVA *ava0, ...)
-+{
-+ CERTAVA *ava;
-+ CERTRDN *rdn;
-+ va_list ap;
-+ unsigned count;
-+ CERTAVA **avap;
-+
-+ rdn = (CERTRDN*) PORT_ArenaAlloc(arena, sizeof(CERTRDN));
-+ if (rdn) {
-+ /* Count number of avas going into the rdn */
-+ count = 0;
-+ if (ava0) {
-+ count++;
-+ va_start(ap, ava0);
-+ while ((ava = va_arg(ap, CERTAVA*)) != 0) {
-+ count++;
-+ }
-+ va_end(ap);
-+ }
-+
-+ /* Now fill in the pointers */
-+ rdn->avas = avap =
-+ (CERTAVA**) PORT_ArenaAlloc( arena, (count + 1)*sizeof(CERTAVA*));
-+ if (!avap) {
-+ return 0;
-+ }
-+ if (ava0) {
-+ *avap++ = ava0;
-+ va_start(ap, ava0);
-+ while ((ava = va_arg(ap, CERTAVA*)) != 0) {
-+ *avap++ = ava;
-+ }
-+ va_end(ap);
-+ }
-+ *avap++ = 0;
-+ }
-+ return rdn;
-+}
-+
-+SECStatus
-+CERT_AddAVA(PRArenaPool *arena, CERTRDN *rdn, CERTAVA *ava)
-+{
-+ rdn->avas = (CERTAVA**) AddToArray(arena, (void**) rdn->avas, ava);
-+ return rdn->avas ? SECSuccess : SECFailure;
-+}
-+
-+SECStatus
-+CERT_CopyRDN(PRArenaPool *arena, CERTRDN *to, CERTRDN *from)
-+{
-+ CERTAVA **avas, *fava, *tava;
-+ SECStatus rv = SECSuccess;
-+
-+ /* Copy each ava from from */
-+ avas = from->avas;
-+ if (avas) {
-+ if (avas[0] == NULL) {
-+ rv = CERT_AddAVA(arena, to, NULL);
-+ return rv;
-+ }
-+ while ((fava = *avas++) != 0) {
-+ tava = CERT_CopyAVA(arena, fava);
-+ if (!tava) {
-+ rv = SECFailure;
-+ break;
-+ }
-+ rv = CERT_AddAVA(arena, to, tava);
-+ if (rv != SECSuccess)
-+ break;
-+ }
-+ }
-+ return rv;
-+}
-+
-+/************************************************************************/
-+
-+const SEC_ASN1Template CERT_NameTemplate[] = {
-+ { SEC_ASN1_SEQUENCE_OF,
-+ offsetof(CERTName,rdns), CERT_RDNTemplate, sizeof(CERTName) }
-+};
-+
-+SEC_ASN1_CHOOSER_IMPLEMENT(CERT_NameTemplate)
-+
-+CERTName *
-+CERT_CreateName(CERTRDN *rdn0, ...)
-+{
-+ CERTRDN *rdn;
-+ CERTName *name;
-+ va_list ap;
-+ unsigned count;
-+ CERTRDN **rdnp;
-+ PRArenaPool *arena;
-+
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ if ( !arena ) {
-+ return(0);
-+ }
-+
-+ name = (CERTName*) PORT_ArenaAlloc(arena, sizeof(CERTName));
-+ if (name) {
-+ name->arena = arena;
-+
-+ /* Count number of RDNs going into the Name */
-+ if (!rdn0) {
-+ count = 0;
-+ } else {
-+ count = 1;
-+ va_start(ap, rdn0);
-+ while ((rdn = va_arg(ap, CERTRDN*)) != 0) {
-+ count++;
-+ }
-+ va_end(ap);
-+ }
-+
-+ /* Allocate space (including space for terminal null ptr) */
-+ name->rdns = rdnp =
-+ (CERTRDN**) PORT_ArenaAlloc(arena, (count + 1) * sizeof(CERTRDN*));
-+ if (!name->rdns) {
-+ goto loser;
-+ }
-+
-+ /* Now fill in the pointers */
-+ if (count > 0) {
-+ *rdnp++ = rdn0;
-+ va_start(ap, rdn0);
-+ while ((rdn = va_arg(ap, CERTRDN*)) != 0) {
-+ *rdnp++ = rdn;
-+ }
-+ va_end(ap);
-+ }
-+
-+ /* null terminate the list */
-+ *rdnp++ = 0;
-+ }
-+ return name;
-+
-+loser:
-+ PORT_FreeArena(arena, PR_FALSE);
-+ return(0);
-+}
-+
-+void
-+CERT_DestroyName(CERTName *name)
-+{
-+ if (name)
-+ {
-+ PRArenaPool *arena = name->arena;
-+ name->rdns = NULL;
-+ name->arena = NULL;
-+ if (arena) PORT_FreeArena(arena, PR_FALSE);
-+ }
-+}
-+
-+SECStatus
-+CERT_AddRDN(CERTName *name, CERTRDN *rdn)
-+{
-+ name->rdns = (CERTRDN**) AddToArray(name->arena, (void**) name->rdns, rdn);
-+ return name->rdns ? SECSuccess : SECFailure;
-+}
-+
-+SECStatus
-+CERT_CopyName(PRArenaPool *arena, CERTName *to, CERTName *from)
-+{
-+ CERTRDN **rdns, *frdn, *trdn;
-+ SECStatus rv = SECSuccess;
-+
-+ if (!to || !from) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+
-+ CERT_DestroyName(to);
-+ to->arena = arena;
-+
-+ /* Copy each rdn from from */
-+ rdns = from->rdns;
-+ if (rdns) {
-+ if (rdns[0] == NULL) {
-+ rv = CERT_AddRDN(to, NULL);
-+ return rv;
-+ }
-+ while ((frdn = *rdns++) != NULL) {
-+ trdn = CERT_CreateRDN(arena, 0);
-+ if (!trdn) {
-+ rv = SECFailure;
-+ break;
-+ }
-+ rv = CERT_CopyRDN(arena, trdn, frdn);
-+ if (rv != SECSuccess)
-+ break;
-+ rv = CERT_AddRDN(to, trdn);
-+ if (rv != SECSuccess)
-+ break;
-+ }
-+ }
-+ return rv;
-+}
-+
-+/************************************************************************/
-+
-+static void
-+canonicalize(SECItem * foo)
-+{
-+ int ch, lastch, len, src, dest;
-+
-+ /* strip trailing whitespace. */
-+ len = foo->len;
-+ while (len > 0 && ((ch = foo->data[len - 1]) == ' ' ||
-+ ch == '\t' || ch == '\r' || ch == '\n')) {
-+ len--;
-+ }
-+
-+ src = 0;
-+ /* strip leading whitespace. */
-+ while (src < len && ((ch = foo->data[src]) == ' ' ||
-+ ch == '\t' || ch == '\r' || ch == '\n')) {
-+ src++;
-+ }
-+ dest = 0; lastch = ' ';
-+ while (src < len) {
-+ ch = foo->data[src++];
-+ if (ch == ' ' || ch == '\t' || ch == '\r' || ch == '\n') {
-+ ch = ' ';
-+ if (ch == lastch)
-+ continue;
-+ } else if (ch >= 'A' && ch <= 'Z') {
-+ ch |= 0x20; /* downshift */
-+ }
-+ foo->data[dest++] = lastch = ch;
-+ }
-+ foo->len = dest;
-+}
-+
-+/* SECItems a and b contain DER-encoded printable strings. */
-+SECComparison
-+CERT_CompareDERPrintableStrings(const SECItem *a, const SECItem *b)
-+{
-+ SECComparison rv = SECLessThan;
-+ SECItem * aVal = CERT_DecodeAVAValue(a);
-+ SECItem * bVal = CERT_DecodeAVAValue(b);
-+
-+ if (aVal && aVal->len && aVal->data &&
-+ bVal && bVal->len && bVal->data) {
-+ canonicalize(aVal);
-+ canonicalize(bVal);
-+ rv = SECITEM_CompareItem(aVal, bVal);
-+ }
-+ SECITEM_FreeItem(aVal, PR_TRUE);
-+ SECITEM_FreeItem(bVal, PR_TRUE);
-+ return rv;
-+}
-+
-+SECComparison
-+CERT_CompareAVA(const CERTAVA *a, const CERTAVA *b)
-+{
-+ SECComparison rv;
-+
-+ rv = SECITEM_CompareItem(&a->type, &b->type);
-+ if (SECEqual != rv)
-+ return rv; /* Attribute types don't match. */
-+ /* Let's be optimistic. Maybe the values will just compare equal. */
-+ rv = SECITEM_CompareItem(&a->value, &b->value);
-+ if (SECEqual == rv)
-+ return rv; /* values compared exactly. */
-+ if (a->value.len && a->value.data && b->value.len && b->value.data) {
-+ /* Here, the values did not match.
-+ ** If the values had different encodings, convert them to the same
-+ ** encoding and compare that way.
-+ */
-+ if (a->value.data[0] != b->value.data[0]) {
-+ /* encodings differ. Convert both to UTF-8 and compare. */
-+ SECItem * aVal = CERT_DecodeAVAValue(&a->value);
-+ SECItem * bVal = CERT_DecodeAVAValue(&b->value);
-+ if (aVal && aVal->len && aVal->data &&
-+ bVal && bVal->len && bVal->data) {
-+ rv = SECITEM_CompareItem(aVal, bVal);
-+ }
-+ SECITEM_FreeItem(aVal, PR_TRUE);
-+ SECITEM_FreeItem(bVal, PR_TRUE);
-+ } else if (a->value.data[0] == 0x13) { /* both are printable strings. */
-+ /* printable strings */
-+ rv = CERT_CompareDERPrintableStrings(&a->value, &b->value);
-+ }
-+ }
-+ return rv;
-+}
-+
-+SECComparison
-+CERT_CompareRDN(CERTRDN *a, CERTRDN *b)
-+{
-+ CERTAVA **aavas, *aava;
-+ CERTAVA **bavas, *bava;
-+ int ac, bc;
-+ SECComparison rv = SECEqual;
-+
-+ aavas = a->avas;
-+ bavas = b->avas;
-+
-+ /*
-+ ** Make sure array of ava's are the same length. If not, then we are
-+ ** not equal
-+ */
-+ ac = CountArray((void**) aavas);
-+ bc = CountArray((void**) bavas);
-+ if (ac < bc) return SECLessThan;
-+ if (ac > bc) return SECGreaterThan;
-+
-+ for (;;) {
-+ aava = *aavas++;
-+ bava = *bavas++;
-+ if (!aava) {
-+ break;
-+ }
-+ rv = CERT_CompareAVA(aava, bava);
-+ if (rv) return rv;
-+ }
-+ return rv;
-+}
-+
-+SECComparison
-+CERT_CompareName(CERTName *a, CERTName *b)
-+{
-+ CERTRDN **ardns, *ardn;
-+ CERTRDN **brdns, *brdn;
-+ int ac, bc;
-+ SECComparison rv = SECEqual;
-+
-+ ardns = a->rdns;
-+ brdns = b->rdns;
-+
-+ /*
-+ ** Make sure array of rdn's are the same length. If not, then we are
-+ ** not equal
-+ */
-+ ac = CountArray((void**) ardns);
-+ bc = CountArray((void**) brdns);
-+ if (ac < bc) return SECLessThan;
-+ if (ac > bc) return SECGreaterThan;
-+
-+ for (;;) {
-+ ardn = *ardns++;
-+ brdn = *brdns++;
-+ if (!ardn) {
-+ break;
-+ }
-+ rv = CERT_CompareRDN(ardn, brdn);
-+ if (rv) return rv;
-+ }
-+ return rv;
-+}
-+
-+/* Moved from certhtml.c */
-+SECItem *
-+CERT_DecodeAVAValue(const SECItem *derAVAValue)
-+{
-+ SECItem *retItem;
-+ const SEC_ASN1Template *theTemplate = NULL;
-+ enum { conv_none, conv_ucs4, conv_ucs2, conv_iso88591 } convert = conv_none;
-+ SECItem avaValue = {siBuffer, 0};
-+ PLArenaPool *newarena = NULL;
-+
-+ if (!derAVAValue || !derAVAValue->len || !derAVAValue->data) {
-+ return NULL;
-+ }
-+
-+ switch(derAVAValue->data[0]) {
-+ case SEC_ASN1_UNIVERSAL_STRING:
-+ convert = conv_ucs4;
-+ theTemplate = SEC_UniversalStringTemplate;
-+ break;
-+ case SEC_ASN1_IA5_STRING:
-+ theTemplate = SEC_IA5StringTemplate;
-+ break;
-+ case SEC_ASN1_PRINTABLE_STRING:
-+ theTemplate = SEC_PrintableStringTemplate;
-+ break;
-+ case SEC_ASN1_T61_STRING:
-+ /*
-+ * Per common practice, we're not decoding actual T.61, but instead
-+ * treating T61-labeled strings as containing ISO-8859-1.
-+ */
-+ convert = conv_iso88591;
-+ theTemplate = SEC_T61StringTemplate;
-+ break;
-+ case SEC_ASN1_BMP_STRING:
-+ convert = conv_ucs2;
-+ theTemplate = SEC_BMPStringTemplate;
-+ break;
-+ case SEC_ASN1_UTF8_STRING:
-+ /* No conversion needed ! */
-+ theTemplate = SEC_UTF8StringTemplate;
-+ break;
-+ default:
-+ return NULL;
-+ }
-+
-+ PORT_Memset(&avaValue, 0, sizeof(SECItem));
-+ newarena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ if (!newarena) {
-+ return NULL;
-+ }
-+ if(SEC_QuickDERDecodeItem(newarena, &avaValue, theTemplate, derAVAValue)
-+ != SECSuccess) {
-+ PORT_FreeArena(newarena, PR_FALSE);
-+ return NULL;
-+ }
-+
-+ if (convert != conv_none) {
-+ unsigned int utf8ValLen = avaValue.len * 3;
-+ unsigned char *utf8Val = (unsigned char*)
-+ PORT_ArenaZAlloc(newarena, utf8ValLen);
-+
-+ switch (convert) {
-+ case conv_ucs4:
-+ if(avaValue.len % 4 != 0 ||
-+ !PORT_UCS4_UTF8Conversion(PR_FALSE, avaValue.data, avaValue.len,
-+ utf8Val, utf8ValLen, &utf8ValLen)) {
-+ PORT_FreeArena(newarena, PR_FALSE);
-+ PORT_SetError(SEC_ERROR_INVALID_AVA);
-+ return NULL;
-+ }
-+ break;
-+ case conv_ucs2:
-+ if(avaValue.len % 2 != 0 ||
-+ !PORT_UCS2_UTF8Conversion(PR_FALSE, avaValue.data, avaValue.len,
-+ utf8Val, utf8ValLen, &utf8ValLen)) {
-+ PORT_FreeArena(newarena, PR_FALSE);
-+ PORT_SetError(SEC_ERROR_INVALID_AVA);
-+ return NULL;
-+ }
-+ break;
-+ case conv_iso88591:
-+ if(!PORT_ISO88591_UTF8Conversion(avaValue.data, avaValue.len,
-+ utf8Val, utf8ValLen, &utf8ValLen)) {
-+ PORT_FreeArena(newarena, PR_FALSE);
-+ PORT_SetError(SEC_ERROR_INVALID_AVA);
-+ return NULL;
-+ }
-+ break;
-+ case conv_none:
-+ PORT_Assert(0); /* not reached */
-+ break;
-+ }
-+
-+ avaValue.data = utf8Val;
-+ avaValue.len = utf8ValLen;
-+ }
-+
-+ retItem = SECITEM_DupItem(&avaValue);
-+ PORT_FreeArena(newarena, PR_FALSE);
-+ return retItem;
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/secoid.c 2004-12-13 13:06:46.765387672 +0100
-@@ -0,0 +1,1737 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Portions created by Sun Microsystems, Inc. are Copyright (C) 2003
-+ * Sun Microsystems, Inc. All Rights Reserved.
-+ *
-+ * Contributor(s):
-+ * Dr Vipul Gupta <vipul.gupta@sun.com>, Sun Microsystems Laboratories
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#include "secoid.h"
-+#include "pkcs11t.h"
-+#include "secmodt.h"
-+#include "secitem.h"
-+#include "secerr.h"
-+#include "plhash.h"
-+
-+/* MISSI Mosaic Object ID space */
-+#define USGOV 0x60, 0x86, 0x48, 0x01, 0x65
-+#define MISSI USGOV, 0x02, 0x01, 0x01
-+#define MISSI_OLD_KEA_DSS MISSI, 0x0c
-+#define MISSI_OLD_DSS MISSI, 0x02
-+#define MISSI_KEA_DSS MISSI, 0x14
-+#define MISSI_DSS MISSI, 0x13
-+#define MISSI_KEA MISSI, 0x0a
-+#define MISSI_ALT_KEA MISSI, 0x16
-+
-+#define NISTALGS USGOV, 3, 4
-+#define AES NISTALGS, 1
-+#define SHAXXX NISTALGS, 2
-+
-+/**
-+ ** The Netscape OID space is allocated by Terry Hayes. If you need
-+ ** a piece of the space, contact him at thayes@netscape.com.
-+ **/
-+
-+/* Netscape Communications Corporation Object ID space */
-+/* { 2 16 840 1 113730 } */
-+#define NETSCAPE_OID 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x42
-+#define NETSCAPE_CERT_EXT NETSCAPE_OID, 0x01
-+#define NETSCAPE_DATA_TYPE NETSCAPE_OID, 0x02
-+/* netscape directory oid - owned by Mark Smith (mcs@netscape.com) */
-+#define NETSCAPE_DIRECTORY NETSCAPE_OID, 0x03
-+#define NETSCAPE_POLICY NETSCAPE_OID, 0x04
-+#define NETSCAPE_CERT_SERVER NETSCAPE_OID, 0x05
-+#define NETSCAPE_ALGS NETSCAPE_OID, 0x06 /* algorithm OIDs */
-+#define NETSCAPE_NAME_COMPONENTS NETSCAPE_OID, 0x07
-+
-+#define NETSCAPE_CERT_EXT_AIA NETSCAPE_CERT_EXT, 0x10
-+#define NETSCAPE_CERT_SERVER_CRMF NETSCAPE_CERT_SERVER, 0x01
-+
-+/* these are old and should go away soon */
-+#define OLD_NETSCAPE 0x60, 0x86, 0x48, 0xd8, 0x6a
-+#define NS_CERT_EXT OLD_NETSCAPE, 0x01
-+#define NS_FILE_TYPE OLD_NETSCAPE, 0x02
-+#define NS_IMAGE_TYPE OLD_NETSCAPE, 0x03
-+
-+/* RSA OID name space */
-+#define RSADSI 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d
-+#define PKCS RSADSI, 0x01
-+#define DIGEST RSADSI, 0x02
-+#define CIPHER RSADSI, 0x03
-+#define PKCS1 PKCS, 0x01
-+#define PKCS5 PKCS, 0x05
-+#define PKCS7 PKCS, 0x07
-+#define PKCS9 PKCS, 0x09
-+#define PKCS12 PKCS, 0x0c
-+
-+/* Fortezza algorithm OID space: { 2 16 840 1 101 2 1 1 } */
-+/* ### mwelch -- Is this just for algorithms, or all of Fortezza? */
-+#define FORTEZZA_ALG 0x60, 0x86, 0x48, 0x01, 0x65, 0x02, 0x01, 0x01
-+
-+/* Other OID name spaces */
-+#define ALGORITHM 0x2b, 0x0e, 0x03, 0x02
-+#define X500 0x55
-+#define X520_ATTRIBUTE_TYPE X500, 0x04
-+#define X500_ALG X500, 0x08
-+#define X500_ALG_ENCRYPTION X500_ALG, 0x01
-+
-+/** X.509 v3 Extension OID
-+ ** {joint-iso-ccitt (2) ds(5) 29}
-+ **/
-+#define ID_CE_OID X500, 0x1d
-+
-+#define RFC1274_ATTR_TYPE 0x09, 0x92, 0x26, 0x89, 0x93, 0xf2, 0x2c, 0x64, 0x1
-+/* #define RFC2247_ATTR_TYPE 0x09, 0x92, 0x26, 0xf5, 0x98, 0x1e, 0x64, 0x1 this is WRONG! */
-+
-+/* PKCS #12 name spaces */
-+#define PKCS12_MODE_IDS PKCS12, 0x01
-+#define PKCS12_ESPVK_IDS PKCS12, 0x02
-+#define PKCS12_BAG_IDS PKCS12, 0x03
-+#define PKCS12_CERT_BAG_IDS PKCS12, 0x04
-+#define PKCS12_OIDS PKCS12, 0x05
-+#define PKCS12_PBE_IDS PKCS12_OIDS, 0x01
-+#define PKCS12_ENVELOPING_IDS PKCS12_OIDS, 0x02
-+#define PKCS12_SIGNATURE_IDS PKCS12_OIDS, 0x03
-+#define PKCS12_V2_PBE_IDS PKCS12, 0x01
-+#define PKCS9_CERT_TYPES PKCS9, 0x16
-+#define PKCS9_CRL_TYPES PKCS9, 0x17
-+#define PKCS9_SMIME_IDS PKCS9, 0x10
-+#define PKCS9_SMIME_ATTRS PKCS9_SMIME_IDS, 2
-+#define PKCS9_SMIME_ALGS PKCS9_SMIME_IDS, 3
-+#define PKCS12_VERSION1 PKCS12, 0x0a
-+#define PKCS12_V1_BAG_IDS PKCS12_VERSION1, 1
-+
-+/* for DSA algorithm */
-+/* { iso(1) member-body(2) us(840) x9-57(10040) x9algorithm(4) } */
-+#define ANSI_X9_ALGORITHM 0x2a, 0x86, 0x48, 0xce, 0x38, 0x4
-+
-+/* for DH algorithm */
-+/* { iso(1) member-body(2) us(840) x9-57(10046) number-type(2) } */
-+/* need real OID person to look at this, copied the above line
-+ * and added 6 to second to last value (and changed '4' to '2' */
-+#define ANSI_X942_ALGORITHM 0x2a, 0x86, 0x48, 0xce, 0x3e, 0x2
-+
-+#define VERISIGN 0x60, 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45
-+
-+#define PKIX 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07
-+#define PKIX_CERT_EXTENSIONS PKIX, 1
-+#define PKIX_POLICY_QUALIFIERS PKIX, 2
-+#define PKIX_KEY_USAGE PKIX, 3
-+#define PKIX_ACCESS_DESCRIPTION PKIX, 0x30
-+#define PKIX_OCSP PKIX_ACCESS_DESCRIPTION, 1
-+
-+#define PKIX_ID_PKIP PKIX, 5
-+#define PKIX_ID_REGCTRL PKIX_ID_PKIP, 1
-+#define PKIX_ID_REGINFO PKIX_ID_PKIP, 2
-+
-+/* Microsoft Object ID space */
-+/* { 1.3.6.1.4.1.311 } */
-+#define MICROSOFT_OID 0x2b, 0x6, 0x1, 0x4, 0x1, 0x82, 0x37
-+
-+#define CERTICOM_OID 0x2b, 0x81, 0x04
-+#define SECG_OID CERTICOM_OID, 0x00
-+
-+#define ANSI_X962_OID 0x2a, 0x86, 0x48, 0xce, 0x3d
-+#define ANSI_X962_CURVE_OID ANSI_X962_OID, 0x03
-+#define ANSI_X962_GF2m_OID ANSI_X962_CURVE_OID, 0x00
-+#define ANSI_X962_GFp_OID ANSI_X962_CURVE_OID, 0x01
-+
-+#define CONST_OID static const unsigned char
-+
-+CONST_OID md2[] = { DIGEST, 0x02 };
-+CONST_OID md4[] = { DIGEST, 0x04 };
-+CONST_OID md5[] = { DIGEST, 0x05 };
-+
-+CONST_OID rc2cbc[] = { CIPHER, 0x02 };
-+CONST_OID rc4[] = { CIPHER, 0x04 };
-+CONST_OID desede3cbc[] = { CIPHER, 0x07 };
-+CONST_OID rc5cbcpad[] = { CIPHER, 0x09 };
-+
-+CONST_OID desecb[] = { ALGORITHM, 0x06 };
-+CONST_OID descbc[] = { ALGORITHM, 0x07 };
-+CONST_OID desofb[] = { ALGORITHM, 0x08 };
-+CONST_OID descfb[] = { ALGORITHM, 0x09 };
-+CONST_OID desmac[] = { ALGORITHM, 0x0a };
-+CONST_OID sdn702DSASignature[] = { ALGORITHM, 0x0c };
-+CONST_OID isoSHAWithRSASignature[] = { ALGORITHM, 0x0f };
-+CONST_OID desede[] = { ALGORITHM, 0x11 };
-+CONST_OID sha1[] = { ALGORITHM, 0x1a };
-+CONST_OID bogusDSASignaturewithSHA1Digest[] = { ALGORITHM, 0x1b };
-+
-+CONST_OID pkcs1RSAEncryption[] = { PKCS1, 0x01 };
-+CONST_OID pkcs1MD2WithRSAEncryption[] = { PKCS1, 0x02 };
-+CONST_OID pkcs1MD4WithRSAEncryption[] = { PKCS1, 0x03 };
-+CONST_OID pkcs1MD5WithRSAEncryption[] = { PKCS1, 0x04 };
-+CONST_OID pkcs1SHA1WithRSAEncryption[] = { PKCS1, 0x05 };
-+CONST_OID pkcs1SHA256WithRSAEncryption[] = { PKCS1, 11 };
-+CONST_OID pkcs1SHA384WithRSAEncryption[] = { PKCS1, 12 };
-+CONST_OID pkcs1SHA512WithRSAEncryption[] = { PKCS1, 13 };
-+
-+CONST_OID pkcs5PbeWithMD2AndDEScbc[] = { PKCS5, 0x01 };
-+CONST_OID pkcs5PbeWithMD5AndDEScbc[] = { PKCS5, 0x03 };
-+CONST_OID pkcs5PbeWithSha1AndDEScbc[] = { PKCS5, 0x0a };
-+
-+CONST_OID pkcs7[] = { PKCS7 };
-+CONST_OID pkcs7Data[] = { PKCS7, 0x01 };
-+CONST_OID pkcs7SignedData[] = { PKCS7, 0x02 };
-+CONST_OID pkcs7EnvelopedData[] = { PKCS7, 0x03 };
-+CONST_OID pkcs7SignedEnvelopedData[] = { PKCS7, 0x04 };
-+CONST_OID pkcs7DigestedData[] = { PKCS7, 0x05 };
-+CONST_OID pkcs7EncryptedData[] = { PKCS7, 0x06 };
-+
-+CONST_OID pkcs9EmailAddress[] = { PKCS9, 0x01 };
-+CONST_OID pkcs9UnstructuredName[] = { PKCS9, 0x02 };
-+CONST_OID pkcs9ContentType[] = { PKCS9, 0x03 };
-+CONST_OID pkcs9MessageDigest[] = { PKCS9, 0x04 };
-+CONST_OID pkcs9SigningTime[] = { PKCS9, 0x05 };
-+CONST_OID pkcs9CounterSignature[] = { PKCS9, 0x06 };
-+CONST_OID pkcs9ChallengePassword[] = { PKCS9, 0x07 };
-+CONST_OID pkcs9UnstructuredAddress[] = { PKCS9, 0x08 };
-+CONST_OID pkcs9ExtendedCertificateAttributes[] = { PKCS9, 0x09 };
-+CONST_OID pkcs9SMIMECapabilities[] = { PKCS9, 15 };
-+CONST_OID pkcs9FriendlyName[] = { PKCS9, 20 };
-+CONST_OID pkcs9LocalKeyID[] = { PKCS9, 21 };
-+
-+CONST_OID pkcs9X509Certificate[] = { PKCS9_CERT_TYPES, 1 };
-+CONST_OID pkcs9SDSICertificate[] = { PKCS9_CERT_TYPES, 2 };
-+CONST_OID pkcs9X509CRL[] = { PKCS9_CRL_TYPES, 1 };
-+
-+/* RFC2630 (CMS) OIDs */
-+CONST_OID cmsESDH[] = { PKCS9_SMIME_ALGS, 5 };
-+CONST_OID cms3DESwrap[] = { PKCS9_SMIME_ALGS, 6 };
-+CONST_OID cmsRC2wrap[] = { PKCS9_SMIME_ALGS, 7 };
-+
-+/* RFC2633 SMIME message attributes */
-+CONST_OID smimeEncryptionKeyPreference[] = { PKCS9_SMIME_ATTRS, 11 };
-+CONST_OID ms_smimeEncryptionKeyPreference[] = { MICROSOFT_OID, 0x10, 0x4 };
-+
-+CONST_OID x520CommonName[] = { X520_ATTRIBUTE_TYPE, 3 };
-+CONST_OID x520SurName[] = { X520_ATTRIBUTE_TYPE, 4 };
-+CONST_OID x520SerialNumber[] = { X520_ATTRIBUTE_TYPE, 5 };
-+CONST_OID x520CountryName[] = { X520_ATTRIBUTE_TYPE, 6 };
-+CONST_OID x520LocalityName[] = { X520_ATTRIBUTE_TYPE, 7 };
-+CONST_OID x520StateOrProvinceName[] = { X520_ATTRIBUTE_TYPE, 8 };
-+CONST_OID x520StreetAddress[] = { X520_ATTRIBUTE_TYPE, 9 };
-+CONST_OID x520OrgName[] = { X520_ATTRIBUTE_TYPE, 10 };
-+CONST_OID x520OrgUnitName[] = { X520_ATTRIBUTE_TYPE, 11 };
-+CONST_OID x520Title[] = { X520_ATTRIBUTE_TYPE, 12 };
-+CONST_OID x520PostalAddress[] = { X520_ATTRIBUTE_TYPE, 16 };
-+CONST_OID x520PostalCode[] = { X520_ATTRIBUTE_TYPE, 17 };
-+CONST_OID x520PostOfficeBox[] = { X520_ATTRIBUTE_TYPE, 18 };
-+CONST_OID x520GivenName[] = { X520_ATTRIBUTE_TYPE, 42 };
-+CONST_OID x520Initials[] = { X520_ATTRIBUTE_TYPE, 43 };
-+CONST_OID x520GenerationQualifier[] = { X520_ATTRIBUTE_TYPE, 44 };
-+CONST_OID x520DnQualifier[] = { X520_ATTRIBUTE_TYPE, 46 };
-+CONST_OID x520HouseIdentifier[] = { X520_ATTRIBUTE_TYPE, 51 };
-+CONST_OID x520Pseudonym[] = { X520_ATTRIBUTE_TYPE, 65 };
-+
-+CONST_OID nsTypeGIF[] = { NETSCAPE_DATA_TYPE, 0x01 };
-+CONST_OID nsTypeJPEG[] = { NETSCAPE_DATA_TYPE, 0x02 };
-+CONST_OID nsTypeURL[] = { NETSCAPE_DATA_TYPE, 0x03 };
-+CONST_OID nsTypeHTML[] = { NETSCAPE_DATA_TYPE, 0x04 };
-+CONST_OID nsTypeCertSeq[] = { NETSCAPE_DATA_TYPE, 0x05 };
-+
-+CONST_OID missiCertKEADSSOld[] = { MISSI_OLD_KEA_DSS };
-+CONST_OID missiCertDSSOld[] = { MISSI_OLD_DSS };
-+CONST_OID missiCertKEADSS[] = { MISSI_KEA_DSS };
-+CONST_OID missiCertDSS[] = { MISSI_DSS };
-+CONST_OID missiCertKEA[] = { MISSI_KEA };
-+CONST_OID missiCertAltKEA[] = { MISSI_ALT_KEA };
-+CONST_OID x500RSAEncryption[] = { X500_ALG_ENCRYPTION, 0x01 };
-+
-+/* added for alg 1485 */
-+CONST_OID rfc1274Uid[] = { RFC1274_ATTR_TYPE, 1 };
-+CONST_OID rfc1274Mail[] = { RFC1274_ATTR_TYPE, 3 };
-+CONST_OID rfc2247DomainComponent[] = { RFC1274_ATTR_TYPE, 25 };
-+
-+/* Netscape private certificate extensions */
-+CONST_OID nsCertExtNetscapeOK[] = { NS_CERT_EXT, 1 };
-+CONST_OID nsCertExtIssuerLogo[] = { NS_CERT_EXT, 2 };
-+CONST_OID nsCertExtSubjectLogo[] = { NS_CERT_EXT, 3 };
-+CONST_OID nsExtCertType[] = { NETSCAPE_CERT_EXT, 0x01 };
-+CONST_OID nsExtBaseURL[] = { NETSCAPE_CERT_EXT, 0x02 };
-+CONST_OID nsExtRevocationURL[] = { NETSCAPE_CERT_EXT, 0x03 };
-+CONST_OID nsExtCARevocationURL[] = { NETSCAPE_CERT_EXT, 0x04 };
-+CONST_OID nsExtCACRLURL[] = { NETSCAPE_CERT_EXT, 0x05 };
-+CONST_OID nsExtCACertURL[] = { NETSCAPE_CERT_EXT, 0x06 };
-+CONST_OID nsExtCertRenewalURL[] = { NETSCAPE_CERT_EXT, 0x07 };
-+CONST_OID nsExtCAPolicyURL[] = { NETSCAPE_CERT_EXT, 0x08 };
-+CONST_OID nsExtHomepageURL[] = { NETSCAPE_CERT_EXT, 0x09 };
-+CONST_OID nsExtEntityLogo[] = { NETSCAPE_CERT_EXT, 0x0a };
-+CONST_OID nsExtUserPicture[] = { NETSCAPE_CERT_EXT, 0x0b };
-+CONST_OID nsExtSSLServerName[] = { NETSCAPE_CERT_EXT, 0x0c };
-+CONST_OID nsExtComment[] = { NETSCAPE_CERT_EXT, 0x0d };
-+
-+/* the following 2 extensions are defined for and used by Cartman(NSM) */
-+CONST_OID nsExtLostPasswordURL[] = { NETSCAPE_CERT_EXT, 0x0e };
-+CONST_OID nsExtCertRenewalTime[] = { NETSCAPE_CERT_EXT, 0x0f };
-+
-+CONST_OID nsExtAIACertRenewal[] = { NETSCAPE_CERT_EXT_AIA, 0x01 };
-+CONST_OID nsExtCertScopeOfUse[] = { NETSCAPE_CERT_EXT, 0x11 };
-+/* Reserved Netscape (2 16 840 1 113730 1 18) = { NETSCAPE_CERT_EXT, 0x12 }; */
-+
-+/* Netscape policy values */
-+CONST_OID nsKeyUsageGovtApproved[] = { NETSCAPE_POLICY, 0x01 };
-+
-+/* Netscape other name types */
-+CONST_OID netscapeNickname[] = { NETSCAPE_NAME_COMPONENTS, 0x01 };
-+CONST_OID netscapeAOLScreenname[] = { NETSCAPE_NAME_COMPONENTS, 0x02 };
-+
-+/* OIDs needed for cert server */
-+CONST_OID netscapeRecoveryRequest[] = { NETSCAPE_CERT_SERVER_CRMF, 0x01 };
-+
-+
-+/* Standard x.509 v3 Certificate Extensions */
-+CONST_OID x509SubjectDirectoryAttr[] = { ID_CE_OID, 9 };
-+CONST_OID x509SubjectKeyID[] = { ID_CE_OID, 14 };
-+CONST_OID x509KeyUsage[] = { ID_CE_OID, 15 };
-+CONST_OID x509PrivateKeyUsagePeriod[] = { ID_CE_OID, 16 };
-+CONST_OID x509SubjectAltName[] = { ID_CE_OID, 17 };
-+CONST_OID x509IssuerAltName[] = { ID_CE_OID, 18 };
-+CONST_OID x509BasicConstraints[] = { ID_CE_OID, 19 };
-+CONST_OID x509NameConstraints[] = { ID_CE_OID, 30 };
-+CONST_OID x509CRLDistPoints[] = { ID_CE_OID, 31 };
-+CONST_OID x509CertificatePolicies[] = { ID_CE_OID, 32 };
-+CONST_OID x509PolicyMappings[] = { ID_CE_OID, 33 };
-+CONST_OID x509PolicyConstraints[] = { ID_CE_OID, 34 };
-+CONST_OID x509AuthKeyID[] = { ID_CE_OID, 35 };
-+CONST_OID x509ExtKeyUsage[] = { ID_CE_OID, 37 };
-+CONST_OID x509AuthInfoAccess[] = { PKIX_CERT_EXTENSIONS, 1 };
-+
-+/* Standard x.509 v3 CRL Extensions */
-+CONST_OID x509CrlNumber[] = { ID_CE_OID, 20};
-+CONST_OID x509ReasonCode[] = { ID_CE_OID, 21};
-+CONST_OID x509InvalidDate[] = { ID_CE_OID, 24};
-+
-+/* pkcs 12 additions */
-+CONST_OID pkcs12[] = { PKCS12 };
-+CONST_OID pkcs12ModeIDs[] = { PKCS12_MODE_IDS };
-+CONST_OID pkcs12ESPVKIDs[] = { PKCS12_ESPVK_IDS };
-+CONST_OID pkcs12BagIDs[] = { PKCS12_BAG_IDS };
-+CONST_OID pkcs12CertBagIDs[] = { PKCS12_CERT_BAG_IDS };
-+CONST_OID pkcs12OIDs[] = { PKCS12_OIDS };
-+CONST_OID pkcs12PBEIDs[] = { PKCS12_PBE_IDS };
-+CONST_OID pkcs12EnvelopingIDs[] = { PKCS12_ENVELOPING_IDS };
-+CONST_OID pkcs12SignatureIDs[] = { PKCS12_SIGNATURE_IDS };
-+CONST_OID pkcs12PKCS8KeyShrouding[] = { PKCS12_ESPVK_IDS, 0x01 };
-+CONST_OID pkcs12KeyBagID[] = { PKCS12_BAG_IDS, 0x01 };
-+CONST_OID pkcs12CertAndCRLBagID[] = { PKCS12_BAG_IDS, 0x02 };
-+CONST_OID pkcs12SecretBagID[] = { PKCS12_BAG_IDS, 0x03 };
-+CONST_OID pkcs12X509CertCRLBag[] = { PKCS12_CERT_BAG_IDS, 0x01 };
-+CONST_OID pkcs12SDSICertBag[] = { PKCS12_CERT_BAG_IDS, 0x02 };
-+CONST_OID pkcs12PBEWithSha1And128BitRC4[] = { PKCS12_PBE_IDS, 0x01 };
-+CONST_OID pkcs12PBEWithSha1And40BitRC4[] = { PKCS12_PBE_IDS, 0x02 };
-+CONST_OID pkcs12PBEWithSha1AndTripleDESCBC[] = { PKCS12_PBE_IDS, 0x03 };
-+CONST_OID pkcs12PBEWithSha1And128BitRC2CBC[] = { PKCS12_PBE_IDS, 0x04 };
-+CONST_OID pkcs12PBEWithSha1And40BitRC2CBC[] = { PKCS12_PBE_IDS, 0x05 };
-+CONST_OID pkcs12RSAEncryptionWith128BitRC4[] = { PKCS12_ENVELOPING_IDS, 0x01 };
-+CONST_OID pkcs12RSAEncryptionWith40BitRC4[] = { PKCS12_ENVELOPING_IDS, 0x02 };
-+CONST_OID pkcs12RSAEncryptionWithTripleDES[] = { PKCS12_ENVELOPING_IDS, 0x03 };
-+CONST_OID pkcs12RSASignatureWithSHA1Digest[] = { PKCS12_SIGNATURE_IDS, 0x01 };
-+
-+/* pkcs 12 version 1.0 ids */
-+CONST_OID pkcs12V2PBEWithSha1And128BitRC4[] = { PKCS12_V2_PBE_IDS, 0x01 };
-+CONST_OID pkcs12V2PBEWithSha1And40BitRC4[] = { PKCS12_V2_PBE_IDS, 0x02 };
-+CONST_OID pkcs12V2PBEWithSha1And3KeyTripleDEScbc[]= { PKCS12_V2_PBE_IDS, 0x03 };
-+CONST_OID pkcs12V2PBEWithSha1And2KeyTripleDEScbc[]= { PKCS12_V2_PBE_IDS, 0x04 };
-+CONST_OID pkcs12V2PBEWithSha1And128BitRC2cbc[] = { PKCS12_V2_PBE_IDS, 0x05 };
-+CONST_OID pkcs12V2PBEWithSha1And40BitRC2cbc[] = { PKCS12_V2_PBE_IDS, 0x06 };
-+
-+CONST_OID pkcs12SafeContentsID[] = { PKCS12_BAG_IDS, 0x04 };
-+CONST_OID pkcs12PKCS8ShroudedKeyBagID[] = { PKCS12_BAG_IDS, 0x05 };
-+
-+CONST_OID pkcs12V1KeyBag[] = { PKCS12_V1_BAG_IDS, 0x01 };
-+CONST_OID pkcs12V1PKCS8ShroudedKeyBag[] = { PKCS12_V1_BAG_IDS, 0x02 };
-+CONST_OID pkcs12V1CertBag[] = { PKCS12_V1_BAG_IDS, 0x03 };
-+CONST_OID pkcs12V1CRLBag[] = { PKCS12_V1_BAG_IDS, 0x04 };
-+CONST_OID pkcs12V1SecretBag[] = { PKCS12_V1_BAG_IDS, 0x05 };
-+CONST_OID pkcs12V1SafeContentsBag[] = { PKCS12_V1_BAG_IDS, 0x06 };
-+
-+CONST_OID pkcs12KeyUsageAttr[] = { 2, 5, 29, 15 };
-+
-+CONST_OID ansix9DSASignature[] = { ANSI_X9_ALGORITHM, 0x01 };
-+CONST_OID ansix9DSASignaturewithSHA1Digest[] = { ANSI_X9_ALGORITHM, 0x03 };
-+
-+/* verisign OIDs */
-+CONST_OID verisignUserNotices[] = { VERISIGN, 1, 7, 1, 1 };
-+
-+/* pkix OIDs */
-+CONST_OID pkixCPSPointerQualifier[] = { PKIX_POLICY_QUALIFIERS, 1 };
-+CONST_OID pkixUserNoticeQualifier[] = { PKIX_POLICY_QUALIFIERS, 2 };
-+
-+CONST_OID pkixOCSP[] = { PKIX_OCSP };
-+CONST_OID pkixOCSPBasicResponse[] = { PKIX_OCSP, 1 };
-+CONST_OID pkixOCSPNonce[] = { PKIX_OCSP, 2 };
-+CONST_OID pkixOCSPCRL[] = { PKIX_OCSP, 3 };
-+CONST_OID pkixOCSPResponse[] = { PKIX_OCSP, 4 };
-+CONST_OID pkixOCSPNoCheck[] = { PKIX_OCSP, 5 };
-+CONST_OID pkixOCSPArchiveCutoff[] = { PKIX_OCSP, 6 };
-+CONST_OID pkixOCSPServiceLocator[] = { PKIX_OCSP, 7 };
-+
-+CONST_OID pkixRegCtrlRegToken[] = { PKIX_ID_REGCTRL, 1};
-+CONST_OID pkixRegCtrlAuthenticator[] = { PKIX_ID_REGCTRL, 2};
-+CONST_OID pkixRegCtrlPKIPubInfo[] = { PKIX_ID_REGCTRL, 3};
-+CONST_OID pkixRegCtrlPKIArchOptions[] = { PKIX_ID_REGCTRL, 4};
-+CONST_OID pkixRegCtrlOldCertID[] = { PKIX_ID_REGCTRL, 5};
-+CONST_OID pkixRegCtrlProtEncKey[] = { PKIX_ID_REGCTRL, 6};
-+CONST_OID pkixRegInfoUTF8Pairs[] = { PKIX_ID_REGINFO, 1};
-+CONST_OID pkixRegInfoCertReq[] = { PKIX_ID_REGINFO, 2};
-+
-+CONST_OID pkixExtendedKeyUsageServerAuth[] = { PKIX_KEY_USAGE, 1 };
-+CONST_OID pkixExtendedKeyUsageClientAuth[] = { PKIX_KEY_USAGE, 2 };
-+CONST_OID pkixExtendedKeyUsageCodeSign[] = { PKIX_KEY_USAGE, 3 };
-+CONST_OID pkixExtendedKeyUsageEMailProtect[] = { PKIX_KEY_USAGE, 4 };
-+CONST_OID pkixExtendedKeyUsageTimeStamp[] = { PKIX_KEY_USAGE, 8 };
-+CONST_OID pkixOCSPResponderExtendedKeyUsage[] = { PKIX_KEY_USAGE, 9 };
-+
-+/* OIDs for Netscape defined algorithms */
-+CONST_OID netscapeSMimeKEA[] = { NETSCAPE_ALGS, 0x01 };
-+
-+/* Fortezza algorithm OIDs */
-+CONST_OID skipjackCBC[] = { FORTEZZA_ALG, 0x04 };
-+CONST_OID dhPublicKey[] = { ANSI_X942_ALGORITHM, 0x1 };
-+
-+CONST_OID aes128_ECB[] = { AES, 1 };
-+CONST_OID aes128_CBC[] = { AES, 2 };
-+#ifdef DEFINE_ALL_AES_CIPHERS
-+CONST_OID aes128_OFB[] = { AES, 3 };
-+CONST_OID aes128_CFB[] = { AES, 4 };
-+#endif
-+CONST_OID aes128_KEY_WRAP[] = { AES, 5 };
-+
-+CONST_OID aes192_ECB[] = { AES, 21 };
-+CONST_OID aes192_CBC[] = { AES, 22 };
-+#ifdef DEFINE_ALL_AES_CIPHERS
-+CONST_OID aes192_OFB[] = { AES, 23 };
-+CONST_OID aes192_CFB[] = { AES, 24 };
-+#endif
-+CONST_OID aes192_KEY_WRAP[] = { AES, 25 };
-+
-+CONST_OID aes256_ECB[] = { AES, 41 };
-+CONST_OID aes256_CBC[] = { AES, 42 };
-+#ifdef DEFINE_ALL_AES_CIPHERS
-+CONST_OID aes256_OFB[] = { AES, 43 };
-+CONST_OID aes256_CFB[] = { AES, 44 };
-+#endif
-+CONST_OID aes256_KEY_WRAP[] = { AES, 45 };
-+
-+CONST_OID sha256[] = { SHAXXX, 1 };
-+CONST_OID sha384[] = { SHAXXX, 2 };
-+CONST_OID sha512[] = { SHAXXX, 3 };
-+
-+CONST_OID ansix962ECPublicKey[] = { ANSI_X962_OID, 0x02, 0x01 };
-+CONST_OID ansix962ECDSASignaturewithSHA1Digest[] = { ANSI_X962_OID, 0x04, 0x01 };
-+
-+/* ANSI X9.62 prime curve OIDs */
-+/* NOTE: prime192v1 is the same as secp192r1, prime256v1 is the
-+ * same as secp256r1
-+ */
-+CONST_OID ansiX962prime192v1[] = { ANSI_X962_GFp_OID, 0x01 };
-+CONST_OID ansiX962prime192v2[] = { ANSI_X962_GFp_OID, 0x02 };
-+CONST_OID ansiX962prime192v3[] = { ANSI_X962_GFp_OID, 0x03 };
-+CONST_OID ansiX962prime239v1[] = { ANSI_X962_GFp_OID, 0x04 };
-+CONST_OID ansiX962prime239v2[] = { ANSI_X962_GFp_OID, 0x05 };
-+CONST_OID ansiX962prime239v3[] = { ANSI_X962_GFp_OID, 0x06 };
-+CONST_OID ansiX962prime256v1[] = { ANSI_X962_GFp_OID, 0x07 };
-+
-+/* SECG prime curve OIDs */
-+CONST_OID secgECsecp112r1[] = { SECG_OID, 0x06 };
-+CONST_OID secgECsecp112r2[] = { SECG_OID, 0x07 };
-+CONST_OID secgECsecp128r1[] = { SECG_OID, 0x1c };
-+CONST_OID secgECsecp128r2[] = { SECG_OID, 0x1d };
-+CONST_OID secgECsecp160k1[] = { SECG_OID, 0x09 };
-+CONST_OID secgECsecp160r1[] = { SECG_OID, 0x08 };
-+CONST_OID secgECsecp160r2[] = { SECG_OID, 0x1e };
-+CONST_OID secgECsecp192k1[] = { SECG_OID, 0x1f };
-+CONST_OID secgECsecp224k1[] = { SECG_OID, 0x20 };
-+CONST_OID secgECsecp224r1[] = { SECG_OID, 0x21 };
-+CONST_OID secgECsecp256k1[] = { SECG_OID, 0x0a };
-+CONST_OID secgECsecp384r1[] = { SECG_OID, 0x22 };
-+CONST_OID secgECsecp521r1[] = { SECG_OID, 0x23 };
-+
-+/* ANSI X9.62 characteristic two curve OIDs */
-+CONST_OID ansiX962c2pnb163v1[] = { ANSI_X962_GF2m_OID, 0x01 };
-+CONST_OID ansiX962c2pnb163v2[] = { ANSI_X962_GF2m_OID, 0x02 };
-+CONST_OID ansiX962c2pnb163v3[] = { ANSI_X962_GF2m_OID, 0x03 };
-+CONST_OID ansiX962c2pnb176v1[] = { ANSI_X962_GF2m_OID, 0x04 };
-+CONST_OID ansiX962c2tnb191v1[] = { ANSI_X962_GF2m_OID, 0x05 };
-+CONST_OID ansiX962c2tnb191v2[] = { ANSI_X962_GF2m_OID, 0x06 };
-+CONST_OID ansiX962c2tnb191v3[] = { ANSI_X962_GF2m_OID, 0x07 };
-+CONST_OID ansiX962c2onb191v4[] = { ANSI_X962_GF2m_OID, 0x08 };
-+CONST_OID ansiX962c2onb191v5[] = { ANSI_X962_GF2m_OID, 0x09 };
-+CONST_OID ansiX962c2pnb208w1[] = { ANSI_X962_GF2m_OID, 0x0a };
-+CONST_OID ansiX962c2tnb239v1[] = { ANSI_X962_GF2m_OID, 0x0b };
-+CONST_OID ansiX962c2tnb239v2[] = { ANSI_X962_GF2m_OID, 0x0c };
-+CONST_OID ansiX962c2tnb239v3[] = { ANSI_X962_GF2m_OID, 0x0d };
-+CONST_OID ansiX962c2onb239v4[] = { ANSI_X962_GF2m_OID, 0x0e };
-+CONST_OID ansiX962c2onb239v5[] = { ANSI_X962_GF2m_OID, 0x0f };
-+CONST_OID ansiX962c2pnb272w1[] = { ANSI_X962_GF2m_OID, 0x10 };
-+CONST_OID ansiX962c2pnb304w1[] = { ANSI_X962_GF2m_OID, 0x11 };
-+CONST_OID ansiX962c2tnb359v1[] = { ANSI_X962_GF2m_OID, 0x12 };
-+CONST_OID ansiX962c2pnb368w1[] = { ANSI_X962_GF2m_OID, 0x13 };
-+CONST_OID ansiX962c2tnb431r1[] = { ANSI_X962_GF2m_OID, 0x14 };
-+
-+/* SECG characterisitic two curve OIDs */
-+CONST_OID secgECsect113r1[] = {SECG_OID, 0x04 };
-+CONST_OID secgECsect113r2[] = {SECG_OID, 0x05 };
-+CONST_OID secgECsect131r1[] = {SECG_OID, 0x16 };
-+CONST_OID secgECsect131r2[] = {SECG_OID, 0x17 };
-+CONST_OID secgECsect163k1[] = {SECG_OID, 0x01 };
-+CONST_OID secgECsect163r1[] = {SECG_OID, 0x02 };
-+CONST_OID secgECsect163r2[] = {SECG_OID, 0x0f };
-+CONST_OID secgECsect193r1[] = {SECG_OID, 0x18 };
-+CONST_OID secgECsect193r2[] = {SECG_OID, 0x19 };
-+CONST_OID secgECsect233k1[] = {SECG_OID, 0x1a };
-+CONST_OID secgECsect233r1[] = {SECG_OID, 0x1b };
-+CONST_OID secgECsect239k1[] = {SECG_OID, 0x03 };
-+CONST_OID secgECsect283k1[] = {SECG_OID, 0x10 };
-+CONST_OID secgECsect283r1[] = {SECG_OID, 0x11 };
-+CONST_OID secgECsect409k1[] = {SECG_OID, 0x24 };
-+CONST_OID secgECsect409r1[] = {SECG_OID, 0x25 };
-+CONST_OID secgECsect571k1[] = {SECG_OID, 0x26 };
-+CONST_OID secgECsect571r1[] = {SECG_OID, 0x27 };
-+
-+#define OI(x) { siDEROID, (unsigned char *)x, sizeof x }
-+#ifndef SECOID_NO_STRINGS
-+#define OD(oid,tag,desc,mech,ext) { OI(oid), tag, desc, mech, ext }
-+#else
-+#define OD(oid,tag,desc,mech,ext) { OI(oid), tag, 0, mech, ext }
-+#endif
-+
-+/*
-+ * NOTE: the order of these entries must mach the SECOidTag enum in secoidt.h!
-+ */
-+const static SECOidData oids[] = {
-+ { { siDEROID, NULL, 0 }, SEC_OID_UNKNOWN,
-+ "Unknown OID", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION },
-+ OD( md2, SEC_OID_MD2, "MD2", CKM_MD2, INVALID_CERT_EXTENSION ),
-+ OD( md4, SEC_OID_MD4,
-+ "MD4", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( md5, SEC_OID_MD5, "MD5", CKM_MD5, INVALID_CERT_EXTENSION ),
-+ OD( sha1, SEC_OID_SHA1, "SHA-1", CKM_SHA_1, INVALID_CERT_EXTENSION ),
-+ OD( rc2cbc, SEC_OID_RC2_CBC,
-+ "RC2-CBC", CKM_RC2_CBC, INVALID_CERT_EXTENSION ),
-+ OD( rc4, SEC_OID_RC4, "RC4", CKM_RC4, INVALID_CERT_EXTENSION ),
-+ OD( desede3cbc, SEC_OID_DES_EDE3_CBC,
-+ "DES-EDE3-CBC", CKM_DES3_CBC, INVALID_CERT_EXTENSION ),
-+ OD( rc5cbcpad, SEC_OID_RC5_CBC_PAD,
-+ "RC5-CBCPad", CKM_RC5_CBC, INVALID_CERT_EXTENSION ),
-+ OD( desecb, SEC_OID_DES_ECB,
-+ "DES-ECB", CKM_DES_ECB, INVALID_CERT_EXTENSION ),
-+ OD( descbc, SEC_OID_DES_CBC,
-+ "DES-CBC", CKM_DES_CBC, INVALID_CERT_EXTENSION ),
-+ OD( desofb, SEC_OID_DES_OFB,
-+ "DES-OFB", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( descfb, SEC_OID_DES_CFB,
-+ "DES-CFB", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( desmac, SEC_OID_DES_MAC,
-+ "DES-MAC", CKM_DES_MAC, INVALID_CERT_EXTENSION ),
-+ OD( desede, SEC_OID_DES_EDE,
-+ "DES-EDE", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( isoSHAWithRSASignature, SEC_OID_ISO_SHA_WITH_RSA_SIGNATURE,
-+ "ISO SHA with RSA Signature",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs1RSAEncryption, SEC_OID_PKCS1_RSA_ENCRYPTION,
-+ "PKCS #1 RSA Encryption", CKM_RSA_PKCS, INVALID_CERT_EXTENSION ),
-+
-+ /* the following Signing mechanisms should get new CKM_ values when
-+ * values for CKM_RSA_WITH_MDX and CKM_RSA_WITH_SHA_1 get defined in
-+ * PKCS #11.
-+ */
-+ OD( pkcs1MD2WithRSAEncryption, SEC_OID_PKCS1_MD2_WITH_RSA_ENCRYPTION,
-+ "PKCS #1 MD2 With RSA Encryption", CKM_MD2_RSA_PKCS,
-+ INVALID_CERT_EXTENSION ),
-+ OD( pkcs1MD4WithRSAEncryption, SEC_OID_PKCS1_MD4_WITH_RSA_ENCRYPTION,
-+ "PKCS #1 MD4 With RSA Encryption",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs1MD5WithRSAEncryption, SEC_OID_PKCS1_MD5_WITH_RSA_ENCRYPTION,
-+ "PKCS #1 MD5 With RSA Encryption", CKM_MD5_RSA_PKCS,
-+ INVALID_CERT_EXTENSION ),
-+ OD( pkcs1SHA1WithRSAEncryption, SEC_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION,
-+ "PKCS #1 SHA-1 With RSA Encryption", CKM_SHA1_RSA_PKCS,
-+ INVALID_CERT_EXTENSION ),
-+
-+ OD( pkcs5PbeWithMD2AndDEScbc, SEC_OID_PKCS5_PBE_WITH_MD2_AND_DES_CBC,
-+ "PKCS #5 Password Based Encryption with MD2 and DES CBC",
-+ CKM_PBE_MD2_DES_CBC, INVALID_CERT_EXTENSION ),
-+ OD( pkcs5PbeWithMD5AndDEScbc, SEC_OID_PKCS5_PBE_WITH_MD5_AND_DES_CBC,
-+ "PKCS #5 Password Based Encryption with MD5 and DES CBC",
-+ CKM_PBE_MD5_DES_CBC, INVALID_CERT_EXTENSION ),
-+ OD( pkcs5PbeWithSha1AndDEScbc, SEC_OID_PKCS5_PBE_WITH_SHA1_AND_DES_CBC,
-+ "PKCS #5 Password Based Encryption with SHA1 and DES CBC",
-+ CKM_NETSCAPE_PBE_SHA1_DES_CBC, INVALID_CERT_EXTENSION ),
-+ OD( pkcs7, SEC_OID_PKCS7,
-+ "PKCS #7", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs7Data, SEC_OID_PKCS7_DATA,
-+ "PKCS #7 Data", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs7SignedData, SEC_OID_PKCS7_SIGNED_DATA,
-+ "PKCS #7 Signed Data", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs7EnvelopedData, SEC_OID_PKCS7_ENVELOPED_DATA,
-+ "PKCS #7 Enveloped Data",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs7SignedEnvelopedData, SEC_OID_PKCS7_SIGNED_ENVELOPED_DATA,
-+ "PKCS #7 Signed And Enveloped Data",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs7DigestedData, SEC_OID_PKCS7_DIGESTED_DATA,
-+ "PKCS #7 Digested Data",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs7EncryptedData, SEC_OID_PKCS7_ENCRYPTED_DATA,
-+ "PKCS #7 Encrypted Data",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs9EmailAddress, SEC_OID_PKCS9_EMAIL_ADDRESS,
-+ "PKCS #9 Email Address",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs9UnstructuredName, SEC_OID_PKCS9_UNSTRUCTURED_NAME,
-+ "PKCS #9 Unstructured Name",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs9ContentType, SEC_OID_PKCS9_CONTENT_TYPE,
-+ "PKCS #9 Content Type",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs9MessageDigest, SEC_OID_PKCS9_MESSAGE_DIGEST,
-+ "PKCS #9 Message Digest",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs9SigningTime, SEC_OID_PKCS9_SIGNING_TIME,
-+ "PKCS #9 Signing Time",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs9CounterSignature, SEC_OID_PKCS9_COUNTER_SIGNATURE,
-+ "PKCS #9 Counter Signature",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs9ChallengePassword, SEC_OID_PKCS9_CHALLENGE_PASSWORD,
-+ "PKCS #9 Challenge Password",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs9UnstructuredAddress, SEC_OID_PKCS9_UNSTRUCTURED_ADDRESS,
-+ "PKCS #9 Unstructured Address",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs9ExtendedCertificateAttributes,
-+ SEC_OID_PKCS9_EXTENDED_CERTIFICATE_ATTRIBUTES,
-+ "PKCS #9 Extended Certificate Attributes",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs9SMIMECapabilities, SEC_OID_PKCS9_SMIME_CAPABILITIES,
-+ "PKCS #9 S/MIME Capabilities",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( x520CommonName, SEC_OID_AVA_COMMON_NAME,
-+ "X520 Common Name", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( x520CountryName, SEC_OID_AVA_COUNTRY_NAME,
-+ "X520 Country Name", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( x520LocalityName, SEC_OID_AVA_LOCALITY,
-+ "X520 Locality Name", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( x520StateOrProvinceName, SEC_OID_AVA_STATE_OR_PROVINCE,
-+ "X520 State Or Province Name",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( x520OrgName, SEC_OID_AVA_ORGANIZATION_NAME,
-+ "X520 Organization Name",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( x520OrgUnitName, SEC_OID_AVA_ORGANIZATIONAL_UNIT_NAME,
-+ "X520 Organizational Unit Name",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( x520DnQualifier, SEC_OID_AVA_DN_QUALIFIER,
-+ "X520 DN Qualifier", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( rfc2247DomainComponent, SEC_OID_AVA_DC,
-+ "RFC 2247 Domain Component",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+
-+ OD( nsTypeGIF, SEC_OID_NS_TYPE_GIF,
-+ "GIF", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( nsTypeJPEG, SEC_OID_NS_TYPE_JPEG,
-+ "JPEG", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( nsTypeURL, SEC_OID_NS_TYPE_URL,
-+ "URL", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( nsTypeHTML, SEC_OID_NS_TYPE_HTML,
-+ "HTML", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( nsTypeCertSeq, SEC_OID_NS_TYPE_CERT_SEQUENCE,
-+ "Certificate Sequence",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( missiCertKEADSSOld, SEC_OID_MISSI_KEA_DSS_OLD,
-+ "MISSI KEA and DSS Algorithm (Old)",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( missiCertDSSOld, SEC_OID_MISSI_DSS_OLD,
-+ "MISSI DSS Algorithm (Old)",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( missiCertKEADSS, SEC_OID_MISSI_KEA_DSS,
-+ "MISSI KEA and DSS Algorithm",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( missiCertDSS, SEC_OID_MISSI_DSS,
-+ "MISSI DSS Algorithm",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( missiCertKEA, SEC_OID_MISSI_KEA,
-+ "MISSI KEA Algorithm",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( missiCertAltKEA, SEC_OID_MISSI_ALT_KEA,
-+ "MISSI Alternate KEA Algorithm",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+
-+ /* Netscape private extensions */
-+ OD( nsCertExtNetscapeOK, SEC_OID_NS_CERT_EXT_NETSCAPE_OK,
-+ "Netscape says this cert is OK",
-+ CKM_INVALID_MECHANISM, UNSUPPORTED_CERT_EXTENSION ),
-+ OD( nsCertExtIssuerLogo, SEC_OID_NS_CERT_EXT_ISSUER_LOGO,
-+ "Certificate Issuer Logo",
-+ CKM_INVALID_MECHANISM, UNSUPPORTED_CERT_EXTENSION ),
-+ OD( nsCertExtSubjectLogo, SEC_OID_NS_CERT_EXT_SUBJECT_LOGO,
-+ "Certificate Subject Logo",
-+ CKM_INVALID_MECHANISM, UNSUPPORTED_CERT_EXTENSION ),
-+ OD( nsExtCertType, SEC_OID_NS_CERT_EXT_CERT_TYPE,
-+ "Certificate Type",
-+ CKM_INVALID_MECHANISM, SUPPORTED_CERT_EXTENSION ),
-+ OD( nsExtBaseURL, SEC_OID_NS_CERT_EXT_BASE_URL,
-+ "Certificate Extension Base URL",
-+ CKM_INVALID_MECHANISM, SUPPORTED_CERT_EXTENSION ),
-+ OD( nsExtRevocationURL, SEC_OID_NS_CERT_EXT_REVOCATION_URL,
-+ "Certificate Revocation URL",
-+ CKM_INVALID_MECHANISM, SUPPORTED_CERT_EXTENSION ),
-+ OD( nsExtCARevocationURL, SEC_OID_NS_CERT_EXT_CA_REVOCATION_URL,
-+ "Certificate Authority Revocation URL",
-+ CKM_INVALID_MECHANISM, SUPPORTED_CERT_EXTENSION ),
-+ OD( nsExtCACRLURL, SEC_OID_NS_CERT_EXT_CA_CRL_URL,
-+ "Certificate Authority CRL Download URL",
-+ CKM_INVALID_MECHANISM, UNSUPPORTED_CERT_EXTENSION ),
-+ OD( nsExtCACertURL, SEC_OID_NS_CERT_EXT_CA_CERT_URL,
-+ "Certificate Authority Certificate Download URL",
-+ CKM_INVALID_MECHANISM, UNSUPPORTED_CERT_EXTENSION ),
-+ OD( nsExtCertRenewalURL, SEC_OID_NS_CERT_EXT_CERT_RENEWAL_URL,
-+ "Certificate Renewal URL",
-+ CKM_INVALID_MECHANISM, SUPPORTED_CERT_EXTENSION ),
-+ OD( nsExtCAPolicyURL, SEC_OID_NS_CERT_EXT_CA_POLICY_URL,
-+ "Certificate Authority Policy URL",
-+ CKM_INVALID_MECHANISM, SUPPORTED_CERT_EXTENSION ),
-+ OD( nsExtHomepageURL, SEC_OID_NS_CERT_EXT_HOMEPAGE_URL,
-+ "Certificate Homepage URL",
-+ CKM_INVALID_MECHANISM, UNSUPPORTED_CERT_EXTENSION ),
-+ OD( nsExtEntityLogo, SEC_OID_NS_CERT_EXT_ENTITY_LOGO,
-+ "Certificate Entity Logo",
-+ CKM_INVALID_MECHANISM, UNSUPPORTED_CERT_EXTENSION ),
-+ OD( nsExtUserPicture, SEC_OID_NS_CERT_EXT_USER_PICTURE,
-+ "Certificate User Picture",
-+ CKM_INVALID_MECHANISM, UNSUPPORTED_CERT_EXTENSION ),
-+ OD( nsExtSSLServerName, SEC_OID_NS_CERT_EXT_SSL_SERVER_NAME,
-+ "Certificate SSL Server Name",
-+ CKM_INVALID_MECHANISM, SUPPORTED_CERT_EXTENSION ),
-+ OD( nsExtComment, SEC_OID_NS_CERT_EXT_COMMENT,
-+ "Certificate Comment",
-+ CKM_INVALID_MECHANISM, SUPPORTED_CERT_EXTENSION ),
-+ OD( nsExtLostPasswordURL, SEC_OID_NS_CERT_EXT_LOST_PASSWORD_URL,
-+ "Lost Password URL",
-+ CKM_INVALID_MECHANISM, SUPPORTED_CERT_EXTENSION ),
-+ OD( nsExtCertRenewalTime, SEC_OID_NS_CERT_EXT_CERT_RENEWAL_TIME,
-+ "Certificate Renewal Time",
-+ CKM_INVALID_MECHANISM, SUPPORTED_CERT_EXTENSION ),
-+ OD( nsKeyUsageGovtApproved, SEC_OID_NS_KEY_USAGE_GOVT_APPROVED,
-+ "Strong Crypto Export Approved",
-+ CKM_INVALID_MECHANISM, UNSUPPORTED_CERT_EXTENSION ),
-+
-+
-+ /* x.509 v3 certificate extensions */
-+ OD( x509SubjectDirectoryAttr, SEC_OID_X509_SUBJECT_DIRECTORY_ATTR,
-+ "Certificate Subject Directory Attributes",
-+ CKM_INVALID_MECHANISM, UNSUPPORTED_CERT_EXTENSION),
-+ OD( x509SubjectKeyID, SEC_OID_X509_SUBJECT_KEY_ID,
-+ "Certificate Subject Key ID",
-+ CKM_INVALID_MECHANISM, SUPPORTED_CERT_EXTENSION ),
-+ OD( x509KeyUsage, SEC_OID_X509_KEY_USAGE,
-+ "Certificate Key Usage",
-+ CKM_INVALID_MECHANISM, SUPPORTED_CERT_EXTENSION ),
-+ OD( x509PrivateKeyUsagePeriod, SEC_OID_X509_PRIVATE_KEY_USAGE_PERIOD,
-+ "Certificate Private Key Usage Period",
-+ CKM_INVALID_MECHANISM, UNSUPPORTED_CERT_EXTENSION ),
-+ OD( x509SubjectAltName, SEC_OID_X509_SUBJECT_ALT_NAME,
-+ "Certificate Subject Alt Name",
-+ CKM_INVALID_MECHANISM, SUPPORTED_CERT_EXTENSION ),
-+ OD( x509IssuerAltName, SEC_OID_X509_ISSUER_ALT_NAME,
-+ "Certificate Issuer Alt Name",
-+ CKM_INVALID_MECHANISM, UNSUPPORTED_CERT_EXTENSION ),
-+ OD( x509BasicConstraints, SEC_OID_X509_BASIC_CONSTRAINTS,
-+ "Certificate Basic Constraints",
-+ CKM_INVALID_MECHANISM, SUPPORTED_CERT_EXTENSION ),
-+ OD( x509NameConstraints, SEC_OID_X509_NAME_CONSTRAINTS,
-+ "Certificate Name Constraints",
-+ CKM_INVALID_MECHANISM, SUPPORTED_CERT_EXTENSION ),
-+ OD( x509CRLDistPoints, SEC_OID_X509_CRL_DIST_POINTS,
-+ "CRL Distribution Points",
-+ CKM_INVALID_MECHANISM, UNSUPPORTED_CERT_EXTENSION ),
-+ OD( x509CertificatePolicies, SEC_OID_X509_CERTIFICATE_POLICIES,
-+ "Certificate Policies",
-+ CKM_INVALID_MECHANISM, UNSUPPORTED_CERT_EXTENSION ),
-+ OD( x509PolicyMappings, SEC_OID_X509_POLICY_MAPPINGS,
-+ "Certificate Policy Mappings",
-+ CKM_INVALID_MECHANISM, UNSUPPORTED_CERT_EXTENSION ),
-+ OD( x509PolicyConstraints, SEC_OID_X509_POLICY_CONSTRAINTS,
-+ "Certificate Policy Constraints",
-+ CKM_INVALID_MECHANISM, UNSUPPORTED_CERT_EXTENSION ),
-+ OD( x509AuthKeyID, SEC_OID_X509_AUTH_KEY_ID,
-+ "Certificate Authority Key Identifier",
-+ CKM_INVALID_MECHANISM, SUPPORTED_CERT_EXTENSION ),
-+ OD( x509ExtKeyUsage, SEC_OID_X509_EXT_KEY_USAGE,
-+ "Extended Key Usage",
-+ CKM_INVALID_MECHANISM, SUPPORTED_CERT_EXTENSION ),
-+ OD( x509AuthInfoAccess, SEC_OID_X509_AUTH_INFO_ACCESS,
-+ "Authority Information Access",
-+ CKM_INVALID_MECHANISM, SUPPORTED_CERT_EXTENSION ),
-+
-+ /* x.509 v3 CRL extensions */
-+ OD( x509CrlNumber, SEC_OID_X509_CRL_NUMBER,
-+ "CRL Number", CKM_INVALID_MECHANISM, SUPPORTED_CERT_EXTENSION ),
-+ OD( x509ReasonCode, SEC_OID_X509_REASON_CODE,
-+ "CRL reason code", CKM_INVALID_MECHANISM, SUPPORTED_CERT_EXTENSION ),
-+ OD( x509InvalidDate, SEC_OID_X509_INVALID_DATE,
-+ "Invalid Date", CKM_INVALID_MECHANISM, SUPPORTED_CERT_EXTENSION ),
-+
-+ OD( x500RSAEncryption, SEC_OID_X500_RSA_ENCRYPTION,
-+ "X500 RSA Encryption", CKM_RSA_X_509, INVALID_CERT_EXTENSION ),
-+
-+ /* added for alg 1485 */
-+ OD( rfc1274Uid, SEC_OID_RFC1274_UID,
-+ "RFC1274 User Id", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( rfc1274Mail, SEC_OID_RFC1274_MAIL,
-+ "RFC1274 E-mail Address",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+
-+ /* pkcs 12 additions */
-+ OD( pkcs12, SEC_OID_PKCS12,
-+ "PKCS #12", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12ModeIDs, SEC_OID_PKCS12_MODE_IDS,
-+ "PKCS #12 Mode IDs", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12ESPVKIDs, SEC_OID_PKCS12_ESPVK_IDS,
-+ "PKCS #12 ESPVK IDs", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12BagIDs, SEC_OID_PKCS12_BAG_IDS,
-+ "PKCS #12 Bag IDs", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12CertBagIDs, SEC_OID_PKCS12_CERT_BAG_IDS,
-+ "PKCS #12 Cert Bag IDs",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12OIDs, SEC_OID_PKCS12_OIDS,
-+ "PKCS #12 OIDs", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12PBEIDs, SEC_OID_PKCS12_PBE_IDS,
-+ "PKCS #12 PBE IDs", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12SignatureIDs, SEC_OID_PKCS12_SIGNATURE_IDS,
-+ "PKCS #12 Signature IDs",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12EnvelopingIDs, SEC_OID_PKCS12_ENVELOPING_IDS,
-+ "PKCS #12 Enveloping IDs",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12PKCS8KeyShrouding, SEC_OID_PKCS12_PKCS8_KEY_SHROUDING,
-+ "PKCS #12 Key Shrouding",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12KeyBagID, SEC_OID_PKCS12_KEY_BAG_ID,
-+ "PKCS #12 Key Bag ID",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12CertAndCRLBagID, SEC_OID_PKCS12_CERT_AND_CRL_BAG_ID,
-+ "PKCS #12 Cert And CRL Bag ID",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12SecretBagID, SEC_OID_PKCS12_SECRET_BAG_ID,
-+ "PKCS #12 Secret Bag ID",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12X509CertCRLBag, SEC_OID_PKCS12_X509_CERT_CRL_BAG,
-+ "PKCS #12 X509 Cert CRL Bag",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12SDSICertBag, SEC_OID_PKCS12_SDSI_CERT_BAG,
-+ "PKCS #12 SDSI Cert Bag",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12PBEWithSha1And128BitRC4,
-+ SEC_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC4,
-+ "PKCS #12 PBE With Sha1 and 128 Bit RC4",
-+ CKM_NETSCAPE_PBE_SHA1_128_BIT_RC4, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12PBEWithSha1And40BitRC4,
-+ SEC_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC4,
-+ "PKCS #12 PBE With Sha1 and 40 Bit RC4",
-+ CKM_NETSCAPE_PBE_SHA1_40_BIT_RC4, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12PBEWithSha1AndTripleDESCBC,
-+ SEC_OID_PKCS12_PBE_WITH_SHA1_AND_TRIPLE_DES_CBC,
-+ "PKCS #12 PBE With Sha1 and Triple DES CBC",
-+ CKM_NETSCAPE_PBE_SHA1_TRIPLE_DES_CBC, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12PBEWithSha1And128BitRC2CBC,
-+ SEC_OID_PKCS12_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC,
-+ "PKCS #12 PBE With Sha1 and 128 Bit RC2 CBC",
-+ CKM_NETSCAPE_PBE_SHA1_128_BIT_RC2_CBC, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12PBEWithSha1And40BitRC2CBC,
-+ SEC_OID_PKCS12_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC,
-+ "PKCS #12 PBE With Sha1 and 40 Bit RC2 CBC",
-+ CKM_NETSCAPE_PBE_SHA1_40_BIT_RC2_CBC, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12RSAEncryptionWith128BitRC4,
-+ SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_128_BIT_RC4,
-+ "PKCS #12 RSA Encryption with 128 Bit RC4",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12RSAEncryptionWith40BitRC4,
-+ SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_40_BIT_RC4,
-+ "PKCS #12 RSA Encryption with 40 Bit RC4",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12RSAEncryptionWithTripleDES,
-+ SEC_OID_PKCS12_RSA_ENCRYPTION_WITH_TRIPLE_DES,
-+ "PKCS #12 RSA Encryption with Triple DES",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12RSASignatureWithSHA1Digest,
-+ SEC_OID_PKCS12_RSA_SIGNATURE_WITH_SHA1_DIGEST,
-+ "PKCS #12 RSA Encryption with Triple DES",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+
-+ /* DSA signatures */
-+ OD( ansix9DSASignature, SEC_OID_ANSIX9_DSA_SIGNATURE,
-+ "ANSI X9.57 DSA Signature", CKM_DSA, INVALID_CERT_EXTENSION ),
-+ OD( ansix9DSASignaturewithSHA1Digest,
-+ SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST,
-+ "ANSI X9.57 DSA Signature with SHA1 Digest",
-+ CKM_DSA_SHA1, INVALID_CERT_EXTENSION ),
-+ OD( bogusDSASignaturewithSHA1Digest,
-+ SEC_OID_BOGUS_DSA_SIGNATURE_WITH_SHA1_DIGEST,
-+ "FORTEZZA DSA Signature with SHA1 Digest",
-+ CKM_DSA_SHA1, INVALID_CERT_EXTENSION ),
-+
-+ /* verisign oids */
-+ OD( verisignUserNotices, SEC_OID_VERISIGN_USER_NOTICES,
-+ "Verisign User Notices",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+
-+ /* pkix oids */
-+ OD( pkixCPSPointerQualifier, SEC_OID_PKIX_CPS_POINTER_QUALIFIER,
-+ "PKIX CPS Pointer Qualifier",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkixUserNoticeQualifier, SEC_OID_PKIX_USER_NOTICE_QUALIFIER,
-+ "PKIX User Notice Qualifier",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+
-+ OD( pkixOCSP, SEC_OID_PKIX_OCSP,
-+ "PKIX Online Certificate Status Protocol",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkixOCSPBasicResponse, SEC_OID_PKIX_OCSP_BASIC_RESPONSE,
-+ "OCSP Basic Response", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkixOCSPNonce, SEC_OID_PKIX_OCSP_NONCE,
-+ "OCSP Nonce Extension", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkixOCSPCRL, SEC_OID_PKIX_OCSP_CRL,
-+ "OCSP CRL Reference Extension",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkixOCSPResponse, SEC_OID_PKIX_OCSP_RESPONSE,
-+ "OCSP Response Types Extension",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkixOCSPNoCheck, SEC_OID_PKIX_OCSP_NO_CHECK,
-+ "OCSP No Check Extension",
-+ CKM_INVALID_MECHANISM, SUPPORTED_CERT_EXTENSION ),
-+ OD( pkixOCSPArchiveCutoff, SEC_OID_PKIX_OCSP_ARCHIVE_CUTOFF,
-+ "OCSP Archive Cutoff Extension",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkixOCSPServiceLocator, SEC_OID_PKIX_OCSP_SERVICE_LOCATOR,
-+ "OCSP Service Locator Extension",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+
-+ OD( pkixRegCtrlRegToken, SEC_OID_PKIX_REGCTRL_REGTOKEN,
-+ "PKIX CRMF Registration Control, Registration Token",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkixRegCtrlAuthenticator, SEC_OID_PKIX_REGCTRL_AUTHENTICATOR,
-+ "PKIX CRMF Registration Control, Registration Authenticator",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkixRegCtrlPKIPubInfo, SEC_OID_PKIX_REGCTRL_PKIPUBINFO,
-+ "PKIX CRMF Registration Control, PKI Publication Info",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION),
-+ OD( pkixRegCtrlPKIArchOptions,
-+ SEC_OID_PKIX_REGCTRL_PKI_ARCH_OPTIONS,
-+ "PKIX CRMF Registration Control, PKI Archive Options",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION),
-+ OD( pkixRegCtrlOldCertID, SEC_OID_PKIX_REGCTRL_OLD_CERT_ID,
-+ "PKIX CRMF Registration Control, Old Certificate ID",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION),
-+ OD( pkixRegCtrlProtEncKey, SEC_OID_PKIX_REGCTRL_PROTOCOL_ENC_KEY,
-+ "PKIX CRMF Registration Control, Protocol Encryption Key",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION),
-+ OD( pkixRegInfoUTF8Pairs, SEC_OID_PKIX_REGINFO_UTF8_PAIRS,
-+ "PKIX CRMF Registration Info, UTF8 Pairs",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION),
-+ OD( pkixRegInfoCertReq, SEC_OID_PKIX_REGINFO_CERT_REQUEST,
-+ "PKIX CRMF Registration Info, Certificate Request",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION),
-+ OD( pkixExtendedKeyUsageServerAuth,
-+ SEC_OID_EXT_KEY_USAGE_SERVER_AUTH,
-+ "TLS Web Server Authentication Certificate",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION),
-+ OD( pkixExtendedKeyUsageClientAuth,
-+ SEC_OID_EXT_KEY_USAGE_CLIENT_AUTH,
-+ "TLS Web Client Authentication Certificate",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION),
-+ OD( pkixExtendedKeyUsageCodeSign, SEC_OID_EXT_KEY_USAGE_CODE_SIGN,
-+ "Code Signing Certificate",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION),
-+ OD( pkixExtendedKeyUsageEMailProtect,
-+ SEC_OID_EXT_KEY_USAGE_EMAIL_PROTECT,
-+ "E-Mail Protection Certificate",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION),
-+ OD( pkixExtendedKeyUsageTimeStamp,
-+ SEC_OID_EXT_KEY_USAGE_TIME_STAMP,
-+ "Time Stamping Certifcate",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION),
-+ OD( pkixOCSPResponderExtendedKeyUsage, SEC_OID_OCSP_RESPONDER,
-+ "OCSP Responder Certificate",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION),
-+
-+ /* Netscape Algorithm OIDs */
-+
-+ OD( netscapeSMimeKEA, SEC_OID_NETSCAPE_SMIME_KEA,
-+ "Netscape S/MIME KEA", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+
-+ /* Skipjack OID -- ### mwelch temporary */
-+ OD( skipjackCBC, SEC_OID_FORTEZZA_SKIPJACK,
-+ "Skipjack CBC64", CKM_SKIPJACK_CBC64, INVALID_CERT_EXTENSION ),
-+
-+ /* pkcs12 v2 oids */
-+ OD( pkcs12V2PBEWithSha1And128BitRC4,
-+ SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC4,
-+ "PKCS12 V2 PBE With SHA1 And 128 Bit RC4",
-+ CKM_PBE_SHA1_RC4_128, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12V2PBEWithSha1And40BitRC4,
-+ SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC4,
-+ "PKCS12 V2 PBE With SHA1 And 40 Bit RC4",
-+ CKM_PBE_SHA1_RC4_40, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12V2PBEWithSha1And3KeyTripleDEScbc,
-+ SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_3KEY_TRIPLE_DES_CBC,
-+ "PKCS12 V2 PBE With SHA1 And 3KEY Triple DES-cbc",
-+ CKM_PBE_SHA1_DES3_EDE_CBC, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12V2PBEWithSha1And2KeyTripleDEScbc,
-+ SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_2KEY_TRIPLE_DES_CBC,
-+ "PKCS12 V2 PBE With SHA1 And 2KEY Triple DES-cbc",
-+ CKM_PBE_SHA1_DES2_EDE_CBC, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12V2PBEWithSha1And128BitRC2cbc,
-+ SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_128_BIT_RC2_CBC,
-+ "PKCS12 V2 PBE With SHA1 And 128 Bit RC2 CBC",
-+ CKM_PBE_SHA1_RC2_128_CBC, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12V2PBEWithSha1And40BitRC2cbc,
-+ SEC_OID_PKCS12_V2_PBE_WITH_SHA1_AND_40_BIT_RC2_CBC,
-+ "PKCS12 V2 PBE With SHA1 And 40 Bit RC2 CBC",
-+ CKM_PBE_SHA1_RC2_40_CBC, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12SafeContentsID, SEC_OID_PKCS12_SAFE_CONTENTS_ID,
-+ "PKCS #12 Safe Contents ID",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12PKCS8ShroudedKeyBagID,
-+ SEC_OID_PKCS12_PKCS8_SHROUDED_KEY_BAG_ID,
-+ "PKCS #12 Safe Contents ID",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12V1KeyBag, SEC_OID_PKCS12_V1_KEY_BAG_ID,
-+ "PKCS #12 V1 Key Bag",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12V1PKCS8ShroudedKeyBag,
-+ SEC_OID_PKCS12_V1_PKCS8_SHROUDED_KEY_BAG_ID,
-+ "PKCS #12 V1 PKCS8 Shrouded Key Bag",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12V1CertBag, SEC_OID_PKCS12_V1_CERT_BAG_ID,
-+ "PKCS #12 V1 Cert Bag",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12V1CRLBag, SEC_OID_PKCS12_V1_CRL_BAG_ID,
-+ "PKCS #12 V1 CRL Bag",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12V1SecretBag, SEC_OID_PKCS12_V1_SECRET_BAG_ID,
-+ "PKCS #12 V1 Secret Bag",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12V1SafeContentsBag, SEC_OID_PKCS12_V1_SAFE_CONTENTS_BAG_ID,
-+ "PKCS #12 V1 Safe Contents Bag",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+
-+ OD( pkcs9X509Certificate, SEC_OID_PKCS9_X509_CERT,
-+ "PKCS #9 X509 Certificate",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs9SDSICertificate, SEC_OID_PKCS9_SDSI_CERT,
-+ "PKCS #9 SDSI Certificate",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs9X509CRL, SEC_OID_PKCS9_X509_CRL,
-+ "PKCS #9 X509 CRL", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs9FriendlyName, SEC_OID_PKCS9_FRIENDLY_NAME,
-+ "PKCS #9 Friendly Name",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs9LocalKeyID, SEC_OID_PKCS9_LOCAL_KEY_ID,
-+ "PKCS #9 Local Key ID",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( pkcs12KeyUsageAttr, SEC_OID_PKCS12_KEY_USAGE,
-+ "PKCS 12 Key Usage", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( dhPublicKey, SEC_OID_X942_DIFFIE_HELMAN_KEY,
-+ "Diffie-Helman Public Key", CKM_DH_PKCS_DERIVE,
-+ INVALID_CERT_EXTENSION ),
-+ OD( netscapeNickname, SEC_OID_NETSCAPE_NICKNAME,
-+ "Netscape Nickname", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+
-+ /* Cert Server specific OIDs */
-+ OD( netscapeRecoveryRequest, SEC_OID_NETSCAPE_RECOVERY_REQUEST,
-+ "Recovery Request OID",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+
-+ OD( nsExtAIACertRenewal, SEC_OID_CERT_RENEWAL_LOCATOR,
-+ "Certificate Renewal Locator OID", CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+
-+ OD( nsExtCertScopeOfUse, SEC_OID_NS_CERT_EXT_SCOPE_OF_USE,
-+ "Certificate Scope-of-Use Extension", CKM_INVALID_MECHANISM,
-+ SUPPORTED_CERT_EXTENSION ),
-+
-+ /* CMS stuff */
-+ OD( cmsESDH, SEC_OID_CMS_EPHEMERAL_STATIC_DIFFIE_HELLMAN,
-+ "Ephemeral-Static Diffie-Hellman", CKM_INVALID_MECHANISM /* XXX */,
-+ INVALID_CERT_EXTENSION ),
-+ OD( cms3DESwrap, SEC_OID_CMS_3DES_KEY_WRAP,
-+ "CMS 3DES Key Wrap", CKM_INVALID_MECHANISM /* XXX */,
-+ INVALID_CERT_EXTENSION ),
-+ OD( cmsRC2wrap, SEC_OID_CMS_RC2_KEY_WRAP,
-+ "CMS RC2 Key Wrap", CKM_INVALID_MECHANISM /* XXX */,
-+ INVALID_CERT_EXTENSION ),
-+ OD( smimeEncryptionKeyPreference, SEC_OID_SMIME_ENCRYPTION_KEY_PREFERENCE,
-+ "S/MIME Encryption Key Preference",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+
-+ /* AES algorithm OIDs */
-+ OD( aes128_ECB, SEC_OID_AES_128_ECB,
-+ "AES-128-ECB", CKM_AES_ECB, INVALID_CERT_EXTENSION ),
-+ OD( aes128_CBC, SEC_OID_AES_128_CBC,
-+ "AES-128-CBC", CKM_AES_CBC, INVALID_CERT_EXTENSION ),
-+ OD( aes192_ECB, SEC_OID_AES_192_ECB,
-+ "AES-192-ECB", CKM_AES_ECB, INVALID_CERT_EXTENSION ),
-+ OD( aes192_CBC, SEC_OID_AES_192_CBC,
-+ "AES-192-CBC", CKM_AES_CBC, INVALID_CERT_EXTENSION ),
-+ OD( aes256_ECB, SEC_OID_AES_256_ECB,
-+ "AES-256-ECB", CKM_AES_ECB, INVALID_CERT_EXTENSION ),
-+ OD( aes256_CBC, SEC_OID_AES_256_CBC,
-+ "AES-256-CBC", CKM_AES_CBC, INVALID_CERT_EXTENSION ),
-+
-+ /* More bogus DSA OIDs */
-+ OD( sdn702DSASignature, SEC_OID_SDN702_DSA_SIGNATURE,
-+ "SDN.702 DSA Signature", CKM_DSA_SHA1, INVALID_CERT_EXTENSION ),
-+
-+ OD( ms_smimeEncryptionKeyPreference,
-+ SEC_OID_MS_SMIME_ENCRYPTION_KEY_PREFERENCE,
-+ "Microsoft S/MIME Encryption Key Preference",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+
-+ OD( sha256, SEC_OID_SHA256, "SHA-256", CKM_SHA256, INVALID_CERT_EXTENSION),
-+ OD( sha384, SEC_OID_SHA384, "SHA-384", CKM_SHA384, INVALID_CERT_EXTENSION),
-+ OD( sha512, SEC_OID_SHA512, "SHA-512", CKM_SHA512, INVALID_CERT_EXTENSION),
-+
-+ OD( pkcs1SHA256WithRSAEncryption, SEC_OID_PKCS1_SHA256_WITH_RSA_ENCRYPTION,
-+ "PKCS #1 SHA-256 With RSA Encryption", CKM_SHA256_RSA_PKCS,
-+ INVALID_CERT_EXTENSION ),
-+ OD( pkcs1SHA384WithRSAEncryption, SEC_OID_PKCS1_SHA384_WITH_RSA_ENCRYPTION,
-+ "PKCS #1 SHA-384 With RSA Encryption", CKM_SHA384_RSA_PKCS,
-+ INVALID_CERT_EXTENSION ),
-+ OD( pkcs1SHA512WithRSAEncryption, SEC_OID_PKCS1_SHA512_WITH_RSA_ENCRYPTION,
-+ "PKCS #1 SHA-512 With RSA Encryption", CKM_SHA512_RSA_PKCS,
-+ INVALID_CERT_EXTENSION ),
-+
-+ OD( aes128_KEY_WRAP, SEC_OID_AES_128_KEY_WRAP,
-+ "AES-128 Key Wrap", CKM_NETSCAPE_AES_KEY_WRAP, INVALID_CERT_EXTENSION),
-+ OD( aes192_KEY_WRAP, SEC_OID_AES_192_KEY_WRAP,
-+ "AES-192 Key Wrap", CKM_NETSCAPE_AES_KEY_WRAP, INVALID_CERT_EXTENSION),
-+ OD( aes256_KEY_WRAP, SEC_OID_AES_256_KEY_WRAP,
-+ "AES-256 Key Wrap", CKM_NETSCAPE_AES_KEY_WRAP, INVALID_CERT_EXTENSION),
-+
-+ /* Elliptic Curve Cryptography (ECC) OIDs */
-+ OD( ansix962ECPublicKey, SEC_OID_ANSIX962_EC_PUBLIC_KEY,
-+ "X9.62 elliptic curve public key", CKM_ECDH1_DERIVE,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansix962ECDSASignaturewithSHA1Digest,
-+ SEC_OID_ANSIX962_ECDSA_SIGNATURE_WITH_SHA1_DIGEST,
-+ "X9.62 ECDSA signature with SHA1", CKM_ECDSA_SHA1,
-+ INVALID_CERT_EXTENSION ),
-+
-+ /* Named curves */
-+
-+ /* ANSI X9.62 named elliptic curves (prime field) */
-+ OD( ansiX962prime192v1, SEC_OID_ANSIX962_EC_PRIME192V1,
-+ "ANSI X9.62 elliptic curve prime192v1 (aka secp192r1, NIST P-192)",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansiX962prime192v2, SEC_OID_ANSIX962_EC_PRIME192V2,
-+ "ANSI X9.62 elliptic curve prime192v2",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansiX962prime192v3, SEC_OID_ANSIX962_EC_PRIME192V3,
-+ "ANSI X9.62 elliptic curve prime192v3",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansiX962prime239v1, SEC_OID_ANSIX962_EC_PRIME239V1,
-+ "ANSI X9.62 elliptic curve prime239v1",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansiX962prime239v2, SEC_OID_ANSIX962_EC_PRIME239V2,
-+ "ANSI X9.62 elliptic curve prime239v2",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansiX962prime239v3, SEC_OID_ANSIX962_EC_PRIME239V3,
-+ "ANSI X9.62 elliptic curve prime239v3",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansiX962prime256v1, SEC_OID_ANSIX962_EC_PRIME256V1,
-+ "ANSI X9.62 elliptic curve prime256v1 (aka secp256r1, NIST P-256)",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+
-+ /* SECG named elliptic curves (prime field) */
-+ OD( secgECsecp112r1, SEC_OID_SECG_EC_SECP112R1,
-+ "SECG elliptic curve secp112r1",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsecp112r2, SEC_OID_SECG_EC_SECP112R2,
-+ "SECG elliptic curve secp112r2",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsecp128r1, SEC_OID_SECG_EC_SECP128R1,
-+ "SECG elliptic curve secp128r1",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsecp128r2, SEC_OID_SECG_EC_SECP128R2,
-+ "SECG elliptic curve secp128r2",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsecp160k1, SEC_OID_SECG_EC_SECP160K1,
-+ "SECG elliptic curve secp160k1",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsecp160r1, SEC_OID_SECG_EC_SECP160R1,
-+ "SECG elliptic curve secp160r1",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsecp160r2, SEC_OID_SECG_EC_SECP160R2,
-+ "SECG elliptic curve secp160r2",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsecp192k1, SEC_OID_SECG_EC_SECP192K1,
-+ "SECG elliptic curve secp192k1",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsecp224k1, SEC_OID_SECG_EC_SECP224K1,
-+ "SECG elliptic curve secp224k1",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsecp224r1, SEC_OID_SECG_EC_SECP224R1,
-+ "SECG elliptic curve secp224r1 (aka NIST P-224)",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsecp256k1, SEC_OID_SECG_EC_SECP256K1,
-+ "SECG elliptic curve secp256k1",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsecp384r1, SEC_OID_SECG_EC_SECP384R1,
-+ "SECG elliptic curve secp384r1 (aka NIST P-384)",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsecp521r1, SEC_OID_SECG_EC_SECP521R1,
-+ "SECG elliptic curve secp521r1 (aka NIST P-521)",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+
-+ /* ANSI X9.62 named elliptic curves (characteristic two field) */
-+ OD( ansiX962c2pnb163v1, SEC_OID_ANSIX962_EC_C2PNB163V1,
-+ "ANSI X9.62 elliptic curve c2pnb163v1",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansiX962c2pnb163v2, SEC_OID_ANSIX962_EC_C2PNB163V2,
-+ "ANSI X9.62 elliptic curve c2pnb163v2",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansiX962c2pnb163v3, SEC_OID_ANSIX962_EC_C2PNB163V3,
-+ "ANSI X9.62 elliptic curve c2pnb163v3",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansiX962c2pnb176v1, SEC_OID_ANSIX962_EC_C2PNB176V1,
-+ "ANSI X9.62 elliptic curve c2pnb176v1",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansiX962c2tnb191v1, SEC_OID_ANSIX962_EC_C2TNB191V1,
-+ "ANSI X9.62 elliptic curve c2tnb191v1",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansiX962c2tnb191v2, SEC_OID_ANSIX962_EC_C2TNB191V2,
-+ "ANSI X9.62 elliptic curve c2tnb191v2",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansiX962c2tnb191v3, SEC_OID_ANSIX962_EC_C2TNB191V3,
-+ "ANSI X9.62 elliptic curve c2tnb191v3",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansiX962c2onb191v4, SEC_OID_ANSIX962_EC_C2ONB191V4,
-+ "ANSI X9.62 elliptic curve c2onb191v4",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansiX962c2onb191v5, SEC_OID_ANSIX962_EC_C2ONB191V5,
-+ "ANSI X9.62 elliptic curve c2onb191v5",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansiX962c2pnb208w1, SEC_OID_ANSIX962_EC_C2PNB208W1,
-+ "ANSI X9.62 elliptic curve c2pnb208w1",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansiX962c2tnb239v1, SEC_OID_ANSIX962_EC_C2TNB239V1,
-+ "ANSI X9.62 elliptic curve c2tnb239v1",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansiX962c2tnb239v2, SEC_OID_ANSIX962_EC_C2TNB239V2,
-+ "ANSI X9.62 elliptic curve c2tnb239v2",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansiX962c2tnb239v3, SEC_OID_ANSIX962_EC_C2TNB239V3,
-+ "ANSI X9.62 elliptic curve c2tnb239v3",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansiX962c2onb239v4, SEC_OID_ANSIX962_EC_C2ONB239V4,
-+ "ANSI X9.62 elliptic curve c2onb239v4",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansiX962c2onb239v5, SEC_OID_ANSIX962_EC_C2ONB239V5,
-+ "ANSI X9.62 elliptic curve c2onb239v5",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansiX962c2pnb272w1, SEC_OID_ANSIX962_EC_C2PNB272W1,
-+ "ANSI X9.62 elliptic curve c2pnb272w1",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansiX962c2pnb304w1, SEC_OID_ANSIX962_EC_C2PNB304W1,
-+ "ANSI X9.62 elliptic curve c2pnb304w1",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansiX962c2tnb359v1, SEC_OID_ANSIX962_EC_C2TNB359V1,
-+ "ANSI X9.62 elliptic curve c2tnb359v1",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansiX962c2pnb368w1, SEC_OID_ANSIX962_EC_C2PNB368W1,
-+ "ANSI X9.62 elliptic curve c2pnb368w1",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( ansiX962c2tnb431r1, SEC_OID_ANSIX962_EC_C2TNB431R1,
-+ "ANSI X9.62 elliptic curve c2tnb431r1",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+
-+ /* SECG named elliptic curves (characterisitic two field) */
-+ OD( secgECsect113r1, SEC_OID_SECG_EC_SECT113R1,
-+ "SECG elliptic curve sect113r1",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsect113r2, SEC_OID_SECG_EC_SECT113R2,
-+ "SECG elliptic curve sect113r2",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsect131r1, SEC_OID_SECG_EC_SECT131R1,
-+ "SECG elliptic curve sect131r1",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsect131r2, SEC_OID_SECG_EC_SECT131R2,
-+ "SECG elliptic curve sect131r2",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsect163k1, SEC_OID_SECG_EC_SECT163K1,
-+ "SECG elliptic curve sect163k1 (aka NIST K-163)",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsect163r1, SEC_OID_SECG_EC_SECT163R1,
-+ "SECG elliptic curve sect163r1",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsect163r2, SEC_OID_SECG_EC_SECT163R2,
-+ "SECG elliptic curve sect163r2 (aka NIST B-163)",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsect193r1, SEC_OID_SECG_EC_SECT193R1,
-+ "SECG elliptic curve sect193r1",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsect193r2, SEC_OID_SECG_EC_SECT193R2,
-+ "SECG elliptic curve sect193r2",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsect233k1, SEC_OID_SECG_EC_SECT233K1,
-+ "SECG elliptic curve sect233k1 (aka NIST K-233)",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsect233r1, SEC_OID_SECG_EC_SECT233R1,
-+ "SECG elliptic curve sect233r1 (aka NIST B-233)",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsect239k1, SEC_OID_SECG_EC_SECT239K1,
-+ "SECG elliptic curve sect239k1",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsect283k1, SEC_OID_SECG_EC_SECT283K1,
-+ "SECG elliptic curve sect283k1 (aka NIST K-283)",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsect283r1, SEC_OID_SECG_EC_SECT283R1,
-+ "SECG elliptic curve sect283r1 (aka NIST B-283)",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsect409k1, SEC_OID_SECG_EC_SECT409K1,
-+ "SECG elliptic curve sect409k1 (aka NIST K-409)",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsect409r1, SEC_OID_SECG_EC_SECT409R1,
-+ "SECG elliptic curve sect409r1 (aka NIST B-409)",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsect571k1, SEC_OID_SECG_EC_SECT571K1,
-+ "SECG elliptic curve sect571k1 (aka NIST K-571)",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+ OD( secgECsect571r1, SEC_OID_SECG_EC_SECT571R1,
-+ "SECG elliptic curve sect571r1 (aka NIST B-571)",
-+ CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+
-+ OD( netscapeAOLScreenname, SEC_OID_NETSCAPE_AOLSCREENNAME,
-+ "AOL Screenname", CKM_INVALID_MECHANISM,
-+ INVALID_CERT_EXTENSION ),
-+
-+ OD( x520SurName, SEC_OID_AVA_SURNAME,
-+ "X520 Title", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( x520SerialNumber, SEC_OID_AVA_SERIAL_NUMBER,
-+ "X520 Serial Number", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( x520StreetAddress, SEC_OID_AVA_STREET_ADDRESS,
-+ "X520 Street Address", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( x520Title, SEC_OID_AVA_TITLE,
-+ "X520 Title", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( x520PostalAddress, SEC_OID_AVA_POSTAL_ADDRESS,
-+ "X520 Postal Address", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( x520PostalCode, SEC_OID_AVA_POSTAL_CODE,
-+ "X520 Postal Code", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( x520PostOfficeBox, SEC_OID_AVA_POST_OFFICE_BOX,
-+ "X520 Post Office Box", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( x520GivenName, SEC_OID_AVA_GIVEN_NAME,
-+ "X520 Given Name", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( x520Initials, SEC_OID_AVA_INITIALS,
-+ "X520 Initials", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( x520GenerationQualifier, SEC_OID_AVA_GENERATION_QUALIFIER,
-+ "X520 Generation Qualifier",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( x520HouseIdentifier, SEC_OID_AVA_HOUSE_IDENTIFIER,
-+ "X520 House Identifier",
-+ CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+ OD( x520Pseudonym, SEC_OID_AVA_PSEUDONYM,
-+ "X520 Pseudonym", CKM_INVALID_MECHANISM, INVALID_CERT_EXTENSION ),
-+
-+};
-+
-+/*
-+ * now the dynamic table. The dynamic table gets build at init time.
-+ * and gets modified if the user loads new crypto modules.
-+ */
-+
-+static PLHashTable *oid_d_hash = 0;
-+static SECOidData **secoidDynamicTable = NULL;
-+static int secoidDynamicTableSize = 0;
-+static int secoidLastDynamicEntry = 0;
-+static int secoidLastHashEntry = 0;
-+
-+static SECStatus
-+secoid_DynamicRehash(void)
-+{
-+ SECOidData *oid;
-+ PLHashEntry *entry;
-+ int i;
-+ int last = secoidLastDynamicEntry;
-+
-+ if (!oid_d_hash) {
-+ oid_d_hash = PL_NewHashTable(0, SECITEM_Hash, SECITEM_HashCompare,
-+ PL_CompareValues, NULL, NULL);
-+ }
-+
-+
-+ if ( !oid_d_hash ) {
-+ PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
-+ return(SECFailure);
-+ }
-+
-+ for ( i = secoidLastHashEntry; i < last; i++ ) {
-+ oid = secoidDynamicTable[i];
-+
-+ entry = PL_HashTableAdd( oid_d_hash, &oid->oid, oid );
-+ if ( entry == NULL ) {
-+ return(SECFailure);
-+ }
-+ }
-+ secoidLastHashEntry = last;
-+ return(SECSuccess);
-+}
-+
-+
-+
-+/*
-+ * Lookup a Dynamic OID. Dynamic OID's still change slowly, so it's
-+ * cheaper to rehash the table when it changes than it is to do the loop
-+ * each time. Worry: what about thread safety here? Global Static data with
-+ * no locks.... (sigh).
-+ */
-+static SECOidData *
-+secoid_FindDynamic(SECItem *key) {
-+ SECOidData *ret = NULL;
-+ if (secoidDynamicTable == NULL) {
-+ /* PORT_SetError! */
-+ return NULL;
-+ }
-+ if (secoidLastHashEntry != secoidLastDynamicEntry) {
-+ SECStatus rv = secoid_DynamicRehash();
-+ if ( rv != SECSuccess ) {
-+ return NULL;
-+ }
-+ }
-+ ret = (SECOidData *)PL_HashTableLookup (oid_d_hash, key);
-+ return ret;
-+
-+}
-+
-+static SECOidData *
-+secoid_FindDynamicByTag(SECOidTag tagnum)
-+{
-+ int tagNumDiff;
-+
-+ if (secoidDynamicTable == NULL) {
-+ return NULL;
-+ }
-+
-+ if (tagnum < SEC_OID_TOTAL) {
-+ return NULL;
-+ }
-+
-+ tagNumDiff = tagnum - SEC_OID_TOTAL;
-+ if (tagNumDiff >= secoidLastDynamicEntry) {
-+ return NULL;
-+ }
-+
-+ return(secoidDynamicTable[tagNumDiff]);
-+}
-+
-+/*
-+ * this routine is definately not thread safe. It is only called out
-+ * of the UI, or at init time. If we want to call it any other time,
-+ * we need to make it thread safe.
-+ */
-+SECStatus
-+SECOID_AddEntry(SECItem *oid, char *description, unsigned long mech) {
-+ SECOidData *oiddp = (SECOidData *)PORT_Alloc(sizeof(SECOidData));
-+ int last = secoidLastDynamicEntry;
-+ int tableSize = secoidDynamicTableSize;
-+ int next = last++;
-+ SECOidData **newTable = secoidDynamicTable;
-+ SECOidData **oldTable = NULL;
-+
-+ if (oid == NULL) {
-+ return SECFailure;
-+ }
-+
-+ /* fill in oid structure */
-+ if (SECITEM_CopyItem(NULL,&oiddp->oid,oid) != SECSuccess) {
-+ PORT_Free(oiddp);
-+ return SECFailure;
-+ }
-+ oiddp->offset = (SECOidTag)(next + SEC_OID_TOTAL);
-+ /* may we should just reference the copy passed to us? */
-+ oiddp->desc = PORT_Strdup(description);
-+ oiddp->mechanism = mech;
-+
-+
-+ if (last > tableSize) {
-+ int oldTableSize = tableSize;
-+ tableSize += 10;
-+ oldTable = newTable;
-+ newTable = (SECOidData **)PORT_ZAlloc(sizeof(SECOidData *)*tableSize);
-+ if (newTable == NULL) {
-+ PORT_Free(oiddp->oid.data);
-+ PORT_Free(oiddp);
-+ return SECFailure;
-+ }
-+ PORT_Memcpy(newTable,oldTable,sizeof(SECOidData *)*oldTableSize);
-+ PORT_Free(oldTable);
-+ }
-+
-+ newTable[next] = oiddp;
-+ secoidDynamicTable = newTable;
-+ secoidDynamicTableSize = tableSize;
-+ secoidLastDynamicEntry= last;
-+ return SECSuccess;
-+}
-+
-+
-+/* normal static table processing */
-+static PLHashTable *oidhash = NULL;
-+static PLHashTable *oidmechhash = NULL;
-+
-+static PLHashNumber
-+secoid_HashNumber(const void *key)
-+{
-+ return (PLHashNumber) key;
-+}
-+
-+
-+SECStatus
-+secoid_Init(void)
-+{
-+ PLHashEntry *entry;
-+ const SECOidData *oid;
-+ int i;
-+
-+ if (oidhash) {
-+ return SECSuccess;
-+ }
-+
-+ oidhash = PL_NewHashTable(0, SECITEM_Hash, SECITEM_HashCompare,
-+ PL_CompareValues, NULL, NULL);
-+ oidmechhash = PL_NewHashTable(0, secoid_HashNumber, PL_CompareValues,
-+ PL_CompareValues, NULL, NULL);
-+
-+ if ( !oidhash || !oidmechhash) {
-+ PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
-+ PORT_Assert(0); /*This function should never fail. */
-+ return(SECFailure);
-+ }
-+
-+ for ( i = 0; i < ( sizeof(oids) / sizeof(SECOidData) ); i++ ) {
-+ oid = &oids[i];
-+
-+ PORT_Assert ( oid->offset == i );
-+
-+ entry = PL_HashTableAdd( oidhash, &oid->oid, (void *)oid );
-+ if ( entry == NULL ) {
-+ PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
-+ PORT_Assert(0); /*This function should never fail. */
-+ return(SECFailure);
-+ }
-+
-+ if ( oid->mechanism != CKM_INVALID_MECHANISM ) {
-+ entry = PL_HashTableAdd( oidmechhash,
-+ (void *)oid->mechanism, (void *)oid );
-+ if ( entry == NULL ) {
-+ PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
-+ PORT_Assert(0); /* This function should never fail. */
-+ return(SECFailure);
-+ }
-+ }
-+ }
-+
-+ PORT_Assert (i == SEC_OID_TOTAL);
-+
-+ return(SECSuccess);
-+}
-+
-+SECOidData *
-+SECOID_FindOIDByMechanism(unsigned long mechanism)
-+{
-+ SECOidData *ret;
-+
-+ PR_ASSERT(oidhash != NULL);
-+
-+ ret = PL_HashTableLookupConst ( oidmechhash, (void *)mechanism);
-+ if ( ret == NULL ) {
-+ PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
-+ }
-+
-+ return (ret);
-+}
-+
-+SECOidData *
-+SECOID_FindOID(SECItem *oid)
-+{
-+ SECOidData *ret;
-+
-+ PR_ASSERT(oidhash != NULL);
-+
-+ ret = PL_HashTableLookupConst ( oidhash, oid );
-+ if ( ret == NULL ) {
-+ ret = secoid_FindDynamic(oid);
-+ if (ret == NULL) {
-+ PORT_SetError(SEC_ERROR_UNRECOGNIZED_OID);
-+ }
-+ }
-+
-+ return(ret);
-+}
-+
-+SECOidTag
-+SECOID_FindOIDTag(SECItem *oid)
-+{
-+ SECOidData *oiddata;
-+
-+ oiddata = SECOID_FindOID (oid);
-+ if (oiddata == NULL)
-+ return SEC_OID_UNKNOWN;
-+
-+ return oiddata->offset;
-+}
-+
-+/* This really should return const. */
-+SECOidData *
-+SECOID_FindOIDByTag(SECOidTag tagnum)
-+{
-+
-+ if (tagnum >= SEC_OID_TOTAL) {
-+ return secoid_FindDynamicByTag(tagnum);
-+ }
-+
-+ PORT_Assert((unsigned int)tagnum < (sizeof(oids) / sizeof(SECOidData)));
-+ return (SECOidData *)(&oids[tagnum]);
-+}
-+
-+PRBool SECOID_KnownCertExtenOID (SECItem *extenOid)
-+{
-+ SECOidData * oidData;
-+
-+ oidData = SECOID_FindOID (extenOid);
-+ if (oidData == (SECOidData *)NULL)
-+ return (PR_FALSE);
-+ return ((oidData->supportedExtension == SUPPORTED_CERT_EXTENSION) ?
-+ PR_TRUE : PR_FALSE);
-+}
-+
-+
-+const char *
-+SECOID_FindOIDTagDescription(SECOidTag tagnum)
-+{
-+ const SECOidData *oidData = SECOID_FindOIDByTag(tagnum);
-+ return oidData ? oidData->desc : 0;
-+}
-+
-+/*
-+ * free up the oid tables.
-+ */
-+SECStatus
-+SECOID_Shutdown(void)
-+{
-+ int i;
-+
-+ if (oidhash) {
-+ PL_HashTableDestroy(oidhash);
-+ oidhash = NULL;
-+ }
-+ if (oidmechhash) {
-+ PL_HashTableDestroy(oidmechhash);
-+ oidmechhash = NULL;
-+ }
-+ if (oid_d_hash) {
-+ PL_HashTableDestroy(oid_d_hash);
-+ oid_d_hash = NULL;
-+ }
-+ if (secoidDynamicTable) {
-+ for (i=0; i < secoidLastDynamicEntry; i++) {
-+ PORT_Free(secoidDynamicTable[i]);
-+ }
-+ PORT_Free(secoidDynamicTable);
-+ secoidDynamicTable = NULL;
-+ secoidDynamicTableSize = 0;
-+ secoidLastDynamicEntry = 0;
-+ secoidLastHashEntry = 0;
-+ }
-+ return SECSuccess;
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/secplcy.c 2004-12-13 13:06:46.766387520 +0100
-@@ -0,0 +1,114 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#include "secplcy.h"
-+#include "prmem.h"
-+
-+SECCipherFind *sec_CipherFindInit(PRBool onlyAllowed,
-+ secCPStruct *policy,
-+ long *ciphers)
-+{
-+ SECCipherFind *find = PR_NEWZAP(SECCipherFind);
-+ if (find)
-+ {
-+ find->policy = policy;
-+ find->ciphers = ciphers;
-+ find->onlyAllowed = onlyAllowed;
-+ find->index = -1;
-+ }
-+ return find;
-+}
-+
-+long sec_CipherFindNext(SECCipherFind *find)
-+{
-+ char *policy;
-+ long rv = -1;
-+ secCPStruct *policies = (secCPStruct *) find->policy;
-+ long *ciphers = (long *) find->ciphers;
-+ long numCiphers = policies->num_ciphers;
-+
-+ find->index++;
-+ while((find->index < numCiphers) && (rv == -1))
-+ {
-+ /* Translate index to cipher. */
-+ rv = ciphers[find->index];
-+
-+ /* If we're only looking for allowed ciphers, and if this
-+ cipher isn't allowed, loop around.*/
-+ if (find->onlyAllowed)
-+ {
-+ /* Find the appropriate policy flag. */
-+ policy = (&(policies->begin_ciphers)) + find->index + 1;
-+
-+ /* If this cipher isn't allowed by policy, continue. */
-+ if (! (*policy))
-+ {
-+ rv = -1;
-+ find->index++;
-+ }
-+ }
-+ }
-+
-+ return rv;
-+}
-+
-+char sec_IsCipherAllowed(long cipher, secCPStruct *policies,
-+ long *ciphers)
-+{
-+ char result = SEC_CIPHER_NOT_ALLOWED; /* our default answer */
-+ long numCiphers = policies->num_ciphers;
-+ char *policy;
-+ int i;
-+
-+ /* Convert the cipher number into a policy flag location. */
-+ for (i=0, policy=(&(policies->begin_ciphers) + 1);
-+ i<numCiphers;
-+ i++, policy++)
-+ {
-+ if (cipher == ciphers[i])
-+ break;
-+ }
-+
-+ if (i < numCiphers)
-+ {
-+ /* Found the cipher, get the policy value. */
-+ result = *policy;
-+ }
-+
-+ return result;
-+}
-+
-+void sec_CipherFindEnd(SECCipherFind *find)
-+{
-+ PR_FREEIF(find);
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/secplcy.h 2004-12-14 13:03:36.569505352 +0100
-@@ -0,0 +1,133 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifndef __secplcy_h__
-+#define __secplcy_h__
-+
-+#include "seccomon.h"
-+
-+/*
-+** Cipher policy enforcement. This code isn't very pretty, but it accomplishes
-+** the purpose of obscuring policy information from potential fortifiers. :-)
-+**
-+** The following routines are generic and intended for anywhere where cipher
-+** policy enforcement is to be done, e.g. SSL and PKCS7&12.
-+*/
-+
-+#define SEC_CIPHER_NOT_ALLOWED 0
-+#define SEC_CIPHER_ALLOWED 1
-+#define SEC_CIPHER_RESTRICTED 2 /* cipher is allowed in limited cases
-+ e.g. step-up */
-+
-+/* The length of the header string for each cipher table.
-+ (It's the same regardless of whether we're using md5 strings or not.) */
-+#define SEC_POLICY_HEADER_LENGTH 48
-+
-+/* If we're testing policy stuff, we may want to use the plaintext version */
-+#define SEC_POLICY_USE_MD5_STRINGS 1
-+
-+#define SEC_POLICY_THIS_IS_THE \
-+ "\x2a\x3a\x51\xbf\x2f\x71\xb7\x73\xaa\xca\x6b\x57\x70\xcd\xc8\x9f"
-+#define SEC_POLICY_STRING_FOR_THE \
-+ "\x97\x15\xe2\x70\xd2\x8a\xde\xa9\xe7\xa7\x6a\xe2\x83\xe5\xb1\xf6"
-+#define SEC_POLICY_SSL_TAIL \
-+ "\x70\x16\x25\xc0\x2a\xb2\x4a\xca\xb6\x67\xb1\x89\x20\xdf\x87\xca"
-+#define SEC_POLICY_SMIME_TAIL \
-+ "\xdf\xd4\xe7\x2a\xeb\xc4\x1b\xb5\xd8\xe5\xe0\x2a\x16\x9f\xc4\xb9"
-+#define SEC_POLICY_PKCS12_TAIL \
-+ "\x1c\xf8\xa4\x85\x4a\xc6\x8a\xfe\xe6\xca\x03\x72\x50\x1c\xe2\xc8"
-+
-+#if defined(SEC_POLICY_USE_MD5_STRINGS)
-+
-+/* We're not testing.
-+ Use md5 checksums of the strings. */
-+
-+#define SEC_POLICY_SSL_HEADER \
-+ SEC_POLICY_THIS_IS_THE SEC_POLICY_STRING_FOR_THE SEC_POLICY_SSL_TAIL
-+
-+#define SEC_POLICY_SMIME_HEADER \
-+ SEC_POLICY_THIS_IS_THE SEC_POLICY_STRING_FOR_THE SEC_POLICY_SMIME_TAIL
-+
-+#define SEC_POLICY_PKCS12_HEADER \
-+ SEC_POLICY_THIS_IS_THE SEC_POLICY_STRING_FOR_THE SEC_POLICY_PKCS12_TAIL
-+
-+#else
-+
-+/* We're testing.
-+ Use plaintext versions of the strings, for testing purposes. */
-+#define SEC_POLICY_SSL_HEADER \
-+ "This is the string for the SSL policy table. "
-+#define SEC_POLICY_SMIME_HEADER \
-+ "This is the string for the PKCS7 policy table. "
-+#define SEC_POLICY_PKCS12_HEADER \
-+ "This is the string for the PKCS12 policy table. "
-+
-+#endif
-+
-+/* Local cipher tables have to have these members at the top. */
-+typedef struct _sec_cp_struct
-+{
-+ char policy_string[SEC_POLICY_HEADER_LENGTH];
-+ long unused; /* placeholder for max keybits in pkcs12 struct */
-+ char num_ciphers;
-+ char begin_ciphers;
-+ /* cipher policy settings follow. each is a char. */
-+} secCPStruct;
-+
-+struct SECCipherFindStr
-+{
-+ /* (policy) and (ciphers) are opaque to the outside world */
-+ void *policy;
-+ void *ciphers;
-+ long index;
-+ PRBool onlyAllowed;
-+};
-+
-+typedef struct SECCipherFindStr SECCipherFind;
-+
-+SEC_BEGIN_PROTOS
-+
-+SECCipherFind *sec_CipherFindInit(PRBool onlyAllowed,
-+ secCPStruct *policy,
-+ long *ciphers);
-+
-+long sec_CipherFindNext(SECCipherFind *find);
-+
-+char sec_IsCipherAllowed(long cipher, secCPStruct *policies,
-+ long *ciphers);
-+
-+void sec_CipherFindEnd(SECCipherFind *find);
-+
-+SEC_END_PROTOS
-+
-+#endif /* __SECPLCY_H__ */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/secport.c 2004-12-13 13:06:46.766387520 +0100
-@@ -0,0 +1,604 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+/*
-+ * secport.c - portability interfaces for security libraries
-+ *
-+ * This file abstracts out libc functionality that libsec depends on
-+ *
-+ * NOTE - These are not public interfaces
-+ *
-+ * $Id$
-+ */
-+
-+#include "seccomon.h"
-+#include "prmem.h"
-+#include "prerror.h"
-+#include "plarena.h"
-+#include "secerr.h"
-+#include "prmon.h"
-+#include "nsslocks.h"
-+#include "secport.h"
-+#include "prvrsion.h"
-+#include "prenv.h"
-+
-+#ifdef DEBUG
-+#define THREADMARK
-+#endif /* DEBUG */
-+
-+#ifdef THREADMARK
-+#include "prthread.h"
-+#endif /* THREADMARK */
-+
-+#if defined(XP_UNIX) || defined(XP_MAC) || defined(XP_OS2) || defined(XP_BEOS)
-+#include <stdlib.h>
-+#else
-+#include "wtypes.h"
-+#endif
-+
-+#define SET_ERROR_CODE /* place holder for code to set PR error code. */
-+
-+#ifdef THREADMARK
-+typedef struct threadmark_mark_str {
-+ struct threadmark_mark_str *next;
-+ void *mark;
-+} threadmark_mark;
-+
-+#endif /* THREADMARK */
-+
-+/* The value of this magic must change each time PORTArenaPool changes. */
-+#define ARENAPOOL_MAGIC 0xB8AC9BDF
-+
-+typedef struct PORTArenaPool_str {
-+ PLArenaPool arena;
-+ PRUint32 magic;
-+ PRLock * lock;
-+#ifdef THREADMARK
-+ PRThread *marking_thread;
-+ threadmark_mark *first_mark;
-+#endif
-+} PORTArenaPool;
-+
-+
-+/* count of allocation failures. */
-+unsigned long port_allocFailures;
-+
-+/* locations for registering Unicode conversion functions.
-+ * XXX is this the appropriate location? or should they be
-+ * moved to client/server specific locations?
-+ */
-+PORTCharConversionFunc ucs4Utf8ConvertFunc;
-+PORTCharConversionFunc ucs2Utf8ConvertFunc;
-+PORTCharConversionWSwapFunc ucs2AsciiConvertFunc;
-+
-+void *
-+PORT_Alloc(size_t bytes)
-+{
-+ void *rv;
-+
-+ /* Always allocate a non-zero amount of bytes */
-+ rv = (void *)PR_Malloc(bytes ? bytes : 1);
-+ if (!rv) {
-+ ++port_allocFailures;
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ }
-+ return rv;
-+}
-+
-+void *
-+PORT_Realloc(void *oldptr, size_t bytes)
-+{
-+ void *rv;
-+
-+ rv = (void *)PR_Realloc(oldptr, bytes);
-+ if (!rv) {
-+ ++port_allocFailures;
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ }
-+ return rv;
-+}
-+
-+void *
-+PORT_ZAlloc(size_t bytes)
-+{
-+ void *rv;
-+
-+ /* Always allocate a non-zero amount of bytes */
-+ rv = (void *)PR_Calloc(1, bytes ? bytes : 1);
-+ if (!rv) {
-+ ++port_allocFailures;
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ }
-+ return rv;
-+}
-+
-+void
-+PORT_Free(void *ptr)
-+{
-+ if (ptr) {
-+ PR_Free(ptr);
-+ }
-+}
-+
-+void
-+PORT_ZFree(void *ptr, size_t len)
-+{
-+ if (ptr) {
-+ memset(ptr, 0, len);
-+ PR_Free(ptr);
-+ }
-+}
-+
-+char *
-+PORT_Strdup(const char *str)
-+{
-+ size_t len = PORT_Strlen(str)+1;
-+ char *newstr;
-+
-+ newstr = (char *)PORT_Alloc(len);
-+ if (newstr) {
-+ PORT_Memcpy(newstr, str, len);
-+ }
-+ return newstr;
-+}
-+
-+void
-+PORT_SetError(int value)
-+{
-+ PR_SetError(value, 0);
-+ return;
-+}
-+
-+int
-+PORT_GetError(void)
-+{
-+ return(PR_GetError());
-+}
-+
-+/********************* Arena code follows *****************************/
-+
-+PLArenaPool *
-+PORT_NewArena(unsigned long chunksize)
-+{
-+ PORTArenaPool *pool;
-+
-+ pool = PORT_ZNew(PORTArenaPool);
-+ if (!pool) {
-+ return NULL;
-+ }
-+ pool->magic = ARENAPOOL_MAGIC;
-+ pool->lock = PZ_NewLock(nssILockArena);
-+ if (!pool->lock) {
-+ ++port_allocFailures;
-+ PORT_Free(pool);
-+ return NULL;
-+ }
-+ PL_InitArenaPool(&pool->arena, "security", chunksize, sizeof(double));
-+ return(&pool->arena);
-+}
-+
-+#define MAX_SIZE 0x7fffffffUL
-+
-+void *
-+PORT_ArenaAlloc(PLArenaPool *arena, size_t size)
-+{
-+ void *p = NULL;
-+
-+ PORTArenaPool *pool = (PORTArenaPool *)arena;
-+
-+ if (size <= 0) {
-+ size = 1;
-+ }
-+
-+ if (size > MAX_SIZE) {
-+ /* you lose. */
-+ } else
-+ /* Is it one of ours? Assume so and check the magic */
-+ if (ARENAPOOL_MAGIC == pool->magic ) {
-+ PZ_Lock(pool->lock);
-+#ifdef THREADMARK
-+ /* Most likely one of ours. Is there a thread id? */
-+ if (pool->marking_thread &&
-+ pool->marking_thread != PR_GetCurrentThread() ) {
-+ /* Another thread holds a mark in this arena */
-+ PZ_Unlock(pool->lock);
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ PORT_Assert(0);
-+ return NULL;
-+ } /* tid != null */
-+#endif /* THREADMARK */
-+ PL_ARENA_ALLOCATE(p, arena, size);
-+ PZ_Unlock(pool->lock);
-+ } else {
-+ PL_ARENA_ALLOCATE(p, arena, size);
-+ }
-+
-+ if (!p) {
-+ ++port_allocFailures;
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ }
-+
-+ return(p);
-+}
-+
-+void *
-+PORT_ArenaZAlloc(PLArenaPool *arena, size_t size)
-+{
-+ void *p;
-+
-+ if (size <= 0)
-+ size = 1;
-+
-+ p = PORT_ArenaAlloc(arena, size);
-+
-+ if (p) {
-+ PORT_Memset(p, 0, size);
-+ }
-+
-+ return(p);
-+}
-+
-+/* XXX - need to zeroize!! - jsw */
-+void
-+PORT_FreeArena(PLArenaPool *arena, PRBool zero)
-+{
-+ PORTArenaPool *pool = (PORTArenaPool *)arena;
-+ PRLock * lock = (PRLock *)0;
-+ size_t len = sizeof *arena;
-+ extern const PRVersionDescription * libVersionPoint(void);
-+ static const PRVersionDescription * pvd;
-+ static PRBool doFreeArenaPool = PR_FALSE;
-+
-+ if (ARENAPOOL_MAGIC == pool->magic ) {
-+ len = sizeof *pool;
-+ lock = pool->lock;
-+ PZ_Lock(lock);
-+ }
-+ if (!pvd) {
-+ /* Each of NSPR's DLLs has a function libVersionPoint().
-+ ** We could do a lot of extra work to be sure we're calling the
-+ ** one in the DLL that holds PR_FreeArenaPool, but instead we
-+ ** rely on the fact that ALL NSPR DLLs in the same directory
-+ ** must be from the same release, and we call which ever one we get.
-+ */
-+ /* no need for thread protection here */
-+ pvd = libVersionPoint();
-+ if ((pvd->vMajor > 4) ||
-+ (pvd->vMajor == 4 && pvd->vMinor > 1) ||
-+ (pvd->vMajor == 4 && pvd->vMinor == 1 && pvd->vPatch >= 1)) {
-+ const char *ev = PR_GetEnv("NSS_DISABLE_ARENA_FREE_LIST");
-+ if (!ev) doFreeArenaPool = PR_TRUE;
-+ }
-+ }
-+ if (doFreeArenaPool) {
-+ PL_FreeArenaPool(arena);
-+ } else {
-+ PL_FinishArenaPool(arena);
-+ }
-+ PORT_ZFree(arena, len);
-+ if (lock) {
-+ PZ_Unlock(lock);
-+ PZ_DestroyLock(lock);
-+ }
-+}
-+
-+void *
-+PORT_ArenaGrow(PLArenaPool *arena, void *ptr, size_t oldsize, size_t newsize)
-+{
-+ PORTArenaPool *pool = (PORTArenaPool *)arena;
-+ PORT_Assert(newsize >= oldsize);
-+
-+ if (ARENAPOOL_MAGIC == pool->magic ) {
-+ PZ_Lock(pool->lock);
-+ /* Do we do a THREADMARK check here? */
-+ PL_ARENA_GROW(ptr, arena, oldsize, ( newsize - oldsize ) );
-+ PZ_Unlock(pool->lock);
-+ } else {
-+ PL_ARENA_GROW(ptr, arena, oldsize, ( newsize - oldsize ) );
-+ }
-+
-+ return(ptr);
-+}
-+
-+void *
-+PORT_ArenaMark(PLArenaPool *arena)
-+{
-+ void * result;
-+
-+ PORTArenaPool *pool = (PORTArenaPool *)arena;
-+ if (ARENAPOOL_MAGIC == pool->magic ) {
-+ PZ_Lock(pool->lock);
-+#ifdef THREADMARK
-+ {
-+ threadmark_mark *tm, **pw;
-+ PRThread * currentThread = PR_GetCurrentThread();
-+
-+ if (! pool->marking_thread ) {
-+ /* First mark */
-+ pool->marking_thread = currentThread;
-+ } else if (currentThread != pool->marking_thread ) {
-+ PZ_Unlock(pool->lock);
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ PORT_Assert(0);
-+ return NULL;
-+ }
-+
-+ result = PL_ARENA_MARK(arena);
-+ PL_ARENA_ALLOCATE(tm, arena, sizeof(threadmark_mark));
-+ if (!tm) {
-+ PZ_Unlock(pool->lock);
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ return NULL;
-+ }
-+
-+ tm->mark = result;
-+ tm->next = (threadmark_mark *)NULL;
-+
-+ pw = &pool->first_mark;
-+ while( *pw ) {
-+ pw = &(*pw)->next;
-+ }
-+
-+ *pw = tm;
-+ }
-+#else /* THREADMARK */
-+ result = PL_ARENA_MARK(arena);
-+#endif /* THREADMARK */
-+ PZ_Unlock(pool->lock);
-+ } else {
-+ /* a "pure" NSPR arena */
-+ result = PL_ARENA_MARK(arena);
-+ }
-+ return result;
-+}
-+
-+void
-+PORT_ArenaRelease(PLArenaPool *arena, void *mark)
-+{
-+ PORTArenaPool *pool = (PORTArenaPool *)arena;
-+ if (ARENAPOOL_MAGIC == pool->magic ) {
-+ PZ_Lock(pool->lock);
-+#ifdef THREADMARK
-+ {
-+ threadmark_mark **pw, *tm;
-+
-+ if (PR_GetCurrentThread() != pool->marking_thread ) {
-+ PZ_Unlock(pool->lock);
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ PORT_Assert(0);
-+ return /* no error indication available */ ;
-+ }
-+
-+ pw = &pool->first_mark;
-+ while( *pw && (mark != (*pw)->mark) ) {
-+ pw = &(*pw)->next;
-+ }
-+
-+ if (! *pw ) {
-+ /* bad mark */
-+ PZ_Unlock(pool->lock);
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ PORT_Assert(0);
-+ return /* no error indication available */ ;
-+ }
-+
-+ tm = *pw;
-+ *pw = (threadmark_mark *)NULL;
-+
-+ PL_ARENA_RELEASE(arena, mark);
-+
-+ if (! pool->first_mark ) {
-+ pool->marking_thread = (PRThread *)NULL;
-+ }
-+ }
-+#else /* THREADMARK */
-+ PL_ARENA_RELEASE(arena, mark);
-+#endif /* THREADMARK */
-+ PZ_Unlock(pool->lock);
-+ } else {
-+ PL_ARENA_RELEASE(arena, mark);
-+ }
-+}
-+
-+void
-+PORT_ArenaUnmark(PLArenaPool *arena, void *mark)
-+{
-+#ifdef THREADMARK
-+ PORTArenaPool *pool = (PORTArenaPool *)arena;
-+ if (ARENAPOOL_MAGIC == pool->magic ) {
-+ threadmark_mark **pw, *tm;
-+
-+ PZ_Lock(pool->lock);
-+
-+ if (PR_GetCurrentThread() != pool->marking_thread ) {
-+ PZ_Unlock(pool->lock);
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ PORT_Assert(0);
-+ return /* no error indication available */ ;
-+ }
-+
-+ pw = &pool->first_mark;
-+ while( ((threadmark_mark *)NULL != *pw) && (mark != (*pw)->mark) ) {
-+ pw = &(*pw)->next;
-+ }
-+
-+ if ((threadmark_mark *)NULL == *pw ) {
-+ /* bad mark */
-+ PZ_Unlock(pool->lock);
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ PORT_Assert(0);
-+ return /* no error indication available */ ;
-+ }
-+
-+ tm = *pw;
-+ *pw = (threadmark_mark *)NULL;
-+
-+ if (! pool->first_mark ) {
-+ pool->marking_thread = (PRThread *)NULL;
-+ }
-+
-+ PZ_Unlock(pool->lock);
-+ }
-+#endif /* THREADMARK */
-+}
-+
-+char *
-+PORT_ArenaStrdup(PLArenaPool *arena, const char *str) {
-+ int len = PORT_Strlen(str)+1;
-+ char *newstr;
-+
-+ newstr = (char*)PORT_ArenaAlloc(arena,len);
-+ if (newstr) {
-+ PORT_Memcpy(newstr,str,len);
-+ }
-+ return newstr;
-+}
-+
-+/********************** end of arena functions ***********************/
-+
-+/****************** unicode conversion functions ***********************/
-+/*
-+ * NOTE: These conversion functions all assume that the multibyte
-+ * characters are going to be in NETWORK BYTE ORDER, not host byte
-+ * order. This is because the only time we deal with UCS-2 and UCS-4
-+ * are when the data was received from or is going to be sent out
-+ * over the wire (in, e.g. certificates).
-+ */
-+
-+void
-+PORT_SetUCS4_UTF8ConversionFunction(PORTCharConversionFunc convFunc)
-+{
-+ ucs4Utf8ConvertFunc = convFunc;
-+}
-+
-+void
-+PORT_SetUCS2_ASCIIConversionFunction(PORTCharConversionWSwapFunc convFunc)
-+{
-+ ucs2AsciiConvertFunc = convFunc;
-+}
-+
-+void
-+PORT_SetUCS2_UTF8ConversionFunction(PORTCharConversionFunc convFunc)
-+{
-+ ucs2Utf8ConvertFunc = convFunc;
-+}
-+
-+PRBool
-+PORT_UCS4_UTF8Conversion(PRBool toUnicode, unsigned char *inBuf,
-+ unsigned int inBufLen, unsigned char *outBuf,
-+ unsigned int maxOutBufLen, unsigned int *outBufLen)
-+{
-+ if(!ucs4Utf8ConvertFunc) {
-+ return sec_port_ucs4_utf8_conversion_function(toUnicode,
-+ inBuf, inBufLen, outBuf, maxOutBufLen, outBufLen);
-+ }
-+
-+ return (*ucs4Utf8ConvertFunc)(toUnicode, inBuf, inBufLen, outBuf,
-+ maxOutBufLen, outBufLen);
-+}
-+
-+PRBool
-+PORT_UCS2_UTF8Conversion(PRBool toUnicode, unsigned char *inBuf,
-+ unsigned int inBufLen, unsigned char *outBuf,
-+ unsigned int maxOutBufLen, unsigned int *outBufLen)
-+{
-+ if(!ucs2Utf8ConvertFunc) {
-+ return sec_port_ucs2_utf8_conversion_function(toUnicode,
-+ inBuf, inBufLen, outBuf, maxOutBufLen, outBufLen);
-+ }
-+
-+ return (*ucs2Utf8ConvertFunc)(toUnicode, inBuf, inBufLen, outBuf,
-+ maxOutBufLen, outBufLen);
-+}
-+
-+PRBool
-+PORT_ISO88591_UTF8Conversion(const unsigned char *inBuf,
-+ unsigned int inBufLen, unsigned char *outBuf,
-+ unsigned int maxOutBufLen, unsigned int *outBufLen)
-+{
-+ return sec_port_iso88591_utf8_conversion_function(inBuf, inBufLen,
-+ outBuf, maxOutBufLen, outBufLen);
-+}
-+
-+PRBool
-+PORT_UCS2_ASCIIConversion(PRBool toUnicode, unsigned char *inBuf,
-+ unsigned int inBufLen, unsigned char *outBuf,
-+ unsigned int maxOutBufLen, unsigned int *outBufLen,
-+ PRBool swapBytes)
-+{
-+ if(!ucs2AsciiConvertFunc) {
-+ return PR_FALSE;
-+ }
-+
-+ return (*ucs2AsciiConvertFunc)(toUnicode, inBuf, inBufLen, outBuf,
-+ maxOutBufLen, outBufLen, swapBytes);
-+}
-+
-+
-+/* Portable putenv. Creates/replaces an environment variable of the form
-+ * envVarName=envValue
-+ */
-+int
-+NSS_PutEnv(const char * envVarName, const char * envValue)
-+{
-+#if defined(XP_MAC) || defined(_WIN32_WCE)
-+ return SECFailure;
-+#else
-+ SECStatus result = SECSuccess;
-+ char * encoded;
-+ int putEnvFailed;
-+#ifdef _WIN32
-+ PRBool setOK;
-+
-+ setOK = SetEnvironmentVariable(envVarName, envValue);
-+ if (!setOK) {
-+ SET_ERROR_CODE
-+ return SECFailure;
-+ }
-+#endif
-+
-+ encoded = (char *)PORT_ZAlloc(strlen(envVarName) + 2 + strlen(envValue));
-+ strcpy(encoded, envVarName);
-+ strcat(encoded, "=");
-+ strcat(encoded, envValue);
-+
-+ putEnvFailed = putenv(encoded); /* adopt. */
-+ if (putEnvFailed) {
-+ SET_ERROR_CODE
-+ result = SECFailure;
-+ PORT_Free(encoded);
-+ }
-+ return result;
-+#endif
-+}
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/secsign.c 2004-12-13 13:06:46.876370800 +0100
-@@ -0,0 +1,524 @@
-+/*
-+ * Signature stuff.
-+ *
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Portions created by Sun Microsystems, Inc. are Copyright (C) 2003
-+ * Sun Microsystems, Inc. All Rights Reserved.
-+ *
-+ * Contributor(s):
-+ * Dr Vipul Gupta <vipul.gupta@sun.com>, Sun Microsystems Laboratories
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ *
-+ * $Id$
-+ */
-+
-+#include <stdio.h>
-+#include "cryptohi.h"
-+#include "sechash.h"
-+#include "secder.h"
-+#include "keyhi.h"
-+#include "secoid.h"
-+#include "secdig.h"
-+#include "pk11func.h"
-+#include "secerr.h"
-+
-+struct SGNContextStr {
-+ SECOidTag signalg;
-+ SECOidTag hashalg;
-+ void *hashcx;
-+ const SECHashObject *hashobj;
-+ SECKEYPrivateKey *key;
-+};
-+
-+SGNContext *
-+SGN_NewContext(SECOidTag alg, SECKEYPrivateKey *key)
-+{
-+ SGNContext *cx;
-+ SECOidTag hashalg, signalg;
-+ KeyType keyType;
-+
-+ /* OK, map a PKCS #7 hash and encrypt algorithm into
-+ * a standard hashing algorithm. Why did we pass in the whole
-+ * PKCS #7 algTag if we were just going to change here you might
-+ * ask. Well the answer is for some cards we may have to do the
-+ * hashing on card. It may not support CKM_RSA_PKCS sign algorithm,
-+ * it may just support CKM_RSA_PKCS_WITH_SHA1 and/or CKM_RSA_PKCS_WITH_MD5.
-+ */
-+ switch (alg) {
-+ /* We probably shouldn't be generating MD2 signatures either */
-+ case SEC_OID_PKCS1_MD2_WITH_RSA_ENCRYPTION:
-+ hashalg = SEC_OID_MD2;
-+ signalg = SEC_OID_PKCS1_RSA_ENCRYPTION;
-+ keyType = rsaKey;
-+ break;
-+ case SEC_OID_PKCS1_MD5_WITH_RSA_ENCRYPTION:
-+ hashalg = SEC_OID_MD5;
-+ signalg = SEC_OID_PKCS1_RSA_ENCRYPTION;
-+ keyType = rsaKey;
-+ break;
-+ case SEC_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION:
-+ case SEC_OID_ISO_SHA_WITH_RSA_SIGNATURE:
-+ hashalg = SEC_OID_SHA1;
-+ signalg = SEC_OID_PKCS1_RSA_ENCRYPTION;
-+ keyType = rsaKey;
-+ break;
-+
-+ case SEC_OID_PKCS1_SHA256_WITH_RSA_ENCRYPTION:
-+ hashalg = SEC_OID_SHA256;
-+ signalg = SEC_OID_PKCS1_RSA_ENCRYPTION;
-+ keyType = rsaKey;
-+ break;
-+ case SEC_OID_PKCS1_SHA384_WITH_RSA_ENCRYPTION:
-+ hashalg = SEC_OID_SHA384;
-+ signalg = SEC_OID_PKCS1_RSA_ENCRYPTION;
-+ keyType = rsaKey;
-+ break;
-+ case SEC_OID_PKCS1_SHA512_WITH_RSA_ENCRYPTION:
-+ hashalg = SEC_OID_SHA512;
-+ signalg = SEC_OID_PKCS1_RSA_ENCRYPTION;
-+ keyType = rsaKey;
-+ break;
-+
-+ /* what about normal DSA? */
-+ case SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST:
-+ case SEC_OID_BOGUS_DSA_SIGNATURE_WITH_SHA1_DIGEST:
-+ hashalg = SEC_OID_SHA1;
-+ signalg = SEC_OID_ANSIX9_DSA_SIGNATURE;
-+ keyType = dsaKey;
-+ break;
-+ case SEC_OID_MISSI_DSS:
-+ case SEC_OID_MISSI_KEA_DSS:
-+ case SEC_OID_MISSI_KEA_DSS_OLD:
-+ case SEC_OID_MISSI_DSS_OLD:
-+ hashalg = SEC_OID_SHA1;
-+ signalg = SEC_OID_MISSI_DSS; /* XXX Is there a better algid? */
-+ keyType = fortezzaKey;
-+ break;
-+#ifdef NSS_ENABLE_ECC
-+ case SEC_OID_ANSIX962_ECDSA_SIGNATURE_WITH_SHA1_DIGEST:
-+ hashalg = SEC_OID_SHA1;
-+ signalg = SEC_OID_ANSIX962_ECDSA_SIGNATURE_WITH_SHA1_DIGEST;
-+ keyType = ecKey;
-+ break;
-+#endif /* NSS_ENABLE_ECC */
-+ /* we don't implement MD4 hashes.
-+ * we *CERTAINLY* don't want to sign one! */
-+ case SEC_OID_PKCS1_MD4_WITH_RSA_ENCRYPTION:
-+ default:
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return 0;
-+ }
-+
-+ /* verify our key type */
-+ if (key->keyType != keyType &&
-+ !((key->keyType == dsaKey) && (keyType == fortezzaKey)) &&
-+ !((key->keyType == fortezzaKey) && (keyType == dsaKey)) ) {
-+ PORT_SetError(SEC_ERROR_INVALID_ALGORITHM);
-+ return 0;
-+ }
-+
-+ cx = (SGNContext*) PORT_ZAlloc(sizeof(SGNContext));
-+ if (cx) {
-+ cx->hashalg = hashalg;
-+ cx->signalg = signalg;
-+ cx->key = key;
-+ }
-+ return cx;
-+}
-+
-+void
-+SGN_DestroyContext(SGNContext *cx, PRBool freeit)
-+{
-+ if (cx) {
-+ if (cx->hashcx != NULL) {
-+ (*cx->hashobj->destroy)(cx->hashcx, PR_TRUE);
-+ cx->hashcx = NULL;
-+ }
-+ if (freeit) {
-+ PORT_ZFree(cx, sizeof(SGNContext));
-+ }
-+ }
-+}
-+
-+SECStatus
-+SGN_Begin(SGNContext *cx)
-+{
-+ if (cx->hashcx != NULL) {
-+ (*cx->hashobj->destroy)(cx->hashcx, PR_TRUE);
-+ cx->hashcx = NULL;
-+ }
-+
-+ cx->hashobj = HASH_GetHashObjectByOidTag(cx->hashalg);
-+ if (!cx->hashobj)
-+ return SECFailure; /* error code is already set */
-+
-+ cx->hashcx = (*cx->hashobj->create)();
-+ if (cx->hashcx == NULL)
-+ return SECFailure;
-+
-+ (*cx->hashobj->begin)(cx->hashcx);
-+ return SECSuccess;
-+}
-+
-+SECStatus
-+SGN_Update(SGNContext *cx, unsigned char *input, unsigned inputLen)
-+{
-+ if (cx->hashcx == NULL) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+ (*cx->hashobj->update)(cx->hashcx, input, inputLen);
-+ return SECSuccess;
-+}
-+
-+SECStatus
-+SGN_End(SGNContext *cx, SECItem *result)
-+{
-+ unsigned char digest[32];
-+ unsigned part1, signatureLen;
-+ SECStatus rv;
-+ SECItem digder, sigitem;
-+ PRArenaPool *arena = 0;
-+ SECKEYPrivateKey *privKey = cx->key;
-+ SGNDigestInfo *di = 0;
-+
-+ result->data = 0;
-+ digder.data = 0;
-+
-+ /* Finish up digest function */
-+ if (cx->hashcx == NULL) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+ (*cx->hashobj->end)(cx->hashcx, digest, &part1, sizeof(digest));
-+
-+
-+ if (privKey->keyType == rsaKey) {
-+
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ if ( !arena ) {
-+ rv = SECFailure;
-+ goto loser;
-+ }
-+
-+ /* Construct digest info */
-+ di = SGN_CreateDigestInfo(cx->hashalg, digest, part1);
-+ if (!di) {
-+ rv = SECFailure;
-+ goto loser;
-+ }
-+
-+ /* Der encode the digest as a DigestInfo */
-+ rv = DER_Encode(arena, &digder, SGNDigestInfoTemplate, di);
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+ } else {
-+ digder.data = digest;
-+ digder.len = part1;
-+ }
-+
-+ /*
-+ ** Encrypt signature after constructing appropriate PKCS#1 signature
-+ ** block
-+ */
-+ signatureLen = PK11_SignatureLen(privKey);
-+ sigitem.len = signatureLen;
-+ sigitem.data = (unsigned char*) PORT_Alloc(signatureLen);
-+
-+ if (sigitem.data == NULL) {
-+ rv = SECFailure;
-+ goto loser;
-+ }
-+
-+ rv = PK11_Sign(privKey, &sigitem, &digder);
-+ if (rv != SECSuccess) {
-+ PORT_Free(sigitem.data);
-+ sigitem.data = NULL;
-+ goto loser;
-+ }
-+
-+ if ((cx->signalg == SEC_OID_ANSIX9_DSA_SIGNATURE) ||
-+ (cx->signalg == SEC_OID_ANSIX962_ECDSA_SIGNATURE_WITH_SHA1_DIGEST)) {
-+ /* DSAU_EncodeDerSigWithLen works for DSA and ECDSA */
-+ rv = DSAU_EncodeDerSigWithLen(result, &sigitem, signatureLen);
-+ PORT_Free(sigitem.data);
-+ if (rv != SECSuccess)
-+ goto loser;
-+ } else {
-+ result->len = sigitem.len;
-+ result->data = sigitem.data;
-+ }
-+
-+ loser:
-+ SGN_DestroyDigestInfo(di);
-+ if (arena != NULL) {
-+ PORT_FreeArena(arena, PR_FALSE);
-+ }
-+ return rv;
-+}
-+
-+/************************************************************************/
-+
-+/*
-+** Sign a block of data returning in result a bunch of bytes that are the
-+** signature. Returns zero on success, an error code on failure.
-+*/
-+SECStatus
-+SEC_SignData(SECItem *res, unsigned char *buf, int len,
-+ SECKEYPrivateKey *pk, SECOidTag algid)
-+{
-+ SECStatus rv;
-+ SGNContext *sgn;
-+
-+
-+ sgn = SGN_NewContext(algid, pk);
-+
-+ if (sgn == NULL)
-+ return SECFailure;
-+
-+ rv = SGN_Begin(sgn);
-+ if (rv != SECSuccess)
-+ goto loser;
-+
-+ rv = SGN_Update(sgn, buf, len);
-+ if (rv != SECSuccess)
-+ goto loser;
-+
-+ rv = SGN_End(sgn, res);
-+
-+ loser:
-+ SGN_DestroyContext(sgn, PR_TRUE);
-+ return rv;
-+}
-+
-+/*
-+** Sign the input file's contents returning in result a bunch of bytes
-+** that are the signature. Returns zero on success, an error code on
-+** failure.
-+*/
-+SECStatus
-+SEC_SignFile(SECItem *result, FILE *input,
-+ SECKEYPrivateKey *pk, SECOidTag algid)
-+{
-+ unsigned char buf[1024];
-+ SECStatus rv;
-+ int nb;
-+ SGNContext *sgn;
-+
-+ sgn = SGN_NewContext(algid, pk);
-+ if (sgn == NULL)
-+ return SECFailure;
-+ rv = SGN_Begin(sgn);
-+ if (rv != SECSuccess)
-+ goto loser;
-+
-+ /*
-+ ** Now feed the contents of the input file into the digest
-+ ** algorithm, one chunk at a time, until we have exhausted the
-+ ** input
-+ */
-+ for (;;) {
-+ if (feof(input)) break;
-+ nb = fread(buf, 1, sizeof(buf), input);
-+ if (nb == 0) {
-+ if (ferror(input)) {
-+ PORT_SetError(SEC_ERROR_IO);
-+ rv = SECFailure;
-+ goto loser;
-+ }
-+ break;
-+ }
-+ rv = SGN_Update(sgn, buf, nb);
-+ if (rv != SECSuccess)
-+ goto loser;
-+ }
-+
-+ /* Sign the digest */
-+ rv = SGN_End(sgn, result);
-+ /* FALL THROUGH */
-+
-+ loser:
-+ SGN_DestroyContext(sgn, PR_TRUE);
-+ return rv;
-+}
-+
-+/************************************************************************/
-+
-+DERTemplate CERTSignedDataTemplate[] =
-+{
-+ { DER_SEQUENCE,
-+ 0, NULL, sizeof(CERTSignedData) },
-+ { DER_ANY,
-+ offsetof(CERTSignedData,data), },
-+ { DER_INLINE,
-+ offsetof(CERTSignedData,signatureAlgorithm),
-+ SECAlgorithmIDTemplate, },
-+ { DER_BIT_STRING,
-+ offsetof(CERTSignedData,signature), },
-+ { 0, }
-+};
-+
-+const SEC_ASN1Template CERT_SignedDataTemplate[] =
-+{
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(CERTSignedData) },
-+ { SEC_ASN1_ANY,
-+ offsetof(CERTSignedData,data), },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTSignedData,signatureAlgorithm),
-+ SECOID_AlgorithmIDTemplate, },
-+ { SEC_ASN1_BIT_STRING,
-+ offsetof(CERTSignedData,signature), },
-+ { 0, }
-+};
-+
-+SEC_ASN1_CHOOSER_IMPLEMENT(CERT_SignedDataTemplate)
-+
-+
-+SECStatus
-+SEC_DerSignData(PRArenaPool *arena, SECItem *result,
-+ unsigned char *buf, int len, SECKEYPrivateKey *pk, SECOidTag algID)
-+{
-+ SECItem it;
-+ CERTSignedData sd;
-+ SECStatus rv;
-+
-+ it.data = 0;
-+
-+ /* XXX We should probably have some asserts here to make sure the key type
-+ * and algID match
-+ */
-+
-+ if (algID == SEC_OID_UNKNOWN) {
-+ switch(pk->keyType) {
-+ case rsaKey:
-+ algID = SEC_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION;
-+ break;
-+ case dsaKey:
-+ algID = SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST;
-+ break;
-+#ifdef NSS_ENABLE_ECC
-+ case ecKey:
-+ algID = SEC_OID_ANSIX962_ECDSA_SIGNATURE_WITH_SHA1_DIGEST;
-+ break;
-+#endif /* NSS_ENABLE_ECC */
-+ default:
-+ return SECFailure;
-+ break;
-+ }
-+ }
-+
-+ /* Sign input buffer */
-+ rv = SEC_SignData(&it, buf, len, pk, algID);
-+ if (rv) goto loser;
-+
-+ /* Fill out SignedData object */
-+ PORT_Memset(&sd, 0, sizeof(sd));
-+ sd.data.data = buf;
-+ sd.data.len = len;
-+ sd.signature.data = it.data;
-+ sd.signature.len = it.len << 3; /* convert to bit string */
-+ rv = SECOID_SetAlgorithmID(arena, &sd.signatureAlgorithm, algID, 0);
-+ if (rv) goto loser;
-+
-+ /* DER encode the signed data object */
-+ rv = DER_Encode(arena, result, CERTSignedDataTemplate, &sd);
-+ /* FALL THROUGH */
-+
-+ loser:
-+ PORT_Free(it.data);
-+ return rv;
-+}
-+
-+SECStatus
-+SGN_Digest(SECKEYPrivateKey *privKey,
-+ SECOidTag algtag, SECItem *result, SECItem *digest)
-+{
-+ unsigned modulusLen;
-+ SECStatus rv;
-+ SECItem digder;
-+ PRArenaPool *arena = 0;
-+ SGNDigestInfo *di = 0;
-+
-+
-+ result->data = 0;
-+
-+ if (privKey->keyType == rsaKey) {
-+
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+ if ( !arena ) {
-+ rv = SECFailure;
-+ goto loser;
-+ }
-+
-+ /* Construct digest info */
-+ di = SGN_CreateDigestInfo(algtag, digest->data, digest->len);
-+ if (!di) {
-+ rv = SECFailure;
-+ goto loser;
-+ }
-+
-+ /* Der encode the digest as a DigestInfo */
-+ rv = DER_Encode(arena, &digder, SGNDigestInfoTemplate, di);
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+ } else {
-+ digder.data = digest->data;
-+ digder.len = digest->len;
-+ }
-+
-+ /*
-+ ** Encrypt signature after constructing appropriate PKCS#1 signature
-+ ** block
-+ */
-+ modulusLen = PK11_SignatureLen(privKey);
-+ result->len = modulusLen;
-+ result->data = (unsigned char*) PORT_Alloc(modulusLen);
-+
-+ if (result->data == NULL) {
-+ rv = SECFailure;
-+ goto loser;
-+ }
-+
-+ rv = PK11_Sign(privKey, result, &digder);
-+ if (rv != SECSuccess) {
-+ PORT_Free(result->data);
-+ result->data = NULL;
-+ }
-+
-+ loser:
-+ SGN_DestroyDigestInfo(di);
-+ if (arena != NULL) {
-+ PORT_FreeArena(arena, PR_FALSE);
-+ }
-+ return rv;
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/sectime.c 2004-12-13 13:06:46.767387368 +0100
-@@ -0,0 +1,257 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#include "prlong.h"
-+#include "prtime.h"
-+#include "secder.h"
-+#include "cert.h"
-+#include "secitem.h"
-+#include "secerr.h"
-+
-+const SEC_ASN1Template CERT_TimeChoiceTemplate[] = {
-+ { SEC_ASN1_CHOICE, offsetof(SECItem, type), 0, sizeof(SECItem) },
-+ { SEC_ASN1_UTC_TIME, 0, 0, siUTCTime },
-+ { SEC_ASN1_GENERALIZED_TIME, 0, 0, siGeneralizedTime },
-+ { 0 }
-+};
-+
-+SEC_ASN1_CHOOSER_IMPLEMENT(CERT_TimeChoiceTemplate)
-+
-+const SEC_ASN1Template CERT_ValidityTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(CERTValidity) },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTValidity,notBefore), CERT_TimeChoiceTemplate, 0 },
-+ { SEC_ASN1_INLINE,
-+ offsetof(CERTValidity,notAfter), CERT_TimeChoiceTemplate, 0 },
-+ { 0 }
-+};
-+
-+PRTime January1st2050 = LL_INIT(0x0008f81e,0x1b098000);
-+
-+static char *DecodeUTCTime2FormattedAscii (SECItem *utcTimeDER, char *format);
-+static char *DecodeGeneralizedTime2FormattedAscii (SECItem *generalizedTimeDER, char *format);
-+
-+/* convert DER utc time to ascii time string */
-+char *
-+DER_UTCTimeToAscii(SECItem *utcTime)
-+{
-+ return (DecodeUTCTime2FormattedAscii (utcTime, "%a %b %d %H:%M:%S %Y"));
-+}
-+
-+/* convert DER utc time to ascii time string, only include day, not time */
-+char *
-+DER_UTCDayToAscii(SECItem *utctime)
-+{
-+ return (DecodeUTCTime2FormattedAscii (utctime, "%a %b %d, %Y"));
-+}
-+
-+/* convert DER generalized time to ascii time string, only include day,
-+ not time */
-+char *
-+DER_GeneralizedDayToAscii(SECItem *gentime)
-+{
-+ return (DecodeGeneralizedTime2FormattedAscii (gentime, "%a %b %d, %Y"));
-+}
-+
-+/* convert DER generalized or UTC time to ascii time string, only include
-+ day, not time */
-+char *
-+DER_TimeChoiceDayToAscii(SECItem *timechoice)
-+{
-+ switch (timechoice->type) {
-+
-+ case siUTCTime:
-+ return DER_UTCDayToAscii(timechoice);
-+
-+ case siGeneralizedTime:
-+ return DER_GeneralizedDayToAscii(timechoice);
-+
-+ default:
-+ PORT_Assert(0);
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return NULL;
-+ }
-+}
-+
-+
-+
-+CERTValidity *
-+CERT_CreateValidity(int64 notBefore, int64 notAfter)
-+{
-+ CERTValidity *v;
-+ int rv;
-+ PRArenaPool *arena;
-+
-+ arena = PORT_NewArena(DER_DEFAULT_CHUNKSIZE);
-+
-+ if ( !arena ) {
-+ return(0);
-+ }
-+
-+ v = (CERTValidity*) PORT_ArenaZAlloc(arena, sizeof(CERTValidity));
-+ if (v) {
-+ v->arena = arena;
-+ rv = DER_EncodeTimeChoice(arena, &v->notBefore, notBefore);
-+ if (rv) goto loser;
-+ rv = DER_EncodeTimeChoice(arena, &v->notAfter, notAfter);
-+ if (rv) goto loser;
-+ }
-+ return v;
-+
-+ loser:
-+ CERT_DestroyValidity(v);
-+ return 0;
-+}
-+
-+SECStatus
-+CERT_CopyValidity(PRArenaPool *arena, CERTValidity *to, CERTValidity *from)
-+{
-+ SECStatus rv;
-+
-+ CERT_DestroyValidity(to);
-+ to->arena = arena;
-+
-+ rv = SECITEM_CopyItem(arena, &to->notBefore, &from->notBefore);
-+ if (rv) return rv;
-+ rv = SECITEM_CopyItem(arena, &to->notAfter, &from->notAfter);
-+ return rv;
-+}
-+
-+void
-+CERT_DestroyValidity(CERTValidity *v)
-+{
-+ if (v && v->arena) {
-+ PORT_FreeArena(v->arena, PR_FALSE);
-+ }
-+ return;
-+}
-+
-+char *
-+CERT_UTCTime2FormattedAscii (int64 utcTime, char *format)
-+{
-+ PRExplodedTime printableTime;
-+ char *timeString;
-+
-+ /* Converse time to local time and decompose it into components */
-+ PR_ExplodeTime(utcTime, PR_LocalTimeParameters, &printableTime);
-+
-+ timeString = (char *)PORT_Alloc(100);
-+
-+ if ( timeString ) {
-+ PR_FormatTime( timeString, 100, format, &printableTime );
-+ }
-+
-+ return (timeString);
-+}
-+
-+char *CERT_GenTime2FormattedAscii (int64 genTime, char *format)
-+{
-+ PRExplodedTime printableTime;
-+ char *timeString;
-+
-+ /* Decompose time into components */
-+ PR_ExplodeTime(genTime, PR_GMTParameters, &printableTime);
-+
-+ timeString = (char *)PORT_Alloc(100);
-+
-+ if ( timeString ) {
-+ PR_FormatTime( timeString, 100, format, &printableTime );
-+ }
-+
-+ return (timeString);
-+}
-+
-+
-+/* convert DER utc time to ascii time string, The format of the time string
-+ depends on the input "format"
-+ */
-+static char *
-+DecodeUTCTime2FormattedAscii (SECItem *utcTimeDER, char *format)
-+{
-+ int64 utcTime;
-+ int rv;
-+
-+ rv = DER_UTCTimeToTime(&utcTime, utcTimeDER);
-+ if (rv) {
-+ return(NULL);
-+ }
-+ return (CERT_UTCTime2FormattedAscii (utcTime, format));
-+}
-+
-+/* convert DER utc time to ascii time string, The format of the time string
-+ depends on the input "format"
-+ */
-+static char *
-+DecodeGeneralizedTime2FormattedAscii (SECItem *generalizedTimeDER, char *format)
-+{
-+ PRTime generalizedTime;
-+ int rv;
-+
-+ rv = DER_GeneralizedTimeToTime(&generalizedTime, generalizedTimeDER);
-+ if (rv) {
-+ return(NULL);
-+ }
-+ return (CERT_GeneralizedTime2FormattedAscii (generalizedTime, format));
-+}
-+
-+/* decode a SECItem containing either a SEC_ASN1_GENERALIZED_TIME
-+ or a SEC_ASN1_UTC_TIME */
-+
-+SECStatus DER_DecodeTimeChoice(PRTime* output, const SECItem* input)
-+{
-+ switch (input->type) {
-+ case siGeneralizedTime:
-+ return DER_GeneralizedTimeToTime(output, input);
-+
-+ case siUTCTime:
-+ return DER_UTCTimeToTime(output, input);
-+
-+ default:
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ PORT_Assert(0);
-+ return SECFailure;
-+ }
-+}
-+
-+/* encode a PRTime to an ASN.1 DER SECItem containing either a
-+ SEC_ASN1_GENERALIZED_TIME or a SEC_ASN1_UTC_TIME */
-+
-+SECStatus DER_EncodeTimeChoice(PRArenaPool* arena, SECItem* output, PRTime input)
-+{
-+ if (LL_CMP(input, >, January1st2050)) {
-+ return DER_TimeToGeneralizedTimeArena(arena, output, input);
-+ } else {
-+ return DER_TimeToUTCTimeArena(arena, output, input);
-+ }
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/secvfy.c 2004-12-13 13:06:46.876370800 +0100
-@@ -0,0 +1,553 @@
-+/*
-+ * Verification stuff.
-+ *
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Portions created by Sun Microsystems, Inc. are Copyright (C) 2003
-+ * Sun Microsystems, Inc. All Rights Reserved.
-+ *
-+ * Contributor(s):
-+ * Dr Vipul Gupta <vipul.gupta@sun.com>, Sun Microsystems Laboratories
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ *
-+ * $Id$
-+ */
-+
-+#include <stdio.h>
-+#include "cryptohi.h"
-+#include "sechash.h"
-+#include "keyhi.h"
-+#include "secasn1.h"
-+#include "secoid.h"
-+#include "pk11func.h"
-+#include "secdig.h"
-+#include "secerr.h"
-+
-+/*
-+** Decrypt signature block using public key (in place)
-+** XXX this is assuming that the signature algorithm has WITH_RSA_ENCRYPTION
-+*/
-+static SECStatus
-+DecryptSigBlock(int *tagp, unsigned char *digest, SECKEYPublicKey *key,
-+ SECItem *sig, char *wincx)
-+{
-+ SGNDigestInfo *di = NULL;
-+ unsigned char *dsig = NULL;
-+ unsigned char *buf = NULL;
-+ SECStatus rv;
-+ SECOidTag tag;
-+ SECItem it;
-+
-+ if (key == NULL) goto loser;
-+
-+ it.len = SECKEY_PublicKeyStrength(key);
-+ if (!it.len) goto loser;
-+ it.data = buf = (unsigned char *)PORT_Alloc(it.len);
-+ if (!buf) goto loser;
-+
-+ /* Decrypt signature block */
-+ dsig = (unsigned char*) PORT_Alloc(sig->len);
-+ if (dsig == NULL) goto loser;
-+
-+ /* decrypt the block */
-+ rv = PK11_VerifyRecover(key, sig, &it, wincx);
-+ if (rv != SECSuccess) goto loser;
-+
-+ di = SGN_DecodeDigestInfo(&it);
-+ if (di == NULL) goto sigloser;
-+
-+ /*
-+ ** Finally we have the digest info; now we can extract the algorithm
-+ ** ID and the signature block
-+ */
-+ tag = SECOID_GetAlgorithmTag(&di->digestAlgorithm);
-+ /* XXX Check that tag is an appropriate algorithm? */
-+ if (di->digest.len > 32) {
-+ PORT_SetError(SEC_ERROR_OUTPUT_LEN);
-+ goto loser;
-+ }
-+ PORT_Memcpy(digest, di->digest.data, di->digest.len);
-+ *tagp = tag;
-+ goto done;
-+
-+ sigloser:
-+ PORT_SetError(SEC_ERROR_BAD_SIGNATURE);
-+
-+ loser:
-+ rv = SECFailure;
-+
-+ done:
-+ if (di != NULL) SGN_DestroyDigestInfo(di);
-+ if (dsig != NULL) PORT_Free(dsig);
-+ if (buf != NULL) PORT_Free(buf);
-+
-+ return rv;
-+}
-+
-+typedef enum { VFY_RSA, VFY_DSA, VFY_ECDSA } VerifyType;
-+
-+struct VFYContextStr {
-+ SECOidTag alg;
-+ VerifyType type;
-+ SECKEYPublicKey *key;
-+ /* digest holds the full dsa signature... 40 bytes */
-+ unsigned char digest[DSA_SIGNATURE_LEN];
-+ void * wincx;
-+ void *hashcx;
-+ const SECHashObject *hashobj;
-+ SECOidTag sigAlg;
-+ PRBool hasSignature;
-+ unsigned char ecdsadigest[2 * MAX_ECKEY_LEN];
-+};
-+
-+/*
-+ * decode the ECDSA or DSA signature from it's DER wrapping.
-+ * The unwrapped/raw signature is placed in the buffer pointed
-+ * to by digest and has enough room for len bytes.
-+ */
-+static SECStatus
-+decodeECorDSASignature(SECOidTag algid, SECItem *sig, unsigned char *digest,
-+ unsigned int len) {
-+ SECItem *dsasig = NULL; /* also used for ECDSA */
-+ SECStatus rv=SECSuccess;
-+
-+ switch (algid) {
-+ case SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST:
-+ case SEC_OID_BOGUS_DSA_SIGNATURE_WITH_SHA1_DIGEST:
-+ case SEC_OID_ANSIX9_DSA_SIGNATURE:
-+ case SEC_OID_ANSIX962_ECDSA_SIGNATURE_WITH_SHA1_DIGEST:
-+ if (algid == SEC_OID_ANSIX962_ECDSA_SIGNATURE_WITH_SHA1_DIGEST) {
-+ if (len > MAX_ECKEY_LEN * 2) {
-+ PORT_SetError(SEC_ERROR_BAD_DER);
-+ return SECFailure;
-+ }
-+ dsasig = DSAU_DecodeDerSigToLen(sig, len);
-+ } else {
-+ dsasig = DSAU_DecodeDerSig(sig);
-+ }
-+
-+ if ((dsasig == NULL) || (dsasig->len != len)) {
-+ rv = SECFailure;
-+ } else {
-+ PORT_Memcpy(digest, dsasig->data, dsasig->len);
-+ }
-+ break;
-+ default:
-+ if (sig->len != len) {
-+ rv = SECFailure;
-+ } else {
-+ PORT_Memcpy(digest, sig->data, sig->len);
-+ }
-+ break;
-+ }
-+
-+ if (dsasig != NULL) SECITEM_FreeItem(dsasig, PR_TRUE);
-+ if (rv == SECFailure) PORT_SetError(SEC_ERROR_BAD_DER);
-+ return rv;
-+}
-+
-+/*
-+ * Pulls the hash algorithm, signing algorithm, and key type out of a
-+ * composite algorithm.
-+ *
-+ * alg: the composite algorithm to dissect.
-+ * hashalg: address of a SECOidTag which will be set with the hash algorithm.
-+ * signalg: address of a SECOidTag which will be set with the signing alg.
-+ * keyType: address of a KeyType which will be set with the key type.
-+ * Returns: SECSuccess if the algorithm was acceptable, SECFailure if the
-+ * algorithm was not found or was not a signing algorithm.
-+ */
-+static SECStatus
-+decodeSigAlg(SECOidTag alg, SECOidTag *hashalg)
-+{
-+ PR_ASSERT(hashalg!=NULL);
-+
-+ switch (alg) {
-+ /* We probably shouldn't be generating MD2 signatures either */
-+ case SEC_OID_PKCS1_MD2_WITH_RSA_ENCRYPTION:
-+ *hashalg = SEC_OID_MD2;
-+ break;
-+ case SEC_OID_PKCS1_MD5_WITH_RSA_ENCRYPTION:
-+ *hashalg = SEC_OID_MD5;
-+ break;
-+ case SEC_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION:
-+ case SEC_OID_ISO_SHA_WITH_RSA_SIGNATURE:
-+ *hashalg = SEC_OID_SHA1;
-+ break;
-+
-+ case SEC_OID_PKCS1_SHA256_WITH_RSA_ENCRYPTION:
-+ *hashalg = SEC_OID_SHA256;
-+ break;
-+ case SEC_OID_PKCS1_SHA384_WITH_RSA_ENCRYPTION:
-+ *hashalg = SEC_OID_SHA384;
-+ break;
-+ case SEC_OID_PKCS1_SHA512_WITH_RSA_ENCRYPTION:
-+ *hashalg = SEC_OID_SHA512;
-+ break;
-+
-+ /* what about normal DSA? */
-+ case SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST:
-+ case SEC_OID_BOGUS_DSA_SIGNATURE_WITH_SHA1_DIGEST:
-+ case SEC_OID_ANSIX962_ECDSA_SIGNATURE_WITH_SHA1_DIGEST:
-+ *hashalg = SEC_OID_SHA1;
-+ break;
-+ case SEC_OID_MISSI_DSS:
-+ case SEC_OID_MISSI_KEA_DSS:
-+ case SEC_OID_MISSI_KEA_DSS_OLD:
-+ case SEC_OID_MISSI_DSS_OLD:
-+ *hashalg = SEC_OID_SHA1;
-+ break;
-+ /* we don't implement MD4 hashes */
-+ case SEC_OID_PKCS1_MD4_WITH_RSA_ENCRYPTION:
-+ default:
-+ return SECFailure;
-+ }
-+ return SECSuccess;
-+}
-+
-+VFYContext *
-+VFY_CreateContext(SECKEYPublicKey *key, SECItem *sig, SECOidTag algid,
-+ void *wincx)
-+{
-+ VFYContext *cx;
-+ SECStatus rv;
-+ unsigned char *tmp;
-+ unsigned int sigLen;
-+
-+ cx = (VFYContext*) PORT_ZAlloc(sizeof(VFYContext));
-+ if (cx) {
-+ cx->wincx = wincx;
-+ cx->hasSignature = (sig != NULL);
-+ cx->sigAlg = algid;
-+ rv = SECSuccess;
-+ switch (key->keyType) {
-+ case rsaKey:
-+ cx->type = VFY_RSA;
-+ cx->key = SECKEY_CopyPublicKey(key); /* extra safety precautions */
-+ if (sig) {
-+ int hashid;
-+ rv = DecryptSigBlock(&hashid, &cx->digest[0],
-+ key, sig, (char*)wincx);
-+ cx->alg = hashid;
-+ } else {
-+ rv = decodeSigAlg(algid,&cx->alg);
-+ }
-+ break;
-+ case fortezzaKey:
-+ case dsaKey:
-+ case ecKey:
-+ if (key->keyType == ecKey) {
-+ cx->type = VFY_ECDSA;
-+ /* Unlike DSA, EDSA does not have a fixed signature length
-+ * (it depends on the key size)
-+ */
-+ sigLen = SECKEY_PublicKeyStrength(key) * 2;
-+ tmp = cx->ecdsadigest;
-+ } else {
-+ cx->type = VFY_DSA;
-+ sigLen = DSA_SIGNATURE_LEN;
-+ tmp = cx->digest;
-+ }
-+ cx->alg = SEC_OID_SHA1;
-+ cx->key = SECKEY_CopyPublicKey(key);
-+ if (sig) {
-+ rv = decodeECorDSASignature(algid,sig,tmp,sigLen);
-+ }
-+ break;
-+ default:
-+ rv = SECFailure;
-+ break;
-+ }
-+ if (rv) goto loser;
-+ switch (cx->alg) {
-+ case SEC_OID_MD2:
-+ case SEC_OID_MD5:
-+ case SEC_OID_SHA1:
-+ case SEC_OID_SHA256:
-+ case SEC_OID_SHA384:
-+ case SEC_OID_SHA512:
-+ break;
-+ default:
-+ PORT_SetError(SEC_ERROR_INVALID_ALGORITHM);
-+ goto loser;
-+ }
-+ }
-+ return cx;
-+
-+ loser:
-+ VFY_DestroyContext(cx, PR_TRUE);
-+ return 0;
-+}
-+
-+void
-+VFY_DestroyContext(VFYContext *cx, PRBool freeit)
-+{
-+ if (cx) {
-+ if (cx->hashcx != NULL) {
-+ (*cx->hashobj->destroy)(cx->hashcx, PR_TRUE);
-+ cx->hashcx = NULL;
-+ }
-+ if (cx->key) {
-+ SECKEY_DestroyPublicKey(cx->key);
-+ }
-+ if (freeit) {
-+ PORT_ZFree(cx, sizeof(VFYContext));
-+ }
-+ }
-+}
-+
-+SECStatus
-+VFY_Begin(VFYContext *cx)
-+{
-+ if (cx->hashcx != NULL) {
-+ (*cx->hashobj->destroy)(cx->hashcx, PR_TRUE);
-+ cx->hashcx = NULL;
-+ }
-+
-+ cx->hashobj = HASH_GetHashObjectByOidTag(cx->alg);
-+ if (!cx->hashobj)
-+ return SECFailure; /* error code is set */
-+
-+ cx->hashcx = (*cx->hashobj->create)();
-+ if (cx->hashcx == NULL)
-+ return SECFailure;
-+
-+ (*cx->hashobj->begin)(cx->hashcx);
-+ return SECSuccess;
-+}
-+
-+SECStatus
-+VFY_Update(VFYContext *cx, unsigned char *input, unsigned inputLen)
-+{
-+ if (cx->hashcx == NULL) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+ (*cx->hashobj->update)(cx->hashcx, input, inputLen);
-+ return SECSuccess;
-+}
-+
-+SECStatus
-+VFY_EndWithSignature(VFYContext *cx, SECItem *sig)
-+{
-+ unsigned char final[32];
-+ unsigned part;
-+ SECItem hash,dsasig; /* dsasig is also used for ECDSA */
-+ SECStatus rv;
-+
-+ if ((cx->hasSignature == PR_FALSE) && (sig == NULL)) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+
-+ if (cx->hashcx == NULL) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+ (*cx->hashobj->end)(cx->hashcx, final, &part, sizeof(final));
-+ switch (cx->type) {
-+ case VFY_DSA:
-+ case VFY_ECDSA:
-+ if (cx->type == VFY_DSA) {
-+ dsasig.data = cx->digest;
-+ dsasig.len = DSA_SIGNATURE_LEN;
-+ } else {
-+ dsasig.data = cx->ecdsadigest;
-+ dsasig.len = SECKEY_PublicKeyStrength(cx->key) * 2;
-+ }
-+ if (sig) {
-+ rv = decodeECorDSASignature(cx->sigAlg,sig,dsasig.data,
-+ dsasig.len);
-+ if (rv != SECSuccess) {
-+ PORT_SetError(SEC_ERROR_BAD_SIGNATURE);
-+ return SECFailure;
-+ }
-+ }
-+ hash.data = final;
-+ hash.len = part;
-+ if (PK11_Verify(cx->key,&dsasig,&hash,cx->wincx) != SECSuccess) {
-+ PORT_SetError(SEC_ERROR_BAD_SIGNATURE);
-+ return SECFailure;
-+ }
-+ break;
-+ case VFY_RSA:
-+ if (sig) {
-+ int hashid;
-+ rv = DecryptSigBlock(&hashid, &cx->digest[0],
-+ cx->key, sig, (char*)cx->wincx);
-+ if ((rv != SECSuccess) || (hashid != cx->alg)) {
-+ PORT_SetError(SEC_ERROR_BAD_SIGNATURE);
-+ return SECFailure;
-+ }
-+ }
-+ if (PORT_Memcmp(final, cx->digest, part)) {
-+ PORT_SetError(SEC_ERROR_BAD_SIGNATURE);
-+ return SECFailure;
-+ }
-+ break;
-+ default:
-+ PORT_SetError(SEC_ERROR_BAD_SIGNATURE);
-+ return SECFailure; /* shouldn't happen */
-+ }
-+ return SECSuccess;
-+}
-+
-+SECStatus
-+VFY_End(VFYContext *cx)
-+{
-+ return VFY_EndWithSignature(cx,NULL);
-+}
-+
-+/************************************************************************/
-+/*
-+ * Verify that a previously-computed digest matches a signature.
-+ * XXX This should take a parameter that specifies the digest algorithm,
-+ * and we should compare that the algorithm found in the DigestInfo
-+ * matches it!
-+ */
-+SECStatus
-+VFY_VerifyDigest(SECItem *digest, SECKEYPublicKey *key, SECItem *sig,
-+ SECOidTag algid, void *wincx)
-+{
-+ SECStatus rv;
-+ VFYContext *cx;
-+ SECItem dsasig;
-+#ifdef NSS_ENABLE_ECC
-+ SECItem ecdsasig;
-+#endif /* NSS_ENABLE_ECC */
-+
-+ rv = SECFailure;
-+
-+ cx = VFY_CreateContext(key, sig, algid, wincx);
-+ if (cx != NULL) {
-+ switch (key->keyType) {
-+ case rsaKey:
-+ if (PORT_Memcmp(digest->data, cx->digest, digest->len)) {
-+ PORT_SetError(SEC_ERROR_BAD_SIGNATURE);
-+ } else {
-+ rv = SECSuccess;
-+ }
-+ break;
-+ case fortezzaKey:
-+ case dsaKey:
-+ dsasig.data = &cx->digest[0];
-+ dsasig.len = DSA_SIGNATURE_LEN; /* magic size of dsa signature */
-+ if (PK11_Verify(cx->key, &dsasig, digest, cx->wincx) != SECSuccess) {
-+ PORT_SetError(SEC_ERROR_BAD_SIGNATURE);
-+ } else {
-+ rv = SECSuccess;
-+ }
-+ break;
-+#ifdef NSS_ENABLE_ECC
-+ case ecKey:
-+ ecdsasig.data = &cx->ecdsadigest[0];
-+ ecdsasig.len = SECKEY_PublicKeyStrength(cx->key) * 2;
-+ if (PK11_Verify(cx->key, &ecdsasig, digest, cx->wincx)
-+ != SECSuccess) {
-+ PORT_SetError(SEC_ERROR_BAD_SIGNATURE);
-+ } else {
-+ rv = SECSuccess;
-+ }
-+ break;
-+#endif /* NSS_ENABLE_ECC */
-+ default:
-+ break;
-+ }
-+ VFY_DestroyContext(cx, PR_TRUE);
-+ }
-+ return rv;
-+}
-+
-+SECStatus
-+VFY_VerifyData(unsigned char *buf, int len, SECKEYPublicKey *key,
-+ SECItem *sig, SECOidTag algid, void *wincx)
-+{
-+ SECStatus rv;
-+ VFYContext *cx;
-+
-+ cx = VFY_CreateContext(key, sig, algid, wincx);
-+ if (cx == NULL)
-+ return SECFailure;
-+
-+ rv = VFY_Begin(cx);
-+ if (rv == SECSuccess) {
-+ rv = VFY_Update(cx, buf, len);
-+ if (rv == SECSuccess)
-+ rv = VFY_End(cx);
-+ }
-+
-+ VFY_DestroyContext(cx, PR_TRUE);
-+ return rv;
-+}
-+
-+SECStatus
-+SEC_VerifyFile(FILE *input, SECKEYPublicKey *key, SECItem *sig,
-+ SECOidTag algid, void *wincx)
-+{
-+ unsigned char buf[1024];
-+ SECStatus rv;
-+ int nb;
-+ VFYContext *cx;
-+
-+ cx = VFY_CreateContext(key, sig, algid, wincx);
-+ if (cx == NULL)
-+ rv = SECFailure;
-+
-+ rv = VFY_Begin(cx);
-+ if (rv == SECSuccess) {
-+ /*
-+ * Now feed the contents of the input file into the digest algorithm,
-+ * one chunk at a time, until we have exhausted the input.
-+ */
-+ for (;;) {
-+ if (feof(input))
-+ break;
-+ nb = fread(buf, 1, sizeof(buf), input);
-+ if (nb == 0) {
-+ if (ferror(input)) {
-+ PORT_SetError(SEC_ERROR_IO);
-+ VFY_DestroyContext(cx, PR_TRUE);
-+ return SECFailure;
-+ }
-+ break;
-+ }
-+ rv = VFY_Update(cx, buf, nb);
-+ if (rv != SECSuccess)
-+ goto loser;
-+ }
-+ }
-+
-+ /* Verify the digest */
-+ rv = VFY_End(cx);
-+ /* FALL THROUGH */
-+
-+ loser:
-+ VFY_DestroyContext(cx, PR_TRUE);
-+ return rv;
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/stanpcertdb.c 2004-12-13 13:06:46.690399072 +0100
-@@ -0,0 +1,990 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#include "prtime.h"
-+
-+#include "cert.h"
-+#include "mcom_db.h"
-+#include "certdb.h"
-+#include "secitem.h"
-+#include "secder.h"
-+
-+/* Call to PK11_FreeSlot below */
-+
-+#include "secasn1.h"
-+#include "secerr.h"
-+#include "nssilock.h"
-+#include "prmon.h"
-+#include "nsslocks.h"
-+#include "base64.h"
-+#include "sechash.h"
-+#include "plhash.h"
-+#include "pk11func.h" /* sigh */
-+
-+#ifndef NSS_3_4_CODE
-+#define NSS_3_4_CODE
-+#endif /* NSS_3_4_CODE */
-+#include "nsspki.h"
-+#include "pki.h"
-+#include "pkim.h"
-+#include "pki3hack.h"
-+#include "ckhelper.h"
-+#include "base.h"
-+#include "pkistore.h"
-+#include "dev3hack.h"
-+#include "dev.h"
-+
-+PRBool
-+SEC_CertNicknameConflict(char *nickname, SECItem *derSubject,
-+ CERTCertDBHandle *handle)
-+{
-+ CERTCertificate *cert;
-+ PRBool conflict = PR_FALSE;
-+
-+ cert=CERT_FindCertByNickname(handle, nickname);
-+
-+ if (!cert) {
-+ return conflict;
-+ }
-+
-+ conflict = !SECITEM_ItemsAreEqual(derSubject,&cert->derSubject);
-+ CERT_DestroyCertificate(cert);
-+ return conflict;
-+}
-+
-+SECStatus
-+SEC_DeletePermCertificate(CERTCertificate *cert)
-+{
-+ PRStatus nssrv;
-+ NSSTrustDomain *td = STAN_GetDefaultTrustDomain();
-+ NSSCertificate *c = STAN_GetNSSCertificate(cert);
-+
-+ /* get rid of the token instances */
-+ nssrv = NSSCertificate_DeleteStoredObject(c, NULL);
-+
-+ /* get rid of the cache entry */
-+ nssTrustDomain_LockCertCache(td);
-+ nssTrustDomain_RemoveCertFromCacheLOCKED(td, c);
-+ nssTrustDomain_UnlockCertCache(td);
-+
-+ return (nssrv == PR_SUCCESS) ? SECSuccess : SECFailure;
-+}
-+
-+SECStatus
-+CERT_GetCertTrust(CERTCertificate *cert, CERTCertTrust *trust)
-+{
-+ SECStatus rv;
-+ CERT_LockCertTrust(cert);
-+ if ( cert->trust == NULL ) {
-+ rv = SECFailure;
-+ } else {
-+ *trust = *cert->trust;
-+ rv = SECSuccess;
-+ }
-+ CERT_UnlockCertTrust(cert);
-+ return(rv);
-+}
-+
-+#ifdef notdef
-+static char *
-+cert_parseNickname(char *nickname)
-+{
-+ char *cp;
-+ for (cp=nickname; *cp && *cp != ':'; cp++);
-+ if (*cp == ':') return cp+1;
-+ return nickname;
-+}
-+#endif
-+
-+SECStatus
-+CERT_ChangeCertTrust(CERTCertDBHandle *handle, CERTCertificate *cert,
-+ CERTCertTrust *trust)
-+{
-+ SECStatus rv = SECFailure;
-+ PRStatus ret;
-+
-+ CERT_LockCertTrust(cert);
-+ ret = STAN_ChangeCertTrust(cert, trust);
-+ rv = (ret == PR_SUCCESS) ? SECSuccess : SECFailure;
-+ CERT_UnlockCertTrust(cert);
-+ return rv;
-+}
-+
-+extern const NSSError NSS_ERROR_INVALID_CERTIFICATE;
-+
-+SECStatus
-+__CERT_AddTempCertToPerm(CERTCertificate *cert, char *nickname,
-+ CERTCertTrust *trust)
-+{
-+ NSSUTF8 *stanNick;
-+ PK11SlotInfo *slot;
-+ NSSToken *internal;
-+ NSSCryptoContext *context;
-+ nssCryptokiObject *permInstance;
-+ NSSCertificate *c = STAN_GetNSSCertificate(cert);
-+ context = c->object.cryptoContext;
-+ if (!context) {
-+ PORT_SetError(SEC_ERROR_ADDING_CERT);
-+ return SECFailure; /* wasn't a temp cert */
-+ }
-+ stanNick = nssCertificate_GetNickname(c, NULL);
-+ if (stanNick && nickname && strcmp(nickname, stanNick) != 0) {
-+ /* take the new nickname */
-+ cert->nickname = NULL;
-+ stanNick = NULL;
-+ }
-+ if (!stanNick && nickname) {
-+ stanNick = nssUTF8_Duplicate((NSSUTF8 *)nickname, c->object.arena);
-+ }
-+ /* Delete the temp instance */
-+ nssCertificateStore_Lock(context->certStore);
-+ nssCertificateStore_RemoveCertLOCKED(context->certStore, c);
-+ nssCertificateStore_Unlock(context->certStore);
-+ c->object.cryptoContext = NULL;
-+ /* Import the perm instance onto the internal token */
-+ slot = PK11_GetInternalKeySlot();
-+ internal = PK11Slot_GetNSSToken(slot);
-+ permInstance = nssToken_ImportCertificate(internal, NULL,
-+ NSSCertificateType_PKIX,
-+ &c->id,
-+ stanNick,
-+ &c->encoding,
-+ &c->issuer,
-+ &c->subject,
-+ &c->serial,
-+ cert->emailAddr,
-+ PR_TRUE);
-+ PK11_FreeSlot(slot);
-+ if (!permInstance) {
-+ if (NSS_GetError() == NSS_ERROR_INVALID_CERTIFICATE) {
-+ PORT_SetError(SEC_ERROR_REUSED_ISSUER_AND_SERIAL);
-+ }
-+ return SECFailure;
-+ }
-+ nssPKIObject_AddInstance(&c->object, permInstance);
-+ nssTrustDomain_AddCertsToCache(STAN_GetDefaultTrustDomain(), &c, 1);
-+ /* reset the CERTCertificate fields */
-+ cert->nssCertificate = NULL;
-+ cert = STAN_GetCERTCertificate(c); /* will return same pointer */
-+ if (!cert) {
-+ return SECFailure;
-+ }
-+ cert->istemp = PR_FALSE;
-+ cert->isperm = PR_TRUE;
-+ if (!trust) {
-+ return SECSuccess;
-+ }
-+ return (STAN_ChangeCertTrust(cert, trust) == PR_SUCCESS) ?
-+ SECSuccess: SECFailure;
-+}
-+
-+SECStatus
-+CERT_AddTempCertToPerm(CERTCertificate *cert, char *nickname,
-+ CERTCertTrust *trust)
-+{
-+ return __CERT_AddTempCertToPerm(cert, nickname, trust);
-+}
-+
-+CERTCertificate *
-+__CERT_NewTempCertificate(CERTCertDBHandle *handle, SECItem *derCert,
-+ char *nickname, PRBool isperm, PRBool copyDER)
-+{
-+ PRStatus nssrv;
-+ NSSCertificate *c;
-+ CERTCertificate *cc;
-+ NSSCertificate *tempCert;
-+ nssPKIObject *pkio;
-+ NSSCryptoContext *gCC = STAN_GetDefaultCryptoContext();
-+ NSSTrustDomain *gTD = STAN_GetDefaultTrustDomain();
-+ if (!isperm) {
-+ NSSDER encoding;
-+ NSSITEM_FROM_SECITEM(&encoding, derCert);
-+ /* First, see if it is already a temp cert */
-+ c = NSSCryptoContext_FindCertificateByEncodedCertificate(gCC,
-+ &encoding);
-+ if (!c) {
-+ /* Then, see if it is already a perm cert */
-+ c = NSSTrustDomain_FindCertificateByEncodedCertificate(handle,
-+ &encoding);
-+ }
-+ if (c) {
-+ /* actually, that search ends up going by issuer/serial,
-+ * so it is still possible to return a cert with the same
-+ * issuer/serial but a different encoding, and we're
-+ * going to reject that
-+ */
-+ if (!nssItem_Equal(&c->encoding, &encoding, NULL)) {
-+ nssCertificate_Destroy(c);
-+ PORT_SetError(SEC_ERROR_REUSED_ISSUER_AND_SERIAL);
-+ cc = NULL;
-+ } else {
-+ cc = STAN_GetCERTCertificate(c);
-+ }
-+ return cc;
-+ }
-+ }
-+ pkio = nssPKIObject_Create(NULL, NULL, gTD, gCC);
-+ if (!pkio) {
-+ return NULL;
-+ }
-+ c = nss_ZNEW(pkio->arena, NSSCertificate);
-+ if (!c) {
-+ nssPKIObject_Destroy(pkio);
-+ return NULL;
-+ }
-+ c->object = *pkio;
-+ if (copyDER) {
-+ nssItem_Create(c->object.arena, &c->encoding,
-+ derCert->len, derCert->data);
-+ } else {
-+ NSSITEM_FROM_SECITEM(&c->encoding, derCert);
-+ }
-+ /* Forces a decoding of the cert in order to obtain the parts used
-+ * below
-+ */
-+ cc = STAN_GetCERTCertificate(c);
-+ if (!cc) {
-+ goto loser;
-+ }
-+ nssItem_Create(c->object.arena,
-+ &c->issuer, cc->derIssuer.len, cc->derIssuer.data);
-+ nssItem_Create(c->object.arena,
-+ &c->subject, cc->derSubject.len, cc->derSubject.data);
-+ if (PR_TRUE) {
-+ /* CERTCertificate stores serial numbers decoded. I need the DER
-+ * here. sigh.
-+ */
-+ SECItem derSerial = { 0 };
-+ CERT_SerialNumberFromDERCert(&cc->derCert, &derSerial);
-+ if (!derSerial.data) goto loser;
-+ nssItem_Create(c->object.arena, &c->serial, derSerial.len, derSerial.data);
-+ PORT_Free(derSerial.data);
-+ }
-+ if (nickname) {
-+ c->object.tempName = nssUTF8_Create(c->object.arena,
-+ nssStringType_UTF8String,
-+ (NSSUTF8 *)nickname,
-+ PORT_Strlen(nickname));
-+ }
-+ if (cc->emailAddr && cc->emailAddr[0]) {
-+ c->email = nssUTF8_Create(c->object.arena,
-+ nssStringType_PrintableString,
-+ (NSSUTF8 *)cc->emailAddr,
-+ PORT_Strlen(cc->emailAddr));
-+ }
-+ /* this function cannot detect if the cert exists as a temp cert now, but
-+ * didn't when CERT_NewTemp was first called.
-+ */
-+ nssrv = NSSCryptoContext_ImportCertificate(gCC, c);
-+ if (nssrv != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ /* so find the entry in the temp store */
-+ tempCert = NSSCryptoContext_FindCertificateByIssuerAndSerialNumber(gCC,
-+ &c->issuer,
-+ &c->serial);
-+ /* destroy the copy */
-+ NSSCertificate_Destroy(c);
-+ if (tempCert) {
-+ /* and use the "official" entry */
-+ c = tempCert;
-+ cc = STAN_GetCERTCertificate(c);
-+ if (!cc) {
-+ return NULL;
-+ }
-+ } else {
-+ return NULL;
-+ }
-+ cc->istemp = PR_TRUE;
-+ cc->isperm = PR_FALSE;
-+ return cc;
-+loser:
-+ nssPKIObject_Destroy(&c->object);
-+ return NULL;
-+}
-+
-+CERTCertificate *
-+CERT_NewTempCertificate(CERTCertDBHandle *handle, SECItem *derCert,
-+ char *nickname, PRBool isperm, PRBool copyDER)
-+{
-+ return( __CERT_NewTempCertificate(handle, derCert, nickname,
-+ isperm, copyDER) );
-+}
-+
-+/* maybe all the wincx's should be some const for internal token login? */
-+CERTCertificate *
-+CERT_FindCertByIssuerAndSN(CERTCertDBHandle *handle, CERTIssuerAndSN *issuerAndSN)
-+{
-+ PK11SlotInfo *slot;
-+ CERTCertificate *cert;
-+
-+ cert = PK11_FindCertByIssuerAndSN(&slot,issuerAndSN,NULL);
-+ if (cert && slot) {
-+ PK11_FreeSlot(slot);
-+ }
-+
-+ return cert;
-+}
-+
-+static NSSCertificate *
-+get_best_temp_or_perm(NSSCertificate *ct, NSSCertificate *cp)
-+{
-+ NSSUsage usage;
-+ NSSCertificate *arr[3];
-+ if (!ct) {
-+ return nssCertificate_AddRef(cp);
-+ } else if (!cp) {
-+ return nssCertificate_AddRef(ct);
-+ }
-+ arr[0] = ct;
-+ arr[1] = cp;
-+ arr[2] = NULL;
-+ usage.anyUsage = PR_TRUE;
-+ return nssCertificateArray_FindBestCertificate(arr, NULL, &usage, NULL);
-+}
-+
-+CERTCertificate *
-+CERT_FindCertByName(CERTCertDBHandle *handle, SECItem *name)
-+{
-+ NSSCertificate *cp, *ct, *c;
-+ NSSDER subject;
-+ NSSUsage usage;
-+ NSSCryptoContext *cc;
-+ NSSITEM_FROM_SECITEM(&subject, name);
-+ usage.anyUsage = PR_TRUE;
-+ cc = STAN_GetDefaultCryptoContext();
-+ ct = NSSCryptoContext_FindBestCertificateBySubject(cc, &subject,
-+ NULL, &usage, NULL);
-+ cp = NSSTrustDomain_FindBestCertificateBySubject(handle, &subject,
-+ NULL, &usage, NULL);
-+ c = get_best_temp_or_perm(ct, cp);
-+ if (ct) {
-+ CERTCertificate *cert = STAN_GetCERTCertificate(ct);
-+ if (!cert) {
-+ return NULL;
-+ }
-+ CERT_DestroyCertificate(cert);
-+ }
-+ if (cp) {
-+ CERTCertificate *cert = STAN_GetCERTCertificate(cp);
-+ if (!cert) {
-+ return NULL;
-+ }
-+ CERT_DestroyCertificate(cert);
-+ }
-+ if (c) {
-+ return STAN_GetCERTCertificate(c);
-+ } else {
-+ return NULL;
-+ }
-+}
-+
-+CERTCertificate *
-+CERT_FindCertByKeyID(CERTCertDBHandle *handle, SECItem *name, SECItem *keyID)
-+{
-+ CERTCertList *list =
-+ CERT_CreateSubjectCertList(NULL,handle,name,0,PR_FALSE);
-+ CERTCertificate *cert = NULL;
-+ CERTCertListNode *node = CERT_LIST_HEAD(list);
-+
-+ if (list == NULL) return NULL;
-+
-+ for (node = CERT_LIST_HEAD(list); node ; node = CERT_LIST_NEXT(node)) {
-+ if (SECITEM_ItemsAreEqual(&cert->subjectKeyID, keyID) ) {
-+ cert = CERT_DupCertificate(node->cert);
-+ break;
-+ }
-+ }
-+ return cert;
-+}
-+
-+CERTCertificate *
-+CERT_FindCertByNickname(CERTCertDBHandle *handle, char *nickname)
-+{
-+ NSSCryptoContext *cc;
-+ NSSCertificate *c, *ct;
-+ CERTCertificate *cert;
-+ NSSUsage usage;
-+ usage.anyUsage = PR_TRUE;
-+ cc = STAN_GetDefaultCryptoContext();
-+ ct = NSSCryptoContext_FindBestCertificateByNickname(cc, nickname,
-+ NULL, &usage, NULL);
-+ cert = PK11_FindCertFromNickname(nickname, NULL);
-+ c = NULL;
-+ if (cert) {
-+ c = get_best_temp_or_perm(ct, STAN_GetNSSCertificate(cert));
-+ CERT_DestroyCertificate(cert);
-+ if (ct) {
-+ CERTCertificate *cert2 = STAN_GetCERTCertificate(ct);
-+ if (!cert2) {
-+ return NULL;
-+ }
-+ CERT_DestroyCertificate(cert2);
-+ }
-+ } else {
-+ c = ct;
-+ }
-+ if (c) {
-+ return STAN_GetCERTCertificate(c);
-+ } else {
-+ return NULL;
-+ }
-+}
-+
-+CERTCertificate *
-+CERT_FindCertByDERCert(CERTCertDBHandle *handle, SECItem *derCert)
-+{
-+ NSSCryptoContext *cc;
-+ NSSCertificate *c;
-+ NSSDER encoding;
-+ NSSITEM_FROM_SECITEM(&encoding, derCert);
-+ cc = STAN_GetDefaultCryptoContext();
-+ c = NSSCryptoContext_FindCertificateByEncodedCertificate(cc, &encoding);
-+ if (!c) {
-+ c = NSSTrustDomain_FindCertificateByEncodedCertificate(handle,
-+ &encoding);
-+ if (!c) return NULL;
-+ }
-+ return STAN_GetCERTCertificate(c);
-+}
-+
-+CERTCertificate *
-+CERT_FindCertByNicknameOrEmailAddr(CERTCertDBHandle *handle, char *name)
-+{
-+ NSSCryptoContext *cc;
-+ NSSCertificate *c, *ct;
-+ CERTCertificate *cert;
-+ NSSUsage usage;
-+
-+ if (NULL == name) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return NULL;
-+ }
-+ usage.anyUsage = PR_TRUE;
-+ cc = STAN_GetDefaultCryptoContext();
-+ ct = NSSCryptoContext_FindBestCertificateByNickname(cc, name,
-+ NULL, &usage, NULL);
-+ if (!ct && PORT_Strchr(name, '@') != NULL) {
-+ char* lowercaseName = CERT_FixupEmailAddr(name);
-+ if (lowercaseName) {
-+ ct = NSSCryptoContext_FindBestCertificateByEmail(cc, lowercaseName,
-+ NULL, &usage, NULL);
-+ PORT_Free(lowercaseName);
-+ }
-+ }
-+ cert = PK11_FindCertFromNickname(name, NULL);
-+ if (cert) {
-+ c = get_best_temp_or_perm(ct, STAN_GetNSSCertificate(cert));
-+ CERT_DestroyCertificate(cert);
-+ if (ct) {
-+ CERTCertificate *cert2 = STAN_GetCERTCertificate(ct);
-+ if (!cert2) {
-+ return NULL;
-+ }
-+ CERT_DestroyCertificate(cert2);
-+ }
-+ } else {
-+ c = ct;
-+ }
-+ if (c) {
-+ return STAN_GetCERTCertificate(c);
-+ }
-+ return NULL;
-+}
-+
-+static void
-+add_to_subject_list(CERTCertList *certList, CERTCertificate *cert,
-+ PRBool validOnly, int64 sorttime)
-+{
-+ SECStatus secrv;
-+ if (!validOnly ||
-+ CERT_CheckCertValidTimes(cert, sorttime, PR_FALSE)
-+ == secCertTimeValid) {
-+ secrv = CERT_AddCertToListSorted(certList, cert,
-+ CERT_SortCBValidity,
-+ (void *)&sorttime);
-+ if (secrv != SECSuccess) {
-+ CERT_DestroyCertificate(cert);
-+ }
-+ } else {
-+ CERT_DestroyCertificate(cert);
-+ }
-+}
-+
-+CERTCertList *
-+CERT_CreateSubjectCertList(CERTCertList *certList, CERTCertDBHandle *handle,
-+ SECItem *name, int64 sorttime, PRBool validOnly)
-+{
-+ NSSCryptoContext *cc;
-+ NSSCertificate **tSubjectCerts, **pSubjectCerts;
-+ NSSCertificate **ci;
-+ CERTCertificate *cert;
-+ NSSDER subject;
-+ PRBool myList = PR_FALSE;
-+ cc = STAN_GetDefaultCryptoContext();
-+ NSSITEM_FROM_SECITEM(&subject, name);
-+ /* Collect both temp and perm certs for the subject */
-+ tSubjectCerts = NSSCryptoContext_FindCertificatesBySubject(cc,
-+ &subject,
-+ NULL,
-+ 0,
-+ NULL);
-+ pSubjectCerts = NSSTrustDomain_FindCertificatesBySubject(handle,
-+ &subject,
-+ NULL,
-+ 0,
-+ NULL);
-+ if (!tSubjectCerts && !pSubjectCerts) {
-+ return NULL;
-+ }
-+ if (certList == NULL) {
-+ certList = CERT_NewCertList();
-+ myList = PR_TRUE;
-+ if (!certList) goto loser;
-+ }
-+ /* Iterate over the matching temp certs. Add them to the list */
-+ ci = tSubjectCerts;
-+ while (ci && *ci) {
-+ cert = STAN_GetCERTCertificate(*ci);
-+ if (cert) {
-+ add_to_subject_list(certList, cert, validOnly, sorttime);
-+ }
-+ ci++;
-+ }
-+ /* Iterate over the matching perm certs. Add them to the list */
-+ ci = pSubjectCerts;
-+ while (ci && *ci) {
-+ cert = STAN_GetCERTCertificate(*ci);
-+ if (cert) {
-+ add_to_subject_list(certList, cert, validOnly, sorttime);
-+ }
-+ ci++;
-+ }
-+ nss_ZFreeIf(tSubjectCerts);
-+ nss_ZFreeIf(pSubjectCerts);
-+ return certList;
-+loser:
-+ nss_ZFreeIf(tSubjectCerts);
-+ nss_ZFreeIf(pSubjectCerts);
-+ if (myList && certList != NULL) {
-+ CERT_DestroyCertList(certList);
-+ }
-+ return NULL;
-+}
-+
-+void
-+CERT_DestroyCertificate(CERTCertificate *cert)
-+{
-+ if ( cert ) {
-+ /* don't use STAN_GetNSSCertificate because we don't want to
-+ * go to the trouble of translating the CERTCertificate into
-+ * an NSSCertificate just to destroy it. If it hasn't been done
-+ * yet, don't do it at all.
-+ */
-+ NSSCertificate *tmp = cert->nssCertificate;
-+ if (tmp) {
-+ /* delete the NSSCertificate */
-+ NSSCertificate_Destroy(tmp);
-+ } else {
-+ PORT_FreeArena(cert->arena, PR_FALSE);
-+ }
-+ }
-+ return;
-+}
-+
-+#ifdef notdef
-+SECStatus
-+CERT_ChangeCertTrustByUsage(CERTCertDBHandle *certdb,
-+ CERTCertificate *cert, SECCertUsage usage)
-+{
-+ SECStatus rv;
-+ CERTCertTrust trust;
-+ CERTCertTrust tmptrust;
-+ unsigned int certtype;
-+ PRBool saveit;
-+
-+ saveit = PR_TRUE;
-+
-+ PORT_Memset((void *)&trust, 0, sizeof(trust));
-+
-+ certtype = cert->nsCertType;
-+
-+ /* if no app bits in cert type, then set all app bits */
-+ if ( ! ( certtype & NS_CERT_TYPE_APP ) ) {
-+ certtype |= NS_CERT_TYPE_APP;
-+ }
-+
-+ switch ( usage ) {
-+ case certUsageEmailSigner:
-+ case certUsageEmailRecipient:
-+ if ( certtype & NS_CERT_TYPE_EMAIL ) {
-+ trust.emailFlags = CERTDB_VALID_PEER;
-+ if ( ! ( cert->rawKeyUsage & KU_KEY_ENCIPHERMENT ) ) {
-+ /* don't save it if KeyEncipherment is not allowed */
-+ saveit = PR_FALSE;
-+ }
-+ }
-+ break;
-+ case certUsageUserCertImport:
-+ if ( certtype & NS_CERT_TYPE_EMAIL ) {
-+ trust.emailFlags = CERTDB_VALID_PEER;
-+ }
-+ /* VALID_USER is already set if the cert was imported,
-+ * in the case that the cert was already in the database
-+ * through SMIME or other means, we should set the USER
-+ * flags, if they are not already set.
-+ */
-+ if( cert->isperm ) {
-+ if ( certtype & NS_CERT_TYPE_SSL_CLIENT ) {
-+ if( !(cert->trust->sslFlags & CERTDB_USER) ) {
-+ trust.sslFlags |= CERTDB_USER;
-+ }
-+ }
-+
-+ if ( certtype & NS_CERT_TYPE_EMAIL ) {
-+ if( !(cert->trust->emailFlags & CERTDB_USER) ) {
-+ trust.emailFlags |= CERTDB_USER;
-+ }
-+ }
-+
-+ if ( certtype & NS_CERT_TYPE_OBJECT_SIGNING ) {
-+ if( !(cert->trust->objectSigningFlags & CERTDB_USER) ) {
-+ trust.objectSigningFlags |= CERTDB_USER;
-+ }
-+ }
-+ }
-+ break;
-+ default: /* XXX added to quiet warnings; no other cases needed? */
-+ break;
-+ }
-+
-+ if ( (trust.sslFlags | trust.emailFlags | trust.objectSigningFlags) == 0 ){
-+ saveit = PR_FALSE;
-+ }
-+
-+ if ( saveit && cert->isperm ) {
-+ /* Cert already in the DB. Just adjust flags */
-+ tmptrust = *cert->trust;
-+ tmptrust.sslFlags |= trust.sslFlags;
-+ tmptrust.emailFlags |= trust.emailFlags;
-+ tmptrust.objectSigningFlags |= trust.objectSigningFlags;
-+
-+ rv = CERT_ChangeCertTrust(cert->dbhandle, cert,
-+ &tmptrust);
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+ }
-+
-+ rv = SECSuccess;
-+ goto done;
-+
-+loser:
-+ rv = SECFailure;
-+done:
-+
-+ return(rv);
-+}
-+#endif
-+
-+int
-+CERT_GetDBContentVersion(CERTCertDBHandle *handle)
-+{
-+ /* should read the DB content version from the pkcs #11 device */
-+ return 0;
-+}
-+
-+SECStatus
-+certdb_SaveSingleProfile(CERTCertificate *cert, const char *emailAddr,
-+ SECItem *emailProfile, SECItem *profileTime)
-+{
-+ int64 oldtime;
-+ int64 newtime;
-+ SECStatus rv = SECFailure;
-+ PRBool saveit;
-+ SECItem oldprof, oldproftime;
-+ SECItem *oldProfile = NULL;
-+ SECItem *oldProfileTime = NULL;
-+ PK11SlotInfo *slot = NULL;
-+ NSSCertificate *c;
-+ NSSCryptoContext *cc;
-+ nssSMIMEProfile *stanProfile = NULL;
-+ PRBool freeOldProfile = PR_FALSE;
-+
-+ c = STAN_GetNSSCertificate(cert);
-+ if (!c) return SECFailure;
-+ cc = c->object.cryptoContext;
-+ if (cc != NULL) {
-+ stanProfile = nssCryptoContext_FindSMIMEProfileForCertificate(cc, c);
-+ if (stanProfile) {
-+ PORT_Assert(stanProfile->profileData);
-+ SECITEM_FROM_NSSITEM(&oldprof, stanProfile->profileData);
-+ oldProfile = &oldprof;
-+ SECITEM_FROM_NSSITEM(&oldproftime, stanProfile->profileTime);
-+ oldProfileTime = &oldproftime;
-+ }
-+ } else {
-+ oldProfile = PK11_FindSMimeProfile(&slot, (char *)emailAddr,
-+ &cert->derSubject, &oldProfileTime);
-+ freeOldProfile = PR_TRUE;
-+ }
-+
-+ saveit = PR_FALSE;
-+
-+ /* both profileTime and emailProfile have to exist or not exist */
-+ if ( emailProfile == NULL ) {
-+ profileTime = NULL;
-+ } else if ( profileTime == NULL ) {
-+ emailProfile = NULL;
-+ }
-+
-+ if ( oldProfileTime == NULL ) {
-+ saveit = PR_TRUE;
-+ } else {
-+ /* there was already a profile for this email addr */
-+ if ( profileTime ) {
-+ /* we have an old and new profile - save whichever is more recent*/
-+ if ( oldProfileTime->len == 0 ) {
-+ /* always replace if old entry doesn't have a time */
-+ oldtime = LL_MININT;
-+ } else {
-+ rv = DER_UTCTimeToTime(&oldtime, oldProfileTime);
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+ }
-+
-+ rv = DER_UTCTimeToTime(&newtime, profileTime);
-+ if ( rv != SECSuccess ) {
-+ goto loser;
-+ }
-+
-+ if ( LL_CMP(newtime, >, oldtime ) ) {
-+ /* this is a newer profile, save it and cert */
-+ saveit = PR_TRUE;
-+ }
-+ } else {
-+ saveit = PR_TRUE;
-+ }
-+ }
-+
-+
-+ if (saveit) {
-+ if (cc) {
-+ if (stanProfile) {
-+ /* stanProfile is already stored in the crypto context,
-+ * overwrite the data
-+ */
-+ NSSArena *arena = stanProfile->object.arena;
-+ stanProfile->profileTime = nssItem_Create(arena,
-+ NULL,
-+ profileTime->len,
-+ profileTime->data);
-+ stanProfile->profileData = nssItem_Create(arena,
-+ NULL,
-+ emailProfile->len,
-+ emailProfile->data);
-+ } else if (profileTime && emailProfile) {
-+ PRStatus nssrv;
-+ NSSDER subject;
-+ NSSItem profTime, profData;
-+ NSSItem *pprofTime, *pprofData;
-+ NSSITEM_FROM_SECITEM(&subject, &cert->derSubject);
-+ if (profileTime) {
-+ NSSITEM_FROM_SECITEM(&profTime, profileTime);
-+ pprofTime = &profTime;
-+ } else {
-+ pprofTime = NULL;
-+ }
-+ if (emailProfile) {
-+ NSSITEM_FROM_SECITEM(&profData, emailProfile);
-+ pprofData = &profData;
-+ } else {
-+ pprofData = NULL;
-+ }
-+ stanProfile = nssSMIMEProfile_Create(c, pprofTime, pprofData);
-+ if (!stanProfile) goto loser;
-+ nssrv = nssCryptoContext_ImportSMIMEProfile(cc, stanProfile);
-+ rv = (nssrv == PR_SUCCESS) ? SECSuccess : SECFailure;
-+ }
-+ } else {
-+ rv = PK11_SaveSMimeProfile(slot, (char *)emailAddr,
-+ &cert->derSubject, emailProfile, profileTime);
-+ }
-+ } else {
-+ rv = SECSuccess;
-+ }
-+
-+loser:
-+ if (oldProfile && freeOldProfile) {
-+ SECITEM_FreeItem(oldProfile,PR_TRUE);
-+ }
-+ if (oldProfileTime && freeOldProfile) {
-+ SECITEM_FreeItem(oldProfileTime,PR_TRUE);
-+ }
-+ if (stanProfile) {
-+ nssSMIMEProfile_Destroy(stanProfile);
-+ }
-+ if (slot) {
-+ PK11_FreeSlot(slot);
-+ }
-+
-+ return(rv);
-+}
-+
-+/*
-+ *
-+ * Manage S/MIME profiles
-+ *
-+ */
-+
-+SECStatus
-+CERT_SaveSMimeProfile(CERTCertificate *cert, SECItem *emailProfile,
-+ SECItem *profileTime)
-+{
-+ const char *emailAddr;
-+ SECStatus rv;
-+
-+ if (!cert) {
-+ return SECFailure;
-+ }
-+
-+ if (cert->slot && !PK11_IsInternal(cert->slot)) {
-+ /* this cert comes from an external source, we need to add it
-+ to the cert db before creating an S/MIME profile */
-+ PK11SlotInfo* internalslot = PK11_GetInternalKeySlot();
-+ if (!internalslot) {
-+ return SECFailure;
-+ }
-+ rv = PK11_ImportCert(internalslot, cert,
-+ CK_INVALID_HANDLE, NULL, PR_FALSE);
-+
-+ PK11_FreeSlot(internalslot);
-+ if (rv != SECSuccess ) {
-+ return SECFailure;
-+ }
-+ }
-+
-+
-+ for (emailAddr = CERT_GetFirstEmailAddress(cert); emailAddr != NULL;
-+ emailAddr = CERT_GetNextEmailAddress(cert,emailAddr)) {
-+ rv = certdb_SaveSingleProfile(cert,emailAddr,emailProfile,profileTime);
-+ if (rv != SECSuccess) {
-+ return SECFailure;
-+ }
-+ }
-+ return SECSuccess;
-+
-+}
-+
-+
-+SECItem *
-+CERT_FindSMimeProfile(CERTCertificate *cert)
-+{
-+ PK11SlotInfo *slot = NULL;
-+ NSSCertificate *c;
-+ NSSCryptoContext *cc;
-+ SECItem *rvItem = NULL;
-+
-+ c = STAN_GetNSSCertificate(cert);
-+ if (!c) return NULL;
-+ cc = c->object.cryptoContext;
-+ if (cc != NULL) {
-+ nssSMIMEProfile *stanProfile;
-+ stanProfile = nssCryptoContext_FindSMIMEProfileForCertificate(cc, c);
-+ if (stanProfile) {
-+ rvItem = SECITEM_AllocItem(NULL, NULL,
-+ stanProfile->profileData->size);
-+ if (rvItem) {
-+ rvItem->data = stanProfile->profileData->data;
-+ }
-+ nssSMIMEProfile_Destroy(stanProfile);
-+ }
-+ return rvItem;
-+ }
-+ rvItem =
-+ PK11_FindSMimeProfile(&slot, cert->emailAddr, &cert->derSubject, NULL);
-+ if (slot) {
-+ PK11_FreeSlot(slot);
-+ }
-+ return rvItem;
-+}
-+
-+/*
-+ * depricated functions that are now just stubs.
-+ */
-+/*
-+ * Close the database
-+ */
-+void
-+__CERT_ClosePermCertDB(CERTCertDBHandle *handle)
-+{
-+ PORT_Assert("CERT_ClosePermCertDB is Depricated" == NULL);
-+ return;
-+}
-+
-+SECStatus
-+CERT_OpenCertDBFilename(CERTCertDBHandle *handle, char *certdbname,
-+ PRBool readOnly)
-+{
-+ PORT_Assert("CERT_OpenCertDBFilename is Depricated" == NULL);
-+ return SECFailure;
-+}
-+
-+SECItem *
-+SECKEY_HashPassword(char *pw, SECItem *salt)
-+{
-+ PORT_Assert("SECKEY_HashPassword is Depricated" == NULL);
-+ return NULL;
-+}
-+
-+SECStatus
-+__CERT_TraversePermCertsForSubject(CERTCertDBHandle *handle,
-+ SECItem *derSubject,
-+ void *cb, void *cbarg)
-+{
-+ PORT_Assert("CERT_TraversePermCertsForSubject is Depricated" == NULL);
-+ return SECFailure;
-+}
-+
-+
-+SECStatus
-+__CERT_TraversePermCertsForNickname(CERTCertDBHandle *handle, char *nickname,
-+ void *cb, void *cbarg)
-+{
-+ PORT_Assert("CERT_TraversePermCertsForNickname is Depricated" == NULL);
-+ return SECFailure;
-+}
-+
-+
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/symmkey.c 2004-12-13 13:06:46.821379160 +0100
-@@ -0,0 +1,297 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#ifndef NSSPKI_H
-+#include "nsspki.h"
-+#endif /* NSSPKI_H */
-+
-+extern const NSSError NSS_ERROR_NOT_FOUND;
-+
-+NSS_IMPLEMENT PRStatus
-+NSSSymmetricKey_Destroy (
-+ NSSSymmetricKey *mk
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSSymmetricKey_DeleteStoredObject (
-+ NSSSymmetricKey *mk,
-+ NSSCallback *uhh
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT PRUint32
-+NSSSymmetricKey_GetKeyLength (
-+ NSSSymmetricKey *mk
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return -1;
-+}
-+
-+NSS_IMPLEMENT PRUint32
-+NSSSymmetricKey_GetKeyStrength (
-+ NSSSymmetricKey *mk
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return -1;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSSymmetricKey_IsStillPresent (
-+ NSSSymmetricKey *mk
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT NSSTrustDomain *
-+NSSSymmetricKey_GetTrustDomain (
-+ NSSSymmetricKey *mk,
-+ PRStatus *statusOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSToken *
-+NSSSymmetricKey_GetToken (
-+ NSSSymmetricKey *mk,
-+ PRStatus *statusOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSSlot *
-+NSSSymmetricKey_GetSlot (
-+ NSSSymmetricKey *mk,
-+ PRStatus *statusOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSModule *
-+NSSSymmetricKey_GetModule (
-+ NSSSymmetricKey *mk,
-+ PRStatus *statusOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSSymmetricKey_Encrypt (
-+ NSSSymmetricKey *mk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSSymmetricKey_Decrypt (
-+ NSSSymmetricKey *mk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *encryptedData,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSSymmetricKey_Sign (
-+ NSSSymmetricKey *mk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSSymmetricKey_SignRecover (
-+ NSSSymmetricKey *mk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSSymmetricKey_Verify (
-+ NSSSymmetricKey *mk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *data,
-+ NSSItem *signature,
-+ NSSCallback *uhh
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSSymmetricKey_VerifyRecover (
-+ NSSSymmetricKey *mk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *signature,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSSymmetricKey_WrapSymmetricKey (
-+ NSSSymmetricKey *wrappingKey,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSSymmetricKey *keyToWrap,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSItem *
-+NSSSymmetricKey_WrapPrivateKey (
-+ NSSSymmetricKey *wrappingKey,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSPrivateKey *keyToWrap,
-+ NSSCallback *uhh,
-+ NSSItem *rvOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSSymmetricKey *
-+NSSSymmetricKey_UnwrapSymmetricKey (
-+ NSSSymmetricKey *wrappingKey,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *wrappedKey,
-+ NSSOID *target,
-+ PRUint32 keySizeOpt,
-+ NSSOperations operations,
-+ NSSCallback *uhh
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSPrivateKey *
-+NSSSymmetricKey_UnwrapPrivateKey (
-+ NSSSymmetricKey *wrappingKey,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSItem *wrappedKey,
-+ NSSUTF8 *labelOpt,
-+ NSSItem *keyIDOpt,
-+ PRBool persistant,
-+ PRBool sensitive,
-+ NSSToken *destinationOpt,
-+ NSSCallback *uhh
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSSymmetricKey *
-+NSSSymmetricKey_DeriveSymmetricKey (
-+ NSSSymmetricKey *originalKey,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSOID *target,
-+ PRUint32 keySizeOpt,
-+ NSSOperations operations,
-+ NSSCallback *uhh
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCryptoContext *
-+NSSSymmetricKey_CreateCryptoContext (
-+ NSSSymmetricKey *mk,
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSCallback *uhh
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/tdcache.c 2004-12-13 13:06:46.825378552 +0100
-@@ -0,0 +1,1188 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#ifndef PKIM_H
-+#include "pkim.h"
-+#endif /* PKIM_H */
-+
-+#ifndef PKIT_H
-+#include "pkit.h"
-+#endif /* PKIT_H */
-+
-+#ifndef NSSPKI_H
-+#include "nsspki.h"
-+#endif /* NSSPKI_H */
-+
-+#ifndef PKI_H
-+#include "pki.h"
-+#endif /* PKI_H */
-+
-+#ifndef NSSBASE_H
-+#include "nssbase.h"
-+#endif /* NSSBASE_H */
-+
-+#ifndef BASE_H
-+#include "base.h"
-+#endif /* BASE_H */
-+
-+#ifdef NSS_3_4_CODE
-+#include "cert.h"
-+#include "dev.h"
-+#include "pki3hack.h"
-+#endif
-+
-+#ifdef DEBUG_CACHE
-+static PRLogModuleInfo *s_log = NULL;
-+#endif
-+
-+#ifdef DEBUG_CACHE
-+static void log_item_dump(const char *msg, NSSItem *it)
-+{
-+ char buf[33];
-+ int i, j;
-+ for (i=0; i<10 && i<it->size; i++) {
-+ sprintf(&buf[2*i], "%02X", ((PRUint8 *)it->data)[i]);
-+ }
-+ if (it->size>10) {
-+ sprintf(&buf[2*i], "..");
-+ i += 1;
-+ for (j=it->size-1; i<=16 && j>10; i++, j--) {
-+ sprintf(&buf[2*i], "%02X", ((PRUint8 *)it->data)[j]);
-+ }
-+ }
-+ PR_LOG(s_log, PR_LOG_DEBUG, ("%s: %s", msg, buf));
-+}
-+#endif
-+
-+#ifdef DEBUG_CACHE
-+static void log_cert_ref(const char *msg, NSSCertificate *c)
-+{
-+ PR_LOG(s_log, PR_LOG_DEBUG, ("%s: %s", msg,
-+ (c->nickname) ? c->nickname : c->email));
-+ log_item_dump("\tserial", &c->serial);
-+ log_item_dump("\tsubject", &c->subject);
-+}
-+#endif
-+
-+/* Certificate cache routines */
-+
-+/* XXX
-+ * Locking is not handled well at all. A single, global lock with sub-locks
-+ * in the collection types. Cleanup needed.
-+ */
-+
-+/* should it live in its own arena? */
-+struct nssTDCertificateCacheStr
-+{
-+ PZLock *lock;
-+ NSSArena *arena;
-+ nssHash *issuerAndSN;
-+ nssHash *subject;
-+ nssHash *nickname;
-+ nssHash *email;
-+};
-+
-+struct cache_entry_str
-+{
-+ union {
-+ NSSCertificate *cert;
-+ nssList *list;
-+ void *value;
-+ } entry;
-+ PRUint32 hits;
-+ PRTime lastHit;
-+ NSSArena *arena;
-+ NSSUTF8 *nickname;
-+};
-+
-+typedef struct cache_entry_str cache_entry;
-+
-+static cache_entry *
-+new_cache_entry(NSSArena *arena, void *value, PRBool ownArena)
-+{
-+ cache_entry *ce = nss_ZNEW(arena, cache_entry);
-+ if (ce) {
-+ ce->entry.value = value;
-+ ce->hits = 1;
-+ ce->lastHit = PR_Now();
-+ if (ownArena) {
-+ ce->arena = arena;
-+ }
-+ ce->nickname = NULL;
-+ }
-+ return ce;
-+}
-+
-+/* sort the subject list from newest to oldest */
-+static PRIntn subject_list_sort(void *v1, void *v2)
-+{
-+ NSSCertificate *c1 = (NSSCertificate *)v1;
-+ NSSCertificate *c2 = (NSSCertificate *)v2;
-+ nssDecodedCert *dc1 = nssCertificate_GetDecoding(c1);
-+ nssDecodedCert *dc2 = nssCertificate_GetDecoding(c2);
-+ if (dc1->isNewerThan(dc1, dc2)) {
-+ return -1;
-+ } else {
-+ return 1;
-+ }
-+}
-+
-+/* this should not be exposed in a header, but is here to keep the above
-+ * types/functions static
-+ */
-+NSS_IMPLEMENT PRStatus
-+nssTrustDomain_InitializeCache (
-+ NSSTrustDomain *td,
-+ PRUint32 cacheSize
-+)
-+{
-+ NSSArena *arena;
-+ nssTDCertificateCache *cache = td->cache;
-+#ifdef DEBUG_CACHE
-+ s_log = PR_NewLogModule("nss_cache");
-+ PR_ASSERT(s_log);
-+#endif
-+ PR_ASSERT(!cache);
-+ arena = nssArena_Create();
-+ if (!arena) {
-+ return PR_FAILURE;
-+ }
-+ cache = nss_ZNEW(arena, nssTDCertificateCache);
-+ if (!cache) {
-+ nssArena_Destroy(arena);
-+ return PR_FAILURE;
-+ }
-+ cache->lock = PZ_NewLock(nssILockCache);
-+ if (!cache->lock) {
-+ nssArena_Destroy(arena);
-+ return PR_FAILURE;
-+ }
-+ /* Create the issuer and serial DER --> certificate hash */
-+ cache->issuerAndSN = nssHash_CreateCertificate(arena, cacheSize);
-+ if (!cache->issuerAndSN) {
-+ goto loser;
-+ }
-+ /* Create the subject DER --> subject list hash */
-+ cache->subject = nssHash_CreateItem(arena, cacheSize);
-+ if (!cache->subject) {
-+ goto loser;
-+ }
-+ /* Create the nickname --> subject list hash */
-+ cache->nickname = nssHash_CreateString(arena, cacheSize);
-+ if (!cache->nickname) {
-+ goto loser;
-+ }
-+ /* Create the email --> list of subject lists hash */
-+ cache->email = nssHash_CreateString(arena, cacheSize);
-+ if (!cache->email) {
-+ goto loser;
-+ }
-+ cache->arena = arena;
-+ td->cache = cache;
-+#ifdef DEBUG_CACHE
-+ PR_LOG(s_log, PR_LOG_DEBUG, ("Cache initialized."));
-+#endif
-+ return PR_SUCCESS;
-+loser:
-+ PZ_DestroyLock(cache->lock);
-+ nssArena_Destroy(arena);
-+ td->cache = NULL;
-+#ifdef DEBUG_CACHE
-+ PR_LOG(s_log, PR_LOG_DEBUG, ("Cache initialization failed."));
-+#endif
-+ return PR_FAILURE;
-+}
-+
-+/* The entries of the hashtable are currently dependent on the certificate(s)
-+ * that produced them. That is, the entries will be freed when the cert is
-+ * released from the cache. If there are certs in the cache at any time,
-+ * including shutdown, the hash table entries will hold memory. In order for
-+ * clean shutdown, it is necessary for there to be no certs in the cache.
-+ */
-+
-+extern const NSSError NSS_ERROR_INTERNAL_ERROR;
-+extern const NSSError NSS_ERROR_BUSY;
-+
-+NSS_IMPLEMENT PRStatus
-+nssTrustDomain_DestroyCache (
-+ NSSTrustDomain *td
-+)
-+{
-+ if (!td->cache) {
-+ nss_SetError(NSS_ERROR_INTERNAL_ERROR);
-+ return PR_FAILURE;
-+ }
-+ if (nssHash_Count(td->cache->issuerAndSN) > 0) {
-+ nss_SetError(NSS_ERROR_BUSY);
-+ return PR_FAILURE;
-+ }
-+ PZ_DestroyLock(td->cache->lock);
-+ nssHash_Destroy(td->cache->issuerAndSN);
-+ nssHash_Destroy(td->cache->subject);
-+ nssHash_Destroy(td->cache->nickname);
-+ nssHash_Destroy(td->cache->email);
-+ nssArena_Destroy(td->cache->arena);
-+ td->cache = NULL;
-+#ifdef DEBUG_CACHE
-+ PR_LOG(s_log, PR_LOG_DEBUG, ("Cache destroyed."));
-+#endif
-+ return PR_SUCCESS;
-+}
-+
-+static PRStatus
-+remove_issuer_and_serial_entry (
-+ nssTDCertificateCache *cache,
-+ NSSCertificate *cert
-+)
-+{
-+ /* Remove the cert from the issuer/serial hash */
-+ nssHash_Remove(cache->issuerAndSN, cert);
-+#ifdef DEBUG_CACHE
-+ log_cert_ref("removed issuer/sn", cert);
-+#endif
-+ return PR_SUCCESS;
-+}
-+
-+static PRStatus
-+remove_subject_entry (
-+ nssTDCertificateCache *cache,
-+ NSSCertificate *cert,
-+ nssList **subjectList,
-+ NSSUTF8 **nickname,
-+ NSSArena **arena
-+)
-+{
-+ PRStatus nssrv;
-+ cache_entry *ce;
-+ *subjectList = NULL;
-+ *arena = NULL;
-+ /* Get the subject list for the cert's subject */
-+ ce = (cache_entry *)nssHash_Lookup(cache->subject, &cert->subject);
-+ if (ce) {
-+ /* Remove the cert from the subject hash */
-+ nssList_Remove(ce->entry.list, cert);
-+ *subjectList = ce->entry.list;
-+ *nickname = ce->nickname;
-+ *arena = ce->arena;
-+ nssrv = PR_SUCCESS;
-+#ifdef DEBUG_CACHE
-+ log_cert_ref("removed cert", cert);
-+ log_item_dump("from subject list", &cert->subject);
-+#endif
-+ } else {
-+ nssrv = PR_FAILURE;
-+ }
-+ return nssrv;
-+}
-+
-+static PRStatus
-+remove_nickname_entry (
-+ nssTDCertificateCache *cache,
-+ NSSUTF8 *nickname,
-+ nssList *subjectList
-+)
-+{
-+ PRStatus nssrv;
-+ if (nickname) {
-+ nssHash_Remove(cache->nickname, nickname);
-+ nssrv = PR_SUCCESS;
-+#ifdef DEBUG_CACHE
-+ PR_LOG(s_log, PR_LOG_DEBUG, ("removed nickname %s", nickname));
-+#endif
-+ } else {
-+ nssrv = PR_FAILURE;
-+ }
-+ return nssrv;
-+}
-+
-+static PRStatus
-+remove_email_entry (
-+ nssTDCertificateCache *cache,
-+ NSSCertificate *cert,
-+ nssList *subjectList
-+)
-+{
-+ PRStatus nssrv = PR_FAILURE;
-+ cache_entry *ce;
-+ /* Find the subject list in the email hash */
-+ if (cert->email) {
-+ ce = (cache_entry *)nssHash_Lookup(cache->email, cert->email);
-+ if (ce) {
-+ nssList *subjects = ce->entry.list;
-+ /* Remove the subject list from the email hash */
-+ nssList_Remove(subjects, subjectList);
-+#ifdef DEBUG_CACHE
-+ log_item_dump("removed subject list", &cert->subject);
-+ PR_LOG(s_log, PR_LOG_DEBUG, ("for email %s", cert->email));
-+#endif
-+ if (nssList_Count(subjects) == 0) {
-+ /* No more subject lists for email, delete list and
-+ * remove hash entry
-+ */
-+ (void)nssList_Destroy(subjects);
-+ nssHash_Remove(cache->email, cert->email);
-+ /* there are no entries left for this address, free space
-+ * used for email entries
-+ */
-+ nssArena_Destroy(ce->arena);
-+#ifdef DEBUG_CACHE
-+ PR_LOG(s_log, PR_LOG_DEBUG, ("removed email %s", cert->email));
-+#endif
-+ }
-+ nssrv = PR_SUCCESS;
-+ }
-+ }
-+ return nssrv;
-+}
-+
-+NSS_IMPLEMENT void
-+nssTrustDomain_RemoveCertFromCacheLOCKED (
-+ NSSTrustDomain *td,
-+ NSSCertificate *cert
-+)
-+{
-+ nssList *subjectList;
-+ cache_entry *ce;
-+ NSSArena *arena;
-+ NSSUTF8 *nickname;
-+
-+#ifdef DEBUG_CACHE
-+ log_cert_ref("attempt to remove cert", cert);
-+#endif
-+ ce = (cache_entry *)nssHash_Lookup(td->cache->issuerAndSN, cert);
-+ if (!ce || ce->entry.cert != cert) {
-+ /* If it's not in the cache, or a different cert is (this is really
-+ * for safety reasons, though it shouldn't happen), do nothing
-+ */
-+#ifdef DEBUG_CACHE
-+ PR_LOG(s_log, PR_LOG_DEBUG, ("but it wasn't in the cache"));
-+#endif
-+ return;
-+ }
-+ (void)remove_issuer_and_serial_entry(td->cache, cert);
-+ (void)remove_subject_entry(td->cache, cert, &subjectList,
-+ &nickname, &arena);
-+ if (nssList_Count(subjectList) == 0) {
-+ (void)remove_nickname_entry(td->cache, nickname, subjectList);
-+ (void)remove_email_entry(td->cache, cert, subjectList);
-+ (void)nssList_Destroy(subjectList);
-+ nssHash_Remove(td->cache->subject, &cert->subject);
-+ /* there are no entries left for this subject, free the space used
-+ * for both the nickname and subject entries
-+ */
-+ if (arena) {
-+ nssArena_Destroy(arena);
-+ }
-+ }
-+}
-+
-+NSS_IMPLEMENT void
-+nssTrustDomain_LockCertCache (
-+ NSSTrustDomain *td
-+)
-+{
-+ PZ_Lock(td->cache->lock);
-+}
-+
-+NSS_IMPLEMENT void
-+nssTrustDomain_UnlockCertCache (
-+ NSSTrustDomain *td
-+)
-+{
-+ PZ_Unlock(td->cache->lock);
-+}
-+
-+struct token_cert_dtor {
-+ NSSToken *token;
-+ nssTDCertificateCache *cache;
-+ NSSCertificate **certs;
-+ PRUint32 numCerts, arrSize;
-+};
-+
-+static void
-+remove_token_certs(const void *k, void *v, void *a)
-+{
-+ NSSCertificate *c = (NSSCertificate *)k;
-+ nssPKIObject *object = &c->object;
-+ struct token_cert_dtor *dtor = a;
-+ PRUint32 i;
-+ PZ_Lock(object->lock);
-+ for (i=0; i<object->numInstances; i++) {
-+ if (object->instances[i]->token == dtor->token) {
-+ nssCryptokiObject_Destroy(object->instances[i]);
-+ object->instances[i] = object->instances[object->numInstances-1];
-+ object->instances[object->numInstances-1] = NULL;
-+ object->numInstances--;
-+ dtor->certs[dtor->numCerts++] = c;
-+ if (dtor->numCerts == dtor->arrSize) {
-+ dtor->arrSize *= 2;
-+ dtor->certs = nss_ZREALLOCARRAY(dtor->certs,
-+ NSSCertificate *,
-+ dtor->arrSize);
-+ }
-+ break;
-+ }
-+ }
-+ PZ_Unlock(object->lock);
-+ return;
-+}
-+
-+/*
-+ * Remove all certs for the given token from the cache. This is
-+ * needed if the token is removed.
-+ */
-+NSS_IMPLEMENT PRStatus
-+nssTrustDomain_RemoveTokenCertsFromCache (
-+ NSSTrustDomain *td,
-+ NSSToken *token
-+)
-+{
-+ NSSCertificate **certs;
-+ PRUint32 i, arrSize = 10;
-+ struct token_cert_dtor dtor;
-+ certs = nss_ZNEWARRAY(NULL, NSSCertificate *, arrSize);
-+ if (!certs) {
-+ return PR_FAILURE;
-+ }
-+ dtor.cache = td->cache;
-+ dtor.token = token;
-+ dtor.certs = certs;
-+ dtor.numCerts = 0;
-+ dtor.arrSize = arrSize;
-+ PZ_Lock(td->cache->lock);
-+ nssHash_Iterate(td->cache->issuerAndSN, remove_token_certs, (void *)&dtor);
-+ for (i=0; i<dtor.numCerts; i++) {
-+ if (dtor.certs[i]->object.numInstances == 0) {
-+ nssTrustDomain_RemoveCertFromCacheLOCKED(td, dtor.certs[i]);
-+ dtor.certs[i] = NULL; /* skip this cert in the second for loop */
-+ }
-+ }
-+ PZ_Unlock(td->cache->lock);
-+ for (i=0; i<dtor.numCerts; i++) {
-+ if (dtor.certs[i]) {
-+ STAN_ForceCERTCertificateUpdate(dtor.certs[i]);
-+ }
-+ }
-+ nss_ZFreeIf(dtor.certs);
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssTrustDomain_UpdateCachedTokenCerts (
-+ NSSTrustDomain *td,
-+ NSSToken *token
-+)
-+{
-+ NSSCertificate **cp, **cached = NULL;
-+ nssList *certList;
-+ PRUint32 count;
-+ certList = nssList_Create(NULL, PR_FALSE);
-+ if (!certList) return PR_FAILURE;
-+ (void *)nssTrustDomain_GetCertsFromCache(td, certList);
-+ count = nssList_Count(certList);
-+ if (count > 0) {
-+ cached = nss_ZNEWARRAY(NULL, NSSCertificate *, count + 1);
-+ if (!cached) {
-+ return PR_FAILURE;
-+ }
-+ nssList_GetArray(certList, (void **)cached, count);
-+ nssList_Destroy(certList);
-+ for (cp = cached; *cp; cp++) {
-+ nssCryptokiObject *instance;
-+ NSSCertificate *c = *cp;
-+ nssTokenSearchType tokenOnly = nssTokenSearchType_TokenOnly;
-+ instance = nssToken_FindCertificateByIssuerAndSerialNumber(
-+ token,
-+ NULL,
-+ &c->issuer,
-+ &c->serial,
-+ tokenOnly,
-+ NULL);
-+ if (instance) {
-+ nssPKIObject_AddInstance(&c->object, instance);
-+ STAN_ForceCERTCertificateUpdate(c);
-+ }
-+ }
-+ nssCertificateArray_Destroy(cached);
-+ }
-+ return PR_SUCCESS;
-+}
-+
-+static PRStatus
-+add_issuer_and_serial_entry (
-+ NSSArena *arena,
-+ nssTDCertificateCache *cache,
-+ NSSCertificate *cert
-+)
-+{
-+ cache_entry *ce;
-+ ce = new_cache_entry(arena, (void *)cert, PR_FALSE);
-+#ifdef DEBUG_CACHE
-+ log_cert_ref("added to issuer/sn", cert);
-+#endif
-+ return nssHash_Add(cache->issuerAndSN, cert, (void *)ce);
-+}
-+
-+static PRStatus
-+add_subject_entry (
-+ NSSArena *arena,
-+ nssTDCertificateCache *cache,
-+ NSSCertificate *cert,
-+ NSSUTF8 *nickname,
-+ nssList **subjectList
-+)
-+{
-+ PRStatus nssrv;
-+ nssList *list;
-+ cache_entry *ce;
-+ *subjectList = NULL; /* this is only set if a new one is created */
-+ ce = (cache_entry *)nssHash_Lookup(cache->subject, &cert->subject);
-+ if (ce) {
-+ ce->hits++;
-+ ce->lastHit = PR_Now();
-+ /* The subject is already in, add this cert to the list */
-+ nssrv = nssList_AddUnique(ce->entry.list, cert);
-+#ifdef DEBUG_CACHE
-+ log_cert_ref("added to existing subject list", cert);
-+#endif
-+ } else {
-+ NSSDER *subject;
-+ /* Create a new subject list for the subject */
-+ list = nssList_Create(arena, PR_FALSE);
-+ if (!list) {
-+ return PR_FAILURE;
-+ }
-+ ce = new_cache_entry(arena, (void *)list, PR_TRUE);
-+ if (!ce) {
-+ return PR_FAILURE;
-+ }
-+ if (nickname) {
-+ ce->nickname = nssUTF8_Duplicate(nickname, arena);
-+ }
-+ nssList_SetSortFunction(list, subject_list_sort);
-+ /* Add the cert entry to this list of subjects */
-+ nssrv = nssList_AddUnique(list, cert);
-+ if (nssrv != PR_SUCCESS) {
-+ return nssrv;
-+ }
-+ /* Add the subject list to the cache */
-+ subject = nssItem_Duplicate(&cert->subject, arena, NULL);
-+ if (!subject) {
-+ return PR_FAILURE;
-+ }
-+ nssrv = nssHash_Add(cache->subject, subject, ce);
-+ if (nssrv != PR_SUCCESS) {
-+ return nssrv;
-+ }
-+ *subjectList = list;
-+#ifdef DEBUG_CACHE
-+ log_cert_ref("created subject list", cert);
-+#endif
-+ }
-+ return nssrv;
-+}
-+
-+static PRStatus
-+add_nickname_entry (
-+ NSSArena *arena,
-+ nssTDCertificateCache *cache,
-+ NSSUTF8 *certNickname,
-+ nssList *subjectList
-+)
-+{
-+ PRStatus nssrv = PR_SUCCESS;
-+ cache_entry *ce;
-+ ce = (cache_entry *)nssHash_Lookup(cache->nickname, certNickname);
-+ if (ce) {
-+ /* This is a collision. A nickname entry already exists for this
-+ * subject, but a subject entry didn't. This would imply there are
-+ * two subjects using the same nickname, which is not allowed.
-+ */
-+ return PR_FAILURE;
-+ } else {
-+ NSSUTF8 *nickname;
-+ ce = new_cache_entry(arena, subjectList, PR_FALSE);
-+ if (!ce) {
-+ return PR_FAILURE;
-+ }
-+ nickname = nssUTF8_Duplicate(certNickname, arena);
-+ if (!nickname) {
-+ return PR_FAILURE;
-+ }
-+ nssrv = nssHash_Add(cache->nickname, nickname, ce);
-+#ifdef DEBUG_CACHE
-+ log_cert_ref("created nickname for", cert);
-+#endif
-+ }
-+ return nssrv;
-+}
-+
-+static PRStatus
-+add_email_entry (
-+ nssTDCertificateCache *cache,
-+ NSSCertificate *cert,
-+ nssList *subjectList
-+)
-+{
-+ PRStatus nssrv = PR_SUCCESS;
-+ nssList *subjects;
-+ cache_entry *ce;
-+ ce = (cache_entry *)nssHash_Lookup(cache->email, cert->email);
-+ if (ce) {
-+ /* Already have an entry for this email address, but not subject */
-+ subjects = ce->entry.list;
-+ nssrv = nssList_AddUnique(subjects, subjectList);
-+ ce->hits++;
-+ ce->lastHit = PR_Now();
-+#ifdef DEBUG_CACHE
-+ log_cert_ref("added subject to email for", cert);
-+#endif
-+ } else {
-+ NSSASCII7 *email;
-+ NSSArena *arena;
-+ arena = nssArena_Create();
-+ if (!arena) {
-+ return PR_FAILURE;
-+ }
-+ /* Create a new list of subject lists, add this subject */
-+ subjects = nssList_Create(arena, PR_TRUE);
-+ if (!subjects) {
-+ nssArena_Destroy(arena);
-+ return PR_FAILURE;
-+ }
-+ /* Add the new subject to the list */
-+ nssrv = nssList_AddUnique(subjects, subjectList);
-+ if (nssrv != PR_SUCCESS) {
-+ nssArena_Destroy(arena);
-+ return nssrv;
-+ }
-+ /* Add the new entry to the cache */
-+ ce = new_cache_entry(arena, (void *)subjects, PR_TRUE);
-+ if (!ce) {
-+ nssArena_Destroy(arena);
-+ return PR_FAILURE;
-+ }
-+ email = nssUTF8_Duplicate(cert->email, arena);
-+ if (!email) {
-+ nssArena_Destroy(arena);
-+ return PR_FAILURE;
-+ }
-+ nssrv = nssHash_Add(cache->email, email, ce);
-+ if (nssrv != PR_SUCCESS) {
-+ nssArena_Destroy(arena);
-+ return nssrv;
-+ }
-+#ifdef DEBUG_CACHE
-+ log_cert_ref("created email for", cert);
-+#endif
-+ }
-+ return nssrv;
-+}
-+
-+extern const NSSError NSS_ERROR_CERTIFICATE_IN_CACHE;
-+
-+static void
-+remove_object_instances (
-+ nssPKIObject *object,
-+ nssCryptokiObject **instances,
-+ int numInstances
-+)
-+{
-+ int i;
-+
-+ for (i = 0; i < numInstances; i++) {
-+ nssPKIObject_RemoveInstanceForToken(object, instances[i]->token);
-+ }
-+}
-+
-+static SECStatus
-+merge_object_instances (
-+ nssPKIObject *to,
-+ nssPKIObject *from
-+)
-+{
-+ nssCryptokiObject **instances, **ci;
-+ int i;
-+ SECStatus rv = SECSuccess;
-+
-+ instances = nssPKIObject_GetInstances(from);
-+ if (instances == NULL) {
-+ return SECFailure;
-+ }
-+ for (ci = instances, i = 0; *ci; ci++, i++) {
-+ nssCryptokiObject *instance = nssCryptokiObject_Clone(*ci);
-+ if (instance) {
-+ if (nssPKIObject_AddInstance(to, instance) == SECSuccess) {
-+ continue;
-+ }
-+ nssCryptokiObject_Destroy(instance);
-+ }
-+ remove_object_instances(to, instances, i);
-+ rv = SECFailure;
-+ break;
-+ }
-+ nssCryptokiObjectArray_Destroy(instances);
-+ return rv;
-+}
-+
-+static NSSCertificate *
-+add_cert_to_cache (
-+ NSSTrustDomain *td,
-+ NSSCertificate *cert
-+)
-+{
-+ NSSArena *arena = NULL;
-+ nssList *subjectList = NULL;
-+ PRStatus nssrv;
-+ PRUint32 added = 0;
-+ cache_entry *ce;
-+ NSSCertificate *rvCert = NULL;
-+ NSSUTF8 *certNickname = nssCertificate_GetNickname(cert, NULL);
-+
-+ PZ_Lock(td->cache->lock);
-+ /* If it exists in the issuer/serial hash, it's already in all */
-+ ce = (cache_entry *)nssHash_Lookup(td->cache->issuerAndSN, cert);
-+ if (ce) {
-+ ce->hits++;
-+ ce->lastHit = PR_Now();
-+ rvCert = nssCertificate_AddRef(ce->entry.cert);
-+#ifdef DEBUG_CACHE
-+ log_cert_ref("attempted to add cert already in cache", cert);
-+#endif
-+ PZ_Unlock(td->cache->lock);
-+ /* collision - somebody else already added the cert
-+ * to the cache before this thread got around to it.
-+ */
-+ /* merge the instances of the cert */
-+ if (merge_object_instances(&rvCert->object, &cert->object)
-+ != SECSuccess) {
-+ nssCertificate_Destroy(rvCert);
-+ return NULL;
-+ }
-+ STAN_ForceCERTCertificateUpdate(rvCert);
-+ nssCertificate_Destroy(cert);
-+ return rvCert;
-+ }
-+ /* create a new cache entry for this cert within the cert's arena*/
-+ nssrv = add_issuer_and_serial_entry(cert->object.arena, td->cache, cert);
-+ if (nssrv != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ added++;
-+ /* create an arena for the nickname and subject entries */
-+ arena = nssArena_Create();
-+ if (!arena) {
-+ goto loser;
-+ }
-+ /* create a new subject list for this cert, or add to existing */
-+ nssrv = add_subject_entry(arena, td->cache, cert,
-+ certNickname, &subjectList);
-+ if (nssrv != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ added++;
-+ /* If a new subject entry was created, also need nickname and/or email */
-+ if (subjectList != NULL) {
-+ PRBool handle = PR_FALSE;
-+ if (certNickname) {
-+ nssrv = add_nickname_entry(arena, td->cache,
-+ certNickname, subjectList);
-+ if (nssrv != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ handle = PR_TRUE;
-+ added++;
-+ }
-+ if (cert->email) {
-+ nssrv = add_email_entry(td->cache, cert, subjectList);
-+ if (nssrv != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ handle = PR_TRUE;
-+ added += 2;
-+ }
-+#ifdef nodef
-+ /* I think either a nickname or email address must be associated
-+ * with the cert. However, certs are passed to NewTemp without
-+ * either. This worked in the old code, so it must work now.
-+ */
-+ if (!handle) {
-+ /* Require either nickname or email handle */
-+ nssrv = PR_FAILURE;
-+ goto loser;
-+ }
-+#endif
-+ }
-+ rvCert = cert;
-+ PZ_Unlock(td->cache->lock);
-+ return rvCert;
-+loser:
-+ /* Remove any handles that have been created */
-+ subjectList = NULL;
-+ if (added >= 1) {
-+ (void)remove_issuer_and_serial_entry(td->cache, cert);
-+ }
-+ if (added >= 2) {
-+ (void)remove_subject_entry(td->cache, cert, &subjectList,
-+ &certNickname, &arena);
-+ }
-+ if (added == 3 || added == 5) {
-+ (void)remove_nickname_entry(td->cache, certNickname, subjectList);
-+ }
-+ if (added >= 4) {
-+ (void)remove_email_entry(td->cache, cert, subjectList);
-+ }
-+ if (subjectList) {
-+ nssHash_Remove(td->cache->subject, &cert->subject);
-+ nssList_Destroy(subjectList);
-+ }
-+ if (arena) {
-+ nssArena_Destroy(arena);
-+ }
-+ PZ_Unlock(td->cache->lock);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+nssTrustDomain_AddCertsToCache (
-+ NSSTrustDomain *td,
-+ NSSCertificate **certs,
-+ PRUint32 numCerts
-+)
-+{
-+ PRUint32 i;
-+ NSSCertificate *c;
-+ for (i=0; i<numCerts && certs[i]; i++) {
-+ c = add_cert_to_cache(td, certs[i]);
-+ if (c == NULL) {
-+ return PR_FAILURE;
-+ } else {
-+ certs[i] = c;
-+ }
-+ }
-+ return PR_SUCCESS;
-+}
-+
-+static NSSCertificate **
-+collect_subject_certs (
-+ nssList *subjectList,
-+ nssList *rvCertListOpt
-+)
-+{
-+ NSSCertificate *c;
-+ NSSCertificate **rvArray = NULL;
-+ PRUint32 count;
-+ nssCertificateList_AddReferences(subjectList);
-+ if (rvCertListOpt) {
-+ nssListIterator *iter = nssList_CreateIterator(subjectList);
-+ for (c = (NSSCertificate *)nssListIterator_Start(iter);
-+ c != (NSSCertificate *)NULL;
-+ c = (NSSCertificate *)nssListIterator_Next(iter)) {
-+ nssList_Add(rvCertListOpt, c);
-+ }
-+ nssListIterator_Finish(iter);
-+ nssListIterator_Destroy(iter);
-+ } else {
-+ count = nssList_Count(subjectList);
-+ rvArray = nss_ZNEWARRAY(NULL, NSSCertificate *, count + 1);
-+ if (!rvArray) {
-+ return (NSSCertificate **)NULL;
-+ }
-+ nssList_GetArray(subjectList, (void **)rvArray, count);
-+ }
-+ return rvArray;
-+}
-+
-+/*
-+ * Find all cached certs with this subject.
-+ */
-+NSS_IMPLEMENT NSSCertificate **
-+nssTrustDomain_GetCertsForSubjectFromCache (
-+ NSSTrustDomain *td,
-+ NSSDER *subject,
-+ nssList *certListOpt
-+)
-+{
-+ NSSCertificate **rvArray = NULL;
-+ cache_entry *ce;
-+#ifdef DEBUG_CACHE
-+ log_item_dump("looking for cert by subject", subject);
-+#endif
-+ PZ_Lock(td->cache->lock);
-+ ce = (cache_entry *)nssHash_Lookup(td->cache->subject, subject);
-+ if (ce) {
-+ ce->hits++;
-+ ce->lastHit = PR_Now();
-+#ifdef DEBUG_CACHE
-+ PR_LOG(s_log, PR_LOG_DEBUG, ("... found, %d hits", ce->hits));
-+#endif
-+ rvArray = collect_subject_certs(ce->entry.list, certListOpt);
-+ }
-+ PZ_Unlock(td->cache->lock);
-+ return rvArray;
-+}
-+
-+/*
-+ * Find all cached certs with this label.
-+ */
-+NSS_IMPLEMENT NSSCertificate **
-+nssTrustDomain_GetCertsForNicknameFromCache (
-+ NSSTrustDomain *td,
-+ NSSUTF8 *nickname,
-+ nssList *certListOpt
-+)
-+{
-+ NSSCertificate **rvArray = NULL;
-+ cache_entry *ce;
-+#ifdef DEBUG_CACHE
-+ PR_LOG(s_log, PR_LOG_DEBUG, ("looking for cert by nick %s", nickname));
-+#endif
-+ PZ_Lock(td->cache->lock);
-+ ce = (cache_entry *)nssHash_Lookup(td->cache->nickname, nickname);
-+ if (ce) {
-+ ce->hits++;
-+ ce->lastHit = PR_Now();
-+#ifdef DEBUG_CACHE
-+ PR_LOG(s_log, PR_LOG_DEBUG, ("... found, %d hits", ce->hits));
-+#endif
-+ rvArray = collect_subject_certs(ce->entry.list, certListOpt);
-+ }
-+ PZ_Unlock(td->cache->lock);
-+ return rvArray;
-+}
-+
-+/*
-+ * Find all cached certs with this email address.
-+ */
-+NSS_IMPLEMENT NSSCertificate **
-+nssTrustDomain_GetCertsForEmailAddressFromCache (
-+ NSSTrustDomain *td,
-+ NSSASCII7 *email,
-+ nssList *certListOpt
-+)
-+{
-+ NSSCertificate **rvArray = NULL;
-+ cache_entry *ce;
-+ nssList *collectList = NULL;
-+ nssListIterator *iter = NULL;
-+ nssList *subjectList;
-+#ifdef DEBUG_CACHE
-+ PR_LOG(s_log, PR_LOG_DEBUG, ("looking for cert by email %s", email));
-+#endif
-+ PZ_Lock(td->cache->lock);
-+ ce = (cache_entry *)nssHash_Lookup(td->cache->email, email);
-+ if (ce) {
-+ ce->hits++;
-+ ce->lastHit = PR_Now();
-+#ifdef DEBUG_CACHE
-+ PR_LOG(s_log, PR_LOG_DEBUG, ("... found, %d hits", ce->hits));
-+#endif
-+ /* loop over subject lists and get refs for certs */
-+ if (certListOpt) {
-+ collectList = certListOpt;
-+ } else {
-+ collectList = nssList_Create(NULL, PR_FALSE);
-+ if (!collectList) {
-+ PZ_Unlock(td->cache->lock);
-+ return NULL;
-+ }
-+ }
-+ iter = nssList_CreateIterator(ce->entry.list);
-+ if (!iter) {
-+ PZ_Unlock(td->cache->lock);
-+ if (!certListOpt) {
-+ nssList_Destroy(collectList);
-+ }
-+ return NULL;
-+ }
-+ for (subjectList = (nssList *)nssListIterator_Start(iter);
-+ subjectList != (nssList *)NULL;
-+ subjectList = (nssList *)nssListIterator_Next(iter)) {
-+ (void)collect_subject_certs(subjectList, collectList);
-+ }
-+ nssListIterator_Finish(iter);
-+ nssListIterator_Destroy(iter);
-+ }
-+ PZ_Unlock(td->cache->lock);
-+ if (!certListOpt && collectList) {
-+ PRUint32 count = nssList_Count(collectList);
-+ rvArray = nss_ZNEWARRAY(NULL, NSSCertificate *, count);
-+ if (rvArray) {
-+ nssList_GetArray(collectList, (void **)rvArray, count);
-+ }
-+ nssList_Destroy(collectList);
-+ }
-+ return rvArray;
-+}
-+
-+/*
-+ * Look for a specific cert in the cache
-+ */
-+NSS_IMPLEMENT NSSCertificate *
-+nssTrustDomain_GetCertForIssuerAndSNFromCache (
-+ NSSTrustDomain *td,
-+ NSSDER *issuer,
-+ NSSDER *serial
-+)
-+{
-+ NSSCertificate certkey;
-+ NSSCertificate *rvCert = NULL;
-+ cache_entry *ce;
-+ certkey.issuer.data = issuer->data;
-+ certkey.issuer.size = issuer->size;
-+ certkey.serial.data = serial->data;
-+ certkey.serial.size = serial->size;
-+#ifdef DEBUG_CACHE
-+ log_item_dump("looking for cert by issuer/sn, issuer", issuer);
-+ log_item_dump(" serial", serial);
-+#endif
-+ PZ_Lock(td->cache->lock);
-+ ce = (cache_entry *)nssHash_Lookup(td->cache->issuerAndSN, &certkey);
-+ if (ce) {
-+ ce->hits++;
-+ ce->lastHit = PR_Now();
-+ rvCert = nssCertificate_AddRef(ce->entry.cert);
-+#ifdef DEBUG_CACHE
-+ PR_LOG(s_log, PR_LOG_DEBUG, ("... found, %d hits", ce->hits));
-+#endif
-+ }
-+ PZ_Unlock(td->cache->lock);
-+ return rvCert;
-+}
-+
-+#ifdef NSS_3_4_CODE
-+static PRStatus
-+issuer_and_serial_from_encoding (
-+ NSSBER *encoding,
-+ NSSDER *issuer,
-+ NSSDER *serial
-+)
-+{
-+ SECItem derCert, derIssuer, derSerial;
-+ SECStatus secrv;
-+ derCert.data = (unsigned char *)encoding->data;
-+ derCert.len = encoding->size;
-+ secrv = CERT_IssuerNameFromDERCert(&derCert, &derIssuer);
-+ if (secrv != SECSuccess) {
-+ return PR_FAILURE;
-+ }
-+ secrv = CERT_SerialNumberFromDERCert(&derCert, &derSerial);
-+ if (secrv != SECSuccess) {
-+ return PR_FAILURE;
-+ }
-+ issuer->data = derIssuer.data;
-+ issuer->size = derIssuer.len;
-+ serial->data = derSerial.data;
-+ serial->size = derSerial.len;
-+ return PR_SUCCESS;
-+}
-+#endif
-+
-+/*
-+ * Look for a specific cert in the cache
-+ */
-+NSS_IMPLEMENT NSSCertificate *
-+nssTrustDomain_GetCertByDERFromCache (
-+ NSSTrustDomain *td,
-+ NSSDER *der
-+)
-+{
-+ PRStatus nssrv = PR_FAILURE;
-+ NSSDER issuer, serial;
-+ NSSCertificate *rvCert;
-+#ifdef NSS_3_4_CODE
-+ nssrv = issuer_and_serial_from_encoding(der, &issuer, &serial);
-+#endif
-+ if (nssrv != PR_SUCCESS) {
-+ return NULL;
-+ }
-+#ifdef DEBUG_CACHE
-+ log_item_dump("looking for cert by DER", der);
-+#endif
-+ rvCert = nssTrustDomain_GetCertForIssuerAndSNFromCache(td,
-+ &issuer, &serial);
-+#ifdef NSS_3_4_CODE
-+ PORT_Free(issuer.data);
-+ PORT_Free(serial.data);
-+#endif
-+ return rvCert;
-+}
-+
-+static void cert_iter(const void *k, void *v, void *a)
-+{
-+ nssList *certList = (nssList *)a;
-+ NSSCertificate *c = (NSSCertificate *)k;
-+ nssList_Add(certList, nssCertificate_AddRef(c));
-+}
-+
-+NSS_EXTERN NSSCertificate **
-+nssTrustDomain_GetCertsFromCache (
-+ NSSTrustDomain *td,
-+ nssList *certListOpt
-+)
-+{
-+ NSSCertificate **rvArray = NULL;
-+ nssList *certList;
-+ if (certListOpt) {
-+ certList = certListOpt;
-+ } else {
-+ certList = nssList_Create(NULL, PR_FALSE);
-+ }
-+ PZ_Lock(td->cache->lock);
-+ nssHash_Iterate(td->cache->issuerAndSN, cert_iter, (void *)certList);
-+ PZ_Unlock(td->cache->lock);
-+ if (!certListOpt) {
-+ PRUint32 count = nssList_Count(certList);
-+ rvArray = nss_ZNEWARRAY(NULL, NSSCertificate *, count);
-+ nssList_GetArray(certList, (void **)rvArray, count);
-+ /* array takes the references */
-+ nssList_Destroy(certList);
-+ }
-+ return rvArray;
-+}
-+
-+NSS_IMPLEMENT void
-+nssTrustDomain_DumpCacheInfo (
-+ NSSTrustDomain *td,
-+ void (* cert_dump_iter)(const void *, void *, void *),
-+ void *arg
-+)
-+{
-+ PZ_Lock(td->cache->lock);
-+ nssHash_Iterate(td->cache->issuerAndSN, cert_dump_iter, arg);
-+ PZ_Unlock(td->cache->lock);
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/tracker.c 2004-12-13 13:06:46.846375360 +0100
-@@ -0,0 +1,543 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+/*
-+ * tracker.c
-+ *
-+ * This file contains the code used by the pointer-tracking calls used
-+ * in the debug builds to catch bad pointers. The entire contents are
-+ * only available in debug builds (both internal and external builds).
-+ */
-+
-+#ifndef BASE_H
-+#include "base.h"
-+#endif /* BASE_H */
-+
-+#ifdef DEBUG
-+
-+/*
-+ * call_once
-+ *
-+ * Unfortunately, NSPR's PR_CallOnce function doesn't accept a closure
-+ * variable. So I have a static version here which does. This code
-+ * is based on NSPR's, and uses the NSPR function to initialize the
-+ * required lock.
-+ */
-+
-+/*
-+ * The is the "once block" that's passed to the "real" PR_CallOnce
-+ * function, to call the local initializer myOnceFunction once.
-+ */
-+static PRCallOnceType myCallOnce;
-+
-+/*
-+ * This structure is used by the call_once function to make sure that
-+ * any "other" threads calling the call_once don't return too quickly,
-+ * before the initializer has finished.
-+ */
-+static struct {
-+ PZLock *ml;
-+ PZCondVar *cv;
-+} mod_init;
-+
-+/*
-+ * This is the initializer for the above mod_init structure.
-+ */
-+static PRStatus
-+myOnceFunction
-+(
-+ void
-+)
-+{
-+ mod_init.ml = PZ_NewLock(nssILockOther);
-+ if( (PZLock *)NULL == mod_init.ml ) {
-+ return PR_FAILURE;
-+ }
-+
-+ mod_init.cv = PZ_NewCondVar(mod_init.ml);
-+ if( (PZCondVar *)NULL == mod_init.cv ) {
-+ PZ_DestroyLock(mod_init.ml);
-+ mod_init.ml = (PZLock *)NULL;
-+ return PR_FAILURE;
-+ }
-+
-+ return PR_SUCCESS;
-+}
-+
-+/*
-+ * The nss call_once callback takes a closure argument.
-+ */
-+typedef PRStatus (PR_CALLBACK *nssCallOnceFN)(void *arg);
-+
-+/*
-+ * NSS's call_once function.
-+ */
-+static PRStatus
-+call_once
-+(
-+ PRCallOnceType *once,
-+ nssCallOnceFN func,
-+ void *arg
-+)
-+{
-+ PRStatus rv;
-+
-+ if( !myCallOnce.initialized ) {
-+ rv = PR_CallOnce(&myCallOnce, myOnceFunction);
-+ if( PR_SUCCESS != rv ) {
-+ return rv;
-+ }
-+ }
-+
-+ if( !once->initialized ) {
-+ if( 0 == PR_AtomicSet(&once->inProgress, 1) ) {
-+ once->status = (*func)(arg);
-+ PZ_Lock(mod_init.ml);
-+ once->initialized = 1;
-+ PZ_NotifyAllCondVar(mod_init.cv);
-+ PZ_Unlock(mod_init.ml);
-+ } else {
-+ PZ_Lock(mod_init.ml);
-+ while( !once->initialized ) {
-+ PZ_WaitCondVar(mod_init.cv, PR_INTERVAL_NO_TIMEOUT);
-+ }
-+ PZ_Unlock(mod_init.ml);
-+ }
-+ }
-+
-+ return once->status;
-+}
-+
-+/*
-+ * Now we actually get to my own "call once" payload function.
-+ * But wait, to create the hash, I need a hash function!
-+ */
-+
-+/*
-+ * identity_hash
-+ *
-+ * This static callback is a PLHashFunction as defined in plhash.h
-+ * It merely returns the value of the object pointer as its hash.
-+ * There are no possible errors.
-+ */
-+
-+static PLHashNumber PR_CALLBACK
-+identity_hash
-+(
-+ const void *key
-+)
-+{
-+ return (PLHashNumber)key;
-+}
-+
-+/*
-+ * trackerOnceFunc
-+ *
-+ * This function is called once, using the nssCallOnce function above.
-+ * It creates a new pointer tracker object; initialising its hash
-+ * table and protective lock.
-+ */
-+
-+static PRStatus
-+trackerOnceFunc
-+(
-+ void *arg
-+)
-+{
-+ nssPointerTracker *tracker = (nssPointerTracker *)arg;
-+
-+ tracker->lock = PZ_NewLock(nssILockOther);
-+ if( (PZLock *)NULL == tracker->lock ) {
-+ return PR_FAILURE;
-+ }
-+
-+ tracker->table = PL_NewHashTable(0,
-+ identity_hash,
-+ PL_CompareValues,
-+ PL_CompareValues,
-+ (PLHashAllocOps *)NULL,
-+ (void *)NULL);
-+ if( (PLHashTable *)NULL == tracker->table ) {
-+ PZ_DestroyLock(tracker->lock);
-+ tracker->lock = (PZLock *)NULL;
-+ return PR_FAILURE;
-+ }
-+
-+ return PR_SUCCESS;
-+}
-+
-+/*
-+ * nssPointerTracker_initialize
-+ *
-+ * This method is only present in debug builds.
-+ *
-+ * This routine initializes an nssPointerTracker object. Note that
-+ * the object must have been declared *static* to guarantee that it
-+ * is in a zeroed state initially. This routine is idempotent, and
-+ * may even be safely called by multiple threads simultaneously with
-+ * the same argument. This routine returns a PRStatus value; if
-+ * successful, it will return PR_SUCCESS. On failure it will set an
-+ * error on the error stack and return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_NO_MEMORY
-+ *
-+ * Return value:
-+ * PR_SUCCESS
-+ * PR_FAILURE
-+ */
-+
-+NSS_IMPLEMENT PRStatus
-+nssPointerTracker_initialize
-+(
-+ nssPointerTracker *tracker
-+)
-+{
-+ PRStatus rv = call_once(&tracker->once, trackerOnceFunc, tracker);
-+ if( PR_SUCCESS != rv ) {
-+ nss_SetError(NSS_ERROR_NO_MEMORY);
-+ }
-+
-+ return rv;
-+}
-+
-+#ifdef DONT_DESTROY_EMPTY_TABLES
-+/* See same #ifdef below */
-+/*
-+ * count_entries
-+ *
-+ * This static routine is a PLHashEnumerator, as defined in plhash.h.
-+ * It merely causes the enumeration function to count the number of
-+ * entries.
-+ */
-+
-+static PRIntn PR_CALLBACK
-+count_entries
-+(
-+ PLHashEntry *he,
-+ PRIntn index,
-+ void *arg
-+)
-+{
-+ return HT_ENUMERATE_NEXT;
-+}
-+#endif /* DONT_DESTROY_EMPTY_TABLES */
-+
-+/*
-+ * zero_once
-+ *
-+ * This is a guaranteed zeroed once block. It's used to help clear
-+ * the tracker.
-+ */
-+
-+static const PRCallOnceType zero_once;
-+
-+/*
-+ * nssPointerTracker_finalize
-+ *
-+ * This method is only present in debug builds.
-+ *
-+ * This routine returns the nssPointerTracker object to the pre-
-+ * initialized state, releasing all resources used by the object.
-+ * It will *NOT* destroy the objects being tracked by the pointer
-+ * (should any remain), and therefore cannot be used to "sweep up"
-+ * remaining objects. This routine returns a PRStatus value; if
-+ * successful, it will return PR_SUCCES. On failure it will set an
-+ * error on the error stack and return PR_FAILURE. If any objects
-+ * remain in the tracker when it is finalized, that will be treated
-+ * as an error.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_POINTER
-+ * NSS_ERROR_TRACKER_NOT_INITIALIZED
-+ * NSS_ERROR_TRACKER_NOT_EMPTY
-+ *
-+ * Return value:
-+ * PR_SUCCESS
-+ * PR_FAILURE
-+ */
-+
-+NSS_IMPLEMENT PRStatus
-+nssPointerTracker_finalize
-+(
-+ nssPointerTracker *tracker
-+)
-+{
-+ PZLock *lock;
-+
-+ if( (nssPointerTracker *)NULL == tracker ) {
-+ nss_SetError(NSS_ERROR_INVALID_POINTER);
-+ return PR_FAILURE;
-+ }
-+
-+ if( (PZLock *)NULL == tracker->lock ) {
-+ nss_SetError(NSS_ERROR_TRACKER_NOT_INITIALIZED);
-+ return PR_FAILURE;
-+ }
-+
-+ lock = tracker->lock;
-+ PZ_Lock(lock);
-+
-+ if( (PLHashTable *)NULL == tracker->table ) {
-+ PZ_Unlock(lock);
-+ nss_SetError(NSS_ERROR_TRACKER_NOT_INITIALIZED);
-+ return PR_FAILURE;
-+ }
-+
-+#ifdef DONT_DESTROY_EMPTY_TABLES
-+ /*
-+ * I changed my mind; I think we don't want this after all.
-+ * Comments?
-+ */
-+ count = PL_HashTableEnumerateEntries(tracker->table,
-+ count_entries,
-+ (void *)NULL);
-+
-+ if( 0 != count ) {
-+ PZ_Unlock(lock);
-+ nss_SetError(NSS_ERROR_TRACKER_NOT_EMPTY);
-+ return PR_FAILURE;
-+ }
-+#endif /* DONT_DESTROY_EMPTY_TABLES */
-+
-+ PL_HashTableDestroy(tracker->table);
-+ /* memset(tracker, 0, sizeof(nssPointerTracker)); */
-+ tracker->once = zero_once;
-+ tracker->lock = (PZLock *)NULL;
-+ tracker->table = (PLHashTable *)NULL;
-+
-+ PZ_Unlock(lock);
-+ PZ_DestroyLock(lock);
-+
-+ return PR_SUCCESS;
-+}
-+
-+/*
-+ * nssPointerTracker_add
-+ *
-+ * This method is only present in debug builds.
-+ *
-+ * This routine adds the specified pointer to the nssPointerTracker
-+ * object. It should be called in constructor objects to register
-+ * new valid objects. The nssPointerTracker is threadsafe, but this
-+ * call is not idempotent. This routine returns a PRStatus value;
-+ * if successful it will return PR_SUCCESS. On failure it will set
-+ * an error on the error stack and return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_POINTER
-+ * NSS_ERROR_NO_MEMORY
-+ * NSS_ERROR_TRACKER_NOT_INITIALIZED
-+ * NSS_ERROR_DUPLICATE_POINTER
-+ *
-+ * Return value:
-+ * PR_SUCCESS
-+ * PR_FAILURE
-+ */
-+
-+NSS_IMPLEMENT PRStatus
-+nssPointerTracker_add
-+(
-+ nssPointerTracker *tracker,
-+ const void *pointer
-+)
-+{
-+ void *check;
-+ PLHashEntry *entry;
-+
-+ if( (nssPointerTracker *)NULL == tracker ) {
-+ nss_SetError(NSS_ERROR_INVALID_POINTER);
-+ return PR_FAILURE;
-+ }
-+
-+ if( (PZLock *)NULL == tracker->lock ) {
-+ nss_SetError(NSS_ERROR_TRACKER_NOT_INITIALIZED);
-+ return PR_FAILURE;
-+ }
-+
-+ PZ_Lock(tracker->lock);
-+
-+ if( (PLHashTable *)NULL == tracker->table ) {
-+ PZ_Unlock(tracker->lock);
-+ nss_SetError(NSS_ERROR_TRACKER_NOT_INITIALIZED);
-+ return PR_FAILURE;
-+ }
-+
-+ check = PL_HashTableLookup(tracker->table, pointer);
-+ if( (void *)NULL != check ) {
-+ PZ_Unlock(tracker->lock);
-+ nss_SetError(NSS_ERROR_DUPLICATE_POINTER);
-+ return PR_FAILURE;
-+ }
-+
-+ entry = PL_HashTableAdd(tracker->table, pointer, (void *)pointer);
-+
-+ PZ_Unlock(tracker->lock);
-+
-+ if( (PLHashEntry *)NULL == entry ) {
-+ nss_SetError(NSS_ERROR_NO_MEMORY);
-+ return PR_FAILURE;
-+ }
-+
-+ return PR_SUCCESS;
-+}
-+
-+/*
-+ * nssPointerTracker_remove
-+ *
-+ * This method is only present in debug builds.
-+ *
-+ * This routine removes the specified pointer from the
-+ * nssPointerTracker object. It does not call any destructor for the
-+ * object; rather, this should be called from the object's destructor.
-+ * The nssPointerTracker is threadsafe, but this call is not
-+ * idempotent. This routine returns a PRStatus value; if successful
-+ * it will return PR_SUCCESS. On failure it will set an error on the
-+ * error stack and return PR_FAILURE.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_POINTER
-+ * NSS_ERROR_TRACKER_NOT_INITIALIZED
-+ * NSS_ERROR_POINTER_NOT_REGISTERED
-+ *
-+ * Return value:
-+ * PR_SUCCESS
-+ * PR_FAILURE
-+ */
-+
-+NSS_IMPLEMENT PRStatus
-+nssPointerTracker_remove
-+(
-+ nssPointerTracker *tracker,
-+ const void *pointer
-+)
-+{
-+ PRBool registered;
-+
-+ if( (nssPointerTracker *)NULL == tracker ) {
-+ nss_SetError(NSS_ERROR_INVALID_POINTER);
-+ return PR_FAILURE;
-+ }
-+
-+ if( (PZLock *)NULL == tracker->lock ) {
-+ nss_SetError(NSS_ERROR_TRACKER_NOT_INITIALIZED);
-+ return PR_FAILURE;
-+ }
-+
-+ PZ_Lock(tracker->lock);
-+
-+ if( (PLHashTable *)NULL == tracker->table ) {
-+ PZ_Unlock(tracker->lock);
-+ nss_SetError(NSS_ERROR_TRACKER_NOT_INITIALIZED);
-+ return PR_FAILURE;
-+ }
-+
-+ registered = PL_HashTableRemove(tracker->table, pointer);
-+ PZ_Unlock(tracker->lock);
-+
-+ if( !registered ) {
-+ nss_SetError(NSS_ERROR_POINTER_NOT_REGISTERED);
-+ return PR_FAILURE;
-+ }
-+
-+ return PR_SUCCESS;
-+}
-+
-+/*
-+ * nssPointerTracker_verify
-+ *
-+ * This method is only present in debug builds.
-+ *
-+ * This routine verifies that the specified pointer has been registered
-+ * with the nssPointerTracker object. The nssPointerTracker object is
-+ * threadsafe, and this call may be safely called from multiple threads
-+ * simultaneously with the same arguments. This routine returns a
-+ * PRStatus value; if the pointer is registered this will return
-+ * PR_SUCCESS. Otherwise it will set an error on the error stack and
-+ * return PR_FAILURE. Although the error is suitable for leaving on
-+ * the stack, callers may wish to augment the information available by
-+ * placing a more type-specific error on the stack.
-+ *
-+ * The error may be one of the following values:
-+ * NSS_ERROR_INVALID_POINTER
-+ * NSS_ERROR_TRACKER_NOT_INITIALIZED
-+ * NSS_ERROR_POINTER_NOT_REGISTERED
-+ *
-+ * Return value:
-+ * PR_SUCCESS
-+ * PR_FAILRUE
-+ */
-+
-+NSS_IMPLEMENT PRStatus
-+nssPointerTracker_verify
-+(
-+ nssPointerTracker *tracker,
-+ const void *pointer
-+)
-+{
-+ void *check;
-+
-+ if( (nssPointerTracker *)NULL == tracker ) {
-+ nss_SetError(NSS_ERROR_INVALID_POINTER);
-+ return PR_FAILURE;
-+ }
-+
-+ if( (PZLock *)NULL == tracker->lock ) {
-+ nss_SetError(NSS_ERROR_TRACKER_NOT_INITIALIZED);
-+ return PR_FAILURE;
-+ }
-+
-+ PZ_Lock(tracker->lock);
-+
-+ if( (PLHashTable *)NULL == tracker->table ) {
-+ PZ_Unlock(tracker->lock);
-+ nss_SetError(NSS_ERROR_TRACKER_NOT_INITIALIZED);
-+ return PR_FAILURE;
-+ }
-+
-+ check = PL_HashTableLookup(tracker->table, pointer);
-+ PZ_Unlock(tracker->lock);
-+
-+ if( (void *)NULL == check ) {
-+ nss_SetError(NSS_ERROR_POINTER_NOT_REGISTERED);
-+ return PR_FAILURE;
-+ }
-+
-+ return PR_SUCCESS;
-+}
-+
-+#endif /* DEBUG */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/trustdomain.c 2004-12-13 13:06:46.826378400 +0100
-@@ -0,0 +1,1383 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#ifndef DEV_H
-+#include "dev.h"
-+#endif /* DEV_H */
-+
-+#ifndef PKIM_H
-+#include "pkim.h"
-+#endif /* PKIM_H */
-+
-+#ifndef PKI1T_H
-+#include "pki1t.h"
-+#endif /* PKI1T_H */
-+
-+#ifdef NSS_3_4_CODE
-+#include "cert.h"
-+#include "pki3hack.h"
-+#endif
-+
-+#define NSSTRUSTDOMAIN_DEFAULT_CACHE_SIZE 32
-+
-+#ifdef PURE_STAN_BUILD
-+struct NSSTrustDomainStr {
-+ PRInt32 refCount;
-+ NSSArena *arena;
-+ NSSCallback *defaultCallback;
-+ struct {
-+ nssSlotList *forCerts;
-+ nssSlotList *forCiphers;
-+ nssSlotList *forTrust;
-+ } slots;
-+ nssCertificateCache *cache;
-+};
-+#endif
-+
-+extern const NSSError NSS_ERROR_NOT_FOUND;
-+
-+typedef PRUint32 nssUpdateLevel;
-+
-+NSS_IMPLEMENT NSSTrustDomain *
-+NSSTrustDomain_Create (
-+ NSSUTF8 *moduleOpt,
-+ NSSUTF8 *uriOpt,
-+ NSSUTF8 *opaqueOpt,
-+ void *reserved
-+)
-+{
-+ NSSArena *arena;
-+ NSSTrustDomain *rvTD;
-+ arena = NSSArena_Create();
-+ if(!arena) {
-+ return (NSSTrustDomain *)NULL;
-+ }
-+ rvTD = nss_ZNEW(arena, NSSTrustDomain);
-+ if (!rvTD) {
-+ goto loser;
-+ }
-+ nssTrustDomain_InitializeCache(rvTD, NSSTRUSTDOMAIN_DEFAULT_CACHE_SIZE);
-+ rvTD->arena = arena;
-+ rvTD->refCount = 1;
-+#ifdef NSS_3_4_CODE
-+ rvTD->statusConfig = NULL;
-+#endif
-+ return rvTD;
-+loser:
-+ nssArena_Destroy(arena);
-+ return (NSSTrustDomain *)NULL;
-+}
-+
-+static void
-+token_destructor(void *t)
-+{
-+ NSSToken *tok = (NSSToken *)t;
-+ /* in 3.4, also destroy the slot (managed separately) */
-+ (void)nssSlot_Destroy(tok->slot);
-+ nssToken_Destroy(tok);
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSTrustDomain_Destroy (
-+ NSSTrustDomain *td
-+)
-+{
-+ PRStatus status = PR_SUCCESS;
-+ if (--td->refCount == 0) {
-+ /* Destroy each token in the list of tokens */
-+ if (td->tokens) {
-+ nssListIterator_Destroy(td->tokens);
-+ nssList_Clear(td->tokenList, token_destructor);
-+ nssList_Destroy(td->tokenList);
-+ }
-+ status = nssTrustDomain_DestroyCache(td);
-+ if (status == PR_FAILURE) {
-+ return status;
-+ }
-+ /* Destroy the trust domain */
-+ nssArena_Destroy(td->arena);
-+ }
-+ return status;
-+}
-+
-+/* XXX uses tokens until slot list is in place */
-+static NSSSlot **
-+nssTrustDomain_GetActiveSlots (
-+ NSSTrustDomain *td,
-+ nssUpdateLevel *updateLevel
-+)
-+{
-+ PRUint32 count;
-+ NSSSlot **slots = NULL;
-+ NSSToken **tp, **tokens;
-+ *updateLevel = 1;
-+ count = nssList_Count(td->tokenList);
-+ tokens = nss_ZNEWARRAY(NULL, NSSToken *, count + 1);
-+ if (!tokens) {
-+ return NULL;
-+ }
-+ slots = nss_ZNEWARRAY(NULL, NSSSlot *, count + 1);
-+ if (!slots) {
-+ nss_ZFreeIf(tokens);
-+ return NULL;
-+ }
-+ nssList_GetArray(td->tokenList, (void **)tokens, count);
-+ count = 0;
-+ for (tp = tokens; *tp; tp++) {
-+ slots[count++] = nssToken_GetSlot(*tp);
-+ }
-+ nss_ZFreeIf(tokens);
-+ return slots;
-+}
-+
-+/* XXX */
-+static nssSession *
-+nssTrustDomain_GetSessionForToken (
-+ NSSTrustDomain *td,
-+ NSSToken *token
-+)
-+{
-+ return nssToken_GetDefaultSession(token);
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSTrustDomain_SetDefaultCallback (
-+ NSSTrustDomain *td,
-+ NSSCallback *newCallback,
-+ NSSCallback **oldCallbackOpt
-+)
-+{
-+ if (oldCallbackOpt) {
-+ *oldCallbackOpt = td->defaultCallback;
-+ }
-+ td->defaultCallback = newCallback;
-+ return PR_SUCCESS;
-+}
-+
-+NSS_IMPLEMENT NSSCallback *
-+nssTrustDomain_GetDefaultCallback (
-+ NSSTrustDomain *td,
-+ PRStatus *statusOpt
-+)
-+{
-+ if (statusOpt) {
-+ *statusOpt = PR_SUCCESS;
-+ }
-+ return td->defaultCallback;
-+}
-+
-+NSS_IMPLEMENT NSSCallback *
-+NSSTrustDomain_GetDefaultCallback (
-+ NSSTrustDomain *td,
-+ PRStatus *statusOpt
-+)
-+{
-+ return nssTrustDomain_GetDefaultCallback(td, statusOpt);
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSTrustDomain_LoadModule (
-+ NSSTrustDomain *td,
-+ NSSUTF8 *moduleOpt,
-+ NSSUTF8 *uriOpt,
-+ NSSUTF8 *opaqueOpt,
-+ void *reserved
-+)
-+{
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSTrustDomain_DisableToken (
-+ NSSTrustDomain *td,
-+ NSSToken *token,
-+ NSSError why
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSTrustDomain_EnableToken (
-+ NSSTrustDomain *td,
-+ NSSToken *token
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSTrustDomain_IsTokenEnabled (
-+ NSSTrustDomain *td,
-+ NSSToken *token,
-+ NSSError *whyOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT NSSSlot *
-+NSSTrustDomain_FindSlotByName (
-+ NSSTrustDomain *td,
-+ NSSUTF8 *slotName
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSToken *
-+NSSTrustDomain_FindTokenByName (
-+ NSSTrustDomain *td,
-+ NSSUTF8 *tokenName
-+)
-+{
-+ PRStatus nssrv;
-+ NSSUTF8 *myName;
-+ NSSToken *tok = NULL;
-+ for (tok = (NSSToken *)nssListIterator_Start(td->tokens);
-+ tok != (NSSToken *)NULL;
-+ tok = (NSSToken *)nssListIterator_Next(td->tokens))
-+ {
-+ if (nssToken_IsPresent(tok)) {
-+ myName = nssToken_GetName(tok);
-+ if (nssUTF8_Equal(tokenName, myName, &nssrv)) break;
-+ }
-+ }
-+ nssListIterator_Finish(td->tokens);
-+ return tok;
-+}
-+
-+NSS_IMPLEMENT NSSToken *
-+NSSTrustDomain_FindTokenBySlotName (
-+ NSSTrustDomain *td,
-+ NSSUTF8 *slotName
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSToken *
-+NSSTrustDomain_FindTokenForAlgorithm (
-+ NSSTrustDomain *td,
-+ NSSOID *algorithm
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSToken *
-+NSSTrustDomain_FindBestTokenForAlgorithms (
-+ NSSTrustDomain *td,
-+ NSSOID *algorithms[], /* may be null-terminated */
-+ PRUint32 nAlgorithmsOpt /* limits the array if nonzero */
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSTrustDomain_Login (
-+ NSSTrustDomain *td,
-+ NSSCallback *uhhOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSTrustDomain_Logout (
-+ NSSTrustDomain *td
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSTrustDomain_ImportCertificate (
-+ NSSTrustDomain *td,
-+ NSSCertificate *c
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSTrustDomain_ImportPKIXCertificate (
-+ NSSTrustDomain *td,
-+ /* declared as a struct until these "data types" are defined */
-+ struct NSSPKIXCertificateStr *pc
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSTrustDomain_ImportEncodedCertificate (
-+ NSSTrustDomain *td,
-+ NSSBER *ber
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate **
-+NSSTrustDomain_ImportEncodedCertificateChain (
-+ NSSTrustDomain *td,
-+ NSSBER *ber,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt, /* 0 for no max */
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSPrivateKey *
-+NSSTrustDomain_ImportEncodedPrivateKey (
-+ NSSTrustDomain *td,
-+ NSSBER *ber,
-+ NSSItem *passwordOpt, /* NULL will cause a callback */
-+ NSSCallback *uhhOpt,
-+ NSSToken *destination
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSPublicKey *
-+NSSTrustDomain_ImportEncodedPublicKey (
-+ NSSTrustDomain *td,
-+ NSSBER *ber
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+static NSSCertificate **
-+get_certs_from_list(nssList *list)
-+{
-+ PRUint32 count = nssList_Count(list);
-+ NSSCertificate **certs = NULL;
-+ if (count > 0) {
-+ certs = nss_ZNEWARRAY(NULL, NSSCertificate *, count + 1);
-+ if (certs) {
-+ nssList_GetArray(list, (void **)certs, count);
-+ }
-+ }
-+ return certs;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate **
-+nssTrustDomain_FindCertificatesByNickname (
-+ NSSTrustDomain *td,
-+ NSSUTF8 *name,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt, /* 0 for no max */
-+ NSSArena *arenaOpt
-+)
-+{
-+ PRStatus status;
-+ PRUint32 numRemaining;
-+ NSSToken *token = NULL;
-+ NSSSlot **slots = NULL;
-+ NSSSlot **slotp;
-+ NSSCertificate **rvCerts = NULL;
-+ nssPKIObjectCollection *collection = NULL;
-+ nssUpdateLevel updateLevel;
-+ nssList *nameList;
-+ /* First, grab from the cache */
-+ nameList = nssList_Create(NULL, PR_FALSE);
-+ if (!nameList) {
-+ return NULL;
-+ }
-+ (void)nssTrustDomain_GetCertsForNicknameFromCache(td, name, nameList);
-+ rvCerts = get_certs_from_list(nameList);
-+ /* initialize the collection of token certificates with the set of
-+ * cached certs (if any).
-+ */
-+ collection = nssCertificateCollection_Create(td, rvCerts);
-+ nssCertificateArray_Destroy(rvCerts);
-+ nssList_Destroy(nameList);
-+ if (!collection) {
-+ return (NSSCertificate **)NULL;
-+ }
-+ /* obtain the current set of active slots in the trust domain */
-+ slots = nssTrustDomain_GetActiveSlots(td, &updateLevel);
-+ if (!slots) {
-+ goto loser;
-+ }
-+ /* iterate over the slots */
-+ numRemaining = maximumOpt;
-+ for (slotp = slots; *slotp; slotp++) {
-+ token = nssSlot_GetToken(*slotp);
-+ if (token) {
-+ nssSession *session;
-+ nssCryptokiObject **instances;
-+ nssTokenSearchType tokenOnly = nssTokenSearchType_TokenOnly;
-+ session = nssTrustDomain_GetSessionForToken(td, token);
-+ if (!session) {
-+ nssToken_Destroy(token);
-+ goto loser;
-+ }
-+ instances = nssToken_FindCertificatesByNickname(token,
-+ session,
-+ name,
-+ tokenOnly,
-+ numRemaining,
-+ &status);
-+ nssToken_Destroy(token);
-+ if (status != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ if (instances) {
-+ status = nssPKIObjectCollection_AddInstances(collection,
-+ instances, 0);
-+ nss_ZFreeIf(instances);
-+ if (status != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ if (maximumOpt > 0) {
-+ PRUint32 count;
-+ count = nssPKIObjectCollection_Count(collection);
-+ numRemaining = maximumOpt - count;
-+ if (numRemaining == 0) break;
-+ }
-+ }
-+ }
-+ }
-+ /* Grab the certs collected in the search. */
-+ rvCerts = nssPKIObjectCollection_GetCertificates(collection,
-+ rvOpt, maximumOpt,
-+ arenaOpt);
-+ /* clean up */
-+ nssPKIObjectCollection_Destroy(collection);
-+ nssSlotArray_Destroy(slots);
-+ return rvCerts;
-+loser:
-+ if (slots) {
-+ nssSlotArray_Destroy(slots);
-+ }
-+ if (collection) {
-+ nssPKIObjectCollection_Destroy(collection);
-+ }
-+ return (NSSCertificate **)NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate **
-+NSSTrustDomain_FindCertificatesByNickname (
-+ NSSTrustDomain *td,
-+ NSSUTF8 *name,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt, /* 0 for no max */
-+ NSSArena *arenaOpt
-+)
-+{
-+ return nssTrustDomain_FindCertificatesByNickname(td,
-+ name,
-+ rvOpt,
-+ maximumOpt,
-+ arenaOpt);
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+nssTrustDomain_FindBestCertificateByNickname (
-+ NSSTrustDomain *td,
-+ NSSUTF8 *name,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt
-+)
-+{
-+ NSSCertificate **nicknameCerts;
-+ NSSCertificate *rvCert = NULL;
-+ nicknameCerts = nssTrustDomain_FindCertificatesByNickname(td, name,
-+ NULL,
-+ 0,
-+ NULL);
-+ if (nicknameCerts) {
-+ rvCert = nssCertificateArray_FindBestCertificate(nicknameCerts,
-+ timeOpt,
-+ usage,
-+ policiesOpt);
-+ nssCertificateArray_Destroy(nicknameCerts);
-+ }
-+ return rvCert;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSTrustDomain_FindBestCertificateByNickname (
-+ NSSTrustDomain *td,
-+ NSSUTF8 *name,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt
-+)
-+{
-+ return nssTrustDomain_FindBestCertificateByNickname(td,
-+ name,
-+ timeOpt,
-+ usage,
-+ policiesOpt);
-+}
-+
-+NSS_IMPLEMENT NSSCertificate **
-+nssTrustDomain_FindCertificatesBySubject (
-+ NSSTrustDomain *td,
-+ NSSDER *subject,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ PRStatus status;
-+ PRUint32 numRemaining;
-+ NSSToken *token = NULL;
-+ NSSSlot **slots = NULL;
-+ NSSSlot **slotp;
-+ NSSCertificate **rvCerts = NULL;
-+ nssPKIObjectCollection *collection = NULL;
-+ nssUpdateLevel updateLevel;
-+ nssList *subjectList;
-+ /* look in cache */
-+ subjectList = nssList_Create(NULL, PR_FALSE);
-+ if (!subjectList) {
-+ return NULL;
-+ }
-+ (void)nssTrustDomain_GetCertsForSubjectFromCache(td, subject, subjectList);
-+ rvCerts = get_certs_from_list(subjectList);
-+ collection = nssCertificateCollection_Create(td, rvCerts);
-+ nssCertificateArray_Destroy(rvCerts);
-+ nssList_Destroy(subjectList);
-+ if (!collection) {
-+ return (NSSCertificate **)NULL;
-+ }
-+ slots = nssTrustDomain_GetActiveSlots(td, &updateLevel);
-+ if (!slots) {
-+ goto loser;
-+ }
-+ numRemaining = maximumOpt;
-+ for (slotp = slots; *slotp; slotp++) {
-+ token = nssSlot_GetToken(*slotp);
-+ if (token) {
-+ nssSession *session;
-+ nssCryptokiObject **instances;
-+ nssTokenSearchType tokenOnly = nssTokenSearchType_TokenOnly;
-+ session = nssTrustDomain_GetSessionForToken(td, token);
-+ if (!session) {
-+ nssToken_Destroy(token);
-+ goto loser;
-+ }
-+ instances = nssToken_FindCertificatesBySubject(token,
-+ session,
-+ subject,
-+ tokenOnly,
-+ numRemaining,
-+ &status);
-+ nssToken_Destroy(token);
-+ if (status != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ if (instances) {
-+ status = nssPKIObjectCollection_AddInstances(collection,
-+ instances, 0);
-+ nss_ZFreeIf(instances);
-+ if (status != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ if (maximumOpt > 0) {
-+ PRUint32 count;
-+ count = nssPKIObjectCollection_Count(collection);
-+ numRemaining = maximumOpt - count;
-+ if (numRemaining == 0) break;
-+ }
-+ }
-+ }
-+ }
-+ rvCerts = nssPKIObjectCollection_GetCertificates(collection,
-+ rvOpt, maximumOpt,
-+ arenaOpt);
-+ nssPKIObjectCollection_Destroy(collection);
-+ nssSlotArray_Destroy(slots);
-+ return rvCerts;
-+loser:
-+ if (slots) {
-+ nssSlotArray_Destroy(slots);
-+ }
-+ if (collection) {
-+ nssPKIObjectCollection_Destroy(collection);
-+ }
-+ return (NSSCertificate **)NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate **
-+NSSTrustDomain_FindCertificatesBySubject (
-+ NSSTrustDomain *td,
-+ NSSDER *subject,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt,
-+ NSSArena *arenaOpt
-+)
-+{
-+ return nssTrustDomain_FindCertificatesBySubject(td,
-+ subject,
-+ rvOpt,
-+ maximumOpt,
-+ arenaOpt);
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+nssTrustDomain_FindBestCertificateBySubject (
-+ NSSTrustDomain *td,
-+ NSSDER *subject,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt
-+)
-+{
-+ NSSCertificate **subjectCerts;
-+ NSSCertificate *rvCert = NULL;
-+ subjectCerts = nssTrustDomain_FindCertificatesBySubject(td, subject,
-+ NULL,
-+ 0,
-+ NULL);
-+ if (subjectCerts) {
-+ rvCert = nssCertificateArray_FindBestCertificate(subjectCerts,
-+ timeOpt,
-+ usage,
-+ policiesOpt);
-+ nssCertificateArray_Destroy(subjectCerts);
-+ }
-+ return rvCert;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSTrustDomain_FindBestCertificateBySubject (
-+ NSSTrustDomain *td,
-+ NSSDER *subject,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt
-+)
-+{
-+ return nssTrustDomain_FindBestCertificateBySubject(td,
-+ subject,
-+ timeOpt,
-+ usage,
-+ policiesOpt);
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSTrustDomain_FindBestCertificateByNameComponents (
-+ NSSTrustDomain *td,
-+ NSSUTF8 *nameComponents,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate **
-+NSSTrustDomain_FindCertificatesByNameComponents (
-+ NSSTrustDomain *td,
-+ NSSUTF8 *nameComponents,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt, /* 0 for no max */
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+nssTrustDomain_FindCertificateByIssuerAndSerialNumber (
-+ NSSTrustDomain *td,
-+ NSSDER *issuer,
-+ NSSDER *serial
-+)
-+{
-+ PRStatus status;
-+ NSSToken *token = NULL;
-+ NSSSlot **slots = NULL;
-+ NSSSlot **slotp;
-+ NSSCertificate *rvCert = NULL;
-+ nssPKIObjectCollection *collection = NULL;
-+ nssUpdateLevel updateLevel;
-+ /* see if this search is already cached */
-+ rvCert = nssTrustDomain_GetCertForIssuerAndSNFromCache(td,
-+ issuer,
-+ serial);
-+ if (rvCert) {
-+ return rvCert;
-+ }
-+ slots = nssTrustDomain_GetActiveSlots(td, &updateLevel);
-+ if (!slots) {
-+ goto loser;
-+ }
-+ for (slotp = slots; *slotp; slotp++) {
-+ token = nssSlot_GetToken(*slotp);
-+ if (token) {
-+ nssSession *session;
-+ nssCryptokiObject *instance;
-+ nssTokenSearchType tokenOnly = nssTokenSearchType_TokenOnly;
-+ session = nssTrustDomain_GetSessionForToken(td, token);
-+ if (!session) {
-+ nssToken_Destroy(token);
-+ goto loser;
-+ }
-+ instance = nssToken_FindCertificateByIssuerAndSerialNumber(
-+ token,
-+ session,
-+ issuer,
-+ serial,
-+ tokenOnly,
-+ &status);
-+ nssToken_Destroy(token);
-+ if (status != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ if (instance) {
-+ if (!collection) {
-+ collection = nssCertificateCollection_Create(td, NULL);
-+ if (!collection) {
-+ goto loser;
-+ }
-+ }
-+ nssPKIObjectCollection_AddInstances(collection,
-+ &instance, 1);
-+ }
-+ }
-+ }
-+ if (collection) {
-+ (void)nssPKIObjectCollection_GetCertificates(collection,
-+ &rvCert, 1, NULL);
-+ if (!rvCert) {
-+ goto loser;
-+ }
-+ nssPKIObjectCollection_Destroy(collection);
-+ }
-+ nssSlotArray_Destroy(slots);
-+ return rvCert;
-+loser:
-+ if (collection) {
-+ nssPKIObjectCollection_Destroy(collection);
-+ }
-+ if (slots) {
-+ nssSlotArray_Destroy(slots);
-+ }
-+ return (NSSCertificate *)NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSTrustDomain_FindCertificateByIssuerAndSerialNumber (
-+ NSSTrustDomain *td,
-+ NSSDER *issuer,
-+ NSSDER *serial
-+)
-+{
-+ return nssTrustDomain_FindCertificateByIssuerAndSerialNumber(td,
-+ issuer,
-+ serial);
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+nssTrustDomain_FindCertificateByEncodedCertificate (
-+ NSSTrustDomain *td,
-+ NSSBER *ber
-+)
-+{
-+ PRStatus status;
-+ NSSCertificate *rvCert = NULL;
-+ NSSDER issuer = { 0 };
-+ NSSDER serial = { 0 };
-+ NSSArena *arena = nssArena_Create();
-+ if (!arena) {
-+ return (NSSCertificate *)NULL;
-+ }
-+ /* XXX this is not generic... will any cert crack into issuer/serial? */
-+ status = nssPKIX509_GetIssuerAndSerialFromDER(ber, arena, &issuer, &serial);
-+ if (status != PR_SUCCESS) {
-+ goto finish;
-+ }
-+ rvCert = nssTrustDomain_FindCertificateByIssuerAndSerialNumber(td,
-+ &issuer,
-+ &serial);
-+finish:
-+ nssArena_Destroy(arena);
-+ return rvCert;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSTrustDomain_FindCertificateByEncodedCertificate (
-+ NSSTrustDomain *td,
-+ NSSBER *ber
-+)
-+{
-+ return nssTrustDomain_FindCertificateByEncodedCertificate(td, ber);
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSTrustDomain_FindBestCertificateByEmail (
-+ NSSTrustDomain *td,
-+ NSSASCII7 *email,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt
-+)
-+{
-+ return 0;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate **
-+NSSTrustDomain_FindCertificatesByEmail (
-+ NSSTrustDomain *td,
-+ NSSASCII7 *email,
-+ NSSCertificate *rvOpt[],
-+ PRUint32 maximumOpt, /* 0 for no max */
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSTrustDomain_FindCertificateByOCSPHash (
-+ NSSTrustDomain *td,
-+ NSSItem *hash
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSTrustDomain_FindBestUserCertificate (
-+ NSSTrustDomain *td,
-+ NSSTime *timeOpt,
-+ NSSUsage *usage,
-+ NSSPolicies *policiesOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate **
-+NSSTrustDomain_FindUserCertificates (
-+ NSSTrustDomain *td,
-+ NSSTime *timeOpt,
-+ NSSUsage *usageOpt,
-+ NSSPolicies *policiesOpt,
-+ NSSCertificate **rvOpt,
-+ PRUint32 rvLimit, /* zero for no limit */
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSTrustDomain_FindBestUserCertificateForSSLClientAuth (
-+ NSSTrustDomain *td,
-+ NSSUTF8 *sslHostOpt,
-+ NSSDER *rootCAsOpt[], /* null pointer for none */
-+ PRUint32 rootCAsMaxOpt, /* zero means list is null-terminated */
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSPolicies *policiesOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate **
-+NSSTrustDomain_FindUserCertificatesForSSLClientAuth (
-+ NSSTrustDomain *td,
-+ NSSUTF8 *sslHostOpt,
-+ NSSDER *rootCAsOpt[], /* null pointer for none */
-+ PRUint32 rootCAsMaxOpt, /* zero means list is null-terminated */
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSPolicies *policiesOpt,
-+ NSSCertificate **rvOpt,
-+ PRUint32 rvLimit, /* zero for no limit */
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate *
-+NSSTrustDomain_FindBestUserCertificateForEmailSigning (
-+ NSSTrustDomain *td,
-+ NSSASCII7 *signerOpt,
-+ NSSASCII7 *recipientOpt,
-+ /* anything more here? */
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSPolicies *policiesOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCertificate **
-+NSSTrustDomain_FindUserCertificatesForEmailSigning (
-+ NSSTrustDomain *td,
-+ NSSASCII7 *signerOpt,
-+ NSSASCII7 *recipientOpt,
-+ /* anything more here? */
-+ NSSAlgorithmAndParameters *apOpt,
-+ NSSPolicies *policiesOpt,
-+ NSSCertificate **rvOpt,
-+ PRUint32 rvLimit, /* zero for no limit */
-+ NSSArena *arenaOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+static PRStatus
-+collector(nssCryptokiObject *instance, void *arg)
-+{
-+ nssPKIObjectCollection *collection = (nssPKIObjectCollection *)arg;
-+ return nssPKIObjectCollection_AddInstanceAsObject(collection, instance);
-+}
-+
-+NSS_IMPLEMENT PRStatus *
-+NSSTrustDomain_TraverseCertificates (
-+ NSSTrustDomain *td,
-+ PRStatus (*callback)(NSSCertificate *c, void *arg),
-+ void *arg
-+)
-+{
-+ PRStatus status;
-+ NSSToken *token = NULL;
-+ NSSSlot **slots = NULL;
-+ NSSSlot **slotp;
-+ nssPKIObjectCollection *collection = NULL;
-+ nssPKIObjectCallback pkiCallback;
-+ nssUpdateLevel updateLevel;
-+ NSSCertificate **cached = NULL;
-+ nssList *certList;
-+
-+ certList = nssList_Create(NULL, PR_FALSE);
-+ if (!certList) return NULL;
-+ (void *)nssTrustDomain_GetCertsFromCache(td, certList);
-+ cached = get_certs_from_list(certList);
-+ collection = nssCertificateCollection_Create(td, cached);
-+ nssCertificateArray_Destroy(cached);
-+ nssList_Destroy(certList);
-+ if (!collection) {
-+ return (PRStatus *)NULL;
-+ }
-+ /* obtain the current set of active slots in the trust domain */
-+ slots = nssTrustDomain_GetActiveSlots(td, &updateLevel);
-+ if (!slots) {
-+ goto loser;
-+ }
-+ /* iterate over the slots */
-+ for (slotp = slots; *slotp; slotp++) {
-+ /* get the token for the slot, if present */
-+ token = nssSlot_GetToken(*slotp);
-+ if (token) {
-+ nssSession *session;
-+ nssTokenSearchType tokenOnly = nssTokenSearchType_TokenOnly;
-+ /* get a session for the token */
-+ session = nssTrustDomain_GetSessionForToken(td, token);
-+ if (!session) {
-+ nssToken_Destroy(token);
-+ goto loser;
-+ }
-+ /* perform the traversal */
-+ status = nssToken_TraverseCertificates(token,
-+ session,
-+ tokenOnly,
-+ collector,
-+ collection);
-+ nssToken_Destroy(token);
-+ }
-+ }
-+
-+ /* Traverse the collection */
-+ pkiCallback.func.cert = callback;
-+ pkiCallback.arg = arg;
-+ status = nssPKIObjectCollection_Traverse(collection, &pkiCallback);
-+ /* clean up */
-+ nssPKIObjectCollection_Destroy(collection);
-+ nssSlotArray_Destroy(slots);
-+ return NULL;
-+loser:
-+ if (slots) {
-+ nssSlotArray_Destroy(slots);
-+ }
-+ if (collection) {
-+ nssPKIObjectCollection_Destroy(collection);
-+ }
-+ return NULL;
-+}
-+
-+#ifdef notdef
-+/*
-+ * search for Public and Private keys first
-+ */
-+NSS_IMPLEMENT PRStatus *
-+NSSTrustDomain_TraverseUserCertificates (
-+ NSSTrustDomain *td,
-+ PRStatus (*callback)(NSSCertificate *c, void *arg),
-+ void *arg
-+)
-+{
-+ PRStatus status;
-+ NSSToken *token = NULL;
-+ NSSSlot **slots = NULL;
-+ NSSSlot **slotp;
-+ nssPKIObjectCollection *collection = NULL;
-+ nssPKIObjectCallback pkiCallback;
-+ nssUpdateLevel updateLevel;
-+ NSSCertificate **cached = NULL;
-+ nssList *certList;
-+ certList = nssList_Create(NULL, PR_FALSE);
-+ if (!certList) return NULL;
-+ (void *)nssTrustDomain_GetCertsFromCache(td, certList);
-+ cached = get_certs_from_list(certList);
-+ collection = nssCertificateCollection_Create(td, cached);
-+ nssCertificateArray_Destroy(cached);
-+ nssList_Destroy(certList);
-+ if (!collection) {
-+ return (PRStatus *)NULL;
-+ }
-+ /* obtain the current set of active slots in the trust domain */
-+ slots = nssTrustDomain_GetActiveSlots(td, &updateLevel);
-+ if (!slots) {
-+ goto loser;
-+ }
-+ /* iterate over the slots */
-+ for (slotp = slots; *slotp; slotp++) {
-+ /* get the token for the slot, if present */
-+ token = nssSlot_GetToken(*slotp);
-+ if (token) {
-+ nssSession *session;
-+ nssCryptokiObject **instances;
-+ nssTokenSearchType tokenOnly = nssTokenSearchType_TokenOnly;
-+ /* get a session for the token */
-+ session = nssTrustDomain_GetSessionForToken(td, token);
-+ if (!session) {
-+ nssToken_Destroy(token);
-+ goto loser;
-+ }
-+ /* perform the traversal */
-+ if (!isLoggedIn(tok)) {
-+ instances = nssToken_FindPublicKeys(token,
-+ session,
-+ tokenOnly,
-+ 0, &status);
-+ } else {
-+ instances = nssToken_FindPrivateKeys(token,
-+ session,
-+ tokenOnly,
-+ 0, &status);
-+ }
-+ nssToken_Destroy(token);
-+ if (status != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ /* add the found certificates to the collection */
-+ status = nssPKIObjectCollection_AddInstances(collection,
-+ instances, 0);
-+ nss_ZFreeIf(instances);
-+ if (status != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ }
-+ }
-+ status = nssPKIObjectCollection_MatchCerts(collection);
-+ if (status != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ /* Traverse the collection */
-+ pkiCallback.func.cert = callback;
-+ pkiCallback.arg = arg;
-+ status = nssPKIObjectCollection_Traverse(collection, &pkiCallback);
-+ /* clean up */
-+ nssPKIObjectCollection_Destroy(collection);
-+ nssSlotArray_Destroy(slots);
-+ return NULL;
-+loser:
-+ if (slots) {
-+ nssSlotArray_Destroy(slots);
-+ }
-+ if (collection) {
-+ nssPKIObjectCollection_Destroy(collection);
-+ }
-+ return NULL;
-+}
-+#endif
-+
-+NSS_IMPLEMENT NSSTrust *
-+nssTrustDomain_FindTrustForCertificate (
-+ NSSTrustDomain *td,
-+ NSSCertificate *c
-+)
-+{
-+ PRStatus status;
-+ NSSSlot **slots;
-+ NSSSlot **slotp;
-+ NSSToken *token;
-+ nssCryptokiObject *to = NULL;
-+ nssPKIObject *pkio = NULL;
-+ NSSTrust *rvt = NULL;
-+ nssUpdateLevel updateLevel;
-+ slots = nssTrustDomain_GetActiveSlots(td, &updateLevel);
-+ if (!slots) {
-+ return (NSSTrust *)NULL;
-+ }
-+ for (slotp = slots; *slotp; slotp++) {
-+ token = nssSlot_GetToken(*slotp);
-+ if (token) {
-+ to = nssToken_FindTrustForCertificate(token, NULL,
-+ &c->encoding,
-+ &c->issuer,
-+ &c->serial,
-+ nssTokenSearchType_TokenOnly);
-+ if (to) {
-+ if (!pkio) {
-+ pkio = nssPKIObject_Create(NULL, to, td, NULL);
-+ if (!pkio) {
-+ nssToken_Destroy(token);
-+ nssCryptokiObject_Destroy(to);
-+ goto loser;
-+ }
-+ } else {
-+ status = nssPKIObject_AddInstance(pkio, to);
-+ if (status != PR_SUCCESS) {
-+ nssToken_Destroy(token);
-+ nssCryptokiObject_Destroy(to);
-+ goto loser;
-+ }
-+ }
-+ }
-+ nssToken_Destroy(token);
-+ }
-+ }
-+ if (pkio) {
-+ rvt = nssTrust_Create(pkio, &c->encoding);
-+ if (!rvt) {
-+ goto loser;
-+ }
-+ }
-+ nssSlotArray_Destroy(slots);
-+ return rvt;
-+loser:
-+ nssSlotArray_Destroy(slots);
-+ if (pkio) {
-+ nssPKIObject_Destroy(pkio);
-+ }
-+ return (NSSTrust *)NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCRL **
-+nssTrustDomain_FindCRLsBySubject (
-+ NSSTrustDomain *td,
-+ NSSDER *subject
-+)
-+{
-+ PRStatus status;
-+ NSSSlot **slots;
-+ NSSSlot **slotp;
-+ NSSToken *token;
-+ nssUpdateLevel updateLevel;
-+ nssPKIObjectCollection *collection;
-+ NSSCRL **rvCRLs = NULL;
-+ collection = nssCRLCollection_Create(td, NULL);
-+ if (!collection) {
-+ return (NSSCRL **)NULL;
-+ }
-+ slots = nssTrustDomain_GetActiveSlots(td, &updateLevel);
-+ if (!slots) {
-+ goto loser;
-+ }
-+ for (slotp = slots; *slotp; slotp++) {
-+ token = nssSlot_GetToken(*slotp);
-+ if (token) {
-+ nssSession *session;
-+ nssCryptokiObject **instances;
-+ nssTokenSearchType tokenOnly = nssTokenSearchType_TokenOnly;
-+ /* get a session for the token */
-+ session = nssTrustDomain_GetSessionForToken(td, token);
-+ if (!session) {
-+ nssToken_Destroy(token);
-+ goto loser;
-+ }
-+ /* perform the traversal */
-+ instances = nssToken_FindCRLsBySubject(token, session, subject,
-+ tokenOnly, 0, &status);
-+ nssToken_Destroy(token);
-+ if (status != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ /* add the found CRL's to the collection */
-+ status = nssPKIObjectCollection_AddInstances(collection,
-+ instances, 0);
-+ nss_ZFreeIf(instances);
-+ if (status != PR_SUCCESS) {
-+ goto loser;
-+ }
-+ }
-+ }
-+ rvCRLs = nssPKIObjectCollection_GetCRLs(collection, NULL, 0, NULL);
-+ nssPKIObjectCollection_Destroy(collection);
-+ nssSlotArray_Destroy(slots);
-+ return rvCRLs;
-+loser:
-+ nssPKIObjectCollection_Destroy(collection);
-+ nssSlotArray_Destroy(slots);
-+ return (NSSCRL **)NULL;
-+}
-+
-+NSS_IMPLEMENT PRStatus
-+NSSTrustDomain_GenerateKeyPair (
-+ NSSTrustDomain *td,
-+ NSSAlgorithmAndParameters *ap,
-+ NSSPrivateKey **pvkOpt,
-+ NSSPublicKey **pbkOpt,
-+ PRBool privateKeyIsSensitive,
-+ NSSToken *destination,
-+ NSSCallback *uhhOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return PR_FAILURE;
-+}
-+
-+NSS_IMPLEMENT NSSSymmetricKey *
-+NSSTrustDomain_GenerateSymmetricKey (
-+ NSSTrustDomain *td,
-+ NSSAlgorithmAndParameters *ap,
-+ PRUint32 keysize,
-+ NSSToken *destination,
-+ NSSCallback *uhhOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSSymmetricKey *
-+NSSTrustDomain_GenerateSymmetricKeyFromPassword (
-+ NSSTrustDomain *td,
-+ NSSAlgorithmAndParameters *ap,
-+ NSSUTF8 *passwordOpt, /* if null, prompt */
-+ NSSToken *destinationOpt,
-+ NSSCallback *uhhOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSSymmetricKey *
-+NSSTrustDomain_FindSymmetricKeyByAlgorithmAndKeyID (
-+ NSSTrustDomain *td,
-+ NSSOID *algorithm,
-+ NSSItem *keyID,
-+ NSSCallback *uhhOpt
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCryptoContext *
-+nssTrustDomain_CreateCryptoContext (
-+ NSSTrustDomain *td,
-+ NSSCallback *uhhOpt
-+)
-+{
-+ return nssCryptoContext_Create(td, uhhOpt);
-+}
-+
-+NSS_IMPLEMENT NSSCryptoContext *
-+NSSTrustDomain_CreateCryptoContext (
-+ NSSTrustDomain *td,
-+ NSSCallback *uhhOpt
-+)
-+{
-+ return nssTrustDomain_CreateCryptoContext(td, uhhOpt);
-+}
-+
-+NSS_IMPLEMENT NSSCryptoContext *
-+NSSTrustDomain_CreateCryptoContextForAlgorithm (
-+ NSSTrustDomain *td,
-+ NSSOID *algorithm
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
-+NSS_IMPLEMENT NSSCryptoContext *
-+NSSTrustDomain_CreateCryptoContextForAlgorithmAndParameters (
-+ NSSTrustDomain *td,
-+ NSSAlgorithmAndParameters *ap
-+)
-+{
-+ nss_SetError(NSS_ERROR_NOT_FOUND);
-+ return NULL;
-+}
-+
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/util_utf8.c 2004-12-14 13:18:29.518756432 +0100
-@@ -0,0 +1,2168 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ * John Gardiner Myers <jgmyers@speakeasy.net>
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#include "seccomon.h"
-+#include "secport.h"
-+
-+/*
-+ * Define this if you want to support UTF-16 in UCS-2
-+ */
-+#define UTF16
-+
-+/*
-+ * From RFC 2044:
-+ *
-+ * UCS-4 range (hex.) UTF-8 octet sequence (binary)
-+ * 0000 0000-0000 007F 0xxxxxxx
-+ * 0000 0080-0000 07FF 110xxxxx 10xxxxxx
-+ * 0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx
-+ * 0001 0000-001F FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
-+ * 0020 0000-03FF FFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
-+ * 0400 0000-7FFF FFFF 1111110x 10xxxxxx ... 10xxxxxx
-+ */
-+
-+/*
-+ * From http://www.imc.org/draft-hoffman-utf16
-+ *
-+ * For U on [0x00010000,0x0010FFFF]: Let U' = U - 0x00010000
-+ *
-+ * U' = yyyyyyyyyyxxxxxxxxxx
-+ * W1 = 110110yyyyyyyyyy
-+ * W2 = 110111xxxxxxxxxx
-+ */
-+
-+/*
-+ * This code is assuming NETWORK BYTE ORDER for the 16- and 32-bit
-+ * character values. If you wish to use this code for working with
-+ * host byte order values, define the following:
-+ *
-+ * #if IS_BIG_ENDIAN
-+ * #define L_0 0
-+ * #define L_1 1
-+ * #define L_2 2
-+ * #define L_3 3
-+ * #define H_0 0
-+ * #define H_1 1
-+ * #else / * not everyone has elif * /
-+ * #if IS_LITTLE_ENDIAN
-+ * #define L_0 3
-+ * #define L_1 2
-+ * #define L_2 1
-+ * #define L_3 0
-+ * #define H_0 1
-+ * #define H_1 0
-+ * #else
-+ * #error "PDP and NUXI support deferred"
-+ * #endif / * IS_LITTLE_ENDIAN * /
-+ * #endif / * IS_BIG_ENDIAN * /
-+ */
-+
-+#define L_0 0
-+#define L_1 1
-+#define L_2 2
-+#define L_3 3
-+#define H_0 0
-+#define H_1 1
-+
-+PR_IMPLEMENT(PRBool)
-+sec_port_ucs4_utf8_conversion_function
-+(
-+ PRBool toUnicode,
-+ unsigned char *inBuf,
-+ unsigned int inBufLen,
-+ unsigned char *outBuf,
-+ unsigned int maxOutBufLen,
-+ unsigned int *outBufLen
-+)
-+{
-+#ifndef TEST_UTF8
-+ PORT_Assert((unsigned int *)NULL != outBufLen);
-+#endif /* TEST_UTF8 */
-+
-+ if( toUnicode ) {
-+ unsigned int i, len = 0;
-+
-+ for( i = 0; i < inBufLen; ) {
-+ if( (inBuf[i] & 0x80) == 0x00 ) i += 1;
-+ else if( (inBuf[i] & 0xE0) == 0xC0 ) i += 2;
-+ else if( (inBuf[i] & 0xF0) == 0xE0 ) i += 3;
-+ else if( (inBuf[i] & 0xF8) == 0xF0 ) i += 4;
-+ else if( (inBuf[i] & 0xFC) == 0xF8 ) i += 5;
-+ else if( (inBuf[i] & 0xFE) == 0xFC ) i += 6;
-+ else return PR_FALSE;
-+
-+ len += 4;
-+ }
-+
-+ if( len > maxOutBufLen ) {
-+ *outBufLen = len;
-+ return PR_FALSE;
-+ }
-+
-+ len = 0;
-+
-+ for( i = 0; i < inBufLen; ) {
-+ if( (inBuf[i] & 0x80) == 0x00 ) {
-+ /* 0000 0000-0000 007F <- 0xxxxxx */
-+ /* 0abcdefg ->
-+ 00000000 00000000 00000000 0abcdefg */
-+
-+ outBuf[len+L_0] = 0x00;
-+ outBuf[len+L_1] = 0x00;
-+ outBuf[len+L_2] = 0x00;
-+ outBuf[len+L_3] = inBuf[i+0] & 0x7F;
-+
-+ i += 1;
-+ } else if( (inBuf[i] & 0xE0) == 0xC0 ) {
-+
-+ if( (inBuf[i+1] & 0xC0) != 0x80 ) return PR_FALSE;
-+
-+ /* 0000 0080-0000 07FF <- 110xxxxx 10xxxxxx */
-+ /* 110abcde 10fghijk ->
-+ 00000000 00000000 00000abc defghijk */
-+
-+ outBuf[len+L_0] = 0x00;
-+ outBuf[len+L_1] = 0x00;
-+ outBuf[len+L_2] = ((inBuf[i+0] & 0x1C) >> 2);
-+ outBuf[len+L_3] = ((inBuf[i+0] & 0x03) << 6) | ((inBuf[i+1] & 0x3F) >> 0);
-+
-+ i += 2;
-+ } else if( (inBuf[i] & 0xF0) == 0xE0 ) {
-+
-+ if( (inBuf[i+1] & 0xC0) != 0x80 ) return PR_FALSE;
-+ if( (inBuf[i+2] & 0xC0) != 0x80 ) return PR_FALSE;
-+
-+ /* 0000 0800-0000 FFFF <- 1110xxxx 10xxxxxx 10xxxxxx */
-+ /* 1110abcd 10efghij 10klmnop ->
-+ 00000000 00000000 abcdefgh ijklmnop */
-+
-+ outBuf[len+L_0] = 0x00;
-+ outBuf[len+L_1] = 0x00;
-+ outBuf[len+L_2] = ((inBuf[i+0] & 0x0F) << 4) | ((inBuf[i+1] & 0x3C) >> 2);
-+ outBuf[len+L_3] = ((inBuf[i+1] & 0x03) << 6) | ((inBuf[i+2] & 0x3F) >> 0);
-+
-+ i += 3;
-+ } else if( (inBuf[i] & 0xF8) == 0xF0 ) {
-+
-+ if( (inBuf[i+1] & 0xC0) != 0x80 ) return PR_FALSE;
-+ if( (inBuf[i+2] & 0xC0) != 0x80 ) return PR_FALSE;
-+ if( (inBuf[i+3] & 0xC0) != 0x80 ) return PR_FALSE;
-+
-+ /* 0001 0000-001F FFFF <- 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */
-+ /* 11110abc 10defghi 10jklmno 10pqrstu ->
-+ 00000000 000abcde fghijklm nopqrstu */
-+
-+ outBuf[len+L_0] = 0x00;
-+ outBuf[len+L_1] = ((inBuf[i+0] & 0x07) << 2) | ((inBuf[i+1] & 0x30) >> 4);
-+ outBuf[len+L_2] = ((inBuf[i+1] & 0x0F) << 4) | ((inBuf[i+2] & 0x3C) >> 2);
-+ outBuf[len+L_3] = ((inBuf[i+2] & 0x03) << 6) | ((inBuf[i+3] & 0x3F) >> 0);
-+
-+ i += 4;
-+ } else if( (inBuf[i] & 0xFC) == 0xF8 ) {
-+
-+ if( (inBuf[i+1] & 0xC0) != 0x80 ) return PR_FALSE;
-+ if( (inBuf[i+2] & 0xC0) != 0x80 ) return PR_FALSE;
-+ if( (inBuf[i+3] & 0xC0) != 0x80 ) return PR_FALSE;
-+ if( (inBuf[i+4] & 0xC0) != 0x80 ) return PR_FALSE;
-+
-+ /* 0020 0000-03FF FFFF <- 111110xx 10xxxxxx ... 10xxxxxx */
-+ /* 111110ab 10cdefgh 10ijklmn 10opqrst 10uvwxyz ->
-+ 000000ab cdefghij klmnopqr stuvwxyz */
-+
-+ outBuf[len+L_0] = inBuf[i+0] & 0x03;
-+ outBuf[len+L_1] = ((inBuf[i+1] & 0x3F) << 2) | ((inBuf[i+2] & 0x30) >> 4);
-+ outBuf[len+L_2] = ((inBuf[i+2] & 0x0F) << 4) | ((inBuf[i+3] & 0x3C) >> 2);
-+ outBuf[len+L_3] = ((inBuf[i+3] & 0x03) << 6) | ((inBuf[i+4] & 0x3F) >> 0);
-+
-+ i += 5;
-+ } else /* if( (inBuf[i] & 0xFE) == 0xFC ) */ {
-+
-+ if( (inBuf[i+1] & 0xC0) != 0x80 ) return PR_FALSE;
-+ if( (inBuf[i+2] & 0xC0) != 0x80 ) return PR_FALSE;
-+ if( (inBuf[i+3] & 0xC0) != 0x80 ) return PR_FALSE;
-+ if( (inBuf[i+4] & 0xC0) != 0x80 ) return PR_FALSE;
-+ if( (inBuf[i+5] & 0xC0) != 0x80 ) return PR_FALSE;
-+
-+ /* 0400 0000-7FFF FFFF <- 1111110x 10xxxxxx ... 10xxxxxx */
-+ /* 1111110a 10bcdefg 10hijklm 10nopqrs 10tuvwxy 10zABCDE ->
-+ 0abcdefg hijklmno pqrstuvw xyzABCDE */
-+
-+ outBuf[len+L_0] = ((inBuf[i+0] & 0x01) << 6) | ((inBuf[i+1] & 0x3F) >> 0);
-+ outBuf[len+L_1] = ((inBuf[i+2] & 0x3F) << 2) | ((inBuf[i+3] & 0x30) >> 4);
-+ outBuf[len+L_2] = ((inBuf[i+3] & 0x0F) << 4) | ((inBuf[i+4] & 0x3C) >> 2);
-+ outBuf[len+L_3] = ((inBuf[i+4] & 0x03) << 6) | ((inBuf[i+5] & 0x3F) >> 0);
-+
-+ i += 6;
-+ }
-+
-+ len += 4;
-+ }
-+
-+ *outBufLen = len;
-+ return PR_TRUE;
-+ } else {
-+ unsigned int i, len = 0;
-+ PORT_Assert((inBufLen % 4) == 0);
-+ if ((inBufLen % 4) != 0) {
-+ *outBufLen = 0;
-+ return PR_FALSE;
-+ }
-+
-+ for( i = 0; i < inBufLen; i += 4 ) {
-+ if( inBuf[i+L_0] >= 0x04 ) len += 6;
-+ else if( (inBuf[i+L_0] > 0x00) || (inBuf[i+L_1] >= 0x20) ) len += 5;
-+ else if( inBuf[i+L_1] >= 0x01 ) len += 4;
-+ else if( inBuf[i+L_2] >= 0x08 ) len += 3;
-+ else if( (inBuf[i+L_2] > 0x00) || (inBuf[i+L_3] >= 0x80) ) len += 2;
-+ else len += 1;
-+ }
-+
-+ if( len > maxOutBufLen ) {
-+ *outBufLen = len;
-+ return PR_FALSE;
-+ }
-+
-+ len = 0;
-+
-+ for( i = 0; i < inBufLen; i += 4 ) {
-+ if( inBuf[i+L_0] >= 0x04 ) {
-+ /* 0400 0000-7FFF FFFF -> 1111110x 10xxxxxx ... 10xxxxxx */
-+ /* 0abcdefg hijklmno pqrstuvw xyzABCDE ->
-+ 1111110a 10bcdefg 10hijklm 10nopqrs 10tuvwxy 10zABCDE */
-+
-+ outBuf[len+0] = 0xFC | ((inBuf[i+L_0] & 0x40) >> 6);
-+ outBuf[len+1] = 0x80 | ((inBuf[i+L_0] & 0x3F) >> 0);
-+ outBuf[len+2] = 0x80 | ((inBuf[i+L_1] & 0xFC) >> 2);
-+ outBuf[len+3] = 0x80 | ((inBuf[i+L_1] & 0x03) << 4)
-+ | ((inBuf[i+L_2] & 0xF0) >> 4);
-+ outBuf[len+4] = 0x80 | ((inBuf[i+L_2] & 0x0F) << 2)
-+ | ((inBuf[i+L_3] & 0xC0) >> 6);
-+ outBuf[len+5] = 0x80 | ((inBuf[i+L_3] & 0x3F) >> 0);
-+
-+ len += 6;
-+ } else if( (inBuf[i+L_0] > 0x00) || (inBuf[i+L_1] >= 0x20) ) {
-+ /* 0020 0000-03FF FFFF -> 111110xx 10xxxxxx ... 10xxxxxx */
-+ /* 000000ab cdefghij klmnopqr stuvwxyz ->
-+ 111110ab 10cdefgh 10ijklmn 10opqrst 10uvwxyz */
-+
-+ outBuf[len+0] = 0xF8 | ((inBuf[i+L_0] & 0x03) >> 0);
-+ outBuf[len+1] = 0x80 | ((inBuf[i+L_1] & 0xFC) >> 2);
-+ outBuf[len+2] = 0x80 | ((inBuf[i+L_1] & 0x03) << 4)
-+ | ((inBuf[i+L_2] & 0xF0) >> 4);
-+ outBuf[len+3] = 0x80 | ((inBuf[i+L_2] & 0x0F) << 2)
-+ | ((inBuf[i+L_3] & 0xC0) >> 6);
-+ outBuf[len+4] = 0x80 | ((inBuf[i+L_3] & 0x3F) >> 0);
-+
-+ len += 5;
-+ } else if( inBuf[i+L_1] >= 0x01 ) {
-+ /* 0001 0000-001F FFFF -> 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */
-+ /* 00000000 000abcde fghijklm nopqrstu ->
-+ 11110abc 10defghi 10jklmno 10pqrstu */
-+
-+ outBuf[len+0] = 0xF0 | ((inBuf[i+L_1] & 0x1C) >> 2);
-+ outBuf[len+1] = 0x80 | ((inBuf[i+L_1] & 0x03) << 4)
-+ | ((inBuf[i+L_2] & 0xF0) >> 4);
-+ outBuf[len+2] = 0x80 | ((inBuf[i+L_2] & 0x0F) << 2)
-+ | ((inBuf[i+L_3] & 0xC0) >> 6);
-+ outBuf[len+3] = 0x80 | ((inBuf[i+L_3] & 0x3F) >> 0);
-+
-+ len += 4;
-+ } else if( inBuf[i+L_2] >= 0x08 ) {
-+ /* 0000 0800-0000 FFFF -> 1110xxxx 10xxxxxx 10xxxxxx */
-+ /* 00000000 00000000 abcdefgh ijklmnop ->
-+ 1110abcd 10efghij 10klmnop */
-+
-+ outBuf[len+0] = 0xE0 | ((inBuf[i+L_2] & 0xF0) >> 4);
-+ outBuf[len+1] = 0x80 | ((inBuf[i+L_2] & 0x0F) << 2)
-+ | ((inBuf[i+L_3] & 0xC0) >> 6);
-+ outBuf[len+2] = 0x80 | ((inBuf[i+L_3] & 0x3F) >> 0);
-+
-+ len += 3;
-+ } else if( (inBuf[i+L_2] > 0x00) || (inBuf[i+L_3] >= 0x80) ) {
-+ /* 0000 0080-0000 07FF -> 110xxxxx 10xxxxxx */
-+ /* 00000000 00000000 00000abc defghijk ->
-+ 110abcde 10fghijk */
-+
-+ outBuf[len+0] = 0xC0 | ((inBuf[i+L_2] & 0x07) << 2)
-+ | ((inBuf[i+L_3] & 0xC0) >> 6);
-+ outBuf[len+1] = 0x80 | ((inBuf[i+L_3] & 0x3F) >> 0);
-+
-+ len += 2;
-+ } else {
-+ /* 0000 0000-0000 007F -> 0xxxxxx */
-+ /* 00000000 00000000 00000000 0abcdefg ->
-+ 0abcdefg */
-+
-+ outBuf[len+0] = (inBuf[i+L_3] & 0x7F);
-+
-+ len += 1;
-+ }
-+ }
-+
-+ *outBufLen = len;
-+ return PR_TRUE;
-+ }
-+}
-+
-+PR_IMPLEMENT(PRBool)
-+sec_port_ucs2_utf8_conversion_function
-+(
-+ PRBool toUnicode,
-+ unsigned char *inBuf,
-+ unsigned int inBufLen,
-+ unsigned char *outBuf,
-+ unsigned int maxOutBufLen,
-+ unsigned int *outBufLen
-+)
-+{
-+#ifndef TEST_UTF8
-+ PORT_Assert((unsigned int *)NULL != outBufLen);
-+#endif /* TEST_UTF8 */
-+
-+ if( toUnicode ) {
-+ unsigned int i, len = 0;
-+
-+ for( i = 0; i < inBufLen; ) {
-+ if( (inBuf[i] & 0x80) == 0x00 ) {
-+ i += 1;
-+ len += 2;
-+ } else if( (inBuf[i] & 0xE0) == 0xC0 ) {
-+ i += 2;
-+ len += 2;
-+ } else if( (inBuf[i] & 0xF0) == 0xE0 ) {
-+ i += 3;
-+ len += 2;
-+#ifdef UTF16
-+ } else if( (inBuf[i] & 0xF8) == 0xF0 ) {
-+ i += 4;
-+ len += 4;
-+
-+ if( (inBuf[i] & 0x04) &&
-+ ((inBuf[i] & 0x03) || (inBuf[i+1] & 0x30)) ) {
-+ /* Not representable as UTF16 */
-+ return PR_FALSE;
-+ }
-+
-+#endif /* UTF16 */
-+ } else return PR_FALSE;
-+ }
-+
-+ if( len > maxOutBufLen ) {
-+ *outBufLen = len;
-+ return PR_FALSE;
-+ }
-+
-+ len = 0;
-+
-+ for( i = 0; i < inBufLen; ) {
-+ if( (inBuf[i] & 0x80) == 0x00 ) {
-+ /* 0000-007F <- 0xxxxxx */
-+ /* 0abcdefg -> 00000000 0abcdefg */
-+
-+ outBuf[len+H_0] = 0x00;
-+ outBuf[len+H_1] = inBuf[i+0] & 0x7F;
-+
-+ i += 1;
-+ len += 2;
-+ } else if( (inBuf[i] & 0xE0) == 0xC0 ) {
-+
-+ if( (inBuf[i+1] & 0xC0) != 0x80 ) return PR_FALSE;
-+
-+ /* 0080-07FF <- 110xxxxx 10xxxxxx */
-+ /* 110abcde 10fghijk -> 00000abc defghijk */
-+
-+ outBuf[len+H_0] = ((inBuf[i+0] & 0x1C) >> 2);
-+ outBuf[len+H_1] = ((inBuf[i+0] & 0x03) << 6) | ((inBuf[i+1] & 0x3F) >> 0);
-+
-+ i += 2;
-+ len += 2;
-+ } else if( (inBuf[i] & 0xF0) == 0xE0 ) {
-+
-+ if( (inBuf[i+1] & 0xC0) != 0x80 ) return PR_FALSE;
-+ if( (inBuf[i+2] & 0xC0) != 0x80 ) return PR_FALSE;
-+
-+ /* 0800-FFFF <- 1110xxxx 10xxxxxx 10xxxxxx */
-+ /* 1110abcd 10efghij 10klmnop -> abcdefgh ijklmnop */
-+
-+ outBuf[len+H_0] = ((inBuf[i+0] & 0x0F) << 4) | ((inBuf[i+1] & 0x3C) >> 2);
-+ outBuf[len+H_1] = ((inBuf[i+1] & 0x03) << 6) | ((inBuf[i+2] & 0x3F) >> 0);
-+
-+ i += 3;
-+ len += 2;
-+#ifdef UTF16
-+ } else if( (inBuf[i] & 0xF8) == 0xF0 ) {
-+ int abcde, BCDE;
-+
-+ if( (inBuf[i+1] & 0xC0) != 0x80 ) return PR_FALSE;
-+ if( (inBuf[i+2] & 0xC0) != 0x80 ) return PR_FALSE;
-+ if( (inBuf[i+3] & 0xC0) != 0x80 ) return PR_FALSE;
-+
-+ /* 0001 0000-001F FFFF <- 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */
-+ /* 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx -> [D800-DBFF] [DC00-DFFF] */
-+
-+ /* 11110abc 10defghi 10jklmno 10pqrstu ->
-+ { Let 0BCDE = abcde - 1 }
-+ 110110BC DEfghijk 110111lm nopqrstu */
-+
-+ abcde = ((inBuf[i+0] & 0x07) << 2) | ((inBuf[i+1] & 0x30) >> 4);
-+ BCDE = abcde - 1;
-+
-+#ifndef TEST_UTF8
-+ PORT_Assert(BCDE < 0x10); /* should have been caught above */
-+#endif /* TEST_UTF8 */
-+
-+ outBuf[len+0+H_0] = 0xD8 | ((BCDE & 0x0C) >> 2);
-+ outBuf[len+0+H_1] = ((BCDE & 0x03) << 6)
-+ | ((inBuf[i+1] & 0x0F) << 2)
-+ | ((inBuf[i+2] & 0x30) >> 4);
-+ outBuf[len+2+H_0] = 0xDC | ((inBuf[i+2] & 0x0C) >> 2);
-+ outBuf[len+2+H_1] = ((inBuf[i+2] & 0x03) << 6) | ((inBuf[i+3] & 0x3F) >> 0);
-+
-+ i += 4;
-+ len += 4;
-+#endif /* UTF16 */
-+ } else return PR_FALSE;
-+ }
-+
-+ *outBufLen = len;
-+ return PR_TRUE;
-+ } else {
-+ unsigned int i, len = 0;
-+ PORT_Assert((inBufLen % 2) == 0);
-+ if ((inBufLen % 2) != 0) {
-+ *outBufLen = 0;
-+ return PR_FALSE;
-+ }
-+
-+ for( i = 0; i < inBufLen; i += 2 ) {
-+ if( (inBuf[i+H_0] == 0x00) && ((inBuf[i+H_0] & 0x80) == 0x00) ) len += 1;
-+ else if( inBuf[i+H_0] < 0x08 ) len += 2;
-+#ifdef UTF16
-+ else if( ((inBuf[i+0+H_0] & 0xDC) == 0xD8) ) {
-+ if( ((inBuf[i+2+H_0] & 0xDC) == 0xDC) && ((inBufLen - i) > 2) ) {
-+ i += 2;
-+ len += 4;
-+ } else {
-+ return PR_FALSE;
-+ }
-+ }
-+#endif /* UTF16 */
-+ else len += 3;
-+ }
-+
-+ if( len > maxOutBufLen ) {
-+ *outBufLen = len;
-+ return PR_FALSE;
-+ }
-+
-+ len = 0;
-+
-+ for( i = 0; i < inBufLen; i += 2 ) {
-+ if( (inBuf[i+H_0] == 0x00) && ((inBuf[i+H_1] & 0x80) == 0x00) ) {
-+ /* 0000-007F -> 0xxxxxx */
-+ /* 00000000 0abcdefg -> 0abcdefg */
-+
-+ outBuf[len] = inBuf[i+H_1] & 0x7F;
-+
-+ len += 1;
-+ } else if( inBuf[i+H_0] < 0x08 ) {
-+ /* 0080-07FF -> 110xxxxx 10xxxxxx */
-+ /* 00000abc defghijk -> 110abcde 10fghijk */
-+
-+ outBuf[len+0] = 0xC0 | ((inBuf[i+H_0] & 0x07) << 2)
-+ | ((inBuf[i+H_1] & 0xC0) >> 6);
-+ outBuf[len+1] = 0x80 | ((inBuf[i+H_1] & 0x3F) >> 0);
-+
-+ len += 2;
-+#ifdef UTF16
-+ } else if( (inBuf[i+H_0] & 0xDC) == 0xD8 ) {
-+ int abcde, BCDE;
-+
-+#ifndef TEST_UTF8
-+ PORT_Assert(((inBuf[i+2+H_0] & 0xDC) == 0xDC) && ((inBufLen - i) > 2));
-+#endif /* TEST_UTF8 */
-+
-+ /* D800-DBFF DC00-DFFF -> 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */
-+ /* 110110BC DEfghijk 110111lm nopqrstu ->
-+ { Let abcde = BCDE + 1 }
-+ 11110abc 10defghi 10jklmno 10pqrstu */
-+
-+ BCDE = ((inBuf[i+H_0] & 0x03) << 2) | ((inBuf[i+H_1] & 0xC0) >> 6);
-+ abcde = BCDE + 1;
-+
-+ outBuf[len+0] = 0xF0 | ((abcde & 0x1C) >> 2);
-+ outBuf[len+1] = 0x80 | ((abcde & 0x03) << 4)
-+ | ((inBuf[i+0+H_1] & 0x3C) >> 2);
-+ outBuf[len+2] = 0x80 | ((inBuf[i+0+H_1] & 0x03) << 4)
-+ | ((inBuf[i+2+H_0] & 0x03) << 2)
-+ | ((inBuf[i+2+H_1] & 0xC0) >> 6);
-+ outBuf[len+3] = 0x80 | ((inBuf[i+2+H_1] & 0x3F) >> 0);
-+
-+ i += 2;
-+ len += 4;
-+#endif /* UTF16 */
-+ } else {
-+ /* 0800-FFFF -> 1110xxxx 10xxxxxx 10xxxxxx */
-+ /* abcdefgh ijklmnop -> 1110abcd 10efghij 10klmnop */
-+
-+ outBuf[len+0] = 0xE0 | ((inBuf[i+H_0] & 0xF0) >> 4);
-+ outBuf[len+1] = 0x80 | ((inBuf[i+H_0] & 0x0F) << 2)
-+ | ((inBuf[i+H_1] & 0xC0) >> 6);
-+ outBuf[len+2] = 0x80 | ((inBuf[i+H_1] & 0x3F) >> 0);
-+
-+ len += 3;
-+ }
-+ }
-+
-+ *outBufLen = len;
-+ return PR_TRUE;
-+ }
-+}
-+
-+PRBool
-+sec_port_iso88591_utf8_conversion_function
-+(
-+ const unsigned char *inBuf,
-+ unsigned int inBufLen,
-+ unsigned char *outBuf,
-+ unsigned int maxOutBufLen,
-+ unsigned int *outBufLen
-+)
-+{
-+ unsigned int i, len = 0;
-+
-+#ifndef TEST_UTF8
-+ PORT_Assert((unsigned int *)NULL != outBufLen);
-+#endif /* TEST_UTF8 */
-+
-+ for( i = 0; i < inBufLen; i++) {
-+ if( (inBuf[i] & 0x80) == 0x00 ) len += 1;
-+ else len += 2;
-+ }
-+
-+ if( len > maxOutBufLen ) {
-+ *outBufLen = len;
-+ return PR_FALSE;
-+ }
-+
-+ len = 0;
-+
-+ for( i = 0; i < inBufLen; i++) {
-+ if( (inBuf[i] & 0x80) == 0x00 ) {
-+ /* 00-7F -> 0xxxxxxx */
-+ /* 0abcdefg -> 0abcdefg */
-+
-+ outBuf[len] = inBuf[i];
-+ len += 1;
-+ } else {
-+ /* 80-FF <- 110xxxxx 10xxxxxx */
-+ /* 00000000 abcdefgh -> 110000ab 10cdefgh */
-+
-+ outBuf[len+0] = 0xC0 | ((inBuf[i] & 0xC0) >> 6);
-+ outBuf[len+1] = 0x80 | ((inBuf[i] & 0x3F) >> 0);
-+
-+ len += 2;
-+ }
-+ }
-+
-+ *outBufLen = len;
-+ return PR_TRUE;
-+}
-+
-+#ifdef TEST_UTF8
-+
-+#include <stdio.h>
-+#include <string.h>
-+#include <stdlib.h>
-+#include <netinet/in.h> /* for htonl and htons */
-+
-+/*
-+ * UCS-4 vectors
-+ */
-+
-+struct ucs4 {
-+ PRUint32 c;
-+ char *utf8;
-+};
-+
-+/*
-+ * UCS-2 vectors
-+ */
-+
-+struct ucs2 {
-+ PRUint16 c;
-+ char *utf8;
-+};
-+
-+#ifdef UTF16
-+/*
-+ * UTF-16 vectors
-+ */
-+
-+struct utf16 {
-+ PRUint32 c;
-+ PRUint16 w[2];
-+};
-+#endif /* UTF16 */
-+
-+
-+/*
-+ * UCS-4 vectors
-+ */
-+
-+struct ucs4 ucs4[] = {
-+ { 0x00000001, "\x01" },
-+ { 0x00000002, "\x02" },
-+ { 0x00000003, "\x03" },
-+ { 0x00000004, "\x04" },
-+ { 0x00000007, "\x07" },
-+ { 0x00000008, "\x08" },
-+ { 0x0000000F, "\x0F" },
-+ { 0x00000010, "\x10" },
-+ { 0x0000001F, "\x1F" },
-+ { 0x00000020, "\x20" },
-+ { 0x0000003F, "\x3F" },
-+ { 0x00000040, "\x40" },
-+ { 0x0000007F, "\x7F" },
-+
-+ { 0x00000080, "\xC2\x80" },
-+ { 0x00000081, "\xC2\x81" },
-+ { 0x00000082, "\xC2\x82" },
-+ { 0x00000084, "\xC2\x84" },
-+ { 0x00000088, "\xC2\x88" },
-+ { 0x00000090, "\xC2\x90" },
-+ { 0x000000A0, "\xC2\xA0" },
-+ { 0x000000C0, "\xC3\x80" },
-+ { 0x000000FF, "\xC3\xBF" },
-+ { 0x00000100, "\xC4\x80" },
-+ { 0x00000101, "\xC4\x81" },
-+ { 0x00000102, "\xC4\x82" },
-+ { 0x00000104, "\xC4\x84" },
-+ { 0x00000108, "\xC4\x88" },
-+ { 0x00000110, "\xC4\x90" },
-+ { 0x00000120, "\xC4\xA0" },
-+ { 0x00000140, "\xC5\x80" },
-+ { 0x00000180, "\xC6\x80" },
-+ { 0x000001FF, "\xC7\xBF" },
-+ { 0x00000200, "\xC8\x80" },
-+ { 0x00000201, "\xC8\x81" },
-+ { 0x00000202, "\xC8\x82" },
-+ { 0x00000204, "\xC8\x84" },
-+ { 0x00000208, "\xC8\x88" },
-+ { 0x00000210, "\xC8\x90" },
-+ { 0x00000220, "\xC8\xA0" },
-+ { 0x00000240, "\xC9\x80" },
-+ { 0x00000280, "\xCA\x80" },
-+ { 0x00000300, "\xCC\x80" },
-+ { 0x000003FF, "\xCF\xBF" },
-+ { 0x00000400, "\xD0\x80" },
-+ { 0x00000401, "\xD0\x81" },
-+ { 0x00000402, "\xD0\x82" },
-+ { 0x00000404, "\xD0\x84" },
-+ { 0x00000408, "\xD0\x88" },
-+ { 0x00000410, "\xD0\x90" },
-+ { 0x00000420, "\xD0\xA0" },
-+ { 0x00000440, "\xD1\x80" },
-+ { 0x00000480, "\xD2\x80" },
-+ { 0x00000500, "\xD4\x80" },
-+ { 0x00000600, "\xD8\x80" },
-+ { 0x000007FF, "\xDF\xBF" },
-+
-+ { 0x00000800, "\xE0\xA0\x80" },
-+ { 0x00000801, "\xE0\xA0\x81" },
-+ { 0x00000802, "\xE0\xA0\x82" },
-+ { 0x00000804, "\xE0\xA0\x84" },
-+ { 0x00000808, "\xE0\xA0\x88" },
-+ { 0x00000810, "\xE0\xA0\x90" },
-+ { 0x00000820, "\xE0\xA0\xA0" },
-+ { 0x00000840, "\xE0\xA1\x80" },
-+ { 0x00000880, "\xE0\xA2\x80" },
-+ { 0x00000900, "\xE0\xA4\x80" },
-+ { 0x00000A00, "\xE0\xA8\x80" },
-+ { 0x00000C00, "\xE0\xB0\x80" },
-+ { 0x00000FFF, "\xE0\xBF\xBF" },
-+ { 0x00001000, "\xE1\x80\x80" },
-+ { 0x00001001, "\xE1\x80\x81" },
-+ { 0x00001002, "\xE1\x80\x82" },
-+ { 0x00001004, "\xE1\x80\x84" },
-+ { 0x00001008, "\xE1\x80\x88" },
-+ { 0x00001010, "\xE1\x80\x90" },
-+ { 0x00001020, "\xE1\x80\xA0" },
-+ { 0x00001040, "\xE1\x81\x80" },
-+ { 0x00001080, "\xE1\x82\x80" },
-+ { 0x00001100, "\xE1\x84\x80" },
-+ { 0x00001200, "\xE1\x88\x80" },
-+ { 0x00001400, "\xE1\x90\x80" },
-+ { 0x00001800, "\xE1\xA0\x80" },
-+ { 0x00001FFF, "\xE1\xBF\xBF" },
-+ { 0x00002000, "\xE2\x80\x80" },
-+ { 0x00002001, "\xE2\x80\x81" },
-+ { 0x00002002, "\xE2\x80\x82" },
-+ { 0x00002004, "\xE2\x80\x84" },
-+ { 0x00002008, "\xE2\x80\x88" },
-+ { 0x00002010, "\xE2\x80\x90" },
-+ { 0x00002020, "\xE2\x80\xA0" },
-+ { 0x00002040, "\xE2\x81\x80" },
-+ { 0x00002080, "\xE2\x82\x80" },
-+ { 0x00002100, "\xE2\x84\x80" },
-+ { 0x00002200, "\xE2\x88\x80" },
-+ { 0x00002400, "\xE2\x90\x80" },
-+ { 0x00002800, "\xE2\xA0\x80" },
-+ { 0x00003000, "\xE3\x80\x80" },
-+ { 0x00003FFF, "\xE3\xBF\xBF" },
-+ { 0x00004000, "\xE4\x80\x80" },
-+ { 0x00004001, "\xE4\x80\x81" },
-+ { 0x00004002, "\xE4\x80\x82" },
-+ { 0x00004004, "\xE4\x80\x84" },
-+ { 0x00004008, "\xE4\x80\x88" },
-+ { 0x00004010, "\xE4\x80\x90" },
-+ { 0x00004020, "\xE4\x80\xA0" },
-+ { 0x00004040, "\xE4\x81\x80" },
-+ { 0x00004080, "\xE4\x82\x80" },
-+ { 0x00004100, "\xE4\x84\x80" },
-+ { 0x00004200, "\xE4\x88\x80" },
-+ { 0x00004400, "\xE4\x90\x80" },
-+ { 0x00004800, "\xE4\xA0\x80" },
-+ { 0x00005000, "\xE5\x80\x80" },
-+ { 0x00006000, "\xE6\x80\x80" },
-+ { 0x00007FFF, "\xE7\xBF\xBF" },
-+ { 0x00008000, "\xE8\x80\x80" },
-+ { 0x00008001, "\xE8\x80\x81" },
-+ { 0x00008002, "\xE8\x80\x82" },
-+ { 0x00008004, "\xE8\x80\x84" },
-+ { 0x00008008, "\xE8\x80\x88" },
-+ { 0x00008010, "\xE8\x80\x90" },
-+ { 0x00008020, "\xE8\x80\xA0" },
-+ { 0x00008040, "\xE8\x81\x80" },
-+ { 0x00008080, "\xE8\x82\x80" },
-+ { 0x00008100, "\xE8\x84\x80" },
-+ { 0x00008200, "\xE8\x88\x80" },
-+ { 0x00008400, "\xE8\x90\x80" },
-+ { 0x00008800, "\xE8\xA0\x80" },
-+ { 0x00009000, "\xE9\x80\x80" },
-+ { 0x0000A000, "\xEA\x80\x80" },
-+ { 0x0000C000, "\xEC\x80\x80" },
-+ { 0x0000FFFF, "\xEF\xBF\xBF" },
-+
-+ { 0x00010000, "\xF0\x90\x80\x80" },
-+ { 0x00010001, "\xF0\x90\x80\x81" },
-+ { 0x00010002, "\xF0\x90\x80\x82" },
-+ { 0x00010004, "\xF0\x90\x80\x84" },
-+ { 0x00010008, "\xF0\x90\x80\x88" },
-+ { 0x00010010, "\xF0\x90\x80\x90" },
-+ { 0x00010020, "\xF0\x90\x80\xA0" },
-+ { 0x00010040, "\xF0\x90\x81\x80" },
-+ { 0x00010080, "\xF0\x90\x82\x80" },
-+ { 0x00010100, "\xF0\x90\x84\x80" },
-+ { 0x00010200, "\xF0\x90\x88\x80" },
-+ { 0x00010400, "\xF0\x90\x90\x80" },
-+ { 0x00010800, "\xF0\x90\xA0\x80" },
-+ { 0x00011000, "\xF0\x91\x80\x80" },
-+ { 0x00012000, "\xF0\x92\x80\x80" },
-+ { 0x00014000, "\xF0\x94\x80\x80" },
-+ { 0x00018000, "\xF0\x98\x80\x80" },
-+ { 0x0001FFFF, "\xF0\x9F\xBF\xBF" },
-+ { 0x00020000, "\xF0\xA0\x80\x80" },
-+ { 0x00020001, "\xF0\xA0\x80\x81" },
-+ { 0x00020002, "\xF0\xA0\x80\x82" },
-+ { 0x00020004, "\xF0\xA0\x80\x84" },
-+ { 0x00020008, "\xF0\xA0\x80\x88" },
-+ { 0x00020010, "\xF0\xA0\x80\x90" },
-+ { 0x00020020, "\xF0\xA0\x80\xA0" },
-+ { 0x00020040, "\xF0\xA0\x81\x80" },
-+ { 0x00020080, "\xF0\xA0\x82\x80" },
-+ { 0x00020100, "\xF0\xA0\x84\x80" },
-+ { 0x00020200, "\xF0\xA0\x88\x80" },
-+ { 0x00020400, "\xF0\xA0\x90\x80" },
-+ { 0x00020800, "\xF0\xA0\xA0\x80" },
-+ { 0x00021000, "\xF0\xA1\x80\x80" },
-+ { 0x00022000, "\xF0\xA2\x80\x80" },
-+ { 0x00024000, "\xF0\xA4\x80\x80" },
-+ { 0x00028000, "\xF0\xA8\x80\x80" },
-+ { 0x00030000, "\xF0\xB0\x80\x80" },
-+ { 0x0003FFFF, "\xF0\xBF\xBF\xBF" },
-+ { 0x00040000, "\xF1\x80\x80\x80" },
-+ { 0x00040001, "\xF1\x80\x80\x81" },
-+ { 0x00040002, "\xF1\x80\x80\x82" },
-+ { 0x00040004, "\xF1\x80\x80\x84" },
-+ { 0x00040008, "\xF1\x80\x80\x88" },
-+ { 0x00040010, "\xF1\x80\x80\x90" },
-+ { 0x00040020, "\xF1\x80\x80\xA0" },
-+ { 0x00040040, "\xF1\x80\x81\x80" },
-+ { 0x00040080, "\xF1\x80\x82\x80" },
-+ { 0x00040100, "\xF1\x80\x84\x80" },
-+ { 0x00040200, "\xF1\x80\x88\x80" },
-+ { 0x00040400, "\xF1\x80\x90\x80" },
-+ { 0x00040800, "\xF1\x80\xA0\x80" },
-+ { 0x00041000, "\xF1\x81\x80\x80" },
-+ { 0x00042000, "\xF1\x82\x80\x80" },
-+ { 0x00044000, "\xF1\x84\x80\x80" },
-+ { 0x00048000, "\xF1\x88\x80\x80" },
-+ { 0x00050000, "\xF1\x90\x80\x80" },
-+ { 0x00060000, "\xF1\xA0\x80\x80" },
-+ { 0x0007FFFF, "\xF1\xBF\xBF\xBF" },
-+ { 0x00080000, "\xF2\x80\x80\x80" },
-+ { 0x00080001, "\xF2\x80\x80\x81" },
-+ { 0x00080002, "\xF2\x80\x80\x82" },
-+ { 0x00080004, "\xF2\x80\x80\x84" },
-+ { 0x00080008, "\xF2\x80\x80\x88" },
-+ { 0x00080010, "\xF2\x80\x80\x90" },
-+ { 0x00080020, "\xF2\x80\x80\xA0" },
-+ { 0x00080040, "\xF2\x80\x81\x80" },
-+ { 0x00080080, "\xF2\x80\x82\x80" },
-+ { 0x00080100, "\xF2\x80\x84\x80" },
-+ { 0x00080200, "\xF2\x80\x88\x80" },
-+ { 0x00080400, "\xF2\x80\x90\x80" },
-+ { 0x00080800, "\xF2\x80\xA0\x80" },
-+ { 0x00081000, "\xF2\x81\x80\x80" },
-+ { 0x00082000, "\xF2\x82\x80\x80" },
-+ { 0x00084000, "\xF2\x84\x80\x80" },
-+ { 0x00088000, "\xF2\x88\x80\x80" },
-+ { 0x00090000, "\xF2\x90\x80\x80" },
-+ { 0x000A0000, "\xF2\xA0\x80\x80" },
-+ { 0x000C0000, "\xF3\x80\x80\x80" },
-+ { 0x000FFFFF, "\xF3\xBF\xBF\xBF" },
-+ { 0x00100000, "\xF4\x80\x80\x80" },
-+ { 0x00100001, "\xF4\x80\x80\x81" },
-+ { 0x00100002, "\xF4\x80\x80\x82" },
-+ { 0x00100004, "\xF4\x80\x80\x84" },
-+ { 0x00100008, "\xF4\x80\x80\x88" },
-+ { 0x00100010, "\xF4\x80\x80\x90" },
-+ { 0x00100020, "\xF4\x80\x80\xA0" },
-+ { 0x00100040, "\xF4\x80\x81\x80" },
-+ { 0x00100080, "\xF4\x80\x82\x80" },
-+ { 0x00100100, "\xF4\x80\x84\x80" },
-+ { 0x00100200, "\xF4\x80\x88\x80" },
-+ { 0x00100400, "\xF4\x80\x90\x80" },
-+ { 0x00100800, "\xF4\x80\xA0\x80" },
-+ { 0x00101000, "\xF4\x81\x80\x80" },
-+ { 0x00102000, "\xF4\x82\x80\x80" },
-+ { 0x00104000, "\xF4\x84\x80\x80" },
-+ { 0x00108000, "\xF4\x88\x80\x80" },
-+ { 0x00110000, "\xF4\x90\x80\x80" },
-+ { 0x00120000, "\xF4\xA0\x80\x80" },
-+ { 0x00140000, "\xF5\x80\x80\x80" },
-+ { 0x00180000, "\xF6\x80\x80\x80" },
-+ { 0x001FFFFF, "\xF7\xBF\xBF\xBF" },
-+
-+ { 0x00200000, "\xF8\x88\x80\x80\x80" },
-+ { 0x00200001, "\xF8\x88\x80\x80\x81" },
-+ { 0x00200002, "\xF8\x88\x80\x80\x82" },
-+ { 0x00200004, "\xF8\x88\x80\x80\x84" },
-+ { 0x00200008, "\xF8\x88\x80\x80\x88" },
-+ { 0x00200010, "\xF8\x88\x80\x80\x90" },
-+ { 0x00200020, "\xF8\x88\x80\x80\xA0" },
-+ { 0x00200040, "\xF8\x88\x80\x81\x80" },
-+ { 0x00200080, "\xF8\x88\x80\x82\x80" },
-+ { 0x00200100, "\xF8\x88\x80\x84\x80" },
-+ { 0x00200200, "\xF8\x88\x80\x88\x80" },
-+ { 0x00200400, "\xF8\x88\x80\x90\x80" },
-+ { 0x00200800, "\xF8\x88\x80\xA0\x80" },
-+ { 0x00201000, "\xF8\x88\x81\x80\x80" },
-+ { 0x00202000, "\xF8\x88\x82\x80\x80" },
-+ { 0x00204000, "\xF8\x88\x84\x80\x80" },
-+ { 0x00208000, "\xF8\x88\x88\x80\x80" },
-+ { 0x00210000, "\xF8\x88\x90\x80\x80" },
-+ { 0x00220000, "\xF8\x88\xA0\x80\x80" },
-+ { 0x00240000, "\xF8\x89\x80\x80\x80" },
-+ { 0x00280000, "\xF8\x8A\x80\x80\x80" },
-+ { 0x00300000, "\xF8\x8C\x80\x80\x80" },
-+ { 0x003FFFFF, "\xF8\x8F\xBF\xBF\xBF" },
-+ { 0x00400000, "\xF8\x90\x80\x80\x80" },
-+ { 0x00400001, "\xF8\x90\x80\x80\x81" },
-+ { 0x00400002, "\xF8\x90\x80\x80\x82" },
-+ { 0x00400004, "\xF8\x90\x80\x80\x84" },
-+ { 0x00400008, "\xF8\x90\x80\x80\x88" },
-+ { 0x00400010, "\xF8\x90\x80\x80\x90" },
-+ { 0x00400020, "\xF8\x90\x80\x80\xA0" },
-+ { 0x00400040, "\xF8\x90\x80\x81\x80" },
-+ { 0x00400080, "\xF8\x90\x80\x82\x80" },
-+ { 0x00400100, "\xF8\x90\x80\x84\x80" },
-+ { 0x00400200, "\xF8\x90\x80\x88\x80" },
-+ { 0x00400400, "\xF8\x90\x80\x90\x80" },
-+ { 0x00400800, "\xF8\x90\x80\xA0\x80" },
-+ { 0x00401000, "\xF8\x90\x81\x80\x80" },
-+ { 0x00402000, "\xF8\x90\x82\x80\x80" },
-+ { 0x00404000, "\xF8\x90\x84\x80\x80" },
-+ { 0x00408000, "\xF8\x90\x88\x80\x80" },
-+ { 0x00410000, "\xF8\x90\x90\x80\x80" },
-+ { 0x00420000, "\xF8\x90\xA0\x80\x80" },
-+ { 0x00440000, "\xF8\x91\x80\x80\x80" },
-+ { 0x00480000, "\xF8\x92\x80\x80\x80" },
-+ { 0x00500000, "\xF8\x94\x80\x80\x80" },
-+ { 0x00600000, "\xF8\x98\x80\x80\x80" },
-+ { 0x007FFFFF, "\xF8\x9F\xBF\xBF\xBF" },
-+ { 0x00800000, "\xF8\xA0\x80\x80\x80" },
-+ { 0x00800001, "\xF8\xA0\x80\x80\x81" },
-+ { 0x00800002, "\xF8\xA0\x80\x80\x82" },
-+ { 0x00800004, "\xF8\xA0\x80\x80\x84" },
-+ { 0x00800008, "\xF8\xA0\x80\x80\x88" },
-+ { 0x00800010, "\xF8\xA0\x80\x80\x90" },
-+ { 0x00800020, "\xF8\xA0\x80\x80\xA0" },
-+ { 0x00800040, "\xF8\xA0\x80\x81\x80" },
-+ { 0x00800080, "\xF8\xA0\x80\x82\x80" },
-+ { 0x00800100, "\xF8\xA0\x80\x84\x80" },
-+ { 0x00800200, "\xF8\xA0\x80\x88\x80" },
-+ { 0x00800400, "\xF8\xA0\x80\x90\x80" },
-+ { 0x00800800, "\xF8\xA0\x80\xA0\x80" },
-+ { 0x00801000, "\xF8\xA0\x81\x80\x80" },
-+ { 0x00802000, "\xF8\xA0\x82\x80\x80" },
-+ { 0x00804000, "\xF8\xA0\x84\x80\x80" },
-+ { 0x00808000, "\xF8\xA0\x88\x80\x80" },
-+ { 0x00810000, "\xF8\xA0\x90\x80\x80" },
-+ { 0x00820000, "\xF8\xA0\xA0\x80\x80" },
-+ { 0x00840000, "\xF8\xA1\x80\x80\x80" },
-+ { 0x00880000, "\xF8\xA2\x80\x80\x80" },
-+ { 0x00900000, "\xF8\xA4\x80\x80\x80" },
-+ { 0x00A00000, "\xF8\xA8\x80\x80\x80" },
-+ { 0x00C00000, "\xF8\xB0\x80\x80\x80" },
-+ { 0x00FFFFFF, "\xF8\xBF\xBF\xBF\xBF" },
-+ { 0x01000000, "\xF9\x80\x80\x80\x80" },
-+ { 0x01000001, "\xF9\x80\x80\x80\x81" },
-+ { 0x01000002, "\xF9\x80\x80\x80\x82" },
-+ { 0x01000004, "\xF9\x80\x80\x80\x84" },
-+ { 0x01000008, "\xF9\x80\x80\x80\x88" },
-+ { 0x01000010, "\xF9\x80\x80\x80\x90" },
-+ { 0x01000020, "\xF9\x80\x80\x80\xA0" },
-+ { 0x01000040, "\xF9\x80\x80\x81\x80" },
-+ { 0x01000080, "\xF9\x80\x80\x82\x80" },
-+ { 0x01000100, "\xF9\x80\x80\x84\x80" },
-+ { 0x01000200, "\xF9\x80\x80\x88\x80" },
-+ { 0x01000400, "\xF9\x80\x80\x90\x80" },
-+ { 0x01000800, "\xF9\x80\x80\xA0\x80" },
-+ { 0x01001000, "\xF9\x80\x81\x80\x80" },
-+ { 0x01002000, "\xF9\x80\x82\x80\x80" },
-+ { 0x01004000, "\xF9\x80\x84\x80\x80" },
-+ { 0x01008000, "\xF9\x80\x88\x80\x80" },
-+ { 0x01010000, "\xF9\x80\x90\x80\x80" },
-+ { 0x01020000, "\xF9\x80\xA0\x80\x80" },
-+ { 0x01040000, "\xF9\x81\x80\x80\x80" },
-+ { 0x01080000, "\xF9\x82\x80\x80\x80" },
-+ { 0x01100000, "\xF9\x84\x80\x80\x80" },
-+ { 0x01200000, "\xF9\x88\x80\x80\x80" },
-+ { 0x01400000, "\xF9\x90\x80\x80\x80" },
-+ { 0x01800000, "\xF9\xA0\x80\x80\x80" },
-+ { 0x01FFFFFF, "\xF9\xBF\xBF\xBF\xBF" },
-+ { 0x02000000, "\xFA\x80\x80\x80\x80" },
-+ { 0x02000001, "\xFA\x80\x80\x80\x81" },
-+ { 0x02000002, "\xFA\x80\x80\x80\x82" },
-+ { 0x02000004, "\xFA\x80\x80\x80\x84" },
-+ { 0x02000008, "\xFA\x80\x80\x80\x88" },
-+ { 0x02000010, "\xFA\x80\x80\x80\x90" },
-+ { 0x02000020, "\xFA\x80\x80\x80\xA0" },
-+ { 0x02000040, "\xFA\x80\x80\x81\x80" },
-+ { 0x02000080, "\xFA\x80\x80\x82\x80" },
-+ { 0x02000100, "\xFA\x80\x80\x84\x80" },
-+ { 0x02000200, "\xFA\x80\x80\x88\x80" },
-+ { 0x02000400, "\xFA\x80\x80\x90\x80" },
-+ { 0x02000800, "\xFA\x80\x80\xA0\x80" },
-+ { 0x02001000, "\xFA\x80\x81\x80\x80" },
-+ { 0x02002000, "\xFA\x80\x82\x80\x80" },
-+ { 0x02004000, "\xFA\x80\x84\x80\x80" },
-+ { 0x02008000, "\xFA\x80\x88\x80\x80" },
-+ { 0x02010000, "\xFA\x80\x90\x80\x80" },
-+ { 0x02020000, "\xFA\x80\xA0\x80\x80" },
-+ { 0x02040000, "\xFA\x81\x80\x80\x80" },
-+ { 0x02080000, "\xFA\x82\x80\x80\x80" },
-+ { 0x02100000, "\xFA\x84\x80\x80\x80" },
-+ { 0x02200000, "\xFA\x88\x80\x80\x80" },
-+ { 0x02400000, "\xFA\x90\x80\x80\x80" },
-+ { 0x02800000, "\xFA\xA0\x80\x80\x80" },
-+ { 0x03000000, "\xFB\x80\x80\x80\x80" },
-+ { 0x03FFFFFF, "\xFB\xBF\xBF\xBF\xBF" },
-+
-+ { 0x04000000, "\xFC\x84\x80\x80\x80\x80" },
-+ { 0x04000001, "\xFC\x84\x80\x80\x80\x81" },
-+ { 0x04000002, "\xFC\x84\x80\x80\x80\x82" },
-+ { 0x04000004, "\xFC\x84\x80\x80\x80\x84" },
-+ { 0x04000008, "\xFC\x84\x80\x80\x80\x88" },
-+ { 0x04000010, "\xFC\x84\x80\x80\x80\x90" },
-+ { 0x04000020, "\xFC\x84\x80\x80\x80\xA0" },
-+ { 0x04000040, "\xFC\x84\x80\x80\x81\x80" },
-+ { 0x04000080, "\xFC\x84\x80\x80\x82\x80" },
-+ { 0x04000100, "\xFC\x84\x80\x80\x84\x80" },
-+ { 0x04000200, "\xFC\x84\x80\x80\x88\x80" },
-+ { 0x04000400, "\xFC\x84\x80\x80\x90\x80" },
-+ { 0x04000800, "\xFC\x84\x80\x80\xA0\x80" },
-+ { 0x04001000, "\xFC\x84\x80\x81\x80\x80" },
-+ { 0x04002000, "\xFC\x84\x80\x82\x80\x80" },
-+ { 0x04004000, "\xFC\x84\x80\x84\x80\x80" },
-+ { 0x04008000, "\xFC\x84\x80\x88\x80\x80" },
-+ { 0x04010000, "\xFC\x84\x80\x90\x80\x80" },
-+ { 0x04020000, "\xFC\x84\x80\xA0\x80\x80" },
-+ { 0x04040000, "\xFC\x84\x81\x80\x80\x80" },
-+ { 0x04080000, "\xFC\x84\x82\x80\x80\x80" },
-+ { 0x04100000, "\xFC\x84\x84\x80\x80\x80" },
-+ { 0x04200000, "\xFC\x84\x88\x80\x80\x80" },
-+ { 0x04400000, "\xFC\x84\x90\x80\x80\x80" },
-+ { 0x04800000, "\xFC\x84\xA0\x80\x80\x80" },
-+ { 0x05000000, "\xFC\x85\x80\x80\x80\x80" },
-+ { 0x06000000, "\xFC\x86\x80\x80\x80\x80" },
-+ { 0x07FFFFFF, "\xFC\x87\xBF\xBF\xBF\xBF" },
-+ { 0x08000000, "\xFC\x88\x80\x80\x80\x80" },
-+ { 0x08000001, "\xFC\x88\x80\x80\x80\x81" },
-+ { 0x08000002, "\xFC\x88\x80\x80\x80\x82" },
-+ { 0x08000004, "\xFC\x88\x80\x80\x80\x84" },
-+ { 0x08000008, "\xFC\x88\x80\x80\x80\x88" },
-+ { 0x08000010, "\xFC\x88\x80\x80\x80\x90" },
-+ { 0x08000020, "\xFC\x88\x80\x80\x80\xA0" },
-+ { 0x08000040, "\xFC\x88\x80\x80\x81\x80" },
-+ { 0x08000080, "\xFC\x88\x80\x80\x82\x80" },
-+ { 0x08000100, "\xFC\x88\x80\x80\x84\x80" },
-+ { 0x08000200, "\xFC\x88\x80\x80\x88\x80" },
-+ { 0x08000400, "\xFC\x88\x80\x80\x90\x80" },
-+ { 0x08000800, "\xFC\x88\x80\x80\xA0\x80" },
-+ { 0x08001000, "\xFC\x88\x80\x81\x80\x80" },
-+ { 0x08002000, "\xFC\x88\x80\x82\x80\x80" },
-+ { 0x08004000, "\xFC\x88\x80\x84\x80\x80" },
-+ { 0x08008000, "\xFC\x88\x80\x88\x80\x80" },
-+ { 0x08010000, "\xFC\x88\x80\x90\x80\x80" },
-+ { 0x08020000, "\xFC\x88\x80\xA0\x80\x80" },
-+ { 0x08040000, "\xFC\x88\x81\x80\x80\x80" },
-+ { 0x08080000, "\xFC\x88\x82\x80\x80\x80" },
-+ { 0x08100000, "\xFC\x88\x84\x80\x80\x80" },
-+ { 0x08200000, "\xFC\x88\x88\x80\x80\x80" },
-+ { 0x08400000, "\xFC\x88\x90\x80\x80\x80" },
-+ { 0x08800000, "\xFC\x88\xA0\x80\x80\x80" },
-+ { 0x09000000, "\xFC\x89\x80\x80\x80\x80" },
-+ { 0x0A000000, "\xFC\x8A\x80\x80\x80\x80" },
-+ { 0x0C000000, "\xFC\x8C\x80\x80\x80\x80" },
-+ { 0x0FFFFFFF, "\xFC\x8F\xBF\xBF\xBF\xBF" },
-+ { 0x10000000, "\xFC\x90\x80\x80\x80\x80" },
-+ { 0x10000001, "\xFC\x90\x80\x80\x80\x81" },
-+ { 0x10000002, "\xFC\x90\x80\x80\x80\x82" },
-+ { 0x10000004, "\xFC\x90\x80\x80\x80\x84" },
-+ { 0x10000008, "\xFC\x90\x80\x80\x80\x88" },
-+ { 0x10000010, "\xFC\x90\x80\x80\x80\x90" },
-+ { 0x10000020, "\xFC\x90\x80\x80\x80\xA0" },
-+ { 0x10000040, "\xFC\x90\x80\x80\x81\x80" },
-+ { 0x10000080, "\xFC\x90\x80\x80\x82\x80" },
-+ { 0x10000100, "\xFC\x90\x80\x80\x84\x80" },
-+ { 0x10000200, "\xFC\x90\x80\x80\x88\x80" },
-+ { 0x10000400, "\xFC\x90\x80\x80\x90\x80" },
-+ { 0x10000800, "\xFC\x90\x80\x80\xA0\x80" },
-+ { 0x10001000, "\xFC\x90\x80\x81\x80\x80" },
-+ { 0x10002000, "\xFC\x90\x80\x82\x80\x80" },
-+ { 0x10004000, "\xFC\x90\x80\x84\x80\x80" },
-+ { 0x10008000, "\xFC\x90\x80\x88\x80\x80" },
-+ { 0x10010000, "\xFC\x90\x80\x90\x80\x80" },
-+ { 0x10020000, "\xFC\x90\x80\xA0\x80\x80" },
-+ { 0x10040000, "\xFC\x90\x81\x80\x80\x80" },
-+ { 0x10080000, "\xFC\x90\x82\x80\x80\x80" },
-+ { 0x10100000, "\xFC\x90\x84\x80\x80\x80" },
-+ { 0x10200000, "\xFC\x90\x88\x80\x80\x80" },
-+ { 0x10400000, "\xFC\x90\x90\x80\x80\x80" },
-+ { 0x10800000, "\xFC\x90\xA0\x80\x80\x80" },
-+ { 0x11000000, "\xFC\x91\x80\x80\x80\x80" },
-+ { 0x12000000, "\xFC\x92\x80\x80\x80\x80" },
-+ { 0x14000000, "\xFC\x94\x80\x80\x80\x80" },
-+ { 0x18000000, "\xFC\x98\x80\x80\x80\x80" },
-+ { 0x1FFFFFFF, "\xFC\x9F\xBF\xBF\xBF\xBF" },
-+ { 0x20000000, "\xFC\xA0\x80\x80\x80\x80" },
-+ { 0x20000001, "\xFC\xA0\x80\x80\x80\x81" },
-+ { 0x20000002, "\xFC\xA0\x80\x80\x80\x82" },
-+ { 0x20000004, "\xFC\xA0\x80\x80\x80\x84" },
-+ { 0x20000008, "\xFC\xA0\x80\x80\x80\x88" },
-+ { 0x20000010, "\xFC\xA0\x80\x80\x80\x90" },
-+ { 0x20000020, "\xFC\xA0\x80\x80\x80\xA0" },
-+ { 0x20000040, "\xFC\xA0\x80\x80\x81\x80" },
-+ { 0x20000080, "\xFC\xA0\x80\x80\x82\x80" },
-+ { 0x20000100, "\xFC\xA0\x80\x80\x84\x80" },
-+ { 0x20000200, "\xFC\xA0\x80\x80\x88\x80" },
-+ { 0x20000400, "\xFC\xA0\x80\x80\x90\x80" },
-+ { 0x20000800, "\xFC\xA0\x80\x80\xA0\x80" },
-+ { 0x20001000, "\xFC\xA0\x80\x81\x80\x80" },
-+ { 0x20002000, "\xFC\xA0\x80\x82\x80\x80" },
-+ { 0x20004000, "\xFC\xA0\x80\x84\x80\x80" },
-+ { 0x20008000, "\xFC\xA0\x80\x88\x80\x80" },
-+ { 0x20010000, "\xFC\xA0\x80\x90\x80\x80" },
-+ { 0x20020000, "\xFC\xA0\x80\xA0\x80\x80" },
-+ { 0x20040000, "\xFC\xA0\x81\x80\x80\x80" },
-+ { 0x20080000, "\xFC\xA0\x82\x80\x80\x80" },
-+ { 0x20100000, "\xFC\xA0\x84\x80\x80\x80" },
-+ { 0x20200000, "\xFC\xA0\x88\x80\x80\x80" },
-+ { 0x20400000, "\xFC\xA0\x90\x80\x80\x80" },
-+ { 0x20800000, "\xFC\xA0\xA0\x80\x80\x80" },
-+ { 0x21000000, "\xFC\xA1\x80\x80\x80\x80" },
-+ { 0x22000000, "\xFC\xA2\x80\x80\x80\x80" },
-+ { 0x24000000, "\xFC\xA4\x80\x80\x80\x80" },
-+ { 0x28000000, "\xFC\xA8\x80\x80\x80\x80" },
-+ { 0x30000000, "\xFC\xB0\x80\x80\x80\x80" },
-+ { 0x3FFFFFFF, "\xFC\xBF\xBF\xBF\xBF\xBF" },
-+ { 0x40000000, "\xFD\x80\x80\x80\x80\x80" },
-+ { 0x40000001, "\xFD\x80\x80\x80\x80\x81" },
-+ { 0x40000002, "\xFD\x80\x80\x80\x80\x82" },
-+ { 0x40000004, "\xFD\x80\x80\x80\x80\x84" },
-+ { 0x40000008, "\xFD\x80\x80\x80\x80\x88" },
-+ { 0x40000010, "\xFD\x80\x80\x80\x80\x90" },
-+ { 0x40000020, "\xFD\x80\x80\x80\x80\xA0" },
-+ { 0x40000040, "\xFD\x80\x80\x80\x81\x80" },
-+ { 0x40000080, "\xFD\x80\x80\x80\x82\x80" },
-+ { 0x40000100, "\xFD\x80\x80\x80\x84\x80" },
-+ { 0x40000200, "\xFD\x80\x80\x80\x88\x80" },
-+ { 0x40000400, "\xFD\x80\x80\x80\x90\x80" },
-+ { 0x40000800, "\xFD\x80\x80\x80\xA0\x80" },
-+ { 0x40001000, "\xFD\x80\x80\x81\x80\x80" },
-+ { 0x40002000, "\xFD\x80\x80\x82\x80\x80" },
-+ { 0x40004000, "\xFD\x80\x80\x84\x80\x80" },
-+ { 0x40008000, "\xFD\x80\x80\x88\x80\x80" },
-+ { 0x40010000, "\xFD\x80\x80\x90\x80\x80" },
-+ { 0x40020000, "\xFD\x80\x80\xA0\x80\x80" },
-+ { 0x40040000, "\xFD\x80\x81\x80\x80\x80" },
-+ { 0x40080000, "\xFD\x80\x82\x80\x80\x80" },
-+ { 0x40100000, "\xFD\x80\x84\x80\x80\x80" },
-+ { 0x40200000, "\xFD\x80\x88\x80\x80\x80" },
-+ { 0x40400000, "\xFD\x80\x90\x80\x80\x80" },
-+ { 0x40800000, "\xFD\x80\xA0\x80\x80\x80" },
-+ { 0x41000000, "\xFD\x81\x80\x80\x80\x80" },
-+ { 0x42000000, "\xFD\x82\x80\x80\x80\x80" },
-+ { 0x44000000, "\xFD\x84\x80\x80\x80\x80" },
-+ { 0x48000000, "\xFD\x88\x80\x80\x80\x80" },
-+ { 0x50000000, "\xFD\x90\x80\x80\x80\x80" },
-+ { 0x60000000, "\xFD\xA0\x80\x80\x80\x80" },
-+ { 0x7FFFFFFF, "\xFD\xBF\xBF\xBF\xBF\xBF" }
-+};
-+
-+/*
-+ * UCS-2 vectors
-+ */
-+
-+struct ucs2 ucs2[] = {
-+ { 0x0001, "\x01" },
-+ { 0x0002, "\x02" },
-+ { 0x0003, "\x03" },
-+ { 0x0004, "\x04" },
-+ { 0x0007, "\x07" },
-+ { 0x0008, "\x08" },
-+ { 0x000F, "\x0F" },
-+ { 0x0010, "\x10" },
-+ { 0x001F, "\x1F" },
-+ { 0x0020, "\x20" },
-+ { 0x003F, "\x3F" },
-+ { 0x0040, "\x40" },
-+ { 0x007F, "\x7F" },
-+
-+ { 0x0080, "\xC2\x80" },
-+ { 0x0081, "\xC2\x81" },
-+ { 0x0082, "\xC2\x82" },
-+ { 0x0084, "\xC2\x84" },
-+ { 0x0088, "\xC2\x88" },
-+ { 0x0090, "\xC2\x90" },
-+ { 0x00A0, "\xC2\xA0" },
-+ { 0x00C0, "\xC3\x80" },
-+ { 0x00FF, "\xC3\xBF" },
-+ { 0x0100, "\xC4\x80" },
-+ { 0x0101, "\xC4\x81" },
-+ { 0x0102, "\xC4\x82" },
-+ { 0x0104, "\xC4\x84" },
-+ { 0x0108, "\xC4\x88" },
-+ { 0x0110, "\xC4\x90" },
-+ { 0x0120, "\xC4\xA0" },
-+ { 0x0140, "\xC5\x80" },
-+ { 0x0180, "\xC6\x80" },
-+ { 0x01FF, "\xC7\xBF" },
-+ { 0x0200, "\xC8\x80" },
-+ { 0x0201, "\xC8\x81" },
-+ { 0x0202, "\xC8\x82" },
-+ { 0x0204, "\xC8\x84" },
-+ { 0x0208, "\xC8\x88" },
-+ { 0x0210, "\xC8\x90" },
-+ { 0x0220, "\xC8\xA0" },
-+ { 0x0240, "\xC9\x80" },
-+ { 0x0280, "\xCA\x80" },
-+ { 0x0300, "\xCC\x80" },
-+ { 0x03FF, "\xCF\xBF" },
-+ { 0x0400, "\xD0\x80" },
-+ { 0x0401, "\xD0\x81" },
-+ { 0x0402, "\xD0\x82" },
-+ { 0x0404, "\xD0\x84" },
-+ { 0x0408, "\xD0\x88" },
-+ { 0x0410, "\xD0\x90" },
-+ { 0x0420, "\xD0\xA0" },
-+ { 0x0440, "\xD1\x80" },
-+ { 0x0480, "\xD2\x80" },
-+ { 0x0500, "\xD4\x80" },
-+ { 0x0600, "\xD8\x80" },
-+ { 0x07FF, "\xDF\xBF" },
-+
-+ { 0x0800, "\xE0\xA0\x80" },
-+ { 0x0801, "\xE0\xA0\x81" },
-+ { 0x0802, "\xE0\xA0\x82" },
-+ { 0x0804, "\xE0\xA0\x84" },
-+ { 0x0808, "\xE0\xA0\x88" },
-+ { 0x0810, "\xE0\xA0\x90" },
-+ { 0x0820, "\xE0\xA0\xA0" },
-+ { 0x0840, "\xE0\xA1\x80" },
-+ { 0x0880, "\xE0\xA2\x80" },
-+ { 0x0900, "\xE0\xA4\x80" },
-+ { 0x0A00, "\xE0\xA8\x80" },
-+ { 0x0C00, "\xE0\xB0\x80" },
-+ { 0x0FFF, "\xE0\xBF\xBF" },
-+ { 0x1000, "\xE1\x80\x80" },
-+ { 0x1001, "\xE1\x80\x81" },
-+ { 0x1002, "\xE1\x80\x82" },
-+ { 0x1004, "\xE1\x80\x84" },
-+ { 0x1008, "\xE1\x80\x88" },
-+ { 0x1010, "\xE1\x80\x90" },
-+ { 0x1020, "\xE1\x80\xA0" },
-+ { 0x1040, "\xE1\x81\x80" },
-+ { 0x1080, "\xE1\x82\x80" },
-+ { 0x1100, "\xE1\x84\x80" },
-+ { 0x1200, "\xE1\x88\x80" },
-+ { 0x1400, "\xE1\x90\x80" },
-+ { 0x1800, "\xE1\xA0\x80" },
-+ { 0x1FFF, "\xE1\xBF\xBF" },
-+ { 0x2000, "\xE2\x80\x80" },
-+ { 0x2001, "\xE2\x80\x81" },
-+ { 0x2002, "\xE2\x80\x82" },
-+ { 0x2004, "\xE2\x80\x84" },
-+ { 0x2008, "\xE2\x80\x88" },
-+ { 0x2010, "\xE2\x80\x90" },
-+ { 0x2020, "\xE2\x80\xA0" },
-+ { 0x2040, "\xE2\x81\x80" },
-+ { 0x2080, "\xE2\x82\x80" },
-+ { 0x2100, "\xE2\x84\x80" },
-+ { 0x2200, "\xE2\x88\x80" },
-+ { 0x2400, "\xE2\x90\x80" },
-+ { 0x2800, "\xE2\xA0\x80" },
-+ { 0x3000, "\xE3\x80\x80" },
-+ { 0x3FFF, "\xE3\xBF\xBF" },
-+ { 0x4000, "\xE4\x80\x80" },
-+ { 0x4001, "\xE4\x80\x81" },
-+ { 0x4002, "\xE4\x80\x82" },
-+ { 0x4004, "\xE4\x80\x84" },
-+ { 0x4008, "\xE4\x80\x88" },
-+ { 0x4010, "\xE4\x80\x90" },
-+ { 0x4020, "\xE4\x80\xA0" },
-+ { 0x4040, "\xE4\x81\x80" },
-+ { 0x4080, "\xE4\x82\x80" },
-+ { 0x4100, "\xE4\x84\x80" },
-+ { 0x4200, "\xE4\x88\x80" },
-+ { 0x4400, "\xE4\x90\x80" },
-+ { 0x4800, "\xE4\xA0\x80" },
-+ { 0x5000, "\xE5\x80\x80" },
-+ { 0x6000, "\xE6\x80\x80" },
-+ { 0x7FFF, "\xE7\xBF\xBF" },
-+ { 0x8000, "\xE8\x80\x80" },
-+ { 0x8001, "\xE8\x80\x81" },
-+ { 0x8002, "\xE8\x80\x82" },
-+ { 0x8004, "\xE8\x80\x84" },
-+ { 0x8008, "\xE8\x80\x88" },
-+ { 0x8010, "\xE8\x80\x90" },
-+ { 0x8020, "\xE8\x80\xA0" },
-+ { 0x8040, "\xE8\x81\x80" },
-+ { 0x8080, "\xE8\x82\x80" },
-+ { 0x8100, "\xE8\x84\x80" },
-+ { 0x8200, "\xE8\x88\x80" },
-+ { 0x8400, "\xE8\x90\x80" },
-+ { 0x8800, "\xE8\xA0\x80" },
-+ { 0x9000, "\xE9\x80\x80" },
-+ { 0xA000, "\xEA\x80\x80" },
-+ { 0xC000, "\xEC\x80\x80" },
-+ { 0xFFFF, "\xEF\xBF\xBF" }
-+
-+};
-+
-+#ifdef UTF16
-+/*
-+ * UTF-16 vectors
-+ */
-+
-+struct utf16 utf16[] = {
-+ { 0x00010000, { 0xD800, 0xDC00 } },
-+ { 0x00010001, { 0xD800, 0xDC01 } },
-+ { 0x00010002, { 0xD800, 0xDC02 } },
-+ { 0x00010003, { 0xD800, 0xDC03 } },
-+ { 0x00010004, { 0xD800, 0xDC04 } },
-+ { 0x00010007, { 0xD800, 0xDC07 } },
-+ { 0x00010008, { 0xD800, 0xDC08 } },
-+ { 0x0001000F, { 0xD800, 0xDC0F } },
-+ { 0x00010010, { 0xD800, 0xDC10 } },
-+ { 0x0001001F, { 0xD800, 0xDC1F } },
-+ { 0x00010020, { 0xD800, 0xDC20 } },
-+ { 0x0001003F, { 0xD800, 0xDC3F } },
-+ { 0x00010040, { 0xD800, 0xDC40 } },
-+ { 0x0001007F, { 0xD800, 0xDC7F } },
-+ { 0x00010080, { 0xD800, 0xDC80 } },
-+ { 0x00010081, { 0xD800, 0xDC81 } },
-+ { 0x00010082, { 0xD800, 0xDC82 } },
-+ { 0x00010084, { 0xD800, 0xDC84 } },
-+ { 0x00010088, { 0xD800, 0xDC88 } },
-+ { 0x00010090, { 0xD800, 0xDC90 } },
-+ { 0x000100A0, { 0xD800, 0xDCA0 } },
-+ { 0x000100C0, { 0xD800, 0xDCC0 } },
-+ { 0x000100FF, { 0xD800, 0xDCFF } },
-+ { 0x00010100, { 0xD800, 0xDD00 } },
-+ { 0x00010101, { 0xD800, 0xDD01 } },
-+ { 0x00010102, { 0xD800, 0xDD02 } },
-+ { 0x00010104, { 0xD800, 0xDD04 } },
-+ { 0x00010108, { 0xD800, 0xDD08 } },
-+ { 0x00010110, { 0xD800, 0xDD10 } },
-+ { 0x00010120, { 0xD800, 0xDD20 } },
-+ { 0x00010140, { 0xD800, 0xDD40 } },
-+ { 0x00010180, { 0xD800, 0xDD80 } },
-+ { 0x000101FF, { 0xD800, 0xDDFF } },
-+ { 0x00010200, { 0xD800, 0xDE00 } },
-+ { 0x00010201, { 0xD800, 0xDE01 } },
-+ { 0x00010202, { 0xD800, 0xDE02 } },
-+ { 0x00010204, { 0xD800, 0xDE04 } },
-+ { 0x00010208, { 0xD800, 0xDE08 } },
-+ { 0x00010210, { 0xD800, 0xDE10 } },
-+ { 0x00010220, { 0xD800, 0xDE20 } },
-+ { 0x00010240, { 0xD800, 0xDE40 } },
-+ { 0x00010280, { 0xD800, 0xDE80 } },
-+ { 0x00010300, { 0xD800, 0xDF00 } },
-+ { 0x000103FF, { 0xD800, 0xDFFF } },
-+ { 0x00010400, { 0xD801, 0xDC00 } },
-+ { 0x00010401, { 0xD801, 0xDC01 } },
-+ { 0x00010402, { 0xD801, 0xDC02 } },
-+ { 0x00010404, { 0xD801, 0xDC04 } },
-+ { 0x00010408, { 0xD801, 0xDC08 } },
-+ { 0x00010410, { 0xD801, 0xDC10 } },
-+ { 0x00010420, { 0xD801, 0xDC20 } },
-+ { 0x00010440, { 0xD801, 0xDC40 } },
-+ { 0x00010480, { 0xD801, 0xDC80 } },
-+ { 0x00010500, { 0xD801, 0xDD00 } },
-+ { 0x00010600, { 0xD801, 0xDE00 } },
-+ { 0x000107FF, { 0xD801, 0xDFFF } },
-+ { 0x00010800, { 0xD802, 0xDC00 } },
-+ { 0x00010801, { 0xD802, 0xDC01 } },
-+ { 0x00010802, { 0xD802, 0xDC02 } },
-+ { 0x00010804, { 0xD802, 0xDC04 } },
-+ { 0x00010808, { 0xD802, 0xDC08 } },
-+ { 0x00010810, { 0xD802, 0xDC10 } },
-+ { 0x00010820, { 0xD802, 0xDC20 } },
-+ { 0x00010840, { 0xD802, 0xDC40 } },
-+ { 0x00010880, { 0xD802, 0xDC80 } },
-+ { 0x00010900, { 0xD802, 0xDD00 } },
-+ { 0x00010A00, { 0xD802, 0xDE00 } },
-+ { 0x00010C00, { 0xD803, 0xDC00 } },
-+ { 0x00010FFF, { 0xD803, 0xDFFF } },
-+ { 0x00011000, { 0xD804, 0xDC00 } },
-+ { 0x00011001, { 0xD804, 0xDC01 } },
-+ { 0x00011002, { 0xD804, 0xDC02 } },
-+ { 0x00011004, { 0xD804, 0xDC04 } },
-+ { 0x00011008, { 0xD804, 0xDC08 } },
-+ { 0x00011010, { 0xD804, 0xDC10 } },
-+ { 0x00011020, { 0xD804, 0xDC20 } },
-+ { 0x00011040, { 0xD804, 0xDC40 } },
-+ { 0x00011080, { 0xD804, 0xDC80 } },
-+ { 0x00011100, { 0xD804, 0xDD00 } },
-+ { 0x00011200, { 0xD804, 0xDE00 } },
-+ { 0x00011400, { 0xD805, 0xDC00 } },
-+ { 0x00011800, { 0xD806, 0xDC00 } },
-+ { 0x00011FFF, { 0xD807, 0xDFFF } },
-+ { 0x00012000, { 0xD808, 0xDC00 } },
-+ { 0x00012001, { 0xD808, 0xDC01 } },
-+ { 0x00012002, { 0xD808, 0xDC02 } },
-+ { 0x00012004, { 0xD808, 0xDC04 } },
-+ { 0x00012008, { 0xD808, 0xDC08 } },
-+ { 0x00012010, { 0xD808, 0xDC10 } },
-+ { 0x00012020, { 0xD808, 0xDC20 } },
-+ { 0x00012040, { 0xD808, 0xDC40 } },
-+ { 0x00012080, { 0xD808, 0xDC80 } },
-+ { 0x00012100, { 0xD808, 0xDD00 } },
-+ { 0x00012200, { 0xD808, 0xDE00 } },
-+ { 0x00012400, { 0xD809, 0xDC00 } },
-+ { 0x00012800, { 0xD80A, 0xDC00 } },
-+ { 0x00013000, { 0xD80C, 0xDC00 } },
-+ { 0x00013FFF, { 0xD80F, 0xDFFF } },
-+ { 0x00014000, { 0xD810, 0xDC00 } },
-+ { 0x00014001, { 0xD810, 0xDC01 } },
-+ { 0x00014002, { 0xD810, 0xDC02 } },
-+ { 0x00014004, { 0xD810, 0xDC04 } },
-+ { 0x00014008, { 0xD810, 0xDC08 } },
-+ { 0x00014010, { 0xD810, 0xDC10 } },
-+ { 0x00014020, { 0xD810, 0xDC20 } },
-+ { 0x00014040, { 0xD810, 0xDC40 } },
-+ { 0x00014080, { 0xD810, 0xDC80 } },
-+ { 0x00014100, { 0xD810, 0xDD00 } },
-+ { 0x00014200, { 0xD810, 0xDE00 } },
-+ { 0x00014400, { 0xD811, 0xDC00 } },
-+ { 0x00014800, { 0xD812, 0xDC00 } },
-+ { 0x00015000, { 0xD814, 0xDC00 } },
-+ { 0x00016000, { 0xD818, 0xDC00 } },
-+ { 0x00017FFF, { 0xD81F, 0xDFFF } },
-+ { 0x00018000, { 0xD820, 0xDC00 } },
-+ { 0x00018001, { 0xD820, 0xDC01 } },
-+ { 0x00018002, { 0xD820, 0xDC02 } },
-+ { 0x00018004, { 0xD820, 0xDC04 } },
-+ { 0x00018008, { 0xD820, 0xDC08 } },
-+ { 0x00018010, { 0xD820, 0xDC10 } },
-+ { 0x00018020, { 0xD820, 0xDC20 } },
-+ { 0x00018040, { 0xD820, 0xDC40 } },
-+ { 0x00018080, { 0xD820, 0xDC80 } },
-+ { 0x00018100, { 0xD820, 0xDD00 } },
-+ { 0x00018200, { 0xD820, 0xDE00 } },
-+ { 0x00018400, { 0xD821, 0xDC00 } },
-+ { 0x00018800, { 0xD822, 0xDC00 } },
-+ { 0x00019000, { 0xD824, 0xDC00 } },
-+ { 0x0001A000, { 0xD828, 0xDC00 } },
-+ { 0x0001C000, { 0xD830, 0xDC00 } },
-+ { 0x0001FFFF, { 0xD83F, 0xDFFF } },
-+ { 0x00020000, { 0xD840, 0xDC00 } },
-+ { 0x00020001, { 0xD840, 0xDC01 } },
-+ { 0x00020002, { 0xD840, 0xDC02 } },
-+ { 0x00020004, { 0xD840, 0xDC04 } },
-+ { 0x00020008, { 0xD840, 0xDC08 } },
-+ { 0x00020010, { 0xD840, 0xDC10 } },
-+ { 0x00020020, { 0xD840, 0xDC20 } },
-+ { 0x00020040, { 0xD840, 0xDC40 } },
-+ { 0x00020080, { 0xD840, 0xDC80 } },
-+ { 0x00020100, { 0xD840, 0xDD00 } },
-+ { 0x00020200, { 0xD840, 0xDE00 } },
-+ { 0x00020400, { 0xD841, 0xDC00 } },
-+ { 0x00020800, { 0xD842, 0xDC00 } },
-+ { 0x00021000, { 0xD844, 0xDC00 } },
-+ { 0x00022000, { 0xD848, 0xDC00 } },
-+ { 0x00024000, { 0xD850, 0xDC00 } },
-+ { 0x00028000, { 0xD860, 0xDC00 } },
-+ { 0x0002FFFF, { 0xD87F, 0xDFFF } },
-+ { 0x00030000, { 0xD880, 0xDC00 } },
-+ { 0x00030001, { 0xD880, 0xDC01 } },
-+ { 0x00030002, { 0xD880, 0xDC02 } },
-+ { 0x00030004, { 0xD880, 0xDC04 } },
-+ { 0x00030008, { 0xD880, 0xDC08 } },
-+ { 0x00030010, { 0xD880, 0xDC10 } },
-+ { 0x00030020, { 0xD880, 0xDC20 } },
-+ { 0x00030040, { 0xD880, 0xDC40 } },
-+ { 0x00030080, { 0xD880, 0xDC80 } },
-+ { 0x00030100, { 0xD880, 0xDD00 } },
-+ { 0x00030200, { 0xD880, 0xDE00 } },
-+ { 0x00030400, { 0xD881, 0xDC00 } },
-+ { 0x00030800, { 0xD882, 0xDC00 } },
-+ { 0x00031000, { 0xD884, 0xDC00 } },
-+ { 0x00032000, { 0xD888, 0xDC00 } },
-+ { 0x00034000, { 0xD890, 0xDC00 } },
-+ { 0x00038000, { 0xD8A0, 0xDC00 } },
-+ { 0x0003FFFF, { 0xD8BF, 0xDFFF } },
-+ { 0x00040000, { 0xD8C0, 0xDC00 } },
-+ { 0x00040001, { 0xD8C0, 0xDC01 } },
-+ { 0x00040002, { 0xD8C0, 0xDC02 } },
-+ { 0x00040004, { 0xD8C0, 0xDC04 } },
-+ { 0x00040008, { 0xD8C0, 0xDC08 } },
-+ { 0x00040010, { 0xD8C0, 0xDC10 } },
-+ { 0x00040020, { 0xD8C0, 0xDC20 } },
-+ { 0x00040040, { 0xD8C0, 0xDC40 } },
-+ { 0x00040080, { 0xD8C0, 0xDC80 } },
-+ { 0x00040100, { 0xD8C0, 0xDD00 } },
-+ { 0x00040200, { 0xD8C0, 0xDE00 } },
-+ { 0x00040400, { 0xD8C1, 0xDC00 } },
-+ { 0x00040800, { 0xD8C2, 0xDC00 } },
-+ { 0x00041000, { 0xD8C4, 0xDC00 } },
-+ { 0x00042000, { 0xD8C8, 0xDC00 } },
-+ { 0x00044000, { 0xD8D0, 0xDC00 } },
-+ { 0x00048000, { 0xD8E0, 0xDC00 } },
-+ { 0x0004FFFF, { 0xD8FF, 0xDFFF } },
-+ { 0x00050000, { 0xD900, 0xDC00 } },
-+ { 0x00050001, { 0xD900, 0xDC01 } },
-+ { 0x00050002, { 0xD900, 0xDC02 } },
-+ { 0x00050004, { 0xD900, 0xDC04 } },
-+ { 0x00050008, { 0xD900, 0xDC08 } },
-+ { 0x00050010, { 0xD900, 0xDC10 } },
-+ { 0x00050020, { 0xD900, 0xDC20 } },
-+ { 0x00050040, { 0xD900, 0xDC40 } },
-+ { 0x00050080, { 0xD900, 0xDC80 } },
-+ { 0x00050100, { 0xD900, 0xDD00 } },
-+ { 0x00050200, { 0xD900, 0xDE00 } },
-+ { 0x00050400, { 0xD901, 0xDC00 } },
-+ { 0x00050800, { 0xD902, 0xDC00 } },
-+ { 0x00051000, { 0xD904, 0xDC00 } },
-+ { 0x00052000, { 0xD908, 0xDC00 } },
-+ { 0x00054000, { 0xD910, 0xDC00 } },
-+ { 0x00058000, { 0xD920, 0xDC00 } },
-+ { 0x00060000, { 0xD940, 0xDC00 } },
-+ { 0x00070000, { 0xD980, 0xDC00 } },
-+ { 0x0007FFFF, { 0xD9BF, 0xDFFF } },
-+ { 0x00080000, { 0xD9C0, 0xDC00 } },
-+ { 0x00080001, { 0xD9C0, 0xDC01 } },
-+ { 0x00080002, { 0xD9C0, 0xDC02 } },
-+ { 0x00080004, { 0xD9C0, 0xDC04 } },
-+ { 0x00080008, { 0xD9C0, 0xDC08 } },
-+ { 0x00080010, { 0xD9C0, 0xDC10 } },
-+ { 0x00080020, { 0xD9C0, 0xDC20 } },
-+ { 0x00080040, { 0xD9C0, 0xDC40 } },
-+ { 0x00080080, { 0xD9C0, 0xDC80 } },
-+ { 0x00080100, { 0xD9C0, 0xDD00 } },
-+ { 0x00080200, { 0xD9C0, 0xDE00 } },
-+ { 0x00080400, { 0xD9C1, 0xDC00 } },
-+ { 0x00080800, { 0xD9C2, 0xDC00 } },
-+ { 0x00081000, { 0xD9C4, 0xDC00 } },
-+ { 0x00082000, { 0xD9C8, 0xDC00 } },
-+ { 0x00084000, { 0xD9D0, 0xDC00 } },
-+ { 0x00088000, { 0xD9E0, 0xDC00 } },
-+ { 0x0008FFFF, { 0xD9FF, 0xDFFF } },
-+ { 0x00090000, { 0xDA00, 0xDC00 } },
-+ { 0x00090001, { 0xDA00, 0xDC01 } },
-+ { 0x00090002, { 0xDA00, 0xDC02 } },
-+ { 0x00090004, { 0xDA00, 0xDC04 } },
-+ { 0x00090008, { 0xDA00, 0xDC08 } },
-+ { 0x00090010, { 0xDA00, 0xDC10 } },
-+ { 0x00090020, { 0xDA00, 0xDC20 } },
-+ { 0x00090040, { 0xDA00, 0xDC40 } },
-+ { 0x00090080, { 0xDA00, 0xDC80 } },
-+ { 0x00090100, { 0xDA00, 0xDD00 } },
-+ { 0x00090200, { 0xDA00, 0xDE00 } },
-+ { 0x00090400, { 0xDA01, 0xDC00 } },
-+ { 0x00090800, { 0xDA02, 0xDC00 } },
-+ { 0x00091000, { 0xDA04, 0xDC00 } },
-+ { 0x00092000, { 0xDA08, 0xDC00 } },
-+ { 0x00094000, { 0xDA10, 0xDC00 } },
-+ { 0x00098000, { 0xDA20, 0xDC00 } },
-+ { 0x000A0000, { 0xDA40, 0xDC00 } },
-+ { 0x000B0000, { 0xDA80, 0xDC00 } },
-+ { 0x000C0000, { 0xDAC0, 0xDC00 } },
-+ { 0x000D0000, { 0xDB00, 0xDC00 } },
-+ { 0x000FFFFF, { 0xDBBF, 0xDFFF } },
-+ { 0x0010FFFF, { 0xDBFF, 0xDFFF } }
-+
-+};
-+#endif /* UTF16 */
-+
-+static void
-+dump_utf8
-+(
-+ char *word,
-+ unsigned char *utf8,
-+ char *end
-+)
-+{
-+ fprintf(stdout, "%s ", word);
-+ for( ; *utf8; utf8++ ) {
-+ fprintf(stdout, "%02.2x ", (unsigned int)*utf8);
-+ }
-+ fprintf(stdout, "%s", end);
-+}
-+
-+static PRBool
-+test_ucs4_chars
-+(
-+ void
-+)
-+{
-+ PRBool rv = PR_TRUE;
-+ int i;
-+
-+ for( i = 0; i < sizeof(ucs4)/sizeof(ucs4[0]); i++ ) {
-+ struct ucs4 *e = &ucs4[i];
-+ PRBool result;
-+ unsigned char utf8[8];
-+ unsigned int len = 0;
-+ PRUint32 back = 0;
-+
-+ (void)memset(utf8, 0, sizeof(utf8));
-+
-+ result = sec_port_ucs4_utf8_conversion_function(PR_FALSE,
-+ (unsigned char *)&e->c, sizeof(e->c), utf8, sizeof(utf8), &len);
-+
-+ if( !result ) {
-+ fprintf(stdout, "Failed to convert UCS-4 0x%08.8x to UTF-8\n", e->c);
-+ rv = PR_FALSE;
-+ continue;
-+ }
-+
-+ if( (len >= sizeof(utf8)) ||
-+ (strlen(e->utf8) != len) ||
-+ (utf8[len] = '\0', 0 != strcmp(e->utf8, utf8)) ) {
-+ fprintf(stdout, "Wrong conversion of UCS-4 0x%08.8x to UTF-8: ", e->c);
-+ dump_utf8("expected", e->utf8, ", ");
-+ dump_utf8("received", utf8, "\n");
-+ rv = PR_FALSE;
-+ continue;
-+ }
-+
-+ result = sec_port_ucs4_utf8_conversion_function(PR_TRUE,
-+ utf8, len, (unsigned char *)&back, sizeof(back), &len);
-+
-+ if( !result ) {
-+ dump_utf8("Failed to convert UTF-8", utf8, "to UCS-4\n");
-+ rv = PR_FALSE;
-+ continue;
-+ }
-+
-+ if( (sizeof(back) != len) || (e->c != back) ) {
-+ dump_utf8("Wrong conversion of UTF-8", utf8, " to UCS-4:");
-+ fprintf(stdout, "expected 0x%08.8x, received 0x%08.8x\n", e->c, back);
-+ rv = PR_FALSE;
-+ continue;
-+ }
-+ }
-+
-+ return rv;
-+}
-+
-+static PRBool
-+test_ucs2_chars
-+(
-+ void
-+)
-+{
-+ PRBool rv = PR_TRUE;
-+ int i;
-+
-+ for( i = 0; i < sizeof(ucs2)/sizeof(ucs2[0]); i++ ) {
-+ struct ucs2 *e = &ucs2[i];
-+ PRBool result;
-+ unsigned char utf8[8];
-+ unsigned int len = 0;
-+ PRUint16 back = 0;
-+
-+ (void)memset(utf8, 0, sizeof(utf8));
-+
-+ result = sec_port_ucs2_utf8_conversion_function(PR_FALSE,
-+ (unsigned char *)&e->c, sizeof(e->c), utf8, sizeof(utf8), &len);
-+
-+ if( !result ) {
-+ fprintf(stdout, "Failed to convert UCS-2 0x%04.4x to UTF-8\n", e->c);
-+ rv = PR_FALSE;
-+ continue;
-+ }
-+
-+ if( (len >= sizeof(utf8)) ||
-+ (strlen(e->utf8) != len) ||
-+ (utf8[len] = '\0', 0 != strcmp(e->utf8, utf8)) ) {
-+ fprintf(stdout, "Wrong conversion of UCS-2 0x%04.4x to UTF-8: ", e->c);
-+ dump_utf8("expected", e->utf8, ", ");
-+ dump_utf8("received", utf8, "\n");
-+ rv = PR_FALSE;
-+ continue;
-+ }
-+
-+ result = sec_port_ucs2_utf8_conversion_function(PR_TRUE,
-+ utf8, len, (unsigned char *)&back, sizeof(back), &len);
-+
-+ if( !result ) {
-+ dump_utf8("Failed to convert UTF-8", utf8, "to UCS-2\n");
-+ rv = PR_FALSE;
-+ continue;
-+ }
-+
-+ if( (sizeof(back) != len) || (e->c != back) ) {
-+ dump_utf8("Wrong conversion of UTF-8", utf8, "to UCS-2:");
-+ fprintf(stdout, "expected 0x%08.8x, received 0x%08.8x\n", e->c, back);
-+ rv = PR_FALSE;
-+ continue;
-+ }
-+ }
-+
-+ return rv;
-+}
-+
-+#ifdef UTF16
-+static PRBool
-+test_utf16_chars
-+(
-+ void
-+)
-+{
-+ PRBool rv = PR_TRUE;
-+ int i;
-+
-+ for( i = 0; i < sizeof(utf16)/sizeof(utf16[0]); i++ ) {
-+ struct utf16 *e = &utf16[i];
-+ PRBool result;
-+ unsigned char utf8[8];
-+ unsigned int len = 0;
-+ PRUint32 back32 = 0;
-+ PRUint16 back[2];
-+
-+ (void)memset(utf8, 0, sizeof(utf8));
-+
-+ result = sec_port_ucs2_utf8_conversion_function(PR_FALSE,
-+ (unsigned char *)&e->w[0], sizeof(e->w), utf8, sizeof(utf8), &len);
-+
-+ if( !result ) {
-+ fprintf(stdout, "Failed to convert UTF-16 0x%04.4x 0x%04.4x to UTF-8\n",
-+ e->w[0], e->w[1]);
-+ rv = PR_FALSE;
-+ continue;
-+ }
-+
-+ result = sec_port_ucs4_utf8_conversion_function(PR_TRUE,
-+ utf8, len, (unsigned char *)&back32, sizeof(back32), &len);
-+
-+ if( 4 != len ) {
-+ fprintf(stdout, "Failed to convert UTF-16 0x%04.4x 0x%04.4x to UTF-8: "
-+ "unexpected len %d\n", e->w[0], e->w[1], len);
-+ rv = PR_FALSE;
-+ continue;
-+ }
-+
-+ utf8[len] = '\0'; /* null-terminate for printing */
-+
-+ if( !result ) {
-+ dump_utf8("Failed to convert UTF-8", utf8, "to UCS-4 (utf-16 test)\n");
-+ rv = PR_FALSE;
-+ continue;
-+ }
-+
-+ if( (sizeof(back32) != len) || (e->c != back32) ) {
-+ fprintf(stdout, "Wrong conversion of UTF-16 0x%04.4x 0x%04.4x ",
-+ e->w[0], e->w[1]);
-+ dump_utf8("to UTF-8", utf8, "and then to UCS-4: ");
-+ if( sizeof(back32) != len ) {
-+ fprintf(stdout, "len is %d\n", len);
-+ } else {
-+ fprintf(stdout, "expected 0x%08.8x, received 0x%08.8x\n", e->c, back32);
-+ }
-+ rv = PR_FALSE;
-+ continue;
-+ }
-+
-+ (void)memset(utf8, 0, sizeof(utf8));
-+ back[0] = back[1] = 0;
-+
-+ result = sec_port_ucs4_utf8_conversion_function(PR_FALSE,
-+ (unsigned char *)&e->c, sizeof(e->c), utf8, sizeof(utf8), &len);
-+
-+ if( !result ) {
-+ fprintf(stdout, "Failed to convert UCS-4 0x%08.8x to UTF-8 (utf-16 test)\n",
-+ e->c);
-+ rv = PR_FALSE;
-+ continue;
-+ }
-+
-+ result = sec_port_ucs2_utf8_conversion_function(PR_TRUE,
-+ utf8, len, (unsigned char *)&back[0], sizeof(back), &len);
-+
-+ if( 4 != len ) {
-+ fprintf(stdout, "Failed to convert UCS-4 0x%08.8x to UTF-8: "
-+ "unexpected len %d\n", e->c, len);
-+ rv = PR_FALSE;
-+ continue;
-+ }
-+
-+ utf8[len] = '\0'; /* null-terminate for printing */
-+
-+ if( !result ) {
-+ dump_utf8("Failed to convert UTF-8", utf8, "to UTF-16\n");
-+ rv = PR_FALSE;
-+ continue;
-+ }
-+
-+ if( (sizeof(back) != len) || (e->w[0] != back[0]) || (e->w[1] != back[1]) ) {
-+ fprintf(stdout, "Wrong conversion of UCS-4 0x%08.8x to UTF-8", e->c);
-+ dump_utf8("", utf8, "and then to UTF-16:");
-+ if( sizeof(back) != len ) {
-+ fprintf(stdout, "len is %d\n", len);
-+ } else {
-+ fprintf(stdout, "expected 0x%04.4x 0x%04.4x, received 0x%04.4x 0x%04.4xx\n",
-+ e->w[0], e->w[1], back[0], back[1]);
-+ }
-+ rv = PR_FALSE;
-+ continue;
-+ }
-+ }
-+
-+ return rv;
-+}
-+#endif /* UTF16 */
-+
-+static PRBool
-+test_iso88591_chars
-+(
-+ void
-+)
-+{
-+ PRBool rv = PR_TRUE;
-+ int i;
-+
-+ for( i = 0; i < sizeof(ucs2)/sizeof(ucs2[0]); i++ ) {
-+ struct ucs2 *e = &ucs2[i];
-+ PRBool result;
-+ unsigned char iso88591;
-+ unsigned char utf8[3];
-+ unsigned int len = 0;
-+
-+ if (e->c > 0xFF) continue;
-+
-+ (void)memset(utf8, 0, sizeof(utf8));
-+ iso88591 = e->c;
-+
-+ result = sec_port_iso88591_utf8_conversion_function(&iso88591,
-+ 1, utf8, sizeof(utf8), &len);
-+
-+ if( !result ) {
-+ fprintf(stdout, "Failed to convert ISO-8859-1 0x%02.2x to UTF-8\n", iso88591);
-+ rv = PR_FALSE;
-+ continue;
-+ }
-+
-+ if( (len >= sizeof(utf8)) ||
-+ (strlen(e->utf8) != len) ||
-+ (utf8[len] = '\0', 0 != strcmp(e->utf8, utf8)) ) {
-+ fprintf(stdout, "Wrong conversion of ISO-8859-1 0x%02.2x to UTF-8: ", iso88591);
-+ dump_utf8("expected", e->utf8, ", ");
-+ dump_utf8("received", utf8, "\n");
-+ rv = PR_FALSE;
-+ continue;
-+ }
-+
-+ }
-+
-+ return rv;
-+}
-+
-+static PRBool
-+test_zeroes
-+(
-+ void
-+)
-+{
-+ PRBool rv = PR_TRUE;
-+ PRBool result;
-+ PRUint32 lzero = 0;
-+ PRUint16 szero = 0;
-+ unsigned char utf8[8];
-+ unsigned int len = 0;
-+ PRUint32 lback = 1;
-+ PRUint16 sback = 1;
-+
-+ (void)memset(utf8, 1, sizeof(utf8));
-+
-+ result = sec_port_ucs4_utf8_conversion_function(PR_FALSE,
-+ (unsigned char *)&lzero, sizeof(lzero), utf8, sizeof(utf8), &len);
-+
-+ if( !result ) {
-+ fprintf(stdout, "Failed to convert UCS-4 0x00000000 to UTF-8\n");
-+ rv = PR_FALSE;
-+ } else if( 1 != len ) {
-+ fprintf(stdout, "Wrong conversion of UCS-4 0x00000000: len = %d\n", len);
-+ rv = PR_FALSE;
-+ } else if( '\0' != *utf8 ) {
-+ fprintf(stdout, "Wrong conversion of UCS-4 0x00000000: expected 00 ,"
-+ "received %02.2x\n", (unsigned int)*utf8);
-+ rv = PR_FALSE;
-+ }
-+
-+ result = sec_port_ucs4_utf8_conversion_function(PR_TRUE,
-+ "", 1, (unsigned char *)&lback, sizeof(lback), &len);
-+
-+ if( !result ) {
-+ fprintf(stdout, "Failed to convert UTF-8 00 to UCS-4\n");
-+ rv = PR_FALSE;
-+ } else if( 4 != len ) {
-+ fprintf(stdout, "Wrong conversion of UTF-8 00 to UCS-4: len = %d\n", len);
-+ rv = PR_FALSE;
-+ } else if( 0 != lback ) {
-+ fprintf(stdout, "Wrong conversion of UTF-8 00 to UCS-4: "
-+ "expected 0x00000000, received 0x%08.8x\n", lback);
-+ rv = PR_FALSE;
-+ }
-+
-+ (void)memset(utf8, 1, sizeof(utf8));
-+
-+ result = sec_port_ucs2_utf8_conversion_function(PR_FALSE,
-+ (unsigned char *)&szero, sizeof(szero), utf8, sizeof(utf8), &len);
-+
-+ if( !result ) {
-+ fprintf(stdout, "Failed to convert UCS-2 0x0000 to UTF-8\n");
-+ rv = PR_FALSE;
-+ } else if( 1 != len ) {
-+ fprintf(stdout, "Wrong conversion of UCS-2 0x0000: len = %d\n", len);
-+ rv = PR_FALSE;
-+ } else if( '\0' != *utf8 ) {
-+ fprintf(stdout, "Wrong conversion of UCS-2 0x0000: expected 00 ,"
-+ "received %02.2x\n", (unsigned int)*utf8);
-+ rv = PR_FALSE;
-+ }
-+
-+ result = sec_port_ucs2_utf8_conversion_function(PR_TRUE,
-+ "", 1, (unsigned char *)&sback, sizeof(sback), &len);
-+
-+ if( !result ) {
-+ fprintf(stdout, "Failed to convert UTF-8 00 to UCS-2\n");
-+ rv = PR_FALSE;
-+ } else if( 2 != len ) {
-+ fprintf(stdout, "Wrong conversion of UTF-8 00 to UCS-2: len = %d\n", len);
-+ rv = PR_FALSE;
-+ } else if( 0 != sback ) {
-+ fprintf(stdout, "Wrong conversion of UTF-8 00 to UCS-2: "
-+ "expected 0x0000, received 0x%04.4x\n", sback);
-+ rv = PR_FALSE;
-+ }
-+
-+ return rv;
-+}
-+
-+static PRBool
-+test_multichars
-+(
-+ void
-+)
-+{
-+ int i;
-+ unsigned int len, lenout;
-+ PRUint32 *ucs4s;
-+ char *ucs4_utf8;
-+ PRUint16 *ucs2s;
-+ char *ucs2_utf8;
-+ void *tmp;
-+ PRBool result;
-+
-+ ucs4s = (PRUint32 *)calloc(sizeof(ucs4)/sizeof(ucs4[0]), sizeof(PRUint32));
-+ ucs2s = (PRUint16 *)calloc(sizeof(ucs2)/sizeof(ucs2[0]), sizeof(PRUint16));
-+
-+ if( ((PRUint32 *)NULL == ucs4s) || ((PRUint16 *)NULL == ucs2s) ) {
-+ fprintf(stderr, "out of memory\n");
-+ exit(1);
-+ }
-+
-+ len = 0;
-+ for( i = 0; i < sizeof(ucs4)/sizeof(ucs4[0]); i++ ) {
-+ ucs4s[i] = ucs4[i].c;
-+ len += strlen(ucs4[i].utf8);
-+ }
-+
-+ ucs4_utf8 = (char *)malloc(len);
-+
-+ len = 0;
-+ for( i = 0; i < sizeof(ucs2)/sizeof(ucs2[0]); i++ ) {
-+ ucs2s[i] = ucs2[i].c;
-+ len += strlen(ucs2[i].utf8);
-+ }
-+
-+ ucs2_utf8 = (char *)malloc(len);
-+
-+ if( ((char *)NULL == ucs4_utf8) || ((char *)NULL == ucs2_utf8) ) {
-+ fprintf(stderr, "out of memory\n");
-+ exit(1);
-+ }
-+
-+ *ucs4_utf8 = '\0';
-+ for( i = 0; i < sizeof(ucs4)/sizeof(ucs4[0]); i++ ) {
-+ strcat(ucs4_utf8, ucs4[i].utf8);
-+ }
-+
-+ *ucs2_utf8 = '\0';
-+ for( i = 0; i < sizeof(ucs2)/sizeof(ucs2[0]); i++ ) {
-+ strcat(ucs2_utf8, ucs2[i].utf8);
-+ }
-+
-+ /* UTF-8 -> UCS-4 */
-+ len = sizeof(ucs4)/sizeof(ucs4[0]) * sizeof(PRUint32);
-+ tmp = calloc(len, 1);
-+ if( (void *)NULL == tmp ) {
-+ fprintf(stderr, "out of memory\n");
-+ exit(1);
-+ }
-+
-+ result = sec_port_ucs4_utf8_conversion_function(PR_TRUE,
-+ ucs4_utf8, strlen(ucs4_utf8), tmp, len, &lenout);
-+ if( !result ) {
-+ fprintf(stdout, "Failed to convert much UTF-8 to UCS-4\n");
-+ goto done;
-+ }
-+
-+ if( lenout != len ) {
-+ fprintf(stdout, "Unexpected length converting much UTF-8 to UCS-4\n");
-+ goto loser;
-+ }
-+
-+ if( 0 != memcmp(ucs4s, tmp, len) ) {
-+ fprintf(stdout, "Wrong conversion of much UTF-8 to UCS-4\n");
-+ goto loser;
-+ }
-+
-+ free(tmp); tmp = (void *)NULL;
-+
-+ /* UCS-4 -> UTF-8 */
-+ len = strlen(ucs4_utf8);
-+ tmp = calloc(len, 1);
-+ if( (void *)NULL == tmp ) {
-+ fprintf(stderr, "out of memory\n");
-+ exit(1);
-+ }
-+
-+ result = sec_port_ucs4_utf8_conversion_function(PR_FALSE,
-+ (unsigned char *)ucs4s, sizeof(ucs4)/sizeof(ucs4[0]) * sizeof(PRUint32),
-+ tmp, len, &lenout);
-+ if( !result ) {
-+ fprintf(stdout, "Failed to convert much UCS-4 to UTF-8\n");
-+ goto done;
-+ }
-+
-+ if( lenout != len ) {
-+ fprintf(stdout, "Unexpected length converting much UCS-4 to UTF-8\n");
-+ goto loser;
-+ }
-+
-+ if( 0 != strncmp(ucs4_utf8, tmp, len) ) {
-+ fprintf(stdout, "Wrong conversion of much UCS-4 to UTF-8\n");
-+ goto loser;
-+ }
-+
-+ free(tmp); tmp = (void *)NULL;
-+
-+ /* UTF-8 -> UCS-2 */
-+ len = sizeof(ucs2)/sizeof(ucs2[0]) * sizeof(PRUint16);
-+ tmp = calloc(len, 1);
-+ if( (void *)NULL == tmp ) {
-+ fprintf(stderr, "out of memory\n");
-+ exit(1);
-+ }
-+
-+ result = sec_port_ucs2_utf8_conversion_function(PR_TRUE,
-+ ucs2_utf8, strlen(ucs2_utf8), tmp, len, &lenout);
-+ if( !result ) {
-+ fprintf(stdout, "Failed to convert much UTF-8 to UCS-2\n");
-+ goto done;
-+ }
-+
-+ if( lenout != len ) {
-+ fprintf(stdout, "Unexpected length converting much UTF-8 to UCS-2\n");
-+ goto loser;
-+ }
-+
-+ if( 0 != memcmp(ucs2s, tmp, len) ) {
-+ fprintf(stdout, "Wrong conversion of much UTF-8 to UCS-2\n");
-+ goto loser;
-+ }
-+
-+ free(tmp); tmp = (void *)NULL;
-+
-+ /* UCS-2 -> UTF-8 */
-+ len = strlen(ucs2_utf8);
-+ tmp = calloc(len, 1);
-+ if( (void *)NULL == tmp ) {
-+ fprintf(stderr, "out of memory\n");
-+ exit(1);
-+ }
-+
-+ result = sec_port_ucs2_utf8_conversion_function(PR_FALSE,
-+ (unsigned char *)ucs2s, sizeof(ucs2)/sizeof(ucs2[0]) * sizeof(PRUint16),
-+ tmp, len, &lenout);
-+ if( !result ) {
-+ fprintf(stdout, "Failed to convert much UCS-2 to UTF-8\n");
-+ goto done;
-+ }
-+
-+ if( lenout != len ) {
-+ fprintf(stdout, "Unexpected length converting much UCS-2 to UTF-8\n");
-+ goto loser;
-+ }
-+
-+ if( 0 != strncmp(ucs2_utf8, tmp, len) ) {
-+ fprintf(stdout, "Wrong conversion of much UCS-2 to UTF-8\n");
-+ goto loser;
-+ }
-+
-+#ifdef UTF16
-+ /* implement me */
-+#endif /* UTF16 */
-+
-+ result = PR_TRUE;
-+ goto done;
-+
-+ loser:
-+ result = PR_FALSE;
-+ done:
-+ free(ucs4s);
-+ free(ucs4_utf8);
-+ free(ucs2s);
-+ free(ucs2_utf8);
-+ if( (void *)NULL != tmp ) free(tmp);
-+ return result;
-+}
-+
-+void
-+byte_order
-+(
-+ void
-+)
-+{
-+ /*
-+ * The implementation (now) expects the 16- and 32-bit characters
-+ * to be in network byte order, not host byte order. Therefore I
-+ * have to byteswap all those test vectors above. hton[ls] may be
-+ * functions, so I have to do this dynamically. If you want to
-+ * use this code to do host byte order conversions, just remove
-+ * the call in main() to this function.
-+ */
-+
-+ int i;
-+
-+ for( i = 0; i < sizeof(ucs4)/sizeof(ucs4[0]); i++ ) {
-+ struct ucs4 *e = &ucs4[i];
-+ e->c = htonl(e->c);
-+ }
-+
-+ for( i = 0; i < sizeof(ucs2)/sizeof(ucs2[0]); i++ ) {
-+ struct ucs2 *e = &ucs2[i];
-+ e->c = htons(e->c);
-+ }
-+
-+#ifdef UTF16
-+ for( i = 0; i < sizeof(utf16)/sizeof(utf16[0]); i++ ) {
-+ struct utf16 *e = &utf16[i];
-+ e->c = htonl(e->c);
-+ e->w[0] = htons(e->w[0]);
-+ e->w[1] = htons(e->w[1]);
-+ }
-+#endif /* UTF16 */
-+
-+ return;
-+}
-+
-+int
-+main
-+(
-+ int argc,
-+ char *argv[]
-+)
-+{
-+ byte_order();
-+
-+ if( test_ucs4_chars() &&
-+ test_ucs2_chars() &&
-+#ifdef UTF16
-+ test_utf16_chars() &&
-+#endif /* UTF16 */
-+ test_iso88591_chars() &&
-+ test_zeroes() &&
-+ test_multichars() &&
-+ PR_TRUE ) {
-+ fprintf(stderr, "PASS\n");
-+ return 1;
-+ } else {
-+ fprintf(stderr, "FAIL\n");
-+ return 0;
-+ }
-+}
-+
-+#endif /* TEST_UTF8 */
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/whatnspr.c 2004-12-13 13:06:46.847375208 +0100
-@@ -0,0 +1,171 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#ifdef DEBUG
-+static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
-+#endif /* DEBUG */
-+
-+#ifndef BASE_H
-+#include "base.h"
-+#endif /* BASE_H */
-+
-+/*
-+ * This file isolates us from differences in NSPR versions.
-+ * We have to detect the library with which we're running at
-+ * runtime, and switch behaviours there. This lets us do
-+ * stuff like load cryptoki modules in Communicator.
-+ *
-+ * Hey, it's the PORT layer all over again!
-+ */
-+
-+static int whatnspr = 0;
-+
-+static int
-+set_whatnspr
-+(
-+ void
-+)
-+{
-+ /*
-+ * The only runtime difference I could find was the
-+ * return value of PR_dtoa. We can't just look for
-+ * a symbol in NSPR >=2, because it'll always be
-+ * found (because we compile against NSPR >=2).
-+ * Maybe we could look for a symbol merely in NSPR 1?
-+ *
-+ */
-+
-+ char buffer[64];
-+ int decpt = 0, sign = 0;
-+ char *rve = (char *)0;
-+ /* extern int PR_dtoa(double, int, int, int *, int *, char **, char *, int); */
-+ int r = (int)PR_dtoa((double)1.0, 0, 5, &decpt, &sign, &rve,
-+ buffer, sizeof(buffer));
-+
-+ switch( r ) {
-+ case 0:
-+ case -1:
-+ whatnspr = 2;
-+ /*
-+ * If we needed to, *now* we could look up "libVersionPoint"
-+ * and get more data there.. except all current NSPR's (up
-+ * to NSPR 4.x at time of writing) still say 2 in their
-+ * version structure.
-+ */
-+ break;
-+ default:
-+ whatnspr = 1;
-+ break;
-+ }
-+
-+ return whatnspr;
-+}
-+
-+#define WHATNSPR (whatnspr ? whatnspr : set_whatnspr())
-+
-+NSS_IMPLEMENT PRStatus
-+nss_NewThreadPrivateIndex
-+(
-+ PRUintn *ip,
-+ PRThreadPrivateDTOR dtor
-+)
-+{
-+ switch( WHATNSPR ) {
-+ case 1:
-+ {
-+ PRLibrary *l = (PRLibrary *)0;
-+ void *f = PR_FindSymbolAndLibrary("PR_NewThreadPrivateID", &l);
-+ typedef PRInt32 (*ntpt)(void);
-+ ntpt ntp = (ntpt) f;
-+
-+ PR_ASSERT((void *)0 != f);
-+
-+ *ip = ntp();
-+ return PR_SUCCESS;
-+ }
-+ case 2:
-+ default:
-+ return PR_NewThreadPrivateIndex(ip, dtor);
-+ }
-+}
-+
-+NSS_IMPLEMENT void *
-+nss_GetThreadPrivate
-+(
-+ PRUintn i
-+)
-+{
-+ switch( WHATNSPR ) {
-+ case 1:
-+ {
-+ PRLibrary *l = (PRLibrary *)0;
-+ void *f = PR_FindSymbolAndLibrary("PR_GetThreadPrivate", &l);
-+ typedef void *(*gtpt)(PRThread *, PRInt32);
-+ gtpt gtp = (gtpt) f;
-+
-+ PR_ASSERT((void *)0 != f);
-+
-+ return gtp(PR_CurrentThread(), i);
-+ }
-+ case 2:
-+ default:
-+ return PR_GetThreadPrivate(i);
-+ }
-+}
-+
-+NSS_IMPLEMENT void
-+nss_SetThreadPrivate
-+(
-+ PRUintn i,
-+ void *v
-+)
-+{
-+ switch( WHATNSPR ) {
-+ case 1:
-+ {
-+ PRLibrary *l = (PRLibrary *)0;
-+ void *f = PR_FindSymbolAndLibrary("PR_SetThreadPrivate", &l);
-+ typedef PRStatus (*stpt)(PRThread *, PRInt32, void *);
-+ stpt stp = (stpt) f;
-+
-+ PR_ASSERT((void *)0 != f);
-+
-+ (void)stp(PR_CurrentThread(), i, v);
-+ return;
-+ }
-+ case 2:
-+ default:
-+ (void)PR_SetThreadPrivate(i, v);
-+ return;
-+ }
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/xauthkid.c 2004-12-13 13:06:46.691398920 +0100
-@@ -0,0 +1,155 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+/*
-+ * X.509 v3 Subject Key Usage Extension
-+ *
-+ */
-+
-+#include "prtypes.h"
-+#include "mcom_db.h"
-+#include "seccomon.h"
-+#include "secdert.h"
-+#include "secoidt.h"
-+#include "secasn1t.h"
-+#include "secasn1.h"
-+#include "secport.h"
-+#include "certt.h"
-+#include "genname.h"
-+#include "secerr.h"
-+
-+
-+const SEC_ASN1Template CERTAuthKeyIDTemplate[] = {
-+ { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(CERTAuthKeyID) },
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_CONTEXT_SPECIFIC | 0,
-+ offsetof(CERTAuthKeyID,keyID), SEC_OctetStringTemplate},
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | 1,
-+ offsetof(CERTAuthKeyID, DERAuthCertIssuer), CERT_GeneralNamesTemplate},
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_CONTEXT_SPECIFIC | 2,
-+ offsetof(CERTAuthKeyID,authCertSerialNumber), SEC_IntegerTemplate},
-+ { 0 }
-+};
-+
-+
-+
-+SECStatus CERT_EncodeAuthKeyID (PRArenaPool *arena, CERTAuthKeyID *value, SECItem *encodedValue)
-+{
-+ SECStatus rv = SECFailure;
-+
-+ PORT_Assert (value);
-+ PORT_Assert (arena);
-+ PORT_Assert (value->DERAuthCertIssuer == NULL);
-+ PORT_Assert (encodedValue);
-+
-+ do {
-+
-+ /* If both of the authCertIssuer and the serial number exist, encode
-+ the name first. Otherwise, it is an error if one exist and the other
-+ is not.
-+ */
-+ if (value->authCertIssuer) {
-+ if (!value->authCertSerialNumber.data) {
-+ PORT_SetError (SEC_ERROR_EXTENSION_VALUE_INVALID);
-+ break;
-+ }
-+
-+ value->DERAuthCertIssuer = cert_EncodeGeneralNames
-+ (arena, value->authCertIssuer);
-+ if (!value->DERAuthCertIssuer) {
-+ PORT_SetError (SEC_ERROR_EXTENSION_VALUE_INVALID);
-+ break;
-+ }
-+ }
-+ else if (value->authCertSerialNumber.data) {
-+ PORT_SetError (SEC_ERROR_EXTENSION_VALUE_INVALID);
-+ break;
-+ }
-+
-+ if (SEC_ASN1EncodeItem (arena, encodedValue, value,
-+ CERTAuthKeyIDTemplate) == NULL)
-+ break;
-+ rv = SECSuccess;
-+
-+ } while (0);
-+ return(rv);
-+}
-+
-+CERTAuthKeyID *
-+CERT_DecodeAuthKeyID (PRArenaPool *arena, SECItem *encodedValue)
-+{
-+ CERTAuthKeyID * value = NULL;
-+ SECStatus rv = SECFailure;
-+ void * mark;
-+ SECItem newEncodedValue;
-+
-+ PORT_Assert (arena);
-+
-+ do {
-+ mark = PORT_ArenaMark (arena);
-+ value = (CERTAuthKeyID*)PORT_ArenaZAlloc (arena, sizeof (*value));
-+ value->DERAuthCertIssuer = NULL;
-+ if (value == NULL)
-+ break;
-+ /* copy the DER into the arena, since Quick DER returns data that points
-+ into the DER input, which may get freed by the caller */
-+ rv = SECITEM_CopyItem(arena, &newEncodedValue, encodedValue);
-+ if ( rv != SECSuccess ) {
-+ break;
-+ }
-+
-+ rv = SEC_QuickDERDecodeItem
-+ (arena, value, CERTAuthKeyIDTemplate, &newEncodedValue);
-+ if (rv != SECSuccess)
-+ break;
-+
-+ value->authCertIssuer = cert_DecodeGeneralNames (arena, value->DERAuthCertIssuer);
-+ if (value->authCertIssuer == NULL)
-+ break;
-+
-+ /* what if the general name contains other format but not URI ?
-+ hl
-+ */
-+ if ((value->authCertSerialNumber.data && !value->authCertIssuer) ||
-+ (!value->authCertSerialNumber.data && value->authCertIssuer)){
-+ PORT_SetError (SEC_ERROR_EXTENSION_VALUE_INVALID);
-+ break;
-+ }
-+ } while (0);
-+
-+ if (rv != SECSuccess) {
-+ PORT_ArenaRelease (arena, mark);
-+ return ((CERTAuthKeyID *)NULL);
-+ }
-+ PORT_ArenaUnmark(arena, mark);
-+ return (value);
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/xbsconst.c 2004-12-13 13:06:46.691398920 +0100
-@@ -0,0 +1,174 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+/*
-+ * X.509 v3 Basic Constraints Extension
-+ */
-+
-+#include "prtypes.h"
-+#include "mcom_db.h"
-+#include "seccomon.h"
-+#include "secdert.h"
-+#include "secoidt.h"
-+#include "secasn1t.h"
-+#include "secasn1.h"
-+#include "certt.h"
-+#include "secder.h"
-+#include "prprf.h"
-+#include "secerr.h"
-+
-+typedef struct EncodedContext{
-+ SECItem isCA;
-+ SECItem pathLenConstraint;
-+ SECItem encodedValue;
-+ PRArenaPool *arena;
-+}EncodedContext;
-+
-+static const SEC_ASN1Template CERTBasicConstraintsTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(EncodedContext) },
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_BOOLEAN, /* XXX DER_DEFAULT */
-+ offsetof(EncodedContext,isCA)},
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_INTEGER,
-+ offsetof(EncodedContext,pathLenConstraint) },
-+ { 0, }
-+};
-+
-+static unsigned char hexTrue = 0xff;
-+static unsigned char hexFalse = 0x00;
-+
-+#define GEN_BREAK(status) rv = status; break;
-+
-+SECStatus CERT_EncodeBasicConstraintValue
-+ (PRArenaPool *arena, CERTBasicConstraints *value, SECItem *encodedValue)
-+{
-+ EncodedContext encodeContext;
-+ PRArenaPool *our_pool = NULL;
-+ SECStatus rv = SECSuccess;
-+
-+ do {
-+ PORT_Memset (&encodeContext, 0, sizeof (encodeContext));
-+ if (!value->isCA && value->pathLenConstraint >= 0) {
-+ PORT_SetError (SEC_ERROR_EXTENSION_VALUE_INVALID);
-+ GEN_BREAK (SECFailure);
-+ }
-+
-+ encodeContext.arena = arena;
-+ if (value->isCA == PR_TRUE) {
-+ encodeContext.isCA.data = &hexTrue ;
-+ encodeContext.isCA.len = 1;
-+ }
-+
-+ /* If the pathLenConstraint is less than 0, then it should be
-+ * omitted from the encoding.
-+ */
-+ if (value->isCA && value->pathLenConstraint >= 0) {
-+ our_pool = PORT_NewArena (SEC_ASN1_DEFAULT_ARENA_SIZE);
-+ if (our_pool == NULL) {
-+ PORT_SetError (SEC_ERROR_NO_MEMORY);
-+ GEN_BREAK (SECFailure);
-+ }
-+ if (SEC_ASN1EncodeUnsignedInteger
-+ (our_pool, &encodeContext.pathLenConstraint,
-+ (unsigned long)value->pathLenConstraint) == NULL) {
-+ PORT_SetError (SEC_ERROR_NO_MEMORY);
-+ GEN_BREAK (SECFailure);
-+ }
-+ }
-+ if (SEC_ASN1EncodeItem (arena, encodedValue, &encodeContext,
-+ CERTBasicConstraintsTemplate) == NULL) {
-+ GEN_BREAK (SECFailure);
-+ }
-+ } while (0);
-+ if (our_pool)
-+ PORT_FreeArena (our_pool, PR_FALSE);
-+ return(rv);
-+
-+}
-+
-+SECStatus CERT_DecodeBasicConstraintValue
-+ (CERTBasicConstraints *value, SECItem *encodedValue)
-+{
-+ EncodedContext decodeContext;
-+ PRArenaPool *our_pool;
-+ SECStatus rv = SECSuccess;
-+
-+ do {
-+ PORT_Memset (&decodeContext, 0, sizeof (decodeContext));
-+ /* initialize the value just in case we got "0x30 00", or when the
-+ pathLenConstraint is omitted.
-+ */
-+ decodeContext.isCA.data =&hexFalse;
-+ decodeContext.isCA.len = 1;
-+
-+ our_pool = PORT_NewArena (SEC_ASN1_DEFAULT_ARENA_SIZE);
-+ if (our_pool == NULL) {
-+ PORT_SetError (SEC_ERROR_NO_MEMORY);
-+ GEN_BREAK (SECFailure);
-+ }
-+
-+ rv = SEC_QuickDERDecodeItem
-+ (our_pool, &decodeContext, CERTBasicConstraintsTemplate, encodedValue);
-+ if (rv == SECFailure)
-+ break;
-+
-+ value->isCA = decodeContext.isCA.data
-+ ? (PRBool)(decodeContext.isCA.data[0] != 0)
-+ : PR_FALSE;
-+ if (decodeContext.pathLenConstraint.data == NULL) {
-+ /* if the pathLenConstraint is not encoded, and the current setting
-+ is CA, then the pathLenConstraint should be set to a negative number
-+ for unlimited certificate path.
-+ */
-+ if (value->isCA)
-+ value->pathLenConstraint = CERT_UNLIMITED_PATH_CONSTRAINT;
-+ } else if (value->isCA) {
-+ long len = DER_GetInteger (&decodeContext.pathLenConstraint);
-+ if (len < 0 || len == LONG_MAX) {
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ GEN_BREAK (SECFailure);
-+ }
-+ value->pathLenConstraint = len;
-+ } else {
-+ /* here we get an error where the subject is not a CA, but
-+ the pathLenConstraint is set */
-+ PORT_SetError (SEC_ERROR_BAD_DER);
-+ GEN_BREAK (SECFailure);
-+ break;
-+ }
-+
-+ } while (0);
-+ PORT_FreeArena (our_pool, PR_FALSE);
-+ return (rv);
-+
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/xconst.c 2004-12-13 13:06:46.691398920 +0100
-@@ -0,0 +1,257 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+/*
-+ * X.509 Extension Encoding
-+ */
-+
-+#include "prtypes.h"
-+#include "mcom_db.h"
-+#include "seccomon.h"
-+#include "secdert.h"
-+#include "secoidt.h"
-+#include "secasn1t.h"
-+#include "secasn1.h"
-+#include "certt.h"
-+#include "secder.h"
-+#include "prprf.h"
-+#include "xconst.h"
-+#include "genname.h"
-+#include "secasn1.h"
-+#include "secerr.h"
-+
-+
-+static const SEC_ASN1Template CERTSubjectKeyIDTemplate[] = {
-+ { SEC_ASN1_OCTET_STRING }
-+};
-+
-+
-+static const SEC_ASN1Template CERTIA5TypeTemplate[] = {
-+ { SEC_ASN1_IA5_STRING }
-+};
-+
-+
-+static const SEC_ASN1Template CERTPrivateKeyUsagePeriodTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(PKUPEncodedContext) },
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_CONTEXT_SPECIFIC | 0,
-+ offsetof(PKUPEncodedContext, notBefore), SEC_GeneralizedTimeTemplate},
-+ { SEC_ASN1_OPTIONAL | SEC_ASN1_CONTEXT_SPECIFIC | 1,
-+ offsetof(PKUPEncodedContext, notAfter), SEC_GeneralizedTimeTemplate},
-+ { 0, }
-+};
-+
-+
-+const SEC_ASN1Template CERTAltNameTemplate[] = {
-+ { SEC_ASN1_CONSTRUCTED, offsetof(AltNameEncodedContext, encodedGenName),
-+ CERT_GeneralNamesTemplate}
-+};
-+
-+const SEC_ASN1Template CERTAuthInfoAccessItemTemplate[] = {
-+ { SEC_ASN1_SEQUENCE,
-+ 0, NULL, sizeof(CERTAuthInfoAccess) },
-+ { SEC_ASN1_OBJECT_ID,
-+ offsetof(CERTAuthInfoAccess, method) },
-+ { SEC_ASN1_ANY,
-+ offsetof(CERTAuthInfoAccess, derLocation) },
-+ { 0, }
-+};
-+
-+const SEC_ASN1Template CERTAuthInfoAccessTemplate[] = {
-+ { SEC_ASN1_SEQUENCE_OF, 0, CERTAuthInfoAccessItemTemplate }
-+};
-+
-+
-+SECStatus
-+CERT_EncodeSubjectKeyID(PRArenaPool *arena, char *value, int len, SECItem *encodedValue)
-+{
-+ SECItem encodeContext;
-+ SECStatus rv = SECSuccess;
-+
-+
-+ PORT_Memset (&encodeContext, 0, sizeof (encodeContext));
-+
-+ if (value != NULL) {
-+ encodeContext.data = (unsigned char *)value;
-+ encodeContext.len = len;
-+ }
-+ if (SEC_ASN1EncodeItem (arena, encodedValue, &encodeContext,
-+ CERTSubjectKeyIDTemplate) == NULL) {
-+ rv = SECFailure;
-+ }
-+
-+ return(rv);
-+}
-+
-+
-+SECStatus
-+CERT_EncodePublicKeyUsagePeriod(PRArenaPool *arena, PKUPEncodedContext *pkup, SECItem *encodedValue)
-+{
-+ SECStatus rv = SECSuccess;
-+
-+ if (SEC_ASN1EncodeItem (arena, encodedValue, pkup,
-+ CERTPrivateKeyUsagePeriodTemplate) == NULL) {
-+ rv = SECFailure;
-+ }
-+ return(rv);
-+}
-+
-+
-+SECStatus
-+CERT_EncodeIA5TypeExtension(PRArenaPool *arena, char *value, SECItem *encodedValue)
-+{
-+ SECItem encodeContext;
-+ SECStatus rv = SECSuccess;
-+
-+
-+ PORT_Memset (&encodeContext, 0, sizeof (encodeContext));
-+
-+ if (value != NULL) {
-+ encodeContext.data = (unsigned char *)value;
-+ encodeContext.len = strlen(value);
-+ }
-+ if (SEC_ASN1EncodeItem (arena, encodedValue, &encodeContext,
-+ CERTIA5TypeTemplate) == NULL) {
-+ rv = SECFailure;
-+ }
-+
-+ return(rv);
-+}
-+
-+SECStatus
-+CERT_EncodeAltNameExtension(PRArenaPool *arena, CERTGeneralName *value, SECItem *encodedValue)
-+{
-+ SECItem **encodedGenName;
-+ SECStatus rv = SECSuccess;
-+
-+ encodedGenName = cert_EncodeGeneralNames(arena, value);
-+ if (SEC_ASN1EncodeItem (arena, encodedValue, &encodedGenName,
-+ CERT_GeneralNamesTemplate) == NULL) {
-+ rv = SECFailure;
-+ }
-+
-+ return rv;
-+}
-+
-+CERTGeneralName *
-+CERT_DecodeAltNameExtension(PRArenaPool *arena, SECItem *EncodedAltName)
-+{
-+ SECStatus rv = SECSuccess;
-+ AltNameEncodedContext encodedContext;
-+
-+ encodedContext.encodedGenName = NULL;
-+ PORT_Memset(&encodedContext, 0, sizeof(AltNameEncodedContext));
-+ rv = SEC_ASN1DecodeItem (arena, &encodedContext, CERT_GeneralNamesTemplate,
-+ EncodedAltName);
-+ if (rv == SECFailure) {
-+ goto loser;
-+ }
-+ if (encodedContext.encodedGenName && encodedContext.encodedGenName[0])
-+ return cert_DecodeGeneralNames(arena, encodedContext.encodedGenName);
-+ /* Extension contained an empty GeneralNames sequence */
-+ /* Treat as extension not found */
-+ PORT_SetError(SEC_ERROR_EXTENSION_NOT_FOUND);
-+loser:
-+ return NULL;
-+}
-+
-+
-+SECStatus
-+CERT_EncodeNameConstraintsExtension(PRArenaPool *arena,
-+ CERTNameConstraints *value,
-+ SECItem *encodedValue)
-+{
-+ SECStatus rv = SECSuccess;
-+
-+ rv = cert_EncodeNameConstraints(value, arena, encodedValue);
-+ return rv;
-+}
-+
-+
-+CERTNameConstraints *
-+CERT_DecodeNameConstraintsExtension(PRArenaPool *arena,
-+ SECItem *encodedConstraints)
-+{
-+ return cert_DecodeNameConstraints(arena, encodedConstraints);
-+}
-+
-+
-+CERTAuthInfoAccess **
-+cert_DecodeAuthInfoAccessExtension(PRArenaPool *arena,
-+ SECItem *encodedExtension)
-+{
-+ CERTAuthInfoAccess **info = NULL;
-+ SECStatus rv;
-+ int i;
-+
-+ rv = SEC_ASN1DecodeItem(arena, &info, CERTAuthInfoAccessTemplate,
-+ encodedExtension);
-+ if (rv != SECSuccess || info == NULL) {
-+ return NULL;
-+ }
-+
-+ for (i = 0; info[i] != NULL; i++) {
-+ info[i]->location = CERT_DecodeGeneralName(arena,
-+ &(info[i]->derLocation),
-+ NULL);
-+ }
-+ return info;
-+}
-+
-+SECStatus
-+cert_EncodeAuthInfoAccessExtension(PRArenaPool *arena,
-+ CERTAuthInfoAccess **info,
-+ SECItem *dest)
-+{
-+ SECItem *dummy;
-+ int i;
-+
-+ PORT_Assert(info != NULL);
-+ PORT_Assert(dest != NULL);
-+ if (info == NULL || dest == NULL) {
-+ return SECFailure;
-+ }
-+
-+ for (i = 0; info[i] != NULL; i++) {
-+ if (CERT_EncodeGeneralName(info[i]->location, &(info[i]->derLocation),
-+ arena) == NULL)
-+ /* Note that this may leave some of the locations filled in. */
-+ return SECFailure;
-+ }
-+ dummy = SEC_ASN1EncodeItem(arena, dest, &info,
-+ CERTAuthInfoAccessTemplate);
-+ if (dummy == NULL) {
-+ return SECFailure;
-+ }
-+ return SECSuccess;
-+}
---- /dev/null 2004-04-06 15:27:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/xconst.h 2004-12-13 15:50:15.978160664 +0100
-@@ -0,0 +1,82 @@
-+/*
-+ * The contents of this file are subject to the Mozilla Public
-+ * License Version 1.1 (the "License"); you may not use this file
-+ * except in compliance with the License. You may obtain a copy of
-+ * the License at http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS
-+ * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-+ * implied. See the License for the specific language governing
-+ * rights and limitations under the License.
-+ *
-+ * The Original Code is the Netscape security libraries.
-+ *
-+ * The Initial Developer of the Original Code is Netscape
-+ * Communications Corporation. Portions created by Netscape are
-+ * Copyright (C) 1994-2000 Netscape Communications Corporation. All
-+ * Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *
-+ * Alternatively, the contents of this file may be used under the
-+ * terms of the GNU General Public License Version 2 or later (the
-+ * "GPL"), in which case the provisions of the GPL are applicable
-+ * instead of those above. If you wish to allow use of your
-+ * version of this file only under the terms of the GPL and not to
-+ * allow others to use your version of this file under the MPL,
-+ * indicate your decision by deleting the provisions above and
-+ * replace them with the notice and other provisions required by
-+ * the GPL. If you do not delete the provisions above, a recipient
-+ * may use your version of this file under either the MPL or the
-+ * GPL.
-+ */
-+
-+#include "certt.h"
-+
-+typedef struct PKUPEncodedContext{
-+ SECItem notBefore;
-+ SECItem notAfter;
-+ /* SECItem encodedValue; */
-+ PRArenaPool *arena;
-+}PKUPEncodedContext;
-+
-+typedef struct AltNameEncodedContext{
-+ SECItem **encodedGenName;
-+}AltNameEncodedContext;
-+
-+
-+typedef struct NameConstraint{
-+ CERTGeneralName generalName;
-+ int min;
-+ int max;
-+}NameConstraint;
-+
-+
-+
-+extern SECStatus
-+CERT_EncodePublicKeyUsagePeriod(PRArenaPool *arena, PKUPEncodedContext *pkup,
-+ SECItem *encodedValue);
-+
-+extern SECStatus
-+CERT_EncodeNameConstraintsExtension(PRArenaPool *arena, CERTNameConstraints *value,
-+ SECItem *encodedValue);
-+extern CERTGeneralName *
-+CERT_DecodeAltNameExtension(PRArenaPool *arena, SECItem *EncodedAltName);
-+
-+extern CERTNameConstraints *
-+CERT_DecodeNameConstraintsExtension(PRArenaPool *arena, SECItem *encodedConstraints);
-+
-+extern SECStatus
-+CERT_EncodeSubjectKeyID(PRArenaPool *arena, char *value, int len, SECItem *encodedValue);
-+
-+extern SECStatus
-+CERT_EncodeIA5TypeExtension(PRArenaPool *arena, char *value, SECItem *encodedValue);
-+
-+CERTAuthInfoAccess **
-+cert_DecodeAuthInfoAccessExtension(PRArenaPool *arena,
-+ SECItem *encodedExtension);
-+
-+SECStatus
-+cert_EncodeAuthInfoAccessExtension(PRArenaPool *arena,
-+ CERTAuthInfoAccess **info,
-+ SECItem *dest);
diff --git a/patches/src680/internal-nss-xmlsecurity.diff b/patches/src680/internal-nss-xmlsecurity.diff
deleted file mode 100644
index eca7008e7..000000000
--- a/patches/src680/internal-nss-xmlsecurity.diff
+++ /dev/null
@@ -1,99 +0,0 @@
---- xmlsecurity/source/xmlsec/nss/makefile.mk-old 2005-09-22 23:00:52.000000000 +0200
-+++ xmlsecurity/source/xmlsec/nss/makefile.mk 2005-09-22 23:03:16.000000000 +0200
-@@ -150,7 +150,95 @@
- SLOFILES+=\
- $(SLO)$/systemxmlsec.obj
- .ENDIF
--
-+
-+.IF "$(SYSTEM_MOZILLA)" == "YES" && "$(MOZ_NSS_HACK)" == "YES"
-+SOLARINC += -I$(MOZ_INC)$/dbm
-+CDEFS += -DNSS_3_4_CODE
-+SLOFILES += \
-+ $(SLO)$/alg1485.obj \
-+ $(SLO)$/arena.obj \
-+ $(SLO)$/asymmkey.obj \
-+ $(SLO)$/certdb.obj \
-+ $(SLO)$/certdecode.obj \
-+ $(SLO)$/certificate.obj \
-+ $(SLO)$/certv3.obj \
-+ $(SLO)$/certxutl.obj \
-+ $(SLO)$/ckhelper.obj \
-+ $(SLO)$/crl.obj \
-+ $(SLO)$/cryptocontext.obj \
-+ $(SLO)$/derdec.obj \
-+ $(SLO)$/derenc.obj \
-+ $(SLO)$/dersubr.obj \
-+ $(SLO)$/dertime.obj \
-+ $(SLO)$/devmod.obj \
-+ $(SLO)$/devslot.obj \
-+ $(SLO)$/devtoken.obj \
-+ $(SLO)$/devutil.obj \
-+ $(SLO)$/dev3hack.obj \
-+ $(SLO)$/dsautil.obj \
-+ $(SLO)$/error.obj \
-+ $(SLO)$/errorval.obj \
-+ $(SLO)$/genname.obj \
-+ $(SLO)$/hash.obj \
-+ $(SLO)$/hashops.obj \
-+ $(SLO)$/item.obj \
-+ $(SLO)$/libc.obj \
-+ $(SLO)$/list.obj \
-+ $(SLO)$/nssb64d.obj \
-+ $(SLO)$/nssb64e.obj \
-+ $(SLO)$/nssilock.obj \
-+ $(SLO)$/nsslocks.obj \
-+ $(SLO)$/nssrwlk.obj \
-+ $(SLO)$/pkibase.obj \
-+ $(SLO)$/pkistore.obj \
-+ $(SLO)$/pki3hack.obj \
-+ $(SLO)$/pk11cert.obj \
-+ $(SLO)$/pk11err.obj \
-+ $(SLO)$/pk11kea.obj \
-+ $(SLO)$/pk11list.obj \
-+ $(SLO)$/pk11load.obj \
-+ $(SLO)$/pk11pars.obj \
-+ $(SLO)$/pk11pbe.obj \
-+ $(SLO)$/pk11pk12.obj \
-+ $(SLO)$/pk11pqg.obj \
-+ $(SLO)$/pk11sdr.obj \
-+ $(SLO)$/pk11skey.obj \
-+ $(SLO)$/pk11slot.obj \
-+ $(SLO)$/pk11util.obj \
-+ $(SLO)$/polcyxtn.obj \
-+ $(SLO)$/portreg.obj \
-+ $(SLO)$/pqgutil.obj \
-+ $(SLO)$/quickder.obj \
-+ $(SLO)$/secalgid.obj \
-+ $(SLO)$/secasn1d.obj \
-+ $(SLO)$/secasn1e.obj \
-+ $(SLO)$/secasn1u.obj \
-+ $(SLO)$/secdig.obj \
-+ $(SLO)$/secinit.obj \
-+ $(SLO)$/secitem.obj \
-+ $(SLO)$/seckey.obj \
-+ $(SLO)$/secname.obj \
-+ $(SLO)$/secoid.obj \
-+ $(SLO)$/secplcy.obj \
-+ $(SLO)$/secport.obj \
-+ $(SLO)$/secsign.obj \
-+ $(SLO)$/sectime.obj \
-+ $(SLO)$/secvfy.obj \
-+ $(SLO)$/sechash.obj \
-+ $(SLO)$/stanpcertdb.obj \
-+ $(SLO)$/symmkey.obj \
-+ $(SLO)$/tdcache.obj \
-+ $(SLO)$/tracker.obj \
-+ $(SLO)$/trustdomain.obj \
-+ $(SLO)$/base_utf8.obj \
-+ $(SLO)$/util_utf8.obj \
-+ $(SLO)$/whatnspr.obj \
-+ $(SLO)$/xauthkid.obj \
-+ $(SLO)$/xbsconst.obj \
-+ $(SLO)$/xconst.obj
-+
-+.ENDIF # "$(SYSTEM_MOZILLA)" == "YES"
-+
- .ENDIF
-
- # --- Targets ------------------------------------------------------
diff --git a/patches/src680/internal-nss.diff b/patches/src680/internal-nss.diff
deleted file mode 100644
index 9f96c8a41..000000000
--- a/patches/src680/internal-nss.diff
+++ /dev/null
@@ -1,43 +0,0 @@
-Index: config_office/configure.in
-===================================================================
-RCS file: /cvs/tools/config_office/configure.in,v
-retrieving revision 1.112
-diff -u -r1.112 configure.in
---- config_office/configure.in 30 Mar 2005 11:38:08 -0000 1.112
-+++ config_office/configure.in 4 Apr 2005 11:49:17 -0000
-@@ -2516,9 +2556,7 @@
- CPPFLAGS="$CPPFLAGS $MOZ_NSS_CFLAGS"
- LDFLAGS="$LDFLAGS $MOZ_NSS_LIBS"
- AC_CHECK_LIB(nss3, PK11_GetCertFromPrivateKey, [],
-- [AC_MSG_ERROR(PK11_GetCertFromPrivateKey missing but needed.
--See https://bugzilla.mozilla.org/show_bug.cgi?id=262274.
--Fixed since nss 3.9.3 (contained by e.g. mozilla >= 1.7.5))], [])
-+ [MOZ_NSS_HACK=YES],[])
- LDFLAGS="$save_LDFLAGS"
- CPPFLAGS="$save_CPPFLAGS"
- LIBS="$save_LIBS"
-@@ -2637,6 +2675,7 @@
- AC_SUBST(MOZ_LIB_XPCOM)
- AC_SUBST(MOZ_NSS_CFLAGS)
- AC_SUBST(MOZ_LDAP_CFLAGS)
-+AC_SUBST(MOZ_NSS_HACK)
-
- dnl ===================================================================
- dnl Check for system sane
-
-
-Index: config_office/set_soenv.in
-===================================================================
-RCS file: /cvs/tools/config_office/set_soenv.in,v
-retrieving revision 1.55
-diff -u -r1.55 set_soenv.in
---- config_office/set_soenv.in 30 Mar 2005 11:38:22 -0000 1.55
-+++ config_office/set_soenv.in 4 Apr 2005 11:51:09 -0000
-@@ -1670,6 +1678,7 @@
- ToFile( "MOZ_LIB_XPCOM", "@MOZ_LIB_XPCOM@", "e" );
- ToFile( "MOZ_NSS_CFLAGS", "@MOZ_NSS_CFLAGS@", "e" );
- ToFile( "MOZ_LDAP_CFLAGS", "@MOZ_LDAP_CFLAGS@", "e" );
-+ToFile( "MOZ_NSS_HACK", "@MOZ_NSS_HACK@", "e" );
- ToFile( "WITH_FONTS", "@WITH_FONTS@", "e" );
- ToFile( "WITH_BINFILTER", "@WITH_BINFILTER@", "e" );
- ToFile( "BUILD_TYPE", "@BUILD_TYPE@", "e" );
diff --git a/patches/src680/java-1_5-enum-reserved-word.diff b/patches/src680/java-1_5-enum-reserved-word.diff
deleted file mode 100755
index e7d751f90..000000000
--- a/patches/src680/java-1_5-enum-reserved-word.diff
+++ /dev/null
@@ -1,48 +0,0 @@
---- xmerge/source/xmerge/java/org/openoffice/xmerge/ConvertData.java.old 2005-12-14 16:21:42.000000000 +0200
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/ConvertData.java 2005-12-14 16:22:05.000000000 +0200
-@@ -127,8 +127,8 @@
- * <code>Vector</code> of <code>Document</code> objects.
- */
- public Enumeration getDocumentEnumeration() {
-- Enumeration enum = v.elements();
-- return (enum);
-+ Enumeration enumerate = v.elements();
-+ return (enumerate);
- }
-
-
---- xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/xslt/DocumentDeserializerImpl.java.old 2005-12-14 16:22:34.000000000 +0200
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/xslt/DocumentDeserializerImpl.java 2005-12-14 16:22:59.000000000 +0200
-@@ -155,14 +155,14 @@
- */
- public Document deserialize() throws ConvertException, IOException {
- log("\nFound the XSLT deserializer");
-- Enumeration enum = cd.getDocumentEnumeration();
-+ Enumeration enumerate = cd.getDocumentEnumeration();
- org.w3c.dom.Document domDoc=null;
- DOMDocument docOut=null;
- GenericOfficeDocument doc = null;
- ByteArrayOutputStream baos =null;
- GenericOfficeDocument sxwDoc = new GenericOfficeDocument("output");
-- while (enum.hasMoreElements()) {
-- docOut = (DOMDocument) enum.nextElement();
-+ while (enumerate.hasMoreElements()) {
-+ docOut = (DOMDocument) enumerate.nextElement();
- }
- domDoc = docOut.getContentDOM();
- try{
---- xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/xslt/PluginFactoryImpl.java.old 2005-12-14 16:23:11.000000000 +0200
-+++ xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/xslt/PluginFactoryImpl.java 2005-12-14 16:23:27.000000000 +0200
-@@ -183,9 +183,9 @@
- String ext= ".txt";
- String mimeType = null;
- ConverterInfo ci = this.getConverterInfo();
-- Enumeration enum = ci.getDeviceMime();
-- while (enum.hasMoreElements()) {
-- mimeType= (String) enum.nextElement();
-+ Enumeration enumerate = ci.getDeviceMime();
-+ while (enumerate.hasMoreElements()) {
-+ mimeType= (String) enumerate.nextElement();
- }
- try {
- props.load(is);
diff --git a/patches/src680/jvmfwk-gij-4.0.diff b/patches/src680/jvmfwk-gij-4.0.diff
deleted file mode 100644
index 9ff0e72d1..000000000
--- a/patches/src680/jvmfwk-gij-4.0.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: plugins/sunmajor/pluginlib/gnujre.cxx
-===================================================================
-RCS file: /cvs/udk/jvmfwk/plugins/sunmajor/pluginlib/gnujre.cxx,v
-retrieving revision 1.2
-diff -u -u -r1.2 gnujre.cxx
---- jvmfwk/plugins/sunmajor/pluginlib/gnujre.cxx 25 Jan 2005 15:18:46 -0000 1.2
-+++ jvmfwk/plugins/sunmajor/pluginlib/gnujre.cxx 17 Mar 2005 13:13:39 -0000
-@@ -81,6 +81,8 @@
- static char const * ar[] = {
- "gij",
- "bin/gij",
-+ "gij-4.0",
-+ "bin/gij-4.0"
- };
- *size = sizeof (ar) / sizeof (char*);
- return ar;
diff --git a/patches/src680/kab-stl-vector-h.diff b/patches/src680/kab-stl-vector-h.diff
deleted file mode 100644
index 7d0abd7f3..000000000
--- a/patches/src680/kab-stl-vector-h.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- connectivity/source/drivers/kab/korder.hxx 19 Dez 2005 17:53:56 +0100 1.2
-+++ connectivity/source/drivers/kab/korder.hxx 28 Dez 2005 17:31:53 +0100
-@@ -40,7 +40,5 @@
- #include "rtl/ustring.hxx"
- #endif
--#ifndef _STLP_VECTOR
--#include "stl/vector"
-+#include <vector>
--#endif
-
- #include <kabc/addressee.h>
diff --git a/patches/src680/key-tilde.diff b/patches/src680/key-tilde.diff
deleted file mode 100644
index 9b39da2ca..000000000
--- a/patches/src680/key-tilde.diff
+++ /dev/null
@@ -1,150 +0,0 @@
---- vcl/inc/keycodes.hxx 9 Sep 2005 11:07:18 -0000 1.6
-+++ vcl/inc/keycodes.hxx 1 Nov 2005 14:09:20 -0000
-@@ -44,6 +44,7 @@
- // - KeyCode-Types -
- // -----------------
-
-+// This enum must match offapi/com/sun/star/awt/Key.idl
- // By changes you must also change: rsc/vclrsc.hxx
-
- // Key-Gruppen
-@@ -157,10 +158,12 @@
- #define KEY_PROPERTIES ((USHORT)(KEYGROUP_MISC+23))
- #define KEY_FRONT ((USHORT)(KEYGROUP_MISC+24))
- #define KEY_CONTEXTMENU ((USHORT)(KEYGROUP_MISC+25))
--#define KEY_MENU ((USHORT)(KEYGROUP_MISC+26))
--#define KEY_HELP ((USHORT)(KEYGROUP_MISC+27))
-+#define KEY_HELP ((USHORT)(KEYGROUP_MISC+26))
-+#define KEY_MENU ((USHORT)(KEYGROUP_MISC+27))
- #define KEY_HANGUL_HANJA ((USHORT)(KEYGROUP_MISC+28))
- #define KEY_DECIMAL ((USHORT)(KEYGROUP_MISC+29))
-+#define KEY_TILDE ((USHORT)(KEYGROUP_MISC+30))
-+#define KEY_QUOTELEFT ((USHORT)(KEYGROUP_MISC+31))
-
- #define KEY_CODE ((USHORT)0x0FFF)
-
-Index: vcl/unx/gtk/window/gtkframe.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/gtk/window/gtkframe.cxx,v
-retrieving revision 1.34.8.1
-diff -u -p -u -r1.34.8.1 gtkframe.cxx
---- vcl/unx/gtk/window/gtkframe.cxx 5 Oct 2005 10:28:28 -0000 1.34.8.1
-+++ vcl/unx/gtk/window/gtkframe.cxx 18 Oct 2005 10:44:11 -0000
-@@ -162,6 +162,9 @@ static USHORT GetKeyCode( guint keyval )
- case GDK_Redo: nCode = KEY_REPEAT; break;
- case GDK_KP_Decimal:
- case GDK_KP_Separator: nCode = KEY_DECIMAL; break;
-+ case GDK_asciitilde: nCode = KEY_TILDE; break;
-+ case GDK_leftsinglequotemark:
-+ case GDK_quoteleft: nCode = KEY_QUOTELEFT; break;
- }
- }
- return nCode;
-
-Index: vcl/unx/source/app/saldisp.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/source/app/saldisp.cxx,v
-retrieving revision 1.67
-diff -u -p -u -r1.67 saldisp.cxx
---- vcl/unx/source/app/saldisp.cxx 9 Sep 2005 13:00:41 -0000 1.67
-+++ vcl/unx/source/app/saldisp.cxx 18 Oct 2005 10:45:06 -0000
-@@ -1508,6 +1508,14 @@ USHORT SalDisplay::GetKeyCode( KeySym ke
- nKey = KEY_DIVIDE;
- *pcPrintable = '/';
- break;
-+ case XK_asciitilde:
-+ nKey = KEY_TILDE;
-+ *pcPrintable = '~';
-+ break;
-+ case XK_quoteleft:
-+ nKey = KEY_QUOTELEFT;
-+ *pcPrintable = '`';
-+ break;
- }
- }
- else if( IsFunctionKey( keysym ) )
-@@ -1691,6 +1695,12 @@ USHORT SalDisplay::GetKeyCode( KeySym ke
- case XK_slash:
- nKey = KEY_DIVIDE;
- break;
-+ case XK_asciitilde:
-+ nKey = KEY_TILDE;
-+ break;
-+ case XK_quoteleft:
-+ nKey = KEY_QUOTELEFT;
-+ break;
- case XK_period:
- nKey = KEY_POINT;
- break;
-
-Index: framework/collector/cmduicollector.cxx
-===================================================================
-RCS file: /cvs/framework/framework/collector/cmduicollector.cxx,v
-retrieving revision 1.12
-diff -u -p -u -r1.12 cmduicollector.cxx
---- framework/collector/cmduicollector.cxx 8 Sep 2005 23:54:40 -0000 1.12
-+++ framework/collector/cmduicollector.cxx 18 Oct 2005 10:45:49 -0000
-@@ -337,6 +337,11 @@ KeyIdentifierInfo AWTKeyIdentifierMap[]
- {css::awt::Key::FRONT , "KEY_FRONT" },
- {css::awt::Key::CONTEXTMENU , "KEY_CONTEXTMENU"},
- {css::awt::Key::HELP , "KEY_HELP" },
-+ {css::awt::Key::MENU , "KEY_MENU" },
-+ {css::awt::Key::HANGUL_HANJA , "KEY_HANGUL_HANJA"},
-+ {css::awt::Key::DECIMAL , "KEY_DECIMAL" },
-+ {css::awt::Key::TILDE , "KEY_TILDE" },
-+ {css::awt::Key::QUOTELEFT , "KEY_QUOTELEFT" },
- {0 , "" } // mark the end of this array!
- };
-
-
-Index: offapi/com/sun/star/awt/Key.idl
-===================================================================
-RCS file: /cvs/api/offapi/com/sun/star/awt/Key.idl,v
-retrieving revision 1.10
-diff -u -p -u -r1.10 Key.idl
---- offapi/com/sun/star/awt/Key.idl 7 Sep 2005 21:07:36 -0000 1.10
-+++ offapi/com/sun/star/awt/Key.idl 18 Oct 2005 10:46:14 -0000
-@@ -431,6 +431,24 @@ published constants Key
- const short HELP = 1306;
-
- //-------------------------------------------------------------------------
-+
-+ const short MENU = 1307;
-+
-+ //-------------------------------------------------------------------------
-+
-+ const short HANGUL_HANJA = 1308;
-+
-+ //-------------------------------------------------------------------------
-+
-+ const short DECIMAL = 1309;
-+
-+ //-------------------------------------------------------------------------
-+
-+ const short TILDE = 1310;
-+
-+ //-------------------------------------------------------------------------
-+
-+ const short QUOTELEFT = 1311;
-
- };
-
-Index: framework/source/accelerators/keymapping.cxx
-===================================================================
-RCS file: /cvs/framework/framework/source/accelerators/keymapping.cxx,v
-retrieving revision 1.3
-diff -u -p -u -r1.3 keymapping.cxx
---- framework/source/accelerators/keymapping.cxx 9 Sep 2005 01:04:09 -0000 1.3
-+++ framework/source/accelerators/keymapping.cxx 25 Oct 2005 17:08:37 -0000
-@@ -158,6 +158,11 @@ KeyMapping::KeyIdentifierInfo KeyMapping
- {css::awt::Key::FRONT , "KEY_FRONT" },
- {css::awt::Key::CONTEXTMENU , "KEY_CONTEXTMENU"},
- {css::awt::Key::HELP , "KEY_HELP" },
-+ {css::awt::Key::MENU , "KEY_MENU" },
-+ {css::awt::Key::HANGUL_HANJA , "KEY_HANGUL_HANJA"},
-+ {css::awt::Key::DECIMAL , "KEY_DECIMAL" },
-+ {css::awt::Key::TILDE , "KEY_TILDE" },
-+ {css::awt::Key::QUOTELEFT , "KEY_QUOTELEFT" },
- {0 , "" } // mark the end of this array!
- };
-
diff --git a/patches/src680/ld-library-path.diff b/patches/src680/ld-library-path.diff
deleted file mode 100644
index 7f7146841..000000000
--- a/patches/src680/ld-library-path.diff
+++ /dev/null
@@ -1,204 +0,0 @@
---- configmgr/source/cmdtools/configimport.sh 2005-10-10 17:00:52.000000000 +0200
-+++ configmgr/source/cmdtools/configimport.sh 2005-10-10 17:03:39.000000000 +0200
-@@ -91,27 +91,57 @@ fi
- sd_platform=`uname -s`
- case $sd_platform in
- AIX)
-- LIBPATH="$sd_prog":$LIBPATH
-+ if [ $LIBPATH ]; then
-+ SYSTEM_LIBPATH=$LIBPATH
-+ export SYSTEM_LIBPATH
-+ LIBPATH="$sd_prog":$LIBPATH
-+ else
-+ LIBPATH="$sd_prog"
-+ fi
- export LIBPATH
- ;;
-
- Darwin)
-- DYLD_LIBRARY_PATH="$sd_prog":$DYLD_LIBRARY_PATH
-+ if [ $DYLD_LIBRARY_PATH ]; then
-+ SYSTEM_DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH
-+ export SYSTEM_DYLD_LIBRARY_PATH
-+ DYLD_LIBRARY_PATH="$sd_prog":$DYLD_LIBRARY_PATH
-+ else
-+ DYLD_LIBRARY_PATH="$sd_prog"
-+ fi
- export DYLD_LIBRARY_PATH
- ;;
-
- HP-UX)
-- SHLIB_PATH="$sd_prog":/usr/openwin/lib:$SHLIB_PATH
-+ if [ $SHLIB_PATH ]; then
-+ SYSTEM_SHLIB_PATH=$SHLIB_PATH
-+ export SYSTEM_SHLIB_PATH
-+ SHLIB_PATH="$sd_prog":/usr/openwin/lib:$SHLIB_PATH
-+ else
-+ SHLIB_PATH="$sd_prog":/usr/openwin/lib
-+ fi
- export SHLIB_PATH
- ;;
-
- IRIX*)
-- LD_LIBRARYN32_PATH=:"$sd_prog":$LD_LIBRARYN32_PATH
-+ if [ $LD_LIBRARYN32_PATH ]; then
-+ SYSTEM_LD_LIBRARYN32_PATH=$LD_LIBRARYN32_PATH
-+ export SYSTEM_LD_LIBRARYN32_PATH
-+ LD_LIBRARYN32_PATH=:"$sd_prog":$LD_LIBRARYN32_PATH
-+ else
-+ LD_LIBRARYN32_PATH=:"$sd_prog"
-+ fi
- export LD_LIBRARYN32_PATH
- ;;
-
- *)
-- LD_LIBRARY_PATH="$sd_prog":$LD_LIBRARY_PATH
-+ if [ $LD_LIBRARY_PATH ]; then
-+ SYSTEM_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
-+ export SYSTEM_LD_LIBRARY_PATH
-+ LD_LIBRARY_PATH="$sd_prog":$LD_LIBRARY_PATH
-+ else
-+ LD_LIBRARY_PATH="$sd_prog"
-+ fi
- export LD_LIBRARY_PATH
- ;;
- esac
---- desktop/scripts/soffice.sh 2005-09-08 19:02:48.000000000 +0200
-+++ desktop/scripts/soffice.sh 2005-10-20 12:59:08.000000000 +0200
-@@ -81,9 +81,9 @@
-
- # set search path for shared libraries
- sd_platform=`uname -s`
--moz_lib=
-+add_moz_lib=
- for moz_lib_path in $MOZILLA_LIBRARY_PATH /usr/lib /usr/lib/mozilla /usr/lib/mozilla-firefox /usr/lib/mozilla-thunderbird /opt/mozilla/lib /opt/MozillaFirefox/lib /opt/MozillaThunderbird/lib; do
-- test -f $moz_lib_path/libnss3.so && moz_lib="$moz_lib_path" && break;
-+ test -f $moz_lib_path/libnss3.so && add_moz_lib=":$moz_lib_path" && break;
- done
- case $sd_platform in
- AIX)
-@@ -91,9 +91,9 @@
- if [ $LIBPATH ]; then
- SYSTEM_LIBPATH=$LIBPATH
- export SYSTEM_LIBPATH
-- LIBPATH="$sd_prog:$moz_lib":$LIBPATH
-+ LIBPATH="$sd_prog$add_moz_lib":$LIBPATH
- else
-- LIBPATH="$sd_prog:$moz_lib"
-+ LIBPATH="$sd_prog$add_moz_lib"
- fi
- export LIBPATH
- ;;
-@@ -103,9 +103,9 @@
- if [ $DYLD_LIBRARY_PATH ]; then
- SYSTEM_DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH
- export SYSTEM_DYLD_LIBRARY_PATH
-- DYLD_LIBRARY_PATH="$sd_prog:$moz_lib":$DYLD_LIBRARY_PATH
-+ DYLD_LIBRARY_PATH="$sd_prog$add_moz_lib":$DYLD_LIBRARY_PATH
- else
-- DYLD_LIBRARY_PATH="$sd_prog:$moz_lib"
-+ DYLD_LIBRARY_PATH="$sd_prog$add_moz_lib"
- fi
- export DYLD_LIBRARY_PATH
- ;;
-@@ -115,9 +115,9 @@
- if [ $SHLIB_PATH ]; then
- SYSTEM_SHLIB_PATH=$SHLIB_PATH
- export SYSTEM_SHLIB_PATH
-- SHLIB_PATH="$sd_prog:$moz_lib":/usr/openwin/lib:$SHLIB_PATH
-+ SHLIB_PATH="$sd_prog$add_moz_lib":/usr/openwin/lib:$SHLIB_PATH
- else
-- SHLIB_PATH="$sd_prog:$moz_lib":/usr/openwin/lib
-+ SHLIB_PATH="$sd_prog$add_moz_lib":/usr/openwin/lib
- fi
- export SHLIB_PATH
- ;;
-@@ -127,9 +127,9 @@
- if [ $LD_LIBRARYN32_PATH ]; then
- SYSTEM_LD_LIBRARYN32_PATH=$LD_LIBRARYN32_PATH
- export SYSTEM_LD_LIBRARYN32_PATH
-- LD_LIBRARYN32_PATH=:"$sd_prog:$moz_lib":$LD_LIBRARYN32_PATH
-+ LD_LIBRARYN32_PATH=:"$sd_prog$add_moz_lib":$LD_LIBRARYN32_PATH
- else
-- LD_LIBRARYN32_PATH=:"$sd_prog:$moz_lib"
-+ LD_LIBRARYN32_PATH=:"$sd_prog$add_moz_lib"
- fi
- export LD_LIBRARYN32_PATH
- ;;
-@@ -139,9 +139,9 @@
- if [ $LD_LIBRARY_PATH ]; then
- SYSTEM_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
- export SYSTEM_LD_LIBRARY_PATH
-- LD_LIBRARY_PATH="$sd_prog:$moz_lib":$LD_LIBRARY_PATH
-+ LD_LIBRARY_PATH="$sd_prog$add_moz_lib":$LD_LIBRARY_PATH
- else
-- LD_LIBRARY_PATH="$sd_prog:$moz_lib"
-+ LD_LIBRARY_PATH="$sd_prog$add_moz_lib"
- fi
- export LD_LIBRARY_PATH
- ;;
---- desktop/scripts/unopkg.sh 2005-10-10 17:00:52.000000000 +0200
-+++ desktop/scripts/unopkg.sh 2005-10-10 17:03:39.000000000 +0200
-@@ -91,27 +91,57 @@ fi
- sd_platform=`uname -s`
- case $sd_platform in
- AIX)
-- LIBPATH="$sd_prog":$LIBPATH
-+ if [ $LIBPATH ]; then
-+ SYSTEM_LIBPATH=$LIBPATH
-+ export SYSTEM_LIBPATH
-+ LIBPATH="$sd_prog":$LIBPATH
-+ else
-+ LIBPATH="$sd_prog"
-+ fi
- export LIBPATH
- ;;
-
- Darwin)
-- DYLD_LIBRARY_PATH="$sd_prog":$DYLD_LIBRARY_PATH
-+ if [ $DYLD_LIBRARY_PATH ]; then
-+ SYSTEM_DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH
-+ export SYSTEM_DYLD_LIBRARY_PATH
-+ DYLD_LIBRARY_PATH="$sd_prog":$DYLD_LIBRARY_PATH
-+ else
-+ DYLD_LIBRARY_PATH="$sd_prog"
-+ fi
- export DYLD_LIBRARY_PATH
- ;;
-
- HP-UX)
-- SHLIB_PATH="$sd_prog":/usr/openwin/lib:$SHLIB_PATH
-+ if [ $SHLIB_PATH ]; then
-+ SYSTEM_SHLIB_PATH=$SHLIB_PATH
-+ export SYSTEM_SHLIB_PATH
-+ SHLIB_PATH="$sd_prog":/usr/openwin/lib:$SHLIB_PATH
-+ else
-+ SHLIB_PATH="$sd_prog":/usr/openwin/lib
-+ fi
- export SHLIB_PATH
- ;;
-
- IRIX*)
-- LD_LIBRARYN32_PATH=:"$sd_prog":$LD_LIBRARYN32_PATH
-+ if [ $LD_LIBRARYN32_PATH ]; then
-+ SYSTEM_LD_LIBRARYN32_PATH=$LD_LIBRARYN32_PATH
-+ export SYSTEM_LD_LIBRARYN32_PATH
-+ LD_LIBRARYN32_PATH=:"$sd_prog":$LD_LIBRARYN32_PATH
-+ else
-+ LD_LIBRARYN32_PATH=:"$sd_prog"
-+ fi
- export LD_LIBRARYN32_PATH
- ;;
-
- *)
-- LD_LIBRARY_PATH="$sd_prog":$LD_LIBRARY_PATH
-+ if [ $LD_LIBRARY_PATH ]; then
-+ SYSTEM_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
-+ export SYSTEM_LD_LIBRARY_PATH
-+ LD_LIBRARY_PATH="$sd_prog":$LD_LIBRARY_PATH
-+ else
-+ LD_LIBRARY_PATH="$sd_prog"
-+ fi
- export LD_LIBRARY_PATH
- ;;
- esac
diff --git a/patches/src680/leak-registry.diff b/patches/src680/leak-registry.diff
deleted file mode 100644
index c4d51feb8..000000000
--- a/patches/src680/leak-registry.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- registry/inc/registry/reader.hxx.ark 2005-07-02 12:53:12.000000000 +0200
-+++ registry/inc/registry/reader.hxx 2005-07-02 12:53:25.000000000 +0200
-@@ -582,7 +582,7 @@
- if (s == 0) {
- throw std::bad_alloc();
- }
-- return s;
-+ return rtl::OUString( s, SAL_NO_ACQUIRE );
- }
-
- /**
diff --git a/patches/src680/leak-sal-file.diff b/patches/src680/leak-sal-file.diff
deleted file mode 100644
index 0e1a0f858..000000000
--- a/patches/src680/leak-sal-file.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: sal/osl/unx/file.cxx
-===================================================================
-RCS file: /cvs/porting/sal/osl/unx/file.cxx,v
-retrieving revision 1.8
-diff -u -r1.8 file.cxx
---- sal/osl/unx/file.cxx 31 May 2005 17:07:41 -0000 1.8
-+++ sal/osl/unx/file.cxx 14 Jun 2005 15:42:45 -0000
-@@ -474,6 +474,8 @@
- rtl_uString_release( ustrFileName );
-
- /* use path as directory item */
-+ if (*pItem)
-+ rtl_uString_release( (rtl_uString *) *pItem );
- *pItem = (oslDirectoryItem) ustrFilePath;
-
- return osl_File_E_None;
diff --git a/patches/src680/leak-sal-module.diff b/patches/src680/leak-sal-module.diff
deleted file mode 100644
index 3d3fbee83..000000000
--- a/patches/src680/leak-sal-module.diff
+++ /dev/null
@@ -1,15 +0,0 @@
-Index: sal/osl/unx/module.c
-===================================================================
-RCS file: /cvs/porting/sal/osl/unx/module.c,v
-retrieving revision 1.30
-diff -u -r1.30 module.c
---- sal/osl/unx/module.c 30 Mar 2004 16:28:54 -0000 1.30
-+++ sal/osl/unx/module.c 15 Jun 2005 14:42:58 -0000
-@@ -535,6 +535,7 @@
- OSL_ASSERT(*ppLibraryUrl != NULL);
- osl_getFileURLFromSystemPath(*ppLibraryUrl, ppLibraryUrl); // convert it to be a file url
- osl_getAbsoluteFileURL(workDir, *ppLibraryUrl, ppLibraryUrl); // ensure it is an abosolute file url
-+ rtl_uString_release(workDir);
-
- result = sal_True;
- }
diff --git a/patches/src680/leak-sch-3d.diff b/patches/src680/leak-sch-3d.diff
deleted file mode 100644
index fe2b70d9e..000000000
--- a/patches/src680/leak-sch-3d.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: sch/source/core/chtmod3d.cxx
-===================================================================
-RCS file: /cvs/graphics/sch/source/core/chtmod3d.cxx,v
-retrieving revision 1.22
-diff -u -r1.22 chtmod3d.cxx
---- sch/source/core/chtmod3d.cxx 24 Feb 2005 14:07:46 -0000 1.22
-+++ sch/source/core/chtmod3d.cxx 15 Jun 2005 16:42:33 -0000
-@@ -2139,6 +2139,8 @@
- aPolyPolygon.Insert( aPoly );
-
- GetPage( 0 )->RemoveObject( 0 );
-+
-+ delete pTmp;
- }
-
- SchE3dExtrudeObj* pObj=new SchE3dExtrudeObj(aDefltAttr3D,
diff --git a/patches/src680/leak-svx-3d.diff b/patches/src680/leak-svx-3d.diff
deleted file mode 100644
index afcca9762..000000000
--- a/patches/src680/leak-svx-3d.diff
+++ /dev/null
@@ -1,40 +0,0 @@
-Index: svx/source/sdr/properties/e3dsceneproperties.cxx
-===================================================================
-RCS file: /cvs/graphics/svx/source/sdr/properties/e3dsceneproperties.cxx,v
-retrieving revision 1.5
-diff -u -r1.5 e3dsceneproperties.cxx
---- svx/source/sdr/properties/e3dsceneproperties.cxx 7 Mar 2005 17:33:11 -0000 1.5
-+++ svx/source/sdr/properties/e3dsceneproperties.cxx 16 Jun 2005 08:15:05 -0000
-@@ -179,15 +179,15 @@
- if(nCount)
- {
- // Generate filtered ItemSet which contains all but the SDRATTR_3DSCENE items.
-- SfxItemSet& rNewSet = *(rSet.Clone(TRUE));
-- DBG_ASSERT(&rNewSet, "E3dSceneProperties::SetMergedItemSet(): Could not clone ItemSet (!)");
-+ SfxItemSet *rNewSet = rSet.Clone(TRUE);
-+ DBG_ASSERT(rNewSet != NULL, "E3dSceneProperties::SetMergedItemSet(): Could not clone ItemSet (!)");
-
- for(sal_uInt16 b(SDRATTR_3DSCENE_FIRST); b <= SDRATTR_3DSCENE_LAST; b++)
- {
-- rNewSet.ClearItem(b);
-+ rNewSet->ClearItem(b);
- }
-
-- if(rNewSet.Count())
-+ if(rNewSet->Count())
- {
- for(sal_uInt32 a(0L); a < nCount; a++)
- {
-@@ -196,10 +196,11 @@
- if(pObj && pObj->ISA(E3dCompoundObject))
- {
- // set merged ItemSet at contained 3d object.
-- pObj->SetMergedItemSet(rNewSet, bClearAllItems);
-+ pObj->SetMergedItemSet(*rNewSet, bClearAllItems);
- }
- }
- }
-+ delete rNewSet;
- }
-
- // call parent. This will set items on local object, too.
diff --git a/patches/src680/libhunspell-build.diff b/patches/src680/libhunspell-build.diff
deleted file mode 100644
index af13f4ae4..000000000
--- a/patches/src680/libhunspell-build.diff
+++ /dev/null
@@ -1,180 +0,0 @@
---- /dev/null 2005-08-08 19:00:42.412213250 +0200
-+++ libhunspell/prj/build.lst 2005-08-09 16:07:17.000000000 +0200
-@@ -0,0 +1,3 @@
-+lhu libhunspell : solenv NULL
-+lhu libhunspell usr1 - u lhu_mkout NULL
-+lhu libhunspell nmake - u lhu_libhunspell NULL
---- /dev/null 2005-08-08 19:00:42.412213250 +0200
-+++ libhunspell/prj/d.lst 2005-08-09 16:40:42.000000000 +0200
-@@ -0,0 +1,3 @@
-+mkdir: %_DEST%\inc%_EXT%\hunspell
-+..\%__SRC%\lib\libhunspell.a %_DEST%\lib%_EXT%\libhunspell.a
-+..\%__SRC%\inc\*.hxx %_DEST%\inc%_EXT%\libhunspell\*.hxx
---- /dev/null 2005-08-08 19:00:42.412213250 +0200
-+++ libhunspell/makefile.mk 2005-08-09 17:07:32.000000000 +0200
-@@ -0,0 +1,122 @@
-+#*************************************************************************
-+#
-+# $RCSfile$
-+#
-+# $Revision$
-+#
-+# last change: $Author$ $Date$
-+#
-+# The Contents of this file are made available subject to the terms of
-+# either of the following licenses
-+#
-+# - GNU Lesser General Public License Version 2.1
-+# - Sun Industry Standards Source License Version 1.1
-+#
-+# Sun Microsystems Inc., October, 2000
-+#
-+# GNU Lesser General Public License Version 2.1
-+# =============================================
-+# Copyright 2000 by Sun Microsystems, Inc.
-+# 901 San Antonio Road, Palo Alto, CA 94303, USA
-+#
-+# This library is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU Lesser General Public
-+# License version 2.1, as published by the Free Software Foundation.
-+#
-+# This library 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 for more details.
-+#
-+# You should have received a copy of the GNU Lesser General Public
-+# License along with this library; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+# MA 02111-1307 USA
-+#
-+#
-+# Sun Industry Standards Source License Version 1.1
-+# =================================================
-+# The contents of this file are subject to the Sun Industry Standards
-+# Source License Version 1.1 (the "License"); You may not use this file
-+# except in compliance with the License. You may obtain a copy of the
-+# License at http://www.openoffice.org/license.html.
-+#
-+# Software provided under this License is provided on an "AS IS" basis,
-+# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+# See the License for the specific provisions governing your rights and
-+# obligations concerning the Software.
-+#
-+# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+#
-+# Copyright: 2000 by Sun Microsystems, Inc.
-+#
-+# All Rights Reserved.
-+#
-+# Contributor(s): _______________________________________
-+#
-+#
-+#
-+#*************************************************************************
-+
-+PRJ=.
-+
-+PRJNAME=libhunspell
-+TARGET=libhunspell
-+
-+# --- Settings -----------------------------------------------------
-+
-+.INCLUDE : settings.mk
-+
-+# --- Files --------------------------------------------------------
-+
-+.IF "$(ENABLE_HUNSPELL)"=="TRUE"
-+
-+.IF "$(SYSTEM_HUNSPELL)" == "YES"
-+all:
-+ @echo "An already available installation of libhunspell should exist on your system."
-+ @echo "Therefore the version provided here does not need to be built in addition."
-+.ENDIF
-+
-+TARFILE_NAME=hunspell-1.0.8
-+PATCH_FILE_NAME=$(TARFILE_NAME).patch
-+
-+CONFIGURE_DIR=
-+CONFIGURE_ACTION= \
-+ setenv CFLAGS "$(ARCH_FLAGS) -fPIC" && \
-+ setenv CXXFLAGS "$(ARCH_FLAGS) -fPIC" && \
-+ .$/configure
-+CONFIGURE_FLAGS=
-+BUILD_DIR=$(CONFIGURE_DIR)
-+BUILD_ACTION=$(GNUMAKE)
-+
-+OUT2LIB= \
-+ $/src$/hunspell$/libhunspell.a
-+
-+OUT2INC= \
-+ $/src$/hunspell$/affentry.hxx \
-+ $/src$/hunspell$/htypes.hxx \
-+ $/src$/hunspell$/affixmgr.hxx \
-+ $/src$/hunspell$/csutil.hxx \
-+ $/src$/hunspell$/hunspell.hxx \
-+ $/src$/hunspell$/atypes.hxx \
-+ $/src$/hunspell$/dictmgr.hxx \
-+ $/src$/hunspell$/suggestmgr.hxx \
-+ $/src$/hunspell$/baseaffix.hxx \
-+ $/src$/hunspell$/hashmgr.hxx \
-+ $/src$/hunspell$/langnum.hxx
-+
-+# --- Targets ------------------------------------------------------
-+
-+
-+.INCLUDE : set_ext.mk
-+.INCLUDE : target.mk
-+.INCLUDE : tg_ext.mk
-+
-+.ELSE
-+
-+dummy:
-+ @echo "Nothing to build for your platform"
-+
-+.ENDIF
---- /dev/null 2005-08-18 19:43:18.416213500 +0200
-+++ libhunspell/hunspell-1.0.8.patch 2005-08-18 19:15:21.000000000 +0200
-@@ -0,0 +1,40 @@
-+*** misc/hunspell-1.0.8/src/hunspell/dictmgr.cxx 2005-07-19 13:45:06.000000000 +0200
-+--- misc/build/hunspell-1.0.8/src/hunspell/dictmgr.cxx 2005-08-18 19:02:05.000000000 +0200
-+***************
-+*** 19,25 ****
-+ if (pdentry) {
-+ if (parse_file(dictpath,etype)) {
-+ numdict = 0;
-+! fprintf(stderr,"Failure loading dictionary list\n");
-+ fflush(stderr);
-+ }
-+ } else {
-+--- 19,27 ----
-+ if (pdentry) {
-+ if (parse_file(dictpath,etype)) {
-+ numdict = 0;
-+! // temporary disabled the message to do not complain about missing user's
-+! // dictionary.lst, the system one is enough
-+! // fprintf(stderr,"Failure loading dictionary list\n");
-+ fflush(stderr);
-+ }
-+ } else {
-+***************
-+*** 69,75 ****
-+ FILE * dictlst;
-+ dictlst = fopen(dictpath,"r");
-+ if (!dictlst) {
-+! fprintf(stderr,"Error - could not open dictionary description file\n");
-+ return 1;
-+ }
-+
-+--- 71,79 ----
-+ FILE * dictlst;
-+ dictlst = fopen(dictpath,"r");
-+ if (!dictlst) {
-+! // temporary disabled the message to do not complain about missing user's
-+! // dictionary.lst, the system one is enough
-+! // fprintf(stderr,"Error - could not open dictionary description file\n");
-+ return 1;
-+ }
-+
diff --git a/patches/src680/libsb_gcc4_visibility_markup.diff b/patches/src680/libsb_gcc4_visibility_markup.diff
deleted file mode 100644
index f732d3837..000000000
--- a/patches/src680/libsb_gcc4_visibility_markup.diff
+++ /dev/null
@@ -1,1136 +0,0 @@
-diff -ru /home/naren/work/builds/ooo-build-1.9.125.1.pristine/build/src680-m125/basic/inc/basicrt.hxx /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/basic/inc/basicrt.hxx
---- basic/inc/basicrt.hxx 2004-01-19 09:53:19.000000000 -0800
-+++ basic/inc/basicrt.hxx 2005-09-19 14:10:39.000000000 -0700
-@@ -61,12 +61,15 @@
- #ifndef _BASICRT_HXX
- #define _BASICRT_HXX
-
-+#ifndef INCLUDED_SBDLLAPI_H
-+#include "sb/sbdllapi.h"
-+#endif
-
- #include <tools/string.hxx>
- class SbiRuntime;
- class SbErrorStackEntry;
-
--class BasicRuntime
-+class SB_DLLPRIVATE BasicRuntime
- {
- SbiRuntime* pRun;
- public:
-@@ -82,7 +85,7 @@
- BasicRuntime GetNextRuntime();
- };
-
--class BasicErrorStackEntry
-+class SB_DLLPRIVATE BasicErrorStackEntry
- {
- SbErrorStackEntry *pEntry;
- public:
-@@ -95,7 +98,7 @@
- xub_StrLen GetCol2();
- };
-
--class BasicRuntimeAccess
-+class SB_DLLPRIVATE BasicRuntimeAccess
- {
- public:
- static BasicRuntime GetRuntime();
-diff -ru /home/naren/work/builds/ooo-build-1.9.125.1.pristine/build/src680-m125/basic/inc/basmgr.hxx /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/basic/inc/basmgr.hxx
---- basic/inc/basmgr.hxx 2005-01-11 04:04:16.000000000 -0800
-+++ basic/inc/basmgr.hxx 2005-09-29 10:24:54.173446992 -0700
-@@ -80,6 +80,9 @@
- #include <com/sun/star/script/XStarBasicAccess.hpp>
- #endif
-
-+#ifndef INCLUDED_SBDLLAPI_H
-+#include "sb/sbdllapi.h"
-+#endif
-
- // Basic XML Import/Export
- com::sun::star::uno::Reference< com::sun::star::script::XStarBasicAccess >
-@@ -111,7 +114,7 @@
-
- #define BASERR_REASON_STDLIB 0x0100
-
--class BasicError
-+class SB_DLLPUBLIC BasicError
- {
- private:
- ULONG nErrorId;
-@@ -144,7 +147,7 @@
-
-
- // Library password handling for 5.0 documents
--class OldBasicPassword
-+class SB_DLLPUBLIC OldBasicPassword
- {
- public:
- virtual void setLibraryPassword( const String& rLibraryName, const String& rPassword ) = 0;
-@@ -176,7 +179,7 @@
-
- #define LIB_NOTFOUND 0xFFFF
-
--class BasicManager : public SfxBroadcaster
-+class SB_DLLPUBLIC BasicManager : public SfxBroadcaster
- {
- friend class LibraryContainer_Impl;
- friend class BasMgrContainerListenerImpl;
-@@ -191,24 +194,24 @@
-
- BasicManagerImpl* mpImpl;
-
-- void Init();
-+ SB_DLLPRIVATE void Init();
-
- protected:
-- BOOL ImpStoreLibary( StarBASIC* pLib, SotStorage& rStorage ) const;
-- BOOL ImpLoadLibary( BasicLibInfo* pLibInfo ) const;
-- BOOL ImpLoadLibary( BasicLibInfo* pLibInfo, SotStorage* pCurStorage, BOOL bInfosOnly = FALSE ) const;
-- void ImpCreateStdLib( StarBASIC* pParentFromStdLib );
-- void ImpMgrNotLoaded( const String& rStorageName );
-- BasicLibInfo* CreateLibInfo();
-- void LoadBasicManager( SotStorage& rStorage, const String& rBaseURL, BOOL bLoadBasics = TRUE );
-- void LoadOldBasicManager( SotStorage& rStorage );
-- BOOL ImplLoadBasic( SvStream& rStrm, StarBASICRef& rOldBasic ) const;
-- void ImplGetPassword( USHORT nLib ) const;
-- BOOL ImplEncryptStream( SvStream& rStream ) const;
-- BasicLibInfo* FindLibInfo( StarBASIC* pBasic ) const;
-- void CheckModules( StarBASIC* pBasic, BOOL bReference ) const;
-- void SetFlagToAllLibs( short nFlag, BOOL bSet ) const;
-- BasicManager(); // Nur zum anpassen von Pfaden bei 'Speichern unter'.
-+ SB_DLLPRIVATE BOOL ImpStoreLibary( StarBASIC* pLib, SotStorage& rStorage ) const;
-+ SB_DLLPRIVATE BOOL ImpLoadLibary( BasicLibInfo* pLibInfo ) const;
-+ SB_DLLPRIVATE BOOL ImpLoadLibary( BasicLibInfo* pLibInfo, SotStorage* pCurStorage, BOOL bInfosOnly = FALSE ) const;
-+ SB_DLLPRIVATE void ImpCreateStdLib( StarBASIC* pParentFromStdLib );
-+ SB_DLLPRIVATE void ImpMgrNotLoaded( const String& rStorageName );
-+ SB_DLLPRIVATE BasicLibInfo* CreateLibInfo();
-+ SB_DLLPRIVATE void LoadBasicManager( SotStorage& rStorage, const String& rBaseURL, BOOL bLoadBasics = TRUE );
-+ SB_DLLPRIVATE void LoadOldBasicManager( SotStorage& rStorage );
-+ SB_DLLPRIVATE BOOL ImplLoadBasic( SvStream& rStrm, StarBASICRef& rOldBasic ) const;
-+ SB_DLLPRIVATE void ImplGetPassword( USHORT nLib ) const;
-+ SB_DLLPRIVATE BOOL ImplEncryptStream( SvStream& rStream ) const;
-+ SB_DLLPRIVATE BasicLibInfo* FindLibInfo( StarBASIC* pBasic ) const;
-+ SB_DLLPRIVATE void CheckModules( StarBASIC* pBasic, BOOL bReference ) const;
-+ SB_DLLPRIVATE void SetFlagToAllLibs( short nFlag, BOOL bSet ) const;
-+ BasicManager(); // Nur zum anpassen von Pfaden bei 'Speichern unter'.
-
- public:
- TYPEINFO();
-@@ -249,7 +252,7 @@
- String GetRelLibStorageName( USHORT nLib );
-
- BOOL IsLibLoaded( USHORT nLib ) const;
-- BOOL LoadLib( USHORT nLib );
-+ BOOL LoadLib( USHORT nLib );
- BOOL UnloadLib( USHORT nLib );
- BOOL StoreLib( USHORT nLib ) const;
- BOOL RemoveLib( USHORT nLib );
-diff -ru /home/naren/work/builds/ooo-build-1.9.125.1.pristine/build/src680-m125/basic/inc/basrdll.hxx /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/basic/inc/basrdll.hxx
---- basic/inc/basrdll.hxx 2000-09-18 09:12:07.000000000 -0700
-+++ basic/inc/basrdll.hxx 2005-09-29 11:39:50.297932176 -0700
-@@ -68,7 +68,11 @@
- #include <vcl/accel.hxx>
- #endif
-
--class BasicDLL
-+#ifndef INCLUDED_SBDLLAPI_H
-+#include "sb/sbdllapi.h"
-+#endif
-+
-+class SB_DLLPUBLIC BasicDLL
- {
- private:
- ResMgr* pResMgr;
-diff -ru /home/naren/work/builds/ooo-build-1.9.125.1.pristine/build/src680-m125/basic/inc/basrid.hxx /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/basic/inc/basrid.hxx
---- basic/inc/basrid.hxx 2000-09-18 09:12:07.000000000 -0700
-+++ basic/inc/basrid.hxx 2005-09-19 15:09:25.000000000 -0700
-@@ -66,7 +66,11 @@
- #include <tools/resid.hxx>
- #endif
-
--class BasicResId: public ResId
-+#ifndef INCLUDED_SBDLLAPI_H
-+#include "sb/sbdllapi.h"
-+#endif
-+
-+class SB_DLLPRIVATE BasicResId: public ResId
- {
- public:
- BasicResId( USHORT nId );
-diff -ru /home/naren/work/builds/ooo-build-1.9.125.1.pristine/build/src680-m125/basic/inc/hilight.hxx /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/basic/inc/hilight.hxx
---- basic/inc/hilight.hxx 2000-09-18 09:12:07.000000000 -0700
-+++ basic/inc/hilight.hxx 2005-09-29 10:25:30.453931520 -0700
-@@ -110,7 +110,7 @@
- // aufgrund dieser Aenderung neu gehighlighted werden muss.
- // Dazu merkt sich Highlighter intern fuer jede Zeile, ob dort
- // C-Kommentare beginnen oder enden.
--class SyntaxHighlighter
-+class SB_DLLPUBLIC SyntaxHighlighter
- {
- HighlighterLanguage eLanguage;
- SimpleTokenizer_Impl* m_pSimpleTokenizer;
-diff -ru /home/naren/work/builds/ooo-build-1.9.125.1.pristine/build/src680-m125/basic/inc/mybasic.hxx /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/basic/inc/mybasic.hxx
---- basic/inc/mybasic.hxx 2003-03-18 08:28:14.000000000 -0800
-+++ basic/inc/mybasic.hxx 2005-09-29 10:25:43.521944880 -0700
-@@ -66,11 +66,15 @@
- #include <sbstar.hxx>
- #endif
-
-+#ifndef INCLUDED_SBDLLAPI_H
-+#include "sb/sbdllapi.h"
-+#endif
-+
- class BasicApp;
- class AppBasEd;
- class ErrorEntry;
-
--class BasicError {
-+class SB_DLLPUBLIC BasicError {
- AppBasEd* pWin;
- USHORT nLine, nCol1, nCol2;
- String aText;
-@@ -84,21 +88,21 @@
- #define SBXID_MYBASIC 0x594D // MyBasic: MY
- #define SBXCR_TEST 0x54534554 // TEST
-
--class MyBasic : public StarBASIC
-+class SB_DLLPUBLIC MyBasic : public StarBASIC
- {
- SbError nError;
-- virtual BOOL ErrorHdl();
-- virtual USHORT BreakHdl();
-+ SB_DLLPRIVATE virtual BOOL ErrorHdl();
-+ SB_DLLPRIVATE virtual USHORT BreakHdl();
-
- protected:
-- Link GenLogHdl();
-- Link GenWinInfoHdl();
-- Link GenModuleWinExistsHdl();
-- Link GenWriteStringHdl();
-+ SB_DLLPRIVATE Link GenLogHdl();
-+ SB_DLLPRIVATE Link GenWinInfoHdl();
-+ SB_DLLPRIVATE Link GenModuleWinExistsHdl();
-+ SB_DLLPRIVATE Link GenWriteStringHdl();
-
-- void StartListening( SfxBroadcaster &rBroadcaster );
-+ SB_DLLPRIVATE void StartListening( SfxBroadcaster &rBroadcaster );
-
-- String GenRealString( const String &aResString );
-+ SB_DLLPRIVATE String GenRealString( const String &aResString );
-
- public:
- SBX_DECL_PERSIST_NODATA(SBXCR_TEST,SBXID_MYBASIC,1);
-diff -ru /home/naren/work/builds/ooo-build-1.9.125.1.pristine/build/src680-m125/basic/inc/process.hxx /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/basic/inc/process.hxx
---- basic/inc/process.hxx 2004-09-20 05:28:25.000000000 -0700
-+++ basic/inc/process.hxx 2005-09-29 10:25:52.961509848 -0700
-@@ -68,17 +68,21 @@
-
- #include <map>
-
-+#ifndef INCLUDED_SBDLLAPI_H
-+#include "sb/sbdllapi.h"
-+#endif
-+
- typedef std::map< String, String > Environment;
- typedef Environment::value_type EnvironmentVariable;
-
--class Process
-+class SB_DLLPUBLIC Process
- {
- // Interne Member und Methoden
- NAMESPACE_VOS(OArgumentList) *pArgumentList;
- NAMESPACE_VOS(OEnvironment) *pEnvList;
- NAMESPACE_VOS(OProcess) *pProcess;
-- BOOL ImplIsRunning();
-- long ImplGetExitCode();
-+ SB_DLLPRIVATE BOOL ImplIsRunning();
-+ SB_DLLPRIVATE long ImplGetExitCode();
- BOOL bWasGPF;
- BOOL bHasBeenStarted;
-
-diff -ru /dev/null /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/basic/inc/sb/sbdllapi.h
---- /dev/null 2005-09-28 14:12:59.000000000 -0700
-+++ basic/inc/sb/sbdllapi.h 2005-09-19 11:42:57.000000000 -0700
-@@ -0,0 +1,80 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ * Copyright: 2004 by Novell, Inc.
-+ * Copyright: 2005 by Intel Corporation.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): ndevaiah____________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef INCLUDED_SBDLLAPI_H
-+#define INCLUDED_SBDLLAPI_H
-+
-+#ifndef _SAL_TYPES_H_
-+#include "sal/types.h"
-+#endif
-+
-+#if defined(SB_DLLIMPLEMENTATION)
-+#define SB_DLLPUBLIC SAL_DLLPUBLIC_EXPORT
-+#else
-+#define SB_DLLPUBLIC SAL_DLLPUBLIC_IMPORT
-+#endif
-+#define SB_DLLPRIVATE SAL_DLLPRIVATE
-+
-+#endif /* INCLUDED_SBDLLAPI_H */
-+
-diff -ru /home/naren/work/builds/ooo-build-1.9.125.1.pristine/build/src680-m125/basic/inc/sbmeth.hxx /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/basic/inc/sbmeth.hxx
---- basic/inc/sbmeth.hxx 2005-04-13 01:59:10.000000000 -0700
-+++ basic/inc/sbmeth.hxx 2005-09-29 10:33:11.968770600 -0700
-@@ -70,9 +70,13 @@
- #endif
- #include <sbdef.hxx>
-
-+#ifndef INCLUDED_SBDLLAPI_H
-+#include "sb/sbdllapi.h"
-+#endif
-+
- class SbModule;
-
--class SbMethod : public SbxMethod
-+class SB_DLLPUBLIC SbMethod : public SbxMethod
- {
- friend class SbiRuntime;
- friend class SbiFactory;
-@@ -90,7 +94,7 @@
- SbMethod( const SbMethod& );
- virtual BOOL LoadData( SvStream&, USHORT );
- virtual BOOL StoreData( SvStream& ) const;
-- virtual ~SbMethod();
-+ SB_DLLPRIVATE virtual ~SbMethod();
-
- public:
- SBX_DECL_PERSIST_NODATA(SBXCR_SBX,SBXID_BASICMETHOD,2);
-@@ -115,7 +119,7 @@
- #endif
-
-
--class SbIfaceMapperMethod : public SbMethod
-+class SB_DLLPUBLIC SbIfaceMapperMethod : public SbMethod
- {
- friend class SbiRuntime;
-
-diff -ru /home/naren/work/builds/ooo-build-1.9.125.1.pristine/build/src680-m125/basic/inc/sbmod.hxx /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/basic/inc/sbmod.hxx
---- basic/inc/sbmod.hxx 2005-04-13 01:59:23.000000000 -0700
-+++ basic/inc/sbmod.hxx 2005-09-29 10:34:07.155380960 -0700
-@@ -47,6 +47,10 @@
- #include <rtl/ustring.hxx>
- #endif
-
-+#ifndef INCLUDED_SBDLLAPI_H
-+#include "sb/sbdllapi.h"
-+#endif
-+
- class SbMethod;
- class SbProperty;
- class SbiRuntime;
-@@ -57,7 +61,7 @@
-
- struct SbClassData;
-
--class SbModule : public SbxObject
-+class SB_DLLPUBLIC SbModule : public SbxObject
- {
- friend class TestToolObj; // somit können Module nach laden zur Laufzeit initialisiert werden
- friend class SbiCodeGen;
-@@ -72,26 +76,26 @@
- SbiBreakpoints* pBreaks; // Breakpoints
- SbClassData* pClassData;
-
-- void StartDefinitions();
-- SbMethod* GetMethod( const String&, SbxDataType );
-- SbProperty* GetProperty( const String&, SbxDataType );
-- SbProcedureProperty* GetProcedureProperty( const String&, SbxDataType );
-- SbIfaceMapperMethod* GetIfaceMapperMethod( const String&, SbMethod* );
-- void EndDefinitions( BOOL=FALSE );
-- USHORT Run( SbMethod* );
-+ SB_DLLPRIVATE void StartDefinitions();
-+ SB_DLLPRIVATE SbMethod* GetMethod( const String&, SbxDataType );
-+ SB_DLLPRIVATE SbProperty* GetProperty( const String&, SbxDataType );
-+ SB_DLLPRIVATE SbProcedureProperty* GetProcedureProperty( const String&, SbxDataType );
-+ SB_DLLPRIVATE SbIfaceMapperMethod* GetIfaceMapperMethod( const String&, SbMethod* );
-+ SB_DLLPRIVATE void EndDefinitions( BOOL=FALSE );
-+ SB_DLLPRIVATE USHORT Run( SbMethod* );
- void RunInit();
-- void ClearPrivateVars();
-- void GlobalRunInit( BOOL bBasicStart ); // fuer alle Module
-- void GlobalRunDeInit( void );
-- const BYTE* FindNextStmnt( const BYTE*, USHORT&, USHORT& ) const;
-- const BYTE* FindNextStmnt( const BYTE*, USHORT&, USHORT&,
-+ SB_DLLPRIVATE void ClearPrivateVars();
-+ SB_DLLPRIVATE void GlobalRunInit( BOOL bBasicStart ); // fuer alle Module
-+ SB_DLLPRIVATE void GlobalRunDeInit( void );
-+ SB_DLLPRIVATE const BYTE* FindNextStmnt( const BYTE*, USHORT&, USHORT& ) const;
-+ SB_DLLPRIVATE const BYTE* FindNextStmnt( const BYTE*, USHORT&, USHORT&,
- BOOL bFollowJumps, const SbiImage* pImg=NULL ) const;
- virtual BOOL LoadData( SvStream&, USHORT );
- virtual BOOL StoreData( SvStream& ) const;
-- virtual BOOL LoadCompleted();
-- virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
-+ SB_DLLPRIVATE virtual BOOL LoadCompleted();
-+ SB_DLLPRIVATE virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
- const SfxHint& rHint, const TypeId& rHintType );
-- virtual ~SbModule();
-+ SB_DLLPRIVATE virtual ~SbModule();
- public:
- SBX_DECL_PERSIST_NODATA(SBXCR_SBX,SBXID_BASICMOD,2);
- TYPEINFO();
-@@ -138,7 +142,7 @@
-
-
- // Object class for instances of class modules
--class SbClassModuleObject : public SbModule
-+class SB_DLLPUBLIC SbClassModuleObject : public SbModule
- {
- SbModule* mpClassModule;
- bool mbInitializeEventDone;
-diff -ru /home/naren/work/builds/ooo-build-1.9.125.1.pristine/build/src680-m125/basic/inc/sbprop.hxx /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/basic/inc/sbprop.hxx
---- basic/inc/sbprop.hxx 2005-04-13 01:59:40.000000000 -0700
-+++ basic/inc/sbprop.hxx 2005-09-29 10:34:21.796155224 -0700
-@@ -68,17 +68,21 @@
- #endif
- #include <sbdef.hxx>
-
-+#ifndef INCLUDED_SBDLLAPI_H
-+#include "sb/sbdllapi.h"
-+#endif
-+
- class SbModule;
-
--class SbProperty : public SbxProperty
-+class SB_DLLPUBLIC SbProperty : public SbxProperty
- {
- friend class SbiFactory;
- friend class SbModule;
- friend class SbProcedureProperty;
- SbModule* pMod;
- BOOL bInvalid;
-- SbProperty( const String&, SbxDataType, SbModule* );
-- virtual ~SbProperty();
-+ SB_DLLPRIVATE SbProperty( const String&, SbxDataType, SbModule* );
-+ SB_DLLPRIVATE virtual ~SbProperty();
- public:
- SBX_DECL_PERSIST_NODATA(SBXCR_SBX,SBXID_BASICPROP,1);
- TYPEINFO();
-@@ -91,11 +95,11 @@
- #endif
-
-
--class SbProcedureProperty : public SbxProperty
-+class SB_DLLPUBLIC SbProcedureProperty : public SbxProperty
- {
- bool mbSet; // Flag for set command
-
-- virtual ~SbProcedureProperty();
-+ SB_DLLPRIVATE virtual ~SbProcedureProperty();
-
- public:
- SbProcedureProperty::SbProcedureProperty( const String& r, SbxDataType t )
-diff -ru /home/naren/work/builds/ooo-build-1.9.125.1.pristine/build/src680-m125/basic/inc/sbstar.hxx /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/basic/inc/sbstar.hxx
---- basic/inc/sbstar.hxx 2005-04-13 01:59:55.000000000 -0700
-+++ basic/inc/sbstar.hxx 2005-09-29 10:35:35.505949632 -0700
-@@ -47,6 +47,10 @@
- #include <osl/mutex.hxx>
- #endif
-
-+#ifndef INCLUDED_SBDLLAPI_H
-+#include "sb/sbdllapi.h"
-+#endif
-+
- #include <sbdef.hxx>
- #include <sberrors.hxx>
-
-@@ -60,7 +64,7 @@
- class SbMethod;
- class BasicManager;
-
--class StarBASIC : public SbxObject
-+class SB_DLLPUBLIC StarBASIC : public SbxObject
- {
- friend class SbiScanner;
- friend class SbiExpression; // Zugriff auf RTL
-diff -ru /home/naren/work/builds/ooo-build-1.9.125.1.pristine/build/src680-m125/basic/inc/sbxcore.hxx /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/basic/inc/sbxcore.hxx
---- basic/inc/sbxcore.hxx 2005-04-13 02:00:52.000000000 -0700
-+++ basic/inc/sbxcore.hxx 2005-09-29 10:36:05.830339624 -0700
-@@ -75,6 +75,10 @@
-
- #include "sbxdef.hxx"
-
-+#ifndef INCLUDED_SBDLLAPI_H
-+#include "sb/sbdllapi.h"
-+#endif
-+
- class SvStream;
- class String;
- class UniString;
-@@ -88,14 +92,14 @@
- // Diese Version des Makros definiert keine Load/StorePrivateData()-Methoden
-
- #define SBX_DECL_PERSIST_NODATA( nCre, nSbxId, nVer ) \
-- virtual UINT32 GetCreator() const { return nCre; } \
-- virtual UINT16 GetVersion() const { return nVer; } \
-- virtual UINT16 GetSbxId() const { return nSbxId; }
-+ SB_DLLPRIVATE virtual UINT32 GetCreator() const { return nCre; } \
-+ SB_DLLPRIVATE virtual UINT16 GetVersion() const { return nVer; } \
-+ SB_DLLPRIVATE virtual UINT16 GetSbxId() const { return nSbxId; }
-
- #define SBX_DECL_PERSIST_NODATA_() \
-- virtual UINT32 GetCreator() const; \
-- virtual UINT16 GetVersion() const; \
-- virtual UINT16 GetSbxId() const;
-+ SB_DLLPRIVATE virtual UINT32 GetCreator() const; \
-+ SB_DLLPRIVATE virtual UINT16 GetVersion() const; \
-+ SB_DLLPRIVATE virtual UINT16 GetSbxId() const;
-
- // Diese Version des Makros definiert Load/StorePrivateData()-Methoden
-
-@@ -110,9 +114,9 @@
- SBX_DECL_PERSIST_NODATA_()
-
- #define SBX_IMPL_PERSIST( C, nCre, nSbxId, nVer ) \
-- UINT32 C::GetCreator() const { return nCre; } \
-- UINT16 C::GetVersion() const { return nVer; } \
-- UINT16 C::GetSbxId() const { return nSbxId; }
-+ SB_DLLPRIVATE UINT32 C::GetCreator() const { return nCre; } \
-+ SB_DLLPRIVATE UINT16 C::GetVersion() const { return nVer; } \
-+ SB_DLLPRIVATE UINT16 C::GetSbxId() const { return nSbxId; }
-
- class SbxBase;
- class SbxFactory;
-@@ -120,7 +124,7 @@
-
- DBG_NAMEEX(SbxBase);
-
--class SbxBase : virtual public SvRefBase
-+class SB_DLLPUBLIC SbxBase : virtual public SvRefBase
- {
- virtual BOOL LoadData( SvStream&, USHORT );
- virtual BOOL StoreData( SvStream& ) const;
-@@ -129,7 +133,7 @@
-
- SbxBase();
- SbxBase( const SbxBase& );
-- SbxBase& operator=( const SbxBase& );
-+ SB_DLLPRIVATE SbxBase& operator=( const SbxBase& );
- virtual ~SbxBase();
- SBX_DECL_PERSIST(0,0,0);
- public:
-diff -ru /home/naren/work/builds/ooo-build-1.9.125.1.pristine/build/src680-m125/basic/inc/sbxfac.hxx /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/basic/inc/sbxfac.hxx
---- basic/inc/sbxfac.hxx 2005-04-13 02:01:34.000000000 -0700
-+++ basic/inc/sbxfac.hxx 2005-09-29 11:31:02.996094240 -0700
-@@ -67,12 +67,17 @@
- #include "sbxdef.hxx"
- #endif
-
-+
-+#ifndef INCLUDED_SBDLLAPI_H
-+#include "sb/sbdllapi.h"
-+#endif
-+
- class SbxBase;
- class SbxObject;
- class String;
- class UniString;
-
--class SbxFactory
-+class SB_DLLPUBLIC SbxFactory
- {
- BOOL bHandleLast; // TRUE: Factory soll zuletzt gefragt werden, da teuer
- public:
-diff -ru /home/naren/work/builds/ooo-build-1.9.125.1.pristine/build/src680-m125/basic/inc/sbxform.hxx /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/basic/inc/sbxform.hxx
---- basic/inc/sbxform.hxx 2005-04-13 02:01:51.000000000 -0700
-+++ basic/inc/sbxform.hxx 2005-09-29 10:36:43.251650720 -0700
-@@ -124,7 +124,11 @@
- #include <tools/string.hxx>
- #endif
-
--class SbxBasicFormater {
-+#ifndef INCLUDED_SBDLLAPI_H
-+#include "sb/sbdllapi.h"
-+#endif
-+
-+class SB_DLLPUBLIC SbxBasicFormater {
- public:
- // der Konstruktor, nimmt die Zeichen f"ur den Dezimal-Punkt,
- // das Tausender-Trenn-Zeichen sowie die notwendigen Resource
-@@ -154,33 +158,33 @@
- private:
- //*** einige Hilfsmethoden ***
- //void ShowError( char *sErrMsg );
-- inline void ShiftString( String& sStrg, USHORT nStartPos );
-- inline void StrAppendChar( String& sStrg, sal_Unicode ch );
-- void AppendDigit( String& sStrg, short nDigit );
-- void LeftShiftDecimalPoint( String& sStrg );
-- void StrRoundDigit( String& sStrg, short nPos, BOOL& bOverflow );
-- void StrRoundDigit( String& sStrg, short nPos );
-- void ParseBack( String& sStrg, const String& sFormatStrg,
-+ SB_DLLPRIVATE inline void ShiftString( String& sStrg, USHORT nStartPos );
-+ SB_DLLPRIVATE inline void StrAppendChar( String& sStrg, sal_Unicode ch );
-+ SB_DLLPRIVATE void AppendDigit( String& sStrg, short nDigit );
-+ SB_DLLPRIVATE void LeftShiftDecimalPoint( String& sStrg );
-+ SB_DLLPRIVATE void StrRoundDigit( String& sStrg, short nPos, BOOL& bOverflow );
-+ SB_DLLPRIVATE void StrRoundDigit( String& sStrg, short nPos );
-+ SB_DLLPRIVATE void ParseBack( String& sStrg, const String& sFormatStrg,
- short nFormatPos );
- #ifdef _with_sprintf
- // Methoden "uber String-Konvertierung mit sprintf():
-- void InitScan( double _dNum );
-- void InitExp( double _dNewExp );
-- short GetDigitAtPosScan( short nPos, BOOL& bFoundFirstDigit );
-- short GetDigitAtPosExpScan( double dNewExponent, short nPos,
-+ SB_DLLPRIVATE void InitScan( double _dNum );
-+ SB_DLLPRIVATE void InitExp( double _dNewExp );
-+ SB_DLLPRIVATE short GetDigitAtPosScan( short nPos, BOOL& bFoundFirstDigit );
-+ SB_DLLPRIVATE short GetDigitAtPosExpScan( double dNewExponent, short nPos,
- BOOL& bFoundFirstDigit );
-- short GetDigitAtPosExpScan( short nPos, BOOL& bFoundFirstDigit );
-+ SB_DLLPRIVATE short GetDigitAtPosExpScan( short nPos, BOOL& bFoundFirstDigit );
- #else
- // Methoden "uber direktes 'ausrechen' mit log10() und pow():
-- short GetDigitAtPos( double dNumber, short nPos, double& dNextNumber,
-+ SB_DLLPRIVATE short GetDigitAtPos( double dNumber, short nPos, double& dNextNumber,
- BOOL& bFoundFirstDigit );
-- short RoundDigit( double dNumber );
-+ SB_DLLPRIVATE short RoundDigit( double dNumber );
- #endif
-- String GetPosFormatString( const String& sFormatStrg, BOOL & bFound );
-- String GetNegFormatString( const String& sFormatStrg, BOOL & bFound );
-- String Get0FormatString( const String& sFormatStrg, BOOL & bFound );
-- String GetNullFormatString( const String& sFormatStrg, BOOL & bFound );
-- short AnalyseFormatString( const String& sFormatStrg,
-+ SB_DLLPRIVATE String GetPosFormatString( const String& sFormatStrg, BOOL & bFound );
-+ SB_DLLPRIVATE String GetNegFormatString( const String& sFormatStrg, BOOL & bFound );
-+ SB_DLLPRIVATE String Get0FormatString( const String& sFormatStrg, BOOL & bFound );
-+ SB_DLLPRIVATE String GetNullFormatString( const String& sFormatStrg, BOOL & bFound );
-+ SB_DLLPRIVATE short AnalyseFormatString( const String& sFormatStrg,
- short& nNoOfDigitsLeft, short& nNoOfDigitsRight,
- short& nNoOfOptionalDigitsLeft,
- short& nNoOfExponentDigits,
-@@ -188,7 +192,7 @@
- BOOL& bPercent, BOOL& bCurrency, BOOL& bScientific,
- BOOL& bGenerateThousandSeparator,
- short& nMultipleThousandSeparators );
-- void ScanFormatString( double dNumber, const String& sFormatStrg,
-+ SB_DLLPRIVATE void ScanFormatString( double dNumber, const String& sFormatStrg,
- String& sReturnStrg, BOOL bCreateSign );
-
- //*** Daten ***
-diff -ru /home/naren/work/builds/ooo-build-1.9.125.1.pristine/build/src680-m125/basic/inc/sbx.hxx /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/basic/inc/sbx.hxx
---- basic/inc/sbx.hxx 2005-04-13 02:00:23.000000000 -0700
-+++ basic/inc/sbx.hxx 2005-09-29 10:37:22.129740352 -0700
-@@ -94,6 +94,10 @@
- #include "sbxmeth.hxx"
- #endif
-
-+#ifndef INCLUDED_SBDLLAPI_H
-+#include "sb/sbdllapi.h"
-+#endif
-+
- class BigInt;
- class String;
- class UniString;
-@@ -145,7 +149,7 @@
- #ifndef __SBX_SBXINFO
- #define __SBX_SBXINFO
-
--class SbxInfo : public SvRefBase
-+class SB_DLLPUBLIC SbxInfo : public SvRefBase
- {
- friend class SbxVariable;
- friend class SbMethod;
-@@ -199,9 +203,9 @@
- class SbxAlias : public SbxVariable, public SfxListener
- {
- SbxVariableRef xAlias;
-- virtual ~SbxAlias();
-- virtual void Broadcast( ULONG );
-- virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
-+ SB_DLLPRIVATE virtual ~SbxAlias();
-+ SB_DLLPRIVATE virtual void Broadcast( ULONG );
-+ SB_DLLPRIVATE virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
- const SfxHint& rHint, const TypeId& rHintType );
- public:
- SbxAlias( const String& rName, SbxVariable* pOriginal );
-@@ -222,19 +226,19 @@
- class SbxVarRefs;
- class SbxVariableRef;
-
--class SbxArray : public SbxBase
-+class SB_DLLPUBLIC SbxArray : public SbxBase
- {
- // #100883 Method to set method directly to parameter array
- friend class SbMethod;
- friend class SbTypeFactory;
- friend class SbClassModuleObject;
-- void PutDirect( SbxVariable* pVar, UINT32 nIdx );
-+ SB_DLLPRIVATE void PutDirect( SbxVariable* pVar, UINT32 nIdx );
-
- SbxVarRefs* pData; // Die Variablen
-
- protected:
- SbxDataType eType; // Datentyp des Arrays
-- virtual ~SbxArray();
-+ SB_DLLPRIVATE virtual ~SbxArray();
- virtual BOOL LoadData( SvStream&, USHORT );
- virtual BOOL StoreData( SvStream& ) const;
-
-@@ -279,19 +283,19 @@
-
- struct SbxDim;
-
--class SbxDimArray : public SbxArray
-+class SB_DLLPUBLIC SbxDimArray : public SbxArray
- {
- SbxDim* pFirst, *pLast; // Links fuer Dimension-Tabelle
- short nDim; // Anzahl Dimensionen
-- void AddDimImpl32( INT32, INT32, BOOL bAllowSize0 );
-+ SB_DLLPRIVATE void AddDimImpl32( INT32, INT32, BOOL bAllowSize0 );
- protected:
-- USHORT Offset( const short* );
-- UINT32 Offset32( const INT32* );
-- USHORT Offset( SbxArray* );
-- UINT32 Offset32( SbxArray* );
-+ SB_DLLPRIVATE USHORT Offset( const short* );
-+ SB_DLLPRIVATE UINT32 Offset32( const INT32* );
-+ SB_DLLPRIVATE USHORT Offset( SbxArray* );
-+ SB_DLLPRIVATE UINT32 Offset32( SbxArray* );
- virtual BOOL LoadData( SvStream&, USHORT );
- virtual BOOL StoreData( SvStream& ) const;
-- virtual ~SbxDimArray();
-+ SB_DLLPRIVATE virtual ~SbxDimArray();
- public:
- SBX_DECL_PERSIST_NODATA(SBXCR_SBX,SBXID_DIMARRAY,1);
- TYPEINFO();
-@@ -324,18 +328,18 @@
- #ifndef __SBX_SBXCOLLECTION_HXX
- #define __SBX_SBXCOLLECTION_HXX
-
--class SbxCollection : public SbxObject
-+class SB_DLLPUBLIC SbxCollection : public SbxObject
- {
-- void Initialize();
-+ SB_DLLPRIVATE void Initialize();
- protected:
-- virtual ~SbxCollection();
-+ SB_DLLPRIVATE virtual ~SbxCollection();
- virtual BOOL LoadData( SvStream&, USHORT );
-- virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
-+ SB_DLLPRIVATE virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
- const SfxHint& rHint, const TypeId& rHintType );
- // ueberladbare Methoden:
-- virtual void CollAdd( SbxArray* pPar );
-- virtual void CollItem( SbxArray* pPar );
-- virtual void CollRemove( SbxArray* pPar );
-+ SB_DLLPRIVATE virtual void CollAdd( SbxArray* pPar );
-+ SB_DLLPRIVATE virtual void CollItem( SbxArray* pPar );
-+ SB_DLLPRIVATE virtual void CollRemove( SbxArray* pPar );
-
- public:
- SBX_DECL_PERSIST_NODATA(SBXCR_SBX,SBXID_COLLECTION,1);
-@@ -353,16 +357,16 @@
- #ifndef __SBX_SBXSTDCOLLECTION_HXX
- #define __SBX_SBXSTDCOLLECTION_HXX
-
--class SbxStdCollection : public SbxCollection
-+class SB_DLLPUBLIC SbxStdCollection : public SbxCollection
- {
- protected:
- String aElemClass;
- BOOL bAddRemoveOk;
-- virtual ~SbxStdCollection();
-+ SB_DLLPRIVATE virtual ~SbxStdCollection();
- virtual BOOL LoadData( SvStream&, USHORT );
- virtual BOOL StoreData( SvStream& ) const;
-- virtual void CollAdd( SbxArray* pPar );
-- virtual void CollRemove( SbxArray* pPar );
-+ SB_DLLPRIVATE virtual void CollAdd( SbxArray* pPar );
-+ SB_DLLPRIVATE virtual void CollRemove( SbxArray* pPar );
- public:
- SBX_DECL_PERSIST_NODATA(SBXCR_SBX,SBXID_FIXCOLLECTION,1);
- TYPEINFO();
-diff -ru /home/naren/work/builds/ooo-build-1.9.125.1.pristine/build/src680-m125/basic/inc/sbxmeth.hxx /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/basic/inc/sbxmeth.hxx
---- basic/inc/sbxmeth.hxx 2005-04-13 02:02:07.000000000 -0700
-+++ basic/inc/sbxmeth.hxx 2005-09-29 11:20:26.718823088 -0700
-@@ -67,7 +67,11 @@
- #include "sbxvar.hxx"
- #endif
-
--class SbxMethod : public SbxVariable
-+#ifndef INCLUDED_SBDLLAPI_H
-+#include "sb/sbdllapi.h"
-+#endif
-+
-+class SB_DLLPUBLIC SbxMethod : public SbxVariable
- {
- public:
- SBX_DECL_PERSIST_NODATA(SBXCR_SBX,SBXID_METHOD,1);
-@@ -75,7 +79,7 @@
- SbxMethod( const String& r, SbxDataType t )
- : SbxVariable( t ) { SetName( r ); }
- SbxMethod( const SbxMethod& r ) : SbxVariable( r ) {}
-- SbxMethod& operator=( const SbxMethod& r )
-+ SB_DLLPRIVATE SbxMethod& operator=( const SbxMethod& r )
- { SbxVariable::operator=( r ); return *this; }
- BOOL Run( SbxValues* pValues = NULL );
- virtual SbxClassType GetClass() const;
-diff -ru /home/naren/work/builds/ooo-build-1.9.125.1.pristine/build/src680-m125/basic/inc/sbxmstrm.hxx /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/basic/inc/sbxmstrm.hxx
---- basic/inc/sbxmstrm.hxx 2005-04-13 02:02:24.000000000 -0700
-+++ basic/inc/sbxmstrm.hxx 2005-09-29 11:20:36.625317072 -0700
-@@ -75,7 +75,7 @@
-
- SV_DECL_REF(SbxMemoryStream)
-
--class SbxMemoryStream : public SbxBase, public SvMemoryStream
-+class SB_DLLPUBLIC SbxMemoryStream : public SbxBase, public SvMemoryStream
- {
- public:
- SbxMemoryStream(ULONG nInitSize=512, ULONG nResize=64) :
-diff -ru /home/naren/work/builds/ooo-build-1.9.125.1.pristine/build/src680-m125/basic/inc/sbxobj.hxx /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/basic/inc/sbxobj.hxx
---- basic/inc/sbxobj.hxx 2005-04-13 02:02:43.000000000 -0700
-+++ basic/inc/sbxobj.hxx 2005-09-29 11:20:46.030887208 -0700
-@@ -44,16 +44,20 @@
- #include "sbxvar.hxx"
- #endif
-
-+#ifndef INCLUDED_SBDLLAPI_H
-+#include <basic/sb/sbdllapi.h>
-+#endif
-+
- ///////////////////////////////////////////////////////////////////////////
-
- class SbxProperty;
- class SvDispatch;
-
--class SbxObject : public SbxVariable, public SfxListener
-+class SB_DLLPUBLIC SbxObject : public SbxVariable, public SfxListener
- {
-- SbxArray* FindVar( SbxVariable*, USHORT& );
-+ SB_DLLPRIVATE SbxArray* FindVar( SbxVariable*, USHORT& );
- // AB 23.3.1997, Spezial-Methode fuer VCPtrRemove (s.u.)
-- SbxArray* VCPtrFindVar( SbxVariable*, USHORT& );
-+ SB_DLLPRIVATE SbxArray* VCPtrFindVar( SbxVariable*, USHORT& );
- protected:
- SbxArrayRef pMethods; // Methoden
- SbxArrayRef pProps; // Properties
-@@ -70,7 +74,7 @@
- TYPEINFO();
- SbxObject( const String& rClassname );
- SbxObject( const SbxObject& );
-- SbxObject& operator=( const SbxObject& );
-+ SB_DLLPRIVATE SbxObject& operator=( const SbxObject& );
- virtual SbxDataType GetType() const;
- virtual SbxClassType GetClass() const;
- virtual void Clear();
-diff -ru /home/naren/work/builds/ooo-build-1.9.125.1.pristine/build/src680-m125/basic/inc/sbxprop.hxx /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/basic/inc/sbxprop.hxx
---- basic/inc/sbxprop.hxx 2005-04-13 02:03:08.000000000 -0700
-+++ basic/inc/sbxprop.hxx 2005-09-29 11:20:56.588282240 -0700
-@@ -66,7 +66,11 @@
- #include "sbxvar.hxx"
- #endif
-
--class SbxProperty : public SbxVariable
-+#ifndef INCLUDED_SBDLLAPI_H
-+#include "sb/sbdllapi.h"
-+#endif
-+
-+class SB_DLLPUBLIC SbxProperty : public SbxVariable
- {
- public:
- SBX_DECL_PERSIST_NODATA(SBXCR_SBX,SBXID_PROPERTY,1);
-@@ -74,7 +78,7 @@
- SbxProperty( const String& r, SbxDataType t )
- : SbxVariable( t ) { SetName( r ); }
- SbxProperty( const SbxProperty& r ) : SbxVariable( r ) {}
-- SbxProperty& operator=( const SbxProperty& r )
-+ SB_DLLPRIVATE SbxProperty& operator=( const SbxProperty& r )
- { SbxVariable::operator=( r ); return *this; }
- virtual SbxClassType GetClass() const;
- };
-diff -ru /home/naren/work/builds/ooo-build-1.9.125.1.pristine/build/src680-m125/basic/inc/sbxvar.hxx /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/basic/inc/sbxvar.hxx
---- basic/inc/sbxvar.hxx 2005-04-13 02:03:34.000000000 -0700
-+++ basic/inc/sbxvar.hxx 2005-09-29 11:21:09.709287544 -0700
-@@ -276,7 +276,7 @@
-
- struct SbxValues;
-
--class SbxValue : public SbxBase
-+class SB_DLLPUBLIC SbxValue : public SbxBase
- {
- friend class SbiDllMgr; // BASIC-Runtime, muss an aData ran
-
-diff -ru /home/naren/work/builds/ooo-build-1.9.125.1.pristine/build/src680-m125/basic/inc/stdobj1.hxx /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/basic/inc/stdobj1.hxx
---- basic/inc/stdobj1.hxx 2005-04-13 02:03:56.000000000 -0700
-+++ basic/inc/stdobj1.hxx 2005-09-29 11:21:28.303460800 -0700
-@@ -71,13 +71,18 @@
- #ifndef __SBX_SBX_FACTORY_HXX //autogen
- #include <sbxfac.hxx>
- #endif
-+
-+#ifndef INCLUDED_SBDLLAPI_H
-+#include "sb/sbdllapi.h"
-+#endif
-+
- class StarBASIC;
- class SbStdFactory;
-
- //--------------------
- // class SbStdFactory
- //--------------------
--class SbStdFactory : public SbxFactory
-+class SB_DLLPUBLIC SbStdFactory : public SbxFactory
- {
- public:
- SbStdFactory();
-@@ -88,18 +93,18 @@
- //--------------------
- // class SbStdPicture
- //--------------------
--class SbStdPicture : public SbxObject
-+class SB_DLLPUBLIC SbStdPicture : public SbxObject
- {
- protected:
- Graphic aGraphic;
-
-- ~SbStdPicture();
-- virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
-+ SB_DLLPRIVATE ~SbStdPicture();
-+ SB_DLLPRIVATE virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
- const SfxHint& rHint, const TypeId& rHintType );
-
-- void PropType( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-- void PropWidth( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-- void PropHeight( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-+ SB_DLLPRIVATE void PropType( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-+ SB_DLLPRIVATE void PropWidth( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-+ SB_DLLPRIVATE void PropHeight( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-
- public:
- TYPEINFO();
-@@ -115,7 +120,7 @@
- //-----------------
- // class SbStdFont
- //-----------------
--class SbStdFont : public SbxObject
-+class SB_DLLPUBLIC SbStdFont : public SbxObject
- {
- protected:
- BOOL bBold;
-@@ -125,16 +130,16 @@
- USHORT nSize;
- String aName;
-
-- ~SbStdFont();
-- virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
-+ SB_DLLPRIVATE ~SbStdFont();
-+ SB_DLLPRIVATE virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
- const SfxHint& rHint, const TypeId& rHintType );
-
-- void PropBold( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-- void PropItalic( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-- void PropStrikeThrough( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-- void PropUnderline( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-- void PropSize( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-- void PropName( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-+ SB_DLLPRIVATE void PropBold( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-+ SB_DLLPRIVATE void PropItalic( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-+ SB_DLLPRIVATE void PropStrikeThrough( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-+ SB_DLLPRIVATE void PropUnderline( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-+ SB_DLLPRIVATE void PropSize( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-+ SB_DLLPRIVATE void PropName( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-
- public:
- TYPEINFO();
-@@ -160,20 +165,20 @@
- //----------------------
- // class SbStdClipboard
- //----------------------
--class SbStdClipboard : public SbxObject
-+class SB_DLLPUBLIC SbStdClipboard : public SbxObject
- {
- protected:
-
-- ~SbStdClipboard();
-- virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
-+ SB_DLLPRIVATE ~SbStdClipboard();
-+ SB_DLLPRIVATE virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
- const SfxHint& rHint, const TypeId& rHintType );
-
-- void MethClear( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-- void MethGetData( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-- void MethGetFormat( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-- void MethGetText( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-- void MethSetData( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-- void MethSetText( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-+ SB_DLLPRIVATE void MethClear( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-+ SB_DLLPRIVATE void MethGetData( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-+ SB_DLLPRIVATE void MethGetFormat( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-+ SB_DLLPRIVATE void MethGetText( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-+ SB_DLLPRIVATE void MethSetData( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-+ SB_DLLPRIVATE void MethSetText( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
-
- public:
- TYPEINFO();
-diff -ru /home/naren/work/builds/ooo-build-1.9.125.1.pristine/build/src680-m125/basic/inc/testtool.hxx /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/basic/inc/testtool.hxx
---- basic/inc/testtool.hxx 2004-07-06 06:22:55.000000000 -0700
-+++ basic/inc/testtool.hxx 2005-09-29 11:35:20.325974152 -0700
-@@ -65,6 +65,9 @@
- #include <svtools/smplhint.hxx>
- #endif
-
-+#ifndef INCLUDED_SBDLLAPI_H
-+#include "sb/sbdllapi.h"
-+#endif
-
- #define TESTTOOL_DEFAULT_PORT 12479
- #define UNO_DEFAULT_PORT 12480
-@@ -167,7 +170,7 @@
- #define TT_EXECUTION_SHOW_ACTION 0x03
- #define TT_EXECUTION_HIDE_ACTION 0x04
-
--class TTExecutionStatusHint : public SfxSimpleHint
-+class SB_DLLPUBLIC TTExecutionStatusHint : public SfxSimpleHint
- {
- private:
- String maExecutionStatus;
-diff -ru /home/naren/work/builds/ooo-build-1.9.125.1.pristine/build/src680-m125/basic/prj/d.lst /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/basic/prj/d.lst
---- basic/prj/d.lst 2005-04-13 02:04:50.000000000 -0700
-+++ basic/prj/d.lst 2005-09-21 10:25:56.000000000 -0700
-@@ -51,3 +51,7 @@
- hedabu: ..\inc\sbxbase.hxx %_DEST%\inc%_EXT%\basic\sbxbase.hxx
- hedabu: ..\inc\sbxfac.hxx %_DEST%\inc%_EXT%\basic\sbxfac.hxx
- hedabu: ..\inc\sbxmstrm.hxx %_DEST%\inc%_EXT%\basic\sbxmstrm.hxx
-+
-+mkdir: %_DEST%\inc%_EXT%\basic\sb
-+hedabu: ..\inc\sb\sbdllapi.h %_DEST%\inc%_EXT%\basic\sb\sbdllapi.h
-+
-diff -ru /dev/null /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/basic/util/makefile.pmk
---- /dev/null 2005-09-28 14:11:54.000000000 -0700
-+++ basic/util/makefile.pmk 2005-09-20 14:23:43.000000000 -0700
-@@ -0,0 +1,68 @@
-+#*************************************************************************
-+#
-+# $RCSfile$
-+#
-+# $Revision$
-+#
-+# last change: $Author$ $Date$
-+#
-+# The Contents of this file are made available subject to the terms of
-+# either of the following licenses
-+#
-+# - GNU Lesser General Public License Version 2.1
-+# - Sun Industry Standards Source License Version 1.1
-+#
-+# Sun Microsystems Inc., October, 2000
-+#
-+# GNU Lesser General Public License Version 2.1
-+# =============================================
-+# Copyright 2000 by Sun Microsystems, Inc.
-+# 901 San Antonio Road, Palo Alto, CA 94303, USA
-+#
-+# This library is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU Lesser General Public
-+# License version 2.1, as published by the Free Software Foundation.
-+#
-+# This library 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 for more details.
-+#
-+# You should have received a copy of the GNU Lesser General Public
-+# License along with this library; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+# MA 02111-1307 USA
-+#
-+#
-+# Sun Industry Standards Source License Version 1.1
-+# =================================================
-+# The contents of this file are subject to the Sun Industry Standards
-+# Source License Version 1.1 (the "License"); You may not use this file
-+# except in compliance with the License. You may obtain a copy of the
-+# License at http://www.openoffice.org/license.html.
-+#
-+# Software provided under this License is provided on an "AS IS" basis,
-+# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+# See the License for the specific provisions governing your rights and
-+# obligations concerning the Software.
-+#
-+# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+#
-+# Copyright: 2000 by Sun Microsystems, Inc.
-+#
-+# All Rights Reserved.
-+#
-+# Contributor(s): _______________________________________
-+#
-+#
-+#*************************************************************************
-+
-+# Reduction of exported symbols:
-+CDEFS += -DSB_DLLIMPLEMENTATION
-+.IF "$(COMNAME)" == "gcc3" && "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
-+CFLAGS += -fvisibility=hidden
-+.ELIF "$(COMNAME)" == "sunpro5" && "$(CCNUMVER)" >= "00050005"
-+CFLAGS += -xldscope=hidden
-+.ENDIF
diff --git a/patches/src680/libso3_gcc4_visibility_markup.diff b/patches/src680/libso3_gcc4_visibility_markup.diff
deleted file mode 100644
index a00ae6cde..000000000
--- a/patches/src680/libso3_gcc4_visibility_markup.diff
+++ /dev/null
@@ -1,2186 +0,0 @@
-diff -urN so3.orig/inc/applet.hxx so3/inc/applet.hxx
---- so3.orig/inc/applet.hxx 2005-09-07 23:30:38.000000000 +0200
-+++ so3/inc/applet.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -44,12 +44,15 @@
- #include <ipobj.hxx>
- #include <svtools/ownlist.hxx>
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
- //=========================================================================
- struct SvAppletData_Impl;
- class INetURLObject;
- class SjApplet;
- class RmAppletObject;
--class SvAppletObject : public SvInPlaceObject
-+class SO3_DLLPUBLIC SvAppletObject : public SvInPlaceObject
- /* [Beschreibung]
-
- Die Klasse AppletObject ist die Abbildung eines InPlace-Objektes
-@@ -62,38 +65,41 @@
- */
- {
- friend class SvAppletEnvironment;
-+
-+private:
- SvAppletData_Impl * pImpl;
-
-- void DataChanged_Impl( BOOL bOnlyEmbedSource );
-+ SO3_DLLPRIVATE void DataChanged_Impl( BOOL bOnlyEmbedSource );
-+
- protected:
-- BOOL StartApplet();
-- virtual void FillClass( SvGlobalName * pClassName,
-+ SO3_DLLPRIVATE BOOL StartApplet();
-+ SO3_DLLPRIVATE virtual void FillClass( SvGlobalName * pClassName,
- ULONG * pFormat,
- String * pAppName,
- String * pFullTypeName,
- String * pShortTypeName,
- long nFileFormat = SOFFICE_FILEFORMAT_CURRENT ) const;
- // Protokoll
-- virtual void Open( BOOL bOpen );
-- virtual void InPlaceActivate( BOOL );
-- virtual ErrCode Verb( long, SvEmbeddedClient * pCallerClient,
-+ SO3_DLLPRIVATE virtual void Open( BOOL bOpen );
-+ SO3_DLLPRIVATE virtual void InPlaceActivate( BOOL );
-+ SO3_DLLPRIVATE virtual ErrCode Verb( long, SvEmbeddedClient * pCallerClient,
- Window * pWin, const Rectangle * pWorkRectPixel );
-
- // Datenaustausch
-- virtual void SetVisArea( const Rectangle & rVisArea );
-- virtual void Draw( OutputDevice *,
-+ SO3_DLLPRIVATE virtual void SetVisArea( const Rectangle & rVisArea );
-+ SO3_DLLPRIVATE virtual void Draw( OutputDevice *,
- const JobSetup & rSetup,
- USHORT nAspect = ASPECT_CONTENT );
-
- // Laden speichern
-- virtual BOOL InitNew( SvStorage * );
-- virtual BOOL Load( SvStorage * );
-- virtual BOOL Save();
-- virtual BOOL SaveAs( SvStorage * );
-- virtual void HandsOff();
-- virtual BOOL SaveCompleted( SvStorage * );
-+ SO3_DLLPRIVATE virtual BOOL InitNew( SvStorage * );
-+ SO3_DLLPRIVATE virtual BOOL Load( SvStorage * );
-+ SO3_DLLPRIVATE virtual BOOL Save();
-+ SO3_DLLPRIVATE virtual BOOL SaveAs( SvStorage * );
-+ SO3_DLLPRIVATE virtual void HandsOff();
-+ SO3_DLLPRIVATE virtual BOOL SaveCompleted( SvStorage * );
-
-- ~SvAppletObject();
-+ SO3_DLLPRIVATE ~SvAppletObject();
- public:
- SO2_DECL_BASIC_CLASS_DLL(SvAppletObject,SOAPP)
- SvAppletObject();
-diff -urN so3.orig/inc/client.hxx so3/inc/client.hxx
---- so3.orig/inc/client.hxx 2005-09-07 23:31:24.000000000 +0200
-+++ so3/inc/client.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -41,6 +41,9 @@
- #include <tools/gen.hxx>
- #include <tools/fract.hxx>
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-
- /*************************************************************************
- *************************************************************************/
-@@ -60,9 +63,10 @@
- SO2_DECL_REF(SvEmbeddedObject);
- #endif
-
--class SvClientData
-+class SO3_DLLPUBLIC SvClientData
- {
- friend class SvEmbeddedClient;
-+private:
- SvEmbeddedClient * pClient;
- Rectangle aObjRect; // Groesse des Objektes in logischen
- // Koordinaten
-@@ -72,7 +76,7 @@
- BOOL bInvalidate;// nur wenn Window Initial uebergeben wird
-
- protected:
-- void SetEditWin( Window * pWin ) { pEditWin = pWin; }
-+ SO3_DLLPRIVATE void SetEditWin( Window * pWin ) { pEditWin = pWin; }
- public:
- TYPEINFO();
- SvClientData( SvEmbeddedClient *, Window * pWin = NULL );
-@@ -104,8 +108,9 @@
- }
- };
-
--class SvAreaConstrain
-+class SO3_DLLPUBLIC SvAreaConstrain
- {
-+private:
- Size aMaxSize; //maximale Groesse des Gebietes
- Size aMinSize; //minimale Groesse des Gebietes
- Size aStepSize;//Schrittweite der Veraenderung
-@@ -129,7 +134,7 @@
- Fraction * pHeightScale = NULL /*OutParam*/ ) const;
- };
-
--class SvEmbeddedClient : public SvObject
-+class SO3_DLLPUBLIC SvEmbeddedClient : public SvObject
- {
- friend class ImpClientSite;
- friend class ImpAdviseSink;
-@@ -138,6 +143,7 @@
- friend class SvEditObjectProtocol;
- friend class ImplSvEditObjectProtocol;
-
-+private:
- SvClientData * pData; // Wird auch in SvInPlaceClient modifiziert
- SvEmbeddedClient * pParent;
- USHORT nAspect;
-@@ -145,20 +151,20 @@
- bDeleteData:1,
- bCanPlugIn;
-
-- void SetStandardAdvises( SvEmbeddedObject * );
-+ SO3_DLLPRIVATE void SetStandardAdvises( SvEmbeddedObject * );
- protected:
- SvEditObjectProtocol aProt;
-- ~SvEmbeddedClient();
-+ ~SvEmbeddedClient();
-
-- void SetViewData( SvClientData * pD )
-+ SO3_DLLPRIVATE void SetViewData( SvClientData * pD )
- {
- pData = pD;
- }
-- BOOL HasViewData() const { return pData != NULL; }
-+ SO3_DLLPRIVATE BOOL HasViewData() const { return pData != NULL; }
- virtual void MakeViewData();
- virtual void FreeViewData( SvClientData * );
-
-- void SetCanPlugIn( BOOL b )
-+ SO3_DLLPRIVATE void SetCanPlugIn( BOOL b )
- { bCanPlugIn = b; }
-
- // Benachrichtigungen
-diff -urN so3.orig/inc/embobj.hxx so3/inc/embobj.hxx
---- so3.orig/inc/embobj.hxx 2005-09-07 23:32:06.000000000 +0200
-+++ so3/inc/embobj.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -47,6 +47,10 @@
- #include <svtools/ownlist.hxx>
-
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- class Printer;
-
-
-@@ -74,7 +78,7 @@
- class SvStorage;
- namespace com { namespace sun { namespace star { namespace datatransfer { class XTransferable; } } } }
-
--class SvEmbeddedObject : virtual public SvPersist,
-+class SO3_DLLPUBLIC SvEmbeddedObject : virtual public SvPersist,
- public SvPseudoObject
- {
- friend class ImpOleObject;
-@@ -228,7 +232,7 @@
-
- /*************************************************************************
- *************************************************************************/
--class SvEmbeddedInfoObject : public SvInfoObject
-+class SO3_DLLPUBLIC SvEmbeddedInfoObject : public SvInfoObject
- {
- Rectangle aVisArea;
- UINT32 nViewAspect;
-diff -urN so3.orig/inc/factory.hxx so3/inc/factory.hxx
---- so3.orig/inc/factory.hxx 2005-09-07 23:32:34.000000000 +0200
-+++ so3/inc/factory.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -53,6 +53,10 @@
- #include <com/sun/star/datatransfer/XTransferable.hpp>
- #endif
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- /*************************************************************************
- *************************************************************************/
- class SvObject;
-@@ -62,7 +66,7 @@
- typedef SvGlobalName SvUniqueName;
-
- //==================class SvFactory========================================
--class SvFactory : public SotFactory
-+class SO3_DLLPUBLIC SvFactory : public SotFactory
- /* [Beschreibung]
-
- Die Methoden der Klasse kann man in zwei Gruppen aufteilen.
-@@ -79,7 +83,7 @@
- SvFactory_Impl * pImp;
- ULONG nRegisterId;
-
-- void Revoke();
-+ SO3_DLLPRIVATE void Revoke();
- protected:
- virtual ~SvFactory();
- public:
-diff -urN so3.orig/inc/iface.hxx so3/inc/iface.hxx
---- so3.orig/inc/iface.hxx 2005-09-07 23:33:34.000000000 +0200
-+++ so3/inc/iface.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -50,6 +50,11 @@
-
- #include <sot/object.hxx>
-
-+
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- /*************************************************************************
- *************************************************************************/
- struct IUnknown;
-@@ -226,13 +231,15 @@
- #pragma warning(disable: 4250)
- #endif
-
--class SvObject : virtual public SotObject
-+class SO3_DLLPUBLIC SvObject : virtual public SotObject
- {
- friend struct IUnknown;
- friend class SvSoIPCService;
- friend class SvSoIPCClient;
- friend class SvFactory;
-- union
-+
-+private:
-+ SO3_DLLPRIVATE union
- {
- IUnknown * pObj; // IUnknown Interface
- SvSoIPCClient * pClient; // Client, falls !Owner()
-@@ -246,9 +253,9 @@
- protected:
- #endif
- virtual ~SvObject();
-- void DeInit( IUnknown * );
-- void DeInit( SvSoIPCService * );
-- void DeInit( SvSoIPCClient * );
-+ SO3_DLLPRIVATE void DeInit( IUnknown * );
-+ SO3_DLLPRIVATE void DeInit( SvSoIPCService * );
-+ SO3_DLLPRIVATE void DeInit( SvSoIPCClient * );
- virtual void MakeUnknown();
- public:
- SvObject();
-@@ -270,14 +277,14 @@
- virtual USHORT FuzzyLock( BOOL bLock, BOOL bIntern, BOOL bClose );
- private:
- // Kopieren und Zuweisen dieses Objekttyps ist nicht erlaubt
-- SvObject & operator = ( const SvObject & );
-- SvObject( const SvObject & );
-+ SO3_DLLPRIVATE SvObject & operator = ( const SvObject & );
-+ SO3_DLLPRIVATE SvObject( const SvObject & );
- };
-
- //==================class SvObjectRef======================================
- #ifndef SO2_DECL_SVOBJECT_DEFINED
- #define SO2_DECL_SVOBJECT_DEFINED
--class SvObjectRef
-+class SO3_DLLPUBLIC SvObjectRef
- {
- PRV_SV_DECL_REF(SvObject)
- };
-@@ -293,23 +300,24 @@
- //==================class SvFactory_Impl===================================
- #if !defined( SO_EXTERN )
- struct IClassFactory;
--class SvFactory_Impl : public SvObject
-+class SO3_DLLPRIVATE SvFactory_Impl : public SvObject
- /* [Beschreibung]
-
- */
- {
- friend class ImpFactory;
- friend class SvFactory;
-+private:
- IClassFactory * pObjI;
- SvFactory * pFact;
- public:
-- SvFactory_Impl();
-- SvFactory_Impl( SvFactory * );
-- ~SvFactory_Impl();
-+ SO3_DLLPRIVATE SvFactory_Impl();
-+ SO3_DLLPRIVATE SvFactory_Impl( SvFactory * );
-+ SO3_DLLPRIVATE ~SvFactory_Impl();
-
- SO2_DECL_STANDARD_CLASS_DLL( SvFactory_Impl, SOAPP )
-
-- IClassFactory * GetClassFactory() const;
-+ SO3_DLLPRIVATE IClassFactory * GetClassFactory() const;
- };
- #endif
-
-@@ -326,25 +334,26 @@
- Rectangle GetSvRect( const Rect & rRect );
- #endif
-
--class SvBorder
-+class SO3_DLLPRIVATE SvBorder
- {
-+private:
- long nTop, nRight, nBottom, nLeft;
- public:
-- SvBorder()
-+ SO3_DLLPRIVATE SvBorder()
- { nTop = nRight = nBottom = nLeft = 0; }
-- SvBorder( const Size & rSz )
-+ SO3_DLLPRIVATE SvBorder( const Size & rSz )
- { nTop = nBottom = rSz.Height(); nRight = nLeft = rSz.Width(); }
-- SvBorder( const Rectangle & rOuter, const Rectangle & rInner );
-- SvBorder( long nLeftP, long nTopP, long nRightP, long nBottomP )
-+ SO3_DLLPRIVATE SvBorder( const Rectangle & rOuter, const Rectangle & rInner );
-+ SO3_DLLPRIVATE SvBorder( long nLeftP, long nTopP, long nRightP, long nBottomP )
- { nLeft = nLeftP; nTop = nTopP; nRight = nRightP; nBottom = nBottomP; }
-- BOOL operator == ( const SvBorder & rObj ) const
-+ SO3_DLLPRIVATE BOOL operator == ( const SvBorder & rObj ) const
- {
- return nTop == rObj.nTop && nRight == rObj.nRight &&
- nBottom == rObj.nBottom && nLeft == rObj.nLeft;
- }
-- BOOL operator != ( const SvBorder & rObj ) const
-+ SO3_DLLPRIVATE BOOL operator != ( const SvBorder & rObj ) const
- { return !(*this == rObj); }
-- SvBorder & operator += ( const SvBorder & rBorder )
-+ SO3_DLLPRIVATE SvBorder & operator += ( const SvBorder & rBorder )
- {
- Left() += rBorder.Left();
- Top() += rBorder.Top();
-@@ -352,7 +361,7 @@
- Bottom() += rBorder.Bottom();
- return *this;
- }
-- SvBorder & operator -= ( const SvBorder & rBorder )
-+ SO3_DLLPRIVATE SvBorder & operator -= ( const SvBorder & rBorder )
- {
- Left() -= rBorder.Left();
- Top() -= rBorder.Top();
-@@ -360,22 +369,22 @@
- Bottom() -= rBorder.Bottom();
- return *this;
- }
-- BOOL IsInside( const SvBorder & rInside )
-+ SO3_DLLPRIVATE BOOL IsInside( const SvBorder & rInside )
- {
- return nTop >= rInside.nTop && nRight >= rInside.nRight &&
- nBottom >= rInside.nBottom && nLeft >= rInside.nLeft;
- }
-- long & Top() { return nTop; }
-- long & Right() { return nRight; }
-- long & Bottom() { return nBottom; }
-- long & Left() { return nLeft; }
-- long Top() const { return nTop; }
-- long Right() const { return nRight; }
-- long Bottom() const { return nBottom; }
-- long Left() const { return nLeft; }
-+ SO3_DLLPRIVATE long & Top() { return nTop; }
-+ SO3_DLLPRIVATE long & Right() { return nRight; }
-+ SO3_DLLPRIVATE long & Bottom() { return nBottom; }
-+ SO3_DLLPRIVATE long & Left() { return nLeft; }
-+ SO3_DLLPRIVATE long Top() const { return nTop; }
-+ SO3_DLLPRIVATE long Right() const { return nRight; }
-+ SO3_DLLPRIVATE long Bottom() const { return nBottom; }
-+ SO3_DLLPRIVATE long Left() const { return nLeft; }
- };
--Rectangle & operator += ( Rectangle & rRect, const SvBorder & rBorder );
--Rectangle & operator -= ( Rectangle & rRect, const SvBorder & rBorder );
-+SO3_DLLPRIVATE Rectangle & operator += ( Rectangle & rRect, const SvBorder & rBorder );
-+SO3_DLLPRIVATE Rectangle & operator -= ( Rectangle & rRect, const SvBorder & rBorder );
-
- #ifdef DBG_UTIL
- ByteString SvPrint( const SvBorder & );
-diff -urN so3.orig/inc/insdlg.hxx so3/inc/insdlg.hxx
---- so3.orig/inc/insdlg.hxx 2005-09-07 23:34:09.000000000 +0200
-+++ so3/inc/insdlg.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -45,6 +45,10 @@
- #include <so2ref.hxx>
- #endif
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- class SvAppletObject;
-
- #ifndef SO2_DECL_SVINPLACEOBJECT_DEFINED
-@@ -58,7 +62,7 @@
-
- /********************** SvObjectServer ***********************************
- *************************************************************************/
--class SvObjectServer
-+class SO3_DLLPUBLIC SvObjectServer
- {
- private:
- SvGlobalName aClassName;
-@@ -73,14 +77,14 @@
- const String & GetHumanName() const { return aHumanName; }
- };
-
--class SvObjectServerList
-+class SO3_DLLPRIVATE SvObjectServerList
- {
- PRV_SV_DECL_OWNER_LIST(SvObjectServerList,SvObjectServer)
-- const SvObjectServer * Get( const String & rHumanName ) const;
-- const SvObjectServer * Get( const SvGlobalName & ) const;
-- void Remove( const SvGlobalName & );
-+ SO3_DLLPRIVATE const SvObjectServer * Get( const String & rHumanName ) const;
-+ SO3_DLLPRIVATE const SvObjectServer * Get( const SvGlobalName & ) const;
-+ SO3_DLLPRIVATE void Remove( const SvGlobalName & );
-
-- void FillInsertObjects();
-+ SO3_DLLPRIVATE void FillInsertObjects();
- };
-
- class SvStorage;
-@@ -88,7 +92,7 @@
-
- // class SvDialog --------------------------------------------------------
-
--class SvDialog
-+class SO3_DLLPUBLIC SvDialog
-
- /* [Beschreibung]
-
-@@ -109,7 +113,7 @@
-
- // class SvInsertOleObjectDialog -----------------------------------------
-
--class SvInsertOleObjectDialog : public SvDialog
-+class SO3_DLLPUBLIC SvInsertOleObjectDialog : public SvDialog
-
- /* [Beschreibung]
-
-@@ -137,7 +141,7 @@
-
- // class SvInsertPlugInDialog --------------------------------------------
-
--class SvInsertPlugInDialog : public SvDialog
-+class SO3_DLLPUBLIC SvInsertPlugInDialog : public SvDialog
-
- /* [Beschreibung]
-
-@@ -164,7 +168,7 @@
-
- // class SvInsertAppletDialog --------------------------------------------
-
--class SvInsertAppletDialog : public SvDialog
-+class SO3_DLLPUBLIC SvInsertAppletDialog : public SvDialog
-
- /* [Beschreibung]
-
-diff -urN so3.orig/inc/ipclient.hxx so3/inc/ipclient.hxx
---- so3.orig/inc/ipclient.hxx 2005-09-07 23:34:31.000000000 +0200
-+++ so3/inc/ipclient.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -38,6 +38,10 @@
-
- #include <client.hxx>
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- /*************************************************************************
- *************************************************************************/
- class SvInPlaceClient;
-@@ -56,7 +60,7 @@
- class SvContainerEnvironment;
-
- //=========================================================================
--class SvInPlaceClient : public SvEmbeddedClient
-+class SO3_DLLPUBLIC SvInPlaceClient : public SvEmbeddedClient
- {
- friend class ImpInPlaceSite;
- friend class ImpInPlaceFrame;
-@@ -68,9 +72,9 @@
-
- IOleInPlaceSite * pObjI;
-
-- BOOL CanInPlaceActivate() const;
-+ SO3_DLLPRIVATE BOOL CanInPlaceActivate() const;
- protected:
-- ~SvInPlaceClient();
-+ ~SvInPlaceClient();
-
- virtual void Opened( BOOL bOpen );
- virtual void InPlaceActivate( BOOL bActivate );
-diff -urN so3.orig/inc/ipenv.hxx so3/inc/ipenv.hxx
---- so3.orig/inc/ipenv.hxx 2005-09-07 23:34:48.000000000 +0200
-+++ so3/inc/ipenv.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -41,6 +41,10 @@
- #include <vcl/mapunit.hxx>
- #endif
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- /*************************************************************************
- *************************************************************************/
- class SvInPlaceClient;
-@@ -61,15 +65,16 @@
- struct IOleInPlaceUIWindow;
-
- //=========================================================================
--class SvAppFrame : public SvObject
-+class SO3_DLLPUBLIC SvAppFrame : public SvObject
- {
- friend class ImpInPlaceFrame;
- friend class SvContainerEnvironment;
- friend class SvInPlaceClient;
-+private:
- IOleInPlaceFrame * pObjI;
- SvContainerEnvironment * pEnv;
- protected:
-- ~SvAppFrame();
-+ SO3_DLLPRIVATE ~SvAppFrame();
- public:
- SO2_DECL_INTERFACE()
- SvAppFrame( SvContainerEnvironment * );
-@@ -78,15 +83,16 @@
- SV_DECL_IMPL_REF(SvAppFrame)
-
- //=========================================================================
--class SvDocFrame : public SvObject
-+class SO3_DLLPUBLIC SvDocFrame : public SvObject
- {
- friend class ImpInPlaceUIWindow;
- friend class SvContainerEnvironment;
- friend class SvInPlaceClient;
-+private:
- IOleInPlaceUIWindow * pObjI;
- SvContainerEnvironment * pEnv;
- protected:
-- ~SvDocFrame();
-+ SO3_DLLPRIVATE ~SvDocFrame();
- public:
- SO2_DECL_INTERFACE()
- SvDocFrame( SvContainerEnvironment * );
-@@ -98,7 +104,7 @@
- struct tagOIFI;
- typedef struct tagOIFI OLEINPLACEFRAMEINFO;
-
--class SvContainerEnvironment : public SvClientData
-+class SO3_DLLPUBLIC SvContainerEnvironment : public SvClientData
- {
- friend class ImpInPlaceSite;
- friend class ImpInPlaceFrame;
-@@ -107,6 +113,7 @@
- friend class SvInPlaceClient;
- friend class SvInPlaceObject;
-
-+private:
- SvInPlaceEnvironment * pIPEnv; // IP-Env des Objektes
- SvInPlaceClient * pObj; // kann auch NULL sein
- SvContainerEnvironment * pParent;// fuer IP in IP
-@@ -135,26 +142,26 @@
- bDeleteEditWin:1,
- bDummy1;
-
-- void SetIPEnv( SvInPlaceEnvironment * pEnv )
-+ SO3_DLLPRIVATE void SetIPEnv( SvInPlaceEnvironment * pEnv )
- { pIPEnv = pEnv; }
-- void ResetIPEnv()
-+ SO3_DLLPRIVATE void ResetIPEnv()
- { pIPEnv = NULL; }
-- void MakeWinContext_Impl();
-+ SO3_DLLPRIVATE void MakeWinContext_Impl();
- //void DeleteWindows_Impl();
- protected:
- virtual void ShowUIByChildDeactivate();
-
-- MenuBar * DoQueryMenu( USHORT * p0, USHORT * p1, USHORT * p2 );
-- virtual MenuBar * QueryMenu( USHORT *, USHORT *, USHORT * );
-- virtual void SetInPlaceMenu( MenuBar * pIPMenu, BOOL bSet );
-- void DoMenuReleased( MenuBar * pMenu );
-- virtual void MenuReleased();
-- virtual void UIToolsShown( BOOL bShow );
-- void RemoveDocWin() { pDocWin = NULL; }
-- void RemoveEditWin() { SetEditWin( NULL ); }
-- BOOL IsDefaultUIAction() const
-+ SO3_DLLPRIVATE MenuBar * DoQueryMenu( USHORT * p0, USHORT * p1, USHORT * p2 );
-+ SO3_DLLPRIVATE virtual MenuBar * QueryMenu( USHORT *, USHORT *, USHORT * );
-+ SO3_DLLPRIVATE virtual void SetInPlaceMenu( MenuBar * pIPMenu, BOOL bSet );
-+ SO3_DLLPRIVATE void DoMenuReleased( MenuBar * pMenu );
-+ SO3_DLLPRIVATE virtual void MenuReleased();
-+ SO3_DLLPRIVATE virtual void UIToolsShown( BOOL bShow );
-+ SO3_DLLPRIVATE void RemoveDocWin() { pDocWin = NULL; }
-+ SO3_DLLPRIVATE void RemoveEditWin() { SetEditWin( NULL ); }
-+ SO3_DLLPRIVATE BOOL IsDefaultUIAction() const
- { return bDfltUIAction; }
-- const SvBorder& GetTopBorder() const
-+ SO3_DLLPRIVATE const SvBorder& GetTopBorder() const
- { return aTopBorder; }
-
- public:
-@@ -234,7 +241,7 @@
-
-
- /*************************************************************************/
--class SvInPlaceEnvironment
-+class SO3_DLLPUBLIC SvInPlaceEnvironment
- {
- friend class SvInPlaceObject;
- friend class ImpInPlaceObject;
-@@ -243,6 +250,7 @@
- friend class ImpOleInPlaceActiveObject;
- friend class ImplSvEditObjectProtocol;
-
-+private:
- USHORT nChangeRectsLockCount;
- BOOL bShowUITools:1,
- bTopWinResize:1,
-@@ -263,34 +271,34 @@
- SvContainerEnvironment *pContEnv;
- SvInPlaceObject * pObj;
-
-- void MergeMenus();
-- void ReleaseClientMenu();
-+ SO3_DLLPRIVATE void MergeMenus();
-+ SO3_DLLPRIVATE void ReleaseClientMenu();
- protected:
-- virtual void TopWinResize();
-- virtual void DocWinResize();
-+ SO3_DLLPRIVATE virtual void TopWinResize();
-+ SO3_DLLPRIVATE virtual void DocWinResize();
-
-- virtual MenuBar * QueryMenu( USHORT * pCount0, USHORT * pCount1,
-+ SO3_DLLPRIVATE virtual MenuBar * QueryMenu( USHORT * pCount0, USHORT * pCount1,
- USHORT * pCount2 );
-- virtual void ShowIPObj( BOOL bShow );
-- virtual void ShowUITools( BOOL bShow );
-+ SO3_DLLPRIVATE virtual void ShowIPObj( BOOL bShow );
-+ SO3_DLLPRIVATE virtual void ShowUITools( BOOL bShow );
-
-- virtual void RectsChangedPixel( const Rectangle & rObjRect,
-+ SO3_DLLPRIVATE virtual void RectsChangedPixel( const Rectangle & rObjRect,
- const Rectangle & rClip );
-
-- virtual BOOL DispatchAccel( const KeyCode & );
-+ SO3_DLLPRIVATE virtual BOOL DispatchAccel( const KeyCode & );
-
-- void SetObjMenu( SvInPlaceMenuBar * pMenu )
-+ SO3_DLLPRIVATE void SetObjMenu( SvInPlaceMenuBar * pMenu )
- { pObjMenu = pMenu; }
-- void DeleteObjMenu();
-+ SO3_DLLPRIVATE void DeleteObjMenu();
-
-- void MakeWindows();
-- void DeleteWindows();
-- void SetClipWin( SvInPlaceClipWindow * pWin )
-+ SO3_DLLPRIVATE void MakeWindows();
-+ SO3_DLLPRIVATE void DeleteWindows();
-+ SO3_DLLPRIVATE void SetClipWin( SvInPlaceClipWindow * pWin )
- { pClipWin = pWin; }
-- void DeleteClipWin();
-- void SetBorderWin( SvInPlaceWindow * pWin )
-+ SO3_DLLPRIVATE void DeleteClipWin();
-+ SO3_DLLPRIVATE void SetBorderWin( SvInPlaceWindow * pWin )
- { pBorderWin = pWin; }
-- void DeleteBorderWin();
-+ SO3_DLLPRIVATE void DeleteBorderWin();
-
- public:
- SvInPlaceEnvironment( SvContainerEnvironment *, SvInPlaceObject * );
-@@ -350,13 +358,15 @@
-
- class SvPlugInObject;
- class SvPlugInEnvironment_Impl;
--class SvPlugInEnvironment : public SvInPlaceEnvironment
-+class SO3_DLLPUBLIC SvPlugInEnvironment : public SvInPlaceEnvironment
- #ifdef SOLAR_JAVA
- , PlugJavaRequester
- #endif
- {
- friend class SvPlugInObject;
-
-+private:
-+
- DECL_STATIC_LINK( SvPlugInEnvironment, MenuSelectHdl, Menu * );
- BOOL bIsStarPlugIn;
- SvPlugInObject* pObj;
-@@ -367,8 +377,8 @@
- #endif
-
- protected:
-- virtual void DocWinResize();
-- virtual void RectsChangedPixel( const Rectangle & rObjRect,
-+ SO3_DLLPRIVATE virtual void DocWinResize();
-+ SO3_DLLPRIVATE virtual void RectsChangedPixel( const Rectangle & rObjRect,
- const Rectangle & rClip );
- public:
- SvPlugInEnvironment( SvContainerEnvironment *, SvPlugInObject * );
-diff -urN so3.orig/inc/ipmenu.hxx so3/inc/ipmenu.hxx
---- so3.orig/inc/ipmenu.hxx 2005-09-07 23:35:05.000000000 +0200
-+++ so3/inc/ipmenu.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -40,12 +40,17 @@
- #include <vcl/menu.hxx>
- #endif
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- /********************** SvInPlaceMenuBar *********************************
- *************************************************************************/
--class SvInPlaceMenuBar : public MenuBar
-+class SO3_DLLPUBLIC SvInPlaceMenuBar : public MenuBar
- {
-+private:
- USHORT nCount0, nCount1, nCount2;
-- void InsertItem( Menu & rFromMenu, USHORT nPos );
-+ SO3_DLLPRIVATE void InsertItem( Menu & rFromMenu, USHORT nPos );
- public:
- SvInPlaceMenuBar( const ResId & rId );
- SvInPlaceMenuBar( MenuBar * pBar,
-diff -urN so3.orig/inc/ipobj.hxx so3/inc/ipobj.hxx
---- so3.orig/inc/ipobj.hxx 2005-09-07 23:35:20.000000000 +0200
-+++ so3/inc/ipobj.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -39,6 +39,10 @@
- #include <embobj.hxx>
- #include <ipobj.hxx>
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- /*************************************************************************/
- /*************************************************************************/
- class ImpInPlaceObject;
-@@ -66,7 +70,7 @@
- SO2_DECL_REF(SvInPlaceObject)
- #endif
-
--class SvInPlaceObject : public SvEmbeddedObject
-+class SO3_DLLPUBLIC SvInPlaceObject : public SvEmbeddedObject
- {
- friend class ImpInPlaceObject;
- friend class ImpInPlaceSite;
-@@ -76,20 +80,21 @@
- friend class ImplSvEditObjectProtocol;
- friend class SvInPlaceEnvironment;
-
-+private:
- IOleInPlaceObject * pObjI;
- IOleInPlaceActiveObject * pActiveObj;
- SvInPlaceEnvironment * pIPEnv;
- BOOL bIsUndoable:1,
- bDeleteIPEnv:1;
-
-- BOOL DoMergePalette();
-+ SO3_DLLPRIVATE BOOL DoMergePalette();
- protected:
-- ~SvInPlaceObject();
-+ ~SvInPlaceObject();
-
- virtual void TopWinActivate( BOOL bActivate );
- virtual void DocWinActivate( BOOL bActivate );
-
-- void SetIPEnv( SvInPlaceEnvironment * pFrm );
-+ SO3_DLLPRIVATE void SetIPEnv( SvInPlaceEnvironment * pFrm );
-
- virtual ErrCode Verb( long nVerbPos, SvEmbeddedClient * pCallerClient,
- Window * pWin, const Rectangle * pWorkAreaPixel );
-@@ -97,7 +102,7 @@
- virtual void InPlaceActivate( BOOL bActivate );
- virtual void UIActivate( BOOL bActivate );
-
-- void SetUndoable( BOOL bUndoable )
-+ SO3_DLLPRIVATE void SetUndoable( BOOL bUndoable )
- { bIsUndoable = bUndoable; }
- // View
- virtual BOOL MergePalette( const Palette & rContainerPal );
-@@ -127,7 +132,7 @@
- SO2_IMPL_REF(SvInPlaceObject)
-
- //=========================================================================
--class SvDeathObject : public SvInPlaceObject
-+class SO3_DLLPUBLIC SvDeathObject : public SvInPlaceObject
- /* [Beschreibung]
-
- Wenn das Laden eine Ole-Objektes fehlschl"agt, kann dieses Objekt
-@@ -140,9 +145,9 @@
- */
- {
- protected:
-- virtual ErrCode Verb( long, SvEmbeddedClient * pCallerClient,
-+ SO3_DLLPRIVATE virtual ErrCode Verb( long, SvEmbeddedClient * pCallerClient,
- Window * pWin, const Rectangle * pWorkRectPixel );
-- virtual void Draw( OutputDevice *,
-+ SO3_DLLPRIVATE virtual void Draw( OutputDevice *,
- const JobSetup & rSetup,
- USHORT nAspect = ASPECT_CONTENT );
- public:
-diff -urN so3.orig/inc/ipwin.hxx so3/inc/ipwin.hxx
---- so3.orig/inc/ipwin.hxx 2005-09-07 23:35:39.000000000 +0200
-+++ so3/inc/ipwin.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -46,10 +46,15 @@
- #include <so2ref.hxx>
- #include <iface.hxx>
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- /********************** SvResizeHelper ***********************************
- *************************************************************************/
--class SvResizeHelper
-+class SO3_DLLPUBLIC SvResizeHelper
- {
-+private:
- Size aBorder;
- Rectangle aOuter;
- short nGrab; // -1 kein Grab, 0 - 7, 8 = Move, siehe FillHandle...
-@@ -93,8 +98,9 @@
-
- /********************** SvResizeWindow ***********************************
- *************************************************************************/
--class SvResizeWindow : public Window
-+class SO3_DLLPUBLIC SvResizeWindow : public Window
- {
-+private:
- Pointer aOldPointer;
- short nMoveGrab; // Letzer Pointertyp
- SvBorder aBorder;
-@@ -102,7 +108,7 @@
- Window * pObjWin;
- protected:
- SvResizeHelper aResizer;
-- void AdjustObjWin();
-+ SO3_DLLPRIVATE void AdjustObjWin();
- public:
- SvResizeWindow( Window * pParent );
-
-@@ -155,8 +161,9 @@
- /********************** SvInPlaceWindow **********************************
- *************************************************************************/
- class SvInPlaceEnvironment;
--class SvInPlaceWindow : public SvResizeWindow
-+class SO3_DLLPUBLIC SvInPlaceWindow : public SvResizeWindow
- {
-+private:
- SvInPlaceEnvironment * pIPEnv;
- public:
- SvInPlaceWindow( Window * pParent, SvInPlaceEnvironment * );
-@@ -167,8 +174,9 @@
-
- /********************** SvInPlaceClipWindow ******************************
- *************************************************************************/
--class SvInPlaceClipWindow : public Window
-+class SO3_DLLPUBLIC SvInPlaceClipWindow : public Window
- {
-+private:
- SvResizeWindow * pResizeWin;
- Rectangle aMaxClip;
- public:
-diff -urN so3.orig/inc/linkdlg.hxx so3/inc/linkdlg.hxx
---- so3.orig/inc/linkdlg.hxx 2005-09-07 23:35:55.000000000 +0200
-+++ so3/inc/linkdlg.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -43,6 +43,10 @@
- #include <vcl/lstbox.hxx>
- #endif
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- class SvTabListBox;
- class Window;
- class RadioButton;
-@@ -58,8 +62,9 @@
- class SvLinkManager;
- class SvBaseLink;
-
--class SvBaseLinksDialog
-+class SO3_DLLPUBLIC SvBaseLinksDialog
- {
-+private:
- SvBaseLinksDlg* pDlg;
- SvLinkManager* pLinkMgr;
- BOOL bHtmlMode;
-diff -urN so3.orig/inc/linkmgr.hxx so3/inc/linkmgr.hxx
---- so3.orig/inc/linkmgr.hxx 2005-09-07 23:36:13.000000000 +0200
-+++ so3/inc/linkmgr.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -46,6 +46,10 @@
- #include <svtools/svarray.hxx>
- #endif
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- class SvPersist;
-
- namespace so3
-@@ -59,11 +63,12 @@
- typedef SvLinkSource* SvLinkSourcePtr;
- SV_DECL_PTRARR( SvLinkSources, SvLinkSourcePtr, 1, 1 )
-
--class SvLinkManager
-+class SO3_DLLPUBLIC SvLinkManager
- {
-+private:
- SvBaseLinks aLinkTbl;
-- SvLinkSources aServerTbl;
-- SvPersist *pPersist; // LinkMgr muss vor SvPersist freigegeben werden
-+ SvLinkSources aServerTbl;
-+ SvPersist *pPersist; // LinkMgr muss vor SvPersist freigegeben werden
- protected:
- BOOL InsertLink( SvBaseLink* pLink, USHORT nObjType, USHORT nUpdateType,
- const String* pName = 0 );
-@@ -116,8 +121,8 @@
-
- private:
- // diese Methoden gibts nicht!
-- SvLinkManager( const SvLinkManager& );
-- SvLinkManager& operator=( const SvLinkManager& );
-+ SO3_DLLPRIVATE SvLinkManager( const SvLinkManager& );
-+ SO3_DLLPRIVATE SvLinkManager& operator=( const SvLinkManager& );
- };
-
- // Trenner im LinkName fuer die DDE-/File-/Grafik- Links
-diff -urN so3.orig/inc/linksrc.hxx so3/inc/linksrc.hxx
---- so3.orig/inc/linksrc.hxx 2005-09-07 23:36:27.000000000 +0200
-+++ so3/inc/linksrc.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -47,6 +47,11 @@
- #define _SAL_CONFIG_H
- #endif
-
-+
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- namespace com { namespace sun { namespace star { namespace uno
- {
- class Any;
-@@ -69,8 +74,9 @@
- class SvBaseLink;
- struct SvLinkSource_Impl;
-
--class SvLinkSource : public SvRefBase
-+class SO3_DLLPUBLIC SvLinkSource : public SvRefBase
- {
-+private:
- SvLinkSource_Impl * pImpl; // compatible area
- public:
- TYPEINFO();
-diff -urN so3.orig/inc/lnkbase.hxx so3/inc/lnkbase.hxx
---- so3.orig/inc/lnkbase.hxx 2005-09-07 23:36:43.000000000 +0200
-+++ so3/inc/lnkbase.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -45,6 +45,10 @@
- #include <linksrc.hxx>
- #endif
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- namespace com { namespace sun { namespace star { namespace uno
- {
- class Any;
-@@ -79,11 +83,11 @@
- LINKUPDATE_END // dummy!
- };
-
--class SvBaseLink : public SvRefBase
-+class SO3_DLLPUBLIC SvBaseLink : public SvRefBase
- {
- friend class SvLinkManager;
- friend class SvLinkSource;
--
-+private:
- SvLinkSourceRef xObj;
- String aLinkName;
- SvLinkManager* pLinkMgr;
-@@ -96,20 +100,20 @@
- void SetObjType( USHORT );
-
- // setzen des LinkSourceName ohne aktion
-- void SetName( const String & rLn );
-+ SO3_DLLPRIVATE void SetName( const String & rLn );
- // LinkSourceName der im SvLinkBase steht
-- String GetName() const;
-+ SO3_DLLPRIVATE String GetName() const;
-
-
- ImplBaseLinkData* pImplData;
-
-- SvBaseLink();
-+ SO3_DLLPRIVATE SvBaseLink();
- SvBaseLink( USHORT nLinkType, ULONG nContentType = FORMAT_STRING );
- virtual ~SvBaseLink();
-
- void _GetRealObject( BOOL bConnect = TRUE );
-
-- SvLinkSource* GetRealObject()
-+ SO3_DLLPRIVATE SvLinkSource* GetRealObject()
- {
- if( !xObj.Is() )
- _GetRealObject();
-diff -urN so3.orig/inc/outplace.hxx so3/inc/outplace.hxx
---- so3.orig/inc/outplace.hxx 2005-09-07 23:36:58.000000000 +0200
-+++ so3/inc/outplace.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -46,11 +46,15 @@
-
- #include "ipobj.hxx"
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- //=========================================================================
- struct SvOutPlace_Impl;
- class SvObjectServer;
-
--class SvOutPlaceObject : public SvInPlaceObject
-+class SO3_DLLPUBLIC SvOutPlaceObject : public SvInPlaceObject
- /* [Beschreibung]
-
- Die Klasse SvOutPlaceObject ist ein Wrapper fuer alle Windows Ole-Objekte
-@@ -58,39 +62,40 @@
- [Probleme]
- */
- {
-+private:
- SvOutPlace_Impl * pImpl;
-
-- void DataChanged_Impl( BOOL bOnlyEmbedSource );
-- void LoadSO_Cont();
-- BOOL MakeWorkStorageWrap_Impl( SvStorage * pStor );
-+ SO3_DLLPRIVATE void DataChanged_Impl( BOOL bOnlyEmbedSource );
-+ SO3_DLLPRIVATE void LoadSO_Cont();
-+ SO3_DLLPRIVATE BOOL MakeWorkStorageWrap_Impl( SvStorage * pStor );
-
- protected:
-- virtual void FillClass( SvGlobalName * pClassName,
-+ SO3_DLLPRIVATE virtual void FillClass( SvGlobalName * pClassName,
- ULONG * pFormat,
- String * pAppName,
- String * pFullTypeName,
- String * pShortTypeName,
- long nFileFormat = SOFFICE_FILEFORMAT_CURRENT ) const;
- // Protokoll
-- virtual void Open( BOOL bOpen );
-- virtual void Embed( BOOL bEmbedded );
-- virtual ErrCode Verb( long, SvEmbeddedClient * pCallerClient,
-+ SO3_DLLPRIVATE virtual void Open( BOOL bOpen );
-+ SO3_DLLPRIVATE virtual void Embed( BOOL bEmbedded );
-+ SO3_DLLPRIVATE virtual ErrCode Verb( long, SvEmbeddedClient * pCallerClient,
- Window * pWin, const Rectangle * pWorkRectPixel );
-
- // Datenaustausch
-- virtual void Draw( OutputDevice *,
-+ SO3_DLLPRIVATE virtual void Draw( OutputDevice *,
- const JobSetup & rSetup,
- USHORT nAspect = ASPECT_CONTENT );
-
- // Laden speichern
-- virtual BOOL InitNew( SvStorage * );
-- virtual BOOL Load( SvStorage * );
-- virtual BOOL Save();
-- virtual BOOL SaveAs( SvStorage * );
-- virtual void HandsOff();
-- virtual BOOL SaveCompleted( SvStorage * );
-+ SO3_DLLPRIVATE virtual BOOL InitNew( SvStorage * );
-+ SO3_DLLPRIVATE virtual BOOL Load( SvStorage * );
-+ SO3_DLLPRIVATE virtual BOOL Save();
-+ SO3_DLLPRIVATE virtual BOOL SaveAs( SvStorage * );
-+ SO3_DLLPRIVATE virtual void HandsOff();
-+ SO3_DLLPRIVATE virtual BOOL SaveCompleted( SvStorage * );
-
-- ~SvOutPlaceObject();
-+ SO3_DLLPRIVATE ~SvOutPlaceObject();
- public:
- SO2_DECL_BASIC_CLASS(SvOutPlaceObject)
- // SO2_DECL_BASIC_CLASS_DLL(SvOutPlaceObject,SOAPP)
-diff -urN so3.orig/inc/pastedlg.hxx so3/inc/pastedlg.hxx
---- so3.orig/inc/pastedlg.hxx 2005-09-07 23:37:12.000000000 +0200
-+++ so3/inc/pastedlg.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -49,6 +49,10 @@
- #include <svtools/transfer.hxx>
- #endif
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- /********************** SvPasteObjectDialog ******************************
- *************************************************************************/
-
-@@ -56,15 +60,16 @@
- struct TransferableObjectDescriptor;
-
-
--class SvPasteObjectDialog
-+class SO3_DLLPUBLIC SvPasteObjectDialog
- {
-+private:
- Table aSupplementTable;
- SvGlobalName aObjClassName;
- String aObjName;
- USHORT nAspect;
- BOOL bLink;
-
-- void SetDefault();
-+ SO3_DLLPRIVATE void SetDefault();
- public:
- SvPasteObjectDialog();
- ~SvPasteObjectDialog();
-diff -urN so3.orig/inc/persist.hxx so3/inc/persist.hxx
---- so3.orig/inc/persist.hxx 2005-09-07 23:37:27.000000000 +0200
-+++ so3/inc/persist.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -42,6 +42,9 @@
- #include <so2ref.hxx>
- #include <iface.hxx>
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-
- /*************************************************************************
- *************************************************************************/
-@@ -74,7 +77,7 @@
-
-
- //=========================================================================
--class SvObjectContainer : virtual public SvObject
-+class SO3_DLLPUBLIC SvObjectContainer : virtual public SvObject
- /* [Beschreibung]
-
- Diese Klasse stellt die Schnittstelle zur Verf"ugung, um auf
-@@ -111,13 +114,14 @@
-
- #define SVEXT_PERSIST_STREAM "\002OlePres000"
-
--class SvPersist : public SvObjectContainer
-+class SO3_DLLPUBLIC SvPersist : public SvObjectContainer
- {
- friend class SvInfoObject;
- friend class ImpPersistStorage;
- friend class ImpPersistFile;
- friend class ImpItemContainer;
- friend class SvFactory;
-+private:
- BOOL bIsModified:1,
- bIsInit:1,
- bOpSave:1,
-@@ -139,25 +143,25 @@
- Time aModifiedTime;
- String aFileName; // nur fuer das IPersistFile-Interface
-
-- SvInfoObjectMemberList *GetInfoList();
-- void CountModified( BOOL bDirection );
-- void dtorClear();
-- BOOL SaveElement( SvStorage*, SvInfoObject* );
-- SvPersistRef CreateObjectFromStorage( SvInfoObject*, const SvStorageRef& );
-- BOOL ImplCopy( SvPersist*, const String&, BOOL );
-+ SO3_DLLPRIVATE SvInfoObjectMemberList *GetInfoList();
-+ SO3_DLLPRIVATE void CountModified( BOOL bDirection );
-+ SO3_DLLPRIVATE void dtorClear();
-+ SO3_DLLPRIVATE BOOL SaveElement( SvStorage*, SvInfoObject* );
-+ SO3_DLLPRIVATE SvPersistRef CreateObjectFromStorage( SvInfoObject*, const SvStorageRef& );
-+ SO3_DLLPRIVATE BOOL ImplCopy( SvPersist*, const String&, BOOL );
-
- protected:
-- void InitMembers( SvStorage * );
-- ~SvPersist();
-+ SO3_DLLPRIVATE void InitMembers( SvStorage * );
-+ ~SvPersist();
- #ifdef DBG_UTIL
- #define ASSERT_INIT() AssertInit();
- #else
- #define ASSERT_INIT()
- #endif
-- void AssertInit() const;
-- void SetSaveFailed( BOOL bFail = TRUE )
-+ SO3_DLLPRIVATE void AssertInit() const;
-+ SO3_DLLPRIVATE void SetSaveFailed( BOOL bFail = TRUE )
- { bSaveFailed = bFail; }
-- BOOL GetSaveFailed() const { return bSaveFailed; }
-+ SO3_DLLPRIVATE BOOL GetSaveFailed() const { return bSaveFailed; }
-
- virtual void ModifyChanged();
-
-@@ -168,16 +172,16 @@
- virtual void HandsOff(); // Rekursiv
- virtual BOOL SaveCompleted( SvStorage * ); // Rekursiv
-
-- BOOL DoLoadContent( SvStorage *, BOOL bOwner );
-+ SO3_DLLPRIVATE BOOL DoLoadContent( SvStorage *, BOOL bOwner );
- virtual void LoadContent( SvStream & rStm, BOOL bOwner );
-- BOOL DoSaveContent( SvStorage *, BOOL bOwner );
-+ SO3_DLLPRIVATE BOOL DoSaveContent( SvStorage *, BOOL bOwner );
- virtual void SaveContent( SvStream & rStm, BOOL bOwner );
-
-- BOOL LoadChilds(); // Rekursiv
-+ SO3_DLLPRIVATE BOOL LoadChilds(); // Rekursiv
- BOOL SaveChilds(); // Rekursiv
- BOOL SaveAsChilds( SvStorage * pNewStg );// Rekursiv
- BOOL SaveCompletedChilds( SvStorage * ); // Rekursiv
-- BOOL HasStorage() const { return aStorage.Is(); }
-+ SO3_DLLPRIVATE BOOL HasStorage() const { return aStorage.Is(); }
- public:
- SvPersist();
- SO2_DECL_STANDARD_CLASS_DLL(SvPersist,SOAPP)
-@@ -265,9 +269,10 @@
-
- SV_DECL_REF(SvInfoObject)
- class SvInfoObject_Impl;
--class SvInfoObject : public SvPersistBase
-+class SO3_DLLPUBLIC SvInfoObject : public SvPersistBase
- {
- friend class SvPersist;
-+private:
- SvPersistRef aObj;
- String aObjName; // object and substorage name
- String aStorName; // optional real storage name
-@@ -276,10 +281,10 @@
- BOOL bDeleted;
-
- protected:
-- ~SvInfoObject();
-- virtual void Assign( const SvInfoObject * pObj );
-- void SetRealStorageName( const String & rName );
-- void SetStorageName( const String & rName )
-+ SO3_DLLPRIVATE ~SvInfoObject();
-+ SO3_DLLPRIVATE virtual void Assign( const SvInfoObject * pObj );
-+ SO3_DLLPRIVATE void SetRealStorageName( const String & rName );
-+ SO3_DLLPRIVATE void SetStorageName( const String & rName )
- { aStorName = rName; }
- public:
- SV_DECL_PERSIST1(SvInfoObject,SvPersistBase,1)
-diff -urN so3.orig/inc/plugin.hxx so3/inc/plugin.hxx
---- so3.orig/inc/plugin.hxx 2005-09-07 23:37:43.000000000 +0200
-+++ so3/inc/plugin.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -40,13 +40,17 @@
- #include <svtools/ownlist.hxx>
- #include <ipenv.hxx>
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- //=========================================================================
- class Timer;
- class INetURLObject;
- struct SvPlugInData_Impl;
- class SjJScriptPluginObject;
- class SjJScriptJavaObject;
--class SvPlugInObject : public SvInPlaceObject
-+class SO3_DLLPUBLIC SvPlugInObject : public SvInPlaceObject
- /* [Beschreibung]
-
- Die Klasse PlugInObject ist die Abbildung eines InPlace-Objektes
-@@ -60,6 +64,7 @@
- {
- friend class SvPlugInEnvironment;
- friend class Executor_Impl;
-+private:
- SvPlugInEnvironment * pPlugInEnv;
- SvPlugInData_Impl * pImpl;
- SvCommandList aCmdList;
-@@ -70,41 +75,41 @@
- DECL_STATIC_LINK( SvPlugInObject, NewPlugInHdl_Impl, Timer * );
- DECL_STATIC_LINK( SvPlugInObject, DataAvailable, void* );
-
-- void DataChanged_Impl( BOOL bOnlyEmbedSource );
-+ SO3_DLLPRIVATE void DataChanged_Impl( BOOL bOnlyEmbedSource );
- protected:
-- BOOL DoStartPlugIn( );
-- BOOL StartPlugIn( );
-- virtual void FillClass( SvGlobalName * pClassName,
-+ SO3_DLLPRIVATE BOOL DoStartPlugIn( );
-+ SO3_DLLPRIVATE BOOL StartPlugIn( );
-+ SO3_DLLPRIVATE virtual void FillClass( SvGlobalName * pClassName,
- ULONG * pFormat,
- String * pAppName,
- String * pFullTypeName,
- String * pShortTypeName,
- long nFileFormat = SOFFICE_FILEFORMAT_CURRENT ) const;
- // Protokoll
-- virtual void Open( BOOL bOpen );
-- virtual void Embed( BOOL );
-- virtual void InPlaceActivate( BOOL );
-- virtual ErrCode Verb( long, SvEmbeddedClient * pCallerClient,
-+ SO3_DLLPRIVATE virtual void Open( BOOL bOpen );
-+ SO3_DLLPRIVATE virtual void Embed( BOOL );
-+ SO3_DLLPRIVATE virtual void InPlaceActivate( BOOL );
-+ SO3_DLLPRIVATE virtual ErrCode Verb( long, SvEmbeddedClient * pCallerClient,
- Window * pWin, const Rectangle * pWorkRectPixel );
-
- // Datenaustausch
-- virtual void SetVisArea( const Rectangle & rVisArea );
-- virtual void Draw( OutputDevice *,
-+ SO3_DLLPRIVATE virtual void SetVisArea( const Rectangle & rVisArea );
-+ SO3_DLLPRIVATE virtual void Draw( OutputDevice *,
- const JobSetup & rSetup,
- USHORT nAspect = ASPECT_CONTENT );
-
- // Laden speichern
-- virtual BOOL InitNew( SvStorage * );
-- virtual BOOL Load( SvStorage * );
-- virtual BOOL Save();
-- virtual BOOL SaveAs( SvStorage * );
-- virtual void HandsOff();
-- virtual BOOL SaveCompleted( SvStorage * );
-+ SO3_DLLPRIVATE virtual BOOL InitNew( SvStorage * );
-+ SO3_DLLPRIVATE virtual BOOL Load( SvStorage * );
-+ SO3_DLLPRIVATE virtual BOOL Save();
-+ SO3_DLLPRIVATE virtual BOOL SaveAs( SvStorage * );
-+ SO3_DLLPRIVATE virtual void HandsOff();
-+ SO3_DLLPRIVATE virtual BOOL SaveCompleted( SvStorage * );
-
- // Spaeter gerne mal virtuell...
-- void SetMIMEDetectedLink( const Link& rLink );
-+ SO3_DLLPRIVATE void SetMIMEDetectedLink( const Link& rLink );
-
-- ~SvPlugInObject();
-+ SO3_DLLPRIVATE ~SvPlugInObject();
- public:
- SO2_DECL_BASIC_CLASS_DLL(SvPlugInObject,SOAPP)
- SvPlugInObject();
-diff -urN so3.orig/inc/protocol.hxx so3/inc/protocol.hxx
---- so3.orig/inc/protocol.hxx 2005-09-07 23:37:56.000000000 +0200
-+++ so3/inc/protocol.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -46,6 +46,10 @@
- #include <tools/string.hxx>
- #endif
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- /*************************************************************************
- *************************************************************************/
- class SvEmbeddedObject;
-@@ -56,17 +60,18 @@
- class ImplSvEditObjectProtocol;
- class String;
-
--class SvEditObjectProtocol
-+class SO3_DLLPUBLIC SvEditObjectProtocol
- {
- friend class SoDll;
-+private:
- ImplSvEditObjectProtocol * pImp;
-- static void Imp_DeleteDefault();
-- BOOL Release();
-+ SO3_DLLPRIVATE static void Imp_DeleteDefault();
-+ SO3_DLLPRIVATE BOOL Release();
- public:
- SvEditObjectProtocol();
- SvEditObjectProtocol( SvEmbeddedObject *, SvEmbeddedClient * );
- SvEditObjectProtocol( const SvEditObjectProtocol & );
-- SvEditObjectProtocol & operator = ( const SvEditObjectProtocol & );
-+ SO3_DLLPRIVATE SvEditObjectProtocol & operator = ( const SvEditObjectProtocol & );
- ~SvEditObjectProtocol();
-
- // Objekte
-diff -urN so3.orig/inc/pseudo.hxx so3/inc/pseudo.hxx
---- so3.orig/inc/pseudo.hxx 2005-09-07 23:38:11.000000000 +0200
-+++ so3/inc/pseudo.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -45,6 +45,10 @@
- #include <svtools/ownlist.hxx>
- #endif
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- class ImpOleObject;
- class SvBaseLink;
- class SvEmbeddedClient;
-@@ -52,7 +56,7 @@
- class Menu;
-
- //=========================================================================
--class SvVerb
-+class SO3_DLLPUBLIC SvVerb
- /* [Beschreibung]
-
- Die Klasse beschreibt einen Befehl, der an ein SvPseudoObject
-@@ -63,6 +67,7 @@
- <SvPseudoObject::DoVerb>
- */
- {
-+private:
- long nId;
- String aName;
- UniqueItemId aMenuId;
-@@ -83,7 +88,7 @@
- };
-
- //=========================================================================
--class SvVerbList
-+class SO3_DLLPUBLIC SvVerbList
- {
- PRV_SV_DECL_OWNER_LIST(SvVerbList,SvVerb)
- };
-@@ -111,7 +116,7 @@
- #define SVOBJ_MISCSTATUS_RESIZEONPRINTERCHANGE 2048
- #define SVOBJ_MISCSTATUS_SPECIALOBJECT 4096
-
--class SvPseudoObject : virtual public SvObject
-+class SO3_DLLPUBLIC SvPseudoObject : virtual public SvObject
- /* [Beschreibung]
-
- Diese Klasse stellt die Basisschnittstelle fuer Klassen zur Verfuegung,
-@@ -124,6 +129,7 @@
- */
- {
- friend class ImpOleObject;
-+private:
- SvVerbList * pVerbs; // Liste der Verben
- BOOL bDeleteVerbs; // TRUE, wenn pVerbs loeschen
- protected:
-diff -urN so3.orig/inc/rmapplet.hxx so3/inc/rmapplet.hxx
---- so3.orig/inc/rmapplet.hxx 2005-09-07 23:38:27.000000000 +0200
-+++ so3/inc/rmapplet.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -44,6 +44,10 @@
- #include <dcca/object.hxx>
- #endif
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- // -----------------------------------------------------------------------
-
- DCA_NAMESPACE(OObjectBroker, dca)* ImpGetBroker();
-@@ -73,7 +77,7 @@
- // - class RmBasisObject -
- // -----------------------
-
--class RmBasisObject : public DCA_NAMESPACE(OObj , dca)
-+class SO3_DLLPUBLIC RmBasisObject : public DCA_NAMESPACE(OObj , dca)
- {
- protected:
- const char* pClassName;
-@@ -94,7 +98,7 @@
- // - class RmAppletStub -
- // ----------------------
-
--class RmAppletStub : public RmBasisObject
-+class SO3_DLLPUBLIC RmAppletStub : public RmBasisObject
- {
- public:
- RmAppletStub();
-@@ -118,7 +122,7 @@
- // - class RmAppletContext -
- // -------------------------
-
--class RmAppletContext : public RmBasisObject
-+class SO3_DLLPUBLIC RmAppletContext : public RmBasisObject
- {
- public:
- RmAppletContext( );
-@@ -138,7 +142,7 @@
- // - class RmAppletObject -
- // ------------------------
-
--class RmAppletObject : public RmBasisObject
-+class SO3_DLLPUBLIC RmAppletObject : public RmBasisObject
- {
- public:
- RmAppletObject( );
-diff -urN so3.orig/inc/soimpl.hxx so3/inc/soimpl.hxx
---- so3.orig/inc/soimpl.hxx 2005-09-07 23:39:43.000000000 +0200
-+++ so3/inc/soimpl.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -39,15 +39,19 @@
- #include <sot/absdev.hxx>
- #include <vcl/jobset.hxx>
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- /********************** JobSetupWrapper *********************************/
--class JobSetupWrapper : public AbstractDeviceData
-+class SO3_DLLPUBLIC JobSetupWrapper : public AbstractDeviceData
- {
- public:
- JobSetup aJobSetup;
-
-- JobSetupWrapper( const JobSetup & rJS );
-- virtual AbstractDeviceData * Copy() const;
-- virtual BOOL Equals( const AbstractDeviceData & rAD ) const;
-+ SO3_DLLPRIVATE JobSetupWrapper( const JobSetup & rJS );
-+ SO3_DLLPRIVATE virtual AbstractDeviceData * Copy() const;
-+ SO3_DLLPRIVATE virtual BOOL Equals( const AbstractDeviceData & rAD ) const;
- };
-
- #endif // _SOIMPL_HXX
-diff -urN so3.orig/inc/soipc.hxx so3/inc/soipc.hxx
---- so3.orig/inc/soipc.hxx 2005-09-07 23:39:56.000000000 +0200
-+++ so3/inc/soipc.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -46,6 +46,10 @@
- #include <ipc2.hxx>
- #endif
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- /*************************************************************************
- *************************************************************************/
- class SvStorage;
-@@ -104,7 +108,7 @@
- #define SO_BINDCTX_GETMODE 0x80
-
-
--class SvSoIPCServer : public SvIPCServiceMgr
-+class SO3_DLLPUBLIC SvSoIPCServer : public SvIPCServiceMgr
- {
- public:
- SvSoIPCServer();
-@@ -113,13 +117,13 @@
- virtual SvIPCService* GetObject( SvGlobalName& rAdr );
- };
-
--class SvSoIPCService : public SvIPCService
-+class SO3_DLLPUBLIC SvSoIPCService : public SvIPCService
- {
- friend class SvSoIPCServer;
- SvObject * pObj;
- protected:
-- virtual BOOL Request( ULONG nSeviceId, SvStream* pIn, SvStream* pOut );
-- virtual void NotifyLock( BOOL bLock );
-+ SO3_DLLPRIVATE virtual BOOL Request( ULONG nSeviceId, SvStream* pIn, SvStream* pOut );
-+ SO3_DLLPRIVATE virtual void NotifyLock( BOOL bLock );
- public:
- SvSoIPCService( SvObject * pObj );
- ~SvSoIPCService();
-@@ -130,7 +134,7 @@
- class ErrorBox;
-
- // muss struct wegen define auf IUnknown
--class SvSoIPCClient : public SvIPCClient
-+class SO3_DLLPUBLIC SvSoIPCClient : public SvIPCClient
- {
- SvObject * pObj;
- ErrorBox * pTimeoutBox;
-diff -urN so3.orig/inc/so2dll.hxx so3/inc/so2dll.hxx
---- so3.orig/inc/so2dll.hxx 2005-09-07 23:38:56.000000000 +0200
-+++ so3/inc/so2dll.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -46,6 +46,10 @@
- #include <tools/globname.hxx>
- #endif
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- /*************************************************************************
- *************************************************************************/
- class ImpFactory;
-@@ -71,7 +75,7 @@
- struct SvBindingData;
-
- //=========================================================================
--struct ConvertTo_Impl
-+struct SO3_DLLPRIVATE ConvertTo_Impl
- /* [Beschreibung]
-
- In dieser Struktur werden Informationen "uber den Vorg"anger und den
-@@ -100,7 +104,7 @@
- #define SO3_OFFICE_VERSIONS 5
-
-
--class SoDll
-+class SO3_DLLPUBLIC SoDll
- {
- friend class ImpFactory;
- friend class SvFactory;
-diff -urN so3.orig/inc/so3/so3dllapi.h so3/inc/so3/so3dllapi.h
---- so3.orig/inc/so3/so3dllapi.h 1970-01-01 01:00:00.000000000 +0100
-+++ so3/inc/so3/so3dllapi.h 2005-12-06 14:30:57.000000000 +0100
-@@ -0,0 +1,80 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ * Copyright: 2004 by Novell, Inc.
-+ * Copyright: 2005 by Intel Corporation.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): ndevaiah____________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#define INCLUDED_SO3DLLAPI_H
-+
-+#ifndef _SAL_TYPES_H_
-+#include "sal/types.h"
-+#endif
-+
-+#if defined(SO3_DLLIMPLEMENTATION)
-+#define SO3_DLLPUBLIC SAL_DLLPUBLIC_EXPORT
-+#else
-+#define SO3_DLLPUBLIC SAL_DLLPUBLIC_IMPORT
-+#endif
-+#define SO3_DLLPRIVATE SAL_DLLPRIVATE
-+
-+#endif /* INCLUDED_SO3DLLAPI_H */
-+
-diff -urN so3.orig/inc/staticbaseurl.hxx so3/inc/staticbaseurl.hxx
---- so3.orig/inc/staticbaseurl.hxx 2005-09-07 23:40:14.000000000 +0200
-+++ so3/inc/staticbaseurl.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -47,6 +47,10 @@
- #include "tools/urlobj.hxx"
- #endif
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- class ByteString;
- class String;
-
-@@ -58,7 +62,7 @@
- */
- namespace StaticBaseUrl {
-
--String RelToAbs(
-+SO3_DLLPRIVATE String RelToAbs(
- ByteString const & rTheRelURIRef, bool bIgnoreFragment = false,
- INetURLObject::EncodeMechanism eEncodeMechanism
- = INetURLObject::WAS_ENCODED,
-@@ -76,7 +80,7 @@
- rtl_TextEncoding eCharset = RTL_TEXTENCODING_UTF8,
- INetURLObject::FSysStyle eStyle = INetURLObject::FSYS_DETECT);
-
--String AbsToRel(
-+SO3_DLLPRIVATE String AbsToRel(
- ByteString const & rTheAbsURIRef,
- INetURLObject::EncodeMechanism eEncodeMechanism
- = INetURLObject::WAS_ENCODED,
-@@ -94,7 +98,7 @@
- rtl_TextEncoding eCharset = RTL_TEXTENCODING_UTF8,
- INetURLObject::FSysStyle eStyle = INetURLObject::FSYS_DETECT);
-
--bool SetBaseURL(
-+SO3_DLLPRIVATE bool SetBaseURL(
- ByteString const & rTheBaseURIRef,
- INetURLObject::EncodeMechanism eMechanism = INetURLObject::WAS_ENCODED,
- rtl_TextEncoding eCharset = RTL_TEXTENCODING_UTF8);
-@@ -108,7 +112,7 @@
- INetURLObject::DecodeMechanism eMechanism = INetURLObject::DECODE_TO_IURI,
- rtl_TextEncoding eCharset = RTL_TEXTENCODING_UTF8);
-
--String SmartRelToAbs(
-+SO3_DLLPRIVATE String SmartRelToAbs(
- ByteString const & rTheRelURIRef, bool bIgnoreFragment = false,
- INetURLObject::EncodeMechanism eEncodeMechanism
- = INetURLObject::WAS_ENCODED,
-diff -urN so3.orig/inc/svlink.hxx so3/inc/svlink.hxx
---- so3.orig/inc/svlink.hxx 2005-09-07 23:40:28.000000000 +0200
-+++ so3/inc/svlink.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -40,6 +40,10 @@
- #include <iface.hxx>
- #endif
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- /*************************************************************************
- *************************************************************************/
- class SvLinkName;
-@@ -49,11 +53,11 @@
- SO2_DECL_REF(SvLinkName)
- #endif
-
--class SvLinkObject : virtual public SvObject
-+class SO3_DLLPUBLIC SvLinkObject : virtual public SvObject
- {
- IOleLink * pObjI;
- protected:
-- ~SvLinkObject();
-+ SO3_DLLPRIVATE ~SvLinkObject();
- public:
- SvLinkObject();
- SO2_DECL_STANDARD_CLASS_DLL(SvLinkObject,SOAPP)
-diff -urN so3.orig/inc/svstor.hxx so3/inc/svstor.hxx
---- so3.orig/inc/svstor.hxx 2005-09-07 23:40:45.000000000 +0200
-+++ so3/inc/svstor.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -45,6 +45,10 @@
-
- #include <so2defs.hxx>
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- #ifdef SvStorage
- #undef SvStorage
- #undef SvStorageRef
-@@ -54,18 +58,18 @@
-
- class SvStorage;
- class StorageStream;
--class SvStorageStream : virtual public SvObject, public SotStorageStream
-+class SO3_DLLPUBLIC SvStorageStream : virtual public SvObject, public SotStorageStream
- {
- friend class SvStorage;
- friend class ImpStream;
- void * pObjI; // Zeiger auf das Speichermedium
- void * pRelease; // OLE-Spec, wenn Erzeuger zerstoert
-- virtual ULONG GetData( void* pData, ULONG nSize );
-- virtual ULONG PutData( const void* pData, ULONG nSize );
-- virtual ULONG SeekPos( ULONG nPos );
-- virtual void FlushData();
-+ SO3_DLLPRIVATE virtual ULONG GetData( void* pData, ULONG nSize );
-+ SO3_DLLPRIVATE virtual ULONG PutData( const void* pData, ULONG nSize );
-+ SO3_DLLPRIVATE virtual ULONG SeekPos( ULONG nPos );
-+ SO3_DLLPRIVATE virtual void FlushData();
- protected:
-- ~SvStorageStream();
-+ SO3_DLLPRIVATE ~SvStorageStream();
- public:
- static void Ole2SvStreamMode( ULONG nOleMode,
- StreamMode *, StorageMode * );
-@@ -97,14 +101,14 @@
- class ImpPersistFile;
- class SvStorageInfoList;
- class Storage;
--class SvStorage : virtual public SvObject, public SotStorage
-+class SO3_DLLPUBLIC SvStorage : virtual public SvObject, public SotStorage
- {
- friend class SvStorageStream;
- friend class ImpPersistFile;
- void * pRelease; // OLE-Spec, wenn Erzeuger zerstoert
- void * pObjI; // Zeiger auf das Speichermedium
- protected:
-- ~SvStorage();
-+ SO3_DLLPRIVATE ~SvStorage();
- public:
- SvStorage( const String &,
- StreamMode = STREAM_STD_READWRITE,
-diff -urN so3.orig/inc/svuidlg.hxx so3/inc/svuidlg.hxx
---- so3.orig/inc/svuidlg.hxx 2005-09-07 23:41:20.000000000 +0200
-+++ so3/inc/svuidlg.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -41,9 +41,14 @@
-
- #include <svtools/svmedit.hxx> // MultiLineEdit
-
-+
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- // class MdPasteObject ---------------------------------------------------
-
--class MdPasteObject : public ModalDialog
-+class SO3_DLLPUBLIC MdPasteObject : public ModalDialog
- {
- protected:
- FixedText aFtSource;
-@@ -64,7 +69,7 @@
-
- // class MdUpdateBaselinks -----------------------------------------------
-
--class MdUpdateBaselinks : public ModalDialog
-+class SO3_DLLPUBLIC MdUpdateBaselinks : public ModalDialog
- {
- protected:
- FixedText aFtFiles;
-@@ -100,7 +105,7 @@
-
- // class MdDdeLinkedit ---------------------------------------------------
-
--class MdDdeLinkedit : public ModalDialog
-+class SO3_DLLPUBLIC MdDdeLinkedit : public ModalDialog
- {
- protected:
- FixedText aFtDdeApp;
-@@ -118,7 +123,7 @@
-
- // class MdInsertObjectPlugin --------------------------------------------
-
--class MdInsertObjectPlugin : public ModalDialog
-+class SO3_DLLPUBLIC MdInsertObjectPlugin : public ModalDialog
- {
- protected:
- Edit aEdFileurl;
-@@ -135,7 +140,7 @@
-
- // class MdInsertObjectApplet --------------------------------------------
-
--class MdInsertObjectApplet : public ModalDialog
-+class SO3_DLLPUBLIC MdInsertObjectApplet : public ModalDialog
- {
- protected:
- FixedText aFtClassfile;
-@@ -155,7 +160,7 @@
-
- // class MdInsertOleobject -----------------------------------------------
-
--class MdInsertOleobject : public ModalDialog
-+class SO3_DLLPUBLIC MdInsertOleobject : public ModalDialog
- {
- protected:
- RadioButton aRbNewObject;
-diff -urN so3.orig/inc/transbnd.hxx so3/inc/transbnd.hxx
---- so3.orig/inc/transbnd.hxx 2005-09-07 23:41:36.000000000 +0200
-+++ so3/inc/transbnd.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -76,6 +76,10 @@
- #include <transprt.hxx>
- #endif
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- class SfxCancelManager;
- class SfxCancellable;
-
-@@ -94,7 +98,7 @@
- * SvBinding interface.
- *
- *======================================================================*/
--class SvBinding : public SvBindingTransportCallback, public SvRefBase
-+class SO3_DLLPUBLIC SvBinding : public SvBindingTransportCallback, public SvRefBase
- {
- /** Representation.
- */
-@@ -118,43 +122,43 @@
-
- /** StartTransport.
- */
-- void StartTransport (void);
-+ SO3_DLLPRIVATE void StartTransport (void);
-
- /** SvBindingTransportCallback implementation.
- */
-- virtual void OnStart (void);
-+ SO3_DLLPRIVATE virtual void OnStart (void);
-
-- virtual void OnError (
-+ SO3_DLLPRIVATE virtual void OnError (
- ErrCode eErrCode);
-
-- virtual void OnMimeAvailable (
-+ SO3_DLLPRIVATE virtual void OnMimeAvailable (
- const String &rMime);
-
-- virtual void OnExpiresAvailable (
-+ SO3_DLLPRIVATE virtual void OnExpiresAvailable (
- const DateTime &rExpires);
-
-- virtual void OnHeaderAvailable (
-+ SO3_DLLPRIVATE virtual void OnHeaderAvailable (
- const String &rName, const String &rValue);
-
-- virtual void OnDataAvailable (
-+ SO3_DLLPRIVATE virtual void OnDataAvailable (
- SvStatusCallbackType eType,
- ULONG nSize,
- SvLockBytes *pLockBytes);
-
-- virtual void OnProgress (
-+ SO3_DLLPRIVATE virtual void OnProgress (
- ULONG nNow, ULONG nEnd, SvBindStatus eStatus);
-
-- virtual void OnRedirect (
-+ SO3_DLLPRIVATE virtual void OnRedirect (
- const String &rUrl);
-
- /** Not implemented.
- */
-- COPYCTOR_API(SvBinding);
-+ SO3_DLLPRIVATE COPYCTOR_API(SvBinding);
-
- protected:
- /** Destruction (SvRefBase).
- */
-- virtual ~SvBinding (void);
-+ SO3_DLLPRIVATE virtual ~SvBinding (void);
-
- public:
- /** Construction.
-@@ -272,7 +276,7 @@
- * SvBindStatusCallback interface.
- *
- *======================================================================*/
--struct SvProgressArg
-+struct SO3_DLLPRIVATE SvProgressArg
- {
- ULONG nProgress;
- ULONG nMax;
-@@ -283,7 +287,7 @@
- SvProgressArg (const String& rStatusText) : rStatus (rStatusText) {}
- };
-
--class SvBindStatusCallback : public SvRefBase
-+class SO3_DLLPUBLIC SvBindStatusCallback : public SvRefBase
- {
- /** Representation.
- */
-@@ -342,7 +346,7 @@
- * SvKeyValue.
- *
- *======================================================================*/
--class SvKeyValue
-+class SO3_DLLPUBLIC SvKeyValue
- {
- /** Representation.
- */
-@@ -365,7 +369,7 @@
-
- /** Assignment.
- */
-- SvKeyValue& operator= (SvKeyValue &rOther)
-+ SO3_DLLPRIVATE SvKeyValue& operator= (SvKeyValue &rOther)
- {
- m_aKey = rOther.m_aKey;
- m_aValue = rOther.m_aValue;
-@@ -387,7 +391,7 @@
- *
- *======================================================================*/
- class SvKeyValueList_Impl;
--class SvKeyValueIterator : public SvRefBase
-+class SO3_DLLPUBLIC SvKeyValueIterator : public SvRefBase
- {
- /** Representation.
- */
-@@ -396,7 +400,7 @@
-
- /** Not implemented.
- */
-- COPYCTOR_API(SvKeyValueIterator);
-+ SO3_DLLPRIVATE COPYCTOR_API(SvKeyValueIterator);
-
- public:
- /** Construction/Destruction.
-@@ -418,7 +422,7 @@
- * SvRemoteStream.
- *
- *======================================================================*/
--class SvRemoteStream : public SvStream
-+class SO3_DLLPUBLIC SvRemoteStream : public SvStream
- {
- SvBindingRef m_xBinding;
- String m_aUrl;
-diff -urN so3.orig/inc/transprt.hxx so3/inc/transprt.hxx
---- so3.orig/inc/transprt.hxx 2005-09-07 23:41:52.000000000 +0200
-+++ so3/inc/transprt.hxx 2005-12-06 14:30:57.000000000 +0100
-@@ -56,6 +56,10 @@
- #include <binding.hxx>
- #endif
-
-+#ifndef INCLUDED_SO3DLLAPI_H
-+#include "so3/so3dllapi.h"
-+#endif
-+
- class SvBindingTransport;
- class SvBindingTransportFactory;
- class SvBindingTransportCallback;
-@@ -70,11 +74,11 @@
- * SvBindingTransport interface.
- *
- *======================================================================*/
--class SvBindingTransport
-+class SO3_DLLPUBLIC SvBindingTransport
- {
- /** Not implemented.
- */
-- COPYCTOR_API(SvBindingTransport);
-+ SO3_DLLPRIVATE COPYCTOR_API(SvBindingTransport);
-
- public:
- SvBindingTransport (void);
-@@ -97,11 +101,11 @@
- * SvBindingTransportFactory interface.
- *
- *======================================================================*/
--class SvBindingTransportFactory
-+class SO3_DLLPUBLIC SvBindingTransportFactory
- {
- /** Not implemented.
- */
-- COPYCTOR_API(SvBindingTransportFactory);
-+ SO3_DLLPRIVATE COPYCTOR_API(SvBindingTransportFactory);
-
- public:
- SvBindingTransportFactory (void);
-@@ -122,7 +126,7 @@
- *
- *======================================================================*/
- class DateTime;
--class SvBindingTransportCallback
-+class SO3_DLLPUBLIC SvBindingTransportCallback
- {
- public:
- virtual void OnStart (void) = 0;
-@@ -151,7 +155,7 @@
- * SvBindingTransportContext.
- *
- *======================================================================*/
--class SvBindingTransportContext
-+class SO3_DLLPUBLIC SvBindingTransportContext
- {
- /** Representation.
- */
-@@ -220,7 +224,7 @@
- * SvLockBytesFactory interface.
- *
- *======================================================================*/
--class SvLockBytesFactory
-+class SO3_DLLPUBLIC SvLockBytesFactory
- {
- /** Representation.
- */
-@@ -228,7 +232,7 @@
-
- /** Not implemented.
- */
-- COPYCTOR_API(SvLockBytesFactory);
-+ SO3_DLLPRIVATE COPYCTOR_API(SvLockBytesFactory);
-
- public:
- SvLockBytesFactory (const String & rWildcard);
-@@ -247,7 +251,7 @@
- * SfxSimpleLockBytesFactory interface.
- *
- *======================================================================*/
--class SfxSimpleLockBytesFactory :
-+class SO3_DLLPUBLIC SfxSimpleLockBytesFactory :
- public SvLockBytesFactory, public SvRefBase
- {
- /** Representation.
-@@ -259,7 +263,7 @@
-
- /** Not implemented.
- */
-- COPYCTOR_API(SfxSimpleLockBytesFactory);
-+ SO3_DLLPRIVATE COPYCTOR_API(SfxSimpleLockBytesFactory);
-
- public:
- /** Destruction (protected) (SvRefBase).
-@@ -289,11 +293,11 @@
- * SvLockBytesTransportFactory interface.
- *
- *======================================================================*/
--class SvLockBytesTransportFactory : public SvBindingTransportFactory
-+class SO3_DLLPUBLIC SvLockBytesTransportFactory : public SvBindingTransportFactory
- {
- /** Not implemented.
- */
-- COPYCTOR_API(SvLockBytesTransportFactory);
-+ SO3_DLLPRIVATE COPYCTOR_API(SvLockBytesTransportFactory);
-
- public:
- SvLockBytesTransportFactory (void);
-@@ -313,11 +317,11 @@
- * CntTransportFactory interface.
- *
- *======================================================================*/
--class CntTransportFactory : public SvBindingTransportFactory
-+class SO3_DLLPUBLIC CntTransportFactory : public SvBindingTransportFactory
- {
- /** Not implemented.
- */
-- COPYCTOR_API(CntTransportFactory);
-+ SO3_DLLPRIVATE COPYCTOR_API(CntTransportFactory);
-
- public:
- CntTransportFactory (void);
-diff -urN so3.orig/prj/d.lst so3/prj/d.lst
---- so3.orig/prj/d.lst 2005-01-11 12:25:12.000000000 +0100
-+++ so3/prj/d.lst 2005-12-06 14:30:57.000000000 +0100
-@@ -48,3 +48,6 @@
- hedabu: ..\inc\transbnd.hxx %_DEST%\inc%_EXT%\so3\transbnd.hxx
- hedabu: ..\inc\transprt.hxx %_DEST%\inc%_EXT%\so3\transprt.hxx
- ..\inc\staticbaseurl.hxx %_DEST%\inc%_EXT%\so3\staticbaseurl.hxx
-+
-+mkdir: %_DEST%\inc%_EXT%\so3\so3
-+hedabu: ..\inc\so3\so3dllapi.h %_DEST%\inc%_EXT%\so3\so3\so3dllapi.h
-diff -urN so3.orig/util/makefile.mk so3/util/makefile.mk
---- so3.orig/util/makefile.mk 2005-09-08 00:01:26.000000000 +0200
-+++ so3/util/makefile.mk 2005-12-06 14:30:57.000000000 +0100
-@@ -50,6 +50,7 @@
- # --- Settings -----------------------------------------------------
-
- .INCLUDE : settings.mk
-+.INCLUDE : $(PRJ)$/util$/makefile.pmk
-
- RSCFLAGS+=-p
-
-diff -urN so3.orig/util/makefile.pmk so3/util/makefile.pmk
---- so3.orig/util/makefile.pmk 2005-09-08 00:01:53.000000000 +0200
-+++ so3/util/makefile.pmk 2005-12-06 14:30:57.000000000 +0100
-@@ -32,3 +32,11 @@
- # MA 02111-1307 USA
- #
- #*************************************************************************
-+
-+# Reduction of exported symbols:
-+CDEFS += -DSO3_DLLIMPLEMENTATION
-+.IF "$(COMNAME)" == "gcc3" && "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
-+CFLAGS += -fvisibility=hidden
-+.ELIF "$(COMNAME)" == "sunpro5" && "$(CCNUMVER)" >= "00050005"
-+CFLAGS += -xldscope=hidden
-+.ENDIF
diff --git a/patches/src680/linkoo-ooenv.diff b/patches/src680/linkoo-ooenv.diff
deleted file mode 100644
index 490c78202..000000000
--- a/patches/src680/linkoo-ooenv.diff
+++ /dev/null
@@ -1,18 +0,0 @@
-Index: solenv/bin/linkoo
-===================================================================
-RCS file: /cvs/tools/solenv/bin/linkoo,v
-retrieving revision 1.8
-diff -u -p -u -r1.8 linkoo
---- solenv/bin/linkoo 31 May 2005 16:22:06 -0000 1.8
-+++ solenv/bin/linkoo 26 Aug 2005 16:33:46 -0000
-@@ -76,6 +76,10 @@ ulimit -c unlimited
- export PATH=".:$PATH"
- export GNOME_DISABLE_CRASH_DIALOG=1
- export STAR_RESOURCEPATH=`pwd`/resource
-+# debugging assistance
-+export OOO_FORCE_SYSALLOC=1
-+export MALLOC_CHECK_=2
-+export OOO_DISABLE_RECOVERY=1
- ';
-
- my @exceptions = ( 'cppuhelper', 'configmgr', 'cfgmgr', 'sunjavaplugin' );
diff --git a/patches/src680/linkoo-rc-dependent-files.diff b/patches/src680/linkoo-rc-dependent-files.diff
deleted file mode 100644
index d8de34ffd..000000000
--- a/patches/src680/linkoo-rc-dependent-files.diff
+++ /dev/null
@@ -1,47 +0,0 @@
---- solenv/bin/linkoo 2005-09-21 16:58:47.000000000 +0530
-+++ solenv/bin/linkoo 2005-10-18 12:31:38.000000000 +0530
-@@ -306,6 +306,36 @@ sub link_types_rdb()
- print "\n";
- }
-
-+# Hack for soffice.bin and configmgr2.uno.so that depend on rc files
-+sub link_rc_dependent_files()
-+{
-+ print "soffice.bin case:";
-+ my $src = "$OOO_BUILD/desktop/$TARGET/bin";
-+ my $dest = "$OOO_INSTALL/program";
-+ if (-l "$src/bootstraprc" && -f (readlink("$src/bootstraprc"))
-+ && !((readlink ("$src/bootstraprc")) eq "$dest/bootstraprc")) {
-+ print " Existing valid bootstraprc symlink - not overwriting";
-+ } else {
-+ unlink ("$src/bootstraprc");
-+ do_link ($src, $dest, 'soffice', 'soffice.bin');
-+ symlink ("$dest/bootstraprc", "$src/bootstraprc") || die "Failed to symlink: $!";
-+ }
-+ print "\n";
-+
-+ print "configmgr2.uno.so case:";
-+ my $src = "$OOO_BUILD/configmgr/$TARGET/lib";
-+ my $dest = "$OOO_INSTALL/program";
-+ if (-l "$src/configmgrrc" && -f (readlink("$src/configmgrrc"))
-+ && !((readlink ("$src/configmgrrc")) eq "$dest/configmgrrc")) {
-+ print " Existing valid configmgrrc symlink - not overwriting";
-+ } else {
-+ unlink ("$src/configmgrrc");
-+ do_link ($src, $dest, 'configmgr2.uno.so', 'configmgr2.uno.so');
-+ symlink ("$dest/configmgrrc", "$src/configmgrrc") || die "Failed to symlink: $!";
-+ }
-+ print "\n";
-+}
-+
- my $a;
- my $usage = 0;
- for $a (@ARGV) {
-@@ -355,6 +385,7 @@ my $installed_files = build_installed_li
- scan_and_link_files ($OOO_BUILD, $installed_files, $TARGET);
- link_iso_res();
- link_types_rdb();
-+link_rc_dependent_files();
-
- if (!-f "$OOO_INSTALL/program/ooenv") {
- print "Creating '$OOO_INSTALL/program/ooenv'\n";
diff --git a/patches/src680/linkoo-warning.diff b/patches/src680/linkoo-warning.diff
deleted file mode 100644
index 6525234f0..000000000
--- a/patches/src680/linkoo-warning.diff
+++ /dev/null
@@ -1,21 +0,0 @@
-Index: vcl/unx/gtk/window/gtkframe.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/gtk/window/gtkframe.cxx,v
-retrieving revision 1.26
-diff -u -r1.26 gtkframe.cxx
---- vcl/unx/gtk/window/gtkframe.cxx 30 Mar 2005 09:11:10 -0000 1.26
-+++ vcl/unx/gtk/window/gtkframe.cxx 6 Apr 2005 15:56:19 -0000
-@@ -729,8 +729,12 @@
-
- for( nIndex = 0; nIndex < sizeof(nOffsets)/ sizeof(USHORT); nIndex++ )
- {
-+ ResMgr *pResMgr = ImplGetResMgr();
-+ if( !pResMgr )
-+ g_error( "Can't locate resource manager, if you're using linkoo - did "
-+ "you remember to source ./ooenv before running ./soffice.bin ?" );
- // #i44723# workaround gcc temporary problem
-- ResId aResId( nOffsets[nIndex] + nIcon, ImplGetResMgr() );
-+ ResId aResId( nOffsets[nIndex] + nIcon, pResMgr );
- BitmapEx aIcon( aResId );
-
- ImpBitmap *pIconImpBitmap = aIcon.ImplGetBitmapImpBitmap();
diff --git a/patches/src680/lwp-build.diff b/patches/src680/lwp-build.diff
deleted file mode 100644
index c1182d269..000000000
--- a/patches/src680/lwp-build.diff
+++ /dev/null
@@ -1,68 +0,0 @@
-Index: sw/prj/build.lst
-===================================================================
-RCS file: /cvs/sw/sw/prj/build.lst,v
-retrieving revision 1.15
-diff -u -r1.15 build.lst
---- sw/prj/build.lst 9 Nov 2004 16:19:48 -0000 1.15
-+++ sw/prj/build.lst 2 May 2005 09:46:05 -0000
-@@ -63,6 +63,7 @@
- sw sw\source\filter\html nmake - all sw_html NULL
- sw sw\source\filter\lotus nmake - all sw_lotus NULL
- sw sw\source\filter\rtf nmake - all sw_rtf NULL
-+sw sw\source\filter\lwp nmake - all sw_lwp NULL
- sw sw\source\filter\sw6 nmake - all sw_sw6 NULL
- sw sw\source\filter\w4w nmake - all sw_w4w NULL
- sw sw\source\filter\writer nmake - all sw_wrtr NULL
-@@ -71,5 +72,5 @@
- sw sw\source\filter\xml nmake - all sw_xml NULL
- sw sw\source\ui nmake - all sw_ui sw_app sw_cctrl sw_chrdl sw_conf sw_dbui sw_dchdl sw_dcvw sw_dlg sw_envlp sw_fldui sw_fmtui sw_frmdl sw_globd sw_index sw_ling sw_misc sw_rbbar sw_shell sw_table sw_uiuno sw_uivw sw_utlui sw_web sw_wrtsh NULL
- sw sw\source\core nmake - all sw_core sw_attr sw_bast sw_crsr sw_dcnd sw_doc sw_draw sw_edit sw_excpt sw_fld sw_frmed sw_grph sw_layo sw_ole sw_para sw_sw3io sw_swg sw_text sw_tox sw_txtnd sw_uco sw_undo sw_view sw_acc sw_objpos sw_NumberTree NULL
--sw sw\source\filter nmake - all sw_flt sw_ascii sw_bsflt sw_excel sw_html sw_lotus sw_rtf sw_sw6 sw_w4w sw_wrtr sw_ww1 sw_ww8 sw_xml NULL
-+sw sw\source\filter nmake - all sw_flt sw_ascii sw_bsflt sw_excel sw_html sw_lotus sw_rtf sw_lwp sw_sw6 sw_w4w sw_wrtr sw_ww1 sw_ww8 sw_xml NULL
- sw sw\util nmake - all sw_util sw_core sw_flt sw_sdi sw_ui NULL
-Index: sw/source/filter/makefile.mk
-===================================================================
-RCS file: /cvs/sw/sw/source/filter/makefile.mk,v
-retrieving revision 1.5
-diff -u -r1.5 makefile.mk
---- sw/source/filter/makefile.mk 2 Feb 2004 18:27:23 -0000 1.5
-+++ sw/source/filter/makefile.mk 2 May 2005 09:46:28 -0000
-@@ -85,11 +85,12 @@
- $(SLB)$/html.lib \
- $(SLB)$/lotus.lib \
- $(SLB)$/rtf.lib \
-+ $(SLB)$/lwp.lib \
- $(SLB)$/w4w.lib \
- $(SLB)$/writer.lib \
- $(SLB)$/ww1.lib \
- $(SLB)$/ww8.lib \
-- $(SLB)$/xml.lib
-+ $(SLB)$/xml.lib
-
- .IF "$(compact)" == ""
- SUBLIBS+= \
---- /dev/null 2004-08-25 23:04:59.000000000 +0530
-+++ sw/source/filter/lwp/makefile.mk 2005-05-04 10:45:41.479394832 +0530
-@@ -0,0 +1,22 @@
-+PRJ=..$/..$/..
-+
-+PRJNAME=sw
-+TARGET=lwp
-+
-+# --- Settings -----------------------------------------------------
-+
-+.INCLUDE : $(PRJ)$/inc$/swpre.mk
-+.INCLUDE : settings.mk
-+.INCLUDE : $(PRJ)$/inc$/sw.mk
-+
-+# --- Files --------------------------------------------------------
-+
-+CXXFILES = \
-+ lwpparser.cxx
-+SLOFILES = \
-+ $(SLO)$/lwpparser.obj
-+
-+# --- Tagets -------------------------------------------------------
-+
-+.INCLUDE : target.mk
-+
diff --git a/patches/src680/lwp-detect.diff b/patches/src680/lwp-detect.diff
deleted file mode 100644
index 37471f514..000000000
--- a/patches/src680/lwp-detect.diff
+++ /dev/null
@@ -1,151 +0,0 @@
---- /dev/null 2004-08-25 23:04:59.000000000 +0530
-+++ filter/source/config/fragments/filters/Lwp.xcu 2005-05-02 14:50:01.118383936 +0530
-@@ -0,0 +1,13 @@
-+ <node oor:name="Lwp" oor:op="replace" oor:finalized="true" oor:mandatory="true">
-+ <prop oor:name="Flags"><value>IMPORT ALIEN USESOPTIONS PREFERRED</value></prop>
-+ <prop oor:name="UIComponent"/>
-+ <prop oor:name="FilterService"/>
-+ <prop oor:name="UserData"><value>LWP</value></prop>
-+ <prop oor:name="UIName">
-+ <value xml:lang="x-default">Lotus Word Pro</value>
-+ </prop>
-+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
-+ <prop oor:name="Type"><value>writer_Lwp</value></prop>
-+ <prop oor:name="TemplateName"/>
-+ <prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop>
-+ </node>
---- /dev/null 2004-08-25 23:04:59.000000000 +0530
-+++ filter/source/config/fragments/types/writer_Lwp.xcu 2005-04-29 09:37:06.000000000 +0530
-@@ -0,0 +1,12 @@
-+ <node oor:name="writer_Lwp" oor:op="replace" oor:finalized="true" oor:mandatory="true">
-+ <prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop>
-+ <prop oor:name="URLPattern"/>
-+ <prop oor:name="Extensions"><value>lwp</value></prop>
-+ <prop oor:name="MediaType"><value></value></prop>
-+ <prop oor:name="Preferred"><value>false</value></prop>
-+ <prop oor:name="PreferredFilter"><value>Lwp</value></prop>
-+ <prop oor:name="UIName">
-+ <value>Lotus Word Pro</value>
-+ </prop>
-+ <prop oor:name="ClipboardFormat"/>
-+ </node>
-Index: sw/inc/shellio.hxx
-===================================================================
-RCS file: /cvs/sw/sw/inc/shellio.hxx,v
-retrieving revision 1.28
-diff -u -r1.28 shellio.hxx
---- sw/inc/shellio.hxx 25 Jan 2005 13:58:38 -0000 1.28
-+++ sw/inc/shellio.hxx 2 May 2005 09:55:50 -0000
-@@ -351,6 +351,10 @@
- virtual ULONG Read( SwDoc &, const String& rBaseURL, SwPaM &,const String &);
- };
-
-+class LwpReader: public Reader
-+{
-+ virtual ULONG Read( SwDoc &, const String& rBaseURL, SwPaM &, const String & );
-+};
-
- class AsciiReader: public Reader
- {
-@@ -753,6 +757,7 @@
-
- extern const sal_Char __FAR_DATA FILTER_SWG[]; // SWG-Filter
- extern const sal_Char __FAR_DATA FILTER_RTF[]; // RTF-Filter
-+extern const sal_Char __FAR_DATA FILTER_LWP[]; // LWP-Filter
- extern const sal_Char __FAR_DATA FILTER_TEXT[]; // Text-Filter mit Default-CodeSet
- extern const sal_Char __FAR_DATA FILTER_BAS[]; // StarBasic (identisch mit ANSI)
- extern const sal_Char __FAR_DATA FILTER_W4W[]; // W4W-Filter
---- sw/inc/iodetect.cxx.bak 2005-05-04 13:28:18.825052824 +0530
-+++ sw/inc/iodetect.cxx 2005-05-04 11:49:05.135151264 +0530
-@@ -154,12 +154,6 @@
-
- #endif
-
--const USHORT MAXFILTER =
--#ifdef DEBUG_SH
-- 1 +
--#endif
-- 18;
--
- #define FORAMTNAME_SW4 "StarWriter 4.0"
- #define FORAMTNAME_SW3 "StarWriter 3.0"
- #define FORAMTNAME_SWGLOB "StarWriter/Global 4.0"
-@@ -171,6 +165,7 @@
- const sal_Char __FAR_DATA FILTER_SW5[] = "CSW5";
- const sal_Char __FAR_DATA FILTER_BAS[] = "BAS";
- const sal_Char __FAR_DATA FILTER_RTF[] = "RTF";
-+const sal_Char __FAR_DATA FILTER_LWP[] = "LWP";
- const sal_Char __FAR_DATA FILTER_W4W[] = "W4W";
- const sal_Char __FAR_DATA FILTER_SWGV[] = "SWGV";
- const sal_Char __FAR_DATA FILTER_SW3V[] = "CSW3V";
-@@ -214,7 +209,7 @@
- }
-
- #endif
--SwIoDetect aReaderWriter[ MAXFILTER ] =
-+SwIoDetect aReaderWriter[ ] =
- {
- ///* 0*/ SwIoEntry(FILTER_SW5, 4, &::GetSw3Writer, TRUE),
- ///* 1*/ SwIoEntry(FILTER_SW4, 4, &::GetSw3Writer, FALSE),
-@@ -222,6 +217,7 @@
- /* 3*/ SwIoEntry(FILTER_SWG, STRING_LEN, 0, TRUE),
- /* 4*/ SwIoEntry(FILTER_SWGV, 4, 0, FALSE),
- /* 5*/ SwIoEntry(FILTER_RTF, STRING_LEN, &::GetRTFWriter, TRUE),
-+ SwIoEntry(FILTER_LWP, STRING_LEN, 0, TRUE),
- /* 6*/ SwIoEntry(sSwDos, STRING_LEN, 0, TRUE),
- /* 7*/ SwIoEntry(FILTER_BAS, STRING_LEN, &::GetASCWriter, FALSE),
- /* 8*/ SwIoEntry(sWW6, STRING_LEN, &::GetWW8Writer, TRUE),
-@@ -242,6 +238,7 @@
-
- const char* pSw = "swriter";
- const char* pSwWeb = "swriter/web";
-+const USHORT MAXFILTER = sizeof( aReaderWriter ) / sizeof( aReaderWriter[ 0 ] );
-
- // Filter erkennung
- struct W1_FIB
-@@ -287,6 +284,8 @@
- '1' == *(pHeader + 3);
- else if( FILTER_RTF == pName )
- bRet = 0 == strncmp( "{\\rtf", pHeader, 5 );
-+ else if( FILTER_LWP == pName )
-+ bRet = 0 == strncmp( "WordPro", pHeader, 7 );
- else if( sLotusD == pName )
- bRet = 0 == *pHeader++ && 0 == *pHeader++ &&
- 2 == *pHeader++ && 0 == *pHeader++ &&
---- sw/source/filter/basflt/fltini.cxx.bak 2005-05-04 13:27:14.336856520 +0530
-+++ sw/source/filter/basflt/fltini.cxx 2005-04-29 14:27:39.000000000 +0530
-@@ -182,7 +182,7 @@
- using namespace rtl;
- using namespace com::sun::star::uno;
-
--SwRead ReadRtf = 0, ReadAscii = 0, ReadSwg = 0, ReadSw3 = 0,
-+SwRead ReadRtf = 0, ReadLwp = 0, ReadAscii = 0, ReadSwg = 0, ReadSw3 = 0,
- ReadHTML = 0, ReadXML = 0;
-
- SwRead SwGetReaderSw3() // SW_DLLPUBLIC
-@@ -220,6 +220,7 @@
- _SetFltPtr( nCnt, (ReadSwg = new SwgReader), FILTER_SWG );
- _SetFltPtr( nCnt, ReadSwg, FILTER_SWGV );
- _SetFltPtr( nCnt, (ReadRtf = new RtfReader), FILTER_RTF );
-+ _SetFltPtr( nCnt, (ReadLwp = new LwpReader), FILTER_LWP );
- _SetFltPtr( nCnt, new Sw6Reader, sSwDos );
- _SetFltPtr( nCnt, (ReadAscii = new AsciiReader), FILTER_BAS );
- _SetFltPtr( nCnt, pWW8Rd, sWW6 );
---- filter/source/config/fragments/fcfg_writer.mk.bak 2005-05-04 13:25:12.566368448 +0530
-+++ filter/source/config/fragments/fcfg_writer.mk 2005-05-04 13:22:55.726171320 +0530
-@@ -43,6 +43,7 @@
- writer_MS_Word_97 \
- writer_MS_Word_97_Vorlage \
- writer_Rich_Text_Format \
-+ writer_Lwp \
- writer_StarOffice_XML_Writer \
- $(T4_WRITER_BINFILTER) \
- writer_WordPerfect_Document \
-@@ -73,6 +74,7 @@
- MS_Word_97 \
- MS_Word_97_Vorlage \
- Rich_Text_Format \
-+ Lwp \
- StarOffice_XML__Writer_ \
- $(F4_WRITER_BINFILTER) \
- WordPerfect \
diff --git a/patches/src680/lwp-parse.diff b/patches/src680/lwp-parse.diff
deleted file mode 100644
index 2a5ac90dc..000000000
--- a/patches/src680/lwp-parse.diff
+++ /dev/null
@@ -1,90 +0,0 @@
---- /dev/null 2004-08-25 23:04:59.000000000 +0530
-+++ sw/source/filter/lwp/lwpparser.cxx 2005-05-02 15:23:25.578659656 +0530
-@@ -0,0 +1,87 @@
-+#include <doc.hxx>
-+#include <shellio.hxx>
-+#include <fltini.hxx>
-+#include <swtypes.hxx>
-+#include <pam.hxx>
-+#include <swerror.h>
-+
-+class LwpParser
-+{
-+ SwDoc* pDoc;
-+ SwPaM* pPam;
-+ SvStream& rInput;
-+
-+public:
-+ LwpParser( SwDoc *pDoc, const SwPaM& rPoint, SvStream& rIn );
-+ ULONG CallParser();
-+ void readString( String &rString, int nCount );
-+ bool CheckValidData( UINT8 nChar );
-+};
-+
-+ULONG LwpReader::Read( SwDoc &rDoc, const String&, SwPaM &rPam, const String & )
-+{
-+ if( !pStrm )
-+ return ERR_SWG_READ_ERROR;
-+ LwpParser* aParser = new LwpParser( &rDoc, rPam, *pStrm );
-+ ULONG nRet = aParser->CallParser();
-+
-+ return nRet;
-+}
-+
-+LwpParser::LwpParser( SwDoc* rDoc, const SwPaM& rPam, SvStream& pIn ):
-+ pDoc( rDoc ), rInput( pIn )
-+{
-+ pPam = new SwPaM( *rPam.GetPoint() );
-+}
-+
-+ULONG LwpParser::CallParser()
-+{
-+ UINT8 nDelim, nDummy, nLen, nData;
-+ UINT16 nOpcode;
-+ int nCount = 0;
-+ while( !rInput.IsEof())
-+ {
-+ rInput >> nDelim;
-+ if( nDelim == 0x40 )
-+ {
-+ rInput >> nDummy >> nOpcode;
-+ switch( nOpcode )
-+ {
-+ case 0xC00B: // Dictionary Word
-+ rInput >> nLen >> nDummy;
-+ while( nLen > 0 && !rInput.IsEof() )
-+ {
-+ UINT8 nChar;
-+ rInput >> nChar;
-+ if( CheckValidData( nChar ) )
-+ pDoc-> Insert( *pPam, nChar );
-+ nLen--;
-+ }
-+ break;
-+
-+ case 0x0242: // Non Dictionary word
-+ rInput >> nData;
-+ if( nData == 0x02 )
-+ {
-+ rInput >> nLen >> nDummy;
-+ while( nLen > 0 && !rInput.IsEof() )
-+ {
-+ rInput >> nData;
-+ if( CheckValidData( nData ) )
-+ pDoc->Insert( *pPam, nData );
-+ nLen--;
-+ }
-+ }
-+ break;
-+ }
-+ }
-+ }
-+return 0;
-+}
-+
-+bool LwpParser::CheckValidData( UINT8 nChar )
-+{
-+ if( ( nChar >= 0x20 && nChar <= 0x7E ) && ( nChar != 0X40 ) )
-+ return true;
-+ return false;
-+}
diff --git a/patches/src680/mailmerge-py-installation-fix.diff b/patches/src680/mailmerge-py-installation-fix.diff
deleted file mode 100644
index b5684bbaa..000000000
--- a/patches/src680/mailmerge-py-installation-fix.diff
+++ /dev/null
@@ -1,54 +0,0 @@
-Index: instsetoo_native/inc_openoffice/unix/packagelist.txt
-===================================================================
-RCS file: /cvs/installation/instsetoo_native/inc_openoffice/unix/packagelist.txt,v
-retrieving revision 1.20
-retrieving revision 1.20.10.1
-diff -u -u -r1.20 -r1.20.10.1
---- instsetoo_native/inc_openoffice/unix/packagelist.txt 11 Nov 2005 10:39:31 -0000 1.20
-+++ instsetoo_native/inc_openoffice/unix/packagelist.txt 29 Nov 2005 13:35:43 -0000 1.20.10.1
-@@ -246,15 +246,15 @@
-
- Start
- module = "gid_Module_Optional_Pymailmerge"
--solarispackagename = "openofficeorg-emailmerge"
--solarisrequires = "openofficeorg-pyuno"
--packagename = "openoffice.org-emailmerge"
--linuxreplaces = "openofficeorg-emailmerge"
--requires = "openoffice.org-pyuno"
-+solarispackagename = "%WITHOUTDOTUNIXPRODUCTNAME-emailmerge"
-+solarisrequires = "%WITHOUTDOTUNIXPRODUCTNAME-pyuno"
-+packagename = "%UNIXPRODUCTNAME-emailmerge"
-+linuxreplaces = "%WITHOUTDOTUNIXPRODUCTNAME-emailmerge"
-+requires = "%UNIXPRODUCTNAME-pyuno"
- copyright = "1999-2005 by OpenOffice.org"
- vendor = "OpenOffice.org"
- description = "Email mailmerge module for %PRODUCTNAME %PRODUCTVERSION"
--destpath = "/opt/openoffice.org%PRODUCTVERSION"
-+destpath = "/opt/%UNIXPRODUCTNAME%PRODUCTVERSION"
- End
-
- Start
-Index: scp2/source/python/file_python.scp
-===================================================================
-RCS file: /cvs/installation/scp2/source/python/file_python.scp,v
-retrieving revision 1.13
-retrieving revision 1.13.26.1
-diff -u -u -r1.13 -r1.13.26.1
---- scp2/source/python/file_python.scp 11 Nov 2005 10:43:22 -0000 1.13
-+++ scp2/source/python/file_python.scp 29 Nov 2005 13:20:07 -0000 1.13.26.1
-@@ -95,6 +95,7 @@
- Styles = (PACKED);
- End
- #endif
-+#endif
-
- File gid_File_Pymailmerge
- TXT_FILE_BODY;
-@@ -110,7 +111,6 @@
- Name = "/registry/spool/org/openoffice/Office/Writer-javamail.xcu";
- Styles = (PACKED,SCPZIP_REPLACE);
- End
--#endif
-
- // substitute for the python Windows basic scripts
-
diff --git a/patches/src680/mandriva-archflags.diff b/patches/src680/mandriva-archflags.diff
deleted file mode 100644
index f2ca15bc8..000000000
--- a/patches/src680/mandriva-archflags.diff
+++ /dev/null
@@ -1,131 +0,0 @@
---- solenv/inc/unxlngi6.mk.mdkconfig 2005-12-30 15:52:05.000000000 +0100
-+++ solenv/inc/unxlngi6.mk 2005-12-30 16:03:04.000000000 +0100
-@@ -65,6 +65,14 @@
- # architecture dependent flags for the C and C++ compiler that can be changed by
- # exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build
- ARCH_FLAGS*=-mtune=pentiumpro
-+ARCH_FLAGS_CC*=$(ARCH_FLAGS)
-+ARCH_FLAGS_CXX*=$(ARCH_FLAGS)
-+# Compiler flags for enabling optimizations
-+.IF "$(PRODUCT)"!=""
-+ARCH_FLAGS_OPT=-Os -fno-strict-aliasing -Wuninitialized # optimizing for products
-+.ELSE # "$(PRODUCT)"!=""
-+ARCH_FLAGS_OPT= # no optimizing for non products
-+.ENDIF # "$(PRODUCT)"!=""
-
- # name of C++ Compiler
- CXX*=g++
-@@ -86,14 +94,14 @@
- .ENDIF
-
- # flags for the C++ Compiler
--CFLAGSCC= -pipe $(ARCH_FLAGS)
-+CFLAGSCC=$(ARCH_FLAGS_CC)
- # Flags for enabling exception handling
- CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs
- # Flags for disabling exception handling
- CFLAGS_NO_EXCEPTIONS=-fno-exceptions
-
- # -fpermissive should be removed as soon as possible
--CFLAGSCXX= -pipe $(ARCH_FLAGS)
-+CFLAGSCXX=$(ARCH_FLAGS_CXX)
- CFLAGSCXX+= -Wno-ctor-dtor-privacy
- PICSWITCH:=-fpic
- .IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
-@@ -117,13 +125,7 @@
- # Compiler flags for debugging
- CFLAGSDEBUG=-g
- CFLAGSDBGUTIL=
--# Compiler flags for enabling optimizations
--.IF "$(PRODUCT)"!=""
--CFLAGSOPT=-Os -fno-strict-aliasing # optimizing for products
--CFLAGSOPT+=-Wuninitialized # not supported without optimization
--.ELSE # "$(PRODUCT)"!=""
--CFLAGSOPT= # no optimizing for non products
--.ENDIF # "$(PRODUCT)"!=""
-+CFLAGSOPT=$(ARCH_OPT_FLAGS)
- # Compiler flags for disabling optimizations
- CFLAGSNOOPT=-O0
- # Compiler flags for describing the output path
---- solenv/inc/unxlngi5.mk.mdkconfig 2005-12-30 15:52:05.000000000 +0100
-+++ solenv/inc/unxlngi5.mk 2005-12-30 15:59:58.000000000 +0100
-@@ -65,6 +65,13 @@
- # architecture dependent flags for the C and C++ compiler that can be changed by
- # exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build
- ARCH_FLAGS*=-mcpu=pentiumpro
-+ARCH_FLAGS_CC*=$(ARCH_FLAGS)
-+ARCH_FLAGS_CXX*=$(ARCH_FLAGS)
-+.IF "$(PRODUCT)"!=""
-+ARCH_FLAGS_OPT*=-Os -fno-strict-aliasing # optimizing for products
-+.ELSE # "$(PRODUCT)"!=""
-+ARCH_FLAGS_OPT*= # no optimizing for non products
-+.ENDIF # "$(PRODUCT)"!=""
-
- # name of C++ Compiler
- CXX*=g++
-@@ -90,13 +97,13 @@
-
-
- # flags for the C++ Compiler
--CFLAGSCC= -pipe $(ARCH_FLAGS)
-+CFLAGSCC= $(ARCH_FLAGS_CC)
- # Flags for enabling exception handling
- CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs
- # Flags for disabling exception handling
- CFLAGS_NO_EXCEPTIONS=-fno-exceptions
-
--CFLAGSCXX= -pipe $(ARCH_FLAGS)
-+CFLAGSCXX= $(ARCH_FLAGS_CXX)
- CFLAGSCXX+= -Wno-ctor-dtor-privacy
- PICSWITCH:=-fpic
-
-@@ -118,11 +125,7 @@
- CFLAGSDEBUG=-g
- CFLAGSDBGUTIL=
- # Compiler flags for enabling optimizations
--.IF "$(PRODUCT)"!=""
--CFLAGSOPT=-Os -fno-strict-aliasing # optimizing for products
--.ELSE # "$(PRODUCT)"!=""
--CFLAGSOPT= # no optimizing for non products
--.ENDIF # "$(PRODUCT)"!=""
-+CFLAGSOPT=$(ARCH_FLAGS_OPT)
- # Compiler flags for disabling optimizations
- CFLAGSNOOPT=-O0
- # Compiler flags for describing the output path
---- solenv/inc/unxlngi4.mk.mdkconfig 2005-12-30 15:52:05.000000000 +0100
-+++ solenv/inc/unxlngi4.mk 2005-12-30 15:57:55.000000000 +0100
-@@ -64,6 +64,9 @@
- # architecture dependent flags for the C and C++ compiler that can be changed by
- # exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build
- ARCH_FLAGS*=-mcpu=pentiumpro
-+ARCH_FLAGS_CC*=$(ARCH_FLAGS)
-+ARCH_FLAGS_CXX*=$(ARCH_FLAGS)
-+ARCH_FLAGS_OPT*=-O1
-
- # name of C++ Compiler
- CXX*=g++
-@@ -80,13 +83,13 @@
- .ENDIF
-
- # flags for the C++ Compiler
--CFLAGSCC= -pipe $(ARCH_FLAGS)
-+CFLAGSCC=$(ARCH_FLAGS_CC)
- # Flags for enabling exception handling
- CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs
- # Flags for disabling exception handling
- CFLAGS_NO_EXCEPTIONS=-fno-exceptions
-
--CFLAGSCXX= -pipe $(ARCH_FLAGS)
-+CFLAGSCXX=$(ARCH_FLAGS_CXX)
- CFLAGSCXX+= -Wno-ctor-dtor-privacy
-
- # HACK: enable Hamburg developers to build on glibc-2.2 machines but compile vs. glibc-2.1 headers
-@@ -115,7 +118,7 @@
- # Compiler flags for enabling optimizations
- # CFLAGSOPT=-O2
- # reduce to -O1 to avoid optimization problems
--CFLAGSOPT=-O1
-+CFLAGSOPT=$(ARCH_FLAGS_OPT)
- # Compiler flags for disabling optimizations
- CFLAGSNOOPT=-O0
- # Compiler flags for describing the output path
diff --git a/patches/src680/mandriva-splash.diff b/patches/src680/mandriva-splash.diff
deleted file mode 100644
index 964b98524..000000000
--- a/patches/src680/mandriva-splash.diff
+++ /dev/null
@@ -1,26 +0,0 @@
---- svx/prj/d.lst.mandriva_splash 2005-12-30 20:32:26.000000000 +0100
-+++ svx/prj/d.lst 2005-12-31 10:56:02.000000000 +0100
-@@ -43,7 +43,7 @@
- ..\res\cjkintro.bmp %COMMON_DEST%\pck%_EXT%\starsuite_bitmap\intro.bmp
- ..\res\ofaabout.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\about.bmp
- ..\res\soffice.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\intro.bmp
--..\res\ooointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro.bmp
-+..\res\openintro_mandriva.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro.bmp
- ..\res\ooonologointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\nologointro.bmp
-
- mkdir: %_DEST%\inc%_EXT%\svx
---- svx/source/intro/ooo.src.mandriva_splash 2005-12-14 16:16:29.000000000 +0100
-+++ svx/source/intro/ooo.src 2005-12-31 11:26:42.000000000 +0100
-@@ -48,9 +48,11 @@
- #include "svxids.hrc"
- #include "intro.hrc"
-
-+#define OOO_VENDOR "Mandriva S.A."
-+
- Bitmap RID_DEFAULT_ABOUT_BMP_LOGO
- {
-- File = "openabout.bmp" ;
-+ File = "openabout_mandriva.bmp" ;
- };
-
- String RID_APPTITLE
diff --git a/patches/src680/mdbtools-makefile-mk.diff b/patches/src680/mdbtools-makefile-mk.diff
deleted file mode 100644
index 2d4732cd0..000000000
--- a/patches/src680/mdbtools-makefile-mk.diff
+++ /dev/null
@@ -1,108 +0,0 @@
---- /dev/null 2004-08-25 23:04:59.000000000 +0530
-+++ mdbtools/makefile.mk 2005-08-04 16:45:48.097693501 +0530
-@@ -0,0 +1,105 @@
-+#*************************************************************************
-+#
-+# $RCSfile$
-+#
-+# $Revision$
-+#
-+# last change: $Author$ $Date$
-+#
-+# The Contents of this file are made available subject to the terms of
-+# either of the following licenses
-+#
-+# - GNU Lesser General Public License Version 2.1
-+# - Sun Industry Standards Source License Version 1.1
-+#
-+# Sun Microsystems Inc., October, 2000
-+#
-+# GNU Lesser General Public License Version 2.1
-+# =============================================
-+# Copyright 2000 by Sun Microsystems, Inc.
-+# 901 San Antonio Road, Palo Alto, CA 94303, USA
-+#
-+# This library is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU Lesser General Public
-+# License version 2.1, as published by the Free Software Foundation.
-+#
-+# This library 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 for more details.
-+#
-+# You should have received a copy of the GNU Lesser General Public
-+# License along with this library; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+# MA 02111-1307 USA
-+#
-+#
-+# Sun Industry Standards Source License Version 1.1
-+# =================================================
-+# The contents of this file are subject to the Sun Industry Standards
-+# Source License Version 1.1 (the "License"); You may not use this file
-+# except in compliance with the License. You may obtain a copy of the
-+# License at http://www.openoffice.org/license.html.
-+#
-+# Software provided under this License is provided on an "AS IS" basis,
-+# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+# See the License for the specific provisions governing your rights and
-+# obligations concerning the Software.
-+#
-+# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+#
-+# Copyright: 2000 by Sun Microsystems, Inc.
-+#
-+# All Rights Reserved.
-+#
-+# Contributor(s): _______________________________________
-+#
-+#
-+#
-+#*************************************************************************
-+
-+PRJ=.
-+
-+PRJNAME=mdbtools
-+TARGET=mdbtools
-+
-+# --- Settings -----------------------------------------------------
-+
-+.INCLUDE : settings.mk
-+
-+# --- Files --------------------------------------------------------
-+
-+.IF "$(ENABLE_ACCESS)"=="YES" && "$(SYSTEM_MDBTOOLS)" != "YES"
-+
-+TARFILE_NAME=mdbtools-0.6pre1
-+
-+PATCH_FILE_NAME=mdbtools-0.6pre1.patch
-+
-+CONFIGURE_DIR=
-+
-+CONFIGURE_ACTION=./configure CFLAGS="-O2 $(ARCH_FLAGS)" --with-pic
-+CONFIGURE_FLAGS=
-+BUILD_DIR=$(CONFIGURE_DIR)
-+BUILD_ACTION=$(GNUMAKE)
-+
-+OUT2LIB= \
-+ $/src$/*$/.libs$/libmdb*
-+
-+OUT2INC= \
-+ $/include$/*.h
-+
-+# --- Targets ------------------------------------------------------
-+
-+
-+.INCLUDE : set_ext.mk
-+.INCLUDE : target.mk
-+.INCLUDE : tg_ext.mk
-+
-+.ELSE
-+
-+dummy:
-+ @echo "Access disabled in configure"
-+
-+.ENDIF
diff --git a/patches/src680/mdbtools-prj-build-lst.diff b/patches/src680/mdbtools-prj-build-lst.diff
deleted file mode 100644
index 1254bf263..000000000
--- a/patches/src680/mdbtools-prj-build-lst.diff
+++ /dev/null
@@ -1,6 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ mdbtools/prj/build.lst 2005-07-28 09:20:47.000000000 +0530
-@@ -0,0 +1,3 @@
-+ap mdbtools : solenv NULL
-+ap mdbtools usr1 - u ap_mkout NULL
-+ap mdbtools nmake - u ap_mdbtools NULL
diff --git a/patches/src680/mdbtools-prj-d-lst.diff b/patches/src680/mdbtools-prj-d-lst.diff
deleted file mode 100644
index 8947a3169..000000000
--- a/patches/src680/mdbtools-prj-d-lst.diff
+++ /dev/null
@@ -1,8 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ mdbtools/prj/d.lst 2005-07-28 18:24:55.000000000 +0530
-@@ -0,0 +1,5 @@
-+mkdir: %_DEST%\inc%_EXT%\mdbtools
-+..\%__SRC%\inc\*.h %_DEST%\inc%_EXT%\mdbtools\*.h
-+..\%__SRC%\lib\libmdb.a %_DEST%\lib%_EXT%\libmdb.a
-+..\%__SRC%\lib\libmdbsql.a %_DEST%\lib%_EXT%\libmdbsql.a
-+
diff --git a/patches/src680/mdbtools.diff b/patches/src680/mdbtools.diff
deleted file mode 100644
index 0ef8fcba1..000000000
--- a/patches/src680/mdbtools.diff
+++ /dev/null
@@ -1,121 +0,0 @@
---- /dev/null 2005-03-20 01:06:14.000000000 +0530
-+++ mdbtools/mdbtools-0.6pre1.patch 2005-07-29 11:03:56.000000000 +0530
-@@ -0,0 +1,118 @@
-+--- Makefile.am 2002-12-27 16:09:02.000000000 +0100
-++++ misc/build/mdbtools-0.6pre1/src/Makefile.am 2005-08-01 17:52:49.000000000 +0200
-+@@ -1,3 +1,3 @@
-+-SUBDIRS = libmdb extras $(OPTDIRS) util
-+-DIST_SUBDIRS = libmdb extras sql odbc gmdb2 util
-++SUBDIRS = libmdb $(OPTDIRS)
-++DIST_SUBDIRS = libmdb sql odbc gmdb2
-+ DEFDIR = $(prefix)
-+--- Makefile.in 2004-06-18 11:34:19.000000000 +0200
-++++ misc/build/mdbtools-0.6pre1/src/Makefile.in 2005-08-01 17:53:01.000000000 +0200
-+@@ -153,8 +153,8 @@
-+ sharedstatedir = @sharedstatedir@
-+ sysconfdir = @sysconfdir@
-+ target_alias = @target_alias@
-+-SUBDIRS = libmdb extras $(OPTDIRS) util
-+-DIST_SUBDIRS = libmdb extras sql odbc gmdb2 util
-++SUBDIRS = libmdb $(OPTDIRS)
-++DIST_SUBDIRS = libmdb sql odbc gmdb2
-+ DEFDIR = $(prefix)
-+ subdir = src
-+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-+--- gmdb.h 2004-02-11 23:04:26.000000000 +0100
-++++ misc/build/mdbtools-0.6pre1/src/gmdb2/gmdb.h 2005-08-01 18:27:10.000000000 +0200
-+@@ -24,6 +24,7 @@
-+ GtkWidget *gmdb_table_def_new(MdbCatalogEntry *entry);
-+ GtkWidget *gmdb_table_export_new(MdbCatalogEntry *entry);
-+ void gmdb_table_export(MdbCatalogEntry *entry) ;
-++gchar *gmdb_export_get_filepath(GladeXML *xml);
-+
-+ void gmdb_file_select_cb(GtkWidget *w, gpointer data);
-+ void gmdb_file_open_cb(GtkWidget *w, gpointer data);
-+--- info.c 2003-01-12 23:59:42.000000000 +0100
-++++ misc/build/mdbtools-0.6pre1/src/gmdb2/info.c 2005-08-01 19:04:14.000000000 +0200
-+@@ -71,4 +71,7 @@
-+ gtk_label_set_text(GTK_LABEL(label), tmpstr);
-+
-+ g_free(filepath);
-++ // a hack to avoid warning: control reaches end of non-void function
-++ // the return value is nowhere used anyway
-++ return NULL;
-+ }
-+--- table_export.c 2003-01-14 18:37:44.000000000 +0100
-++++ misc/build/mdbtools-0.6pre1/src/gmdb2/table_export.c 2005-08-01 19:05:50.000000000 +0200
-+@@ -49,6 +49,7 @@
-+ }
-+ }
-+
-++void
-+ gmdb_export_get_delimiter(GladeXML *xml, gchar *delimiter, int max_buf)
-+ {
-+ GtkWidget *combo;
-+--- backend.c 2004-06-11 15:56:41.000000000 +0200
-++++ misc/build/mdbtools-0.6pre1/src/libmdb/backend.c 2005-08-01 17:36:27.000000000 +0200
-+@@ -28,7 +28,7 @@
-+ #endif
-+
-+ static int is_init;
-+-static GHashTable *mdb_backends;
-++GHashTable *mdb_backends;
-+
-+ /* Access data types */
-+ static MdbBackendType mdb_access_types[] = {
-+--- data.c 2004-06-11 15:56:41.000000000 +0200
-++++ misc/build/mdbtools-0.6pre1/src/libmdb/data.c 2005-08-01 19:11:29.000000000 +0200
-+@@ -136,7 +136,7 @@
-+ }
-+ static int mdb_xfer_bound_ole(MdbHandle *mdb, int start, MdbColumn *col, int len)
-+ {
-+-int ret;
-++int ret=0;
-+ if (len) {
-+ col->cur_value_start = start;
-+ col->cur_value_len = len;
-+--- kkd.c 2003-04-29 19:55:17.000000000 +0200
-++++ misc/build/mdbtools-0.6pre1/src/libmdb/kkd.c 2005-08-01 19:15:43.000000000 +0200
-+@@ -55,7 +55,7 @@
-+
-+ GHashTable *mdb_get_column_def(MdbCatalogEntry *entry, int start)
-+ {
-+-GHashTable *hash;
-++GHashTable *hash=NULL;
-+ MdbHandle *mdb = entry->mdb;
-+ MdbColumnProp prop;
-+ int tmp, pos, col_num, val_len, i;
-+--- mdbsql.c 2004-05-30 11:20:40.000000000 +0530
-++++ misc/build/mdbtools-0.6pre1/src/sql/mdbsql.c 2005-07-26 17:06:18.000000000 +0530
-+@@ -84,7 +84,7 @@
-+ return 1;
-+ }
-+ }
-+-int mdb_run_query(MdbSQL *sql, char *query)
-++int mdb_sql_run_query(MdbSQL *sql, char *query)
-+ {
-+ if (_parse(sql,query) && sql->cur_table) {
-+ mdb_sql_bind_all(sql);
-+
-+--- mdbsql.h 2004-03-07 05:29:54.000000000 +0530
-++++ misc/build/mdbtools-0.6pre1/include/mdbsql.h 2005-07-28 18:34:51.000000000 +0530
-+@@ -1,7 +1,7 @@
-+ #include <stdio.h>
-+ #include <string.h>
-+ #include <glib.h>
-+-#include <mdbtools.h>
-++#include "mdbtools.h"
-+
-+ #ifndef _mdbsql_h_
-+
-+--- index.c 2004-04-16 17:45:14.000000000 +0200
-++++ misc/build/mdbtools-0.6pre1/src/libmdb/index.c 2005-11-28 20:14:37.000000000 +0100
-+@@ -330,7 +330,7 @@
-+ {
-+ int mask_bit = 0;
-+ int mask_pos = 0x16;
-+- int mask_byte;
-++ int mask_byte = 0;
-+ int elem = 0;
-+ int len, start, i;
-+
diff --git a/patches/src680/mozilla-build-cygpath.diff b/patches/src680/mozilla-build-cygpath.diff
deleted file mode 100755
index 9f9e60726..000000000
--- a/patches/src680/mozilla-build-cygpath.diff
+++ /dev/null
@@ -1,89 +0,0 @@
---- moz/mozilla-source-1.7.5.patch.orig 2005-10-17 16:24:13.000000000 +0200
-+++ moz/mozilla-source-1.7.5.patch 2005-11-29 11:09:41.000000000 +0200
-@@ -7134,3 +7134,86 @@
- // 'Dependent' means that params of this type are dependent upon other
- // params. e.g. an T_INTERFACE_IS is dependent upon some other param at
-
-+*** misc/mozilla/build/cygwin-wrapper Thu Oct 30 23:05:56 2003
-+--- misc/build/mozilla/build/cygwin-wrapper Tue Oct 18 14:52:06 2005
-+***************
-+*** 54,59 ****
-+--- 54,68 ----
-+ eval 'no_mountpoint=${i#'${leader}${mountpoint}'/}'
-+ driveletter=${no_mountpoint%%/*}
-+ i=${leader}${driveletter}:/${pathname}
-+ fi
-+ fi
-+ fi
-+*** misc/mozilla/nsprpub/build/cygwin-wrapper Thu Apr 3 01:22:38 2003
-+--- misc/build/mozilla/nsprpub/build/cygwin-wrapper Tue Oct 18 14:52:30 2005
-+***************
-+*** 18,23 ****
-+ shift
-+ args=`echo $* | sed -e "s|-I\([a-zA-Z]\):/|-I${mountpoint}/\1/|g;"`
-+ else
-+! args=`echo $* | sed -e "s|${mountpoint}/\([a-zA-Z]\)/|\1:/|g;"`
-+ fi
-+ exec $prog $args
-+--- 18,42 ----
-+ shift
-+ args=`echo $* | sed -e "s|-I\([a-zA-Z]\):/|-I${mountpoint}/\1/|g;"`
-+ else
-+! for i in "${@}"
-+! do
-+! eval 'leader=${i%%'${mountpoint}'/[a-zA-Z]/*}'
-+! if ! test "${leader}" = "${i}"; then
-+! eval 'pathname=${i#'${leader}${mountpoint}'/[a-zA-Z]/}'
-+! eval 'no_mountpoint=${i#'${leader}${mountpoint}'/}'
-+! driveletter=${no_mountpoint%%/*}
-+! i=${leader}${driveletter}:/${pathname}
-+! else
-+! cygstylepath=${i#/[a-zA-Z]*}
-+! if ! test "${cygstylepath}" = "${i}"; then
-+! rootpath=${i#/}
-+! rootpath=/${rootpath%%/*}
-+! if [ -e $rootpath ]; then
-+! i="`cygpath -ma "${i}"`"
-+! fi
-+! fi
-+! fi
-+! args="${args} ${i}"
-+! done
-+ fi
-+ exec $prog $args
-+*** misc/mozilla/directory/c-sdk/config/cygwin-wrapper Thu Apr 3 01:22:38 2003
-+--- misc/build/mozilla/directory/c-sdk/config/cygwin-wrapper Tue Oct 18 14:52:30 2005
-+***************
-+*** 18,23 ****
-+ shift
-+ args=`echo $* | sed -e "s|-I\([a-zA-Z]\):/|-I${mountpoint}/\1/|g;"`
-+ else
-+! args=`echo $* | sed -e "s|${mountpoint}/\([a-zA-Z]\)/|\1:/|g;"`
-+ fi
-+ exec $prog $args
-+--- 18,42 ----
-+ shift
-+ args=`echo $* | sed -e "s|-I\([a-zA-Z]\):/|-I${mountpoint}/\1/|g;"`
-+ else
-+! for i in "${@}"
-+! do
-+! eval 'leader=${i%%'${mountpoint}'/[a-zA-Z]/*}'
-+! if ! test "${leader}" = "${i}"; then
-+! eval 'pathname=${i#'${leader}${mountpoint}'/[a-zA-Z]/}'
-+! eval 'no_mountpoint=${i#'${leader}${mountpoint}'/}'
-+! driveletter=${no_mountpoint%%/*}
-+! i=${leader}${driveletter}:/${pathname}
-+! else
-+! cygstylepath=${i#/[a-zA-Z]*}
-+! if ! test "${cygstylepath}" = "${i}"; then
-+! rootpath=${i#/}
-+! rootpath=/${rootpath%%/*}
-+! if [ -e $rootpath ]; then
-+! i="`cygpath -ma "${i}"`"
-+! fi
-+! fi
-+! fi
-+! args="${args} ${i}"
-+! done
-+ fi
-+ exec $prog $args
diff --git a/patches/src680/mozilla-buildlibs-win32.diff b/patches/src680/mozilla-buildlibs-win32.diff
deleted file mode 100644
index 3dcc86780..000000000
--- a/patches/src680/mozilla-buildlibs-win32.diff
+++ /dev/null
@@ -1,148 +0,0 @@
---- moz/makefile.mk.orig 2005-09-07 21:59:19.000000000 +0200
-+++ moz/makefile.mk 2005-10-14 17:30:15.684000000 +0200
-@@ -79,8 +79,17 @@
- PATCH_FILE_NAME=mozilla-source-$(MOZILLA_VERSION).patch
-
- # These files are needed for the W32 build when BUILD_MOZAB is set
-+LIBIDL_VERSION*=0.6.8
-+LIBIDL_DLLVERSION*=0.6
-+LIBIDL_PATCH_NAME*=libIDL-$(LIBIDL_VERSION)-ooo.patch
-+LIBIDL_SRCTAR_NAME*=libIDL-$(LIBIDL_VERSION).tar.gz
- LIBIDL_VC71_ZIPFILE_NAME*=vc71-libIDL-0.6.8-bin.zip
-+LIBGLIB_VERSION*=1.2.10
-+LIBGLIB_DLLVERSION*=1.2
-+LIBGLIB_PATCH_NAME*=glib-$(LIBGLIB_VERSION)-ooo.patch
-+LIBGLIB_SRCTAR_NAME*=glib-$(LIBGLIB_VERSION).tar.gz
- LIBGLIB_VC71_ZIPFILE_NAME*=vc71-glib-1.2.10-bin.zip
-+MOZILLA_MAKE_VER=3.79.1
- WINTOOLS_ZIPFILE_NAME*=wintools.zip
-
- ADDITIONAL_FILES=mailnews$/addrbook$/src$/nsAbMD5sum.cpp
-@@ -234,15 +243,99 @@
- +cd $(MOZTOOLSUNPACK)$/buildtools$/windows && $(SET_MOZ_TOOLS_INSTALL_BAT) && cmd /c install.bat
- +$(TOUCH) $(MISC)$/build$/wintools.install
-
--$(MISC)$/build$/wintools.complete : \
-- $(MISC)$/build$/wintools.install \
-- $(PRJ)$/download$/$(LIBIDL_VC71_ZIPFILE_NAME) \
-- $(PRJ)$/download$/$(LIBGLIB_VC71_ZIPFILE_NAME)
-- unzip $(PRJ)$/download$/$(LIBIDL_VC71_ZIPFILE_NAME) -d $(MOZTOOLSINST)
-- unzip $(PRJ)$/download$/$(LIBGLIB_VC71_ZIPFILE_NAME) -d $(MOZTOOLSINST)
-+$(MISC)$/build$/glib.build : \
-+ $(PRJ)$/download$/$(LIBGLIB_SRCTAR_NAME)
-+ [
-+ tar --directory $(MOZTOOLSUNPACK) -xzf $(PRJ)$/download$/$(LIBGLIB_SRCTAR_NAME)
-+ set ABSPRJ=`cygpath -a $(PRJ)`
-+ cd $(MOZTOOLSUNPACK)$/glib-$(LIBGLIB_VERSION)
-+ patch -p1 < $$ABSPRJ$/download$/$(LIBGLIB_PATCH_NAME)
-+ nmake -f Makefile.msc
-+ cd $$ABSPRJ
-+ $(TOUCH) $(MISC)$/build$/glib.build
-+ ]
-+
-+$(MISC)$/build$/libIDL.build : \
-+ $(MISC)$/build$/glib.build \
-+ $(PRJ)$/download$/$(LIBIDL_SRCTAR_NAME)
-+ [
-+ tar --directory $(MOZTOOLSUNPACK) -xzf $(PRJ)$/download$/$(LIBIDL_SRCTAR_NAME)
-+ set ABSPRJ=`cygpath -a $(PRJ)`
-+ cd $(MOZTOOLSUNPACK)$/libIDL-$(LIBIDL_VERSION)
-+ patch -p1 < $$ABSPRJ$/download$/$(LIBIDL_PATCH_NAME)
-+ nmake -f Makefile.msc libIDL-$(LIBIDL_DLLVERSION).dll
-+ cd $$ABSPRJ
-+ $(TOUCH) $(MISC)$/build$/libIDL.build
-+ ]
-+
-+$(MISC)$/build$/make.build : $(MISC)$/build$/wintools.unpack
-+ +cd $(MOZTOOLSUNPACK)$/buildtools$/windows$/source$/make-$(MOZILLA_MAKE_VER) && nmake -f NMakefile
-+ $(TOUCH) $(MISC)$/build$/make.build
-+
-+$(MISC)$/build$/shmsdos.build : $(MISC)$/build$/wintools.unpack
-+ +cd $(MOZTOOLSUNPACK)$/buildtools$/windows$/source$/shmsdos && nmake -f shmsdos.mak && nmake -f nsinstall.mak
-+ $(TOUCH) $(MISC)$/build$/shmsdos.build
-+
-+$(MISC)$/build$/uname.build : $(MISC)$/build$/wintools.unpack
-+ +cd $(MOZTOOLSUNPACK)$/buildtools$/windows$/source$/uname && nmake -f uname.mak
-+ $(TOUCH) $(MISC)$/build$/uname.build
-+
-+LIBVC71_BINFILESLIST+= \
-+ glib-$(LIBGLIB_VERSION)$/glib-$(LIBGLIB_DLLVERSION).dll \
-+ glib-$(LIBGLIB_VERSION)$/gmodule-$(LIBGLIB_DLLVERSION).dll \
-+ libIDL-$(LIBIDL_VERSION)$/libIDL-$(LIBIDL_DLLVERSION).dll
-+
-+LIBVC71_INCLUDEFILESLIST+= \
-+ glib-$(LIBGLIB_VERSION)$/glib.h \
-+ glib-$(LIBGLIB_VERSION)$/glibconfig.h
-+
-+LIBVC71_LIBFILESLIST+= \
-+ glib-$(LIBGLIB_VERSION)$/glib-$(LIBGLIB_DLLVERSION).lib \
-+ glib-$(LIBGLIB_VERSION)$/gmodule-$(LIBGLIB_DLLVERSION).lib \
-+ libIDL-$(LIBIDL_VERSION)$/libIDL-$(LIBIDL_DLLVERSION).lib
-+
-+$(MISC)$/build$/wintools.build : \
-+ $(MISC)$/build$/glib.build \
-+ $(MISC)$/build$/libIDL.build \
-+ $(MISC)$/build$/make.build \
-+ $(MISC)$/build$/shmsdos.build \
-+ $(MISC)$/build$/uname.build
- # chmod is also needed for W32-4nt build (when cygwin unzip is used)
-+ @+-$(MKDIR) -p $(MOZTOOLSINST)$/bin
-+ @+-$(MKDIR) -p $(MOZTOOLSINST)$/include
-+ @+-$(MKDIR) -p $(MOZTOOLSINST)$/lib
-+ @+-$(MKDIR) -p $(MOZTOOLSINST)$/vc71$/bin
-+ @+-$(MKDIR) -p $(MOZTOOLSINST)$/vc71$/include
-+ @+-$(MKDIR) -p $(MOZTOOLSINST)$/vc71$/include$/libIDL
-+ @+-$(MKDIR) -p $(MOZTOOLSINST)$/vc71$/lib
-+ +$(foreach,file,$(LIBVC71_BINFILESLIST) $(COPY) $(MOZTOOLSUNPACK)$/$(file) \
-+ $(MOZTOOLSINST)$/vc71$/bin &&) \
-+ echo >& $(NULLDEV)
-+ +$(foreach,file,$(LIBVC71_INCLUDEFILESLIST) $(COPY) $(MOZTOOLSUNPACK)$/$(file) \
-+ $(MOZTOOLSINST)$/vc71$/include &&) \
-+ echo >& $(NULLDEV)
-+ +$(COPY) $(MOZTOOLSUNPACK)$/libIDL-$(LIBIDL_VERSION)$/IDL.h $(MOZTOOLSINST)$/vc71$/include$/libIDL
-+ +$(foreach,file,$(LIBVC71_LIBFILESLIST) $(COPY) $(MOZTOOLSUNPACK)$/$(file) \
-+ $(MOZTOOLSINST)$/vc71$/lib &&) \
-+ echo >& $(NULLDEV)
-+ +$(COPY) -p $(MOZTOOLSUNPACK)$/buildtools$/windows$/source$/make-$(MOZILLA_MAKE_VER)$/WinRel/make.exe \
-+ $(MOZTOOLSINST)$/bin$/gmake.exe
-+ +$(COPY) -p $(MOZTOOLSUNPACK)$/buildtools$/windows$/source$/make-$(MOZILLA_MAKE_VER)$/acconfig.h \
-+ $(MOZTOOLSUNPACK)$/buildtools$/windows$/source$/make-$(MOZILLA_MAKE_VER)$/config.h \
-+ $(MOZTOOLSINST)$/include
-+ +$(COPY) -p \
-+ $(MOZTOOLSUNPACK)$/buildtools$/windows$/source$/shmsdos$/Release$/shmsdos.exe \
-+ $(MOZTOOLSUNPACK)$/buildtools$/windows$/source$/shmsdos$/Release$/nsinstall.exe \
-+ $(MOZTOOLSUNPACK)$/buildtools$/windows$/source$/uname$/Release$/uname.exe \
-+ $(MOZTOOLSINST)$/bin
- -chmod -R +x $(MOZTOOLSINST)$/vc71$/bin
-+ +$(TOUCH) $(MISC)$/build$/wintools.build
-+
-+$(MISC)$/build$/wintools.complete : \
-+ $(MISC)$/build$/wintools.unpack \
-+ $(MISC)$/build$/wintools.build
- +$(TOUCH) $(MISC)$/build$/wintools.complete
-+
- .ENDIF # "$(GUI)"=="WNT"
-
- zip: \
---- config_office/configure.in 2005-10-13 10:31:41.000000000 +0200
-+++ config_office/configure.in 2005-10-14 18:35:17.449625000 +0200
-@@ -2877,13 +2913,14 @@
- fi
- if test "$_os" = "WINNT"; then
- AC_MSG_CHECKING([for glib and libIDL binaries])
-- if test ! -e "../moz/download/vc71-glib-1.2.10-bin.zip" \
-- -o ! -e "../moz/download/vc71-libIDL-0.6.8-bin.zip" \
-+ if test ! -e "../moz/download/glib-1.2.10.tar.gz" \
-+ -o ! -e "../moz/download/libIDL-0.6.8.tar.gz" \
- -o ! -e "../moz/download/wintools.zip" ; then
- AC_MSG_ERROR([One or more of the following archives is missing in moz/download/
-- vc71-glib-1.2.10-bin.zip
-- vc71-libIDL-0.6.8-bin.zip
--(from ftp://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/)
-+ glib-1.2.10.tar.gz
-+(from ftp://ftp.gtk.org/pub/gtk/v1.2/)
-+ libIDL-0.6.8.tar.gz
-+(from ftp://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/source/)
- wintools.zip
- (from http://ftp.mozilla.org/pub/mozilla.org/mozilla/source/wintools.zip)])
- else
diff --git a/patches/src680/mozilla-firefox.diff b/patches/src680/mozilla-firefox.diff
deleted file mode 100644
index cf3481486..000000000
--- a/patches/src680/mozilla-firefox.diff
+++ /dev/null
@@ -1,47 +0,0 @@
---- config_office/configure.in.mozilla-firefox 2006-01-05 21:17:37.000000000 +0100
-+++ config_office/configure.in 2006-01-05 21:17:58.000000000 +0100
-@@ -2844,7 +2844,7 @@
- SYSTEM_MOZILLA=YES
- AC_MSG_CHECKING([whether to use Mozilla or Firefox or XULRunner])
- if test -n "$with_firefox" && test "$with_firefox" != "no"; then
-- moz_flavour=firefox
-+ moz_flavour=mozilla-firefox
- elif test -n "$with_xulrunner" && test "$with_xulrunner" != "no"; then
- moz_flavour=xulrunner
- else
---- libxmlsec/xmlsec1-1.2.6.patch.mozilla-firefox 2005-12-29 17:14:51.000000000 +0100
-+++ libxmlsec/xmlsec1-1.2.6.patch 2006-01-05 21:17:58.000000000 +0100
-@@ -14037,3 +14037,33 @@
- XMLSEC_NSS_ALIBS = smime3.lib ssl3.lib nss3.lib libnspr4_s.lib libplds4_s.lib libplc4_s.lib kernel32.lib user32.lib gdi32.lib
-
- XMLSEC_MSCRYPTO_SOLIBS = kernel32.lib user32.lib gdi32.lib Crypt32.lib Advapi32.lib
-+--- misc/build/xmlsec1-1.2.6/configure.in.firefox 2005-06-19 18:43:48.000000000 +0200
-++++ misc/build/xmlsec1-1.2.6/configure.in 2005-06-19 18:43:48.000000000 +0200
-+@@ -502,9 +502,9 @@
-+ dnl ==========================================================================
-+
-+ XMLSEC_NO_NSS="1"
-+-MOZILLA_MIN_VERSION="1.4"
-+-NSS_MIN_VERSION="3.2"
-+-NSPR_MIN_VERSION="4.0"
-++MOZILLA_MIN_VERSION="1.0.2"
-++NSS_MIN_VERSION="1.0.2"
-++NSPR_MIN_VERSION="1.0.2"
-+ NSS_CFLAGS=""
-+ NSS_LIBS=""
-+ NSS_LIBS_LIST="-lnss3 -lsoftokn3 -lsmime3"
-+--- misc/build/xmlsec1-1.2.6/configure.firefox 2005-06-19 18:44:24.000000000 +0200
-++++ misc/build/xmlsec1-1.2.6/configure 2005-06-19 18:44:24.000000000 +0200
-+@@ -25677,9 +25677,9 @@
-+
-+
-+ XMLSEC_NO_NSS="1"
-+-MOZILLA_MIN_VERSION="1.4"
-+-NSS_MIN_VERSION="3.2"
-+-NSPR_MIN_VERSION="4.0"
-++MOZILLA_MIN_VERSION="1.0.2"
-++NSS_MIN_VERSION="1.0.2"
-++NSPR_MIN_VERSION="1.0.2"
-+ NSS_CFLAGS=""
-+ NSS_LIBS=""
-+ NSS_LIBS_LIST="-lnss3 -lsoftokn3 -lsmime3"
diff --git a/patches/src680/ms-export-default.diff b/patches/src680/ms-export-default.diff
deleted file mode 100644
index d3a15abf3..000000000
--- a/patches/src680/ms-export-default.diff
+++ /dev/null
@@ -1,53 +0,0 @@
-Index: framework/source/classes/filtercachedata.cxx
-===================================================================
-RCS file: /cvs/framework/framework/source/classes/filtercachedata.cxx,v
-retrieving revision 1.22
-diff -u -p -u -r1.22 filtercachedata.cxx
---- framework/source/classes/filtercachedata.cxx 17 Jun 2003 15:23:15 -0000 1.22
-+++ framework/source/classes/filtercachedata.cxx 12 Aug 2003 14:48:08 -0000
-@@ -1032,6 +1033,13 @@ void FilterCFGAccess::impl_loadFilters(
- sal_uInt32 nProperty = 0 ;
- ::rtl::OUString sPath ;
-
-+ sal_Bool compatible = FALSE;
-+ const char *pEnv = getenv ("OOO_MS_DEFAULTS");
-+ if (pEnv && *pEnv) {
-+// fprintf (stderr, "Compatible!\n");
-+ compatible = TRUE;
-+ }
-+
- // c)
- for( nNodeName=0; nNodeName<nNodeCount; ++nNodeName )
- {
-@@ -1075,6 +1083,7 @@ void FilterCFGAccess::impl_loadFilters(
- lPropertyNames[nProperty] = sPath + SUBKEY_DATA ;
- ++nProperty;
- }
-+
- }
-
- // d)
-@@ -1153,6 +1162,23 @@ void FilterCFGAccess::impl_loadFilters(
- FilterCFGAccess::decodeFilterData( sTempString, aFilter );
- ++nProperty;
- }
-+
-+ if (compatible) {
-+ // A truly ugly & hard-coded hack ...
-+ if ( aFilter.sType.equalsAscii( "writer_MS_Word_97" ) ||
-+ aFilter.sType.equalsAscii( "calc_MS_Excel_97" ) ||
-+ aFilter.sType.equalsAscii( "impress_MS_PowerPoint_97" ) )
-+ aFilter.nFlags |= FILTERFLAG_DEFAULT;
-+
-+ else if ( aFilter.sType.equalsAscii( "writer_StarOffice_XML_Writer") ||
-+ aFilter.sType.equalsAscii( "calc_StarOffice_XML_Calc" ) ||
-+ aFilter.sType.equalsAscii( "impress_StarOffice_XML_Impress" ) )
-+ aFilter.nFlags &= ~FILTERFLAG_DEFAULT;
-+
-+/* fprintf (stderr, "Incompatible %d (%s) a default [%ld]\n", nProperty,
-+ (const sal_Char *)OUStringToOString (aFilter.sType, RTL_TEXTENCODING_UTF8),
-+ (long)aFilter.nFlags); */
-+ }
-
- LOG_ASSERT2( (sal_uInt32)(nProperty-nCheckPropCount)!=(sal_uInt32)(m_nKeyCountFilters-1), "FilterCFGAccess::impl_loadFilters()", "Mismatch between key count of filters and count of ignored filter properties detected. Follow readed filters would be wrong!" )
-
diff --git a/patches/src680/ms-interoperability-email-attachment-as-doc-xls-ppt-m99.diff b/patches/src680/ms-interoperability-email-attachment-as-doc-xls-ppt-m99.diff
deleted file mode 100644
index 82a7b328c..000000000
--- a/patches/src680/ms-interoperability-email-attachment-as-doc-xls-ppt-m99.diff
+++ /dev/null
@@ -1,411 +0,0 @@
---- sfx2/source/view/viewsh.cxx.bakj 2005-02-17 16:51:32.000000000 +0530
-+++ sfx2/source/view/viewsh.cxx 2005-02-18 16:07:53.935695125 +0530
-@@ -188,6 +188,9 @@
-
- case SID_MAIL_SENDDOCASPDF:
- case SID_MAIL_SENDDOC:
-+ case SID_MAIL_SENDDOCASMSDOC:
-+ case SID_MAIL_SENDDOCASMSPPT:
-+ case SID_MAIL_SENDDOCASMSEXCEL:
- {
- SfxObjectShell* pDoc = GetObjectShell();
- if ( pDoc && pDoc->QueryHiddenInformation(
-@@ -218,10 +221,18 @@
- }
-
- SfxMailModel_Impl::SendMailResult eResult = SfxMailModel_Impl::SEND_MAIL_ERROR;
-- if ( nId == SID_MAIL_SENDDOCASPDF )
-- eResult = aModel.Send( SfxMailModel_Impl::TYPE_ASPDF );
-- else
-- eResult = aModel.Send( SfxMailModel_Impl::TYPE_SELF );
-+ switch (nId) {
-+ case SID_MAIL_SENDDOCASPDF:
-+ eResult = aModel.Send( SfxMailModel_Impl::TYPE_ASPDF );break;
-+ case SID_MAIL_SENDDOCASMSDOC:
-+ eResult = aModel.Send( SfxMailModel_Impl::TYPE_ASMSDOC );break;
-+ case SID_MAIL_SENDDOCASMSEXCEL:
-+ eResult = aModel.Send( SfxMailModel_Impl::TYPE_ASMSEXCEL );break;
-+ case SID_MAIL_SENDDOCASMSPPT:
-+ eResult = aModel.Send( SfxMailModel_Impl::TYPE_ASMSPOWERPOINT );break;
-+ default:
-+ eResult = aModel.Send( SfxMailModel_Impl::TYPE_SELF );
-+ }
-
- if ( eResult == SfxMailModel_Impl::SEND_MAIL_ERROR )
- {
-@@ -302,6 +312,15 @@
- }
-
- //--------------------------------------------------------------------
-+static const BOOL
-+filterExsists(const char * aExtension, SfxObjectShellRef xDocShell)
-+{
-+ if ( ! xDocShell.Is() )
-+ return false;
-+ String aPDFExtension = String::CreateFromAscii( aExtension );
-+ return (SfxFilterMatcher( String::CreateFromAscii( xDocShell->GetFactory().GetShortName()) ).GetFilter4Extension( aPDFExtension, SFX_FILTER_EXPORT )) ? true : false ;
-+
-+}
-
- void SfxViewShell::GetState_Impl( SfxItemSet &rSet )
- {
-@@ -342,6 +362,9 @@
- // Mail-Funktionen
- case SID_MAIL_SENDDOCASPDF:
- case SID_MAIL_SENDDOC:
-+ case SID_MAIL_SENDDOCASMSDOC:
-+ case SID_MAIL_SENDDOCASMSPPT:
-+ case SID_MAIL_SENDDOCASMSEXCEL:
- {
- BOOL bEnable = !GetViewFrame()->HasChildWindow( SID_MAIL_CHILDWIN );
- if ( !bEnable )
-
---- ./sfx2/sdi/viwslots.sdi.bakj 2005-02-17 16:48:16.000000000 +0530
-+++ ./sfx2/sdi/viwslots.sdi 2005-02-18 11:12:45.000000000 +0530
-@@ -22,6 +22,22 @@
- ExecMethod = ExecMisc_Impl ;
- StateMethod = GetState_Impl ;
- ]
-+ SID_MAIL_SENDDOCASMSDOC // ole(no) api(todo)
-+ [
-+ ExecMethod = ExecMisc_Impl ;
-+ StateMethod = GetState_Impl ;
-+ ]
-+ SID_MAIL_SENDDOCASMSPPT // ole(no) api(todo)
-+ [
-+ ExecMethod = ExecMisc_Impl ;
-+ StateMethod = GetState_Impl ;
-+ ]
-+ SID_MAIL_SENDDOCASMSEXCEL // ole(no) api(todo)
-+ [
-+ ExecMethod = ExecMisc_Impl ;
-+ StateMethod = GetState_Impl ;
-+ ]
-+
- //---------------------------------------------------------------------
- SID_PRINTDOC // ole(no) api(play/rec)
- [
---- ./sfx2/inc/sfxsids.hrc.bakj 2005-02-17 16:56:30.000000000 +0530
-+++ ./sfx2/inc/sfxsids.hrc 2005-02-18 12:08:21.000000000 +0530
-@@ -148,7 +148,9 @@
- #define SID_MAIL_NOTIFY (SID_SFX_START + 330)
- #define SID_MAIL_SENDDOC (SID_SFX_START + 331)
- #define SID_MAIL_SENDDOCASPDF (SID_SFX_START + 1672)
--
-+#define SID_MAIL_SENDDOCASMSPPT (SID_SFX_START + 1706)
-+#define SID_MAIL_SENDDOCASMSEXCEL (SID_SFX_START + 1707)
-+#define SID_MAIL_SENDDOCASMSDOC (SID_SFX_START + 1708)
-
- #define SID_MAIL_RECIPIENT (SID_SFX_START + 334)
- #define SID_MAIL_TEXT (SID_SFX_START + 335)
-@@ -566,7 +568,7 @@
- #define SID_MACRO_SIGNATURE (SID_SFX_START + 1704)
- #define SID_ATTR_WARNALIENFORMAT (SID_SFX_START + 1705)
-
--#define SID_SFX_free_START (SID_SFX_START + 1706)
-+#define SID_SFX_free_START (SID_SFX_START + 1709)
- #define SID_SFX_free_END (SID_SFX_START + 3999)
-
- #define SID_OPEN_NEW_VIEW (SID_SFX_START + 520)
---- ./sfx2/sdi/sfx.sdi.bakj 2005-02-17 17:01:38.000000000 +0530
-+++ ./sfx2/sdi/sfx.sdi 2005-02-18 12:01:13.000000000 +0530
-@@ -6369,6 +6369,86 @@
- GroupId = GID_DOCUMENT;
- ]
-
-+SfxBoolItem SendMailDocAsMSDoc SID_MAIL_SENDDOCASMSDOC
-+(SfxStringItem Recipient SID_MAIL_RECIPIENT,SfxStringItem Subject SID_MAIL_SUBJECT,SfxStringItem MailText SID_MAIL_TEXT,SfxUInt16Item Priority SID_MAIL_PRIORITY,SfxBoolItem AttachedDoc SID_MAIL_ATTACH,SfxStringItem AttachFiles SID_MAIL_ATTACH_FILE)
-+[
-+ /* flags: */
-+ AutoUpdate = FALSE,
-+ Cachable = Cachable,
-+ FastCall = FALSE,
-+ HasCoreId = FALSE,
-+ HasDialog = TRUE,
-+ ReadOnlyDoc = TRUE,
-+ Toggle = FALSE,
-+ Container = FALSE,
-+ RecordAbsolute = FALSE,
-+ RecordPerSet;
-+ Asynchron;
-+
-+ /* status: */
-+ SlotType = SfxStringItem
-+
-+ /* config: */
-+ AccelConfig = TRUE,
-+ MenuConfig = TRUE,
-+ StatusBarConfig = FALSE,
-+ ToolBoxConfig = TRUE,
-+ GroupId = GID_DOCUMENT;
-+]
-+
-+SfxBoolItem SendMailDocAsMSExcel SID_MAIL_SENDDOCASMSEXCEL
-+(SfxStringItem Recipient SID_MAIL_RECIPIENT,SfxStringItem Subject SID_MAIL_SUBJECT,SfxStringItem MailText SID_MAIL_TEXT,SfxUInt16Item Priority SID_MAIL_PRIORITY,SfxBoolItem AttachedDoc SID_MAIL_ATTACH,SfxStringItem AttachFiles SID_MAIL_ATTACH_FILE)
-+[
-+ /* flags: */
-+ AutoUpdate = FALSE,
-+ Cachable = Cachable,
-+ FastCall = FALSE,
-+ HasCoreId = FALSE,
-+ HasDialog = TRUE,
-+ ReadOnlyDoc = TRUE,
-+ Toggle = FALSE,
-+ Container = FALSE,
-+ RecordAbsolute = FALSE,
-+ RecordPerSet;
-+ Asynchron;
-+
-+ /* status: */
-+ SlotType = SfxStringItem
-+
-+ /* config: */
-+ AccelConfig = TRUE,
-+ MenuConfig = TRUE,
-+ StatusBarConfig = FALSE,
-+ ToolBoxConfig = TRUE,
-+ GroupId = GID_DOCUMENT;
-+]
-+SfxBoolItem SendMailDocAsMSPowerPoint SID_MAIL_SENDDOCASMSPPT
-+(SfxStringItem Recipient SID_MAIL_RECIPIENT,SfxStringItem Subject SID_MAIL_SUBJECT,SfxStringItem MailText SID_MAIL_TEXT,SfxUInt16Item Priority SID_MAIL_PRIORITY,SfxBoolItem AttachedDoc SID_MAIL_ATTACH,SfxStringItem AttachFiles SID_MAIL_ATTACH_FILE)
-+[
-+ /* flags: */
-+ AutoUpdate = FALSE,
-+ Cachable = Cachable,
-+ FastCall = FALSE,
-+ HasCoreId = FALSE,
-+ HasDialog = TRUE,
-+ ReadOnlyDoc = TRUE,
-+ Toggle = FALSE,
-+ Container = FALSE,
-+ RecordAbsolute = FALSE,
-+ RecordPerSet;
-+ Asynchron;
-+
-+ /* status: */
-+ SlotType = SfxStringItem
-+
-+ /* config: */
-+ AccelConfig = TRUE,
-+ MenuConfig = TRUE,
-+ StatusBarConfig = FALSE,
-+ ToolBoxConfig = TRUE,
-+ GroupId = GID_DOCUMENT;
-+]
-+
- SfxBoolItem SendMailDocAsPDF SID_MAIL_SENDDOCASPDF
- (SfxStringItem Recipient SID_MAIL_RECIPIENT,SfxStringItem Subject SID_MAIL_SUBJECT,SfxStringItem MailText SID_MAIL_TEXT,SfxUInt16Item Priority SID_MAIL_PRIORITY,SfxBoolItem AttachedDoc SID_MAIL_ATTACH,SfxStringItem AttachFiles SID_MAIL_ATTACH_FILE)
- [
---- sfx2/source/inc/mailmodel.hxx.bakj 2005-02-18 11:49:05.000000000 +0530
-+++ sfx2/source/inc/mailmodel.hxx 2005-02-18 12:24:36.000000000 +0530
-@@ -90,6 +90,9 @@
- enum MailDocType
- {
- TYPE_SELF,
-+ TYPE_ASMSDOC,
-+ TYPE_ASMSEXCEL,
-+ TYPE_ASMSPOWERPOINT,
- TYPE_ASPDF
- };
-
-@@ -114,7 +117,7 @@
- void ClearList( AddressList_Impl* pList );
- void MakeValueList( AddressList_Impl* pList, String& rValueList );
- SaveResult SaveDocument( String& rFileName, String& rType );
-- SaveResult SaveDocAsPDF( String& rFileName, String& rType );
-+ SaveResult SaveDocAs( String& rFileName, String& rType,MailDocType mailDocType );
-
- DECL_LINK( DoneHdl, void* );
-
---- sc/uiconfig/scalc/menubar/menubar.xml.bakj 2005-02-18 10:15:10.000000000 +0530
-+++ sc/uiconfig/scalc/menubar/menubar.xml 2005-02-18 16:41:41.175086541 +0530
-@@ -22,6 +22,7 @@
- <menu:menupopup>
- <menu:menuitem menu:id=".uno:SendMail" menu:helpid="5331" menu:label="" />
- <menu:menuitem menu:id=".uno:SendMailDocAsPDF" menu:helpid="6672" menu:label="" />
-+ <menu:menuitem menu:id=".uno:SendMailDocAsMSExcel" menu:helpid="6707" menu:label="" />
- </menu:menupopup>
- </menu:menu>
- <menu:menuseparator/>
---- sw/uiconfig/swriter/menubar/menubar.xml.bakj 2005-02-17 16:38:52.000000000 +0530
-+++ sw/uiconfig/swriter/menubar/menubar.xml 2005-02-18 16:43:07.919222464 +0530
-@@ -22,6 +22,7 @@
- <menu:menupopup>
- <menu:menuitem menu:id=".uno:SendMail" menu:helpid="5331" menu:label="" />
- <menu:menuitem menu:id=".uno:SendMailDocAsPDF" menu:helpid="6672" menu:label="" />
-+ <menu:menuitem menu:id=".uno:SendMailDocAsMSDoc" menu:helpid="6708" menu:label="" />
- <menu:menuseparator/>
- <menu:menuitem menu:id=".uno:NewGlobalDoc" menu:helpid="20004" menu:label="" />
- <menu:menuitem menu:id=".uno:NewHtmlDoc" menu:helpid="20040" menu:label="" />
---- sd/uiconfig/simpress/menubar/menubar.xml.bakj 2005-02-18 16:44:27.103479847 +0530
-+++ sd/uiconfig/simpress/menubar/menubar.xml 2005-02-18 16:47:02.584344135 +0530
-@@ -22,6 +22,7 @@
- <menu:menupopup>
- <menu:menuitem menu:id=".uno:SendMail" menu:helpid="5331" menu:label="" />
- <menu:menuitem menu:id=".uno:SendMailDocAsPDF" menu:helpid="6672" menu:label="" />
-+ <menu:menuitem menu:id=".uno:SendMailDocAsMSPowerPoint" menu:helpid="6706" menu:label="" />
- </menu:menupopup>
- </menu:menu>
- <menu:menuseparator/>
---- officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu.bakj 2005-02-18 16:55:18.659537625 +0530
-+++ officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu 2005-02-18 17:00:20.837598320 +0530
-@@ -809,6 +809,11 @@
- <value>1</value>
- </prop>
- </node>
-+ <node oor:name=".uno:SendMailDocAsMSDoc" oor:op="replace">
-+ <prop oor:name="Label" oor:type="xs:string">
-+ <value xml:lang="en-US">Document as MS-~Doc Attachment...</value>
-+ </prop>
-+ </node>
- <node oor:name=".uno:SendOutlineToClipboard" oor:op="replace">
- <prop oor:name="Label" oor:type="xs:string">
- <value xml:lang="de">Gliederung zur Zwis~chenablage</value>
---- officecfg/registry/data/org/openoffice/Office/UI/DrawImpressCommands.xcu.bakj 2005-02-18 16:58:17.271973105 +0530
-+++ officecfg/registry/data/org/openoffice/Office/UI/DrawImpressCommands.xcu 2005-02-18 16:59:43.010223193 +0530
-@@ -1731,6 +1731,11 @@
- <value xml:lang="en-US">Sen~d</value>
- </prop>
- </node>
-+ <node oor:name=".uno:SendMailDocAsMSPowerPoint" oor:op="replace">
-+ <prop oor:name="Label" oor:type="xs:string">
-+ <value xml:lang="en-US">Document as MS-~PPT Attachment...</value>
-+ </prop>
-+ </node>
- <node oor:name=".uno:TemplatesMenu" oor:op="replace">
- <prop oor:name="Label" oor:type="xs:string">
- <value xml:lang="de">~Vorlagen</value>
---- svx/inc/globlmn_tmpl.hrc.bakj 2005-02-18 18:05:06.196343865 +0530
-+++ svx/inc/globlmn_tmpl.hrc 2005-02-18 18:07:51.216700899 +0530
-@@ -588,6 +588,24 @@
- Text [ en-US ] = "Document as ~E-mail..." ; \
- Text [ x-comment ] = " "; \
-
-+#define ITEM_FILE_MAIL_SENDDOCASMSEXCEL \
-+ Identifier = SID_MAIL_SENDDOCASMSEXCEL ; \
-+ Command = ".uno:SendMailDocAsMSExcel" ; \
-+ HelpID = SID_MAIL_SENDDOCASMSEXCEL ; \
-+ Text [ en-US ] = "Document as MS-E~xcel Attachment..." ; \
-+
-+#define ITEM_FILE_MAIL_SENDDOCASMSDOC \
-+ Identifier = SID_MAIL_SENDDOCASMSDOC ; \
-+ Command = ".uno:SendMailDocAsMSDoc" ; \
-+ HelpID = SID_MAIL_SENDDOCASMSDOC ; \
-+ Text [ en-US ] = "Document as MS-~Doc Attachment..." ; \
-+
-+#define ITEM_FILE_MAIL_SENDDOCASMSPPT \
-+ Identifier = SID_MAIL_SENDDOCASMSPPT ; \
-+ Command = ".uno:SendMailDocAsMSPowerPoint" ; \
-+ HelpID = SID_MAIL_SENDDOCASMSPPT ; \
-+ Text [ en-US ] = "Document as MS-~PPT Attachment..." ; \
-+
- #define ITEM_FILE_MAIL_SENDDOCASPDF \
- Identifier = SID_MAIL_SENDDOCASPDF ; \
- Command = ".uno:SendMailDocAsPDF" ; \
-
-
---- sfx2/source/dialog/mailmodel.cxx.bakj 2005-05-10 13:33:35.000000000 +0530
-+++ sfx2/source/dialog/mailmodel.cxx 2005-05-10 13:52:59.000000000 +0530
-@@ -509,7 +509,7 @@
- return 0;
- }
-
--SfxMailModel_Impl::SaveResult SfxMailModel_Impl::SaveDocAsPDF( String& rFileName, String& rType )
-+SfxMailModel_Impl::SaveResult SfxMailModel_Impl::SaveDocAs( String& rFileName, String& rType,MailDocType mailDocType )
- {
- SaveResult eRet = SAVE_CANCELLED;
- SfxViewFrame* pTopViewFrm = mpBindings->GetDispatcher_Impl()->GetFrame()->GetTopViewFrame();
-@@ -528,9 +528,16 @@
- String sFactoryShortName = String::CreateFromAscii(xDocShell->GetFactory().GetShortName());
- String sFactoryLongName = SfxObjectShell::GetServiceNameFromFactory(sFactoryShortName);
- SfxFilterMatcher aMatcher( sFactoryShortName );
-- String aPDFExtension = String::CreateFromAscii( "pdf" ); // Extension without dot!
--
-- const SfxFilter* pFilter = impl_getPDFFilterForDoc( sFactoryLongName, aMatcher);
-+ String aExtension;
-+ switch (mailDocType)
-+ {
-+ case TYPE_ASPDF : aExtension = String::CreateFromAscii( "pdf" );break;
-+ case TYPE_ASMSDOC : aExtension = String::CreateFromAscii( "doc" );break;
-+ case TYPE_ASMSEXCEL : aExtension = String::CreateFromAscii( "xls" );break;
-+ case TYPE_ASMSPOWERPOINT : aExtension = String::CreateFromAscii( "ppt" );break;
-+ }
-+
-+ const SfxFilter* pFilter = aMatcher.GetFilter4Extension( aExtension, SFX_FILTER_EXPORT );
- sal_Bool bHasFilter = pFilter ? sal_True : sal_False;
-
- // create temp file name with leading chars and extension
-@@ -546,7 +553,7 @@
- String aName;
- if ( aFileObj.hasExtension() )
- {
-- pExt = new String( String::CreateFromAscii( "." ) + (OUString)aPDFExtension );
-+ pExt = new String( String::CreateFromAscii( "." ) + (OUString)aExtension );
- aFileObj.removeExtension();
- aLeadingStr = aFileObj.getName( INetURLObject::LAST_SEGMENT, true, INetURLObject::DECODE_WITH_CHARSET );
- }
-@@ -567,10 +574,27 @@
- delete pExt;
-
- rFileName = aTempFile.GetURL();
--
-+ SfxBoolItem aPicklist( SID_PICKLIST, FALSE );
-+ SfxBoolItem aSaveTo( SID_SAVETO, TRUE );
-+ SfxStringItem* pFilterName = NULL;
-+ if ( pFilter && bHasFilter )
-+ pFilterName = new SfxStringItem( SID_FILTER_NAME, pFilter->GetFilterName() );
-+
-+ SfxStringItem* pPassItem = NULL;
-+ String aPasswd;
-+ if ( GetPasswd_Impl( xDocShell->GetMedium()->GetItemSet(), aPasswd ) )
-+ pPassItem = new SfxStringItem( SID_PASSWORD, aPasswd );
-+
- // save document to temp file
- SfxStringItem aFileName( SID_FILE_NAME, rFileName );
-- const SfxBoolItem *pRet = (const SfxBoolItem*)pDisp->Execute( SID_EXPORTDOCASPDF, SFX_CALLMODE_SYNCHRON, &aFileName, 0L );
-+ const SfxBoolItem *pRet = (const SfxBoolItem*)pDisp->Execute( SID_SAVEASDOC,
-+ SFX_CALLMODE_SYNCHRON,
-+ &aFileName,
-+ &aPicklist,
-+ &aSaveTo,
-+ pFilterName ? pFilterName : pPassItem,
-+ pFilterName ? pPassItem : 0L, 0L );
-+
- BOOL bRet = pRet ? pRet->GetValue() : FALSE;
- eRet = bRet ? SAVE_SUCCESSFULL : SAVE_CANCELLED;
-
-@@ -670,10 +694,16 @@
- String aFileName, aContentType;
-
- sal_Bool bSuccessfull = sal_False;
-- if ( eMailDocType == TYPE_SELF )
-- eSaveResult = SaveDocument( aFileName, aContentType );
-- else
-- eSaveResult = SaveDocAsPDF( aFileName, aContentType );
-+ switch (eMailDocType){
-+ case TYPE_ASMSDOC:
-+ case TYPE_ASMSPOWERPOINT:
-+ case TYPE_ASPDF:
-+ case TYPE_ASMSEXCEL:
-+ eSaveResult = SaveDocAs( aFileName, aContentType,eMailDocType );
-+ break;
-+ default:
-+ eSaveResult = SaveDocument( aFileName, aContentType);
-+ }
-
- if ( eSaveResult == SAVE_SUCCESSFULL )
- {
---- officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu.bakj 2005-05-10 13:59:29.000000000 +0530
-+++ officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu 2005-05-10 14:00:12.000000000 +0530
-@@ -1498,6 +1498,11 @@
- <value xml:lang="en-US">Sen~d</value>
- </prop>
- </node>
-+ <node oor:name=".uno:SendMailDocAsMSExcel" oor:op="replace">
-+ <prop oor:name="Label" oor:type="xs:string">
-+ <value xml:lang="en-US">Document as MS-E~xcel Attachment...</value>
-+ </prop>
-+ </node>
- <node oor:name=".uno:ProtectMenu" oor:op="replace">
- <prop oor:name="Label" oor:type="xs:string">
- <value xml:lang="de">Dokument sch~ützen</value>
diff --git a/patches/src680/msaccess-db-create-dialog-fix.diff b/patches/src680/msaccess-db-create-dialog-fix.diff
deleted file mode 100644
index 56b904811..000000000
--- a/patches/src680/msaccess-db-create-dialog-fix.diff
+++ /dev/null
@@ -1,53 +0,0 @@
---- DataAccess.xcu 2005-08-19 13:18:24.000000000 +0530
-+++ officecfg/registry/data/org/openoffice/Office/DataAccess.xcu 2005-08-19 11:24:38.000000000 +0530
-@@ -785,19 +785,6 @@
- </node>
- </node>
- </node>
-- <node oor:name="UserDefinedDriverSettings">
-- <node oor:name="MDB Driver" oor:op="replace">
-- <prop oor:name="DriverPageDisplayName">
-- <value>MDB-SDBC Driver V 0.1</value>
-- </prop>
-- <prop oor:name="DriverTypeDisplayName">
-- <value>mdb</value>
-- </prop>
-- <prop oor:name="DriverDsnPrefix">
-- <value>sdbc:mdb:</value>
-- </prop>
-- </node>
-- </node>
- </oor:component-data>
-
-
---- dbaccess/source/ui/misc/dbumiscres.src 2005-08-19 13:17:54.000000000 +0530
-+++ dbaccess/source/ui/misc/dbumiscres.src 2005-08-18 11:03:31.000000000 +0530
-@@ -103,7 +103,8 @@
- };
- String STR_MSACCESS
- {
-- Text ="sdbc:ado:access:PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=";
-+ //Text ="sdbc:ado:access:PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=";
-+ Text ="sdbc:mdb:";
- };
- String STR_FLAT
- {
---- dbaccess/source/ui/misc/dsntypes.cxx 2005-08-19 13:17:54.000000000 +0530
-+++ dbaccess/source/ui/misc/dsntypes.cxx 2005-08-19 11:52:09.000000000 +0530
-@@ -551,12 +551,13 @@
- return DST_ODBC;
- if (_rDsn.EqualsIgnoreCaseAscii("sdbc:dbase", 0, nSeparator))
- return DST_DBASE;
--
-+ if (_rDsn.EqualsIgnoreCaseAscii("sdbc:mdb:", 0, nSeparator))
-+ return DST_MSACCESS;
- if (_rDsn.EqualsIgnoreCaseAscii("sdbc:ado:", 0, nSeparator))
- {
- nSeparator = _rDsn.Search((sal_Unicode)':', nSeparator + 1);
-- if (STRING_NOTFOUND != nSeparator && _rDsn.EqualsIgnoreCaseAscii("sdbc:ado:access",0, nSeparator) )
-- return DST_MSACCESS;
-+// if (STRING_NOTFOUND != nSeparator && _rDsn.EqualsIgnoreCaseAscii("sdbc:ado:access",0, nSeparator) )
-+// return DST_MSACCESS;
- return DST_ADO;
- }
- if (_rDsn.EqualsIgnoreCaseAscii("sdbc:flat:", 0, nSeparator))
diff --git a/patches/src680/myspell_hashify.diff b/patches/src680/myspell_hashify.diff
deleted file mode 100644
index 1b0c8e1af..000000000
--- a/patches/src680/myspell_hashify.diff
+++ /dev/null
@@ -1,634 +0,0 @@
---- lingucomponent/source/spellcheck/myspell/hashmgr.hxx 2003-06-24 12:48:03.000000000 -0700
-+++ lingucomponent/source/spellcheck/myspell/hashmgr.hxx 2005-07-27 15:26:18.214586336 -0700
-@@ -5,18 +5,27 @@
-
- class HashMgr
- {
-- int tablesize;
-- struct hentry * tableptr;
-+ int tablesize;
-+ char ** tableptr;
-+ mutable struct hentry compat;
-+ int compat_word_length;
-+ int fd;
-+ char *buffer;
-+ size_t length;
-+ size_t seek_newline(size_t from_offset) const;
-+ int slurp( int fd, size_t bytes );
-
- public:
- HashMgr(const char * tpath);
- ~HashMgr();
-
-+ struct hentry *setup_hentry(const char *ptr);
-+
- struct hentry * lookup(const char *) const;
-- int hash(const char *) const;
-- struct hentry * walk_hashtable(int & col, struct hentry * hp) const;
-+ struct hentry * walk_hashtable(int & col, struct hentry *p) const;
-
- private:
-+ int hash(const char *) const;
- HashMgr( const HashMgr & ); // not implemented
- HashMgr &operator=( const HashMgr & ); // not implemented
- int load_tables(const char * tpath);
---- lingucomponent/source/spellcheck/myspell/hashmgr.cxx 2005-11-13 11:26:46.031250000 +0200
-+++ lingucomponent/source/spellcheck/myspell/hashmgr.cxx 2005-11-13 11:32:11.062500000 +0200
-@@ -6,11 +6,32 @@
-
- #include "hashmgr.hxx"
-
-+#ifdef UNX
-+#include <sys/mman.h>
-+#include <unistd.h>
-+#endif
-+#ifdef WNT
-+#include <io.h>
-+typedef int ssize_t;
-+#endif
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+#include <errno.h>
-+#include <fcntl.h>
-+#ifndef _O_BINARY
-+#define _O_BINARY 0
-+#endif
-+#define IS_END(c) ((c) == '\r' || (c) == '\n')
-+
-+//Uncomment this to print debug msgs
-+//#define HASH_DEBUG
-+
- extern void mychomp(char * s);
- extern char * mystrdup(const char *);
-
- using namespace std;
-
-+#define WORD_END_CONDITN(c) ((c) == 0 || (c) == '/')
-
- // build a hash table from a munched word list
-
-@@ -18,6 +39,15 @@
- {
- tablesize = 0;
- tableptr = NULL;
-+ compat.wlen = 0;
-+ compat.alen = 0;
-+ compat.word = NULL;
-+ compat_word_length = 0;
-+ compat.astr = NULL;
-+ compat.next = NULL;
-+ fd = -1;
-+ length = 0;
-+ buffer = NULL;
- int ec = load_tables(tpath);
- if (ec) {
- /* error condition - what should we do here */
-@@ -33,27 +63,23 @@
-
- HashMgr::~HashMgr()
- {
-- if (tableptr) {
-- // now pass through hash table freeing up everything
-- // go through column by column of the table
-- for (int i=0; i < tablesize; i++) {
-- struct hentry * pt = &tableptr[i];
-- struct hentry * nt = NULL;
-- if (pt) {
-- if (pt->word) free(pt->word);
-- if (pt->astr) free(pt->astr);
-- pt = pt->next;
-- }
-- while(pt) {
-- nt = pt->next;
-- if (pt->word) free(pt->word);
-- if (pt->astr) free(pt->astr);
-- free(pt);
-- pt = nt;
-- }
-- }
-- free(tableptr);
-+#ifdef UNX
-+ if (fd != -1)
-+ {
-+ if (buffer)
-+ munmap (buffer, length);
-+ close (fd);
- }
-+ else
-+#endif
-+ {
-+ if (buffer)
-+ free (buffer);
-+ }
-+ free (compat.word);
-+
-+ buffer = NULL;
-+ fd = -1;
- tablesize = 0;
- }
-
-@@ -63,145 +89,205 @@
-
- struct hentry * HashMgr::lookup(const char *word) const
- {
-- struct hentry * dp;
-- if (tableptr) {
-- dp = &tableptr[hash(word)];
-- if (dp->word == NULL) return NULL;
-- for ( ; dp != NULL; dp = dp->next) {
-- if (strcmp(word,dp->word) == 0) return dp;
-- }
-- }
-- return NULL;
-+ const char *hash_str;
-+ int hash_id = hash(word);
-+ while ((hash_str = tableptr[hash_id%tablesize]) != NULL)
-+ {
-+ int i;
-+ for (i = 0; (word[i] != '\0' && !IS_END(hash_str[i]) &&
-+ hash_str[i] != '/' && word[i] == hash_str[i]); i++)
-+ ;
-+ if (word[i] == '\0' && (IS_END(hash_str[i]) || hash_str[i] == '/'))
-+ return ((HashMgr*)this)->setup_hentry (hash_str);
-+ hash_id++;
-+ }
-+#ifdef HASH_DEBUG
-+ fprintf( stderr, "No instance of '%s' hashid 0x%x\n", word, hash(word) );
-+#endif
-+ return NULL;
- }
-
-
-
--// add a word to the hash table (private)
--
--int HashMgr::add_word(const char * word, int wl, const char * aff, int al)
-+struct hentry *HashMgr::setup_hentry(const char *ptr)
- {
-- int i = hash(word);
-- struct hentry * dp = &tableptr[i];
-- struct hentry* hp;
-- if (dp->word == NULL) {
-- dp->wlen = wl;
-- dp->alen = al;
-- dp->word = mystrdup(word);
-- dp->astr = mystrdup(aff);
-- dp->next = NULL;
-- if ((wl) && (dp->word == NULL)) return 1;
-- if ((al) && (dp->astr == NULL)) return 1;
-- } else {
-- hp = (struct hentry *) malloc (sizeof(struct hentry));
-- if (hp == NULL) return 1;
-- hp->wlen = wl;
-- hp->alen = al;
-- hp->word = mystrdup(word);
-- hp->astr = mystrdup(aff);
-- hp->next = NULL;
-- while (dp->next != NULL) dp=dp->next;
-- dp->next = hp;
-- if ((wl) && (hp->word == NULL)) return 1;
-- if ((al) && (hp->astr == NULL)) return 1;
-- }
-- return 0;
--}
-+ int i;
-+
-+ for ( i = 0; !IS_END(ptr[i]); i++);
-+
-+ if ( i > compat_word_length )
-+ compat.word = (char *)realloc (compat.word,
-+ (compat_word_length = i + 1) + 1);
-+ compat.astr = NULL;
-+ compat.wlen = i;
-+ compat.alen = 0;
-+
-+
-+ for (i = 0; !IS_END(ptr[i]); i++) {
-+ compat.word[i] = ptr[i];
-
-+ if (ptr[i] == '/') {
-+ compat.wlen = i;
-+ compat.astr = compat.word + i + 1;
-+ compat.word[i] = '\0';
-+ }
-+ }
-+ compat.word[i] = '\0';
-
-+ if (compat.astr)
-+ compat.alen = i - compat.wlen - 1;
-+
-+#ifdef HASH_DEBUG
-+ fprintf( stderr, "Hit '%s' ('%s')\n", compat.word, compat.astr );
-+#endif
-+
-+ return &compat;
-+}
-
- // walk the hash table entry by entry - null at end
- struct hentry * HashMgr::walk_hashtable(int &col, struct hentry * hp) const
- {
-- //reset to start
-- if ((col < 0) || (hp == NULL)) {
-- col = -1;
-- hp = NULL;
-- }
--
-- if (hp && hp->next != NULL) {
-- hp = hp->next;
-- } else {
-- col++;
-- hp = (col < tablesize) ? &tableptr[col] : NULL;
-- // search for next non-blank column entry
-- while (hp && (hp->word == NULL)) {
-- col ++;
-- hp = (col < tablesize) ? &tableptr[col] : NULL;
-- }
-- if (col < tablesize) return hp;
-- hp = NULL;
-- col = -1;
-- }
-- return hp;
-+ if (col < 0)
-+ col = seek_newline (0);
-+ size_t next_line = (size_t)seek_newline(col);
-+ if (next_line >= length)
-+ return NULL;
-+ struct hentry *value = ((HashMgr *)this)->setup_hentry(buffer + col);
-+ col = (int)next_line;
-+ return value;
- }
-
-
-
- // load a munched word list and build a hash table on the fly
--
--int HashMgr::load_tables(const char * tpath)
-+int
-+HashMgr::slurp( int fd, size_t bytes )
- {
-- int wl, al;
-- char * ap;
--
-- // raw dictionary - munched file
-- FILE * rawdict = fopen(tpath, "r");
-- if (rawdict == NULL) return 1;
--
-- // first read the first line of file to get hash table size */
-- char ts[MAXDELEN];
-- if (! fgets(ts, MAXDELEN-1,rawdict)) return 2;
-- mychomp(ts);
-- tablesize = atoi(ts);
-- if (!tablesize) return 4;
-- tablesize = tablesize + 5;
-- if ((tablesize %2) == 0) tablesize++;
--
-- // allocate the hash table
-- tableptr = (struct hentry *) calloc(tablesize, sizeof(struct hentry));
-- if (! tableptr) return 3;
--
-- // loop through all words on much list and add to hash
-- // table and create word and affix strings
--
-- while (fgets(ts,MAXDELEN-1,rawdict)) {
-- mychomp(ts);
-- // split each line into word and affix char strings
-- ap = strchr(ts,'/');
-- if (ap) {
-- *ap = '\0';
-- ap++;
-- al = strlen(ap);
-- } else {
-- al = 0;
-- ap = NULL;
-- }
-+ size_t offset = 0;
-+ ssize_t count;
-+ do
-+ {
-+ count = read (fd, buffer + offset, bytes);
-+ if (count < 0)
-+ {
-+ if (errno == EINTR)
-+ continue;
-+ else
-+ return 1;
-+ }
-+ bytes -= count;
-+ offset += count;
-+ }
-+ while (bytes > 0);
-+ return 0;
-+}
-
-- wl = strlen(ts);
-+size_t
-+HashMgr::seek_newline( size_t i ) const
-+{
-+ while (i < length && !IS_END(buffer[i])) i++;
-+ while (i < length && IS_END(buffer[i])) i++;
-+ return i;
-+}
-
-- // add the word and its index
-- if (add_word(ts,wl,ap,al))
-- return 5;;
-+int HashMgr::load_tables(const char * tpath)
-+{
-
-+#ifdef HASH_DEBUG
-+ fprintf( stderr, "Load tables from '%s'\n", tpath );
-+#endif
-+ fd = open (tpath, O_RDONLY|_O_BINARY);
-+ if (fd < 0)
-+ return 1;
-+ struct stat info;
-+ if (fstat(fd, &info) < 0)
-+ return 1;
-+#ifdef UNX
-+ length = info.st_size;
-+ if (MAP_FAILED == (buffer = (char *)mmap (NULL, info.st_size, PROT_READ, MAP_SHARED, fd, 0)))
-+ ;
-+ else
-+#endif
-+ {
-+ buffer = new char[ length ];
-+ int failed = slurp (fd, length);
-+ close (fd);
-+ fd = -1;
-+ if (failed)
-+ {
-+ delete buffer;
-+ return 1;
-+ }
- }
-+ if (!buffer)
-+ return 1;
-+ size_t second_line = seek_newline (0);
-+ char *str = new char [ second_line + 1 ];
-+ memcpy (str, buffer, second_line);
-+ str[second_line] = '\0';
-+ tablesize = strtol(str, NULL, 0);
-+ delete[] str;
-+ if (tablesize <= 0)
-+ return 4;
-+ long sparse = tablesize * 2;
-+
-+ // Bin any small prime factors
-+ while (!(sparse % 2) || !(sparse % 3) || !(sparse % 5 ) ||
-+ !(sparse % 7) || !(sparse % 11) || !(sparse % 13 ))
-+ sparse++;
-+
-+ /* fprintf( stderr, "Switch table size to %d from %d\n",
-+ tablesize, sparse); */
-+ tablesize = sparse;
-+
-+ // Hash - normal fixed size sparse hash, compare until we hit a NULL
-+ tableptr = (char **)calloc (sizeof(char *), tablesize );
-+
-+#ifdef HASH_DEBUG
-+ static int total_cols = 0;
-+ static int total_lookups = 0;
-+#endif
-+ size_t i = 0;
-+ // CHECKME: '\n' on Win32 ? - cf. Win32 binary downloads I guess.
-+ for (i = second_line; i < length;)
-+ {
-+ int hash_id;
-+ size_t next_line = seek_newline (i);
-+ if (next_line >= length)
-+ break;
-+
-+ hash_id = hash(buffer + i);
-+ int collisions = 0;
-+ while (tableptr[hash_id%tablesize]) {
-+ collisions++;
-+ hash_id++;
-+ }
-+#ifdef HASH_DEBUG
-+ total_lookups++;
-+ total_cols += collisions;
-+#endif
-+ tableptr[hash_id] = buffer + i;
-+ i = next_line;
-+ }
-+#ifdef HASH_DEBUG
-+ fprintf (stderr, "%d collisions on %d lookups\n", total_cols, total_lookups);
-+#endif
-
-- fclose(rawdict);
- return 0;
- }
-
--
--// the hash function is a simple load and rotate
--// algorithm borrowed
--
- int HashMgr::hash(const char * word) const
- {
-- long hv = 0;
-- for (int i=0; i < 4 && *word != 0; i++)
-- hv = (hv << 8) | (*word++);
-- while (*word != 0) {
-- ROTATE(hv,ROTATE_LEN);
-- hv ^= (*word++);
-- }
-- return (unsigned long) hv % tablesize;
-+ unsigned long hv = word[0];
-+ for (int i = 1; !WORD_END_CONDITN(word[i]) && !IS_END(word[i]); i++)
-+ hv = (hv << 5) - hv + word[i];
-+#ifdef HASH_DEBUG
-+ fprintf(stderr, "string '");
-+ for (int i = 0; !WORD_END_CONDITN(word[ i ] && !IS_END(word[i])); i++)
-+ fprintf( stderr, "%c", word[i] );
-+ fprintf(stderr, "' 0x%x \n", (int)hv % tablesize);
-+#endif
-+
-+ return hv % tablesize;
- }
-
---- lingucomponent/source/spellcheck/myspell/suggestmgr.hxx 2004-02-04 04:58:34.000000000 -0800
-+++ lingucomponent/source/spellcheck/myspell/suggestmgr.hxx 2005-07-21 17:26:26.000000000 -0700
-@@ -42,6 +42,7 @@
- int twowords(char **, const char *, int);
- int ngram(int n, char * s1, const char * s2, int uselen);
- void bubblesort( char ** rwd, int * rsc, int n);
-+ int expand_rootword_affix(struct hentry *hp, char *word, int wrdlen, int thresh, int glistscore[], char *guesslist[], int *lp);
- };
-
- #endif
---- lingucomponent/source/spellcheck/myspell/suggestmgr.cxx 2004-07-13 09:00:25.000000000 -0700
-+++ lingucomponent/source/spellcheck/myspell/suggestmgr.cxx 2005-07-27 15:29:58.584085080 -0700
-@@ -366,37 +366,13 @@
- int lval;
- int sc;
- int lp;
-+ int lpMG;
-
- if (! pHMgr) return 0;
-
-- // exhaustively search through all root words
-- // keeping track of the MAX_ROOTS most similar root words
-- struct hentry * roots[MAX_ROOTS];
-- int scores[MAX_ROOTS];
-- for (i = 0; i < MAX_ROOTS; i++) {
-- roots[i] = NULL;
-- scores[i] = -100 * i;
-- }
-- lp = MAX_ROOTS - 1;
-
- int n = strlen(word);
-
-- struct hentry* hp = NULL;
-- int col = -1;
-- while ((hp = pHMgr->walk_hashtable(col, hp))) {
-- sc = ngram(3, word, hp->word, NGRAM_LONGER_WORSE);
-- if (sc > scores[lp]) {
-- scores[lp] = sc;
-- roots[lp] = hp;
-- int lval = sc;
-- for (j=0; j < MAX_ROOTS; j++)
-- if (scores[j] < lval) {
-- lp = j;
-- lval = scores[j];
-- }
-- }
-- }
--
- // find minimum threshhold for a passable suggestion
- // mangle original word three differnt ways
- // and score them to generate a minimum acceptable score
-@@ -412,9 +388,14 @@
- thresh = thresh / 3;
- thresh--;
-
-- // now expand affixes on each of these root words and
-- // and use length adjusted ngram scores to select
-- // possible suggestions
-+
-+ struct hentry * roots[MAX_ROOTS];
-+ int scores[MAX_ROOTS];
-+ for (i = 0; i < MAX_ROOTS; i++) {
-+ roots[i] = NULL;
-+ scores[i] = -100 * i;
-+ }
-+
- char * guess[MAX_GUESS];
- int gscore[MAX_GUESS];
- for(i=0;i<MAX_GUESS;i++) {
-@@ -422,46 +403,28 @@
- gscore[i] = -100 * i;
- }
-
-- lp = MAX_GUESS - 1;
--
-- struct guessword * glst;
-- glst = (struct guessword *) calloc(MAX_WORDS,sizeof(struct guessword));
-- if (! glst) return 0;
-+ // exhaustively search through all root words
-+ // keeping track of the MAX_ROOTS most similar root words
-+ lp = MAX_ROOTS - 1;
-
-- for (i = 0; i < MAX_ROOTS; i++) {
-+ lpMG = MAX_GUESS - 1;
-
-- if (roots[i]) {
-- struct hentry * rp = roots[i];
-- int nw = pAMgr->expand_rootword(glst, MAX_WORDS, rp->word, rp->wlen,
-- rp->astr, rp->alen);
-- for (int k = 0; k < nw; k++) {
-- sc = ngram(n, word, glst[k].word, NGRAM_ANY_MISMATCH);
-- if (sc > thresh)
-- {
-- if (sc > gscore[lp])
-- {
-- if (guess[lp]) free(guess[lp]);
-- gscore[lp] = sc;
-- guess[lp] = glst[k].word;
-- glst[k].word = NULL;
-- lval = sc;
-- for (j=0; j < MAX_GUESS; j++)
-- {
-- if (gscore[j] < lval)
-- {
-- lp = j;
-- lval = gscore[j];
-- }
-- }
-- }
-- }
-- free (glst[k].word);
-- glst[k].word = NULL;
-- glst[k].allow = 0;
-- }
-- }
-+ struct hentry* hp = NULL;
-+ int col = -1;
-+ while ((hp = pHMgr->walk_hashtable(col, hp))) {
-+ sc = ngram(3, word, hp->word, NGRAM_LONGER_WORSE);
-+ if (sc > scores[lp]) {
-+ scores[lp] = sc;
-+ // Get the list of guesswords for this rootword
-+ if (-1 == expand_rootword_affix(hp, word, n, thresh, gscore, guess, &lpMG)) return 0;
-+ lval = sc;
-+ for (j=0; j < MAX_ROOTS; j++)
-+ if (scores[j] < lval) {
-+ lp = j;
-+ lval = scores[j];
-+ }
-+ }
- }
-- if (glst) free(glst);
-
- // now we are done generating guesses
- // sort in order of decreasing score and copy over
-@@ -485,6 +448,50 @@
- }
-
-
-+int SuggestMgr::expand_rootword_affix(struct hentry *hp, char *word, int wrdlen, int thresh, int glistscore[], char *guesslist[], int *lp)
-+{
-+ int sc;
-+ int lval;
-+
-+ struct guessword * glst;
-+ glst = (struct guessword *) calloc(MAX_WORDS,sizeof(struct guessword));
-+ if (! glst) return -1;
-+
-+ // now expand affixes on each of these root words and
-+ // and use length adjusted ngram scores to select
-+ // possible suggestions
-+ if (hp) {
-+ int nw = pAMgr->expand_rootword(glst, MAX_WORDS, hp->word, hp->wlen,
-+ hp->astr, hp->alen);
-+ for (int k = 0; k < nw; k++)
-+ {
-+ sc = ngram(wrdlen, word, glst[k].word, NGRAM_ANY_MISMATCH);
-+ if (sc > thresh && sc > glistscore[*lp])
-+ {
-+ if (guesslist[*lp]) free(guesslist[*lp]);
-+ glistscore[*lp] = sc;
-+ guesslist[*lp] = glst[k].word;
-+ glst[k].word = NULL;
-+ lval = sc;
-+ for (int j=0; j < MAX_GUESS; j++)
-+ {
-+ if (glistscore[j] < lval)
-+ {
-+ *lp = j;
-+ lval = glistscore[j];
-+ }
-+ }
-+ }
-+ free (glst[k].word);
-+ glst[k].word = NULL;
-+ glst[k].allow = 0;
-+ }
-+ }
-+ if (glst) free(glst);
-+
-+ return 0;
-+}
-+
-
-
- // see if a candidate suggestion is spelled correctly
diff --git a/patches/src680/nas-use-arch-flags.diff b/patches/src680/nas-use-arch-flags.diff
deleted file mode 100644
index 8039ac0a7..000000000
--- a/patches/src680/nas-use-arch-flags.diff
+++ /dev/null
@@ -1,23 +0,0 @@
---- nas/nas-1.6.patch.orig 2004-07-13 10:39:37.000000000 -0400
-+++ nas/nas-1.6.patch 2004-07-13 10:37:21.000000000 -0400
-@@ -1,3 +1,20 @@
-+*** misc/nas-1.6/Imakefile 1999-10-24 13:45:16.000000000 -0400
-+--- misc/build/nas-1.6/Imakefile 2004-07-13 10:26:33.000000000 -0400
-+***************
-+*** 31,36 ****
-+--- 31,42 ----
-+
-+ WORLDOPTS = -k
-+
-++ CFLAGS=$(ARCH_FLAGS) -Wno-return-type
-++ CXXFLAGS=$(ARCH_FLAGS) -Wno-return-type
-++ BOOTSTRAPCFLAGS=$(ARCH_FLAGS) -Wno-return-type
-++ CXXDEBUGFLAGS=$(ARCH_FLAGS) -Wno-return-type
-++ CDEBUGFLAGS=$(ARCH_FLAGS) -Wno-return-type
-++
-+ SUBDIRS = include server lib clients doc config
-+
-+ MakeSubdirs($(SUBDIRS))
- *** misc/nas-1.6/clients/audio/auctl/auctl.c 1999-05-08 20:47:16.000000000 +0200
- --- misc/build/nas-1.6/clients/audio/auctl/auctl.c 2004-09-03 12:50:52.868259792 +0200
- ***************
diff --git a/patches/src680/nfs-flock.diff b/patches/src680/nfs-flock.diff
deleted file mode 100644
index 1e7d3e8e0..000000000
--- a/patches/src680/nfs-flock.diff
+++ /dev/null
@@ -1,39 +0,0 @@
-Index: sal/osl/unx/file.cxx
-===================================================================
-RCS file: /cvs/porting/sal/osl/unx/file.cxx,v
-retrieving revision 1.8
-diff -u -p -u -r1.8 file.cxx
---- sal/osl/unx/file.cxx 31 May 2005 17:07:41 -0000 1.8
-+++ sal/osl/unx/file.cxx 23 Aug 2005 16:42:43 -0000
-@@ -650,6 +652,8 @@ oslFileError osl_openFile( rtl_uString*
- fd = open( buffer, flags, mode );
- if ( fd >= 0 )
- {
-+ sal_Bool got_flock;
-+
- /* check if file lock is enabled and clear l_type member of flock otherwise */
- if( (char *) -1 == pFileLockEnvVar )
- {
-@@ -663,8 +667,21 @@ oslFileError osl_openFile( rtl_uString*
- if( NULL == pFileLockEnvVar )
- aflock.l_type = 0;
-
-+ got_flock = sal_False;
- /* lock the file if flock.l_type is set */
-- if( F_WRLCK != aflock.l_type || -1 != fcntl( fd, F_SETLK, &aflock ) )
-+ if( F_WRLCK != aflock.l_type)
-+ got_flock = sal_True;
-+ if( -1 != fcntl( fd, F_SETLK, &aflock ) )
-+ got_flock = sal_True;
-+ else if( errno == EAGAIN )
-+ errno = EACCES; /* misleading synonym */
-+ else if( errno == ENOLCK )
-+ { /* locking not supported */
-+ errno = 0;
-+ got_flock = sal_True;
-+ }
-+
-+ if (got_flock)
- {
- /* allocate memory for impl structure */
- pHandleImpl = (oslFileHandleImpl*) rtl_allocateMemory( sizeof(oslFileHandleImpl) );
diff --git a/patches/src680/no-fontooo-wizard.diff b/patches/src680/no-fontooo-wizard.diff
deleted file mode 100644
index 1b492feb8..000000000
--- a/patches/src680/no-fontooo-wizard.diff
+++ /dev/null
@@ -1,30 +0,0 @@
-Index: Common.xcu
-===================================================================
-RCS file: /cvs/util/officecfg/registry/data/org/openoffice/Office/Common.xcu,v
-retrieving revision 1.31
-diff -u -u -r1.31 Common.xcu
---- officecfg/registry/data/org/openoffice/Office/Common.xcu 23 Mar 2005 10:53:46 -0000 1.31
-+++ officecfg/registry/data/org/openoffice/Office/Common.xcu 20 Jun 2005 17:38:08 -0000
-@@ -538,22 +538,6 @@
- <value >private:image/3216</value>
- </prop>
- </node>
-- <node oor:name="m16" oor:op="replace" install:module="dicooo">
-- <prop oor:name="URL" oor:type="xs:string">
-- <value >macro:///Launcher.FontOOo.StartFontOOo</value>
-- </prop>
-- <prop oor:name="Title">
-- <value>FontOOo Wizard...</value>
-- <value xml:lang="de">Schriftarten aus dem Internet installieren...</value>
-- <value xml:lang="en-US">Install fonts from the web...</value>
-- </prop>
-- <prop oor:name="TargetName" oor:type="xs:string">
-- <value >_self</value>
-- </prop>
-- <prop oor:name="ImageIdentifier" oor:type="xs:string">
-- <value >private:image/3216</value>
-- </prop>
-- </node>
- </node>
- </node>
- <node oor:name="Forms">
diff --git a/patches/src680/no-ldap-mozilla.diff b/patches/src680/no-ldap-mozilla.diff
deleted file mode 100644
index da503de57..000000000
--- a/patches/src680/no-ldap-mozilla.diff
+++ /dev/null
@@ -1,33 +0,0 @@
---- config_office/configure.in.orig 2005-08-11 16:07:16.000000000 +0200
-+++ config_office/configure.in 2005-08-13 12:39:17.000000000 +0200
-@@ -2784,7 +2784,7 @@
- fi
-
- AC_MSG_CHECKING([whether to build LDAP configuration backend])
--if test "$enable_mozilla" = "no" && test "$enable_openldap" != "yes"; then
-+if test "$enable_openldap" != "yes"; then
- AC_MSG_RESULT([no. Either Mozilla or OpenLDAP needed.])
- WITH_LDAP=NO
- elif test "$with_system_mozilla" = "yes" || test "$enable_openldap" = "yes"; then
---- extensions/source/config/ldap/makefile.mk.orig 2005-06-19 02:53:37.725788224 +0200
-+++ extensions/source/config/ldap/makefile.mk 2005-06-19 02:54:17.068807176 +0200
-@@ -75,7 +75,7 @@
- .INCLUDE : settings.mk
- DLLPRE =
-
--.IF "$(WITH_MOZILLA)" == "NO" && "$(WITH_OPENLDAP)" != "YES"
-+.IF "$(WITH_OPENLDAP)" != "YES"
- @all:
- @echo "Mozilla disabled and no OpenLDAP wanted -> LDAP disabled."
- .ENDIF
---- scp2/source/ooo/file_library_ooo.scp.orig 2005-08-18 14:53:05.000000000 +0200
-+++ scp2/source/ooo/file_library_ooo.scp 2005-08-18 14:53:11.000000000 +0200
-@@ -185,7 +185,7 @@
- End
-
- #ifndef WITHOUT_LDAP
--#if !defined WITHOUT_MOZILLA || defined WITH_OPENLDAP
-+#if defined WITH_OPENLDAP
- File gid_File_Lib_Ldapbe2
- TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT,PATCH);
diff --git a/patches/src680/no-sans-serif-default.diff b/patches/src680/no-sans-serif-default.diff
deleted file mode 100644
index f341f4714..000000000
--- a/patches/src680/no-sans-serif-default.diff
+++ /dev/null
@@ -1,316 +0,0 @@
---- officecfg/registry/data/org/openoffice/VCL.xcu.orig 2005-09-15 12:03:29.740352416 +0200
-+++ officecfg/registry/data/org/openoffice/VCL.xcu 2005-09-15 12:10:09.330605464 +0200
-@@ -55,22 +55,22 @@
- <node oor:name="DefaultFonts">
- <node oor:name="en" oor:op="replace">
- <prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Bitstream Vera Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Bitstream Vera Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="CJK_DISPLAY" oor:type="xs:string" oor:op="replace">
- <value>Andale Sans UI;MS Gothic;HG Gothic J;HG Gothic B;HG Gothic;Gothic;MS PGothic;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
- </prop>
- <prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Bitstream Vera Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Bitstream Vera Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace">
- <value>Cumberland;Courier New;Bitstream Vera Sans Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
- </prop>
- <prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Bitstream Vera Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Bitstream Vera Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Bitstream Vera Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Bitstream Vera Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace">
- <value>Thorndale;Times New Roman;Bitstream Vera Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
-@@ -100,7 +100,7 @@
- <value>Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value>
- </prop>
- <prop oor:name="SANS" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Bitstream Vera Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Bitstream Vera Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="SANS_UNICODE" oor:type="xs:string" oor:op="replace">
- <value>Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;Albany;Arial;Helvetica;Lucida;Geneva;Helmet;SansSerif</value>
-@@ -127,25 +127,60 @@
-
- <node oor:name="cs" oor:op="replace">
- <prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace">
- <value>Cumberland;Courier New;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
- </prop>
- <prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace">
- <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
- </prop>
- <prop oor:name="SANS" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
-+ </prop>
-+ <prop oor:name="SERIF" oor:type="xs:string" oor:op="replace">
-+ <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
-+ </prop>
-+ <prop oor:name="UI_FIXED" oor:type="xs:string" oor:op="replace">
-+ <value>Cumberland;Courier New;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
-+ </prop>
-+ <prop oor:name="FIXED" oor:type="xs:string" oor:op="replace">
-+ <value>Cumberland;Courier New;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
-+ </prop>
-+ <prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace">
-+ <value>Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;Luxi Sans;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Albany;Lucida;Helvetica;Charcoal;Chicago;Arial;Helmet;Interface System;Sans Serif</value>
-+ </prop>
-+ </node>
-+ <node oor:name="el" oor:op="replace">
-+ <prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace">
-+ <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
-+ </prop>
-+ <prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace">
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
-+ </prop>
-+ <prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace">
-+ <value>Cumberland;Courier New;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
-+ </prop>
-+ <prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace">
-+ <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
-+ </prop>
-+ <prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace">
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
-+ </prop>
-+ <prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace">
-+ <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
-+ </prop>
-+ <prop oor:name="SANS" oor:type="xs:string" oor:op="replace">
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="SERIF" oor:type="xs:string" oor:op="replace">
- <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
-@@ -162,25 +197,25 @@
- </node>
- <node oor:name="hr-HR" oor:op="replace">
- <prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace">
- <value>Cumberland;Courier New;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
- </prop>
- <prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace">
- <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
- </prop>
- <prop oor:name="SANS" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="SERIF" oor:type="xs:string" oor:op="replace">
- <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
-@@ -197,25 +232,25 @@
- </node>
- <node oor:name="hu-HU" oor:op="replace">
- <prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace">
- <value>Cumberland;Courier New;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
- </prop>
- <prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace">
- <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
- </prop>
- <prop oor:name="SANS" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="SERIF" oor:type="xs:string" oor:op="replace">
- <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
-@@ -232,25 +267,25 @@
- </node>
- <node oor:name="pl-PL" oor:op="replace">
- <prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace">
- <value>Cumberland;Courier New;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
- </prop>
- <prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace">
- <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
- </prop>
- <prop oor:name="SANS" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="SERIF" oor:type="xs:string" oor:op="replace">
- <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
-@@ -267,25 +302,25 @@
- </node>
- <node oor:name="ro-RO" oor:op="replace">
- <prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace">
- <value>Cumberland;Courier New;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
- </prop>
- <prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace">
- <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
- </prop>
- <prop oor:name="SANS" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="SERIF" oor:type="xs:string" oor:op="replace">
- <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
-@@ -302,25 +337,25 @@
- </node>
- <node oor:name="sk-SK" oor:op="replace">
- <prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace">
- <value>Cumberland;Courier New;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
- </prop>
- <prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace">
- <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
- </prop>
- <prop oor:name="SANS" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="SERIF" oor:type="xs:string" oor:op="replace">
- <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
-@@ -337,25 +372,25 @@
- </node>
- <node oor:name="sl-SI" oor:op="replace">
- <prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace">
- <value>Cumberland;Courier New;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
- </prop>
- <prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace">
- <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
- </prop>
- <prop oor:name="SANS" oor:type="xs:string" oor:op="replace">
-- <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>Albany;Arial;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="SERIF" oor:type="xs:string" oor:op="replace">
- <value>Thorndale;Times New Roman;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value>
-@@ -592,13 +627,13 @@
- <value>ì¬êµ´ë¦¼;SunGulim;굴림;Gulim;Cumberland;Courier New;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
- </prop>
- <prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace">
-- <value>ì¬ë‹ì›€;SunDotum;ë‹ì›€;Dotum;ì¬êµ´ë¦¼;SunGulim;굴림;Gulim;Roundgothic;Albany;Arial;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>ì¬ë‹ì›€;SunDotum;ë‹ì›€;Dotum;ì¬êµ´ë¦¼;SunGulim;굴림;Gulim;Roundgothic;Albany;Arial;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace">
-- <value>ì¬ë°”탕;SunBatang;바탕;Batang;Myeongjo;ì¬êµ´ë¦¼;SunGulim;굴림;Gulim;Roundgothic;Albany;Arial;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>ì¬ë°”탕;SunBatang;바탕;Batang;Myeongjo;ì¬êµ´ë¦¼;SunGulim;굴림;Gulim;Roundgothic;Albany;Arial;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace">
-- <value>ì¬êµ´ë¦¼;SunGulim;굴림;Gulim;Batang;Myeongjo;Gulim;Roundgothic;Thorndale;Times New Roman;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>ì¬êµ´ë¦¼;SunGulim;굴림;Gulim;Batang;Myeongjo;Gulim;Roundgothic;Thorndale;Times New Roman;Times;Lucida Serif;Lucida Bright;Timmons;New York;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;Serif</value>
- </prop>
- <prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace">
- <value>ì¬ë‹ì›€;SunDotum;ë‹ì›€;Dotum;백묵ë‹ì›€;BaekmukDotum;Batang;Myeongjo;ì¬êµ´ë¦¼;SunGulim;Gulim;Roundgothic</value>
-@@ -607,7 +642,7 @@
- <value>ì¬ë°”탕;SunBatang;Batang;Myeongjo;ì¬êµ´ë¦¼;SunGulim;Gulim;Roundgothic;Thorndale;Times New Roman;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
- </prop>
- <prop oor:name="SANS" oor:type="xs:string" oor:op="replace">
-- <value>ì¬ë‹ì›€;SunDotum;ë‹ì›€;Dotum;바탕;Batang;Myeongjo;ì¬êµ´ë¦¼;SunGulim;굴림;Gulim;Roundgothic;Albany;Arial;Helvetica;Lucida;Geneva;Helmet;SansSerif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value>
-+ <value>ì¬ë‹ì›€;SunDotum;ë‹ì›€;Dotum;바탕;Batang;Myeongjo;ì¬êµ´ë¦¼;SunGulim;굴림;Gulim;Roundgothic;Albany;Arial;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value>
- </prop>
- <prop oor:name="SANS_UNICODE" oor:type="xs:string" oor:op="replace">
- <value>ì¬êµ´ë¦¼;SunGulim;굴림;Gulim;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;Albany;Arial;Helvetica;Lucida;Geneva;Helmet;SansSerif</value>
diff --git a/patches/src680/no-splash-takeover.diff b/patches/src680/no-splash-takeover.diff
deleted file mode 100644
index f7e7a3539..000000000
--- a/patches/src680/no-splash-takeover.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: vcl/source/window/window.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/window/window.cxx,v
-retrieving revision 1.208
-diff -u -p -r1.208 window.cxx
---- vcl/source/window/window.cxx 31 Jan 2005 13:26:15 -0000 1.208
-+++ vcl/source/window/window.cxx 11 Feb 2005 16:42:22 -0000
-@@ -821,8 +821,6 @@ void Window::ImplInit( Window* pParent,
- else if( mpWindowImpl->mbFloatWin )
- nFrameStyle |= SAL_FRAME_STYLE_TOOLWINDOW;
-
-- if( nStyle & WB_INTROWIN )
-- nFrameStyle |= SAL_FRAME_STYLE_INTRO;
- if( nStyle & WB_TOOLTIPWIN )
- nFrameStyle |= SAL_FRAME_STYLE_TOOLTIP;
-
diff --git a/patches/src680/nojava-fix-stringparam-m145.diff b/patches/src680/nojava-fix-stringparam-m145.diff
deleted file mode 100644
index 06d9a79db..000000000
--- a/patches/src680/nojava-fix-stringparam-m145.diff
+++ /dev/null
@@ -1,33 +0,0 @@
-Index: source/config/fragments/makefile.mk
-===================================================================
-RCS file: /cvs/framework/filter/source/config/fragments/makefile.mk,v
-retrieving revision 1.12
-diff -u -u -r1.12 makefile.mk
---- filter/source/config/fragments/makefile.mk 8 Sep 2005 21:33:23 -0000 1.12
-+++ filter/source/config/fragments/makefile.mk 25 Oct 2005 18:24:46 -0000
-@@ -147,9 +147,16 @@
- .IF "$(SOLAR_JAVA)"==""
- #cmc, hack to workaround the java build requirement
- MERGE:=python ../tools/merge/pyAltFCFGMerge
-+PACKLANG := $(XSLTPROC)
-+PACKLANG_IN :=
-+PACKLANG_PARAM := --stringparam
-+PACKLANG_XSL :=
- .ELSE
- MERGE := $(JAVAI) -jar $(CLASSDIR)$/FCFGMerge.jar
- PACKLANG := $(JAVAI) $(JAVACPS) $(SOLARBINDIR)/xalan.jar org.apache.xalan.xslt.Process -XSL langfilter.xsl
-+PACKLANG_IN := -IN
-+PACKLANG_PARAM := -PARAM
-+PACKLANG_XSL := -XSL
- .ENDIF
-
- # -----------------------------------------------------------------------------
-@@ -182,7 +191,7 @@
- +@echo Building language packages $(@:b:s/Filter_//) for filters
- +@echo ===================================================================
- +-$(MKDIRHIER) $(@:d)
-- +$(PACKLANG) -IN $< -PARAM lang $(@:d:d:d:d:d:d:d:d:b) > $@
-+ +$(PACKLANG) $(PACKLANG_PARAM) lang $(@:d:d:d:d:d:d:d:d:b) $(PACKLANG_XSL) langfilter.xsl $(PACKLANG_IN) $< > $@
-
- $(REALFILTERPACKAGES_FILTERS_UI_LANGPACKS_PACKED) : $(REALFILTERPACKAGES_FILTERS_UI_LANGPACKS)
-
diff --git a/patches/src680/nojava-fix-stringparam.diff b/patches/src680/nojava-fix-stringparam.diff
deleted file mode 100644
index dddcc9fd7..000000000
--- a/patches/src680/nojava-fix-stringparam.diff
+++ /dev/null
@@ -1,32 +0,0 @@
---- filter/source/config/fragments/makefile.mk.ark~ 2005-12-17 23:19:52.000000000 +0000
-+++ filter/source/config/fragments/makefile.mk 2005-12-19 19:19:14.000000000 +0000
-@@ -154,6 +154,10 @@
- .IF "$(SOLAR_JAVA)"==""
- #cmc, hack to workaround the java build requirement
- MERGE:=python ../tools/merge/pyAltFCFGMerge
-+PACKLANG := $(XSLTPROC)
-+PACKLANG_IN :=
-+PACKLANG_PARAM := --stringparam
-+PACKLANG_XSL :=
- .ELSE
- MERGE := $(JAVAI) -jar $(CLASSDIR)$/FCFGMerge.jar
- .IF "$(JDK)" == "gcj"
-@@ -161,6 +165,9 @@
- CLASSPATH:=$(CLASSPATH)$(PATH_SEPERATOR){$(subst,%Z*Z%,$(PATH_SEPERATOR) $(XALANCLASS:s/ /%Z*Z%/))}
- .ENDIF
- PACKLANG := $(JAVAI) org.apache.xalan.xslt.Process -XSL langfilter.xsl
-+PACKLANG_IN := -IN
-+PACKLANG_PARAM := -PARAM
-+PACKLANG_XSL := -XSL
- .ENDIF
-
- # -----------------------------------------------------------------------------
-@@ -189,7 +196,7 @@
- +@echo Building language packages $(@:b:s/Filter_//) for filters
- +@echo ===================================================================
- +-$(MKDIRHIER) $(@:d)
-- +$(PACKLANG) -IN $< -PARAM lang $(@:d:d:d:d:d:d:d:d:b) > $@
-+ +$(PACKLANG) $(PACKLANG_PARAM) lang $(@:d:d:d:d:d:d:d:d:b) $(PACKLANG_XSL) langfilter.xsl $(PACKLANG_IN) $< > $@
-
- $(REALFILTERPACKAGES_FILTERS_UI_LANGPACKS_PACKED) : $(REALFILTERPACKAGES_FILTERS_UI_LANGPACKS)
-
diff --git a/patches/src680/novell-cjk-fonts.diff b/patches/src680/novell-cjk-fonts.diff
deleted file mode 100644
index 2a7f18305..000000000
--- a/patches/src680/novell-cjk-fonts.diff
+++ /dev/null
@@ -1,78 +0,0 @@
---- officecfg/registry/data/org/openoffice/VCL.xcu 2005-04-01 18:22:01.275291528 +0200
-+++ officecfg/registry/data/org/openoffice/VCL.xcu 2005-04-01 18:03:26.783328840 +0200
-@@ -457,31 +457,31 @@
- </node>
- <node oor:name="ja" oor:op="replace">
- <prop oor:name="CJK_TEXT" oor:type="xs:string" oor:op="replace">
-- <value>HG 明æœL Sun;HG MinchoL Sun;HG PゴシックB Sun;HG-PGothicB Sun;HG PゴシックB;HG-PGothicB;HG Mincho Light J;MS P 明æœ;TLP明æœ;LX明æœ;IPA P明æœ;æ±é¢¨æ˜Žæœ;Kochi Mincho;ã•ã–ãªã¿æ˜Žæœ;Mincho;Serif</value>
-+ <value>HG 明æœL Sun;HG MinchoL Sun;HG PゴシックB Sun;HG-PGothicB Sun;HG PゴシックB;HG-PGothicB;HG Mincho Light J;MS P 明æœ;TLP明æœ;LX明æœ;HGPMinchoL;IPA P明æœ;æ±é¢¨æ˜Žæœ;Kochi Mincho;ã•ã–ãªã¿æ˜Žæœ;Mincho;Serif</value>
- </prop>
- <prop oor:name="CJK_HEADING" oor:type="xs:string" oor:op="replace">
-- <value>HG 明æœL Sun;HG 明æœL;HG Mincho Light J;MS P ゴシック;TLPゴシック;LXゴシック;IPA Pゴシック;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;ã•ã–ãªã¿ã‚´ã‚·ãƒƒã‚¯;Gothic;MS 明æœ;HG Mincho J;HG Mincho L;HG Mincho;Mincho;MS P 明æœ;HG Mincho Light J;MS ゴシック;HG Gothic J;HG Gothic B;HG Gothic;Gothic;MS P ゴシック;Andale Sans UI</value>
-+ <value>HG 明æœL Sun;HG 明æœL;HG Mincho Light J;MS P ゴシック;TLPゴシック;LXゴシック;HGPGothicB;IPA Pゴシック;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;ã•ã–ãªã¿ã‚´ã‚·ãƒƒã‚¯;Gothic;MS 明æœ;HG Mincho J;HG Mincho L;HG Mincho;Mincho;MS P 明æœ;HG Mincho Light J;MS ゴシック;HG Gothic J;HG Gothic B;HG Gothic;Gothic;MS P ゴシック;Andale Sans UI</value>
- </prop>
- <prop oor:name="CJK_PRESENTATION" oor:type="xs:string" oor:op="replace">
-- <value>HG PゴシックB Sun;HG-PGothicB Sun;HG PゴシックB;HG-PGothicB;HG-GothicB;HG Mincho Light J;MS P ゴシック;TLPゴシック;LXゴシック;IPA Pゴシック;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;ã•ã–ãªã¿ã‚´ã‚·ãƒƒã‚¯;MS ゴシック;MS P ゴシック;HG Gothic;HG Gothic B;Gothic;Andale Sans UI</value>
-+ <value>HG PゴシックB Sun;HG-PGothicB Sun;HG PゴシックB;HG-PGothicB;HG-GothicB;HG Mincho Light J;MS P ゴシック;TLPゴシック;LXゴシック;HGPGothicB;IPA Pゴシック;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;ã•ã–ãªã¿ã‚´ã‚·ãƒƒã‚¯;MS ゴシック;MS P ゴシック;HG Gothic;HG Gothic B;Gothic;Andale Sans UI</value>
- </prop>
- <prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace">
- <value>Andale;Arial</value>
- </prop>
- <prop oor:name="CJK_SPREADSHEET" oor:type="xs:string" oor:op="replace">
-- <value>HG PゴシックB Sun;HG-PGothicB Sun;HG PゴシックB;HG-PGothicB;MS P ゴシック;TLPゴシック;LXゴシック;IPA Pゴシック;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;ã•ã–ãªã¿ã‚´ã‚·ãƒƒã‚¯;Andale Sans UI;Kochi Gothic;HG Gothic J;HG Gothic B;HG Gothic;Gothic</value>
-+ <value>HG PゴシックB Sun;HG-PGothicB Sun;HG PゴシックB;HG-PGothicB;MS P ゴシック;TLPゴシック;LXゴシック;HGPGothicB;IPA Pゴシック;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;ã•ã–ãªã¿ã‚´ã‚·ãƒƒã‚¯;Andale Sans UI;Kochi Gothic;HG Gothic J;HG Gothic B;HG Gothic;Gothic</value>
- </prop>
- <prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace">
-- <value>HG PゴシックB Sun;HG-PGothicB Sun;HG PゴシックB;HG-PGothicB;Andale Sans UI;MS P ゴシック;TLPゴシック;LXゴシック;IPA Pゴシック;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;MS Gothic;HG Gothic J;HG Gothic B;HG Gothic;Kochi Gothic;MS PGothic;Gothic</value>
-+ <value>HG PゴシックB Sun;HG-PGothicB Sun;HG PゴシックB;HG-PGothicB;Andale Sans UI;MS P ゴシック;TLPゴシック;LXゴシック;HGPGothicB;IPA Pゴシック;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;MS Gothic;HG Gothic J;HG Gothic B;HG Gothic;Kochi Gothic;MS PGothic;Gothic</value>
- </prop>
- <prop oor:name="UI_FIXED" oor:type="xs:string" oor:op="replace">
-- <value>HG ゴシックB Sun;HG-GothicB Sun;HG Mincho Light J;MS P ゴシック;TLPゴシック;LXゴシック;IPA Pゴシック;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;ã•ã–ãªã¿ã‚´ã‚·ãƒƒã‚¯;Kochi Gothic;Gothic</value>
-+ <value>HG ゴシックB Sun;HG-GothicB Sun;HG Mincho Light J;MS P ゴシック;TLPゴシック;LXゴシック;HGPGothicB;IPA Pゴシック;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;ã•ã–ãªã¿ã‚´ã‚·ãƒƒã‚¯;Kochi Gothic;Gothic</value>
- </prop>
- <prop oor:name="FIXED" oor:type="xs:string" oor:op="replace">
-- <value>HG ゴシックB Sun;HG-GothicB Sun;HG ゴシックB;HG Mincho Light J;MS P ゴシック;TLPゴシック;LXゴシック;IPA Pゴシック;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;ã•ã–ãªã¿ã‚´ã‚·ãƒƒã‚¯;Kochi Gothic;Gothic</value>
-+ <value>HG ゴシックB Sun;HG-GothicB Sun;HG ゴシックB;HG Mincho Light J;MS P ゴシック;TLPゴシック;LXゴシック;HGPGothicB;IPA Pゴシック;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;ã•ã–ãªã¿ã‚´ã‚·ãƒƒã‚¯;Kochi Gothic;Gothic</value>
- </prop>
- <prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace">
-- <value>HG PゴシックB Sun;HG-PGothicB Sun;HG PゴシックB;HG-PGothicB;HG-GothicB;Andale Sans UI;HG Mincho Light J;標準;TLPゴシック;LXゴシック;IPA Pゴシック;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;ã•ã–ãªã¿ã‚´ã‚·ãƒƒã‚¯;Kochi Gothic;Gothic;Gnu-Unifont</value>
-+ <value>HG PゴシックB Sun;HG-PGothicB Sun;HG PゴシックB;HG-PGothicB;HG-GothicB;Andale Sans UI;HG Mincho Light J;標準;TLPゴシック;LXゴシック;HGPGothicB;IPA Pゴシック;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;ã•ã–ãªã¿ã‚´ã‚·ãƒƒã‚¯;Kochi Gothic;Gothic;Gnu-Unifont</value>
- </prop>
- <prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace">
- <value>hgmincholightj;cumberland;couriernew;courier;lucidasanstypewriter;lucidatypewriter;monaco;monospaced</value>
-@@ -513,7 +513,7 @@
- <value>方正宋体;MSung Light SC;Cumberland;Courier New;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
- </prop>
- <prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace">
-- <value>Andale Sans UI;ZYSong18030;AR PL SungtiL GB;AR PL KaitiM GB;SimSun;Arial Unicode MS;Fangsong;Hei;Song;Kai;Ming;gnu-unifont;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Albany;Lucida;Helvetica;Charcoal;Chicago;Arial;Helmet;Interface System;Sans Serif</value>
-+ <value>方正宋体;Andale Sans UI;ZYSong18030;AR PL SungtiL GB;AR PL KaitiM GB;SimSun;Arial Unicode MS;Fangsong;Hei;Song;Kai;Ming;gnu-unifont;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Albany;Lucida;Helvetica;Charcoal;Chicago;Arial;Helmet;Interface System;Sans Serif</value>
- </prop>
- </node>
- <node oor:name="zh-tw" oor:op="replace">
-@@ -542,7 +542,7 @@
- <value>方正明體;MSung Light TC;Cumberland;Courier New;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
- </prop>
- <prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace">
-- <value>Andale Sans UI;AR PL Mingti2L Big5;AR PL KaitiM Big5;PMingLiU;MingLiU;Kai;Arial Unicode MS;Ming;gnu-unifont;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Albany;Lucida;Helvetica;Charcoal;Chicago;Arial;Helmet;Interface System;Sans Serif</value>
-+ <value>方正明體;Andale Sans UI;AR PL Mingti2L Big5;AR PL KaitiM Big5;PMingLiU;MingLiU;Kai;Arial Unicode MS;Ming;gnu-unifont;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Albany;Lucida;Helvetica;Charcoal;Chicago;Arial;Helmet;Interface System;Sans Serif</value>
- </prop>
- </node>
- <node oor:name="zh-hk" oor:op="replace">
-@@ -572,7 +572,7 @@
- <value>方正明體;MSung Light TC;Cumberland;Courier New;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
- </prop>
- <prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace">
-- <value>Andale Sans UI;AR PL Mingti2L Big5;AR PL KaitiM Big5;PMingLiU;MingLiU;Kai;Arial Unicode MS;Ming;gnu-unifont;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Albany;Lucida;Helvetica;Charcoal;Chicago;Arial;Helmet;Interface System;Sans Serif</value>
-+ <value>方正明體;Andale Sans UI;AR PL Mingti2L Big5;AR PL KaitiM Big5;PMingLiU;MingLiU;Kai;Arial Unicode MS;Ming;gnu-unifont;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Albany;Lucida;Helvetica;Charcoal;Chicago;Arial;Helmet;Interface System;Sans Serif</value>
- </prop>
- </node>
- <node oor:name="zh-sg" oor:op="replace">
-@@ -602,7 +602,7 @@
- <value>方正明體;MSung Light TC;Cumberland;Courier New;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value>
- </prop>
- <prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace">
-- <value>Andale Sans UI;AR PL Mingti2L Big5;AR PL KaitiM Big5;PMingLiU;MingLiU;Kai;Arial Unicode MS;Ming;gnu-unifont;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Albany;Lucida;Helvetica;Charcoal;Chicago;Arial;Helmet;Interface System;Sans Serif</value>
-+ <value>方正明體;Andale Sans UI;AR PL Mingti2L Big5;AR PL KaitiM Big5;PMingLiU;MingLiU;Kai;Arial Unicode MS;Ming;gnu-unifont;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Albany;Lucida;Helvetica;Charcoal;Chicago;Arial;Helmet;Interface System;Sans Serif</value>
- </prop>
- </node>
- <node oor:name="ko-kr" oor:op="replace">
diff --git a/patches/src680/novell-palette.diff b/patches/src680/novell-palette.diff
deleted file mode 100644
index 051882ed3..000000000
--- a/patches/src680/novell-palette.diff
+++ /dev/null
@@ -1,24 +0,0 @@
---- extras/source/palettes/standard.soc
-+++ extras/source/palettes/standard.soc
-@@ -88,8 +88,16 @@
- <draw:color draw:name="Dark violet" draw:color="#660066"/>
- <draw:color draw:name="Salmon" draw:color="#ff8080"/>
- <draw:color draw:name="Sea blue" draw:color="#0066cc"/>
-- <draw:color draw:name="Sun 1" draw:color="#333366"/>
-- <draw:color draw:name="Sun 2" draw:color="#666699"/>
-- <draw:color draw:name="Sun 3" draw:color="#9999cc"/>
-- <draw:color draw:name="Sun 4" draw:color="#ccccff"/>
-+ <draw:color draw:name="White" draw:color="#ffffff"/>
-+ <draw:color draw:name="White" draw:color="#ffffff"/>
-+ <draw:color draw:name="White" draw:color="#ffffff"/>
-+ <draw:color draw:name="Novell red" draw:color="#e00000"/>
-+ <draw:color draw:name="Novell orange" draw:color="#e67800"/>
-+ <draw:color draw:name="Novell green" draw:color="#629e1f"/>
-+ <draw:color draw:name="Novell blue" draw:color="#1c82b9"/>
-+ <draw:color draw:name="Novell light gray" draw:color="#cccccd"/>
-+ <draw:color draw:name="Novell medium gray" draw:color="#5a5a5f"/>
-+ <draw:color draw:name="Novell dark gray" draw:color="#3c3c41"/>
-+ <draw:color draw:name="Black" draw:color="#000000"/>
-+ <draw:color draw:name="White" draw:color="#ffffff"/>
- </office:color-table>
-\ No newline at end of file
diff --git a/patches/src680/novell-splash-m145.diff b/patches/src680/novell-splash-m145.diff
deleted file mode 100644
index 9e0d3dceb..000000000
--- a/patches/src680/novell-splash-m145.diff
+++ /dev/null
@@ -1,116 +0,0 @@
-Index: svx/prj/d.lst
-===================================================================
-RCS file: /cvs/graphics/svx/prj/d.lst,v
-retrieving revision 1.108
-diff -u -r1.108 d.lst
---- svx/prj/d.lst 9 Dec 2004 16:36:45 -0000 1.108
-+++ svx/prj/d.lst 16 Dec 2004 12:43:47 -0000
-@@ -55,7 +55,9 @@
- ..\res\cjkintro.bmp %COMMON_DEST%\pck%_EXT%\starsuite_bitmap\intro.bmp
- ..\res\ofaabout.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\about.bmp
- ..\res\soffice.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\intro.bmp
--..\res\ooointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro.bmp
-+..\res\openintro_suse.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro.bmp
-+..\res\openintro_nld.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro-nld.bmp
-+..\res\openabout_nld.bmp %COMMON_DEST%\pck%_EXT%\openoffice\about.bmp
- ..\res\ooonologointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\nologointro.bmp
-
- mkdir: %_DEST%\inc%_EXT%\svx
-
-Index: svx/source/intro/ooo.src
-===================================================================
-RCS file: /cvs/graphics/svx/source/intro/ooo.src,v
-retrieving revision 1.11
-diff -u -r1.11 ooo.src
---- svx/source/intro/ooo.src 7 Jan 2005 09:49:30 -0000 1.11
-+++ svx/source/intro/ooo.src 1 Feb 2005 16:48:49 -0000
-@@ -48,8 +48,8 @@
- #include "svxids.hrc"
- #include "intro.hrc"
-
--#ifdef BUILD_SPECIAL
--#define OOO_VENDOR "Sun Microsystems Inc."
-+#if 1
-+#define OOO_VENDOR "Novell, Inc."
- #else
- //#define OOO_VENDOR "my company"
- #endif
-@@ -56,7 +56,7 @@
-
- Bitmap RID_DEFAULT_ABOUT_BMP_LOGO
- {
-- File = "openabout.bmp" ;
-+ File = "openabout_suse.bmp" ;
- };
-
- String RID_APPTITLE
-
-
-This piece of the patch is not necessary for people doing stock
-re-branding, but it allows us to package our enterprise branding as
-2 separate images in an RPM.
-
-
-Index: desktop/source/splash/splash.cxx
-===================================================================
-RCS file: /cvs/framework/desktop/source/splash/splash.cxx,v
-retrieving revision 1.15
-diff -u -p -u -r1.15 splash.cxx
---- desktop/source/splash/splash.cxx
-+++ desktop/source/splash/splash.cxx
-@@ -334,6 +335,7 @@ void SplashScreen::initBitmap()
- {
- xub_StrLen nIndex = 0;
- String aBmpFileName( DEFINE_CONST_UNICODE("intro.bmp") );
-+ String aNLDBmpFileName( String( DEFINE_CONST_UNICODE("intro-nld.bmp") ) );
-
- bool haveBitmap = false;
-
-@@ -361,6 +363,22 @@ void SplashScreen::initBitmap()
- }
- }
-
-+ // Then, look for NLD branded bitmap
-+ if ( !haveBitmap )
-+ {
-+ INetURLObject aObj( _sExecutePath, INET_PROT_FILE );
-+ aObj.insertName( aNLDBmpFileName );
-+
-+ SvFileStream aStrm( aObj.PathToFileName(), STREAM_STD_READ );
-+ if ( !aStrm.GetError() )
-+ {
-+ // Default case, we load the intro bitmap from a seperate file
-+ // (e.g. staroffice_intro.bmp or starsuite_intro.bmp)
-+ aStrm >> _aIntroBmp;
-+ haveBitmap = true;
-+ }
-+ }
-+
- // Then, try to use bitmap located in the same directory as the executable.
- if ( !haveBitmap )
- {
-
-
---- scp2/source/ooo/file_ooo.scp
-+++ scp2/source/ooo/file_ooo.scp
-@@ -437,6 +437,20 @@
- Styles = (PACKED);
- End
-
-+File gid_File_Bmp_Intro_Nld
-+ TXT_FILE_BODY;
-+ Dir = gid_Dir_Program;
-+ Name = "intro-nld.bmp";
-+ Styles = (PACKED);
-+End
-+
-+File gid_File_Bmp_About_Nld
-+ TXT_FILE_BODY;
-+ Dir = gid_Dir_Program;
-+ Name = "about.bmp";
-+ Styles = (PACKED);
-+End
-+
- File gid_File_Dtd_Accelerator
- TXT_FILE_BODY;
- Styles = (PACKED);
diff --git a/patches/src680/novell-splash.diff b/patches/src680/novell-splash.diff
deleted file mode 100644
index c29fcc13e..000000000
--- a/patches/src680/novell-splash.diff
+++ /dev/null
@@ -1,116 +0,0 @@
-Index: svx/prj/d.lst
-===================================================================
-RCS file: /cvs/graphics/svx/prj/d.lst,v
-retrieving revision 1.108
-diff -u -r1.108 d.lst
---- svx/prj/d.lst 9 Dec 2004 16:36:45 -0000 1.108
-+++ svx/prj/d.lst 16 Dec 2004 12:43:47 -0000
-@@ -55,7 +55,9 @@
- ..\res\cjkintro.bmp %COMMON_DEST%\pck%_EXT%\starsuite_bitmap\intro.bmp
- ..\res\ofaabout.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\about.bmp
- ..\res\soffice.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\intro.bmp
--..\res\ooointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro.bmp
-+..\res\openintro_suse.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro.bmp
-+..\res\openintro_nld.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro-nld.bmp
-+..\res\openabout_nld.bmp %COMMON_DEST%\pck%_EXT%\openoffice\about.bmp
- ..\res\ooonologointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\nologointro.bmp
-
- mkdir: %_DEST%\inc%_EXT%\svx
-
---- svx/source/intro/makefile.mk 2005-12-20 15:28:19.000000000 +0100
-+++ svx/source/intro/makefile.mk 2005-12-20 15:28:35.000000000 +0100
-@@ -46,7 +46,7 @@ TARGET=intro
- RSCLOCINC!:=$(RSCLOCINC);$(PRJ)$/RES
-
- # setting the compiled by $user$ string in the About box
--OOO_VENDOR*="$(USER)$(USERNAME)"
-+OOO_VENDOR*="Novell, Inc."
- RSCDEFS+=-DOOO_VENDOR=$(OOO_VENDOR)
-
- # --- Allgemein -----------------------------------------------------------
-Index: svx/source/intro/ooo.src
-===================================================================
-RCS file: /cvs/graphics/svx/source/intro/ooo.src,v
-retrieving revision 1.11
-diff -u -r1.11 ooo.src
---- svx/source/intro/ooo.src 7 Jan 2005 09:49:30 -0000 1.11
-+++ svx/source/intro/ooo.src 1 Feb 2005 16:48:49 -0000
-@@ -50,7 +50,7 @@
-
- Bitmap RID_DEFAULT_ABOUT_BMP_LOGO
- {
-- File = "openabout.bmp" ;
-+ File = "openabout_suse.bmp" ;
- };
-
- String RID_APPTITLE
-
-
-This piece of the patch is not necessary for people doing stock
-re-branding, but it allows us to package our enterprise branding as
-2 separate images in an RPM.
-
-
-Index: desktop/source/splash/splash.cxx
-===================================================================
-RCS file: /cvs/framework/desktop/source/splash/splash.cxx,v
-retrieving revision 1.15
-diff -u -p -u -r1.15 splash.cxx
---- desktop/source/splash/splash.cxx
-+++ desktop/source/splash/splash.cxx
-@@ -334,6 +335,7 @@ void SplashScreen::initBitmap()
- {
- xub_StrLen nIndex = 0;
- String aBmpFileName( DEFINE_CONST_UNICODE("intro.bmp") );
-+ String aNLDBmpFileName( DEFINE_CONST_UNICODE("intro-nld.bmp") );
-
- bool haveBitmap = false;
-
-@@ -361,6 +363,22 @@ void SplashScreen::initBitmap()
- }
- }
-
-+ // Then, look for NLD branded bitmap
-+ if ( !haveBitmap )
-+ {
-+ INetURLObject aObj( _sExecutePath, INET_PROT_FILE );
-+ aObj.insertName( aNLDBmpFileName );
-+
-+ SvFileStream aStrm( aObj.PathToFileName(), STREAM_STD_READ );
-+ if ( !aStrm.GetError() )
-+ {
-+ // Default case, we load the intro bitmap from a seperate file
-+ // (e.g. staroffice_intro.bmp or starsuite_intro.bmp)
-+ aStrm >> _aIntroBmp;
-+ haveBitmap = true;
-+ }
-+ }
-+
- // Then, try to use bitmap located in the same directory as the executable.
- if ( !haveBitmap )
- {
-
-
---- scp2/source/ooo/file_ooo.scp
-+++ scp2/source/ooo/file_ooo.scp
-@@ -437,6 +437,20 @@
- Styles = (PACKED);
- End
-
-+File gid_File_Bmp_Intro_Nld
-+ TXT_FILE_BODY;
-+ Dir = gid_Dir_Program;
-+ Name = "intro-nld.bmp";
-+ Styles = (PACKED);
-+End
-+
-+File gid_File_Bmp_About_Nld
-+ TXT_FILE_BODY;
-+ Dir = gid_Dir_Program;
-+ Name = "about.bmp";
-+ Styles = (PACKED);
-+End
-+
- File gid_File_Dtd_Accelerator
- TXT_FILE_BODY;
- Styles = (PACKED);
diff --git a/patches/src680/novell-team.diff b/patches/src680/novell-team.diff
deleted file mode 100644
index ac0d0cad8..000000000
--- a/patches/src680/novell-team.diff
+++ /dev/null
@@ -1,87 +0,0 @@
-Index: sw/source/ui/dochdl/dochdl.src
-===================================================================
-RCS file: /cvs/sw/sw/source/ui/dochdl/dochdl.src,v
-retrieving revision 1.42
-diff -u -r1.42 dochdl.src
---- sw/source/ui/dochdl/dochdl.src 26 Jun 2004 03:25:18 -0000 1.42
-+++ sw/source/ui/dochdl/dochdl.src 4 Jan 2005 06:23:49 -0000
-@@ -149,3 +149,13 @@
- TEXT = "Back row: Aidan Butler, Peter Burow, Caolán McNamara, Michael Brauer, Martin Maher, Gunnar Timm\nFront row: Thomas Lange, Oliver-Rainer Düsterhöft, Henning Brinkmann, Andreas Martens, Oliver Specht, Frank Meies, Daniel Vogelheim";
- };
-
-+Bitmap BMP_NOVELL_TEAM_MUGSHOT
-+{
-+ File ="novell-team.bmp";
-+};
-+
-+String STR_NOVELL_TEAM_NAMES
-+{
-+ TEXT = "Back row: Martin, Nagashree, Tuomas, Nicel, Srini, Raul, Petr, Abdul, Michael, Federico\nFront row: Shilpa, Parag, Jakub, Shreyas, Jayant, Jan.";
-+};
-+
-Index: sw/source/ui/dochdl/gloshdl.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/ui/dochdl/gloshdl.cxx,v
-retrieving revision 1.19
-diff -u -r1.19 gloshdl.cxx
---- sw/source/ui/dochdl/gloshdl.cxx 4 Oct 2004 19:26:10 -0000 1.19
-+++ sw/source/ui/dochdl/gloshdl.cxx 4 Jan 2005 06:25:50 -0000
-@@ -738,6 +738,40 @@
- pWrtShell->EndAllAction();
- pWrtShell->EndUndo( UNDO_INSGLOSSARY );
- }
-+ else if ( aShortName.EqualsAscii ( "NovellTeam", 0, 14 ) )
-+ {
-+ String sGraphicName ( RTL_CONSTASCII_USTRINGPARAM ( "Novell Team photo" ) );
-+ String sTeamCredits ( RTL_CONSTASCII_USTRINGPARAM ( "Novell team credits" ) );
-+ pWrtShell->StartUndo ( UNDO_INSGLOSSARY );
-+ pWrtShell->StartAllAction();
-+ if(pWrtShell->HasSelection())
-+ pWrtShell->DelLeft();
-+ Bitmap aBitmap ( SW_RES ( BMP_NOVELL_TEAM_MUGSHOT ) );
-+ pWrtShell->Insert ( aEmptyStr, aEmptyStr, aBitmap);
-+ pWrtShell->SetFlyName ( sGraphicName );
-+ SwTxtFmtColl* pColl = pWrtShell->GetTxtCollFromPool ( RES_POOLCOLL_LABEL_ABB );
-+ SwFieldType* pType = pWrtShell->GetDoc()->GetFldType( RES_SETEXPFLD, pColl->GetName() );
-+ sal_uInt16 nId = pWrtShell->GetDoc()->GetFldTypes()->GetPos( pType );
-+ pWrtShell->InsertLabel( LTYPE_OBJECT, aEmptyStr, aEmptyStr, FALSE, nId, aEmptyStr );
-+ pWrtShell->SwFEShell::SetFlyName( sTeamCredits );
-+ pWrtShell->SwFEShell::SelectObj ( Point ( ULONG_MAX, ULONG_MAX ) );
-+ pWrtShell->EnterStdMode();
-+ pWrtShell->EndPara ( TRUE );
-+ String aTmp ( SW_RES ( STR_NOVELL_TEAM_NAMES ) );
-+ pWrtShell->Insert ( aTmp );
-+ SvxAdjustItem aAdjustItem( SVX_ADJUST_CENTER, RES_PARATR_ADJUST );
-+ pWrtShell->SetAttr( aAdjustItem );
-+ pWrtShell->SttPara ();
-+ pWrtShell->SplitNode();
-+ pWrtShell->Left(CRSR_SKIP_CHARS, FALSE, 1, FALSE );
-+ SvxWeightItem aWeightItem ( WEIGHT_BOLD );
-+ pWrtShell->Insert ( String ( RTL_CONSTASCII_USTRINGPARAM ( "The Novell OOo team!" ) ) );
-+ pWrtShell->SttPara ( TRUE );
-+ pWrtShell->SetAttr( aWeightItem);
-+ pWrtShell->GotoFly ( sTeamCredits);
-+ pWrtShell->EndAllAction();
-+ pWrtShell->EndUndo( UNDO_INSGLOSSARY );
-+ }
- else
- {
- String aTmp( SW_RES(STR_NOGLOS1));
-Index: sw/inc/dochdl.hrc
-===================================================================
-RCS file: /cvs/sw/sw/inc/dochdl.hrc,v
-retrieving revision 1.2
-diff -u -r1.2 dochdl.hrc
---- sw/inc/dochdl.hrc 10 May 2004 16:14:19 -0000 1.2
-+++ sw/inc/dochdl.hrc 4 Jan 2005 06:27:14 -0000
-@@ -81,6 +81,10 @@
- #define BMP_SW_TEAM_MUGSHOT (RC_DOCHDL_BEGIN + 12)
- #define STR_SW_TEAM_NAMES (RC_DOCHDL_BEGIN + 13)
-
-+#define BMP_NOVELL_TEAM_MUGSHOT (RC_DOCHDL_BEGIN + 20)
-+#define STR_NOVELL_TEAM_NAMES (RC_DOCHDL_BEGIN + 21)
-+
-+
- #define DOCHDL_ACT_END STR_CANT_EDIT_INFO
-
- #if DOCHDL_ACT_END > RC_DOCHDL_END
diff --git a/patches/src680/novell-win32-agfa-monotype-fonts.diff b/patches/src680/novell-win32-agfa-monotype-fonts.diff
deleted file mode 100644
index b592c97f3..000000000
--- a/patches/src680/novell-win32-agfa-monotype-fonts.diff
+++ /dev/null
@@ -1,177 +0,0 @@
---- config_office/configure.in.OLD 2005-11-21 02:16:33.437250000 +0200
-+++ config_office/configure.in 2005-11-23 05:12:58.296875000 +0200
-@@ -52,6 +52,11 @@
- for specific distributions where the fonts are known
- to be already available
- ],,)
-+AC_ARG_WITH(agfa-monotype-fonts,
-+[ --without-agfa-monotype-fonts Remove proprietary Agfa Monotype fonts
-+ (even if present) in the openoffice.org installation
-+ set.
-+],,with_agfa_monotype_fonts="yes")
- AC_ARG_ENABLE(epm,
- [ --disable-epm OO.o includes self-packaging code, that requires
- epm, however epm is useless for large scale
-@@ -4094,6 +4099,18 @@
- fi
- AC_SUBST(WITH_FONTS)
-
-+AC_MSG_CHECKING([whether to include Agfa Monotype fonts])
-+if test "$with_agfa_monotype_fonts" != "no" -a -e ../agfa_monotype_fonts/download/agfa-monotype-fonts.tar.gz; then
-+ AC_MSG_RESULT([yes])
-+ WITH_AGFA_MONOTYPE_FONTS=YES
-+ SCPDEFS="$SCPDEFS -DWITH_AGFA_MONOTYPE_FONTS"
-+ BUILD_TYPE="$BUILD_TYPE AGFA_MONOTYPE_FONTS"
-+else
-+ AC_MSG_RESULT([no])
-+ WITH_AGFA_MONOTYPE_FONTS=NO
-+fi
-+AC_SUBST(WITH_AGFA_MONOTYPE_FONTS)
-+
- AC_SUBST(SCPDEFS)
-
- AC_MSG_CHECKING([whether and how to use Xinerama])
---- config_office/makefile.rc.OLD 2005-09-16 18:20:13.000000000 +0300
-+++ config_office/makefile.rc 2005-11-22 18:13:07.312500000 +0200
-@@ -75,6 +75,7 @@
- berkeleydb \
- binfilter \
- bitstream_vera_fonts \
-+ agfa_monotype_fonts \
- boost \
- bridges \
- canvas \
---- agfa_monotype_fonts/makefile.mk.OLD 1970-01-01 02:00:00.000000000 +0200
-+++ agfa_monotype_fonts/makefile.mk 2005-11-23 05:07:41.015625000 +0200
-@@ -0,0 +1,78 @@
-+#*************************************************************************
-+#
-+# OpenOffice.org - a multi-platform office productivity suite
-+#
-+# $RCSfile$
-+#
-+# $Revision$
-+#
-+# last change: $Author$ $Date$
-+#
-+# The Contents of this file are made available subject to
-+# the terms of GNU Lesser General Public License Version 2.1.
-+#
-+#
-+# GNU Lesser General Public License Version 2.1
-+# =============================================
-+# Copyright 2005 by Sun Microsystems, Inc.
-+# 901 San Antonio Road, Palo Alto, CA 94303, USA
-+#
-+# This library is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU Lesser General Public
-+# License version 2.1, as published by the Free Software Foundation.
-+#
-+# This library 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 for more details.
-+#
-+# You should have received a copy of the GNU Lesser General Public
-+# License along with this library; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+# MA 02111-1307 USA
-+#
-+#*************************************************************************
-+
-+PRJ=.
-+
-+PRJNAME=agfa_monotype_fonts
-+TARGET=agfa_monotype_fonts
-+
-+# --- Settings -----------------------------------------------------
-+
-+.INCLUDE : settings.mk
-+
-+# --- Files --------------------------------------------------------
-+
-+TARFILE_NAME=agfa-monotype-fonts
-+TARFILE_ROOTDIR=agfa-monotype-fonts
-+
-+PATCH_FILE_NAME=
-+
-+
-+CONFIGURE_DIR=
-+CONFIGURE_ACTION=
-+
-+BUILD_DIR=
-+BUILD_ACTION=
-+BUILD_FLAGS=
-+
-+# --- Targets ------------------------------------------------------
-+
-+all: \
-+ $(MISC)$/remove_build.flag \
-+ ALLTAR
-+
-+.INCLUDE : set_ext.mk
-+.INCLUDE : target.mk
-+
-+.IF "$(WITH_AGFA_MONOTYPE_FONTS)"!="NO"
-+.INCLUDE : tg_ext.mk
-+.ENDIF
-+
-+# Since you never know what will be in a patch (for example, it may already
-+# patch at configure level), we remove the entire package directory if a patch
-+# is newer.
-+$(MISC)$/remove_build.flag : $(PATCH_FILE_NAME)
-+ $(REMOVE_PACKAGE_COMMAND)
-+ +$(TOUCH) $(MISC)$/remove_build.flag
---- agfa_monotype_fonts/prj/d.lst.OLD 1970-01-01 02:00:00.000000000 +0200
-+++ agfa_monotype_fonts/prj/d.lst 2005-11-23 04:52:41.531250000 +0200
-@@ -0,0 +1,2 @@
-+mkdir: %_DEST%\pck%_EXT%
-+..\%__SRC%\misc\build\agfa-monotype-fonts\*.ttf %_DEST%\pck%_EXT%\*.ttf
---- agfa_monotype_fonts/prj/build.lst.OLD 1970-01-01 02:00:00.000000000 +0200
-+++ agfa_monotype_fonts/prj/build.lst 2005-11-22 12:05:42.843750000 +0200
-@@ -0,0 +1,3 @@
-+bs agfa_monotype_fonts : solenv NULL
-+bs agfa_monotype_fonts usr1 - all amt_mkout NULL
-+bs agfa_monotype_fonts nmake - all amt_fonts NULL
---- scp2/source/ooo/file_font_ooo.scp.OLD 2005-09-09 04:37:10.000000000 +0300
-+++ scp2/source/ooo/file_font_ooo.scp 2005-11-23 05:08:35.375000000 +0200
-@@ -151,3 +151,31 @@
- STD_FONTWIN_FILE( gid_File_Fnt_Verasebd, VeraSeBd.ttf, Vera Serif Bold)
- #endif
- #endif
-+
-+#ifdef WNT
-+#ifdef WITH_AGFA_MONOTYPE_FONTS
-+STD_FONTWIN_FILE( gid_File_Fnt_albw, albw.ttf, AlbanyAMT)
-+STD_FONTWIN_FILE( gid_File_Fnt_albwb, albwb.ttf, AlbanyAMT Bold)
-+STD_FONTWIN_FILE( gid_File_Fnt_albwbi, albwbi.ttf, AlbanyAMT Bold Italic)
-+STD_FONTWIN_FILE( gid_File_Fnt_albwi, albwi.ttf, AlbanyAMT Italic)
-+STD_FONTWIN_FILE( gid_File_Fnt_andybol, andybol_.ttf, AndyMT Bold)
-+STD_FONTWIN_FILE( gid_File_Fnt_andyreg, andyreg_.ttf, AndyMT)
-+STD_FONTWIN_FILE( gid_File_Fnt_ans, ans_____.ttf, Andale Sans)
-+STD_FONTWIN_FILE( gid_File_Fnt_ansb, ansb____.ttf, Andale Sans Bold)
-+STD_FONTWIN_FILE( gid_File_Fnt_ansbi, ansbi___.ttf, Andale Sans Bold Italic)
-+STD_FONTWIN_FILE( gid_File_Fnt_ansi, ansi____.ttf, Andale Sans Italic)
-+STD_FONTWIN_FILE( gid_File_Fnt_bl, bl______.ttf, BellMT)
-+STD_FONTWIN_FILE( gid_File_Fnt_blb, blb_____.ttf, BellMT Bold)
-+STD_FONTWIN_FILE( gid_File_Fnt_blbi, blbi____.ttf, BellMT Bold Italic)
-+STD_FONTWIN_FILE( gid_File_Fnt_bli, bli_____.ttf, BellMT Italic)
-+STD_FONTWIN_FILE( gid_File_Fnt_cumbwb, cumbwb__.ttf, CumberlandAMT Bold)
-+STD_FONTWIN_FILE( gid_File_Fnt_cumbwbi, cumbwbi_.ttf, CumberlandAMT Bold Italic)
-+STD_FONTWIN_FILE( gid_File_Fnt_cumbwi, cumbwi__.ttf, CumberlandAMT Italic)
-+STD_FONTWIN_FILE( gid_File_Fnt_cumbwr, cumbwr__.ttf, CumberlandAMT)
-+STD_FONTWIN_FILE( gid_File_Fnt_mtsorts, mtsorts_.ttf, Monotype Sorts)
-+STD_FONTWIN_FILE( gid_File_Fnt_thowb, thowb___.ttf, ThorndaleAMT Bold)
-+STD_FONTWIN_FILE( gid_File_Fnt_thowbi, thowbi__.ttf, ThorndaleAMT Bold Italic)
-+STD_FONTWIN_FILE( gid_File_Fnt_thowi, thowi___.ttf, ThorndaleAMT Italic)
-+STD_FONTWIN_FILE( gid_File_Fnt_thowr, thowr___.ttf, ThorndaleAMT)
-+#endif
-+#endif
---- postprocess/prj/build.lst 2005-11-23 05:56:34.703125000 +0200
-+++ postprocess/prj/build.lst 2005-11-23 05:56:48.812500000 +0200
-@@ -1,4 +1,4 @@
--po postprocess :: accessibility automation basctl bean BINFILTER:binfilter chart2 configmgr CRASHREP:crashrep dbaccess desktop dtrans embeddedobj embedserv EPM:epm eventattacher extensions extras fileaccess filter forms fpicker helpcontent2 hwpfilter io lingucomponent MATHMLDTD:MathMLDTD MSFONTEXTRACT:msfontextract ODK:odk officecfg package padmin psprint_config remotebridges sc scaddins scp2 scripting sd sdk_oo setup_native slideshow starmath sw sysui testshl testshl2 testtools ucb UnoControls unoxml ure wizards xmerge xmlsecurity BITSTREAM_VERA_FONTS:bitstream_vera_fonts DICTIONARIES:dictionaries OOo:pyuno OOo:readlicense_oo SO:top unodevtools NULL
-+po postprocess :: accessibility automation basctl bean BINFILTER:binfilter chart2 configmgr CRASHREP:crashrep dbaccess desktop dtrans embeddedobj embedserv EPM:epm eventattacher extensions extras fileaccess filter forms fpicker helpcontent2 hwpfilter io lingucomponent MATHMLDTD:MathMLDTD MSFONTEXTRACT:msfontextract ODK:odk officecfg package padmin psprint_config remotebridges sc scaddins scp2 scripting sd sdk_oo setup_native slideshow starmath sw sysui testshl testshl2 testtools ucb UnoControls unoxml ure wizards xmerge xmlsecurity BITSTREAM_VERA_FONTS:bitstream_vera_fonts AGFA_MONOTYPE_FONTS:agfa_monotype_fonts DICTIONARIES:dictionaries OOo:pyuno OOo:readlicense_oo SO:top unodevtools NULL
- po postprocess usr1 - all po_mkout NULL
- po postprocess\checkxml nmake - all po_checkxml NULL
- po postprocess\packconfig nmake - all po_packconfig po_checkxml NULL
diff --git a/patches/src680/nsplugin-MOZILLA_FIVE_HOME.diff b/patches/src680/nsplugin-MOZILLA_FIVE_HOME.diff
deleted file mode 100644
index 7311534c5..000000000
--- a/patches/src680/nsplugin-MOZILLA_FIVE_HOME.diff
+++ /dev/null
@@ -1,26 +0,0 @@
-Index: source/nsplugin/source/so_env.cxx
-===================================================================
-RCS file: /cvs/util/extensions/source/nsplugin/source/so_env.cxx,v
-retrieving revision 1.4
-diff -u -u -r1.4 so_env.cxx
---- extensions/source/nsplugin/source/so_env.cxx 31 May 2005 17:09:26 -0000 1.4
-+++ extensions/source/nsplugin/source/so_env.cxx 26 Jun 2005 11:11:08 -0000
-@@ -159,6 +159,18 @@
- // Filename of lnk file, eg. "soffice"
- char lnkFileName[NPP_PATH_MAX] = {0};
- char* pTempZero = NULL;
-+
-+ /* try a mozilla available in $MOZILLA_FIVE_HOME first */
-+ if (getenv("MOZILLA_FIVE_HOME")) {
-+ sprintf(lnkFileName, "%s/plugins/libnpsoplugin%s", getenv("MOZILLA_FIVE_HOME"), SAL_DLLEXTENSION);
-+ if ((0 > readlink(lnkFileName, realFileName, NPP_PATH_MAX)) ||
-+ (NULL == (pTempZero = strstr(realFileName, "/program/libnpsoplugin.so"))))
-+ {
-+ *realFileName = 0;
-+ return -1;
-+ }
-+ }
-+ /* .. now in $HOME */
- sprintf(lnkFileName, "%s/.mozilla/plugins/libnpsoplugin%s", getenv("HOME"), SAL_DLLEXTENSION);
- if ((0 > readlink(lnkFileName, realFileName, NPP_PATH_MAX)) ||
- (NULL == (pTempZero = strstr(realFileName, "/program/libnpsoplugin" SAL_DLLEXTENSION))))
diff --git a/patches/src680/nsplugin-path.diff b/patches/src680/nsplugin-path.diff
deleted file mode 100644
index bb55cb165..000000000
--- a/patches/src680/nsplugin-path.diff
+++ /dev/null
@@ -1,110 +0,0 @@
-Index: extensions/source/nsplugin/source/so_env.cxx
-===================================================================
-RCS file: /cvs/util/extensions/source/nsplugin/source/so_env.cxx,v
-retrieving revision 1.6
-diff -u -p -u -r1.6 so_env.cxx
---- extensions/source/nsplugin/source/so_env.cxx 8 Sep 2005 19:40:59 -0000 1.6
-+++ extensions/source/nsplugin/source/so_env.cxx 20 Oct 2005 12:32:16 -0000
-@@ -36,6 +36,7 @@
- #ifdef UNIX
- #include <sys/types.h>
- #include <strings.h>
-+#include <dlfcn.h>
- #if defined(SOLARIS) && !defined(__GNUC__)
- #include <varargs.h>
- #else
-@@ -122,6 +123,80 @@ restoreUTF8(char *pPath)
- return 0;
- }
-
-+#ifdef UNIX
-+extern int nspluginOOoModuleHook (void** aResult);
-+int nspluginOOoModuleHook (void** aResult)
-+{
-+ void *dl_handle;
-+ void *thisp;
-+
-+ dl_handle = dlopen(NULL, RTLD_NOW);
-+ if (!dl_handle)
-+ {
-+ fprintf (stderr, "Can't open myself '%s'\n", dlerror());
-+ return 1;
-+ }
-+
-+ Dl_info dl_info = { 0, };
-+ if(!dladdr((const void *)nspluginOOoModuleHook, &dl_info))
-+ {
-+ fprintf (stderr, "Can't find my own address '%s'\n", dlerror());
-+ return 1;
-+ }
-+
-+ if (!dl_info.dli_fname)
-+ {
-+ fprintf (stderr, "Can't find my own file name\n");
-+ return 1;
-+ }
-+
-+ char cwdstr[NPP_PATH_MAX];
-+ if (!getcwd (cwdstr, sizeof(cwdstr)))
-+ {
-+ fprintf (stderr, "Can't get cwd\n");
-+ return 1;
-+ }
-+
-+ char libFileName[NPP_PATH_MAX];
-+
-+ if (dl_info.dli_fname[0] != '/')
-+ {
-+ strcpy (libFileName, cwdstr);
-+ strcat (libFileName, "/");
-+ }
-+ strcat (libFileName, dl_info.dli_fname);
-+
-+ char *clobber;
-+ static char realFileName[NPP_PATH_MAX] = {0};
-+# define SEARCH_SUFFIX "/program/libnpsoplug"
-+
-+ if (!(clobber = strstr (libFileName, SEARCH_SUFFIX)))
-+ {
-+ if (readlink(libFileName, realFileName, NPP_PATH_MAX) != 0)
-+ {
-+ fprintf (stderr, "Couldn't read link '%s'\n", libFileName);
-+ return 1;
-+ }
-+ if (!(clobber = strstr (realFileName, "/program/libnpsoplug")))
-+ {
-+ fprintf (stderr, "Couldn't find suffix in '%s'\n", realFileName);
-+ return 1;
-+ }
-+ *clobber = '\0';
-+ }
-+ else
-+ {
-+ *clobber = '\0';
-+ strcpy (realFileName, libFileName);
-+ }
-+ *aResult = realFileName;
-+
-+ fprintf (stderr, "OpenOffice path is '%s'\n", realFileName);
-+
-+ return 0;
-+}
-+#endif
-+
- // *aResult points the static string holding "/opt/staroffice8"
- int findReadSversion(void** aResult, int bWnt, const char* tag, const char* entry)
- {
-@@ -134,6 +209,12 @@ int findReadSversion(void** aResult, int
- // Filename of lnk file, eg. "soffice"
- char lnkFileName[NPP_PATH_MAX] = {0};
- char* pTempZero = NULL;
-+
-+ /* try to fetch a 'self' pointer */
-+ if (!nspluginOOoModuleHook (aResult))
-+ return 0;
-+
-+ /* .. now in $HOME */
- sprintf(lnkFileName, "%s/.mozilla/plugins/libnpsoplugin%s", getenv("HOME"), SAL_DLLEXTENSION);
- if ((0 > readlink(lnkFileName, realFileName, NPP_PATH_MAX)) ||
- (NULL == (pTempZero = strstr(realFileName, "/program/libnpsoplugin" SAL_DLLEXTENSION))))
-
diff --git a/patches/src680/odk-java-wizpanel.diff b/patches/src680/odk-java-wizpanel.diff
deleted file mode 100644
index 66285bdaf..000000000
--- a/patches/src680/odk-java-wizpanel.diff
+++ /dev/null
@@ -1,33 +0,0 @@
---- odk/source/OOSupport/org/netbeans/modules/openoffice/wizard/OOIDLWizardIterator.java.javafix 2003-11-18 11:03:25.000000000 -0500
-+++ odk/source/OOSupport/org/netbeans/modules/openoffice/wizard/OOIDLWizardIterator.java 2003-11-18 11:03:59.000000000 -0500
-@@ -207,7 +207,7 @@
- index--;
- }
-
-- public org.openide.WizardDescriptor$Panel current()
-+ public org.openide.WizardDescriptor.Panel current()
- {
- return panels[index];
- }
---- odk/source/OOSupport/org/netbeans/modules/openoffice/wizard/OOServiceCreateIterator.java.javafix 2003-11-18 11:04:51.000000000 -0500
-+++ odk/source/OOSupport/org/netbeans/modules/openoffice/wizard/OOServiceCreateIterator.java 2003-11-18 11:05:28.000000000 -0500
-@@ -214,7 +214,7 @@
- index--;
- }
-
-- public org.openide.WizardDescriptor$Panel current() {
-+ public org.openide.WizardDescriptor.Panel current() {
- return panels[index];
- }
-
---- odk/source/OOSupport/org/netbeans/modules/openoffice/wizard/OOAddInCreateIterator.java.javafix 2003-11-18 11:06:09.000000000 -0500
-+++ odk/source/OOSupport/org/netbeans/modules/openoffice/wizard/OOAddInCreateIterator.java 2003-11-18 11:06:26.000000000 -0500
-@@ -200,7 +200,7 @@
- index--;
- }
-
-- public org.openide.WizardDescriptor$Panel current() {
-+ public org.openide.WizardDescriptor.Panel current() {
- return panels[index];
- }
-
diff --git a/patches/src680/odk-remove-non-free.diff b/patches/src680/odk-remove-non-free.diff
deleted file mode 100644
index 159afe93d..000000000
--- a/patches/src680/odk-remove-non-free.diff
+++ /dev/null
@@ -1,56 +0,0 @@
-Index: odk/pack/copying/makefile.mk
-===================================================================
-RCS file: /cvs/api/odk/pack/copying/makefile.mk,v
-retrieving revision 1.72
-diff -u -u -r1.72 makefile.mk
---- odk/pack/copying/makefile.mk 29 Mar 2005 12:18:55 -0000 1.72
-+++ odk/pack/copying/makefile.mk 17 May 2005 17:24:11 -0000
-@@ -293,7 +293,6 @@
- $(DESTIDLLIST) \
- $(DESTINCLUDELIST) \
- $(DESTCLASSESLIST) \
-- $(DESTDIRJAR)$/win$/unowinreg.dll \
-- $(DESTDIRDOCU)$/common$/spec$/xml_format$/xml_specification.pdf
-+ $(DESTDIRJAR)$/win$/unowinreg.dll
-
- DIR_DIRECTORY_LIST=$(uniq $(DIR_FILE_LIST:d))
-Index: odk/util/check.pl
-===================================================================
-RCS file: /cvs/api/odk/util/check.pl,v
-retrieving revision 1.16
-diff -u -u -r1.16 check.pl
---- odk/util/check.pl 29 Mar 2005 12:19:55 -0000 1.16
-+++ odk/util/check.pl 17 May 2005 17:25:46 -0000
-@@ -153,14 +153,6 @@
- }
- print "\n";
-
-- # check file format specification
-- print "check xml format specifiaction: ";
-- if (! -e "$StartDir/docs/common/spec/xml_format/xml_specification.pdf") {
-- print "\nERROR: \"$StartDir/docs/common/spec/xml_format/xml_specification.pdf\" is missing\n";
-- $return++;
-- }
-- print "\n";
--
- #check configure files
- print "check config files: ";
- if ($OperatingSystem eq "windows") {
-Index: odk/util/odk_rules.pmk
-===================================================================
-RCS file: /cvs/api/odk/util/odk_rules.pmk,v
-retrieving revision 1.13
-diff -u -u -r1.13 odk_rules.pmk
---- odk/util/odk_rules.pmk 7 Mar 2005 17:31:28 -0000 1.13
-+++ odk/util/odk_rules.pmk 17 May 2005 17:27:05 -0000
-@@ -315,10 +315,6 @@
- $(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $< $(MY_TEXTCOPY_TARGETPRE) $@
- .ENDIF
-
--$(DESTDIRCOMMONDOCU)$/spec$/xml_format$/xml_specification.pdf : xml_specification.pdf
-- +-rm -f $@ >& $(NULLDEV)
-- $(GNUCOPY) xml_specification.pdf $@
--
- $(DESTDIRXML)$/module-description.dtd : $(XMLOUT)$/module-description.dtd
- +-rm -f $@ >& $(NULLDEV)
- $(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $(XMLOUT)$/module-description.dtd $(MY_TEXTCOPY_TARGETPRE) $@
diff --git a/patches/src680/ooo-save-msoffice-thumbnails.diff b/patches/src680/ooo-save-msoffice-thumbnails.diff
deleted file mode 100644
index 0c7c1cccb..000000000
--- a/patches/src680/ooo-save-msoffice-thumbnails.diff
+++ /dev/null
@@ -1,381 +0,0 @@
-2005-11-01 Federico Mena Quintero <federico@ximian.com>
-
- Add support for the VT_CF property to the serializer:
-
- * build-hack/ooo680-m2/sfx2/source/doc/docinf.cxx (VT_CF): New
- constant for VT_CF = 71.
- (PID_THUMBNAIL): New property id (0x11).
- (class SfxPSThumbnailProperty_Impl): New class, derived from
- SfxPSProperty_Impl. We use this to hold a VT_CF thumbnail.
- (SfxPSThumbnailPropertySfxThumbnailProperty_Impl): Implement. We
- take in a metafile, convert it to BMP, serialize the BMP, and keep
- the serialization around for when we are asked to ::Save() it in a
- stream.
- (SfxPSThumbnailProperty_Impl::~SfxPSThumbnailProperty_Impl):
- Implement; free our serialized data.
- (SfxPSThumbnailProperty_Impl::Save): Implement; serialize the
- headers and the precomputed bitmap data.
- (SfxPSThumbnailProperty_Impl::Len): Implement; just return the
- size of the precomputed data.
- (SfxPSThumbnailProperty_Impl::IsValid): Implement; return whether
- we were able to render the data to a bitmap and serialize it.
- (SfxDocumentInfo::SavePropertySet): Create a thumbnail property.
- If we are successful, add the property to the property set.
-
- Add a thumbnail metafile property to SfxDoccumentInfo:
-
- * build/ooo680-m2/sfx2/source/doc/graphhelp.hxx (class
- GraphicHelper): Make createThumb_Impl public. I don't like this
- at all, but there's doesn't seem to be a "turn this metafile into
- a Bitmap" function that I can use.
-
- * build-hack/ooo680-m2/sfx2/inc/docinf.hxx (class
- SfxDocumentInfo): Added an aThumbnailMetaFile private field. Added
- GetThumbnailMetaFile() and SetThumbnailMetaFile() public methods.
-
- * build-hack/ooo680-m2/sfx2/source/doc/docinf.cxx
- (SfxDocumentInfo::SetThumbnailMetaFile): Implement.
-
- * build/ooo680-m2/sw/inc/doc.hxx (class SwDoc): Make the GetInfo()
- method non-const.
-
- * build/ooo680-m2/sw/source/core/doc/docnew.cxx (SwDoc::GetInfo):
- Make this non-const.
-
- Generate the thumbnails:
-
- * build-hack/ooo680-m2/sw/source/filter/ww8/wrtww8.cxx
- (SwWW8Writer::PrepareStorage): Generate the thumbnail metafile,
- and put it in the SfxDocumentInfo before serializing the info.
- Also, our info is now non-const.
-
- * build/ooo680-m2/sc/source/filter/excel/expop2.cxx
- (ExportBiff5::Write): Generate the thumbnail metafile, and put it
- in the SfxDocumentInfo before serializing the info.
-
---- sfx2/inc/docinf.hxx 2005-09-07 11:50:53.000000000 -0500
-+++ sfx2/inc/docinf.hxx 2005-10-27 14:00:59.000000000 -0500
-@@ -69,6 +69,10 @@ class SvStream;
- #include <tools/timestamp.hxx>
- #endif
-
-+#ifndef _SV_GDIMTF_HXX
-+#include <vcl/gdimtf.hxx>
-+#endif
-+
- // SfxStamp changed to "tools/TimeStamp" !!!
- typedef TimeStamp SfxStamp ;
-
-@@ -136,6 +140,8 @@ private:
- String aComment;
- String aKeywords;
-
-+ GDIMetaFile aThumbnailMetaFile;
-+
- SfxDocUserKey aUserKeys[MAXDOCUSERKEYS];
-
- String aTemplateName; // Name der Dokumentvorlage
-@@ -219,11 +225,15 @@ public:
- const String& GetComment() const { return aComment; }
- const String& GetKeywords()const { return aKeywords; }
-
-+ const GDIMetaFile &GetThumbnailMetaFile() const { return aThumbnailMetaFile; }
-+
- void SetTitle( const String& rVal );
- void SetTheme( const String& rVal );
- void SetComment( const String& rVal );
- void SetKeywords( const String& rVal );
-
-+ void SetThumbnailMetaFile (const GDIMetaFile &aMetaFile);
-+
- void SetChanged( const String& rChanger ) { SetChanged( SfxStamp( rChanger ) ); }
- void SetCreated( const String& rCreator ) { SetCreated( SfxStamp( rCreator ) ); }
-
---- sfx2/source/doc/docinf.cxx 2005-09-07 13:39:29.000000000 -0500
-+++ sfx2/source/doc/docinf.cxx 2005-10-27 14:01:34.000000000 -0500
-@@ -40,11 +40,13 @@
- #include <svtools/sfxecode.hxx>
- #endif
- #include <tools/urlobj.hxx>
-+#include <tools/new.hxx>
- #include <svtools/saveopt.hxx>
- #include <tools/tenccvt.hxx>
- #include <svtools/useroptions.hxx>
- #include <sot/exchange.hxx>
- #include <sot/storage.hxx>
-+#include <vcl/bitmapex.hxx>
- #include "rtl/tencinfo.h"
-
- #include "docfilt.hxx"
-@@ -54,6 +56,7 @@
- #include "docinf.hxx"
- #include "docfile.hxx"
- #include "sfxtypes.hxx"
-+#include "graphhelp.hxx"
-
- //========================================================================
-
-@@ -68,6 +71,7 @@ static const char __FAR_DATA pDocInfoHea
- #define VT_LPSTR 30
- #define VT_LPWSTR 31
- #define VT_FILETIME 64
-+#define VT_CF 71
-
- #define PID_TITLE 0x02
- #define PID_SUBJECT 0x03
-@@ -81,6 +85,7 @@ static const char __FAR_DATA pDocInfoHea
- #define PID_LASTPRINTED_DTM 0x0b
- #define PID_CREATE_DTM 0x0c
- #define PID_LASTSAVED_DTM 0x0d
-+#define PID_THUMBNAIL 0x11
-
- //=========================================================================
-
-@@ -411,6 +416,112 @@ ULONG SfxPSDateTimeProperty_Impl::Len()
-
- //=========================================================================
-
-+class SfxPSThumbnailProperty_Impl : public SfxPSProperty_Impl
-+{
-+private:
-+ SvMemoryStream aMemStream;
-+ sal_Bool bHaveBitmap;
-+ sal_Size nBitmapDataSize;
-+
-+public:
-+ SfxPSThumbnailProperty_Impl (UINT32 nIdP, const GDIMetaFile &rThumbnailMetaFile);
-+ virtual ~SfxPSThumbnailProperty_Impl();
-+
-+ virtual ULONG Save (SvStream &rStream);
-+ virtual ULONG Len ();
-+
-+ sal_Bool IsValid ();
-+};
-+
-+//#include <stdio.h>
-+
-+#define CF_DIB 8 // this is the clip_data format identifier for a DIB
-+
-+SfxPSThumbnailProperty_Impl::SfxPSThumbnailProperty_Impl (UINT32 nIdP, const GDIMetaFile &rThumbnailMetaFile) :
-+ SfxPSProperty_Impl (nIdP, VT_CF)
-+{
-+ BitmapEx aBitmap;
-+
-+ if (!GraphicHelper::createThumb_Impl (rThumbnailMetaFile,
-+ 160, /* magic value taken from GraphicHelper::getThumbnailFormatFromGDI_Impl() */
-+ aBitmap))
-+ {
-+ bHaveBitmap = sal_False;
-+ nBitmapDataSize = 0;
-+ return;
-+ }
-+
-+ aMemStream << aBitmap;
-+ nBitmapDataSize = aMemStream.Tell ();
-+ bHaveBitmap = sal_True;
-+ //fprintf (stderr, "ThumbnailProperty::constructor wrote %ld bytes for the bitmap\n", (long) nBitmapDataSize);
-+}
-+
-+SfxPSThumbnailProperty_Impl::~SfxPSThumbnailProperty_Impl ()
-+{
-+ bHaveBitmap = sal_False;
-+ nBitmapDataSize = 0;
-+}
-+
-+ULONG
-+SfxPSThumbnailProperty_Impl::Save (SvStream &rStream)
-+{
-+ /* clipboard size uint32 sizeof (clipboard format tag) + sizeof (clipboard data)
-+ * clipboard format tag int32 see below
-+ * clipboard data byte[] see below
-+ *
-+ * Clipboard format tag:
-+ * -1 - Windows clipboard format
-+ * -2 - Macintosh clipboard format
-+ * -3 - GUID that contains a format identifier (FMTID)
-+ * >0 - custom clipboard format name plus data (see msdn site below)
-+ * 0 - No data
-+ *
-+ * References:
-+ * http://msdn.microsoft.com/library/default.asp?url=/library/en-us/stg/stg/propvariant.asp
-+ * http://jakarta.apache.org/poi/hpsf/thumbnails.html
-+ * http://linux.com.hk/docs/poi/org/apache/poi/hpsf/Thumbnail.html
-+ * http://sparks.discreet.com/knowledgebase/public/solutions/ExtractThumbnailImg.htm
-+ */
-+
-+ UINT32 nClipSize;
-+ INT32 nClipFormat;
-+ INT32 nDataFormat;
-+
-+ if (!IsValid ())
-+ return SVSTREAM_INVALID_ACCESS;
-+
-+ nClipSize = 4 + 4 + nBitmapDataSize; /* clip_format_tag + data_format_tag + bitmap_len */
-+ nClipFormat = -1; /* Windows clipboard format; we'll say "it's a BMP" in the data section */
-+ nDataFormat = CF_DIB;
-+#if 0
-+ fprintf (stderr, "ThumbnailProperty::Save() writing clip_size %d, clip_format %d, data_format %d, bitmap_data_bytes %ld\n",
-+ (int) nClipSize,
-+ (int) nClipFormat,
-+ (int) nDataFormat,
-+ (long) nBitmapDataSize);
-+#endif
-+ rStream << nClipSize << nClipFormat << nDataFormat;
-+ rStream.Write (aMemStream.GetData (), nBitmapDataSize);
-+
-+ return rStream.GetErrorCode ();
-+}
-+
-+ULONG
-+SfxPSThumbnailProperty_Impl::Len ()
-+{
-+ //fprintf (stderr, "ThumbnailProperty::Len() returns %ld\n", (long) 4 + 4 + 4 + nBitmapDataSize);
-+ return 4 + 4 + 4 + nBitmapDataSize; /* total property size field + clip_format_tag + data_format_tag + bitmap_len */
-+}
-+
-+sal_Bool
-+SfxPSThumbnailProperty_Impl::IsValid ()
-+{
-+ return (bHaveBitmap && nBitmapDataSize != 0);
-+}
-+
-+//=========================================================================
-+
- typedef SfxPSProperty_Impl *SfxPSPropertyPtr_Impl;
- SV_DECL_PTRARR_DEL(SfxPSPropertyArr_Impl, SfxPSPropertyPtr_Impl, 10, 10);
- SV_IMPL_PTRARR(SfxPSPropertyArr_Impl, SfxPSPropertyPtr_Impl);
-@@ -997,6 +1108,8 @@ BOOL SfxDocumentInfo::SavePropertySet( S
- SfxPS_Impl* pPS = new SfxPS_Impl;
- SotStorageStreamRef aStrPropSet = pStorage->OpenSotStream(
- String::CreateFromAscii( pPropSlot ), STREAM_TRUNC | STREAM_STD_WRITE );
-+ SfxPSThumbnailProperty_Impl *thumb_prop;
-+
- if ( !aStrPropSet.Is() )
- {
- DBG_ERRORFILE( "can not open the property set" );
-@@ -1022,6 +1135,13 @@ BOOL SfxDocumentInfo::SavePropertySet( S
- pPS->AddProperty( new SfxPSStringProperty_Impl(
- PID_REVNUMBER, String::CreateFromInt32( GetDocumentNumber() ) ) );
- pPS->AddProperty( new SfxPSCodePageProperty_Impl( RTL_TEXTENCODING_UTF8 ));
-+
-+ thumb_prop = new SfxPSThumbnailProperty_Impl (PID_THUMBNAIL, GetThumbnailMetaFile());
-+ if (thumb_prop->IsValid ())
-+ pPS->AddProperty (thumb_prop);
-+ else
-+ delete thumb_prop;
-+
- pPS->Save( *aStrPropSet );
- delete pPS;
- return ( aStrPropSet->GetErrorCode() == 0 );
-@@ -1631,6 +1751,12 @@ void SfxDocumentInfo::SetKeywords( const
- {
- aKeywords = AdjustTextLen_Impl( rVal, SFXDOCINFO_KEYWORDLENMAX );
- }
-+//------------------------------------------------------------------------
-+
-+void SfxDocumentInfo::SetThumbnailMetaFile (const GDIMetaFile &aMetaFile)
-+{
-+ aThumbnailMetaFile = aMetaFile;
-+}
-
- void SfxDocumentInfo::DeleteUserData( BOOL bUseAuthor )
- {
---- sfx2/source/doc/graphhelp.hxx 2005-09-07 13:43:17.000000000 -0500
-+++ sfx2/source/doc/graphhelp.hxx 2005-10-25 21:10:11.000000000 -0500
-@@ -52,14 +52,14 @@ class GraphicHelper
- static sal_Bool mergeBitmaps_Impl( const BitmapEx& rBmpEx, const BitmapEx& rOverlay,
- const Rectangle& rOverlayRect, BitmapEx& rReturn );
-
-+public:
-+
- static sal_Bool createThumb_Impl( const GDIMetaFile& rMtf,
- sal_uInt32 nMaximumExtent,
- BitmapEx& rBmpEx,
- const BitmapEx* pOverlay = NULL,
- const Rectangle* pOverlayRect = NULL );
-
--public:
--
- static SvMemoryStream* getFormatStrFromGDI_Impl( const GDIMetaFile* pGDIMeta, sal_uInt32 nFormat );
-
- static void* getEnhMetaFileFromGDI_Impl( const GDIMetaFile* pGDIMeta );
---- sw/source/core/doc/docnew.cxx 2005-09-08 22:13:48.000000000 -0500
-+++ sw/source/core/doc/docnew.cxx 2005-10-25 22:29:10.000000000 -0500
-@@ -873,7 +873,7 @@ void SwDoc::SetPersist( SfxObjectShell*
-
-
-
--const SfxDocumentInfo* SwDoc::GetInfo()
-+SfxDocumentInfo* SwDoc::GetInfo()
- {
- if( !pSwgInfo )
- // Pointer-Members initialisieren
---- sw/inc/doc.hxx 2005-09-08 20:40:43.000000000 -0500
-+++ sw/inc/doc.hxx 2005-10-25 22:29:23.000000000 -0500
-@@ -1469,7 +1469,7 @@ public:
-
- // Dokument - Info
- // legt sie auf jedenfall an!
-- const SfxDocumentInfo* GetInfo();
-+ SfxDocumentInfo* GetInfo();
- // kann auch 0 sein !!!
- const SfxDocumentInfo* GetpInfo() const { return pSwgInfo; }
-
---- sw/source/filter/ww8/wrtww8.cxx 2005-09-09 01:08:46.000000000 -0500
-+++ sw/source/filter/ww8/wrtww8.cxx 2005-10-27 19:46:46.000000000 -0500
-@@ -2460,6 +2460,9 @@ void SwWW8Writer::PrepareStorage()
- const BYTE* pData;
- const char* pName;
- UINT32 nId1;
-+ const SwDocShell* pDocShell;
-+ SfxDocumentInfo* pInfo;
-+
-
- if (bWrtWW8)
- {
-@@ -2518,8 +2521,23 @@ void SwWW8Writer::PrepareStorage()
- pStg->SetClass( aGName, 0, String::CreateFromAscii( pName ));
- SvStorageStreamRef xStor( pStg->OpenSotStream(sCompObj) );
- xStor->Write( pData, nLen );
-- // noch mal ueberplaetten, um auch Clipboardformat zu setzen
-- pDoc->GetInfo()->SavePropertySet( pStg ); // DocInfo
-+
-+ pInfo = pDoc->GetInfo ();
-+ pDocShell = pDoc->GetDocShell ();
-+
-+ if (pDocShell)
-+ {
-+ GDIMetaFile *pMetaFile;
-+
-+ pMetaFile = pDocShell->GetPreviewMetaFile (sal_False);
-+ if (pMetaFile)
-+ {
-+ pInfo->SetThumbnailMetaFile (*pMetaFile);
-+ delete pMetaFile;
-+ }
-+ }
-+
-+ pInfo->SavePropertySet( pStg ); // DocInfo
- }
-
- ULONG SwWW8Writer::WriteStorage()
---- sc/source/filter/excel/expop2.cxx 2005-09-08 13:57:15.000000000 -0500
-+++ sc/source/filter/excel/expop2.cxx 2005-10-27 19:41:33.000000000 -0500
-@@ -120,7 +120,17 @@ FltError ExportBiff5::Write()
-
- if( pDocShell && xRootStrg.Is() )
- {
-+ GDIMetaFile *pMetaFile;
-+
- SfxDocumentInfo& rInfo = pDocShell->GetDocInfo();
-+
-+ pMetaFile = pDocShell->GetPreviewMetaFile (sal_False);
-+ if (pMetaFile)
-+ {
-+ rInfo.SetThumbnailMetaFile (*pMetaFile);
-+ delete pMetaFile;
-+ }
-+
- rInfo.SavePropertySet( xRootStrg );
- }
-
diff --git a/patches/src680/ooo-vendor-debian.diff b/patches/src680/ooo-vendor-debian.diff
deleted file mode 100644
index bf5be9d8c..000000000
--- a/patches/src680/ooo-vendor-debian.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- svx/source/intro/ooo.src-old 2005-09-14 01:11:01.907298808 +0200
-+++ svx/source/intro/ooo.src 2005-09-14 01:11:17.462933992 +0200
-@@ -51,7 +51,7 @@
- #ifdef BUILD_SPECIAL
- #define OOO_VENDOR "Sun Microsystems Inc."
- #else
--//#define OOO_VENDOR "my company"
-+#define OOO_VENDOR "Debian"
- #endif
-
- Bitmap RID_DEFAULT_ABOUT_BMP_LOGO
diff --git a/patches/src680/openldap-allow-deprecated.diff b/patches/src680/openldap-allow-deprecated.diff
deleted file mode 100644
index 4f26d5921..000000000
--- a/patches/src680/openldap-allow-deprecated.diff
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -u -u -r1.9 -r1.9.52.1
---- extensions/source/config/ldap/makefile.mk 8 Sep 2005 19:25:01 -0000 1.9
-+++ extensions/source/config/ldap/makefile.mk 29 Nov 2005 14:05:31 -0000 1.9.52.1
-@@ -63,7 +63,7 @@
- .ENDIF
-
- .IF "$(WITH_OPENLDAP)" == "YES"
--CFLAGS += -DWITH_OPENLDAP
-+CFLAGS += -DWITH_OPENLDAP -DLDAP_DEPRECATED
- .ENDIF
-
- SOLARINC+= $(LDAPSDKINCLUDES)
diff --git a/patches/src680/padmin-nofontconfig.diff b/patches/src680/padmin-nofontconfig.diff
deleted file mode 100644
index 512d8cbbe..000000000
--- a/patches/src680/padmin-nofontconfig.diff
+++ /dev/null
@@ -1,114 +0,0 @@
-Index: padmin/source/makefile.mk
-===================================================================
-RCS file: /cvs/gsl/padmin/source/makefile.mk,v
-retrieving revision 1.14
-diff -u -p -r1.14 makefile.mk
---- padmin/source/makefile.mk 29 Oct 2004 12:45:30 -0000 1.14
-+++ padmin/source/makefile.mk 25 Nov 2004 12:37:44 -0000
-@@ -71,6 +71,10 @@ LIBTARGET=NO
-
- .INCLUDE: settings.mk
-
-+.IF "$(FONTCONFIG_FONTS)" != ""
-+CFLAGS+=-DFONTCONFIG_FONTS
-+.ENDIF
-+
- # --- Files --------------------------------------------------------
-
- SRS1NAME=$(TARGET)
-@@ -94,11 +98,13 @@ SLOFILES=\
- $(SLO)$/newppdlg.obj \
- $(SLO)$/prtsetup.obj \
- $(SLO)$/prgsbar.obj \
-- $(SLO)$/fontentry.obj \
- $(SLO)$/helper.obj \
- $(SLO)$/adddlg.obj \
- $(SLO)$/titlectrl.obj
-
-+.IF "$(FONTCONFIG_FONTS)" == ""
-+SLOFILES+= $(SLO)$/fontentry.obj
-+.ENDIF
-
- OBJFILES=\
- $(OBJ)/pamain.obj
-Index: padmin/source/padialog.cxx
-===================================================================
-RCS file: /cvs/gsl/padmin/source/padialog.cxx,v
-retrieving revision 1.13
-diff -u -p -r1.13 padialog.cxx
---- padmin/source/padialog.cxx 9 Nov 2004 16:50:55 -0000 1.13
-+++ padmin/source/padialog.cxx 25 Nov 2004 12:39:13 -0000
-@@ -89,9 +89,14 @@
- #ifndef _TOOLS_COLOR_HXX
- #include <tools/color.hxx>
- #endif
-+#ifndef _URLOBJ_HXX
-+#include <tools/urlobj.hxx>
-+#endif
-+#ifndef FONTCONFIG_FONTS
- #ifndef _PAD_PADIALOG_HRC_
- #include <padialog.hrc>
- #endif
-+#endif
- #ifndef _PAD_FONTENTRY_HXX_
- #include <fontentry.hxx>
- #endif
-@@ -156,7 +161,9 @@ PADialog::PADialog( Window* pParent, BOO
- m_aComment( this, PaResId( RID_PA_TXT_COMMENT_STRING ) ),
- m_aSepButtonFL( this, PaResId( RID_PA_FL_SEPBUTTON ) ),
- m_aAddPB( this, PaResId( RID_PA_BTN_ADD ) ),
-+ #ifndef FONTCONFIG_FONTS
- m_aFontsPB( this, PaResId( RID_PA_BTN_FONTS ) ),
-+ #endif
- m_aCancelButton( this, PaResId( RID_PA_BTN_CANCEL ) ),
- m_aDefPrt( PaResId( RID_PA_STR_DEFPRT ) ),
- m_aRenameStr( PaResId( RID_PA_STR_RENAME ) ),
-@@ -184,13 +191,15 @@ void PADialog::Init()
- m_aConfPB.SetClickHdl( LINK( this, PADialog, ClickBtnHdl ) );
- m_aRenamePB.SetClickHdl( LINK( this, PADialog, ClickBtnHdl ) );
- m_aTestPagePB.SetClickHdl( LINK( this, PADialog, ClickBtnHdl ) );
-- m_aFontsPB.SetClickHdl( LINK( this, PADialog, ClickBtnHdl ) );
- m_aAddPB.SetClickHdl( LINK( this, PADialog, ClickBtnHdl ) );
- m_aDevicesLB.setDelPressedLink( LINK( this, PADialog, DelPressedHdl ) );
-
-+ #ifndef FONTCONFIG_FONTS
-+ m_aFontsPB.SetClickHdl( LINK( this, PADialog, ClickBtnHdl ) );
- ::psp::PrintFontManager& rFontManager( ::psp::PrintFontManager::get() );
- if( ! rFontManager.checkImportPossible() )
- m_aFontsPB.Enable( FALSE );
-+ #endif
- }
-
- PADialog::~PADialog()
-@@ -227,12 +236,13 @@ IMPL_LINK( PADialog, ClickBtnHdl, PushBu
- PrintTestPage();
- else if( pButton == &m_aAddPB )
- AddDevice();
-+ #ifndef FONTCONFIG_FONTS
- else if( pButton == &m_aFontsPB )
- {
- FontNameDlg aDialog( this );
- aDialog.Execute();
- }
--
-+ #endif
- return 0;
- }
-
-Index: padmin/source/padialog.hxx
-===================================================================
-RCS file: /cvs/gsl/padmin/source/padialog.hxx,v
-retrieving revision 1.5
-diff -u -p -r1.5 padialog.hxx
---- padmin/source/padialog.hxx 6 Jan 2004 16:50:50 -0000 1.5
-+++ padmin/source/padialog.hxx 25 Nov 2004 12:39:50 -0000
-@@ -118,7 +118,9 @@ namespace padmin {
-
- FixedLine m_aSepButtonFL;
- PushButton m_aAddPB;
-+#ifndef FONTCONFIG_FONTS
- PushButton m_aFontsPB;
-+#endif
- CancelButton m_aCancelButton;
-
- String m_aDefPrt;
diff --git a/patches/src680/parallel-dmake-dont-remove.diff b/patches/src680/parallel-dmake-dont-remove.diff
deleted file mode 100644
index 5531267bb..000000000
--- a/patches/src680/parallel-dmake-dont-remove.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- dmake/infer.c 2005-01-27 20:41:08.330219007 +0100
-+++ dmake/infer.c 2005-01-27 20:41:02.635178305 +0100
-@@ -193,7 +193,7 @@ CELLPTR setdirroot;
-
- if( infcell != cp ) {
- infcell->ce_flag |= F_INFER;
-- if( !first ) infcell->ce_flag |= F_REMOVE;
-+// if( !first ) infcell->ce_flag |= F_REMOVE;
- }
-
- if( !match->ic_flag )
diff --git a/patches/src680/parallel-solenv-tg_sdi-mk.diff b/patches/src680/parallel-solenv-tg_sdi-mk.diff
deleted file mode 100644
index bc9bb60cf..000000000
--- a/patches/src680/parallel-solenv-tg_sdi-mk.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- solenv/inc/tg_sdi.mk 2004-10-14 21:26:08.439480960 +0200
-+++ solenv/inc/tg_sdi.mk 2004-10-14 21:26:48.572379832 +0200
-@@ -80,6 +80,10 @@ $(SDI4TARGET) .NULL : SDI4
-
- $(SDI5TARGET) .NULL : SDI5
-
-+.ELSE
-+
-+MAXPROCESS := 1
-+
- .ENDIF
-
-
diff --git a/patches/src680/parallel-sysui-makefiles.diff b/patches/src680/parallel-sysui-makefiles.diff
deleted file mode 100644
index a1e652936..000000000
--- a/patches/src680/parallel-sysui-makefiles.diff
+++ /dev/null
@@ -1,33 +0,0 @@
---- sysui/desktop/redhat/makefile.mk 2004-10-13 17:48:32.057149264 +0200
-+++ sysui/desktop/redhat/makefile.mk 2004-10-13 17:50:12.159931328 +0200
-@@ -61,6 +61,8 @@ PRJ=..$/..
- PRJNAME=sysui
- TARGET=redhat
-
-+MAXPROCESS := 1
-+
- # --- Settings -----------------------------------------------------
-
- .INCLUDE : settings.mk
---- sysui/desktop/share/makefile.mk 2004-10-13 17:48:32.057149264 +0200
-+++ sysui/desktop/share/makefile.mk 2004-10-13 17:50:12.159931328 +0200
-@@ -61,6 +61,8 @@ PRJ=..$/..
- PRJNAME=sysui
- TARGET=desktopshare
-
-+MAXPROCESS := 1
-+
- # --- Settings -----------------------------------------------------
-
- .INCLUDE : settings.mk
---- sysui/desktop/suse/makefile.mk 2004-10-13 17:48:32.057149264 +0200
-+++ sysui/desktop/suse/makefile.mk 2004-10-13 17:50:12.159931328 +0200
-@@ -61,6 +61,8 @@ PRJ=..$/..
- PRJNAME=sysui
- TARGET=suse
-
-+MAXPROCESS := 1
-+
- # --- Settings -----------------------------------------------------
-
- .INCLUDE : settings.mk
diff --git a/patches/src680/pld-splash.diff b/patches/src680/pld-splash.diff
deleted file mode 100644
index 12adeb859..000000000
--- a/patches/src680/pld-splash.diff
+++ /dev/null
@@ -1,43 +0,0 @@
-Index: svx/prj/d.lst
-===================================================================
-RCS file: /cvs/graphics/svx/prj/d.lst,v
-retrieving revision 1.108
-diff -u -r1.108 d.lst
---- svx/prj/d.lst 9 Dec 2004 16:36:45 -0000 1.108
-+++ svx/prj/d.lst 16 Dec 2004 12:43:47 -0000
-@@ -55,7 +55,7 @@
- ..\res\cjkintro.bmp %COMMON_DEST%\pck%_EXT%\starsuite_bitmap\intro.bmp
- ..\res\ofaabout.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\about.bmp
- ..\res\soffice.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\intro.bmp
--..\res\ooointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro.bmp
-+..\res\openintro_pld.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro.bmp
- ..\res\ooonologointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\nologointro.bmp
-
- mkdir: %_DEST%\inc%_EXT%\svx
-Index: svx/source/intro/ooo.src
-===================================================================
-RCS file: /cvs/graphics/svx/source/intro/ooo.src,v
-retrieving revision 1.11
-diff -u -r1.11 ooo.src
---- svx/source/intro/ooo.src 7 Jan 2005 09:49:30 -0000 1.11
-+++ svx/source/intro/ooo.src 1 Feb 2005 16:48:49 -0000
-@@ -48,8 +48,8 @@
- #include "svxids.hrc"
- #include "intro.hrc"
-
--#ifdef BUILD_SPECIAL
--#define OOO_VENDOR "Sun Microsystems Inc."
-+#if 1
-+#define OOO_VENDOR "PLD/Linux Team"
- #else
- //#define OOO_VENDOR "my company"
- #endif
-@@ -56,7 +56,7 @@
-
- Bitmap RID_DEFAULT_ABOUT_BMP_LOGO
- {
-- File = "openabout.bmp" ;
-+ File = "openabout_pld.bmp" ;
- };
-
- String RID_APPTITLE
diff --git a/patches/src680/portaudio-use-arch-flags-m146.diff b/patches/src680/portaudio-use-arch-flags-m146.diff
deleted file mode 100644
index b85ec3285..000000000
--- a/patches/src680/portaudio-use-arch-flags-m146.diff
+++ /dev/null
@@ -1,54 +0,0 @@
---- portaudio/portaudio_v18_1.patch.old 2005-05-31 18:34:54.000000000 +0200
-+++ portaudio/portaudio_v18_1.patch 2005-08-15 11:52:43.000000000 +0200
-@@ -20,7 +20,7 @@
- ! LIBS="-framework CoreAudio -framework AudioToolbox -lm";
- PADLL="libportaudio.dylib";
- ! SHARED_FLAGS="-framework CoreAudio -framework AudioToolbox -dynamiclib -single_module -install_name '@executable_path/libportaudio.dylib.0'";
--! CFLAGS="-malign-natural -O2 -Ipa_common -Ipablio"
-+! CFLAGS="-malign-natural -O2 -Ipa_common -Ipablio ${ARCH_FLAGS}"
- ! ;;
- !
- ! linux* )
-@@ -29,7 +29,7 @@
- ! LIBS="-lm -lpthread";
- ! PADLL="libportaudio.so";
- ! SHARED_FLAGS="-shared -Wl,-soname=libportaudio.so.0";
--! CFLAGS="-O2 -fPIC"
-+! CFLAGS="-O2 -fPIC ${ARCH_FLAGS}"
- ! ;;
- !
- ! freebsd* )
-@@ -48,7 +48,7 @@
- ! LIBS="-lm ${PTHREAD_LIBS}";
- ! PADLL="libportaudio.so";
- ! SHARED_FLAGS="-shared -Wl,-soname=libportaudio.so.0";
--! CFLAGS="-O2 -fPIC ${PTHREAD_CFLAGS}"
-+! CFLAGS="-O2 -fPIC ${PTHREAD_CFLAGS} ${ARCH_FLAGS}"
- ;;
-
- mingw* )
-@@ -67,7 +67,7 @@
- LIBS = -lm -lpthread
-
- CDEFINES = -I../pa_common
--! CFLAGS = -O2 -fPIC
-+! CFLAGS = -O2 -fPIC $(ARCH_FLAGS)
- LIBINST = /usr/local/lib
-
- TESTS:= $(wildcard pa_tests/pa*.c pa_tests/debug*.c)
-@@ -86,3 +86,15 @@
- #include <machine/soundcard.h> /* JH20010905 */
- #endif
-
-+*** misc/portaudio_v18_1/pa_tests/patest_buffer.c.old 2003-02-11 19:41:32.000000000 +0100
-+--- misc/build/portaudio_v18_1/pa_tests/patest_buffer.c 2005-08-15 11:46:53.000000000 +0200
-+***************
-+*** 125,130 ****
-+--- 125,131 ----
-+ if( err < 0 ) return 0;
-+
-+ }
-++ return 0;
-+ }
-+
-+
diff --git a/patches/src680/portaudio-use-arch-flags.diff b/patches/src680/portaudio-use-arch-flags.diff
deleted file mode 100644
index 025839bb8..000000000
--- a/patches/src680/portaudio-use-arch-flags.diff
+++ /dev/null
@@ -1,54 +0,0 @@
---- portaudio/portaudio_v18_1.patch.old 2005-05-31 18:34:54.000000000 +0200
-+++ portaudio/portaudio_v18_1.patch 2005-08-15 11:52:43.000000000 +0200
-@@ -20,7 +20,7 @@
- ! LIBS="-framework CoreAudio -framework AudioToolbox -lm";
- PADLL="libportaudio.dylib";
- ! SHARED_FLAGS="-framework CoreAudio -framework AudioToolbox -dynamiclib -single_module -install_name '@executable_path/libportaudio.dylib.0'";
--! CFLAGS="-malign-natural -O2 -Ipa_common -Ipablio"
-+! CFLAGS="-malign-natural -O2 -Ipa_common -Ipablio ${ARCH_FLAGS}"
- ! ;;
- !
- ! linux* )
-@@ -29,7 +29,7 @@
- ! LIBS="-lm -lpthread";
- ! PADLL="libportaudio.so";
- ! SHARED_FLAGS="-shared -Wl,-soname=libportaudio.so.0 -Wl,-rpath,'\$\$ORIGIN'";
--! CFLAGS="-O2 -fPIC"
-+! CFLAGS="-O2 -fPIC ${ARCH_FLAGS}"
- ! ;;
- !
- ! freebsd* )
-@@ -48,7 +48,7 @@
- ! LIBS="-lm ${PTHREAD_LIBS}";
- ! PADLL="libportaudio.so";
- ! SHARED_FLAGS="-shared -Wl,-soname=libportaudio.so.0";
--! CFLAGS="-O2 -fPIC ${PTHREAD_CFLAGS}"
-+! CFLAGS="-O2 -fPIC ${PTHREAD_CFLAGS} ${ARCH_FLAGS}"
- ;;
-
- mingw* )
-@@ -67,7 +67,7 @@
- LIBS = -lm -lpthread
-
- CDEFINES = -I../pa_common
--! CFLAGS = -O2 -fPIC
-+! CFLAGS = -O2 -fPIC $(ARCH_FLAGS)
- LIBINST = /usr/local/lib
-
- TESTS:= $(wildcard pa_tests/pa*.c pa_tests/debug*.c)
-@@ -86,3 +86,15 @@
- #include <machine/soundcard.h> /* JH20010905 */
- #endif
-
-+*** misc/portaudio_v18_1/pa_tests/patest_buffer.c.old 2003-02-11 19:41:32.000000000 +0100
-+--- misc/build/portaudio_v18_1/pa_tests/patest_buffer.c 2005-08-15 11:46:53.000000000 +0200
-+***************
-+*** 125,130 ****
-+--- 125,131 ----
-+ if( err < 0 ) return 0;
-+
-+ }
-++ return 0;
-+ }
-+
-+
diff --git a/patches/src680/powerpc-LINK-is-CC.diff b/patches/src680/powerpc-LINK-is-CC.diff
deleted file mode 100644
index 0a1fb543d..000000000
--- a/patches/src680/powerpc-LINK-is-CC.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: unxlngppc.mk
-===================================================================
-RCS file: /cvs/tools/solenv/inc/unxlngppc.mk,v
-retrieving revision 1.18
-diff -u -u -r1.18 unxlngppc.mk
---- solenv/inc/unxlngppc.mk 11 Jul 2005 15:31:42 -0000 1.18
-+++ solenv/inc/unxlngppc.mk 16 Aug 2005 21:40:43 -0000
-@@ -150,7 +150,7 @@
- DYNAMIC = -Wl,-Bdynamic
-
- # name of linker
--LINK*=gcc
-+LINK*=$(CC)
- # default linker flags
- LINKFLAGS=-Wl,-rpath,\''$$ORIGIN'\'
-
diff --git a/patches/src680/print-error.diff b/patches/src680/print-error.diff
deleted file mode 100644
index 2d4ff23fb..000000000
--- a/patches/src680/print-error.diff
+++ /dev/null
@@ -1,30 +0,0 @@
---- sfx2/source/view/prnmon.cxx.print~ 2005-08-28 16:37:30.000000000 +0000
-+++ sfx2/source/view/prnmon.cxx 2005-08-28 19:27:51.000000000 +0000
-@@ -404,7 +404,7 @@
- // AbortJob calls EndPrint hdl, so do not delete pImp just now
- BOOL bWasDeleteOnEndPrint = pImp->bDeleteOnEndPrint;
- pImp->bDeleteOnEndPrint = FALSE;
-- pImp->pPrinter->AbortJob();
-+ pImp->pPrinter->SetErrorHdl( Link() );
- InfoBox( pImp->GetViewShell()->GetWindow(),
- String( SfxResId(STR_ERROR_PRINT) ) ).Execute();
- if ( pImp->bRestoreFlag && pImp->pViewShell->GetObjectShell()->IsEnableSetModified() != pImp->bOldFlag )
---- vcl/source/gdi/print.cxx.print~ 2005-08-28 16:44:08.000000000 +0000
-+++ vcl/source/gdi/print.cxx 2005-08-28 19:25:57.000000000 +0000
-@@ -1620,6 +1620,7 @@
-
- BOOL Printer::StartPage()
- {
-+ BOOL bSuccess = TRUE;
- if ( !IsJobActive() )
- return FALSE;
-
-@@ -1660,7 +1661,7 @@
- }
- }
-
-- return TRUE;
-+ return bSuccess;
- }
-
- return FALSE;
diff --git a/patches/src680/printer-properties-disable.diff b/patches/src680/printer-properties-disable.diff
deleted file mode 100644
index 911d1d4d7..000000000
--- a/patches/src680/printer-properties-disable.diff
+++ /dev/null
@@ -1,66 +0,0 @@
---- padmin/source/rtsetup.src 2004-06-26 08:42:01.000000000 +0530
-+++ padmin/source/rtsetup.src 2005-03-02 11:48:29.000000000 +0530
-@@ -138,6 +138,7 @@ TabPage RID_RTS_PAPERPAGE
- };
- FixedText RID_RTS_PAPER_ORIENTATION_TXT
- {
-+ Hide = TRUE;
- Pos = MAP_APPFONT( 5, 20 );
- Size = MAP_APPFONT( 80, 8 );
- Text [ de ] = "~Orientierung";
-@@ -145,6 +146,7 @@ TabPage RID_RTS_PAPERPAGE
- };
- ListBox RID_RTS_PAPER_ORIENTATION_BOX
- {
-+ Hide = TRUE;
- Border = TRUE;
- DropDown = TRUE;
- Pos = MAP_APPFONT( 115, 20 );
-@@ -152,7 +154,7 @@ TabPage RID_RTS_PAPERPAGE
- };
- FixedText RID_RTS_PAPER_DUPLEX_TXT
- {
-- Pos = MAP_APPFONT( 5, 35 );
-+ Pos = MAP_APPFONT( 5, 20 );
- Size = MAP_APPFONT( 80, 8 );
- Text [ de ] = "~Duplex";
- Text [ en-US ] = "~Duplex";
-@@ -161,12 +163,12 @@ TabPage RID_RTS_PAPERPAGE
- {
- Border = TRUE;
- DropDown = TRUE;
-- Pos = MAP_APPFONT( 115, 35 );
-+ Pos = MAP_APPFONT( 115, 20 );
- Size = MAP_APPFONT( 110, 120 );
- };
- FixedText RID_RTS_PAPER_SLOT_TXT
- {
-- Pos = MAP_APPFONT( 5, 50 );
-+ Pos = MAP_APPFONT( 5, 35 );
- Size = MAP_APPFONT( 80, 8 );
- Text [ de ] = "Pap~ierschacht";
- Text [ en-US ] = "Paper tray";
-@@ -175,12 +177,12 @@ TabPage RID_RTS_PAPERPAGE
- {
- Border = TRUE;
- DropDown = TRUE;
-- Pos = MAP_APPFONT( 115, 50 );
-+ Pos = MAP_APPFONT( 115, 35 );
- Size = MAP_APPFONT( 110, 120 );
- };
- FixedText RID_RTS_PAPER_SCALE_TXT
- {
-- Pos = MAP_APPFONT ( 5 , 65 ) ;
-+ Pos = MAP_APPFONT ( 5 , 50 ) ;
- Size = MAP_APPFONT ( 80 , 8 ) ;
- Text [ de ] = "~Skalierung" ;
- Text [ en-US ] = "~Scale";
-@@ -189,7 +191,7 @@ TabPage RID_RTS_PAPERPAGE
- {
- Border = TRUE ;
- Spin = TRUE;
-- Pos = MAP_APPFONT ( 115 , 65 ) ;
-+ Pos = MAP_APPFONT ( 115 , 50 ) ;
- Size = MAP_APPFONT ( 110 , 12 ) ;
- };
- };
diff --git a/patches/src680/printing-desktop-integration.diff b/patches/src680/printing-desktop-integration.diff
deleted file mode 100644
index b7821500f..000000000
--- a/patches/src680/printing-desktop-integration.diff
+++ /dev/null
@@ -1,138 +0,0 @@
---- sfx2/source/view/viewsh.cxx 2005-06-27 16:27:21.000000000 +0530
-+++ sfx2/source/view/viewsh.cxx 2005-06-30 15:08:11.153882995 +0530
-@@ -345,6 +345,7 @@ void SfxViewShell::GetState_Impl( SfxIte
- case SID_SETUPPRINTER:
- {
- BOOL bEnabled = pImp->bCanPrint && !pImp->nPrinterLocks;
-+ bEnabled = bEnabled && !Application::GetSettings().GetMiscSettings().GetDisablePrinting();
- if ( bEnabled )
- {
- SfxPrinter *pPrinter = GetPrinter(FALSE);
---- officecfg/registry/data/org/openoffice/VCL.xcu 2005-06-27 16:27:28.000000000 +0530
-+++ officecfg/registry/data/org/openoffice/VCL.xcu 2005-06-30 15:08:11.159882014 +0530
-@@ -67,6 +67,11 @@
- <value>false</value>
- </prop>
- </node>
-+ <node oor:name="DesktopManagement" oor:op="replace">
-+ <prop oor:name="DisablePrinting" oor:type="xs:string" oor:op="replace">
-+ <value>false</value>
-+ </prop>
-+ </node>
- <node oor:name="Transfer" oor:op="replace">
- <prop oor:name="SelectionTimeout" oor:type="xs:string" oor:op="replace">
- <value>3</value>
---- vcl/inc/settings.hxx 2005-06-27 16:27:26.000000000 +0530
-+++ vcl/inc/settings.hxx 2005-06-30 15:08:11.204874654 +0530
-@@ -971,6 +971,7 @@ private:
- USHORT mnRefCount;
- USHORT mnTwoDigitYearStart;
- USHORT mnEnableATT;
-+ USHORT mnDisablePrinting;
- BOOL mbEnableLocalizedDecimalSep;
- };
-
-@@ -996,6 +997,7 @@ public:
- { return mpData->mnTwoDigitYearStart; }
- void SetEnableATToolSupport( BOOL bEnable );
- BOOL GetEnableATToolSupport() const;
-+ BOOL GetDisablePrinting() const;
- void SetEnableLocalizedDecimalSep( BOOL bEnable );
- BOOL GetEnableLocalizedDecimalSep() const;
- const MiscSettings& operator =( const MiscSettings& rSet );
---- vcl/source/app/settings.cxx 2005-06-27 16:27:26.000000000 +0530
-+++ vcl/source/app/settings.cxx 2005-06-30 15:08:11.215872855 +0530
-@@ -1028,6 +1028,7 @@ ImplMiscData::ImplMiscData()
- mnRefCount = 1;
- mnTwoDigitYearStart = 1930;
- mnEnableATT = ~0;
-+ mnDisablePrinting = ~0;
- static const char* pEnv = getenv("SAL_DECIMALSEP_ENABLED" ); // set default without UI
- mbEnableLocalizedDecimalSep = (pEnv != NULL) ? TRUE : FALSE;
- }
-@@ -1039,6 +1040,7 @@ ImplMiscData::ImplMiscData( const ImplMi
- mnRefCount = 1;
- mnTwoDigitYearStart = rData.mnTwoDigitYearStart;
- mnEnableATT = rData.mnEnableATT;
-+ mnDisablePrinting = rData.mnDisablePrinting;
- mbEnableLocalizedDecimalSep = rData.mbEnableLocalizedDecimalSep;
- }
-
-@@ -1112,6 +1114,7 @@ BOOL MiscSettings::operator ==( const Mi
-
- if ( (mpData->mnTwoDigitYearStart == rSet.mpData->mnTwoDigitYearStart ) &&
- (mpData->mnEnableATT == rSet.mpData->mnEnableATT ) &&
-+ (mpData->mnDisablePrinting == rSet.mpData->mnDisablePrinting ) &&
- (mpData->mbEnableLocalizedDecimalSep == rSet.mpData->mbEnableLocalizedDecimalSep ) )
- return TRUE;
- else
-@@ -1120,6 +1123,21 @@ BOOL MiscSettings::operator ==( const Mi
-
- // -----------------------------------------------------------------------
-
-+BOOL MiscSettings::GetDisablePrinting() const
-+{
-+ if( mpData->mnDisablePrinting == (USHORT)~0 )
-+ {
-+ rtl::OUString aEnable =
-+ vcl::SettingsConfigItem::get()->
-+ getValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DesktopManagement" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DisablePrinting" ) ) );
-+ mpData->mnDisablePrinting = aEnable.equalsIgnoreAsciiCaseAscii( "true" ) ? 1 : 0;
-+ }
-+
-+ return (BOOL)mpData->mnDisablePrinting;
-+}
-+// -----------------------------------------------------------------------
-+
- BOOL MiscSettings::GetEnableATToolSupport() const
- {
-
---- vcl/unx/source/gdi/salprnpsp.cxx 2005-03-30 14:39:56.000000000 +0530
-+++ vcl/unx/source/gdi/salprnpsp.cxx 2005-06-06 11:22:32.898146544 +0530
-@@ -76,6 +76,9 @@
- #include <sys/wait.h>
- #include <sys/stat.h>
-
-+#ifndef _SV_SVAPP_HXX
-+#include <svapp.hxx>
-+#endif
- #ifndef _SV_JOBSET_H
- #include <jobset.h>
- #endif
-@@ -1208,6 +1211,9 @@ IMPL_STATIC_LINK( vcl_sal::PrinterUpdate
-
- void vcl_sal::PrinterUpdate::update()
- {
-+ if( Application::GetSettings().GetMiscSettings().GetDisablePrinting() )
-+ return;
-+
- if( ! static_cast< X11SalInstance* >(GetSalData()->pInstance_)->isPrinterInit() )
- {
- // #i45389# start background printer detection
---- sfx2/source/doc/sfxbasemodel.cxx 2005-07-14 17:16:24.000000000 +0530
-+++ sfx2/source/doc/sfxbasemodel.cxx 2005-08-01 16:05:36.621412055 +0530
-@@ -1953,6 +1953,9 @@ class ImplUCBPrintWatcher : public ::osl
- void SAL_CALL SfxBaseModel::print(const SEQUENCE< PROPERTYVALUE >& rOptions)
- throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
- {
-+ if( Application::GetSettings().GetMiscSettings().GetDisablePrinting() )
-+ return;
-+
- // object already disposed?
- // object already disposed?
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
---- sw/source/ui/uiview/pview.cxx 2005-07-21 14:59:22.000000000 +0530
-+++ sw/source/ui/uiview/pview.cxx 2005-08-09 16:28:05.004771408 +0530
-@@ -1770,7 +1770,10 @@ void SwPagePreView::GetState( SfxItemSe
- const SfxPoolItem* pItem;
- SfxItemSet aSet( *rSet.GetPool(), SID_PRINTDOC, SID_PRINTDOC );
- GetSlotState( SID_PRINTDOC, SfxViewShell::GetInterface(), &aSet );
-- if( SFX_ITEM_SET == aSet.GetItemState( SID_PRINTDOC,
-+ if( SFX_ITEM_DISABLED == aSet.GetItemState( SID_PRINTDOC,
-+ FALSE, &pItem ))
-+ rSet.DisableItem( nWhich );
-+ else if( SFX_ITEM_SET == aSet.GetItemState( SID_PRINTDOC,
- FALSE, &pItem ))
- {
- ((SfxPoolItem*)pItem)->SetWhich( FN_PRINT_PAGEPREVIEW );
diff --git a/patches/src680/psprint_config-no-orig.diff b/patches/src680/psprint_config-no-orig.diff
deleted file mode 100644
index d394c066a..000000000
--- a/patches/src680/psprint_config-no-orig.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- psprint_config/configuration/ppds/makefile.mk
-+++ psprint_config/configuration/ppds/makefile.mk
-@@ -5,7 +5,7 @@
- .INCLUDE : settings.mk
-
- ZIP1TARGET = fontunxppds
--ZIP1LIST = * -x makefile.* -x delzip
-+ZIP1LIST = * -x makefile.* -x delzip -x *.orig
-
- .INCLUDE : target.mk
-
diff --git a/patches/src680/pushfont-psstream.diff b/patches/src680/pushfont-psstream.diff
deleted file mode 100644
index af36d9e66..000000000
--- a/patches/src680/pushfont-psstream.diff
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -u -p -u -r1.1 SGENPRT.PS
---- psprint_config/configuration/ppds/SGENPRT.PS
-+++ psprint_config/configuration/ppds/SGENPRT.PS
-@@ -28,6 +28,8 @@
- *NickName: "Generic Printer"
- *PCFileName: "SGENPRT.PPD"
-
-+*% CUPS can cope, and fixes some symbol issues
-+*TTRasterizer: Type42
-
- *% ===== Basic Capabilities and Defaults =====
-
diff --git a/patches/src680/pyuno-rpath-ooodir.diff b/patches/src680/pyuno-rpath-ooodir.diff
deleted file mode 100644
index 929058859..000000000
--- a/patches/src680/pyuno-rpath-ooodir.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- pyuno/source/module/makefile.mk 2005-08-07 17:35:23.198884312 +0200
-+++ pyuno/source/module/makefile.mk 2005-08-07 17:41:05.457853040 +0200
-@@ -145,7 +145,7 @@
- .IF "$(GUI)" == "UNX"
- $(PYUNO_MODULE) : $(SLO)$/pyuno_dlopenwrapper.obj
- .IF "$(OS)" == "LINUX"
-- @+ echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHLCUI) -ldl -o $@ $(SLO)$/pyuno_dlopenwrapper.o > $(MISC)$/$(@:b).cmd
-+ @+ echo $(LINK) -Wl,-z,combreloc $(LINKFLAGSDEFS) -Wl,-rpath,\''$$ORIGIN'\':/usr/lib/openoffice/program $(LINKFLAGSSHLCUI) -ldl -o $@ $(SLO)$/pyuno_dlopenwrapper.o > $(MISC)$/$(@:b).cmd
- .ELIF "$(OS)" == "SOLARIS"
- @+ echo ld -G -ldl -o $@ $(SLO)$/pyuno_dlopenwrapper.o > $(MISC)$/$(@:b).cmd
- .ELIF "$(OS)" == "FREEBSD"
diff --git a/patches/src680/pyuno-update-docs.diff b/patches/src680/pyuno-update-docs.diff
deleted file mode 100644
index 14cec657d..000000000
--- a/patches/src680/pyuno-update-docs.diff
+++ /dev/null
@@ -1,801 +0,0 @@
-Index: pyuno/doc/python-bridge.html
-===================================================================
---- pyuno/doc/python-bridge.html.orig 2003-05-25 01:33:47.000000000 +0200
-+++ pyuno/doc/python-bridge.html 2004-08-29 11:52:30.861707728 +0200
-@@ -1,11 +1,17 @@
- <html>
-
-+<head>
-+<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
-+</head>
- <body>
--<h1> Python-UNO bridge for OO1.1</h1>
-+<h1> Python-UNO bridge</h1>
-+
-
- <p>
-+- <a href="#translations">Translations</a><br>
- - <a href="#intro">Introduction</a><br>
- - <a href="#state">State</a><br>
-+- <a href="#download">Download</a><br>
- - <a href="#tutorial">Tutorial</a><br>
- -- <a href="#install">PyUNO Installation</a><br>
- -- <a href="#modes">PyUNO Bridge Modes</a><br>
-@@ -17,16 +23,23 @@
- -- <a href="#outparas">Out parameter handling</a><br>
- -- <a href="#exception">Exception handling</a><br>
- -- <a href="#helper">unohelper module</a><br>
---- <a href="#tips">Tips and Known Issues</a><br>
-
- - <a href="#dependencies">Dependencies</a><br>
- - <a href="#bootstrap">Bootstrapping in non-OOo environments</a><br>
- - <a href="#source">Building from source</a><br>
- - <a href="#replacing">Replacing the python runtime</a><br>
--- <a href="#changes">Changes</a><br>
-+- <a href="#scripting-framework">Support for the new scripting framework </a><br>
- - <a href="#references">External references</a><br>
-+- <a href="#faq">FAQ</a> (read this FIRST when you have problems)<br>
- - <a href="#authors">Authors</a><br>
-
-+<a name="translations"><h2>Translations</h2></a>
-+<p>
-+
-+Find <a href="http://www.openoffice.org/files/documents/73/1509/python_uno_bridge.htm">
-+here</a>
-+a shortened spanish version of this document.
-+
- <a name="intro"><h2> Introduction </h2></a>
- The Python-UNO bridge allows to use the standard OpenOffice.org API from
- the well known python scripting language. It addtionally allows to develop UNO components
-@@ -38,6 +51,14 @@ from Java, C++ or the built in StarBasic
- <a href="http://udk.openoffice.org/python/python-bridge.html">
- http://udk.openoffice.org/python/python-bridge.html</a>
-
-+<a name="download"><h2>Download</h2>
-+You can download this documentation including examples
-+and <a href="#scripting-framework"> support for the new scripting-framework</a>
-+
-+for offline work.
-+
-+<p><strong>Download <a href="http://udk.openoffice.org/python/pyuno-doc.zip">pyuno-doc.zip</a> </strong>( less than 0.5 MB).
-+
- <a name="state"><h2>State</h2></a>
-
- <p> The Python-UNO bridge is feature complete, but has not been used by
-@@ -45,12 +66,6 @@ many people up to now, so it may contain
- OpenOffice.org 1.1 source tree. It does not run with the OpenOffice.org 1.0.x
- source tree.
-
--<p> <strong> Note: </strong>
--PyUNO comes with OpenOffice.org itself, but it is (not yet) by default selected
--in the OOo
--standard installation. It can be switched on with the customized installation
--(see Optional Components/PyUNO Bridge).
--
- <p> The documentation in its current state is targeted at developers, who
- have already some experience with OpenOffice.org API and with some other
- programming language (Java/C++/StarBasic). If you are a newbie and you think,
-@@ -63,8 +78,13 @@ can be used to automate OpenOffice. This
- there is lots of resources available in the office development kit and
- the developer manual.
-
--<a name="install"><h3> PyUNO Installation </h4></a>
--The PyUNO-Bridge must be explicitly selected during OOo installation. Choose
-+<a name="install"><h3> PyUNO Installation </h3></a>
-+With OpenOffice1.1RC4 and higher, PyUNO is included in the default installation. You
-+can skip to the next paragraph.
-+
-+<p>
-+When you use OpenOffice1.1RC3 or earlier,
-+the PyUNO-Bridge must be explicitly selected during OOo installation. Choose
- therefor customized setup,
-
- <p>
-@@ -79,7 +99,14 @@ therefor customized setup,
- within the office installation and selecting <code>Modify</code> in the upcoming
- dialog.
-
--<a name="modes"><h3>PyUNO bridge modes</h4></a>
-+<p> <strong> Note:</strong> When you choose the <code>install</code> script
-+(e.g. <code>install --prefix=/usr/local</code>) for installation, you can
-+only activate pyuno after the installation by starting <code>setup /net</code>
-+and choosing Modify. Note, that in OOorc2, there is a bug which does not install
-+two .ini files as they should in this case.
-+
-+
-+<a name="modes"><h3>PyUNO bridge modes</h3></a>
- PyUNO can be used in two different modes
-
- <ol>
-@@ -132,19 +159,27 @@ ctx = resolver.resolve( "uno:socket,host
- smgr = ctx.ServiceManager
-
- # get the central desktop object
--desktop = smgr.createInstanceWithContext( "com.sun.star.frame.Desktop",remoteContext)
-+desktop = smgr.createInstanceWithContext( "com.sun.star.frame.Desktop",ctx)
-
- # access the current writer document
- model = desktop.getCurrentComponent()
-
- # access the document's text property
--text = doc.Text
-+text = model.Text
-
- # create a cursor
- cursor = text.createTextCursor()
-
- # insert the text into the document
- text.insertString( cursor, "Hello World", 0 )
-+
-+# Do a nasty thing before exiting the python process. In case the
-+# last call is a oneway call (e.g. see idl-spec of insertString),
-+# it must be forced out of the remote-bridge caches before python
-+# exits the process. Otherwise, the oneway call may or may not reach
-+# the target object.
-+# I do this here by calling a cheap synchronous call (getPropertyValue).
-+ctx.ServiceManager
- </pre></font></td></tr></table>
-
- <p>
-@@ -153,8 +188,14 @@ Now start the above script with the pyth
- <table width="100%" bgcolor="lightgrey"><tr><td><font size="-1"><pre>
-
- c:\Program Files\OpenOffice1.1\program> .\python hello_world.py
--
- </pre></font></td></tr></table>
-+
-+<font size="-2"><strong>Note:</strong> You must use the script/batch file in the
-+program directory to start python, simply starting the python executable
-+in the runtime directory (or from python installation installed somewhere else
-+on your machine) will not work.
-+</font><br>
-+
- <p>
- This scripts prints "Hello World" into the current writer document.
-
-@@ -261,6 +302,15 @@ zip hello_world.zip Addons.xcu hello_wor
- This package can then be deployed into an OpenOffice installation using the
- <code>pkgchk</code> tool, which is located in the OOo program directory. Note,
- that the office must have been terminated before.
-+<p>
-+<font size="-2"><strong>Note:</strong> Make sure, that the PYTHONPATH
-+environment variable is NOT set when you start pkgchk or soffice
-+(see <a href="http://www.openoffice.org/issues/show_bug.cgi?id=17339">#i17339#</a>).
-+This may require, that you create a batch file for soffice on windows,
-+unset PYTHONPATH in the system configuration or always start soffice from the
-+shell with set PYTHONPATH= (windows) or unsetenv PYTHONPATH (unix tcsh shell).
-+
-+</font>
-
-
- <table width="100%" bgcolor="lightgrey"><tr><td><font size="-1"><pre>
-@@ -306,7 +356,7 @@ retrieve the office component context di
- In the following you find the full description about how UNO features are mapped to the
- python language.
-
--<a name="mapping"><h3>UNO Type mapping </h2></a>
-+<a name="mapping"><h3>UNO Type mapping </h3></a>
-
- <table border>
- <tr>
-@@ -354,7 +404,7 @@ and boolean values.
-
-
- <p> As long as a boolean is specified in the interface method signature,
--you may also you numbers. In the following example, all calls are valid:
-+you may also use numbers. In the following example, all calls are valid:
-
- <table width="100%" bgcolor="lightgrey"><tr><td><font size="-1"><pre>
- #idl signature void takeBool( [in] boolean bool )
-@@ -552,7 +602,7 @@ However, simply assigning a struct to an
- create a copy, but simply creates an alias to the original instance.
-
- <table width="100%" bgcolor="lightgrey"><tr><td><font size="-1"><pre>
--struct = uno.createIdlStruct( "com.sun.star.beans.PropertyValue" )
-+struct = uno.createUnoStruct( "com.sun.star.beans.PropertyValue" )
-
- struct.Name = "foo"
- struct2 = struct
-@@ -1000,101 +1050,6 @@ supported interfaces, supported methods
- </table>
-
-
--<a name="tips"><h3> General tips and known issues </h3></a>
--
--<ul>
--<li> When you package your code as a python component, there is
-- currently a bug which lets the office crash in case you have
-- any syntax error in your code, see
--
-- <a href="http://www.openoffice.org/issues/show_bug.cgi?id=13377">
-- http://www.openoffice.org/issues/show_bug.cgi?id=13377</a>.
--
-- You may workaround this bug by adding a <code>try: except:</code> level
-- in your trigger code.
--
--<li> The semantics of the OpenOffice API is a very complex topic, which can't be
-- discussed in this python document. Try to gather information from other
-- resources, especially from the developer manual (see below). Most sample
-- code you find there is written in Java. It is not so difficult to translate
-- java code to python, when you know the following differences:
-- <p>
--
-- In python you don't need <code>queryInterface</code>. E.g. Java code like
--
--<table width="100%" bgcolor="lightgrey"><tr><td><font size="-1"><pre>
-- oInterface = (XInterface) oMSF.createInstance(
-- "com.sun.star.frame.Desktop" );
-- oCLoader = ( XComponentLoader ) UnoRuntime.queryInterface(
-- XComponentLoader.class, oInterface );
-- PropertyValue [] szEmptyArgs = new PropertyValue [0];
-- aDoc = oCLoader.loadComponentFromURL(
-- "private:factory/swriter" , "_blank", 0, szEmptyArgs );
--</pre></font></td></tr></table>
--
-- becomes in python simply
--
--<table width="100%" bgcolor="lightgrey"><tr><td><font size="-1"><pre>
-- oCLoader = oMSF.createInstance( "com.sun.star.frame.Desktop" )
-- aDoc = oCLoader.loadComponentFromURL(
-- "private:factory/swriter", "_blank", 0, () )
--</pre></font></td></tr></table>
-- . You don't need this intermediate oInterface variable anymore.
-- So, here python code simplifies a lot, with a little training, one
-- shouldn't have too many problems to translate java to python code.
--
--<li> There are some places, where the loss in type safety leads to difficulties,
-- as e.g. bug
-- <a href="http://www.openoffice.org/issues/show_bug.cgi?id=12504">
-- http://www.openoffice.org/issues/show_bug.cgi?id=12504</a>. The problem
-- here is, that the C++ implementation within the office expects a
-- <code>sequence&lt; PropertyValue &gt;</code>, while the PyUNO runtime
-- converts it to a <code>sequence&lt; any&gt;</code>, where each <code>any</code>
-- contains a <code>PropertyValue</code>. In my eyes, this is a bug within
-- the C++ code. There is has been added a workaround to pyuno.
-- See the below sample:
--
--<table width="100%" bgcolor="lightgrey"><tr><td><font size="-1"><pre>
--import uno
--import unohelper
--
--localContext = uno.getComponentContext()
--
--resolver = localContext.ServiceManager.createInstanceWithContext(
-- "com.sun.star.bridge.UnoUrlResolver", localContext)
--ctx = resolver.resolve(
-- "uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext")
--smgr= ctx.ServiceManager
--desktop = smgr.createInstanceWithContext("com.sun.star.frame.Desktop",ctx)
--doc = desktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, ())
--
--style = doc.createInstance("com.sun.star.style.NumberingStyle")
--family = doc.getStyleFamilies().getByName('NumberingStyles')
--family.insertByName('List test', style)
--
--rule = style.getPropertyValue('NumberingRules')
--level = rule.getByIndex(0)
--
--# the normal call would have been:
--# rule.replaceByIndex( 0, level )
--# but this will end up in a excpetion
--# magic to pass the exact type to the callee
--uno.invoke( rule , "replaceByIndex", (0, uno.Any("[]com.sun.star.beans.PropertyValue",level)) )
--</pre></font></td></tr></table>
--
--<p>This is the only place, where the uno.Any is used. Using the uno.Any in normal
--calls will lead to RuntimeExceptions. A python uno object implementation will never
--receive an instance of uno.Any() as a incoming parameter, instead always the value within the
--is passed.
--
--<p> This solution looks really ugly, but it allows you to continue, where you otherwise
--can only give up or switch to another implementation language.
--
-- <p> Problems like above are not very frequently found, but in case they
-- hit you, there is not much you can do, this API is then locked up
-- for the python programmer.
--
--</ul>
-
- <a name="dependencies"><h2> Dependencies</h2></a>
- This chapter is most interesting for people who want to use the Python-UNO bridge
-@@ -1186,7 +1141,7 @@ ret,seq = pipe.readBytes( None, 3 )
-
-
-
--<a name="source"><h2> Building from source</h4></a>
-+<a name="source"><h2> Building from source</h2></a>
- The Python-UNO Bridge consists of two source modules,
-
- <ol>
-@@ -1231,7 +1186,7 @@ using dmake runtest, you shouldn't get a
- <a name="replacing"><h2>Replacing the default python core with your system's python installation</h2></a>
- OOo by default ships with the Python-2.2.2 core runtime. This is fine for most
- users, but some hackers may want to replace the runtime with either a newer python
--runtime (e.g. Python-2.3a) or with the python system's installation, which e.g.
-+runtime (e.g. Python-2.3) or with the python system's installation, which e.g.
- may contain more optional packages, which you also want to use in python.
-
- <p>This shall not be a full explanation, on how you can exchange the python runtime. Also
-@@ -1244,7 +1199,7 @@ help you doing this.
- directory and the python shared library in the program directory itself.
- <li> On unix systems, python itself is linked to the compilers standard C++ library.
- In most cases, this requires, that python and office must be built with the
-- the same C++ compiler. For the standard OpenOffic.org build, this is the gcc-3.0.3
-+ the same C++ compiler. For the standard OpenOffic.org build, this is the GCC 3.2.2
- (at the time of writing this document). Other builds may use different
- compilers.
- <li> On some unix distributions, no libpython.so gets build, you need to do this yourself
-@@ -1253,89 +1208,123 @@ directory and the python shared library
- tested.
- </ul>
-
--<a name="changes"><h2> Changes </h2></a>
--<ul>
--<li> Version OO1.1
--<pre>
-- As PyUNO is now packaged with OpenOffice.org itself, it carries
-- now the identical version number as OOo itself.
-+<a name="scripting-framework"><h2>Support for the new scripting framework</h2></a>
-+There is now a uno-package available, which allows the support of the new scripting
-+framework for OpenOffice.org 2.0. It is included in the <a href="#download">above download</a>
-+. It allows to execute python scripts in the new framework.
-+This paragraph shall just explain how to install and use the python part of the new
-+framework, it shall not explain the framework itself.
-
-- changes:
-- - You get now readable python stacktraces, when e.g. from StarBasic a
-- python method is called, which throws an exception.
-- - The python component loader supports additionally to the vnd.openoffice.pymodule)
-- the file and the vnd.sun.star.expand protocol.
-- - Python UNO components can now be added to UNO packages.
-- - #i12504# UNO any handling has been added, it is now possible
-- to pass uno.Any with a distinict type to the caller. The syntax for this is really
-- ugly, it should only be used in cases, where the usual callee code does not
-- correctly convert the incoming parameter (see the new any row in the
-- uno type table).
-- - unohelper.inspect has been added. This functions inspects a uno object
-- and dumps all known reflection information like supported services,
-- interfaces, methods and properties. Nice debugging tool.
-+<h3> Installation</h3>
-+<ol>
-+<li> Install an OpenOffice.org 1.1rc or newer with PyUNO activated
-+ ( see <a href="install">above</a> ).
-
--</pre>
-+<li> Install the <a href="http://framework.openoffice.org/scripting">scripting framework</a>
-+(tested with version 0.3)
-+
-+<li> Copy the file scriptrt4python-0.1.0.zip into
-+ &lt;office-install&gt;/user/uno_packages
-
--<li> Version 0.9.3<p>
-+<li> run pkgchk in &lt;office-install&gt;/program
-+
-+<li> Deploy the sample script stored in the
-+ samples/hello-framework-python.sxp parcel into the office
-+ (e.g. with the scripting-framework CommandLineTools, for example
-+<p>
- <pre>
-- changes:
-- - pyuno now runs on the OO1.1beta version
-- (use older versions for OO643C).
--
-- fixed bugs:
-- - #i12613# setPropertyValue('ParaAdjust', 1) does not set ParaAdjust
-- ( python longs are now treated like python integers, when they are converted
-- to UNO [narrowing to the smallest possible UNO value])
-- - #i12673# Cosmetic and other changes to uno.py
-- ( Patch by Christian Zagrodnick )
-+ java CommandLineTools -d hello-framework-python.sxp \
-+ /usr/local/joerg/OpenOffice.org1.1/user/Scripts
- </pre>
--</li>
--<li> Version 0.9.2<p>
--<pre>
-- fixed bugs:
-- - #i11487# PyUNO interfaces are not transitive
-- - python list aren't accepted anymore in place of UNO
-- sequences. Only tuples are accepted.
-- - unicode string conversions should now also work on systems
-- where sizeof( wchar_t ) == 4
--
-- changes:
-- - The source is now available from the OOo CVS repository.
-- - uno.ByteSequence (idl sequence<byte>) is now treated
-- differently than before (this is an incompatible change).
-- See documentation for more information)
-- - file url conversion routines added (API calls need file urls)
-- ( unohelper.systemPathToFileUrl(), unohelper.fileUrlToSystemPath(),
-- unohelper.absolutize())
-- - added two more samples.
-- * ooextract.py extracts pure text from a given OOo document
-- and dumps it on stdout (which allows you to grep through
-- OOo documents :o) )
--
-- * biblioaccess.py is a small example showing how
-- to access the database API within OOo.
-- - uno.Bool is now deprecated, instead python True and False
-- are used.
--
-- changes in source distribution:
-- - build -i for the windows python build is not
-- necessary anymore.
-- - Build environment has changed. Only the d.lst and the
-- makefile in the python module depends now on the concrete
-- used python version. This should make python version
-- changes easier in future.
--
-- changes in binary distribution:
-- - pyuno ships now with a precompiled python runtime.
-- This is necessary, because pyuno and python must
-- be compiled with the same compiler version of gcc
-- on unix platforms.
-- - therefor, pyuno's environment files pyunoenv.[bat|tcsh]
-- have simplified a little.
-+ ).
-+</ol>
-+
-+
-+<h3> Deinstallation </h3>
-+
-+<ol>
-+<li> Uninstall the hello-framework-python.sxp
-+<li> delete the file &lt;office-install&gt;/user/uno_packages/scriptrt4python-0.1.0.zip
-+<li> run pkchk
-+</ol>
-+
-+<h3> Writing your own scripts</h3>
-+You can write scripts simply by defining python functions. You can
-+have multiple functions within one file, but the file must be selfcontained
-+meaning that it may only reference the core python library but not any self written
-+scripting files (may be a future extension).
-+
-+<p>
-+Below you can find the sample script, which just pastes a
-+'Hello Scriptingframework' into the current document. The following
-+script is stored as <code>HelloFramework.py</code>.
-+
-+<table width="100%" bgcolor="lightgrey"><tr><td><font size="-1"><pre>
-+# Sample python script for the scripting framework
-+
-+# scriptCtx supports getDocument(), getComponentContext(), getDesktop()
-+def Hello( scriptCtx ):
-+ print "entering HelloFramework.Hello"
-+
-+ model = scriptCtx.getDocument()
-+
-+ # access the document's text property
-+ text = model.Text
-+
-+ # create a cursor
-+ cursor = text.createTextCursor()
-+
-+ # insert the text into the document
-+ text.insertString( cursor, "Hello Scriptingframework", 0 )
-+
-+ return None
-+</pre></font></td></tr></table>
-+
-+Beside the script file you must provide a <code>parcel-descriptor.xml</code>
-+file which describes all functions, that shall be callable fromt the office.
-+Here is the sample file for the above script.
-+
-+<table width="100%" bgcolor="lightgrey"><tr><td><font size="-1"><pre>
-+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-+&lt;parcel language="Python" xmlns:parcel="scripting.dtd"&gt;
-+ &lt;script language="Python"&gt;
-+ &lt;locale lang="en"&gt;
-+ &lt;displayname value="HelloFramework.Hello"/&gt;
-+ &lt;description&gt;
-+ Prints a 'Hello Framework' into the current document
-+ &lt;/description&gt;
-+ &lt;/locale&gt;
-+ &lt;functionname value="HelloFramework.Hello"/&gt;
-+ &lt;logicalname value="HelloFramework.Hello"/&gt;
-+ &lt;/script&gt;
-+&lt;/parcel&gt;
-+</pre></font></td></tr></table>
-+
-+Note, that the each reference to the script must be written as
-+<code>&lt;source-file-name-without-.py&gt;.&lt;function-name&gt;</code>.
-+
-+<p>
-+The function gets called with a XScriptContext implementation as the first parameter.
-+It provides the UNO component context (getComponentContext()), the desktop
-+(getDesktop()) and the current document model (getDocument()) (if any).
-+
-+<p>
-+Zip these two files as a .sxp file and deploy it into the office using
-+the scripting frameworks commandlinetool. When you restart the office, you
-+should be able to select the new script in the scriptinframework's dialogs.
-+
-+<p>
-+Things to keep in mind:
-+<ul>
-+<li> each function must leave with <code>return None</code></a>
-+<li> live editing while the office is running is possible (when you edit
-+ the file at the place, where the CommandLineTool deploys it)
-+<li> performance is poor (script is recompiled for every execution), no caching </li>
-+<li> interface to the script may change in future releases
-+(e.g. the first parameter of the function)
-+<li> error messages are currently printed to stderr (only readable
-+on unix systems)
-
--</pre>
--</li>
- </ul>
-
-
-@@ -1360,6 +1349,272 @@ directory and the python shared library
-
- </table>
-
-+
-+
-+<a name="faq"><h2>Frequently Asked Questions </h2></a>
-+
-+<ol>
-+
-+<li> <h4> Why do I get a 'bus error' when starting the hello-world-script on solaris ?</h4>
-+There seems to be a corrupted version of the libpyuno.so in the OpenOffice.org1.1.0
-+installation set. The reason is not yet clear, might be either a bug in pyuno code or
-+a build error. Please download <a href="libpyuno.so.gz">libpyuno.so.gz</a>
-+to patch OOo1.1.0 version (do not apply
-+this patch on any other version than OOo1.1.0 solaris sparc!).
-+
-+
-+
-+<li> <h4> Why do I get a 'SystemError: pyuno runtime is not initialized, ...' when starting the script ?</h4>
-+<ul>
-+
-+<li> Pyuno was not installed correctly (OO1.1RC2 and earlier, fixed with RC3). Please check
-+<p>
-+<code>&lt;openoffice-install&gt;/program $ ls -c1d py*</code>
-+<pre>
-+ pyunorc
-+ pythonloader.py
-+ pythonloader.unorc
-+ python
-+ python.sh
-+ python-core
-+ python-core-2.2.2
-+ pythonloader.uno.so
-+ pyuno.so
-+</pre>
-+
-+ Under certain circumstances, it may occur, that the following ini files are missing
-+
-+ <p>
-+pyunorc (or pyuno.ini on windows):
-+<table width="100%" bgcolor="lightgrey"><tr><td><font size="-1"><pre>
-+[Bootstrap]
-+UNO_TYPES=$ORIGIN/types.rdb
-+UNO_SERVICES=$ORIGIN/services.rdb
-+</pre></font></td></tr></table>
-+
-+<p>
-+pythonloader.unorc (or pythonloader.unorc on windows):
-+<table width="100%" bgcolor="lightgrey"><tr><td><font size="-1"><pre>
-+[Bootstrap]
-+PYTHONHOME=$ORIGIN/python-core
-+PYTHONPATH=$ORIGIN/python-core/lib $ORIGIN/python-core/lib/lib-dynload $ORIGIN
-+</pre></font></td></tr></table>
-+Simply cut and paste them into a texteditor to create them.
-+
-+<li> There have been reported some failures with the above error message, which have not been
-+ resolved yet. You may e.g. want to follow
-+ <a href="http://www.openoffice.org/issues/show_bug.cgi?id=17339">#i17339#</a>.
-+</ul>
-+
-+<li> <h4>Why do I get a 'SystemError: _PyImport_FixupExtension: module pyuno not loaded' when starting the script ? </h4>
-+
-+This in general happens, when you still start the system's python installation.
-+OpenOffice.org ships a python installation (because python and the office must
-+have been built with the identical compiler version).
-+Please check this with 'which python'. Simply address OpenOffice.org's python absolutely, e.g. use
-+/usr/local/OpenOffice.org1.1/program/python myscript.py.
-+
-+<li> <h4>Why do I get a "error: python-loader:'No module named pythonloader'" when running pkgchk with a python component ?</h4>
-+ Make sure to unset PYTHONPATH and PYTHONHOME (which you may have set, because you have
-+ an own python installed on your system) environment variables before running
-+ soffice AND pkgchk. This is a workaround, it is currently thought about a better
-+ solution.
-+
-+
-+<li> <h4>Why do I get an error message 'msvcr70.dll or python22.dll not found' when starting python ?<br>
-+ (or Why do I get an 'error while loading shared libraries: libstdc++.so.x' ? )
-+</h4>
-+You probably try to start python from e.g. c:\program files\OpenOffice.org1.1\program\python-runtime\bin\python.exe, but you have to use c:\program files\OpenOffice.org1.1\program\python.bat.
-+
-+
-+<li> <h4>Why do I get 'PYTHONPATH=... is not an identifier' when starting python ?</h4>
-+ This is a bug in the python script which occurs with older bash shell versions. Simply
-+ use a text editor to change the following lines in the OOo-install/program/python.sh script
-+
-+<table width="100%" bgcolor="lightgrey"><tr><td><font size="-1"><pre>
-+export PYTHONPATH="$sd_prog":"$sd_prog/python-core/lib":"$sd_prog/python-core/lib/lib-dynload":"$PYTHONPATH"
-+export PYTHONHOME="$sd_prog"/python-core
-+</pre></font></td></tr></table>
-+
-+to
-+
-+<table width="100%" bgcolor="lightgrey"><tr><td><font size="-1"><pre>
-+PYTHONPATH="$sd_prog":"$sd_prog/python-core/lib":"$sd_prog/python-core/lib/lib-dynload":"$PYTHONPATH"
-+export PYTHONPATH
-+PYTHONHOME="$sd_prog"/python-core
-+export PYTHONHOME
-+</pre></font></td></tr></table>
-+
-+. This bug is fixed with OOo 1.1.1.
-+
-+
-+<li> <h4>I already have python installed on my system, why does the office ship another python ? </h4>
-+ Python itself is shipped with OpenOffice.org, because
-+ <ul>
-+ <li> python must have been compiled with the same C++ compiler as the office itself on
-+ all platforms that use the gcc compiler (e.g. linux, bsd, etc.).
-+ <li> On most unix platforms, no python shared libraries are available by default
-+ (though some distributions do so). This would have meant, that python UNO
-+ components cannot be executed within the office process.
-+ <li> Python component developers need a minimal platform, which they can rely on.
-+ <li> Recognition of a python runtime at the installation system would have been an
-+ extremly difficult and time consuming task as so many different python
-+ installation schemes exist.
-+ </ul>
-+
-+<li> <h4>Can I use system's python installation ? </h4>
-+ In general this is possible on unix like systems, but needs a lot of work. Have a look at
-+ <a href="#replacing">this paragraph</a> to understand the basic ideas.
-+ On windows, this is only possible, when you relink pyuno itself, which means that
-+ you need to use the OOo build environment to do this.
-+
-+<li> <h4>Why crashes the office with a self written UNO component, while
-+ the sample UNO component runs fine ? </h4>
-+
-+ There is a known bug in the office, see
-+
-+ <a href="http://www.openoffice.org/issues/show_bug.cgi?id=13377">
-+ #i13377#</a>, which was not fixed for OpenOffice.org1.1.
-+ The office in general crashes, when the python script lead to an unhandled exception
-+ (e.g. attribute error etc.).
-+
-+ <p>
-+ You may try to workaround this bug by adding a <code>try: except:</code> level
-+ in your trigger() implementation, which dumps an error message to stdout/stderr, but
-+ sadly this will not help in all cases (e.g. compilation failure for some reason :o( ).
-+
-+ <p> Of course, there may be other reasons for a crash, you will only know, when you
-+ try to retrieve a native callstack (e.g. using the gdb).
-+
-+<li> <h4> Why don't work Python's xml parser (expat) and the zip module for me ?</h4>
-+ These libraries don't yet get built for OOo1.1. This will change for OOo2.0. Alternatively
-+ you may use OpenOffice.org's xml parser service (see service com.sun.star.xml.sax.Parser)
-+ or the zip content provider
-+ (see <a href="http://ucb.openoffice.org"> http://ucb.openoffice.org</a>).
-+
-+<li> <h4> Why do not work socket and sre module in OOo1.1. python distribution on windows ?</h4>
-+ This is a known bug on windows in the OOo1.1 build. This should be fixed for OOo1.1.1
-+ (see issue <a href="http://www.openoffice.org/issues/show_bug.cgi?id=21281">21281</a> ).
-+ It should work for the other platforms. You can workaround this by downloading the
-+ officical windows python distribution
-+ (see <a href="http://www.python.org">http://www.python.org</a>) and replacing the
-+ appropriate .pyd files in the OOo's python installation.
-+
-+<li> <h4>The samples are running fine, but how do I get more information about the API ?</h4>
-+
-+ The semantics of the OpenOffice API is a very complex topic, which can't be
-+ discussed in this python document. Try to gather information from other
-+ resources, especially from the developer manual (see <a href="#references#">below</a>).
-+<li> <h4>Most examples in the devguide are in Java. How do I translate them to python code ?</h4>
-+ Most sample code you find there is written in Java. It is not so difficult to translate
-+ java code to python, when you know the following differences:
-+ <p>
-+
-+ In python you don't need <code>queryInterface</code>. E.g. Java code like
-+
-+<table width="100%" bgcolor="lightgrey"><tr><td><font size="-1"><pre>
-+ oInterface = (XInterface) oMSF.createInstance(
-+ "com.sun.star.frame.Desktop" );
-+ oCLoader = ( XComponentLoader ) UnoRuntime.queryInterface(
-+ XComponentLoader.class, oInterface );
-+ PropertyValue [] szEmptyArgs = new PropertyValue [0];
-+ aDoc = oCLoader.loadComponentFromURL(
-+ "private:factory/swriter" , "_blank", 0, szEmptyArgs );
-+</pre></font></td></tr></table>
-+
-+ becomes in python simply
-+
-+<table width="100%" bgcolor="lightgrey"><tr><td><font size="-1"><pre>
-+ oCLoader = oMSF.createInstance( "com.sun.star.frame.Desktop" )
-+ aDoc = oCLoader.loadComponentFromURL(
-+ "private:factory/swriter", "_blank", 0, () )
-+</pre></font></td></tr></table>
-+ . You don't need this intermediate oInterface variable anymore.
-+ So, here python code simplifies a lot, with a little training, one
-+ shouldn't have too many problems to translate java to python code.
-+
-+<li> <h4>Why can't I call the print method ?</h4>
-+ In python, 'print' is a very basic method for every object, which cannot
-+ be overriden so easily. E.g. the below code does not work.
-+
-+<pre>
-+ doc = desktop.loadComponentFromURL(infileurl, "_blank", 0, ())
-+ doc.storeAsURL(outfileurl, ())
-+ doc.print( () )
-+</pre>
-+ You can workaround the problem by using the <code>uno.invoke()</code>
-+ function like below :
-+<pre>
-+ uno.invoke( doc , "print" , ( (), ) )
-+</pre>
-+
-+<li> <h4>Why can't I do a replace on the 'NumberingRules' object ? </h4>
-+
-+ There are some places, where the loss in type safety leads to difficulties,
-+ as e.g. bug
-+ <a href="http://www.openoffice.org/issues/show_bug.cgi?id=12504">
-+ http://www.openoffice.org/issues/show_bug.cgi?id=12504</a>. The problem
-+ here is, that the C++ implementation within the office expects a
-+ <code>sequence&lt; PropertyValue &gt;</code>, while the PyUNO runtime
-+ converts it to a <code>sequence&lt; any&gt;</code>, where each <code>any</code>
-+ contains a <code>PropertyValue</code>. In my eyes, this is a bug within
-+ the C++ code. However, there has been added a workaround for pyuno, which the
-+ scripter can use.
-+ See the below sample:
-+
-+<table width="100%" bgcolor="lightgrey"><tr><td><font size="-1"><pre>
-+import uno
-+import unohelper
-+
-+localContext = uno.getComponentContext()
-+
-+resolver = localContext.ServiceManager.createInstanceWithContext(
-+ "com.sun.star.bridge.UnoUrlResolver", localContext)
-+ctx = resolver.resolve(
-+ "uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext")
-+smgr= ctx.ServiceManager
-+desktop = smgr.createInstanceWithContext("com.sun.star.frame.Desktop",ctx)
-+doc = desktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, ())
-+
-+style = doc.createInstance("com.sun.star.style.NumberingStyle")
-+family = doc.getStyleFamilies().getByName('NumberingStyles')
-+family.insertByName('List test', style)
-+
-+rule = style.getPropertyValue('NumberingRules')
-+level = rule.getByIndex(0)
-+
-+# the normal call would have been:
-+# rule.replaceByIndex( 0, level )
-+# but this will end up in a excpetion
-+# magic to pass the exact type to the callee
-+uno.invoke( rule , "replaceByIndex", (0, uno.Any("[]com.sun.star.beans.PropertyValue",level)) )
-+</pre></font></td></tr></table>
-+
-+<p>This is the only place, where the uno.Any is used. Using the uno.Any in normal
-+calls will lead to RuntimeExceptions. A python uno object implementation will never
-+receive an instance of uno.Any() as a incoming parameter, instead always the value within the
-+is passed.
-+
-+<p> This solution looks really ugly, but it allows you to continue, where you otherwise
-+can only give up or switch to another implementation language.
-+
-+
-+<li> <h4>How can I activate encoding iso8859-1 for OpenOffice.org's python installation ?</h4>
-+In the &lt;openoffice-install&gt;/program/python-core/lib/site.py file, you can replace the line
-+
-+<pre>
-+encoding = "ascii" # Default value set by _PyUnicode_Init()
-+</pre>
-+
-+with
-+<pre>
-+encoding = "is8859-1" # Default value set by _PyUnicode_Init()
-+</pre>
-+(or any other encoding you wish). However, note that this is a per installation configuration.
-+It would be better to do the necessary conversions explicitly in the code.
-+
-+</ol>
-+
- <a name="authors"><h2> Authors </h2></a>
- The UNO python bridge was initially created by <a href="mailto:ralpht@sgi.com">Ralph Thomas</a>
- and is now
diff --git a/patches/src680/qilinux-splash.diff b/patches/src680/qilinux-splash.diff
deleted file mode 100644
index 7691dde4b..000000000
--- a/patches/src680/qilinux-splash.diff
+++ /dev/null
@@ -1,43 +0,0 @@
-Index: svx/prj/d.lst
-===================================================================
-RCS file: /cvs/graphics/svx/prj/d.lst,v
-retrieving revision 1.108
-diff -u -r1.108 d.lst
---- svx/prj/d.lst 9 Dec 2004 16:36:45 -0000 1.108
-+++ svx/prj/d.lst 16 Dec 2004 12:43:47 -0000
-@@ -55,7 +55,7 @@
- ..\res\cjkintro.bmp %COMMON_DEST%\pck%_EXT%\starsuite_bitmap\intro.bmp
- ..\res\ofaabout.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\about.bmp
- ..\res\soffice.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\intro.bmp
--..\res\ooointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro.bmp
-+..\res\openintro_qilinux.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro.bmp
- ..\res\ooonologointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\nologointro.bmp
-
- mkdir: %_DEST%\inc%_EXT%\svx
-Index: svx/source/intro/ooo.src
-===================================================================
-RCS file: /cvs/graphics/svx/source/intro/ooo.src,v
-retrieving revision 1.11
-diff -u -r1.11 ooo.src
---- svx/source/intro/ooo.src 7 Jan 2005 09:49:30 -0000 1.11
-+++ svx/source/intro/ooo.src 1 Feb 2005 16:48:49 -0000
-@@ -74,8 +74,8 @@
- #include "svxids.hrc"
- #include "intro.hrc"
-
--#ifdef BUILD_SPECIAL
--#define OOO_VENDOR "Sun Microsystems Inc."
-+#if 1
-+#define OOO_VENDOR "QiLinux"
- #else
- //#define OOO_VENDOR "my company"
- #endif
-@@ -84,7 +84,7 @@
-
- Bitmap RID_DEFAULT_ABOUT_BMP_LOGO
- {
-- File = "openabout.bmp" ;
-+ File = "openabout_qilinux.bmp" ;
- };
-
- String RID_APPTITLE
diff --git a/patches/src680/qpro-build.diff b/patches/src680/qpro-build.diff
deleted file mode 100644
index 0886ed00c..000000000
--- a/patches/src680/qpro-build.diff
+++ /dev/null
@@ -1,140 +0,0 @@
---- sc/util/makefile.mk.bak 2005-01-06 10:10:04.462086872 +0530
-+++ sc/util/makefile.mk 2005-01-03 15:55:18.000000000 +0530
-@@ -210,6 +210,7 @@
- $(SLB)$/xcl97.lib \
- $(SLB)$/html.lib \
- $(SLB)$/lotus.lib \
-+ $(SLB)$/qpro.lib\
- $(SLB)$/rtf.lib \
- $(SLB)$/xml.lib \
- $(SLB)$/accessibility.lib \
-@@ -323,3 +324,4 @@
- .INCLUDE : target.mk
-
-
-+
-
---- sc/prj/build.lst 3 Feb 2004 20:23:58 -0000 1.9
-+++ sc/prj/build.lst 28 Jul 2005 09:09:08 -0000
-@@ -11,6 +11,7 @@
- sc sc\source\filter\inc get - all sc_fiinc NULL
- sc sc\addin\inc get - all sc_adinc NULL
- sc sc\sdi nmake - all sc_sdi NULL
-+sc sc\source\ui\vba nmake - all sc_vba sc_sdi NULL
- sc sc\source\ui\Accessibility nmake - all sc_acc sc_sdi NULL
- sc sc\source\ui\pch get - all sc_upch sc_sdi NULL
- sc sc\source\ui\view nmake - all sc_view sc_sdi NULL
-@@ -38,6 +39,7 @@
- sc sc\source\filter\pch get - all sc_fpch sc_sdi NULL
- sc sc\source\filter\excel nmake - all sc_excel sc_sdi NULL
- sc sc\source\filter\lotus nmake - all sc_lotus sc_sdi NULL
-+sc sc\source\filter\qpro nmake - all sc_qpro sc_sdi NULL
- sc sc\source\filter\starcalc nmake - all sc_scalc sc_sdi NULL
- sc sc\source\filter\dif nmake - all sc_dif sc_sdi NULL
- sc sc\source\filter\rtf nmake - all sc_rtf sc_sdi NULL
-@@ -47,4 +49,4 @@
- sc sc\addin\datefunc nmake - all sc_addfu sc_sdi NULL
- sc sc\addin\rot13 nmake - all sc_adrot sc_sdi NULL
- sc sc\addin\util nmake - all sc_adutil sc_addfu sc_adrot sc_sdi NULL
--sc sc\util nmake - all sc_util sc_addfu sc_adrot sc_adutil sc_app sc_attr sc_cctrl sc_cosrc sc_data sc_dbgui sc_dif sc_docsh sc_drfnc sc_excel sc_form sc_html sc_lotus sc_misc sc_name sc_nvipi sc_opt sc_page sc_rtf sc_scalc sc_style sc_tool sc_uisrc sc_undo sc_unobj sc_view sc_xcl97 sc_xml sc_acc sc_ftools NULL
-+sc sc\util nmake - all sc_util sc_addfu sc_adrot sc_adutil sc_app sc_attr sc_cctrl sc_cosrc sc_data sc_dbgui sc_dif sc_docsh sc_drfnc sc_excel sc_form sc_html sc_lotus sc_qpro sc_misc sc_name sc_nvipi sc_opt sc_page sc_rtf sc_scalc sc_style sc_tool sc_uisrc sc_undo sc_unobj sc_view sc_xcl97 sc_xml sc_acc sc_ftools sc_vba NULL
-
---- sc/source/filter/qpro/makefile.mk 2004-08-25 23:04:59.000000000 +0530
-+++ sc/source/filter/qpro/makefile.mk 2005-01-03 11:57:08.000000000 +0530
-@@ -0,0 +1,96 @@
-+#CSfile: qpro-build.diff,v $
-+#
-+# $Revision$
-+#
-+# last change: $Author$ $Date$
-+#
-+# The Contents of this file are made available subject to the terms of
-+# either of the following licenses
-+#
-+# - GNU Lesser General Public License Version 2.1
-+# - Sun Industry Standards Source License Version 1.1
-+#
-+# Sun Microsystems Inc., October, 2000
-+#
-+# GNU Lesser General Public License Version 2.1
-+# =============================================
-+# Copyright 2000 by Sun Microsystems, Inc.
-+# 901 San Antonio Road, Palo Alto, CA 94303, USA
-+#
-+# This library is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU Lesser General Public
-+# License version 2.1, as published by the Free Software Foundation.
-+#
-+# This library 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 for more details.
-+#
-+# You should have received a copy of the GNU Lesser General Public
-+# License along with this library; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+# MA 02111-1307 USA
-+#
-+#
-+# Sun Industry Standards Source License Version 1.1
-+# =================================================
-+# The contents of this file are subject to the Sun Industry Standards
-+# Source License Version 1.1 (the "License"); You may not use this file
-+# except in compliance with the License. You may obtain a copy of the
-+# License at http://www.openoffice.org/license.html.
-+#
-+# Software provided under this License is provided on an "AS IS" basis,
-+# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+# See the License for the specific provisions governing your rights and
-+# obligations concerning the Software.
-+#
-+# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+#
-+# Copyright: 2000 by Sun Microsystems, Inc.
-+#
-+# All Rights Reserved.
-+#
-+# Contributor(s): _______________________________________
-+#
-+#
-+#
-+#*************************************************************************
-+
-+PRJ=..$/..$/..
-+
-+PRJNAME=sc
-+TARGET=qpro
-+
-+PROJECTPCH4DLL=TRUE
-+PROJECTPCH=filt_pch
-+PROJECTPCHSOURCE=..\pch\filt_pch
-+
-+AUTOSEG=true
-+
-+
-+# --- Settings -----------------------------------------------------
-+
-+.INCLUDE : scpre.mk
-+.INCLUDE : settings.mk
-+.INCLUDE : sc.mk
-+.INCLUDE : $(PRJ)$/util$/makefile.pmk
-+
-+# --- Files --------------------------------------------------------
-+
-+CXXFILES = \
-+ qpro.cxx \
-+ qproform.cxx \
-+ qprostyle.cxx \
-+ biff.cxx
-+
-+SLOFILES = \
-+ $(SLO)$/qpro.obj \
-+ $(SLO)$/qproform.obj \
-+ $(SLO)$/qprostyle.obj \
-+ $(SLO)$/biff.obj
-+# --- Tagets -------------------------------------------------------
-+
-+.INCLUDE : target.mk
-+
diff --git a/patches/src680/qpro-cxx.diff b/patches/src680/qpro-cxx.diff
deleted file mode 100644
index 27410c023..000000000
--- a/patches/src680/qpro-cxx.diff
+++ /dev/null
@@ -1,259 +0,0 @@
---- /dev/null 2004-07-26 17:21:14.000000000 +0530
-+++ sc/source/filter/qpro/qpro.cxx 2005-05-31 12:57:52.000000000 +0530
-@@ -0,0 +1,256 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include <sal/config.h>
-+#include <stdio.h>
-+#include <sfx2/docfile.hxx>
-+
-+#include "qproform.hxx"
-+#include "qpro.hxx"
-+#include "qprostyle.hxx"
-+
-+#include "global.hxx"
-+#include "scerrors.hxx"
-+#include "docpool.hxx"
-+#include "patattr.hxx"
-+#include "filter.hxx"
-+#include "document.hxx"
-+#include "cell.hxx"
-+#include "biff.hxx"
-+#include <tools/stream.hxx>
-+
-+FltError ScQProReader::readSheet( sal_uInt16 nTab, ScDocument* pDoc )
-+{
-+ sal_uInt8 nCol, nDummy;
-+ sal_uInt16 nRow;
-+ sal_uInt16 nStyle;
-+ bool bEndOfSheet = false;
-+
-+#ifdef DEBUG
-+ fprintf( stderr, "Read sheet (%d)\n", nTab );
-+#endif
-+
-+ while( !bEndOfSheet && nextRecord() )
-+ {
-+ switch( getId() )
-+ {
-+ case 0x000f:{ // Label cell
-+ String aLabel;
-+ *mpStream >> nCol >> nDummy >> nRow >> nStyle >> nDummy;
-+ readString( aLabel, getLength() - 7 );
-+ nStyle = nStyle >> 3;
-+ getStyleElement()->SetFormat( pDoc, nCol, nRow, nTab, nStyle );
-+ pDoc->PutCell( nCol, nRow, nTab, new ScStringCell( aLabel ), (BOOL) TRUE );
-+ }
-+ break;
-+
-+ case 0x00cb: // End of sheet
-+ bEndOfSheet = true;
-+ break;
-+
-+ case 0x000c: // Blank cell
-+ *mpStream >> nCol >> nDummy >> nRow >> nStyle;
-+ nStyle = nStyle >> 3;
-+ getStyleElement()->SetFormat( pDoc, nCol, nRow, nTab, nStyle );
-+ break;
-+
-+ case 0x000d:{ // Integer cell
-+ sal_Int16 nValue;
-+ *mpStream >> nCol >> nDummy >> nRow >> nStyle >> nValue;
-+ ScValueCell* pInteger = new ScValueCell( ( double ) nValue );
-+ nStyle = nStyle >> 3;
-+ getStyleElement()->SetFormat( pDoc, nCol, nRow, nTab, nStyle );
-+ pDoc->PutCell(nCol ,nRow, nTab ,pInteger,(BOOL) TRUE);
-+ }
-+ break;
-+
-+ case 0x000e:{ // Floating point cell
-+ double nValue;
-+ *mpStream >> nCol >> nDummy >> nRow >> nStyle >> nValue;
-+ ScValueCell* pFloat = new ScValueCell( nValue );
-+ nStyle = nStyle >> 3;
-+ getStyleElement()->SetFormat( pDoc, nCol, nRow, nTab, nStyle );
-+ pDoc->PutCell( nCol, nRow, nTab, pFloat, (BOOL) TRUE );
-+ }
-+ break;
-+
-+ case 0x0010:{ // Formula cell
-+ double nValue;
-+ sal_uInt16 nState, nLen;
-+ *mpStream >> nCol >> nDummy >> nRow >> nStyle >> nValue >> nState >> nLen;
-+ ScAddress aAddr( nCol, nRow, nTab );
-+ const ScTokenArray *pArray;
-+ QProToSc aConv( *mpStream );
-+ aConv.Convert( pArray, nLen );
-+ ScFormulaCell *pFormula = new ScFormulaCell( pDoc, aAddr, pArray );
-+ nStyle = nStyle >> 3;
-+ pFormula->AddRecalcMode( RECALCMODE_ONLOAD_ONCE );
-+ getStyleElement()->SetFormat( pDoc, nCol, nRow, nTab, nStyle );
-+ pDoc->PutCell( nCol, nRow, nTab, pFormula, ( BOOL ) TRUE );
-+ }
-+ break;
-+ }
-+ }
-+ return eERR_OK;
-+}
-+
-+FltError ScImportQuattroPro( SfxMedium &rMedium, ScDocument *pDoc )
-+{
-+ FltError eRet = eERR_OK;
-+ ScQProReader aReader( rMedium, pDoc );
-+ eRet = aReader.import( pDoc );
-+ return eRet;
-+}
-+
-+ScQProReader::ScQProReader( SfxMedium &rMedium, ScDocument *pDoc ):
-+ ScBiffReader( rMedium ),
-+ aStyle()
-+{
-+}
-+
-+FltError ScQProReader::import( ScDocument *pDoc )
-+{
-+ FltError eRet = eERR_OK;
-+ sal_uInt16 nVersion;
-+ int i = 1 , j = 1;
-+ int nTab = 0;
-+ SetEof( FALSE );
-+
-+ if( !recordsLeft() )
-+ return eERR_OPEN;
-+
-+ while( nextRecord() && eRet == eERR_OK)
-+ {
-+ switch( getId() )
-+ {
-+ case 0x0000: // Begginning of file
-+ *mpStream >> nVersion;
-+ break;
-+
-+ case 0x00ca: // Beginning of sheet
-+ if( nTab < 26 )
-+ {
-+ String aName;
-+ aName.Append( sal_Unicode( 'A' + nTab ) );
-+ pDoc->InsertTab( nTab, aName );
-+ }
-+ eRet = readSheet( nTab, pDoc );
-+ nTab++;
-+ break;
-+
-+ case 0x0001: // End of file
-+ SetEof( TRUE );
-+ break;
-+
-+ case 0x00ce:{ // Attribute cell
-+ sal_uInt8 nFormat, nAlign, nFont;
-+ sal_Int16 nColor;
-+ *mpStream >> nFormat >> nAlign >> nColor >> nFont;
-+ getStyleElement()->setAlign( i, nAlign );
-+ getStyleElement()->setFont( i, nFont );
-+ i++;
-+ }
-+ break;
-+
-+ case 0x00cf:{ // Font description
-+ sal_uInt16 nPtSize, nFontAttr;
-+ String aLabel;
-+ *mpStream >> nPtSize >> nFontAttr;
-+ getStyleElement()->setFontRecord( j, nFontAttr );
-+ readString( aLabel, getLength() - 4 );
-+ getStyleElement()->setFontType( j, aLabel );
-+ j++;
-+ }
-+ break;
-+ }
-+ }
-+ getStyleElement()->setFontLimit( j );
-+ getStyleElement()->setAlignLimit( i );
-+ pDoc->CalcAfterLoad();
-+ return eRet;
-+}
-+
-+bool ScQProReader::recordsLeft()
-+{
-+ bool bValue = ScBiffReader::recordsLeft();
-+ return bValue;
-+}
-+
-+bool ScQProReader::IsEndOfFile()
-+{
-+ bool bValue = ScBiffReader::mbEndOfFile;
-+ return bValue;
-+}
-+
-+bool ScQProReader::nextRecord()
-+{
-+ bool bValue = ScBiffReader::nextRecord();
-+ return bValue;
-+}
-+
-+void ScQProReader::readString( String &rString, sal_uInt16 nLength )
-+{
-+ sal_Char* pText = new sal_Char[ nLength + 1 ];
-+ mpStream->Read( pText, nLength );
-+ pText[ nLength ] = 0;
-+ rString = String( pText, mpStream->GetStreamCharSet() );
-+ delete [] pText;
-+}
diff --git a/patches/src680/qpro-detect.diff b/patches/src680/qpro-detect.diff
deleted file mode 100644
index 1a999ac2a..000000000
--- a/patches/src680/qpro-detect.diff
+++ /dev/null
@@ -1,139 +0,0 @@
---- scdetect.cxx.bak 2005-01-05 18:33:21.677208880 +0530
-+++ sc/source/ui/unoobj/scdetect.cxx 2005-01-03 16:54:26.000000000 +0530
-@@ -176,6 +176,7 @@
- static const sal_Char __FAR_DATA pFilterXML[] = "StarOffice XML (Calc)";
- static const sal_Char __FAR_DATA pFilterAscii[] = "Text - txt - csv (StarCalc)";
- static const sal_Char __FAR_DATA pFilterLotus[] = "Lotus";
-+static const sal_Char __FAR_DATA pFilterQPro[] = "Quattro Pro";
- static const sal_Char __FAR_DATA pFilterExcel4[] = "MS Excel 4.0";
- static const sal_Char __FAR_DATA pFilterEx4Temp[] = "MS Excel 4.0 Vorlage/Template";
- static const sal_Char __FAR_DATA pFilterExcel5[] = "MS Excel 5.0/95";
-@@ -613,6 +614,13 @@
- 0x0004, 0x0000, // File Revision Subcode
- M_ENDE };
-
-+ const UINT16 pQPro[] =
-+ { 0x0000, 0x0000, 0x0002, 0x0000,
-+ M_ALT(4), 0x0001, 0x0002, // WB1, WB2
-+ 0x0006, 0x0007, // QPro 6/7 (?)
-+ 0x0010,
-+ M_ENDE };
-+
- const UINT16 pDIF1[] = // DIF mit CR-LF
- {
- 'T', 'A', 'B', 'L', 'E',
-@@ -647,7 +655,8 @@
- pDIF2,
- pSylk,
- pLotusNew,
-- pLotus2
-+ pLotus2,
-+ pQPro
- };
- const UINT16 nFilterCount = sizeof(ppFilterPatterns) / sizeof(ppFilterPatterns[0]);
-
-@@ -662,7 +671,8 @@
- pFilterDif,
- pFilterSylk,
- pFilterLotus,
-- pFilterLotus
-+ pFilterLotus,
-+ pFilterQPro
- };
-
- const UINT16 nByteMask = 0xFF;
---- docsh.cxx.bak 2005-01-05 18:43:35.558884680 +0530
-+++ sc/source/ui/docshell/docsh.cxx 2005-01-03 11:47:12.000000000 +0530
-@@ -197,6 +197,7 @@
- static const sal_Char __FAR_DATA pFilterXML[] = "StarOffice XML (Calc)";
- static const sal_Char __FAR_DATA pFilterAscii[] = "Text - txt - csv (StarCalc)";
- static const sal_Char __FAR_DATA pFilterLotus[] = "Lotus";
-+static const sal_Char __FAR_DATA pFilterQPro[] = "Quattro Pro";
- static const sal_Char __FAR_DATA pFilterExcel4[] = "MS Excel 4.0";
- static const sal_Char __FAR_DATA pFilterEx4Temp[] = "MS Excel 4.0 Vorlage/Template";
- static const sal_Char __FAR_DATA pFilterExcel5[] = "MS Excel 5.0/95";
-@@ -1115,6 +1116,21 @@
- bSetColWidths = TRUE;
- bSetSimpleTextColWidths = TRUE;
- }
-+ else if (aFltName.EqualsAscii(pFilterQPro))
-+ {
-+ ScColumn::bDoubleAlloc = TRUE;
-+ FltError eError = ScImportQuattroPro( rMedium, &aDocument);
-+ ScColumn::bDoubleAlloc = FALSE;
-+ if (eError != eERR_OK)
-+ {
-+ if (!GetError())
-+ SetError( eError );
-+ if( ( eError & ERRCODE_WARNING_MASK ) == ERRCODE_WARNING_MASK )
-+ bRet = TRUE;
-+ }
-+ else
-+ bRet = TRUE;
-+ }
- else if (aFltName.EqualsAscii(pFilterRtf))
- {
- FltError eError = SCERR_IMPORT_UNKNOWN;
-
---- /dev/null 2004-08-25 23:04:59.000000000 +0530
-+++ filter/source/config/fragments/filters/QPro.xcu 2005-01-05 18:47:47.122641176 +0530
-@@ -0,0 +1,14 @@
-+<node oor:name="Quattro Pro" oor:op="replace" oor:finalized="true" oor:mandatory="true">
-+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
-+ <prop oor:name="Type"><value>calc_QPro</value></prop>
-+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
-+ <prop oor:name="UIComponent"/>
-+ <prop oor:name="UserData"/>
-+ <prop oor:name="FilterService"/>
-+ <prop oor:name="TemplateName"/>
-+ <prop oor:name="UIName">
-+ <value>Quattro Pro</value>
-+ </prop>
-+ <prop oor:name="Flags"><value>IMPORT ALIEN USESOPTIONS PREFERRED</value></prop>
-+ </node>
-+
-
---- /dev/null 2004-08-25 23:04:59.000000000 +0530
-+++ filter/source/config/fragments/types/calc_QPro.xcu 2005-01-05 18:47:03.452280080 +0530
-@@ -0,0 +1,13 @@
-+<node oor:name="calc_QPro" oor:op="replace" oor:finalized="true" oor:mandatory="true">
-+ <prop oor:name="DetectService"><value>com.sun.star.comp.calc.FormatDetector</value></prop>
-+ <prop oor:name="URLPattern"/>
-+ <prop oor:name="Extensions"><value>wb2</value></prop>
-+ <prop oor:name="MediaType"/>
-+ <prop oor:name="Preferred"><value>true</value></prop>
-+ <prop oor:name="PreferredFilter"><value>Quattro Pro</value></prop>
-+ <prop oor:name="UIName">
-+ <value>Quattro Pro</value>
-+ </prop>
-+ <prop oor:name="ClipboardFormat"/>
-+ </node>
-+
---- filter.hxx.bak 2005-01-05 18:35:40.237144568 +0530
-+++ sc/inc/filter.hxx 2005-01-05 18:37:43.515403424 +0530
-@@ -139,6 +139,7 @@
-
- FltError ScImportHTML( SvStream&, ScDocument*, ScRange& rRange, double nOutputFactor = 1.0, BOOL bCalcWidthHeight = TRUE );
-
-+FltError ScImportQuattroPro( SfxMedium &rMedium, ScDocument *pDoc );
- // ***********************************************************************
- // Diverse Exportfilter
- // ***********************************************************************
---- fcfg_calc.mk.bak 2005-03-22 18:05:38.336431752 +0530
-+++ filter/source/config/fragments/fcfg_calc.mk 2005-03-22 18:09:10.145231920 +0530
-@@ -28,6 +28,7 @@
- calc_DIF \
- writer_web_HTML \
- calc_Lotus \
-+ calc_QPro \
- calc_MS_Excel_40 \
- calc_MS_Excel_40_VorlageTemplate \
- calc_MS_Excel_5095 \
-@@ -53,6 +54,7 @@
- DIF \
- HTML__StarCalc_ \
- Lotus \
-+ QPro \
- MS_Excel_4_0 \
- MS_Excel_4_0_Vorlage_Template \
- MS_Excel_5_0_95 \
diff --git a/patches/src680/qpro-hxx.diff b/patches/src680/qpro-hxx.diff
deleted file mode 100644
index ab26984bf..000000000
--- a/patches/src680/qpro-hxx.diff
+++ /dev/null
@@ -1,104 +0,0 @@
---- /dev/null 2004-07-26 17:21:14.000000000 +0530
-+++ sc/source/filter/inc/qpro.hxx 2005-05-31 11:49:39.000000000 +0530
-@@ -0,0 +1,101 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+
-+#ifndef SC_QPRO_HXX
-+#define SC_QPRO_HXX
-+
-+#include <sal/config.h>
-+#include "filter.hxx"
-+#include "document.hxx"
-+#include "cell.hxx"
-+
-+#ifndef _STRING_HXX
-+#include <tools/string.hxx>
-+#endif
-+
-+#include <tools/color.hxx>
-+#include "flttypes.hxx"
-+#include "ftools.hxx"
-+#include "qprostyle.hxx"
-+#include "biff.hxx"
-+
-+// Stream wrapper class
-+class ScQProReader : public ScBiffReader
-+{
-+ ScQProStyle aStyle;
-+
-+ public:
-+ bool recordsLeft();
-+ bool IsEndOfFile();
-+ void SetEof( bool bValue ){ mbEndOfFile = bValue; }
-+ bool nextRecord();
-+ sal_uInt16 getId() { return mnId; }
-+ sal_uInt16 getLength() { return mnLength; }
-+ void readString( String &rString, sal_uInt16 nLength );
-+ ScQProReader( SfxMedium &rMedium, ScDocument* pDoc);
-+ ~ScQProReader(){ };
-+ FltError import( ScDocument *pDoc );
-+ FltError readSheet( sal_uInt16 ntab, ScDocument* pDoc );
-+ ScQProStyle* getStyleElement() { return &aStyle; }
-+};
-+#endif
-+
diff --git a/patches/src680/qproform-cxx.diff b/patches/src680/qproform-cxx.diff
deleted file mode 100644
index fd413c054..000000000
--- a/patches/src680/qproform-cxx.diff
+++ /dev/null
@@ -1,777 +0,0 @@
---- /dev/null 2004-07-26 17:21:14.000000000 +0530
-+++ sc/source/filter/qpro/qproform.cxx 2005-09-19 10:43:34.038674112 +0530
-@@ -0,0 +1,774 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include <sal/config.h>
-+
-+#ifndef SC_QPRO_HXX
-+#include "qpro.hxx"
-+#endif
-+
-+#include "qproform.hxx"
-+#include "formel.hxx"
-+#include "compiler.hxx"
-+#include <tokstack.hxx>
-+#include "ftools.hxx"
-+
-+void QProToSc::ReadSRD( SingleRefData& rSRD, sal_Int8 nPage, sal_Int8 nCol, sal_uInt16 nRelBit )
-+{
-+ UINT16 nTmp = nRelBit & 0x1fff;
-+ rSRD.InitAddress( ScAddress( nCol, (~nTmp + 1), 0 ) );
-+ if( nRelBit & 0x4000 )
-+ {
-+ rSRD.nRelCol = nCol;
-+ rSRD.SetColRel( TRUE );
-+ }
-+ else
-+ {
-+ rSRD.nCol = nCol;
-+ rSRD.SetColRel( FALSE );
-+ }
-+ if( nRelBit & 0x2000 )
-+ {
-+ rSRD.nRelRow = (~nTmp + 1);
-+ rSRD.nRelRow = (INT16)(nTmp << 3);
-+ rSRD.nRelRow /= 8;
-+ rSRD.SetRowRel( TRUE );
-+ }
-+ else
-+ {
-+ rSRD.nRow = nTmp;
-+ rSRD.SetRowRel( FALSE );
-+ }
-+ if( nRelBit & 0x8000 )
-+ {
-+ rSRD.nRelTab = nPage;
-+ rSRD.SetTabRel( TRUE );
-+ }
-+ else
-+ {
-+ rSRD.nTab = nPage;
-+ rSRD.SetTabRel( FALSE );
-+ }
-+}
-+
-+QProToSc::QProToSc( SvStream& rStream ) :
-+ ConverterBase( 128 ),
-+ maIn( rStream )
-+{
-+}
-+
-+void QProToSc::DoFunc( DefTokenId eOc, sal_uInt16 nArgs, const sal_Char* pExtString )
-+{
-+ TokenId eParam[ nBufSize ];
-+ INT32 nCount;
-+ TokenId nPush, nPush1;
-+
-+ BOOL bAddIn = FALSE;
-+ BOOL bNeg = FALSE;
-+
-+ if( eOc == ocNoName )
-+ {
-+ bAddIn = TRUE;
-+ if( pExtString )
-+ {
-+ ByteString s;
-+ s = pExtString;
-+ s.Insert( "QPRO_", 0 );
-+ nPush = aPool.Store( eOc, String( s, maIn.GetStreamCharSet() ) );
-+ aPool << nPush;
-+ }
-+ else
-+ aPool << ocNoName;
-+ }
-+
-+ if( nArgs < nBufSize )
-+ {
-+ for( nCount = 0; nCount < nArgs ; nCount++ )
-+ aStack >> eParam[ nCount ];
-+ }
-+ else
-+ return;
-+
-+ switch( eOc )
-+ {
-+ case ocIndex:
-+ nPush = eParam[ 0 ];
-+ eParam[ 0 ] = eParam[ 1 ];
-+ eParam[ 1 ] = nPush;
-+ IncToken( eParam[ 0 ] );
-+ IncToken( eParam[ 1 ] );
-+ break;
-+
-+ case ocIKV:
-+ nPush = eParam[ 0 ];
-+ eParam[ 0 ] = eParam[ 1 ];
-+ eParam[ 1 ] = nPush;
-+ break;
-+
-+ case ocGetYear:
-+ nPush = aPool.Store( 1900.0 );
-+ aPool << ocOpen;
-+ break;
-+
-+ default:
-+ break;
-+ }
-+
-+ if( !bAddIn )
-+ aPool << eOc;
-+
-+ aPool << ocOpen;
-+
-+ if( nArgs> 0 )
-+ {
-+ INT16 nNull = -1;
-+ INT16 nLast = nArgs- 1;
-+
-+ if( eOc == ocZGZ )
-+ aPool << eParam[ 2 ] << ocSep << eParam[ 1 ] << ocSep << eParam[ 0 ];
-+ if( eOc == ocZinsZ )
-+ aPool << eParam[ 3 ] << ocSep << eParam[ 2 ] << ocSep << eParam[ 1 ] << ocSep << eParam[ 0 ];
-+ else
-+ {
-+ aPool << eParam[ nLast ];
-+ for( nCount = nLast - 1 ; nCount >= 0 ; nCount-- )
-+ {
-+ if( nCount != nNull )
-+ aPool << ocSep << eParam[ nCount ];
-+ }
-+ }
-+ }
-+
-+ if( eOc == ocGetYear )
-+ aPool << ocClose << ocSub << nPush;
-+ else if( eOc == ocFixed )
-+ aPool << ocSep << ocTrue << ocOpen << ocClose;
-+
-+ aPool << ocClose;
-+ aPool >> aStack;
-+
-+ if( bNeg )
-+ {
-+ aPool << ocOpen << ocSub << aStack << ocClose;
-+ aPool >> aStack;
-+ }
-+}
-+
-+void QProToSc::IncToken( TokenId &rParam )
-+{
-+ aPool << ocOpen << rParam << mnAddToken;
-+ rParam = aPool.Store();
-+}
-+
-+void QProToSc::DecToken( TokenId &rParam )
-+{
-+ aPool << ocOpen << rParam << mnSubToken;
-+ rParam = aPool.Store();
-+}
-+
-+void QProToSc::NegToken( TokenId &rParam )
-+{
-+ aPool << ocNegSub << ocOpen << rParam << ocClose;
-+ rParam = aPool.Store();
-+}
-+
-+ConvErr QProToSc::Convert( const ScTokenArray*& pArray, sal_uInt16 nLen, const FORMULA_TYPE eFT )
-+{
-+ sal_uInt8 nFmla[ nBufSize ], i, nArg, nArgArray[ nBufSize ];
-+ sal_Int8 nCol, nPage;
-+ sal_uInt16 nInt, nIntCount = 0, nStringCount = 0, nFloatCount = 0, nDLLCount = 0, nIntArray[ nBufSize ], nArgCount = 0;
-+ String sStringArray[ nBufSize ];
-+ sal_uInt16 nDummy, nDLLId, nDLLArray[ nBufSize ];
-+ sal_uInt16 nNote, nRef, nRelBits;
-+ TokenId nPush;
-+ ComplRefData aCRD;
-+ SingleRefData aSRD;
-+ FUNC_TYPE eType;
-+ DefTokenId eOc;
-+ double nFloatArray[ nBufSize ], nFloat;
-+ const sal_Char* pExtString;
-+
-+ aCRD.InitFlags();
-+ aSRD.InitFlags();
-+ maIn >> nRef;
-+ if( nRef < nBufSize )
-+ {
-+ for( i=0; i < nRef; i++)
-+ {
-+ maIn >> nFmla[i];
-+
-+ if( nFmla[ i ] == 0x05 )
-+ {
-+ maIn >> nInt;
-+ nIntArray[ nIntCount ] = nInt;
-+ nRef-=2;
-+ nIntCount++;
-+ }
-+
-+ if( nFmla[ i ] == 0x00 )
-+ {
-+ maIn >> nFloat;
-+ nFloatArray[ nFloatCount ] = nFloat;
-+ nRef-=8;
-+ nFloatCount++;
-+ }
-+
-+ if( nFmla[ i ] == 0x1a )
-+ {
-+ maIn >> nArg >> nDummy >> nDLLId;
-+ nArgArray[ nArgCount ] = nArg;
-+ nDLLArray[ nDLLCount ] = nDLLId;
-+ nRef-=5;
-+ nDLLCount++;
-+ nArgCount++;
-+ }
-+ if( nFmla[ i ] == 0x06 )
-+ {
-+ String aTmp( ScfTools::ReadCString( maIn ), maIn.GetStreamCharSet() );
-+ sStringArray[ nStringCount ] = aTmp;
-+ nStringCount++;
-+ nRef-=aTmp.Len() + 1;
-+ }
-+ }
-+ }
-+ else
-+ return ConvErrCount;
-+
-+ i = 0, nIntCount = 0, nFloatCount = 0, nDLLCount = 0, nArgCount = 0, nStringCount =0;
-+
-+ while( i < nRef && ( nFmla[ i ] != 0x03 ) )
-+ {
-+ eType = IndexToType( nFmla[ i ] );
-+ eOc = IndexToToken( nFmla[ i ] );
-+ if( eOc == ocNoName )
-+ pExtString = getString( nFmla[ i ] );
-+
-+ switch( eType )
-+ {
-+ case FT_NotImpl:
-+ DoFunc( ocNoName, 0, pExtString );
-+ break;
-+
-+ case FT_FuncFix0:
-+ DoFunc( eOc, 0, NULL );
-+ break;
-+
-+ case FT_FuncFix1:
-+ DoFunc( eOc, 1, NULL );
-+ break;
-+
-+ case FT_FuncFix2:
-+ DoFunc( eOc, 2, NULL );
-+ break;
-+
-+ case FT_FuncFix3:
-+ DoFunc( eOc, 3, NULL );
-+ break;
-+
-+ case FT_FuncFix4:
-+ DoFunc( eOc, 4, NULL );
-+ break;
-+
-+ case FT_FuncFix5:
-+ DoFunc( eOc, 5, NULL );
-+ break;
-+
-+ case FT_FuncFix6:
-+ DoFunc( eOc, 6, NULL );
-+ break;
-+
-+ case FT_DLL:{
-+ eOc = IndexToDLLId( nDLLArray[ nDLLCount ] );
-+ sal_uInt8 nPar = nArgArray[ nArgCount ];
-+ DoFunc( eOc, nPar, NULL );
-+ nDLLCount++;
-+ nArgCount++;
-+ }
-+ break;
-+
-+ case FT_Cref : // Single cell reference
-+ maIn >> nNote >> nCol >> nPage >> nRelBits;
-+ ReadSRD( aSRD, nPage, nCol, nRelBits );
-+ aStack << aPool.Store( aSRD );
-+ break;
-+
-+ case FT_Range: // Block reference
-+ maIn >> nNote >> nCol >> nPage >> nRelBits;
-+ ReadSRD( aCRD.Ref1, nPage, nCol, nRelBits );
-+ maIn >> nCol >> nPage >> nRelBits;
-+ ReadSRD( aCRD.Ref2, nPage, nCol, nRelBits );
-+ aStack << aPool.Store( aCRD );
-+ break;
-+
-+ case FT_FuncVar:{ // Sum of a sequence of numbers
-+ sal_uInt8 nArgs;
-+ i++;
-+ nArgs = nFmla[ i ];
-+ DoFunc( eOc, nArgs, NULL );
-+ }
-+ break;
-+
-+ case FT_Op: // operators
-+ aStack >> nPush;
-+ aPool << aStack << eOc << nPush;
-+ aPool >> aStack;
-+ break;
-+
-+ case FT_Braces:
-+ aPool << ocOpen << aStack << ocClose;
-+ aPool >> aStack;
-+ break;
-+
-+ case FT_ConstInt:{
-+ sal_uInt16 nVal;
-+ nVal = nIntArray[ nIntCount ];
-+ aStack << aPool.Store( ( double ) nVal );
-+ nIntCount++;
-+ }
-+ break;
-+
-+ case FT_ConstFloat:{
-+ double nVal;
-+ nVal = nFloatArray[ nFloatCount ];
-+ aStack << aPool.Store( nVal );
-+ nFloatCount++;
-+ }
-+ break;
-+
-+ case FT_ConstString:{
-+ String aLabel;
-+ aLabel = sStringArray[ nStringCount ];
-+ aStack << aPool.Store( aLabel );
-+ nStringCount++;
-+ }
-+ break;
-+
-+ case FT_Neg:
-+ aPool << ocNegSub << aStack;
-+ aPool >> aStack;
-+ break;
-+
-+ case FT_NOP: // indicates invalid opcode.
-+ case FT_Return: // indicates end of formula
-+ break;
-+ }
-+ i++;
-+ }
-+ pArray = aPool[ aStack.Get() ];
-+ return ConvOK;
-+}
-+
-+static const struct
-+{
-+ DefTokenId nToken;
-+ FUNC_TYPE nType;
-+} aFuncMap[] = {
-+ { ocPush, FT_ConstFloat },
-+ { ocPush, FT_Cref },
-+ { ocPush, FT_Range },
-+ { ocPush, FT_Return },
-+ { ocPush, FT_Braces },
-+ { ocPush, FT_ConstInt },
-+ { ocPush, FT_ConstString },
-+ { ocPush, FT_NOP },
-+ { ocNegSub, FT_Neg },
-+ { ocAdd, FT_Op },
-+ { ocSub, FT_Op },
-+ { ocMul, FT_Op },
-+ { ocDiv, FT_Op },
-+ { ocPow, FT_Op },
-+ { ocEqual, FT_Op },
-+ { ocNotEqual, FT_Op },
-+ { ocLessEqual, FT_Op },
-+ { ocGreaterEqual, FT_Op },
-+ { ocLess, FT_Op },
-+ { ocGreater, FT_Op },
-+ { ocAnd, FT_Op },
-+ { ocOr, FT_Op },
-+ { ocNot, FT_FuncFix1 },
-+ { ocPush, FT_NOP }, // Unary plus
-+ { ocAdress, FT_FuncFix4 }, // Address of
-+ { ocNoName, FT_NotImpl }, // Halt function
-+ { ocNoName, FT_DLL }, // DLL function
-+ { ocNoName, FT_NOP }, // Extended operands
-+ { ocNoName, FT_NOP }, // Extended operands
-+ { ocNoName, FT_NOP }, // Reserved
-+ { ocNoName, FT_NOP }, // Reserved
-+ { ocNoValue, FT_FuncFix0 }, // NA
-+ { ocNoName, FT_FuncFix0 }, // Error
-+ { ocAbs, FT_FuncFix1 },
-+ { ocInt, FT_FuncFix1 },
-+ { ocSqrt, FT_FuncFix1 },
-+ { ocLog10, FT_FuncFix1 },
-+ { ocLn, FT_FuncFix1 },
-+ { ocPi, FT_FuncFix0 },
-+ { ocSin, FT_FuncFix1 },
-+ { ocCos, FT_FuncFix1 },
-+ { ocTan, FT_FuncFix1 },
-+ { ocArcTan2, FT_FuncFix2 },
-+ { ocArcTan, FT_FuncFix1 },
-+ { ocArcSin, FT_FuncFix1 },
-+ { ocArcCos, FT_FuncFix1 },
-+ { ocExp, FT_FuncFix1 },
-+ { ocMod, FT_FuncFix2 },
-+ { ocChose, FT_FuncVar },
-+ { ocIsNV, FT_FuncFix1 },
-+ { ocIsError, FT_FuncFix1 },
-+ { ocFalse, FT_FuncFix0 },
-+ { ocTrue, FT_FuncFix0 },
-+ { ocRandom, FT_FuncFix0 },
-+ { ocGetDate, FT_FuncFix3 },
-+ { ocGetActTime, FT_FuncFix0 },
-+ { ocNoName, FT_NotImpl }, // QPro Pmt
-+ { ocNoName, FT_NotImpl }, // QPro Pv
-+ { ocNoName, FT_NotImpl }, // QPro Fv
-+ { ocIf, FT_FuncFix3 },
-+ { ocGetDay, FT_FuncFix1 },
-+ { ocGetMonth, FT_FuncFix1 },
-+ { ocGetYear, FT_FuncFix1 },
-+ { ocRound, FT_FuncFix2 },
-+ { ocGetTime, FT_FuncFix3 }, // 0x40
-+ { ocGetHour, FT_FuncFix1 },
-+ { ocGetMin, FT_FuncFix1 },
-+ { ocGetSec, FT_FuncFix1 },
-+ { ocIsValue, FT_FuncFix1 },
-+ { ocIsString, FT_FuncFix1 },
-+ { ocLen, FT_FuncFix1 },
-+ { ocValue, FT_FuncFix1 },
-+ { ocFixed, FT_FuncFix2 },
-+ { ocMid, FT_FuncFix3 },
-+ { ocChar, FT_FuncFix1 },
-+ { ocCode, FT_FuncFix1 },
-+ { ocFind, FT_FuncFix3 },
-+ { ocGetDateValue, FT_FuncFix1 },
-+ { ocGetTimeValue, FT_FuncFix1 },
-+ { ocNoName, FT_NotImpl },
-+ { ocSum, FT_FuncVar },
-+ { ocAverage, FT_FuncVar },
-+ { ocCount, FT_FuncVar },
-+ { ocMin, FT_FuncVar },
-+ { ocMax, FT_FuncVar },
-+ { ocVLookup, FT_FuncFix3 },
-+ { ocNBW, FT_FuncFix2 },
-+ { ocVar, FT_FuncVar },
-+ { ocNormDist, FT_FuncVar },
-+ { ocIKV, FT_FuncFix2 },
-+ { ocHLookup, FT_FuncFix3 },
-+ { ocDBSum, FT_FuncFix3 },
-+ { ocDBAverage, FT_FuncFix3 },
-+ { ocDBCount, FT_FuncFix3 },
-+ { ocDBMin, FT_FuncFix3 },
-+ { ocDBMax, FT_FuncFix3 },
-+ { ocDBVar, FT_FuncFix3 },
-+ { ocDBStdDev, FT_FuncFix3 },
-+ { ocNoName, FT_NotImpl },
-+ { ocColumns, FT_FuncFix1 },
-+ { ocRows, FT_FuncFix1 },
-+ { ocRept, FT_FuncFix2 },
-+ { ocUpper, FT_FuncFix1 },
-+ { ocLower, FT_FuncFix1 },
-+ { ocLeft, FT_FuncFix2 },
-+ { ocRight, FT_FuncFix2 },
-+ { ocReplace, FT_FuncFix4 },
-+ { ocPropper, FT_FuncFix1 },
-+ { ocCell, FT_FuncFix2 },
-+ { ocTrim, FT_FuncFix1 },
-+ { ocClean, FT_FuncFix1 },
-+ { ocNoName, FT_NotImpl },
-+ { ocNoName, FT_NotImpl }, // 0x70
-+ { ocExact, FT_FuncFix2 },
-+ { ocNoName, FT_NotImpl }, // Call()
-+ { ocIndirect, FT_FuncFix1 },
-+ { ocZGZ, FT_FuncFix3 }, // Interest
-+ { ocNoName, FT_NotImpl },
-+ { ocNoName, FT_NotImpl },
-+ { ocLIA, FT_FuncFix3 },
-+ { ocDIA, FT_FuncFix4 },
-+ { ocGDA, FT_FuncFix4 },
-+ { ocStDevP, FT_FuncVar },
-+ { ocVarP, FT_FuncVar },
-+ { ocDBStdDevP, FT_FuncVar },
-+ { ocDBVarP, FT_FuncVar },
-+ { ocBW, FT_FuncFix3 }, // QPro Pval
-+ { ocRMZ, FT_FuncFix5 }, // QPro Paymt
-+ { ocZW, FT_FuncFix5 }, // QPro Fval
-+ { ocZZR, FT_FuncFix5 },
-+ { ocZins, FT_FuncFix5 },
-+ { ocZinsZ, FT_FuncFix4 },
-+ { ocKapz, FT_FuncFix6 },
-+ { ocSumProduct, FT_FuncFix2 },
-+ { ocNoName, FT_NotImpl },
-+ { ocNoName, FT_NotImpl },
-+ { ocNoName, FT_NotImpl },
-+ { ocNoName, FT_NotImpl },
-+ { ocDeg, FT_FuncFix1 },
-+ { ocRad, FT_FuncFix1 },
-+ { ocNoName, FT_NotImpl },
-+ { ocNoName, FT_NotImpl },
-+ { ocGetActDate, FT_FuncFix0 },
-+ { ocNBW, FT_FuncFix2 },
-+ { ocNoName, FT_NotImpl },
-+ { ocNoName, FT_NotImpl },
-+ { ocNoName, FT_NOP },
-+ { ocNoName, FT_NOP }, // 147
-+ { ocNoName, FT_NOP }, // 148
-+ { ocNoName, FT_NOP }, // 149
-+ { ocNoName, FT_NOP }, // 150
-+ { ocNoName, FT_NOP }, // 151
-+ { ocNoName, FT_NOP }, // 152
-+ { ocNoName, FT_NOP }, // 153
-+ { ocTable, FT_FuncFix1 },
-+ { ocNoName, FT_NOP }, // 155 - opcodes do not represent any function.
-+ { ocNoName, FT_NOP }, // 156
-+ { ocIndex, FT_FuncFix4 },
-+ { ocNoName, FT_NotImpl },
-+ { ocNoName, FT_NotImpl }, // Gives the property of the particular object
-+ { ocNoName, FT_NotImpl }, // Dynamic Data Exchange Link
-+ { ocNoName, FT_NotImpl } // gives properties of DOS menus
-+};
-+
-+const int nIndexCount = sizeof( aFuncMap ) / sizeof( aFuncMap[ 0 ] );
-+
-+DefTokenId QProToSc::IndexToToken( sal_uInt16 nIndex )
-+{
-+ if( nIndex < nIndexCount )
-+ return aFuncMap[ nIndex ].nToken;
-+ return ocNoName;
-+}
-+
-+FUNC_TYPE QProToSc::IndexToType( sal_uInt8 nIndex )
-+{
-+ if( nIndex < nIndexCount )
-+ return aFuncMap[ nIndex ].nType;
-+ return FT_NotImpl;
-+}
-+
-+DefTokenId QProToSc::IndexToDLLId( sal_uInt16 nIndex )
-+{
-+ DefTokenId eId;
-+ switch( nIndex )
-+ {
-+ case 0x0001:
-+ eId = ocAveDev;
-+ break;
-+
-+ case 0x0024:
-+ eId = ocGGT;
-+ break;
-+
-+ case 0x0025:
-+ eId = ocKGV;
-+ break;
-+
-+ case 0x0027:
-+ eId = ocCeil;
-+ break;
-+
-+ case 0x0028:
-+ eId = ocEven;
-+ break;
-+
-+ case 0x0022:
-+ eId = ocFact;
-+ break;
-+
-+ case 0x002a:
-+ eId = ocFloor;
-+ break;
-+
-+ case 0x002d:
-+ eId = ocOdd;
-+ break;
-+
-+ case 0x0006:
-+ eId = ocBetaDist;
-+ break;
-+
-+ case 0x0008:
-+ eId = ocBetaInv;
-+ break;
-+
-+ case 0x0010:
-+ eId = ocCovar;
-+ break;
-+
-+ case 0x000b:
-+ eId = ocChiInv;
-+ break;
-+
-+ case 0x003d:
-+ eId = ocLaufz;
-+ break;
-+
-+ case 0x0019:
-+ eId = ocFInv;
-+ break;
-+
-+ case 0x001a:
-+ eId = ocFisher;
-+ break;
-+
-+ case 0x001b:
-+ eId = ocFisherInv;
-+ break;
-+
-+ case 0x0030:
-+ eId = ocMedian;
-+ break;
-+
-+ default:
-+ eId = ocNoName;
-+ break;
-+ }
-+ return eId;
-+}
-+
-+const sal_Char* QProToSc::getString( sal_uInt8 nIndex )
-+{
-+ sal_Char* pExtString;
-+ switch( nIndex )
-+ {
-+ case 57:
-+ pExtString = "Pv";
-+ break;
-+
-+ case 58:
-+ pExtString = "Fv";
-+ break;
-+
-+ case 98:
-+ pExtString = "Index2D";
-+ break;
-+
-+ case 111:
-+ pExtString = "S";
-+ break;
-+
-+ case 112:
-+ pExtString = "N";
-+ break;
-+
-+ case 114:
-+ pExtString = "CALL";
-+ break;
-+
-+ case 117:
-+ pExtString = "TERM";
-+ break;
-+
-+ case 118:
-+ pExtString = "CTERM";
-+ break;
-+
-+ case 134:
-+ pExtString = "MEMAVAIL";
-+ break;
-+
-+ case 135:
-+ pExtString = "MEMEMSAVAIL";
-+ break;
-+
-+ case 136:
-+ pExtString = "FILEEXISTS";
-+ break;
-+
-+ case 137:
-+ pExtString = "CURVALUE";
-+ break;
-+
-+ case 140:
-+ pExtString = "HEX";
-+ break;
-+
-+ case 141:
-+ pExtString = "NUM";
-+ break;
-+
-+ case 145:
-+ pExtString = "VERSION";
-+ break;
-+
-+ case 157:
-+ pExtString = "INDEX3D";
-+ break;
-+
-+ case 158:
-+ pExtString = "CELLINDEX3D";
-+ break;
-+
-+ case 159:
-+ pExtString = "PROPERTY";
-+ break;
-+
-+ case 160:
-+ pExtString = "DDE";
-+ break;
-+
-+ case 161:
-+ pExtString = "COMMAND";
-+ break;
-+
-+ default:
-+ pExtString = NULL;
-+ break;
-+ }
-+ return pExtString;
-+}
diff --git a/patches/src680/qproform-hxx.diff b/patches/src680/qproform-hxx.diff
deleted file mode 100644
index 66e8f96f9..000000000
--- a/patches/src680/qproform-hxx.diff
+++ /dev/null
@@ -1,131 +0,0 @@
---- /dev/null 2004-07-26 17:21:14.000000000 +0530
-+++ sc/source/filter/inc/qproform.hxx 2005-06-02 09:00:48.635998064 +0530
-@@ -0,0 +1,128 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+
-+#ifndef SC_QPROFORM_HXX
-+#define SC_QPROFORM_HXX
-+
-+#include <sal/config.h>
-+#ifndef _FORMEL_HXX
-+#include "formel.hxx"
-+#endif
-+#ifndef _STRING_HXX
-+#include <tools/string.hxx>
-+#endif
-+#ifndef SC_QPRO_HXX
-+#include "qpro.hxx"
-+#endif
-+
-+#include <compiler.hxx>
-+typedef OpCode DefTokenId;
-+
-+enum FUNC_TYPE
-+{
-+ FT_Return,
-+ FT_FuncFix0,
-+ FT_FuncFix1,
-+ FT_FuncFix2,
-+ FT_FuncFix3,
-+ FT_FuncFix4,
-+ FT_FuncFix5,
-+ FT_FuncFix6,
-+ FT_FuncVar,
-+ FT_DLL,
-+ FT_Neg,
-+ FT_Op,
-+ FT_NotImpl,
-+ FT_ConstFloat,
-+ FT_Range,
-+ FT_Braces,
-+ FT_ConstInt,
-+ FT_ConstString,
-+ FT_NOP,
-+ FT_Cref
-+};
-+
-+class QProToSc : public ConverterBase
-+{
-+ private:
-+ TokenId mnAddToken;
-+ TokenId mnSubToken;
-+ TokenId mn0Token;
-+ SvStream& maIn;
-+
-+ public:
-+ static const size_t nBufSize = 256;
-+ QProToSc( SvStream &aStr );
-+ ~QProToSc(){ };
-+ ConvErr Convert( const ScTokenArray*& pArray, sal_uInt16 nLen,
-+ const FORMULA_TYPE eFT = FT_CellFormula );
-+ void DoFunc( DefTokenId eOc, sal_uInt16 nArgs, const sal_Char* pExtString );
-+ void ReadSRD( SingleRefData& rR, sal_Int8 nPage, sal_Int8 nCol, sal_uInt16 rRel );
-+ void IncToken( TokenId &aParam );
-+ void DecToken( TokenId& aParam );
-+ void NegToken( TokenId& aParam );
-+ DefTokenId IndexToToken( sal_uInt16 nToken );
-+ FUNC_TYPE IndexToType( sal_uInt8 nToken );
-+ DefTokenId IndexToDLLId( sal_uInt16 nIndex );
-+ const sal_Char* getString( sal_uInt8 nIndex );
-+};
-+#endif
diff --git a/patches/src680/qprostyle-cxx.diff b/patches/src680/qprostyle-cxx.diff
deleted file mode 100644
index 79bc9f9aa..000000000
--- a/patches/src680/qprostyle-cxx.diff
+++ /dev/null
@@ -1,191 +0,0 @@
---- /dev/null 2004-07-26 17:21:14.000000000 +0530
-+++ sc/source/filter/qpro/qprostyle.cxx 2005-05-31 12:55:39.000000000 +0530
-@@ -0,0 +1,188 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+
-+#include <sal/config.h>
-+#include <stdio.h>
-+#include <sfx2/docfile.hxx>
-+
-+#include "qproform.hxx"
-+#include "qpro.hxx"
-+#include "qprostyle.hxx"
-+
-+#include <tools/color.hxx>
-+#include <scitems.hxx>
-+#include <svx/algitem.hxx>
-+#include <svx/udlnitem.hxx>
-+#include <svx/wghtitem.hxx>
-+#include <svx/postitem.hxx>
-+#include <svx/crsditem.hxx>
-+#include <svx/fontitem.hxx>
-+#include <map>
-+
-+#include "global.hxx"
-+#include "scerrors.hxx"
-+#include "docpool.hxx"
-+#include "patattr.hxx"
-+#include "filter.hxx"
-+#include "document.hxx"
-+#include "cell.hxx"
-+
-+void ScQProStyle::SetFormat( ScDocument *pDoc, sal_uInt8 nCol, sal_uInt16 nRow, sal_uInt8 nTab, sal_uInt16 nStyle )
-+{
-+ ScPatternAttr aPattern(pDoc->GetPool());
-+ SfxItemSet& rItemSet = aPattern.GetItemSet();
-+
-+ if( nStyle >= maAlignLimit )
-+ return;
-+
-+ sal_uInt8 nTmp = maAlign[ nStyle ];
-+ sal_uInt8 nHor = ( nTmp & 0x07 );
-+ sal_uInt8 nVer = ( nTmp & 0x18 );
-+ sal_uInt8 nOrient = ( nTmp & 0x60 );
-+
-+ // Horizontal Alignment
-+ SvxHorJustifyItem aJustify = SVX_HOR_JUSTIFY_STANDARD;
-+ switch( nHor )
-+ {
-+ case 0x00:
-+ aJustify = SVX_HOR_JUSTIFY_STANDARD;
-+ break;
-+
-+ case 0x01:
-+ aJustify = SVX_HOR_JUSTIFY_LEFT;
-+ break;
-+
-+ case 0x02:
-+ aJustify = SVX_HOR_JUSTIFY_CENTER;
-+ break;
-+
-+ case 0x03:
-+ aJustify = SVX_HOR_JUSTIFY_RIGHT;
-+ break;
-+
-+ case 0x04:
-+ aJustify = SVX_HOR_JUSTIFY_BLOCK;
-+ break;
-+ }
-+ rItemSet.Put( aJustify );
-+
-+ // Vertical Alignment
-+ SvxVerJustifyItem aVerJustify = SVX_VER_JUSTIFY_STANDARD;
-+ switch( nVer )
-+ {
-+ case 0x00:
-+ aVerJustify = SVX_VER_JUSTIFY_BOTTOM;
-+ break;
-+
-+ case 0x08:
-+ aVerJustify = SVX_VER_JUSTIFY_CENTER;
-+ break;
-+
-+ case 0x10:
-+ aVerJustify = SVX_VER_JUSTIFY_TOP;
-+ break;
-+ }
-+ rItemSet.Put( aVerJustify );
-+
-+ // Orientation
-+ SvxOrientationItem aOrientItem = SVX_ORIENTATION_STANDARD;
-+ switch( nOrient )
-+ {
-+ case 0x20:
-+ aOrientItem = SVX_ORIENTATION_TOPBOTTOM;
-+ break;
-+
-+ }
-+ rItemSet.Put( aOrientItem );
-+
-+ // Wrap cell contents
-+ if( nTmp & 0x80 )
-+ {
-+ SfxBoolItem aWrapItem( ATTR_LINEBREAK );
-+ aWrapItem.SetValue( TRUE );
-+ rItemSet.Put( aWrapItem );
-+ }
-+
-+ // Font Attributes
-+ if( nStyle >= maFontLimit )
-+ return;
-+ sal_uInt16 nTmpFnt = maFontRecord[ maFont[ nStyle ] ];
-+ BOOL bIsBold, bIsItalic, bIsUnderLine, bIsStrikeThrough;
-+
-+ bIsBold = ( nTmpFnt & 0x0001 );
-+ bIsItalic = ( nTmpFnt & 0x0002 );
-+ bIsUnderLine = ( nTmpFnt & 0x0004 );
-+ bIsStrikeThrough = (nTmpFnt & 0x0020 );
-+
-+ if( bIsBold )
-+ rItemSet.Put( SvxWeightItem( WEIGHT_BOLD,ATTR_FONT_WEIGHT) );
-+ if( bIsItalic )
-+ rItemSet.Put( SvxPostureItem( ITALIC_NORMAL, ATTR_FONT_POSTURE ) );
-+ if( bIsUnderLine )
-+ rItemSet.Put( SvxUnderlineItem( UNDERLINE_SINGLE, ATTR_FONT_UNDERLINE ) );
-+
-+ String fntName = maFontType[ maFont[ nStyle ] ];
-+ rItemSet.Put( SvxFontItem( FAMILY_SYSTEM, fntName, EMPTY_STRING ) );
-+
-+ pDoc->ApplyPattern( nCol, nRow, nTab, aPattern );
-+}
-+
diff --git a/patches/src680/qprostyle-hxx.diff b/patches/src680/qprostyle-hxx.diff
deleted file mode 100644
index 232279e13..000000000
--- a/patches/src680/qprostyle-hxx.diff
+++ /dev/null
@@ -1,99 +0,0 @@
---- /dev/null 2004-07-26 17:21:14.000000000 +0530
-+++ sc/source/filter/inc/qprostyle.hxx 2005-05-31 11:55:19.000000000 +0530
-@@ -0,0 +1,96 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+
-+#ifndef SC_QPROSTYLE_HXX
-+#define SC_QPROSTYLE_HXX
-+
-+#include <sal/config.h>
-+#include "filter.hxx"
-+#include "document.hxx"
-+#include "cell.hxx"
-+
-+#ifndef _STRING_HXX
-+#include <tools/string.hxx>
-+#endif
-+
-+#include <tools/color.hxx>
-+#include "flttypes.hxx"
-+#include "ftools.hxx"
-+
-+class ScQProStyle
-+{
-+ sal_uInt8 maAlign[ 256 ];
-+ sal_uInt8 maFont[ 256 ];
-+ sal_uInt16 maFontRecord[ 256 ], maFontLimit, maAlignLimit;
-+ String maFontType[ 256 ];
-+
-+ public:
-+ ScQProStyle() { }
-+ void SetFormat( ScDocument *pDoc, sal_uInt8 nCol, sal_uInt16 nRow, sal_uInt8 nTab, sal_uInt16 nStyle );
-+ void setFontRecord( sal_uInt16 nIndex, sal_uInt16 nData ) { maFontRecord[ nIndex ] = nData; }
-+ void setFontType( sal_uInt16 nIndex, String &aLabel ){ maFontType[ nIndex ] = aLabel; }
-+ void setAlign( sal_uInt16 nIndex, sal_uInt8 nData ) { maAlign[ nIndex ] = nData; }
-+ void setFont( sal_uInt16 nIndex, sal_uInt8 nData ) { maFont[ nIndex ] = nData; }
-+ void setFontLimit( sal_uInt16 nValue ) { maFontLimit = nValue; }
-+ void setAlignLimit( sal_uInt16 nValue ) { maAlignLimit = nValue; }
-+};
-+#endif
diff --git a/patches/src680/recovery-report.diff b/patches/src680/recovery-report.diff
deleted file mode 100644
index 6843ad41a..000000000
--- a/patches/src680/recovery-report.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- officecfg/registry/schema/org/openoffice/Office/Recovery.xcs 11 Nov 2005 12:43:23 +0100 1.6
-+++ officecfg/registry/schema/org/openoffice/Office/Recovery.xcs 18 Nov 2005 00:27:31 +0100
-@@ -117,7 +117,7 @@
- <info>
- <desc>Specifies if the crash reporter should be enabled or disabled.</desc>
- </info>
-- <value>true</value>
-+ <value>false</value>
- </prop>
- </group>
- <group oor:name="AutoSave">
diff --git a/patches/src680/redhat-standard-colors.diff b/patches/src680/redhat-standard-colors.diff
deleted file mode 100644
index fd8d3d0ee..000000000
--- a/patches/src680/redhat-standard-colors.diff
+++ /dev/null
@@ -1,18 +0,0 @@
---- extras/source/palettes/standard.soc.redhat 2004-09-14 11:15:39.147812605 -0400
-+++ extras/source/palettes/standard.soc 2004-09-14 11:20:51.940313307 -0400
-@@ -88,8 +88,9 @@
- <draw:color draw:name="Dark violet" draw:color="#660066"/>
- <draw:color draw:name="Salmon" draw:color="#ff8080"/>
- <draw:color draw:name="Sea blue" draw:color="#0066cc"/>
-- <draw:color draw:name="Sun 1" draw:color="#333366"/>
-- <draw:color draw:name="Sun 2" draw:color="#666699"/>
-- <draw:color draw:name="Sun 3" draw:color="#9999cc"/>
-- <draw:color draw:name="Sun 4" draw:color="#ccccff"/>
--</office:color-table>
-\ No newline at end of file
-+ <draw:color draw:name="Red Hat 1" draw:color="#cc0000"/>
-+ <draw:color draw:name="Red Hat 2" draw:color="#0093d9"/>
-+ <draw:color draw:name="Red Hat 3" draw:color="#ff8d00"/>
-+ <draw:color draw:name="Red Hat 4" draw:color="#abb400"/>
-+ <draw:color draw:name="Red Hat 5" draw:color="#4e376b"/>
-+</office:color-table>
diff --git a/patches/src680/remove-default-multimedia-menu.diff b/patches/src680/remove-default-multimedia-menu.diff
deleted file mode 100644
index 8abfcaf54..000000000
--- a/patches/src680/remove-default-multimedia-menu.diff
+++ /dev/null
@@ -1,144 +0,0 @@
---- sw/uiconfig/sglobal/menubar/menubar.xml 2005-03-01 16:27:54.568113899 +0530
-+++ sw/uiconfig/sglobal/menubar/menubar.xml 2005-03-01 16:28:30.579679848 +0530
-@@ -169,13 +169,10 @@
- </menu:menu>
- </menu:menupopup>
- </menu:menu>
-- <menu:menuitem menu:id=".uno:InsertAVMedia" menu:helpid="6695" menu:label="" />
- <menu:menu menu:id=".uno:ObjectMenu" menu:label="" >
- <menu:menupopup>
- <menu:menuitem menu:id=".uno:InsertObject" menu:helpid="5561" menu:label="" />
- <menu:menuitem menu:id=".uno:InsertPlugin" menu:helpid="5672" menu:label="" />
-- <menu:menuitem menu:id=".uno:InsertSound" menu:helpid="5676" menu:label="" />
-- <menu:menuitem menu:id=".uno:InsertVideo" menu:helpid="5677" menu:label="" />
- <menu:menuitem menu:id=".uno:InsertApplet" menu:helpid="5673" menu:label="" />
- <menu:menuitem menu:id=".uno:InsertObjectStarMath" menu:helpid="20369" menu:label="" />
- <menu:menuitem menu:id=".uno:InsertObjectChart" menu:helpid="10140" menu:label="" />
-@@ -372,7 +369,6 @@
- <menu:menuitem menu:id=".uno:FootnoteDialog" menu:helpid="20468" menu:label="" />
- <menu:menuseparator/>
- <menu:menuitem menu:id=".uno:Gallery" menu:helpid="5960" menu:label="" />
-- <menu:menuitem menu:id=".uno:AVMediaPlayer" menu:helpid="6694" menu:label="" />
- <menu:menuseparator/>
- <menu:menuitem menu:id=".uno:BibliographyComponent" menu:helpid="10880" menu:label="" />
- <menu:menuseparator/>
---- sd/uiconfig/sdraw/menubar/menubar.xml 2005-03-01 16:42:09.855645032 +0530
-+++ sd/uiconfig/sdraw/menubar/menubar.xml 2005-03-01 16:42:46.287396267 +0530
-@@ -140,13 +140,10 @@
- </menu:menu>
- </menu:menupopup>
- </menu:menu>
-- <menu:menuitem menu:id=".uno:InsertAVMedia" menu:helpid="6695" menu:label="" />
- <menu:menu menu:id=".uno:ObjectMenu" menu:label="" >
- <menu:menupopup>
- <menu:menuitem menu:id=".uno:InsertObject" menu:helpid="5561" menu:label="" />
- <menu:menuitem menu:id=".uno:InsertPlugin" menu:helpid="5672" menu:label="" />
-- <menu:menuitem menu:id=".uno:InsertSound" menu:helpid="5676" menu:label="" />
-- <menu:menuitem menu:id=".uno:InsertVideo" menu:helpid="5677" menu:label="" />
- <menu:menuitem menu:id=".uno:InsertApplet" menu:helpid="5673" menu:label="" />
- <menu:menuitem menu:id=".uno:InsertMath" menu:helpid="27106" menu:label="" />
- </menu:menupopup>
-@@ -203,7 +200,6 @@
- <menu:menuseparator/>
- <menu:menuitem menu:id=".uno:Gallery" menu:helpid="5960" menu:label="" />
- <menu:menuitem menu:id=".uno:BmpMask" menu:helpid="10350" menu:label="" />
-- <menu:menuitem menu:id=".uno:AVMediaPlayer" menu:helpid="6694" menu:label="" />
- <menu:menuseparator/>
- <menu:menu menu:id=".uno:MacrosMenu" menu:label="" >
- <menu:menupopup>
---- sw/uiconfig/sweb/menubar/menubar.xml 2005-03-01 16:47:15.735422652 +0530
-+++ sw/uiconfig/sweb/menubar/menubar.xml 2005-03-01 16:47:43.454364204 +0530
-@@ -117,13 +117,10 @@
- <menu:menuitem menu:id=".uno:InsertTable" menu:helpid="20330" menu:label="" />
- <menu:menuitem menu:id=".uno:InsertGraphicRuler" menu:helpid="21411" menu:label="" />
- <menu:menuitem menu:id=".uno:InsertGraphic" menu:helpid="10241" menu:label="" />
-- <menu:menuitem menu:id=".uno:InsertAVMedia" menu:helpid="6695" menu:label="" />
- <menu:menu menu:id=".uno:ObjectMenu" menu:label="" >
- <menu:menupopup>
- <menu:menuitem menu:id=".uno:InsertObject" menu:helpid="5561" menu:label="" />
- <menu:menuitem menu:id=".uno:InsertPlugin" menu:helpid="5672" menu:label="" />
-- <menu:menuitem menu:id=".uno:InsertSound" menu:helpid="5676" menu:label="" />
-- <menu:menuitem menu:id=".uno:InsertVideo" menu:helpid="5677" menu:label="" />
- <menu:menuitem menu:id=".uno:InsertApplet" menu:helpid="5673" menu:label="" />
- <menu:menuitem menu:id=".uno:InsertObjectStarMath" menu:helpid="20369" menu:label="" />
- <menu:menuitem menu:id=".uno:InsertObjectChart" menu:helpid="10140" menu:label="" />
-@@ -314,7 +311,6 @@
- <menu:menuitem menu:id=".uno:FootnoteDialog" menu:helpid="20468" menu:label="" />
- <menu:menuseparator/>
- <menu:menuitem menu:id=".uno:Gallery" menu:helpid="5960" menu:label="" />
-- <menu:menuitem menu:id=".uno:AVMediaPlayer" menu:helpid="6694" menu:label="" />
- <menu:menuseparator/>
- <menu:menuitem menu:id=".uno:BibliographyComponent" menu:helpid="10880" menu:label="" />
- <menu:menuseparator/>
---- sw/uiconfig/swriter/menubar/menubar.xml 2005-03-01 16:51:47.765582425 +0530
-+++ sw/uiconfig/swriter/menubar/menubar.xml 2005-03-01 16:52:54.961737478 +0530
-@@ -170,13 +170,10 @@
- </menu:menu>
- </menu:menupopup>
- </menu:menu>
-- <menu:menuitem menu:id=".uno:InsertAVMedia" menu:helpid="6695" menu:label="" />
- <menu:menu menu:id=".uno:ObjectMenu" menu:label="" >
- <menu:menupopup>
- <menu:menuitem menu:id=".uno:InsertObject" menu:helpid="5561" menu:label="" />
- <menu:menuitem menu:id=".uno:InsertPlugin" menu:helpid="5672" menu:label="" />
-- <menu:menuitem menu:id=".uno:InsertSound" menu:helpid="5676" menu:label="" />
-- <menu:menuitem menu:id=".uno:InsertVideo" menu:helpid="5677" menu:label="" />
- <menu:menuitem menu:id=".uno:InsertApplet" menu:helpid="5673" menu:label="" />
- <menu:menuitem menu:id=".uno:InsertObjectStarMath" menu:helpid="20369" menu:label="" />
- <menu:menuitem menu:id=".uno:InsertObjectChart" menu:helpid="10140" menu:label="" />
-@@ -373,7 +370,6 @@
- <menu:menuitem menu:id=".uno:FootnoteDialog" menu:helpid="20468" menu:label="" />
- <menu:menuseparator/>
- <menu:menuitem menu:id=".uno:Gallery" menu:helpid="5960" menu:label="" />
-- <menu:menuitem menu:id=".uno:AVMediaPlayer" menu:helpid="6694" menu:label="" />
- <menu:menuseparator/>
- <menu:menuitem menu:id=".uno:BibliographyComponent" menu:helpid="10880" menu:label="" />
- <menu:menuseparator/>
---- sc/uiconfig/scalc/menubar/menubar.xml 2005-03-01 16:53:40.528060710 +0530
-+++ sc/uiconfig/scalc/menubar/menubar.xml 2005-03-01 16:54:02.543834538 +0530
-@@ -158,13 +158,10 @@
- <menu:menuitem menu:id=".uno:InsertGraphic" menu:helpid="10241" menu:label="" />
- </menu:menupopup>
- </menu:menu>
-- <menu:menuitem menu:id=".uno:InsertAVMedia" menu:helpid="6695" menu:label="" />
- <menu:menu menu:id=".uno:ObjectMenu" menu:label="" >
- <menu:menupopup>
- <menu:menuitem menu:id=".uno:InsertObject" menu:helpid="5561" menu:label="" />
- <menu:menuitem menu:id=".uno:InsertPlugin" menu:helpid="5672" menu:label="" />
-- <menu:menuitem menu:id=".uno:InsertSound" menu:helpid="5676" menu:label="" />
-- <menu:menuitem menu:id=".uno:InsertVideo" menu:helpid="5677" menu:label="" />
- <menu:menuitem menu:id=".uno:InsertApplet" menu:helpid="5673" menu:label="" />
- <menu:menuitem menu:id=".uno:InsertObjectStarMath" menu:helpid="26063" menu:label="" />
- </menu:menupopup>
-@@ -338,7 +335,6 @@
- </menu:menu>
- <menu:menuseparator/>
- <menu:menuitem menu:id=".uno:Gallery" menu:helpid="5960" menu:label="" />
-- <menu:menuitem menu:id=".uno:AVMediaPlayer" menu:helpid="6694" menu:label="" />
- <menu:menuseparator/>
- <menu:menu menu:id=".uno:MacrosMenu" menu:label="" >
- <menu:menupopup>
---- sd/uiconfig/simpress/menubar/menubar.xml 2005-03-01 16:55:12.223622737 +0530
-+++ sd/uiconfig/simpress/menubar/menubar.xml 2005-03-01 16:55:39.420636522 +0530
-@@ -156,13 +156,10 @@
- </menu:menu>
- </menu:menupopup>
- </menu:menu>
-- <menu:menuitem menu:id=".uno:InsertAVMedia" menu:helpid="6695" menu:label="" />
- <menu:menu menu:id=".uno:ObjectMenu" menu:label="" >
- <menu:menupopup>
- <menu:menuitem menu:id=".uno:InsertObject" menu:helpid="5561" menu:label="" />
- <menu:menuitem menu:id=".uno:InsertPlugin" menu:helpid="5672" menu:label="" />
-- <menu:menuitem menu:id=".uno:InsertSound" menu:helpid="5676" menu:label="" />
-- <menu:menuitem menu:id=".uno:InsertVideo" menu:helpid="5677" menu:label="" />
- <menu:menuitem menu:id=".uno:InsertApplet" menu:helpid="5673" menu:label="" />
- <menu:menuitem menu:id=".uno:InsertMath" menu:helpid="27106" menu:label="" />
- </menu:menupopup>
-@@ -229,7 +226,6 @@
- <menu:menuseparator/>
- <menu:menuitem menu:id=".uno:Gallery" menu:helpid="5960" menu:label="" />
- <menu:menuitem menu:id=".uno:BmpMask" menu:helpid="10350" menu:label="" />
-- <menu:menuitem menu:id=".uno:AVMediaPlayer" menu:helpid="6694" menu:label="" />
- <menu:menuseparator/>
- <menu:menu menu:id=".uno:MacrosMenu" menu:label="" >
- <menu:menupopup>
diff --git a/patches/src680/s390-LINK-is-CXX.diff b/patches/src680/s390-LINK-is-CXX.diff
deleted file mode 100644
index 5a733dd9c..000000000
--- a/patches/src680/s390-LINK-is-CXX.diff
+++ /dev/null
@@ -1,28 +0,0 @@
-Index: unxlngs3904.mk
-===================================================================
-RCS file: /cvs/tools/solenv/inc/unxlngs3904.mk,v
-retrieving revision 1.10
-diff -u -u -r1.10 unxlngs3904.mk
---- solenv/inc/unxlngs3904.mk 11 Jul 2005 15:32:35 -0000 1.10
-+++ solenv/inc/unxlngs3904.mk 16 Aug 2005 21:52:39 -0000
-@@ -89,9 +89,9 @@
- ARCH_FLAGS*=
-
- # name of C++ Compiler
--CXX*=g++-3.2
-+CXX*=g++
- # name of C Compiler
--CC*=gcc-3.2
-+CC*=gcc
-
- CFLAGS+=-fsigned-char -fmessage-length=0 -c $(INCLUDE)
-
-@@ -151,7 +151,7 @@
- DYNAMIC = -Wl,-Bdynamic
-
- # name of linker
--LINK*=g++-3.2
-+LINK*=$(CXX)
- # default linker flags
- LINKFLAGS=
-
diff --git a/patches/src680/sal-compile-with-nptl.diff b/patches/src680/sal-compile-with-nptl.diff
deleted file mode 100644
index 1fd2733c0..000000000
--- a/patches/src680/sal-compile-with-nptl.diff
+++ /dev/null
@@ -1,144 +0,0 @@
---- sal/osl/unx/process.c.ark 2005-01-27 23:02:00.000000000 +0100
-+++ sal/osl/unx/process.c 2005-01-27 23:04:54.000000000 +0100
-@@ -533,7 +533,7 @@
- for (i = 0; data.m_pszEnv[i] != NULL; i++)
- putenv(data.m_pszEnv[i]);
-
--#if defined(LINUX)
-+#if defined(LINUX) && !defined(NPTL)
- /* mfe: linux likes to have just one thread when the exec family is called */
- /* this np function has this purpose ... */
- pthread_kill_other_threads_np();
---- config_office/configure.in.ark 2005-01-27 23:04:31.000000000 +0100
-+++ config_office/configure.in 2005-01-27 23:06:28.000000000 +0100
-@@ -546,6 +546,9 @@
- test_gtk=yes
- test_kde=yes
- test_cups=yes
-+ if getconf GNU_LIBPTHREAD_VERSION |grep -q NPTL; then
-+ PTHREAD_CFLAGS="-DNPTL"
-+ fi
- _os=Linux
- ;;
- gnu)
---- solenv/inc/unxlngp.mk.ark 2005-01-28 00:28:08.000000000 +0100
-+++ solenv/inc/unxlngp.mk 2005-01-28 00:28:18.000000000 +0100
-@@ -65,7 +65,7 @@
- AFLAGS=
-
- # _PTHREADS is needed for the stl
--CDEFS+=-D_PTHREADS -D_REENTRANT -DGLIBC=2
-+CDEFS+=$(PTHREAD_CFLAGS) -D_PTHREADS -D_REENTRANT -DGLIBC=2
- CDEFS+=-D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE
- CDEFS+=-DNO_INET_ON_DEMAND -DX86 -DNEW_SOLAR
-
---- solenv/inc/unxlngr.mk.ark 2005-01-28 00:28:33.000000000 +0100
-+++ solenv/inc/unxlngr.mk 2005-01-28 00:28:40.000000000 +0100
-@@ -73,7 +73,7 @@
- LINKOUTPUT_FILTER=" |& $(SOLARENV)$/bin$/msg_filter"
-
- # _PTHREADS is needed for the stl
--CDEFS+=-DGLIBC=2 -DARM32 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400
-+CDEFS+=$(PTHREAD_CFLAGS) -DGLIBC=2 -DARM32 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400
-
- # this is a platform with JAVA support
- .IF "$(SOLAR_JAVA)"!=""
---- solenv/inc/unxlngi5.mk.ark 2005-01-28 00:27:54.000000000 +0100
-+++ solenv/inc/unxlngi5.mk 2005-01-28 00:28:02.000000000 +0100
-@@ -72,7 +72,7 @@
- #LINKOUTPUT_FILTER=" |& $(SOLARENV)$/bin$/msg_filter"
-
- # _PTHREADS is needed for the stl
--CDEFS+=-DGLIBC=2 -DX86 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400
-+CDEFS+=$(PTHREAD_CFLAGS) -DGLIBC=2 -DX86 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400
-
- # enable visibility define in "sal/types.h"
- .IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
---- solenv/inc/unxlngppc4.mk.ark 2005-01-28 00:28:18.000000000 +0100
-+++ solenv/inc/unxlngppc4.mk 2005-01-28 00:28:24.000000000 +0100
-@@ -72,7 +72,7 @@
- #LINKOUTPUT_FILTER=" |& $(SOLARENV)$/bin$/msg_filter"
-
- # _PTHREADS is needed for the stl
--CDEFS+=-DGLIBC=2 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400 -DPOWERPC -DPPC
-+CDEFS+=$(PTHREAD_CFLAGS) -DGLIBC=2 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400 -DPOWERPC -DPPC
-
- # this is a platform with JAVA support
- .IF "$(SOLAR_JAVA)"!=""
---- solenv/inc/unxlngs3904.mk.ark 2005-01-28 00:28:40.000000000 +0100
-+++ solenv/inc/unxlngs3904.mk 2005-01-28 00:28:47.000000000 +0100
-@@ -72,7 +72,7 @@
- #LINKOUTPUT_FILTER=" |& $(SOLARENV)$/bin$/msg_filter"
-
- # _PTHREADS is needed for the stl
--CDEFS+=-DGLIBC=2 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400
-+CDEFS+=$(PTHREAD_CFLAGS) -DGLIBC=2 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400
-
- # this is a platform with JAVA support
- .IF "$(SOLAR_JAVA)"!=""
---- solenv/inc/unxlngs.mk.ark 2005-01-28 00:28:47.000000000 +0100
-+++ solenv/inc/unxlngs.mk 2005-01-28 00:28:53.000000000 +0100
-@@ -72,7 +72,7 @@
- #LINKOUTPUT_FILTER=" |& $(SOLARENV)$/bin$/msg_filter"
-
- # _PTHREADS is needed for the stl
--CDEFS+=-DGLIBC=2 -D_PTHREADS -D_REENTRANT -DSPARC -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400
-+CDEFS+=$(PTHREAD_CFLAGS) -DGLIBC=2 -D_PTHREADS -D_REENTRANT -DSPARC -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400
-
- # this is a platform with JAVA support
- .IF "$(SOLAR_JAVA)"!=""
---- solenv/inc/unxlngppc.mk.ark 2005-01-28 00:28:24.000000000 +0100
-+++ solenv/inc/unxlngppc.mk 2005-01-28 00:28:33.000000000 +0100
-@@ -73,7 +73,7 @@
- #LINKOUTPUT_FILTER=" |& $(SOLARENV)$/bin$/msg_filter"
-
- # _PTHREADS is needed for the stl
--CDEFS+=-DGLIBC=2 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400 -DPOWERPC -DPPC
-+CDEFS+=$(PTHREAD_CFLAGS) -DGLIBC=2 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400 -DPOWERPC -DPPC
-
- # this is a platform with JAVA support
- .IF "$(SOLAR_JAVA)"!=""
---- solenv/inc/unxlngi4.mk.ark 2005-01-28 00:27:47.000000000 +0100
-+++ solenv/inc/unxlngi4.mk 2005-01-28 00:27:54.000000000 +0100
-@@ -72,7 +72,7 @@
- #LINKOUTPUT_FILTER=" |& $(SOLARENV)$/bin$/msg_filter"
-
- # _PTHREADS is needed for the stl
--CDEFS+=-DGLIBC=2 -DX86 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400
-+CDEFS+=$(PTHREAD_CFLAGS) -DGLIBC=2 -DX86 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400
-
- # enable visibility define in "sal/types.h"
- .IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
---- solenv/inc/unxlngi6.mk.ark 2005-01-28 00:28:03.000000000 +0100
-+++ solenv/inc/unxlngi6.mk 2005-01-28 00:28:08.000000000 +0100
-@@ -72,7 +72,7 @@
- #LINKOUTPUT_FILTER=" |& $(SOLARENV)$/bin$/msg_filter"
-
- # _PTHREADS is needed for the stl
--CDEFS+=-DGLIBC=2 -DX86 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400
-+CDEFS+=$(PTHREAD_CFLAGS) -DGLIBC=2 -DX86 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400
-
- # enable visibility define in "sal/types.h"
- .IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
---- solenv/inc/unxlnxi.mk.ark 2005-01-28 00:29:00.000000000 +0100
-+++ solenv/inc/unxlnxi.mk 2005-01-28 00:29:06.000000000 +0100
-@@ -64,7 +64,7 @@
- AFLAGS=
-
- # _PTHREADS is needed for the stl
--CDEFS+=-D_PTHREADS
-+CDEFS+=$(PTHREAD_CFLAGS) -D_PTHREADS
- CDEFS+=-D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE
- CDEFS+=-DNO_INET_ON_DEMAND -DX86 -DNEW_SOLAR
-
---- solenv/inc/unxlngx6.mk 5 Oct 2005 11:36:34 -0000 1.2
-+++ solenv/inc/unxlngx6.mk 1 Nov 2005 19:12:24 -0000
-@@ -45,7 +45,7 @@ JAVAFLAGSDEBUG=-g
- #LINKOUTPUT_FILTER=" |& $(SOLARENV)$/bin$/msg_filter"
-
- # _PTHREADS is needed for the stl
--CDEFS+=-DGLIBC=2 -DX86_64 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400
-+CDEFS+=$(PTHREAD_CFLAGS) -DGLIBC=2 -DX86_64 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400
-
- # enable visibility define in "sal/types.h"
- .IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
diff --git a/patches/src680/sal-condition.diff b/patches/src680/sal-condition.diff
deleted file mode 100644
index 3fccc31e4..000000000
--- a/patches/src680/sal-condition.diff
+++ /dev/null
@@ -1,30 +0,0 @@
-Index: sal/osl/unx/conditn.c
-===================================================================
-RCS file: /cvs/porting/sal/osl/unx/conditn.c,v
-retrieving revision 1.4
-diff -u -p -u -r1.4 conditn.c
---- sal/osl/unx/conditn.c 16 Mar 2001 13:14:43 -0000 1.4
-+++ sal/osl/unx/conditn.c 10 Mar 2005 10:11:43 -0000
-@@ -234,13 +234,6 @@ sal_Bool SAL_CALL osl_resetCondition(osl
- }
-
- pCond->m_State = sal_False;
-- nRet = pthread_cond_broadcast(&pCond->m_Condition);
-- if ( nRet != 0 )
-- {
-- OSL_TRACE("osl_resetCondition : condition broadcast failed. Errno: %d; %s\n",
-- nRet, strerror(nRet));
-- return sal_False;
-- }
-
- nRet = pthread_mutex_unlock(&pCond->m_Lock);
- if ( nRet != 0 )
-@@ -278,7 +271,7 @@ oslConditionResult SAL_CALL osl_waitCond
- return osl_cond_result_error;
- }
-
-- while ( ! pCond->m_State )
-+ if ( ! pCond->m_State )
- {
- if ( pTimeout )
- {
diff --git a/patches/src680/sal-cxa-guard.diff b/patches/src680/sal-cxa-guard.diff
deleted file mode 100644
index fa65ddea1..000000000
--- a/patches/src680/sal-cxa-guard.diff
+++ /dev/null
@@ -1,80 +0,0 @@
---- sal/rtl/source/makefile.mk 25 Jun 2004 18:38:49 -0000 1.20
-+++ sal/rtl/source/makefile.mk 27 Sep 2004 12:00:47 -0000
-@@ -131,6 +131,8 @@ OBJFILES= $(OBJ)$/alloc.obj \
-
- .IF "$(OS)"=="LINUX"
-
-+OBJFILES+=$(OBJ)$/guard.obj
-+SLOFILES+=$(SLO)$/guard.obj
- #
- # This part builds a second version of alloc.c, with
- # FORCE_SYSALLOC defined. Is later used in util/makefile.mk
---- /dev/null 2004-09-27 08:17:09.511890880 +0100
-+++ sal/rtl/source/guard.c 2004-09-24 08:24:03.000000000 +0100
-@@ -0,0 +1,66 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+void __cxa_guard_release()
-+{}
-+
-+void __cxa_guard_acquire()
-+{}
diff --git a/patches/src680/sal-when-to-run-crash-report.diff b/patches/src680/sal-when-to-run-crash-report.diff
deleted file mode 100644
index 6fd3c9b32..000000000
--- a/patches/src680/sal-when-to-run-crash-report.diff
+++ /dev/null
@@ -1,35 +0,0 @@
---- sal/osl/unx/makefile.mk.old 2005-06-17 11:31:55.000000000 +0200
-+++ sal/osl/unx/makefile.mk 2005-09-01 15:10:06.000000000 +0200
-@@ -157,6 +157,10 @@
- .ENDIF
- .ENDIF
-
-+.IF "$(ENABLE_CRASHDUMP)" != "" || "$(PRODUCT)" == ""
-+CFLAGS+=-DENABLE_CRASH_REPORT
-+.ENDIF
-+
- .INCLUDE : target.mk
-
- .IF "$(OS)$(CPU)"=="SOLARISS" || "$(OS)$(CPU)"=="NETBSDS" || "$(OS)$(CPU)"=="LINUXS"
---- sal/osl/unx/signal.c.old 2005-05-23 17:52:37.000000000 +0200
-+++ sal/osl/unx/signal.c 2005-09-01 15:13:34.000000000 +0200
-@@ -410,6 +410,7 @@
-
- static int ReportCrash( int Signal )
- {
-+#ifdef ENABLE_CRASH_REPORT
- static sal_Bool bCrashReporterExecuted = sal_False;
- sal_Bool bAutoCrashReport = sal_False;
-
-@@ -688,6 +689,11 @@
- }
-
- return 1;
-+#else /* defined ENABLE_CRASH_REPORT */
-+ /* the utility crash_report is not build, so do the same as when
-+ the option -nocrashreport is used */
-+ return -1;
-+#endif /* defined ENABLE_CRASH_REPORT */
- }
-
- static void PrintStack( int sig )
diff --git a/patches/src680/sc-address.diff b/patches/src680/sc-address.diff
deleted file mode 100644
index 8e5b99963..000000000
--- a/patches/src680/sc-address.diff
+++ /dev/null
@@ -1,161 +0,0 @@
---- sc/source/filter/excel/excform.cxx 2005-04-19 09:07:42.000000000 +0530
-+++ sc/source/filter/excel/excform.cxx 2005-04-22 10:28:40.189224145 +0530
-@@ -1435,9 +1435,6 @@ void ExcelToSc::DoMulArgs( DefTokenId eI
- else if( eId == ocIndirect && nAnz == 2 )
- nSkipEnd = 0;
-
-- else if( eId == ocAdress && nAnz > 3 )
-- nNull = nAnz - 4;
--
- // Joost-Spezialfaelle
- else if( eId == ocIf )
- {
---- sc/source/ui/src/scfuncs.src 2005-04-14 09:49:55.000000000 +0530
-+++ sc/source/ui/src/scfuncs.src 2005-04-22 10:28:59.008693174 +0530
-@@ -9024,7 +9024,7 @@ Resource RID_SC_FUNCTION_DESCRIPTIONS2
- {
- ID_FUNCTION_GRP_TABLE;
- U2S( HID_FUNC_ADRESSE );
-- 4; 0; 0; 1; 1;
-+ 5; 0; 0; 1; 1; 1;
- };
- String 2 // Name of Parameter 1
- {
-@@ -9064,11 +9064,23 @@ Resource RID_SC_FUNCTION_DESCRIPTIONS2
- };
- String 8 // Name of Parameter 4
- {
-+ Text [ de ] = " ";
-+ Text [ en-US ] = "A1";
-+ Text [ x-comment ] = " ";
-+ };
-+ String 9 // Description of Parameter 4
-+ {
-+ Text [ de ] = " ";
-+ Text [ en-US ] = "If TRUE (or 1) or omitted generate A1 style address, otherwise produce R1C1 style address.";
-+ Text [ x-comment ] = " ";
-+ };
-+ String 10 // Name of Parameter 5
-+ {
- Text [ de ] = "Tabelle" ;
- Text [ en-US ] = "sheet" ;
- Text [ x-comment ] = " ";
- };
-- String 9 // Description of Parameter 4
-+ String 11 // Description of Parameter 5
- {
- Text [ de ] = "Der Tabellenname des Zellbezugs." ;
- Text [ en-US ] = "The spreadsheet name of the cell reference." ;
---- sc/source/filter/excel/xeformula.cxx 2005-04-14 09:50:11.000000000 +0530
-+++ sc/source/filter/excel/xeformula.cxx 2005-04-22 10:28:28.800755995 +0530
-@@ -1398,9 +1398,6 @@ void XclExpFmlaCompImpl::AppendDefaultPa
-
- switch( rFuncData.GetOpCode() )
- {
-- case ocAdress:
-- AppendBoolToken( true );
-- break;
- case ocExternal:
- AppendAddInFuncToken( rFuncData.GetExtFuncName(), EXC_TOKCLASS_REF );
- break;
---- sc/source/filter/excel/xlformula.cxx 2005-04-14 09:50:10.000000000 +0530
-+++ sc/source/filter/excel/xlformula.cxx 2005-04-22 10:28:32.897204965 +0530
-@@ -227,7 +227,7 @@ static const XclFunctionInfo saFuncTable
- { ocRKP, 51, 1, 4, A, { R, R, V, V } }, // BIFF2: 1-2, BIFF3: 1-4
- { ocGrowth, 52, 1, 4, A, { R, R, R, V } }, // BIFF2: 1-3, BIFF3: 1-4
- { ocTrunc, 197, 1, 2, V, { V } }, // BIFF2: 1, BIFF3: 1-2
-- { ocAdress, 219, 2, 5, V, { V, V, V, E, V } },
-+ { ocAdress, 219, 2, 5, V, { V, V, V, V, V } },
- { ocGetDiffDate360, 220, 2, 2, V, { V, V, C, I } },
- { ocGetActDate, 221, 0, 0, V, {}, true },
- { ocVBD, 222, 5, 7, V, { V } },
---- sc/source/core/tool/interpr1.cxx 2005-04-22 10:38:28.000000000 +0530
-+++ sc/source/core/tool/interpr1.cxx 2005-04-25 15:03:00.965600393 +0530
-@@ -5311,41 +5311,76 @@ void ScInterpreter::ScIndirect()
- }
- }
-
-+static String lcl_getSBraN(sal_Int64 n)
-+{
-+ String aStr;
-+ aStr.Insert('[');
-+ aStr.Insert(String::CreateFromInt64(n));
-+ aStr.Insert(']');
-+ return aStr;
-+}
-
- void ScInterpreter::ScAdress()
-+// named as ScAdress to avoid confusion with ScAddress (class)
- {
- BYTE nParamCount = GetByte();
-- if ( MustHaveParamCount( nParamCount, 2, 4 ) )
-+ if ( MustHaveParamCount( nParamCount, 2, 5 ) )
- {
- String sTabStr;
-+ bool bA1 = TRUE;
-+
- USHORT nAbs = 1;
-- if (nParamCount == 4)
-+ if (nParamCount == 5)
- sTabStr = GetString();
-+
-+ if (nParamCount >= 4)
-+ bA1 = GetBool();
-+
- if (nParamCount >= 3)
- nAbs = (USHORT) ::rtl::math::approxFloor(GetDouble());
-+
- SCCOL nCol = (SCCOL) ::rtl::math::approxFloor(GetDouble());
- SCROW nRow = (SCROW) ::rtl::math::approxFloor(GetDouble());
- if (nCol < 1 || nCol > MAXCOL + 1 || nRow < 1 || nRow > MAXROW + 1)
- {
-- SetIllegalParameter();
-+ SetNV();
- return;
- }
-- else
-+
-+ if (bA1 == TRUE)
- {
- nRow--;
- nCol--;
- }
- String aRefStr;
- ScAddress aAdr( nCol, nRow, 0);
-- if (nAbs == 4)
-- aRefStr = aAdr.GetColRowString();
-+ if (nAbs > 8 || nAbs == 0)
-+ {
-+ SetNV();
-+ return;
-+ }
-+ if (nAbs > 4 )
-+ nAbs -= 4;
-+
-+ if (bA1 == TRUE)
-+ {
-+ nAbs--; // map from 1..4 -> 0..3
-+ aRefStr = ScRefAddress (aAdr, ((nAbs & 1) != 0), ((nAbs & 2) != 0),
-+ true).GetRefString(pDok,0);
-+ }
- else
- {
-- aRefStr = aAdr.GetColRowString(TRUE);
-- if (nAbs == 2)
-- aRefStr.EraseLeadingChars('$');
-- else if (nAbs == 3)
-- aRefStr.Erase(aRefStr.Search('$',1),1);
-+ aRefStr = String('R');
-+ if (nAbs == 3 || nAbs == 4)
-+ aRefStr.Insert( lcl_getSBraN( nRow ) );
-+ else
-+ aRefStr.Insert( String::CreateFromInt64( nRow ) );
-+
-+ aRefStr.Insert('C');
-+ if (nAbs == 2 || nAbs == 4)
-+ aRefStr.Insert( lcl_getSBraN( nCol ) );
-+ else
-+ aRefStr.Insert( String::CreateFromInt64( nCol ) );
- }
- if ( sTabStr.Len() )
- {
diff --git a/patches/src680/sc-autofilter-autotrim-choices.diff b/patches/src680/sc-autofilter-autotrim-choices.diff
deleted file mode 100644
index 9e6bf02fd..000000000
--- a/patches/src680/sc-autofilter-autotrim-choices.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-diff -u -r ../src680-m72.bak/sc/source/core/data/column3.cxx sc/source/core/data/column3.cxx
---- ../src680-m72.bak/sc/source/core/data/column3.cxx 2005-02-02 10:11:23.000000000 +0530
-+++ sc/source/core/data/column3.cxx 2005-02-08 14:42:49.389028728 +0530
-@@ -1467,6 +1467,12 @@
- TypedStrData* pData;
- ULONG nFormat = GetNumberFormat( nRow );
-
-+ if ( pDocument->RowFiltered(nRow, nTab))
-+ {
-+ ++nIndex;
-+ continue;
-+ }
-+
- ScCellFormat::GetInputString( pCell, nFormat, aString, *pFormatter );
-
- if ( pDocument->HasStringData( nCol, nRow, nTab ) )
diff --git a/patches/src680/sc-autofilter-empty-nonempty.diff b/patches/src680/sc-autofilter-empty-nonempty.diff
deleted file mode 100644
index 564dd650a..000000000
--- a/patches/src680/sc-autofilter-empty-nonempty.diff
+++ /dev/null
@@ -1,42 +0,0 @@
---- /home/sragavan/cvs/bk/ooo-build/build/OOO_1_1_2/sc/source/ui/view/gridwin.cxx 2003-06-02 12:58:42.000000000 +0530
-+++ sc/source/ui/view/gridwin.cxx 2004-10-11 11:22:24.000000000 +0530
-@@ -159,6 +159,8 @@
- #define SC_AUTOFILTER_ALL 0
- #define SC_AUTOFILTER_CUSTOM 1
- #define SC_AUTOFILTER_TOP10 2
-+#define SC_AUTOFILTER_EMPTY 3
-+#define SC_AUTOFILTER_NOTEMPTY 4
-
- // Modi fuer die FilterListBox
- enum ScFilterBoxMode
-@@ -711,7 +713,7 @@
- long nMaxText = 0;
-
- // default entries
-- static const USHORT nDefIDs[] = { SCSTR_ALL, SCSTR_STDFILTER, SCSTR_TOP10FILTER };
-+ static const USHORT nDefIDs[] = { SCSTR_ALL, SCSTR_STDFILTER, SCSTR_TOP10FILTER, SCSTR_EMPTY, SCSTR_NOTEMPTY };
- const USHORT nDefCount = sizeof(nDefIDs) / sizeof(USHORT);
- for (i=0; i<nDefCount; i++)
- {
-@@ -1087,6 +1089,21 @@
- rNewEntry.eOp = SC_TOPVAL;
- *rNewEntry.pStr = String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("10"));
- }
-+ else if (nSel == SC_AUTOFILTER_EMPTY)
-+ {
-+ rNewEntry.pStr->Erase();
-+ rNewEntry.bQueryByString = FALSE;
-+ rNewEntry.eOp = SC_EQUAL;
-+ rNewEntry.nVal = SC_EMPTYFIELDS;
-+
-+ }
-+ else if (nSel == SC_AUTOFILTER_NOTEMPTY)
-+ {
-+ rNewEntry.pStr->Erase();
-+ rNewEntry.bQueryByString = FALSE;
-+ rNewEntry.eOp = SC_EQUAL;
-+ rNewEntry.nVal = SC_NONEMPTYFIELDS;
-+ }
- else
- {
- rNewEntry.eOp = SC_EQUAL;
diff --git a/patches/src680/sc-change-record-dnd.diff b/patches/src680/sc-change-record-dnd.diff
deleted file mode 100644
index 21ee26cc6..000000000
--- a/patches/src680/sc-change-record-dnd.diff
+++ /dev/null
@@ -1,45 +0,0 @@
-diff -u -r ../src680-m79.bak/sc/source/ui/docshell/dbdocimp.cxx sc/source/ui/docshell/dbdocimp.cxx
---- ../src680-m79.bak/sc/source/ui/docshell/dbdocimp.cxx 2005-03-09 10:21:05.000000000 +0530
-+++ sc/source/ui/docshell/dbdocimp.cxx 2005-03-14 16:43:44.251843333 +0530
-@@ -100,6 +100,7 @@
- #include "dbdocutl.hxx"
- #include "editable.hxx"
- #include "hints.hxx"
-+#include "chgtrack.hxx"
-
- using namespace com::sun::star;
-
-@@ -249,6 +250,8 @@
- const SbaSelectionList* pSelection, BOOL bRecord, BOOL bAddrInsert )
- {
- ScDocument* pDoc = rDocShell.GetDocument();
-+ ScChangeTrack *pChangeTrack = NULL;
-+ ScRange aChangedRange;
-
- if (bRecord && !pDoc->IsUndoEnabled())
- bRecord = FALSE;
-@@ -523,11 +526,9 @@
- nErrStringId = aTester.GetMessageId();
- bSuccess = FALSE;
- }
-- else if ( pDoc->GetChangeTrack() != NULL )
-- {
-- nErrStringId = STR_PROTECTIONERR;
-- bSuccess = FALSE;
-- }
-+ else if ( (pChangeTrack = pDoc->GetChangeTrack()) != NULL )
-+ aChangedRange = ScRange(rParam.nCol1, rParam.nRow1, nTab,
-+ nEndCol+nFormulaCols, nEndRow, nTab );
- }
-
- if ( bSuccess && bMoveCells )
-@@ -742,6 +743,9 @@
-
- delete pImportDoc;
-
-+ if (bSuccess && pChangeTrack)
-+ pChangeTrack->AppendInsert ( aChangedRange );
-+
- return bSuccess;
- }
-
diff --git a/patches/src680/sc-csvfix-ui.diff b/patches/src680/sc-csvfix-ui.diff
deleted file mode 100644
index 39a739602..000000000
--- a/patches/src680/sc-csvfix-ui.diff
+++ /dev/null
@@ -1,203 +0,0 @@
---- sc/source/ui/docshell/docsh.cxx 2005-08-09 22:09:17.000000000 +0530
-+++ sc/source/ui/docshell/docsh.cxx 2005-08-09 22:05:01.000000000 +0530
-@@ -1389,6 +1389,7 @@ void ScDocShell::AsciiSave( SvStream& rS
- sal_Unicode cStrDelim = rAsciiOpt.nTextSepCode;
- CharSet eCharSet = rAsciiOpt.eCharSet;
- BOOL bFixedWidth = rAsciiOpt.bFixedWidth;
-+ BOOL bSaveAsRendered = rAsciiOpt.bSaveAsRendered;
-
- CharSet eOldCharSet = rStream.GetStreamCharSet();
- rStream.SetStreamCharSet( eCharSet );
-@@ -1575,7 +1576,7 @@ void ScDocShell::AsciiSave( SvStream& rS
- {
- ULONG nFormat;
- aDocument.GetNumberFormat( nCol, nRow, nTab, nFormat );
-- if ( bFixedWidth )
-+ if ( bFixedWidth || bSaveAsRendered )
- {
- Color* pDummy;
- ScCellFormat::GetString( pCell, nFormat, aString, &pDummy, rFormatter );
---- sc/source/ui/dbgui/imoptdlg.cxx 2005-08-09 22:08:50.000000000 +0530
-+++ sc/source/ui/dbgui/imoptdlg.cxx 2005-08-09 22:08:28.064027648 +0530
-@@ -368,6 +368,7 @@ ScImportOptions::ScImportOptions( const
- nTextSepCode = (sal_Unicode) rStr.GetToken(1,',').ToInt32();
- aStrFont = rStr.GetToken(2,',');
- eCharSet = ScGlobal::GetCharsetValue(aStrFont);
-+ bSaveAsRendered = (BOOL) (rStr.GetToken( 3, ',' ).ToInt32());
- }
- }
-
-@@ -385,6 +386,8 @@ String ScImportOptions::BuildString() co
- aResult += String::CreateFromInt32(nTextSepCode);
- aResult += ',';
- aResult += aStrFont;
-+ aResult += ',';
-+ aResult += String::CreateFromInt32( (sal_Int32)bSaveAsRendered );
-
- return aResult;
- }
---- sc/source/ui/dbgui/imoptdlg.hrc 2005-08-09 20:21:43.000000000 +0530
-+++ sc/source/ui/dbgui/imoptdlg.hrc 2005-08-09 22:10:14.064913064 +0530
-@@ -74,4 +74,5 @@
- #define LB_FONT 10
- #define FL_FIELDOPT 11
- #define CB_FIXEDWIDTH 12
-+#define CB_SAVERENDER 13
-
---- sc/source/ui/inc/imoptdlg.hxx 2005-08-09 20:22:05.000000000 +0530
-+++ sc/source/ui/inc/imoptdlg.hxx 2005-08-09 22:07:49.000000000 +0530
-@@ -143,44 +143,47 @@ class SC_DLLPUBLIC ScImportOptions
- {
- public:
- ScImportOptions()
-- : nFieldSepCode(0),nTextSepCode(0),eCharSet(RTL_TEXTENCODING_DONTKNOW),bFixedWidth(FALSE)
-+ : nFieldSepCode(0),nTextSepCode(0),eCharSet(RTL_TEXTENCODING_DONTKNOW),bFixedWidth(FALSE),bSaveAsRendered(FALSE)
- {}
- ScImportOptions( const String& rStr );
-
- ScImportOptions( sal_Unicode nFieldSep, sal_Unicode nTextSep, const String& rStr )
-- : nFieldSepCode(nFieldSep),nTextSepCode(nTextSep),aStrFont(rStr),bFixedWidth(FALSE)
-+ : nFieldSepCode(nFieldSep),nTextSepCode(nTextSep),aStrFont(rStr),bFixedWidth(FALSE),bSaveAsRendered(FALSE)
- { eCharSet = ScGlobal::GetCharsetValue(aStrFont); }
-
- ScImportOptions( sal_Unicode nFieldSep, sal_Unicode nTextSep, rtl_TextEncoding nEnc )
-- : nFieldSepCode(nFieldSep),nTextSepCode(nTextSep),bFixedWidth(FALSE)
-+ : nFieldSepCode(nFieldSep),nTextSepCode(nTextSep),bFixedWidth(FALSE),bSaveAsRendered(FALSE)
- { SetTextEncoding( nEnc ); }
-
- ScImportOptions( const ScImportOptions& rCpy )
-- : nFieldSepCode (rCpy.nFieldSepCode),
-- nTextSepCode (rCpy.nTextSepCode),
-- aStrFont (rCpy.aStrFont),
-- eCharSet (rCpy.eCharSet),
-- bFixedWidth (rCpy.bFixedWidth)
-+ : nFieldSepCode (rCpy.nFieldSepCode),
-+ nTextSepCode (rCpy.nTextSepCode),
-+ aStrFont (rCpy.aStrFont),
-+ eCharSet (rCpy.eCharSet),
-+ bFixedWidth (rCpy.bFixedWidth),
-+ bSaveAsRendered (rCpy.bSaveAsRendered)
- {}
-
- ScImportOptions& operator=( const ScImportOptions& rCpy )
- {
-- nFieldSepCode = rCpy.nFieldSepCode;
-- nTextSepCode = rCpy.nTextSepCode;
-- aStrFont = rCpy.aStrFont;
-- eCharSet = rCpy.eCharSet;
-- bFixedWidth = rCpy.bFixedWidth;
-+ nFieldSepCode = rCpy.nFieldSepCode;
-+ nTextSepCode = rCpy.nTextSepCode;
-+ aStrFont = rCpy.aStrFont;
-+ eCharSet = rCpy.eCharSet;
-+ bFixedWidth = rCpy.bFixedWidth;
-+ bSaveAsRendered = rCpy.bSaveAsRendered;
- return *this;
- }
-
- BOOL operator==( const ScImportOptions& rCmp )
- {
- return
-- nFieldSepCode == rCmp.nFieldSepCode
-- && nTextSepCode == rCmp.nTextSepCode
-- && eCharSet == rCmp.eCharSet
-- && aStrFont == rCmp.aStrFont
-- && bFixedWidth == rCmp.bFixedWidth;
-+ nFieldSepCode == rCmp.nFieldSepCode
-+ && nTextSepCode == rCmp.nTextSepCode
-+ && eCharSet == rCmp.eCharSet
-+ && aStrFont == rCmp.aStrFont
-+ && bFixedWidth == rCmp.bFixedWidth
-+ && bSaveAsRendered == rCmp.bSaveAsRendered;
- }
- String BuildString() const;
-
-@@ -191,6 +194,7 @@ public:
- String aStrFont;
- CharSet eCharSet;
- BOOL bFixedWidth;
-+ BOOL bSaveAsRendered;
- };
-
-
---- sc/source/ui/dbgui/scuiimoptdlg.cxx 2005-08-09 20:22:31.000000000 +0530
-+++ sc/source/ui/dbgui/scuiimoptdlg.cxx 2005-08-09 22:10:52.432080368 +0530
-@@ -173,7 +173,8 @@ ScImportOptionsDlg::ScImportOptionsDlg(
- aFtFont ( this, ScResId( FT_FONT ) ),
- aLbFont ( this, ScResId( bAscii ? DDLB_FONT : LB_FONT ) ),
- aFlFieldOpt ( this, ScResId( FL_FIELDOPT ) ),
-- aCbFixed ( this, ScResId( CB_FIXEDWIDTH ) )
-+ aCbFixed ( this, ScResId( CB_FIXEDWIDTH ) ),
-+ aCbRender ( this, ScResId( CB_SAVERENDER ) )
- {
- // im Ctor-Initializer nicht moeglich (MSC kann das nicht):
- pFieldSepTab = new ScDelimiterTable( String(ScResId(SCSTR_FIELDSEP)) );
-@@ -250,6 +251,8 @@ ScImportOptionsDlg::ScImportOptionsDlg(
- aCbFixed.Show();
- aCbFixed.SetClickHdl( LINK( this, ScImportOptionsDlg, FixedWidthHdl ) );
- aCbFixed.Check( FALSE );
-+ aCbRender.Show();
-+ aCbRender.Check( FALSE );
- }
- else
- {
-@@ -260,6 +263,7 @@ ScImportOptionsDlg::ScImportOptionsDlg(
- aEdFieldSep.Hide();
- aEdTextSep.Hide();
- aCbFixed.Hide();
-+ aCbRender.Hide();
- aLbFont.GrabFocus();
- aLbFont.SetDoubleClickHdl( LINK( this, ScImportOptionsDlg, DoubleClickHdl ) );
- }
-@@ -293,6 +297,7 @@ void ScImportOptionsDlg::GetImportOption
- rOptions.nFieldSepCode = GetCodeFromCombo( aEdFieldSep );
- rOptions.nTextSepCode = GetCodeFromCombo( aEdTextSep );
- rOptions.bFixedWidth = aCbFixed.IsChecked();
-+ rOptions.bSaveAsRendered = aCbRender.IsChecked();
- }
- }
-
-@@ -335,6 +340,7 @@ IMPL_LINK( ScImportOptionsDlg, FixedWidt
- aEdFieldSep.Enable( bEnable );
- aFtTextSep.Enable( bEnable );
- aEdTextSep.Enable( bEnable );
-+ aCbRender.Enable( bEnable );
- }
- return 0;
- }
---- sc/source/ui/inc/scuiimoptdlg.hxx 2005-08-09 22:19:09.248552784 +0530
-+++ sc/source/ui/inc/scuiimoptdlg.hxx 2005-08-09 22:19:27.905716464 +0530
-@@ -96,6 +96,7 @@ private:
- OKButton aBtnOk;
- CancelButton aBtnCancel;
- HelpButton aBtnHelp;
-+ CheckBox aCbRender;
-
- ScDelimiterTable* pFieldSepTab;
- ScDelimiterTable* pTextSepTab;
---- sc/source/ui/dbgui/imoptdlg.src 2005-08-09 20:17:17.000000000 +0530
-+++ sc/source/ui/dbgui/imoptdlg.src 2005-08-31 07:48:22.000000000 +0530
-@@ -134,12 +134,22 @@ ModalDialog RID_SCDLG_IMPORTOPT
- };
- CheckBox CB_FIXEDWIDTH
- {
-- Pos = MAP_APPFONT( 12, 66 );
-+ Pos = MAP_APPFONT( 12, 80 );
- Size = MAP_APPFONT( 172, 10 );
- Hide = TRUE;
- Text [ de ] = "Feste Spalten~breite";
- Text [ en-US ] = "Fixed column ~width";
- };
-+ CheckBox CB_SAVERENDER
-+ {
-+ Pos = MAP_APPFONT( 12, 66 );
-+ Size = MAP_APPFONT( 172, 10 );
-+ TabStop = TRUE;
-+ Hide = TRUE;
-+ Text [ de ] = " ";
-+ Text [ en-US ] = "Save as ~Rendered";
-+ Text [ x-comment ] = " ";
-+ };
- OKButton BTN_OK
- {
- Pos = MAP_APPFONT ( 202 , 6 ) ;
diff --git a/patches/src680/sc-datapilot-autoformat.diff b/patches/src680/sc-datapilot-autoformat.diff
deleted file mode 100644
index 6b5ca6a64..000000000
--- a/patches/src680/sc-datapilot-autoformat.diff
+++ /dev/null
@@ -1,341 +0,0 @@
-diff -u -r ../../../sc.bak/inc/dpobject.hxx sc/inc/dpobject.hxx
---- ../../../sc.bak/inc/dpobject.hxx 2004-12-22 14:05:07.000000000 +0530
-+++ sc/inc/dpobject.hxx 2005-01-11 13:20:14.887574368 +0530
-@@ -142,6 +142,7 @@
- ScDPOutput* pOutput;
- BOOL bSettingsChanged;
- BOOL bAlive; // FALSE if only used to hold settings
-+ USHORT nAutoFormatIndex;
- BOOL bAllowMove;
- BOOL bInfoValid; // affects: nHeaderRows
- long nHeaderRows; // page fields plus filter button
-@@ -172,6 +173,9 @@
- void SetOutRange(const ScRange& rRange);
- const ScRange& GetOutRange() const { return aOutRange; }
-
-+ void SetAutoFormatIndex (const USHORT nIndex);
-+ const USHORT GetAutoFormatIndex () { if (this == NULL) return 65535; else return nAutoFormatIndex; }
-+
- void SetSheetDesc(const ScSheetSourceDesc& rDesc);
- void SetImportDesc(const ScImportSourceDesc& rDesc);
- void SetServiceData(const ScDPServiceDesc& rDesc);
-diff -u -r ../../../sc.bak/inc/sc.hrc sc/inc/sc.hrc
---- ../../../sc.bak/inc/sc.hrc 2004-12-22 14:05:07.000000000 +0530
-+++ sc/inc/sc.hrc 2005-01-11 13:19:28.850573056 +0530
-@@ -1608,6 +1608,7 @@
- #define RID_SCDLG_DPDATEGROUP (SC_DIALOGS_START + 136)
- #define RID_SCDLG_DPSHOWDETAIL (SC_DIALOGS_START + 137)
-
-+#define SID_PIVOT_AFMT (SC_DIALOGS_START + 133)
- #define SC_DIALOGS_END (SC_DIALOGS_START + 150)
-
- #ifndef STD_MASKCOLOR
-diff -u -r ../../../sc.bak/sdi/pivotsh.sdi sc/sdi/pivotsh.sdi
---- ../../../sc.bak/sdi/pivotsh.sdi 2004-12-22 14:05:07.000000000 +0530
-+++ sc/sdi/pivotsh.sdi 2005-01-11 13:19:28.000000000 +0530
-@@ -65,6 +65,7 @@
- SID_PIVOT_RECALC [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
- SID_PIVOT_KILL [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
- SID_DP_FILTER [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
-+ SID_PIVOT_AFMT [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
- }
-
- shell ScPivotShell
-diff -u -r ../../../sc.bak/sdi/scalc.sdi sc/sdi/scalc.sdi
---- ../../../sc.bak/sdi/scalc.sdi 2004-12-22 14:05:07.000000000 +0530
-+++ sc/sdi/scalc.sdi 2005-01-11 13:19:28.000000000 +0530
-@@ -1906,6 +1906,31 @@
- GroupId = GID_DATA;
- ]
-
-+SfxVoidItem AutoFormatPivotTable SID_PIVOT_AFMT
-+()
-+[
-+ /* flags: */
-+ AutoUpdate = FALSE,
-+ Cachable = Cachable,
-+ FastCall = FALSE,
-+ HasCoreId = FALSE,
-+ HasDialog = FALSE,
-+ ReadOnlyDoc = TRUE,
-+ Toggle = FALSE,
-+ Container = FALSE,
-+ RecordAbsolute = FALSE,
-+ RecordPerSet;
-+ Synchron;
-+
-+ /* config: */
-+ AccelConfig = FALSE,
-+ MenuConfig = TRUE,
-+ StatusBarConfig = FALSE,
-+ ToolBoxConfig = FALSE,
-+ GroupId = GID_DATA;
-+]
-+
-+
- //--------------------------------------------------------------------------
- SfxVoidItem DeletePrintArea SID_DELETE_PRINTAREA
- ()
-diff -u -r ../../../sc.bak/source/core/data/dpobject.cxx sc/source/core/data/dpobject.cxx
---- ../../../sc.bak/source/core/data/dpobject.cxx 2004-12-22 14:05:08.000000000 +0530
-+++ sc/source/core/data/dpobject.cxx 2005-01-11 13:19:28.863571080 +0530
-@@ -182,6 +182,7 @@
- pImpDesc( NULL ),
- pServDesc( NULL ),
- pOutput( NULL ),
-+ nAutoFormatIndex(65535),
- bSettingsChanged( FALSE )
- {
- }
-@@ -196,6 +197,7 @@
- aTableName( r.aTableName ),
- aTableTag( r.aTableTag ),
- aOutRange( r.aOutRange ),
-+ nAutoFormatIndex(r.nAutoFormatIndex),
- pSheetDesc( NULL ),
- pImpDesc( NULL ),
- pServDesc( NULL ),
-@@ -245,6 +247,11 @@
- InvalidateData(); // re-init source from SaveData
- }
-
-+void ScDPObject::SetAutoFormatIndex(const USHORT nIndex)
-+{
-+ nAutoFormatIndex = nIndex;
-+}
-+
- void ScDPObject::SetOutRange(const ScRange& rRange)
- {
- aOutRange = rRange;
-diff -u -r ../../../sc.bak/source/ui/docshell/dbdocfun.cxx sc/source/ui/docshell/dbdocfun.cxx
---- ../../../sc.bak/source/ui/docshell/dbdocfun.cxx 2004-12-22 14:05:08.000000000 +0530
-+++ sc/source/ui/docshell/dbdocfun.cxx 2005-01-11 13:54:59.264700880 +0530
-@@ -1376,6 +1376,36 @@
- delete pNewUndoDoc;
- delete pUndoDPObj;
-
-+ if (const_cast<ScDPObject *>(pNewObj)->GetAutoFormatIndex() != 65535)
-+ {
-+ ScViewData* pViewData = rDocShell.GetViewData();
-+ ScDocument* pDoc = pViewData->GetDocument();
-+ rDocShell.GetViewData()->GetViewShell()->GetDBData( TRUE, SC_DB_OLD );
-+ const ScMarkData& rMark1 = pViewData->GetMarkData();
-+ SCCOL nStartCol;
-+ SCROW nStartRow;
-+ SCTAB nStartTab;
-+ SCCOL nEndCol;
-+ SCROW nEndRow;
-+ SCTAB nEndTab;
-+
-+ rDocShell.GetViewData()->GetSimpleArea( nStartCol,nStartRow,nStartTab,nEndCol,nEndRow,nEndTab );
-+ ScRange Outrange = pNewObj->GetOutRange();
-+ if (( (Outrange.aStart.Col() <= nStartCol) && (nStartCol <= Outrange.aEnd.Col() )&& (nStartTab == Outrange.aStart.Tab()))
-+ && ( (Outrange.aStart.Row() <= nStartRow) && (nStartRow <= Outrange.aEnd.Row() )) )
-+ {
-+
-+ if ( !rMark1.IsMarked() && !rMark1.IsMultiMarked() )
-+ rDocShell.GetViewData()->GetViewShell()->MarkDataArea( TRUE );
-+ //FIXME: Autoformat even when clicked from a non-dp cell.
-+ pViewData->MoveNextRow();
-+ rDocShell.GetViewData()->GetViewShell()->AutoFormat( const_cast<ScDPObject *>(pNewObj)->GetAutoFormatIndex());
-+ rDocShell.GetViewData()->GetViewShell()->AutoFormatPivotTable( const_cast<ScDPObject *>(pNewObj), const_cast<ScDPObject *>(pNewObj)->GetAutoFormatIndex() );
-+ pViewData->MovePrevRow();
-+ }
-+ }
-+
-+
- if (bDone)
- aModificator.SetDocumentModified();
-
-diff -u -r ../../../sc.bak/source/ui/inc/dbfunc.hxx sc/source/ui/inc/dbfunc.hxx
---- ../../../sc.bak/source/ui/inc/dbfunc.hxx 2004-12-22 14:05:07.000000000 +0530
-+++ sc/source/ui/inc/dbfunc.hxx 2005-01-11 13:21:00.515637848 +0530
-@@ -117,6 +117,8 @@
- const ScDPObject& rSource, BOOL bApi = FALSE );
- void DeletePivotTable();
- void RecalcPivotTable();
-+ void AutoFormatPivotTable(USHORT nIndex);
-+ void AutoFormatPivotTable(ScDPObject* pDPObj, USHORT nIndex);
-
- BOOL HasSelectionForDateGroup( ScDPNumGroupInfo& rOldInfo, sal_Int32& rParts );
- BOOL HasSelectionForNumGroup( ScDPNumGroupInfo& rOldInfo );
-diff -u -r ../../../sc.bak/source/ui/inc/viewdata.hxx sc/source/ui/inc/viewdata.hxx
---- ../../../sc.bak/source/ui/inc/viewdata.hxx 2004-12-22 14:05:07.000000000 +0530
-+++ sc/source/ui/inc/viewdata.hxx 2005-01-11 13:21:48.324369816 +0530
-@@ -331,6 +331,9 @@
-
- BOOL GetSimpleArea( SCCOL& rStartCol, SCROW& rStartRow, SCTAB& rStartTab,
- SCCOL& rEndCol, SCROW& rEndRow, SCTAB& rEndTab );
-+ void MoveNextRow();
-+ void MovePrevRow();
-+
- BOOL GetSimpleArea( ScRange& rRange );
- void GetMultiArea( ScRangeListRef& rRange );
-
-diff -u -r ../../../sc.bak/source/ui/miscdlgs/makefile.mk sc/source/ui/miscdlgs/makefile.mk
---- ../../../sc.bak/source/ui/miscdlgs/makefile.mk 2004-12-22 14:05:08.000000000 +0530
-+++ sc/source/ui/miscdlgs/makefile.mk 2005-01-11 14:43:07.477625776 +0530
-@@ -136,7 +136,9 @@
- $(SLO)$/highred.obj \
- $(SLO)$/simpref.obj \
- $(SLO)$/redcom.obj \
-- $(SLO)$/warnbox.obj
-+ $(SLO)$/warnbox.obj \
-+ $(SLO)$/scuiautofmt.obj \
-+ $(SLO)$/strindlg.obj
-
- # --- Tagets -------------------------------------------------------
-
-diff -u -r ../../../sc.bak/source/ui/src/popup.src sc/source/ui/src/popup.src
---- ../../../sc.bak/source/ui/src/popup.src 2004-12-22 14:05:07.000000000 +0530
-+++ sc/source/ui/src/popup.src 2005-01-11 13:25:54.836894216 +0530
-@@ -262,6 +262,13 @@
- Text [ x-comment ] = " ";
- };
- MenuItem
-+ {
-+ Identifier = SID_PIVOT_AFMT ;
-+ HelpId = SID_PIVOT_AFMT ;
-+ Text = "A~ktualisieren" ;
-+ Text [ en-US ] = "~AutoFormat..." ;
-+ };
-+ MenuItem
- {
- Identifier = SID_PIVOT_RECALC ;
- HelpId = SID_PIVOT_RECALC ;
-diff -u -r ../../../sc.bak/source/ui/view/dbfunc3.cxx sc/source/ui/view/dbfunc3.cxx
---- ../../../sc.bak/source/ui/view/dbfunc3.cxx 2004-12-22 14:05:08.000000000 +0530
-+++ sc/source/ui/view/dbfunc3.cxx 2005-01-11 13:19:28.894566368 +0530
-@@ -1794,7 +1794,29 @@
- else // "Keine Operationen auszufuehren"
- ErrorMessage(STR_MSSG_REPEATDB_0);
- }
-+void ScDBFunc::AutoFormatPivotTable(USHORT nIndex)
-+{
-+ ScDocShell* pDocSh = GetViewData()->GetDocShell();
-+ ScDocument* pDoc = GetViewData()->GetDocument();
-
-+ // old pivot not used any more
-+
-+ ScDPObject* pDPObj = pDoc->GetDPAtCursor( GetViewData()->GetCurX(),
-+ GetViewData()->GetCurY(),
-+ GetViewData()->GetTabNo() );
-+ if ( pDPObj )
-+ {
-+ pDPObj->SetAutoFormatIndex(nIndex);
-+ }
-+ else
-+ ErrorMessage(STR_PIVOT_NOTFOUND);
-+
-+}
-+
-+void ScDBFunc::AutoFormatPivotTable(ScDPObject* pDPObj, USHORT nIndex)
-+{
-+ pDPObj->SetAutoFormatIndex(nIndex);
-+}
-
-
-
-diff -u -r ../../../sc.bak/source/ui/view/pivotsh.cxx sc/source/ui/view/pivotsh.cxx
---- ../../../sc.bak/source/ui/view/pivotsh.cxx 2004-12-22 14:05:08.000000000 +0530
-+++ sc/source/ui/view/pivotsh.cxx 2005-01-11 13:46:00.779563064 +0530
-@@ -88,6 +88,12 @@
- #include "uiitems.hxx"
- //CHINA001 #include "pfiltdlg.hxx"
- #include "scabstdlg.hxx" //CHINA001
-+
-+#include "autoform.hxx"
-+#include "scuiautofmt.hxx"
-+#include "editable.hxx"
-+
-+
- //------------------------------------------------------------------------
-
- #define ScPivotShell
-@@ -125,13 +131,56 @@
- {
- switch ( rReq.GetSlot() )
- {
-- case SID_PIVOT_RECALC:
-- pViewShell->RecalcPivotTable();
-- break;
-+ case SID_PIVOT_AFMT:
-+ {
-+ ScViewData* pViewData = pViewShell->GetViewData();
-+
-+ pViewShell->GetDBData( TRUE, SC_DB_OLD );
-+ const ScMarkData& rMark1 = pViewData->GetMarkData();
-+ if ( !rMark1.IsMarked() && !rMark1.IsMultiMarked() )
-+ pViewShell->MarkDataArea( TRUE );
-+
-+ Window* pDlgParent = pViewShell->GetDialogParent();
-+
-+ pViewData->MoveNextRow();
-+
-+ ScGlobal::ClearAutoFormat();
-+ ScAutoFormatData* pNewEntry = pViewShell->CreateAutoFormatData();
-+ ScAutoFormatDlg* pDlg = new ScAutoFormatDlg(
-+ pDlgParent,
-+ ScGlobal::GetAutoFormat(),
-+ pNewEntry,
-+ pViewShell->GetViewData()->GetDocument() );
-+
-+ if ( pDlg->Execute() == RET_OK )
-+ {
-+ ScEditableTester aTester( pViewShell );
-+ if ( !aTester.IsEditable() )
-+ {
-+ pViewShell->ErrorMessage(aTester.GetMessageId());
-+ }
-+ else
-+ {
-+ /* AutoFormat and Store the index */
-+ pViewShell->AutoFormat( pDlg->GetIndex() );
-+ pViewShell->AutoFormatPivotTable( pDlg->GetIndex() );
-+ }
-+ }
-+ delete pDlg;
-+ delete pNewEntry;
-
-+
-+ //pViewShell->DeletePivotTable();
-+ //pViewShell->RecalcPivotTable();
-+ break;
-+ }
- case SID_PIVOT_KILL:
- pViewShell->DeletePivotTable();
- break;
-+ case SID_PIVOT_RECALC:
-+ //pViewShell->DeletePivotTable();
-+ pViewShell->RecalcPivotTable();
-+ break;
-
- case SID_DP_FILTER:
- {
-diff -u -r ../../../sc.bak/source/ui/view/viewdata.cxx sc/source/ui/view/viewdata.cxx
---- ../../../sc.bak/source/ui/view/viewdata.cxx 2004-12-22 14:05:08.000000000 +0530
-+++ sc/source/ui/view/viewdata.cxx 2005-01-11 13:23:56.430894664 +0530
-@@ -654,6 +654,23 @@
- aLogicMode.SetScaleY( GetZoomY() );
- }
-
-+
-+void ScViewData::MoveNextRow()
-+{
-+ ScRange aMarkRange;
-+ aMarkData.GetMarkArea(aMarkRange);
-+ aMarkRange.aStart.Set(aMarkRange.aStart.Col(), aMarkRange.aStart.Row() +1, aMarkRange.aStart.Tab());
-+ aMarkData.SetMarkArea(aMarkRange);
-+}
-+
-+void ScViewData::MovePrevRow()
-+{
-+ ScRange aMarkRange;
-+ aMarkData.GetMarkArea(aMarkRange);
-+ aMarkRange.aStart.Set(aMarkRange.aStart.Col(), aMarkRange.aStart.Row() -1, aMarkRange.aStart.Tab());
-+ aMarkData.SetMarkArea(aMarkRange);
-+}
-+
- BOOL ScViewData::GetSimpleArea( SCCOL& rStartCol, SCROW& rStartRow, SCTAB& rStartTab,
- SCCOL& rEndCol, SCROW& rEndRow, SCTAB& rEndTab )
- {
diff --git a/patches/src680/sc-datapilot-crash-fix.diff b/patches/src680/sc-datapilot-crash-fix.diff
deleted file mode 100644
index e4d9f7c8f..000000000
--- a/patches/src680/sc-datapilot-crash-fix.diff
+++ /dev/null
@@ -1,80 +0,0 @@
-diff -u -r ../src680-m72.bak/sc/source/ui/dbgui/pvlaydlg.cxx sc/source/ui/dbgui/pvlaydlg.cxx
---- ../src680-m72.bak/sc/source/ui/dbgui/pvlaydlg.cxx 2005-02-02 10:11:20.000000000 +0530
-+++ sc/source/ui/dbgui/pvlaydlg.cxx 2005-02-04 13:24:06.000000000 +0530
-@@ -171,7 +171,7 @@
- GetViewData() ),
- pDoc ( ((ScTabViewShell*)SfxViewShell::Current())->
- GetViewData()->GetDocument() ),
-- bRefInputMode ( TRUE )
-+ bRefInputMode ( FALSE )
- {
- xDlgDPObject->SetAlive( TRUE ); // needed to get structure information
- xDlgDPObject->FillOldParam( thePivotData, FALSE );
-@@ -1482,7 +1482,7 @@
- {
- if ( aBtnMore.GetState() )
- {
-- bRefInputMode = TRUE;
-+ bRefInputMode = FALSE;
- //@BugID 54702 Enablen/Disablen nur noch in Basisklasse
- //SFX_APPWINDOW->Enable();
- aEdOutPos.Enable();
-@@ -1491,6 +1491,7 @@
- }
- else
- {
-+ bRefInputMode = FALSE;
-
- //@BugID 54702 Enablen/Disablen nur noch in Basisklasse
- //SFX_APPWINDOW->Disable(FALSE); //! allgemeine Methode im ScAnyRefDlg
-diff -u -r ../src680-m72.bak/sc/source/ui/inc/anyrefdg.hxx sc/source/ui/inc/anyrefdg.hxx
---- ../src680-m72.bak/sc/source/ui/inc/anyrefdg.hxx 2005-02-02 10:11:16.000000000 +0530
-+++ sc/source/ui/inc/anyrefdg.hxx 2005-02-04 12:19:05.000000000 +0530
-@@ -128,6 +128,7 @@
- Image aImgRefDoneHC; /// Stop reference input (high contrast)
- ScAnyRefDlg* pAnyRefDlg; // parent dialog
- ScRefEdit* pRefEdit; // zugeordnetes Edit-Control
-+ BOOL bState;
-
- protected:
- virtual void Click();
-diff -u -r ../src680-m72.bak/sc/source/ui/inc/pvlaydlg.hxx sc/source/ui/inc/pvlaydlg.hxx
---- ../src680-m72.bak/sc/source/ui/inc/pvlaydlg.hxx 2005-02-02 10:11:17.000000000 +0530
-+++ sc/source/ui/inc/pvlaydlg.hxx 2005-02-04 12:23:31.000000000 +0530
-@@ -134,6 +134,7 @@
-
- virtual void SetReference( const ScRange& rRef, ScDocument* pDoc );
- virtual BOOL IsRefInputMode() const { return bRefInputMode; }
-+ void SetRefInputMode (BOOL bMode) { bRefInputMode = bMode; }
- virtual void SetActive();
- virtual BOOL Close();
-
-diff -u -r ../src680-m72.bak/sc/source/ui/miscdlgs/anyrefdg.cxx sc/source/ui/miscdlgs/anyrefdg.cxx
---- ../src680-m72.bak/sc/source/ui/miscdlgs/anyrefdg.cxx 2005-02-02 10:11:21.000000000 +0530
-+++ sc/source/ui/miscdlgs/anyrefdg.cxx 2005-02-08 09:00:07.614587084 +0530
-@@ -95,6 +95,7 @@
- #include "cell.hxx"
- #include "global.hxx"
- #include "inputopt.hxx"
-+#include "pvlaydlg.hxx"
-
- //----------------------------------------------------------------------------
-
-@@ -284,6 +285,7 @@
- pAnyRefDlg( pParent ),
- pRefEdit( pEdit )
- {
-+ bState =FALSE;
- SetStartImage();
- }
-
-@@ -326,6 +328,9 @@
-
- void ScRefButton::Click()
- {
-+ bState = !bState;
-+ ScDPLayoutDlg *pDlg = (ScDPLayoutDlg *)this->pAnyRefDlg;
-+ pDlg->SetRefInputMode(bState);
- if( pAnyRefDlg )
- pAnyRefDlg->ToggleCollapsed( pRefEdit, this );
- }
diff --git a/patches/src680/sc-datapilot-cut-paste-disable.diff b/patches/src680/sc-datapilot-cut-paste-disable.diff
deleted file mode 100644
index 425a66a2a..000000000
--- a/patches/src680/sc-datapilot-cut-paste-disable.diff
+++ /dev/null
@@ -1,28 +0,0 @@
---- sc/sdi/pivotsh.sdi.back 2005-05-08 21:07:49.000000000 +0530
-+++ sc/sdi/pivotsh.sdi 2005-05-09 01:48:08.455152504 +0530
-@@ -66,6 +66,8 @@
- SID_PIVOT_KILL [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
- SID_DP_FILTER [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
- SID_PIVOT_AFMT [ ExecMethod = Execute; StateMethod = GetState; Export = FALSE; ]
-+ SID_CUT [ StateMethod = GetState]
-+ SID_PASTE [ StateMethod = GetState]
- }
-
- shell ScPivotShell
---- sc/source/ui/view/pivotsh.cxx.back 2005-05-08 21:10:32.000000000 +0530
-+++ sc/source/ui/view/pivotsh.cxx 2005-05-09 01:31:00.000000000 +0530
-@@ -265,6 +265,14 @@
- rSet.DisableItem( nWhich );
- }
- break;
-+ case SID_CUT:
-+ case SID_PASTE:
-+ {
-+ ScDPObject* pDPObj = GetCurrDPObject();
-+ if(pDPObj)
-+ rSet.DisableItem( nWhich );
-+ }
-+ break;
- }
- nWhich = aIter.NextWhich();
- }
diff --git a/patches/src680/sc-datapilot-dynamic-range.diff b/patches/src680/sc-datapilot-dynamic-range.diff
deleted file mode 100644
index cc912b7b4..000000000
--- a/patches/src680/sc-datapilot-dynamic-range.diff
+++ /dev/null
@@ -1,336 +0,0 @@
-diff -u -r ../../../sc.bak/source/ui/dbgui/pivot.hrc sc/source/ui/dbgui/pivot.hrc
---- ../../../sc.bak/source/ui/dbgui/pivot.hrc 2004-12-22 14:05:08.000000000 +0530
-+++ sc/source/ui/dbgui/pivot.hrc 2005-01-17 11:28:44.000000000 +0530
-@@ -108,4 +108,6 @@
- #define PIVOTSTR_DEV2 9
- #define PIVOTSTR_VAR 10
- #define PIVOTSTR_VAR2 11
--
-+#define FT_INAREA 40
-+#define RB_INAREA 41
-+#define ED_INAREA 42
-diff -u -r ../../../sc.bak/source/ui/dbgui/pivot.src sc/source/ui/dbgui/pivot.src
---- ../../../sc.bak/source/ui/dbgui/pivot.src 2004-12-22 14:05:08.000000000 +0530
-+++ sc/source/ui/dbgui/pivot.src 2005-01-19 10:35:11.000000000 +0530
-@@ -65,7 +65,7 @@
- {
- OutputSize = TRUE ;
- HelpId = SID_OPENDLG_PIVOTTABLE ;
-- Size = MAP_APPFONT ( 336 , 190 ) ;
-+ Size = MAP_APPFONT ( 336 , 200 ) ;
- Hide = TRUE ;
- SVLook = TRUE ;
- Moveable = TRUE ;
-@@ -161,6 +161,32 @@
- Text [ de ] = "Layout" ;
- Text [ en-US ] = "Layout";
- };
-+
-+ FixedText FT_INAREA
-+ {
-+ Pos = MAP_APPFONT ( 6 , 180 ) ;
-+ Size = MAP_APPFONT ( 59 , 8 ) ;
-+ Hide = FALSE ;
-+ Text [ en-US ] = "Selection from" ;
-+ };
-+
-+ Edit ED_INAREA
-+ {
-+ Border = TRUE ;
-+ Pos = MAP_APPFONT ( 65 , 180 ) ;
-+ Size = MAP_APPFONT ( 100 , 12 ) ;
-+ TabStop = TRUE ;
-+ Hide = FALSE ;
-+ };
-+ ImageButton RB_INAREA
-+ {
-+ Pos = MAP_APPFONT ( 172 , 180 ) ;
-+ Size = MAP_APPFONT ( 12 , 12 ) ;
-+ TabStop = TRUE ;
-+ Hide = FALSE ;
-+ QuickHelpText = "Verkleinern" ;
-+ QuickHelpText [ en-US ] = "Shrink" ;
-+ };
- OKButton BTN_OK
- {
- Pos = MAP_APPFONT ( 280 , 6 ) ;
-diff -u -r ../../../sc.bak/source/ui/dbgui/pvlaydlg.cxx sc/source/ui/dbgui/pvlaydlg.cxx
---- ../../../sc.bak/source/ui/dbgui/pvlaydlg.cxx 2004-12-22 14:05:08.000000000 +0530
-+++ sc/source/ui/dbgui/pvlaydlg.cxx 2005-01-19 11:24:34.943234360 +0530
-@@ -68,6 +68,7 @@
- //----------------------------------------------------------------------------
-
- #include "pvlaydlg.hxx"
-+#include "dbdocfun.hxx"
-
- #include <sfx2/dispatch.hxx>
- #include <vcl/msgbox.hxx>
-@@ -87,6 +88,7 @@
- #include "pivot.hrc"
- #include "dpobject.hxx"
- #include "dpsave.hxx"
-+#include "dpshttab.hxx"
- #include "scmod.hxx"
-
- #include "sc.hrc" //CHINA001
-@@ -139,6 +141,9 @@
- aFtOutArea ( this, ScResId( FT_OUTAREA ) ),
- aEdOutPos ( this, ScResId( ED_OUTAREA ) ),
- aRbOutPos ( this, ScResId( RB_OUTAREA ), &aEdOutPos ),
-+ aFtInArea ( this, ScResId( FT_INAREA) ),
-+ aEdInPos ( this, ScResId( ED_INAREA) ),
-+ aRbInPos ( this, ScResId( RB_INAREA ), &aEdInPos ),
- aFlAreas ( this, ScResId( FL_OUTPUT ) ),
-
- aFtPage ( this, ScResId( FT_PAGE ) ),
-@@ -166,7 +171,7 @@
- GetViewData() ),
- pDoc ( ((ScTabViewShell*)SfxViewShell::Current())->
- GetViewData()->GetDocument() ),
-- bRefInputMode ( FALSE )
-+ bRefInputMode ( TRUE )
- {
- xDlgDPObject->SetAlive( TRUE ); // needed to get structure information
- xDlgDPObject->FillOldParam( thePivotData, FALSE );
-@@ -249,6 +254,12 @@
- InitWnd( thePivotData.aRowArr, static_cast<long>(thePivotData.nRowCount), TYPE_ROW );
- InitWnd( thePivotData.aDataArr, static_cast<long>(thePivotData.nDataCount), TYPE_DATA );
-
-+ ScRange inRange;
-+ String inString;
-+ inRange = xDlgDPObject->GetSheetDesc()->aSourceRange;
-+ inRange.Format( inString, STD_FORMAT, pDoc);
-+ aEdInPos.SetText(inString);
-+
- aSlider.SetPageSize( PAGE_SIZE );
- aSlider.SetVisibleSize( PAGE_SIZE );
- aSlider.SetLineSize( LINE_SIZE );
-@@ -266,6 +277,7 @@
-
- aLbOutPos .SetSelectHdl( LINK( this, ScDPLayoutDlg, SelAreaHdl ) );
- aEdOutPos .SetModifyHdl( LINK( this, ScDPLayoutDlg, EdModifyHdl ) );
-+ aEdInPos .SetModifyHdl( LINK( this, ScDPLayoutDlg, EdInModifyHdl ) );
- aBtnOk .SetClickHdl ( LINK( this, ScDPLayoutDlg, OkHdl ) );
- aBtnCancel.SetClickHdl ( LINK( this, ScDPLayoutDlg, CancelHdl ) );
-
-@@ -1270,17 +1282,34 @@
-
- void ScDPLayoutDlg::SetReference( const ScRange& rRef, ScDocument* pDoc )
- {
-+ ScRefEdit *tmpREd;
-+ ScRefButton *tmpRBtn;
-+
- if ( bRefInputMode )
- {
-+ tmpRBtn = GetRefButton();
-+ tmpREd = tmpRBtn->GetReferencesEdit();
- if ( rRef.aStart != rRef.aEnd )
-- RefInputStart( &aEdOutPos );
-+ RefInputStart( tmpREd, tmpRBtn);
-+
- /*
- ScAddress aAdr( nStartCol, nStartRow, nStartTab );
- aAdr.PutInOrder( ScAddress( nEndCol, nEndRow, nEndTab ) );
- */
-+
- String aRefStr;
-- rRef.aStart.Format( aRefStr, STD_FORMAT, pDoc );
-- aEdOutPos.SetRefString( aRefStr );
-+
-+ if ( tmpREd== &aEdInPos)
-+ {
-+ USHORT nFmt = SCR_ABS_3D; //!!! nCurTab fehlt noch
-+ if ( rRef.aStart.Tab() != rRef.aEnd.Tab() )
-+ nFmt |= SCA_TAB2_3D;
-+ rRef.Format( aRefStr, nFmt, pDoc );
-+ }
-+ else
-+ rRef.aStart.Format( aRefStr, STD_FORMAT, pDoc );
-+
-+ tmpREd->SetRefString( aRefStr );
- }
- }
-
-@@ -1432,6 +1461,7 @@
- ).Execute();
- aEdOutPos.GrabFocus();
- }
-+
- return 0;
- }
-
-@@ -1461,7 +1491,7 @@
- }
- else
- {
-- bRefInputMode = FALSE;
-+
- //@BugID 54702 Enablen/Disablen nur noch in Basisklasse
- //SFX_APPWINDOW->Disable(FALSE); //! allgemeine Methode im ScAnyRefDlg
- }
-@@ -1498,6 +1528,95 @@
- }
-
-
-+IMPL_LINK( ScDPLayoutDlg, EdInModifyHdl, Edit *, EMPTYARG )
-+{
-+
-+ String theCurPosStr = aEdInPos.GetText();
-+ ScSheetSourceDesc inSheet = *(xDlgDPObject->GetSheetDesc());
-+ ScRange aR = xDlgDPObject->GetSheetDesc()->aSourceRange;
-+ ScRefAddress start, end;
-+ ConvertDoubleRef (pDoc, theCurPosStr, 1, start, end );
-+ inSheet.aSourceRange = ScRange(start.GetAddress(), end.GetAddress());
-+ xDlgDPObject->SetSheetDesc( inSheet);
-+ xDlgDPObject->InvalidateSource();
-+ xDlgDPObject->Output();
-+ xDlgDPObject->SetAlive( TRUE ); // needed to get structure information
-+ xDlgDPObject->FillOldParam( thePivotData, FALSE );
-+ xDlgDPObject->FillLabelData( thePivotData );
-+
-+ ScTabViewShell * pTabViewShell = pViewData->GetViewShell();
-+ pTabViewShell->SetDialogDPObject(&ScDPObject(*xDlgDPObject));
-+
-+ aR = xDlgDPObject->GetSheetDesc()->aSourceRange;
-+
-+ USHORT i;
-+ for ( i=0; i<MAX_LABELS; i++ )
-+ aSelectArr[i].reset();
-+
-+ for ( i=0; i<MAX_FIELDS; i++ )
-+ {
-+ RemoveField (TYPE_COL, i);
-+ RemoveField (TYPE_ROW, i);
-+ RemoveField (TYPE_DATA, i);
-+ RemoveField (TYPE_PAGE, i);
-+ }
-+
-+ aLabelDataArr.clear();
-+
-+ aWndSelect.ClearFields();
-+
-+ InitWndSelect( thePivotData.ppLabelArr, thePivotData.nLabels );
-+ InitWnd( thePivotData.aColArr, thePivotData.nColCount, TYPE_COL );
-+ InitWnd( thePivotData.aRowArr, thePivotData.nRowCount, TYPE_ROW );
-+ InitWnd( thePivotData.aDataArr, thePivotData.nDataCount, TYPE_DATA );
-+ aSlider.SetPageSize( PAGE_SIZE );
-+ aSlider.SetVisibleSize( PAGE_SIZE );
-+ aSlider.SetLineSize( LINE_SIZE );
-+ aSlider.SetRange( Range( 0, ((thePivotData.nLabels+LINE_SIZE-1)/LINE_SIZE)*LINE_SIZE ) );
-+
-+ if ( thePivotData.nLabels > PAGE_SIZE )
-+ {
-+ aSlider.SetEndScrollHdl( LINK( this, ScDPLayoutDlg, ScrollHdl ) );
-+ aSlider.Show();
-+ }
-+ else
-+ aSlider.Hide();
-+
-+ if ( pViewData && pDoc )
-+ {
-+ /*
-+ * Aus den RangeNames des Dokumentes werden nun die
-+ * in einem Zeiger-Array gemerkt, bei denen es sich
-+ * um sinnvolle Bereiche handelt
-+ */
-+
-+ aLbOutPos.Clear();
-+ aLbOutPos.InsertEntry( aStrUndefined, 0 );
-+ aLbOutPos.InsertEntry( aStrNewTable, 1 );
-+
-+ ScAreaNameIterator aIter( pDoc );
-+ String aName;
-+ ScRange aRange;
-+ String aRefStr;
-+ while ( aIter.Next( aName, aRange ) )
-+ {
-+ if ( !aIter.WasDBName() ) // hier keine DB-Bereiche !
-+ {
-+ USHORT nInsert = aLbOutPos.InsertEntry( aName );
-+
-+ aRange.aStart.Format( aRefStr, SCA_ABS_3D, pDoc );
-+ aLbOutPos.SetEntryData( nInsert, new String( aRefStr ) );
-+ }
-+ }
-+ }
-+
-+
-+
-+ //Init();
-+ return 0;
-+}
-+
-+
- //----------------------------------------------------------------------------
-
- IMPL_LINK( ScDPLayoutDlg, SelAreaHdl, ListBox *, EMPTYARG )
-diff -u -r ../../../sc.bak/source/ui/inc/anyrefdg.hxx sc/source/ui/inc/anyrefdg.hxx
---- ../../../sc.bak/source/ui/inc/anyrefdg.hxx 2004-12-22 14:05:07.000000000 +0530
-+++ sc/source/ui/inc/anyrefdg.hxx 2005-01-17 11:28:43.000000000 +0530
-@@ -140,7 +140,7 @@
- ScRefButton( Window* pParent, const ResId& rResId );
-
- void SetReferences( ScAnyRefDlg* pDlg, ScRefEdit* pEdit );
--
-+ ScRefEdit* GetReferencesEdit ();
- void SetStartImage();
- void SetEndImage();
- inline void DoRef() { Click(); }
-@@ -194,6 +194,7 @@
- ScAnyRefDlg( SfxBindings* pB, SfxChildWindow* pCW,
- Window* pParent, USHORT nResId);
- virtual ~ScAnyRefDlg();
-+ ScRefButton* GetRefButton() { return pRefBtn; }
-
- virtual void SetReference( const ScRange& rRef, ScDocument* pDoc ) = 0;
- virtual void AddRefEntry();
-diff -u -r ../../../sc.bak/source/ui/inc/pvlaydlg.hxx sc/source/ui/inc/pvlaydlg.hxx
---- ../../../sc.bak/source/ui/inc/pvlaydlg.hxx 2004-12-22 14:05:07.000000000 +0530
-+++ sc/source/ui/inc/pvlaydlg.hxx 2005-01-17 11:28:43.000000000 +0530
-@@ -170,8 +170,11 @@
- FixedLine aFlAreas;
- ListBox aLbOutPos;
- FixedText aFtOutArea;
-+ FixedText aFtInArea;
- ScRefEdit aEdOutPos;
- ScRefButton aRbOutPos;
-+ ScRefEdit aEdInPos;
-+ ScRefButton aRbInPos;
- CheckBox aBtnIgnEmptyRows;
- CheckBox aBtnDetectCat;
- CheckBox aBtnTotalCol;
-@@ -252,6 +255,7 @@
- DECL_LINK( SelAreaHdl, ListBox * );
- DECL_LINK( MoreClickHdl, MoreButton * );
- DECL_LINK( EdModifyHdl, Edit * );
-+ DECL_LINK( EdInModifyHdl, Edit * );
- DECL_LINK( OkHdl, OKButton * );
- DECL_LINK( CancelHdl, CancelButton * );
- };
-diff -u -r ../../../sc.bak/source/ui/miscdlgs/anyrefdg.cxx sc/source/ui/miscdlgs/anyrefdg.cxx
---- ../../../sc.bak/source/ui/miscdlgs/anyrefdg.cxx 2004-12-22 14:05:08.000000000 +0530
-+++ sc/source/ui/miscdlgs/anyrefdg.cxx 2005-01-17 11:28:44.000000000 +0530
-@@ -317,6 +317,11 @@
- pRefEdit = pEdit;
- }
-
-+ScRefEdit* ScRefButton::GetReferencesEdit ()
-+{
-+ return pRefEdit;
-+}
-+
- //----------------------------------------------------------------------------
-
- void ScRefButton::Click()
-diff -u -r ../../../sc.bak/source/ui/view/cellsh2.cxx sc/source/ui/view/cellsh2.cxx
---- ../../../sc.bak/source/ui/view/cellsh2.cxx 2004-12-22 14:05:08.000000000 +0530
-+++ sc/source/ui/view/cellsh2.cxx 2005-01-19 11:10:27.356087192 +0530
-@@ -598,6 +598,8 @@
- }
-
- const ScDPObject* pDPObject = pTabViewShell->GetDialogDPObject();
-+ ScRange aR = pDPObject->GetSheetDesc()->aSourceRange;
-+
- if ( pDPObject )
- {
- const ScPivotItem* pPItem = (const ScPivotItem*)pItem;
diff --git a/patches/src680/sc-default-color-modify.diff b/patches/src680/sc-default-color-modify.diff
deleted file mode 100644
index 7cc7959fc..000000000
--- a/patches/src680/sc-default-color-modify.diff
+++ /dev/null
@@ -1,73 +0,0 @@
---- officecfg/registry/schema/org/openoffice/Office/Chart.xcs.bak 2004-10-01 12:46:32.865813560 +0530
-+++ officecfg/registry/schema/org/openoffice/Office/Chart.xcs 2004-10-01 14:56:24.552297168 +0530
-@@ -172,7 +172,7 @@
- <label xml:lang="af">Chart colors</label>
- <label xml:lang="zu">Chart colors</label>
- </info>
-- <value>0x9999ff 0x993366 0xffffcc 0xccffff 0x660066 0xff8080 0x0066cc 0xccccff 0x000080 0xff00ff 0x00ffff 0xffff00</value>
-+ <value>0xff6f00 0x800080 0x666666 0x6b4794 0x280099 0x7da647 0xe6e64c 0xff9966 0x000080 0xfff0ff 0x00ffff 0x9999ff</value>
- </prop>
- </group>
- </component>
---- sch/source/ui/app/schopt.cxx 2004-10-01 12:31:36.035152544 +0530
-+++ sch/source/ui/app/schopt.cxx 2004-10-01 12:31:25.833703400 +0530
-@@ -144,18 +144,18 @@
- void SchColorTable::useDefault()
- {
- ColorData aColors[] = {
-- RGB_COLORDATA( 0x99, 0x99, 0xff ),
-- RGB_COLORDATA( 0x99, 0x33, 0x66 ),
-- RGB_COLORDATA( 0xff, 0xff, 0xcc ),
-- RGB_COLORDATA( 0xcc, 0xff, 0xff ),
-- RGB_COLORDATA( 0x66, 0x00, 0x66 ),
-- RGB_COLORDATA( 0xff, 0x80, 0x80 ),
-- RGB_COLORDATA( 0x00, 0x66, 0xcc ),
-- RGB_COLORDATA( 0xcc, 0xcc, 0xff ),
-+ RGB_COLORDATA( 0xff, 0x6f, 0x00 ),
-+ RGB_COLORDATA( 0x80, 0x00, 0x80 ),
-+ RGB_COLORDATA( 0x66, 0x66, 0x66 ),
-+ RGB_COLORDATA( 0x6b, 0x47, 0x94 ),
-+ RGB_COLORDATA( 0x28, 0x00, 0x99 ),
-+ RGB_COLORDATA( 0x7d, 0xa6, 0x47 ),
-+ RGB_COLORDATA( 0xe6, 0xe6, 0x4c ),
-+ RGB_COLORDATA( 0xff, 0x99, 0x66 ),
- RGB_COLORDATA( 0x00, 0x00, 0x80 ),
-- RGB_COLORDATA( 0xff, 0x00, 0xff ),
-+ RGB_COLORDATA( 0xff, 0xf0, 0xff ),
- RGB_COLORDATA( 0x00, 0xff, 0xff ),
-- RGB_COLORDATA( 0xff, 0xff, 0x00 )
-+ RGB_COLORDATA( 0x99, 0x99, 0xff )
- };
-
- clear();
---- sch/source/core/chtmode1.cxx 2004-10-05 15:19:22.847743536 +0530
-+++ sch/source/core/chtmode1.cxx 2004-10-05 15:19:00.387158064 +0530
-@@ -1074,18 +1074,18 @@
- nCount = ROW_COLOR_COUNT;
- pDefaultCol = new ColorData[ nCount ];
-
-- pDefaultCol[ 0 ] = RGB_COLORDATA( 0x99, 0x99, 0xff );
-- pDefaultCol[ 1 ] = RGB_COLORDATA( 0x99, 0x33, 0x66 );
-- pDefaultCol[ 2 ] = RGB_COLORDATA( 0xff, 0xff, 0xcc );
-- pDefaultCol[ 3 ] = RGB_COLORDATA( 0xcc, 0xff, 0xff );
-- pDefaultCol[ 4 ] = RGB_COLORDATA( 0x66, 0x00, 0x66 );
-- pDefaultCol[ 5 ] = RGB_COLORDATA( 0xff, 0x80, 0x80 );
-- pDefaultCol[ 6 ] = RGB_COLORDATA( 0x00, 0x66, 0xcc );
-- pDefaultCol[ 7 ] = RGB_COLORDATA( 0xcc, 0xcc, 0xff );
-+ pDefaultCol[ 0 ] = RGB_COLORDATA( 0xff, 0x6f, 0x00 );
-+ pDefaultCol[ 1 ] = RGB_COLORDATA( 0x80, 0x00, 0x80 );
-+ pDefaultCol[ 2 ] = RGB_COLORDATA( 0x66, 0x66, 0x66 );
-+ pDefaultCol[ 3 ] = RGB_COLORDATA( 0x6b, 0x47, 0x94 );
-+ pDefaultCol[ 4 ] = RGB_COLORDATA( 0x28, 0x00, 0x99 );
-+ pDefaultCol[ 5 ] = RGB_COLORDATA( 0x7d, 0xa6, 0x47 );
-+ pDefaultCol[ 6 ] = RGB_COLORDATA( 0xe6, 0xe6, 0x4c );
-+ pDefaultCol[ 7 ] = RGB_COLORDATA( 0xff, 0x99, 0x66 );
- pDefaultCol[ 8 ] = RGB_COLORDATA( 0x00, 0x00, 0x80 );
-- pDefaultCol[ 9 ] = RGB_COLORDATA( 0xff, 0x00, 0xff );
-+ pDefaultCol[ 9 ] = RGB_COLORDATA( 0xff, 0xf0, 0xff );
- pDefaultCol[ 10 ] = RGB_COLORDATA( 0x00, 0xff, 0xff );
-- pDefaultCol[ 11 ] = RGB_COLORDATA( 0xff, 0xff, 0x00 );
-+ pDefaultCol[ 11 ] = RGB_COLORDATA( 0x99, 0x99, 0xff );
- }
-
- // create colors from table if they exist otherwise copy default colors
diff --git a/patches/src680/sc-div-errs.diff b/patches/src680/sc-div-errs.diff
deleted file mode 100644
index f0f7c5f31..000000000
--- a/patches/src680/sc-div-errs.diff
+++ /dev/null
@@ -1,142 +0,0 @@
---- sc/source/core/tool/interpr1.cxx 2005-04-22 10:38:28.000000000 +0530
-+++ sc/source/core/tool/interpr1.cxx 2005-05-12 15:18:15.874307739 +0530
-@@ -2912,7 +2912,12 @@ double ScInterpreter::IterateParameters(
- switch( eFunc )
- {
- case ifSUM: fRes = ::rtl::math::approxAdd( fRes, fMem ); break;
-- case ifAVERAGE: fRes = ::rtl::math::approxAdd( fRes, fMem ) / nCount; break;
-+ case ifAVERAGE:
-+ if( nCount == 0 )
-+ SetError( errDivisionByZero );
-+ else
-+ fRes = ::rtl::math::approxAdd( fRes, fMem ) / nCount;
-+ break;
- case ifCOUNT2:
- case ifCOUNT: fRes = nCount; break;
- case ifPRODUCT: if ( !nCount ) fRes = 0.0; break;
-@@ -3084,7 +3089,11 @@ void ScInterpreter::ScVar( BOOL bTextAsZ
- double nVal;
- double nValCount;
- GetStVarParams( nVal, nValCount, bTextAsZero );
-- PushDouble(nVal / (nValCount - 1.0));
-+
-+ if( nValCount <= 1.0 )
-+ SetError( errDivisionByZero );
-+ else
-+ PushDouble(nVal / (nValCount - 1.0));
- }
-
-
-@@ -3093,7 +3102,11 @@ void ScInterpreter::ScVarP( BOOL bTextAs
- double nVal;
- double nValCount;
- GetStVarParams( nVal, nValCount, bTextAsZero );
-- PushDouble(nVal / nValCount);
-+
-+ if( nValCount == 0.0 )
-+ SetError( errDivisionByZero );
-+ else
-+ PushDouble(nVal / nValCount);
- }
-
-
-@@ -3102,7 +3115,10 @@ void ScInterpreter::ScStDev( BOOL bTextA
- double nVal;
- double nValCount;
- GetStVarParams( nVal, nValCount, bTextAsZero );
-- PushDouble(sqrt(nVal / (nValCount - 1.0)));
-+ if( nValCount <= 1.0 )
-+ SetError( errDivisionByZero );
-+ else
-+ PushDouble(sqrt(nVal / (nValCount - 1.0)));
- }
-
-
-@@ -3111,7 +3127,10 @@ void ScInterpreter::ScStDevP( BOOL bText
- double nVal;
- double nValCount;
- GetStVarParams( nVal, nValCount, bTextAsZero );
-- PushDouble(sqrt(nVal / nValCount));
-+ if( nValCount == 0.0 )
-+ SetError( errDivisionByZero );
-+ else
-+ PushDouble(sqrt(nVal / nValCount));
- }
-
-
---- sc/source/core/tool/interpr2.cxx 2005-04-14 09:50:06.000000000 +0530
-+++ sc/source/core/tool/interpr2.cxx 2005-05-11 09:22:39.259936459 +0530
-@@ -1460,6 +1460,8 @@ void ScInterpreter::ScMod()
- {
- double nVal2 = GetDouble();
- double nVal1 = GetDouble();
-+ if( nVal2 == 0.0 )
-+ SetError( errDivisionByZero );
- PushDouble(nVal1 - (::rtl::math::approxFloor(nVal1 / nVal2) * nVal2));
- }
- }
---- sc/source/core/tool/interpr3.cxx 2005-04-14 09:50:06.000000000 +0530
-+++ sc/source/core/tool/interpr3.cxx 2005-05-12 15:05:29.387715566 +0530
-@@ -950,7 +950,9 @@ void ScInterpreter::ScNormDist()
- double sigma = GetDouble(); // Stdabw
- double mue = GetDouble(); // Mittelwert
- double x = GetDouble(); // x
-- if (sigma <= 0.0)
-+ if (sigma == 0.0)
-+ SetError( errDivisionByZero );
-+ else if (sigma < 0.0)
- SetIllegalArgument();
- else if (kum == 0.0) // Dichte
- PushDouble(phi((x-mue)/sigma)/sigma);
-@@ -966,7 +968,9 @@ void ScInterpreter::ScLogNormDist()
- double sigma = GetDouble(); // Stdabw
- double mue = GetDouble(); // Mittelwert
- double x = GetDouble(); // x
-- if (sigma <= 0.0 || x <= 0.0)
-+ if (sigma == 0.0 )
-+ SetError( errDivisionByZero );
-+ else if (sigma < 0.0 || x <= 0.0)
- SetIllegalArgument();
- else
- PushDouble(0.5 + gauss((log(x)-mue)/sigma));
-@@ -1409,7 +1413,9 @@ void ScInterpreter::ScConfidence()
- double n = ::rtl::math::approxFloor(GetDouble());
- double sigma = GetDouble();
- double alpha = GetDouble();
-- if (sigma <= 0.0 || alpha <= 0.0 || alpha >= 1.0 || n < 1.0)
-+ if (sigma == 0.0 )
-+ SetError( errDivisionByZero );
-+ else if (sigma < 0.0 || alpha <= 0.0 || alpha >= 1.0 || n < 1.0)
- SetIllegalArgument();
- else
- PushDouble( gaussinv(1.0-alpha/2.0) * sigma/sqrt(n) );
-@@ -1515,7 +1521,7 @@ void ScInterpreter::ScZTest()
- default : SetError(errIllegalParameter); break;
- }
- if (rValCount <= 1.0)
-- SetNoValue();
-+ SetError( errDivisionByZero );
- else
- {
- mue = fSum/rValCount;
-@@ -1951,6 +1957,9 @@ void ScInterpreter::ScKurt()
- }
- }
-
-+ if (fCount == 0)
-+ SetError( errDivisionByZero );
-+
- if (nGlobalError)
- {
- PushInt(0);
-@@ -2227,7 +2236,9 @@ void ScInterpreter::ScStandard()
- double sigma = GetDouble();
- double mue = GetDouble();
- double x = GetDouble();
-- if (sigma <= 0.0)
-+ if (sigma == 0.0)
-+ SetError( errDivisionByZero );
-+ else if (sigma < 0.0)
- SetIllegalArgument();
- else
- PushDouble((x-mue)/sigma);
diff --git a/patches/src680/sc-div.diff b/patches/src680/sc-div.diff
deleted file mode 100644
index 2d030a784..000000000
--- a/patches/src680/sc-div.diff
+++ /dev/null
@@ -1,59 +0,0 @@
---- sc/source/core/tool/interpr5.cxx 2005-04-14 09:50:06.000000000 +0530
-+++ sc/source/core/tool/interpr5.cxx 2005-04-25 17:00:39.866199840 +0530
-@@ -1440,8 +1440,13 @@ ScMatrixRef ScInterpreter::MatDiv(ScMatr
- for (j = 0; j < nMinR; j++)
- {
- if (pMat1->IsValueOrEmpty(i,j) && pMat2->IsValueOrEmpty(i,j))
-- pResMat->PutDouble(pMat1->GetDouble(i,j) /
-- pMat2->GetDouble(i,j), i, j);
-+ {
-+ double fDen = pMat2->GetDouble(i,j);
-+ if( fDen == 0 )
-+ pResMat->PutError( errDivisionByZero, i, j );
-+ else
-+ pResMat->PutDouble(pMat1->GetDouble(i,j) / fDen, i, j);
-+ }
- else
- pResMat->PutString(ScGlobal::GetRscString(
- STR_NO_VALUE), i, j);
-@@ -1997,6 +2002,11 @@ void ScInterpreter::ScDiv()
- {
- fVal = fVal2;
- bFlag = FALSE; // Matrix - double
-+ if( fVal == 0 )
-+ {
-+ SetError( errDivisionByZero );
-+ return ;
-+ }
- }
- SCSIZE nC, nR;
- pMat->GetDimensions(nC, nR);
-@@ -2007,7 +2017,13 @@ void ScInterpreter::ScDiv()
- if (bFlag)
- { for ( SCSIZE i = 0; i < nCount; i++ )
- if (pMat->IsValue(i))
-- pResMat->PutDouble(fVal / pMat->GetDouble(i), i);
-+ {
-+ double fDen = pMat->GetDouble(i);
-+ if( fDen == 0 )
-+ pResMat->PutError( errDivisionByZero, i );
-+ else
-+ pResMat->PutDouble(fVal / fDen, i);
-+ }
- else
- pResMat->PutString(ScGlobal::GetRscString(STR_NO_VALUE), i);
- }
-@@ -2024,7 +2040,12 @@ void ScInterpreter::ScDiv()
- PushError();
- }
- else
-- PushDouble(fVal1 / fVal2);
-+ {
-+ if( fVal2 == 0 )
-+ SetError( errDivisionByZero );
-+ else
-+ PushDouble( fVal1 / fVal2 );
-+ }
- if ( nFmtCurrencyType == NUMBERFORMAT_CURRENCY && nFmtCurrencyType2 != NUMBERFORMAT_CURRENCY )
- { // auch DM/DM ist nicht DM bzw. DEM/EUR nicht DEM
- nFuncFmtType = nFmtCurrencyType;
diff --git a/patches/src680/sc-dp-database-crash.diff b/patches/src680/sc-dp-database-crash.diff
deleted file mode 100644
index cac05958c..000000000
--- a/patches/src680/sc-dp-database-crash.diff
+++ /dev/null
@@ -1,39 +0,0 @@
-diff -u -r ../src680-m72.bak/sc/source/ui/dbgui/pvlaydlg.cxx sc/source/ui/dbgui/pvlaydlg.cxx
---- ../src680-m72.bak/sc/source/ui/dbgui/pvlaydlg.cxx 2005-02-02 10:11:20.000000000 +0530
-+++ sc/source/ui/dbgui/pvlaydlg.cxx 2005-02-09 16:26:53.520752589 +0530
-@@ -256,9 +256,21 @@
-
- ScRange inRange;
- String inString;
-- inRange = xDlgDPObject->GetSheetDesc()->aSourceRange;
-- inRange.Format( inString, STD_FORMAT, pDoc);
-- aEdInPos.SetText(inString);
-+ if (xDlgDPObject->GetSheetDesc())
-+ {
-+ aEdInPos.Enable();
-+ aRbInPos.Enable();
-+ inRange = xDlgDPObject->GetSheetDesc()->aSourceRange;
-+ inRange.Format( inString, STD_FORMAT, pDoc);
-+ aEdInPos.SetText(inString);
-+ }
-+ else
-+ {
-+ /* Data is not reachable, so could be a remote database */
-+ aEdInPos.Disable();
-+ aRbInPos.Disable();
-+
-+ }
-
- aSlider.SetPageSize( PAGE_SIZE );
- aSlider.SetVisibleSize( PAGE_SIZE );
-diff -u -r ../src680-m72.bak/sc/source/ui/view/cellsh2.cxx sc/source/ui/view/cellsh2.cxx
---- ../src680-m72.bak/sc/source/ui/view/cellsh2.cxx 2005-02-02 10:11:18.000000000 +0530
-+++ sc/source/ui/view/cellsh2.cxx 2005-02-09 15:37:59.565266475 +0530
-@@ -598,7 +598,6 @@
- }
-
- const ScDPObject* pDPObject = pTabViewShell->GetDialogDPObject();
-- ScRange aR = pDPObject->GetSheetDesc()->aSourceRange;
-
- if ( pDPObject )
- {
diff --git a/patches/src680/sc-erfc.diff b/patches/src680/sc-erfc.diff
deleted file mode 100644
index 81e4d869d..000000000
--- a/patches/src680/sc-erfc.diff
+++ /dev/null
@@ -1,336 +0,0 @@
-Index: scaddins/source/analysis/analysis.cxx
-===================================================================
-RCS file: /cvs/sc/scaddins/source/analysis/analysis.cxx,v
-retrieving revision 1.39
-diff -u -r1.39 analysis.cxx
---- scaddins/source/analysis/analysis.cxx 8 Sep 2005 23:18:05 -0000 1.39
-+++ scaddins/source/analysis/analysis.cxx 30 Oct 2005 02:32:03 -0000
-@@ -1081,7 +1081,7 @@
-
- double SAL_CALL AnalysisAddIn::getErfc( double f ) THROWDEF_RTE_IAE
- {
-- double fRet = 1.0 - Erf( f );
-+ double fRet = Erfc( f );
- RETURN_FINITE( fRet );
- }
-
-Index: scaddins/source/analysis/analysishelper.hxx
-===================================================================
-RCS file: /cvs/sc/scaddins/source/analysis/analysishelper.hxx,v
-retrieving revision 1.30
-diff -u -r1.30 analysishelper.hxx
---- scaddins/source/analysis/analysishelper.hxx 5 Oct 2005 14:51:59 -0000 1.30
-+++ scaddins/source/analysis/analysishelper.hxx 30 Oct 2005 02:32:03 -0000
-@@ -129,6 +129,7 @@
- double fNum, double fMin, double fMax, sal_uInt16 nBase,
- sal_Int32 nPlaces, sal_Int32 nMaxPlaces, sal_Bool bUsePlaces ) THROWDEF_RTE_IAE;
- double Erf( double fX );
-+double Erfc( double fX );
- sal_Bool ParseDouble( const sal_Unicode*& rpDoubleAsString, double& rReturn );
- STRING GetString( double fNumber, sal_Bool bLeadingSign = sal_False, sal_uInt16 nMaxNumOfDigits = 15 );
- inline double Exp10( sal_Int16 nPower ); // 10 ^ nPower
-Index: scaddins/source/analysis/analysishelper.cxx
-===================================================================
-RCS file: /cvs/sc/scaddins/source/analysis/analysishelper.cxx,v
-retrieving revision 1.49
-diff -u -w -p -r1.49 analysishelper.cxx
---- scaddins/source/analysis/analysishelper.cxx 25 Oct 2005 10:58:16 -0000 1.49
-+++ scaddins/source/analysis/analysishelper.cxx 10 Nov 2005 15:11:19 -0000
-@@ -838,118 +838,188 @@ STRING ConvertFromDec( double fNum, doub
-
- return aRet;
- }
--/** Calculates erf(x) by using Maclaurin expansion. Accurate up to
-- x = 4.
-- */
--void ErfMaclaurin( double x, double& fErf )
-+
-+/** Approximation algorithm for erf for 0 < x < 0.65. */
-+void Erf0065( double x, double& fVal )
- {
-- if( x == 0.0 )
-+ static const double pn[] = {
-+ 1.12837916709551256,
-+ 1.35894887627277916E-1,
-+ 4.03259488531795274E-2,
-+ 1.20339380863079457E-3,
-+ 6.49254556481904354E-5
-+ };
-+ static const double qn[] = {
-+ 1.00000000000000000,
-+ 4.53767041780002545E-1,
-+ 8.69936222615385890E-2,
-+ 8.49717371168693357E-3,
-+ 3.64915280629351082E-4
-+ };
-+
-+ double fPSum = 0.0;
-+ double fQSum = 0.0;
-+ double fXPow = 1.0;
-+ for ( unsigned int i = 0; i <= 4; ++i )
-+ {
-+ fPSum += pn[i]*fXPow;
-+ fQSum += qn[i]*fXPow;
-+ fXPow *= x*x;
-+ }
-+ fVal = x * fPSum / fQSum;
-+}
-+
-+/** Approximation algorithm for erfc for 0.65 < x < 6.0. */
-+void Erfc0600( double x, double& fVal )
-+{
-+ double fPSum = 0.0;
-+ double fQSum = 0.0;
-+ double fXPow = 1.0;
-+ const double *pn;
-+ const double *qn;
-+
-+ if ( x < 2.2 )
-+ {
-+ static const double pn22[] = {
-+ 9.99999992049799098E-1,
-+ 1.33154163936765307,
-+ 8.78115804155881782E-1,
-+ 3.31899559578213215E-1,
-+ 7.14193832506776067E-2,
-+ 7.06940843763253131E-3
-+ };
-+ static const double qn22[] = {
-+ 1.00000000000000000,
-+ 2.45992070144245533,
-+ 2.65383972869775752,
-+ 1.61876655543871376,
-+ 5.94651311286481502E-1,
-+ 1.26579413030177940E-1,
-+ 1.25304936549413393E-2
-+ };
-+ pn = pn22;
-+ qn = qn22;
-+ }
-+ else /* if ( x < 6.0 ) this is true, but the compiler does not know */
- {
-- fErf = 0.0;
-- return;
-+ static const double pn60[] = {
-+ 9.99921140009714409E-1,
-+ 1.62356584489366647,
-+ 1.26739901455873222,
-+ 5.81528574177741135E-1,
-+ 1.57289620742838702E-1,
-+ 2.25716982919217555E-2
-+ };
-+ static const double qn60[] = {
-+ 1.00000000000000000,
-+ 2.75143870676376208,
-+ 3.37367334657284535,
-+ 2.38574194785344389,
-+ 1.05074004614827206,
-+ 2.78788439273628983E-1,
-+ 4.00072964526861362E-2
-+ };
-+ pn = pn60;
-+ qn = qn60;
- }
-
-- double fZm, fN2, fn1, fOld, fT;
-- sal_Bool bAdd = sal_True;
-- sal_Int32 nMaxIter = 1000;
--
-- fZm = x;
-- fZm *= x; // x^2
--
-- fn1 = 2.0;
-- fN2 = 3.0;
--
-- fT = x * fZm;
--
-- fErf = x - fT / fN2;
--
-- fOld = fErf * 0.9;
--
-- while( fErf != fOld && nMaxIter-- )
-+ for ( unsigned int i = 0; i < 6; ++i )
- {
-- fOld = fErf;
-+ fPSum += pn[i]*fXPow;
-+ fQSum += qn[i]*fXPow;
-+ fXPow *= x;
-+ }
-+ fQSum += qn[6]*fXPow;
-+ fVal = exp( -1.0*x*x )* fPSum / fQSum;
-+}
-
-- fN2 += 2.0;
-+/** Approximation algorithm for erfc for 6.0 < x < 26.54 (but used for all
-+ x > 6.0). */
-+void Erfc2654( double x, double& fVal )
-+{
-+ static const double pn[] = {
-+ 5.64189583547756078E-1,
-+ 8.80253746105525775,
-+ 3.84683103716117320E1,
-+ 4.77209965874436377E1,
-+ 8.08040729052301677
-+ };
-+ static const double qn[] = {
-+ 1.00000000000000000,
-+ 1.61020914205869003E1,
-+ 7.54843505665954743E1,
-+ 1.12123870801026015E2,
-+ 3.73997570145040850E1
-+ };
-
-- fT /= fn1;
-- fT *= fZm;
-+ double fPSum = 0.0;
-+ double fQSum = 0.0;
-+ double fXPow = 1.0;
-
-- fn1++;
-+ for ( unsigned int i = 0; i <= 4; ++i )
-+ {
-+ fPSum += pn[i]*fXPow;
-+ fQSum += qn[i]*fXPow;
-+ fXPow /= x*x;
-+ }
-+ fVal = exp(-1.0*x*x)*fPSum / (x*fQSum);
-+}
-
-- if( bAdd )
-- fErf += fT / fN2;
-- else
-- fErf -= fT / fN2;
-+double Erfc( double );
-
-- bAdd = !bAdd;
-- }
-+/** Parent error function (erf) that calls different algorithms based on the
-+ value of x. It takes care of cases where x is negative as erf is an odd
-+ function i.e. erf(-x) = -erf(x).
-
-- fErf *= 1.1283791670955125738961589031215452;
--}
-+ Kramer, W., and Blomquist, F., 2000, Algorithms with Guaranteed Error Bounds
-+ for the Error Function and the Complementary Error Function
-
--/** Calculates erf(x) by using Asymptotic expansion. Accurate for x > 4
-- but converges more quickly than octave/gnumeric. Calculated values
-- are almost identical to Excel's.
-+ http://www.math.uni-wuppertal.de/wrswt/literatur_en.html
-
- @author Kohei Yoshida <kohei@openoffice.org>
-
-- @see #i19991#
-+ @see #i55735#
- */
--void ErfAsymptotic( double x, double& fErf )
-+double Erf( double x )
- {
- if( x == 0.0 )
-- {
-- fErf = 0.0;
-- return;
-- }
--
-- long nMaxIter = 1000;
--
-- double fFct2 = 1.0, fDenom = 1.0, fX = x, fn = 0.0;
-- double fXCnt = 1.0;
-- double f = 1.0 / fX;
-- double fOld = f * 0.9;
-+ return 0.0;
-
-- bool bAdd = false;
-- double fDiff = 0.0, fDiffOld = 1000.0;
-- while( f != fOld && nMaxIter-- )
-+ bool bNegative = false;
-+ if ( x < 0.0 )
- {
-- fOld = f;
--
-- fFct2 *= 2.0*++fn - 1.0;
-- fDenom *= 2.0;
-- fX *= x*x;
-- fXCnt += 2.0;
-+ x = fabs( x );
-+ bNegative = true;
-+ }
-
-- if ( bAdd )
-- f += fFct2 / ( fDenom * fX );
-+ double fErf = 1.0;
-+ if ( x < 1.0e-10 )
-+ fErf = x*1.1283791670955125738961589031215452L;
-+ else if ( x < 0.65 )
-+ Erf0065( x, fErf );
- else
-- f -= fFct2 / ( fDenom * fX );
-+ fErf = 1.0 - Erfc( x );
-
-- bAdd = !bAdd;
--
-- fDiff = fabs( f - fOld );
-- if ( fDiffOld < fDiff )
-- {
-- f = fOld;
-- break;
-- }
-- fDiffOld = fDiff;
-- }
-+ if ( bNegative )
-+ fErf *= -1.0;
-
-- fErf = 1.0 - f*exp( -1.0*x*x )*0.5641895835477562869480794515607726;
-+ return fErf;
- }
-
--/** Parent erf function that calls two different algorithms based on value
-- of x. It takes care of cases where x is negative ( erf is an odd function
-- i.e. f(-x) = -f(x) ).
-+/** Parent complementary error function (erfc) that calls different algorithms
-+ based on the value of x. It takes care of cases where x is negative as erfc
-+ satisfies relationship erfc(-x) = 2 - erfc(x). See the comment for Erf(x)
-+ for the source publication.
-
- @author Kohei Yoshida <kohei@openoffice.org>
-
-- @see #i19991#
-+ @see #i55735#
- */
--double Erf( double x )
-+double Erfc( double x )
- {
-+ if ( x == 0.0 )
-+ return 1.0;
-+
- bool bNegative = false;
- if ( x < 0.0 )
- {
-@@ -957,15 +1027,21 @@ double Erf( double x )
- bNegative = true;
- }
-
-- double fErf;
-- if ( x > 4.0 )
-- ErfAsymptotic( x, fErf );
-+ double fErfc = 0.0;
-+ if ( x > 0.65 )
-+ {
-+ if ( x < 6.0 )
-+ Erfc0600( x, fErfc );
-+ else
-+ Erfc2654( x, fErfc );
-+ }
- else
-- ErfMaclaurin( x, fErf );
-+ fErfc = 1.0 - Erf( x );
-
- if ( bNegative )
-- fErf *= -1.0;
-- return fErf;
-+ fErfc = 2.0 - fErfc;
-+
-+ return fErfc;
- }
-
- inline sal_Bool IsNum( sal_Unicode c )
diff --git a/patches/src680/sc-escape-print-preview.diff b/patches/src680/sc-escape-print-preview.diff
deleted file mode 100644
index 8235d5659..000000000
--- a/patches/src680/sc-escape-print-preview.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- sc/source/ui/view/preview.cxx 2005-02-08 19:07:30.537603611 +0530
-+++ sc/source/ui/view/preview.cxx 2005-02-08 19:08:35.536532612 +0530
-@@ -521,6 +521,7 @@
- switch(nKey)
- {
- case KEY_ADD: nSlot = SID_PREVIEW_ZOOMIN; break;
-+ case KEY_ESCAPE: nSlot = SID_PREVIEW_CLOSE; break;
- case KEY_SUBTRACT: nSlot = SID_PREVIEW_ZOOMOUT; break;
- }
- if(nSlot)
diff --git a/patches/src680/sc-filter-hide-filteredrows.diff b/patches/src680/sc-filter-hide-filteredrows.diff
deleted file mode 100644
index e6f1b99b4..000000000
--- a/patches/src680/sc-filter-hide-filteredrows.diff
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -u -r ../../../sc.bak/source/core/data/table2.cxx sc/source/core/data/table2.cxx
---- ../../../sc.bak/source/core/data/table2.cxx 2004-12-22 14:05:08.000000000 +0530
-+++ sc/source/core/data/table2.cxx 2005-01-06 16:31:44.128926640 +0530
-@@ -2388,7 +2388,12 @@
- }
-
- if (bShow)
-- pRowFlags->AndValue( nStartRow, nEndRow, ~(CR_HIDDEN | CR_FILTERED));
-+ {
-+ for (int i=nRow1; i<=nRow2; i++)
-+ { if (! this->IsFiltered(i))
-+ pRowFlags->AndValue( i, ~(CR_HIDDEN ) );
-+ }
-+ }
- else
- pRowFlags->OrValue( nStartRow, nEndRow, CR_HIDDEN);
-
diff --git a/patches/src680/sc-filters-fill-fix.diff b/patches/src680/sc-filters-fill-fix.diff
deleted file mode 100644
index 824f64a3e..000000000
--- a/patches/src680/sc-filters-fill-fix.diff
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -u -r ../../../sc.bak/source/core/data/table4.cxx sc/source/core/data/table4.cxx
---- ../../../sc.bak/source/core/data/table4.cxx 2004-12-22 14:05:08.000000000 +0530
-+++ sc/source/core/data/table4.cxx 2005-01-07 12:21:07.726010848 +0530
-@@ -1296,6 +1296,8 @@
- {
- for (rInner = nIMin; rInner <= nIMax; rInner++)
- {
-+ if (pDocument->RowFiltered( rInner, nTab))
-+ continue;
- ULONG nInd = nActFormCnt;
- FillFormula(nInd, bFirst, (ScFormulaCell*)pSrcCell,
- static_cast<SCCOL>(nCol), nRow, (rInner == nIEnd) );
-@@ -1307,6 +1309,8 @@
- {
- for (rInner = nIMin; rInner <= nIMax; rInner++)
- {
-+ if (pDocument->RowFiltered( rInner, nTab))
-+ continue;
- aCol[nCol].Insert(static_cast<SCROW>(nRow), pSrcCell->Clone(pDocument));
- }
- nProgress += nIMax - nIMin + 1;
diff --git a/patches/src680/sc-info-func.diff b/patches/src680/sc-info-func.diff
deleted file mode 100644
index 41fb15c07..000000000
--- a/patches/src680/sc-info-func.diff
+++ /dev/null
@@ -1,240 +0,0 @@
---- sc/inc/compiler.hrc 2005-04-14 09:49:48.000000000 +0530
-+++ sc/inc/compiler.hrc 2005-04-19 10:54:19.668066325 +0530
-@@ -196,6 +196,7 @@
- #define SC_OPCODE_ERR_CELL 129
- #define SC_OPCODE_FORMULA 130
- #define SC_OPCODE_ARABIC 131
-+#define SC_OPCODE_INFO 132
- #define SC_OPCODE_END_1_PAR 200
-
- /*** Funktionen mit mehreren Parametern ***/
---- sc/source/core/src/compiler.src 2005-04-14 09:50:04.000000000 +0530
-+++ sc/source/core/src/compiler.src 2005-04-19 10:53:40.148159575 +0530
-@@ -1692,6 +1692,11 @@
- Text [ de ] = "BAHTTEXT";
- Text [ en-US ] = "BAHTTEXT";
- };
-+ String SC_OPCODE_INFO
-+ {
-+ Text [ de ] = "INFO";
-+ Text [ en-US ] = "INFO";
-+ };
- };
- Resource RID_SC_FUNCTION_NAMES_ENGLISH
- {
-@@ -1987,5 +1992,6 @@
- String SC_OPCODE_ARABIC { Text = "ARABIC" ; };
- String SC_OPCODE_HYPERLINK { Text = "HYPERLINK" ; };
- String SC_OPCODE_BAHTTEXT { Text = "BAHTTEXT" ; };
-+ String SC_OPCODE_INFO { Text = "INFO" ; };
- };
-
-
---- sc/inc/globstr.hrc 2005-04-19 09:07:32.000000000 +0530
-+++ sc/inc/globstr.hrc 2005-04-22 11:54:18.015584338 +0530
-@@ -581,7 +581,9 @@
- #define STR_NUM_ERROR 414
- #define STR_NULL_ERROR 415
-
--#define STR_COUNT 416
-+#define STR_MANUAL 416
-+
-+#define STR_COUNT 417
-
- #endif
-
---- sc/source/ui/src/globstr.src 2005-04-19 09:07:50.000000000 +0530
-+++ sc/source/ui/src/globstr.src 2005-04-22 11:54:35.034247769 +0530
-@@ -2065,8 +2065,8 @@ Resource RID_GLOBSTR
- };
- String STR_SCATTR_PAGE_SCALE_AUTO
- {
-- Text [ de ] = "automatisch" ;
-- Text [ en-US ] = "automatic" ;
-+ Text [ de ] = "Automatisch" ;
-+ Text [ en-US ] = "Automatic" ;
- };
- String STR_DOC_STAT
- {
-@@ -2611,5 +2611,11 @@ Resource RID_GLOBSTR
- Text [ en-US ] = "#NULL!" ;
- Text [ x-comment ] = " ";
- };
-+ String STR_MANUAL
-+ {
-+ Text [ de ] = " Manual ";
-+ Text [ en-US ] = " Manual ";
-+ Text [ x-comment ] = " ";
-+ };
- };
-
---- sc/util/hidother.src 2005-04-14 09:49:51.000000000 +0530
-+++ sc/util/hidother.src 2005-04-19 10:55:06.808990934 +0530
-@@ -410,6 +410,7 @@
- hidspecial HID_FUNC_ROEMISCH { HelpID = HID_FUNC_ROEMISCH; };
- hidspecial HID_FUNC_ARABISCH { HelpID = HID_FUNC_ARABISCH; };
- hidspecial HID_FUNC_BAHTTEXT { HelpID = HID_FUNC_BAHTTEXT; };
-+hidspecial HID_FUNC_INFO { HelpID = HID_FUNC_INFO; };
-
- // ... and from Analysis Addin
-
-
---- sc/source/core/tool/interpr4.cxx 2005-04-22 10:38:05.000000000 +0530
-+++ sc/source/core/tool/interpr4.cxx 2005-04-22 12:16:02.399713062 +0530
-@@ -3531,6 +3531,7 @@ StackVar ScInterpreter::Interpret()
- case ocConvert : ScConvert(); break;
- case ocRoman : ScRoman(); break;
- case ocArabic : ScArabic(); break;
-+ case ocInfo : ScInfo(); break;
- case ocHyperLink : ScHyperLink(); break;
- case ocAnswer : ScAnswer(); break;
- case ocTeam : ScCalcTeam(); break;
---- sc/source/core/tool/interpr5.cxx 2005-04-14 09:50:06.000000000 +0530
-+++ sc/source/core/tool/interpr5.cxx 2005-04-22 11:51:51.580714679 +0530
-@@ -4015,5 +4015,45 @@ void ScInterpreter::ScMatRef()
- SetError( errNoRef );
- }
-
-+void ScInterpreter::ScInfo()
-+{
-+ if( MustHaveParamCount( GetByte(), 1 ) )
-+ {
-+ if( GetStackType() != svString)
-+ {
-+ SetIllegalArgument();
-+ return;
-+ }
-+
-+ String aStr = String(PopString()).ToUpperAscii();
-+
-+ if( aStr.EqualsAscii("SYSTEM") )
-+ PushString( String::CreateFromAscii(OSVERSION) );
-+
-+ else if( aStr.EqualsAscii("OSVERSION") )
-+ PushString( String::CreateFromAscii("Windows (32-bit) NT 5.01") );
-+
-+ else if( aStr.EqualsAscii("RELEASE") )
-+ PushString( String::CreateFromAscii(BUILD_ID "-" MINOR) );
-
-+ else if( aStr.EqualsAscii("ARCH") )
-+ PushString( String::CreateFromAscii(ARCH) );
-
-+ else if( aStr.EqualsAscii("GUI") )
-+ PushString( String::CreateFromAscii(CGUI) );
-+
-+ else if( aStr.EqualsAscii("NUMFILE") )
-+ PushString( String::CreateFromInt32(1) );
-+
-+ else if( aStr.EqualsAscii("RECALC") )
-+ {
-+ if( pDok->GetAutoCalc() )
-+ PushString( ScGlobal::GetRscString( STR_SCATTR_PAGE_SCALE_AUTO ) );
-+ else
-+ PushString( ScGlobal::GetRscString( STR_MANUAL ) );
-+ }
-+
-+ else
-+ SetIllegalParameter();
-+ }
-+}
---- sc/source/core/inc/interpre.hxx 2005-04-14 09:50:04.000000000 +0530
-+++ sc/source/core/inc/interpre.hxx 2005-04-19 10:53:28.353679629 +0530
-@@ -685,6 +685,7 @@
- void ScSTEXY();
- void ScSlope();
- void ScTrend();
-+void ScInfo();
-
-
- public:
---- sc/inc/opcode.hxx 2005-04-14 09:49:49.000000000 +0530
-+++ sc/inc/opcode.hxx 2005-04-19 10:54:10.434256359 +0530
-@@ -206,6 +206,7 @@
- ocErrCell = SC_OPCODE_ERR_CELL,
- ocFormula = SC_OPCODE_FORMULA,
- ocArabic = SC_OPCODE_ARABIC,
-+ ocInfo = SC_OPCODE_INFO,
- ocEnd1Par = SC_OPCODE_END_1_PAR,
- // Funktionen mit mehreren Parametern
- ocArcTan2 = SC_OPCODE_ARC_TAN_2,
---- sc/source/ui/src/scfuncs.src 2005-04-14 09:49:55.000000000 +0530
-+++ sc/source/ui/src/scfuncs.src 2005-04-22 11:54:44.487950093 +0530
-@@ -11027,6 +11027,31 @@ Resource RID_SC_FUNCTION_DESCRIPTIONS2
- Text [ en-US ] = "The text that represents a Roman numeral.";
- };
- };
-+ Resource SC_OPCODE_INFO
-+ {
-+ String 1
-+ {
-+ Text [ de ] = " ";
-+ Text [ en-US ] = "Gives some information about the environment";
-+ };
-+ ExtraData =
-+ {
-+ ID_FUNCTION_GRP_INFO;
-+ U2S( HID_FUNC_INFO );
-+ 1; 0;
-+ };
-+ String 2
-+ {
-+ Text [ de ] = " ";
-+ Text [ en-US ] = "Text";
-+ };
-+ String 3
-+ {
-+ Text [ de ] = " ";
-+ Text [ en-US ] = "Can be 'osversion', 'system', 'release', 'arch', 'gui', 'numfile' and 'recalc'.";
-+ Text [ x-comment ] = " Donot translate quoted text. ";
-+ };
-+ };
- };
-
- #if defined(U2S)
---- solenv/inc/settings.mk 2005-04-14 10:17:33.000000000 +0530
-+++ solenv/inc/settings.mk 2005-04-21 12:27:59.783874767 +0530
-@@ -1393,6 +1393,12 @@
- .ENDIF
- #.ENDIF
-
-+#Settings for the sc/tool, for producing information for =info function
-+.IF "$(PRJNAME)"=="sc" && "$(TARGET)"=="tool"
-+CDEFS+=-DMINOR=\"$(LAST_MINOR)\" -DBUILD_ID=\"$(BUILD)\" -DOSVERSION=\"$(OS)\"
-+CDEFS+=-DARCH=\"$(CPUNAME)\" -DCGUI=\"$(GUI)\"
-+.ENDIF
-+
- #to be removed soon!!!
- .IF "$(TF_NEWEX)"!=""
- CDEFS+= -DTF_NEWEX
---- sc/source/filter/excel/xlformula.cxx 2005-04-14 09:50:10.000000000 +0530
-+++ sc/source/filter/excel/xlformula.cxx 2005-04-22 11:53:58.701236836 +0530
-@@ -219,7 +219,7 @@ static const XclFunctionInfo saFuncTable
- { ocRoundDown, 213, 2, 2, V, { V } }
- };
-
--/** Functions new in BIFF3. Unsupported Excel function: INFO. */
-+/** Functions new in BIFF3. */
- static const XclFunctionInfo saFuncTable_3[] =
- {
- { ocRGP, 49, 1, 4, A, { R, R, V, V } }, // BIFF2: 1-2, BIFF3: 1-4
-@@ -239,7 +239,8 @@ static const XclFunctionInfo saFuncTable
- { ocArcSinHyp, 232, 1, 1, V, { V } },
- { ocArcCosHyp, 233, 1, 1, V, { V } },
- { ocArcTanHyp, 234, 1, 1, V, { V } },
-- { ocDBGet, 235, 3, 3, V, { R } }
-+ { ocDBGet, 235, 3, 3, V, { R } },
-+ { ocInfo, 244, 1, 1, V, { V } }
- };
-
- /** Functions new in BIFF4. */
---- sc/inc/scfuncs.hrc 2005-04-14 09:49:48.000000000 +0530
-+++ sc/inc/scfuncs.hrc 2005-04-22 11:52:54.715029952 +0530
-@@ -147,6 +147,8 @@
- #define HID_FUNC_AKTUELL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+14)
- #define HID_FUNC_FORMEL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+15)
- #define HID_FUNC_ZELLE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+16)
-+#define HID_FUNC_INFO (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_INFO*ID_FUNCTION_OFFSET)+17)
-+
-
- #define HID_FUNC_FALSCH (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_LOGIC*ID_FUNCTION_OFFSET)+1)
- #define HID_FUNC_NICHT (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_LOGIC*ID_FUNCTION_OFFSET)+2)
diff --git a/patches/src680/sc-insert-note-on-right-click.diff b/patches/src680/sc-insert-note-on-right-click.diff
deleted file mode 100644
index b71a488bc..000000000
--- a/patches/src680/sc-insert-note-on-right-click.diff
+++ /dev/null
@@ -1,33 +0,0 @@
---- sc/source/ui/src/popup.src.back 2005-02-15 10:55:00.000000000 +0530
-+++ sc/source/ui/src/popup.src 2005-03-26 12:06:20.000000000 +0530
-@@ -165,6 +165,13 @@
- //------------------------------
- MenuItem
- {
-+ Identifier = SID_INSERT_POSTIT ;
-+ HelpId = SID_INSERT_POSTIT ;
-+ Text [ en-US ] = "Insert Not~e" ;
-+ Text [ x-comment ] = " ";
-+ };
-+ MenuItem
-+ {
- Identifier = FID_NOTE_VISIBLE ;
- HelpId = FID_NOTE_VISIBLE ;
- Text [ de ] = "~Notiz anzeigen" ;
---- sc/source/ui/view/cellsh.cxx.back1 2005-11-17 18:58:00.000000000 +0530
-+++ sc/source/ui/view/cellsh.cxx 2005-03-30 10:40:14.000000000 +0530
-@@ -308,6 +308,14 @@
- }
- }
- break;
-+ case SID_INSERT_POSTIT:
-+ {
-+ ScPostIt aNote(pDoc);
-+ ScViewData* pView = GetViewData();
-+ if ( pDoc->GetNote( pView->GetCurX(), pView->GetCurY(), pView->GetTabNo(), aNote ) )
-+ rSet.DisableItem( nWhich );
-+ }
-+ break;
- case SID_OPENDLG_FUNCTION:
- {
- ScMarkData aMarkData=GetViewData()->GetMarkData();
diff --git a/patches/src680/sc-iteration.diff b/patches/src680/sc-iteration.diff
deleted file mode 100644
index 640aab5c2..000000000
--- a/patches/src680/sc-iteration.diff
+++ /dev/null
@@ -1,198 +0,0 @@
---- sc/source/core/data/table4.cxx 2005-03-24 17:17:40.000000000 +0530
-+++ sc/source/core/data/table4.cxx 2005-04-12 14:06:45.741558748 +0530
-@@ -111,6 +111,12 @@
- #include "docpool.hxx"
- #include "progress.hxx"
-
-+#include <svx/editobj.hxx>
-+#include <svx/editeng.hxx>
-+#include <svx/eeitem.hxx>
-+#include <svx/escpitem.hxx>
-+
-+
- // STATIC DATA -----------------------------------------------------------
-
- #define _D_MAX_LONG_ (double) 0x7fffffff
-@@ -186,6 +193,69 @@
- return aStr;
- }
- }
-+static void lcl_GetOrdinalSuffixEn( String &aValue, long nDigits )
-+{
-+ switch( labs( nDigits ) % 100 )
-+ {
-+ case 11: case 12: case 13:
-+ aValue.AssignAscii( "th" );
-+ break;
-+ default:
-+ switch( nDigits % 10 )
-+ {
-+ case 1:
-+ aValue.AssignAscii( "st" );
-+ break;
-+ case 2:
-+ aValue.AssignAscii( "nd" );
-+ break;
-+ case 3:
-+ aValue.AssignAscii( "rd" );
-+ break;
-+ default:
-+ aValue.AssignAscii( "th" );
-+ break;
-+ }
-+ break;
-+ }
-+}
-+
-+static void lcl_GetOrdinalSuffix( String &aValue, long nDigits, ScDocument *pDoc )
-+{
-+ LanguageType curLang, rCjk, rCtl;
-+ pDoc->GetLanguage( curLang, rCjk, rCtl );
-+
-+ if( curLang & LANGUAGE_ENGLISH == LANGUAGE_ENGLISH )
-+ lcl_GetOrdinalSuffixEn( aValue, nDigits );
-+
-+}
-+
-+static bool lcl_IsOrdinalSuffix( String aValue, long nStringValue, ScDocument *pDoc )
-+{
-+ String curIteration;
-+ lcl_GetOrdinalSuffix( curIteration, nStringValue, pDoc );
-+
-+ if( aValue.Equals( curIteration ) )
-+ return TRUE;
-+ return FALSE;
-+}
-+
-+static ScBaseCell *lcl_getSuperScriptCell( ScDocument *pDocument, String aStr, String aValue, CellType eCellType, BOOL bIsOrdinalSuffix )
-+{
-+ if( eCellType!=CELLTYPE_EDIT || !bIsOrdinalSuffix )
-+ {
-+ aStr += aValue;
-+ return new ScStringCell( aStr );
-+ }
-+
-+ EditEngine aEngine( pDocument->GetEnginePool() );
-+ SfxItemSet aAttr = aEngine.GetEmptyItemSet();
-+ aAttr.Put( SvxEscapementItem( SVX_ESCAPEMENT_SUPERSCRIPT, EE_CHAR_ESCAPEMENT ) );
-+ aEngine.SetText( aStr );
-+ aEngine.QuickInsertText( aValue, ESelection( 0, aStr.Len(), 0, aStr.Len() + aValue.Len() ) );
-+ aEngine.QuickSetAttribs( aAttr, ESelection( 0, aStr.Len(), 0, aStr.Len() + aValue.Len() ) );
-+ return new ScEditCell( aEngine.CreateTextObject(), pDocument, NULL );
-+}
-
- void ScTable::FillAnalyse( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
- FillCmd& rCmd, FillDateCmd& rDateCmd,
-@@ -741,6 +814,8 @@
- String aValue;
- ScBaseCell* pSrcCell;
- CellType eCellType;
-+ BOOL bIsOrdinalSuffix = FALSE;
-+
-
- for (rInner = nIStart;;)
- {
-@@ -770,6 +845,8 @@
- nCellDigits = 0; // look at each source cell individually
- nHeadNoneTail = lcl_DecompValueString(
- aValue, nStringValue, &nCellDigits );
-+
-+ bIsOrdinalSuffix = lcl_IsOrdinalSuffix( aValue, nStringValue, pDocument );
- }
- break;
- }
-@@ -790,14 +867,18 @@
- if ( nHeadNoneTail < 0 )
- {
- aStr = lcl_ValueString( nNextValue, nCellDigits );
-- aStr += aValue;
-+
-+ if( bIsOrdinalSuffix )
-+ lcl_GetOrdinalSuffix( aValue, nStringValue + (long)nDelta, pDocument );
-+ aCol[nCol].Insert( static_cast<SCROW>(nRow),
-+ lcl_getSuperScriptCell( pDocument, aStr, aValue, eCellType, bIsOrdinalSuffix ) );
- }
- else
- {
- aStr = aValue;
- aStr += lcl_ValueString( nNextValue, nCellDigits );
-+ aCol[nCol].Insert( static_cast<SCROW>(nRow), new ScStringCell( aStr ) );
- }
-- aCol[nCol].Insert(static_cast<SCROW>(nRow), new ScStringCell( aStr ) );
- }
- else
- {
-@@ -985,7 +1066,12 @@
- USHORT nCellDigits = 0; // look at each source cell individually
- short nFlag = lcl_DecompValueString( aValue, nVal, &nCellDigits );
- if ( nFlag < 0 )
-+ {
-+ if( lcl_IsOrdinalSuffix( aValue, nVal, pDocument ) )
-+ lcl_GetOrdinalSuffix( aValue, nVal + nDelta, pDocument );
-+
- aValue.Insert( lcl_ValueString( nVal + nDelta, nCellDigits ), 0 );
-+ }
- else if ( nFlag > 0 )
- aValue += lcl_ValueString( nVal + nDelta, nCellDigits );
- }
-@@ -1012,6 +1101,7 @@
- {
- BOOL bOk;
- double nStart;
-+ long nVal;
- short nHeadNoneTail = 0;
- ScBaseCell* pCell = GetCell( nCol1, nRow1 );
- if ( pCell )
-@@ -1026,7 +1116,6 @@
- ((ScStringCell*)pCell)->GetString( aValue );
- else
- ((ScEditCell*)pCell)->GetString( aValue );
-- long nVal;
- nHeadNoneTail = lcl_DecompValueString( aValue, nVal );
- if ( nHeadNoneTail )
- nStart = (double)nVal;
-@@ -1070,7 +1159,12 @@
- if ( nHeadNoneTail )
- {
- if ( nHeadNoneTail < 0 )
-+ {
-+ if( lcl_IsOrdinalSuffix( aValue, nVal, pDocument ) )
-+ lcl_GetOrdinalSuffix( aValue, (long)nStart, pDocument );
-+
- aValue.Insert( lcl_ValueString( (long)nStart, nMinDigits ), 0 );
-+ }
- else
- aValue += lcl_ValueString( (long)nStart, nMinDigits );
- }
-@@ -1417,6 +1515,8 @@
- BOOL bError = FALSE;
- BOOL bOverflow = FALSE;
-
-+ BOOL bIsOrdinalSuffix = lcl_IsOrdinalSuffix( aValue, (long)nStartVal, pDocument );
-+
- rInner = nIStart;
- while (true) // #i53728# with "for (;;)" old solaris/x86 compiler mis-optimizes
- {
-@@ -1467,15 +1569,19 @@
- if ( nHeadNoneTail < 0 )
- {
- aStr = lcl_ValueString( nStringValue, nMinDigits );
-- aStr += aValue;
-+
-+ if( bIsOrdinalSuffix )
-+ lcl_GetOrdinalSuffix( aValue, (long)nStringValue, pDocument );
-+ aCol[nCol].Insert( static_cast<SCROW>(nRow),
-+ lcl_getSuperScriptCell( pDocument, aStr, aValue, eCellType, bIsOrdinalSuffix ) );
- }
- else
- {
- aStr = aValue;
- aStr += lcl_ValueString( nStringValue, nMinDigits );
-+ ScStringCell* pCell = new ScStringCell( aStr );
-+ aCol[nCol].Insert( static_cast<SCROW>(nRow), pCell );
- }
-- ScStringCell* pCell = new ScStringCell( aStr );
-- aCol[nCol].Insert(static_cast<SCROW>(nRow), pCell);
- }
-
- if (rInner == nIEnd) break;
diff --git a/patches/src680/sc-no-delete-filteredrows.diff b/patches/src680/sc-no-delete-filteredrows.diff
deleted file mode 100644
index eee9ed408..000000000
--- a/patches/src680/sc-no-delete-filteredrows.diff
+++ /dev/null
@@ -1,94 +0,0 @@
-Index: sc/source/core/data/column.cxx
-===================================================================
---- sc/source/core/data/column.cxx.orig 2004-11-26 13:35:37.996537216 +0000
-+++ sc/source/core/data/column.cxx 2004-11-26 17:09:57.853541792 +0000
-@@ -1322,6 +1322,9 @@ void ScColumn::CopyToClip(USHORT nRow1,
- for (i = 0; i < nCount; i++)
- if ((pItems[i].nRow >= nRow1) && (pItems[i].nRow <= nRow2))
- {
-+
-+ if ( pDocument->RowFiltered( pItems[i].nRow , nTab))
-+ continue;
- if (!nBlockCount)
- nStartIndex = i;
- nEndIndex = i;
-@@ -1342,7 +1345,11 @@ void ScColumn::CopyToClip(USHORT nRow1,
- {
- rColumn.Resize( rColumn.GetCellCount() + nBlockCount );
- for (i = nStartIndex; i <= nEndIndex; i++)
-+ {
-+ if ( pDocument->RowFiltered( pItems[i].nRow , nTab))
-+ continue;
- rColumn.Append(pItems[i].nRow, pItems[i].pCell->Clone(rColumn.pDocument));
-+ }
- }
- }
-
-Index: sc/source/core/data/column3.cxx
-===================================================================
---- sc/source/core/data/column3.cxx.orig 2004-11-26 13:35:37.999536760 +0000
-+++ sc/source/core/data/column3.cxx 2004-11-26 17:09:57.867539664 +0000
-@@ -398,6 +398,17 @@ void ScColumn::DeleteRange( USHORT nStar
- BOOL bSimple = ((nDelFlag & IDF_CONTENTS) == IDF_CONTENTS);
- USHORT i;
-
-+ /*
-+ *If we are deleting a range that has filtered column, let it not be simple
-+ */
-+
-+ if (bSimple)
-+ {
-+ for (i = nStartIndex; i <= nEndIndex && bSimple; i++)
-+ if ( pDocument->RowFiltered(pItems[i].nRow, nTab))
-+ bSimple = FALSE;
-+ }
-+
- // Notiz-Zeichenobjekte
- if (nDelFlag & IDF_NOTE)
- {
-@@ -452,6 +463,16 @@ void ScColumn::DeleteRange( USHORT nStar
- BOOL bDelete = FALSE;
- ScBaseCell* pOldCell = pItems[j].pCell;
- CellType eCellType = pOldCell->GetCellType();
-+
-+ /*
-+ * If the rows are filtered continue instead deleting.
-+ */
-+ if ( pDocument->RowFiltered( pItems[j].nRow, nTab))
-+ {
-+ ++j;
-+ continue;
-+ }
-+
- switch ( eCellType )
- {
- case CELLTYPE_VALUE:
-Index: sc/inc/document.hxx
-===================================================================
---- sc/inc/document.hxx.orig 2004-11-26 13:35:38.064526880 +0000
-+++ sc/inc/document.hxx 2004-11-26 17:10:55.795733240 +0000
-@@ -508,6 +508,8 @@ public:
- long GetWeightedCount() const; // Formeln und Edit staerker gewichtet
- ULONG GetCodeCount() const; // RPN-Code in Formeln
- DECL_LINK( GetUserDefinedColor, USHORT * );
-+ BOOL RowFiltered( USHORT nRow, USHORT nTab ) const; // FillInfo
-+ BOOL ColFiltered( USHORT nCol, USHORT nTab ) const; // FillInfo
- // Numberformatter
-
- public:
-@@ -1698,6 +1700,15 @@ inline BOOL ScDocument::RowHidden( USHOR
- return ( pTab[nTab]->pRowFlags[nRow] & CR_HIDDEN ) != 0;
- }
-
-+inline BOOL ScDocument::ColFiltered( USHORT nCol, USHORT nTab ) const
-+{
-+ return ( pTab[nTab]->pColFlags[nCol] & CR_FILTERED) != 0;
-+}
-+
-+inline BOOL ScDocument::RowFiltered( USHORT nRow, USHORT nTab ) const
-+{
-+ return pTab[nTab]->IsFiltered(nRow);
-+}
-
-
- #endif
diff --git a/patches/src680/sc-paste-dialog.diff b/patches/src680/sc-paste-dialog.diff
deleted file mode 100644
index 669e3b29e..000000000
--- a/patches/src680/sc-paste-dialog.diff
+++ /dev/null
@@ -1,66 +0,0 @@
-Index: sc/source/ui/view/viewfun5.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/view/viewfun5.cxx,v
-retrieving revision 1.29
-diff -u -r1.29 viewfun5.cxx
---- sc/source/ui/view/viewfun5.cxx 8 Sep 2004 15:56:29 -0000 1.29
-+++ sc/source/ui/view/viewfun5.cxx 12 Oct 2004 13:51:30 -0000
-@@ -119,6 +119,10 @@
- #include "tabvwsh.hxx" // wegen GetViewFrame
- #include "compiler.hxx"
-
-+#include "asciiopt.hxx"
-+#include "scabstdlg.hxx"
-+#include "vcl/msgbox.hxx"
-+
- #ifndef _SFXVIEWFRM_HXX //autogen
- #include <sfx2/viewfrm.hxx>
- #endif
-@@ -272,13 +276,44 @@
- ScAddress aPos( nPosX, nPosY, GetViewData()->GetTabNo() );
- ScImportExport aObj( GetViewData()->GetDocument(), aPos );
-
-- ::rtl::OUString aStr;
-+ ::rtl::OUString aStr;
- SotStorageStreamRef xStream;
- if ( aDataHelper.GetSotStorageStream( nFormatId, xStream ) && xStream.Is() )
- // mba: clipboard always must contain absolute URLs (could be from alien source)
- bRet = aObj.ImportStream( *xStream, String(), nFormatId );
-- else if ( aDataHelper.GetString( nFormatId, aStr ) )
-- bRet = aObj.ImportString( aStr, nFormatId );
-+
-+ else if ( aDataHelper.GetString( nFormatId, aStr ) ) {
-+
-+ sal_Int32 newln;
-+ newln = aStr.indexOf ('\n');
-+/* ::rtl::OString tmpStr = OUStringToOString
-+ ( aStr, RTL_TEXTENCODING_UTF8 );
-+ fprintf (stderr, "String is '%s' (%d) [%d]\n",
-+ tmpStr.getStr (), tmpStr.getLength(), newln); */
-+ if (newln >= 0 && newln != aStr.getLength () - 1) { // do dialog
-+ // FIXME: split me out - if only C++ 'private' didn't suck rocks.
-+
-+ SvMemoryStream aStrm( (void*)aStr.getStr(), aStr.getLength() * sizeof(sal_Unicode), STREAM_READ );
-+ aStrm.SetStreamCharSet( RTL_TEXTENCODING_UNICODE );
-+ // Hack - copied from impex.cxx - we need a helper to do this [!]
-+ aStrm.SetEndianSwap( FALSE );
-+
-+ ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
-+ AbstractScImportAsciiDlg *pDlg = pFact->CreateScImportAsciiDlg
-+ ( NULL, String::CreateFromAscii("Pasted Data"), &aStrm,
-+ ResId(RID_SCDLG_ASCII) );
-+
-+ if (pDlg->Execute() == RET_OK) {
-+ ScAsciiOptions aOptions;
-+ pDlg->GetOptions( aOptions );
-+ aObj.SetExtOptions( aOptions );
-+
-+ bRet = aObj.ImportString( aStr, nFormatId );
-+ } else
-+ bRet = FALSE;
-+ } else
-+ bRet = aObj.ImportString( aStr, nFormatId );
-+ }
-
- InvalidateAttribs();
- GetViewData()->UpdateInputHandler();
diff --git a/patches/src680/sc-paste-insert-rows.diff b/patches/src680/sc-paste-insert-rows.diff
deleted file mode 100644
index 91eab08d5..000000000
--- a/patches/src680/sc-paste-insert-rows.diff
+++ /dev/null
@@ -1,23 +0,0 @@
---- ../src680-m72.bak/sc/source/ui/view/viewfun3.cxx 2005-02-07 12:34:17.506905571 +0530
-+++ sc/source/ui/view/viewfun3.cxx 2005-01-31 10:46:05.000000000 +0530
-@@ -443,8 +443,16 @@
- ScDrawTransferObj* pDrawClip = ScDrawTransferObj::GetOwnClipboard( pWin );
-
- if (pOwnClip)
-- PasteFromClip( IDF_ALL, pOwnClip->GetDocument(),
-- PASTE_NOFUNC, FALSE, FALSE, FALSE, INS_NONE, IDF_NONE,
-- TRUE ); // allow warning dialog
-+ {
-+ ScRange aSource = pOwnClip->GetRange();
-+ if (aSource.aStart.Col() == 0 && aSource.aEnd.Col() == MAXCOL)
-+ PasteFromClip( IDF_ALL, pOwnClip->GetDocument(),
-+ PASTE_NOFUNC, FALSE, FALSE, FALSE, INS_CELLSDOWN, IDF_NONE,
-+ FALSE ); // Dont allow warning dialog
-+ else
-+ PasteFromClip( IDF_ALL, pOwnClip->GetDocument(),
-+ PASTE_NOFUNC, FALSE, FALSE, FALSE, INS_NONE, IDF_NONE,
-+ TRUE ); // allow warning dialog
-+ }
- else if (pDrawClip)
- PasteDraw();
- else
diff --git a/patches/src680/sc-preserve-imp-opts.diff b/patches/src680/sc-preserve-imp-opts.diff
deleted file mode 100644
index 83a74f3cb..000000000
--- a/patches/src680/sc-preserve-imp-opts.diff
+++ /dev/null
@@ -1,362 +0,0 @@
---- officecfg/registry/schema/org/openoffice/Office/Calc.xcs 2005-07-24 17:09:34.000000000 +0530
-+++ officecfg/registry/schema/org/openoffice/Office/Calc.xcs 2005-09-19 22:38:05.000000000 +0530
-@@ -1041,6 +1041,72 @@
- <value>NULL</value>
- </prop>
- </group>
-+ <group oor:name="Dialogs">
-+ <info>
-+ <desc>Contains the dialogs settings.</desc>
-+ </info>
-+ <group oor:name="CSVImport">
-+ <info>
-+ <desc>Contains setting for Text CSV Import</desc>
-+ </info>
-+ <prop oor:name="MergeDelimiters" oor:type="xs:boolean">
-+ <info>
-+ <author>muthusuba</author>
-+ <desc>Merge Delimiter check box status</desc>
-+ <label>MergeDelimiters</label>
-+ </info>
-+ <value>false</value>
-+ </prop>
-+ <prop oor:name="Separators" oor:type="xs:string">
-+ <info>
-+ <author>muthusuba</author>
-+ <desc>List of Separators - as a String</desc>
-+ <label>Separators</label>
-+ </info>
-+ <value>; </value>
-+ </prop>
-+ <prop oor:name="TextSeparators" oor:type="xs:string">
-+ <info>
-+ <author>muthusuba</author>
-+ <desc>Text Separators</desc>
-+ <label>TextSeparators</label>
-+ </info>
-+ <value>"</value>
-+ </prop>
-+ <prop oor:name="FixedWidth" oor:type="xs:boolean">
-+ <info>
-+ <author>muthusuba</author>
-+ <desc>Fixed width</desc>
-+ <label>FixedWidth</label>
-+ </info>
-+ <value>false</value>
-+ </prop>
-+ <prop oor:name="FromRow" oor:type="xs:int">
-+ <info>
-+ <author>muthusuba</author>
-+ <desc>From Row</desc>
-+ <label>FromRow</label>
-+ </info>
-+ <value>1</value>
-+ </prop>
-+ <prop oor:name="CharSet" oor:type="xs:int">
-+ <info>
-+ <author>muthusuba</author>
-+ <desc>Char Set</desc>
-+ <label>CharSet</label>
-+ </info>
-+ <value>-1</value>
-+ </prop>
-+ <prop oor:name="FixedWidthList" oor:type="xs:string">
-+ <info>
-+ <author>muthusuba</author>
-+ <desc>Fixed Width List of separators</desc>
-+ <label>FixedWidthList</label>
-+ </info>
-+ <value></value>
-+ </prop>
-+ </group>
-+ </group>
- <group oor:name="Calculate">
- <info>
- <desc>Contains settings that affect cell calculation.</desc>
---- sc/source/ui/dbgui/scuiasciiopt.cxx 2005-07-24 17:46:45.000000000 +0530
-+++ sc/source/ui/dbgui/scuiasciiopt.cxx 2005-09-07 23:00:03.494705192 +0530
-@@ -79,6 +79,12 @@
- // ause
- #include "editutil.hxx"
-
-+#include <optutil.hxx>
-+#include <com/sun/star/uno/Any.hxx>
-+#include <com/sun/star/uno/Sequence.hxx>
-+#include "miscuno.hxx"
-+
-+
- //! TODO make dynamic
- #ifdef WIN
- const SCSIZE ASCIIDLG_MAXROWS = 10000;
-@@ -86,6 +92,20 @@ const SCSIZE ASCIIDLG_MAXROWS
- const SCSIZE ASCIIDLG_MAXROWS = MAXROWCOUNT;
- #endif
-
-+
-+using namespace rtl;
-+using namespace com::sun::star::uno;
-+
-+// Defines - CSV Import Preserve Options
-+#define FIXED_WIDTH "FixedWidth"
-+#define FROM_ROW "FromRow"
-+#define CHAR_SET "CharSet"
-+#define SEPARATORS "Separators"
-+#define TEXT_SEPARATORS "TextSeparators"
-+#define MERGE_DELIMITERS "MergeDelimiters"
-+#define SEP_PATH "Office.Calc/Dialogs/CSVImport"
-+
-+
- // ============================================================================
-
- void lcl_FillCombo( ComboBox& rCombo, const String& rList, sal_Unicode cSelect )
-@@ -133,6 +153,70 @@ sal_Unicode lcl_CharFromCombo( ComboBox&
- return c;
- }
-
-+static void load_Separators( OUString &sFieldSeparators, OUString &sTextSeparators,
-+ bool &bMergeDelimiters, bool &bFixedWidth, sal_Int32 &nFromRow, sal_Int32 &nCharSet )
-+{
-+ Sequence<Any>aValues;
-+ const Any *pProperties;
-+ Sequence<OUString> aNames(6);
-+ OUString* pNames = aNames.getArray();
-+ ScLinkConfigItem aItem( OUString::createFromAscii( SEP_PATH ) );
-+
-+ pNames[0] = OUString::createFromAscii( MERGE_DELIMITERS );
-+ pNames[1] = OUString::createFromAscii( SEPARATORS );
-+ pNames[2] = OUString::createFromAscii( TEXT_SEPARATORS );
-+ pNames[3] = OUString::createFromAscii( FIXED_WIDTH );
-+ pNames[4] = OUString::createFromAscii( FROM_ROW );
-+ pNames[5] = OUString::createFromAscii( CHAR_SET );
-+ aValues = aItem.GetProperties( aNames );
-+ pProperties = aValues.getConstArray();
-+ if( pProperties[1].hasValue() )
-+ pProperties[1] >>= sFieldSeparators;
-+
-+ if( pProperties[2].hasValue() )
-+ pProperties[2] >>= sTextSeparators;
-+
-+ if( pProperties[0].hasValue() )
-+ bMergeDelimiters = ScUnoHelpFunctions::GetBoolFromAny( pProperties[0] );
-+
-+ if( pProperties[3].hasValue() )
-+ bFixedWidth = ScUnoHelpFunctions::GetBoolFromAny( pProperties[3] );
-+
-+ if( pProperties[4].hasValue() )
-+ pProperties[4] >>= nFromRow;
-+
-+ if( pProperties[5].hasValue() )
-+ pProperties[5] >>= nCharSet;
-+}
-+
-+static void save_Separators( String maSeparators, String maTxtSep, bool bMergeDelimiters,
-+ bool bFixedWidth, sal_Int32 nFromRow, sal_Int32 nCharSet )
-+{
-+ OUString sFieldSeparators = OUString( maSeparators );
-+ OUString sTextSeparators = OUString( maTxtSep );
-+ Sequence<Any> aValues;
-+ Any *pProperties;
-+ Sequence<OUString> aNames(6);
-+ OUString* pNames = aNames.getArray();
-+ ScLinkConfigItem aItem( OUString::createFromAscii( SEP_PATH ) );
-+
-+ pNames[0] = OUString::createFromAscii( MERGE_DELIMITERS );
-+ pNames[1] = OUString::createFromAscii( SEPARATORS );
-+ pNames[2] = OUString::createFromAscii( TEXT_SEPARATORS );
-+ pNames[3] = OUString::createFromAscii( FIXED_WIDTH );
-+ pNames[4] = OUString::createFromAscii( FROM_ROW );
-+ pNames[5] = OUString::createFromAscii( CHAR_SET );
-+ aValues = aItem.GetProperties( aNames );
-+ pProperties = aValues.getArray();
-+ pProperties[1] <<= sFieldSeparators;
-+ pProperties[2] <<= sTextSeparators;
-+ ScUnoHelpFunctions::SetBoolInAny( pProperties[0], bMergeDelimiters );
-+ ScUnoHelpFunctions::SetBoolInAny( pProperties[3], bFixedWidth );
-+ pProperties[4] <<= nFromRow;
-+ pProperties[5] <<= nCharSet;
-+
-+ aItem.PutProperties(aNames, aValues);
-+}
-
- // ----------------------------------------------------------------------------
-
-@@ -190,16 +274,42 @@ ScImportAsciiDlg::ScImportAsciiDlg( Wind
- aName += ']';
- SetText( aName );
-
-- switch(cSep)
-+
-+ OUString sFieldSeparators;
-+ OUString sTextSeparators;
-+ bool bMergeDelimiters = false;
-+ bool bFixedWidth = false;
-+ sal_Int32 nFromRow = 1;
-+ sal_Int32 nCharSet = -1;
-+ load_Separators (sFieldSeparators, sTextSeparators, bMergeDelimiters, bFixedWidth, nFromRow, nCharSet);
-+ maFieldSeparators = String(sFieldSeparators);
-+
-+ if( bMergeDelimiters )
-+ aCkbAsOnce.Check();
-+ if( bFixedWidth )
-+ aRbFixed.Check();
-+ if( nFromRow != 1 )
-+ aNfRow.SetValue( nFromRow );
-+
-+ ByteString bString(maFieldSeparators,RTL_TEXTENCODING_MS_1252);
-+ const sal_Char *aSep = bString.GetBuffer();
-+ int i = 0;
-+ int len = maFieldSeparators.Len();
-+ for(i=0;i<len;i++)
- {
-- case '\t': aCkbTab.Check(); break;
-- case ';': aCkbSemicolon.Check(); break;
-- case ',': aCkbComma.Check(); break;
-- case ' ': aCkbSpace.Check(); break;
-- default:
-- aCkbOther.Check();
-- aEdOther.SetText( cSep );
-+ switch( aSep[i] )
-+ {
-+ case '\t': aCkbTab.Check(); break;
-+ case ';': aCkbSemicolon.Check(); break;
-+ case ',': aCkbComma.Check(); break;
-+ case ' ': aCkbSpace.Check(); break;
-+ default:
-+ aCkbOther.Check();
-+ aEdOther.SetText( aEdOther.GetText() + OUString( aSep[i] ) );
-+ }
- }
-+
-+ // Get Separators from the dialog
- maFieldSeparators = GetSeparators();
-
- BOOL bPreselectUnicode = FALSE;
-@@ -238,6 +348,7 @@ ScImportAsciiDlg::ScImportAsciiDlg( Wind
-
- // *** Separator characters ***
- lcl_FillCombo( aCbTextSep, aTextSepList, mcTextSep );
-+ aCbTextSep.SetText( sTextSeparators );
-
- Link aSeparatorHdl =LINK( this, ScImportAsciiDlg, SeparatorHdl );
- aCbTextSep.SetSelectHdl( aSeparatorHdl );
-@@ -261,6 +372,9 @@ ScImportAsciiDlg::ScImportAsciiDlg( Wind
- SetSelectedCharSet();
- aLbCharSet.SetSelectHdl( LINK( this, ScImportAsciiDlg, CharSetHdl ) );
-
-+ if( nCharSet >= 0 )
-+ aLbCharSet.SelectEntryPos( nCharSet );
-+
- // *** column type ListBox ***
- xub_StrLen nCount = aColumnUser.GetTokenCount();
- for (xub_StrLen i=0; i<nCount; i++)
-@@ -289,6 +403,8 @@ ScImportAsciiDlg::ScImportAsciiDlg( Wind
-
- ScImportAsciiDlg::~ScImportAsciiDlg()
- {
-+ save_Separators( maFieldSeparators, aCbTextSep.GetText(), aCkbAsOnce.IsChecked(),
-+ aRbFixed.IsChecked(), aNfRow.GetValue(), aLbCharSet.GetSelectEntryPos());
- delete[] mpRowPosArray;
- }
-
---- sc/source/ui/inc/csvruler.hxx 2005-09-18 22:48:04.000000000 +0530
-+++ sc/source/ui/inc/csvruler.hxx 2005-09-18 22:55:37.000000000 +0530
-@@ -112,6 +112,7 @@ private:
- // ------------------------------------------------------------------------
- public:
- explicit ScCsvRuler( ScCsvControl& rParent );
-+ ~ScCsvRuler();
-
- // common ruler handling --------------------------------------------------
- public:
---- sc/source/ui/dbgui/csvruler.cxx 2005-09-18 22:14:42.000000000 +0530
-+++ sc/source/ui/dbgui/csvruler.cxx 2005-09-19 22:04:55.074689184 +0530
-@@ -75,7 +75,75 @@
- #endif
-
-
-+#include <optutil.hxx>
-+#include <com/sun/star/uno/Any.hxx>
-+#include <com/sun/star/uno/Sequence.hxx>
-+#include "miscuno.hxx"
-+
-+using namespace rtl;
-+using namespace com::sun::star::uno;
-+
-+
-+
- // ============================================================================
-+#define SEP_PATH "Office.Calc/Dialogs/CSVImport"
-+#define FIXED_WIDTH_LIST "FixedWidthList"
-+
-+
-+// ============================================================================
-+
-+static void load_FixedWidthList(ScCsvSplits &aSplits)
-+{
-+ String sSplits;
-+ OUString sFixedWidthLists;
-+
-+ Sequence<Any>aValues;
-+ const Any *pProperties;
-+ Sequence<OUString> aNames(1);
-+ OUString* pNames = aNames.getArray();
-+ ScLinkConfigItem aItem( OUString::createFromAscii( SEP_PATH ) );
-+
-+ pNames[0] = OUString::createFromAscii( FIXED_WIDTH_LIST );
-+ aValues = aItem.GetProperties( aNames );
-+ pProperties = aValues.getConstArray();
-+
-+ if( pProperties[0].hasValue() )
-+ {
-+ aSplits.Clear();
-+ pProperties[0] >>= sFixedWidthLists;
-+
-+ sSplits = String( sFixedWidthLists );
-+
-+ // String ends with a semi-colon so there is no 'int' after the last one.
-+ for(int i=0;i<sSplits.GetTokenCount()-1;i++ )
-+ aSplits.Insert( sSplits.GetToken(i).ToInt32() );
-+ }
-+}
-+static void save_FixedWidthList(ScCsvSplits aSplits)
-+{
-+ int i;
-+ String sSplits;
-+ // Create a semi-colon separated string to save the splits
-+ for(i=0;i<aSplits.Count();i++)
-+ {
-+ sSplits.Append( String::CreateFromInt32( aSplits[i] ) );
-+ sSplits.Append((char)';');
-+ }
-+
-+ OUString sFixedWidthLists = OUString( sSplits );
-+ Sequence<Any> aValues;
-+ Any *pProperties;
-+ Sequence<OUString> aNames(1);
-+ OUString* pNames = aNames.getArray();
-+ ScLinkConfigItem aItem( OUString::createFromAscii( SEP_PATH ) );
-+
-+ pNames[0] = OUString::createFromAscii( FIXED_WIDTH_LIST );
-+ aValues = aItem.GetProperties( aNames );
-+ pProperties = aValues.getArray();
-+ pProperties[0] <<= sFixedWidthLists;
-+
-+ aItem.PutProperties(aNames, aValues);
-+}
-
- ScCsvRuler::ScCsvRuler( ScCsvControl& rParent ) :
- ScCsvControl( rParent ),
-@@ -86,6 +154,13 @@ ScCsvRuler::ScCsvRuler( ScCsvControl& rP
- InitSizeData();
- maBackgrDev.SetFont( GetFont() );
- maRulerDev.SetFont( GetFont() );
-+
-+ load_FixedWidthList( maSplits );
-+}
-+
-+ScCsvRuler::~ScCsvRuler()
-+{
-+ save_FixedWidthList( maSplits );
- }
-
-
diff --git a/patches/src680/sc-pv-crasher.diff b/patches/src680/sc-pv-crasher.diff
deleted file mode 100644
index 056da7df4..000000000
--- a/patches/src680/sc-pv-crasher.diff
+++ /dev/null
@@ -1,42 +0,0 @@
---- sc/source/ui/dbgui/fieldwnd.cxx 2004-11-02 20:12:19.000000000 +0530
-+++ sc/source/ui/dbgui/fieldwnd.cxx 2005-04-08 16:00:57.000000000 +0530
-@@ -658,7 +658,7 @@
-
- void ScDPFieldWindow::ClearFields()
- {
-- if( eType == TYPE_SELECT )
-+ if( eType == TYPE_SELECT || eType == TYPE_PAGE || eType == TYPE_COL || eType == TYPE_ROW || eType == TYPE_DATA)
- {
- com::sun::star::uno::Reference < com::sun::star::accessibility::XAccessible > xTempAcc = xAccessible;
- if (!xTempAcc.is() && pAccessible)
---- sc/source/ui/dbgui/pvlaydlg.cxx 2005-03-24 17:17:41.000000000 +0530
-+++ sc/source/ui/dbgui/pvlaydlg.cxx 2005-04-08 16:08:25.145231844 +0530
-@@ -1568,6 +1567,13 @@
-
- aR = xDlgDPObject->GetSheetDesc()->aSourceRange;
-
-+ aLabelDataArr.clear();
-+ aWndSelect.ClearFields();
-+ aWndData.ClearFields();
-+ aWndRow.ClearFields();
-+ aWndCol.ClearFields();
-+ aWndPage.ClearFields();
-+
- USHORT i;
- for ( i=0; i<MAX_LABELS; i++ )
- aSelectArr[i].reset();
-@@ -1577,12 +1583,11 @@
- RemoveField (TYPE_COL, i);
- RemoveField (TYPE_ROW, i);
- RemoveField (TYPE_DATA, i);
-- RemoveField (TYPE_PAGE, i);
- }
-+ for ( i=0; i<MAX_PAGEFIELDS; i++ )
-+ RemoveField (TYPE_PAGE, i);
-
-- aLabelDataArr.clear();
-
-- aWndSelect.ClearFields();
-
- InitWndSelect( thePivotData.ppLabelArr, thePivotData.nLabels );
- InitWnd( thePivotData.aColArr, thePivotData.nColCount, TYPE_COL );
diff --git a/patches/src680/sc-r1c1.diff b/patches/src680/sc-r1c1.diff
deleted file mode 100644
index e8e8e13e9..000000000
--- a/patches/src680/sc-r1c1.diff
+++ /dev/null
@@ -1,4057 +0,0 @@
-Index: sc/inc/address.hxx
-===================================================================
-RCS file: /cvs/sc/sc/inc/address.hxx,v
-retrieving revision 1.8
-retrieving revision 1.7.36.6
-diff -u -w -p -r1.8 -r1.7.36.6
---- sc/inc/address.hxx 21 Oct 2005 11:48:10 -0000 1.8
-+++ sc/inc/address.hxx 1 Dec 2005 19:52:16 -0000 1.7.36.6
-@@ -253,6 +253,34 @@ public:
-
- enum Uninitialized { UNINITIALIZED };
- enum InitializeInvalid { INITIALIZE_INVALID };
-+ enum Convention {
-+ CONV_UNSPECIFIED = -1, /* useful when we want method to chose, must be first */
-+
-+ /* elements must be sequential and changes should be reflected in ScCompiler::pCharTables */
-+ CONV_OOO = 0, /* sheet.A1:sheet2.B2 */
-+ CONV_XL_A1, /* sheet:sheet2!A1:B2 */
-+ CONV_XL_R1C1, /* sheet:sheet2!R1C1:R2C2 */
-+
-+ CONV_LAST /* for loops, must always be last */
-+ };
-+ struct Details {
-+ Convention eConv;
-+ SCROW nRow;
-+ SCCOL nCol;
-+ inline Details( Convention eConvP, SCROW nRowP, SCCOL nColP )
-+ : eConv( eConvP ), nRow( nRowP ), nCol( nColP )
-+ {}
-+ inline Details( Convention eConvP, ScAddress const & rAddr )
-+ : eConv( eConvP ), nRow( rAddr.Row() ), nCol( rAddr.Col() )
-+ {}
-+ inline Details( Convention eConvP)
-+ : eConv( eConvP ), nRow( 0 ), nCol( 0 )
-+ {}
-+ /* Use the convention associated with rAddr::Tab() */
-+ Details( const ScDocument* pDoc, const ScAddress & rAddr );
-+ void SetPos( const ScDocument* pDoc, const ScAddress & rAddr );
-+ };
-+ static const Details detailsOOOa1;
-
- inline ScAddress() : nRow(0), nCol(0), nTab(0) {}
- inline ScAddress( SCCOL nColP, SCROW nRowP, SCTAB nTabP )
-@@ -283,8 +311,12 @@ public:
- inline void IncTab( SCsTAB n=1 ) { nTab += n; }
- inline void GetVars( SCCOL& nColP, SCROW& nRowP, SCTAB& nTabP ) const
- { nColP = nCol; nRowP = nRow; nTabP = nTab; }
-- USHORT Parse( const String&, ScDocument* = NULL );
-- void Format( String&, USHORT = 0, ScDocument* = NULL ) const;
-+
-+ USHORT Parse( const String&, ScDocument* = NULL,
-+ const Details& rDetails = detailsOOOa1);
-+ void Format( String&, USHORT = 0, ScDocument* = NULL,
-+ const Details& rDetails = detailsOOOa1) const;
-+
- // The document for the maximum defined sheet number
- bool Move( SCsCOL dx, SCsROW dy, SCsTAB dz, ScDocument* =NULL );
- inline bool operator==( const ScAddress& r ) const;
-@@ -297,8 +329,9 @@ public:
- // moved from ScTripel
- /// "(1,2,3)"
- String GetText() const;
-- /// "A1" or "$A$1"
-- String GetColRowString( bool bAbsolute = FALSE ) const;
-+ /// "A1" or "$A$1" or R1C1 or R[1]C[1]
-+ String GetColRowString( bool bAbsolute = FALSE,
-+ const Details& rDetails = detailsOOOa1) const;
- };
-
- inline void ScAddress::PutInOrder( ScAddress& r )
-@@ -407,11 +440,16 @@ public:
- inline bool IsValid() const { return aStart.IsValid() && aEnd.IsValid(); }
- inline bool In( const ScAddress& ) const; // is Address& in Range?
- inline bool In( const ScRange& ) const; // is Range& in Range?
-- USHORT Parse( const String&, ScDocument* = NULL );
-- USHORT ParseAny( const String&, ScDocument* = NULL );
-+
-+ USHORT Parse( const String&, ScDocument* = NULL,
-+ const ScAddress::Details& rDetails = ScAddress::detailsOOOa1 );
-+ USHORT ParseAny( const String&, ScDocument* = NULL,
-+ const ScAddress::Details& rDetails = ScAddress::detailsOOOa1 );
-+ void Format( String&, USHORT = 0, ScDocument* = NULL,
-+ const ScAddress::Details& rDetails = ScAddress::detailsOOOa1 ) const;
-+
- inline void GetVars( SCCOL& nCol1, SCROW& nRow1, SCTAB& nTab1,
- SCCOL& nCol2, SCROW& nRow2, SCTAB& nTab2 ) const;
-- void Format( String&, USHORT = 0, ScDocument* = NULL ) const;
- // The document for the maximum defined sheet number
- bool Move( SCsCOL dx, SCsROW dy, SCsTAB dz, ScDocument* =NULL );
- void Justify();
-@@ -568,7 +606,8 @@ public:
- inline int operator != ( const ScRefAddress& r ) const
- { return !(operator==(r)); }
-
-- String GetRefString( ScDocument* pDoc, SCTAB nActTab) const;
-+ String GetRefString( ScDocument* pDoc, SCTAB nActTab,
-+ const ScAddress::Details& rDetails = ScAddress::detailsOOOa1) const;
- };
-
- inline ScRefAddress& ScRefAddress::operator=( const ScRefAddress& rRef )
-@@ -625,11 +664,13 @@ template< typename T > void PutInOrder(
- }
-
- bool ConvertSingleRef( ScDocument* pDoc, const String& rRefString,
-- SCTAB nDefTab, ScRefAddress& rRefAddress);
-+ SCTAB nDefTab, ScRefAddress& rRefAddress,
-+ const ScAddress::Details& rDetails = ScAddress::detailsOOOa1);
-
- bool ConvertDoubleRef(ScDocument* pDoc, const String& rRefString,
- SCTAB nDefTab, ScRefAddress& rStartRefAddress,
-- ScRefAddress& rEndRefAddress);
-+ ScRefAddress& rEndRefAddress,
-+ const ScAddress::Details& rDetails = ScAddress::detailsOOOa1);
-
- /// append alpha representation of column to buffer
- SC_DLLPUBLIC void ColToAlpha( rtl::OUStringBuffer& rBuffer, SCCOL nCol);
-Index: sc/inc/cell.hxx
-===================================================================
-RCS file: /cvs/sc/sc/inc/cell.hxx,v
-retrieving revision 1.19
-retrieving revision 1.19.40.3
-diff -u -w -p -r1.19 -r1.19.40.3
---- sc/inc/cell.hxx 8 Sep 2005 17:24:26 -0000 1.19
-+++ sc/inc/cell.hxx 1 Dec 2005 19:52:16 -0000 1.19.40.3
-@@ -247,6 +247,7 @@ class ScFormulaCell : public ScBaseCell,
- private:
- String aErgString;
- double nErgValue;
-+ ScAddress::Convention nErgConv;
- ScTokenArray* pCode; // das neue Token-Array
- ScDocument* pDocument;
- ScMatrix* pMatrix; // Pointer auf Ergebnis-Matrix
-@@ -293,8 +294,11 @@ public:
- // leere Zelle, ggf. mit fertigem TokenArray
- ScFormulaCell( ScDocument*, const ScAddress&, const ScTokenArray* = NULL, BYTE=0 );
- // mit Formel
-- ScFormulaCell( ScDocument* pDoc, const ScAddress&,
-- const String& rFormula, BYTE bMatInd = 0 );
-+ ScFormulaCell( ScDocument* pDoc, const ScAddress& aPos,
-+ const String& rFormula,
-+ // Use the conv associated with aPos::nTab by default
-+ ScAddress::Convention eConvP = ScAddress::CONV_UNSPECIFIED,
-+ BYTE bMatInd = 0 );
- // copy-ctor
- // nCopyFlags: 0 := nothing special
- // 0x0001 := readjust 3D references to point to old position even if relative
-@@ -307,9 +311,12 @@ public:
- ScBaseCell* Clone(ScDocument* pDoc, const ScAddress&,
- BOOL bNoListening = FALSE ) const;
-
-- void GetFormula( String& rFormula ) const;
-- void GetEnglishFormula( String& rFormula, BOOL bCompileXML = FALSE ) const;
-- void GetEnglishFormula( rtl::OUStringBuffer& rBuffer, BOOL bCompileXML = FALSE ) const;
-+ void GetFormula( String& rFormula,
-+ ScAddress::Convention eConv = ScAddress::CONV_OOO) const;
-+ void GetEnglishFormula( String& rFormula, BOOL bCompileXML = FALSE,
-+ ScAddress::Convention eConv = ScAddress::CONV_OOO) const;
-+ void GetEnglishFormula( rtl::OUStringBuffer& rBuffer, BOOL bCompileXML = FALSE,
-+ ScAddress::Convention eConv = ScAddress::CONV_OOO) const;
-
- void Save( SvStream& rStream, ScMultipleWriteHeader& rHdr ) const;
-
-@@ -321,7 +328,9 @@ public:
- BOOL GetDirty() const { return bDirty; }
- BOOL NeedsListening() const { return bNeedListening; }
- void SetNeedsListening( BOOL bVar ) { bNeedListening = bVar; }
-- void Compile(const String& rFormula, BOOL bNoListening = FALSE );
-+ void Compile(const String& rFormula,
-+ BOOL bNoListening = FALSE,
-+ ScAddress::Convention eConv = ScAddress::CONV_OOO);
- void CompileTokenArray( BOOL bNoListening = FALSE );
- void CompileXML( ScProgress& rProgress ); // compile temporary string tokens
- void CalcAfterLoad();
-@@ -408,7 +417,9 @@ public:
- // fuer die Importfilter!
- void AddRecalcMode( ScRecalcMode );
- void SetDouble( double n ) { nErgValue = n; bIsValue = TRUE; }
-- void SetString( const String& r ) { aErgString = r; bIsValue = FALSE; }
-+ void SetString( const String& r,
-+ ScAddress::Convention eConv = ScAddress::CONV_OOO)
-+ { aErgString = r; nErgConv = eConv; bIsValue = FALSE; }
- void SetErrCode( USHORT n );
- inline BOOL IsHyperLinkCell() const { return pCode && pCode->IsHyperLink(); }
- EditTextObject* CreateURLObject() ;
-Index: sc/inc/column.hxx
-===================================================================
-RCS file: /cvs/sc/sc/inc/column.hxx,v
-retrieving revision 1.16
-retrieving revision 1.16.40.1
-diff -u -w -p -r1.16 -r1.16.40.1
---- sc/inc/column.hxx 8 Sep 2005 17:27:42 -0000 1.16
-+++ sc/inc/column.hxx 25 Oct 2005 12:31:21 -0000 1.16.40.1
-@@ -264,7 +264,8 @@ public:
- BOOL HasEditCells(SCROW nStartRow, SCROW nEndRow, SCROW& rFirst) const;
-
- // TRUE = Zahlformat gesetzt
-- BOOL SetString( SCROW nRow, SCTAB nTab, const String& rString );
-+ BOOL SetString( SCROW nRow, SCTAB nTab, const String& rString,
-+ ScAddress::Convention conv = ScAddress::CONV_OOO );
- void SetValue( SCROW nRow, const double& rVal);
- void SetNote( SCROW nRow, const ScPostIt& rNote );
- void SetError( SCROW nRow, const USHORT nError);
-Index: sc/inc/compiler.hrc
-===================================================================
-RCS file: /cvs/sc/sc/inc/compiler.hrc,v
-retrieving revision 1.11
-retrieving revision 1.10.38.5
-diff -u -w -p -r1.11 -r1.10.38.5
---- sc/inc/compiler.hrc 21 Oct 2005 11:51:34 -0000 1.11
-+++ sc/inc/compiler.hrc 28 Nov 2005 16:45:45 -0000 1.10.38.5
-@@ -361,9 +361,11 @@
- #define SC_OPCODE_ISPMT 386
- #define SC_OPCODE_HYPERLINK 387
- #define SC_OPCODE_BAHTTEXT 388
--#define SC_OPCODE_END_2_PAR 389
-+#define SC_OPCODE_INDIRECT_XL 389 /* See also INDIRECT for OOO variant */
-+#define SC_OPCODE_ADRESS_XL 390 /* See also ADRESS for OOO variant */
-+#define SC_OPCODE_END_2_PAR 391
-
--#define SC_OPCODE_LAST_OPCODE_ID 388 /* letzter OpCode */
-+#define SC_OPCODE_LAST_OPCODE_ID 390 /* letzter OpCode */
-
- /*** Interna ***/
- #define SC_OPCODE_INTERNAL_BEGIN 9995
-Index: sc/inc/compiler.hxx
-===================================================================
-RCS file: /cvs/sc/sc/inc/compiler.hxx,v
-retrieving revision 1.25
-retrieving revision 1.24.40.7
-diff -u -w -p -r1.25 -r1.24.40.7
---- sc/inc/compiler.hxx 7 Nov 2005 14:40:47 -0000 1.25
-+++ sc/inc/compiler.hxx 1 Dec 2005 19:52:16 -0000 1.24.40.7
-@@ -223,20 +223,42 @@ struct ScStringHashCode
- };
- typedef ::std::hash_map< String, OpCode, ScStringHashCode, ::std::equal_to< String > > ScOpCodeHashMap;
-
-+using namespace ::com::sun::star::i18n;
- class ScCompiler
- {
- public:
-+ struct Convention
-+ {
-+ const ScAddress::Convention eConv;
-+ const ULONG* pCharTable;
-+
-+
-+ Convention( ScAddress::Convention eConvP );
-+ ~Convention();
-+
-+ virtual void MakeRefStr( rtl::OUStringBuffer& rBuffer,
-+ const ScCompiler& rCompiler,
-+ const ComplRefData& rRef,
-+ BOOL bSingleRef ) const = 0;
-+ virtual ::com::sun::star::i18n::ParseResult
-+ parseAnyToken( const String& rFormula,
-+ xub_StrLen nSrcPos,
-+ const CharClass* pCharClass) const = 0;
-+ };
-+
- static String* pSymbolTableNative; // array of native symbols, offset==OpCode
- static String* pSymbolTableEnglish; // array of English symbols, offset==OpCode
- static USHORT nAnzStrings; // count of symbols
- static ScOpCodeHashMap* pSymbolHashMapNative; // hash map of native symbols
- static ScOpCodeHashMap* pSymbolHashMapEnglish; // hash map of English symbols
- static CharClass* pCharClassEnglish; // character classification for en_US locale
--private:
-- static ULONG* pCharTable; // array of ASCII character flags
-+ static const Convention *pConvOOO_A1; // convenience to pConventions[ CONV_OOO ]
-+ static const Convention *pConventions[ ScAddress::CONV_LAST ];
-+
- ScDocument* pDoc;
- ScAddress aPos;
-- String cFormula; // String -> TokenArray
-+
-+private:
- String aCorrectedFormula; // autocorrected Formula
- String aCorrectedSymbol; // autocorrected Symbol
- sal_Unicode cSymbol[MAXSTRLEN]; // current Symbol
-@@ -263,7 +285,7 @@ private:
- // will not be resolved
- BOOL bIgnoreErrors; // on AutoCorrect and CompileForFAP
- // ignore errors and create RPN nevertheless
-- BOOL bCompileXML;
-+ const Convention *pConv;
- BOOL bImportXML;
-
- BOOL GetToken();
-@@ -282,14 +304,6 @@ private:
- void NotLine();
- OpCode Expression();
-
-- String MakeColStr( SCCOL nCol );
-- void MakeColStr( rtl::OUStringBuffer& rBuffer, SCCOL nCol );
-- String MakeRowStr( SCROW nRow );
-- void MakeRowStr( rtl::OUStringBuffer& rBuffer, SCROW nRow );
-- String MakeTabStr( SCTAB nTab, String& aDoc );
-- String MakeRefStr( ComplRefData& rRefData, BOOL bSingleRef );
-- void MakeRefStr( rtl::OUStringBuffer& rBuffer, ComplRefData& rRefData, BOOL bSingleRef );
--
- void SetError(USHORT nError);
- xub_StrLen NextSymbol();
- BOOL IsValue( const String& );
-@@ -329,13 +343,18 @@ public:
- void SetAutoCorrection( BOOL bVal )
- { bAutoCorrect = bVal; bIgnoreErrors = bVal; }
- void SetCompileEnglish( BOOL bVal ); // use English SymbolTable
-- void SetCompileXML( BOOL bVal )
-- { bCompileXML = bVal; }
-+ void SetRefConvention( const Convention *pConvP );
-+ void SetRefConvention( const ScAddress::Convention eConv );
-+
-+ void SetCompileXML( BOOL bVal ); // Deprecate and move to an address conv
- void SetImportXML( BOOL bVal )
- { bImportXML = bVal; }
- BOOL IsCorrected() { return bCorrected; }
- const String& GetCorrectedFormula() { return aCorrectedFormula; }
-- ScTokenArray* CompileString( const String& rFormula );
-+
-+ // Use convention from this->aPos by default
-+ ScTokenArray* CompileString( const String& rFormula,
-+ ScAddress::Convention eConv = ScAddress::CONV_UNSPECIFIED );
- BOOL CompileTokenArray();
- short GetNumFormatType() { return nNumFmt; }
-
-@@ -374,18 +393,11 @@ public:
-
- BOOL HasModifiedRange();
-
-- /// Is the CharTable initialized? If not call Init() yourself!
-- static inline BOOL HasCharTable() { return pCharTable != NULL; }
--
-- /// Access the CharTable flags
-- static inline ULONG GetCharTableFlags( sal_Unicode c )
-- { return c < 128 ? pCharTable[ UINT8(c) ] : 0; }
--
- /// If the character is allowed as first character in sheet names or references
- static inline BOOL IsCharWordChar( sal_Unicode c )
- {
- return c < 128 ?
-- ((pCharTable[ UINT8(c) ] & SC_COMPILER_C_CHAR_WORD) == SC_COMPILER_C_CHAR_WORD) :
-+ ((pConvOOO_A1->pCharTable[ UINT8(c) ] & SC_COMPILER_C_CHAR_WORD) == SC_COMPILER_C_CHAR_WORD) :
- ScGlobal::pCharClass->isLetterNumeric( c );
- }
-
-@@ -393,11 +405,15 @@ public:
- static inline BOOL IsWordChar( sal_Unicode c )
- {
- return c < 128 ?
-- ((pCharTable[ UINT8(c) ] & SC_COMPILER_C_WORD) == SC_COMPILER_C_WORD) :
-+ ((pConvOOO_A1->pCharTable[ UINT8(c) ] & SC_COMPILER_C_WORD) == SC_COMPILER_C_WORD) :
- ScGlobal::pCharClass->isLetterNumeric( c );
- }
-
- private:
-+ /// Access the CharTable flags
-+ inline ULONG GetCharTableFlags( sal_Unicode c )
-+ { return c < 128 ? pConv->pCharTable[ UINT8(c) ] : 0; }
-+
- static inline void ForceArrayOperator( ScTokenRef& rCurr, const ScTokenRef& rPrev )
- {
- if ( rPrev.Is() && rPrev->HasForceArray() &&
-Index: sc/inc/document.hxx
-===================================================================
-RCS file: /cvs/sc/sc/inc/document.hxx,v
-retrieving revision 1.88
-retrieving revision 1.88.22.5
-diff -u -w -p -r1.88 -r1.88.22.5
---- sc/inc/document.hxx 28 Sep 2005 11:26:15 -0000 1.88
-+++ sc/inc/document.hxx 1 Dec 2005 19:52:17 -0000 1.88.22.5
-@@ -395,6 +395,7 @@ private:
-
- BOOL bInUnoBroadcast;
- BOOL bInUnoListenerCall;
-+ ScAddress::Convention eAddrConv;
-
- mutable BOOL bStyleSheetUsageInvalid;
-
-@@ -574,6 +575,8 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollec
- void GetScenarioFlags( SCTAB nTab, USHORT& rFlags ) const;
- BOOL IsActiveScenario( SCTAB nTab ) const;
- void SetActiveScenario( SCTAB nTab, BOOL bActive ); // nur fuer Undo etc.
-+ ScAddress::Convention GetAddressConvention() const;
-+ void SetAddressConvention( ScAddress::Convention eConv );
- BYTE GetLinkMode( SCTAB nTab ) const;
- BOOL IsLinked( SCTAB nTab ) const;
- const String& GetLinkDoc( SCTAB nTab ) const;
-Index: sc/inc/globstr.hrc
-===================================================================
-RCS file: /cvs/sc/sc/inc/globstr.hrc,v
-retrieving revision 1.13
-retrieving revision 1.13.40.3
-diff -u -w -p -r1.13 -r1.13.40.3
---- sc/inc/globstr.hrc 8 Sep 2005 17:42:01 -0000 1.13
-+++ sc/inc/globstr.hrc 25 Nov 2005 04:44:29 -0000 1.13.40.3
-@@ -550,7 +550,9 @@
-
- #define STR_MANUAL 416
-
--#define STR_COUNT 417
-+#define STR_UNDO_TAB_R1C1 417
-+
-+#define STR_COUNT 418
-
- #endif
-
-Index: sc/inc/opcode.hxx
-===================================================================
-RCS file: /cvs/sc/sc/inc/opcode.hxx,v
-retrieving revision 1.13
-retrieving revision 1.12.38.4
-diff -u -w -p -r1.13 -r1.12.38.4
---- sc/inc/opcode.hxx 21 Oct 2005 11:51:53 -0000 1.13
-+++ sc/inc/opcode.hxx 28 Nov 2005 16:01:33 -0000 1.12.38.4
-@@ -266,7 +266,9 @@ enum OpCodeEnum
- ocDBVarP = SC_OPCODE_DB_VAR_P,
- // Verwaltungsfunktionen
- ocIndirect = SC_OPCODE_INDIRECT,
-+ ocIndirectXL = SC_OPCODE_INDIRECT_XL,
- ocAdress = SC_OPCODE_ADRESS,
-+ ocAdressXL = SC_OPCODE_ADRESS_XL,
- ocMatch = SC_OPCODE_MATCH,
- ocCountEmptyCells = SC_OPCODE_COUNT_EMPTY_CELLS,
- ocCountIf = SC_OPCODE_COUNT_IF,
-Index: sc/inc/rangelst.hxx
-===================================================================
-RCS file: /cvs/sc/sc/inc/rangelst.hxx,v
-retrieving revision 1.5
-retrieving revision 1.5.22.3
-diff -u -w -p -r1.5 -r1.5.22.3
---- sc/inc/rangelst.hxx 28 Sep 2005 11:27:12 -0000 1.5
-+++ sc/inc/rangelst.hxx 1 Dec 2005 19:52:17 -0000 1.5.22.3
-@@ -66,8 +66,10 @@ public:
- Insert( pR, LIST_APPEND );
- }
- USHORT Parse( const String&, ScDocument* = NULL,
-- USHORT nMask = SCA_VALID );
-- void Format( String&, USHORT nFlags = 0, ScDocument* = NULL ) const;
-+ USHORT nMask = SCA_VALID,
-+ ScAddress::Convention eConv = ScAddress::CONV_OOO );
-+ void Format( String&, USHORT nFlags = 0, ScDocument* = NULL,
-+ ScAddress::Convention eConv = ScAddress::CONV_OOO ) const;
- void Join( const ScRange&, BOOL bIsInList = FALSE );
- BOOL UpdateReference( UpdateRefMode, ScDocument*,
- const ScRange& rWhere,
-Index: sc/inc/rangeutl.hxx
-===================================================================
-RCS file: /cvs/sc/sc/inc/rangeutl.hxx,v
-retrieving revision 1.6
-retrieving revision 1.6.38.2
-diff -u -w -p -r1.6 -r1.6.38.2
---- sc/inc/rangeutl.hxx 8 Sep 2005 17:50:35 -0000 1.6
-+++ sc/inc/rangeutl.hxx 25 Nov 2005 04:44:30 -0000 1.6.38.2
-@@ -71,7 +71,8 @@ public:
- BOOL MakeArea ( const String& rAreaStr,
- ScArea& rArea,
- ScDocument* pDoc,
-- SCTAB nTab ) const;
-+ SCTAB nTab,
-+ ScAddress::Details const & rDetails = ScAddress::detailsOOOa1 ) const;
-
- void CutPosString ( const String& theAreaStr,
- String& thePosStr ) const;
-@@ -80,14 +81,16 @@ public:
- ScDocument* pDoc,
- ScArea*** pppAreas = 0,
- USHORT* pAreaCount = 0,
-- BOOL bAcceptCellRef = FALSE ) const;
-+ BOOL bAcceptCellRef = FALSE,
-+ ScAddress::Details const & rDetails = ScAddress::detailsOOOa1 ) const;
-
- BOOL IsAbsArea ( const String& rAreaStr,
- ScDocument* pDoc,
- SCTAB nTab,
- String* pCompleteStr = 0,
- ScRefAddress* pStartPos = 0,
-- ScRefAddress* pEndPos = 0 ) const;
-+ ScRefAddress* pEndPos = 0,
-+ ScAddress::Details const & rDetails = ScAddress::detailsOOOa1 ) const;
-
- BOOL IsRefArea ( const String& rAreaStr,
- ScDocument* pDoc,
-@@ -100,14 +103,15 @@ public:
- ScDocument* pDoc,
- SCTAB nTab,
- String* pCompleteStr = 0,
-- ScRefAddress* pPosTripel = 0 ) const;
-+ ScRefAddress* pPosTripel = 0,
-+ ScAddress::Details const & rDetails = ScAddress::detailsOOOa1 ) const;
-
- BOOL MakeRangeFromName ( const String& rName,
- ScDocument* pDoc,
- SCTAB nCurTab,
- ScRange& rRange,
-- RutlNameScope eScope=RUTL_NAMES
-- ) const;
-+ RutlNameScope eScope=RUTL_NAMES,
-+ ScAddress::Details const & rDetails = ScAddress::detailsOOOa1 ) const;
- };
-
- //------------------------------------------------------------------------
-@@ -128,7 +132,8 @@ public:
- BOOL operator== ( const ScArea& r ) const;
- BOOL operator!= ( const ScArea& r ) const { return !( operator==(r) ); }
- void GetString ( String& rStr,
-- BOOL bAbsolute = TRUE, ScDocument* pDoc = NULL ) const;
-+ BOOL bAbsolute = TRUE, ScDocument* pDoc = NULL,
-+ ScAddress::Details const & rDetails = ScAddress::detailsOOOa1 ) const;
-
- public:
- SCTAB nTab;
-Index: sc/inc/reffind.hxx
-===================================================================
-RCS file: /cvs/sc/sc/inc/reffind.hxx,v
-retrieving revision 1.2
-retrieving revision 1.2.40.2
-diff -u -w -p -r1.2 -r1.2.40.2
---- sc/inc/reffind.hxx 8 Sep 2005 17:51:35 -0000 1.2
-+++ sc/inc/reffind.hxx 1 Dec 2005 19:52:18 -0000 1.2.40.2
-@@ -39,6 +39,9 @@
- #ifndef _STRING_HXX //autogen
- #include <tools/string.hxx>
- #endif
-+#ifndef SC_ADDRESS_HXX
-+#include "address.hxx"
-+#endif
-
- class ScDocument;
-
-@@ -48,6 +51,7 @@ class ScRefFinder
- {
- private:
- String aFormula;
-+ ScAddress::Convention eConv;
- ScDocument* pDoc;
- xub_StrLen nFound;
- xub_StrLen nSelStart;
-@@ -56,7 +60,9 @@ private:
- public:
- static const sal_Unicode __FAR_DATA pDelimiters[];
-
-- ScRefFinder( const String& rFormula, ScDocument* pDocument = NULL );
-+ ScRefFinder( const String& rFormula,
-+ ScDocument* pDocument = NULL,
-+ ScAddress::Convention eConvP = ScAddress::CONV_OOO );
- ~ScRefFinder();
-
- const String& GetText() const { return aFormula; }
-Index: sc/inc/sc.hrc
-===================================================================
-RCS file: /cvs/sc/sc/inc/sc.hrc,v
-retrieving revision 1.49
-retrieving revision 1.49.40.3
-diff -u -w -p -r1.49 -r1.49.40.3
---- sc/inc/sc.hrc 8 Sep 2005 17:52:24 -0000 1.49
-+++ sc/inc/sc.hrc 25 Nov 2005 04:44:30 -0000 1.49.40.3
-@@ -800,6 +800,7 @@
- #define FID_TAB_APPEND (TAB_POPUP_START+5)
- #define FID_TAB_INDEX (TAB_POPUP_START+6)
- #define FID_TAB_RTL (TAB_POPUP_START+7)
-+#define FID_TAB_USE_R1C1 (TAB_POPUP_START+8)
-
- #define TAB_POPUP_END (DATA_MENU_END + 20)
-
-Index: sc/inc/scfuncs.hrc
-===================================================================
-RCS file: /cvs/sc/sc/inc/scfuncs.hrc,v
-retrieving revision 1.9
-retrieving revision 1.8.38.4
-diff -u -w -p -r1.9 -r1.8.38.4
---- sc/inc/scfuncs.hrc 21 Oct 2005 11:52:25 -0000 1.9
-+++ sc/inc/scfuncs.hrc 28 Nov 2005 16:00:48 -0000 1.8.38.4
-@@ -297,6 +297,8 @@
- #define HID_FUNC_TABELLE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+18)
- #define HID_FUNC_TABELLEN (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+19)
- #define HID_FUNC_HYPERLINK (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+20)
-+#define HID_FUNC_INDIREKT_XL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+21)
-+#define HID_FUNC_ADRESSE_XL (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TABLE*ID_FUNCTION_OFFSET)+22)
-
- #define HID_FUNC_CODE (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+1)
- #define HID_FUNC_DM (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+2)
-Index: sc/inc/table.hxx
-===================================================================
-RCS file: /cvs/sc/sc/inc/table.hxx,v
-retrieving revision 1.28
-retrieving revision 1.28.40.2
-diff -u -w -p -r1.28 -r1.28.40.2
---- sc/inc/table.hxx 8 Sep 2005 17:59:46 -0000 1.28
-+++ sc/inc/table.hxx 1 Dec 2005 19:52:18 -0000 1.28.40.2
-Index: sc/sdi/docsh.sdi
-===================================================================
-RCS file: /cvs/sc/sc/sdi/docsh.sdi,v
-retrieving revision 1.8
-retrieving revision 1.8.40.1
-diff -u -w -p -r1.8 -r1.8.40.1
---- sc/sdi/docsh.sdi 8 Sep 2005 18:10:12 -0000 1.8
-+++ sc/sdi/docsh.sdi 18 Nov 2005 15:50:04 -0000 1.8.40.1
-@@ -79,6 +79,7 @@ interface TableSelection : Selection
- FID_DELETE_TABLE [ ExecMethod = ExecuteTable; StateMethod = GetStateTable; ]
- FID_TAB_RENAME [ ExecMethod = ExecuteTable; StateMethod = GetStateTable; ]
- FID_TAB_RTL [ ExecMethod = ExecuteTable; StateMethod = GetStateTable; ]
-+ FID_TAB_USE_R1C1 [ ExecMethod = ExecuteTable; StateMethod = GetStateTable; ]
-
- SID_TABLE_ACTIVATE [ ExecMethod = Execute; ]
- }
-Index: sc/sdi/scalc.sdi
-===================================================================
-RCS file: /cvs/sc/sc/sdi/scalc.sdi,v
-retrieving revision 1.31
-retrieving revision 1.31.40.1
-diff -u -w -p -r1.31 -r1.31.40.1
---- sc/sdi/scalc.sdi 8 Sep 2005 18:14:17 -0000 1.31
-+++ sc/sdi/scalc.sdi 18 Nov 2005 15:50:05 -0000 1.31.40.1
-@@ -7599,4 +7599,31 @@ SfxBoolItem SheetRightToLeft FID_TAB_RTL
- GroupId = GID_FORMAT;
- ]
-
-+
-+//--------------------------------------------------------------------------
-+SfxBoolItem SheetUseR1C1 FID_TAB_USE_R1C1
-+
-+[
-+ /* flags */
-+ AutoUpdate = FALSE,
-+ Cachable = Cachable,
-+ FastCall = FALSE,
-+ HasCoreId = FALSE,
-+ HasDialog = FALSE,
-+ ReadOnlyDoc = TRUE,
-+ Toggle = FALSE,
-+ Container = FALSE,
-+ RecordAbsolute = FALSE,
-+ RecordPerSet;
-+ Synchron;
-+
-+ Readonly = FALSE,
-+
-+ /* config */
-+ AccelConfig = TRUE,
-+ MenuConfig = TRUE,
-+ StatusBarConfig = FALSE,
-+ ToolBoxConfig = TRUE,
-+ GroupId = GID_FORMAT;
-+]
-
-Index: sc/source/core/data/attrib.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/data/attrib.cxx,v
-retrieving revision 1.11
-retrieving revision 1.11.38.2
-diff -u -w -p -r1.11 -r1.11.38.2
---- sc/source/core/data/attrib.cxx 8 Sep 2005 18:15:59 -0000 1.11
-+++ sc/source/core/data/attrib.cxx 25 Nov 2005 04:44:31 -0000 1.11.38.2
-@@ -523,6 +523,7 @@ SfxItemPresentation ScRangeItem::GetPres
- case SFX_ITEM_PRESENTATION_NAMELESS:
- {
- String aText;
-+ /* Always use OOo:A1 format */
- aRange.Format( aText );
- rText += aText;
- }
-Index: sc/source/core/data/cell.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/data/cell.cxx,v
-retrieving revision 1.31
-retrieving revision 1.30.34.4
-diff -u -w -p -r1.31 -r1.30.34.4
---- sc/source/core/data/cell.cxx 21 Oct 2005 11:52:41 -0000 1.31
-+++ sc/source/core/data/cell.cxx 1 Dec 2005 19:52:18 -0000 1.30.34.4
-@@ -539,7 +539,9 @@ ScFormulaCell::ScFormulaCell() :
- }
-
- ScFormulaCell::ScFormulaCell( ScDocument* pDoc, const ScAddress& rPos,
-- const String& rFormula, BYTE cMatInd ) :
-+ const String& rFormula,
-+ ScAddress::Convention eConv,
-+ BYTE cMatInd ) :
- ScBaseCell( CELLTYPE_FORMULA ),
- nErgValue( 0.0 ),
- pCode( NULL ),
-@@ -567,7 +569,7 @@ ScFormulaCell::ScFormulaCell( ScDocument
- cMatrixFlag ( cMatInd ),
- aPos( rPos )
- {
-- Compile( rFormula, TRUE ); // bNoListening, erledigt Insert
-+ Compile( rFormula, TRUE, eConv ); // bNoListening, erledigt Insert
- }
-
- // Wird von den Importfiltern verwendet
-@@ -622,6 +624,7 @@ ScFormulaCell::ScFormulaCell( ScDocument
- SvtListener(),
- aErgString( rScFormulaCell.aErgString ),
- nErgValue( rScFormulaCell.nErgValue ),
-+ nErgConv( rScFormulaCell.nErgConv ),
- pDocument( pDoc ),
- pPrevious(0),
- pNext(0),
-@@ -779,6 +782,7 @@ ScFormulaCell::ScFormulaCell( ScDocument
- if( cFlags & 0x10 )
- {
- rStream.ReadByteString( aErgString, rStream.GetStreamCharSet() );
-+ nErgConv = ScAddress::CONV_OOO;
- bIsValue = FALSE;
- }
- pCode->Load( rStream, nVer, aPos );
-@@ -914,7 +918,7 @@ ScBaseCell* ScFormulaCell::Clone( ScDocu
- return pCell;
- }
-
--void ScFormulaCell::GetFormula( String& rFormula ) const
-+void ScFormulaCell::GetFormula( String& rFormula, ScAddress::Convention eConv ) const
- {
- if( pCode->GetError() && !pCode->GetLen() )
- {
-@@ -938,7 +942,7 @@ void ScFormulaCell::GetFormula( String&
- }
- if (pCell && pCell->GetCellType() == CELLTYPE_FORMULA)
- {
-- ((ScFormulaCell*)pCell)->GetFormula(rFormula);
-+ ((ScFormulaCell*)pCell)->GetFormula(rFormula, eConv);
- return;
- }
- else
-@@ -980,7 +984,8 @@ void ScFormulaCell::GetResultDimensions(
- }
- }
-
--void ScFormulaCell::Compile( const String& rFormula, BOOL bNoListening )
-+void ScFormulaCell::Compile( const String& rFormula, BOOL bNoListening,
-+ ScAddress::Convention eConv )
- {
- if ( pDocument->IsClipOrUndo() ) return;
- BOOL bWasInFormulaTree = pDocument->IsInFormulaTree( this );
-@@ -993,7 +998,7 @@ void ScFormulaCell::Compile( const Strin
- ScCompiler aComp(pDocument, aPos);
- if ( pDocument->IsImportingXML() )
- aComp.SetCompileEnglish( TRUE );
-- pCode = aComp.CompileString( rFormula );
-+ pCode = aComp.CompileString( rFormula, eConv );
- if ( pCodeOld )
- delete pCodeOld;
- if( !pCode->GetError() )
-@@ -1023,7 +1028,7 @@ void ScFormulaCell::CompileTokenArray( B
- {
- // Noch nicht compiliert?
- if( !pCode->GetLen() && aErgString.Len() )
-- Compile( aErgString );
-+ Compile( aErgString, nErgConv );
- else if( bCompile && !pDocument->IsClipOrUndo() && !pCode->GetError() )
- {
- // RPN-Laenge kann sich aendern
-@@ -1118,7 +1123,7 @@ void ScFormulaCell::CalcAfterLoad()
- // aber kein TokenArray
- if( !pCode->GetLen() && aErgString.Len() )
- {
-- Compile( aErgString, TRUE );
-+ Compile( aErgString, TRUE, nErgConv );
- aErgString.Erase();
- bDirty = TRUE;
- bNewCompiled = TRUE;
-Index: sc/source/core/data/cell2.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/data/cell2.cxx,v
-retrieving revision 1.24
-retrieving revision 1.24.40.1
-diff -u -w -p -r1.24 -r1.24.40.1
---- sc/source/core/data/cell2.cxx 8 Sep 2005 18:16:49 -0000 1.24
-+++ sc/source/core/data/cell2.cxx 9 Nov 2005 04:10:01 -0000 1.24.40.1
-@@ -243,7 +243,8 @@ void ScEditCell::SetTextObject( const Ed
-
- //---------------------------------------------------------------------
-
--void ScFormulaCell::GetEnglishFormula( String& rFormula, BOOL bCompileXML ) const
-+void ScFormulaCell::GetEnglishFormula( String& rFormula, BOOL bCompileXML,
-+ ScAddress::Convention conv ) const
- {
- //! mit GetFormula zusammenfassen !!!
-
-@@ -268,7 +269,7 @@ void ScFormulaCell::GetEnglishFormula( S
- pCell = NULL;
- if (pCell && pCell->GetCellType() == CELLTYPE_FORMULA)
- {
-- ((ScFormulaCell*)pCell)->GetEnglishFormula(rFormula, bCompileXML);
-+ ((ScFormulaCell*)pCell)->GetEnglishFormula(rFormula, bCompileXML, conv);
- return;
- }
- else
-@@ -300,7 +301,8 @@ void ScFormulaCell::GetEnglishFormula( S
- }
- }
-
--void ScFormulaCell::GetEnglishFormula( rtl::OUStringBuffer& rBuffer, BOOL bCompileXML ) const
-+void ScFormulaCell::GetEnglishFormula( rtl::OUStringBuffer& rBuffer, BOOL bCompileXML,
-+ ScAddress::Convention conv ) const
- {
- //! mit GetFormula zusammenfassen !!!
-
-@@ -325,7 +327,7 @@ void ScFormulaCell::GetEnglishFormula( r
- pCell = NULL;
- if (pCell && pCell->GetCellType() == CELLTYPE_FORMULA)
- {
-- ((ScFormulaCell*)pCell)->GetEnglishFormula(rBuffer, bCompileXML);
-+ ((ScFormulaCell*)pCell)->GetEnglishFormula(rBuffer, bCompileXML, conv);
- return;
- }
- else
-@@ -1380,7 +1382,7 @@ void ScFormulaCell::CompileDBFormula( BO
- if ( bRecompile )
- {
- String aFormula;
-- GetFormula( aFormula );
-+ GetFormula( aFormula, ScAddress::CONV_OOO);
- if ( GetMatrixFlag() != MM_NONE && aFormula.Len() )
- {
- if ( aFormula.GetChar( aFormula.Len()-1 ) == '}' )
-@@ -1392,6 +1394,7 @@ void ScFormulaCell::CompileDBFormula( BO
- pDocument->RemoveFromFormulaTree( this );
- pCode->Clear();
- aErgString = aFormula;
-+ nErgConv = ScAddress::CONV_OOO;
- }
- }
- else if ( !pCode->GetLen() && aErgString.Len() )
-@@ -1427,7 +1430,7 @@ void ScFormulaCell::CompileNameFormula(
- if ( bRecompile )
- {
- String aFormula;
-- GetFormula( aFormula );
-+ GetFormula( aFormula, ScAddress::CONV_OOO);
- if ( GetMatrixFlag() != MM_NONE && aFormula.Len() )
- {
- if ( aFormula.GetChar( aFormula.Len()-1 ) == '}' )
-@@ -1439,6 +1442,7 @@ void ScFormulaCell::CompileNameFormula(
- pDocument->RemoveFromFormulaTree( this );
- pCode->Clear();
- aErgString = aFormula;
-+ nErgConv = ScAddress::CONV_OOO;
- }
- }
- else if ( !pCode->GetLen() && aErgString.Len() )
-Index: sc/source/core/data/column3.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/data/column3.cxx,v
-retrieving revision 1.18
-retrieving revision 1.18.22.1
-diff -u -w -p -r1.18 -r1.18.22.1
---- sc/source/core/data/column3.cxx 28 Sep 2005 11:29:59 -0000 1.18
-+++ sc/source/core/data/column3.cxx 9 Nov 2005 04:10:02 -0000 1.18.22.1
-@@ -1229,7 +1229,8 @@ void ScColumn::StartListeningInArea( SCR
-
-
- // TRUE = Zahlformat gesetzt
--BOOL ScColumn::SetString( SCROW nRow, SCTAB nTab, const String& rString )
-+BOOL ScColumn::SetString( SCROW nRow, SCTAB nTab, const String& rString,
-+ ScAddress::Convention conv )
- {
- BOOL bNumFmtSet = FALSE;
- if (VALIDROW(nRow))
-@@ -1266,7 +1267,7 @@ BOOL ScColumn::SetString( SCROW nRow, SC
- pNewCell = new ScStringCell( rString );
- else // =Formel
- pNewCell = new ScFormulaCell( pDocument,
-- ScAddress( nCol, nRow, nTab ), rString, 0 );
-+ ScAddress( nCol, nRow, nTab ), rString, conv, 0 );
- }
- else if ( cFirstChar == '\'') // 'Text
- pNewCell = new ScStringCell( rString.Copy(1) );
-Index: sc/source/core/data/conditio.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/data/conditio.cxx,v
-retrieving revision 1.17
-retrieving revision 1.17.40.2
-diff -u -w -p -r1.17 -r1.17.40.2
---- sc/source/core/data/conditio.cxx 8 Sep 2005 18:18:13 -0000 1.17
-+++ sc/source/core/data/conditio.cxx 25 Nov 2005 04:44:32 -0000 1.17.40.2
-@@ -537,6 +537,8 @@ void ScConditionEntry::CompileXML()
- if ( aSrcString.Len() )
- {
- ScAddress aNew;
-+ /* XML is always in OOo:A1 format, although R1C1 would be more amenable
-+ * to compression */
- if ( aNew.Parse( aSrcString, pDoc ) & SCA_VALID )
- aSrcPos = aNew;
- // if the position is invalid, there isn't much we can do at this time
-Index: sc/source/core/data/documen2.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/data/documen2.cxx,v
-retrieving revision 1.52
-retrieving revision 1.52.22.1
-diff -u -w -p -r1.52 -r1.52.22.1
---- sc/source/core/data/documen2.cxx 28 Sep 2005 11:30:23 -0000 1.52
-+++ sc/source/core/data/documen2.cxx 1 Dec 2005 19:52:19 -0000 1.52.22.1
-@@ -367,6 +367,7 @@ ScDocument::ScDocument( ScDocumentMode e
- nInDdeLinkUpdate( 0 ),
- bInUnoBroadcast( FALSE ),
- bInUnoListenerCall( FALSE ),
-+ eAddrConv( ScAddress::CONV_OOO ),
- bStyleSheetUsageInvalid( TRUE )
- {
- eSrcSet = gsl_getSystemTextEncoding();
-Index: sc/source/core/data/documen3.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/data/documen3.cxx,v
-retrieving revision 1.29
-retrieving revision 1.29.22.3
-diff -u -w -p -r1.29 -r1.29.22.3
---- sc/source/core/data/documen3.cxx 28 Sep 2005 11:30:48 -0000 1.29
-+++ sc/source/core/data/documen3.cxx 1 Dec 2005 19:52:19 -0000 1.29.22.3
-@@ -383,6 +383,16 @@ BOOL ScDocument::IsLinked( SCTAB nTab )
- if (ValidTab(nTab) && pTab[nTab])
- return pTab[nTab]->IsLinked();
- return FALSE;
-+}
-+
-+ScAddress::Convention ScDocument::GetAddressConvention() const
-+{
-+ return eAddrConv;
-+}
-+
-+void ScDocument::SetAddressConvention( ScAddress::Convention eConv )
-+{
-+ eAddrConv = eConv;
- }
-
- BOOL ScDocument::GetLinkMode( SCTAB nTab ) const
-Index: sc/source/core/data/documen4.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/data/documen4.cxx,v
-retrieving revision 1.14
-retrieving revision 1.14.40.2
-diff -u -w -p -r1.14 -r1.14.40.2
---- sc/source/core/data/documen4.cxx 8 Sep 2005 18:20:09 -0000 1.14
-+++ sc/source/core/data/documen4.cxx 25 Nov 2005 04:44:33 -0000 1.14.40.2
-@@ -153,7 +153,7 @@ void ScDocument::InsertMatrixFormula(SCC
- if (pArr)
- pCell = new ScFormulaCell( this, aPos, pArr, MM_FORMULA );
- else
-- pCell = new ScFormulaCell( this, aPos, rFormula, MM_FORMULA );
-+ pCell = new ScFormulaCell( this, aPos, rFormula, ScAddress::CONV_UNSPECIFIED, MM_FORMULA );
- pCell->SetMatColsRows( nCol2 - nCol1 + 1, nRow2 - nRow1 + 1 );
- for (i = 0; i <= MAXTAB; i++)
- {
-@@ -284,7 +284,7 @@ void ScDocument::InsertTableOp(const ScT
- }
- aForString += ')';
-
-- ScFormulaCell aRefCell( this, ScAddress( nCol1, nRow1, nTab1 ), aForString, 0l );
-+ ScFormulaCell aRefCell( this, ScAddress( nCol1, nRow1, nTab1 ), aForString, ScAddress::CONV_OOO, 0l );
- for( j = nCol1; j <= nCol2; j++ )
- for( k = nRow1; k <= nRow2; k++ )
- for (i = 0; i <= MAXTAB; i++)
-Index: sc/source/core/data/table1.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/data/table1.cxx,v
-retrieving revision 1.14
-retrieving revision 1.14.22.3
-diff -u -w -p -r1.14 -r1.14.22.3
---- sc/source/core/data/table1.cxx 28 Sep 2005 11:32:48 -0000 1.14
-+++ sc/source/core/data/table1.cxx 1 Dec 2005 19:52:20 -0000 1.14.22.3
-Index: sc/source/core/data/table6.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/data/table6.cxx,v
-retrieving revision 1.9
-retrieving revision 1.9.40.1
-diff -u -w -p -r1.9 -r1.9.40.1
---- sc/source/core/data/table6.cxx 8 Sep 2005 18:31:35 -0000 1.9
-+++ sc/source/core/data/table6.cxx 9 Nov 2005 04:10:04 -0000 1.9.40.1
-@@ -119,7 +119,7 @@ BOOL ScTable::SearchCell(const SvxSearch
- case SVX_SEARCHIN_FORMULA:
- {
- if ( eCellType == CELLTYPE_FORMULA )
-- ((ScFormulaCell*)pCell)->GetFormula( aString );
-+ ((ScFormulaCell*)pCell)->GetFormula( aString, ScAddress::CONV_OOO );
- else if ( eCellType == CELLTYPE_EDIT )
- bMultiLine = lcl_GetTextWithBreaks(
- *(const ScEditCell*)pCell, pDocument, aString );
-@@ -282,7 +282,7 @@ BOOL ScTable::SearchCell(const SvxSearch
- }
- ScAddress aAdr( nCol, nRow, nTab );
- ScFormulaCell* pFCell = new ScFormulaCell( pDocument, aAdr,
-- aString, cMatrixFlag );
-+ aString, ScAddress::CONV_OOO, cMatrixFlag );
- SCCOL nMatCols;
- SCROW nMatRows;
- ((ScFormulaCell*)pCell)->GetMatColsRows( nMatCols, nMatRows );
-Index: sc/source/core/data/validat.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/data/validat.cxx,v
-retrieving revision 1.15
-retrieving revision 1.15.22.2
-diff -u -w -p -r1.15 -r1.15.22.2
---- sc/source/core/data/validat.cxx 28 Sep 2005 11:34:50 -0000 1.15
-+++ sc/source/core/data/validat.cxx 25 Nov 2005 04:44:34 -0000 1.15.22.2
-Index: sc/source/core/inc/interpre.hxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/inc/interpre.hxx,v
-retrieving revision 1.24
-retrieving revision 1.23.20.2
-diff -u -w -p -r1.24 -r1.23.20.2
---- sc/source/core/inc/interpre.hxx 21 Oct 2005 11:53:21 -0000 1.24
-+++ sc/source/core/inc/interpre.hxx 28 Nov 2005 16:13:29 -0000 1.23.20.2
-@@ -424,7 +424,9 @@ void ScDBStdDevP();
- void ScDBVar();
- void ScDBVarP();
- void ScIndirect();
-+void ScIndirectXL();
- void ScAdress();
-+void ScAdressXL();
- void ScOffset();
- void ScIndex();
- void ScMultiArea();
-Index: sc/source/core/src/compiler.src
-===================================================================
-RCS file: /cvs/sc/sc/source/core/src/compiler.src,v
-retrieving revision 1.48
-retrieving revision 1.47.22.2
-diff -u -w -p -r1.48 -r1.47.22.2
---- sc/source/core/src/compiler.src 21 Oct 2005 11:53:37 -0000 1.48
-+++ sc/source/core/src/compiler.src 28 Nov 2005 16:14:14 -0000 1.47.22.2
-@@ -1092,12 +1092,24 @@ Resource RID_SC_FUNCTION_NAMES
- Text [ en-US ] = "INDIRECT" ;
- Text [ x-comment ] = " ";
- };
-+ String SC_OPCODE_INDIRECT_XL
-+ {
-+ Text [ de ] = "INDIREKT_XL" ;
-+ Text [ en-US ] = "INDIRECT_XL" ;
-+ Text [ x-comment ] = " ";
-+ };
- String SC_OPCODE_ADRESS
- {
- Text [ de ] = "ADRESSE" ;
- Text [ en-US ] = "ADDRESS" ;
- Text [ x-comment ] = " ";
- };
-+ String SC_OPCODE_ADRESS_XL
-+ {
-+ Text [ de ] = "ADRESSE_XL" ;
-+ Text [ en-US ] = "ADDRESS_XL" ;
-+ Text [ x-comment ] = " ";
-+ };
- String SC_OPCODE_MATCH
- {
- Text [ de ] = "VERGLEICH" ;
-@@ -1869,7 +1881,9 @@ Resource RID_SC_FUNCTION_NAMES_ENGLISH
- String SC_OPCODE_DB_VAR { Text = "DVAR" ; };
- String SC_OPCODE_DB_VAR_P { Text = "DVARP" ; };
- String SC_OPCODE_INDIRECT { Text = "INDIRECT" ; };
-+ String SC_OPCODE_INDIRECT_XL { Text = "INDIRECT_XL" ; };
- String SC_OPCODE_ADRESS { Text = "ADDRESS" ; };
-+ String SC_OPCODE_ADRESS_XL { Text = "ADDRESS_XL" ; };
- String SC_OPCODE_MATCH { Text = "MATCH" ; };
- String SC_OPCODE_COUNT_EMPTY_CELLS { Text = "COUNTBLANK" ; };
- String SC_OPCODE_COUNT_IF { Text = "COUNTIF" ; };
-Index: sc/source/core/tool/address.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/tool/address.cxx,v
-retrieving revision 1.4
-retrieving revision 1.4.40.2
-diff -u -w -p -r1.4 -r1.4.40.2
---- sc/source/core/tool/address.cxx 8 Sep 2005 18:38:18 -0000 1.4
-+++ sc/source/core/tool/address.cxx 1 Dec 2005 19:52:20 -0000 1.4.40.2
-@@ -42,9 +42,234 @@
-
- #include "globstr.hrc"
-
-+////////////////////////////////////////////////////////////////////////////
-+const ScAddress::Details ScAddress::detailsOOOa1( CONV_OOO, 0, 0 );
-
--USHORT lcl_ConvertSingleRef( BOOL& bExternal, const sal_Unicode* p,
-- ScDocument* pDoc, ScAddress& rAddr )
-+ScAddress::Details::Details ( const ScDocument* pDoc,
-+ const ScAddress & rAddr ) :
-+ eConv( pDoc->GetAddressConvention() ),
-+ nRow( rAddr.Row() ),
-+ nCol( rAddr.Col() )
-+{
-+}
-+
-+void ScAddress::Details::SetPos ( const ScDocument* pDoc,
-+ const ScAddress & rAddr )
-+{
-+ nRow = rAddr.Row();
-+ nCol = rAddr.Col();
-+ eConv = pDoc->GetAddressConvention();
-+}
-+
-+////////////////////////////////////////////////////////////////////////////
-+
-+static long int sal_Unicode_strtol ( const sal_Unicode* p,
-+ const sal_Unicode** pEnd )
-+{
-+ long int accum = 0, prev = 0;
-+ bool is_neg = false;
-+
-+ if( *p == '-' )
-+ {
-+ is_neg = true;
-+ p++;
-+ }
-+ else if( *p == '+' )
-+ p++;
-+
-+ while (CharClass::isAsciiDigit( *p ))
-+ {
-+ accum = accum * 10 + *p - '0';
-+ if (accum < prev)
-+ {
-+ *pEnd = NULL;
-+ return 0;
-+ }
-+ prev = accum;
-+ p++;
-+ }
-+
-+ *pEnd = p;
-+ return is_neg ? -accum : accum;
-+}
-+
-+static inline const sal_Unicode*
-+r1c1_get_col( const sal_Unicode* p,
-+ const ScAddress::Details& rDetails,
-+ ScAddress* pAddr, USHORT* nFlags )
-+{
-+ const sal_Unicode *pEnd;
-+ long int n;
-+ bool isRelative;
-+
-+ if( p[0] == '\0' )
-+ return NULL;
-+
-+ p++;
-+ if( (isRelative = (*p == '[')) )
-+ p++;
-+ n = sal_Unicode_strtol( p, &pEnd );
-+ if( NULL == pEnd )
-+ return NULL;
-+
-+ if( p == pEnd ) // C is a relative ref with offset 0
-+ {
-+ if( isRelative )
-+ return NULL;
-+ n = rDetails.nCol;
-+ }
-+ else if( isRelative )
-+ {
-+ if( *pEnd != ']' )
-+ return NULL;
-+ n += rDetails.nCol;
-+ pEnd++;
-+ }
-+ else
-+ {
-+ *nFlags |= SCA_COL_ABSOLUTE;
-+ n--;
-+ }
-+
-+ if( n < 0 || n >= MAXCOLCOUNT )
-+ return NULL;
-+ pAddr->SetCol( static_cast<SCROW>( n ) );
-+ *nFlags |= SCA_VALID_COL;
-+
-+ return pEnd;
-+}
-+static inline const sal_Unicode*
-+r1c1_get_row( const sal_Unicode* p,
-+ const ScAddress::Details& rDetails,
-+ ScAddress* pAddr, USHORT* nFlags )
-+{
-+ const sal_Unicode *pEnd;
-+ long int n;
-+ bool isRelative;
-+
-+ if( p[0] == '\0' )
-+ return NULL;
-+
-+ p++;
-+ if( (isRelative = (*p == '[')) )
-+ p++;
-+ n = sal_Unicode_strtol( p, &pEnd );
-+ if( NULL == pEnd )
-+ return NULL;
-+
-+ if( p == pEnd ) // R is a relative ref with offset 0
-+ {
-+ if( isRelative )
-+ return NULL;
-+ n = rDetails.nRow;
-+ }
-+ else if( isRelative )
-+ {
-+ if( *pEnd != ']' )
-+ return NULL;
-+ n += rDetails.nRow;
-+ pEnd++;
-+ }
-+ else
-+ {
-+ *nFlags |= SCA_ROW_ABSOLUTE;
-+ n--;
-+ }
-+
-+ if( n < 0 || n >= MAXROWCOUNT )
-+ return NULL;
-+ pAddr->SetRow( static_cast<SCROW>( n ) );
-+ *nFlags |= SCA_VALID_ROW;
-+
-+ return pEnd;
-+}
-+
-+#include <iostream>
-+
-+static USHORT
-+lcl_ScRange_ParseR1C1( ScRange& r,
-+ const sal_Unicode* p,
-+ const ScAddress::Details& rDetails,
-+ BOOL bOnlyAcceptSingle )
-+{
-+ const sal_Unicode* pTmp;
-+ USHORT nFlags = SCA_VALID | SCA_VALID_TAB, nFlags2 = SCA_VALID_TAB2;
-+
-+ {
-+ ByteString aStr(p, RTL_TEXTENCODING_UTF8);
-+ aStr.Append(static_cast< char >(0));
-+ std::cerr << "parse \'" << aStr.GetBuffer() << '\'' << std::endl;
-+ }
-+
-+ if( *p == 'R' || *p == 'r' )
-+ {
-+ if( NULL == (p = r1c1_get_row( p, rDetails, &r.aStart, &nFlags )) )
-+ goto failed;
-+
-+ if( *p != 'C' && *p != 'c' ) /* full row R# */
-+ {
-+ if (p[0] != ':' || (p[1] != 'R' && p[1] != 'r') ||
-+ NULL == (pTmp = r1c1_get_row( p+1, rDetails, &r.aEnd, &nFlags2 )))
-+ { /* fallback to just the initial R */
-+ nFlags |= (nFlags << 4);
-+ r.aEnd.SetRow( r.aStart.Row() );
-+ } else
-+ nFlags |= (nFlags2 << 4);
-+
-+ nFlags |=
-+ SCA_VALID_COL | SCA_VALID_COL2 |
-+ SCA_COL_ABSOLUTE | SCA_COL2_ABSOLUTE;
-+ r.aStart.SetCol( 0 );
-+ r.aEnd.SetCol( MAXCOLCOUNT - 1 );
-+
-+ return bOnlyAcceptSingle ? 0 : nFlags;
-+ }
-+ else if (NULL == (p = r1c1_get_col( p, rDetails, &r.aStart, &nFlags )))
-+ goto failed;
-+
-+ if (p[0] != ':' ||
-+ (p[1] != 'R' && p[1] != 'r') ||
-+ NULL == (pTmp = r1c1_get_row( p+1, rDetails, &r.aEnd, &nFlags2 )) ||
-+ (*pTmp != 'C' && *pTmp != 'c') ||
-+ NULL == (pTmp = r1c1_get_col( pTmp, rDetails, &r.aEnd, &nFlags2 )))
-+ {
-+ return bOnlyAcceptSingle ? nFlags : 0;
-+ }
-+
-+ nFlags |= (nFlags2 << 4);
-+ return bOnlyAcceptSingle ? 0 : nFlags;
-+ }
-+ else if( *p == 'C' || *p == 'c' ) /* full col C# */
-+ {
-+ if (NULL == (p = r1c1_get_col( p, rDetails, &r.aStart, &nFlags )))
-+ goto failed;
-+
-+ if (p[0] != ':' || (p[1] != 'C' && p[1] != 'c') ||
-+ NULL == (pTmp = r1c1_get_col( p, rDetails, &r.aEnd, &nFlags2 )))
-+ { /* fallback to just the initial C */
-+ nFlags |= (nFlags << 4);
-+ r.aEnd.SetCol( r.aStart.Col() );
-+ }
-+ else
-+ nFlags |= (nFlags2 << 4);
-+
-+ nFlags |=
-+ SCA_VALID_ROW | SCA_VALID_ROW2 |
-+ SCA_ROW_ABSOLUTE | SCA_ROW2_ABSOLUTE;
-+ r.aStart.SetRow( 0 );
-+ r.aEnd.SetRow( MAXROWCOUNT - 1 );
-+
-+ return bOnlyAcceptSingle ? 0 : nFlags;
-+ }
-+
-+failed :
-+ return 0;
-+}
-+
-+static USHORT
-+lcl_ConvertSingleRef( BOOL& bExternal, const sal_Unicode* p,
-+ ScDocument* pDoc, ScAddress& rAddr,
-+ const ScAddress::Details& rDetails )
- {
- if ( !*p )
- return 0;
-@@ -55,6 +280,20 @@ USHORT lcl_ConvertSingleRef( BOOL& bExte
- BOOL bExtDoc = FALSE;
- BOOL bNeedExtTab = FALSE;
-
-+ switch (rDetails.eConv) {
-+ default :
-+ case ScAddress::CONV_OOO:
-+ case ScAddress::CONV_XL_A1:
-+ break;
-+ case ScAddress::CONV_XL_R1C1:
-+ {
-+ ScRange r;
-+ USHORT nFlags = lcl_ScRange_ParseR1C1( r, p, rDetails, TRUE );
-+ rAddr = r.aStart;
-+ return nFlags;
-+ }
-+ }
-+
- if ( *p == '\'' && ScGlobal::UnicodeStrChr( p, SC_COMPILER_FILE_TAB_SEP ) )
- {
- BOOL bQuote = TRUE; // Dokumentenname ist immer quoted
-@@ -217,11 +456,12 @@ USHORT lcl_ConvertSingleRef( BOOL& bExte
-
-
- bool ConvertSingleRef( ScDocument* pDoc, const String& rRefString,
-- SCTAB nDefTab, ScRefAddress& rRefAddress )
-+ SCTAB nDefTab, ScRefAddress& rRefAddress,
-+ const ScAddress::Details& rDetails )
- {
- BOOL bExternal = FALSE;
- ScAddress aAddr( 0, 0, nDefTab );
-- USHORT nRes = lcl_ConvertSingleRef( bExternal, rRefString.GetBuffer(), pDoc, aAddr );
-+ USHORT nRes = lcl_ConvertSingleRef( bExternal, rRefString.GetBuffer(), pDoc, aAddr, rDetails );
- if( nRes & SCA_VALID )
- {
- rRefAddress.Set( aAddr,
-@@ -236,7 +476,8 @@ bool ConvertSingleRef( ScDocument* pDoc,
-
-
- bool ConvertDoubleRef( ScDocument* pDoc, const String& rRefString, SCTAB nDefTab,
-- ScRefAddress& rStartRefAddress, ScRefAddress& rEndRefAddress )
-+ ScRefAddress& rStartRefAddress, ScRefAddress& rEndRefAddress,
-+ const ScAddress::Details& rDetails )
- {
- BOOL bRet = FALSE;
- xub_StrLen nPos = rRefString.Search(':');
-@@ -245,20 +486,21 @@ bool ConvertDoubleRef( ScDocument* pDoc,
- String aTmp( rRefString );
- sal_Unicode* p = aTmp.GetBufferAccess();
- p[ nPos ] = 0;
-- if ( ConvertSingleRef( pDoc, p, nDefTab, rStartRefAddress ) )
-+ if ( ConvertSingleRef( pDoc, p, nDefTab, rStartRefAddress, rDetails ) )
- {
- nDefTab = rStartRefAddress.Tab();
-- bRet = ConvertSingleRef( pDoc, p + nPos + 1, nDefTab, rEndRefAddress );
-+ bRet = ConvertSingleRef( pDoc, p + nPos + 1, nDefTab, rEndRefAddress, rDetails );
- }
- }
- return bRet;
- }
-
-
--USHORT ScAddress::Parse( const String& r, ScDocument* pDoc )
-+USHORT ScAddress::Parse( const String& r, ScDocument* pDoc,
-+ const Details& rDetails)
- {
- BOOL bExternal = FALSE;
-- return lcl_ConvertSingleRef( bExternal, r.GetBuffer(), pDoc, *this );
-+ return lcl_ConvertSingleRef( bExternal, r.GetBuffer(), pDoc, *this, rDetails );
- }
-
-
-@@ -327,8 +569,21 @@ void ScRange::ExtendTo( const ScRange& r
- }
-
-
--USHORT ScRange::Parse( const String& r, ScDocument* pDoc )
-+USHORT ScRange::Parse( const String& r, ScDocument* pDoc,
-+ const ScAddress::Details& rDetails )
- {
-+ switch (rDetails.eConv) {
-+ default :
-+ case ScAddress::CONV_OOO:
-+ case ScAddress::CONV_XL_A1:
-+ break;
-+ case ScAddress::CONV_XL_R1C1:
-+ {
-+ String aTmp( r );
-+ return lcl_ScRange_ParseR1C1( *this, aTmp.GetBufferAccess(), rDetails, FALSE );
-+ }
-+ }
-+
- USHORT nRes1 = 0, nRes2 = 0;
- xub_StrLen nTmp = 0;
- xub_StrLen nPos = STRING_NOTFOUND;
-@@ -340,10 +595,10 @@ USHORT ScRange::Parse( const String& r,
- sal_Unicode* p = aTmp.GetBufferAccess();
- p[ nPos ] = 0;
- BOOL bExternal = FALSE;
-- if( nRes1 = lcl_ConvertSingleRef( bExternal, p, pDoc, aStart ) )
-+ if( nRes1 = lcl_ConvertSingleRef( bExternal, p, pDoc, aStart, rDetails ) )
- {
- aEnd = aStart; // die Tab _muss_ gleich sein, so ist`s weniger Code
-- if ( nRes2 = lcl_ConvertSingleRef( bExternal, p + nPos+ 1, pDoc, aEnd ) )
-+ if ( nRes2 = lcl_ConvertSingleRef( bExternal, p + nPos+ 1, pDoc, aEnd, rDetails ) )
- {
- if ( bExternal && aStart.Tab() != aEnd.Tab() )
- nRes2 &= ~SCA_VALID_TAB; // #REF!
-@@ -398,23 +653,59 @@ USHORT ScRange::Parse( const String& r,
- }
-
-
--USHORT ScRange::ParseAny( const String& r, ScDocument* pDoc )
-+USHORT ScRange::ParseAny( const String& r, ScDocument* pDoc,
-+ const ScAddress::Details& rDetails )
- {
-- USHORT nRet = Parse( r, pDoc );
-+ USHORT nRet = Parse( r, pDoc, rDetails );
- const USHORT nValid = SCA_VALID | SCA_VALID_COL2 | SCA_VALID_ROW2 |
- SCA_VALID_TAB2;
- if ( (nRet & nValid) != nValid )
- {
- ScAddress aAdr;
-- nRet = aAdr.Parse( r, pDoc );
-+ nRet = aAdr.Parse( r, pDoc, rDetails );
- if ( nRet & SCA_VALID )
- aStart = aEnd = aAdr;
- }
- return nRet;
- }
-
-+static void
-+r1c1_append_c ( String &r, int num, bool is_abs,
-+ const ScAddress::Details& rDetails )
-+{
-+ r += 'C';
-+ if (is_abs)
-+ r += String::CreateFromInt32( num + 1 );
-+ else
-+ {
-+ num -= rDetails.nCol;
-+ if (num != 0) {
-+ r += '[';
-+ r += String::CreateFromInt32( num );
-+ r += ']';
-+ }
-+ }
-+}
-+static void
-+r1c1_append_r ( String &r, int num, bool is_abs,
-+ const ScAddress::Details& rDetails )
-+{
-+ r += 'R';
-+ if (is_abs)
-+ r += String::CreateFromInt32( num + 1 );
-+ else
-+ {
-+ num -= rDetails.nRow;
-+ if (num != 0) {
-+ r += '[';
-+ r += String::CreateFromInt32( num );
-+ r += ']';
-+ }
-+ }
-+}
-
--void ScAddress::Format( String& r, USHORT nFlags, ScDocument* pDoc ) const
-+void ScAddress::Format( String& r, USHORT nFlags, ScDocument* pDoc,
-+ const Details& rDetails) const
- {
- r.Erase();
- if( nFlags & SCA_VALID )
-@@ -447,14 +738,23 @@ void ScAddress::Format( String& r, USHOR
- }
- }
- r += aDoc;
-+ ScCompiler::CheckTabQuotes( aTabName );
-
-+ if (rDetails.eConv != CONV_OOO) {
-+ r += aTabName;
-+ r += '!';
-+ } else {
- if( nFlags & SCA_TAB_ABSOLUTE )
- r += '$';
-- ScCompiler::CheckTabQuotes( aTabName );
- r += aTabName;
- r += '.';
- }
- }
-+ }
-+ switch (rDetails.eConv) {
-+ default :
-+ case CONV_OOO:
-+ case CONV_XL_A1:
- if( nFlags & SCA_VALID_COL )
- {
- if( nFlags & SCA_COL_ABSOLUTE )
-@@ -467,19 +767,34 @@ void ScAddress::Format( String& r, USHOR
- r += '$';
- r += String::CreateFromInt32( Row()+1 );
- }
-+ break;
-+
-+ case CONV_XL_R1C1:
-+ if( nFlags & SCA_VALID_ROW )
-+ r1c1_append_r ( r, nRow, nFlags & SCA_ROW_ABSOLUTE, rDetails );
-+ if( nFlags & SCA_VALID_COL )
-+ r1c1_append_c ( r, nCol, nFlags & SCA_COL_ABSOLUTE, rDetails );
-+ break;
-+ }
- }
-
-
--void ScRange::Format( String& r, USHORT nFlags, ScDocument* pDoc ) const
-+void ScRange::Format( String& r, USHORT nFlags, ScDocument* pDoc,
-+ const ScAddress::Details& rDetails) const
- {
- if( !( nFlags & SCA_VALID ) )
-- r = ScGlobal::GetRscString( STR_NOREF_STR );
-- else
- {
-+ r = ScGlobal::GetRscString( STR_NOREF_STR );
-+ return;
-+ }
-+
-+ switch (rDetails.eConv) {
-+ default :
-+ case ScAddress::CONV_OOO: {
- BOOL bOneTab = (aStart.Tab() == aEnd.Tab());
- if ( !bOneTab )
- nFlags |= SCA_TAB_3D;
-- aStart.Format( r, nFlags, pDoc );
-+ aStart.Format( r, nFlags, pDoc, rDetails );
- if( aStart != aEnd )
- {
- String aName;
-@@ -488,13 +803,66 @@ void ScRange::Format( String& r, USHORT
- pDoc = NULL;
- else
- nFlags |= SCA_TAB_3D;
-- aEnd.Format( aName, nFlags, pDoc );
-+ aEnd.Format( aName, nFlags, pDoc, rDetails );
- r += ':';
- r += aName;
- }
- }
-+ break;
-+
-+ case ScAddress::CONV_XL_A1: {
-+ BOOL bOneTab = (aStart.Tab() == aEnd.Tab());
-+
-+ pDoc = NULL;
-+ aStart.Format( r, nFlags, pDoc, rDetails );
-+ if( aStart != aEnd )
-+ {
-+ String aName;
-+ nFlags = ( nFlags & SCA_VALID ) | ( ( nFlags >> 4 ) & 0x070F );
-+ aEnd.Format( aName, nFlags, pDoc, rDetails );
-+ r += ':';
-+ r += aName;
-+ }
- }
-+ break;
-
-+ case ScAddress::CONV_XL_R1C1:
-+#define absrel_differ(nFlags, mask) (((nFlags) & (mask)) ^ (((nFlags) >> 4) & (mask)))
-+ /* be sure to use else if so that a1:iv65535 does not vanish */
-+ if( aStart.Col() == 0 && aEnd.Col() >= MAXCOLCOUNT-1 )
-+ {
-+ r1c1_append_r( r, aStart.Row(), nFlags & SCA_ROW_ABSOLUTE, rDetails );
-+ if( aStart.Row() != aEnd.Row() ||
-+ absrel_differ( nFlags, SCA_ROW_ABSOLUTE )) {
-+ r += ':';
-+ r1c1_append_r( r, aEnd.Row(), nFlags & SCA_ROW2_ABSOLUTE, rDetails );
-+ }
-+ }
-+ else if( aStart.Row() == 0 && aEnd.Row() >= MAXROWCOUNT-1 )
-+ {
-+ r1c1_append_c( r, aStart.Col(), nFlags & SCA_COL_ABSOLUTE, rDetails );
-+ if( aStart.Col() != aEnd.Col() ||
-+ absrel_differ( nFlags, SCA_COL_ABSOLUTE )) {
-+ r += ':';
-+ r1c1_append_c( r, aEnd.Col(), nFlags & SCA_COL2_ABSOLUTE, rDetails );
-+ }
-+ }
-+ else
-+ {
-+ r1c1_append_r( r, aStart.Row(), nFlags & SCA_ROW_ABSOLUTE, rDetails );
-+ r1c1_append_c( r, aStart.Col(), nFlags & SCA_COL_ABSOLUTE, rDetails );
-+ if( aStart.Col() != aEnd.Col() ||
-+ absrel_differ( nFlags, SCA_COL_ABSOLUTE ) ||
-+ aStart.Row() != aEnd.Row() ||
-+ absrel_differ( nFlags, SCA_ROW_ABSOLUTE )) {
-+ r += ':';
-+ r1c1_append_r( r, aEnd.Row(), nFlags & SCA_ROW2_ABSOLUTE, rDetails );
-+ r1c1_append_c( r, aEnd.Col(), nFlags & SCA_COL2_ABSOLUTE, rDetails );
-+ }
-+ }
-+ }
-+#undef absrel_differ
-+}
-
- bool ScAddress::Move( SCsCOL dx, SCsROW dy, SCsTAB dz, ScDocument* pDoc )
- {
-@@ -542,7 +910,8 @@ String ScAddress::GetText() const
- }
-
-
--String ScAddress::GetColRowString( bool bAbsolute ) const
-+String ScAddress::GetColRowString( bool bAbsolute,
-+ const Details& rDetails ) const
- {
- String aString;
- if (bAbsolute)
-@@ -559,7 +928,8 @@ String ScAddress::GetColRowString( bool
- }
-
-
--String ScRefAddress::GetRefString( ScDocument* pDoc, SCTAB nActTab) const
-+String ScRefAddress::GetRefString( ScDocument* pDoc, SCTAB nActTab,
-+ const ScAddress::Details& rDetails ) const
- {
- if ( !pDoc )
- return EMPTY_STRING;
-@@ -579,7 +949,7 @@ String ScRefAddress::GetRefString( ScDoc
- if ( !bRelRow )
- nFlags |= SCA_ROW_ABSOLUTE;
-
-- aAdr.Format( aString, nFlags, pDoc );
-+ aAdr.Format( aString, nFlags, pDoc, rDetails );
-
- return aString;
- }
-Index: sc/source/core/tool/chgtrack.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/tool/chgtrack.cxx,v
-retrieving revision 1.23
-retrieving revision 1.23.38.1
-diff -u -w -p -r1.23 -r1.23.38.1
---- sc/source/core/tool/chgtrack.cxx 8 Sep 2005 18:40:27 -0000 1.23
-+++ sc/source/core/tool/chgtrack.cxx 25 Nov 2005 04:44:37 -0000 1.23.38.1
-@@ -1934,7 +1934,7 @@ void ScChangeActionContent::SetValueStri
- {
- rValue.Erase();
- pCell = new ScFormulaCell(
-- pDoc, aBigRange.aStart.MakeAddress(), rStr );
-+ pDoc, aBigRange.aStart.MakeAddress(), rStr, ScAddress::CONV_OOO );
- ((ScFormulaCell*)pCell)->SetInChangeTrack( TRUE );
- }
- else
-Index: sc/source/core/tool/compiler.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/tool/compiler.cxx,v
-retrieving revision 1.55
-retrieving revision 1.54.22.7
-diff -u -w -p -r1.55 -r1.54.22.7
---- sc/source/core/tool/compiler.cxx 7 Nov 2005 14:41:17 -0000 1.55
-+++ sc/source/core/tool/compiler.cxx 1 Dec 2005 19:52:21 -0000 1.54.22.7
-@@ -82,10 +82,10 @@
- String* ScCompiler::pSymbolTableNative = NULL;
- String* ScCompiler::pSymbolTableEnglish = NULL;
- USHORT ScCompiler::nAnzStrings = 0;
--ULONG* ScCompiler::pCharTable = 0;
- ScOpCodeHashMap* ScCompiler::pSymbolHashMapNative = NULL;
- ScOpCodeHashMap* ScCompiler::pSymbolHashMapEnglish = NULL;
- CharClass* ScCompiler::pCharClassEnglish = NULL;
-+const ScCompiler::Convention* ScCompiler::pConventions[ ] = { NULL, NULL, NULL };
-
- enum ScanState
- {
-@@ -106,7 +106,7 @@ struct ScArrayStack
-
- static sal_Char* pInternal[ 5 ] = { "GAME", "SPEW", "TTT", "STARCALCTEAM", "ANTWORT" };
-
--
-+using namespace ::com::sun::star::i18n;
- /////////////////////////////////////////////////////////////////////////
-
- short lcl_GetRetFormat( OpCode eOpCode )
-@@ -218,56 +218,14 @@ public:
-
- void ScCompiler::Init()
- {
-+ if (NULL != pSymbolTableNative)
-+ return;
-+
- pSymbolTableNative = new String[SC_OPCODE_LAST_OPCODE_ID+1];
- pSymbolHashMapNative = new ScOpCodeHashMap( SC_OPCODE_LAST_OPCODE_ID+1 );
- ScOpCodeList aOpCodeListNative( RID_SC_FUNCTION_NAMES, pSymbolTableNative,
- *pSymbolHashMapNative );
- nAnzStrings = SC_OPCODE_LAST_OPCODE_ID+1;
--
-- pCharTable = new ULONG [128];
-- USHORT i;
-- for (i = 0; i < 128; i++)
-- pCharTable[i] = SC_COMPILER_C_ILLEGAL;
-- /* */ pCharTable[32] = SC_COMPILER_C_CHAR_DONTCARE | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
-- /* ! */ pCharTable[33] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
-- /* " */ pCharTable[34] = SC_COMPILER_C_CHAR_STRING | SC_COMPILER_C_STRING_SEP;
-- /* # */ pCharTable[35] = SC_COMPILER_C_WORD_SEP;
-- /* $ */ pCharTable[36] = SC_COMPILER_C_CHAR_WORD | SC_COMPILER_C_WORD | SC_COMPILER_C_CHAR_IDENT | SC_COMPILER_C_IDENT;
-- /* % */ pCharTable[37] = SC_COMPILER_C_VALUE;
-- /* & */ pCharTable[38] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
-- /* ' */ pCharTable[39] = SC_COMPILER_C_NAME_SEP;
-- /* ( */ pCharTable[40] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
-- /* ) */ pCharTable[41] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
-- /* * */ pCharTable[42] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
-- /* + */ pCharTable[43] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_EXP | SC_COMPILER_C_VALUE_SIGN;
-- /* , */ pCharTable[44] = SC_COMPILER_C_CHAR_VALUE | SC_COMPILER_C_VALUE;
-- /* - */ pCharTable[45] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_EXP | SC_COMPILER_C_VALUE_SIGN;
-- /* . */ pCharTable[46] = SC_COMPILER_C_WORD | SC_COMPILER_C_CHAR_VALUE | SC_COMPILER_C_VALUE | SC_COMPILER_C_IDENT;
-- /* / */ pCharTable[47] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
-- for (i = 48; i < 58; i++)
-- /* 0-9 */ pCharTable[i] = SC_COMPILER_C_CHAR_VALUE | SC_COMPILER_C_WORD | SC_COMPILER_C_VALUE | SC_COMPILER_C_VALUE_EXP | SC_COMPILER_C_VALUE_VALUE | SC_COMPILER_C_IDENT;
-- /* : */ pCharTable[58] = SC_COMPILER_C_WORD | SC_COMPILER_C_IDENT;
-- /* ; */ pCharTable[59] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
-- /* < */ pCharTable[60] = SC_COMPILER_C_CHAR_BOOL | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
-- /* = */ pCharTable[61] = SC_COMPILER_C_CHAR | SC_COMPILER_C_BOOL | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
-- /* > */ pCharTable[62] = SC_COMPILER_C_CHAR_BOOL | SC_COMPILER_C_BOOL | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
-- /* ? */ pCharTable[63] = SC_COMPILER_C_CHAR_WORD | SC_COMPILER_C_WORD;
-- /* @ */ // FREI
-- for (i = 65; i < 91; i++)
-- /* A-Z */ pCharTable[i] = SC_COMPILER_C_CHAR_WORD | SC_COMPILER_C_WORD | SC_COMPILER_C_CHAR_IDENT | SC_COMPILER_C_IDENT;
-- /* [ */ // FREI
-- /* \ */ // FREI
-- /* ] */ // FREI
-- /* ^ */ pCharTable[94] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
-- /* _ */ pCharTable[95] = SC_COMPILER_C_CHAR_WORD | SC_COMPILER_C_WORD | SC_COMPILER_C_CHAR_IDENT | SC_COMPILER_C_IDENT;
-- /* ` */ // FREI
-- for (i = 97; i < 123; i++)
-- /* a-z */ pCharTable[i] = SC_COMPILER_C_CHAR_WORD | SC_COMPILER_C_WORD | SC_COMPILER_C_CHAR_IDENT | SC_COMPILER_C_IDENT;
-- /* { */ // FREI
-- /* | */ // FREI
-- /* } */ // FREI
-- /* ~ */ // FREI
-- /* 127 */ // FREI
- }
-
- void ScCompiler::DeInit()
-@@ -299,8 +257,6 @@ void ScCompiler::DeInit()
- delete pCharClassEnglish;
- pCharClassEnglish = NULL;
- }
-- delete [] pCharTable;
-- pCharTable = NULL;
- }
-
- void ScCompiler::SetCompileEnglish( BOOL bCompileEnglish )
-@@ -337,54 +293,105 @@ void ScCompiler::SetCompileEnglish( BOOL
-
- //-----------------------------------------------------------------------------
-
--ScCompiler::ScCompiler( ScDocument* pDocument, const ScAddress& rPos,
-- const ScTokenArray& rArr )
-- :
-- aPos( rPos ),
-- pSymbolTable( pSymbolTableNative ),
-- pSymbolHashMap( pSymbolHashMapNative ),
-- pCharClass( ScGlobal::pCharClass ),
-- nRecursion(0),
-- bAutoCorrect( FALSE ),
-- bCorrected( FALSE ),
-- bCompileForFAP( FALSE ),
-- bIgnoreErrors( FALSE ),
-- bCompileXML( FALSE ),
-- bImportXML ( FALSE )
-+ScCompiler::Convention::~Convention()
- {
-- if (!nAnzStrings)
-- Init();
-- pArr = (ScTokenArray*) &rArr;
-- pDoc = pDocument;
-- nMaxTab = pDoc->GetTableCount() - 1;
-- pStack = NULL;
-- nNumFmt = NUMBERFORMAT_UNDEFINED;
-+ delete [] pCharTable;
-+ pCharTable = NULL;
- }
-
--ScCompiler::ScCompiler(ScDocument* pDocument, const ScAddress& rPos )
-+ScCompiler::Convention::Convention( ScAddress::Convention eConvP )
- :
-- aPos( rPos ),
-- pSymbolTable( pSymbolTableNative ),
-- pSymbolHashMap( pSymbolHashMapNative ),
-- pCharClass( ScGlobal::pCharClass ),
-- nRecursion(0),
-- bAutoCorrect( FALSE ),
-- bCorrected( FALSE ),
-- bCompileForFAP( FALSE ),
-- bIgnoreErrors( FALSE ),
-- bCompileXML( FALSE ),
-- bImportXML ( FALSE )
-+ eConv( eConvP )
- {
-- if (!nAnzStrings)
-- Init();
-- pDoc = pDocument;
-- nMaxTab = pDoc ? pDoc->GetTableCount() - 1 : 0;
-- pStack = NULL;
-- nNumFmt = NUMBERFORMAT_UNDEFINED;
-+ int i;
-+ ULONG *t= new ULONG [128];
-+
-+ ScCompiler::pConventions[ eConv ] = this;
-+ pCharTable = t;
-+
-+ for (i = 0; i < 128; i++)
-+ t[i] = SC_COMPILER_C_ILLEGAL;
-+
-+/* */ t[32] = SC_COMPILER_C_CHAR_DONTCARE | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
-+/* ! */ t[33] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
-+/* " */ t[34] = SC_COMPILER_C_CHAR_STRING | SC_COMPILER_C_STRING_SEP;
-+/* # */ t[35] = SC_COMPILER_C_WORD_SEP;
-+/* $ */ t[36] = SC_COMPILER_C_CHAR_WORD | SC_COMPILER_C_WORD | SC_COMPILER_C_CHAR_IDENT | SC_COMPILER_C_IDENT;
-+/* % */ t[37] = SC_COMPILER_C_VALUE;
-+/* & */ t[38] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
-+/* ' */ t[39] = SC_COMPILER_C_NAME_SEP;
-+/* ( */ t[40] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
-+/* ) */ t[41] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
-+/* * */ t[42] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
-+/* + */ t[43] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_EXP | SC_COMPILER_C_VALUE_SIGN;
-+/* , */ t[44] = SC_COMPILER_C_CHAR_VALUE | SC_COMPILER_C_VALUE;
-+/* - */ t[45] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_EXP | SC_COMPILER_C_VALUE_SIGN;
-+/* . */ t[46] = SC_COMPILER_C_WORD | SC_COMPILER_C_CHAR_VALUE | SC_COMPILER_C_VALUE | SC_COMPILER_C_IDENT;
-+/* / */ t[47] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
-+for (i = 48; i < 58; i++)
-+/* 0-9 */ t[i] = SC_COMPILER_C_CHAR_VALUE | SC_COMPILER_C_WORD | SC_COMPILER_C_VALUE | SC_COMPILER_C_VALUE_EXP | SC_COMPILER_C_VALUE_VALUE | SC_COMPILER_C_IDENT;
-+/* : */ t[58] = SC_COMPILER_C_WORD | SC_COMPILER_C_IDENT;
-+/* ; */ t[59] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
-+/* < */ t[60] = SC_COMPILER_C_CHAR_BOOL | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
-+/* = */ t[61] = SC_COMPILER_C_CHAR | SC_COMPILER_C_BOOL | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
-+/* > */ t[62] = SC_COMPILER_C_CHAR_BOOL | SC_COMPILER_C_BOOL | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
-+/* ? */ t[63] = SC_COMPILER_C_CHAR_WORD | SC_COMPILER_C_WORD;
-+/* @ */ // FREI
-+for (i = 65; i < 91; i++)
-+/* A-Z */ t[i] = SC_COMPILER_C_CHAR_WORD | SC_COMPILER_C_WORD | SC_COMPILER_C_CHAR_IDENT | SC_COMPILER_C_IDENT;
-+/* [ */ // FREI
-+/* \ */ // FREI
-+/* ] */ // FREI
-+/* ^ */ t[94] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
-+/* _ */ t[95] = SC_COMPILER_C_CHAR_WORD | SC_COMPILER_C_WORD | SC_COMPILER_C_CHAR_IDENT | SC_COMPILER_C_IDENT;
-+/* ` */ // FREI
-+for (i = 97; i < 123; i++)
-+/* a-z */ t[i] = SC_COMPILER_C_CHAR_WORD | SC_COMPILER_C_WORD | SC_COMPILER_C_CHAR_IDENT | SC_COMPILER_C_IDENT;
-+/* { */ // FREI
-+/* | */ // FREI
-+/* } */ // FREI
-+/* ~ */ // FREI
-+/* 127 */ // FREI
-+ if( ScAddress::CONV_XL_A1 == eConv)
-+ {
-+/* ! */ t[33] |= SC_COMPILER_C_IDENT;
-+ }
-+ else if( ScAddress::CONV_XL_R1C1 == eConv)
-+ {
-+/* ! */ t[33] |= SC_COMPILER_C_IDENT;
-+/* - */ t[45] |= SC_COMPILER_C_IDENT;
-+/* [ */ t[91] = SC_COMPILER_C_IDENT;
-+/* ] */ t[93] = SC_COMPILER_C_IDENT;
- }
-+}
-+
-+//-----------------------------------------------------------------------------
-
-+struct Convention_A1 : public ScCompiler::Convention
-+{
-+ Convention_A1( ScAddress::Convention eConv ) : ScCompiler::Convention( eConv ) { }
-+ static String MakeTabStr( const ScCompiler& rComp, SCTAB nTab, String& aDoc );
-+ static String MakeColStr( SCCOL nCol );
-+ static void MakeColStr( rtl::OUStringBuffer& rBuffer, SCCOL nCol );
-+ static String MakeRowStr( SCROW nRow );
-+ static void MakeRowStr( rtl::OUStringBuffer& rBuffer, SCROW nRow );
-+
-+ ParseResult parseAnyToken( const String& rFormula,
-+ xub_StrLen nSrcPos,
-+ const CharClass* pCharClass) const
-+ {
-+ static const sal_Int32 nStartFlags = KParseTokens::ANY_LETTER_OR_NUMBER |
-+ KParseTokens::ASC_UNDERSCORE | KParseTokens::ASC_DOLLAR;
-+ static const sal_Int32 nContFlags = nStartFlags | KParseTokens::ASC_DOT |
-+ KParseTokens::ASC_COLON;
-+ // '?' allowed in range names because of Xcl :-/
-+ static const String aAddAllowed( '?' );
-+ return pCharClass->parseAnyToken( rFormula,
-+ nSrcPos, nStartFlags, aAddAllowed, nContFlags, aAddAllowed );
-+ }
-+};
-
--String ScCompiler::MakeColStr( SCCOL nCol )
-+String Convention_A1::MakeColStr( SCCOL nCol )
- {
- if ( !ValidCol( nCol) )
- return ScGlobal::GetRscString(STR_NO_REF_TABLE);
-@@ -392,7 +399,7 @@ String ScCompiler::MakeColStr( SCCOL nCo
- return ::ColToAlpha( nCol);
- }
-
--void ScCompiler::MakeColStr( rtl::OUStringBuffer& rBuffer, SCCOL nCol )
-+void Convention_A1::MakeColStr( rtl::OUStringBuffer& rBuffer, SCCOL nCol )
- {
- if ( !ValidCol( nCol) )
- rBuffer.append(ScGlobal::GetRscString(STR_NO_REF_TABLE));
-@@ -400,7 +407,7 @@ void ScCompiler::MakeColStr( rtl::OUStri
- ::ColToAlpha( rBuffer, nCol);
- }
-
--String ScCompiler::MakeRowStr( SCROW nRow )
-+String Convention_A1::MakeRowStr( SCROW nRow )
- {
- if ( !ValidRow(nRow) )
- return ScGlobal::GetRscString(STR_NO_REF_TABLE);
-@@ -408,7 +415,7 @@ String ScCompiler::MakeRowStr( SCROW nRo
- return String::CreateFromInt32( nRow + 1 );
- }
-
--void ScCompiler::MakeRowStr( rtl::OUStringBuffer& rBuffer, SCROW nRow )
-+void Convention_A1::MakeRowStr( rtl::OUStringBuffer& rBuffer, SCROW nRow )
- {
- if ( !ValidRow(nRow) )
- rBuffer.append(ScGlobal::GetRscString(STR_NO_REF_TABLE));
-@@ -416,10 +423,11 @@ void ScCompiler::MakeRowStr( rtl::OUStri
- rBuffer.append(sal_Int32(nRow + 1));
- }
-
--String ScCompiler::MakeTabStr( SCTAB nTab, String& aDoc )
-+String Convention_A1::MakeTabStr( const ScCompiler& rComp,
-+ SCTAB nTab, String& aDoc )
- {
- String aString;
-- if (!pDoc->GetName(nTab, aString))
-+ if (!rComp.pDoc->GetName( nTab, aString ))
- aString = ScGlobal::GetRscString(STR_NO_REF_TABLE);
- else
- {
-@@ -440,43 +448,109 @@ String ScCompiler::MakeTabStr( SCTAB nTa
- }
- else
- aDoc.Erase();
-- CheckTabQuotes( aString );
-+ ScCompiler::CheckTabQuotes( aString );
- }
- aString += '.';
- return aString;
- }
-
--void ScCompiler::CheckTabQuotes( String& rString )
-+//-----------------------------------------------------------------------------
-+
-+struct ConventionOOO_A1 : public Convention_A1
- {
-- register const sal_Unicode* p = rString.GetBuffer();
-- register const sal_Unicode* const pEnd = p + rString.Len();
-- while ( p < pEnd )
-+ ConventionOOO_A1() : Convention_A1 (ScAddress::CONV_OOO) { }
-+ void MakeRefStr( rtl::OUStringBuffer& rBuffer,
-+ const ScCompiler& rCompiler,
-+ const ComplRefData& rRef,
-+ BOOL bSingleRef ) const
- {
-- if( !IsWordChar( *p ) )
-+ ComplRefData aRef( rRef );
-+ // In case absolute/relative positions weren't separately available:
-+ // transform relative to absolute!
-+ // AdjustReference( aRef.Ref1 );
-+ // if( !bSingleRef )
-+ // AdjustReference( aRef.Ref2 );
-+ aRef.Ref1.CalcAbsIfRel( rCompiler.aPos );
-+ if( !bSingleRef )
-+ aRef.Ref2.CalcAbsIfRel( rCompiler.aPos );
-+ if( aRef.Ref1.IsFlag3D() )
- {
-- rString.Insert( '\'', 0 );
-- rString += '\'';
-- return ;
-- }
-- p++;
-+ if (aRef.Ref1.IsTabDeleted())
-+ {
-+ if (!aRef.Ref1.IsTabRel())
-+ rBuffer.append(sal_Unicode('$'));
-+ rBuffer.append(ScGlobal::GetRscString(STR_NO_REF_TABLE));
-+ rBuffer.append(sal_Unicode('.'));
- }
-- if ( CharClass::isAsciiNumeric( rString ) )
-+ else
- {
-- rString.Insert( '\'', 0 );
-- rString += '\'';
-+ String aDoc;
-+ String aRefStr( MakeTabStr( rCompiler, aRef.Ref1.nTab, aDoc ) );
-+ rBuffer.append(aDoc);
-+ if (!aRef.Ref1.IsTabRel()) rBuffer.append(sal_Unicode('$'));
-+ rBuffer.append(aRefStr);
- }
- }
--
--String ScCompiler::MakeRefStr( ComplRefData& rRef, BOOL bSingleRef )
-+ if (!aRef.Ref1.IsColRel())
-+ rBuffer.append(sal_Unicode('$'));
-+ if ( aRef.Ref1.IsColDeleted() )
-+ rBuffer.append(ScGlobal::GetRscString(STR_NO_REF_TABLE));
-+ else
-+ MakeColStr(rBuffer, aRef.Ref1.nCol );
-+ if (!aRef.Ref1.IsRowRel())
-+ rBuffer.append(sal_Unicode('$'));
-+ if ( aRef.Ref1.IsRowDeleted() )
-+ rBuffer.append(ScGlobal::GetRscString(STR_NO_REF_TABLE));
-+ else
-+ MakeRowStr( rBuffer, aRef.Ref1.nRow );
-+ if (!bSingleRef)
- {
-- rtl::OUStringBuffer aBuffer;
-- MakeRefStr( aBuffer, rRef, bSingleRef );
-- return String( aBuffer );
-+ rBuffer.append(sal_Unicode(':'));
-+ if (aRef.Ref2.IsFlag3D() || aRef.Ref2.nTab != aRef.Ref1.nTab)
-+ {
-+ if (aRef.Ref2.IsTabDeleted())
-+ {
-+ if (!aRef.Ref2.IsTabRel())
-+ rBuffer.append(sal_Unicode('$'));
-+ rBuffer.append(ScGlobal::GetRscString(STR_NO_REF_TABLE));
-+ rBuffer.append(sal_Unicode('.'));
-+ }
-+ else
-+ {
-+ String aDoc;
-+ String aRefStr( MakeTabStr( rCompiler, aRef.Ref2.nTab, aDoc ) );
-+ rBuffer.append(aDoc);
-+ if (!aRef.Ref2.IsTabRel()) rBuffer.append(sal_Unicode('$'));
-+ rBuffer.append(aRefStr);
-+ }
-+ }
-+ if (!aRef.Ref2.IsColRel())
-+ rBuffer.append(sal_Unicode('$'));
-+ if ( aRef.Ref2.IsColDeleted() )
-+ rBuffer.append(ScGlobal::GetRscString(STR_NO_REF_TABLE));
-+ else
-+ MakeColStr( rBuffer, aRef.Ref2.nCol );
-+ if (!aRef.Ref2.IsRowRel())
-+ rBuffer.append(sal_Unicode('$'));
-+ if ( aRef.Ref2.IsRowDeleted() )
-+ rBuffer.append(ScGlobal::GetRscString(STR_NO_REF_TABLE));
-+ else
-+ MakeRowStr( rBuffer, aRef.Ref2.nRow );
-+ }
- }
-+};
-+static const ConventionOOO_A1 ConvOOO_A1;
-+const ScCompiler::Convention *ScCompiler::pConvOOO_A1 = &ConvOOO_A1;
-+
-+//-----------------------------------------------------------------------------
-
--void ScCompiler::MakeRefStr( rtl::OUStringBuffer& rBuffer, ComplRefData& rRef, BOOL bSingleRef )
-+struct ConventionOOO_A1_XML : public ConventionOOO_A1
-+{
-+ void MakeRefStr( rtl::OUStringBuffer& rBuffer,
-+ const ScCompiler& rCompiler,
-+ const ComplRefData& rRef,
-+ BOOL bSingleRef ) const
- {
-- if (bCompileXML)
- rBuffer.append(sal_Unicode('['));
- ComplRefData aRef( rRef );
- // In case absolute/relative positions weren't separately available:
-@@ -484,9 +558,9 @@ void ScCompiler::MakeRefStr( rtl::OUStri
- // AdjustReference( aRef.Ref1 );
- // if( !bSingleRef )
- // AdjustReference( aRef.Ref2 );
-- aRef.Ref1.CalcAbsIfRel( aPos );
-+ aRef.Ref1.CalcAbsIfRel( rCompiler.aPos );
- if( !bSingleRef )
-- aRef.Ref2.CalcAbsIfRel( aPos );
-+ aRef.Ref2.CalcAbsIfRel( rCompiler.aPos );
- if( aRef.Ref1.IsFlag3D() )
- {
- if (aRef.Ref1.IsTabDeleted())
-@@ -499,13 +573,13 @@ void ScCompiler::MakeRefStr( rtl::OUStri
- else
- {
- String aDoc;
-- String aRefStr( MakeTabStr( aRef.Ref1.nTab, aDoc ) );
-+ String aRefStr( MakeTabStr( rCompiler, aRef.Ref1.nTab, aDoc ) );
- rBuffer.append(aDoc);
- if (!aRef.Ref1.IsTabRel()) rBuffer.append(sal_Unicode('$'));
- rBuffer.append(aRefStr);
- }
- }
-- else if (bCompileXML)
-+ else
- rBuffer.append(sal_Unicode('.'));
- if (!aRef.Ref1.IsColRel())
- rBuffer.append(sal_Unicode('$'));
-@@ -534,13 +608,13 @@ void ScCompiler::MakeRefStr( rtl::OUStri
- else
- {
- String aDoc;
-- String aRefStr( MakeTabStr( aRef.Ref2.nTab, aDoc ) );
-+ String aRefStr( MakeTabStr( rCompiler, aRef.Ref2.nTab, aDoc ) );
- rBuffer.append(aDoc);
- if (!aRef.Ref2.IsTabRel()) rBuffer.append(sal_Unicode('$'));
- rBuffer.append(aRefStr);
- }
- }
-- else if (bCompileXML)
-+ else
- rBuffer.append(sal_Unicode('.'));
- if (!aRef.Ref2.IsColRel())
- rBuffer.append(sal_Unicode('$'));
-@@ -555,12 +629,313 @@ void ScCompiler::MakeRefStr( rtl::OUStri
- else
- MakeRowStr( rBuffer, aRef.Ref2.nRow );
- }
-- if (bCompileXML)
- rBuffer.append(sal_Unicode(']'));
- }
-+};
-+
-+static const ConventionOOO_A1_XML ConvOOO_A1_XML;
-+static const ScCompiler::Convention *pConvOOO_A1_XML = &ConvOOO_A1_XML;
-+
-+//-----------------------------------------------------------------------------
-+
-+struct ConventionXL_A1 : public Convention_A1
-+{
-+ ConventionXL_A1() : Convention_A1( ScAddress::CONV_XL_A1 ) { }
-+ void MakeRefStr( rtl::OUStringBuffer& rBuffer,
-+ const ScCompiler& rCompiler,
-+ const ComplRefData& rRef,
-+ BOOL bSingleRef ) const
-+ {
-+ ComplRefData aRef( rRef );
-+
-+ aRef.Ref1.CalcAbsIfRel( rCompiler.aPos );
-+ if( !bSingleRef )
-+ aRef.Ref2.CalcAbsIfRel( rCompiler.aPos );
-+
-+#if 0
-+ if( aRef.Ref1.IsFlag3D() )
-+ {
-+ if (aRef.Ref1.IsTabDeleted())
-+ {
-+ rBuffer.append(ScGlobal::GetRscString(STR_NO_REF_TABLE));
-+ rBuffer.append(sal_Unicode('.'));
-+ }
-+ else
-+ {
-+ String aDoc;
-+ String aRefStr( MakeTabStr( rCompiler, aRef.Ref1.nTab, aDoc ) );
-+ rBuffer.append(aDoc);
-+ rBuffer.append(aRefStr);
-+ }
-+ }
-+ if (aRef.Ref2.IsFlag3D() || aRef.Ref2.nTab != aRef.Ref1.nTab)
-+ {
-+ if (aRef.Ref2.IsTabDeleted())
-+ {
-+ rBuffer.append(ScGlobal::GetRscString(STR_NO_REF_TABLE));
-+ rBuffer.append(sal_Unicode('.'));
-+ }
-+ else
-+ {
-+ String aDoc;
-+ String aRefStr( MakeTabStr( rCompiler, aRef.Ref2.nTab, aDoc ) );
-+ rBuffer.append(aDoc);
-+ rBuffer.append(aRefStr);
-+ }
-+ }
-+#endif
-+
-+ if (!aRef.Ref1.IsColRel())
-+ rBuffer.append(sal_Unicode('$'));
-+ if ( aRef.Ref1.IsColDeleted() )
-+ rBuffer.append(ScGlobal::GetRscString(STR_NO_REF_TABLE));
-+ else
-+ MakeColStr(rBuffer, aRef.Ref1.nCol );
-+ if (!aRef.Ref1.IsRowRel())
-+ rBuffer.append(sal_Unicode('$'));
-+ if ( aRef.Ref1.IsRowDeleted() )
-+ rBuffer.append(ScGlobal::GetRscString(STR_NO_REF_TABLE));
-+ else
-+ MakeRowStr( rBuffer, aRef.Ref1.nRow );
-+ if (!bSingleRef)
-+ {
-+ rBuffer.append(sal_Unicode(':'));
-+ if (!aRef.Ref2.IsColRel())
-+ rBuffer.append(sal_Unicode('$'));
-+ if ( aRef.Ref2.IsColDeleted() )
-+ rBuffer.append(ScGlobal::GetRscString(STR_NO_REF_TABLE));
-+ else
-+ MakeColStr( rBuffer, aRef.Ref2.nCol );
-+ if (!aRef.Ref2.IsRowRel())
-+ rBuffer.append(sal_Unicode('$'));
-+ if ( aRef.Ref2.IsRowDeleted() )
-+ rBuffer.append(ScGlobal::GetRscString(STR_NO_REF_TABLE));
-+ else
-+ MakeRowStr( rBuffer, aRef.Ref2.nRow );
-+ }
-+ }
-+};
-+
-+static const ConventionXL_A1 ConvXL_A1;
-+static const ScCompiler::Convention *pConvXL_A1 = &ConvXL_A1;
-+
-+//-----------------------------------------------------------------------------
-+
-+static void
-+r1c1_add_col( rtl::OUStringBuffer &rBuf, const SingleRefData& rRef )
-+{
-+ rBuf.append( sal_Unicode( 'C' ) );
-+ if( rRef.IsColRel() )
-+ {
-+ if (rRef.nRelCol != 0)
-+ {
-+ rBuf.append( sal_Unicode( '[' ) );
-+ rBuf.append( String::CreateFromInt32( rRef.nRelCol ) );
-+ rBuf.append( sal_Unicode( ']' ) );
-+ }
-+ }
-+ else
-+ rBuf.append( String::CreateFromInt32( rRef.nCol + 1 ) );
-+}
-+static void
-+r1c1_add_row( rtl::OUStringBuffer &rBuf, const SingleRefData& rRef )
-+{
-+ rBuf.append( sal_Unicode( 'R' ) );
-+ if( rRef.IsRowRel() )
-+ {
-+ if (rRef.nRelRow != 0)
-+ {
-+ rBuf.append( sal_Unicode( '[' ) );
-+ rBuf.append( String::CreateFromInt32( rRef.nRelRow ) );
-+ rBuf.append( sal_Unicode( ']' ) );
-+ }
-+ }
-+ else
-+ rBuf.append( String::CreateFromInt32( rRef.nRow + 1 ) );
-+}
-+
-+struct ConventionXL_R1C1 : public ScCompiler::Convention
-+{
-+ ConventionXL_R1C1() : ScCompiler::Convention( ScAddress::CONV_XL_R1C1 ) { }
-+ void MakeRefStr( rtl::OUStringBuffer& rBuf,
-+ const ScCompiler& rCompiler,
-+ const ComplRefData& rRef,
-+ BOOL bSingleRef ) const
-+ {
-+ ComplRefData aRef( rRef );
-+
-+ aRef.Ref1.CalcAbsIfRel( rCompiler.aPos );
-+ if( !bSingleRef )
-+ aRef.Ref2.CalcAbsIfRel( rCompiler.aPos );
-+
-+ if( aRef.Ref1.IsColDeleted() || aRef.Ref1.IsRowDeleted() )
-+ rBuf.append(ScGlobal::GetRscString(STR_NO_REF_TABLE));
-+ else if( !bSingleRef &&
-+ ( aRef.Ref2.IsColDeleted() || aRef.Ref2.IsRowDeleted() ) )
-+ rBuf.append(ScGlobal::GetRscString(STR_NO_REF_TABLE));
-+ else if( bSingleRef )
-+ {
-+ r1c1_add_row( rBuf, rRef.Ref1 );
-+ r1c1_add_col( rBuf, rRef.Ref1 );
-+ }
-+ else
-+ {
-+ if( aRef.Ref1.nCol == 0 && aRef.Ref2.nCol >= MAXCOLCOUNT-1 )
-+ {
-+ r1c1_add_row( rBuf, rRef.Ref1 );
-+ if( rRef.Ref1.nRow != rRef.Ref2.nRow ||
-+ rRef.Ref1.IsRowRel() != rRef.Ref2.IsRowRel() ) {
-+ rBuf.append (sal_Unicode ( ':' ) );
-+ r1c1_add_row( rBuf, rRef.Ref2 );
-+ }
-+ }
-+ else if( aRef.Ref1.nRow == 0 && aRef.Ref2.nRow >= MAXROWCOUNT-1 )
-+ {
-+ r1c1_add_col( rBuf, rRef.Ref1 );
-+ if( rRef.Ref1.nCol != rRef.Ref2.nCol ||
-+ rRef.Ref1.IsColRel() != rRef.Ref2.IsColRel() )
-+ {
-+ rBuf.append (sal_Unicode ( ':' ) );
-+ r1c1_add_col( rBuf, rRef.Ref2 );
-+ }
-+ }
-+ else
-+ {
-+ r1c1_add_row( rBuf, rRef.Ref1 );
-+ r1c1_add_col( rBuf, rRef.Ref1 );
-+ if( rRef.Ref1.nCol != rRef.Ref2.nCol ||
-+ rRef.Ref1.IsColRel() != rRef.Ref2.IsColRel() ||
-+ rRef.Ref1.nRow != rRef.Ref2.nRow ||
-+ rRef.Ref1.IsRowRel() != rRef.Ref2.IsRowRel() )
-+ {
-+ rBuf.append (sal_Unicode ( ':' ) );
-+ r1c1_add_row( rBuf, rRef.Ref2 );
-+ r1c1_add_col( rBuf, rRef.Ref2 );
-+ }
-+ }
-+ }
-+ }
-+
-+ ParseResult parseAnyToken( const String& rFormula,
-+ xub_StrLen nSrcPos,
-+ const CharClass* pCharClass) const
-+ {
-+ static const sal_Int32 nStartFlags = KParseTokens::ANY_LETTER_OR_NUMBER |
-+ KParseTokens::ASC_UNDERSCORE ;
-+ static const sal_Int32 nContFlags = nStartFlags | KParseTokens::ASC_DOT |
-+ KParseTokens::ASC_COLON;
-+ // '?' allowed in range names because of Xcl :-/
-+ static const String aAddAllowed = String::CreateFromAscii( "?-[]" );
-+
-+ return pCharClass->parseAnyToken( rFormula,
-+ nSrcPos, nStartFlags, aAddAllowed, nContFlags, aAddAllowed );
-+ }
-+};
-+
-+static const ConventionXL_R1C1 ConvXL_R1C1;
-+static const ScCompiler::Convention *pConvXL_R1C1 = &ConvXL_R1C1;
-+
-+//-----------------------------------------------------------------------------
-+ScCompiler::ScCompiler( ScDocument* pDocument, const ScAddress& rPos,
-+ const ScTokenArray& rArr )
-+ :
-+ aPos( rPos ),
-+ pSymbolTable( pSymbolTableNative ),
-+ pSymbolHashMap( pSymbolHashMapNative ),
-+ pCharClass( ScGlobal::pCharClass ),
-+ nRecursion(0),
-+ bAutoCorrect( FALSE ),
-+ bCorrected( FALSE ),
-+ bCompileForFAP( FALSE ),
-+ bIgnoreErrors( FALSE ),
-+ bImportXML ( FALSE )
-+{
-+ if (!nAnzStrings)
-+ Init();
-+ pArr = (ScTokenArray*) &rArr;
-+ pDoc = pDocument;
-+
-+ if (NULL != pDoc)
-+ SetRefConvention( pDoc->GetAddressConvention() );
-+ else
-+ SetRefConvention( pConvOOO_A1 );
-+
-+ nMaxTab = pDoc->GetTableCount() - 1;
-+ pStack = NULL;
-+ nNumFmt = NUMBERFORMAT_UNDEFINED;
-+}
-+
-+ScCompiler::ScCompiler(ScDocument* pDocument, const ScAddress& rPos )
-+ :
-+ aPos( rPos ),
-+ pSymbolTable( pSymbolTableNative ),
-+ pSymbolHashMap( pSymbolHashMapNative ),
-+ pCharClass( ScGlobal::pCharClass ),
-+ nRecursion(0),
-+ bAutoCorrect( FALSE ),
-+ bCorrected( FALSE ),
-+ bCompileForFAP( FALSE ),
-+ bIgnoreErrors( FALSE ),
-+ bImportXML ( FALSE )
-+{
-+ if (!nAnzStrings)
-+ Init();
-+ pDoc = pDocument;
-+
-+ if (NULL != pDoc)
-+ SetRefConvention( pDoc->GetAddressConvention() );
-+ else
-+ SetRefConvention( pConvOOO_A1 );
-+
-+ nMaxTab = pDoc ? pDoc->GetTableCount() - 1 : 0;
-+ pStack = NULL;
-+ nNumFmt = NUMBERFORMAT_UNDEFINED;
-+}
-+
-+void ScCompiler::CheckTabQuotes( String& rString )
-+{
-+ register const sal_Unicode* p = rString.GetBuffer();
-+ register const sal_Unicode* const pEnd = p + rString.Len();
-+ while ( p < pEnd )
-+ {
-+ if( !IsWordChar( *p ) )
-+ {
-+ rString.Insert( '\'', 0 );
-+ rString += '\'';
-+ return ;
-+ }
-+ p++;
-+ }
-+ if ( CharClass::isAsciiNumeric( rString ) )
-+ {
-+ rString.Insert( '\'', 0 );
-+ rString += '\'';
-+ }
-+}
-
- //---------------------------------------------------------------------------
-
-+void ScCompiler::SetCompileXML( BOOL bVal )
-+{
-+ SetRefConvention( bVal ? pConvOOO_A1_XML : pConvOOO_A1 );
-+}
-+void ScCompiler::SetRefConvention( ScAddress::Convention eConv )
-+{
-+ switch ( eConv ) {
-+ case ScAddress::CONV_UNSPECIFIED :
-+ break;
-+ default :
-+ case ScAddress::CONV_OOO : SetRefConvention( pConvOOO_A1 ); break;
-+ case ScAddress::CONV_XL_A1 : SetRefConvention( pConvXL_A1 ); break;
-+ case ScAddress::CONV_XL_R1C1 : SetRefConvention( pConvXL_R1C1 ); break;
-+ }
-+}
-+
-+void ScCompiler::SetRefConvention( const ScCompiler::Convention *pConvP )
-+{
-+ pConv = pConvP;
-+}
-+
- void ScCompiler::SetError(USHORT nError)
- {
- if( !pArr->GetError() )
-@@ -751,14 +1126,7 @@ xub_StrLen ScCompiler::NextSymbol()
- }
- if ( bi18n )
- {
-- using namespace ::com::sun::star::i18n;
- nSrcPos += nSpaces;
-- sal_Int32 nStartFlags = KParseTokens::ANY_LETTER_OR_NUMBER |
-- KParseTokens::ASC_UNDERSCORE | KParseTokens::ASC_DOLLAR;
-- sal_Int32 nContFlags = nStartFlags | KParseTokens::ASC_DOT |
-- KParseTokens::ASC_COLON;
-- // '?' allowed in range names because of Xcl :-/
-- static const String aAddAllowed( '?' );
- String aSymbol;
- USHORT nErr = 0;
- do
-@@ -768,8 +1136,7 @@ xub_StrLen ScCompiler::NextSymbol()
- if ( pStart[nSrcPos] == '$' && pStart[nSrcPos+1] == '\'' )
- aSymbol += pStart[nSrcPos++];
-
-- ParseResult aRes = pCharClass->parseAnyToken( aFormula,
-- nSrcPos, nStartFlags, aAddAllowed, nContFlags, aAddAllowed );
-+ ParseResult aRes = pConv->parseAnyToken( aFormula, nSrcPos, pCharClass );
-
- if ( !aRes.TokenType )
- SetError( nErr = errIllegalChar ); // parsed chars as string
-@@ -976,7 +1343,8 @@ BOOL ScCompiler::IsReference( const Stri
- }
- }
- ScRange aRange( aPos, aPos );
-- USHORT nFlags = aRange.Parse( rName, pDoc );
-+ const ScAddress::Details aDetails( pConv->eConv, aPos );
-+ USHORT nFlags = aRange.Parse( rName, pDoc, aDetails );
- if( nFlags & SCA_VALID )
- {
- ScRawToken aToken;
-@@ -1001,7 +1369,7 @@ BOOL ScCompiler::IsReference( const Stri
- else
- {
- ScAddress aAddr( aPos );
-- nFlags = aAddr.Parse( rName, pDoc );
-+ nFlags = aAddr.Parse( rName, pDoc, aDetails );
- // Something must be valid in order to recognize Sheet1.blah or blah.a1
- // as a (wrong) reference.
- if( nFlags & ( SCA_VALID_COL|SCA_VALID_ROW|SCA_VALID_TAB ) )
-@@ -1453,6 +1821,7 @@ void ScCompiler::AutoCorrectParsedSymbol
- if ( nRefs && nRefs <= 2 )
- { // reference twisted? 4A => A4 etc.
- String aTab[2], aRef[2];
-+ const ScAddress::Details aDetails( pConv->eConv, aPos );
- if ( nRefs == 2 )
- {
- aRef[0] = aSymbol.GetToken( 0, ':' );
-@@ -1486,7 +1855,7 @@ void ScCompiler::AutoCorrectParsedSymbol
- {
- bChanged = TRUE;
- ScAddress aAdr;
-- bOk &= ((aAdr.Parse( aRef[j], pDoc ) & nMask) == nMask);
-+ bOk &= ((aAdr.Parse( aRef[j], pDoc, aDetails ) & nMask) == nMask);
- }
- }
- if ( bChanged && bOk )
-@@ -1587,11 +1956,15 @@ BOOL ScCompiler::NextNewToken()
- return FALSE;
- }
-
--ScTokenArray* ScCompiler::CompileString( const String& rFormula )
-+ScTokenArray* ScCompiler::CompileString( const String& rFormula,
-+ ScAddress::Convention eConv )
- {
- ScTokenArray aArr;
- pArr = &aArr;
- aFormula = rFormula;
-+
-+ SetRefConvention( eConv );
-+
- aFormula.EraseLeadingChars();
- aFormula.EraseTrailingChars();
- nSrcPos = 0;
-@@ -2308,9 +2681,11 @@ void ScCompiler::Factor()
- // one parameter:
- case ocFormula:
- // more than one parameters:
-- // ocIndirect otherwise would have to do StopListening and
-- // StartListening on a reference for every interpreted value.
-+ // ocIndirect/ocIndirectXL otherwise would have to do
-+ // StopListening and StartListening on a reference for every
-+ // interpreted value.
- case ocIndirect:
-+ case ocIndirectXL:
- // ocOffset results in indirect references.
- case ocOffset:
- pArr->SetRecalcModeAlways();
-@@ -3721,15 +4096,15 @@ ScToken* ScCompiler::CreateStringFromTok
- else
- {
- rBuffer.append(ScGlobal::GetRscString(STR_NO_NAME_REF));
-- MakeRefStr( rBuffer, aRef, TRUE );
-+ pConv->MakeRefStr (rBuffer, *this, aRef, TRUE );
- }
- }
- else
-- MakeRefStr( rBuffer, aRef, TRUE );
-+ pConv->MakeRefStr( rBuffer, *this, aRef, TRUE );
- }
- break;
- case svDoubleRef:
-- MakeRefStr( rBuffer, t->GetDoubleRef(), FALSE );
-+ pConv->MakeRefStr( rBuffer, *this, t->GetDoubleRef(), FALSE );
- break;
- case svIndex:
- {
-@@ -3744,7 +4119,7 @@ ScToken* ScCompiler::CreateStringFromTok
- if (pData->HasType(RT_SHARED))
- pData->UpdateSymbol( aBuffer, aPos,
- pSymbolTable == pSymbolTableEnglish,
-- bCompileXML );
-+ pConv == pConvOOO_A1_XML );
- else
- aBuffer.append(pData->GetName());
- }
-Index: sc/source/core/tool/interpr1.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/tool/interpr1.cxx,v
-retrieving revision 1.36
-retrieving revision 1.36.22.3
-diff -u -w -p -r1.36 -r1.36.22.3
---- sc/source/core/tool/interpr1.cxx 28 Sep 2005 11:37:54 -0000 1.36
-+++ sc/source/core/tool/interpr1.cxx 1 Dec 2005 19:52:22 -0000 1.36.22.3
-@@ -5298,27 +5298,38 @@ void ScInterpreter::ScDBVarP()
- }
-
-
--void ScInterpreter::ScIndirect()
-+void ScInterpreter::ScIndirectXL()
- {
- BYTE nParamCount = GetByte();
--/*
-- if (nParamCount == 2)
-- {
-- double fBool = GetDouble();
-- if (fBool == 0.0) // nur TRUE erlaubt!!
-+ ScAddress::Convention conv = ScAddress::CONV_XL_A1;
-+
-+ if (nParamCount == 2 && 0. == GetDouble())
-+ conv = ScAddress::CONV_XL_R1C1;
-+
-+ if ( MustHaveParamCount( nParamCount, 1, 2 ) )
- {
-- SetIllegalParameter();
-- return;
-- }
-+ ScAddress::Details const details( conv, aPos );
-+ SCTAB nTab = aPos.Tab();
-+ String sRefStr( GetString() );
-+ ScRefAddress aRefAd, aRefAd2;
-+ if ( ConvertDoubleRef( pDok, sRefStr, nTab, aRefAd, aRefAd2, details ) )
-+ PushDoubleRef( aRefAd.Col(), aRefAd.Row(), aRefAd.Tab(),
-+ aRefAd2.Col(), aRefAd2.Row(), aRefAd2.Tab() );
-+ else if ( ConvertSingleRef ( pDok, sRefStr, nTab, aRefAd, details ) )
-+ PushSingleRef( aRefAd.Col(), aRefAd.Row(), aRefAd.Tab() );
- else
-- nParamCount = 1;
-+ SetIllegalArgument();
- }
--*/
-+}
-+void ScInterpreter::ScIndirect()
-+{
-+ BYTE nParamCount = GetByte();
- if ( MustHaveParamCount( nParamCount, 1 ) )
- {
- SCTAB nTab = aPos.Tab();
- String sRefStr( GetString() );
- ScRefAddress aRefAd, aRefAd2;
-+ /* Always OOO format which does not require a position */
- if ( ConvertDoubleRef( pDok, sRefStr, nTab, aRefAd, aRefAd2 ) )
- PushDoubleRef( aRefAd.Col(), aRefAd.Row(), aRefAd.Tab(),
- aRefAd2.Col(), aRefAd2.Row(), aRefAd2.Tab() );
-@@ -5372,6 +5383,76 @@ void ScInterpreter::ScAdress()
- }
- PushString(aRefStr);
- }
-+}
-+
-+void ScInterpreter::ScAdressXL()
-+{
-+ String sTabStr;
-+
-+ BYTE nParamCount = GetByte();
-+ if( !MustHaveParamCount( nParamCount, 2, 5 ) )
-+ return;
-+
-+ if( nParamCount >= 5 )
-+ sTabStr = GetString();
-+
-+ ScAddress::Convention eConv = ScAddress::CONV_XL_A1; // default
-+ if( nParamCount >= 4 && (USHORT) ::rtl::math::approxFloor(GetDouble()) == 0 )
-+ eConv = ScAddress::CONV_XL_R1C1;
-+
-+ USHORT nFlags = SCA_COL_ABSOLUTE | SCA_ROW_ABSOLUTE; // default
-+ if( nParamCount >= 3 )
-+ {
-+ USHORT n = (USHORT) ::rtl::math::approxFloor(GetDouble());
-+ switch ( n )
-+ {
-+ default :
-+ SetNoValue();
-+ return;
-+
-+ case 5:
-+ case 1 : break; // default
-+ case 6:
-+ case 2 : nFlags = SCA_ROW_ABSOLUTE; break;
-+ case 7:
-+ case 3 : nFlags = SCA_COL_ABSOLUTE; break;
-+ case 8:
-+ case 4 : nFlags = 0; break; // both relative
-+ }
-+ }
-+ nFlags |= SCA_VALID | SCA_VALID_ROW | SCA_VALID_COL;
-+
-+ SCCOL nCol = (SCCOL) ::rtl::math::approxFloor(GetDouble());
-+ SCROW nRow = (SCROW) ::rtl::math::approxFloor(GetDouble());
-+ if( eConv == ScAddress::CONV_XL_R1C1 )
-+ {
-+ // YUCK! The XL interface actually treats rel R1C1 refs differently
-+ // than A1
-+ if( !(nFlags & SCA_COL_ABSOLUTE) )
-+ nCol += aPos.Col() + 1;
-+ if( !(nFlags & SCA_ROW_ABSOLUTE) )
-+ nRow += aPos.Row() + 1;
-+ }
-+
-+ if( nCol < 1 || nCol > MAXCOL + 1 || nRow < 1 || nRow > MAXROW + 1 )
-+ {
-+ SetNoValue();
-+ return;
-+ }
-+
-+ String aRefStr;
-+ const ScAddress::Details aDetails( eConv, aPos );
-+ const ScAddress aAdr( nCol-1, nRow-1, 0);
-+ aAdr.Format( aRefStr, nFlags, pDok, aDetails );
-+
-+ if( nParamCount >= 5 )
-+ { // TODO Do we need to quote this ?
-+ sTabStr += static_cast<sal_Unicode>('!');
-+ sTabStr += aRefStr;
-+ PushString( sTabStr );
-+ }
-+ else
-+ PushString( aRefStr );
- }
-
-
-Index: sc/source/core/tool/interpr4.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/tool/interpr4.cxx,v
-retrieving revision 1.39
-diff -u -w -p -r1.39 interpr4.cxx
---- sc/source/core/tool/interpr4.cxx 21 Oct 2005 11:54:33 -0000 1.39
-+++ sc/source/core/tool/interpr4.cxx 1 Dec 2005 19:53:22 -0000
-@@ -3398,7 +3398,9 @@ StackVar ScInterpreter::Interpret()
- case ocDBVar : ScDBVar(); break;
- case ocDBVarP : ScDBVarP(); break;
- case ocIndirect : ScIndirect(); break;
-+ case ocIndirectXL : ScIndirectXL(); break;
- case ocAdress : ScAdress(); break;
-+ case ocAdressXL : ScAdressXL(); break;
- case ocMatch : ScMatch(); break;
- case ocCountEmptyCells : ScCountEmptyCells(); break;
- case ocCountIf : ScCountIf(); break;
-Index: sc/source/core/tool/rangelst.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/tool/rangelst.cxx,v
-retrieving revision 1.7
-retrieving revision 1.7.22.2
-diff -u -w -p -r1.7 -r1.7.22.2
---- sc/source/core/tool/rangelst.cxx 28 Sep 2005 11:39:04 -0000 1.7
-+++ sc/source/core/tool/rangelst.cxx 1 Dec 2005 19:52:22 -0000 1.7.22.2
-@@ -67,7 +67,8 @@ void ScRangeList::RemoveAll()
- Clear();
- }
-
--USHORT ScRangeList::Parse( const String& rStr, ScDocument* pDoc, USHORT nMask )
-+USHORT ScRangeList::Parse( const String& rStr, ScDocument* pDoc, USHORT nMask,
-+ ScAddress::Convention eConv )
- {
- if ( rStr.Len() )
- {
-@@ -94,7 +95,7 @@ USHORT ScRangeList::Parse( const String&
- aOne += aStrTmp;
- }
- aRange.aStart.SetTab( nTab ); // Default Tab wenn nicht angegeben
-- USHORT nRes = aRange.Parse( aOne, pDoc );
-+ USHORT nRes = aRange.Parse( aOne, pDoc, eConv );
- if ( (nRes & nMask) == nMask )
- Append( aRange );
- nResult &= nRes; // alle gemeinsamen Bits bleiben erhalten
-@@ -106,14 +107,15 @@ USHORT ScRangeList::Parse( const String&
- }
-
-
--void ScRangeList::Format( String& rStr, USHORT nFlags, ScDocument* pDoc ) const
-+void ScRangeList::Format( String& rStr, USHORT nFlags, ScDocument* pDoc,
-+ ScAddress::Convention eConv ) const
- {
- rStr.Erase();
- ULONG nCnt = Count();
- for ( ULONG nIdx = 0; nIdx < nCnt; nIdx++ )
- {
- String aStr;
-- GetObject( nIdx )->Format( aStr, nFlags, pDoc );
-+ GetObject( nIdx )->Format( aStr, nFlags, pDoc, eConv );
- if ( nIdx )
- rStr += ';';
- rStr += aStr;
-@@ -790,6 +792,7 @@ ScRangePairList::QsortNameCompare( const
- }
- return 0;
- }
-+ return 0; // just in case
- }
-
-
-Index: sc/source/core/tool/rangenam.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/tool/rangenam.cxx,v
-retrieving revision 1.17
-retrieving revision 1.17.40.2
-diff -u -w -p -r1.17 -r1.17.40.2
---- sc/source/core/tool/rangenam.cxx 8 Sep 2005 18:48:28 -0000 1.17
-+++ sc/source/core/tool/rangenam.cxx 1 Dec 2005 19:52:23 -0000 1.17.40.2
-@@ -516,7 +516,6 @@ void ScRangeData::UpdateTabRef(SCTAB nOl
-
- void ScRangeData::MakeValidName( String& rName ) // static
- {
-- if (!ScCompiler::HasCharTable())
- ScCompiler::Init();
-
- // ungueltige Zeichen vorne weglassen
-@@ -540,27 +539,24 @@ void ScRangeData::MakeValidName( String&
- }
-
- // Name darf keine Referenz beinhalten, wie in IsNameValid
-- BOOL bOk;
-- do
-- {
-- bOk = TRUE;
-+ ScAddress aAddr;
- ScRange aRange;
-- if( aRange.Parse( rName, NULL ) )
-- bOk = FALSE;
-- else
-+ int nConv = ScAddress::CONV_UNSPECIFIED; // use int so that op++ works
-+
-+ // Ensure that the proposed name is not an address under any convention
-+ while ( ++nConv != ScAddress::CONV_LAST )
- {
-- ScAddress aAddr;
-- if ( aAddr.Parse( rName, NULL ) )
-- bOk = FALSE;
-- }
-- if ( !bOk )
-- { //! Range Parse auch bei Bereich mit ungueltigem Tabellennamen gueltig
-+ ScAddress::Details details( static_cast<ScAddress::Convention>( nConv ) );
-+ while( aRange.Parse( rName, NULL, details )
-+ || aAddr.Parse( rName, NULL, details ) )
-+ {
-+ //! Range Parse auch bei Bereich mit ungueltigem Tabellennamen gueltig
- //! Address Parse dito, Name erzeugt deswegen bei Compile ein #REF!
- if ( rName.SearchAndReplace( ':', '_' ) == STRING_NOTFOUND
- && rName.SearchAndReplace( '.', '_' ) == STRING_NOTFOUND )
- rName.Insert('_',0);
- }
-- } while ( !bOk );
-+ }
- }
-
- BOOL ScRangeData::IsNameValid( const String& rName, ScDocument* pDoc )
-@@ -579,12 +575,12 @@ BOOL ScRangeData::IsNameValid( const Str
- // Parse nicht auf VALID pruefen, es reicht, wenn irgendein Bestandteil
- // erkannt wurde
- ScRange aRange;
-- if( aRange.Parse( rName, pDoc ) )
-+ if( aRange.Parse( rName, pDoc ) ) // THIS IS WRONG
- return FALSE;
- else
- {
- ScAddress aAddr;
-- if ( aAddr.Parse( rName, pDoc ) )
-+ if ( aAddr.Parse( rName, pDoc ) ) // THIS IS WRONG
- return FALSE;
- }
- return TRUE;
-Index: sc/source/core/tool/rangeutl.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/tool/rangeutl.cxx,v
-retrieving revision 1.5
-retrieving revision 1.5.38.1
-diff -u -w -p -r1.5 -r1.5.38.1
---- sc/source/core/tool/rangeutl.cxx 8 Sep 2005 18:48:58 -0000 1.5
-+++ sc/source/core/tool/rangeutl.cxx 25 Nov 2005 04:44:40 -0000 1.5.38.1
-@@ -57,10 +57,14 @@
- BOOL ScRangeUtil::MakeArea( const String& rAreaStr,
- ScArea& rArea,
- ScDocument* pDoc,
-- SCTAB nTab ) const
-+ SCTAB nTab,
-+ ScAddress::Details const & rDetails ) const
- {
- // Eingabe in rAreaStr: "$Tabelle1.$A1:$D17"
-
-+ // BROKEN BROKEN BROKEN
-+ // but it is only used in the consolidate dialog. Ignore for now.
-+
- BOOL nSuccess = FALSE;
- USHORT nPointPos = rAreaStr.Search('.');
- USHORT nColonPos = rAreaStr.Search(':');
-@@ -75,7 +79,7 @@ BOOL ScRangeUtil::MakeArea( const String
- aStrArea += rAreaStr.Copy( nPointPos+1 ); // '.' nicht mitkopieren
- }
-
-- nSuccess = ConvertDoubleRef( pDoc, aStrArea, nTab, startPos, endPos );
-+ nSuccess = ConvertDoubleRef( pDoc, aStrArea, nTab, startPos, endPos, rDetails );
-
- if ( nSuccess )
- rArea = ScArea( startPos.Tab(),
-@@ -91,6 +95,9 @@ void ScRangeUtil::CutPosString( const St
- String& thePosStr ) const
- {
- String aPosStr;
-+ // BROKEN BROKEN BROKEN
-+ // but it is only used in the consolidate dialog. Ignore for now.
-+
- USHORT nColonPos = theAreaStr.Search(':');
-
- if ( nColonPos != STRING_NOTFOUND )
-@@ -107,12 +114,16 @@ BOOL ScRangeUtil::IsAbsTabArea( const St
- ScDocument* pDoc,
- ScArea*** pppAreas,
- USHORT* pAreaCount,
-- BOOL bAcceptCellRef ) const
-+ BOOL bAcceptCellRef,
-+ ScAddress::Details const & rDetails ) const
- {
- DBG_ASSERT( pDoc, "Kein Dokument uebergeben!" );
- if ( !pDoc )
- return FALSE;
-
-+ // BROKEN BROKEN BROKEN
-+ // but it is only used in the consolidate dialog. Ignore for now.
-+
- /*
- * Erwartet wird ein String der Form
- * "$Tabelle1.$A$1:$Tabelle3.$D$17"
-@@ -147,9 +158,9 @@ BOOL ScRangeUtil::IsAbsTabArea( const St
- aStartPosStr = aTempAreaStr.Copy( 0, nColonPos );
- aEndPosStr = aTempAreaStr.Copy( nColonPos+1, STRING_LEN );
-
-- if ( ConvertSingleRef( pDoc, aStartPosStr, 0, aStartPos ) )
-+ if ( ConvertSingleRef( pDoc, aStartPosStr, 0, aStartPos, rDetails ) )
- {
-- if ( ConvertSingleRef( pDoc, aEndPosStr, aStartPos.Tab(), aEndPos ) )
-+ if ( ConvertSingleRef( pDoc, aEndPosStr, aStartPos.Tab(), aEndPos, rDetails ) )
- {
- aStartPos.SetRelCol( FALSE );
- aStartPos.SetRelRow( FALSE );
-@@ -195,13 +206,14 @@ BOOL ScRangeUtil::IsAbsArea( const Strin
- SCTAB nTab,
- String* pCompleteStr,
- ScRefAddress* pStartPos,
-- ScRefAddress* pEndPos ) const
-+ ScRefAddress* pEndPos,
-+ ScAddress::Details const & rDetails ) const
- {
- BOOL bIsAbsArea = FALSE;
- ScRefAddress startPos;
- ScRefAddress endPos;
-
-- bIsAbsArea = ConvertDoubleRef( pDoc, rAreaStr, nTab, startPos, endPos );
-+ bIsAbsArea = ConvertDoubleRef( pDoc, rAreaStr, nTab, startPos, endPos, rDetails );
-
- if ( bIsAbsArea )
- {
-@@ -214,9 +226,9 @@ BOOL ScRangeUtil::IsAbsArea( const Strin
-
- if ( pCompleteStr )
- {
-- *pCompleteStr = startPos.GetRefString( pDoc, MAXTAB+1 );
-+ *pCompleteStr = startPos.GetRefString( pDoc, MAXTAB+1, rDetails );
- *pCompleteStr += ':';
-- *pCompleteStr += endPos .GetRefString( pDoc, nTab );
-+ *pCompleteStr += endPos .GetRefString( pDoc, nTab, rDetails );
- }
-
- if ( pStartPos && pEndPos )
-@@ -235,13 +247,13 @@ BOOL ScRangeUtil::IsAbsPos( const String
- ScDocument* pDoc,
- SCTAB nTab,
- String* pCompleteStr,
-- ScRefAddress* pPosTripel ) const
-+ ScRefAddress* pPosTripel,
-+ ScAddress::Details const & rDetails ) const
- {
- BOOL bIsAbsPos = FALSE;
- ScRefAddress thePos;
-
-- bIsAbsPos = ConvertSingleRef( pDoc, rPosStr, nTab, thePos );
--
-+ bIsAbsPos = ConvertSingleRef( pDoc, rPosStr, nTab, thePos, rDetails );
- thePos.SetRelCol( FALSE );
- thePos.SetRelRow( FALSE );
- thePos.SetRelTab( FALSE );
-@@ -251,7 +263,7 @@ BOOL ScRangeUtil::IsAbsPos( const String
- if ( pPosTripel )
- *pPosTripel = thePos;
- if ( pCompleteStr )
-- *pCompleteStr = thePos.GetRefString( pDoc, MAXTAB+1 );
-+ *pCompleteStr = thePos.GetRefString( pDoc, MAXTAB+1, rDetails );
- }
-
- return bIsAbsPos;
-@@ -264,8 +276,8 @@ BOOL ScRangeUtil::MakeRangeFromName (
- ScDocument* pDoc,
- SCTAB nCurTab,
- ScRange& rRange,
-- RutlNameScope eScope
-- ) const
-+ RutlNameScope eScope,
-+ ScAddress::Details const & rDetails ) const
- {
- BOOL bResult=FALSE;
- ScRangeUtil aRangeUtil;
-@@ -290,7 +302,7 @@ BOOL ScRangeUtil::MakeRangeFromName (
- pData->GetSymbol( aStrArea );
-
- if ( IsAbsArea( aStrArea, pDoc, nCurTab,
-- NULL, &aStartPos, &aEndPos ) )
-+ NULL, &aStartPos, &aEndPos, rDetails ) )
- {
- nTab = aStartPos.Tab();
- nColStart = aStartPos.Col();
-@@ -304,7 +316,7 @@ BOOL ScRangeUtil::MakeRangeFromName (
- CutPosString( aStrArea, aStrArea );
-
- if ( IsAbsPos( aStrArea, pDoc, nCurTab,
-- NULL, &aStartPos ) )
-+ NULL, &aStartPos, rDetails ) )
- {
- nTab = aStartPos.Tab();
- nColStart = nColEnd = aStartPos.Col();
-@@ -425,13 +437,14 @@ SvStream& operator<< ( SvStream& rStream
-
- //------------------------------------------------------------------------
-
--void ScArea::GetString( String& rStr, BOOL bAbsolute, ScDocument* pDoc ) const
-+void ScArea::GetString( String& rStr, BOOL bAbsolute, ScDocument* pDoc,
-+ ScAddress::Details const & rDetails ) const
- {
- ScRange aRange( ScAddress( nColStart, nRowStart, nTab ),
- ScAddress( nColEnd, nRowEnd, nTab ) );
- USHORT nFlags = bAbsolute ? SCA_COL_ABSOLUTE | SCA_ROW_ABSOLUTE : 0;
-
-- aRange.Format( rStr, nFlags, pDoc );
-+ aRange.Format( rStr, nFlags, pDoc, rDetails );
- }
-
- //------------------------------------------------------------------------
-Index: sc/source/core/tool/reffind.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/tool/reffind.cxx,v
-retrieving revision 1.3
-retrieving revision 1.3.40.2
-diff -u -w -p -r1.3 -r1.3.40.2
---- sc/source/core/tool/reffind.cxx 8 Sep 2005 18:49:48 -0000 1.3
-+++ sc/source/core/tool/reffind.cxx 1 Dec 2005 19:52:23 -0000 1.3.40.2
-@@ -74,9 +74,11 @@ inline BOOL IsText( BOOL& bQuote, sal_Un
- return IsText( c );
- }
-
--ScRefFinder::ScRefFinder(const String& rFormula, ScDocument* pDocument) :
-+ScRefFinder::ScRefFinder(const String& rFormula, ScDocument* pDocument,
-+ ScAddress::Convention eConvP) :
- aFormula( rFormula ),
-- pDoc( pDocument )
-+ pDoc( pDocument ),
-+ eConv( eConvP )
- {
- nSelStart = nSelEnd = nFound = 0;
- }
-Index: sc/source/filter/excel/excdoc.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/excel/excdoc.cxx,v
-retrieving revision 1.61
-retrieving revision 1.61.22.2
-diff -u -w -p -r1.61 -r1.61.22.2
---- sc/source/filter/excel/excdoc.cxx 28 Sep 2005 11:40:47 -0000 1.61
-+++ sc/source/filter/excel/excdoc.cxx 1 Dec 2005 19:52:24 -0000 1.61.22.2
-@@ -327,7 +327,7 @@ void ExcTable::FillAsTable( size_t nCode
- {
- Add( new ExcBof8 );
- Add( new XclCalccount( rDoc ) );
-- Add( new XclRefmode() );
-+ Add( new XclRefmode( rDoc ) );
- Add( new XclIteration( rDoc ) );
- Add( new XclDelta( rDoc ) );
- Add( new ExcDummy8_02 );
-Index: sc/source/filter/excel/excform.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/excel/excform.cxx,v
-retrieving revision 1.37
-retrieving revision 1.36.20.2
-diff -u -w -p -r1.37 -r1.36.20.2
---- sc/source/filter/excel/excform.cxx 21 Oct 2005 11:55:38 -0000 1.37
-+++ sc/source/filter/excel/excform.cxx 28 Nov 2005 16:21:07 -0000 1.36.20.2
-@@ -1366,12 +1366,6 @@ void ExcelToSc::DoMulArgs( DefTokenId eI
- // Funktionen, bei denen Parameter wegfallen muessen
- if( eId == ocPercentrank && nAnz == 3 )
- nSkipEnd = 0; // letzten Parameter bei Bedarf weglassen
--
-- else if( eId == ocIndirect && nAnz == 2 )
-- nSkipEnd = 0;
--
-- else if( eId == ocAdress && nAnz > 3 )
-- nNull = nAnz - 4;
-
- // Joost-Spezialfaelle
- else if( eId == ocIf )
-Index: sc/source/filter/excel/excimp8.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/excel/excimp8.cxx,v
-retrieving revision 1.108
-retrieving revision 1.108.22.2
-diff -u -w -p -r1.108 -r1.108.22.2
---- sc/source/filter/excel/excimp8.cxx 28 Sep 2005 11:42:07 -0000 1.108
-+++ sc/source/filter/excel/excimp8.cxx 1 Dec 2005 19:52:24 -0000 1.108.22.2
-@@ -198,6 +198,12 @@ void ImportExcel8::Iteration( void )
- }
-
-
-+void ImportExcel8::RefMode( void )
-+{
-+ pD->SetAddressConvention( (aIn.ReaduInt16() == 0)
-+ ? ScAddress::CONV_XL_R1C1
-+ : ScAddress::CONV_OOO );
-+}
- void ImportExcel8:: WinProtection( void )
- {
- if( aIn.ReaduInt16() != 0 )
-Index: sc/source/filter/excel/impop.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/excel/impop.cxx,v
-retrieving revision 1.76
-retrieving revision 1.76.22.2
-diff -u -w -p -r1.76 -r1.76.22.2
---- sc/source/filter/excel/impop.cxx 28 Sep 2005 11:43:13 -0000 1.76
-+++ sc/source/filter/excel/impop.cxx 25 Nov 2005 04:44:42 -0000 1.76.22.2
-@@ -563,8 +563,8 @@ void ImportExcel::Array25( void )
- aMarkData.SelectOneTable( GetCurrScTab() );
- pD->InsertMatrixFormula( static_cast<SCCOL>(nFirstCol),
- static_cast<SCROW>(nFirstRow), static_cast<SCCOL>(nLastCol),
-- static_cast<SCROW>(nLastRow), aMarkData, EMPTY_STRING,
-- pErgebnis );
-+ static_cast<SCROW>(nLastRow), aMarkData,
-+ EMPTY_STRING, pErgebnis );
- }
- }
-
-@@ -1220,8 +1220,8 @@ void ImportExcel::Array34( void )
- aMarkData.SelectOneTable( GetCurrScTab() );
- pD->InsertMatrixFormula( static_cast<SCCOL>(nFirstCol),
- static_cast<SCROW>(nFirstRow), static_cast<SCCOL>(nLastCol),
-- static_cast<SCROW>(nLastRow), aMarkData, EMPTY_STRING,
-- pErgebnis);
-+ static_cast<SCROW>(nLastRow), aMarkData,
-+ EMPTY_STRING, pErgebnis);
- }
-
- pLastFormCell = NULL;
-Index: sc/source/filter/excel/read.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/excel/read.cxx,v
-retrieving revision 1.55
-retrieving revision 1.55.22.1
-diff -u -w -p -r1.55 -r1.55.22.1
---- sc/source/filter/excel/read.cxx 28 Sep 2005 11:44:16 -0000 1.55
-+++ sc/source/filter/excel/read.cxx 26 Nov 2005 04:04:15 -0000 1.55.22.1
-@@ -1232,6 +1232,7 @@ FltError ImportExcel8::Read( void )
- switch( nRecId )
- {
- case 0x000C: Calccount(); break; // CALCCOUNT
-+ case 0x000F: RefMode(); break; // REFMODE
- case 0x0010: Delta(); break; // DELTA
- case 0x0011: Iteration(); break; // ITERATION
- case 0x0200: Dimensions(); break; // DIMENSIONS [ 8 ]
-Index: sc/source/filter/excel/xlformula.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/excel/xlformula.cxx,v
-retrieving revision 1.11
-retrieving revision 1.10.20.5
-diff -u -w -p -r1.11 -r1.10.20.5
---- sc/source/filter/excel/xlformula.cxx 21 Oct 2005 12:01:01 -0000 1.11
-+++ sc/source/filter/excel/xlformula.cxx 28 Nov 2005 18:01:08 -0000 1.10.20.5
-@@ -177,7 +177,8 @@ static const XclFunctionInfo saFuncTable
- { ocLIA, 142, 3, 3, V, { V } },
- { ocDIA, 143, 4, 4, V, { V } },
- { ocGDA, 144, 4, 5, V, { V } },
-- { ocIndirect, 148, 1, 2, R, { V }, EXC_FUNCFLAG_VOLATILE },
-+ { ocIndirectXL, 148, 1, 2, R, { V }, EXC_FUNCFLAG_VOLATILE },
-+ { ocIndirect, 148, 1, 2, R, { V }, EXC_FUNCFLAG_VOLATILE | EXC_FUNCFLAG_EXPORTONLY },
- { ocClean, 162, 1, 1, V, { V } },
- { ocMatDet, 163, 1, 1, V, { A } },
- { ocMatInv, 164, 1, 1, A, { A } },
-@@ -209,7 +210,8 @@ static const XclFunctionInfo saFuncTable
- { ocRKP, 51, 1, 4, A, { R, R, V, V } }, // BIFF2: 1-2, BIFF3: 1-4
- { ocGrowth, 52, 1, 4, A, { R, R, R, V } }, // BIFF2: 1-3, BIFF3: 1-4
- { ocTrunc, 197, 1, 2, V, { V } }, // BIFF2: 1, BIFF3: 1-2
-- { ocAdress, 219, 2, 5, V, { V, V, V, E, V } },
-+ { ocAdressXL, 219, 2, 5, V, { V, V, V, V, V } },
-+ { ocAdress, 219, 2, 5, V, { V, V, V, E, V }, EXC_FUNCFLAG_EXPORTONLY },
- { ocGetDiffDate360, 220, 2, 2, V, { V, V, C, I } },
- { ocGetActDate, 221, 0, 0, V, {}, EXC_FUNCFLAG_VOLATILE },
- { ocVBD, 222, 5, 7, V, { V } },
-Index: sc/source/filter/inc/excimp8.hxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/inc/excimp8.hxx,v
-retrieving revision 1.62
-retrieving revision 1.62.22.1
-diff -u -w -p -r1.62 -r1.62.22.1
---- sc/source/filter/inc/excimp8.hxx 28 Sep 2005 11:56:32 -0000 1.62
-+++ sc/source/filter/inc/excimp8.hxx 25 Nov 2005 04:44:43 -0000 1.62.22.1
-@@ -78,6 +78,7 @@ class ImportExcel8 : public ImportExcel
- void RecString( void ); // 0x07
- void Calccount( void ); // 0x0C
- void Precision( void ); // 0x0E
-+ void RefMode( void ); // 0x0F
- void Delta( void ); // 0x10
- void Iteration( void ); // 0x11
- void Note( void ); // 0x1C
-Index: sc/source/filter/inc/xcl97dum.hxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/inc/xcl97dum.hxx,v
-retrieving revision 1.8
-retrieving revision 1.8.40.1
-diff -u -w -p -r1.8 -r1.8.40.1
---- sc/source/filter/inc/xcl97dum.hxx 8 Sep 2005 19:26:42 -0000 1.8
-+++ sc/source/filter/inc/xcl97dum.hxx 25 Nov 2005 04:44:43 -0000 1.8.40.1
-@@ -94,17 +94,6 @@ private:
- public:
- virtual ULONG GetLen() const;
- virtual const BYTE* GetData() const;
--};
--
--
--class XclRefmode : public ExcDummyRec
--{
--private:
-- static const BYTE pMyData[];
-- static const ULONG nMyLen;
--public:
-- virtual ULONG GetLen( void ) const;
-- virtual const BYTE* GetData( void ) const;
- };
-
-
-Index: sc/source/filter/inc/xcl97rec.hxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/inc/xcl97rec.hxx,v
-retrieving revision 1.44
-retrieving revision 1.44.22.2
-diff -u -w -p -r1.44 -r1.44.22.2
---- sc/source/filter/inc/xcl97rec.hxx 28 Sep 2005 11:58:16 -0000 1.44
-+++ sc/source/filter/inc/xcl97rec.hxx 1 Dec 2005 19:52:25 -0000 1.44.22.2
-@@ -505,6 +505,20 @@ public:
- virtual ULONG GetLen( void ) const;
- virtual const BYTE* GetData( void ) const;
- };
-+
-+class XclRefmode : public ExcRecord
-+{
-+private:
-+ UINT16 eConv;
-+protected:
-+ virtual void SaveCont( XclExpStream& rStrm );
-+public:
-+ XclRefmode( ScDocument& rDoc );
-+
-+ virtual UINT16 GetNum() const;
-+ virtual ULONG GetLen() const;
-+};
-+
-
-
- // -------------------------------------------------------------------
-Index: sc/source/filter/lotus/lotform.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/lotus/lotform.cxx,v
-retrieving revision 1.10
-retrieving revision 1.10.40.1
-diff -u -w -p -r1.10 -r1.10.40.1
---- sc/source/filter/lotus/lotform.cxx 8 Sep 2005 19:41:26 -0000 1.10
-+++ sc/source/filter/lotus/lotform.cxx 25 Nov 2005 04:44:44 -0000 1.10.40.1
-@@ -1057,7 +1057,7 @@ DefTokenId LotusToSc::IndexToToken( BYTE
- ocTrue, // 112 W()
- ocExact, // 113 Exact()
- ocNoName, // 114 Call()
-- ocIndirect, // 115 @@()
-+ ocIndirectXL, // 115 @@()
- ocZins, // 116 Rate()
- ocNoName, // 117 Term()
- ocNoName, // 118 Cterm()
-@@ -1588,7 +1588,7 @@ DefTokenId LotusToSc::IndexToTokenWK123(
- ocNoName, // 112 W()
- ocExact, // 113 Exact()
- ocNoName, // 114 Call()
-- ocIndirect, // 115 @@()
-+ ocIndirectXL, // 115 @@()
- ocZins, // 116 Rate()
- ocNoName, // 117 Term()
- ocNoName, // 118 Cterm()
-Index: sc/source/filter/xcl97/xcl97dum.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/xcl97/xcl97dum.cxx,v
-retrieving revision 1.17
-retrieving revision 1.17.22.1
-diff -u -w -p -r1.17 -r1.17.22.1
---- sc/source/filter/xcl97/xcl97dum.cxx 28 Sep 2005 12:04:38 -0000 1.17
-+++ sc/source/filter/xcl97/xcl97dum.cxx 25 Nov 2005 04:44:44 -0000 1.17.22.1
-@@ -105,10 +105,6 @@ const BYTE ExcDummy8_02::pMyData[] = {
- const ULONG ExcDummy8_02::nMyLen = sizeof(ExcDummy8_02::pMyData);
-
-
--const BYTE XclRefmode::pMyData[] = { 0x0f, 0x00, 0x02, 0x00, 0x01, 0x00 }; // REFMODE
--const ULONG XclRefmode::nMyLen = sizeof( XclRefmode::pMyData );
--
--
- // --- class ExcDummy8_xx --------------------------------------------
-
- ULONG ExcDummy8_00a::GetLen() const
-@@ -173,19 +169,4 @@ const BYTE* ExcDummy8_02::GetData() cons
- {
- return pMyData;
- }
--
--
--
--ULONG XclRefmode::GetLen( void ) const
--{
-- return nMyLen;
--}
--
--
--const BYTE* XclRefmode::GetData( void ) const
--{
-- return pMyData;
--}
--
--
-
-Index: sc/source/filter/xcl97/xcl97rec.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/xcl97/xcl97rec.cxx,v
-retrieving revision 1.79
-retrieving revision 1.79.16.2
-diff -u -w -p -r1.79 -r1.79.16.2
---- sc/source/filter/xcl97/xcl97rec.cxx 6 Oct 2005 11:10:35 -0000 1.79
-+++ sc/source/filter/xcl97/xcl97rec.cxx 1 Dec 2005 19:52:25 -0000 1.79.16.2
-@@ -1303,6 +1303,28 @@ const BYTE* XclProtection::GetData( void
-
-
-
-+void XclRefmode::SaveCont( XclExpStream& rStrm )
-+{
-+ rStrm << eConv;
-+}
-+
-+
-+XclRefmode::XclRefmode( ScDocument& rDoc )
-+{
-+ eConv = (rDoc.GetAddressConvention() == ScAddress::CONV_XL_R1C1) ? 0 : 1;
-+}
-+
-+
-+UINT16 XclRefmode::GetNum() const
-+{
-+ return 0x000f;
-+}
-+
-+
-+ULONG XclRefmode::GetLen() const
-+{
-+ return 2;
-+}
-
-
-
-Index: sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx,v
-retrieving revision 1.22
-retrieving revision 1.22.38.1
-diff -u -w -p -r1.22 -r1.22.38.1
---- sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx 8 Sep 2005 19:50:00 -0000 1.22
-+++ sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx 25 Nov 2005 04:44:45 -0000 1.22.38.1
-@@ -108,7 +108,7 @@ ScBaseCell* ScMyCellInfo::CreateCell(ScD
- ScAddress aPos;
- sal_Int32 nOffset(0);
- ScXMLConverter::GetAddressFromString(aPos, sFormulaAddress, pDoc, nOffset);
-- pCell = new ScFormulaCell(pDoc, aPos, sFormula, nMatrixFlag);
-+ pCell = new ScFormulaCell(pDoc, aPos, sFormula, ScAddress::CONV_OOO, nMatrixFlag);
- static_cast<ScFormulaCell*>(pCell)->SetMatColsRows(static_cast<SCCOL>(nMatrixCols), static_cast<SCROW>(nMatrixRows));
- }
-
-@@ -776,11 +776,11 @@ void ScXMLChangeTrackingImportHelper::Se
- {
- sal_uInt8 nMatrixFlag = static_cast<ScFormulaCell*>(pCell)->GetMatrixFlag();
- String sFormula;
-- static_cast<ScFormulaCell*>(pCell)->GetFormula(sFormula);
-+ static_cast<ScFormulaCell*>(pCell)->GetFormula(sFormula, ScAddress::CONV_OOO);
- rtl::OUString sOUFormula(sFormula);
- rtl::OUString sOUFormula2(sOUFormula.copy(2, sOUFormula.getLength() - 3));
- String sFormula2(sOUFormula2);
-- pNewCell = new ScFormulaCell(pDoc, aAddress, sFormula2, nMatrixFlag);
-+ pNewCell = new ScFormulaCell(pDoc, aAddress, sFormula2, ScAddress::CONV_OOO, nMatrixFlag);
- if (pNewCell)
- {
- if (nMatrixFlag == MM_FORMULA)
-Index: sc/source/filter/xml/XMLConverter.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/xml/XMLConverter.cxx,v
-retrieving revision 1.23
-retrieving revision 1.23.38.1
-diff -u -w -p -r1.23 -r1.23.38.1
---- sc/source/filter/xml/XMLConverter.cxx 8 Sep 2005 19:51:28 -0000 1.23
-+++ sc/source/filter/xml/XMLConverter.cxx 25 Nov 2005 04:44:46 -0000 1.23.38.1
-@@ -362,8 +362,10 @@ void ScXMLConverter::GetStringFromRange(
- ScAddress aEndAddress( rRange.aEnd );
- String sStartAddress;
- String sEndAddress;
-- aStartAddress.Format( sStartAddress, nFormatFlags, (ScDocument*) pDocument );
-- aEndAddress.Format( sEndAddress, nFormatFlags, (ScDocument*) pDocument );
-+ aStartAddress.Format( sStartAddress, nFormatFlags, (ScDocument*) pDocument,
-+ ScAddress::CONV_OOO );
-+ aEndAddress.Format( sEndAddress, nFormatFlags, (ScDocument*) pDocument,
-+ ScAddress::CONV_OOO );
- OUString sOUStartAddress( sStartAddress );
- sOUStartAddress += GetXMLToken( XML__COLON );
- sOUStartAddress += OUString( sEndAddress );
-Index: sc/source/ui/Accessibility/AccessibleCellBase.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/Accessibility/AccessibleCellBase.cxx,v
-retrieving revision 1.16
-retrieving revision 1.16.40.1
-diff -u -w -p -r1.16 -r1.16.40.1
---- sc/source/ui/Accessibility/AccessibleCellBase.cxx 8 Sep 2005 20:16:00 -0000 1.16
-+++ sc/source/ui/Accessibility/AccessibleCellBase.cxx 25 Nov 2005 04:44:46 -0000 1.16.40.1
-@@ -268,6 +268,7 @@ sal_Int32
- String sName( ScResId(STR_ACC_CELL_NAME) );
- String sAddress;
- // Document not needed, because only the cell address, but not the tablename is needed
-+ // always us OOO notation
- maCellAddress.Format( sAddress, SCA_VALID, NULL );
- sName.SearchAndReplaceAscii("%1", sAddress);
- return rtl::OUString(sName);
-Index: sc/source/ui/app/inputhdl.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/app/inputhdl.cxx,v
-retrieving revision 1.60
-retrieving revision 1.60.36.3
-diff -u -w -p -r1.60 -r1.60.36.3
---- sc/source/ui/app/inputhdl.cxx 8 Sep 2005 20:22:13 -0000 1.60
-+++ sc/source/ui/app/inputhdl.cxx 1 Dec 2005 19:52:27 -0000 1.60.36.3
-@@ -168,13 +168,27 @@ void ScInputHandler::InitRangeFinder( co
-
- // Text zwischen Trennern
- nStart = nPos;
-+handle_r1c1:
- while ( nPos<nLen && !ScGlobal::UnicodeStrChr( aDelimiters.GetBuffer(), pChar[nPos] ) )
- ++nPos;
-
-+ // for R1C1 '-' in R[-]... or C[-]... are not delimiters
-+ // Nothing heroic here to ensure that there are '[]' around a negative
-+ // integer. we need to clean up this code.
-+ if( nPos < nLen && nPos > 0 &&
-+ '-' == pChar[nPos] && '[' == pChar[nPos-1] &&
-+ NULL != pDoc &&
-+ ScAddress::CONV_XL_R1C1 == pDoc->GetAddressConvention() )
-+ {
-+ nPos++;
-+ goto handle_r1c1;
-+ }
-+
- if ( nPos > nStart )
- {
- String aTest = rFormula.Copy( nStart, nPos-nStart );
-- USHORT nFlags = aRange.ParseAny( aTest, pDoc );
-+ const ScAddress::Details aAddrDetails( pDoc, aCursorPos );
-+ USHORT nFlags = aRange.ParseAny( aTest, pDoc, aAddrDetails );
- if ( nFlags & SCA_VALID )
- {
- // Tabelle setzen, wenn nicht angegeben
-@@ -246,7 +260,9 @@ void ScInputHandler::UpdateRange( USHORT
- ScRange aJustified = rNew;
- aJustified.Justify(); // Ref in der Formel immer richtigherum anzeigen
- String aNewStr;
-- aJustified.Format( aNewStr, pData->nFlags, pDocView->GetViewData()->GetDocument() );
-+ ScDocument* pDoc = pDocView->GetViewData()->GetDocument();
-+ const ScAddress::Details aAddrDetails( pDoc, aCursorPos );
-+ aJustified.Format( aNewStr, pData->nFlags, pDoc, aAddrDetails );
- ESelection aOldSel( 0, nOldStart, 0, nOldEnd );
-
- DataChanging();
-@@ -2435,6 +2451,7 @@ void ScInputHandler::SetReference( const
- // String aus Referenz erzeugen
-
- String aRefStr;
-+ const ScAddress::Details aAddrDetails( pDoc, aCursorPos );
- if (bOtherDoc)
- {
- // Referenz auf anderes Dokument
-@@ -2442,7 +2459,7 @@ void ScInputHandler::SetReference( const
- DBG_ASSERT(rRef.aStart.Tab()==rRef.aEnd.Tab(), "nStartTab!=nEndTab");
-
- String aTmp;
-- rRef.Format( aTmp, SCA_VALID|SCA_TAB_3D, pDoc ); // immer 3d
-+ rRef.Format( aTmp, SCA_VALID|SCA_TAB_3D, pDoc, aAddrDetails ); // immer 3d
-
- SfxObjectShell* pObjSh = pDoc->GetDocumentShell();
- String aFileName = pObjSh->GetMedium()->GetName();
-@@ -2456,9 +2473,9 @@ void ScInputHandler::SetReference( const
- {
- if ( ( rRef.aStart.Tab() != aCursorPos.Tab() ||
- rRef.aStart.Tab() != rRef.aEnd.Tab() ) && pDoc )
-- rRef.Format( aRefStr, SCA_VALID|SCA_TAB_3D, pDoc );
-+ rRef.Format( aRefStr, SCA_VALID|SCA_TAB_3D, pDoc, aAddrDetails );
- else
-- rRef.Format( aRefStr, SCA_VALID );
-+ rRef.Format( aRefStr, SCA_VALID, pDoc, aAddrDetails );
- }
-
- if (pTableView || pTopView)
-@@ -2951,6 +2968,8 @@ void ScInputHandler::NotifyChange( const
- const EditTextObject* pData = pState->GetEditData();
- String aString = pState->GetString();
- BOOL bTxtMod = FALSE;
-+ ScDocShell* pDocSh = pActiveViewSh->GetViewData()->GetDocShell();
-+ ScDocument* pDoc = pDocSh->GetDocument();
-
- aCursorPos = pState->GetPos();
-
-@@ -2986,6 +3005,7 @@ void ScInputHandler::NotifyChange( const
- if ( pInputWin ) // Bereichsanzeige
- {
- String aPosStr;
-+ const ScAddress::Details aAddrDetails( pDoc, aCursorPos );
-
- // Ist der Bereich ein Name?
- //! per Timer suchen ???
-@@ -2998,14 +3018,11 @@ void ScInputHandler::NotifyChange( const
- {
- if ( rSPos != rEPos )
- {
-- String aStr;
-- rSPos.Format( aPosStr, SCA_VALID );
-- aPosStr += ':';
-- rEPos.Format( aStr, SCA_VALID );
-- aPosStr += aStr;
-+ ScRange r(rSPos, rEPos);
-+ r.Format( aPosStr, SCA_VALID, pDoc, aAddrDetails );
- }
- else
-- aCursorPos.Format( aPosStr, SCA_VALID );
-+ aCursorPos.Format( aPosStr, SCA_VALID, pDoc, aAddrDetails );
- }
-
- pInputWin->SetPosString(aPosStr);
-Index: sc/source/ui/attrdlg/condfrmt.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/attrdlg/condfrmt.cxx,v
-retrieving revision 1.6
-retrieving revision 1.6.40.2
-diff -u -w -p -r1.6 -r1.6.40.2
---- sc/source/ui/attrdlg/condfrmt.cxx 8 Sep 2005 20:26:42 -0000 1.6
-+++ sc/source/ui/attrdlg/condfrmt.cxx 1 Dec 2005 19:52:27 -0000 1.6.40.2
-@@ -346,7 +346,7 @@ void ScConditionalFormatDlg::SetReferenc
- RefInputStart(pEdActive);
-
- String aStr;
-- rRef.Format( aStr, SCR_ABS_3D, pDoc );
-+ rRef.Format( aStr, SCR_ABS_3D, pDoc, pDoc->GetAddressConvention () );
- String aVal( pEdActive->GetText() );
- Selection aSel( pEdActive->GetSelection() );
- aSel.Justify();
-Index: sc/source/ui/docshell/docfunc.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/docshell/docfunc.cxx,v
-retrieving revision 1.55
-retrieving revision 1.55.22.2
-diff -u -w -p -r1.55 -r1.55.22.2
---- sc/source/ui/docshell/docfunc.cxx 28 Sep 2005 12:09:11 -0000 1.55
-+++ sc/source/ui/docshell/docfunc.cxx 1 Dec 2005 19:52:28 -0000 1.55.22.2
-@@ -2210,6 +2210,42 @@ BOOL ScDocFunc::SetLayoutRTL( SCTAB nTab
- {
- pBindings->Invalidate( FID_TAB_RTL );
- pBindings->Invalidate( SID_ATTR_SIZE );
-+ }
-+
-+ return TRUE;
-+}
-+
-+BOOL ScDocFunc::SetAddressConvention( ScAddress::Convention eConv )
-+{
-+ ScDocument* pDoc = rDocShell.GetDocument();
-+
-+ if ( pDoc->GetAddressConvention() == eConv )
-+ return TRUE;
-+
-+ BOOL bUndo(pDoc->IsUndoEnabled());
-+ ScDocShellModificator aModificator( rDocShell );
-+
-+ pDoc->SetAddressConvention( eConv );
-+
-+ if (bUndo)
-+ {
-+ rDocShell.GetUndoManager()->AddUndoAction( new ScUndoSetAddressConvention( &rDocShell, eConv ) );
-+ }
-+
-+ rDocShell.PostPaint( 0,0,0,MAXCOL,MAXROW,MAXTAB, PAINT_ALL );
-+
-+ ScTabViewShell* pViewSh = ScTabViewShell::GetActiveViewShell();
-+ if (NULL != pViewSh)
-+ {
-+ pViewSh->UpdateInputHandler( FALSE, FALSE );
-+ }
-+
-+ aModificator.SetDocumentModified();
-+
-+ SfxBindings* pBindings = rDocShell.GetViewBindings();
-+ if (pBindings)
-+ {
-+ pBindings->Invalidate( FID_TAB_USE_R1C1 );
- }
-
- return TRUE;
-Index: sc/source/ui/inc/colrowba.hxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/inc/colrowba.hxx,v
-retrieving revision 1.4
-retrieving revision 1.4.40.1
-diff -u -w -p -r1.4 -r1.4.40.1
---- sc/source/ui/inc/colrowba.hxx 8 Sep 2005 21:15:24 -0000 1.4
-+++ sc/source/ui/inc/colrowba.hxx 25 Nov 2005 04:44:50 -0000 1.4.40.1
-@@ -79,6 +79,8 @@ public:
- virtual void DrawInvert( long nDragPos );
-
- virtual String GetDragHelp( long nVal );
-+
-+ BOOL UseNumericHeader() const;
- };
-
-
-Index: sc/source/ui/inc/docfunc.hxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/inc/docfunc.hxx,v
-retrieving revision 1.12
-retrieving revision 1.12.40.2
-diff -u -w -p -r1.12 -r1.12.40.2
---- sc/source/ui/inc/docfunc.hxx 8 Sep 2005 21:21:03 -0000 1.12
-+++ sc/source/ui/inc/docfunc.hxx 1 Dec 2005 19:52:29 -0000 1.12.40.2
-@@ -126,6 +126,8 @@ public:
- BOOL SetTableVisible( SCTAB nTab, BOOL bVisible, BOOL bApi );
-
- BOOL SetLayoutRTL( SCTAB nTab, BOOL bRTL, BOOL bApi );
-+
-+ BOOL SetAddressConvention( ScAddress::Convention eConv );
-
- BOOL SetWidthOrHeight( BOOL bWidth, SCCOLROW nRangeCnt, SCCOLROW* pRanges,
- SCTAB nTab, ScSizeMode eMode, USHORT nSizeTwips,
-Index: sc/source/ui/inc/transobj.hxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/inc/transobj.hxx,v
-retrieving revision 1.14
-retrieving revision 1.14.40.2
-diff -u -w -p -r1.14 -r1.14.40.2
---- sc/source/ui/inc/transobj.hxx 8 Sep 2005 22:01:04 -0000 1.14
-+++ sc/source/ui/inc/transobj.hxx 1 Dec 2005 19:52:29 -0000 1.14.40.2
-Index: sc/source/ui/inc/undoblk.hxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/inc/undoblk.hxx,v
-retrieving revision 1.13
-retrieving revision 1.12.36.3
-diff -u -w -p -r1.13 -r1.12.36.3
---- sc/source/ui/inc/undoblk.hxx 21 Oct 2005 12:05:00 -0000 1.13
-+++ sc/source/ui/inc/undoblk.hxx 1 Dec 2005 19:52:29 -0000 1.12.36.3
-@@ -718,6 +718,7 @@ public:
- private:
- ScDocument* pUndoDoc;
- String aFormula;
-+ ScAddress::Convention eConv;
- ULONG nStartChangeAction;
- ULONG nEndChangeAction;
-
-Index: sc/source/ui/inc/undotab.hxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/inc/undotab.hxx,v
-retrieving revision 1.8
-retrieving revision 1.8.38.2
-diff -u -w -p -r1.8 -r1.8.38.2
---- sc/source/ui/inc/undotab.hxx 8 Sep 2005 22:03:47 -0000 1.8
-+++ sc/source/ui/inc/undotab.hxx 1 Dec 2005 19:52:30 -0000 1.8.38.2
-@@ -478,6 +478,26 @@ private:
- };
-
-
-+class ScUndoSetAddressConvention : public ScSimpleUndo
-+{
-+public:
-+ TYPEINFO();
-+ ScUndoSetAddressConvention( ScDocShell* pShell,
-+ ScAddress::Convention eConv );
-+ virtual ~ScUndoSetAddressConvention();
-+
-+ virtual void Undo();
-+ virtual void Redo();
-+ virtual void Repeat(SfxRepeatTarget& rTarget);
-+ virtual BOOL CanRepeat(SfxRepeatTarget& rTarget) const;
-+
-+ virtual String GetComment() const;
-+
-+private:
-+ ScAddress::Convention eNewConv, eOldConv;
-+
-+ void DoChange( ScAddress::Convention eConv );
-+};
-
- #endif
-
-Index: sc/source/ui/src/globstr.src
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/src/globstr.src,v
-retrieving revision 1.63
-retrieving revision 1.63.24.1
-diff -u -w -p -r1.63 -r1.63.24.1
---- sc/source/ui/src/globstr.src 23 Sep 2005 15:06:42 -0000 1.63
-+++ sc/source/ui/src/globstr.src 18 Nov 2005 15:50:47 -0000 1.63.24.1
-@@ -1798,6 +1798,10 @@ Resource RID_GLOBSTR
- {
- Text [ de ] = "Tabelle wenden" ;
- Text [ en-US ] = "Flip sheet" ;
-+ };
-+ String STR_UNDO_TAB_R1C1
-+ {
-+ Text [ en-US ] = "Toggle the use of R1C1 notation" ;
- };
- String STR_CHART_MAINTITLE
- {
-Index: sc/source/ui/src/menue.src
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/src/menue.src,v
-retrieving revision 1.115
-retrieving revision 1.115.24.2
-diff -u -w -p -r1.115 -r1.115.24.2
---- sc/source/ui/src/menue.src 23 Sep 2005 15:07:14 -0000 1.115
-+++ sc/source/ui/src/menue.src 25 Nov 2005 04:44:54 -0000 1.115.24.2
-@@ -409,6 +409,14 @@ Menu RID_OBJECTMENU_CELLS
- Text [ de ] = "~Rechts-nach-links" ;
- Text [ en-US ] = "R~ight-To-Left" ;
- };
-+ MenuItem
-+ {
-+ Identifier = FID_TAB_USE_R1C1 ;
-+ HelpId = FID_TAB_USE_R1C1 ;
-+ Text [ de ] = "R1C1" ;
-+ Text [ en-US ] = "Use R1~C1" ;
-+ Text [ x-comment ] = " ";
-+ };
- };
- };
- Text [ x-comment ] = " ";
-@@ -715,6 +723,14 @@ Menu RID_OBJECTMENU_EDIT
- HelpId = FID_TAB_RTL ;
- Text [ de ] = "~Rechts-nach-links" ;
- Text [ en-US ] = "R~ight-To-Left" ;
-+ };
-+ MenuItem
-+ {
-+ Identifier = FID_TAB_USE_R1C1 ;
-+ HelpId = FID_TAB_USE_R1C1 ;
-+ Text [ de ] = "R1C1" ;
-+ Text [ en-US ] = "Use R1~C1" ;
-+ Text [ x-comment ] = " ";
- };
- };
- };
-Index: sc/source/ui/src/scfuncs.src
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/src/scfuncs.src,v
-retrieving revision 1.85
-retrieving revision 1.84.22.2
-diff -u -w -p -r1.85 -r1.84.22.2
---- sc/source/ui/src/scfuncs.src 21 Oct 2005 12:08:35 -0000 1.85
-+++ sc/source/ui/src/scfuncs.src 28 Nov 2005 16:06:41 -0000 1.84.22.2
-@@ -9049,6 +9049,81 @@ Resource RID_SC_FUNCTION_DESCRIPTIONS2
- Text [ x-comment ] = " ";
- };
- };
-+ Resource SC_OPCODE_ADRESS_XL
-+ {
-+ String 1 // Description
-+ {
-+ Text [ de ] = "Bestimmt den Bezug auf eine Zelle als Text." ;
-+ Text [ en-US ] = "Returns the reference to a cell as text." ;
-+ Text [ x-comment ] = " ";
-+ };
-+ ExtraData =
-+ {
-+ ID_FUNCTION_GRP_TABLE;
-+ U2S( HID_FUNC_ADRESSE_XL );
-+ 5; 0; 0; 1; 1; 1;
-+ };
-+ String 2 // Name of Parameter 1
-+ {
-+ Text [ de ] = "Zeile" ;
-+ Text [ en-US ] = "row" ;
-+ Text [ x-comment ] = " ";
-+ };
-+ String 3 // Description of Parameter 1
-+ {
-+ Text [ de ] = "Die Zeilennummer der Zelle." ;
-+ Text [ en-US ] = "The row number of the cell." ;
-+ Text [ x-comment ] = " ";
-+ };
-+ String 4 // Name of Parameter 2
-+ {
-+ Text [ de ] = "Spalte" ;
-+ Text [ en-US ] = "column" ;
-+ Text [ x-comment ] = " ";
-+ };
-+ String 5 // Description of Parameter 2
-+ {
-+ Text [ de ] = "Die Spaltennummer der Zelle." ;
-+ Text [ en-US ] = "The column number of the cell." ;
-+ Text [ x-comment ] = " ";
-+ };
-+ String 6 // Name of Parameter 3
-+ {
-+ Text [ de ] = "ABS" ;
-+ Text [ en-US ] = "ABS" ;
-+ Text [ x-comment ] = " ";
-+ };
-+ String 7 // Description of Parameter 3
-+ {
-+ Text [ de ] = "Gibt an, ob absolute oder relative Referenzierung verwendet wird." ;
-+ Text [ en-US ] = "Specifies whether absolute or relative referencing is to be used." ;
-+ Text [ x-comment ] = " ";
-+ };
-+ String 8 // Name of Parameter 4
-+ {
-+ Text [ de ] = " ";
-+ Text [ en-US ] = "A1";
-+ Text [ x-comment ] = " ";
-+ };
-+ String 9 // Description of Parameter 4
-+ {
-+ Text [ de ] = " ";
-+ Text [ en-US ] = "If TRUE (or 1) or omitted generate A1 style address, otherwise produce R1C1 style address.";
-+ Text [ x-comment ] = " ";
-+ };
-+ String 10 // Name of Parameter 5
-+ {
-+ Text [ de ] = "Tabelle" ;
-+ Text [ en-US ] = "sheet" ;
-+ Text [ x-comment ] = " ";
-+ };
-+ String 11 // Description of Parameter 5
-+ {
-+ Text [ de ] = "Der Tabellenname des Zellbezugs." ;
-+ Text [ en-US ] = "The spreadsheet name of the cell reference." ;
-+ Text [ x-comment ] = " ";
-+ };
-+ };
- // -=*# Resource for function BEREICHE #*=-
- Resource SC_OPCODE_AREAS
- {
-@@ -9511,6 +9586,46 @@ Resource RID_SC_FUNCTION_DESCRIPTIONS2
- {
- Text [ de ] = "Die Zelle, deren Inhalt ausgewertet werden soll als Bezug in Textform (z.B. \"A1\")." ;
- Text [ en-US ] = "The cell whose contents are to be evaluated is to be referenced in text form (e.g. \"A1\")." ;
-+ Text [ x-comment ] = " ";
-+ };
-+ };
-+ // -=*# Resource for function INDIREKT_XL #*=-
-+ Resource SC_OPCODE_INDIRECT_XL
-+ {
-+ String 1 // Description
-+ {
-+ Text [ de ] = "Bestimmt den Inhalt einer als Bezug in MS Excel (tm) Textform angegebenen Zelle." ;
-+ Text [ en-US ] = "Returns the contents of a cell that is referenced in MS Excel (tm) text form." ;
-+ Text [ x-comment ] = " ";
-+ };
-+ ExtraData =
-+ {
-+ ID_FUNCTION_GRP_TABLE;
-+ U2S( HID_FUNC_INDIREKT_XL );
-+ 2; 0; 1;
-+ };
-+ String 2 // Name of Parameter 1
-+ {
-+ Text [ de ] = "Bezug" ;
-+ Text [ en-US ] = "ref " ;
-+ Text [ x-comment ] = " ";
-+ };
-+ String 3 // Description of Parameter 1
-+ {
-+ Text [ de ] = "Die Zelle, deren Inhalt ausgewertet werden soll als Bezug in MS Excel (tm) Textform (z.B. \"Sheet!A1\")." ;
-+ Text [ en-US ] = "The cell whose contents are to be evaluated is to be referenced in MS Excel (tm) text form (e.g. \"Sheet!A1\")." ;
-+ Text [ x-comment ] = " ";
-+ };
-+ String 4 // Name of Parameter 2
-+ {
-+ Text [ de ] = "'Adressformat'" ;
-+ Text [ en-US ] = "Format" ;
-+ Text [ x-comment ] = " ";
-+ };
-+ String 5 // Description of Parameter 2
-+ {
-+ Text [ de ] = "Verwendete Adressierungsart. TRUE für A1, FALSE für R1C1. Der Default ist A1." ;
-+ Text [ en-US ] = "What address format to expect. TRUE for A1, FALSE for R1C1. Defaults to A1." ;
- Text [ x-comment ] = " ";
- };
- };
-Index: sc/source/ui/undo/undotab.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/undo/undotab.cxx,v
-retrieving revision 1.12
-retrieving revision 1.12.22.2
-diff -u -w -p -r1.12 -r1.12.22.2
---- sc/source/ui/undo/undotab.cxx 28 Sep 2005 12:14:14 -0000 1.12
-+++ sc/source/ui/undo/undotab.cxx 1 Dec 2005 19:52:30 -0000 1.12.22.2
-@@ -96,6 +96,7 @@ TYPEINIT1(ScUndoPrintRange, SfxUndoActi
- TYPEINIT1(ScUndoScenarioFlags, SfxUndoAction);
- TYPEINIT1(ScUndoRenameObject, SfxUndoAction);
- TYPEINIT1(ScUndoLayoutRTL, SfxUndoAction);
-+TYPEINIT1(ScUndoSetAddressConvention, SfxUndoAction);
-
-
- // -----------------------------------------------------------------------
-@@ -1540,6 +1541,62 @@ String __EXPORT ScUndoLayoutRTL::GetComm
- {
- return ScGlobal::GetRscString( STR_UNDO_TAB_RTL );
- }
-+
-+
-+
-+// -----------------------------------------------------------------------
-+//
-+// Set the address convention used for the sheet
-+//
-+
-+ScUndoSetAddressConvention::ScUndoSetAddressConvention( ScDocShell* pShell,
-+ ScAddress::Convention eConv ) :
-+ ScSimpleUndo( pShell ),
-+ eNewConv( eConv )
-+{
-+ eOldConv = pDocShell->GetDocument()->GetAddressConvention();
-+}
-+
-+__EXPORT ScUndoSetAddressConvention::~ScUndoSetAddressConvention()
-+{
-+}
-+
-+void ScUndoSetAddressConvention::DoChange( ScAddress::Convention eConv )
-+{
-+ pDocShell->SetInUndo( TRUE );
-+ ScDocument* pDoc = pDocShell->GetDocument();
-+ pDoc->SetAddressConvention( eConv );
-+ pDocShell->SetDocumentModified();
-+ pDocShell->SetInUndo( FALSE );
-+}
-+
-+void __EXPORT ScUndoSetAddressConvention::Undo()
-+{
-+ DoChange( eOldConv );
-+}
-+
-+void __EXPORT ScUndoSetAddressConvention::Redo()
-+{
-+ DoChange( eNewConv );
-+}
-+
-+void __EXPORT ScUndoSetAddressConvention::Repeat(SfxRepeatTarget& rTarget)
-+{
-+ if (rTarget.ISA(ScTabViewTarget))
-+ ((ScTabViewTarget&)rTarget).GetViewShell()->GetViewData()->GetDispatcher().
-+ Execute( FID_TAB_USE_R1C1, SFX_CALLMODE_SLOT | SFX_CALLMODE_RECORD);
-+}
-+
-+BOOL __EXPORT ScUndoSetAddressConvention::CanRepeat(SfxRepeatTarget& rTarget) const
-+{
-+ return (rTarget.ISA(ScTabViewTarget));
-+}
-+
-+String __EXPORT ScUndoSetAddressConvention::GetComment() const
-+{
-+ return ScGlobal::GetRscString( STR_UNDO_TAB_R1C1 );
-+}
-+
-
-
-
-Index: sc/source/ui/view/colrowba.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/view/colrowba.cxx,v
-retrieving revision 1.13
-retrieving revision 1.13.38.2
-diff -u -w -p -r1.13 -r1.13.38.2
---- sc/source/ui/view/colrowba.cxx 8 Sep 2005 22:54:00 -0000 1.13
-+++ sc/source/ui/view/colrowba.cxx 1 Dec 2005 19:52:31 -0000 1.13.38.2
-@@ -96,6 +96,11 @@ ScColBar::~ScColBar()
- {
- }
-
-+inline BOOL ScColBar::UseNumericHeader() const
-+{
-+ return pViewData->GetDocument()->GetAddressConvention() == ScAddress::CONV_XL_R1C1;
-+}
-+
- SCCOLROW ScColBar::GetPos()
- {
- return pViewData->GetPosX(eWhich);
-@@ -113,7 +118,9 @@ USHORT ScColBar::GetEntrySize( SCCOLROW
-
- String ScColBar::GetEntryText( SCCOLROW nEntryNo )
- {
-- return ColToAlpha( static_cast<SCCOL>(nEntryNo) );
-+ return UseNumericHeader()
-+ ? String::CreateFromInt32( nEntryNo + 1 )
-+ : ColToAlpha( static_cast<SCCOL>(nEntryNo) );
- }
-
- void ScColBar::SetEntrySize( SCCOLROW nPos, USHORT nNewSize )
-Index: sc/source/ui/view/tabvwshf.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/view/tabvwshf.cxx,v
-retrieving revision 1.10
-retrieving revision 1.10.38.2
-diff -u -w -p -r1.10 -r1.10.38.2
---- sc/source/ui/view/tabvwshf.cxx 8 Sep 2005 23:11:50 -0000 1.10
-+++ sc/source/ui/view/tabvwshf.cxx 1 Dec 2005 19:52:31 -0000 1.10.38.2
-@@ -688,6 +688,17 @@ void ScTabViewShell::ExecuteTable( SfxRe
- }
- break;
-
-+ case FID_TAB_USE_R1C1:
-+ {
-+ ScDocFunc aFunc( *pViewData->GetDocShell() );
-+ const ScAddress::Convention eConv =
-+ (pDoc->GetAddressConvention() == ScAddress::CONV_OOO)
-+ ? ScAddress::CONV_XL_R1C1 : ScAddress::CONV_OOO ;
-+
-+ aFunc.SetAddressConvention( eConv );
-+ }
-+ break;
-+
- default:
- DBG_ERROR("Unbekannte Message bei ViewShell");
- break;
-@@ -805,6 +816,13 @@ void ScTabViewShell::GetStateTable( SfxI
- rSet.DisableItem( nWhich );
- else
- rSet.Put( SfxBoolItem( nWhich, pDoc->IsLayoutRTL( nTab ) ) );
-+ }
-+ break;
-+
-+ case FID_TAB_USE_R1C1:
-+ {
-+ const ScAddress::Convention eConv = pDoc->GetAddressConvention();
-+ rSet.Put( SfxBoolItem( nWhich, eConv == ScAddress::CONV_XL_R1C1 ) );
- }
- break;
- }
-Index: sc/source/ui/view/viewfunc.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/view/viewfunc.cxx,v
-retrieving revision 1.30
-retrieving revision 1.29.20.2
-diff -u -w -p -r1.30 -r1.29.20.2
---- sc/source/ui/view/viewfunc.cxx 21 Oct 2005 12:10:08 -0000 1.30
-+++ sc/source/ui/view/viewfunc.cxx 28 Nov 2005 16:09:12 -0000 1.29.20.2
-@@ -830,7 +830,7 @@ void ScViewFunc::EnterMatrix( const Stri
- SCCOL nCol = pData->GetCurX();
- SCROW nRow = pData->GetCurY();
- SCTAB nTab = pData->GetTabNo();
-- ScFormulaCell aFormCell( pDoc, ScAddress(nCol,nRow,nTab), rString, MM_FORMULA );
-+ ScFormulaCell aFormCell( pDoc, ScAddress(nCol,nRow,nTab), rString, ScAddress::CONV_UNSPECIFIED, MM_FORMULA );
-
- SCSIZE nSizeX;
- SCSIZE nSizeY;
-Index: sc/uiconfig/scalc/menubar/menubar.xml
-===================================================================
-RCS file: /cvs/sc/sc/uiconfig/scalc/menubar/menubar.xml,v
-retrieving revision 1.21
-retrieving revision 1.20.236.2
-diff -u -w -p -r2.21 -r1.20.236.2
---- sc/uiconfig/scalc/menubar/menubar.xml 16 Nov 2005 10:15:26 -0000 1.21
-+++ sc/uiconfig/scalc/menubar/menubar.xml 28 Nov 2005 16:03:00 -0000 1.20.236.2
-@@ -211,6 +211,7 @@
- <menu:menuitem menu:id=".uno:Hide" menu:helpid="26289" menu:label="" />
- <menu:menuitem menu:id=".uno:Show" menu:helpid="26290" menu:label="" />
- <menu:menuitem menu:id=".uno:SheetRightToLeft" menu:helpid="26352" menu:label="" />
-+ <menu:menuitem menu:id=".uno:SheetUseR1C1" menu:helpid="26353" menu:label="" />
- </menu:menupopup>
- </menu:menu>
- <menu:menuitem menu:id=".uno:ToggleMergeCells" menu:helpid="26581" menu:label="" />
-Index: officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu
-===================================================================
-RCS file: /cvs/util/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu,v
-retrieving revision 1.14
-diff -u -w -p -r1.14 CalcCommands.xcu
---- officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu 15 Mar 2005 12:42:05 -0000 1.14
-+++ officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu 28 Nov 2005 19:35:06 -0000
-@@ -1418,6 +1418,11 @@
- <value xml:lang="en-US">R~ight-To-Left</value>
- </prop>
- </node>
-+ <node oor:name=".uno:SheetUseR1C1" oor:op="replace">
-+ <prop oor:name="Label" oor:type="xs:string">
-+ <value xml:lang="en-US">Use R1~C1</value>
-+ </prop>
-+ </node>
- <node oor:name=".uno:SetAnchorToPage" oor:op="replace">
- <prop oor:name="Label" oor:type="xs:string">
- <value xml:lang="de">An der Seite</value>
diff --git a/patches/src680/sc-save-password-minlength.diff b/patches/src680/sc-save-password-minlength.diff
deleted file mode 100644
index da4d0fd8a..000000000
--- a/patches/src680/sc-save-password-minlength.diff
+++ /dev/null
@@ -1,61 +0,0 @@
-diff -u -r ../src680-m78.bak/sfx2/source/dialog/passwd.cxx sfx2/source/dialog/passwd.cxx
---- ../src680-m78.bak/sfx2/source/dialog/passwd.cxx 2005-02-23 17:00:37.000000000 +0530
-+++ sfx2/source/dialog/passwd.cxx 2005-02-24 09:47:01.491560482 +0530
-@@ -126,6 +126,7 @@
- maPasswordED ( this, ResId( ED_PASSWD_PASSWORD ) ),
- maConfirmFT ( this, ResId( FT_PASSWD_CONFIRM ) ),
- maConfirmED ( this, ResId( ED_PASSWD_CONFIRM ) ),
-+ maMinLengthFT ( this, ResId( FT_PASSWD_MINLEN ) ),
- maPasswordBox ( this, ResId( GB_PASSWD_PASSWORD ) ),
- maOKBtn ( this, ResId( BTN_PASSWD_OK ) ),
- maCancelBtn ( this, ResId( BTN_PASSWD_CANCEL ) ),
-@@ -205,8 +206,10 @@
- aPos = maUserED.GetPosPixel();
- maPasswordED.SetPosPixel( aPos );
-
-+ aPos = maConfirmFT.GetPosPixel();
- maConfirmFT.SetPosPixel( aPwdPos1 );
- maConfirmED.SetPosPixel( aPwdPos2 );
-+ maMinLengthFT.SetPosPixel(aPos);
- }
-
- Size aBoxSize = maPasswordBox.GetSizePixel();
-diff -u -r ../src680-m78.bak/sfx2/source/dialog/passwd.hrc sfx2/source/dialog/passwd.hrc
---- ../src680-m78.bak/sfx2/source/dialog/passwd.hrc 2005-02-23 17:00:37.000000000 +0530
-+++ sfx2/source/dialog/passwd.hrc 2005-02-24 09:39:59.089229986 +0530
-@@ -70,6 +70,7 @@
- #define ED_PASSWD_PASSWORD 14
- #define FT_PASSWD_CONFIRM 15
- #define ED_PASSWD_CONFIRM 16
-+#define FT_PASSWD_MINLEN 17
-
- #define BTN_PASSWD_OK 20
- #define BTN_PASSWD_CANCEL 21
-diff -u -r ../src680-m78.bak/sfx2/source/dialog/passwd.src sfx2/source/dialog/passwd.src
---- ../src680-m78.bak/sfx2/source/dialog/passwd.src 2005-02-23 17:00:37.000000000 +0530
-+++ sfx2/source/dialog/passwd.src 2005-02-24 09:56:29.023722648 +0530
-@@ -117,6 +117,13 @@
- Pos = MAP_APPFONT( 57, 44 );
- Size = MAP_APPFONT( 75, 12 );
- };
-+ FixedText FT_PASSWD_MINLEN
-+ {
-+ Pos = MAP_APPFONT(12, 65 );
-+ Size = MAP_APPFONT( 82, 10 );
-+ Text [ de ] = "";
-+ Text [ en-US ] = "(Minimum 5 characters)";
-+ };
- FixedLine GB_PASSWD_PASSWORD
- {
- Pos = MAP_APPFONT( 6, 3 );
-diff -u -r ../src680-m78.bak/sfx2/inc/passwd.hxx sfx2/inc/passwd.hxx
---- ../src680-m78.bak/sfx2/inc/passwd.hxx 2005-02-23 17:00:31.000000000 +0530
-+++ sfx2/inc/passwd.hxx 2005-02-24 09:34:28.079468128 +0530
-@@ -100,6 +100,7 @@
- Edit maPasswordED;
- FixedText maConfirmFT;
- Edit maConfirmED;
-+ FixedText maMinLengthFT;
- FixedLine maPasswordBox;
-
- OKButton maOKBtn;
diff --git a/patches/src680/sc-seriessum.diff b/patches/src680/sc-seriessum.diff
deleted file mode 100644
index abe5e991e..000000000
--- a/patches/src680/sc-seriessum.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- scaddins/source/analysis/analysis.cxx 2004-07-30 21:44:00.000000000 +0530
-+++ scaddins/source/analysis/analysis.cxx 2005-12-18 18:44:08.683174424 +0530
-@@ -822,7 +822,9 @@ double SAL_CALL AnalysisAddIn::getSeries
- {
- double fRet = 0.0;
-
-- if( fX != 0.0 )
-+ if( fX == 0.0 && fN == 0 )
-+ THROW_IAE;
-+ else if( fX != 0.0 )
- {
- sal_Int32 n1, n2;
- sal_Int32 nE1 = aCoeffList.getLength();
diff --git a/patches/src680/sc-sheet-double-click-rename.diff b/patches/src680/sc-sheet-double-click-rename.diff
deleted file mode 100644
index aace6de66..000000000
--- a/patches/src680/sc-sheet-double-click-rename.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- sc/source/ui/view/tabcont.cxx 2005-03-17 10:55:46.000000000 -0800
-+++ sc/source/ui/view/tabcont.cxx 2005-03-17 10:55:10.000000000 -0800
-@@ -173,6 +173,11 @@
- // mouse button down and up on same page?
- if( nMouseClickPageId != GetPageId( aPos ) )
- nMouseClickPageId = TAB_PAGE_NOTFOUND;
-+ else if ( rMEvt.GetClicks() == 2 && rMEvt.IsLeft() )
-+ {
-+ SfxDispatcher* pDispatcher = pViewData->GetViewShell()->GetViewFrame()->GetDispatcher();
-+ pDispatcher->Execute( FID_TAB_MENU_RENAME, SFX_CALLMODE_SYNCHRON | SFX_CALLMODE_RECORD );
-+ }
-
- if( nMouseClickPageId == 0 )
- {
diff --git a/patches/src680/sc-source-ui-unobj-funcuno-cxx.diff b/patches/src680/sc-source-ui-unobj-funcuno-cxx.diff
deleted file mode 100644
index cfe32365b..000000000
--- a/patches/src680/sc-source-ui-unobj-funcuno-cxx.diff
+++ /dev/null
@@ -1,25 +0,0 @@
-Index: sc/source/ui/unoobj/funcuno.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/unoobj/funcuno.cxx,v
-retrieving revision 1.13
-diff -u -p -r1.13 funcuno.cxx
---- sc/source/ui/unoobj/funcuno.cxx 8 Sep 2005 22:47:16 -0000 1.13
-+++ sc/source/ui/unoobj/funcuno.cxx 19 Nov 2005 11:09:43 -0000
-@@ -640,7 +640,7 @@ uno::Any SAL_CALL ScFunctionAccess::call
- long nColCount = aSrcRange.aEnd.Col() - aSrcRange.aStart.Col() + 1;
- long nRowCount = aSrcRange.aEnd.Row() - aSrcRange.aStart.Row() + 1;
-
-- if ( nStartRow + nRowCount > MAXROW )
-+ if ( nStartRow + nRowCount > MAXROWCOUNT )
- bOverflow = TRUE;
- else
- {
-@@ -670,7 +670,7 @@ uno::Any SAL_CALL ScFunctionAccess::call
- //
-
- uno::Any aRet;
-- if ( !bArgErr && !bOverflow && nDocRow <= MAXROW )
-+ if ( !bArgErr && !bOverflow && nDocRow <= MAXROWCOUNT )
- {
- ScAddress aFormulaPos( 0, (SCROW)nDocRow, 0 );
- ScFormulaCell* pFormula = new ScFormulaCell( pDoc, aFormulaPos, &aTokenArr, MM_FORMULA );
diff --git a/patches/src680/sc-standard-filter-options.diff b/patches/src680/sc-standard-filter-options.diff
deleted file mode 100644
index f64d682b4..000000000
--- a/patches/src680/sc-standard-filter-options.diff
+++ /dev/null
@@ -1,222 +0,0 @@
-Index: sc/inc/global.hxx
-===================================================================
-RCS file: /cvs/sc/sc/inc/global.hxx,v
-retrieving revision 1.42
-diff -u -p -u -r1.42 global.hxx
---- sc/inc/global.hxx 13 Jan 2005 17:21:00 -0000 1.42
-+++ sc/inc/global.hxx 11 Apr 2005 11:36:29 -0000
-@@ -818,7 +818,11 @@ enum ScQueryOp
- SC_TOPVAL,
- SC_BOTVAL,
- SC_TOPPERC,
-- SC_BOTPERC
-+ SC_BOTPERC,
-+ SC_CONTAINS,
-+ SC_DOES_NOT_CONTAIN,
-+ SC_BEGINS_WITH,
-+ SC_ENDS_WITH
- };
-
- // -----------------------------------------------------------------------
-Index: sc/source/ui/src/filter.src
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/src/filter.src,v
-retrieving revision 1.54
-diff -u -p -u -r1.54 filter.src
---- sc/source/ui/src/filter.src 18 Mar 2005 15:17:32 -0000 1.54
-+++ sc/source/ui/src/filter.src 11 Apr 2005 11:36:29 -0000
-@@ -180,16 +180,20 @@ ModelessDialog RID_SCDLG_FILTER
- };
- stringlist [ en-US ] =
- {
-- < "=" ; Default ; > ;
-+ < "Equals" ; Default ; > ;
- < "<" ; Default ; > ;
- < ">" ; Default ; > ;
- < "<=" ; Default ; > ;
- < ">=" ; Default ; > ;
-- < "<>" ; Default ; > ;
-+ < "Not equals" ; Default ; > ;
- < "Largest" ; Default ; > ;
- < "Smallest" ; Default ; > ;
- < "Largest %" ; Default ; > ;
- < "Smallest %" ; Default ; > ;
-+ < "Contains" ; Default ; > ;
-+ < "Does not Contain" ; Default ; > ;
-+ < "Begins with" ; Default ; > ;
-+ < "Ends with" ; Default ; > ;
- };
- };
- ListBox LB_COND2
-@@ -214,16 +218,20 @@ ModelessDialog RID_SCDLG_FILTER
- };
- stringlist [ en-US ] =
- {
-- < "=" ; Default ; > ;
-+ < "Equals" ; Default ; > ;
- < "<" ; Default ; > ;
- < ">" ; Default ; > ;
- < "<=" ; Default ; > ;
- < ">=" ; Default ; > ;
-- < "<>" ; Default ; > ;
-+ < "Not equals" ; Default ; > ;
- < "Largest" ; Default ; > ;
- < "Smallest" ; Default ; > ;
- < "Largest %" ; Default ; > ;
- < "Smallest %" ; Default ; > ;
-+ < "Contains" ; Default ; > ;
-+ < "Does not Contain" ; Default ; > ;
-+ < "Begins with" ; Default ; > ;
-+ < "Ends with" ; Default ; > ;
- };
- };
- ListBox LB_COND3
-@@ -248,16 +256,20 @@ ModelessDialog RID_SCDLG_FILTER
- };
- stringlist [ en-US ] =
- {
-- < "=" ; Default ; > ;
-+ < "Equals" ; Default ; > ;
- < "<" ; Default ; > ;
- < ">" ; Default ; > ;
- < "<=" ; Default ; > ;
- < ">=" ; Default ; > ;
-- < "<>" ; Default ; > ;
-+ < "Not equals" ; Default ; > ;
- < "Largest" ; Default ; > ;
- < "Smallest" ; Default ; > ;
- < "Largest %" ; Default ; > ;
- < "Smallest %" ; Default ; > ;
-+ < "Contains" ; Default ; > ;
-+ < "Does not Contain" ; Default ; > ;
-+ < "Begins with" ; Default ; > ;
-+ < "Ends with" ; Default ; > ;
- };
- };
- ComboBox ED_VAL1
-Index: sc/source/ui/dbgui/filtdlg.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/dbgui/filtdlg.cxx,v
-retrieving revision 1.11
-diff -u -p -u -r1.11 filtdlg.cxx
---- sc/source/ui/dbgui/filtdlg.cxx 23 Jul 2004 10:51:24 -0000 1.11
-+++ sc/source/ui/dbgui/filtdlg.cxx 11 Apr 2005 11:36:29 -0000
-@@ -84,6 +84,7 @@
- #include "document.hxx"
- #include "docsh.hxx"
- #include "scresid.hxx"
-+#include "docoptio.hxx"
-
- #include "foptmgr.hxx"
-
-@@ -572,6 +573,8 @@ ScQueryItem* ScFilterDlg::GetOutputItem(
- bCopyPosOk = ( SCA_VALID == (nResult & SCA_VALID) );
- }
-
-+ theParam.bRegExp = aBtnRegExp.IsChecked();
-+
- for ( i = 0; i < 3; i++ )
- {
- USHORT nField = aFieldLbArr[i]->GetSelectEntryPos();
-@@ -605,6 +608,18 @@ ScQueryItem* ScFilterDlg::GetOutputItem(
- }
- else
- {
-+ if (eOp == SC_BEGINS_WITH ) {
-+ String tmp ('^');
-+ tmp .Append(aStrVal);
-+ ::rtl::OUString str (tmp);
-+ aStrVal.Assign(tmp);
-+ theParam.bRegExp = TRUE;
-+ }
-+ else if (eOp == SC_ENDS_WITH ) {
-+ aStrVal.Append (String('$'));
-+ theParam.bRegExp = TRUE;
-+ }
-+
- *rEntry.pStr = aStrVal;
- rEntry.nVal = 0;
- rEntry.bQueryByString = TRUE;
-@@ -642,7 +657,7 @@ ScQueryItem* ScFilterDlg::GetOutputItem(
- theParam.bByRow = TRUE;
- theParam.bDuplicate = !aBtnUnique.IsChecked();
- theParam.bCaseSens = aBtnCase.IsChecked();
-- theParam.bRegExp = aBtnRegExp.IsChecked();
-+
- theParam.bDestPers = aBtnDestPers.IsChecked();
-
- // nur die drei eingestellten - alles andere zuruecksetzen
-
-
-
-Index: sc/source/core/data/table3.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/data/table3.cxx,v
-retrieving revision 1.20
-diff -u -p -u -r1.20 table3.cxx
---- sc/source/core/data/table3.cxx 15 Nov 2004 16:34:51 -0000 1.20
-+++ sc/source/core/data/table3.cxx 11 Apr 2005 11:36:30 -0000
-@@ -1037,13 +1037,22 @@ BOOL ScTable::ValidQuery(SCROW nRow, con
- break;
- }
- }
-- else if ( (rEntry.eOp == SC_EQUAL || rEntry.eOp == SC_NOT_EQUAL) ||
-+ else if ( (rEntry.eOp == SC_CONTAINS || rEntry.eOp == SC_DOES_NOT_CONTAIN ||
-+ rEntry.eOp == SC_BEGINS_WITH || rEntry.eOp == SC_ENDS_WITH ||
-+ rEntry.eOp == SC_EQUAL || rEntry.eOp == SC_NOT_EQUAL) ||
- (rEntry.bQueryByString && (pCell ? pCell->HasStringData() :
- HasStringData(
- static_cast<SCCOL>(rEntry.nField),
- nRow))))
- { // by String
- String aCellStr;
-+
-+ // Contains and Does not contain is similar to EQUAL and NOT EQUAL
-+ // but with bMatchWholeCell set to false
-+ if(rEntry.eOp == SC_CONTAINS || rEntry.eOp == SC_BEGINS_WITH ||
-+ rEntry.eOp == SC_ENDS_WITH || rEntry.eOp == SC_DOES_NOT_CONTAIN)
-+ bMatchWholeCell = FALSE;
-+
- if ( pCell )
- {
- if (pCell->GetCellType() != CELLTYPE_NOTE)
-@@ -1056,7 +1065,9 @@ BOOL ScTable::ValidQuery(SCROW nRow, con
- GetInputString( static_cast<SCCOL>(rEntry.nField), nRow, aCellStr );
-
- BOOL bRealRegExp = (rParam.bRegExp && ((rEntry.eOp == SC_EQUAL)
-- || (rEntry.eOp == SC_NOT_EQUAL)));
-+ || (rEntry.eOp == SC_NOT_EQUAL) || (rEntry.eOp == SC_CONTAINS)
-+ || (rEntry.eOp == SC_DOES_NOT_CONTAIN) || (rEntry.eOp == SC_BEGINS_WITH)
-+ || (rEntry.eOp == SC_ENDS_WITH)));
- BOOL bTestRegExp = (pbTestEqualCondition && rParam.bRegExp
- && ((rEntry.eOp == SC_LESS_EQUAL)
- || (rEntry.eOp == SC_GREATER_EQUAL)));
-@@ -1071,13 +1082,16 @@ BOOL ScTable::ValidQuery(SCROW nRow, con
- && (nStart != 0 || nEnd != aCellStr.Len()) )
- bMatch = FALSE; // RegExp must match entire cell string
- if ( bRealRegExp )
-- bOk = ((rEntry.eOp == SC_NOT_EQUAL) ? !bMatch : bMatch);
-+ bOk = ((rEntry.eOp == SC_NOT_EQUAL ||
-+ rEntry.eOp == SC_DOES_NOT_CONTAIN) ? !bMatch : bMatch);
- else
- bTestEqual = bMatch;
- }
- if ( !bRealRegExp )
- {
-- if ( rEntry.eOp == SC_EQUAL || rEntry.eOp == SC_NOT_EQUAL )
-+ if ( rEntry.eOp == SC_EQUAL || rEntry.eOp == SC_NOT_EQUAL
-+ || rEntry.eOp == SC_CONTAINS || rEntry.eOp == SC_DOES_NOT_CONTAIN
-+ || rEntry.eOp == SC_BEGINS_WITH || rEntry.eOp == SC_ENDS_WITH)
- {
- if ( !rEntry.bQueryByString && rEntry.pStr->Len() == 0 )
- {
-@@ -1099,7 +1113,8 @@ BOOL ScTable::ValidQuery(SCROW nRow, con
- &xOff ) );
- bOk = (aCell.Search( aQuer ) != STRING_NOTFOUND);
- }
-- if ( rEntry.eOp == SC_NOT_EQUAL )
-+ if ( rEntry.eOp == SC_NOT_EQUAL ||
-+ rEntry.eOp == SC_DOES_NOT_CONTAIN)
- bOk = !bOk;
- }
- else
diff --git a/patches/src680/sc-startformulawplus.diff b/patches/src680/sc-startformulawplus.diff
deleted file mode 100644
index a16f41aa2..000000000
--- a/patches/src680/sc-startformulawplus.diff
+++ /dev/null
@@ -1,39 +0,0 @@
---- sc/source/ui/app/inputhdl.cxx 2005-08-31 21:44:52.855035064 +0530
-+++ sc/source/ui/app/inputhdl.cxx 2005-08-31 08:17:51.000000000 +0530
-@@ -1617,7 +1617,8 @@ BOOL ScInputHandler::StartTable( sal_Uni
- if ( bAutoComplete )
- GetColData();
-
-- if ( aStr.GetChar(0) == '=' && !cTyped && !bCreatingFuncView )
-+ if ( (aStr.GetChar(0) == '=' || aStr.GetChar(0) == '+' || aStr.GetChar(0) == '-')
-+ && !cTyped && !bCreatingFuncView )
- InitRangeFinder(aStr); // Formel wird editiert -> RangeFinder
-
- bNewTable = TRUE; // -> PostEditView-Aufruf
-@@ -1811,7 +1812,8 @@ void ScInputHandler::UpdateFormulaMode()
- {
- SfxApplication* pSfxApp = SFX_APP();
-
-- if ( pEngine->GetParagraphCount()==1 && pEngine->GetText((USHORT)0).GetChar(0) == '='
-+ if ( pEngine->GetParagraphCount()==1 && (pEngine->GetText((USHORT)0).GetChar(0) == '='
-+ || pEngine->GetText((USHORT)0).GetChar(0) == '+' || pEngine->GetText((USHORT)0).GetChar(0) == '-')
- && !bProtected )
- {
- if (!bFormulaMode)
---- sc/source/ui/view/viewfunc.cxx 2005-07-17 21:30:12.000000000 +0530
-+++ sc/source/ui/view/viewfunc.cxx 2005-09-01 19:36:08.000000000 +0530
-@@ -450,8 +450,13 @@ void ScViewFunc::EnterData( SCCOL nCol,
- }
-
- BOOL bNumFmtChanged = FALSE;
-+ double fVal;
-+ sal_uInt32 nIndex = 0;
-+
- // einzelnes '=' ist String (wird fuer Spezialfilter so gebraucht)
-- if ( rString.GetChar(0) == '=' && rString.Len() > 1 )
-+ if ( rString.Len() > 1 &&
-+ ( rString.GetChar(0) == '=' || rString.GetChar(0) == '+' || rString.GetChar(0) == '-' ) &&
-+ (pDoc->GetNumberFormat(nCol, nRow, nTab, nIndex), !rFormatter.IsNumberFormat(rString, nIndex, fVal)))
- { // Formel, compile mit AutoCorrection
- for (i=0; i<nTabCount; i++)
- if (rMark.GetTableSelect(i))
diff --git a/patches/src680/sc-string-arg.diff b/patches/src680/sc-string-arg.diff
deleted file mode 100644
index 0fcdcff67..000000000
--- a/patches/src680/sc-string-arg.diff
+++ /dev/null
@@ -1,115 +0,0 @@
---- sc/source/core/tool/interpr4.cxx 2005-04-14 09:50:06.000000000 +0530
-+++ sc/source/core/tool/interpr4.cxx 2005-04-19 13:12:20.678272373 +0530
-@@ -283,8 +283,6 @@ double ScInterpreter::GetCellValueOrZero
- break;
- case CELLTYPE_STRING:
- case CELLTYPE_EDIT:
--#if 0
--// Xcl does it, but SUM(A1:A2) differs from A1+A2. No good.
- {
- String aStr;
- if ( eType == CELLTYPE_STRING )
-@@ -299,7 +297,6 @@ double ScInterpreter::GetCellValueOrZero
- }
- }
- break;
--#endif
- default:
- SetError(errCellNoValue);
- fValue = 0.0;
---- sc/source/core/tool/interpr1.cxx 2005-04-14 09:50:06.000000000 +0530
-+++ sc/source/core/tool/interpr1.cxx 2005-04-19 12:08:07.486080311 +0530
-@@ -2685,12 +2685,13 @@ double ScInterpreter::IterateParameters(
- ScRange aRange;
- for (short i = 0; i < nParamCount; i++)
- {
-- switch (GetStackType())
-+ StackVar eStackType = GetStackType();
-+ switch (eStackType)
- {
--
-+ case svDouble:
- case svString:
- {
-- if( eFunc == ifCOUNT )
-+ if( eFunc == ifCOUNT && eStackType == svString)
- {
- String aStr( PopString() );
- ULONG nFIndex = 0; // damit default Land/Spr.
-@@ -2699,42 +2700,23 @@ double ScInterpreter::IterateParameters(
- }
- else
- {
-+ if ( bTextAsZero && eStackType == svString)
-+ {
-+ Pop();
-+ nCount++;
-+ if ( eFunc == ifPRODUCT )
-+ fRes = 0.0;
-+ fVal = 0;
-+ }
-+ else
-+ {
-+ fVal = GetDouble();
-+ nCount++;
-+ }
- switch ( eFunc )
- {
- case ifAVERAGE:
- case ifSUM:
-- case ifSUMSQ:
-- case ifPRODUCT:
-- {
-- if ( bTextAsZero )
-- {
-- Pop();
-- nCount++;
-- if ( eFunc == ifPRODUCT )
-- fRes = 0.0;
-- }
-- else
-- {
-- for ( ; i < nParamCount; i++ )
-- Pop();
-- SetError( errNoValue );
-- }
-- }
-- break;
-- default:
-- Pop();
-- nCount++;
-- }
-- }
-- }
-- break;
-- case svDouble :
-- fVal = GetDouble();
-- nCount++;
-- switch( eFunc )
-- {
-- case ifAVERAGE:
-- case ifSUM:
- if ( bNull && fVal != 0.0 )
- {
- bNull = FALSE;
-@@ -2743,12 +2725,16 @@ double ScInterpreter::IterateParameters(
- else
- fRes += fVal;
- break;
-- case ifSUMSQ: fRes += fVal * fVal; break;
-- case ifPRODUCT: fRes *= fVal; break;
-- default: ; // nothing
-+ case ifSUMSQ: fRes += fVal * fVal; break;
-+ case ifPRODUCT: fRes *= fVal; break;
-+
-+ default:
-+ break;
-+ }
- }
- nFuncFmtType = NUMBERFORMAT_NUMBER;
-- break;
-+ }
-+ break;
- case svSingleRef :
- {
- PopSingleRef( aAdr );
diff --git a/patches/src680/sc-toggle-formula.diff b/patches/src680/sc-toggle-formula.diff
deleted file mode 100644
index 168e82436..000000000
--- a/patches/src680/sc-toggle-formula.diff
+++ /dev/null
@@ -1,113 +0,0 @@
---- sc/uiconfig/scalc/accelerator/en-US/default.xml 2005-10-13 22:06:08.000000000 +0530
-+++ sc/uiconfig/scalc/accelerator/en-US/default.xml 2005-10-17 23:07:58.000000000 +0530
-@@ -97,4 +97,5 @@
- <accel:item accel:code="KEY_F5" accel:shift="true" accel:mod1="true" xlink:href=".uno:FocusCellAddress"/>
- <accel:item accel:code="KEY_SPACE" accel:mod1="true" accel:shift="true" xlink:href=".uno:ResetAttributes"/>
- <accel:item accel:code="KEY_J" accel:shift="true" accel:mod1="true" xlink:href=".uno:FullScreen"/>
-+ <accel:item accel:code="KEY_QUOTELEFT" accel:mod1="true" xlink:href=".uno:ToggleFormula"/>
- </accel:acceleratorlist>
---- sc/source/ui/view/tabvwsh3.cxx 2004-10-05 01:55:55.000000000 +0530
-+++ sc/source/ui/view/tabvwsh3.cxx 2005-10-18 07:47:16.668501384 +0530
-@@ -602,6 +602,28 @@ void ScTabViewShell::Execute( SfxRequest
- rReq.Done();
- }
- break;
-+ case FID_TOGGLEFORMULA:
-+ {
-+ ScViewData* pViewData = GetViewData();
-+ const ScViewOptions& rOpts = pViewData->GetOptions();
-+ BOOL bFormulaMode = !rOpts.GetOption( VOPT_FORMULAS );
-+ const SfxPoolItem *pItem;
-+ if( pReqArgs && pReqArgs->GetItemState(nSlot, TRUE, &pItem) == SFX_ITEM_SET )
-+ bFormulaMode = ((const SfxBoolItem *)pItem)->GetValue();
-+
-+
-+ ScViewOptions rSetOpts = ScViewOptions( rOpts );
-+ rSetOpts.SetOption( VOPT_FORMULAS, bFormulaMode );
-+ pViewData->SetOptions( rSetOpts );
-+
-+ pViewData->GetDocShell()->PostPaintGridAll();
-+
-+ rBindings.Invalidate( FID_TOGGLEFORMULA );
-+ rReq.AppendItem( SfxBoolItem( nSlot, bFormulaMode ) );
-+ rReq.Done();
-+ }
-+ break;
-+
- case FID_TOGGLEINPUTLINE:
- {
- USHORT nId = ScInputWindowWrapper::GetChildWindowId();
---- sc/source/ui/view/tabvwsha.cxx 2005-01-28 22:53:33.000000000 +0530
-+++ sc/source/ui/view/tabvwsha.cxx 2005-10-17 23:13:34.000000000 +0530
-@@ -322,6 +322,14 @@ void __EXPORT ScTabViewShell::GetState(
- case FID_TOGGLEHEADERS:
- rSet.Put(SfxBoolItem(nWhich, GetViewData()->IsHeaderMode()));
- break;
-+ case FID_TOGGLEFORMULA:
-+ {
-+ ScViewData* pViewData = GetViewData();
-+ const ScViewOptions& rOpts = pViewData->GetOptions();
-+ BOOL bFormulaMode = rOpts.GetOption( VOPT_FORMULAS );
-+ rSet.Put(SfxBoolItem(nWhich, bFormulaMode ));
-+ }
-+ break;
-
- case FID_NORMALVIEWMODE:
- case FID_PAGEBREAKMODE:
---- sc/sdi/scalc.sdi 2005-10-13 22:06:00.000000000 +0530
-+++ sc/sdi/scalc.sdi 2005-10-16 12:54:46.000000000 +0530
-@@ -7343,6 +7343,34 @@ SfxBoolItem ViewRowColumnHeaders FID_TOG
- ]
-
- //--------------------------------------------------------------------------
-+SfxBoolItem ToggleFormula FID_TOGGLEFORMULA
-+
-+[
-+ /* flags */
-+ AutoUpdate = FALSE,
-+ Cachable = Cachable,
-+ FastCall = FALSE,
-+ HasCoreId = FALSE,
-+ HasDialog = FALSE,
-+ ReadOnlyDoc = TRUE,
-+ Toggle = FALSE,
-+ Container = FALSE,
-+ RecordAbsolute = FALSE,
-+ RecordPerSet;
-+ Synchron;
-+
-+ Readonly = FALSE,
-+
-+ /* config */
-+ AccelConfig = TRUE,
-+ MenuConfig = FALSE,
-+ StatusBarConfig = FALSE,
-+ ToolBoxConfig = FALSE,
-+ GroupId = GID_VIEW
-+
-+]
-+
-+//--------------------------------------------------------------------------
- SfxBoolItem ViewValueHighlighting FID_TOGGLESYNTAX
-
- [
---- sc/sdi/tabvwsh.sdi 2004-11-15 22:02:50.000000000 +0530
-+++ sc/sdi/tabvwsh.sdi 2005-10-16 12:21:59.000000000 +0530
-@@ -215,6 +215,7 @@ interface TableEditView : View
- FID_SCALESTATUS [ ExecMethod = Execute; StateMethod = GetState; ]
- FID_TOGGLESYNTAX [ ExecMethod = Execute; StateMethod = GetState; ]
- FID_TOGGLEHEADERS [ ExecMethod = Execute; StateMethod = GetState; ]
-+ FID_TOGGLEFORMULA [ ExecMethod = Execute; StateMethod = GetState; ]
- FID_NORMALVIEWMODE [ ExecMethod = Execute; StateMethod = GetState; ]
- FID_PAGEBREAKMODE [ ExecMethod = Execute; StateMethod = GetState; ]
- SID_REPAINT [ ExecMethod = Execute; StateMethod = GetState; ]
---- sc/inc/sc.hrc 2005-10-13 22:06:00.000000000 +0530
-+++ sc/inc/sc.hrc 2005-10-16 13:33:48.000000000 +0530
-@@ -711,6 +711,7 @@
- //#define FID_CHG_MERGE (VIEW_MENU_START + 17)// DANGER DIRTY ID
- #define FID_CHG_ACCEPT (VIEW_MENU_START + 18)// DANGER DIRTY ID
- #define FID_CHG_COMMENT (VIEW_MENU_START + 19)// DANGER DIRTY ID
-+#define FID_TOGGLEFORMULA (VIEW_MENU_START + 16)
- #define VIEW_MENU_END (VIEW_MENU_START + 20)
-
- #define INSERT_MENU_START (VIEW_MENU_END)
diff --git a/patches/src680/sc-valuefunc.diff b/patches/src680/sc-valuefunc.diff
deleted file mode 100644
index 1169d9bf7..000000000
--- a/patches/src680/sc-valuefunc.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- sc/source/core/tool/interpr1.cxx 2005-11-13 23:30:11.000000000 +0530
-+++ sc/source/core/tool/interpr1.cxx 2005-12-19 22:04:52.000000000 +0530
-@@ -2387,6 +2387,8 @@ void ScInterpreter::ScValue()
- double fVal;
- if (pFormatter->IsNumberFormat(aInputString, nFIndex, fVal))
- PushDouble(fVal);
-+ else if(aInputString.Len() == 0)
-+ PushDouble(0.0);
- else
- SetIllegalArgument();
- }
diff --git a/patches/src680/sc-xl-errors.diff b/patches/src680/sc-xl-errors.diff
deleted file mode 100644
index e586e2cb6..000000000
--- a/patches/src680/sc-xl-errors.diff
+++ /dev/null
@@ -1,128 +0,0 @@
-Index: sc/inc/errorcodes.hxx
-===================================================================
-RCS file: /cvs/sc/sc/inc/errorcodes.hxx,v
-retrieving revision 1.2
-diff -u -p -u -r1.2 errorcodes.hxx
---- sc/inc/errorcodes.hxx 8 Mar 2004 11:40:52 -0000 1.2
-+++ sc/inc/errorcodes.hxx 18 Apr 2005 11:26:47 -0000
-@@ -74,7 +74,7 @@ namespace ScErrorCodes
-
- const USHORT errIllegalChar = 501;
- const USHORT errIllegalArgument = 502;
--const USHORT errIllegalFPOperation = 503;
-+const USHORT errIllegalFPOperation = 503; // #NUM!
- const USHORT errIllegalParameter = 504;
- const USHORT errIllegalJump = 505;
- const USHORT errSeparator = 506;
-@@ -90,13 +90,13 @@ const USHORT errUnknownState = 5
- const USHORT errUnknownVariable = 516;
- const USHORT errUnknownOpCode = 517;
- const USHORT errUnknownStackVariable = 518;
--const USHORT errNoValue = 519;
-+const USHORT errNoValue = 519; // #VALUE!
- const USHORT errUnknownToken = 520;
--const USHORT errNoCode = 521;
-+const USHORT errNoCode = 521; // #NULL!
- const USHORT errCircularReference = 522;
- const USHORT errNoConvergence = 523;
--const USHORT errNoRef = 524;
--const USHORT errNoName = 525;
-+const USHORT errNoRef = 524; // #REF!
-+const USHORT errNoName = 525; // #NAME?
- const USHORT errDoubleRef = 526;
- const USHORT errInterpOverflow = 527;
- // Not displayed, temporary for TrackFormulas,
-@@ -108,6 +108,7 @@ const USHORT errCellNoValue = 5
- const USHORT errNoAddin = 530;
- // Interpreter: needed Macro not found
- const USHORT errNoMacro = 531;
-+const USHORT errDivisionByZero = 532; // #DIV/0!
-
- // Interpreter: NA() not available condition, not a real error
- const USHORT NOVALUE = 0x7fff;
-Index: sc/inc/globstr.hrc
-===================================================================
-RCS file: /cvs/sc/sc/inc/globstr.hrc,v
-retrieving revision 1.12
-diff -u -p -u -r1.12 globstr.hrc
---- sc/inc/globstr.hrc 17 Sep 2004 13:52:04 -0000 1.12
-+++ sc/inc/globstr.hrc 18 Apr 2005 11:26:47 -0000
-@@ -576,7 +576,12 @@
-
- #define STR_ERR_DATAPILOT_INPUT 411
-
--#define STR_COUNT 412
-+#define STR_DIV_ZERO 412
-+#define STR_LONG_ERR_DIV_ZERO 413
-+#define STR_NUM_ERROR 414
-+#define STR_NULL_ERROR 415
-+
-+#define STR_COUNT 416
-
- #endif
-
-Index: sc/source/ui/src/globstr.src
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/src/globstr.src,v
-retrieving revision 1.61
-diff -u -p -u -r1.61 globstr.src
---- sc/source/ui/src/globstr.src 14 Jan 2005 12:15:01 -0000 1.61
-+++ sc/source/ui/src/globstr.src 18 Apr 2005 11:26:48 -0000
-@@ -2587,6 +2588,29 @@ Resource RID_GLOBSTR
- Text [ de ] = "Sie können diesen Teil der Datenpilot-Tabelle nicht ändern.";
- Text[ en-US ] = "You cannot change this part of the DataPilot table.";
- };
--
-+ String STR_DIV_ZERO
-+ {
-+ Text [ de ] = "#DIV/0!" ;
-+ Text [ en-US ] = "#DIV/0!" ;
-+ Text [ x-comment ] = " ";
-+ };
-+ String STR_LONG_ERR_DIV_ZERO
-+ {
-+ Text [ de ] = "Division by zero" ;
-+ Text [ en-US ] = "Division by zero" ;
-+ Text [ x-comment ] = " ";
-+ };
-+ String STR_NUM_ERROR
-+ {
-+ Text [ de ] = "#NUM!" ;
-+ Text [ en-US ] = "#NUM!" ;
-+ Text [ x-comment ] = " ";
-+ };
-+ String STR_NULL_ERROR
-+ {
-+ Text [ de ] = "#NUL!" ;
-+ Text [ en-US ] = "#NULL!" ;
-+ Text [ x-comment ] = " ";
-+ };
- };
-
-Index: sc/source/core/data/global.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/data/global.cxx,v
-retrieving revision 1.42
-diff -u -p -u -r1.42 global.cxx
---- sc/source/core/data/global.cxx 16 Feb 2005 18:06:28 -0000 1.42
-+++ sc/source/core/data/global.cxx 18 Apr 2005 11:26:48 -0000
-@@ -422,6 +422,9 @@ String ScGlobal::GetErrorString(USHORT n
- case errNoMacro : nErrNumber = STR_NO_MACRO; break;
- case errDoubleRef:
- case errNoValue : nErrNumber = STR_NO_VALUE; break;
-+ case errNoCode : nErrNumber = STR_NULL_ERROR; break;
-+ case errDivisionByZero : nErrNumber = STR_DIV_ZERO; break;
-+ case errIllegalFPOperation : nErrNumber = STR_NUM_ERROR; break;
-
- default : sResStr = GetRscString(STR_ERROR_STR);
- sResStr += String::CreateFromInt32( nErrNumber );
-@@ -508,6 +511,9 @@ String ScGlobal::GetLongErrorString(USHO
- case errNoMacro:
- nErrNumber = STR_LONG_ERR_NO_MACRO;
- break;
-+ case errDivisionByZero:
-+ nErrNumber = STR_LONG_ERR_DIV_ZERO;
-+ break;
- case errNoValue:
- nErrNumber = STR_LONG_ERR_NO_VALUE;
- break;
diff --git a/patches/src680/sd-export-html-descr.diff b/patches/src680/sd-export-html-descr.diff
deleted file mode 100644
index bbf92a1fc..000000000
--- a/patches/src680/sd-export-html-descr.diff
+++ /dev/null
@@ -1,140 +0,0 @@
---- /dev/null 2002-08-31 00:31:37.000000000 +0100
-+++ extras/source/gallery/htmltheme 2003-08-18 14:35:38.000000000 +0100
-@@ -0,0 +1,137 @@
-+# first off, first on, prev off, prev on
-+# next off, next on, last off, last on
-+# index, text, more, less
-+
-+[ simple ]
-+htmlexpo/simple-first-inactive.png
-+htmlexpo/simple-first.png
-+htmlexpo/simple-left-inactive.png
-+htmlexpo/simple-left.png
-+htmlexpo/simple-right-inactive.png
-+htmlexpo/simple-right.png
-+htmlexpo/simple-last-inactive.png
-+htmlexpo/simple-last.png
-+htmlexpo/simple-nav.png
-+htmlexpo/simple-text.png
-+htmlexpo/simple-plus.png
-+htmlexpo/simple-minus.png
-+
-+[ gorilla ]
-+htmlexpo/gorilla-first-inactive.png
-+htmlexpo/gorilla-first.png
-+htmlexpo/gorilla-left-inactive.png
-+htmlexpo/gorilla-left.png
-+htmlexpo/gorilla-right-inactive.png
-+htmlexpo/gorilla-right.png
-+htmlexpo/gorilla-last-inactive.png
-+htmlexpo/gorilla-last.png
-+htmlexpo/gorilla-nav.png
-+htmlexpo/gorilla-text.png
-+htmlexpo/gorilla-plus.png
-+htmlexpo/gorilla-minus.png
-+
-+[ blue ]
-+htmlexpo/blue-first-inactive.png
-+htmlexpo/blue-first.png
-+htmlexpo/blue-left-inactive.png
-+htmlexpo/blue-left.png
-+htmlexpo/blue-right-inactive.png
-+htmlexpo/blue-right.png
-+htmlexpo/blue-last-inactive.png
-+htmlexpo/blue-last.png
-+htmlexpo/blue-nav.png
-+htmlexpo/blue-text.png
-+htmlexpo/blue-plus.png
-+htmlexpo/blue-minus.png
-+
-+[ green ]
-+htmlexpo/green-first-inactive.png
-+htmlexpo/green-first.png
-+htmlexpo/green-left-inactive.png
-+htmlexpo/green-left.png
-+htmlexpo/green-right-inactive.png
-+htmlexpo/green-right.png
-+htmlexpo/green-last-inactive.png
-+htmlexpo/green-last.png
-+htmlexpo/green-nav.png
-+htmlexpo/green-text.png
-+htmlexpo/green-plus.png
-+htmlexpo/green-minus.png
-+
-+[ grey ]
-+htmlexpo/grey-first-inactive.png
-+htmlexpo/grey-first.png
-+htmlexpo/grey-left-inactive.png
-+htmlexpo/grey-left.png
-+htmlexpo/grey-right-inactive.png
-+htmlexpo/grey-right.png
-+htmlexpo/grey-last-inactive.png
-+htmlexpo/grey-last.png
-+htmlexpo/grey-nav.png
-+htmlexpo/grey-text.png
-+htmlexpo/grey-plus.png
-+htmlexpo/grey-minus.png
-+
-+[ yellow ]
-+htmlexpo/yellow-first-inactive.png
-+htmlexpo/yellow-first.png
-+htmlexpo/yellow-left-inactive.png
-+htmlexpo/yellow-left.png
-+htmlexpo/yellow-right-inactive.png
-+htmlexpo/yellow-right.png
-+htmlexpo/yellow-last-inactive.png
-+htmlexpo/yellow-last.png
-+htmlexpo/yellow-nav.png
-+htmlexpo/yellow-text.png
-+htmlexpo/yellow-plus.png
-+htmlexpo/yellow-minus.png
-+
-+[ blu ]
-+htmlexpo/blufirs_.gif
-+htmlexpo/blufirs.gif
-+htmlexpo/bluprev_.gif
-+htmlexpo/bluprev.gif
-+htmlexpo/blunext_.gif
-+htmlexpo/blunext.gif
-+htmlexpo/blulast_.gif
-+htmlexpo/blulast.gif
-+htmlexpo/blunav.gif
-+htmlexpo/blutext.gif
-+
-+[ cub ]
-+htmlexpo/cubfirs_.gif
-+htmlexpo/cubfirs.gif
-+htmlexpo/cubprev_.gif
-+htmlexpo/cubprev.gif
-+htmlexpo/cubnext_.gif
-+htmlexpo/cubnext.gif
-+htmlexpo/cublast_.gif
-+htmlexpo/cublast.gif
-+htmlexpo/cubnav.gif
-+htmlexpo/cubtext.gif
-+
-+[ gre ]
-+htmlexpo/grefirs_.gif
-+htmlexpo/grefirs.gif
-+htmlexpo/greprev_.gif
-+htmlexpo/greprev.gif
-+htmlexpo/grenext_.gif
-+htmlexpo/grenext.gif
-+htmlexpo/grelast_.gif
-+htmlexpo/grelast.gif
-+htmlexpo/grenav.gif
-+htmlexpo/gretext.gif
-+
-+
-+[ sim ]
-+htmlexpo/simfirs_.gif
-+htmlexpo/simfirs.gif
-+htmlexpo/simprev_.gif
-+htmlexpo/simprev.gif
-+htmlexpo/simnext_.gif
-+htmlexpo/simnext.gif
-+htmlexpo/simlast_.gif
-+htmlexpo/simlast.gif
-+htmlexpo/simnav.gif
-+htmlexpo/simtext.gif
-+
diff --git a/patches/src680/sd-export-html-theme.diff b/patches/src680/sd-export-html-theme.diff
deleted file mode 100644
index 97ab3ac75..000000000
--- a/patches/src680/sd-export-html-theme.diff
+++ /dev/null
@@ -1,291 +0,0 @@
---- /dev/null 2002-08-31 00:31:37.000000000 +0100
-+++ sd/source/filter/html/htmltheme.hxx 2003-08-16 16:56:34.000000000 +0100
-@@ -0,0 +1,27 @@
-+#ifndef _SD_HTML_THEME_HXX
-+#define _SD_HTML_THEME_HXX
-+
-+#include <sddllapi.h>
-+#include <list>
-+
-+class SD_DLLPUBLIC SdHtmlTheme {
-+public:
-+ static const SdHtmlTheme &getTheme();
-+public:
-+ SdHtmlTheme();
-+ ~SdHtmlTheme();
-+ static const int nButtonsPerTheme = 13;
-+ int getThemeCount() const;
-+ Bitmap getThumbnail( int nThemeId ) const;
-+ long getBitmap( int nThemeId, int nImage, BitmapEx &rBitmap ) const;
-+private:
-+ /* list */
-+ void loadDirectory( String aPath );
-+ struct Theme {
-+ ByteString aName;
-+ BitmapEx aImages[nButtonsPerTheme];
-+ };
-+ std::list<Theme> m_aThemes;
-+};
-+
-+#endif // _SD_SIMPLE_THEME_HXX
-
-
---- /dev/null 2002-08-31 00:31:37.000000000 +0100
-+++ sd/source/filter/html/htmltheme.cxx 2003-08-18 13:34:43.000000000 +0100
-@@ -0,0 +1,256 @@
-+#ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HPP_
-+#include <com/sun/star/beans/PropertyValue.hpp>
-+#endif
-+#ifndef _UNTOOLS_UCBSTREAMHELPER_HXX
-+#include <unotools/ucbstreamhelper.hxx>
-+#endif
-+#ifndef _SV_LSTBOX_HXX
-+#include <vcl/lstbox.hxx>
-+#endif
-+#ifndef _FILTER_CONFIG_ITEM_HXX_
-+#include <svtools/FilterConfigItem.hxx>
-+#endif
-+#ifndef _SV_BUTTON_HXX
-+#include <vcl/button.hxx>
-+#endif
-+#ifndef _SV_FIXED_HXX
-+#include <vcl/fixed.hxx>
-+#endif
-+#ifndef _SV_COMBOBOX_HXX
-+#include <vcl/combobox.hxx>
-+#endif
-+#ifndef _SVEDIT_HXX
-+#include <svtools/svmedit.hxx>
-+#endif
-+#ifndef _SFXINTITEM_HXX
-+#include <svtools/intitem.hxx>
-+#endif
-+#ifndef _AEITEM_HXX
-+#include <svtools/aeitem.hxx>
-+#endif
-+#ifndef _SFXITEMSET_HXX
-+#include <svtools/itemset.hxx>
-+#endif
-+#ifndef _SFXSTRITEM_HXX
-+#include <svtools/stritem.hxx>
-+#endif
-+#ifndef _SV_MSGBOX_HXX
-+#include <vcl/msgbox.hxx>
-+#endif
-+#ifndef _VALUESET_HXX
-+#include <svtools/valueset.hxx>
-+#endif
-+#ifndef _GALLERY_HXX_
-+#include <svx/gallery.hxx>
-+#endif
-+#ifndef _SV_GRAPH_HXX
-+#include <vcl/graph.hxx>
-+#endif
-+#ifndef _SFXENUMITEM_HXX
-+#include <svtools/eitem.hxx>
-+#endif
-+#include <svx/impgrf.hxx>
-+#ifndef _SV_COLRDLG_HXX
-+#include <svtools/colrdlg.hxx>
-+#endif
-+#ifndef _EEITEMID_HXX
-+#include <svx/eeitemid.hxx>
-+#endif
-+#ifndef _SVX_COLRITEM_HXX
-+#include <svx/colritem.hxx>
-+#endif
-+#ifndef _SVX_ADRITEM_HXX //autogen
-+//#include <svx/adritem.hxx>
-+#endif
-+#ifndef _LIST_HXX
-+#include <tools/list.hxx>
-+#endif
-+#ifndef _SD_SDIOCMPT_HXX
-+#include <sdiocmpt.hxx>
-+#endif
-+#ifndef _SFXDOCFILE_HXX //autogen
-+#include <sfx2/docfile.hxx>
-+#endif
-+#ifndef _SFXAPP_HXX
-+#include <sfx2/app.hxx>
-+#endif
-+#ifndef _PRESENTATION_HXX
-+#include <pres.hxx>
-+#endif
-+#ifndef INCLUDED_SVTOOLS_USEROPTIONS_HXX
-+#include <svtools/useroptions.hxx>
-+#endif
-+#include <svtools/pathoptions.hxx>
-+
-+#include <stdio.h>
-+#include "htmltheme.hxx"
-+
-+
-+// ::std::list< const SwFrm * >::const_iterator aIter = aParents.begin();
-+// ::std::list< const SwFrm * >::const_iterator aEndIter = aParents.end();
-+// while( aIter != aEndIter )
-+//
-+
-+const SdHtmlTheme &
-+SdHtmlTheme::getTheme()
-+{
-+ /* FIXME: could do with some fun locking action */
-+ static SdHtmlTheme aTheme;
-+
-+ return aTheme;
-+}
-+
-+void
-+SdHtmlTheme::loadDirectory( String aPath )
-+{
-+ INetURLObject aURI( aPath );
-+
-+ aURI.Append( String( RTL_CONSTASCII_USTRINGPARAM( "htmltheme" ) ) );
-+
-+ SvStream *pIStm = ::utl::UcbStreamHelper::CreateStream
-+ ( aURI.GetMainURL( INetURLObject::NO_DECODE ), STREAM_READ );
-+
-+ if( pIStm ) {
-+ int nIdx = 0;
-+ Theme aTheme;
-+
-+ while( !pIStm->IsEof() ) {
-+ ByteString aLine;
-+
-+ if( !pIStm->ReadLine( aLine ) )
-+ break;
-+
-+ aLine.EraseTrailingChars();
-+ aLine.EraseLeadingChars();
-+
-+ if( aLine.Search('#') < STRING_MAXLEN) {
-+ /* comment; ignore */
-+
-+ } else if( aLine.Search(']') < STRING_MAXLEN ) {
-+ aTheme.aName = aLine;
-+
-+ } else if( !aLine.Len() ) {
-+ nIdx = 0;
-+ if (aTheme.aName.Len()) {
-+ int i;
-+ for( i = 0; i < nButtonsPerTheme; i++ ) {
-+ if( !aTheme.aImages[ i ].IsEmpty() )
-+ break;
-+ }
-+ if( i < nButtonsPerTheme )
-+ m_aThemes.push_back( aTheme );
-+
-+ for( i = 0; i < nButtonsPerTheme; i++)
-+ aTheme.aImages[i] = BitmapEx();
-+ aTheme.aName = ByteString();
-+ }
-+
-+ } else {
-+ String aBmpPath = aPath;
-+ aBmpPath += String( RTL_CONSTASCII_USTRINGPARAM( "/" ) );
-+ aBmpPath += String( aLine, RTL_TEXTENCODING_UTF8 );
-+ INetURLObject aBmpURI( aBmpPath );
-+ SvStream *pBmpStm = ::utl::UcbStreamHelper::CreateStream
-+ ( aBmpURI.GetMainURL( INetURLObject::NO_DECODE ), STREAM_READ );
-+
-+ GraphicFilter *pGraphicFilter = GetGrfFilter();
-+ Graphic aGraphic;
-+
-+ if( !pGraphicFilter->ImportGraphic( aGraphic, aBmpURI.GetMainURL( INetURLObject::NO_DECODE ),
-+ *pBmpStm, GRFILTER_FORMAT_DONTKNOW, 0 ) ) {
-+ if( nIdx < nButtonsPerTheme ) {
-+ aTheme.aImages[ nIdx ] = aGraphic.GetBitmapEx();
-+ /* fprintf (stderr, "Icon path '%s': '%s'\n",
-+ (const sal_Char *)rtl::OUStringToOString
-+ (aBmpURI.GetMainURL(INetURLObject::NO_DECODE), RTL_TEXTENCODING_UTF8),
-+ aTheme.aImages[nIdx].IsEmpty() ? "load failed" : "loaded ok"); */
-+ }
-+ }
-+
-+ nIdx++;
-+
-+ delete pBmpStm;
-+ }
-+ }
-+
-+ delete pIStm;
-+ }
-+}
-+
-+
-+SdHtmlTheme::SdHtmlTheme()
-+{
-+ String aMultiPath = SvtPathOptions().GetGalleryPath();
-+
-+ const int nTokenCount = aMultiPath.GetTokenCount( ';' );
-+
-+ if (nTokenCount <= 0)
-+ loadDirectory( aMultiPath );
-+ else
-+ for( int i = 0; i < nTokenCount; i++ ) {
-+ String aCurURL = aMultiPath.GetToken( i, ';' );
-+
-+ loadDirectory( aCurURL );
-+ }
-+}
-+
-+SdHtmlTheme::~SdHtmlTheme()
-+{
-+}
-+
-+int
-+SdHtmlTheme::getThemeCount() const
-+{
-+ return m_aThemes.size();
-+}
-+
-+Bitmap
-+SdHtmlTheme::getThumbnail( int nThemeId ) const
-+{
-+ USHORT nItem = 1;
-+ Size aSize( (8*40) - 8, 32 );
-+ Point aOrigin( 0,0 );
-+ Size aDestSize( 32, 32 );
-+
-+ VirtualDevice aVDev;
-+ aVDev.SetMapMode(MapMode(MAP_PIXEL));
-+ aVDev.SetOutputSizePixel( aSize );
-+
-+ static int nPreviewBitmapOffsets[] = { 1,3,5,7,8,9,10,11 };
-+
-+ for( int nImage = 0; nImage < 8; nImage++ )
-+ {
-+ BitmapEx aBitmap;
-+
-+ if( getBitmap( nThemeId, nPreviewBitmapOffsets[ nImage ], aBitmap ) )
-+ continue;
-+
-+ Point aDestPt( nImage * 40, 0 );
-+ aVDev.DrawBitmapEx( aDestPt, aDestSize, aBitmap );
-+ }
-+
-+ Bitmap aBitmap( aVDev.GetBitmap( aOrigin, aSize ) );
-+
-+ return aBitmap;
-+}
-+
-+long
-+SdHtmlTheme::getBitmap( int nThemeId, int nImage, BitmapEx &rBitmap ) const
-+{
-+ ::std::list< Theme >::const_iterator aIter = m_aThemes.begin();
-+
-+ while (nThemeId-- > 0)
-+ aIter++;
-+
-+ if( aIter == m_aThemes.end() ) {
-+ fprintf( stderr, "Overrun end ...\n");
-+ rBitmap = BitmapEx();
-+
-+ } else if( nImage < 0 || nImage >= nButtonsPerTheme )
-+ rBitmap = BitmapEx();
-+
-+ else
-+ rBitmap = (*aIter).aImages [nImage];
-+
-+ return rBitmap.IsEmpty();
-+}
diff --git a/patches/src680/sd-export-html-translations.diff b/patches/src680/sd-export-html-translations.diff
deleted file mode 100644
index b096a8eea..000000000
--- a/patches/src680/sd-export-html-translations.diff
+++ /dev/null
@@ -1,23 +0,0 @@
-Index: sd/source/filter/html/pubdlg.src
-===================================================================
-RCS file: /cvs/graphics/sd/source/filter/html/pubdlg.src,v
-retrieving revision 1.15
-diff -u -r1.15 pubdlg.src
---- sd/source/filter/html/pubdlg.src 26 Jun 2004 17:54:09 -0000 1.15
-+++ sd/source/filter/html/pubdlg.src 26 Nov 2004 13:26:34 -0000
-@@ -455,12 +455,12 @@
- Text [ en-US ] = "Save graphics as";
- };
-
-- RadioButton PAGE3_GIF
-+ RadioButton PAGE3_PNG
- {
- Pos = MAP_APPFONT( 12, 49 );
- Size = MAP_APPFONT( 116, 10 );
-- Text [ de ] = "~GIF";
-- Text [ en-US ] = "~GIF";
-+ Text [ de ] = "~PNG";
-+ Text [ en-US ] = "~PNG";
- };
-
- RadioButton PAGE3_JPG
diff --git a/patches/src680/sd-export-html.diff b/patches/src680/sd-export-html.diff
deleted file mode 100644
index 544c5d429..000000000
--- a/patches/src680/sd-export-html.diff
+++ /dev/null
@@ -1,373 +0,0 @@
-This patch must be used together with sd-export-html-translations.diff.
-
-Index: inc/resltn.hxx
-===================================================================
-RCS file: /cvs/graphics/sd/inc/resltn.hxx,v
-retrieving revision 1.1.1.1
-diff -u -r1.1.1.1 resltn.hxx
---- sd/inc/resltn.hxx 18 Sep 2000 16:48:28 -0000 1.1.1.1
-+++ sd/inc/resltn.hxx 9 Jun 2004 04:36:03 -0000
-@@ -71,8 +71,8 @@
-
- enum PublishingFormat
- {
-- FORMAT_GIF,
-- FORMAT_JPG
-+ FORMAT_JPG = 1,
-+ FORMAT_PNG = 2
- };
-
- enum PublishingScript
-Index: source/filter/html/htmlex.cxx
-===================================================================
-RCS file: /cvs/graphics/sd/source/filter/html/htmlex.cxx,v
-retrieving revision 1.10
-diff -u -r1.10 htmlex.cxx
---- sd/source/filter/html/htmlex.cxx 4 Jun 2003 11:02:23 -0000 1.10
-+++ sd/source/filter/html/htmlex.cxx 9 Jun 2004 04:36:06 -0000
-@@ -222,6 +222,7 @@
- #include "imapinfo.hxx"
- #include "sdresid.hxx"
- #include "htmlex.hxx"
-+#include "htmltheme.hxx"
-
- using namespace ::rtl;
- using namespace ::com::sun::star;
-@@ -1077,7 +1078,7 @@
- Sequence< PropertyValue > aDescriptor( 3 );
- aDescriptor[0].Name = OUString( RTL_CONSTASCII_USTRINGPARAM("URL") );
- aDescriptor[1].Name = OUString( RTL_CONSTASCII_USTRINGPARAM("FilterName") );
-- aDescriptor[1].Value <<= OUString( RTL_CONSTASCII_USTRINGPARAM(m_eFormat==FORMAT_GIF ? "GIF" : "JPG") );
-+ aDescriptor[1].Value <<= OUString( RTL_CONSTASCII_USTRINGPARAM(m_eFormat==FORMAT_JPG ? "JPG" : "PNG") );
- aDescriptor[2].Name = OUString( RTL_CONSTASCII_USTRINGPARAM("FilterData") );
- aDescriptor[2].Value <<= aFilterData;
-
-@@ -2116,10 +2117,10 @@
-
- pName = new String( RTL_CONSTASCII_USTRINGPARAM("img") );
- *pName += String::CreateFromInt32(nSdPage);
-- if( m_eFormat==FORMAT_GIF )
-- pName->AppendAscii( ".gif" );
-+ if( m_eFormat!=FORMAT_JPG )
-+ pName->AppendAscii( ".png" );
- else
-- pName->AppendAscii( ".jpg" );
-+ pName->AppendAscii( ".jpg" );
-
- m_pImageFiles[nSdPage] = pName;
-
-@@ -2679,10 +2680,7 @@
-
- if(m_nButtonThema != -1)
- {
-- if( GalleryExplorer::BeginLocking( GALLERY_THEME_HTMLBUTTONS ) )
-- {
- Graphic aButton;
-- INT16 nButtons = m_nButtonThema * NUM_BUTTONS;
- for( INT16 nButton = 0; nButton < NUM_BUTTONS && nErr == 0; nButton++ )
- {
- if(!m_bFrames && (nButton == BTN_MORE || nButton == BTN_LESS))
-@@ -2691,11 +2689,8 @@
- if(!m_bImpress && (nButton == BTN_TEXT || nButton == BTN_MORE || nButton == BTN_LESS ))
- continue;
-
-- nErr = CreateBitmap(GALLERY_THEME_HTMLBUTTONS, nButtons + nButton, GetButtonName(nButton));
-+ nErr = CreateBitmap(m_nButtonThema, nButton, GetButtonName(nButton));
- }
--
-- GalleryExplorer::EndLocking( GALLERY_THEME_HTMLBUTTONS );
-- }
- }
-
- if( nErr != 0 )
-@@ -2709,28 +2704,31 @@
- // ====================================================================
- ULONG HtmlExport::CreateBitmap( ULONG nThemeId, INT16 nImage, const String& aName ) const
- {
-+ SdHtmlTheme aTheme = SdHtmlTheme::getTheme();
-+
- String aFull(m_aExportPath);
- aFull += aName;
-
-- Graphic aGraphic;
- EasyFile aFile;
- String aJPG;
- SvStream* pStrm;
- ULONG nErr = aFile.createStream(aFull, pStrm);
- if(nErr == 0)
- {
-- nErr = GalleryExplorer::GetGraphicObj( nThemeId, nImage, &aGraphic )?0:1;
-- if( nErr == 0 )
-+ BitmapEx aBitmap;
-+
-+ nErr = aTheme.getBitmap( nThemeId, nImage, aBitmap );
-+
-+ if (nErr == 0)
- {
- if( m_bUserAttr || m_bDocColors )
- {
-- BitmapEx aBitmap( aGraphic.GetBitmapEx() );
--
-- if( aBitmap.GetTransparentType() != TRANSPARENT_NONE )
-+ if( aBitmap.GetTransparentType() != TRANSPARENT_NONE &&
-+ m_eFormat != FORMAT_PNG )
- SmoothBitmap( aBitmap, m_bUserAttr?m_aBackColor:m_aFirstPageColor );
-- aGraphic = Graphic( aBitmap );
- }
-- nErr = GraphicConverter::Export( *pStrm, aGraphic, CVT_GIF );
-+ Graphic aGraphic = aBitmap;
-+ nErr = GraphicConverter::Export( *pStrm, aGraphic, m_eFormat==FORMAT_JPG?CVT_JPG:CVT_PNG );
- }
-
- if( nErr == 0 )
-@@ -3455,6 +3453,16 @@
- {
- String aName;
- aName.AssignAscii( pButtonNames[nButton] );
-+
-+ xub_StrLen nExtnOffset;
-+ if ( ( nExtnOffset = aName.SearchBackward( '.' ) ) > 0 ) {
-+ aName.Erase( nExtnOffset );
-+ if (m_eFormat != FORMAT_PNG)
-+ aName += String::CreateFromAscii( ".jpg" );
-+ else
-+ aName += String::CreateFromAscii( ".png" );
-+ }
-+
- return aName;
- }
-
-Index: source/filter/html/pubdlg.cxx
-===================================================================
-RCS file: /cvs/graphics/sd/source/filter/html/pubdlg.cxx,v
-retrieving revision 1.3
-diff -u -r1.3 pubdlg.cxx
---- sd/source/filter/html/pubdlg.cxx 16 Jul 2002 08:13:01 -0000 1.3
-+++ sd/source/filter/html/pubdlg.cxx 9 Jun 2004 04:36:07 -0000
-@@ -149,6 +149,7 @@
- #include "htmlattr.hxx"
- #include "htmlex.hxx"
- #include "helpids.h"
-+#include "htmltheme.hxx"
-
- using namespace std;
- using namespace rtl;
-@@ -509,7 +510,7 @@
- pPage2_Index->SetText(aText);
- pPage2_CGI->SetText( UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "/cgi-bin/" ) ) );
-
-- pPage3_Gif->SetClickHdl(LINK(this,SdPublishingDlg, GfxFormatHdl));
-+ pPage3_Png->SetClickHdl(LINK(this,SdPublishingDlg, GfxFormatHdl));
- pPage3_Jpg->SetClickHdl(LINK(this,SdPublishingDlg, GfxFormatHdl));
-
- pPage3_Resolution_1->SetClickHdl(LINK(this,SdPublishingDlg, ResolutionHdl ));
-@@ -663,7 +664,7 @@
- aAssistentFunc.InsertControl(3,
- pPage3_Titel1 = new FixedLine(this,SdResId(PAGE3_TITEL_1)));
- aAssistentFunc.InsertControl(3,
-- pPage3_Gif = new RadioButton(this,SdResId(PAGE3_GIF)));
-+ pPage3_Png = new RadioButton(this,SdResId(PAGE3_PNG)));
- aAssistentFunc.InsertControl(3,
- pPage3_Jpg = new RadioButton(this,SdResId(PAGE3_JPG)));
- aAssistentFunc.InsertControl(3,
-@@ -721,6 +722,7 @@
- pPage5_TextOnly = new CheckBox(this, SdResId(PAGE5_TEXTONLY)));
- aAssistentFunc.InsertControl(5,
- pPage5_Buttons = new ValueSet(this,SdResId(PAGE5_BUTTONS)));
-+ pPage5_Buttons->SetStyle(pPage5_Buttons->GetStyle() | WB_VSCROLL);
-
- // Seite 6
- aAssistentFunc.InsertControl(6,
-@@ -814,7 +816,7 @@
-
- delete pPage3_Bmp;
- delete pPage3_Titel1;
-- delete pPage3_Gif;
-+ delete pPage3_Png;
- delete pPage3_Jpg;
- delete pPage3_Quality_txt;
- delete pPage3_Quality;
-@@ -944,7 +946,7 @@
- aProps.push_back( aValue );
-
- aValue.Name = OUString( RTL_CONSTASCII_USTRINGPARAM( "Format" ) );
-- aValue.Value <<= (sal_Int32)(pPage3_Gif->IsChecked()?FORMAT_GIF:FORMAT_JPG);
-+ aValue.Value <<= (sal_Int32)(pPage3_Png->IsChecked()?FORMAT_PNG:FORMAT_JPG);
- aProps.push_back( aValue );
-
- // Page 4
-@@ -980,7 +982,7 @@
- if( !pPage5_TextOnly->IsChecked() )
- {
- aValue.Name = OUString( RTL_CONSTASCII_USTRINGPARAM( "UseButtonSet" ) );
-- aValue.Value <<= (sal_Int32)(pPage5_Buttons->GetSelectItemId() - 1);
-+ aValue.Value <<= (sal_Int32)(pPage5_Buttons->GetSelectItemId());
- aProps.push_back( aValue );
- }
-
-@@ -1128,10 +1130,10 @@
- // =====================================================================
- IMPL_LINK( SdPublishingDlg, GfxFormatHdl, RadioButton *, pButton )
- {
-- if(pButton == pPage3_Gif)
-+ if(pButton == pPage3_Png)
- pPage3_Jpg->Check(FALSE);
- else
-- pPage3_Gif->Check(FALSE);
-+ pPage3_Png->Check(FALSE);
-
- pPage3_Quality->Enable(pButton == pPage3_Jpg);
- return 0;
-@@ -1334,8 +1336,6 @@
- return 0;
- }
-
--static UINT16 nPreviewBitmapOffests[] = { 0,2,4,6,7,8,9,10 };
--
- // =====================================================================
- // Refresh des Dialogs beim wechsel der Seite
- // =====================================================================
-@@ -1466,42 +1466,13 @@
- */
- void SdPublishingDlg::LoadPreviewButtons()
- {
-- if( GalleryExplorer::BeginLocking( GALLERY_THEME_HTMLBUTTONS ) )
-- {
-- UINT16 nFavCount = (UINT16) GalleryExplorer::GetObjCount( GALLERY_THEME_HTMLBUTTONS );
--
-- USHORT nItem = 1;
-- Graphic aThumb;
-- Size aSize( (8*40) - 8, 32 );
-- Point aOrigin( 0,0 );
-- Size aDestSize( 32, 32 );
--
-- for( UINT16 nModelPos = 1; nModelPos < nFavCount; nModelPos+= NUM_BUTTONS )
-- {
-- VirtualDevice aVDev;
-- aVDev.SetMapMode(MapMode(MAP_PIXEL));
-- aVDev.SetOutputSizePixel( aSize );
--
-- for( UINT16 nImage = 0; nImage < 8; nImage++ )
-- {
-- if(!GalleryExplorer::GetGraphicObj( GALLERY_THEME_HTMLBUTTONS, nModelPos + nPreviewBitmapOffests[nImage], &aThumb ) )
-- continue;
-+ SdHtmlTheme aTheme = SdHtmlTheme::getTheme();
-
-- // ValueSet fuellen
-- Bitmap aBitmap( aThumb.GetBitmap() );
--
-- Point aDestPt( nImage * 40, 0 );
-- aVDev.DrawBitmap( aDestPt, aDestSize, aBitmap );
-- }
--
-- String aStr = UniString::CreateFromInt32( nItem );
-- Bitmap aBitmap( aVDev.GetBitmap( aOrigin, aSize ) );
--
-- pPage5_Buttons->InsertItem( (USHORT)nItem++, aBitmap, aStr );
-- }
-+ for (int nThemeId = 0; nThemeId < aTheme.getThemeCount (); nThemeId++)
-+ {
-+ String aStr = UniString::CreateFromInt32( nThemeId );
-+ pPage5_Buttons->InsertItem( (USHORT)nThemeId, aTheme.getThumbnail( nThemeId ), aStr );
- m_bButtonsDirty = FALSE;
--
-- GalleryExplorer::EndLocking( GALLERY_THEME_HTMLBUTTONS );
- }
- }
-
-@@ -1551,7 +1522,7 @@
-
- pPage2_Endless->Check( pDesign->m_bEndless );
-
-- pPage3_Gif->Check(pDesign->m_eFormat == FORMAT_GIF);
-+ pPage3_Png->Check(pDesign->m_eFormat != FORMAT_JPG);
- pPage3_Jpg->Check(pDesign->m_eFormat == FORMAT_JPG);
-
- pPage3_Quality->SetText(pDesign->m_aCompression);
-@@ -1611,7 +1582,7 @@
- pDesign->m_bContentPage = pPage2_Content->IsChecked();
- if(m_bImpress)
- pDesign->m_bNotes = pPage2_Notes->IsChecked();
-- pDesign->m_eFormat = pPage3_Gif->IsChecked()?FORMAT_GIF:FORMAT_JPG;
-+ pDesign->m_eFormat = pPage3_Png->IsChecked()?FORMAT_PNG:FORMAT_JPG;
- pDesign->m_aCompression = pPage3_Quality->GetText();
-
- pDesign->m_nResolution = pPage3_Resolution_1->IsChecked()?PUB_LOWRES_WIDTH:
-@@ -1629,7 +1600,7 @@
- if(pPage5_TextOnly->IsChecked())
- pDesign->m_nButtonThema = -1;
- else
-- pDesign->m_nButtonThema = pPage5_Buttons->GetSelectItemId() - 1;
-+ pDesign->m_nButtonThema = pPage5_Buttons->GetSelectItemId();
-
- pDesign->m_bUserAttr = pPage6_User->IsChecked();
- pDesign->m_aBackColor = m_aBackColor;
-Index: source/ui/inc/pubdlg.hrc
-===================================================================
-RCS file: /cvs/graphics/sd/source/ui/inc/pubdlg.hrc,v
-retrieving revision 1.1
-diff -u -r1.1 pubdlg.hrc
---- sd/source/ui/inc/pubdlg.hrc 18 Apr 2002 15:04:35 -0000 1.1
-+++ sd/source/ui/inc/pubdlg.hrc 9 Jun 2004 04:36:08 -0000
-@@ -108,7 +108,7 @@
-
- #define PAGE3_BMP 50
- #define PAGE3_TITEL_1 51
--#define PAGE3_GIF 52
-+#define PAGE3_PNG 52
- #define PAGE3_JPG 53
- #define PAGE3_QUALITY_TXT 54
- #define PAGE3_QUALITY 55
-Index: /source/ui/inc/pubdlg.hxx
-===================================================================
-RCS file: /cvs/graphics/sd/source/ui/inc/pubdlg.hxx,v
-retrieving revision 1.2
-diff -u -r1.2 pubdlg.hxx
---- sd/source/ui/inc/pubdlg.hxx 16 Jul 2002 08:13:01 -0000 1.2
-+++ sd/source/ui/inc/pubdlg.hxx 9 Jun 2004 04:36:08 -0000
-@@ -163,7 +163,7 @@
- // page 3 controls
- FixedBitmap* pPage3_Bmp;
- FixedLine* pPage3_Titel1;
-- RadioButton* pPage3_Gif;
-+ RadioButton* pPage3_Png;
- RadioButton* pPage3_Jpg;
- FixedText* pPage3_Quality_txt;
- ComboBox* pPage3_Quality;
-
-Index: source/filter/html/makefile.mk
-===================================================================
-RCS file: /cvs/graphics/sd/source/filter/html/makefile.mk,v
-retrieving revision 1.4
-diff -u -r1.4 makefile.mk
---- sd/source/filter/html/makefile.mk 2 Aug 2002 12:13:59 -0000 1.4
-+++ sd/source/filter/html/makefile.mk 9 Jun 2004 04:36:06 -0000
-@@ -78,10 +78,12 @@
- $(SLO)$/sdhtmlfilter.obj \
- $(SLO)$/htmlex.obj \
- $(SLO)$/htmlattr.obj \
-+ $(SLO)$/htmltheme.obj \
- $(SLO)$/pubdlg.obj
-
- EXCEPTIONSFILES = $(SLO)$/HtmlOptionsDialog.obj \
-- $(SLO)$/htmlex.obj
-+ $(SLO)$/htmlex.obj \
-+ $(SLO)$/htmltheme.obj
-
- SRS1NAME=$(TARGET)
- SRC1FILES = pubdlg.src
-@@ -90,11 +92,12 @@
- LIB1OBJFILES = \
- $(SLO)$/HtmlOptionsDialog.obj\
- $(SLO)$/sdhtmlfilter.obj \
-- $(SLO)$/htmlex.obj
-+ $(SLO)$/htmlex.obj \
-+ $(SLO)$/htmltheme.obj
-
- LIB2TARGET= $(SLB)$/$(TARGET)_ui.lib
- LIB2OBJFILES = \
- $(SLO)$/htmlattr.obj \
-- $(SLO)$/pubdlg.obj
-+ $(SLO)$/pubdlg.obj
-
- # --- Targets --------------------------------------------------------------
diff --git a/patches/src680/sd-save-image-context-menu-localize.diff b/patches/src680/sd-save-image-context-menu-localize.diff
deleted file mode 100644
index 33fbbeb28..000000000
--- a/patches/src680/sd-save-image-context-menu-localize.diff
+++ /dev/null
@@ -1,37 +0,0 @@
---- sd/source/ui/app/localize.sdf 2004-12-07 18:50:16.000000000 +0530
-+++ sd/source/ui/app/localize.sdf 2004-12-23 12:32:43.725777285 +0530
-@@ -496,6 +496,34 @@
- sd source\ui\app\menuids.src 0 menuitem MN_COLORRESOLUTION DUMMY+4 0 tr Renk çözünürlüğü 2002-02-02 02:02:02
- sd source\ui\app\menuids.src 0 menuitem MN_COLORRESOLUTION DUMMY+4 0 zh-CN 彩色分辨率(~C) 2002-02-02 02:02:02
- sd source\ui\app\menuids.src 0 menuitem MN_COLORRESOLUTION DUMMY+4 0 zh-TW é¡è‰²è§£æžåº¦(~C) 2002-02-02 02:02:02
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 ar ...Ø­Ùظ الصورة 20040507 14:26:28
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 ca Desa ~imatge... 20040507 14:26:28
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 cs Uložit obrázek 2003-10-21 15:24:56.263
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 cz Uložit obrázek 20040507 14:26:28
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 da Gem grafik... 20040507 14:26:28
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 el Αποθήκευση ~γÏαφικοÏ... 20040507 14:26:28
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 es Guardar ~imagen... 2004-10-06 18:01:49.373
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 et Save Graphics... 20040507 14:26:28
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 fi Tallenna grafiikka... 20040507 14:26:28
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 fr Enregistrer l'~image... 2004-10-06 18:01:49.373
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 he ~Grafik speichern... 20040507 14:26:28
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 hi-IN सà¥à¤šà¤¿à¤¤à¥à¤°à¥‹à¤‚ को संचित करो... 20040507 14:26:28
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 hu Kép mentése... 20040507 14:26:28
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 it ~Salva immagine... 2004-10-06 18:01:49.373
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 ja 図ã®ä¿å­˜... 2004-10-06 18:01:49.373
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 ko 그래픽 저장... 2004-10-06 18:01:49.373
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 nl Afbeelding ops~laan... 20040507 14:26:28
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 pl Zapisz grafikÄ™... 20040507 14:26:28
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 pt ~Guardar imagem... 20040507 14:26:28
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 pt-BR Salvar figura... 2004-10-06 18:01:49.373
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 ru Сохранить графичеÑкий объект... 20040507 14:26:28
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 sk Uložiť obrázok 20040507 14:26:28
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 sl Shrani grafiko... 20040507 14:26:28
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 sv ~Spara grafik... 2004-10-06 18:01:49.373
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 th บันทึà¸à¸à¸£à¸²à¸Ÿà¸´à¸„... 20040507 14:26:28
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 tr GrafiÄŸi kaydet... 20040507 14:26:28
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 zh-CN 存盘图形... 2004-10-06 18:01:49.373
-+sd source\ui\app\menuids_tmpl.src 0 menuitem MN_SAVE_GRAPHIC SID_SAVE_GRAPHIC SID_SAVE_GRAPHIC 0 zh-TW 儲存圖形... 2004-10-06 18:01:49.373
- sd source\ui\app\menuids.src 0 menuitem MN_COMBINE SID_COMBINE SID_COMBINE 0 cs Složit Combine selected objects 2002-02-02 02:02:02
- sd source\ui\app\menuids.src 0 menuitem MN_COMBINE SID_COMBINE SID_COMBINE 0 da Kombiner Kombinér markerede objekter 2002-02-02 02:02:02
- sd source\ui\app\menuids.src 0 menuitem MN_COMBINE SID_COMBINE SID_COMBINE 0 es Com~binar Combina los objetos seleccionados 2002-02-02 02:02:02
diff --git a/patches/src680/sd-save-image-context-menu.diff b/patches/src680/sd-save-image-context-menu.diff
deleted file mode 100644
index 1d3fea8ed..000000000
--- a/patches/src680/sd-save-image-context-menu.diff
+++ /dev/null
@@ -1,272 +0,0 @@
---- sd/inc/app.hrc 2004-12-07 18:49:43.000000000 +0530
-+++ sd/inc/app.hrc 2004-12-22 13:45:04.000000000 +0530
-@@ -487,4 +487,7 @@
- #define SID_RENAME_MASTER_PAGE (SID_SD_START+433)
- #define SID_CLOSE_MASTER_VIEW (SID_SD_START+434)
-
-+// FIXME get an official SID
-+#define SID_SAVE_GRAPHIC (SID_SD_START+450)
-+
- #endif
---- sd/sdi/_drvwsh.sdi 2004-12-07 18:50:08.000000000 +0530
-+++ sd/sdi/_drvwsh.sdi 2004-12-22 13:46:11.000000000 +0530
-@@ -115,6 +115,11 @@ interface DrawView : Object
- ExecMethod = FuTemporary ;
- StateMethod = GetMenuState ;
- ]
-+ SID_SAVE_GRAPHIC // ole : yes, status : ?
-+ [
-+ ExecMethod = FuTemporary ;
-+ StateMethod = GetMenuState ;
-+ ]
- SID_CUT // ole : no, status : ?
- [
- ExecMethod = FuSupport ;
---- sd/sdi/sdraw.sdi 2004-12-07 18:50:09.000000000 +0530
-+++ sd/sdi/sdraw.sdi 2004-12-22 13:49:14.000000000 +0530
-@@ -4818,6 +4818,31 @@ SfxVoidItem OriginalSize SID_ORIGINAL_SI
- ]
-
- //--------------------------------------------------------------------------
-+SfxVoidItem SaveGraphic SID_SAVE_GRAPHIC
-+()
-+[
-+ /* flags: */
-+ AutoUpdate = FALSE,
-+ Cachable = Cachable,
-+ FastCall = FALSE,
-+ HasCoreId = FALSE,
-+ HasDialog = FALSE,
-+ ReadOnlyDoc = TRUE,
-+ Toggle = FALSE,
-+ Container = FALSE,
-+ RecordAbsolute = FALSE,
-+ RecordPerSet;
-+ Synchron;
-+
-+ /* config: */
-+ AccelConfig = FALSE,
-+ MenuConfig = FALSE,
-+ StatusBarConfig = FALSE,
-+ ToolBoxConfig = FALSE,
-+ GroupId = GID_MODIFY;
-+]
-+
-+//--------------------------------------------------------------------------
- SfxBoolItem OutlineMode SID_OUTLINEMODE
-
- [
-
---- sd/source/ui/app/menuids_tmpl.src 2004-11-04 21:34:05.000000000 +0530
-+++ sd/source/ui/app/menuids_tmpl.src 2004-12-23 11:57:32.982925950 +0530
-@@ -1357,6 +1357,16 @@
- Text [ x-comment ] = " ";\
- };
-
-+#define MN_SAVE_GRAPHIC\
-+ MenuItem\
-+ {\
-+ Identifier = SID_SAVE_GRAPHIC ; \
-+ HelpID = SID_SAVE_GRAPHIC ; \
-+ Text [ de ] = "~Grafik speichern..." ; \
-+ Text [ en-US ] = "Save ~Graphic..." ; \
-+ Text [ x-comment ] = " "; \
-+ };
-+
- #define MN_COLORRESOLUTION \
- MenuItem\
- {\
---- sd/source/ui/app/popup2_tmpl.src 2004-12-07 18:50:16.000000000 +0530
-+++ sd/source/ui/app/popup2_tmpl.src 2004-12-23 11:49:14.865785320 +0530
-@@ -570,6 +570,15 @@
- MN_STARIMAGE
- MN_COLORRESOLUTION
- SEPARATOR
-+ MenuItem\
-+ {\
-+ Identifier = SID_SAVE_GRAPHIC ; \
-+ HelpID = SID_SAVE_GRAPHIC ; \
-+ Text [ de ] = "~Grafik speichern..." ; \
-+ Text [ en-US ] = "Save ~Graphic..." ; \
-+ Text [ x-comment ] = " "; \
-+ };
-+ SEPARATOR
- MN_CHAR_PARAGRAPH
- SEPARATOR
- MN_POSITION
---- sd/source/ui/inc/DrawViewShell.hxx 2004-12-07 18:50:23.000000000 +0530
-+++ sd/source/ui/inc/DrawViewShell.hxx 2004-12-22 14:00:43.000000000 +0530
-@@ -490,6 +490,9 @@ private:
- PageKind ePageKind,
- SdPage* pPage);
-
-+ /** Saves the selected graphic to a user-specified file */
-+ void SaveGraphic( );
-+
- ::com::sun::star::uno::Reference< ::com::sun::star::scanner::XScannerManager > mxScannerManager;
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener > mxScannerListener;
- TransferableClipboardListener* pClipEvtLstnr;
---- sd/source/ui/view/drviews2.cxx 2004-12-07 18:50:29.000000000 +0530
-+++ sd/source/ui/view/drviews2.cxx 2004-12-22 15:44:30.000000000 +0530
-@@ -112,6 +112,35 @@
- #include <basic/sbstar.hxx>
- #endif
-
-+#ifndef INCLUDED_SVTOOLS_PATHOPTIONS_HXX
-+#include <svtools/pathoptions.hxx>
-+#endif
-+#ifndef _COM_SUN_STAR_UI_DIALOGS_XFILEPICKER_HPP_
-+#include <com/sun/star/ui/dialogs/XFilePicker.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_UI_DIALOGS_XFILTERMANAGER_HPP_
-+#include <com/sun/star/ui/dialogs/XFilterManager.hpp>
-+#endif
-+#ifndef _COM_SUN_STAR_UI_DIALOGS_TEMPLATEDESCRIPTION_HPP_
-+#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
-+#endif
-+#ifndef _FILEDLGHELPER_HXX
-+#include <sfx2/filedlghelper.hxx>
-+#endif
-+#ifndef _URLOBJ_HXX
-+#include <tools/urlobj.hxx>
-+#endif
-+#ifndef _FILTER_HXX
-+#include <svtools/filter.hxx>
-+#endif
-+#ifndef _SVX_IMPGRF_HXX
-+#include <svx/impgrf.hxx>
-+#endif
-+#ifndef _XOUTBMP_HXX
-+#include <svx/xoutbmp.hxx>
-+#endif
-+
-+
- #define ITEMID_FIELD EE_FEATURE_FIELD
- #ifndef _SVX_FLDITEM_HXX //autogen
- #include <svx/flditem.hxx>
-@@ -1256,6 +1285,12 @@ void DrawViewShell::FuTemporary(SfxReque
- rReq.Done();
- break;
-
-+ case SID_SAVE_GRAPHIC:
-+ SaveGraphic();
-+ Cancel();
-+ rReq.Ignore();
-+ break;
-+
- case SID_DRAW_FONTWORK:
- case SID_DRAW_FONTWORK_VERTICAL:
- {
-@@ -1306,4 +1341,88 @@ SdPage* DrawViewShell::CreateOrDuplicate
- return pNewPage;
- }
-
-+
-+// From sw/source/ui/docvw/romenu.cxx
-+static void lcl_GetPreferedExtension( String &rExt, const Graphic &rGrf )
-+{
-+ // dann ggfs. ueber die native-Info der Grafik den "besten"
-+ // Filter vorschlagen
-+ const sal_Char* pExt = "png";
-+ switch( ((Graphic *)&rGrf)->GetLink().GetType() )
-+ {
-+ case GFX_LINK_TYPE_NATIVE_GIF: pExt = "gif"; break;
-+ case GFX_LINK_TYPE_NATIVE_TIF: pExt = "tif"; break;
-+ case GFX_LINK_TYPE_NATIVE_WMF: pExt = "wmf"; break;
-+ case GFX_LINK_TYPE_NATIVE_MET: pExt = "met"; break;
-+ case GFX_LINK_TYPE_NATIVE_PCT: pExt = "pct"; break;
-+ case GFX_LINK_TYPE_NATIVE_JPG: pExt = "jpg"; break;
-+ }
-+ rExt.AssignAscii( pExt );
-+}
-+
-+
-+void DrawViewShell::SaveGraphic()
-+{
-+ using namespace com::sun::star::uno;
-+ using namespace com::sun::star::ui::dialogs;
-+ using namespace ::sfx2;
-+
-+ SvtPathOptions aPathOpt;
-+ String sGrfPath( aPathOpt.GetGraphicPath() );
-+
-+ FileDialogHelper aDlgHelper( TemplateDescription::FILESAVE_SIMPLE, 0 );
-+ Reference < XFilePicker > xFP = aDlgHelper.GetFilePicker();
-+
-+ INetURLObject aPath;
-+ aPath.SetSmartURL( sGrfPath);
-+
-+ SdrGrafObj *pGrafObj = PTR_CAST( SdrGrafObj, pDrView->GetMarkedObjectList().GetMark( 0 )->GetObj() );
-+ if (0 == pGrafObj )
-+ return;
-+
-+ const Graphic &rGraphic = pGrafObj->GetGraphic();
-+
-+ String aExt;
-+ lcl_GetPreferedExtension( aExt, rGraphic );
-+ aExt.ToLowerAscii();
-+ int nDfltFilter = INT_MAX;
-+
-+ xFP->setDisplayDirectory( aPath.GetMainURL(INetURLObject::DECODE_TO_IURI) );
-+
-+ GraphicFilter& rGF = *GetGrfFilter();
-+ const USHORT nCount = rGF.GetExportFormatCount();
-+
-+ Reference<XFilterManager> xFltMgr(xFP, UNO_QUERY);
-+
-+ for ( int i = 0; i < nCount; i++ )
-+ {
-+ xFltMgr->appendFilter( rGF.GetExportFormatName( i ), rGF.GetExportWildcard( i ) );
-+ if ( COMPARE_EQUAL == aExt.CompareIgnoreCaseToAscii(rGF.GetExportFormatShortName( i ).ToLowerAscii() ))
-+ nDfltFilter = i;
-+ }
-+
-+ if( INT_MAX == nDfltFilter )
-+ return;
-+
-+ xFltMgr->setCurrentFilter( rGF.GetExportFormatName( nDfltFilter ) );
-+
-+ if( aDlgHelper.Execute() == ERRCODE_NONE )
-+ {
-+ String sPath( xFP->getFiles().getConstArray()[0] );
-+ //verwendeten Pfad merken - bitte nicht wieder wegoptimieren!
-+ aPath.SetSmartURL( sPath);
-+ sGrfPath = aPath.GetPath();
-+
-+ int nFilter;
-+ if ( xFltMgr->getCurrentFilter().getLength() && rGF.GetExportFormatCount() )
-+ nFilter = rGF.GetExportFormatNumber( xFltMgr->getCurrentFilter() );
-+ else
-+ nFilter = GRFILTER_FORMAT_DONTKNOW;
-+ String aFilter( rGF.GetExportFormatShortName( nFilter ) );
-+ XOutBitmap::WriteGraphic( rGraphic, sPath, aFilter,
-+ XOUTBMP_DONT_EXPAND_FILENAME );
-+ return;
-+ }
-+}
-+
- } // end of namespace sd
---- sd/source/ui/view/drviewsj.cxx 2004-10-15 16:06:30.000000000 +0530
-+++ sd/source/ui/view/drviewsj.cxx 2004-12-22 14:11:09.000000000 +0530
-@@ -193,7 +193,8 @@ void DrawViewShell::GetMenuStateSel( Sfx
- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_BEFORE_OBJ ) ||
- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_BEHIND_OBJ ) ||
- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_REVERSE_ORDER ) ||
-- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ORIGINAL_SIZE ) )
-+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ORIGINAL_SIZE ) ||
-+ SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_SAVE_GRAPHIC ) )
- {
- const SdrObject* pObj = rMarkList.GetMark(0)->GetObj();
- UINT32 nInv = pObj->GetObjInventor();
-@@ -211,6 +212,11 @@ void DrawViewShell::GetMenuStateSel( Sfx
- rSet.DisableItem(SID_ORIGINAL_SIZE);
- }
-
-+ if( !( pObj->ISA( SdrGrafObj ) ) )
-+ {
-+ rSet.DisableItem( SID_SAVE_GRAPHIC );
-+ }
-+
- // Wenn es sich um kein Gruppenobjekt oder 3D-Objekt handelt
- // wird "Gruppe betreten" disabled
- if( !( ( pObj->ISA( SdrObjGroup ) && nInv == SdrInventor ) ||
diff --git a/patches/src680/sdk-remove-non-free.diff b/patches/src680/sdk-remove-non-free.diff
deleted file mode 100644
index 6ee838b13..000000000
--- a/patches/src680/sdk-remove-non-free.diff
+++ /dev/null
@@ -1,60 +0,0 @@
-Index: sdk_oo/pack/copying/makefile.mk
-===================================================================
---- sdk_oo/pack/copying/makefile.mk.orig 2005-11-14 09:28:11.000000000 +0000
-+++ sdk_oo/pack/copying/makefile.mk 2005-11-16 12:32:39.000000000 +0000
-@@ -50,16 +50,9 @@
- $(DESTDIRDOCU)$/tools.html \
- $(DESTDIRDOCU)$/notsupported.html \
- $(DESTDIRDOCU)$/install.html \
-- $(DESTDIRDOCU)$/DevelopersGuide_intro.html \
- $(DESTDIREXAMPLES)$/examples.html \
- $(DESTDIREXAMPLES)$/DevelopersGuide$/examples.html
-
--DOCUFILES= \
-- $(DESTDIRDOCU)$/DevelopersGuide$/DevelopersGuide.xhtml \
-- $(DESTDIRDOCU)$/DevelopersGuide$/DevelopersGuide.pdf \
-- $(DESTDIRDOCU)$/sdk_styles.css \
-- $(DESTDIRGENIDLREF)$/idl.css
--
- DIR_FILE_LIST=\
- $(DOCUFILES) \
- $(READMEFILES) \
-@@ -94,15 +87,6 @@
- echo BUILDID= $(RSCREVISION)>> $@
- .ENDIF
-
--$(DESTDIRDOCU)$/DevelopersGuide$/DevelopersGuide.pdf : DevelopersGuide.pdf
-- +-$(MKDIRHIER) $(@:d)
-- +-rm -f $@ >& $(NULLDEV)
-- $(MY_COPY) DevelopersGuide.pdf $(DESTDIRDOCU)$/DevelopersGuide
--
--$(DESTDIRDOCU)$/DevelopersGuide$/DevelopersGuide.xhtml : DevelopersGuide.zip
-- +-$(MKDIRHIER) $(@:d)
-- +unzip -quod $(DESTDIRDOCU) DevelopersGuide.zip && touch $@
--
- $(CONVERTTAGFLAG) : $(MISC)$/deltree.txt
- +$(PERL) $(CONVERTTAGSCRIPT) 1 $(TITLE) $(OFFICEPRODUCTNAME) $(DOCUHTMLFILES)
- @echo "tags converted" > $@
-Index: sdk_oo/util/check.pl
-===================================================================
---- sdk_oo/util/check.pl.orig 2005-11-11 10:52:54.000000000 +0000
-+++ sdk_oo/util/check.pl 2005-11-16 12:33:22.000000000 +0000
-@@ -78,18 +78,6 @@
- }
- print "\n";
-
-- # check DevGuide
-- print "check DevGuide: ";
-- if (! -e "$StartDir/docs/DevelopersGuide/DevelopersGuide.pdf") {
-- print "\nERROR: \"$StartDir/docs/DevelopersGuide/DevelopersGuide.pdf\" is missing\n";
-- $return++;
-- }
-- if (! -e "$StartDir/docs/DevelopersGuide/DevelopersGuide.xhtml") {
-- print "\nERROR: \"$StartDir/docs/DevelopersGuide/DevelopersGuide.xhtml\" is missing\n";
-- $return++;
-- }
-- print "\n";
--
- #check setting files
- print "check setting files: ";
- if (-d "$StartDir/settings") {
diff --git a/patches/src680/sensible-browser.diff b/patches/src680/sensible-browser.diff
deleted file mode 100644
index 7aa33f7db..000000000
--- a/patches/src680/sensible-browser.diff
+++ /dev/null
@@ -1,56 +0,0 @@
-Index: shell/source/unix/misc/gnome-open-url.sh
-===================================================================
-RCS file: /cvs/gsl/shell/shell/source/unix/misc/gnome-open-url.sh,v
-retrieving revision 1.3
-diff -u -u -r1.3 gnome-open-url.sh
---- shell/source/unix/misc/gnome-open-url.sh 13 May 2005 07:31:07 -0000 1.3
-+++ shell/source/unix/misc/gnome-open-url.sh 6 Jun 2005 09:43:06 -0000
-@@ -49,7 +49,11 @@
- ;;
- esac
-
--# use gnome-open utility coming with libgnome if available
--gnome-open $1 2>/dev/null || "$0.bin" $1
-+if which gnome-open; then
-+ # use gnome-open utility coming with libgnome if available
-+ gnome-open $1 2>/dev/null
-+else
-+ sensible-browser $1
-+fi
-
- exit 0
-Index: shell/source/unix/misc/kde-open-url.sh
-===================================================================
-RCS file: /cvs/gsl/shell/shell/source/unix/misc/kde-open-url.sh,v
-retrieving revision 1.2
-diff -u -u -r1.2 kde-open-url.sh
---- shell/source/unix/misc/kde-open-url.sh 10 May 2004 13:08:06 -0000 1.2
-+++ shell/source/unix/misc/kde-open-url.sh 6 Jun 2005 09:43:06 -0000
-@@ -51,9 +51,9 @@
-
- # special handling for mailto: uris
- if echo $1 | grep '^mailto:' > /dev/null; then
-- kmailservice $1 &
-+ sensible-ooomua $1
- else
-- kfmclient openURL $1 &
-+ sensible-browser $1
- fi
-
- exit 0
-Index: shell/source/unix/misc/open-url.sh
-===================================================================
-RCS file: /cvs/gsl/shell/shell/source/unix/misc/open-url.sh,v
-retrieving revision 1.2
-diff -u -u -r1.2 open-url.sh
---- shell/source/unix/misc/open-url.sh 10 May 2004 13:08:30 -0000 1.2
-+++ shell/source/unix/misc/open-url.sh 6 Jun 2005 09:43:06 -0000
-@@ -116,6 +116,8 @@
- if [ $BROWSER ]; then
- $BROWSER $1 &
- exit 0
-+ elif [ -x /usr/bin/sensible-browser ]; then
-+ sensible-browser $1
- else
- # mozilla derivates may need -remote semantics
- for i in mozilla netscape firefox; do
diff --git a/patches/src680/sensible-ooomua.diff b/patches/src680/sensible-ooomua.diff
deleted file mode 100644
index 193766f51..000000000
--- a/patches/src680/sensible-ooomua.diff
+++ /dev/null
@@ -1,17 +0,0 @@
-Index: Common.xcu
-===================================================================
-RCS file: /cvs/util/officecfg/registry/data/org/openoffice/Office/Common.xcu,v
-retrieving revision 1.31
-diff -u -u -r1.31 Common.xcu
---- officecfg/registry/data/org/openoffice/Office/Common.xcu 23 Mar 2005 10:53:46 -0000 1.31
-+++ officecfg/registry/data/org/openoffice/Office/Common.xcu 25 May 2005 23:23:30 -0000
-@@ -597,4 +597,9 @@
- <value>false</value>
- </prop>
- </node>
-+ <node oor:name="ExternalMailer">
-+ <prop oor:name="Program" oor:type="xs:string">
-+ <value>sensible-ooomua</value>
-+ </prop>
-+ </node>
- </oor:component-data>
diff --git a/patches/src680/sfx2-source-view-viewprn-cxx.diff b/patches/src680/sfx2-source-view-viewprn-cxx.diff
deleted file mode 100644
index 5713dbf56..000000000
--- a/patches/src680/sfx2-source-view-viewprn-cxx.diff
+++ /dev/null
@@ -1,34 +0,0 @@
-Index: sfx2/source/view/viewprn.cxx
-===================================================================
-RCS file: /cvs/framework/sfx2/source/view/viewprn.cxx,v
-retrieving revision 1.19
-diff -u -p -r1.19 viewprn.cxx
---- sfx2/source/view/viewprn.cxx 7 Sep 2005 19:32:44 -0000 1.19
-+++ sfx2/source/view/viewprn.cxx 7 Nov 2005 20:38:51 -0000
-@@ -595,8 +595,13 @@ void SfxViewShell::ExecPrint_Impl( SfxRe
- pPrintDlg->SetCopyCount( nCopies );
- }
-
-+ if ( pSelectItem && pSelectItem->GetValue() )
-+ {
-+ // print selecion only
-+ pPrintDlg->CheckRange(PRINTDIALOG_SELECTION);
-+ }
- // does the view support ranges?
-- if ( pPagesItem || pPrintDlg->IsRangeEnabled(PRINTDIALOG_RANGE) )
-+ else if ( pPagesItem || pPrintDlg->IsRangeEnabled(PRINTDIALOG_RANGE) )
- {
- // enable ranges
- pPrintDlg->CheckRange(PRINTDIALOG_RANGE);
-@@ -613,11 +618,6 @@ void SfxViewShell::ExecPrint_Impl( SfxRe
- pPrintDlg->SetRangeText( aRange );
- }
- }
-- else if ( pSelectItem && pSelectItem->GetValue() )
-- {
-- // print selecion only
-- pPrintDlg->CheckRange(PRINTDIALOG_SELECTION);
-- }
- else
- {
- // print page rage
diff --git a/patches/src680/sfx2-toolbox-size.diff b/patches/src680/sfx2-toolbox-size.diff
deleted file mode 100644
index 4a6a14cba..000000000
--- a/patches/src680/sfx2-toolbox-size.diff
+++ /dev/null
@@ -1,38 +0,0 @@
---- vcl/inc/toolbox.hxx 2005-09-09 13:33:28.000000000 +0200
-+++ vcl/inc/toolbox.hxx 2005-11-02 17:03:13.000000000 +0100
-@@ -288,7 +288,6 @@ private:
- SAL_DLLPRIVATE void ImplHideFocus();
- SAL_DLLPRIVATE void ImplUpdateInputEnable();
- SAL_DLLPRIVATE void ImplFillLayoutData() const;
-- SAL_DLLPRIVATE const Size& ImplGetDefaultImageSize() const;
- SAL_DLLPRIVATE void ImplUpdateCustomMenu();
- SAL_DLLPRIVATE BOOL ImplHasClippedItems();
- SAL_DLLPRIVATE Point ImplGetPopupPosition( const Rectangle& rRect, const Size& rSize ) const;
-@@ -598,6 +597,8 @@ public:
- Pair GetTextStartEnd( long nText ) const;
- // returns the item id for text portion nText or 0 if nText is invalid
- USHORT GetDisplayItemId( long nText ) const;
-+
-+ const Size& ImplGetDefaultImageSize() const;
- };
-
- inline void ToolBox::CheckItem( USHORT nItemId, BOOL bCheck )
---- sfx2/source/toolbox/tbxitem.cxx 27 Jan 2005 10:19:01 -0000 1.46
-+++ sfx2/source/toolbox/tbxitem.cxx 3 Feb 2005 13:00:20 -0000
-@@ -1704,7 +1704,15 @@
- if ( !aImage )
- aImage = !!aMenuImage ? aMenuImage :
- SvFileInformationManager::GetImage( INetURLObject( aURL ), bBig, bHC );
-- GetToolBox().SetItemImage( GetId(), aImage );
-+ Size aBigSize( GetToolBox().ImplGetDefaultImageSize() );
-+ if ( bBig && aImage.GetSizePixel() != aBigSize )
-+ {
-+ BitmapEx aScaleBmpEx( aImage.GetBitmapEx() );
-+ aScaleBmpEx.Scale( aBigSize, BMP_SCALE_INTERPOLATE );
-+ GetToolBox().SetItemImage( GetId(), Image( aScaleBmpEx ) );
-+ }
-+ else
-+ GetToolBox().SetItemImage( GetId(), aImage );
- aLastURL = aURL;
- }
-
diff --git a/patches/src680/size-sound-framework.diff b/patches/src680/size-sound-framework.diff
deleted file mode 100644
index cad91170c..000000000
--- a/patches/src680/size-sound-framework.diff
+++ /dev/null
@@ -1,117 +0,0 @@
-Index: framework/inc/dispatch/soundhandler.hxx
-===================================================================
-RCS file: /cvs/framework/framework/inc/dispatch/soundhandler.hxx,v
-retrieving revision 1.4
-diff -u -r1.4 soundhandler.hxx
---- framework/inc/dispatch/soundhandler.hxx 9 Sep 2005 00:14:47 -0000 1.4
-+++ framework/inc/dispatch/soundhandler.hxx 1 Nov 2005 12:07:58 -0000
-@@ -120,10 +120,6 @@
- #include <cppuhelper/weak.hxx>
- #endif
-
--#ifndef _SV_SOUND_HXX
--#include <vcl/sound.hxx>
--#endif
--
- //_________________________________________________________________________________________________________________
- // namespace
- //_________________________________________________________________________________________________________________
-@@ -209,7 +205,9 @@
- // private methods
- //-------------------------------------------------------------------------------------------------------------
- private:
-+#if 0
- DECL_LINK( implts_PlayerNotify, void* );
-+#endif
-
- //-------------------------------------------------------------------------------------------------------------
- // variables
-@@ -219,7 +217,9 @@
-
- css::uno::Reference< css::lang::XMultiServiceFactory > m_xFactory ; /// global uno service factory to create new services
- css::uno::Reference< css::uno::XInterface > m_xSelfHold ; /// we must protect us against dieing during async(!) dispatch() call!
-+#if 0
- Sound m_aPlayer ; /// used vcl player to play sounds ... works asynchron ... That's why "self hold" and "request count" ...
-+#endif
- css::uno::Reference< css::frame::XDispatchResultListener > m_xListener ;
-
- }; // class SoundHandler
-Index: framework/source/dispatch/soundhandler.cxx
-===================================================================
-RCS file: /cvs/framework/framework/source/dispatch/soundhandler.cxx,v
-retrieving revision 1.12
-diff -u -r1.12 soundhandler.cxx
---- framework/source/dispatch/soundhandler.cxx 9 Sep 2005 01:22:06 -0000 1.12
-+++ framework/source/dispatch/soundhandler.cxx 1 Nov 2005 12:07:59 -0000
-@@ -159,9 +159,13 @@
- , ::cppu::OWeakObject ( )
- // Init member
- , m_xFactory ( xFactory )
-+#if 0
- , m_aPlayer ( )
-+#endif
- {
-+#if 0
- m_aPlayer.SetNotifyHdl( LINK( this, SoundHandler, implts_PlayerNotify ) );
-+#endif
- }
-
- /*-************************************************************************************************************//**
-@@ -216,6 +220,7 @@
- // SAFE {
- ResetableGuard aLock( m_aLock );
-
-+#if 0
- // If player currently used for other dispatch() requests ...
- // cancel it by calling stop()!
- if (m_aPlayer.IsPlaying())
-@@ -234,6 +239,7 @@
- m_xSelfHold = css::uno::Reference< css::uno::XInterface >(static_cast< ::cppu::OWeakObject* >(this), css::uno::UNO_QUERY);
- m_aPlayer.Play();
- }
-+#endif
-
- // } SAFE
- aLock.unlock();
-@@ -242,7 +248,9 @@
- void SAL_CALL SoundHandler::dispatch( const css::util::URL& aURL ,
- const css::uno::Sequence< css::beans::PropertyValue >& lArguments ) throw( css::uno::RuntimeException )
- {
-+#if 0
- dispatchWithNotification(aURL, lArguments, css::uno::Reference< css::frame::XDispatchResultListener >());
-+#endif
- }
-
- /*-************************************************************************************************************//**
-@@ -274,6 +282,7 @@
- // Our default is "nothing". So we can return it, if detection failed or fily type is realy unknown.
- ::rtl::OUString sTypeName;
-
-+#if 0
- // Analyze given descriptor to find filename or input stream or ...
- ::comphelper::MediaDescriptor aDescriptor(lDescriptor);
- ::rtl::OUString sURL = aDescriptor.getUnpackedValueOrDefault(::comphelper::MediaDescriptor::PROP_URL(), ::rtl::OUString());
-@@ -293,7 +302,7 @@
- aDescriptor[::comphelper::MediaDescriptor::PROP_TYPENAME()] <<= sTypeName;
- aDescriptor >> lDescriptor;
- }
--
-+#endif
- // Return our decision.
- return sTypeName;
- }
-@@ -311,6 +320,7 @@
- @onerror -
- @threadsafe yes
- *//*-*************************************************************************************************************/
-+#if 0
- IMPL_LINK( SoundHandler, implts_PlayerNotify, void*, pVoid )
- {
- // SAFE {
-@@ -344,5 +354,6 @@
-
- return 0;
- }
-+#endif
-
- } // namespace framework
diff --git a/patches/src680/size-sound-sc.diff b/patches/src680/size-sound-sc.diff
deleted file mode 100644
index 9b080b29b..000000000
--- a/patches/src680/size-sound-sc.diff
+++ /dev/null
@@ -1,32 +0,0 @@
-Index: sc/source/ui/view/tabvwshg.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/view/tabvwshg.cxx,v
-retrieving revision 1.9
-diff -u -r1.9 tabvwshg.cxx
---- sc/source/ui/view/tabvwshg.cxx 8 Sep 2005 23:12:04 -0000 1.9
-+++ sc/source/ui/view/tabvwshg.cxx 1 Nov 2005 12:43:25 -0000
-@@ -60,9 +60,6 @@
- #include "document.hxx"
- #include "drawview.hxx"
- #include "globstr.hrc"
--#ifndef _SV_SOUND_HXX
--#include <vcl/sound.hxx>
--#endif
-
- //------------------------------------------------------------------------
-
-@@ -117,12 +114,14 @@
- aAny <<= eButtonType;
- xPropSet->setPropertyValue( rtl::OUString::createFromAscii( "ButtonType" ), aAny );
-
-+#if 0
- if ( Sound::IsSoundFile( rURL ) )
- {
- // #105638# OJ
- aAny <<= sal_True;
- xPropSet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DispatchURLInternal" )), aAny );
- }
-+#endif
-
- Point aPos;
- if (pInsPos)
diff --git a/patches/src680/size-sound-sd.diff b/patches/src680/size-sound-sd.diff
deleted file mode 100644
index cf75f15bd..000000000
--- a/patches/src680/size-sound-sd.diff
+++ /dev/null
@@ -1,249 +0,0 @@
-Index: sd/source/ui/dlg/filedlg.cxx
-===================================================================
-RCS file: /cvs/graphics/sd/source/ui/dlg/filedlg.cxx,v
-retrieving revision 1.13
-diff -u -p -u -r1.13 filedlg.cxx
---- sd/source/ui/dlg/filedlg.cxx 9 Sep 2005 04:00:47 -0000 1.13
-+++ sd/source/ui/dlg/filedlg.cxx 1 Nov 2005 12:42:01 -0000
-@@ -75,9 +75,6 @@
- #include <com/sun/star/ui/dialogs/XFilePicker.hpp>
- #endif
-
--#ifndef _SOUND_HXX //autogen
--#include <vcl/sound.hxx>
--#endif
- #ifndef _SV_MSGBOX_HXX
- #include <vcl/msgbox.hxx>
- #endif
-@@ -126,7 +123,6 @@ private:
-
- css::uno::Reference< css::ui::dialogs::XFilePickerControlAccess > mxControlAccess;
-
-- Sound maSound;
- ULONG mnPlaySoundEvent;
- BOOL mbUsableSelection;
- BOOL mbLabelPlaying;
-@@ -180,11 +176,11 @@ IMPL_LINK( SdFileDialog_Imp, PlayMusicHd
- if( mbLabelPlaying )
- {
- // switch from playing to not playing
--
-+#if 0
- // reset, so that sound file gets unlocked
- maSound.Stop();
- maSound.SetSoundName( String() );
--
-+#endif
- try
- {
- mxControlAccess->setLabel( css::ui::dialogs::ExtendedFilePickerElementIds::PUSHBUTTON_PLAY,
-@@ -201,6 +197,7 @@ IMPL_LINK( SdFileDialog_Imp, PlayMusicHd
- }
- else
- {
-+#if 0
- // switch from not playing to playing of current file
- if( maSound.IsPlaying() )
- {
-@@ -243,6 +241,7 @@ IMPL_LINK( SdFileDialog_Imp, PlayMusicHd
- maSound.SetSoundName( String() );
- }
- }
-+#endif
- }
-
- return 0;
-@@ -257,8 +256,10 @@ IMPL_LINK( SdFileDialog_Imp, StopMusicHd
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
-+#if 0
- // reset, so that sound file gets unlocked
- maSound.SetSoundName( String() );
-+#endif
-
- if( mxControlAccess.is() )
- {
-Index: sd/source/ui/view/drviewse.cxx
-===================================================================
-RCS file: /cvs/graphics/sd/source/ui/view/drviewse.cxx,v
-retrieving revision 1.55
-diff -u -p -u -r1.55 drviewse.cxx
---- sd/source/ui/view/drviewse.cxx 9 Sep 2005 07:12:08 -0000 1.55
-+++ sd/source/ui/view/drviewse.cxx 1 Nov 2005 12:45:23 -0000
-@@ -122,9 +122,6 @@
- #ifndef _URLOBJ_HXX //autogen
- #include <tools/urlobj.hxx>
- #endif
--#ifndef _SV_SOUND_HXX
--#include <vcl/sound.hxx>
--#endif
-
- // #UndoRedo#
- #ifndef _SFXSLSTITM_HXX
-@@ -1717,12 +1714,14 @@ void DrawViewShell::InsertURLButton(cons
- form::FormButtonType eButtonType = form::FormButtonType_URL;
- aTmp <<= eButtonType;
- xPropSet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ButtonType" )), aTmp );
-+#if 0
- if ( Sound::IsSoundFile( rURL ) )
- {
- // #105638# OJ
- aTmp <<= sal_True;
- xPropSet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DispatchURLInternal" )), aTmp );
- }
-+#endif
- }
- }
-
-@@ -1757,12 +1756,14 @@ void DrawViewShell::InsertURLButton(cons
- form::FormButtonType eButtonType = form::FormButtonType_URL;
- aTmp <<= eButtonType;
- xPropSet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ButtonType" )), aTmp );
-+#if 0
- // #105638# OJ
- if ( Sound::IsSoundFile( rURL ) )
- {
- aTmp <<= sal_True;
- xPropSet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DispatchURLInternal" )), aTmp );
- }
-+#endif
-
- Point aPos;
-
-Index: sd/source/ui/inc/fusel.hxx
-===================================================================
-RCS file: /cvs/graphics/sd/source/ui/inc/fusel.hxx,v
-retrieving revision 1.5
-diff -u -r1.5 fusel.hxx
---- sd/source/ui/inc/fusel.hxx 9 Sep 2005 05:39:10 -0000 1.5
-+++ sd/source/ui/inc/fusel.hxx 1 Nov 2005 13:05:00 -0000
-@@ -42,7 +42,6 @@
-
- class SdrHdl;
- class SdrObject;
--class Sound;
-
-
- namespace sd {
-@@ -92,10 +91,12 @@
- BOOL bSuppressChangesOfSelection;
- BOOL bMirrorSide0;
- USHORT nEditMode;
-+#if 0
- Sound* pSound;
-
- DECL_LINK( SoundHasStoppedHdl, void* );
- DECL_STATIC_LINK( FuSelection, StaticSoundHasStoppedHdl, Sound* );
-+#endif
-
- private:
- /** This pointer stores a canidate for assigning a style in the water
-Index: sd/source/ui/func/fusel.cxx
-===================================================================
-RCS file: /cvs/graphics/sd/source/ui/func/fusel.cxx,v
-retrieving revision 1.34
-diff -u -r1.34 fusel.cxx
---- sd/source/ui/func/fusel.cxx 23 Sep 2005 11:01:07 -0000 1.34
-+++ sd/source/ui/func/fusel.cxx 1 Nov 2005 13:05:32 -0000
-@@ -58,9 +58,6 @@
- #ifndef _GOODIES_IMAPOBJ_HXX //autogen
- #include <svtools/imapobj.hxx>
- #endif
--#ifndef _SV_SOUND_HXX //autogen
--#include <vcl/sound.hxx>
--#endif
- #include <svtools/urihelper.hxx>
- #include <unotools/localfilehelper.hxx>
- #include <svx/svxids.hrc>
-@@ -170,7 +167,9 @@
- bSuppressChangesOfSelection(FALSE),
- bMirrorSide0(FALSE),
- nEditMode(SID_BEZIER_MOVE),
-+#if 0
- pSound(NULL),
-+#endif
- pWaterCanCandidate(NULL)
- {
- // Objektbar auswaehlen
-@@ -189,8 +188,10 @@
- pView->UnmarkAllPoints();
- pView->ShowMirrored();
- pView->ResetCreationActive();
-+#if 0
- delete pSound;
- pSound = NULL;
-+#endif
-
- if ( pView->GetDragMode() != SDRDRAG_MOVE )
- {
-@@ -1218,12 +1219,14 @@
- |*
- \************************************************************************/
-
-+#if 0
- IMPL_LINK( FuSelection, SoundHasStoppedHdl, void*, p )
- {
- pSound->SetNotifyHdl( Link() );
- pSound->SetSoundName( String() );
- return 0L;
- }
-+#endif
-
-
- /*************************************************************************
-@@ -1378,6 +1381,7 @@
-
- case presentation::ClickAction_SOUND:
- {
-+#if 0
- // Sound asynchron abspielen
- if( !pSound )
- {
-@@ -1388,6 +1392,7 @@
- pSound->SetSoundName( pInfo->aBookmark );
- pSound->Play();
- bAnimated = TRUE;
-+#endif
- }
- break;
-
-Index: sd/source/ui/func/fuslsel.cxx
-===================================================================
-RCS file: /cvs/graphics/sd/source/ui/func/fuslsel.cxx,v
-retrieving revision 1.18
-diff -u -r1.18 fuslsel.cxx
---- sd/source/ui/func/fuslsel.cxx 9 Sep 2005 04:51:14 -0000 1.18
-+++ sd/source/ui/func/fuslsel.cxx 1 Nov 2005 13:05:35 -0000
-@@ -102,7 +102,9 @@
- bPageHit(FALSE),
- bDragSelection(FALSE)
- {
-+#if 0
- pSound = new Sound;
-+#endif
-
- pIsShowingEffectInfo = new FSS_IsShowingEffectInfo;
- pIsShowingEffectInfo->bDisposed = FALSE;
-@@ -117,7 +119,9 @@
- FuSlideSelection::~FuSlideSelection()
- {
- aDragTimer.Stop();
-+#if 0
- delete pSound;
-+#endif
-
- if( pIsShowingEffectInfo && pIsShowingEffectInfo->bIsShowingEffect )
- {
-@@ -483,9 +487,11 @@
-
- void FuSlideSelection::Deactivate()
- {
-+#if 0
- // Sound nicht mehr blockieren, damit er in der Show gespielt werden kann
- if (pSound)
- pSound->Stop();
-+#endif
-
- FuSlide::Deactivate();
- }
diff --git a/patches/src680/size-sound-svx.diff b/patches/src680/size-sound-svx.diff
deleted file mode 100644
index 07df9fdf6..000000000
--- a/patches/src680/size-sound-svx.diff
+++ /dev/null
@@ -1,71 +0,0 @@
-Index: svx/source/gallery2/galctrl.cxx
-===================================================================
-RCS file: /cvs/graphics/svx/source/gallery2/galctrl.cxx,v
-retrieving revision 1.21
-diff -u -p -u -r1.21 galctrl.cxx
---- svx/source/gallery2/galctrl.cxx 8 Sep 2005 23:06:32 -0000 1.21
-+++ svx/source/gallery2/galctrl.cxx 1 Nov 2005 11:57:49 -0000
-@@ -64,7 +64,6 @@ GalleryPreview::GalleryPreview( GalleryB
- {
- SetHelpId( HID_GALLERY_WINDOW );
- InitSettings();
-- aSound.SetNotifyHdl( LINK( this, GalleryPreview, SoundEndHdl ) );
- }
-
- // ------------------------------------------------------------------------
-@@ -77,7 +76,6 @@ GalleryPreview::GalleryPreview( Window*
- {
- SetHelpId( HID_GALLERY_PREVIEW );
- InitSettings();
-- aSound.SetNotifyHdl( LINK( this, GalleryPreview, SoundEndHdl ) );
- }
-
- // ------------------------------------------------------------------------
-@@ -276,14 +274,6 @@ void GalleryPreview::PreviewMedia( const
- }
- }
-
--// ------------------------------------------------------------------------
--
--IMPL_LINK( GalleryPreview, SoundEndHdl, Sound*, pSound )
--{
-- aSound.SetSoundName( String() );
-- return 0L;
--}
--
- // -------------------
- // - GalleryIconView -
- // -------------------
-Index: svx/inc/galctrl.hxx
-===================================================================
-RCS file: /cvs/graphics/svx/inc/galctrl.hxx,v
-retrieving revision 1.5
-diff -u -p -u -r1.5 galctrl.hxx
---- svx/inc/galctrl.hxx 8 Sep 2005 17:48:15 -0000 1.5
-+++ svx/inc/galctrl.hxx 1 Nov 2005 11:57:49 -0000
-@@ -45,7 +45,6 @@
- #include <vcl/menu.hxx>
- #include <vcl/edit.hxx>
- #include <vcl/combobox.hxx>
--#include <vcl/sound.hxx>
- #include <svtools/slstitm.hxx>
- #include <svtools/transfer.hxx>
- #include <svtools/valueset.hxx>
-@@ -74,7 +73,6 @@ private:
-
- GraphicObject aGraphicObj;
- Rectangle aPreviewRect;
-- Sound aSound;
- GalleryTheme* mpTheme;
-
- SVX_DLLPRIVATE BOOL ImplGetGraphicCenterRect( const Graphic& rGraphic, Rectangle& rResultRect ) const;
-@@ -95,8 +93,7 @@ private:
- // DragSourceHelper
- SVX_DLLPRIVATE virtual void StartDrag( sal_Int8 nAction, const Point& rPosPixel );
-
-- DECL_LINK( MenuSelectHdl, Menu* );
-- DECL_LINK( SoundEndHdl, Sound* );
-+ DECL_LINK( MenuSelectHdl, Menu* );
-
- public:
-
diff --git a/patches/src680/size-sound-sw.diff b/patches/src680/size-sound-sw.diff
deleted file mode 100644
index ed02d9727..000000000
--- a/patches/src680/size-sound-sw.diff
+++ /dev/null
@@ -1,32 +0,0 @@
-Index: sw/source/ui/shells/textdrw.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/ui/shells/textdrw.cxx,v
-retrieving revision 1.9
-diff -u -r1.9 textdrw.cxx
---- sw/source/ui/shells/textdrw.cxx 9 Sep 2005 10:53:22 -0000 1.9
-+++ sw/source/ui/shells/textdrw.cxx 1 Nov 2005 12:43:59 -0000
-@@ -84,9 +84,6 @@
- #ifndef SVTOOLS_URIHELPER_HXX
- #include <svtools/urihelper.hxx>
- #endif
--#ifndef _SV_SOUND_HXX
--#include <vcl/sound.hxx>
--#endif
-
- #define C2U(cChar) rtl::OUString::createFromAscii(cChar)
- using namespace ::com::sun::star;
-@@ -158,12 +155,14 @@
- aTmp.setValue( &eButtonType, ::getCppuType((const form::FormButtonType*)0));
- xPropSet->setPropertyValue( C2U("ButtonType"), aTmp );
-
-+#if 0
- if ( Sound::IsSoundFile( rURL ) )
- {
- // #105638# OJ
- aTmp <<= sal_True;
- xPropSet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DispatchURLInternal" )), aTmp );
- }
-+#endif
- }
-
- if (rSh.IsObjSelected())
diff --git a/patches/src680/size-sound-vcl.diff b/patches/src680/size-sound-vcl.diff
deleted file mode 100644
index 5bce30f58..000000000
--- a/patches/src680/size-sound-vcl.diff
+++ /dev/null
@@ -1,640 +0,0 @@
-Index: vcl/inc/salinst.hxx
-===================================================================
-RCS file: /cvs/gsl/vcl/inc/salinst.hxx,v
-retrieving revision 1.14
-diff -u -r1.14 salinst.hxx
---- vcl/inc/salinst.hxx 9 Sep 2005 11:20:23 -0000 1.14
-+++ vcl/inc/salinst.hxx 1 Nov 2005 12:05:25 -0000
-@@ -60,7 +60,6 @@
- class SalGraphics;
- class SalFrame;
- class SalObject;
--class SalSound;
- class SalOpenGL;
- class SalMenu;
- class SalMenuItem;
-@@ -135,8 +134,6 @@
- virtual void DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo ) = 0;
- virtual String GetDefaultPrinter() = 0;
-
-- // SalSound
-- virtual SalSound* CreateSalSound() = 0;
- // SalTimer
- virtual SalTimer* CreateSalTimer() = 0;
- // SalOpenGL
-Index: vcl/inc/sound.hxx
-===================================================================
-RCS file: /cvs/gsl/vcl/inc/sound.hxx,v
-retrieving revision 1.7
-diff -u -r1.7 sound.hxx
---- vcl/inc/sound.hxx 9 Sep 2005 11:26:37 -0000 1.7
-+++ vcl/inc/sound.hxx 1 Nov 2005 12:05:30 -0000
-@@ -36,102 +36,14 @@
- #ifndef _SV_SOUND_HXX
- #define _SV_SOUND_HXX
-
--#ifndef _VCL_DLLAPI_H
--#include "dllapi.h"
--#endif
--
- #ifndef _SV_SNDSTYLE_HXX
- #include <sndstyle.hxx>
- #endif
-
--#ifndef _STRING_HXX
--#include <tools/string.hxx>
--#endif
--#ifndef _LINK_HXX
--#include <tools/link.hxx>
--#endif
--#ifndef _TIME_HXX
--#include <tools/time.hxx>
--#endif
--#ifndef _SV_SALSTYPE_HXX
--#include <salstype.hxx>
--#endif
--
- class Window;
--class Timer;
--class SalSound;
--class RMSound;
--
--// ---------
--// - Sound -
--// ---------
--
--class VCL_DLLPUBLIC Sound
--{
--private:
--
-- SalSound* mpSound;
-- XubString maSoundName;
-- Window* mpWindow;
-- BYTE* mpSoundData_NOTUSED;
-- ULONG mnDataLen;
-- ULONG mnSoundLen;
-- ULONG mnStartTime;
-- ULONG mnPlayTime;
-- ULONG mnErrorCode;
-- SoundNotification meNotification;
-- BOOL mbPlaying;
-- BOOL mbLoopMode;
-- Link maNotifyHdl;
-- void* mpExtraData;
--
--private:
--
-- Sound( const Sound& rSound );
-- Sound& operator=( const Sound& rSound );
--
--#if _SOLAR__PRIVATE
--public:
-- SAL_DLLPRIVATE void ImplNotify( SoundNotification eNotification, ULONG nError );
--#endif // __PRIVATE
--
--public:
-- Sound( Window* pWindow = NULL );
-- virtual ~Sound();
--
-- virtual void Notify();
--
-- void SetWindow( Window* pWindow ) { mpWindow = pWindow; }
-- Window* GetWindow() const { return mpWindow; }
-- BOOL SetSoundName( const XubString& rSoundName );
-- const XubString& GetSoundName() const { return maSoundName; }
-- ULONG GetSoundLen() const { return mnSoundLen; }
--
-- void Play();
-- void Stop();
-- void Pause();
-- BOOL IsPlaying() const { return mbPlaying; }
--
-- void SetStartTime( ULONG nStartTime = 0 );
-- ULONG GetStartTime() const { return mnStartTime; }
-- void SetPlayTime( ULONG nPlayTime = SOUND_PLAYALL );
-- ULONG GetPlayTime() const { return mnPlayTime; }
-- void SetLoopMode( BOOL bLoop );
-- BOOL IsLoopMode() const { return mbLoopMode; }
--
-- void ClearError();
-- ULONG GetLastError() const { return mnErrorCode; }
-- SoundNotification GetNotification() const { return meNotification; }
--
-- void SetNotifyHdl( const Link& rLink ) { maNotifyHdl = rLink; }
-- const Link& GetNotifyHdl() const { return maNotifyHdl; }
--
-- static void Beep( SoundType eType = SOUND_DEFAULT, Window* pWindow = NULL );
--
-- static void SetSoundPath( const XubString& rSoundPath );
-- static const XubString& GetSoundPath();
-
-- static BOOL IsSoundFile( const XubString& rSoundPath );
-+namespace Sound {
-+ void Beep( SoundType eType = SOUND_DEFAULT, Window* pWindow = NULL );
- };
-
- #endif // _SV_SOUND_HXX
-Index: vcl/source/app/salvtables.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/app/salvtables.cxx,v
-retrieving revision 1.5
-diff -u -r1.5 salvtables.cxx
---- vcl/source/app/salvtables.cxx 9 Sep 2005 11:41:19 -0000 1.5
-+++ vcl/source/app/salvtables.cxx 1 Nov 2005 12:05:31 -0000
-@@ -38,7 +38,6 @@
- #include <salvd.hxx>
- #include <salprn.hxx>
- #include <saltimer.hxx>
--#include <salsound.hxx>
- #include <salogl.hxx>
- #include <salimestatus.hxx>
- #include <salsys.hxx>
-@@ -58,10 +57,6 @@
- {
- }
-
--SalSound::~SalSound()
--{
--}
--
- SalTimer::~SalTimer()
- {
- }
-Index: vcl/source/app/sound.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/app/sound.cxx,v
-retrieving revision 1.10
-diff -u -r1.10 sound.cxx
---- vcl/source/app/sound.cxx 9 Sep 2005 11:42:15 -0000 1.10
-+++ vcl/source/app/sound.cxx 1 Nov 2005 12:05:37 -0000
-@@ -33,236 +33,10 @@
- *
- ************************************************************************/
-
--#ifndef _URLOBJ_HXX
--#include <tools/urlobj.hxx>
--#endif
--#ifndef _UNOTOOLS_LOCALFILEHELPER_HXX
--#include <unotools/localfilehelper.hxx>
--#endif
--#ifndef _UNOTOOLS_UCBSTREAMHELPER_HXX
--#include <unotools/ucbstreamhelper.hxx>
--#endif
--#ifndef _SV_SVSYS_HXX
--#include <svsys.h>
--#endif
--#ifndef _SV_SALSOUND_HXX
--#include <salsound.hxx>
--#endif
--#ifndef _SV_SALFRAME_HXX
-+#include <window.hxx>
- #include <salframe.hxx>
--#endif
--#ifndef _DEBUG_HXX
--#include <tools/debug.hxx>
--#endif
--#ifndef _NEW_HXX
--#include <tools/new.hxx>
--#endif
--#ifndef _SV_SVDATA_HXX
- #include <svdata.hxx>
--#endif
--#ifndef _SV_WINDOW_HXX
--#include <window.hxx>
--#endif
--#ifndef _SV_SALSOUND_HXX
--#include <salsound.hxx>
--#endif
--#ifndef _SV_SALBTYPE_HXX
--#include <salbtype.hxx>
--#endif
--#ifndef _SV_SOUND_HXX
- #include <sound.hxx>
--#endif
--#ifndef _SV_SALINST_HXX
--#include <salinst.hxx>
--#endif
--
--
--
--// ----------------------
--// - SalSound-Callback -
--// ----------------------
--
--void SalSoundProc( void* pInst, SoundNotification eNotification, ULONG nError )
--{
-- ( (Sound*) pInst )->ImplNotify( eNotification, nError );
--}
--
--// ---------
--// - Sound -
--// ---------
--
--Sound::Sound( Window* pWindow ) :
-- mpWindow ( pWindow ),
-- mnDataLen ( 0UL ),
-- mnSoundLen ( 0UL ),
-- mnStartTime ( 0UL ),
-- mnPlayTime ( SOUND_PLAYALL ),
-- mnErrorCode ( 0UL ),
-- meNotification ( SOUND_NOTIFY_SUCCESS ),
-- mbPlaying ( FALSE ),
-- mbLoopMode ( FALSE )
--{
-- mpSound = ImplGetSVData()->mpDefInst->CreateSalSound();
--
-- if( mpSound->IsValid() )
-- mpSound->SetNotifyProc( this, SalSoundProc );
--}
--
--// -----------------------------------------------------------------------
--
--Sound::~Sound()
--{
-- delete mpSound;
--}
--
--// -----------------------------------------------------------------------
--
--void Sound::ImplNotify( SoundNotification eNotification, ULONG nError )
--{
-- meNotification = eNotification;
-- mbPlaying = FALSE;
--
-- if( SOUND_NOTIFY_ERROR == meNotification )
-- mnErrorCode = nError;
--
-- Notify();
--
-- if( maNotifyHdl.IsSet() )
-- maNotifyHdl.Call( this );
--}
--
--// -----------------------------------------------------------------------
--
--void Sound::Notify()
--{
--}
--
--// -----------------------------------------------------------------------
--
--BOOL Sound::SetSoundName( const XubString& rSoundName )
--{
-- BOOL bRet( FALSE );
--
-- if( !rSoundName.Len() )
-- {
-- mnDataLen = 0UL;
-- mnSoundLen = 0UL;
-- mnStartTime = 0UL;
-- mnPlayTime = SOUND_PLAYALL;
-- mnErrorCode = 0UL;
-- meNotification = SOUND_NOTIFY_SUCCESS;
-- mbPlaying = FALSE;
-- mbLoopMode = FALSE;
-- bRet = TRUE;
--
-- mpSound->Init( rSoundName, mnSoundLen );
-- }
-- else if( mpSound->IsValid() )
-- {
-- INetURLObject aSoundURL( rSoundName );
-- String aSoundName, aTmp;
-- BOOL bValidName( FALSE );
--
-- // #106654# Accept only local sound files
-- if( aSoundURL.GetProtocol() == INET_PROT_FILE )
-- {
-- utl::LocalFileHelper::ConvertURLToPhysicalName( aSoundURL.GetMainURL( INetURLObject::NO_DECODE ), aSoundName );
-- bValidName = TRUE;
-- }
-- else if( aSoundURL.GetProtocol() == INET_PROT_NOT_VALID &&
-- ::utl::LocalFileHelper::ConvertPhysicalNameToURL( rSoundName, aTmp ) )
-- {
-- aSoundName = rSoundName;
-- bValidName = TRUE;
-- }
-- else
-- {
-- // no valid sound file name
-- aSoundName = String();
--
-- // #106654# Don't set bRet to true for invalid sound file
-- // names, but init with empty string, anyway
-- mpSound->Init( aSoundName, mnSoundLen );
-- }
--
-- if( bValidName )
-- bRet = mpSound->Init( aSoundName, mnSoundLen );
-- }
--
-- maSoundName = rSoundName;
--
-- // if sound could not be initialized, but we've gotten _no_
-- // notification ==> create common error notification
-- if( !bRet && !mnErrorCode )
-- ImplNotify( SOUND_NOTIFY_ERROR, SOUNDERR_GENERAL_ERROR );
--
-- return bRet;
--}
--
--// -----------------------------------------------------------------------
--
--void Sound::SetStartTime( ULONG nStartTime )
--{
-- mnStartTime = nStartTime;
--}
--
--// -----------------------------------------------------------------------
--
--void Sound::SetPlayTime( ULONG nPlayTime )
--{
-- mnPlayTime = nPlayTime;
--}
--
--// -----------------------------------------------------------------------
--
--void Sound::SetLoopMode( BOOL bLoop )
--{
-- mbLoopMode = bLoop;
--}
--
--// -----------------------------------------------------------------------
--
--void Sound::ClearError()
--{
-- mnErrorCode = 0;
--}
--
--// -----------------------------------------------------------------------
--
--void Sound::Play()
--{
-- BOOL bRet;
--
-- if( mpSound->IsValid() && !mnErrorCode )
-- {
-- mpSound->Play( mnStartTime, mnPlayTime, mbLoopMode );
-- mbPlaying = TRUE;
-- }
-- else
-- bRet = FALSE;
--}
--
--// -----------------------------------------------------------------------
--
--void Sound::Stop()
--{
-- mbPlaying = FALSE;
--
-- if( mpSound->IsValid() )
-- mpSound->Stop();
--}
--
--// -----------------------------------------------------------------------
--
--void Sound::Pause()
--{
-- mbPlaying = FALSE;
--
-- if( mpSound->IsValid() )
-- mpSound->Pause();
--}
--
--// -----------------------------------------------------------------------
-
- void Sound::Beep( SoundType eType, Window* pWindow )
- {
-@@ -271,62 +45,3 @@
- else
- pWindow->ImplGetFrame()->Beep( eType );
- }
--
--// -----------------------------------------------------------------------
--
--void Sound::SetSoundPath( const XubString& rSoundPath )
--{
--}
--
--// -----------------------------------------------------------------------
--
--const XubString& Sound::GetSoundPath()
--{
-- return ImplGetSVEmptyStr();
--}
--
--// -----------------------------------------------------------------------
--
--BOOL Sound::IsSoundFile( const XubString& rSoundPath )
--{
-- BOOL bRet = FALSE;
--
-- if( rSoundPath.Len() )
-- {
-- INetURLObject aSoundURL( rSoundPath );
-- String aSoundName;
--
-- if( aSoundURL.GetProtocol() != INET_PROT_NOT_VALID )
-- aSoundName = aSoundURL.GetMainURL( INetURLObject::NO_DECODE );
-- else if( !::utl::LocalFileHelper::ConvertPhysicalNameToURL( rSoundPath, aSoundName ) )
-- aSoundName.Erase();
--
-- if( aSoundName.Len() )
-- {
-- SvStream* pIStm = ::utl::UcbStreamHelper::CreateStream( aSoundName, STREAM_READ );
--
-- if( pIStm )
-- {
-- sal_Char aData[ 12 ];
--
-- if( ( pIStm->Read( aData, 12 ) == 12 ) && !pIStm->GetError() )
-- {
-- // check for WAV
-- bRet = ( aData[ 0 ] == 'R' && aData[ 1 ] == 'I' && aData[ 2 ] == 'F' && aData[ 3 ] == 'F' &&
-- aData[ 8 ] == 'W' && aData[ 9 ] == 'A' && aData[ 10 ] == 'V' && aData[ 11 ] == 'E' );
-- }
--
-- delete pIStm;
-- }
--
-- if( !bRet )
-- {
-- // check it the hard way
-- Sound aTestSound;
-- bRet = aTestSound.SetSoundName( rSoundPath );
-- }
-- }
-- }
--
-- return bRet;
--}
-Index: vcl/source/app/svmain.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/app/svmain.cxx,v
-retrieving revision 1.57
-diff -u -r1.57 svmain.cxx
---- vcl/source/app/svmain.cxx 13 Oct 2005 09:36:37 -0000 1.57
-+++ vcl/source/app/svmain.cxx 1 Nov 2005 12:05:38 -0000
-@@ -54,9 +54,6 @@
- #ifndef _SV_SALINST_HXX
- #include <salinst.hxx>
- #endif
--#ifndef _SV_SALSOUND_HXX
--#include <salsound.hxx>
--#endif
- #ifndef _SV_SALOGL_HXX
- #include <salogl.hxx>
- #endif
-
-
-Index: vcl/unx/dummy/dinst.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/dummy/dinst.cxx,v
-retrieving revision 1.6
-diff -u -r1.6 dinst.cxx
---- vcl/unx/dummy/dinst.cxx 9 Sep 2005 12:35:27 -0000 1.6
-+++ vcl/unx/dummy/dinst.cxx 1 Nov 2005 12:06:57 -0000
-@@ -63,7 +63,6 @@
- virtual void DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo );
- virtual String GetDefaultPrinter();
-
-- virtual SalSound* CreateSalSound();
- virtual SalTimer* CreateSalTimer();
- virtual SalOpenGL* CreateSalOpenGL( SalGraphics* pGraphics );
- virtual SalI18NImeStatus* CreateI18NImeStatus();
-@@ -165,11 +164,6 @@
- return String();
- }
-
--SalSound* DummyInstance::CreateSalSound()
--{
-- return NULL;
--}
--
- SalTimer* DummyInstance::CreateSalTimer()
- {
- return NULL;
-
-
-Index: vcl/unx/inc/salinst.h
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/inc/salinst.h,v
-retrieving revision 1.11
-diff -u -r1.11 salinst.h
---- vcl/unx/inc/salinst.h 9 Sep 2005 12:45:09 -0000 1.11
-+++ vcl/unx/inc/salinst.h 1 Nov 2005 12:05:59 -0000
-@@ -108,7 +108,6 @@
- virtual void DeletePrinterQueueInfo( SalPrinterQueueInfo* pInfo );
- virtual String GetDefaultPrinter();
-
-- virtual SalSound* CreateSalSound();
- virtual SalTimer* CreateSalTimer();
- virtual SalOpenGL* CreateSalOpenGL( SalGraphics* pGraphics );
- virtual SalI18NImeStatus* CreateI18NImeStatus();
-
-Index: vcl/unx/source/app/makefile.mk
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/source/app/makefile.mk,v
-retrieving revision 1.22
-diff -u -r1.22 makefile.mk
---- vcl/unx/source/app/makefile.mk 9 Sep 2005 12:57:37 -0000 1.22
-+++ vcl/unx/source/app/makefile.mk 1 Nov 2005 12:07:17 -0000
-@@ -73,31 +73,6 @@
- $(SLO)$/keysymnames.obj \
- $(SLO)$/wmadaptor.obj \
-
--SLOFILES+=\
-- $(SLO)$/salsound2.obj \
-- $(SLO)$/osssound.obj \
-- $(SLO)$/devaudiosound.obj \
-- $(SLO)$/audioconvert.obj \
-- $(SLO)$/rptpsound.obj \
-- $(SLO)$/nassound.obj
--
--
--
--.IF "$(ENABLE_NAS)" != ""
--CDEFS+=-DUSE_NAS
--.ENDIF
--
--.IF "$(ENABLE_PASF)" != ""
--CDEFS+=-DUSE_PASF
--SLOFILES+=$(SLO)$/pasfsound.obj
--.IF "$(SYSTEM_SNDFILE)" == "YES"
--CDEFS+=-DSYSTEM_SNDFILE
--.ENDIF
--.IF "$(SYSTEM_PORTAUDIO)" == "YES"
--CDEFS+=-DSYSTEM_PORTAUDIO
--.ENDIF
--.ENDIF
--
- .IF "$(WITH_LIBSN)"=="YES"
- CDEFS+=-DHAVE_LIBSN
- CFLAGS+=$(LIBSN_CFLAGS)
-
-Index: vcl/unx/source/app/salinst.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/source/app/salinst.cxx,v
-retrieving revision 1.27
-diff -u -r1.27 salinst.cxx
---- vcl/unx/source/app/salinst.cxx 9 Sep 2005 13:01:26 -0000 1.27
-+++ vcl/unx/source/app/salinst.cxx 1 Nov 2005 12:07:28 -0000
-@@ -72,9 +72,6 @@
- #ifndef _SV_SALOGL_H
- #include <salogl.h>
- #endif
--#ifndef _SV_SALSOUND_H
--#include <salsound.h>
--#endif
-
- // -------------------------------------------------------------------------
- //
-@@ -142,9 +139,6 @@
-
- X11SalInstance::~X11SalInstance()
- {
-- // deinitialize global sound resources
-- X11SalSound::Release();
--
- // release (possibly open) OpenGL context
- X11SalOpenGL::Release();
-
-@@ -321,8 +315,3 @@
- return new X11SalOpenGL( pGraphics );
- }
-
--SalSound* X11SalInstance::CreateSalSound()
--{
-- return new X11SalSound();
--}
--
-
-Index: vcl/util/makefile.mk
-===================================================================
-RCS file: /cvs/gsl/vcl/util/makefile.mk,v
-retrieving revision 1.75
-diff -u -r1.75 makefile.mk
---- vcl/util/makefile.mk 13 Oct 2005 09:37:37 -0000 1.75
-+++ vcl/util/makefile.mk 1 Nov 2005 15:14:00 -0000
-@@ -296,21 +296,6 @@
- .ENDIF
-
-
--.IF "$(ENABLE_PASF)" != ""
--.IF "$(OS)"=="MACOSX"
--SHL2STDLIBS += -framework CoreAudio -framework AudioToolbox
--.ENDIF
--SHL2STDLIBS += -lsndfile -lportaudio
--.ENDIF # ENABLE_PASF
--
--.IF "$(ENABLE_NAS)" != ""
--SHL2STDLIBS += -laudio
--.IF "$(OS)"=="SOLARIS"
--# needed by libaudio.a
--SHL2STDLIBS += -ldl -lnsl -lsocket
--.ENDIF # SOLARIS
--.ENDIF
--
- .IF "$(GUIBASE)"=="unx"
-
- .IF "$(WITH_LIBSN)"=="YES"
diff --git a/patches/src680/size-strip.diff b/patches/src680/size-strip.diff
deleted file mode 100644
index 2dd2c6456..000000000
--- a/patches/src680/size-strip.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: solenv/bin/modules/installer/strip.pm
-===================================================================
-RCS file: /cvs/tools/solenv/bin/modules/installer/strip.pm,v
-retrieving revision 1.4
-diff -u -p -u -r1.4 strip.pm
---- solenv/bin/modules/installer/strip.pm 8 Sep 2005 09:12:18 -0000 1.4
-+++ solenv/bin/modules/installer/strip.pm 31 Oct 2005 16:29:36 -0000
-@@ -71,7 +71,7 @@ sub do_strip
- {
- my ( $filename ) = @_;
-
-- my $systemcall = "strip" . " " . $filename;
-+ my $systemcall = "strip" . " -R '.comment' -s " . $filename;
-
- my $returnvalue = system($systemcall);
-
diff --git a/patches/src680/slidesorter-demo-pngperf.svtools.diff b/patches/src680/slidesorter-demo-pngperf.svtools.diff
deleted file mode 100644
index 69104520e..000000000
--- a/patches/src680/slidesorter-demo-pngperf.svtools.diff
+++ /dev/null
@@ -1,234 +0,0 @@
-Index: svtools/inc/filter.hxx
-===================================================================
-RCS file: /cvs/util/svtools/inc/filter.hxx,v
-retrieving revision 1.23
-retrieving revision 1.23.14.1
-diff -u -p -r1.23 -r1.23.14.1
---- svtools/inc/filter.hxx 8 Sep 2005 09:28:45 -0000 1.23
-+++ svtools/inc/filter.hxx 14 Oct 2005 12:54:49 -0000 1.23.14.1
-@@ -92,6 +92,8 @@ class Window;
-
- #define GRFILTER_I_FLAGS_SET_LOGSIZE_FOR_JPEG 00000001
- #define GRFILTER_I_FLAGS_DONT_SET_LOGSIZE_FOR_JPEG 00000002
-+#define GRFILTER_I_FLAGS_FOR_PREVIEW 00000004
-+#define GRFILTER_I_FLAGS_ALLOW_PARTIAL_STREAMREAD 00000010
-
- #define IMP_BMP "SVBMP"
- #define IMP_SVMETAFILE "SVMETAFILE"
-Index: svtools/source/filter.vcl/filter/filter.cxx
-===================================================================
-RCS file: /cvs/util/svtools/source/filter.vcl/filter/filter.cxx,v
-retrieving revision 1.58
-retrieving revision 1.58.14.1
-diff -u -p -r1.58 -r1.58.14.1
---- svtools/source/filter.vcl/filter/filter.cxx 8 Sep 2005 15:37:30 -0000 1.58
-+++ svtools/source/filter.vcl/filter/filter.cxx 14 Oct 2005 12:54:49 -0000 1.58.14.1
-@@ -1437,27 +1437,45 @@ USHORT GraphicFilter::ImportGraphic( Gra
- if ( rGraphic.GetContext() == (GraphicReader*) 1 )
- rGraphic.SetContext( NULL );
-
-- vcl::PNGReader aPNGReader( rIStream );
-- const std::vector< vcl::PNGReader::ChunkData >& rChunkData = aPNGReader.GetChunks();
-- std::vector< vcl::PNGReader::ChunkData >::const_iterator aIter( rChunkData.begin() );
-- std::vector< vcl::PNGReader::ChunkData >::const_iterator aEnd ( rChunkData.end() );
-- while( aIter != aEnd )
-- {
-- // Microsoft Office is storing Animated GIFs in following chunk
-- if ( aIter->nType == PMGCHUNG_msOG )
-- {
-- sal_uInt32 nChunkSize = aIter->aData.size();
-- if ( nChunkSize > 11 )
-- {
-- const std::vector< sal_uInt8 >& rData = aIter->aData;
-- SvMemoryStream aIStrm( (void*)&rData[ 11 ], nChunkSize - 11, STREAM_READ );
-- ImportGIF( aIStrm, rGraphic, NULL );
-- eLinkType = GFX_LINK_TYPE_NATIVE_PNG;
-- break;
-- }
-- }
-- aIter++;
-- }
-+ vcl::PNGReader aPNGReader( rIStream );
-+
-+ // ignore animation for previews and set preview size
-+ if( nImportFlags & GRFILTER_I_FLAGS_FOR_PREVIEW )
-+ {
-+ Size aPreviewSize( 64, 64 );
-+ vcl::PNGReader::SetPreviewSizeHint( aPreviewSize );
-+
-+ // position the stream at the end of the image if requested
-+ if( 0 == (nImportFlags & GRFILTER_I_FLAGS_ALLOW_PARTIAL_STREAMREAD) )
-+ aPNGReader.GetChunks();
-+ }
-+ else
-+ {
-+ vcl::PNGReader::DisablePreviewMode();
-+
-+ // check if this PNG contains a GIF chunk!
-+ const std::vector< vcl::PNGReader::ChunkData >& rChunkData = aPNGReader.GetChunks();
-+ std::vector< vcl::PNGReader::ChunkData >::const_iterator aIter( rChunkData.begin() );
-+ std::vector< vcl::PNGReader::ChunkData >::const_iterator aEnd ( rChunkData.end() );
-+ while( aIter != aEnd )
-+ {
-+ // Microsoft Office is storing Animated GIFs in following chunk
-+ if ( aIter->nType == PMGCHUNG_msOG )
-+ {
-+ sal_uInt32 nChunkSize = aIter->aData.size();
-+ if ( nChunkSize > 11 )
-+ {
-+ const std::vector< sal_uInt8 >& rData = aIter->aData;
-+ SvMemoryStream aIStrm( (void*)&rData[ 11 ], nChunkSize - 11, STREAM_READ );
-+ ImportGIF( aIStrm, rGraphic, NULL );
-+ eLinkType = GFX_LINK_TYPE_NATIVE_PNG;
-+ break;
-+ }
-+ }
-+ aIter++;
-+ }
-+ }
-+
- if ( eLinkType == GFX_LINK_TYPE_NONE )
- {
- BitmapEx aBmpEx( aPNGReader.Read() );
-Index: svtools/source/filter.vcl/jpeg/jpeg.cxx
-===================================================================
-RCS file: /cvs/util/svtools/source/filter.vcl/jpeg/jpeg.cxx,v
-retrieving revision 1.14
-retrieving revision 1.14.14.2
-diff -u -p -r1.14 -r1.14.14.2
---- svtools/source/filter.vcl/jpeg/jpeg.cxx 8 Sep 2005 15:43:56 -0000 1.14
-+++ svtools/source/filter.vcl/jpeg/jpeg.cxx 14 Oct 2005 12:54:50 -0000 1.14.14.2
-@@ -316,7 +316,7 @@ extern "C" void jpeg_svstream_src (j_dec
- // - JPEGReader -
- // --------------
-
--JPEGReader::JPEGReader( SvStream& rStm, void* pCallData, sal_Bool bSetLS ) :
-+JPEGReader::JPEGReader( SvStream& rStm, void* /*pCallData*/, sal_Bool bSetLS ) :
- rIStm ( rStm ),
- pAcc ( NULL ),
- pAcc1 ( NULL ),
-@@ -538,13 +538,13 @@ ReadState JPEGReader::Read( Graphic& rGr
- BOOL bRet = FALSE;
- BYTE cDummy;
-
-- // sehen, ob wir _alles_ lesen koennen
-+#if 1 // TODO: is it possible to get rid of this seek to the end?
-+ // check if the stream's end is already available
- rIStm.Seek( STREAM_SEEK_TO_END );
- rIStm >> cDummy;
- nEndPos = rIStm.Tell();
-
-- // falls wir nicht alles lesen koennen, gucken wir,
-- // ob min. JPEGMINREAD Bytes gelesen werden koennen
-+ // else check if at least JPEGMINREAD bytes can be read
- if( rIStm.GetError() == ERRCODE_IO_PENDING )
- {
- rIStm.ResetError();
-@@ -555,10 +555,14 @@ ReadState JPEGReader::Read( Graphic& rGr
- }
- }
-
-- // an Anfang springen
-+ // seek back to the original position
- rIStm.Seek( nLastPos );
-+#endif
-+
-+ Size aPreviewSize = GetPreviewSize();
-+ SetJpegPreviewSizeHint( aPreviewSize.Width(), aPreviewSize.Height() );
-
-- // (Teil-) Bild einlesen
-+ // read the (partial) image
- ReadJPEG( this, &rIStm, &nLines );
-
- if( pAcc )
-@@ -730,6 +734,11 @@ BOOL ImportJPEG( SvStream& rStm, Graphic
-
- if( !pJPEGReader )
- pJPEGReader = new JPEGReader( rStm, pCallerData, ( nImportFlags & GRFILTER_I_FLAGS_SET_LOGSIZE_FOR_JPEG ) != 0 );
-+
-+ if( nImportFlags & GRFILTER_I_FLAGS_FOR_PREVIEW )
-+ pJPEGReader->SetPreviewSize( Size(128,128) );
-+ else
-+ pJPEGReader->DisablePreviewMode();
-
- rGraphic.SetContext( NULL );
- eReadState = pJPEGReader->Read( rGraphic );
-Index: svtools/source/filter.vcl/jpeg/jpeg.h
-===================================================================
-RCS file: /cvs/util/svtools/source/filter.vcl/jpeg/jpeg.h,v
-retrieving revision 1.2
-retrieving revision 1.2.16.1
-diff -u -p -r1.2 -r1.2.16.1
---- svtools/source/filter.vcl/jpeg/jpeg.h 8 Sep 2005 15:44:12 -0000 1.2
-+++ svtools/source/filter.vcl/jpeg/jpeg.h 13 Oct 2005 08:06:19 -0000 1.2.16.1
-@@ -79,5 +79,9 @@ void* GetScanline( void* pJPEGWriter, lo
-
- void ReadJPEG( void* pJPEGReader, void* pIStm, long* pLines );
- void* CreateBitmap( void* pJPEGReader, void* pJPEGCreateBitmapParam );
-+
-+/* TODO: when incompatible changes are possible again
-+ the preview size hint should be redone */
-+void SetJpegPreviewSizeHint( int nWidth, int nHeight );
-
- #endif
-Index: svtools/source/filter.vcl/jpeg/jpegc.c
-===================================================================
-RCS file: /cvs/util/svtools/source/filter.vcl/jpeg/jpegc.c,v
-retrieving revision 1.3
-retrieving revision 1.3.16.1
-diff -u -p -r1.3 -r1.3.16.1
---- svtools/source/filter.vcl/jpeg/jpegc.c 8 Sep 2005 15:44:28 -0000 1.3
-+++ svtools/source/filter.vcl/jpeg/jpegc.c 13 Oct 2005 08:06:19 -0000 1.3.16.1
-@@ -66,6 +66,16 @@ my_output_message (j_common_ptr cinfo)
- (*cinfo->err->format_message) (cinfo, buffer);
- }
-
-+/* TODO: when incompatible changes are possible again
-+ the preview size hint should be redone */
-+static int nPreviewWidth = 0;
-+static int nPreviewHeight = 0;
-+void SetJpegPreviewSizeHint( int nWidth, int nHeight )
-+{
-+ nPreviewWidth = nWidth;
-+ nPreviewHeight = nHeight;
-+}
-+
- void ReadJPEG( void* pJPEGReader, void* pIStm, long* pLines )
- {
- struct jpeg_decompress_struct cinfo;
-@@ -104,12 +114,32 @@ void ReadJPEG( void* pJPEGReader, void*
- if ( cinfo.jpeg_color_space != JCS_GRAYSCALE )
- cinfo.out_color_space = JCS_RGB;
-
-- jpeg_start_decompress( &cinfo);
-+ /* change scale for preview import */
-+ if( nPreviewWidth && nPreviewHeight )
-+ {
-+ for( cinfo.scale_denom = 1; cinfo.scale_denom < 8; cinfo.scale_denom *= 2 )
-+ {
-+ if( cinfo.image_width < nPreviewWidth * cinfo.scale_denom )
-+ break;
-+ if( cinfo.image_height < nPreviewHeight * cinfo.scale_denom )
-+ break;
-+ }
-+
-+ if( cinfo.scale_denom > 1 )
-+ {
-+ cinfo.dct_method = JDCT_FASTEST;
-+ cinfo.do_fancy_upsampling = FALSE;
-+ cinfo.do_block_smoothing = FALSE;
-+ }
-+ }
-
-- nWidth = cinfo.output_width;
-- nHeight = cinfo.output_height;
-+ jpeg_start_decompress( &cinfo );
-+
-+ nWidth = cinfo.output_width;
-+ nHeight = cinfo.output_height;
- aCreateBitmapParam.nWidth = nWidth;
- aCreateBitmapParam.nHeight = nHeight;
-+
- aCreateBitmapParam.density_unit = cinfo.density_unit;
- aCreateBitmapParam.X_density = cinfo.X_density;
- aCreateBitmapParam.Y_density = cinfo.Y_density;
diff --git a/patches/src680/slidesorter-demo-pngperf.vcl.diff b/patches/src680/slidesorter-demo-pngperf.vcl.diff
deleted file mode 100644
index 9561a1227..000000000
--- a/patches/src680/slidesorter-demo-pngperf.vcl.diff
+++ /dev/null
@@ -1,3192 +0,0 @@
-Index: vcl/inc/bitmap.hxx
-===================================================================
-RCS file: /cvs/gsl/vcl/inc/bitmap.hxx,v
-retrieving revision 1.18
-retrieving revision 1.17.18.2
-diff -u -p -r1.18 -r1.17.18.2
---- vcl/inc/bitmap.hxx 2 Nov 2005 13:26:51 -0000 1.18
-+++ vcl/inc/bitmap.hxx 15 Nov 2005 09:46:35 -0000 1.17.18.2
-@@ -352,6 +352,15 @@ public:
- Size GetSizePixel() const;
- void SetSizePixel( const Size& rNewSize );
-
-+ /**
-+ * The pixel size of a bitmap's source (e.g. an image file)
-+ * and the pixel size of its resulting bitmap can differ,
-+ * e.g. when the image reader has its preview mode enabled.
-+ */
-+ Size GetSourceSizePixel() const;
-+ void SetSourceSizePixel( const Size& );
-+
-+
- USHORT GetBitCount() const;
- inline ULONG GetColorCount() const;
- inline ULONG GetSizeBytes() const;
-@@ -763,7 +772,6 @@ public:
- const Link* pProgress = NULL );
-
- public:
--
- BitmapReadAccess* AcquireReadAccess();
- BitmapWriteAccess* AcquireWriteAccess();
- void ReleaseAccess( BitmapReadAccess* pAccess );
-Index: vcl/inc/bmpacc.hxx
-===================================================================
-RCS file: /cvs/gsl/vcl/inc/bmpacc.hxx,v
-retrieving revision 1.10
-retrieving revision 1.10.18.1
-diff -u -p -r1.10 -r1.10.18.1
---- vcl/inc/bmpacc.hxx 9 Sep 2005 10:48:15 -0000 1.10
-+++ vcl/inc/bmpacc.hxx 15 Nov 2005 12:24:22 -0000 1.10.18.1
-@@ -58,7 +58,7 @@
- // --------------------
-
- #define DECL_FORMAT_GETPIXEL( Format ) \
--static BitmapColor GetPixelFor##Format( Scanline pScanline, long nX, const ColorMask& rMask );
-+static BitmapColor GetPixelFor##Format( ConstScanline pScanline, long nX, const ColorMask& rMask );
-
- #define DECL_FORMAT_SETPIXEL( Format ) \
- static void SetPixelFor##Format( Scanline pScanline, long nX, const BitmapColor& rBitmapColor, const ColorMask& rMask );
-@@ -68,7 +68,7 @@ DECL_FORMAT_GETPIXEL( Format ) \
- DECL_FORMAT_SETPIXEL( Format )
-
- #define IMPL_FORMAT_GETPIXEL( Format ) \
--BitmapColor BitmapReadAccess::GetPixelFor##Format( Scanline pScanline, long nX, const ColorMask& rMask )
-+BitmapColor BitmapReadAccess::GetPixelFor##Format( ConstScanline pScanline, long nX, const ColorMask& rMask )
-
- #define IMPL_FORMAT_SETPIXEL( Format ) \
- void BitmapReadAccess::SetPixelFor##Format( Scanline pScanline, long nX, const BitmapColor& rBitmapColor, const ColorMask& rMask )
-@@ -87,7 +87,7 @@ break;
- // - Access functions -
- // --------------------
-
--typedef BitmapColor (*FncGetPixel)( Scanline pScanline, long nX, const ColorMask& rMask );
-+typedef BitmapColor (*FncGetPixel)( ConstScanline pScanline, long nX, const ColorMask& rMask );
- typedef void (*FncSetPixel)( Scanline pScanline, long nX, const BitmapColor& rBitmapColor, const ColorMask& rMask );
-
- // --------------------
-@@ -198,7 +198,7 @@ public:
- virtual ~BitmapWriteAccess();
-
- void CopyScanline( long nY, const BitmapReadAccess& rReadAcc );
-- void CopyScanline( long nY, const Scanline aSrcScanline,
-+ void CopyScanline( long nY, ConstScanline aSrcScanline,
- ULONG nSrcScanlineFormat, ULONG nSrcScanlineSize );
-
- void CopyBuffer( const BitmapReadAccess& rReadAcc );
-Index: vcl/inc/bmpfast.hxx
-===================================================================
-RCS file: /cvs/gsl/vcl/inc/bmpfast.hxx,v
-retrieving revision 1.3
-retrieving revision 1.3.18.1
-diff -u -p -r1.3 -r1.3.18.1
---- vcl/inc/bmpfast.hxx 9 Sep 2005 10:48:29 -0000 1.3
-+++ vcl/inc/bmpfast.hxx 27 Sep 2005 10:14:21 -0000 1.3.18.1
-@@ -35,19 +35,25 @@
-
- #ifndef _SV_BMPFAST_HXX
- #define _SV_BMPFAST_HXX
--
-+
- class BitmapWriteAccess;
- class BitmapReadAccess;
- class BitmapBuffer;
-+class BitmapColor;
- class Size;
- class Point;
- struct SalTwoRect;
--
-+
-+// the bmpfast functions have signatures with good compatibility to
-+// their canonic counterparts, which employ the GetPixel/SetPixel methods
-+
- bool ImplFastBitmapConversion( BitmapBuffer& rDst, const BitmapBuffer& rSrc,
- const SalTwoRect& rTwoRect );
-
- bool ImplFastBitmapBlending( BitmapWriteAccess& rDst,
- const BitmapReadAccess& rSrc, const BitmapReadAccess& rMask,
- const SalTwoRect& rTwoRect );
-+
-+bool ImplFastEraseBitmap( BitmapBuffer&, const BitmapColor& );
-
- #endif // _SV_BMPFAST_HXX
-Index: vcl/inc/graph.h
-===================================================================
-RCS file: /cvs/gsl/vcl/inc/graph.h,v
-retrieving revision 1.3
-retrieving revision 1.3.18.2
-diff -u -p -r1.3 -r1.3.18.2
---- vcl/inc/graph.h 9 Sep 2005 10:59:00 -0000 1.3
-+++ vcl/inc/graph.h 26 Oct 2005 11:45:28 -0000 1.3.18.2
-@@ -85,6 +85,13 @@ public:
- const String& GetUpperFilterName() const { return maUpperName; }
- ReaderData* GetReaderData() const { return mpReaderData; }
- BOOL IsReading() const { return mbIsReading; }
-+
-+ // TODO: when incompatible changes are possible again
-+ // the preview size hint should be redone
-+ BOOL IsPreviewModeEnabled() const;
-+ void DisablePreviewMode();
-+ void SetPreviewSize( const Size& );
-+ Size GetPreviewSize() const;
- };
-
- #endif // _SV_GRAPH_H
-Index: vcl/inc/impbmp.hxx
-===================================================================
-RCS file: /cvs/gsl/vcl/inc/impbmp.hxx,v
-retrieving revision 1.4
-retrieving revision 1.4.18.1
-diff -u -p -r1.4 -r1.4.18.1
---- vcl/inc/impbmp.hxx 9 Sep 2005 11:02:46 -0000 1.4
-+++ vcl/inc/impbmp.hxx 26 Oct 2005 11:43:45 -0000 1.4.18.1
-@@ -67,7 +67,8 @@ private:
- ULONG mnChecksum;
- RMBitmap* mpRMBitmap;
- SalBitmap* mpSalBitmap;
--
-+ Size maSourceSize;
-+
- public:
-
- ImpBitmap();
-@@ -90,13 +91,15 @@ public:
- void ImplDestroy();
-
- Size ImplGetSize() const;
-+ Size ImplGetSourceSize() const;
-+ void ImplSetSourceSize( const Size&);
- USHORT ImplGetBitCount() const;
-
- BitmapBuffer* ImplAcquireBuffer( BOOL bReadOnly );
- void ImplReleaseBuffer( BitmapBuffer* pBuffer, BOOL bReadOnly );
-
- public:
--
-+
- ULONG ImplGetRefCount() const { return mnRefCount; }
- void ImplIncRefCount() { mnRefCount++; }
- void ImplDecRefCount() { mnRefCount--; }
-@@ -106,5 +109,15 @@ public:
-
- #endif // PRIVATE
- };
-+
-+inline Size ImpBitmap::ImplGetSourceSize() const
-+{
-+ return maSourceSize;
-+}
-+
-+inline void ImpBitmap::ImplSetSourceSize( const Size& rSize)
-+{
-+ maSourceSize = rSize;
-+}
-
- #endif // _SV_IMPBMP_HXX
-Index: vcl/inc/pngread.hxx
-===================================================================
-RCS file: /cvs/gsl/vcl/inc/pngread.hxx,v
-retrieving revision 1.5
-retrieving revision 1.5.18.2
-diff -u -p -r1.5 -r1.5.18.2
---- vcl/inc/pngread.hxx 9 Sep 2005 11:14:10 -0000 1.5
-+++ vcl/inc/pngread.hxx 13 Oct 2005 10:18:52 -0000 1.5.18.2
-@@ -73,6 +73,13 @@ namespace vcl
- std::vector< sal_uInt8 > aData;
- };
- const std::vector< ChunkData >& GetChunks() const;
-+
-+ // TODO: when incompatible changes are possible again
-+ // the preview size hint should be redone
-+ static void SetPreviewSizeHint( const Size& r ) { aPreviewSizeHint = r; }
-+ static void DisablePreviewMode() { aPreviewSizeHint = Size(0,0); }
-+ private:
-+ static Size aPreviewSizeHint;
- };
- }
-
-Index: vcl/inc/salbtype.hxx
-===================================================================
-RCS file: /cvs/gsl/vcl/inc/salbtype.hxx,v
-retrieving revision 1.10
-retrieving revision 1.10.18.1
-diff -u -p -r1.10 -r1.10.18.1
---- vcl/inc/salbtype.hxx 9 Sep 2005 11:18:10 -0000 1.10
-+++ vcl/inc/salbtype.hxx 15 Nov 2005 12:24:22 -0000 1.10.18.1
-@@ -64,6 +64,8 @@
-
- typedef BYTE* HPBYTE;
- typedef HPBYTE Scanline;
-+typedef const BYTE* ConstHPBYTE;
-+typedef ConstHPBYTE ConstScanline;
-
- // --------------------
- // - Helper functions -
-@@ -264,18 +266,18 @@ public:
- inline ULONG GetGreenMask() const;
- inline ULONG GetBlueMask() const;
-
-- inline void GetColorFor8Bit( BitmapColor& rColor, HPBYTE pPixel ) const;
-+ inline void GetColorFor8Bit( BitmapColor& rColor, ConstHPBYTE pPixel ) const;
- inline void SetColorFor8Bit( const BitmapColor& rColor, HPBYTE pPixel ) const;
-
-- inline void GetColorFor16BitMSB( BitmapColor& rColor, HPBYTE pPixel ) const;
-+ inline void GetColorFor16BitMSB( BitmapColor& rColor, ConstHPBYTE pPixel ) const;
- inline void SetColorFor16BitMSB( const BitmapColor& rColor, HPBYTE pPixel ) const;
-- inline void GetColorFor16BitLSB( BitmapColor& rColor, HPBYTE pPixel ) const;
-+ inline void GetColorFor16BitLSB( BitmapColor& rColor, ConstHPBYTE pPixel ) const;
- inline void SetColorFor16BitLSB( const BitmapColor& rColor, HPBYTE pPixel ) const;
-
-- inline void GetColorFor24Bit( BitmapColor& rColor, HPBYTE pPixel ) const;
-+ inline void GetColorFor24Bit( BitmapColor& rColor, ConstHPBYTE pPixel ) const;
- inline void SetColorFor24Bit( const BitmapColor& rColor, HPBYTE pPixel ) const;
-
-- inline void GetColorFor32Bit( BitmapColor& rColor, HPBYTE pPixel ) const;
-+ inline void GetColorFor32Bit( BitmapColor& rColor, ConstHPBYTE pPixel ) const;
- inline void SetColorFor32Bit( const BitmapColor& rColor, HPBYTE pPixel ) const;
- };
-
-@@ -818,7 +820,7 @@ inline ULONG ColorMask::GetBlueMask() co
-
- // ------------------------------------------------------------------
-
--inline void ColorMask::GetColorFor8Bit( BitmapColor& rColor, HPBYTE pPixel ) const
-+inline void ColorMask::GetColorFor8Bit( BitmapColor& rColor, ConstHPBYTE pPixel ) const
- {
- const UINT32 nVal = *pPixel;
- MASK_TO_COLOR( nVal, mnRMask, mnGMask, mnBMask, mnRShift, mnGShift, mnBShift, rColor );
-@@ -833,7 +835,7 @@ inline void ColorMask::SetColorFor8Bit(
-
- // ------------------------------------------------------------------
-
--inline void ColorMask::GetColorFor16BitMSB( BitmapColor& rColor, HPBYTE pPixel ) const
-+inline void ColorMask::GetColorFor16BitMSB( BitmapColor& rColor, ConstHPBYTE pPixel ) const
- {
- #ifdef OSL_BIGENDIAN
- const UINT32 nVal = *(UINT16*) pPixel;
-@@ -853,7 +855,7 @@ inline void ColorMask::SetColorFor16BitM
-
- // ------------------------------------------------------------------
-
--inline void ColorMask::GetColorFor16BitLSB( BitmapColor& rColor, HPBYTE pPixel ) const
-+inline void ColorMask::GetColorFor16BitLSB( BitmapColor& rColor, ConstHPBYTE pPixel ) const
- {
- #ifdef OSL_BIGENDIAN
- const UINT32 nVal = pPixel[ 0 ] | ( (UINT32) pPixel[ 1 ] << 8UL );
-@@ -879,7 +881,7 @@ inline void ColorMask::SetColorFor16BitL
-
- // ------------------------------------------------------------------
-
--inline void ColorMask::GetColorFor24Bit( BitmapColor& rColor, HPBYTE pPixel ) const
-+inline void ColorMask::GetColorFor24Bit( BitmapColor& rColor, ConstHPBYTE pPixel ) const
- {
- const UINT32 nVal = pPixel[ 0 ] | ( (UINT32) pPixel[ 1 ] << 8UL ) | ( (UINT32) pPixel[ 2 ] << 16UL );
- MASK_TO_COLOR( nVal, mnRMask, mnGMask, mnBMask, mnRShift, mnGShift, mnBShift, rColor );
-@@ -895,7 +897,7 @@ inline void ColorMask::SetColorFor24Bit(
-
- // ------------------------------------------------------------------
-
--inline void ColorMask::GetColorFor32Bit( BitmapColor& rColor, HPBYTE pPixel ) const
-+inline void ColorMask::GetColorFor32Bit( BitmapColor& rColor, ConstHPBYTE pPixel ) const
- {
- #ifdef OSL_BIGENDIAN
- const UINT32 nVal = (UINT32) pPixel[ 0 ] | ( (UINT32) pPixel[ 1 ] << 8UL ) |
-Index: vcl/source/gdi/bitmap.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/gdi/bitmap.cxx,v
-retrieving revision 1.13
-retrieving revision 1.13.18.1
-diff -u -p -r1.13 -r1.13.18.1
---- vcl/source/gdi/bitmap.cxx 9 Sep 2005 11:52:27 -0000 1.13
-+++ vcl/source/gdi/bitmap.cxx 26 Oct 2005 11:45:57 -0000 1.13.18.1
-@@ -290,12 +290,26 @@ Size Bitmap::GetSizePixel() const
- {
- return( mpImpBmp ? mpImpBmp->ImplGetSize() : Size() );
- }
--
- // ------------------------------------------------------------------
-
- void Bitmap::SetSizePixel( const Size& rNewSize )
- {
- Scale( rNewSize );
-+}
-+
-+// ------------------------------------------------------------------
-+
-+Size Bitmap::GetSourceSizePixel() const
-+{
-+ return( mpImpBmp ? mpImpBmp->ImplGetSourceSize() : Size() );
-+}
-+
-+// ------------------------------------------------------------------
-+
-+void Bitmap::SetSourceSizePixel( const Size& rSize)
-+{
-+ if( mpImpBmp )
-+ mpImpBmp->ImplSetSourceSize( rSize);
- }
-
- // ------------------------------------------------------------------
-Index: vcl/source/gdi/bmpacc.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/gdi/bmpacc.cxx,v
-retrieving revision 1.7
-retrieving revision 1.7.18.1
-diff -u -p -r1.7 -r1.7.18.1
---- vcl/source/gdi/bmpacc.cxx 9 Sep 2005 11:54:05 -0000 1.7
-+++ vcl/source/gdi/bmpacc.cxx 15 Nov 2005 12:24:23 -0000 1.7.18.1
-@@ -336,7 +336,7 @@ void BitmapWriteAccess::CopyScanline( lo
-
- // ------------------------------------------------------------------
-
--void BitmapWriteAccess::CopyScanline( long nY, const Scanline aSrcScanline,
-+void BitmapWriteAccess::CopyScanline( long nY, ConstScanline aSrcScanline,
- ULONG nSrcScanlineFormat, ULONG nSrcScanlineSize )
- {
- const ULONG nFormat = BMP_SCANLINE_FORMAT( nSrcScanlineFormat );
-Index: vcl/source/gdi/bmpacc3.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/gdi/bmpacc3.cxx,v
-retrieving revision 1.6
-retrieving revision 1.6.18.1
-diff -u -p -r1.6 -r1.6.18.1
---- vcl/source/gdi/bmpacc3.cxx 9 Sep 2005 11:54:48 -0000 1.6
-+++ vcl/source/gdi/bmpacc3.cxx 27 Sep 2005 10:13:57 -0000 1.6.18.1
-@@ -48,6 +48,9 @@
- #ifndef _SV_BMPACC_HXX
- #include <bmpacc.hxx>
- #endif
-+#ifndef _SV_BMPFAST_HXX
-+#include <bmpfast.hxx>
-+#endif
-
- // ---------------------
- // - BitmapWriteAccess -
-@@ -123,6 +126,11 @@ Color BitmapWriteAccess::GetFillColor()
-
- void BitmapWriteAccess::Erase( const Color& rColor )
- {
-+ // try fast bitmap method first
-+ if( ImplFastEraseBitmap( *mpBuffer, rColor ) )
-+ return;
-+
-+ // use the canonical method to clear the bitmap
- BitmapColor* pOldFillColor = mpFillColor ? new BitmapColor( *mpFillColor ) : NULL;
- const Point aPoint;
- const Rectangle aRect( aPoint, maBitmap.GetSizePixel() );
-Index: vcl/source/gdi/bmpfast.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/gdi/bmpfast.cxx,v
-retrieving revision 1.4
-retrieving revision 1.3.18.2
-diff -u -p -r1.4 -r1.3.18.2
---- vcl/source/gdi/bmpfast.cxx 28 Sep 2005 14:43:04 -0000 1.4
-+++ vcl/source/gdi/bmpfast.cxx 15 Nov 2005 09:58:59 -0000 1.3.18.2
-@@ -41,7 +41,7 @@
- #define _SOLAR__PRIVATE 1
- #include <bmpacc.hxx>
-
--//#define FAST_ARGB_BGRA
-+#define FAST_ARGB_BGRA
-
- #include <stdlib.h>
- static bool bDisableFastBitops = (getenv( "SAL_DISABLE_BITMAPS_OPTS" ) != NULL);
-@@ -56,7 +56,7 @@ public:
- PIXBYTE* GetRawPtr( void ) const { return mpPixel; }
- void AddByteOffset( int nByteOffset ) { mpPixel += nByteOffset; }
- bool operator<( const BasePixelPtr& rCmp ) const { return (mpPixel < rCmp.mpPixel); }
--
-+
- protected:
- PIXBYTE* mpPixel;
- };
-@@ -69,7 +69,7 @@ public:
- PIXBYTE GetGreen() const;
- PIXBYTE GetBlue() const;
- PIXBYTE GetAlpha() const;
--
-+
- void SetColor( PIXBYTE r, PIXBYTE g, PIXBYTE b ) const;
- void SetAlpha( PIXBYTE a ) const;
- void operator++(int);
-@@ -83,13 +83,13 @@ class TrueColorPixelPtr<BMP_FORMAT_24BIT
- {
- public:
- void operator++() { mpPixel += 3; }
--
-+
- PIXBYTE GetRed() const { return mpPixel[0]; }
- PIXBYTE GetGreen() const { return mpPixel[1]; }
- PIXBYTE GetBlue() const { return mpPixel[2]; }
- PIXBYTE GetAlpha() const { return 0; }
- void SetAlpha( PIXBYTE ) const {}
--
-+
- void SetColor( PIXBYTE r, PIXBYTE g, PIXBYTE b ) const
- {
- mpPixel[0] = r;
-@@ -103,13 +103,13 @@ class TrueColorPixelPtr<BMP_FORMAT_24BIT
- {
- public:
- void operator++() { mpPixel += 3; }
--
-+
- PIXBYTE GetRed() const { return mpPixel[2]; }
- PIXBYTE GetGreen() const { return mpPixel[1]; }
- PIXBYTE GetBlue() const { return mpPixel[0]; }
- PIXBYTE GetAlpha() const { return 0; }
- void SetAlpha( PIXBYTE ) const {}
--
-+
- void SetColor( PIXBYTE r, PIXBYTE g, PIXBYTE b ) const
- {
- mpPixel[0] = b;
-@@ -123,13 +123,13 @@ class TrueColorPixelPtr<BMP_FORMAT_32BIT
- {
- public:
- void operator++() { mpPixel += 4; }
--
-+
- PIXBYTE GetRed() const { return mpPixel[1]; }
- PIXBYTE GetGreen() const { return mpPixel[2]; }
- PIXBYTE GetBlue() const { return mpPixel[3]; }
- PIXBYTE GetAlpha() const { return mpPixel[0]; }
- void SetAlpha( PIXBYTE a ) const { mpPixel[0] = a; }
--
-+
- void SetColor( PIXBYTE r, PIXBYTE g, PIXBYTE b ) const
- {
- mpPixel[1] = r;
-@@ -143,13 +143,13 @@ class TrueColorPixelPtr<BMP_FORMAT_32BIT
- {
- public:
- void operator++() { mpPixel += 4; }
--
-+
- PIXBYTE GetRed() const { return mpPixel[3]; }
- PIXBYTE GetGreen() const { return mpPixel[2]; }
- PIXBYTE GetBlue() const { return mpPixel[1]; }
- PIXBYTE GetAlpha() const { return mpPixel[0]; }
- void SetAlpha( PIXBYTE a ) const { mpPixel[0] = a; }
--
-+
- void SetColor( PIXBYTE r, PIXBYTE g, PIXBYTE b ) const
- {
- mpPixel[1] = b;
-@@ -163,13 +163,13 @@ class TrueColorPixelPtr<BMP_FORMAT_32BIT
- {
- public:
- void operator++() { mpPixel += 4; }
--
-+
- PIXBYTE GetRed() const { return mpPixel[0]; }
- PIXBYTE GetGreen() const { return mpPixel[1]; }
- PIXBYTE GetBlue() const { return mpPixel[2]; }
- PIXBYTE GetAlpha() const { return mpPixel[3]; }
- void SetAlpha( PIXBYTE a ) const{ mpPixel[3] = a; }
--
-+
- void SetColor( PIXBYTE r, PIXBYTE g, PIXBYTE b ) const
- {
- mpPixel[0] = r;
-@@ -183,13 +183,13 @@ class TrueColorPixelPtr<BMP_FORMAT_32BIT
- {
- public:
- void operator++() { mpPixel += 4; }
--
-+
- PIXBYTE GetRed() const { return mpPixel[2]; }
- PIXBYTE GetGreen() const { return mpPixel[1]; }
- PIXBYTE GetBlue() const { return mpPixel[0]; }
- PIXBYTE GetAlpha() const { return mpPixel[3]; }
- void SetAlpha( PIXBYTE a ) const{ mpPixel[3] = a; }
--
-+
- void SetColor( PIXBYTE r, PIXBYTE g, PIXBYTE b ) const
- {
- mpPixel[0] = b;
-@@ -203,14 +203,14 @@ class TrueColorPixelPtr<BMP_FORMAT_16BIT
- {
- public:
- void operator++() { mpPixel += 2; }
--
-+
- // TODO: non565-RGB
- PIXBYTE GetRed() const { return (mpPixel[0] & 0xF8U); }
- PIXBYTE GetGreen() const { return (mpPixel[0]<<5U) | ((mpPixel[1]>>3U)&28U); }
- PIXBYTE GetBlue() const { return (mpPixel[1]<<3U); }
- PIXBYTE GetAlpha() const { return 0; }
- void SetAlpha( PIXBYTE ) const {}
--
-+
- void SetColor( PIXBYTE r, PIXBYTE g, PIXBYTE b ) const
- {
- mpPixel[0] = ((g >> 5U) & 7U) | (r & 0xF8U);
-@@ -223,14 +223,14 @@ class TrueColorPixelPtr<BMP_FORMAT_16BIT
- {
- public:
- void operator++() { mpPixel += 2; }
--
-+
- // TODO: non565-RGB
- PIXBYTE GetRed() const { return (mpPixel[1] & 0xF8U); }
- PIXBYTE GetGreen() const { return (mpPixel[1]<<5U) | ((mpPixel[0]>>3U)&28U); }
- PIXBYTE GetBlue() const { return (mpPixel[0]<<3U); }
- PIXBYTE GetAlpha() const { return 0; }
- void SetAlpha( PIXBYTE ) const {}
--
-+
- void SetColor( PIXBYTE r, PIXBYTE g, PIXBYTE b ) const
- {
- mpPixel[0] = ((g & 28U)<< 3U) | (b >> 3U);
-@@ -285,7 +285,7 @@ class TrueColorPixelPtr<BMP_FORMAT_32BIT
- {
- public:
- void operator++() { mpPixel += 4; }
--
-+
- unsigned GetAlpha() const
- {
- #ifdef OSL_BIGENDIAN
-@@ -298,7 +298,7 @@ public:
- #endif
- return nAlpha;
- }
--
-+
- void SetAlpha( unsigned nAlpha ) const
- {
- #ifdef OSL_BIGENDIAN
-@@ -433,7 +433,7 @@ static bool ImplCopyImage( BitmapBuffer&
- {
- const int nSrcLinestep = rSrcBuffer.mnScanlineSize;
- int nDstLinestep = rDstBuffer.mnScanlineSize;
--
-+
- const PIXBYTE* pRawSrc = rSrcBuffer.mpBits;
- PIXBYTE* pRawDst = rDstBuffer.mpBits;
-
-@@ -448,18 +448,18 @@ static bool ImplCopyImage( BitmapBuffer&
- memcpy( pRawDst, pRawSrc, rSrcBuffer.mnHeight * nDstLinestep );
- return true;
- }
--
-+
- int nByteWidth = nSrcLinestep;
- if( nByteWidth > rDstBuffer.mnScanlineSize )
- nByteWidth = rDstBuffer.mnScanlineSize;
--
-+
- for( int y = rSrcBuffer.mnHeight; --y >= 0; )
- {
- memcpy( pRawDst, pRawSrc, nByteWidth );
- pRawSrc += nSrcLinestep;
- pRawDst += nDstLinestep;
- }
--
-+
- return true;
- }
-
-@@ -473,26 +473,26 @@ static bool ImplConvertToBitmap( TrueCol
- DBG_ASSERT( SRCFMT != DSTFMT, "ImplConvertToBitmap into same format");
- if( SRCFMT == DSTFMT )
- return false;
--
-+
- const int nSrcLinestep = rSrcBuffer.mnScanlineSize;
- int nDstLinestep = rDstBuffer.mnScanlineSize;
--
-+
- TrueColorPixelPtr<DSTFMT> aDstLine; aDstLine.SetRawPtr( rDstBuffer.mpBits );
--
-+
- // source and destination don't match upside down
- if( BMP_FORMAT_TOP_DOWN & (rSrcBuffer.mnFormat ^ rDstBuffer.mnFormat) )
- {
- aDstLine.AddByteOffset( (rSrcBuffer.mnHeight - 1) * nDstLinestep );
- nDstLinestep = -nDstLinestep;
- }
--
-+
- for( int y = rSrcBuffer.mnHeight; --y >= 0; )
- {
- ImplConvertLine( aDstLine, rSrcLine, rSrcBuffer.mnWidth );
- rSrcLine.AddByteOffset( nSrcLinestep );
- aDstLine.AddByteOffset( nDstLinestep );
- }
--
-+
- return true;
- }
-
-@@ -502,7 +502,7 @@ template <ULONG SRCFMT>
- inline bool ImplConvertFromBitmap( BitmapBuffer& rDst, const BitmapBuffer& rSrc )
- {
- TrueColorPixelPtr<SRCFMT> aSrcType; aSrcType.SetRawPtr( rSrc.mpBits );
--
-+
- // select the matching instantiation for the destination's bitmap format
- switch( rDst.mnFormat & ~BMP_FORMAT_TOP_DOWN )
- {
-@@ -512,7 +512,7 @@ inline bool ImplConvertFromBitmap( Bitma
- case BMP_FORMAT_4BIT_LSN_PAL:
- case BMP_FORMAT_8BIT_PAL:
- break;
--
-+
- case BMP_FORMAT_8BIT_TC_MASK:
- // return ImplConvertToBitmap<BMP_FORMAT_8BIT_TC_MASK>( aSrcType, rDst, rSrc );
- case BMP_FORMAT_24BIT_TC_MASK:
-@@ -520,12 +520,12 @@ inline bool ImplConvertFromBitmap( Bitma
- case BMP_FORMAT_32BIT_TC_MASK:
- // return ImplConvertToBitmap<BMP_FORMAT_32BIT_TC_MASK>( aSrcType, rDst, rSrc );
- break;
--
-+
- case BMP_FORMAT_16BIT_TC_MSB_MASK:
- return ImplConvertToBitmap<BMP_FORMAT_16BIT_TC_MSB_MASK>( aSrcType, rDst, rSrc );
- case BMP_FORMAT_16BIT_TC_LSB_MASK:
- return ImplConvertToBitmap<BMP_FORMAT_16BIT_TC_LSB_MASK>( aSrcType, rDst, rSrc );
--
-+
- case BMP_FORMAT_24BIT_TC_BGR:
- return ImplConvertToBitmap<BMP_FORMAT_24BIT_TC_BGR>( aSrcType, rDst, rSrc );
- case BMP_FORMAT_24BIT_TC_RGB:
-@@ -538,7 +538,7 @@ inline bool ImplConvertFromBitmap( Bitma
- return ImplConvertToBitmap<BMP_FORMAT_32BIT_TC_ARGB>( aSrcType, rDst, rSrc );
- case BMP_FORMAT_32BIT_TC_BGRA:
- return ImplConvertToBitmap<BMP_FORMAT_32BIT_TC_BGRA>( aSrcType, rDst, rSrc );
--#endif
-+#endif
- case BMP_FORMAT_32BIT_TC_RGBA:
- return ImplConvertToBitmap<BMP_FORMAT_32BIT_TC_RGBA>( aSrcType, rDst, rSrc );
- }
-@@ -553,7 +553,7 @@ inline bool ImplConvertFromBitmap( Bitma
-
- return false;
- }
--
-+
- // =======================================================================
-
- // an universal stretching conversion is overkill in most common situations
-@@ -571,19 +571,19 @@ bool ImplFastBitmapConversion( BitmapBuf
- if( rTR.mnDestHeight < 0 )
- // TODO: rDst.mnFormat ^= BMP_FORMAT_TOP_DOWN;
- return false;
--
-+
- // offseted conversion is not implemented yet
- if( rTR.mnSrcX || rTR.mnSrcY )
- return false;
- if( rTR.mnDestX || rTR.mnDestY )
- return false;
--
-+
- // stretched conversion is not implemented yet
- if( rTR.mnDestWidth != rTR.mnSrcWidth )
- return false;
- if( rTR.mnDestHeight!= rTR.mnSrcHeight )
- return false;
--
-+
- // check source image size
- if( rSrc.mnWidth < rTR.mnSrcX + rTR.mnSrcWidth )
- return false;
-@@ -610,7 +610,7 @@ bool ImplFastBitmapConversion( BitmapBuf
- || rDst.maColorMask.GetGreenMask()!= 0x07E0
- || rDst.maColorMask.GetBlueMask() != 0x001F )
- return false;
--
-+
- // special handling of trivial cases
- if( nSrcFormat == nDstFormat )
- {
-@@ -618,8 +618,8 @@ bool ImplFastBitmapConversion( BitmapBuf
- if( rSrc.maPalette != rDst.maPalette )
- return false;
- return ImplCopyImage( rDst, rSrc );
-- }
--
-+ }
-+
- // select the matching instantiation for the source's bitmap format
- switch( nSrcFormat )
- {
-@@ -629,7 +629,7 @@ bool ImplFastBitmapConversion( BitmapBuf
- case BMP_FORMAT_4BIT_LSN_PAL:
- case BMP_FORMAT_8BIT_PAL:
- break;
--
-+
- case BMP_FORMAT_8BIT_TC_MASK:
- // return ImplConvertFromBitmap<BMP_FORMAT_8BIT_TC_MASK>( rDst, rSrc );
- case BMP_FORMAT_24BIT_TC_MASK:
-@@ -637,17 +637,17 @@ bool ImplFastBitmapConversion( BitmapBuf
- case BMP_FORMAT_32BIT_TC_MASK:
- // return ImplConvertFromBitmap<BMP_FORMAT_32BIT_TC_MASK>( rDst, rSrc );
- break;
--
-+
- case BMP_FORMAT_16BIT_TC_MSB_MASK:
- return ImplConvertFromBitmap<BMP_FORMAT_16BIT_TC_MSB_MASK>( rDst, rSrc );
- case BMP_FORMAT_16BIT_TC_LSB_MASK:
- return ImplConvertFromBitmap<BMP_FORMAT_16BIT_TC_LSB_MASK>( rDst, rSrc );
--
-+
- case BMP_FORMAT_24BIT_TC_BGR:
- return ImplConvertFromBitmap<BMP_FORMAT_24BIT_TC_BGR>( rDst, rSrc );
- case BMP_FORMAT_24BIT_TC_RGB:
- return ImplConvertFromBitmap<BMP_FORMAT_24BIT_TC_RGB>( rDst, rSrc );
--
-+
- case BMP_FORMAT_32BIT_TC_ABGR:
- return ImplConvertFromBitmap<BMP_FORMAT_32BIT_TC_ABGR>( rDst, rSrc );
- #ifdef FAST_ARGB_BGRA
-@@ -684,14 +684,14 @@ static bool ImplBlendToBitmap( TrueColor
- const int nSrcLinestep = rSrcBuffer.mnScanlineSize;
- int nMskLinestep = rMskBuffer.mnScanlineSize;
- int nDstLinestep = rDstBuffer.mnScanlineSize;
--
-+
- TrueColorPixelPtr<BMP_FORMAT_8BIT_PAL> aMskLine; aMskLine.SetRawPtr( rMskBuffer.mpBits );
- TrueColorPixelPtr<DSTFMT> aDstLine; aDstLine.SetRawPtr( rDstBuffer.mpBits );
--
-+
- // special case for single line masks
- if( rMskBuffer.mnHeight == 1 )
- nMskLinestep = 0;
--
-+
- // source and mask don't match: upside down
- if( (rSrcBuffer.mnFormat ^ rMskBuffer.mnFormat) & BMP_FORMAT_TOP_DOWN )
- {
-@@ -705,7 +705,7 @@ static bool ImplBlendToBitmap( TrueColor
- aDstLine.AddByteOffset( (rSrcBuffer.mnHeight - 1) * nDstLinestep );
- nDstLinestep = -nDstLinestep;
- }
--
-+
- for( int y = rSrcBuffer.mnHeight; --y >= 0; )
- {
- ImplBlendLines<8>( aDstLine, rSrcLine, aMskLine, rDstBuffer.mnWidth );
-@@ -713,7 +713,7 @@ static bool ImplBlendToBitmap( TrueColor
- rSrcLine.AddByteOffset( nSrcLinestep );
- aMskLine.AddByteOffset( nMskLinestep );
- }
--
-+
- return true;
- }
-
-@@ -754,7 +754,7 @@ template <ULONG SRCFMT>
- static bool ImplBlendFromBitmap( BitmapBuffer& rDst, const BitmapBuffer& rSrc, const BitmapBuffer& rMsk )
- {
- TrueColorPixelPtr<SRCFMT> aSrcType; aSrcType.SetRawPtr( rSrc.mpBits );
--
-+
- // select the matching instantiation for the destination's bitmap format
- switch( rDst.mnFormat & ~BMP_FORMAT_TOP_DOWN )
- {
-@@ -764,7 +764,7 @@ static bool ImplBlendFromBitmap( BitmapB
- case BMP_FORMAT_4BIT_LSN_PAL:
- case BMP_FORMAT_8BIT_PAL:
- break;
--
-+
- case BMP_FORMAT_8BIT_TC_MASK:
- // return ImplBlendToBitmap<BMP_FORMAT_8BIT_TC_MASK>( aSrcType, rDst, rSrc, rMsk );
- case BMP_FORMAT_24BIT_TC_MASK:
-@@ -772,12 +772,12 @@ static bool ImplBlendFromBitmap( BitmapB
- case BMP_FORMAT_32BIT_TC_MASK:
- // return ImplBlendToBitmap<BMP_FORMAT_32BIT_TC_MASK>( aSrcType, rDst, rSrc, rMsk );
- break;
--
-+
- case BMP_FORMAT_16BIT_TC_MSB_MASK:
- return ImplBlendToBitmap<BMP_FORMAT_16BIT_TC_MSB_MASK>( aSrcType, rDst, rSrc, rMsk );
- case BMP_FORMAT_16BIT_TC_LSB_MASK:
- return ImplBlendToBitmap<BMP_FORMAT_16BIT_TC_LSB_MASK>( aSrcType, rDst, rSrc, rMsk );
--
-+
- case BMP_FORMAT_24BIT_TC_BGR:
- return ImplBlendToBitmap<BMP_FORMAT_24BIT_TC_BGR>( aSrcType, rDst, rSrc, rMsk );
- case BMP_FORMAT_24BIT_TC_RGB:
-@@ -829,19 +829,19 @@ bool ImplFastBitmapBlending( BitmapWrite
- if( rTR.mnDestHeight < 0 )
- // TODO: rDst.mnFormat ^= BMP_FORMAT_TOP_DOWN;
- return false;
--
-+
- // offseted blending is not implemented yet
- if( rTR.mnSrcX || rTR.mnSrcY )
- return false;
- if( rTR.mnDestX || rTR.mnDestY )
- return false;
--
-+
- // stretched blending is not implemented yet
- if( rTR.mnDestWidth != rTR.mnSrcWidth )
- return false;
- if( rTR.mnDestHeight!= rTR.mnSrcHeight )
- return false;
--
-+
- // check source image size
- if( rSrcRA.Width() < rTR.mnSrcX + rTR.mnSrcWidth )
- return false;
-@@ -860,14 +860,14 @@ bool ImplFastBitmapBlending( BitmapWrite
- return false;
- if( rDstWA.Height() < rTR.mnDestY + rTR.mnDestHeight )
- return false;
--
-+
- BitmapBuffer& rDst = *rDstWA.ImplGetBitmapBuffer();
- const BitmapBuffer& rSrc = *rSrcRA.ImplGetBitmapBuffer();
- const BitmapBuffer& rMsk = *rMskRA.ImplGetBitmapBuffer();
-
- const ULONG nSrcFormat = rSrc.mnFormat & ~BMP_FORMAT_TOP_DOWN;
- const ULONG nDstFormat = rDst.mnFormat & ~BMP_FORMAT_TOP_DOWN;
--
-+
- // accelerated conversions for 16bit colormasks with non-565 format are not yet implemented
- if( nSrcFormat & (BMP_FORMAT_16BIT_TC_LSB_MASK | BMP_FORMAT_16BIT_TC_MSB_MASK) )
- if( rSrc.maColorMask.GetRedMask() != 0xF800
-@@ -879,7 +879,7 @@ bool ImplFastBitmapBlending( BitmapWrite
- || rDst.maColorMask.GetGreenMask()!= 0x07E0
- || rDst.maColorMask.GetBlueMask() != 0x001F)
- return false;
--
-+
- // select the matching instantiation for the source's bitmap format
- switch( nSrcFormat )
- {
-@@ -889,7 +889,7 @@ bool ImplFastBitmapBlending( BitmapWrite
- case BMP_FORMAT_4BIT_LSN_PAL:
- case BMP_FORMAT_8BIT_PAL:
- break;
--
-+
- case BMP_FORMAT_8BIT_TC_MASK:
- // return ImplBlendFromBitmap<BMP_FORMAT_8BIT_TC_MASK>( rDst, rSrc );
- case BMP_FORMAT_24BIT_TC_MASK:
-@@ -897,17 +897,17 @@ bool ImplFastBitmapBlending( BitmapWrite
- case BMP_FORMAT_32BIT_TC_MASK:
- // return ImplBlendFromBitmap<BMP_FORMAT_32BIT_TC_MASK>( rDst, rSrc );
- break;
--
-+
- case BMP_FORMAT_16BIT_TC_MSB_MASK:
- return ImplBlendFromBitmap<BMP_FORMAT_16BIT_TC_MSB_MASK>( rDst, rSrc, rMsk );
- case BMP_FORMAT_16BIT_TC_LSB_MASK:
- return ImplBlendFromBitmap<BMP_FORMAT_16BIT_TC_LSB_MASK>( rDst, rSrc, rMsk );
--
-+
- case BMP_FORMAT_24BIT_TC_BGR:
- return ImplBlendFromBitmap<BMP_FORMAT_24BIT_TC_BGR>( rDst, rSrc, rMsk );
- case BMP_FORMAT_24BIT_TC_RGB:
- return ImplBlendFromBitmap<BMP_FORMAT_24BIT_TC_RGB>( rDst, rSrc, rMsk );
--
-+
- case BMP_FORMAT_32BIT_TC_ABGR:
- return ImplBlendFromBitmap<BMP_FORMAT_32BIT_TC_ABGR>( rDst, rSrc, rMsk );
- #ifdef FAST_ARGB_BGRA
-@@ -931,6 +931,80 @@ bool ImplFastBitmapBlending( BitmapWrite
- return false;
- }
-
-+bool ImplFastEraseBitmap( BitmapBuffer& rDst, const BitmapColor& rColor )
-+{
-+ if( bDisableFastBitops )
-+ return false;
-+
-+ const ULONG nDstFormat = rDst.mnFormat & ~BMP_FORMAT_TOP_DOWN;
-+
-+ // erasing a bitmap is often just a byte-wise memory fill
-+ bool bByteFill = true;
-+ BYTE nIndex = rColor.GetIndex();
-+ BYTE nFillByte;
-+
-+ switch( nDstFormat )
-+ {
-+ case BMP_FORMAT_1BIT_MSB_PAL:
-+ case BMP_FORMAT_1BIT_LSB_PAL:
-+ nFillByte = -(nIndex & 1);
-+ break;
-+ case BMP_FORMAT_4BIT_MSN_PAL:
-+ case BMP_FORMAT_4BIT_LSN_PAL:
-+ nFillByte = (nIndex & 0x0F);
-+ nFillByte |= (nFillByte << 4);
-+ break;
-+ case BMP_FORMAT_8BIT_PAL:
-+ case BMP_FORMAT_8BIT_TC_MASK:
-+ nFillByte = nIndex;
-+ break;
-+
-+ case BMP_FORMAT_24BIT_TC_MASK:
-+ case BMP_FORMAT_24BIT_TC_BGR:
-+ case BMP_FORMAT_24BIT_TC_RGB:
-+ nFillByte = rColor.GetRed();
-+ if( (nFillByte != rColor.GetGreen())
-+ || (nFillByte != rColor.GetBlue()) )
-+ bByteFill = false;
-+ break;
-+
-+ default:
-+ bByteFill = false;
-+ break;
-+ }
-+
-+ if( bByteFill )
-+ {
-+ long nByteCount = rDst.mnHeight * rDst.mnScanlineSize;
-+ rtl_fillMemory( rDst.mpBits, nByteCount, nFillByte );
-+ return true;
-+ }
-+
-+ // handle other bitmap formats
-+ switch( nDstFormat )
-+ {
-+ case BMP_FORMAT_32BIT_TC_MASK:
-+ case BMP_FORMAT_16BIT_TC_MSB_MASK:
-+ case BMP_FORMAT_16BIT_TC_LSB_MASK:
-+
-+ case BMP_FORMAT_24BIT_TC_BGR:
-+ case BMP_FORMAT_24BIT_TC_RGB:
-+
-+ case BMP_FORMAT_32BIT_TC_ABGR:
-+#ifdef FAST_ARGB_BGRA
-+ case BMP_FORMAT_32BIT_TC_ARGB:
-+ case BMP_FORMAT_32BIT_TC_BGRA:
-+#endif
-+ case BMP_FORMAT_32BIT_TC_RGBA:
-+ break;
-+
-+ default:
-+ break;
-+ }
-+
-+ return false;
-+}
-+
- // =======================================================================
-
- #else // NO_OPTIMIZED_BITMAP_ACCESS
-@@ -943,6 +1017,11 @@ bool ImplFastBitmapConversion( BitmapBuf
- bool ImplFastBitmapBlending( BitmapWriteAccess&,
- const BitmapReadAccess&, const BitmapReadAccess&,
- const Size&, const Point& )
-+{
-+ return false;
-+}
-+
-+bool ImplFastEraseBitmap( BitmapBuffer&, const BitmapColor& )
- {
- return false;
- }
-Index: vcl/source/gdi/impbmp.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/gdi/impbmp.cxx,v
-retrieving revision 1.6
-retrieving revision 1.6.18.1
-diff -u -p -r1.6 -r1.6.18.1
---- vcl/source/gdi/impbmp.cxx 9 Sep 2005 12:00:57 -0000 1.6
-+++ vcl/source/gdi/impbmp.cxx 26 Oct 2005 11:47:22 -0000 1.6.18.1
-@@ -55,7 +55,8 @@ ImpBitmap::ImpBitmap() :
- mnRefCount ( 1UL ),
- mnChecksum ( 0UL ),
- mpRMBitmap ( NULL ),
-- mpSalBitmap ( ImplGetSVData()->mpDefInst->CreateSalBitmap() )
-+ mpSalBitmap ( ImplGetSVData()->mpDefInst->CreateSalBitmap() ),
-+ maSourceSize( 0, 0 )
- {
- }
-
-@@ -76,6 +77,7 @@ void ImpBitmap::ImplSetSalBitmap( SalBit
-
- BOOL ImpBitmap::ImplCreate( const Size& rSize, USHORT nBitCount, const BitmapPalette& rPal )
- {
-+ maSourceSize = rSize;
- return mpSalBitmap->Create( rSize, nBitCount, rPal );
- }
-
-@@ -83,6 +85,7 @@ BOOL ImpBitmap::ImplCreate( const Size&
-
- BOOL ImpBitmap::ImplCreate( const ImpBitmap& rImpBitmap )
- {
-+ maSourceSize = rImpBitmap.maSourceSize;
- mnChecksum = rImpBitmap.mnChecksum;
- return mpSalBitmap->Create( *rImpBitmap.mpSalBitmap );
- }
-Index: vcl/source/gdi/impgraph.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/gdi/impgraph.cxx,v
-retrieving revision 1.21
-retrieving revision 1.20.18.2
-diff -u -p -r1.21 -r1.20.18.2
---- vcl/source/gdi/impgraph.cxx 19 Oct 2005 12:38:43 -0000 1.21
-+++ vcl/source/gdi/impgraph.cxx 15 Nov 2005 09:59:07 -0000 1.20.18.2
-@@ -117,8 +118,54 @@ struct ImpSwapFile
- // - Graphicreader -
- // -----------------
-
-+struct ReaderData
-+{
-+ Size maPreviewSize;
-+};
-+
- GraphicReader::~GraphicReader()
- {
-+ delete mpReaderData;
-+}
-+
-+// ------------------------------------------------------------------------
-+
-+BOOL GraphicReader::IsPreviewModeEnabled() const
-+{
-+ if( !mpReaderData )
-+ return FALSE;
-+ if( mpReaderData->maPreviewSize.Width() )
-+ return TRUE;
-+ if( mpReaderData->maPreviewSize.Height() )
-+ return TRUE;
-+ return FALSE;
-+}
-+
-+// ------------------------------------------------------------------------
-+
-+void GraphicReader::DisablePreviewMode()
-+{
-+ if( mpReaderData )
-+ mpReaderData->maPreviewSize = Size( 0, 0 );
-+}
-+
-+// ------------------------------------------------------------------------
-+
-+void GraphicReader::SetPreviewSize( const Size& rSize )
-+{
-+ if( !mpReaderData )
-+ mpReaderData = new ReaderData;
-+ mpReaderData->maPreviewSize = rSize;
-+}
-+
-+// ------------------------------------------------------------------------
-+
-+Size GraphicReader::GetPreviewSize() const
-+{
-+ Size aSize( 0, 0 );
-+ if( mpReaderData )
-+ aSize = mpReaderData->maPreviewSize;
-+ return aSize;
- }
-
- // --------------
-Index: vcl/source/gdi/outmap.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/gdi/outmap.cxx,v
-retrieving revision 1.16
-retrieving revision 1.16.18.2
-diff -u -p -r1.16 -r1.16.18.2
---- vcl/source/gdi/outmap.cxx 9 Sep 2005 12:07:42 -0000 1.16
-+++ vcl/source/gdi/outmap.cxx 28 Sep 2005 06:53:47 -0000 1.16.18.2
-@@ -86,6 +86,8 @@
- #include <salgdi.hxx>
- #endif
-
-+#define USE_64BIT_INTS
-+
- // =======================================================================
-
- DBG_NAMEEX( OutputDevice );
-@@ -205,6 +207,13 @@ static void ImplCalcBigIntThreshold( lon
- else
- rThresRes.mnThresPixToLogY = (long)(((ULONG)LONG_MAX + (ULONG)(-nProductY/2)) / nDenomY);
- }
-+
-+#ifdef USE_64BIT_INTS
-+ rThresRes.mnThresLogToPixX /= 2;
-+ rThresRes.mnThresLogToPixY /= 2;
-+ rThresRes.mnThresPixToLogX /= 2;
-+ rThresRes.mnThresPixToLogY /= 2;
-+#endif
- }
-
- // -----------------------------------------------------------------------
-@@ -403,31 +412,41 @@ inline void ImplCalcMapResolution( const
- static long ImplLogicToPixel( long n, long nDPI, long nMapNum, long nMapDenom,
- long nThres )
- {
--#if 1
-- if ( Abs( n ) < nThres )
-- {
-- sal_Int64 n64 = n;
-- n64 *= nDPI * nMapNum;
-- if( nMapDenom == 1 )
-- n = (long)n64;
-- else
-- {
-- if( n >= 0 )
-- n64 += nMapDenom/2;
-- else
-- n64 -= (nMapDenom-1)/2;
-- n = (long)(n64 / nMapDenom);
-- }
-- return n;
-- }
--#else
-+#ifdef USE_64BIT_INTS
-+#if (SAL_TYPES_SIZEOFLONG < 8)
-+ if( (+n < nThres) && (-n < nThres) )
-+ {
-+ n *= nMapNum * nDPI;
-+ if( nMapDenom != 1 )
-+ {
-+ n = (2 * n) / nMapDenom;
-+ if( n < 0 ) --n; else ++n;
-+ n /= 2;
-+ }
-+ }
-+ else
-+#endif
-+ {
-+ sal_Int64 n64 = n;
-+ n64 *= nMapNum;
-+ n64 *= nDPI;
-+ if( nMapDenom == 1 )
-+ n = (long)n64;
-+ else
-+ {
-+ n = (long)(2 * n64 / nMapDenom);
-+ if( n < 0 ) --n; else ++n;
-+ n /= 2;
-+ }
-+ }
-+ return n;
-+#else // USE_64BIT_INTS
- if ( Abs( n ) < nThres )
- {
- n *= nDPI * nMapNum;
- n += n >= 0 ? nMapDenom/2 : -((nMapDenom-1)/2);
- return (n / nMapDenom);
- }
--#endif
- else
- {
- BigInt aTemp( n );
-@@ -448,6 +467,7 @@ static long ImplLogicToPixel( long n, lo
- aTemp /= BigInt( nMapDenom );
- return (long)aTemp;
- }
-+#endif
- }
-
- // -----------------------------------------------------------------------
-@@ -455,7 +475,21 @@ static long ImplLogicToPixel( long n, lo
- static long ImplPixelToLogic( long n, long nDPI, long nMapNum, long nMapDenom,
- long nThres )
- {
--#if 1
-+#ifdef USE_64BIT_INTS
-+#if (SAL_TYPES_SIZEOFLONG < 8)
-+ if( (+n < nThres) && (-n < nThres) )
-+ n = (2 * n * nMapDenom) / (nDPI * nMapNum);
-+ else
-+#endif
-+ {
-+ sal_Int64 n64 = n;
-+ n64 *= nMapDenom;
-+ long nDenom = nDPI * nMapNum;
-+ n = (long)(2 * n64 / nDenom);
-+ }
-+ if( n < 0 ) --n; else ++n;
-+ return (n / 2);
-+#else // USE_64BIT_INTS
- if ( Abs( n ) < nThres )
- {
- long nDenom = nDPI * nMapNum;
-@@ -463,31 +497,9 @@ static long ImplPixelToLogic( long n, lo
- if( (nNum ^ nDenom) >= 0 )
- nNum += nDenom/2;
- else
-- nNum -= (nDenom+1)/2;
-+ nNum -= nDenom/2;
- return (nNum / nDenom);
- }
--#else
-- if ( Abs( n ) < nThres )
-- {
-- long nDenom = nDPI * nMapNum;
-- long nNum = n * nMapDenom;
-- if ( nNum >= 0 )
-- {
-- if ( nDenom >= 0 )
-- nNum += nDenom/2;
-- else
-- nNum -= (nDenom+1)/2;
-- }
-- else
-- {
-- if ( nDenom >= 0 )
-- nNum -= (nDenom-1)/2;
-- else
-- nNum += nDenom/2;
-- }
-- return (nNum / nDenom);
-- }
--#endif
- else
- {
- BigInt aDenom( nDPI );
-@@ -529,6 +541,7 @@ static long ImplPixelToLogic( long n, lo
- aNum /= aDenom;
- return (long)aNum;
- }
-+#endif
- }
-
- // -----------------------------------------------------------------------
-Index: vcl/source/gdi/pngread.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/gdi/pngread.cxx,v
-retrieving revision 1.12
-retrieving revision 1.10.18.16
-diff -u -p -r1.12 -r1.10.18.16
---- vcl/source/gdi/pngread.cxx 24 Oct 2005 07:48:31 -0000 1.12
-+++ vcl/source/gdi/pngread.cxx 1 Dec 2005 12:17:47 -0000 1.10.18.16
-@@ -74,24 +74,14 @@
- #define VIEWING_GAMMA 2.5
- #define DISPLAY_GAMMA 1.25
-
-+#define MAX_CHUNKLEN 40000000
-+
- namespace vcl
- {
- // -----------
- // - statics -
- // -----------
-
--static const BYTE aBlockHeight[ 8 ] =
--{
-- 0, 8, 8, 4, 4, 2, 2, 1
--};
--
--// ------------------------------------------------------------------------------
--
--static const BYTE aBlockWidth[ 8 ] =
--{
-- 0, 8, 4, 4, 2, 2, 1, 1
--};
--
- // ------------------------------------------------------------------------------
-
- static const BYTE mpDefaultColorTable[ 256 ] =
-@@ -113,70 +103,19 @@ static const BYTE mpDefaultColorTable[ 2
- 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff
- };
-
--/* ------------------------------------------------------------------------
-- SJ: InitChunkSeq reads all PNG chunks. The rStm stream position will be at
-- the end of the file afterwards.
--*/
--const sal_Bool InitChunkSeq( SvStream& rStm, std::vector< vcl::PNGReader::ChunkData >& rChunkSeq )
--{
-- sal_Bool bRet = sal_True;
-- sal_uInt16 nIStmOldMode = rStm.GetNumberFormatInt();
-- rStm.SetNumberFormatInt( NUMBERFORMAT_INT_BIGENDIAN );
--
-- sal_uInt32 nDummy[ 2 ] = {0, 0};
-- rStm >> nDummy[0] >> nDummy[1];
-- if( ! ( nDummy[0] == 0x89504e47 ) && ( nDummy[1] == 0x0d0a1a0a ) )
-- bRet = sal_False;
-- else
-- {
-- sal_uInt32 nChunkLen, nCRC32, nCheck, nType = 0;
-- while( !rStm.IsEof() && ( rStm.GetError() == ERRCODE_NONE ) )
-- {
-- rChunkSeq.resize( rChunkSeq.size() + 1 );
-- vcl::PNGReader::ChunkData& rChunkData = rChunkSeq.back();
-- rStm >> nChunkLen
-- >> nType;
--
-- rChunkData.nType = nType;
-- #if defined(__LITTLEENDIAN) || defined(OSL_LITENDIAN)
-- nType = SWAPLONG( nType );
-- #endif
-- nCRC32 = rtl_crc32( 0, &nType, 4 );
-- if ( nChunkLen && !rStm.IsEof() )
-- {
-- rChunkData.aData.resize( nChunkLen );
-- sal_uInt8* pPtr = &rChunkData.aData[ 0 ];
-- rStm.Read( pPtr, nChunkLen );
-- nCRC32 = rtl_crc32( nCRC32, pPtr, nChunkLen );
-- }
-- rStm >> nCheck;
-- if ( nCRC32 != nCheck )
-- {
-- bRet = sal_False;
-- break;
-- }
-- if ( rChunkData.nType == PNGCHUNK_IEND )
-- break;
-- }
-- if ( !rChunkSeq.size() || ( rChunkSeq[ 0 ].nType != PNGCHUNK_IHDR ) )
-- bRet = sal_False;
-- }
-- rStm.SetNumberFormatInt( nIStmOldMode );
-- return bRet;
--}
--
- // -------------
- // - PNGReaderImpl -
- // -------------
-
- class PNGReaderImpl
- {
-- friend class vcl::PNGReader;
--
-- std::vector< vcl::PNGReader::ChunkData > maChunkSeq;
-- std::vector< sal_uInt8 >::iterator maDataIter;
-- std::vector< sal_uInt8 >::iterator maDataEnd;
-- sal_Int32 mnChunkLen;
-+private:
-+ SvStream& mrPNGStream;
-+ sal_uInt16 mnOrigStreamMode;
-+
-+ std::vector< vcl::PNGReader::ChunkData > maChunkSeq;
-+ std::vector< vcl::PNGReader::ChunkData >::iterator maChunkIter;
-+ std::vector< sal_uInt8 >::iterator maDataIter;
-
- Bitmap* mpBmp;
- BitmapWriteAccess* mpAcc;
-@@ -185,31 +124,36 @@ class PNGReaderImpl
- BitmapWriteAccess* mpMaskAcc;
- ZCodec* mpZCodec;
- BYTE* mpInflateInBuf; // as big as the size of a scanline + alphachannel + 1
-- BYTE* mpScanprior; // pointer to the latest scanline
-- BYTE* mpTransTab; //
-- BYTE* mpScan; // pointer in the current scanline
-+ BYTE* mpScanPrior; // pointer to the latest scanline
-+ BYTE* mpTransTab; // for transparency in images with palette colortype
-+ BYTE* mpScanCurrent; // pointer into the current scanline
- BYTE* mpColorTable; //
-- sal_uInt32 mnChunkType; // Chunk which is currently open
-- sal_uInt32 mnWidth;
-- sal_uInt32 mnHeight;
-- sal_uInt32 mnBBP; // number of bytes per pixel
-- sal_uInt32 mnScansize; // max size of scanline
-- sal_uInt32 mnPrefWidth; // preferred width in meter
-- sal_uInt32 mnPrefHeight; // preferred Height in meter
-- sal_uInt32 mnYpos; // latest y position;
-+ sal_uInt32 mnChunkType; // Type of current PNG chunk
-+ sal_uInt32 mnChunkLen; // Length of current PNG chunk
-+ Size maOrigSize; // pixel size of the full image
-+ Size maTargetSize; // pixel size of the result image
-+ Size maPhysSize; // prefered size in MAP_100TH_MM units
-+ sal_uInt32 mnBPP; // number of bytes per pixel
-+ sal_uInt32 mnScansize; // max size of scanline
-+ sal_uInt32 mnYpos; // latest y position in full image
-+ int mnPass; // if interlaced the latest pass ( 1..7 ) else 7
-+ sal_uInt32 mnXStart; // the starting X for the current pass
-+ sal_uInt32 mnXAdd; // the increment for input images X coords for the current pass
-+ sal_uInt32 mnYAdd; // the increment for input images Y coords for the current pass
-+ int mnPreviewShift; // shift to convert orig image coords into preview image coords
-+ int mnPreviewMask; // == ((1 << mnPreviewShift) - 1)
- USHORT mnIStmOldMode;
-- USHORT mnDepth; // pixel depth
-+ USHORT mnDepth; // pixel depth of target bitmap
- BYTE mnTransRed;
- BYTE mnTransGreen;
- BYTE mnTransBlue;
-- BYTE mnBitDepth; // sample depth
-+ BYTE mnBitDepth; // pixel depth of PNG data
- BYTE mnColorType;
- BYTE mnCompressionType;
- BYTE mnFilterType;
- BYTE mnInterlaceType;
-- BYTE mnPass; // if interlaced the latest pass ( 1..7 ) else 7
-- BYTE cTransIndex1;
-- BYTE cNonTransIndex1;
-+ BitmapColor mcTranspColor; // transparency mask's transparency "color"
-+ BitmapColor mcOpaqueColor; // transparency mask's opaque "color"
- BOOL mbStatus;
- BOOL mbTransparent; // graphic includes an tRNS Chunk or an alpha Channel
- BOOL mbAlphaChannel;
-@@ -217,40 +161,50 @@ class PNGReaderImpl
- BOOL mbPalette; // FALSE if we need a Palette
- BOOL mbGrayScale;
- BOOL mbzCodecInUse;
-- BOOL mbIDAT; // TRUE if finished with the complete IDAT...
-+ BOOL mbIDAT; // TRUE if finished with enough IDAT chunks
- BOOL mbGamma; // TRUE if Gamma Correction available
- BOOL mbpHYs; // TRUE if pysical size of pixel available
-
-- void ImplSetPixel( sal_uInt32 y, sal_uInt32 x, const BitmapColor &, BOOL bTrans );
-- void ImplSetPixel( sal_uInt32 y, sal_uInt32 x, BYTE nPalIndex, BOOL bTrans );
-+ bool ReadNextChunk();
-+ void ReadRemainingChunks();
-+ void SkipRemainingChunks();
-+
-+ void ImplSetPixel( sal_uInt32 y, sal_uInt32 x, const BitmapColor & );
-+ void ImplSetPixel( sal_uInt32 y, sal_uInt32 x, BYTE nPalIndex );
-+ void ImplSetTranspPixel( sal_uInt32 y, sal_uInt32 x, const BitmapColor &, BOOL bTrans );
-+ void ImplSetTranspPixel( sal_uInt32 y, sal_uInt32 x, BYTE nPalIndex, BOOL bTrans );
- void ImplSetAlphaPixel( sal_uInt32 y, sal_uInt32 x, const BitmapColor&, BYTE nAlpha );
- void ImplReadIDAT();
-- void ImplResizeScanline();
-- void ImplGetFilter( sal_uInt32 nXStart=0, sal_uInt32 nXAdd=1 );
-- void ImplReadTransparent();
-+ bool ImplPreparePass();
-+ void ImplApplyFilter();
-+ void ImplDrawScanline( sal_uInt32 nXStart, sal_uInt32 nXAdd );
-+ BOOL ImplReadTransparent();
- void ImplGetGamma();
- void ImplGetBackground();
- BYTE ImplScaleColor();
-- BOOL ImplReadHeader();
-+ BOOL ImplReadHeader( const Size& rPreviewSizeHint );
- BOOL ImplReadPalette();
- void ImplGetGrayPalette( sal_uInt32 );
- sal_uInt32 ImplReadsal_uInt32();
-
- public:
-
-- PNGReaderImpl( SvStream& rStm );
-+ PNGReaderImpl( SvStream& );
- ~PNGReaderImpl();
-
-- BitmapEx Read();
-+ BitmapEx GetBitmapEx( const Size& rPreviewSizeHint );
-+ const std::vector< PNGReader::ChunkData >& GetAllChunks();
- };
-
- // ------------------------------------------------------------------------------
-
--PNGReaderImpl::PNGReaderImpl( SvStream& rPNG ) :
-+PNGReaderImpl::PNGReaderImpl( SvStream& rPNGStream )
-+: mrPNGStream( rPNGStream ),
-+ mbIDAT( FALSE ),
- mpAcc ( NULL ),
- mpMaskAcc ( NULL ),
- mpInflateInBuf ( NULL ),
-- mpScanprior ( NULL ),
-+ mpScanPrior ( NULL ),
- mpTransTab ( NULL ),
- mpBmp ( NULL ),
- mpMaskBmp ( NULL ),
-@@ -261,49 +215,156 @@ PNGReaderImpl::PNGReaderImpl( SvStream&
- mpColorTable ( (sal_uInt8*) mpDefaultColorTable ),
- mpZCodec ( new ZCodec( DEFAULT_IN_BUFSIZE, DEFAULT_OUT_BUFSIZE, MAX_MEM_USAGE ) )
- {
-- mbStatus = InitChunkSeq( rPNG, maChunkSeq );
-+ // prepare the PNG data stream
-+ mnOrigStreamMode = mrPNGStream.GetNumberFormatInt();
-+ mrPNGStream.SetNumberFormatInt( NUMBERFORMAT_INT_BIGENDIAN );
-+
-+ // prepare the chunk reader
-+ maChunkSeq.reserve( 16 );
-+ maChunkIter = maChunkSeq.begin();
-+
-+ sal_uInt32 nDummy;
-+ mrPNGStream >> nDummy;
-+ mbStatus = (nDummy == 0x89504e47);
-+ mrPNGStream >> nDummy;
-+ mbStatus &= (nDummy == 0x0d0a1a0a);
-+
-+ mnPreviewShift = 0;
-+ mnPreviewMask = (1 << mnPreviewShift) - 1;
- }
-
- // ------------------------------------------------------------------------
-
- PNGReaderImpl::~PNGReaderImpl()
- {
-+ mrPNGStream.SetNumberFormatInt( mnOrigStreamMode );
-+
- if ( mbzCodecInUse )
- mpZCodec->EndCompression();
-
- if( mpColorTable != mpDefaultColorTable )
- delete[] mpColorTable;
-
-- rtl_freeMemory( mpScanprior );
-+ delete mpBmp;
-+ delete mpAlphaMask;
-+ delete mpMaskBmp;
-+ delete[] mpTransTab;
-+ delete[] mpInflateInBuf;
-+ delete[] mpScanPrior;
-+ delete mpZCodec;
-+}
-+
-+// ------------------------------------------------------------------------
-
-- delete mpBmp;
-- delete mpAlphaMask;
-- delete mpMaskBmp;
-- delete[] mpTransTab;
-- delete[] mpInflateInBuf;
-- delete mpZCodec;
-+bool PNGReaderImpl::ReadNextChunk()
-+{
-+ if( maChunkIter == maChunkSeq.end() )
-+ {
-+ // get the next chunk from the stream
-+
-+ // unless we are at the end of the PNG stream
-+ if( mrPNGStream.IsEof() || (mrPNGStream.GetError() != ERRCODE_NONE) )
-+ return false;
-+ if( !maChunkSeq.empty() && (maChunkSeq.back().nType == PNGCHUNK_IEND) )
-+ return false;
-+
-+ PNGReader::ChunkData aDummyChunk;
-+ maChunkIter = maChunkSeq.insert( maChunkSeq.end(), aDummyChunk );
-+ PNGReader::ChunkData& rChunkData = *maChunkIter;
-+
-+ // read the chunk header
-+ mrPNGStream >> mnChunkLen >> mnChunkType;
-+ rChunkData.nType = mnChunkType;
-+
-+ // #128377# sanity check for chunk length
-+ if( mnChunkLen > MAX_CHUNKLEN)
-+ return false;
-+
-+ // calculate chunktype CRC (swap it back to original byte order)
-+ sal_uInt32 nChunkType = mnChunkType;;
-+ #if defined(__LITTLEENDIAN) || defined(OSL_LITENDIAN)
-+ nChunkType = SWAPLONG( nChunkType );
-+ #endif
-+ sal_uInt32 nCRC32 = rtl_crc32( 0, &nChunkType, 4 );
-+
-+ // read the chunk data and check the CRC
-+ if( mnChunkLen && !mrPNGStream.IsEof() )
-+ {
-+ rChunkData.aData.resize( mnChunkLen );
-+ sal_uInt8* pPtr = &rChunkData.aData[ 0 ];
-+ mrPNGStream.Read( pPtr, mnChunkLen );
-+ nCRC32 = rtl_crc32( nCRC32, pPtr, mnChunkLen );
-+ maDataIter = rChunkData.aData.begin();
-+ }
-+ sal_uInt32 nCheck;
-+ mrPNGStream >> nCheck;
-+ if( nCRC32 != nCheck )
-+ return false;
-+ }
-+ else
-+ {
-+ // the next chunk was already read
-+ mnChunkType = (*maChunkIter).nType;
-+ mnChunkLen = (*maChunkIter).aData.size();
-+ maDataIter = (*maChunkIter).aData.begin();
-+ }
-+
-+ ++maChunkIter;
-+ if( mnChunkType == PNGCHUNK_IEND )
-+ return false;
-+ return true;
- }
-
- // ------------------------------------------------------------------------
-
--BitmapEx PNGReaderImpl::Read()
-+// read the remaining chunks from mrPNGStream
-+void PNGReaderImpl::ReadRemainingChunks()
- {
-- BitmapEx aRet;
-+ while( ReadNextChunk() );
-+}
-
-- std::vector< vcl::PNGReader::ChunkData >::iterator aIter( maChunkSeq.begin() );
-- std::vector< vcl::PNGReader::ChunkData >::iterator aEnd ( maChunkSeq.end() );
-+// ------------------------------------------------------------------------
-
-- while( mbStatus && ( aIter != aEnd ) && ( aIter->nType != PNGCHUNK_IEND ) )
-- {
-- maDataIter = aIter->aData.begin();
-- maDataEnd = aIter->aData.end();
-- mnChunkLen = aIter->aData.size();
-+// move position of mrPNGStream to the end of the file
-+void PNGReaderImpl::SkipRemainingChunks()
-+{
-+ // nothing to skip if the last chunk was read
-+ if( !maChunkSeq.empty() && (maChunkSeq.back().nType == PNGCHUNK_IEND) )
-+ return;
-+
-+ // read from the stream until the IEND chunk is found
-+ while( !mrPNGStream.IsEof() && (mrPNGStream.GetError() == ERRCODE_NONE) )
-+ {
-+ mrPNGStream >> mnChunkLen >> mnChunkType;
-+ mrPNGStream.SeekRel( mnChunkLen + 4 ); // skip data + CRC
-+ if( mnChunkType == PNGCHUNK_IEND )
-+ break;
-+ }
-+}
-
-- switch ( aIter->nType )
-+// ------------------------------------------------------------------------
-+
-+const std::vector< vcl::PNGReader::ChunkData >& PNGReaderImpl::GetAllChunks()
-+{
-+ ReadRemainingChunks();
-+ return maChunkSeq;
-+}
-+
-+// ------------------------------------------------------------------------
-+
-+BitmapEx PNGReaderImpl::GetBitmapEx( const Size& rPreviewSizeHint )
-+{
-+ // reset to the first chunk
-+ maChunkIter = maChunkSeq.begin();
-+
-+ // parse the chunks
-+ while( mbStatus && !mbIDAT && ReadNextChunk() )
-+ {
-+ switch( mnChunkType )
- {
- case PNGCHUNK_IHDR :
- {
-- mbStatus = ImplReadHeader();
-+ mbStatus = ImplReadHeader( rPreviewSizeHint );
- }
- break;
-
-@@ -322,7 +383,7 @@ BitmapEx PNGReaderImpl::Read()
- break;
-
- case PNGCHUNK_tRNS :
-- ImplReadTransparent();
-+ mbStatus = ImplReadTransparent();
- break;
-
- case PNGCHUNK_bKGD : // the background chunk must appear
-@@ -343,19 +404,29 @@ BitmapEx PNGReaderImpl::Read()
- {
- if ( !mbIDAT && mnChunkLen == 9 )
- {
-- mnPrefWidth = ImplReadsal_uInt32();
-- mnPrefHeight= ImplReadsal_uInt32();
--
-- sal_uInt8 nUnitSpecifier = *maDataIter++;
-+ sal_uInt32 nXPixelPerMeter = ImplReadsal_uInt32();
-+ sal_uInt32 nYPixelPerMeter = ImplReadsal_uInt32();
-
-- if ( nUnitSpecifier == 1 )
-- mbpHYs = sal_True;
-+ sal_uInt8 nUnitSpecifier = *maDataIter++;
-+ if( (nUnitSpecifier == 1) && nXPixelPerMeter && nXPixelPerMeter )
-+ {
-+ mbpHYs = sal_True;
-+
-+ // convert into MAP_100TH_MM
-+ maPhysSize.Width() = (sal_Int32)( (100000.0 * maOrigSize.Width()) / nXPixelPerMeter );
-+ maPhysSize.Height() = (sal_Int32)( (100000.0 * maOrigSize.Height()) / nYPixelPerMeter );
-+ }
- }
- }
- break;
-+
-+ case PNGCHUNK_IEND:
-+ mbStatus = mbIDAT; // there is a problem if the image is not complete yet
-+ break;
- }
-- aIter++;
- }
-+
-+ // release write access of the bitmaps
- if ( mpAcc )
- mpBmp->ReleaseAccess( mpAcc ), mpAcc = NULL;
-
-@@ -368,8 +439,13 @@ BitmapEx PNGReaderImpl::Read()
-
- mpMaskAcc = NULL;
- }
--
-- if ( mbStatus )
-+
-+ // return the resulting BitmapEx
-+ BitmapEx aRet;
-+
-+ if( !mbStatus || !mbIDAT )
-+ aRet.Clear();
-+ else
- {
- if ( mbAlphaChannel )
- aRet = BitmapEx( *mpBmp, *mpAlphaMask );
-@@ -378,57 +454,61 @@ BitmapEx PNGReaderImpl::Read()
- else
- aRet = *mpBmp;
-
-- if ( mbpHYs && mnPrefWidth && mnPrefHeight )
-+ if ( mbpHYs && maPhysSize.Width() && maPhysSize.Height() )
- {
-- sal_Int32 nPrefSizeX = (sal_Int32)( 100000.0 * ( (double)mnWidth / mnPrefWidth ) );
-- sal_Int32 nPrefSizeY = (sal_Int32)( 100000.0 * ( (double)mnHeight / mnPrefHeight ) );
--
- aRet.SetPrefMapMode( MAP_100TH_MM );
-- aRet.SetPrefSize( Size( nPrefSizeX, nPrefSizeY ) );
-+ aRet.SetPrefSize( maPhysSize );
- }
-+
-+#if 0
-+ // TODO: make sure nobody depends on the stream being after the IEND chunks
-+ // => let them do ReadChunks before
-+ ReadRemainingChunks();
-+#endif
- }
-- if( !mbStatus )
-- aRet.Clear();
-
- return aRet;
- }
-
- // ------------------------------------------------------------------------
-
--BOOL PNGReaderImpl::ImplReadHeader()
-+BOOL PNGReaderImpl::ImplReadHeader( const Size& rPreviewSizeHint )
- {
-- mnWidth = ImplReadsal_uInt32();
-- mnHeight = ImplReadsal_uInt32();
--
-- if ( ( mnWidth == 0 ) || ( mnHeight == 0 ) )
-- return FALSE;
--
-- mnBitDepth = *maDataIter++;
-- mnColorType = *maDataIter++;
--
-- if ( mnCompressionType = *maDataIter++ )
-- return FALSE;
--
-- if ( mnFilterType = *maDataIter++ )
-- return FALSE;
--
-- switch ( mnInterlaceType = *maDataIter++ ) // filter type valid ?
-+ maOrigSize.Width() = ImplReadsal_uInt32();
-+ maOrigSize.Height() = ImplReadsal_uInt32();
-+
-+ if ( !maOrigSize.Width() || !maOrigSize.Height() )
-+ return FALSE;
-+
-+ mnBitDepth = *(maDataIter++);
-+ mnColorType = *(maDataIter++);
-+
-+ mnCompressionType = *(maDataIter++);
-+ if( mnCompressionType != 0 ) // unknown compression type
-+ return FALSE;
-+
-+ mnFilterType = *(maDataIter++);
-+ if( mnFilterType != 0 ) // unknown filter type
-+ return FALSE;
-+
-+ mnInterlaceType = *(maDataIter++);
-+ switch ( mnInterlaceType ) // filter type valid ?
- {
-- case 0 :
-+ case 0 : // progressive image
- mnPass = 7;
- break;
-- case 1 :
-+ case 1 : // Adam7-interlaced image
- mnPass = 0;
- break;
- default:
- return FALSE;
- }
-- mnYpos = 0;
-+
- mbPalette = TRUE;
- mbIDAT = mbAlphaChannel = mbTransparent = FALSE;
- mbGrayScale = mbRGBTriple = FALSE;
- mnDepth = mnBitDepth;
-- mnScansize = ( ( mnWidth * mnBitDepth ) + 7 ) >> 3;
-+ mnScansize = ( ( maOrigSize.Width() * mnBitDepth ) + 7 ) >> 3;
-
- // valid color types are 0,2,3,4 & 6
- switch ( mnColorType )
-@@ -455,7 +535,7 @@ BOOL PNGReaderImpl::ImplReadHeader()
- case 2 : // each pixel is an RGB triple
- {
- mbRGBTriple = TRUE;
-- mnScansize*=3;
-+ mnScansize *= 3;
- switch ( mnBitDepth )
- {
- case 16 : // we have to reduce the bitmap
-@@ -487,7 +567,7 @@ BOOL PNGReaderImpl::ImplReadHeader()
-
- case 4 : // each pixel is a grayscale sample followed by an alpha sample
- {
-- mnScansize <<= 1;
-+ mnScansize *= 2;
- mbAlphaChannel = TRUE;
- switch ( mnBitDepth )
- {
-@@ -505,7 +585,7 @@ BOOL PNGReaderImpl::ImplReadHeader()
- case 6 : // each pixel is an RGB triple followed by an alpha sample
- {
- mbRGBTriple = TRUE;
-- mnScansize*=4;
-+ mnScansize *= 4;
- mbAlphaChannel = TRUE;
- switch (mnBitDepth )
- {
-@@ -522,44 +602,57 @@ BOOL PNGReaderImpl::ImplReadHeader()
- default :
- return FALSE;
- }
-- mnBBP = mnScansize / mnWidth;
--
-- if ( !mnBBP )
-- mnBBP = 1;
--
-- mnScansize++; // each scanline includes one filterbyte
-- mpScan = mpInflateInBuf = new BYTE[ mnScansize ];
-- mpScanprior = (sal_uInt8*)rtl_allocateZeroMemory( mnScansize );
--
-- if ( mnInterlaceType )
-- ImplResizeScanline();
--
-- mpBmp = new Bitmap( Size( mnWidth, mnHeight ), mnDepth);
-- mpAcc = mpBmp->AcquireWriteAccess();
--
-- if ( mbAlphaChannel )
-- {
-- mpAlphaMask = new AlphaMask( Size( mnWidth, mnHeight ) );
-- mpAlphaMask->Erase( 128 );
-- mpMaskAcc = mpAlphaMask->AcquireWriteAccess();
-- }
-- else
-- {
-- mpMaskBmp = new Bitmap( Size( mnWidth, mnHeight ), 1 );
-- mpMaskBmp->Erase( Color( COL_WHITE ) );
-- mpMaskAcc = mpMaskBmp->AcquireWriteAccess();
-- }
-
-- if ( ( mpAcc == NULL ) || ( mpMaskAcc == NULL ) )
-- return FALSE;
--
-- const Color aWhite( COL_WHITE );
-- cTransIndex1 = (BYTE)mpMaskAcc->GetBestPaletteIndex( aWhite );
-- cNonTransIndex1 = cTransIndex1 ? 0 : 1;
-+ mnBPP = mnScansize / maOrigSize.Width();
-+ if ( !mnBPP )
-+ mnBPP = 1;
-+
-+ mnScansize++; // each scanline includes one filterbyte
-+
-+ // TODO: switch between both scanlines instead of copying
-+ mpInflateInBuf = new BYTE[ mnScansize ];
-+ mpScanCurrent = mpInflateInBuf;
-+ mpScanPrior = new BYTE[ mnScansize ];
-+
-+ // calculate target size from original size and the preview hint
-+ if( rPreviewSizeHint.Width() && rPreviewSizeHint.Height() )
-+ {
-+ maTargetSize = maOrigSize;
-+ for( int i = 1; i < 5; ++i )
-+ {
-+ if( (maTargetSize.Width() >> i) < rPreviewSizeHint.Width() )
-+ break;
-+ if( (maTargetSize.Height() >> i) < rPreviewSizeHint.Height() )
-+ break;
-+ mnPreviewShift = i;
-+ }
-+ mnPreviewMask = (1 << mnPreviewShift) - 1;
-+ }
-+
-+ maTargetSize.Width() = (maOrigSize.Width() + mnPreviewMask) >> mnPreviewShift;
-+ maTargetSize.Height() = (maOrigSize.Height() + mnPreviewMask) >> mnPreviewShift;
-+
-+ mpBmp = new Bitmap( maTargetSize, mnDepth );
-+ mpAcc = mpBmp->AcquireWriteAccess();
-+ if( !mpAcc )
-+ return FALSE;
-+
-+ mpBmp->SetSourceSizePixel( maOrigSize );
-+
-+ if ( mbAlphaChannel )
-+ {
-+ mpAlphaMask = new AlphaMask( maTargetSize );
-+ mpAlphaMask->Erase( 128 );
-+ mpMaskAcc = mpAlphaMask->AcquireWriteAccess();
-+ if( !mpMaskAcc )
-+ return FALSE;
-+ }
-
- if ( mbGrayScale )
- ImplGetGrayPalette( mnDepth );
-
-+ ImplPreparePass();
-+
- return TRUE;
- }
-
-@@ -594,16 +687,14 @@ BOOL PNGReaderImpl::ImplReadPalette()
-
- if ( ( ( mnChunkLen % 3 ) == 0 ) && ( ( 0 < nCount ) && ( nCount <= 256 ) ) && mpAcc )
- {
-- BYTE nRed, nGreen, nBlue;
--
- mbPalette = TRUE;
- mpAcc->SetPaletteEntryCount( (USHORT) nCount );
-
-- for ( USHORT i = 0; i < nCount; i++ )
-+ for ( sal_uInt32 i = 0; i < nCount; i++ )
- {
-- nRed = mpColorTable[ *maDataIter++ ];
-- nGreen = mpColorTable[ *maDataIter++ ];
-- nBlue = mpColorTable[ *maDataIter++ ];
-+ BYTE nRed = mpColorTable[ *maDataIter++ ];
-+ BYTE nGreen = mpColorTable[ *maDataIter++ ];
-+ BYTE nBlue = mpColorTable[ *maDataIter++ ];
- mpAcc->SetPaletteColor( i, Color( nRed, nGreen, nBlue ) );
- }
- }
-@@ -615,7 +706,7 @@ BOOL PNGReaderImpl::ImplReadPalette()
-
- // ------------------------------------------------------------------------
-
--void PNGReaderImpl::ImplReadTransparent()
-+BOOL PNGReaderImpl::ImplReadTransparent()
- {
- if ( mpTransTab == NULL )
- {
-@@ -662,6 +753,19 @@ void PNGReaderImpl::ImplReadTransparent(
- break;
- }
- }
-+
-+ if( mbTransparent && !mbAlphaChannel && !mpMaskBmp )
-+ {
-+ mpMaskBmp = new Bitmap( maTargetSize, 1 );
-+ mpMaskAcc = mpMaskBmp->AcquireWriteAccess();
-+ if( !mpMaskAcc )
-+ return FALSE;
-+ mcOpaqueColor = BitmapColor( COL_BLACK );
-+ mcTranspColor = BitmapColor( COL_WHITE );
-+ mpMaskAcc->Erase( mcOpaqueColor );
-+ }
-+
-+ return TRUE;
- }
-
- // ------------------------------------------------------------------------
-@@ -691,9 +795,6 @@ void PNGReaderImpl::ImplGetGamma()
-
- void PNGReaderImpl::ImplGetBackground()
- {
-- Point aPoint;
-- Rectangle aRectangle( aPoint, Size( mnWidth, mnHeight ) );
--
- switch ( mnColorType )
- {
- case 3 :
-@@ -703,11 +804,10 @@ void PNGReaderImpl::ImplGetBackground()
- UINT16 nCol = *maDataIter++;
- if ( nCol < mpAcc->GetPaletteEntryCount() )
- {
-- mpAcc->SetFillColor( (const Color&)mpAcc->GetPaletteColor( (BYTE)nCol ) );
-- mpAcc->FillRect( aRectangle );
-+ mpAcc->Erase( mpAcc->GetPaletteColor( (BYTE)nCol ) );
- break;
- }
-- }
-+ }
- }
- break;
-
-@@ -719,8 +819,7 @@ void PNGReaderImpl::ImplGetBackground()
- // the color type 0 and 4 is always greyscale,
- // so the return value can be used as index
- sal_uInt8 nIndex = ImplScaleColor();
-- mpAcc->SetFillColor( (const Color&)mpAcc->GetPaletteColor( nIndex ) );
-- mpAcc->FillRect( aRectangle );
-+ mpAcc->Erase( mpAcc->GetPaletteColor( nIndex ) );
- }
- }
- break;
-@@ -733,8 +832,7 @@ void PNGReaderImpl::ImplGetBackground()
- sal_uInt8 nRed = ImplScaleColor();
- sal_uInt8 nGreen = ImplScaleColor();
- sal_uInt8 nBlue = ImplScaleColor();
-- mpAcc->SetFillColor( Color( nRed, nGreen, nBlue ) );
-- mpAcc->FillRect( aRectangle );
-+ mpAcc->Erase( Color( nRed, nGreen, nBlue ) );
- }
- }
- break;
-@@ -759,11 +857,10 @@ sal_uInt8 PNGReaderImpl::ImplScaleColor(
- }
-
- // ------------------------------------------------------------------------
--// ImplReadIDAT reads as much bitmap data as possible
-+// ImplReadIDAT reads as much image data as needed
-
- void PNGReaderImpl::ImplReadIDAT()
- {
-- sal_uInt32 nToRead, nRead;
- if ( mnChunkLen ) // Chunk empty ?
- {
- if ( mbzCodecInUse == FALSE )
-@@ -776,691 +873,588 @@ void PNGReaderImpl::ImplReadIDAT()
-
- while ( ( mpZCodec->GetBreak() ) )
- {
-- // get bytes needed to fill the current scanline
-- nToRead = mnScansize - ( mpScan - mpInflateInBuf );
--
-- if ( ( nRead = mpZCodec->ReadAsynchron( aIStrm, mpScan, nToRead ) ) < 0 )
-+ // get bytes needed to fill the current scanline
-+ sal_uInt32 nToRead = mnScansize - (mpScanCurrent - mpInflateInBuf);
-+ sal_uInt32 nRead = mpZCodec->ReadAsynchron( aIStrm, mpScanCurrent, nToRead );
-+ if ( nRead < 0 )
- {
- mbStatus = FALSE;
- break;
- }
- if ( nRead < nToRead )
- {
-- mpScan += nRead; // ZStream is Broken
-+ mpScanCurrent += nRead; // more ZStream data in the next IDAT chunk
- break;
- }
-- else
-+ else // this scanline is Finished
- {
-- mpScan = mpInflateInBuf; // this scanline is Finished
--
-- if ( mnInterlaceType == 0 )
-- {
-- ImplGetFilter ( 0, 1 );
-- mnYpos++;
-- }
-- else
-- {
-- // interlace mode
-- switch ( mnPass )
-- {
-- case 1 : // pass 1
-- {
-- ImplGetFilter ( 0, 8 );
-- mnYpos += 8;
-- }
-- break;
--
-- case 2 : // pass 2
-- {
-- ImplGetFilter ( 4, 8 );
-- mnYpos += 8;
-- }
-- break;
--
-- case 3 : // pass 3
-- {
-- if ( mnYpos >= 4 )
-- {
-- ImplGetFilter ( 0, 4 );
-- }
-- mnYpos += 8;
-- }
-- break;
--
-- case 4 : // pass 4
-- {
-- ImplGetFilter ( 2, 4 );
-- mnYpos += 4;
-- }
-- break;
-+ mpScanCurrent = mpInflateInBuf;
-+ ImplApplyFilter();
-
-- case 5 : // pass 5
-- {
-- if ( mnYpos >= 2 )
-- {
-- ImplGetFilter ( 0, 2 );
-- }
-- mnYpos += 4;
-- }
-- break;
--
-- case 6 : // pass 6
-- {
-- ImplGetFilter ( 1, 2 );
-- mnYpos += 2;
-- }
-- break;
--
-- case 7 : // pass 7
-- {
-- if ( mnYpos >= 1 )
-- {
-- ImplGetFilter ( 0, 1 );
-- }
-- mnYpos += 2;
-- }
-- break;
-- }
-- }
-+ ImplDrawScanline( mnXStart, mnXAdd );
-+ mnYpos += mnYAdd;
- }
-
-- if ( mnYpos >= mnHeight )
-+ if ( mnYpos >= maOrigSize.Height() )
- {
-- if ( mnPass == 7 )
-- break;
-- else
-- {
-- ImplResizeScanline();
-- }
-+ if( (mnPass < 7) && mnInterlaceType )
-+ if( ImplPreparePass() )
-+ continue;
-+ mbIDAT = true;
-+ break;
- }
- }
- }
-
-- if ( ( mnPass >= 7 ) && ( mnYpos >= mnHeight ) )
-+ if( mbIDAT )
- {
- mpZCodec->EndCompression();
- mbzCodecInUse = FALSE;
-- mbIDAT = TRUE;
- }
- }
-
- // ---------------------------------------------------------------------------------------------------
-
--void PNGReaderImpl::ImplResizeScanline( void )
-+bool PNGReaderImpl::ImplPreparePass()
- {
-- long nScansize;
--
-- while ( mnPass < 7 )
-- {
-- sal_uInt32 nX = 0;
-+ struct InterlaceParams{ int mnXStart, mnYStart, mnXAdd, mnYAdd; };
-+ static const InterlaceParams aInterlaceParams[8] =
-+ {
-+ // non-interlaced
-+ { 0, 0, 1, 1 },
-+ // Adam7-interlaced
-+ { 0, 0, 8, 8 }, // pass 1
-+ { 4, 0, 8, 8 }, // pass 2
-+ { 0, 4, 4, 8 }, // pass 3
-+ { 2, 0, 4, 4 }, // pass 4
-+ { 0, 2, 2, 4 }, // pass 5
-+ { 1, 0, 2, 2 }, // pass 6
-+ { 0, 1, 1, 2 } // pass 7
-+ };
-+
-+ const InterlaceParams* pParam = &aInterlaceParams[ 0 ];
-+ if( mnInterlaceType )
-+ {
-+ while( ++mnPass <= 7 )
-+ {
-+ pParam = &aInterlaceParams[ mnPass ];
-+
-+ // skip this pass if the original image is too small for it
-+ if( (pParam->mnXStart < maOrigSize.Width())
-+ && (pParam->mnYStart < maOrigSize.Height()) )
-+ break;
-+ }
-+ if( mnPass > 7 )
-+ return false;
-+
-+ // skip the last passes if possible (for scaled down target images)
-+ if( mnPreviewMask & (pParam->mnXStart | pParam->mnYStart) )
-+ return false;
-+ }
-+
-+ mnYpos = pParam->mnYStart;
-+ mnXStart = pParam->mnXStart;
-+ mnXAdd = pParam->mnXAdd;
-+ mnYAdd = pParam->mnYAdd;
-+
-+ long nScansize = (maOrigSize.Width() - mnXStart + mnXAdd - 1) / mnXAdd;
-+
-+ // in Interlace mode the size of scanline is not constant
-+ // so first we calculate the number of entrys
-+ mnScansize = nScansize * mnBitDepth;
-+
-+ if ( mbRGBTriple )
-+ mnScansize *= 3;
-+
-+ // convert bitsize to byte
-+ mnScansize = ( mnScansize + 7 ) >> 3;
-
-- mnYpos = 0;
-- mnPass++;
--
-- switch ( mnPass )
-- {
-- case 1 :
-- nScansize = ( mnWidth + 7 ) >> 3;
-- break;
-+ if ( mbAlphaChannel )
-+ mnScansize += nScansize;
-
-- case 2 :
-- nX += 4;
-- nScansize = ( mnWidth + 3 ) >> 3;
-- break;
-+ ++mnScansize; // scan size also needs room for the filtertype byte
-+ rtl_zeroMemory( mpScanPrior, mnScansize );
-
-- case 3 :
-- mnYpos += 4;
-- nScansize = ( mnWidth + 3 ) >> 2;
-- break;
--
-- case 4 :
-- nX += 2;
-- nScansize = ( mnWidth + 1) >> 2;
-- break;
--
-- case 5 :
-- mnYpos += 2;
-- nScansize = ( mnWidth + 1 ) >> 1;
-- break;
--
-- case 6 :
-- nX++;
-- nScansize = mnWidth >> 1;
-- break;
--
-- case 7 :
-- mnYpos++;
-- nScansize = mnWidth;
-- break;
--
-- default:
-- nScansize = 0;
-- break;
-- }
--
-- if ( ( mnYpos >= mnHeight ) || ( nX >= mnWidth ) ) // is pass to be skipped ?
-- continue;
--
-- // in Interlace mode the size of scanline is not constant
-- // so first we calculate the number of entrys
-- mnScansize = nScansize * mnBitDepth;
-+ return true;
-+}
-
-- if ( mbRGBTriple )
-- mnScansize *= 3;
-+// ---------------------------------------------------------------------------------------------------
-+// ImplApplyFilter writes the complete Scanline (nY) - in interlace mode the parameter nXStart and nXAdd
-+// appends to the currently used pass
-
-- // convert bitsize to byte
-- mnScansize = ( mnScansize + 7 ) >> 3;
-+void PNGReaderImpl::ImplApplyFilter()
-+{
-+ const BYTE* const pScanEnd = mpInflateInBuf + mnScansize;
-
-- if ( mbAlphaChannel )
-- mnScansize += ( ( nScansize * mnBitDepth ) >> 3 );
-+ BYTE nFilterType = *mpInflateInBuf; // the filter type may change each scanline
-+ switch ( nFilterType )
-+ {
-+ default: // unknown Scanline Filter Type
-+ case 0: // Filter Type "None"
-+ // we let the pixels pass and display the data unfiltered
-+ break;
-+
-+ case 1: // Scanline Filter Type "Sub"
-+ {
-+ BYTE* p1 = mpInflateInBuf + 1;;
-+ const BYTE* p2 = p1;
-+ p1 += mnBPP;
-+
-+ // use left pixels
-+ do
-+ *p1 += *(p2++);
-+ while( ++p1 < pScanEnd );
-+ }
-+ break;
-+
-+ case 2: // Scanline Filter Type "Up"
-+ {
-+ BYTE* p1 = mpInflateInBuf + 1;;
-+ const BYTE* p2 = mpScanPrior + 1;
-+
-+ // use pixels from prior line
-+ do
-+ *p1 += *(p2++);
-+ while( ++p1 < pScanEnd );
-+ }
-+ break;
-+
-+ case 3: // Scanline Filter Type "Average"
-+ {
-+ BYTE* p1 = mpInflateInBuf + 1;;
-+ const BYTE* p2 = mpScanPrior + 1;
-+ const BYTE* p3 = p1;
-+
-+ // use one pixel from prior line
-+ for( int n = mnBPP; --n >= 0; )
-+ *(p1++) += *(p2++) >> 1;
-+
-+ // predict by averaging the left and prior line pixels
-+ do
-+ *p1 += (BYTE)( ( (unsigned)*(p2++) + *(p3++) ) >> 1 );
-+ while( ++p1 < pScanEnd );
-+ }
-+ break;
-+
-+ case 4: // Scanline Filter Type "PaethPredictor"
-+ {
-+ BYTE* p1 = mpInflateInBuf + 1;;
-+ const BYTE* p2 = mpScanPrior + 1;
-+ const BYTE* p3 = p1;
-+ const BYTE* p4 = p2;
-+
-+ // use one pixel from prior line
-+ for( int n = mnBPP; --n >= 0; )
-+ *(p1++) += *(p2++);
-+
-+ // predict by using the left and the prior line pixels
-+ do
-+ {
-+ int na = *(p2++);
-+ int nb = *(p3++);
-+ int nc = *(p4++);
-+
-+ int npa = nb - (int)nc;
-+ int npb = na - (int)nc;
-+ int npc = npa + npb;
-+
-+ if( npa < 0 )
-+ npa =-npa;
-+ if( npb < 0 )
-+ npb =-npb;
-+ if( npc < 0 )
-+ npc =-npc;
-+
-+ if( npa > npb )
-+ na = nb, npa = npb;
-+ if( npa > npc )
-+ na = nc;
-+
-+ *p1 += static_cast<BYTE>(na);
-+ }
-+ while( ++p1 < pScanEnd );
-+ }
-+ break;
-+ }
-
-- rtl_zeroMemory( mpScanprior, ++mnScansize );
-- break;
-- }
-+ rtl_copyMemory( mpScanPrior, mpInflateInBuf, mnScansize );
- }
-
- // ---------------------------------------------------------------------------------------------------
--// ImplGetFilter writes the complete Scanline (nY) - in interlace mode the parameter nXStart and nXAdd
--// appends to the currently used pass
--// the complete size of scanline will be returned - in interlace mode zero is possible!
-+// ImplDrawScanlines draws the complete Scanline (nY) into the target bitmap
-+// In interlace mode the parameter nXStart and nXAdd append to the currently used pass
-
--void PNGReaderImpl::ImplGetFilter ( sal_uInt32 nXStart, sal_uInt32 nXAdd )
-+void PNGReaderImpl::ImplDrawScanline( sal_uInt32 nXStart, sal_uInt32 nXAdd )
- {
-- BYTE* pTmp = mpInflateInBuf;
-- BYTE* p1;
-- BYTE* p2;
-- BYTE* p3;
-- BYTE* p4;
-- BYTE nFilterType;
-- BYTE nCol = 0;
-- sal_uInt32 nXIndex, nX, nY = mnYpos, n1, n2, na, nb, nc;
-- sal_Int32 np, npa, npb, npc;
-+ // optimization for downscaling
-+ if( mnYpos & mnPreviewMask )
-+ return;
-+ if( nXStart & mnPreviewMask )
-+ return;
-
-- sal_uInt32 nBBP = mnBBP;
-+ // convert nY to pixel units in the target image
-+ // => TODO; also do this for nX here instead of in the ImplSet*Pixel() methods
-+ const sal_uInt32 nY = mnYpos >> mnPreviewShift;
-
-- if ( nXStart < (sal_uInt32)mnWidth )
-+ const BYTE* pTmp = mpInflateInBuf + 1;
-+ if ( mpAcc->HasPalette() ) // alphachannel is not allowed by pictures including palette entries
- {
-- nFilterType = *pTmp++; // the filter type may change each scanline
--
-- switch ( nFilterType )
-+ switch ( mpAcc->GetBitCount() )
- {
- case 1 :
- {
-- p1 = pTmp + nBBP;
-- p2 = pTmp;
--
-- while ( p1 < pTmp + mnScansize - 1 )
-- ( *p1++ ) += ( *p2++ );
-- }
-- break;
--
-- case 2 :
-- {
-- p1 = pTmp;
-- p2 = mpScanprior+1;
--
-- while ( p1 < pTmp + mnScansize - 1 )
-- ( *p1++ ) += ( *p2++ );
-- }
-- break;
--
-- case 3 :
-- {
-- p1 = pTmp;
-- p2 = mpScanprior + 1;
-- p3 = pTmp-nBBP;
--
-- while ( p1 < pTmp + mnScansize - 1 )
-- {
-- n1 = (BYTE)( *p2++ );
-- n2 = ( p3 >= pTmp ) ? (BYTE)*p3 : 0;
-- p3++;
-- ( *p1++ ) += (BYTE)( ( n1 + n2 ) >> 1 );
-- }
-- }
-- break;
--
-- case 4 :
-- {
-- p1 = pTmp;
-- p2 = p1 - nBBP;
-- p3 = mpScanprior + 1;
-- p4 = p3 - nBBP;
--
-- while ( p1 < pTmp + mnScansize - 1 )
-+ if ( mbTransparent )
- {
-- nb = *p3++;
-- if ( p2 >= pTmp )
-+ for ( sal_uInt32 nX = nXStart, nShift = 0; nX < maOrigSize.Width(); nX += nXAdd )
- {
-- na = *p2;
-- nc = *p4;
-- }
-- else
-- na = nc = 0;
--
-- np = na + nb;
-- np -= nc;
-- npa = np - na;
-- npb = np - nb;
-- npc = np - nc;
--
-- if ( npa < 0 )
-- npa =-npa;
-- if ( npb < 0 )
-- npb =-npb;
-- if ( npc < 0 )
-- npc =-npc;
--
-- if ( ( npa <= npb ) && ( npa <= npc ) )
-- *p1++ += (BYTE)na;
-- else if ( npb <= npc )
-- *p1++ += (BYTE)nb;
-- else
-- *p1++ += (BYTE)nc;
-+ BYTE nCol;
-+ nShift = (nShift - 1) & 7;
-+ if ( nShift == 0 )
-+ nCol = ( *pTmp++ );
-+ else
-+ nCol = ( *pTmp >> nShift );
-+ nCol &= 1;
-
-- p2++;
-- p4++;
-- }
-- }
-- break;
-- // undefined FilterType -> we will let them pass and display the data unfiltered
-- }
-- if ( mpAcc->HasPalette() ) // alphachannel is not allowed by pictures including palette entries
-- {
-- switch ( mpAcc->GetBitCount() )
-- {
-- case 1 :
-- {
-- if ( mbTransparent )
-- {
-- for ( nX = nXStart, nXIndex = 0; nX < (sal_uInt32)mnWidth; nX += nXAdd, nXIndex++ )
-- {
-- sal_uInt32 nShift = ( nXIndex & 7 ) ^ 7;
--
-- if ( nShift == 0 )
-- nCol = ( *pTmp++ ) & 1;
-- else
-- nCol = ( *pTmp >> nShift ) & 1;
--
-- ImplSetPixel( nY, nX, nCol, mpTransTab[ nCol ] < PNG_TRANS_VAL );
-- }
-+ ImplSetTranspPixel( nY, nX, nCol, mpTransTab[ nCol ] < PNG_TRANS_VAL );
- }
-- else
-+ }
-+ else
-+ { // BMP_FORMAT_1BIT_MSB_PAL
-+ for ( sal_uInt32 nX = nXStart, nShift = 0; nX < maOrigSize.Width(); nX += nXAdd )
- {
-- for ( nX = nXStart, nXIndex = 0; nX < (sal_uInt32)mnWidth; nX += nXAdd, nXIndex++ )
-- {
-- sal_uInt32 nShift = ( nXIndex & 7 ) ^ 7;
-+ nShift = (nShift - 1) & 7;
-
-- if ( nShift == 0 )
-- ImplSetPixel( nY, nX, ( *pTmp++ & 1 ), FALSE );
-- else
-- ImplSetPixel( nY, nX, ( *pTmp >> nShift ) & 1, FALSE );
-- }
-+ if ( nShift == 0 )
-+ ImplSetPixel( nY, nX, ( *pTmp++ & 1 ) );
-+ else
-+ ImplSetPixel( nY, nX, ( *pTmp >> nShift ) & 1 );
- }
- }
-- break;
-+ }
-+ break;
-
-- case 4 :
-+ case 4 :
-+ {
-+ if ( mbTransparent )
- {
-- if ( mbTransparent )
-+ if ( mnBitDepth == 4 ) // maybe the source is a two bitmap graphic
- {
-- if ( mnBitDepth == 4 ) // maybe the source is a two bitmap graphic
-+ for ( sal_uInt32 nX = nXStart, nXIndex = 0; nX < maOrigSize.Width(); nX += nXAdd, ++nXIndex )
- {
-- for ( nX = nXStart, nXIndex = 0; nX < mnWidth; nX += nXAdd, nXIndex++ )
-+ if( nXIndex & 1 )
- {
-- if( nXIndex & 1 )
-- {
-- ImplSetPixel( nY, nX, *pTmp & 0x0f, mpTransTab[ *pTmp & 0x0f ] < PNG_TRANS_VAL );
-- pTmp++;
-- }
-- else
-- {
-- ImplSetPixel( nY, nX, ( *pTmp >> 4 ) & 0x0f, mpTransTab[ *pTmp >> 4 ] < PNG_TRANS_VAL );
-- }
-+ ImplSetTranspPixel( nY, nX, *pTmp & 0x0f, mpTransTab[ *pTmp & 0x0f ] < PNG_TRANS_VAL );
-+ pTmp++;
- }
-- }
-- else
-- {
-- for ( nX = nXStart, nXIndex = 0; nX < mnWidth; nX += nXAdd, nXIndex++ )
-+ else
- {
-- switch( nXIndex & 3 )
-- {
-- case 0 :
-- nCol = *pTmp >> 6;
-- break;
--
-- case 1 :
-- nCol = ( *pTmp >> 4 ) & 0x03 ;
-- break;
--
-- case 2 :
-- nCol = ( *pTmp >> 2 ) & 0x03;
-- break;
--
-- case 3 :
-- nCol = ( *pTmp++ ) & 0x03;
-- break;
-- }
--
-- ImplSetPixel( nY, nX, nCol, mpTransTab[ nCol ] < PNG_TRANS_VAL );
-+ ImplSetTranspPixel( nY, nX, ( *pTmp >> 4 ) & 0x0f, mpTransTab[ *pTmp >> 4 ] < PNG_TRANS_VAL );
- }
- }
- }
- else
- {
-- if ( mnBitDepth == 4 ) // maybe the source is a two bitmap graphic
-+ for ( sal_uInt32 nX = nXStart, nXIndex = 0; nX < maOrigSize.Width(); nX += nXAdd, nXIndex++ )
- {
-- for ( nX = nXStart, nXIndex = 0; nX < mnWidth; nX += nXAdd, nXIndex++ )
-+ BYTE nCol;
-+ switch( nXIndex & 3 )
- {
-- if( nXIndex & 1 )
-- ImplSetPixel( nY, nX, *pTmp++ & 0x0f, FALSE );
-- else
-- ImplSetPixel( nY, nX, ( *pTmp >> 4 ) & 0x0f, FALSE );
-- }
-- }
-- else
-- {
-- for ( nX = nXStart, nXIndex = 0; nX < mnWidth; nX += nXAdd, nXIndex++ )
-- {
-- switch( nXIndex & 3 )
-- {
-- case 0 :
-- ImplSetPixel( nY, nX, *pTmp >> 6, FALSE );
-- break;
--
-- case 1 :
-- ImplSetPixel( nY, nX, ( *pTmp >> 4 ) & 0x03, FALSE );
-- break;
--
-- case 2 :
-- ImplSetPixel( nY, nX, ( *pTmp >> 2 ) & 0x03, FALSE );
-- break;
--
-- case 3 :
-- ImplSetPixel( nY, nX, *pTmp++ & 0x03, FALSE );
-- break;
-- }
-+ case 0 :
-+ nCol = *pTmp >> 6;
-+ break;
-+
-+ case 1 :
-+ nCol = ( *pTmp >> 4 ) & 0x03 ;
-+ break;
-+
-+ case 2 :
-+ nCol = ( *pTmp >> 2 ) & 0x03;
-+ break;
-+
-+ case 3 :
-+ nCol = ( *pTmp++ ) & 0x03;
-+ break;
-+
-+ default: // get rid of nCol uninitialized warning
-+ nCol = 0;
-+ break;
- }
-+
-+ ImplSetTranspPixel( nY, nX, nCol, mpTransTab[ nCol ] < PNG_TRANS_VAL );
- }
- }
- }
-- break;
--
-- case 8 :
-+ else
- {
-- if ( mbAlphaChannel )
-- {
-- if ( mnBitDepth == 8 ) // maybe the source is a 16 bit grayscale
-- {
-- for ( nX = nXStart; nX < mnWidth; nX += nXAdd, pTmp += 2 )
-- ImplSetAlphaPixel( nY, nX, pTmp[ 0 ], pTmp[ 1 ] );
-- }
-- else
-+ if ( mnBitDepth == 4 ) // maybe the source is a two bitmap graphic
-+ { // BMP_FORMAT_4BIT_LSN_PAL
-+ for ( sal_uInt32 nX = nXStart, nXIndex = 0; nX < maOrigSize.Width(); nX += nXAdd, nXIndex++ )
- {
-- for ( nX = nXStart; nX < mnWidth; nX += nXAdd, pTmp += 4 )
-- ImplSetAlphaPixel( nY, nX, pTmp[ 0 ], pTmp[ 2 ] );
-+ if( nXIndex & 1 )
-+ ImplSetPixel( nY, nX, *pTmp++ & 0x0f );
-+ else
-+ ImplSetPixel( nY, nX, ( *pTmp >> 4 ) & 0x0f );
- }
- }
- else
- {
-- if ( mbTransparent )
-- {
-- if ( mnBitDepth == 8 ) // maybe the source is a 16 bit grayscale
-- {
-- for ( nX = nXStart; nX < mnWidth; nX += nXAdd, pTmp++ )
-- ImplSetPixel( nY, nX, *pTmp, mpTransTab[ *pTmp ] < PNG_TRANS_VAL );
-- }
-- else
-- {
-- for ( nX = nXStart; nX < mnWidth; nX += nXAdd, pTmp += 2 )
-- ImplSetPixel( nY, nX, *pTmp, mpTransTab[ *pTmp ] < PNG_TRANS_VAL );
-- }
-- }
-- else
-+ for ( sal_uInt32 nX = nXStart, nXIndex = 0; nX < maOrigSize.Width(); nX += nXAdd, nXIndex++ )
- {
-- if ( mnBitDepth == 8 ) // maybe the source is a 16 bit grayscale
-- {
-- if ( mnPass == 7 ) // mnPass == 7 -> no interlace or whole scanline is available
-- mpAcc->CopyScanline( nY, pTmp, BMP_FORMAT_8BIT_PAL, mnScansize -1 );
-- else
-- {
-- for ( nX = nXStart; nX < mnWidth; nX += nXAdd )
-- ImplSetPixel( nY, nX, *pTmp++, FALSE );
-- }
-- }
-- else
-+ switch( nXIndex & 3 )
- {
-- for ( nX = nXStart; nX < mnWidth; nX += nXAdd, pTmp += 2 )
-- ImplSetPixel( nY, nX, *pTmp, FALSE );
-+ case 0 :
-+ ImplSetPixel( nY, nX, *pTmp >> 6 );
-+ break;
-+
-+ case 1 :
-+ ImplSetPixel( nY, nX, ( *pTmp >> 4 ) & 0x03 );
-+ break;
-+
-+ case 2 :
-+ ImplSetPixel( nY, nX, ( *pTmp >> 2 ) & 0x03 );
-+ break;
-+
-+ case 3 :
-+ ImplSetPixel( nY, nX, *pTmp++ & 0x03 );
-+ break;
- }
- }
- }
- }
-- break;
--
-- default :
-- mbStatus = FALSE;
-- break;
- }
-- }
-- else
-- {
-- if ( mbAlphaChannel || mbTransparent )
-+ break;
-+
-+ case 8 :
- {
- if ( mbAlphaChannel )
- {
-- if ( mnBitDepth == 8 ) // maybe the source is a 16 bit each sample
-+ if ( mnBitDepth == 8 ) // maybe the source is a 16 bit grayscale
- {
-- if ( mpColorTable != mpDefaultColorTable )
-- {
-- for ( nX = nXStart; nX < mnWidth; nX += nXAdd, pTmp += 4 )
-- ImplSetAlphaPixel( nY, nX, BitmapColor( mpColorTable[ pTmp[ 0 ] ],
-- mpColorTable[ pTmp[ 1 ] ],
-- mpColorTable[ pTmp[ 2 ] ] ), pTmp[ 3 ] );
-- }
-- else
-- {
--// if ( mnPass == 7 ) // mnPass == 7 -> no interlace or whole scanline is available
--// mpAcc->CopyScanline( nY, pTmp, BMP_FORMAT_32BIT_TC_RGBA, mnScansize -1 );
--// else
-- {
-- for ( nX = nXStart; nX < mnWidth; nX += nXAdd, pTmp += 4 )
-- ImplSetAlphaPixel( nY, nX, BitmapColor( pTmp[ 0 ], pTmp[ 1 ], pTmp[ 2 ] ), pTmp[ 3 ] );
-- }
-- }
-+ for ( sal_uInt32 nX = nXStart; nX < maOrigSize.Width(); nX += nXAdd, pTmp += 2 )
-+ ImplSetAlphaPixel( nY, nX, pTmp[ 0 ], pTmp[ 1 ] );
- }
- else
- {
-- for ( nX = nXStart; nX < mnWidth; nX += nXAdd, pTmp += 8 )
-- ImplSetAlphaPixel( nY, nX, BitmapColor( mpColorTable[ pTmp[ 0 ] ],
-- mpColorTable[ pTmp[ 2 ] ],
-- mpColorTable[ pTmp[ 4 ] ] ), pTmp[6] );
-+ for ( sal_uInt32 nX = nXStart; nX < maOrigSize.Width(); nX += nXAdd, pTmp += 4 )
-+ ImplSetAlphaPixel( nY, nX, pTmp[ 0 ], pTmp[ 2 ] );
- }
- }
-- else // Transparency chunk
-+ else if ( mbTransparent )
- {
-- sal_Bool bTransparent;
-- sal_uInt8 nRed, nGreen, nBlue;
--
-- if ( mnBitDepth == 8 ) // maybe the source is a 16 bit each sample
-+ if ( mnBitDepth == 8 ) // maybe the source is a 16 bit grayscale
- {
-- for ( nX = nXStart; nX < mnWidth; nX += nXAdd, pTmp += 3 )
-- {
-- nRed = pTmp[ 0 ];
-- nGreen = pTmp[ 1 ];
-- nBlue = pTmp[ 2 ];
-- bTransparent = ( ( nRed == mnTransRed )
-- && ( nGreen == mnTransGreen )
-- && ( nBlue == mnTransBlue ) );
--
-- ImplSetPixel( nY, nX, BitmapColor( mpColorTable[ nRed ],
-- mpColorTable[ nGreen ],
-- mpColorTable[ nBlue ] ), bTransparent );
-- }
-+ for ( sal_uInt32 nX = nXStart; nX < maOrigSize.Width(); nX += nXAdd, pTmp++ )
-+ ImplSetTranspPixel( nY, nX, *pTmp, mpTransTab[ *pTmp ] < PNG_TRANS_VAL );
- }
- else
- {
-- for ( nX = nXStart; nX < mnWidth; nX += nXAdd, pTmp += 6 )
-- {
-- nRed = pTmp[ 0 ];
-- nGreen = pTmp[ 2 ];
-- nBlue = pTmp[ 4 ];
-- bTransparent = ( ( nRed == mnTransRed )
-- && ( nGreen == mnTransGreen )
-- && ( nBlue == mnTransBlue ) );
--
-- ImplSetPixel( nY, nX, BitmapColor( mpColorTable[ nRed ],
-- mpColorTable[ nGreen ],
-- mpColorTable[ nBlue ] ), bTransparent );
-- }
-+ for ( sal_uInt32 nX = nXStart; nX < maOrigSize.Width(); nX += nXAdd, pTmp += 2 )
-+ ImplSetTranspPixel( nY, nX, *pTmp, mpTransTab[ *pTmp ] < PNG_TRANS_VAL );
- }
- }
-- }
-- else
-- {
-- if ( mnBitDepth == 8 ) // maybe the source is a 16 bit each sample
-+ else // neither alpha nor transparency
- {
-- if ( mpColorTable != mpDefaultColorTable )
-+ if ( mnBitDepth == 8 ) // maybe the source is a 16 bit grayscale
- {
-- for ( nX = nXStart; nX < mnWidth; nX += nXAdd, pTmp += 3 )
-- ImplSetPixel( nY, nX, BitmapColor( mpColorTable[ pTmp[ 0 ] ],
-- mpColorTable[ pTmp[ 1 ] ],
-- mpColorTable[ pTmp[ 2 ] ] ), FALSE );
-+ if( nXAdd == 1 ) // copy raw line data if possible
-+ {
-+ pTmp += nXStart;
-+ int nLineBytes = maOrigSize.Width() - nXStart;
-+ mpAcc->CopyScanline( nY, pTmp, BMP_FORMAT_8BIT_PAL, nLineBytes );
-+ pTmp += nLineBytes;
-+ }
-+ else
-+ {
-+ for ( sal_uInt32 nX = nXStart; nX < maOrigSize.Width(); nX += nXAdd )
-+ ImplSetPixel( nY, nX, *pTmp++ );
-+ }
- }
- else
- {
-- if ( mnPass == 7 ) // mnPass == 7 -> no interlace or whole scanline is available
-- mpAcc->CopyScanline( nY, pTmp, BMP_FORMAT_24BIT_TC_RGB, mnScansize -1 );
-- else
-- {
-- for ( nX = nXStart; nX < mnWidth; nX += nXAdd, pTmp += 3 )
-- ImplSetPixel( nY, nX, BitmapColor( pTmp[ 0 ], pTmp[ 1 ], pTmp[ 2 ] ), FALSE );
-- }
--
-+ for ( sal_uInt32 nX = nXStart; nX < maOrigSize.Width(); nX += nXAdd, pTmp += 2 )
-+ ImplSetPixel( nY, nX, *pTmp );
- }
- }
-- else
-+ }
-+ break;
-+
-+ default :
-+ mbStatus = FALSE;
-+ break;
-+ }
-+ }
-+ else // no palette => truecolor
-+ {
-+ if( mbAlphaChannel ) // has RGB + alpha
-+ { // BMP_FORMAT_32BIT_TC_RGBA
-+ if ( mnBitDepth == 8 ) // maybe the source has 16 bit per sample
-+ {
-+ if ( mpColorTable != mpDefaultColorTable )
-+ {
-+ for ( sal_uInt32 nX = nXStart; nX < maOrigSize.Width(); nX += nXAdd, pTmp += 4 )
-+ ImplSetAlphaPixel( nY, nX, BitmapColor( mpColorTable[ pTmp[ 0 ] ],
-+ mpColorTable[ pTmp[ 1 ] ],
-+ mpColorTable[ pTmp[ 2 ] ] ), pTmp[ 3 ] );
-+ }
-+ else
-+ {
-+// if ( nXAdd == 1 ) // copy raw line data if possible
-+// {
-+// pTmp += 4 * nXStart;
-+// int nLineBytes = 4 * (maOrigSize.Width() - nXStart);
-+// mpAcc->CopyScanline( nY, pTmp, BMP_FORMAT_32BIT_TC_RGBA, nLineBytes );
-+// pTmp += nLineBytes;
-+// }
-+// else
-+ {
-+ for ( sal_uInt32 nX = nXStart; nX < maOrigSize.Width(); nX += nXAdd, pTmp += 4 )
-+ ImplSetAlphaPixel( nY, nX, BitmapColor( pTmp[0], pTmp[1], pTmp[2] ), pTmp[3] );
-+ }
-+ }
-+ }
-+ else
-+ { // BMP_FORMAT_64BIT_TC_RGBA
-+ for ( sal_uInt32 nX = nXStart; nX < maOrigSize.Width(); nX += nXAdd, pTmp += 8 )
-+ ImplSetAlphaPixel( nY, nX, BitmapColor( mpColorTable[ pTmp[ 0 ] ],
-+ mpColorTable[ pTmp[ 2 ] ],
-+ mpColorTable[ pTmp[ 4 ] ] ), pTmp[6] );
-+ }
-+ }
-+ else if( mbTransparent ) // has RGB + transparency
-+ { // BMP_FORMAT_24BIT_TC_RGB
-+ if ( mnBitDepth == 8 ) // maybe the source has 16 bit per sample
-+ {
-+ for ( sal_uInt32 nX = nXStart; nX < maOrigSize.Width(); nX += nXAdd, pTmp += 3 )
-+ {
-+ sal_uInt8 nRed = pTmp[ 0 ];
-+ sal_uInt8 nGreen = pTmp[ 1 ];
-+ sal_uInt8 nBlue = pTmp[ 2 ];
-+ sal_Bool bTransparent = ( ( nRed == mnTransRed )
-+ && ( nGreen == mnTransGreen )
-+ && ( nBlue == mnTransBlue ) );
-+
-+ ImplSetTranspPixel( nY, nX, BitmapColor( mpColorTable[ nRed ],
-+ mpColorTable[ nGreen ],
-+ mpColorTable[ nBlue ] ), bTransparent );
-+ }
-+ }
-+ else
-+ { // BMP_FORMAT_48BIT_TC_RGB
-+ for ( sal_uInt32 nX = nXStart; nX < maOrigSize.Width(); nX += nXAdd, pTmp += 6 )
- {
-- for ( nX = nXStart; nX < mnWidth; nX += nXAdd, pTmp += 6 )
-- ImplSetPixel( nY, nX, BitmapColor( mpColorTable[ pTmp[ 0 ] ],
-- mpColorTable[ pTmp[ 2 ] ],
-- mpColorTable[ pTmp[ 4 ] ] ), FALSE );
-+ sal_uInt8 nRed = pTmp[ 0 ];
-+ sal_uInt8 nGreen = pTmp[ 2 ];
-+ sal_uInt8 nBlue = pTmp[ 4 ];
-+ sal_Bool bTransparent = ( ( nRed == mnTransRed )
-+ && ( nGreen == mnTransGreen )
-+ && ( nBlue == mnTransBlue ) );
-+
-+ ImplSetTranspPixel( nY, nX, BitmapColor( mpColorTable[ nRed ],
-+ mpColorTable[ nGreen ],
-+ mpColorTable[ nBlue ] ), bTransparent );
- }
- }
- }
-+ else // has RGB but neither alpha nor transparency
-+ { // BMP_FORMAT_24BIT_TC_RGB
-+ if ( mnBitDepth == 8 ) // maybe the source has 16 bit per sample
-+ {
-+ if ( mpColorTable != mpDefaultColorTable )
-+ {
-+ for ( sal_uInt32 nX = nXStart; nX < maOrigSize.Width(); nX += nXAdd, pTmp += 3 )
-+ ImplSetPixel( nY, nX, BitmapColor( mpColorTable[ pTmp[ 0 ] ],
-+ mpColorTable[ pTmp[ 1 ] ],
-+ mpColorTable[ pTmp[ 2 ] ] ) );
-+ }
-+ else
-+ {
-+ if( nXAdd == 1 ) // copy raw line data if possible
-+ {
-+ pTmp += 3 * nXStart;
-+ int nLineBytes = (maOrigSize.Width() - nXStart) * 3;
-+ mpAcc->CopyScanline( nY, pTmp, BMP_FORMAT_24BIT_TC_RGB, nLineBytes );
-+ pTmp += nLineBytes;
-+ }
-+ else
-+ {
-+ for ( sal_uInt32 nX = nXStart; nX < maOrigSize.Width(); nX += nXAdd, pTmp += 3 )
-+ ImplSetPixel( nY, nX, BitmapColor( pTmp[0], pTmp[1], pTmp[2] ) );
-+ }
-+ }
-+ }
-+ else
-+ { // BMP_FORMAT_48BIT_TC_RGB
-+ for ( sal_uInt32 nX = nXStart; nX < maOrigSize.Width(); nX += nXAdd, pTmp += 6 )
-+ ImplSetPixel( nY, nX, BitmapColor( mpColorTable[ pTmp[ 0 ] ],
-+ mpColorTable[ pTmp[ 2 ] ],
-+ mpColorTable[ pTmp[ 4 ] ] ) );
-+ }
-+ }
- }
--
-- rtl_copyMemory( mpScanprior, mpInflateInBuf, mnScansize );
- }
-
- // ------------------------------------------------------------------------
-
--void PNGReaderImpl::ImplSetPixel( sal_uInt32 nY, sal_uInt32 nX, const BitmapColor& rBitmapColor, BOOL bTrans )
-+void PNGReaderImpl::ImplSetPixel( sal_uInt32 nY, sal_uInt32 nX, const BitmapColor& rBitmapColor )
- {
-- if ( mnPass == 7 )
-- {
-- mpAcc->SetPixel( nY, nX, rBitmapColor );
--
-- if ( bTrans )
-- mpMaskAcc->SetPixel( nY, nX, cTransIndex1 );
-- else
-- mpMaskAcc->SetPixel( nY, nX, cNonTransIndex1 );
-- }
-- else
-- {
-- sal_uInt32 nTX;
--
-- for ( int nBHeight = 0; nBHeight < aBlockHeight[ mnPass ]; nBHeight++ )
-- {
-- nTX = nX;
--
-- for ( int nBWidth = 0; nBWidth < aBlockWidth[ mnPass ]; nBWidth++ )
-- {
-- mpAcc->SetPixel( nY, nTX, rBitmapColor );
--
-- if ( bTrans )
-- mpMaskAcc->SetPixel( nY, nTX, cTransIndex1 );
-- else
-- mpMaskAcc->SetPixel( nY, nTX, cNonTransIndex1 );
--
-- if ( ++nTX == mnWidth )
-- break;
-- }
--
-- if ( ++nY == mnHeight )
-- break;
-- }
-- }
-+ if( nX & mnPreviewMask )
-+ return;
-+ nX >>= mnPreviewShift;
-+ mpAcc->SetPixel( nY, nX, rBitmapColor );
- }
-
- // ------------------------------------------------------------------------
-
--void PNGReaderImpl::ImplSetPixel( sal_uInt32 nY, sal_uInt32 nX, BYTE nPalIndex, BOOL bTrans )
-+void PNGReaderImpl::ImplSetPixel( sal_uInt32 nY, sal_uInt32 nX, BYTE nPalIndex )
- {
-- if ( mnPass == 7 )
-- {
-- mpAcc->SetPixel( nY, nX, (BYTE)nPalIndex );
--
-- if ( bTrans )
-- mpMaskAcc->SetPixel( nY, nX, cTransIndex1 );
-- else
-- mpMaskAcc->SetPixel( nY, nX, cNonTransIndex1 );
-- }
-- else
-- {
-- sal_uInt32 nTX;
-+ if( nX & mnPreviewMask )
-+ return;
-+ nX >>= mnPreviewShift;
-+ mpAcc->SetPixel( nY, nX, nPalIndex );
-+}
-
-- for ( int nBHeight = 0; nBHeight < aBlockHeight[ mnPass ]; nBHeight++ )
-- {
-- nTX = nX;
-+// ------------------------------------------------------------------------
-
-- for ( int nBWidth = 0; nBWidth < aBlockWidth[ mnPass ]; nBWidth++ )
-- {
-- mpAcc->SetPixel( nY, nTX, (BYTE)nPalIndex );
-+void PNGReaderImpl::ImplSetTranspPixel( sal_uInt32 nY, sal_uInt32 nX, const BitmapColor& rBitmapColor, BOOL bTrans )
-+{
-+ if( nX & mnPreviewMask )
-+ return;
-+ nX >>= mnPreviewShift;
-+
-+ mpAcc->SetPixel( nY, nX, rBitmapColor );
-+
-+ if ( bTrans )
-+ mpMaskAcc->SetPixel( nY, nX, mcTranspColor );
-+ else
-+ mpMaskAcc->SetPixel( nY, nX, mcOpaqueColor );
-+}
-
-- if ( bTrans )
-- mpMaskAcc->SetPixel( nY, nTX, cTransIndex1 );
-- else
-- mpMaskAcc->SetPixel( nY, nTX, cNonTransIndex1 );
-+// ------------------------------------------------------------------------
-
-- if ( ++nTX == mnWidth )
-- break;
-- }
-- if ( ++nY == mnHeight )
-- break;
-- }
-- }
-+void PNGReaderImpl::ImplSetTranspPixel( sal_uInt32 nY, sal_uInt32 nX, BYTE nPalIndex, BOOL bTrans )
-+{
-+ if( nX & mnPreviewMask )
-+ return;
-+ nX >>= mnPreviewShift;
-+
-+ mpAcc->SetPixel( nY, nX, nPalIndex );
-+
-+ if ( bTrans )
-+ mpMaskAcc->SetPixel( nY, nX, mcTranspColor );
-+ else
-+ mpMaskAcc->SetPixel( nY, nX, mcOpaqueColor );
- }
-
- // ------------------------------------------------------------------------
-
- void PNGReaderImpl::ImplSetAlphaPixel( sal_uInt32 nY, sal_uInt32 nX, const BitmapColor& rBitmapColor, BYTE nAlpha )
- {
-- if ( mnPass == 7 )
-- {
-- mpAcc->SetPixel( nY, nX, rBitmapColor );
-- mpMaskAcc->SetPixel( nY, nX, 255 - nAlpha );
-- }
-- else
-- {
-- sal_uInt32 nTX;
-+ if( nX & mnPreviewMask )
-+ return;
-+ nX >>= mnPreviewShift;
-
-- for ( int nBHeight = 0; nBHeight < aBlockHeight[ mnPass ]; nBHeight++ )
-- {
-- nTX = nX;
--
-- for ( int nBWidth = 0; nBWidth < aBlockWidth[ mnPass ]; nBWidth++ )
-- {
-- mpAcc->SetPixel( nY, nTX, rBitmapColor );
-- mpMaskAcc->SetPixel( nY, nTX, 255 - nAlpha );
-- if ( ++nTX == mnWidth )
-- break;
-- }
--
-- if ( ++nY == mnHeight )
-- break;
-- }
-- }
-+ mpAcc->SetPixel( nY, nX, rBitmapColor );
-+ mpMaskAcc->SetPixel( nY, nX, 255 - nAlpha );
- }
-
- // ------------------------------------------------------------------------
-@@ -1498,16 +1492,18 @@ PNGReader::~PNGReader()
-
- // ------------------------------------------------------------------------
-
-+Size PNGReader::aPreviewSizeHint;
-+
- BitmapEx PNGReader::Read()
- {
-- return mpImpl->Read();
-+ return mpImpl->GetBitmapEx( aPreviewSizeHint );
- }
-
- // ------------------------------------------------------------------------
-
- const std::vector< vcl::PNGReader::ChunkData >& PNGReader::GetChunks() const
- {
-- return mpImpl->maChunkSeq;
-+ return mpImpl->GetAllChunks();
- }
-
- } // namespace vcl
diff --git a/patches/src680/slidesorter-demo-sd.diff b/patches/src680/slidesorter-demo-sd.diff
deleted file mode 100644
index d72c62037..000000000
--- a/patches/src680/slidesorter-demo-sd.diff
+++ /dev/null
@@ -1,89 +0,0 @@
-Index: sd/source/ui/slidesorter/cache/SlsQueueProcessor.cxx
-===================================================================
-RCS file: /cvs/graphics/sd/source/ui/slidesorter/cache/SlsQueueProcessor.cxx,v
-retrieving revision 1.6
-diff -u -p -r1.6 SlsQueueProcessor.cxx
---- sd/source/ui/slidesorter/cache/SlsQueueProcessor.cxx 24 Oct 2005 07:41:45 -0000 1.6
-+++ sd/source/ui/slidesorter/cache/SlsQueueProcessor.cxx 1 Dec 2005 14:18:23 -0000
-@@ -42,8 +42,8 @@ namespace sd { namespace slidesorter { n
- //===== QueueProcessorBase ===================================================
-
- QueueProcessorBase::QueueProcessorBase (void)
-- : mnTimeBetweenHighPriorityRequests (10/*ms*/),
-- mnTimeBetweenLowPriorityRequests (100/*ms*/),
-+ : mnTimeBetweenHighPriorityRequests (1/*ms*/),
-+ mnTimeBetweenLowPriorityRequests (10/*ms*/),
- mnTimeBetweenRequestsWhenNotIdle (1000/*ms*/)
- {
- // Look into the configuration if there for overriding values.
-@@ -63,7 +63,11 @@ QueueProcessorBase::QueueProcessorBase (
- if (aTimeBetweenReqeusts.has<sal_Int32>())
- aTimeBetweenReqeusts >>= mnTimeBetweenRequestsWhenNotIdle;
-
-+ mnTimeBetweenHighPriorityRequests = 10;
-+ mnTimeBetweenLowPriorityRequests = 20;
-+
- maTimer.SetTimeoutHdl (LINK(this,QueueProcessorBase,ProcessRequest));
-+ OSL_TRACE("Set slide sorter timeout %dms", mnTimeBetweenHighPriorityRequests);
- maTimer.SetTimeout (mnTimeBetweenHighPriorityRequests);
- }
-
-@@ -74,10 +78,13 @@ void QueueProcessorBase::Start (int nPri
- {
- if ( ! maTimer.IsActive())
- {
-- if (nPriorityClass == 0)
-+ if (nPriorityClass == 0) {
-+ OSL_TRACE("Set slide sorter timeout %dms", mnTimeBetweenHighPriorityRequests);
- maTimer.SetTimeout (mnTimeBetweenHighPriorityRequests);
-- else
-+ } else {
-+ OSL_TRACE("Set slide sorter timeout %dms", mnTimeBetweenLowPriorityRequests);
- maTimer.SetTimeout (mnTimeBetweenLowPriorityRequests);
-+ }
- maTimer.Start();
- }
- }
-Index: sd/source/ui/slidesorter/view/SlideSorterView.cxx
-===================================================================
-RCS file: /cvs/graphics/sd/source/ui/slidesorter/view/SlideSorterView.cxx,v
-retrieving revision 1.13
-diff -u -p -r1.13 SlideSorterView.cxx
---- sd/source/ui/slidesorter/view/SlideSorterView.cxx 24 Oct 2005 07:44:36 -0000 1.13
-+++ sd/source/ui/slidesorter/view/SlideSorterView.cxx 1 Dec 2005 14:18:23 -0000
-@@ -74,6 +74,8 @@
- #include <algorithm>
- #include <svx/sdr/contact/objectcontact.hxx>
-
-+#include <vcl/pngread.hxx>
-+
- using namespace std;
- using namespace ::sd::slidesorter::model;
-
-Index: sd/source/ui/tools/PreviewRenderer.cxx
-===================================================================
-RCS file: /cvs/graphics/sd/source/ui/tools/PreviewRenderer.cxx,v
-retrieving revision 1.6
-diff -u -p -r1.6 PreviewRenderer.cxx
---- sd/source/ui/tools/PreviewRenderer.cxx 9 Sep 2005 06:44:56 -0000 1.6
-+++ sd/source/ui/tools/PreviewRenderer.cxx 1 Dec 2005 14:18:23 -0000
-@@ -41,6 +41,7 @@
- #include "sdpage.hxx"
- #include "ViewShell.hxx"
- #include <vcl/virdev.hxx>
-+#include <vcl/pngread.hxx>
- #include <svx/svdpagv.hxx>
- #include <svx/svdoutl.hxx>
- #include <svx/eeitem.hxx>
-@@ -112,7 +113,11 @@ Image PreviewRenderer::RenderPage (
- {
- if (Initialize (pPage, aPixelSize))
- {
-+ OSL_TRACE("set preview to %dx%d", aPixelSize.Width(), aPixelSize.Height());
-+ vcl::PNGReader::SetPreviewSizeHint( Size( aPixelSize.Width(), 0) );
- PaintPage (pPage);
-+ vcl::PNGReader::DisablePreviewMode();
-+
- PaintSubstitutionText (rSubstitutionText);
- PaintFrame();
-
diff --git a/patches/src680/slidesorter-demo-svtools.diff b/patches/src680/slidesorter-demo-svtools.diff
deleted file mode 100644
index a30e38fd0..000000000
--- a/patches/src680/slidesorter-demo-svtools.diff
+++ /dev/null
@@ -1,25 +0,0 @@
-Index: svtools/source/filter.vcl/filter/filter.cxx
-===================================================================
-RCS file: /cvs/util/svtools/source/filter.vcl/filter/filter.cxx,v
-retrieving revision 1.58.14.1
-diff -u -p -r1.58.14.1 filter.cxx
---- svtools/source/filter.vcl/filter/filter.cxx 14 Oct 2005 12:54:49 -0000 1.58.14.1
-+++ svtools/source/filter.vcl/filter/filter.cxx 1 Dec 2005 14:54:18 -0000
-@@ -1451,8 +1451,6 @@ USHORT GraphicFilter::ImportGraphic( Gra
- }
- else
- {
-- vcl::PNGReader::DisablePreviewMode();
--
- // check if this PNG contains a GIF chunk!
- const std::vector< vcl::PNGReader::ChunkData >& rChunkData = aPNGReader.GetChunks();
- std::vector< vcl::PNGReader::ChunkData >::const_iterator aIter( rChunkData.begin() );
-@@ -1487,6 +1485,8 @@ USHORT GraphicFilter::ImportGraphic( Gra
- eLinkType = GFX_LINK_TYPE_NATIVE_PNG;
- }
- }
-+ if( nImportFlags & GRFILTER_I_FLAGS_FOR_PREVIEW )
-+ vcl::PNGReader::DisablePreviewMode();
- }
- else if( aFilterName.EqualsIgnoreCaseAscii( IMP_JPEG ) )
- {
diff --git a/patches/src680/slidesorter-demo-vcl.diff b/patches/src680/slidesorter-demo-vcl.diff
deleted file mode 100644
index f6de96ff4..000000000
--- a/patches/src680/slidesorter-demo-vcl.diff
+++ /dev/null
@@ -1,95 +0,0 @@
-Index: vcl/inc/pngread.hxx
-===================================================================
-RCS file: /cvs/gsl/vcl/inc/pngread.hxx,v
-retrieving revision 1.5.18.2
-diff -u -p -r1.5.18.2 pngread.hxx
---- vcl/inc/pngread.hxx 13 Oct 2005 10:18:52 -0000 1.5.18.2
-+++ vcl/inc/pngread.hxx 1 Dec 2005 14:46:25 -0000
-@@ -77,7 +77,7 @@ namespace vcl
- // TODO: when incompatible changes are possible again
- // the preview size hint should be redone
- static void SetPreviewSizeHint( const Size& r ) { aPreviewSizeHint = r; }
-- static void DisablePreviewMode() { aPreviewSizeHint = Size(0,0); }
-+ static void DisablePreviewMode() { OSL_TRACE("preview hint disabled"); aPreviewSizeHint = Size(0,0); }
- private:
- static Size aPreviewSizeHint;
- };
-Index: vcl/source/gdi/pngread.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/gdi/pngread.cxx,v
-retrieving revision 1.10.18.14
-diff -u -p -r1.10.18.14 pngread.cxx
---- vcl/source/gdi/pngread.cxx 15 Nov 2005 09:59:48 -0000 1.10.18.14
-+++ vcl/source/gdi/pngread.cxx 1 Dec 2005 14:46:25 -0000
-@@ -615,18 +615,34 @@ BOOL PNGReaderImpl::ImplReadHeader( cons
- mpScanPrior = new BYTE[ mnScansize ];
-
- // calculate target size from original size and the preview hint
-- if( rPreviewSizeHint.Width() && rPreviewSizeHint.Height() )
-+ if( rPreviewSizeHint.Width() || rPreviewSizeHint.Height() )
- {
-+ Size aPreviewSize( rPreviewSizeHint.Width(), rPreviewSizeHint.Height() );
- maTargetSize = maOrigSize;
-- for( int i = 1; i < 5; ++i )
-- {
-- if( (maTargetSize.Width() >> i) < rPreviewSizeHint.Width() )
-- break;
-- if( (maTargetSize.Height() >> i) < rPreviewSizeHint.Height() )
-- break;
-- mnPreviewShift = i;
-- }
-- mnPreviewMask = (1 << mnPreviewShift) - 1;
-+
-+ if( aPreviewSize.Width() == 0 ) {
-+ aPreviewSize.setWidth( ( maOrigSize.Width()*aPreviewSize.Height() )/maOrigSize.Height() );
-+ if( aPreviewSize.Width() <= 0 )
-+ aPreviewSize.setWidth( 1 );
-+ } else if( aPreviewSize.Height() == 0 ) {
-+ aPreviewSize.setHeight( ( maOrigSize.Height()*aPreviewSize.Width() )/maOrigSize.Width() );
-+ if( aPreviewSize.Height() <= 0 )
-+ aPreviewSize.setHeight( 1 );
-+ }
-+
-+ if( aPreviewSize.Width() < maOrigSize.Width() && aPreviewSize.Height() < maOrigSize.Height() ) {
-+ OSL_TRACE("preview size %dx%d", aPreviewSize.Width(), aPreviewSize.Height() );
-+
-+ for( int i = 1; i < 5; ++i )
-+ {
-+ if( (maTargetSize.Width() >> i) < aPreviewSize.Width() )
-+ break;
-+ if( (maTargetSize.Height() >> i) < aPreviewSize.Height() )
-+ break;
-+ mnPreviewShift = i;
-+ }
-+ mnPreviewMask = (1 << mnPreviewShift) - 1;
-+ }
- }
-
- maTargetSize.Width() = (maOrigSize.Width() + mnPreviewMask) >> mnPreviewShift;
-@@ -1256,7 +1272,7 @@ void PNGReaderImpl::ImplDrawScanline( sa
- {
- if ( mnBitDepth == 8 ) // maybe the source is a 16 bit grayscale
- {
-- if( nXAdd == 1 ) // copy raw line data if possible
-+ if( nXAdd == 1 && mnPreviewShift == 0 ) // copy raw line data if possible
- {
- pTmp += nXStart;
- int nLineBytes = maOrigSize.Width() - nXStart;
-@@ -1298,7 +1314,7 @@ void PNGReaderImpl::ImplDrawScanline( sa
- }
- else
- {
--// if ( nXAdd == 1 ) // copy raw line data if possible
-+// if ( nXAdd == 1 && mnPreviewShift == 0 ) // copy raw line data if possible
- // {
- // pTmp += 4 * nXStart;
- // int nLineBytes = 4 * (maOrigSize.Width() - nXStart);
-@@ -1368,7 +1384,7 @@ void PNGReaderImpl::ImplDrawScanline( sa
- }
- else
- {
-- if( nXAdd == 1 ) // copy raw line data if possible
-+ if( nXAdd == 1 && mnPreviewShift == 0 ) // copy raw line data if possible
- {
- pTmp += 3 * nXStart;
- int nLineBytes = (maOrigSize.Width() - nXStart) * 3;
diff --git a/patches/src680/sparc-bridges-use-g++-3.4.diff b/patches/src680/sparc-bridges-use-g++-3.4.diff
deleted file mode 100644
index 5d3867f27..000000000
--- a/patches/src680/sparc-bridges-use-g++-3.4.diff
+++ /dev/null
@@ -1,18 +0,0 @@
-Index: makefile.mk
-===================================================================
-RCS file: /cvs/udk/bridges/source/cpp_uno/gcc3_linux_sparc/makefile.mk,v
-retrieving revision 1.4
-diff -u -u -r1.4 makefile.mk
---- bridges/source/cpp_uno/gcc3_linux_sparc/makefile.mk 11 May 2005 11:04:53 -0000 1.4
-+++ bridges/source/cpp_uno/gcc3_linux_sparc/makefile.mk 29 Aug 2005 05:15:21 -0000
-@@ -83,6 +83,10 @@
-
- CFLAGSNOOPT=-O0
-
-+# hack.
-+CXX=g++-3.4
-+HAVE_GCC_VISIBILITY_FEATURE=FALSE
-+
- NOOPTFILES = \
- $(SLO)$/uno2cpp.obj \
- $(SLO)$/cpp2uno.obj \
diff --git a/patches/src680/speed-2nd-start.diff b/patches/src680/speed-2nd-start.diff
deleted file mode 100644
index 9a4d74bdf..000000000
--- a/patches/src680/speed-2nd-start.diff
+++ /dev/null
@@ -1,32 +0,0 @@
-Index: vcl/source/app/svmain.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/app/svmain.cxx,v
-retrieving revision 1.57
-diff -u -r1.57 svmain.cxx
---- vcl/source/app/svmain.cxx 13 Oct 2005 09:36:37 -0000 1.57
-+++ vcl/source/app/svmain.cxx 31 Oct 2005 14:50:18 -0000
-@@ -317,6 +317,11 @@
- vos::OStartupInfo aStartInfo;
- rtl::OUString aExeFileName;
-
-+ // Initialize application instance (should be done after initialization of VCL SAL part)
-+ if( pSVData->mpApp )
-+ // call init to initialize application class
-+ // soffice/sfx implementation creates the global service manager
-+ pSVData->mpApp->Init();
-
- // Sal initialisieren
- RTL_LOGFILE_CONTEXT_TRACE( aLog, "{ ::CreateSalInstance" );
-@@ -325,12 +330,6 @@
- return FALSE;
- RTL_LOGFILE_CONTEXT_TRACE( aLog, "} ::CreateSalInstance" );
-
-- // Initialize application instance (should be done after initialization of VCL SAL part)
-- if( pSVData->mpApp )
-- // call init to initialize application class
-- // soffice/sfx implementation creates the global service manager
-- pSVData->mpApp->Init();
--
- // Den AppFileName gleich holen und absolut machen, bevor das
- // WorkingDirectory sich aendert...
- aStartInfo.getExecutableFile( aExeFileName );
diff --git a/patches/src680/speed-bdirect-m147.diff b/patches/src680/speed-bdirect-m147.diff
deleted file mode 100644
index 99175f465..000000000
--- a/patches/src680/speed-bdirect-m147.diff
+++ /dev/null
@@ -1,108 +0,0 @@
-Index: config_office/configure.in
-===================================================================
-RCS file: /cvs/tools/config_office/configure.in,v
-retrieving revision 1.139
-diff -u -p -u -r1.139 configure.in
---- config_office/configure.in 25 Oct 2005 11:23:57 -0000 1.139
-+++ config_office/configure.in 18 Nov 2005 15:00:30 -0000
-@@ -1056,6 +1113,24 @@ if test "$GCC" = "yes"; then
- fi
- AC_SUBST(HAVE_GCC_VISIBILITY_FEATURE)
-
-+if test "$GCC" = "yes"; then
-+ AC_MSG_CHECKING( for -Bdirect linker support )
-+ bdirect_ldflags_save=$LDFLAGS
-+ LDFLAGS="$LDFLAGS -Wl,-Bdirect"
-+ AC_LINK_IFELSE([AC_LANG_PROGRAM([
-+ #include <stdio.h>
-+ ],[
-+ printf ("hello world\n");
-+ ])], HAVE_LD_BDIRECT=TRUE, [])
-+ if test "z$HAVE_LD_BDIRECT" = "zTRUE"; then
-+ AC_MSG_RESULT( found )
-+ else
-+ AC_MSG_RESULT( not found )
-+ fi
-+ LDFLAGS=$bdirect_ldflags_save
-+fi
-+AC_SUBST(HAVE_LD_BDIRECT)
-+
- dnl ===================================================================
- dnl Search all the common names for GNU make
- dnl ===================================================================
-
-
-RCS file: /cvs/tools/config_office/set_soenv.in,v
-retrieving revision 1.78
-diff -u -p -u -r1.78 set_soenv.in
---- config_office/set_soenv.in 28 Oct 2005 11:59:53 -0000 1.78
-+++ config_office/set_soenv.in 18 Nov 2005 15:00:31 -0000
-@@ -1702,6 +1707,7 @@ ToFile( "JAVAHOME", $JAVAHOME,
- ToFile( "CC", $CC, "e" );
- ToFile( "HAVE_GCC_VISIBILITY_FEATURE",
- "@HAVE_GCC_VISIBILITY_FEATURE@", "e" );
-+ToFile( "HAVE_LD_BDIRECT", "@HAVE_LD_BDIRECT@","e" );
- ToFile( "CXX", $CXX, "e" );
- ToFile( "USE_SYSTEM_STL", "@USE_SYSTEM_STL@", "e" );
- ToFile( "ENABLE_SYMBOLS", "@ENABLE_SYMBOLS@", "e" );
-
-
-
-Index: solenv/inc/unxlngi6.mk
-===================================================================
-RCS file: /cvs/tools/solenv/inc/unxlngi6.mk,v
-retrieving revision 1.16
-diff -u -p -u -r1.16 unxlngi6.mk
---- solenv/inc/unxlngi6.mk 5 Oct 2005 11:34:22 -0000 1.16
-+++ solenv/inc/unxlngi6.mk 18 Nov 2005 15:03:14 -0000
-@@ -145,6 +145,9 @@ LINKC*=$(CC)
- LINKFLAGSDEFS*=-Wl,-z,defs
- LINKFLAGSRUNPATH*=-Wl,-rpath,\''$$ORIGIN'\'
- LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS) $(LINKFLAGSRUNPATH)
-+.IF "$(HAVE_LD_BDIRECT)" == "TRUE"
-+LINKFLAGS += -Wl,-Bdirect
-+.ENDIF
-
- # linker flags for linking applications
- LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
-Index: icu/makefile.mk
-===================================================================
-RCS file: /cvs/external/icu/makefile.mk,v
-retrieving revision 1.27
-diff -u -p -u -r1.27 makefile.mk
---- icu/makefile.mk 7 Sep 2005 17:43:26 -0000 1.27
-+++ icu/makefile.mk 29 Nov 2005 14:11:41 -0000
-@@ -64,9 +64,14 @@ CXX:=$(COMPATH)$/bin$/CC
- .ENDIF # "$(BUILD_TOOLS)$/cc"=="$(shell +-which cc)"
- .ENDIF # "$(COMNAME)"=="sunpro5"
-
-+.IF "$(HAVE_LD_BDIRECT)" == "TRUE"
-+LDFLAGSADD=-Wl,-Bdirect
-+.ELSE
-+LDFLAGSADD=
-+.ENDIF
- CONFIGURE_DIR=source
-
--CONFIGURE_ACTION=sh -c 'CFLAGS="-O $(ARCH_FLAGS)" CXXFLAGS="-O $(ARCH_FLAGS)" ./configure --enable-layout --enable-static --enable-shared=yes --enable-64bit-libs=no'
-+CONFIGURE_ACTION=sh -c 'CFLAGS="-O $(ARCH_FLAGS)" CXXFLAGS="-O $(ARCH_FLAGS)" LDFLAGS=$(LDFLAGSADD) ./configure --enable-layout --enable-static --enable-shared=yes --enable-64bit-libs=no --enable-extras=no'
-
- #CONFIGURE_FLAGS=--enable-layout --enable-static --enable-shared=yes --enable-64bit-libs=no
- CONFIGURE_FLAGS=
-Index: stlport/makefile.mk
-===================================================================
-RCS file: /cvs/external/stlport/makefile.mk,v
-retrieving revision 1.32
-diff -u -p -u -r1.32 makefile.mk
---- stlport/makefile.mk 8 Sep 2005 07:48:02 -0000 1.32
-+++ stlport/makefile.mk 29 Nov 2005 15:03:43 -0000
-@@ -131,6 +131,10 @@ BUILD_FLAGS=-f vc7.mak
- BUILD_FLAGS+= -j$(MAXPROCESS)
- .ENDIF
-
-+.IF "$(HAVE_LD_BDIRECT)" == "TRUE"
-+CXX+= -Wl,-Bdirect
-+.ENDIF
-+
- .IF "$(COM)"=="C52"
- BUILD_ACTION=make
- .IF "$(CCNUMVER)">="00050005"
diff --git a/patches/src680/speed-bdirect.diff b/patches/src680/speed-bdirect.diff
deleted file mode 100644
index 4759904fa..000000000
--- a/patches/src680/speed-bdirect.diff
+++ /dev/null
@@ -1,110 +0,0 @@
-Index: config_office/configure.in
-===================================================================
-RCS file: /cvs/tools/config_office/configure.in,v
-retrieving revision 1.139
-diff -u -p -u -r1.139 configure.in
---- config_office/configure.in 25 Oct 2005 11:23:57 -0000 1.139
-+++ config_office/configure.in 18 Nov 2005 15:00:30 -0000
-@@ -1056,6 +1113,24 @@ if test "$GCC" = "yes"; then
- fi
- AC_SUBST(HAVE_GCC_VISIBILITY_FEATURE)
-
-+if test "$GCC" = "yes"; then
-+ AC_MSG_CHECKING( for -Bdirect linker support )
-+ bdirect_ldflags_save=$LDFLAGS
-+ LDFLAGS="$LDFLAGS -Wl,-Bdirect"
-+ AC_LINK_IFELSE([AC_LANG_PROGRAM([
-+ #include <stdio.h>
-+ ],[
-+ printf ("hello world\n");
-+ ])], HAVE_LD_BDIRECT=TRUE, [])
-+ if test "z$HAVE_LD_BDIRECT" = "zTRUE"; then
-+ AC_MSG_RESULT( found )
-+ else
-+ AC_MSG_RESULT( not found )
-+ fi
-+ LDFLAGS=$bdirect_ldflags_save
-+fi
-+AC_SUBST(HAVE_LD_BDIRECT)
-+
- dnl ===================================================================
- dnl Search all the common names for GNU make
- dnl ===================================================================
-
-
-RCS file: /cvs/tools/config_office/set_soenv.in,v
-retrieving revision 1.78
-diff -u -p -u -r1.78 set_soenv.in
---- config_office/set_soenv.in 28 Oct 2005 11:59:53 -0000 1.78
-+++ config_office/set_soenv.in 18 Nov 2005 15:00:31 -0000
-@@ -1702,6 +1707,7 @@ ToFile( "JAVAHOME", $JAVAHOME,
- ToFile( "CC", $CC, "e" );
- ToFile( "HAVE_GCC_VISIBILITY_FEATURE",
- "@HAVE_GCC_VISIBILITY_FEATURE@", "e" );
-+ToFile( "HAVE_LD_BDIRECT", "@HAVE_LD_BDIRECT@","e" );
- ToFile( "CXX", $CXX, "e" );
- ToFile( "USE_SYSTEM_STL", "@USE_SYSTEM_STL@", "e" );
- ToFile( "ENABLE_SYMBOLS", "@ENABLE_SYMBOLS@", "e" );
-
-
-
-Index: solenv/inc/unxlngi6.mk
-===================================================================
-RCS file: /cvs/tools/solenv/inc/unxlngi6.mk,v
-retrieving revision 1.16
-diff -u -p -u -r1.16 unxlngi6.mk
---- solenv/inc/unxlngi6.mk 5 Oct 2005 11:34:22 -0000 1.16
-+++ solenv/inc/unxlngi6.mk 18 Nov 2005 15:03:14 -0000
-@@ -145,6 +145,9 @@ LINKC*=$(CC)
- LINKFLAGSDEFS*=-Wl,-z,defs
- LINKFLAGSRUNPATH*=-Wl,-rpath,\''$$ORIGIN'\'
- LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS) $(LINKFLAGSRUNPATH)
-+.IF "$(HAVE_LD_BDIRECT)" == "TRUE"
-+LINKFLAGS += -Wl,-Bdirect
-+.ENDIF
-
- # linker flags for linking applications
- LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec
-Index: icu/makefile.mk
-===================================================================
-RCS file: /cvs/external/icu/makefile.mk,v
-retrieving revision 1.27
-diff -u -p -u -r1.27 makefile.mk
---- icu/makefile.mk 7 Sep 2005 17:43:26 -0000 1.27
-+++ icu/makefile.mk 29 Nov 2005 14:11:41 -0000
-@@ -64,9 +64,14 @@ CXX:=$(COMPATH)$/bin$/CC
- icu_CFLAGS+=-O $(ARCH_FLAGS)
- icu_CXXFLAGS+=-O $(ARCH_FLAGS)
-
-+.IF "$(HAVE_LD_BDIRECT)" == "TRUE"
-+LDFLAGSADD=-Wl,-Bdirect
-+.ELSE
-+LDFLAGSADD=
-+.ENDIF
- CONFIGURE_DIR=source
-
--CONFIGURE_ACTION=sh -c 'CFLAGS="$(icu_CFLAGS)" CXXFLAGS="$(icu_CXXFLAGS)" LDFLAGS="$(icu_LDFLAGS)" ./configure --enable-layout --enable-static --enable-shared=yes --enable-64bit-libs=no'
-+CONFIGURE_ACTION=sh -c 'CFLAGS="$(icu_CFLAGS)" CXXFLAGS="$(icu_CXXFLAGS)" LDFLAGS="$(icu_LDFLAGS) $(LDFLAGSADD)" ./configure --enable-layout --enable-static --enable-shared=yes --enable-64bit-libs=no'
-
- #CONFIGURE_FLAGS=--enable-layout --enable-static --enable-shared=yes --enable-64bit-libs=no
- CONFIGURE_FLAGS=
-
-
-Index: stlport/makefile.mk
-===================================================================
-RCS file: /cvs/external/stlport/makefile.mk,v
-retrieving revision 1.32
-diff -u -p -u -r1.32 makefile.mk
---- stlport/makefile.mk 8 Sep 2005 07:48:02 -0000 1.32
-+++ stlport/makefile.mk 29 Nov 2005 15:03:43 -0000
-@@ -131,6 +131,10 @@ BUILD_FLAGS=-f vc7.mak
- BUILD_FLAGS+= -j$(MAXPROCESS)
- .ENDIF
-
-+.IF "$(HAVE_LD_BDIRECT)" == "TRUE"
-+CXX+= -Wl,-Bdirect
-+.ENDIF
-+
- .IF "$(COM)"=="C52"
- BUILD_ACTION=make
- .IF "$(CCNUMVER)">="00050005"
diff --git a/patches/src680/speed-configmgr.diff b/patches/src680/speed-configmgr.diff
deleted file mode 100644
index d4d35c0ed..000000000
--- a/patches/src680/speed-configmgr.diff
+++ /dev/null
@@ -1,83 +0,0 @@
-Index: configmgr/source/localbe/localfilehelper.cxx
-===================================================================
-RCS file: /cvs/util/configmgr/source/localbe/localfilehelper.cxx,v
-retrieving revision 1.3
-diff -u -p -u -r1.3 localfilehelper.cxx
---- configmgr/source/localbe/localfilehelper.cxx 16 Feb 2005 16:46:51 -0000 1.3
-+++ configmgr/source/localbe/localfilehelper.cxx 27 Oct 2005 11:21:18 -0000
-@@ -126,6 +128,10 @@ namespace configmgr
- if (_sURL.getLength() == 0)
- return false;
-
-+ // This method has no right to be so under-performing to
-+ // achieve so, so little of any usefulness.
-+ return true;
-+
- DirectoryItem aDirItem;
-
- DirectoryItem::RC rc = DirectoryItem::get(_sURL, aDirItem);
-Index: configmgr/source/localbe/localmultistratum.cxx
-===================================================================
-RCS file: /cvs/util/configmgr/source/localbe/localmultistratum.cxx,v
-retrieving revision 1.5
-diff -u -p -u -r1.5 localmultistratum.cxx
---- configmgr/source/localbe/localmultistratum.cxx 8 Sep 2005 04:04:46 -0000 1.5
-+++ configmgr/source/localbe/localmultistratum.cxx 27 Oct 2005 11:21:18 -0000
-@@ -107,7 +107,7 @@ uno::Sequence< rtl::OUString > SAL_CALL
- rtl::OUString const aComponentUrl = aLayerUrl + componentToPath(aComponent);
-
- using namespace osl;
-- const sal_uInt32 k_STATUS_FIELDS = FileStatusMask_Type | FileStatusMask_FileName;
-+ const sal_uInt32 k_STATUS_FIELDS = FileStatusMask_FileName;
- Directory aComponentDirectory(aComponentUrl);
- DirectoryItem aItem;
- std::vector< rtl::OUString > aResult;
-@@ -132,13 +132,12 @@ uno::Sequence< rtl::OUString > SAL_CALL
- OSL_TRACE("Reading Component Directory - Error (%u) getting status of directory item.\n", unsigned(errcode));
- break;
- }
--
-- OSL_ENSURE( aItemDescriptor.isValid(FileStatusMask_Type), "Could not get type of directory item");
-- if (aItemDescriptor.getFileType() != FileStatus::Regular)
-- continue;
-
- OSL_ENSURE( aItemDescriptor.isValid(FileStatusMask_FileName), "Could not get Name of component found");
- OUString const aFileName = aItemDescriptor.getFileName();
-+
-+ // It is reasonable to assume a .xcu file is not a directory & =>
-+ // not stat each directory entry at considerable cost.
- if (!aFileName.endsWithIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM(kLocalDataSuffix)))
- continue;
-
-Index: configmgr/source/misc/filehelper.cxx
-===================================================================
-RCS file: /cvs/util/configmgr/source/misc/filehelper.cxx,v
-retrieving revision 1.16
-diff -u -p -u -r1.16 filehelper.cxx
---- configmgr/source/misc/filehelper.cxx 8 Sep 2005 04:09:44 -0000 1.16
-+++ configmgr/source/misc/filehelper.cxx 27 Oct 2005 11:21:18 -0000
-@@ -143,9 +143,22 @@ namespace configmgr
- static const TimeValue k_NullTime = {0,0};
- sal_uInt64 aSize = 0;
- rModifyTime = k_NullTime;
-+ rtl::OUString aURL;
-
-- DirectoryItem aItem;
-- if (osl::FileBase::E_None == DirectoryItem::get(_sURL, aItem))
-+ DirectoryItem aItem;
-+
-+#ifndef STAT_LOTS_OF_UNUSED_FILES
-+ // Statting every file takes way to long - we can use the directory
-+ // time-stamp & size instead, if we need to provoke an update
-+ // a simple cat > foo; rm foo will do that.
-+ // The dir size is (hopefully) non-0 and a good enough proxy value.
-+
-+ aURL = FileHelper::getParentDir(_sURL);
-+#else
-+ aURL = _sURL;
-+#endif
-+
-+ if (osl::FileBase::E_None == DirectoryItem::get(aURL, aItem))
- {
- FileStatus aStatus(osl_FileStatus_Mask_ModifyTime|osl_FileStatus_Mask_Type|osl_FileStatus_Mask_FileSize);
- if (osl::FileBase::E_None == aItem.getFileStatus(aStatus))
diff --git a/patches/src680/speed-pagein.diff b/patches/src680/speed-pagein.diff
deleted file mode 100644
index 824ab2806..000000000
--- a/patches/src680/speed-pagein.diff
+++ /dev/null
@@ -1,50 +0,0 @@
-Index: desktop/source/pagein/makefile.mk
-===================================================================
-RCS file: /cvs/framework/desktop/source/pagein/makefile.mk,v
-retrieving revision 1.8
-diff -u -p -u -r1.8 makefile.mk
---- desktop/source/pagein/makefile.mk 8 Sep 2005 17:44:11 -0000 1.8
-+++ desktop/source/pagein/makefile.mk 10 Nov 2005 12:51:35 -0000
-@@ -81,23 +81,27 @@ UPDDLLPOST=$(UPD)$(DLLPOSTFIX)$(DLLPOST)
-
- $(MISC)$/$(TARGET)-calc : makefile.mk
- @+echo Making: $@
-- @-+echo $(DLLPRE)sc$(UPDDLLPOST) > $@
-- @-+echo $(DLLPRE)svx$(UPDDLLPOST) >> $@
-+ @-+echo $(DLLPRE)sc$(UPDDLLPOST) > $@
-+ @-+echo $(DLLPRE)scui$(UPDDLLPOST) >> $@
-+ @-+echo $(DLLPRE)svx$(UPDDLLPOST) >> $@
-
- $(MISC)$/$(TARGET)-draw : makefile.mk
- @+echo Making: $@
-- @-+echo $(DLLPRE)sd$(UPDDLLPOST) > $@
-- @-+echo $(DLLPRE)svx$(UPDDLLPOST) >> $@
-+ @-+echo $(DLLPRE)sd$(UPDDLLPOST) > $@
-+ @-+echo $(DLLPRE)sdui$(UPDDLLPOST) >> $@
-+ @-+echo $(DLLPRE)svx$(UPDDLLPOST) >> $@
-
- $(MISC)$/$(TARGET)-impress : makefile.mk
- @+echo Making: $@
-- @-+echo $(DLLPRE)sd$(UPDDLLPOST) > $@
-- @-+echo $(DLLPRE)svx$(UPDDLLPOST) >> $@
-+ @-+echo $(DLLPRE)sd$(UPDDLLPOST) > $@
-+ @-+echo $(DLLPRE)sdui$(UPDDLLPOST) >> $@
-+ @-+echo $(DLLPRE)svx$(UPDDLLPOST) >> $@
-
- $(MISC)$/$(TARGET)-writer : makefile.mk
- @+echo Making: $@
-- @-+echo $(DLLPRE)sw$(UPDDLLPOST) > $@
-- @-+echo $(DLLPRE)svx$(UPDDLLPOST) >> $@
-+ @-+echo $(DLLPRE)sw$(UPDDLLPOST) > $@
-+ @-+echo $(DLLPRE)swui$(UPDDLLPOST) >> $@
-+ @-+echo $(DLLPRE)svx$(UPDDLLPOST) >> $@
-
- # sorted in reverse load order (ld.so.1)
- $(MISC)$/$(TARGET)-common : makefile.mk
-@@ -139,4 +143,6 @@ $(MISC)$/$(TARGET)-common : makefile.mk
- @-+echo $(DLLPRE)vcl$(UPDDLLPOST) >> $@
- @-+echo $(DLLPRE)tk$(UPDDLLPOST) >> $@
- @-+echo $(DLLPRE)svt$(UPDDLLPOST) >> $@
-+ @-+echo types.rdb >> $@
-+ @-+echo services.rdb >> $@
- @-+echo soffice.bin >> $@
diff --git a/patches/src680/speed-psprint-ppd.diff b/patches/src680/speed-psprint-ppd.diff
deleted file mode 100644
index b58f40a03..000000000
--- a/patches/src680/speed-psprint-ppd.diff
+++ /dev/null
@@ -1,30 +0,0 @@
-Index: psprint/source/helper/ppdparser.cxx
-===================================================================
-RCS file: /cvs/gsl/psprint/source/helper/ppdparser.cxx,v
-retrieving revision 1.19
-diff -u -p -u -r1.19 ppdparser.cxx
---- psprint/source/helper/ppdparser.cxx 8 Sep 2005 16:43:52 -0000 1.19
-+++ psprint/source/helper/ppdparser.cxx 24 Oct 2005 15:28:03 -0000
-@@ -80,12 +80,19 @@ void PPDParser::scanPPDDir( const String
- INetURLObject aPPDDir(rDir);
- while( aDir.getNextItem( aItem ) == osl::FileBase::E_None )
- {
-- osl::FileStatus aStatus( FileStatusMask_FileName |
-- FileStatusMask_Type
-+ osl::FileStatus aStatus( FileStatusMask_FileName
-+#ifdef UNNECESSARILY_SLOW
-+ | FileStatusMask_Type
-+#endif
- );
- if( aItem.getFileStatus( aStatus ) == osl::FileBase::E_None &&
-+#ifdef UNNECESSARILY_SLOW
- ( aStatus.getFileType() == osl::FileStatus::Regular ||
-- aStatus.getFileType() == osl::FileStatus::Link ) )
-+ aStatus.getFileType() == osl::FileStatus::Link )
-+#else
-+ 1
-+#endif
-+ )
- {
- INetURLObject aPPDFile = aPPDDir;
- aPPDFile.Append( aStatus.getFileName() );
diff --git a/patches/src680/speed-quickstart-eggtray.diff b/patches/src680/speed-quickstart-eggtray.diff
deleted file mode 100644
index 8aa9a78ea..000000000
--- a/patches/src680/speed-quickstart-eggtray.diff
+++ /dev/null
@@ -1,701 +0,0 @@
---- /dev/null 2005-09-21 14:49:37.496144500 +0530
-+++ eggtray/prj/build.lst 2005-10-14 14:48:50.000000000 +0530
-@@ -0,0 +1,2 @@
-+eg eggtray : vcl NULL
-+eg eggtray\source nmake - u eg_src NULL
-
-
---- /dev/null 2005-09-21 14:49:37.496144500 +0530
-+++ eggtray/prj/d.lst 2005-10-14 15:55:07.000000000 +0530
-@@ -0,0 +1,3 @@
-+hedabu: ..\inc\eggtrayicon.h %_DEST%\inc%_EXT%\eggtray\eggtrayicon.h
-+
-+..\%__SRC%\lib\lib*.* %_DEST%\lib%_EXT%\lib*.*
-
-
-
-
---- /dev/null 2005-09-21 14:49:37.496144500 +0530
-+++ eggtray/source/eggtrayicon.c 2005-10-05 13:45:57.000000000 +0530
-@@ -0,0 +1,514 @@
-+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-+/* eggtrayicon.c
-+ * Copyright (C) 2002 Anders Carlsson <andersca@gnu.org>
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2 of the License, or (at your option) any later version.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the
-+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-+ * Boston, MA 02111-1307, USA.
-+ */
-+
-+//#include <config.h>
-+#include <string.h>
-+#include <libintl.h>
-+
-+#include "eggtrayicon-impl.h"
-+
-+#include <gdkconfig.h>
-+#if defined (GDK_WINDOWING_X11)
-+#include <gdk/gdkx.h>
-+#include <X11/Xatom.h>
-+#elif defined (GDK_WINDOWING_WIN32)
-+#include <gdk/gdkwin32.h>
-+#endif
-+
-+#define EGG_COMPILATION
-+#ifndef EGG_COMPILATION
-+#ifndef _
-+#define _(x) dgettext (GETTEXT_PACKAGE, x)
-+#define N_(x) x
-+#endif
-+#else
-+#define _(x) x
-+#define N_(x) x
-+#endif
-+
-+#define SYSTEM_TRAY_REQUEST_DOCK 0
-+#define SYSTEM_TRAY_BEGIN_MESSAGE 1
-+#define SYSTEM_TRAY_CANCEL_MESSAGE 2
-+
-+#define SYSTEM_TRAY_ORIENTATION_HORZ 0
-+#define SYSTEM_TRAY_ORIENTATION_VERT 1
-+
-+enum {
-+ PROP_0,
-+ PROP_ORIENTATION
-+};
-+
-+static GtkPlugClass *parent_class = NULL;
-+
-+static void egg_tray_icon_init (EggTrayIcon *icon);
-+static void egg_tray_icon_class_init (EggTrayIconClass *klass);
-+
-+static void egg_tray_icon_get_property (GObject *object,
-+ guint prop_id,
-+ GValue *value,
-+ GParamSpec *pspec);
-+
-+static void egg_tray_icon_realize (GtkWidget *widget);
-+static void egg_tray_icon_unrealize (GtkWidget *widget);
-+
-+#ifdef GDK_WINDOWING_X11
-+static void egg_tray_icon_update_manager_window (EggTrayIcon *icon,
-+ gboolean dock_if_realized);
-+static void egg_tray_icon_manager_window_destroyed (EggTrayIcon *icon);
-+#endif
-+
-+GType
-+egg_tray_icon_get_type (void)
-+{
-+ static GType our_type = 0;
-+
-+ if (our_type == 0)
-+ {
-+ static const GTypeInfo our_info =
-+ {
-+ sizeof (EggTrayIconClass),
-+ (GBaseInitFunc) NULL,
-+ (GBaseFinalizeFunc) NULL,
-+ (GClassInitFunc) egg_tray_icon_class_init,
-+ NULL, /* class_finalize */
-+ NULL, /* class_data */
-+ sizeof (EggTrayIcon),
-+ 0, /* n_preallocs */
-+ (GInstanceInitFunc) egg_tray_icon_init
-+ };
-+
-+ our_type = g_type_register_static (GTK_TYPE_PLUG, "EggTrayIcon", &our_info, 0);
-+ }
-+
-+ return our_type;
-+}
-+
-+static void
-+egg_tray_icon_init (EggTrayIcon *icon)
-+{
-+ icon->stamp = 1;
-+ icon->orientation = GTK_ORIENTATION_HORIZONTAL;
-+
-+ gtk_widget_add_events (GTK_WIDGET (icon), GDK_PROPERTY_CHANGE_MASK);
-+}
-+
-+static void
-+egg_tray_icon_class_init (EggTrayIconClass *klass)
-+{
-+ GObjectClass *gobject_class = (GObjectClass *)klass;
-+ GtkWidgetClass *widget_class = (GtkWidgetClass *)klass;
-+
-+ parent_class = g_type_class_peek_parent (klass);
-+
-+ gobject_class->get_property = egg_tray_icon_get_property;
-+
-+ widget_class->realize = egg_tray_icon_realize;
-+ widget_class->unrealize = egg_tray_icon_unrealize;
-+
-+ g_object_class_install_property (gobject_class,
-+ PROP_ORIENTATION,
-+ g_param_spec_enum ("orientation",
-+ _("Orientation"),
-+ _("The orientation of the tray."),
-+ GTK_TYPE_ORIENTATION,
-+ GTK_ORIENTATION_HORIZONTAL,
-+ G_PARAM_READABLE));
-+
-+#if defined (GDK_WINDOWING_X11)
-+ /* Nothing */
-+#elif defined (GDK_WINDOWING_WIN32)
-+ g_warning ("Port eggtrayicon to Win32");
-+#else
-+ g_warning ("Port eggtrayicon to this GTK+ backend");
-+#endif
-+}
-+
-+static void
-+egg_tray_icon_get_property (GObject *object,
-+ guint prop_id,
-+ GValue *value,
-+ GParamSpec *pspec)
-+{
-+ EggTrayIcon *icon = EGG_TRAY_ICON (object);
-+
-+ switch (prop_id)
-+ {
-+ case PROP_ORIENTATION:
-+ g_value_set_enum (value, icon->orientation);
-+ break;
-+ default:
-+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-+ break;
-+ }
-+}
-+
-+#ifdef GDK_WINDOWING_X11
-+
-+static void
-+egg_tray_icon_get_orientation_property (EggTrayIcon *icon)
-+{
-+ Display *xdisplay;
-+ Atom type;
-+ int format;
-+ union {
-+ gulong *prop;
-+ guchar *prop_ch;
-+ } prop = { NULL };
-+ gulong nitems;
-+ gulong bytes_after;
-+ int error, result;
-+
-+ g_assert (icon->manager_window != None);
-+
-+ xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon)));
-+
-+ gdk_error_trap_push ();
-+ type = None;
-+ result = XGetWindowProperty (xdisplay,
-+ icon->manager_window,
-+ icon->orientation_atom,
-+ 0, G_MAXLONG, FALSE,
-+ XA_CARDINAL,
-+ &type, &format, &nitems,
-+ &bytes_after, &(prop.prop_ch));
-+ error = gdk_error_trap_pop ();
-+
-+ if (error || result != Success)
-+ return;
-+
-+ if (type == XA_CARDINAL)
-+ {
-+ GtkOrientation orientation;
-+
-+ orientation = (prop.prop [0] == SYSTEM_TRAY_ORIENTATION_HORZ) ?
-+ GTK_ORIENTATION_HORIZONTAL :
-+ GTK_ORIENTATION_VERTICAL;
-+
-+ if (icon->orientation != orientation)
-+ {
-+ icon->orientation = orientation;
-+
-+ g_object_notify (G_OBJECT (icon), "orientation");
-+ }
-+ }
-+
-+ if (prop.prop)
-+ XFree (prop.prop);
-+}
-+
-+static GdkFilterReturn
-+egg_tray_icon_manager_filter (GdkXEvent *xevent, GdkEvent *event, gpointer user_data)
-+{
-+ EggTrayIcon *icon = user_data;
-+ XEvent *xev = (XEvent *)xevent;
-+
-+ if (xev->xany.type == ClientMessage &&
-+ xev->xclient.message_type == icon->manager_atom &&
-+ xev->xclient.data.l[1] == icon->selection_atom)
-+ {
-+ egg_tray_icon_update_manager_window (icon, TRUE);
-+ }
-+ else if (xev->xany.window == icon->manager_window)
-+ {
-+ if (xev->xany.type == PropertyNotify &&
-+ xev->xproperty.atom == icon->orientation_atom)
-+ {
-+ egg_tray_icon_get_orientation_property (icon);
-+ }
-+ if (xev->xany.type == DestroyNotify)
-+ {
-+ egg_tray_icon_manager_window_destroyed (icon);
-+ }
-+ }
-+ return GDK_FILTER_CONTINUE;
-+}
-+
-+#endif
-+
-+static void
-+egg_tray_icon_unrealize (GtkWidget *widget)
-+{
-+#ifdef GDK_WINDOWING_X11
-+ EggTrayIcon *icon = EGG_TRAY_ICON (widget);
-+ GdkWindow *root_window;
-+
-+ if (icon->manager_window != None)
-+ {
-+ GdkWindow *gdkwin;
-+
-+ gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (widget),
-+ icon->manager_window);
-+
-+ gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon);
-+ }
-+
-+ root_window = gdk_screen_get_root_window (gtk_widget_get_screen (widget));
-+
-+ gdk_window_remove_filter (root_window, egg_tray_icon_manager_filter, icon);
-+
-+ if (GTK_WIDGET_CLASS (parent_class)->unrealize)
-+ (* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
-+#endif
-+}
-+
-+#ifdef GDK_WINDOWING_X11
-+
-+static void
-+egg_tray_icon_send_manager_message (EggTrayIcon *icon,
-+ long message,
-+ Window window,
-+ long data1,
-+ long data2,
-+ long data3)
-+{
-+ XClientMessageEvent ev;
-+ Display *display;
-+
-+ ev.type = ClientMessage;
-+ ev.window = window;
-+ ev.message_type = icon->system_tray_opcode_atom;
-+ ev.format = 32;
-+ ev.data.l[0] = gdk_x11_get_server_time (GTK_WIDGET (icon)->window);
-+ ev.data.l[1] = message;
-+ ev.data.l[2] = data1;
-+ ev.data.l[3] = data2;
-+ ev.data.l[4] = data3;
-+
-+ display = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon)));
-+
-+ gdk_error_trap_push ();
-+ XSendEvent (display,
-+ icon->manager_window, False, NoEventMask, (XEvent *)&ev);
-+ XSync (display, False);
-+ gdk_error_trap_pop ();
-+}
-+
-+static void
-+egg_tray_icon_send_dock_request (EggTrayIcon *icon)
-+{
-+ egg_tray_icon_send_manager_message (icon,
-+ SYSTEM_TRAY_REQUEST_DOCK,
-+ icon->manager_window,
-+ gtk_plug_get_id (GTK_PLUG (icon)),
-+ 0, 0);
-+}
-+
-+static void
-+egg_tray_icon_update_manager_window (EggTrayIcon *icon,
-+ gboolean dock_if_realized)
-+{
-+ Display *xdisplay;
-+
-+ if (icon->manager_window != None)
-+ return;
-+
-+ xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon)));
-+
-+ XGrabServer (xdisplay);
-+
-+ icon->manager_window = XGetSelectionOwner (xdisplay,
-+ icon->selection_atom);
-+
-+ if (icon->manager_window != None)
-+ XSelectInput (xdisplay,
-+ icon->manager_window, StructureNotifyMask|PropertyChangeMask);
-+
-+ XUngrabServer (xdisplay);
-+ XFlush (xdisplay);
-+
-+ if (icon->manager_window != None)
-+ {
-+ GdkWindow *gdkwin;
-+
-+ gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)),
-+ icon->manager_window);
-+
-+ gdk_window_add_filter (gdkwin, egg_tray_icon_manager_filter, icon);
-+
-+ if (dock_if_realized && GTK_WIDGET_REALIZED (icon))
-+ egg_tray_icon_send_dock_request (icon);
-+
-+ egg_tray_icon_get_orientation_property (icon);
-+ }
-+}
-+
-+static void
-+egg_tray_icon_manager_window_destroyed (EggTrayIcon *icon)
-+{
-+ GdkWindow *gdkwin;
-+
-+ g_return_if_fail (icon->manager_window != None);
-+
-+ gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)),
-+ icon->manager_window);
-+
-+ gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon);
-+
-+ icon->manager_window = None;
-+
-+ egg_tray_icon_update_manager_window (icon, TRUE);
-+}
-+
-+#endif
-+
-+static void
-+egg_tray_icon_realize (GtkWidget *widget)
-+{
-+#ifdef GDK_WINDOWING_X11
-+ EggTrayIcon *icon = EGG_TRAY_ICON (widget);
-+ GdkScreen *screen;
-+ GdkDisplay *display;
-+ Display *xdisplay;
-+ char buffer[256];
-+ GdkWindow *root_window;
-+
-+ if (GTK_WIDGET_CLASS (parent_class)->realize)
-+ GTK_WIDGET_CLASS (parent_class)->realize (widget);
-+
-+ screen = gtk_widget_get_screen (widget);
-+ display = gdk_screen_get_display (screen);
-+ xdisplay = gdk_x11_display_get_xdisplay (display);
-+
-+ /* Now see if there's a manager window around */
-+ g_snprintf (buffer, sizeof (buffer),
-+ "_NET_SYSTEM_TRAY_S%d",
-+ gdk_screen_get_number (screen));
-+
-+ icon->selection_atom = XInternAtom (xdisplay, buffer, False);
-+
-+ icon->manager_atom = XInternAtom (xdisplay, "MANAGER", False);
-+
-+ icon->system_tray_opcode_atom = XInternAtom (xdisplay,
-+ "_NET_SYSTEM_TRAY_OPCODE",
-+ False);
-+
-+ icon->orientation_atom = XInternAtom (xdisplay,
-+ "_NET_SYSTEM_TRAY_ORIENTATION",
-+ False);
-+
-+ egg_tray_icon_update_manager_window (icon, FALSE);
-+ egg_tray_icon_send_dock_request (icon);
-+
-+ root_window = gdk_screen_get_root_window (screen);
-+
-+ /* Add a root window filter so that we get changes on MANAGER */
-+ gdk_window_add_filter (root_window,
-+ egg_tray_icon_manager_filter, icon);
-+#endif
-+}
-+
-+EggTrayIcon *
-+egg_tray_icon_new_for_screen (GdkScreen *screen, const char *name)
-+{
-+ g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
-+
-+ return g_object_new (EGG_TYPE_TRAY_ICON, "screen", screen, "title", name, NULL);
-+}
-+
-+EggTrayIcon*
-+egg_tray_icon_new (const gchar *name)
-+{
-+ return g_object_new (EGG_TYPE_TRAY_ICON, "title", name, NULL);
-+}
-+
-+guint
-+egg_tray_icon_send_message (EggTrayIcon *icon,
-+ gint timeout,
-+ const gchar *message,
-+ gint len)
-+{
-+ guint stamp;
-+
-+ g_return_val_if_fail (EGG_IS_TRAY_ICON (icon), 0);
-+ g_return_val_if_fail (timeout >= 0, 0);
-+ g_return_val_if_fail (message != NULL, 0);
-+
-+#ifdef GDK_WINDOWING_X11
-+ if (icon->manager_window == None)
-+ return 0;
-+#endif
-+
-+ if (len < 0)
-+ len = strlen (message);
-+
-+ stamp = icon->stamp++;
-+
-+#ifdef GDK_WINDOWING_X11
-+ /* Get ready to send the message */
-+ egg_tray_icon_send_manager_message (icon, SYSTEM_TRAY_BEGIN_MESSAGE,
-+ (Window)gtk_plug_get_id (GTK_PLUG (icon)),
-+ timeout, len, stamp);
-+
-+ /* Now to send the actual message */
-+ gdk_error_trap_push ();
-+ while (len > 0)
-+ {
-+ XClientMessageEvent ev;
-+ Display *xdisplay;
-+
-+ xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon)));
-+
-+ ev.type = ClientMessage;
-+ ev.window = (Window)gtk_plug_get_id (GTK_PLUG (icon));
-+ ev.format = 8;
-+ ev.message_type = XInternAtom (xdisplay,
-+ "_NET_SYSTEM_TRAY_MESSAGE_DATA", False);
-+ if (len > 20)
-+ {
-+ memcpy (&ev.data, message, 20);
-+ len -= 20;
-+ message += 20;
-+ }
-+ else
-+ {
-+ memcpy (&ev.data, message, len);
-+ len = 0;
-+ }
-+
-+ XSendEvent (xdisplay,
-+ icon->manager_window, False, StructureNotifyMask, (XEvent *)&ev);
-+ XSync (xdisplay, False);
-+ }
-+ gdk_error_trap_pop ();
-+#endif
-+
-+ return stamp;
-+}
-+
-+void
-+egg_tray_icon_cancel_message (EggTrayIcon *icon,
-+ guint id)
-+{
-+ g_return_if_fail (EGG_IS_TRAY_ICON (icon));
-+ g_return_if_fail (id > 0);
-+#ifdef GDK_WINDOWING_X11
-+ egg_tray_icon_send_manager_message (icon, SYSTEM_TRAY_CANCEL_MESSAGE,
-+ (Window)gtk_plug_get_id (GTK_PLUG (icon)),
-+ id, 0, 0);
-+#endif
-+}
-+
-+GtkOrientation
-+egg_tray_icon_get_orientation (EggTrayIcon *icon)
-+{
-+ g_return_val_if_fail (EGG_IS_TRAY_ICON (icon), GTK_ORIENTATION_HORIZONTAL);
-+
-+ return icon->orientation;
-+}
-
-
---- /dev/null 2005-09-21 14:49:37.496144500 +0530
-+++ eggtray/source/makefile.mk 2005-10-14 15:55:26.000000000 +0530
-@@ -0,0 +1,26 @@
-+
-+PRJ=..
-+PRJNAME=eggtray
-+TARGET=eggtray
-+
-+
-+# --- Settings ----------------------------------
-+
-+.INCLUDE : settings.mk
-+PKGCONFIG_MODULES=gtk+-2.0 gdk-2.0
-+.INCLUDE: pkg_config.mk
-+CFLAGS+=$(PKGCONFIG_CFLAGS)
-+
-+# --- Files -------------------------------------
-+
-+SLOFILES=\
-+ $(SLO)$/eggtrayicon.obj
-+
-+SHL1STDLIBS+=$(PKGCONFIG_LIBS) -lX11
-+
-+SHL1TARGET= eggtray$(UPD)$(DLLPOSTFIX)
-+SHL1LIBS= $(SLB)$/eggtray.lib
-+
-+# --- Targets ----------------------------------
-+
-+.INCLUDE : target.mk
-
-
-
---- solenv/inc/libs.mk 2005-08-05 20:34:49.000000000 +0530
-+++ solenv/inc/libs.mk 2005-10-14 15:47:46.000000000 +0530
-@@ -228,6 +228,7 @@ BERKELEYCPPLIB=-ldb_cxx-4.2
- CURLLIB=-lcurl
- SFX2LIB=-lsfx$(OFFICEUPD)$(DLLPOSTFIX)
- SFXLIB=-lsfx$(OFFICEUPD)$(DLLPOSTFIX)
-+EGGTRAYLIB=-leggtray$(OFFICEUPD)$(DLLPOSTFIX)
- SFXDEBUGLIB=
- FWELIB=-lfwe$(OFFICEUPD)$(DLLPOSTFIX)
- FWILIB=-lfwi$(OFFICEUPD)$(DLLPOSTFIX)
-
-
---- /dev/null 2005-11-11 09:08:10.800476000 +0000
-+++ eggtray/inc/eggtrayicon.h 2005-11-11 21:50:02.000000000 +0000
-@@ -0,0 +1,35 @@
-+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-+/* eggtrayicon.h
-+ * Copyright (C) 2002 Anders Carlsson <andersca@gnu.org>
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2 of the License, or (at your option) any later version.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the
-+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-+ * Boston, MA 02111-1307, USA.
-+ */
-+
-+#ifndef __EGG_TRAY_ICON_H__
-+#define __EGG_TRAY_ICON_H__
-+
-+#include <glib.h>
-+
-+G_BEGIN_DECLS
-+
-+typedef struct _EggTrayIcon EggTrayIcon;
-+
-+EggTrayIcon *egg_tray_icon_new (const gchar *name);
-+void egg_tray_icon_cancel_message (EggTrayIcon *icon,
-+ guint id);
-+G_END_DECLS
-+
-+#endif /* __EGG_TRAY_ICON_H__ */
-
-
---- /dev/null 2005-11-11 09:08:10.800476000 +0000
-+++ eggtray/source/eggtrayicon-impl.h 2005-11-11 21:49:30.000000000 +0000
-@@ -0,0 +1,76 @@
-+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-+/* eggtrayicon.h
-+ * Copyright (C) 2002 Anders Carlsson <andersca@gnu.org>
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2 of the License, or (at your option) any later version.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the
-+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-+ * Boston, MA 02111-1307, USA.
-+ */
-+
-+#ifndef __EGG_TRAY_ICON_IMPL_H__
-+#define __EGG_TRAY_ICON_IMPL_H__
-+
-+#include <gtk/gtkplug.h>
-+#ifdef GDK_WINDOWING_X11
-+#include <gdk/gdkx.h>
-+#endif
-+#include <eggtrayicon.h>
-+
-+G_BEGIN_DECLS
-+
-+#define EGG_TYPE_TRAY_ICON (egg_tray_icon_get_type ())
-+#define EGG_TRAY_ICON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_TRAY_ICON, EggTrayIcon))
-+#define EGG_TRAY_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_TRAY_ICON, EggTrayIconClass))
-+#define EGG_IS_TRAY_ICON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_TRAY_ICON))
-+#define EGG_IS_TRAY_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_TRAY_ICON))
-+#define EGG_TRAY_ICON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_TRAY_ICON, EggTrayIconClass))
-+
-+typedef struct _EggTrayIconClass EggTrayIconClass;
-+
-+struct _EggTrayIcon
-+{
-+ GtkPlug parent_instance;
-+
-+ guint stamp;
-+
-+#ifdef GDK_WINDOWING_X11
-+ Atom selection_atom;
-+ Atom manager_atom;
-+ Atom system_tray_opcode_atom;
-+ Atom orientation_atom;
-+ Window manager_window;
-+#endif
-+ GtkOrientation orientation;
-+};
-+
-+struct _EggTrayIconClass
-+{
-+ GtkPlugClass parent_class;
-+};
-+
-+GType egg_tray_icon_get_type (void);
-+
-+EggTrayIcon *egg_tray_icon_new_for_screen (GdkScreen *screen,
-+ const gchar *name);
-+
-+guint egg_tray_icon_send_message (EggTrayIcon *icon,
-+ gint timeout,
-+ const char *message,
-+ gint len);
-+
-+GtkOrientation egg_tray_icon_get_orientation (EggTrayIcon *icon);
-+
-+G_END_DECLS
-+
-+#endif /* __EGG_TRAY_ICON_IMPL_H__ */
-
-
diff --git a/patches/src680/speed-quickstart.diff b/patches/src680/speed-quickstart.diff
deleted file mode 100644
index 322e8a7ad..000000000
--- a/patches/src680/speed-quickstart.diff
+++ /dev/null
@@ -1,1336 +0,0 @@
-Index: svx/source/dialog/optmemory.cxx
-===================================================================
-RCS file: /cvs/graphics/svx/source/dialog/optmemory.cxx,v
-retrieving revision 1.8
-diff -u -p -u -r1.8 optmemory.cxx
---- svx/source/dialog/optmemory.cxx 8 Sep 2005 21:47:15 -0000 1.8
-+++ svx/source/dialog/optmemory.cxx 11 Nov 2005 16:04:28 -0000
-@@ -237,8 +237,7 @@ OfaMemoryOptionsPage::OfaMemoryOptionsPa
- {
- FreeResource();
-
-- //quick launch only available in Win
--#ifndef WNT
-+#if !defined(WNT) && !defined(ENABLE_GTK)
- aQuickLaunchFL.Hide();
- aQuickLaunchCB.Hide();
- #endif
-
---- /dev/null 2005-11-11 09:08:10.800476000 +0000
-+++ sysui/desktop/menus/qstart.desktop 2005-11-11 16:37:17.000000000 +0000
-@@ -0,0 +1,10 @@
-+[Desktop Entry]
-+Version=1.0
-+Encoding=UTF-8
-+Terminal=false
-+Type=Application
-+Categories=Application;Office
-+Exec=ooffice -quickstart -nologo -nodefault
-+NoDisplay=true
-+Name=%PRODUCTNAME Quickstarter
-+Comment=Hook for quickstarter startup
-Index: sfx2/util/makefile.mk
-===================================================================
-RCS file: /cvs/framework/sfx2/util/makefile.mk,v
-retrieving revision 1.39
-diff -u -p -u -r1.39 makefile.mk
---- sfx2/util/makefile.mk 7 Sep 2005 19:33:33 -0000 1.39
-+++ sfx2/util/makefile.mk 11 Nov 2005 17:03:08 -0000
-@@ -148,6 +148,25 @@ RESLIB1NAME=$(TARGET)
- RESLIB1IMAGES=$(PRJ)$/res
- RESLIB1SRSFILES=$(SFXSRSLIST)
-
-+# gtk quick-starter
-+.IF "$(ENABLE_GTK)" != ""
-+PKGCONFIG_MODULES=gtk+-2.0
-+.INCLUDE: pkg_config.mk
-+CFLAGS+=$(PKGCONFIG_CFLAGS)
-+
-+SHL3TARGET=qstart_gtk$(UPD)$(DLLPOSTFIX)
-+SHL3LIBS=$(SLB)$/quickstart.lib
-+SHL3DEPN=$(SHL1IMPLIBN) $(SHL1TARGETN)
-+# libs for gtk plugin
-+SHL3STDLIBS=$(SHL1STDLIBS) $(SFX2LIB) $(EGGTRAYLIB)
-+SHL3STDLIBS+=$(PKGCONFIG_LIBS:s/ -lpangoxft-1.0//)
-+# hack for faked SO environment
-+.IF "$(PKGCONFIG_ROOT)"!=""
-+SHL3SONAME+=-z nodefs
-+SHL3NOCHECK=TRUE
-+.ENDIF # "$(PKGCONFIG_ROOT)"!=""
-+.ENDIF # "$(ENABLE_GTK)" != ""
-+
- # --- Targets ------------------------------------------------------
-
-
-Index: sfx2/source/appl/makefile.mk
-===================================================================
-RCS file: /cvs/framework/sfx2/source/appl/makefile.mk,v
-retrieving revision 1.39
-diff -u -p -u -r1.39 makefile.mk
---- sfx2/source/appl/makefile.mk 7 Sep 2005 17:43:35 -0000 1.39
-+++ sfx2/source/appl/makefile.mk 11 Nov 2005 17:03:49 -0000
-@@ -38,6 +38,7 @@ PRJ=..$/..
- PRJNAME=sfx2
- TARGET=appl
- ENABLE_EXCEPTIONS=TRUE
-+LIBTARGET=NO
-
- # --- Settings -----------------------------------------------------
-
-@@ -47,10 +48,18 @@ ENABLE_EXCEPTIONS=TRUE
- # w.g. compilerbugs
- .IF "$(GUI)"=="WNT"
- CFLAGS+=-Od
-+CFLAGS+=-DENABLE_QUICKSTART_APPLET
- .ENDIF
-
- .IF "$(GUI)"=="UNX"
- CDEFS+=-DDLL_NAME=libsfx$(UPD)$(DLLPOSTFIX)$(DLLPOST)
-+.IF "$(ENABLE_GTK)" != ""
-+ PKGCONFIG_MODULES=gtk+-2.0
-+ .INCLUDE: pkg_config.mk
-+ CFLAGS+=$(PKGCONFIG_CFLAGS)
-+ CFLAGS+=-DENABLE_QUICKSTART_APPLET
-+ CDEFS+=-DPLUGIN_NAME=libqstart_gtk$(UPD)$(DLLPOSTFIX)$(DLLPOST)
-+.ENDIF # "$(ENABLE_QUICKSTART_APPLET)"=="TRUE"
- .ELSE
- CDEFS+=-DDLL_NAME=sfx$(UPD)$(DLLPOSTFIX)$(DLLPOST)
- .ENDIF
-@@ -65,7 +74,7 @@ SRS2NAME=sfx
- SRC2FILES = \
- sfx.src
-
--SLOFILES = \
-+SFX_OBJECTS = \
- $(SLO)$/imagemgr.obj\
- $(SLO)$/appuno.obj \
- $(SLO)$/appmail.obj \
-@@ -105,6 +114,17 @@ SLOFILES = \
- $(SLO)$/lnkbase2.obj\
- $(SLO)$/impldde.obj
-
-+QUICKSTART_OBJECTS = \
-+ $(SLO)$/shutdowniconunx.obj
-+
-+SLOFILES = $(SFX_OBJECTS) $(QUICKSTART_OBJECTS)
-+LIB1TARGET= $(SLB)$/$(TARGET).lib
-+LIB1OBJFILES= $(SFX_OBJECTS)
-+
-+LIB2TARGET= $(SLB)$/quickstart.lib
-+LIB2OBJFILES= $(QUICKSTART_OBJECTS)
-+
-+
- EXCEPTIONSFILES=\
- $(SLO)$/imagemgr.obj \
- $(SLO)$/appopen.obj \
-
-
-Index: scp2/source/ooo/file_library_ooo.scp
-===================================================================
-RCS file: /cvs/installation/scp2/source/ooo/file_library_ooo.scp,v
-retrieving revision 1.156.16.1
-diff -u -p -u -r1.156.16.1 file_library_ooo.scp
---- scp2/source/ooo/file_library_ooo.scp 9 Nov 2005 15:29:24 -0000 1.156.16.1
-+++ scp2/source/ooo/file_library_ooo.scp 11 Nov 2005 16:49:42 -0000
-@@ -417,6 +417,24 @@ End
-
- #endif
-
-+#ifdef UNX
-+#ifdef ENABLE_GTK
-+File gid_File_Lib_Egg_Tray
-+ TXT_FILE_BODY;
-+ Styles = (PACKED);
-+ Dir = gid_Dir_Program;
-+ Name = STRING(CONCAT4(libeggtray,OFFICEUPD,DLLSUFFIX,UNXSUFFIX));
-+End
-+
-+File gid_File_Lib_QStart_Gtk
-+ Name = LIBNAME(qstart_gtk);
-+ TXT_FILE_BODY;
-+ Styles = (PACKED,PATCH);
-+ Dir = gid_Dir_Program;
-+End
-+#endif
-+#endif
-+
- STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Dba, dba)
-
- STD_UNO_LIB_FILE( gid_File_Lib_Dbacfg, dbacfg)
-Index: scp2/source/ooo/file_ooo.scp
-===================================================================
-RCS file: /cvs/installation/scp2/source/ooo/file_ooo.scp,v
-retrieving revision 1.119
-diff -u -p -u -r1.119 file_ooo.scp
---- scp2/source/ooo/file_ooo.scp 27 Oct 2005 14:08:26 -0000 1.119
-+++ scp2/source/ooo/file_ooo.scp 11 Nov 2005 16:50:31 -0000
-@@ -412,6 +412,15 @@ File gid_File_Share_Xdg_Printeradmin
- Name = "printeradmin.desktop";
- End
-
-+#ifdef ENABLE_GTK
-+File gid_File_Share_Xdg_QStart
-+ TXT_FILE_BODY;
-+ Dir = gid_Dir_Share_Xdg;
-+ Styles = (PACKED,SCPZIP_REPLACE);
-+ Name = "qstart.desktop";
-+End
-+#endif
-+
- #endif
-
- File gid_File_Bmp_Installation
-Index: config_office/configure.in
-===================================================================
-RCS file: /cvs/tools/config_office/configure.in,v
-retrieving revision 1.139
-diff -u -p -u -r1.139 configure.in
---- config_office/configure.in 25 Oct 2005 11:23:57 -0000 1.139
-+++ config_office/configure.in 11 Nov 2005 17:12:25 -0000
-@@ -3794,6 +3959,7 @@ if test "$test_gtk" = "yes"; then
- PKG_CHECK_MODULES(GDKPIXBUF, gdk-pixbuf-xlib-2.0 >= 2.2)
- GTK_CFLAGS="$GTK_CFLAGS $GDKPIXBUF_CFLAGS"
- GTK_LIBS="$GTK_LIBS $GDKPIXBUF_LIBS"
-+ BUILD_TYPE="$BUILD_TYPE GTK"
- fi
-
- fi
-
-
-Index: sfx2/prj/build.lst
-===================================================================
-RCS file: /cvs/framework/sfx2/prj/build.lst,v
-retrieving revision 1.9
-diff -u -p -u -r1.9 build.lst
---- sfx2/prj/build.lst 21 Jun 2005 09:45:59 -0000 1.9
-+++ sfx2/prj/build.lst 11 Nov 2005 17:15:04 -0000
-@@ -1,4 +1,4 @@
--sf sfx2 : idl basic xmlscript framework shell setup_native NULL
-+sf sfx2 : idl basic xmlscript framework shell setup_native GTK:eggtray NULL
- sf sfx2 usr1 - all sf_mkout NULL
- sf sfx2\inc get - all sf_inc NULL
- sf sfx2\prj get - all sf_prj NULL
-
-
-Index: sysui/desktop/share/makefile.mk
-===================================================================
-RCS file: /cvs/gsl/sysui/desktop/share/makefile.mk,v
-retrieving revision 1.10
-diff -u -p -u -r1.10 makefile.mk
---- sysui/desktop/share/makefile.mk 5 Oct 2005 13:00:54 -0000 1.10
-+++ sysui/desktop/share/makefile.mk 11 Nov 2005 22:24:33 -0000
-@@ -60,7 +62,7 @@ ULFFILES= \
- launcher_comment.ulf \
- launcher_name.ulf
-
--LAUNCHERLIST = writer calc draw impress math base printeradmin
-+LAUNCHERLIST = writer calc draw impress math base printeradmin qstart
- LAUNCHERDEPN = ../menus/{$(LAUNCHERLIST)}.desktop
-
- LAUNCHERFLAGFILE = $(COMMONMISC)/$(TARGET)/xdg.flag
-
-Index: sfx2/source/appl/shutdownicon.hxx
-===================================================================
-RCS file: /cvs/framework/sfx2/source/appl/shutdownicon.hxx,v
-retrieving revision 1.18
-diff -u -p -u -r1.18 shutdownicon.hxx
---- sfx2/source/appl/shutdownicon.hxx 30 Mar 2005 08:41:34 -0000 1.18
-+++ sfx2/source/appl/shutdownicon.hxx 14 Nov 2005 12:53:17 -0000
-@@ -35,12 +35,18 @@
- #ifndef _OSL_MUTEX_HXX_
- #include <osl/mutex.hxx>
- #endif
-+#ifndef _OSL_MODULE_HXX_
-+#include <osl/module.hxx>
-+#endif
- #ifndef _SFX_SFXUNO_HXX
- #include <sfxuno.hxx>
- #endif
- #ifndef _CPPUHELPER_COMPBASE3_HXX_
- #include <cppuhelper/compbase3.hxx>
- #endif
-+#ifndef INCLUDED_SFX2_DLLAPI_H
-+#include <sfx2/dllapi.h>
-+#endif
-
- class ResMgr;
-
-@@ -49,7 +55,17 @@ typedef ::cppu::WeakComponentImplHelper3
- ::com::sun::star::frame::XTerminateListener,
- ::com::sun::star::lang::XServiceInfo > ShutdownIconServiceBase;
-
--class ShutdownIcon : public ShutdownIconServiceBase
-+#if defined(USE_APP_SHORTCUTS)
-+#define WRITER_URL "private:factory/swriter"
-+#define CALC_URL "private:factory/scalc"
-+#define IMPRESS_URL "private:factory/simpress"
-+#define IMPRESS_WIZARD_URL "private:factory/simpress?slot=10425"
-+#define DRAW_URL "private:factory/sdraw"
-+#define MATH_URL "private:factory/smath"
-+#define BASE_URL "private:factory/sdatabase?Interactive"
-+#endif
-+
-+class SFX2_DLLPUBLIC ShutdownIcon : public ShutdownIconServiceBase
- {
- ::osl::Mutex m_aMutex;
- bool m_bVeto;
-@@ -58,16 +74,18 @@ class ShutdownIcon : public ShutdownIcon
-
- static ShutdownIcon *pShutdownIcon; // one instance
-
--#ifdef WNT
-- void initSystray();
-- void deInitSystray();
-- static void SetAutostartW32( const ::rtl::OUString& aShortcutName, bool bActivate );
-- static bool GetAutostartW32( const ::rtl::OUString& aShortcutName );
-+ void (*m_pInitSystray) ();
-+ void (*m_pDeInitSystray) ();
-+ ::osl::Module *m_pPlugin;
-+
-+ void initSystray();
-+ void deInitSystray();
-+
- static void EnterModalMode();
- static void LeaveModalMode();
-+ static rtl::OUString getShortcutName();
-
- friend class SfxNotificationListener_Impl;
--#endif
-
- public:
- ShutdownIcon( ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > aSMgr );
-@@ -88,6 +106,7 @@ class ShutdownIcon : public ShutdownIcon
-
- static void SetAutostart( bool bActivate );
- static bool GetAutostart();
-+ static bool bModalMode;
-
- static ::com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleServiceFactory >
- GetWrapperFactory( ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > & xSMgr );
-@@ -99,9 +118,7 @@ class ShutdownIcon : public ShutdownIcon
- void SetVeto( bool bVeto ) { m_bVeto = bVeto;}
- bool GetVeto() { return m_bVeto; }
-
--#ifdef WNT
- static bool IsQuickstarterInstalled();
--#endif
-
- // Component Helper - force override
- virtual void SAL_CALL disposing();
-@@ -123,4 +140,15 @@ class ShutdownIcon : public ShutdownIcon
- ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDesktop > m_xDesktop;
- };
-
-+extern "C" {
-+# ifdef WNT
-+ // builtin win32 systray
-+ void win32_init_sys_tray();
-+ void win32_shutdown_sys_tray();
-+# endif
-+ // external plugin systray impl.
-+ void plugin_init_sys_tray();
-+ void plugin_shutdown_sys_tray();
-+}
-+
- #endif
-Index: sfx2/source/appl/shutdowniconw32.cxx
-===================================================================
-RCS file: /cvs/framework/sfx2/source/appl/shutdowniconw32.cxx,v
-retrieving revision 1.33
-diff -u -p -u -r1.33 shutdowniconw32.cxx
---- sfx2/source/appl/shutdowniconw32.cxx 7 Sep 2005 17:48:58 -0000 1.33
-+++ sfx2/source/appl/shutdowniconw32.cxx 14 Nov 2005 12:53:17 -0000
-@@ -55,7 +55,6 @@
- #include <stdio.h>
- #include <io.h>
- #include <osl/thread.h>
--#include <osl/file.hxx>
- #include <setup_native/qswin32.h>
-
- #ifndef _COMPHELPER_PROCESSFACTORY_HXX_
-@@ -102,16 +101,6 @@ using namespace ::osl;
- #define IDM_UNINSTALL 11
-
-
--#if defined(USE_APP_SHORTCUTS)
--#define WRITER_URL "private:factory/swriter"
--#define CALC_URL "private:factory/scalc"
--#define IMPRESS_URL "private:factory/simpress"
--#define IMPRESS_WIZARD_URL "private:factory/simpress?slot=10425"
--#define DRAW_URL "private:factory/sdraw"
--#define MATH_URL "private:factory/smath"
--#define BASE_URL "private:factory/sdatabase?Interactive"
--#endif
--
- #define ICON_SO_DEFAULT 1
- #define ICON_TEXT_DOCUMENT 2
- #define ICON_TEXT_TEMPLATE 3
-@@ -137,7 +126,6 @@ using namespace ::osl;
-
- static HWND aListenerWindow = NULL;
- static HWND aExecuterWindow = NULL;
--static BOOL bModalMode = FALSE;
- static HMENU popupMenu = NULL;
-
- static void OnMeasureItem(HWND hwnd, LPMEASUREITEMSTRUCT lpmis);
-@@ -419,10 +407,10 @@ LRESULT CALLBACK listenerWndProc( HWND h
- // update status before showing menu, could have been changed from option page
- CheckMenuItem( popupMenu, IDM_INSTALL, MF_BYCOMMAND| (ShutdownIcon::GetAutostart() ? MF_CHECKED : MF_UNCHECKED) );
-
-- EnableMenuItem( popupMenu, IDM_EXIT, MF_BYCOMMAND | (bModalMode ? MF_GRAYED : MF_ENABLED) );
-+ EnableMenuItem( popupMenu, IDM_EXIT, MF_BYCOMMAND | (ShutdownIcon::bModalMode ? MF_GRAYED : MF_ENABLED) );
- #if defined(USE_APP_SHORTCUTS)
-- EnableMenuItem( popupMenu, IDM_OPEN, MF_BYCOMMAND | (bModalMode ? MF_GRAYED : MF_ENABLED) );
-- EnableMenuItem( popupMenu, IDM_TEMPLATE, MF_BYCOMMAND | (bModalMode ? MF_GRAYED : MF_ENABLED) );
-+ EnableMenuItem( popupMenu, IDM_OPEN, MF_BYCOMMAND | (ShutdownIcon::bModalMode ? MF_GRAYED : MF_ENABLED) );
-+ EnableMenuItem( popupMenu, IDM_TEMPLATE, MF_BYCOMMAND | (ShutdownIcon::bModalMode ? MF_GRAYED : MF_ENABLED) );
- #endif
- int m = TrackPopupMenuEx( popupMenu, TPM_RETURNCMD|TPM_LEFTALIGN|TPM_RIGHTBUTTON,
- pt.x, pt.y, hWnd, NULL );
-@@ -517,7 +505,7 @@ LRESULT CALLBACK executerWndProc( HWND h
- {
- #if defined(USE_APP_SHORTCUTS)
- case IDM_OPEN:
-- if ( !bModalMode && checkOEM() )
-+ if ( !ShutdownIcon::bModalMode && checkOEM() )
- ShutdownIcon::FileOpen();
- break;
- case IDM_WRITER:
-@@ -541,7 +529,7 @@ LRESULT CALLBACK executerWndProc( HWND h
- ShutdownIcon::OpenURL( OUString( RTL_CONSTASCII_USTRINGPARAM( BASE_URL ) ), OUString( RTL_CONSTASCII_USTRINGPARAM( "_default" ) ) );
- break;
- case IDM_TEMPLATE:
-- if ( !bModalMode && checkOEM())
-+ if ( !ShutdownIcon::bModalMode && checkOEM())
- ShutdownIcon::FromTemplate();
- break;
- #endif
-@@ -551,7 +539,7 @@ LRESULT CALLBACK executerWndProc( HWND h
- case IDM_EXIT:
- // remove listener and
- // terminate office if running in background
-- if ( !bModalMode )
-+ if ( !ShutdownIcon::bModalMode )
- ShutdownIcon::terminateDesktop();
- break;
- }
-@@ -595,9 +583,9 @@ DWORD WINAPI SystrayThread( LPVOID lpPar
-
- // -------------------------------
-
--void ShutdownIcon::initSystray()
-+void win32_init_sys_tray()
- {
-- if ( IsQuickstarterInstalled() )
-+ if ( ShutdownIcon::IsQuickstarterInstalled() )
- {
- WNDCLASSEXA listenerClass;
- listenerClass.cbSize = sizeof(WNDCLASSEX);
-@@ -652,9 +640,9 @@ void ShutdownIcon::initSystray()
-
- // -------------------------------
-
--void ShutdownIcon::deInitSystray()
-+void win32_shutdown_sys_tray()
- {
-- if ( IsQuickstarterInstalled() )
-+ if ( ShutdownIcon::IsQuickstarterInstalled() )
- {
- if( IsWindow( aListenerWindow ) )
- {
-@@ -669,19 +657,6 @@ void ShutdownIcon::deInitSystray()
- }
-
-
--// -------------------------------
--
--void ShutdownIcon::EnterModalMode()
--{
-- bModalMode = TRUE;
--}
--
--// -------------------------------
--
--void ShutdownIcon::LeaveModalMode()
--{
-- bModalMode = FALSE;
--}
-
- // -------------------------------
-
-@@ -886,102 +861,6 @@ BOOL CreateShortcut( const OUString& rAb
- return TRUE;
- }
-
--// ------------------
--// install/uninstall
--
--bool ShutdownIcon::IsQuickstarterInstalled()
--{
-- bool bQuickstarterInstalled = false;
-- HKEY hKey;
--
-- if ( ERROR_SUCCESS == RegOpenKeyEx( HKEY_CURRENT_USER, TEXT("Software\\OpenOffice.org"), 0, KEY_READ, &hKey ) )
-- {
-- if ( ERROR_SUCCESS == RegQueryValueEx( hKey, TEXT("QuickStarterInstalled"), NULL, NULL, NULL, NULL ) )
-- {
-- bQuickstarterInstalled = true;
-- }
--
-- RegCloseKey( hKey );
-- }
--
-- if ( !bQuickstarterInstalled )
-- {
-- if ( ERROR_SUCCESS == RegOpenKeyEx( HKEY_LOCAL_MACHINE, TEXT("Software\\OpenOffice.org"), 0, KEY_READ, &hKey ) )
-- {
-- if ( ERROR_SUCCESS == RegQueryValueEx( hKey, TEXT("QuickStarterInstalled"), NULL, NULL, NULL, NULL ) )
-- {
-- bQuickstarterInstalled = true;
-- }
--
-- RegCloseKey( hKey );
-- }
-- }
--
-- return bQuickstarterInstalled;
--}
--
--void ShutdownIcon::SetAutostartW32( const OUString& aShortcutName, bool bActivate )
--{
-- OUString aShortcut(SHGetAutostartFolderName());
-- aShortcut += OUString( RTL_CONSTASCII_USTRINGPARAM( "\\" ) );
-- aShortcut += aShortcutName;
--
-- if( bActivate && IsQuickstarterInstalled() )
-- {
-- wchar_t aPath[_MAX_PATH];
-- if( isNT() )
-- {
-- GetModuleFileNameW( NULL, aPath, _MAX_PATH-1);
-- }
-- else
-- {
-- char szPathA[_MAX_PATH];
-- int len = GetModuleFileNameA( NULL, szPathA, _MAX_PATH-1);
--
-- // calc the string wcstr len
-- int nNeededWStrBuffSize = MultiByteToWideChar( CP_ACP, 0, szPathA, -1, NULL, 0 );
--
-- // copy the string if necessary
-- if ( nNeededWStrBuffSize > 0 )
-- MultiByteToWideChar( CP_ACP, 0, szPathA, -1, aPath, nNeededWStrBuffSize );
-- }
--
-- OUString aOfficepath( aPath );
-- int i = aOfficepath.lastIndexOf((sal_Char) '\\');
-- if( i != -1 )
-- aOfficepath = aOfficepath.copy(0, i);
--
-- OUString quickstartExe(aOfficepath);
-- quickstartExe += OUString( RTL_CONSTASCII_USTRINGPARAM( "\\quickstart.exe" ) );
--
-- CreateShortcut( quickstartExe, aOfficepath, aShortcut, OUString(), OUString() );
-- }
-- else
-- {
-- OUString aShortcutUrl;
-- ::osl::File::getFileURLFromSystemPath( aShortcut, aShortcutUrl );
-- ::osl::File::remove( aShortcutUrl );
-- }
--}
--
--bool ShutdownIcon::GetAutostartW32( const OUString& aShortcutName )
--{
-- OUString aShortcut(SHGetAutostartFolderName());
-- aShortcut += OUString( RTL_CONSTASCII_USTRINGPARAM( "\\" ) );
-- aShortcut += aShortcutName;
--
-- OUString aShortcutUrl;
-- File::getFileURLFromSystemPath( aShortcut, aShortcutUrl );
-- File f( aShortcutUrl );
-- File::RC error = f.open( OpenFlag_Read );
-- if( error == File::E_None )
-- {
-- f.close();
-- return true;
-- }
-- else
-- return false;
--}
- #endif // WNT
-
-
-Index: sfx2/source/appl/shutdownicon.cxx
-===================================================================
-RCS file: /cvs/framework/sfx2/source/appl/shutdownicon.cxx,v
-retrieving revision 1.42
-diff -u -p -u -r1.42 shutdownicon.cxx
---- sfx2/source/appl/shutdownicon.cxx 7 Sep 2005 17:48:37 -0000 1.42
-+++ sfx2/source/appl/shutdownicon.cxx 14 Nov 2005 16:10:07 -0000
-@@ -102,7 +102,19 @@
- #ifndef _URLOBJ_HXX
- #include <tools/urlobj.hxx>
- #endif
-+#ifndef _OSL_SECURITY_HXX_
-+#include <osl/security.hxx>
-+#endif
-+#ifndef _OSL_FILE_HXX_
-+#include <osl/file.hxx>
-+#endif
-+#ifndef _UTL_BOOTSTRAP_HXX
-+#include <unotools/bootstrap.hxx>
-+#endif
-
-+#ifdef UNX // need symlink
-+#include <unistd.h>
-+#endif
- #include "sfxresid.hxx"
-
- using namespace ::com::sun::star::uno;
-@@ -126,9 +138,7 @@ public:
-
- void SAL_CALL SfxNotificationListener_Impl::dispatchFinished( const DispatchResultEvent& aEvent ) throw( RuntimeException )
- {
--#ifdef WNT
- ShutdownIcon::LeaveModalMode();
--#endif
- }
-
- void SAL_CALL SfxNotificationListener_Impl::disposing( const EventObject& aEvent ) throw( RuntimeException )
-@@ -138,62 +148,85 @@ void SAL_CALL SfxNotificationListener_Im
- SFX_IMPL_XSERVICEINFO( ShutdownIcon, "com.sun.star.office.Quickstart", "com.sun.star.comp.desktop.QuickstartWrapper" ) \
- SFX_IMPL_ONEINSTANCEFACTORY( ShutdownIcon );
-
-+bool ShutdownIcon::bModalMode = false;
- ShutdownIcon* ShutdownIcon::pShutdownIcon = 0;
-
--ShutdownIcon::ShutdownIcon( Reference< XMultiServiceFactory > aSMgr ) :
-- ShutdownIconServiceBase( m_aMutex ),
-- m_bVeto ( false ),
-- m_pResMgr( 0 ),
-- m_xServiceManager( aSMgr )
--{
-+// To remove conditionals
-+extern "C" {
-+ static void disabled_initSystray()
-+ {
-+ // disable shutdown
-+ ShutdownIcon::getInstance()->SetVeto( true );
-+ ShutdownIcon::getInstance()->addTerminateListener();
-+ }
-+ static void disabled_deInitSystray() { }
- }
-+#define DOSTRING( x ) #x
-+#define STRING( x ) DOSTRING( x )
-
--ShutdownIcon::~ShutdownIcon()
-+void ShutdownIcon::initSystray()
- {
--#ifdef WNT
-- deInitSystray();
--#endif
-+#ifdef ENABLE_QUICKSTART_APPLET
-+ if (!m_pInitSystray)
-+ {
-+# ifdef WIN32
-+ m_pInitSystray = win32_init_sys_tray;
-+ m_pDeInitSystray = win32_shutdown_sys_tray;
-+# else // UNX
-+ m_pPlugin = new osl::Module();
-+ if ( m_pPlugin->load( OUString (RTL_CONSTASCII_USTRINGPARAM( STRING( PLUGIN_NAME ) ) ) ) )
-+ {
-+ m_pInitSystray = (void (*)()) m_pPlugin->getSymbol(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM( "plugin_init_sys_tray" ) ) );
-+ m_pDeInitSystray = (void (*)()) m_pPlugin->getSymbol(
-+ OUString( RTL_CONSTASCII_USTRINGPARAM( "plugin_shutdown_sys_tray" ) ) );
-+ OSL_ASSERT (m_pInitSystray && m_pDeInitSystray);
-+ }
-+ else
-+ {
-+ delete m_pPlugin;
-+ m_pPlugin = 0;
-+ }
-+# endif // UNX
-+ }
-+#endif // ENABLE_QUICKSTART_APPLET
-+ if (!m_pInitSystray ||
-+ !m_pDeInitSystray)
-+ {
-+ m_pInitSystray = disabled_initSystray;
-+ m_pDeInitSystray = disabled_deInitSystray;
-+ }
-+ m_pInitSystray();
- }
-
--// ---------------------------------------------------------------------------
--
--void ShutdownIcon::SetAutostart( bool bActivate )
-+void ShutdownIcon::deInitSystray()
- {
--#ifdef WNT
-- OUString aShortcutName( RTL_CONSTASCII_USTRINGPARAM( "StarOffice 6.0" ) );
-- ResMgr* pMgr = SfxResId::GetResMgr();
-- if( pMgr )
-- {
-- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-- UniString aRes( SfxResId( STR_QUICKSTART_LNKNAME ) );
-- aShortcutName = OUString( aRes );
-- }
-+ if (m_pDeInitSystray)
-+ m_pDeInitSystray();
-
-- aShortcutName += OUString( RTL_CONSTASCII_USTRINGPARAM( ".lnk" ) );
--
-- SetAutostartW32( aShortcutName, bActivate );
--#endif
-+ m_pInitSystray = 0;
-+ m_pDeInitSystray = 0;
-+ if (m_pPlugin)
-+ delete m_pPlugin;
-+ m_pPlugin = 0;
- }
-
--bool ShutdownIcon::GetAutostart( )
--{
--#ifdef WNT
-- OUString aShortcutName( RTL_CONSTASCII_USTRINGPARAM( "StarOffice 6.0" ) );
-- ResMgr* pMgr = SfxResId::GetResMgr();
-- if( pMgr )
-- {
-- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-- UniString aRes( SfxResId( STR_QUICKSTART_LNKNAME ) );
-- aShortcutName = OUString( aRes );
-- }
-- aShortcutName += OUString( RTL_CONSTASCII_USTRINGPARAM( ".lnk" ) );
-
-- return GetAutostartW32( aShortcutName );
--#else
-- return false;
--#endif
-+ShutdownIcon::ShutdownIcon( Reference< XMultiServiceFactory > aSMgr ) :
-+ ShutdownIconServiceBase( m_aMutex ),
-+ m_bVeto ( false ),
-+ m_pResMgr( 0 ),
-+ m_xServiceManager( aSMgr ),
-+ m_pInitSystray( 0 ),
-+ m_pDeInitSystray( 0 ),
-+ m_pPlugin( 0 )
-+{
- }
-
-+ShutdownIcon::~ShutdownIcon()
-+{
-+ deInitSystray();
-+}
-
- // ---------------------------------------------------------------------------
-
-@@ -231,9 +264,7 @@ void ShutdownIcon::FileOpen()
- if ( getInstance() && getInstance()->m_xDesktop.is() )
- {
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
--#ifdef WNT
- EnterModalMode();
--#endif
- // use ctor for filling up filters automatically! #89169#
- FileDialogHelper dlg( WB_OPEN | SFXWB_MULTISELECTION, String() );
- if ( ERRCODE_NONE == dlg.Execute() )
-@@ -357,9 +388,7 @@ void ShutdownIcon::FileOpen()
- {
- }
- }
--#ifdef WNT
- LeaveModalMode();
--#endif
- }
- }
-
-@@ -395,9 +424,7 @@ void ShutdownIcon::FromTemplate()
- Reference< ::com::sun::star::frame::XNotifyingDispatch > xNotifyer( xDisp, UNO_QUERY );
- if ( xNotifyer.is() )
- {
--#ifdef WNT
- EnterModalMode();
--#endif
- xNotifyer->dispatchWithNotification( aTargetURL, aArgs, new SfxNotificationListener_Impl() );
- }
- else
-@@ -544,10 +571,9 @@ void SAL_CALL ShutdownIcon::initialize(
- if ( !m_xDesktop.is() )
- return;
-
-+ /* Create a sub-classed instance - foo */
- ShutdownIcon::pShutdownIcon = this;
--#ifdef WNT
- initSystray();
--#endif
- }
- catch(const ::com::sun::star::lang::IllegalArgumentException&)
- {
-@@ -565,3 +591,189 @@ void SAL_CALL ShutdownIcon::initialize(
- }
-
- }
-+
-+// -------------------------------
-+
-+void ShutdownIcon::EnterModalMode()
-+{
-+ bModalMode = TRUE;
-+}
-+
-+// -------------------------------
-+
-+void ShutdownIcon::LeaveModalMode()
-+{
-+ bModalMode = FALSE;
-+}
-+
-+// ------------------
-+// install/uninstall
-+
-+bool ShutdownIcon::IsQuickstarterInstalled()
-+{
-+#ifndef ENABLE_QUICKSTART_APPLET
-+ return false;
-+#endif
-+#ifdef UNX
-+ return true;
-+#endif
-+#ifdef WNT
-+ bool bQuickstarterInstalled = false;
-+ HKEY hKey;
-+
-+ if ( ERROR_SUCCESS == RegOpenKeyEx( HKEY_CURRENT_USER, TEXT("Software\\OpenOffice.org"), 0, KEY_READ, &hKey ) )
-+ {
-+ if ( ERROR_SUCCESS == RegQueryValueEx( hKey, TEXT("QuickStarterInstalled"), NULL, NULL, NULL, NULL ) )
-+ bQuickstarterInstalled = true;
-+
-+ RegCloseKey( hKey );
-+ }
-+
-+ if ( !bQuickstarterInstalled )
-+ {
-+ if ( ERROR_SUCCESS == RegOpenKeyEx( HKEY_LOCAL_MACHINE, TEXT("Software\\OpenOffice.org"), 0, KEY_READ, &hKey ) )
-+ {
-+ if ( ERROR_SUCCESS == RegQueryValueEx( hKey, TEXT("QuickStarterInstalled"), NULL, NULL, NULL, NULL ) )
-+ bQuickstarterInstalled = true;
-+
-+ RegCloseKey( hKey );
-+ }
-+ }
-+
-+ return bQuickstarterInstalled;
-+#endif
-+}
-+
-+// ---------------------------------------------------------------------------
-+
-+#if defined (ENABLE_QUICKSTART_APPLET) && defined (UNX)
-+static OUString getDotAutostart( bool bCreate = false )
-+{
-+ OUString aShortcut;
-+ const char *pConfigHome;
-+ if( (pConfigHome = getenv("XDG_CONFIG_HOME") ) )
-+ aShortcut = OStringToOUString( OString( pConfigHome ), RTL_TEXTENCODING_UTF8 );
-+ else
-+ {
-+ OUString aHomeURL;
-+ osl::Security().getHomeDir( aHomeURL );
-+ ::osl::File::getSystemPathFromFileURL( aHomeURL, aShortcut );
-+ aShortcut += OUString( RTL_CONSTASCII_USTRINGPARAM( "/.config" ) );
-+ }
-+ aShortcut += OUString( RTL_CONSTASCII_USTRINGPARAM( "/autostart" ) );
-+ if (bCreate)
-+ {
-+ OUString aShortcutUrl;
-+ osl::File::getFileURLFromSystemPath( aShortcut, aShortcutUrl );
-+ osl::Directory::createPath( aShortcutUrl );
-+ }
-+ return aShortcut;
-+}
-+#endif
-+
-+rtl::OUString ShutdownIcon::getShortcutName()
-+{
-+#ifndef ENABLE_QUICKSTART_APPLET
-+ return OUString();
-+#else
-+
-+ OUString aShortcutName( RTL_CONSTASCII_USTRINGPARAM( "StarOffice 6.0" ) );
-+ ResMgr* pMgr = SfxResId::GetResMgr();
-+ if( pMgr )
-+ {
-+ ::vos::OGuard aGuard( Application::GetSolarMutex() );
-+ UniString aRes( SfxResId( STR_QUICKSTART_LNKNAME ) );
-+ aShortcutName = OUString( aRes );
-+ }
-+#ifdef WNT
-+ aShortcutName += OUString( RTL_CONSTASCII_USTRINGPARAM( ".lnk" ) );
-+
-+ OUString aShortcut(SHGetAutostartFolderName());
-+ aShortcut += OUString( RTL_CONSTASCII_USTRINGPARAM( "\\" ) );
-+ aShortcut += aShortcutName;
-+#else // UNX
-+ OUString aShortcut = getDotAutostart();
-+ aShortcut += OUString( RTL_CONSTASCII_USTRINGPARAM( "/ooqstart.desktop" ) );
-+#endif // UNX
-+ return aShortcut;
-+#endif // ENABLE_QUICKSTART_APPLET
-+}
-+
-+bool ShutdownIcon::GetAutostart( )
-+{
-+ bool bRet = false;
-+#ifdef ENABLE_QUICKSTART_APPLET
-+ OUString aShortcut( getShortcutName() );
-+ OUString aShortcutUrl;
-+ osl::File::getFileURLFromSystemPath( aShortcut, aShortcutUrl );
-+ osl::File f( aShortcutUrl );
-+ osl::File::RC error = f.open( OpenFlag_Read );
-+ if( error == osl::File::E_None )
-+ {
-+ f.close();
-+ bRet = true;
-+ }
-+#endif // ENABLE_QUICKSTART_APPLET
-+ return bRet;
-+}
-+
-+void ShutdownIcon::SetAutostart( bool bActivate )
-+{
-+#ifdef ENABLE_QUICKSTART_APPLET
-+ OUString aShortcut( getShortcutName() );
-+
-+ if( bActivate && IsQuickstarterInstalled() )
-+ {
-+#ifdef WNT
-+ wchar_t aPath[_MAX_PATH];
-+ if( isNT() )
-+ {
-+ GetModuleFileNameW( NULL, aPath, _MAX_PATH-1);
-+ }
-+ else
-+ {
-+ char szPathA[_MAX_PATH];
-+ int len = GetModuleFileNameA( NULL, szPathA, _MAX_PATH-1);
-+
-+ // calc the string wcstr len
-+ int nNeededWStrBuffSize = MultiByteToWideChar( CP_ACP, 0, szPathA, -1, NULL, 0 );
-+
-+ // copy the string if necessary
-+ if ( nNeededWStrBuffSize > 0 )
-+ MultiByteToWideChar( CP_ACP, 0, szPathA, -1, aPath, nNeededWStrBuffSize );
-+ }
-+
-+ OUString aOfficepath( aPath );
-+ int i = aOfficepath.lastIndexOf((sal_Char) '\\');
-+ if( i != -1 )
-+ aOfficepath = aOfficepath.copy(0, i);
-+
-+ OUString quickstartExe(aOfficepath);
-+ quickstartExe += OUString( RTL_CONSTASCII_USTRINGPARAM( "\\quickstart.exe" ) );
-+
-+ CreateShortcut( quickstartExe, aOfficepath, aShortcut, OUString(), OUString() );
-+#else // UNX
-+ getDotAutostart( true );
-+
-+ OUString aPath;
-+ ::utl::Bootstrap::locateBaseInstallation(aPath);
-+
-+ OUString aDesktopFile;
-+ ::osl::File::getSystemPathFromFileURL( aPath, aDesktopFile );
-+ aDesktopFile += OUString( RTL_CONSTASCII_USTRINGPARAM( "/share/xdg/qstart.desktop" ) );
-+
-+ OString aDesktopFileUnx = OUStringToOString( aDesktopFile,
-+ osl_getThreadTextEncoding() );
-+ OString aShortcutUnx = OUStringToOString( aShortcut,
-+ osl_getThreadTextEncoding() );
-+ symlink( aDesktopFileUnx, aShortcutUnx );
-+#endif // UNX
-+ }
-+ else
-+ {
-+ OUString aShortcutUrl;
-+ ::osl::File::getFileURLFromSystemPath( aShortcut, aShortcutUrl );
-+ ::osl::File::remove( aShortcutUrl );
-+ }
-+#endif // ENABLE_QUICKSTART_APPLET
-+}
---- /dev/null 2004-08-25 18:34:59.000000000 +0100
-+++ sfx2/source/appl/shutdowniconunx.cxx 2006-01-05 16:44:19.819327488 +0000
-@@ -0,0 +1,373 @@
-+
-+#ifdef ENABLE_QUICKSTART_APPLET
-+
-+#ifndef INCLUDED_SVTOOLS_MODULEOPTIONS_HXX
-+#include <svtools/moduleoptions.hxx>
-+#endif
-+
-+#include <svtools/dynamicmenuoptions.hxx>
-+
-+#include <gtk/gtk.h>
-+#include <glib.h>
-+#include <eggtray/eggtrayicon.h>
-+#include <vos/mutex.hxx>
-+
-+#ifndef _SV_BITMAPEX_HXX
-+#include <vcl/bitmapex.hxx>
-+#endif
-+#ifndef _SV_BMPACC_HXX
-+#include <vcl/bmpacc.hxx>
-+#endif
-+#ifndef _SFXAPP_HXX
-+#include "app.hxx"
-+#endif
-+#ifndef _SFX_APP_HRC
-+#include "app.hrc"
-+#endif
-+#ifndef __SHUTDOWNICON_HXX__
-+#define USE_APP_SHORTCUTS
-+#include "shutdownicon.hxx"
-+#endif
-+
-+// Cut/paste from vcl/inc/svids.hrc
-+#define SV_ICON_SMALL_START 25000
-+
-+#define SV_ICON_ID_OFFICE 1
-+#define SV_ICON_ID_TEXT 2
-+#define SV_ICON_ID_SPREADSHEET 4
-+#define SV_ICON_ID_DRAWING 6
-+#define SV_ICON_ID_PRESENTATION 8
-+#define SV_ICON_ID_DATABASE 14
-+#define SV_ICON_ID_TEMPLATE 16
-+
-+using namespace ::rtl;
-+using namespace ::osl;
-+
-+static ResMgr *pVCLResMgr;
-+static EggTrayIcon *pTrayIcon;
-+static GtkWidget *pExitMenuItem = NULL;
-+static GtkWidget *pOpenMenuItem = NULL;
-+static GtkCheckMenuItem *pAutostartMenuItem = NULL;
-+
-+static void open_url_cb( GtkWidget *pButton, gpointer data )
-+{
-+ ShutdownIcon::OpenURL( *(OUString *)data,
-+ OUString( RTL_CONSTASCII_USTRINGPARAM( "_default" ) ) );
-+}
-+
-+static void open_file_cb( GtkWidget *pButton )
-+{
-+ if ( !ShutdownIcon::bModalMode )
-+ ShutdownIcon::FileOpen();
-+}
-+
-+static void open_template_cb( GtkWidget *pButton )
-+{
-+ if ( !ShutdownIcon::bModalMode )
-+ ShutdownIcon::FromTemplate();
-+}
-+
-+static void prelaunch_toggled_cb( GtkCheckMenuItem *pItem )
-+{
-+ ShutdownIcon::SetAutostart(
-+ gtk_check_menu_item_get_active( pItem ) );
-+}
-+
-+static void exit_quickstarter_cb( GtkWidget *pButton )
-+{
-+ egg_tray_icon_cancel_message (pTrayIcon, 1 );
-+ ShutdownIcon::getInstance()->terminateDesktop();
-+ plugin_shutdown_sys_tray();
-+}
-+
-+static void menu_deactivate_cb( GtkWidget *pMenu )
-+{
-+ gtk_menu_popdown( GTK_MENU( pMenu ) );
-+}
-+
-+static GdkPixbuf * ResIdToPixbuf( USHORT nResId )
-+{
-+ ResId aResId( SV_ICON_SMALL_START + nResId, pVCLResMgr );
-+ BitmapEx aIcon( aResId );
-+ Bitmap pInSalBitmap = aIcon.GetBitmap();
-+ AlphaMask pInSalAlpha = aIcon.GetAlpha();
-+
-+ BitmapReadAccess* pSalBitmap = pInSalBitmap.AcquireReadAccess();
-+ BitmapReadAccess* pSalAlpha = pInSalAlpha.AcquireReadAccess();
-+
-+ g_return_val_if_fail( pSalBitmap != NULL, NULL );
-+
-+ Size aSize( pSalBitmap->Width(), pSalBitmap->Height() );
-+ g_return_val_if_fail( Size( pSalAlpha->Width(), pSalAlpha->Height() ) == aSize, NULL );
-+
-+ int nX, nY;
-+ guchar *pPixbufData = ( guchar * )g_malloc( 4 * aSize.Width() * aSize.Height() );
-+ guchar *pDestData = pPixbufData;
-+
-+ for( nY = 0; nY < pSalBitmap->Height(); nY++ )
-+ {
-+ for( nX = 0; nX < pSalBitmap->Width(); nX++ )
-+ {
-+ BitmapColor aPix;
-+ aPix = pSalBitmap->GetPixel( nY, nX );
-+ pDestData[0] = aPix.GetRed();
-+ pDestData[1] = aPix.GetGreen();
-+ pDestData[2] = aPix.GetBlue();
-+ if (pSalAlpha)
-+ {
-+ aPix = pSalAlpha->GetPixel( nY, nX );
-+ pDestData[3] = 255 - aPix.GetIndex();
-+ }
-+ else
-+ pDestData[3] = 255;
-+ pDestData += 4;
-+ }
-+ }
-+
-+ pInSalBitmap.ReleaseAccess( pSalBitmap );
-+ if( pSalAlpha )
-+ pInSalAlpha.ReleaseAccess( pSalAlpha );
-+
-+ return gdk_pixbuf_new_from_data( pPixbufData,
-+ GDK_COLORSPACE_RGB, TRUE, 8,
-+ aSize.Width(), aSize.Height(),
-+ aSize.Width() * 4,
-+ (GdkPixbufDestroyNotify) g_free,
-+ NULL );
-+}
-+
-+static void oustring_delete (gpointer data,
-+ GClosure *closure)
-+{
-+ OUString *pURL = (OUString *) data;
-+ delete pURL;
-+}
-+
-+static void add_item( GtkMenuShell *pMenuShell, const char *pAsciiURL,
-+ OUString *pOverrideLabel,
-+ USHORT nResId, GCallback pFnCallback )
-+{
-+ OUString *pURL = new OUString (OStringToOUString( pAsciiURL,
-+ RTL_TEXTENCODING_UTF8 ));
-+ OString aLabel;
-+ if (pOverrideLabel)
-+ aLabel = OUStringToOString (*pOverrideLabel, RTL_TEXTENCODING_UTF8);
-+ else
-+ {
-+ ShutdownIcon *pShutdownIcon = ShutdownIcon::getInstance();
-+ aLabel = OUStringToOString (pShutdownIcon->GetUrlDescription( *pURL ),
-+ RTL_TEXTENCODING_UTF8);
-+ }
-+
-+ GdkPixbuf *pPixbuf= ResIdToPixbuf( nResId );
-+ GtkWidget *pImage = gtk_image_new_from_pixbuf( pPixbuf );
-+ g_object_unref( G_OBJECT( pPixbuf ) );
-+
-+ GtkWidget *pMenuItem = gtk_image_menu_item_new_with_label( aLabel );
-+ gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM( pMenuItem ), pImage );
-+ g_signal_connect_data( pMenuItem, "activate", pFnCallback, pURL,
-+ oustring_delete, GConnectFlags(0));
-+
-+ gtk_menu_shell_append( pMenuShell, pMenuItem );
-+}
-+
-+// Unbelievably nasty
-+using namespace ::com::sun::star::uno;
-+using namespace ::com::sun::star::task;
-+using namespace ::com::sun::star::lang;
-+using namespace ::com::sun::star::beans;
-+
-+static void add_ugly_db_item( GtkMenuShell *pMenuShell, const char *pAsciiURL,
-+ OUString *pOverrideLabel,
-+ USHORT nResId, GCallback pFnCallback )
-+{
-+ SvtDynamicMenuOptions aOpt;
-+ Sequence < Sequence < PropertyValue > > aMenu = aOpt.GetMenu( E_NEWMENU );
-+ for ( sal_Int32 n=0; n<aMenu.getLength(); n++ )
-+ {
-+ ::rtl::OUString aURL;
-+ ::rtl::OUString aDescription;
-+ Sequence < PropertyValue >& aEntry = aMenu[n];
-+ for ( sal_Int32 m=0; m<aEntry.getLength(); m++ )
-+ {
-+ if ( aEntry[m].Name.equalsAsciiL( "URL", 3 ) )
-+ aEntry[m].Value >>= aURL;
-+ if ( aEntry[m].Name.equalsAsciiL( "Title", 5 ) )
-+ aEntry[m].Value >>= aDescription;
-+ }
-+
-+ if ( aURL.equalsAscii( BASE_URL ) && aDescription.getLength() )
-+ {
-+ add_item (pMenuShell, pAsciiURL, &aDescription, nResId, pFnCallback);
-+ break;
-+ }
-+ }
-+}
-+
-+static void populate_menu( GtkWidget *pMenu )
-+{
-+ ShutdownIcon *pShutdownIcon = ShutdownIcon::getInstance();
-+ GtkMenuShell *pMenuShell = GTK_MENU_SHELL( pMenu );
-+ SvtModuleOptions aModuleOptions;
-+
-+ if ( aModuleOptions.IsWriter() )
-+ add_item (pMenuShell, WRITER_URL, NULL,
-+ SV_ICON_ID_TEXT, G_CALLBACK( open_url_cb ));
-+
-+ if ( aModuleOptions.IsCalc() )
-+ add_item (pMenuShell, CALC_URL, NULL,
-+ SV_ICON_ID_SPREADSHEET, G_CALLBACK( open_url_cb ));
-+
-+ if ( aModuleOptions.IsImpress() )
-+ add_item (pMenuShell, IMPRESS_URL, NULL,
-+ SV_ICON_ID_PRESENTATION, G_CALLBACK( open_url_cb ));
-+
-+ if ( aModuleOptions.IsDraw() )
-+ add_item (pMenuShell, DRAW_URL, NULL,
-+ SV_ICON_ID_DRAWING, G_CALLBACK( open_url_cb ));
-+
-+ if ( aModuleOptions.IsDataBase() )
-+ add_ugly_db_item (pMenuShell, BASE_URL, NULL,
-+ SV_ICON_ID_DATABASE, G_CALLBACK( open_url_cb ));
-+
-+ OUString aULabel = pShutdownIcon->GetResString( STR_QUICKSTART_FROMTEMPLATE );
-+ add_item (pMenuShell, "dummy", &aULabel,
-+ SV_ICON_ID_TEMPLATE, G_CALLBACK( open_template_cb ));
-+
-+ OString aLabel;
-+ GtkWidget *pMenuItem;
-+
-+ pMenuItem = gtk_separator_menu_item_new();
-+ gtk_menu_shell_append( pMenuShell, pMenuItem );
-+
-+ aLabel = rtl::OUStringToOString (
-+ pShutdownIcon->GetResString( STR_QUICKSTART_FILEOPEN ),
-+ RTL_TEXTENCODING_UTF8 );
-+
-+ GtkWidget *pImage;
-+ pImage = gtk_image_new_from_stock( GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU );
-+ pMenuItem = gtk_image_menu_item_new_with_label( aLabel );
-+ gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM( pMenuItem ), pImage );
-+ gtk_menu_shell_append( pMenuShell, pMenuItem );
-+ g_signal_connect( pMenuItem, "activate", G_CALLBACK( open_file_cb ), NULL );
-+ pOpenMenuItem = GTK_WIDGET( pMenuItem );
-+
-+ pMenuItem = gtk_separator_menu_item_new();
-+ gtk_menu_shell_append( pMenuShell, pMenuItem );
-+
-+ aLabel = rtl::OUStringToOString (
-+ pShutdownIcon->GetResString( STR_QUICKSTART_PRELAUNCH ),
-+ RTL_TEXTENCODING_UTF8 );
-+
-+ pMenuItem = gtk_check_menu_item_new_with_label( aLabel );
-+ pAutostartMenuItem = GTK_CHECK_MENU_ITEM( pMenuItem );
-+ gtk_menu_shell_append( pMenuShell, pMenuItem);
-+ gtk_check_menu_item_set_active( pAutostartMenuItem,
-+ ShutdownIcon::GetAutostart() );
-+ g_signal_connect( pMenuItem, "activate", G_CALLBACK( prelaunch_toggled_cb ), NULL );
-+
-+ pMenuItem = gtk_separator_menu_item_new();
-+ gtk_menu_shell_append( pMenuShell, pMenuItem );
-+
-+ aLabel = rtl::OUStringToOString (
-+ pShutdownIcon->GetResString( STR_QUICKSTART_EXIT ),
-+ RTL_TEXTENCODING_UTF8 );
-+
-+ pImage = gtk_image_new_from_stock( GTK_STOCK_QUIT, GTK_ICON_SIZE_MENU );
-+ pMenuItem = gtk_image_menu_item_new_with_label( aLabel );
-+ gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM( pMenuItem ), pImage );
-+ gtk_menu_shell_append( pMenuShell, pMenuItem );
-+ g_signal_connect( pMenuItem, "activate", G_CALLBACK( exit_quickstarter_cb ), NULL );
-+ pExitMenuItem = GTK_WIDGET( pMenuItem );
-+
-+ gtk_widget_show_all( pMenu );
-+}
-+
-+static void refresh_menu( GtkWidget *pMenu )
-+{
-+ if (!pExitMenuItem)
-+ populate_menu( pMenu );
-+
-+ gtk_check_menu_item_set_active( pAutostartMenuItem,
-+ ShutdownIcon::GetAutostart() );
-+
-+ bool bModal = ShutdownIcon::bModalMode;
-+ gtk_widget_set_sensitive( pExitMenuItem, !bModal);
-+ gtk_widget_set_sensitive( pOpenMenuItem, !bModal);
-+}
-+
-+static void display_menu_cb( GtkWidget *pButton, GtkWidget *pMenu )
-+{
-+ refresh_menu( pMenu );
-+
-+ gtk_menu_popup( GTK_MENU( pMenu ), NULL, NULL,
-+ NULL, NULL, 0, gtk_get_current_event_time() );
-+}
-+
-+extern "C" {
-+ static gboolean
-+ show_at_idle (gpointer pTrayIcon)
-+ {
-+ ::vos::OGuard aGuard( Application::GetSolarMutex() );
-+ gtk_widget_show_all( GTK_WIDGET( pTrayIcon ) );
-+ return FALSE;
-+ }
-+}
-+
-+void SAL_DLLPUBLIC_EXPORT plugin_init_sys_tray()
-+{
-+ ::vos::OGuard aGuard( Application::GetSolarMutex() );
-+
-+ if( !g_type_from_name( "GdkDisplay" ) )
-+ return;
-+
-+ OString aLabel;
-+ ShutdownIcon *pShutdownIcon = ShutdownIcon::getInstance();
-+
-+ aLabel = rtl::OUStringToOString (
-+ pShutdownIcon->GetResString( STR_QUICKSTART_TIP ),
-+ RTL_TEXTENCODING_UTF8 );
-+
-+ pTrayIcon = egg_tray_icon_new( aLabel );
-+
-+ GtkWidget *pButton = gtk_toggle_button_new();
-+ GtkTooltips *pTooltips = gtk_tooltips_new();
-+ gtk_tooltips_set_tip( GTK_TOOLTIPS( pTooltips ), pButton, aLabel, NULL );
-+
-+ GtkWidget *pIconImage = gtk_image_new();
-+ gtk_container_add( GTK_CONTAINER( pButton ), pIconImage );
-+
-+ pVCLResMgr = CREATEVERSIONRESMGR( vcl );
-+
-+ GdkPixbuf *pPixbuf = ResIdToPixbuf( SV_ICON_ID_OFFICE );
-+ gtk_image_set_from_pixbuf( GTK_IMAGE( pIconImage ), pPixbuf );
-+ g_object_unref( pPixbuf );
-+
-+ GtkWidget *pMenu = gtk_menu_new();
-+ g_signal_connect (pMenu, "deactivate",
-+ G_CALLBACK (menu_deactivate_cb), NULL);
-+ g_signal_connect( pButton, "clicked",
-+ G_CALLBACK( display_menu_cb ), pMenu );
-+ gtk_container_add( GTK_CONTAINER( pTrayIcon ), pButton );
-+
-+ // Show at idle to avoid artefacts at startup
-+ g_idle_add (show_at_idle, (gpointer) pTrayIcon);
-+
-+ // disable shutdown
-+ pShutdownIcon->SetVeto( true );
-+ pShutdownIcon->addTerminateListener();
-+}
-+
-+void SAL_DLLPUBLIC_EXPORT plugin_shutdown_sys_tray()
-+{
-+ ::vos::OGuard aGuard( Application::GetSolarMutex() );
-+ if( !pTrayIcon )
-+ return;
-+ gtk_widget_destroy( GTK_WIDGET( pTrayIcon ) );
-+ pTrayIcon = NULL;
-+ pExitMenuItem = NULL;
-+ pOpenMenuItem = NULL;
-+ pAutostartMenuItem = NULL;
-+}
-+
-+#endif // ENABLE_QUICKSTART_APPLET
diff --git a/patches/src680/speed-splash-ipc-name.diff b/patches/src680/speed-splash-ipc-name.diff
deleted file mode 100644
index dda98bf4c..000000000
--- a/patches/src680/speed-splash-ipc-name.diff
+++ /dev/null
@@ -1,58 +0,0 @@
-Index: desktop/source/app/officeipcthread.cxx
-===================================================================
-RCS file: /cvs/framework/desktop/source/app/officeipcthread.cxx,v
-retrieving revision 1.50
-diff -u -p -u -r1.50 officeipcthread.cxx
---- desktop/source/app/officeipcthread.cxx 19 Oct 2005 12:20:26 -0000 1.50
-+++ desktop/source/app/officeipcthread.cxx 6 Jan 2006 13:09:01 -0000
-@@ -54,9 +54,12 @@
- #ifndef _UTL_CONFIGMGR_HXX_
- #include <unotools/configmgr.hxx>
- #endif
--#ifndef _THREAD_HXX_
-+#ifndef _OSL_THREAD_HXX_
- #include <osl/thread.hxx>
- #endif
-+#ifndef _OSL_FILE_HXX_
-+#include <osl/file.hxx>
-+#endif
- #ifndef _RTL_DIGEST_H_
- #include <rtl/digest.h>
- #endif
-@@ -361,7 +364,36 @@ OfficeIPCThread::Status OfficeIPCThread:
- aUserInstallPathHashCode = OUString( szBuffer, strlen(szBuffer), osl_getThreadTextEncoding() );
- }
- else
-+ {
-+#ifdef UNX
-+ // Since we mangle the UID in anyway, the home path adds nothing
-+ // but the need to parse bootstraprc => use sys install path instead.
-+ rtl::OUString aPath;
-+ aInfo.getExecutableFile( aPath );
-+ lastIndex = aPath.lastIndexOf('/');
-+ if ( lastIndex > 0 )
-+ aPath = aPath.copy( 0, lastIndex+1 );
-+
-+ osl::File::getSystemPathFromFileURL( aPath, aUserInstallPathHashCode);
-+
-+ /* Quick and simple to replicate hash */
-+ sal_uInt32 nHash = 0;
-+ if (aUserInstallPathHashCode.getLength() > 0)
-+ {
-+ rtl::OString aUTF8 = rtl::OUStringToOString( aUserInstallPathHashCode,
-+ RTL_TEXTENCODING_UTF8 );
-+ const sal_Char *pStr = aUTF8;
-+ nHash = *pStr;
-+ for (sal_Int32 i = 1; i < aUTF8.getLength(); i++)
-+ nHash = (nHash << 5) - nHash + pStr[i];
-+ }
-+ sal_Char szBuffer[128];
-+ sprintf( szBuffer, "%d-%x", SUPD, nHash );
-+ aUserInstallPathHashCode = OUString( szBuffer, strlen(szBuffer), osl_getThreadTextEncoding() );
-+#else
- aUserInstallPathHashCode = CreateMD5FromString( aDummy );
-+#endif
-+ }
-
-
- // Check result to create a hash code from the user install path
diff --git a/patches/src680/speed-uiconfig-parse.diff b/patches/src680/speed-uiconfig-parse.diff
deleted file mode 100644
index d3fef55fa..000000000
--- a/patches/src680/speed-uiconfig-parse.diff
+++ /dev/null
@@ -1,353 +0,0 @@
-Index: svx/source/dialog/cfg.cxx
-===================================================================
-RCS file: /cvs/graphics/svx/source/dialog/cfg.cxx,v
-retrieving revision 1.23
-diff -u -p -u -r1.23 cfg.cxx
---- svx/source/dialog/cfg.cxx 8 Sep 2005 20:38:51 -0000 1.23
-+++ svx/source/dialog/cfg.cxx 26 Oct 2005 16:03:20 -0000
-@@ -4161,7 +4146,7 @@ SvxEntries* ToolbarSaveInData::GetEntrie
-
- uno::Sequence< uno::Sequence < beans::PropertyValue > > info =
- GetConfigManager()->getUIElementsInfo(
-- css::ui::UIElementType::TOOLBAR );
-+ css::ui::UIElementType::TOOLBAR, sal_True );
-
- for ( sal_Int32 i = 0; i < info.getLength(); i++ )
- {
-@@ -4241,7 +4226,7 @@ SvxEntries* ToolbarSaveInData::GetEntrie
- // config manager.
- uno::Sequence< uno::Sequence < beans::PropertyValue > > info =
- xParentCfgMgr->getUIElementsInfo(
-- css::ui::UIElementType::TOOLBAR );
-+ css::ui::UIElementType::TOOLBAR, sal_True );
-
- for ( sal_Int32 i = 0; i < info.getLength(); i++ )
- {
-
-Index: offapi/com/sun/star/ui/XUIConfigurationManager.idl
-===================================================================
-RCS file: /cvs/api/offapi/com/sun/star/ui/XUIConfigurationManager.idl,v
-retrieving revision 1.3
-diff -u -p -u -r1.3 XUIConfigurationManager.idl
---- offapi/com/sun/star/ui/XUIConfigurationManager.idl 8 Sep 2005 08:30:05 -0000 1.3
-+++ offapi/com/sun/star/ui/XUIConfigurationManager.idl 26 Oct 2005 16:03:20 -0000
-@@ -123,7 +123,8 @@ interface XUIConfigurationManager : ::co
-
- @see UIElementType
- */
-- sequence< sequence< com::sun::star::beans::PropertyValue > > getUIElementsInfo( [in] short ElementType ) raises ( com::sun::star::lang::IllegalArgumentException );
-+ sequence< sequence< com::sun::star::beans::PropertyValue > > getUIElementsInfo( [in] short ElementType,
-+ [in] boolean bUIName) raises ( com::sun::star::lang::IllegalArgumentException );
-
- /** creates an empty settings data container.
-
-
-
-Index: framework/inc/services/layoutmanager.hxx
-===================================================================
-RCS file: /cvs/framework/framework/inc/services/layoutmanager.hxx,v
-retrieving revision 1.22
-diff -u -p -u -r1.22 layoutmanager.hxx
---- framework/inc/services/layoutmanager.hxx 9 Sep 2005 00:31:01 -0000 1.22
-+++ framework/inc/services/layoutmanager.hxx 26 Oct 2005 16:03:22 -0000
-@@ -445,6 +445,8 @@ namespace framework
- UIElement& impl_findElement( const rtl::OUString& aName );
-
- void implts_writeNewStateData( const rtl::OUString aName, const ::com::sun::star::uno::Reference< com::sun::star::awt::XWindow >& xWindow );
-+ sal_Bool implts_isTypedElementVisible( const rtl::OUString &rName,
-+ const rtl::OUString &rType);
- sal_Bool implts_readWindowStateData( const rtl::OUString& rName, UIElement& rElementData );
- void implts_writeWindowStateData( const rtl::OUString& rName, const UIElement& rElementData );
- void implts_setElementData( UIElement& rUIElement, const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XDockableWindow >& rDockWindow );
-@@ -452,7 +455,8 @@ namespace framework
- void implts_createAddonsToolBars();
- void implts_createCustomToolBars();
- void implts_createNonContextSensitiveToolBars();
-- void implts_createCustomToolBars( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > >& aCustomTbxSeq );
-+ bool implts_isCustomURL(const rtl::OUString &rName);
-+ void implts_createCustomToolBars( const css::uno::Reference< ::com::sun::star::ui::XUIConfigurationManager > &xCfgMgr );
- void implts_createCustomToolBar( const rtl::OUString& aTbxResName, const rtl::OUString& aTitle );
- void implts_toggleFloatingUIElementsVisibility( sal_Bool bActive );
- sal_Bool implts_isEmbeddedLayoutManager() const;
-
-Index: framework/inc/uiconfiguration/moduleuiconfigurationmanager.hxx
-===================================================================
-RCS file: /cvs/framework/framework/inc/uiconfiguration/moduleuiconfigurationmanager.hxx,v
-retrieving revision 1.8
-diff -u -p -u -r1.8 moduleuiconfigurationmanager.hxx
---- framework/inc/uiconfiguration/moduleuiconfigurationmanager.hxx 9 Sep 2005 00:40:34 -0000 1.8
-+++ framework/inc/uiconfiguration/moduleuiconfigurationmanager.hxx 26 Oct 2005 16:03:22 -0000
-@@ -185,7 +185,7 @@ namespace framework
-
- // XUIConfigurationManager
- virtual void SAL_CALL reset() throw (::com::sun::star::uno::RuntimeException);
-- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > > SAL_CALL getUIElementsInfo( sal_Int16 ElementType ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > > SAL_CALL getUIElementsInfo( sal_Int16 ElementType, sal_Bool bUIName ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer > SAL_CALL createSettings( ) throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL hasSettings( const ::rtl::OUString& ResourceURL ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL getSettings( const ::rtl::OUString& ResourceURL, sal_Bool bWriteable ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-@@ -266,7 +266,7 @@ namespace framework
- // private methods
- void impl_Initialize();
- void implts_notifyContainerListener( const ::com::sun::star::ui::ConfigurationEvent& aEvent, NotifyOp eOp );
-- void impl_fillSequenceWithElementTypeInfo( UIElementInfoHashMap& aUIElementInfoCollection, sal_Int16 nElementType );
-+ void impl_fillSequenceWithElementTypeInfo( UIElementInfoHashMap& aUIElementInfoCollection, sal_Int16 nElementType , bool bUIName);
- void impl_preloadUIElementTypeList( Layer eLayer, sal_Int16 nElementType );
- UIElementData* impl_findUIElementData( const rtl::OUString& aResourceURL, sal_Int16 nElementType, bool bLoad = true );
- void impl_requestUIElementData( sal_Int16 nElementType, Layer eLayer, UIElementData& aUIElementData );
-Index: framework/inc/uiconfiguration/uiconfigurationmanager.hxx
-===================================================================
-RCS file: /cvs/framework/framework/inc/uiconfiguration/uiconfigurationmanager.hxx,v
-retrieving revision 1.7
-diff -u -p -u -r1.7 uiconfigurationmanager.hxx
---- framework/inc/uiconfiguration/uiconfigurationmanager.hxx 9 Sep 2005 00:41:13 -0000 1.7
-+++ framework/inc/uiconfiguration/uiconfigurationmanager.hxx 26 Oct 2005 16:03:22 -0000
-@@ -169,7 +169,7 @@ namespace framework
-
- // XUIConfigurationManager
- virtual void SAL_CALL reset() throw (::com::sun::star::uno::RuntimeException);
-- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > > SAL_CALL getUIElementsInfo( sal_Int16 ElementType ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > > SAL_CALL getUIElementsInfo( sal_Int16 ElementType, sal_Bool bUIName ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer > SAL_CALL createSettings( ) throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL hasSettings( const ::rtl::OUString& ResourceURL ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL getSettings( const ::rtl::OUString& ResourceURL, sal_Bool bWriteable ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-
-
-
-Index: framework/source/layoutmanager/layoutmanager.cxx
-===================================================================
-RCS file: /cvs/framework/framework/source/layoutmanager/layoutmanager.cxx,v
-retrieving revision 1.37
-diff -u -p -u -r1.37 layoutmanager.cxx
---- framework/source/layoutmanager/layoutmanager.cxx 23 Sep 2005 15:41:41 -0000 1.37
-+++ framework/source/layoutmanager/layoutmanager.cxx 26 Oct 2005 16:03:23 -0000
-@@ -832,13 +839,52 @@ void LayoutManager::implts_createCustomT
- }
- }
-
-+bool LayoutManager::implts_isCustomURL(const OUString &rName)
-+{
-+ return rName.getLength() > 0 && rName.indexOf( m_aCustomTbxPrefix ) != -1;
-+}
-+
- void LayoutManager::implts_createCustomToolBars(
-- const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > >& aTbxSeqSeq )
-+ const css::uno::Reference< ::com::sun::star::ui::XUIConfigurationManager > &xCfgMgr )
- {
-+ Sequence< Sequence< PropertyValue > > aTbxSeqSeq;
-+ aTbxSeqSeq = xCfgMgr->getUIElementsInfo( UIElementType::TOOLBAR, sal_False );
-+ bool bHasCustom = false;
-+
-+
-+ // 1st quickly check for any custom toolbars
- const Sequence< PropertyValue >* pTbxSeq = aTbxSeqSeq.getConstArray();
- for ( sal_Int32 i = 0; i < aTbxSeqSeq.getLength(); i++ )
- {
- const Sequence< PropertyValue >& rTbxSeq = pTbxSeq[i];
-+ for ( sal_Int32 j = 0; j < rTbxSeq.getLength() && !bHasCustom; j++ )
-+ {
-+ OUString aTbxResName;
-+ if ( rTbxSeq[j].Name.equalsAscii( "ResourceURL" ))
-+ {
-+ rTbxSeq[j].Value >>= aTbxResName;
-+ if ( implts_isCustomURL( aTbxResName ) )
-+ bHasCustom = true;
-+ }
-+ }
-+ }
-+
-+ if (!bHasCustom)
-+ {
-+// fprintf (stderr, "Skip slow xml parse foo - no custom-ers\n");
-+ return;
-+ }
-+// fprintf (stderr, "Has custom - get really slow ...\n");
-+
-+ // If we have a custom toolbar - we get to parse all the UI xml files
-+ // FIXME: this still sucks - we should fetch the data by URL - for just
-+ // that URL.
-+ aTbxSeqSeq = xCfgMgr->getUIElementsInfo( UIElementType::TOOLBAR, sal_True );
-+ pTbxSeq = aTbxSeqSeq.getConstArray();
-+
-+ for ( sal_Int32 i = 0; i < aTbxSeqSeq.getLength(); i++ )
-+ {
-+ const Sequence< PropertyValue >& rTbxSeq = pTbxSeq[i];
- OUString aTbxResName;
- OUString aTbxTitle;
- for ( sal_Int32 j = 0; j < rTbxSeq.getLength(); j++ )
-@@ -875,17 +921,11 @@ void LayoutManager::implts_createCustomT
- return; // no custom toolbars for preview frame!
-
- sal_Int32 i( 0 );
-- Sequence< Sequence< PropertyValue > > aTbxSeq;
-- if ( xDocCfgMgr.is() )
-- {
-- aTbxSeq = xDocCfgMgr->getUIElementsInfo( UIElementType::TOOLBAR );
-- implts_createCustomToolBars( aTbxSeq ); // first create all document based toolbars
-- }
-- if ( xModuleCfgMgr.is() )
-- {
-- aTbxSeq = xModuleCfgMgr->getUIElementsInfo( UIElementType::TOOLBAR );
-- implts_createCustomToolBars( aTbxSeq ); // second create module based toolbars
-- }
-+ if ( xDocCfgMgr.is() ) // first create all document based toolbars
-+ implts_createCustomToolBars( xDocCfgMgr );
-+
-+ if ( xModuleCfgMgr.is() ) // second create module based toolbars
-+ implts_createCustomToolBars( xModuleCfgMgr );
- }
- }
-
-
-
-Index: framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx
-===================================================================
-RCS file: /cvs/framework/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx,v
-retrieving revision 1.14
-diff -u -p -u -r1.14 moduleuiconfigurationmanager.cxx
---- framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx 9 Sep 2005 01:50:52 -0000 1.14
-+++ framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx 26 Oct 2005 16:03:24 -0000
-@@ -214,7 +215,7 @@ static OUString RetrieveNameFromResource
- return OUString();
- }
-
--void ModuleUIConfigurationManager::impl_fillSequenceWithElementTypeInfo( UIElementInfoHashMap& aUIElementInfoCollection, sal_Int16 nElementType )
-+void ModuleUIConfigurationManager::impl_fillSequenceWithElementTypeInfo( UIElementInfoHashMap& aUIElementInfoCollection, sal_Int16 nElementType, bool bUIName )
- {
- // preload list of element types on demand
- impl_preloadUIElementTypeList( LAYER_USERDEFINED, nElementType );
-@@ -225,7 +226,7 @@ void ModuleUIConfigurationManager::impl_
-
- while ( pUserIter != rUserElements.end() )
- {
-- UIElementData* pDataSettings = impl_findUIElementData( pUserIter->second.aResourceURL, nElementType );
-+ UIElementData* pDataSettings = impl_findUIElementData( pUserIter->second.aResourceURL, nElementType, bUIName );
- if ( pDataSettings )
- {
- // Retrieve user interface name from XPropertySet interface
-@@ -251,7 +252,7 @@ void ModuleUIConfigurationManager::impl_
- UIElementInfoHashMap::const_iterator pIterInfo = aUIElementInfoCollection.find( pDefIter->second.aResourceURL );
- if ( pIterInfo == aUIElementInfoCollection.end() )
- {
-- UIElementData* pDataSettings = impl_findUIElementData( pDefIter->second.aResourceURL, nElementType );
-+ UIElementData* pDataSettings = impl_findUIElementData( pDefIter->second.aResourceURL, nElementType, bUIName );
- if ( pDataSettings )
- {
- // Retrieve user interface name from XPropertySet interface
-@@ -1012,7 +1015,8 @@ void SAL_CALL ModuleUIConfigurationManag
- }
- }
-
--Sequence< Sequence< PropertyValue > > SAL_CALL ModuleUIConfigurationManager::getUIElementsInfo( sal_Int16 ElementType )
-+Sequence< Sequence< PropertyValue > > SAL_CALL ModuleUIConfigurationManager::getUIElementsInfo( sal_Int16 ElementType,
-+ sal_Bool bUIName)
- throw ( IllegalArgumentException, RuntimeException )
- {
- if (( ElementType < 0 ) || ( ElementType >= ::com::sun::star::ui::UIElementType::COUNT ))
-@@ -1025,14 +1029,15 @@ throw ( IllegalArgumentException, Runtim
- if ( ElementType == ::com::sun::star::ui::UIElementType::UNKNOWN )
- {
- for ( sal_Int16 i = 0; i < ::com::sun::star::ui::UIElementType::COUNT; i++ )
-- impl_fillSequenceWithElementTypeInfo( aUIElementInfoCollection, sal_Int16( i ) );
-+ impl_fillSequenceWithElementTypeInfo( aUIElementInfoCollection, sal_Int16( i ), bUIName );
- }
- else
-- impl_fillSequenceWithElementTypeInfo( aUIElementInfoCollection, ElementType );
-+ impl_fillSequenceWithElementTypeInfo( aUIElementInfoCollection, ElementType, bUIName );
-
-- Sequence< PropertyValue > aUIElementInfo( 2 );
-+ Sequence< PropertyValue > aUIElementInfo( bUIName ? 2 : 1 );
- aUIElementInfo[0].Name = m_aPropResourceURL;
-- aUIElementInfo[1].Name = m_aPropUIName;
-+ if (bUIName)
-+ aUIElementInfo[1].Name = m_aPropUIName;
-
- aElementInfoSeq.realloc( aUIElementInfoCollection.size() );
- UIElementInfoHashMap::const_iterator pIter = aUIElementInfoCollection.begin();
-@@ -1044,7 +1054,8 @@ throw ( IllegalArgumentException, Runtim
- while ( pIter != aUIElementInfoCollection.end() )
- {
- aUIElementInfo[0].Value <<= pIter->second.aResourceURL;
-- aUIElementInfo[1].Value <<= pIter->second.aUIName;
-+ if (bUIName)
-+ aUIElementInfo[1].Value <<= pIter->second.aUIName;
- aElementInfoSeq[n++] = aUIElementInfo;
- ++pIter;
- }
-
-Index: framework/source/uiconfiguration/uiconfigurationmanager.cxx
-===================================================================
-RCS file: /cvs/framework/framework/source/uiconfiguration/uiconfigurationmanager.cxx,v
-retrieving revision 1.14
-diff -u -p -u -r1.14 uiconfigurationmanager.cxx
---- framework/source/uiconfiguration/uiconfigurationmanager.cxx 9 Sep 2005 01:51:20 -0000 1.14
-+++ framework/source/uiconfiguration/uiconfigurationmanager.cxx 26 Oct 2005 16:03:25 -0000
-@@ -831,7 +831,8 @@ void SAL_CALL UIConfigurationManager::re
- }
- }
-
--Sequence< Sequence< PropertyValue > > SAL_CALL UIConfigurationManager::getUIElementsInfo( sal_Int16 ElementType )
-+Sequence< Sequence< PropertyValue > > SAL_CALL UIConfigurationManager::getUIElementsInfo( sal_Int16 ElementType,
-+ sal_Bool bUIName)
- throw ( IllegalArgumentException, RuntimeException )
- {
- if (( ElementType < 0 ) || ( ElementType >= ::com::sun::star::ui::UIElementType::COUNT ))
-
-
-
-Index: framework/source/uielement/toolbarsmenucontroller.cxx
-===================================================================
-RCS file: /cvs/framework/framework/source/uielement/toolbarsmenucontroller.cxx,v
-retrieving revision 1.13
-diff -u -p -u -r1.13 toolbarsmenucontroller.cxx
---- framework/source/uielement/toolbarsmenucontroller.cxx 9 Sep 2005 01:59:06 -0000 1.13
-+++ framework/source/uielement/toolbarsmenucontroller.cxx 26 Oct 2005 16:03:28 -0000
-@@ -410,14 +416,14 @@ void ToolbarsMenuController::fillPopupMe
- if ( m_xDocCfgMgr.is() )
- {
- Sequence< Sequence< com::sun::star::beans::PropertyValue > > aSeqDocToolBars =
-- m_xDocCfgMgr->getUIElementsInfo( UIElementType::TOOLBAR );
-+ m_xDocCfgMgr->getUIElementsInfo( UIElementType::TOOLBAR, sal_True );
- fillHashMap( aSeqDocToolBars, aToolbarHashMap );
- }
-
- if ( m_xModuleCfgMgr.is() )
- {
- Sequence< Sequence< com::sun::star::beans::PropertyValue > > aSeqToolBars =
-- m_xModuleCfgMgr->getUIElementsInfo( UIElementType::TOOLBAR );
-+ m_xModuleCfgMgr->getUIElementsInfo( UIElementType::TOOLBAR, sal_True );
- fillHashMap( aSeqToolBars, aToolbarHashMap );
- }
-
-Index: qadevOOo/tests/java/ifc/ui/_XUIConfigurationManager.java
-===================================================================
-RCS file: /cvs/qa/qadevOOo/tests/java/ifc/ui/_XUIConfigurationManager.java,v
-retrieving revision 1.7
-diff -u -p -u -r1.7 _XUIConfigurationManager.java
---- qadevOOo/tests/java/ifc/ui/_XUIConfigurationManager.java 9 Sep 2005 01:35:11 -0000 1.7
-+++ qadevOOo/tests/java/ifc/ui/_XUIConfigurationManager.java 27 Oct 2005 16:37:15 -0000
-@@ -87,7 +87,7 @@ public class _XUIConfigurationManager ex
- public void _getUIElementsInfo() {
- boolean result = true;
- try {
-- PropertyValue[][]props = oObj.getUIElementsInfo(UIElementType.UNKNOWN);
-+ PropertyValue[][]props = oObj.getUIElementsInfo(UIElementType.UNKNOWN, true);
- for (int i=0; i<props.length; i++)
- for(int j=0; j<props[i].length; j++)
- log.println("Prop["+i+"]["+j+"]: " + props[i][j].Name + " " + props[i][j].Value.toString());
-Index: qadevOOo/tests/java/mod/_fwk/UIConfigurationManager.java
-===================================================================
-RCS file: /cvs/qa/qadevOOo/tests/java/mod/_fwk/UIConfigurationManager.java,v
-retrieving revision 1.7
-diff -u -p -u -r1.7 UIConfigurationManager.java
---- qadevOOo/tests/java/mod/_fwk/UIConfigurationManager.java 9 Sep 2005 02:24:34 -0000 1.7
-+++ qadevOOo/tests/java/mod/_fwk/UIConfigurationManager.java 27 Oct 2005 16:37:15 -0000
-@@ -164,7 +164,7 @@ public class UIConfigurationManager exte
- try {
- if (iUniqueCounter == 0) {
- iUniqueCounter++;
-- PropertyValue[][]props = xUIManager.getUIElementsInfo(UIElementType.UNKNOWN);
-+ PropertyValue[][]props = xUIManager.getUIElementsInfo(UIElementType.UNKNOWN, true);
- XIndexAccess xMenuBarSettings = xUIManager.getSettings(
- "private:resource/menubar/menubar", true);
-
diff --git a/patches/src680/speed-uiconfig.diff b/patches/src680/speed-uiconfig.diff
deleted file mode 100644
index d3b6381dc..000000000
--- a/patches/src680/speed-uiconfig.diff
+++ /dev/null
@@ -1,186 +0,0 @@
-Index: ucb/source/ucp/file/filrset.cxx
-===================================================================
-RCS file: /cvs/ucb/ucb/source/ucp/file/filrset.cxx,v
-retrieving revision 1.17
-diff -u -p -u -r1.17 filrset.cxx
---- ucb/source/ucp/file/filrset.cxx 9 Sep 2005 15:27:30 -0000 1.17
-+++ ucb/source/ucp/file/filrset.cxx 26 Oct 2005 13:32:34 -0000
-@@ -322,12 +322,12 @@ XResultSet_impl::OneMore(
- osl::FileBase::RC err;
- sal_Bool IsRegular;
- rtl::OUString aUnqPath;
-- osl::DirectoryItem m_aDirIte;
-+ osl::DirectoryItem aDirItem;
- Reference< sdbc::XRow > aRow;
-
- while( true )
- {
-- err = m_aFolder.getNextItem( m_aDirIte );
-+ err = m_aFolder.getNextItem( aDirItem );
-
- if( err == osl::FileBase::E_NOENT || err == osl::FileBase::E_INVAL )
- {
-@@ -337,7 +337,7 @@ XResultSet_impl::OneMore(
- }
- else if( err == osl::FileBase::E_None )
- {
-- aRow = m_pMyShell->getv( -1,this,m_sProperty,m_aDirIte,aUnqPath,IsRegular );
-+ aRow = m_pMyShell->getv( -1,this,m_sProperty,aDirItem,aUnqPath,IsRegular );
-
- if( m_nOpenMode == OpenMode::DOCUMENTS && IsRegular )
- {
-Index: ucb/source/ucp/file/shell.cxx
-===================================================================
-RCS file: /cvs/ucb/ucb/source/ucp/file/shell.cxx,v
-retrieving revision 1.84
-diff -u -p -u -r1.84 shell.cxx
---- ucb/source/ucp/file/shell.cxx 9 Sep 2005 15:29:56 -0000 1.84
-+++ ucb/source/ucp/file/shell.cxx 26 Oct 2005 13:32:35 -0000
-@@ -1119,8 +1119,8 @@ shell::getv( sal_Int32 CommandId,
- {
- uno::Sequence< uno::Any > seq( properties.getLength() );
-
-- sal_Int32 n_Mask;
-- getMaskFromProperties( n_Mask,properties );
-+ sal_Int32 n_Mask = getMaskFromProperties( properties );
-+
- osl::FileStatus aFileStatus( n_Mask );
-
- osl::DirectoryItem aDirItem;
-@@ -2203,15 +2203,21 @@ sal_Bool SAL_CALL shell::ensuredir( sal_
- //
-
-
--void SAL_CALL
-+sal_Int32 SAL_CALL
- shell::getMaskFromProperties(
-- sal_Int32& n_Mask,
-- const uno::Sequence< beans::Property >& seq )
-+ const uno::Sequence< beans::Property >& seq,
-+ bool *bNameOnly)
- {
-- n_Mask = 0;
-+ sal_Int32 n_Mask = 0;
-+ if(bNameOnly)
-+ *bNameOnly = false;
- for(sal_Int32 j = 0; j < seq.getLength(); ++j) {
- if(seq[j].Name == Title)
-+ {
- n_Mask |= FileStatusMask_FileName;
-+ if(bNameOnly)
-+ *bNameOnly = seq.getLength() == 1;
-+ }
- else if(seq[j].Name == CasePreservingURL)
- n_Mask |= FileStatusMask_FileURL;
- else if(seq[j].Name == IsDocument ||
-@@ -2240,6 +2246,7 @@ shell::getMaskFromProperties(
- // n_Mask |= FileStatusMask_FileSize;
- // n_Mask |= FileStatusMask_Attributes;
- }
-+ return n_Mask;
- }
-
-
-@@ -2534,44 +2541,52 @@ shell::getv(
- sal_Bool& aIsRegular )
- {
- uno::Sequence< uno::Any > seq( properties.getLength() );
-+
-+ bool bNameOnly = false;
-+ sal_Int32 n_Mask = getMaskFromProperties( properties, &bNameOnly );
-
-- sal_Int32 n_Mask;
-- getMaskFromProperties( n_Mask,properties );
-+ sal_Int32 n_RealMask = n_Mask;
-+ if ( !bNameOnly )
-+ { // Always retrieve the type and the target URL because item might be a link
-+ n_RealMask |= ( FileStatusMask_FileURL |
-+ FileStatusMask_Type |
-+ FileStatusMask_LinkTargetURL );
-+ }
-
-- // Always retrieve the type and the target URL because item might be a link
-- osl::FileStatus aFileStatus( n_Mask |
-- FileStatusMask_FileURL |
-- FileStatusMask_Type |
-- FileStatusMask_LinkTargetURL );
-+ osl::FileStatus aFileStatus( n_RealMask );
-+
- aDirItem.getFileStatus( aFileStatus );
- aUnqPath = aFileStatus.getFileURL();
-
- // If the directory item type is a link retrieve the type of the target
-
-- if ( aFileStatus.getFileType() == osl::FileStatus::Link )
-+ if ( n_Mask & FileStatusMask_Type )
- {
-- // Assume failure
-- osl::FileBase::RC result = osl::FileBase::E_INVAL;
-- osl::DirectoryItem aTargetItem;
-- osl::DirectoryItem::get( aFileStatus.getLinkTargetURL(), aTargetItem );
-- if ( aTargetItem.is() )
-- {
-- osl::FileStatus aTargetStatus( FileStatusMask_Type );
--
-- if ( osl::FileBase::E_None ==
-- ( result = aTargetItem.getFileStatus( aTargetStatus ) ) )
-- aIsRegular =
-- aTargetStatus.getFileType() == osl::FileStatus::Regular;
-- }
--
-- // FIXME: aIsRegular undefined in error case.
-- // Don't know how to transport error
-- OSL_ENSURE( osl::FileBase::E_None == result,
-- "shell::getv: Link target can't be retrieved."
-- " Missing error handling !!!" );
-+ if ( aFileStatus.getFileType() == osl::FileStatus::Link )
-+ {
-+ // Assume failure
-+ osl::FileBase::RC result = osl::FileBase::E_INVAL;
-+ osl::DirectoryItem aTargetItem;
-+ osl::DirectoryItem::get( aFileStatus.getLinkTargetURL(), aTargetItem );
-+ if ( aTargetItem.is() )
-+ {
-+ osl::FileStatus aTargetStatus( FileStatusMask_Type );
-+
-+ if ( osl::FileBase::E_None ==
-+ ( result = aTargetItem.getFileStatus( aTargetStatus ) ) )
-+ aIsRegular =
-+ aTargetStatus.getFileType() == osl::FileStatus::Regular;
-+ }
-+
-+ // FIXME: aIsRegular undefined in error case.
-+ // Don't know how to transport error
-+ OSL_ENSURE( osl::FileBase::E_None == result,
-+ "shell::getv: Link target can't be retrieved."
-+ " Missing error handling !!!" );
-+ }
-+ else
-+ aIsRegular = aFileStatus.getFileType() == osl::FileStatus::Regular;
- }
-- else
-- aIsRegular = aFileStatus.getFileType() == osl::FileStatus::Regular;
-
- registerNotifier( aUnqPath,pNotifier );
- insertDefaultProperties( aUnqPath );
-Index: ucb/source/ucp/file/shell.hxx
-===================================================================
-RCS file: /cvs/ucb/ucb/source/ucp/file/shell.hxx,v
-retrieving revision 1.21
-diff -u -p -u -r1.21 shell.hxx
---- ucb/source/ucp/file/shell.hxx 9 Sep 2005 15:30:10 -0000 1.21
-+++ ucb/source/ucp/file/shell.hxx 26 Oct 2005 13:32:35 -0000
-@@ -583,10 +583,10 @@ namespace fileaccess {
- * osl::DirectoryItem::getFileStatus fills the required fields.
- */
-
-- void SAL_CALL
-+ sal_Int32 SAL_CALL
- getMaskFromProperties(
-- sal_Int32& n_Mask,
-- const com::sun::star::uno::Sequence< com::sun::star::beans::Property >& seq );
-+ const com::sun::star::uno::Sequence< com::sun::star::beans::Property >& seq,
-+ bool *bNameOnly = NULL);
-
-
- void SAL_CALL
diff --git a/patches/src680/splash-title.diff b/patches/src680/splash-title.diff
deleted file mode 100644
index 482b5ffde..000000000
--- a/patches/src680/splash-title.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- vcl/source/window/introwin.cxx
-+++ vcl/source/window/introwin.cxx
-@@ -114,7 +120,8 @@ void IntroWindow::ImplInitData()
- WorkWindow( WINDOW_INTROWINDOW )
- {
- ImplInitData();
- WorkWindow::ImplInit( 0, WB_INTROWIN, NULL );
-+ SetText(XubString(RTL_CONSTASCII_USTRINGPARAM("OpenOffice.org...")));
- }
-
- // -----------------------------------------------------------------------
diff --git a/patches/src680/starmath-stl-vector-h.diff b/patches/src680/starmath-stl-vector-h.diff
deleted file mode 100644
index 43c470035..000000000
--- a/patches/src680/starmath-stl-vector-h.diff
+++ /dev/null
@@ -1,49 +0,0 @@
-cvs diff: Diffing .
-cvs diff: Diffing inc
-cvs diff: Diffing prj
-cvs diff: Diffing qa
-cvs diff: Diffing qa/unoapi
-cvs diff: Diffing sdi
-cvs diff: Diffing source
-Index: starmath/source/cfgitem.hxx
-===================================================================
-RCS file: /cvs/sw/starmath/source/cfgitem.hxx,v
-retrieving revision 1.10
-diff -u -r1.10 cfgitem.hxx
---- starmath/source/cfgitem.hxx 27 Oct 2005 15:55:02 -0000 1.10
-+++ starmath/source/cfgitem.hxx 9 Nov 2005 15:04:54 -0000
-@@ -38,7 +38,7 @@
- #ifndef _MATH_CFGITEM_HXX_
- #define _MATH_CFGITEM_HXX_
-
--#include <stl/vector>
-+#include <vector>
-
- #include <com/sun/star/beans/PropertyValues.hpp>
- #include <com/sun/star/uno/Sequence.hxx>
-Index: starmath/source/symbol.cxx
-===================================================================
-RCS file: /cvs/sw/starmath/source/symbol.cxx,v
-retrieving revision 1.26
-diff -u -r1.26 symbol.cxx
---- starmath/source/symbol.cxx 5 Oct 2005 15:05:59 -0000 1.26
-+++ starmath/source/symbol.cxx 9 Nov 2005 15:05:01 -0000
-@@ -35,7 +35,7 @@
-
- #pragma hdrstop
-
--#include <stl/vector>
-+#include <vector>
-
- #ifndef _OSL_MUTEX_HXX_
- #include <osl/mutex.hxx>
-cvs diff: Diffing uiconfig
-cvs diff: Diffing uiconfig/smath
-cvs diff: Diffing uiconfig/smath/accelerator
-cvs diff: Diffing uiconfig/smath/accelerator/en-GB
-cvs diff: Diffing uiconfig/smath/accelerator/en-US
-cvs diff: Diffing uiconfig/smath/menubar
-cvs diff: Diffing uiconfig/smath/statusbar
-cvs diff: Diffing uiconfig/smath/toolbar
-cvs diff: Diffing util
-cvs diff: Diffing xml
diff --git a/patches/src680/static-libs-use-_pic.diff b/patches/src680/static-libs-use-_pic.diff
deleted file mode 100644
index a8cd71e6c..000000000
--- a/patches/src680/static-libs-use-_pic.diff
+++ /dev/null
@@ -1,50 +0,0 @@
-Index: lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk
-===================================================================
-RCS file: /cvs/whiteboard/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk,v
-retrieving revision 1.8
-diff -u -u -r1.8 makefile.mk
---- lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk 17 Jun 2005 09:21:29 -0000 1.8
-+++ lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk 8 Aug 2005 20:42:23 -0000
-@@ -68,7 +68,11 @@
- USE_DEFFILE=TRUE
-
- .IF "$(GUI)"=="UNX"
-+.IF "$(SYSTEM_HYPH)" == "YES"
-+HNJLIB=-lhnj_pic
-+.ELSE
- HNJLIB=-lhnj
-+.ENDIF
- .ELSE
- HNJLIB=libhnj.lib
- .ENDIF
-Index: lingucomponent/source/thesaurus/libnth/makefile.mk
-===================================================================
-RCS file: /cvs/whiteboard/lingucomponent/source/thesaurus/libnth/makefile.mk,v
-retrieving revision 1.4
-diff -u -u -r1.4 makefile.mk
---- lingucomponent/source/thesaurus/libnth/makefile.mk 17 Jun 2005 09:22:43 -0000 1.4
-+++ lingucomponent/source/thesaurus/libnth/makefile.mk 8 Aug 2005 20:42:23 -0000
-@@ -70,7 +70,11 @@
-
- .IF "$(MYTHESLIB)"==""
- .IF "$(GUI)"=="UNX"
-+.IF "$(SYSTEM_MYTHES)" == "YES"
-+MYTHESLIB=-lmythes_pic
-+.ELSE
- MYTHESLIB=-lmythes
-+.ENDIF
- .ENDIF # unx
- .IF "$(GUI)"=="WNT"
- MYTHESLIB=libmythes.lib
---- solenv/inc/libs.mk.old 2005-12-09 08:25:13.000000000 +0100
-+++ solenv/inc/libs.mk 2005-12-09 08:25:28.000000000 +0100
-@@ -115,7 +115,7 @@
- CANVASTOOLSLIB=-lcanvastools$(OFFICEUPD)$(DLLPOSTFIX)
- CPPCANVASLIB=-lcppcanvas$(OFFICEUPD)$(DLLPOSTFIX)
- .IF "$(SYSTEM_AGG)" == "YES"
--AGGLIB=-lagg
-+AGGLIB=-lagg_pic
- .ELSE
- AGGLIB=-lagg$(OFFICEUPD)$(DLLPOSTFIX)
- .ENDIF
-
diff --git a/patches/src680/stlport-ppc-buildfix.diff b/patches/src680/stlport-ppc-buildfix.diff
deleted file mode 100644
index 8c6922b8b..000000000
--- a/patches/src680/stlport-ppc-buildfix.diff
+++ /dev/null
@@ -1,48 +0,0 @@
---- stlport/STLport-4.5.patch 2005-01-06 12:26:48.770546592 +1100
-+++ stlport/STLport-4.5.patch 2005-01-06 12:26:01.125789696 +1100
-@@ -269,6 +269,45 @@
-
- CXXFLAGS_DEBUG_static = $(CXXFLAGS_COMMON) -g
- CXXFLAGS_DEBUG_dynamic = $(CXXFLAGS_COMMON) -g -fPIC
-+--- misc/build/STLport-4.5/src/gcc-linux.mak.old 2005-01-06 12:22:54.127217800 +1100
-++++ misc/build/STLport-4.5/src/gcc-linux.mak 2005-01-06 12:24:28.192917640 +1100
-+@@ -46,8 +46,8 @@
-+ CXXFLAGS_DEBUG_static = $(CXXFLAGS_COMMON) -O -g
-+ CXXFLAGS_DEBUG_dynamic = $(CXXFLAGS_COMMON) -O -g -fPIC
-+
-+-CXXFLAGS_STLDEBUG_static = $(CXXFLAGS_DEBUG_static) -D_STLP_DEBUG
-+-CXXFLAGS_STLDEBUG_dynamic = $(CXXFLAGS_DEBUG_dynamic) -D_STLP_DEBUG -fPIC
-++CXXFLAGS_STLDEBUG_static = $(CXXFLAGS_DEBUG_static)
-++CXXFLAGS_STLDEBUG_dynamic = $(CXXFLAGS_DEBUG_dynamic) -fPIC
-+
-+ include common_percent_rules.mak
-+ include common_rules.mak
-+--- misc/build/STLport-4.5/src/gcc.mak.old 2005-01-06 15:20:18.840975336 +1100
-++++ misc/build/STLport-4.5/src/gcc.mak 2005-01-06 15:21:00.373661408 +1100
-+@@ -44,8 +44,8 @@
-+ CXXFLAGS_DEBUG_static = $(CXXFLAGS_COMMON) -O -g
-+ CXXFLAGS_DEBUG_dynamic = $(CXXFLAGS_COMMON) -O -g -fPIC
-+
-+-CXXFLAGS_STLDEBUG_static = $(CXXFLAGS_DEBUG_static) -D_STLP_DEBUG
-+-CXXFLAGS_STLDEBUG_dynamic = $(CXXFLAGS_DEBUG_dynamic) -D_STLP_DEBUG
-++CXXFLAGS_STLDEBUG_static = $(CXXFLAGS_DEBUG_static)
-++CXXFLAGS_STLDEBUG_dynamic = $(CXXFLAGS_DEBUG_dynamic)
-+
-+ include common_percent_rules.mak
-+ include common_rules.mak
-+--- misc/build/STLport-4.5/src/gcc-3.0.mak.orig
-++++ misc/build/STLport-4.5/src/gcc-3.0.mak
-+@@ -43,8 +43,8 @@
-+ CXXFLAGS_DEBUG_static = $(CXXFLAGS_COMMON) -g -fPIC
-+ CXXFLAGS_DEBUG_dynamic = $(CXXFLAGS_COMMON) -g -fPIC
-+
-+-CXXFLAGS_STLDEBUG_static = $(CXXFLAGS_DEBUG_static) -D_STLP_DEBUG
-+-CXXFLAGS_STLDEBUG_dynamic = $(CXXFLAGS_DEBUG_dynamic) -D_STLP_DEBUG
-++CXXFLAGS_STLDEBUG_static = $(CXXFLAGS_DEBUG_static)
-++CXXFLAGS_STLDEBUG_dynamic = $(CXXFLAGS_DEBUG_dynamic)
-+
-+ include common_percent_rules.mak
-+ include common_rules.mak
- *** misc/STLport-4.5/stlport/config/stl_gcc.h 2001-09-04 19:10:16.000000000 +0200
- --- misc/build/STLport-4.5/stlport/config/stl_gcc.h 2005-04-26 15:06:27.000000000 +0200
- ***************
diff --git a/patches/src680/svtools-default-new-document.diff b/patches/src680/svtools-default-new-document.diff
deleted file mode 100644
index 28bbe1746..000000000
--- a/patches/src680/svtools-default-new-document.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- svtools/source/contnr/templwin.cxx.bak 2005-08-12 12:00:28.000000000 +0530
-+++ svtools/source/contnr/templwin.cxx 2005-08-12 15:40:53.766509184 +0530
-@@ -1650,7 +1650,7 @@
- void SvtTemplateWindow::ReadViewSettings()
- {
- // defaults
-- sal_Int32 nSelectedGroup = ICON_POS_TEMPLATES;
-+ sal_Int32 nSelectedGroup = ICON_POS_NEWDOC;
- sal_Int32 nSelectedView = TI_DOCTEMPLATE_DOCINFO;
- double nSplitRatio = 0.5;
- ::rtl::OUString sLastFolder;
diff --git a/patches/src680/svtools-unsort-template-dialogentries.diff b/patches/src680/svtools-unsort-template-dialogentries.diff
deleted file mode 100644
index b37e537f2..000000000
--- a/patches/src680/svtools-unsort-template-dialogentries.diff
+++ /dev/null
@@ -1,169 +0,0 @@
-Index: svtools/source/contnr/templwin.cxx
-===================================================================
-RCS file: /cvs/util/svtools/source/contnr/templwin.cxx,v
-retrieving revision 1.66
-diff -u -r1.66 templwin.cxx
---- svtools/source/contnr/templwin.cxx 21 Apr 2005 11:40:46 -0000 1.66
-+++ svtools/source/contnr/templwin.cxx 23 Aug 2005 08:38:10 -0000
-@@ -222,6 +222,8 @@
- using namespace svtools;
-
- extern ::rtl::OUString CreateExactSizeText_Impl( sal_Int64 nSize ); // fileview.cxx
-+static const char __FAR_DATA pSeparatorStr[] =
-+ "----------------------------------";
-
- #define SPLITSET_ID 0
- #define COLSET_ID 1
-@@ -708,7 +710,7 @@
-
- Window( pParent, WB_DIALOGCONTROL | WB_TABSTOP | WB_BORDER | WB_3DLOOK ),
-
-- aFileView ( this, SvtResId( CTRL_FILEVIEW ), FILEVIEW_SHOW_TITLE ),
-+ aFileView ( this, SvtResId( CTRL_FILEVIEW ), FILEVIEW_SHOW_NONE ),
-
- bIsTemplateFolder ( sal_False ),
- rParent ( *pParent )
-@@ -766,9 +768,14 @@
- for ( i = 0; i < nCount; ++i )
- {
- GetMenuEntry_Impl( aDynamicMenuEntries[i], aTitle, aURL, aTargetFrame, aImageURL );
--
-- if ( aURL == sSeparator || aURL == sSlotURL )
-+ if( aURL == sSlotURL )
- continue;
-+ if( aURL == sSeparator )
-+ {
-+ String aSeparator( ASCII_STR( pSeparatorStr ) );
-+ ::rtl::OUString* pSeparator = new ::rtl::OUString( aSeparator );
-+ aNewDocs.Insert( pSeparator, LIST_APPEND );
-+ }
- else
- {
- // title
-Index: svtools/source/contnr/fileview.cxx
-===================================================================
-RCS file: /cvs/util/svtools/source/contnr/fileview.cxx,v
-retrieving revision 1.62
-diff -u -r1.62 fileview.cxx
---- svtools/source/contnr/fileview.cxx 13 Apr 2005 10:50:55 -0000 1.62
-+++ svtools/source/contnr/fileview.cxx 23 Aug 2005 14:38:38 -0000
-@@ -211,6 +211,9 @@
-
- DECLARE_LIST( StringList_Impl, OUString* );
-
-+static const char __FAR_DATA pSeparatorStr[] =
-+ "----------------------------------";
-+
- #define ROW_HEIGHT 17 // the height of a row has to be a little higher than the bitmap
- #define QUICK_SEARCH_TIMEOUT 1500 // time in mSec before the quicksearch string will be reseted
-
-@@ -837,6 +840,7 @@
- mbEnableDelete ( sal_True )
-
- {
-+ sal_Bool bViewHeader = true;
- Size aBoxSize = pParentWin->GetSizePixel();
- mpHeaderBar = new HeaderBar( pParentWin, WB_BUTTONSTYLE | WB_BOTTOMBORDER );
- mpHeaderBar->SetPosSizePixel( Point( 0, 0 ), mpHeaderBar->CalcWindowSizePixel() );
-@@ -849,6 +853,8 @@
- mpHeaderBar->InsertItem( COLUMN_SIZE, String( SvtResId( STR_SVT_FILEVIEW_COLUMN_SIZE ) ), 80, nBits );
- mpHeaderBar->InsertItem( COLUMN_DATE, String( SvtResId( STR_SVT_FILEVIEW_COLUMN_DATE ) ), 500, nBits );
- }
-+ if( ( nFlags & FILEVIEW_SHOW_NONE ) == FILEVIEW_SHOW_NONE )
-+ bViewHeader = false;
- else
- mpHeaderBar->InsertItem( COLUMN_TITLE, String( SvtResId( STR_SVT_FILEVIEW_COLUMN_TITLE ) ), 600, nBits );
-
-@@ -860,7 +866,8 @@
- SetEntryHeight( ROW_HEIGHT );
-
- Show();
-- mpHeaderBar->Show();
-+ if( bViewHeader )
-+ mpHeaderBar->Show();
-
- maResetQuickSearch.SetTimeout( QUICK_SEARCH_TIMEOUT );
- maResetQuickSearch.SetTimeoutHdl( LINK( this, ViewTabListBox_Impl, ResetQuickSearch_Impl ) );
-@@ -1209,6 +1216,7 @@
- nFlags |= FILEVIEW_MULTISELECTION;
-
- mpImp = new SvtFileView_Impl( this, nFlags, bOnlyFolder );
-+ SetSortColumn( true );
-
- long pTabs[] = { 5, 20, 180, 320, 400, 600 };
- mpImp->mpView->SetTabs( &pTabs[0], MAP_PIXEL );
-@@ -1228,6 +1236,7 @@
- {
- mpImp = new SvtFileView_Impl( this, nFlags,
- ( nFlags & FILEVIEW_ONLYFOLDER ) == FILEVIEW_ONLYFOLDER );
-+ SetSortColumn( true );
-
- if ( ( nFlags & FILEVIEW_SHOW_ALL ) == FILEVIEW_SHOW_ALL )
- {
-@@ -1241,7 +1250,8 @@
- long pTabs[] = { 2, 20, 600 };
- mpImp->mpView->SetTabs( &pTabs[0], MAP_PIXEL );
- }
--
-+ if ( ( nFlags & FILEVIEW_SHOW_NONE ) == FILEVIEW_SHOW_NONE )
-+ SetSortColumn( false );
- if ( ( nFlags & FILEVIEW_MULTISELECTION ) == FILEVIEW_MULTISELECTION )
- mpImp->mpView->SetSelectionMode( MULTIPLE_SELECTION );
-
-@@ -1483,7 +1493,8 @@
-
- mpImp->Clear();
- mpImp->CreateVector_Impl( aContents );
-- mpImp->SortFolderContent_Impl();
-+ if( GetSortColumn() )
-+ mpImp->SortFolderContent_Impl();
-
- mpImp->OpenFolder_Impl();
-
-@@ -2372,9 +2383,11 @@
- pEntry->maDisplayText = aDisplayText;
-
- // detect the image
-- INetURLObject aObj( pEntry->maImageURL.getLength() ? pEntry->maImageURL : pEntry->maTargetURL );
-- pEntry->maImage = SvFileInformationManager::GetImage( aObj, FALSE, isHighContrast( mpView ) );
--
-+ if( aValue != rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(pSeparatorStr) ) )
-+ {
-+ INetURLObject aObj( pEntry->maImageURL.getLength() ? pEntry->maImageURL : pEntry->maTargetURL );
-+ pEntry->maImage = SvFileInformationManager::GetImage( aObj, FALSE, isHighContrast( mpView ) );
-+ }
- maContent.push_back( pEntry );
- }
- }
-Index: svtools/inc/fileview.hxx
-===================================================================
-RCS file: /cvs/util/svtools/inc/fileview.hxx,v
-retrieving revision 1.17
-diff -u -r1.17 fileview.hxx
---- svtools/inc/fileview.hxx 13 Apr 2005 10:08:32 -0000 1.17
-+++ svtools/inc/fileview.hxx 23 Aug 2005 14:47:01 -0000
-@@ -97,6 +97,7 @@
- #define FILEVIEW_SHOW_SIZE 0x0020
- #define FILEVIEW_SHOW_DATE 0x0040
- #define FILEVIEW_SHOW_ALL 0x0070
-+#define FILEVIEW_SHOW_NONE 0x00A0
-
- class ViewTabListBox_Impl;
- class SvtFileView_Impl;
-@@ -130,6 +131,7 @@
- {
- private:
- SvtFileView_Impl* mpImp;
-+ sal_Bool bSortColumn;
-
- SVT_DLLPRIVATE void OpenFolder( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aContents );
-
-@@ -155,6 +157,8 @@
- sal_uInt32 GetHelpId( ) const;
- void SetSizePixel( const Size& rNewSize );
- void SetPosSizePixel( const Point& rNewPos, const Size& rNewSize );
-+ void SetSortColumn( sal_Bool bValue ) { bSortColumn = bValue; }
-+ sal_Bool GetSortColumn() { return bSortColumn; }
-
- /** initialize the view with the content of a folder given by URL, and aply an immediate filter
-
diff --git a/patches/src680/svx-customshapes-NOOPTFILES.diff b/patches/src680/svx-customshapes-NOOPTFILES.diff
deleted file mode 100644
index cb8a1628d..000000000
--- a/patches/src680/svx-customshapes-NOOPTFILES.diff
+++ /dev/null
@@ -1,18 +0,0 @@
-Index: svx/source/customshapes/makefile.mk
-===================================================================
-RCS file: /cvs/graphics/svx/source/customshapes/makefile.mk,v
-retrieving revision 1.9
-diff -u -u -r1.9 makefile.mk
---- svx/source/customshapes/makefile.mk 1 Mar 2005 19:06:56 -0000 1.9
-+++ svx/source/customshapes/makefile.mk 22 Aug 2005 02:01:36 -0000
-@@ -81,6 +81,10 @@
- .IF "$(OS)"=="MACOSX"
- NOOPTFILES= $(SLO)$/EnhancedCustomShapeFunctionParser.obj
- .ENDIF
-+# http://gcc.gnu.org/PR22392
-+.IF "$(OS)"=="LINUX" && ("$(CPU)"=="P" || "$(CPU)"=="X")
-+NOOPTFILES= $(SLO)$/EnhancedCustomShapeFunctionParser.obj
-+.ENDIF
-
- UNOTYPES= com.sun.star.uno.XWeak \
- com.sun.star.uno.XNamingService \
diff --git a/patches/src680/svx-dynamic-const-cast.diff b/patches/src680/svx-dynamic-const-cast.diff
deleted file mode 100644
index 0c5b4201b..000000000
--- a/patches/src680/svx-dynamic-const-cast.diff
+++ /dev/null
@@ -1,43 +0,0 @@
-Index: svx/source/unoedit/unotext2.cxx
-===================================================================
-RCS file: /cvs/graphics/svx/source/unoedit/unotext2.cxx,v
-retrieving revision 1.18
-diff -u -p -r1.18 unotext2.cxx
---- svx/source/unoedit/unotext2.cxx 23 Mar 2005 13:22:22 -0000 1.18
-+++ svx/source/unoedit/unotext2.cxx 21 May 2005 16:16:24 -0000
-@@ -95,7 +95,7 @@ using namespace ::com::sun::star;
- SvxUnoTextContentEnumeration::SvxUnoTextContentEnumeration( const SvxUnoTextBase& _rText ) throw()
- : rText( _rText )
- {
-- xParentText = (text::XText*)&_rText;
-+ xParentText = const_cast<SvxUnoTextBase*>(&rText);
- if( rText.GetEditSource() )
- pEditSource = rText.GetEditSource()->Clone();
- else
-@@ -173,7 +173,7 @@ SvxUnoTextContent::SvxUnoTextContent( co
- aDisposeListeners(aDisposeContainerMutex),
- bDisposing( sal_False )
- {
-- xParentText = (text::XText*)&rText;
-+ xParentText = const_cast<SvxUnoTextBase*>(&rText);
- if( GetEditSource() && GetEditSource()->GetTextForwarder() )
- SetSelection( ESelection( nParagraph,0, nParagraph, GetEditSource()->GetTextForwarder()->GetTextLen( nParagraph ) ) );
- }
-@@ -439,7 +439,7 @@ uno::Sequence< OUString > SAL_CALL SvxUn
- // ====================================================================
-
- SvxUnoTextRangeEnumeration::SvxUnoTextRangeEnumeration( const SvxUnoTextBase& rText, sal_uInt16 nPara ) throw()
--: xParentText( (text::XText*)&rText ),
-+: xParentText( const_cast<SvxUnoTextBase*>(&rText) ),
- rParentText( rText ),
- nParagraph( nPara ),
- nNextPortion( 0 )
-@@ -530,7 +530,7 @@ uno::Reference< uno::XInterface > SvxUno
-
- SvxUnoTextCursor::SvxUnoTextCursor( const SvxUnoTextBase& rText ) throw()
- : SvxUnoTextRangeBase(rText),
-- xParentText( (text::XText*)&rText)
-+ xParentText( const_cast<SvxUnoTextBase*>(&rText))
- {
- }
-
diff --git a/patches/src680/svx-freeze-fix.diff b/patches/src680/svx-freeze-fix.diff
deleted file mode 100644
index 2ec83cb47..000000000
--- a/patches/src680/svx-freeze-fix.diff
+++ /dev/null
@@ -1,26 +0,0 @@
---- svx/source/editeng/impedit2.cxx.freezefix 2003-10-08 16:27:07.000000000 -0400
-+++ svx/source/editeng/impedit2.cxx 2003-10-08 16:27:19.000000000 -0400
-@@ -59,6 +59,8 @@
- *
- ************************************************************************/
-
-+#include <stdio.h>
-+
- #include <eeng_pch.hxx>
-
- #pragma hdrstop
-@@ -1640,7 +1642,13 @@
- }
-
- if ( rTypes[0].nScriptType == i18n::ScriptType::WEAK )
-- rTypes[0].nScriptType = ( rTypes.Count() > 1 ) ? rTypes[1].nScriptType : GetI18NScriptTypeOfLanguage( GetDefaultLanguage() );
-+ {
-+ //--- rTypes[0].nScriptType = ( rTypes.Count() > 1 ) ? rTypes[1].nScriptType : GetI18NScriptTypeOfLanguage( GetDefaultLanguage() );
-+ if ( rTypes.Count() > 1 )
-+ rTypes[0].nScriptType = rTypes[1].nScriptType;
-+ else
-+ rTypes[0].nScriptType = GetI18NScriptTypeOfLanguage( GetDefaultLanguage() );
-+ }
- }
- }
-
diff --git a/patches/src680/sw-bullet-interop-fix.diff b/patches/src680/sw-bullet-interop-fix.diff
deleted file mode 100644
index b0b69f68a..000000000
--- a/patches/src680/sw-bullet-interop-fix.diff
+++ /dev/null
@@ -1,37 +0,0 @@
---- vcl/source/gdi/fontcvt.cxx 30 Aug 2004 16:21:05 -0000 1.16
-+++ vcl/source/gdi/fontcvt.cxx 24 Aug 2005 08:50:22 -0000
-@@ -1109,19 +1109,20 @@ struct ExtraTable { sal_Unicode cStar; s
-
- ExtraTable aWingDingsExtraTab[] =
- {
-- {0xe000, 0x6F}, {0xe001, 0x73}, {0xe002, 0x74}, {0xe003, 0x75},
-- {0xe004, 0x77}, {0xe005, 0xA6}, {0xe006, 0xE0}, {0xe007, 0xFC},
-- {0xe008, 0x6C}, {0xe009, 0x6D}, {0xe00a, 0x6E}, {0xe00b, 0x72},
-- {0xe00c, 0x75}, {0xe00d, 0x76}, {0xe00e, 0x74}, {0xe00f, 0x8B},
-- {0xe010, 0x80}, {0xe011, 0x2B}, {0xe012, 0x3A}, {0xe013, 0x5D},
-- {0xe014, 0x29}, {0xe015, 0x3A}, {0xe016, 0x3C}, {0xe017, 0x38},
-- {0xe018, 0x3A}, {0xe019, 0x2A}, {0xe01a, 0x2B}, {0xe01b, 0x3F},
-- {0xe01c, 0x9F}, {0xe01d, 0x80}, {0xe01e, 0x8B}, {0xe023, 0x4A},
-- {0xe025, 0xF0}, {0xe026, 0xF2}, {0xe027, 0xEF}, {0xe028, 0xF1},
-- {0xe029, 0x52}, {0xe02a, 0x29}, {0xe02b, 0xE0}, {0xe02c, 0xE2},
-- {0xe02d, 0xDF}, {0xe02e, 0xE1}, {0xe02f, 0xAC}, {0xe030, 0xAD},
-- {0xe031, 0xAE}, {0xe032, 0x7C}, {0xe033, 0x43}, {0xe034, 0x4D},
-- {0xe0aa, 0x71}, {0xe422, 0x44}
-+ {0x25cf, 0x6C}, {0x2714, 0xFC}, {0x2717, 0xFB}, {0x2794, 0xE8},
-+ {0x27a2, 0xD8}, {0xe000, 0x6F}, {0xe001, 0x73}, {0xe002, 0x74},
-+ {0xe003, 0x75}, {0xe004, 0x77}, {0xe005, 0xA6}, {0xe006, 0xE0},
-+ {0xe007, 0xFC}, {0xe008, 0x6C}, {0xe009, 0x6D}, {0xe00a, 0x6E},
-+ {0xe00b, 0x72}, {0xe00c, 0x75}, {0xe00d, 0x76}, {0xe00e, 0x74},
-+ {0xe00f, 0x8B}, {0xe010, 0x80}, {0xe011, 0x2B}, {0xe012, 0x3A},
-+ {0xe013, 0x5D}, {0xe014, 0x29}, {0xe015, 0x3A}, {0xe016, 0x3C},
-+ {0xe017, 0x38}, {0xe018, 0x3A}, {0xe019, 0x2A}, {0xe01a, 0x2B},
-+ {0xe01b, 0x3F}, {0xe01c, 0x9F}, {0xe01d, 0x80}, {0xe01e, 0x8B},
-+ {0xe023, 0x4A}, {0xe025, 0xF0}, {0xe026, 0xF2}, {0xe027, 0xEF},
-+ {0xe028, 0xF1}, {0xe029, 0x52}, {0xe02a, 0x29}, {0xe02b, 0xE0},
-+ {0xe02c, 0xE2}, {0xe02d, 0xDF}, {0xe02e, 0xE1}, {0xe02f, 0xAC},
-+ {0xe030, 0xAD}, {0xe031, 0xAE}, {0xe032, 0x7C}, {0xe033, 0x43},
-+ {0xe034, 0x4D}, {0xe0aa, 0x71}, {0xe422, 0x44}
- };
-
- ExtraTable aSymbolExtraTab2[] =
-
diff --git a/patches/src680/sw-default-bullet.diff b/patches/src680/sw-default-bullet.diff
deleted file mode 100644
index bfd7c75b0..000000000
--- a/patches/src680/sw-default-bullet.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- sw/inc/numrule.hxx 2004-11-27 17:09:41.000000000 +0530
-+++ sw/inc/numrule.hxx 2005-02-14 12:21:31.973997234 +0530
-@@ -122,7 +122,7 @@ void SW_DLLPUBLIC SetNoNum( BYTE * nLvl,
-
- void SW_DLLPUBLIC SetLevel( BYTE * nLvl, BYTE nNewLvl);
-
--const sal_Unicode cBulletChar = 0x2022; // Charakter fuer Aufzaehlungen
-+const sal_Unicode cBulletChar = 0x25cf; // Charakter fuer Aufzaehlungen
-
- class SW_DLLPUBLIC SwNumFmt : public SvxNumberFormat, public SwClient
- {
diff --git a/patches/src680/sw-escape-print-preview.diff b/patches/src680/sw-escape-print-preview.diff
deleted file mode 100644
index 40c659ee3..000000000
--- a/patches/src680/sw-escape-print-preview.diff
+++ /dev/null
@@ -1,15 +0,0 @@
-Index: sw/source/ui/uiview/pview.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/ui/uiview/pview.cxx,v
-retrieving revision 1.43.156.1
-diff -u -r1.43.156.1 pview.cxx
---- sw/source/ui/uiview/pview.cxx 9 Jan 2004 14:34:20 -0000 1.43.156.1
-+++ sw/source/ui/uiview/pview.cxx 14 Oct 2004 09:54:39 -0000
-@@ -1125,6 +1125,7 @@
- switch(nKey)
- {
- case KEY_ADD : nSlot = SID_ZOOM_OUT; break;
-+ case KEY_ESCAPE : nSlot = FN_CLOSE_PAGEPREVIEW; break;
- case KEY_SUBTRACT : nSlot = SID_ZOOM_IN; break;
- }
- if(nSlot)
diff --git a/patches/src680/system-agg.diff b/patches/src680/system-agg.diff
deleted file mode 100644
index a395e87a1..000000000
--- a/patches/src680/system-agg.diff
+++ /dev/null
@@ -1,215 +0,0 @@
---- canvas/source/tools/image.hxx.ark 2005-11-22 16:49:56.000000000 +0000
-+++ canvas/source/tools/image.hxx 2005-11-22 16:50:05.000000000 +0000
-@@ -54,7 +54,7 @@
- #endif
-
- #include <canvas/elapsedtime.hxx>
--#include <agg/agg_rendering_buffer.h>
-+#include <agg2/agg_rendering_buffer.h>
-
-
- struct BitmapSystemData;
---- canvas/source/tools/image.cxx.ark 2005-11-22 16:53:48.000000000 +0000
-+++ canvas/source/tools/image.cxx 2005-11-22 16:54:11.000000000 +0000
-@@ -63,41 +63,41 @@
- // includes from antigrain [i would love to write this stuff by myself]
- //////////////////////////////////////////////////////////////////////////////////
-
--#include <agg/agg_rendering_buffer.h>
--#include <agg/agg_pixfmt_rgb.h>
--#include <agg/agg_pixfmt_rgba.h>
--#include <agg/agg_renderer_base.h>
--#include <agg/agg_color_rgba.h>
--#include <agg/agg_rasterizer_outline_aa.h>
--#include <agg/agg_rasterizer_scanline_aa.h>
--#include <agg/agg_scanline_p.h>
--#include <agg/agg_scanline_u.h>
--#include <agg/agg_renderer_scanline.h>
--#include <agg/agg_renderer_outline_aa.h>
--#include <agg/agg_renderer_primitives.h>
--#include <agg/agg_path_storage.h>
--#include <agg/agg_span_pattern.h>
--#include <agg/agg_span_pattern_rgba.h>
--#include <agg/agg_span_pattern_resample_rgb.h>
--#include <agg/agg_span_pattern_resample_rgba.h>
--#include <agg/agg_span_interpolator_linear.h>
--#include <agg/agg_span_gradient.h>
--#include <agg/agg_span_image_resample_rgb.h>
--#include <agg/agg_span_image_resample_rgba.h>
--#include <agg/agg_image_filters.h>
--#include <agg/agg_dda_line.h>
--#include <agg/agg_scanline_storage_aa.h>
--#include <agg/agg_scanline_storage_bin.h>
--#include <agg/agg_scanline_bin.h>
--#include <agg/agg_path_storage_integer.h>
--#include <agg/agg_conv_contour.h>
--#include <agg/agg_conv_curve.h>
--#include <agg/agg_conv_stroke.h>
--#include <agg/agg_conv_transform.h>
--#include <agg/agg_trans_affine.h>
--#include <agg/agg_font_cache_manager.h>
--#include <agg/agg_bitset_iterator.h>
--#include <agg/agg_path_storage.h>
-+#include <agg2/agg_rendering_buffer.h>
-+#include <agg2/agg_pixfmt_rgb.h>
-+#include <agg2/agg_pixfmt_rgba.h>
-+#include <agg2/agg_renderer_base.h>
-+#include <agg2/agg_color_rgba.h>
-+#include <agg2/agg_rasterizer_outline_aa.h>
-+#include <agg2/agg_rasterizer_scanline_aa.h>
-+#include <agg2/agg_scanline_p.h>
-+#include <agg2/agg_scanline_u.h>
-+#include <agg2/agg_renderer_scanline.h>
-+#include <agg2/agg_renderer_outline_aa.h>
-+#include <agg2/agg_renderer_primitives.h>
-+#include <agg2/agg_path_storage.h>
-+#include <agg2/agg_span_pattern.h>
-+#include <agg2/agg_span_pattern_rgba.h>
-+#include <agg2/agg_span_pattern_resample_rgb.h>
-+#include <agg2/agg_span_pattern_resample_rgba.h>
-+#include <agg2/agg_span_interpolator_linear.h>
-+#include <agg2/agg_span_gradient.h>
-+#include <agg2/agg_span_image_resample_rgb.h>
-+#include <agg2/agg_span_image_resample_rgba.h>
-+#include <agg2/agg_image_filters.h>
-+#include <agg2/agg_dda_line.h>
-+#include <agg2/agg_scanline_storage_aa.h>
-+#include <agg2/agg_scanline_storage_bin.h>
-+#include <agg2/agg_scanline_bin.h>
-+#include <agg2/agg_path_storage_integer.h>
-+#include <agg2/agg_conv_contour.h>
-+#include <agg2/agg_conv_curve.h>
-+#include <agg2/agg_conv_stroke.h>
-+#include <agg2/agg_conv_transform.h>
-+#include <agg2/agg_trans_affine.h>
-+#include <agg2/agg_font_cache_manager.h>
-+#include <agg2/agg_bitset_iterator.h>
-+#include <agg2/agg_path_storage.h>
-
- //////////////////////////////////////////////////////////////////////////////////
- // platform-dependend includes [wrapped into their own namepsaces]
-Index: inc/libs.mk
-===================================================================
-RCS file: /cvs/tools/solenv/inc/libs.mk,v
-retrieving revision 1.94
-diff -u -u -r1.94 libs.mk
---- solenv/inc/libs.mk 2 Nov 2005 13:52:18 -0000 1.94
-+++ solenv/inc/libs.mk 22 Nov 2005 22:52:59 -0000
-@@ -114,7 +114,11 @@
- BASEGFXLIB=-lbasegfx$(OFFICEUPD)$(DLLPOSTFIX)
- CANVASTOOLSLIB=-lcanvastools$(OFFICEUPD)$(DLLPOSTFIX)
- CPPCANVASLIB=-lcppcanvas$(OFFICEUPD)$(DLLPOSTFIX)
-+.IF "$(SYSTEM_AGG)" == "YES"
-+AGGLIB=-lagg
-+.ELSE
- AGGLIB=-lagg$(OFFICEUPD)$(DLLPOSTFIX)
-+.ENDIF
- .IF "$(SYSTEM_FREETYPE)"=="YES"
- FREETYPELIB=$(FREETYPE_LIBS)
- FREETYPELIBST=$(FREETYPE_LIBS)
-Index: configure.in
-===================================================================
-RCS file: /cvs/tools/config_office/configure.in,v
-retrieving revision 1.139
-diff -u -u -r1.139 configure.in
---- config_office/configure.in 25 Oct 2005 11:23:57 -0000 1.139
-+++ config_office/configure.in 22 Nov 2005 22:58:38 -0000
-@@ -266,6 +266,9 @@
- AC_ARG_WITH(system-neon,
- [ --with-system-neon Use neon already on system
- ],,)
-+AC_ARG_WITH(system-agg,
-+[ --with-system-agg Use AGG already on system
-+],,)
- AC_ARG_WITH(system-myspell,
- [ --with-system-myspell Use myspell already on system
- ],,)
-@@ -3207,6 +3210,22 @@
- AC_SUBST(SYSTEM_NEON)
- AC_SUBST(NEON_LIBS)
- AC_SUBST(NEON_CFLAGS)
-+
-+dnl ===================================================================
-+dnl Check for system AGG
-+dnl ===================================================================
-+AC_MSG_CHECKING([which AGG to use])
-+if test -n "$with_system_agg" -o -n "$with_system_libs" && \
-+ test "$with_system_agg" != "no"; then
-+ AC_MSG_RESULT([external])
-+ PKG_CHECK_MODULES(AGG, libagg >= 2.3)
-+ SYSTEM_AGG=YES
-+else
-+ AC_MSG_RESULT([internal])
-+ SYSTEM_AGG=NO
-+ BUILD_TYPE="$BUILD_TYPE AGG"
-+fi
-+AC_SUBST(SYSTEM_AGG)
-
- dnl ===================================================================
- dnl Check for system myspell
-Index: set_soenv.in
-===================================================================
-RCS file: /cvs/tools/config_office/set_soenv.in,v
-retrieving revision 1.78
-diff -u -u -r1.78 set_soenv.in
---- config_office/set_soenv.in 28 Oct 2005 11:59:53 -0000 1.78
-+++ config_office/set_soenv.in 22 Nov 2005 22:58:39 -0000
-@@ -1781,6 +1781,7 @@
- ToFile( "SYSTEM_NEON", "@SYSTEM_NEON@", "e" );
- ToFile( "NEON_LIBS", "@NEON_LIBS@", "e" );
- ToFile( "NEON_CFLAGS", "@NEON_CFLAGS@", "e" );
-+ToFile( "SYSTEM_AGG", "@SYSTEM_AGG@", "e" );
- ToFile( "BUILD_DMAKE", "@BUILD_DMAKE@", "e" );
- ToFile( "USE_XINERAMA", "@USE_XINERAMA@", "e" );
- ToFile( "XINERAMA_LINK", "@XINERAMA_LINK@", "e" );
-Index: prj/build.lst
-===================================================================
-RCS file: /cvs/gsl/canvas/prj/build.lst,v
-retrieving revision 1.6
-diff -u -u -r1.6 build.lst
---- canvas/prj/build.lst 2 Nov 2005 12:46:09 -0000 1.6
-+++ canvas/prj/build.lst 22 Nov 2005 23:00:09 -0000
-@@ -1,4 +1,4 @@
--uc canvas : javaunohelper comphelper cppuhelper offuh unoil tools goodies vcl agg basegfx NULL
-+uc canvas : javaunohelper comphelper cppuhelper offuh unoil tools goodies vcl AGG:agg basegfx NULL
- uc canvas usr1 - all uc_mkout NULL
- uc canvas\source\tools nmake - all uc_tools NULL
- uc canvas\source\vcl nmake - all uc_vcl uc_tools NULL
-Index: prj/d.lst
-===================================================================
-RCS file: /cvs/external/agg/prj/d.lst,v
-retrieving revision 1.2
-diff -u -u -r1.2 d.lst
---- agg/prj/d.lst 4 Nov 2005 08:30:48 -0000 1.2
-+++ agg/prj/d.lst 23 Nov 2005 08:25:38 -0000
-@@ -6,4 +6,6 @@
- ..\%__SRC%\lib\*.a %_DEST%\lib%_EXT%\*.a
- ..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
-
--..\inc\*.h %_DEST%\inc%_EXT%\agg
-+mkdir: %_DEST%\inc%_EXT%\agg2
-+..\inc\*.h %_DEST%\inc%_EXT%\agg2
-+
---- scp2/source/canvas/makefile.mk.orig 2005-12-01 21:47:08.000000000 +0100
-+++ scp2/source/canvas/makefile.mk 2005-12-01 21:48:15.000000000 +0100
-@@ -47,6 +47,10 @@
-
- SCP_PRODUCT_TYPE=osl
-
-+.IF "$(SYSTEM_AGG)" == "YES"
-+SCPDEFS+=-DSYSTEM_AGG
-+.ENDIF
-+
- PARFILES= canvascommons.par \
- directxcanvas.par \
- vclcanvas.par
---- scp2/source/canvas/canvascommons.scp.orig 2005-12-01 21:41:06.000000000 +0100
-+++ scp2/source/canvas/canvascommons.scp 2005-12-01 21:49:58.000000000 +0100
-@@ -37,5 +37,7 @@
-
- STD_LIB_FILE_PATCH(gid_File_Lib_CppCanvas, cppcanvas)
- STD_LIB_FILE_PATCH(gid_File_Lib_CanvasTools, canvastools)
-+#ifndef SYSTEM_AGG
- STD_LIB_FILE_PATCH(gid_File_Lib_Agg, agg)
-+#endif
- SPECIAL_UNO_COMPONENT_LIB_FILE_PATCH(gid_File_CanvasFactory, canvasfactory.uno)
diff --git a/patches/src680/system-bsh-m146.diff b/patches/src680/system-bsh-m146.diff
deleted file mode 100644
index 3e3a3d537..000000000
--- a/patches/src680/system-bsh-m146.diff
+++ /dev/null
@@ -1,132 +0,0 @@
-diff -ru beanshell.orig/makefile.mk beanshell/makefile.mk
---- beanshell/makefile.mk 2005-08-08 08:42:40.000000000 +0100
-+++ beanshell/makefile.mk 2005-08-08 08:43:19.000000000 +0100
-@@ -70,6 +70,12 @@
-
- .INCLUDE : settings.mk
-
-+.IF "$(SYSTEM_BSH)" == "YES"
-+all:
-+ @echo "An already available installation of beanshell should exist on your system."
-+ @echo "Therefore the version provided here does not need to be built in addition."
-+.ENDIF
-+
- # --- Files --------------------------------------------------------
-
- TARFILE_NAME=bsh-2.0b1-src
-diff -ru config_office.orig/configure.in config_office/configure.in
---- config_office/configure.in 2005-08-08 08:34:55.000000000 +0100
-+++ config_office/configure.in 2005-08-08 08:36:50.000000000 +0100
-@@ -260,6 +260,9 @@
- AC_ARG_WITH(system-hsqldb,
- [ --with-system-hsqldb Use hsqldb already on system
- ],,)
-+AC_ARG_WITH(system-beanshell,
-+[ --with-system-beanshell Use beanshell already on system
-+],,)i
- AC_ARG_WITH(system-sablot,
- [ --with-system-sablot Use sablot already on system
- ],,
-@@ -3132,6 +3135,25 @@
- AC_SUBST(HSQLDB_JAR)
-
- dnl ===================================================================
-+dnl Check for system beanshell
-+dnl ===================================================================
-+AC_MSG_CHECKING([which beanshell to use])
-+if test -n "$with_system_beanshell" -o -n "$with_system_libs" && \
-+ test "$with_system_beanshell" != "no"; then
-+ AC_MSG_RESULT([external])
-+ SYSTEM_BSH=YES
-+ BSH_JAR=/usr/share/java/bsh.jar
-+ AC_CHECK_FILE($BSH_JAR, [],
-+ [AC_MSG_ERROR(bsh.jar not found.)], [])
-+else
-+ AC_MSG_RESULT([internal])
-+ SYSTEM_BSH=NO
-+ BUILD_TYPE="$BUILD_TYPE BSH"
-+fi
-+AC_SUBST(SYSTEM_BSH)
-+AC_SUBST(BSH_JAR)
-+
-+dnl ===================================================================
- dnl Check for system sablot
- dnl ===================================================================
- AC_MSG_CHECKING([which sablot to use])
-diff -ru config_office.orig/set_soenv.in config_office/set_soenv.in
---- config_office/set_soenv.in 2005-08-08 08:34:55.000000000 +0100
-+++ config_office/set_soenv.in 2005-08-08 08:37:30.000000000 +0100
-@@ -1763,6 +1763,8 @@
- ToFile( "DB_JAR", "@DB_JAR@", "e" );
- ToFile( "SYSTEM_HSQLDB", "@SYSTEM_HSQLDB@", "e" );
- ToFile( "HSQLDB_JAR", "@HSQLDB_JAR@", "e" );
-+ToFile( "SYSTEM_BSH", "@SYSTEM_BSH@", "e" );
-+ToFile( "BSH_JAR", "@BSH_JAR@", "e" );
- ToFile( "SYSTEM_SABLOT", "@SYSTEM_SABLOT@", "e" );
- ToFile( "SABLOT_LIBS", "@SABLOT_LIBS@", "e" );
- ToFile( "SYSTEM_ODBC_HEADERS","@SYSTEM_ODBC_HEADERS@","e" );
-diff -ru scp2.orig/source/ooo/file_ooo.scp scp2/source/ooo/file_ooo.scp
---- scp2/source/ooo/file_ooo.scp 2005-08-08 08:45:11.000000000 +0100
-+++ scp2/source/ooo/file_ooo.scp 2005-08-08 08:47:36.000000000 +0100
-@@ -624,9 +624,9 @@
- #endif
-
- #ifdef SOLAR_JAVA
--
-+#ifndef SYSTEM_BSH
- STD_JAR_FILE( gid_File_Jar_Bsh, bsh )
--
-+#endif
- #endif
-
- #ifdef SOLAR_JAVA
-diff -ru scp2.orig/source/ooo/makefile.mk scp2/source/ooo/makefile.mk
---- scp2/source/ooo/makefile.mk 2005-08-08 08:45:11.000000000 +0100
-+++ scp2/source/ooo/makefile.mk 2005-08-08 08:47:53.000000000 +0100
-@@ -166,6 +166,10 @@
- SCPDEFS+=-DSYSTEM_HSQLDB
- .ENDIF
-
-+.IF "$(SYSTEM_BSH)" == "YES"
-+SCPDEFS+=-DSYSTEM_BSH
-+.ENDIF
-+
- .IF "$(SYSTEM_ICU)" == "YES"
- SCPDEFS+= -DSYSTEM_ICU
- .ENDIF
-diff -ru scp2.orig/source/ooo/profileitem_ooo.scp scp2/source/ooo/profileitem_ooo.scp
---- scp2/source/ooo/profileitem_ooo.scp 2005-08-08 08:45:11.000000000 +0100
-+++ scp2/source/ooo/profileitem_ooo.scp 2005-08-08 08:46:39.000000000 +0100
-@@ -744,7 +744,7 @@
- #ifndef SYSTEM_HSQLDB
- Value = "${${$ORIGIN/$UNO_SETTINGS:PKG_UserUnoFile}:UNO_JAVA_CLASSPATH} ${${$ORIGIN/$UNO_SETTINGS:PKG_SharedUnoFile}:UNO_JAVA_CLASSPATH} $ORIGIN/classes/jurt.jar $ORIGIN/classes/ridl.jar $ORIGIN/classes/java_uno.jar $ORIGIN/classes/sandbox.jar $ORIGIN/classes/bsh.jar $ORIGIN/classes/classes.jar $ORIGIN/classes/commonwizards.jar $ORIGIN/classes/htmlsoff.jar $ORIGIN/classes/java_uno_accessbridge.jar $ORIGIN/classes/js.jar $ORIGIN/classes/juh.jar $ORIGIN/classes/jut.jar $ORIGIN/classes/letter.jar $ORIGIN/classes/officebean.jar $ORIGIN/classes/query.jar $ORIGIN/classes/report.jar $ORIGIN/classes/ScriptFramework.jar $ORIGIN/classes/ScriptProviderForBeanShell.jar $ORIGIN/classes/ScriptProviderForJava.jar $ORIGIN/classes/ScriptProviderForJavaScript.jar $ORIGIN/classes/tutorial.jar $ORIGIN/classes/unoil.jar $ORIGIN/classes/web.jar $ORIGIN/classes/xmerge.jar $ORIGIN/classes/XMergeBridge.jar $ORIGIN/classes/XSLTFilter.jar $ORIGIN/classes/XSLTValidate.jar $ORIGIN/classes/xt.jar $ORIGIN/classes/activation.jar $ORIGIN/classes/agenda.jar $ORIGIN/classes/aportisdoc.jar $ORIGIN/classes/avmedia.jar $ORIGIN/classes/email.jar $ORIGIN/classes/fax.jar $ORIGIN/classes/pexcel.jar $ORIGIN/classes/pocketword.jar $ORIGIN/classes/mail.jar $ORIGIN/classes/hsqldb.jar $ORIGIN/classes/sdbc_hsqldb.jar";
- #else
-- Value = "${${$ORIGIN/$UNO_SETTINGS:PKG_UserUnoFile}:UNO_JAVA_CLASSPATH} ${${$ORIGIN/$UNO_SETTINGS:PKG_SharedUnoFile}:UNO_JAVA_CLASSPATH} $ORIGIN/classes/jurt.jar $ORIGIN/classes/ridl.jar $ORIGIN/classes/java_uno.jar $ORIGIN/classes/sandbox.jar $ORIGIN/classes/bsh.jar $ORIGIN/classes/classes.jar $ORIGIN/classes/commonwizards.jar $ORIGIN/classes/htmlsoff.jar $ORIGIN/classes/java_uno_accessbridge.jar $ORIGIN/classes/js.jar $ORIGIN/classes/juh.jar $ORIGIN/classes/jut.jar $ORIGIN/classes/letter.jar $ORIGIN/classes/officebean.jar $ORIGIN/classes/query.jar $ORIGIN/classes/report.jar $ORIGIN/classes/ScriptFramework.jar $ORIGIN/classes/ScriptProviderForBeanShell.jar $ORIGIN/classes/ScriptProviderForJava.jar $ORIGIN/classes/ScriptProviderForJavaScript.jar $ORIGIN/classes/tutorial.jar $ORIGIN/classes/unoil.jar $ORIGIN/classes/web.jar $ORIGIN/classes/xmerge.jar $ORIGIN/classes/XMergeBridge.jar $ORIGIN/classes/XSLTFilter.jar $ORIGIN/classes/XSLTValidate.jar $ORIGIN/classes/xt.jar $ORIGIN/classes/activation.jar $ORIGIN/classes/agenda.jar $ORIGIN/classes/aportisdoc.jar $ORIGIN/classes/avmedia.jar $ORIGIN/classes/email.jar $ORIGIN/classes/fax.jar $ORIGIN/classes/pexcel.jar $ORIGIN/classes/pocketword.jar $ORIGIN/classes/mail.jar file:///usr/share/java/hsqldb.jar $ORIGIN/classes/sdbc_hsqldb.jar";
-+ Value = "${${$ORIGIN/$UNO_SETTINGS:PKG_UserUnoFile}:UNO_JAVA_CLASSPATH} ${${$ORIGIN/$UNO_SETTINGS:PKG_SharedUnoFile}:UNO_JAVA_CLASSPATH} $ORIGIN/classes/jurt.jar $ORIGIN/classes/ridl.jar $ORIGIN/classes/java_uno.jar $ORIGIN/classes/sandbox.jar file:///usr/share/java/bsh.jar $ORIGIN/classes/classes.jar $ORIGIN/classes/commonwizards.jar $ORIGIN/classes/htmlsoff.jar $ORIGIN/classes/java_uno_accessbridge.jar $ORIGIN/classes/js.jar $ORIGIN/classes/juh.jar $ORIGIN/classes/jut.jar $ORIGIN/classes/letter.jar $ORIGIN/classes/officebean.jar $ORIGIN/classes/query.jar $ORIGIN/classes/report.jar $ORIGIN/classes/ScriptFramework.jar $ORIGIN/classes/ScriptProviderForBeanShell.jar $ORIGIN/classes/ScriptProviderForJava.jar $ORIGIN/classes/ScriptProviderForJavaScript.jar $ORIGIN/classes/tutorial.jar $ORIGIN/classes/unoil.jar $ORIGIN/classes/web.jar $ORIGIN/classes/XFlatXml.jar $ORIGIN/classes/xmerge.jar $ORIGIN/classes/XMergeBridge.jar $ORIGIN/classes/XSLTFilter.jar $ORIGIN/classes/XSLTValidate.jar $ORIGIN/classes/xt.jar $ORIGIN/classes/activation.jar $ORIGIN/classes/agenda.jar $ORIGIN/classes/aportisdoc.jar $ORIGIN/classes/avmedia.jar $ORIGIN/classes/email.jar $ORIGIN/classes/fax.jar $ORIGIN/classes/pexcel.jar $ORIGIN/classes/pocketword.jar $ORIGIN/classes/mail.jar file:///usr/share/java/hsqldb.jar $ORIGIN/classes/sdbc_hsqldb.jar";
- #endif
- End
-
-diff -ru scripting.orig/java/build.xml scripting/java/build.xml
---- scripting/java/build.xml 2005-08-08 08:52:47.000000000 +0100
-+++ scripting/java/build.xml 2005-08-08 08:55:34.000000000 +0100
-@@ -87,7 +87,7 @@
- <pathelement location="${solar.jar}/juh.jar"/>
- <pathelement location="${solar.jar}/java_uno.jar"/>
- <pathelement location="${solar.jar}/ridl.jar"/>
-- <pathelement location="${solar.jar}/bsh.jar"/>
-+ <pathelement location="/usr/share/java/bsh.jar"/>
- <pathelement location="${solar.jar}/js.jar"/>
- <pathelement location="${jardir}"/>
- </path>
-diff -ru solenv.ori/config/ssrc680.ini solenv/config/ssrc680.ini
---- solenv/config/ssrc680.ini 2005-08-08 08:41:21.000000000 +0100
-+++ solenv/config/ssrc680.ini 2005-08-08 08:41:40.000000000 +0100
-@@ -113,7 +113,7 @@
- BIG_SVX TRUE
- BIG_GOODIES TRUE
- BMP_WRITES_FLAG TRUE
-- BUILD_TYPE SO OOo EXT BINFILTER BITSTREAM_VERA_FONTS CURL DICTIONARIES FREETYPE JPEG LIBXML2 LIBXMLSEC MOZ NAS NEON PYTHON ZLIB SNDFILE PORTAUDIO SANE UNIXODBC X11_EXTENSIONS LIBWPD EPM QADEVOOO ODK MSFONTEXTRACT MATHMLDTD BOOST EXPAT CRASHREP BERKELEYDB SABLOT XALAN SUN HSQLDB
-+ BUILD_TYPE SO OOo EXT BINFILTER BITSTREAM_VERA_FONTS CURL DICTIONARIES FREETYPE JPEG LIBXML2 LIBXMLSEC MOZ NAS NEON PYTHON ZLIB SNDFILE PORTAUDIO SANE UNIXODBC X11_EXTENSIONS LIBWPD EPM QADEVOOO ODK MATHMLDTD MSFONTEXTRACT MATHMLDTD BOOST EXPAT CRASHREP BERKELEYDB SABLOT XALAN SUN HSQLDB BSH
- RES_ENUS TRUE
- RES_GER TRUE
- NO_REC_RES TRUE
diff --git a/patches/src680/system-bsh.diff b/patches/src680/system-bsh.diff
deleted file mode 100644
index bc092784f..000000000
--- a/patches/src680/system-bsh.diff
+++ /dev/null
@@ -1,132 +0,0 @@
-diff -ru beanshell.orig/makefile.mk beanshell/makefile.mk
---- beanshell/makefile.mk 2005-08-08 08:42:40.000000000 +0100
-+++ beanshell/makefile.mk 2005-08-08 08:43:19.000000000 +0100
-@@ -70,6 +70,12 @@
-
- .INCLUDE : settings.mk
-
-+.IF "$(SYSTEM_BSH)" == "YES"
-+all:
-+ @echo "An already available installation of beanshell should exist on your system."
-+ @echo "Therefore the version provided here does not need to be built in addition."
-+.ENDIF
-+
- # --- Files --------------------------------------------------------
-
- TARFILE_NAME=bsh-2.0b1-src
-diff -ru config_office.orig/configure.in config_office/configure.in
---- config_office/configure.in 2005-08-08 08:34:55.000000000 +0100
-+++ config_office/configure.in 2005-08-08 08:36:50.000000000 +0100
-@@ -260,6 +260,9 @@
- AC_ARG_WITH(system-hsqldb,
- [ --with-system-hsqldb Use hsqldb already on system
- ],,)
-+AC_ARG_WITH(system-beanshell,
-+[ --with-system-beanshell Use beanshell already on system
-+],,)i
- AC_ARG_WITH(system-sablot,
- [ --with-system-sablot Use sablot already on system
- ],,
-@@ -3132,6 +3135,25 @@
- AC_SUBST(HSQLDB_JAR)
-
- dnl ===================================================================
-+dnl Check for system beanshell
-+dnl ===================================================================
-+AC_MSG_CHECKING([which beanshell to use])
-+if test -n "$with_system_beanshell" -o -n "$with_system_libs" && \
-+ test "$with_system_beanshell" != "no"; then
-+ AC_MSG_RESULT([external])
-+ SYSTEM_BSH=YES
-+ BSH_JAR=/usr/share/java/bsh.jar
-+ AC_CHECK_FILE($BSH_JAR, [],
-+ [AC_MSG_ERROR(bsh.jar not found.)], [])
-+else
-+ AC_MSG_RESULT([internal])
-+ SYSTEM_BSH=NO
-+ BUILD_TYPE="$BUILD_TYPE BSH"
-+fi
-+AC_SUBST(SYSTEM_BSH)
-+AC_SUBST(BSH_JAR)
-+
-+dnl ===================================================================
- dnl Check for system sablot
- dnl ===================================================================
- AC_MSG_CHECKING([which sablot to use])
-diff -ru config_office.orig/set_soenv.in config_office/set_soenv.in
---- config_office/set_soenv.in 2005-08-08 08:34:55.000000000 +0100
-+++ config_office/set_soenv.in 2005-08-08 08:37:30.000000000 +0100
-@@ -1763,6 +1763,8 @@
- ToFile( "DB_JAR", "@DB_JAR@", "e" );
- ToFile( "SYSTEM_HSQLDB", "@SYSTEM_HSQLDB@", "e" );
- ToFile( "HSQLDB_JAR", "@HSQLDB_JAR@", "e" );
-+ToFile( "SYSTEM_BSH", "@SYSTEM_BSH@", "e" );
-+ToFile( "BSH_JAR", "@BSH_JAR@", "e" );
- ToFile( "SYSTEM_SABLOT", "@SYSTEM_SABLOT@", "e" );
- ToFile( "SABLOT_LIBS", "@SABLOT_LIBS@", "e" );
- ToFile( "SYSTEM_ODBC_HEADERS","@SYSTEM_ODBC_HEADERS@","e" );
-diff -ru scp2.orig/source/ooo/file_ooo.scp scp2/source/ooo/file_ooo.scp
---- scp2/source/ooo/file_ooo.scp 2005-08-08 08:45:11.000000000 +0100
-+++ scp2/source/ooo/file_ooo.scp 2005-08-08 08:47:36.000000000 +0100
-@@ -624,9 +624,9 @@
- #endif
-
- #ifdef SOLAR_JAVA
--
-+#ifndef SYSTEM_BSH
- STD_JAR_FILE( gid_File_Jar_Bsh, bsh )
--
-+#endif
- #endif
-
- #ifdef SOLAR_JAVA
-diff -ru scp2.orig/source/ooo/makefile.mk scp2/source/ooo/makefile.mk
---- scp2/source/ooo/makefile.mk 2005-08-08 08:45:11.000000000 +0100
-+++ scp2/source/ooo/makefile.mk 2005-08-08 08:47:53.000000000 +0100
-@@ -166,6 +166,10 @@
- SCPDEFS+=-DSYSTEM_HSQLDB
- .ENDIF
-
-+.IF "$(SYSTEM_BSH)" == "YES"
-+SCPDEFS+=-DSYSTEM_BSH
-+.ENDIF
-+
- .IF "$(SYSTEM_ICU)" == "YES"
- SCPDEFS+= -DSYSTEM_ICU
- .ENDIF
-diff -ru scp2.orig/source/ooo/profileitem_ooo.scp scp2/source/ooo/profileitem_ooo.scp
---- scp2/source/ooo/profileitem_ooo.scp 2005-08-08 08:45:11.000000000 +0100
-+++ scp2/source/ooo/profileitem_ooo.scp 2005-08-08 08:46:39.000000000 +0100
-@@ -744,7 +744,7 @@
- #ifndef SYSTEM_HSQLDB
- Value = "${${$ORIGIN/$UNO_SETTINGS:PKG_UserUnoFile}:UNO_JAVA_CLASSPATH} ${${$ORIGIN/$UNO_SETTINGS:PKG_SharedUnoFile}:UNO_JAVA_CLASSPATH} $ORIGIN/classes/jurt.jar $ORIGIN/classes/ridl.jar $ORIGIN/classes/java_uno.jar $ORIGIN/classes/sandbox.jar $ORIGIN/classes/bsh.jar $ORIGIN/classes/classes.jar $ORIGIN/classes/commonwizards.jar $ORIGIN/classes/htmlsoff.jar $ORIGIN/classes/java_uno_accessbridge.jar $ORIGIN/classes/js.jar $ORIGIN/classes/juh.jar $ORIGIN/classes/jut.jar $ORIGIN/classes/letter.jar $ORIGIN/classes/officebean.jar $ORIGIN/classes/query.jar $ORIGIN/classes/report.jar $ORIGIN/classes/ScriptFramework.jar $ORIGIN/classes/ScriptProviderForBeanShell.jar $ORIGIN/classes/ScriptProviderForJava.jar $ORIGIN/classes/ScriptProviderForJavaScript.jar $ORIGIN/classes/tutorial.jar $ORIGIN/classes/unoil.jar $ORIGIN/classes/web.jar $ORIGIN/classes/xmerge.jar $ORIGIN/classes/XMergeBridge.jar $ORIGIN/classes/XSLTFilter.jar $ORIGIN/classes/XSLTValidate.jar $ORIGIN/classes/xt.jar $ORIGIN/classes/activation.jar $ORIGIN/classes/agenda.jar $ORIGIN/classes/aportisdoc.jar $ORIGIN/classes/avmedia.jar $ORIGIN/classes/email.jar $ORIGIN/classes/fax.jar $ORIGIN/classes/pexcel.jar $ORIGIN/classes/pocketword.jar $ORIGIN/classes/mail.jar $ORIGIN/classes/hsqldb.jar $ORIGIN/classes/sdbc_hsqldb.jar";
- #else
-- Value = "${${$ORIGIN/$UNO_SETTINGS:PKG_UserUnoFile}:UNO_JAVA_CLASSPATH} ${${$ORIGIN/$UNO_SETTINGS:PKG_SharedUnoFile}:UNO_JAVA_CLASSPATH} $ORIGIN/classes/jurt.jar $ORIGIN/classes/ridl.jar $ORIGIN/classes/java_uno.jar $ORIGIN/classes/sandbox.jar $ORIGIN/classes/bsh.jar $ORIGIN/classes/classes.jar $ORIGIN/classes/commonwizards.jar $ORIGIN/classes/htmlsoff.jar $ORIGIN/classes/java_uno_accessbridge.jar $ORIGIN/classes/js.jar $ORIGIN/classes/juh.jar $ORIGIN/classes/jut.jar $ORIGIN/classes/letter.jar $ORIGIN/classes/officebean.jar $ORIGIN/classes/query.jar $ORIGIN/classes/report.jar $ORIGIN/classes/ScriptFramework.jar $ORIGIN/classes/ScriptProviderForBeanShell.jar $ORIGIN/classes/ScriptProviderForJava.jar $ORIGIN/classes/ScriptProviderForJavaScript.jar $ORIGIN/classes/tutorial.jar $ORIGIN/classes/unoil.jar $ORIGIN/classes/web.jar $ORIGIN/classes/xmerge.jar $ORIGIN/classes/XMergeBridge.jar $ORIGIN/classes/XSLTFilter.jar $ORIGIN/classes/XSLTValidate.jar $ORIGIN/classes/xt.jar $ORIGIN/classes/activation.jar $ORIGIN/classes/agenda.jar $ORIGIN/classes/aportisdoc.jar $ORIGIN/classes/avmedia.jar $ORIGIN/classes/email.jar $ORIGIN/classes/fax.jar $ORIGIN/classes/pexcel.jar $ORIGIN/classes/pocketword.jar $ORIGIN/classes/mail.jar file:///usr/share/java/hsqldb.jar $ORIGIN/classes/sdbc_hsqldb.jar";
-+ Value = "${${$ORIGIN/$UNO_SETTINGS:PKG_UserUnoFile}:UNO_JAVA_CLASSPATH} ${${$ORIGIN/$UNO_SETTINGS:PKG_SharedUnoFile}:UNO_JAVA_CLASSPATH} $ORIGIN/classes/jurt.jar $ORIGIN/classes/ridl.jar $ORIGIN/classes/java_uno.jar $ORIGIN/classes/sandbox.jar file:///usr/share/java/bsh.jar $ORIGIN/classes/classes.jar $ORIGIN/classes/commonwizards.jar $ORIGIN/classes/htmlsoff.jar $ORIGIN/classes/java_uno_accessbridge.jar $ORIGIN/classes/js.jar $ORIGIN/classes/juh.jar $ORIGIN/classes/jut.jar $ORIGIN/classes/letter.jar $ORIGIN/classes/officebean.jar $ORIGIN/classes/query.jar $ORIGIN/classes/report.jar $ORIGIN/classes/ScriptFramework.jar $ORIGIN/classes/ScriptProviderForBeanShell.jar $ORIGIN/classes/ScriptProviderForJava.jar $ORIGIN/classes/ScriptProviderForJavaScript.jar $ORIGIN/classes/tutorial.jar $ORIGIN/classes/unoil.jar $ORIGIN/classes/web.jar $ORIGIN/classes/XFlatXml.jar $ORIGIN/classes/xmerge.jar $ORIGIN/classes/XMergeBridge.jar $ORIGIN/classes/XSLTFilter.jar $ORIGIN/classes/XSLTValidate.jar $ORIGIN/classes/xt.jar $ORIGIN/classes/activation.jar $ORIGIN/classes/agenda.jar $ORIGIN/classes/aportisdoc.jar $ORIGIN/classes/avmedia.jar $ORIGIN/classes/email.jar $ORIGIN/classes/fax.jar $ORIGIN/classes/pexcel.jar $ORIGIN/classes/pocketword.jar $ORIGIN/classes/mail.jar file:///usr/share/java/hsqldb.jar $ORIGIN/classes/sdbc_hsqldb.jar";
- #endif
- End
-
-diff -ru scripting.orig/java/build.xml scripting/java/build.xml
---- scripting/java/build.xml 2005-08-08 08:52:47.000000000 +0100
-+++ scripting/java/build.xml 2005-08-08 08:55:34.000000000 +0100
-@@ -87,7 +87,7 @@
- <pathelement location="${solar.jar}/juh.jar"/>
- <pathelement location="${solar.jar}/java_uno.jar"/>
- <pathelement location="${solar.jar}/ridl.jar"/>
-- <pathelement location="${solar.jar}/bsh.jar"/>
-+ <pathelement location="/usr/share/java/bsh.jar"/>
- <pathelement location="${solar.jar}/js.jar"/>
- <pathelement location="${jardir}"/>
- </path>
-diff -ru solenv.ori/config/ssrc680.ini solenv/config/ssrc680.ini
---- solenv/config/ssrc680.ini 2005-08-08 08:41:21.000000000 +0100
-+++ solenv/config/ssrc680.ini 2005-08-08 08:41:40.000000000 +0100
-@@ -113,7 +113,7 @@
- BIG_SVX TRUE
- BIG_GOODIES TRUE
- BMP_WRITES_FLAG TRUE
-- BUILD_TYPE SO OOo EXT BINFILTER BITSTREAM_VERA_FONTS CURL DICTIONARIES FREETYPE JPEG LIBXML2 LIBXMLSEC MOZ NAS NEON PYTHON ZLIB SNDFILE PORTAUDIO SANE UNIXODBC X11_EXTENSIONS LIBWPD EPM QADEVOOO ODK MSFONTEXTRACT MATHMLDTD BOOST EXPAT CRASHREP BERKELEYDB SABLOT XALAN SUN AGG HSQLDB
-+ BUILD_TYPE SO OOo EXT BINFILTER BITSTREAM_VERA_FONTS CURL DICTIONARIES FREETYPE JPEG LIBXML2 LIBXMLSEC MOZ NAS NEON PYTHON ZLIB SNDFILE PORTAUDIO SANE UNIXODBC X11_EXTENSIONS LIBWPD EPM QADEVOOO ODK MATHMLDTD MSFONTEXTRACT MATHMLDTD BOOST EXPAT CRASHREP BERKELEYDB SABLOT XALAN SUN AGG HSQLDB BSH
- RES_ENUS TRUE
- RES_GER TRUE
- NO_REC_RES TRUE
diff --git a/patches/src680/system-db-4.3-use-lpthread.diff b/patches/src680/system-db-4.3-use-lpthread.diff
deleted file mode 100644
index 54e9c88a0..000000000
--- a/patches/src680/system-db-4.3-use-lpthread.diff
+++ /dev/null
@@ -1,18 +0,0 @@
---- config_office/configure.in.ark 2005-08-01 01:43:28.000000000 +0200
-+++ config_office/configure.in 2005-08-01 01:44:55.000000000 +0200
-@@ -2503,11 +2503,10 @@
- else
- AC_MSG_RESULT([no. you need at least db 4.1])
- fi
-- # does not work :/
-- #AC_CHECK_LIB(db, db_create, [],
-- # [AC_MSG_ERROR([db library not installed or functional])], [])
-- AC_HAVE_LIBRARY(db, [],
-- [AC_MSG_ERROR([db not installed or functional])], [])
-+ dnl Workaround for a db 4.3 bug -- libdb-4.3 uses pthreads without linking to the lib
-+ LIBS="$LIBS -lpthread"
-+ AC_CHECK_LIB(db, db_create, [],
-+ [AC_MSG_ERROR([db library not installed or functional])], [])
- if test "$SOLAR_JAVA" = "TRUE"; then
- if test -z $DB_JAR; then
- # three different naming methods *grumble* Are there even more?
diff --git a/patches/src680/system-hsqldb-m146.diff b/patches/src680/system-hsqldb-m146.diff
deleted file mode 100644
index b7fc5ddf1..000000000
--- a/patches/src680/system-hsqldb-m146.diff
+++ /dev/null
@@ -1,182 +0,0 @@
-Index: connectivity/com/sun/star/sdbcx/comp/hsqldb/makefile.mk
-===================================================================
-RCS file: /cvs/dba/connectivity/com/sun/star/sdbcx/comp/hsqldb/makefile.mk,v
-retrieving revision 1.5
-diff -u -p -r1.5 makefile.mk
---- connectivity/com/sun/star/sdbcx/comp/hsqldb/makefile.mk 15 Mar 2005 09:04:54 -0000 1.5
-+++ connectivity/com/sun/star/sdbcx/comp/hsqldb/makefile.mk 4 Aug 2005 14:57:40 -0000
-@@ -70,7 +70,14 @@ TARGET = sdbc_hsqldb
- # --- Files --------------------------------------------------------
-
-
--JARFILES = ridl.jar unoil.jar jurt.jar juh.jar hsqldb.jar
-+JARFILES = ridl.jar unoil.jar jurt.jar juh.jar
-+
-+.IF "$(SYSTEM_HSQLDB)" == "YES"
-+XCLASSPATH!:=$(XCLASSPATH)$(PATH_SEPERATOR)$(HSQLDB_JAR)
-+.ELSE
-+JARFILES+= hsqldb.jar
-+.ENDIF
-+
- JAVAFILES =\
- NativeInputStreamHelper.java\
- NativeOutputStreamHelper.java\
-Index: hsqldb/makefile.mk
-===================================================================
-RCS file: /cvs/external/hsqldb/makefile.mk,v
-retrieving revision 1.9
-diff -u -p -r1.9 makefile.mk
---- hsqldb/makefile.mk 20 Jul 2005 13:24:41 -0000 1.9
-+++ hsqldb/makefile.mk 4 Aug 2005 14:58:27 -0000
-@@ -69,6 +69,12 @@ TARGET=so_hsqldb
- .INCLUDE : version.mk
- .INCLUDE : minor.mk
-
-+.IF "$(SYSTEM_HSQLDB)" == "YES"
-+all:
-+ @echo "An already available installation of hsqldb should exist on your system."
-+ @echo "Therefore the version provided here does not need to be built in addition."
-+.ENDIF
-+
- .IF "$(SOLAR_JAVA)" != ""
- # --- Files --------------------------------------------------------
-
---- solenv/config/ssrc680.ini 2005-08-04 12:50:37.000000000 +0100
-+++ solenv/config/ssrc680.ini 2005-08-04 12:51:28.000000000 +0100
-@@ -113,7 +113,7 @@
- BIG_SVX TRUE
- BIG_GOODIES TRUE
- BMP_WRITES_FLAG TRUE
-- BUILD_TYPE SO OOo EXT BINFILTER BITSTREAM_VERA_FONTS CURL DICTIONARIES FREETYPE JPEG LIBXML2 LIBXMLSEC MOZ NAS NEON PYTHON ZLIB SNDFILE PORTAUDIO SANE UNIXODBC X11_EXTENSIONS LIBWPD EPM QADEVOOO ODK MSFONTEXTRACT MATHMLDTD BOOST EXPAT CRASHREP BERKELEYDB SABLOT XALAN SUN
-+ BUILD_TYPE SO OOo EXT BINFILTER BITSTREAM_VERA_FONTS CURL DICTIONARIES FREETYPE JPEG LIBXML2 LIBXMLSEC MOZ NAS NEON PYTHON ZLIB SNDFILE PORTAUDIO SANE UNIXODBC X11_EXTENSIONS LIBWPD EPM QADEVOOO ODK MSFONTEXTRACT MATHMLDTD BOOST EXPAT CRASHREP BERKELEYDB SABLOT XALAN SUN HSQLDB
- RES_ENUS TRUE
- RES_GER TRUE
- NO_REC_RES TRUE
-Index: configure.in
-===================================================================
-RCS file: /cvs/tools/config_office/configure.in,v
-retrieving revision 1.128
-diff -u -u -r1.128 configure.in
---- config_office/configure.in 14 Jul 2005 13:45:35 -0000 1.128
-+++ config_office/configure.in 7 Aug 2005 21:13:01 -0000
-@@ -212,6 +212,9 @@
- [ --with-db-jar=JARFILE Specify path to jarfile manually ],
- [ DB_JAR="$withval"
- ])
-+AC_ARG_WITH(system-hsqldb,
-+[ --with-system-hsqldb Use hsqldb already on system
-+],,)
- AC_ARG_WITH(system-sablot,
- [ --with-system-sablot Use sablot already on system
- ],,)
-@@ -2534,6 +2541,40 @@
- AC_SUBST(DB_VERSION)
- AC_SUBST(DB_INCLUDES)
- AC_SUBST(DB_JAR)
-+
-+dnl ===================================================================
-+dnl Check for system hsqldb
-+dnl ===================================================================
-+AC_MSG_CHECKING([which hsqldb to use])
-+if test -n "$with_system_hsqldb" -o -n "$with_system_libs" && \
-+ test "$with_system_hsqldb" != "no"; then
-+ AC_MSG_RESULT([external])
-+ SYSTEM_HSQLDB=YES
-+ HSQLDB_JAR=/usr/share/java/hsqldb.jar
-+ AC_CHECK_FILE($HSQLDB_JAR, [],
-+ [AC_MSG_ERROR(hsqldb.jar not found.)], [])
-+ AC_MSG_CHECKING([whether hsqldb is >= 1.8.0])
-+ export HSQLDB_JAR
-+ if $PERL -e 'use Archive::Zip;
-+ my $file = "$ENV{'HSQLDB_JAR'}";
-+ my $zip = Archive::Zip->new( $file );
-+ my $mf = $zip->contents ( "META-INF/MANIFEST.MF" );
-+ if ( $mf =~ m/Specification-Version: 1.8.*/ ) {
-+ exit 0;
-+ } else {
-+ exit 1;
-+ }'; then
-+ AC_MSG_RESULT([yes])
-+ else
-+ AC_MSG_ERROR([no, hsqldb >= 1.8.0 is needed])
-+ fi
-+else
-+ AC_MSG_RESULT([internal])
-+ SYSTEM_HSQLDB=NO
-+ BUILD_TYPE="$BUILD_TYPE HSQLDB"
-+fi
-+AC_SUBST(SYSTEM_HSQLDB)
-+AC_SUBST(HSQLDB_JAR)
-
- dnl ===================================================================
- dnl Check for system sablot
-Index: set_soenv.in
-===================================================================
-RCS file: /cvs/tools/config_office/set_soenv.in,v
-retrieving revision 1.70
-diff -u -u -r1.70 set_soenv.in
---- config_office/set_soenv.in 14 Jul 2005 13:45:49 -0000 1.70
-+++ config_office/set_soenv.in 7 Aug 2005 21:13:01 -0000
-@@ -1733,6 +1733,8 @@
- ToFile( "DB_VERSION", "@DB_VERSION@", "e" );
- ToFile( "DB_INCLUDES", "@DB_INCLUDES@", "e" );
- ToFile( "DB_JAR", "@DB_JAR@", "e" );
-+ToFile( "SYSTEM_HSQLDB", "@SYSTEM_HSQLDB@", "e" );
-+ToFile( "HSQLDB_JAR", "@HSQLDB_JAR@", "e" );
- ToFile( "SYSTEM_SABLOT", "@SYSTEM_SABLOT@", "e" );
- ToFile( "SABLOT_LIBS", "@SABLOT_LIBS@", "e" );
- ToFile( "SYSTEM_ODBC_HEADERS","@SYSTEM_ODBC_HEADERS@","e" );
-Index: file_ooo.scp
-===================================================================
-RCS file: /cvs/installation/scp2/source/ooo/file_ooo.scp,v
-retrieving revision 1.107
-diff -u -u -r1.107 file_ooo.scp
---- scp2/source/ooo/file_ooo.scp 20 Jul 2005 12:31:10 -0000 1.107
-+++ scp2/source/ooo/file_ooo.scp 7 Aug 2005 23:47:26 -0000
-@@ -722,7 +722,9 @@
- #endif
-
- #ifdef SOLAR_JAVA
-+#ifndef SYSTEM_HSQLDB
- STD_JAR_FILE_PATCH( gid_File_Jar_Hsqldb, hsqldb )
-+#endif
- STD_JAR_FILE( gid_File_Jar_Hsqldb_Sdbc, sdbc_hsqldb )
- #endif
-
-Index: makefile.mk
-===================================================================
-RCS file: /cvs/installation/scp2/source/ooo/makefile.mk,v
-retrieving revision 1.33
-diff -u -u -r1.33 makefile.mk
---- scp2/source/ooo/makefile.mk 17 Jun 2005 14:14:51 -0000 1.33
-+++ scp2/source/ooo/makefile.mk 7 Aug 2005 23:47:26 -0000
-@@ -158,6 +158,10 @@
- SCPDEFS+=-DSYSTEM_MYSPELL
- .ENDIF
-
-+.IF "$(SYSTEM_HSQLDB)" == "YES"
-+SCPDEFS+=-DSYSTEM_HSQLDB
-+.ENDIF
-+
- .IF "$(SYSTEM_ICU)" == "YES"
- SCPDEFS+=-DSYSTEM_ICU
- .ELSE
-Index: scp2/source/ooo/profileitem_ooo.scp
-===================================================================
-RCS file: /cvs/installation/scp2/source/ooo/profileitem_ooo.scp,v
-retrieving revision 1.24
-diff -u -u -r1.24 profileitem_ooo.scp
---- scp2/source/ooo/profileitem_ooo.scp 1 Jul 2005 12:20:55 -0000 1.24
-+++ scp2/source/ooo/profileitem_ooo.scp 7 Aug 2005 23:47:26 -0000
-@@ -741,6 +741,10 @@
- Section = "Bootstrap";
- Order = 7;
- Key = "UNO_JAVA_JFW_CLASSPATH_URLS";
-- Value = "${${$ORIGIN/$UNO_SETTINGS:PKG_UserUnoFile}:UNO_JAVA_CLASSPATH} ${${$ORIGIN/$UNO_SETTINGS:PKG_SharedUnoFile}:UNO_JAVA_CLASSPATH} $ORIGIN/classes/jurt.jar $ORIGIN/classes/ridl.jar $ORIGIN/classes/java_uno.jar $ORIGIN/classes/sandbox.jar $ORIGIN/classes/bsh.jar $ORIGIN/classes/classes.jar $ORIGIN/classes/commonwizards.jar $ORIGIN/classes/htmlsoff.jar $ORIGIN/classes/java_uno_accessbridge.jar $ORIGIN/classes/js.jar $ORIGIN/classes/juh.jar $ORIGIN/classes/jut.jar $ORIGIN/classes/letter.jar $ORIGIN/classes/officebean.jar $ORIGIN/classes/query.jar $ORIGIN/classes/report.jar $ORIGIN/classes/ScriptFramework.jar $ORIGIN/classes/ScriptProviderForBeanShell.jar $ORIGIN/classes/ScriptProviderForJava.jar $ORIGIN/classes/ScriptProviderForJavaScript.jar $ORIGIN/classes/tutorial.jar $ORIGIN/classes/unoil.jar $ORIGIN/classes/web.jar $ORIGIN/classes/xmerge.jar $ORIGIN/classes/XMergeBridge.jar $ORIGIN/classes/XSLTFilter.jar $ORIGIN/classes/XSLTValidate.jar $ORIGIN/classes/xt.jar $ORIGIN/classes/activation.jar $ORIGIN/classes/agenda.jar $ORIGIN/classes/aportisdoc.jar $ORIGIN/classes/avmedia.jar $ORIGIN/classes/email.jar $ORIGIN/classes/fax.jar $ORIGIN/classes/pexcel.jar $ORIGIN/classes/pocketword.jar $ORIGIN/classes/mail.jar $ORIGIN/classes/hsqldb.jar $ORIGIN/classes/sdbc_hsqldb.jar";
-+#ifndef SYSTEM_HSQLDB
-+ Value = "${${$ORIGIN/$UNO_SETTINGS:PKG_UserUnoFile}:UNO_JAVA_CLASSPATH} ${${$ORIGIN/$UNO_SETTINGS:PKG_SharedUnoFile}:UNO_JAVA_CLASSPATH} $ORIGIN/classes/jurt.jar $ORIGIN/classes/ridl.jar $ORIGIN/classes/java_uno.jar $ORIGIN/classes/sandbox.jar $ORIGIN/classes/bsh.jar $ORIGIN/classes/classes.jar $ORIGIN/classes/commonwizards.jar $ORIGIN/classes/htmlsoff.jar $ORIGIN/classes/java_uno_accessbridge.jar $ORIGIN/classes/js.jar $ORIGIN/classes/juh.jar $ORIGIN/classes/jut.jar $ORIGIN/classes/letter.jar $ORIGIN/classes/officebean.jar $ORIGIN/classes/query.jar $ORIGIN/classes/report.jar $ORIGIN/classes/ScriptFramework.jar $ORIGIN/classes/ScriptProviderForBeanShell.jar $ORIGIN/classes/ScriptProviderForJava.jar $ORIGIN/classes/ScriptProviderForJavaScript.jar $ORIGIN/classes/tutorial.jar $ORIGIN/classes/unoil.jar $ORIGIN/classes/web.jar $ORIGIN/classes/xmerge.jar $ORIGIN/classes/XMergeBridge.jar $ORIGIN/classes/XSLTFilter.jar $ORIGIN/classes/XSLTValidate.jar $ORIGIN/classes/xt.jar $ORIGIN/classes/activation.jar $ORIGIN/classes/agenda.jar $ORIGIN/classes/aportisdoc.jar $ORIGIN/classes/avmedia.jar $ORIGIN/classes/email.jar $ORIGIN/classes/fax.jar $ORIGIN/classes/pexcel.jar $ORIGIN/classes/pocketword.jar $ORIGIN/classes/mail.jar $ORIGIN/classes/hsqldb.jar $ORIGIN/classes/sdbc_hsqldb.jar";
-+#else
-+ Value = "${${$ORIGIN/$UNO_SETTINGS:PKG_UserUnoFile}:UNO_JAVA_CLASSPATH} ${${$ORIGIN/$UNO_SETTINGS:PKG_SharedUnoFile}:UNO_JAVA_CLASSPATH} $ORIGIN/classes/jurt.jar $ORIGIN/classes/ridl.jar $ORIGIN/classes/java_uno.jar $ORIGIN/classes/sandbox.jar $ORIGIN/classes/bsh.jar $ORIGIN/classes/classes.jar $ORIGIN/classes/commonwizards.jar $ORIGIN/classes/htmlsoff.jar $ORIGIN/classes/java_uno_accessbridge.jar $ORIGIN/classes/js.jar $ORIGIN/classes/juh.jar $ORIGIN/classes/jut.jar $ORIGIN/classes/letter.jar $ORIGIN/classes/officebean.jar $ORIGIN/classes/query.jar $ORIGIN/classes/report.jar $ORIGIN/classes/ScriptFramework.jar $ORIGIN/classes/ScriptProviderForBeanShell.jar $ORIGIN/classes/ScriptProviderForJava.jar $ORIGIN/classes/ScriptProviderForJavaScript.jar $ORIGIN/classes/tutorial.jar $ORIGIN/classes/unoil.jar $ORIGIN/classes/web.jar $ORIGIN/classes/xmerge.jar $ORIGIN/classes/XMergeBridge.jar $ORIGIN/classes/XSLTFilter.jar $ORIGIN/classes/XSLTValidate.jar $ORIGIN/classes/xt.jar $ORIGIN/classes/activation.jar $ORIGIN/classes/agenda.jar $ORIGIN/classes/aportisdoc.jar $ORIGIN/classes/avmedia.jar $ORIGIN/classes/email.jar $ORIGIN/classes/fax.jar $ORIGIN/classes/pexcel.jar $ORIGIN/classes/pocketword.jar $ORIGIN/classes/mail.jar file:///usr/share/java/hsqldb.jar $ORIGIN/classes/sdbc_hsqldb.jar";
-+#endif
- End
-
diff --git a/patches/src680/system-hsqldb.diff b/patches/src680/system-hsqldb.diff
deleted file mode 100644
index 5634c277c..000000000
--- a/patches/src680/system-hsqldb.diff
+++ /dev/null
@@ -1,163 +0,0 @@
-Index: connectivity/com/sun/star/sdbcx/comp/hsqldb/makefile.mk
-===================================================================
---- connectivity/com/sun/star/sdbcx/comp/hsqldb/makefile.mk.orig 2005-09-08 06:56:11.000000000 +0200
-+++ connectivity/com/sun/star/sdbcx/comp/hsqldb/makefile.mk 2005-12-28 13:10:02.000000000 +0100
-@@ -43,7 +43,14 @@ TARGET = sdbc_hsqldb
- # --- Files --------------------------------------------------------
-
-
--JARFILES = ridl.jar unoil.jar jurt.jar juh.jar hsqldb.jar
-+JARFILES = ridl.jar unoil.jar jurt.jar juh.jar
-+
-+.IF "$(SYSTEM_HSQLDB)" == "YES"
-+XCLASSPATH!:=$(XCLASSPATH)$(PATH_SEPERATOR)$(HSQLDB_JAR)
-+.ELSE
-+JARFILES+= hsqldb.jar
-+.ENDIF
-+
- JAVAFILES =\
- NativeInputStreamHelper.java\
- NativeOutputStreamHelper.java\
-Index: hsqldb/makefile.mk
-===================================================================
---- hsqldb/makefile.mk.orig 2005-12-28 13:08:18.000000000 +0100
-+++ hsqldb/makefile.mk 2005-12-28 13:10:02.000000000 +0100
-@@ -44,6 +44,12 @@ TARGET=so_hsqldb
- .INCLUDE : version.mk
- .INCLUDE : minor.mk
-
-+.IF "$(SYSTEM_HSQLDB)" == "YES"
-+all:
-+ @echo "An already available installation of hsqldb should exist on your system."
-+ @echo "Therefore the version provided here does not need to be built in addition."
-+.ENDIF
-+
- .IF "$(SOLAR_JAVA)" != ""
- # --- Files --------------------------------------------------------
-
-Index: solenv/config/ssrc680.ini
-===================================================================
---- solenv/config/ssrc680.ini.orig 2005-12-15 11:17:55.000000000 +0100
-+++ solenv/config/ssrc680.ini 2005-12-28 13:10:54.000000000 +0100
-@@ -108,7 +108,7 @@ common
- BIG_SVX TRUE
- BIG_GOODIES TRUE
- BMP_WRITES_FLAG TRUE
-- BUILD_TYPE SO OOo EXT BINFILTER BITSTREAM_VERA_FONTS CURL DICTIONARIES FREETYPE JPEG LIBXML2 LIBXMLSEC MOZ NAS NEON PYTHON ZLIB SNDFILE PORTAUDIO SANE UNIXODBC X11_EXTENSIONS LIBWPD EPM QADEVOOO ODK MSFONTEXTRACT MATHMLDTD BOOST EXPAT CRASHREP BERKELEYDB SABLOT XALAN SUN AGG
-+ BUILD_TYPE SO OOo EXT BINFILTER BITSTREAM_VERA_FONTS CURL DICTIONARIES FREETYPE JPEG LIBXML2 LIBXMLSEC MOZ NAS NEON PYTHON ZLIB SNDFILE PORTAUDIO SANE UNIXODBC X11_EXTENSIONS LIBWPD EPM QADEVOOO ODK MSFONTEXTRACT MATHMLDTD BOOST EXPAT CRASHREP BERKELEYDB SABLOT XALAN SUN AGG HSQLDB
- RES_ENUS TRUE
- RES_GER TRUE
- NO_REC_RES TRUE
-Index: config_office/configure.in
-===================================================================
---- config_office/configure.in.orig 2005-12-28 13:08:22.000000000 +0100
-+++ config_office/configure.in 2005-12-28 13:10:02.000000000 +0100
-@@ -236,6 +236,9 @@ AC_ARG_WITH(db-jar,
- [ --with-db-jar=JARFILE Specify path to jarfile manually ],
- [ DB_JAR="$withval"
- ])
-+AC_ARG_WITH(system-hsqldb,
-+[ --with-system-hsqldb Use hsqldb already on system
-+],,)
- AC_ARG_WITH(system-sablot,
- [ --with-system-sablot Use sablot already on system
- ],,)
-@@ -2663,6 +2666,40 @@ AC_SUBST(DB_INCLUDES)
- AC_SUBST(DB_JAR)
-
- dnl ===================================================================
-+dnl Check for system hsqldb
-+dnl ===================================================================
-+AC_MSG_CHECKING([which hsqldb to use])
-+if test -n "$with_system_hsqldb" -o -n "$with_system_libs" && \
-+ test "$with_system_hsqldb" != "no"; then
-+ AC_MSG_RESULT([external])
-+ SYSTEM_HSQLDB=YES
-+ HSQLDB_JAR=/usr/share/java/hsqldb.jar
-+ AC_CHECK_FILE($HSQLDB_JAR, [],
-+ [AC_MSG_ERROR(hsqldb.jar not found.)], [])
-+ AC_MSG_CHECKING([whether hsqldb is >= 1.8.0])
-+ export HSQLDB_JAR
-+ if $PERL -e 'use Archive::Zip;
-+ my $file = "$ENV{'HSQLDB_JAR'}";
-+ my $zip = Archive::Zip->new( $file );
-+ my $mf = $zip->contents ( "META-INF/MANIFEST.MF" );
-+ if ( $mf =~ m/Specification-Version: 1.8.*/ ) {
-+ exit 0;
-+ } else {
-+ exit 1;
-+ }'; then
-+ AC_MSG_RESULT([yes])
-+ else
-+ AC_MSG_ERROR([no, hsqldb >= 1.8.0 is needed])
-+ fi
-+else
-+ AC_MSG_RESULT([internal])
-+ SYSTEM_HSQLDB=NO
-+ BUILD_TYPE="$BUILD_TYPE HSQLDB"
-+fi
-+AC_SUBST(SYSTEM_HSQLDB)
-+AC_SUBST(HSQLDB_JAR)
-+
-+dnl ===================================================================
- dnl Check for system sablot
- dnl ===================================================================
- AC_MSG_CHECKING([which sablot to use])
-Index: config_office/set_soenv.in
-===================================================================
---- config_office/set_soenv.in.orig 2005-12-28 13:08:22.000000000 +0100
-+++ config_office/set_soenv.in 2005-12-28 13:10:02.000000000 +0100
-@@ -1765,6 +1765,8 @@ ToFile( "SYSTEM_DB", "@SYSTEM_DB
- ToFile( "DB_VERSION", "@DB_VERSION@", "e" );
- ToFile( "DB_INCLUDES", "@DB_INCLUDES@", "e" );
- ToFile( "DB_JAR", "@DB_JAR@", "e" );
-+ToFile( "SYSTEM_HSQLDB", "@SYSTEM_HSQLDB@", "e" );
-+ToFile( "HSQLDB_JAR", "@HSQLDB_JAR@", "e" );
- ToFile( "SYSTEM_SABLOT", "@SYSTEM_SABLOT@", "e" );
- ToFile( "SABLOT_LIBS", "@SABLOT_LIBS@", "e" );
- ToFile( "SYSTEM_ODBC_HEADERS","@SYSTEM_ODBC_HEADERS@","e" );
-Index: scp2/source/ooo/file_ooo.scp
-===================================================================
---- scp2/source/ooo/file_ooo.scp.orig 2005-12-28 13:08:23.000000000 +0100
-+++ scp2/source/ooo/file_ooo.scp 2005-12-28 13:10:02.000000000 +0100
-@@ -710,7 +710,9 @@ UNO_JAR_FILE( gid_File_Jar_Web, web )
- #endif
-
- #ifdef SOLAR_JAVA
-+#ifndef SYSTEM_HSQLDB
- STD_JAR_FILE_PATCH( gid_File_Jar_Hsqldb, hsqldb )
-+#endif
- STD_JAR_FILE( gid_File_Jar_Hsqldb_Sdbc, sdbc_hsqldb )
- #endif
-
-Index: scp2/source/ooo/makefile.mk
-===================================================================
---- scp2/source/ooo/makefile.mk.orig 2005-12-28 13:08:22.000000000 +0100
-+++ scp2/source/ooo/makefile.mk 2005-12-28 13:10:02.000000000 +0100
-@@ -142,6 +142,10 @@ SCPDEFS+=-DSYSTEM_XALAN
- SCPDEFS+=-DSYSTEM_XMLSEC
- .ENDIF
-
-+.IF "$(SYSTEM_HSQLDB)" == "YES"
-+SCPDEFS+=-DSYSTEM_HSQLDB
-+.ENDIF
-+
- .IF "$(SYSTEM_ICU)" == "YES"
- SCPDEFS+=-DSYSTEM_ICU
- .ELSE
-Index: scp2/source/ooo/profileitem_ooo.scp
-===================================================================
---- scp2/source/ooo/profileitem_ooo.scp.orig 2005-11-17 19:01:36.000000000 +0100
-+++ scp2/source/ooo/profileitem_ooo.scp 2005-12-28 13:10:02.000000000 +0100
-@@ -758,6 +758,10 @@ ProfileItem gid_Profileitem_Jvmfwk_Uno_J
- Section = "Bootstrap";
- Order = 7;
- Key = "UNO_JAVA_JFW_CLASSPATH_URLS";
-- Value = "${${$ORIGIN/$UNO_SETTINGS:PKG_UserUnoFile}:UNO_JAVA_CLASSPATH} ${${$ORIGIN/$UNO_SETTINGS:PKG_SharedUnoFile}:UNO_JAVA_CLASSPATH} $ORIGIN/classes/jurt.jar $ORIGIN/classes/ridl.jar $ORIGIN/classes/java_uno.jar $ORIGIN/classes/sandbox.jar $ORIGIN/classes/bsh.jar $ORIGIN/classes/classes.jar $ORIGIN/classes/commonwizards.jar $ORIGIN/classes/htmlsoff.jar $ORIGIN/classes/java_uno_accessbridge.jar $ORIGIN/classes/js.jar $ORIGIN/classes/juh.jar $ORIGIN/classes/jut.jar $ORIGIN/classes/letter.jar $ORIGIN/classes/officebean.jar $ORIGIN/classes/query.jar $ORIGIN/classes/report.jar $ORIGIN/classes/ScriptFramework.jar $ORIGIN/classes/ScriptProviderForBeanShell.jar $ORIGIN/classes/ScriptProviderForJava.jar $ORIGIN/classes/ScriptProviderForJavaScript.jar $ORIGIN/classes/tutorial.jar $ORIGIN/classes/unoil.jar $ORIGIN/classes/web.jar $ORIGIN/classes/xmerge.jar $ORIGIN/classes/XMergeBridge.jar $ORIGIN/classes/XSLTFilter.jar $ORIGIN/classes/XSLTValidate.jar $ORIGIN/classes/xt.jar $ORIGIN/classes/activation.jar $ORIGIN/classes/agenda.jar $ORIGIN/classes/aportisdoc.jar $ORIGIN/classes/avmedia.jar $ORIGIN/classes/email.jar $ORIGIN/classes/fax.jar $ORIGIN/classes/pexcel.jar $ORIGIN/classes/pocketword.jar $ORIGIN/classes/mail.jar $ORIGIN/classes/hsqldb.jar $ORIGIN/classes/sdbc_hsqldb.jar";
-+#ifndef SYSTEM_HSQLDB
-+ Value = "${${$ORIGIN/$UNO_SETTINGS:PKG_UserUnoFile}:UNO_JAVA_CLASSPATH} ${${$ORIGIN/$UNO_SETTINGS:PKG_SharedUnoFile}:UNO_JAVA_CLASSPATH} $ORIGIN/classes/jurt.jar $ORIGIN/classes/ridl.jar $ORIGIN/classes/java_uno.jar $ORIGIN/classes/sandbox.jar $ORIGIN/classes/bsh.jar $ORIGIN/classes/classes.jar $ORIGIN/classes/commonwizards.jar $ORIGIN/classes/htmlsoff.jar $ORIGIN/classes/java_uno_accessbridge.jar $ORIGIN/classes/js.jar $ORIGIN/classes/juh.jar $ORIGIN/classes/jut.jar $ORIGIN/classes/letter.jar $ORIGIN/classes/officebean.jar $ORIGIN/classes/query.jar $ORIGIN/classes/report.jar $ORIGIN/classes/ScriptFramework.jar $ORIGIN/classes/ScriptProviderForBeanShell.jar $ORIGIN/classes/ScriptProviderForJava.jar $ORIGIN/classes/ScriptProviderForJavaScript.jar $ORIGIN/classes/tutorial.jar $ORIGIN/classes/unoil.jar $ORIGIN/classes/web.jar $ORIGIN/classes/xmerge.jar $ORIGIN/classes/XMergeBridge.jar $ORIGIN/classes/XSLTFilter.jar $ORIGIN/classes/XSLTValidate.jar $ORIGIN/classes/xt.jar $ORIGIN/classes/activation.jar $ORIGIN/classes/agenda.jar $ORIGIN/classes/aportisdoc.jar $ORIGIN/classes/avmedia.jar $ORIGIN/classes/email.jar $ORIGIN/classes/fax.jar $ORIGIN/classes/pexcel.jar $ORIGIN/classes/pocketword.jar $ORIGIN/classes/mail.jar $ORIGIN/classes/hsqldb.jar $ORIGIN/classes/sdbc_hsqldb.jar";
-+#else
-+ Value = "${${$ORIGIN/$UNO_SETTINGS:PKG_UserUnoFile}:UNO_JAVA_CLASSPATH} ${${$ORIGIN/$UNO_SETTINGS:PKG_SharedUnoFile}:UNO_JAVA_CLASSPATH} $ORIGIN/classes/jurt.jar $ORIGIN/classes/ridl.jar $ORIGIN/classes/java_uno.jar $ORIGIN/classes/sandbox.jar $ORIGIN/classes/bsh.jar $ORIGIN/classes/classes.jar $ORIGIN/classes/commonwizards.jar $ORIGIN/classes/htmlsoff.jar $ORIGIN/classes/java_uno_accessbridge.jar $ORIGIN/classes/js.jar $ORIGIN/classes/juh.jar $ORIGIN/classes/jut.jar $ORIGIN/classes/letter.jar $ORIGIN/classes/officebean.jar $ORIGIN/classes/query.jar $ORIGIN/classes/report.jar $ORIGIN/classes/ScriptFramework.jar $ORIGIN/classes/ScriptProviderForBeanShell.jar $ORIGIN/classes/ScriptProviderForJava.jar $ORIGIN/classes/ScriptProviderForJavaScript.jar $ORIGIN/classes/tutorial.jar $ORIGIN/classes/unoil.jar $ORIGIN/classes/web.jar $ORIGIN/classes/xmerge.jar $ORIGIN/classes/XMergeBridge.jar $ORIGIN/classes/XSLTFilter.jar $ORIGIN/classes/XSLTValidate.jar $ORIGIN/classes/xt.jar $ORIGIN/classes/activation.jar $ORIGIN/classes/agenda.jar $ORIGIN/classes/aportisdoc.jar $ORIGIN/classes/avmedia.jar $ORIGIN/classes/email.jar $ORIGIN/classes/fax.jar $ORIGIN/classes/pexcel.jar $ORIGIN/classes/pocketword.jar $ORIGIN/classes/mail.jar file:///usr/share/java/hsqldb.jar $ORIGIN/classes/sdbc_hsqldb.jar";
-+#endif
- End
-
diff --git a/patches/src680/system-icu.diff b/patches/src680/system-icu.diff
deleted file mode 100644
index 87536c503..000000000
--- a/patches/src680/system-icu.diff
+++ /dev/null
@@ -1,416 +0,0 @@
-diff -ru config_office.orig/configure.in config_office/configure.in
---- config_office/configure.in 2005-09-09 08:23:03.000000000 +0100
-+++ config_office/configure.in 2005-09-09 08:24:46.000000000 +0100
-@@ -226,9 +226,9 @@
- AC_ARG_WITH(system-python,
- [ --with-system-python Use python already on system
- ],,)
--#AC_ARG_WITH(system-icu,
--#[ --with-system-icu Use icu already on system
--#],,)
-+AC_ARG_WITH(system-icu,
-+[ --with-system-icu Use icu already on system
-+],,)
- AC_ARG_WITH(system-db,
- [ --with-system-db Use berkeley db already on system
- ],,)
-@@ -2965,32 +2965,32 @@
- fi
- AC_SUBST(SYSTEM_SANE_HEADER)
-
--# DISABLED; INCOMPLETE
- dnl ===================================================================
- dnl Check for system icu
- dnl ===================================================================
--#AC_MSG_CHECKING([which icu to use])
--#if test -n "$with_system_icu" -o -n "$with_system_libs" && \
--# test "$with_system_icu" != "no"; then
--# AC_MSG_RESULT([external])
--# SYSTEM_ICU=YES
--# AC_MSG_CHECKING([for unicode/rbbi.h])
--# AC_TRY_CPP(unicode/rbbi.h, AC_MSG_RESULT([checked.]), AC_MSG_ERROR([icu headers not found.]))
--# AC_PATH_PROG(SYSTEM_GENBRK, genbrk)
--# if test -z "$SYSTEM_GENBRK"; then
--# AC_MSG_ERROR([\"genbrk\" not found in \$PATH, install the icu development tool \"genbrk"\])
--# fi
--# AC_PATH_PROG(SYSTEM_GENCCODE, genccode)
--# if test -z "$SYSTEM_GENCCODE"; then
--# AC_MSG_ERROR([\"genccode\" not found in \$PATH, install the icu development tool \"genccode"\])
--# fi
--#else
--# AC_MSG_RESULT([internal])
--# SYSTEM_ICU=NO
--#fi
--#AC_SUBST(SYSTEM_ICU)
--#AC_SUBST(SYSTEM_GENBRK)
--#AC_SUBST(SYSTEM_GENCCODE)
-+AC_MSG_CHECKING([which icu to use])
-+if test -n "$with_system_icu" -o -n "$with_system_libs" && \
-+ test "$with_system_icu" != "no"; then
-+ AC_MSG_RESULT([external])
-+ SYSTEM_ICU=YES
-+ AC_MSG_CHECKING([for unicode/rbbi.h])
-+ AC_TRY_CPP(unicode/rbbi.h, AC_MSG_RESULT([checked.]), AC_MSG_ERROR([icu headers not found.]))
-+ AC_PATH_PROG(SYSTEM_GENBRK, genbrk)
-+ if test -z "$SYSTEM_GENBRK"; then
-+ AC_MSG_ERROR([\"genbrk\" not found in \$PATH, install the icu development tool \"genbrk"\])
-+ fi
-+ AC_PATH_PROG(SYSTEM_GENCCODE, genccode)
-+ if test -z "$SYSTEM_GENCCODE"; then
-+ AC_MSG_ERROR([\"genccode\" not found in \$PATH, install the icu development tool \"genccode"\])
-+ fi
-+else
-+ AC_MSG_RESULT([internal])
-+ SYSTEM_ICU=NO
-+ BUILD_TYPE="$BUILD_TYPE ICU"
-+fi
-+AC_SUBST(SYSTEM_ICU)
-+AC_SUBST(SYSTEM_GENBRK)
-+AC_SUBST(SYSTEM_GENCCODE)
-
- dnl ===================================================================
- dnl Checks for libraries.
-diff -ru config_office.orig/set_soenv.in config_office/set_soenv.in
---- config_office/set_soenv.in 2005-09-09 08:23:03.000000000 +0100
-+++ config_office/set_soenv.in 2005-09-09 08:25:28.000000000 +0100
-@@ -1731,9 +1731,9 @@
- ToFile( "SYSTEM_PYTHON", "@SYSTEM_PYTHON@", "e" );
- ToFile( "PYTHON_CFLAGS", "@PYTHON_CFLAGS@", "e" );
- ToFile( "PYTHON_LIBS", "@PYTHON_LIBS@", "e" );
--#ToFile( "SYSTEM_ICU", "@SYSTEM_ICU@", "e" );
--#ToFile( "SYSTEM_GENBRK", "@SYSTEM_GENBRK@", "e" );
--#ToFile( "SYSTEM_GENCCODE", "@SYSTEM_GENCCODE@", "e" );
-+ToFile( "SYSTEM_ICU", "@SYSTEM_ICU@", "e" );
-+ToFile( "SYSTEM_GENBRK", "@SYSTEM_GENBRK@", "e" );
-+ToFile( "SYSTEM_GENCCODE", "@SYSTEM_GENCCODE@", "e" );
- ToFile( "SYSTEM_JPEG", "@SYSTEM_JPEG@", "e" );
- ToFile( "SYSTEM_FREETYPE", "@SYSTEM_FREETYPE@", "e" );
- ToFile( "FREETYPE_CFLAGS", "@FREETYPE_CFLAGS@", "e" );
-Index: inc/collator_unicode.hxx
-===================================================================
-RCS file: /cvs/l10n/i18npool/inc/collator_unicode.hxx,v
-retrieving revision 1.7
-diff -u -p -u -r1.7 collator_unicode.hxx
---- i18npool/inc/collator_unicode.hxx 21 Jul 2005 14:26:51 -0000 1.7
-+++ i18npool/inc/collator_unicode.hxx 13 Sep 2005 13:49:44 -0000
-@@ -110,6 +110,7 @@ protected:
- const sal_uInt8 *rulesImage;
- private:
- RuleBasedCollator *collator;
-+ RuleBasedCollator *ucacollator;
- };
-
- #define COLLATOR( algorithm ) \
-Index: source/breakiterator/makefile.mk
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/breakiterator/makefile.mk,v
-retrieving revision 1.7
-diff -u -p -u -r1.7 makefile.mk
---- i18npool/source/breakiterator/makefile.mk 23 Mar 2005 10:51:00 -0000 1.7
-+++ i18npool/source/breakiterator/makefile.mk 13 Sep 2005 13:49:44 -0000
-@@ -79,6 +79,8 @@ MY_BRK_TXTFILES:=$(shell ls data/*.txt)
- # insert "OpenOffice" as icu package name in front of the name of each rule file for searching on application provided data
- MY_BRK_BRKFILES:=$(subst,data/,$(MISC)$/OpenOffice_ $(MY_BRK_TXTFILES:s/.txt/.brk/))
-
-+MY_BRK_NAMEDBRKFILES:=$(subst,data/,OpenOffice_ $(MY_BRK_TXTFILES:s/.txt/.brk/))
-+
- # OpenOffice_icu_dat.c is a generated file from the rule file list by gencmn
- MY_MISC_CXXFILES := \
- $(MISC)$/OpenOffice_icu_dat.c \
-@@ -107,8 +109,8 @@ APP1STDLIBS = $(SALLIB) \
-
- # 'gencmn', 'genbrk' and 'genccode' are tools generated and delivered by icu project to process icu breakiterator rules.
- $(MISC)$/OpenOffice_icu_dat.c : $(MY_BRK_BRKFILES)
-- +$(WRAPCMD) $(SOLARBINDIR)$/gencmn -e OpenOffice_icu -n OpenOffice_icu -S -d $(MISC) O $(mktmp $(MY_BRK_BRKFILES:t"\n"))
-+ +$(WRAPCMD) gencmn -e OpenOffice_icu -n OpenOffice_icu -S -d $(MISC) O $(mktmp $(MY_BRK_NAMEDBRKFILES:t"\n"))
- $(MISC)$/OpenOffice_%.brk : data/%.txt
-- +$(WRAPCMD) $(SOLARBINDIR)$/genbrk -r $< -o $(MISC)$/OpenOffice_$*.brk
-+ +$(WRAPCMD) genbrk -r $< -o $(MISC)$/OpenOffice_$*.brk
- $(MISC)$/%_brk.c : $(MISC)$/%.brk
-- +$(WRAPCMD) $(SOLARBINDIR)$/genccode -d $(MISC)$ $(MISC)$/$*.brk
-+ +$(WRAPCMD) genccode -e OpenOffice_icu -n OpenOffice_icu -d $(MISC)$ $(MISC)$/$*.brk
-Index: source/collator/collator_unicode.cxx
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/collator/collator_unicode.cxx,v
-retrieving revision 1.7
-diff -u -p -u -r1.7 collator_unicode.cxx
---- i18npool/source/collator/collator_unicode.cxx 30 Jul 2004 14:39:21 -0000 1.7
-+++ i18npool/source/collator/collator_unicode.cxx 13 Sep 2005 13:49:44 -0000
-@@ -74,12 +76,14 @@ Collator_Unicode::Collator_Unicode()
- {
- implementationName = "com.sun.star.i18n.Collator_Unicode";
- collator = NULL;
-+ ucacollator = NULL;
- rulesImage = NULL;
- }
-
- Collator_Unicode::~Collator_Unicode()
- {
- if (collator) delete collator;
-+ if (ucacollator) delete ucacollator;
- }
-
- sal_Int32 SAL_CALL
-@@ -103,7 +107,14 @@ Collator_Unicode::loadCollatorAlgorithm(
- // load ICU collator
- UErrorCode status = U_ZERO_ERROR;
- if (rulesImage) {
-+ ucacollator = (RuleBasedCollator*) icu::Collator::createInstance("", status);
-+ if (! U_SUCCESS(status))
-+ throw RuntimeException();
-+#ifdef SYSTEM_ICU
-+ collator = new RuleBasedCollator(rulesImage, -1, ucacollator, status);
-+#else
- collator = new RuleBasedCollator(rulesImage, status);
-+#endif
- } else {
- // load ICU collator
- /** ICU collators are loaded using a locale only.
-Index: source/hhconvdic.cxx
-===================================================================
-RCS file: /cvs/sw/linguistic/source/hhconvdic.cxx,v
-retrieving revision 1.4
-diff -u -p -u -r1.4 hhconvdic.cxx
---- linguistic/source/hhconvdic.cxx 26 Nov 2004 14:29:09 -0000 1.4
-+++ linguistic/source/hhconvdic.cxx 10 Sep 2005 07:47:25 -0000
-@@ -60,7 +60,7 @@
- ************************************************************************/
-
- #ifndef USCRIPT_H
--#include <external/unicode/uscript.h>
-+#include <unicode/uscript.h>
- #endif
-
- #ifndef _LANG_HXX //autogen wg. LANGUAGE_ENGLISH_US
-diff -ru scp2.orig/prj/build.lst scp2/prj/build.lst
---- scp2/prj/build.lst 2005-09-09 10:00:30.000000000 +0100
-+++ scp2/prj/build.lst 2005-09-09 08:37:48.000000000 +0100
-@@ -1,4 +1,4 @@
--cp scp2 : setup_native transex3 PYTHON:python icu NULL
-+cp scp2 : setup_native transex3 PYTHON:python ICU:icu NULL
- cp scp2 usr1 - all cp_mkout NULL
- cp scp2\macros nmake - all cp_langmacros NULL
- cp scp2\source\activex nmake - all cp_activex cp_langmacros NULL
-diff -ru scp2.orig/source/ooo/file_library_ooo.scp scp2/source/ooo/file_library_ooo.scp
---- scp2/source/ooo/file_library_ooo.scp 2005-09-09 10:00:18.000000000 +0100
-+++ scp2/source/ooo/file_library_ooo.scp 2005-09-09 10:04:07.000000000 +0100
-@@ -801,6 +801,8 @@
- Styles = (PACKED,PATCH);
- End
-
-+#ifndef SYSTEM_ICU
-+
- File gid_File_Lib_Icudata
- TXT_FILE_BODY;
- #ifdef UNX
-@@ -845,6 +847,8 @@
- Styles = (PACKED);
- End
-
-+#endif
-+
- File gid_File_Lib_Iiopbrdg
- TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
-diff -ru scp2.orig/source/ooo/makefile.mk scp2/source/ooo/makefile.mk
---- scp2/source/ooo/makefile.mk 2005-09-09 10:00:18.000000000 +0100
-+++ scp2/source/ooo/makefile.mk 2005-09-09 13:00:17.000000000 +0100
-@@ -68,7 +68,6 @@
- # --- Settings -----------------------------------------------------
-
- .INCLUDE : settings.mk
--.INCLUDE : icuversion.mk
-
- .IF "$(ENABLE_CRASHDUMP)"!=""
- SCPDEFS+=-DENABLE_CRASHDUMP
-@@ -170,10 +169,15 @@
- SCPDEFS+=-DSYSTEM_BSH
- .ENDIF
-
-+.IF "$(SYSTEM_ICU)" == "YES"
-+SCPDEFS+=-DSYSTEM_ICU
-+.ELSE
-+.INCLUDE : icuversion.mk
- SCPDEFS+=\
- -DICU_MAJOR=$(ICU_MAJOR) \
- -DICU_MINOR=$(ICU_MINOR) \
- -DICU_MICRO=$(ICU_MICRO)
-+.ENDIF
-
- SCP_PRODUCT_TYPE=osl
-
-diff -ru scp2.orig/source/ooo/shortcut_ooo.scp scp2/source/ooo/shortcut_ooo.scp
---- scp2/source/ooo/shortcut_ooo.scp 2005-09-09 10:00:18.000000000 +0100
-+++ scp2/source/ooo/shortcut_ooo.scp 2005-09-09 10:05:21.000000000 +0100
-@@ -193,6 +193,7 @@
- #endif
-
- #ifdef UNX
-+#ifndef SYSTEM_ICU
-
- Shortcut gid_Shortcut_Lib_Icudata_0
- FileID = gid_File_Lib_Icudata;
-@@ -201,10 +202,6 @@
- Styles = (NETWORK,RELATIVE);
- End
-
--#endif
--
--#ifdef UNX
--
- Shortcut gid_Shortcut_Lib_Icudata_1
- FileID = gid_File_Lib_Icudata;
- Dir = gid_Dir_Program;
-@@ -212,10 +209,6 @@
- Styles = (NETWORK,RELATIVE);
- End
-
--#endif
--
--#ifdef UNX
--
- Shortcut gid_Shortcut_Lib_Icui18n_0
- FileID = gid_File_Lib_Icui18n;
- Dir = gid_Dir_Program;
-@@ -223,10 +216,6 @@
- Styles = (NETWORK,RELATIVE);
- End
-
--#endif
--
--#ifdef UNX
--
- Shortcut gid_Shortcut_Lib_Icui18n_1
- FileID = gid_File_Lib_Icui18n;
- Dir = gid_Dir_Program;
-@@ -234,10 +223,6 @@
- Styles = (NETWORK,RELATIVE);
- End
-
--#endif
--
--#ifdef UNX
--
- Shortcut gid_Shortcut_Lib_Icule_0
- FileID = gid_File_Lib_Icule;
- Dir = gid_Dir_Program;
-@@ -245,10 +230,6 @@
- Styles = (NETWORK,RELATIVE);
- End
-
--#endif
--
--#ifdef UNX
--
- Shortcut gid_Shortcut_Lib_Icule_1
- FileID = gid_File_Lib_Icule;
- Dir = gid_Dir_Program;
-@@ -256,10 +237,6 @@
- Styles = (NETWORK,RELATIVE);
- End
-
--#endif
--
--#ifdef UNX
--
- Shortcut gid_Shortcut_Lib_Icuuc_0
- FileID = gid_File_Lib_Icuuc;
- Dir = gid_Dir_Program;
-@@ -267,10 +244,6 @@
- Styles = (NETWORK,RELATIVE);
- End
-
--#endif
--
--#ifdef UNX
--
- Shortcut gid_Shortcut_Lib_Icuuc_1
- FileID = gid_File_Lib_Icuuc;
- Dir = gid_Dir_Program;
-@@ -279,6 +252,7 @@
- End
-
- #endif
-+#endif
-
- #ifdef UNX
-
---- vcl/prj/build.lst 2005-09-13 08:51:51.000000000 +0100
-+++ vcl/prj/build.lst 2005-09-09 08:37:54.000000000 +0100
-@@ -1,4 +1,4 @@
--vc vcl : BOOST:boost NAS:nas FREETYPE:freetype psprint rsc sot ucbhelper unotools rvpapi icu i18npool unoil ridljar X11_EXTENSIONS:x11_extensions offuh basegfx SNDFILE:sndfile PORTAUDIO:portaudio transex3 NULL
-+vc vcl : BOOST:boost NAS:nas FREETYPE:freetype psprint rsc sot ucbhelper unotools rvpapi ICU:icu i18npool unoil ridljar X11_EXTENSIONS:x11_extensions offuh basegfx SNDFILE:sndfile PORTAUDIO:portaudio transex3 NULL
- vc vcl usr1 - all vc_mkout NULL
- vc vcl\source\unotypes nmake - all vc_unot NULL
- vc vcl\source\glyphs nmake - all vc_glyphs vc_unot NULL
-Index: prj/build.lst
-===================================================================
-RCS file: /cvs/l10n/i18npool/prj/build.lst,v
-retrieving revision 1.18
-diff -u -r1.18 build.lst
---- i18npool/prj/build.lst 1 Nov 2005 14:51:56 -0000 1.18
-+++ i18npool/prj/build.lst 5 Nov 2005 16:13:03 -0000
-@@ -1,4 +1,4 @@
--inp i18npool : bridges sax stoc comphelper icu i18nutil regexp NULL
-+inp i18npool : bridges sax stoc comphelper ICU:icu i18nutil regexp NULL
- inp i18npool usr1 - all inp_mkout NULL
- inp i18npool\source\unotypes nmake - all inp_utypes NULL
- inp i18npool\source\registerservices nmake - all inp_rserv inp_utypes NULL
-Index: source/breakiterator/breakiterator_unicode.cxx
-===================================================================
-RCS file: /cvs/l10n/i18npool/source/breakiterator/breakiterator_unicode.cxx,v
-retrieving revision 1.20
-diff -u -r1.20 breakiterator_unicode.cxx
---- i18npool/source/breakiterator/breakiterator_unicode.cxx 17 Oct 2005 15:42:30 -0000 1.20
-+++ i18npool/source/breakiterator/breakiterator_unicode.cxx 5 Nov 2005 16:14:56 -0000
-@@ -42,7 +42,9 @@
- extern const char OpenOffice_icu_dat[];
- U_CDECL_END
-
--using namespace ::com::sun::star::uno;
-+using ::com::sun::star::uno::RuntimeException;
-+using ::com::sun::star::uno::Reference;
-+using ::com::sun::star::uno::Sequence;
- using namespace ::com::sun::star::lang;
- using namespace ::rtl;
-
-@@ -103,13 +105,21 @@
- if ( !U_SUCCESS(status) ) throw ERROR;
-
- status = U_ZERO_ERROR;
-- icuBI->aBreakIterator = new RuleBasedBreakIterator(udata_open("OpenOffice", "brk",
-+ UDataMemory *pData;
-+ if (!rLocale.Language.getLength())
-+ pData=0;
-+ else
-+ pData = udata_open("OpenOffice_icu/OpenOffice", "brk",
- OUStringToOString(OUString::createFromAscii(rule)+OUString::createFromAscii("_")+rLocale.Language,
-- RTL_TEXTENCODING_ASCII_US).getStr(), &status), status);
-- if (!U_SUCCESS(status) ) {
-+ RTL_TEXTENCODING_ASCII_US).getStr(), &status);
-+
-+ icuBI->aBreakIterator = (pData && U_SUCCESS(status)) ? new RuleBasedBreakIterator(pData, status) : 0;
-+
-+ if ((!U_SUCCESS(status) || !icuBI->aBreakIterator)) {
- status = U_ZERO_ERROR;
-- icuBI->aBreakIterator = new RuleBasedBreakIterator(udata_open("OpenOffice", "brk", rule, &status), status);
-- if (!U_SUCCESS(status) ) icuBI->aBreakIterator=NULL;
-+ pData = udata_open("OpenOffice_icu/OpenOffice", "brk", rule, &status);
-+ icuBI->aBreakIterator = (pData && U_SUCCESS(status)) ? new RuleBasedBreakIterator(pData, status) : 0;
-+ if (!U_SUCCESS(status) ) icuBI->aBreakIterator=NULL;
- }
- }
-
---- i18npool/source/collator/makefile.mk.orig 2005-12-07 21:29:09.591358096 +0100
-+++ i18npool/source/collator/makefile.mk 2005-12-07 21:29:33.881665408 +0100
-@@ -88,6 +88,10 @@
- $(ICUINLIB) \
- $(ICUUCLIB)
-
-+.IF "$(SYSTEM_ICU)" == "YES"
-+CFLAGS += -DSYSTEM_ICU
-+.ENDIF
-+
- # --- Targets ------------------------------------------------------
-
- .INCLUDE : target.mk
diff --git a/patches/src680/system-xmlsec.diff b/patches/src680/system-xmlsec.diff
deleted file mode 100644
index 531bb290d..000000000
--- a/patches/src680/system-xmlsec.diff
+++ /dev/null
@@ -1,2302 +0,0 @@
-Index: configure.in
-===================================================================
-RCS file: /cvs/tools/config_office/configure.in,v
-retrieving revision 1.126
-diff -u -p -r1.126 configure.in
---- config_office/configure.in 21 Jun 2005 10:13:47 -0000 1.126
-+++ config_office/configure.in 8 Jul 2005 11:13:49 -0000
-@@ -248,6 +248,9 @@ AC_ARG_WITH(system-myspell,
- AC_ARG_WITH(system-mythes,
- [ --with-system-mythes Use mythes already on system
- ],,)
-+AC_ARG_WITH(system-xmlsec,
-+[ --with-system-xmlsec Use xmlsec1 already on system
-+],,)
- AC_ARG_WITH(system-altlinuxhyph,
- [ --with-system-altlinuxhyph Use ALTLinuxhyph already on system
- ],,)
-@@ -2415,11 +2418,10 @@ if test -n "$with_system_libxml" -o -n "
- AC_MSG_RESULT([external])
- SYSTEM_LIBXML=YES
- PKG_CHECK_MODULES( LIBXML, libxml-2.0 >= 2.0 )
-- BUILD_TYPE="$BUILD_TYPE LIBXMLSEC"
- else
- AC_MSG_RESULT([internal])
- SYSTEM_LIBXML=NO
-- BUILD_TYPE="$BUILD_TYPE LIBXML2 LIBXMLSEC"
-+ BUILD_TYPE="$BUILD_TYPE LIBXML2"
- fi
- AC_SUBST(SYSTEM_LIBXML)
- AC_SUBST(LIBXML_CFLAGS)
-@@ -3084,6 +3086,22 @@ AC_SUBST(NEON_LIBS)
- AC_SUBST(NEON_CFLAGS)
-
- dnl ===================================================================
-+dnl Check for system xmlsec1
-+dnl ===================================================================
-+AC_MSG_CHECKING([which xmlsec1 to use])
-+if test -n "$with_system_xmlsec" -o -n "$with_system_libs" && \
-+ test "$with_system_xmlsec" != "no"; then
-+ AC_MSG_RESULT([external])
-+ PKG_CHECK_MODULES(XMLSEC, xmlsec1-nss >= 1.2.8)
-+ SYSTEM_XMLSEC=YES
-+else
-+ AC_MSG_RESULT([internal])
-+ SYSTEM_XMLSEC=NO
-+ BUILD_TYPE="$BUILD_TYPE LIBXMLSEC"
-+fi
-+AC_SUBST(SYSTEM_XMLSEC)
-+
-+dnl ===================================================================
- dnl Check for system myspell
- dnl ===================================================================
- AC_MSG_CHECKING([which myspell to use])
-Index: set_soenv.in
-===================================================================
-RCS file: /cvs/tools/config_office/set_soenv.in,v
-retrieving revision 1.68
-diff -u -p -r1.68 set_soenv.in
---- config_office/set_soenv.in 20 Jun 2005 15:18:00 -0000 1.68
-+++ config_office/set_soenv.in 8 Jul 2005 11:13:50 -0000
-@@ -1755,6 +1755,7 @@ ToFile( "MYSPELL_CFLAGS", "@MYSPELL_C
- ToFile( "MYSPELL_LIBS", "@MYSPELL_LIBS@", "e" );
- ToFile( "SYSTEM_HYPH", "@SYSTEM_HYPH@", "e" );
- ToFile( "SYSTEM_MYTHES", "@SYSTEM_MYTHES@", "e" );
-+ToFile( "SYSTEM_XMLSEC", "@SYSTEM_XMLSEC@", "e" );
- ToFile( "PAM_LINK", "@PAM_LINK@", "e" );
- ToFile( "CRYPT_LINK", "@CRYPT_LINK@", "e" );
- ToFile( "GXX_INCLUDE_PATH", "@GXX_INCLUDE_PATH@", "e" );
-Index: source/ooo/file_library_ooo.scp
-===================================================================
-RCS file: /cvs/installation/scp2/source/ooo/file_library_ooo.scp,v
-retrieving revision 1.107
-diff -u -p -r1.107 file_library_ooo.scp
---- scp2/source/ooo/file_library_ooo.scp 17 Jun 2005 09:33:15 -0000 1.107
-+++ scp2/source/ooo/file_library_ooo.scp 8 Jul 2005 20:34:24 -0000
-@@ -2196,6 +2196,7 @@ File gid_File_Lib_XSec_XMLSecurity
- RegistryID = gid_Starregistry_Services_Rdb;
- End
-
-+#ifndef SYSTEM_XMLSEC
- File gid_File_Lib_LibXMLSec_xmlseccore
- TXT_FILE_BODY;
- #ifdef UNX
-@@ -2232,6 +2233,7 @@ File gid_File_Lib_LibXMLSec_xmlsecnss
- Styles = (PACKED);
- End
- #endif
-+#endif
- //i20156 - end
- #endif
-
-Index: source/ooo/makefile.mk
-===================================================================
-RCS file: /cvs/installation/scp2/source/ooo/makefile.mk,v
-retrieving revision 1.33
-diff -u -p -r1.33 makefile.mk
---- scp2/source/ooo/makefile.mk 17 Jun 2005 14:14:51 -0000 1.33
-+++ scp2/source/ooo/makefile.mk 8 Jul 2005 20:34:25 -0000
-@@ -158,6 +158,10 @@ SCPDEFS+=-DSYSTEM_PORTAUDIO
- SCPDEFS+=-DSYSTEM_MYSPELL
- .ENDIF
-
-+.IF "$(SYSTEM_XMLSEC)" == "YES"
-+SCPDEFS+=-DSYSTEM_XMLSEC
-+.ENDIF
-+
- .IF "$(SYSTEM_ICU)" == "YES"
- SCPDEFS+= -DSYSTEM_ICU
- .ENDIF
-Index: source/ooo/shortcut_ooo.scp
-===================================================================
-RCS file: /cvs/installation/scp2/source/ooo/shortcut_ooo.scp,v
-retrieving revision 1.18
-diff -u -p -r1.18 shortcut_ooo.scp
---- scp2/source/ooo/shortcut_ooo.scp 15 Jun 2005 10:27:53 -0000 1.18
-+++ scp2/source/ooo/shortcut_ooo.scp 8 Jul 2005 20:34:26 -0000
-@@ -447,6 +447,7 @@ End
-
- //i38417
- #ifndef WITHOUT_MOZILLA
-+#ifndef SYSTEM_XMLSEC
- #ifdef UNX
- Shortcut gid_Shortcut_Lib_LibXMLSec_xmlseccore
- FileID = gid_File_Lib_LibXMLSec_xmlseccore;
-@@ -483,6 +484,7 @@ Shortcut gid_Shortcut_Lib_LibXMLSec_xmls
- End
- #endif
- #endif
-+#endif
- //i38417 -end-
-
-
-Index: source/xmlsec/makefile.mk
-===================================================================
-RCS file: /cvs/xml/xmlsecurity/source/xmlsec/makefile.mk,v
-retrieving revision 1.7
-diff -u -p -r1.7 makefile.mk
---- xmlsecurity/source/xmlsec/makefile.mk 30 Mar 2005 11:36:18 -0000 1.7
-+++ xmlsecurity/source/xmlsec/makefile.mk 8 Jul 2005 10:58:48 -0000
-@@ -78,6 +78,11 @@ ENABLE_EXCEPTIONS = TRUE
- CFLAGS+=-DSYSTEM_LIBXML $(LIBXML_CFLAGS)
- .ENDIF
-
-+.IF "$(SYSTEM_XMLSEC)" == "YES"
-+PKGCONFIG_MODULES=xmlsec1
-+.INCLUDE: pkg_config.mk
-+.ENDIF
-+
- .IF "$(CRYPTO_ENGINE)" == "mscrypto"
- CDEFS += -DXMLSEC_CRYPTO_MSCRYPTO -DXMLSEC_NO_XSLT
- .ELSE
-Index: source/xmlsec/nss/makefile.mk
-===================================================================
-RCS file: /cvs/xml/xmlsecurity/source/xmlsec/nss/makefile.mk,v
-retrieving revision 1.5
-diff -u -p -r1.5 makefile.mk
---- xmlsecurity/source/xmlsec/nss/makefile.mk 18 May 2005 09:58:04 -0000 1.5
-+++ xmlsecurity/source/xmlsec/nss/makefile.mk 8 Jul 2005 10:58:48 -0000
-@@ -89,6 +89,12 @@ LIBTARGET=NO
- @echo "No mozilla -> no nss -> no libxmlsec -> no xmlsecurity/nss"
- .ENDIF
-
-+.IF "$(SYSTEM_XMLSEC)" == "YES"
-+PKGCONFIG_MODULES=xmlsec1
-+.INCLUDE: pkg_config.mk
-+CFLAGS+=-DSYSTEM_XMLSEC
-+.ENDIF
-+
- .IF "$(SYSTEM_MOZILLA)" != "YES"
- MOZ_INC = $(SOLARVERSION)$/$(INPATH)$/inc$(UPDMINOREXT)$/mozilla
- NSS_INC = $(MOZ_INC)$/nss
-@@ -167,6 +173,10 @@ SLOFILES = \
- $(SLO)$/seinitializer_nssimpl.obj \
- $(SLO)$/xsec_nss.obj
-
-+.IF "$(SYSTEM_XMLSEC)" == "YES"
-+ SLOFILES+=\
-+ $(SLO)$/systemxmlsec.obj
-+.ENDIF
-
- .ENDIF
-
-Index: source/xmlsec/nss/securityenvironment_nssimpl.cxx
-===================================================================
-RCS file: /cvs/xml/xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.cxx,v
-retrieving revision 1.12
-diff -u -p -r1.12 securityenvironment_nssimpl.cxx
---- xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.cxx 18 May 2005 09:58:37 -0000 1.12
-+++ xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.cxx 8 Jul 2005 10:58:48 -0000
-@@ -89,6 +89,10 @@
- #include <xmlsec/base64.h>
- #include <xmlsec/strings.h>
-
-+#ifdef SYSTEM_XMLSEC
-+#include "systemxmlsec.hxx"
-+#endif
-+
- #include <tools/string.hxx>
-
- #include <comphelper/processfactory.hxx>
---- /dev/null 2005-07-07 13:52:51.556710750 +0100
-+++ xmlsecurity/source/xmlsec/nss/systemxmlsec.hxx 2005-07-08 11:27:56.000000000 +0100
-@@ -0,0 +1,238 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www./license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+extern "C"
-+{
-+
-+ XMLSEC_CRYPTO_EXPORT xmlSecKeysMngrPtr
-+ xmlSecNssAppliedKeysMngrCreate(
-+ PK11SlotInfo* slot ,
-+ CERTCertDBHandle* handler
-+ ) ;
-+
-+ XMLSEC_CRYPTO_EXPORT int
-+ xmlSecNssAppliedKeysMngrSymKeyLoad(
-+ xmlSecKeysMngrPtr mngr ,
-+ PK11SymKey* symKey
-+ ) ;
-+
-+ XMLSEC_CRYPTO_EXPORT int
-+ xmlSecNssAppliedKeysMngrPubKeyLoad(
-+ xmlSecKeysMngrPtr mngr ,
-+ SECKEYPublicKey* pubKey
-+ ) ;
-+
-+ XMLSEC_CRYPTO_EXPORT int
-+ xmlSecNssAppliedKeysMngrPriKeyLoad(
-+ xmlSecKeysMngrPtr mngr ,
-+ SECKEYPrivateKey* priKey
-+ ) ;
-+
-+#define xmlSecNssKeySlotListId xmlSecNssKeySlotListGetKlass()
-+XMLSEC_CRYPTO_EXPORT xmlSecPtrListId xmlSecNssKeySlotListGetKlass( void ) ;
-+
-+/*******************************************
-+ * KeySlot interfaces
-+ *******************************************/
-+/**
-+ * Internal NSS key slot data
-+ * @mechanismList: the mechanisms that the slot bound with.
-+ * @slot: the pkcs slot
-+ *
-+ * This context is located after xmlSecPtrList
-+ */
-+typedef struct _xmlSecNssKeySlot xmlSecNssKeySlot ;
-+typedef struct _xmlSecNssKeySlot* xmlSecNssKeySlotPtr ;
-+
-+struct _xmlSecNssKeySlot {
-+ CK_MECHANISM_TYPE_PTR mechanismList ; /* mech. array, NULL ternimated */
-+ PK11SlotInfo* slot ;
-+} ;
-+
-+XMLSEC_CRYPTO_EXPORT int
-+xmlSecNssKeySlotSetMechList(
-+ xmlSecNssKeySlotPtr keySlot ,
-+ CK_MECHANISM_TYPE_PTR mechanismList
-+) ;
-+
-+XMLSEC_CRYPTO_EXPORT int
-+xmlSecNssKeySlotEnableMech(
-+ xmlSecNssKeySlotPtr keySlot ,
-+ CK_MECHANISM_TYPE mechanism
-+) ;
-+
-+XMLSEC_CRYPTO_EXPORT int
-+xmlSecNssKeySlotDisableMech(
-+ xmlSecNssKeySlotPtr keySlot ,
-+ CK_MECHANISM_TYPE mechanism
-+) ;
-+
-+XMLSEC_CRYPTO_EXPORT CK_MECHANISM_TYPE_PTR
-+xmlSecNssKeySlotGetMechList(
-+ xmlSecNssKeySlotPtr keySlot
-+) ;
-+
-+XMLSEC_CRYPTO_EXPORT int
-+xmlSecNssKeySlotSetSlot(
-+ xmlSecNssKeySlotPtr keySlot ,
-+ PK11SlotInfo* slot
-+) ;
-+
-+XMLSEC_CRYPTO_EXPORT int
-+xmlSecNssKeySlotInitialize(
-+ xmlSecNssKeySlotPtr keySlot ,
-+ PK11SlotInfo* slot
-+) ;
-+
-+XMLSEC_CRYPTO_EXPORT void
-+xmlSecNssKeySlotFinalize(
-+ xmlSecNssKeySlotPtr keySlot
-+) ;
-+
-+XMLSEC_CRYPTO_EXPORT PK11SlotInfo*
-+xmlSecNssKeySlotGetSlot(
-+ xmlSecNssKeySlotPtr keySlot
-+) ;
-+
-+XMLSEC_CRYPTO_EXPORT xmlSecNssKeySlotPtr
-+xmlSecNssKeySlotCreate() ;
-+
-+XMLSEC_CRYPTO_EXPORT int
-+xmlSecNssKeySlotCopy(
-+ xmlSecNssKeySlotPtr newKeySlot ,
-+ xmlSecNssKeySlotPtr keySlot
-+) ;
-+
-+XMLSEC_CRYPTO_EXPORT xmlSecNssKeySlotPtr
-+xmlSecNssKeySlotDuplicate(
-+ xmlSecNssKeySlotPtr keySlot
-+) ;
-+
-+XMLSEC_CRYPTO_EXPORT void
-+xmlSecNssKeySlotDestroy(
-+ xmlSecNssKeySlotPtr keySlot
-+) ;
-+
-+XMLSEC_CRYPTO_EXPORT int
-+xmlSecNssKeySlotBindMech(
-+ xmlSecNssKeySlotPtr keySlot ,
-+ CK_MECHANISM_TYPE type
-+) ;
-+
-+XMLSEC_CRYPTO_EXPORT int
-+xmlSecNssKeySlotSupportMech(
-+ xmlSecNssKeySlotPtr keySlot ,
-+ CK_MECHANISM_TYPE type
-+) ;
-+
-+
-+/************************************************************************
-+ * PKCS#11 crypto token interfaces
-+ *
-+ * A PKCS#11 slot repository will be defined internally. From the
-+ * repository, a user can specify a particular slot for a certain crypto
-+ * mechanism.
-+ *
-+ * In some situation, some cryptographic operation should act in a user
-+ * designated devices. The interfaces defined here provide the way. If
-+ * the user do not initialize the repository distinctly, the interfaces
-+ * use the default functions provided by NSS itself.
-+ *
-+ ************************************************************************/
-+/**
-+ * Initialize NSS pkcs#11 slot repository
-+ *
-+ * Returns 0 if success or -1 if an error occurs.
-+ */
-+XMLSEC_CRYPTO_EXPORT int xmlSecNssSlotInitialize( void ) ;
-+
-+/**
-+ * Shutdown and destroy NSS pkcs#11 slot repository
-+ */
-+XMLSEC_CRYPTO_EXPORT void xmlSecNssSlotShutdown() ;
-+
-+/**
-+ * Get PKCS#11 slot handler
-+ * @type the mechanism that the slot must support.
-+ *
-+ * Returns a pointer to PKCS#11 slot or NULL if an error occurs.
-+ *
-+ * Notes: The returned handler must be destroied distinctly.
-+ */
-+XMLSEC_CRYPTO_EXPORT PK11SlotInfo* xmlSecNssSlotGet( CK_MECHANISM_TYPE type ) ;
-+
-+/**
-+ * Adopt a pkcs#11 slot with a mechanism into the repository
-+ * @slot: the pkcs#11 slot.
-+ * @mech: the mechanism.
-+ *
-+ * If @mech is available( @mech != CKM_INVALID_MECHANISM ), every operation with
-+ * this mechanism only can perform on the @slot.
-+ *
-+ * Returns 0 if success or -1 if an error occurs.
-+ */
-+XMLSEC_CRYPTO_EXPORT int xmlSecNssSlotAdopt( PK11SlotInfo* slot, CK_MECHANISM_TYPE mech ) ;
-+
-+XMLSEC_CRYPTO_EXPORT int xmlSecNssKeysStoreAdoptKeySlot(xmlSecKeyStorePtr store,
-+ xmlSecNssKeySlotPtr keySlot);
-+
-+XMLSEC_CRYPTO_EXPORT xmlSecKeyDataPtr xmlSecNssSymKeyDataKeyAdopt( PK11SymKey* symKey ) ;
-+}
---- /dev/null 2005-07-07 13:52:51.556710750 +0100
-+++ xmlsecurity/source/xmlsec/nss/systemxmlsec.cxx 2005-07-08 11:39:54.000000000 +0100
-@@ -0,0 +1,1843 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www./license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include <nspr.h>
-+#include <nss.h>
-+#include <pk11func.h>
-+#include <cert.h>
-+#include <keyhi.h>
-+
-+#include <xmlsec/xmlsec.h>
-+#include <xmlsec/keys.h>
-+#include <xmlsec/transforms.h>
-+#include <xmlsec/errors.h>
-+#include <xmlsec/xmltree.h>
-+
-+#include <xmlsec/nss/crypto.h>
-+#include <xmlsec/nss/pkikeys.h>
-+#ifdef SYSTEM_XMLSEC
-+#include <xmlsec/version.h>
-+#if XMLSEC_VERSION_MAJOR >= 2 || \
-+ (XMLSEC_VERSION_MAJOR == 1 && XMLSEC_VERSION_MINOR == 2 && XMLSEC_VERSION_SUBMINOR >= 9)
-+#include <xmlsec/keysmngr.h>
-+#endif
-+#endif
-+#include <xmlsec/nss/keysstore.h>
-+
-+#include "systemxmlsec.hxx"
-+
-+extern "C"
-+{
-+
-+
-+/**
-+ * Internal NSS key store context
-+ *
-+ * This context is located after xmlSecKeyStore
-+ */
-+typedef struct _xmlSecNssKeysStoreCtx xmlSecNssKeysStoreCtx ;
-+typedef struct _xmlSecNssKeysStoreCtx* xmlSecNssKeysStoreCtxPtr ;
-+
-+struct _xmlSecNssKeysStoreCtx {
-+ xmlSecPtrListPtr keyList ;
-+ xmlSecPtrListPtr slotList ;
-+} ;
-+
-+#define xmlSecNssKeysStoreSize \
-+ ( sizeof( xmlSecKeyStore ) + sizeof( xmlSecNssKeysStoreCtx ) )
-+
-+#define xmlSecNssKeysStoreGetCtx( data ) \
-+ ( ( xmlSecNssKeysStoreCtxPtr )( ( ( xmlSecByte* )( data ) ) + sizeof( xmlSecKeyStore ) ) )
-+
-+int xmlSecNssKeysStoreAdoptKeySlot(
-+ xmlSecKeyStorePtr store ,
-+ xmlSecNssKeySlotPtr keySlot
-+) {
-+ xmlSecNssKeysStoreCtxPtr context = NULL ;
-+
-+ xmlSecAssert2( xmlSecKeyStoreCheckId( store , xmlSecNssKeysStoreId ) , -1 ) ;
-+ xmlSecAssert2( xmlSecKeyStoreCheckSize( store , xmlSecNssKeysStoreSize ) , -1 ) ;
-+
-+ context = xmlSecNssKeysStoreGetCtx( store ) ;
-+ if( context == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ xmlSecErrorsSafeString( xmlSecKeyStoreGetName( store ) ) ,
-+ "xmlSecNssKeysStoreGetCtx" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return -1 ;
-+ }
-+
-+ if( context->slotList == NULL ) {
-+ if( ( context->slotList = xmlSecPtrListCreate( xmlSecNssKeySlotListId ) ) == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ xmlSecErrorsSafeString( xmlSecKeyStoreGetName( store ) ) ,
-+ "xmlSecPtrListCreate" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return -1 ;
-+ }
-+ }
-+
-+ if( !xmlSecPtrListCheckId( context->slotList , xmlSecNssKeySlotListId ) ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ xmlSecErrorsSafeString( xmlSecKeyStoreGetName( store ) ) ,
-+ "xmlSecPtrListCheckId" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return -1 ;
-+ }
-+
-+ if( xmlSecPtrListAdd( context->slotList , keySlot ) < 0 ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ xmlSecErrorsSafeString( xmlSecKeyStoreGetName( store ) ) ,
-+ "xmlSecPtrListAdd" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return -1 ;
-+ }
-+
-+ return 0 ;
-+}
-+
-+int xmlSecNssKeysStoreAdoptKey(
-+ xmlSecKeyStorePtr store ,
-+ xmlSecKeyPtr key
-+) {
-+ xmlSecNssKeysStoreCtxPtr context = NULL ;
-+
-+ xmlSecAssert2( xmlSecKeyStoreCheckId( store , xmlSecNssKeysStoreId ) , -1 ) ;
-+ xmlSecAssert2( xmlSecKeyStoreCheckSize( store , xmlSecNssKeysStoreSize ) , -1 ) ;
-+
-+ context = xmlSecNssKeysStoreGetCtx( store ) ;
-+ if( context == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ xmlSecErrorsSafeString( xmlSecKeyStoreGetName( store ) ) ,
-+ "xmlSecNssKeysStoreGetCtx" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return -1 ;
-+ }
-+
-+ if( context->keyList == NULL ) {
-+ if( ( context->keyList = xmlSecPtrListCreate( xmlSecKeyPtrListId ) ) == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ xmlSecErrorsSafeString( xmlSecKeyStoreGetName( store ) ) ,
-+ "xmlSecPtrListCreate" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return -1 ;
-+ }
-+ }
-+
-+ if( !xmlSecPtrListCheckId( context->keyList , xmlSecKeyPtrListId ) ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ xmlSecErrorsSafeString( xmlSecKeyStoreGetName( store ) ) ,
-+ "xmlSecPtrListCheckId" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return -1 ;
-+ }
-+
-+ if( xmlSecPtrListAdd( context->keyList , key ) < 0 ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ xmlSecErrorsSafeString( xmlSecKeyStoreGetName( store ) ) ,
-+ "xmlSecPtrListAdd" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return -1 ;
-+ }
-+
-+ return 0 ;
-+}
-+
-+/**
-+ * xmlSecKeyStoreInitializeMethod:
-+ * @store: the store.
-+ *
-+ * Keys store specific initialization method.
-+ *
-+ * Returns 0 on success or a negative value if an error occurs.
-+ */
-+static int
-+xmlSecNssKeysStoreInitialize(
-+ xmlSecKeyStorePtr store
-+) {
-+ xmlSecNssKeysStoreCtxPtr context = NULL ;
-+
-+ xmlSecAssert2( xmlSecKeyStoreCheckId( store , xmlSecNssKeysStoreId ) , -1 ) ;
-+ xmlSecAssert2( xmlSecKeyStoreCheckSize( store , xmlSecNssKeysStoreSize ) , -1 ) ;
-+
-+ context = xmlSecNssKeysStoreGetCtx( store ) ;
-+ if( context == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ xmlSecErrorsSafeString( xmlSecKeyStoreGetName( store ) ) ,
-+ "xmlSecNssKeysStoreGetCtx" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return -1 ;
-+ }
-+
-+ context->keyList = NULL ;
-+ context->slotList = NULL ;
-+
-+ return 0 ;
-+}
-+
-+/**
-+ * xmlSecKeyStoreFinalizeMethod:
-+ * @store: the store.
-+ *
-+ * Keys store specific finalization (destroy) method.
-+ */
-+void
-+xmlSecNssKeysStoreFinalize(
-+ xmlSecKeyStorePtr store
-+) {
-+ xmlSecNssKeysStoreCtxPtr context = NULL ;
-+
-+ xmlSecAssert( xmlSecKeyStoreCheckId( store , xmlSecNssKeysStoreId ) ) ;
-+ xmlSecAssert( xmlSecKeyStoreCheckSize( store , xmlSecNssKeysStoreSize ) ) ;
-+
-+ context = xmlSecNssKeysStoreGetCtx( store ) ;
-+ if( context == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ xmlSecErrorsSafeString( xmlSecKeyStoreGetName( store ) ) ,
-+ "xmlSecNssKeysStoreGetCtx" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return ;
-+ }
-+
-+ if( context->keyList != NULL ) {
-+ xmlSecPtrListDestroy( context->keyList ) ;
-+ context->keyList = NULL ;
-+ }
-+
-+ if( context->slotList != NULL ) {
-+ xmlSecPtrListDestroy( context->slotList ) ;
-+ context->slotList = NULL ;
-+ }
-+}
-+
-+xmlSecKeyPtr
-+xmlSecNssKeysStoreFindKeyFromSlot(
-+ PK11SlotInfo* slot,
-+ const xmlChar* name,
-+ xmlSecKeyInfoCtxPtr keyInfoCtx
-+) {
-+ xmlSecKeyPtr key = NULL ;
-+ xmlSecKeyDataPtr data = NULL ;
-+ int length ;
-+
-+ xmlSecAssert2( slot != NULL , NULL ) ;
-+ xmlSecAssert2( name != NULL , NULL ) ;
-+ xmlSecAssert2( keyInfoCtx != NULL , NULL ) ;
-+
-+ if( ( keyInfoCtx->keyReq.keyType & xmlSecKeyDataTypeSymmetric ) == xmlSecKeyDataTypeSymmetric ) {
-+ PK11SymKey* symKey ;
-+ PK11SymKey* curKey ;
-+
-+ /* Find symmetric key from the slot by name */
-+ symKey = PK11_ListFixedKeysInSlot( slot , ( char* )name , NULL ) ;
-+ for( curKey = symKey ; curKey != NULL ; curKey = PK11_GetNextSymKey( curKey ) ) {
-+ /* Check the key request */
-+ length = PK11_GetKeyLength( curKey ) ;
-+ length *= 8 ;
-+ if( ( keyInfoCtx->keyReq.keyBitsSize > 0 ) &&
-+ ( length > 0 ) &&
-+ ( length < keyInfoCtx->keyReq.keyBitsSize ) )
-+ continue ;
-+
-+ /* We find a eligible key */
-+ data = xmlSecNssSymKeyDataKeyAdopt( curKey ) ;
-+ if( data == NULL ) {
-+ /* Do nothing */
-+ }
-+ break ;
-+ }
-+
-+ /* Destroy the sym key list */
-+ for( curKey = symKey ; curKey != NULL ; ) {
-+ symKey = curKey ;
-+ curKey = PK11_GetNextSymKey( symKey ) ;
-+ PK11_FreeSymKey( symKey ) ;
-+ }
-+ } else if( ( keyInfoCtx->keyReq.keyType & xmlSecKeyDataTypePublic ) == xmlSecKeyDataTypePublic ) {
-+ SECKEYPublicKeyList* pubKeyList ;
-+ SECKEYPublicKey* pubKey ;
-+ SECKEYPublicKeyListNode* curPub ;
-+
-+ /* Find asymmetric key from the slot by name */
-+ pubKeyList = PK11_ListPublicKeysInSlot( slot , ( char* )name ) ;
-+ pubKey = NULL ;
-+ curPub = PUBKEY_LIST_HEAD(pubKeyList);
-+ for( ; !PUBKEY_LIST_END(curPub, pubKeyList) ; curPub = PUBKEY_LIST_NEXT( curPub ) ) {
-+ /* Check the key request */
-+ length = SECKEY_PublicKeyStrength( curPub->key ) ;
-+ length *= 8 ;
-+ if( ( keyInfoCtx->keyReq.keyBitsSize > 0 ) &&
-+ ( length > 0 ) &&
-+ ( length < keyInfoCtx->keyReq.keyBitsSize ) )
-+ continue ;
-+
-+ /* We find a eligible key */
-+ pubKey = curPub->key ;
-+ break ;
-+ }
-+
-+ if( pubKey != NULL ) {
-+ data = xmlSecNssPKIAdoptKey( NULL, pubKey ) ;
-+ if( data == NULL ) {
-+ /* Do nothing */
-+ }
-+ }
-+
-+ /* Destroy the public key list */
-+ SECKEY_DestroyPublicKeyList( pubKeyList ) ;
-+ } else if( ( keyInfoCtx->keyReq.keyType & xmlSecKeyDataTypePrivate ) == xmlSecKeyDataTypePrivate ) {
-+ SECKEYPrivateKeyList* priKeyList = NULL ;
-+ SECKEYPrivateKey* priKey = NULL ;
-+ SECKEYPrivateKeyListNode* curPri ;
-+
-+ /* Find asymmetric key from the slot by name */
-+ priKeyList = PK11_ListPrivKeysInSlot( slot , ( char* )name , NULL ) ;
-+ priKey = NULL ;
-+ curPri = PRIVKEY_LIST_HEAD(priKeyList);
-+ for( ; !PRIVKEY_LIST_END(curPri, priKeyList) ; curPri = PRIVKEY_LIST_NEXT( curPri ) ) {
-+ /* Check the key request */
-+ length = PK11_SignatureLen( curPri->key ) ;
-+ length *= 8 ;
-+ if( ( keyInfoCtx->keyReq.keyBitsSize > 0 ) &&
-+ ( length > 0 ) &&
-+ ( length < keyInfoCtx->keyReq.keyBitsSize ) )
-+ continue ;
-+
-+ /* We find a eligible key */
-+ priKey = curPri->key ;
-+ break ;
-+ }
-+
-+ if( priKey != NULL ) {
-+ data = xmlSecNssPKIAdoptKey( priKey, NULL ) ;
-+ if( data == NULL ) {
-+ /* Do nothing */
-+ }
-+ }
-+
-+ /* Destroy the private key list */
-+ SECKEY_DestroyPrivateKeyList( priKeyList ) ;
-+ }
-+
-+ /* If we have gotten the key value */
-+ if( data != NULL ) {
-+ if( ( key = xmlSecKeyCreate() ) == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ "xmlSecKeyCreate" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+
-+ xmlSecKeyDataDestroy( data ) ;
-+ return NULL ;
-+ }
-+
-+ if( xmlSecKeySetValue( key , data ) < 0 ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ "xmlSecKeySetValue" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+
-+ xmlSecKeyDestroy( key ) ;
-+ xmlSecKeyDataDestroy( data ) ;
-+ return NULL ;
-+ }
-+ }
-+
-+ return(key);
-+}
-+
-+/**
-+ * xmlSecKeyStoreFindKeyMethod:
-+ * @store: the store.
-+ * @name: the desired key name.
-+ * @keyInfoCtx: the pointer to key info context.
-+ *
-+ * Keys store specific find method. The caller is responsible for destroying
-+ * the returned key using #xmlSecKeyDestroy method.
-+ *
-+ * Returns the pointer to a key or NULL if key is not found or an error occurs.
-+ */
-+static xmlSecKeyPtr
-+xmlSecNssKeysStoreFindKey(
-+ xmlSecKeyStorePtr store ,
-+ const xmlChar* name ,
-+ xmlSecKeyInfoCtxPtr keyInfoCtx
-+) {
-+ xmlSecNssKeysStoreCtxPtr context = NULL ;
-+ xmlSecKeyPtr key = NULL ;
-+ xmlSecNssKeySlotPtr keySlot = NULL ;
-+ xmlSecSize pos ;
-+ xmlSecSize size ;
-+
-+ xmlSecAssert2( xmlSecKeyStoreCheckId( store , xmlSecNssKeysStoreId ) , NULL ) ;
-+ xmlSecAssert2( xmlSecKeyStoreCheckSize( store , xmlSecNssKeysStoreSize ) , NULL ) ;
-+ xmlSecAssert2( keyInfoCtx != NULL , NULL ) ;
-+
-+ context = xmlSecNssKeysStoreGetCtx( store ) ;
-+ if( context == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ xmlSecErrorsSafeString( xmlSecKeyStoreGetName( store ) ) ,
-+ "xmlSecNssKeysStoreGetCtx" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return NULL ;
-+ }
-+
-+ /*-
-+ * Look for key at keyList at first.
-+ */
-+ if( context->keyList != NULL ) {
-+ size = xmlSecPtrListGetSize( context->keyList ) ;
-+ for( pos = 0 ; pos < size ; pos ++ ) {
-+ key = ( xmlSecKeyPtr )xmlSecPtrListGetItem( context->keyList , pos ) ;
-+ if( key != NULL && xmlSecKeyMatch( key , name , &( keyInfoCtx->keyReq ) ) ) {
-+ return xmlSecKeyDuplicate( key ) ;
-+ }
-+ }
-+ }
-+
-+ /*-
-+ * Find the key from slotList
-+ */
-+ if( context->slotList != NULL ) {
-+ PK11SlotInfo* slot = NULL ;
-+
-+ size = xmlSecPtrListGetSize( context->slotList ) ;
-+ for( pos = 0 ; pos < size ; pos ++ ) {
-+ keySlot = ( xmlSecNssKeySlotPtr )xmlSecPtrListGetItem( context->slotList , pos ) ;
-+ slot = xmlSecNssKeySlotGetSlot( keySlot ) ;
-+ if( slot == NULL ) {
-+ continue ;
-+ } else {
-+ key = xmlSecNssKeysStoreFindKeyFromSlot( slot, name, keyInfoCtx ) ;
-+ if( key == NULL ) {
-+ continue ;
-+ } else {
-+ return( key ) ;
-+ }
-+ }
-+ }
-+ }
-+
-+ /*-
-+ * Create a session key if we can not find the key from keyList and slotList
-+ */
-+ if( ( keyInfoCtx->keyReq.keyType & xmlSecKeyDataTypeSession ) == xmlSecKeyDataTypeSession ) {
-+ key = xmlSecKeyGenerate( keyInfoCtx->keyReq.keyId , keyInfoCtx->keyReq.keyBitsSize , xmlSecKeyDataTypeSession ) ;
-+ if( key == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ xmlSecErrorsSafeString( xmlSecKeyStoreGetName( store ) ) ,
-+ "xmlSecKeySetValue" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return NULL ;
-+ }
-+
-+ return key ;
-+ }
-+
-+ /**
-+ * We have no way to find the key any more.
-+ */
-+ return NULL ;
-+}
-+
-+static xmlSecKeyStoreKlass xmlSecNssKeysStoreKlass = {
-+ sizeof( xmlSecKeyStoreKlass ) ,
-+ xmlSecNssKeysStoreSize ,
-+ BAD_CAST "implicit_nss_keys_store" ,
-+ xmlSecNssKeysStoreInitialize ,
-+ xmlSecNssKeysStoreFinalize ,
-+ xmlSecNssKeysStoreFindKey ,
-+ NULL ,
-+ NULL
-+} ;
-+
-+/**
-+ * xmlSecNssKeysStoreGetKlass:
-+ *
-+ * The simple list based keys store klass.
-+ *
-+ * Returns simple list based keys store klass.
-+ */
-+xmlSecKeyStoreId
-+xmlSecNssKeysStoreGetKlass( void ) {
-+ return &xmlSecNssKeysStoreKlass ;
-+}
-+
-+
-+/**************************
-+ * Application routines
-+ */
-+/**
-+ * xmlSecNssKeysStoreLoad:
-+ * @store: the pointer to Nss keys store.
-+ * @uri: the filename.
-+ * @keysMngr: the pointer to associated keys manager.
-+ *
-+ * Reads keys from an XML file.
-+ *
-+ * Returns 0 on success or a negative value if an error occurs.
-+ */
-+int
-+xmlSecNssKeysStoreLoad(
-+ xmlSecKeyStorePtr store,
-+ const char *uri,
-+ xmlSecKeysMngrPtr keysMngr
-+) {
-+ xmlDocPtr doc;
-+ xmlNodePtr root;
-+ xmlNodePtr cur;
-+ xmlSecKeyPtr key;
-+ xmlSecKeyInfoCtx keyInfoCtx;
-+ int ret;
-+
-+ xmlSecAssert2(xmlSecKeyStoreCheckId(store, xmlSecNssKeysStoreId), -1);
-+ xmlSecAssert2((uri != NULL), -1);
-+
-+ doc = xmlParseFile(uri);
-+ if(doc == NULL) {
-+ xmlSecError(XMLSEC_ERRORS_HERE,
-+ xmlSecErrorsSafeString(xmlSecKeyStoreGetName(store)),
-+ "xmlParseFile",
-+ XMLSEC_ERRORS_R_XML_FAILED,
-+ "uri=%s",
-+ xmlSecErrorsSafeString(uri));
-+ return(-1);
-+ }
-+
-+ root = xmlDocGetRootElement(doc);
-+ if(!xmlSecCheckNodeName(root, BAD_CAST "Keys", xmlSecNs)) {
-+ xmlSecError(XMLSEC_ERRORS_HERE,
-+ xmlSecErrorsSafeString(xmlSecKeyStoreGetName(store)),
-+ xmlSecErrorsSafeString(xmlSecNodeGetName(root)),
-+ XMLSEC_ERRORS_R_INVALID_NODE,
-+ "expected-node=<xmlsec:Keys>");
-+ xmlFreeDoc(doc);
-+ return(-1);
-+ }
-+
-+ cur = xmlSecGetNextElementNode(root->children);
-+ while((cur != NULL) && xmlSecCheckNodeName(cur, xmlSecNodeKeyInfo, xmlSecDSigNs)) {
-+ key = xmlSecKeyCreate();
-+ if(key == NULL) {
-+ xmlSecError(XMLSEC_ERRORS_HERE,
-+ xmlSecErrorsSafeString(xmlSecKeyStoreGetName(store)),
-+ xmlSecErrorsSafeString(xmlSecNodeGetName(cur)),
-+ XMLSEC_ERRORS_R_INVALID_NODE,
-+ "expected-node=%s",
-+ xmlSecErrorsSafeString(xmlSecNodeKeyInfo));
-+ xmlFreeDoc(doc);
-+ return(-1);
-+ }
-+
-+ ret = xmlSecKeyInfoCtxInitialize(&keyInfoCtx, NULL);
-+ if(ret < 0) {
-+ xmlSecError(XMLSEC_ERRORS_HERE,
-+ xmlSecErrorsSafeString(xmlSecKeyStoreGetName(store)),
-+ "xmlSecKeyInfoCtxInitialize",
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
-+ XMLSEC_ERRORS_NO_MESSAGE);
-+ xmlSecKeyDestroy(key);
-+ xmlFreeDoc(doc);
-+ return(-1);
-+ }
-+
-+ keyInfoCtx.mode = xmlSecKeyInfoModeRead;
-+ keyInfoCtx.keysMngr = keysMngr;
-+ keyInfoCtx.flags = XMLSEC_KEYINFO_FLAGS_DONT_STOP_ON_KEY_FOUND |
-+ XMLSEC_KEYINFO_FLAGS_X509DATA_DONT_VERIFY_CERTS;
-+ keyInfoCtx.keyReq.keyId = xmlSecKeyDataIdUnknown;
-+ keyInfoCtx.keyReq.keyType = xmlSecKeyDataTypeAny;
-+ keyInfoCtx.keyReq.keyUsage= xmlSecKeyDataUsageAny;
-+
-+ ret = xmlSecKeyInfoNodeRead(cur, key, &keyInfoCtx);
-+ if(ret < 0) {
-+ xmlSecError(XMLSEC_ERRORS_HERE,
-+ xmlSecErrorsSafeString(xmlSecKeyStoreGetName(store)),
-+ "xmlSecKeyInfoNodeRead",
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
-+ XMLSEC_ERRORS_NO_MESSAGE);
-+ xmlSecKeyInfoCtxFinalize(&keyInfoCtx);
-+ xmlSecKeyDestroy(key);
-+ xmlFreeDoc(doc);
-+ return(-1);
-+ }
-+ xmlSecKeyInfoCtxFinalize(&keyInfoCtx);
-+
-+ if(xmlSecKeyIsValid(key)) {
-+ ret = xmlSecNssKeysStoreAdoptKey(store, key);
-+ if(ret < 0) {
-+ xmlSecError(XMLSEC_ERRORS_HERE,
-+ xmlSecErrorsSafeString(xmlSecKeyStoreGetName(store)),
-+ "xmlSecNssKeysStoreAdoptKey",
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
-+ XMLSEC_ERRORS_NO_MESSAGE);
-+ xmlSecKeyDestroy(key);
-+ xmlFreeDoc(doc);
-+ return(-1);
-+ }
-+ } else {
-+ /* we have an unknown key in our file, just ignore it */
-+ xmlSecKeyDestroy(key);
-+ }
-+ cur = xmlSecGetNextElementNode(cur->next);
-+ }
-+
-+ if(cur != NULL) {
-+ xmlSecError(XMLSEC_ERRORS_HERE,
-+ xmlSecErrorsSafeString(xmlSecKeyStoreGetName(store)),
-+ xmlSecErrorsSafeString(xmlSecNodeGetName(cur)),
-+ XMLSEC_ERRORS_R_UNEXPECTED_NODE,
-+ XMLSEC_ERRORS_NO_MESSAGE);
-+ xmlFreeDoc(doc);
-+ return(-1);
-+ }
-+
-+ xmlFreeDoc(doc);
-+ return(0);
-+}
-+
-+/**
-+ * xmlSecNssKeysStoreSave:
-+ * @store: the pointer to Nss keys store.
-+ * @filename: the filename.
-+ * @type: the saved keys type (public, private, ...).
-+ *
-+ * Writes keys from @store to an XML file.
-+ *
-+ * Returns 0 on success or a negative value if an error occurs.
-+ */
-+int
-+xmlSecNssKeysStoreSave(xmlSecKeyStorePtr store, const char *filename, xmlSecKeyDataType type) {
-+ xmlSecKeyInfoCtx keyInfoCtx;
-+ xmlSecNssKeysStoreCtxPtr context ;
-+ xmlSecPtrListPtr list;
-+ xmlSecKeyPtr key;
-+ xmlSecSize i, keysSize;
-+ xmlDocPtr doc;
-+ xmlNodePtr cur;
-+ xmlSecKeyDataPtr data;
-+ xmlSecPtrListPtr idsList;
-+ xmlSecKeyDataId dataId;
-+ xmlSecSize idsSize, j;
-+ int ret;
-+
-+ xmlSecAssert2( xmlSecKeyStoreCheckId( store , xmlSecNssKeysStoreId ), -1 ) ;
-+ xmlSecAssert2( xmlSecKeyStoreCheckSize( store , xmlSecNssKeysStoreSize ), -1 ) ;
-+ xmlSecAssert2(filename != NULL, -1);
-+
-+ context = xmlSecNssKeysStoreGetCtx( store ) ;
-+ xmlSecAssert2( context != NULL, -1 );
-+
-+ list = context->keyList ;
-+ xmlSecAssert2( list != NULL, -1 );
-+ xmlSecAssert2(xmlSecPtrListCheckId(list, xmlSecKeyPtrListId), -1);
-+
-+ /* create doc */
-+ doc = xmlSecCreateTree(BAD_CAST "Keys", xmlSecNs);
-+ if(doc == NULL) {
-+ xmlSecError(XMLSEC_ERRORS_HERE,
-+ xmlSecErrorsSafeString(xmlSecKeyStoreGetName(store)),
-+ "xmlSecCreateTree",
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
-+ XMLSEC_ERRORS_NO_MESSAGE);
-+ return(-1);
-+ }
-+
-+ idsList = xmlSecKeyDataIdsGet();
-+ xmlSecAssert2(idsList != NULL, -1);
-+
-+ keysSize = xmlSecPtrListGetSize(list);
-+ idsSize = xmlSecPtrListGetSize(idsList);
-+ for(i = 0; i < keysSize; ++i) {
-+ key = (xmlSecKeyPtr)xmlSecPtrListGetItem(list, i);
-+ xmlSecAssert2(key != NULL, -1);
-+
-+ cur = xmlSecAddChild(xmlDocGetRootElement(doc), xmlSecNodeKeyInfo, xmlSecDSigNs);
-+ if(cur == NULL) {
-+ xmlSecError(XMLSEC_ERRORS_HERE,
-+ xmlSecErrorsSafeString(xmlSecKeyStoreGetName(store)),
-+ "xmlSecAddChild",
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
-+ "node=%s",
-+ xmlSecErrorsSafeString(xmlSecNodeKeyInfo));
-+ xmlFreeDoc(doc);
-+ return(-1);
-+ }
-+
-+ /* special data key name */
-+ if(xmlSecKeyGetName(key) != NULL) {
-+ if(xmlSecAddChild(cur, xmlSecNodeKeyName, xmlSecDSigNs) == NULL) {
-+ xmlSecError(XMLSEC_ERRORS_HERE,
-+ xmlSecErrorsSafeString(xmlSecKeyStoreGetName(store)),
-+ "xmlSecAddChild",
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
-+ "node=%s",
-+ xmlSecErrorsSafeString(xmlSecNodeKeyName));
-+ xmlFreeDoc(doc);
-+ return(-1);
-+ }
-+ }
-+
-+ /* create nodes for other keys data */
-+ for(j = 0; j < idsSize; ++j) {
-+ dataId = (xmlSecKeyDataId)xmlSecPtrListGetItem(idsList, j);
-+ xmlSecAssert2(dataId != xmlSecKeyDataIdUnknown, -1);
-+
-+ if(dataId->dataNodeName == NULL) {
-+ continue;
-+ }
-+
-+ data = xmlSecKeyGetData(key, dataId);
-+ if(data == NULL) {
-+ continue;
-+ }
-+
-+ if(xmlSecAddChild(cur, dataId->dataNodeName, dataId->dataNodeNs) == NULL) {
-+ xmlSecError(XMLSEC_ERRORS_HERE,
-+ xmlSecErrorsSafeString(xmlSecKeyStoreGetName(store)),
-+ "xmlSecAddChild",
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
-+ "node=%s",
-+ xmlSecErrorsSafeString(dataId->dataNodeName));
-+ xmlFreeDoc(doc);
-+ return(-1);
-+ }
-+ }
-+
-+ ret = xmlSecKeyInfoCtxInitialize(&keyInfoCtx, NULL);
-+ if(ret < 0) {
-+ xmlSecError(XMLSEC_ERRORS_HERE,
-+ xmlSecErrorsSafeString(xmlSecKeyStoreGetName(store)),
-+ "xmlSecKeyInfoCtxInitialize",
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
-+ XMLSEC_ERRORS_NO_MESSAGE);
-+ xmlFreeDoc(doc);
-+ return(-1);
-+ }
-+
-+ keyInfoCtx.mode = xmlSecKeyInfoModeWrite;
-+ keyInfoCtx.keyReq.keyId = xmlSecKeyDataIdUnknown;
-+ keyInfoCtx.keyReq.keyType = type;
-+ keyInfoCtx.keyReq.keyUsage = xmlSecKeyDataUsageAny;
-+
-+ /* finally write key in the node */
-+ ret = xmlSecKeyInfoNodeWrite(cur, key, &keyInfoCtx);
-+ if(ret < 0) {
-+ xmlSecError(XMLSEC_ERRORS_HERE,
-+ xmlSecErrorsSafeString(xmlSecKeyStoreGetName(store)),
-+ "xmlSecKeyInfoNodeWrite",
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED,
-+ XMLSEC_ERRORS_NO_MESSAGE);
-+ xmlSecKeyInfoCtxFinalize(&keyInfoCtx);
-+ xmlFreeDoc(doc);
-+ return(-1);
-+ }
-+ xmlSecKeyInfoCtxFinalize(&keyInfoCtx);
-+ }
-+
-+ /* now write result */
-+ ret = xmlSaveFormatFile(filename, doc, 1);
-+ if(ret < 0) {
-+ xmlSecError(XMLSEC_ERRORS_HERE,
-+ xmlSecErrorsSafeString(xmlSecKeyStoreGetName(store)),
-+ "xmlSaveFormatFile",
-+ XMLSEC_ERRORS_R_XML_FAILED,
-+ "filename=%s",
-+ xmlSecErrorsSafeString(filename));
-+ xmlFreeDoc(doc);
-+ return(-1);
-+ }
-+
-+ xmlFreeDoc(doc);
-+ return(0);
-+}
-+
-+
-+/**
-+ * xmlSecNssAppliedKeysMngrCreate:
-+ * @slot: the pointer to NSS PKCS#11 slot infomation.
-+ * @handler: the pointer to NSS certificate database.
-+ *
-+ * Create and load NSS crypto slot and certificate database into keys manager
-+ *
-+ * Returns keys manager pointer on success or NULL otherwise.
-+ */
-+xmlSecKeysMngrPtr
-+xmlSecNssAppliedKeysMngrCreate(
-+ PK11SlotInfo* slot ,
-+ CERTCertDBHandle* handler
-+) {
-+ xmlSecKeyDataStorePtr certStore = NULL ;
-+ xmlSecKeysMngrPtr keyMngr = NULL ;
-+ xmlSecKeyStorePtr keyStore = NULL ;
-+
-+ keyStore = xmlSecKeyStoreCreate( xmlSecNssKeysStoreId ) ;
-+ if( keyStore == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ "xmlSecKeyStoreCreate" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return NULL ;
-+ }
-+
-+ if( slot != NULL ) {
-+ xmlSecNssKeySlotPtr keySlot ;
-+
-+ /* Create a key slot */
-+ keySlot = xmlSecNssKeySlotCreate() ;
-+ if( keySlot == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ xmlSecErrorsSafeString( xmlSecKeyStoreGetName( keyStore ) ) ,
-+ "xmlSecNssKeySlotCreate" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+
-+ xmlSecKeyStoreDestroy( keyStore ) ;
-+ return NULL ;
-+ }
-+
-+ /* Set slot */
-+ if( xmlSecNssKeySlotSetSlot( keySlot , slot ) < 0 ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ xmlSecErrorsSafeString( xmlSecKeyStoreGetName( keyStore ) ) ,
-+ "xmlSecNssKeySlotSetSlot" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+
-+ xmlSecKeyStoreDestroy( keyStore ) ;
-+ xmlSecNssKeySlotDestroy( keySlot ) ;
-+ return NULL ;
-+ }
-+
-+ /* Adopt keySlot */
-+ if( xmlSecNssKeysStoreAdoptKeySlot( keyStore , keySlot ) < 0 ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ xmlSecErrorsSafeString( xmlSecKeyStoreGetName( keyStore ) ) ,
-+ "xmlSecNssKeysStoreAdoptKeySlot" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+
-+ xmlSecKeyStoreDestroy( keyStore ) ;
-+ xmlSecNssKeySlotDestroy( keySlot ) ;
-+ return NULL ;
-+ }
-+ }
-+
-+ keyMngr = xmlSecKeysMngrCreate() ;
-+ if( keyMngr == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ "xmlSecKeysMngrCreate" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+
-+ xmlSecKeyStoreDestroy( keyStore ) ;
-+ return NULL ;
-+ }
-+
-+ /*-
-+ * Add key store to manager, from now on keys manager destroys the store if
-+ * needed
-+ */
-+ if( xmlSecKeysMngrAdoptKeysStore( keyMngr, keyStore ) < 0 ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ xmlSecErrorsSafeString( xmlSecKeyStoreGetName( keyStore ) ) ,
-+ "xmlSecKeysMngrAdoptKeyStore" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+
-+ xmlSecKeyStoreDestroy( keyStore ) ;
-+ xmlSecKeysMngrDestroy( keyMngr ) ;
-+ return NULL ;
-+ }
-+
-+ /*-
-+ * Initialize crypto library specific data in keys manager
-+ */
-+ if( xmlSecNssKeysMngrInit( keyMngr ) < 0 ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ "xmlSecKeysMngrCreate" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+
-+ xmlSecKeysMngrDestroy( keyMngr ) ;
-+ return NULL ;
-+ }
-+
-+ /*-
-+ * Set certificate databse to X509 key data store
-+ */
-+ /**
-+ * Because Tej's implementation of certDB use the default DB, so I ignore
-+ * the certDB handler at present. I'll modify the cert store sources to
-+ * accept particular certDB instead of default ones.
-+ certStore = xmlSecKeysMngrGetDataStore( keyMngr , xmlSecNssKeyDataStoreX509Id ) ;
-+ if( certStore == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ xmlSecErrorsSafeString( xmlSecKeyStoreGetName( keyStore ) ) ,
-+ "xmlSecKeysMngrGetDataStore" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+
-+ xmlSecKeysMngrDestroy( keyMngr ) ;
-+ return NULL ;
-+ }
-+
-+ if( xmlSecNssKeyDataStoreX509SetCertDb( certStore , handler ) < 0 ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ xmlSecErrorsSafeString( xmlSecKeyStoreGetName( keyStore ) ) ,
-+ "xmlSecNssKeyDataStoreX509SetCertDb" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+
-+ xmlSecKeysMngrDestroy( keyMngr ) ;
-+ return NULL ;
-+ }
-+ */
-+
-+ /*-
-+ * Set the getKey callback
-+ */
-+ keyMngr->getKey = xmlSecKeysMngrGetKey ;
-+
-+ return keyMngr ;
-+}
-+
-+int
-+xmlSecNssAppliedKeysMngrSymKeyLoad(
-+ xmlSecKeysMngrPtr mngr ,
-+ PK11SymKey* symKey
-+) {
-+ xmlSecKeyPtr key ;
-+ xmlSecKeyDataPtr data ;
-+ xmlSecKeyStorePtr keyStore ;
-+
-+ xmlSecAssert2( mngr != NULL , -1 ) ;
-+ xmlSecAssert2( symKey != NULL , -1 ) ;
-+
-+ keyStore = xmlSecKeysMngrGetKeysStore( mngr ) ;
-+ if( keyStore == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ "xmlSecKeysMngrGetKeysStore" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return(-1) ;
-+ }
-+ xmlSecAssert2( xmlSecKeyStoreCheckId( keyStore , xmlSecNssKeysStoreId ) , -1 ) ;
-+
-+ data = xmlSecNssSymKeyDataKeyAdopt( symKey ) ;
-+ if( data == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ "xmlSecNssSymKeyDataKeyAdopt" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return(-1) ;
-+ }
-+
-+ key = xmlSecKeyCreate() ;
-+ if( key == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ "xmlSecNssSymKeyDataKeyAdopt" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ xmlSecKeyDataDestroy( data ) ;
-+ return(-1) ;
-+ }
-+
-+ if( xmlSecKeySetValue( key , data ) < 0 ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ "xmlSecNssSymKeyDataKeyAdopt" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ xmlSecKeyDataDestroy( data ) ;
-+ return(-1) ;
-+ }
-+
-+ if( xmlSecNssKeysStoreAdoptKey( keyStore, key ) < 0 ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ "xmlSecNssSymKeyDataKeyAdopt" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ xmlSecKeyDestroy( key ) ;
-+ return(-1) ;
-+ }
-+
-+ return(0) ;
-+}
-+
-+int
-+xmlSecNssAppliedKeysMngrPubKeyLoad(
-+ xmlSecKeysMngrPtr mngr ,
-+ SECKEYPublicKey* pubKey
-+) {
-+ xmlSecKeyPtr key ;
-+ xmlSecKeyDataPtr data ;
-+ xmlSecKeyStorePtr keyStore ;
-+
-+ xmlSecAssert2( mngr != NULL , -1 ) ;
-+ xmlSecAssert2( pubKey != NULL , -1 ) ;
-+
-+ keyStore = xmlSecKeysMngrGetKeysStore( mngr ) ;
-+ if( keyStore == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ "xmlSecKeysMngrGetKeysStore" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return(-1) ;
-+ }
-+ xmlSecAssert2( xmlSecKeyStoreCheckId( keyStore , xmlSecNssKeysStoreId ) , -1 ) ;
-+
-+ data = xmlSecNssPKIAdoptKey( NULL, pubKey ) ;
-+ if( data == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ "xmlSecNssPKIAdoptKey" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return(-1) ;
-+ }
-+
-+ key = xmlSecKeyCreate() ;
-+ if( key == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ "xmlSecNssSymKeyDataKeyAdopt" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ xmlSecKeyDataDestroy( data ) ;
-+ return(-1) ;
-+ }
-+
-+ if( xmlSecKeySetValue( key , data ) < 0 ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ "xmlSecNssSymKeyDataKeyAdopt" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ xmlSecKeyDataDestroy( data ) ;
-+ return(-1) ;
-+ }
-+
-+ if( xmlSecNssKeysStoreAdoptKey( keyStore, key ) < 0 ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ "xmlSecNssSymKeyDataKeyAdopt" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ xmlSecKeyDestroy( key ) ;
-+ return(-1) ;
-+ }
-+
-+ return(0) ;
-+}
-+
-+int
-+xmlSecNssAppliedKeysMngrPriKeyLoad(
-+ xmlSecKeysMngrPtr mngr ,
-+ SECKEYPrivateKey* priKey
-+) {
-+ xmlSecKeyPtr key ;
-+ xmlSecKeyDataPtr data ;
-+ xmlSecKeyStorePtr keyStore ;
-+
-+ xmlSecAssert2( mngr != NULL , -1 ) ;
-+ xmlSecAssert2( priKey != NULL , -1 ) ;
-+
-+ keyStore = xmlSecKeysMngrGetKeysStore( mngr ) ;
-+ if( keyStore == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ "xmlSecKeysMngrGetKeysStore" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return(-1) ;
-+ }
-+ xmlSecAssert2( xmlSecKeyStoreCheckId( keyStore , xmlSecNssKeysStoreId ) , -1 ) ;
-+
-+ data = xmlSecNssPKIAdoptKey( priKey, NULL ) ;
-+ if( data == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ "xmlSecNssPKIAdoptKey" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return(-1) ;
-+ }
-+
-+ key = xmlSecKeyCreate() ;
-+ if( key == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ "xmlSecNssSymKeyDataKeyAdopt" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ xmlSecKeyDataDestroy( data ) ;
-+ return(-1) ;
-+ }
-+
-+ if( xmlSecKeySetValue( key , data ) < 0 ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ "xmlSecNssSymKeyDataKeyAdopt" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ xmlSecKeyDataDestroy( data ) ;
-+ return(-1) ;
-+ }
-+
-+ if( xmlSecNssKeysStoreAdoptKey( keyStore, key ) < 0 ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ "xmlSecNssSymKeyDataKeyAdopt" ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ xmlSecKeyDestroy( key ) ;
-+ return(-1) ;
-+ }
-+
-+ return(0) ;
-+ }
-+
-+int
-+xmlSecNssKeySlotSetMechList(
-+ xmlSecNssKeySlotPtr keySlot ,
-+ CK_MECHANISM_TYPE_PTR mechanismList
-+) {
-+ int counter ;
-+
-+ xmlSecAssert2( keySlot != NULL , -1 ) ;
-+
-+ if( keySlot->mechanismList != CK_NULL_PTR ) {
-+ xmlFree( keySlot->mechanismList ) ;
-+
-+ for( counter = 0 ; *( mechanismList + counter ) != CKM_INVALID_MECHANISM ; counter ++ ) ;
-+ keySlot->mechanismList = ( CK_MECHANISM_TYPE_PTR )xmlMalloc( ( counter + 1 ) * sizeof( CK_MECHANISM_TYPE ) ) ;
-+ if( keySlot->mechanismList == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ NULL ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return( -1 );
-+ }
-+ for( ; counter >= 0 ; counter -- )
-+ *( keySlot->mechanismList + counter ) = *( mechanismList + counter ) ;
-+ }
-+
-+ return( 0 );
-+}
-+
-+int
-+xmlSecNssKeySlotEnableMech(
-+ xmlSecNssKeySlotPtr keySlot ,
-+ CK_MECHANISM_TYPE mechanism
-+) {
-+ int counter ;
-+ CK_MECHANISM_TYPE_PTR newList ;
-+
-+ xmlSecAssert2( keySlot != NULL , -1 ) ;
-+
-+ if( mechanism != CKM_INVALID_MECHANISM ) {
-+ for( counter = 0 ; *( keySlot->mechanismList + counter ) != CKM_INVALID_MECHANISM ; counter ++ ) ;
-+ newList = ( CK_MECHANISM_TYPE_PTR )xmlMalloc( ( counter + 1 + 1 ) * sizeof( CK_MECHANISM_TYPE ) ) ;
-+ if( newList == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ NULL ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return( -1 );
-+ }
-+ *( newList + counter + 1 ) = CKM_INVALID_MECHANISM ;
-+ *( newList + counter ) = mechanism ;
-+ for( counter -= 1 ; counter >= 0 ; counter -- )
-+ *( newList + counter ) = *( keySlot->mechanismList + counter ) ;
-+
-+ xmlFree( keySlot->mechanismList ) ;
-+ keySlot->mechanismList = newList ;
-+ }
-+
-+ return(0);
-+}
-+
-+int
-+xmlSecNssKeySlotDisableMech(
-+ xmlSecNssKeySlotPtr keySlot ,
-+ CK_MECHANISM_TYPE mechanism
-+) {
-+ int counter ;
-+
-+ xmlSecAssert2( keySlot != NULL , -1 ) ;
-+
-+ for( counter = 0 ; *( keySlot->mechanismList + counter ) != CKM_INVALID_MECHANISM ; counter ++ ) {
-+ if( *( keySlot->mechanismList + counter ) == mechanism ) {
-+ for( ; *( keySlot->mechanismList + counter ) != CKM_INVALID_MECHANISM ; counter ++ ) {
-+ *( keySlot->mechanismList + counter ) = *( keySlot->mechanismList + counter + 1 ) ;
-+ }
-+
-+ break ;
-+ }
-+ }
-+
-+ return(0);
-+}
-+
-+CK_MECHANISM_TYPE_PTR
-+xmlSecNssKeySlotGetMechList(
-+ xmlSecNssKeySlotPtr keySlot
-+) {
-+ if( keySlot != NULL )
-+ return keySlot->mechanismList ;
-+ else
-+ return NULL ;
-+}
-+
-+int
-+xmlSecNssKeySlotSetSlot(
-+ xmlSecNssKeySlotPtr keySlot ,
-+ PK11SlotInfo* slot
-+) {
-+ xmlSecAssert2( keySlot != NULL , -1 ) ;
-+
-+ if( slot != NULL && keySlot->slot != slot ) {
-+ if( keySlot->slot != NULL )
-+ PK11_FreeSlot( keySlot->slot ) ;
-+
-+ if( keySlot->mechanismList != NULL ) {
-+ xmlFree( keySlot->mechanismList ) ;
-+ keySlot->mechanismList = NULL ;
-+ }
-+
-+ keySlot->slot = PK11_ReferenceSlot( slot ) ;
-+ }
-+
-+ return(0);
-+}
-+
-+int
-+xmlSecNssKeySlotInitialize(
-+ xmlSecNssKeySlotPtr keySlot ,
-+ PK11SlotInfo* slot
-+) {
-+ xmlSecAssert2( keySlot != NULL , -1 ) ;
-+ xmlSecAssert2( keySlot->slot == NULL , -1 ) ;
-+ xmlSecAssert2( keySlot->mechanismList == NULL , -1 ) ;
-+
-+ if( slot != NULL ) {
-+ keySlot->slot = PK11_ReferenceSlot( slot ) ;
-+ }
-+
-+ return(0);
-+}
-+
-+void
-+xmlSecNssKeySlotFinalize(
-+ xmlSecNssKeySlotPtr keySlot
-+) {
-+ xmlSecAssert( keySlot != NULL ) ;
-+
-+ if( keySlot->mechanismList != NULL ) {
-+ xmlFree( keySlot->mechanismList ) ;
-+ keySlot->mechanismList = NULL ;
-+ }
-+
-+ if( keySlot->slot != NULL ) {
-+ PK11_FreeSlot( keySlot->slot ) ;
-+ keySlot->slot = NULL ;
-+ }
-+
-+}
-+
-+PK11SlotInfo*
-+xmlSecNssKeySlotGetSlot(
-+ xmlSecNssKeySlotPtr keySlot
-+) {
-+ if( keySlot != NULL )
-+ return keySlot->slot ;
-+ else
-+ return NULL ;
-+}
-+
-+xmlSecNssKeySlotPtr
-+xmlSecNssKeySlotCreate() {
-+ xmlSecNssKeySlotPtr keySlot ;
-+
-+ /* Allocates a new xmlSecNssKeySlot and fill the fields */
-+ keySlot = ( xmlSecNssKeySlotPtr )xmlMalloc( sizeof( xmlSecNssKeySlot ) ) ;
-+ if( keySlot == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ NULL ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return( NULL );
-+ }
-+ memset( keySlot, 0, sizeof( xmlSecNssKeySlot ) ) ;
-+
-+ return( keySlot ) ;
-+}
-+
-+int
-+xmlSecNssKeySlotCopy(
-+ xmlSecNssKeySlotPtr newKeySlot ,
-+ xmlSecNssKeySlotPtr keySlot
-+) {
-+ CK_MECHANISM_TYPE_PTR mech ;
-+ int counter ;
-+
-+ xmlSecAssert2( newKeySlot != NULL , -1 ) ;
-+ xmlSecAssert2( keySlot != NULL , -1 ) ;
-+
-+ if( keySlot->slot != NULL && newKeySlot->slot != keySlot->slot ) {
-+ if( newKeySlot->slot != NULL )
-+ PK11_FreeSlot( newKeySlot->slot ) ;
-+
-+ newKeySlot->slot = PK11_ReferenceSlot( keySlot->slot ) ;
-+ }
-+
-+ if( keySlot->mechanismList != CK_NULL_PTR ) {
-+ xmlFree( newKeySlot->mechanismList ) ;
-+
-+ for( counter = 0 ; *( keySlot->mechanismList + counter ) != CKM_INVALID_MECHANISM ; counter ++ ) ;
-+ newKeySlot->mechanismList = ( CK_MECHANISM_TYPE_PTR )xmlMalloc( ( counter + 1 ) * sizeof( CK_MECHANISM_TYPE ) ) ;
-+ if( newKeySlot->mechanismList == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ NULL ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return( -1 );
-+ }
-+ for( ; counter >= 0 ; counter -- )
-+ *( newKeySlot->mechanismList + counter ) = *( keySlot->mechanismList + counter ) ;
-+ }
-+
-+ return( 0 );
-+}
-+
-+xmlSecNssKeySlotPtr
-+xmlSecNssKeySlotDuplicate(
-+ xmlSecNssKeySlotPtr keySlot
-+) {
-+ xmlSecNssKeySlotPtr newKeySlot ;
-+ int ret ;
-+
-+ xmlSecAssert2( keySlot != NULL , NULL ) ;
-+
-+ newKeySlot = xmlSecNssKeySlotCreate() ;
-+ if( newKeySlot == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ NULL ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return( NULL );
-+ }
-+
-+ if( xmlSecNssKeySlotCopy( newKeySlot, keySlot ) < 0 ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ NULL ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return( NULL );
-+ }
-+
-+ return( newKeySlot );
-+}
-+
-+void
-+xmlSecNssKeySlotDestroy(
-+ xmlSecNssKeySlotPtr keySlot
-+) {
-+ xmlSecAssert( keySlot != NULL ) ;
-+
-+ if( keySlot->mechanismList != NULL )
-+ xmlFree( keySlot->mechanismList ) ;
-+
-+ if( keySlot->slot != NULL )
-+ PK11_FreeSlot( keySlot->slot ) ;
-+
-+ xmlFree( keySlot ) ;
-+}
-+
-+int
-+xmlSecNssKeySlotBindMech(
-+ xmlSecNssKeySlotPtr keySlot ,
-+ CK_MECHANISM_TYPE type
-+) {
-+ int counter ;
-+
-+ xmlSecAssert2( keySlot != NULL , 0 ) ;
-+ xmlSecAssert2( keySlot->slot != NULL , 0 ) ;
-+ xmlSecAssert2( type != CKM_INVALID_MECHANISM , 0 ) ;
-+
-+ for( counter = 0 ; *( keySlot->mechanismList + counter ) != CKM_INVALID_MECHANISM ; counter ++ ) {
-+ if( *( keySlot->mechanismList + counter ) == type )
-+ return(1) ;
-+ }
-+
-+ return( 0 ) ;
-+}
-+
-+int
-+xmlSecNssKeySlotSupportMech(
-+ xmlSecNssKeySlotPtr keySlot ,
-+ CK_MECHANISM_TYPE type
-+) {
-+ xmlSecAssert2( keySlot != NULL , 0 ) ;
-+ xmlSecAssert2( keySlot->slot != NULL , 0 ) ;
-+ xmlSecAssert2( type != CKM_INVALID_MECHANISM , 0 ) ;
-+
-+ if( PK11_DoesMechanism( keySlot->slot , type ) == PR_TRUE ) {
-+ return(1);
-+ } else
-+ return(0);
-+}
-+
-+void
-+xmlSecNssKeySlotDebugDump(
-+ xmlSecNssKeySlotPtr keySlot ,
-+ FILE* output
-+) {
-+ xmlSecAssert( keySlot != NULL ) ;
-+ xmlSecAssert( output != NULL ) ;
-+
-+ fprintf( output, "== KEY SLOT\n" );
-+}
-+
-+void
-+xmlSecNssKeySlotDebugXmlDump(
-+ xmlSecNssKeySlotPtr keySlot ,
-+ FILE* output
-+) {
-+}
-+
-+/**
-+ * Key Slot List
-+ */
-+static xmlSecPtrListKlass xmlSecNssKeySlotPtrListKlass = {
-+ BAD_CAST "mechanism-list",
-+ (xmlSecPtrDuplicateItemMethod)xmlSecNssKeySlotDuplicate,
-+ (xmlSecPtrDestroyItemMethod)xmlSecNssKeySlotDestroy,
-+ (xmlSecPtrDebugDumpItemMethod)xmlSecNssKeySlotDebugDump,
-+ (xmlSecPtrDebugDumpItemMethod)xmlSecNssKeySlotDebugXmlDump,
-+};
-+
-+xmlSecPtrListId
-+xmlSecNssKeySlotListGetKlass(void) {
-+ return(&xmlSecNssKeySlotPtrListKlass);
-+}
-+
-+
-+/*-
-+ * Global PKCS#11 crypto token repository -- Key slot list
-+ */
-+static xmlSecPtrListPtr _xmlSecNssKeySlotList = NULL ;
-+
-+PK11SlotInfo*
-+xmlSecNssSlotGet(
-+ CK_MECHANISM_TYPE type
-+) {
-+ PK11SlotInfo* slot = NULL ;
-+ xmlSecNssKeySlotPtr keySlot ;
-+ xmlSecSize ksSize ;
-+ xmlSecSize ksPos ;
-+ char flag ;
-+
-+ if( _xmlSecNssKeySlotList == NULL ) {
-+ slot = PK11_GetBestSlot( type , NULL ) ;
-+ } else {
-+ ksSize = xmlSecPtrListGetSize( _xmlSecNssKeySlotList ) ;
-+
-+ /*-
-+ * Firstly, checking whether the mechanism is bound with a special slot.
-+ * If no bound slot, we try to find the first eligible slot in the list.
-+ */
-+ for( flag = 0, ksPos = 0 ; ksPos < ksSize ; ksPos ++ ) {
-+ keySlot = ( xmlSecNssKeySlotPtr )xmlSecPtrListGetItem( _xmlSecNssKeySlotList, ksPos ) ;
-+ if( keySlot != NULL && xmlSecNssKeySlotBindMech( keySlot, type ) ) {
-+ slot = xmlSecNssKeySlotGetSlot( keySlot ) ;
-+ flag = 2 ;
-+ } else if( flag == 0 && xmlSecNssKeySlotSupportMech( keySlot, type ) ) {
-+ slot = xmlSecNssKeySlotGetSlot( keySlot ) ;
-+ flag = 1 ;
-+ }
-+
-+ if( flag == 2 )
-+ break ;
-+ }
-+ if( slot != NULL )
-+ slot = PK11_ReferenceSlot( slot ) ;
-+ }
-+
-+ if( slot != NULL && PK11_NeedLogin( slot ) ) {
-+ if( PK11_Authenticate( slot , PR_TRUE , NULL ) != SECSuccess ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ NULL ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ PK11_FreeSlot( slot ) ;
-+ return( NULL );
-+ }
-+ }
-+
-+ return slot ;
-+}
-+
-+int
-+xmlSecNssSlotInitialize(
-+ void
-+) {
-+ if( _xmlSecNssKeySlotList != NULL ) {
-+ xmlSecPtrListDestroy( _xmlSecNssKeySlotList ) ;
-+ _xmlSecNssKeySlotList = NULL ;
-+ }
-+
-+ _xmlSecNssKeySlotList = xmlSecPtrListCreate( xmlSecNssKeySlotListId ) ;
-+ if( _xmlSecNssKeySlotList == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ NULL ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return( -1 );
-+ }
-+
-+ return(0);
-+}
-+
-+void
-+xmlSecNssSlotShutdown(
-+ void
-+) {
-+ if( _xmlSecNssKeySlotList != NULL ) {
-+ xmlSecPtrListDestroy( _xmlSecNssKeySlotList ) ;
-+ _xmlSecNssKeySlotList = NULL ;
-+ }
-+}
-+
-+typedef struct _xmlSecNssSymKeyDataCtx xmlSecNssSymKeyDataCtx ;
-+typedef struct _xmlSecNssSymKeyDataCtx* xmlSecNssSymKeyDataCtxPtr ;
-+
-+struct _xmlSecNssSymKeyDataCtx {
-+ CK_MECHANISM_TYPE cipher ; /* the symmetic key mechanism */
-+ PK11SlotInfo* slot ; /* the key resident slot */
-+ PK11SymKey* symkey ; /* the symmetic key */
-+} ;
-+
-+#define xmlSecNssSymKeyDataSize \
-+ ( sizeof( xmlSecKeyData ) + sizeof( xmlSecNssSymKeyDataCtx ) )
-+
-+#define xmlSecNssSymKeyDataGetCtx( data ) \
-+ ( ( xmlSecNssSymKeyDataCtxPtr )( ( ( xmlSecByte* )( data ) ) + sizeof( xmlSecKeyData ) ) )
-+
-+
-+#define xmlSecNssSymKeyDataCheckId(data) \
-+ (xmlSecKeyDataIsValid((data)) && \
-+ xmlSecNssSymKeyDataKlassCheck((data)->id))
-+
-+static int xmlSecNssSymKeyDataKlassCheck (xmlSecKeyDataKlass* klass);
-+
-+#define xmlSecNssSymKeyDataCheckId(data) \
-+ (xmlSecKeyDataIsValid((data)) && \
-+ xmlSecNssSymKeyDataKlassCheck((data)->id))
-+
-+/**
-+ * xmlSecNssSymKeyDataAdoptKey:
-+ * @data: the pointer to symmetric key data.
-+ * @symkey: the symmetric key
-+ *
-+ * Set the value of symmetric key data.
-+ *
-+ * Returns 0 on success or a negative value if an error occurs.
-+ */
-+int
-+xmlSecNssSymKeyDataAdoptKey(
-+ xmlSecKeyDataPtr data ,
-+ PK11SymKey* symkey
-+) {
-+ xmlSecNssSymKeyDataCtxPtr context = NULL ;
-+
-+ xmlSecAssert2( xmlSecNssSymKeyDataCheckId( data ), -1 ) ;
-+ xmlSecAssert2( xmlSecKeyDataCheckSize( data, xmlSecNssSymKeyDataSize ), -1 ) ;
-+ xmlSecAssert2( symkey != NULL, -1 ) ;
-+
-+ context = xmlSecNssSymKeyDataGetCtx( data ) ;
-+ xmlSecAssert2(context != NULL, -1);
-+
-+ context->cipher = PK11_GetMechanism( symkey ) ;
-+
-+ if( context->slot != NULL ) {
-+ PK11_FreeSlot( context->slot ) ;
-+ context->slot = NULL ;
-+ }
-+ context->slot = PK11_GetSlotFromKey( symkey ) ;
-+
-+ if( context->symkey != NULL ) {
-+ PK11_FreeSymKey( context->symkey ) ;
-+ context->symkey = NULL ;
-+ }
-+ context->symkey = PK11_ReferenceSymKey( symkey ) ;
-+
-+ return 0 ;
-+}
-+
-+
-+
-+
-+int
-+xmlSecNssSlotAdopt(
-+ PK11SlotInfo* slot,
-+ CK_MECHANISM_TYPE type
-+) {
-+ xmlSecNssKeySlotPtr keySlot ;
-+ xmlSecSize ksSize ;
-+ xmlSecSize ksPos ;
-+ char flag ;
-+
-+ xmlSecAssert2( _xmlSecNssKeySlotList != NULL, -1 ) ;
-+ xmlSecAssert2( slot != NULL, -1 ) ;
-+
-+ ksSize = xmlSecPtrListGetSize( _xmlSecNssKeySlotList ) ;
-+
-+ /*-
-+ * Firstly, checking whether the slot is in the repository already.
-+ */
-+ flag = 0 ;
-+ for( ksPos = 0 ; ksPos < ksSize ; ksPos ++ ) {
-+ keySlot = ( xmlSecNssKeySlotPtr )xmlSecPtrListGetItem( _xmlSecNssKeySlotList, ksPos ) ;
-+ /* If find the slot in the list */
-+ if( keySlot != NULL && xmlSecNssKeySlotGetSlot( keySlot ) == slot ) {
-+ /* If mechnism type is valid, bind the slot with the mechanism */
-+ if( type != CKM_INVALID_MECHANISM ) {
-+ if( xmlSecNssKeySlotEnableMech( keySlot, type ) < 0 ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ NULL ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return(-1);
-+ }
-+ }
-+
-+ flag = 1 ;
-+ }
-+ }
-+
-+ /* If the slot do not in the list, add a new item to the list */
-+ if( flag == 0 ) {
-+ /* Create a new KeySlot */
-+ keySlot = xmlSecNssKeySlotCreate() ;
-+ if( keySlot == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ NULL ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ return(-1);
-+ }
-+
-+ /* Initialize the keySlot with a slot */
-+ if( xmlSecNssKeySlotInitialize( keySlot, slot ) < 0 ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ NULL ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ xmlSecNssKeySlotDestroy( keySlot ) ;
-+ return(-1);
-+ }
-+
-+ /* If mechnism type is valid, bind the slot with the mechanism */
-+ if( type != CKM_INVALID_MECHANISM ) {
-+ if( xmlSecNssKeySlotEnableMech( keySlot, type ) < 0 ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ NULL ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ xmlSecNssKeySlotDestroy( keySlot ) ;
-+ return(-1);
-+ }
-+ }
-+
-+ /* Add keySlot into the list */
-+ if( xmlSecPtrListAdd( _xmlSecNssKeySlotList, keySlot ) < 0 ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ NULL ,
-+ XMLSEC_ERRORS_R_XMLSEC_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+ xmlSecNssKeySlotDestroy( keySlot ) ;
-+ return(-1);
-+ }
-+ }
-+
-+ return(0);
-+ }
-+
-+xmlSecKeyDataPtr xmlSecNssSymKeyDataKeyAdopt(
-+ PK11SymKey* symKey
-+) {
-+ xmlSecKeyDataPtr data = NULL ;
-+ CK_MECHANISM_TYPE mechanism = CKM_INVALID_MECHANISM ;
-+
-+ xmlSecAssert2( symKey != NULL , NULL ) ;
-+
-+ mechanism = PK11_GetMechanism( symKey ) ;
-+ switch( mechanism ) {
-+ case CKM_DES3_KEY_GEN :
-+ case CKM_DES3_CBC :
-+ case CKM_DES3_MAC :
-+ data = xmlSecKeyDataCreate( xmlSecNssKeyDataDesId ) ;
-+ if( data == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ "xmlSecKeyDataCreate" ,
-+ XMLSEC_ERRORS_R_CRYPTO_FAILED ,
-+ "xmlSecNssKeyDataDesId" ) ;
-+ return NULL ;
-+ }
-+ break ;
-+ case CKM_AES_KEY_GEN :
-+ case CKM_AES_CBC :
-+ case CKM_AES_MAC :
-+ data = xmlSecKeyDataCreate( xmlSecNssKeyDataAesId ) ;
-+ if( data == NULL ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ "xmlSecKeyDataCreate" ,
-+ XMLSEC_ERRORS_R_CRYPTO_FAILED ,
-+ "xmlSecNssKeyDataDesId" ) ;
-+ return NULL ;
-+ }
-+ break ;
-+ default :
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ NULL ,
-+ XMLSEC_ERRORS_R_CRYPTO_FAILED ,
-+ "Unsupported mechanism" ) ;
-+ return NULL ;
-+ }
-+
-+ if( xmlSecNssSymKeyDataAdoptKey( data , symKey ) < 0 ) {
-+ xmlSecError( XMLSEC_ERRORS_HERE ,
-+ NULL ,
-+ "xmlSecNssSymKeyDataAdoptKey" ,
-+ XMLSEC_ERRORS_R_CRYPTO_FAILED ,
-+ XMLSEC_ERRORS_NO_MESSAGE ) ;
-+
-+ xmlSecKeyDataDestroy( data ) ;
-+ return NULL ;
-+ }
-+
-+ return data ;
-+}
-+
-+static int
-+xmlSecNssSymKeyDataKlassCheck(xmlSecKeyDataKlass* klass) {
-+#ifndef XMLSEC_NO_DES
-+ if(klass == xmlSecNssKeyDataDesId) {
-+ return(1);
-+ }
-+#endif /* XMLSEC_NO_DES */
-+
-+#ifndef XMLSEC_NO_AES
-+ if(klass == xmlSecNssKeyDataAesId) {
-+ return(1);
-+ }
-+#endif /* XMLSEC_NO_AES */
-+
-+#ifndef XMLSEC_NO_HMAC
-+ if(klass == xmlSecNssKeyDataHmacId) {
-+ return(1);
-+ }
-+#endif /* XMLSEC_NO_HMAC */
-+
-+ return(0);
-+}
-+
-+}
---- xmlsecurity/util/makefile.mk-old 2005-09-20 13:28:00.118330024 +0200
-+++ xmlsecurity/util/makefile.mk 2005-09-20 13:29:28.691864800 +0200
-@@ -108,6 +108,12 @@
- $(CPPUHELPERLIB) \
- $(XMLOFFLIB)
-
-+# workaround for xmlsec1.2.9, -nss uses -openssl funktions without really
-+# depending on it
-+.IF "$(SYSTEM_XMLSEC)" == "YES"
-+SHL2STDLIBS += -lxmlsec1-openssl
-+.ENDIF
-+
- .IF "$(CRYPTO_ENGINE)" == "mscrypto"
- SHL2STDLIBS+= $(MSCRYPTOLIBS)
- .ELSE
diff --git a/patches/src680/tab-key-for-autocomplete.diff b/patches/src680/tab-key-for-autocomplete.diff
deleted file mode 100644
index 288db4cd2..000000000
--- a/patches/src680/tab-key-for-autocomplete.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- svx/source/dialog/autocdlg.cxx 2005-08-10 14:57:35.000000000 +0530
-+++ svx/source/dialog/autocdlg.cxx 2005-08-10 14:57:50.000000000 +0530
-@@ -2337,6 +2337,7 @@
- KEY_RETURN,
- KEY_SPACE,
- KEY_RIGHT,
-+ KEY_TAB,
- 0
- };
-
diff --git a/patches/src680/testing-more-optimizations-ark.diff b/patches/src680/testing-more-optimizations-ark.diff
deleted file mode 100644
index e61827363..000000000
--- a/patches/src680/testing-more-optimizations-ark.diff
+++ /dev/null
@@ -1,1302 +0,0 @@
---- ./sal/inc/osl/file.h.opt 2005-09-08 14:27:23.000000000 +0000
-+++ ./sal/inc/osl/file.h 2005-10-31 16:29:51.000000000 +0000
-@@ -183,7 +183,7 @@
- @see osl_closeDirectory()
- */
-
--oslFileError SAL_CALL osl_openDirectory( rtl_uString *pustrDirectoryURL, oslDirectory *pDirectory);
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_openDirectory( rtl_uString *pustrDirectoryURL, oslDirectory *pDirectory);
-
-
- /** Retrieve the next item of a previously opened directory.
-@@ -217,7 +217,7 @@
- @see osl_getFileStatus()
- */
-
--oslFileError SAL_CALL osl_getNextDirectoryItem(
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getNextDirectoryItem(
- oslDirectory Directory,
- oslDirectoryItem *pItem,
- sal_uInt32 uHint
-@@ -239,7 +239,7 @@
- @see osl_openDirectory()
- */
-
--oslFileError SAL_CALL osl_closeDirectory(oslDirectory Directory);
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_closeDirectory(oslDirectory Directory);
-
-
- /** Retrieve a single directory item.
-@@ -278,7 +278,7 @@
- @see osl_getNextDirectoryItem()
- */
-
--oslFileError SAL_CALL osl_getDirectoryItem(
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getDirectoryItem(
- rtl_uString *pustrFileURL,
- oslDirectoryItem *pItem
- );
-@@ -301,7 +301,7 @@
- @see osl_releaseDirectoryItem()
- */
-
--oslFileError SAL_CALL osl_acquireDirectoryItem( oslDirectoryItem Item );
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_acquireDirectoryItem( oslDirectoryItem Item );
-
-
- /** Decrease the refcount of a directory item handle.
-@@ -323,7 +323,7 @@
- @see osl_acquireDirectoryItem()
- */
-
--oslFileError SAL_CALL osl_releaseDirectoryItem( oslDirectoryItem Item );
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_releaseDirectoryItem( oslDirectoryItem Item );
-
- /* File types */
-
-@@ -446,7 +446,7 @@
- @see oslFileStatus
- */
-
--oslFileError SAL_CALL osl_getFileStatus( oslDirectoryItem Item, oslFileStatus *pStatus, sal_uInt32 uFieldMask );
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getFileStatus( oslDirectoryItem Item, oslFileStatus *pStatus, sal_uInt32 uFieldMask );
-
-
- typedef void *oslVolumeDeviceHandle;
-@@ -468,7 +468,7 @@
- @see osl_getVolumeInformation()
- */
-
--oslFileError SAL_CALL osl_unmountVolumeDevice( oslVolumeDeviceHandle Handle );
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_unmountVolumeDevice( oslVolumeDeviceHandle Handle );
-
-
- /** Automount a volume device.
-@@ -487,7 +487,7 @@
- @see osl_getVolumeInformation()
- */
-
--oslFileError SAL_CALL osl_automountVolumeDevice( oslVolumeDeviceHandle Handle );
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_automountVolumeDevice( oslVolumeDeviceHandle Handle );
-
-
- /** Release a volume device handle.
-@@ -508,7 +508,7 @@
- @see osl_getVolumeInformation()
- */
-
--oslFileError SAL_CALL osl_releaseVolumeDeviceHandle( oslVolumeDeviceHandle Handle );
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_releaseVolumeDeviceHandle( oslVolumeDeviceHandle Handle );
-
- /** Acquire a volume device handle.
-
-@@ -528,7 +528,7 @@
- @see osl_getVolumeInformation()
- */
-
--oslFileError SAL_CALL osl_acquireVolumeDeviceHandle( oslVolumeDeviceHandle Handle );
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_acquireVolumeDeviceHandle( oslVolumeDeviceHandle Handle );
-
-
- /** Get the full qualified URL where a device is mounted to.
-@@ -559,7 +559,7 @@
- @see osl_unmountVolumeDevice()
- */
-
--oslFileError SAL_CALL osl_getVolumeDeviceMountPath( oslVolumeDeviceHandle Handle, rtl_uString **ppustrDirectoryURL);
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getVolumeDeviceMountPath( oslVolumeDeviceHandle Handle, rtl_uString **ppustrDirectoryURL);
-
- /* Volume attributes */
-
-@@ -654,7 +654,7 @@
- @see oslVolumeInfo
- */
-
--oslFileError SAL_CALL osl_getVolumeInformation(
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getVolumeInformation(
- rtl_uString *pustrDirectoryURL,
- oslVolumeInfo *pInfo,
- sal_uInt32 uFieldMask );
-@@ -716,7 +716,7 @@
- @see osl_getFileSize()
- */
-
--oslFileError SAL_CALL osl_openFile( rtl_uString *pustrFileURL, oslFileHandle *pHandle, sal_uInt32 uFlags );
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_openFile( rtl_uString *pustrFileURL, oslFileHandle *pHandle, sal_uInt32 uFlags );
-
- #define osl_Pos_Absolut 1
- #define osl_Pos_Current 2
-@@ -742,7 +742,7 @@
- @see osl_getFilePos()
- */
-
--oslFileError SAL_CALL osl_setFilePos( oslFileHandle Handle, sal_uInt32 uHow, sal_Int64 uPos );
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_setFilePos( oslFileHandle Handle, sal_uInt32 uHow, sal_Int64 uPos );
-
-
- /** Retrieve the current position of the internal pointer of an open file.
-@@ -764,7 +764,7 @@
- @see osl_writeFile()
- */
-
--oslFileError SAL_CALL osl_getFilePos( oslFileHandle Handle, sal_uInt64 *pPos );
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getFilePos( oslFileHandle Handle, sal_uInt64 *pPos );
-
-
- /** Set the file size of an open file.
-@@ -789,7 +789,7 @@
- @see osl_getFileSize()
- */
-
--oslFileError SAL_CALL osl_setFileSize( oslFileHandle Handle, sal_uInt64 uSize );
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_setFileSize( oslFileHandle Handle, sal_uInt64 uSize );
-
-
- /** Get the file size of an open file.
-@@ -813,7 +813,7 @@
- @see osl_getFileStatus()
- */
-
--oslFileError SAL_CALL osl_getFileSize( oslFileHandle Handle, sal_uInt64 *pSize );
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getFileSize( oslFileHandle Handle, sal_uInt64 *pSize );
-
-
- /** Read a number of bytes from a file.
-@@ -851,7 +851,7 @@
- @see osl_setFilePos()
- */
-
--oslFileError SAL_CALL osl_readFile( oslFileHandle Handle, void *pBuffer, sal_uInt64 uBytesRequested, sal_uInt64 *pBytesRead );
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_readFile( oslFileHandle Handle, void *pBuffer, sal_uInt64 uBytesRequested, sal_uInt64 *pBytesRead );
-
-
- /** Test if the end of a file is reached.
-@@ -879,7 +879,7 @@
- @see osl_setFilePos()
- */
-
--oslFileError SAL_CALL osl_isEndOfFile( oslFileHandle Handle, sal_Bool *pIsEOF );
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_isEndOfFile( oslFileHandle Handle, sal_Bool *pIsEOF );
-
-
- /** Write a number of bytes to a file.
-@@ -919,7 +919,7 @@
- @see osl_setFilePos()
- */
-
--oslFileError SAL_CALL osl_writeFile( oslFileHandle Handle, const void *pBuffer, sal_uInt64 uBytesToWrite, sal_uInt64 *pBytesWritten );
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_writeFile( oslFileHandle Handle, const void *pBuffer, sal_uInt64 uBytesToWrite, sal_uInt64 *pBytesWritten );
-
-
- /** Read a line from a file.
-@@ -949,7 +949,7 @@
- @see osl_setFilePos()
- */
-
--oslFileError SAL_CALL osl_readLine( oslFileHandle Handle, sal_Sequence** ppSequence );
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_readLine( oslFileHandle Handle, sal_Sequence** ppSequence );
-
- /** Synchronize the memory representation of a file with that on the physical medium.
-
-@@ -985,7 +985,7 @@
- @see osl_openFile()
- @see osl_writeFile()
- */
--oslFileError SAL_CALL osl_syncFile(oslFileHandle Handle);
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_syncFile(oslFileHandle Handle);
-
- /** Close an open file.
-
-@@ -1004,7 +1004,7 @@
- @see osl_openFile()
- */
-
--oslFileError SAL_CALL osl_closeFile( oslFileHandle Handle );
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_closeFile( oslFileHandle Handle );
-
-
- /** Create a directory.
-@@ -1034,7 +1034,7 @@
- @see osl_removeDirectory()
- */
-
--oslFileError SAL_CALL osl_createDirectory( rtl_uString* pustrDirectoryURL );
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_createDirectory( rtl_uString* pustrDirectoryURL );
-
-
- /** Remove an empty directory.
-@@ -1065,7 +1065,7 @@
- @see osl_createDirectory()
- */
-
--oslFileError SAL_CALL osl_removeDirectory( rtl_uString* pustrDirectoryURL );
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_removeDirectory( rtl_uString* pustrDirectoryURL );
-
- /** Function pointer representing a function that will be called by osl_createDirectoryPath
- if a directory has been created.
-@@ -1143,7 +1143,7 @@
- @see oslFileError
- @see osl_createDirectory
- */
--oslFileError SAL_CALL osl_createDirectoryPath(
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_createDirectoryPath(
- rtl_uString* aDirectoryUrl,
- oslDirectoryCreationCallbackFunc aDirectoryCreationCallbackFunc,
- void* pData);
-@@ -1176,7 +1176,7 @@
- @see osl_openFile()
- */
-
--oslFileError SAL_CALL osl_removeFile( rtl_uString* pustrFileURL );
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_removeFile( rtl_uString* pustrFileURL );
-
-
- /** Copy a file to a new destination.
-@@ -1205,7 +1205,7 @@
- @see osl_removeFile()
- */
-
--oslFileError SAL_CALL osl_copyFile( rtl_uString* pustrSourceFileURL, rtl_uString *pustrDestFileURL );
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_copyFile( rtl_uString* pustrSourceFileURL, rtl_uString *pustrDestFileURL );
-
-
- /** Move a file or directory to a new destination or renames it.
-@@ -1232,7 +1232,7 @@
- @see osl_copyFile()
- */
-
--oslFileError SAL_CALL osl_moveFile( rtl_uString* pustrSourceFileURL, rtl_uString *pustrDestFileURL );
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_moveFile( rtl_uString* pustrSourceFileURL, rtl_uString *pustrDestFileURL );
-
-
- /** Determine a valid unused canonical name for a requested name.
-@@ -1256,7 +1256,7 @@
- @see osl_getFileStatus()
- */
-
--oslFileError SAL_CALL osl_getCanonicalName( rtl_uString *pustrRequestedURL, rtl_uString **ppustrValidURL);
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getCanonicalName( rtl_uString *pustrRequestedURL, rtl_uString **ppustrValidURL);
-
-
- /** Convert a path relative to a given directory into an full qualified file URL.
-@@ -1294,7 +1294,7 @@
- @see osl_getFileStatus()
- */
-
--oslFileError SAL_CALL osl_getAbsoluteFileURL(
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getAbsoluteFileURL(
- rtl_uString* pustrBaseDirectoryURL,
- rtl_uString *pustrRelativeFileURL,
- rtl_uString **ppustrAbsoluteFileURL );
-@@ -1315,7 +1315,7 @@
- @see osl_getSystemPathFromFileURL()
- */
-
--oslFileError SAL_CALL osl_getFileURLFromSystemPath( rtl_uString *pustrSystemPath, rtl_uString **ppustrFileURL);
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getFileURLFromSystemPath( rtl_uString *pustrSystemPath, rtl_uString **ppustrFileURL);
-
-
- /** Searche a full qualified system path or a file URL.
-@@ -1346,7 +1346,7 @@
- @see osl_getSystemPathFromFileURL()
- */
-
--oslFileError SAL_CALL osl_searchFileURL( rtl_uString *pustrFileName, rtl_uString *pustrSearchPath, rtl_uString **ppustrFileURL );
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_searchFileURL( rtl_uString *pustrFileName, rtl_uString *pustrSearchPath, rtl_uString **ppustrFileURL );
-
-
- /** Convert a file URL into a system dependend path.
-@@ -1364,7 +1364,7 @@
- @see osl_getFileURLFromSystemPath()
- */
-
--oslFileError SAL_CALL osl_getSystemPathFromFileURL( rtl_uString *pustrFileURL, rtl_uString **ppustrSystemPath);
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getSystemPathFromFileURL( rtl_uString *pustrFileURL, rtl_uString **ppustrSystemPath);
-
-
- /** Function pointer representing the function called back from osl_abbreviateSystemPath
-@@ -1403,7 +1403,7 @@
- @see oslCalcTextWidthFunc
- */
-
--oslFileError SAL_CALL osl_abbreviateSystemPath(
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_abbreviateSystemPath(
- rtl_uString *ustrSystemPath,
- rtl_uString **pustrCompacted,
- sal_uInt32 uMaxWidth,
-@@ -1425,7 +1425,7 @@
- @see osl_getFileStatus()
- */
-
--oslFileError SAL_CALL osl_setFileAttributes( rtl_uString *pustrFileURL, sal_uInt64 uAttributes );
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_setFileAttributes( rtl_uString *pustrFileURL, sal_uInt64 uAttributes );
-
-
- /** Set the file time.
-@@ -1450,7 +1450,7 @@
- @see osl_getFileStatus()
- */
-
--oslFileError SAL_CALL osl_setFileTime(
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_setFileTime(
- rtl_uString *pustrFileURL,
- const TimeValue *aCreationTime,
- const TimeValue *aLastAccessTime,
-@@ -1467,7 +1467,7 @@
- osl_File_E_NOENT no such file or directory not found
- */
-
--oslFileError SAL_CALL osl_getTempDirURL( rtl_uString **pustrTempDirURL );
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getTempDirURL( rtl_uString **pustrTempDirURL );
-
-
- /** Creates a temporary file in the directory provided by the caller or the
-@@ -1522,7 +1522,7 @@
- @see osl_getTempDirURL()
- */
-
--oslFileError SAL_CALL osl_createTempFile(
-+oslFileError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_createTempFile(
- rtl_uString* pustrDirectoryURL,
- oslFileHandle* pHandle,
- rtl_uString** ppustrTempFileURL);
-@@ -1532,5 +1532,3 @@
- #endif
-
- #endif /* _OSL_FILE_H_ */
--
--
---- ./sal/inc/osl/process.h.opt 2005-09-08 14:30:44.000000000 +0000
-+++ ./sal/inc/osl/process.h 2005-10-31 16:29:51.000000000 +0000
-@@ -206,7 +206,7 @@
- @see osl_freeProcessHandle
- @see osl_loginUser
- */
--oslProcessError SAL_CALL osl_executeProcess(
-+oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_executeProcess(
- rtl_uString* ustrImageName,
- rtl_uString* ustrArguments[],
- sal_uInt32 nArguments,
-@@ -292,7 +292,7 @@
- @see osl_loginUser
- @see osl_closeFile
- */
--oslProcessError SAL_CALL osl_executeProcess_WithRedirectedIO(
-+oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_executeProcess_WithRedirectedIO(
- rtl_uString* strImageName,
- rtl_uString* ustrArguments[],
- sal_uInt32 nArguments,
-@@ -313,7 +313,7 @@
- @see osl_getProcess
- @see osl_joinProcess
- */
--oslProcessError SAL_CALL osl_terminateProcess(oslProcess Process);
-+oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_terminateProcess(oslProcess Process);
-
-
- /** @deprecated
-@@ -322,13 +322,13 @@
-
- @return the process handle on success, NULL in all other cases
- */
--oslProcess SAL_CALL osl_getProcess(oslProcessIdentifier Ident);
-+oslProcess SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getProcess(oslProcessIdentifier Ident);
-
-
- /** Free the specified proces-handle.
- @param Process [in]
- */
--void SAL_CALL osl_freeProcessHandle(oslProcess Process);
-+void SAL_CALL SAL_DLLPUBLIC_EXPORT osl_freeProcessHandle(oslProcess Process);
-
-
- /** Wait for completation of the specified childprocess.
-@@ -336,7 +336,7 @@
- @return ols_Process_E_None
- @see osl_executeProcess
- */
--oslProcessError SAL_CALL osl_joinProcess(oslProcess Process);
-+oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_joinProcess(oslProcess Process);
-
- /** Wait with a timeout for the completion of the specified child
- process.
-@@ -355,7 +355,7 @@
-
- @see osl_executeProcess
- */
--oslProcessError SAL_CALL osl_joinProcessWithTimeout(oslProcess Process, const TimeValue* pTimeout);
-+oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_joinProcessWithTimeout(oslProcess Process, const TimeValue* pTimeout);
-
- /** Retrieves information about a Process
- @param Process [in] the process handle of the process
-@@ -372,7 +372,7 @@
- retrieved valid information fields.
- @return osl_Process_E_None on success, osl_Process_E_Unknown on failure.
- */
--oslProcessError SAL_CALL osl_getProcessInfo(oslProcess Process, oslProcessData Fields,
-+oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getProcessInfo(oslProcess Process, oslProcessData Fields,
- oslProcessInfo* pInfo);
-
- /** Get the filename of the executable.
-@@ -380,13 +380,13 @@
- @return osl_Process_E_None or does not return.
- @see osl_executeProcess
- */
--oslProcessError SAL_CALL osl_getExecutableFile(rtl_uString **strFile);
-+oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getExecutableFile(rtl_uString **strFile);
-
- /** @return the number of commandline arguments passed to the main-function of
- this process
- @see osl_getCommandArg
- */
--sal_uInt32 SAL_CALL osl_getCommandArgCount(void);
-+sal_uInt32 SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getCommandArgCount(void);
-
- /** Get the nArg-th command-line argument passed to the main-function of this process.
- @param nArg [in] The number of the argument to return.
-@@ -394,7 +394,7 @@
- @return osl_Process_E_None or does not return.
- @see osl_executeProcess
- */
--oslProcessError SAL_CALL osl_getCommandArg(sal_uInt32 nArg, rtl_uString **strCommandArg);
-+oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getCommandArg(sal_uInt32 nArg, rtl_uString **strCommandArg);
-
- /** Set the command-line arguments as passed to the main-function of this process.
- @param argc [in] The number of elements in the argv array.
-@@ -403,13 +403,13 @@
- @see osl_getCommandArgCount
- @see osl_getCommandArg
- */
--void SAL_CALL osl_setCommandArgs (int argc, char **argv);
-+void SAL_CALL SAL_DLLPUBLIC_EXPORT osl_setCommandArgs (int argc, char **argv);
-
- /** Get the value of one enviroment variable.
- @param strVar [in] denotes the name of the variable to get.
- @param strValue [out] string that receives the value of environment variable.
- */
--oslProcessError SAL_CALL osl_getEnvironment(rtl_uString *strVar, rtl_uString **strValue);
-+oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getEnvironment(rtl_uString *strVar, rtl_uString **strValue);
-
- /** Get the working directory of the current process as a file URL.
-
-@@ -417,7 +417,7 @@
- @param pustrWorkingDir [out] string that receives the working directory file URL.
- */
-
--oslProcessError SAL_CALL osl_getProcessWorkingDir( rtl_uString **pustrWorkingDir );
-+oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getProcessWorkingDir( rtl_uString **pustrWorkingDir );
-
- /** Get the locale the process is currently running in.
-
-@@ -428,7 +428,7 @@
- @see osl_setProcessLocale
- */
-
--oslProcessError SAL_CALL osl_getProcessLocale( rtl_Locale ** ppLocale );
-+oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_getProcessLocale( rtl_Locale ** ppLocale );
-
- /** Change the locale of the process.
-
-@@ -436,12 +436,12 @@
- @see osl_getProcessLocale
- */
-
--oslProcessError SAL_CALL osl_setProcessLocale( rtl_Locale * pLocale );
-+oslProcessError SAL_CALL SAL_DLLPUBLIC_EXPORT osl_setProcessLocale( rtl_Locale * pLocale );
-
-
--sal_Bool SAL_CALL osl_sendResourcePipe(oslPipe Pipe, oslSocket Socket);
-+sal_Bool SAL_CALL SAL_DLLPUBLIC_EXPORT osl_sendResourcePipe(oslPipe Pipe, oslSocket Socket);
-
--oslSocket SAL_CALL osl_receiveResourcePipe(oslPipe Pipe);
-+oslSocket SAL_CALL SAL_DLLPUBLIC_EXPORT osl_receiveResourcePipe(oslPipe Pipe);
-
- #ifdef __cplusplus
- }
---- ./sal/inc/rtl/unload.h.opt 2005-09-08 14:43:39.000000000 +0000
-+++ ./sal/inc/rtl/unload.h 2005-10-31 16:29:51.000000000 +0000
-@@ -179,7 +179,7 @@
- @param module a module handle as is obtained by osl_loadModule
- @return sal_True - the module could be registered for unloading, sal_False otherwise
- */
--sal_Bool SAL_CALL rtl_registerModuleForUnloading( oslModule module);
-+sal_Bool SAL_CALL SAL_DLLPUBLIC_EXPORT rtl_registerModuleForUnloading( oslModule module);
-
- /**
- The function revokes the registration of a module. By calling the function for
-@@ -192,7 +192,7 @@
-
- @param module a module handle as is obtained by osl_loadModule
- */
--void SAL_CALL rtl_unregisterModuleForUnloading( oslModule module);
-+void SAL_CALL SAL_DLLPUBLIC_EXPORT rtl_unregisterModuleForUnloading( oslModule module);
- /**
- This function sets off the unloading mechanism. At first it notifies the
- unloading listeners in order to give them a chance to do cleanup and get
-@@ -218,7 +218,7 @@
- @param libUnused span of time that a module must be unused to be unloaded. the
- argument is optional.
- */
--void SAL_CALL rtl_unloadUnusedModules( TimeValue* libUnused);
-+void SAL_CALL SAL_DLLPUBLIC_EXPORT rtl_unloadUnusedModules( TimeValue* libUnused);
-
- /**
- rtl_addUnloadingListener takes an argument of this type.
-@@ -240,7 +240,7 @@
- @param this - a value to distinguish different listener instances
- @return identifier which is used in rtl_removeUnloadingListener
- */
--sal_Int32 SAL_CALL rtl_addUnloadingListener( rtl_unloadingListenerFunc callback, void* _this);
-+sal_Int32 SAL_CALL SAL_DLLPUBLIC_EXPORT rtl_addUnloadingListener( rtl_unloadingListenerFunc callback, void* _this);
-
- /**
- Listeners (the callback functions) must be unregistered before the listener code
-@@ -250,7 +250,7 @@
-
- @param cookie is an identifier as returned by <code>rtl_addUnloadingListener</code> function.
- */
--void SAL_CALL rtl_removeUnloadingListener( sal_Int32 cookie );
-+void SAL_CALL SAL_DLLPUBLIC_EXPORT rtl_removeUnloadingListener( sal_Int32 cookie );
-
-
- /**
-@@ -310,17 +310,17 @@
- /** Default implementation for <code>rtl_ModuleCount.acquire</code>. Use this function along with
- <code>rtl_StandardModuleCount</code>.
- */
--void rtl_moduleCount_acquire(rtl_ModuleCount * that );
-+void SAL_DLLPUBLIC_EXPORT rtl_moduleCount_acquire(rtl_ModuleCount * that );
- /** Default implementation for <code>rtl_ModuleCount.release</code>.
- Use this function along with
- <code>rtl_StandardModuleCount</code>.
- */
--void rtl_moduleCount_release( rtl_ModuleCount * that );
-+void SAL_DLLPUBLIC_EXPORT rtl_moduleCount_release( rtl_ModuleCount * that );
-
- /** Default implementation for <code>component_canUnload</code>. Use this function along with
- <code>rtl_StandardModuleCount</code>.
- */
--sal_Bool rtl_moduleCount_canUnload( rtl_StandardModuleCount * that, TimeValue* libUnused);
-+sal_Bool SAL_DLLPUBLIC_EXPORT rtl_moduleCount_canUnload( rtl_StandardModuleCount * that, TimeValue* libUnused);
-
-
- #ifdef __cplusplus
---- ./solenv/inc/unxlngi6.mk.opt 2005-10-31 16:15:17.000000000 +0000
-+++ ./solenv/inc/unxlngi6.mk 2005-10-31 16:33:13.000000000 +0000
-@@ -64,7 +64,7 @@
-
- # architecture dependent flags for the C and C++ compiler that can be changed by
- # exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build
--ARCH_FLAGS*=-mtune=pentiumpro
-+ARCH_FLAGS*=-march=i686 -mtune=i686
-
- # name of C++ Compiler
- CXX*=g++
-@@ -79,25 +79,25 @@
-
- # flags to enable build with symbols; required for crashdump feature
- .IF "$(ENABLE_SYMBOLS)"=="SMALL"
--CFLAGSENABLESYMBOLS=-g1
-+CFLAGSENABLESYMBOLS=
- .ELSE
--CFLAGSENABLESYMBOLS=-g # was temporarily commented out, reenabled before Beta
-+CFLAGSENABLESYMBOLS= # was temporarily commented out, reenabled before Beta
-
- .ENDIF
-
- # flags for the C++ Compiler
--CFLAGSCC= -pipe $(ARCH_FLAGS)
-+CFLAGSCC= -O2 -Os -fno-omit-frame-pointer -fweb -frename-registers -pipe $(ARCH_FLAGS)
- # Flags for enabling exception handling
- CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs
- # Flags for disabling exception handling
- CFLAGS_NO_EXCEPTIONS=-fno-exceptions
-
- # -fpermissive should be removed as soon as possible
--CFLAGSCXX= -pipe $(ARCH_FLAGS)
-+CFLAGSCXX= -O2 -Os -fno-omit-frame-pointer -fweb -frename-registers -pipe $(ARCH_FLAGS)
- CFLAGSCXX+= -Wno-ctor-dtor-privacy
- PICSWITCH:=-fpic
- .IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
--CFLAGSCXX += -fvisibility-inlines-hidden
-+CFLAGSCXX += -fvisibility-inlines-hidden # -fvisibility=hidden
- .ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE"
-
- # Compiler flags for compiling static object in single threaded environment with graphical user interface
-@@ -115,14 +115,14 @@
- # Compiler flags for profiling
- CFLAGSPROF=
- # Compiler flags for debugging
--CFLAGSDEBUG=-g
-+CFLAGSDEBUG=
- CFLAGSDBGUTIL=
- # Compiler flags for enabling optimizations
- .IF "$(PRODUCT)"!=""
--CFLAGSOPT=-Os -fno-strict-aliasing # optimizing for products
-+CFLAGSOPT=-O2 -Os -fno-omit-frame-pointer -fweb -frename-registers -fno-strict-aliasing # optimizing for products
- CFLAGSOPT+=-Wuninitialized # not supported without optimization
- .ELSE # "$(PRODUCT)"!=""
--CFLAGSOPT= # no optimizing for non products
-+CFLAGSOPT=-O2 -Os -fno-omit-frame-pointer -fweb -frename-registers -fno-strict-aliasing # no optimizing for non products
- .ENDIF # "$(PRODUCT)"!=""
- # Compiler flags for disabling optimizations
- CFLAGSNOOPT=-O0
-@@ -156,12 +156,12 @@
-
- LINKFLAGSTACK=
- LINKFLAGSPROF=
--LINKFLAGSDEBUG=-g
-+LINKFLAGSDEBUG=
- LINKFLAGSOPT=
-
- # linker flags for optimization (symbol hashtable)
- # for now, applied to symbol scoped libraries, only
--LINKFLAGSOPTIMIZE*=-Wl,-O1
-+LINKFLAGSOPTIMIZE*=-Wl,-O2
- LINKVERSIONMAPFLAG=$(LINKFLAGSOPTIMIZE) -Wl,--version-script
-
- SONAME_SWITCH=-Wl,-h
---- ./store/inc/store/store.h.opt 2005-09-08 08:39:22.000000000 +0000
-+++ ./store/inc/store/store.h 2005-10-31 16:29:51.000000000 +0000
-@@ -53,7 +53,7 @@
- @param Handle [in] the Handle.
- @return store_E_None upon success
- */
--storeError SAL_CALL store_acquireHandle (
-+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_acquireHandle (
- storeHandle Handle
- ) SAL_THROW_EXTERN_C();
-
-@@ -63,7 +63,7 @@
- @return store_E_None upon success,
- store_E_InvalidHandle otherwise.
- */
--storeError SAL_CALL store_releaseHandle (
-+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_releaseHandle (
- storeHandle Handle
- ) SAL_THROW_EXTERN_C();
-
-@@ -80,7 +80,7 @@
- @param phFile [out] the File Handle.
- @return store_E_None upon success
- */
--storeError SAL_CALL store_createMemoryFile (
-+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_createMemoryFile (
- sal_uInt16 nPageSize,
- storeFileHandle *phFile
- ) SAL_THROW_EXTERN_C();
-@@ -98,7 +98,7 @@
- @param phFile [out] the File Handle.
- @return store_E_None upon success
- */
--storeError SAL_CALL store_openFile (
-+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_openFile (
- rtl_uString *pFilename,
- storeAccessMode eAccessMode,
- sal_uInt16 nPageSize,
-@@ -111,7 +111,7 @@
- @return store_E_None upon success,
- store_E_InvalidHandle otherwise.
- */
--storeError SAL_CALL store_closeFile (
-+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_closeFile (
- storeFileHandle hFile
- ) SAL_THROW_EXTERN_C();
-
-@@ -120,7 +120,7 @@
- @param hFile [in] the File Handle.
- @return store_E_None upon success
- */
--storeError SAL_CALL store_flushFile (
-+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_flushFile (
- storeFileHandle hFile
- ) SAL_THROW_EXTERN_C();
-
-@@ -130,7 +130,7 @@
- @param pnRefCount [out] number of open directories and streams.
- @return store_E_None upon success
- */
--storeError SAL_CALL store_getFileRefererCount (
-+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_getFileRefererCount (
- storeFileHandle hFile,
- sal_uInt32 *pnRefCount
- ) SAL_THROW_EXTERN_C();
-@@ -141,7 +141,7 @@
- @param pnSize [out] the file size in bytes.
- @return store_E_None upon success
- */
--storeError SAL_CALL store_getFileSize (
-+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_getFileSize (
- storeFileHandle hFile,
- sal_uInt32 *pnSize
- ) SAL_THROW_EXTERN_C();
-@@ -154,7 +154,7 @@
- @param pDstFilename [in] created with store_AccessCreate.
- @return store_E_None upon success
- */
--storeError SAL_CALL store_rebuildFile (
-+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_rebuildFile (
- rtl_uString *pSrcFilename,
- rtl_uString *pDstFilename
- ) SAL_THROW_EXTERN_C();
-@@ -176,7 +176,7 @@
- @param phDirectory [out] the Directory Handle.
- @return store_E_None upon success
- */
--storeError SAL_CALL store_openDirectory (
-+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_openDirectory (
- storeFileHandle hFile,
- rtl_uString *pPath,
- rtl_uString *pName,
-@@ -190,7 +190,7 @@
- @return store_E_None upon success,
- store_E_InvalidHandle otherwise.
- */
--storeError SAL_CALL store_closeDirectory (
-+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_closeDirectory (
- storeDirectoryHandle hDirectory
- ) SAL_THROW_EXTERN_C();
-
-@@ -201,7 +201,7 @@
- @return store_E_None upon success,
- store_E_NoMoreFile upon end of iteration.
- */
--storeError SAL_CALL store_findFirst (
-+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_findFirst (
- storeDirectoryHandle hDirectory,
- storeFindData *pFindData
- ) SAL_THROW_EXTERN_C();
-@@ -213,7 +213,7 @@
- @return store_E_None upon success,
- store_E_NoMoreFile upon end of iteration.
- */
--storeError SAL_CALL store_findNext (
-+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_findNext (
- storeDirectoryHandle hDirectory,
- storeFindData *pFindData
- ) SAL_THROW_EXTERN_C();
-@@ -235,7 +235,7 @@
- @param phStrm [out] the Stream Handle.
- @return store_E_None upon success
- */
--storeError SAL_CALL store_openStream (
-+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_openStream (
- storeFileHandle hFile,
- rtl_uString *pPath,
- rtl_uString *pName,
-@@ -249,7 +249,7 @@
- @return store_E_None upon success,
- store_E_InvalidHandle otherwise.
- */
--storeError SAL_CALL store_closeStream (
-+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_closeStream (
- storeStreamHandle hStrm
- ) SAL_THROW_EXTERN_C();
-
-@@ -262,7 +262,7 @@
- @param pnDone [out] the number of bytes actually read.
- @return store_E_None upon success
- */
--storeError SAL_CALL store_readStream (
-+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_readStream (
- storeStreamHandle hStrm,
- sal_uInt32 nOffset,
- void *pBuffer,
-@@ -279,7 +279,7 @@
- @param pnDone [out] the number of bytes actually written.
- @return store_E_None upon success
- */
--storeError SAL_CALL store_writeStream (
-+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_writeStream (
- storeStreamHandle hStrm,
- sal_uInt32 nOffset,
- const void *pBuffer,
-@@ -292,7 +292,7 @@
- @param hStrm [in] the Stream Handle.
- @return store_E_None upon success
- */
--storeError SAL_CALL store_flushStream (
-+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_flushStream (
- storeStreamHandle hStrm
- ) SAL_THROW_EXTERN_C();
-
-@@ -302,7 +302,7 @@
- @param pnSize [out] the stream size in bytes.
- @return store_E_None upon success
- */
--storeError SAL_CALL store_getStreamSize (
-+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_getStreamSize (
- storeStreamHandle hStrm,
- sal_uInt32 *pnSize
- ) SAL_THROW_EXTERN_C();
-@@ -313,7 +313,7 @@
- @param nSize [in] the new stream size in bytes.
- @return store_E_None upon success
- */
--storeError SAL_CALL store_setStreamSize (
-+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_setStreamSize (
- storeStreamHandle hStrm,
- sal_uInt32 nSize
- ) SAL_THROW_EXTERN_C();
-@@ -329,7 +329,7 @@
- @param pnAttrib [out] the resulting attributes, may be NULL.
- @return store_E_None upon success
- */
--storeError SAL_CALL store_attrib (
-+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_attrib (
- storeFileHandle hFile,
- rtl_uString *pPath,
- rtl_uString *pName,
-@@ -351,7 +351,7 @@
- @param pDstName [in] the Destination name
- @return store_E_None upon success
- */
--storeError SAL_CALL store_link (
-+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_link (
- storeFileHandle hFile,
- rtl_uString *pSrcPath, rtl_uString *pSrcName,
- rtl_uString *pDstPath, rtl_uString *pDstName
-@@ -370,7 +370,7 @@
- @param pDstName [in] the Destination name
- @return store_E_None upon success
- */
--storeError SAL_CALL store_symlink (
-+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_symlink (
- storeFileHandle hFile,
- rtl_uString *pSrcPath, rtl_uString *pSrcName,
- rtl_uString *pDstPath, rtl_uString *pDstName
-@@ -385,7 +385,7 @@
- @param pDstName [in] the Destination name
- @return store_E_None upon success
- */
--storeError SAL_CALL store_rename (
-+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_rename (
- storeFileHandle hFile,
- rtl_uString *pSrcPath, rtl_uString *pSrcName,
- rtl_uString *pDstPath, rtl_uString *pDstName
-@@ -398,7 +398,7 @@
- @param pName [in] the entry name
- @return store_E_None upon success
- */
--storeError SAL_CALL store_remove (
-+storeError SAL_CALL SAL_DLLPUBLIC_EXPORT store_remove (
- storeFileHandle hFile,
- rtl_uString *pPath,
- rtl_uString *pName
---- ./registry/inc/registry/writer.h.opt 2005-09-09 05:14:13.000000000 +0000
-+++ ./registry/inc/registry/writer.h 2005-10-31 16:29:51.000000000 +0000
-@@ -84,7 +84,7 @@
- rtl_uString const * fileName, RTTypeClass typeClass, sal_Bool published,
- rtl_uString const * typeName, sal_uInt16 superTypeCount,
- sal_uInt16 fieldCount, sal_uInt16 methodCount, sal_uInt16 referenceCount)
-- SAL_THROW_EXTERN_C();
-+ SAL_THROW_EXTERN_C() SAL_DLLPUBLIC_EXPORT;
-
- /**
- Destroys a type writer.
-@@ -94,7 +94,7 @@
-
- @since UDK 3.2.0
- */
--void SAL_CALL typereg_writer_destroy(void * handle) SAL_THROW_EXTERN_C();
-+void SAL_CALL SAL_DLLPUBLIC_EXPORT typereg_writer_destroy(void * handle) SAL_THROW_EXTERN_C();
-
- /**
- Sets the type name of a super type of a type writer.
-@@ -111,7 +111,7 @@
-
- @since UDK 3.2.0
- */
--sal_Bool SAL_CALL typereg_writer_setSuperTypeName(
-+sal_Bool SAL_CALL SAL_DLLPUBLIC_EXPORT typereg_writer_setSuperTypeName(
- void * handle, sal_uInt16 index, rtl_uString const * typeName)
- SAL_THROW_EXTERN_C();
-
-@@ -141,7 +141,7 @@
-
- @since UDK 3.2.0
- */
--sal_Bool SAL_CALL typereg_writer_setFieldData(
-+sal_Bool SAL_CALL SAL_DLLPUBLIC_EXPORT typereg_writer_setFieldData(
- void * handle, sal_uInt16 index, rtl_uString const * documentation,
- rtl_uString const * fileName, RTFieldAccess flags, rtl_uString const * name,
- rtl_uString const * typeName, RTValueType valueType,
-@@ -172,7 +172,7 @@
-
- @since UDK 3.2.0
- */
--sal_Bool SAL_CALL typereg_writer_setMethodData(
-+sal_Bool SAL_CALL SAL_DLLPUBLIC_EXPORT typereg_writer_setMethodData(
- void * handle, sal_uInt16 index, rtl_uString const * documentation,
- RTMethodMode flags, rtl_uString const * name,
- rtl_uString const * returnTypeName, sal_uInt16 parameterCount,
-@@ -201,7 +201,7 @@
-
- @since UDK 3.2.0
- */
--sal_Bool SAL_CALL typereg_writer_setMethodParameterData(
-+sal_Bool SAL_CALL SAL_DLLPUBLIC_EXPORT typereg_writer_setMethodParameterData(
- void * handle, sal_uInt16 methodIndex, sal_uInt16 parameterIndex,
- RTParamMode flags, rtl_uString const * name, rtl_uString const * typeName)
- SAL_THROW_EXTERN_C();
-@@ -224,7 +224,7 @@
-
- @since UDK 3.2.0
- */
--sal_Bool SAL_CALL typereg_writer_setMethodExceptionTypeName(
-+sal_Bool SAL_CALL SAL_DLLPUBLIC_EXPORT typereg_writer_setMethodExceptionTypeName(
- void * handle, sal_uInt16 methodIndex, sal_uInt16 exceptionIndex,
- rtl_uString const * typeName)
- SAL_THROW_EXTERN_C();
-@@ -250,7 +250,7 @@
-
- @since UDK 3.2.0
- */
--sal_Bool SAL_CALL typereg_writer_setReferenceData(
-+sal_Bool SAL_CALL SAL_DLLPUBLIC_EXPORT typereg_writer_setReferenceData(
- void * handle, sal_uInt16 index, rtl_uString const * documentation,
- RTReferenceType sort, RTFieldAccess flags, rtl_uString const * typeName)
- SAL_THROW_EXTERN_C();
-@@ -268,7 +268,7 @@
- and <code>size</code> is not modified
- */
- void const * SAL_CALL typereg_writer_getBlob(void * handle, sal_uInt32 * size)
-- SAL_THROW_EXTERN_C();
-+ SAL_THROW_EXTERN_C() SAL_DLLPUBLIC_EXPORT;
-
- #ifdef __cplusplus
- }
---- ./registry/inc/registry/registry.h.opt 2005-09-09 05:12:56.000000000 +0000
-+++ ./registry/inc/registry/registry.h 2005-10-31 16:29:51.000000000 +0000
-@@ -60,7 +60,7 @@
- reg_closeKey. If the function fails, phNewKey is NULL.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_createKey(RegKeyHandle hKey,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_createKey(RegKeyHandle hKey,
- rtl_uString* keyName,
- RegKeyHandle* phNewKey);
-
-@@ -75,7 +75,7 @@
- reg_closeKey. If the function fails, phNewKey is NULL.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_openKey(RegKeyHandle hKey,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_openKey(RegKeyHandle hKey,
- rtl_uString* keyName,
- RegKeyHandle* phOpenKey);
-
-@@ -93,7 +93,7 @@
- @param pnSubKeys specifies the length of the array (the number of open subkeys).
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_openSubKeys(RegKeyHandle hKey,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_openSubKeys(RegKeyHandle hKey,
- rtl_uString* keyName,
- RegKeyHandle** pphSubKeys,
- sal_uInt32* pnSubKeys);
-@@ -106,7 +106,7 @@
- @param nSubKeys specifies the length of the array (the number of subkeys to closed).
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_closeSubKeys(RegKeyHandle* phSubKeys,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_closeSubKeys(RegKeyHandle* phSubKeys,
- sal_uInt32 nSubKeys);
-
-
-@@ -118,7 +118,7 @@
- be deleted.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_deleteKey(RegKeyHandle hKey,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_deleteKey(RegKeyHandle hKey,
- rtl_uString* keyName);
-
-
-@@ -128,7 +128,7 @@
- The memory of the variable specifying the key will be freed.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_closeKey(RegKeyHandle hKey);
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_closeKey(RegKeyHandle hKey);
-
-
- /** This function returns the name of a key.
-@@ -136,7 +136,7 @@
- @param hKey identifies a currently open key which name will be returned.
- @param pKeyName contains the keyname if succeeds else an empty string.
- */
--const RegError REGISTRY_CALLTYPE reg_getKeyName(RegKeyHandle hKey, rtl_uString** pKeyName);
-+const RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getKeyName(RegKeyHandle hKey, rtl_uString** pKeyName);
-
-
- /** This function sets a value of a key.
-@@ -151,7 +151,7 @@
- @param valueSize specifies the size of pData in bytes
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_setValue(RegKeyHandle hKey,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_setValue(RegKeyHandle hKey,
- rtl_uString* keyName,
- RegValueType valueType,
- RegValue pData,
-@@ -167,7 +167,7 @@
- @param len specifies the len of pValueList.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_setLongListValue(RegKeyHandle hKey,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_setLongListValue(RegKeyHandle hKey,
- rtl_uString* keyName,
- sal_Int32* pValueList,
- sal_uInt32 len);
-@@ -182,7 +182,7 @@
- @param len specifies the len of pValueList.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_setStringListValue(RegKeyHandle hKey,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_setStringListValue(RegKeyHandle hKey,
- rtl_uString* keyName,
- sal_Char** pValueList,
- sal_uInt32 len);
-@@ -197,7 +197,7 @@
- @param len specifies the len of pValueList.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_setUnicodeListValue(RegKeyHandle hKey,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_setUnicodeListValue(RegKeyHandle hKey,
- rtl_uString* keyName,
- sal_Unicode** pValueList,
- sal_uInt32 len);
-@@ -214,7 +214,7 @@
- @param pValueSize returns the size of the value in bytes
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_getValueInfo(RegKeyHandle hKey,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getValueInfo(RegKeyHandle hKey,
- rtl_uString* keyName,
- RegValueType* pValueType,
- sal_uInt32* pValueSize);
-@@ -230,7 +230,7 @@
- @param pData points to an allocated memory block receiving the data of the value.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_getValue(RegKeyHandle hKey,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getValue(RegKeyHandle hKey,
- rtl_uString* keyName,
- RegValue pData);
-
-@@ -244,7 +244,7 @@
- @param pLen returns the length of the value list.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_getLongListValue(RegKeyHandle hKey,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getLongListValue(RegKeyHandle hKey,
- rtl_uString* keyName,
- sal_Int32** pValueList,
- sal_uInt32* pLen);
-@@ -259,7 +259,7 @@
- @param pLen returns the length of the value list.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_getStringListValue(RegKeyHandle hKey,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getStringListValue(RegKeyHandle hKey,
- rtl_uString* keyName,
- sal_Char*** pValueList,
- sal_uInt32* pLen);
-@@ -274,7 +274,7 @@
- @param pLen returns the length of the value list.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_getUnicodeListValue(RegKeyHandle hKey,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getUnicodeListValue(RegKeyHandle hKey,
- rtl_uString* keyName,
- sal_Unicode*** pValueList,
- sal_uInt32* pLen);
-@@ -287,7 +287,7 @@
- @param len specifies the length of the value list.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_freeValueList(RegValueType valueType,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_freeValueList(RegValueType valueType,
- RegValue pValueList,
- sal_uInt32 len);
-
-@@ -304,7 +304,7 @@
- link will be opened.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_createLink(RegKeyHandle hKey,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_createLink(RegKeyHandle hKey,
- rtl_uString* linkName,
- rtl_uString* linkTarget);
-
-@@ -315,7 +315,7 @@
- @param linkName points to a null terminated string specifying the name of the link.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_deleteLink(RegKeyHandle hKey,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_deleteLink(RegKeyHandle hKey,
- rtl_uString* linkName);
-
- /** This function returns the type of a key.
-@@ -328,7 +328,7 @@
- @param pKeyType returns the type of the key.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_getKeyType(RegKeyHandle hKey,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getKeyType(RegKeyHandle hKey,
- rtl_uString* keyName,
- RegKeyType* pKeyType);
-
-@@ -339,7 +339,7 @@
- @param pLinkTarget contains the linktarget if succeeds else an empty string.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_getLinkTarget(RegKeyHandle hKey,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getLinkTarget(RegKeyHandle hKey,
- rtl_uString* linkName,
- rtl_uString** pLinkTarget);
-
-@@ -352,7 +352,7 @@
- The name of hKey together with keyName will be resolved from links.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_getResolvedKeyName(RegKeyHandle hKey,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getResolvedKeyName(RegKeyHandle hKey,
- rtl_uString* keyName,
- sal_Bool firstLinkOnly,
- rtl_uString** pResolvedName);
-@@ -369,7 +369,7 @@
- registry information.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_loadKey(RegKeyHandle hKey,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_loadKey(RegKeyHandle hKey,
- rtl_uString* keyName,
- rtl_uString* regFileName);
-
-@@ -386,7 +386,7 @@
- registry information.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_saveKey(RegKeyHandle hKey,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_saveKey(RegKeyHandle hKey,
- rtl_uString* keyName,
- rtl_uString* regFileName);
-
-@@ -406,7 +406,7 @@
- @param bReport if TRUE the function reports warnings on stdout if a key already exists.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_mergeKey(RegKeyHandle hKey,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_mergeKey(RegKeyHandle hKey,
- rtl_uString* keyName,
- rtl_uString* regFileName,
- sal_Bool bWarnings,
-@@ -419,7 +419,7 @@
- @param phRegistry points to a handle of the new registry if the function succeeds otherwise NULL.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_createRegistry(rtl_uString* registryName,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_createRegistry(rtl_uString* registryName,
- RegHandle* phRegistry);
-
-
-@@ -429,7 +429,7 @@
- @param phRootKey points to a handle of the open root key if the function succeeds otherwise NULL.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_openRootKey(RegHandle hRegistry,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_openRootKey(RegHandle hRegistry,
- RegKeyHandle* phRootKey);
-
-
-@@ -439,7 +439,7 @@
- @param pName returns the name of the registry if the function succeeds otherwise an empty string.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--const RegError REGISTRY_CALLTYPE reg_getName(RegHandle hRegistry, rtl_uString** pName);
-+const RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_getName(RegHandle hRegistry, rtl_uString** pName);
-
-
- /** This function returns the access mode of the registry.
-@@ -447,7 +447,7 @@
- @param hReg identifies a currently open registry.
- @return TRUE if accessmode is read only else FALSE.
- */
--sal_Bool REGISTRY_CALLTYPE reg_isReadOnly(RegHandle hReg);
-+sal_Bool REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_isReadOnly(RegHandle hReg);
-
-
- /** This function opens a registry with the specified name.
-@@ -457,7 +457,7 @@
- @param accessMode specifies the accessmode of the registry, REG_READONLY or REG_READWRITE.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_openRegistry(rtl_uString* registryName,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_openRegistry(rtl_uString* registryName,
- RegHandle* phRegistry,
- RegAccessMode accessMode);
-
-@@ -467,7 +467,7 @@
- @param hRegistry identifies a currently open registry which should be closed.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_closeRegistry(RegHandle hRegistry);
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_closeRegistry(RegHandle hRegistry);
-
-
- /** This function destroys a registry.
-@@ -477,7 +477,7 @@
- name is NULL the registry itselfs will be destroyed.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_destroyRegistry(RegHandle hRegistry,
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_destroyRegistry(RegHandle hRegistry,
- rtl_uString* registryName);
-
-
-@@ -488,7 +488,7 @@
- @param hKey identifies a currently open key which content will be reported.
- @return REG_NO_ERROR if succeeds else an error code.
- */
--RegError REGISTRY_CALLTYPE reg_dumpRegistry(RegKeyHandle hKey);
-+RegError REGISTRY_CALLTYPE SAL_DLLPUBLIC_EXPORT reg_dumpRegistry(RegKeyHandle hKey);
-
- #ifdef __cplusplus
- }
---- ./salhelper/inc/salhelper/dynload.hxx.opt 2005-09-08 16:58:03.000000000 +0000
-+++ ./salhelper/inc/salhelper/dynload.hxx 2005-10-31 16:29:51.000000000 +0000
-@@ -53,7 +53,7 @@
-
- /** The ORealDynamicLoader is an implementation helper class for the template loader ODynamicLoader.
- */
--class ORealDynamicLoader
-+class SAL_DLLPUBLIC_EXPORT ORealDynamicLoader
- {
- public:
- /** initializes the loader, loads the library and call the initialization fucntion.
---- ./berkeleydb/makefile.mk.opt 2005-09-07 22:05:58.000000000 +0000
-+++ ./berkeleydb/makefile.mk 2005-10-31 16:29:51.000000000 +0000
-@@ -69,8 +69,8 @@
- CONFIGURE_DIR=out
- #relative to CONFIGURE_DIR
- CONFIGURE_ACTION= \
-- setenv CFLAGS "$(ARCH_FLAGS)" && \
-- setenv CXXFLAGS "$(ARCH_FLAGS)" && \
-+ setenv CFLAGS "$(CFLAGSCC)" && \
-+ setenv CXXFLAGS "$(CFLAGSCXX) $(CFLAGSEXCEPTIONS)" && \
- ..$/dist$/configure
- CONFIGURE_FLAGS=--enable-cxx --enable-dynamic --enable-shared
- .IF "$(SOLAR_JAVA)"!=""
---- ./icu/makefile.mk.opt 2005-10-31 16:15:22.000000000 +0000
-+++ ./icu/makefile.mk 2005-10-31 16:31:11.000000000 +0000
-@@ -66,7 +66,7 @@
-
- CONFIGURE_DIR=source
-
--CONFIGURE_ACTION=sh -c 'CFLAGS="-O $(ARCH_FLAGS)" CXXFLAGS="-O $(ARCH_FLAGS)" LDFLAGS=$(LDFLAGSADD) ./configure --enable-layout --enable-static --enable-shared=yes --enable-64bit-libs=no --enable-extras=no'
-+CONFIGURE_ACTION=sh -c 'CFLAGS="$(CFLAGSOPT) $(ARCH_FLAGS)" CXXFLAGS="$(CFLAGSOPT) $(ARCH_FLAGS)" LDFLAGS="$(LDFLAGSADD)" ./configure --enable-layout --enable-static --enable-shared=yes --enable-64bit-libs=no --enable-extras=no'
-
- #CONFIGURE_FLAGS=--enable-layout --enable-static --enable-shared=yes --enable-64bit-libs=no
- CONFIGURE_FLAGS=
diff --git a/patches/src680/tool-ooidlbuild.diff b/patches/src680/tool-ooidlbuild.diff
deleted file mode 100644
index 23427c281..000000000
--- a/patches/src680/tool-ooidlbuild.diff
+++ /dev/null
@@ -1,22 +0,0 @@
---- /dev/null 2004-07-26 12:51:14.000000000 +0100
-+++ solenv/bin/ooidlbuild 2005-05-19 11:49:40.759785792 +0100
-@@ -0,0 +1,18 @@
-+#!/bin/sh
-+
-+if test "z$SRC_ROOT" = "z"; then
-+ echo "You need to source the environment first"
-+ exit 1;
-+fi
-+
-+echo "re-build offapi IDL to types.rdb"
-+cd $SRC_ROOT/offapi
-+# types.db often breaks things
-+rm -f $INPATH/ucr/types.db
-+build.pl debug=true && deliver.pl || exit 1;
-+
-+echo "re-build C++ headers from types.rdb"
-+cd $SRC_ROOT/offuh
-+build.pl && deliver.pl || exit 1;
-+
-+echo "done."
-\ No newline at end of file
diff --git a/patches/src680/translate-org-za-splash-m145.diff b/patches/src680/translate-org-za-splash-m145.diff
deleted file mode 100644
index 1f6cb1ce0..000000000
--- a/patches/src680/translate-org-za-splash-m145.diff
+++ /dev/null
@@ -1,44 +0,0 @@
-Index: svx/prj/d.lst
-===================================================================
-RCS file: /cvs/graphics/svx/prj/d.lst,v
-retrieving revision 1.108
-diff -u -r1.108 d.lst
---- svx/prj/d.lst 9 Dec 2004 16:36:45 -0000 1.108
-+++ svx/prj/d.lst 16 Dec 2004 12:43:47 -0000
-@@ -44,7 +44,8 @@
- ..\res\ofaabout.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\about.bmp
- ..\res\soffice.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\intro.bmp
- ..\res\ooointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro.bmp
--..\res\ooonologointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\nologointro.bmp
-+..\res\openintro_translateorgza.bmp %COMMON_DEST%\pck%_EXT%\openoffice\nologointro.bmp
-+..\res\openabout_translateorgza.bmp %COMMON_DEST%\pck%_EXT%\openoffice\about.bmp
-
- mkdir: %_DEST%\inc%_EXT%\svx
- hedabu: ..\inc\flagsdef.hxx %_DEST%\inc%_EXT%\svx\flagsdef.hxx
-Index: svx/source/intro/ooo.src
-===================================================================
-RCS file: /cvs/graphics/svx/source/intro/ooo.src,v
-retrieving revision 1.11
-diff -u -r1.11 ooo.src
---- svx/source/intro/ooo.src 7 Jan 2005 09:49:30 -0000 1.11
-+++ svx/source/intro/ooo.src 1 Feb 2005 16:48:49 -0000
-@@ -48,8 +48,8 @@
- #include "svxids.hrc"
- #include "intro.hrc"
-
--#ifdef BUILD_SPECIAL
--#define OOO_VENDOR "Sun Microsystems Inc."
-+#if 1
-+#define OOO_VENDOR "Translate.org.za"
- #else
- //#define OOO_VENDOR "my company"
- #endif
-@@ -56,7 +56,7 @@
-
- Bitmap RID_DEFAULT_ABOUT_BMP_LOGO
- {
-- File = "openabout.bmp" ;
-+ File = "openabout_translateorgza.bmp" ;
- };
-
- String RID_APPTITLE
diff --git a/patches/src680/translate-org-za-splash.diff b/patches/src680/translate-org-za-splash.diff
deleted file mode 100644
index c976bd260..000000000
--- a/patches/src680/translate-org-za-splash.diff
+++ /dev/null
@@ -1,34 +0,0 @@
-Index: svx/prj/d.lst
-===================================================================
-RCS file: /cvs/graphics/svx/prj/d.lst,v
-retrieving revision 1.108
-diff -u -r1.108 d.lst
---- svx/prj/d.lst 9 Dec 2004 16:36:45 -0000 1.108
-+++ svx/prj/d.lst 16 Dec 2004 12:43:47 -0000
-@@ -44,7 +44,8 @@
- ..\res\ofaabout.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\about.bmp
- ..\res\soffice.bmp %COMMON_DEST%\pck%_EXT%\staroffice_bitmap\intro.bmp
- ..\res\ooointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\intro.bmp
--..\res\ooonologointro.bmp %COMMON_DEST%\pck%_EXT%\openoffice\nologointro.bmp
-+..\res\openintro_translateorgza.bmp %COMMON_DEST%\pck%_EXT%\openoffice\nologointro.bmp
-+..\res\openabout_translateorgza.bmp %COMMON_DEST%\pck%_EXT%\openoffice\about.bmp
-
- mkdir: %_DEST%\inc%_EXT%\svx
- hedabu: ..\inc\flagsdef.hxx %_DEST%\inc%_EXT%\svx\flagsdef.hxx
-Index: svx/source/intro/ooo.src
-===================================================================
-RCS file: /cvs/graphics/svx/source/intro/ooo.src,v
-retrieving revision 1.11
-diff -u -r1.11 ooo.src
---- svx/source/intro/ooo.src 7 Jan 2005 09:49:30 -0000 1.11
-+++ svx/source/intro/ooo.src 1 Feb 2005 16:48:49 -0000
-@@ -49,8 +49,8 @@
- #include "intro.hrc"
-
- Bitmap RID_DEFAULT_ABOUT_BMP_LOGO
- {
-- File = "openabout.bmp" ;
-+ File = "openabout_translateorgza.bmp" ;
- };
-
- String RID_APPTITLE
diff --git a/patches/src680/ui-desktop-integration.diff b/patches/src680/ui-desktop-integration.diff
deleted file mode 100644
index 5cb1bc895..000000000
--- a/patches/src680/ui-desktop-integration.diff
+++ /dev/null
@@ -1,227 +0,0 @@
---- officecfg/registry/schema/org/openoffice/Office/Common.xcs 2005-06-27 16:27:27.000000000 +0530
-+++ officecfg/registry/schema/org/openoffice/Office/Common.xcs 2005-07-11 18:53:02.204896274 +0530
-@@ -4902,6 +4902,13 @@ Dymamic border coloring means that when
- </info>
- <value>true</value>
- </prop>
-+ <prop oor:name="DisableUICustomization" oor:type="xs:boolean">
-+ <info>
-+ <author>RSiddhartha</author>
-+ <desc>Disables the customization of the UI elements.</desc>
-+ </info>
-+ <value>false</value>
-+ </prop>
- <prop oor:name="SymbolSet" oor:type="xs:short">
- <!-- UIHints: Tools Options General View -->
- <info>
---- svtools/inc/miscopt.hxx 2005-06-27 16:27:26.000000000 +0530
-+++ svtools/inc/miscopt.hxx 2005-07-11 17:58:51.734343074 +0530
-@@ -157,6 +157,8 @@ class SVL_DLLPUBLIC SvtMiscOptions
- sal_Bool UseSystemFileDialog() const;
- void SetUseSystemFileDialog( sal_Bool bSet );
-
-+ sal_Bool DisableUICustomization() const;
-+
- sal_Bool IsPluginsEnabled() const;
- void SetPluginsEnabled( sal_Bool bEnable );
-
---- svtools/source/config/miscopt.cxx 2005-06-27 16:27:27.000000000 +0530
-+++ svtools/source/config/miscopt.cxx 2005-07-11 18:43:48.450164303 +0530
-@@ -109,8 +109,10 @@ using namespace ::com::sun::star;
- #define PROPERTYHANDLE_USESYSTEMFILEDIALOG 3
- #define PROPERTYNAME_SYMBOLSSTYLE ASCII_STR("SymbolsStyle")
- #define PROPERTYHANDLE_SYMBOLSSTYLE 4
-+#define PROPERTYNAME_DISABLEUICUSTOMIZATION ASCII_STR("DisableUICustomization")
-+#define PROPERTYHANDLE_DISABLEUICUSTOMIZATION 5
-
--#define PROPERTYCOUNT 5
-+#define PROPERTYCOUNT 6
-
- #define VCL_TOOLBOX_STYLE_FLAT ((USHORT)0x0004) // from <vcl/toolbox.hxx>
-
-@@ -136,6 +138,7 @@ class SvtMiscOptions_Impl : public Confi
- sal_Bool m_bIsSymbolSetRO;
- sal_Int16 m_nToolboxStyle;
- sal_Bool m_bIsToolboxStyleRO;
-+ sal_Bool m_bDisableUICustomization;
-
- //-------------------------------------------------------------------------------------------------------------
- // public methods
-@@ -204,6 +207,9 @@ class SvtMiscOptions_Impl : public Confi
- inline sal_Bool IsUseSystemFileDialogReadOnly() const
- { return m_bIsUseSystemFileDialogRO; }
-
-+ inline sal_Bool DisableUICustomization() const
-+ { return m_bDisableUICustomization; }
-+
- inline sal_Bool IsPluginsEnabled() const
- { return m_bPluginsEnabled; }
-
-@@ -369,6 +375,13 @@ SvtMiscOptions_Impl::SvtMiscOptions_Impl
- m_bIsUseSystemFileDialogRO = seqRO[nProperty];
- break;
- }
-+
-+ case PROPERTYHANDLE_DISABLEUICUSTOMIZATION :
-+ {
-+ if( !(seqValues[nProperty] >>= m_bDisableUICustomization) )
-+ DBG_ERROR("Wrong type of \"Misc\\DisableUICustomization\"!" );
-+ break;
-+ }
- }
- }
-
-@@ -453,6 +466,11 @@ void SvtMiscOptions_Impl::Load( const Se
- DBG_ERROR("Wrong type of \"Misc\\SymbolSet\"!" );
- }
- break;
-+ case PROPERTYHANDLE_DISABLEUICUSTOMIZATION : {
-+ if( !(seqValues[nProperty] >>= m_bDisableUICustomization) )
-+ DBG_ERROR("Wrong type of \"Misc\\DisableUICustomization\"!" );
-+ }
-+ break;
- }
- }
- }
-@@ -633,6 +633,12 @@ void SvtMiscOptions_Impl::Commit()
- seqValues[nProperty] <<= GetSymbolsStyleName();
- break;
- }
-+
-+ case PROPERTYHANDLE_DISABLEUICUSTOMIZATION :
-+ {
-+ seqValues[nProperty] <<= m_bDisableUICustomization;
-+ break;
-+ }
- }
- }
- // Set properties in configuration.
-@@ -651,7 +651,8 @@ Sequence< OUString > SvtMiscOptions_Impl
- PROPERTYNAME_SYMBOLSET,
- PROPERTYNAME_TOOLBOXSTYLE,
- PROPERTYNAME_USESYSTEMFILEDIALOG,
-- PROPERTYNAME_SYMBOLSSTYLE
-+ PROPERTYNAME_SYMBOLSSTYLE,
-+ PROPERTYNAME_DISABLEUICUSTOMIZATION
- };
-
- // Initialize return sequence with these list ...
-@@ -743,6 +766,11 @@ sal_Bool SvtMiscOptions::IsGetSymbolSetR
- return m_pDataContainer->IsGetSymbolSetReadOnly();
- }
-
-+sal_Bool SvtMiscOptions::DisableUICustomization() const
-+{
-+ return m_pDataContainer->DisableUICustomization();
-+}
-+
- sal_Int16 SvtMiscOptions::GetToolboxStyle() const
- {
- return m_pDataContainer->GetToolboxStyle();
---- sfx2/sdi/appslots.sdi 2005-02-16 23:50:35.000000000 +0530
-+++ sfx2/sdi/appslots.sdi 2005-07-07 12:41:15.000000000 +0530
-@@ -330,6 +330,7 @@ interface Application : Module
- SID_AVAILABLE_TOOLBARS
- [
- ExecMethod = MiscExec_Impl ;
-+ StateMethod = MiscState_Impl ;
- ]
-
- //---------------------------------------------------------------------
---- sfx2/source/appl/appserv.cxx 2005-06-27 16:27:22.000000000 +0530
-+++ sfx2/source/appl/appserv.cxx 2005-07-11 18:29:05.699333198 +0530
-@@ -186,6 +186,9 @@
- #include <svtools/moduleoptions.hxx>
- #include <svtools/regoptions.hxx>
- #include <svtools/helpopt.hxx>
-+#ifndef INCLUDED_SVTOOLS_MISCOPT_HXX
-+#include <svtools/miscopt.hxx>
-+#endif // INCLUDED_SVTOOLS_MISCOPT_HXX
- #include <tools/shl.hxx>
-
- #include <com/sun/star/script/provider/XScriptProviderFactory.hpp>
-@@ -728,6 +731,18 @@ void SfxApplication::MiscState_Impl(SfxI
- break;
- }
-
-+ case SID_CONFIG:
-+ case SID_TOOLBOXOPTIONS:
-+ case SID_CONFIGSTATUSBAR:
-+ case SID_CONFIGMENU:
-+ case SID_CONFIGACCEL:
-+ case SID_CONFIGEVENT:
-+ {
-+ if( SvtMiscOptions().DisableUICustomization() )
-+ rSet.DisableItem(nWhich);
-+ break;
-+ }
-+
- case SID_BASICSTOP:
- if ( !StarBASIC::IsRunning() )
- rSet.DisableItem(nWhich);
---- framework/source/uielement/toolbarmanager.cxx 2005-06-27 16:27:26.000000000 +0530
-+++ framework/source/uielement/toolbarmanager.cxx 2005-07-11 18:27:01.959582798 +0530
-@@ -324,7 +324,7 @@ ToolBarManager::ToolBarManager( const Re
- m_bUpdateControllers( sal_False ),
- m_bImageOrientationRegistered( sal_False ),
- m_bImageMirrored( sal_False ),
-- m_bCanBeCustomized( sal_True ),
-+ m_bCanBeCustomized( !SvtMiscOptions().DisableUICustomization() ),
- m_lImageRotation( 0 ),
- m_nSymbolsStyle( SvtMiscOptions().GetCurrentSymbolsStyle() )
- {
-@@ -516,6 +516,24 @@ void ToolBarManager::UpdateControllers()
- {
- RTL_LOGFILE_CONTEXT( aLog, "framework (cd100003) ::ToolBarManager::UpdateControllers" );
-
-+ if( !m_bCanBeCustomized )
-+ {
-+ Any a;
-+ Reference< XLayoutManager > xLayoutManager;
-+ Reference< XPropertySet > xFramePropSet( m_xFrame, UNO_QUERY );
-+ if ( xFramePropSet.is() )
-+ a = xFramePropSet->getPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM( "LayoutManager" )));
-+ a >>= xLayoutManager;
-+ Reference< XDockableWindow > xDockable( VCLUnoHelper::GetInterface( m_pToolBar ), UNO_QUERY );
-+ if ( xLayoutManager.is() && xDockable.is() )
-+ {
-+ ::com::sun::star::awt::Point aPoint;
-+ aPoint.X = aPoint.Y = LONG_MAX;
-+ xLayoutManager->dockWindow( m_aResourceName, DockingArea_DOCKINGAREA_DEFAULT, aPoint );
-+ xLayoutManager->lockWindow( m_aResourceName );
-+ }
-+ }
-+
- if ( !m_bUpdateControllers )
- {
- m_bUpdateControllers = sal_True;
-@@ -1641,6 +1659,7 @@ IMPL_LINK( ToolBarManager, MenuButton, T
- // Non-configurable toolbars should disable configuration menu items
- aPopupMenu.EnableItem( MENUITEM_TOOLBAR_VISIBLEBUTTON, sal_False );
- aPopupMenu.EnableItem( MENUITEM_TOOLBAR_CUSTOMIZETOOLBAR, sal_False );
-+ aPopupMenu.EnableItem( MENUITEM_TOOLBAR_LOCKTOOLBARPOSITION, sal_False );
- }
-
- pItemMenu->SetMenuFlags (pItemMenu->GetMenuFlags () |
---- framework/source/uielement/toolbarsmenucontroller.cxx 2005-03-29 20:30:44.000000000 +0530
-+++ framework/source/uielement/toolbarsmenucontroller.cxx 2005-07-11 18:09:16.732966419 +0530
-@@ -155,6 +155,9 @@
- #ifndef INCLUDED_SVTOOLS_MENUOPTIONS_HXX
- #include <svtools/menuoptions.hxx>
- #endif
-+#ifndef INCLUDED_SVTOOLS_MISCOPT_HXX
-+#include <svtools/miscopt.hxx>
-+#endif // INCLUDED_SVTOOLS_MISCOPT_HXX
- #include <svtools/cmdoptions.hxx>
-
- //_________________________________________________________________________________________________________________
-@@ -417,6 +420,9 @@ Sequence< Sequence< com::sun::star::bean
-
- void ToolbarsMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >& rPopupMenu )
- {
-+ if( SvtMiscOptions().DisableUICustomization() )
-+ return;
-+
- vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
- resetPopupMenu( rPopupMenu );
-
diff --git a/patches/src680/use-free-xt-from-system.diff b/patches/src680/use-free-xt-from-system.diff
deleted file mode 100644
index 9c9e62cd9..000000000
--- a/patches/src680/use-free-xt-from-system.diff
+++ /dev/null
@@ -1,36 +0,0 @@
-Index: prj/d.lst
-===================================================================
-RCS file: /cvs/util/external/prj/d.lst,v
-retrieving revision 1.21
-diff -u -u -r1.21 d.lst
---- external/prj/d.lst 24 Nov 2004 15:13:13 -0000 1.21
-+++ external/prj/d.lst 2 Jun 2005 17:14:27 -0000
-@@ -23,7 +23,7 @@
- mkdir: %_DEST%\pck%_EXT%
- ..\%__SRC%\bin\*.zip %_DEST%\pck%_EXT%\*.zip
- ..\common.pro\bin\*.zip %_DEST%\pck%_EXT%\*.zip
--..\common\xt.jar %_DEST%\bin%_EXT%\xt.jar
-+/usr/share/java/xt-0.20050823.jar %_DEST%\bin%_EXT%\xt.jar
-
- ..\audio\rtufiles\lib\audio\libaudio.a %_DEST%\lib%_EXT%\libaudio.a
- ..\audio\rtufiles\lib\audio\*.h %_DEST%\inc%_EXT%\audio\*
---- xmlhelp/source/com/sun/star/help/makefile.mk-old 2006-01-08 19:15:49.668850056 +0100
-+++ xmlhelp/source/com/sun/star/help/makefile.mk 2006-01-08 19:18:52.384073120 +0100
-@@ -78,7 +78,7 @@
- .IF "$(JDK)"=="gcj"
-
- .IF "$(SYSTEM_DB)"=="YES"
--$(BIN)$/HelpLinker: $(LB)$/libdb.jar.a
-+$(BIN)$/HelpLinker: $(LB)$/libdb.jar.a $(LB)$/libxt.jar.a
- .ELSE
- $(BIN)$/HelpLinker:
- .ENDIF
-@@ -89,6 +89,8 @@
-
- $(LB)$/libdb.jar.a:
- $(JAVACOMPILER) -c -O2 -findirect-dispatch -fjni $(DB_JAR) -o $(LB)$/libdb.jar.a
-+$(LB)$/libxt.jar.a:
-+ $(JAVACOMPILER) -c -O2 -findirect-dispatch -fjni /usr/share/java/xt.jar $(SOLARVERSION)/$(INPATH)/bin/xt-xmlsearch.jar -o $(LB)$/libxt.jar.a
-
- .ELSE
- JARCLASSDIRS = com
diff --git a/patches/src680/use-free-xt-xp-jaxp-from-system-sarge.diff b/patches/src680/use-free-xt-xp-jaxp-from-system-sarge.diff
deleted file mode 100644
index 82bad2c23..000000000
--- a/patches/src680/use-free-xt-xp-jaxp-from-system-sarge.diff
+++ /dev/null
@@ -1,20 +0,0 @@
-Index: prj/d.lst
-===================================================================
-RCS file: /cvs/util/external/prj/d.lst,v
-retrieving revision 1.21
-diff -u -u -r1.21 d.lst
---- external/prj/d.lst 24 Nov 2004 15:13:13 -0000 1.21
-+++ external/prj/d.lst 2 Jun 2005 17:14:27 -0000
-@@ -23,9 +23,9 @@
- mkdir: %_DEST%\pck%_EXT%
- ..\%__SRC%\bin\*.zip %_DEST%\pck%_EXT%\*.zip
- ..\common.pro\bin\*.zip %_DEST%\pck%_EXT%\*.zip
--..\common\xt.jar %_DEST%\bin%_EXT%\xt.jar
--..\common\jaxp.jar %_DEST%\bin%_EXT%\jaxp.jar
--..\common\parser.jar %_DEST%\bin%_EXT%\parser.jar
-+/usr/share/java/xt-0.20050823.jar %_DEST%\bin%_EXT%\xt.jar
-+/usr/share/java/jaxp-1.2.jar %_DEST%\bin%_EXT%\jaxp.jar
-+/usr/share/java/xp-0.5.jar %_DEST%\bin%_EXT%\parser.jar
-
- ..\audio\rtufiles\lib\audio\libaudio.a %_DEST%\lib%_EXT%\libaudio.a
- ..\audio\rtufiles\lib\audio\*.h %_DEST%\inc%_EXT%\audio\*
diff --git a/patches/src680/use-free-xt-xp-jaxp-from-system.diff b/patches/src680/use-free-xt-xp-jaxp-from-system.diff
deleted file mode 100644
index 82bad2c23..000000000
--- a/patches/src680/use-free-xt-xp-jaxp-from-system.diff
+++ /dev/null
@@ -1,20 +0,0 @@
-Index: prj/d.lst
-===================================================================
-RCS file: /cvs/util/external/prj/d.lst,v
-retrieving revision 1.21
-diff -u -u -r1.21 d.lst
---- external/prj/d.lst 24 Nov 2004 15:13:13 -0000 1.21
-+++ external/prj/d.lst 2 Jun 2005 17:14:27 -0000
-@@ -23,9 +23,9 @@
- mkdir: %_DEST%\pck%_EXT%
- ..\%__SRC%\bin\*.zip %_DEST%\pck%_EXT%\*.zip
- ..\common.pro\bin\*.zip %_DEST%\pck%_EXT%\*.zip
--..\common\xt.jar %_DEST%\bin%_EXT%\xt.jar
--..\common\jaxp.jar %_DEST%\bin%_EXT%\jaxp.jar
--..\common\parser.jar %_DEST%\bin%_EXT%\parser.jar
-+/usr/share/java/xt-0.20050823.jar %_DEST%\bin%_EXT%\xt.jar
-+/usr/share/java/jaxp-1.2.jar %_DEST%\bin%_EXT%\jaxp.jar
-+/usr/share/java/xp-0.5.jar %_DEST%\bin%_EXT%\parser.jar
-
- ..\audio\rtufiles\lib\audio\libaudio.a %_DEST%\lib%_EXT%\libaudio.a
- ..\audio\rtufiles\lib\audio\*.h %_DEST%\inc%_EXT%\audio\*
diff --git a/patches/src680/use-xalan-xerces-from-system.diff b/patches/src680/use-xalan-xerces-from-system.diff
deleted file mode 100644
index cf4decf9f..000000000
--- a/patches/src680/use-xalan-xerces-from-system.diff
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: prj/d.lst
-===================================================================
-RCS file: /cvs/external/xalan/prj/d.lst,v
-retrieving revision 1.1
-diff -u -u -r1.1 d.lst
---- xalan/prj/d.lst 2 Nov 2004 14:33:37 -0000 1.1
-+++ xalan/prj/d.lst 10 Jun 2005 16:51:30 -0000
-@@ -1 +1,4 @@
--..\download\*.jar %_DEST%\bin%_EXT%\*.jar
-+/usr/share/java/xalan2.jar %_DEST%\bin%_EXT%\xalan.jar
-+/usr/share/java/jaxp-1.2.jar %_DEST%\bin%_EXT%\xml-apis.jar
-+/usr/share/java/xercesImpl.jar %_DEST%\bin%_EXT%\xercesImpl.jar
-+
diff --git a/patches/src680/uses-vfs.diff b/patches/src680/uses-vfs.diff
deleted file mode 100644
index d0c652933..000000000
--- a/patches/src680/uses-vfs.diff
+++ /dev/null
@@ -1,15 +0,0 @@
-Index: sysui/desktop/mimetypes/openoffice.applications
-===================================================================
-RCS file: /cvs/gsl/sysui/desktop/mimetypes/openoffice.applications,v
-retrieving revision 1.5
-diff -u -p -u -r1.5 openoffice.applications
---- sysui/desktop/mimetypes/openoffice.applications 21 Jan 2005 11:18:09 -0000 1.5
-+++ sysui/desktop/mimetypes/openoffice.applications 24 Feb 2005 20:57:29 -0000
-@@ -3,6 +3,6 @@ openoffice
- name=%PRODUCTNAME
- can_open_multiple_files=true
- expects_uris=true
-+ uses_gnomevfs=true
- requires_terminal=false
-- supported_uri_schemes=file,http,https,smb
- mime_types=application/vnd.oasis.opendocument.text,application/vnd.oasis.opendocument.text-template,application/vnd.oasis.opendocument.text-web,application/vnd.oasis.opendocument.text-master,application/vnd.oasis.opendocument.graphics,application/vnd.oasis.opendocument.graphics-template,application/vnd.oasis.opendocument.presentation,application/vnd.oasis.opendocument.presentation-template,application/vnd.oasis.opendocument.spreadsheet,application/vnd.oasis.opendocument.spreadsheet-template,application/vnd.oasis.opendocument.formula,application/vnd.oasis.opendocument.database,application/vnd.ms-excel,application/rtf,application/msword,application/vnd.ms-powerpoint,application/vnd.stardivision.calc,application/vnd.stardivision.chart,application/vnd.stardivision.draw,application/vnd.stardivision.impress,application/vnd.stardivision.mail,application/vnd.stardivision.math,application/vnd.stardivision.writer,application/vnd.sun.xml.calc,application/vnd.sun.xml.calc.template,application/vnd.sun.xml.draw,application/vnd.sun.xml.draw.template,application/vnd.sun.xml.impress,application/vnd.sun.xml.impress.template,application/vnd.sun.xml.math,application/vnd.sun.xml.writer,application/vnd.sun.xml.writer.global,application/vnd.sun.xml.writer.template,application/vnd.sun.xml.base,image/x-emf,image/x-pcx,image/x-photo-cd,image/x-pict;application/vnd.wordperfect
diff --git a/patches/src680/valgrind-alloc.diff b/patches/src680/valgrind-alloc.diff
deleted file mode 100644
index 026dcb2c7..000000000
--- a/patches/src680/valgrind-alloc.diff
+++ /dev/null
@@ -1,250 +0,0 @@
-Index: sal/rtl/source/alloc.c
-===================================================================
-RCS file: /cvs/porting/sal/rtl/source/alloc.c,v
-retrieving revision 1.14
-diff -u -3 -p -r1.14 alloc.c
---- sal/rtl/source/alloc.c 17 Dec 2003 17:10:01 -0000 1.14
-+++ sal/rtl/source/alloc.c 29 Feb 2004 17:50:41 -0000
-@@ -227,6 +227,39 @@ static sal_uInt32 __rtl_memory_vmpagesiz
-
- /*===========================================================================
- *
-+ * Determine allocation mode (debug/release) by examining environment
-+ * variable "OOO_FORCE_SYSALLOC".
-+ *
-+ *=========================================================================*/
-+
-+#include <stdlib.h> /* getenv */
-+#include <stdio.h> /* stderr */
-+
-+typedef
-+ enum { AMode_CUSTOM, AMode_SYSTEM, AMode_UNSET }
-+ AllocMode;
-+
-+static AllocMode alloc_mode = AMode_UNSET;
-+
-+static void determine_alloc_mode ( void )
-+{
-+ /* This shouldn't happen, but still ... */
-+ if (alloc_mode != AMode_UNSET)
-+ return;
-+
-+ if (getenv("OOO_FORCE_SYSALLOC") != NULL) {
-+ alloc_mode = AMode_SYSTEM;
-+ fprintf(stderr, "OOo: Using system memory allocator.\n");
-+ fprintf(stderr, "OOo: This is for debugging only. To disable,\n");
-+ fprintf(stderr, "OOo: unset the environment variable"
-+ " OOO_FORCE_SYSALLOC.\n");
-+ } else {
-+ alloc_mode = AMode_CUSTOM;
-+ }
-+}
-+
-+/*===========================================================================
-+ *
- * rtl_memory (global) internals.
- *
- *=========================================================================*/
-@@ -1165,8 +1165,8 @@ static void __rtl_memory_enqueue (memory
- /*
- * rtl_reallocateMemory.
- */
--#ifndef FORCE_SYSALLOC
--void* SAL_CALL rtl_reallocateMemory (void * p, sal_Size n) SAL_THROW_EXTERN_C()
-+static
-+void* SAL_CALL rtl_reallocateMemory_CUSTOM (void * p, sal_Size n) SAL_THROW_EXTERN_C()
- {
- memory_type * memory;
- if (!(!p || !n))
-@@ -1322,18 +1322,33 @@ void* SAL_CALL rtl_reallocateMemory (voi
- }
- return (p);
- }
--#else /* FORCE_SYSALLOC */
--void* SAL_CALL rtl_reallocateMemory (void * p, sal_Size n) SAL_THROW_EXTERN_C()
-+
-+static
-+void* SAL_CALL rtl_reallocateMemory_SYSTEM (void * p, sal_Size n) SAL_THROW_EXTERN_C()
- {
- return realloc(p, (sal_Size)(n));
- }
--#endif /* FORCE_SYSALLOC */
-+
-+void* SAL_CALL rtl_reallocateMemory (void * p, sal_Size n) SAL_THROW_EXTERN_C()
-+{
-+ while (1) {
-+ if (alloc_mode == AMode_CUSTOM) {
-+ return rtl_reallocateMemory_CUSTOM(p,n);
-+ }
-+ if (alloc_mode == AMode_SYSTEM) {
-+ return rtl_reallocateMemory_SYSTEM(p,n);
-+ }
-+ determine_alloc_mode();
-+ }
-+}
-+
-+
-
- /*
- * rtl_allocateMemory.
- */
--#ifndef FORCE_SYSALLOC
--void* SAL_CALL rtl_allocateMemory (sal_Size n) SAL_THROW_EXTERN_C()
-+static
-+void* SAL_CALL rtl_allocateMemory_CUSTOM (sal_Size n) SAL_THROW_EXTERN_C()
- {
- void * p = 0;
- if (n > 0)
-@@ -1355,18 +1355,33 @@ void* SAL_CALL rtl_allocateMemory (sal_u
- }
- return (p);
- }
--#else /* FORCE_SYSALLOC */
--void* SAL_CALL rtl_allocateMemory (sal_Size n) SAL_THROW_EXTERN_C()
-+
-+static
-+void* SAL_CALL rtl_allocateMemory_SYSTEM (sal_Size n) SAL_THROW_EXTERN_C()
- {
- return malloc((sal_Size)(n));
- }
--#endif /* FORCE_SYSALLOC */
-+
-+void* SAL_CALL rtl_allocateMemory (sal_Size n) SAL_THROW_EXTERN_C()
-+{
-+ while (1) {
-+ if (alloc_mode == AMode_CUSTOM) {
-+ return rtl_allocateMemory_CUSTOM(n);
-+ }
-+ if (alloc_mode == AMode_SYSTEM) {
-+ return rtl_allocateMemory_SYSTEM(n);
-+ }
-+ determine_alloc_mode();
-+ }
-+}
-+
-+
-
- /*
- * rtl_freeMemory.
- */
--#ifndef FORCE_SYSALLOC
--void SAL_CALL rtl_freeMemory (void * p) SAL_THROW_EXTERN_C()
-+static
-+void SAL_CALL rtl_freeMemory_CUSTOM (void * p) SAL_THROW_EXTERN_C()
- {
- if (p)
- {
-@@ -1387,18 +1387,34 @@ void SAL_CALL rtl_freeMemory (void * p)
- RTL_MEMORY_LEAVE();
- }
- }
--#else /* FORCE_SYSALLOC */
--void SAL_CALL rtl_freeMemory (void * p) SAL_THROW_EXTERN_C()
-+
-+static
-+void SAL_CALL rtl_freeMemory_SYSTEM (void * p) SAL_THROW_EXTERN_C()
- {
- free(p);
- }
--#endif /* FORCE_SYSALLOC */
-+
-+void SAL_CALL rtl_freeMemory (void * p) SAL_THROW_EXTERN_C()
-+{
-+ while (1) {
-+ if (alloc_mode == AMode_CUSTOM) {
-+ rtl_freeMemory_CUSTOM(p);
-+ return;
-+ }
-+ if (alloc_mode == AMode_SYSTEM) {
-+ rtl_freeMemory_SYSTEM(p);
-+ return;
-+ }
-+ determine_alloc_mode();
-+ }
-+}
-+
-
- /*
- * rtl_allocateZeroMemory.
- */
--#ifndef FORCE_SYSALLOC
--void* SAL_CALL rtl_allocateZeroMemory (sal_Size n) SAL_THROW_EXTERN_C()
-+static
-+void* SAL_CALL rtl_allocateZeroMemory_CUSTOM (sal_Size n) SAL_THROW_EXTERN_C()
- {
- void * p = 0;
- if (n > 0)
-@@ -1421,18 +1421,32 @@ void* SAL_CALL rtl_allocateZeroMemory (s
- }
- return (p);
- }
--#else /* FORCE_SYSALLOC */
--void* SAL_CALL rtl_allocateZeroMemory (sal_Size n) SAL_THROW_EXTERN_C()
-+
-+static
-+void* SAL_CALL rtl_allocateZeroMemory_SYSTEM (sal_Size n) SAL_THROW_EXTERN_C()
- {
- return calloc((sal_Size)(n), 1);
- }
--#endif /* FORCE_SYSALLOC */
-+
-+void* SAL_CALL rtl_allocateZeroMemory (sal_Size n) SAL_THROW_EXTERN_C()
-+{
-+ while (1) {
-+ if (alloc_mode == AMode_CUSTOM) {
-+ return rtl_allocateZeroMemory_CUSTOM(n);
-+ }
-+ if (alloc_mode == AMode_SYSTEM) {
-+ return rtl_allocateZeroMemory_SYSTEM(n);
-+ }
-+ determine_alloc_mode();
-+ }
-+}
-+
-
- /*
- * rtl_freeZeroMemory.
- */
--#ifndef FORCE_SYSALLOC
--void SAL_CALL rtl_freeZeroMemory (void * p, sal_Size n) SAL_THROW_EXTERN_C()
-+static
-+void SAL_CALL rtl_freeZeroMemory_CUSTOM (void * p, sal_Size n) SAL_THROW_EXTERN_C()
- {
- if (p)
- {
-@@ -1454,8 +1454,9 @@ void SAL_CALL rtl_freeZeroMemory (void *
- RTL_MEMORY_LEAVE();
- }
- }
--#else /* FORCE_SYSALLOC */
--void SAL_CALL rtl_freeZeroMemory (void * p, sal_Size n) SAL_THROW_EXTERN_C()
-+
-+static
-+void SAL_CALL rtl_freeZeroMemory_SYSTEM (void * p, sal_Size n) SAL_THROW_EXTERN_C()
- {
- if (p)
- {
-@@ -1463,7 +1463,21 @@ void SAL_CALL rtl_freeZeroMemory (void *
- free(p);
- }
- }
--#endif /* FORCE_SYSALLOC */
-+
-+void SAL_CALL rtl_freeZeroMemory (void * p, sal_Size n) SAL_THROW_EXTERN_C()
-+{
-+ while (1) {
-+ if (alloc_mode == AMode_CUSTOM) {
-+ rtl_freeZeroMemory_CUSTOM(p,n);
-+ return;
-+ }
-+ if (alloc_mode == AMode_SYSTEM) {
-+ rtl_freeZeroMemory_SYSTEM(p,n);
-+ return;
-+ }
-+ determine_alloc_mode();
-+ }
-+}
-
- /*===========================================================================
- *
-
diff --git a/patches/src680/vba-attribute.diff b/patches/src680/vba-attribute.diff
deleted file mode 100644
index c78081501..000000000
--- a/patches/src680/vba-attribute.diff
+++ /dev/null
@@ -1,95 +0,0 @@
-Index: basic/source/comp/dim.cxx
-===================================================================
-RCS file: /cvs/script/basic/source/comp/dim.cxx,v
-retrieving revision 1.10.32.3
-diff -u -p -u -r1.10.32.3 dim.cxx
---- basic/source/comp/dim.cxx 17 Feb 2004 12:59:22 -0000 1.10.32.3
-+++ basic/source/comp/dim.cxx 29 Apr 2004 15:44:09 -0000
-@@ -794,6 +794,24 @@ void SbiParser::Declare()
- }
- }
-
-+void SbiParser::Attribute()
-+{
-+ // TODO: Need to implement the method as an attributed object.
-+ while( Next() != EQ )
-+ {
-+ String aSym( GetSym() );
-+ if( Next() != DOT)
-+ break;
-+ }
-+
-+ if( eCurTok != EQ )
-+ Error( SbERR_SYNTAX );
-+ else
-+ SbiExpression aValue( this );
-+
-+ // Don't generate any code - just discard it.
-+}
-+
- // Aufruf einer SUB oder FUNCTION
-
- void SbiParser::Call()
-Index: basic/source/comp/parser.cxx
-===================================================================
-RCS file: /cvs/script/basic/source/comp/parser.cxx,v
-retrieving revision 1.5.32.1
-diff -u -p -u -r1.5.32.1 parser.cxx
---- basic/source/comp/parser.cxx 20 Jan 2004 09:59:25 -0000 1.5.32.1
-+++ basic/source/comp/parser.cxx 29 Apr 2004 15:44:09 -0000
-@@ -83,6 +83,7 @@ struct SbiStatement {
- #define N FALSE
-
- static SbiStatement StmntTable [] = {
-+{ ATTRIBUTE, &SbiParser::Attribute, Y, Y, }, // ATTRIBUTE
- { CALL, &SbiParser::Call, N, Y, }, // CALL
- { CLOSE, &SbiParser::Close, N, Y, }, // CLOSE
- { _CONST_, &SbiParser::Dim, Y, Y, }, // CONST
-Index: basic/source/comp/token.cxx
-===================================================================
-RCS file: /cvs/script/basic/source/comp/token.cxx,v
-retrieving revision 1.4.44.1
-diff -u -p -u -r1.4.44.1 token.cxx
---- basic/source/comp/token.cxx 20 Jan 2004 10:00:20 -0000 1.4.44.1
-+++ basic/source/comp/token.cxx 29 Apr 2004 15:44:09 -0000
-@@ -89,6 +89,7 @@ static TokenTable aTokTable_Basic [] = {
- { ANY, "Any" },
- { APPEND, "Append" },
- { AS, "As" },
-+ { ATTRIBUTE,"Attribute" },
- { BASE, "Base" },
- { BINARY, "Binary" },
- { TBOOLEAN, "Boolean" },
-
-Index: basic/source/inc/parser.hxx
-===================================================================
-RCS file: /cvs/script/basic/source/inc/parser.hxx,v
-retrieving revision 1.1.1.1.134.1
-diff -u -p -u -r1.1.1.1.134.1 parser.hxx
---- basic/source/inc/parser.hxx 20 Jan 2004 10:00:40 -0000 1.1.1.1.134.1
-+++ basic/source/inc/parser.hxx 4 May 2004 09:08:36 -0000
-@@ -136,6 +136,7 @@ public:
- void BadSyntax(); // Falsches SbiToken
- void NoIf(); // ELSE/ELSE IF ohne IF
- void Assign(); // LET
-+ void Attribute(); // Attribute
- void Call(); // CALL
- void Close(); // CLOSE
- void Declare(); // DECLARE
-
-Index: basic/source/inc/token.hxx
-===================================================================
-RCS file: /cvs/script/basic/source/inc/token.hxx,v
-retrieving revision 1.2.44.1
-diff -u -p -u -r1.2.44.1 token.hxx
---- basic/source/inc/token.hxx 20 Jan 2004 10:02:31 -0000 1.2.44.1
-+++ basic/source/inc/token.hxx 4 May 2004 09:08:36 -0000
-@@ -108,7 +108,7 @@ enum SbiToken {
- IF, _IN_, INPUT,
- LET, LINE, LINEINPUT, LOCAL, LOOP, LPRINT, LSET,
- NAME, NEW, NEXT,
-- ON, OPEN, OPTION, IMPLEMENTS,
-+ ON, OPEN, OPTION, ATTRIBUTE, IMPLEMENTS,
- PRINT, PRIVATE, PROPERTY, PUBLIC,
- REDIM, REM, RESUME, RETURN, RSET,
- SELECT, SET, SHARED, STATIC, STEP, STOP, SUB,
diff --git a/patches/src680/vba-keybinding-f11.diff b/patches/src680/vba-keybinding-f11.diff
deleted file mode 100644
index f2308ac27..000000000
--- a/patches/src680/vba-keybinding-f11.diff
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -u -p -u -r1.92.12.3 app.src
---- svx/source/src/app.src
-+++ svx/source/src/app.src
-@@ -753,6 +753,7 @@ ACC RID_DEFAULTACCEL
- ACC_CODE( SID_VIEW_DATA_SOURCE_BROWSER, KEY_F4, FALSE, FALSE, FALSE )
- ACC_CODE( SID_FM_GRABCONTROLFOCUS, KEY_F5, FALSE, TRUE, FALSE )
- ACC_CODE( SID_HANGUL_HANJA_CONVERSION, KEY_F7, TRUE, TRUE, FALSE )
-+ ACC_CODE( SID_BASICCHOOSER, KEY_F11, FALSE, FALSE, TRUE )
- };
- };
-
diff --git a/patches/src680/vba-not-comments.diff b/patches/src680/vba-not-comments.diff
deleted file mode 100644
index afae2e2d3..000000000
--- a/patches/src680/vba-not-comments.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- svx/source/msfilter/svxmsbas.cxx
-+++ svx/source/msfilter/svxmsbas.cxx
-@@ -292,6 +292,7 @@
- BOOL bAsComment, BOOL bStripped )
- {
- BOOL bRet = FALSE;
-+ bAsComment = FALSE;
- VBA_Impl aVBA( *xRoot, bAsComment );
- if( aVBA.Open(rStorageName,rSubStorageName) )
- {
diff --git a/patches/src680/vba-sc-handleautoshapemacro-import.diff b/patches/src680/vba-sc-handleautoshapemacro-import.diff
deleted file mode 100644
index b8e416215..000000000
--- a/patches/src680/vba-sc-handleautoshapemacro-import.diff
+++ /dev/null
@@ -1,518 +0,0 @@
-Index: sc/source/ui/unoobj/shapeuno.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/unoobj/shapeuno.cxx,v
-retrieving revision 1.14
-diff -u -p -r1.14 shapeuno.cxx
---- sc/source/ui/unoobj/shapeuno.cxx 8 Sep 2005 22:50:06 -0000 1.14
-+++ sc/source/ui/unoobj/shapeuno.cxx 14 Dec 2005 11:42:41 -0000
-@@ -68,6 +68,8 @@
- #include <comphelper/stl_types.hxx>
- #endif
-
-+#include <cppuhelper/implbase2.hxx>
-+
- using namespace ::com::sun::star;
-
- //------------------------------------------------------------------------
-@@ -141,6 +143,7 @@ uno::Any SAL_CALL ScShapeObj::queryInter
- SC_QUERYINTERFACE( beans::XPropertyState )
- SC_QUERYINTERFACE( text::XTextContent )
- SC_QUERYINTERFACE( lang::XComponent )
-+ SC_QUERYINTERFACE( document::XEventsSupplier )
- if ( bIsTextShape )
- {
- // #105585# for text shapes, XText (and parent interfaces) must
-@@ -1320,3 +1323,126 @@ SdrObject* ScShapeObj::GetSdrObject() co
- return NULL;
- }
-
-+typedef ::cppu::WeakImplHelper1< container::XNameReplace > ShapeUnoEventAcess_BASE;
-+const rtl::OUString sOnClick = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("OnClick") );
-+const rtl::OUString sStrScript = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Script") );
-+const rtl::OUString sEventType = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("EventType") );
-+class ShapeUnoEventAccessImpl : public ShapeUnoEventAcess_BASE
-+{
-+
-+ ScShapeObj* mpShape;
-+ bool isValidName( const rtl::OUString& aName )
-+ {
-+ if ( !aName.equals( sOnClick ) )
-+ return false;
-+ return true;
-+ }
-+
-+ ScDrawObjData* getInfo( BOOL bCreate = false )
-+ {
-+ ScDrawObjData* pInfo = NULL;
-+ SdrObject* pObj = NULL;
-+ if ( mpShape )
-+ {
-+ pObj = mpShape->GetSdrObject();
-+ if ( pObj )
-+ pInfo = ScDrawLayer::GetObjData( pObj, bCreate );
-+ }
-+ return pInfo;
-+ }
-+
-+public:
-+ ShapeUnoEventAccessImpl( ScShapeObj* pShape ): mpShape( pShape )
-+ {
-+ }
-+
-+ // XNameReplace
-+ virtual void SAL_CALL replaceByName( const rtl::OUString& aName, const uno::Any& aElement ) throw(lang::IllegalArgumentException, container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
-+ {
-+ if ( !isValidName( aName ) )
-+ throw container::NoSuchElementException();
-+ uno::Sequence< beans::PropertyValue > aProperties;
-+ aElement >>= aProperties;
-+ const beans::PropertyValue* pProperties = aProperties.getConstArray();
-+ const sal_Int32 nCount = aProperties.getLength();
-+ sal_Int32 nIndex;
-+ bool isEventType = false;
-+ for( nIndex = 0; nIndex < nCount; nIndex++, pProperties++ )
-+ {
-+
-+ if ( pProperties->Name.equals( sEventType ) )
-+ {
-+ isEventType = true;
-+ continue;
-+ }
-+ if ( isEventType && pProperties->Name.equals( sStrScript ) )
-+ {
-+ rtl::OUString sMacro;
-+ if ( ! ( pProperties->Value >>= sMacro ) )
-+ continue;
-+ ScDrawObjData* pInfo = getInfo();
-+ if ( !pInfo )
-+ pInfo = getInfo( TRUE );
-+ DBG_ASSERT( pInfo, "shape animation info could not be created!" );
-+
-+ if ( !pInfo )
-+ break;
-+
-+ pInfo->sMacro = sMacro;
-+ }
-+
-+ }
-+ }
-+
-+ // XNameAccess
-+ virtual uno::Any SAL_CALL getByName( const rtl::OUString& aName ) throw(container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
-+ {
-+ if ( !isValidName( aName ) )
-+ throw container::NoSuchElementException();
-+
-+ ScDrawObjData* pInfo = getInfo();
-+ uno::Sequence< beans::PropertyValue > aProperties;
-+ if ( pInfo )
-+ {
-+ if ( pInfo->sMacro.getLength() )
-+ {
-+ aProperties.realloc(2);
-+ aProperties[ 0 ].Name = sEventType;
-+ aProperties[ 0 ].Value <<= sStrScript;
-+ aProperties[ 1 ].Name = sStrScript;
-+ aProperties[ 1 ].Value <<= pInfo->sMacro;
-+ }
-+
-+ }
-+ return uno::makeAny( aProperties );
-+ }
-+ virtual uno::Sequence< rtl::OUString > SAL_CALL getElementNames( ) throw(uno::RuntimeException)
-+ {
-+ uno::Sequence< rtl::OUString > aStr( &sOnClick, 1 );
-+ return aStr;
-+ }
-+
-+ virtual sal_Bool SAL_CALL hasByName( const rtl::OUString& aName ) throw(uno::RuntimeException)
-+ {
-+ return aName.equals( sOnClick );
-+ }
-+
-+ // XElementAccess
-+ virtual uno::Type SAL_CALL getElementType( ) throw(uno::RuntimeException)
-+ {
-+ return *SEQTYPE(::getCppuType((const uno::Sequence< beans::PropertyValue >*)0));
-+ }
-+
-+ virtual sal_Bool SAL_CALL hasElements( ) throw(uno::RuntimeException)
-+ {
-+ return ( getInfo() != NULL );
-+ }
-+
-+};
-+
-+::uno::Reference< container::XNameReplace > SAL_CALL
-+ScShapeObj::getEvents( ) throw(uno::RuntimeException)
-+{
-+ return new ShapeUnoEventAccessImpl( this );
-+}
-+
-Index: sc/inc/shapeuno.hxx
-===================================================================
-RCS file: /cvs/sc/sc/inc/shapeuno.hxx,v
-retrieving revision 1.8
-diff -u -p -r1.8 shapeuno.hxx
---- sc/inc/shapeuno.hxx 8 Sep 2005 17:57:10 -0000 1.8
-+++ sc/inc/shapeuno.hxx 14 Dec 2005 11:42:41 -0000
-@@ -56,6 +56,8 @@
- #include <com/sun/star/lang/XTypeProvider.hpp>
- #endif
-
-+#include <com/sun/star/document/XEventsSupplier.hpp>
-+
- #ifndef _CPPUHELPER_WEAK_HXX_
- #include <cppuhelper/weak.hxx>
- #endif
-@@ -71,6 +73,7 @@ namespace com { namespace sun { namespac
-
- class SdrObject;
- struct SvEventDescription;
-+class ShapeUnoEventAccessImpl;
-
- //------------------------------------------------------------------------
-
-@@ -82,7 +85,8 @@ class ScShapeObj : public ::cppu::OWeakO
- public ::com::sun::star::beans::XPropertyState,
- public ::com::sun::star::text::XTextContent,
- public ::com::sun::star::text::XText,
-- public ::com::sun::star::lang::XTypeProvider
-+ public ::com::sun::star::lang::XTypeProvider,
-+ public ::com::sun::star::document::XEventsSupplier
- {
- private:
- ::com::sun::star::uno::Reference< ::com::sun::star::uno::XAggregation > mxShapeAgg;
-@@ -91,6 +95,8 @@ private:
-
- SdrObject* GetSdrObject() const throw();
-
-+friend class ShapeUnoEventAccessImpl;
-+
- public:
- static const SvEventDescription* GetSupportedMacroItems();
-
-@@ -229,6 +235,7 @@ public:
- throw(::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId()
- throw(::com::sun::star::uno::RuntimeException);
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameReplace > SAL_CALL getEvents( ) throw(::com::sun::star::uno::RuntimeException);
- };
-
- #endif
-Index: sc/inc/userdat.hxx
-===================================================================
-RCS file: /cvs/sc/sc/inc/userdat.hxx,v
-retrieving revision 1.5
-diff -u -p -r1.5 userdat.hxx
---- sc/inc/userdat.hxx 8 Sep 2005 18:02:42 -0000 1.5
-+++ sc/inc/userdat.hxx 14 Dec 2005 11:42:41 -0000
-@@ -79,6 +79,7 @@ class ScDrawObjData : public SdrObjUserD
- //BFS01 virtual void WriteData(SvStream& rOut);
- //BFS01 virtual void ReadData(SvStream& rIn);
- public:
-+ rtl::OUString sMacro;
- ScAddress aStt, aEnd;
- BOOL bValidStart, bValidEnd;
- ScDrawObjData();
-Index: sc/source/ui/drawfunc/fusel.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/drawfunc/fusel.cxx,v
-retrieving revision 1.11
-diff -u -p -r1.11 fusel.cxx
---- sc/source/ui/drawfunc/fusel.cxx 8 Sep 2005 20:58:07 -0000 1.11
-+++ sc/source/ui/drawfunc/fusel.cxx 14 Dec 2005 11:42:42 -0000
-@@ -70,6 +70,7 @@
- #include "drawpage.hxx"
- #include "globstr.hrc"
- #include "drwlayer.hxx"
-+#include "userdat.hxx"
-
- // -----------------------------------------------------------------------
-
-@@ -125,7 +126,7 @@ BOOL __EXPORT FuSelection::MouseButtonDo
- {
- // #95491# remember button state for creation of own MouseEvents
- SetMouseButtonCode(rMEvt.GetButtons());
--
-+ const bool bSelectionOnly = rMEvt.IsRight();
- if ( pView->IsAction() )
- {
- if ( rMEvt.IsRight() )
-@@ -189,6 +190,33 @@ BOOL __EXPORT FuSelection::MouseButtonDo
- }
- else
- {
-+
-+ if ( !bAlt && pView->PickObj(aMDPos, pObj, pPV, SDRSEARCH_ALSOONMASTER))
-+ {
-+ if ( ! bSelectionOnly)
-+ {
-+ ScDrawObjData* pInfo = ScDrawLayer::GetObjData( pObj );
-+ if ( pInfo && pInfo->sMacro.getLength() )
-+ {
-+ SfxObjectShell* pObjSh = SfxObjectShell::Current();
-+ if ( pObjSh && SfxApplication::IsXScriptURL( pInfo->sMacro ) )
-+ {
-+ uno::Any aRet;
-+ uno::Sequence< sal_Int16 > aOutArgsIndex;
-+ uno::Sequence< uno::Any > aOutArgs;
-+ uno::Sequence< uno::Any >* pInArgs =
-+ new uno::Sequence< uno::Any >(0);
-+ pObjSh->CallXScript( pInfo->sMacro,
-+ *pInArgs, aRet, aOutArgsIndex, aOutArgs);
-+ pViewShell->FakeButtonUp( pViewShell->GetViewData()->GetActivePart() );
-+ return TRUE; // kein CaptureMouse etc.
-+
-+ }
-+ }
-+ }
-+ }
-+
-+
- // URL / ImageMap
-
- SdrViewEvent aVEvt;
-@@ -217,7 +245,6 @@ BOOL __EXPORT FuSelection::MouseButtonDo
- return TRUE; // kein CaptureMouse etc.
- }
- }
--
- // Is another object being edited in this view?
- // (Editing is ended in MarkListHasChanged - test before UnmarkAll)
- SfxInPlaceClient* pClient = pViewShell->GetIPClient();
-Index: sc/source/ui/drawfunc/fudraw.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/drawfunc/fudraw.cxx,v
-retrieving revision 1.16
-diff -u -p -r1.16 fudraw.cxx
---- sc/source/ui/drawfunc/fudraw.cxx 28 Sep 2005 12:10:36 -0000 1.16
-+++ sc/source/ui/drawfunc/fudraw.cxx 14 Dec 2005 11:42:42 -0000
-@@ -866,6 +866,9 @@ void FuDraw::ForcePointer(const MouseEve
- SdrObject* pObj;
- SdrPageView* pPV;
-
-+ ScDrawObjData* pInfo = NULL;
-+ if ( pView->PickObj(aPnt, pObj, pPV, SDRSEARCH_ALSOONMASTER) )
-+ pInfo = ScDrawLayer::GetObjData( pObj );
- if ( pView->IsTextEdit() )
- {
- pViewShell->SetActivePointer(Pointer(POINTER_TEXT)); // kann nicht sein ?
-@@ -891,6 +894,10 @@ void FuDraw::ForcePointer(const MouseEve
- SdrObjMacroHitRec aHitRec; //! muss da noch irgendwas gesetzt werden ????
- pViewShell->SetActivePointer( pObj->GetMacroPointer(aHitRec) );
- }
-+ else if ( !bAlt && pInfo && pInfo->sMacro.getLength() )
-+ {
-+ pWindow->SetPointer( Pointer( POINTER_REFHAND ) );
-+ }
- else if ( IsDetectiveHit( aPnt ) )
- pViewShell->SetActivePointer( Pointer( POINTER_DETECTIVE ) );
- else
-Index: sc/source/filter/inc/xiescher.hxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/inc/xiescher.hxx,v
-retrieving revision 1.19
-diff -u -p -r1.19 xiescher.hxx
---- sc/source/filter/inc/xiescher.hxx 28 Sep 2005 12:00:09 -0000 1.19
-+++ sc/source/filter/inc/xiescher.hxx 14 Dec 2005 11:42:43 -0000
-@@ -148,6 +148,8 @@ public:
- sal_uInt32 GetProgressSize() const;
- /** Additional processing for the passed SdrObject (calls virtual DoProcessSdrObj() function). */
- void ProcessSdrObject( SdrObject& rSdrObj ) const;
-+ /** Returns associated macro name ( if set ) otherwise returns zero length string. */
-+ const String GetMacroName() const { return maMacroName; }
-
- protected:
- /** Derived classes may return a progress bar size different from 1. */
-@@ -158,8 +160,11 @@ protected:
- /** Creates an Escher anchor from the passed position (used for sheet charts). */
- void CreateEscherAnchor( const Rectangle& rAnchorRect );
-
-+ /** Reads the contents of the ftMacro sub structure in an OBJ record. */
-+ void ReadMacro( XclImpStream& rStrm );
- private:
- typedef ScfRef< XclEscherAnchor > XclEscherAnchorRef;
-+ String maMacroName; /// Name of an attached macro.
-
- XclEscherAnchorRef mxAnchor; /// The position of the object in the containing sheet.
- XclObjId maObjId; /// Sheet index and object identifier.
-@@ -278,12 +283,10 @@ private:
- void ReadSbs( XclImpStream& rStrm );
- /** Reads the contents of the ftGboData sub structure in an OBJ record. */
- void ReadGboData( XclImpStream& rStrm );
-- /** Reads the contents of the ftMacro sub structure in an OBJ record. */
-- void ReadMacro( XclImpStream& rStrm );
-+
-
- private:
- ScfInt16Vec maMultiSel; /// Indexes of all selected entries in a multi selection.
-- String maMacroName; /// Name of an attached macro.
- sal_uInt16 mnState; /// Checked/unchecked state.
- sal_Int16 mnSelEntry; /// Index of selected entry (1-based).
- sal_Int16 mnSelType; /// Selection type.
-Index: sc/source/filter/excel/xiescher.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/filter/excel/xiescher.cxx,v
-retrieving revision 1.38
-diff -u -p -r1.38 xiescher.cxx
---- sc/source/filter/excel/xiescher.cxx 28 Sep 2005 11:48:05 -0000 1.38
-+++ sc/source/filter/excel/xiescher.cxx 14 Dec 2005 11:42:44 -0000
-@@ -189,6 +189,7 @@
- #endif
-
- #include "excform.hxx"
-+#include<userdat.hxx>
-
- using ::rtl::OUString;
- using ::rtl::OUStringBuffer;
-@@ -413,6 +414,15 @@ XclImpDrawObjRef XclImpDrawObjBase::Read
-
- void XclImpDrawObjBase::ReadSubRecord( XclImpStream& rStrm, sal_uInt16 nSubRecId, sal_uInt16 nSubRecSize )
- {
-+ switch( nSubRecId )
-+ {
-+ case EXC_ID_OBJ_FTMACRO:
-+ ReadMacro( rStrm );
-+ break;
-+ default:
-+ ;// perhaps an assert here
-+ }
-+
- }
-
- Rectangle XclImpDrawObjBase::ReadClientAnchor( SvStream& rEscherStrm, const DffRecordHeader& rHeader )
-@@ -494,6 +504,38 @@ void XclImpDrawObjBase::DoProcessSdrObj(
- if( !IsPrintable() )
- GetTracer().TraceObjectNotPrintable();
- }
-+void XclImpDrawObjBase::ReadMacro( XclImpStream& rStrm )
-+{
-+ maMacroName.Erase();
-+ if( rStrm.GetRecLeft() > 6 )
-+ {
-+ // macro is stored in a tNameXR token containing a link to a defined name
-+ sal_uInt16 nFmlaSize;
-+ rStrm >> nFmlaSize;
-+ rStrm.Ignore( 4 );
-+ DBG_ASSERT( nFmlaSize == 7, "XclImpDrawObjBase::ReadMacro - unexpected formula size" );
-+ if( nFmlaSize == 7 )
-+ {
-+ sal_uInt8 nTokenId;
-+ sal_uInt16 nExtSheet, nExtName;
-+ rStrm >> nTokenId >> nExtSheet >> nExtName;
-+ DBG_ASSERT( nTokenId == XclTokenArrayHelper::GetTokenId( EXC_TOKID_NAMEX, EXC_TOKCLASS_REF ),
-+ "XclImpDrawObjBase::ReadMacro - tNameXR token expected" );
-+ if( nTokenId == XclTokenArrayHelper::GetTokenId( EXC_TOKID_NAMEX, EXC_TOKCLASS_REF ) )
-+ {
-+ maMacroName = GetLinkManager().GetMacroName( nExtSheet, nExtName );
-+ // #i38718# missing module name - try to find the macro in the imported modules
-+ if( maMacroName.Len() && (maMacroName.Search( '.' ) == STRING_NOTFOUND) )
-+ if( SfxObjectShell* pDocShell = GetDocShell() )
-+ if( StarBASIC* pBasic = pDocShell->GetBasic() )
-+ if( SbMethod* pMethod = dynamic_cast< SbMethod* >( pBasic->Find( maMacroName, SbxCLASS_METHOD ) ) )
-+ if( SbModule* pModule = pMethod->GetModule() )
-+ maMacroName.Insert( '.', 0 ).Insert( pModule->GetName(), 0 );
-+ }
-+ }
-+ }
-+}
-+
-
- // ----------------------------------------------------------------------------
-
-@@ -654,9 +696,6 @@ void XclImpTbxControlObj::ReadSubRecord(
- case EXC_ID_OBJ_FTGBODATA:
- ReadGboData( rStrm );
- break;
-- case EXC_ID_OBJ_FTMACRO:
-- ReadMacro( rStrm );
-- break;
- default:
- XclImpDrawObjBase::ReadSubRecord( rStrm, nSubRecId, nSubRecSize );
- }
-@@ -833,7 +872,7 @@ void XclImpTbxControlObj::WriteToPropert
-
- bool XclImpTbxControlObj::FillMacroDescriptor( ScriptEventDescriptor& rEvent ) const
- {
-- if( maMacroName.Len() )
-+ if( GetMacroName().Len() )
- {
- // type of action is dependent on control type
- rEvent.ListenerType = XclTbxControlHelper::GetListenerType( GetObjType() );
-@@ -842,7 +881,7 @@ bool XclImpTbxControlObj::FillMacroDescr
- {
- // set the macro name
- rEvent.ScriptType = XclTbxControlHelper::GetScriptType();
-- rEvent.ScriptCode = XclTbxControlHelper::GetScMacroName( maMacroName );
-+ rEvent.ScriptCode = XclTbxControlHelper::GetScMacroName( GetMacroName() );
- return true;
- }
- }
-@@ -924,38 +963,6 @@ void XclImpTbxControlObj::ReadGboData( X
- mbFlatBorder = ::get_flag( nStyle, EXC_OBJ_GBO_FLAT );
- }
-
--void XclImpTbxControlObj::ReadMacro( XclImpStream& rStrm )
--{
-- maMacroName.Erase();
-- if( rStrm.GetRecLeft() > 6 )
-- {
-- // macro is stored in a tNameXR token containing a link to a defined name
-- sal_uInt16 nFmlaSize;
-- rStrm >> nFmlaSize;
-- rStrm.Ignore( 4 );
-- DBG_ASSERT( nFmlaSize == 7, "XclImpTbxControlObj::ReadMacro - unexpected formula size" );
-- if( nFmlaSize == 7 )
-- {
-- sal_uInt8 nTokenId;
-- sal_uInt16 nExtSheet, nExtName;
-- rStrm >> nTokenId >> nExtSheet >> nExtName;
-- DBG_ASSERT( nTokenId == XclTokenArrayHelper::GetTokenId( EXC_TOKID_NAMEX, EXC_TOKCLASS_REF ),
-- "XclImpTbxControlObj::ReadMacro - tNameXR token expected" );
-- if( nTokenId == XclTokenArrayHelper::GetTokenId( EXC_TOKID_NAMEX, EXC_TOKCLASS_REF ) )
-- {
-- maMacroName = GetLinkManager().GetMacroName( nExtSheet, nExtName );
-- // #i38718# missing module name - try to find the macro in the imported modules
-- if( maMacroName.Len() && (maMacroName.Search( '.' ) == STRING_NOTFOUND) )
-- if( SfxObjectShell* pDocShell = GetDocShell() )
-- if( StarBASIC* pBasic = pDocShell->GetBasic() )
-- if( SbMethod* pMethod = dynamic_cast< SbMethod* >( pBasic->Find( maMacroName, SbxCLASS_METHOD ) ) )
-- if( SbModule* pModule = pMethod->GetModule() )
-- maMacroName.Insert( '.', 0 ).Insert( pModule->GetName(), 0 );
-- }
-- }
-- }
--}
--
- // ----------------------------------------------------------------------------
-
- XclImpOleObj::XclImpOleObj( const XclImpRoot& rRoot ) :
-@@ -1386,7 +1393,8 @@ SdrObject* XclImpDffManager::ProcessObj(
-
- /* Connect textbox data (string, alignment, text orientation) to object.
- #98132# don't ask for a text-ID, Escher export doesn't set one. */
-- if( XclImpDrawingObj* pDrawingObj = dynamic_cast< XclImpDrawingObj* >( xDrawObj.get() ) )
-+ XclImpDrawingObj* pDrawingObj = dynamic_cast< XclImpDrawingObj* >( xDrawObj.get() );
-+ if( pDrawingObj )
- pDrawingObj->SetTxoData( mrObjManager.FindTxoData( rObjData.rSpHd ) );
-
- // #118052# import internal name of a control
-@@ -1396,6 +1404,17 @@ SdrObject* XclImpDffManager::ProcessObj(
- if( aName.Len() )
- pOleObj->SetControlName( aName );
- }
-+ else
-+ {
-+ // its a drawing object or form control
-+ if ( pDrawingObj && xSdrObj.get() )
-+ {
-+ ScDrawObjData* pInfo = ScDrawLayer::GetObjData( xSdrObj.get(), TRUE );
-+ if ( pInfo && pDrawingObj->GetMacroName().Len() )
-+ pInfo->sMacro = XclTbxControlHelper::GetScMacroName(pDrawingObj->GetMacroName());
-+
-+ }
-+ }
-
- // try to create a custom SdrObject that overwrites the passed object
- SdrObjectPtr xNewSdrObj( CreateCustomSdrObject( *xDrawObj, rAnchorRect ) );
diff --git a/patches/src680/vcl-better-fallback.diff b/patches/src680/vcl-better-fallback.diff
deleted file mode 100644
index e6cf55a8f..000000000
--- a/patches/src680/vcl-better-fallback.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- vcl/unx/source/plugadapt/salplug.cxx 2005-06-21 09:49:05.563280678 +0200
-+++ vcl/unx/source/plugadapt/salplug.cxx 2005-06-21 10:19:57.119254553 +0200
-@@ -464,9 +464,11 @@ SalInstance *CreateSalInstance()
- if( pUsePlugin && *pUsePlugin )
- pInst = tryInstance( OUString::createFromAscii( pUsePlugin ) );
-
-- // fallback to gen
-- if( ! pInst )
-- pInst = tryInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "gen" ) ) );
-+ // fallback, try everything
-+ const char* pPlugin[] = { "gtk", "kde", "gen", 0 };
-+
-+ for ( int i = 0; !pInst && pPlugin[ i ]; ++i )
-+ pInst = tryInstance( OUString::createFromAscii( pPlugin[ i ] ) );
-
- if( ! pInst )
- {
diff --git a/patches/src680/vcl-fix-spin-events.diff b/patches/src680/vcl-fix-spin-events.diff
deleted file mode 100644
index 235f58007..000000000
--- a/patches/src680/vcl-fix-spin-events.diff
+++ /dev/null
@@ -1,32 +0,0 @@
-Index: vcl/source/control/spinbtn.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/control/spinbtn.cxx,v
-retrieving revision 1.7
-diff -u -r1.7 spinbtn.cxx
---- vcl/source/control/spinbtn.cxx 22 Oct 2004 12:13:52 -0000 1.7
-+++ vcl/source/control/spinbtn.cxx 7 Sep 2005 16:05:46 -0000
-@@ -290,7 +299,12 @@
-
- void SpinButton::MouseButtonUp( const MouseEvent& )
- {
- ReleaseMouse();
-+ if ( mbRepeat )
-+ {
-+ maRepeatTimer.Stop();
-+ maRepeatTimer.SetTimeout( GetSettings().GetMouseSettings().GetButtonStartRepeat() );
-+ }
-
- if ( mbUpperIn )
- {
-@@ -309,11 +327,6 @@
-
- mbInitialUp = mbInitialDown = FALSE;
-
-- if ( mbRepeat )
-- {
-- maRepeatTimer.Stop();
-- maRepeatTimer.SetTimeout( GetSettings().GetMouseSettings().GetButtonStartRepeat() );
-- }
- }
-
- // -----------------------------------------------------------------------
diff --git a/patches/src680/vcl-gtk-condition.diff b/patches/src680/vcl-gtk-condition.diff
deleted file mode 100644
index 06431fa36..000000000
--- a/patches/src680/vcl-gtk-condition.diff
+++ /dev/null
@@ -1,15 +0,0 @@
-Index: vcl/unx/gtk/app/gtkdata.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/gtk/app/gtkdata.cxx,v
-retrieving revision 1.15
-diff -u -p -u -r1.15 gtkdata.cxx
---- vcl/unx/gtk/app/gtkdata.cxx 2 Feb 2005 16:41:15 -0000 1.15
-+++ vcl/unx/gtk/app/gtkdata.cxx 9 Mar 2005 17:40:02 -0000
-@@ -716,7 +731,6 @@ void GtkXLib::Yield( BOOL bWait )
- {
- osl_releaseMutex( m_aDispatchMutex );
- osl_setCondition( m_aDispatchCondition ); // trigger non dispatch thread yields
-- osl_resetCondition( m_aDispatchCondition );
- }
- }
-
diff --git a/patches/src680/vcl-gtk-yield.diff b/patches/src680/vcl-gtk-yield.diff
deleted file mode 100644
index efd385749..000000000
--- a/patches/src680/vcl-gtk-yield.diff
+++ /dev/null
@@ -1,22 +0,0 @@
-Index: vcl/unx/gtk/app/gtkdata.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/gtk/app/gtkdata.cxx,v
-retrieving revision 1.14
-diff -u -p -u -r1.14 gtkdata.cxx
---- vcl/unx/gtk/app/gtkdata.cxx 21 Jan 2005 13:36:06 -0000 1.14
-+++ vcl/unx/gtk/app/gtkdata.cxx 7 Feb 2005 16:24:47 -0000
-@@ -699,8 +699,13 @@ void GtkXLib::Yield( BOOL bWait )
- YieldMutexReleaser aReleaser;
-
- if( bDispatchThread )
-- g_main_context_iteration( NULL, bWait );
-+ {
-+ if( !bWait )
-+ while( g_main_context_iteration( NULL, bWait ) );
-+ else
-+ g_main_context_iteration( NULL, TRUE );
-+ }
- else {
- /* #i41693# in case the dispatch thread hangs in join
- * for this thread the condition will never be set
- * workaround: timeout of 1 second a emergency exit
diff --git a/patches/src680/vcl-insensitive-menuitems.diff b/patches/src680/vcl-insensitive-menuitems.diff
deleted file mode 100644
index 3c9fe72e4..000000000
--- a/patches/src680/vcl-insensitive-menuitems.diff
+++ /dev/null
@@ -1,33 +0,0 @@
-Index: vcl/source/window/menu.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/window/menu.cxx,v
-retrieving revision 1.126
-diff -u -r1.126 menu.cxx
---- vcl/source/window/menu.cxx 6 Jul 2005 09:21:16 -0000 1.126
-+++ vcl/source/window/menu.cxx 23 Aug 2005 14:05:48 -0000
-@@ -4130,14 +4174,11 @@
- IsNativeControlSupported( CTRL_MENU_POPUP, PART_MENU_ITEM ) )
- {
- bDrawItemRect = false;
-- if( FALSE == DrawNativeControl( CTRL_MENU_POPUP, PART_MENU_ITEM,
-+ DrawNativeControl( CTRL_MENU_POPUP, PART_MENU_ITEM,
- Region( aItemRect ),
- CTRL_STATE_SELECTED | ( pData->bEnabled? CTRL_STATE_ENABLED: 0 ),
- ImplControlValue(),
-- OUString() ) )
-- {
-- bDrawItemRect = bHighlight;
-- }
-+ OUString() );
- }
- else
- bDrawItemRect = bHighlight;
-@@ -4259,7 +4300,7 @@
- }
-
- MenuItemData* pData = (MenuItemData*)pMenu->GetItemList()->GetDataFromPos( n );
-- if ( ( pData->eType != MENUITEM_SEPARATOR ) && pMenu->ImplIsVisible( n ) )
-+ if ( pData->bEnabled && ( pData->eType != MENUITEM_SEPARATOR ) && pMenu->ImplIsVisible( n ) )
- {
- // Selektion noch im sichtbaren Bereich?
- if ( IsScrollMenu() )
diff --git a/patches/src680/vcl-menu-fixes.diff b/patches/src680/vcl-menu-fixes.diff
deleted file mode 100644
index c8bef22a8..000000000
--- a/patches/src680/vcl-menu-fixes.diff
+++ /dev/null
@@ -1,78 +0,0 @@
-Index: vcl/inc/menu.hxx
-===================================================================
-RCS file: /cvs/gsl/vcl/inc/menu.hxx,v
-retrieving revision 1.32
-diff -u -r1.32 menu.hxx
---- vcl/inc/menu.hxx 30 Aug 2004 16:34:28 -0000 1.32
-+++ vcl/inc/menu.hxx 18 Oct 2004 20:16:06 -0000
-@@ -148,6 +148,9 @@
- // overrides default hiding of disabled entries in popup menus
- #define MENU_FLAG_ALWAYSSHOWDISABLEDENTRIES 0x0004
-
-+// forces images & toggle visibility for toolbar config popup
-+#define MENU_FLAG_SHOWCHECKIMAGES 0x0008
-+
- // --------
- // - Menu -
- // --------
-Index: vcl/source/window/menu.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/window/menu.cxx,v
-retrieving revision 1.114
-diff -u -r1.114 menu.cxx
---- vcl/source/window/menu.cxx 17 Nov 2004 13:19:35 -0000 1.114
-+++ vcl/source/window/menu.cxx 14 Dec 2004 15:21:14 -0000
-@@ -2172,11 +2503,14 @@
- }
-
- if ( !bIsMenuBar )
- {
-+ int nCheckWidth = 0;
-+ if ((nMenuFlags & MENU_FLAG_SHOWCHECKIMAGES) || aMaxImgSz.Width() <= 0)
-+ nCheckWidth = nFontHeight/2 + nExtra;
- USHORT gfxExtra = (USHORT) Max( nExtra, 7L ); // #107710# increase space between checkmarks/images/text
- nCheckPos = (USHORT)nExtra;
-- nImagePos = (USHORT)(nCheckPos + nFontHeight/2 + gfxExtra );
-+ nImagePos = (USHORT)(nCheckPos + nCheckWidth );
- nTextPos = (USHORT)(nImagePos+aMaxImgSz.Width());
- if ( aMaxImgSz.Width() )
- nTextPos += gfxExtra;
-
-@@ -2304,10 +2642,15 @@
- // Image:
- if ( !bLayout && !bIsMenuBar && ( ( pData->eType == MENUITEM_IMAGE ) || ( pData->eType == MENUITEM_STRINGIMAGE ) ) )
- {
-- aTmpPos.Y() = aPos.Y();
-- aTmpPos.X() = aPos.X() + nImagePos;
-- aTmpPos.Y() += (pData->aSz.Height()-pData->aImage.GetSizePixel().Height())/2;
-- pWin->DrawImage( aTmpPos, pData->aImage, nImageStyle );
-+ // Don't render an image for a check thing
-+ if ((nMenuFlags & MENU_FLAG_SHOWCHECKIMAGES) ||
-+ (!(pData->nBits & (MIB_RADIOCHECK | MIB_CHECKABLE | MIB_AUTOCHECK)) && !pData->bChecked))
-+ {
-+ aTmpPos.Y() = aPos.Y();
-+ aTmpPos.X() = aPos.X() + nImagePos;
-+ aTmpPos.Y() += (pData->aSz.Height()-pData->aImage.GetSizePixel().Height())/2;
-+ pWin->DrawImage( aTmpPos, pData->aImage, nImageStyle );
-+ }
- }
-
- // Text:
-
-Index: framework/source/uielement/toolbarmanager.cxx
-===================================================================
-RCS file: /cvs/framework/framework/source/uielement/toolbarmanager.cxx,v
-retrieving revision 1.12
-diff -u -r1.12 toolbarmanager.cxx
---- framework/source/uielement/toolbarmanager.cxx 21 Jan 2005 12:42:13 -0000 1.12
-+++ framework/source/uielement/toolbarmanager.cxx 1 Feb 2005 14:41:35 -0000
-@@ -1580,6 +1580,9 @@
- aPopupMenu.EnableItem( MENUITEM_TOOLBAR_CUSTOMIZETOOLBAR, sal_False );
- }
-
-+ pItemMenu->SetMenuFlags (pItemMenu->GetMenuFlags () |
-+ MENU_FLAG_SHOWCHECKIMAGES);
-+
- for ( nPos = 0; nPos < m_pToolBar->GetItemCount(); ++nPos )
- {
- if ( m_pToolBar->GetItemType(nPos) == TOOLBOXITEM_BUTTON )
diff --git a/patches/src680/vcl-nwf-menu-checkmarks.diff b/patches/src680/vcl-nwf-menu-checkmarks.diff
deleted file mode 100644
index 86f22ddae..000000000
--- a/patches/src680/vcl-nwf-menu-checkmarks.diff
+++ /dev/null
@@ -1,185 +0,0 @@
---- vcl/source/window/menu.cxx 2005-07-13 11:52:56.939826578 +0530
-+++ vcl/source/window/menu.cxx 2005-07-13 12:06:21.297320513 +0530
-@@ -2197,7 +2197,7 @@ Size Menu::ImplCalcSize( Window* pWin )
- {
- int nCheckWidth = 0;
- if ((nMenuFlags & MENU_FLAG_SHOWCHECKIMAGES) || aMaxImgSz.Width() <= 0)
-- nCheckWidth = nFontHeight/2 + nExtra;
-+ nCheckWidth = nFontHeight + nExtra; // native checkmarks + no images need more width
- USHORT gfxExtra = (USHORT) Max( nExtra, 7L ); // #107710# increase space between checkmarks/images/text
- nCheckPos = (USHORT)nExtra;
- nImagePos = (USHORT)(nCheckPos + nCheckWidth );
-@@ -2372,7 +2372,42 @@ void Menu::ImplPaint( Window* pWin, USHO
- }
-
- // CheckMark
-- if ( !bLayout && !bIsMenuBar && pData->bChecked )
-+ if ( !bLayout && !bIsMenuBar &&
-+ ( pData->bChecked || ( pData->nBits & ( MIB_RADIOCHECK | MIB_CHECKABLE | MIB_AUTOCHECK ) ) ) )
-+ {
-+ if ( pWin->IsNativeControlSupported( CTRL_MENU_POPUP,
-+ (pData->nBits & MIB_RADIOCHECK)
-+ ? PART_MENU_ITEM_CHECK_MARK
-+ : PART_MENU_ITEM_RADIO_MARK ) )
-+ {
-+ ControlPart nPart = ((pData->nBits & MIB_RADIOCHECK)
-+ ? PART_MENU_ITEM_RADIO_MARK
-+ : PART_MENU_ITEM_CHECK_MARK);
-+
-+ ControlState nState = 0;
-+
-+ if ( pData->bChecked )
-+ nState |= CTRL_STATE_PRESSED;
-+
-+ if ( pData->bEnabled )
-+ nState |= CTRL_STATE_ENABLED;
-+
-+ if ( bHighlighted )
-+ nState |= CTRL_STATE_SELECTED;
-+
-+ // FIXME use native values
-+ aTmpPos.X() = aPos.X() + nCheckPos;
-+ aTmpPos.Y() = aPos.Y() + nCheckPos;
-+
-+ Rectangle aCheckRect( aTmpPos, Size( nFontHeight, nFontHeight ) );
-+
-+ pWin->DrawNativeControl( CTRL_MENU_POPUP, nPart,
-+ Region( aCheckRect ),
-+ nState,
-+ ImplControlValue(),
-+ OUString() );
-+ }
-+ else if ( pData->bChecked ) // by default do nothing for unchecked items
- {
- Rectangle aRect;
- SymbolType eSymbol;
-@@ -2395,6 +2430,7 @@ void Menu::ImplPaint( Window* pWin, USHO
- }
- aDecoView.DrawSymbol( aRect, eSymbol, pWin->GetTextColor(), nSymbolStyle );
- }
-+ }
-
- // SubMenu?
- if ( !bLayout && !bIsMenuBar && pData->pSubMenu )
---- vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx 2005-07-13 11:52:56.943825924 +0530
-+++ vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx 2005-07-13 11:52:25.127028825 +0530
-@@ -122,6 +122,7 @@ static GtkWidget * gMenubarWidget
- static GtkWidget * gMenuItemMenubarWidget = NULL;
- static GtkWidget * gMenuWidget = NULL;
- static GtkWidget * gMenuItemMenuWidget = NULL;
-+static GtkWidget * gMenuItemCheckMenuWidget = NULL;
- static GtkWidget * gTooltipPopup = NULL;
-
- osl::Mutex * pWidgetMutex;
-@@ -511,6 +512,8 @@ BOOL GtkSalGraphics::IsNativeControlSupp
- ((nType == CTRL_MENU_POPUP) &&
- ( (nPart==PART_ENTIRE_CONTROL) )
- || (nPart==PART_MENU_ITEM)
-+ || (nPart==PART_MENU_ITEM_CHECK_MARK)
-+ || (nPart==PART_MENU_ITEM_RADIO_MARK)
- )
- )
- return( TRUE );
-@@ -767,6 +770,8 @@ BOOL GtkSalGraphics::drawNativeControl(
- else if( (nType == CTRL_MENU_POPUP)
- && ( (nPart == PART_ENTIRE_CONTROL)
- || (nPart == PART_MENU_ITEM)
-+ || (nPart == PART_MENU_ITEM_CHECK_MARK)
-+ || (nPart == PART_MENU_ITEM_RADIO_MARK)
- )
- )
- {
-@@ -2586,6 +2591,50 @@ BOOL GtkSalGraphics::NWPaintGTKPopupMenu
- x, y, w, h);
- }
- }
-+ else if( nPart == PART_MENU_ITEM_CHECK_MARK || nPart == PART_MENU_ITEM_RADIO_MARK )
-+ {
-+ gint nIndicatorSize;
-+
-+ gtk_widget_style_get( gMenuItemCheckMenuWidget,
-+ "indicator_size", &nIndicatorSize,
-+ NULL );
-+
-+ GtkStateType nStateType = GTK_STATE_NORMAL;
-+ GtkShadowType nShadowType;
-+
-+ if ( nState & CTRL_STATE_SELECTED )
-+ nStateType = GTK_STATE_PRELIGHT;
-+
-+ NWSetWidgetState( gMenuItemCheckMenuWidget, nState, nStateType );
-+
-+ if ( nState & CTRL_STATE_PRESSED )
-+ nShadowType = GTK_SHADOW_IN;
-+ else
-+ nShadowType = GTK_SHADOW_OUT;
-+
-+ if ( nPart == PART_MENU_ITEM_CHECK_MARK )
-+ {
-+ gtk_paint_check( gMenuItemCheckMenuWidget->style,
-+ gdkDrawable,
-+ nStateType,
-+ nShadowType,
-+ &clipRect,
-+ gMenuItemMenuWidget,
-+ "check",
-+ x, y, MIN( w, nIndicatorSize ), MIN( h, nIndicatorSize ) );
-+ }
-+ else
-+ {
-+ gtk_paint_option( gMenuItemCheckMenuWidget->style,
-+ gdkDrawable,
-+ nStateType,
-+ nShadowType,
-+ &clipRect,
-+ gMenuItemMenuWidget,
-+ "option",
-+ x, y, MIN( w, nIndicatorSize ), MIN( h, nIndicatorSize ) );
-+ }
-+ }
- }
-
- return( TRUE );
-@@ -2876,8 +2925,6 @@ void GtkSalGraphics::updateSettings( All
- aStyleSet.SetHighlightTextColor( aHighlightTextColor );
-
- // menu colors
-- gtk_widget_ensure_style( gMenuWidget );
-- gtk_widget_ensure_style( gMenuItemMenuWidget );
- GtkStyle* pMenuStyle = gtk_widget_get_style( gMenuWidget );
- GtkStyle* pMenuItemStyle = gtk_rc_get_style( gMenuItemMenuWidget );
- GtkStyle* pMenubarStyle = gtk_rc_get_style( gMenubarWidget );
-@@ -3347,7 +3394,9 @@ static void NWEnsureGTKMenu(void)
- {
- gMenuWidget = gtk_menu_new();
- gMenuItemMenuWidget = gtk_menu_item_new_with_label( "b" );
-+ gMenuItemCheckMenuWidget = gtk_check_menu_item_new_with_label( "b" );
- gtk_menu_shell_append( GTK_MENU_SHELL( gMenuWidget ), gMenuItemMenuWidget );
-+ gtk_menu_shell_append( GTK_MENU_SHELL( gMenuWidget ), gMenuItemCheckMenuWidget );
-
- // do what NWAddWidgetToCacheWindow does except adding to def container
- gtk_widget_realize( gMenuWidget );
-@@ -3356,8 +3405,12 @@ static void NWEnsureGTKMenu(void)
- gtk_widget_realize( gMenuItemMenuWidget );
- gtk_widget_ensure_style( gMenuItemMenuWidget );
-
-+ gtk_widget_realize( gMenuItemCheckMenuWidget );
-+ gtk_widget_ensure_style( gMenuItemCheckMenuWidget );
-+
- gWidgetDefaultFlags[ (long)gMenuWidget ] = GTK_WIDGET_FLAGS( gMenuWidget );
- gWidgetDefaultFlags[ (long)gMenuItemMenuWidget ] = GTK_WIDGET_FLAGS( gMenuItemMenuWidget );
-+ gWidgetDefaultFlags[ (long)gMenuItemCheckMenuWidget ] = GTK_WIDGET_FLAGS( gMenuItemCheckMenuWidget );
- }
- }
-
---- vcl/inc/salnativewidgets.hxx 2005-07-13 11:52:56.945825597 +0530
-+++ vcl/inc/salnativewidgets.hxx 2005-07-13 10:15:41.000000000 +0530
-@@ -183,6 +183,8 @@ typedef sal_uInt32 ControlPart;
- #define PART_THUMB_HORZ 210 // Also used as toolbar grip
- #define PART_THUMB_VERT 211 // Also used as toolbar grip
- #define PART_MENU_ITEM 250
-+#define PART_MENU_ITEM_CHECK_MARK 251
-+#define PART_MENU_ITEM_RADIO_MARK 252
-
- /** The edit field part of a control, e.g. of the combo box.
-
diff --git a/patches/src680/vcl-return-from-hc.diff b/patches/src680/vcl-return-from-hc.diff
deleted file mode 100644
index dfaba5ecf..000000000
--- a/patches/src680/vcl-return-from-hc.diff
+++ /dev/null
@@ -1,44 +0,0 @@
---- vcl/source/window/window.cxx 2005-12-15 08:51:07.000000000 +0000
-+++ vcl/source/window/window.cxx 2005-12-15 09:20:51.000000000 +0000
-@@ -491,13 +491,12 @@ void Window::ImplUpdateGlobalSettings( A
- aFont.SetHeight( defFontheight );
- aStyleSettings.SetGroupFont( aFont );
-
-- rSettings.SetStyleSettings( aStyleSettings );
--
--
- // #104427# auto detect HC mode ?
-- if( !rSettings.GetStyleSettings().GetHighContrastMode() )
-+ sal_Bool bHighContrast = sal_False;
-+ if( rSettings.GetStyleSettings().GetFaceColor().IsDark()
-+ || rSettings.GetStyleSettings().GetWindowColor().IsDark() )
- {
-- sal_Bool bTmp, bAutoHCMode = sal_True;
-+ sal_Bool bTmp = sal_True;
- utl::OConfigurationNode aNode = utl::OConfigurationTreeRoot::tryCreateWithServiceFactory(
- vcl::unohelper::GetMultiServiceFactory(),
- OUString::createFromAscii( "org.openoffice.Office.Common/Accessibility" ) ); // note: case sensisitive !
-@@ -505,19 +504,12 @@ void Window::ImplUpdateGlobalSettings( A
- {
- ::com::sun::star::uno::Any aValue = aNode.getNodeValue( OUString::createFromAscii( "AutoDetectSystemHC" ) );
- if( aValue >>= bTmp )
-- bAutoHCMode = bTmp;
-- }
-- if( bAutoHCMode )
-- {
-- if( rSettings.GetStyleSettings().GetFaceColor().IsDark()
-- || rSettings.GetStyleSettings().GetWindowColor().IsDark() )
-- {
-- StyleSettings aStyleSettings = rSettings.GetStyleSettings();
-- aStyleSettings.SetHighContrastMode( TRUE );
-- rSettings.SetStyleSettings( aStyleSettings );
-- }
-+ bHighContrast = bTmp;
- }
- }
-+ aStyleSettings.SetHighContrastMode( bHighContrast );
-+
-+ rSettings.SetStyleSettings( aStyleSettings );
-
- // Detect if images in menus are allowed or not
- {
diff --git a/patches/src680/vcl-toolbox-height.diff b/patches/src680/vcl-toolbox-height.diff
deleted file mode 100644
index 2f2937b21..000000000
--- a/patches/src680/vcl-toolbox-height.diff
+++ /dev/null
@@ -1,46 +0,0 @@
---- vcl/inc/toolbox.h 2005-11-02 15:23:22.000000000 +0100
-+++ vcl/inc/toolbox.h 2005-11-02 16:21:13.000000000 +0100
-@@ -66,7 +66,10 @@
- #define TB_MENUBUTTON_OFFSET 2
-
- #define TB_SMALLIMAGESIZE 16
--#define TB_LARGEIMAGESIZE 32
-+
-+#define TB_LARGEIMAGESIZE 26
-+#define TB_LARGEIMAGESIZE_INDUSTRIAL 24
-+#define TB_LARGEIMAGESIZE_CRYSTAL 22
-
- class Window;
-
---- vcl/source/window/toolbox2.cxx 2005-09-09 14:32:15.000000000 +0200
-+++ vcl/source/window/toolbox2.cxx 2005-11-02 16:21:50.000000000 +0100
-@@ -1012,8 +1012,28 @@ ToolBoxButtonSize ToolBox::GetToolboxBut
-
- const Size& ToolBox::ImplGetDefaultImageSize() const
- {
-- static Size aLargeButtonSize( TB_LARGEIMAGESIZE, TB_LARGEIMAGESIZE );
- static Size aSmallButtonSize( TB_SMALLIMAGESIZE, TB_SMALLIMAGESIZE );
-+
-+ static ULONG s_nSymbolsStyle = STYLE_SYMBOLS_DEFAULT;
-+ static Size aLargeButtonSize( TB_LARGEIMAGESIZE, TB_LARGEIMAGESIZE );
-+
-+ ULONG nSymbolsStyle = Application::GetSettings().GetStyleSettings().GetCurrentSymbolsStyle();
-+ if ( s_nSymbolsStyle != nSymbolsStyle )
-+ {
-+ s_nSymbolsStyle = nSymbolsStyle;
-+ switch ( nSymbolsStyle )
-+ {
-+ case STYLE_SYMBOLS_INDUSTRIAL:
-+ aLargeButtonSize = Size( TB_LARGEIMAGESIZE_INDUSTRIAL, TB_LARGEIMAGESIZE_INDUSTRIAL );
-+ break;
-+ case STYLE_SYMBOLS_CRYSTAL:
-+ aLargeButtonSize = Size( TB_LARGEIMAGESIZE_CRYSTAL, TB_LARGEIMAGESIZE_CRYSTAL );
-+ break;
-+ default:
-+ aLargeButtonSize = Size( TB_LARGEIMAGESIZE, TB_LARGEIMAGESIZE );
-+ }
-+ }
-+
- return GetToolboxButtonSize() == TOOLBOX_BUTTONSIZE_LARGE ? aLargeButtonSize : aSmallButtonSize;
- }
-
diff --git a/patches/src680/version-1-9-x.diff b/patches/src680/version-1-9-x.diff
deleted file mode 100644
index 05bcf8f1d..000000000
--- a/patches/src680/version-1-9-x.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- instsetoo_native/util/openoffice.lst.old 2005-01-31 11:38:28.000000000 +0100
-+++ instsetoo_native/util/openoffice.lst 2005-03-04 15:44:45.000000000 +0100
-@@ -5,6 +5,6 @@
- variables
- {
- PRODUCTNAME OpenOffice.org
-- PRODUCTVERSION 2.0
-+ PRODUCTVERSION 2.0.0.134
- PRODUCTEXTENSION
- LONG_PRODUCTEXTENSION
-@@ -13,7 +13,7 @@
- FILEFORMATNAME OpenOffice.org
- FILEFORMATVERSION 1.0
- WRITERCOMPATIBILITYVERSIONOOO11 OpenOffice.org 1.1
- PACKAGEVERSION 2.0.0
-- PACKAGEREVISION {milestone}
-+ PACKAGEREVISION 134
- LICENSENAME LGPL
- SERVICESPROJEKT 1
diff --git a/patches/src680/version-2-0-pre.diff b/patches/src680/version-2-0-pre.diff
deleted file mode 100644
index bc5862ff9..000000000
--- a/patches/src680/version-2-0-pre.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- scp2/source/ooo/profileitem_ooo.scp.orig 2005-01-31 12:01:28.000000000 +0100
-+++ scp2/source/ooo/profileitem_ooo.scp 2005-03-04 15:47:33.000000000 +0100
-@@ -163,7 +163,7 @@
- #ifdef WNT
- Value = "$SYSUSERCONFIG/%ONEWORDPRODUCTNAME%PRODUCTVERSION";
- #else
-- Value = "$SYSUSERCONFIG/.%LCONEWORDPRODUCTNAME%USERDIRPRODUCTVERSION";
-+ Value = "$SYSUSERCONFIG/.ooo-%PRODUCTVERSION";
- #endif
- StandaloneValue = "$ORIGIN/..";
- End
diff --git a/patches/src680/vfs-kde-too.diff b/patches/src680/vfs-kde-too.diff
deleted file mode 100644
index 5e485c199..000000000
--- a/patches/src680/vfs-kde-too.diff
+++ /dev/null
@@ -1,17 +0,0 @@
-Index: desktop/source/app/appinit.cxx
-===================================================================
-RCS file: /cvs/framework/desktop/source/app/appinit.cxx,v
-retrieving revision 1.21
-diff -u -p -u -r1.21 appinit.cxx
---- desktop/source/app/appinit.cxx 10 Dec 2004 18:39:15 -0000 1.21
-+++ desktop/source/app/appinit.cxx 24 Feb 2005 15:29:10 -0000
-@@ -228,7 +228,8 @@ static bool configureUcb(bool bServer, r
- );
- rtl::OUString aDesktopEnvironment;
- if ((aValue >>= aDesktopEnvironment)
-- && aDesktopEnvironment.equalsAscii("GNOME"))
-+ && (aDesktopEnvironment.equalsAscii("GNOME") ||
-+ aDesktopEnvironment.equalsAscii("KDE")))
- {
- Reference<XContentProviderManager> xCPM =
- cb->getContentProviderManagerInterface();
diff --git a/patches/src680/warning-return-values-binfilter.diff b/patches/src680/warning-return-values-binfilter.diff
deleted file mode 100644
index 7d657f9aa..000000000
--- a/patches/src680/warning-return-values-binfilter.diff
+++ /dev/null
@@ -1,22 +0,0 @@
---- binfilter/inc/bf_sfx2/urlframe.hxx.old 2005-09-09 14:44:44.000000000 +0200
-+++ binfilter/inc/bf_sfx2/urlframe.hxx 2005-12-12 13:15:31.000000000 +0100
-@@ -63,6 +63,8 @@
- class SfxURLFrame : public SfxFrame
- {
- //STRIP001 SfxURLFrameWindow_Impl* pWindow;
-+// this variable is only necessary to avoid a warning, see the method GetWindow
-+Window *pFakeWindow;
- //STRIP001 SfxURLFrame_Impl* pImp;
- //STRIP001 SfxFrameSetViewShell* pFrameSet;
-
-@@ -85,7 +87,9 @@
- SfxReleasableFrame* pRel,
- SfxFrame* pParent );
-
-- virtual Window& GetWindow() const{DBG_BF_ASSERT(0, "STRIP"); Window aWindow(NULL,0); return aWindow;} //STRIP001 virtual Window& GetWindow() const;
-+// the variable pFakeWindow is used to avoid
-+// warning: reference to local variable ‘aFakeWindow’ returned
-+ virtual Window& GetWindow() const{DBG_BF_ASSERT(0, "STRIP"); return *pFakeWindow;} //STRIP001 virtual Window& GetWindow() const;
- //STRIP001 DockingWindow* GetDockingWindow() const;
- //STRIP001 const INetURLObject& GetURL() const
- //STRIP001 { return GetDescriptor()->GetActualURL(); }
diff --git a/patches/src680/warning-return-values-connectivity-kab-m146.diff b/patches/src680/warning-return-values-connectivity-kab-m146.diff
deleted file mode 100644
index c23797416..000000000
--- a/patches/src680/warning-return-values-connectivity-kab-m146.diff
+++ /dev/null
@@ -1,33 +0,0 @@
---- connectivity/source/drivers/kab/KResultSet.cxx.old 2005-09-22 14:15:29.000000000 +0200
-+++ connectivity/source/drivers/kab/KResultSet.cxx 2005-09-22 14:22:01.000000000 +0200
-@@ -185,6 +185,8 @@
- ::dbtools::throwGenericSQLException(
- ::rtl::OUString::createFromAscii("Invalid column name: ") + columnName,
- NULL);
-+ // just to avoid warning: control reaches end of non-void function
-+ return 1;
- }
- // -------------------------------------------------------------------------
- Reference< XInputStream > SAL_CALL KabResultSet::getBinaryStream(sal_Int32 columnIndex) throw(SQLException, RuntimeException)
---- connectivity/source/drivers/kab/KResultSetMetaData.cxx.old 2005-09-22 14:11:52.000000000 +0200
-+++ connectivity/source/drivers/kab/KResultSetMetaData.cxx 2005-09-22 14:21:55.000000000 +0200
-@@ -103,6 +103,8 @@
- ::dbtools::throwGenericSQLException(
- ::rtl::OUString::createFromAscii("Invalid column name: ") + columnName,
- NULL);
-+ // just to avoid warning: control reaches end of non-void function
-+ return 0;
- }
- // -------------------------------------------------------------------------
- void KabResultSetMetaData::setKabFields(const ::vos::ORef<connectivity::OSQLColumns> &xColumns) throw(SQLException)
---- connectivity/source/drivers/kab/KStatement.cxx.old 2005-09-20 18:10:50.000000000 +0200
-+++ connectivity/source/drivers/kab/KStatement.cxx 2005-09-22 14:20:35.000000000 +0200
-@@ -237,6 +237,8 @@
- ::dbtools::throwGenericSQLException(
- ::rtl::OUString::createFromAscii("Syntax error or keyword not recognized."),
- NULL);
-+ // just to avoid warning: control reaches end of non-void function
-+ return NULL;
- }
- //------------------------------------------------------------------------------
- sal_Bool KabCommonStatement::isTableKnown(KabResultSet *pResult) const
diff --git a/patches/src680/warning-return-values-connectivity-kab.diff b/patches/src680/warning-return-values-connectivity-kab.diff
deleted file mode 100644
index 9fd659b21..000000000
--- a/patches/src680/warning-return-values-connectivity-kab.diff
+++ /dev/null
@@ -1,44 +0,0 @@
---- connectivity/source/drivers/kab/KResultSet.cxx.old 2005-09-22 14:15:29.000000000 +0200
-+++ connectivity/source/drivers/kab/KResultSet.cxx 2005-09-22 14:22:01.000000000 +0200
-@@ -201,6 +201,8 @@
- ::dbtools::throwGenericSQLException(
- ::rtl::OUString::createFromAscii("Invalid column name: ") + columnName,
- NULL);
-+ // just to avoid warning: control reaches end of non-void function
-+ return 1;
- }
- // -------------------------------------------------------------------------
- Reference< XInputStream > SAL_CALL KabResultSet::getBinaryStream(sal_Int32 columnIndex) throw(SQLException, RuntimeException)
---- connectivity/source/drivers/kab/KStatement.cxx.orig 2005-12-19 17:51:20.000000000 +0100
-+++ connectivity/source/drivers/kab/KStatement.cxx 2006-01-05 11:00:50.000000000 +0100
-@@ -214,6 +214,8 @@
- ::dbtools::throwGenericSQLException(
- ::rtl::OUString::createFromAscii("Syntax error or keyword not recognized."),
- NULL);
-+ // just to avoid warning: control reaches end of non-void function
-+ return NULL;
- }
- // -----------------------------------------------------------------------------
- KabOrder *KabCommonStatement::analyseOrderByClause(const OSQLParseNode *pParseNode) const throw(SQLException)
-@@ -261,6 +263,8 @@
- ::dbtools::throwGenericSQLException(
- ::rtl::OUString::createFromAscii("Syntax error or keyword not recognized."),
- NULL);
-+ // just to avoid warning: control reaches end of non-void function
-+ return NULL;
- }
- //------------------------------------------------------------------------------
- sal_Bool KabCommonStatement::isTableKnown(KabResultSet *pResult) const
---- connectivity/source/drivers/kab/kfields.cxx.old 2005-12-19 17:53:21.000000000 +0100
-+++ connectivity/source/drivers/kab/kfields.cxx 2006-01-05 11:09:50.000000000 +0100
-@@ -85,6 +85,10 @@
- ::dbtools::throwGenericSQLException(
- ::rtl::OUString::createFromAscii("Invalid column name: ") + columnName,
- NULL);
-+ // just to avoid warning: control reaches end of non-void function in a broken gcc-4.1
-+ // this code is never accessed because of the throw*Exception above
-+ return 0;
-+
- }
- // ------------------------------------------------------------------------------
- }
diff --git a/patches/src680/warning-return-values-cppcanvas.diff b/patches/src680/warning-return-values-cppcanvas.diff
deleted file mode 100644
index 78fff4ee5..000000000
--- a/patches/src680/warning-return-values-cppcanvas.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- cppcanvas/source/mtfrenderer/textaction.cxx.old 2005-11-25 20:34:33.000000000 +0100
-+++ cppcanvas/source/mtfrenderer/textaction.cxx 2005-11-28 18:45:03.000000000 +0100
-@@ -2308,6 +2308,9 @@
- rState ) );
- }
- }
-+ // this line is never accessed
-+ // just hack to avoid warning:control reaches end of non-void function
-+ return ActionSharedPtr();
- }
- }
- }
diff --git a/patches/src680/warning-return-values-filter.diff b/patches/src680/warning-return-values-filter.diff
deleted file mode 100644
index 0408d697b..000000000
--- a/patches/src680/warning-return-values-filter.diff
+++ /dev/null
@@ -1,18 +0,0 @@
---- filter/source/config/cache/filtercache.cxx.old 2005-09-08 23:28:41.000000000 +0200
-+++ filter/source/config/cache/filtercache.cxx 2005-11-28 19:17:53.000000000 +0100
-@@ -849,10 +849,13 @@
- case E_CONTENTHANDLER : return m_lContentHandlers; break;
- case E_DETECTSERVICE : return m_lDetectServices ; break;
-
-- default : throw css::uno::Exception(::rtl::OUString::createFromAscii("unknown sub container requested."),
-- css::uno::Reference< css::uno::XInterface >() );
-+ default : break;
- }
-
-+ // throw has been moved from the default section of the switch to
-+ // avoid warning: control reaches end of non-void function
-+ throw css::uno::Exception(::rtl::OUString::createFromAscii("unknown sub container requested."),
-+ css::uno::Reference< css::uno::XInterface >() );
- // <- SAFE ----------------------------------
- }
-
diff --git a/patches/src680/warning-return-values-framework.diff b/patches/src680/warning-return-values-framework.diff
deleted file mode 100644
index a8e80dfc7..000000000
--- a/patches/src680/warning-return-values-framework.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- framework/source/accelerators/acceleratorconfiguration.cxx.old 2005-09-09 03:02:50.000000000 +0200
-+++ framework/source/accelerators/acceleratorconfiguration.cxx 2005-11-28 19:10:29.000000000 +0100
-@@ -615,15 +615,14 @@
- {
- m_pWriteCache = new AcceleratorCache(m_aReadCache);
- }
--
-+
- // in case, we have a writeable cache, we use it for reading too!
- // Otherwhise the API user cant find its own changes ...
- if (m_pWriteCache)
- return *m_pWriteCache;
- else
- return m_aReadCache;
--
-- aWriteLock.unlock();
-+
- // <- SAFE ----------------------------------
- }
-
diff --git a/patches/src680/warning-return-values-registry.diff b/patches/src680/warning-return-values-registry.diff
deleted file mode 100644
index 91673207e..000000000
--- a/patches/src680/warning-return-values-registry.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- registry/source/regimpl.cxx.old 2005-09-09 07:16:14.000000000 +0200
-+++ registry/source/regimpl.cxx 2005-11-28 19:22:26.000000000 +0100
-@@ -561,6 +561,9 @@
- } else
- return REG_INVALID_REGISTRY;
- }
-+ // this line is never accessed
-+ // just hack to avoid warning: control reaches end of non-void function
-+ return REG_INVALID_REGISTRY;
- }
-
-
diff --git a/patches/src680/warning-return-values-stlport.diff b/patches/src680/warning-return-values-stlport.diff
deleted file mode 100644
index 3b5221b32..000000000
--- a/patches/src680/warning-return-values-stlport.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- stlport/STLport-4.5.patch.ark 2005-05-10 02:32:20.000000000 +0200
-+++ stlport/STLport-4.5.patch 2005-05-10 02:33:07.000000000 +0200
-@@ -466,3 +466,13 @@
- # define _STLP_MUTEX_INITIALIZER
- # endif
-
-+--- misc/build/STLport-4.5/stlport/stl/_fstream.c.old 2005-04-19 14:07:03.000000000 +0200
-++++ misc/build/STLport-4.5/stlport/stl/_fstream.c 2005-04-19 14:10:03.000000000 +0200
-+@@ -379,6 +379,7 @@
-+ }
-+ else
-+ return pos_type(-1);
-++ return pos_type(-1);
-+ }
-+
-+
diff --git a/patches/src680/warning-return-values-toolkit.diff b/patches/src680/warning-return-values-toolkit.diff
deleted file mode 100644
index cf0618b44..000000000
--- a/patches/src680/warning-return-values-toolkit.diff
+++ /dev/null
@@ -1,38 +0,0 @@
---- toolkit/source/controls/roadmapcontrol.cxx.old 2005-09-09 15:17:47.000000000 +0200
-+++ toolkit/source/controls/roadmapcontrol.cxx 2005-11-28 18:25:18.000000000 +0100
-@@ -265,12 +265,13 @@
- sal_Int32 UnoControlRoadmapModel::GetUniqueID()
- {
- Any aAny;
-- sal_Bool bIncrement = sal_False;
-+ sal_Bool bIncrement = sal_True;
- sal_Int32 CurID = 0;
- sal_Int32 n_CurItemID;
- Reference< XInterface > CurRoadmapItem;
-- while ( ! bIncrement )
-+ while ( bIncrement )
- {
-+ bIncrement = sal_False;
- for ( RoadmapItemHolderList::iterator i = maRoadmapItems.begin(); i < maRoadmapItems.end(); i++ )
- {
- CurRoadmapItem = *i;
-@@ -280,17 +281,12 @@
- if (n_CurItemID == CurID)
- {
- bIncrement = sal_True;
-+ CurID++;
- break;
- }
- }
-- if ( bIncrement )
-- {
-- bIncrement = sal_False;
-- CurID++;
-- }
-- else
-- return CurID;
- }
-+ return CurID;
- }
-
-
diff --git a/patches/src680/warning-uninitialized-variables-binfilter.diff b/patches/src680/warning-uninitialized-variables-binfilter.diff
deleted file mode 100644
index fb0bde40b..000000000
--- a/patches/src680/warning-uninitialized-variables-binfilter.diff
+++ /dev/null
@@ -1,35 +0,0 @@
---- binfilter/bf_sc/source/core/data/sc_document.cxx.old 2005-12-07 20:24:38.000000000 +0100
-+++ binfilter/bf_sc/source/core/data/sc_document.cxx 2005-12-09 16:24:44.000000000 +0100
-@@ -1740,7 +1740,9 @@
-
- /*N*/ void ScDocument::GetClipArea(USHORT& nClipX, USHORT& nClipY, BOOL bIncludeFiltered)
- /*N*/ {
--DBG_BF_ASSERT(0, "STRIP"); //STRIP001 //STRIP001 if (bIsClip)
-+DBG_BF_ASSERT(0, "STRIP"); //STRIP001
-+nClipX = 0; nClipY = 0; // hack to avoid warning: ‘’ is used uninitialized; added to fix consequences of //STRIP001
-+//STRIP001 if (bIsClip)
- //STRIP001 {
- //STRIP001 nClipX = aClipRange.aEnd.Col() - aClipRange.aStart.Col();
- //STRIP001
---- binfilter/bf_sc/source/ui/unoobj/sc_viewuno.cxx.old 2005-12-09 12:52:08.000000000 +0100
-+++ binfilter/bf_sc/source/ui/unoobj/sc_viewuno.cxx 2005-12-09 13:03:13.000000000 +0100
-@@ -1144,7 +1144,7 @@
- ScDBFunc* pView = pViewSh->GetViewData()->GetView();
- if (pView)
- {
-- SvxZoomType eZoomType;
-+ SvxZoomType eZoomType = SVX_ZOOM_PERCENT;
- switch (aZoomType)
- {
- case view::DocumentZoomType::BY_VALUE:
---- binfilter/bf_sw/source/core/undo/sw_undobj.cxx.old 2005-09-09 04:43:57.000000000 +0200
-+++ binfilter/bf_sw/source/core/undo/sw_undobj.cxx 2005-12-08 15:24:52.000000000 +0100
-@@ -755,7 +755,7 @@
- /*N*/
- /*N*/ // Positionen als SwIndex merken, damit im DTOR dieser Bereich
- /*N*/ // entfernt werden kann !!
--/*N*/ ULONG nEnd;
-+/*N*/ ULONG nEnd = 0;
- /*N*/ pMvStt = new SwNodeIndex( rRange.aStart );
- /*N*/ MoveToUndoNds( aPam, pMvStt, 0, &nEnd, 0 );
- /*N*/ nMvLen = nEnd - pMvStt->GetIndex() + 1;
diff --git a/patches/src680/warning-uninitialized-variables-comphelper.diff b/patches/src680/warning-uninitialized-variables-comphelper.diff
deleted file mode 100644
index ff68e8c8a..000000000
--- a/patches/src680/warning-uninitialized-variables-comphelper.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- comphelper/source/misc/types.cxx.old 2005-09-08 04:53:28.000000000 +0200
-+++ comphelper/source/misc/types.cxx 2005-11-28 19:50:33.000000000 +0100
-@@ -179,7 +179,7 @@
- //------------------------------------------------------------------
- sal_Bool tryCompare(const void* _pData, const Any& _rValue, sal_Bool& _bIdentical, sal_Char& _rOut)
- {
-- sal_Int8 nDummy;
-+ sal_Int8 nDummy=0;
- sal_Bool bSuccess = _rValue >>= nDummy;
- _rOut = (sal_Char)nDummy;
- _bIdentical = bSuccess && (_rOut == *reinterpret_cast<const sal_Bool*>(_pData));
diff --git a/patches/src680/warning-uninitialized-variables-remotebridges.diff b/patches/src680/warning-uninitialized-variables-remotebridges.diff
deleted file mode 100644
index 0b2efa146..000000000
--- a/patches/src680/warning-uninitialized-variables-remotebridges.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- remotebridges/source/factory/bridgeimpl.cxx.old 2005-09-20 15:16:54.000000000 +0200
-+++ remotebridges/source/factory/bridgeimpl.cxx 2005-09-20 15:22:53.000000000 +0200
-@@ -156,7 +156,7 @@
- }
- if( pContext )
- {
-- sal_Int32 nIndex;
-+ sal_Int32 nIndex=0;
- OUString sProtocol = OUString( m_pContext->m_pProtocol ).getToken( 0 , ',' , nIndex );
-
- // get the appropriate remote environment
diff --git a/patches/src680/warning-uninitialized-variables-sc.diff b/patches/src680/warning-uninitialized-variables-sc.diff
deleted file mode 100644
index bba343e79..000000000
--- a/patches/src680/warning-uninitialized-variables-sc.diff
+++ /dev/null
@@ -1,49 +0,0 @@
---- sc/source/core/data/column2.cxx.old 2005-02-21 16:58:00.000000000 +0100
-+++ sc/source/core/data/column2.cxx 2005-05-30 15:48:37.000000000 +0200
-@@ -174,6 +174,8 @@
- #if SC_ROWLIMIT_STREAM_ACCESS
- #error address types changed!
- rStream >> nNewCount;
-+#else
-+ nNewCount = nCount;
- #endif
- if ( nNewCount > static_cast<SCSIZE>(MAXROW+1) ) // wuerde das Array zu gross?
- {
-@@ -188,6 +190,8 @@
- #if SC_ROWLIMIT_STREAM_ACCESS
- #error address types changed!
- rStream >> nNewRow;
-+#else
-+ nNewRow = i;
- #endif
- rStream >> nByte;
-
-@@ -447,6 +451,8 @@
- #if SC_ROWLIMIT_STREAM_ACCESS
- #error address types changed!
- rStream >> nNoteCount;
-+#else
-+ nNoteCount = nCount;
- #endif
- for (SCSIZE i=0; i<nNoteCount && rStream.GetError() == SVSTREAM_OK; i++)
- {
-@@ -454,6 +460,8 @@
- #if SC_ROWLIMIT_STREAM_ACCESS
- #error address types changed!
- rStream >> nPos;
-+#else
-+ nPos = i;
- #endif
- if (nPos < nCount)
- pItems[nPos].pCell->LoadNote(rStream, pDocument);
---- sc/source/ui/optdlg/tpview.cxx.old 2004-08-23 11:40:02.000000000 +0200
-+++ sc/source/ui/optdlg/tpview.cxx 2005-05-30 16:10:39.000000000 +0200
-@@ -334,7 +334,7 @@
-
- IMPL_LINK( ScTpContentOptions, CBHdl, CheckBox*, pBtn )
- {
-- ScViewOption eOption;
-+ ScViewOption eOption = VOPT_NULLVALS;
- BOOL bChecked = pBtn->IsChecked();
-
- if ( &aFormulaCB == pBtn ) eOption = VOPT_FORMULAS;
diff --git a/patches/src680/warning-uninitialized-variables-sd.diff b/patches/src680/warning-uninitialized-variables-sd.diff
deleted file mode 100644
index 04de5d007..000000000
--- a/patches/src680/warning-uninitialized-variables-sd.diff
+++ /dev/null
@@ -1,22 +0,0 @@
---- sd/source/ui/view/ViewShellImplementation.cxx.old 2005-05-17 11:06:49.000000000 +0200
-+++ sd/source/ui/view/ViewShellImplementation.cxx 2005-05-17 11:48:54.000000000 +0200
-@@ -168,9 +168,6 @@
-
- AutoLayout aNewAutoLayout;
-
-- // #95981#
-- AutoLayout aOldAutoLayout;
--
- BOOL bBVisible;
- BOOL bBObjsVisible;
- const SfxItemSet* pArgs = rRequest.GetArgs();
-@@ -269,6 +266,9 @@
- // ImpUndoDeleteWarning dialog
- if(bShowDialog)
- {
-+ // #95981#
-+ AutoLayout aOldAutoLayout = pUndoPage->GetAutoLayout();
-+
- sal_Bool bNameChanged(aNewName != aOldName);
- sal_Bool bLayoutChanged(aNewAutoLayout != aOldAutoLayout);
-
diff --git a/patches/src680/warning-uninitialized-variables-sw.diff b/patches/src680/warning-uninitialized-variables-sw.diff
deleted file mode 100644
index 01b15bac0..000000000
--- a/patches/src680/warning-uninitialized-variables-sw.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- sw/source/filter/basflt/fltini.cxx.old 2005-05-27 14:13:45.000000000 +0200
-+++ sw/source/filter/basflt/fltini.cxx 2005-05-30 16:29:56.000000000 +0200
-@@ -409,7 +409,7 @@
-
- ULONG Sw3Writer::WriteStorage()
- {
-- ULONG nRet; /*
-+ ULONG nRet = ERR_SWG_WRITE_ERROR; /*
- if( pIO )
- {
- // der gleiche Storage -> Save, sonst SaveAs aufrufen
diff --git a/patches/src680/warning-uninitialized-variables-sw2.diff b/patches/src680/warning-uninitialized-variables-sw2.diff
deleted file mode 100644
index efe680afa..000000000
--- a/patches/src680/warning-uninitialized-variables-sw2.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- sw/source/ui/frmdlg/column.cxx.old 2004-08-23 10:55:09.000000000 +0200
-+++ sw/source/ui/frmdlg/column.cxx 2005-09-22 15:13:12.000000000 +0200
-@@ -1442,7 +1442,7 @@
-
- long nStep = Abs(Abs(nRectHeight * 95 /100) / 11);
- long nTop = (nRectHeight - 11 * nStep ) / 2;
-- USHORT nCols;
-+ USHORT nCols=0;
- long nStarts[3];
- long nEnds[3];
- nStarts[0] = nRectWidth * 10 / 100;
diff --git a/patches/src680/warning-uninitialized-variables-tools-2.diff b/patches/src680/warning-uninitialized-variables-tools-2.diff
deleted file mode 100644
index 437fbde1a..000000000
--- a/patches/src680/warning-uninitialized-variables-tools-2.diff
+++ /dev/null
@@ -1,24 +0,0 @@
---- tools/source/inet/inetmime.cxx.old 2005-09-09 16:23:08.000000000 +0200
-+++ tools/source/inet/inetmime.cxx 2005-11-28 20:06:21.000000000 +0100
-@@ -3051,7 +3051,9 @@
- ByteString sDecoded;
- while (p != pEnd)
- {
-- sal_uInt32 nCharacter;
-+ // the value is initialized just to avoid warning: ‘nCharacter’ is used uninitialized in this function
-+ // there seems to be a bug in gcc-4.1 because this value is used only if it is initialized
-+ sal_uInt32 nCharacter=0;
- if (translateUTF8Char(p, pEnd, eEncoding, nCharacter))
- sDecoded += sal_Char(nCharacter);
- else
-@@ -3478,7 +3480,9 @@
- {
- const sal_Char * pUTF8Begin = p - 1;
- const sal_Char * pUTF8End = pUTF8Begin;
-- sal_uInt32 nCharacter;
-+ // the value is initialized just to avoid warning: ‘nCharacter’ is used uninitialized in this function
-+ // there seems to be a bug in gcc-4.1 because this value is used only if it is initialized
-+ sal_uInt32 nCharacter=0;
- if (translateUTF8Char(pUTF8End, pEnd, RTL_TEXTENCODING_UCS4,
- nCharacter))
- {
diff --git a/patches/src680/warning-uninitialized-variables-tools.diff b/patches/src680/warning-uninitialized-variables-tools.diff
deleted file mode 100644
index 19352abb7..000000000
--- a/patches/src680/warning-uninitialized-variables-tools.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- tools/inc/link.hxx.old 2005-04-13 14:02:09.000000000 +0200
-+++ tools/inc/link.hxx 2005-05-17 12:41:12.000000000 +0200
-@@ -166,6 +166,7 @@
-
- inline Link::Link()
- {
-+ pInst = NULL;
- pFunc = 0;
- }
-
diff --git a/patches/src680/warning-uninitialized-variables-vcl.diff b/patches/src680/warning-uninitialized-variables-vcl.diff
deleted file mode 100644
index 5bd1f02b3..000000000
--- a/patches/src680/warning-uninitialized-variables-vcl.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- vcl/source/glyphs/gcach_ftyp.cxx.old 2005-05-03 16:10:32.000000000 +0200
-+++ vcl/source/glyphs/gcach_ftyp.cxx 2005-09-22 16:50:22.000000000 +0200
-@@ -1575,7 +1575,7 @@
-
- typedef std::vector<ImplKernPairData> KernVector;
- KernVector aKernGlyphVector;
-- ImplKernPairData aKernPair;
-+ ImplKernPairData aKernPair={0, 0, 0.0};
-
- const FT_Byte* pBuffer = pKern;
- ULONG nVersion = GetUShort( pBuffer+0 );
diff --git a/patches/src680/win32-activex-disable.diff b/patches/src680/win32-activex-disable.diff
deleted file mode 100644
index 994444e63..000000000
--- a/patches/src680/win32-activex-disable.diff
+++ /dev/null
@@ -1,17 +0,0 @@
-Index: scp2/util/makefile.mk
-===================================================================
-RCS file: /cvs/installation/scp2/util/makefile.mk,v
-retrieving revision 1.9
-diff -u -p -u -r1.9 makefile.mk
---- scp2/util/makefile.mk 9 Nov 2004 18:41:35 -0000 1.9
-+++ scp2/util/makefile.mk 26 Nov 2004 11:25:01 -0000
-@@ -150,9 +150,6 @@ SCP1FILES += \
- folderitem_impress.par \
- registryitem_math.par \
- folderitem_math.par \
-- module_activex.par \
-- file_activex.par \
-- custom_activex.par \
- module_winexplorerext.par \
- file_winexplorerext.par \
- registryitem_winexplorerext.par
diff --git a/patches/src680/win32-build-fixes.diff b/patches/src680/win32-build-fixes.diff
deleted file mode 100644
index 3d809148a..000000000
--- a/patches/src680/win32-build-fixes.diff
+++ /dev/null
@@ -1,34 +0,0 @@
---- solenv/inc/tg_ext.mk 2005-01-25 11:30:22.781250000 +0530
-+++ solenv/inc/tg_ext.mk 2005-01-25 11:30:27.750000000 +0530
-@@ -180,6 +180,9 @@
- @+-$(MKDIR) $(PACKAGE_DIR)
- +cd $(PACKAGE_DIR) && ( $(shell +$(TYPE) $(PRJ)$/$(ROUT)$/misc$/$(TARFILE_NAME).unpack)) && $(TOUCH) $(UNTAR_FLAG_FILE)
- @+echo make writeable...
-+.IF "$(TARFILE_NAME)"=="curl-7.9.8"
-+ @+/usr/bin/dos2unix.exe $(PACKAGE_DIR)/curl-7.9.8/lib/Makefile.vc6
-+.ENDIF
- .IF "$(GUI)"=="UNX" || "$(USE_SHELL)"!="4nt"
- @+cd $(PACKAGE_DIR) && chmod -R +rw $(TARFILE_ROOTDIR) && $(TOUCH) $(UNTAR_FLAG_FILE)
- @+cd $(PACKAGE_DIR) && find $(TARFILE_ROOTDIR) -type d -exec chmod a+x {{}} \;
---- tools/util/makefile.mk 2005-02-09 09:24:25.546875000 +0530
-+++ tools/util/makefile.mk 2005-02-09 11:46:11.296875000 +0530
-@@ -202,7 +202,7 @@
-
- .IF "$(WITH_LIBART)"=="YES"
- SHL1STDLIBS+= $(LIBART_LIBS)
--.ELSE
-+.ELIF "$WITH_GPC)"=="YES"
- SHL1STDLIBS+= $(GPC3RDLIB)
- .ENDIF
-
---- svx/source/intro/makefile.mk 2005-09-28 18:44:58.000000000 +0300
-+++ svx/source/intro/makefile.mk.new 2005-11-14 19:37:36.046875000 +0200
-@@ -48,7 +48,7 @@
- # setting the compiled by $user$ using $license$ string in the about box
-
- .IF "$(BUILD_SPECIAL)"==""
--RSCDEFS+=-DOOO_VENDOR="$(USER)$(USERNAME)" -DOOO_LICENSE="LGPL"
-+RSCDEFS+=-DOOO_VENDOR="$(USERNAME)" -DOOO_LICENSE="LGPL"
- .ELSE
- RSCDEFS+=-DBUILD_SPECIAL=True -DOOO_LICENSE="LGPL"
- .ENDIF
diff --git a/patches/src680/win32-gw-send-mail.diff b/patches/src680/win32-gw-send-mail.diff
deleted file mode 100644
index f397ec268..000000000
--- a/patches/src680/win32-gw-send-mail.diff
+++ /dev/null
@@ -1,32 +0,0 @@
---- shell/source/win32/simplemail/senddoc.cxx 2005-02-08 11:09:48.562500000 +0530
-+++ shell/source/win32/simplemail/senddoc.cxx 2005-02-09 13:59:06.140625000 +0530
-@@ -64,7 +64,7 @@
- #endif
-
- #ifndef _RTL_STRING_HXX_
--//#include <rtl/string.hxx>
-+#include <rtl/string.hxx>
- #endif
-
- #ifndef INCLUDED_SIMPLEMAPI_HXX
-@@ -99,6 +99,7 @@
- StringList_t gCc;
- StringList_t gBcc;
- StringList_t gAttachments;
-+ StringList_t gAttachFilenames;
- int gMapiFlags = 0;
- }
-
-@@ -172,7 +173,12 @@
- {
- MapiFileDesc mfd;
- ZeroMemory(&mfd, sizeof(mfd));
-+
- mfd.lpszPathName = const_cast<char*>(iter->c_str());
-+ rtl::OString aFullPath( mfd.lpszPathName );
-+ sal_Int32 nLastSlash = aFullPath.lastIndexOf('\\');
-+ gAttachFilenames.push_back( (const sal_Char *) aFullPath );
-+ mfd.lpszFileName = const_cast<char*>(gAttachFilenames.back().c_str());
- mfd.nPosition = -1;
- pMapiAttachmentList->push_back(mfd);
- }
diff --git a/patches/src680/win32-msvs-2003-configure.diff b/patches/src680/win32-msvs-2003-configure.diff
deleted file mode 100644
index 65ddc6a82..000000000
--- a/patches/src680/win32-msvs-2003-configure.diff
+++ /dev/null
@@ -1,186 +0,0 @@
---- config_office/configure.in.orig 2005-10-13 10:31:41.000000000 +0200
-+++ config_office/configure.in 2005-10-13 13:05:12.000000000 +0200
-@@ -1174,12 +1174,20 @@
- dnl ===================================================================
- if test "$_os" = "WINNT"; then
- if test "$WITH_MINGWIN" != "yes"; then
-- AC_MSG_CHECKING([the Microsoft C/C++ Compiler])
-+ AC_MSG_CHECKING([for friendly registry keys])
-+ # VS.Net 2003, VS.Net 2002, VC6
-+ if test -z "$with_cl_home"; then
-+ vctest=`./oowintool --msvc-productdir`;
-+ if test -x "$vctest/bin/cl.exe"; then
-+ with_cl_home=$vctest;
-+ fi
-+ fi
-+ AC_MSG_RESULT([done])
-+
- dnl ===========================================================
- dnl Check for mspdb71.dll
- dnl ===========================================================
- dnl .NET 2003 Compiler
-- AC_PATH_PROG(MSPDB_PATH, mspdb71.dll)
- if test -n "$MSPDB_PATH";then
- MSPDB_PATH=`dirname "$MSPDB_PATH"`
- fi
-@@ -1201,6 +1209,9 @@
- MSPDB_PATH=`cygpath -d "$MSPDB_PATH"`
- MSPDB_PATH=`cygpath -u "$MSPDB_PATH"`
- PATH="$MSPDB_PATH:$PATH"
-+ AC_PATH_PROG(MSPDB_PATH, mspdb71.dll)
-+
-+ AC_MSG_CHECKING([the Microsoft C/C++ Compiler])
- if test -x "$with_cl_home/bin/cl.exe"; then
- CC="$with_cl_home/bin/cl.exe"
- else
-@@ -1226,7 +1237,7 @@
- }
- }"`
- AC_MSG_RESULT([found Compiler version $CCNUMVER.])
-- if test "$CCNUMVER" -ge "001300100000"; then
-+ if test "$CCNUMVER" -ge "001300102240"; then
- COMEX=10
- else
- AC_MSG_ERROR([Compiler too old. Use Microsoft C/C++ .NET 2003 compiler.])
-@@ -1251,7 +1262,6 @@
- dnl ===================================================================
- if test "$COMEX" = "8" -o "$COMEX" = "10"; then
- dnl Check midl.exe
-- AC_PATH_PROG(MIDL_PATH, midl.exe)
- if test -n "$MIDL_PATH";then
- MIDL_PATH=`dirname "$MIDL_PATH"`
- fi
-@@ -1261,27 +1271,39 @@
- if test -z "$MIDL_PATH" -a -e "$with_cl_home/../Common7/Tools/Bin/midl.exe"; then
- MIDL_PATH="$with_cl_home/../Common7/Tools/Bin"
- fi
-+ if test -z "$MIDL_PATH" ; then
-+ vstest=`./oowintool --msvs-productdir`;
-+ if test -x "$vstest/Common7/Tools/Bin/midl.exe" ; then
-+ MIDL_PATH="$vstest/Common7/Tools/Bin"
-+ fi
-+ fi
- if test ! -x "$MIDL_PATH/midl.exe"; then
- AC_MSG_ERROR([midl.exe not found. Make sure it's in the path or use --with-midl-path])
- fi
- # Convert to posix path with 8.3 filename restrictions ( No spaces )
- MIDL_PATH=`cygpath -d "$MIDL_PATH"`
- MIDL_PATH=`cygpath -u "$MIDL_PATH"`
-+ AC_PATH_PROG(MIDL_PATH, midl.exe)
-
- dnl Check csc.exe
-- AC_PATH_PROG(CSC_PATH, csc.exe)
- if test -n "$CSC_PATH";then
- CSC_PATH=`dirname "$CSC_PATH"`
- fi
- if test -x "$with_csc_path/csc.exe"; then
- CSC_PATH="$with_csc_path"
- fi
-+ csctest=`./oowintool --csc-compilerdir`;
-+ if test -x "$csctest/csc.exe"; then
-+ CSC_PATH="$csctest"
-+ fi
-+
- if test ! -x "$CSC_PATH/csc.exe"; then
- AC_MSG_ERROR([csc.exe not found. Make sure it's in the path or use --with-csc-path])
- fi
- # Convert to posix path with 8.3 filename restrictions ( No spaces )
- CSC_PATH=`cygpath -d "$CSC_PATH"`
- CSC_PATH=`cygpath -u "$CSC_PATH"`
-+ AC_PATH_PROG(CSC_PATH, csc.exe)
-
- dnl Check nmake.exe for MS VC Toolkit
- if test -n "$ENABLE_VCTK"; then
-@@ -1304,15 +1326,23 @@
- dnl This now has two meanings, for .NET2003 it has to point to the
- dnl directory with lib/mscoree.lib and for VCTK to lib/msvcrt.lib.
- if test -z "$ENABLE_VCTK"; then
-+ AC_MSG_CHECKING(.NET Framework)
- if test -f "$with_frame_home/lib/mscoree.lib"; then
- FRAME_HOME="$with_frame_home"
- fi
- if test -z "$FRAME_HOME" -a -e "$with_cl_home/../SDK/v1.1/lib/mscoree.lib"; then
- FRAME_HOME="$with_cl_home/../SDK/v1.1"
- fi
-+ if test -z "$FRAME_HOME" ; then
-+ frametest=`./oowintool --dotnetsdk-dir`
-+ if test -x "$frametest/lib/mscoree.lib"; then
-+ FRAME_HOME="$frametest"
-+ fi
-+ fi
- if test ! -f "$FRAME_HOME/lib/mscoree.lib"; then
- AC_MSG_ERROR([mscoree.lib (.NET Framework) not found. Make sure you use --with-frame-home])
- fi
-+ AC_MSG_RESULT(found)
- else
- if test ! -f "$COMPATH/../lib/mscoree.lib"; then
- AC_MSG_ERROR([mscoree.lib not found. Unexpected, ask dev@tools.openoffice.org for help.])
-@@ -1809,6 +1839,12 @@
- fi
- AC_SUBST(LANG)
-
-+if test -z "$with_jdk_home"; then
-+ _jdk_home=`./oowintool --jdk-home`
-+ if test -d "$_jdk_home"; then
-+ with_jdk_home="$_jdk_home"
-+ fi
-+fi
-
- dnl ===================================================================
- dnl Checks for java
-@@ -3300,7 +3336,7 @@
- AC_MSG_CHECKING([for PSDK files])
- if test -z "$with_psdk_home"; then
- # This first line will detect a February 2003 Microsoft Platform SDK
-- PSDK_HOME=`cat "/proc/registry/HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MicrosoftSDK/Directories/Install Dir" 2> /dev/null`
-+ PSDK_HOME=`./oowintool --psdk-home`
- # But there might be also an April 2005 PSDK, unfortunately MS changed
- # the registry entry. (we prefer the old version!?)
- if test -z "$PSDK_HOME"; then
-@@ -3408,6 +3444,10 @@
- if test -e "$with_nsis_path/nsis.exe"; then
- NSIS_PATH="$with_nsis_path"
- fi
-+ nsistest=`./oowintool --nsis-dir`;
-+ if test -x "$nsistest/nsis.exe"; then
-+ NSIS_PATH="$nsistest"
-+ fi
- if test -z "$NSIS_PATH"; then
- AC_MSG_WARN([NSIS not found, no self contained installer will be build.])
- echo "NSIS not found, no self contained installer will be build." >> warn
-@@ -3535,6 +3575,7 @@
- if test -z "$ML_EXE"; then
- if test -x "$with_cl_home/bin/ml.exe"; then
- with_asm_home=$with_cl_home/bin
-+ AC_MSG_RESULT([found ($with_asm_home)])
- else
- AC_MSG_ERROR([Configure did not find ml.exe assembler.])
- fi
-@@ -3624,6 +3665,13 @@
- fi
-
- dnl ===================================================================
-+dnl Windows builds - attempt to auto-copy required dlls into external/
-+dnl ===================================================================
-+if test "$_os" = "WINNT"; then
-+ ./oowintool --msvc-copy-dlls ../external/msvcp
-+fi
-+
-+dnl ===================================================================
- dnl Windows builds with .NET need msvcp70.dll/msvcr70.dll in external/msvcp70/
- dnl ===================================================================
- if test "$_os" = "WINNT" -a "$COMEX" = "8"; then
-@@ -3676,6 +3724,13 @@
- fi
-
- dnl ===================================================================
-+dnl Windows builds - attempt to auto-copy required instmsiX.exe into external/
-+dnl ===================================================================
-+if test "$_os" = "WINNT"; then
-+ ./oowintool --msvc-copy-instmsi ../external/msi
-+fi
-+
-+dnl ===================================================================
- dnl Windows builds with .NET 2003 need instmsia.exe and instmsiw.exe in external/msi
- dnl ===================================================================
- if test "$_os" = "WINNT" -a "$COMEX" = "10"; then
diff --git a/patches/src680/wizard-evo-local.diff b/patches/src680/wizard-evo-local.diff
deleted file mode 100644
index 0e30f8cc0..000000000
--- a/patches/src680/wizard-evo-local.diff
+++ /dev/null
@@ -1,317 +0,0 @@
---- extensions/source/abpilot/addresssettings.hxx 2005-02-24 16:33:03.000000000 +0530
-+++ extensions/source/abpilot/addresssettings.hxx 2005-02-24 16:33:46.000000000 +0530
-@@ -80,6 +80,8 @@
- enum AddressSourceType
- {
- AST_MORK,
-+ AST_GROUPWISE,
-+ AST_EVOLUTION_LDAP,
- AST_EVOLUTION,
- AST_LDAP,
- AST_OUTLOOK,
---- extensions/source/abpilot/datasourcehandling.cxx 2005-02-23 15:50:09.000000000 +0530
-+++ extensions/source/abpilot/datasourcehandling.cxx 2005-02-24 16:39:45.000000000 +0530
-@@ -347,9 +347,19 @@
- }
-
- //---------------------------------------------------------------------
-+ ODataSource ODataSourceContext::createNewEvolutionLdap( const ::rtl::OUString& _rName) SAL_THROW (( ))
-+ {
-+ return lcl_implCreateAndSetURL( m_pImpl->xORB, _rName, "sdbc:address:evolution:ldap" );
-+ }
-+ //---------------------------------------------------------------------
-+ ODataSource ODataSourceContext::createNewEvolutionGroupwise( const ::rtl::OUString& _rName) SAL_THROW (( ))
-+ {
-+ return lcl_implCreateAndSetURL( m_pImpl->xORB, _rName, "sdbc:address:evolution:groupwise" );
-+ }
-+ //---------------------------------------------------------------------
- ODataSource ODataSourceContext::createNewEvolution( const ::rtl::OUString& _rName) SAL_THROW (( ))
- {
-- return lcl_implCreateAndSetURL( m_pImpl->xORB, _rName, "sdbc:address:evolution" );
-+ return lcl_implCreateAndSetURL( m_pImpl->xORB, _rName, "sdbc:address:evolution:local" );
- }
-
- //---------------------------------------------------------------------
---- extensions/source/abpilot/datasourcehandling.hxx 2005-02-23 16:41:00.000000000 +0530
-+++ extensions/source/abpilot/datasourcehandling.hxx 2005-02-23 16:42:45.000000000 +0530
-@@ -112,9 +112,15 @@
- /// creates a new MORK data source
- ODataSource createNewMORK( const ::rtl::OUString& _rName ) SAL_THROW (( ));
-
-- /// creates a new Evolution data source
-+ /// creates a new Evolution local data source
- ODataSource createNewEvolution( const ::rtl::OUString& _rName ) SAL_THROW (( ));
-
-+ /// creates a new Evolution LDAP data source
-+ ODataSource createNewEvolutionLdap( const ::rtl::OUString& _rName ) SAL_THROW (( ));
-+
-+ /// creates a new Evolution GROUPWISE data source
-+ ODataSource createNewEvolutionGroupwise( const ::rtl::OUString& _rName ) SAL_THROW (( ));
-+
- /// creates a new KDE address book data source
- ODataSource createNewKab( const ::rtl::OUString& _rName ) SAL_THROW (( ));
-
---- extensions/source/abpilot/typeselectionpage.hxx 2005-02-23 16:43:50.000000000 +0530
-+++ extensions/source/abpilot/typeselectionpage.hxx 2005-02-28 12:07:56.742599018 +0530
-@@ -85,10 +85,10 @@
- protected:
- FixedText m_aHint;
- FixedLine m_aTypeSep;
-- RadioButton m_aMORK;
-+ RadioButton m_aEvolutionGroupwise;
-+ RadioButton m_aEvolutionLdap;
- RadioButton m_aEvolution;
- RadioButton m_aKab;
-- RadioButton m_aLDAP;
- RadioButton m_aOutlook;
- RadioButton m_aOE;
- RadioButton m_aOther;
---- extensions/source/abpilot/typeselectionpage.cxx 2005-02-23 14:36:42.000000000 +0530
-+++ extensions/source/abpilot/typeselectionpage.cxx 2005-02-28 12:08:49.569802335 +0530
-@@ -89,10 +89,10 @@
- :AddressBookSourcePage(_pParent, ModuleRes(RID_PAGE_SELECTABTYPE))
- ,m_aHint (this, ResId(FT_TYPE_HINTS))
- ,m_aTypeSep (this, ResId(FL_TYPE))
-- ,m_aMORK (this, ResId(RB_MORK))
-- ,m_aEvolution (this, ResId(RB_EVOLUTION))
-- ,m_aKab (this, ResId(RB_KAB))
-- ,m_aLDAP (this, ResId(RB_LDAP))
-+ ,m_aEvolutionGroupwise (this, ResId(RB_GROUPWISE))
-+ ,m_aEvolutionLdap (this, ResId(RB_LDAP))
-+ ,m_aEvolution (this, ResId(RB_EVOLUTION))
-+ ,m_aKab (this, ResId(RB_KAB))
- ,m_aOutlook (this, ResId(RB_OUTLOOK))
- ,m_aOE (this, ResId(RB_OUTLOOKEXPRESS))
- ,m_aOther (this, ResId(RB_OTHER))
-@@ -100,22 +100,22 @@
- FreeResource();
-
- Link aTypeSelectionHandler = LINK(this, TypeSelectionPage, OnTypeSelected );
-- m_aMORK.SetClickHdl( aTypeSelectionHandler );
-+ m_aEvolutionGroupwise.SetClickHdl( aTypeSelectionHandler );
-+ m_aEvolutionLdap.SetClickHdl( aTypeSelectionHandler );
- m_aEvolution.SetClickHdl( aTypeSelectionHandler );
- m_aKab.SetClickHdl( aTypeSelectionHandler );
-- m_aLDAP.SetClickHdl( aTypeSelectionHandler );
- m_aOutlook.SetClickHdl( aTypeSelectionHandler );
- m_aOE.SetClickHdl( aTypeSelectionHandler );
- m_aOther.SetClickHdl( aTypeSelectionHandler );
-
- #ifndef UNX
-- sal_Int32 nMoveControlsUp = m_aLDAP.GetPosPixel().Y() - m_aEvolution.GetPosPixel().Y();
-- m_aEvolution.Hide();
-- m_aKab.Hide();
-+ sal_Int32 nMoveControlsUp = m_aEvolution.GetPosPixel().Y() - m_aEvolutionLdap.GetPosPixel().Y();
-+ sal_Int32 nMoveControlsUp = m_aEvolutionLdap.GetPosPixel().Y() - m_aEvolutionGroupwise.GetPosPixel().Y();
-
-- Point aPos = m_aLDAP.GetPosPixel();
-- aPos.Y() -= nMoveControlsUp;
-- m_aLDAP.SetPosPixel( aPos );
-+ m_aEvolutionGroupwise.Hide();
-+ m_aEvolutionLdap.Hide();
-+ m_aEvolution.Hide();
-+ m_aKab.Hide();
-
- aPos = m_aOutlook.GetPosPixel();
- aPos.Y() -= nMoveControlsUp;
-@@ -142,15 +142,14 @@
- m_aOther.SetPosPixel( aPos );
-
- Reference< ::com::sun::star::sdbc::XDriverAccess> xManager(_pParent->getORB()->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.sdbc.DriverManager"))), UNO_QUERY);
-- if(!(xManager->getDriverByURL(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sdbc:address:evolution"))).is()))
-+ if(!(xManager->getDriverByURL(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sdbc:address:evolution:local"))).is()))
- {
-- nMoveControlsUp = m_aLDAP.GetPosPixel().Y() - m_aEvolution.GetPosPixel().Y();
-+ nMoveControlsUp = m_aEvolution.GetPosPixel().Y() - m_aEvolutionLdap.GetPosPixel().Y();
-+ nMoveControlsUp = m_aEvolutionLdap.GetPosPixel().Y() - m_aEvolutionGroupwise.GetPosPixel().Y();
- m_aEvolution.Hide();
- m_aKab.Hide();
--
-- aPos = m_aLDAP.GetPosPixel();
-- aPos.Y() -= nMoveControlsUp;
-- m_aLDAP.SetPosPixel( aPos );
-+ m_aEvolutionLdap.Hide();
-+ m_aEvolutionGroupwise.Hide();
-
- aPos = m_aOther.GetPosPixel();
- aPos.Y() -= nMoveControlsUp;
-@@ -164,14 +164,14 @@
- {
- AddressBookSourcePage::ActivatePage();
-
-- if (m_aMORK.IsChecked())
-- m_aMORK.GrabFocus();
-- else if (m_aEvolution.IsChecked())
-+ if (m_aEvolution.IsChecked())
- m_aEvolution.GrabFocus();
- else if (m_aKab.IsChecked())
- m_aKab.GrabFocus();
-- else if (m_aLDAP.IsChecked())
-- m_aLDAP.GrabFocus();
-+ else if (m_aEvolutionGroupwise.IsChecked())
-+ m_aEvolutionGroupwise.GrabFocus();
-+ else if (m_aEvolutionLdap.IsChecked())
-+ m_aEvolutionLdap.GrabFocus();
- else if (m_aOutlook.IsChecked())
- m_aOutlook.GrabFocus();
- else if (m_aOE.IsChecked())
-@@ -192,10 +192,10 @@
- //---------------------------------------------------------------------
- void TypeSelectionPage::selectType( AddressSourceType _eType )
- {
-- m_aMORK.Check(AST_MORK == _eType);
-+ m_aEvolutionGroupwise.Check(AST_GROUPWISE == _eType);
-+ m_aEvolutionLdap.Check(AST_EVOLUTION_LDAP == _eType);
- m_aEvolution.Check(AST_EVOLUTION == _eType);
- m_aKab.Check(AST_KAB == _eType);
-- m_aLDAP.Check(AST_LDAP == _eType);
- m_aOutlook.Check(AST_OUTLOOK == _eType);
- m_aOE.Check(AST_OE == _eType);
- m_aOther.Check(AST_OTHER == _eType);
-@@ -204,14 +204,14 @@
- //---------------------------------------------------------------------
- AddressSourceType TypeSelectionPage::getSelectedType( )
- {
-- if (m_aMORK.IsChecked())
-- return AST_MORK;
-+ if (m_aEvolutionLdap.IsChecked())
-+ return AST_EVOLUTION_LDAP;
-+ else if (m_aEvolutionGroupwise.IsChecked())
-+ return AST_GROUPWISE;
- else if (m_aEvolution.IsChecked())
- return AST_EVOLUTION;
- else if (m_aKab.IsChecked())
- return AST_KAB;
-- else if (m_aLDAP.IsChecked())
-- return AST_LDAP;
- else if (m_aOutlook.IsChecked())
- return AST_OUTLOOK;
- else if (m_aOE.IsChecked())
---- extensions/source/abpilot/abpresid.hrc 2005-02-23 16:33:35.000000000 +0530
-+++ extensions/source/abpilot/abpresid.hrc 2005-02-23 16:35:01.000000000 +0530
-@@ -194,11 +194,13 @@
- //........................................................................
- #define RB_MORK 1
- #define RB_EVOLUTION 2
--#define RB_KAB 3
--#define RB_LDAP 4
--#define RB_OUTLOOK 5
--#define RB_OUTLOOKEXPRESS 6
--#define RB_OTHER 7
-+#define RB_EVOLUTION_LDAP 3
-+#define RB_GROUPWISE 4
-+#define RB_KAB 5
-+#define RB_LDAP 6
-+#define RB_OUTLOOK 7
-+#define RB_OUTLOOKEXPRESS 8
-+#define RB_OTHER 9
-
- //........................................................................
- #define ET_DATASOURCENAME 1
---- extensions/source/abpilot/abspilot.src 2005-02-23 13:49:53.000000000 +0530
-+++ extensions/source/abpilot/abspilot.src 2005-02-28 12:07:20.498948162 +0530
-@@ -148,42 +148,43 @@
- Text [ en-US ] = "Please select the type of your external address book:";
- };
-
-- RadioButton RB_MORK
-+ RadioButton RB_GROUPWISE
-+ {
-+ Pos = MAP_APPFONT ( 15, 79 ) ;
-+ Size = MAP_APPFONT ( WINDOW_SIZE_X - 30, 8 ) ;
-+
-+ Text [ de ] = "Groupwise";
-+ Text [ en-US ] = "Groupwise";
-+ };
-+ RadioButton RB_LDAP
- {
-- Pos = MAP_APPFONT ( 15, 68 ) ;
-+ Pos = MAP_APPFONT ( 15, 90 ) ;
- Size = MAP_APPFONT ( WINDOW_SIZE_X - 30, 8 ) ;
-- Group = TRUE;
-
-- Text [ de ] = "Mozilla / Netscape";
-- Text [ en-US ] = "Mozilla / Netscape";
-+ Text [ de ] = "LDAP Adress-Bestand";
-+ Text [ en-US ] = "LDAP address data";
- };
-+
- RadioButton RB_EVOLUTION
- {
-- Pos = MAP_APPFONT ( 15, 79 ) ;
-+ Pos = MAP_APPFONT ( 15, 101 ) ;
- Size = MAP_APPFONT ( WINDOW_SIZE_X - 30, 8 ) ;
-
- Text [ de ] = "Evolution";
- Text [ en-US ] = "Evolution";
- };
- RadioButton RB_KAB
- {
-- Pos = MAP_APPFONT ( 15, 90 ) ;
-+ Pos = MAP_APPFONT ( 15, 112 ) ;
- Size = MAP_APPFONT ( WINDOW_SIZE_X - 30, 8 ) ;
-
- Text [ de ] = "KDE Adressbuch";
- Text [ en-US ] = "KDE address book";
- };
-- RadioButton RB_LDAP
-- {
-- Pos = MAP_APPFONT ( 15, 101 ) ;
-- Size = MAP_APPFONT ( WINDOW_SIZE_X - 30, 8 ) ;
-
-- Text [ de ] = "LDAP Adress-Bestand";
-- Text [ en-US ] = "LDAP address data";
-- };
- RadioButton RB_OUTLOOK
- {
-- Pos = MAP_APPFONT ( 15, 112 ) ;
-+ Pos = MAP_APPFONT ( 15, 123 ) ;
- Size = MAP_APPFONT ( WINDOW_SIZE_X - 30, 8 ) ;
-
- Text [ de ] = "Outlook Adressbuch";
-@@ -183,7 +184,7 @@
- };
- RadioButton RB_OUTLOOKEXPRESS
- {
-- Pos = MAP_APPFONT ( 15,123 ) ;
-+ Pos = MAP_APPFONT ( 15,134 ) ;
- Size = MAP_APPFONT ( WINDOW_SIZE_X - 30, 8 ) ;
-
- Text [ de ] = "Windows System-Adressbuch";
-@@ -191,7 +192,7 @@
- };
- RadioButton RB_OTHER
- {
-- Pos = MAP_APPFONT ( 15, 134 ) ;
-+ Pos = MAP_APPFONT ( 15, 145 ) ;
- Size = MAP_APPFONT ( WINDOW_SIZE_X - 30, 8 ) ;
-
- Text [ de ] = "andere externe Datenquelle";
---- extensions/source/abpilot/abspilot.cxx 2005-02-24 11:10:46.000000000 +0530
-+++ extensions/source/abpilot/abspilot.cxx 2005-02-28 12:36:20.034151760 +0530
-@@ -178,7 +178,9 @@
-
- // some initial settings
- #ifdef UNX
-- m_aSettings.eType = AST_MORK;
-+ m_aSettings.eType = AST_GROUPWISE;
-+ m_aSettings.eType = AST_EVOLUTION_LDAP;
-+ m_aSettings.eType = AST_EVOLUTION;
- #else
- m_aSettings.eType = AST_OE;
- #endif
-@@ -423,6 +425,14 @@
- m_aNewDataSource = aContext.createNewMORK( m_aSettings.sDataSourceName );
- break;
-
-+ case AST_GROUPWISE:
-+ m_aNewDataSource = aContext.createNewEvolutionGroupwise( m_aSettings.sDataSourceName );
-+ break;
-+
-+ case AST_EVOLUTION_LDAP:
-+ m_aNewDataSource = aContext.createNewEvolutionLdap( m_aSettings.sDataSourceName );
-+ break;
-+
- case AST_EVOLUTION:
- m_aNewDataSource = aContext.createNewEvolution( m_aSettings.sDataSourceName );
- break;
diff --git a/patches/src680/wizards-crasher-fix.diff b/patches/src680/wizards-crasher-fix.diff
deleted file mode 100644
index 0a18fc6d4..000000000
--- a/patches/src680/wizards-crasher-fix.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- toolkit/source/awt/vclxaccessiblecomponent.cxx 2004-10-22 17:06:04.000000000 +0530
-+++ toolkit/source/awt/vclxaccessiblecomponent.cxx 2005-03-11 13:45:05.395403899 +0530
-@@ -202,7 +202,7 @@ IMPL_LINK( VCLXAccessibleComponent, Wind
- DBG_CHKTHIS(VCLXAccessibleComponent,0);
-
- DBG_ASSERT( pEvent && pEvent->ISA( VclWindowEvent ), "Unknown WindowEvent!" );
-- if ( pEvent && pEvent->ISA( VclWindowEvent ) )
-+ if ( mxWindow.is() && pEvent && pEvent->ISA( VclWindowEvent ) )
- {
- DBG_ASSERT( ((VclWindowEvent*)pEvent)->GetWindow(), "Window???" );
- if( !((VclWindowEvent*)pEvent)->GetWindow()->IsAccessibilityEventsSuppressed() || ( pEvent->GetId() == VCLEVENT_OBJECT_DYING ) )
diff --git a/patches/src680/wizards-filter-gcj-access-problems.diff b/patches/src680/wizards-filter-gcj-access-problems.diff
deleted file mode 100644
index f14d7721e..000000000
--- a/patches/src680/wizards-filter-gcj-access-problems.diff
+++ /dev/null
@@ -1,9181 +0,0 @@
---- wizards/com/sun/star/wizards/agenda/AgendaTemplate.java.gcj~ 2005-07-05 10:16:46.000000000 +0000
-+++ wizards/com/sun/star/wizards/agenda/AgendaTemplate.java 2005-08-28 18:54:10.000000000 +0000
-@@ -232,7 +232,7 @@
- /**
- * used to set the document title property (step 6).
- */
-- private Object docInfo;
-+ public Object docInfo;
-
- /**
- * loads the given template, and analyze its structure.
-@@ -260,7 +260,7 @@
- * @param url
- * @return the template name without the "aw-" at the beginning.
- */
-- private String calcTemplateName(String url) {
-+ public String calcTemplateName(String url) {
- return FileAccess.connectURLs( FileAccess.getParentDir(url) ,FileAccess.getFilename(url).substring(3));
- }
-
-@@ -272,7 +272,7 @@
- * information (it is only actualized on save) the given list
- * supplies this information.
- */
-- private void initializeData(List topicsData) {
-+ public void initializeData(List topicsData) {
- for (int i = 0; i < itemsTables.length; i++) {
- try {
- itemsTables[i].write("");
-@@ -378,7 +378,7 @@
- * A cache is used in order to reuse the objects, instead of recreate them.
- * This method fills the cache will all items objects (names and headings).
- */
-- private void initItemsCache() {
-+ public void initItemsCache() {
- itemsCache = new Hashtable(11);
-
- XMultiServiceFactory xmsf = (XMultiServiceFactory)UnoRuntime.queryInterface(XMultiServiceFactory.class,document);
-@@ -444,7 +444,7 @@
- * -locate the titles and actualize them
- * -analyze the topics table
- */
-- private void initialize()
-+ public void initialize()
- {
- /*
- * Get the default locale of the document, and create the date and time formatters.
-@@ -499,7 +499,7 @@
- * locates the titles (name, location, date, time) and saves a reference to thier Text ranges.
- *
- */
-- private void initializeTitles() {
-+ public void initializeTitles() {
- XTextRange item = null;
-
- XMultiServiceFactory xmsf = (XMultiServiceFactory)UnoRuntime.queryInterface(XMultiServiceFactory.class,document);
-@@ -531,12 +531,12 @@
- }
- }
-
-- private void initializeTopics()
-+ public void initializeTopics()
- {
- topics = new Topics();
- }
-
-- private void initializeItems()
-+ public void initializeItems()
- {
- _allItems = searchFillInItems();
- }
-@@ -545,7 +545,7 @@
- * searches the document for items in the format "&gt;*&lt;"
- * @return a vector containing the XTextRanges of the found items
- */
-- private List searchFillInItems() {
-+ public List searchFillInItems() {
- try {
- XSearchable xSearchable = (XSearchable)UnoRuntime.queryInterface(XSearchable.class,document);
- XSearchDescriptor sd = xSearchable.createSearchDescriptor();
-@@ -575,7 +575,7 @@
- * analyze the item sections in the template. delegates the analyze of each table to the
- * ItemsTable class.
- */
-- private void initializeItemsSections()
-+ public void initializeItemsSections()
- {
- String[] sections = getSections(document, TemplateConsts.SECTION_ITEMS);
-
-@@ -594,7 +594,7 @@
-
- }
-
-- private String[] getSections(Object document, String s)
-+ public String[] getSections(Object document, String s)
- {
- XTextSectionsSupplier xTextSectionsSupplier = (XTextSectionsSupplier) UnoRuntime.queryInterface(XTextSectionsSupplier.class, document);
- String[] allSections = xTextSectionsSupplier.getTextSections().getElementNames();
-@@ -628,7 +628,7 @@
-
- }
-
-- private synchronized void redrawTitle(String controlName) {
-+ public synchronized void redrawTitle(String controlName) {
- if (controlName.equals("txtTitle"))
- writeTitle(teTitle, trTitle, agenda.cp_Title);
- else if (controlName.equals("txtDate"))
-@@ -641,13 +641,13 @@
- }
-
-
-- private void writeTitle( TextElement te, XTextRange tr, String text) {
-+ public void writeTitle( TextElement te, XTextRange tr, String text) {
- te.text = (text == null ? "" : text);
- te.write(tr);
- }
-- private static long DAY_IN_MILLIS = ( 24 * 60 * 60 * 1000 );
-+ public static long DAY_IN_MILLIS = ( 24 * 60 * 60 * 1000 );
-
-- private String getDateString(String d) {
-+ public String getDateString(String d) {
- if (d == null || d.equals(""))
- return "";
-
-@@ -667,7 +667,7 @@
- return dateFormatter.convertNumberToString(dateFormat, daysDiff);
- }
-
-- private String getTimeString(String s) {
-+ public String getTimeString(String s) {
- if (s == null || s.equals(""))
- return "";
- int time = new Integer(s).intValue();
-@@ -693,7 +693,7 @@
- * user specified not to display any items which it contains.
- * When finishing the wizard removes this sections entireley from the document.
- */
-- private void deleteHiddenSections() {
-+ public void deleteHiddenSections() {
- XTextSectionsSupplier xTextSectionsSupplier = (XTextSectionsSupplier) UnoRuntime.queryInterface(XTextSectionsSupplier.class, document);
- String[] allSections = xTextSectionsSupplier.getTextSections().getElementNames();
- try {
-@@ -825,7 +825,7 @@
- * @param text the text to fill to the text range object.
- * @param placeholder the placeholder text to use, if the text argument is empty (null or "")
- */
-- private void fillMinutesItem(XTextRange range, Object text, String placeholder) {
-+ public void fillMinutesItem(XTextRange range, Object text, String placeholder) {
- String paraStyle = (String)Helper.getUnoPropertyValue(range,"ParaStyleName");
- range.setString((String)text);
- Helper.setUnoPropertyValue(range,"ParaStyleName",paraStyle);
-@@ -1227,7 +1227,7 @@
- * @return the number of rows that have been added
- * to the table. 0 or a negative number: no rows added.
- */
-- private int write2(int topic, PropertyValue[] data) throws Exception {
-+ public int write2(int topic, PropertyValue[] data) throws Exception {
- while (topic >= writtenTopics.size())
- writtenTopics.add(null);
-
-@@ -1271,7 +1271,7 @@
- * (false would mean new rows must be added to the table in order to
- * be able to write this topic).
- */
-- private boolean isWritten(int topic) {
-+ public boolean isWritten(int topic) {
- return (writtenTopics.size() > topic && writtenTopics.get(topic) != null );
- }
-
-@@ -1407,7 +1407,7 @@
- /**
- * reapply the format of the first (header) row.
- */
-- private void formatFirstRow() {
-+ public void formatFirstRow() {
- XTextTableCursor cursor = table.createCursorByCellName("A1");
- formatTable(cursor,firstRowFormat, false );
- }
-@@ -1415,7 +1415,7 @@
- /**
- * reaply the format of the last row.
- */
-- private void formatLastRow() {
-+ public void formatLastRow() {
- XTextTableCursor cursor = table.createCursorByCellName("A1");
- cursor.gotoEnd(false);
- formatTable(cursor,lastRowFormat, true);
-@@ -1429,7 +1429,7 @@
- * @return a TextElement object which will write the given value
- * to the given cell.
- */
-- private TextElement setItemText(int cell, Object value) {
-+ public TextElement setItemText(int cell, Object value) {
- if (cell >= 0) {
- TextElement te = ((TextElement)topicCells.get(cell));
- if (te != null)
-@@ -1449,7 +1449,7 @@
- * @param formats a List containing TableCellFormatter objects. Each will format one cell in the direction specified.
- * @param reverse if true the cursor will move left, formatting in reverse order (used for the last row).
- */
-- private void formatTable(XTextTableCursor cursor, List formats, boolean reverse) {
-+ public void formatTable(XTextTableCursor cursor, List formats, boolean reverse) {
- for ( int i = 0; i < formats.size() ; i++ ) {
- ((TableCellFormatter)formats.get(i)).format(table.getCellByName(cursor.getRangeName()));
- if (reverse)
-@@ -1797,7 +1797,7 @@
- "TopBorderDistance"
- };
-
-- private Object[] values = new Object[properties.length];
-+ public Object[] values = new Object[properties.length];
-
- public TableCellFormatter(Object tableCell) {
- for (int i = 0; i<properties.length; i++)
---- wizards/com/sun/star/wizards/agenda/AgendaWizardDialog.java.gcj~ 2004-09-08 13:58:38.000000000 +0000
-+++ wizards/com/sun/star/wizards/agenda/AgendaWizardDialog.java 2005-08-28 18:54:10.000000000 +0000
-@@ -138,7 +138,7 @@
- XButton btnUp;
- XButton btnDown;
-
-- final private String IMGHELP1_HID = "";
-+ final public String IMGHELP1_HID = "";
-
-
- //Font Descriptors as Class members.
-@@ -149,16 +149,16 @@
- //Resources Object
- AgendaWizardDialogResources resources;
-
-- private String[] PROPS_LIST = new String[] {"Dropdown", "Height", "HelpURL", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
-- private String[] PROPS_LABEL_B = new String[] {"FontDescriptor", "Height", "Label", "MultiLine", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
-- private String[] PROPS_CHECK = new String[] {"Height", "HelpURL", "Label", "PositionX", "PositionY", "State", "Step", "TabIndex", "Width"};
-- private String[] PROPS_BUTTON = new String[] {"Height", "HelpURL", "Label", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
-- private String[] PROPS_X = new String[] {"Height", "HelpURL", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
-- private String[] PROPS_TEXTAREA = new String[] {"Height", "Label", "MultiLine", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
-- private String[] PROPS_TEXT = new String[] {"Height", "Label", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
-- private String[] PROPS_IMAGE = new String[] {"Border", "Height", "HelpURL", "ImageURL", "PositionX", "PositionY", "ScaleImage", "Step", "TabIndex", "Width"};
-+ public String[] PROPS_LIST = new String[] {"Dropdown", "Height", "HelpURL", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
-+ public String[] PROPS_LABEL_B = new String[] {"FontDescriptor", "Height", "Label", "MultiLine", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
-+ public String[] PROPS_CHECK = new String[] {"Height", "HelpURL", "Label", "PositionX", "PositionY", "State", "Step", "TabIndex", "Width"};
-+ public String[] PROPS_BUTTON = new String[] {"Height", "HelpURL", "Label", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
-+ public String[] PROPS_X = new String[] {"Height", "HelpURL", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
-+ public String[] PROPS_TEXTAREA = new String[] {"Height", "Label", "MultiLine", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
-+ public String[] PROPS_TEXT = new String[] {"Height", "Label", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
-+ public String[] PROPS_IMAGE = new String[] {"Border", "Height", "HelpURL", "ImageURL", "PositionX", "PositionY", "ScaleImage", "Step", "TabIndex", "Width"};
-
-- private static final Short NO_BORDER = new Short((short)0);
-+ public static final Short NO_BORDER = new Short((short)0);
-
- public AgendaWizardDialog(XMultiServiceFactory xmsf) {
- super(xmsf,HID);
---- wizards/com/sun/star/wizards/agenda/AgendaWizardDialogImpl.java.gcj~ 2005-04-18 15:11:45.000000000 +0000
-+++ wizards/com/sun/star/wizards/agenda/AgendaWizardDialogImpl.java 2005-08-28 18:54:10.000000000 +0000
-@@ -108,14 +108,14 @@
- * (live synchronized: when the user changes the gui,
- * the data model changes, except for topics).
- */
-- private CGAgenda agenda;
-+ public CGAgenda agenda;
-
- /**
- * the topics control, a gui element which
- * manipulates the topics data according to the
- * user's input.
- */
-- private TopicsControl topicsControl;
-+ public TopicsControl topicsControl;
-
- /**
- * an array with two array memebers:
-@@ -124,7 +124,7 @@
- * agendaTemplates[1] contains an array with
- * corresponding URLs.
- */
-- private String[][] agendaTemplates;
-+ public String[][] agendaTemplates;
-
-
- /** constructor */
-@@ -197,7 +197,7 @@
-
- }
-
-- private void checkSavePath() {
-+ public void checkSavePath() {
- if (agenda.cp_TemplatePath == null ||
- agenda.cp_TemplatePath.equals("") ||
- !getFileAccess().exists(FileAccess.getParentDir(agenda.cp_TemplatePath),false) ||
-@@ -219,7 +219,7 @@
- /**
- * bind controls to the agenda member (DataAware model)
- */
-- private void makeDA() {
-+ public void makeDA() {
-
- setControlProperty("listPageDesign", "StringItemList", agendaTemplates[0]);
-
-@@ -278,7 +278,7 @@
-
-
- /*
-- private void initializePaths() {
-+ public void initializePaths() {
- try {
-
- sUserTemplatePath = FileAccess.getOfficePath(xMSF, "Template", "user");
-@@ -338,7 +338,7 @@
- }
-
-
-- private FileAccess fileAccess1;
-+ public FileAccess fileAccess1;
- /** convenience method.
- * instead of creating a FileAccess object every time
- * it is needed, I have a FileAccess object memeber.
-@@ -346,7 +346,7 @@
- * then be reused...
- * @return the FileAccess memeber object.
- */
-- private FileAccess getFileAccess() {
-+ public FileAccess getFileAccess() {
- if (fileAccess1 == null)
- try {
- fileAccess1 = new FileAccess(xMSF);
-@@ -362,7 +362,7 @@
- * If it is so, one needs not warn the user
- * upon overwrite, since she was already warned.
- */
-- private boolean filenameChanged = false;
-+ public boolean filenameChanged = false;
-
- /**
- * last page, "browse" ("...") button was clicked...
-@@ -398,7 +398,7 @@
- * The path displayed is a translated, user-friendly, platform dependant path.
- * @param url the new save url.
- */
-- private void setFilename(String url) {
-+ public void setFilename(String url) {
- try {
- String path = getFileAccess().getPath(url,"");
- Helper.setUnoPropertyValue( getModel(txtTemplatePath), "Text", path);
-@@ -517,7 +517,7 @@
- }
- }
-
-- private void closeDocument() {
-+ public void closeDocument() {
- try {
- xComponent.dispose();
- XCloseable xCloseable = (XCloseable) UnoRuntime.queryInterface(XCloseable.class, agendaTemplate.xFrame);
-@@ -537,9 +537,9 @@
- * this class is used to redraw an item's table when
- * the user clicks one of the checkboxes in step 3 or 4.
- */
-- private class RedrawListener implements DataAware.Listener {
-+ public class RedrawListener implements DataAware.Listener {
-
-- private String itemName;
-+ public String itemName;
-
- public RedrawListener(String itemName_) {
- itemName = itemName_;
---- wizards/com/sun/star/wizards/agenda/CallWizard.java.gcj~ 2004-09-08 13:59:50.000000000 +0000
-+++ wizards/com/sun/star/wizards/agenda/CallWizard.java 2005-08-28 18:54:10.000000000 +0000
-@@ -166,12 +166,12 @@
- /**
- * The service name, that must be used to get an instance of this service.
- */
-- private static final String __serviceName = "com.sun.star.wizards.agenda.CallWizard";
-+ public static final String __serviceName = "com.sun.star.wizards.agenda.CallWizard";
-
- /**
- * The service manager, that gives access to all registered services.
- */
-- private XMultiServiceFactory xmultiservicefactory;
-+ public XMultiServiceFactory xmultiservicefactory;
-
- /**
- * This method is a member of the interface for initializing an object directly
---- wizards/com/sun/star/wizards/agenda/TopicsControl.java.gcj~ 2004-09-08 14:00:25.000000000 +0000
-+++ wizards/com/sun/star/wizards/agenda/TopicsControl.java 2005-08-28 18:54:10.000000000 +0000
-@@ -167,18 +167,18 @@
- * topic text box.
- * When pressing tab on this one a scroll down *may* be performed.
- */
-- private Object firstTopic;
-+ public Object firstTopic;
- /**
- * the first time box.
- * When pressing shift-tab on this control, a scroll up *may* be performed.
- */
-- private Object lastTime;
-+ public Object lastTime;
-
- /**
- * is used when constructing to track the tab index
- * of the created control rows.
- */
-- private int tabIndex = 520;
-+ public int tabIndex = 520;
-
- /**
- * create a new TopicControl. Since this is used specifically for the
-@@ -240,14 +240,14 @@
- /**
- * Implementation of the parent class...
- */
-- protected void initializeScrollFields() {}
-+ public void initializeScrollFields() {}
-
-
- /**
- * initializes the data of the control.
- * @param agenda
- */
-- protected void initializeScrollFields(CGAgenda agenda)
-+ public void initializeScrollFields(CGAgenda agenda)
- {
- // create a row for each topic with the given values....
- for (int i = 0; i < agenda.cp_Topics.getSize(); i++) {
-@@ -267,7 +267,7 @@
- * The control has always a blank row at the
- * end, which enables the user to enter data...
- */
-- protected void insertRowAtEnd() {
-+ public void insertRowAtEnd() {
- int l = scrollfields.size();
- registerControlGroup( newRow(l), l );
- setTotalFieldCount(l+1);
-@@ -295,7 +295,7 @@
- * overrides the parent class method to also enable the
- * row whenever data is written to it.
- */
-- protected void fillupControls(int guiRow) {
-+ public void fillupControls(int guiRow) {
- super.fillupControls(guiRow);
- ((ControlRow) ControlGroupVector.get( guiRow )).setEnabled(true);
- }
-@@ -304,7 +304,7 @@
- /**
- * remove the last row
- */
-- protected void removeLastRow() {
-+ public void removeLastRow() {
- int l = scrollfields.size();
-
- // if we should scroll up...
-@@ -341,7 +341,7 @@
- * This is done by this method.
- * @param control
- */
-- private void focusGained(XControl control) {
-+ public void focusGained(XControl control) {
- try {
- //calculate in which row we are...
- String name = (String)Helper.getUnoPropertyValue(UnoDialog2.getModel(control),"Name");
-@@ -361,7 +361,7 @@
- * enable or disable the buttons according to the
- * current row we are in.
- */
-- private void enableButtons() {
-+ public void enableButtons() {
- UnoDialog2.setEnabled( getAD().btnInsert , (lastFocusRow < scrollfields.size() - 1 ? Boolean.TRUE : Boolean.FALSE ) );
- UnoDialog2.setEnabled( getAD().btnRemove , (lastFocusRow < scrollfields.size() - 1 ? Boolean.TRUE : Boolean.FALSE ) );
- UnoDialog2.setEnabled( getAD().btnUp , (lastFocusRow > 0 ? Boolean.TRUE : Boolean.FALSE ) );
-@@ -383,7 +383,7 @@
- * the template controller (live preview in background).
- * @return the parent dialog, casted to AgendaWizardDialog.
- */
-- private AgendaWizardDialog getAD() {
-+ public AgendaWizardDialog getAD() {
- return (AgendaWizardDialog)this.CurUnoDialog;
- }
-
-@@ -401,11 +401,11 @@
- rowDown(lastFocusRow - nscrollvalue, lastFocusControl);
- }
-
-- private void lockDoc() {
-+ public void lockDoc() {
- //((AgendaWizardDialogImpl)CurUnoDialog).agendaTemplate.xTextDocument.lockControllers();
- }
-
-- private void unlockDoc() {
-+ public void unlockDoc() {
- //((AgendaWizardDialogImpl)CurUnoDialog).agendaTemplate.xTextDocument.unlockControllers();
- }
-
-@@ -480,7 +480,7 @@
- * @param i the index of the new row
- * @return
- */
-- private PropertyValue[] newRow(int i) {
-+ public PropertyValue[] newRow(int i) {
- PropertyValue[] pv = new PropertyValue[4];
- pv[0] = Properties.createProperty(LABEL + i, "" + (i + 1) + ".");
- pv[1] = Properties.createProperty(TOPIC + i, "" );
-@@ -495,7 +495,7 @@
- * It uses the child-class ControlRow. (see below).
- * @see ControlRow
- */
-- protected void insertControlGroup(int _index, int npos)
-+ public void insertControlGroup(int _index, int npos)
- {
- ControlRow oControlRow = new ControlRow((AgendaWizardDialog)CurUnoDialog, iCompPosX, npos, _index, tabIndex);
- ControlGroupVector.addElement(oControlRow);
-@@ -508,7 +508,7 @@
- * As far as I know it is never called.
- * @see ControlRow
- */
-- protected void setControlGroupVisible(int _index, boolean _bIsVisible)
-+ public void setControlGroupVisible(int _index, boolean _bIsVisible)
- {
- ((ControlRow)ControlGroupVector.get(_index)).setVisible(_bIsVisible);
-
-@@ -522,7 +522,7 @@
- * @param row the index number of the row to check.
- * @return true if empty. false if not.
- */
-- protected boolean isRowEmpty(int row) {
-+ public boolean isRowEmpty(int row) {
- PropertyValue[] data = getTopicData(row );
-
- // now - is this row empty?
-@@ -536,7 +536,7 @@
- /**
- * is used for data tracking.
- */
-- private Object[] oldData;
-+ public Object[] oldData;
-
- /**
- * update the preview document and
-@@ -656,7 +656,7 @@
- * sets focus to the given control.
- * @param textControl
- */
-- private void focus(Object textControl) {
-+ public void focus(Object textControl) {
- ((XWindow)UnoRuntime.queryInterface(XWindow.class,textControl)).setFocus();
- XTextComponent xTextComponent = (XTextComponent)UnoRuntime.queryInterface(XTextComponent.class,textControl);
- String text = xTextComponent.getText();
-@@ -768,7 +768,7 @@
- * @param row1 one can figure out what this parameter is...
- * @param row2 one can figure out what this parameter is...
- */
-- private void switchRows( int row1, int row2) {
-+ public void switchRows( int row1, int row2) {
- PropertyValue[] o1 = (PropertyValue[]) scrollfields.get(row1 + nscrollvalue);
- PropertyValue[] o2 = (PropertyValue[]) scrollfields.get(row2 + nscrollvalue);
-
-@@ -812,7 +812,7 @@
- * should be gotten.
- * @return the selection object.
- */
-- private Selection getSelection(Object control) {
-+ public Selection getSelection(Object control) {
- return ((XTextComponent)UnoRuntime.queryInterface(XTextComponent.class,control)).getSelection();
- }
-
-@@ -830,7 +830,7 @@
- * @param eventSource helps to detect the control's column to set the selection to.
- * @param s the selection object to set.
- */
-- private void setSelection(int guiRow, Object eventSource, Selection s) {
-+ public void setSelection(int guiRow, Object eventSource, Selection s) {
- ControlRow cr = (ControlRow)ControlGroupVector.get(guiRow);
- Object control = getControl(cr, eventSource);
- ((XWindow)UnoRuntime.queryInterface(XWindow.class,control)).setFocus();
-@@ -845,7 +845,7 @@
- * @param column the column number.
- * @return the control...
- */
-- private Object getControl( ControlRow cr, int column) {
-+ public Object getControl( ControlRow cr, int column) {
- switch ( column ) {
- case 0 : return cr.label;
- case 1 : return cr.textbox;
-@@ -863,7 +863,7 @@
- * @param control a control indicating a column.
- * @return
- */
-- private Object getControl(ControlRow cr, Object control) {
-+ public Object getControl(ControlRow cr, Object control) {
- int column = getColumn(control);
- return getControl(cr,column);
- }
-@@ -873,7 +873,7 @@
- * @param control
- * @return
- */
-- private int getColumn(Object control) {
-+ public int getColumn(Object control) {
- String name = (String)Helper.getUnoPropertyValue(UnoDialog2.getModel(control),"Name");
- if (name.startsWith( TOPIC ))
- return 1;
-@@ -891,7 +891,7 @@
- * updates the given row in the preview document.
- * @param row
- */
-- private void updateDocumentRow( int row ) {
-+ public void updateDocumentRow( int row ) {
- updateDocumentRow( row , (PropertyValue[])scrollfields.get(row));
- }
-
-@@ -900,7 +900,7 @@
- * @param row
- * @param data
- */
-- private void updateDocumentRow( int row , PropertyValue[] data) {
-+ public void updateDocumentRow( int row , PropertyValue[] data) {
- try {
- ((AgendaWizardDialogImpl)CurUnoDialog).agendaTemplate.topics.write(row, data);
- }
-@@ -917,7 +917,7 @@
- * @param column the column to update (a gui column, not a document column).
- * @param data the data of the entire row.
- */
-- private void updateDocumentCell( int row , int column, PropertyValue[] data) {
-+ public void updateDocumentCell( int row , int column, PropertyValue[] data) {
- try {
- ((AgendaWizardDialogImpl)CurUnoDialog).agendaTemplate.topics.writeCell(row, column, data);
- }
-@@ -931,7 +931,7 @@
- * the preview document to show the number of rows
- * according to the data model.
- */
-- private void reduceDocumentToTopics() {
-+ public void reduceDocumentToTopics() {
- try {
- ((AgendaWizardDialogImpl)CurUnoDialog).agendaTemplate.topics.reduceDocumentTo(scrollfields.size()-1);
- }
-@@ -951,19 +951,19 @@
- /**
- * A static member used for the child-class ControlRow (GUI Constant)
- */
-- private static Integer I_12 = new Integer(12);
-+ public static Integer I_12 = new Integer(12);
- /**
- * A static member used for the child-class ControlRow (GUI Constant)
- */
-- private static Integer I_8 = new Integer(8);
-+ public static Integer I_8 = new Integer(8);
- /**
- * A static member used for the child-class ControlRow (GUI Constant)
- */
-- private static final String[] LABEL_PROPS = new String[] {"Height", "Label", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
-+ public static final String[] LABEL_PROPS = new String[] {"Height", "Label", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
- /**
- * A static member used for the child-class ControlRow (GUI Constant)
- */
-- private static final String[] TEXT_PROPS = new String[] {"Height", "HelpURL", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
-+ public static final String[] TEXT_PROPS = new String[] {"Height", "HelpURL", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
-
- /**
- *
-@@ -1146,7 +1146,7 @@
- * @param control
- * @return an int columnd number of the given control (0 to 3).
- */
-- private int getColumn(Object control) {
-+ public int getColumn(Object control) {
- if ( control == textbox )
- return 1;
- else if ( control == combobox )
-@@ -1159,16 +1159,16 @@
- throw new IllegalArgumentException("Control is not part of this ControlRow");
- }
-
-- private boolean isMoveDown(KeyEvent e) {
-+ public boolean isMoveDown(KeyEvent e) {
- return ( e.KeyCode == Key.DOWN ) && ( e.Modifiers == KeyModifier.MOD1 );
- }
-- private boolean isMoveUp(KeyEvent e) {
-+ public boolean isMoveUp(KeyEvent e) {
- return ( e.KeyCode == Key.UP ) && ( e.Modifiers == KeyModifier.MOD1 );
- }
-- private boolean isDown(KeyEvent e) {
-+ public boolean isDown(KeyEvent e) {
- return ( e.KeyCode == Key.DOWN ) && ( e.Modifiers == 0 );
- }
-- private boolean isUp(KeyEvent e) {
-+ public boolean isUp(KeyEvent e) {
- return ( e.KeyCode == Key.UP ) && ( e.Modifiers == 0 );
- }
-
---- wizards/com/sun/star/wizards/common/ConfigGroup.java.gcj~ 2004-09-08 14:00:49.000000000 +0000
-+++ wizards/com/sun/star/wizards/common/ConfigGroup.java 2005-08-28 18:54:10.000000000 +0000
-@@ -81,7 +81,7 @@
- }
- }
-
-- private void writeField(Field field, Object configView, String prefix) throws Exception {
-+ public void writeField(Field field, Object configView, String prefix) throws Exception {
- String propertyName = field.getName().substring(prefix.length());
- //System.out.println("Going to save:" + propertyName);
- Class fieldType = field.getType();
-@@ -129,7 +129,7 @@
- }
- }
-
-- private void readField(Field field, Object configView, String prefix) throws Exception {
-+ public void readField(Field field, Object configView, String prefix) throws Exception {
- String propertyName = field.getName().substring(prefix.length());
-
- Class fieldType = field.getType();
---- wizards/com/sun/star/wizards/common/ConfigSet.java.gcj~ 2004-09-08 14:01:04.000000000 +0000
-+++ wizards/com/sun/star/wizards/common/ConfigSet.java 2005-08-28 18:54:10.000000000 +0000
-@@ -72,9 +72,9 @@
- * @author rpiterman
- */
- public class ConfigSet implements ConfigNode, XMLProvider, ListModel {
-- private Class childClass;
-- private Map childrenMap = new HashMap();
-- private List childrenList = new Vector();
-+ public Class childClass;
-+ public Map childrenMap = new HashMap();
-+ public List childrenList = new Vector();
- public Object root;
-
- /**
-@@ -85,10 +85,10 @@
- * subclasses can change this field in the constructor
- * to avoid this "deletion" of nulls.
- */
-- protected boolean noNulls = true;
-+ public boolean noNulls = true;
-
- /** Utility field used by event firing mechanism. */
-- private javax.swing.event.EventListenerList listenerList = null;
-+ public javax.swing.event.EventListenerList listenerList = null;
-
- public ConfigSet(Class childType) {
- childClass = childType;
-@@ -122,7 +122,7 @@
- fireListDataListenerIntervalAdded(i, i);
- }
-
-- protected Object createChild() throws InstantiationException, IllegalAccessException {
-+ public Object createChild() throws InstantiationException, IllegalAccessException {
- return childClass.newInstance();
- }
-
-@@ -281,7 +281,7 @@
- * @param event The event to be fired
- *
- */
-- private void fireListDataListenerIntervalAdded(int i0, int i1) {
-+ public void fireListDataListenerIntervalAdded(int i0, int i1) {
- ListDataEvent event = new ListDataEvent(this, ListDataEvent.INTERVAL_ADDED, i0, i1);
- if (listenerList == null)
- return;
-@@ -298,7 +298,7 @@
- * @param event The event to be fired
- *
- */
-- private void fireListDataListenerIntervalRemoved(int i0, int i1) {
-+ public void fireListDataListenerIntervalRemoved(int i0, int i1) {
- ListDataEvent event = new ListDataEvent(this, ListDataEvent.INTERVAL_REMOVED, i0, i1);
- if (listenerList == null)
- return;
-@@ -315,7 +315,7 @@
- * @param event The event to be fired
- *
- */
-- private void fireListDataListenerContentsChanged(int i0, int i1) {
-+ public void fireListDataListenerContentsChanged(int i0, int i1) {
- ListDataEvent event = new ListDataEvent(this, ListDataEvent.CONTENTS_CHANGED, i0, i1);
- if (listenerList == null)
- return;
---- wizards/com/sun/star/wizards/common/FileAccess.java.gcj~ 2005-03-18 16:13:40.000000000 +0000
-+++ wizards/com/sun/star/wizards/common/FileAccess.java 2005-08-28 18:54:10.000000000 +0000
-@@ -584,7 +584,7 @@
- return url;
- }
-
-- private static String filename(String name, String ext, int i) {
-+ public static String filename(String name, String ext, int i) {
- return name + (i == 0 ? "" : String.valueOf(i)) + (ext.equals("") ? "" : "." + ext);
- }
-
---- wizards/com/sun/star/wizards/common/Helper.java.gcj~ 2005-07-05 10:17:16.000000000 +0000
-+++ wizards/com/sun/star/wizards/common/Helper.java 2005-08-28 18:54:10.000000000 +0000
-@@ -262,14 +262,14 @@
- }
- }
-
-- private static long DAY_IN_MILLIS = ( 24 * 60 * 60 * 1000 );
-+ public static long DAY_IN_MILLIS = ( 24 * 60 * 60 * 1000 );
-
- public static class DateUtils {
-
-- private long docNullTime;
-- private XNumberFormatter formatter;
-- private XNumberFormatsSupplier formatSupplier;
-- private Calendar calendar;
-+ public long docNullTime;
-+ public XNumberFormatter formatter;
-+ public XNumberFormatsSupplier formatSupplier;
-+ public Calendar calendar;
-
- public DateUtils(XMultiServiceFactory xmsf, Object document) throws Exception {
- XMultiServiceFactory docMSF = (XMultiServiceFactory)UnoRuntime.queryInterface(XMultiServiceFactory.class,document);
-@@ -305,7 +305,7 @@
- return formatter;
- }
-
-- private long getTimeInMillis(){
-+ public long getTimeInMillis(){
- java.util.Date dDate = calendar.getTime();
- return dDate.getTime();
- }
---- wizards/com/sun/star/wizards/common/NumberFormatter.java.gcj~ 2005-02-21 13:51:36.000000000 +0000
-+++ wizards/com/sun/star/wizards/common/NumberFormatter.java 2005-08-28 18:54:10.000000000 +0000
-@@ -87,8 +87,8 @@
- public XNumberFormats xNumberFormats;
- public XNumberFormatTypes xNumberFormatTypes;
- public XPropertySet xNumberFormatSettings;
-- private boolean bNullDateCorrectionIsDefined = false;
-- private Locale aLocale;
-+ public boolean bNullDateCorrectionIsDefined = false;
-+ public Locale aLocale;
-
-
- public NumberFormatter(XMultiServiceFactory _xMSF, XNumberFormatsSupplier _xNumberFormatsSupplier, Locale _aLocale) throws Exception{
---- wizards/com/sun/star/wizards/common/SystemDialog.java.gcj~ 2004-10-27 13:29:33.000000000 +0000
-+++ wizards/com/sun/star/wizards/common/SystemDialog.java 2005-08-28 18:54:10.000000000 +0000
-@@ -133,7 +133,7 @@
-
-
-
-- private String subst(String path) {
-+ public String subst(String path) {
- try {
- //System.out.println("SystemDialog.subst:");
- //System.out.println(path);
-@@ -204,7 +204,7 @@
- return null;
- }
-
-- private boolean execute(XExecutableDialog execDialog) {
-+ public boolean execute(XExecutableDialog execDialog) {
- return execDialog.execute() == 1;
- }
-
-@@ -253,7 +253,7 @@
- * @param filterName
- * @return
- */
-- private String getFilterUIName(String filterName) {
-+ public String getFilterUIName(String filterName) {
- String prodName = Configuration.getProductName(xMSF);
- String[][] s = new String[][] { { getFilterUIName_(filterName)}
- };
-@@ -266,7 +266,7 @@
- * @param filterName
- * @return the UI localized name of the given filter name.
- */
-- private String getFilterUIName_(String filterName) {
-+ public String getFilterUIName_(String filterName) {
- try {
- Object oFactory = xMSF.createInstance("com.sun.star.document.FilterFactory");
- Object oObject = Helper.getUnoObjectbyName(oFactory, filterName);
---- wizards/com/sun/star/wizards/common/UCB.java.gcj~ 2004-05-19 12:39:04.000000000 +0000
-+++ wizards/com/sun/star/wizards/common/UCB.java 2005-08-28 18:54:10.000000000 +0000
-@@ -24,8 +24,8 @@
- * It should be always: dir,filename.
- */
- public class UCB {
-- private Object ucb;
-- private FileAccess fa;
-+ public Object ucb;
-+ public FileAccess fa;
-
- public UCB(XMultiServiceFactory xmsf) throws Exception {
- String[] keys = new String[2];
---- wizards/com/sun/star/wizards/db/BlindtextCreator.java.gcj~ 2004-05-19 12:40:07.000000000 +0000
-+++ wizards/com/sun/star/wizards/db/BlindtextCreator.java 2005-08-28 18:54:10.000000000 +0000
-@@ -122,7 +122,7 @@
- return PartBlindText;
- }
-
-- private static int getMaxFieldCount(boolean bIsCurLandscape) {
-+ public static int getMaxFieldCount(boolean bIsCurLandscape) {
- if (bIsCurLandscape == true)
- return 5;
- else
---- wizards/com/sun/star/wizards/db/ColumnPropertySet.java.gcj~ 2005-03-21 18:04:17.000000000 +0000
-+++ wizards/com/sun/star/wizards/db/ColumnPropertySet.java 2005-08-28 18:54:10.000000000 +0000
-@@ -74,8 +74,8 @@
- public class ColumnPropertySet {
- TypeInspector oTypeInspector;
- public XPropertySet xPropertySet;
-- private int nType;
-- private String sTypeName = "";
-+ public int nType;
-+ public String sTypeName = "";
-
-
- public ColumnPropertySet(TypeInspector _oTypeInspector, XPropertySet _xPropertySet){
-@@ -125,7 +125,7 @@
- }}
-
-
-- private void setType(int _nType, String _sTypeName){
-+ public void setType(int _nType, String _sTypeName){
- if (_sTypeName.equals(""))
- sTypeName = oTypeInspector.getDefaultTypeName(nType);
- else
-@@ -136,7 +136,7 @@
- }
-
-
-- private void assignPropertyValue(String _spropname, Object _oValue){
-+ public void assignPropertyValue(String _spropname, Object _oValue){
- try {
- if (_spropname.equals("Type")){
- nType = ((Integer) _oValue).intValue();
-@@ -169,7 +169,7 @@
- }
-
-
-- private int getType(){
-+ public int getType(){
- return nType;
- }
- }
---- wizards/com/sun/star/wizards/db/CommandMetaData.java.gcj~ 2005-03-18 16:14:46.000000000 +0000
-+++ wizards/com/sun/star/wizards/db/CommandMetaData.java 2005-08-28 18:54:10.000000000 +0000
-@@ -89,15 +89,15 @@
- public String[] NumericFieldNames = new String[] {};
- public String[] NonAggregateFieldNames;
- public int[] FieldTypes;
-- private int CommandType;
-- private String Command;
-+ public int CommandType;
-+ public String Command;
- boolean bCatalogAtStart = true;
- String sCatalogSep = "";
- String sIdentifierQuote = "";
- boolean bCommandComposerAttributesalreadyRetrieved = false;
-
-
-- private XIndexAccess xIndexKeys;
-+ public XIndexAccess xIndexKeys;
-
- public CommandMetaData(XMultiServiceFactory xMSF, Locale _aLocale, NumberFormatter oNumberFormatter) {
- super(xMSF, _aLocale, oNumberFormatter);
---- wizards/com/sun/star/wizards/db/CommandName.java.gcj~ 2005-02-21 13:52:56.000000000 +0000
-+++ wizards/com/sun/star/wizards/db/CommandName.java 2005-08-28 18:54:10.000000000 +0000
-@@ -64,17 +64,17 @@
- import com.sun.star.wizards.common.JavaTools;
-
- public class CommandName{
-- private CommandMetaData CurDBMetaData;
-- private String CatalogName = null;
-- private String SchemaName = null;
-- private String TableName = null;
-- private String DisplayName = null;
-- private String ComposedName = "";
-- private String AliasName = "";
-- private boolean bCatalogAtStart;
-- private String sCatalogSep;
-- private String sIdentifierQuote;
-- private boolean baddQuotation = true;
-+ public CommandMetaData CurDBMetaData;
-+ public String CatalogName = null;
-+ public String SchemaName = null;
-+ public String TableName = null;
-+ public String DisplayName = null;
-+ public String ComposedName = "";
-+ public String AliasName = "";
-+ public boolean bCatalogAtStart;
-+ public String sCatalogSep;
-+ public String sIdentifierQuote;
-+ public boolean baddQuotation = true;
-
-
- public CommandName(CommandMetaData _CurDBMetaData, String _DisplayName){
-@@ -105,7 +105,7 @@
- }
-
-
-- private void setComposedCommandName(String _DisplayName) {
-+ public void setComposedCommandName(String _DisplayName) {
- try{
- if (this.setMetaDataAttributes()){
- this.DisplayName = _DisplayName;
-@@ -154,7 +154,7 @@
- }
-
-
-- private boolean setMetaDataAttributes(){
-+ public boolean setMetaDataAttributes(){
- try {
- bCatalogAtStart = CurDBMetaData.xDBMetaData.isCatalogAtStart();
- sCatalogSep = CurDBMetaData.xDBMetaData.getCatalogSeparator();
---- wizards/com/sun/star/wizards/db/DBMetaData.java.gcj~ 2005-04-06 12:09:14.000000000 +0000
-+++ wizards/com/sun/star/wizards/db/DBMetaData.java 2005-08-28 18:54:10.000000000 +0000
-@@ -117,16 +117,16 @@
-
- public XNameAccess xTableNames;
- public XNameAccess xQueryNames;
-- private XInteractionHandler oInteractionHandler;
-- private XNameAccess xNameAccess;
-- private XInterface xDatabaseContext;
-+ public XInteractionHandler oInteractionHandler;
-+ public XNameAccess xNameAccess;
-+ public XInterface xDatabaseContext;
- public XDatabaseMetaData xDBMetaData;
- public XDataSource xDataSource;
- public XOfficeDatabaseDocument xModel;
-- private XCompletedConnection xCompleted;
-+ public XCompletedConnection xCompleted;
- public XPropertySet xDataSourcePropertySet;
-- private int[] nDataTypes = null;
-- private XWindowPeer xWindowPeer;
-+ public int[] nDataTypes = null;
-+ public XWindowPeer xWindowPeer;
- public String[] DataSourceNames;
- public String[] CommandNames;
- public String[] TableNames = new String[] {};
-@@ -147,17 +147,17 @@
- int iMaxColumnsInTable;
- int iMaxColumnNameLength = -1;
- int iMaxTableNameLength = -1;
-- private boolean bPasswordIsRequired;
-- private boolean bFormatKeysareset = false;
-+ public boolean bPasswordIsRequired;
-+ public boolean bFormatKeysareset = false;
- final int NOLIMIT = 9999999;
- final int RID_DB_COMMON = 1000;
- final int INVALID = 9999999;
- public TypeInspector oTypeInspector;
-- private PropertyValue[] aInfoPropertyValues = null;
-- private boolean bisSQL92CheckEnabled = false;
-- private NumberFormatter oNumberFormatter = null;
-- private long lDateCorrection = INVALID;
-- private boolean bdisposeConnection = false;
-+ public PropertyValue[] aInfoPropertyValues = null;
-+ public boolean bisSQL92CheckEnabled = false;
-+ public NumberFormatter oNumberFormatter = null;
-+ public long lDateCorrection = INVALID;
-+ public boolean bdisposeConnection = false;
-
- public DBMetaData(XMultiServiceFactory xMSF) {
- getInterfaces(xMSF);
-@@ -397,13 +397,13 @@
- return iMaxColumnsInGroupBy;
- }
-
-- private void setMaxColumnsInSelect() throws SQLException {
-+ public void setMaxColumnsInSelect() throws SQLException {
- iMaxColumnsInSelect = xDBMetaData.getMaxColumnsInSelect();
- if (iMaxColumnsInSelect == 0)
- iMaxColumnsInSelect = this.NOLIMIT;
- }
-
-- private void setMaxColumnsInGroupBy() throws SQLException {
-+ public void setMaxColumnsInGroupBy() throws SQLException {
- iMaxColumnsInGroupBy = xDBMetaData.getMaxColumnsInGroupBy();
- if (iMaxColumnsInGroupBy == 0)
- iMaxColumnsInGroupBy = this.NOLIMIT;
-@@ -418,7 +418,7 @@
- }
-
-
-- private void getDataSourceObjects() throws Exception{
-+ public void getDataSourceObjects() throws Exception{
- try {
- xDBMetaData = DBConnection.getMetaData();
- XChild xChild = (XChild) UnoRuntime.queryInterface(XChild.class, DBConnection);
-@@ -456,7 +456,7 @@
- }
-
-
-- private void setDataSourceByName(String _DataSourceName, boolean bgetInterfaces) {
-+ public void setDataSourceByName(String _DataSourceName, boolean bgetInterfaces) {
- try {
- this.DataSourceName = _DataSourceName;
- Object oDataSource = xNameAccess.getByName(DataSourceName);
-@@ -538,13 +538,13 @@
- }
-
-
-- private boolean getConnection(String _DataSourceName) {
-+ public boolean getConnection(String _DataSourceName) {
- setDataSourceByName(_DataSourceName, true);
- return getConnection(xDataSource);
- }
-
-
-- private boolean getConnection(com.sun.star.sdbc.XConnection _DBConnection){
-+ public boolean getConnection(com.sun.star.sdbc.XConnection _DBConnection){
- try {
- this.DBConnection = _DBConnection;
- getDataSourceObjects();
-@@ -555,7 +555,7 @@
- }}
-
-
-- private boolean getConnection(XDataSource xDataSource){
-+ public boolean getConnection(XDataSource xDataSource){
- Resource oResource = new Resource(xMSF, "Database", "dbw");
- try {
- int iMsg = 0;
-@@ -778,7 +778,7 @@
- }
-
-
-- private String[] StringsFromResultSet(XResultSet _xResultSet, int _icol){
-+ public String[] StringsFromResultSet(XResultSet _xResultSet, int _icol){
- String[] sColValues = null;
- try {
- XRow xRow = (XRow) UnoRuntime.queryInterface(XRow.class, _xResultSet);
---- wizards/com/sun/star/wizards/db/FieldColumn.java.gcj~ 2005-03-18 16:15:17.000000000 +0000
-+++ wizards/com/sun/star/wizards/db/FieldColumn.java 2005-08-28 18:54:10.000000000 +0000
-@@ -75,7 +75,7 @@
- public String FieldTitle;
- public String AliasName;
- public int ColIndex;
-- private String CommandName;
-+ public String CommandName;
- public int FieldWidth;
- public int DBFormatKey;
- public int FieldType;
-@@ -83,12 +83,12 @@
- public boolean bIsNumberFormat;
- public XPropertySet xColPropertySet;
- public int iType;
-- protected int iDateFormatKey;
-- protected int iDateTimeFormatKey;
-- protected int iNumberFormatKey;
-- protected int iTextFormatKey;
-- protected int iTimeFormatKey;
-- protected int iLogicalFormatKey;
-+ public int iDateFormatKey;
-+ public int iDateTimeFormatKey;
-+ public int iNumberFormatKey;
-+ public int iTextFormatKey;
-+ public int iTimeFormatKey;
-+ public int iLogicalFormatKey;
-
- public FieldColumn(CommandMetaData oCommandMetaData, String _DisplayFieldName) {
- // TODO: xColumns has to be retrieved from the respective table
-@@ -122,7 +122,7 @@
-
-
-
-- private void setFormatKeys(CommandMetaData oCommandMetaData, XNameAccess _xColumns){
-+ public void setFormatKeys(CommandMetaData oCommandMetaData, XNameAccess _xColumns){
- try {
- xColPropertySet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, _xColumns.getByName(FieldName));
- ColIndex = JavaTools.FieldInList(_xColumns.getElementNames(), FieldName) + 1;
-@@ -203,7 +203,7 @@
- }
- }
-
-- private Object getTyperelatedFieldData() {
-+ public Object getTyperelatedFieldData() {
- try {
- FieldType = AnyConverter.toInt(xColPropertySet.getPropertyValue("Type"));
- switch (FieldType) {
-@@ -312,7 +312,7 @@
- }
- }
-
-- private void getTextFieldWidth(int iWidth) {
-+ public void getTextFieldWidth(int iWidth) {
- int iNewWidth = iWidth;
- try {
- FieldWidth = AnyConverter.toInt(xColPropertySet.getPropertyValue("Precision"));
---- wizards/com/sun/star/wizards/db/RecordParser.java.gcj~ 2005-03-18 16:15:42.000000000 +0000
-+++ wizards/com/sun/star/wizards/db/RecordParser.java 2005-08-28 18:54:10.000000000 +0000
-@@ -102,7 +102,7 @@
- getInterfaces();
- }
-
-- private void getInterfaces() {
-+ public void getInterfaces() {
- try {
- xRowSet = (XInterface) xMSF.createInstance("com.sun.star.sdb.RowSet");
- xRowSetColumnsSupplier = (XColumnsSupplier) UnoRuntime.queryInterface(XColumnsSupplier.class, xRowSet);
-@@ -115,7 +115,7 @@
- }
- }
-
-- private Object getColumnStringValue(int ColIndex) {
-+ public Object getColumnStringValue(int ColIndex) {
- try {
- com.sun.star.uno.Type CurType;
- Object oAny;
-@@ -129,7 +129,7 @@
- }
- }
-
-- private Object getColumnDoubleValue(int ColIndex, boolean bisDate) {
-+ public Object getColumnDoubleValue(int ColIndex, boolean bisDate) {
- try {
- Double DblValue;
- if (bisDate)
-@@ -255,7 +255,7 @@
- }
- }
-
-- private FieldColumn[] getFieldColumnList(String[] _FieldNames) {
-+ public FieldColumn[] getFieldColumnList(String[] _FieldNames) {
- FieldColumn[] LocFieldColumns = new FieldColumn[_FieldNames.length];
- for (int i = 0; i < _FieldNames.length; i++) {
- LocFieldColumns[i] = super.getFieldColumnByDisplayName(_FieldNames[i]);
-@@ -279,7 +279,7 @@
- }
-
-
-- private void setColindices() throws InvalidQueryException {
-+ public void setColindices() throws InvalidQueryException {
- String[] AllQueryFieldNames = xColumns.getElementNames();
- for (int i = 0; i < FieldNames.length; i++) {
- FieldColumn CurFieldColumn = getFieldColumnByDisplayName(FieldNames[i]);
---- wizards/com/sun/star/wizards/db/SQLQueryComposer.java.gcj~ 2005-04-18 14:11:32.000000000 +0000
-+++ wizards/com/sun/star/wizards/db/SQLQueryComposer.java 2005-08-28 18:54:10.000000000 +0000
-@@ -112,7 +112,7 @@
- }
- }
-
-- private boolean addtoSelectClause(String FieldName) throws SQLException {
-+ public boolean addtoSelectClause(String FieldName) throws SQLException {
- if (bincludeGrouping){
- if (CurDBMetaData.xDBMetaData.supportsGroupByUnrelated()) {
- if (CurDBMetaData.GroupFieldNames != null) {
-@@ -185,7 +185,7 @@
- }
- }
-
-- private void appendSortingCriterion(int _SortIndex ) throws SQLException{
-+ public void appendSortingCriterion(int _SortIndex ) throws SQLException{
- XPropertySet xColumn = CurDBMetaData.getColumnObjectByFieldName(CurDBMetaData.SortFieldNames[_SortIndex][0]);
- boolean bascend = (CurDBMetaData.SortFieldNames[_SortIndex][1] == "ASC");
- xQueryComposer.appendOrderByColumn(xColumn, bascend);
-@@ -223,7 +223,7 @@
- this.CurDBMetaData = _oDBMetaData;
- }
-
-- private PropertyValue[][] replaceConditionsByAlias(PropertyValue _filterconditions[][]) {
-+ public PropertyValue[][] replaceConditionsByAlias(PropertyValue _filterconditions[][]) {
- for (int n = 0; n < _filterconditions.length; n++) {
- for (int m = 0; m < _filterconditions[n].length; m++) {
- _filterconditions[n][m].Name = getComposedAliasFieldName(_filterconditions[n][m].Name);
-@@ -277,7 +277,7 @@
- }
-
-
-- private String getComposedAliasFieldName(String _fieldname){
-+ public String getComposedAliasFieldName(String _fieldname){
- FieldColumn CurFieldColumn = CurDBMetaData.getFieldColumnByDisplayName(_fieldname);
- CommandName curComposedCommandName = getComposedCommandByDisplayName(CurFieldColumn.getCommandName());
- String curAliasName = curComposedCommandName.getAliasName();
-@@ -285,7 +285,7 @@
- }
-
-
-- private CommandName getComposedCommandByAliasName(String _AliasName) {
-+ public CommandName getComposedCommandByAliasName(String _AliasName) {
- if (composedCommandNames != null) {
- CommandName curComposedName;
- for (int i = 0; i < composedCommandNames.size(); i++) {
-@@ -328,7 +328,7 @@
- }
-
-
-- private String quoteName(String _sname){
-+ public String quoteName(String _sname){
- return CommandName.quoteName(_sname, CurDBMetaData.getIdentifierQuote());
- }
-
---- wizards/com/sun/star/wizards/db/TableDescriptor.java.gcj~ 2005-03-18 16:16:06.000000000 +0000
-+++ wizards/com/sun/star/wizards/db/TableDescriptor.java 2005-08-28 18:54:10.000000000 +0000
-@@ -78,24 +78,24 @@
- public class TableDescriptor extends CommandMetaData implements XContainerListener{
- XDataDescriptorFactory xTableDataDescriptorFactory;
- XPropertySet xPropTableDataDescriptor;
-- private XNameAccess xNameAccessColumns;
-- private XIndexAccess xIndexAccessKeys;
-+ public XNameAccess xNameAccessColumns;
-+ public XIndexAccess xIndexAccessKeys;
-
- public XDataDescriptorFactory xColumnDataDescriptorFactory;
- XContainer xTableContainer;
- XAppend xTableAppend;
- XDrop xTableDrop;
-- private XAppend xKeyAppend;
-- private XDrop xKeyDrop;
-- private String[] sTableFilters = null;
-- private Vector columncontainer;
-- private Vector keycolumncontainer;
-+ public XAppend xKeyAppend;
-+ public XDrop xKeyDrop;
-+ public String[] sTableFilters = null;
-+ public Vector columncontainer;
-+ public Vector keycolumncontainer;
- public XHierarchicalNameAccess xTableHierarchicalNameAccess;
-- private CommandName ComposedTableName;
-- private XAppend xKeyColAppend;
-- private XPropertySet xKey;
-- private boolean bIDFieldisInserted = false;
-- private String IDFieldName = "";
-+ public CommandName ComposedTableName;
-+ public XAppend xKeyColAppend;
-+ public XPropertySet xKey;
-+ public boolean bIDFieldisInserted = false;
-+ public String IDFieldName = "";
-
- /**
- * @param xMSF
-@@ -107,7 +107,7 @@
- }
-
-
-- private class ColumnDescriptor{
-+ public class ColumnDescriptor{
- String Name;
- XPropertySet xColPropertySet;
-
-@@ -253,7 +253,7 @@
- }
-
-
-- private void assignTableProperty(String _spropname, String _svalue){
-+ public void assignTableProperty(String _spropname, String _svalue){
- if (_svalue != null){
- if (!_svalue.equals("")){
- try {
-@@ -357,7 +357,7 @@
- }
-
-
-- private boolean hasByName(String _fieldname){
-+ public boolean hasByName(String _fieldname){
- try {
- if (columncontainer.size() > 0){
- for (int i = 0; i < columncontainer.size(); i++){
-@@ -374,7 +374,7 @@
- }
-
-
-- private ColumnDescriptor getColumnDescriptorByName(String _fieldname){
-+ public ColumnDescriptor getColumnDescriptorByName(String _fieldname){
- try {
- if (this.columncontainer.size() > 0){
- for (int i = 0; i < columncontainer.size(); i++){
-@@ -400,7 +400,7 @@
- }
-
-
-- private XPropertySet getByIndex(int _index){
-+ public XPropertySet getByIndex(int _index){
- try {
- if (columncontainer.size() > _index){
- ColumnDescriptor oColumnDescriptor = (ColumnDescriptor) columncontainer.get(_index);
---- wizards/com/sun/star/wizards/db/TypeInspector.java.gcj~ 2005-03-21 18:04:17.000000000 +0000
-+++ wizards/com/sun/star/wizards/db/TypeInspector.java 2005-08-28 18:54:10.000000000 +0000
-@@ -77,15 +77,15 @@
-
-
- public class TypeInspector{
-- private String[] sDataTypeNames;
-- private int[] nDataTypeInfos;
-- private int[] nPrecisionInfos;
-- private int[] nNullableInfos;
-- private int[] nSearchables;
-- private boolean[] bisAutoIncrementableInfos;
-- private int[] nMinScaleInfos;
-- private int[] nMaxScaleInfos;
-- private int[] nNumericFallBackList = new int[]{DataType.INTEGER, DataType.FLOAT, DataType.REAL, DataType.DOUBLE, DataType.NUMERIC, DataType.DECIMAL};
-+ public String[] sDataTypeNames;
-+ public int[] nDataTypeInfos;
-+ public int[] nPrecisionInfos;
-+ public int[] nNullableInfos;
-+ public int[] nSearchables;
-+ public boolean[] bisAutoIncrementableInfos;
-+ public int[] nMinScaleInfos;
-+ public int[] nMaxScaleInfos;
-+ public int[] nNumericFallBackList = new int[]{DataType.INTEGER, DataType.FLOAT, DataType.REAL, DataType.DOUBLE, DataType.NUMERIC, DataType.DECIMAL};
- final int INVALID = 999999;
- XResultSet xResultSet;
-
-@@ -203,7 +203,7 @@
- }
-
-
-- private int getDataTypeIndex(XPropertySet _xColPropertySet, boolean _bCheckNumericAttributes){
-+ public int getDataTypeIndex(XPropertySet _xColPropertySet, boolean _bCheckNumericAttributes){
- try {
- int nPrecision = -1;
- int nScale = -1;
---- wizards/com/sun/star/wizards/document/Control.java.gcj~ 2005-02-21 13:54:57.000000000 +0000
-+++ wizards/com/sun/star/wizards/document/Control.java 2005-08-28 18:54:10.000000000 +0000
-@@ -95,7 +95,7 @@
- XNamed xNamed;
- final int SOMAXTEXTSIZE = 50;
- int icontroltype;
-- protected XNameContainer xFormName;
-+ public XNameContainer xFormName;
-
-
- public Control(){
-@@ -195,7 +195,7 @@
- }
-
-
-- private void setDefaultValue(Object DatabaseField){
-+ public void setDefaultValue(Object DatabaseField){
- oDefaultValue = Helper.getUnoPropertyValue(DatabaseField, "DefaultValue");
- }
-
---- wizards/com/sun/star/wizards/document/DatabaseControl.java.gcj~ 2005-08-28 16:44:41.000000000 +0000
-+++ wizards/com/sun/star/wizards/document/DatabaseControl.java 2005-08-28 18:54:10.000000000 +0000
-@@ -97,7 +97,7 @@
- }
-
-
-- private void createGridColumn(GridControl _oGridControl, FieldColumn _curfieldcolumn, int _fieldtype, String _columntitle){
-+ public void createGridColumn(GridControl _oGridControl, FieldColumn _curfieldcolumn, int _fieldtype, String _columntitle){
- try {
- ifieldtype = _fieldtype;
- String suniqueName = Desktop.getUniqueName(_oGridControl.xNameAccess, _curfieldcolumn.FieldName);
-@@ -141,7 +141,7 @@
- }}
-
-
-- private String getGridColumnName(){
-+ public String getGridColumnName(){
- for (int i = 0; i < FormHandler.oControlData.length; i++){
- if (FormHandler.oControlData[i].DataType == this.ifieldtype)
- return FormHandler.oControlData[i].GridColumnName;
---- wizards/com/sun/star/wizards/document/FormHandler.java.gcj~ 2005-05-20 15:42:00.000000000 +0000
-+++ wizards/com/sun/star/wizards/document/FormHandler.java 2005-08-28 18:54:10.000000000 +0000
-@@ -100,7 +100,7 @@
- public XMultiServiceFactory xMSFDoc;
- public XMultiServiceFactory xMSF;
- public XDrawPage xDrawPage;
-- private XDrawPageSupplier xDrawPageSupplier;
-+ public XDrawPageSupplier xDrawPageSupplier;
- public String[] sModelServices = new String[8];
- public XNameContainer xNamedForm;
- public static ControlData[] oControlData;
---- wizards/com/sun/star/wizards/document/OfficeDocument.java.gcj~ 2004-11-27 09:05:31.000000000 +0000
-+++ wizards/com/sun/star/wizards/document/OfficeDocument.java 2005-08-28 18:54:10.000000000 +0000
-@@ -92,8 +92,8 @@
- import com.sun.star.util.XModifiable;
-
- public class OfficeDocument {
-- private XWindowPeer xWindowPeer;
-- private XMultiServiceFactory xMSF;
-+ public XWindowPeer xWindowPeer;
-+ public XMultiServiceFactory xMSF;
-
-
- /** Creates a new instance of OfficeDocument */
---- wizards/com/sun/star/wizards/document/Shape.java.gcj~ 2004-10-27 13:32:29.000000000 +0000
-+++ wizards/com/sun/star/wizards/document/Shape.java 2005-08-28 18:54:10.000000000 +0000
-@@ -82,11 +82,11 @@
- */
- public class Shape {
- public XShape xShape;
-- protected FormHandler oFormHandler;
-+ public FormHandler oFormHandler;
- public XServiceInfo xServiceInfo;
-- protected Point aPoint;
-- protected Size aSize;
-- protected XControlShape xControlShape;
-+ public Point aPoint;
-+ public Size aSize;
-+ public XControlShape xControlShape;
- public XMultiServiceFactory xMSF;
- public XShapes xShapes;
-
-@@ -117,7 +117,7 @@
- }
-
-
-- private void createShape(String sServiceName){
-+ public void createShape(String sServiceName){
- try {
- String[] savailservicenames = oFormHandler.xMSFDoc.getAvailableServiceNames();
- xMSF = oFormHandler.xMSFDoc;
---- wizards/com/sun/star/wizards/fax/CallWizard.java.gcj~ 2004-09-08 14:02:48.000000000 +0000
-+++ wizards/com/sun/star/wizards/fax/CallWizard.java 2005-08-28 18:54:10.000000000 +0000
-@@ -102,12 +102,12 @@
- /**
- * The service name, that must be used to get an instance of this service.
- */
-- private static final String __serviceName = "com.sun.star.wizards.fax.CallWizard";
-+ public static final String __serviceName = "com.sun.star.wizards.fax.CallWizard";
-
- /**
- * The service manager, that gives access to all registered services.
- */
-- private XMultiServiceFactory xmultiservicefactory;
-+ public XMultiServiceFactory xmultiservicefactory;
-
- /**
- * This method is a member of the interface for initializing an object directly
---- wizards/com/sun/star/wizards/fax/FaxWizardDialogImpl.java.gcj~ 2005-03-01 17:29:18.000000000 +0000
-+++ wizards/com/sun/star/wizards/fax/FaxWizardDialogImpl.java 2005-08-28 18:54:10.000000000 +0000
-@@ -53,7 +53,7 @@
- String sPath;
- boolean bEditTemplate;
- boolean bSaveSuccess = false;
-- private boolean filenameChanged = false;
-+ public boolean filenameChanged = false;
-
- final static int RM_TYPESTYLE = 1;
- final static int RM_ELEMENTS = 2;
-@@ -249,7 +249,7 @@
- setCurrentRoadmapItemID((short) 1);
- }
-
-- private class myPathSelectionListener implements XPathSelectionListener {
-+ public class myPathSelectionListener implements XPathSelectionListener {
- public void validatePath() {
- if (myPathSelection.usedPathPicker) {
- filenameChanged = true;
-@@ -267,7 +267,7 @@
- myPathSelection.addSelectionListener(new myPathSelectionListener());
- }
-
-- private void insertIcons() {
-+ public void insertIcons() {
- try {
- Object oGS = xMSF.createInstance("com.sun.star.graphic.GraphicProvider");
- XGraphicProvider xGraphicProvider = (XGraphicProvider) UnoRuntime.queryInterface(XGraphicProvider.class, oGS);
-@@ -285,12 +285,12 @@
-
- }
-
-- private void updateUI() {
-+ public void updateUI() {
- UnoDataAware.updateUI(mainDA);
- UnoDataAware.updateUI(faxDA);
- }
-
-- private void initializePaths() {
-+ public void initializePaths() {
- try {
- sTemplatePath = FileAccess.getOfficePath(xMSF, "Template", "share");
- sUserTemplatePath = FileAccess.getOfficePath(xMSF, "Template", "user");
-@@ -342,7 +342,7 @@
- setControlProperty("lstCommunicationType", "StringItemList", resources.CommunicationLabels);
- }
-
-- private void setDefaultForGreetingAndSalutationAndCommunication() {
-+ public void setDefaultForGreetingAndSalutationAndCommunication() {
- XTextComponent xTextComponent;
- xTextComponent = (XTextComponent) UnoRuntime.queryInterface(XTextComponent.class, lstSalutation);
- if (xTextComponent.getText().equals("")) {
-@@ -657,7 +657,7 @@
- public void lstGreetingTextChanged() {
- }
-
-- private void setPossibleFooter(boolean bState) {
-+ public void setPossibleFooter(boolean bState) {
- setControlProperty("chkUseFooter", "Enabled", new Boolean(bState));
- if (!bState) {
- chkUseFooter.setState((short) 0);
-@@ -665,12 +665,12 @@
- chkUseFooterItemChanged();
- }
-
-- private void enableSenderReceiver() {
-+ public void enableSenderReceiver() {
- XInterface BPaperItem = getRoadmapItemByID(RM_SENDERRECEIVER);
- Helper.setUnoPropertyValue(BPaperItem, "Enabled", Boolean.TRUE);
- }
-
-- private void disableSenderReceiver() {
-+ public void disableSenderReceiver() {
- XInterface BPaperItem = getRoadmapItemByID(RM_SENDERRECEIVER);
- Helper.setUnoPropertyValue(BPaperItem, "Enabled", Boolean.FALSE);
- }
---- wizards/com/sun/star/wizards/fax/FaxWizardDialogResources.java.gcj~ 2004-09-08 14:03:49.000000000 +0000
-+++ wizards/com/sun/star/wizards/fax/FaxWizardDialogResources.java 2005-08-28 18:54:10.000000000 +0000
-@@ -13,10 +13,10 @@
- final static int RID_FAXWIZARDROADMAP_START = 3300;
- final static int RID_RID_COMMON_START = 500;
-
-- protected String[] RoadmapLabels = new String[7];
-- protected String[] SalutationLabels = new String[4];
-- protected String[] GreetingLabels = new String[4];
-- protected String[] CommunicationLabels = new String[3];
-+ public String[] RoadmapLabels = new String[7];
-+ public String[] SalutationLabels = new String[4];
-+ public String[] GreetingLabels = new String[4];
-+ public String[] CommunicationLabels = new String[3];
-
- String resOverwriteWarning;
- String resTemplateDescription;
-@@ -115,32 +115,32 @@
- loadCommonResources();
- }
-
-- private void loadCommonResources() {
-+ public void loadCommonResources() {
- resOverwriteWarning = getResText(RID_RID_COMMON_START + 19);
- resTemplateDescription = getResText(RID_RID_COMMON_START + 20);
- }
-
-- private void loadRoadmapResources() {
-+ public void loadRoadmapResources() {
- for (int i = 1; i < 6; i++) {
- RoadmapLabels[i] = getResText(RID_FAXWIZARDROADMAP_START + i);
- }
- }
-
-- private void loadSalutationResources() {
-+ public void loadSalutationResources() {
- for (int i = 1; i < 5; i++) {
- SalutationLabels[i - 1] = getResText(RID_FAXWIZARDSALUTATION_START
- + i);
- }
- }
-
-- private void loadGreetingResources() {
-+ public void loadGreetingResources() {
- for (int i = 1; i < 5; i++) {
- GreetingLabels[i - 1] = getResText(RID_FAXWIZARDGREETING_START
- + i);
- }
- }
-
-- private void loadCommunicationResources() {
-+ public void loadCommunicationResources() {
- for (int i = 1; i < 4; i++) {
- CommunicationLabels[i - 1] = getResText(RID_FAXWIZARDCOMMUNICATION_START
- + i);
---- wizards/com/sun/star/wizards/form/CallFormWizard.java.gcj~ 2005-04-06 11:38:12.000000000 +0000
-+++ wizards/com/sun/star/wizards/form/CallFormWizard.java 2005-08-28 18:54:10.000000000 +0000
-@@ -143,11 +143,11 @@
-
- /** The service name, that must be used to get an instance of this service.
- */
-- private static final String __serviceName = "com.sun.star.wizards.form.CallFormWizard";
-+ public static final String __serviceName = "com.sun.star.wizards.form.CallFormWizard";
-
- /** The service manager, that gives access to all registered services.
- */
-- private com.sun.star.lang.XMultiServiceFactory xmultiservicefactory;
-+ public com.sun.star.lang.XMultiServiceFactory xmultiservicefactory;
-
- /** This method is a member of the interface for initializing an object
- * directly after its creation.
---- wizards/com/sun/star/wizards/form/FieldLinker.java.gcj~ 2004-10-27 13:33:24.000000000 +0000
-+++ wizards/com/sun/star/wizards/form/FieldLinker.java 2005-08-28 18:54:10.000000000 +0000
-@@ -103,7 +103,7 @@
- }
-
-
-- protected void insertControlGroup(int i){
-+ public void insertControlGroup(int i){
- try {
- if (i == 0){
- lblSlaveFields = new XFixedText[rowcount];
-@@ -142,7 +142,7 @@
- }}
-
-
-- protected void enableNextControlRow(int curindex) {
-+ public void enableNextControlRow(int curindex) {
- setMaxSelIndex();
- boolean bDoEnable = ((lstSlaveFields[curindex].getSelectedItemPos() > 0) && (lstMasterFields[curindex].getSelectedItemPos() > 0));
- if (!bDoEnable)
-@@ -152,7 +152,7 @@
- }
-
-
-- protected void setMaxSelIndex(){
-+ public void setMaxSelIndex(){
- MaxSelIndex = -1;
- for (int i = 0; i < rowcount; i++) {
- if ((lstSlaveFields[i].getSelectedItemPos() > 0) && (lstMasterFields[i].getSelectedItemPos() > 0))
-@@ -161,7 +161,7 @@
- }
-
-
-- protected void toggleControlRow(int i, boolean bDoEnable){
-+ public void toggleControlRow(int i, boolean bDoEnable){
- if (i < rowcount) {
- Helper.setUnoPropertyValue(UnoDialog.getModel(lblSlaveFields[i]), "Enabled", new Boolean(bDoEnable));
- Helper.setUnoPropertyValue(UnoDialog.getModel(lstSlaveFields[i]), "Enabled", new Boolean(bDoEnable));
-@@ -175,7 +175,7 @@
- }
-
-
-- protected void updateFromNextControlRow(int curindex){
-+ public void updateFromNextControlRow(int curindex){
- short iNextMasterItemPos = lstMasterFields[curindex + 1].getSelectedItemPos();
- short iNextSlaveItemPos = lstSlaveFields[curindex + 1].getSelectedItemPos();
-
---- wizards/com/sun/star/wizards/form/FormConfiguration.java.gcj~ 2005-02-21 13:56:23.000000000 +0000
-+++ wizards/com/sun/star/wizards/form/FormConfiguration.java 2005-08-28 18:54:10.000000000 +0000
-@@ -196,7 +196,7 @@
- CurUnoDialog.enablefromStep(FormWizard.SOSUBFORMFIELDSPAGE, false);
- }
-
-- private void toggleRelationsListbox(){
-+ public void toggleRelationsListbox(){
- boolean bdoenable = bsupportsRelations && this.optOnExistingRelation.getState() && (chkcreateSubForm.getState() == 1);
- Helper.setUnoPropertyValue(UnoDialog.getModel(lblRelations), "Enabled", new Boolean(bdoenable));
- Helper.setUnoPropertyValue(UnoDialog.getModel(lstRelations), "Enabled", new Boolean(bdoenable));
---- wizards/com/sun/star/wizards/form/FormControlArranger.java.gcj~ 2005-03-18 16:17:43.000000000 +0000
-+++ wizards/com/sun/star/wizards/form/FormControlArranger.java 2005-08-28 18:54:10.000000000 +0000
-@@ -83,8 +83,8 @@
- XMultiServiceFactory xMSF;
- public DatabaseControl[] DBControlList = null;
- public Control[] LabelControlList = null;
-- private XStatusIndicator xProgressBar;
-- private FieldColumn[] FieldColumns;
-+ public XStatusIndicator xProgressBar;
-+ public FieldColumn[] FieldColumns;
- DatabaseControl curDBControl;
- Control curLabelControl;
- int icurArrangement;
-@@ -134,7 +134,7 @@
-
- // Note: on all Controls except for the checkbox the Label has to be set
- // a bit under the DBControl because its Height is also smaller
-- private int getLabelDiffHeight(int _index){
-+ public int getLabelDiffHeight(int _index){
- if (curDBControl != null){
- if (curDBControl.getControlType() == FormHandler.SOCHECKBOX)
- return getCheckBoxDiffHeight(_index);
-@@ -143,7 +143,7 @@
- }
-
-
-- private int getCheckBoxDiffHeight(int LastIndex){
-+ public int getCheckBoxDiffHeight(int LastIndex){
- if ((LastIndex < DBControlList.length)){
- if (DBControlList[LastIndex].getControlType() == FormHandler.SOCHECKBOX){
- return (int)((oFormHandler.getDBRefHeight() - DBControlList[LastIndex].getDBHeight())/2);
-@@ -153,7 +153,7 @@
- }
-
-
-- private boolean isReducable(int _index){
-+ public boolean isReducable(int _index){
- boolean bisreducable = false;
- int ntype = this.FieldColumns[_index].FieldType;
- switch(ntype)
-@@ -194,7 +194,7 @@
- }
-
-
-- private int getControlGroupWidth(){
-+ public int getControlGroupWidth(){
- if (nDBWidth > nTCWidth)
- return nDBWidth;
- else
-@@ -202,7 +202,7 @@
- }
-
-
-- private void checkJustifiedPosition(int a){
-+ public void checkJustifiedPosition(int a){
- int nBaseWidth = nFormWidth + cXOffset;
- int nLeftDist = nMaxColRightX - nBaseWidth;
- int nRightDist = nBaseWidth - (DBControlList[a].getPosition().X - this.cHoriDistance);
-@@ -244,7 +244,7 @@
- }
-
-
-- private int getCorrWidth(int StartIndex , int EndIndex , int nDist, int Widthfactor ){
-+ public int getCorrWidth(int StartIndex , int EndIndex , int nDist, int Widthfactor ){
- int ShapeCount;
- if (Widthfactor > 0){
- // shapes are made wide
-@@ -265,7 +265,7 @@
- * @param nDist
- * @param WidthFactor is either '+1' or '-1' and determines whether the control shapes widths are to be made smaller or larger
- */
-- private void adjustLineWidth(int StartIndex , int EndIndex , int nDist, int WidthFactor ){
-+ public void adjustLineWidth(int StartIndex , int EndIndex , int nDist, int WidthFactor ){
- int CorrWidth = getCorrWidth(StartIndex, EndIndex, nDist, WidthFactor);
- int iLocTCPosX = cXOffset;
- for (int i = StartIndex; i <= EndIndex; i++){
-@@ -302,7 +302,7 @@
-
-
-
-- private void checkOuterPoints(int nXPos, int nWidth, int nYPos, int nHeight, boolean bIsDBField){
-+ public void checkOuterPoints(int nXPos, int nWidth, int nYPos, int nHeight, boolean bIsDBField){
- int nColRightX;
- if (icurArrangement == FormWizard.SOTOPJUSTIFIED){
- if (bIsDBField){
-@@ -369,14 +369,14 @@
- }
-
-
-- private void initializeControlColumn(int LastIndex){
-+ public void initializeControlColumn(int LastIndex){
- bIsFirstRun = true;
- StartA = LastIndex + 1;
- a = 0;
- }
-
-
-- private void resetPosSizes(int LastIndex){
-+ public void resetPosSizes(int LastIndex){
- int nYRefPos = nYDBPos;
- switch (icurArrangement){
- case FormWizard.SOCOLUMNARLEFT:
-@@ -435,7 +435,7 @@
-
-
-
-- private void repositionColumnarLeftControls(int LastIndex ){
-+ public void repositionColumnarLeftControls(int LastIndex ){
- bIsFirstRun = true;
- for (int i = StartA; i <= LastIndex; i++){
- if (i == StartA){
-@@ -449,7 +449,7 @@
- }
-
-
-- private void resetDBShape(Shape _curDBControl, int iXPos){
-+ public void resetDBShape(Shape _curDBControl, int iXPos){
- int nYDBPos = _curDBControl.getPosition().Y;
- nDBWidth = _curDBControl.getSize().Width;
- nDBHeight = _curDBControl.getSize().Height;
-@@ -457,7 +457,7 @@
- }
-
-
-- private void initializePosSizes(){
-+ public void initializePosSizes(){
- this.nMaxDBYPos = 0;
- nXTCPos = cXOffset;
- nTCWidth = 2000;
-@@ -477,7 +477,7 @@
- }
-
-
-- private void insertLabel(int i, int _iAlign){
-+ public void insertLabel(int i, int _iAlign){
- try {
- if (bControlsareCreated){
- LabelControlList[i].setPosition(new Point(nXTCPos, nYTCPos));
-@@ -527,7 +527,7 @@
- }}
-
-
-- private void insertDBControl(int i ){
-+ public void insertDBControl(int i ){
- try {
- Point aPoint = new Point(nXDBPos, nYDBPos);
- if (bControlsareCreated)
-@@ -557,7 +557,7 @@
- }}
-
-
-- private int assignFieldLength(int _fieldlength){
-+ public int assignFieldLength(int _fieldlength){
- if (_fieldlength >= 65535)
- return -1;
- else
---- wizards/com/sun/star/wizards/form/FormDocument.java.gcj~ 2005-05-20 15:42:15.000000000 +0000
-+++ wizards/com/sun/star/wizards/form/FormDocument.java 2005-08-28 18:54:10.000000000 +0000
-@@ -90,16 +90,16 @@
- public TextStyleHandler oTextStyleHandler;
- public XPropertySet xPropPageStyle;
- public final int SOSYMBOLMARGIN = 2000;
-- private final int SOFORMGAP = 1000;
-+ public final int SOFORMGAP = 1000;
- public Vector oControlForms = new Vector();
- public CommandMetaData oMainFormDBMetaData;
- public CommandMetaData oSubFormDBMetaData;
-- private boolean bhasSubForm;
-- private UIControlArranger curUIControlArranger;
-+ public boolean bhasSubForm;
-+ public UIControlArranger curUIControlArranger;
- public StyleApplier curStyleApplier;
- public String[][] LinkFieldNames;
- public XModel xModel;
-- private String sMsgEndAutopilot;
-+ public String sMsgEndAutopilot;
- int MainFormStandardHeight;
- int nPageWidth;
- int nPageHeight;
-@@ -144,11 +144,11 @@
- this.curStyleApplier = _curStyleApplier;
- }
-
-- private String getDataSourceName(){
-+ public String getDataSourceName(){
- return this.oMainFormDBMetaData.DataSourceName;
- }
-
-- private void adjustPageStyle(){
-+ public void adjustPageStyle(){
- try {
- int nMargin;
- totfieldcount = getTotFieldCount();
-@@ -206,14 +206,14 @@
- }
-
-
-- private int getTotFieldCount(){
-+ public int getTotFieldCount(){
- nMainFormFieldCount = oMainFormDBMetaData.FieldNames.length;
- totfieldcount = nMainFormFieldCount + oSubFormDBMetaData.FieldNames.length;
- return totfieldcount;
- }
-
-
-- private Size getMainFormSize(int _curArrangement){
-+ public Size getMainFormSize(int _curArrangement){
- int nMainFormHeight = nFormHeight;
- if (bhasSubForm){
- if (_curArrangement == FormWizard.SOGRID)
-@@ -229,7 +229,7 @@
- }
-
-
-- private Size getSubFormSize(){
-+ public Size getSubFormSize(){
- // int nSubFormHeight = (int) ((double)nFormHeight/2) - SOFORMGAP;
- // int nSubFormFieldCount = this.oSubFormDBMetaData.FieldNames.length;
- // int totfieldcount = oMainFormDBMetaData.FieldNames.length + nSubFormFieldCount;
-@@ -238,14 +238,14 @@
- return aSubFormSize;
- }
-
-- private Point getSubFormPoint(){
-+ public Point getSubFormPoint(){
- ControlForm curMainControlForm = ((ControlForm) oControlForms.get(0));
- return new Point(curMainControlForm.aStartPoint.X,
- (curMainControlForm.aStartPoint.Y + curMainControlForm.getFormSize().Height + SOFORMGAP));
- }
-
-
-- private void adjustMainFormSize(){
-+ public void adjustMainFormSize(){
- ControlForm oMainControlForm = (ControlForm) oControlForms.get(0);
- oMainControlForm.setFormSize(getMainFormSize(oMainControlForm.curArrangement));
- if (oMainControlForm.curArrangement == FormWizard.SOGRID)
-@@ -258,7 +258,7 @@
- }
-
-
-- private void adjustSubFormPosSize(){
-+ public void adjustSubFormPosSize(){
- ControlForm oMainControlForm = (ControlForm) oControlForms.get(0);
- ControlForm oSubControlForm = (ControlForm) oControlForms.get(1);
- oSubControlForm.setFormSize(new Size(nFormWidth, (int)nFormHeight - oMainControlForm.getFormSize().Height));
-@@ -336,7 +336,7 @@
- FormDocument oFormDocument;
- String Name;
- Point aStartPoint;
-- private Size aFormSize;
-+ public Size aFormSize;
- CommandMetaData oDBMetaData;
- XPropertySet xPropertySet;
-
-@@ -408,7 +408,7 @@
- return aFormSize;
- }
-
-- private Size getAvailableFormSize(){
-+ public Size getAvailableFormSize(){
- if (this.Name.equals(SOMAINFORM))
- setFormSize(getMainFormSize(curArrangement));
- else
-@@ -422,13 +422,13 @@
- }
-
-
-- private void setStartPoint(Point _aPoint){
-+ public void setStartPoint(Point _aPoint){
- aStartPoint = _aPoint;
- if (oFormController != null)
- oFormController.setStartPoint(_aPoint);
- }
-
-- private int getActualFormHeight(){
-+ public int getActualFormHeight(){
- if (curArrangement == FormWizard.SOGRID)
- return oGridControl.xShape.getSize().Height;
- else
-@@ -436,7 +436,7 @@
- }
-
-
-- private int getEntryPointY(){
-+ public int getEntryPointY(){
- if (curArrangement == FormWizard.SOGRID)
- return oGridControl.xShape.getPosition().Y;
- else
-@@ -444,7 +444,7 @@
- }
-
-
-- private void setFormProperties(PropertyValue[] _aPropertySetList, CommandMetaData _oDBMetaData){
-+ public void setFormProperties(PropertyValue[] _aPropertySetList, CommandMetaData _oDBMetaData){
- try {
- xPropertySet.setPropertyValue("DataSourceName", getDataSourceName());
- xPropertySet.setPropertyValue("Command", _oDBMetaData.getCommandName());
-@@ -471,7 +471,7 @@
- return curArrangement;
- }
-
-- private void insertGridControl(){
-+ public void insertGridControl(){
- curArrangement = FormWizard.SOGRID;
- if (Name.equals(SOMAINFORM))
- oGridControl = new GridControl(xMSF,Name + "_Grid", oFormHandler, xFormContainer, oDBMetaData.DBFieldColumns, aStartPoint, getMainFormSize(FormWizard.SOGRID));
---- wizards/com/sun/star/wizards/form/FormWizard.java.gcj~ 2005-08-28 16:44:43.000000000 +0000
-+++ wizards/com/sun/star/wizards/form/FormWizard.java 2005-08-28 18:54:10.000000000 +0000
-@@ -120,7 +120,7 @@
- }
-
-
-- protected void enterStep(int nOldStep, int nNewStep) {
-+ public void enterStep(int nOldStep, int nNewStep) {
- try {
- if ((nOldStep < SOCONTROLPAGE) && (nNewStep >= SOCONTROLPAGE)){
- curFormDocument.initialize(curDBCommandFieldSelection.isModified(), curFormConfiguration.hasSubForm(), curSubFormFieldSelection.isModified());
-@@ -160,7 +160,7 @@
- }}
-
-
-- protected void leaveStep(int nOldStep, int nNewStep){
-+ public void leaveStep(int nOldStep, int nNewStep){
- switch (nOldStep){
- case SOMAINPAGE:
- curFormDocument.oMainFormDBMetaData.setFieldNames(curDBCommandFieldSelection.getSelectedFieldNames());
-@@ -333,7 +333,7 @@
-
-
- public class FieldSelectionListener implements com.sun.star.wizards.ui.XFieldSelectionListener{
-- protected int ID;
-+ public int ID;
-
- public int getID(){
- return ID;
-@@ -376,7 +376,7 @@
- public void moveItemUp(String item){
- }
-
-- private boolean toggleSubFormSteps(){
-+ public boolean toggleSubFormSteps(){
- curSubFormFieldSelection.setModified(true);
- boolean benable = curSubFormFieldSelection.getSelectedFieldNames().length > 0;
- enablefromStep(SOFIELDLINKERPAGE, benable);
-@@ -385,7 +385,7 @@
- return benable;
- }
-
-- private void toggleMainFormSteps(){
-+ public void toggleMainFormSteps(){
- curDBCommandFieldSelection.setModified(true);
- boolean benable = curDBCommandFieldSelection.getSelectedFieldNames().length > 0;
- enablefromStep(SOSUBFORMPAGE, benable);
---- wizards/com/sun/star/wizards/form/StyleApplier.java.gcj~ 2005-02-21 13:57:25.000000000 +0000
-+++ wizards/com/sun/star/wizards/form/StyleApplier.java 2005-08-28 18:54:10.000000000 +0000
-@@ -180,7 +180,7 @@
- */
-
-
-- private void setStyles(){
-+ public void setStyles(){
- try {
- Object oRootNode = Configuration.getConfigurationRoot(xMSF, "org.openoffice.Office.FormWizard/FormWizard/Styles", false);
- XNameAccess xNameAccess = (XNameAccess) UnoRuntime.queryInterface(XNameAccess.class, oRootNode);
-@@ -197,7 +197,7 @@
- }}
-
-
-- private short getStyleIndex(){
-+ public short getStyleIndex(){
- try {
- short[] SelFields = (short[]) AnyConverter.toArray(Helper.getUnoPropertyValue(UnoDialog.getModel(lstStyles), "SelectedItems"));
- if (SelFields != null)
-@@ -287,7 +287,7 @@
- }
-
-
-- private int getStyleColor(String[] _sDataList, String _sHeader, String _sPropertyDescription){
-+ public int getStyleColor(String[] _sDataList, String _sHeader, String _sPropertyDescription){
- int iColor = -1;
- int index = JavaTools.FieldInList(_sDataList, _sHeader);
- if (index > -1){
-@@ -313,7 +313,7 @@
- }
-
-
-- private int[] getStyleColors(String _filename){
-+ public int[] getStyleColors(String _filename){
- String sFilePath = this.StylesPath + "/" + _filename;
- int[] oStylePropList = new int[6];
- String[] sData = FileAccess.getDataFromTextFile(xMSF, sFilePath);
-@@ -328,7 +328,7 @@
-
-
-
-- private void setDBControlColors(XPropertySet xPropertySet, int[] _iStyleColors){
-+ public void setDBControlColors(XPropertySet xPropertySet, int[] _iStyleColors){
- try {
- if (xPropertySet.getPropertySetInfo().hasPropertyByName("TextColor")){
- if (_iStyleColors[SODBTEXTCOLOR] > -1)
---- wizards/com/sun/star/wizards/form/UIControlArranger.java.gcj~ 2005-08-28 16:44:43.000000000 +0000
-+++ wizards/com/sun/star/wizards/form/UIControlArranger.java 2005-08-28 18:55:19.000000000 +0000
-@@ -142,7 +142,7 @@
- }
-
-
-- private class LayoutRenderer implements ImageList.ImageRenderer {
-+ public class LayoutRenderer implements ImageList.ImageRenderer {
- public Object[] getImageUrls(Object listitem) {
-
- int ResId = UIConsts.RID_IMG_FORM + (2 * ((Integer)listitem).intValue());
-@@ -194,14 +194,14 @@
- }}
-
-
-- private void enableAlignControlGroup(boolean _bEnableAlignControlGroup){
-+ public void enableAlignControlGroup(boolean _bEnableAlignControlGroup){
- Helper.setUnoPropertyValue(UnoDialog.getModel(flnLabelPlacement), "Enabled", new Boolean(_bEnableAlignControlGroup));
- Helper.setUnoPropertyValue(UnoDialog.getModel(optAlignLeft), "Enabled", new Boolean(_bEnableAlignControlGroup));
- Helper.setUnoPropertyValue(UnoDialog.getModel(optAlignRight), "Enabled", new Boolean(_bEnableAlignControlGroup));
- }
-
-
-- private class ArrangeImageList implements XItemListener{
-+ public class ArrangeImageList implements XItemListener{
- int formindex;
- ImageList ilLayouts = new ImageList();
-
---- wizards/com/sun/star/wizards/letter/CallWizard.java.gcj~ 2004-05-19 12:43:00.000000000 +0000
-+++ wizards/com/sun/star/wizards/letter/CallWizard.java 2005-08-28 18:54:10.000000000 +0000
-@@ -102,12 +102,12 @@
- /**
- * The service name, that must be used to get an instance of this service.
- */
-- private static final String __serviceName = "com.sun.star.wizards.letter.CallWizard";
-+ public static final String __serviceName = "com.sun.star.wizards.letter.CallWizard";
-
- /**
- * The service manager, that gives access to all registered services.
- */
-- private XMultiServiceFactory xmultiservicefactory;
-+ public XMultiServiceFactory xmultiservicefactory;
-
- /**
- * This method is a member of the interface for initializing an object directly
---- wizards/com/sun/star/wizards/letter/LetterWizardDialogImpl.java.gcj~ 2005-05-20 15:42:29.000000000 +0000
-+++ wizards/com/sun/star/wizards/letter/LetterWizardDialogImpl.java 2005-08-28 18:54:10.000000000 +0000
-@@ -66,7 +66,7 @@
- String sPath;
- boolean bEditTemplate;
- boolean bSaveSuccess = false;
-- private boolean filenameChanged = false;
-+ public boolean filenameChanged = false;
-
- LetterDocument.BusinessPaperObject BusCompanyLogo = null;
- LetterDocument.BusinessPaperObject BusCompanyAddress = null;
-@@ -645,19 +645,19 @@
- chkUseFooterItemChanged();
- }
-
-- private void setPossibleFooter(boolean bState) {
-+ public void setPossibleFooter(boolean bState) {
- setControlProperty("chkUseFooter", "Enabled", new Boolean(bState));
- chkUseFooterItemChanged();
- }
-
-- private void setPossibleAddressReceiver(boolean bState) {
-+ public void setPossibleAddressReceiver(boolean bState) {
- if (myLetterDoc.hasElement("Sender Address Repeated")) {
- setControlProperty("chkUseAddressReceiver", "Enabled", new Boolean(bState));
- chkUseAddressReceiverItemChanged();
- }
- }
-
-- private void setPossibleLogo(boolean bState) {
-+ public void setPossibleLogo(boolean bState) {
- if (myLetterDoc.hasElement("Company Logo")) {
- setControlProperty("chkUseLogo", "Enabled", new Boolean(bState));
- chkUseLogoItemChanged();
-@@ -722,7 +722,7 @@
- setControlProperty("lstGreeting", "Enabled", new Boolean(chkUseGreeting.getState() != 0));
- }
-
-- private void setDefaultForGreetingAndSalutation() {
-+ public void setDefaultForGreetingAndSalutation() {
- XTextComponent xTextComponent;
- xTextComponent = (XTextComponent) UnoRuntime.queryInterface(XTextComponent.class, lstSalutation);
- if (xTextComponent.getText().equals("")) {
-@@ -754,7 +754,7 @@
- }
- }
-
-- private int getOfficeLinguistic() {
-+ public int getOfficeLinguistic() {
- int oL = 0;
- String OfficeLinguistic = Configuration.getOfficeLinguistic(xMSF);
- for (int i = 0; i < Norms.length; i++){
-@@ -765,7 +765,7 @@
- return oL;
- }
-
-- private void setPossibleSenderData(boolean bState) {
-+ public void setPossibleSenderData(boolean bState) {
- setControlProperty("optSenderDefine", "Enabled", new Boolean(bState));
- setControlProperty("optSenderPlaceholder", "Enabled", new Boolean(bState));
- setControlProperty("lblSenderAddress", "Enabled", new Boolean(bState));
-@@ -782,17 +782,17 @@
- }
- }
-
-- private void enableSenderReceiver() {
-+ public void enableSenderReceiver() {
- XInterface BPaperItem = getRoadmapItemByID(RM_SENDERRECEIVER);
- Helper.setUnoPropertyValue(BPaperItem, "Enabled", Boolean.TRUE);
- }
-
-- private void disableSenderReceiver() {
-+ public void disableSenderReceiver() {
- XInterface BPaperItem = getRoadmapItemByID(RM_SENDERRECEIVER);
- Helper.setUnoPropertyValue(BPaperItem, "Enabled", Boolean.FALSE);
- }
-
-- private void enableBusinessPaper() {
-+ public void enableBusinessPaper() {
- XInterface BPaperItem = getRoadmapItemByID(RM_BUSINESSPAPER);
- Helper.setUnoPropertyValue(BPaperItem, "Enabled", Boolean.TRUE);
- chkPaperCompanyLogoItemChanged();
-@@ -801,7 +801,7 @@
- chkCompanyReceiverItemChanged();
- }
-
-- private void disableBusinessPaper() {
-+ public void disableBusinessPaper() {
- XInterface BPaperItem = getRoadmapItemByID(RM_BUSINESSPAPER);
- Helper.setUnoPropertyValue(BPaperItem, "Enabled", Boolean.FALSE);
- if (BusCompanyLogo != null) {
-@@ -899,7 +899,7 @@
- setControlProperty("lstLetterNorm", "StringItemList", LanguageLabels);
- }
-
-- private CGLetter getCurrentLetter() {
-+ public CGLetter getCurrentLetter() {
- switch (myConfig.cp_LetterType) {
- case 0 : return myConfig.cp_BusinessLetter;
- case 1 : return myConfig.cp_PrivateOfficialLetter;
-@@ -908,7 +908,7 @@
- }
- }
-
-- private void initializePaths() {
-+ public void initializePaths() {
- try {
- sTemplatePath = FileAccess.getOfficePath(xMSF, "Template", "share");
- sUserTemplatePath = FileAccess.getOfficePath(xMSF, "Template", "user");
-@@ -1003,7 +1003,7 @@
- setCurrentRoadmapItemID((short) 1);
- }
-
-- private class myPathSelectionListener implements XPathSelectionListener {
-+ public class myPathSelectionListener implements XPathSelectionListener {
- public void validatePath() {
- if (myPathSelection.usedPathPicker) {
- filenameChanged = true;
-@@ -1084,7 +1084,7 @@
-
- }
-
-- private void updateUI() {
-+ public void updateUI() {
- UnoDataAware.updateUI(mainDA);
- UnoDataAware.updateUI(letterDA);
- UnoDataAware.updateUI(businessDA);
---- wizards/com/sun/star/wizards/letter/LetterWizardDialogResources.java.gcj~ 2005-05-03 14:23:44.000000000 +0000
-+++ wizards/com/sun/star/wizards/letter/LetterWizardDialogResources.java 2005-08-28 18:54:10.000000000 +0000
-@@ -14,10 +14,10 @@
- final static int RID_LETTERWIZARDLANGUAGE_START = 3110;
- final static int RID_RID_COMMON_START = 500;
-
-- protected String[] RoadmapLabels = new String[7];
-- protected String[] SalutationLabels = new String[3];
-- protected String[] GreetingLabels = new String[3];
-- protected String[] LanguageLabels = new String[16];
-+ public String[] RoadmapLabels = new String[7];
-+ public String[] SalutationLabels = new String[3];
-+ public String[] GreetingLabels = new String[3];
-+ public String[] LanguageLabels = new String[16];
-
- String resOverwriteWarning;
- String resTemplateDescription;
-@@ -149,30 +149,30 @@
- loadCommonResources();
- }
-
-- private void loadCommonResources() {
-+ public void loadCommonResources() {
- resOverwriteWarning = getResText(RID_RID_COMMON_START + 19);
- resTemplateDescription = getResText(RID_RID_COMMON_START + 20);
- }
-
-- private void loadRoadmapResources() {
-+ public void loadRoadmapResources() {
- for (int i = 1; i < 7; i++) {
- RoadmapLabels[i] = getResText(RID_LETTERWIZARDROADMAP_START + i);
- }
- }
-
-- private void loadSalutationResources() {
-+ public void loadSalutationResources() {
- for (int i = 1; i < 4; i++) {
- SalutationLabels[i-1] = getResText(RID_LETTERWIZARDSALUTATION_START + i);
- }
- }
-
-- private void loadGreetingResources() {
-+ public void loadGreetingResources() {
- for (int i = 1; i < 4; i++) {
- GreetingLabels[i-1] = getResText(RID_LETTERWIZARDGREETING_START + i);
- }
- }
-
-- private void loadLanguageResources() {
-+ public void loadLanguageResources() {
- for (int i = 1; i < 17; i++) {
- LanguageLabels[i-1] = getResText(RID_LETTERWIZARDLANGUAGE_START + i);
- }
---- wizards/com/sun/star/wizards/query/CallQueryWizard.java.gcj~ 2004-05-19 12:44:48.000000000 +0000
-+++ wizards/com/sun/star/wizards/query/CallQueryWizard.java 2005-08-28 18:54:10.000000000 +0000
-@@ -132,11 +132,11 @@
-
- /** The service name, that must be used to get an instance of this service.
- */
-- private static final String __serviceName = "com.sun.star.wizards.query.CallQueryWizard";
-+ public static final String __serviceName = "com.sun.star.wizards.query.CallQueryWizard";
-
- /** The service manager, that gives access to all registered services.
- */
-- private com.sun.star.lang.XMultiServiceFactory xmultiservicefactory;
-+ public com.sun.star.lang.XMultiServiceFactory xmultiservicefactory;
-
- /** This method is a member of the interface for initializing an object
- * directly after its creation.
---- wizards/com/sun/star/wizards/query/Finalizer.java.gcj~ 2005-03-18 16:19:09.000000000 +0000
-+++ wizards/com/sun/star/wizards/query/Finalizer.java 2005-08-28 18:54:10.000000000 +0000
-@@ -116,7 +116,7 @@
- /* TODO: The title textbox always has to be updated when
- a new Table has been selected if it is clear that the user has not made any input meanwhile
- * */
-- protected String initialize() {
-+ public String initialize() {
- try {
- String sCurQueryName = AnyConverter.toString(Helper.getUnoPropertyValue(UnoDialog.getModel(txtTitle), "Text"));
- if (sCurQueryName != null) {
-@@ -136,7 +136,7 @@
- }
- }
-
-- private String getTitle() {
-+ public String getTitle() {
- return (String) Helper.getUnoPropertyValue(UnoDialog.getModel(txtTitle), "Text");
- }
-
---- wizards/com/sun/star/wizards/query/QuerySummary.java.gcj~ 2005-02-21 13:58:09.000000000 +0000
-+++ wizards/com/sun/star/wizards/query/QuerySummary.java 2005-08-28 18:54:10.000000000 +0000
-@@ -67,15 +67,15 @@
- import com.sun.star.beans.*;
-
- public class QuerySummary extends QueryMetaData {
-- final protected int RID_QUERY = 2300;
-- final protected int RID_REPORT = 2400;
-+ final public int RID_QUERY = 2300;
-+ final public int RID_REPORT = 2400;
- String sSummary;
- Resource oResource;
- XMultiServiceFactory xMSF;
-- private String sSeparator;
-- private String sReturnChar;
-- private String sAnd;
-- private String sOr;
-+ public String sSeparator;
-+ public String sReturnChar;
-+ public String sAnd;
-+ public String sOr;
-
-
- public QuerySummary(XMultiServiceFactory _xMSF, Resource _oResource) {
-@@ -129,7 +129,7 @@
- }
-
-
-- private String combineFilterNameFraction(PropertyValue[][] _filterconditions, int _InitResID, int _AlternativeResID) {
-+ public String combineFilterNameFraction(PropertyValue[][] _filterconditions, int _InitResID, int _AlternativeResID) {
- if (_filterconditions != null) {
- if (_filterconditions.length > 0) {
- String sconditions = "";
-@@ -155,7 +155,7 @@
- return oResource.getResText(_AlternativeResID);
- }
-
-- private String combineFieldNameFraction() {
-+ public String combineFieldNameFraction() {
- String CurString = "";
- String sReturn = oResource.getResText(RID_QUERY + 50);
- int FieldCount = FieldNames.length;
-@@ -177,7 +177,7 @@
- }
-
-
-- private String appendClauseSeparator(String _basestring, String _suffix, int _i, int _fieldcount) {
-+ public String appendClauseSeparator(String _basestring, String _suffix, int _i, int _fieldcount) {
- if (_i < _fieldcount - 1)
- _basestring += _suffix;
- return _basestring;
-@@ -194,7 +194,7 @@
- return oResource.getResText(_AlternativeResID);
- }
-
-- protected String ArrayFieldsToString(int _InitResID, String[] _FieldNames) {
-+ public String ArrayFieldsToString(int _InitResID, String[] _FieldNames) {
- String sReturn = oResource.getResText(_InitResID);
- int FieldCount = _FieldNames.length;
- for (int i = 0; i < FieldCount; i++) {
---- wizards/com/sun/star/wizards/query/QueryWizard.java.gcj~ 2005-03-08 15:40:00.000000000 +0000
-+++ wizards/com/sun/star/wizards/query/QueryWizard.java 2005-08-28 18:54:10.000000000 +0000
-@@ -266,7 +266,7 @@
- }
-
-
-- protected void enterStep(int nOldStep, int nNewStep) {
-+ public void enterStep(int nOldStep, int nNewStep) {
- try {
- if (nOldStep <= SOGROUPSELECTIONPAGE && nNewStep > SOGROUPSELECTIONPAGE) {
- if (CurDBMetaData.xDBMetaData.supportsGroupBy()) {
-@@ -306,7 +306,7 @@
- }}
-
-
-- protected void leaveStep(int nOldStep, int nNewStep) {
-+ public void leaveStep(int nOldStep, int nNewStep) {
- switch (nOldStep) {
- case SOFIELDSELECTIONPAGE :
- CurDBMetaData.setFieldNames(CurDBCommandFieldSelection.getSelectedFieldNames());
-@@ -355,14 +355,14 @@
- }
- }
-
-- private void searchForOutdatedFields() {
-+ public void searchForOutdatedFields() {
- String[] GroupCompNames;
- CurDBMetaData.SortFieldNames = JavaTools.removeOutdatedFields(CurDBMetaData.SortFieldNames, CurDBMetaData.FieldNames);
- CurDBMetaData.FilterConditions = JavaTools.removeOutdatedFields(CurDBMetaData.FilterConditions, CurDBMetaData.FieldNames);
- CurDBMetaData.AggregateFieldNames = JavaTools.removeOutdatedFields(CurDBMetaData.AggregateFieldNames, CurDBMetaData.FieldNames);
- }
-
-- private void enableWizardSteps(String[] NewItems) {
-+ public void enableWizardSteps(String[] NewItems) {
- boolean bEnabled = NewItems.length > 0;
- setControlProperty("btnWizardNext", "Enabled", new Boolean(bEnabled));
- setControlProperty("btnWizardFinish", "Enabled", new Boolean(bEnabled));
-@@ -371,7 +371,7 @@
-
-
- public class FieldSelectionListener implements com.sun.star.wizards.ui.XFieldSelectionListener {
-- protected int ID;
-+ public int ID;
-
- public int getID() {
- return ID;
---- wizards/com/sun/star/wizards/report/CallReportWizard.java.gcj~ 2005-04-06 11:38:36.000000000 +0000
-+++ wizards/com/sun/star/wizards/report/CallReportWizard.java 2005-08-28 18:54:10.000000000 +0000
-@@ -180,11 +180,11 @@
-
- /** The service name, that must be used to get an instance of this service.
- */
-- private static final String __serviceName = "com.sun.star.wizards.report.CallReportWizard";
-+ public static final String __serviceName = "com.sun.star.wizards.report.CallReportWizard";
-
- /** The service manager, that gives access to all registered services.
- */
-- private com.sun.star.lang.XMultiServiceFactory xmultiservicefactory;
-+ public com.sun.star.lang.XMultiServiceFactory xmultiservicefactory;
-
- /** This method is a member of the interface for initializing an object
- * directly after its creation.
---- wizards/com/sun/star/wizards/report/DBColumn.java.gcj~ 2005-03-18 16:19:53.000000000 +0000
-+++ wizards/com/sun/star/wizards/report/DBColumn.java 2005-08-28 18:54:10.000000000 +0000
-@@ -80,11 +80,11 @@
- public int ValColumn = 1;
- public int ValRow = 0;
- public FieldColumn CurDBField;
-- private XTextTable xTextTable;
-- private XTableColumns xTableColumns;
-- private XCellRange xCellRange;
-+ public XTextTable xTextTable;
-+ public XTableColumns xTableColumns;
-+ public XCellRange xCellRange;
- public XNamed xTableName;
-- private boolean bIsGroupColumn;
-+ public boolean bIsGroupColumn;
- TextDocument oTextDocument;
- RecordParser CurDBMetaData;
- RecordTable CurRecordTable;
-@@ -107,7 +107,7 @@
-
-
-
-- private void initializeRecordTableMembers(RecordTable _CurRecordTable, TextTableHandler _oTextTableHandler, RecordParser _CurDBMetaData, int i, boolean _bForce) throws Exception{
-+ public void initializeRecordTableMembers(RecordTable _CurRecordTable, TextTableHandler _oTextTableHandler, RecordParser _CurDBMetaData, int i, boolean _bForce) throws Exception{
- this.oTextTableHandler = _oTextTableHandler;
- this.CurDBMetaData = _CurDBMetaData;
- this.CurRecordTable = _CurRecordTable;
-@@ -125,7 +125,7 @@
- }
- }
-
-- private boolean assignCells(int _nColumn, boolean _bforce){
-+ public boolean assignCells(int _nColumn, boolean _bforce){
- try {
- XCell xCell = CurRecordTable.xCellRange.getCellByPosition(_nColumn,0);
- XTextRange xTextCell = (XTextRange) UnoRuntime.queryInterface(XTextRange.class, xCell);
-@@ -209,7 +209,7 @@
- }
-
-
-- private void getTableColumns(String TableName){
-+ public void getTableColumns(String TableName){
- try {
- XNameAccess xAllTextTables = oTextTableHandler.xTextTablesSupplier.getTextTables();
- if (xAllTextTables.hasByName(TableName) == true){
-@@ -261,7 +261,7 @@
- bAlignLeft = true;
- }
-
-- private boolean checkforLeftAlignment(){
-+ public boolean checkforLeftAlignment(){
- bAlignLeft = ((CurDBField.bIsNumberFormat) && (ValColumn == xTableColumns.getCount()-1));
- return bAlignLeft;
- }
-@@ -371,7 +371,7 @@
- exception.printStackTrace(System.out);
- }}
-
-- private boolean isNameCell(XTextCursor xCellCursor, String CurFieldName, String CompString){
-+ public boolean isNameCell(XTextCursor xCellCursor, String CurFieldName, String CompString){
- try{
- xCellCursor.gotoStart(false);
- XTextRange xTextRange = xCellCursor.getEnd();
---- wizards/com/sun/star/wizards/report/Dataimport.java.gcj~ 2005-03-23 09:53:01.000000000 +0000
-+++ wizards/com/sun/star/wizards/report/Dataimport.java 2005-08-28 18:54:10.000000000 +0000
-@@ -197,7 +197,7 @@
- }
-
-
-- private void addTextSectionCopies(){
-+ public void addTextSectionCopies(){
- CurReportDocument.setLayoutSectionsVisible(false);
- XTextCursor xTextCursor = ReportDocument.createTextCursor(CurReportDocument.xTextDocument.getText());
- xTextCursor.gotoStart(false);
-@@ -212,7 +212,7 @@
- }
-
-
-- private void renameTableofLastSection(String _snewname){
-+ public void renameTableofLastSection(String _snewname){
- XTextTable xTextTable = CurReportDocument.oTextTableHandler.getlastTextTable();
- XNamed xNamedTable = (XNamed) UnoRuntime.queryInterface(XNamed.class, xTextTable);
- xNamedTable.setName(_snewname);
---- wizards/com/sun/star/wizards/report/Finalizer.java.gcj~ 2005-02-21 13:59:05.000000000 +0000
-+++ wizards/com/sun/star/wizards/report/Finalizer.java 2005-08-28 18:54:10.000000000 +0000
-@@ -170,7 +170,7 @@
- }
-
-
--// private boolean fileexists(XMultiServiceFactory _xMSF, String _spath){
-+// public boolean fileexists(XMultiServiceFactory _xMSF, String _spath){
- // try {
- // XInterface xUcbInterface = (XInterface) _xMSF.createInstance("com.sun.star.ucb.SimpleFileAccess");
- // XSimpleFileAccess xSimpleFileAccess = (XSimpleFileAccess) com.sun.star.uno.UnoRuntime.queryInterface(XSimpleFileAccess.class, xUcbInterface);
---- wizards/com/sun/star/wizards/report/GroupFieldHandler.java.gcj~ 2005-02-21 13:59:18.000000000 +0000
-+++ wizards/com/sun/star/wizards/report/GroupFieldHandler.java 2005-08-28 18:54:10.000000000 +0000
-@@ -128,7 +128,7 @@
- }
-
-
-- protected class FieldSelectionListener implements com.sun.star.wizards.ui.XFieldSelectionListener{
-+ public class FieldSelectionListener implements com.sun.star.wizards.ui.XFieldSelectionListener{
-
- public void moveItemDown(String Selitem){
- CurReportDocument.refreshGroupFields(xSelFieldsListBox.getItems());
---- wizards/com/sun/star/wizards/report/RecordTable.java.gcj~ 2005-03-18 16:20:39.000000000 +0000
-+++ wizards/com/sun/star/wizards/report/RecordTable.java 2005-08-28 18:54:10.000000000 +0000
-@@ -58,7 +58,7 @@
- public XNamed xTableName;
- public XCellRange xCellRange;
- public XTextTable xTextTable;
-- private TextTableHandler oTextTableHandler;
-+ public TextTableHandler oTextTableHandler;
- public XTableColumns xTableColumns;
- public XTableRows xTableRows;
-
---- wizards/com/sun/star/wizards/report/ReportDocument.java.gcj~ 2005-03-24 09:54:39.000000000 +0000
-+++ wizards/com/sun/star/wizards/report/ReportDocument.java 2005-08-28 18:54:10.000000000 +0000
-@@ -84,20 +84,20 @@
-
-
- class ReportDocument extends com.sun.star.wizards.text.TextDocument{
-- private Object ReportPageStyle;
-- private Object FirstPageStyle;
-- private int PageWidth;
-- private Rectangle PosSize;
-- private String ReportFolderName;
-+ public Object ReportPageStyle;
-+ public Object FirstPageStyle;
-+ public int PageWidth;
-+ public Rectangle PosSize;
-+ public String ReportFolderName;
- public Vector DBColumnsVector;
-- private RecordTable CurRecordTable;
-+ public RecordTable CurRecordTable;
- public RecordParser CurDBMetaData;
-- private String sMsgTableNotExisting;
-- private String sMsgCommonReportError;
-- private String ContentTemplatePath;
-- private String LayoutTemplatePath;
-- private String sMsgInvalidTextField;
-- private String sMsgEndAutopilot;
-+ public String sMsgTableNotExisting;
-+ public String sMsgCommonReportError;
-+ public String ContentTemplatePath;
-+ public String LayoutTemplatePath;
-+ public String sMsgInvalidTextField;
-+ public String sMsgEndAutopilot;
- public boolean bIsCurLandscape;
- public TextTableHandler oTextTableHandler;
- public TextSectionHandler oTextSectionHandler;
---- wizards/com/sun/star/wizards/report/ReportLayouter.java.gcj~ 2005-03-24 09:55:07.000000000 +0000
-+++ wizards/com/sun/star/wizards/report/ReportLayouter.java 2005-08-28 18:54:10.000000000 +0000
-@@ -90,7 +90,7 @@
- ReportDocument CurReportDocument;
- public String[][] LayoutFiles;
- public String[][] ContentFiles;
-- private Desktop.OfficePathRetriever curofficepath;
-+ public Desktop.OfficePathRetriever curofficepath;
- Object imgOrientation;
-
- public ReportLayouter(ReportDocument _CurReportDocument, UnoDialog _CurUnoDialog) {
---- wizards/com/sun/star/wizards/report/ReportWizard.java.gcj~ 2005-04-06 12:11:14.000000000 +0000
-+++ wizards/com/sun/star/wizards/report/ReportWizard.java 2005-08-28 18:54:10.000000000 +0000
-@@ -147,7 +147,7 @@
- }
-
-
-- protected void enterStep(int nOldStep, int nNewStep){
-+ public void enterStep(int nOldStep, int nNewStep){
- if ((nOldStep >= SOTEMPLATEPAGE) && (nNewStep < SOTEMPLATEPAGE)){
- CurReportDocument.oTextSectionHandler.removeTextSectionbyName("RecordSection");
- CurReportDocument.oTextTableHandler.removeTextTablebyName("Tbl_RecordSection");
-@@ -177,7 +177,7 @@
- }
- }
-
-- protected void leaveStep(int nOldStep, int nNewStep){
-+ public void leaveStep(int nOldStep, int nNewStep){
-
- switch (nOldStep){
- case SOMAINPAGE:
-@@ -217,7 +217,7 @@
- }
-
-
-- private boolean executeQuery(){
-+ public boolean executeQuery(){
- boolean bQueryCreated = false;
- if (this.CurDBCommandFieldSelection.getSelectedCommandType() == CommandType.TABLE)
- bQueryCreated = CurDBMetaData.oSQLQueryComposer.setQueryCommand(sMsgWizardName, this.xWindow, false, false);
-@@ -454,7 +454,7 @@
-
-
-
-- private void enableWizardSteps(String[] NewItems){
-+ public void enableWizardSteps(String[] NewItems){
- boolean bEnabled = NewItems.length > 0;
- setControlProperty("btnWizardNext", "Enabled", new Boolean(bEnabled));
- setControlProperty("btnWizardFinish", "Enabled", new Boolean(bEnabled));
-@@ -486,14 +486,14 @@
- }
-
-
-- private void toggleSortingPage(){
-+ public void toggleSortingPage(){
- int nCommandType = this.CurDBCommandFieldSelection.getSelectedCommandType();
- super.setStepEnabled(SOSORTPAGE, (nCommandType == CommandType.TABLE));
- }
-
-
- public class FieldSelectionListener implements com.sun.star.wizards.ui.XFieldSelectionListener{
-- protected int ID;
-+ public int ID;
-
- public int getID(){
- return ID;
---- wizards/com/sun/star/wizards/table/CGCategory.java.gcj~ 2005-02-21 14:00:16.000000000 +0000
-+++ wizards/com/sun/star/wizards/table/CGCategory.java 2005-08-28 18:54:10.000000000 +0000
-@@ -83,8 +83,8 @@
-
- public String Name;
- public int Index;
-- private String[] Tables;
-- private final String CGROOTPATH = "/org.openoffice.Office.TableWizard/TableWizard/";
-+ public String[] Tables;
-+ public final String CGROOTPATH = "/org.openoffice.Office.TableWizard/TableWizard/";
- XMultiServiceFactory xMSF;
- XNameAccess xNameAccessTablesNode;
- XNameAccess xNameAccessCurBusinessNode;
---- wizards/com/sun/star/wizards/table/CGTable.java.gcj~ 2005-02-21 14:00:31.000000000 +0000
-+++ wizards/com/sun/star/wizards/table/CGTable.java 2005-08-28 18:54:10.000000000 +0000
-@@ -78,8 +78,8 @@
- XNameAccess xNameAccessTableNode;
- public String Index;
- public String Name;
-- private Object oconfigView;
-- private final String CGROOTPATH = "/org.openoffice.Office.TableWizard/TableWizard/";
-+ public Object oconfigView;
-+ public final String CGROOTPATH = "/org.openoffice.Office.TableWizard/TableWizard/";
-
-
- public CGTable(XMultiServiceFactory _xMSF){
---- wizards/com/sun/star/wizards/table/CallTableWizard.java.gcj~ 2004-10-27 13:37:37.000000000 +0000
-+++ wizards/com/sun/star/wizards/table/CallTableWizard.java 2005-08-28 18:54:10.000000000 +0000
-@@ -132,11 +132,11 @@
-
- /** The service name, that must be used to get an instance of this service.
- */
-- private static final String __serviceName = "com.sun.star.wizards.table.CallTableWizard";
-+ public static final String __serviceName = "com.sun.star.wizards.table.CallTableWizard";
-
- /** The service manager, that gives access to all registered services.
- */
-- private com.sun.star.lang.XMultiServiceFactory xmultiservicefactory;
-+ public com.sun.star.lang.XMultiServiceFactory xmultiservicefactory;
-
- /** This method is a member of the interface for initializing an object
- * directly after its creation.
---- wizards/com/sun/star/wizards/table/FieldDescription.java.gcj~ 2005-02-21 14:00:45.000000000 +0000
-+++ wizards/com/sun/star/wizards/table/FieldDescription.java 2005-08-28 18:54:10.000000000 +0000
-@@ -77,18 +77,18 @@
-
- public class FieldDescription{
- int category;
-- private String tablename = "";
-+ public String tablename = "";
- // String fieldname;
-- private String keyname;
-- private XNameAccess xNameAccessTableNode;
-- private XPropertySet xPropertySet;
-- private Vector aPropertyValues;
-+ public String keyname;
-+ public XNameAccess xNameAccessTableNode;
-+ public XPropertySet xPropertySet;
-+ public Vector aPropertyValues;
- // PropertyValue[] aPropertyValues;
-- private Integer Type;
-- private Integer Scale;
-- private Integer Precision;
-- private Boolean DefaultValue;
-- private String Name;
-+ public Integer Type;
-+ public Integer Scale;
-+ public Integer Precision;
-+ public Boolean DefaultValue;
-+ public String Name;
-
- public FieldDescription(ScenarioSelector _curscenarioselector, String _fieldname, String _keyname){
- category = _curscenarioselector.getCategory();
-@@ -135,7 +135,7 @@
- }
-
-
-- private boolean propertyexists(String _propertyname){
-+ public boolean propertyexists(String _propertyname){
- boolean bexists = false;
- try {
- if (xPropertySet.getPropertySetInfo().hasPropertyByName(_propertyname)){
---- wizards/com/sun/star/wizards/table/FieldFormatter.java.gcj~ 2005-04-06 10:19:07.000000000 +0000
-+++ wizards/com/sun/star/wizards/table/FieldFormatter.java 2005-08-28 18:54:10.000000000 +0000
-@@ -324,7 +324,7 @@
- return false;
- }
-
-- private void updateColumnDescriptor(String _ColumnName, XPropertySet _xColumn){
-+ public void updateColumnDescriptor(String _ColumnName, XPropertySet _xColumn){
- updateColumnofColumnDescriptor();
- XPropertySet xNewPropertySet = curTableDescriptor.clonePropertySet(_ColumnName, _xColumn);
- if (xNewPropertySet != null)
---- wizards/com/sun/star/wizards/table/PrimaryKeyHandler.java.gcj~ 2005-04-06 10:19:21.000000000 +0000
-+++ wizards/com/sun/star/wizards/table/PrimaryKeyHandler.java 2005-08-28 18:54:10.000000000 +0000
-@@ -188,7 +188,7 @@
- }
-
-
-- private boolean isAutoPrimeKeyAutoIncrementationsupported(){
-+ public boolean isAutoPrimeKeyAutoIncrementationsupported(){
- TypeInspector.TypeInfo aAutoPrimeTypeInfo;
- aAutoPrimeTypeInfo = curTableDescriptor.oTypeInspector.findAutomaticPrimaryKeyType();
- return aAutoPrimeTypeInfo.bisAutoIncrementable;
-@@ -241,7 +241,7 @@
- }
-
-
-- private boolean isAutoIncrementatable(String _fieldname){
-+ public boolean isAutoIncrementatable(String _fieldname){
- boolean bisAutoIncrementable = false;
- try {
- XPropertySet xColPropertySet = curTableDescriptor.getByName(_fieldname);
-@@ -287,7 +287,7 @@
- }}
-
-
-- private void toggleAutomaticAutoValueCheckBox(){
-+ public void toggleAutomaticAutoValueCheckBox(){
- try {
- boolean bisAutomaticMode = AnyConverter.toBoolean(Helper.getUnoPropertyValue(UnoDialog.getModel(optAddAutomatically), "Enabled"));
- boolean bdoenable = bAutoPrimaryKeysupportsAutoIncrmentation && optAddAutomatically.getState() && bisAutomaticMode;
-@@ -296,7 +296,7 @@
- e.printStackTrace(System.out);
- }}
-
-- private void toggleSinglePrimeKeyFields(boolean _bdoenable){
-+ public void toggleSinglePrimeKeyFields(boolean _bdoenable){
- Helper.setUnoPropertyValue(UnoDialog.getModel(lblPrimeFieldName), "Enabled", new Boolean(_bdoenable));
- Helper.setUnoPropertyValue(UnoDialog.getModel(lstSinglePrimeKey), "Enabled", new Boolean(_bdoenable));
- Helper.setUnoPropertyValue(UnoDialog.getModel(chkApplyAutoValueExisting), "Enabled", new Boolean(_bdoenable));
-@@ -305,7 +305,7 @@
- }
-
-
-- private void toggleSeveralPrimeKeyFields(){
-+ public void toggleSeveralPrimeKeyFields(){
- boolean bdoEnable = (this.optUseSeveral.getState());
- curPrimaryKeySelection.toggleListboxControls(new Boolean(bdoEnable));
- }
---- wizards/com/sun/star/wizards/table/ScenarioSelector.java.gcj~ 2005-02-21 14:01:44.000000000 +0000
-+++ wizards/com/sun/star/wizards/table/ScenarioSelector.java 2005-08-28 18:54:10.000000000 +0000
-@@ -104,9 +104,9 @@
- CGCategory oCGCategory;
- CGTable oCGTable;
- String SELECTCATEGORY = "selectCategory";
-- private int curcategory;
-+ public int curcategory;
- public boolean bcolumnnameislimited;
-- private String[] fieldnames;
-+ public String[] fieldnames;
- String smytable;
-
- public ScenarioSelector(TableWizard _CurUnoDialog, TableDescriptor _curtabledescriptor, String _reslblFields, String _reslblSelFields) {
-@@ -285,7 +285,7 @@
- }
-
-
-- protected int ID;
-+ public int ID;
-
- public int getID(){
- return ID;
---- wizards/com/sun/star/wizards/table/TableWizard.java.gcj~ 2005-04-06 10:19:37.000000000 +0000
-+++ wizards/com/sun/star/wizards/table/TableWizard.java 2005-08-28 18:54:10.000000000 +0000
-@@ -118,7 +118,7 @@
- }
-
-
-- protected void leaveStep(int nOldStep, int nNewStep){
-+ public void leaveStep(int nOldStep, int nNewStep){
- switch (nOldStep){
- case SOMAINPAGE:
- curScenarioSelector.addColumnsToDescriptor();
-@@ -139,7 +139,7 @@
- }
-
-
-- protected void enterStep(int nOldStep, int nNewStep) {
-+ public void enterStep(int nOldStep, int nNewStep) {
- switch (nNewStep){
- case SOMAINPAGE:
- break;
-@@ -292,7 +292,7 @@
- }
-
-
-- private void callFormWizard(){
-+ public void callFormWizard(){
- try {
- Object oFormWizard = this.xMSF.createInstance("com.sun.star.wizards.form.CallFormWizard");
- PropertyValue[] aProperties = new PropertyValue[4];
-@@ -366,7 +366,7 @@
- }
-
-
-- private void toggleWizardSteps(int _startStep, boolean _benable){
-+ public void toggleWizardSteps(int _startStep, boolean _benable){
- super.setStepEnabled(SOFIELDSFORMATPAGE, _benable);
- super.setStepEnabled(SOPRIMARYKEYPAGE, _benable);
- super.setStepEnabled(SOFINALPAGE, _benable);
---- wizards/com/sun/star/wizards/text/TextFieldHandler.java.gcj~ 2005-07-05 10:17:41.000000000 +0000
-+++ wizards/com/sun/star/wizards/text/TextFieldHandler.java 2005-08-28 18:54:10.000000000 +0000
-@@ -92,7 +92,7 @@
- public class TextFieldHandler {
-
- public XTextFieldsSupplier xTextFieldsSupplier;
-- private XMultiServiceFactory xMSFDoc;
-+ public XMultiServiceFactory xMSFDoc;
-
-
- /** Creates a new instance of TextFieldHandler */
-@@ -155,7 +155,7 @@
-
-
-
-- private XDependentTextField[] getTextFieldsByProperty(String _PropertyName, Object _aPropertyValue, String _TypeName) throws Exception{
-+ public XDependentTextField[] getTextFieldsByProperty(String _PropertyName, Object _aPropertyValue, String _TypeName) throws Exception{
- try {
- XDependentTextField[] xDependentFields;
- Vector xDependentVector = new Vector();
---- wizards/com/sun/star/wizards/text/TextSectionHandler.java.gcj~ 2005-03-18 16:23:31.000000000 +0000
-+++ wizards/com/sun/star/wizards/text/TextSectionHandler.java 2005-08-28 18:54:10.000000000 +0000
-@@ -78,9 +78,9 @@
- public class TextSectionHandler {
-
- public XTextSectionsSupplier xTextSectionsSupplier;
-- private XMultiServiceFactory xMSFDoc;
-- private XTextDocument xTextDocument;
-- private XText xText;
-+ public XMultiServiceFactory xMSFDoc;
-+ public XTextDocument xTextDocument;
-+ public XText xText;
-
- /** Creates a new instance of TextSectionHandler */
- public TextSectionHandler(XMultiServiceFactory xMSF, XTextDocument xTextDocument) {
---- wizards/com/sun/star/wizards/text/TextStyleHandler.java.gcj~ 2004-10-27 13:40:10.000000000 +0000
-+++ wizards/com/sun/star/wizards/text/TextStyleHandler.java 2005-08-28 18:54:10.000000000 +0000
-@@ -77,8 +77,8 @@
-
- public class TextStyleHandler {
- public XStyleFamiliesSupplier xStyleFamiliesSupplier;
-- private XMultiServiceFactory xMSFDoc;
-- private XTextDocument xTextDocument;
-+ public XMultiServiceFactory xMSFDoc;
-+ public XTextDocument xTextDocument;
-
- /** Creates a new instance of TextStyleHandler */
- public TextStyleHandler(com.sun.star.lang.XMultiServiceFactory xMSF, XTextDocument xTextDocument) {
---- wizards/com/sun/star/wizards/text/TextTableHandler.java.gcj~ 2005-02-21 14:03:05.000000000 +0000
-+++ wizards/com/sun/star/wizards/text/TextTableHandler.java 2005-08-28 18:54:10.000000000 +0000
-@@ -89,9 +89,9 @@
- public XMultiServiceFactory xMSFDoc;
- public XTextDocument xTextDocument;
- public XSimpleText xSimpleText;
-- private XText xText;
-- private NumberFormatter oNumberFormatter;
-- private Locale aCharLocale;
-+ public XText xText;
-+ public NumberFormatter oNumberFormatter;
-+ public Locale aCharLocale;
-
-
-
---- wizards/com/sun/star/wizards/text/ViewHandler.java.gcj~ 2004-05-19 12:49:50.000000000 +0000
-+++ wizards/com/sun/star/wizards/text/ViewHandler.java 2005-08-28 18:54:10.000000000 +0000
-@@ -80,11 +80,11 @@
- import com.sun.star.wizards.common.Helper;
-
- public class ViewHandler {
-- private XTextViewCursorSupplier xTextViewCursorSupplier;
-- private XMultiServiceFactory xMSFDoc;
-- private XTextDocument xTextDocument;
-- private XStyleFamiliesSupplier xStyleFamiliesSupplier;
-- private XViewSettingsSupplier xViewSettingsSupplier;
-+ public XTextViewCursorSupplier xTextViewCursorSupplier;
-+ public XMultiServiceFactory xMSFDoc;
-+ public XTextDocument xTextDocument;
-+ public XStyleFamiliesSupplier xStyleFamiliesSupplier;
-+ public XViewSettingsSupplier xViewSettingsSupplier;
-
- /** Creates a new instance of View */
- public ViewHandler(XMultiServiceFactory xMSF, XTextDocument xTextDocument) {
---- wizards/com/sun/star/wizards/tutorial/creator/frame/objectFinder/AccessibleObjectFind.java.gcj~ 2004-05-19 12:51:55.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/creator/frame/objectFinder/AccessibleObjectFind.java 2005-08-28 18:54:10.000000000 +0000
-@@ -20,7 +20,7 @@
- * @version $Revision$
- */
- public class AccessibleObjectFind {
-- private XExtendedToolkit m_XToolkit;
-+ public XExtendedToolkit m_XToolkit;
-
- /**
- * Creates a new AccessibleObjectFind object.
-@@ -75,7 +75,7 @@
- *
- * @return Found accessible object
- */
-- private XAccessible findAccessibleObjectViaBBox(XAccessible xAccessible, com.sun.star.awt.Point aLocation, int nLevel) {
-+ public XAccessible findAccessibleObjectViaBBox(XAccessible xAccessible, com.sun.star.awt.Point aLocation, int nLevel) {
- XAccessible xObjectUnderPoint = null;
-
- if (xAccessible != null) {
-@@ -125,7 +125,7 @@
- *
- * @return Accessible object
- */
-- private XAccessible findAccessibleObjectInAccessible(XAccessible xAccessible, com.sun.star.awt.Point aLocation, int nLevel) {
-+ public XAccessible findAccessibleObjectInAccessible(XAccessible xAccessible, com.sun.star.awt.Point aLocation, int nLevel) {
- XAccessible xObjectUnderPoint = null;
-
- try {
---- wizards/com/sun/star/wizards/tutorial/creator/frame/objectFinder/ActionFrame.java.gcj~ 2004-05-19 12:52:06.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/creator/frame/objectFinder/ActionFrame.java 2005-08-28 18:54:10.000000000 +0000
-@@ -45,20 +45,20 @@
- * @version $Revision$
- */
- public class ActionFrame extends JFrame implements IAccessibleObjectDisplay {
-- private XExtendedToolkit m_XToolkit;
-- private static ActionFrame m_actionFrame;
-- private XAccessibleContext m_xaccessContext;
-- private String m_classTyp;
-- private AccessibleObjectFind m_xaccessOF;
-- private MethodDialog m_methodDialog;
-- private ActionPanel m_actinPanel;
-- private XFramework m_frame;
-+ public XExtendedToolkit m_XToolkit;
-+ public static ActionFrame m_actionFrame;
-+ public XAccessibleContext m_xaccessContext;
-+ public String m_classTyp;
-+ public AccessibleObjectFind m_xaccessOF;
-+ public MethodDialog m_methodDialog;
-+ public ActionPanel m_actinPanel;
-+ public XFramework m_frame;
-
- /// A textutal representation of the currently focused object.
-- private TextualDisplay maTextualDisplay;
-+ public TextualDisplay maTextualDisplay;
-
- /// A graphical representation of the currently focused object.
-- private GraphicalDisplay maGraphicalDisplay;
-+ public GraphicalDisplay maGraphicalDisplay;
-
- /**
- * Creates a new ActionFrame object.
-@@ -78,7 +78,7 @@
- /**
- * Initializes the class.
- */
-- private void init() {
-+ public void init() {
- JPanel contentPane = (JPanel) getContentPane();
- contentPane.setLayout(new BorderLayout());
- contentPane.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
-@@ -221,7 +221,7 @@
- *
- * @return SHOWING object
- */
-- private XAccessible getVisibleAccessible(XAccessible xacces) {
-+ public XAccessible getVisibleAccessible(XAccessible xacces) {
- if (xacces != null) {
- if (AccessibilityTools.checkState(xacces.getAccessibleContext(), AccessibleStateType.SHOWING)) {
- return xacces;
-@@ -249,7 +249,7 @@
- *
- * @param e WindowEvent
- */
-- protected void processWindowEvent(WindowEvent e) {
-+ public void processWindowEvent(WindowEvent e) {
- super.processWindowEvent(e);
-
- if (e.getID() == WindowEvent.WINDOW_CLOSING) {
-@@ -317,7 +317,7 @@
- *
- * @return properties as string array
- */
-- private String[] getAccessibleObjProperties() {
-+ public String[] getAccessibleObjProperties() {
- String[] poperties = new String[2];
- String path = "";
- poperties[1] = m_classTyp;
---- wizards/com/sun/star/wizards/tutorial/creator/frame/objectFinder/ActionPanel.java.gcj~ 2004-05-19 12:52:18.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/creator/frame/objectFinder/ActionPanel.java 2005-08-28 18:54:10.000000000 +0000
-@@ -32,12 +32,12 @@
- */
- public class ActionPanel extends JPanel {
- //implements XActionPanel {
-- private ActionFrame m_actionFrame;
-- private JTable m_table;
-- protected JButton action;
-- private JButton removeAction;
-- private JButton upTable;
-- private JButton downTable;
-+ public ActionFrame m_actionFrame;
-+ public JTable m_table;
-+ public JButton action;
-+ public JButton removeAction;
-+ public JButton upTable;
-+ public JButton downTable;
-
- /**
- * Creates a new ActionPanel object.
-@@ -52,7 +52,7 @@
- /**
- * Initializes the panel.
- */
-- private void init() {
-+ public void init() {
- DefaultTableColumnModel tCoumModel = new DefaultTableColumnModel() {
- public void moveColumn(int columnIndex, int newIndex) {
- }
---- wizards/com/sun/star/wizards/tutorial/creator/frame/objectFinder/GraphicalDisplay.java.gcj~ 2004-05-19 12:52:28.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/creator/frame/objectFinder/GraphicalDisplay.java 2005-08-28 18:54:10.000000000 +0000
-@@ -21,10 +21,10 @@
- * @version $Revision$
- */
- public class GraphicalDisplay extends JPanel implements IAccessibleObjectDisplay {
-- private XAccessibleContext mxContext;
-- private double mnScale;
-- private double mnHOffset;
-- private double mnVOffset;
-+ public XAccessibleContext mxContext;
-+ public double mnScale;
-+ public double mnHOffset;
-+ public double mnVOffset;
-
- /**
- * Create a new graphical widget the displays some of the geometrical information
-@@ -135,7 +135,7 @@
- * Set up the transformation so that the graphical display can show a centered
- * representation of the whole screen.
- */
-- private void setupTransformation() {
-+ public void setupTransformation() {
- Dimension aScreenSize = Toolkit.getDefaultToolkit().getScreenSize();
- Dimension aWidgetSize = getSize();
-
---- wizards/com/sun/star/wizards/tutorial/creator/frame/objectFinder/MenuFactory.java.gcj~ 2004-05-19 12:52:53.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/creator/frame/objectFinder/MenuFactory.java 2005-08-28 18:54:10.000000000 +0000
-@@ -20,11 +20,11 @@
- * in OpenOffice applications.
- */
- class MenuFactory {
-- private IAccessibleObjectDisplay mDisplay;
-- private static final int mnMenuBarRole = AccessibleRole.MENU_BAR;
-- private static final int mnMenuRole = AccessibleRole.MENU;
-- private static final int mnMenuItemRole = AccessibleRole.MENU_ITEM;
-- private static final int mnSeparator = AccessibleRole.SEPARATOR;
-+ public IAccessibleObjectDisplay mDisplay;
-+ public static final int mnMenuBarRole = AccessibleRole.MENU_BAR;
-+ public static final int mnMenuRole = AccessibleRole.MENU;
-+ public static final int mnMenuItemRole = AccessibleRole.MENU_ITEM;
-+ public static final int mnSeparator = AccessibleRole.SEPARATOR;
-
- /**
- * Create a new factory. When ever one of the menu items in a menu created by the
-@@ -76,7 +76,7 @@
- *
- * @return When there is no descendant that represents a menu then return null.
- */
-- private XAccessible GetMenu(XAccessible xAccessible) {
-+ public XAccessible GetMenu(XAccessible xAccessible) {
- XAccessible xMenu = null;
- int nMenuRole = mnMenuBarRole;
-
-@@ -113,7 +113,7 @@
- *
- * @return JMenuBar
- */
-- private JMenuBar CreateJMenuBar(XAccessible xMenu) {
-+ public JMenuBar CreateJMenuBar(XAccessible xMenu) {
- JMenuBar aMenuBar = new JMenuBar();
-
- if (xMenu != null) {
-@@ -145,7 +145,7 @@
- *
- * @return JMenu
- */
-- private JMenu CreateJMenu(XAccessible xMenu) {
-+ public JMenu CreateJMenu(XAccessible xMenu) {
- JMenu aMenu = null;
-
- if (xMenu != null) {
-@@ -227,7 +227,7 @@
- *
- * @return JMenuItem
- */
-- private JMenuItem CreateJMenuItem(XAccessible xAccessible) {
-+ public JMenuItem CreateJMenuItem(XAccessible xAccessible) {
- JMenuItem aMenuItem = null;
-
- if (xAccessible != null) {
---- wizards/com/sun/star/wizards/tutorial/creator/frame/objectFinder/MethodDialog.java.gcj~ 2004-05-19 12:53:04.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/creator/frame/objectFinder/MethodDialog.java 2005-08-28 18:54:10.000000000 +0000
-@@ -44,14 +44,14 @@
- * @version $Revision$
- */
- public class MethodDialog extends javax.swing.JDialog {
-- private JTable m_table;
-- private JList m_list;
-- private String m_classTyp;
-- private String m_path;
-- private Hashtable m_methods;
-- private static final Hashtable m_docsMethods;
-- private static final Object[] m_columnIdentifiers;
-- private ActionFrame m_actionFrame;
-+ public JTable m_table;
-+ public JList m_list;
-+ public String m_classTyp;
-+ public String m_path;
-+ public Hashtable m_methods;
-+ public static final Hashtable m_docsMethods;
-+ public static final Object[] m_columnIdentifiers;
-+ public ActionFrame m_actionFrame;
-
- /**
- * The statical class initializer.
-@@ -87,7 +87,7 @@
- /**
- * Initializes the dialog.
- */
-- private void init() {
-+ public void init() {
- setBounds(200, 70, 470, 500);
- setTitle("Methods");
- setModal(true);
-@@ -169,7 +169,7 @@
- *
- * @param e WindowEvent
- */
-- protected void processWindowEvent(WindowEvent e) {
-+ public void processWindowEvent(WindowEvent e) {
- super.processWindowEvent(e);
-
- if (e.getID() == WindowEvent.WINDOW_CLOSING) {
-@@ -198,7 +198,7 @@
- /**
- * Initializes the list data.
- */
-- private void initListData() {
-+ public void initListData() {
- DefaultComboBoxModel dModel = (DefaultComboBoxModel) m_list.getModel();
-
- if (dModel.getSize() > 0) {
-@@ -228,7 +228,7 @@
- /**
- * Remove all table data.
- */
-- private void removeAllTableData() {
-+ public void removeAllTableData() {
- TableModel tModel = (TableModel) m_table.getModel();
-
- for (int i = tModel.getRowCount() - 1; i > -1; i--) {
-@@ -239,7 +239,7 @@
- /**
- * Update the table.
- */
-- private void updateTable() {
-+ public void updateTable() {
- m_list.getSelectedIndex();
-
- String key = (String) m_list.getSelectedValue();
---- wizards/com/sun/star/wizards/tutorial/creator/frame/objectFinder/TableColumModel.java.gcj~ 2004-05-19 12:53:16.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/creator/frame/objectFinder/TableColumModel.java 2005-08-28 18:54:10.000000000 +0000
-@@ -17,7 +17,7 @@
- * @version $Revision$
- */
- public class TableColumModel extends javax.swing.table.DefaultTableColumnModel {
-- private int m_largeColumIndex;
-+ public int m_largeColumIndex;
-
- /**
- * Creates a new TableColumModel object.
---- wizards/com/sun/star/wizards/tutorial/creator/frame/objectFinder/TextualDisplay.java.gcj~ 2004-05-19 12:53:40.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/creator/frame/objectFinder/TextualDisplay.java 2005-08-28 18:54:10.000000000 +0000
-@@ -28,13 +28,13 @@
- */
- class TextualDisplay extends JPanel implements IAccessibleObjectDisplay {
- /// The text widget that is used for the actual text display.
-- private JTextArea maText;
-+ public JTextArea maText;
-
- /// The indentation with which an object's child is indented.
-- private final String msIndentation = " ";
-+ public final String msIndentation = " ";
-
- /// The text content displayed by this object.
-- private String msTextContent = "";
-+ public String msTextContent = "";
-
- /**
- * Create a new scroll pane that contains a text widget which display information
-@@ -91,7 +91,7 @@
- * @param xContext object context
- * @param sIndentation
- */
-- private void showContextInfo(XAccessibleContext xContext, String sIndentation) {
-+ public void showContextInfo(XAccessibleContext xContext, String sIndentation) {
- // Show the description.
- msTextContent += (sIndentation + "Description: " + xContext.getAccessibleDescription() + "\n");
- showStates(xContext, sIndentation);
-@@ -104,7 +104,7 @@
- * @param xContext accessible context for which to show the state names.
- * @param sIndentation
- */
-- private void showStates(XAccessibleContext xContext, String sIndentation) {
-+ public void showStates(XAccessibleContext xContext, String sIndentation) {
- // Get the state set object...
- XAccessibleStateSet xStateSet = xContext.getAccessibleStateSet();
-
-@@ -132,7 +132,7 @@
- * @param xContext object context
- * @param sIndentation
- */
-- private void showComponentInfo(XAccessibleContext xContext, String sIndentation) {
-+ public void showComponentInfo(XAccessibleContext xContext, String sIndentation) {
- // Try to cast the given accessible context to the
- // XAccessibleComponent interface.
- XAccessibleComponent xComponent = (XAccessibleComponent) UnoRuntime.queryInterface(XAccessibleComponent.class, xContext);
-@@ -154,7 +154,7 @@
- *
- * @return Parents
- */
-- private String showParents(XAccessibleContext xContext) {
-+ public String showParents(XAccessibleContext xContext) {
- // Create the path from the given object to its tree's root.
- Vector aPathToRoot = new Vector();
-
---- wizards/com/sun/star/wizards/tutorial/creator/frame/CallTutorialCreatorFramework.java.gcj~ 2004-05-19 12:50:35.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/creator/frame/CallTutorialCreatorFramework.java 2005-08-28 18:54:10.000000000 +0000
-@@ -99,12 +99,12 @@
- /**
- * The service name, that must be used to get an instance of this service.
- */
-- private static final String __serviceName = "com.sun.star.wizards.tutorial.executer.CallTutorialFramework";
-+ public static final String __serviceName = "com.sun.star.wizards.tutorial.executer.CallTutorialFramework";
-
- /**
- * The service manager, that gives access to all registered services.
- */
-- private XMultiServiceFactory xmultiservicefactory;
-+ public XMultiServiceFactory xmultiservicefactory;
-
- /**
- * This method is a member of the interface for initializing an object directly
---- wizards/com/sun/star/wizards/tutorial/creator/frame/ConnectFrame.java.gcj~ 2004-05-19 12:50:46.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/creator/frame/ConnectFrame.java 2005-08-28 18:54:10.000000000 +0000
-@@ -34,19 +34,19 @@
- * @version $Revision$
- */
- public class ConnectFrame extends JFrame {
-- private Framework m_parent;
-- private JTextField m_hostTextField;
-- private JTextField m_portTextField;
-- private JTextPane m_textPane;
-- private Helper m_helper;
-- private String m_connectDialogTitel = "Connect";
-- private String m_hostLabelTitel = "Host : ";
-- private String m_portLabelTitel = "Port : ";
-- private String m_defaultHost = "localhost";
-- private String m_defaultPort = "8100";
-- private String m_connectDescreption = "Please insert StarOffice Hostname and port.";
-- private String m_connectButtonDescreption = "Connect";
-- private String m_cancelButtonDescreption = "Cancel";
-+ public Framework m_parent;
-+ public JTextField m_hostTextField;
-+ public JTextField m_portTextField;
-+ public JTextPane m_textPane;
-+ public Helper m_helper;
-+ public String m_connectDialogTitel = "Connect";
-+ public String m_hostLabelTitel = "Host : ";
-+ public String m_portLabelTitel = "Port : ";
-+ public String m_defaultHost = "localhost";
-+ public String m_defaultPort = "8100";
-+ public String m_connectDescreption = "Please insert StarOffice Hostname and port.";
-+ public String m_connectButtonDescreption = "Connect";
-+ public String m_cancelButtonDescreption = "Cancel";
-
- /**
- * Creates a new ConnectFrame object.
-@@ -72,7 +72,7 @@
- /**
- * Initilization of the connection frame with the standard procedures.
- */
-- private void init() {
-+ public void init() {
- JPanel contentPane = (JPanel) this.getContentPane();
- contentPane.setLayout(new BorderLayout());
- contentPane.setBorder(BorderFactory.createEmptyBorder(15, 15, 1, 15));
-@@ -141,7 +141,7 @@
- *
- * @param e object
- */
-- protected void processWindowEvent(WindowEvent e) {
-+ public void processWindowEvent(WindowEvent e) {
- super.processWindowEvent(e);
-
- if (e.getID() == WindowEvent.WINDOW_CLOSING) {
-@@ -153,7 +153,7 @@
- /**
- * Establishing a connection to staroffice.
- */
-- private void connect() {
-+ public void connect() {
- try {
- if (getHost().equals("") || getPort().equals("")) {
- throw new java.lang.Exception();
-@@ -260,7 +260,7 @@
- /**
- * Disposing and finishing.
- */
-- private void cancel() {
-+ public void cancel() {
- dispose();
- System.exit(0);
- }
---- wizards/com/sun/star/wizards/tutorial/creator/frame/Framework.java.gcj~ 2004-05-19 12:50:57.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/creator/frame/Framework.java 2005-08-28 18:54:10.000000000 +0000
-@@ -24,9 +24,9 @@
- * @version $Revision$
- */
- public class Framework implements XFramework {
-- private StepFrame m_stepFrame;
-- private ConnectFrame m_connect;
-- private ActionFrame m_actionFrame;
-+ public StepFrame m_stepFrame;
-+ public ConnectFrame m_connect;
-+ public ActionFrame m_actionFrame;
-
- /**
- * Creates a new Framework object.
---- wizards/com/sun/star/wizards/tutorial/creator/frame/StepFrame.java.gcj~ 2004-05-19 12:51:09.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/creator/frame/StepFrame.java 2005-08-28 18:54:10.000000000 +0000
-@@ -49,39 +49,39 @@
- * @version $Revision$
- */
- public class StepFrame extends JFrame {
-- private XFramework m_parent;
-- private JTextArea m_stepTextArea;
-- private JTextArea m_descreptionTextArea;
-- private JList m_list;
-- private JTable m_table;
-- private String m_typDialogTitel = "Tutorial - Creator v1.2";
-- private String m_descreptionTitledBorder = "Comment:";
-- private String m_stepTitledBorder = "Step :";
-- private String m_nextButtonDescreption = "Next >";
-- private String m_cancelButtonDescreption = "Close";
-- private String m_backButtonDescreption = "< Previous";
-- private String m_createButtonDescreption = "Create Macro";
-- private String m_saveButton = "Save";
-- private String m_loadButton = "Load";
-- private String m_errorDescreption = "Please insert step text.";
-- private String m_errorName = "Step Error";
-- private int m_stepIndex;
-- private TitledBorder m_message;
-- private StepModel m_model;
-- private JPanel m_contentPane;
-- private static Vector m_cAction;
-- private JButton create;
-- private JButton back;
-- private JButton next;
-- private JButton add;
-- private JButton remove;
-- private JButton upList;
-- private JButton downList;
-- private JButton action;
-- private JButton removeAction;
-- private JButton upTable;
-- private JButton downTable;
-- private JButton save;
-+ public XFramework m_parent;
-+ public JTextArea m_stepTextArea;
-+ public JTextArea m_descreptionTextArea;
-+ public JList m_list;
-+ public JTable m_table;
-+ public String m_typDialogTitel = "Tutorial - Creator v1.2";
-+ public String m_descreptionTitledBorder = "Comment:";
-+ public String m_stepTitledBorder = "Step :";
-+ public String m_nextButtonDescreption = "Next >";
-+ public String m_cancelButtonDescreption = "Close";
-+ public String m_backButtonDescreption = "< Previous";
-+ public String m_createButtonDescreption = "Create Macro";
-+ public String m_saveButton = "Save";
-+ public String m_loadButton = "Load";
-+ public String m_errorDescreption = "Please insert step text.";
-+ public String m_errorName = "Step Error";
-+ public int m_stepIndex;
-+ public TitledBorder m_message;
-+ public StepModel m_model;
-+ public JPanel m_contentPane;
-+ public static Vector m_cAction;
-+ public JButton create;
-+ public JButton back;
-+ public JButton next;
-+ public JButton add;
-+ public JButton remove;
-+ public JButton upList;
-+ public JButton downList;
-+ public JButton action;
-+ public JButton removeAction;
-+ public JButton upTable;
-+ public JButton downTable;
-+ public JButton save;
-
- /**
- * Creates a new StepFrame object.
-@@ -103,7 +103,7 @@
- /**
- * Initializes the step frame.
- */
-- private void init() {
-+ public void init() {
- m_contentPane = (JPanel) this.getContentPane();
- m_contentPane.setLayout(new BorderLayout());
- m_contentPane.setBorder(BorderFactory.createEmptyBorder(15, 15, 1, 15));
-@@ -608,7 +608,7 @@
- /**
- * Set table columns minimal width.
- */
-- private void setTableColumsMinWidth() {
-+ public void setTableColumsMinWidth() {
- m_table.getColumnModel().getColumn(0).setMinWidth(50);
- m_table.getColumnModel().getColumn(1).setMinWidth(100);
- m_table.getColumnModel().getColumn(2).setPreferredWidth(400);
-@@ -658,7 +658,7 @@
- *
- * @param e WindowEvent
- */
-- protected void processWindowEvent(WindowEvent e) {
-+ public void processWindowEvent(WindowEvent e) {
- if (e.getID() == WindowEvent.WINDOW_CLOSING) {
- int result = JOptionPane.showConfirmDialog(this, "Do you want to close?.", "Close", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
-
-@@ -674,7 +674,7 @@
- * macro with the specified name exists, the user can either replace the old macro
- * or save it with another name.
- */
-- private void createTutorial() {
-+ public void createTutorial() {
- if ((getStepText() == null) || getStepText().equals("")) {
- JOptionPane.showMessageDialog(this, m_errorDescreption, m_errorName, JOptionPane.ERROR_MESSAGE);
-
-@@ -698,7 +698,7 @@
- /**
- * This methode is meant for the closing of the tutorial frame.
- */
-- private void cancel() {
-+ public void cancel() {
- int result = JOptionPane.showConfirmDialog(this, "Do you want to close?.", "Close", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
-
- if (result == 0) {
-@@ -820,7 +820,7 @@
- *
- * @return step as a vector
- */
-- private Vector createStep(String description, String text) {
-+ public Vector createStep(String description, String text) {
- Vector step = null;
-
- if (!description.equals("") || !text.equals("")) {
---- wizards/com/sun/star/wizards/tutorial/creator/frame/StepModel.java.gcj~ 2004-05-19 12:51:20.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/creator/frame/StepModel.java 2005-08-28 18:54:10.000000000 +0000
-@@ -14,7 +14,7 @@
- * @version $Revision$
- */
- public class StepModel {
-- private Vector m_steps;
-+ public Vector m_steps;
-
- /**
- * Creates a new StepModel object.
---- wizards/com/sun/star/wizards/tutorial/creator/frame/TutorialCreator.java.gcj~ 2004-05-19 12:51:33.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/creator/frame/TutorialCreator.java 2005-08-28 18:54:10.000000000 +0000
-@@ -33,10 +33,10 @@
- * @version $Revision$
- */
- public class TutorialCreator extends JFrame {
-- private Framework m_frameWork;
-- private String m_tutorialName;
-- private JTextArea m_stepTextArea;
-- private String m_ident;
-+ public Framework m_frameWork;
-+ public String m_tutorialName;
-+ public JTextArea m_stepTextArea;
-+ public String m_ident;
-
- /**
- * Creates a new TutorialCreator object.
-@@ -54,7 +54,7 @@
- /**
- * Initilization for the TutorialCreator frame.
- */
-- private void init() {
-+ public void init() {
- JPanel contentPane = (JPanel) this.getContentPane();
- contentPane.setLayout(new BorderLayout());
- contentPane.setBorder(BorderFactory.createEmptyBorder(15, 15, 1, 15));
-@@ -97,7 +97,7 @@
- *
- * @param e e
- */
-- protected void processWindowEvent(WindowEvent e) {
-+ public void processWindowEvent(WindowEvent e) {
- super.processWindowEvent(e);
-
- if (e.getID() == WindowEvent.WINDOW_CLOSING) {
-@@ -109,7 +109,7 @@
- /**
- * Creates a macro.
- */
-- private void create() {
-+ public void create() {
- String result = m_frameWork.createDocumentMacro(this, "Standard", m_tutorialName, m_stepTextArea.getText(), false);
- JOptionPane.showMessageDialog(this, result, "Create Result", JOptionPane.INFORMATION_MESSAGE);
- cancel();
-@@ -118,7 +118,7 @@
- /**
- * Disposing and finishing.
- */
-- private void cancel() {
-+ public void cancel() {
- dispose();
- m_frameWork.showStepFrame(getBounds());
- }
-@@ -126,7 +126,7 @@
- /**
- * Sets tutorial text.
- */
-- private void setTutorialText() {
-+ public void setTutorialText() {
- Vector data = m_frameWork.getStepFrame().getModel().getDataVector();
-
- if (!data.isEmpty()) {
-@@ -149,7 +149,7 @@
- /**
- * Sets macro header.
- */
-- private void setMacroHeader() {
-+ public void setMacroHeader() {
- String typ = m_frameWork.getConnectedDocumentTyp();
-
- //macro header
-@@ -160,7 +160,7 @@
- /**
- * Sets macro library.
- */
-- private void setLibraryLoader() {
-+ public void setLibraryLoader() {
- String temp = "Sub isLoaded()\n" + m_ident + "If GlobalScope.BasicLibraries.isLibraryLoaded(" + '"' + "Tutorials" + '"' + ") = " + '"' + "False" + '"' + " Then\n" + m_ident + m_ident + "GlobalScope.BasicLibraries.LoadLibrary(" + '"' + "Tutorials" + '"' + ")\n" + m_ident + "End If\n" + "End Sub\n";
- m_stepTextArea.append(temp);
- }
-@@ -168,7 +168,7 @@
- /**
- * Sets macro properties (macro body).
- */
-- private void setMacroProperties() {
-+ public void setMacroProperties() {
- //macro header
- String temp = "Function GetProperties() As com.sun.star.beans.NamedValue\n" + m_ident + "Dim properties(3) As new com.sun.star.beans.NamedValue\n" + m_ident + "properties(0).Name = " + '"' + "MacroName" + '"' + "\n" + m_ident + "properties(0).Value = " + '"' + m_tutorialName + '"' + "\n" + m_ident + "properties(1).Name = " + '"' + "ExecuteForm" + '"' + "\n" + m_ident + "properties(1).Value = " + '"' + "Name" + '"' + "\n" + m_ident + "properties(2).Name = " + '"' + "Debug" + '"' + "\n" + m_ident + "properties(2).Value = " + '"' + "False" + '"' + "\n" + m_ident + "properties(3).Name = " + '"' + "Localisation" + '"' + "\n" + m_ident + "properties(3).Value = " + '"' + "False" + '"' + "\n" + m_ident + "GetProperties = properties()\n" + "End Function\n";
- m_stepTextArea.append(temp);
-@@ -181,7 +181,7 @@
- *
- * @return hashtable
- */
-- private Hashtable setMacroText(Vector data) {
-+ public Hashtable setMacroText(Vector data) {
- Hashtable tempStepsActions = new Hashtable();
-
- if (!data.isEmpty()) {
-@@ -227,7 +227,7 @@
- *
- * @param actions
- */
-- private void setStepActionCheck(Hashtable actions) {
-+ public void setStepActionCheck(Hashtable actions) {
- //macro action header
- String temp = "Function ContainsStepAction()\n" + m_ident + "Dim result As Boolean\n" + m_ident + "result = False\n";
- m_stepTextArea.append(temp);
-@@ -255,7 +255,7 @@
- *
- * @param actions
- */
-- private void setMacroActionHeader(Hashtable actions) {
-+ public void setMacroActionHeader(Hashtable actions) {
- //macro action header
- String temp = "Sub Action()\n" + m_ident + "Select Case TutorStep\n";
- m_stepTextArea.append(temp);
-@@ -277,7 +277,7 @@
- *
- * @return parsed params
- */
-- private Vector parsParam(String params) {
-+ public Vector parsParam(String params) {
- Vector vParams = new Vector();
- StringTokenizer st = new StringTokenizer(params);
- String temp;
-@@ -317,7 +317,7 @@
- * @param actions
- * @param stepAction
- */
-- private void setMacroAction(Vector actions, String stepAction) {
-+ public void setMacroAction(Vector actions, String stepAction) {
- if (!actions.isEmpty()) {
- String temp = "Sub Step_" + stepAction + "_Action()\n";
- m_stepTextArea.append(temp);
---- wizards/com/sun/star/wizards/tutorial/executer/officeHelper/Components.java.gcj~ 2004-05-19 12:56:13.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/officeHelper/Components.java 2005-08-28 18:54:11.000000000 +0000
-@@ -334,7 +334,7 @@
- *
- * @throws Exception DOCUMENT ME!
- */
-- private XAccessibleContext getSelectionContext(XAccessibleContext child) throws Exception {
-+ public XAccessibleContext getSelectionContext(XAccessibleContext child) throws Exception {
- XAccessibleContext xaccCon = null;
-
- for (int i = 0; i < child.getAccessibleChildCount(); i++) {
-@@ -404,7 +404,7 @@
- *
- * @return Fix accessibility child path
- */
-- private String[] checkPath(String[] path) {
-+ public String[] checkPath(String[] path) {
- String[] pathCopy = null;
-
- for (int i = path.length - 1; -1 < i; i--) {
-@@ -438,10 +438,10 @@
-
- //*******************************************************************
- // *
-- // private *
-+ // public *
- // *
- //*******************************************************************
-- private XAccessibleContext checkAccessibleObject(XInterface child) {
-+ public XAccessibleContext checkAccessibleObject(XInterface child) {
- XAccessibleContext context = AccessibilityTools.getXAccessibleContext(child);
-
- if ((context != null) && (AccessibilityTools.getImplName(context).indexOf("AccessibleList") > -1)) {
-@@ -475,7 +475,7 @@
- * @param index index
- * @param insertText text
- */
-- private void insertTextHelper(XInterface child, int index, String insertText) {
-+ public void insertTextHelper(XInterface child, int index, String insertText) {
- XAccessibleContext context = checkAccessibleObject(child);
-
- if (context != null) {
-@@ -505,7 +505,7 @@
- * @param movePosition move position
- * @param insertText
- */
-- private void insertText(XInterface child, int movePosition, String insertText) {
-+ public void insertText(XInterface child, int movePosition, String insertText) {
- XAccessibleEditableText xacclEditText = AccessibilityTools.getAccessibleEditableTextObject(child);
-
- if ((xacclEditText != null) && (insertText != null) && (insertText.length() > 0) && (movePosition > -1)) {
-@@ -529,7 +529,7 @@
- * @param startIndex index
- * @param endIndex index!
- */
-- private void deleteTextHelper(XInterface child, int startIndex, int endIndex) {
-+ public void deleteTextHelper(XInterface child, int startIndex, int endIndex) {
- XAccessibleContext context = checkAccessibleObject(child);
-
- if (context != null) {
-@@ -559,7 +559,7 @@
- * @param startIndex index
- * @param endIndex index
- */
-- private void deleteText(XInterface child, int startIndex, int endIndex) {
-+ public void deleteText(XInterface child, int startIndex, int endIndex) {
- XAccessibleEditableText xacclEditText = AccessibilityTools.getAccessibleEditableTextObject(child);
-
- if ((xacclEditText != null) && (startIndex > -1) && (endIndex > startIndex)) {
-@@ -584,7 +584,7 @@
- * @param endIndex index
- * @param insertText text
- */
-- private void replaceHelper(XInterface child, int startIndex, int endIndex, String insertText) {
-+ public void replaceHelper(XInterface child, int startIndex, int endIndex, String insertText) {
- deleteTextHelper(child, startIndex, endIndex);
- insertTextHelper(child, startIndex, insertText);
- }
-@@ -596,7 +596,7 @@
- * @param searchText text
- * @param insertText text
- */
-- private void replaceHelper(XInterface child, String searchText, String insertText) {
-+ public void replaceHelper(XInterface child, String searchText, String insertText) {
- XAccessibleContext context = checkAccessibleObject(child);
-
- if (context != null) {
-@@ -624,7 +624,7 @@
- * @param startIndex index
- * @param endIndex index
- */
-- private void selectHelper(XInterface child, int startIndex, int endIndex) {
-+ public void selectHelper(XInterface child, int startIndex, int endIndex) {
- XAccessibleContext context = checkAccessibleObject(child);
-
- if (context != null) {
-@@ -657,7 +657,7 @@
- * @param child child
- * @param description text
- */
-- private void selectHelper(XInterface child, String description) {
-+ public void selectHelper(XInterface child, String description) {
- XAccessibleContext context = checkAccessibleObject(child);
-
- if (context != null) {
-@@ -694,7 +694,7 @@
- * @param movePosition position
- * @param textLength length
- */
-- private void moveCursorPostion(int currentPosition, int movePosition, int textLength) {
-+ public void moveCursorPostion(int currentPosition, int movePosition, int textLength) {
- if (currentPosition > -1) {
- if (currentPosition < movePosition) {
- for (int i = currentPosition; i < movePosition; i++) {
---- wizards/com/sun/star/wizards/tutorial/executer/officeHelper/Desktop.java.gcj~ 2004-05-19 12:56:24.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/officeHelper/Desktop.java 2005-08-28 18:54:11.000000000 +0000
-@@ -29,9 +29,9 @@
- * @version $Revision$
- */
- public abstract class Desktop implements com.sun.star.wizards.tutorial.executer.officeHelper.XControl, com.sun.star.wizards.tutorial.executer.officeHelper.XMoveMouseCompact, com.sun.star.wizards.tutorial.executer.officeHelper.XWindow, com.sun.star.wizards.tutorial.executer.officeHelper.XProperties, com.sun.star.wizards.tutorial.executer.officeHelper.XAccessibility {
-- private static int MOUSE_SLEEP = 1500;
-- private static String m_packageName = "com.sun.star.wizards.tutorial.executer.officeHelper";
-- private static String m_docMethodName = "setHelper";
-+ public static int MOUSE_SLEEP = 1500;
-+ public static String m_packageName = "com.sun.star.wizards.tutorial.executer.officeHelper";
-+ public static String m_docMethodName = "setHelper";
-
- //*******************************************************************
- // *
-@@ -530,7 +530,7 @@
-
- //*******************************************************************
- // *
-- // protected *
-+ // public *
- // *
- //*******************************************************************
-
-@@ -539,7 +539,7 @@
- *
- * @param xIf object
- */
-- protected void moveMouse_Click(XAccessibleContext xIf) {
-+ public void moveMouse_Click(XAccessibleContext xIf) {
- moveMouse_Click(xIf, Control.MOUSE_CLICK_LEFT, 0, 0);
- }
-
-@@ -549,7 +549,7 @@
- * @param xIf child
- * @param mouseSleepTime slepp time after click
- */
-- protected void moveMouse_Click(XAccessibleContext xIf, int mouseSleepTime) {
-+ public void moveMouse_Click(XAccessibleContext xIf, int mouseSleepTime) {
- moveMouse_Click(xIf, Control.MOUSE_CLICK_LEFT, 0, mouseSleepTime);
- }
-
-@@ -559,7 +559,7 @@
- * @param xIf child
- * @param mouseSleepTime slepp time after click
- */
-- protected void moveMouse(XAccessibleContext xIf, int mouseSleepTime) {
-+ public void moveMouse(XAccessibleContext xIf, int mouseSleepTime) {
- if (xIf != null) {
- xIf = checkShowing(xIf);
-
-@@ -588,7 +588,7 @@
- * @param mouseClickTime to click in milliseconds
- * @param mouseSleepTime slepp time after click
- */
-- protected void moveMouse_Click(XAccessibleContext xIf, String mousClickTyp, int mouseClickTime, int mouseSleepTime) {
-+ public void moveMouse_Click(XAccessibleContext xIf, String mousClickTyp, int mouseClickTime, int mouseSleepTime) {
- if (xIf != null) {
- xIf = checkShowing(xIf);
-
-@@ -653,7 +653,7 @@
-
- //*******************************************************************
- // *
-- // private *
-+ // public *
- // *
- //*******************************************************************
-
-@@ -665,7 +665,7 @@
- *
- * @throws com.sun.star.uno.Exception DOCUMENT ME!
- */
-- private void windowToFront(int windowIndex) throws com.sun.star.uno.Exception {
-+ public void windowToFront(int windowIndex) throws com.sun.star.uno.Exception {
- XTopWindow xtop = getHelper().getTopWindow(windowIndex);
- xtop.toFront();
- }
-@@ -679,7 +679,7 @@
- *
- * @throws com.sun.star.uno.Exception DOCUMENT ME!
- */
-- private Vector findPath(XAccessibleContext xcon) throws com.sun.star.uno.Exception {
-+ public Vector findPath(XAccessibleContext xcon) throws com.sun.star.uno.Exception {
- if (xcon == null) {
- return null;
- }
---- wizards/com/sun/star/wizards/tutorial/executer/officeHelper/DesktopDialog.java.gcj~ 2004-05-19 12:56:35.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/officeHelper/DesktopDialog.java 2005-08-28 18:54:11.000000000 +0000
-@@ -17,8 +17,8 @@
- * @version $Revision$
- */
- public class DesktopDialog extends Components implements XTabList {
-- private Helper m_helper;
-- private static DesktopDialog m_desktopDialog;
-+ public Helper m_helper;
-+ public static DesktopDialog m_desktopDialog;
-
- static {
- new DesktopDialog();
---- wizards/com/sun/star/wizards/tutorial/executer/officeHelper/DesktopMenu.java.gcj~ 2004-05-19 12:56:49.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/officeHelper/DesktopMenu.java 2005-08-28 18:54:11.000000000 +0000
-@@ -12,8 +12,8 @@
- * @version $Revision$
- */
- public class DesktopMenu extends Desktop {
-- private Helper m_helper;
-- private static DesktopMenu m_desktopMenu;
-+ public Helper m_helper;
-+ public static DesktopMenu m_desktopMenu;
-
- static {
- new DesktopMenu();
---- wizards/com/sun/star/wizards/tutorial/executer/officeHelper/Presentation_Drawing.java.gcj~ 2004-05-19 12:57:01.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/officeHelper/Presentation_Drawing.java 2005-08-28 18:54:11.000000000 +0000
-@@ -12,8 +12,8 @@
- * @version $Revision$
- */
- public class Presentation_Drawing extends Components implements XTabList {
-- private Helper m_helper;
-- private static Presentation_Drawing m_pres_draw;
-+ public Helper m_helper;
-+ public static Presentation_Drawing m_pres_draw;
-
- static {
- new Presentation_Drawing();
---- wizards/com/sun/star/wizards/tutorial/executer/officeHelper/Spreadsheet.java.gcj~ 2004-05-19 12:57:13.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/officeHelper/Spreadsheet.java 2005-08-28 18:54:11.000000000 +0000
-@@ -22,8 +22,8 @@
- * @version $Revision$
- */
- public class Spreadsheet extends Components implements XCellTextCompact, XTabList {
-- private Helper m_helper;
-- private static Spreadsheet m_spreadsheet;
-+ public Helper m_helper;
-+ public static Spreadsheet m_spreadsheet;
-
- static {
- new Spreadsheet();
-@@ -243,7 +243,7 @@
- * @param index insert index
- * @param insertText text
- */
-- private void insertCellTextHelper(XAccessibleContext child, int index, String insertText) {
-+ public void insertCellTextHelper(XAccessibleContext child, int index, String insertText) {
- try {
- XCell xcell = getSelectedCell(child);
-
-@@ -261,7 +261,7 @@
- * @param startIndex text start index
- * @param endIndex text end index
- */
-- private void deleteCellTextHelper(XAccessibleContext child, int startIndex, int endIndex) {
-+ public void deleteCellTextHelper(XAccessibleContext child, int startIndex, int endIndex) {
- try {
- XCell xcell = getSelectedCell(child);
-
-@@ -280,7 +280,7 @@
- * @param endIndex end index
- * @param insertText text
- */
-- private void replaceCellTextHelper(XAccessibleContext child, int startIndex, int endIndex, String insertText) {
-+ public void replaceCellTextHelper(XAccessibleContext child, int startIndex, int endIndex, String insertText) {
- try {
- XCell xcell = getSelectedCell(child);
-
-@@ -299,7 +299,7 @@
- * @param searchText text
- * @param insertText insert text
- */
-- private void replaceCellTextHelper(XAccessibleContext child, String searchText, String insertText) {
-+ public void replaceCellTextHelper(XAccessibleContext child, String searchText, String insertText) {
- try {
- XCell xcell = getSelectedCell(child);
-
-@@ -327,7 +327,7 @@
- *
- * @throws java.lang.Exception
- */
-- private XCell getSelectedCell(XAccessibleContext child) throws java.lang.Exception {
-+ public XCell getSelectedCell(XAccessibleContext child) throws java.lang.Exception {
- XCell xcell = null;
-
- if (child != null) {
-@@ -357,7 +357,7 @@
- *
- * @throws java.lang.Exception
- */
-- private void deleteTextfromCell(XCell xcell, int startIndex, int endIndex) throws java.lang.Exception {
-+ public void deleteTextfromCell(XCell xcell, int startIndex, int endIndex) throws java.lang.Exception {
- String temp = xcell.getFormula();
-
- if ((startIndex == 0) && (endIndex == -1)) {
-@@ -390,7 +390,7 @@
- *
- * @throws java.lang.Exception D
- */
-- private void insertTexttoCell(XCell xcell, String insertText, int index) throws java.lang.Exception {
-+ public void insertTexttoCell(XCell xcell, String insertText, int index) throws java.lang.Exception {
- String temp = xcell.getFormula();
-
- if (temp != null) {
---- wizards/com/sun/star/wizards/tutorial/executer/officeHelper/TextDocument.java.gcj~ 2004-05-19 12:57:25.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/officeHelper/TextDocument.java 2005-08-28 18:54:11.000000000 +0000
-@@ -12,8 +12,8 @@
- * @version $Revision$
- */
- public class TextDocument extends Components {
-- private Helper m_helper;
-- private static TextDocument m_textDocument;
-+ public Helper m_helper;
-+ public static TextDocument m_textDocument;
-
- static {
- new TextDocument();
---- wizards/com/sun/star/wizards/tutorial/executer/officeHelper/XCellTextCompact.java.gcj~ 2004-05-19 12:57:51.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/officeHelper/XCellTextCompact.java 2005-08-28 18:54:11.000000000 +0000
-@@ -112,7 +112,7 @@
- * @version $Revision$
- */
- public class XCellCompactMethods {
-- private static final Hashtable m_xhash;
-+ public static final Hashtable m_xhash;
-
- static {
- m_xhash = getXCellTextCompact();
-@@ -132,7 +132,7 @@
- *
- * @return hashtable
- */
-- private static Hashtable getXCellTextCompact() {
-+ public static Hashtable getXCellTextCompact() {
- String[][] insertTexttoCell = new String[][] { { "typ", "" }, {
- "method", "insertTexttoCell" }, {
- "path", "" }, {
---- wizards/com/sun/star/wizards/tutorial/executer/officeHelper/XItemSelection.java.gcj~ 2004-05-19 12:58:15.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/officeHelper/XItemSelection.java 2005-08-28 18:54:11.000000000 +0000
-@@ -38,7 +38,7 @@
- * @version $Revision$
- */
- public class XItemSelectionMethods {
-- private static final Hashtable m_xhash;
-+ public static final Hashtable m_xhash;
-
- static {
- m_xhash = getXItemSelection();
-@@ -58,7 +58,7 @@
- *
- * @return hashtable
- */
-- private static Hashtable getXItemSelection() {
-+ public static Hashtable getXItemSelection() {
- String[][] selectionItemWithIndex = new String[][] { { "typ", "" }, {
- "method", "selectItem_Index" }, {
- "path", "" }, {
---- wizards/com/sun/star/wizards/tutorial/executer/officeHelper/XMouse.java.gcj~ 2004-05-19 12:58:26.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/officeHelper/XMouse.java 2005-08-28 18:54:11.000000000 +0000
-@@ -66,7 +66,7 @@
- * @version $Revision$
- */
- public class XMouseMethods {
-- private static final Hashtable m_xhash;
-+ public static final Hashtable m_xhash;
-
- static {
- m_xhash = getXMouse();
-@@ -86,7 +86,7 @@
- *
- * @return hashtable
- */
-- private static Hashtable getXMouse() {
-+ public static Hashtable getXMouse() {
- String[][] sleep = new String[][] { { "typ", "" }, {
- "method", "sleep" }, {
- "millis", "" }
---- wizards/com/sun/star/wizards/tutorial/executer/officeHelper/XMoveMouseCompact.java.gcj~ 2004-05-19 12:58:42.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/officeHelper/XMoveMouseCompact.java 2005-08-28 18:54:11.000000000 +0000
-@@ -71,7 +71,7 @@
- * @version $Revision$
- */
- public class XMoveMouseCompactMethods {
-- private static final Hashtable m_xhash;
-+ public static final Hashtable m_xhash;
-
- static {
- m_xhash = getXMoveMouseCompact();
-@@ -91,7 +91,7 @@
- *
- * @return hashtable
- */
-- private static Hashtable getXMoveMouseCompact() {
-+ public static Hashtable getXMoveMouseCompact() {
- String[][] moveMousetoObject = new String[][] { { "typ", "" }, {
- "method", "moveMousetoObject" }, {
- "path", "" }
---- wizards/com/sun/star/wizards/tutorial/executer/officeHelper/XTabList.java.gcj~ 2004-05-19 12:59:06.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/officeHelper/XTabList.java 2005-08-28 18:54:11.000000000 +0000
-@@ -31,7 +31,7 @@
- * @version $Revision$
- */
- public class XTabListMethods {
-- private static final Hashtable m_xhash;
-+ public static final Hashtable m_xhash;
-
- static {
- m_xhash = getXTabList();
-@@ -51,7 +51,7 @@
- *
- * @return hashtable
- */
-- private static Hashtable getXTabList() {
-+ public static Hashtable getXTabList() {
- String[][] setTab = new String[][] { { "typ", "" }, {
- "method", "setTab" }, {
- "path", "" }, {
---- wizards/com/sun/star/wizards/tutorial/executer/officeHelper/XTextCompact.java.gcj~ 2004-05-19 12:59:17.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/officeHelper/XTextCompact.java 2005-08-28 18:54:11.000000000 +0000
-@@ -148,7 +148,7 @@
- * @version $Revision$
- */
- public class XTextCompactMethods {
-- private static final Hashtable m_xhash;
-+ public static final Hashtable m_xhash;
-
- static {
- m_xhash = getXTextCompact();
-@@ -168,7 +168,7 @@
- *
- * @return methods
- */
-- private static Hashtable getXTextCompact() {
-+ public static Hashtable getXTextCompact() {
- String[][] insertText = new String[][] { { "typ", "" }, {
- "method", "insertText" }, {
- "path", "" }, {
---- wizards/com/sun/star/wizards/tutorial/executer/util/AccessibilityTools.java.gcj~ 2004-05-19 12:59:52.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/util/AccessibilityTools.java 2005-08-28 18:54:11.000000000 +0000
-@@ -30,14 +30,14 @@
- * @version $Revision$
- */
- public class AccessibilityTools {
-- private static AccessibilityTools m_acces;
-- private static int m_LIMIT = 300;
-- private static int m_MAX_COUNT = 5;
-- private static int m_LEVEL = 1;
-- private static int m_SHEET_LIMIT = 8000000;
-+ public static AccessibilityTools m_acces;
-+ public static int m_LIMIT = 300;
-+ public static int m_MAX_COUNT = 5;
-+ public static int m_LEVEL = 1;
-+ public static int m_SHEET_LIMIT = 8000000;
- public static final String SERCH_FORM_NAME = "NAME";
- public static final String SERCH_FORM_INDEX = "INDEX";
-- private static String m_current_search_form = SERCH_FORM_NAME;
-+ public static String m_current_search_form = SERCH_FORM_NAME;
-
- /**
- * Static initializer for this class. Creates the only instance for that.
-@@ -49,7 +49,7 @@
- /**
- * Creates a new AccessibilityTools object.
- */
-- private AccessibilityTools() {
-+ public AccessibilityTools() {
- m_acces = this;
- }
-
-@@ -236,7 +236,7 @@
- * @param name name
- * @param vec result vector for the found children
- */
-- private void getAllXAccessibleContexts(XAccessibleContext ac, short role, String name, Vector vec) {
-+ public void getAllXAccessibleContexts(XAccessibleContext ac, short role, String name, Vector vec) {
- try {
- short roleTemp = ac.getAccessibleRole();
- String nameTemp = ac.getAccessibleName().trim();
-@@ -301,7 +301,7 @@
- *
- * @return DOCUMENT ME!
- */
-- private XAccessibleContext getAllXAccessibleContexts(XAccessibleContext acc, String[] path) {
-+ public XAccessibleContext getAllXAccessibleContexts(XAccessibleContext acc, String[] path) {
- int leng = path.length;
- XAccessibleContext ac = acc;
-
-@@ -353,7 +353,7 @@
- *
- * @return DOCUMENT ME!
- */
-- private Vector getAllXAccessibleContextsHelp(short role, String name, Vector vec) {
-+ public Vector getAllXAccessibleContextsHelp(short role, String name, Vector vec) {
- Vector resultVec = new Vector();
-
- for (Enumeration e = vec.elements(); e.hasMoreElements();) {
-@@ -376,7 +376,7 @@
- *
- * @return DOCUMENT ME!
- */
-- private XAccessibleContext getAllXAccessibleIndexContextsHelp(String[] path, Vector vec) {
-+ public XAccessibleContext getAllXAccessibleIndexContextsHelp(String[] path, Vector vec) {
- XAccessibleContext ac = null;
-
- for (Enumeration e = vec.elements(); e.hasMoreElements();) {
-@@ -975,7 +975,7 @@
- *
- * @return accessibility child
- */
-- private static XAccessible getXAccessible(XWindow[] xWindows, String[] path) {
-+ public static XAccessible getXAccessible(XWindow[] xWindows, String[] path) {
- String accessName = "";
- short role = -1;
-
-@@ -1129,7 +1129,7 @@
- *
- * @throws com.sun.star.lang.IndexOutOfBoundsException
- */
-- private XAccessibleContext getXAccessibleCellContext(XAccessibleContext ac, String childName, int minIndex, int maxIndex) throws com.sun.star.lang.IndexOutOfBoundsException {
-+ public XAccessibleContext getXAccessibleCellContext(XAccessibleContext ac, String childName, int minIndex, int maxIndex) throws com.sun.star.lang.IndexOutOfBoundsException {
- XAccessibleContext rAc = null;
- int ref = -1;
-
-@@ -1162,7 +1162,7 @@
- * @return zero if the names are identical, otherwise "-1" if "name"'s length is less
- * than "refName"'s length or "1" in the other case.
- */
-- private int compare(String name, String refName) {
-+ public int compare(String name, String refName) {
- int result = compareNumber(getNumber(name), getNumber(refName));
-
- if (result == 0) {
-@@ -1189,7 +1189,7 @@
- *
- * @return the string will be converted to Integer and compared
- */
-- private int compareNumber(String number, String refNumber) {
-+ public int compareNumber(String number, String refNumber) {
- Integer num = Integer.decode(number);
- Integer refNum = Integer.decode(refNumber);
-
-@@ -1203,7 +1203,7 @@
- *
- * @return cell number
- */
-- private String getNumber(String name) {
-+ public String getNumber(String name) {
- String res = "";
-
- for (int i = (name.length() - 1); i > -1; i--) {
-@@ -1228,7 +1228,7 @@
- *
- * @return find child for the role and name in tree
- */
-- private XAccessibleContext findXAccessibleContextHelp(XAccessible xacc, short role, String name) {
-+ public XAccessibleContext findXAccessibleContextHelp(XAccessible xacc, short role, String name) {
- return findXAccessibleContextHelp(xacc.getAccessibleContext(), role, name);
- }
-
-@@ -1241,7 +1241,7 @@
- *
- * @return find child for the role and name in tree
- */
-- private XAccessibleContext findXAccessibleContextHelp(XAccessibleContext ac, short role, String name) {
-+ public XAccessibleContext findXAccessibleContextHelp(XAccessibleContext ac, short role, String name) {
- Vector vec = new Vector();
- XAccessibleContext ac1 = findXAccessibleContext(ac, role, name, 0, vec);
-
-@@ -1272,7 +1272,7 @@
- *
- * @return find child for the role and name in tree
- */
-- private XAccessibleContext findXAccessibleContext(XAccessibleContext ac, short role, String name, int count, Vector vec) {
-+ public XAccessibleContext findXAccessibleContext(XAccessibleContext ac, short role, String name, int count, Vector vec) {
- if ((ac.getAccessibleRole() == role) && ac.getAccessibleName().equals(name)) {
- return ac;
- } else {
-@@ -1327,7 +1327,7 @@
- * @param properties container
- * @param indent
- */
-- private void setAllAccessibleProperties(XAccessible xacc, Vector properties, String indent) {
-+ public void setAllAccessibleProperties(XAccessible xacc, Vector properties, String indent) {
- XAccessibleContext ac = xacc.getAccessibleContext();
- properties.add(indent + accessibleToString(ac));
-
-@@ -1349,7 +1349,7 @@
- *
- * @return XAccessible object representing
- */
-- private String accessibleToString(XAccessibleContext AC) {
-+ public String accessibleToString(XAccessibleContext AC) {
- String result = "";
- XAccessibleContext xAC = AC;
-
---- wizards/com/sun/star/wizards/tutorial/executer/util/Child.java.gcj~ 2004-05-19 13:00:14.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/util/Child.java 2005-08-28 18:54:11.000000000 +0000
-@@ -9,8 +9,8 @@
- * @version $Revision$
- */
- public class Child {
-- private XAccessibleContext m_context = null;
-- private int m_count = -1;
-+ public XAccessibleContext m_context = null;
-+ public int m_count = -1;
-
- /**
- * Create a new Child.
---- wizards/com/sun/star/wizards/tutorial/executer/util/Control.java.gcj~ 2004-05-19 13:00:26.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/util/Control.java 2005-08-28 18:54:11.000000000 +0000
-@@ -21,17 +21,17 @@
- * @version $Revision$
- */
- public class Control extends Robot {
-- private static Control m_con;
-- private static Rectangle m_rectangle;
-- private static int m_mousePoint_X = 0;
-- private static int m_mousePoint_Y = 0;
-- private static int m_autoMoveMouseDelay = 4;
-- private static int m_moveMouseStep = 1;
-- private static int m_autoMouseScrollDelay = 10;
-- private static int m_autoKeyDelay = 0;
-- private static boolean m_animate = true;
-- private static boolean m_break = false;
-- private static String m_mouseAnimateStyle = "LINE";
-+ public static Control m_con;
-+ public static Rectangle m_rectangle;
-+ public static int m_mousePoint_X = 0;
-+ public static int m_mousePoint_Y = 0;
-+ public static int m_autoMoveMouseDelay = 4;
-+ public static int m_moveMouseStep = 1;
-+ public static int m_autoMouseScrollDelay = 10;
-+ public static int m_autoKeyDelay = 0;
-+ public static boolean m_animate = true;
-+ public static boolean m_break = false;
-+ public static String m_mouseAnimateStyle = "LINE";
- public static final String MOUSE_SCROLL_UP = "UP";
- public static final String MOUSE_SCROLL_DOWN = "DOWN";
- public static final String MOUSE_CLICK_LEFT = "LEFT";
-@@ -106,7 +106,7 @@
- *
- * @param mouseStep DOCUMENT ME!
- */
-- private void setMoveMouseStep(int mouseStep) {
-+ public void setMoveMouseStep(int mouseStep) {
- if (mouseStep > -1) {
- m_con.m_moveMouseStep = mouseStep;
- } else {
-@@ -129,7 +129,7 @@
- *
- * @return DOCUMENT ME!
- */
-- private String getOS_Name() {
-+ public String getOS_Name() {
- Properties prop = System.getProperties();
-
- return prop.getProperty("os.name");
-@@ -397,7 +397,7 @@
- * @param x the mouse pointer to the given x and y.
- * @param y position
- */
-- private synchronized void mouseClick(int x, int y) {
-+ public synchronized void mouseClick(int x, int y) {
- int[] points = new int[] { x, y };
-
- if (mouseAnimate(points).equals("done")) {
-@@ -413,7 +413,7 @@
- *
- * @return DOCUMENT ME!
- */
-- private synchronized String mouseAnimate(int x, int y) {
-+ public synchronized String mouseAnimate(int x, int y) {
- String res = "done";
- int pointX = new Double(m_rectangle.getX()).intValue();
- int pointY = new Double(m_rectangle.getY()).intValue();
-@@ -447,7 +447,7 @@
- *
- * @return DOCUMENT ME!
- */
-- private String mouseAnimateStyle_Basic(int pointX, int pointY, int x, int y) {
-+ public String mouseAnimateStyle_Basic(int pointX, int pointY, int x, int y) {
- String res = "done";
-
- while ((pointX != x) || (pointY != y)) {
-@@ -504,7 +504,7 @@
- *
- * @return DOCUMENT ME!
- */
-- private String mouseAnimateStyle_Menu(int pointX, int pointY, int x, int y) {
-+ public String mouseAnimateStyle_Menu(int pointX, int pointY, int x, int y) {
- String res = "done";
-
- while ((pointX != x) || (pointY != y)) {
-@@ -559,7 +559,7 @@
- *
- * @return DOCUMENT ME!
- */
-- private String mouseAnimateStyle_Line(int pointX, int pointY, int x, int y) {
-+ public String mouseAnimateStyle_Line(int pointX, int pointY, int x, int y) {
- String res = "done";
-
- if ((pointX != x) || (pointY != y)) {
---- wizards/com/sun/star/wizards/tutorial/executer/util/File.java.gcj~ 2004-05-19 13:00:59.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/util/File.java 2005-08-28 18:54:11.000000000 +0000
-@@ -17,7 +17,7 @@
- /**
- * Properties
- */
-- private PrintWriter pWriter = null;
-+ public PrintWriter pWriter = null;
-
- /**
- * Create a new File.
---- wizards/com/sun/star/wizards/tutorial/executer/util/FindInterfaces.java.gcj~ 2004-05-19 13:01:23.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/util/FindInterfaces.java 2005-08-28 18:54:11.000000000 +0000
-@@ -16,9 +16,9 @@
- * @version $Revision$
- */
- public class FindInterfaces {
-- private static Class[] m_paramClazz = new Class[0];
-- private static Object[] m_obj = new Object[0];
-- private static String m_IntMethodName = "getMethods";
-+ public static Class[] m_paramClazz = new Class[0];
-+ public static Object[] m_obj = new Object[0];
-+ public static String m_IntMethodName = "getMethods";
-
- /**
- * Get the implemented interfaces for the argument class.
-@@ -42,7 +42,7 @@
- * Presentation_Drawing, Spreedsheet, TextDocument.
- * @param methods found interfaces
- */
-- private static void getInterfaces(Class c, Hashtable methods) {
-+ public static void getInterfaces(Class c, Hashtable methods) {
- try {
- if (c != null) {
- if (c.isInterface()) {
---- wizards/com/sun/star/wizards/tutorial/executer/util/Helper.java.gcj~ 2004-07-23 14:24:59.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/util/Helper.java 2005-08-28 18:54:11.000000000 +0000
-@@ -34,10 +34,10 @@
- * @version $Revision$
- */
- public class Helper {
-- private XMultiServiceFactory m_xMSF = null;
-- private String m_connectString = null;
-- private static XLogger m_xlogger = (XLogger) DefaultLogger.createLoggerInstance(null);
-- private static boolean m_logState = false;
-+ public XMultiServiceFactory m_xMSF = null;
-+ public String m_connectString = null;
-+ public static XLogger m_xlogger = (XLogger) DefaultLogger.createLoggerInstance(null);
-+ public static boolean m_logState = false;
-
- /**
- * Creates a new Helper object.
---- wizards/com/sun/star/wizards/tutorial/executer/util/Localizer.java.gcj~ 2004-05-19 13:01:45.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/util/Localizer.java 2005-08-28 18:54:11.000000000 +0000
-@@ -176,7 +176,7 @@
- *
- * @throws com.sun.star.uno.Exception DOCUMENT ME!
- */
-- private void localizeHelper() throws com.sun.star.uno.Exception {
-+ public void localizeHelper() throws com.sun.star.uno.Exception {
- //get macro names
- String[] macroNames = MacroReader.getDocumentMacroNames(getXModel(), "Standard");
- assure(macroNames.length > 0);
-@@ -240,7 +240,7 @@
- *
- * @throws com.sun.star.uno.Exception DOCUMENT ME!
- */
-- private XFrame getXFrame() throws com.sun.star.uno.Exception {
-+ public XFrame getXFrame() throws com.sun.star.uno.Exception {
- XModel xModel = getXModel();
- XController xController = xModel.getCurrentController();
- XFrame xFrame = xController.getFrame();
---- wizards/com/sun/star/wizards/tutorial/executer/util/NameProvider.java.gcj~ 2004-05-19 13:02:33.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/util/NameProvider.java 2005-08-28 18:54:11.000000000 +0000
-@@ -16,7 +16,7 @@
- * @version $Revision$
- */
- public class NameProvider {
-- private static String[] maStateNames = { "INVALID", // 0
-+ public static String[] maStateNames = { "INVALID", // 0
- "ACTIVE", "ARMED", "BUSY", "CHECKED", "COLLAPSED", "DEFUNC", "EDITABLE", "ENABLED", "EXPANDABLE", "EXPANDED", // 10
- "FOCUSABLE", "FOCUSED", "HORIZONTAL", "ICONIFIED", "MODAL", "MULTILINE", "MULTISELECTABLE", "OPAQUE", "PRESSED", "RESIZABLE", // 20
- "SELECTABLE", "SELECTED", "SENSITIVE", "SHOWING", "SINGLE_LINE", "STALE", "TRANSIENT", "VERTICAL", "VISIBLE", "MANAGES_DESCENDANT" // 30
-@@ -26,7 +26,7 @@
- "TABLE_COLUMN_DESCRIPTION_CHANGED", "TABLE_COLUMN_HEADER_CHANGED", "TABLE_MODEL_CHANGED", "TABLE_ROW_DESCRIPTION_CHANGED", "TABLE_ROW_HEADER_CHANGED", "TABLE_SUMMARY_CHANGED", "TEXT", "VALUE", "VISIBLE_DATA", "CONTROLLED_BY_PROPERTY", // 20
- "CONTROLLER_FOR_PROPERTY", "LABEL_FOR_PROPERTY", "LABELED_BY_PROPERTY", "MEMBER_OF_PROPERTY", "CONTENT_FLOWS_FROM", "CONTENT_FLOWS_TO", "ALL_CHILDREN_CHANGED", "BOUNDRECT" // 28
- };
-- private static HashMap maRoleMap = new HashMap();
-+ public static HashMap maRoleMap = new HashMap();
-
- static {
- maRoleMap.put(new Integer(0), "UNKNOWN");
---- wizards/com/sun/star/wizards/tutorial/executer/util/PathProperties.java.gcj~ 2004-05-19 13:02:58.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/util/PathProperties.java 2005-08-28 18:54:11.000000000 +0000
-@@ -11,9 +11,9 @@
- * @author mc114771
- */
- public class PathProperties {
-- private static short m_role = -1;
-- private static String m_name = "";
-- private static int m_index = -1;
-+ public static short m_role = -1;
-+ public static String m_name = "";
-+ public static int m_index = -1;
-
- /**
- * Create a new Child.
---- wizards/com/sun/star/wizards/tutorial/executer/util/PropertiesFileWriter.java.gcj~ 2004-05-19 13:03:09.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/util/PropertiesFileWriter.java 2005-08-28 18:54:11.000000000 +0000
-@@ -17,7 +17,7 @@
- * @version $Revision$
- */
- public class PropertiesFileWriter {
-- private PrintWriter pWriter = null;
-+ public PrintWriter pWriter = null;
-
- /**
- * Creates a new PropertiesFileWriter object. Parameter can be "user.home" or
---- wizards/com/sun/star/wizards/tutorial/executer/CallTutorialFramework.java.gcj~ 2004-05-19 12:54:26.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/CallTutorialFramework.java 2005-08-28 18:54:10.000000000 +0000
-@@ -173,7 +173,7 @@
- *
- * @param commands DOCUMENT ME!
- */
-- private void execute_commands(NamedValue[] commands) {
-+ public void execute_commands(NamedValue[] commands) {
- Control.setBreakControl(false);
-
- String macroName = "";
-@@ -245,7 +245,7 @@
- *
- * @param commands DOCUMENT ME!
- */
-- private void execute_name(final NamedValue[] commands) {
-+ public void execute_name(final NamedValue[] commands) {
- Helper.log("execute_name");
-
- try {
-@@ -260,7 +260,7 @@
- *
- * @param commands DOCUMENT ME!
- */
-- private void execute_index(final NamedValue[] commands) {
-+ public void execute_index(final NamedValue[] commands) {
- Helper.log("execute_index");
-
- try {
-@@ -275,7 +275,7 @@
- *
- * @param macroName DOCUMENT ME!
- */
-- private void execute_Localisation(String macroName) {
-+ public void execute_Localisation(String macroName) {
- Helper.log("execute_Localisation");
-
- try {
-@@ -290,12 +290,12 @@
- /**
- * The service name, that must be used to get an instance of this service.
- */
-- private static final String __serviceName = "com.sun.star.wizards.tutorial.executer.CallTutorialFramework";
-+ public static final String __serviceName = "com.sun.star.wizards.tutorial.executer.CallTutorialFramework";
-
- /**
- * The service manager, that gives access to all registered services.
- */
-- private XMultiServiceFactory xmultiservicefactory;
-+ public XMultiServiceFactory xmultiservicefactory;
-
- /**
- * This method is a member of the interface for initializing an object directly
---- wizards/com/sun/star/wizards/tutorial/executer/ExecuteCache.java.gcj~ 2004-05-19 12:54:39.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/ExecuteCache.java 2005-08-28 18:54:10.000000000 +0000
-@@ -32,9 +32,9 @@
- public static Vector m_localisationPaths = new Vector();
-
- //public static boolean m_break = false;
-- private XExtendedToolkit m_exToolkit = null;
-- private Helper m_helper = null;
-- private CallKeyHandler m_keyHandler = new CallKeyHandler();
-+ public XExtendedToolkit m_exToolkit = null;
-+ public Helper m_helper = null;
-+ public CallKeyHandler m_keyHandler = new CallKeyHandler();
-
- /**
- * Creates a new ExecuteCache object.
-@@ -159,7 +159,7 @@
- /**
- * DOCUMENT ME!
- */
-- private synchronized void commands() {
-+ public synchronized void commands() {
- while (!commandsPool.isEmpty()) {
- NamedValue[] commands = (NamedValue[]) commandsPool.get(0);
- commandsPool.remove(0);
-@@ -181,7 +181,7 @@
- *
- * @param commands DOCUMENT ME!
- */
-- private synchronized void execute(NamedValue[] commands) {
-+ public synchronized void execute(NamedValue[] commands) {
- //m_break = false;
- Control.setBreakControl(false);
-
-@@ -291,7 +291,7 @@
- *
- * @param path DOCUMENT ME!
- */
-- private void checkExecutePath(String[] path) {
-+ public void checkExecutePath(String[] path) {
- String identify = path[0].trim();
- String[] idents = identify.split("#", 3);
-
-@@ -310,7 +310,7 @@
- *
- * @param role DOCUMENT ME!
- */
-- private void waitTopWindow(short role) {
-+ public void waitTopWindow(short role) {
- try {
- while (AccessibilityTools.isTopWindowActive(m_helper.getTopWindows(), role)) {
- sleep(1000);
-@@ -328,7 +328,7 @@
- *
- * @param keyhandler DOCUMENT ME!
- */
-- private synchronized void addKeyHandler(CallKeyHandler keyhandler) {
-+ public synchronized void addKeyHandler(CallKeyHandler keyhandler) {
- m_exToolkit.addKeyHandler(keyhandler);
- }
-
-@@ -337,7 +337,7 @@
- *
- * @param keyhandler DOCUMENT ME!
- */
-- private synchronized void removeKeyHandler(CallKeyHandler keyhandler) {
-+ public synchronized void removeKeyHandler(CallKeyHandler keyhandler) {
- m_exToolkit.removeKeyHandler(keyhandler);
- }
-
---- wizards/com/sun/star/wizards/tutorial/executer/ExecuteMethod.java.gcj~ 2004-05-19 12:54:50.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/ExecuteMethod.java 2005-08-28 18:54:10.000000000 +0000
-@@ -15,7 +15,7 @@
- * @author mc114771
- */
- public class ExecuteMethod {
-- private static ExecuteMethod m_execute;
-+ public static ExecuteMethod m_execute;
-
- /**
- * Static initializer for this class. Creates the only instance for that.
-@@ -27,7 +27,7 @@
- /**
- * Creates a new AccessibilityTools object.
- */
-- private ExecuteMethod() {
-+ public ExecuteMethod() {
- m_execute = this;
- }
-
-@@ -69,7 +69,7 @@
- *
- * @return result
- */
-- private boolean xItem(XItemSelection xmm, String methodName, String[] path, Vector params) {
-+ public boolean xItem(XItemSelection xmm, String methodName, String[] path, Vector params) {
- if (methodName.equals("selectItem_Index")) {
- xmm.selectItem_Index(path, getIntValue(params.get(0)));
-
-@@ -94,7 +94,7 @@
- *
- * @return result
- */
-- private boolean xTabList(XTabList xmm, String methodName, String[] path, Vector params) {
-+ public boolean xTabList(XTabList xmm, String methodName, String[] path, Vector params) {
- if (methodName.equals("setTab")) {
- xmm.setTab(path, getIntValue(params.get(0)), getIntValue(params.get(1)));
-
-@@ -115,7 +115,7 @@
- *
- * @return result
- */
-- private boolean xMoveMouseCompact(XMoveMouseCompact xmm, String methodName, String[] path, Vector params) {
-+ public boolean xMoveMouseCompact(XMoveMouseCompact xmm, String methodName, String[] path, Vector params) {
- if (methodName.equals("moveMousetoObject")) {
- xmm.moveMousetoObject(path);
-
-@@ -156,7 +156,7 @@
- *
- * @return result
- */
-- private boolean xMouse(XMouse xm, String methodName, String[] path, Vector params) {
-+ public boolean xMouse(XMouse xm, String methodName, String[] path, Vector params) {
- if (methodName.equals("sleep")) {
- xm.sleep(getIntValue(params.get(0)));
-
-@@ -199,7 +199,7 @@
- *
- * @return result
- */
-- private boolean xTextCompact(XTextCompact xtc, String methodName, String[] path, Vector params) {
-+ public boolean xTextCompact(XTextCompact xtc, String methodName, String[] path, Vector params) {
- if (methodName.equals("insertText")) {
- xtc.insertText(path, getIntValue(params.get(0)), (String) params.get(1));
-
-@@ -272,7 +272,7 @@
- *
- * @return result
- */
-- private boolean xCellTextCompact(XCellTextCompact xtc, String methodName, String[] path, Vector params) {
-+ public boolean xCellTextCompact(XCellTextCompact xtc, String methodName, String[] path, Vector params) {
- if (methodName.equals("insertTexttoCell")) {
- xtc.insertTexttoCell(path, getIntValue(params.get(0)), (String) params.get(1));
-
---- wizards/com/sun/star/wizards/tutorial/executer/ExecutePropertiesMethod.java.gcj~ 2004-05-19 12:55:01.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/ExecutePropertiesMethod.java 2005-08-28 18:54:10.000000000 +0000
-@@ -21,7 +21,7 @@
- */
- public class ExecutePropertiesMethod {
- public PropertyValue[] m_propertyValue = null;
-- private Helper m_helper = null;
-+ public Helper m_helper = null;
-
- /**
- * Creates a new ExecutePropertiesMethod object.
-@@ -105,7 +105,7 @@
- *
- * @return if found the method the result will be "true", otherwise "false"
- */
-- private boolean xWindow(XWindow xmm, String methodName, Vector params) {
-+ public boolean xWindow(XWindow xmm, String methodName, Vector params) {
- if (methodName.equals("windowToFront")) {
- xmm.windowToFront((String) params.get(0));
-
-@@ -129,7 +129,7 @@
- *
- * @return result
- */
-- private boolean xControl(XControl xmm, String methodName, Vector params) {
-+ public boolean xControl(XControl xmm, String methodName, Vector params) {
- if (methodName.equals("setDelay")) {
- xmm.setDelay(getIntValue(params.get(0)), getIntValue(params.get(1)), getIntValue(params.get(2)), getIntValue(params.get(3)), getIntValue(params.get(4)));
-
-@@ -185,7 +185,7 @@
- *
- * @return result
- */
-- private boolean xProperties(XProperties xmm, String methodName, Vector params) {
-+ public boolean xProperties(XProperties xmm, String methodName, Vector params) {
- if (methodName.equals("printAllProperties")) {
- xmm.printAllProperties(getIntValue(params.get(0)), (String) params.get(1), (String) params.get(2));
-
-@@ -207,7 +207,7 @@
- *
- * @return Int value of Object. Returned -1 in error case.
- */
-- private int getIntValue(Object obj) {
-+ public int getIntValue(Object obj) {
- return ExecuteMethod.getIntValue(obj);
- }
- }
---- wizards/com/sun/star/wizards/tutorial/executer/LocalisationCache.java.gcj~ 2004-05-19 12:55:14.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/LocalisationCache.java 2005-08-28 18:54:10.000000000 +0000
-@@ -40,7 +40,7 @@
- /**
- * Creates a new AccessibilityTools object.
- */
-- private LocalisationCache() {
-+ public LocalisationCache() {
- m_executeCache = this;
- m_executeCache.setPriority(Thread.MAX_PRIORITY);
- m_executeCache.start();
---- wizards/com/sun/star/wizards/tutorial/executer/TranslateMacro.java.gcj~ 2004-05-19 12:55:51.000000000 +0000
-+++ wizards/com/sun/star/wizards/tutorial/executer/TranslateMacro.java 2005-08-28 18:54:11.000000000 +0000
-@@ -14,7 +14,7 @@
- * @author mc114771
- */
- public class TranslateMacro {
-- private static TranslateMacro m_trans = null;
-+ public static TranslateMacro m_trans = null;
-
- /**
- * Static initializer for this class. Creates the only instance for that.
-@@ -26,7 +26,7 @@
- /**
- * Creates a new AccessibilityTools object.
- */
-- private TranslateMacro() {
-+ public TranslateMacro() {
- m_trans = this;
- }
-
-@@ -60,7 +60,7 @@
- *
- * @return DOCUMENT ME!
- */
-- private String getHeader(String ORGMacro) {
-+ public String getHeader(String ORGMacro) {
- String header = ORGMacro;
-
- try {
-@@ -81,7 +81,7 @@
- *
- * @return DOCUMENT ME!
- */
-- private String getBody(String ORGMacro) {
-+ public String getBody(String ORGMacro) {
- String body = "";
-
- try {
-@@ -101,7 +101,7 @@
- *
- * @return DOCUMENT ME!
- */
-- private String transHeader(String macroName, String header) {
-+ public String transHeader(String macroName, String header) {
- String transHeader = "";
- String part1 = "";
- String part2 = "";
-@@ -130,7 +130,7 @@
- *
- * @return DOCUMENT ME!
- */
-- private String getAction(String macro, int actionsize) {
-+ public String getAction(String macro, int actionsize) {
- String action = null;
-
- try {
-@@ -151,7 +151,7 @@
- *
- * @return DOCUMENT ME!
- */
-- private String transAction(String action, Vector paths) {
-+ public String transAction(String action, Vector paths) {
- String result = "";
-
- try {
-@@ -198,7 +198,7 @@
- *
- * @return DOCUMENT ME!
- */
-- private String transBody(String body, Vector transPaths) {
-+ public String transBody(String body, Vector transPaths) {
- String newBody = "";
-
- try {
---- wizards/com/sun/star/wizards/ui/event/AbstractListener.java.gcj~ 2005-02-21 14:07:49.000000000 +0000
-+++ wizards/com/sun/star/wizards/ui/event/AbstractListener.java 2005-08-28 18:54:11.000000000 +0000
-@@ -80,7 +80,7 @@
- * @author rpiterman
- */
- public class AbstractListener {
-- private Hashtable mHashtable = new Hashtable();
-+ public Hashtable mHashtable = new Hashtable();
-
- /** Creates a new instance of AbstractListener */
- public AbstractListener() {
---- wizards/com/sun/star/wizards/ui/event/DataAware.java.gcj~ 2004-11-27 09:08:18.000000000 +0000
-+++ wizards/com/sun/star/wizards/ui/event/DataAware.java 2005-08-28 18:54:11.000000000 +0000
-@@ -82,26 +82,26 @@
- * Data Object.
- */
- public abstract class DataAware {
-- protected static Class[] EMPTY_ARRAY = new Class[0];
-+ public static Class[] EMPTY_ARRAY = new Class[0];
-
- /**
- * this is the data object.
- */
-- protected Object dataObject;
-- //protected Method setMethod;
-- //protected Method getMethod;
-+ public Object dataObject;
-+ //public Method setMethod;
-+ //public Method getMethod;
- /**
- * A Value Object knows how to get/set a value
- * from/to the data object.
- */
-- protected Value value;
-+ public Value value;
-
- /**
- * creates a DataAware object for the given data object and Value object.
- * @param dataObject_
- * @param value_
- */
-- protected DataAware(Object dataObject_, Value value_) {
-+ public DataAware(Object dataObject_, Value value_) {
- dataObject = dataObject_;
- value = value_;
- //getMethod = createGetMethod(dataPropName, dataObject);
-@@ -141,7 +141,7 @@
- * another kind of Data is needed.
- * @param newValue the new value to set to the DataObject.
- */
-- protected void setToData(Object newValue) {
-+ public void setToData(Object newValue) {
- value.set(newValue,getDataObject());
- }
-
-@@ -151,7 +151,7 @@
- * the value object.
- * @return the current value of the data object.
- */
-- protected Object getFromData() {
-+ public Object getFromData() {
- return value.get(getDataObject());
- }
-
-@@ -159,13 +159,13 @@
- * sets the given value to the UI control
- * @param newValue the value to set to the ui control.
- */
-- protected abstract void setToUI(Object newValue);
-+ public abstract void setToUI(Object newValue);
-
- /**
- * gets the current value from the UI control.
- * @return the current value from the UI control.
- */
-- protected abstract Object getFromUI();
-+ public abstract Object getFromUI();
-
- /**
- * updates the UI control according to the
-@@ -188,7 +188,7 @@
- * enables
- * @param currentValue
- */
-- protected void enableControls(Object currentValue) {
-+ public void enableControls(Object currentValue) {
- }
-
- /**
-@@ -215,7 +215,7 @@
- * @param b second object to compare.
- * @return true if both are null or both are equal.
- */
-- protected boolean equals(Object a, Object b) {
-+ public boolean equals(Object a, Object b) {
- if (a == null && b == null)
- return true;
- if (a == null || b == null)
-@@ -301,11 +301,11 @@
- /**
- * the get method of the JavaBean-style property
- */
-- private Method getMethod;
-+ public Method getMethod;
- /**
- * the set method of the JavaBean-style property
- */
-- private Method setMethod;
-+ public Method setMethod;
-
- /**
- * creates a PropertyValue for the property with
-@@ -325,7 +325,7 @@
- * @param obj the object which contains the property.
- * @return the get method reflection object.
- */
-- protected Method createGetMethod(String propName, Object obj) {
-+ public Method createGetMethod(String propName, Object obj) {
- Method m = null;
- try { //try to get a "get" method.
- m = obj.getClass().getMethod("get" + propName, EMPTY_ARRAY);
-@@ -359,7 +359,7 @@
-
- }
-
-- protected Method createSetMethod(String propName, Object obj, Class paramClass) {
-+ public Method createSetMethod(String propName, Object obj, Class paramClass) {
- Method m = null;
- try {
- m = obj.getClass().getMethod("set" + propName, new Class[] { paramClass });
---- wizards/com/sun/star/wizards/ui/event/DataAwareFields.java.gcj~ 2004-11-27 09:08:30.000000000 +0000
-+++ wizards/com/sun/star/wizards/ui/event/DataAwareFields.java 2005-08-28 18:54:11.000000000 +0000
-@@ -73,8 +73,8 @@
- * @see com.sun.star.wizards.ui.event.DataAware.Value
- */
- public class DataAwareFields {
-- private static final String TRUE = "true";
-- private static final String FALSE = "false";
-+ public static final String TRUE = "true";
-+ public static final String FALSE = "false";
-
- /**
- * returns a Value Object which sets and gets values
-@@ -116,7 +116,7 @@
- * an abstract implementation of DataAware.Value to access
- * object memebers (fields) usign reflection.
- */
-- private static abstract class FieldValue implements DataAware.Value {
-+ public static abstract class FieldValue implements DataAware.Value {
- Field field;
-
- public FieldValue(Field field_) {
-@@ -129,8 +129,8 @@
-
- }
-
-- private static class BooleanFieldValue extends FieldValue {
-- private Class convertTo;
-+ public static class BooleanFieldValue extends FieldValue {
-+ public Class convertTo;
-
- public BooleanFieldValue(Field f, Class convertTo_) {
- super(f);
-@@ -169,8 +169,8 @@
-
- }
-
-- private static class IntFieldValue extends FieldValue {
-- private Class convertTo;
-+ public static class IntFieldValue extends FieldValue {
-+ public Class convertTo;
-
- public IntFieldValue(Field f, Class convertTo_) {
- super(f);
-@@ -208,8 +208,8 @@
- }
-
- }
-- private static class DoubleFieldValue extends FieldValue {
-- private Class convertTo;
-+ public static class DoubleFieldValue extends FieldValue {
-+ public Class convertTo;
-
- public DoubleFieldValue(Field f, Class convertTo_) {
- super(f);
-@@ -246,8 +246,8 @@
- }
- }
-
-- private static class ConvertedStringValue extends FieldValue {
-- private Class convertTo;
-+ public static class ConvertedStringValue extends FieldValue {
-+ public Class convertTo;
-
- public ConvertedStringValue(Field f, Class convertTo_) {
- super(f);
-@@ -290,7 +290,7 @@
- }
- }
-
-- private static class SimpleFieldValue extends FieldValue {
-+ public static class SimpleFieldValue extends FieldValue {
-
- public SimpleFieldValue(Field f) {
- super(f);
-@@ -326,7 +326,7 @@
- }
- }
-
-- private static double toDouble(Object value) {
-+ public static double toDouble(Object value) {
- if (value instanceof Boolean)
- return ((Boolean) value).booleanValue() ? 1 : 0;
- else if (value instanceof Number)
-@@ -339,7 +339,7 @@
- throw new IllegalArgumentException("Can't convert value to double." + value.getClass().getName());
- }
-
-- private static boolean toBoolean(Object value) {
-+ public static boolean toBoolean(Object value) {
- if (value instanceof Boolean)
- return ((Boolean) value).booleanValue();
- else if (value instanceof Number)
-@@ -352,15 +352,15 @@
- throw new IllegalArgumentException("Can't convert value to boolean." + value.getClass().getName());
- }
-
-- private static int toInt(boolean b) {
-+ public static int toInt(boolean b) {
- return b ? 1 : 0;
- }
-
-- private static short[] toShortArray(double i) {
-+ public static short[] toShortArray(double i) {
- return new short[] {(short) i };
- }
-
-- private static Number toNumber(double i, Class c) {
-+ public static Number toNumber(double i, Class c) {
- if (c.equals(Integer.class))
- return new Integer((int) i);
- else if (c.equals(Short.class))
---- wizards/com/sun/star/wizards/ui/event/ListModelBinder.java.gcj~ 2004-11-27 09:08:54.000000000 +0000
-+++ wizards/com/sun/star/wizards/ui/event/ListModelBinder.java 2005-08-28 18:54:11.000000000 +0000
-@@ -73,10 +73,10 @@
-
- * */
- public class ListModelBinder implements ListDataListener {
-- private XListBox unoList;
-- private Object unoListModel;
-- private ListModel listModel;
-- private Renderer renderer = new Renderer() {
-+ public XListBox unoList;
-+ public Object unoListModel;
-+ public ListModel listModel;
-+ public Renderer renderer = new Renderer() {
- public String render(Object item) {
- if (item == null)
- return "";
-@@ -108,32 +108,32 @@
- setSelectedItems(selected);
- }
-
-- protected void update(short i) {
-+ public void update(short i) {
- remove(i, i);
- insert(i);
- }
-
-- protected void remove(short i1, short i2) {
-+ public void remove(short i1, short i2) {
- unoList.removeItems((short) i1, (short) (i2 - i1 + 1));
- }
-
-- protected void insert(short i) {
-+ public void insert(short i) {
- unoList.addItem(getItemString(i), i);
- }
-
-- protected String getItemString(short i) {
-+ public String getItemString(short i) {
- return getItemString(listModel.getElementAt((int) i));
- }
-
-- protected String getItemString(Object item) {
-+ public String getItemString(Object item) {
- return renderer.render(item);
- }
-
-- protected short[] getSelectedItems() {
-+ public short[] getSelectedItems() {
- return (short[]) Helper.getUnoPropertyValue(unoListModel, "SelectedItems");
- }
-
-- protected void setSelectedItems(short[] selected) {
-+ public void setSelectedItems(short[] selected) {
- Helper.setUnoPropertyValue(unoListModel, "SelectedItems", selected);
- }
-
---- wizards/com/sun/star/wizards/ui/event/RadioDataAware.java.gcj~ 2004-05-19 13:09:20.000000000 +0000
-+++ wizards/com/sun/star/wizards/ui/event/RadioDataAware.java 2005-08-28 18:54:11.000000000 +0000
-@@ -70,7 +70,7 @@
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
- public class RadioDataAware extends DataAware {
-- protected XRadioButton[] radioButtons;
-+ public XRadioButton[] radioButtons;
-
- public RadioDataAware(Object data, Value value, Object[] radioButs) {
- super(data, value);
-@@ -82,7 +82,7 @@
- /* (non-Javadoc)
- * @see com.sun.star.wizards.ui.DataAware#setToUI(java.lang.Object)
- */
-- protected void setToUI(Object value) {
-+ public void setToUI(Object value) {
- int selected = ((Number) value).intValue();
- if (selected == -1)
- for (int i = 0; i < radioButtons.length; i++)
-@@ -94,7 +94,7 @@
- /* (non-Javadoc)
- * @see com.sun.star.wizards.ui.DataAware#getFromUI()
- */
-- protected Object getFromUI() {
-+ public Object getFromUI() {
- for (int i = 0; i < radioButtons.length; i++)
- if (radioButtons[i].getState())
- return new Integer(i);
---- wizards/com/sun/star/wizards/ui/event/SimpleDataAware.java.gcj~ 2004-05-19 13:09:30.000000000 +0000
-+++ wizards/com/sun/star/wizards/ui/event/SimpleDataAware.java 2005-08-28 18:54:11.000000000 +0000
-@@ -63,9 +63,9 @@
-
- public class SimpleDataAware extends DataAware {
-
-- protected Object control;
-- protected Object[] disableObjects = new Object[0];
-- protected Value controlValue;
-+ public Object control;
-+ public Object[] disableObjects = new Object[0];
-+ public Value controlValue;
-
- public SimpleDataAware(Object dataObject, Value value, Object control_, Value controlValue_ ) {
- super(dataObject, value);
-@@ -74,14 +74,14 @@
- }
-
- /*
-- protected void enableControls(Object value) {
-+ public void enableControls(Object value) {
- Boolean b = getBoolean(value);
- for (int i = 0; i<disableObjects.length; i++)
- UIHelper.setEnabled(disableObjects[i],b);
- }
- */
-
-- protected void setToUI(Object value) {
-+ public void setToUI(Object value) {
- controlValue.set(value,control);
- }
-
-@@ -95,7 +95,7 @@
- * @param value
- * @return
- */
-- /*protected Boolean getBoolean(Object value) {
-+ /*public Boolean getBoolean(Object value) {
- if (value==null)
- return Boolean.FALSE;
- if (value instanceof Boolean)
-@@ -111,7 +111,7 @@
- }
- */
-
-- protected Object getFromUI() {
-+ public Object getFromUI() {
- return controlValue.get(control);
- }
-
---- wizards/com/sun/star/wizards/ui/event/Task.java.gcj~ 2005-03-08 15:47:13.000000000 +0000
-+++ wizards/com/sun/star/wizards/ui/event/Task.java 2005-08-28 18:54:11.000000000 +0000
-@@ -68,13 +68,13 @@
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
- public class Task {
-- private int successfull = 0;
-- private int failed = 0;
-+ public int successfull = 0;
-+ public int failed = 0;
-
-- private int max = 0;
-- private String taskName;
-- private List listeners = new Vector();
-- private String subtaskName;
-+ public int max = 0;
-+ public String taskName;
-+ public List listeners = new Vector();
-+ public String subtaskName;
-
-
- public Task(String taskName_ , String subtaskName_, int max_) {
-@@ -127,35 +127,35 @@
- listeners.remove(tl);
- }
-
-- protected void fireTaskStatusChanged() {
-+ public void fireTaskStatusChanged() {
- TaskEvent te = new TaskEvent(this, TaskEvent.TASK_STATUS_CHANGED);
-
- for (int i = 0; i<listeners.size(); i++)
- ((TaskListener)listeners.get(i)).taskStatusChanged(te);
- }
-
-- protected void fireTaskStarted() {
-+ public void fireTaskStarted() {
- TaskEvent te = new TaskEvent(this, TaskEvent.TASK_STARTED);
-
- for (int i = 0; i<listeners.size(); i++)
- ((TaskListener)listeners.get(i)).taskStarted(te);
- }
-
-- protected void fireTaskFailed() {
-+ public void fireTaskFailed() {
- TaskEvent te = new TaskEvent(this, TaskEvent.TASK_FAILED);
-
- for (int i = 0; i<listeners.size(); i++)
- ((TaskListener)listeners.get(i)).taskFinished(te);
- }
-
-- protected void fireTaskFinished() {
-+ public void fireTaskFinished() {
- TaskEvent te = new TaskEvent(this, TaskEvent.TASK_FINISHED);
-
- for (int i = 0; i<listeners.size(); i++)
- ((TaskListener)listeners.get(i)).taskFinished(te);
- }
-
-- protected void fireSubtaskNameChanged() {
-+ public void fireSubtaskNameChanged() {
- TaskEvent te = new TaskEvent(this, TaskEvent.SUBTASK_NAME_CHANGED);
-
- for (int i = 0; i<listeners.size(); i++)
---- wizards/com/sun/star/wizards/ui/event/TaskEvent.java.gcj~ 2004-05-19 13:09:52.000000000 +0000
-+++ wizards/com/sun/star/wizards/ui/event/TaskEvent.java 2005-08-28 18:54:11.000000000 +0000
-@@ -74,7 +74,7 @@
- public static final int SUBTASK_NAME_CHANGED = 4;
- public static final int TASK_FAILED = 5;
-
-- private int type;
-+ public int type;
-
- /**
- * general constructor-
---- wizards/com/sun/star/wizards/ui/event/UnoDataAware.java.gcj~ 2004-09-08 14:10:32.000000000 +0000
-+++ wizards/com/sun/star/wizards/ui/event/UnoDataAware.java 2005-08-28 18:54:11.000000000 +0000
-@@ -78,13 +78,13 @@
- */
- public class UnoDataAware extends DataAware {
-
-- protected Object unoControl;
-- protected Object unoModel;
-- protected String unoPropName;
-- protected Object[] disableObjects = new Object[0];
-- protected boolean inverse = false;
-+ public Object unoControl;
-+ public Object unoModel;
-+ public String unoPropName;
-+ public Object[] disableObjects = new Object[0];
-+ public boolean inverse = false;
-
-- protected UnoDataAware(Object dataObject, Value value, Object unoObject_, String unoPropName_) {
-+ public UnoDataAware(Object dataObject, Value value, Object unoObject_, String unoPropName_) {
- super(dataObject, value);
- unoControl = unoObject_;
- unoModel = getModel(unoControl);
-@@ -95,7 +95,7 @@
- inverse = i;
- }
-
-- protected void enableControls(Object value) {
-+ public void enableControls(Object value) {
- Boolean b = getBoolean(value);
- if (inverse)
- b = b.booleanValue() ? Boolean.FALSE : Boolean.TRUE;
-@@ -103,12 +103,12 @@
- setEnabled(disableObjects[i], b);
- }
-
-- protected void setToUI(Object value) {
-+ public void setToUI(Object value) {
- //System.out.println("Settings uno property : "+ Helper.getUnoPropertyValue(this.unoModel,"Name") + "<-" +stringof(value));
- Helper.setUnoPropertyValue(unoModel, unoPropName, value);
- }
-
-- private String stringof(Object value) {
-+ public String stringof(Object value) {
- if (value.getClass().isArray()) {
- StringBuffer sb = new StringBuffer("[");
- for (int i = 0 ; i<((short[])value).length; i++)
-@@ -132,7 +132,7 @@
- * @param value
- * @return
- */
-- protected Boolean getBoolean(Object value) {
-+ public Boolean getBoolean(Object value) {
- if (value == null)
- return Boolean.FALSE;
- if (value instanceof Boolean)
-@@ -151,11 +151,11 @@
- disableObjects = controls;
- }
-
-- protected Object getFromUI() {
-+ public Object getFromUI() {
- return Helper.getUnoPropertyValue(unoModel, unoPropName);
- }
-
-- private static UnoDataAware attachTextControl(Object data, String prop, Object unoText, final Listener listener, String unoProperty, boolean field, Object value) {
-+ public static UnoDataAware attachTextControl(Object data, String prop, Object unoText, final Listener listener, String unoProperty, boolean field, Object value) {
- XTextComponent text = (XTextComponent) UnoRuntime.queryInterface(XTextComponent.class, unoText);
- final UnoDataAware uda = new UnoDataAware(data,
- field
---- wizards/com/sun/star/wizards/ui/AggregateComponent.java.gcj~ 2005-02-21 14:03:27.000000000 +0000
-+++ wizards/com/sun/star/wizards/ui/AggregateComponent.java 2005-08-28 18:54:11.000000000 +0000
-@@ -190,7 +190,7 @@
- }
-
-
-- protected void insertControlGroup(int i, int ypos){
-+ public void insertControlGroup(int i, int ypos){
- if (i == 0){
- int BaseID = 2300;
- soptDetailQuery = CurUnoDialog.oResource.getResText(BaseID + 11);
-@@ -209,7 +209,7 @@
- }
-
-
-- protected void setControlGroupVisible(int _index, boolean _bIsVisible){
-+ public void setControlGroupVisible(int _index, boolean _bIsVisible){
- ControlRow oControlRow = (ControlRow) ControlRowVector.elementAt(_index);
- oControlRow.setVisible(_bIsVisible);
- if (_index >= (this.CurDBMetaData.AggregateFieldNames.length))
-@@ -217,7 +217,7 @@
- }
-
-
-- protected void addRow(){
-+ public void addRow(){
- int fieldcount = super.getTotalFieldCount();
- registerControlGroupAtIndex(fieldcount);
- if ( fieldcount < super.getBlockIncrementation()){
-@@ -237,7 +237,7 @@
- }
-
-
-- protected void removeRow(){
-+ public void removeRow(){
- int fieldcount = super.getTotalFieldCount();
- if ( fieldcount > 0){
- ControlRow oControlRow;
-@@ -255,7 +255,7 @@
- }
-
-
-- protected void toggleButtons(){
-+ public void toggleButtons(){
- ControlRow curcontrolrow = null;
- boolean biscomplete = true;
- CurDBMetaData.Type = getQueryType();
-@@ -282,7 +282,7 @@
- }
-
-
-- private boolean isAggregateComponentEnabled(){
-+ public boolean isAggregateComponentEnabled(){
- return(CurDBMetaData.Type == QueryMetaData.QueryType.SOSUMMARYQUERY);
- }
-
-@@ -305,7 +305,7 @@
- }
-
-
-- private void togglefollowingDialogSteps(){
-+ public void togglefollowingDialogSteps(){
- boolean benabletherest = true;
- boolean benableGroupPage = isGroupingpossible();
- CurUnoDialog.setStepEnabled(UIConsts.SOGROUPSELECTIONPAGE, benableGroupPage);
-@@ -317,7 +317,7 @@
- }
-
-
-- private void hideControlRowsfromindex(int _index){
-+ public void hideControlRowsfromindex(int _index){
- if (_index < this.ControlRowVector.size()){
- for (int i = _index; i < ControlRowVector.size();i++){
- ControlRow oControlRow = (ControlRow) ControlRowVector.elementAt(i);
-@@ -395,7 +395,7 @@
- }
-
-
-- protected void initializeScrollFields(){
-+ public void initializeScrollFields(){
- ControlRow curControlRow;
- if (CurDBMetaData.AggregateFieldNames != null){
- for (int i = 0; i < this.getBlockIncrementation(); i++){
-@@ -408,7 +408,7 @@
- }
-
-
-- private void registerControlGroupAtIndex(int _index){
-+ public void registerControlGroupAtIndex(int _index){
- short[] iselfunctionlist = new short[]{};
- short[] iselfieldslist = new short[]{};
- PropertyValue[] currowproperties = new PropertyValue[2];
-@@ -424,18 +424,18 @@
- }
-
-
-- private String getFunctionControlName(int _index){
-+ public String getFunctionControlName(int _index){
- String namesuffix = "_" + String.valueOf(_index + 1);
- return "lstfunctions" + namesuffix;
- }
-
-- private String getFieldsControlName(int _index){
-+ public String getFieldsControlName(int _index){
- String namesuffix = "_" + String.valueOf(_index + 1);
- return "lstFieldnames" + namesuffix;
- }
-
-
-- private boolean hasonlycompletefunctions(){
-+ public boolean hasonlycompletefunctions(){
- int maxfieldcount = super.getCurFieldCount();
- if (maxfieldcount > 0){
- ControlRow curcontrolrow = (ControlRow) this.ControlRowVector.elementAt(maxfieldcount-1);
-@@ -447,12 +447,12 @@
-
-
-
-- protected class ControlRow{
-- private XListBox xFieldListBox;
-- private XListBox xFunctionListBox;
-- private int index;
-+ public class ControlRow{
-+ public XListBox xFieldListBox;
-+ public XListBox xFunctionListBox;
-+ public int index;
-
-- protected ControlRow(int _index, int ypos, int _curHelpID){
-+ public ControlRow(int _index, int ypos, int _curHelpID){
- try{
- this.index = _index;
- xFunctionListBox = CurUnoDialog.insertListBox(getFunctionControlName(index), 1, null, new ItemListenerImpl(),
-@@ -471,40 +471,40 @@
- }}
-
-
-- private String getSelectedFieldName(){
-+ public String getSelectedFieldName(){
- return xFieldListBox.getSelectedItem();
- }
-
-
-- private String getSelectedFunction(){
-+ public String getSelectedFunction(){
- return xFunctionListBox.getSelectedItem();
- }
-
-
-- private void setVisible(boolean _bvisible){
-+ public void setVisible(boolean _bvisible){
- CurUnoDialog.setControlVisible(getFunctionControlName(index), _bvisible);
- CurUnoDialog.setControlVisible(getFieldsControlName(index), _bvisible);
- }
-
-
-- private void insertFieldNames(){
-+ public void insertFieldNames(){
- Helper.setUnoPropertyValue(UnoDialog.getModel(xFieldListBox), "StringItemList", CurDBMetaData.NumericFieldNames);
- }
-
-- private boolean isComplete(){
-+ public boolean isComplete(){
- boolean bfieldnameisselected = (Helper.getUnoArrayPropertyValue(UnoDialog.getModel(xFieldListBox), "SelectedItems") != null);
- boolean bfunctionisselected = (Helper.getUnoArrayPropertyValue(UnoDialog.getModel(xFunctionListBox), "SelectedItems") != null);
- return (bfieldnameisselected && bfunctionisselected);
- }
-
-
-- private void settovoid(){
-+ public void settovoid(){
- CurUnoDialog.deselectListBox(xFieldListBox);
- CurUnoDialog.deselectListBox(xFunctionListBox);
- }
-
-
-- protected class ItemListenerImpl implements com.sun.star.awt.XItemListener{
-+ public class ItemListenerImpl implements com.sun.star.awt.XItemListener{
-
- public void itemStateChanged(com.sun.star.awt.ItemEvent EventObject){
- try{
---- wizards/com/sun/star/wizards/ui/CommandFieldSelection.java.gcj~ 2005-02-21 14:03:43.000000000 +0000
-+++ wizards/com/sun/star/wizards/ui/CommandFieldSelection.java 2005-08-28 18:54:11.000000000 +0000
-@@ -143,7 +143,7 @@
- }
-
-
-- private void insertControls(CommandMetaData _CurDBMetaData, boolean _bgetQueries, String _reslblTables){
-+ public void insertControls(CommandMetaData _CurDBMetaData, boolean _bgetQueries, String _reslblTables){
- try {
- this.AppendMode = !_bgetQueries;
- this.bgetQueries = _bgetQueries;
-@@ -177,7 +177,7 @@
- }
-
-
-- private String getCommandPrefix(int _nCommandType){
-+ public String getCommandPrefix(int _nCommandType){
- if (_nCommandType == CommandType.TABLE)
- return getTablePrefix();
- else if (_nCommandType == CommandType.QUERY)
-@@ -195,7 +195,7 @@
- return sTablePrefix;
- }
-
-- private short getselectedItemPos(){
-+ public short getselectedItemPos(){
- short[] iSelPoses = ((short[]) Helper.getUnoPropertyValue(UnoDialog.getModel(xTableListBox), "SelectedItems"));
- if (iSelPoses.length > 0)
- return iSelPoses[0];
-@@ -255,7 +255,7 @@
- * @return
- * @throws com.sun.star.wizards.common.TerminateWizardException
- */
-- private short fillupCommandListBox() throws com.sun.star.wizards.common.TerminateWizardException {
-+ public short fillupCommandListBox() throws com.sun.star.wizards.common.TerminateWizardException {
- short[] iSelArray = new short[0];
- boolean bgetFields = false;
- String[] ContentList = new String[0];
-@@ -287,7 +287,7 @@
- return iSelPos;
- }
-
-- private String[] setPrefixinArray(String[] _ContentList, String _sprefix, int _startindex, int _nlen) {
-+ public String[] setPrefixinArray(String[] _ContentList, String _sprefix, int _startindex, int _nlen) {
- for (int i = _startindex; i < _startindex + _nlen; i++)
- _ContentList[i] = _sprefix + _ContentList[i];
- return _ContentList;
---- wizards/com/sun/star/wizards/ui/ControlScroller.java.gcj~ 2005-03-18 16:24:30.000000000 +0000
-+++ wizards/com/sun/star/wizards/ui/ControlScroller.java 2005-08-28 18:54:11.000000000 +0000
-@@ -72,35 +72,35 @@
- import java.util.*;
-
- public abstract class ControlScroller {
-- protected WizardDialog CurUnoDialog;
-- protected XMultiServiceFactory xMSF;
-- private Object oImgControl;
-- protected int ncurfieldcount;
-- protected int nblockincrement;
-- private int nlineincrement;
-- protected int nscrollvalue = 0;
-- protected int ntotfieldcount;
-+ public WizardDialog CurUnoDialog;
-+ public XMultiServiceFactory xMSF;
-+ public Object oImgControl;
-+ public int ncurfieldcount;
-+ public int nblockincrement;
-+ public int nlineincrement;
-+ public int nscrollvalue = 0;
-+ public int ntotfieldcount;
- XScrollBar xScrollBar;
-- protected Vector scrollfields;
-- protected Integer ICompPosX;
-- protected int iCompPosX;
-- protected Integer ICompPosY;
-- protected int iCompPosY;
-- protected Integer ICompWidth;
-- protected int iCompWidth;
-- protected Integer ICompHeight;
-- protected int iCompHeight;
-- protected int iStartPosY;
-- protected short curtabindex;
-+ public Vector scrollfields;
-+ public Integer ICompPosX;
-+ public int iCompPosX;
-+ public Integer ICompPosY;
-+ public int iCompPosY;
-+ public Integer ICompWidth;
-+ public int iCompWidth;
-+ public Integer ICompHeight;
-+ public int iCompHeight;
-+ public int iStartPosY;
-+ public short curtabindex;
- int iStep;
-- protected Integer IStep;
-- protected int linedistance;
-+ public Integer IStep;
-+ public int linedistance;
- int iScrollBarWidth = 10;
- int SORELFIRSTPOSY = 3;
-- protected int curHelpIndex;
-+ public int curHelpIndex;
- String sIncSuffix;
-- protected Vector ControlGroupVector = new Vector();
-- protected PeerConfig oTitlePeerConfig;
-+ public Vector ControlGroupVector = new Vector();
-+ public PeerConfig oTitlePeerConfig;
-
- class AdjustmentListenerImpl implements com.sun.star.awt.XAdjustmentListener {
-
-@@ -124,7 +124,7 @@
- * @author bc93774
- */
- // TODO add parameters for tabindices and helpindex
-- protected ControlScroller(WizardDialog _CurUnoDialog, XMultiServiceFactory _xMSF, int _iStep, int _iCompPosX, int _iCompPosY, int _iCompWidth, int _nblockincrement, int _nlinedistance, int _firsthelpindex) {
-+ public ControlScroller(WizardDialog _CurUnoDialog, XMultiServiceFactory _xMSF, int _iStep, int _iCompPosX, int _iCompPosY, int _iCompWidth, int _nblockincrement, int _nlinedistance, int _firsthelpindex) {
- this.xMSF = _xMSF;
- this.nblockincrement = _nblockincrement;
- this.CurUnoDialog = _CurUnoDialog;
-@@ -165,7 +165,7 @@
- CurUnoDialog.getPeerConfiguration().setPeerProperties(oImgControl, new String[] { "MouseTransparent" }, new Boolean[] { Boolean.TRUE });
- }
-
-- protected void setScrollBarOrientationHorizontal() {
-+ public void setScrollBarOrientationHorizontal() {
- Helper.setUnoPropertyValue(xScrollBar, "Orientation", new Integer(ScrollBarOrientation.HORIZONTAL));
- }
-
-@@ -173,7 +173,7 @@
- * @author bc93774
- * @param _ntotfieldcount: The number of fields that are to be administered by the ControlScroller
- */
-- protected void initialize(int _ntotfieldcount) {
-+ public void initialize(int _ntotfieldcount) {
- try {
- boolean bisVisible;
- ntotfieldcount = _ntotfieldcount;
-@@ -190,7 +190,7 @@
- }
- }
-
-- protected void fillupControls(boolean binitialize) {
-+ public void fillupControls(boolean binitialize) {
- int newindex;
- PropertyValue[] oldproperties;
- PropertyValue[] newproperties;
-@@ -205,7 +205,7 @@
-
- }
-
-- protected void fillupControls(int guiRow) {
-+ public void fillupControls(int guiRow) {
- PropertyValue[] nameProps = (PropertyValue[]) scrollfields.get(guiRow);
- PropertyValue[] valueProps = (PropertyValue[]) scrollfields.get(guiRow + nscrollvalue);
- for (int n = 0; n < nameProps.length; n++) {
-@@ -217,34 +217,34 @@
- }
-
-
-- protected void setScrollValue(int _nscrollvalue) {
-+ public void setScrollValue(int _nscrollvalue) {
- if (_nscrollvalue >= 0) {
- Helper.setUnoPropertyValue(UnoDialog.getModel(xScrollBar), new String("ScrollValue"), new Integer(_nscrollvalue));
- scrollControls();
- }
- }
-
-- protected void setScrollValue(int _nscrollvalue, int _ntotfieldcount) {
-+ public void setScrollValue(int _nscrollvalue, int _ntotfieldcount) {
- setTotalFieldCount(_ntotfieldcount);
- setScrollValue(_nscrollvalue);
- }
-
-- protected int getTotalFieldCount() {
-+ public int getTotalFieldCount() {
- return ntotfieldcount;
- }
-
-- protected int getCurFieldCount() {
-+ public int getCurFieldCount() {
- return ncurfieldcount;
- }
-
-- private void setCurFieldCount() {
-+ public void setCurFieldCount() {
- if (ntotfieldcount > nblockincrement)
- ncurfieldcount = nblockincrement;
- else
- ncurfieldcount = ntotfieldcount;
- }
-
-- protected void setTotalFieldCount(int _ntotfieldcount) {
-+ public void setTotalFieldCount(int _ntotfieldcount) {
- this.ntotfieldcount = _ntotfieldcount;
- setCurFieldCount();
- if (ntotfieldcount > nblockincrement)
-@@ -253,12 +253,12 @@
- Helper.setUnoPropertyValue(UnoDialog.getModel(xScrollBar), "Enabled", Boolean.FALSE);
- }
-
-- protected void toggleComponent(boolean _bdoenable) {
-+ public void toggleComponent(boolean _bdoenable) {
- boolean bdoenable = _bdoenable && (ntotfieldcount > nblockincrement);
- CurUnoDialog.setControlProperty("TitleScrollBar" + sIncSuffix, "Enabled", new Boolean(bdoenable));
- }
-
-- protected void toggleControls(boolean _bdoenable) {
-+ public void toggleControls(boolean _bdoenable) {
- for (int n = 0; n < scrollfields.size(); n++) {
- PropertyValue[] curproperties = (PropertyValue[]) scrollfields.elementAt(n);
- for (int m = 0; m < curproperties.length; m++) {
-@@ -269,30 +269,30 @@
-
- }
-
-- protected int getScrollValue() {
-+ public int getScrollValue() {
- return nscrollvalue;
- }
-
-- protected void setLineIncrementation(int _nlineincrement) {
-+ public void setLineIncrementation(int _nlineincrement) {
- this.nlineincrement = _nlineincrement;
- Helper.setUnoPropertyValue(UnoDialog.getModel(xScrollBar), new String("LineIncrement"), new Integer(nlineincrement));
-
- }
-
-- protected int getLineIncrementation() {
-+ public int getLineIncrementation() {
- return nlineincrement;
- }
-
-- protected void setBlockIncrementation(int _nblockincrement) {
-+ public void setBlockIncrementation(int _nblockincrement) {
- this.nblockincrement = _nblockincrement;
- Helper.setUnoPropertyValues(UnoDialog.getModel(xScrollBar), new String[] { "Enabled", "BlockIncrement", "ScrollValueMax" }, new Object[] { new Boolean(ntotfieldcount > nblockincrement), new Integer(nblockincrement), new Integer(ntotfieldcount - nblockincrement)});
- }
-
-- protected int getBlockIncrementation() {
-+ public int getBlockIncrementation() {
- return nblockincrement;
- }
-
-- private void scrollControls() {
-+ public void scrollControls() {
- try {
- scrollRowsInfo();
- nscrollvalue = ((Integer) Helper.getUnoPropertyValue(UnoDialog.getModel(xScrollBar), "ScrollValue")).intValue();
-@@ -304,7 +304,7 @@
- }
- }
-
-- protected void scrollRowsInfo() {
-+ public void scrollRowsInfo() {
- int cols =
- scrollfields.size() > 0
- ? ((PropertyValue[])scrollfields.get(0)).length
-@@ -323,7 +323,7 @@
- * @return the propertyValue object corresponding to
- * this control.
- */
-- protected PropertyValue fieldInfo(int guiRow, int column) {
-+ public PropertyValue fieldInfo(int guiRow, int column) {
- if (guiRow + nscrollvalue < scrollfields.size()) {
- PropertyValue pv = fieldInfo (
- ((PropertyValue[]) scrollfields.elementAt(guiRow + nscrollvalue )) [column],
-@@ -337,7 +337,7 @@
- else return null;
- }
-
-- protected PropertyValue fieldInfo(PropertyValue valueProp, PropertyValue nameProp) {
-+ public PropertyValue fieldInfo(PropertyValue valueProp, PropertyValue nameProp) {
- if (CurUnoDialog.xDlgNameAccess.hasByName(nameProp.Name))
- valueProp.Value = getControlData(nameProp.Name);
- else
-@@ -345,11 +345,11 @@
- return valueProp;
- }
-
-- protected void unregisterControlGroup(int _index) {
-+ public void unregisterControlGroup(int _index) {
- scrollfields.remove(_index);
- }
-
-- protected void registerControlGroup(PropertyValue[] _currowproperties, int _i) {
-+ public void registerControlGroup(PropertyValue[] _currowproperties, int _i) {
- if (_i == 0)
- scrollfields.removeAllElements();
- if (_i >= scrollfields.size())
-@@ -358,11 +358,11 @@
- scrollfields.setElementAt(_currowproperties, _i);
- }
-
-- protected PropertyValue[] getControlGroupInfo(int _i) {
-+ public PropertyValue[] getControlGroupInfo(int _i) {
- return (PropertyValue[]) scrollfields.elementAt(_i);
- }
-
-- protected void setControlData(String controlname, Object newvalue) {
-+ public void setControlData(String controlname, Object newvalue) {
- Object oControlModel = UnoDialog.getModel(CurUnoDialog.xDlgContainer.getControl(controlname));
- String propertyname = UnoDialog.getDisplayProperty(oControlModel);
- if (propertyname != "") {
-@@ -370,7 +370,7 @@
- }
- }
-
-- protected Object getControlData(String controlname) {
-+ public Object getControlData(String controlname) {
- Object oControlModel = UnoDialog.getModel(CurUnoDialog.xDlgContainer.getControl(controlname));
- String propertyname = UnoDialog.getDisplayProperty(oControlModel);
- if (propertyname != "")
-@@ -379,7 +379,7 @@
- return null;
- }
-
-- protected PropertyValue[][] getScrollFieldValues() {
-+ public PropertyValue[][] getScrollFieldValues() {
- scrollRowsInfo();
- PropertyValue[] curproperties;
- PropertyValue[][] retproperties;
-@@ -396,7 +396,7 @@
- }
- }
-
-- protected abstract void initializeScrollFields();
-+ public abstract void initializeScrollFields();
-
- /** inserts a group of controls into the component. The group may either be a row or a column of controls
- * The controls should be put on Step 99 (means made invisible at first). All the controlrows that are needed are than
-@@ -405,9 +405,9 @@
- * @param i: The index of the control group
- * @param npos: Can be an x coordinate or an y coordinate which depends on the orientation of the scrollbar
- */
-- protected abstract void insertControlGroup(int _index, int npos);
-+ public abstract void insertControlGroup(int _index, int npos);
-
-- protected abstract void setControlGroupVisible(int _index, boolean _bIsVisible);
-+ public abstract void setControlGroupVisible(int _index, boolean _bIsVisible);
-
-
- }
-\ No newline at end of file
---- wizards/com/sun/star/wizards/ui/DBLimitedFieldSelection.java.gcj~ 2004-10-27 13:41:05.000000000 +0000
-+++ wizards/com/sun/star/wizards/ui/DBLimitedFieldSelection.java 2005-08-28 18:54:11.000000000 +0000
-@@ -71,20 +71,20 @@
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
- public abstract class DBLimitedFieldSelection {
-- protected XMultiServiceFactory xMSF;
-- protected WizardDialog CurUnoDialog;
-- protected String sNoField;
-- protected Integer IStep;
-- protected Integer ICompPosX;
-- protected Integer ICompPosY;
-- protected Integer ICompWidth;
-- protected final int rowcount = 4;
-- protected final int MAXSELINDEX = rowcount - 1;
-- protected short curtabindex;
-- protected int iCurPosY;
-- protected int FirstHelpIndex;
-- protected int iCompPosX;
-- protected int MaxSelIndex;
-+ public XMultiServiceFactory xMSF;
-+ public WizardDialog CurUnoDialog;
-+ public String sNoField;
-+ public Integer IStep;
-+ public Integer ICompPosX;
-+ public Integer ICompPosY;
-+ public Integer ICompWidth;
-+ public final int rowcount = 4;
-+ public final int MAXSELINDEX = rowcount - 1;
-+ public short curtabindex;
-+ public int iCurPosY;
-+ public int FirstHelpIndex;
-+ public int iCompPosX;
-+ public int MaxSelIndex;
-
-
- public DBLimitedFieldSelection(WizardDialog _CurUnoDialog, int iStep, int _iCompPosX, int iCompPosY, int iCompWidth, int _FirstHelpIndex){
-@@ -106,18 +106,18 @@
- }
-
-
-- protected abstract void insertControlGroup(int index);
-+ public abstract void insertControlGroup(int index);
-
-- protected abstract void toggleControlRow(int CurIndex, boolean bDoEnable);
-+ public abstract void toggleControlRow(int CurIndex, boolean bDoEnable);
-
-- protected abstract void enableNextControlRow(int CurIndex);
-+ public abstract void enableNextControlRow(int CurIndex);
-
-- protected abstract void updateFromNextControlRow(int CurIndex);
-+ public abstract void updateFromNextControlRow(int CurIndex);
-
-- protected abstract void setMaxSelIndex();
-+ public abstract void setMaxSelIndex();
-
-
-- protected void moveupSelectedItems(int CurIndex, boolean bDoEnable){
-+ public void moveupSelectedItems(int CurIndex, boolean bDoEnable){
- short iNextItemPos;
- if ((bDoEnable == false) && (MAXSELINDEX > CurIndex)) {
- for (int i = CurIndex; i < MAXSELINDEX; i++) {
-@@ -130,7 +130,7 @@
- }
-
-
-- protected String[] addNoneFieldItemToList(String[] _FieldNames){
-+ public String[] addNoneFieldItemToList(String[] _FieldNames){
- int FieldCount = _FieldNames.length;
- String[] ViewFieldNames = new String[FieldCount + 1];
- ViewFieldNames[0] = sNoField;
-@@ -140,7 +140,7 @@
- }
-
-
-- protected void initializeListBox(XListBox xListBox, String[] _AllFieldNames, String[] _SelFieldNames, int curindex){
-+ public void initializeListBox(XListBox xListBox, String[] _AllFieldNames, String[] _SelFieldNames, int curindex){
- short[] SelList = null;
- Helper.setUnoPropertyValue(UnoDialog.getModel(xListBox),"StringItemList", _AllFieldNames);
- if (_SelFieldNames != null){
-@@ -160,7 +160,7 @@
- }
-
-
-- protected void initializeListBox(XListBox xListBox, String[] _AllFieldNames, String _SelFieldName){
-+ public void initializeListBox(XListBox xListBox, String[] _AllFieldNames, String _SelFieldName){
- Helper.setUnoPropertyValue(UnoDialog.getModel(xListBox),"StringItemList", _AllFieldNames);
- short[] SelList = null;
- int index = JavaTools.FieldInList(_AllFieldNames, _SelFieldName);
---- wizards/com/sun/star/wizards/ui/DocumentPreview.java.gcj~ 2005-02-21 14:04:20.000000000 +0000
-+++ wizards/com/sun/star/wizards/ui/DocumentPreview.java 2005-08-28 18:54:11.000000000 +0000
-@@ -82,22 +82,22 @@
- /**
- * The window in which the preview is showed.
- */
-- private XWindow xWindow;
-+ public XWindow xWindow;
- /**
- * The frame service which is used to show the preview
- */
-- private XFrame xFrame;
-+ public XFrame xFrame;
- /**
- * The content component of the frame.
- */
-- private XComponent xComponent;
-+ public XComponent xComponent;
-
-- private XControl xControl;
-+ public XControl xControl;
-
-- private int step;
-+ public int step;
-
-- private PropertyValue[] loadArgs;
-- private String url;
-+ public PropertyValue[] loadArgs;
-+ public String url;
-
- public static final int PREVIEW_MODE = 1;
-
-@@ -117,7 +117,7 @@
- createPreviewFrame(xmsf, xControl);
- }
-
-- protected XComponent setDocument(String url_, String[] propNames, Object[] propValues) throws com.sun.star.lang.IllegalArgumentException, IOException, CloseVetoException {
-+ public XComponent setDocument(String url_, String[] propNames, Object[] propValues) throws com.sun.star.lang.IllegalArgumentException, IOException, CloseVetoException {
- url = url_;
-
- Properties ps = new Properties();
-@@ -128,7 +128,7 @@
- return setDocument(url, ps.getProperties());
- }
-
-- protected XComponent setDocument(String url, PropertyValue[] lArgs) throws com.sun.star.lang.IllegalArgumentException, IOException, CloseVetoException {
-+ public XComponent setDocument(String url, PropertyValue[] lArgs) throws com.sun.star.lang.IllegalArgumentException, IOException, CloseVetoException {
- loadArgs = lArgs;
- XComponentLoader xCompLoader = (XComponentLoader) UnoRuntime.queryInterface(XComponentLoader.class, xFrame);
- xFrame.activate();
-@@ -142,7 +142,7 @@
- setDocument(url, loadArgs);
- }
-
-- private void closeFrame() throws CloseVetoException {
-+ public void closeFrame() throws CloseVetoException {
- if (xFrame != null)
- ((XCloseable) UnoRuntime.queryInterface(XCloseable.class, xFrame)).close(false);
- }
---- wizards/com/sun/star/wizards/ui/FieldSelection.java.gcj~ 2005-03-18 16:24:56.000000000 +0000
-+++ wizards/com/sun/star/wizards/ui/FieldSelection.java 2005-08-28 18:54:11.000000000 +0000
-@@ -75,9 +75,9 @@
- public XFieldSelectionListener xFieldSelection;
- public int maxfieldcount = 10000000;
- public String sIncSuffix;
-- protected Integer IStep;
-- protected int FirstHelpIndex;
-- protected short curtabindex;
-+ public Integer IStep;
-+ public int FirstHelpIndex;
-+ public short curtabindex;
- String[] AllFieldNames;
- public Integer ListBoxWidth;
- public Integer SelListBoxPosX;
-@@ -292,7 +292,7 @@
- }
-
- // Todo: If Value is getting smaller than zero -> throw exception
-- private Integer[] getYButtonPositions(int ButtonCount) {
-+ public Integer[] getYButtonPositions(int ButtonCount) {
- Integer[] YPosArray;
- if (ButtonCount > 0) {
- YPosArray = new Integer[ButtonCount];
-@@ -313,7 +313,7 @@
- }
-
-
-- private void changeSelectionOrder(int iNeighbor) {
-+ public void changeSelectionOrder(int iNeighbor) {
- short[] iSelIndices = xSelFieldsListBox.getSelectedItemsPos();
- // Todo: we are assuming that the array starts with the lowest index. Verfy this assumption!!!!!
- if (iSelIndices.length == 1) {
-@@ -355,7 +355,7 @@
-
- // Enable or disable the buttons used for moving the available
- // fields between the two list boxes.
-- private void toggleListboxButtons(short iFieldsSelIndex, short iSelFieldsSelIndex) {
-+ public void toggleListboxButtons(short iFieldsSelIndex, short iSelFieldsSelIndex) {
- try {
- boolean bmoveUpenabled = false;
- boolean bmoveDownenabled = false;
-@@ -383,7 +383,7 @@
- }
-
-
-- private void toggleMoveButtons(boolean _btoggleMoveAll, boolean _btoggleMoveSelected) {
-+ public void toggleMoveButtons(boolean _btoggleMoveAll, boolean _btoggleMoveSelected) {
- boolean btoggleMoveAll = (((xFieldsListBox.getItemCount() + xSelFieldsListBox.getItemCount()) < maxfieldcount) && (_btoggleMoveAll));
- boolean btoggleMoveSelected = (((xFieldsListBox.getSelectedItems().length + xSelFieldsListBox.getItemCount()) < maxfieldcount) && (_btoggleMoveSelected));
- CurUnoDialog.setControlProperty("cmdMoveAll" + sIncSuffix, "Enabled", new Boolean(btoggleMoveAll));
---- wizards/com/sun/star/wizards/ui/FilterComponent.java.gcj~ 2005-03-18 16:25:12.000000000 +0000
-+++ wizards/com/sun/star/wizards/ui/FilterComponent.java 2005-08-28 18:54:11.000000000 +0000
-@@ -94,18 +94,18 @@
- public String[] FieldNames;
- XRadioButton optMatchAll;
- XRadioButton optMatchAny;
-- private String soptMatchAll;
-- private String soptMatchAny;
-- private String[] sHeadLines;
-- private String slblFieldNames;
-- private String slblOperators;
-- private String slblValue;
-+ public String soptMatchAll;
-+ public String soptMatchAny;
-+ public String[] sHeadLines;
-+ public String slblFieldNames;
-+ public String slblOperators;
-+ public String slblValue;
- WizardDialog CurUnoDialog;
-- private int BaseID = 2300;
-- private String sIncSuffix;
-- private ControlRow[] oControlRows;
-- private Vector FilterNames;
-- private String sDuplicateCondition;
-+ public int BaseID = 2300;
-+ public String sIncSuffix;
-+ public ControlRow[] oControlRows;
-+ public Vector FilterNames;
-+ public String sDuplicateCondition;
- final int SOLSTFIELDNAME = 3;
- final int SOLSTOPERATOR = 4;
- final int SOTXTVALUE = 5;
-@@ -225,7 +225,7 @@
- }
-
-
-- private void togglefollowingControlRow(String _scurName){
-+ public void togglefollowingControlRow(String _scurName){
- String sNameSuffix = sIncSuffix + "_" + _scurName.substring(_scurName.length() - 1, _scurName.length());
- int Index = Integer.valueOf(_scurName.substring(_scurName.length() - 1, _scurName.length())).intValue();
- if (Index < oControlRows.length)
-@@ -233,7 +233,7 @@
- }
-
-
-- private String getControlName(Object _oSourceevent){
-+ public String getControlName(Object _oSourceevent){
- try {
- XControl xControl = (XControl) UnoRuntime.queryInterface(XControl.class, _oSourceevent);
- XPropertySet xPSet = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xControl.getModel());
-@@ -323,7 +323,7 @@
- }
- }
-
-- private int getfilterstate() {
-+ public int getfilterstate() {
- boolean bisany = true;
- bisany = (this.optMatchAny.getState()) == true;
- if (bisany)
-@@ -333,7 +333,7 @@
- return ifilterstate;
- }
-
-- private void addfiltercondition(int _index, String _curFieldName, Object _curValue, int _curOperator) {
-+ public void addfiltercondition(int _index, String _curFieldName, Object _curValue, int _curOperator) {
- try {
- String ValString = String.valueOf(_curValue);
- PropertyValue oPropertyValue = Properties.createProperty(_curFieldName, ValString, _curOperator);
-@@ -349,7 +349,7 @@
- }
- }
-
-- private int getFilterCount() {
-+ public int getFilterCount() {
- int a = 0;
- for (int i = 0; i < RowCount; i++)
- if (oControlRows[i].isEnabled() && oControlRows[i].isComplete())
-@@ -440,11 +440,11 @@
-
-
- class ControlRow {
-- protected XInterface[] ControlElements = new XInterface[6];
-- private boolean bEnabled;
-+ public XInterface[] ControlElements = new XInterface[6];
-+ public boolean bEnabled;
- String[] FieldNames;
-
-- protected ControlRow(int iCompPosY, int Index, boolean _bEnabled, int _firstRowHelpID) {
-+ public ControlRow(int iCompPosY, int Index, boolean _bEnabled, int _firstRowHelpID) {
- try {
- String sCompSuffix = sIncSuffix + "_" + String.valueOf(Index + 1);
- this.bEnabled = _bEnabled;
-@@ -497,7 +497,7 @@
- }
-
-
-- protected void setCondition(PropertyValue _filtercondition) {
-+ public void setCondition(PropertyValue _filtercondition) {
- try {
- int ikey;
- XListBox xFieldsListBox = (XListBox) UnoRuntime.queryInterface(XListBox.class, ControlElements[SOLSTFIELDNAME]);
-@@ -524,22 +524,22 @@
- }}
-
-
-- protected void setFieldNames(String[] _FieldNames) {
-+ public void setFieldNames(String[] _FieldNames) {
- Helper.setUnoPropertyValue(UnoDialog.getModel(ControlElements[SOLSTFIELDNAME]), "StringItemList", _FieldNames);
- FieldNames = _FieldNames;
- }
-
-- protected boolean isEnabled() {
-+ public boolean isEnabled() {
- return bEnabled;
- }
-
-- protected void settovoid() {
-+ public void settovoid() {
- CurUnoDialog.deselectListBox(ControlElements[SOLSTFIELDNAME]);
- CurUnoDialog.deselectListBox(ControlElements[SOLSTOPERATOR]);
- Helper.setUnoPropertyValue(UnoDialog.getModel(ControlElements[SOTXTVALUE]), "EffectiveValue", com.sun.star.uno.Any.VOID);
- }
-
-- protected void setEnabled(boolean _bEnabled) {
-+ public void setEnabled(boolean _bEnabled) {
- for (int i = 0; i < ControlElements.length; i++)
- Helper.setUnoPropertyValue(UnoDialog.getModel(ControlElements[i]), "Enabled", new Boolean(_bEnabled));
- bEnabled = _bEnabled;
-@@ -558,7 +558,7 @@
- CurUnoDialog.deselectListBox(ControlElements[SOLSTOPERATOR]);
- }
-
-- protected String getSelectedFieldName() {
-+ public String getSelectedFieldName() {
- try {
- short[] SelFields = (short[]) AnyConverter.toArray(Helper.getUnoPropertyValue(UnoDialog.getModel(ControlElements[SOLSTFIELDNAME]), "SelectedItems"));
- return FieldNames[SelFields[0]];
-@@ -569,7 +569,7 @@
- }
-
- // TODO: check if it is really useful to match the indices of the listbox the API constants
-- protected short getSelectedOperator() {
-+ public short getSelectedOperator() {
- try {
- short[] SelFields = (short[]) AnyConverter.toArray(Helper.getUnoPropertyValue(UnoDialog.getModel(ControlElements[SOLSTOPERATOR]), "SelectedItems"));
- return SelFields[0];
-@@ -580,7 +580,7 @@
- }
-
- // TODO make a difference between Text and Numbers
-- protected Object getValue() {
-+ public Object getValue() {
- try {
- return (Helper.getUnoPropertyValue(UnoDialog.getModel(ControlElements[SOTXTVALUE]), "EffectiveValue"));
- } catch (Exception exception) {
-@@ -589,7 +589,7 @@
- }
- }
-
-- protected String getDateTimeString(boolean bgetDate) {
-+ public String getDateTimeString(boolean bgetDate) {
- try {
- double dblValue = ((Double) getValue()).doubleValue();
- NumberFormatter oNumberFormatter = oQueryMetaData.getNumberFormatter();
---- wizards/com/sun/star/wizards/ui/ImageList.java.gcj~ 2005-08-28 16:44:49.000000000 +0000
-+++ wizards/com/sun/star/wizards/ui/ImageList.java 2005-08-28 18:55:47.000000000 +0000
-@@ -80,54 +80,54 @@
- */
- public class ImageList implements XItemEventBroadcaster, ListDataListener{
-
-- private XControl imgContainer;
-- private XFixedText lblImageText;
-- private XFixedText grbxSelectedImage;
-- private XButton btnBack;
-- private XButton btnNext;
-- private XFixedText lblCounter;
-- private XControl images[];
-- private boolean benabled = true;
-- private UnoDialog2 oUnoDialog;
-- private Size gap = new Size(4, 4);
-- private int cols = 4;
-- private int rows = 3;
-- private Size imageSize = new Size(20, 20);
-- private Size pos;
-- private Size selectionGap = new Size(2, 2);
-- private boolean showButtons = true;
-- private Short step;
-- private final static Short NO_BORDER = new Short((short) 0);
-- private boolean refreshOverNull = true;
-- private int imageTextLines = 1;
-+ public XControl imgContainer;
-+ public XFixedText lblImageText;
-+ public XFixedText grbxSelectedImage;
-+ public XButton btnBack;
-+ public XButton btnNext;
-+ public XFixedText lblCounter;
-+ public XControl images[];
-+ public boolean benabled = true;
-+ public UnoDialog2 oUnoDialog;
-+ public Size gap = new Size(4, 4);
-+ public int cols = 4;
-+ public int rows = 3;
-+ public Size imageSize = new Size(20, 20);
-+ public Size pos;
-+ public Size selectionGap = new Size(2, 2);
-+ public boolean showButtons = true;
-+ public Short step;
-+ public final static Short NO_BORDER = new Short((short) 0);
-+ public boolean refreshOverNull = true;
-+ public int imageTextLines = 1;
-
-- private boolean rowSelect = false;
-+ public boolean rowSelect = false;
- public int tabIndex;
- public Boolean scaleImages = Boolean.TRUE;
- public String name = "il";
-
-- private int selected = -1;
-- private int pageStart = 0;
-+ public int selected = -1;
-+ public int pageStart = 0;
- public int helpURL = 0;
-
-- private CommonListener uiEventListener = new CommonListener();
-- private ImageRenderer renderer;
-- private ListModel listModel;
-+ public CommonListener uiEventListener = new CommonListener();
-+ public ImageRenderer renderer;
-+ public ListModel listModel;
- public Renderer counterRenderer = new SimpleCounterRenderer();
-
-- private Object dialogModel;
-+ public Object dialogModel;
-
-- private ImageKeyListener imageKeyListener;
-+ public ImageKeyListener imageKeyListener;
-
-- private static final Integer BACKGROUND_COLOR = new Integer(16777216); //new Integer(SystemColor.window.getRGB() + 16777216);
-+ public static final Integer BACKGROUND_COLOR = new Integer(16777216); //new Integer(SystemColor.window.getRGB() + 16777216);
-
-- private final static Short HIDE_PAGE = new Short((short) 99);
-- private final static Integer TRANSPARENT = new Integer(-1);
-- private final static int LINE_HEIGHT = 8;
-+ public final static Short HIDE_PAGE = new Short((short) 99);
-+ public final static Integer TRANSPARENT = new Integer(-1);
-+ public final static int LINE_HEIGHT = 8;
-
-- //private MethodInvocation METHOD_MOUSE_ENTER_IMAGE;
-- //private MethodInvocation METHOD_MOUSE_EXIT_IMAGE;
-- private MethodInvocation METHOD_MOUSE_PRESSED;
-+ //public MethodInvocation METHOD_MOUSE_ENTER_IMAGE;
-+ //public MethodInvocation METHOD_MOUSE_EXIT_IMAGE;
-+ public MethodInvocation METHOD_MOUSE_PRESSED;
-
- /** Getter for property imageSize.
- * @return Value of property imageSize.
-@@ -236,12 +236,12 @@
-
- }
-
-- private Integer _imageHeight, _imageWidth;
-- private final static String[] IMAGE_PROPS = new String[] { "Border", "BackgroundColor", "Height", "HelpURL", "PositionX", "PositionY", "ScaleImage", "Step", "TabIndex", "Tabstop", "Width" };
-+ public Integer _imageHeight, _imageWidth;
-+ public final static String[] IMAGE_PROPS = new String[] { "Border", "BackgroundColor", "Height", "HelpURL", "PositionX", "PositionY", "ScaleImage", "Step", "TabIndex", "Tabstop", "Width" };
- //used for optimization
-- private Short tabIndex_;
-+ public Short tabIndex_;
-
-- private XControl createImage(UnoDialog2 dialog, int row, int col) {
-+ public XControl createImage(UnoDialog2 dialog, int row, int col) {
- String imageName = name + "_image" + (row * cols + col);
- XControl image = dialog.insertImage(imageName, IMAGE_PROPS, new Object[] { NO_BORDER, BACKGROUND_COLOR, _imageHeight, "HID:" + helpURL++, new Integer(imagePosX(col)), new Integer(imagePosY(row)), scaleImages, step, tabIndex_ , Boolean.FALSE, _imageWidth });
-
-@@ -255,15 +255,15 @@
- return image;
- }
-
-- private int imagePosX(int col) {
-+ public int imagePosX(int col) {
- return pos.Width + col * (imageSize.Width + gap.Width) + gap.Width;
- }
-
-- private int imagePosY(int row) {
-+ public int imagePosY(int row) {
- return pos.Height + row * (imageSize.Height + gap.Height) + gap.Height;
- }
-
-- private void refreshImages() {
-+ public void refreshImages() {
- if (showButtons)
- refreshCounterText();
- hideSelection();
-@@ -287,11 +287,11 @@
- refreshSelection();
- }
-
-- private void refreshCounterText() {
-+ public void refreshCounterText() {
- Helper.setUnoPropertyValue(getModel(lblCounter), "Label", counterRenderer.render(new Counter(pageStart + 1, pageEnd(), listModel.getSize())));
- }
-
-- private int pageEnd() {
-+ public int pageEnd() {
- int i = pageStart + cols * rows;
- if (i > listModel.getSize() - 1)
- return listModel.getSize();
-@@ -299,25 +299,25 @@
- return i;
- }
-
-- private void refreshSelection() {
-+ public void refreshSelection() {
- if (selected < pageStart || selected >= (pageStart + rows * cols))
- hideSelection();
- else
- moveSelection(getImageIndexFor(selected));
- }
-
-- private void hideSelection() {
-+ public void hideSelection() {
- Helper.setUnoPropertyValue(getModel(grbxSelectedImage), "Step", HIDE_PAGE);
- setVisible(grbxSelectedImage, false);
- }
-
-- private final static String[] MOVE_SELECTION = new String[] { "PositionX", "PositionY", "Step" };
-- private Object[] MOVE_SELECTION_VALS = new Object[3];
-+ public final static String[] MOVE_SELECTION = new String[] { "PositionX", "PositionY", "Step" };
-+ public Object[] MOVE_SELECTION_VALS = new Object[3];
-
- /** Utility field holding list of ItemListeners. */
-- private transient java.util.ArrayList itemListenerList;
-+ public transient java.util.ArrayList itemListenerList;
-
-- private void moveSelection(int image) {
-+ public void moveSelection(int image) {
- //System.out.println(image);
- setVisible(grbxSelectedImage, false);
-
-@@ -341,7 +341,7 @@
- }
-
-
-- private void setVisible(Object control, boolean visible) {
-+ public void setVisible(Object control, boolean visible) {
- ((XWindow) UnoRuntime.queryInterface(XWindow.class, control)).setVisible(visible);
- }
-
-@@ -350,7 +350,7 @@
- * @param i
- * @return the Object in the list model corresponding to the given image index.
- */
-- private Object getObjectFor(int i) {
-+ public Object getObjectFor(int i) {
- int ii = getIndexFor(i);
- if (listModel.getSize() <= ii)
- return null;
-@@ -363,11 +363,11 @@
- * @param i
- * @return the index in the listModel for the given image index.
- */
-- private int getIndexFor(int i) {
-+ public int getIndexFor(int i) {
- return pageStart + i;
- }
-
-- private int getImageIndexFor(int i) {
-+ public int getImageIndexFor(int i) {
- return i - pageStart;
- }
-
-@@ -423,7 +423,7 @@
- * @param event The event to be fired
- *
- */
-- private void fireItemSelected() {
-+ public void fireItemSelected() {
- // java.awt.event.ItemEvent event = new java.awt.event.ItemEvent(this, 0,
- // getSelectedObject(), java.awt.event.ItemEvent.SELECTED);
- java.util.ArrayList list;
-@@ -601,7 +601,7 @@
-
- }
-
-- private void refreshImageText() {
-+ public void refreshImageText() {
- Object item = selected >= 0 ? getListModel().getElementAt(selected) : null;
- Helper.setUnoPropertyValue(getModel(lblImageText), "Label", " " + renderer.render(item));
- }
-@@ -635,16 +635,16 @@
- setPageStart(i);
- }
-
-- private void enableButtons() {
-+ public void enableButtons() {
- enable(btnNext, new Boolean(pageStart + rows * cols < listModel.getSize()));
- enable(btnBack, new Boolean(pageStart > 0));
- }
-
-- private void enable(Object control, Boolean enable) {
-+ public void enable(Object control, Boolean enable) {
- Helper.setUnoPropertyValue(getModel(control), "Enabled", enable);
- }
-
-- private Object getModel(Object control) {
-+ public Object getModel(Object control) {
- return ((XControl) UnoRuntime.queryInterface(XControl.class, control)).getModel();
- }
-
-@@ -666,13 +666,13 @@
- }
- */
-
-- private void setBorder(Object control, Short border) {
-+ public void setBorder(Object control, Short border) {
- Helper.setUnoPropertyValue(getModel(control), "Border", border);
- //XWindowPeer peer = ((XControl)UnoRuntime.queryInterface(XControl.class,control)).getPeer();
- //peer.invalidate(InvalidateStyle.CHILDREN);
- }
-
-- private int getImageFromEvent(Object event) {
-+ public int getImageFromEvent(Object event) {
- Object image = ((EventObject) event).Source;
- String controlName = (String) Helper.getUnoPropertyValue(getModel(image), "Name");
- return Integer.valueOf(controlName.substring(6 + name.length())).intValue();
-@@ -705,7 +705,7 @@
- public Object[] getImageUrls(Object listItem);
- }
-
-- private static class SimpleCounterRenderer implements Renderer {
-+ public static class SimpleCounterRenderer implements Renderer {
- public String render(Object counter) {
- return "" + ((Counter) counter).start + ".." + ((Counter) counter).end + "/" + ((Counter) counter).max;
- }
-@@ -747,7 +747,7 @@
-
-
-
-- private class ImageKeyListener implements XKeyListener {
-+ public class ImageKeyListener implements XKeyListener {
-
- /* (non-Javadoc)
- * @see com.sun.star.awt.XKeyListener#keyPressed(com.sun.star.awt.KeyEvent)
-@@ -764,17 +764,17 @@
- changeFocus(image,newImage);
- }
-
-- private boolean isFocusable(int image) {
-+ public boolean isFocusable(int image) {
- return (image >= 0) && (getIndexFor(image) < listModel.getSize());
- }
-
-- private void changeFocus(int oldFocusImage, int newFocusImage) {
-+ public void changeFocus(int oldFocusImage, int newFocusImage) {
- focus(newFocusImage);
- defocus(oldFocusImage);
- }
-
-
-- private final int getKeyMove(KeyEvent ke, int row, int col) {
-+ public final int getKeyMove(KeyEvent ke, int row, int col) {
- switch (ke.KeyCode) {
- case Key.UP :
- if (row > 0) return 0 - getCols();
-@@ -794,7 +794,7 @@
- return 0;
- }
-
-- private void select(KeyEvent ke) {
-+ public void select(KeyEvent ke) {
- setSelected(getIndexFor(getImageFromEvent(ke)));
- }
-
-@@ -805,14 +805,14 @@
-
- }
-
-- private final void focus(int image) {
-+ public final void focus(int image) {
- Helper.setUnoPropertyValue(images[image].getModel(),"Tabstop",
- Boolean.TRUE );
- XWindow xWindow = (XWindow) UnoRuntime.queryInterface(XWindow.class,images[image]);
- xWindow.setFocus();
- }
-
-- private final void defocus(int image) {
-+ public final void defocus(int image) {
- Helper.setUnoPropertyValue(UnoDialog.getModel(images[image]),"Tabstop",
- Boolean.FALSE);
-
---- wizards/com/sun/star/wizards/ui/PathSelection.java.gcj~ 2004-09-08 14:06:36.000000000 +0000
-+++ wizards/com/sun/star/wizards/ui/PathSelection.java 2005-08-28 18:54:11.000000000 +0000
-@@ -22,8 +22,8 @@
- public XPathSelectionListener xAction;
- public XTextComponent xSaveTextBox;
-
-- private final int CMDSELECTPATH = 1;
-- private final int TXTSAVEPATH = 1;
-+ public final int CMDSELECTPATH = 1;
-+ public final int TXTSAVEPATH = 1;
-
- public static class DialogTypes {
- public static final int FOLDER = 0;
---- wizards/com/sun/star/wizards/ui/SortingComponent.java.gcj~ 2005-02-21 14:06:01.000000000 +0000
-+++ wizards/com/sun/star/wizards/ui/SortingComponent.java 2005-08-28 18:54:11.000000000 +0000
-@@ -141,7 +141,7 @@
- }
- }
-
-- private boolean getResources() {
-+ public boolean getResources() {
- sSortHeader[0] = CurUnoDialog.oResource.getResText(UIConsts.RID_REPORT + 20);
- sSortHeader[1] = CurUnoDialog.oResource.getResText(UIConsts.RID_REPORT + 21);
- sSortHeader[2] = CurUnoDialog.oResource.getResText(UIConsts.RID_REPORT + 51);
-@@ -177,7 +177,7 @@
- }
- }
-
-- private void setMaxSortIndex() {
-+ public void setMaxSortIndex() {
- MaxSortIndex = -1;
- for (int i = 0; i <= MAXSORTCRITERIAINDEX; i++) {
- if (xSortListBox[i].getSelectedItemPos() > 0)
-@@ -207,7 +207,7 @@
- }
- }
-
-- private void enableNextSortListBox(int CurIndex) {
-+ public void enableNextSortListBox(int CurIndex) {
- try {
- setMaxSortIndex();
- boolean bDoEnable = (xSortListBox[CurIndex].getSelectedItemPos() != 0);
-@@ -271,7 +271,7 @@
- }
-
- // The following code can be reactivated in a future version when task #100799 will be fixed
-- private void moveupSortItems(int CurIndex, boolean bDoEnable) {
-+ public void moveupSortItems(int CurIndex, boolean bDoEnable) {
- short iNextItemPos;
- if ((bDoEnable == false) && (MAXSORTCRITERIAINDEX > CurIndex)) {
- for (int i = CurIndex; i < MAXSORTCRITERIAINDEX; i++) {
-@@ -290,7 +290,7 @@
- toggleSortListBox(CurIndex + 1, bDoEnable);
- }
-
-- private void toggleSortListBox(int CurIndex, boolean bDoEnable) {
-+ public void toggleSortListBox(int CurIndex, boolean bDoEnable) {
- try {
- if (CurIndex < xSortListBox.length) {
- CurUnoDialog.setControlProperty("lblSort" + new Integer(CurIndex + 1).toString(), "Enabled", new Boolean(bDoEnable));
---- wizards/com/sun/star/wizards/ui/TitlesComponent.java.gcj~ 2005-03-18 16:26:07.000000000 +0000
-+++ wizards/com/sun/star/wizards/ui/TitlesComponent.java 2005-08-28 18:54:11.000000000 +0000
-@@ -86,7 +86,7 @@
- CurUnoDialog.insertControlModel("com.sun.star.awt.UnoControlFixedTextModel", "lblColumnTitles", new String[] { "Height", "Label", "PositionX", "PositionY", "Step", "Width" }, new Object[] { new Integer(8), _slblColumnTitles, new Integer(90), new Integer(iCompPosY - 10), IStep, new Integer(152)});
- }
-
-- protected void insertControlGroup(int i, int ypos) {
-+ public void insertControlGroup(int i, int ypos) {
- iLabelPosX = iCompPosX + iRelLabelPosXDist;
- ControlRow oControlRow = new ControlRow(i, ypos);
- ControlGroupVector.addElement(oControlRow);
-@@ -94,7 +94,7 @@
- }
-
-
-- protected void setControlGroupVisible(int _index, boolean _bIsVisible){
-+ public void setControlGroupVisible(int _index, boolean _bIsVisible){
- CurUnoDialog.setControlVisible(getColumnName(_index), _bIsVisible);
- CurUnoDialog.setControlVisible(getTitleName(_index), _bIsVisible);
- }
-@@ -129,17 +129,17 @@
- }
-
-
-- private String getColumnName(int _index) {
-+ public String getColumnName(int _index) {
- return SOLABELPREFIX + Integer.toString(_index + 1);
- }
-
-
-- private String getTitleName(int _index) {
-+ public String getTitleName(int _index) {
- return SOTITLEPREFIX + Integer.toString(_index + 1);
- }
-
-
-- protected void initializeScrollFields() {
-+ public void initializeScrollFields() {
- for (int i = 0; i < fieldnames.length; i++) {
- PropertyValue[] currowproperties = new PropertyValue[2];
- currowproperties[0] = Properties.createProperty(getColumnName(i), fieldnames[i], i);
-@@ -149,7 +149,7 @@
- }
-
-
-- private void adjustPosSizes() {
-+ public void adjustPosSizes() {
- String sLongestFieldName = JavaTools.getlongestArrayItem(fieldnames);
- Size aSize = CurUnoDialog.getpreferredLabelSize(getColumnName(0), sLongestFieldName);
- double dblMAPConversion = CurUnoDialog.getMAPConversionFactor(getColumnName(0));
-@@ -177,7 +177,7 @@
- }
-
-
-- private void setFieldTitles() {
-+ public void setFieldTitles() {
- fieldtitles = new String[fieldnames.length];
- for (int i = 0; i < fieldnames.length; i++) {
- if (this.fieldtitleset.containsKey(fieldnames[i])) {
-@@ -214,13 +214,13 @@
- }
-
-
-- private void refreshtitleset() {
-+ public void refreshtitleset() {
- for (int i = 0; i < fieldnames.length; i++)
- fieldtitleset.put(fieldnames[i], fieldtitles[i]);
- }
-
-
-- private int getFieldNameWidth(int iMAPControlWidth, double dblMAPConversion) {
-+ public int getFieldNameWidth(int iMAPControlWidth, double dblMAPConversion) {
- int iFieldNameWidth = (int) (1.15 * ((double) (iMAPControlWidth)) / dblMAPConversion);
- double dblAvailableWidth = (double) (iCompWidth - iScrollBarWidth - iRelLabelPosXDist);
- if (iFieldNameWidth > (0.5 * (dblAvailableWidth)))
---- wizards/com/sun/star/wizards/ui/UnoDialog.java.gcj~ 2005-08-28 16:44:50.000000000 +0000
-+++ wizards/com/sun/star/wizards/ui/UnoDialog.java 2005-08-28 18:54:11.000000000 +0000
-@@ -98,9 +98,9 @@
- public Hashtable ControlList;
- public Resource oResource;
- public XWindowPeer xWindowPeer = null;
-- protected PeerConfig oPeerConfig;
-+ public PeerConfig oPeerConfig;
-
-- protected AbstractListener guiEventListener;
-+ public AbstractListener guiEventListener;
-
- public UnoDialog(XMultiServiceFactory xMSF, String[] PropertyNames, Object[] PropertyValues) {
- try {
-@@ -474,7 +474,7 @@
- * @param the name of the control
- * @param iStep change the step if you want to make the control invisible
- */
-- private void setControlVisible(String controlname, int iStep) {
-+ public void setControlVisible(String controlname, int iStep) {
- try {
- int iCurStep = AnyConverter.toInt(getControlProperty(controlname, "Step"));
- setControlProperty(controlname, "Step", new Integer(iStep));
-@@ -853,7 +853,7 @@
- }
-
-
-- private Boolean BisHighContrastModeActivated = null;
-+ public Boolean BisHighContrastModeActivated = null;
-
- public boolean isHighContrastModeActivated(){
- if (xVclWindowPeer != null){
---- wizards/com/sun/star/wizards/ui/UnoDialog2.java.gcj~ 2005-07-05 10:18:28.000000000 +0000
-+++ wizards/com/sun/star/wizards/ui/UnoDialog2.java 2005-08-28 18:54:11.000000000 +0000
-@@ -84,7 +84,7 @@
- /**
- * Override this method to return another listener.
- */
-- protected AbstractListener createListener() {
-+ public AbstractListener createListener() {
- return new CommonListener();
- }
-
-@@ -208,7 +208,7 @@
- * This method is used for creating Edit, Currency, Date, Formatted, Pattern, File
- * and Time edit components.
- */
-- private Object insertEditField(String sName, String sTextChanged, Object eventTarget, String sModelClass, String[] sPropNames, Object[] oPropValues, Class type) {
-+ public Object insertEditField(String sName, String sTextChanged, Object eventTarget, String sModelClass, String[] sPropNames, Object[] oPropValues, Class type) {
- XTextComponent xField = (XTextComponent) insertControlModel2(sModelClass, sName, sPropNames, oPropValues, XTextComponent.class);
- if (sTextChanged != null) {
- xField.addTextListener((XTextListener) guiEventListener);
-@@ -313,7 +313,7 @@
- return xDlgContainer.getControl(componentName);
- }
-
-- private void setControlPropertiesDebug(Object model, String[] names, Object[] values) {
-+ public void setControlPropertiesDebug(Object model, String[] names, Object[] values) {
- for (int i = 0; i<names.length; i++) {
- System.out.println(" Settings: " + names[i]);
- Helper.setUnoPropertyValue(model,names[i],values[i]);
---- wizards/com/sun/star/wizards/ui/WizardDialog.java.gcj~ 2005-04-29 08:07:57.000000000 +0000
-+++ wizards/com/sun/star/wizards/ui/WizardDialog.java 2005-08-28 18:54:11.000000000 +0000
-@@ -83,29 +83,29 @@
- import com.sun.star.beans.*;
-
- public abstract class WizardDialog extends UnoDialog2 implements VetoableChangeListener, XTerminateListener, XCompletion{
-- private static final String NEXT_ACTION_PERFORMED = "gotoNextAvailableStep";
-- private static final String BACK_ACTION_PERFORMED = "gotoPreviousAvailableStep";
-- private static final String FINISH_ACTION_PERFORMED = "finishWizard_1";
-- private static final String CANCEL_ACTION_PERFORMED = "cancelWizard_1";
-- private static final String HELP_ACTION_PERFORMED = "callHelp";
-+ public static final String NEXT_ACTION_PERFORMED = "gotoNextAvailableStep";
-+ public static final String BACK_ACTION_PERFORMED = "gotoPreviousAvailableStep";
-+ public static final String FINISH_ACTION_PERFORMED = "finishWizard_1";
-+ public static final String CANCEL_ACTION_PERFORMED = "cancelWizard_1";
-+ public static final String HELP_ACTION_PERFORMED = "callHelp";
- public VetoableChangeSupport vetos = new VetoableChangeSupport(this);
-- private String[] sRightPaneHeaders;
-- private int iButtonWidth = 50;
-- private int nNewStep = 1;
-- private int nOldStep = 1;
-- private int nMaxStep = 1;
-- protected XItemListener RoadmapItemListener;
-- protected XControl xRoadmapControl;
-+ public String[] sRightPaneHeaders;
-+ public int iButtonWidth = 50;
-+ public int nNewStep = 1;
-+ public int nOldStep = 1;
-+ public int nMaxStep = 1;
-+ public XItemListener RoadmapItemListener;
-+ public XControl xRoadmapControl;
- XItemEventBroadcaster xRoadmapBroadcaster;
- String[] sRMItemLabels;
-- private Object oRoadmap;
-- private Object oRoadmapControl;
-- private XSingleServiceFactory xSSFRoadmap;
-+ public Object oRoadmap;
-+ public Object oRoadmapControl;
-+ public XSingleServiceFactory xSSFRoadmap;
- public XIndexContainer xIndexContRoadmap;
-- private Resource oWizardResource;
-+ public Resource oWizardResource;
- public String sMsgEndAutopilot;
-- private int hid;
-- private boolean bTerminateListenermustberemoved = true;
-+ public int hid;
-+ public boolean bTerminateListenermustberemoved = true;
-
-
- /** Creates a new instance of WizardDialog
-@@ -310,7 +310,7 @@
- return switchToStep();
- }
-
-- private boolean switchToStep() {
-+ public boolean switchToStep() {
- leaveStep(nOldStep, nNewStep);
- if (nNewStep != nOldStep) {
- if (nNewStep == nMaxStep) {
-@@ -327,13 +327,13 @@
- return false;
- }
-
-- protected void leaveStep(int nOldStep, int nNewStep) {
-+ public void leaveStep(int nOldStep, int nNewStep) {
- }
-
-- protected void enterStep(int nOldStep, int nNewStep) {
-+ public void enterStep(int nOldStep, int nNewStep) {
- }
-
-- protected void changeToStep(int nNewStep) {
-+ public void changeToStep(int nNewStep) {
- Helper.setUnoPropertyValue(xDialogModel, "Step", new Integer(nNewStep));
- setCurrentRoadmapItemID((short) (nNewStep));
- enableNextButton(getNextAvailableStep() > 0);
-@@ -422,7 +422,7 @@
- }
- }
-
-- protected void insertRoadMapItems(String[] items, int[] steps, boolean[] enabled) {
-+ public void insertRoadMapItems(String[] items, int[] steps, boolean[] enabled) {
- for (int i = 0; i < items.length; i++)
- insertRoadmapItem(i, enabled[i], items[i], steps[i]);
- }
-@@ -509,7 +509,7 @@
- }
-
- //TODO discuss with rp
-- protected int getNextAvailableStep() {
-+ public int getNextAvailableStep() {
- if (isRoadmapComplete())
- for (int i = nNewStep + 1; i <= nMaxStep; i++)
- if (isStepEnabled(i))
-@@ -584,7 +584,7 @@
- }
- }
-
-- private boolean wizardClosed = false;
-+ public boolean wizardClosed = false;
- /**
- * called by the cancel button and
- * by the window hidden event.
---- wizards/com/sun/star/wizards/web/data/CGContent.java.gcj~ 2004-05-19 13:16:35.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/data/CGContent.java 2005-08-28 18:54:11.000000000 +0000
-@@ -76,7 +76,7 @@
-
- public CGContent() {
- /*cp_Documents = new ConfigSet(CGDocument.class) {
-- protected DefaultListModel createChildrenList() {
-+ public DefaultListModel createChildrenList() {
- return cp_Contents.getChildrenList();
- }
- };*/
---- wizards/com/sun/star/wizards/web/data/CGDesign.java.gcj~ 2004-09-08 14:17:50.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/data/CGDesign.java 2005-08-28 18:54:11.000000000 +0000
-@@ -86,10 +86,10 @@
-
-
-
-- private final String TRUE = "true";
-- private final String FALSE = null;
-+ public final String TRUE = "true";
-+ public final String FALSE = null;
-
-- private String styleName;
-+ public String styleName;
-
-
- public Node createDOM(Node parent) {
-@@ -99,8 +99,8 @@
-
- }
-
-- private static final Short SHORT_TRUE = new Short((short)1);
-- private static final Short SHORT_FALSE = new Short((short)0);
-+ public static final Short SHORT_TRUE = new Short((short)1);
-+ public static final Short SHORT_FALSE = new Short((short)0);
-
-
- public short[] getStyle() {
---- wizards/com/sun/star/wizards/web/data/CGDocument.java.gcj~ 2005-03-18 16:29:11.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/data/CGDocument.java 2005-08-28 18:54:11.000000000 +0000
-@@ -257,7 +257,7 @@
- * Analyzes a type-detection string, returned from the TypeDetection service,
- * and sets the appType, isSOOpenable and isSODocument memebres.
- */
-- private void analyzeFileType(PropertyValue[] mediaDesc) {
-+ public void analyzeFileType(PropertyValue[] mediaDesc) {
-
- if (mediaDesc == null) {
- }
-@@ -287,7 +287,7 @@
- * @return one of the constants in the interface TypeDetection.
- *
- */
-- private String getDocType(String media) {
-+ public String getDocType(String media) {
- if (media.equals("")) return TypeDetection.NO_TYPE;
-
- if (media.startsWith("writer")) {
-@@ -325,30 +325,30 @@
- }
-
-
-- private String updateDate() {
-+ public String updateDate() {
- if ( this.updateDate == null )
- return "";
- return getSettings().formatter.formatCreated(this.updateDate);
- }
-
-- private String createDate() {
-+ public String createDate() {
- if ( this.createDate == null )
- return "";
- return getSettings().formatter.formatCreated(this.createDate);
- }
-
-- private String sizeKB() {
-+ public String sizeKB() {
- if (sizeBytes == -1)
- return "";
- else return getSettings().formatter.formatFileSize(sizeBytes);
- }
-
-- private String pages() {
-+ public String pages() {
- return pages == -1 ? ""
- : JavaTools.replaceSubString(pagesTemplate() , "" + pages , "%NUMBER" );
- }
-
-- private String pagesTemplate() {
-+ public String pagesTemplate() {
- int pagesType = ((CGExporter)getSettings().cp_Exporters.getElement(cp_Exporter)).cp_PageType;
- switch (pagesType) {
- case PAGE_TYPE_UNKNOWN :
-@@ -361,18 +361,18 @@
- }
- }
-
-- private String getTargetTypeName(CGExporter exp) {
-+ public String getTargetTypeName(CGExporter exp) {
- return (exp.targetTypeName.equals(""))
- ? (String) Properties.getPropertyValue(mediaDescriptor,"UIName")
- : exp.targetTypeName;
- }
-
-- private String getIcon(CGExporter exporter) {
-+ public String getIcon(CGExporter exporter) {
- return exporter.cp_Icon.equals("") ?
- getIcon(this.appType) : exporter.cp_Icon;
- }
-
-- private String getIcon(String appType) {
-+ public String getIcon(String appType) {
- //System.out.println("Getting Icon for: " + appType);
- return appType+".gif";
- }
-@@ -400,7 +400,7 @@
- * @see getExporter()
- * @return
- */
-- private short getExporterIndex() {
-+ public short getExporterIndex() {
- if (cp_Exporter==null)
- return 0;
- Object exporter = getSettings().cp_Exporters.getElement(cp_Exporter);
---- wizards/com/sun/star/wizards/web/data/CGGeneralInfo.java.gcj~ 2004-09-08 14:18:31.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/data/CGGeneralInfo.java 2005-08-28 18:54:11.000000000 +0000
-@@ -102,7 +102,7 @@
- cp_UpdateDate = i.intValue();
- }
-
-- private int currentDate() {
-+ public int currentDate() {
- DateTime dt = JavaTools.getDateTime(System.currentTimeMillis());
- //System.out.println();
- return dt.Day + dt.Month * 100 + dt.Year * 10000;
---- wizards/com/sun/star/wizards/web/data/CGLayout.java.gcj~ 2005-03-18 16:29:24.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/data/CGLayout.java 2005-08-28 18:54:11.000000000 +0000
-@@ -72,9 +72,9 @@
- public String cp_Name;
- public String cp_FSName;
-
-- private Map templates;
-+ public Map templates;
-
-- private void createTemplates(XMultiServiceFactory xmsf) throws Exception {
-+ public void createTemplates(XMultiServiceFactory xmsf) throws Exception {
-
- templates = new Hashtable(3);
-
---- wizards/com/sun/star/wizards/web/data/CGPublish.java.gcj~ 2004-09-08 14:18:59.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/data/CGPublish.java 2005-08-28 18:54:11.000000000 +0000
-@@ -117,7 +117,7 @@
- }
- }
-
-- private String ftpURL() {
-+ public String ftpURL() {
- return "ftp://" + cp_Username +
- ((password!=null && password.length()>0) ? ":" + password : "")
- + "@" + cp_URL.substring(7);
---- wizards/com/sun/star/wizards/web/data/CGSession.java.gcj~ 2004-05-19 13:18:21.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/data/CGSession.java 2005-08-28 18:54:11.000000000 +0000
-@@ -96,7 +96,7 @@
- return root;
- }
-
-- private String getScreenSize() {
-+ public String getScreenSize() {
- switch (cp_Design.cp_OptimizeDisplaySize) {
- case 0 : return "640";
- case 1 : return "800";
---- wizards/com/sun/star/wizards/web/data/CGSettings.java.gcj~ 2005-02-21 14:10:08.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/data/CGSettings.java 2005-08-28 18:54:11.000000000 +0000
-@@ -52,8 +52,8 @@
- public CGSession cp_DefaultSession = new CGSession();
- public String cp_LastSavedSession;
-
-- private Map exportersMap = new Hashtable();
-- private XMultiServiceFactory xmsf;
-+ public Map exportersMap = new Hashtable();
-+ public XMultiServiceFactory xmsf;
-
- String[] resources;
- public Formatter formatter;
-@@ -80,7 +80,7 @@
- }
-
-
-- private static final CGExporter[] EMPTY_ARRAY_1 = new CGExporter[0];
-+ public static final CGExporter[] EMPTY_ARRAY_1 = new CGExporter[0];
-
- public CGExporter[] getExporters(String mime) {
- CGExporter[] exps = (CGExporter[])exportersMap.get(mime);
-@@ -89,7 +89,7 @@
- return exps;
- }
-
-- private CGExporter[] createExporters(String mime) {
-+ public CGExporter[] createExporters(String mime) {
- Object[] exporters = cp_Exporters.items();
- Vector v = new Vector();
- for (int i = 0; i<exporters.length; i++)
-@@ -114,7 +114,7 @@
- calcExportersTargetTypeNames(xmsf);
- }
-
-- private void calcExportersTargetTypeNames(XMultiServiceFactory xmsf) throws Exception {
-+ public void calcExportersTargetTypeNames(XMultiServiceFactory xmsf) throws Exception {
- Object typeDetect = xmsf.createInstance("com.sun.star.document.TypeDetection");
- XNameAccess xNameAccess = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class,typeDetect);
- for (int i = 0; i < cp_Exporters.getSize(); i++)
-@@ -122,7 +122,7 @@
- }
-
-
-- private void calcExporterTargetTypeName(XNameAccess xNameAccess, CGExporter exporter)
-+ public void calcExporterTargetTypeName(XNameAccess xNameAccess, CGExporter exporter)
- throws NoSuchElementException,
- WrappedTargetException
- {
-@@ -147,9 +147,9 @@
- }
-
- public class Formatter {
-- private long docNullTime;
-- private int dateFormat, numberFormat;
-- private DateUtils dateUtils;
-+ public long docNullTime;
-+ public int dateFormat, numberFormat;
-+ public DateUtils dateUtils;
-
- public Formatter(XMultiServiceFactory xmsf, Object document ) throws Exception {
- dateUtils = new DateUtils(xmsf, document);
---- wizards/com/sun/star/wizards/web/export/AbstractExporter.java.gcj~ 2005-03-08 15:50:38.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/export/AbstractExporter.java 2005-08-28 18:54:11.000000000 +0000
-@@ -32,10 +32,10 @@
- * @author rpiterman
- */
- public abstract class AbstractExporter implements Exporter {
-- protected CGExporter exporter;
-- protected FileAccess fileAccess;
-+ public CGExporter exporter;
-+ public FileAccess fileAccess;
-
-- protected void storeToURL(Object officeDocument, Properties props, String targetUrl, String filterName, PropertyValue[] filterData)
-+ public void storeToURL(Object officeDocument, Properties props, String targetUrl, String filterName, PropertyValue[] filterData)
- throws IOException {
-
- props = new Properties();
-@@ -49,24 +49,24 @@
- xs.storeToURL(targetUrl, o);
- }
-
-- protected void storeToURL(Object officeDocument, String targetUrl, String filterName, PropertyValue[] filterData)
-+ public void storeToURL(Object officeDocument, String targetUrl, String filterName, PropertyValue[] filterData)
- throws IOException {
-
- storeToURL(officeDocument, new Properties(), targetUrl, filterName, filterData);
- }
-
-- protected void storeToURL(Object officeDocument, String targetUrl, String filterName )
-+ public void storeToURL(Object officeDocument, String targetUrl, String filterName )
- throws IOException {
-
- storeToURL(officeDocument, new Properties(), targetUrl, filterName, new PropertyValue[0]);
-
- }
-
-- protected String getArgument(String name, CGExporter p) {
-+ public String getArgument(String name, CGExporter p) {
- return ((CGArgument)p.cp_Arguments.getElement(name)).cp_Value;
- }
-
-- protected Object openDocument(CGDocument doc, XMultiServiceFactory xmsf)
-+ public Object openDocument(CGDocument doc, XMultiServiceFactory xmsf)
- throws com.sun.star.io.IOException
- {
- Object document = null;
-@@ -90,7 +90,7 @@
- return document;
- }
-
-- protected void closeDocument(Object doc,XMultiServiceFactory xmsf) {
-+ public void closeDocument(Object doc,XMultiServiceFactory xmsf) {
- /*OfficeDocument.dispose(
- xmsf,
- (XComponent) UnoRuntime.queryInterface(XComponent.class, doc));*/
-@@ -103,7 +103,7 @@
- }
- }
-
-- private void pageCount(CGDocument doc, Object document) {
-+ public void pageCount(CGDocument doc, Object document) {
- if (doc.appType.equals(TypeDetection.WRITER_DOC))
- doc.pages = TextDocument.getPageCount(document);
- else if (doc.appType.equals(TypeDetection.IMPRESS_DOC))
-@@ -116,7 +116,7 @@
- exporter = exporter_;
- }
-
-- protected FileAccess getFileAccess(XMultiServiceFactory xmsf) {
-+ public FileAccess getFileAccess(XMultiServiceFactory xmsf) {
- if ( fileAccess == null )
- try {
- fileAccess = new FileAccess(xmsf);
-@@ -125,7 +125,7 @@
- return fileAccess;
- }
-
-- protected void calcFileSize(CGDocument doc, String url, XMultiServiceFactory xmsf) {
-+ public void calcFileSize(CGDocument doc, String url, XMultiServiceFactory xmsf) {
- /*if the exporter exports to a
- * binary format, get the size of the destination.
- */
---- wizards/com/sun/star/wizards/web/export/ConfiguredExporter.java.gcj~ 2004-05-19 13:19:54.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/export/ConfiguredExporter.java 2005-08-28 18:54:11.000000000 +0000
-@@ -33,7 +33,7 @@
- }
- }
-
-- private Object cast(String s) {
-+ public Object cast(String s) {
- String s1 = s.substring(1);
- char c = s.charAt(0);
- switch (c) {
---- wizards/com/sun/star/wizards/web/export/FilterExporter.java.gcj~ 2004-05-19 13:20:32.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/export/FilterExporter.java 2005-08-28 18:54:11.000000000 +0000
-@@ -21,8 +21,8 @@
- */
- public class FilterExporter extends AbstractExporter {
-
-- protected String filterName;
-- protected Properties props = new Properties();
-+ public String filterName;
-+ public Properties props = new Properties();
-
- /* (non-Javadoc)
- * @see com.sun.star.wizards.web.export.Exporter#export(java.lang.Object, java.io.File, com.sun.star.wizards.web.data.CGSettings, com.sun.star.lang.XMultiServiceFactory)
---- wizards/com/sun/star/wizards/web/export/ImpressHTMLExporter.java.gcj~ 2004-05-19 13:20:45.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/export/ImpressHTMLExporter.java 2005-08-28 18:54:11.000000000 +0000
-@@ -73,9 +73,9 @@
- */
- public class ImpressHTMLExporter extends ConfiguredExporter {
-
-- private static final Integer SMALL_IMAGE = new Integer(512);
-- private static final Integer MEDIUM_IMAGE = new Integer(640);
-- private static final Integer LARGE_IMAGE = new Integer(800);
-+ public static final Integer SMALL_IMAGE = new Integer(512);
-+ public static final Integer MEDIUM_IMAGE = new Integer(640);
-+ public static final Integer LARGE_IMAGE = new Integer(800);
-
- public boolean export(CGDocument source, String targetDirectory ,XMultiServiceFactory xmsf, Task task) {
-
-@@ -109,12 +109,12 @@
-
- }
-
-- private String getHomepageURL(CGSession session) {
-+ public String getHomepageURL(CGSession session) {
- return "../" +
- ( exporter.cp_OwnDirectory ? "../index.html" : "index.html" ) ;
- }
-
-- private Integer getImageWidth(CGSession session) {
-+ public Integer getImageWidth(CGSession session) {
- switch (session.cp_Design.cp_OptimizeDisplaySize) {
- case 0 : return SMALL_IMAGE;
- case 1 : return MEDIUM_IMAGE;
-@@ -123,7 +123,7 @@
- return MEDIUM_IMAGE;
- }
-
-- private CGSession getSession(CGDocument doc) {
-+ public CGSession getSession(CGDocument doc) {
- return doc.getSettings().cp_DefaultSession;
- }
-
---- wizards/com/sun/star/wizards/web/status/ErrorLog.java.gcj~ 2004-05-19 13:21:10.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/status/ErrorLog.java 2005-08-28 18:54:11.000000000 +0000
-@@ -17,7 +17,7 @@
- */
- public class ErrorLog implements ErrorReporter {
-
-- private List errors = new Vector();
-+ public List errors = new Vector();
-
- public void error(Exception ex, Object obj, String s) {
- errors.add(new Err(ex,obj,s));
---- wizards/com/sun/star/wizards/web/status/LogTaskListener.java.gcj~ 2004-05-19 13:21:34.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/status/LogTaskListener.java 2005-08-28 18:54:11.000000000 +0000
-@@ -16,7 +16,7 @@
- */
- public class LogTaskListener implements TaskListener {
-
-- private PrintStream out;
-+ public PrintStream out;
-
- public LogTaskListener(PrintStream os) {
- out = os;
---- wizards/com/sun/star/wizards/web/status/Task.java.gcj~ 2004-05-19 13:21:48.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/status/Task.java 2005-08-28 18:54:11.000000000 +0000
-@@ -16,13 +16,13 @@
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
- public class Task {
-- private int successfull = 0;
-- private int failed = 0;
-+ public int successfull = 0;
-+ public int failed = 0;
-
-- private int max = 0;
-- private String taskName;
-- private List listeners = new Vector();
-- private String subtaskName;
-+ public int max = 0;
-+ public String taskName;
-+ public List listeners = new Vector();
-+ public String subtaskName;
-
-
- public Task(String taskName_ , String subtaskName_, int max_) {
-@@ -71,28 +71,28 @@
- listeners.remove(tl);
- }
-
-- protected void fireTaskStatusChanged() {
-+ public void fireTaskStatusChanged() {
- TaskEvent te = new TaskEvent(this, TaskEvent.TASK_STATUS_CHANGED);
-
- for (int i = 0; i<listeners.size(); i++)
- ((TaskListener)listeners.get(i)).taskStatusChanged(te);
- }
-
-- protected void fireTaskStarted() {
-+ public void fireTaskStarted() {
- TaskEvent te = new TaskEvent(this, TaskEvent.TASK_STARTED);
-
- for (int i = 0; i<listeners.size(); i++)
- ((TaskListener)listeners.get(i)).taskStarted(te);
- }
-
-- protected void fireTaskFinished() {
-+ public void fireTaskFinished() {
- TaskEvent te = new TaskEvent(this, TaskEvent.TASK_FINISHED);
-
- for (int i = 0; i<listeners.size(); i++)
- ((TaskListener)listeners.get(i)).taskFinished(te);
- }
-
-- protected void fireSubtaskNameChanged() {
-+ public void fireSubtaskNameChanged() {
- TaskEvent te = new TaskEvent(this, TaskEvent.SUBTASK_NAME_CHANGED);
-
- for (int i = 0; i<listeners.size(); i++)
---- wizards/com/sun/star/wizards/web/status/TaskEvent.java.gcj~ 2004-05-19 13:22:01.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/status/TaskEvent.java 2005-08-28 18:54:11.000000000 +0000
-@@ -21,7 +21,7 @@
- public static final int TASK_STATUS_CHANGED = 3;
- public static final int SUBTASK_NAME_CHANGED = 4;
-
-- private int type;
-+ public int type;
-
- /**
- * general constructor-
---- wizards/com/sun/star/wizards/web/AbstractErrorHandler.java.gcj~ 2005-02-21 14:08:04.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/AbstractErrorHandler.java 2005-08-28 18:54:11.000000000 +0000
-@@ -77,7 +77,7 @@
- XMultiServiceFactory xmsf;
- XWindowPeer peer;
-
-- protected AbstractErrorHandler(XMultiServiceFactory xmsf, XWindowPeer peer_) {
-+ public AbstractErrorHandler(XMultiServiceFactory xmsf, XWindowPeer peer_) {
- this.xmsf = xmsf;
- peer=peer_;
- }
-@@ -122,7 +122,7 @@
- * @param errorType
- * @return true if the ok/yes button is clicked, false otherwise.
- */
-- protected boolean showMessage(String message, int errorType) {
-+ public boolean showMessage(String message, int errorType) {
- return showMessage(xmsf,peer, message,errorType);
- }
-
-@@ -159,7 +159,7 @@
- * @param errorType
- * @return
- */
-- private static int getTrueFor(int errorType) {
-+ public static int getTrueFor(int errorType) {
- switch (errorType) {
- case ErrorHandler.ERROR_FATAL :
- case ErrorHandler.ERROR_PROCESS_FATAL :
-@@ -188,7 +188,7 @@
- * @param errorType
- * @return the Uno attributes for each error type.
- */
-- private static int getAttributeFor(int errorType) {
-+ public static int getAttributeFor(int errorType) {
- switch (errorType) {
- case ErrorHandler.ERROR_FATAL :
- return VclWindowPeerAttribute.OK;
-@@ -219,7 +219,7 @@
- * @param errorType
- * @return the uno service name for each error type
- */
-- private static String getServiceNameFor(int errorType) {
-+ public static String getServiceNameFor(int errorType) {
- switch (errorType) {
- case ErrorHandler.ERROR_FATAL :
- return "errorbox";
-@@ -255,7 +255,7 @@
- * @return a Strings which will be displayed in the message box,
- * and which describes the error, and the needed action from the user.
- */
-- protected abstract String getMessageFor(Exception ex, Object arg, int ix, int type);
-+ public abstract String getMessageFor(Exception ex, Object arg, int ix, int type);
-
- }
-
---- wizards/com/sun/star/wizards/web/BackgroundsDialog.java.gcj~ 2005-03-18 16:27:39.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/BackgroundsDialog.java 2005-08-28 18:54:11.000000000 +0000
-@@ -80,9 +80,9 @@
- */
- public class BackgroundsDialog extends ImageListDialog {
-
-- private FileAccess fileAccess;
-- private SystemDialog sd;
-- private CGSettings settings;
-+ public FileAccess fileAccess;
-+ public SystemDialog sd;
-+ public CGSettings settings;
-
- /**
- * @param xmsf
-@@ -141,7 +141,7 @@
- * @param s
- * @return
- */
-- private int add(String s) {
-+ public int add(String s) {
-
- //first i check the item does not already exists in the list...
- for (int i = 0; i<il.getListModel().getSize(); i++)
-@@ -172,8 +172,8 @@
- * @author rpiterman
- *
- */
-- private class BGRenderer implements ImageList.ImageRenderer {
-- private int cut;
-+ public class BGRenderer implements ImageList.ImageRenderer {
-+ public int cut;
-
- public BGRenderer(int cut_) {
- cut = cut_;
-@@ -203,7 +203,7 @@
- * if it is a file, it adds the file to the list.
- * @author rpiterman
- */
-- private class Model extends DefaultListModel {
-+ public class Model extends DefaultListModel {
-
- /**
- * constructor. </br>
-@@ -234,7 +234,7 @@
- * This is what this method does...
- * @param imageName
- */
-- private void remove(String imageName) {
-+ public void remove(String imageName) {
- try {
- Object conf = Configuration.getConfigurationRoot(xMSF,WebWizardConst.CONFIG_PATH + "/BackgroundImages",true);
- Configuration.removeNode(conf,imageName);
-@@ -250,7 +250,7 @@
- * otherwise (if it is a file) adds the file to the list.
- * @param url
- */
-- private void addDir(String url) {
-+ public void addDir(String url) {
- if (fileAccess.isDirectory(url))
- add(fileAccess.listFiles(url,false));
- else
-@@ -262,7 +262,7 @@
- * the list
- * @param filenames
- */
-- private void add(String[] filenames) {
-+ public void add(String[] filenames) {
- for (int i = 0; i<filenames.length; i++)
- add(filenames[i]);
- }
-@@ -273,7 +273,7 @@
- * (case insensitive)
- * @param filename image url.
- */
-- private void add(String filename) {
-+ public void add(String filename) {
- String lcase = filename.toLowerCase();
- if (lcase.endsWith("jpg") ||
- lcase.endsWith("jpeg") ||
---- wizards/com/sun/star/wizards/web/CallWizard.java.gcj~ 2005-07-05 10:18:51.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/CallWizard.java 2005-08-28 18:54:11.000000000 +0000
-@@ -143,7 +143,7 @@
- }
- }
-
-- private static WebWizard webWizard = null;
-+ public static WebWizard webWizard = null;
- /**
- * Execute Wizard
- *
-@@ -190,12 +190,12 @@
- /**
- * The service name, that must be used to get an instance of this service.
- */
-- private static final String __serviceName = "com.sun.star.wizards.web.CallWizard";
-+ public static final String __serviceName = "com.sun.star.wizards.web.CallWizard";
-
- /**
- * The service manager, that gives access to all registered services.
- */
-- private XMultiServiceFactory xmultiservicefactory;
-+ public XMultiServiceFactory xmultiservicefactory;
-
- /**
- * This method is a member of the interface for initializing an object directly
---- wizards/com/sun/star/wizards/web/ExtensionVerifier.java.gcj~ 2004-09-08 14:11:44.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/ExtensionVerifier.java 2005-08-28 18:54:11.000000000 +0000
-@@ -72,7 +72,7 @@
- *
- */
- public class ExtensionVerifier implements UCB.Verifier {
-- private String extension;
-+ public String extension;
-
- public ExtensionVerifier(String extension_) {
- extension="." + extension_;
---- wizards/com/sun/star/wizards/web/FTPDialog.java.gcj~ 2005-03-08 15:48:00.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/FTPDialog.java 2005-08-28 18:54:11.000000000 +0000
-@@ -111,84 +111,84 @@
- * status-display. "unknown" is the status when the user first
- * opens the dialog, or changes the servername/username/password.
- */
-- private final static int STATUS_UNKONWN= 0;
-+ public final static int STATUS_UNKONWN= 0;
- /**
- * A Constant used for the setLabel(int) method to change the
- * status-display. (connection established)
- */
-- private final static int STATUS_OK = 1;
-+ public final static int STATUS_OK = 1;
- /**
- * A Constant used for the setLabel(int) method to change the
- * status-display.
- */
-- private final static int STATUS_USER_PWD_WRONG = 2;
-+ public final static int STATUS_USER_PWD_WRONG = 2;
- /**
- * A Constant used for the setLabel(int) method to change the
- * status-display.
- */
-- private final static int STATUS_SERVER_NOT_FOUND = 3;
-+ public final static int STATUS_SERVER_NOT_FOUND = 3;
- /**
- * A Constant used for the setLabel(int) method to change the
- * status-display.
- */
-- private final static int STATUS_NO_RIGHTS = 4;
-+ public final static int STATUS_NO_RIGHTS = 4;
- /**
- * A Constant used for the setLabel(int) method to change the
- * status-display.
- */
-- private final static int STATUS_HOST_UNREACHABLE = 5;
-+ public final static int STATUS_HOST_UNREACHABLE = 5;
- /**
- * A Constant used for the setLabel(int) method to change the
- * status-display.
- */
-- private final static int STATUS_CONNECTING = 6;
-+ public final static int STATUS_CONNECTING = 6;
-
- /**
- * The icon url for error
- */
-- private final static String ICON_ERROR = "ftperror.gif";
-+ public final static String ICON_ERROR = "ftperror.gif";
- /**
- * The icon url for ok (connection ok)
- */
-- private final static String ICON_OK = "ftpconnected.gif";
-+ public final static String ICON_OK = "ftpconnected.gif";
- /**
- * The icon url for unknown - this is the status when
- * the user first opens the dialog
- */
-- private final static String ICON_UNKNOWN= "ftpunknown.gif";
-+ public final static String ICON_UNKNOWN= "ftpunknown.gif";
- /**
- * The icon url for an icon representing the "connecting" state.
- */
-- private final static String ICON_CONNECTING = "ftpconnecting.gif";
-+ public final static String ICON_CONNECTING = "ftpconnecting.gif";
-
-
- //GUI Components as Class members.
- //Fixed Line
-- private XControl ln1;
-- private XFixedText lblFTPAddress;
-- private XTextComponent txtHost;
-- private XFixedText lblUsername;
-- private XTextComponent txtUsername;
-- private XFixedText lblPassword;
-- private XTextComponent txtPassword;
-+ public XControl ln1;
-+ public XFixedText lblFTPAddress;
-+ public XTextComponent txtHost;
-+ public XFixedText lblUsername;
-+ public XTextComponent txtUsername;
-+ public XFixedText lblPassword;
-+ public XTextComponent txtPassword;
- //Fixed Line
-- private XControl ln2;
-- private XButton btnTestConnection;
-- private XControl imgStatus;
-- private XFixedText lblStatus;
-+ public XControl ln2;
-+ public XButton btnTestConnection;
-+ public XControl imgStatus;
-+ public XFixedText lblStatus;
- //Fixed Line
-- private XControl ln3;
-- private XTextComponent txtDir;
-- private XButton btnDir;
-- private XButton btnOK;
-- private XButton btnCancel;
-- private XButton btnHelp;
-+ public XControl ln3;
-+ public XTextComponent txtDir;
-+ public XButton btnDir;
-+ public XButton btnOK;
-+ public XButton btnCancel;
-+ public XButton btnHelp;
- //Font Descriptors as Class members.
-
- //Resources Object
-- private FTPDialogResources resources;
-+ public FTPDialogResources resources;
-
-- private List dataAware = new Vector();
-+ public List dataAware = new Vector();
-
- public String username = "";
- public String password = "";
-@@ -199,18 +199,18 @@
- /**
- * The ftp directory.
- */
-- private String dir = "";
-+ public String dir = "";
-
- /**
- * the ftp publish object which contains the
- * data for this dialog.
- */
-- private CGPublish publish;
-- private UCB ucb;
-+ public CGPublish publish;
-+ public UCB ucb;
- /**
- * used for the status images url.
- */
-- private String imagesDirectory;
-+ public String imagesDirectory;
-
- /**
- * constructor.
-@@ -317,7 +317,7 @@
- /**
- * Make hostname, username and password text fields data aware.
- */
-- private void configure() {
-+ public void configure() {
- dataAware.add(UnoDataAware.attachEditControl(this, "host", txtHost, null,true));
- dataAware.add(UnoDataAware.attachEditControl(this, "username", txtUsername, null, true));
- dataAware.add(UnoDataAware.attachEditControl(this, "password", txtPassword, null, true));
-@@ -356,7 +356,7 @@
- * directory text fields.
- * is called uppon initialization.
- */
-- private void updateUI() {
-+ public void updateUI() {
- DataAware.updateUI(dataAware);
- setDir(dir);
- }
-@@ -367,7 +367,7 @@
- * @param ftpUrl
- * @return
- */
-- private String extractHost(String ftpUrl) {
-+ public String extractHost(String ftpUrl) {
- if (ftpUrl == null || ftpUrl.length() < 6)
- return "";
-
-@@ -384,7 +384,7 @@
- * @param ftpUrl
- * @return the directory portion of the ftp-url
- */
-- private String extractDir(String ftpUrl) {
-+ public String extractDir(String ftpUrl) {
- if (ftpUrl == null || ftpUrl.length() < 6)
- return "/";
-
-@@ -401,7 +401,7 @@
- * according to the status of the hostname, username, password text fields.
- * If one of these fields is empty, the button is disabled.
- */
-- private void enableTestButton() {
-+ public void enableTestButton() {
- setEnabled(btnTestConnection, !(isEmpty(host) || isEmpty(username) || isEmpty(password)));
-
- }
-@@ -409,7 +409,7 @@
- * @param s
- * @return true if the string is null or "".
- */
-- private final boolean isEmpty(String s) {
-+ public final boolean isEmpty(String s) {
- return (s==null) || (s.equals(""));
- }
-
-@@ -425,18 +425,18 @@
- * return the host name without the "ftp://"
- * @return
- */
-- private String host() {
-+ public String host() {
- return host(host);
- }
-
-- private static String host(String s) {
-+ public static String host(String s) {
- return (s.startsWith("ftp://") ? s.substring(6) : s);
- }
-
- /**
- * @return the full ftp url including username, password and directory portion.
- */
-- private String getFullUrl() {
-+ public String getFullUrl() {
- return getAcountUrl() + dir;
- }
-
-@@ -495,7 +495,7 @@
- * @param acountUrl
- * @throws Exception
- */
-- private void connect(String acountUrl) throws Exception {
-+ public void connect(String acountUrl) throws Exception {
- Object content = ucb.getContent(acountUrl);
-
- //list files in the content.
-@@ -566,10 +566,10 @@
- /**
- * changes the status label and icon, according to the
- * given status
-- * @param status one opf the private status-constants.
-+ * @param status one opf the public status-constants.
- * if this param is not one of them, an "unknown error" status is displayed.
- */
-- private void setLabel(int status) {
-+ public void setLabel(int status) {
- switch (status) {
- //not connected yet
- case STATUS_UNKONWN:
-@@ -608,13 +608,13 @@
- * @param label
- * @param color
- */
-- private void setLabel(String label, String image) {
-+ public void setLabel(String label, String image) {
- Helper.setUnoPropertyValue(getModel(lblStatus), "Label", label);
- Helper.setUnoPropertyValue(getModel(imgStatus), "ImageURL", imageUrl(image));
- }
-
-
-- private String imageUrl(String s) {
-+ public String imageUrl(String s) {
- String t = imagesDirectory + s;
- //System.out.println(t);
- return t;
---- wizards/com/sun/star/wizards/web/IconsDialog.java.gcj~ 2005-03-18 16:28:00.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/IconsDialog.java 2005-08-28 18:54:11.000000000 +0000
-@@ -79,14 +79,14 @@
- */
- public class IconsDialog extends ImageListDialog implements ImageList.ImageRenderer, ListModel {
-
-- private ConfigSet set;
-+ public ConfigSet set;
- String htmlexpDirectory;
- /**
- * this icons filename prefixes are used to display the icons.
- */
-- private String[] icons = new String[]
-+ public String[] icons = new String[]
- {"firs","prev","next","last","nav","text","up","down"};
-- private Integer[] objects;
-+ public Integer[] objects;
-
-
- /**
-@@ -195,23 +195,23 @@
- }
-
-
-- private int getIconsetNum(int i) {
-+ public int getIconsetNum(int i) {
- return i / icons.length;
- }
-
-- private int getIconNum(int i) {
-+ public int getIconNum(int i) {
- return i % icons.length;
- }
-
-- private String getIconsetPref(int iconset) {
-+ public String getIconsetPref(int iconset) {
- return getIconset(iconset).cp_FNPrefix;
- }
-
-- private String getIconsetPostfix(int iconset) {
-+ public String getIconsetPostfix(int iconset) {
- return getIconset(iconset).cp_FNPostfix;
- }
-
-- private CGIconSet getIconset(int i ) {
-+ public CGIconSet getIconset(int i ) {
- return (CGIconSet)set.getElementAt(i);
- }
-
---- wizards/com/sun/star/wizards/web/ImageListDialog.java.gcj~ 2004-09-08 14:12:26.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/ImageListDialog.java 2005-08-28 18:54:11.000000000 +0000
-@@ -100,44 +100,44 @@
- */
- public abstract class ImageListDialog extends UnoDialog2 implements UIConsts {
-
-- private String[] resources;
-+ public String[] resources;
-
-- private final static int RES_TITLE = 0;
-- private final static int RES_LABEL = 1;
-- private final static int RES_OK = 2;
-- private final static int RES_CANCEL = 3;
-- private final static int RES_HELP = 4;
-- private final static int RES_DESELECT = 5;
-- private final static int RES_OTHER = 6;
-- private final static int RES_COUNTER = 7;
-+ public final static int RES_TITLE = 0;
-+ public final static int RES_LABEL = 1;
-+ public final static int RES_OK = 2;
-+ public final static int RES_CANCEL = 3;
-+ public final static int RES_HELP = 4;
-+ public final static int RES_DESELECT = 5;
-+ public final static int RES_OTHER = 6;
-+ public final static int RES_COUNTER = 7;
-
- //GUI Components as Class members.
-- private XButton btnOK;
-- private XButton btnCancel;
-- private XButton btnHelp;
-- private XButton btnOther;
-- private XButton btnDeselect;
--
-- private static final String START = "%START";
-- private static final String END = "%END";
-- private static final String TOTAL= "%TOTAL";
-+ public XButton btnOK;
-+ public XButton btnCancel;
-+ public XButton btnHelp;
-+ public XButton btnOther;
-+ public XButton btnDeselect;
-+
-+ public static final String START = "%START";
-+ public static final String END = "%END";
-+ public static final String TOTAL= "%TOTAL";
-
-- protected int cutFilename = 0;
-+ public int cutFilename = 0;
-
-- protected boolean showDeselectButton = true;
-- protected boolean showOtherButton = true;
-+ public boolean showDeselectButton = true;
-+ public boolean showOtherButton = true;
-
-- private XFixedText lblTitle;
-+ public XFixedText lblTitle;
- //Font Descriptors as Class members.
-- private FontDescriptor fontDescriptor1 = new FontDescriptor();
-+ public FontDescriptor fontDescriptor1 = new FontDescriptor();
-
-- protected ImageList il;
-+ public ImageList il;
-
-- //private FileAccess fileAccess;
-+ //public FileAccess fileAccess;
-
-- private Object result;
-+ public Object result;
-
-- private int hid;
-+ public int hid;
-
- /**
- *
-@@ -164,7 +164,7 @@
- * This method should be called by subclasses after setting
- * the il ImageList member properties
- */
-- protected void build() {
-+ public void build() {
- //set dialog properties...
-
- int ilWidth = (il.getImageSize().Width + il.getGap().Width) * il.getCols()+ il.getGap().Width;
---- wizards/com/sun/star/wizards/web/LogTaskListener.java.gcj~ 2004-09-08 14:12:40.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/LogTaskListener.java 2005-08-28 18:54:11.000000000 +0000
-@@ -17,7 +17,7 @@
- */
- public class LogTaskListener implements TaskListener, ErrorHandler {
-
-- private PrintStream out;
-+ public PrintStream out;
-
- public LogTaskListener(PrintStream os) {
- out = os;
---- wizards/com/sun/star/wizards/web/Process.java.gcj~ 2005-03-08 15:48:19.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/Process.java 2005-08-28 18:54:11.000000000 +0000
-@@ -123,25 +123,25 @@
- */
- public class Process implements WebWizardConst, ProcessErrors {
-
-- private static final int TASKS_PER_DOC = 5;
-- private static final int TASKS_PER_XSL = 2;
-- private static final int TASKS_PER_PUBLISH = 2;
-+ public static final int TASKS_PER_DOC = 5;
-+ public static final int TASKS_PER_XSL = 2;
-+ public static final int TASKS_PER_PUBLISH = 2;
-
-- private static final int TASKS_IN_PREPARE = 1;
-- private static final int TASKS_IN_EXPORT = 2;
-- private static final int TASKS_IN_GENERATE = 2;
-- private static final int TASKS_IN_PUBLISH = 2;
-- private static final int TASKS_IN_FINISHUP = 1;
-+ public static final int TASKS_IN_PREPARE = 1;
-+ public static final int TASKS_IN_EXPORT = 2;
-+ public static final int TASKS_IN_GENERATE = 2;
-+ public static final int TASKS_IN_PUBLISH = 2;
-+ public static final int TASKS_IN_FINISHUP = 1;
-
-- private CGSettings settings;
-- private XMultiServiceFactory xmsf;
-+ public CGSettings settings;
-+ public XMultiServiceFactory xmsf;
-
-- private ErrorHandler errorHandler;
-+ public ErrorHandler errorHandler;
-
-
-- private String tempDir;
-- private FileAccess fileAccess;
-- private UCB ucb;
-+ public String tempDir;
-+ public FileAccess fileAccess;
-+ public UCB ucb;
-
- public Task myTask;
-
-@@ -149,9 +149,9 @@
- * This is a cache for exporters, so I do not need to
- * instanciate the same exporter more than once.
- */
-- private Map exporters = new Hashtable(3);
-+ public Map exporters = new Hashtable(3);
-
-- private boolean result;
-+ public boolean result;
-
- public Process(
- CGSettings settings,
-@@ -177,7 +177,7 @@
- * @return to how many destinations should the
- * generated site be published.
- */
-- private int countPublish() {
-+ public int countPublish() {
- int count = 0;
- ConfigSet publishers = settings.cp_DefaultSession.cp_Publishing;
- for (int i = 0; i<publishers.getSize(); i++)
-@@ -190,7 +190,7 @@
- * @return the number of task steps that this
- * session should have
- */
-- private int getTaskSteps() {
-+ public int getTaskSteps() {
- int docs = settings.cp_DefaultSession.cp_Content.cp_Documents.getSize();
- int xsl = 0;
- try {
-@@ -249,7 +249,7 @@
- * @param task
- * @return true should continue
- */
-- private boolean createTempDir(Task task) {
-+ public boolean createTempDir(Task task) {
-
- tempDir = fileAccess.createNewDir(getSOTempDir(xmsf), "wwiztemp");
- if (tempDir == null) {
-@@ -281,7 +281,7 @@
- * delete the temporary directory
- * @return true should continue
- */
-- private boolean cleanup(Task task) {
-+ public boolean cleanup(Task task) {
-
- task.setSubtaskName(TASK_FINISH);
- boolean b = fileAccess.delete(tempDir);
-@@ -296,7 +296,7 @@
- // * @param dir the directory to delete
- // * @return true if should continue
- // */
--// private boolean cleanup(String dir) {
-+// public boolean cleanup(String dir) {
- //
- // boolean success = true;
- //
-@@ -365,7 +365,7 @@
- * @param task task tracking.
- * @return true if should continue
- */
-- private boolean publish(String dir, Task task ) {
-+ public boolean publish(String dir, Task task ) {
- task.setSubtaskName(TASK_PUBLISH_PREPARE);
- ConfigSet set = settings.cp_DefaultSession.cp_Publishing;
- try {
-@@ -413,7 +413,7 @@
- * @param task task tracking
- * @return true if should continue
- */
-- private boolean publish(String dir,CGPublish publish,UCB copy,Task task) {
-+ public boolean publish(String dir,CGPublish publish,UCB copy,Task task) {
- try {
- //copy.deleteDirContent(publish.url);
- task.advance(true);
-@@ -565,7 +565,7 @@
- * @param task
- * @return
- */
-- private boolean export(Task task) {
-+ public boolean export(Task task) {
-
- return export(settings.cp_DefaultSession.cp_Content, tempDir, task);
-
-@@ -581,7 +581,7 @@
- * @param task
- * @return true if should continue
- */
-- private boolean export(CGContent content, String dir, Task task) {
-+ public boolean export(CGContent content, String dir, Task task) {
- int toPerform = 1;
- String contentDir = dir;
-
-@@ -655,7 +655,7 @@
- * @param task task tracking
- * @return true if should continue
- */
-- private boolean export(CGDocument doc, String dir,Task task) {
-+ public boolean export(CGDocument doc, String dir,Task task) {
-
- //first I check if the document was already validated...
- if (!doc.valid)
-@@ -753,7 +753,7 @@
- * @param errType error type
- * @return the interaction result
- */
-- private boolean error(Exception ex, Object arg1, int arg2, int errType) {
-+ public boolean error(Exception ex, Object arg1, int arg2, int errType) {
- result = false;
- return errorHandler.error(ex,arg1,arg2,errType);
- }
-@@ -765,7 +765,7 @@
- * @param task the task to advance
- * @param count the number of steps to advance
- */
-- private void failTask(Task task, int count) {
-+ public void failTask(Task task, int count) {
- while (count-- > 0)
- task.advance(false);
- }
-@@ -780,7 +780,7 @@
- * @throws IllegalAccessException
- * @throws InstantiationException
- */
-- private Exporter createExporter(CGExporter export)
-+ public Exporter createExporter(CGExporter export)
- throws ClassNotFoundException,
- IllegalAccessException,
- InstantiationException
-@@ -801,7 +801,7 @@
- * @throws IllegalAccessException thrown when using Class.forName(string)
- * @throws InstantiationException thrown when using Class.forName(string)
- */
-- private Exporter getExporter(CGExporter export)
-+ public Exporter getExporter(CGExporter export)
- throws ClassNotFoundException,
- IllegalAccessException,
- InstantiationException
---- wizards/com/sun/star/wizards/web/ProcessErrorHandler.java.gcj~ 2004-05-19 13:13:10.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/ProcessErrorHandler.java 2005-08-28 18:54:11.000000000 +0000
-@@ -80,9 +80,9 @@
- ProcessErrors
- {
-
-- private static final String FILENAME= "%FILENAME";
-- private static final String URL = "%URL";
-- private static final String ERROR = "%ERROR";
-+ public static final String FILENAME= "%FILENAME";
-+ public static final String URL = "%URL";
-+ public static final String ERROR = "%ERROR";
-
-
- WebWizardDialogResources resources;
-@@ -92,7 +92,7 @@
- resources = res;
- }
-
-- protected String getMessageFor(Exception ex, Object obj, int ix, int errType) {
-+ public String getMessageFor(Exception ex, Object obj, int ix, int errType) {
-
- switch (ix) {
-
---- wizards/com/sun/star/wizards/web/StatusDialog.java.gcj~ 2005-03-08 15:48:38.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/StatusDialog.java 2005-08-28 18:54:11.000000000 +0000
-@@ -85,20 +85,20 @@
-
- public static final int STANDARD_WIDTH = 240;
-
-- private XProgressBar progressBar;
-- private XFixedText lblTaskName;
-- private XFixedText lblCounter;
-- private XButton btnCancel;
--
-- private String[] res;
-- private Renderer renderer;
-- private boolean enableBreak = false;
-- private boolean closeOnFinish = true;
-- private MethodInvocation finishedMethod;
-+ public XProgressBar progressBar;
-+ public XFixedText lblTaskName;
-+ public XFixedText lblCounter;
-+ public XButton btnCancel;
-+
-+ public String[] res;
-+ public Renderer renderer;
-+ public boolean enableBreak = false;
-+ public boolean closeOnFinish = true;
-+ public MethodInvocation finishedMethod;
-
-- private UnoDialog parent;
-+ public UnoDialog parent;
-
-- private boolean finished;
-+ public boolean finished;
-
- /**
- * Note on the argument resource:
-@@ -146,12 +146,12 @@
-
- }
-
-- private void initProgressBar(Task t) {
-+ public void initProgressBar(Task t) {
- progressBar.setRange(0,t.getMax());
- progressBar.setValue(0);
- }
-
-- private void setStatus(int status) {
-+ public void setStatus(int status) {
- if (finished) return;
- progressBar.setValue(status);
- xReschedule.reschedule();
-@@ -167,7 +167,7 @@
- * change the max property of the status bar
- * @param max
- */
-- private void setMax(int max) {
-+ public void setMax(int max) {
- if (finished) return;
- Helper.setUnoPropertyValue(getModel(progressBar),"ProgressValueMax", new Integer(max));
- }
---- wizards/com/sun/star/wizards/web/StylePreview.java.gcj~ 2004-09-08 14:13:21.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/StylePreview.java 2005-08-28 18:54:11.000000000 +0000
-@@ -75,7 +75,7 @@
- * of the user.
- */
- public class StylePreview {
-- private FileAccess fileAccess;
-+ public FileAccess fileAccess;
- /**
- * the destination html url.
- */
-@@ -83,7 +83,7 @@
- /**
- * the destination css url
- */
-- private String cssFilename;
-+ public String cssFilename;
- /**
- * destination directory
- */
-@@ -91,11 +91,11 @@
- /**
- * destination background file url
- */
-- private String backgroundFilename;
-+ public String backgroundFilename;
- /**
- * web wizard work directory
- */
-- private String wwRoot;
-+ public String wwRoot;
-
-
- /**
-@@ -159,7 +159,7 @@
- * @return the url of the new directory.
- * @throws Exception
- */
-- private String createTempDir(XMultiServiceFactory xmsf) throws Exception {
-+ public String createTempDir(XMultiServiceFactory xmsf) throws Exception {
- String tempPath = FileAccess.getOfficePath(xmsf,"Temp","") ;
- String s = fileAccess.createNewDir(tempPath, "wwiz");
- fileAccess.createNewDir(s,"images");
-@@ -170,7 +170,7 @@
- * deletes/removes the temporary directroy.
- * @throws Exception
- */
-- private void removeTempDir() throws Exception {
-+ public void removeTempDir() throws Exception {
- fileAccess.delete(tempDir);
- }
-
---- wizards/com/sun/star/wizards/web/TOCPreview.java.gcj~ 2005-03-08 15:49:12.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/TOCPreview.java 2005-08-28 18:54:11.000000000 +0000
-@@ -97,15 +97,15 @@
- */
-
- public class TOCPreview {
-- private String tempDir = null;
-- private XMultiServiceFactory xmsf;
-- private FileAccess fileAccess;
-- private WebWizardDialogResources resources;
-- private URL openHyperlink;
-- private XDispatch xDispatch;
-- private PropertyValue[] loadArgs;
-- private UCB ucb;
-- private XFrame xFrame;
-+ public String tempDir = null;
-+ public XMultiServiceFactory xmsf;
-+ public FileAccess fileAccess;
-+ public WebWizardDialogResources resources;
-+ public URL openHyperlink;
-+ public XDispatch xDispatch;
-+ public PropertyValue[] loadArgs;
-+ public UCB ucb;
-+ public XFrame xFrame;
-
- /**
- * @param xmsf_
-@@ -148,7 +148,7 @@
- }
-
-
-- private PropertyValue[] loadArgs(String url) {
-+ public PropertyValue[] loadArgs(String url) {
- PropertyValue pv = new PropertyValue();
- pv.Name = "URL";
- pv.Value = url;
---- wizards/com/sun/star/wizards/web/WWD_Events.java.gcj~ 2005-03-08 15:49:29.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/WWD_Events.java 2005-08-28 18:54:11.000000000 +0000
-@@ -96,7 +96,7 @@
- */
- public abstract class WWD_Events extends WWD_Startup {
-
-- private static final short[] EMPTY_SHORT_ARRAY = new short[0];
-+ public static final short[] EMPTY_SHORT_ARRAY = new short[0];
-
-
- /**
-@@ -104,7 +104,7 @@
- * If "" - it means the current session is the default one (empty)
- * If a session is loaded, this will be the name of the loaded session.
- */
-- protected String currentSession = "";
-+ public String currentSession = "";
-
- /**
- * He - my constructor !
-@@ -128,14 +128,14 @@
- * *******************************************************
- * *********************************************************/
-
-- protected void leaveStep(int nOldStep, int nNewStep) {
-+ public void leaveStep(int nOldStep, int nNewStep) {
- if (nOldStep == 1 && nNewStep == 2) {
- // 1. check if the selected session is the same as the current one.
- }
- }
-
-
-- protected void enterStep(int old, int newStep) {
-+ public void enterStep(int old, int newStep) {
- if ((old == 1)) {
- String sessionToLoad = "";
- short[] s = (short[]) Helper.getUnoPropertyValue(getModel(lstLoadSettings), "SelectedItems");
-@@ -281,7 +281,7 @@
- return selectedDoc;
- }
-
-- private static String[] EMPTY_STRING_ARRAY = new String[0];
-+ public static String[] EMPTY_STRING_ARRAY = new String[0];
-
- /* public void loadSessionSelected() {
- UIHelper.setEnabled(btnLoadSession,true);
-@@ -410,7 +410,7 @@
- * invoked when the user clicks "Choose backgrounds" button.
- */
-
-- private ImageListDialog bgDialog;
-+ public ImageListDialog bgDialog;
-
- /**
- * the user clicked the "backgrounds" button
-@@ -442,7 +442,7 @@
- refreshStylePreview();
- }
-
-- private IconsDialog iconsDialog;
-+ public IconsDialog iconsDialog;
-
- /**
- * is called when the user clicks "Icon sets" button.
-@@ -484,7 +484,7 @@
- * sets the publishing url of either a local/zip or ftp publisher.
- * updates the ui....
- */
-- private CGPublish setPublishUrl(String publisher, String url, int number) {
-+ public CGPublish setPublishUrl(String publisher, String url, int number) {
- if (url == null)
- return null;
- CGPublish p = getPublisher(publisher);
-@@ -500,7 +500,7 @@
- * (the text box url)
- * @param number
- */
-- private void updatePublishUI(int number) {
-+ public void updatePublishUI(int number) {
- ((DataAware) pubAware.get(number)).updateUI();
- ((DataAware) pubAware.get(number + 1)).updateUI();
- checkPublish();
-@@ -533,7 +533,7 @@
- * @param pub
- * @return true if OK was pressed, otherwise false.
- */
-- private boolean showFTPDialog(CGPublish pub) {
-+ public boolean showFTPDialog(CGPublish pub) {
- try {
- return getFTPDialog(pub).execute(this) == 1;
- } catch (Exception ex) {
-@@ -553,7 +553,7 @@
- getPublisher(ZIP_PUBLISHER).overwriteApproved = true;
- }
-
-- private TOCPreview docPreview;
-+ public TOCPreview docPreview;
-
-
- /**
-@@ -580,7 +580,7 @@
- * be replaced.
- * @return true if "create" should continue. false if "create" should abort.
- */
-- private boolean publishTargetApproved() {
-+ public boolean publishTargetApproved() {
- boolean result = true;
- // 1. check local publish target
-
-@@ -743,7 +743,7 @@
- /*
- * return false if "create" should be aborted. true if everything is fine.
- */
-- private boolean saveSession() {
-+ public boolean saveSession() {
- try {
- Object node = null;
- String name = getSessionSaveName();
-@@ -804,7 +804,7 @@
- }
- }
-
-- private String targetStringFor(String publisher) {
-+ public String targetStringFor(String publisher) {
- CGPublish p = getPublisher(publisher);
- if (p.cp_Publish)
- return "\n" + getFileAccess().getPath(p.cp_URL,null);
-@@ -837,8 +837,8 @@
- xDialog.endExecute();
- }
-
-- private Process process;
-- private boolean exitOnCreate = true;
-+ public Process process;
-+ public boolean exitOnCreate = true;
-
- /**
- * the user clicks the finish/create button.
-@@ -884,7 +884,7 @@
- * popped up when clicking "Create".
- *
- */
-- private void finishWizard2() {
-+ public void finishWizard2() {
-
- CGPublish p = getPublisher(LOCAL_PUBLISHER);
- p.url = p.cp_URL;
-@@ -982,7 +982,7 @@
- * of the last steps' checkboxes.
- * @author rp143992
- */
-- private class Create implements XKeyListener {
-+ public class Create implements XKeyListener {
- long time = 0;
- int count = 0;
-
-@@ -1055,7 +1055,7 @@
- }
-
- public class LoadDocs {
-- private XControl xC;
-+ public XControl xC;
- String[] files;
- Task task;
-
---- wizards/com/sun/star/wizards/web/WWD_General.java.gcj~ 2004-09-08 14:16:24.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/WWD_General.java 2005-08-28 18:54:11.000000000 +0000
-@@ -81,22 +81,22 @@
- public abstract class WWD_General extends WebWizardDialog {
-
-
-- private FileAccess fileAccess;
-+ public FileAccess fileAccess;
-
-- private SystemDialog docAddDialog, folderDialog, favIconDialog, zipDialog;
-+ public SystemDialog docAddDialog, folderDialog, favIconDialog, zipDialog;
-
-- protected FTPDialog ftpDialog;
-+ public FTPDialog ftpDialog;
-
-- protected CGSettings settings;
-+ public CGSettings settings;
-
-
- /**
- * true if proxies are on, which means, ftp is disabled.
- */
-- protected boolean proxies;
-- private XStringSubstitution xStringSubstitution ;
-+ public boolean proxies;
-+ public XStringSubstitution xStringSubstitution ;
-
-- protected StatusDialog getStatusDialog() {
-+ public StatusDialog getStatusDialog() {
-
- StatusDialog statusDialog = new StatusDialog(xMSF, StatusDialog.STANDARD_WIDTH, resources.resLoadingSession , false , new String[] { resources.prodName, "", "", "", "", "" }, "HID:"+ HID0_STATUS_DIALOG);
- try {
-@@ -122,7 +122,7 @@
- */
-
-
-- protected SystemDialog getDocAddDialog() {
-+ public SystemDialog getDocAddDialog() {
- //if (docAddDialog == null) {
- docAddDialog = SystemDialog.createOpenDialog(xMSF);
- for (int i = 0; i < settings.cp_Filters.getSize(); i++) {
-@@ -139,7 +139,7 @@
- return docAddDialog;
- }
-
-- protected SystemDialog getZipDialog() {
-+ public SystemDialog getZipDialog() {
- if (zipDialog==null) {
- zipDialog = SystemDialog.createStoreDialog(xMSF);
- zipDialog.addFilter(resources.resZipFiles,"*.zip",true);
-@@ -147,7 +147,7 @@
- return zipDialog;
- }
-
-- protected FTPDialog getFTPDialog(CGPublish pub) {
-+ public FTPDialog getFTPDialog(CGPublish pub) {
- if (ftpDialog == null) {
- try {
- ftpDialog = new FTPDialog(xMSF,pub);
-@@ -161,14 +161,14 @@
- }
-
-
-- protected String showFolderDialog(String title, String description,String dir) {
-+ public String showFolderDialog(String title, String description,String dir) {
- if (folderDialog == null)
- folderDialog = SystemDialog.createFolderDialog(xMSF);
- return folderDialog.callFolderDialog(title,description,dir);
- }
-
-
-- protected FileAccess getFileAccess() {
-+ public FileAccess getFileAccess() {
- if (fileAccess == null)
- try {
- fileAccess = new FileAccess(xMSF);
-@@ -186,7 +186,7 @@
- * @param s
- * @return
- */
-- protected CGDocument getDoc(short[] s) {
-+ public CGDocument getDoc(short[] s) {
- if (s.length==0)
- return null;
- else if (settings.cp_DefaultSession.cp_Content.cp_Documents.getSize() <= s[0])
-@@ -198,7 +198,7 @@
- * how many documents are in the list?
- * @return the number of documents in the docs list.
- */
-- protected int getDocsCount() {
-+ public int getDocsCount() {
- return settings.cp_DefaultSession.cp_Content.cp_Documents.getSize();
- }
-
-@@ -207,7 +207,7 @@
- * fills the export listbox.
- * @param listContent
- */
-- protected void fillExportList(Object[] listContent) {
-+ public void fillExportList(Object[] listContent) {
- ListModelBinder.fillList(lstDocTargetType,listContent,null);
- }
-
-@@ -216,14 +216,14 @@
- * @param name one of the WebWizardConst constants : FTP
- * @return
- */
-- protected CGPublish getPublisher(String name) {
-+ public CGPublish getPublisher(String name) {
- return (CGPublish)settings.cp_DefaultSession.cp_Publishing.getElement(name);
- }
-
- /**
- * @return true if the checkbox "save session" is checked.
- */
-- protected boolean isSaveSession() {
-+ public boolean isSaveSession() {
- return (((Number)Helper.getUnoPropertyValue(
- getModel(chkSaveSettings),"State")).intValue()==1);
- }
-@@ -231,7 +231,7 @@
- /**
- * @return the name to save the session (step 7)
- */
-- protected String getSessionSaveName() {
-+ public String getSessionSaveName() {
- return (String)Helper.getUnoPropertyValue(
- getModel(cbSaveSettings),"Text");
- }
-@@ -242,7 +242,7 @@
- * enables or disables the 'next' and the 'create' button.
- *
- */
-- protected void checkSteps() {
-+ public void checkSteps() {
- /* first I check the document list.
- * If it is empty, then step3 and on are disabled.
- */
-@@ -255,7 +255,7 @@
- * enables/disables the steps 3 to 7)
- * @param enabled true = enabled, false = disabled.
- */
-- private void enableSteps(boolean enabled) {
-+ public void enableSteps(boolean enabled) {
-
- if (!enabled && !isStepEnabled(3))
- return;
-@@ -280,7 +280,7 @@
- * create button.
- * @return
- */
-- protected boolean checkDocList() {
-+ public boolean checkDocList() {
- if (settings.cp_DefaultSession.cp_Content.cp_Documents.getSize() == 0) {
- enableSteps(false);
- return false;
-@@ -309,7 +309,7 @@
- * active, returns true if the url is not empty...
- * if the url is empty, throws an exception
- */
-- private boolean checkPublish(String s, Object text, String property) {
-+ public boolean checkPublish(String s, Object text, String property) {
- CGPublish p = getPublisher(s);
- if (p.cp_Publish) {
- String url = (String)Helper.getUnoPropertyValue(getModel(text),property);
-@@ -330,7 +330,7 @@
- * which are chosen are legal.
- * If proxies are on, ftp publisher is ignored.
- */
-- private boolean checkPublish_() {
-+ public boolean checkPublish_() {
- try {
- return (checkPublish(LOCAL_PUBLISHER, txtLocalDir, "Text")
- | ( !proxies && checkPublish(FTP_PUBLISHER, lblFTP, "Label"))
-@@ -356,7 +356,7 @@
- * shows a message box "Unexpected Error... " :-)
- * @param ex
- */
-- protected void unexpectedError(Exception ex) {
-+ public void unexpectedError(Exception ex) {
- ex.printStackTrace();
- XWindowPeer peer = xControl.getPeer();
- AbstractErrorHandler.showMessage(xMSF,peer,resources.resErrUnexpected, ErrorHandler.ERROR_PROCESS_FATAL);
-@@ -367,7 +367,7 @@
- * @param path a path, which might contain OOo path variables.
- * @return the path, after substituing path variables.
- */
-- protected String substitute(String path) {
-+ public String substitute(String path) {
- try {
- return xStringSubstitution.substituteVariables(path,false);
- }
---- wizards/com/sun/star/wizards/web/WWD_Startup.java.gcj~ 2005-08-28 16:44:52.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/WWD_Startup.java 2005-08-28 18:54:11.000000000 +0000
-@@ -160,27 +160,27 @@
- * We did not implement the live-preview document,
- * so this became obsolete.
- */
-- protected DataAware.Listener refresh;
-+ public DataAware.Listener refresh;
- /**
- * Is called whenever a field is changed which
- * could affect the "create" button enable state,
- * like publishing-checkboxes, save-session check- and textbox.
- */
-- protected DataAware.Listener checkPublish = new CheckPublish();
-+ public DataAware.Listener checkPublish = new CheckPublish();
-
- /**
- * The Vector containing DataAware objects
- * which relay on the selected document
- * as DataObject (or Model).
- */
-- protected List docAware = new Vector();
-+ public List docAware = new Vector();
- /**
- * The Vector containing DataAware objects
- * which relay on the session's generalInfo
- * Object (CGSession.cp_GeneralInfo) as
- * DataObject (or model).
- */
-- protected List genAware = new Vector();
-+ public List genAware = new Vector();
- /**
- * The vector containing DataAware objectscm25npd ..
- * which relay on the session's Design Object
-@@ -188,7 +188,7 @@
- * (or model).
- *
- */
-- protected List designAware = new Vector();
-+ public List designAware = new Vector();
- /**
- * A Vector containig the DataAware objects
- * which relay on Publishing Objects.
-@@ -197,7 +197,7 @@
- * on a <b>different</b> CGPublish object,
- * So they are handled with more care.
- */
-- protected List pubAware = new Vector(3);
-+ public List pubAware = new Vector(3);
-
- /**
- * The DataAware object which handles
-@@ -205,35 +205,35 @@
- * This will call the set/getDocument() method
- * implemented in WWD_General.
- */
-- protected UnoDataAware docListDA;
-+ public UnoDataAware docListDA;
- /**
- * DataAware object which synchronizes the session
- * name in step 7 with the CGSession.cp_Name
- */
-- protected UnoDataAware sessionNameDA;
-+ public UnoDataAware sessionNameDA;
-
- /**
- * Binds a ListModel to the UnoControlListBox.
- */
-- protected ListModelBinder docsBinder;
-+ public ListModelBinder docsBinder;
-
- /**
- * a DocumentPreview object is
- * the UI OO Document preview
- * in the Dialog
- */
-- protected DocumentPreview dpStylePreview;
-+ public DocumentPreview dpStylePreview;
- /**
- * An Object that implements the
- * File-copy and refresh of the
- * style preview
- */
-- protected StylePreview stylePreview;
-+ public StylePreview stylePreview;
-
- /**
- * the currently selected document.
- */
-- protected short[] selectedDoc = new short[0];
-+ public short[] selectedDoc = new short[0];
-
- /**
- * If ftp proxies are on, ftp is disabled, and
-@@ -249,7 +249,7 @@
- * The backgroundDoc memeber contains the TextDocument
- * instance used for that purpose.
- */
-- protected XFrame myFrame;
-+ public XFrame myFrame;
-
-
- /* ******************************************
-@@ -337,7 +337,7 @@
- * @return true if (http) proxies are on.
- * @throws Exception
- */
-- private boolean getOOProxies() throws Exception {
-+ public boolean getOOProxies() throws Exception {
- Object node = Configuration.getConfigurationRoot(xMSF,"org.openoffice.Inet/Settings",false);
- int i = Configuration.getInt("ooInetProxyType",node);
- //System.out.println("WWD:Startup:getOOProxies:" + i);
-@@ -358,7 +358,7 @@
- * The combobox text in step 7 will be updated
- * automatically when updateUI() is called.
- */
-- protected void setSaveSessionName(CGSession session) {
-+ public void setSaveSessionName(CGSession session) {
- int max = 0;
- int len = resources.resSessionName.length();
- // traverse between the sessions and find the one that
-@@ -374,7 +374,7 @@
- }
-
-
-- private int max(int i1, int i2) {
-+ public int max(int i1, int i2) {
- if (i1 > i2)
- return i1;
- else
-@@ -386,7 +386,7 @@
- * like MaxStep, Complete, Interactive-
- * Disables the finbihButton.
- */
-- private void addRoadMapItems() {
-+ public void addRoadMapItems() {
- insertRoadMapItems(new String[] { resources.resStep1, resources.resStep2, resources.resStep3, resources.resStep4, resources.resStep5, resources.resStep6, resources.resStep7 }, new int[] { 1, 2, 3, 4, 5, 6, 7 }, new boolean[] { true, true, false, false, false, false, false });
-
- setRoadmapInteractive(true);
-@@ -405,7 +405,7 @@
- * the state of the corresponding data objects.
- *
- */
-- private void updateUI() {
-+ public void updateUI() {
- DataAware.updateUI(designAware);
- DataAware.updateUI(genAware);
- DataAware.updateUI(pubAware);
-@@ -413,7 +413,7 @@
- checkPublish();
- }
-
-- private XFrame getFrame(Object model) {
-+ public XFrame getFrame(Object model) {
- XModel xmodel = (XModel)UnoRuntime.queryInterface(XModel.class,model);
- return xmodel.getCurrentController().getFrame();
- }
-@@ -456,7 +456,7 @@
- /**
- * initializes the style preview.
- */
-- private void addStylePreview() {
-+ public void addStylePreview() {
- try {
- dpStylePreview = new DocumentPreview(xMSF, imgPreview);
- stylePreview = new StylePreview(xMSF, settings.workPath);
-@@ -471,7 +471,7 @@
- /**
- * Loads the web wizard settings from the registry.
- */
-- private void loadSettings(Object document) {
-+ public void loadSettings(Object document) {
- try {
- // instanciate
- String[] settingsResources = new String[] {
-@@ -520,7 +520,7 @@
- }
-
-
-- protected void prepareSessionLists() {
-+ public void prepareSessionLists() {
- // now copy the sessions list...
- Object[] sessions = settings.cp_SavedSessions.items();
- settings.savedSessions.clear();
-@@ -539,7 +539,7 @@
- * Also set the selected "load" session to the last session
- * which was saved.
- */
-- private void fillLists() {
-+ public void fillLists() {
- // fill the saved session list.
- ListModelBinder.fillList(lstLoadSettings, settings.cp_SavedSessions.items(), null);
-
-@@ -555,7 +555,7 @@
-
- }
-
-- protected void selectSession() {
-+ public void selectSession() {
- int selectedSession = 0;
- if (settings.cp_LastSavedSession != null && !settings.cp_LastSavedSession.equals("")) {
-
-@@ -581,7 +581,7 @@
- * textbox, no buttons though), a DataObject's JavaBean Property,
- * or class member.
- */
-- private void makeDataAware() {
-+ public void makeDataAware() {
- //page 1
- new ListModelBinder(lstLoadSettings, settings.cp_SavedSessions);
-
-@@ -658,7 +658,7 @@
- * @param checkbox
- * @param textbox
- */
-- private void pubAware(String publish, Object checkbox, Object textbox, boolean isLabel) {
-+ public void pubAware(String publish, Object checkbox, Object textbox, boolean isLabel) {
- Object p = settings.cp_DefaultSession.cp_Publishing.getElement(publish);
- UnoDataAware uda = UnoDataAware.attachCheckBox(p, "cp_Publish", checkbox, checkPublish, true);
- uda.setInverse(true);
-@@ -688,7 +688,7 @@
- * and ??? times for each document in the session.
- *
- */
-- protected void mount(CGSession session, Task task, boolean refreshStyle, XControl xC ) {
-+ public void mount(CGSession session, Task task, boolean refreshStyle, XControl xC ) {
- /* This checks the documents. If the user
- * chooses to cancel, the session is not loaded.
- */
-@@ -735,7 +735,7 @@
- * @param data the CGPublish object
- * @param i the number of the object (0 = local, 1 = ftp, 2 = zip)
- */
-- private void mount(Object data, int i) {
-+ public void mount(Object data, int i) {
- ((DataAware) pubAware.get(i * 2)).setDataObject(data, true);
- ((DataAware) pubAware.get(i * 2 + 1)).setDataObject(data, true);
- }
-@@ -745,7 +745,7 @@
- * @param root the CGContent object
- * that contains the documents (a ListModel)
- */
-- private void mount(CGContent root) {
-+ public void mount(CGContent root) {
- ListModelBinder.fillList(lstDocuments, root.cp_Documents.items(), null);
- docsBinder.setListModel(root.cp_Documents);
- disableDocUpDown();
-@@ -758,7 +758,7 @@
- * @param data
- * @param list
- */
-- protected void mount(Object data, List list) {
-+ public void mount(Object data, List list) {
- for (int i = 0; i < list.size(); i++)
- ((DataAware) list.get(i)).setDataObject(data, true);
- }
-@@ -774,7 +774,7 @@
- * displayed, using the Task object to monitor progress.
- * @return true if the document is ok (a file exists in the given url).
- */
-- protected boolean checkDocument(CGDocument doc, Task task, XControl xC) {
-+ public boolean checkDocument(CGDocument doc, Task task, XControl xC) {
- try {
- doc.validate(xMSF, task);
- return true;
-@@ -820,7 +820,7 @@
- * @param content
- * @param task
- */
-- private void checkContent(CGContent content, Task task, XControl xC) {
-+ public void checkContent(CGContent content, Task task, XControl xC) {
- for (int i = 0; i < content.cp_Documents.getSize(); i++)
- if (!checkDocument((CGDocument) content.cp_Documents.getElementAt(i), task, xC))
- // I use here 'i--' since, when the document is removed
-@@ -836,7 +836,7 @@
- * changes the "create" button enable state accordingly.
- * @author rpiterman
- */
-- private class CheckPublish implements DataAware.Listener {
-+ public class CheckPublish implements DataAware.Listener {
- public void eventPerformed(Object event) {
- checkPublish();
- }
-@@ -849,7 +849,7 @@
- * down disabled and so on...)
- *
- */
-- protected void disableDocUpDown() {
-+ public void disableDocUpDown() {
- try {
- setEnabled(btnDocUp, selectedDoc.length == 0 ? Boolean.FALSE : (selectedDoc[0] == 0 ? Boolean.FALSE : Boolean.TRUE));
- setEnabled(btnDocDown, selectedDoc.length == 0 ? Boolean.FALSE : (selectedDoc[0] + 1 < settings.cp_DefaultSession.cp_Content.cp_Documents.getSize() ? Boolean.TRUE : Boolean.FALSE));
-@@ -901,7 +901,7 @@
- }
-
-
-- private class StylesComparator implements Comparator {
-+ public class StylesComparator implements Comparator {
-
- /* (non-Javadoc)
- * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
---- wizards/com/sun/star/wizards/web/WebWizardDialog.java.gcj~ 2005-03-18 16:28:48.000000000 +0000
-+++ wizards/com/sun/star/wizards/web/WebWizardDialog.java 2005-08-28 18:54:11.000000000 +0000
-@@ -217,18 +217,18 @@
- FontDescriptor fontDescriptor6 = new FontDescriptor();
- FontDescriptor fontDescriptor7 = new FontDescriptor();
-
-- //private static String[] PROPNAMES_LBL_NOFOCUS = new String[] {"Height", "Label", "Name", "PositionX", "PositionY", "Step", "Width"};
-- private static String[] PROPNAMES_LBL = new String[] { "Height", "Label", "Name", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
-- private static String[] PROPNAMES_CHKBOX = new String[] { "Height", "HelpURL", "Label", "Name", "PositionX", "PositionY", "State", "Step", "TabIndex", "Width" };
-- private static String[] PROPNAMES_BUTTON = new String[] { "Height", "HelpURL", "Label", "Name", "PositionX", "PositionY", "Step", "TabIndex", "Width" };
-- private static String[] PROPNAMES_TXT = new String[] { "Height", "HelpURL", "Name", "PositionX", "PositionY", "Step", "TabIndex", "Width" };
-- private static String[] PROPNAMES_TXT_2 = new String[] { "Height", "HelpURL", "Name", "PositionX", "PositionY", "ReadOnly", "Step", "TabIndex", "Width" };
-- private static String[] PROPNAMES_TITLE = new String[] { "FontDescriptor", "Height", "Label", "MultiLine", "Name", "PositionX", "PositionY", "Step", "TabIndex", "Width" };
-+ //public static String[] PROPNAMES_LBL_NOFOCUS = new String[] {"Height", "Label", "Name", "PositionX", "PositionY", "Step", "Width"};
-+ public static String[] PROPNAMES_LBL = new String[] { "Height", "Label", "Name", "PositionX", "PositionY", "Step", "TabIndex", "Width"};
-+ public static String[] PROPNAMES_CHKBOX = new String[] { "Height", "HelpURL", "Label", "Name", "PositionX", "PositionY", "State", "Step", "TabIndex", "Width" };
-+ public static String[] PROPNAMES_BUTTON = new String[] { "Height", "HelpURL", "Label", "Name", "PositionX", "PositionY", "Step", "TabIndex", "Width" };
-+ public static String[] PROPNAMES_TXT = new String[] { "Height", "HelpURL", "Name", "PositionX", "PositionY", "Step", "TabIndex", "Width" };
-+ public static String[] PROPNAMES_TXT_2 = new String[] { "Height", "HelpURL", "Name", "PositionX", "PositionY", "ReadOnly", "Step", "TabIndex", "Width" };
-+ public static String[] PROPNAMES_TITLE = new String[] { "FontDescriptor", "Height", "Label", "MultiLine", "Name", "PositionX", "PositionY", "Step", "TabIndex", "Width" };
-
-- private static Integer INTEGER_91 = new Integer(91);
-- private static Integer INTEGER_97 = new Integer(97);
-- private static Integer INTEGER_103 = new Integer(103);
-- private static Integer INTEGER_169 = new Integer(169);
-+ public static Integer INTEGER_91 = new Integer(91);
-+ public static Integer INTEGER_97 = new Integer(97);
-+ public static Integer INTEGER_103 = new Integer(103);
-+ public static Integer INTEGER_169 = new Integer(169);
-
-
- //Resources Object
-@@ -694,7 +694,7 @@
- * @author rpiterman
-
- */
-- private class LayoutRenderer implements ImageList.ImageRenderer {
-+ public class LayoutRenderer implements ImageList.ImageRenderer {
-
- public Object[] getImageUrls(Object listItem) {
- Object[] oResIds = null;
---- filter/source/xsltfilter/XSLTFilter.java.gcj~ 2003-07-22 11:06:45.000000000 +0000
-+++ filter/source/xsltfilter/XSLTFilter.java 2005-08-28 18:54:11.000000000 +0000
-@@ -108,10 +108,10 @@
- public class XSLTFilter {
-
- // ----------------------------------------------------------------
-- private static boolean DEBUG = false;
-- private static boolean DEBUGCHK = false;
-- private static String debugfile;
-- private static void debug(String s)
-+ public static boolean DEBUG = false;
-+ public static boolean DEBUGCHK = false;
-+ public static String debugfile;
-+ public static void debug(String s)
- {
- if (!DEBUGCHK) {
- if (System.getProperty("xsltfilter.debug")==null){
-@@ -133,7 +133,7 @@
- }
- // ----------------------------------------------------------------
-
-- private static XMultiServiceFactory xMSF;
-+ public static XMultiServiceFactory xMSF;
-
- /** This inner class provides the component as a concrete implementation
- * of the service description. It implements the needed interfaces.
-@@ -147,13 +147,13 @@
- XDocumentHandler,
- XTypeProvider {
-
-- private boolean indent;
-- private XInputStream xInStream;
-- private XOutputStream xOutStream;
-- private XOutputStream xos;
-- private String sExportStyleSheet;
-- private String doctype_public;
-- private String doctype_system;
-+ public boolean indent;
-+ public XInputStream xInStream;
-+ public XOutputStream xOutStream;
-+ public XOutputStream xos;
-+ public String sExportStyleSheet;
-+ public String doctype_public;
-+ public String doctype_system;
-
- public _XSLTFilter()
- {
-@@ -168,7 +168,7 @@
-
- /** The component will be registered under this name.
- */
-- static private final String __serviceName = "com.sun.star.documentconversion.XSLTFilter";
-+ static public final String __serviceName = "com.sun.star.documentconversion.XSLTFilter";
-
- public com.sun.star.uno.Type[] getTypes() {
- Type[] typeReturn = {};
---- filter/source/xsltfilter/XSLTFilterOLEExtracter.java.gcj~ 2005-08-18 08:20:30.000000000 +0000
-+++ filter/source/xsltfilter/XSLTFilterOLEExtracter.java 2005-08-28 18:54:11.000000000 +0000
-@@ -91,11 +91,11 @@
- * see XSLTXalanOLEExtracter.java
- */
- public class XSLTFilterOLEExtracter {
-- protected XMultiServiceFactory m_xMSF;
-- protected XNameContainer m_Storage;
-- protected XStream m_RootStream;
-- protected XConnection m_Connection;
-- protected String sConnectionString;
-+ public XMultiServiceFactory m_xMSF;
-+ public XNameContainer m_Storage;
-+ public XStream m_RootStream;
-+ public XConnection m_Connection;
-+ public String sConnectionString;
-
- public XSLTFilterOLEExtracter ()
- {}
-@@ -355,7 +355,7 @@
- }
- /** separtates the uno-url into 3 different parts.
- */
-- protected static String[] parseUnoUrl( String url )
-+ public static String[] parseUnoUrl( String url )
- {
- String [] aRet = new String [3];
-
-@@ -379,7 +379,7 @@
- return aRet;
- }
- //connect to running OOo and keep an XConnection object so that we can disconnect from OOo as we wish
-- protected XMultiServiceFactory connectAwareGetServiceFactory()throws com.sun.star.uno.Exception,
-+ public XMultiServiceFactory connectAwareGetServiceFactory()throws com.sun.star.uno.Exception,
- com.sun.star.uno.RuntimeException,
- Exception
- {
-@@ -432,14 +432,14 @@
- return xFac;
- }
-
-- protected static boolean DEBUG = false;
-- protected static boolean DEBUGCHK = false;
-- protected static String debugfile;
-- protected static void debugln(String s)
-+ public static boolean DEBUG = false;
-+ public static boolean DEBUGCHK = false;
-+ public static String debugfile;
-+ public static void debugln(String s)
- {
- debug(s + "\n");
- }
-- protected static void debug(String s)
-+ public static void debug(String s)
- {
- if (!DEBUGCHK) {
- if (System.getProperty("xsltfilter.debug")==null){
---- filter/source/xsltfilter/XSLTXalanOLEExtracter.java.gcj~ 2005-03-29 12:24:03.000000000 +0000
-+++ filter/source/xsltfilter/XSLTXalanOLEExtracter.java 2005-08-28 18:54:11.000000000 +0000
-@@ -89,4 +89,4 @@
- {
- exit();
- }
--}
-\ No newline at end of file
-+}
---- filter/source/xsltfilter/XSLTransformer.java.gcj~ 2005-05-20 07:47:10.000000000 +0000
-+++ filter/source/xsltfilter/XSLTransformer.java 2005-08-28 18:54:11.000000000 +0000
-@@ -95,35 +95,35 @@
- *
- */
-
-- private XInputStream xistream;
-- private XOutputStream xostream;
-- private BufferedOutputStream ostream;
--
-- // private static HashMap templatecache;
--
-- private static final int STREAM_BUFFER_SIZE = 4000;
-- private static final String STATSPROP = "XSLTransformer.statsfile";
-- private static PrintStream statsp;
--
-- private String stylesheeturl;
-- private String targeturl;
-- private String targetbaseurl;
-- private String sourceurl;
-- private String sourcebaseurl;
-- private String pubtype = new String();
-- private String systype = new String();
-+ public XInputStream xistream;
-+ public XOutputStream xostream;
-+ public BufferedOutputStream ostream;
-+
-+ // public static HashMap templatecache;
-+
-+ public static final int STREAM_BUFFER_SIZE = 4000;
-+ public static final String STATSPROP = "XSLTransformer.statsfile";
-+ public static PrintStream statsp;
-+
-+ public String stylesheeturl;
-+ public String targeturl;
-+ public String targetbaseurl;
-+ public String sourceurl;
-+ public String sourcebaseurl;
-+ public String pubtype = new String();
-+ public String systype = new String();
-
- // processing thread
-- private Thread t;
-+ public Thread t;
-
- // listeners
-- private Vector listeners = new Vector();
-+ public Vector listeners = new Vector();
-
- //
-- private XMultiServiceFactory svcfactory;
-+ public XMultiServiceFactory svcfactory;
-
- // cache for transformations by stylesheet
-- private static Hashtable transformers = new Hashtable();
-+ public static Hashtable transformers = new Hashtable();
-
- // --- Initialization ---
-
-@@ -397,7 +397,7 @@
- }
-
- // --- component management interfaces... ---
-- private final static String _serviceName = "com.sun.star.comp.JAXTHelper";
-+ public final static String _serviceName = "com.sun.star.comp.JAXTHelper";
-
- // Implement methods from interface XTypeProvider
- public byte[] getImplementationId() {
diff --git a/patches/src680/wizards-source-importwizard-filesmodul-xba.diff b/patches/src680/wizards-source-importwizard-filesmodul-xba.diff
deleted file mode 100644
index 19dfa5024..000000000
--- a/patches/src680/wizards-source-importwizard-filesmodul-xba.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- wizards.orig/source/importwizard/FilesModul.xba 2005-05-13 10:43:43.000000000 +0100
-+++ wizards/source/importwizard/FilesModul.xba 2005-10-24 15:49:21.000000000 +0100
-@@ -41,6 +41,8 @@
- Dim XMLTemplateContentString as String
- Dim ApplIndex as Integer
- Dim bAssignFileName as Boolean
-+Dim oDocInfo as Object
-+Dim bInterruptSearch as Boolean
- oDocInfo = CreateUnoService(&quot;com.sun.star.document.DocumentProperties&quot;)
- bInterruptSearch = False
- For i = 0 To MaxCollectIndex
diff --git a/patches/src680/workspace.jaxpapi.diff b/patches/src680/workspace.jaxpapi.diff
deleted file mode 100644
index 33ef66ab4..000000000
--- a/patches/src680/workspace.jaxpapi.diff
+++ /dev/null
@@ -1,613 +0,0 @@
---- xmlhelp/source/com/sun/star/help/HelpCompiler.java 9 Sep 2005 12:15:19 -0000 1.10
-+++ xmlhelp/source/com/sun/star/help/HelpCompiler.java 9 Nov 2005 13:19:49 -0000
-@@ -44,6 +44,7 @@ package com.sun.star.help;
- import java.io.ByteArrayInputStream;
- import java.io.File;
- import java.io.IOException;
-+import java.io.ByteArrayOutputStream;
- import java.io.InputStreamReader;
- import java.io.UnsupportedEncodingException;
- import java.net.MalformedURLException;
-@@ -55,16 +56,20 @@ import java.util.Iterator;
- import java.util.LinkedList;
- import java.util.List;
-
-+import javax.xml.parsers.DocumentBuilder;
-+import javax.xml.parsers.DocumentBuilderFactory;
-+
- import org.w3c.dom.Document;
- import org.w3c.dom.Element;
- import org.w3c.dom.Node;
- import org.w3c.dom.NodeList;
- import org.w3c.dom.Text;
-+import org.w3c.dom.traversal.DocumentTraversal;
-+import org.w3c.dom.traversal.NodeFilter;
-+import org.w3c.dom.traversal.TreeWalker;
-+import org.w3c.dom.traversal.NodeIterator;
- import org.xml.sax.InputSource;
-
--import com.sun.xml.tree.TreeWalker;
--import com.sun.xml.tree.XmlDocument;
--
- public class HelpCompiler implements HelpURLStreamHandlerFactory.Notify {
-
- private static final String makeRelPrefix = ".." + File.separator;
-@@ -113,24 +118,24 @@ public class HelpCompiler implements Hel
- urlHandler.setNotify(this);
- }
-
-- private Object[] switchFind(Node node) {
-+ private Object[] switchFind(Document doc) {
- HashSet hs = new HashSet();
-- Node next;
-- TreeWalker tw = new TreeWalker(node);
-- while ((next = tw.getNextElement("switchinline")) != null) {
-- Element el = (Element) next;
-- if (!el.getAttribute("select").equals("appl"))
-- continue;
-
-- NodeList nl = el.getChildNodes();
-- for (int i = 0; i < nl.getLength(); ++i) {
-- if (nl.item(i).getNodeName().equals("caseinline")) {
-- String appl = ((Element) nl.item(i)).getAttribute("select");
-- hs.add(appl);
-- } else if (nl.item(i).getNodeName().equals("defaultinline")) {
-- hs.add("DEFAULT");
-- }
-- }
-+ NodeList nodelist = doc.getElementsByTagName("switchinline");
-+
-+ for (int j = 0; j < nodelist.getLength(); ++j) {
-+ Element el = (Element) nodelist.item(j);
-+ if (el.getAttribute("select").equals("appl")) {
-+ NodeList nl = el.getChildNodes();
-+ for (int i = 0; i < nl.getLength(); ++i) {
-+ if (nl.item(i).getNodeName().equals("caseinline")) {
-+ String appl = ((Element) nl.item(i)).getAttribute("select");
-+ hs.add(appl);
-+ } else if (nl.item(i).getNodeName().equals("defaultinline")) {
-+ hs.add("DEFAULT");
-+ }
-+ }
-+ }
- }
-
- hs.add("DEFAULT");
-@@ -144,6 +149,9 @@ public class HelpCompiler implements Hel
- NodeList nl = node.getChildNodes();
- for (int i = 0; i < nl.getLength(); ++i) {
- Node n = nl.item(i);
-+ if (n == null) {
-+ continue;
-+ }
- if ((n.getNodeName().equals("switchinline")
- || n.getNodeName().equals("switch"))
- && ((Element) n).getAttribute("select").equals("appl")) {
-@@ -183,89 +191,125 @@ public class HelpCompiler implements Hel
- return parent;
- }
-
-- public boolean compile() throws UnsupportedEncodingException {
-- // we now have the jaroutputstream, which will contain the document.
-- // now determine the document as a dom tree in variable docResolved
-- String absolutePath;
-- String sourcePath;
-- File inputFil = new File(inputFile);
-- try {
-- absolutePath = inputFil.getCanonicalPath();
-- } catch (IOException e3) {
-- absolutePath = inputFil.getAbsolutePath();
-- }
-- try {
-- sourcePath = new File(src).getCanonicalPath();
-- } catch (IOException e3) {
-- sourcePath = new File(inputFile).getAbsolutePath();
-- }
-+ static byte[] docToBytes(Document doc)
-+ throws IOException {
-
-- byte[] embResolved = null;
-- try {
-- embResolved = getSourceDocument(inputFil.toURL().toExternalForm());
-- } catch (MalformedURLException e4) {
-- System.err.println(
-- "ERROR: malformed URL '" + inputFile + "': " + e4.getMessage());
-- return false;
-- }
-+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
-
-- // now add path to the document
-- // resolve the dom
-- if (embResolved == null) {
-- System.err.println("ERROR: file not existing: " + sourcePath);
-- System.exit(1);
-- }
--
-- ByteArrayInputStream inByte = new ByteArrayInputStream(embResolved);
-- InputStreamReader inread;
-- try {
-- inread = new InputStreamReader(inByte, "UTF8");
-- } catch (UnsupportedEncodingException e) {
-- System.err.println(
-- "ERROR: unsupported Encoding '"
-- + inputFile
-- + "': "
-- + e.getMessage());
-- return false;
-- }
--
-- InputSource inputSource = new InputSource(inread);
-- inputSource.setEncoding("UTF8");
-- Document docResolvedOrg = null;
-- try {
-- docResolvedOrg = XmlDocument.createXmlDocument(inputSource, false);
-- } catch (Exception e) {
-- System.err.println(
-- "ERROR: XmlDocument.createXmlDocument() failed for '"
-- + inputFile
-- + "': "
-- + e.getMessage());
-- return false;
-- }
-+ java.lang.reflect.Constructor con;
-+ java.lang.reflect.Method meth;
-+
-+ String domImpl = doc.getClass().getName();
-
-- // now find all applications for which one has to compile
-+ /*
-+ * We may have multiple XML parsers in the Classpath.
-+ * Depending on which one is first, the actual type of
-+ * doc may vary. Need a way to find out which API is being
-+ * used and use an appropriate serialization method.
-+ */
-+ try {
-+ // First of all try for JAXP 1.0
-+ if (domImpl.equals("com.sun.xml.tree.XmlDocument")) {
-+
-+ Class jaxpDoc = Class.forName("com.sun.xml.tree.XmlDocument");
-+
-+ // The method is in the XMLDocument class itself, not a helper
-+ meth = jaxpDoc.getMethod("write",
-+ new Class[] { Class.forName("java.io.OutputStream") } );
-+
-+ meth.invoke(doc, new Object [] { baos } );
-+ }
-+ else if (domImpl.equals("org.apache.crimson.tree.XmlDocument")) {
-+ Class crimsonDoc = Class.forName("org.apache.crimson.tree.XmlDocument");
-+ // The method is in the XMLDocument class itself, not a helper
-+ meth = crimsonDoc.getMethod("write",
-+ new Class[] { Class.forName("java.io.OutputStream") } );
-+
-+ meth.invoke(doc, new Object [] { baos } );
-+ }
-+ else if (domImpl.equals("gnu.xml.dom.DomDocument")) {
-+ Class gnuSer = Class.forName("gnu.xml.dom.ls.DomLSSerializer");
-+
-+ // Get the serialize method
-+ meth = gnuSer.getMethod("serialize",
-+ new Class [] { Class.forName("org.w3c.dom.Node"),
-+ Class.forName("java.io.OutputStream") } );
-+
-+ // Get an instance
-+ Object serializer = gnuSer.newInstance();
-+
-+ // Now call serialize to write the document
-+ meth.invoke(serializer, new Object [] { doc, baos } );
-+ }
-+ else if (domImpl.equals("org.apache.xerces.dom.DocumentImpl")
-+ || domImpl.equals("org.apache.xerces.dom.DeferredDocumentImpl")) {
-+
-+ // Try for Xerces
-+ Class xercesSer =
-+ Class.forName("org.apache.xml.serialize.XMLSerializer");
-+
-+ // Get the OutputStream constructor
-+ // May want to use the OutputFormat parameter at some stage too
-+ con = xercesSer.getConstructor(new Class []
-+ { Class.forName("java.io.OutputStream"),
-+ Class.forName("org.apache.xml.serialize.OutputFormat") } );
-+
-+
-+ // Get the serialize method
-+ meth = xercesSer.getMethod("serialize",
-+ new Class [] { Class.forName("org.w3c.dom.Document") } );
-+
-+
-+ // Get an instance
-+ Object serializer = con.newInstance(new Object [] { baos, null } );
-+
-+
-+ // Now call serialize to write the document
-+ meth.invoke(serializer, new Object [] { doc } );
-+ }
-+ else {
-+ // We don't have another parser
-+ throw new IOException("No appropriate API (JAXP/Xerces) to serialize XML document: " + domImpl);
-+ }
-+ }
-+ catch (ClassNotFoundException cnfe) {
-+ throw new IOException(cnfe.toString());
-+ }
-+ catch (Exception e) {
-+ // We may get some other errors, but the bottom line is that
-+ // the steps being executed no longer work
-+ throw new IOException(e.toString());
-+ }
-+
-+ byte bytes[] = baos.toByteArray();
-+
-+ return bytes;
-+ }
-+
-+
-+ public class myparser {
-+ HashSet hidlist = null;
-+ HashSet extendedHelpText = null;
-+ Hashtable keywords = null;
-+ Hashtable helptexts = null;
- String documentId = null;
- String fileName = null;
- String title = null;
-- // returns all applications for which one has to compile
-- Object[] applications = switchFind(docResolvedOrg);
--
-- for (int i = 0; i < applications.length; ++i) {
-- String appl = (String) applications[i];
-- // returns a clone of the document with swich-cases resolved
-- Element docResolved =
-- (Element) clone(docResolvedOrg.getDocumentElement(), appl);
-- // now determine the id of the document, which is part of the
-- // bookmark - tag (HID)
-- Node test;
-- TreeWalker treewalker = new TreeWalker(docResolved);
-- // a number to determine the anchor of the whole stuff
-- HashSet hidlist = new HashSet();
-- HashSet extendedHelpText = new HashSet();
-- Hashtable keywords = new Hashtable();
-- Hashtable helptexts = new Hashtable();
--
-- while ((test = treewalker.getNext()) != null) {
-+
-+ public myparser(String indocumentId, String infileName, String intitle) {
-+ hidlist = new HashSet();
-+ extendedHelpText = new HashSet();
-+ keywords = new Hashtable();
-+ helptexts = new Hashtable();
-+ documentId = indocumentId;
-+ fileName = infileName;
-+ title = intitle;
-+ }
-+
-+ public void traverse( Node parentNode ) {
-+ // traverse all nodes that belong to the parent
-+ for(Node test=parentNode.getFirstChild(); test!=null; test=test.getNextSibling()) {
-+
- if (fileName == null
- && test.getNodeName().equals("filename")) {
- NodeList list = test.getChildNodes();
-@@ -345,15 +389,102 @@ public class HelpCompiler implements Hel
- if (!extendedHelpText.isEmpty())
- extendedHelpText = new HashSet();
- }
-- } // now save the info
-+ // traverse children
-+ traverse(test);
-+ }
-+ }
-+ }
-+
-+ public boolean compile() throws UnsupportedEncodingException, java.io.IOException {
-+ // we now have the jaroutputstream, which will contain the document.
-+ // now determine the document as a dom tree in variable docResolved
-+ String absolutePath;
-+ String sourcePath;
-+ File inputFil = new File(inputFile);
-+ try {
-+ absolutePath = inputFil.getCanonicalPath();
-+ } catch (IOException e3) {
-+ absolutePath = inputFil.getAbsolutePath();
-+ }
-+ try {
-+ sourcePath = new File(src).getCanonicalPath();
-+ } catch (IOException e3) {
-+ sourcePath = new File(inputFile).getAbsolutePath();
-+ }
-+
-+ byte[] embResolved = null;
-+ try {
-+ embResolved = getSourceDocument(inputFil.toURL().toExternalForm());
-+ } catch (MalformedURLException e4) {
-+ System.err.println(
-+ "ERROR: malformed URL '" + inputFile + "': " + e4.getMessage());
-+ return false;
-+ }
-+
-+ // now add path to the document
-+ // resolve the dom
-+ if (embResolved == null) {
-+ System.err.println("ERROR: file not existing: " + sourcePath);
-+ System.exit(1);
-+ }
-+
-+ ByteArrayInputStream inByte = new ByteArrayInputStream(embResolved);
-+ InputStreamReader inread;
-+ try {
-+ inread = new InputStreamReader(inByte, "UTF8");
-+ } catch (UnsupportedEncodingException e) {
-+ System.err.println(
-+ "ERROR: unsupported Encoding '"
-+ + inputFile
-+ + "': "
-+ + e.getMessage());
-+ return false;
-+ }
-+
-+ InputSource inputSource = new InputSource(inread);
-+ inputSource.setEncoding("UTF8");
-+ Document docResolvedOrg = null;
-+ try {
-+ //System.err.println("Compiling " + inputFile);
-+ DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();
-+ dFactory.setValidating(false);
-+ DocumentBuilder dBuilder = dFactory.newDocumentBuilder();
-+ docResolvedOrg = dBuilder.parse(inputSource);
-+ } catch (Exception e) {
-+ System.err.println(
-+ "ERROR: XmlDocument.createXmlDocument() failed for '"
-+ + inputFile
-+ + "': "
-+ + e.getMessage());
-+ return false;
-+ }
-+
-+ // now find all applications for which one has to compile
-+ String documentId = null;
-+ String fileName = null;
-+ String title = null;
-+ // returns all applications for which one has to compile
-+ Object[] applications = switchFind(docResolvedOrg);
-+
-+ for (int i = 0; i < applications.length; ++i) {
-+ String appl = (String) applications[i];
-+ // returns a clone of the document with swich-cases resolved
-+ Element docResolved =
-+ (Element) clone(docResolvedOrg.getDocumentElement(), appl);
-+
-+ myparser aparser = new myparser(documentId, fileName, title);
-+ aparser.traverse(docResolved);
-+ documentId = aparser.documentId;
-+ fileName = aparser.fileName;
-+ title = aparser.title;
-
- addEntryToJarFile(
- appl,
- "text",
-- docResolved.toString().getBytes("UTF8"));
-- addEntryToJarFile(appl, "hidlist", hidlist);
-- addEntryToJarFile(appl, "helptexts", helptexts);
-- addEntryToJarFile(appl, "keywords", keywords);
-+ docToBytes(docResolved.getOwnerDocument()));
-+ addEntryToJarFile(appl, "hidlist", aparser.hidlist);
-+ addEntryToJarFile(appl, "helptexts", aparser.helptexts);
-+ addEntryToJarFile(appl, "keywords", aparser.keywords);
- } // end iteration over all applications
-
- try {
---- xmlhelp/source/com/sun/star/help/PreTransformer.java 25 Jan 2005 15:29:16 -0000 1.6
-+++ xmlhelp/source/com/sun/star/help/PreTransformer.java 9 Nov 2005 13:19:52 -0000
-@@ -8,7 +8,6 @@ import java.util.zip.CRC32;
- import java.util.zip.ZipEntry;
-
- import org.w3c.dom.*;
--import com.sun.xml.tree.*;
- import org.xml.sax.*;
- import javax.xml.parsers.*;
- import com.jclark.xsl.sax.*;
---- xmlhelp/source/com/sun/star/help/HelpIndexer.java 25 Oct 2005 11:24:55 -0000 1.16
-+++ xmlhelp/source/com/sun/star/help/HelpIndexer.java 9 Nov 2005 13:24:14 -0000
-@@ -46,7 +46,6 @@ import java.net.URL;
- import java.util.*;
-
- import org.w3c.dom.*;
--import com.sun.xml.tree.*;
- import org.xml.sax.*;
- import javax.xml.parsers.*;
- import com.jclark.xsl.sax.*;
-@@ -246,7 +247,10 @@ public class HelpIndexer {
- in.setEncoding("UTF8");
- Document docResolved = null;
- try {
-- docResolved = XmlDocument.createXmlDocument(in, false);
-+ DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();
-+ dFactory.setValidating(false);
-+ DocumentBuilder dBuilder = dFactory.newDocumentBuilder();
-+ docResolved = dBuilder.parse(in);
- } catch (Exception e) {
- if (docResolved == null)
- System.err.println("Nullpointer");
---- officecfg/org/openoffice/configuration/XMLDefaultGenerator.java 8 Sep 2005 14:43:34 -0000 1.4
-+++ officecfg/org/openoffice/configuration/XMLDefaultGenerator.java 11 Nov 2005 11:03:10 -0000
-@@ -36,12 +36,10 @@
-
- import org.xml.sax.*;
- import org.w3c.dom.*;
--import com.sun.xml.tree.XmlDocument;
- import org.xml.sax.SAXException;
- import org.xml.sax.SAXParseException;
- import javax.xml.parsers.SAXParserFactory;
- import javax.xml.parsers.SAXParser;
--import com.sun.xml.tree.*;
- import java.util.*;
- import java.io.*;
- import com.jclark.xsl.sax.Driver;
---- XmlSearch/src/com/sun/xmlsearch/makefile.mk 25 Oct 2005 11:11:58 -0000 1.5
-+++ XmlSearch/src/com/sun/xmlsearch/makefile.mk 14 Nov 2005 14:22:22 -0000
-@@ -21,6 +21,10 @@ TARGET = com_sun_xmlsearch
-
- .INCLUDE : settings.mk
-
-+.IF "$(XML_CLASSPATH)" != ""
-+XCLASSPATH+=:$(XML_CLASSPATH)
-+.ENDIF
-+
- JARFILES = parser.jar xt.jar
- #EXTRAJARFILES = parser.jar xt.jar
-
---- XmlSearch/src/com/sun/xmlsearch/tree/TreeBuilder.java 9 Sep 2005 16:41:49 -0000 1.2
-+++ XmlSearch/src/com/sun/xmlsearch/tree/TreeBuilder.java 14 Nov 2005 14:22:25 -0000
-@@ -46,7 +46,8 @@ import javax.swing.tree.TreeNode;
- import org.xml.sax.HandlerBase;
- import org.xml.sax.AttributeList;
- import org.xml.sax.InputSource;
--import com.sun.xml.parser.Parser;
-+import javax.xml.parsers.SAXParserFactory;
-+import javax.xml.parsers.SAXParser;
- import com.sun.xmlsearch.util.IntegerArray;
- import com.jclark.xsl.om.*;
-
-@@ -610,22 +611,29 @@ public final class TreeBuilder extends H
- }
- } // end of SubstitutedElement
-
-+ private SAXParser getParser() throws org.xml.sax.SAXException, javax.xml.parsers.ParserConfigurationException
-+ {
-+ SAXParserFactory spf = SAXParserFactory.newInstance();
-+ spf.setValidating(false);
-+ return spf.newSAXParser();
-+ }
-+
- private static final int InitStackSize = 256;
- private static final Name EmptyName = null;
-- private Parser _parser = new Parser();
-+ private SAXParser _parser = null;
- private Hashtable _names = new Hashtable(256);
-
- private NameTable _nameTable;
- private NamespacePrefixMap _nsMap;
-
-- public TreeBuilder() {
-+ public TreeBuilder() throws org.xml.sax.SAXException, javax.xml.parsers.ParserConfigurationException {
- this(new NameTableImpl());
- }
-
-- public TreeBuilder(NameTable nameTable) {
-+ public TreeBuilder(NameTable nameTable) throws org.xml.sax.SAXException, javax.xml.parsers.ParserConfigurationException {
-+ _parser = getParser();
- _nameTable = nameTable;
- _nsMap = _nameTable.getEmptyNamespacePrefixMap();
-- _parser.setFastStandalone(true);
- }
-
- public Node makeSubstituteElement(Name name, Node2[] children, Node original) {
-@@ -917,9 +925,8 @@ public final class TreeBuilder extends H
-
- public synchronized Node getRoot(InputSource input) {
- try {
-- _parser.setDocumentHandler(this);
- // long start = System.currentTimeMillis();
-- _parser.parse(input);
-+ _parser.parse(input, this);
- /*
- System.out.println((System.currentTimeMillis()-start)
- +" msec parse");
---- XmlSearch/src/com/sun/xmlsearch/util/Configuration.java 9 Sep 2005 16:45:09 -0000 1.2
-+++ XmlSearch/src/com/sun/xmlsearch/util/Configuration.java 14 Nov 2005 14:22:25 -0000
-@@ -40,8 +40,8 @@ import java.io.ByteArrayInputStream;
- import java.util.Vector;
- import java.net.URL;
- import org.w3c.dom.*;
--import com.sun.xml.tree.XmlDocument;
--import com.sun.xml.parser.Resolver;
-+import javax.xml.parsers.DocumentBuilder;
-+import javax.xml.parsers.DocumentBuilderFactory;
- import org.xml.sax.InputSource;
-
- public final class Configuration {
-@@ -68,14 +68,19 @@ public final class Configuration {
- }
-
- public static Element parse(URL location) throws Exception {
-- InputSource input = Resolver.createInputSource(location, true);
-- XmlDocument document = XmlDocument.createXmlDocument(input, false);
-+ DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();
-+ dFactory.setValidating(false);
-+ DocumentBuilder dBuilder = dFactory.newDocumentBuilder();
-+ Document document = dBuilder.parse(location.openStream());
- return document.getDocumentElement();
- }
-
- public static Element parse(byte[] xmlBytes) throws Exception {
- ByteArrayInputStream input = new ByteArrayInputStream(xmlBytes);
-- XmlDocument document = XmlDocument.createXmlDocument(input, false);
-+ DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();
-+ dFactory.setValidating(false);
-+ DocumentBuilder dBuilder = dFactory.newDocumentBuilder();
-+ Document document = dBuilder.parse(input);
- return document.getDocumentElement();
- }
-
---- XmlSearch/src/com/sun/xmlsearch/xml/indexer/XmlIndexBuilder.java 9 Sep 2005 16:52:56 -0000 1.7
-+++ XmlSearch/src/com/sun/xmlsearch/xml/indexer/XmlIndexBuilder.java 14 Nov 2005 14:22:26 -0000
-@@ -42,15 +42,17 @@ import java.util.Enumeration;
- import java.net.URL;
- import org.xml.sax.InputSource;
- import org.xml.sax.HandlerBase;
--import com.sun.xml.parser.Resolver;
--import com.sun.xml.tree.XmlDocument;
- import com.sun.xmlsearch.tree.*;
- import com.sun.xmlsearch.util.*;
- import com.sun.xmlsearch.db.*;
- import com.sun.xmlsearch.xml.XmlIndex;
-
--import com.sun.xml.parser.Parser;
--import com.sun.xml.parser.ValidatingParser;
-+import javax.xml.parsers.DocumentBuilder;
-+import javax.xml.parsers.DocumentBuilderFactory;
-+import javax.xml.parsers.SAXParserFactory;
-+import javax.xml.parsers.SAXParser;
-+import org.xml.sax.Parser;
-+import org.w3c.dom.Document;
-
- import com.jclark.xsl.om.*;
- import com.jclark.xsl.sax.*;
-@@ -465,8 +467,11 @@ public final class XmlIndexBuilder {
- public void indexDocument(URL docURL, String title) throws Exception {
- InputSource source = new InputSource(docURL.openStream());
- source.setSystemId(docURL.toString());
-- Parser sourceParser = new Parser();
-- sourceParser.setFastStandalone(true);
-+ SAXParserFactory spf = SAXParserFactory.newInstance();
-+ spf.setValidating(false);
-+ SAXParser saxParser = spf.newSAXParser();
-+ Parser sourceParser = saxParser.getParser();
-+
- XMLProcessorEx sourceLoader = new XMLProcessorImpl(sourceParser);
- // long start = System.currentTimeMillis();
- Node root =
-@@ -545,8 +550,12 @@ public final class XmlIndexBuilder {
- }
- // System.out.println(stylesheetUrl.toString());
- InputStream stylesheetStream = stylesheetUrl.openStream();
-- XmlDocument sheet =
-- XmlDocument.createXmlDocument(stylesheetStream, false);
-+
-+ DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();
-+ dFactory.setValidating(false);
-+ DocumentBuilder dBuilder = dFactory.newDocumentBuilder();
-+ Document sheet = dBuilder.parse(stylesheetStream);
-+
- return _transformEngine.createTransform(sheet);
- }
-
---- XmlSearch/src/com/sun/xmlsearch/xml/indexer/XmlIndexer.java 9 Sep 2005 16:53:09 -0000 1.2
-+++ XmlSearch/src/com/sun/xmlsearch/xml/indexer/XmlIndexer.java 14 Nov 2005 14:22:27 -0000
-@@ -39,8 +39,6 @@ import java.net.MalformedURLException;
- import java.io.*;
- import java.util.*;
-
--import com.sun.xml.tree.XmlDocument;
--import com.sun.xml.parser.Resolver;
- import org.w3c.dom.*;
- import org.xml.sax.InputSource;
- import org.xml.sax.SAXException;
diff --git a/patches/src680/writer-default-as-optimal-page-wrap.diff b/patches/src680/writer-default-as-optimal-page-wrap.diff
deleted file mode 100644
index 6516c179c..000000000
--- a/patches/src680/writer-default-as-optimal-page-wrap.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: source/core/doc/poolfmt.cxx
-===================================================================
-RCS file: /cvs/sw/sw/source/core/doc/poolfmt.cxx,v
-retrieving revision 1.25.108.1
-diff -u -r1.25.108.1 poolfmt.cxx
---- sw/source/core/doc/poolfmt.cxx 9 Jan 2004 14:31:26 -0000 1.25.108.1
-+++ sw/source/core/doc/poolfmt.cxx 24 Oct 2004 14:25:15 -0000
-@@ -1516,7 +1516,7 @@
- aSet.Put( SwFmtAnchor( FLY_AT_CNTNT ));
- aSet.Put( SwFmtHoriOrient( 0, HORI_CENTER, FRAME ));
- aSet.Put( SwFmtVertOrient( 0, VERT_TOP, FRAME ));
-- aSet.Put( SwFmtSurround( SURROUND_NONE ));
-+ aSet.Put( SwFmtSurround( SURROUND_IDEAL ));
- }
- break;
- case RES_POOLFRM_FORMEL:
diff --git a/patches/src680/ww8scan.diff b/patches/src680/ww8scan.diff
deleted file mode 100644
index bf42965aa..000000000
--- a/patches/src680/ww8scan.diff
+++ /dev/null
@@ -1,247 +0,0 @@
---- sw/source/filter/ww8/ww8scan.cxx.orig 2005-07-27 16:58:05.466753936 -0700
-+++ sw/source/filter/ww8/ww8scan.cxx 2005-07-27 16:58:21.873259768 -0700
-@@ -73,6 +73,10 @@
- #include <functional>
- #endif
-
-+#ifndef __SGI_STL_HASH_SET_H
-+#include <hash_set>
-+#endif
-+
- #include <string.h> // memset()
-
- #ifndef _OSL_ENDIAN_H_
-@@ -155,88 +159,39 @@
- return bRet;
- }
-
--bool operator==(const SprmInfo &rFirst, const SprmInfo &rSecond)
-+inline bool operator==(const SprmInfo &rFirst, const SprmInfo &rSecond)
- {
-- return (rFirst.nId == rSecond.nId);
-+ return (rFirst.nId == rSecond.nId);
- }
-
--template<class C> class wwSortedArray
-+namespace std
- {
--private:
-- //The array e.g. of sprms.
-- C *mpWwSprmTab;
-- size_t mnNoElems;
--public:
-- wwSortedArray(C *pWwSprmTab, size_t nNoElems)
-- : mpWwSprmTab(pWwSprmTab), mnNoElems(nNoElems)
-- {
-- ASSERT(mnNoElems && pWwSprmTab, "WW8: empty Array: Don't do that");
-- std::sort(mpWwSprmTab, mpWwSprmTab + mnNoElems);
--#if OSL_DEBUG_LEVEL > 1
-- bool bBroken=false;
-- rtl::OUString sError;
-- const C *pIter = mpWwSprmTab;
-- const C *pBeforeEnd = mpWwSprmTab + mnNoElems - 1;
-- while (pIter < pBeforeEnd)
-- {
-- if (*pIter == *(pIter+1))
-- {
-- if (!bBroken)
-- {
-- sError = rtl::OUString::createFromAscii(
-- "WW8: Duplicate in list, almost certainly don't "
-- "want that!\n"
-- "(You will not see this message again unless you "
-- "restart)\n"
-- "Extra entries are...\n");
-- bBroken=true;
-- }
--
-- size_t nSize = sizeof(C);
-- const sal_uInt8 *pHack =
-- reinterpret_cast<const sal_uInt8 *>(&(*pIter));
-- for (size_t i=0; i < nSize; ++i)
-- {
-- sError += rtl::OUString::valueOf(
-- static_cast<sal_Int32>(pHack[i]), 16);
-- sError += rtl::OUString::valueOf(sal_Unicode(' '));
-- }
-- sError += rtl::OUString::valueOf(sal_Unicode('\n'));
-- while (*pIter == *(pIter+1) && pIter < pBeforeEnd)
-- ++pIter;
-- }
-- else
-- ++pIter;
-- }
-- if (bBroken)
-- DBG_ERROR(rtl::OUStringToOString(sError, RTL_TEXTENCODING_ASCII_US));
--#endif
-- }
--
-- //Find an entry, return its address if found and 0 if not
-- const C *search(C aSrch) const;
--};
--
--template<class C> const C *wwSortedArray<C>::search(C aSrch) const
--{
-- std::pair<C *, C *> aPair =
-- std::equal_range(mpWwSprmTab, mpWwSprmTab + mnNoElems, aSrch);
-- if (aPair.first != aPair.second)
-- return aPair.first;
-- else
-- return 0;
-+ using std::size_t;
-+
-+ template<> struct hash<SprmInfo>
-+ {
-+ size_t operator()(const SprmInfo &a) const
-+ {
-+ return a.nId;
-+ }
-+ };
- }
-
--bool operator<(const SprmInfo &rFirst, const SprmInfo &rSecond)
-+const SprmInfo *SprmSearch(const std::hash_set<SprmInfo> *awwSprmSearcher, const SprmInfo &aSrch)
- {
-- return (rFirst.nId < rSecond.nId);
-+ std::hash_set<SprmInfo>::iterator it;
-+ it= awwSprmSearcher->find(aSrch);
-+ if (it != awwSprmSearcher->end())
-+ return &(*it);
-+ else
-+ return 0;
- }
-
- const wwSprmSearcher *wwSprmParser::GetWW6SprmSearcher()
- {
- //double lock me
- // WW7- Sprms
-- static SprmInfo aSprms[] =
-+ const SprmInfo aSprms[] =
- {
- { 0, 0, L_FIX}, // "Default-sprm", wird uebersprungen
- { 2, 2, L_FIX}, // "sprmPIstd", pap.istd (style code)
-@@ -409,16 +364,35 @@
- {200, 4, L_FIX}, // "sprmTSetShd", tap.rgshd complex 4 bytes
- {207, 0, L_VAR} // rtl property ?
- };
-+ static bool hash_built= false;
-+ static wwSprmSearcher aSet;
-+ if (!hash_built)
-+ {
-+ for (int i= 0; i < sizeof(aSprms)/sizeof(aSprms[0]); i++)
-+ {
-+ aSet.insert(aSprms[i]);
-+#if OSL_DEBUG_LEVEL > 1
-+ rtl::OUString sError;
-+ static bool broken= false;
-+ if (SprmSearch(aSet, aSprms[i] && !broken)
-+ {
-+ sError = rtl::OUString::createFromAscii("WW6: Duplicate in list!\n");
-+ DBG_ERROR(rtl::OUStringToOString(sError, RTL_TEXTENCODING_ASCII_US));
-+ broken = true;
-+ }
-+#endif
-+ }
-
-- static wwSprmSearcher aSprmSrch(aSprms, sizeof(aSprms) / sizeof(aSprms[0]));
-- return &aSprmSrch;
-+ hash_built= true;
-+ }
-+ return &aSet;
- };
-
- const wwSprmSearcher *wwSprmParser::GetWW8SprmSearcher()
- {
- //double lock me
- //WW8+ Sprms
-- static SprmInfo aSprms[] =
-+ const SprmInfo aSprms[] =
- {
- { 0, 0, L_FIX}, // "Default-sprm"/ wird uebersprungen
- {0x4600, 2, L_FIX}, // "sprmPIstd" pap.istd;istd (style code);short;
-@@ -747,9 +721,27 @@
- // undocumented, don't add space between para of the same style
- {0x246D, 1, L_FIX}
- };
--
-- static wwSprmSearcher aSprmSrch(aSprms, sizeof(aSprms) / sizeof(aSprms[0]));
-- return &aSprmSrch;
-+ static bool hash_built= false;
-+ static wwSprmSearcher aSet;
-+ if (!hash_built)
-+ {
-+ for (int i= 0; i < sizeof(aSprms)/sizeof(aSprms[0]); i++)
-+ {
-+ aSet.insert(aSprms[i]);
-+#if OSL_DEBUG_LEVEL > 1
-+ rtl::OUString sError;
-+ static bool broken= false;
-+ if (SprmSearch(aSet, aSprms[i] && !broken)
-+ {
-+ sError = rtl::OUString::createFromAscii("WW8: Duplicate in list!\n");
-+ DBG_ERROR(rtl::OUStringToOString(sError, RTL_TEXTENCODING_ASCII_US));
-+ broken = true;
-+ }
-+#endif
-+ }
-+ hash_built= true;
-+ }
-+ return &aSet;
- };
-
- wwSprmParser::wwSprmParser(int nVersion) : mnVersion(nVersion)
-@@ -769,7 +761,7 @@
- // Find sprm
- SprmInfo aSrch;
- aSrch.nId = nId;
-- const SprmInfo* pFound = mpKnownSprms->search(aSrch);
-+ const SprmInfo* pFound = SprmSearch(mpKnownSprms, aSrch);
- if (pFound == 0)
- {
- ASSERT(mnVersion >= 8,
---- sw/source/filter/ww8/ww8scan.hxx.orig 2005-07-27 16:58:12.383702400 -0700
-+++ sw/source/filter/ww8/ww8scan.hxx 2005-07-27 16:58:21.875259464 -0700
-@@ -76,6 +76,9 @@
- #ifndef __SGI_STL_LIST
- #include <list>
- #endif
-+#ifndef __SGI_STL_HASH_SET_H
-+#include <hash_set>
-+#endif
-
- #ifndef _SOLAR_H
- #include <tools/solar.h> // UINTXX
-@@ -140,9 +143,6 @@
-
- typedef wwString<sal_uInt16> ww8String;
-
--//simple template that manages a static [] array by sorting at construction
--template<class C> class wwSortedArray;
--
- struct SprmInfo
- {
- sal_uInt16 nId; //A ww8 sprm is hardcoded as 16bits
-@@ -150,10 +150,10 @@
- unsigned int nVari : 2;
- };
-
--//a managed sorted sequence of sprminfos
--typedef wwSortedArray<SprmInfo> wwSprmSearcher;
--//a managed sorted sequence of sprms
--typedef wwSortedArray<sal_uInt16> wwSprmSequence;
-+inline bool operator==(const SprmInfo &rFirst, const SprmInfo &rSecond);
-+const SprmInfo *SprmSearch(const std::hash_set<SprmInfo> *awwSprmSearcher, const SprmInfo &aSrch);
-+
-+typedef std::hash_set<SprmInfo> wwSprmSearcher;
-
- //wwSprmParser knows how to take a sequence of bytes and split it up into
- //sprms and their arguments
-@@ -525,7 +525,7 @@
- mnIStd(0), mbMustDelete(false) {}
- Entry(const Entry &rEntry);
- ~Entry();
-- bool operator<(const Entry& rEntry) const;
-+ inline bool operator<(const Entry& rEntry) const;
- Entry& operator=(const Entry& rEntry);
- };
-
diff --git a/patches/src680/xinerama-pic-on-all-archs.diff b/patches/src680/xinerama-pic-on-all-archs.diff
deleted file mode 100644
index 3b6b83468..000000000
--- a/patches/src680/xinerama-pic-on-all-archs.diff
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: vcl/unx/source/app/saldisp.cxx
-===================================================================
---- vcl/unx/source/app/saldisp.cxx.orig 2004-08-13 15:51:32.208899064 +0200
-+++ vcl/unx/source/app/saldisp.cxx 2004-08-13 16:34:50.245937400 +0200
-@@ -2820,7 +2820,7 @@ void SalDisplay::InitXinerama()
- }
- osl_unloadModule( hModule );
- #else
--#if defined( X86 ) || defined( MACOSX )
-+#if defined( LINUX ) || defined( MACOSX )
- if( XineramaIsActive( pDisp_ ) )
- {
- int nFramebuffers = 1;
diff --git a/patches/src680/xmlhelp-port-to-db-4.3.diff b/patches/src680/xmlhelp-port-to-db-4.3.diff
deleted file mode 100644
index 7c0c1087c..000000000
--- a/patches/src680/xmlhelp-port-to-db-4.3.diff
+++ /dev/null
@@ -1,737 +0,0 @@
---- xmlhelp/source/com/sun/star/help/StringDbt.java.ark 2005-07-23 01:11:19.000000000 +0200
-+++ xmlhelp/source/com/sun/star/help/StringDbt.java 2005-07-23 01:44:19.000000000 +0200
-@@ -12,7 +12,7 @@
- import java.io.UnsupportedEncodingException;
- import com.sleepycat.db.*;
-
--public class StringDbt extends Dbt
-+public class StringDbt extends DatabaseEntry
- {
- private String _Title = null;
- private String _Database = null;
-@@ -22,14 +22,14 @@
-
- public StringDbt()
- {
-- set_flags(Db.DB_DBT_MALLOC); // tell Db to allocate on retrieval
-+ setReuseBuffer(false); // tell Db to allocate on retrieval
- }
-
-
- public StringDbt(String value)
- {
- setString(value);
-- set_flags(Db.DB_DBT_MALLOC); // tell Db to allocate on retrieval
-+ setReuseBuffer(false); // tell Db to allocate on retrieval
- }
-
-
-@@ -44,23 +44,23 @@
- {
- b = value.getBytes();
- }
-- set_size( b.length );
-- set_data( b );
-+ setSize( b.length );
-+ setData( b );
- }
-
-
- public final String getString()
- {
-- byte[] b = get_data();
-+ byte[] b = getData();
- if( b != null )
- {
- try
- {
-- return new String( b,0,get_size(),"UTF8" );
-+ return new String( b,0,getSize(),"UTF8" );
- }
- catch( UnsupportedEncodingException e )
- {
-- return new String( b,0,get_size() );
-+ return new String( b,0,getSize() );
- }
- }
- else
-@@ -76,7 +76,7 @@
-
- public final String getHash()
- {
-- byte[] b =get_data();
-+ byte[] b =getData();
- if( b != null )
- {
- int sizeOfFile = ( int ) b[0];
-@@ -102,7 +102,7 @@
-
- public final String getFile()
- {
-- byte[] b = get_data();
-+ byte[] b = getData();
- if( b != null )
- {
- int sizeOfFile = ( int ) b[0];
-@@ -129,7 +129,7 @@
-
- public final String getDatabase()
- {
-- byte[] b = get_data();
-+ byte[] b = getData();
- if( b != null )
- {
- int sizeOfDatabase = ( int ) b[ 1+ ( int ) b[0] ];
-@@ -155,7 +155,7 @@
- if( isHelptextEntry() )
- return "";
-
-- byte[] b = get_data();
-+ byte[] b = getData();
- if( b != null )
- {
- int sizeOfTitle = ( int ) b[ 2 + b[0] + ( int ) b[ 1+ ( int ) b[0] ] ];
---- xmlhelp/source/com/sun/star/help/CreateDb.java.ark 2005-07-23 01:11:47.000000000 +0200
-+++ xmlhelp/source/com/sun/star/help/CreateDb.java 2005-07-23 02:06:04.000000000 +0200
-@@ -18,26 +18,31 @@
- }
-
- void iterate(String dbName) {
-- Db table = null;
-+ DatabaseConfig cfg = DatabaseConfig.DEFAULT;
-+ cfg.setReadOnly(true);
-+ cfg.setType(DatabaseType.BTREE);
-+ cfg.setErrorStream(System.err);
-+ cfg.setErrorPrefix("HelpAccess");
-+ Database table = null;
- try {
-- table = new Db(null, 0);
-- } catch (DbException e) {
-+ table = new Database(dbName, null, cfg);
-+ } catch (DatabaseException e) {
- System.out.println("Error initializing database");
-+ } catch (FileNotFoundException fnfe) {
-+ System.err.println("HelpAccess: " + fnfe.toString());
-+ System.exit(1);
- }
-
-- table.set_error_stream(System.err);
-- table.set_errpfx("HelpAccess");
- try {
-- table.open(null,dbName, null, Db.DB_BTREE, Db.DB_RDONLY, 0644);
-- Dbc cursor = table.cursor(null, 0);
-+ Cursor cursor = table.openCursor(null, CursorConfig.DEFAULT);
-
- StringDbt key = new StringDbt();
- StringDbt data = new StringDbt();
- //
- boolean first = true;
-- key.set_flags(Db.DB_DBT_MALLOC);
-+ key.setReuseBuffer(false);
- // The cursor must allocate the necessary memory
-- data.set_flags(Db.DB_DBT_MALLOC);
-+ data.setReuseBuffer(false);
- String filePrefix =
- System.getProperty("com.sun.star.help.Directory");
- File outFile = new File("e:/helpdata/test1/filelist");
-@@ -54,7 +59,7 @@
- e.printStackTrace();
- }
-
-- while (Db.DB_NOTFOUND != cursor.get(key, data, Db.DB_NEXT)) {
-+ while (OperationStatus.NOTFOUND != cursor.getNext(key, data, LockMode.DEFAULT)) {
- // String keyStr = new String( key.get_data(),0,key.get_size() );
- // String dataStr = new String( data.get_data(),0,data.get_size() );
-
-@@ -80,14 +85,14 @@
- outStream.write(keyStr + " " + dataStr);
- }
- if (first) {
-- key.set_flags(Db.DB_DBT_REALLOC);
-- data.set_flags(Db.DB_DBT_REALLOC);
-+ key.setReuseBuffer(true);
-+ data.setReuseBuffer(true);
- first = false;
- }
- }
-- } catch (DbRunRecoveryException e) {
-+ } catch (RunRecoveryException e) {
- System.out.println("Not able to create cursor: " + e.getMessage());
-- } catch (DbException dbe) {
-+ } catch (DatabaseException dbe) {
- System.err.println("HelpAccess: " + dbe.toString());
- System.exit(1);
- } catch (FileNotFoundException fnfe) {
-@@ -107,24 +112,21 @@
- String data3 = "dumm/testpage.xml";
-
- try {
-- Db table = new Db(null, 0);
-- table.set_error_stream(System.err);
-- table.set_errpfx("AccessExample");
-- table.open(
-- null,
-- "e:/rvp603b/help/helpaccess.db",
-- null,
-- Db.DB_HASH,
-- Db.DB_CREATE,
-- 0644);
-+ DatabaseConfig cfg = DatabaseConfig.DEFAULT;
-+ cfg.setErrorStream(System.err);
-+ cfg.setErrorPrefix("AccessExample");
-+ cfg.setType(DatabaseType.HASH);
-+ cfg.setMode(0644);
-+ cfg.setAllowCreate(true);
-+ Database table = new Database("e:/rvp603b/help/helpaccess.db", null, cfg);
- StringDbt key = new StringDbt(key1);
- StringDbt data = new StringDbt(data1);
- try {
-- int err;
-- if ((err = table.put(null, key, data, 0)) == Db.DB_KEYEXIST) {
-+ OperationStatus err;
-+ if ((err = table.put(null, key, data)) == OperationStatus.KEYEXIST) {
- System.out.println("Key " + " already exists.");
- }
-- } catch (DbException dbe) {
-+ } catch (DatabaseException dbe) {
- System.out.println(dbe.toString());
- }
- System.out.println(" inserted first key ");
-@@ -132,11 +134,11 @@
- key = new StringDbt(key2);
- data = new StringDbt(data2);
- try {
-- int err;
-- if ((err = table.put(null, key, data, 0)) == Db.DB_KEYEXIST) {
-+ OperationStatus err;
-+ if ((err = table.put(null, key, data)) == OperationStatus.KEYEXIST) {
- System.out.println("Key " + " already exists.");
- }
-- } catch (DbException dbe) {
-+ } catch (DatabaseException dbe) {
- System.out.println(dbe.toString());
- }
- System.out.println(" inserted second key ");
-@@ -144,17 +146,17 @@
- key = new StringDbt(key3);
- data = new StringDbt(data3);
- try {
-- int err;
-- if ((err = table.put(null, key, data, 0)) == Db.DB_KEYEXIST) {
-+ OperationStatus err;
-+ if ((err = table.put(null, key, data)) == OperationStatus.KEYEXIST) {
- System.out.println("Key " + " already exists.");
- }
-- } catch (DbException dbe) {
-+ } catch (DatabaseException dbe) {
- System.out.println(dbe.toString());
- }
- System.out.println(" inserted third key ");
-
-- table.close(0);
-- } catch (DbException dbe) {
-+ table.close(false);
-+ } catch (DatabaseException dbe) {
- System.err.println("AccessExample: " + dbe.toString());
- System.exit(1);
- } catch (FileNotFoundException fnfe) {
---- xmlhelp/source/com/sun/star/help/HelpKeyword.java.ark 2005-07-23 01:21:45.000000000 +0200
-+++ xmlhelp/source/com/sun/star/help/HelpKeyword.java 2005-07-23 02:06:20.000000000 +0200
-@@ -9,8 +9,8 @@
- import java.util.Enumeration;
- import java.util.Hashtable;
-
--import com.sleepycat.db.Db;
--import com.sleepycat.db.DbException;
-+import com.sleepycat.db.Database;
-+import com.sleepycat.db.DatabaseException;
-
- /**
- * @author ab106281
-@@ -61,1 +61,1 @@
-- void dump(Db table) {
-+ void dump(Database table) {
-@@ -71,8 +71,8 @@
- StringDbt key = new StringDbt(list[i]);
- StringDbt value = new StringDbt(data.getString());
- try {
-- table.put(null, key, value, 0);
-- } catch (DbException e) {
-+ table.put(null, key, value);
-+ } catch (DatabaseException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
---- xmlhelp/source/com/sun/star/help/HelpIndexer.java.ark 2005-07-23 01:22:18.000000000 +0200
-+++ xmlhelp/source/com/sun/star/help/HelpIndexer.java 2005-07-23 02:14:01.000000000 +0200
-@@ -151,12 +151,14 @@
- private void schnitzel() {
- // Determine the location of the database
- String installDirectory = HelpDatabases.getInstallDirectory();
-- Db table = null;
-+ Database table = null;
-
- try {
-- table = new Db(null, 0);
-- table.set_error_stream(System.err);
-- table.set_errpfx("indexing");
-+ DatabaseConfig cfg=DatabaseConfig.DEFAULT;
-+ cfg.setType(DatabaseType.BTREE);
-+ cfg.setErrorStream(System.err);
-+ cfg.setErrorPrefix("indexing");
-+ cfg.setReadOnly(true);
-
- // Create indexDirectory, if not existent
- String indexDirectory =
-@@ -191,16 +193,16 @@
- String fileName =
- installDirectory + _language + File.separator + _module + ".db";
-
-- table.open(null,fileName, null, Db.DB_BTREE, Db.DB_RDONLY, 0644);
-- Dbc cursor = table.cursor(null, 0);
-+ table = new Database(fileName, null, cfg);
-+ Cursor cursor = table.openCursor(null, CursorConfig.DEFAULT);
- StringDbt key = new StringDbt();
- StringDbt data = new StringDbt();
-
- boolean first = true;
- // Initially the cursor must allocate the necessary memory
-- key.set_flags(Db.DB_DBT_MALLOC);
-- data.set_flags(Db.DB_DBT_MALLOC);
-- while (Db.DB_NOTFOUND != cursor.get(key, data, Db.DB_NEXT)) {
-+ key.setReuseBuffer(false);
-+ data.setReuseBuffer(false);
-+ while (OperationStatus.NOTFOUND != cursor.getNext(key, data, LockMode.DEFAULT)) {
- try {
- String keyStr = key.getString();
- String dataStr = data.getFile();
-@@ -229,13 +231,13 @@
- } catch (Exception e) {
- }
- if (first) {
-- key.set_flags(Db.DB_DBT_REALLOC);
-- data.set_flags(Db.DB_DBT_REALLOC);
-+ key.setReuseBuffer(true);
-+ data.setReuseBuffer(true);
- first = false;
- }
- }
- cursor.close();
-- table.close(0);
-+ table.close(false);
-
- System.out.println("Indexing...");
- Enumeration enum = _hashDocInfo.elements();
-@@ -314,10 +316,10 @@
- } catch (Exception e) {
- System.err.println(e.getMessage());
- }
-- } catch (DbRunRecoveryException e) {
-+ } catch (RunRecoveryException e) {
- System.out.println("Not able to create cursor: " + e.getMessage());
- System.exit(1);
-- } catch (DbException e) {
-+ } catch (DatabaseException e) {
- System.out.println("Error initializing database");
- System.exit(1);
- } catch (FileNotFoundException fnfe) {
-@@ -429,9 +431,12 @@
- list[j++] = (String) enum.nextElement();
- }
-
-- Db table;
-+ Database table;
- try {
-- table = new Db(null, 0);
-+ DatabaseConfig cfg=DatabaseConfig.DEFAULT;
-+ cfg.setType(DatabaseType.BTREE);
-+ cfg.setAllowCreate(true);
-+ cfg.setMode(0644);
-
- String fileName =
- HelpDatabases.getInstallDirectory()
-@@ -440,15 +445,15 @@
- + _module
- + ".key";
-
-- table.open(null,fileName, null, Db.DB_BTREE, Db.DB_CREATE, 0644);
-+ table = new Database(fileName, null, cfg);
-
- for (int i = 0; i < list.length; ++i) {
- Data data = (Data) _hash.get(list[i]);
- StringDbt key = new StringDbt(list[i]);
- StringDbt value = new StringDbt(data.getString());
-- table.put(null, key, value, 0);
-+ table.put(null, key, value);
- }
-- table.close(0);
-+ table.close(false);
- } catch (Exception e) {
- System.out.println("error writing keydata");
- }
-@@ -464,10 +469,8 @@
- list[j++] = (String) enum.nextElement();
- }
-
-- Db table;
-+ Database table;
- try {
-- table = new Db(null, 0);
--
- String fileName =
- HelpDatabases.getInstallDirectory()
- + _language
-@@ -475,15 +478,19 @@
- + _module
- + ".ht";
-
-- table.open(null,fileName, null, Db.DB_BTREE, Db.DB_CREATE, 0644);
-+ DatabaseConfig cfg=DatabaseConfig.DEFAULT;
-+ cfg.setType(DatabaseType.BTREE);
-+ cfg.setAllowCreate(true);
-+ cfg.setMode(0644);
-+ table = new Database(fileName, null, cfg);
-
- for (int i = 0; i < list.length; ++i) {
- String data = (String) _hashHelptext.get(list[i]);
- StringDbt key = new StringDbt(list[i]);
- StringDbt value = new StringDbt(data);
-- table.put(null, key, value, 0);
-+ table.put(null, key, value);
- }
-- table.close(0);
-+ table.close(false);
- } catch (Exception e) {
- System.out.println("error writing keydata");
- }
---- xmlhelp/source/com/sun/star/help/HelpURLParameter.java.ark 2005-07-23 01:23:23.000000000 +0200
-+++ xmlhelp/source/com/sun/star/help/HelpURLParameter.java 2005-07-23 02:16:33.000000000 +0200
-@@ -195,12 +195,12 @@
- {
- try
- {
-- Db db = HelpDatabases.getHelptextDbForLanguage( get_module(),get_language() );
-+ Database db = HelpDatabases.getHelptextDbForLanguage( get_module(),get_language() );
-
- StringDbt key = new StringDbt( _id );
-- StringDbt data = new StringDbt();
-+ StringDbt data = new StringDbt();
-
-- int err = db.get(null,key,data,0);
-+ OperationStatus err = db.get(null,key,data,LockMode.DEFAULT);
- if( data != null )
- try
- {
-@@ -213,7 +213,7 @@
- else
- return new byte[0];
- }
-- catch( DbException err )
-+ catch( DatabaseException err )
- {
- System.out.println( "No database for language: HelpURLParameter._readBerkeley" );
- return new byte[0];
-@@ -284,24 +284,24 @@
- {
- if( !get_id().equals("") )
- {
-- try
-- {
-- Db db = HelpDatabases.getDatabaseForLanguage( get_module(),get_language() );
-+ try
-+ {
-+ Database db = HelpDatabases.getDatabaseForLanguage( get_module(),get_language() );
-
-- StringDbt key = new StringDbt( _id );
-- StringDbt data = new StringDbt();
-+ StringDbt key = new StringDbt( _id );
-+ StringDbt data = new StringDbt();
-
-- int err = db.get(null,key,data,0);
-- if( data != null )
-+ OperationStatus err = db.get(null,key,data,LockMode.DEFAULT);
-+ if( data != null )
- {
-- _title = data.getTitle();
-- _path = data.getFile();
-- _jar = data.getDatabase();
-- _tag = data.getHash();
-+ _title = data.getTitle();
-+ _path = data.getFile();
-+ _jar = data.getDatabase();
-+ _tag = data.getHash();
- }
-
- }
-- catch( DbException err )
-+ catch( DatabaseException err )
- {
- System.out.println( "No database for language: HelpURLParameter._readBerkeley" );
- }
---- xmlhelp/source/com/sun/star/help/HelpDatabases.java.ark 2005-07-23 01:24:06.000000000 +0200
-+++ xmlhelp/source/com/sun/star/help/HelpDatabases.java 2005-07-23 02:23:44.000000000 +0200
-@@ -225,23 +225,25 @@
-
-
-
-- public static synchronized Db getDatabaseForLanguage( String Database,String Language )
-+ public static synchronized Database getDatabaseForLanguage( String Database,String Language )
- {
- if( Database == null || Language == null )
- return null;
- String key = lang(Language) + File.separator + Database; // For example de/swriter
-- Db table = ( Db ) _dbHash.get( key );
-+ Database table = ( Database ) _dbHash.get( key );
- if( table == null )
- {
- try
- {
-- table = new Db( null,0 );
--
- String tablePath = _installDirectory + key + ".db";
-- table.open( null,tablePath,null,Db.DB_BTREE,Db.DB_RDONLY,0644 );
-+ DatabaseConfig cfg=DatabaseConfig.DEFAULT;
-+ cfg.setType(DatabaseType.BTREE);
-+ cfg.setReadOnly(true);
-+ cfg.setMode(0644);
-+ table = new Database( tablePath,null,cfg );
- _dbHash.put( key,table );
- }
-- catch( DbException e )
-+ catch( DatabaseException e )
- {
- System.err.println( "Unsupported language in helpsystem: " + Language );
- System.err.println( "module: " + Database );
-@@ -262,32 +264,35 @@
- static Hashtable _helptextHash = new Hashtable();
-
-
-- public static synchronized Db getHelptextDbForLanguage( String Database,String Language )
-+ public static synchronized Database getHelptextDbForLanguage( String Database,String Language )
- {
- String key = lang( Language ) + File.separator + Database; // For example de/swriter
-- Db table = ( Db ) _helptextHash.get( key );
-+ Database table = ( Database ) _helptextHash.get( key );
- if( table == null )
- {
-- try
-- {
-- table = new Db( null,0 );
-+ try
-+ {
-
- String tablePath = _installDirectory + key + ".ht";
-- table.open( null,tablePath,null,Db.DB_BTREE,Db.DB_RDONLY,0644 );
-+ DatabaseConfig cfg=DatabaseConfig.DEFAULT;
-+ cfg.setType(DatabaseType.BTREE);
-+ cfg.setReadOnly(true);
-+ cfg.setMode(0644);
-+ table = new Database( tablePath, null, cfg );
- _dbHash.put( key,table );
-- }
-- catch( DbException e )
-- {
-+ }
-+ catch( DatabaseException e )
-+ {
- System.err.println( "Unsupported language in helpsystem: " + Language );
-- System.err.println( "module: " + Database );
-- System.err.println( e.getMessage() );
-- }
-- catch( FileNotFoundException e )
-- {
-+ System.err.println( "module: " + Database );
-+ System.err.println( e.getMessage() );
-+ }
-+ catch( FileNotFoundException e )
-+ {
- System.err.println( "Unsupported language in helpsystem: " + Language );
- System.err.println( "module: " + Database );
-- System.err.println( e.getMessage() );
-- }
-+ System.err.println( e.getMessage() );
-+ }
- }
-
- return table;
-@@ -514,39 +519,42 @@
- {
- HashMap internalHash = new HashMap();
- String fileName = HelpDatabases.getInstallDirectory() + keyStr + ".key";
-- Db table = new Db( null,0 );
- System.err.println( fileName );
-- table.open( null,fileName,null,Db.DB_BTREE,Db.DB_RDONLY,0644 );
-- Dbc cursor = table.cursor( null,0 );
-+ DatabaseConfig cfg=DatabaseConfig.DEFAULT;
-+ cfg.setType(DatabaseType.BTREE);
-+ cfg.setReadOnly(true);
-+ cfg.setMode(0644);
-+ Database table = new Database( fileName,null,cfg );
-+ Cursor cursor = table.openCursor( null,CursorConfig.DEFAULT );
- StringDbt key = new StringDbt();
- StringDbt data = new StringDbt();
-
- boolean first = true;
-- key.set_flags( Db.DB_DBT_MALLOC ); // Initially the cursor must allocate the necessary memory
-- data.set_flags( Db.DB_DBT_MALLOC );
-- info = new KeywordInfo();
-+ key.setReuseBuffer(false);
-+ data.setReuseBuffer(false);
-+ info = new KeywordInfo();
-
- String keyStri;
-
-- while( Db.DB_NOTFOUND != cursor.get( key,data,Db.DB_NEXT ) )
-+ while( OperationStatus.NOTFOUND != cursor.getNext( key,data,LockMode.DEFAULT ) )
- {
- keyStri = key.getString();
- info.insert( keyStri );
- internalHash.put( keyStri,data.getString() );
- if( first )
-- {
-- key.set_flags( Db.DB_DBT_REALLOC );
-- data.set_flags( Db.DB_DBT_REALLOC );
-- first = false;
-+ {
-+ key.setReuseBuffer(true);
-+ data.setReuseBuffer(true);
-+ first = false;
- }
- }
-
- info.sort();
- cursor.close();
-- table.close( 0 );
-+ table.close( false );
-
- String[] keywords = info.getKeywordList();
-- Db table2 = getDatabaseForLanguage( Database,Language );
-+ Database table2 = getDatabaseForLanguage( Database,Language );
- for( int i = 0; i < keywords.length; ++i )
- {
- String[] id = info.insertId( i,((String)internalHash.get( keywords[i])) );
-@@ -559,7 +567,7 @@
- StringDbt data1 = new StringDbt();
- try
- {
-- table2.get( null,key1,data1,0 );
-+ table2.get( null,key1,data1,LockMode.DEFAULT );
- title[j] = data1.getTitle();
- }
- catch( Exception e )
---- xmlhelp/source/com/sun/star/help/HelpLinker.java.ark 2005-07-23 01:26:36.000000000 +0200
-+++ xmlhelp/source/com/sun/star/help/HelpLinker.java 2005-07-23 02:28:26.000000000 +0200
-@@ -89,9 +89,11 @@
- import java.util.jar.JarOutputStream;
- import java.util.zip.CRC32;
-
--import com.sleepycat.db.Db;
--import com.sleepycat.db.DbException;
--import com.sleepycat.db.Dbt;
-+import com.sleepycat.db.Database;
-+import com.sleepycat.db.DatabaseConfig;
-+import com.sleepycat.db.DatabaseException;
-+import com.sleepycat.db.DatabaseEntry;
-+import com.sleepycat.db.DatabaseType;
- import com.sun.xmlsearch.util.PrefixTranslator;
- import com.sun.xmlsearch.xml.indexer.XmlIndexBuilder;
-
-@@ -394,27 +396,29 @@
- // cleanup tmp file even if exiting by exception
- String helpTextFileName = helpTextFile.getAbsolutePath();
- // reopen the helptext file as a Berkeley DB
-- Db helpText = new Db(null, 0);
- helpTextFile.delete();
-- helpText.open(null,helpTextFileName, null, Db.DB_BTREE, Db.DB_CREATE, 0644);
-+ DatabaseConfig cfg=DatabaseConfig.DEFAULT;
-+ cfg.setType(DatabaseType.BTREE);
-+ cfg.setAllowCreate(true);
-+ cfg.setReadOnly(false);
-+ cfg.setMode(0644);
-+ Database helpText = new Database(helpTextFileName, null, cfg);
-
- File dbBaseFile = File.createTempFile("database", "db");
- dbBaseFile.deleteOnExit();
- // cleanup tmp file even if exiting by exception
- String dbBaseFileName = dbBaseFile.getAbsolutePath();
- // reopen the database file as a Berkeley DB
-- Db dbBase = new Db(null, 0);
- dbBaseFile.delete();
-- dbBase.open(null,dbBaseFileName, null, Db.DB_BTREE, Db.DB_CREATE, 0644);
-+ Database dbBase = new Database(dbBaseFileName, null, cfg);
-
- File keyWordFile = File.createTempFile("keybase", "key");
- keyWordFile.deleteOnExit();
- // cleanup tmp file even if exiting by exception
- String keyWordFileName = keyWordFile.getAbsolutePath();
- // reopen the database file as a Berkeley DB
-- Db keyWord = new Db(null, 0);
- keyWordFile.delete();
-- keyWord.open(null,keyWordFileName, null, Db.DB_BTREE, Db.DB_CREATE, 0644);
-+ Database keyWord = new Database(keyWordFileName, null, cfg);
- HelpKeyword helpKeyword = new HelpKeyword();
-
- // now input the hid.lst and store it into a hashmap
-@@ -610,9 +614,9 @@
- if (tHid != null)
- helpTextId = tHid;
- helpTextId = URLEncoder.encode(helpTextId);
-- Dbt keyDbt = new Dbt(helpTextId.getBytes("UTF8"));
-- Dbt textDbt = new Dbt(helpTextText.getBytes("UTF8"));
-- helpText.put(null, keyDbt, textDbt, 0);
-+ DatabaseEntry keyDbt = new DatabaseEntry(helpTextId.getBytes("UTF8"));
-+ DatabaseEntry textDbt = new DatabaseEntry(helpTextText.getBytes("UTF8"));
-+ helpText.put(null, keyDbt, textDbt);
- }
- }
- // now the indexing
-@@ -635,10 +639,10 @@
- }
- } // while loop over hzip files ending
-
-- helpText.close(0);
-- dbBase.close(0);
-+ helpText.close(false);
-+ dbBase.close(false);
- helpKeyword.dump(keyWord);
-- keyWord.close(0);
-+ keyWord.close(false);
- if (!helpFiles.isEmpty())
- closeXMLIndexBuilder();
-
-@@ -734,13 +738,13 @@
- }
-
- private void addBookmark(
-- Db dbBase,
-+ Database dbBase,
- String hid,
- byte[] fileB,
- byte[] anchorB,
- byte[] jarfileB,
- byte[] titleB)
-- throws DbException, UnsupportedEncodingException {
-+ throws DatabaseException, UnsupportedEncodingException {
-
- String translatedHid =
- (String) hidlistTranslation.get(
-@@ -748,7 +752,7 @@
- if (translatedHid != null)
- hid = translatedHid;
- hid = URLEncoder.encode(hid);
-- Dbt key = new Dbt(hid.getBytes("UTF8"));
-+ DatabaseEntry key = new DatabaseEntry(hid.getBytes("UTF8"));
-
- int fileLen = fileB.length;
- if (anchorB != null)
-@@ -771,8 +775,8 @@
- dataB[i++] = (byte) titleB.length;
- for (int j = 0; j < titleB.length; ++j)
- dataB[i++] = titleB[j];
-- Dbt data = new Dbt(dataB);
-- dbBase.put(null, key, data, 0);
-+ DatabaseEntry data = new DatabaseEntry(dataB);
-+ dbBase.put(null, key, data);
- }
-
- private void addEntryToJarFile(
diff --git a/patches/src680/xmlsearch-plain-xt.diff b/patches/src680/xmlsearch-plain-xt.diff
deleted file mode 100644
index 26a19d265..000000000
--- a/patches/src680/xmlsearch-plain-xt.diff
+++ /dev/null
@@ -1,402 +0,0 @@
-Index: XmlSearch/src/com/jclark/xsl/dom/XmlSearchTransform.java
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ XmlSearch/src/com/jclark/xsl/dom/XmlSearchTransform.java 2005-12-31 16:52:28.000000000 +0000
-@@ -0,0 +1,10 @@
-+package com.jclark.xsl.dom;
-+
-+import com.jclark.xsl.om.Node;
-+import com.jclark.xsl.tr.Result;
-+
-+public interface XmlSearchTransform extends Transform
-+{
-+ public void transform(Node sourceRoot,
-+ Result result) throws TransformException;
-+}
-Index: XmlSearch/src/com/jclark/xsl/dom/XmlSearchXSLTransformEngine.java
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ XmlSearch/src/com/jclark/xsl/dom/XmlSearchXSLTransformEngine.java 2005-12-31 16:53:53.000000000 +0000
-@@ -0,0 +1,178 @@
-+// Derived from:
-+// Id: XSLTransformEngine.java 96 2005-02-28 21:07:29Z blindsey
-+// And added methods required by XmlSearch
-+
-+// Copyright (c) 1998, 1999 James Clark
-+
-+// Permission is hereby granted, free of charge, to any person obtaining
-+// a copy of this software and associated documentation files (the
-+// ``Software''), to deal in the Software without restriction, including
-+// without limitation the rights to use, copy, modify, merge, publish,
-+// distribute, sublicense, and/or sell copies of the Software, and to
-+// permit persons to whom the Software is furnished to do so, subject to
-+// the following conditions:
-+
-+// The above copyright notice and this permission notice shall be included
-+// in all copies or substantial portions of the Software.
-+
-+// THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-+// IN NO EVENT SHALL JAMES CLARK BE LIABLE FOR ANY CLAIM, DAMAGES OR
-+// OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-+// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-+// OTHER DEALINGS IN THE SOFTWARE.
-+
-+// Except as contained in this notice, the name of James Clark shall
-+// not be used in advertising or otherwise to promote the sale, use or
-+// other dealings in this Software without prior written authorization
-+// from James Clark.
-+
-+
-+package com.jclark.xsl.dom;
-+
-+import com.jclark.xsl.tr.*;
-+import com.jclark.xsl.om.*;
-+import com.jclark.xsl.sax.ExtensionHandlerImpl;
-+import com.jclark.xsl.sax.MultiNamespaceResult;
-+import java.net.URL;
-+import java.io.IOException;
-+
-+public class XmlSearchXSLTransformEngine
-+ implements TransformEngine, XMLProcessor
-+{
-+ private Engine engine;
-+ private DOMExtensions extend;
-+
-+ public Node load(URL url,
-+ int documentIndex,
-+ LoadContext context,
-+ NameTable nameTable) throws XSLException
-+ {
-+ throw new XSLException("external documents not supported");
-+ }
-+
-+ public Result createResult(Node baseNode,
-+ int documentIndex,
-+ LoadContext loadContext,
-+ Node[] rootNodeRef) throws XSLException
-+ {
-+ if (baseNode == null)
-+ throw new XSLException("cannot convert result tree fragment returned by extension function to a node-set with the DOM");
-+ RootNode root = ((NodeBase)baseNode).root;
-+ org.w3c.dom.DocumentFragment docFrag
-+ = root.ownerDocument.createDocumentFragment();
-+ String base = null;
-+ URL baseURL = baseNode.getURL();
-+ if (baseURL != null)
-+ base = baseURL.toString();
-+ rootNodeRef[0] =
-+ new RootNode(docFrag,
-+ extend,
-+ loadContext,
-+ engine.getNameTable(),
-+ base,
-+ documentIndex);
-+ return new MultiNamespaceResult(new DOMBuilder(docFrag), null);
-+ }
-+
-+ public XmlSearchXSLTransformEngine()
-+ {
-+ engine = new EngineImpl(this, new ExtensionHandlerImpl());
-+ }
-+
-+ public XmlSearchXSLTransformEngine(DOMExtensions extend)
-+ {
-+ this();
-+ this.extend = extend;
-+ }
-+
-+ private class TransformImpl implements XmlSearchTransform, ParameterSet
-+ {
-+ private Sheet sheet;
-+
-+ TransformImpl (Sheet sheet) {
-+ this.sheet = sheet;
-+ }
-+
-+ public void transform(org.w3c.dom.Node sourceRoot,
-+ org.w3c.dom.Node resultRoot)
-+ throws TransformException {
-+ try {
-+ sheet.process(new RootNode(sourceRoot,
-+ extend,
-+ sheet.getSourceLoadContext(),
-+ engine.getNameTable(),
-+ null,
-+ 0),
-+ XmlSearchXSLTransformEngine.this,
-+ this, // ParameterSet
-+ new MultiNamespaceResult(new DOMBuilder(resultRoot),
-+ null));
-+ }
-+ catch (XSLException e) {
-+ throw toTransformException(e);
-+ }
-+ }
-+
-+ public void transform(Node sourceRoot,
-+ Result result)
-+ throws TransformException {
-+ try {
-+ sheet.process(sourceRoot,
-+ XmlSearchXSLTransformEngine.this,
-+ this, // ParameterSet
-+ result);
-+ }
-+ catch (XSLException e) {
-+ throw toTransformException(e);
-+ }
-+ }
-+ public Object getParameter(Name name) {
-+ return null;
-+ }
-+ }
-+
-+ public Transform createTransform(org.w3c.dom.Node domNode)
-+ throws TransformException
-+ {
-+ try {
-+ return new TransformImpl(engine.createSheet(new RootNode(domNode,
-+ extend,
-+ engine.getSheetLoadContext(),
-+ engine.getNameTable(),
-+ null,
-+ 0)));
-+ }
-+ catch (XSLException e) {
-+ throw toTransformException(e);
-+ }
-+ catch (IOException e) {
-+ throw new Error("unexpected exception: " + e);
-+ }
-+ }
-+
-+ public NameTable getNameTable()
-+ {
-+ return engine.getNameTable();
-+ }
-+
-+ public LoadContext getSourceLoadContext()
-+ {
-+ return engine.getSheetLoadContext();
-+ }
-+
-+ private TransformException toTransformException(XSLException e)
-+ {
-+ org.w3c.dom.Node domNode = null;
-+ Node node = e.getNode();
-+ if (node != null) {
-+ domNode = ((NodeBase)node).domNode;
-+ }
-+ String message = e.getMessage();
-+ if (e == null) {
-+ message = e.getException().toString();
-+ }
-+ return new TransformException(message, domNode);
-+ }
-+}
-Index: XmlSearch/src/com/jclark/xsl/makefile.mk
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ XmlSearch/src/com/jclark/xsl/makefile.mk 2005-12-31 16:53:13.000000000 +0000
-@@ -0,0 +1,67 @@
-+#*************************************************************************
-+#
-+# OpenOffice.org - a multi-platform office productivity suite
-+#
-+# $RCSfile$
-+#
-+# $Revision$
-+#
-+# last change: $Author$
-+#
-+# The Contents of this file are made available subject to
-+# the terms of GNU Lesser General Public License Version 2.1.
-+#
-+#
-+# GNU Lesser General Public License Version 2.1
-+# =============================================
-+# Copyright 2005 by Sun Microsystems, Inc.
-+# 901 San Antonio Road, Palo Alto, CA 94303, USA
-+#
-+# This library is free software; you can redistribute it and/or
-+# modify it under the terms of the GNU Lesser General Public
-+# License version 2.1, as published by the Free Software Foundation.
-+#
-+# This library 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 for more details.
-+#
-+# You should have received a copy of the GNU Lesser General Public
-+# License along with this library; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+# MA 02111-1307 USA
-+#
-+#*************************************************************************
-+
-+PRJ = ..$/..$/..$/..
-+PRJNAME = xt-xmlsearch
-+PACKAGE = com$/jclark$/xsl
-+TARGET = com_jclark_xsl
-+
-+# --- Settings -----------------------------------------------------
-+
-+.INCLUDE : settings.mk
-+
-+.IF "$(XML_CLASSPATH)" != ""
-+XCLASSPATH+=:$(XML_CLASSPATH)
-+.ENDIF
-+
-+JARFILES = xt.jar
-+
-+JAVAFILES = $(subst,$(CLASSDIR)$/$(PACKAGE)$/, $(subst,.class,.java $(JAVACLASSFILES)))
-+
-+# --- Files --------------------------------------------------------
-+
-+JAVACLASSFILES = \
-+ $(CLASSDIR)$/$(PACKAGE)$/dom$/XmlSearchTransform.class \
-+ $(CLASSDIR)$/$(PACKAGE)$/dom$/XmlSearchXSLTransformEngine.class
-+
-+JARCLASSDIRS = com$/jclark
-+JARTARGET = $(PRJNAME).jar
-+JARCOMPRESS = TRUE
-+CUSTOMMANIFESTFILE =
-+
-+
-+# --- Targets ------------------------------------------------------
-+
-+.INCLUDE : target.mk
-Index: XmlSearch/prj/build.lst
-===================================================================
---- XmlSearch/prj/build.lst.orig 2003-03-19 12:48:40.000000000 +0000
-+++ XmlSearch/prj/build.lst 2005-12-31 16:17:41.000000000 +0000
-@@ -1,2 +1,3 @@
- xh XmlSearch : external codemaker NULL
--xh XmlSearch\src\com\sun\xmlsearch nmake - all xs NULL
-+xh XmlSearch\src\com\jclark\xsl nmake - all xs_xt NULL
-+xh XmlSearch\src\com\sun\xmlsearch nmake - all xs xs_xt NULL
-Index: XmlSearch/src/com/sun/xmlsearch/makefile.mk
-===================================================================
---- XmlSearch/src/com/sun/xmlsearch/makefile.mk.orig 2005-12-31 16:13:55.000000000 +0000
-+++ XmlSearch/src/com/sun/xmlsearch/makefile.mk 2005-12-31 16:17:41.000000000 +0000
-@@ -25,8 +25,8 @@
- XCLASSPATH+=:$(XML_CLASSPATH)
- .ENDIF
-
--JARFILES = xt.jar
--#EXTRAJARFILES = xt.jar
-+JARFILES = xt.jar xt-xmlsearch.jar
-+#EXTRAJARFILES = xt.jar xt-xmlsearch.jar
-
- JAVAFILES = $(subst,$(CLASSDIR)$/$(PACKAGE)$/, $(subst,.class,.java $(JAVACLASSFILES)))
-
-@@ -129,7 +129,7 @@
- $(CLASSDIR)$/$(PACKAGE)$/xml/qe/RoleFiller.class \
- $(CLASSDIR)$/$(PACKAGE)$/xml/qe/Search.class
-
--JARCLASSDIRS = com
-+JARCLASSDIRS = com$/sun
- JARTARGET = $(PRJNAME).jar
- JARCOMPRESS = TRUE
- CUSTOMMANIFESTFILE =
-Index: XmlSearch/src/com/sun/xmlsearch/tree/TreeBuilder.java
-===================================================================
---- XmlSearch/src/com/sun/xmlsearch/tree/TreeBuilder.java.orig 2005-12-31 16:13:55.000000000 +0000
-+++ XmlSearch/src/com/sun/xmlsearch/tree/TreeBuilder.java 2005-12-31 16:42:09.000000000 +0000
-@@ -145,6 +145,7 @@
-
- public URL getURL() { return null; }
- public int getLineNumber() { return -1; }
-+ public int getColumnNumber() { return -1; }
- public NamespacePrefixMap getNamespacePrefixMap() {
- return _parent.getNamespacePrefixMap();
- }
-@@ -154,6 +155,12 @@
- public String getUnparsedEntityURI(String name) {
- return "getUnparsedEntityURI";
- }
-+ public String getPublicId() {
-+ return "getPublicId";
-+ }
-+ public String getSystemId() {
-+ return "getSystemId";
-+ }
-
- public boolean isLeaf() { return true; }
- public int getChildCount() { return 0; }
-Index: XmlSearch/src/com/sun/xmlsearch/xml/indexer/XmlIndexBuilder.java
-===================================================================
---- XmlSearch/src/com/sun/xmlsearch/xml/indexer/XmlIndexBuilder.java.orig 2005-12-31 16:13:55.000000000 +0000
-+++ XmlSearch/src/com/sun/xmlsearch/xml/indexer/XmlIndexBuilder.java 2005-12-31 16:51:39.000000000 +0000
-@@ -60,13 +60,13 @@
- import com.jclark.xsl.tr.OutputMethod;
- import com.jclark.xsl.tr.LoadContext;
-
--import com.jclark.xsl.dom.Transform;
-+import com.jclark.xsl.dom.XmlSearchTransform;
- import com.jclark.xsl.dom.TransformEngine;
- import com.jclark.xsl.dom.TransformException;
--import com.jclark.xsl.dom.XSLTransformEngine;
-+import com.jclark.xsl.dom.XmlSearchXSLTransformEngine;
-
- public final class XmlIndexBuilder {
-- final class MyXslEngine extends XSLTransformEngine {
-+ final class MyXslEngine extends XmlSearchXSLTransformEngine {
- public Node load(
- URL url,
- int documentIndex,
-@@ -436,8 +436,8 @@
-
- private TreeBuilder _treeBuilder;
- private MyXslEngine _transformEngine;
-- private Transform _indexingTransform;
-- private Transform _defaultTransform;
-+ private XmlSearchTransform _indexingTransform;
-+ private XmlSearchTransform _defaultTransform;
- private IndexAdapter _indexAdapter;
-
- public XmlIndexBuilder(String indexDir) throws Exception {
-@@ -534,7 +534,7 @@
- return _treeBuilder.getRoot(docUrl);
- }
-
-- private Transform getTransform(String stylesheetName) throws Exception {
-+ private XmlSearchTransform getTransform(String stylesheetName) throws Exception {
- // System.out.println("creating indexing transform: " + stylesheetName);
- URL stylesheetUrl = null;
- if (_useLocalTransformFile) {
-@@ -556,7 +556,7 @@
- DocumentBuilder dBuilder = dFactory.newDocumentBuilder();
- Document sheet = dBuilder.parse(stylesheetStream);
-
-- return _transformEngine.createTransform(sheet);
-+ return (XmlSearchTransform)_transformEngine.createTransform(sheet);
- }
-
- // GTM new:
-Index: helpcontent2/settings.pmk
-===================================================================
---- helpcontent2/settings.pmk 2005-12-31 16:57:56.000000000 +0000
-+++ helpcontent2/settings.pmk 2005-12-31 17:32:59.000000000 +0000
-@@ -1,5 +1,5 @@
-
--my_cp:=$(CLASSPATH)$(PATH_SEPERATOR)$(SOLARBINDIR)$/xercesImpl.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/unoil.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/ridl.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/jurt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/jut.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xmlsearch.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xmlhelp.jar
-+my_cp:=$(CLASSPATH)$(PATH_SEPERATOR)$(SOLARBINDIR)$/xercesImpl.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/unoil.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/ridl.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/jurt.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/jut.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xmlsearch.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xmlhelp.jar$(PATH_SEPERATOR)$(SOLARBINDIR)$/xt-xmlsearch.jar
-
- .IF "$(SYSTEM_DB)" == "YES"
- my_cp!:=$(my_cp)$(PATH_SEPERATOR)$(DB_JAR)
-Index: xmlhelp/source/com/sun/star/help/makefile.mk
-===================================================================
---- xmlhelp/source/com/sun/star/help/makefile.mk 2005-12-31 16:57:56.000000000 +0000
-+++ xmlhelp/source/com/sun/star/help/makefile.mk 2005-12-31 17:01:41.000000000 +0000
-@@ -22,7 +22,7 @@
-
- .INCLUDE : settings.mk
-
--JARFILES = xt.jar unoil.jar ridl.jar jurt.jar jut.jar xmlsearch.jar
-+JARFILES = xt.jar unoil.jar ridl.jar jurt.jar jut.jar xmlsearch.jar xt-xmlsearch.jar
- EXTRAJARFILES =
-
- .IF "$(SYSTEM_DB)" == "YES"
diff --git a/patches/src680/xmlsecurity_source_xmlsec_nss_gcc4_compile_fix.diff b/patches/src680/xmlsecurity_source_xmlsec_nss_gcc4_compile_fix.diff
deleted file mode 100644
index 76da6758f..000000000
--- a/patches/src680/xmlsecurity_source_xmlsec_nss_gcc4_compile_fix.diff
+++ /dev/null
@@ -1,65 +0,0 @@
-diff -ur /home/naren/work/builds/ooo-build-1.9.125.1.pristine/build/src680-m125/xmlsecurity/source/xmlsec/nss/nsspki1t.h /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/xmlsecurity/source/xmlsec/nss/nsspki1t.h
---- xmlsecurity/source/xmlsec/nss/nsspki1t.h 2005-09-27 14:32:03.000000000 -0700
-+++ xmlsecurity/source/xmlsec/nss/nsspki1t.h 2005-10-11 09:43:34.740457440 -0700
-@@ -57,7 +57,29 @@
- * This is the basic OID that crops up everywhere.
- */
-
--struct NSSOIDStr;
-+// This was moved from pki1t.h to here to satisfy GCC 4.0 arrary checking rules
-+// Naren Devaiah - 11Oct2005
-+/*
-+ * NSSOID
-+ *
-+ * This structure is used to hold our internal table of built-in OID
-+ * data. The fields are as follows:
-+ *
-+ * NSSItem data -- this is the actual DER-encoded multinumber oid
-+ * const char *expl -- this explains the derivation, and is checked
-+ * in a unit test. While the field always exists,
-+ * it is only populated or used in debug builds.
-+ *
-+ */
-+
-+struct NSSOIDStr {
-+#ifdef DEBUG
-+ const NSSUTF8 *tag;
-+ const NSSUTF8 *expl;
-+#endif /* DEBUG */
-+ NSSItem data;
-+};
-+
- typedef struct NSSOIDStr NSSOID;
-
- /*
-diff -ur /home/naren/work/builds/ooo-build-1.9.125.1.pristine/build/src680-m125/xmlsecurity/source/xmlsec/nss/pki1t.h /home/naren/work/builds/ooo-build-1.9.125.1/build/src680-m125/xmlsecurity/source/xmlsec/nss/pki1t.h
---- xmlsecurity/source/xmlsec/nss/pki1t.h 2005-09-27 14:32:03.000000000 -0700
-+++ xmlsecurity/source/xmlsec/nss/pki1t.h 2005-10-11 09:43:37.180086560 -0700
-@@ -56,27 +56,6 @@
- PR_BEGIN_EXTERN_C
-
- /*
-- * NSSOID
-- *
-- * This structure is used to hold our internal table of built-in OID
-- * data. The fields are as follows:
-- *
-- * NSSItem data -- this is the actual DER-encoded multinumber oid
-- * const char *expl -- this explains the derivation, and is checked
-- * in a unit test. While the field always exists,
-- * it is only populated or used in debug builds.
-- *
-- */
--
--struct NSSOIDStr {
--#ifdef DEBUG
-- const NSSUTF8 *tag;
-- const NSSUTF8 *expl;
--#endif /* DEBUG */
-- NSSItem data;
--};
--
--/*
- * nssAttributeTypeAliasTable
- *
- * Attribute types are passed around as oids (at least in the X.500
diff --git a/patches/src680/zoom-combobox.diff b/patches/src680/zoom-combobox.diff
deleted file mode 100755
index a0a36069b..000000000
--- a/patches/src680/zoom-combobox.diff
+++ /dev/null
@@ -1,724 +0,0 @@
-Index: sfx2/source/appl/app.src
-===================================================================
-RCS file: /cvs/framework/sfx2/source/appl/app.src,v
-retrieving revision 1.88
-diff -u -r1.88 app.src
---- sfx2/source/appl/app.src 17 Jul 2003 13:14:26 -0000 1.88
-+++ sfx2/source/appl/app.src 20 Aug 2003 21:36:38 -0000
-@@ -3657,6 +3657,14 @@
- };
- ToolBoxItem
- {
-+ Identifier = SID_ATTR_ZOOM ;
-+ };
-+ ToolBoxItem
-+ {
-+ Type = TOOLBOXITEM_SEPARATOR ;
-+ };
-+ ToolBoxItem
-+ {
- Identifier = SID_CLOSEDOC;
- Hide = TRUE;
- };
-Index: svx/inc/helpid.hrc
-===================================================================
-RCS file: /cvs/graphics/svx/inc/helpid.hrc,v
-retrieving revision 1.38
-diff -u -r1.38 helpid.hrc
---- svx/inc/helpid.hrc 30 Apr 2003 08:23:57 -0000 1.38
-+++ svx/inc/helpid.hrc 17 Aug 2003 16:31:26 -0000
-@@ -526,6 +526,7 @@
- #define HID_HANGULDLG_BUTTON_CHANGEALL (HID_SVX_EXT0_START + 25)
- #define HID_SPLDLG_EDIT_NEWWORD (HID_SVX_EXT0_START + 26)
- #define HID_HANGULDLG_EDIT_NEWWORD (HID_SVX_EXT0_START + 27)
-+#define HID_ZOOM_COMBOBOX (HID_SVX_EXT0_START + 28)
-
-
- // -----------------------------------------------------------------------
-@@ -806,7 +806,8 @@
- #endif
-
- // overrun check 2
--#define ACT_SVX_HID_END2 HID_SVX_CONFIG_RENAME_TOOLBAR_ITEM
-+//#define ACT_SVX_HID_END2 HID_SVX_CONFIG_RENAME_TOOLBAR_ITEM
-+#define ACT_SVX_HID_END2 HID_ZOOM_COMBOBOX
-
- #if ACT_SVX_HID2_END > HID_SVX_EXT0_END
- #error resource overrun in #line, #file
-
-Index: svx/source/tbxctrls/tbcontrl.src
-===================================================================
-RCS file: /cvs/graphics/svx/source/tbxctrls/tbcontrl.src,v
-retrieving revision 1.35
-diff -u -r1.35 tbcontrl.src
---- svx/source/tbxctrls/tbcontrl.src 17 Jul 2003 11:33:35 -0000 1.35
-+++ svx/source/tbxctrls/tbcontrl.src 17 Aug 2003 16:31:38 -0000
-@@ -263,6 +263,16 @@
- Border = TRUE ;
- Hide = TRUE ;
- };
-+ComboBox RID_SVXTBX_ZOOM
-+{
-+ HelpId = HID_ZOOM_COMBOBOX ;
-+ Size = MAP_APPFONT ( 30 , 86 ) ;
-+ DropDown = TRUE ;
-+ AutoHScroll = TRUE ;
-+ DDExtraWidth = TRUE ;
-+ Border = TRUE ;
-+ Hide = TRUE ;
-+};
- String RID_SVXSTR_EXTRAS_CHARBACKGROUND
- {
- Text = "Zeichenhintergrund" ;
-
---- sw/source/ui/app/swmodule.cxx 2003-07-07 18:10:23.000000000 +0200
-+++ sw/source/ui/app/swmodule.cxx 2003-08-13 22:52:29.000000000 +0200
-@@ -121,6 +121,9 @@
- #ifndef _SVX_VERT_TEXT_TBXCTRL_HXX
- #include <svx/verttexttbxctrl.hxx>
- #endif
-+#ifndef _SVX_ZOOMTBXCTRL_HXX
-+#include <svx/zoomtbxctrl.hxx>
-+#endif
- #ifndef _CONTDLG_HXX_ //autogen
- #include <svx/contdlg.hxx>
- #endif
-@@ -573,6 +576,7 @@
- SvxFontSizeMenuControl::RegisterControl(SID_ATTR_CHAR_FONTHEIGHT, pMod );
-
- SwZoomControl::RegisterControl(SID_ATTR_ZOOM, pMod );
-+ SvxZoomToolBoxControl::RegisterControl(SID_ATTR_ZOOM, pMod);
- SwPreviewZoomControl::RegisterControl(FN_PREVIEW_ZOOM, pMod);
- SwHyperlinkControl::RegisterControl(FN_STAT_HYPERLINKS, pMod );
- SvxPosSizeStatusBarControl::RegisterControl(0, pMod );
-
-Index: sw/source/ui/uiview/pview.src
-===================================================================
-RCS file: /cvs/sw/sw/source/ui/uiview/pview.src,v
-retrieving revision 1.28
-diff -u -r1.28 pview.src
---- sw/source/ui/uiview/pview.src 17 Jul 2003 12:04:56 -0000 1.28
-+++ sw/source/ui/uiview/pview.src 20 Aug 2003 21:47:00 -0000
-@@ -1043,11 +1043,6 @@
- Identifier = SID_ZOOM_IN;
- HelpID = SID_ZOOM_IN ;
- };
-- ToolBoxItem
-- {
-- Identifier = FN_PREVIEW_ZOOM;
-- HelpID = HID_PREVIEW_ZOOM ;
-- };
- ToolBoxItem { Type = TOOLBOXITEM_SEPARATOR ; };
- ToolBoxItem
- {
-Index: sc/source/ui/app/scdll.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/app/scdll.cxx,v
-retrieving revision 1.14
-diff -u -r1.14 scdll.cxx
---- sc/source/ui/app/scdll.cxx 26 Mar 2003 18:05:47 -0000 1.14
-+++ sc/source/ui/app/scdll.cxx 18 Aug 2003 19:08:47 -0000
-@@ -105,6 +105,7 @@
- #include <svx/selctrl.hxx>
- #include <svx/insctrl.hxx>
- #include <svx/zoomctrl.hxx>
-+#include <svx/zoomtbxctrl.hxx>
- #include <svx/flditem.hxx>
- #include <svx/modctrl.hxx>
- #include <svx/pszctrl.hxx>
-@@ -243,6 +244,7 @@
- SvxInsertStatusBarControl ::RegisterControl(SID_ATTR_INSERT, pMod);
- SvxSelectionModeControl ::RegisterControl(SID_STATUS_SELMODE, pMod);
- SvxZoomStatusBarControl ::RegisterControl(SID_ATTR_ZOOM, pMod);
-+ SvxZoomToolBoxControl ::RegisterControl(SID_ATTR_ZOOM, pMod);
- SvxModifyControl ::RegisterControl(SID_DOC_MODIFIED, pMod);
- SvxPosSizeStatusBarControl ::RegisterControl(SID_ATTR_SIZE, pMod);
-
-Index: sd/source/ui/app/sddll2.cxx
-===================================================================
-RCS file: /cvs/graphics/sd/source/ui/app/sddll2.cxx,v
-retrieving revision 1.10
-diff -u -r1.10 sddll2.cxx
---- sd/source/ui/app/sddll2.cxx 13 Sep 2002 13:42:54 -0000 1.10
-+++ sd/source/ui/app/sddll2.cxx 18 Aug 2003 19:03:03 -0000
-@@ -114,6 +114,9 @@
- #ifndef _SVX_ZOOMCTRL_HXX //autogen
- #include <svx/zoomctrl.hxx>
- #endif
-+#ifndef _SVX_ZOOMTBXCTRL_HXX //autogen
-+#include <svx/zoomtbxctrl.hxx>
-+#endif
- #ifndef _SVX_PSZCTRL_HXX //autogen
- #include <svx/pszctrl.hxx>
- #endif
-@@ -242,6 +245,7 @@
-
- // StatusBarControls registrieren
- SvxZoomStatusBarControl::RegisterControl( SID_ATTR_ZOOM, pMod );
-+ SvxZoomToolBoxControl::RegisterControl( SID_ATTR_ZOOM, pMod );
- SvxPosSizeStatusBarControl::RegisterControl( SID_ATTR_SIZE, pMod );
- SvxModifyControl::RegisterControl( SID_DOC_MODIFIED, pMod );
- //SvxInsertStatusBarControl::RegisterControl(0, pModd);
-Index: starmath/source/smdll.cxx
-===================================================================
-RCS file: /cvs/sw/starmath/source/smdll.cxx,v
-retrieving revision 1.5
-diff -u -r1.5 smdll.cxx
---- starmath/source/smdll.cxx 12 Oct 2001 15:54:37 -0000 1.5
-+++ starmath/source/smdll.cxx 18 Aug 2003 19:10:56 -0000
-@@ -73,6 +73,9 @@
- #ifndef _SVX_ZOOMCTRL_HXX //autogen
- #include <svx/zoomctrl.hxx>
- #endif
-+#ifndef _SVX_ZOOMTBXCTRL_HXX //autogen
-+#include <svx/zoomtbxctrl.hxx>
-+#endif
- #ifndef _SFX_OBJFAC_HXX
- #include <sfx2/docfac.hxx>
- #endif
-@@ -147,6 +150,7 @@
- SmViewShell::RegisterInterface(pp);
-
- SvxZoomStatusBarControl::RegisterControl( SID_ATTR_ZOOM, pp );
-+ SvxZoomToolBoxControl::RegisterControl( SID_ATTR_ZOOM, pp );
- SvxModifyControl::RegisterControl( SID_TEXTSTATUS, pp );
- SvxUndoRedoControl::RegisterControl( SID_UNDO, pp );
- SvxUndoRedoControl::RegisterControl( SID_REDO, pp );
-Index: svx/prj/d.lst
-===================================================================
-RCS file: /cvs/graphics/svx/prj/d.lst,v
-retrieving revision 1.74
-diff -u -3 -p -r1.74 d.lst
---- svx/prj/d.lst 29 Apr 2003 16:30:00 -0000 1.74
-+++ svx/prj/d.lst 19 Aug 2003 15:25:12 -0000
-@@ -487,6 +487,7 @@ hedabu: ..\inc\xexch.hxx %_DEST%\inc%_EX
- hedabu: ..\inc\zoom.hxx %_DEST%\inc%_EXT%\svx\zoom.hxx
- hedabu: ..\inc\zoomctrl.hxx %_DEST%\inc%_EXT%\svx\zoomctrl.hxx
- hedabu: ..\inc\zoomitem.hxx %_DEST%\inc%_EXT%\svx\zoomitem.hxx
-+hedabu: ..\inc\zoomtbxctrl.hxx %_DEST%\inc%_EXT%\svx\zoomtbxctrl.hxx
- hedabu: ..\source\items\boxobj.hxx %_DEST%\inc%_EXT%\svx\boxobj.hxx
- hedabu: ..\inc\itemtype.hxx %_DEST%\inc%_EXT%\svx\itemtype.hxx
- hedabu: ..\inc\outliner.hxx %_DEST%\inc%_EXT%\svx\outliner.hxx
-
---- sfx2/inc/sfxsids.hrc 2005-02-07 22:41:53.005932054 -0800
-+++ sfx2/inc/sfxsids.hrc 2005-02-07 22:42:55.732927520 -0800
-@@ -1114,6 +1116,7 @@
-
- #define SID_SVX_START (SID_LIB_START + 0)
-
-+#define SID_ATTR_ZOOM (SID_SVX_START + 0)
- #define SID_ATTR_CHAR (SID_SVX_START + 6)
- #define SID_ATTR_CHAR_FONT (SID_SVX_START + 7)
- #define SID_ATTR_CHAR_POSTURE (SID_SVX_START + 8)
-
---- svx/inc/svxids.hrc 8 Sep 2005 19:01:37 -0000 1.102
-+++ svx/inc/svxids.hrc 24 Oct 2005 14:48:34 -0000
-@@ -434,7 +434,7 @@
- // --------------------------------------------------------------------------
-
-
--#define SID_ATTR_ZOOM ( SID_SVX_START + 0 )
-+//#define SID_ATTR_ZOOM ( SID_SVX_START + 0 ) -> sfxsids.hrc
- #define SID_ATTR_BRUSH ( SID_SVX_START + 1 )
- #define SID_ATTR_TABSTOP ( SID_SVX_START + 2 )
- #define SID_ATTR_TABSTOP_DEFAULTS ( SID_SVX_START + 3 )
-
---- svx/source/tbxctrls/makefile.mk 2005-02-10 21:18:28.391273964 -0800
-+++ svx/source/tbxctrls/makefile.mk 2005-02-10 21:18:58.339248608 -0800
-@@ -97,7 +97,8 @@
- $(SLO)$/tbxdrctl.obj \
- $(SLO)$/verttexttbxctrl.obj \
- $(SLO)$/toolbarmenu.obj \
-- $(SLO)$/tbxcolor.obj
-+ $(SLO)$/tbxcolor.obj \
-+ $(SLO)$/zoomtbxctrl.obj
-
- SRS1NAME=$(TARGET)
- SRC1FILES = \
-
---- svx/source/dialog/zoom.src 2004-06-25 17:36:12.000000000 +0530
-+++ svx/source/dialog/zoom.src 2005-03-29 14:29:01.000000000 +0530
-@@ -75,26 +75,17 @@
- {
- Pos = MAP_APPFONT ( 12 , 14 ) ;
- Size = MAP_APPFONT ( 80 , 10 ) ;
-- Text [ de ] = "~Ganze Seite" ;
-- Text [ en-US ] = "~Entire Page" ;
-- Text [ x-comment ] = " ";
- };
- RadioButton BTN_PAGE_WIDTH
- {
- Pos = MAP_APPFONT ( 12 , 27 ) ;
- Size = MAP_APPFONT ( 80 , 10 ) ;
-- Text [ de ] = "Seiten~breite" ;
-- Text [ en-US ] = "~Page Width" ;
-- Text [ x-comment ] = " ";
- };
- RadioButton BTN_OPTIMAL
- {
- Pos = MAP_APPFONT ( 12 , 40 ) ;
- Size = MAP_APPFONT ( 80 , 10 ) ;
-- Text [ de ] = "~Optimal" ;
-- Text [ en-US ] = "~Optimal" ;
-- Text [ x-comment ] = " ";
- };
- RadioButton BTN_200
- {
-
---- svx/source/dialog/zoom.cxx 2005-01-21 22:26:06.000000000 +0530
-+++ svx/source/dialog/zoom.cxx 2005-03-29 17:57:10.766137558 +0530
-@@ -291,7 +291,11 @@
- aOKBtn.SetClickHdl( LINK( this, SvxZoomDialog, OKHdl ) );
- aUserEdit.SetModifyHdl( LINK( this, SvxZoomDialog, SpinHdl ) );
-
-+ aOptimalBtn.SetText( String( SVX_RESSTR ( RID_SVX_ZOOM_OPTIMAL ) ) );
-+ aPageWidthBtn.SetText( String( SVX_RESSTR ( RID_SVX_ZOOM_PAGEWIDTH ) ) );
-+ aWholePageBtn.SetText( String( SVX_RESSTR ( RID_SVX_ZOOM_WHOLEPAGE ) ) );
-+
- // Default-Werte
- USHORT nValue = 100;
- USHORT nMin = 10;
-
---- svx/inc/dialogs.hrc 2005-02-02 19:27:13.000000000 +0530
-+++ svx/inc/dialogs.hrc 2005-03-29 14:16:08.000000000 +0530
-@@ -243,6 +243,8 @@
-
- // fuer ToolboxControl-Style
- #define RID_SVXTBX_STYLE (RID_SVX_START + 120)
-+// for Zoom Toolbox Control
-+#define RID_SVXTBX_ZOOM (RID_SVX_START + 121)
-
- #define RID_SVXDLG_HYPERLINK (RID_SVX_START + 140)
- #define RID_SVXDLG_PASSWORD (RID_SVX_START + 141)
-@@ -1133,6 +1135,11 @@
- #define RID_SVXSTR_COLOR_CONFIG_SAVE2 (RID_SVX_START + 854)
- #define RID_SVXSTR_COLOR_CONFIG_DELETE (RID_SVX_START + 855)
-
-+// Zoom ComboBox Strings
-+#define RID_SVX_ZOOM_PAGEWIDTH (RID_SVX_START + 856)
-+#define RID_SVX_ZOOM_WHOLEPAGE (RID_SVX_START + 857)
-+#define RID_SVX_ZOOM_OPTIMAL (RID_SVX_START + 858)
-+
- // Accessibility strings. The actual string ids are defined in
- // svx/inc/accessibility.hrc, the strings are defined in
- // svx/source/accessibility/accessibility.src
-
---- svx/source/tbxctrls/tbcontrl.src 2005-03-30 13:53:11.000000000 +0530
-+++ svx/source/tbxctrls/tbcontrl.src 2005-03-29 14:28:57.000000000 +0530
-@@ -165,6 +165,27 @@
- Text [ de ] = "Seiten";
- Text [ en-US ] = "Pages";
- };
-+String RID_SVX_ZOOM_WHOLEPAGE
-+{
-+ Text [ de ] = "~Ganze Seite" ;
-+ Text [ en-US ] = "~Entire Page" ;
-+ Text [ x-comment ] = " ";
-+
-+};
-+String RID_SVX_ZOOM_PAGEWIDTH
-+{
-+ Text [ de ] = "Seiten~breite" ;
-+ Text [ en-US ] = "~Page Width" ;
-+ Text [ x-comment ] = " ";
-+
-+};
-+String RID_SVX_ZOOM_OPTIMAL
-+{
-+ Text [ de ] = "~Optimal" ;
-+ Text [ en-US ] = "~Optimal" ;
-+ Text [ x-comment ] = " ";
-+
-+};
- Image RID_SVXIMG_GRAF_RED
- {
- ImageBitmap = Bitmap { File = "sc10865.bmp" ; };
-
---- /dev/null 2004-08-25 23:04:59.000000000 +0530
-+++ svx/source/tbxctrls/zoomtbxctrl.cxx 2005-04-01 15:02:35.346989875 +0530
-@@ -0,0 +1,291 @@
-+/*************************************************************************
-+ *
-+ * $RCSfile$
-+ *
-+ * $Revision$
-+ *
-+ * last change: $Author$ $Date$
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+
-+#include <string> // HACK: prevent conflict between STLPORT and Workshop headers
-+
-+#ifndef _SV_TOOLBOX_HXX
-+#include <vcl/toolbox.hxx>
-+#endif
-+#ifndef _SFXAPP_HXX
-+#include <sfx2/app.hxx>
-+#endif
-+#ifndef _SFXDISPATCH_HXX
-+#include <sfx2/dispatch.hxx>
-+#endif
-+#ifndef _SFXVIEWSH_HXX
-+#include <sfx2/viewsh.hxx>
-+#endif
-+#ifndef _SV_COMBOBOX_HXX
-+#include <vcl/combobox.hxx>
-+#endif
-+
-+#include "dialogs.hrc"
-+
-+#include "zoomtbxctrl.hxx"
-+#include "zoomitem.hxx"
-+#include "dialmgr.hxx"
-+
-+#define MINZOOM 20
-+#define MAXZOOM 600
-+#define DEFAULT_ZOOM 100
-+
-+using namespace ::rtl;
-+using namespace ::com::sun::star::uno;
-+using namespace ::com::sun::star::beans;
-+using namespace ::com::sun::star::frame;
-+
-+using namespace ::com::sun::star::frame;
-+
-+SFX_IMPL_TOOLBOX_CONTROL( SvxZoomToolBoxControl, SvxZoomItem);
-+
-+class SvxZoomBox_Impl : public ComboBox
-+{
-+ USHORT nSlotId;
-+ BOOL bRelease;
-+ OUString maWholePage;
-+ OUString maOptimal;
-+ OUString maPageWidth;
-+
-+ ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProvider > m_xDispatchProvider;
-+
-+public:
-+ SvxZoomBox_Impl( Window* pParent, USHORT nSlot, const Reference< XDispatchProvider >& rDispatchProvider );
-+ ~SvxZoomBox_Impl();
-+
-+protected:
-+ virtual void Select();
-+ virtual long Notify( NotifyEvent& rNEvt );
-+
-+ void ReleaseFocus();
-+
-+};
-+
-+static String RemoveTilda( USHORT nId )
-+{
-+ return String( SVX_RESSTR ( nId ) ).EraseAllChars('~');
-+}
-+
-+SvxZoomBox_Impl::SvxZoomBox_Impl(
-+ Window* pParent,
-+ USHORT nSlot,
-+ const Reference< XDispatchProvider >& rDispatchProvider ):
-+ ComboBox( pParent, SVX_RES(RID_SVXTBX_ZOOM)),
-+ nSlotId(nSlot),
-+ bRelease(TRUE),
-+ m_xDispatchProvider( rDispatchProvider ),
-+ maPageWidth( RemoveTilda ( RID_SVX_ZOOM_PAGEWIDTH ) ),
-+ maOptimal( RemoveTilda ( RID_SVX_ZOOM_OPTIMAL ) ),
-+ maWholePage( RemoveTilda ( RID_SVX_ZOOM_WHOLEPAGE ) )
-+{
-+ EnableAutocomplete( FALSE );
-+ USHORT aZoomValues[] =
-+ {25, 50, 75, 100, 150, 200 };
-+ for(USHORT i = 0; i < sizeof(aZoomValues)/sizeof(USHORT); i++)
-+ {
-+ String sEntry = String::CreateFromInt32( aZoomValues[i] );
-+ sEntry += '%';
-+ InsertEntry( sEntry );
-+ }
-+ InsertEntry( maPageWidth );
-+ InsertEntry( maOptimal );
-+ InsertEntry( maWholePage );
-+}
-+
-+SvxZoomBox_Impl::~SvxZoomBox_Impl()
-+{}
-+
-+void SvxZoomBox_Impl::Select()
-+{
-+ if ( !IsTravelSelect() )
-+ {
-+ String sEntry( GetText() );
-+ sEntry.EraseAllChars( '%' );
-+ SvxZoomType ZoomType;
-+ USHORT nZoom = DEFAULT_ZOOM;
-+ if( maWholePage == OUString( sEntry ) )
-+ {
-+ nSlotId = SID_SIZE_PAGE;
-+ ZoomType = SVX_ZOOM_WHOLEPAGE;
-+ }
-+ else if( maPageWidth == OUString( sEntry ) )
-+ {
-+ nSlotId = SID_SIZE_PAGE_WIDTH;
-+ ZoomType = SVX_ZOOM_PAGEWIDTH;
-+ }
-+ else if( maOptimal == OUString( sEntry ) )
-+ {
-+ nSlotId = SID_SIZE_ALL;
-+ ZoomType = SVX_ZOOM_OPTIMAL;
-+ }
-+ else
-+ {
-+ nZoom = (USHORT)sEntry.ToInt32();
-+ if(nZoom < MINZOOM)
-+ nZoom = MINZOOM;
-+ if(nZoom > MAXZOOM)
-+ nZoom = MAXZOOM;
-+
-+ nSlotId = SID_ATTR_ZOOM;
-+ ZoomType = SVX_ZOOM_PERCENT;
-+ }
-+
-+ SvxZoomItem aItem ( ZoomType , nZoom, nSlotId );
-+ Any a;
-+ Sequence< PropertyValue > aArgs( 1 );
-+ aArgs[0].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Zoom" ));
-+ aItem.QueryValue( a );
-+ aArgs[0].Value = a;
-+ SfxToolBoxControl::Dispatch(
-+ m_xDispatchProvider,
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:Zoom" )),
-+ aArgs );
-+ }
-+ ReleaseFocus();
-+}
-+
-+
-+long SvxZoomBox_Impl::Notify( NotifyEvent& rNEvt )
-+{
-+ long nHandled = 0;
-+ if ( rNEvt.GetType() == EVENT_KEYINPUT )
-+ {
-+ USHORT nCode = rNEvt.GetKeyEvent()->GetKeyCode().GetCode();
-+ switch ( nCode )
-+ {
-+ case KEY_RETURN:
-+ case KEY_TAB:
-+ {
-+ if ( KEY_TAB == nCode )
-+ bRelease = FALSE;
-+ else
-+ nHandled = 1;
-+ Select();
-+ break;
-+ }
-+
-+ case KEY_ESCAPE:
-+ SetText( GetSavedValue() );
-+ ReleaseFocus();
-+ break;
-+ }
-+ }
-+ else if ( EVENT_LOSEFOCUS == rNEvt.GetType() )
-+ {
-+ Window* pFocusWin = Application::GetFocusWindow();
-+ if ( !HasFocus() && GetSubEdit() != pFocusWin )
-+ SetText( GetSavedValue() );
-+ }
-+
-+ return nHandled ? nHandled : ComboBox::Notify( rNEvt );
-+}
-+
-+void SvxZoomBox_Impl::ReleaseFocus()
-+{
-+ if ( !bRelease )
-+ {
-+ bRelease = TRUE;
-+ return;
-+ }
-+ SfxViewShell* pCurSh = SfxViewShell::Current();
-+
-+ if ( pCurSh )
-+ {
-+ Window* pShellWnd = pCurSh->GetWindow();
-+
-+ if ( pShellWnd )
-+ pShellWnd->GrabFocus();
-+ }
-+}
-+
-+SvxZoomToolBoxControl::SvxZoomToolBoxControl( USHORT nSlotID,
-+ USHORT nID,
-+ ToolBox& rBox )
-+: SfxToolBoxControl( nSlotID, nID, rBox )
-+{
-+}
-+
-+SvxZoomToolBoxControl::~SvxZoomToolBoxControl()
-+{
-+}
-+
-+void SvxZoomToolBoxControl::StateChanged( USHORT nSID,
-+ SfxItemState eState,
-+ const SfxPoolItem* pState )
-+{
-+ USHORT nId = GetId();
-+ GetToolBox().EnableItem( nId, (GetItemState(pState) != SFX_ITEM_DISABLED) );
-+ SvxZoomBox_Impl* pBox = (SvxZoomBox_Impl*)GetToolBox().GetItemWindow( GetId() );
-+ if(SFX_ITEM_AVAILABLE <= eState)
-+ {
-+ String sZoom(String::CreateFromInt32(((const SvxZoomItem*)pState)->GetValue()));
-+ sZoom += '%';
-+ pBox->SetText(sZoom);
-+ pBox->SaveValue();
-+ }
-+}
-+
-+Window* SvxZoomToolBoxControl::CreateItemWindow( Window *pParent )
-+{
-+
-+ SvxZoomBox_Impl* pRet = new SvxZoomBox_Impl( pParent, GetSlotId(), Reference< XDispatchProvider >( m_xFrame->getController(), UNO_QUERY ));
-+
-+ return pRet;
-+}
-
---- /dev/null 2004-08-25 23:04:59.000000000 +0530
-+++ svx/inc/zoomtbxctrl.hxx 2005-04-07 16:50:49.483537921 +0530
-@@ -0,0 +1,90 @@
-+/*************************************************************************
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ *
-+ * The Contents of this file are made available subject to the terms of
-+ * either of the following licenses
-+ *
-+ * - GNU Lesser General Public License Version 2.1
-+ * - Sun Industry Standards Source License Version 1.1
-+ *
-+ * Sun Microsystems Inc., October, 2000
-+ *
-+ * GNU Lesser General Public License Version 2.1
-+ * =============================================
-+ * Copyright 2000 by Sun Microsystems, Inc.
-+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License version 2.1, as published by the Free Software Foundation.
-+ *
-+ * This library 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 for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ *
-+ *
-+ * Sun Industry Standards Source License Version 1.1
-+ * =================================================
-+ * The contents of this file are subject to the Sun Industry Standards
-+ * Source License Version 1.1 (the "License"); You may not use this file
-+ * except in compliance with the License. You may obtain a copy of the
-+ * License at http://www.openoffice.org/license.html.
-+ *
-+ * Software provided under this License is provided on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-+ * See the License for the specific provisions governing your rights and
-+ * obligations concerning the Software.
-+ *
-+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-+ *
-+ * Copyright: 2000 by Sun Microsystems, Inc.
-+ *
-+ * All Rights Reserved.
-+ *
-+ * Contributor(s): _______________________________________
-+ *
-+ *
-+ ************************************************************************/
-+#ifndef _SVX_ZOOMTBXCTRL_HXX
-+#define _SVX_ZOOMTBXCTRL_HXX
-+
-+#ifndef _SFXTBXCTRL_HXX
-+#include <sfx2/tbxctrl.hxx>
-+#endif
-+
-+#ifndef INCLUDED_SVXDLLAPI_H
-+#include <svx/svxdllapi.h>
-+#endif
-+
-+class SVX_DLLPUBLIC SvxZoomToolBoxControl : public SfxToolBoxControl
-+{
-+public:
-+ SFX_DECL_TOOLBOX_CONTROL();
-+
-+ SvxZoomToolBoxControl( USHORT nSlotID,
-+ USHORT nID,
-+ ToolBox& rBox
-+ );
-+ ~SvxZoomToolBoxControl();
-+
-+ virtual void StateChanged( USHORT nSID,
-+ SfxItemState eState,
-+ const SfxPoolItem* pState );
-+
-+ virtual Window* CreateItemWindow( Window *pParent );
-+};
-+
-+#endif // _SVX_ZOOMTBXCTRL_HXX
diff --git a/patches/test/ArtificialBoldItalic.diff b/patches/test/ArtificialBoldItalic.diff
deleted file mode 100644
index 89e291582..000000000
--- a/patches/test/ArtificialBoldItalic.diff
+++ /dev/null
@@ -1,751 +0,0 @@
-Index: psprint/inc/psprint/fontcache.hxx
-===================================================================
-RCS file: /cvs/gsl/psprint/inc/psprint/fontcache.hxx,v
-retrieving revision 1.5
-diff -u -r1.5 fontcache.hxx
---- psprint/inc/psprint/fontcache.hxx 31 Jan 2005 08:58:41 -0000 1.5
-+++ psprint/inc/psprint/fontcache.hxx 24 Aug 2005 14:34:56 -0000
-@@ -110,7 +110,6 @@
-
- void copyPrintFont( const PrintFontManager::PrintFont* pFrom, PrintFontManager::PrintFont* pTo ) const;
- bool equalsPrintFont( const PrintFontManager::PrintFont* pLeft, PrintFontManager::PrintFont* pRight ) const;
-- PrintFontManager::PrintFont* clonePrintFont( const PrintFontManager::PrintFont* pFont ) const;
-
- void createCacheDir( int nDirID );
- public:
-@@ -130,6 +129,8 @@
- void flush();
-
- void updateDirTimestamp( int nDirID );
-+
-+ PrintFontManager::PrintFont* clonePrintFont( const PrintFontManager::PrintFont* pFont ) const;
- };
-
- } // namespace psp
-Index: psprint/inc/psprint/fontmanager.hxx
-===================================================================
-RCS file: /cvs/gsl/psprint/inc/psprint/fontmanager.hxx,v
-retrieving revision 1.22
-diff -u -r1.22 fontmanager.hxx
---- psprint/inc/psprint/fontmanager.hxx 31 Jan 2005 08:58:54 -0000 1.22
-+++ psprint/inc/psprint/fontmanager.hxx 24 Aug 2005 14:35:04 -0000
-@@ -243,6 +243,8 @@
- KernPair() : first( 0 ), second( 0 ), kern_x( 0 ), kern_y( 0 ) {}
- };
-
-+class FontCache;
-+
- // a class to manage printable fonts
- // aims are type1 and truetype fonts
-
-@@ -392,6 +394,7 @@
- fontID m_nNextFontID;
- std::hash_map< fontID, PrintFont* > m_aFonts;
- std::hash_map< int, family::type > m_aFamilyTypes;
-+ std::hash_map< int, int > m_aFamilyStyles;
- std::list< rtl::OUString > m_aPrinterDrivers;
- std::list< rtl::OString > m_aFontDirectories;
- std::list< int > m_aPrivateFontDirectories;
-@@ -434,7 +437,7 @@
-
- PrintFont* getFont( fontID nID ) const
- {
-- std::hash_map< int, PrintFont* >::const_iterator it;
-+ std::hash_map< fontID, PrintFont* >::const_iterator it;
- it = m_aFonts.find( nID );
- return it == m_aFonts.end() ? NULL : it->second;
- }
-@@ -466,7 +469,14 @@
-
- PrintFontManager();
- ~PrintFontManager();
-+
-+ PrintFont* makeArtificialFont(const PrintFont* pFont, int type ) const ;
-+ void updateFamilyStyles( PrintFontManager::PrintFont* pFont );
-+ void createAndProcessArtFont( PrintFont* pFont, int type );
-+
- public:
-+
-+
- static PrintFontManager& get(); // one instance only
-
- int addFontFile( const rtl::OString& rFileName, int nFaceNum );
-Index: psprint/source/fontmanager/fontmanager.cxx
-===================================================================
-RCS file: /cvs/gsl/psprint/source/fontmanager/fontmanager.cxx,v
-retrieving revision 1.58
-diff -u -r1.58 fontmanager.cxx
---- psprint/source/fontmanager/fontmanager.cxx 12 Apr 2005 12:11:17 -0000 1.58
-+++ psprint/source/fontmanager/fontmanager.cxx 24 Aug 2005 15:05:45 -0000
-@@ -147,10 +147,117 @@
- using namespace osl;
- using namespace rtl;
-
-+
- /*
- * static helpers
- */
-
-+PrintFontManager::PrintFont*
-+PrintFontManager::makeArtificialFont(const PrintFont* pFont, int type ) const
-+{
-+ // type 0 = bold, 1 = italic, 2 = bold/italic
-+ if ( type < 0 || type > 2 )
-+ return NULL;
-+ static const char* types[] = {"bold","italic","bold-italic" };
-+ const ::rtl::OUString& fName =
-+ m_pAtoms->getString( ATOM_FAMILYNAME, pFont->m_nFamilyName);
-+
-+ OUString sName(m_pAtoms->getString(
-+ ATOM_PSNAME, pFont->m_nPSName), RTL_TEXTENCODING_UTF8 );
-+ OSL_TRACE("Making artificial font for psname %s in family %s",
-+ ::rtl::OUStringToOString( sName,
-+ RTL_TEXTENCODING_ASCII_US ).pData->buffer,
-+ ::rtl::OUStringToOString( fName,
-+ RTL_TEXTENCODING_ASCII_US ).pData->buffer, types[type] );
-+ PrintFont* pArt = m_pFontCache->clonePrintFont(pFont);
-+ switch (type)
-+ {
-+ case 0:
-+ {
-+ // Bold
-+ OSL_TRACE("Creating bold");
-+ pArt->m_eWeight = weight::Bold;
-+ pArt->m_nPSName = m_pAtoms->getAtom(ATOM_PSNAME,
-+ sName.concat(OUString::createFromAscii("-Bold") ), sal_True );
-+ break;
-+ }
-+ case 1:
-+ {
-+ OSL_TRACE("Creating Italic");
-+ // Italic
-+ pArt->m_eItalic = italic::Italic;
-+ pArt->m_nPSName = m_pAtoms->getAtom(ATOM_PSNAME,
-+ sName.concat(OUString::createFromAscii("-Italic")), sal_True );
-+ break;
-+ }
-+ case 2:
-+ {
-+ OSL_TRACE("Creating Italic-Bold");
-+ // ItalicBold
-+ if ( pFont->m_eItalic == italic::Upright )
-+ pArt->m_eItalic = italic::Italic;
-+ if ( pFont->m_eWeight <= weight::Medium )
-+ pArt->m_eWeight = weight::Bold;
-+ pArt->m_nPSName = m_pAtoms->getAtom(ATOM_PSNAME,
-+ sName.concat(OUString::createFromAscii("-ItalicBold") ), sal_True );
-+ break;
-+ }
-+ default:
-+ return NULL;
-+ }
-+ return pArt;
-+}
-+
-+void PrintFontManager::updateFamilyStyles( PrintFontManager::PrintFont* pFont )
-+{
-+ int flags = m_aFamilyStyles[ pFont->m_nFamilyName ];
-+ if ( pFont->m_eWeight > weight::Medium )
-+ {
-+ if ( pFont->m_eItalic > italic::Upright &&
-+ pFont->m_eItalic < italic::Unknown )
-+ {
-+ flags = flags | 1;
-+ }
-+ else
-+ flags = flags | 2; // bold
-+ }
-+ else if ( pFont->m_eItalic > italic::Upright &&
-+ pFont->m_eItalic < italic::Unknown )
-+ {
-+ flags = flags | 4; //italic
-+ }
-+ m_aFamilyStyles[ pFont->m_nFamilyName ] = flags;
-+}
-+
-+void PrintFontManager::createAndProcessArtFont( PrintFontManager::PrintFont* pFont, int type )
-+{
-+ PrintFontManager::PrintFont* result = NULL;
-+ if ( pFont )
-+ {
-+ result = makeArtificialFont( pFont, type );
-+
-+ if ( result )
-+ {
-+ fontID aFont = m_nNextFontID++;
-+ if( result->m_eType == fonttype::Type1 )
-+ m_aFontFileToFontID[ static_cast<Type1FontFile*>(result)->m_aFontFile ].insert( aFont );
-+ else if( result->m_eType == fonttype::TrueType )
-+ m_aFontFileToFontID[ static_cast<TrueTypeFontFile*>(result)->m_aFontFile ].insert( aFont );
-+ else if( (result)->m_eType == fonttype::Builtin )
-+ m_aFontFileToFontID[ static_cast<BuiltinFont*>(result)->m_aMetricFile ].insert( aFont );
-+ m_aFonts[ aFont ] = result;
-+ // track what family's have what styles {italic, bold,
-+ // italic-bold }
-+ updateFamilyStyles( result);
-+ OSL_TRACE("added fontID %d for font file %s",
-+ aFont, getFontFile( result ).getStr() );
-+ // TODO there are times when we may need to pass true here
-+ // TODO should really cache these items
-+ //m_pFontCache->updateFontCacheEntry( result, false );
-+ }
-+
-+ }
-+}
- inline sal_uInt16 getUInt16BE( const sal_uInt8*& pBuffer )
- {
- sal_uInt16 nRet = (sal_uInt16)pBuffer[1] |
-@@ -1409,7 +1516,7 @@
- fontID PrintFontManager::findFontBuiltinID( int nPSNameAtom ) const
- {
- fontID nID = 0;
-- ::std::hash_map< int, PrintFont* >::const_iterator it;
-+ ::std::hash_map< fontID, PrintFont* >::const_iterator it;
- for( it = m_aFonts.begin(); nID == 0 && it != m_aFonts.end(); ++it )
- {
- if( it->second->m_eType == fonttype::Builtin &&
-@@ -1430,7 +1537,7 @@
- {
- for( ::std::set< fontID >::const_iterator font_it = set_it->second.begin(); font_it != set_it->second.end() && ! nID; ++font_it )
- {
-- ::std::hash_map< int, PrintFont* >::const_iterator it = m_aFonts.find( *font_it );
-+ ::std::hash_map< fontID, PrintFont* >::const_iterator it = m_aFonts.find( *font_it );
- if( it != m_aFonts.end() )
- {
- switch( it->second->m_eType )
-@@ -1576,12 +1683,13 @@
-
- void PrintFontManager::getFontAttributesFromXLFD( PrintFont* pFont, const std::list< OString >& rXLFDs ) const
- {
-+
- bool bFamilyName = false;
-
- std::list< XLFDEntry > aXLFDs;
-
- parseXLFD_appendAliases( rXLFDs, aXLFDs );
--
-+
- for( std::list< XLFDEntry >::const_iterator it = aXLFDs.begin();
- it != aXLFDs.end(); ++it )
- {
-@@ -1864,7 +1972,7 @@
-
- ::std::list< OUString > aNames;
- analyzeTrueTypeFamilyName( pTTFont, aNames );
--
-+
- // set family name from XLFD if possible
- if( ! pFont->m_nFamilyName )
- {
-@@ -2113,6 +2221,7 @@
- m_aFonts.clear();
- m_aFontDirectories.clear();
- m_aPrivateFontDirectories.clear();
-+ m_aFamilyStyles.clear();
- }
-
- #if OSL_DEBUG_LEVEL > 1
-@@ -2233,7 +2342,6 @@
-
- // fill XLFD aliases from fonts.alias files
- initFontsAlias();
--
- // search for font files in each path
- std::list< OString >::iterator dir_it;
- // protect against duplicate paths
-@@ -2267,6 +2375,9 @@
- m_aFontFileToFontID[ static_cast<TrueTypeFontFile*>(*it)->m_aFontFile ].insert( aFont );
- else if( (*it)->m_eType == fonttype::Builtin )
- m_aFontFileToFontID[ static_cast<BuiltinFont*>(*it)->m_aMetricFile ].insert( aFont );
-+ // track what family's have what styles {italic, bold,
-+ // italic-bold }
-+ updateFamilyStyles( *it );
- #ifdef DEBUG
- if( (*it)->m_eType == fonttype::Builtin )
- nBuiltinFonts++;
-@@ -2275,6 +2386,7 @@
- OUStringToOString( getFontFamily( aFont ), RTL_TEXTENCODING_MS_1252 ).getStr(),
- getFontFileSysPath( aFont ).getStr() );
- #endif
-+
- }
- if( ! m_pFontCache->scanAdditionalFiles( aPath ) )
- continue;
-@@ -2349,6 +2461,7 @@
- m_aFonts[ aFont ] = *it;
- m_aFontFileToFontID[ aFileName ].insert( aFont );
- m_pFontCache->updateFontCacheEntry( *it, false );
-+ updateFamilyStyles( *it );
- nDirFonts++;
- #if OSL_DEBUG_LEVEL > 1
- fprintf( stderr, "adding font %d: \"%s\" from %s\n", aFont,
-@@ -2398,6 +2511,7 @@
- m_aFontFileToFontID[ static_cast<TrueTypeFontFile*>(*it)->m_aFontFile ].insert( aFont );
- else if( (*it)->m_eType == fonttype::Builtin )
- m_aFontFileToFontID[ static_cast<BuiltinFont*>(*it)->m_aMetricFile ].insert( aFont );
-+ updateFamilyStyles( *it );
- #ifdef DEBUG
- if( (*it)->m_eType == fonttype::Builtin )
- nBuiltinFonts++;
-@@ -2440,6 +2554,7 @@
- {
- m_aFontFileToFontID[ aFileName ].insert( m_nNextFontID );
- m_aFonts[ m_nNextFontID++ ] = *it;
-+ updateFamilyStyles( *it );
- m_pFontCache->updateFontCacheEntry( *it, false );
- #if OSL_DEBUG_LEVEL > 1
- nBuiltinFonts++;
-@@ -2460,21 +2575,90 @@
- #if OSL_DEBUG_LEVEL > 1
- aStep2 = times( &tms );
- #endif
--
-- // part three - fill in family styles
-+ ::std::map< PrintFont*, int > artFontsToCreate;
- ::std::hash_map< fontID, PrintFont* >::iterator font_it;
- for (font_it = m_aFonts.begin(); font_it != m_aFonts.end(); ++font_it)
- {
-+ OSL_TRACE("Processing fontid %d", font_it->first );
-+ const ::rtl::OUString& rFamily =
-+ m_pAtoms->getString( ATOM_FAMILYNAME, font_it->second->m_nFamilyName);
-+ // detect any families that don't have italic, bold or bold-italic
-+ // and create artificial ones.
-+ // This loop is a little inefficient, ideally should be able to
-+ // choose/match the best font to create artificial font from i.e.
-+ // just iterate over the m_aFamilyStyle map and create artificial fonts
-+ // for the missing ones, but to do this would need to cache additional
-+ // info and create some sort of font matching code/routine.
-+ ::std::hash_map< int, int >::iterator styles_it =
-+ m_aFamilyStyles.find( font_it->second->m_nFamilyName );
-+
-+ if ( styles_it != m_aFamilyStyles.end() )
-+ {
-+ if ( styles_it->second == 7 )
-+ {
-+ // nothing to do
-+ OSL_TRACE("family %s has all styles",
-+ OUStringToOString( rFamily, RTL_TEXTENCODING_UTF8 ).getStr());
-+ }
-+ else
-+ {
-+ OUString missing;
-+
-+ if ( (styles_it->second & 1) == 0 )
-+ {
-+ missing += OUString::createFromAscii("Bold-italic ");
-+ // Only create artificial bold-italic from either
-+ // a "normal", bold or italic font.
-+ if ( ( font_it->second->m_eItalic > italic::Upright &&
-+ font_it->second->m_eItalic < italic::Unknown ) ||
-+ ( font_it->second->m_eWeight > weight::Normal ) ||
-+ ( font_it->second->m_eItalic == italic::Upright &&
-+ font_it->second->m_eWeight <= weight::Medium ) )
-+ {
-+ // will create artificial font and
-+ // update fontId, maps & cache (TODO)
-+ // TODO create enum for type
-+ createAndProcessArtFont( font_it->second, 2 );
-+ }
-+
-+ }
-+ if ( (styles_it->second & 2) == 0 )
-+ {
-+ missing += OUString::createFromAscii("Bold ");
-+ // only create a Bold from a "normal" font
-+ if ( font_it->second->m_eItalic == italic::Upright &&
-+ font_it->second->m_eWeight<= weight::Medium )
-+ {
-+ createAndProcessArtFont( font_it->second, 0 );
-+ }
-+
-+ }
-+ if ( (styles_it->second & 4) == 0 )
-+ {
-+ missing += OUString::createFromAscii("Italic ");
-+ if ( font_it->second->m_eItalic == italic::Upright &&
-+ font_it->second->m_eWeight <= weight::Medium )
-+ {
-+ createAndProcessArtFont( font_it->second, 1 );
-+ }
-+ }
-+ }
-+
-+ }
-+ else
-+ {
-+ OSL_TRACE("family %s appears to have no entry.. why?",
-+ OUStringToOString( rFamily, RTL_TEXTENCODING_UTF8 ).getStr() );
-+ }
-+ // part three - fill in family styles
- ::std::hash_map< int, family::type >::const_iterator it =
- m_aFamilyTypes.find( font_it->second->m_nFamilyName );
- if (it != m_aFamilyTypes.end())
- continue;
-- const ::rtl::OUString& rFamily =
-- m_pAtoms->getString( ATOM_FAMILYNAME, font_it->second->m_nFamilyName);
- family::type eType = matchFamilyName( rFamily );
- m_aFamilyTypes[ font_it->second->m_nFamilyName ] = eType;
- }
--
-+
- #if OSL_DEBUG_LEVEL > 1
- aStep3 = times( &tms );
- fprintf( stderr, "PrintFontManager::initialize: collected %d fonts (%d builtin, %d cached)\n", m_aFonts.size(), nBuiltinFonts, nCached );
-Index: psprint/source/fontmanager/fontconfig.cxx
-===================================================================
-RCS file: /cvs/gsl/psprint/source/fontmanager/fontconfig.cxx,v
-retrieving revision 1.7
-diff -u -r1.7 fontconfig.cxx
---- psprint/source/fontmanager/fontconfig.cxx 13 Oct 2004 08:22:03 -0000 1.7
-+++ psprint/source/fontmanager/fontconfig.cxx 24 Aug 2005 15:05:56 -0000
-@@ -506,15 +506,22 @@
- }
-
- // update font cache
-- m_pFontCache->updateFontCacheEntry( pUpdate, false );
-- // sort into known fonts
-- fontID aFont = m_nNextFontID++;
-- m_aFonts[ aFont ] = pUpdate;
-- m_aFontFileToFontID[ aBase ].insert( aFont );
-- nFonts++;
-+ ::std::list< PrintFont* > aArtFonts;
-+ aArtFonts.push_back( pUpdate );
-+ for( ::std::list< PrintFontManager::PrintFont* >::iterator it =
-+aArtFonts.begin(); it != aArtFonts.end(); ++it )
-+ {
-+ m_pFontCache->updateFontCacheEntry( *it, false );
-+ // sort into known fonts
-+ fontID aFont = m_nNextFontID++;
-+ m_aFonts[ aFont ] = *it;
-+ m_aFontFileToFontID[ aBase ].insert( aFont );
-+ nFonts++;
-+ updateFamilyStyles( *it );
- #if OSL_DEBUG_LEVEL > 1
-- fprintf( stderr, "inserted font %s as fontID %d\n", family, aFont );
-+ fprintf( stderr, "inserted font %s as fontID %d\n", family, aFont );
- #endif
-+ }
- }
- // clean up the fonts we did not put into the list
- for( std::list< PrintFont* >::iterator it = aFonts.begin(); it != aFonts.end(); ++it )
-Index: vcl/source/glyphs/gcach_ftyp.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/glyphs/gcach_ftyp.cxx,v
-retrieving revision 1.114
-diff -u -r1.114 gcach_ftyp.cxx
---- vcl/source/glyphs/gcach_ftyp.cxx 3 May 2005 14:10:32 -0000 1.114
-+++ vcl/source/glyphs/gcach_ftyp.cxx 24 Aug 2005 14:15:46 -0000
-@@ -147,6 +147,109 @@
- typedef ::std::hash_map<const char*,FtFontFile*,::std::hash<const char*>, EqStr> FontFileList;
- namespace { struct vclFontFileList : public rtl::Static< FontFileList, vclFontFileList > {}; }
-
-+// noelpwer latest snapshots of freetype have experimental support for bold and
-+// italic emulation which the routines below are based on.
-+// These could/should be replaced when newer version of freetype
-+// available. see FT_GlyphSlot_Embolden & FT_GlyphSlot_Oblique
-+//
-+// makebold, basicalliy emulates bold by 'oring each horizontal pixel with the
-+// previous pixel. The routine uses the mnBitCount ( which as far as I can tell
-+// refers to the number of bits in a pixel ) to determine how many previous bits
-+// to 'or
-+
-+void FreetypeServerFont::makeBold( RawBitmap& rRawBitmap ) const
-+ {
-+ int ystr = 0;
-+ int x = 0;
-+ int y = 0;
-+ int i = 0;
-+ int xstr = rRawBitmap.mnBitCount; /* strength in pixels to overstrike */
-+ unsigned char* p = NULL;
-+
-+ ULONG pitch = rRawBitmap.mnScanlineSize ;
-+ if ( pitch > 0 )
-+ p = rRawBitmap.mpBits + pitch * ystr; // some support for bold in Y dir
-+ // note: not used by this patch
-+ else
-+ {
-+ pitch = -pitch;
-+ p = rRawBitmap.mpBits + pitch * ( rRawBitmap.mnWidth - 1 );
-+ }
-+
-+ // for each row
-+ for ( y = 0; y < ( rRawBitmap.mnHeight ); y++ )
-+ {
-+ //
-+ // Horizontally:
-+ //
-+ // From the last pixel on, make each pixel or'ed with the
-+ // `xstr' pixels/bits before it.
-+ //
-+ for ( x = pitch - 1; x >= 0; x-- )
-+ {
-+ unsigned char tmp;
-+
-+ tmp = p[x];
-+ for ( i = 1; i <= xstr; i++ )
-+ {
-+ p[x] |= tmp >> i;
-+
-+ // the maximum value of 8 for `xstr' comes from here//
-+ if ( x > 0 )
-+ p[x] |= p[x - 1] << ( 8 - i );
-+ }
-+ }
-+
-+ //
-+ // Vertically:
-+ //
-+ // Make the above `ystr' rows or'ed with it.
-+ //
-+ // note: not used by this patch
-+ for ( x = 1; x <= ystr; x++ )
-+ {
-+ unsigned char* q;
-+
-+ q = p - rRawBitmap.mnScanlineSize * x;
-+ for ( i = 0; i < pitch; i++ )
-+ q[i] |= p[i];
-+ }
-+
-+ p += rRawBitmap.mnScanlineSize ;
-+ }
-+
-+ }
-+
-+// makeItalic
-+void FreetypeServerFont::makeItalic( FT_GlyphRec_* pGlyphFT ) const
-+{
-+ // from freetype cvs ftsynth.c
-+ /*
-+ FT_GlyphSlot slot = maFaceFT->glyph;
-+ FT_Outline* outline = &slot->outline;
-+ FT_Matrix transform;
-+ // For italic, simply apply a shear transform, with an angle
-+ // of about 12 degrees.
-+
-+ transform.xx = 0x10000L;
-+ transform.yx = 0x00000L;
-+
-+ transform.xy = 0x06000L;
-+ transform.yy = 0x10000L;
-+ FT_Outline_Transform( outline, &transform );
-+ */
-+ FT_Matrix transform;
-+ /* For italic, simply apply a shear transform, with an angle */
-+ /* of about 12 degrees. */
-+
-+ transform.xx = 0x10000L;
-+ transform.yx = 0x00000L;
-+
-+ transform.xy = 0x06000L;
-+ transform.yy = 0x10000L;
-+ FT_Glyph_Transform( pGlyphFT, &transform, NULL );
-+}
-+
- // -----------------------------------------------------------------------
-
- // TODO: remove when the priorities are selected by UI
-@@ -692,7 +795,9 @@
- maFaceFT( NULL ),
- maSizeFT( NULL ),
- maRecodeConverter( NULL ),
-- mpLayoutEngine( NULL )
-+ mpLayoutEngine( NULL ),
-+ mbArtItalic( false ),
-+ mbArtBold( false )
- {
- maFaceFT = pFI->GetFaceFT();
-
-@@ -704,6 +809,24 @@
- if( !maFaceFT )
- return;
-
-+ //if ( GetFontSelData().GetWeight() != WEIGHT_NORMAL )
-+ if ( mpFontInfo->GetFontAttributes().GetWeight() != WEIGHT_NORMAL )
-+ {
-+ if ( !(FT_STYLE_FLAG_BOLD & maFaceFT->style_flags ))
-+ {
-+ mbArtBold = true;
-+ }
-+ }
-+ //if ( GetFontSelData().GetSlant() == ITALIC_OBLIQUE ||
-+ // GetFontSelData().GetSlant() == ITALIC_NORMAL )
-+ if ( mpFontInfo->GetFontAttributes().GetSlant() == ITALIC_OBLIQUE ||
-+ mpFontInfo->GetFontAttributes().GetSlant() == ITALIC_NORMAL )
-+ {
-+ if ( !(FT_STYLE_FLAG_ITALIC & mpFontInfo->GetFaceFT()->style_flags ))
-+ {
-+ mbArtItalic = true;
-+ }
-+ }
- FT_Encoding eEncoding = ft_encoding_unicode;
- if( mpFontInfo->IsSymbolFont() )
- {
-@@ -1268,6 +1391,9 @@
-
- int nAngle = ApplyGlyphTransform( nGlyphFlags, pGlyphFT, true );
-
-+ if ( GetArtificialItalic() )
-+ makeItalic( pGlyphFT );
-+
- if( pGlyphFT->format != ft_glyph_format_bitmap )
- {
- if( pGlyphFT->format == ft_glyph_format_outline )
-@@ -1289,10 +1415,22 @@
-
- const FT_Bitmap& rBitmapFT = rBmpGlyphFT->bitmap;
- rRawBitmap.mnHeight = rBitmapFT.rows;
-- rRawBitmap.mnWidth = rBitmapFT.width;
-- rRawBitmap.mnScanlineSize = rBitmapFT.pitch;
- rRawBitmap.mnBitCount = 1;
--
-+ if ( GetArtificialBold() )
-+ {
-+ // add extra pixel for makeBold
-+ // calcuate new mnScanlineSize in bytes
-+ rRawBitmap.mnWidth = rBitmapFT.width + rRawBitmap.mnBitCount;
-+ int byteOff = rRawBitmap.mnWidth / 8;
-+ if ( rRawBitmap.mnWidth % 8 )
-+ ++byteOff;
-+ rRawBitmap.mnScanlineSize = byteOff;
-+ }
-+ else
-+ {
-+ rRawBitmap.mnWidth = rBitmapFT.width;
-+ rRawBitmap.mnScanlineSize = rBitmapFT.pitch;
-+ }
- const ULONG nNeededSize = rRawBitmap.mnScanlineSize * rRawBitmap.mnHeight;
-
- if( rRawBitmap.mnAllocated < nNeededSize )
-@@ -1303,7 +1441,10 @@
- }
-
- memcpy( rRawBitmap.mpBits, rBitmapFT.buffer, nNeededSize );
--
-+ if ( GetArtificialBold() )
-+ {
-+ makeBold( rRawBitmap );
-+ }
- FT_Done_Glyph( pGlyphFT );
-
- // special case for 0/90/180/270 degree orientation
-@@ -1324,6 +1465,7 @@
-
- bool FreetypeServerFont::GetGlyphBitmap8( int nGlyphIndex, RawBitmap& rRawBitmap ) const
- {
-+
- if( maSizeFT )
- pFTActivateSize( maSizeFT );
-
-@@ -1340,7 +1482,7 @@
- nLoadFlags |= FT_LOAD_NO_HINTING;
- #endif
-
-- if( nPrioEmbedded <= nPrioAntiAlias )
-+ if( nPrioEmbedded <= nPrioAntiAlias || GetArtificialItalic() )
- nLoadFlags |= FT_LOAD_NO_BITMAP;
-
- FT_Error rc = -1;
-@@ -1368,7 +1510,10 @@
- return false;
-
- int nAngle = ApplyGlyphTransform( nGlyphFlags, pGlyphFT, true );
--
-+ if ( GetArtificialItalic() )
-+ {
-+ makeItalic( pGlyphFT );
-+ }
- if( pGlyphFT->format == ft_glyph_format_outline )
- ((FT_OutlineGlyph)pGlyphFT)->outline.flags |= ft_outline_high_precision;
-
-@@ -1387,9 +1532,27 @@
- const FT_Bitmap& rBitmapFT = rBmpGlyphFT->bitmap;
- rRawBitmap.mnHeight = rBitmapFT.rows;
- rRawBitmap.mnWidth = rBitmapFT.width;
-- rRawBitmap.mnScanlineSize = ((bEmbedded?rBitmapFT.width:rBitmapFT.pitch) + 3) & -4;
- rRawBitmap.mnBitCount = 8;
-
-+ if ( GetArtificialBold() )
-+ {
-+ // noelpwer:
-+ // pitch is always the num bytes needed ( including padding ) to
-+ // skip to the next row.
-+ // if bEmbedded is true, width is in pixels where each pixel is a bit
-+ // if bEmbedded is false
-+ // then width is in bytes ( appears still that each pixel is a bit )
-+ // The code below this conditional seems to normalize rBitmapFT by
-+ // filling rRawBitmap.mnBits buffer, if its embedded then the it's
-+ // "converted" to the non-embedd format (e.g. width in bytes).
-+ // So we add 1 to either width or pitch so that the makeBold routine
-+ // has room to do its stuff.
-+ rRawBitmap.mnWidth = rRawBitmap.mnWidth + 1;
-+ rRawBitmap.mnScanlineSize = ((bEmbedded?rRawBitmap.mnWidth:rBitmapFT.pitch+1) + 3) & -4;
-+ }
-+ else
-+ rRawBitmap.mnScanlineSize = ((bEmbedded?rBitmapFT.width:rBitmapFT.pitch) + 3) & -4;
-+
- const ULONG nNeededSize = rRawBitmap.mnScanlineSize * rRawBitmap.mnHeight;
- if( rRawBitmap.mnAllocated < nNeededSize )
- {
-@@ -1425,6 +1588,12 @@
- *(pDest++) = 0;
- }
- }
-+ // when all the other stuff is done, lets see if we can make the
-+ // font bold
-+ if ( GetArtificialBold() )
-+ {
-+ makeBold( rRawBitmap );
-+ }
-
- FT_Done_Glyph( pGlyphFT );
-
-@@ -1969,6 +2138,7 @@
- SplitGlyphFlags( *this, nGlyphIndex, nGlyphFlags );
-
- FT_Int nLoadFlags = FT_LOAD_NO_HINTING | FT_LOAD_NO_BITMAP;
-+
- FT_Error rc = FT_Load_Glyph( maFaceFT, nGlyphIndex, nLoadFlags );
- if( rc != FT_Err_Ok )
- return false;
-Index: vcl/source/glyphs/gcach_ftyp.hxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/glyphs/gcach_ftyp.hxx,v
-retrieving revision 1.30
-diff -u -r1.30 gcach_ftyp.hxx
---- vcl/source/glyphs/gcach_ftyp.hxx 13 Oct 2004 08:53:45 -0000 1.30
-+++ vcl/source/glyphs/gcach_ftyp.hxx 24 Aug 2005 14:15:52 -0000
-@@ -221,7 +221,14 @@
- { return mpFontInfo->GetTable( pName, pLength ); }
- int GetEmUnits() const;
- const FT_Size_Metrics& GetMetricsFT() const { return maSizeFT->metrics; }
--
-+ bool GetArtificialItalic() const
-+ {
-+ return mbArtItalic;
-+ }
-+ bool GetArtificialBold() const
-+ {
-+ return mbArtBold;
-+ }
- protected:
- friend class GlyphCache;
-
-@@ -230,6 +237,8 @@
- virtual ULONG GetFontCodeRanges( sal_uInt32* pCodes ) const;
- bool ApplyGSUB( const ImplFontSelectData& );
- virtual ServerFontLayoutEngine* GetLayoutEngine();
-+ void makeBold( RawBitmap& rBitMap ) const;
-+ void makeItalic( FT_GlyphRec_* pGlyphFT ) const;
-
- private:
- int mnWidth;
-@@ -244,6 +253,8 @@
- rtl_UnicodeToTextConverter maRecodeConverter;
-
- ServerFontLayoutEngine* mpLayoutEngine;
-+ bool mbArtItalic;
-+ bool mbArtBold;
- };
-
- // -----------------------------------------------------------------------
diff --git a/patches/test/README b/patches/test/README
deleted file mode 100644
index 22cb80236..000000000
--- a/patches/test/README
+++ /dev/null
@@ -1,64 +0,0 @@
-Some prototype / useful patches:
-
-# Testbed for layout work
-
-gui-window-layout.diff
-gui-control-layout.diff
-layout-ids.diff
-layout-rsc.diff
-layout-vcl-layout.diff
-layout-vcl-window.diff
-layout-test.diff
-
-# Improve impress slide-show / HTML export
-sd-export-html-thumbnails.diff
-
-# Export VBA macros
-# - needs more work done inside calc
-vba-export.diff
-vba-export-dir.diff
-
-# Unfinished ODMA work
-# Enable ODMA support in the build
-win32-odma-build.diff
-# Scott Clayton's fixes for recent G/W development #32741
-win32-odma-gw-fix.diff
-
-# Unfinished (?) dict. read efficiency fix of Dan's
-gui-disable-spellcheck-all-langs.diff
-
-# dictionary space improvement ... i#50842
-myspell-shrink.diff
-
-# pagein speedsup - have an idle / background reading of all
-# files we're going to touch on startup - and
-pagein-idle.diff - the patch
-pagein-idle - the file to use
-# add pagein -i @pagein-idle to soffice to test.
-
-# artificial italic-bold, italic & bold support for font families that don't
-# provide such fonts. Very import for CJK users
-ArtificialBoldItalic.diff:
- basic support, creates artificial fonts in the fontmanager, transforming code for glyphs etc.
-psprint-enable-artificial-ItalicBold-printing.diff:
- enables artificial bold and italic support to be picked up by ps print stuff.
-
- Notes:
- pdf print doesn't work, guess this needs a similar patch in
-source/gdi/pdfwriter_impl.cxx. The likely spots are around line 4975 for bold and 4944. Look for "artificial bold necessary " & "perform artificial italics". Of course these patches should not be necessary, it would be rightous to be able to detect artificial bold or italic from ImplFontSelectData or some such class.
- Also worth saying that with these patches I've seen a spurious crash on
-startup, not clear whether its a problem with the patch or a build problem. I'd
-suspect the patch.
-
-# hack to keep openStorageElement from checking if a URL is both
-# a file and a directory
-# also rely on lower-level exceptions to make sure create is done
-fsstorage.diff
-
-# Log all UNO service activation as it happens
-service-log.diff
-
-# Unfinished free java xmlhelp work
-# replace com.sun.foo-using xml code with xerces-using code
-# needs one more change in xmlsearch and all of xmlhelp.
-xmlsearch-xerces.diff
diff --git a/patches/test/binutils-bdirect.diff b/patches/test/binutils-bdirect.diff
deleted file mode 100644
index bbde508d4..000000000
--- a/patches/test/binutils-bdirect.diff
+++ /dev/null
@@ -1,645 +0,0 @@
-Only in binutils.current/bfd/doc: chew
-diff -u -r -x texis -x Makeconfig -x version.h -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' binutils-2.16/bfd/elf-bfd.h binutils.current/bfd/elf-bfd.h
---- binutils-2.16/bfd/elf-bfd.h 2005-03-03 20:52:31.000000000 +0000
-+++ binutils.current/bfd/elf-bfd.h 2005-11-23 11:04:04.000000000 +0000
-@@ -170,6 +170,14 @@
- matters. */
- unsigned int pointer_equality_needed : 1;
-
-+ /* FIXME: these 2 bits consume another 4 bytes */
-+ /* Symbol is concrete, ie. non-vague if we can detect that, from the
-+ .direct section */
-+ unsigned int concrete_ref : 1;
-+ /* Symbol is certainly vague (if we can detect that), from the
-+ .direct section */
-+ unsigned int vague_ref : 1;
-+
- /* String table index in .dynstr if this is a dynamic symbol. */
- unsigned long dynstr_index;
-
-@@ -396,6 +404,9 @@
- asection *tls_sec;
- bfd_size_type tls_size;
-
-+ /* Direct linkage output section */
-+ asection *direct_sec;
-+
- /* A linked list of BFD's loaded in the link. */
- struct elf_link_loaded_list *loaded;
-
-@@ -1238,6 +1249,7 @@
- name actually used, which will be the DT_SONAME entry if there is
- one. */
- const char *dt_name;
-+ int dt_needed_idx;
-
- /* Records the result of `get_program_header_size'. */
- bfd_size_type program_header_size;
-@@ -1338,6 +1350,7 @@
- #define elf_local_got_offsets(bfd) (elf_tdata(bfd) -> local_got.offsets)
- #define elf_local_got_ents(bfd) (elf_tdata(bfd) -> local_got.ents)
- #define elf_dt_name(bfd) (elf_tdata(bfd) -> dt_name)
-+#define elf_dt_needed_idx(bfd) (elf_tdata(bfd) -> dt_needed_idx)
- #define elf_dyn_lib_class(bfd) (elf_tdata(bfd) -> dyn_lib_class)
- #define elf_bad_symtab(bfd) (elf_tdata(bfd) -> bad_symtab)
- #define elf_flags_init(bfd) (elf_tdata(bfd) -> flags_init)
-Only in binutils.current/bfd: elf-bfd.h~
-diff -u -r -x texis -x Makeconfig -x version.h -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' binutils-2.16/bfd/elf.c binutils.current/bfd/elf.c
---- binutils-2.16/bfd/elf.c 2005-03-06 02:02:15.000000000 +0000
-+++ binutils.current/bfd/elf.c 2005-11-18 17:08:51.000000000 +0000
-@@ -1145,6 +1145,7 @@
- case DT_RELCOUNT: name = "RELCOUNT"; break;
- case DT_FLAGS_1: name = "FLAGS_1"; break;
- case DT_VERSYM: name = "VERSYM"; break;
-+ case DT_DIRECT: name = "DIRECT"; break;
- case DT_VERDEF: name = "VERDEF"; break;
- case DT_VERDEFNUM: name = "VERDEFNUM"; break;
- case DT_VERNEED: name = "VERNEED"; break;
-@@ -1495,6 +1496,7 @@
- table->runpath = NULL;
- table->tls_sec = NULL;
- table->tls_size = 0;
-+ table->direct_sec = NULL;
- table->loaded = NULL;
- table->is_relocatable_executable = FALSE;
-
-diff -u -r -x texis -x Makeconfig -x version.h -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' binutils-2.16/bfd/elflink.c binutils.current/bfd/elflink.c
---- binutils-2.16/bfd/elflink.c 2005-04-29 14:40:22.000000000 +0100
-+++ binutils.current/bfd/elflink.c 2005-11-30 15:07:38.000000000 +0000
-@@ -172,6 +172,16 @@
- elf_hash_table (info)->eh_info.hdr_sec = s;
- }
-
-+ if ( info->direct && !info->executable )
-+ {
-+ s = bfd_make_section (abfd, ".direct");
-+ if (s == NULL
-+ || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)
-+ || ! bfd_set_section_alignment (abfd, s, 2))
-+ return FALSE;
-+ elf_hash_table (info)->direct_sec = s;
-+ }
-+
- /* Create sections to hold version informations. These are removed
- if they are not needed. */
- s = bfd_make_section (abfd, ".gnu.version_d");
-@@ -2193,7 +2203,9 @@
-
- return TRUE;
- }
-+
-
-+
- /* Fix up the flags for a symbol. This handles various cases which
- can only be fixed after all the input files are seen. This is
- currently called by both adjust_dynamic_symbol and
-@@ -2848,6 +2860,9 @@
-
- if (!_bfd_elf_add_dynamic_entry (info, DT_NEEDED, strindex))
- return -1;
-+ elf_dt_needed_idx (abfd) = ++(info->dt_needed_index);
-+/* fprintf (stderr, "Set soname '%s' as index %d\n",
-+ soname, info->dt_needed_index); */
- }
- else
- /* We were just checking for existence of the tag. */
-@@ -3143,6 +3158,8 @@
- bfd_boolean add_needed;
- struct elf_link_hash_table * hash_table;
- bfd_size_type amt;
-+ asection *direct_sec;
-+ unsigned char *direct_data;
-
- hash_table = elf_hash_table (info);
-
-@@ -3150,6 +3167,9 @@
- add_symbol_hook = bed->elf_add_symbol_hook;
- collect = bed->collect;
-
-+ direct_sec = NULL;
-+ direct_data = NULL;
-+
- if ((abfd->flags & DYNAMIC) == 0)
- dynamic = FALSE;
- else
-@@ -3169,6 +3189,14 @@
- bfd_set_error (bfd_error_wrong_format);
- goto error_return;
- }
-+ if (info->direct &&
-+ (direct_sec = bfd_get_section_by_name (abfd, ".direct")))
-+ {
-+ direct_data = bfd_alloc (abfd, direct_sec->size);
-+ if (direct_data == NULL ||
-+ ! bfd_get_section_contents (abfd, direct_sec, direct_data, 0, direct_sec->size))
-+ goto error_return;
-+ }
- }
-
- /* As a GNU extension, any input sections which are named
-@@ -3817,6 +3845,37 @@
- && vernum > 1
- && definition)
- h->verinfo.verdef = &elf_tdata (abfd)->verdef[vernum - 1];
-+
-+ if (direct_sec)
-+ {
-+ unsigned long d_idx = isym - isymbuf;
-+ /* FIXME: does bfd_elf_get_elf_syms read dynsym or the symbol
-+ table ? */
-+ d_idx += extsymoff;
-+ d_idx *= 2;
-+ if (d_idx > bfd_get_section_size (direct_sec))
-+ fprintf (stderr, "Warning - strange error on '%s': 0x%x 0x%x\n",
-+ h->root.root.string, (int)d_idx,
-+ (int)bfd_get_section_size (direct_sec));
-+ else
-+ {
-+ unsigned int direct_entry;
-+ direct_entry = bfd_get_16 (abfd, direct_data + d_idx);
-+ if ((direct_entry & DT_DIRECT_VAGUE))
-+ h->vague_ref = 1;
-+ if (!h->vague_ref &&
-+ (direct_entry & DT_DIRECT_MASK) != DT_DIRECT_UNKNOWN)
-+ h->concrete_ref = 1;
-+#if 0
-+ fprintf (stderr, "symbol '%s': %s direct entry 0x%x (index %d) section '%s' : '%s'\n",
-+ h->root.root.string,
-+ h->vague_ref ? "vague " : h->concrete_ref ? "concrete" : "unknown",
-+ direct_entry, (int)d_idx/2,
-+ new_sec ? new_sec->name : "<nosec>",
-+ new_sec && new_sec->owner ? new_sec->owner->filename : "<noownername>");
-+#endif
-+ }
-+ }
- }
-
- if (! (_bfd_generic_link_add_one_symbol
-@@ -3830,6 +3889,8 @@
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
- *sym_hash = h;
-
-+ /* FIXME: move direct bits here ? - seem fine where they are ... */
-+
- new_weakdef = FALSE;
- if (dynamic
- && definition
-@@ -4450,6 +4511,8 @@
- if (isymbuf != NULL)
- free (isymbuf);
- error_return:
-+ if (direct_data != NULL)
-+ free (direct_data);
- return FALSE;
- }
-
-@@ -5671,6 +5734,24 @@
- return FALSE;
- }
-
-+ /* Create the direct bindings section - 1 entry per dynsym */
-+ s = bfd_get_section_by_name (dynobj, ".direct");
-+ if (s)
-+ {
-+ if (dynsymcount == 0)
-+ _bfd_strip_section_from_output (info, s);
-+ else
-+ {
-+ s->size = dynsymcount * sizeof (Elf_External_Direct);
-+ s->contents = bfd_zalloc (output_bfd, s->size);
-+ if (s->contents == NULL)
-+ return FALSE;
-+ memset (s->contents, 0xff, s->size);
-+ if (!_bfd_elf_add_dynamic_entry (info, DT_DIRECT, 0))
-+ return FALSE;
-+ }
-+ }
-+
- /* Set the size of the .dynsym and .hash sections. We counted
- the number of dynamic symbols in elf_link_add_object_symbols.
- We will build the contents of .dynsym and .hash when we build
-@@ -5749,6 +5830,8 @@
- asection *hash_sec;
- /* symbol version section (.gnu.version). */
- asection *symver_sec;
-+ /* .direct linkage section */
-+ asection *direct_sec;
- /* Buffer large enough to hold contents of any section. */
- bfd_byte *contents;
- /* Buffer large enough to hold external relocs of any section. */
-@@ -6603,6 +6704,64 @@
- eversym += h->dynindx;
- _bfd_elf_swap_versym_out (finfo->output_bfd, &iversym, eversym);
- }
-+
-+ if (finfo->direct_sec)
-+ {
-+ bfd_vma offset = 2 * h->dynindx;
-+ if (offset > finfo->direct_sec->size)
-+ fprintf (stderr, "Out of bounds direct section index %d\n",
-+ (int) offset);
-+ else
-+ {
-+ int dt_index = DT_DIRECT_UNKNOWN;
-+
-+#if 0
-+ fprintf (stderr, "Symbol '%s' type %d\n",
-+ h->root.root.string, h->root.type);
-+#endif
-+ if ((h->root.type == bfd_link_hash_defined
-+ || h->root.type == bfd_link_hash_defweak) &&
-+ h->root.u.def.section != NULL &&
-+ h->root.u.def.section->owner != NULL)
-+
-+ {
-+ asection *sec = h->root.u.def.section;
-+
-+ dt_index = elf_dt_needed_idx (sec->owner);
-+
-+ if (!(sec->owner->flags & DYNAMIC))
-+ {
-+ if (!sec->name ||
-+ !strncmp (sec->name, ".gnu.linkonce", sizeof ".gnu.linkonce" - 1))
-+ dt_index |= DT_DIRECT_VAGUE;
-+
-+ /* app -> library data references get turned into copy
-+ relocs, so objects can migrate unpredictably into the
-+ application itself. */
-+ else if (h->type == STT_OBJECT)
-+ dt_index |= DT_DIRECT_VAGUE;
-+ }
-+ else if (h->vague_ref)
-+ dt_index |= DT_DIRECT_VAGUE;
-+
-+ else if (!h->concrete_ref)
-+ dt_index = DT_DIRECT_UNKNOWN;
-+
-+#if 0
-+ fprintf (stderr, "Sym '%s' (type %d) [type %d] section %s [%s] owner '%s' [%d] offset %d resolves '%s'\n",
-+ h->root.root.string, h->root.type, h->type,
-+ sec->name ? sec->name : "<null>",
-+ sec->owner->flags & DYNAMIC ? "dynamic" : "static",
-+ sec->owner ? sec->owner->filename : "<noowner?>",
-+ dt_index, (int) offset,
-+ dt_index & DT_DIRECT_VAGUE ? "<vague>" : "concrete");
-+#endif
-+ }
-+ bfd_put_16 (finfo->output_bfd,
-+ dt_index,
-+ finfo->direct_sec->contents + offset);
-+ }
-+ }
- }
-
- /* If we're stripping it, then it was just a dynamic symbol, and
-@@ -7732,6 +7891,7 @@
- finfo.dynsym_sec = NULL;
- finfo.hash_sec = NULL;
- finfo.symver_sec = NULL;
-+ finfo.direct_sec = NULL;
- }
- else
- {
-@@ -7740,6 +7900,7 @@
- BFD_ASSERT (finfo.dynsym_sec != NULL && finfo.hash_sec != NULL);
- finfo.symver_sec = bfd_get_section_by_name (dynobj, ".gnu.version");
- /* Note that it is OK if symver_sec is NULL. */
-+ finfo.direct_sec = bfd_get_section_by_name (dynobj, ".direct");
- }
-
- finfo.contents = NULL;
-@@ -8492,6 +8653,9 @@
- case DT_VERNEED:
- name = ".gnu.version_r";
- goto get_vma;
-+ case DT_DIRECT:
-+ name = ".direct";
-+ goto get_vma;
- case DT_VERSYM:
- name = ".gnu.version";
- get_vma:
-Only in binutils.current/bfd: elflink.c~
-Files binutils-2.16/bfd/libbfd.a and binutils.current/bfd/libbfd.a differ
-Files binutils-2.16/bfd/.libs/libbfd.a and binutils.current/bfd/.libs/libbfd.a differ
-Files binutils-2.16/binutils/addr2line and binutils.current/binutils/addr2line differ
-Files binutils-2.16/binutils/ar and binutils.current/binutils/ar differ
-Files binutils-2.16/binutils/cxxfilt and binutils.current/binutils/cxxfilt differ
-Files binutils-2.16/binutils/nm-new and binutils.current/binutils/nm-new differ
-Files binutils-2.16/binutils/objcopy and binutils.current/binutils/objcopy differ
-Files binutils-2.16/binutils/objdump and binutils.current/binutils/objdump differ
-Files binutils-2.16/binutils/ranlib and binutils.current/binutils/ranlib differ
-Files binutils-2.16/binutils/readelf and binutils.current/binutils/readelf differ
-diff -u -r -x texis -x Makeconfig -x version.h -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' binutils-2.16/binutils/readelf.c binutils.current/binutils/readelf.c
---- binutils-2.16/binutils/readelf.c 2005-04-20 19:43:36.000000000 +0100
-+++ binutils.current/binutils/readelf.c 2005-11-23 11:10:06.000000000 +0000
-@@ -143,6 +143,7 @@
- int do_dynamic;
- int do_syms;
- int do_reloc;
-+int do_direct;
- int do_sections;
- int do_section_groups;
- int do_segments;
-@@ -1519,6 +1520,7 @@
- case DT_SYMINFO: return "SYMINFO"; /* aka ADDRRNGHI */
-
- case DT_VERSYM: return "VERSYM";
-+ case DT_DIRECT: return "DIRECT";
-
- case DT_RELACOUNT: return "RELACOUNT";
- case DT_RELCOUNT: return "RELCOUNT";
-@@ -2590,6 +2592,7 @@
- {"symbols", no_argument, 0, 's'},
- {"syms", no_argument, 0, 's'},
- {"relocs", no_argument, 0, 'r'},
-+ {"direct", no_argument, 0, 'y'},
- {"notes", no_argument, 0, 'n'},
- {"dynamic", no_argument, 0, 'd'},
- {"arch-specific", no_argument, 0, 'A'},
-@@ -2626,6 +2629,7 @@
- --symbols An alias for --syms\n\
- -n --notes Display the core notes (if present)\n\
- -r --relocs Display the relocations (if present)\n\
-+ -y --direct Display direct linkage table (if present)\n\
- -u --unwind Display the unwind info (if present)\n\
- -d --dynamic Display the dynamic section (if present)\n\
- -V --version-info Display the version sections (if present)\n\
-@@ -2693,7 +2697,7 @@
- usage ();
-
- while ((c = getopt_long
-- (argc, argv, "ersuahnldSDAIgw::x:i:vVWH", options, NULL)) != EOF)
-+ (argc, argv, "erysuahnldSDAIgw::x:i:vVWH", options, NULL)) != EOF)
- {
- char *cp;
- int section;
-@@ -2710,6 +2714,7 @@
- case 'a':
- do_syms++;
- do_reloc++;
-+ do_direct++;
- do_unwind++;
- do_dynamic++;
- do_header++;
-@@ -2738,6 +2743,9 @@
- case 'r':
- do_reloc++;
- break;
-+ case 'y':
-+ do_direct++;
-+ break;
- case 'u':
- do_unwind++;
- break;
-@@ -2943,7 +2951,7 @@
- }
- }
-
-- if (!do_dynamic && !do_syms && !do_reloc && !do_unwind && !do_sections
-+ if (!do_dynamic && !do_syms && !do_reloc && !do_direct && !do_unwind && !do_sections
- && !do_segments && !do_header && !do_dump && !do_version
- && !do_histogram && !do_debugging && !do_arch && !do_notes
- && !do_section_groups)
-@@ -4328,6 +4336,132 @@
- return 1;
- }
-
-+static void
-+print_dt_needed_name (int idx)
-+{
-+ const char *name = NULL;
-+ Elf_Internal_Dyn *entry;
-+
-+ idx &= DT_DIRECT_MASK;
-+
-+ switch (idx)
-+ {
-+ case 0:
-+ name = _("<self>");
-+ break;
-+ case DT_DIRECT_UNKNOWN:
-+ name = _("<unknown>");
-+ break;
-+ default:
-+ idx--;
-+
-+ for (entry = dynamic_section;
-+ entry < dynamic_section + dynamic_nent && idx > 0;
-+ entry++)
-+ if (entry->d_tag == DT_NEEDED)
-+ idx--;
-+
-+ if (idx == 0)
-+ {
-+ if (VALID_DYNAMIC_NAME (entry->d_un.d_val))
-+ name = GET_DYNAMIC_NAME (entry->d_un.d_val);
-+ else
-+ name = NULL;
-+ }
-+ break;
-+ }
-+
-+ if (!name)
-+ name = _("<out-of-range>");
-+ if (do_wide)
-+ printf ("%s", name);
-+ else
-+ printf ("%-25s", name);
-+}
-+
-+static int
-+process_direct (FILE *file)
-+{
-+ unsigned int i;
-+ unsigned int si;
-+ char *strtab;
-+ unsigned char *directtab;
-+ Elf_Internal_Sym *symtab = NULL;
-+ Elf_Internal_Sym *psym;
-+ Elf_Internal_Shdr *direct = NULL;
-+ Elf_Internal_Shdr *dynsym = NULL;
-+ Elf_Internal_Shdr *section;
-+
-+ if (!do_direct)
-+ return 1;
-+ if (!dynamic_symbols || !dynamic_section || !dynamic_strings)
-+ return 1;
-+
-+ for (i = 0, section = section_headers;
-+ i < elf_header.e_shnum;
-+ i++, section++)
-+ {
-+ if (section->sh_type == SHT_DYNSYM)
-+ dynsym = section;
-+ if (!strcmp (SECTION_NAME (section), ".direct"))
-+ direct = section;
-+ }
-+ if (!dynsym || !direct)
-+ return 1;
-+
-+ symtab = GET_ELF_SYMBOLS (file, dynsym);
-+ if (!symtab)
-+ return 1;
-+
-+ directtab = get_data (NULL, file, direct->sh_offset,
-+ direct->sh_size, _("direct linkage table"));
-+ if (!symtab)
-+ {
-+ free (symtab);
-+ return 1;
-+ }
-+
-+ if (dynsym->sh_link == elf_header.e_shstrndx)
-+ strtab = string_table;
-+ else
-+ {
-+ Elf_Internal_Shdr *string_sec;
-+
-+ string_sec = SECTION_HEADER (dynsym->sh_link);
-+
-+ strtab = get_data (NULL, file, string_sec->sh_offset,
-+ string_sec->sh_size, _("string table"));
-+ }
-+
-+ assert (strtab != NULL);
-+
-+ printf (_("\nDirect relocations for image:\n"));
-+ printf (_(" Num: Index Vague Binding Symbol\n"));
-+ for (si = 0, psym = symtab;
-+ si < dynsym->sh_size / dynsym->sh_entsize;
-+ si++, psym++)
-+ {
-+ unsigned int field;
-+ printf ("%6d: ", si);
-+ field = byte_get (directtab + (si * 2), 2);
-+ printf ("[0x%.4x] ", field);
-+ printf ("%s", (field & DT_DIRECT_VAGUE) ? "Vague" : " ");
-+ printf (" ");
-+ print_dt_needed_name (field);
-+ printf (" ");
-+ print_symbol (25, strtab + psym->st_name);
-+ printf ("\n");
-+ }
-+
-+
-+ free (symtab);
-+ if (strtab != string_table)
-+ free (strtab);
-+
-+ return 1;
-+}
-+
-+
- /* Process the unwind section. */
-
- #include "unwind-ia64.h"
-@@ -11784,6 +11918,8 @@
-
- process_relocs (file);
-
-+ process_direct (file);
-+
- process_unwind (file);
-
- process_symbol_table (file);
-Only in binutils.current/binutils: readelf.c~
-Files binutils-2.16/binutils/size and binutils.current/binutils/size differ
-Files binutils-2.16/binutils/strings and binutils.current/binutils/strings differ
-Files binutils-2.16/binutils/strip-new and binutils.current/binutils/strip-new differ
-Files binutils-2.16/gas/as-new and binutils.current/gas/as-new differ
-Files binutils-2.16/gprof/gprof and binutils.current/gprof/gprof differ
-diff -u -r -x texis -x Makeconfig -x version.h -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' binutils-2.16/include/bfdlink.h binutils.current/include/bfdlink.h
---- binutils-2.16/include/bfdlink.h 2005-03-03 11:58:00.000000000 +0000
-+++ binutils.current/include/bfdlink.h 2005-11-23 10:31:37.000000000 +0000
-@@ -244,6 +244,9 @@
- /* TRUE if BFD should pre-bind symbols in a shared object. */
- unsigned int symbolic: 1;
-
-+ /* TRUE if BFD should bind symbols directly to resolved at link time. */
-+ unsigned int direct: 1;
-+
- /* TRUE if BFD should export all symbols in the dynamic symbol table
- of an executable, rather than only those used. */
- unsigned int export_dynamic: 1;
-@@ -416,6 +419,9 @@
-
- /* Start and end of RELRO region. */
- bfd_vma relro_start, relro_end;
-+
-+ /* current max dtinfo section number */
-+ int dt_needed_index;
- };
-
- /* This structures holds a set of callback functions. These are
-Only in binutils.current/include: bfdlink.h~
-diff -u -r -x texis -x Makeconfig -x version.h -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' binutils-2.16/include/elf/common.h binutils.current/include/elf/common.h
---- binutils-2.16/include/elf/common.h 2004-10-08 14:55:08.000000000 +0100
-+++ binutils.current/include/elf/common.h 2005-11-22 14:12:53.000000000 +0000
-@@ -586,6 +586,7 @@
-
- /* This tag is a GNU extension to the Solaris version scheme. */
- #define DT_VERSYM 0x6ffffff0
-+#define DT_DIRECT 0x6ffffff1 /* FIXME - how are these allocated ? */
-
- #define DT_LOPROC 0x70000000
- #define DT_HIPROC 0x7fffffff
-@@ -635,6 +636,11 @@
- #define DF_BIND_NOW (1 << 3)
- #define DF_STATIC_TLS (1 << 4)
-
-+/* Constants for the DT_DIRECT entries. */
-+#define DT_DIRECT_VAGUE (1<<15)
-+#define DT_DIRECT_MASK 0x3ff
-+#define DT_DIRECT_UNKNOWN DT_DIRECT_MASK
-+
- /* These constants are used for the version number of a Elf32_Verdef
- structure. */
-
-Only in binutils.current/include/elf: common.h~
-diff -u -r -x texis -x Makeconfig -x version.h -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' binutils-2.16/include/elf/external.h binutils.current/include/elf/external.h
---- binutils-2.16/include/elf/external.h 2005-03-03 11:58:05.000000000 +0000
-+++ binutils.current/include/elf/external.h 2005-11-18 17:08:51.000000000 +0000
-@@ -213,6 +213,10 @@
- unsigned char vd_next[4];
- } Elf_External_Verdef;
-
-+typedef struct {
-+ unsigned char dir_libidx[2];
-+} Elf_External_Direct;
-+
- /* This structure appears in a SHT_GNU_verdef section. */
-
- typedef struct {
-Files binutils-2.16/ld/ld-new and binutils.current/ld/ld-new differ
-diff -u -r -x texis -x Makeconfig -x version.h -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' binutils-2.16/ld/lexsup.c binutils.current/ld/lexsup.c
---- binutils-2.16/ld/lexsup.c 2005-03-03 11:52:00.000000000 +0000
-+++ binutils.current/ld/lexsup.c 2005-11-23 10:32:20.000000000 +0000
-@@ -70,6 +70,7 @@
- OPTION_CREF,
- OPTION_DEFSYM,
- OPTION_DEMANGLE,
-+ OPTION_DIRECT,
- OPTION_DYNAMIC_LINKER,
- OPTION_SYSROOT,
- OPTION_EB,
-@@ -341,6 +342,8 @@
- '\0', NULL, NULL, ONE_DASH },
- { {"Bsymbolic", no_argument, NULL, OPTION_SYMBOLIC},
- '\0', NULL, N_("Bind global references locally"), ONE_DASH },
-+ { {"Bdirect", no_argument, NULL, OPTION_DIRECT},
-+ '\0', NULL, N_("Direct-linkage the the shared libraries"), ONE_DASH },
- { {"check-sections", no_argument, NULL, OPTION_CHECK_SECTIONS},
- '\0', NULL, N_("Check section addresses for overlaps (default)"),
- TWO_DASHES },
-@@ -746,6 +749,9 @@
- cplus_demangle_set_style (style);
- }
- break;
-+ case OPTION_DIRECT:
-+ link_info.direct = TRUE;
-+ break;
- case 'I': /* Used on Solaris. */
- case OPTION_DYNAMIC_LINKER:
- command_line.interpreter = optarg;
-Only in binutils.current/ld: lexsup.c~
-Files binutils-2.16/libiberty/libiberty.a and binutils.current/libiberty/libiberty.a differ
diff --git a/patches/test/binutils-dynsort.diff b/patches/test/binutils-dynsort.diff
deleted file mode 100644
index e94626aac..000000000
--- a/patches/test/binutils-dynsort.diff
+++ /dev/null
@@ -1,710 +0,0 @@
-diff -u -r -x texis -x Makeconfig -x version.h -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' binutils-2.16.91.0.4/bfd/ChangeLog binutils.current/bfd/ChangeLog
---- binutils-2.16.91.0.4/bfd/ChangeLog 2005-11-13 17:16:34.000000000 +0000
-+++ binutils.current/bfd/ChangeLog 2005-12-23 16:14:05.000000000 +0000
-@@ -1,3 +1,37 @@
-+2005-12-23 Michael Meeks <michael.meeks@novell.com>
-+
-+ * elf-strtab.c (_bfd_elf_strtab_init, _bfd_elf_strtab_free):
-+ manage the sorted array.
-+ (_bfd_elf_strtab_emit): emit .dynstr in sorted order.
-+ (_bfd_elf_strtab_finalize, hash_compare): sort .dynstr
-+ primarily by elf bucket index.
-+
-+ * elflink.c (elf_finalize_dynstr): pass bucket count to
-+ strtab_finalize.
-+ (_bfd_elf_ver_hash): split for re-use from
-+ (elf_collect_hash_codes): here.
-+ (_bfd_elf_link_hash_traverse): new traversal function:
-+ walks sorted array if sorted, else walks the hash as before.
-+ (elf_sort_dynsym_hash): qsort method to sort dynsyms
-+ (elf_sort_collect_dynsyms): hash walker to collect symbols
-+ (_bfd_elf_sort_dynsyms): method - sorts .dynsym section.
-+ (bfd_elf_size_dynsym_hash_dynstr): do the .dynsym sort.
-+ (elf_link_sort_relocs, elf_link_sort_cmp2): sort relocs
-+ primarily by elf bucket index.
-+ (bfd_elf_final_link): update reloc sort call.
-+
-+ * elf.c (_bfd_elf_link_hash_table_init),
-+ (_bfd_elf_link_hash_table_free): init & free sorted array.
-+ (assign_section_numbers): upd. strtab_finalize call.
-+
-+ * elf32-m68hc1x.c (m68hc11_elf_bfd_link_hash_table_free),
-+ * elf-m10300.c (elf32_mn10300_link_hash_table_free),
-+ * elf32-hppa.c (elf32_hppa_link_hash_table_free),
-+ * elf64-ppc.c (ppc64_elf_link_hash_table_free),
-+ * elf.c (_bfd_elf_link_hash_table_free),
-+ * elfxx-target.h: implement elf specific hash free
-+ method & re-direct callers to it.
-+
- 2005-11-11 Nick Clifton <nickc@redhat.com>
-
- PR 1150
-Files binutils-2.16.91.0.4/bfd/doc/chew and binutils.current/bfd/doc/chew differ
-diff -u -r -x texis -x Makeconfig -x version.h -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' binutils-2.16.91.0.4/bfd/elf32-hppa.c binutils.current/bfd/elf32-hppa.c
---- binutils-2.16.91.0.4/bfd/elf32-hppa.c 2005-11-13 17:16:34.000000000 +0000
-+++ binutils.current/bfd/elf32-hppa.c 2005-12-23 14:06:31.000000000 +0000
-@@ -435,7 +435,7 @@
- = (struct elf32_hppa_link_hash_table *) btab;
-
- bfd_hash_table_free (&htab->bstab);
-- _bfd_generic_link_hash_table_free (btab);
-+ _bfd_elf_link_hash_table_free (hash);
- }
-
- /* Build a name for an entry in the stub hash table. */
-diff -u -r -x texis -x Makeconfig -x version.h -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' binutils-2.16.91.0.4/bfd/elf32-m68hc1x.c binutils.current/bfd/elf32-m68hc1x.c
---- binutils-2.16.91.0.4/bfd/elf32-m68hc1x.c 2005-06-22 21:53:34.000000000 +0100
-+++ binutils.current/bfd/elf32-m68hc1x.c 2005-12-23 14:07:21.000000000 +0000
-@@ -106,7 +106,7 @@
-
- bfd_hash_table_free (ret->stub_hash_table);
- free (ret->stub_hash_table);
-- _bfd_generic_link_hash_table_free (hash);
-+ _bfd_elf_link_hash_table_free (hash);
- }
-
- /* Assorted hash table functions. */
-diff -u -r -x texis -x Makeconfig -x version.h -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' binutils-2.16.91.0.4/bfd/elf32-target.h binutils.current/bfd/elf32-target.h
---- binutils-2.16.91.0.4/bfd/elf32-target.h 2005-12-23 17:12:23.000000000 +0000
-+++ binutils.current/bfd/elf32-target.h 2005-12-23 14:51:28.000000000 +0000
-@@ -205,7 +205,7 @@
- #endif
-
- #ifndef bfd_elf32_bfd_link_hash_table_free
--#define bfd_elf32_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
-+#define bfd_elf32_bfd_link_hash_table_free _bfd_elf_link_hash_table_free
- #endif
-
- #ifdef elf_backend_relocate_section
-diff -u -r -x texis -x Makeconfig -x version.h -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' binutils-2.16.91.0.4/bfd/elf64-ppc.c binutils.current/bfd/elf64-ppc.c
---- binutils-2.16.91.0.4/bfd/elf64-ppc.c 2005-11-13 17:16:34.000000000 +0000
-+++ binutils.current/bfd/elf64-ppc.c 2005-12-23 14:04:07.000000000 +0000
-@@ -3502,7 +3502,7 @@
-
- bfd_hash_table_free (&ret->stub_hash_table);
- bfd_hash_table_free (&ret->branch_hash_table);
-- _bfd_generic_link_hash_table_free (hash);
-+ _bfd_elf_link_hash_table_free (hash);
- }
-
- /* Satisfy the ELF linker by filling in some fields in our fake bfd. */
-diff -u -r -x texis -x Makeconfig -x version.h -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' binutils-2.16.91.0.4/bfd/elf-bfd.h binutils.current/bfd/elf-bfd.h
---- binutils-2.16.91.0.4/bfd/elf-bfd.h 2005-12-22 10:42:52.000000000 +0000
-+++ binutils.current/bfd/elf-bfd.h 2005-12-23 14:59:54.000000000 +0000
-@@ -340,6 +340,10 @@
- {
- struct bfd_link_hash_table root;
-
-+ /* Symbol sort order for final traversal at output */
-+ unsigned int sorted_size;
-+ struct elf_link_hash_entry **sorted;
-+
- /* Whether we have created the special dynamic sections required
- when linking against or generating a shared object. */
- bfd_boolean dynamic_sections_created;
-@@ -418,11 +422,16 @@
- /* Traverse an ELF linker hash table. */
-
- #define elf_link_hash_traverse(table, func, info) \
-- (bfd_link_hash_traverse \
-- (&(table)->root, \
-- (bfd_boolean (*) (struct bfd_link_hash_entry *, void *)) (func), \
-+ (_bfd_elf_link_hash_traverse \
-+ ((table), \
-+ (bfd_boolean (*) (struct elf_link_hash_entry *, void *)) (func), \
- (info)))
-
-+void _bfd_elf_link_hash_traverse
-+ (struct elf_link_hash_table *table,
-+ bfd_boolean (*func) (struct elf_link_hash_entry *, void *),
-+ void *info);
-+
- /* Get the ELF linker hash table from a link_info structure. */
-
- #define elf_hash_table(p) ((struct elf_link_hash_table *) ((p)->hash))
-@@ -1446,6 +1455,8 @@
-
- extern unsigned long bfd_elf_hash
- (const char *);
-+extern unsigned long _bfd_elf_ver_hash
-+ (const char *);
-
- extern bfd_reloc_status_type bfd_elf_generic_reloc
- (bfd *, arelent *, asymbol *, void *, asection *, bfd *, char **);
-@@ -1463,6 +1474,7 @@
- (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
- extern struct bfd_link_hash_table *_bfd_elf_link_hash_table_create
- (bfd *);
-+extern void _bfd_elf_link_hash_table_free (struct bfd_link_hash_table *);
- extern void _bfd_elf_link_hash_copy_indirect
- (struct bfd_link_info *, struct elf_link_hash_entry *,
- struct elf_link_hash_entry *);
-@@ -1593,7 +1605,7 @@
- extern bfd_boolean _bfd_elf_strtab_emit
- (bfd *, struct elf_strtab_hash *);
- extern void _bfd_elf_strtab_finalize
-- (struct elf_strtab_hash *);
-+ (struct elf_strtab_hash *, size_t);
-
- extern bfd_boolean _bfd_elf_discard_section_eh_frame
- (bfd *, struct bfd_link_info *, asection *,
-diff -u -r -x texis -x Makeconfig -x version.h -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' binutils-2.16.91.0.4/bfd/elf.c binutils.current/bfd/elf.c
---- binutils-2.16.91.0.4/bfd/elf.c 2005-12-22 10:42:52.000000000 +0000
-+++ binutils.current/bfd/elf.c 2005-12-23 14:04:18.000000000 +0000
-@@ -1560,6 +1560,8 @@
- table->tls_size = 0;
- table->loaded = NULL;
- table->is_relocatable_executable = FALSE;
-+ table->sorted = NULL;
-+ table->sorted_size = 0;
-
- ret = _bfd_link_hash_table_init (&table->root, abfd, newfunc);
- table->root.type = bfd_link_elf_hash_table;
-@@ -1588,6 +1590,15 @@
- return &ret->root;
- }
-
-+void
-+_bfd_elf_link_hash_table_free (struct bfd_link_hash_table *hash)
-+{
-+ struct elf_link_hash_table *table = (struct elf_link_hash_table *) hash;
-+ if (table->sorted)
-+ free (table->sorted);
-+ _bfd_generic_link_hash_table_free (hash);
-+}
-+
- /* This is a hook for the ELF emulation code in the generic linker to
- tell the backend linker what file name to use for the DT_NEEDED
- entry for a dynamic object. */
-@@ -2983,7 +2994,7 @@
- _bfd_elf_strtab_addref (elf_shstrtab (abfd), t->strtab_hdr.sh_name);
- }
-
-- _bfd_elf_strtab_finalize (elf_shstrtab (abfd));
-+ _bfd_elf_strtab_finalize (elf_shstrtab (abfd), 0);
- t->shstrtab_hdr.sh_size = _bfd_elf_strtab_size (elf_shstrtab (abfd));
-
- elf_numsections (abfd) = section_number;
-diff -u -r -x texis -x Makeconfig -x version.h -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' binutils-2.16.91.0.4/bfd/elflink.c binutils.current/bfd/elflink.c
---- binutils-2.16.91.0.4/bfd/elflink.c 2005-12-22 10:42:52.000000000 +0000
-+++ binutils.current/bfd/elflink.c 2005-12-23 17:07:52.000000000 +0000
-@@ -3007,7 +3007,8 @@
- const struct elf_backend_data *bed;
- bfd_byte *extdyn;
-
-- _bfd_elf_strtab_finalize (dynstr);
-+ _bfd_elf_strtab_finalize (dynstr,
-+ elf_hash_table (info)->bucketcount);
- size = _bfd_elf_strtab_size (dynstr);
-
- bed = get_elf_backend_data (dynobj);
-@@ -4715,27 +4716,17 @@
- return FALSE;
- }
- }
--
--/* This function will be called though elf_link_hash_traverse to store
-- all hash value of the exported symbols in an array. */
-
--static bfd_boolean
--elf_collect_hash_codes (struct elf_link_hash_entry *h, void *data)
-+/*
-+ * Compute the elf hash value of the name ignoring the version.
-+ */
-+unsigned long
-+_bfd_elf_ver_hash (const char *name)
- {
-- unsigned long **valuep = data;
-- const char *name;
- char *p;
- unsigned long ha;
- char *alc = NULL;
-
-- if (h->root.type == bfd_link_hash_warning)
-- h = (struct elf_link_hash_entry *) h->root.u.i.link;
--
-- /* Ignore indirect symbols. These are added by the versioning code. */
-- if (h->dynindx == -1)
-- return TRUE;
--
-- name = h->root.root.string;
- p = strchr (name, ELF_VER_CHR);
- if (p != NULL)
- {
-@@ -4748,6 +4739,31 @@
- /* Compute the hash value. */
- ha = bfd_elf_hash (name);
-
-+ if (alc != NULL)
-+ free (alc);
-+
-+ return ha;
-+}
-+
-+
-+/* This function will be called though elf_link_hash_traverse to store
-+ all hash value of the exported symbols in an array. */
-+
-+static bfd_boolean
-+elf_collect_hash_codes (struct elf_link_hash_entry *h, void *data)
-+{
-+ unsigned long **valuep = data;
-+ unsigned long ha;
-+
-+ if (h->root.type == bfd_link_hash_warning)
-+ h = (struct elf_link_hash_entry *) h->root.u.i.link;
-+
-+ /* Ignore indirect symbols. These are added by the versioning code. */
-+ if (h->dynindx == -1)
-+ return TRUE;
-+
-+ ha = _bfd_elf_ver_hash (h->root.root.string);
-+
- /* Store the found hash value in the array given as the argument. */
- *(*valuep)++ = ha;
-
-@@ -4755,9 +4771,6 @@
- later. */
- h->u.elf_hash_value = ha;
-
-- if (alc != NULL)
-- free (alc);
--
- return TRUE;
- }
-
-@@ -4920,6 +4933,124 @@
- return best_size;
- }
-
-+void _bfd_elf_link_hash_traverse
-+ (struct elf_link_hash_table *table,
-+ bfd_boolean (*func) (struct elf_link_hash_entry *, void *),
-+ void *info)
-+{
-+ if (!table->sorted)
-+ bfd_link_hash_traverse \
-+ (&(table)->root, \
-+ (bfd_boolean (*) (struct bfd_link_hash_entry *, void *)) (func), \
-+ (info));
-+ else
-+ {
-+ unsigned int i;
-+ for (i = 0; i < table->sorted_size; i++)
-+ {
-+ if (! func (table->sorted[i], info))
-+ return;
-+ }
-+ }
-+}
-+
-+/* Where is the qsort closure ? */
-+static size_t give_me_a_bucket_count = 0;
-+
-+/* Sort by elf hash value % buckets */
-+static int
-+elf_sort_dynsym_hash (const void *arg1, const void *arg2)
-+{
-+ size_t h1_bucket, h2_bucket;
-+ const struct elf_link_hash_entry *h1;
-+ const struct elf_link_hash_entry *h2;
-+
-+ h1 = *(const struct elf_link_hash_entry **) arg1;
-+ h2 = *(const struct elf_link_hash_entry **) arg2;
-+
-+ h1_bucket = h1->u.elf_hash_value % give_me_a_bucket_count;
-+ h2_bucket = h2->u.elf_hash_value % give_me_a_bucket_count;
-+
-+ if (h1_bucket > h2_bucket)
-+ return 1;
-+ if (h1_bucket < h2_bucket)
-+ return -1;
-+
-+ return 0;
-+}
-+
-+struct elf_dynsym_sort_info
-+{
-+ bfd_boolean do_dynsym;
-+ unsigned int alloc_size;
-+ unsigned int sorted_size;
-+ struct elf_link_hash_entry **sorted_syms;
-+};
-+
-+/* collect sym entries into an array for later sorting */
-+static bfd_boolean
-+elf_sort_collect_dynsyms (struct elf_link_hash_entry *h, void *data)
-+{
-+ struct elf_dynsym_sort_info *sinfo = data;
-+
-+ if ((sinfo->do_dynsym && h->dynindx < 0) ||
-+ (!sinfo->do_dynsym && h->dynindx >= 0))
-+ return TRUE;
-+
-+ if (sinfo->sorted_size >= sinfo->alloc_size)
-+ {
-+ sinfo->alloc_size *= 2;
-+ /* FIXME: need to free this data too ... */
-+ sinfo->sorted_syms = bfd_realloc (sinfo->sorted_syms,
-+ sizeof (struct elf_link_hash_entry *) *
-+ sinfo->alloc_size);
-+ }
-+ sinfo->sorted_syms [sinfo->sorted_size++] = h;
-+
-+ return TRUE;
-+}
-+
-+/*
-+ * Sort the exported elf symbols by elf_hash % bucketcount to
-+ * improve run-time linker cache behavior. Subsequent
-+ * elf_link_hash_traverse calls will reflect this new order.
-+ */
-+static bfd_boolean
-+_bfd_elf_sort_dynsyms (struct bfd_link_info *info)
-+{
-+ struct elf_dynsym_sort_info sinfo;
-+
-+ sinfo.alloc_size = 8;
-+ sinfo.sorted_syms = bfd_malloc (sizeof (struct elf_link_hash_entry *) *
-+ sinfo.alloc_size);
-+ if (!sinfo.sorted_syms)
-+ return FALSE;
-+
-+ sinfo.sorted_size = 0;
-+
-+ /* append dynsyms for sorting */
-+ sinfo.do_dynsym = TRUE;
-+ elf_link_hash_traverse (elf_hash_table (info), elf_sort_collect_dynsyms, &sinfo);
-+
-+ /* sort them ... */
-+ if (!getenv ("DONT_SORT_SYMS")) {
-+ give_me_a_bucket_count = elf_hash_table (info)->bucketcount;
-+ qsort (sinfo.sorted_syms, sinfo.sorted_size,
-+ sizeof (struct elf_link_hash_entry *),
-+ elf_sort_dynsym_hash);
-+ }
-+
-+ /* append everything else */
-+ sinfo.do_dynsym = FALSE;
-+ elf_link_hash_traverse (elf_hash_table (info), elf_sort_collect_dynsyms, &sinfo);
-+
-+ /* freed in _bfd_elf_link_hash_table_free */
-+ elf_hash_table (info)->sorted = sinfo.sorted_syms;
-+ elf_hash_table (info)->sorted_size = sinfo.sorted_size;
-+
-+ return TRUE;
-+}
-+
- /* Set up the sizes and contents of the ELF dynamic sections. This is
- called by the ELF linker emulation before_allocation routine. We
- must set the sizes of the sections before the linker sets the
-@@ -5686,6 +5817,7 @@
- section symbol for each output section, which come first.
- Next come all of the back-end allocated local dynamic syms,
- followed by the rest of the global symbols. */
-+ /* To sort these optimally we need the correct bucketcount */
-
- dynsymcount = _bfd_elf_link_renumber_dynsyms (output_bfd, info,
- &section_sym_count);
-@@ -5756,6 +5888,15 @@
- for (dtagcount = 0; dtagcount <= info->spare_dynamic_tags; ++dtagcount)
- if (!_bfd_elf_add_dynamic_entry (info, DT_NULL, 0))
- return FALSE;
-+
-+ /* Sort .dynsym to accelerate runtime linking */
-+ { /* FIXME - make this conditional (?) */
-+ if (!_bfd_elf_sort_dynsyms (info))
-+ return FALSE;
-+ /* reflect the new sorting order */
-+ _bfd_elf_link_renumber_dynsyms (output_bfd, info,
-+ &section_sym_count);
-+ }
- }
-
- return TRUE;
-@@ -5892,6 +6033,7 @@
- bfd_vma sym_mask;
- } u;
- enum elf_reloc_type_class type;
-+ unsigned long elf_bucket;
- /* We use this as an array of size int_rels_per_ext_rel. */
- Elf_Internal_Rela rela[1];
- };
-@@ -5928,6 +6070,10 @@
- const struct elf_link_sort_rela *b = B;
- int copya, copyb;
-
-+ if (a->elf_bucket < b->elf_bucket)
-+ return -1;
-+ if (a->elf_bucket > b->elf_bucket)
-+ return 1;
- if (a->u.offset < b->u.offset)
- return -1;
- if (a->u.offset > b->u.offset)
-@@ -5946,8 +6092,9 @@
- }
-
- static size_t
--elf_link_sort_relocs (bfd *abfd, struct bfd_link_info *info, asection **psec)
-+elf_link_sort_relocs (bfd *abfd, struct elf_final_link_info *finfo, asection **psec)
- {
-+ struct bfd_link_info *info = finfo->info;
- asection *reldyn;
- bfd_size_type count, size;
- size_t i, ret, sort_elt, ext_size;
-@@ -5959,6 +6106,8 @@
- void (*swap_out) (bfd *, const Elf_Internal_Rela *, bfd_byte *);
- struct bfd_link_order *lo;
- bfd_vma r_sym_mask;
-+ int r_sym_shift;
-+ int do_sort_relocs = !getenv ("DONT_SORT_RELOCS");
-
- reldyn = bfd_get_section_by_name (abfd, ".rela.dyn");
- if (reldyn == NULL || reldyn->size == 0)
-@@ -6000,15 +6149,29 @@
- }
-
- if (bed->s->arch_size == 32)
-- r_sym_mask = ~(bfd_vma) 0xff;
-+ {
-+ r_sym_mask = ~(bfd_vma) 0xff;
-+ r_sym_shift = 8;
-+ }
- else
-- r_sym_mask = ~(bfd_vma) 0xffffffff;
-+ {
-+ r_sym_mask = ~(bfd_vma) 0xffffffff;
-+ r_sym_shift = 32;
-+ }
-
- for (lo = reldyn->map_head.link_order; lo != NULL; lo = lo->next)
- if (lo->type == bfd_indirect_link_order)
- {
- bfd_byte *erel, *erelend;
- asection *o = lo->u.indirect.section;
-+ int base_offset = -1;
-+ int base_max = 0;
-+
-+ if (elf_hash_table (info)->sorted_size > 0)
-+ {
-+ base_offset = elf_hash_table (info)->sorted[0]->dynindx;
-+ base_max = base_offset + elf_hash_table (info)->sorted_size;
-+ }
-
- if (o->contents == NULL && o->size != 0)
- {
-@@ -6023,10 +6186,25 @@
- p = sort + o->output_offset / ext_size * sort_elt;
- while (erel < erelend)
- {
-+ long dyn_idx;
-+ size_t bucketcount = elf_hash_table (info)->bucketcount;
- struct elf_link_sort_rela *s = (struct elf_link_sort_rela *) p;
- (*swap_in) (abfd, erel, s->rela);
- s->type = (*bed->elf_backend_reloc_type_class) (s->rela);
- s->u.sym_mask = r_sym_mask;
-+
-+ if (s->type != reloc_class_relative)
-+ dyn_idx = s->rela->r_info >> r_sym_shift;
-+ else
-+ dyn_idx = -1;
-+
-+ if (do_sort_relocs &&
-+ base_offset >= 0 &&
-+ dyn_idx < base_max && dyn_idx >= base_offset)
-+ s->elf_bucket = elf_hash_table (info)->sorted [dyn_idx - base_offset]->u.elf_hash_value % bucketcount;
-+ else
-+ s->elf_bucket = 0;
-+
- p += sort_elt;
- erel += ext_size;
- }
-@@ -8426,7 +8604,7 @@
- }
-
- if (dynamic && info->combreloc && dynobj != NULL)
-- relativecount = elf_link_sort_relocs (abfd, info, &reldyn);
-+ relativecount = elf_link_sort_relocs (abfd, &finfo, &reldyn);
-
- /* If we are linking against a dynamic object, or generating a
- shared library, finish up the dynamic linking information. */
-diff -u -r -x texis -x Makeconfig -x version.h -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' binutils-2.16.91.0.4/bfd/elf-m10300.c binutils.current/bfd/elf-m10300.c
---- binutils-2.16.91.0.4/bfd/elf-m10300.c 2005-11-13 17:16:34.000000000 +0000
-+++ binutils.current/bfd/elf-m10300.c 2005-12-23 14:06:10.000000000 +0000
-@@ -3729,8 +3729,7 @@
-
- _bfd_generic_link_hash_table_free
- ((struct bfd_link_hash_table *) ret->static_hash_table);
-- _bfd_generic_link_hash_table_free
-- ((struct bfd_link_hash_table *) ret);
-+ _bfd_elf_link_hash_table_free (hash);
- }
-
- static unsigned long
-diff -u -r -x texis -x Makeconfig -x version.h -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' binutils-2.16.91.0.4/bfd/elf-strtab.c binutils.current/bfd/elf-strtab.c
---- binutils-2.16.91.0.4/bfd/elf-strtab.c 2005-05-10 23:46:41.000000000 +0100
-+++ binutils.current/bfd/elf-strtab.c 2005-12-23 17:07:50.000000000 +0000
-@@ -39,6 +39,7 @@
- /* Entry this is a suffix of (if len < 0). */
- struct elf_strtab_hash_entry *suffix;
- } u;
-+ long hash_bucket;
- };
-
- /* The strtab hash table. */
-@@ -54,6 +55,8 @@
- bfd_size_type sec_size;
- /* Array of pointers to strtab entries. */
- struct elf_strtab_hash_entry **array;
-+ /* Array of pointers to strtab entries. */
-+ struct elf_strtab_hash_entry **array_sorted;
- };
-
- /* Routine to create an entry in a section merge hashtab. */
-@@ -117,6 +120,7 @@
- }
-
- table->array[0] = NULL;
-+ table->array_sorted = NULL;
-
- return table;
- }
-@@ -128,6 +132,8 @@
- {
- bfd_hash_table_free (&tab->table);
- free (tab->array);
-+ if (tab->array_sorted)
-+ free (tab->array_sorted);
- free (tab);
- }
-
-@@ -229,6 +235,12 @@
- _bfd_elf_strtab_emit (register bfd *abfd, struct elf_strtab_hash *tab)
- {
- bfd_size_type off = 1, i;
-+ struct elf_strtab_hash_entry **array;
-+
-+ if (tab->array_sorted != NULL)
-+ array = tab->array_sorted;
-+ else
-+ array = tab->array;
-
- if (bfd_bwrite ("", 1, abfd) != 1)
- return FALSE;
-@@ -238,12 +250,12 @@
- register const char *str;
- register unsigned int len;
-
-- BFD_ASSERT (tab->array[i]->refcount == 0);
-- len = tab->array[i]->len;
-+ BFD_ASSERT (array[i]->refcount == 0);
-+ len = array[i]->len;
- if ((int) len < 0)
- continue;
-
-- str = tab->array[i]->root.string;
-+ str = array[i]->root.string;
- if (bfd_bwrite (str, len, abfd) != len)
- return FALSE;
-
-@@ -278,6 +290,26 @@
- return lenA - lenB;
- }
-
-+/* sort by hash bucket position */
-+static int
-+hash_compare (const void *a, const void *b)
-+{
-+ struct elf_strtab_hash_entry *A = *(struct elf_strtab_hash_entry **) a;
-+ struct elf_strtab_hash_entry *B = *(struct elf_strtab_hash_entry **) b;
-+
-+ if (A->hash_bucket > B->hash_bucket)
-+ return 1;
-+ if (A->hash_bucket < B->hash_bucket)
-+ return -1;
-+
-+ /* Make qsort faster for lots of identical empty symbols */
-+ if (a > b)
-+ return 1;
-+ if (a < b)
-+ return -1;
-+ return 0;
-+}
-+
- static inline int
- is_suffix (const struct elf_strtab_hash_entry *A,
- const struct elf_strtab_hash_entry *B)
-@@ -293,9 +325,8 @@
-
- /* This function assigns final string table offsets for used strings,
- merging strings matching suffixes of longer strings if possible. */
--
- void
--_bfd_elf_strtab_finalize (struct elf_strtab_hash *tab)
-+_bfd_elf_strtab_finalize (struct elf_strtab_hash *tab, size_t bucket_count)
- {
- struct elf_strtab_hash_entry **array, **a, *e;
- bfd_size_type size, amt;
-@@ -361,15 +392,37 @@
- }
- }
-
--alloc_failure:
-- if (array)
-- free (array);
-+ if (bucket_count && !getenv ("DONT_SORT_SYMS"))
-+ {
-+ array[0] = NULL;
-+ for (i = 1; i < tab->size; ++i)
-+ {
-+ e = tab->array[i];
-+ array[i] = e;
-+
-+ if (e->len > 0)
-+ {
-+ e->hash_bucket = _bfd_elf_ver_hash (e->root.string);
-+ e->hash_bucket %= bucket_count;
-+ }
-+ else
-+ e->hash_bucket = 0;
-+ }
-+ qsort (array + 1, tab->size - 1, sizeof (struct elf_strtab_hash_entry *), hash_compare);
-+ tab->array_sorted = array;
-+ }
-+ else
-+ {
-+ free (array);
-+ alloc_failure:
-+ array = tab->array;
-+ }
-
- /* Assign positions to the strings we want to keep. */
- size = 1;
- for (i = 1; i < tab->size; ++i)
- {
-- e = tab->array[i];
-+ e = array[i];
- if (e->refcount && e->len > 0)
- {
- e->u.index = size;
-@@ -382,7 +435,7 @@
- /* Adjust the rest. */
- for (i = 1; i < tab->size; ++i)
- {
-- e = tab->array[i];
-+ e = array[i];
- if (e->refcount && e->len < 0)
- e->u.index = e->u.suffix->u.index + (e->u.suffix->len + e->len);
- }
-diff -u -r -x texis -x Makeconfig -x version.h -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' binutils-2.16.91.0.4/bfd/elfxx-target.h binutils.current/bfd/elfxx-target.h
---- binutils-2.16.91.0.4/bfd/elfxx-target.h 2005-08-22 20:27:41.000000000 +0100
-+++ binutils.current/bfd/elfxx-target.h 2005-12-23 14:06:51.000000000 +0000
-@@ -205,7 +205,7 @@
- #endif
-
- #ifndef bfd_elfNN_bfd_link_hash_table_free
--#define bfd_elfNN_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
-+#define bfd_elfNN_bfd_link_hash_table_free _bfd_elf_link_hash_table_free
- #endif
-
- #ifdef elf_backend_relocate_section
diff --git a/patches/test/binutils-objprel.diff b/patches/test/binutils-objprel.diff
deleted file mode 100644
index cc687eb53..000000000
--- a/patches/test/binutils-objprel.diff
+++ /dev/null
@@ -1,190 +0,0 @@
---- binutils-2.16/bfd/elf32-i386.c 2005-02-06 18:11:29.000000000 +0000
-+++ binutils.current/bfd/elf32-i386.c 2005-08-17 11:33:49.000000000 +0100
-@@ -24,6 +24,9 @@
- #include "libbfd.h"
- #include "elf-bfd.h"
-
-+/* define for old behavior */
-+#undef SANE_PLT
-+
- /* 386 uses REL relocations instead of RELA. */
- #define USE_REL 1
-
-@@ -495,6 +498,36 @@
- 0, 0, 0, 0 /* replaced with offset to start of .plt. */
- };
-
-+
-+#ifndef SANE_PLT
-+/*
-+ PLT0: pushl GOT+4
-+ jmp *GOT+8
-+ ....
-+ PLTi: jmp *GOT+offset_of_got_entry
-+ pushl $relocation_record_for_got_entry
-+ jmp PLT0
-+*/
-+
-+static const bfd_byte elf_i386_pic_plt0_entry[PLT_ENTRY_SIZE] =
-+{
-+ 0x68, 0, 0, 0, 0, /* pushl $junk */
-+ 0x68, 0, 0, 0, 0, /* pushl $junk */
-+ 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 /* pad out to 16 bytes. */
-+};
-+
-+/* Subsequent entries in a PIC procedure linkage table look like this. */
-+
-+static const bfd_byte elf_i386_pic_plt_entry[PLT_ENTRY_SIZE] =
-+{
-+ 0xe9, 0xfc, 0xff, 0xff, 0xff, /* jmp xxx@PC */
-+ 0x68, 0, 0, 0, 0, /* push $junk */
-+ 0xe9, /* jmp relative */
-+ 0, 0, 0, 0 /* replaced with offset to start of .plt. */
-+};
-+
-+#else /* SANE_PLT */
-+
- /* The first entry in a PIC procedure linkage table look like this. */
-
- static const bfd_byte elf_i386_pic_plt0_entry[PLT_ENTRY_SIZE] =
-@@ -515,6 +548,7 @@
- 0xe9, /* jmp relative */
- 0, 0, 0, 0 /* replaced with offset to start of .plt. */
- };
-+#endif
-
- /* The i386 linker needs to keep track of the number of relocs that it
- decides to copy as dynamic relocs in check_relocs for each symbol.
-@@ -552,7 +586,7 @@
- #define GOT_TLS_IE_POS 5
- #define GOT_TLS_IE_NEG 6
- #define GOT_TLS_IE_BOTH 7
-- unsigned char tls_type;
-+ unsigned char tls_type : 7;
- };
-
- #define elf_i386_hash_entry(ent) ((struct elf_i386_link_hash_entry *)(ent))
-@@ -1524,6 +1558,10 @@
- will be placed in the .got section by the linker script. */
- htab->sgotplt->size += 4;
-
-+#ifndef SANE_PLT
-+ htab->srelgot->size += 2 * sizeof (Elf32_External_Rel);
-+#endif
-+
- /* We also need to make an entry in the .rel.plt section. */
- htab->srelplt->size += sizeof (Elf32_External_Rel);
- }
-@@ -2324,6 +2362,9 @@
- break;
- }
-
-+ /* FIXME: foo - this is where we go wrong ! - we need to
-+ emit a R_386_RELATIVE reloc - for this point ... PLUS
-+ an absolute ref [as currently] to the plt ... */
- relocation = (htab->splt->output_section->vma
- + htab->splt->output_offset
- + h->plt.offset);
-@@ -3034,21 +3075,46 @@
- {
- memcpy (htab->splt->contents + h->plt.offset, elf_i386_pic_plt_entry,
- PLT_ENTRY_SIZE);
-+#ifndef SANE_PLT
-+ /* Abs address of the plt slot */
-+ bfd_put_32 (output_bfd,
-+ (htab->sgotplt->output_section->vma
-+ + htab->sgotplt->output_offset
-+ + got_offset),
-+ htab->splt->contents + h->plt.offset + 1);
-+#else
- bfd_put_32 (output_bfd, got_offset,
- htab->splt->contents + h->plt.offset + 2);
-+#endif
- }
-
- bfd_put_32 (output_bfd, plt_index * sizeof (Elf32_External_Rel),
-- htab->splt->contents + h->plt.offset + 7);
-+ htab->splt->contents + h->plt.offset
-+#ifndef SANE_PLT
-+ + 6
-+#else
-+ + 7
-+#endif
-+ );
- bfd_put_32 (output_bfd, - (h->plt.offset + PLT_ENTRY_SIZE),
-- htab->splt->contents + h->plt.offset + 12);
--
-+ htab->splt->contents + h->plt.offset
-+#ifndef SANE_PLT
-+ + 11
-+#else
-+ + 12
-+#endif
-+ );
- /* Fill in the entry in the global offset table. */
- bfd_put_32 (output_bfd,
- (htab->splt->output_section->vma
- + htab->splt->output_offset
- + h->plt.offset
-- + 6),
-+#ifndef SANE_PLT
-+ + 6
-+#else
-+ + 5
-+#endif
-+ ),
- htab->sgotplt->contents + got_offset);
-
- /* Fill in the entry in the .rel.plt section. */
-@@ -3059,6 +3125,28 @@
- loc = htab->srelplt->contents + plt_index * sizeof (Elf32_External_Rel);
- bfd_elf32_swap_reloc_out (output_bfd, &rel, loc);
-
-+#ifndef SANE_PLT
-+{ // whack it randomly in srelgot
-+ asection *s;
-+ bfd_byte *loc;
-+
-+ s = htab->srelgot;
-+ if (s == NULL)
-+ abort ();
-+
-+ rel.r_offset = (htab->splt->output_section->vma
-+ + htab->splt->output_offset
-+ + h->plt.offset + 1);
-+ rel.r_info = ELF32_R_INFO (0, R_386_RELATIVE);
-+ loc = s->contents + s->reloc_count++ * sizeof (Elf32_External_Rel);
-+ bfd_elf32_swap_reloc_out (output_bfd, &rel, loc);
-+
-+ rel.r_offset += 5;
-+ loc = s->contents + s->reloc_count++ * sizeof (Elf32_External_Rel);
-+ bfd_elf32_swap_reloc_out (output_bfd, &rel, loc);
-+}
-+#endif
-+
- if (!h->def_regular)
- {
- /* Mark the symbol as undefined, rather than as defined in
-@@ -3248,8 +3336,22 @@
- if (htab->splt && htab->splt->size > 0)
- {
- if (info->shared)
-+ {
- memcpy (htab->splt->contents,
- elf_i386_pic_plt0_entry, PLT_ENTRY_SIZE);
-+#ifndef SANE_PLT
-+ bfd_put_32 (output_bfd,
-+ (htab->sgotplt->output_section->vma
-+ + htab->sgotplt->output_offset
-+ + 4),
-+ htab->splt->contents + 1);
-+ bfd_put_32 (output_bfd,
-+ (htab->sgotplt->output_section->vma
-+ + htab->sgotplt->output_offset
-+ + 8),
-+ htab->splt->contents + 6);
-+#endif
-+ }
- else
- {
- memcpy (htab->splt->contents,
diff --git a/patches/test/binutils-pltabs.diff b/patches/test/binutils-pltabs.diff
deleted file mode 100644
index f5006dd24..000000000
--- a/patches/test/binutils-pltabs.diff
+++ /dev/null
@@ -1,177 +0,0 @@
-diff -x '*.info*' -u -r binutils-2.16/bfd/bfd-in2.h binutils-2.16.current/bfd/bfd-in2.h
---- binutils-2.16/bfd/bfd-in2.h 2005-03-02 21:23:20.000000000 +0000
-+++ binutils-2.16.current/bfd/bfd-in2.h 2005-07-18 17:00:00.000000000 +0100
-@@ -2476,6 +2476,7 @@
- /* i386/elf relocations */
- BFD_RELOC_386_GOT32,
- BFD_RELOC_386_PLT32,
-+ BFD_RELOC_386_PLT32ABS,
- BFD_RELOC_386_COPY,
- BFD_RELOC_386_GLOB_DAT,
- BFD_RELOC_386_JUMP_SLOT,
-
-diff -x '*.info*' -u -r binutils-2.16/bfd/elf32-i386.c binutils-2.16.current/bfd/elf32-i386.c
---- binutils-2.16/bfd/elf32-i386.c 2005-02-06 18:11:29.000000000 +0000
-+++ binutils-2.16.current/bfd/elf32-i386.c 2005-07-18 20:27:47.855822520 +0100
-@@ -158,9 +158,13 @@
- FALSE, /* partial_inplace */
- 0, /* src_mask */
- 0, /* dst_mask */
-- FALSE) /* pcrel_offset */
-+ FALSE), /* pcrel_offset */
-
--#define R_386_vt (R_386_GNU_VTENTRY + 1 - R_386_vt_offset)
-+ HOWTO(R_386_PLT32ABS, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
-+ bfd_elf_generic_reloc, "R_386_PLT32ABS",
-+ TRUE, 0xffffffff, 0xffffffff, FALSE)
-+
-+#define R_386_vt (R_386_GNU_VTENTRY + 2 - R_386_vt_offset)
-
- };
-
-@@ -299,6 +303,10 @@
- TRACE ("BFD_RELOC_VTABLE_ENTRY");
- return &elf_howto_table[R_386_GNU_VTENTRY - R_386_vt_offset];
-
-+ case BFD_RELOC_386_PLT32ABS:
-+ TRACE ("BFD_RELOC_386_PLT32ABS");
-+ return &elf_howto_table[R_386_PLT32ABS - R_386_vt_offset];
-+
- default:
- break;
- }
-@@ -882,6 +890,7 @@
- goto create_got;
-
- case R_386_PLT32:
-+ case R_386_PLT32ABS:
- /* This symbol requires a procedure linkage table entry. We
- actually build the entry in adjust_dynamic_symbol,
- because this might be a case of linking PIC code which is
-@@ -1295,6 +1304,7 @@
- /* Fall through */
-
- case R_386_PLT32:
-+ case R_386_PLT32ABS:
- if (h != NULL)
- {
- if (h->plt.refcount > 0)
-@@ -2037,7 +2047,10 @@
- && ((indx = r_type - R_386_ext_offset) - R_386_standard
- >= R_386_ext - R_386_standard)
- && ((indx = r_type - R_386_tls_offset) - R_386_ext
-- >= R_386_tls - R_386_ext))
-+ >= R_386_tls - R_386_ext)
-+ && (indx = r_type - R_386_vt_offset) - R_386_tls
-+ >= R_386_vt - R_386_tls
-+ )
- {
- (*_bfd_error_handler)
- (_("%B: unrecognized relocation (0x%x) in section `%A'"),
-@@ -2307,6 +2320,7 @@
- break;
-
- case R_386_PLT32:
-+ case R_386_PLT32ABS:
- /* Relocation is to the entry for this symbol in the
- procedure linkage table. */
-
-@@ -2481,7 +2495,8 @@
- contents + rel->r_offset + 4)
- == 0xe8);
- BFD_ASSERT (rel + 1 < relend);
-- BFD_ASSERT (ELF32_R_TYPE (rel[1].r_info) == R_386_PLT32);
-+ BFD_ASSERT (ELF32_R_TYPE (rel[1].r_info) == R_386_PLT32 ||
-+ ELF32_R_TYPE (rel[1].r_info) == R_386_PLT32ABS);
- roff = rel->r_offset + 5;
- val = bfd_get_8 (input_bfd,
- contents + rel->r_offset - 1);
-@@ -2755,7 +2770,8 @@
- BFD_ASSERT (bfd_get_8 (input_bfd, contents + rel->r_offset + 4)
- == 0xe8);
- BFD_ASSERT (rel + 1 < relend);
-- BFD_ASSERT (ELF32_R_TYPE (rel[1].r_info) == R_386_PLT32);
-+ BFD_ASSERT (ELF32_R_TYPE (rel[1].r_info) == R_386_PLT32 ||
-+ ELF32_R_TYPE (rel[1].r_info) == R_386_PLT32ABS);
- roff = rel->r_offset - 3;
- val = bfd_get_8 (input_bfd, contents + rel->r_offset - 1);
- if (type == 0x04)
-@@ -2827,7 +2843,8 @@
- BFD_ASSERT (bfd_get_8 (input_bfd, contents + rel->r_offset + 4)
- == 0xe8);
- BFD_ASSERT (rel + 1 < relend);
-- BFD_ASSERT (ELF32_R_TYPE (rel[1].r_info) == R_386_PLT32);
-+ BFD_ASSERT (ELF32_R_TYPE (rel[1].r_info) == R_386_PLT32 ||
-+ ELF32_R_TYPE (rel[1].r_info) == R_386_PLT32ABS);
- memcpy (contents + rel->r_offset - 2,
- "\x65\xa1\0\0\0\0\x90\x8d\x74\x26", 11);
- /* Skip R_386_PLT32. */
-diff -x '*.info*' -u -r binutils-2.16/bfd/libbfd.h binutils-2.16.current/bfd/libbfd.h
---- binutils-2.16/bfd/libbfd.h 2005-03-02 21:23:21.000000000 +0000
-+++ binutils-2.16.current/bfd/libbfd.h 2005-07-18 17:00:00.000000000 +0100
-@@ -993,6 +993,7 @@
-
- "BFD_RELOC_386_GOT32",
- "BFD_RELOC_386_PLT32",
-+ "BFD_RELOC_386_PLT32ABS",
- "BFD_RELOC_386_COPY",
- "BFD_RELOC_386_GLOB_DAT",
- "BFD_RELOC_386_JUMP_SLOT",
-diff -x '*.info*' -u -r binutils-2.16/bfd/reloc.c binutils-2.16.current/bfd/reloc.c
---- binutils-2.16/bfd/reloc.c 2005-03-02 21:23:21.000000000 +0000
-+++ binutils-2.16.current/bfd/reloc.c 2005-07-18 17:00:00.000000000 +0100
-@@ -2279,6 +2279,8 @@
- ENUMX
- BFD_RELOC_386_PLT32
- ENUMX
-+ BFD_RELOC_386_PLT32ABS
-+ENUMX
- BFD_RELOC_386_COPY
- ENUMX
- BFD_RELOC_386_GLOB_DAT
-diff -x '*.info*' -u -r binutils-2.16/gas/config/tc-i386.c binutils-2.16.current/gas/config/tc-i386.c
---- binutils-2.16/gas/config/tc-i386.c 2005-04-13 18:58:42.000000000 +0100
-+++ binutils-2.16.current/gas/config/tc-i386.c 2005-07-18 20:13:12.320924056 +0100
-@@ -1276,6 +1276,7 @@
- /* adjust_reloc_syms doesn't know about the GOT. */
- if (fixP->fx_r_type == BFD_RELOC_386_GOTOFF
- || fixP->fx_r_type == BFD_RELOC_386_PLT32
-+ || fixP->fx_r_type == BFD_RELOC_386_PLT32ABS
- || fixP->fx_r_type == BFD_RELOC_386_GOT32
- || fixP->fx_r_type == BFD_RELOC_386_TLS_GD
- || fixP->fx_r_type == BFD_RELOC_386_TLS_LDM
-@@ -3682,6 +3683,7 @@
- const char *str;
- const enum bfd_reloc_code_real rel[NUM_FLAG_CODE];
- } gotrel[] = {
-+ { "PLTABS", { BFD_RELOC_386_PLT32ABS, 0, BFD_RELOC_X86_64_PLT32 } },
- { "PLT", { BFD_RELOC_386_PLT32, 0, BFD_RELOC_X86_64_PLT32 } },
- { "GOTOFF", { BFD_RELOC_386_GOTOFF, 0, 0 } },
- { "GOTPCREL", { 0, 0, BFD_RELOC_X86_64_GOTPCREL } },
-@@ -4860,6 +4862,7 @@
- switch (fixP->fx_r_type)
- {
- case BFD_RELOC_386_PLT32:
-+ case BFD_RELOC_386_PLT32ABS:
- case BFD_RELOC_X86_64_PLT32:
- /* Make the jump instruction point to the address of the operand. At
- runtime we merely add the offset to the actual PLT entry. */
-@@ -5345,6 +5348,7 @@
- case BFD_RELOC_X86_64_GOT32:
- case BFD_RELOC_X86_64_GOTPCREL:
- case BFD_RELOC_386_PLT32:
-+ case BFD_RELOC_386_PLT32ABS:
- case BFD_RELOC_386_GOT32:
- case BFD_RELOC_386_GOTOFF:
- case BFD_RELOC_386_GOTPC:
-diff -x '*.info*' -u -r binutils-2.16/include/elf/i386.h binutils-2.16.current/include/elf/i386.h
---- binutils-2.16/include/elf/i386.h 2005-03-03 11:58:06.000000000 +0000
-+++ binutils-2.16.current/include/elf/i386.h 2005-07-18 17:28:10.000000000 +0100
-@@ -68,6 +68,7 @@
- /* These are GNU extensions to enable C++ vtable garbage collection. */
- RELOC_NUMBER (R_386_GNU_VTINHERIT, 250)
- RELOC_NUMBER (R_386_GNU_VTENTRY, 251)
-+ RELOC_NUMBER (R_386_PLT32ABS, 252)
- END_RELOC_NUMBERS (R_386_max)
-
- #endif
diff --git a/patches/test/canvas-demo.diff b/patches/test/canvas-demo.diff
deleted file mode 100644
index 8906f11f2..000000000
--- a/patches/test/canvas-demo.diff
+++ /dev/null
@@ -1,445 +0,0 @@
---- /dev/null 2004-08-25 18:34:59.000000000 +0100
-+++ canvas/workben/canvasdemo.cxx 2005-03-29 16:00:41.064835960 +0100
-@@ -0,0 +1,442 @@
-+// This code strongly inspired by Miguel / Federico's Gnome Canvas demo code.
-+
-+#include <stdio.h>
-+#include <unistd.h>
-+#include <math.h>
-+
-+#include <comphelper/processfactory.hxx>
-+#include <comphelper/regpathhelper.hxx>
-+#include <cppuhelper/servicefactory.hxx>
-+#include <cppuhelper/bootstrap.hxx>
-+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-+#include <com/sun/star/lang/XInitialization.hpp>
-+#include <com/sun/star/registry/XSimpleRegistry.hpp>
-+
-+#include <ucbhelper/contentbroker.hxx>
-+#include <ucbhelper/configurationkeys.hxx>
-+
-+#include <vcl/window.hxx>
-+#include <vcl/svapp.hxx>
-+#include <vcl/msgbox.hxx>
-+#include <vcl/canvastools.hxx>
-+
-+#include <rtl/bootstrap.hxx>
-+
-+#include <com/sun/star/rendering/XCanvas.hpp>
-+#include <com/sun/star/rendering/FillRule.hpp>
-+#include <com/sun/star/rendering/ViewState.hpp>
-+#include <com/sun/star/rendering/RenderState.hpp>
-+#include <com/sun/star/rendering/PathCapType.hpp>
-+#include <com/sun/star/rendering/PathJoinType.hpp>
-+#include <com/sun/star/rendering/XSpriteCanvas.hpp>
-+#include <com/sun/star/rendering/XGraphicDevice.hpp>
-+#include <com/sun/star/rendering/CompositeOperation.hpp>
-+
-+// never import whole leaf namespaces, since this will result in
-+// absolutely weird effects during (Koenig) name lookup
-+using namespace ::com::sun::star;
-+
-+
-+class GalApp : public Application
-+{
-+public:
-+ virtual void Main();
-+};
-+
-+static void PrintHelp()
-+{
-+ fprintf( stdout, "canvasdemo - Exercise the new canvas impl\n" );
-+}
-+
-+class TestWindow : public Dialog
-+{
-+ public:
-+ TestWindow() : Dialog( (Window *) NULL )
-+ {
-+ SetText( rtl::OUString::createFromAscii( "Canvas test" ) );
-+ SetSizePixel( Size( 600, 450 ) );
-+ EnablePaint( true );
-+ Show();
-+ }
-+ virtual ~TestWindow() {}
-+ virtual void MouseButtonUp( const MouseEvent& rMEvt )
-+ {
-+ EndDialog();
-+ }
-+ virtual void Paint( const Rectangle& rRect );
-+};
-+
-+class DemoRenderer
-+{
-+ public:
-+ Size maSize;
-+ Size maBox;
-+ rendering::ViewState maViewState;
-+ rendering::RenderState maRenderState;
-+ uno::Sequence< double > maColorBlack;
-+ uno::Sequence< double > maColorWhite;
-+ uno::Sequence< double > maColorRed;
-+ uno::Reference< rendering::XCanvas > mxCanvas;
-+ uno::Reference< rendering::XCanvasFont > mxDefaultFont;
-+ uno::Reference< rendering::XGraphicDevice > mxDevice;
-+
-+ DemoRenderer( uno::Reference< rendering::XGraphicDevice > xDevice,
-+ uno::Reference< rendering::XCanvas > xCanvas,
-+ Size aSize ) :
-+ mxDevice( xDevice ), mxCanvas( xCanvas ), maSize( aSize )
-+ {
-+ // Color init
-+ maColorBlack = ::vcl::unotools::colorToDoubleSequence( xDevice, Color( COL_BLACK ) );
-+ maColorWhite = ::vcl::unotools::colorToDoubleSequence( xDevice, Color( COL_WHITE ) );
-+ maColorRed = ::vcl::unotools::colorToDoubleSequence( xDevice, Color( COL_RED ) );
-+ // Geometry init
-+ geometry::AffineMatrix2D aUnit( 1,0, 0,
-+ 0,1, 0 );
-+ maViewState.AffineTransform = aUnit;
-+ maRenderState.AffineTransform = aUnit;
-+ maRenderState.DeviceColor = maColorBlack;
-+ maRenderState.CompositeOperation = rendering::CompositeOperation::OVER;
-+ maBox.Width() = aSize.Width() / 3;
-+ maBox.Height() = aSize.Height() / 3;
-+
-+ lang::Locale aLocale;
-+ rendering::FontInfo aFontInfo;
-+ aFontInfo.FamilyName = ::rtl::OUString::createFromAscii( "Swiss" );
-+ aFontInfo.StyleName = ::rtl::OUString::createFromAscii( "SansSerif" );
-+ geometry::Matrix2D aFontMatrix( 1, 0,
-+ 0, 1 );
-+ rendering::FontRequest aFontRequest( aFontInfo, 12.0, 12.0, aLocale );
-+ uno::Sequence< beans::PropertyValue > aExtraFontProperties;
-+ mxDefaultFont = xCanvas->createFont( aFontRequest, aExtraFontProperties, aFontMatrix );
-+ if( !mxDefaultFont.is() )
-+ fprintf( stderr, "Failed to create font\n" );
-+ }
-+
-+ void drawGrid()
-+ {
-+ double d, dIncr = maSize.Width() / 3;
-+ for ( d = 0; d <= maSize.Width(); d += dIncr )
-+ mxCanvas->drawLine( geometry::RealPoint2D( d, 0 ),
-+ geometry::RealPoint2D( d, maSize.Height() ),
-+ maViewState, maRenderState );
-+ dIncr = maSize.Height() / 3;
-+ for ( d = 0; d <= maSize.Height(); d += dIncr )
-+ mxCanvas->drawLine( geometry::RealPoint2D( 0, d ),
-+ geometry::RealPoint2D( maSize.Width(), d ),
-+ maViewState, maRenderState );
-+ }
-+
-+ void drawStringAt( ::rtl::OString aString, double x, double y )
-+ {
-+ rendering::StringContext aText;
-+ aText.Text = ::rtl::OStringToOUString( aString, RTL_TEXTENCODING_UTF8 );
-+ aText.StartPosition = 0;
-+ aText.Length = aString.getLength();
-+ rendering::RenderState aRenderState( maRenderState );
-+ aRenderState.AffineTransform.m02 += x;
-+ aRenderState.AffineTransform.m12 += y;
-+
-+ mxCanvas->drawText( aText, mxDefaultFont, maViewState, aRenderState, 0);
-+ }
-+
-+ void drawRect( Rectangle rRect, uno::Sequence< double > &aColor, int nWidth )
-+ {
-+ uno::Sequence< geometry::RealPoint2D > aPoints(4);
-+ uno::Reference< rendering::XLinePolyPolygon2D > xPoly;
-+
-+ aPoints[0] = geometry::RealPoint2D( rRect.Left(), rRect.Top() );
-+ aPoints[1] = geometry::RealPoint2D( rRect.Left(), rRect.Bottom() );
-+ aPoints[2] = geometry::RealPoint2D( rRect.Right(), rRect.Bottom() );
-+ aPoints[3] = geometry::RealPoint2D( rRect.Right(), rRect.Top() );
-+
-+ uno::Sequence< uno::Sequence< geometry::RealPoint2D > > aPolys(1);
-+ aPolys[0] = aPoints;
-+ xPoly = mxDevice->createCompatibleLinePolyPolygon( aPolys );
-+ xPoly->setClosed( 0, true );
-+ uno::Reference< rendering::XPolyPolygon2D> xPP( xPoly, uno::UNO_QUERY );
-+
-+ rendering::RenderState aRenderState( maRenderState );
-+ aRenderState.DeviceColor = aColor;
-+ mxCanvas->drawPolyPolygon( xPP, maViewState, aRenderState );
-+ }
-+
-+ void translate( double x, double y)
-+ {
-+ maRenderState.AffineTransform.m02 += x;
-+ maRenderState.AffineTransform.m12 += y;
-+ }
-+
-+ void drawPolishDiamond( double center_x, double center_y)
-+ {
-+ const int VERTICES = 10;
-+ const double RADIUS = 60.0;
-+ int i, j;
-+ double a;
-+
-+ rendering::RenderState maOldRenderState = maRenderState; // push
-+ translate( center_x, center_y );
-+
-+ for (i = 0; i < VERTICES; i++)
-+ {
-+ a = 2.0 * M_PI * i / VERTICES;
-+ geometry::RealPoint2D aSrc( RADIUS * cos (a), RADIUS * sin (a) );
-+
-+ for (j = i + 1; j < VERTICES; j++)
-+ {
-+ a = 2.0 * M_PI * j / VERTICES;
-+
-+// FIXME: set cap_style to 'ROUND'
-+ mxCanvas->drawLine( aSrc,
-+ geometry::RealPoint2D( RADIUS * cos (a),
-+ RADIUS * sin (a) ),
-+ maViewState, maRenderState );
-+ }
-+ }
-+
-+ maRenderState = maOldRenderState; // pop
-+ }
-+
-+ void drawHilbert( double anchor_x, double anchor_y )
-+ {
-+ const double SCALE=7.0;
-+ const char hilbert[] = "urdrrulurulldluuruluurdrurddldrrruluurdrurddldrddlulldrdldrrurd";
-+ char *c;
-+ double *pp, *p;
-+ int nLength = sizeof( hilbert ) / sizeof (hilbert [0]);
-+
-+ uno::Sequence< geometry::RealPoint2D > aPoints( nLength );
-+ uno::Reference< rendering::XLinePolyPolygon2D > xPoly;
-+
-+ aPoints[0] = geometry::RealPoint2D( anchor_x, anchor_y );
-+ for (int i = 0; i < nLength; i++ )
-+ {
-+ switch( hilbert[i] )
-+ {
-+ case 'u':
-+ aPoints[i+1] = geometry::RealPoint2D( aPoints[i].X,
-+ aPoints[i].Y - SCALE );
-+ break;
-+ case 'd':
-+ aPoints[i+1] = geometry::RealPoint2D( aPoints[i].X,
-+ aPoints[i].Y + SCALE );
-+ break;
-+ case 'l':
-+ aPoints[i+1] = geometry::RealPoint2D( aPoints[i].X - SCALE,
-+ aPoints[i].Y );
-+ break;
-+ case 'r':
-+ aPoints[i+1] = geometry::RealPoint2D( aPoints[i].X + SCALE,
-+ aPoints[i].Y );
-+ break;
-+ }
-+ }
-+
-+ uno::Sequence< uno::Sequence< geometry::RealPoint2D > > aPolys(1);
-+ aPolys[0] = aPoints;
-+
-+ xPoly = mxDevice->createCompatibleLinePolyPolygon( aPolys );
-+ xPoly->setClosed( 0, false );
-+ uno::Reference< rendering::XPolyPolygon2D> xPP( xPoly, uno::UNO_QUERY );
-+
-+ rendering::RenderState aRenderState( maRenderState );
-+ aRenderState.DeviceColor = maColorRed;
-+// aRenderState.DeviceColor[3] = 0.5;
-+ rendering::StrokeAttributes aStrokeAttrs;
-+ aStrokeAttrs.StrokeWidth = 4.0;
-+ aStrokeAttrs.MiterLimit = 2.0; // ?
-+ aStrokeAttrs.StartCapType = rendering::PathCapType::BUTT;
-+ aStrokeAttrs.EndCapType = rendering::PathCapType::BUTT;
-+ aStrokeAttrs.JoinType = rendering::PathJoinType::MITER;
-+ fprintf( stderr, "FIXME: stroking a PolyPolygon doesn't show up\n" );
-+ mxCanvas->strokePolyPolygon( xPP, maViewState, aRenderState, aStrokeAttrs );
-+ // FIXME: do this instead:
-+ mxCanvas->drawPolyPolygon( xPP, maViewState, aRenderState );
-+ }
-+
-+ void drawTitle( rtl::OString aTitle )
-+ {
-+ // FIXME: text anchoring to be done
-+ double nStringWidth = aTitle.getLength() * 8.0;
-+ drawStringAt ( aTitle, (maBox.Width() - nStringWidth) / 2, 15 );
-+ }
-+
-+ void drawRectangles()
-+ {
-+ rendering::RenderState maOldRenderState = maRenderState; // push
-+
-+ drawTitle( ::rtl::OString( "Rectangles" ) );
-+
-+ drawRect( Rectangle( 20, 30, 70, 60 ), maColorRed, 8 );
-+ // color mediumseagreen, stipple fill, outline black
-+ drawRect( Rectangle( 90, 40, 180, 100 ), maColorBlack, 4 );
-+ // color steelblue, filled, no outline
-+ drawRect( Rectangle( 10, 80, 80, 140 ), maColorBlack, 1 );
-+
-+ maRenderState = maOldRenderState; // pop
-+ }
-+
-+ void drawEllipses()
-+ {
-+ rendering::RenderState maOldRenderState = maRenderState; // push
-+ translate( maBox.Width(), 0.0 );
-+
-+ drawTitle( ::rtl::OString( "Ellipses" ) );
-+
-+ maRenderState = maOldRenderState; // pop
-+ }
-+
-+ void drawText()
-+ {
-+ rendering::RenderState maOldRenderState = maRenderState; // push
-+ translate( maBox.Width() * 2.0, 0.0 );
-+
-+ drawTitle( ::rtl::OString( "Text" ) );
-+
-+ maRenderState = maOldRenderState; // pop
-+ }
-+
-+ void drawImages()
-+ {
-+ rendering::RenderState maOldRenderState = maRenderState; // push
-+ translate( 0.0, maBox.Height() );
-+
-+ drawTitle( ::rtl::OString( "Images" ) );
-+
-+ maRenderState = maOldRenderState; // pop
-+ }
-+
-+ void drawLines()
-+ {
-+ rendering::RenderState maOldRenderState = maRenderState; // push
-+ translate( maBox.Width(), maBox.Height() );
-+
-+ drawTitle( ::rtl::OString( "Lines" ) );
-+
-+ drawPolishDiamond( 70.0, 80.0 );
-+ drawHilbert( 140.0, 140.0 );
-+
-+ maRenderState = maOldRenderState; // pop
-+ }
-+
-+ void drawCurves()
-+ {
-+ rendering::RenderState maOldRenderState = maRenderState; // push
-+ translate( maBox.Width() * 2.0, maBox.Height() );
-+
-+ drawTitle( ::rtl::OString( "Curves" ) );
-+
-+ maRenderState = maOldRenderState; // pop
-+ }
-+
-+ void drawArcs()
-+ {
-+ rendering::RenderState maOldRenderState = maRenderState; // push
-+ translate( 0.0, maBox.Height() * 2.0 );
-+
-+ drawTitle( ::rtl::OString( "Arcs" ) );
-+
-+ maRenderState = maOldRenderState; // pop
-+ }
-+
-+ void drawPolygons()
-+ {
-+ rendering::RenderState maOldRenderState = maRenderState; // push
-+ translate( maBox.Width() * 1.0, maBox.Height() * 2.0 );
-+
-+ drawTitle( ::rtl::OString( "Polgyons" ) );
-+
-+ maRenderState = maOldRenderState; // pop
-+ }
-+
-+ void drawWidgets() // FIXME: prolly makes no sense
-+ {
-+ rendering::RenderState maOldRenderState = maRenderState; // push
-+ translate( maBox.Width() * 2.0, maBox.Height() * 2.0 );
-+
-+ drawTitle( ::rtl::OString( "Widgets" ) );
-+
-+ maRenderState = maOldRenderState; // pop
-+ }
-+};
-+
-+
-+void TestWindow::Paint( const Rectangle& rRect )
-+{
-+ try
-+ {
-+ uno::Reference< rendering::XCanvas > xCanvas( GetCanvas(),
-+ uno::UNO_QUERY_THROW );
-+ uno::Reference< rendering::XGraphicDevice > xDevice( xCanvas->getDevice(),
-+ uno::UNO_QUERY_THROW );
-+
-+ DemoRenderer aRenderer( xDevice, xCanvas, GetSizePixel() );
-+ aRenderer.drawGrid();
-+ aRenderer.drawRectangles();
-+ aRenderer.drawEllipses();
-+ aRenderer.drawText();
-+ aRenderer.drawImages();
-+ aRenderer.drawLines();
-+ aRenderer.drawCurves();
-+ aRenderer.drawArcs();
-+ aRenderer.drawPolygons();
-+ aRenderer.drawWidgets();
-+
-+ uno::Reference< rendering::XSpriteCanvas > xSpriteCanvas( xCanvas, uno::UNO_QUERY_THROW );
-+ xSpriteCanvas->updateScreen( sal_True );
-+ }
-+ catch (const uno::Exception &e)
-+ {
-+ fprintf( stderr, "Exception '%s' thrown\n" ,
-+ (const sal_Char *) ::rtl::OUStringToOString( e.Message, RTL_TEXTENCODING_UTF8 ) );
-+ }
-+}
-+
-+static void basicInit()
-+{
-+ uno::Reference< lang::XMultiServiceFactory >
-+ xMSF = cppu::createRegistryServiceFactory(
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "canvasdemo.rdb" ) ), sal_True );
-+ ::comphelper::setProcessServiceFactory( xMSF );
-+
-+ // Without this no file access works ...
-+ ::ucb::ContentProviderDataList aData;
-+ ::ucb::ContentProviderData aFileProvider(
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ucb.FileContentProvider" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "file" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "" ) ) );
-+ aData.push_back( aFileProvider );
-+ ::ucb::ContentBroker::initialize( xMSF, aData );
-+}
-+
-+void GalApp::Main()
-+{
-+ bool bHelp = false;
-+
-+ for( USHORT i = 0; i < GetCommandLineParamCount(); i++ )
-+ {
-+ ::rtl::OUString aParam = GetCommandLineParam( i );
-+
-+ if( aParam.equalsAscii( "--help" ) ||
-+ aParam.equalsAscii( "-h" ) )
-+ bHelp = true;
-+ }
-+
-+ if( bHelp )
-+ {
-+ PrintHelp();
-+ return;
-+ }
-+
-+ basicInit();
-+
-+ TestWindow pWindow;
-+ pWindow.Execute();
-+}
-+
-+GalApp aGalApp;
-+
-+// TODO
-+// - bouncing clip-rectangle mode - bounce a clip-rect around the window ...
-+// - complete all of pre-existing canvas bits
-+// - affine transform tweakage ...
-+
diff --git a/patches/test/canvas-fix.diff b/patches/test/canvas-fix.diff
deleted file mode 100644
index 37a116163..000000000
--- a/patches/test/canvas-fix.diff
+++ /dev/null
@@ -1,34 +0,0 @@
-Index: canvas/source/factory/cf_service.cxx
-===================================================================
-RCS file: /cvs/gsl/canvas/source/factory/cf_service.cxx,v
-retrieving revision 1.2
-diff -u -p -u -r1.2 cf_service.cxx
---- canvas/source/factory/cf_service.cxx 26 Nov 2004 17:04:16 -0000 1.2
-+++ canvas/source/factory/cf_service.cxx 24 Mar 2005 17:09:45 -0000
-@@ -149,17 +149,18 @@ CanvasFactory::CanvasFactory(
- Reference<XComponentContext> const & xContext )
- : m_xContext(xContext)
- {
-- // read out configuration for preferred services:
-- Reference<lang::XMultiServiceFactory> xConfigProvider(
-- m_xContext->getServiceManager()->createInstanceWithContext(
-- OUSTR("com.sun.star.configuration.ConfigurationProvider"),
-- m_xContext ), UNO_QUERY_THROW );
-- Any propValue(
-- makeAny( beans::PropertyValue(
-+ fprintf( stderr, "CanvasFactory::CanvasFactory\n" );
-+ try {
-+ // read out configuration for preferred services:
-+ Reference<lang::XMultiServiceFactory> xConfigProvider(
-+ m_xContext->getServiceManager()->createInstanceWithContext(
-+ OUSTR("com.sun.star.configuration.ConfigurationProvider"),
-+ m_xContext ), UNO_QUERY_THROW );
-+ Any propValue(
-+ makeAny( beans::PropertyValue(
- OUSTR("nodepath"), -1,
- makeAny( OUSTR("/org.openoffice.VCL/Settings/Canvas") ),
- beans::PropertyState_DIRECT_VALUE ) ) );
-- try {
- Reference<container::XNameAccess> xNameAccess(
- xConfigProvider->createInstanceWithArguments(
- OUSTR("com.sun.star.configuration.ConfigurationAccess"),
diff --git a/patches/test/canvas-make.diff b/patches/test/canvas-make.diff
deleted file mode 100644
index c9ef4dc81..000000000
--- a/patches/test/canvas-make.diff
+++ /dev/null
@@ -1,79 +0,0 @@
---- /dev/null 2004-07-26 12:51:14.000000000 +0100
-+++ canvas/workben/makefile.mk 2005-03-24 15:46:28.543292888 +0000
-@@ -0,0 +1,76 @@
-+PRJ=..
-+
-+PRJNAME=canvas
-+TARGET=canvasdemo
-+TARGETTYPE=GUI
-+LIBTARGET=NO
-+
-+ENABLE_EXCEPTIONS=TRUE
-+
-+
-+# --- Settings -----------------------------------------------------
-+
-+.INCLUDE : svpre.mk
-+.INCLUDE : settings.mk
-+.INCLUDE : sv.mk
-+
-+# --- Files --------------------------------------------------------
-+
-+CXXFILES= canvasdemo.cxx
-+
-+OBJFILES= $(OBJ)$/canvasdemo.obj
-+
-+APP1TARGET= $(TARGET)
-+APP1OBJS= $(OBJFILES)
-+APP1STDLIBS=$(TOOLSLIB) \
-+ $(OSLLIB) \
-+ $(ONELIB) \
-+ $(VOSLIB) \
-+ $(SO2LIB) \
-+ $(SVTOOLLIB) \
-+ $(SVLLIB) \
-+ $(COMPHELPERLIB) \
-+ $(CPPULIB) \
-+ $(CPPUHELPERLIB) \
-+ $(SALLIB) \
-+ $(GOODIESLIB) \
-+ $(SFXLIB) \
-+ $(SOTLIB) \
-+ $(DLLIB) \
-+ $(SVLIB) \
-+ $(SVXLIB)
-+
-+.IF "$(GUI)"!="UNX"
-+APP1DEF= $(MISC)$/$(TARGET).def
-+.ENDIF
-+
-+
-+.IF "$(COM)"=="GCC"
-+ADDOPTFILES=$(OBJ)$/canvasdemo.obj
-+add_cflagscxx="-frtti -fexceptions"
-+.ENDIF
-+
-+
-+# --- Targets ------------------------------------------------------
-+
-+ALL : \
-+ ALLTAR \
-+ $(BIN)$/canvasdemo.rdb
-+
-+.INCLUDE : target.mk
-+
-+$(BIN)$/canvasdemo.rdb : makefile.mk $(UNOUCRRDB)
-+ rm -f $@
-+ $(GNUCOPY) $(UNOUCRRDB) $@
-+ +cd $(BIN) && \
-+ regcomp -register -r canvasdemo.rdb \
-+ -c i18nsearch.uno$(DLLPOST) \
-+ -c i18npool.uno$(DLLPOST) \
-+ -c configmgr2.uno$(DLLPOST) \
-+ -c servicemgr.uno$(DLLPOST) \
-+ -c libfwl$(UPD)$(DLLSUFFIX)$(DLLPOST) \
-+ -c libucpfile1$(DLLPOST) \
-+ -c libfileacc$(DLLPOST) \
-+ -c libucb1$(DLLPOST) \
-+ -c canvasfactory.uno$(DLLPOST) \
-+ -c vclcanvas.uno$(DLLPOST)
diff --git a/patches/test/fsstorage.diff b/patches/test/fsstorage.diff
deleted file mode 100644
index aea8bbe96..000000000
--- a/patches/test/fsstorage.diff
+++ /dev/null
@@ -1,27 +0,0 @@
---- svtools/source/fsstor/fsstorage.cxx.orig 2005-08-24 11:18:17.000000000 -0700
-+++ svtools/source/fsstor/fsstorage.cxx 2005-09-06 13:23:58.753415152 -0700
-@@ -697,10 +697,11 @@
- INetURLObject aFolderURL( m_pImpl->m_aURL );
- aFolderURL.Append( aStorName );
-
-- if ( ::utl::UCBContentHelper::IsDocument( aFolderURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
-- throw io::IOException(); // TODO:
--
- sal_Bool bFolderExists = ::utl::UCBContentHelper::IsFolder( aFolderURL.GetMainURL( INetURLObject::NO_DECODE ) );
-+ if (!bFolderExists)
-+ if ( ::utl::UCBContentHelper::IsDocument( aFolderURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
-+ throw io::IOException(); // TODO:
-+
- if ( ( nStorageMode & embed::ElementModes::NOCREATE ) && !bFolderExists )
- throw io::IOException(); // TODO:
-
-@@ -721,9 +722,6 @@
- else if ( ( nStorageMode & embed::ElementModes::TRUNCATE ) )
- throw io::IOException(); // TODO: access denied
-
-- if ( !::utl::UCBContentHelper::IsFolder( aFolderURL.GetMainURL( INetURLObject::NO_DECODE ) ) )
-- throw io::IOException(); // there is no such folder
--
- ::ucb::Content aResultContent( aFolderURL.GetMainURL( INetURLObject::NO_DECODE ), xDummyEnv );
- xResult = uno::Reference< embed::XStorage >(
- static_cast< OWeakObject* >( new FSStorage( aResultContent,
diff --git a/patches/test/gcc-pltabs.diff b/patches/test/gcc-pltabs.diff
deleted file mode 100644
index ea90f765c..000000000
--- a/patches/test/gcc-pltabs.diff
+++ /dev/null
@@ -1,63 +0,0 @@
-Index: gcc/varasm.c
-===================================================================
-RCS file: /cvsroot/gcc/gcc/gcc/varasm.c,v
-retrieving revision 1.477.6.11
-diff -u -r1.477.6.11 varasm.c
---- gcc/varasm.c 17 May 2005 07:03:33 -0000 1.477.6.11
-+++ gcc/varasm.c 18 Jul 2005 16:38:50 -0000
-@@ -3730,6 +3740,13 @@
-
- ALIGN is the alignment of the data in bits. */
-
-+#define DEFTREECODE(SYM, STRING, TYPE, NARGS) STRING,
-+static const char *foo_codes[] =
-+{
-+#include "tree.def"
-+};
-+#undef DEFTREECODE
-+
- void
- output_constant (tree exp, unsigned HOST_WIDE_INT size, unsigned int align)
- {
-@@ -3785,10 +3802,37 @@
- case POINTER_TYPE:
- case REFERENCE_TYPE:
- case OFFSET_TYPE:
-- if (! assemble_integer (expand_expr (exp, NULL_RTX, VOIDmode,
-- EXPAND_INITIALIZER),
-- MIN (size, thissize), align, 0))
-- error ("initializer for integer value is too complicated");
-+ {
-+ rtx expanded;
-+ tree fn;
-+
-+ expanded = expand_expr (exp, NULL_RTX, VOIDmode,
-+ EXPAND_INITIALIZER);
-+
-+ if (getenv("VTPLT") && TREE_CODE(exp) == ADDR_EXPR &&
-+ TREE_CODE((fn = TREE_OPERAND(exp, 0))) == FUNCTION_DECL &&
-+ DECL_VIRTUAL_P(fn) && !DECL_IS_BUILTIN(fn))
-+ {
-+ const char *op = integer_asm_op(MIN(size,thissize), align);
-+ fputs(op, asm_out_file);
-+ output_addr_const (asm_out_file, expanded); // FIXME: here
-+ fputs("@PLTABS\n", asm_out_file);
-+ }
-+ else
-+ {
-+ if (! assemble_integer (expanded,
-+ MIN (size, thissize), align, 0))
-+ error ("initializer for integer value is too complicated");
-+ }
-+ /* {
-+ tree fn = TREE_OPERAND(exp, 0);
-+ if (TREE_CODE
-+
-+ fprintf( stderr, "assemble_integer '%s' '%s' '%s' (%d)\n",
-+ foo_codes[code], foo_codes[TREE_CODE(exp)],
-+ foo_codes[TREE_CODE(fn)], BINFO_VIRTUAL_P(fn));
-+ }*/
-+ }
- break;
-
- case REAL_TYPE:
diff --git a/patches/test/gcc-stubhack.diff b/patches/test/gcc-stubhack.diff
deleted file mode 100644
index 6fb38c68f..000000000
--- a/patches/test/gcc-stubhack.diff
+++ /dev/null
@@ -1,182 +0,0 @@
-Index: varasm.c
-===================================================================
-RCS file: /cvsroot/gcc/gcc/gcc/varasm.c,v
-retrieving revision 1.477.6.11
-diff -u -r1.477.6.11 varasm.c
---- varasm.c 17 May 2005 07:03:33 -0000 1.477.6.11
-+++ varasm.c 21 Jul 2005 16:50:49 -0000
-@@ -1517,6 +1517,8 @@
- int reloc = 0;
- rtx decl_rtl;
-
-+ // warning ("assemble variable %qD ", decl);
-+
- if (lang_hooks.decls.prepare_assemble_variable)
- lang_hooks.decls.prepare_assemble_variable (decl);
-
-@@ -1688,10 +1690,17 @@
-
- /* Output any data that we will need to use the address of. */
- if (DECL_INITIAL (decl) == error_mark_node)
-+ {
- reloc = contains_pointers_p (TREE_TYPE (decl)) ? 3 : 0;
-+ warning ("value of contains_pointers_p %qD is %d ", decl, reloc);
-+ }
- else if (DECL_INITIAL (decl))
- {
- reloc = compute_reloc_for_constant (DECL_INITIAL (decl));
-+
-+ // warning ("value of compute_reloc_for_constant %qD is %d ",
-+ // decl, reloc);
-+
- output_addressed_constants (DECL_INITIAL (decl));
- }
-
-@@ -1888,7 +1897,7 @@
- If we know a method will be emitted in other TU and no new
- functions can be marked reachable, just use the external
- definition. */
-- struct cgraph_node *node = cgraph_node (decl);
-+ struct cgraph_node *node = cgraph_node (decl);
- if (!DECL_EXTERNAL (decl)
- && (!node->local.vtable_method || !cgraph_global_info_ready
- || !node->local.finalized))
-@@ -2090,6 +2099,7 @@
- int aligned_p ATTRIBUTE_UNUSED)
- {
- const char *op = integer_asm_op (size, aligned_p);
-+ // fprintf (stderr, "default_assemble_integer '%s'\n", op);
- /* Avoid GAS bugs for large values. Specifically negative values whose
- absolute value fits in a bfd_vma, but not in a bfd_signed_vma. */
- if (size > UNITS_PER_WORD && size > POINTER_SIZE / BITS_PER_UNIT)
-@@ -3730,6 +3740,15 @@
-
- ALIGN is the alignment of the data in bits. */
-
-+#define DEFTREECODE(SYM, STRING, TYPE, NARGS) STRING,
-+static const char *foo_codes[] =
-+{
-+#include "tree.def"
-+};
-+#undef DEFTREECODE
-+
-+char **glob_slots = NULL;
-+
- void
- output_constant (tree exp, unsigned HOST_WIDE_INT size, unsigned int align)
- {
-@@ -3785,10 +3804,60 @@
- case POINTER_TYPE:
- case REFERENCE_TYPE:
- case OFFSET_TYPE:
-- if (! assemble_integer (expand_expr (exp, NULL_RTX, VOIDmode,
-- EXPAND_INITIALIZER),
-- MIN (size, thissize), align, 0))
-- error ("initializer for integer value is too complicated");
-+ {
-+ rtx expanded;
-+ tree fn;
-+
-+ expanded = expand_expr (exp, NULL_RTX, VOIDmode,
-+ EXPAND_INITIALIZER);
-+
-+ if (getenv("VTPLT") && TREE_CODE(exp) == ADDR_EXPR &&
-+ TREE_CODE((fn = TREE_OPERAND(exp, 0))) == FUNCTION_DECL &&
-+ DECL_VIRTUAL_P(fn) && !DECL_IS_BUILTIN(fn) &&
-+ GET_CODE (expanded) == SYMBOL_REF)
-+ {
-+ int i;
-+ const char *p;
-+ const char *op = integer_asm_op(MIN(size,thissize), align);
-+ const char *buf = targetm.strip_name_encoding (XSTR (expanded, 0));
-+ fprintf (stderr, "vmethod: '%s'...\n", buf);
-+
-+ fputs(op, asm_out_file);
-+ output_addr_const (asm_out_file, expanded); // FIXME: here
-+ fputs("Slot\n", asm_out_file);
-+ if (!glob_slots)
-+ {
-+ glob_slots = xmalloc (sizeof (char *));
-+ glob_slots[0] = NULL;
-+ }
-+ for (i = 0; (p = glob_slots[i]); i++)
-+ {
-+ if (!strcmp (buf, p))
-+ break;
-+ }
-+ if (!glob_slots[i])
-+ {
-+ glob_slots = xrealloc (glob_slots, (i + 2) * sizeof (char *));
-+ glob_slots[i] = xstrdup (buf);
-+ glob_slots[i+1] = NULL;
-+ }
-+ fprintf( stderr, "Added\n");
-+ }
-+ else
-+ {
-+ if (! assemble_integer (expanded,
-+ MIN (size, thissize), align, 0))
-+ error ("initializer for integer value is too complicated");
-+ }
-+ /* {
-+ tree fn = TREE_OPERAND(exp, 0);
-+ if (TREE_CODE
-+
-+ fprintf( stderr, "assemble_integer '%s' '%s' '%s' (%d)\n",
-+ foo_codes[code], foo_codes[TREE_CODE(exp)],
-+ foo_codes[TREE_CODE(fn)], BINFO_VIRTUAL_P(fn));
-+ }*/
-+ }
- break;
-
- case REAL_TYPE:
-@@ -3823,6 +3892,8 @@
- tree link;
- unsigned int nalign;
- enum machine_mode inner;
-+
-+ warning ("assemble_vector_cst"); // %qD", code);
-
- inner = TYPE_MODE (TREE_TYPE (TREE_TYPE (exp)));
- nalign = MIN (align, GET_MODE_ALIGNMENT (inner));
-Index: toplev.c
-===================================================================
-RCS file: /cvsroot/gcc/gcc/gcc/toplev.c,v
-retrieving revision 1.944.2.4
-diff -u -r1.944.2.4 toplev.c
---- toplev.c 26 Apr 2005 00:30:16 -0000 1.944.2.4
-+++ toplev.c 21 Jul 2005 16:50:50 -0000
-@@ -2038,6 +2038,8 @@
-
- /* Clean up: close opened files, etc. */
-
-+extern char **glob_slots;
-+
- static void
- finalize (void)
- {
-@@ -2057,6 +2059,24 @@
- {
- if (ferror (asm_out_file) != 0)
- fatal_error ("error writing to %s: %m", asm_file_name);
-+ /* The world's grossest hack ? */
-+ if (glob_slots)
-+ {
-+ int i;
-+ const char *p;
-+
-+ fprintf( stderr, "Build out section\n");
-+ fprintf (asm_out_file, ".section text.stubs,\"ax\",@progbits\n.align 2\n");
-+
-+ for (i = 0; (p = glob_slots[i]); i++)
-+ {
-+ fprintf (asm_out_file, p);
-+ fprintf (asm_out_file, "Slot:\n\tjmp\t");
-+ fprintf (asm_out_file, p);
-+ fprintf (asm_out_file, "@plt\n");
-+ }
-+ fprintf( stderr, "Build out section donme\n");
-+ }
- if (fclose (asm_out_file) != 0)
- fatal_error ("error closing %s: %m", asm_file_name);
- }
diff --git a/patches/test/gcc-ztvd.diff b/patches/test/gcc-ztvd.diff
deleted file mode 100644
index a29ca2877..000000000
--- a/patches/test/gcc-ztvd.diff
+++ /dev/null
@@ -1,302 +0,0 @@
-? TAGS.sub
-Index: class.c
-===================================================================
-RCS file: /cvsroot/gcc/gcc/gcc/cp/class.c,v
-retrieving revision 1.707.2.3
-diff -u -r1.707.2.3 class.c
---- class.c 24 Apr 2005 12:46:26 -0000 1.707.2.3
-+++ class.c 9 Aug 2005 15:45:55 -0000
-@@ -169,6 +169,7 @@
- static void dump_thunk (FILE *, int, tree);
- static tree build_vtable (tree, tree, tree);
- static void initialize_vtable (tree, tree);
-+static void initialize_vtable_description (tree, tree, tree);
- static void layout_nonempty_base_or_field (record_layout_info,
- tree, tree, splay_tree);
- static tree end_of_class (tree, int);
-@@ -6609,7 +6610,10 @@
- }
-
- if (BINFO_VTABLE (TYPE_BINFO (t)))
-- initialize_vtable (TYPE_BINFO (t), TREE_VALUE (list));
-+ {
-+ initialize_vtable (TYPE_BINFO (t), TREE_VALUE (list));
-+ initialize_vtable_description (t, TYPE_BINFO (t), TREE_VALUE (list));
-+ }
- }
-
- /* Initialize the vtable for BINFO with the INITS. */
-@@ -6623,6 +6627,76 @@
- decl = get_vtbl_decl_for_binfo (binfo);
- initialize_artificial_var (decl, inits);
- dump_vtable (BINFO_TYPE (binfo), binfo, decl);
-+}
-+
-+
-+static tree
-+build_string_literal (int len, const char *str)
-+{
-+ tree t, elem, index, type;
-+
-+ t = build_string (len, str);
-+ elem = build_type_variant (char_type_node, 1, 0);
-+ index = build_index_type (build_int_cst (NULL_TREE, len - 1));
-+ type = build_array_type (elem, index);
-+ TREE_TYPE (t) = type;
-+ TREE_CONSTANT (t) = 1;
-+ TREE_INVARIANT (t) = 1;
-+ TREE_READONLY (t) = 1;
-+ TREE_STATIC (t) = 1;
-+
-+ return t;
-+}
-+
-+/* Create initializers for vtable descriptors */
-+static void
-+initialize_vtable_description (tree type, tree binfo, tree vt_inits)
-+{
-+ tree decl, clist, carray, slot;
-+ tree name = mangle_vtbl_descr_for_type (type);
-+
-+ /* create the vtable description variable */
-+ decl = build_vtable (type, name, vtbl_descr_type_node);
-+
-+ /* setup the array type */
-+ carray = build_cplus_array_type (string_type_node,
-+ build_index_type (size_int (list_length (vt_inits) - 1)));
-+ layout_type (carray);
-+
-+ /* layout the descr decl */
-+ TREE_TYPE (decl) = carray;
-+ DECL_SIZE (decl) = DECL_SIZE_UNIT (decl) = NULL_TREE;
-+ layout_decl (decl, 0);
-+
-+ /* setup the array contents */
-+ clist = NULL_TREE;
-+ for (slot = vt_inits; slot; slot = TREE_CHAIN (slot))
-+ {
-+ tree elem = TREE_VALUE (slot);
-+ tree value;
-+ if (TREE_CODE (elem) == NOP_EXPR)
-+ value = build_int_cst (NULL_TREE, 0);
-+ else
-+ {
-+ const char *method_name;
-+ gcc_assert (TREE_CODE (elem) == ADDR_EXPR);
-+ tree method = TREE_OPERAND (elem, 0);
-+ method_name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (method));
-+ value = build_string_literal (strlen (method_name) + 1, method_name);
-+ }
-+ clist = tree_cons (NULL_TREE, value, clist);
-+ }
-+ clist = nreverse (clist);
-+ initialize_artificial_var (decl, clist);
-+
-+ // FIXME: looks broken (?)
-+ if (!CLASSTYPE_VTABLE_DESCRS (type))
-+ CLASSTYPE_VTABLE_DESCRS (type) = decl;
-+ else
-+ {
-+ TREE_CHAIN (decl) = TREE_CHAIN (CLASSTYPE_VTABLE_DESCRS (type));
-+ TREE_CHAIN (CLASSTYPE_VTABLE_DESCRS (type)) = decl;
-+ }
- }
-
- /* Build the VTT (virtual table table) for T.
-Index: cp-tree.h
-===================================================================
-RCS file: /cvsroot/gcc/gcc/gcc/cp/cp-tree.h,v
-retrieving revision 1.1106.2.8
-diff -u -r1.1106.2.8 cp-tree.h
---- cp-tree.h 5 Jun 2005 16:46:53 -0000 1.1106.2.8
-+++ cp-tree.h 9 Aug 2005 15:46:01 -0000
-@@ -484,6 +484,7 @@
- CPTI_UNKNOWN_TYPE,
- CPTI_VTBL_TYPE,
- CPTI_VTBL_PTR_TYPE,
-+ CPTI_VTBL_DESCR_TYPE,
- CPTI_STD,
- CPTI_ABI,
- CPTI_CONST_TYPE_INFO_TYPE,
-@@ -560,6 +561,7 @@
- #define unknown_type_node cp_global_trees[CPTI_UNKNOWN_TYPE]
- #define vtbl_type_node cp_global_trees[CPTI_VTBL_TYPE]
- #define vtbl_ptr_type_node cp_global_trees[CPTI_VTBL_PTR_TYPE]
-+#define vtbl_descr_type_node cp_global_trees[CPTI_VTBL_DESCR_TYPE]
- #define std_node cp_global_trees[CPTI_STD]
- #define abi_node cp_global_trees[CPTI_ABI]
- #define const_type_info_type_node cp_global_trees[CPTI_CONST_TYPE_INFO_TYPE]
-@@ -1052,6 +1054,7 @@
- tree primary_base;
- VEC (tree_pair_s) *vcall_indices;
- tree vtables;
-+ tree vtable_descrs;
- tree typeinfo_var;
- VEC (tree) *vbases;
- binding_table nested_udts;
-@@ -1444,6 +1447,10 @@
- #define CLASSTYPE_VTABLES(NODE) \
- (LANG_TYPE_CLASS_CHECK (NODE)->vtables)
-
-+/* Vtable descriptions for the class NODE. */
-+#define CLASSTYPE_VTABLE_DESCRS(NODE) \
-+ (LANG_TYPE_CLASS_CHECK (NODE)->vtable_descrs)
-+
- /* The std::type_info variable representing this class, or NULL if no
- such variable has been created. This field is only set for the
- TYPE_MAIN_VARIANT of the class. */
-@@ -4365,6 +4372,7 @@
- extern tree mangle_typeinfo_for_type (tree);
- extern tree mangle_typeinfo_string_for_type (tree);
- extern tree mangle_vtbl_for_type (tree);
-+extern tree mangle_vtbl_descr_for_type (tree);
- extern tree mangle_vtt_for_type (tree);
- extern tree mangle_ctor_vtbl_for_type (tree, tree);
- extern tree mangle_thunk (tree, int, tree, tree);
-Index: decl.c
-===================================================================
-RCS file: /cvsroot/gcc/gcc/gcc/cp/decl.c,v
-retrieving revision 1.1371.2.14
-diff -u -r1.1371.2.14 decl.c
---- decl.c 3 Jun 2005 16:18:26 -0000 1.1371.2.14
-+++ decl.c 9 Aug 2005 15:46:12 -0000
-@@ -142,6 +142,7 @@
-
- tree vtbl_type_node;
- tree vtbl_ptr_type_node;
-+ tree vtbl_descr_type_node;
-
- Namespaces,
-
-@@ -2984,6 +2985,24 @@
- layout_type (vtbl_ptr_type_node);
- record_builtin_type (RID_MAX, NULL, vtbl_ptr_type_node);
-
-+ vtbl_descr_type_node
-+ = build_cplus_array_type (string_type_node, NULL_TREE);
-+ fprintf (stderr, "Setup vtbl_descr_type_node %p\n", vtbl_descr_type_node);
-+ layout_type (vtbl_descr_type_node);
-+ if (!TYPE_SIZE (vtbl_descr_type_node))
-+ fprintf (stderr, "UNFAIR!\n");
-+ fprintf (stderr, "Setup vtbl_descr_type_node 2 %p\n", vtbl_descr_type_node);
-+ vtbl_descr_type_node = build_qualified_type (vtbl_descr_type_node, TYPE_QUAL_CONST);
-+ if (!TYPE_SIZE (vtbl_descr_type_node))
-+ {
-+ fprintf (stderr, "UNFAIR - take 2 %p %p!\n",
-+ TYPE_SIZE (vtbl_type_node),
-+ TYPE_SIZE (vtbl_descr_type_node));
-+ layout_type (vtbl_descr_type_node);
-+ }
-+ fprintf (stderr, "Setup vtbl_descr_type_node 3 %p\n", vtbl_descr_type_node);
-+ record_builtin_type (RID_MAX, NULL, vtbl_descr_type_node);
-+
- push_namespace (get_identifier ("__cxxabiv1"));
- abi_node = current_namespace;
- pop_namespace ();
-Index: decl2.c
-===================================================================
-RCS file: /cvsroot/gcc/gcc/gcc/cp/decl2.c,v
-retrieving revision 1.770.2.2
-diff -u -r1.770.2.2 decl2.c
---- decl2.c 2 Jun 2005 17:31:01 -0000 1.770.2.2
-+++ decl2.c 9 Aug 2005 15:46:16 -0000
-@@ -1514,6 +1514,35 @@
- /* If necessary, write out the vtables for the dynamic class CTYPE.
- Returns true if any vtables were emitted. */
-
-+static void
-+emit_vt_descrs (tree ctype)
-+{
-+ tree vtbl;
-+
-+ for (vtbl = CLASSTYPE_VTABLE_DESCRS (ctype); vtbl; vtbl = TREE_CHAIN (vtbl))
-+ {
-+ tree content;
-+
-+// fprintf (stderr, "Finish TVDecl\n");
-+ TREE_PUBLIC (vtbl) = 1;
-+ DECL_EXTERNAL (vtbl) = 1;
-+ DECL_INTERFACE_KNOWN (vtbl) = 1;
-+ import_export_decl (vtbl);
-+ mark_used (vtbl);
-+
-+ if (TREE_TYPE (DECL_INITIAL (vtbl)) == 0)
-+ {
-+ tree expr = store_init_value (vtbl, DECL_INITIAL (vtbl));
-+
-+ /* It had better be all done at compile-time. */
-+ gcc_assert (!expr);
-+ }
-+
-+ DECL_EXTERNAL (vtbl) = 0;
-+ rest_of_decl_compilation (vtbl, 1, 1);
-+ }
-+}
-+
- static bool
- maybe_emit_vtables (tree ctype)
- {
-@@ -1582,6 +1611,8 @@
- /* Since we're writing out the vtable here, also write the debug
- info. */
- note_debug_info_needed (ctype);
-+
-+ emit_vt_descrs (ctype);
-
- return true;
- }
-Index: init.c
-===================================================================
-RCS file: /cvsroot/gcc/gcc/gcc/cp/init.c,v
-retrieving revision 1.412.2.5
-diff -u -r1.412.2.5 init.c
---- init.c 31 May 2005 18:00:46 -0000 1.412.2.5
-+++ init.c 9 Aug 2005 15:46:19 -0000
-@@ -803,6 +803,25 @@
- /* Assign the vtable to the vptr. */
- vtbl = convert_force (TREE_TYPE (vtbl_ptr), vtbl, 0);
- finish_expr_stmt (build_modify_expr (vtbl_ptr, NOP_EXPR, vtbl));
-+
-+#if 1
-+ /* Get pointer to information table */
-+ /* call vtable constructor */
-+ {
-+ tree vtbl_init;
-+ static tree vtbl_init_fndecl = NULL;
-+ if (!vtbl_init_fndecl) {
-+ tree args = build_function_type_list (ptr_type_node, NULL_TREE);
-+ vtbl_init_fndecl = build_decl (FUNCTION_DECL, get_identifier ("__vt_fixup"), args);
-+ TREE_PUBLIC (vtbl_init_fndecl) = 1;
-+ DECL_EXTERNAL (vtbl_init_fndecl) = 1;
-+ pushdecl_top_level (vtbl_init_fndecl);
-+ }
-+
-+ vtbl_init = build_tree_list (NULL_TREE, vtbl);
-+ finish_expr_stmt (build_function_call_expr (vtbl_init_fndecl, vtbl_init));
-+ }
-+#endif
- }
-
- /* If an exception is thrown in a constructor, those base classes already
-Index: mangle.c
-===================================================================
-RCS file: /cvsroot/gcc/gcc/gcc/cp/mangle.c,v
-retrieving revision 1.116
-diff -u -r1.116 mangle.c
---- mangle.c 24 Feb 2005 21:55:15 -0000 1.116
-+++ mangle.c 9 Aug 2005 15:46:22 -0000
-@@ -2619,6 +2619,14 @@
- return mangle_special_for_type (type, "TV");
- }
-
-+/* Create an identifier for the mangled name of the vtable for TYPE. */
-+
-+tree
-+mangle_vtbl_descr_for_type (const tree type)
-+{
-+ return mangle_special_for_type (type, "TVD");
-+}
-+
- /* Returns an identifier for the mangled name of the VTT for TYPE. */
-
- tree
diff --git a/patches/test/glibc-bdirect.diff b/patches/test/glibc-bdirect.diff
deleted file mode 100644
index 2d5ec2efe..000000000
--- a/patches/test/glibc-bdirect.diff
+++ /dev/null
@@ -1,361 +0,0 @@
-Only in glibc-2.3: autom4te.cache
-Only in glibc-2.3/csu: core
-Only in glibc-2.3/elf: core
-diff -u -r -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' glibc-pristine/elf/dl-close.c glibc-2.3/elf/dl-close.c
---- glibc-pristine/elf/dl-close.c 2005-11-17 17:48:13.000000000 +0000
-+++ glibc-2.3/elf/dl-close.c 2005-10-19 21:48:52.000000000 +0100
-@@ -506,6 +506,9 @@
- /* Remove the searchlists. */
- free (imap->l_initfini);
-
-+ /* Remove the dtneeded list */
-+ free (imap->l_dtneeded.r_list);
-+
- /* Remove the scope array if we allocated it. */
- if (imap->l_scope != imap->l_scope_mem)
- free (imap->l_scope);
-Only in glibc-2.3/elf: dl-close.c~
-diff -u -r -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' glibc-pristine/elf/dl-deps.c glibc-2.3/elf/dl-deps.c
---- glibc-pristine/elf/dl-deps.c 2005-11-17 17:48:13.000000000 +0000
-+++ glibc-2.3/elf/dl-deps.c 2005-11-18 12:50:38.000000000 +0000
-@@ -39,6 +39,9 @@
- #define FILTERTAG (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGNUM \
- + DT_EXTRATAGIDX (DT_FILTER))
-
-+#ifndef VERSYMIDX
-+# define VERSYMIDX(sym) (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (sym))
-+#endif
-
- /* When loading auxiliary objects we must ignore errors. It's ok if
- an object is missing. */
-@@ -139,6 +142,65 @@
- __result; })
-
-
-+static void
-+setup_direct (struct link_map *map, struct r_scope_elem *scope)
-+{
-+ if (map->l_info[VERSYMIDX(DT_DIRECT)] && map->l_info[DT_NEEDED])
-+ {
-+ const ElfW(Dyn) *d;
-+ unsigned int i;
-+ const char *strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
-+
-+ if (GLRO(dl_debug_mask) & DL_DEBUG_DIRECT)
-+ _dl_debug_printf ("** direct linkage section in '%s' **\n",
-+ map->l_name ? map->l_name : "<null>");
-+
-+ map->l_dtneeded.r_nlist = 1;
-+ for (d = map->l_ld; d->d_tag != DT_NULL; ++d)
-+ {
-+ if (__builtin_expect (d->d_tag, DT_NEEDED) == DT_NEEDED)
-+ map->l_dtneeded.r_nlist++;
-+ }
-+
-+ map->l_dtneeded.r_list = (struct link_map **)
-+ malloc (map->l_dtneeded.r_nlist * sizeof (struct link_map *));
-+
-+ map->l_dtneeded.r_list[0] = map;
-+ for (i = 1, d = map->l_ld; d->d_tag != DT_NULL; ++d)
-+ {
-+ const char *name;
-+ unsigned int j;
-+
-+ if (d->d_tag != DT_NEEDED)
-+ continue;
-+
-+ name = expand_dst (map, strtab + d->d_un.d_val, 0);
-+ if (GLRO(dl_debug_mask) & DL_DEBUG_DIRECT)
-+ _dl_debug_printf (" direct index %u object '%s'\n", i, name);
-+ for (j = 0; j < scope->r_nlist; j++)
-+ {
-+ if (scope->r_list[j] &&
-+ _dl_name_match_p (name, scope->r_list[j]))
-+ {
-+ map->l_dtneeded.r_list[i] = scope->r_list[j];
-+ break;
-+ }
-+ }
-+ if (!map->l_dtneeded.r_list[i])
-+ _dl_debug_printf (" impossible error - can't find '%s'\n", name);
-+ i++;
-+ }
-+ }
-+ else
-+ {
-+ if (GLRO(dl_debug_mask) & DL_DEBUG_DIRECT)
-+ _dl_debug_printf ("no direct linkage section in '%s'\n",
-+ map->l_name ? map->l_name : "<null>");
-+ map->l_dtneeded.r_nlist = 0;
-+ map->l_dtneeded.r_list = NULL;
-+ }
-+}
-+
- void
- internal_function
- _dl_map_object_deps (struct link_map *map,
-@@ -555,6 +617,16 @@
- }
- }
-
-+ if (__builtin_expect (GLRO(dl_direct), 0))
-+ {
-+ /* Setup direct linkage dtneeded table */
-+ for (i = 0; i < nlist; ++i)
-+ setup_direct (map->l_searchlist.r_list[i], &map->l_searchlist);
-+ }
-+ else
-+ if (GLRO(dl_debug_mask) & DL_DEBUG_DIRECT)
-+ _dl_debug_printf (" no dl_direct set %u\n", GLRO(dl_direct));
-+
- /* Maybe we can remove some relocation dependencies now. */
- assert (map->l_searchlist.r_list[0] == map);
- for (i = 0; i < map->l_reldepsact; ++i)
-Only in glibc-2.3/elf: dl-deps.c~
-Only in glibc-2.3/elf: dl-load.c~
-diff -u -r -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' glibc-pristine/elf/dl-lookup.c glibc-2.3/elf/dl-lookup.c
---- glibc-pristine/elf/dl-lookup.c 2005-11-17 17:48:13.000000000 +0000
-+++ glibc-2.3/elf/dl-lookup.c 2005-11-23 11:23:47.000000000 +0000
-@@ -32,6 +32,10 @@
-
- #define VERSTAG(tag) (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (tag))
-
-+#ifndef VERSYMIDX
-+# define VERSYMIDX(sym) (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (sym))
-+#endif
-+
- /* We need this string more than once. */
- static const char undefined_msg[] = "undefined symbol: ";
-
-@@ -209,6 +213,7 @@
- const unsigned long int hash = _dl_elf_hash (undef_name);
- struct sym_val current_value = { NULL, NULL };
- struct r_scope_elem **scope = symbol_scope;
-+ size_t i = 0;
-
- bump_num_relocations ();
-
-@@ -216,7 +221,81 @@
- up a versioned symbol. */
- assert (version == NULL || flags == 0 || flags == DL_LOOKUP_ADD_DEPENDENCY);
-
-- size_t i = 0;
-+ if (__builtin_expect (undef_map != NULL, 1) &&
-+ __builtin_expect (undef_map->l_dtneeded.r_nlist != NULL, 0) &&
-+ __builtin_expect (*ref != NULL, 1))
-+ {
-+ unsigned int idx, noffset;
-+ const ElfW(Sym) *symtab;
-+ ElfW(Addr) direct;
-+
-+ /* We need a dynsym index ... */
-+ symtab = (const void *) D_PTR (undef_map, l_info[DT_SYMTAB]);
-+ direct = D_PTR (undef_map, l_info[VERSYMIDX(DT_DIRECT)]);
-+
-+ idx = *ref - symtab;
-+ if (__builtin_expect ((GLRO(dl_debug_mask) & DL_DEBUG_DIRECT) != 0, 0))
-+ _dl_debug_printf ("dynamic symbol index %u from '%s' for %s base direct 0x%x start 0x%x\n", idx,
-+ undef_map->l_name ? undef_map->l_name : "<noname>",
-+ undef_name ? undef_name : "<undef>",
-+ (int) direct, (int) undef_map->l_map_start);
-+ direct += idx * 2;
-+ if (direct >= undef_map->l_map_end || direct <= undef_map->l_map_start)
-+ _dl_debug_printf ("broken: off end of map 0x%x\n", (int) direct);
-+ else
-+ {
-+ noffset = *(uint16_t *)direct;
-+ if (__builtin_expect ((GLRO(dl_debug_mask) & DL_DEBUG_DIRECT) != 0, 0))
-+ _dl_debug_printf ("dynamic symbol offset %u from 0x%x\n", noffset, (int) direct);
-+ if (noffset & DT_DIRECT_VAGUE)
-+ {
-+ if (__builtin_expect ((GLRO(dl_debug_mask) & DL_DEBUG_DIRECT) != 0, 0))
-+ _dl_debug_printf ("vague symbol\n");
-+ goto normal_lookup;
-+ }
-+
-+ noffset &= DT_DIRECT_MASK;
-+
-+ if (__builtin_expect (noffset < undef_map->l_dtneeded.r_nlist, 1))
-+ {
-+ int res;
-+ struct r_scope_elem direct_elem;
-+
-+ /* FIXME - requires LD_PRELOAD support ... */
-+ direct_elem.r_list = undef_map->l_dtneeded.r_list + noffset;
-+ direct_elem.r_nlist = 1;
-+
-+ if (direct_elem.r_list[0] == skip_map)
-+ goto normal_lookup; /* FIXME - correct ? */
-+
-+ res = do_lookup_x (undef_name, hash, *ref, &current_value, &direct_elem,
-+ 0, version, flags, skip_map, type_class);
-+ if (res > 0)
-+ {
-+ if (__builtin_expect ((GLRO(dl_debug_mask) & DL_DEBUG_DIRECT) != 0, 0))
-+ _dl_debug_printf ("direct lookup ...\n");
-+ goto match;
-+ }
-+ else
-+ _dl_debug_printf ("Error in lookup %u - missing (?) - fallback "
-+ "to deps & then global ? ...\n", res);
-+ }
-+ else if (noffset == DT_DIRECT_UNKNOWN)
-+ {
-+ if (__builtin_expect ((GLRO(dl_debug_mask) & DL_DEBUG_DIRECT) != 0, 0))
-+ _dl_debug_printf ("unknown/undefined symbol '%s'\n",
-+ undef_name ? undef_name : "<undef>");
-+ }
-+ else
-+ {
-+ _dl_debug_printf ("Error: foo symbol '%s' 0 < %u < %u\n",
-+ undef_name ? undef_name : "<undef>",
-+ noffset, undef_map->l_dtneeded.r_nlist);
-+ }
-+ }
-+ }
-+ normal_lookup:
-+
- if (__builtin_expect (skip_map != NULL, 0))
- {
- /* Search the relevant loaded objects for a definition. */
-@@ -258,7 +337,7 @@
- return 0;
- }
- }
--
-+ match:
- if (__builtin_expect (current_value.s == NULL, 0))
- {
- if ((*ref == NULL || ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK)
-Only in glibc-2.3/elf: dl-lookup.c~
-Only in glibc-pristine/elf: dl-lookup.c.orig
-diff -u -r -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' glibc-pristine/elf/dl-support.c glibc-2.3/elf/dl-support.c
---- glibc-pristine/elf/dl-support.c 2005-11-17 17:40:21.000000000 +0000
-+++ glibc-2.3/elf/dl-support.c 2005-11-17 17:28:30.000000000 +0000
-@@ -41,6 +41,7 @@
-
- int _dl_debug_mask;
- int _dl_lazy;
-+int _dl_direct;
- int _dl_mlock_pages;
- int _dl_madvise;
- ElfW(Addr) _dl_use_load_bias = -2;
-@@ -242,6 +243,8 @@
-
- _dl_lazy = *(getenv ("LD_BIND_NOW") ?: "") == '\0';
-
-+ _dl_direct = *(getenv ("LD_BIND_DIRECT") ?: "") == '\0';
-+
- _dl_madvise = *(getenv ("LD_NOMADVISE") ?: "") == '\0';
-
- _dl_bind_not = *(getenv ("LD_BIND_NOT") ?: "") != '\0';
-Only in glibc-2.3/elf: dl-support.c~
-diff -u -r -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' glibc-pristine/elf/dynamic-link.h glibc-2.3/elf/dynamic-link.h
---- glibc-pristine/elf/dynamic-link.h 2005-11-17 17:48:13.000000000 +0000
-+++ glibc-2.3/elf/dynamic-link.h 2005-10-19 21:01:06.000000000 +0100
-@@ -94,6 +94,7 @@
- ADJUST_DYN_INFO (DT_PLTGOT);
- ADJUST_DYN_INFO (DT_STRTAB);
- ADJUST_DYN_INFO (DT_SYMTAB);
-+ ADJUST_DYN_INFO (VERSYMIDX(DT_DIRECT));
- # if ! ELF_MACHINE_NO_RELA
- ADJUST_DYN_INFO (DT_RELA);
- # endif
-Only in glibc-2.3/elf: dynamic-link.h~
-diff -u -r -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' glibc-pristine/elf/elf.h glibc-2.3/elf/elf.h
---- glibc-pristine/elf/elf.h 2005-11-17 17:48:13.000000000 +0000
-+++ glibc-2.3/elf/elf.h 2005-11-23 11:18:29.000000000 +0000
-@@ -714,6 +714,7 @@
- /* The versioning entry types. The next are defined as part of the
- GNU extension. */
- #define DT_VERSYM 0x6ffffff0
-+#define DT_DIRECT 0x6ffffff1 /* FIXME - how are these allocated ? */
-
- #define DT_RELACOUNT 0x6ffffff9
- #define DT_RELCOUNT 0x6ffffffa
-@@ -743,6 +744,11 @@
- #define DF_BIND_NOW 0x00000008 /* No lazy binding for this object */
- #define DF_STATIC_TLS 0x00000010 /* Module uses the static TLS model */
-
-+/* Constants for the DT_DIRECT entries. */
-+#define DT_DIRECT_VAGUE (1<<15)
-+#define DT_DIRECT_MASK 0x3ff
-+#define DT_DIRECT_UNKNOWN DT_DIRECT_MASK
-+
- /* State flags selectable in the `d_un.d_val' element of the DT_FLAGS_1
- entry in the dynamic section. */
- #define DF_1_NOW 0x00000001 /* Set RTLD_NOW for this object. */
-Only in glibc-2.3/elf: elf.h~
-diff -u -r -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' glibc-pristine/elf/rtld.c glibc-2.3/elf/rtld.c
---- glibc-pristine/elf/rtld.c 2005-11-17 17:48:13.000000000 +0000
-+++ glibc-2.3/elf/rtld.c 2005-11-18 12:51:38.000000000 +0000
-@@ -123,6 +123,7 @@
- ._dl_correct_cache_id = _DL_CACHE_DEFAULT_ID,
- ._dl_hwcap_mask = HWCAP_IMPORTANT,
- ._dl_lazy = 1,
-+ ._dl_direct = 0,
- ._dl_fpu_control = _FPU_DEFAULT,
- ._dl_madvise = 1,
-
-@@ -2056,11 +2057,13 @@
- DL_DEBUG_SYMBOLS | DL_DEBUG_IMPCALLS },
- { LEN_AND_STR ("bindings"), "display information about symbol binding",
- DL_DEBUG_BINDINGS | DL_DEBUG_IMPCALLS },
-+ { LEN_AND_STR ("direct"), "display information about direct binding",
-+ DL_DEBUG_DIRECT | DL_DEBUG_IMPCALLS },
- { LEN_AND_STR ("versions"), "display version dependencies",
- DL_DEBUG_VERSIONS | DL_DEBUG_IMPCALLS },
- { LEN_AND_STR ("all"), "all previous options combined",
- DL_DEBUG_LIBS | DL_DEBUG_RELOC | DL_DEBUG_FILES | DL_DEBUG_SYMBOLS
-- | DL_DEBUG_BINDINGS | DL_DEBUG_VERSIONS | DL_DEBUG_IMPCALLS },
-+ | DL_DEBUG_BINDINGS | DL_DEBUG_DIRECT | DL_DEBUG_VERSIONS | DL_DEBUG_IMPCALLS },
- { LEN_AND_STR ("statistics"), "display relocation statistics",
- DL_DEBUG_STATISTICS },
- { LEN_AND_STR ("unused"), "determined unused DSOs",
-@@ -2230,6 +2233,8 @@
- if (!INTUSE(__libc_enable_secure)
- && memcmp (envline, "ORIGIN_PATH", 11) == 0)
- GLRO(dl_origin_path) = &envline[12];
-+ if (memcmp (envline, "BIND_DIRECT", 11) == 0)
-+ GLRO(dl_direct) = envline[12] != '\0';
- break;
-
- case 12:
-Only in glibc-2.3/elf: rtld.c~
-diff -u -r -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' glibc-pristine/include/link.h glibc-2.3/include/link.h
---- glibc-pristine/include/link.h 2005-11-17 17:48:13.000000000 +0000
-+++ glibc-2.3/include/link.h 2005-10-19 21:13:12.000000000 +0100
-@@ -299,6 +299,10 @@
- done. */
- ElfW(Addr) l_relro_addr;
- size_t l_relro_size;
-+
-+ /* Array of DT_NEEDED dependencies in order for use in
-+ direct linkage - l_dtneeded[0] entry is self */
-+ struct r_scope_elem l_dtneeded;
- };
-
- struct dl_phdr_info
-
-
-diff -u -r -x '*.o' -x '*.1' -x 'Makefile*' -x 'config*' -x libtool -x '*.info' -x '*.tex' glibc-pristine/sysdeps/generic/ldsodefs.h glibc-2.3/sysdeps/generic/ldsodefs.h
---- glibc-pristine/sysdeps/generic/ldsodefs.h 2005-11-17 17:48:13.000000000 +0000
-+++ glibc-2.3/sysdeps/generic/ldsodefs.h 2005-11-17 17:27:28.000000000 +0000
-@@ -388,6 +388,7 @@
- /* These two are used only internally. */
- #define DL_DEBUG_HELP (1 << 9)
- #define DL_DEBUG_PRELINK (1 << 10)
-+#define DL_DEBUG_DIRECT (1 << 11)
-
- /* Cached value of `getpagesize ()'. */
- EXTERN size_t _dl_pagesize;
-@@ -413,6 +414,9 @@
- /* Do we do lazy relocations? */
- EXTERN int _dl_lazy;
-
-+ /* Do we do direct relocations? */
-+ EXTERN int _dl_direct;
-+
- /* Should we advise kernel about memory usage? */
- EXTERN int _dl_madvise;
-
diff --git a/patches/test/gui-control-layout.diff b/patches/test/gui-control-layout.diff
deleted file mode 100644
index ef23ae32e..000000000
--- a/patches/test/gui-control-layout.diff
+++ /dev/null
@@ -1,177 +0,0 @@
-Index: vcl/inc/button.hxx
-===================================================================
-RCS file: /cvs/gsl/vcl/inc/button.hxx,v
-retrieving revision 1.8
-diff -u -p -u -r1.8 button.hxx
---- vcl/inc/button.hxx 17 Apr 2003 17:55:12 -0000 1.8
-+++ vcl/inc/button.hxx 18 Jul 2003 16:25:05 -0000
-@@ -183,6 +183,7 @@ public:
- virtual void UserDraw( const UserDrawEvent& rUDEvt );
-
- virtual void Toggle();
-+ virtual void VtkRequestSize( Size &rSize );
-
- void SetImage( const Image& rImage );
- const Image& GetImage() const { return maImage; }
-@@ -378,6 +379,7 @@ public:
- virtual void DataChanged( const DataChangedEvent& rDCEvt );
-
- virtual void Toggle();
-+ virtual void VtkRequestSize( Size &rSize );
-
- BOOL IsStateChanged() const { return mbStateChanged; }
-
-@@ -467,6 +469,7 @@ public:
- virtual void DataChanged( const DataChangedEvent& rDCEvt );
-
- virtual void Toggle();
-+ virtual void VtkRequestSize( Size &rSize );
-
- void SetState( TriState eState );
- TriState GetState() const { return meState; }
-Index: vcl/inc/combobox.hxx
-===================================================================
-RCS file: /cvs/gsl/vcl/inc/combobox.hxx,v
-retrieving revision 1.12
-diff -u -p -u -r1.12 combobox.hxx
---- vcl/inc/combobox.hxx 11 Apr 2003 17:24:42 -0000 1.12
-+++ vcl/inc/combobox.hxx 18 Jul 2003 16:25:05 -0000
-@@ -140,6 +140,7 @@ public:
- virtual void DoubleClick();
-
- virtual void Modify();
-+ virtual void VtkRequestSize( Size &rSize );
-
- virtual const Wallpaper& GetDisplayBackground() const;
-
-Index: vcl/inc/edit.hxx
-===================================================================
-RCS file: /cvs/gsl/vcl/inc/edit.hxx,v
-retrieving revision 1.11
-diff -u -p -u -r1.11 edit.hxx
---- vcl/inc/edit.hxx 27 Mar 2003 17:57:20 -0000 1.11
-+++ vcl/inc/edit.hxx 18 Jul 2003 16:25:05 -0000
-@@ -211,6 +211,7 @@ public:
-
- virtual void Modify();
- virtual void UpdateData();
-+ virtual void VtkRequestSize( Size &rSize );
-
- static BOOL IsCharInput( const KeyEvent& rKEvt );
-
-Index: vcl/inc/fixed.hxx
-===================================================================
-RCS file: /cvs/gsl/vcl/inc/fixed.hxx,v
-retrieving revision 1.5
-diff -u -p -u -r1.5 fixed.hxx
---- vcl/inc/fixed.hxx 29 Apr 2002 17:46:17 -0000 1.5
-+++ vcl/inc/fixed.hxx 18 Jul 2003 16:25:05 -0000
-@@ -106,6 +106,7 @@ public:
- virtual void Resize();
- virtual void StateChanged( StateChangedType nType );
- virtual void DataChanged( const DataChangedEvent& rDCEvt );
-+ virtual void VtkRequestSize( Size &rSize );
-
- Size CalcMinimumSize( long nMaxWidth = 0 ) const;
- };
-Index: vcl/source/control/button.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/control/button.cxx,v
-retrieving revision 1.21
-diff -u -p -u -r1.21 button.cxx
---- vcl/source/control/button.cxx 17 Apr 2003 17:55:28 -0000 1.21
-+++ vcl/source/control/button.cxx 18 Jul 2003 16:25:06 -0000
-@@ -1370,6 +1375,11 @@ void PushButton::EndSelection()
-
- // -----------------------------------------------------------------------
-
-+void PushButton::VtkRequestSize( Size &rSize )
-+{
-+ rSize = CalcMinimumSize( 0 );
-+}
-+
- Size PushButton::CalcMinimumSize( long nMaxWidth ) const
- {
- Size aSize;
-@@ -2514,6 +2524,11 @@ Image RadioButton::GetRadioImage( const
-
- // -----------------------------------------------------------------------
-
-+void RadioButton::VtkRequestSize( Size &rSize )
-+{
-+ rSize = CalcMinimumSize( 0 );
-+}
-+
- Size RadioButton::CalcMinimumSize( long nMaxWidth ) const
- {
- Size aSize;
-@@ -3241,6 +3256,11 @@ Image CheckBox::GetCheckImage( const All
- }
-
- // -----------------------------------------------------------------------
-+
-+void CheckBox::VtkRequestSize( Size &rSize )
-+{
-+ rSize = CalcMinimumSize( 0 );
-+}
-
- Size CheckBox::CalcMinimumSize( long nMaxWidth ) const
- {
-Index: vcl/source/control/combobox.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/control/combobox.cxx,v
-retrieving revision 1.25
-diff -u -p -u -r1.25 combobox.cxx
---- vcl/source/control/combobox.cxx 12 Jun 2003 08:18:32 -0000 1.25
-+++ vcl/source/control/combobox.cxx 18 Jul 2003 16:25:07 -0000
-@@ -1048,6 +1048,11 @@ long ComboBox::CalcWindowSizePixel( USHO
-
- // -----------------------------------------------------------------------
-
-+void ComboBox::VtkRequestSize( Size &rSize )
-+{
-+ rSize = CalcMinimumSize();
-+}
-+
- Size ComboBox::CalcMinimumSize() const
- {
- Size aSz;
-Index: vcl/source/control/edit.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/control/edit.cxx,v
-retrieving revision 1.59
-diff -u -p -u -r1.59 edit.cxx
---- vcl/source/control/edit.cxx 12 Jun 2003 08:18:42 -0000 1.59
-+++ vcl/source/control/edit.cxx 18 Jul 2003 16:25:08 -0000
-@@ -2379,6 +2379,11 @@ void Edit::SetSubEdit( Edit* pEdit )
-
- // -----------------------------------------------------------------------
-
-+void Edit::VtkRequestSize( Size &rSize )
-+{
-+ rSize = CalcMinimumSize();
-+}
-+
- Size Edit::CalcMinimumSize() const
- {
- Size aSz( GetTextWidth( GetText() ), GetTextHeight() );
-Index: vcl/source/control/fixed.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/control/fixed.cxx,v
-retrieving revision 1.10
-diff -u -p -u -r1.10 fixed.cxx
---- vcl/source/control/fixed.cxx 17 Oct 2002 14:47:00 -0000 1.10
-+++ vcl/source/control/fixed.cxx 18 Jul 2003 16:25:08 -0000
-@@ -412,6 +414,12 @@ void FixedText::DataChanged( const DataC
- }
-
- // -----------------------------------------------------------------------
-+
-+
-+void FixedText::VtkRequestSize( Size &rSize )
-+{
-+ rSize = CalcMinimumSize( 0 );
-+}
-
- Size FixedText::CalcMinimumSize( long nMaxWidth ) const
- {
diff --git a/patches/test/gui-disable-spellcheck-all-langs.diff b/patches/test/gui-disable-spellcheck-all-langs.diff
deleted file mode 100644
index 3d530ced4..000000000
--- a/patches/test/gui-disable-spellcheck-all-langs.diff
+++ /dev/null
@@ -1,103 +0,0 @@
---- svx/source/options/optlingu.orig 2004-04-16 10:59:10.183356464 -0400
-+++ svx/source/options/optlingu.cxx 2004-04-16 11:03:21.387511428 -0400
-@@ -1611,12 +1611,19 @@
- pModel->Insert( pEntry );
- lcl_SetCheckButton( pEntry, bVal );
-
-+// Users often check this item, which makes lingucomponent use
-+// horrendous amounts of memory because all dictionaries are loaded.
-+// To make people not quite so lazy, force them to check _only_ the
-+// languages they really use by not providing this option. This may
-+// not work if users already checked this button in previous versions.
-+#if 0
- pEntry = CreateEntry( sAllLanguages, CBCOL_FIRST );
- aLngCfg.GetProperty( C2U(UPN_IS_SPELL_IN_ALL_LANGUAGES) ) >>= bVal;
- nUserData = OptionsUserData( EID_ALL_LANGUAGES, FALSE, 0, TRUE, bVal).GetUserData();
- pEntry->SetUserData( (void *)nUserData );
- pModel->Insert( pEntry );
- lcl_SetCheckButton( pEntry, bVal );
-+#endif
-
- pEntry = CreateEntry( sSpellAuto, CBCOL_FIRST );
- aLngCfg.GetProperty( C2U(UPN_IS_SPELL_AUTO) ) >>= bVal;
---- svtools/source/misc/lingucfg.cxx.orig 2003-03-27 09:39:15.000000000 -0500
-+++ svtools/source/misc/lingucfg.cxx 2004-04-18 20:19:24.423383758 -0400
-@@ -323,7 +323,7 @@
- const INT16 *pnVal = 0;
- const BOOL *pbVal = 0;
-
-- const SvtLinguOptions &rOpt = ((const SvtLinguConfig *) this)->aOpt;
-+ SvtLinguOptions &rOpt = ((SvtLinguConfig *) this)->aOpt;
- switch (nPropertyHandle)
- {
- case UPH_IS_GERMAN_PRE_REFORM : pbVal = &rOpt.bIsGermanPreReform; break;
-@@ -333,7 +333,15 @@
- case UPH_IS_HYPH_SPECIAL : pbVal = &rOpt.bIsHyphSpecial; break;
- case UPH_IS_SPELL_AUTO : pbVal = &rOpt.bIsSpellAuto; break;
- case UPH_IS_SPELL_HIDE : pbVal = &rOpt.bIsSpellHideMarkings; break;
-- case UPH_IS_SPELL_IN_ALL_LANGUAGES :pbVal = &rOpt.bIsSpellInAllLanguages; break;
-+ case UPH_IS_SPELL_IN_ALL_LANGUAGES :
-+ {
-+ // Disable spell checking in all languages
-+ // since enabling too many dictionaries takes
-+ // up huge amounts of memory
-+ rOpt.bIsSpellInAllLanguages = FALSE;
-+ pbVal = &rOpt.bIsSpellInAllLanguages;
-+ break;
-+ }
- case UPH_IS_SPELL_SPECIAL : pbVal = &rOpt.bIsSpellSpecial; break;
- case UPH_IS_WRAP_REVERSE : pbVal = &rOpt.bIsSpellReverse; break;
- case UPH_DEFAULT_LANGUAGE : pnVal = &rOpt.nDefaultLanguage; break;
-@@ -409,7 +417,15 @@
- case UPH_IS_HYPH_SPECIAL : pbVal = &aOpt.bIsHyphSpecial; break;
- case UPH_IS_SPELL_AUTO : pbVal = &aOpt.bIsSpellAuto; break;
- case UPH_IS_SPELL_HIDE : pbVal = &aOpt.bIsSpellHideMarkings; break;
-- case UPH_IS_SPELL_IN_ALL_LANGUAGES :pbVal = &aOpt.bIsSpellInAllLanguages; break;
-+ case UPH_IS_SPELL_IN_ALL_LANGUAGES :
-+ {
-+ // Disable spell checking in all languages
-+ // since enabling too man dictionaries uses
-+ // huge amounts of memory
-+ aOpt.bIsSpellInAllLanguages = FALSE;
-+ pbVal = NULL;
-+ break;
-+ }
- case UPH_IS_SPELL_SPECIAL : pbVal = &aOpt.bIsSpellSpecial; break;
- case UPH_IS_WRAP_REVERSE : pbVal = &aOpt.bIsSpellReverse; break;
- case UPH_DEFAULT_LANGUAGE : pnVal = &aOpt.nDefaultLanguage; break;
---- linguistic/source/lngopt.cxx.orig 2004-04-18 21:17:31.041707927 -0400
-+++ linguistic/source/lngopt.cxx 2004-04-18 18:49:16.000000000 -0400
-@@ -187,7 +193,15 @@
- case WID_IS_HYPH_SPECIAL : pbVal = &pData->bIsHyphSpecial; break;
- case WID_IS_SPELL_AUTO : pbVal = &pData->bIsSpellAuto; break;
- case WID_IS_SPELL_HIDE : pbVal = &pData->bIsSpellHideMarkings; break;
-- case WID_IS_SPELL_IN_ALL_LANGUAGES :pbVal = &pData->bIsSpellInAllLanguages; break;
-+ case WID_IS_SPELL_IN_ALL_LANGUAGES :
-+ {
-+ // Disable spell checking in all languages
-+ // since enabling too many dictionaries takes
-+ // up huge amounts of memory.
-+ pData->bIsSpellInAllLanguages = FALSE;
-+ pbVal = NULL;
-+ break;
-+ }
- case WID_IS_SPELL_SPECIAL : pbVal = &pData->bIsSpellSpecial; break;
- case WID_IS_WRAP_REVERSE : pbVal = &pData->bIsSpellReverse; break;
- case WID_DEFAULT_LANGUAGE : pnVal = &pData->nDefaultLanguage; break;
-@@ -264,7 +284,15 @@
- case WID_IS_HYPH_SPECIAL : pbVal = &pData->bIsHyphSpecial; break;
- case WID_IS_SPELL_AUTO : pbVal = &pData->bIsSpellAuto; break;
- case WID_IS_SPELL_HIDE : pbVal = &pData->bIsSpellHideMarkings; break;
-- case WID_IS_SPELL_IN_ALL_LANGUAGES :pbVal = &pData->bIsSpellInAllLanguages; break;
-+ case WID_IS_SPELL_IN_ALL_LANGUAGES :
-+ {
-+ // Disable spell checking in all languages
-+ // since enabling too many dictionaries
-+ // uses too much memory
-+ pData->bIsSpellInAllLanguages = FALSE;
-+ pbVal = &pData->bIsSpellInAllLanguages;
-+ break;
-+ }
- case WID_IS_SPELL_SPECIAL : pbVal = &pData->bIsSpellSpecial; break;
- case WID_IS_WRAP_REVERSE : pbVal = &pData->bIsSpellReverse; break;
- case WID_DEFAULT_LANGUAGE : pnVal = &pData->nDefaultLanguage; break;
diff --git a/patches/test/gui-window-layout.diff b/patches/test/gui-window-layout.diff
deleted file mode 100644
index fd0bafc23..000000000
--- a/patches/test/gui-window-layout.diff
+++ /dev/null
@@ -1,35 +0,0 @@
-Index: vcl/inc/window.hxx
-===================================================================
-RCS file: /cvs/gsl/vcl/inc/window.hxx,v
-retrieving revision 1.47
-diff -u -p -u -r1.47 window.hxx
---- vcl/inc/window.hxx 24 Apr 2003 16:30:42 -0000 1.47
-+++ vcl/inc/window.hxx 27 Jun 2003 08:11:20 -0000
-@@ -530,6 +530,8 @@ public:
- virtual long PreNotify( NotifyEvent& rNEvt );
- virtual long Notify( NotifyEvent& rNEvt );
- virtual Window* GetPreferredKeyInputWindow();
-+ virtual void VtkAllocateSize( const Size &aSize );
-+ virtual void VtkRequestSize( Size &rSize );
-
- /*virtual*/ void AddEventListener( const Link& rEventListener );
- /*virtual*/ void RemoveEventListener( const Link& rEventListener );
-Index: vcl/source/window/window.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/window/window.cxx,v
-retrieving revision 1.174
-diff -u -p -u -r1.174 window.cxx
---- vcl/source/window/window.cxx 12 Jun 2003 07:51:56 -0000 1.174
-+++ vcl/source/window/window.cxx 27 Jun 2003 08:11:23 -0000
-@@ -8776,3 +8781,11 @@ LanguageType Window::GetInputLanguage()
- return mpFrame->GetInputLanguage();
- }
-
-+
-+void Window::VtkAllocateSize( const Size &aSize )
-+{
-+}
-+
-+void Window::VtkRequestSize( Size &rSize )
-+{
-+}
diff --git a/patches/test/layout-ids.diff b/patches/test/layout-ids.diff
deleted file mode 100644
index b62bef615..000000000
--- a/patches/test/layout-ids.diff
+++ /dev/null
@@ -1,67 +0,0 @@
-Index: tools/inc/rcid.h
-===================================================================
-RCS file: /cvs/util/tools/inc/rcid.h,v
-retrieving revision 1.1.1.1
-diff -u -p -u -r1.1.1.1 rcid.h
---- tools/inc/rcid.h 18 Sep 2000 17:03:02 -0000 1.1.1.1
-+++ tools/inc/rcid.h 26 Aug 2003 14:00:27 -0000
-@@ -159,6 +159,18 @@
- #define RSC_TREELISTBOX (RSC_NOTYPE + 0x78)
- #define RSC_STRINGARRAY (RSC_NOTYPE + 0x79)
-
-+#define RSC_LAYOUT (RSC_NOTYPE + 0x80)
-+# define RSC_LAYOUT_CONTAINER (RSC_NOTYPE + 0x81)
-+# define RSC_LAYOUT_BIN (RSC_NOTYPE + 0x82)
-+# define RSC_LAYOUT_WINDOW (RSC_NOTYPE + 0x83)
-+# define RSC_LAYOUT_ALIGNMENT (RSC_NOTYPE + 0x84)
-+# define RSC_LAYOUT_BOX (RSC_NOTYPE + 0x85)
-+# define RSC_LAYOUT_HBOX (RSC_NOTYPE + 0x86)
-+# define RSC_LAYOUT_VBOX (RSC_NOTYPE + 0x87)
-+# define RSC_LAYOUT_TABLE (RSC_NOTYPE + 0x88)
-+// ...
-+#define RSC_LAYOUT_LAST (RSC_NOTYPE + 0x90)
-+
- // (RSC_NOTYPE + 0x200) - (RSC_NOTYPE + 0x300) fuer Sfx reserviert
-
- #define RT_SYS_BITMAP (RSC_NOTYPE + 0xf2)
-Index: tools/inc/rc.h
-===================================================================
-RCS file: /cvs/util/tools/inc/rc.h,v
-retrieving revision 1.1.1.1
-diff -u -p -u -r1.1.1.1 rc.h
---- tools/inc/rc.h 18 Sep 2000 17:03:02 -0000 1.1.1.1
-+++ tools/inc/rc.h 26 Aug 2003 14:18:07 -0000
-@@ -85,6 +85,7 @@ typedef short RSWND_STYLE;
- #define WINDOW_QUICKTEXT 0x0200
- #define WINDOW_EXTRALONG 0x0800
- #define WINDOW_UNIQUEID 0x1000
-+#define WINDOW_LAYOUT 0x2000
-
- // Definition der Struktur die alle "WorkWindow"-Resourcen haben
- #define WORKWIN_SHOWNORMAL 0
-@@ -241,6 +242,25 @@ typedef short RSWND_STYLE;
- #define RSC_IMAGELIST_IDLIST 0x08
- #define RSC_IMAGELIST_IDCOUNT 0x10
-
-+// Definitions for layout widgets
-+#define RSC_LAYOUT_PEER 0x01
-+#define RSC_LAYOUT_BORDER 0x02
-+#define RSC_LAYOUT_HOMOGENEOUS 0x04
-+// Child properties - no good soln' here so far
-+// box:
-+#define RSC_LAYOUT_CHILD_EXPAND 0x10
-+#define RSC_LAYOUT_CHILD_FILL 0x20
-+#define RSC_LAYOUT_CHILD_PADDING 0x40
-+#define RSC_LAYOUT_CHILD_PACK_END 0x80
-+// table:
-+#define RSC_LAYOUT_CHILD_OPTIONS 0x100
-+
-+// Alignment
-+#define RSC_LAYOUT_ALIGNMENT_ALIGN 0x01
-+#define RSC_LAYOUT_ALIGNMENT_SCALE 0x02
-+// Table
-+#define RSC_LAYOUT_TABLE_ROW_SPACE 0x01
-+#define RSC_LAYOUT_TABLE_COL_SPACE 0x02
-
- // obsolete, should be removed by MM
- #define RSC_COLOR (RSC_NOTYPE + 0x16)
diff --git a/patches/test/layout-rsc.diff b/patches/test/layout-rsc.diff
deleted file mode 100644
index 34941c505..000000000
--- a/patches/test/layout-rsc.diff
+++ /dev/null
@@ -1,221 +0,0 @@
-? rsc/.2.html
-? rsc/doc++
-? rsc/rsc-list
-? rsc/rscJbgiwe
-? rsc/test.cxx
-? rsc/test.hxx
-? rsc/test.rc
-? rsc/test.src
-? rsc/test2.rc
-? rsc/test2.src
-? rsc/inc/rsclayout.hxx
-? rsc/source/res/rsclayout.cxx
-Index: rsc/inc/rscdb.hxx
-===================================================================
-RCS file: /cvs/gsl/rsc/inc/rscdb.hxx,v
-retrieving revision 1.8
-diff -u -p -u -r1.8 rscdb.hxx
---- rsc/inc/rscdb.hxx 2 Jul 2002 14:25:56 -0000 1.8
-+++ rsc/inc/rscdb.hxx 26 Aug 2003 14:48:26 -0000
-@@ -226,6 +226,8 @@ class RscTypCont
- RscTop * pClassColor );
- RscTop * InitClassImageList( RscTop * pSuper, RscTop *pClassBitmap,
- RscTop * pClassColor );
-+
-+ RscTop * InitClassLayout( RscTop * pSuper );
- RscTop * InitClassWindow( RscTop * pSuper, RscEnum * pMapUnit,
- RscArray * pLangGeo );
- RscTop * InitClassSystemWindow( RscTop * pSuper );
-Index: rsc/inc/rsctop.hxx
-===================================================================
-RCS file: /cvs/gsl/rsc/inc/rsctop.hxx,v
-retrieving revision 1.2
-diff -u -p -u -r1.2 rsctop.hxx
---- rsc/inc/rsctop.hxx 10 Oct 2001 11:51:13 -0000 1.2
-+++ rsc/inc/rsctop.hxx 26 Aug 2003 14:48:26 -0000
-@@ -73,6 +73,9 @@
- #ifndef _RSCCLOBJ_HXX
- #include <rscclobj.hxx>
- #endif
-+#ifndef _TOOLS_RCID_H
-+#include <tools/rcid.h>
-+#endif
-
- /****************** T Y P E S ********************************************/
- typedef short RSCVAR;
-@@ -112,6 +115,9 @@ public:
- USHORT GetTypId() const
- { return nTypId; };
- // Gibt die Oberklasse zurueck
-+ BOOL IsLayout() { return ( GetTypId() >= RSC_LAYOUT &&
-+ GetTypId() <= RSC_LAYOUT_LAST ); }
-+
- BOOL InHierarchy( RscTop * pClass );
- BOOL IsCodeWriteable() const
- {
-Index: rsc/source/parser/erscerr.cxx
-===================================================================
-RCS file: /cvs/gsl/rsc/source/parser/erscerr.cxx,v
-retrieving revision 1.6
-diff -u -p -u -r1.6 erscerr.cxx
---- rsc/source/parser/erscerr.cxx 7 Nov 2001 16:51:18 -0000 1.6
-+++ rsc/source/parser/erscerr.cxx 26 Aug 2003 14:48:26 -0000
-@@ -464,7 +464,7 @@ void RscError::ErrorFormat( const ERRTYP
- StdLstErr( "\n" );
- }
- StdLstErr( "f" );
-- sprintf( buf, "%u", (USHORT)rError );
-+ sprintf( buf, "0x%x", (USHORT)rError );
- StdLstErr( buf );
-
- if( pFI && pTC ){
-Index: rsc/source/parser/rscicpx.cxx
-===================================================================
-RCS file: /cvs/gsl/rsc/source/parser/rscicpx.cxx,v
-retrieving revision 1.6
-diff -u -p -u -r1.6 rscicpx.cxx
---- rsc/source/parser/rscicpx.cxx 26 Mar 2003 15:50:46 -0000 1.6
-+++ rsc/source/parser/rscicpx.cxx 26 Aug 2003 14:48:28 -0000
-@@ -281,6 +281,71 @@ RscTop * RscTypCont::InitClassImageList(
- return( pClassImageList );
- }
-
-+RscTop * RscTypCont::InitClassLayout( RscTop * pSuper )
-+{
-+ HASHID nId;
-+ RscTop *pClassLayout;
-+
-+ // Layout
-+ nId = pHS->Insert( "Layout" );
-+ pClassLayout = new RscClass( nId, RSC_LAYOUT, pSuper );
-+ aNmTb.Put( nId, CLASSNAME, pClassLayout );
-+
-+ nId = aNmTb.Put( "PeerId", VARNAME );
-+ pClassLayout->SetVariable( nId, &aIdNoZeroUShort, NULL, 0, RSC_LAYOUT_PEER );
-+ nId = aNmTb.Put( "Border", VARNAME );
-+ pClassLayout->SetVariable( nId, &aShort, NULL, 0, RSC_LAYOUT_BORDER );
-+ nId = aNmTb.Put( "Homogeneous", VARNAME );
-+ pClassLayout->SetVariable( nId, &aBool, NULL, 0, RSC_LAYOUT_HOMOGENEOUS );
-+
-+ // Not a very satisfactory way to do child properties:
-+ nId = aNmTb.Put( "Expand", VARNAME );
-+ pClassLayout->SetVariable( nId, &aBool, NULL, 0, RSC_LAYOUT_CHILD_EXPAND );
-+ nId = aNmTb.Put( "Fill", VARNAME );
-+ pClassLayout->SetVariable( nId, &aBool, NULL, 0, RSC_LAYOUT_CHILD_FILL );
-+ nId = aNmTb.Put( "Padding", VARNAME );
-+ pClassLayout->SetVariable( nId, &aShort, NULL, 0, RSC_LAYOUT_CHILD_PADDING );
-+ nId = aNmTb.Put( "PackEnd", VARNAME );
-+ pClassLayout->SetVariable( nId, &aBool, NULL, 0, RSC_LAYOUT_CHILD_PACK_END );
-+
-+ // FIXME: table options - need a flag per option... - or more complexity.
-+ pRoot->Insert( pClassLayout );
-+
-+ // LayoutBin
-+ RscTop *pClassLayoutBin;
-+ nId = pHS->Insert( "LayoutBin" );
-+ pClassLayoutBin = new RscClass( nId, RSC_LAYOUT_BIN, pClassLayout );
-+ aNmTb.Put( nId, CLASSNAME, pClassLayoutBin );
-+
-+ // LayoutAlignment
-+ RscTop *pClassLayoutAlign;
-+ nId = pHS->Insert( "LayoutAlignment" );
-+ pClassLayoutAlign = new RscClass( nId, RSC_LAYOUT_ALIGNMENT, pClassLayoutBin );
-+ aNmTb.Put( nId, CLASSNAME, pClassLayoutAlign );
-+
-+ // FIXME: need a flag per option, and a floating point type [!]
-+
-+ // LayoutBox
-+ RscTop *pClassLayoutBox;
-+ nId = pHS->Insert( "LayoutBox" );
-+ pClassLayoutBox = new RscClass( nId, RSC_LAYOUT_BOX, pClassLayout );
-+ aNmTb.Put( nId, CLASSNAME, pClassLayoutBox );
-+
-+ // LayoutHBox
-+ RscTop *pClassLayoutHBox;
-+ nId = pHS->Insert( "LayoutHBox" );
-+ pClassLayoutHBox = new RscClass( nId, RSC_LAYOUT_HBOX, pClassLayoutBox );
-+ aNmTb.Put( nId, CLASSNAME, pClassLayoutHBox );
-+
-+ // LayoutVBox
-+ RscTop *pClassLayoutVBox;
-+ nId = pHS->Insert( "LayoutVBox" );
-+ pClassLayoutVBox = new RscClass( nId, RSC_LAYOUT_VBOX, pClassLayoutBox );
-+ aNmTb.Put( nId, CLASSNAME, pClassLayoutVBox );
-+
-+ return pClassLayout;
-+}
-+
- /*************************************************************************
- |* RscTypCont::InitClassWindow()
- *************************************************************************/
-@@ -315,7 +380,7 @@ RscTop * RscTypCont::InitClassWindow( Rs
- // Variable einfuegen
- nVarId = aNmTb.Put( "_RscExtraFlags", VARNAME );
- pClassWindow->SetVariable( nVarId, pFlag, NULL,
-- VAR_HIDDEN | VAR_NOENUM );
-+ VAR_HIDDEN | VAR_NOENUM );
-
- aBaseLst.Insert(
- pClient = new RscClient( pHS->Insert( "BOOL" ), RSC_NOTYPE,
-@@ -373,6 +438,8 @@ RscTop * RscTypCont::InitClassWindow( Rs
- pClassWindow->SetVariable( nId, &aLong, NULL, 0, WINDOW_EXTRALONG );
- nId = aNmTb.Put( "UniqueId", VARNAME );
- pClassWindow->SetVariable( nId, &aLong, NULL, 0, WINDOW_UNIQUEID );
-+ nId = aNmTb.Put( "LayoutId", VARNAME );
-+ pClassWindow->SetVariable( nId, &aIdNoZeroUShort, NULL, 0, WINDOW_LAYOUT );
-
- return( pClassWindow );
- }
-Index: rsc/source/parser/rscinit.cxx
-===================================================================
-RCS file: /cvs/gsl/rsc/source/parser/rscinit.cxx,v
-retrieving revision 1.7
-diff -u -p -u -r1.7 rscinit.cxx
---- rsc/source/parser/rscinit.cxx 2 Jul 2002 14:44:00 -0000 1.7
-+++ rsc/source/parser/rscinit.cxx 26 Aug 2003 14:48:28 -0000
-@@ -517,6 +517,8 @@ void RscTypCont::Init()
- pClassWindow = InitClassWindow( pClassMgr, pMapUnit,
- pLangGeometry );
- pRoot->Insert( pClassWindow );
-+
-+ InitClassLayout( pClassMgr );
- }
- {
-
-Index: rsc/source/res/rsccont.cxx
-===================================================================
-RCS file: /cvs/gsl/rsc/source/res/rsccont.cxx,v
-retrieving revision 1.2
-diff -u -p -u -r1.2 rsccont.cxx
---- rsc/source/res/rsccont.cxx 10 Oct 2001 11:51:25 -0000 1.2
-+++ rsc/source/res/rsccont.cxx 26 Aug 2003 14:48:32 -0000
-@@ -292,14 +292,14 @@ RSCINST RscBaseCont::SearchEle( const RS
- |*
- *************************************************************************/
- ERRTYPE RscBaseCont::GetElement( const RSCINST & rInst, const RscId & rEleName,
-- RscTop * pCreateClass,
-- const RSCINST & rCreateInst, RSCINST * pGetInst )
-+ RscTop * pCreateClass,
-+ const RSCINST & rCreateInst, RSCINST * pGetInst )
- {
- RscBaseContInst * pClassData;
- RSCINST aTmpI;
- ERRTYPE aError;
-
-- if( !bNoId && !rEleName.IsId() )
-+ if( !bNoId && !rEleName.IsId() && !pCreateClass->IsLayout() )
- aError = WRN_CONT_NOID;
- pClassData = (RscBaseContInst *)(rInst.pData + nOffInstData);
-
-@@ -924,6 +924,11 @@ ERRTYPE RscBaseCont::ContWriteRc( const
- if( bExtra || bNoId )
- { // Nur Subresourcen schreiben, wenn bExtra == TRUE
- pClassData = (RscBaseContInst *)(rInst.pData + nOffInstData);
-+
-+ if( rInst.pClass->IsLayout() ) {
-+ rMem.Put( (USHORT) 0x3c3e ); // helpful visible marker.
-+ rMem.Put( (USHORT) pClassData->nEntries );
-+ }
-
- for( i = 0; i < pClassData->nEntries && aError.IsOk(); i++ ){
- aError = pClassData->pEntries[ i ].aInst.pClass->
diff --git a/patches/test/layout-test.diff b/patches/test/layout-test.diff
deleted file mode 100644
index aed8b4103..000000000
--- a/patches/test/layout-test.diff
+++ /dev/null
@@ -1,143 +0,0 @@
-? svtools/workben/test.src.good
-? svtools/workben/workben..dpr
-Index: svtools/workben/makefile.mk
-===================================================================
-RCS file: /cvs/util/svtools/workben/makefile.mk,v
-retrieving revision 1.4
-diff -u -p -u -r1.4 makefile.mk
---- svtools/workben/makefile.mk 1 Oct 2002 12:28:04 -0000 1.4
-+++ svtools/workben/makefile.mk 27 Aug 2003 12:16:28 -0000
-@@ -91,6 +91,11 @@ APP1STDLIBS= $(SVTOOLLIB) \
- APP1DEPN= $(L)$/itools.lib $(SVLIBDEPEND)
- APP1OBJS= $(OBJ)$/svdem.obj
-
-+SRC1FILES=test.src
-+SRS1NAME=test
-+RES1TARGET=test
-+SRS1FILES=$(SRS)$/test.srs
-+
-
- # --- Targets -------------------------------------------------------
-
-Index: svtools/workben/svdem.cxx
-===================================================================
-RCS file: /cvs/util/svtools/workben/svdem.cxx,v
-retrieving revision 1.3
-diff -u -p -u -r1.3 svdem.cxx
---- svtools/workben/svdem.cxx 15 Jan 2002 17:25:59 -0000 1.3
-+++ svtools/workben/svdem.cxx 27 Aug 2003 12:16:28 -0000
-@@ -257,6 +257,22 @@ public:
-
- // -----------------------------------------------------------------------
-
-+class LayoutDlg : public ModalDialog
-+{
-+ PushButton aOk;
-+ PushButton aCancel;
-+ PushButton aSomething;
-+ public:
-+ LayoutDlg( Window *pParent) :
-+ ModalDialog( pParent, ResId( 1001 ) ),
-+ aOk ( this, ResId( 1002 ) ),
-+ aCancel ( this, ResId( 1003 ) ),
-+ aSomething ( this, ResId( 1004 ) )
-+ {
-+ FreeResource();
-+ }
-+};
-+
- void MyApp::Main()
- {
- try
-@@ -273,7 +289,13 @@ void MyApp::Main()
- Help::EnableExtHelp();
- Help::EnableBalloonHelp();
- Help::EnableQuickHelp();
--
-+
-+ ResMgr *pAppResMgr = new ResMgr( String( RTL_CONSTASCII_USTRINGPARAM( "test.res" ) ), NULL, NULL );
-+ Resource::SetResManager( pAppResMgr );
-+
-+ LayoutDlg aResWin( NULL );
-+ aResWin.Execute();
-+
- MyWin aMainWin( NULL, WinBits( WB_APP | WB_STDWORK | WB_CLIPCHILDREN ) );
- aMainWin.SetText( XubString( RTL_CONSTASCII_USTRINGPARAM( "SVTOOLS - Workbench" ) ) );
- aMainWin.GrabFocus();
-Index: svtools/workben/test.src
-===================================================================
-RCS file: svtools/workben/test.src
-diff -N svtools/workben/test.src
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ svtools/workben/test.src 27 Aug 2003 12:16:28 -0000
-@@ -0,0 +1,55 @@
-+#define DLG_TEST 1001
-+#define BTN_OK 1002
-+#define BTN_CANCEL 1003
-+#define BTN_SOMETHING 1004
-+#define DLG_TEST_LAYOUT 1100
-+
-+ModalDialog DLG_TEST
-+{
-+ OutputSize = TRUE ;
-+ SVLook = TRUE;
-+ Moveable = TRUE ;
-+ Closeable = TRUE;
-+ Text = "Layout test dialog";
-+ Sizeable = TRUE;
-+ LayoutId = DLG_TEST_LAYOUT;
-+ Size = MAP_APPFONT(320, 50);
-+
-+ PushButton BTN_OK
-+ {
-+ Text = "Expand/Fill";
-+ };
-+ PushButton BTN_CANCEL
-+ {
-+ Text = "NoExpand";
-+ };
-+ PushButton BTN_SOMETHING
-+ {
-+ Text = "Expand/NoFill";
-+ Size = MAP_APPFONT(50, 50);
-+ Pos = MAP_APPFONT(100, 100);
-+ };
-+
-+ LayoutHBox DLG_TEST_LAYOUT {
-+ Homogeneous = False;
-+ Border = 4;
-+ Layout {
-+ PeerId = BTN_OK;
-+ Expand = True;
-+ Fill = True;
-+ Padding = 3;
-+ };
-+ Layout {
-+ PeerId = BTN_CANCEL;
-+ Expand = False;
-+ Fill = False;
-+ Padding = 1;
-+ };
-+ Layout {
-+ PeerId = BTN_SOMETHING;
-+ Expand = True;
-+ Fill = False;
-+ Padding = 0;
-+ };
-+ };
-+};
-Index: svtools/prj/d.lst
-===================================================================
-RCS file: /cvs/util/svtools/prj/d.lst,v
-retrieving revision 1.104
-diff -u -p -u -r1.104 d.lst
---- svtools/prj/d.lst 16 Jul 2003 18:11:00 -0000 1.104
-+++ svtools/prj/d.lst 27 Aug 2003 12:16:28 -0000
-@@ -27,6 +27,7 @@ mkdir: %_DEST%\inc%_EXT%\svtools
- ..\%__SRC%\bin\svt?????.sym %_DEST%\bin%_EXT%\svt?????.sym
- ..\%__SRC%\bin\svl?????.dll %_DEST%\bin%_EXT%\svl?????.dll
- ..\%__SRC%\bin\bmp.* %_DEST%\bin%_EXT%\bmp.*
-+..\%__SRC%\bin\test.* %_DEST%\bin%_EXT%\test.*
- ..\%__SRC%\bin\bmpsum.* %_DEST%\bin%_EXT%\bmpsum.*
- ..\%__SRC%\bin\bmpgui.* %_DEST%\bin%_EXT%\bmpgui.*
- ..\%__SRC%\bin\g2g.* %_DEST%\bin%_EXT%\g2g.*
diff --git a/patches/test/layout-vcl-layout.diff b/patches/test/layout-vcl-layout.diff
deleted file mode 100644
index 7a063bbb9..000000000
--- a/patches/test/layout-vcl-layout.diff
+++ /dev/null
@@ -1,521 +0,0 @@
-Index: vcl/source/window/makefile.mk
-===================================================================
-RCS file: /cvs/gsl/vcl/source/window/makefile.mk,v
-retrieving revision 1.10
-diff -u -p -u -r1.10 makefile.mk
---- vcl/source/window/makefile.mk 27 Mar 2003 17:58:22 -0000 1.10
-+++ vcl/source/window/makefile.mk 27 Aug 2003 12:18:43 -0000
-@@ -76,6 +76,7 @@ TARGET=win
- # --- Files --------------------------------------------------------
-
- SLOFILES= $(SLO)$/accel.obj \
-+ $(SLO)$/layout.obj \
- $(SLO)$/accmgr.obj \
- $(SLO)$/brdwin.obj \
- $(SLO)$/btndlg.obj \
-Index: vcl/source/window/layout.cxx
-===================================================================
-RCS file: vcl/source/window/layout.cxx
-diff -N vcl/source/window/layout.cxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ vcl/source/window/layout.cxx 27 Aug 2003 12:18:43 -0000
-@@ -0,0 +1,390 @@
-+#include <sal/macros.h>
-+#include <tools/rcid.h>
-+#include <tools/rc.h>
-+#include "layout.hxx"
-+
-+// --- LayoutConnector ---
-+
-+Layout *LayoutConnector::loadLayout()
-+{
-+ RSHEADER_TYPE *pHdr = (RSHEADER_TYPE *)m_pResMgr->GetClass();
-+ m_pResMgr->Increment( sizeof( RSHEADER_TYPE ) );
-+
-+ fprintf( stderr, "Header: Id 0x%x type: %d, Glob: 0x%x, Local: 0x%x\n",
-+ pHdr->GetId(), pHdr->GetRT(), pHdr->GetGlobOff(), pHdr->GetLocalOff() );
-+
-+ Layout *pLayout = NULL;
-+
-+ switch( pHdr->GetRT() ) {
-+ case RSC_LAYOUT_BIN:
-+ case RSC_LAYOUT_BOX:
-+ fprintf( stderr, "Layout 0x%x is not instantiable\n", pHdr->GetRT() );
-+ break;
-+ case RSC_LAYOUT_HBOX:
-+ fprintf( stderr, "HBox Layout\n", pHdr->GetRT() );
-+ pLayout = new LayoutHBox();
-+ break;
-+ case RSC_LAYOUT_WINDOW:
-+ case RSC_LAYOUT_ALIGNMENT:
-+ case RSC_LAYOUT_VBOX:
-+ case RSC_LAYOUT_TABLE:
-+ fprintf( stderr, "Layout 0x%x not yet implemented\n", pHdr->GetRT() );
-+ break;
-+ case RSC_LAYOUT:
-+ fprintf( stderr, "Base Layout\n", pHdr->GetRT() );
-+ pLayout = new Layout();
-+ break;
-+ default:
-+ fprintf( stderr, "Layout 0x%x is unknown\n", pHdr->GetRT() );
-+ break;
-+ }
-+
-+ if( pLayout )
-+ pLayout->readRes( *this, m_pResMgr );
-+
-+ return pLayout;
-+}
-+LayoutConnector::LayoutConnector( Window *pWindow, ResMgr *pMgr,
-+ USHORT nId) :
-+ m_pTopWindow( pWindow )
-+{
-+ fprintf( stderr, "Window with a layout ! (0x%x)\n", nId );
-+
-+ ResId aLayout( nId, pMgr );
-+ aLayout.SetRT( RSC_LAYOUT_HBOX );
-+
-+ m_pResMgr = pMgr;
-+
-+ // Do the setup ...
-+ if( pMgr->GetResource( aLayout ) ) {
-+ m_pTopLayout = loadLayout();
-+ pMgr->PopContext();
-+ } else
-+ fprintf( stderr, "No such resource 0x%x\n", nId );
-+
-+ m_pResMgr = NULL;
-+}
-+void LayoutConnector::reconcile( Connection &pCnx)
-+{
-+ fprintf( stderr, "Reconcile mapping 0x%x\n", pCnx );
-+ pCnx.pLayout->setPeer( pCnx.pWindow );
-+ if( pCnx.pWindow->IsVisible() )
-+ fprintf( stderr, "FIXME: trigger re-layout\n" );
-+}
-+void LayoutConnector::addMap( USHORT nId, Layout *pLayout )
-+{
-+ std::list<Connection>::iterator aIter;
-+ for (aIter = m_aMap.begin(); aIter != m_aMap.end(); aIter++) {
-+ if( aIter->nId == nId ) {
-+ aIter->pLayout = pLayout;
-+ reconcile( *aIter );
-+ return;
-+ }
-+ }
-+ Connection aCnx = { nId, pLayout, NULL };
-+ m_aMap.push_back( aCnx );
-+}
-+void LayoutConnector::reconcileMap( USHORT nId, Window *pWindow )
-+{
-+ std::list<Connection>::iterator aIter;
-+ for (aIter = m_aMap.begin(); aIter != m_aMap.end(); aIter++) {
-+ if( aIter->nId == nId ) {
-+ aIter->pWindow = pWindow;
-+ reconcile( *aIter );
-+ return;
-+ }
-+ }
-+}
-+bool LayoutConnector::checkReconciled()
-+{
-+ bool bResult = true;
-+
-+ std::list<Connection>::iterator aIter;
-+ for (aIter = m_aMap.begin(); aIter != m_aMap.end(); aIter++) {
-+ if( !aIter->pWindow ) {
-+ fprintf( stderr, "Unreconciled id 0x%x -> %p\n",
-+ aIter->nId, aIter->pLayout );
-+ bResult = false;
-+ }
-+ }
-+
-+ return bResult;
-+}
-+
-+// --- Layout ---
-+
-+Layout::Layout() :
-+ m_pPeer( NULL ),
-+ m_aRequisition( 0, 0),
-+ m_nBorderWidth( 0 ),
-+ m_bHomogeneous( FALSE ),
-+ m_nPadding( 0 ),
-+ m_bExpand( 0 ),
-+ m_bFill( 0 ),
-+ m_bPackStart( TRUE )
-+{
-+}
-+Layout::~Layout()
-+{
-+}
-+void Layout::addChild( Layout *pLayout )
-+{
-+ fprintf( stderr, "Meaningless to add a child to base Layout\n");
-+}
-+void Layout::readRes( LayoutConnector &rCnx, ResMgr *pResMgr )
-+{
-+ USHORT nFlags;
-+ nFlags = pResMgr->ReadShort();
-+
-+ fprintf( stderr, "Flags: 0x%x\n", nFlags );
-+
-+ if( nFlags & RSC_LAYOUT_PEER ) {
-+ USHORT nPeer = pResMgr->ReadShort();
-+ fprintf( stderr, "Peer: 0x%x\n", nPeer );
-+ rCnx.addMap( nPeer, this );
-+ }
-+ if( nFlags & RSC_LAYOUT_BORDER)
-+ m_nBorderWidth = pResMgr->ReadShort();
-+ if( nFlags & RSC_LAYOUT_HOMOGENEOUS )
-+ m_bHomogeneous = TRUE;
-+ else
-+ m_bHomogeneous = FALSE;
-+
-+ if( nFlags & RSC_LAYOUT_CHILD_EXPAND )
-+ m_bExpand = TRUE;
-+ if( nFlags & RSC_LAYOUT_CHILD_FILL )
-+ m_bFill = TRUE;
-+ if( nFlags & RSC_LAYOUT_CHILD_PADDING )
-+ m_nPadding = pResMgr->ReadShort();
-+ if( nFlags & RSC_LAYOUT_CHILD_PACK_END )
-+ m_bPackStart = FALSE;
-+
-+ USHORT nMarker;
-+ while (( nMarker = pResMgr->ReadShort() ) != 0x3c3e )
-+ fprintf( stderr, " Skip strangeness 0x%x\n", nMarker); // FIXME: strange.
-+
-+ int nChildren = pResMgr->ReadShort();
-+ fprintf( stderr, "Layout has %d children\n", nChildren );
-+
-+ for( int i = 0; i < nChildren; i++ ){
-+ fprintf( stderr, "Load child %d\n", i);
-+ Layout *pChild;
-+
-+ if( ( pChild = rCnx.loadLayout() ) )
-+ addChild( pChild );
-+ }
-+}
-+void Layout::requestSize( Size &rSize )
-+{
-+ if( m_pPeer ) {
-+ m_pPeer->VtkRequestSize( rSize );
-+ // Size requesting doesn't seem too accurate
-+ rSize.Width() += 8;
-+ } else
-+ rSize = Size();
-+ fprintf( stderr, "Layout::RequestSize -> %d, %d [%p]\n",
-+ rSize.Width(), rSize.Height(), m_pPeer );
-+ m_aRequisition = rSize;
-+}
-+void Layout::allocateSize( const Point &rPoint,
-+ const Size &rSize )
-+{
-+ if( m_pPeer )
-+ m_pPeer->SetPosSizePixel( rPoint, rSize );
-+ fprintf( stderr, "Layout::allocateSize -> %d,%d (%d, %d) [%p]\n",
-+ rPoint.X(), rPoint.Y(), rSize.Width(), rSize.Height(),
-+ m_pPeer );
-+}
-+
-+// --- LayoutBin ---
-+
-+LayoutBin::LayoutBin() : Layout()
-+{
-+}
-+LayoutBin::~LayoutBin()
-+{
-+ if (m_pChild)
-+ delete m_pChild;
-+}
-+void LayoutBin::requestSize( Size &rSize )
-+{
-+ if( m_pChild )
-+ m_pChild->requestSize( rSize );
-+ else
-+ rSize = Size();
-+}
-+void LayoutBin::allocateSize( const Point &rPoint, const Size &rSize )
-+{
-+ if( m_pChild )
-+ m_pChild->allocateSize( rPoint, rSize );
-+}
-+
-+// --- LayoutBox ---
-+
-+LayoutBox::LayoutBox() :
-+ Layout(), m_nSpacing(0)
-+{
-+}
-+LayoutBox::~LayoutBox()
-+{
-+ std::list<BoxChild>::const_iterator aIter;
-+ for (aIter = m_aChildren.begin(); aIter != m_aChildren.end(); aIter++)
-+ delete aIter->pLayout;
-+}
-+void LayoutBox::addChild( Layout *pLayout )
-+{
-+ BoxChild aChild;
-+
-+ // this sucks ...
-+ aChild.pLayout = pLayout;
-+ aChild.nPadding = aChild.pLayout->m_nPadding;
-+ aChild.bExpand = aChild.pLayout->m_bExpand;
-+ aChild.bFill = aChild.pLayout->m_bFill;
-+ aChild.bPackStart = aChild.pLayout->m_bPackStart;
-+
-+ m_aChildren.push_back( aChild );
-+}
-+
-+// --- LayoutHBox ---
-+
-+LayoutHBox::LayoutHBox() : LayoutBox( )
-+{
-+}
-+void LayoutHBox::requestSize( Size &rSize )
-+{
-+ int nVisibleChildren = 0;
-+
-+ rSize.Width() = 0;
-+ rSize.Height() = 0;
-+
-+ std::list<BoxChild>::const_iterator aIter;
-+ for (aIter = m_aChildren.begin(); aIter != m_aChildren.end(); aIter++) {
-+ if( !aIter->pLayout->visible() )
-+ continue;
-+
-+ Size aChildSize;
-+
-+ aIter->pLayout->requestSize( aChildSize );
-+
-+ int nThisWidth = aChildSize.Width() + aIter->nPadding * 2;
-+
-+ if( m_bHomogeneous )
-+ rSize.Width() = SAL_MAX( rSize.Width(), nThisWidth );
-+ else
-+ rSize.Width() += nThisWidth;
-+
-+ rSize.Height() = SAL_MAX( rSize.Height(), aChildSize.Height() );
-+
-+ nVisibleChildren++;
-+ }
-+
-+ if (nVisibleChildren) {
-+ if( m_bHomogeneous )
-+ rSize.Width() *= nVisibleChildren;
-+ rSize.Width() += (nVisibleChildren - 1) * m_nSpacing;
-+ }
-+
-+ rSize.Width() += m_nBorderWidth * 2;
-+ rSize.Height() += m_nBorderWidth * 2;
-+
-+ fprintf( stderr, "LayoutHBox::RequestSize -> %d, %d [%p]\n",
-+ rSize.Width(), rSize.Height(), this );
-+
-+ m_aRequisition = rSize;
-+}
-+#define FIXED_PT 16
-+void LayoutHBox::allocateSize( const Point &rPoint, const Size &rSize )
-+{
-+ int nVisibleChildren = 0;
-+ int nExpandChildren = 0;
-+ int fExtraSpace;
-+ Point fEndPos;
-+ Point fStartPos;
-+ Size aChildSize;
-+
-+ LayoutBox::allocateSize( rPoint, rSize );
-+
-+ std::list<BoxChild>::const_iterator aIter;
-+ for (aIter = m_aChildren.begin(); aIter != m_aChildren.end(); aIter++) {
-+ if( aIter->pLayout->visible() )
-+ nVisibleChildren++;
-+ if( aIter->bExpand )
-+ nExpandChildren++;
-+ }
-+
-+ if( !nVisibleChildren )
-+ return;
-+
-+ if( m_bHomogeneous )
-+ fExtraSpace = ( ( rSize.Width() - m_nBorderWidth * 2 -
-+ ( nVisibleChildren - 1 ) * m_nSpacing ) * FIXED_PT ) / nVisibleChildren;
-+
-+ else if( nExpandChildren )
-+ fExtraSpace = ( ( rSize.Width() - m_aRequisition.Width() ) * FIXED_PT ) / nExpandChildren;
-+
-+ else
-+ fExtraSpace = 0;
-+
-+
-+ fprintf( stderr, "Layout::allocateSize extra space %g [%p]\n",
-+ (double)fExtraSpace/FIXED_PT, this );
-+
-+ fStartPos = rPoint;
-+ fStartPos.Move( m_nBorderWidth, m_nBorderWidth );
-+ fStartPos.X() *= FIXED_PT;
-+ fEndPos = rPoint;
-+ fEndPos.Move(rSize.Width(), 0);
-+ fEndPos.Move( -m_nBorderWidth, m_nBorderWidth );
-+ fEndPos.X() *= FIXED_PT;
-+ aChildSize.Height() = SAL_MAX( 1, rSize.Height() - m_nBorderWidth * 2 );
-+
-+ for (aIter = m_aChildren.begin(); aIter != m_aChildren.end(); aIter++) {
-+ if( !aIter->pLayout->visible() )
-+ continue;
-+
-+ Point aChildPos;
-+ int fBoxWidth; // of the available box space
-+
-+ if( m_bHomogeneous )
-+ fBoxWidth = fExtraSpace;
-+ else {
-+ fBoxWidth = ( aIter->pLayout->getRequisition().Width() + aIter->nPadding * 2 ) * FIXED_PT;
-+
-+ if( aIter->bExpand )
-+ fBoxWidth += fExtraSpace;
-+ }
-+
-+ int nSlackSpace;
-+ if( aIter->bFill ) {
-+ aChildSize.Width() = SAL_MAX( 1, fBoxWidth / FIXED_PT - aIter->nPadding * 2 );
-+ nSlackSpace = aIter->nPadding;
-+ } else {
-+ aChildSize.Width() = aIter->pLayout->getRequisition().Width();
-+ nSlackSpace = (fBoxWidth / FIXED_PT - aChildSize.Width()) / 2;
-+ }
-+
-+ fprintf( stderr, "LayoutHBox::alloc_child [%p] slack %d, childSize: %d,%d\n",
-+ aIter->pLayout, nSlackSpace, aChildSize.Width(), aChildSize.Height() );
-+
-+ Point aPlace;
-+ if( aIter->bPackStart ) {
-+
-+ aPlace = fStartPos;
-+ aPlace.X() /= FIXED_PT;
-+ aPlace.Move( nSlackSpace, 0 );
-+
-+ fStartPos.Move( fBoxWidth + m_nSpacing * FIXED_PT, 0 );
-+ } else {
-+
-+ fEndPos.Move( -fBoxWidth - m_nSpacing * FIXED_PT, 0 );
-+
-+ aPlace = fEndPos;
-+ aPlace.X() /= FIXED_PT;
-+ aPlace.Move( nSlackSpace, 0 );
-+ }
-+
-+ aIter->pLayout->allocateSize( aPlace, aChildSize );
-+ }
-+}
-+
-+
-Index: vcl/inc/layout.hxx
-===================================================================
-RCS file: vcl/inc/layout.hxx
-diff -N vcl/inc/layout.hxx
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ vcl/inc/layout.hxx 27 Aug 2003 12:18:43 -0000
-@@ -0,0 +1,102 @@
-+#ifndef _SV_LAYOUT_HXX
-+#define _SV_LAYOUT_HXX
-+
-+#include <list>
-+
-+#include <gen.hxx>
-+#include <resmgr.hxx>
-+#include <window.hxx>
-+
-+class Layout;
-+//
-+// The connector exists to connect widgets as they are
-+// instantiated later, to the pre-existing layout peers.
-+//
-+class LayoutConnector {
-+ struct Connection {
-+ USHORT nId;
-+ Layout *pLayout;
-+ Window *pWindow;
-+ };
-+ std::list<Connection> m_aMap;
-+ ResMgr *m_pResMgr;
-+ Window *m_pTopWindow;
-+ Layout *m_pTopLayout;
-+ private:
-+ void reconcile( Connection &pCnx );
-+ public:
-+ LayoutConnector( Window *pWindow, ResMgr *pMgr, USHORT nId );
-+
-+ // Construction time bits
-+ ResMgr *getSetupMgr();
-+ void addMap( USHORT nId, Layout *pLayout );
-+ Layout *loadLayout();
-+
-+ // later association bits
-+ void reconcileMap( USHORT nId, Window *pWindow );
-+ bool checkReconciled();
-+ Layout *getLayout() { return m_pTopLayout; }
-+};
-+
-+class Layout {
-+public: // sucking child properties ...
-+ Window *m_pPeer;
-+ Size m_aRequisition;
-+ int m_nBorderWidth;
-+ bool m_bHomogeneous;
-+// Unsatisfactory child properties ...
-+ int m_nPadding;
-+ bool m_bExpand;
-+ bool m_bFill;
-+ bool m_bPackStart;
-+ public:
-+ Layout();
-+ ~Layout();
-+ virtual void readRes( LayoutConnector &rCnx, ResMgr *pResMgr );
-+ virtual void requestSize( Size &rSize );
-+ virtual void allocateSize( const Point &rPoint,
-+ const Size &rSize );
-+ virtual void addChild( Layout *pLayout );
-+ const Size &getRequisition() { return m_aRequisition; }
-+ void setPeer( Window *pPeer) { m_pPeer = pPeer; }
-+ Window *getPeer() { return m_pPeer; }
-+ bool visible() { return m_pPeer ? m_pPeer->IsVisible() : TRUE; }
-+};
-+
-+class LayoutBin : public Layout {
-+ protected:
-+ Layout *m_pChild;
-+ public:
-+ LayoutBin();
-+ ~LayoutBin();
-+ virtual void requestSize( Size &rSize );
-+ virtual void allocateSize( const Point &rPoint, const Size &rSize );
-+};
-+
-+class LayoutBox : public Layout {
-+ protected:
-+// bool m_bHomogeneous;
-+ struct BoxChild {
-+ Layout *pLayout;
-+ int nPadding;
-+ bool bExpand;
-+ bool bFill;
-+ bool bPackStart;
-+ };
-+ int m_nSpacing;
-+ std::list<BoxChild> m_aChildren;
-+ public:
-+ LayoutBox();
-+ ~LayoutBox();
-+ virtual void addChild( Layout *pLayout );
-+};
-+
-+class LayoutHBox : public LayoutBox {
-+ public:
-+ LayoutHBox();
-+ virtual void requestSize( Size &rSize );
-+ virtual void allocateSize( const Point &rPoint,
-+ const Size &rSize );
-+};
-+
-+#endif // _SV_LAYOUT_HXX
diff --git a/patches/test/layout-vcl-window.diff b/patches/test/layout-vcl-window.diff
deleted file mode 100644
index b9ac382b8..000000000
--- a/patches/test/layout-vcl-window.diff
+++ /dev/null
@@ -1,219 +0,0 @@
-Index: vcl/inc/window.hxx
-===================================================================
-RCS file: /cvs/gsl/vcl/inc/window.hxx,v
-retrieving revision 1.47
-diff -u -p -u -r1.47 window.hxx
---- vcl/inc/window.hxx 24 Apr 2003 16:30:42 -0000 1.47
-+++ vcl/inc/window.hxx 27 Aug 2003 12:17:47 -0000
-@@ -131,6 +131,7 @@ class AccessObjectRef;
- class RmFrameWindow;
- class VCLXWindow;
- struct ImplAccessibleInfos;
-+class LayoutConnector;
-
- namespace com {
- namespace sun {
-@@ -530,6 +531,8 @@ public:
- virtual long PreNotify( NotifyEvent& rNEvt );
- virtual long Notify( NotifyEvent& rNEvt );
- virtual Window* GetPreferredKeyInputWindow();
-+ virtual void VtkAllocateSize( const Size &aSize );
-+ virtual void VtkRequestSize( Size &rSize );
-
- /*virtual*/ void AddEventListener( const Link& rEventListener );
- /*virtual*/ void RemoveEventListener( const Link& rEventListener );
-@@ -677,6 +680,7 @@ public:
- virtual void SetPosSizePixel( long nX, long nY,
- long nWidth, long nHeight,
- USHORT nFlags = WINDOW_POSSIZE_ALL );
-+ void DoLayout();
- void SetPosPixel( const Point& rNewPos );
- Point GetPosPixel() const;
- void SetSizePixel( const Size& rNewSize );
-Index: vcl/inc/window.h
-===================================================================
-RCS file: /cvs/gsl/vcl/inc/window.h,v
-retrieving revision 1.11
-diff -u -p -u -r1.11 window.h
---- vcl/inc/window.h 27 Mar 2003 17:57:36 -0000 1.11
-+++ vcl/inc/window.h 27 Aug 2003 12:17:47 -0000
-@@ -103,7 +103,7 @@ namespace dnd {
- // ---------------
- // - ImplWinData -
- // ---------------
--
-+class LayoutConnector;
- struct ImplWinData
- {
- UniString* mpExtOldText;
-@@ -113,6 +113,7 @@ struct ImplWinData
- Rectangle* mpFocusRect;
- Rectangle* mpTrackRect;
- USHORT mnTrackFlags;
-+ LayoutConnector* mpLayoutCnx;
- };
-
- // -------------------
-Index: vcl/source/window/window.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/window/window.cxx,v
-retrieving revision 1.176
-diff -u -p -u -r1.176 window.cxx
---- vcl/source/window/window.cxx 1 Jul 2003 14:48:37 -0000 1.176
-+++ vcl/source/window/window.cxx 27 Aug 2003 12:17:51 -0000
-@@ -206,6 +206,7 @@
- #include <dndlcon.hxx>
- #include <dndevdis.hxx>
- #include <impbmpconv.hxx>
-+#include <layout.hxx>
-
- #ifndef _UNOTOOLS_CONFIGNODE_HXX_
- #include <unotools/confignode.hxx>
-@@ -392,7 +393,7 @@ void Window::ImplUpdateGlobalSettings( A
- rSettings.SetStyleSettings( aStyleSettings );
- }
-
-- if( 1 )
-+ if( 0 ) // This is/was an incredibly broken thing to do
- {
- // #97047: Force all fonts except Mneu and Help to a fixed height
- // to avoid UI scaling due to large fonts
-@@ -1097,6 +1098,7 @@ void Window::ImplCallResize()
- {
- mbCallResize = FALSE;
- Resize();
-+ DoLayout();
-
- // #88419# Most classes don't call the base class in Resize() and Move(),
- // => Call ImpleResize/Move instead of Resize/Move directly...
-@@ -1209,6 +1211,7 @@ WinBits Window::ImplInitRes( const ResId
- pRes += 4;
- ULONG nStyle = GetLongRes( (void*)pRes );
- ((ResId&)rResId).aWinBits = nStyle;
-+
- return nStyle;
- }
-
-@@ -1296,6 +1299,24 @@ void Window::ImplLoadRes( const ResId& r
- SetData( (void*)ReadLongRes() );
- if ( nObjMask & WINDOW_UNIQUEID )
- SetUniqueId( (ULONG)ReadLongRes() );
-+ if ( nObjMask & WINDOW_LAYOUT )
-+ {
-+ ImplWinData* pWinData = ImplGetWinData();
-+ pWinData->mpLayoutCnx = new LayoutConnector
-+ ( this, GetResManager(), (USHORT)ReadShortRes() );
-+ }
-+
-+ Window *pWindow = this;
-+ LayoutConnector* pCnx = NULL;
-+
-+ while( pWindow &&
-+ !( pCnx = pWindow->ImplGetWinData()->mpLayoutCnx ) )
-+ pWindow = pWindow->mpRealParent;
-+
-+ if( pCnx )
-+ pCnx->reconcileMap( rResId.GetId(), this );
-+ else
-+ fprintf( stderr, "No LayoutConnector for %p\n", this );
- }
-
- // -----------------------------------------------------------------------
-@@ -1312,6 +1333,7 @@ ImplWinData* Window::ImplGetWinData() co
- mpWinData->mpFocusRect = NULL;
- mpWinData->mpTrackRect = NULL;
- mpWinData->mnTrackFlags = 0;
-+ mpWinData->mpLayoutCnx = NULL;
- }
-
- return mpWinData;
-@@ -1659,6 +1681,7 @@ void Window::ImplInitResolutionSettings(
- }
-
- // -----------------------------------------------------------------------
-+#include <stdio.h>
-
- void Window::ImplPointToLogic( Font& rFont ) const
- {
-@@ -1667,17 +1690,21 @@ void Window::ImplPointToLogic( Font& rFo
-
- if ( aSize.Width() )
- {
-- aSize.Width() *= mpFrameData->mnFontDPIX;
-- aSize.Width() += 72/2;
-- aSize.Width() /= 72;
-- aSize.Width() *= nScreenFontZoom;
-- aSize.Width() /= 100;
-- }
-- aSize.Height() *= mpFrameData->mnFontDPIY;
-- aSize.Height() += 72/2;
-- aSize.Height() /= 72;
-- aSize.Height() *= nScreenFontZoom;
-- aSize.Height() /= 100;
-+ double t = aSize.Width();
-+ t *= nScreenFontZoom;
-+ t /= 100.0;
-+ t *= mpFrameData->mnFontDPIX;
-+ t /= 72.0;
-+ t += 0.5;
-+ aSize.Width() = t;
-+ }
-+ double t = aSize.Height();
-+ t *= nScreenFontZoom;
-+ t /= 100.0;
-+ t *= mpFrameData->mnFontDPIY;
-+ t /= 72.0;
-+ t += 0.5;
-+ aSize.Height() = t;
-
- if ( IsMapModeEnabled() )
- aSize = PixelToLogic( aSize );
-@@ -5985,6 +6012,27 @@ void Window::SetParent( Window* pNewPare
-
- // -----------------------------------------------------------------------
-
-+void Window::DoLayout()
-+{
-+ Layout *pLayout;
-+ LayoutConnector *pCnx;
-+ if( ( pCnx = ImplGetWinData()->mpLayoutCnx ) &&
-+ ( pLayout = pCnx->getLayout() ) )
-+ {
-+ Size aSize;
-+
-+ if( !pCnx->checkReconciled() )
-+ fprintf( stderr, "Some windows will not show up\n" );
-+
-+ pLayout->requestSize( aSize );
-+ fprintf( stderr, "Window requested size %d, %d\n",
-+ aSize.Width(), aSize.Height() );
-+
-+ aSize = GetSizePixel();
-+ pLayout->allocateSize( Point(), aSize );
-+ }
-+}
-+
- void Window::Show( BOOL bVisible, USHORT nFlags )
- {
- DBG_CHKTHIS( Window, ImplDbgCheckWindow );
-@@ -5995,6 +6043,8 @@ void Window::Show( BOOL bVisible, USHORT
-
- mbVisible = bVisible != 0;
-
-+ DoLayout();
-+
- if ( !bVisible )
- {
- ImplHideAllOverlaps();
-@@ -8787,3 +8837,11 @@ LanguageType Window::GetInputLanguage()
- return mpFrame->GetInputLanguage();
- }
-
-+
-+void Window::VtkAllocateSize( const Size &aSize )
-+{
-+}
-+
-+void Window::VtkRequestSize( Size &rSize )
-+{
-+}
diff --git a/patches/test/memprof-nptl.diff b/patches/test/memprof-nptl.diff
deleted file mode 100644
index 32089bc9f..000000000
--- a/patches/test/memprof-nptl.diff
+++ /dev/null
@@ -1,357 +0,0 @@
-? COPYING
-? INSTALL
-? autom4te.cache
-? depcomp
-? install-sh
-? missing
-? mkinstalldirs
-? stamp-h1
-Index: ChangeLog
-===================================================================
-RCS file: /cvs/gnome/memprof/ChangeLog,v
-retrieving revision 1.129
-diff -u -p -u -r1.129 ChangeLog
---- ChangeLog 1 Apr 2005 23:09:59 -0000 1.129
-+++ ChangeLog 22 Nov 2005 09:17:09 -0000
-@@ -1,3 +1,23 @@
-+2005-06-14 Michael Meeks <michael.meeks@novell.com>
-+
-+ * intercept.c (allocate_thread, find_thread):
-+ update signatures and re-work for NPTL which gives
-+ the same getpid() for each process: fixes all the
-+ threading problems.
-+
-+ * process.c (input_func): reset the info structure
-+ between messages; defensively.
-+
-+2005-06-13 Michael Meeks <michael.meeks@novell.com>
-+
-+ * server.c (ensure_cleanup, mp_server_init),
-+ * process.c (process_start_input): use a fuller set
-+ of G_IO_ flags for various conditions.
-+
-+ * intercept.c (exit_wait, mi_write_stack): use atomic
-+ increment for seqno - if we get out of step process.c
-+ bombs with an ever-growing sorted GList.
-+
- 2005-04-01 Steve Murphy <murf@e-tools.com>
-
- * configure.in: Added "rw" to ALL_LINGUAS.
-Index: autogen.sh
-===================================================================
-RCS file: /cvs/gnome/memprof/autogen.sh,v
-retrieving revision 1.2
-diff -u -p -u -r1.2 autogen.sh
---- autogen.sh 10 Dec 2001 23:46:25 -0000 1.2
-+++ autogen.sh 22 Nov 2005 09:17:09 -0000
-@@ -17,4 +17,5 @@ which gnome-autogen.sh || {
- echo "You need to install gnome-common from the GNOME CVS"
- exit 1
- }
-+REQUIRED_AUTOMAKE_VERSION=1.8
- USE_GNOME2_MACROS=1 . gnome-autogen.sh
-Index: bfdutils.c
-===================================================================
-RCS file: /cvs/gnome/memprof/bfdutils.c,v
-retrieving revision 1.8
-diff -u -p -u -r1.8 bfdutils.c
---- bfdutils.c 24 Jan 2003 20:19:54 -0000 1.8
-+++ bfdutils.c 22 Nov 2005 09:17:09 -0000
-@@ -352,8 +352,8 @@ process_map_sections (Map *map, SectionF
- /* bfd_section_size() gives 0 for old versions of binutils, so peek
- * into the internals instead. :-(
- */
-- /* (*func) (addr, bfd_section_size (map->abfd, section), user_data); */
-- (*func) (addr, section->_cooked_size, user_data);
-+ (*func) (addr, bfd_section_size (map->abfd, section), user_data);
-+// (*func) (addr, section->_cooked_size, user_data);
- }
- }
- }
-Index: intercept.c
-===================================================================
-RCS file: /cvs/gnome/memprof/intercept.c,v
-retrieving revision 1.5
-diff -u -p -u -r1.5 intercept.c
---- intercept.c 3 Sep 2004 22:29:47 -0000 1.5
-+++ intercept.c 22 Nov 2005 09:17:10 -0000
-@@ -46,7 +46,9 @@
- */
-
- typedef struct {
-+#ifdef NPTL
- uint32_t ref_count;
-+#endif
- pid_t pid;
- int outfd;
- pid_t clone_pid; /* See comments in clone_thunk */
-@@ -77,7 +79,7 @@ static MIBool tracing = MI_TRUE;
- static ThreadInfo threads[MAX_THREADS];
- static char *socket_path = NULL;
- static char socket_buf[64];
--static unsigned int seqno = 0;
-+static uint32_t seqno = 0;
-
- #undef ENABLE_DEBUG
-
-@@ -87,72 +89,85 @@ static unsigned int seqno = 0;
- #define MI_DEBUG(arg) (void)0
- #endif /* ENABLE_DEBUG */
-
-+/*
-+ * For the new NPTL implementation, all threads return the
-+ * same 'getpid' - so instead we use a thread variable.
-+ */
-+#define NPTL
-+
-+#ifdef NPTL
-+static __thread ThreadInfo global_per_thread = { 0, };
-+#endif
-+
- static ThreadInfo *
--allocate_thread (pid_t pid)
-+allocate_thread (void)
- {
-+ ThreadInfo *thread = NULL;
-+#ifdef NPTL
-+ thread = &global_per_thread;
-+#else
- int i;
-
- for (i = 0; i < MAX_THREADS; i++) {
- if (threads[i].ref_count == 0) {
- unsigned int new_count = mi_atomic_increment (&threads[i].ref_count);
- if (new_count == 1) {
-- threads[i].pid = pid;
-- threads[i].clone_pid = 0;
-- return &threads[i];
-+ thread = &threads[i];
-+ break;
- } else
- mi_atomic_decrement (&threads[i].ref_count);
- }
- }
--
-- mi_debug ("Can't find free thread slot");
-- tracing = MI_FALSE;
-- _exit(1);
-+ if (!thread) {
-+ mi_debug ("Can't find free thread slot");
-+ tracing = MI_FALSE;
-+ _exit(1);
-+ }
-+#endif
-+ thread->pid = getpid();
-+ thread->clone_pid = 0;
-
-- return NULL;
-+ return thread;
- }
-
- static void
- release_thread (ThreadInfo *thread)
- {
- thread->pid = 0;
-+#ifndef NPTL
- mi_atomic_decrement (&thread->ref_count);
-+#endif
- }
-
- static ThreadInfo *
--find_thread (pid_t pid)
-+find_thread (void)
- {
-- int i;
--#if 1
- ThreadInfo *thread;
-+#ifdef NPTL
-+ thread = &global_per_thread;
- #else
-- /* Over-optimized GCC/GLibc extension happy version
-- * Requires gcc-3.2 and glibc-2.3.
-- */
-- static __thread ThreadInfo *thread = NULL;
- int i;
--
--a if (__builtin_expect (thread == NULL, 0))
-- return thread;
--#endif
-+ pid_t pid = getpid();
-
- for (i=0; i < MAX_THREADS; i++)
- if (threads[i].pid == pid) {
- thread = &threads[i];
--
-- if (thread->clone_pid) {
-- /* See comments in clone_thunk() */
-- new_process (thread, thread->clone_pid, MI_CLONE);
-- thread->clone_pid = 0;
-- }
--
-- return thread;
-+ break;
- }
-+#endif
-+ if (!thread) {
-+ mi_debug ("Thread not found\n");
-+ tracing = MI_FALSE;
-+ _exit(1);
-+ }
-
-- mi_debug ("Thread not found\n");
-- tracing = MI_FALSE;
-- _exit(1);
--
-- return NULL;
-+ if (thread->clone_pid) {
-+ /* See comments in clone_thunk() */
-+ new_process (thread, thread->clone_pid, MI_CLONE);
-+ thread->clone_pid = 0;
-+ }
-+
-+ return thread;
- }
-
- static void
-@@ -249,7 +264,7 @@ new_process (ThreadInfo *thread,
- info.fork.seqno = 0;
-
- if (!thread)
-- thread = allocate_thread (info.fork.new_pid);
-+ thread = allocate_thread ();
-
- thread->outfd = outfd;
-
-@@ -331,9 +346,9 @@ mi_write_stack (int n_frames,
-
- info->alloc.stack_size = n_frames;
- info->alloc.pid = getpid();
-- info->alloc.seqno = seqno++;
-+ info->alloc.seqno = mi_atomic_increment (&seqno) - 1;
-
-- thread = find_thread (info->alloc.pid);
-+ thread = find_thread ();
-
- if (!mi_write (thread->outfd, info, sizeof (MIInfo)) ||
- !mi_write (thread->outfd, frames, n_frames * sizeof(void *)))
-@@ -352,7 +367,7 @@ __fork (void)
- int pid;
- int old_pid = getpid();
-
-- find_thread (old_pid); /* Make sure we're registered */
-+ find_thread (); /* Make sure we're registered */
-
- pid = (*old_fork) ();
-
-@@ -380,7 +395,7 @@ __vfork (void)
- int pid;
- int old_pid = getpid();
-
-- find_thread (old_pid); /* Make sure we're registered */
-+ find_thread (); /* Make sure we're registered */
-
- pid = (*old_vfork) ();
-
-@@ -434,7 +449,7 @@ clone_thunk (void *arg)
- * So, we simply allocate the structure for the thread and delay
- * the initialization.
- */
-- thread = allocate_thread (getpid());
-+ thread = allocate_thread ();
- thread->clone_pid = data->pid;
- data->started = 1;
-
-@@ -452,14 +467,14 @@ int __clone (int (*fn) (void *arg),
-
- if (!mi_check_init ())
- abort_unitialized ("__clone");
--
-+
- if (tracing) {
- data.started = 0;
- data.fn = fn;
- data.arg = arg;
- data.pid = getpid();
-
-- find_thread (data.pid); /* Make sure we're registered */
-+ find_thread (); /* Make sure we're registered */
-
- pid = (*old_clone) (clone_thunk, child_stack, flags, (void *)&data, xarg1, xarg2, xarg3, xarg4);
-
-@@ -490,12 +505,12 @@ exit_wait (void)
- int count;
- char response;
- info.any.operation = MI_EXIT;
-- info.any.seqno = seqno++;
-+ info.any.seqno = mi_atomic_increment (&seqno) - 1;
- info.any.pid = getpid();
-
- mi_stop ();
-
-- thread = find_thread (info.any.pid);
-+ thread = find_thread ();
-
- if (mi_write (thread->outfd, &info, sizeof (MIInfo)))
- /* Wait for a response before really exiting
-Index: process.c
-===================================================================
-RCS file: /cvs/gnome/memprof/process.c,v
-retrieving revision 1.37
-diff -u -p -u -r1.37 process.c
---- process.c 13 Sep 2004 18:43:52 -0000 1.37
-+++ process.c 22 Nov 2005 09:17:10 -0000
-@@ -600,6 +600,8 @@ input_func (GIOChannel *source,
- MPProcess *process = NULL;
-
- do {
-+ memset (&info, 0, sizeof (info));
-+ info.operation = -1;
- count = 0;
- if (g_io_channel_get_flags(source) & G_IO_FLAG_IS_READABLE)
- g_io_channel_read_chars (source, (char *)&info, sizeof(info), &count, NULL);
-@@ -621,7 +623,9 @@ input_func (GIOChannel *source,
- info.operation == MI_TIME) {
- void **stack_buffer = NULL;
- StackStash *stash = get_stack_stash (input_process);
--
-+
-+ g_assert (count >= sizeof (MIInfoAlloc));
-+
- stack_buffer = g_alloca (sizeof (void *) * info.alloc.stack_size);
- g_io_channel_read_chars (source, (char *)stack_buffer, sizeof(void *) * info.alloc.stack_size, &count, NULL);
- stack = stack_stash_store (stash, stack_buffer, info.alloc.stack_size);
-@@ -667,7 +671,7 @@ process_start_input (MPProcess *process)
- if (!process->input_tag && process->input_channel)
- process->input_tag = g_io_add_watch_full (process->input_channel,
- G_PRIORITY_LOW,
-- G_IO_IN | G_IO_HUP,
-+ G_IO_IN | G_IO_PRI | G_IO_ERR | G_IO_HUP | G_IO_NVAL,
- input_func, process, NULL);
- }
-
-Index: server.c
-===================================================================
-RCS file: /cvs/gnome/memprof/server.c,v
-retrieving revision 1.14
-diff -u -p -u -r1.14 server.c
---- server.c 20 Sep 2003 21:02:18 -0000 1.14
-+++ server.c 22 Nov 2005 09:17:10 -0000
-@@ -164,7 +164,8 @@ mp_server_init (MPServer *server)
- channel = g_io_channel_unix_new (server->socket_fd);
- g_io_channel_set_encoding (channel, NULL, NULL);
-
-- server->control_watch = g_io_add_watch (channel, G_IO_IN | G_IO_HUP, control_func, server);
-+ server->control_watch = g_io_add_watch (channel, G_IO_IN | G_IO_PRI | G_IO_ERR | G_IO_HUP | G_IO_NVAL,
-+ control_func, server);
- g_io_channel_unref (channel);
-
- g_object_ref (G_OBJECT (server));
-@@ -366,7 +367,7 @@ ensure_cleanup ()
- channel = g_io_channel_unix_new (terminate_pipe[0]);
- g_io_channel_set_encoding (channel, NULL, NULL);
-
-- g_io_add_watch (channel, G_IO_IN, terminate_io_handler, NULL);
-+ g_io_add_watch (channel, G_IO_IN | G_IO_PRI, terminate_io_handler, NULL);
- g_io_channel_unref (channel);
-
- added_cleanup = TRUE;
diff --git a/patches/test/mono-testtools.diff b/patches/test/mono-testtools.diff
deleted file mode 100644
index 9eef4f83b..000000000
--- a/patches/test/mono-testtools.diff
+++ /dev/null
@@ -1,163 +0,0 @@
-? testtools/source/bridgetest/cli/cli_bridgetest_inprocess.cs.origish
-? testtools/source/bridgetest/cli/mcs-failure
-? testtools/source/bridgetest/cli/mcs-failure.tar.gz
-Index: testtools/source/bridgetest/cli/cli_bridgetest_inprocess.cs
-===================================================================
-RCS file: /cvs/udk/testtools/source/bridgetest/cli/cli_bridgetest_inprocess.cs,v
-retrieving revision 1.5
-diff -u -r1.5 cli_bridgetest_inprocess.cs
---- testtools/source/bridgetest/cli/cli_bridgetest_inprocess.cs 20 Sep 2004 14:27:51 -0000 1.5
-+++ testtools/source/bridgetest/cli/cli_bridgetest_inprocess.cs 11 May 2005 14:19:54 -0000
-@@ -139,26 +139,8 @@
- new uno.Any(
- typeof (XSingleComponentFactory),
- new Factory(
-- typeof (vb_testobj.VBBridgeTestObject),
-- "com.sun.star.test.bridge.cli_uno.VbTestObject" ) ) );
-- xSet.insert(
-- new uno.Any(
-- typeof (XSingleComponentFactory),
-- new Factory(
-- typeof (cpp_bridgetest.BridgeTest),
-- "com.sun.star.test.bridge.cli_uno.CppBridgeTest" ) ) );
-- xSet.insert(
-- new uno.Any(
-- typeof (XSingleComponentFactory),
-- new Factory(
- typeof (cs_testobj.BridgeTest),
- "com.sun.star.test.bridge.cli_uno.CsBridgeTest" ) ) );
-- xSet.insert(
-- new uno.Any(
-- typeof (XSingleComponentFactory),
-- new Factory(
-- typeof (vb_bridetest.BridgeTest),
-- "com.sun.star.test.bridge.cli_uno.VbBridgeTest" ) ) );
-
- // I.
- // direct unbridged test
-Index: testtools/source/bridgetest/cli/makefile.mk
-===================================================================
-RCS file: /cvs/udk/testtools/source/bridgetest/cli/makefile.mk,v
-retrieving revision 1.11
-diff -u -r1.11 makefile.mk
---- testtools/source/bridgetest/cli/makefile.mk 16 Dec 2004 12:49:01 -0000 1.11
-+++ testtools/source/bridgetest/cli/makefile.mk 11 May 2005 14:19:54 -0000
-@@ -74,10 +74,9 @@
- .INCLUDE : settings.mk
- DLLPRE =
-
--.IF "$(COM)$(COMEX)" == "MSC8" || "$(COM)$(COMEX)"=="MSC10"
-
- # ------------------------------------------------------------------
--.IF "$(GUI)"=="WNT"
-+.IF "$(GUI)"=="WINNT"
- MY_DLLPOSTFIX=.dll
- DESTDIR=$(BIN)
- BATCH_SUFFIX=.bat
-@@ -106,20 +105,20 @@
-
- #-----------------------
-
--CFLAGS += -clr -AI $(OUT)$/bin -AI $(SOLARBINDIR)
-+# CFLAGS += -clr -AI $(OUT)$/bin -AI $(SOLARBINDIR)
-
--SLOFILES= \
-- $(SLO)$/cli_cpp_bridgetest.obj
-+#SLOFILES= \
-+# $(SLO)$/cli_cpp_bridgetest.obj
-
--SHL1OBJS = $(SLOFILES)
-+#SHL1OBJS = $(SLOFILES)
-
--SHL1TARGET = $(TARGET)
-+#SHL1TARGET = $(TARGET)
-
--SHL1STDLIBS = \
-- mscoree.lib
-+#SHL1STDLIBS = \
-+# mscoree.lib
-
--SHL1DEF = $(MISC)$/$(SHL1TARGET).def
--DEF1NAME = $(SHL1TARGET)
-+#SHL1DEF = $(MISC)$/$(SHL1TARGET).def
-+#DEF1NAME = $(SHL1TARGET)
-
-
- # --- Targets ------------------------------------------------------
-@@ -136,7 +135,7 @@
- CLI_CPPUHELPER = $(SOLARBINDIR)$/cli_cppuhelper.dll
- CLI_TYPES_BRIDGETEST = $(BIN)$/cli_types_bridgetest.dll
-
--CSCFLAGS = -warnaserror+ -incremental-
-+CSCFLAGS = -incremental-
- VBC_FLAGS = -warnaserror+
- .IF "$(debug)" != ""
- CSCFLAGS += -debug+ -checked+ -define:DEBUG -define:TRACE
-@@ -158,7 +157,7 @@
- -reference:$(CLI_TYPES_BRIDGETEST) \
- -reference:$(CLI_URE) \
- -reference:$(CLI_BASETYPES) \
-- -reference:$(CLI_TYPES) \
-+ -reference:$(CLI_TYPES) \
- cli_cs_testobj.cs cli_cs_multi.cs
-
- $(DESTDIR)$/cli_cs_bridgetest.uno.dll : \
-@@ -214,9 +213,6 @@
- cli_bridgetest_inprocess.cs \
- $(DESTDIR)$/cli_cs_bridgetest.uno.dll \
- $(DESTDIR)$/cli_cs_testobj.uno.dll \
-- $(DESTDIR)$/cli_vb_bridgetest.uno.dll \
-- $(DESTDIR)$/cli_vb_testobj.uno.dll \
-- $(DESTDIR)$/cli_cpp_bridgetest.uno.dll \
- $(CLI_BASETYPES) \
- $(CLI_TYPES) \
- $(CLI_URE) \
-@@ -229,9 +225,6 @@
- -reference:$(CLI_CPPUHELPER) \
- -reference:$(DESTDIR)$/cli_cs_bridgetest.uno.dll \
- -reference:$(DESTDIR)$/cli_cs_testobj.uno.dll \
-- -reference:$(DESTDIR)$/cli_vb_bridgetest.uno.dll \
-- -reference:$(DESTDIR)$/cli_vb_testobj.uno.dll \
-- -reference:$(DESTDIR)$/cli_cpp_bridgetest.uno.dll \
- cli_bridgetest_inprocess.cs
- $(GNUCOPY) -p cli_bridgetest_inprocess.ini $(DESTDIR)
- $(GNUCOPY) -p $(CLI_CPPUHELPER) $(DESTDIR)$/$(CLI_CPPUHELPER:f)
-@@ -239,5 +232,4 @@
- $(GNUCOPY) -p $(CLI_TYPES) $(DESTDIR)$/$(CLI_TYPES:f)
- $(GNUCOPY) -p $(CLI_URE) $(DESTDIR)$/$(CLI_URE:f)
-
--.ENDIF
-
-Index: testtools/source/bridgetest/idl/makefile.mk
-===================================================================
-RCS file: /cvs/udk/testtools/source/bridgetest/idl/makefile.mk,v
-retrieving revision 1.4
-diff -u -r1.4 makefile.mk
---- testtools/source/bridgetest/idl/makefile.mk 20 Aug 2004 09:16:39 -0000 1.4
-+++ testtools/source/bridgetest/idl/makefile.mk 11 May 2005 14:19:54 -0000
-@@ -81,7 +81,6 @@
- + $(RM) $@
- $(REGMERGE) $@ /UCR $(MISC)$/$(TARGET)$/bridgetest.urd
-
--.IF "$(GUI)" == "WNT"
-
- CLIMAKERFLAGS =
- .IF "$(debug)" != ""
-@@ -97,4 +96,3 @@
- -X $(SOLARBINDIR)$/types.rdb $<
- $(TOUCH) $@
-
--.ENDIF # GUI, WNT
-Index: testtools/source/bridgetest/cli/cli_bridgetest_inprocess.ini
-===================================================================
-RCS file: /cvs/udk/testtools/source/bridgetest/cli/cli_bridgetest_inprocess.ini,v
-retrieving revision 1.2
-diff -u -r1.2 cli_bridgetest_inprocess.ini
---- testtools/source/bridgetest/cli/cli_bridgetest_inprocess.ini 4 Sep 2003 09:16:51 -0000 1.2
-+++ testtools/source/bridgetest/cli/cli_bridgetest_inprocess.ini 11 May 2005 17:00:06 -0000
-@@ -1,3 +1,3 @@
- [Bootstrap]
--UNO_TYPES=$SYSBINDIR/uno_types.rdb
--UNO_SERVICES=$SYSBINDIR/uno_services.rdb
-+UNO_TYPES=uno_types.rdb
-+UNO_SERVICES=uno_services.rdb
diff --git a/patches/test/myspell-shrink.diff b/patches/test/myspell-shrink.diff
deleted file mode 100644
index 3686088b9..000000000
--- a/patches/test/myspell-shrink.diff
+++ /dev/null
@@ -1,406 +0,0 @@
-Index: lingucomponent/source/spellcheck/myspell/hashmgr.cxx
-===================================================================
-RCS file: /cvs/whiteboard/lingucomponent/source/spellcheck/myspell/hashmgr.cxx,v
-retrieving revision 1.9
-diff -u -r1.9 hashmgr.cxx
---- lingucomponent/source/spellcheck/myspell/hashmgr.cxx 25 Feb 2004 14:07:47 -0000 1.9
-+++ lingucomponent/source/spellcheck/myspell/hashmgr.cxx 17 Jun 2005 10:43:17 -0000
-@@ -6,11 +6,26 @@
-
- #include "hashmgr.hxx"
-
-+#ifdef SMALL
-+# include <sys/mman.h>
-+# include <sys/types.h>
-+# include <sys/stat.h>
-+# include <unistd.h>
-+# include <errno.h>
-+# include <fcntl.h>
-+# define IS_END(c) ((c) == '\r' || (c) == '\n')
-+#endif
-+
- extern void mychomp(char * s);
- extern char * mystrdup(const char *);
-
- using namespace std;
-
-+#ifdef SMALL
-+# define WORD_END_CONDITN(c) ((c) == 0 || (c) == '/')
-+#else
-+# define WORD_END_CONDITN(c) ((c) == 0)
-+#endif
-
- // build a hash table from a munched word list
-
-@@ -28,11 +43,22 @@
- }
- tablesize = 0;
- }
-+#ifdef SMALL
-+ compat.wlen = 0;
-+ compat.alen = 0;
-+ compat.word = NULL;
-+ compat.astr = NULL;
-+ compat.next = NULL;
-+ fd = -1;
-+ length = 0;
-+ buffer = NULL;
-+#endif
- }
-
-
- HashMgr::~HashMgr()
- {
-+#ifndef SMALL
- if (tableptr) {
- // now pass through hash table freeing up everything
- // go through column by column of the table
-@@ -54,6 +80,25 @@
- }
- free(tableptr);
- }
-+#else // SMALL
-+#ifdef UNX
-+ if (fd != -1)
-+ {
-+ if (buffer)
-+ munmap (buffer, length);
-+ close (fd);
-+ }
-+ else
-+#endif
-+ {
-+ if (buffer)
-+ free (buffer);
-+ }
-+ delete[] compat.word;
-+
-+ buffer = NULL;
-+ fd = -1;
-+#endif
- tablesize = 0;
- }
-
-@@ -63,6 +108,7 @@
-
- struct hentry * HashMgr::lookup(const char *word) const
- {
-+#ifndef SMALL
- struct hentry * dp;
- if (tableptr) {
- dp = &tableptr[hash(word)];
-@@ -72,12 +118,30 @@
- }
- }
- return NULL;
-+#else
-+ const char *hash_str;
-+ int hash_id = hash(word);
-+ while ((hash_str = tableptr[hash_id%tablesize]) != NULL)
-+ {
-+ int i;
-+ for (i = 0; (word[i] != '\0' && !IS_END(hash_str[i]) &&
-+ hash_str[i] != '/' && word[i] == hash_str[i]); i++)
-+ ;
-+ if (word[i] == '\0' && (IS_END(hash_str[i]) || hash_str[i] == '/'))
-+ return ((HashMgr*)this)->setup_hentry (hash_str);
-+ hash_id++;
-+ }
-+ fprintf( stderr, "No instance of '%s' hashid 0x%x\n", word, hash(word) );
-+ return NULL;
-+#endif
- }
-
-
-
- // add a word to the hash table (private)
-
-+#ifndef SMALL
-+
- int HashMgr::add_word(const char * word, int wl, const char * aff, int al)
- {
- int i = hash(word);
-@@ -107,11 +171,48 @@
- return 0;
- }
-
-+#else
-
-+struct hentry *HashMgr::setup_hentry(const char *ptr)
-+{
-+ int i;
-+ const char *end;
-+ for ( i = 0; !IS_END(ptr[i]); i++);
-+// FIXME: could/should have a member/buffer to save this for
-+// the common/short-string case
-+ delete[] compat.word;
-+ compat.word = new char[ i + 1 ];
-+ compat.wlen = i;
-+ compat.astr = NULL;
-+ compat.alen = 0;
-+ for (i = 0; !IS_END(ptr[i]) != '/'; i++) {
-+ compat.word[i] = ptr[i];
-+ if (ptr[i] == '/') {
-+ compat.word[i] = '\0';
-+ compat.wlen = i;
-+ compat.astr = compat.word + i + 1;
-+ }
-+ }
-+ compat.word[i] = '\0';
-+ if (compat.astr)
-+ compat.alen = i - compat.wlen - 1;
-+ fprintf( stderr, "Hit '%s' ('%s')\n", compat.word, compat.astr );
-+
-+ return &compat;
-+}
-+#endif
-
- // walk the hash table entry by entry - null at end
- struct hentry * HashMgr::walk_hashtable(int &col, struct hentry * hp) const
- {
-+#ifdef SMALL
-+ if (col < 0)
-+ col = -1;
-+ while (col < tablesize && !tableptr[++col]);
-+ if (col < tablesize)
-+ return ((HashMgr *)this)->setup_hentry(tableptr[col]);
-+ return NULL;
-+#else
- //reset to start
- if ((col < 0) || (hp == NULL)) {
- col = -1;
-@@ -133,14 +234,129 @@
- col = -1;
- }
- return hp;
-+#endif
- }
-
-
-
- // load a munched word list and build a hash table on the fly
-+#ifdef SMALL
-+int
-+HashMgr::slurp( int fd, size_t bytes )
-+{
-+ size_t offset = 0;
-+ ssize_t count;
-+ do
-+ {
-+ count = read (fd, buffer + offset, bytes);
-+ if (count < 0)
-+ {
-+ if (errno == EINTR)
-+ continue;
-+ else
-+ return 1;
-+ }
-+ bytes -= count;
-+ offset += count;
-+ }
-+ while (bytes > 0);
-+}
-
-+size_t
-+HashMgr::seek_newline( size_t i )
-+{
-+ while (i < length && !IS_END(buffer[i])) i++;
-+ while (i < length && IS_END(buffer[i])) i++;
-+ return i;
-+}
-+
-+#endif
- int HashMgr::load_tables(const char * tpath)
- {
-+#ifdef SMALL
-+#define HASH_DEBUG
-+
-+#ifdef HASH_DEBUG
-+ fprintf( stderr, "Load tables from '%s'\n", tpath );
-+#endif
-+ fd = open (tpath, O_RDONLY);
-+ if (fd < 0)
-+ return 1;
-+ struct stat info;
-+ if (fstat(fd, &info) < 0)
-+ return 1;
-+#ifdef UNX
-+ length = info.st_size;
-+ if (buffer = (char *)mmap (NULL, info.st_size, PROT_READ, MAP_SHARED, fd, 0))
-+ ;
-+ else
-+#endif
-+ {
-+ buffer = new char[ length ];
-+ int failed = slurp (fd, length);
-+ close (fd);
-+ fd = -1;
-+ if (failed)
-+ {
-+ delete buffer;
-+ return 1;
-+ }
-+ }
-+ if (!buffer)
-+ return 1;
-+ size_t second_line = seek_newline (0);
-+ char *str = new char [ second_line + 1 ];
-+ memcpy (str, buffer, second_line);
-+ str[second_line] = '\0';
-+ tablesize = strtol(str, NULL, 0);
-+ delete[] str;
-+ if (tablesize <= 0)
-+ return 4;
-+ long sparse = tablesize * 2;
-+
-+ // Bin any small prime factors
-+ while (!(sparse % 2) || !(sparse % 3) || !(sparse % 5 ) ||
-+ !(sparse % 7) || !(sparse % 11) || !(sparse % 13 ))
-+ sparse++;
-+
-+ fprintf( stderr, "Switch table size to %d from %d\n",
-+ tablesize, sparse);
-+ tablesize = sparse;
-+
-+ // Hash - normal fixed size sparse hash, compare until we hit a NULL
-+ tableptr = (char **)calloc (sizeof(char *), tablesize );
-+
-+#ifdef HASH_DEBUG
-+ static int total_cols = 0;
-+ static int total_lookups = 0;
-+#endif
-+ size_t i = 0;
-+ // CHECKME: '\n' on Win32 ? - cf. Win32 binary downloads I guess.
-+ for (i = second_line; i < length;)
-+ {
-+ int hash_id;
-+ size_t next_line = seek_newline (i);
-+ if (next_line >= length)
-+ break;
-+
-+ hash_id = hash(buffer + i);
-+ int collisions = 0;
-+ while (tableptr[hash_id%tablesize]) {
-+ collisions++;
-+ hash_id++;
-+ }
-+#ifdef HASH_DEBUG
-+ total_lookups++;
-+ total_cols += collisions;
-+#endif
-+ tableptr[hash_id] = buffer + i;
-+ i = next_line;
-+ }
-+#ifdef HASH_DEBUG
-+ fprintf (stderr, "%d collisions on %d lookups\n", total_cols, total_lookups);
-+#endif
-+
-+#else // ! SMALL
- int wl, al;
- char * ap;
-
-@@ -186,22 +402,33 @@
- }
-
- fclose(rawdict);
-+#endif
- return 0;
- }
-
-+int HashMgr::hash(const char * word) const
-+{
-+#ifdef SMALL
-+ unsigned long hv = word[0];
-+ for (int i = 1; !WORD_END_CONDITN(word[i]) && !IS_END(word[i]); i++)
-+ hv = (hv << 5) - hv + word[i];
-+/* fprintf(stderr, "string '");
-+ for (int i = 0; !WORD_END_CONDITN(word[ i ] && !IS_END(word[i])); i++)
-+ fprintf( stderr, "%c", word[i] );
-+ fprintf(stderr, "' 0x%x \n", (int)hv % tablesize); */
-
-+ return hv % tablesize;
-+#else
- // the hash function is a simple load and rotate
- // algorithm borrowed
--
--int HashMgr::hash(const char * word) const
--{
- long hv = 0;
-- for (int i=0; i < 4 && *word != 0; i++)
-+ for (int i=0; i < 4 && !WORD_END_CONDITN (*word); i++)
- hv = (hv << 8) | (*word++);
-- while (*word != 0) {
-+ while (WORD_END_CONDITN (*word)) {
- ROTATE(hv,ROTATE_LEN);
- hv ^= (*word++);
- }
- return (unsigned long) hv % tablesize;
-+#endif
- }
-
-Index: lingucomponent/source/spellcheck/myspell/hashmgr.hxx
-===================================================================
-RCS file: /cvs/whiteboard/lingucomponent/source/spellcheck/myspell/hashmgr.hxx,v
-retrieving revision 1.6
-diff -u -r1.6 hashmgr.hxx
---- lingucomponent/source/spellcheck/myspell/hashmgr.hxx 24 Jun 2003 19:48:03 -0000 1.6
-+++ lingucomponent/source/spellcheck/myspell/hashmgr.hxx 17 Jun 2005 10:43:17 -0000
-@@ -3,20 +3,36 @@
-
- #include "htypes.hxx"
-
-+#define SMALL
-+
- class HashMgr
- {
-- int tablesize;
-- struct hentry * tableptr;
-+ int tablesize;
-+#ifndef SMALL
-+ struct hentry * tableptr;
-+#else
-+ char ** tableptr;
-+ mutable struct hentry compat;
-+ int fd;
-+ char *buffer;
-+ size_t length;
-+ // FIXME: this API sucks - ideally need to re-work all
-+ // struct hentry use - and encapsulate those operations
-+ // in a more abstract class.
-+ struct hentry *setup_hentry(const char *ptr);
-+ size_t seek_newline(size_t from_offset);
-+ int slurp( int fd, size_t bytes );
-+#endif
-
- public:
- HashMgr(const char * tpath);
- ~HashMgr();
-
- struct hentry * lookup(const char *) const;
-- int hash(const char *) const;
- struct hentry * walk_hashtable(int & col, struct hentry * hp) const;
-
- private:
-+ int hash(const char *) const;
- HashMgr( const HashMgr & ); // not implemented
- HashMgr &operator=( const HashMgr & ); // not implemented
- int load_tables(const char * tpath);
-Index: lingucomponent/source/spellcheck/myspell/makefile.mk
-===================================================================
-RCS file: /cvs/whiteboard/lingucomponent/source/spellcheck/myspell/makefile.mk,v
-retrieving revision 1.8
-diff -u -r1.8 makefile.mk
---- lingucomponent/source/spellcheck/myspell/makefile.mk 9 Mar 2004 12:42:12 -0000 1.8
-+++ lingucomponent/source/spellcheck/myspell/makefile.mk 17 Jun 2005 10:43:17 -0000
-@@ -72,6 +72,11 @@
-
- # --- Files --------------------------------------------------------
-
-+.IF "$(SYSTEM_MYSPELL)" == "YES"
-+@all:
-+ @echo "Using system myspell..."
-+.ENDIF
-+
- # all_target: ALLTAR DICTIONARY
- all_target: ALLTAR
-
diff --git a/patches/test/pagein-idle b/patches/test/pagein-idle
deleted file mode 100644
index ff7e6bec5..000000000
--- a/patches/test/pagein-idle
+++ /dev/null
@@ -1,133 +0,0 @@
-sofficerc
-bootstraprc
-unorc
-types.rdb
-services.rdb
-configmgrrc
-../share/registry/schema
-../share/registry
-../share/registry/modules
-../share/registry/res
-%userinst%/user/registry
-%userinst%/user/registry/cache
-../share/registry/modules/org/openoffice/Setup
-%userinst%/user/registry/cache/org.openoffice.Setup.dat
-%userinst%/user/registry/data/org/openoffice/Setup.xcu
-%userinst%/user/registry/cache/org.openoffice.Office.Linguistic.dat
-%userinst%/user/registry/data/org/openoffice/Office/Linguistic.xcu
-%userinst%/user/registry/cache/org.openoffice.System.dat
-%userinst%/user/registry/cache/org.openoffice.VCL.dat
-resource
-resource/vcl%ver%%lang%.res
-../share/registry/modules/org/openoffice/Office/Common
-%userinst%/user/registry/cache/org.openoffice.Office.Common.dat
-%userinst%/user/registry/data/org/openoffice/Office/Common.xcu
-%userinst%/user/registry/cache/org.openoffice.Office.Substitution.dat
-intro.bmp
-%userinst%/user/registry/cache/org.openoffice.ucb.Configuration.dat
-resource/ooo%ver%%lang%.res
-resource/ofa%ver%%lang%.res
-%userinst%/user/registry/cache/org.openoffice.Office.Views.dat
-%userinst%/user/registry/data/org/openoffice/Office/Views.xcu
-%userinst%/user/registry/cache/org.openoffice.Office.Commands.dat
-%userinst%/user/registry/cache/org.openoffice.Office.ProtocolHandler.dat
-%userinst%/user/registry/cache/org.openoffice.ucb.Store.dat
-%userinst%/user/registry/data/org/openoffice/ucb/Store.xcu
-resource/sfx%ver%%lang%.res
-%userinst%/user/registry/cache/org.openoffice.Office.Events.dat
-%userinst%/user/registry/cache/org.openoffice.Office.Jobs.dat
-resource/dkt%ver%%lang%.res
-# ../share/config/images_industrial.zip
-%userinst%/user/config/imagecache
-%userinst%/user/psprint/pspfontcache
-jvmfwk3rc
-%userinst%/user/config/javasettings_Linux_x86.xml
-../share/config/javavendors.xml
-resource/svt%ver%%lang%.res
-%userinst%/user/registry/cache/org.openoffice.Office.Recovery.dat
-%userinst%/user/registry/data/org/openoffice/Office/Recovery.xcu
-%userinst%/user/registry/cache/org.openoffice.Office.TypeDetection.dat
-../share/registry/modules/org/openoffice/TypeDetection/Types
-%userinst%/user/registry/cache/org.openoffice.TypeDetection.Types.dat
-../share/registry/modules/org/openoffice/TypeDetection/Misc
-%userinst%/user/registry/cache/org.openoffice.TypeDetection.Misc.dat
-../share/registry/modules/org/openoffice/TypeDetection/Filter
-%userinst%/user/registry/cache/org.openoffice.TypeDetection.Filter.dat
-%userinst%/user/registry/cache/org.openoffice.Office.UI.dat
-resource/sw%ver%%lang%.res
-resource/svx%ver%%lang%.res
-%userinst%/user/registry/cache/org.openoffice.Office.Writer.dat
-%userinst%/user/registry/data/org/openoffice/Office/Writer.xcu
-%userinst%/user/registry/cache/org.openoffice.Office.WriterWeb.dat
-%userinst%/user/registry/cache/org.openoffice.Office.Compatibility.dat
-../share/config/soffice.cfg/modules/swriter/menubar
-%userinst%/user/config/soffice.cfg/modules/swriter/menubar
-../share/config/soffice.cfg/modules/swriter/toolbar
-%userinst%/user/config/soffice.cfg/modules/swriter/toolbar
-../share/config/soffice.cfg/modules/swriter/statusbar
-%userinst%/user/config/soffice.cfg/modules/swriter/statusbar
-../share/config/soffice.cfg/modules/swriter/toolbar/drawingobjectbar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/calloutshapes.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/starshapes.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/formtextobjectbar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/drawbar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/drawtextobjectbar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/extrusionobjectbar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/alignmentbar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/numobjectbar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/optimizetablebar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/tableobjectbar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/textobjectbar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/standardbar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/symbolshapes.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/formsfilterbar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/fullscreenbar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/graffilterbar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/formdesign.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/toolbar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/previewobjectbar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/moreformcontrols.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/insertbar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/basicshapes.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/mediaobjectbar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/graphicobjectbar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/fontworkshapetype.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/viewerbar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/arrowshapes.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/flowchartshapes.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/insertobjectbar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/frameobjectbar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/formcontrols.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/formsnavigationbar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/colorbar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/oleobjectbar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/fontworkobjectbar.xml
-../share/config/soffice.cfg/modules/swriter/toolbar/bezierobjectbar.xml
-%userinst%/user/registry/cache/org.openoffice.Office.Addons.dat
-%userinst%/user/registry/cache/org.openoffice.Office.UI.Factories.dat
-../share/config/soffice.cfg/modules/swriter/menubar/menubar.xml
-%userinst%/user/registry/cache/org.openoffice.Office.UI.WriterCommands.dat
-%userinst%/user/registry/cache/org.openoffice.Office.UI.GenericCommands.dat
-%userinst%/user/registry/cache/org.openoffice.Office.UI.Controller.dat
-%userinst%/user/registry/cache/org.openoffice.Office.UI.WriterWindowState.dat
-%userinst%/user/registry/data/org/openoffice/Office/UI/WriterWindowState.xcu
-../share/registry/schema/org/openoffice/Office/UI/WindowState.xcs
-# %userinst%/user/config/imagecache/res_commandimagelist_lc_enUS514industrial
-# %userinst%/user/config/imagecache/res_commandimagelist_lc_enUS116industrial
-# %userinst%/user/config/imagecache/svt%ver%%lang%1592167industrial
-../share/config/soffice.cfg/modules/swriter/statusbar/statusbar.xml
-# %userinst%/user/config/imagecache/sfx%ver%%lang%03industrial
-# %userinst%/user/config/imagecache/sw%ver%%lang%15industrial
-# %userinst%/user/registry/cache/org.openoffice.Office.SFX.dat
-# %userinst%/user/config/imagecache/sfx%ver%%lang%2683industrial
-../share/psprint/driver
-%userinst%/user/psprint/driver
-../share/psprint/driver/SGENPRT.PS
-../share/psprint/psprint.conf
-../share/psprint
-%userinst%/user/psprint
-%userinst%/user/registry/cache/org.openoffice.LDAP.dat
-%userinst%/user/registry/cache/org.openoffice.UserProfile.dat
-%userinst%/user/registry/data/org/openoffice/UserProfile.xcu
-# %userinst%/user/config/imagecache/svt%ver%%lang%1592267industrial
-# %userinst%/user/config/imagecache/ooo%ver%%lang%1592215industrial
diff --git a/patches/test/pagein-idle.diff b/patches/test/pagein-idle.diff
deleted file mode 100644
index 7b9797d63..000000000
--- a/patches/test/pagein-idle.diff
+++ /dev/null
@@ -1,469 +0,0 @@
-? desktop/source/pagein/bootstraprc
-? desktop/source/pagein/doflush
-? desktop/source/pagein/fillmem
-? desktop/source/pagein/fillmem.c
-? desktop/source/pagein/flushdisk
-? desktop/source/pagein/flushdisk.c
-Index: desktop/source/pagein/file_image.h
-===================================================================
-RCS file: /cvs/framework/desktop/source/pagein/file_image.h,v
-retrieving revision 1.2
-diff -u -r1.2 file_image.h
---- desktop/source/pagein/file_image.h 4 Jun 2003 10:43:03 -0000 1.2
-+++ desktop/source/pagein/file_image.h 27 Jul 2005 15:41:01 -0000
-@@ -83,6 +83,7 @@
-
- #define FILE_IMAGE_INITIALIZER { 0, 0 }
-
-+int file_image_setup_idle_load (void);
-
- /** file_image_open.
- */
-Index: desktop/source/pagein/file_image_unx.c
-===================================================================
-RCS file: /cvs/framework/desktop/source/pagein/file_image_unx.c,v
-retrieving revision 1.4
-diff -u -r1.4 file_image_unx.c
---- desktop/source/pagein/file_image_unx.c 4 Feb 2004 12:52:24 -0000 1.4
-+++ desktop/source/pagein/file_image_unx.c 27 Jul 2005 15:41:01 -0000
-@@ -74,8 +74,266 @@
-
- #include <sys/mman.h>
- #include <sys/stat.h>
--
-+#include <sys/types.h>
-+#include <stdio.h>
-+#include <stdlib.h>
- #include <string.h>
-+#include <dirent.h>
-+
-+#ifdef DEBUG
-+# define dprintf(a) fprintf a
-+#else
-+# define dprintf(a)
-+#endif
-+
-+static char *
-+get_user_installation (void)
-+{
-+ static char *installation = NULL;
-+ FILE *bootstraprc;
-+ const char *home;
-+ char *user_installation = NULL;
-+
-+ if (installation)
-+ return installation;
-+
-+ home = getenv ("HOME");
-+
-+ bootstraprc = fopen ("bootstraprc", "r");
-+ if (bootstraprc)
-+ {
-+ char buf[80];
-+ static const char *key = "UserInstallation=$SYSUSERCONFIG/";
-+ while (fgets (buf, sizeof (buf), bootstraprc))
-+ {
-+ if (!strncmp (buf, key, strlen (key)))
-+ {
-+ char *p;
-+ user_installation = strdup (buf + strlen (key));
-+ /* chomp */
-+ for (p = user_installation; *p != '\0'; p++)
-+ if (*p == '\r' || *p == '\n')
-+ break;
-+ *p = '\0';
-+ break;
-+ }
-+ }
-+ }
-+ else
-+ dprintf ((stderr, "Failed to open bootstraprc\n"));
-+
-+ if (!user_installation)
-+ {
-+ dprintf ((stderr, "using default path\n"));
-+ user_installation = strdup (".ooo-2.0");
-+ }
-+
-+ installation = malloc (strlen (home) + 1 + strlen (user_installation) + 1);
-+ strcpy (installation, home);
-+ strcat (installation, "/");
-+ strcat (installation, user_installation);
-+ free (user_installation);
-+
-+ return installation;
-+}
-+
-+static char *
-+collate (char **split)
-+{
-+ int i;
-+ int offs;
-+ char *res;
-+ for (offs = i = 0; split[i]; i++)
-+ offs += strlen (split[i]);
-+ res = malloc (offs + 1);
-+ for (offs = i = 0; split[i]; i++)
-+ {
-+ int len = strlen (split[i]);
-+ memcpy (res + offs, split[i], len);
-+ offs += len;
-+ }
-+ res[offs] = '\0';
-+ return res;
-+}
-+
-+static char *
-+do_strndup (const char *str, int len)
-+{
-+ int i;
-+ char *res = malloc (len + 1);
-+ for (i = 0; str[i] && i < len; i++)
-+ res[i] = str[i];
-+ res[i] = '\0';
-+ return res;
-+}
-+
-+static char **
-+split_filename (const char *filename)
-+{
-+ int i, j, last_fragment;
-+ char **split;
-+
-+ split = malloc (sizeof (char *) * strlen (filename) + 1);
-+ for (last_fragment = j = i = 0; filename [i] != '\0'; i++)
-+ {
-+ if (filename[i] == '%')
-+ {
-+ split[j++] = do_strndup (filename + last_fragment, i - last_fragment);
-+ last_fragment = i + 1;
-+ }
-+ }
-+ split[j] = do_strndup (filename + last_fragment, i - last_fragment);
-+ split[j+1] = NULL;
-+ return split;
-+}
-+
-+static char *
-+try_lang (char **split, int idx, char *lang)
-+{
-+ char *path;
-+ struct stat st;
-+
-+ free (split[idx]);
-+ split[idx] = strdup (lang);
-+ path = collate (split);
-+ dprintf ((stderr, "Try '%s' - path ", path));
-+ if (access (path, R_OK))
-+ {
-+ free (path);
-+ path = NULL;
-+ }
-+ else
-+ free (lang); /* sucky but ... */
-+ dprintf ((stderr, "there: %d\n", path != NULL));
-+ return path;
-+}
-+
-+const char *en_fallbacks[] = { "US", NULL };
-+const char *es_fallbacks[] = { "ES", NULL };
-+
-+const struct {
-+ const char *base;
-+ const char **fallback_locales;
-+} fallbacks[] =
-+{
-+ { "en", en_fallbacks },
-+ { "es", es_fallbacks },
-+ { NULL, NULL }
-+};
-+
-+/*
-+ * This is really crude, to do this correctly is really
-+ * tough, a maintenance nightmare etc. Hopefully we can do
-+ * quite well without much effort though & just seek for
-+ * the rest.
-+ */
-+static char *
-+guess_lang (char **split, int idx)
-+{
-+ int i;
-+ char *lang = strdup (getenv ("LANG"));
-+ char *p, *ret;
-+ char *locale = NULL;
-+ char *scratch;
-+
-+ scratch = malloc (strlen(lang) + 2);
-+
-+ if ((p = strchr (lang, '.')))
-+ *p = '\0';
-+
-+ /* hopefully now of the form 'fr_FR' or 'fr' */
-+ if ((locale = strchr (lang, '_')) ||
-+ (locale = strchr (lang, '-')))
-+ *locale++ = '\0';
-+
-+ dprintf ((stderr, "i18n: '%s'-'%s'\n", lang, locale));
-+
-+ /* Try with fr-FR */
-+ if (locale)
-+ {
-+ strcpy (scratch, lang);
-+ strcat (scratch, "-");
-+ strcat (scratch, locale);
-+ if ((ret = try_lang (split, idx, scratch)))
-+ return ret;
-+ }
-+
-+ /* Try with fr */
-+ strcpy (scratch, lang);
-+ if ((ret = try_lang (split, idx, scratch)))
-+ return ret;
-+
-+ /* Try other prefixes */
-+ strcat (scratch, "-");
-+ locale = scratch + strlen(scratch);
-+ for (i = 0; fallbacks[i].base; i++)
-+ {
-+ if (!strcmp (lang, fallbacks[i].base))
-+ {
-+ int j;
-+ for (j = 0; fallbacks[i].fallback_locales[j]; j++)
-+ {
-+ strcpy (locale, fallbacks[i].fallback_locales[j]);
-+ if ((ret = try_lang (split, idx, scratch)))
-+ return ret;
-+ }
-+ }
-+ }
-+
-+ return NULL;
-+}
-+
-+static char *
-+expand_filename (const char *filename)
-+{
-+ char *tilde;
-+ char *ver;
-+ char *ret = NULL;
-+ int i;
-+ int lang_idx = -1;
-+
-+ char **split = split_filename (filename);
-+
-+ for (i = 1; split[i]; i += 2 )
-+ {
-+ if (!strcmp (split[i], "userinst"))
-+ {
-+ free (split[i]);
-+ split[i] = strdup (get_user_installation());
-+ }
-+ else if (!strcmp (split[i], "ver"))
-+ {
-+ free (split[i]);
-+ split[i] = strdup ("680"); /* hard-coded - sigh */
-+ }
-+ else if (!strcmp (split[i], "lang"))
-+ {
-+ free (split[i]); /* handle later */
-+ split[i] = NULL;
-+ lang_idx = i;
-+ }
-+ else
-+ dprintf ((stderr, "Warning: Unknown control name '%s'\n", split[i]));
-+ }
-+
-+ if (lang_idx >= 0)
-+ {
-+ if (!(ret = guess_lang (split, lang_idx)))
-+ {
-+ dprintf ((stderr, "Failed to find lang dicts\n"));
-+ goto cleanup;
-+ }
-+ }
-+
-+ if (!ret)
-+ ret = collate (split);
-+ cleanup:
-+ for (i = 0; split[i]; i++)
-+ free (split[i]);
-+ free (split);
-+
-+ return ret;
-+}
-
- /*
- * file_image_open
-@@ -86,14 +344,25 @@
- int fd;
- struct stat st;
- void * p;
-+ char *fname;
-
- if (image == 0)
- return (EINVAL);
-
-+ fname = expand_filename (filename);
-+ if (!fname)
-+ fprintf (stderr, "Failed to expand '%s'\n", filename);
-+ else
-+ dprintf ((stderr, "Expanded '%s' to '%s'\n", filename, fname));
-+
- image->m_base = MAP_FAILED, image->m_size = 0;
-
-- if ((fd = open (filename, O_RDONLY)) == -1)
-+ if ((fd = open (fname, O_RDONLY)) == -1)
-+ {
-+ free (fname);
- return (errno);
-+ }
-+ free (fname);
-
- if (fstat (fd, &st) == -1)
- {
-@@ -101,6 +370,14 @@
- goto cleanup_and_leave;
- }
-
-+ if (S_ISDIR (st.st_mode))
-+ {
-+ DIR *dirent = opendir (fname);
-+ dprintf ((stderr, "Read directory '%s'\n", fname));
-+ while (dirent && readdir (dirent));
-+ goto cleanup_and_leave;
-+ }
-+
- p = mmap (0, st.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
- if (p == MAP_FAILED)
- {
-@@ -143,7 +420,6 @@
- #endif
- }
-
--
- #ifndef MACOSX
- if ((s = sysconf (_SC_PAGESIZE)) == -1)
- s = 0x1000;
-@@ -182,3 +458,70 @@
- image->m_base = 0, image->m_size = 0;
- return (0);
- }
-+
-+/*
-+ * Highly Linux specific - and functions only with
-+ * recent CFQ & linux >= 2.6.12
-+ * http://www.ibiblio.org/peanut/Kernel-2.6.12/block/ioprio.txt
-+ */
-+#if defined(LINUX)
-+
-+#include <getopt.h>
-+#include <sys/ptrace.h>
-+#include <asm/unistd.h>
-+
-+/* Syscall-numbers - nice ... */
-+#if defined(__i386__)
-+#define __NR_ioprio_set 289
-+#elif defined(__ppc__)
-+#define __NR_ioprio_set 273
-+#elif defined(__x86_64__)
-+#define __NR_ioprio_set 251
-+#elif defined(__ia64__)
-+#define __NR_ioprio_set 1274
-+#else
-+#error "Unsupported arch"
-+#endif
-+
-+extern int sys_ioprio_set(int, int, int);
-+_syscall3(int, ioprio_set, int, which, int, who, int, ioprio);
-+
-+enum {
-+ IOPRIO_CLASS_NONE,
-+ IOPRIO_CLASS_RT,
-+ IOPRIO_CLASS_BE,
-+ IOPRIO_CLASS_IDLE,
-+};
-+
-+enum {
-+ IOPRIO_WHO_PROCESS = 1,
-+ IOPRIO_WHO_PGRP,
-+ IOPRIO_WHO_USER,
-+};
-+
-+#define IOPRIO_CLASS_SHIFT 13
-+
-+#endif
-+
-+/*
-+ * Ideally this idle loading would synchronise occasionally
-+ * with soffice.bin to ensure we don't:
-+ * read (pagein) / evict / re-read (soffice.bin)
-+ * giving worse performance than before. Most modern machines
-+ * have loads of RAM anyway, so should improve things. Ideally
-+ * soffice.bin will catch up with pagein's I/O.
-+ */
-+int file_image_setup_idle_load (void)
-+{
-+#if !defined(LINUX)
-+ return 1;
-+#else
-+ int ioprio = 7;
-+ int ioprio_class = IOPRIO_CLASS_IDLE;
-+
-+ if (ioprio_set (IOPRIO_WHO_PROCESS, 0,
-+ ioprio | ioprio_class << IOPRIO_CLASS_SHIFT) == -1)
-+ return 0; // testing ... 1;
-+ return 0;
-+#endif
-+}
-Index: desktop/source/pagein/pagein.c
-===================================================================
-RCS file: /cvs/framework/desktop/source/pagein/pagein.c,v
-retrieving revision 1.2
-diff -u -r1.2 pagein.c
---- desktop/source/pagein/pagein.c 4 Jun 2003 10:43:30 -0000 1.2
-+++ desktop/source/pagein/pagein.c 27 Jul 2005 15:41:01 -0000
-@@ -61,6 +61,7 @@
-
- #include "file_image.h"
-
-+#include <stdlib.h>
- #include <unistd.h>
- #include <errno.h>
- #include <stdio.h>
-@@ -88,6 +89,7 @@
-
- cleanup_and_leave:
- file_image_close (&image);
-+
- return (result);
- }
-
-@@ -101,7 +103,7 @@
- {
- fprintf (
- stderr,
-- "%s: Usage: pagein [-v[v]] [-L<path>] [@]<filename> ...\n",
-+ "%s: Usage: pagein [-i] [-v[v]] [-L<path>] [@]<filename> ...\n",
- argv[0]);
- return (1);
- }
-@@ -122,6 +124,10 @@
- for (v += 1, j += 1; argv[i][j]; j++)
- v += (argv[i][j] == 'v');
- break;
-+ case 'i':
-+ if (file_image_setup_idle_load())
-+ exit (0);
-+ break;
- case 'L':
- /* search path */
- if (chdir (&(argv[i][2])) == -1)
-@@ -147,6 +153,8 @@
- }
- while (fgets (path, sizeof(path), fp) != 0)
- {
-+ if (path[0] == '#')
-+ continue;
- path[strlen(path) - 1] = '\0', k = 0;
- if (do_pagein (path, &k) == 0)
- {
diff --git a/patches/test/psprint-enable-artificial-ItalicBold-printing.diff b/patches/test/psprint-enable-artificial-ItalicBold-printing.diff
deleted file mode 100644
index 0e3ea6308..000000000
--- a/patches/test/psprint-enable-artificial-ItalicBold-printing.diff
+++ /dev/null
@@ -1,62 +0,0 @@
---- psprintBoldItalicPatch/inc/psprint/fontmanager.hxx 2005-08-24 15:07:47.287701000 +0100
-+++ psprint/inc/psprint/fontmanager.hxx 2005-08-24 16:30:39.737278761 +0100
-@@ -395,6 +395,7 @@
- std::hash_map< fontID, PrintFont* > m_aFonts;
- std::hash_map< int, family::type > m_aFamilyTypes;
- std::hash_map< int, int > m_aFamilyStyles;
-+ std::list< fontID > m_aArtificialFonts;
- std::list< rtl::OUString > m_aPrinterDrivers;
- std::list< rtl::OString > m_aFontDirectories;
- std::list< int > m_aPrivateFontDirectories;
-@@ -497,6 +498,21 @@
- // get the font list and fast font info. see getFontList for pParser
- void getFontListWithFastInfo( std::list< FastPrintFontInfo >& rFonts, const PPDParser* pParser = NULL ) const;
-
-+ // true if the font is an artificial one
-+ bool isArtificial( fontID nFontID )
-+ {
-+ bool result = false;
-+ ::std::list<int>::const_iterator it = m_aArtificialFonts.begin();
-+ for ( ; it != m_aArtificialFonts.end(); ++it )
-+ {
-+ if ( *it == nFontID )
-+ {
-+ result = true;;
-+ break;
-+ }
-+ }
-+ return result;
-+ }
- // get font info for a specific font
- bool getFontInfo( fontID nFontID, PrintFontInfo& rInfo ) const;
- // get fast font info for a specific font
---- psprintBoldItalicPatch/source/printergfx/text_gfx.cxx 2005-08-25 09:43:37.959840156 +0100
-+++ psprint/source/printergfx/text_gfx.cxx 2005-08-24 16:41:48.354072375 +0100
-@@ -193,6 +193,9 @@
- mnTextAngle = nAngle;
- mbTextVertical = bVertical;
-
-+ bool fontIsArtificial = mrFontMgr.isArtificial(mnFontID );
-+ maVirtualStatus.mbArtItalic = ( fontIsArtificial && ( mrFontMgr.getFontItalic(mnFontID) == italic::Italic ) );
-+ maVirtualStatus.mbArtBold = ( fontIsArtificial && ( mrFontMgr.getFontWeight(mnFontID) >= weight::Medium ) );
- return 0;
- }
-
---- psprintBoldItalicPatch/source/fontmanager/fontmanager.cxx 2005-08-24 15:38:14.320780000 +0100
-+++ psprint/source/fontmanager/fontmanager.cxx 2005-08-24 16:29:40.876864139 +0100
-@@ -246,6 +246,7 @@
- else if( (result)->m_eType == fonttype::Builtin )
- m_aFontFileToFontID[ static_cast<BuiltinFont*>(result)->m_aMetricFile ].insert( aFont );
- m_aFonts[ aFont ] = result;
-+ m_aArtificialFonts.push_back(aFont);
- // track what family's have what styles {italic, bold,
- // italic-bold }
- updateFamilyStyles( result);
-@@ -2222,6 +2223,7 @@
- m_aFontDirectories.clear();
- m_aPrivateFontDirectories.clear();
- m_aFamilyStyles.clear();
-+ m_aArtificialFonts.clear();
- }
-
- #if OSL_DEBUG_LEVEL > 1
diff --git a/patches/test/qpro12.0-detect.diff b/patches/test/qpro12.0-detect.diff
deleted file mode 100644
index d6008adbd..000000000
--- a/patches/test/qpro12.0-detect.diff
+++ /dev/null
@@ -1,64 +0,0 @@
---- filter/source/config/fragments/types/calc_QPro.xcu.bak 2005-05-20 15:49:17.141606592 +0530
-+++ filter/source/config/fragments/types/calc_QPro.xcu 2005-05-20 15:49:38.273394072 +0530
-@@ -1,7 +1,7 @@
- <node oor:name="calc_QPro" oor:op="replace" oor:finalized="true" oor:mandatory="true">
- <prop oor:name="DetectService"><value>com.sun.star.comp.calc.FormatDetector</value></prop>
- <prop oor:name="URLPattern"/>
-- <prop oor:name="Extensions"><value>wb2</value></prop>
-+ <prop oor:name="Extensions"><value>qpw wb2</value></prop>
- <prop oor:name="MediaType"/>
- <prop oor:name="Preferred"><value>true</value></prop>
- <prop oor:name="PreferredFilter"><value>Quattro Pro</value></prop>
---- sc/source/ui/unoobj/scdetect.cxx.bak 2005-05-20 15:55:26.269490624 +0530
-+++ sc/source/ui/unoobj/scdetect.cxx 2005-05-20 10:56:58.000000000 +0530
-@@ -631,6 +631,13 @@
- 0x0010,
- M_ENDE };
-
-+ const UINT16 pQPro12[] =
-+ { 0x00D0, 0x00EF, 0x0011, 0x00E0,
-+ M_ALT(4), 0x0001, 0x0002, // WB1, WB2
-+ 0x0006, 0x0007, // QPro 6/7 (?)
-+ 0x0010,
-+ M_ENDE };
-+
- const UINT16 pDIF1[] = // DIF mit CR-LF
- {
- 'T', 'A', 'B', 'L', 'E',
-@@ -666,6 +673,7 @@
- pDIF2,
- pSylk,
- pQPro,
-+ pQPro12,
- pLotusNew,
- pLotus2
- };
-@@ -683,6 +691,7 @@
- pFilterDif,
- pFilterSylk,
- pFilterQPro,
-+ pFilterQPro,
- pFilterLotus,
- pFilterLotus
- };
---- sc/source/filter/qpro/qpro.cxx.bak 2005-05-19 16:16:40.000000000 +0530
-+++ sc/source/filter/qpro/qpro.cxx 2005-05-20 15:58:09.287708088 +0530
-@@ -155,8 +154,17 @@
- FltError ScImportQuattroPro( SfxMedium &rMedium, ScDocument *pDoc )
- {
- FltError eRet = eERR_OK;
-- ScQProReader aReader( rMedium, pDoc );
-- eRet = aReader.import( pDoc );
-+ SvStream *pStream;
-+ pStream = rMedium.GetInStream();
-+ sal_uInt8 nVersion;
-+ *pStream >> nVersion;
-+ if( nVersion == 0x0000 )
-+ {
-+ ScQProReader aReader( rMedium, pDoc );
-+ eRet = aReader.import( pDoc );
-+ }
-+ else
-+ eRet = eERR_OK;
- return eRet;
- }
diff --git a/patches/test/redirect-bdirect.c b/patches/test/redirect-bdirect.c
deleted file mode 100644
index 6025a5813..000000000
--- a/patches/test/redirect-bdirect.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Compile with:
- * gcc -Wall -lbfd -o redirect redirect.c
- */
-
-#include <stdio.h>
-#include <malloc.h>
-#include <string.h>
-#include "bfd.h"
-/* #include "elf/common.h" */
-
-#ifndef DT_DIRECT_VAGUE
-# define DT_DIRECT_VAGUE 0x8000
-#endif
-
-static int removed_count = 0;
-
-static int
-redirect_symbols (bfd *abfd, asection *direct_sec, bfd_byte *contents,
- int (*match_fn) (const char *))
-{
- asymbol **sy = NULL;
- long storage, i;
- long dynsymcount;
-
- if ((storage = bfd_get_dynamic_symtab_upper_bound (abfd)) <= 0)
- {
- fprintf (stderr, "no dynsym section\n");
- return 1;
- }
- sy = malloc (storage);
-
- dynsymcount = bfd_canonicalize_dynamic_symtab (abfd, sy);
- if (dynsymcount < 0 || !sy)
- {
- fprintf (stderr, "failed to canonicalise dymsym\n");
- return 1;
- }
-
- if (dynsymcount + 1 != (long) bfd_section_size (abfd, direct_sec) / 2)
- {
- fprintf (stderr, ".direct section size mismatch %d != %d\n",
- (int) dynsymcount + 1, (int) bfd_section_size (abfd, direct_sec) / 2);
- return 1;
- }
-
- sy--; /* 1st dynsym slot is blank with no symbol */
-
- for (i = 1; i < dynsymcount + 1; i++)
- {
- const char *sym_name;
- sym_name = bfd_asymbol_name (sy[i]);
- if (match_fn (sym_name))
- {
- unsigned short entry;
- entry = bfd_get_16 (abfd, contents + i * 2);
-/* fprintf (stderr, "Masking 0x%x for '%s'\n", entry, sym_name); */
- if (entry & DT_DIRECT_VAGUE)
- {
- entry &= ~DT_DIRECT_VAGUE;
- bfd_put_16 (abfd, entry, contents + i * 2);
- removed_count++;
- }
- }
-// fprintf (stderr, "Symbol '%s'\n", bfd_asymbol_name (sy[i]));
- }
- free (sy + 1);
-
- return 0;
-}
-
-static int
-write_section (const char *lib,
- unsigned long sec_offset,
- bfd_byte *new_direct,
- unsigned long sec_size)
-{
- FILE *outp;
- outp = fopen (lib, "r+b");
- if (!outp)
- return 1;
-
- fseek (outp, sec_offset, SEEK_SET);
-/* fprintf (stderr, "write 0x%x bytes to 0x%x\n", sec_size, sec_offset); */
- fwrite (new_direct, 1, sec_size, outp);
-
- fclose (outp);
-
- return 0;
-}
-
-
-static int
-zthb_match_fn (const char *str)
-{
- if (str && !strncmp (str, "_ZThn", sizeof ("_ZThn") - 1))
- return 1;
- else
- return 0;
-}
-
-int
-main (int argc, char **argv)
-{
- bfd *abfd;
- const char *lib = argv [ argc - 1];
- asection *direct_sec;
- unsigned long sec_offset;
- unsigned long sec_size;
- bfd_byte *new_direct;
-
- abfd = bfd_openr (lib, NULL);
- if (!abfd)
- {
- fprintf (stderr, "Failed to open '%s'\n", lib);
- return 1;
- }
- else
- fprintf (stderr, "Opened '%s'\n", bfd_get_filename (abfd));
-
- if (!bfd_check_format_matches (abfd, bfd_object, NULL))
- fprintf (stderr, "Format doesn't match\n");
-
- if (!(bfd_get_file_flags (abfd) & DYNAMIC))
- {
- fprintf (stderr, "not a dynamic object\n");
- return 0;
- }
-
- if (!(direct_sec = bfd_get_section_by_name (abfd, ".direct")))
- {
- fprintf (stderr, "No direct section\n");
- return 0;
- }
-
- if (!bfd_malloc_and_get_section (abfd, direct_sec, &new_direct))
- {
- fprintf (stderr, "Failed to read direct section\n");
- return 0;
- }
-
- if (redirect_symbols (abfd, direct_sec, new_direct, zthb_match_fn))
- {
- fprintf (stderr, "Error re-writing direct section\n");
- return 0;
- }
-
- sec_offset = (unsigned long) direct_sec->filepos;
- sec_size = (unsigned long) bfd_section_size (abfd, direct_sec);
-
- bfd_close (abfd);
-
- /* Now the dodgy re-writing lark - nice race possible here ... */
- if (write_section (lib, sec_offset, new_direct, sec_size))
- fprintf (stderr, "Failed to write new direct section\n");
-
- free (new_direct);
-
- fprintf (stderr, "Saved %d vague lookups\n", removed_count);
-
- return 0;
-}
diff --git a/patches/test/sal-instrument.diff b/patches/test/sal-instrument.diff
deleted file mode 100644
index 1b586f084..000000000
--- a/patches/test/sal-instrument.diff
+++ /dev/null
@@ -1,36 +0,0 @@
-Index: sal/osl/unx/module.c
-===================================================================
-RCS file: /cvs/porting/sal/osl/unx/module.c,v
-retrieving revision 1.31
-diff -u -r1.31 module.c
---- sal/osl/unx/module.c 8 Sep 2005 14:57:52 -0000 1.31
-+++ sal/osl/unx/module.c 31 Oct 2005 21:18:46 -0000
-@@ -1,3 +1,4 @@
-+#include <stdio.h>
- /*************************************************************************
- *
- * OpenOffice.org - a multi-platform office productivity suite
-@@ -238,6 +239,9 @@
- if (pszModuleName)
- {
- #ifndef NO_DL_FUNCTIONS
-+ static sal_Int64 cuml_usecs = 0;
-+ struct timeval start, end;
-+ gettimeofday (&start, NULL);
-
- void* pLib = dlopen(pszModuleName, rtld_mode );
- if ((pLib == 0) && (strchr (pszModuleName, '/') == 0))
-@@ -250,7 +254,12 @@
-
- pLib = dlopen(buffer, rtld_mode);
- }
--
-+ gettimeofday (&end, NULL);
-+ cuml_usecs += 1000000 * (end.tv_sec - start.tv_sec);
-+ cuml_usecs += end.tv_usec - start.tv_usec;
-+ fprintf (stderr, "Load '%s' cuml time %d.%0.6d\n",
-+ pszModuleName, (int) (cuml_usecs / 1000000),
-+ (int)(cuml_usecs % 1000000));
- #if OSL_DEBUG_LEVEL > 1
- if (pLib == 0)
- {
diff --git a/patches/test/sc-source-ui-unoobj-vbarange-cxx.diff b/patches/test/sc-source-ui-unoobj-vbarange-cxx.diff
deleted file mode 100644
index 2690de639..000000000
--- a/patches/test/sc-source-ui-unoobj-vbarange-cxx.diff
+++ /dev/null
@@ -1,29 +0,0 @@
---- /dev/null 2004-08-25 23:04:59.000000000 +0530
-+++ sc/source/ui/unoobj/vbarange.cxx 2005-05-17 11:42:27.000000000 +0530
-@@ -0,0 +1,26 @@
-+#include <cppuhelper/queryinterface.hxx>
-+
-+#include "docuno.hxx"
-+#include "vbarange.hxx"
-+
-+using namespace ::org::openoffice;
-+using namespace ::com::sun::star;
-+
-+ScVbaRange::ScVbaRange( ScTableSheetsObj *pTableSheets )
-+{
-+ mnRefCount = 1;
-+ mpTableSheets = pTableSheets;
-+}
-+
-+ScVbaRange::~ScVbaRange()
-+{
-+}
-+
-+// XInterface implementation
-+uno::Any ScVbaRange::queryInterface( const uno::Type & rType ) throw (uno::RuntimeException)
-+{
-+ return cppu::queryInterface
-+ (rType,
-+ static_cast< uno::XInterface * >( static_cast< vba::XRange * >( this ) ),
-+ static_cast< vba::XRange * >( this ) );
-+}
diff --git a/patches/test/sc-source-ui-unoobj-vbarange-hxx.diff b/patches/test/sc-source-ui-unoobj-vbarange-hxx.diff
deleted file mode 100644
index 0bc536759..000000000
--- a/patches/test/sc-source-ui-unoobj-vbarange-hxx.diff
+++ /dev/null
@@ -1,93 +0,0 @@
---- /dev/null 2004-08-25 23:04:59.000000000 +0530
-+++ sc/source/ui/unoobj/vbarange.hxx 2005-05-17 12:29:08.000000000 +0530
-@@ -0,0 +1,90 @@
-+#ifndef _VBA_RANGE_HXX_
-+#define _VBA_RANGE_HXX_
-+
-+#include <org/openoffice/vba/XRange.hpp>
-+
-+class ScTableSheetsObj;
-+
-+class ScVbaRange : public org::openoffice::vba::XRange
-+{
-+ // UNO sucks for not providing a sane, thread-safe
-+ // base-class for this.
-+ sal_Int32 mnRefCount;
-+ ScTableSheetsObj *mpTableSheets;
-+
-+public:
-+ ScVbaRange( ScTableSheetsObj *pTableSheets );
-+ virtual ~ScVbaRange();
-+
-+ // XInterface
-+ virtual void acquire() throw () { ++mnRefCount; }
-+ virtual void release() throw () { if (! --mnRefCount) delete this; }
-+ virtual com::sun::star::uno::Any queryInterface(
-+ const com::sun::star::uno::Type & rType )
-+ throw (com::sun::star::uno::RuntimeException);
-+
-+
-+ // Attributes
-+ virtual ::rtl::OUString SAL_CALL getAddress() throw (::com::sun::star::uno::RuntimeException)
-+ {return rtl::OUString::createFromAscii( "Range Address" );}
-+ virtual ::sal_Int32 SAL_CALL getColumn() throw (::com::sun::star::uno::RuntimeException)
-+ { return 1; }
-+ virtual void SAL_CALL setColumn( ::sal_Int32 _column ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual ::sal_Int32 SAL_CALL getCount() throw (::com::sun::star::uno::RuntimeException)
-+ { return 1; }
-+ virtual ::com::sun::star::uno::Reference< ::org::openoffice::vba::XRange > SAL_CALL getCurrentArray() throw (::com::sun::star::uno::RuntimeException)
-+ {};
-+ virtual ::com::sun::star::uno::Reference< ::org::openoffice::vba::XRange > SAL_CALL getCurrentRegion() throw (::com::sun::star::uno::RuntimeException)
-+ {};
-+ virtual ::rtl::OUString SAL_CALL getFormula() throw (::com::sun::star::uno::RuntimeException)
-+ {return rtl::OUString::createFromAscii( "Range Formula" );}
-+ virtual void SAL_CALL setFormula( const ::rtl::OUString& _formula ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual ::rtl::OUString SAL_CALL getFormulaArray() throw (::com::sun::star::uno::RuntimeException)
-+ {return rtl::OUString::createFromAscii( "Range Formula Array" );}
-+ virtual void SAL_CALL setFormulaArray( const ::rtl::OUString& _formulaarray ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual ::rtl::OUString SAL_CALL getNumberFormat() throw (::com::sun::star::uno::RuntimeException)
-+ {return rtl::OUString::createFromAscii( "Range Number Format" );}
-+ virtual void SAL_CALL setNumberFormat( const ::rtl::OUString& _numberformat ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual ::sal_Int32 SAL_CALL getRow() throw (::com::sun::star::uno::RuntimeException)
-+ { return 1; }
-+ virtual ::rtl::OUString SAL_CALL getValue() throw (::com::sun::star::uno::RuntimeException)
-+ {return rtl::OUString::createFromAscii( "Range Value" );}
-+ virtual void SAL_CALL setValue( const ::rtl::OUString& _value ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ // Methods
-+ virtual void SAL_CALL cut( const ::com::sun::star::uno::Reference< ::org::openoffice::vba::XRange >& rangeDestination ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL copy( const ::com::sun::star::uno::Reference< ::org::openoffice::vba::XRange >& rangeDestination ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL clear( ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL clearComments( ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL clearContents( ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL clearFormats( ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL dataseries( const ::rtl::OUString& aRowCol, const ::rtl::OUString& aType, const ::rtl::OUString& aDate, ::sal_Int32 nStep, ::sal_Int32 nStop, ::sal_Bool bTrend ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL filldown( ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL fillleft( ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL fillright( ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL fillup( ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL insert( const ::rtl::OUString& aShift ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL resize( ::sal_Int32 nRowSize, ::sal_Int32 nColumnSize ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+
-+
-+};
-+
-+#endif /* _VBA_RANGE_HXX_ */
-+
diff --git a/patches/test/sc-source-ui-unoobj-vbaworkbook-cxx.diff b/patches/test/sc-source-ui-unoobj-vbaworkbook-cxx.diff
deleted file mode 100644
index 2b83cccb1..000000000
--- a/patches/test/sc-source-ui-unoobj-vbaworkbook-cxx.diff
+++ /dev/null
@@ -1,29 +0,0 @@
---- /dev/null
-+++ sc/source/ui/unoobj/vbaworkbook.cxx
-@@ -0,0 +1,26 @@
-+#include <cppuhelper/queryinterface.hxx>
-+
-+#include "docuno.hxx"
-+#include "vbaworkbook.hxx"
-+
-+using namespace ::org::openoffice;
-+using namespace ::com::sun::star;
-+
-+ScVbaWorkBook::ScVbaWorkBook( ScModelObj *pModel )
-+{
-+ mnRefCount = 1;
-+ mpModel = pModel;
-+}
-+
-+ScVbaWorkBook::~ScVbaWorkBook()
-+{
-+}
-+
-+// XInterface implementation
-+uno::Any ScVbaWorkBook::queryInterface( const uno::Type & rType ) throw (uno::RuntimeException)
-+{
-+ return cppu::queryInterface
-+ (rType,
-+ static_cast< uno::XInterface * >( static_cast< vba::XWorkBook * >( this ) ),
-+ static_cast< vba::XWorkBook * >( this ) );
-+}
diff --git a/patches/test/sc-source-ui-unoobj-vbaworkbook-hxx.diff b/patches/test/sc-source-ui-unoobj-vbaworkbook-hxx.diff
deleted file mode 100644
index c5bbca419..000000000
--- a/patches/test/sc-source-ui-unoobj-vbaworkbook-hxx.diff
+++ /dev/null
@@ -1,68 +0,0 @@
---- /dev/null
-+++ sc/source/ui/unoobj/vbaworkbook.hxx
-@@ -0,0 +1,65 @@
-+#ifndef _VBA_WORKBOOK_HXX_
-+#define _VBA_WORKBOOK_HXX_
-+
-+#include <org/openoffice/vba/XWorkBook.hpp>
-+
-+class ScModelObj;
-+
-+class ScVbaWorkBook : public org::openoffice::vba::XWorkBook
-+{
-+ // UNO sucks for not providing a sane, thread-safe
-+ // base-class for this.
-+ sal_Int32 mnRefCount;
-+ ScModelObj *mpModel;
-+
-+public:
-+ ScVbaWorkBook( ScModelObj *pModel );
-+ virtual ~ScVbaWorkBook();
-+
-+ // XInterface
-+ virtual void acquire() throw () { ++mnRefCount; }
-+ virtual void release() throw () { if (! --mnRefCount) delete this; }
-+ virtual com::sun::star::uno::Any queryInterface(
-+ const com::sun::star::uno::Type & rType )
-+ throw (com::sun::star::uno::RuntimeException);
-+
-+ // Attributes
-+ virtual ::rtl::OUString SAL_CALL getName() throw (::com::sun::star::uno::RuntimeException)
-+ { return rtl::OUString::createFromAscii( "VBA workbook name" ); }
-+ virtual ::rtl::OUString SAL_CALL getPath() throw (::com::sun::star::uno::RuntimeException)
-+ { return rtl::OUString::createFromAscii( "VBA dummy path" ); }
-+ virtual ::rtl::OUString SAL_CALL getFullName() throw (::com::sun::star::uno::RuntimeException)
-+ { return rtl::OUString::createFromAscii( "VBA full name" ); }
-+ virtual void SAL_CALL setFullName( const ::rtl::OUString& _fullname ) throw (::com::sun::star::uno::RuntimeException)
-+ { }
-+ virtual ::sal_Int32 SAL_CALL getCalculationVersion() throw (::com::sun::star::uno::RuntimeException)
-+ { return 1; }
-+ virtual ::sal_Bool SAL_CALL getProtectStructure() throw (::com::sun::star::uno::RuntimeException)
-+ { return TRUE; }
-+ virtual ::sal_Bool SAL_CALL getProtectWindows() throw (::com::sun::star::uno::RuntimeException)
-+ { return TRUE; }
-+ virtual ::sal_Bool SAL_CALL getSaved() throw (::com::sun::star::uno::RuntimeException)
-+ { return TRUE; }
-+ virtual void SAL_CALL setSaved( ::sal_Bool _saved ) throw (::com::sun::star::uno::RuntimeException)
-+ { }
-+ virtual ::sal_Bool SAL_CALL getVBASigned() throw (::com::sun::star::uno::RuntimeException)
-+ { return FALSE; }
-+
-+ // Methods
-+ virtual void SAL_CALL activate() throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL close( ::sal_Bool bSaveChanges, const ::rtl::OUString& aFileName, ::sal_Bool bRouteWorkBook ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL save() throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL saveas( const ::rtl::OUString& aFileName ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL printout() throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL printpreview() throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL protect() throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+};
-+
-+#endif /* _VBA_WORKBOOK_HXX_ */
diff --git a/patches/test/sc-source-ui-unoobj-vbaworksheet-cxx.diff b/patches/test/sc-source-ui-unoobj-vbaworksheet-cxx.diff
deleted file mode 100644
index 88773b4c0..000000000
--- a/patches/test/sc-source-ui-unoobj-vbaworksheet-cxx.diff
+++ /dev/null
@@ -1,31 +0,0 @@
---- /dev/null 2004-08-25 23:04:59.000000000 +0530
-+++ sc/source/ui/unoobj/vbaworksheet.cxx 2005-05-13 11:58:02.250476165 +0530
-@@ -0,0 +1,28 @@
-+#include <cppuhelper/queryinterface.hxx>
-+
-+#include "docuno.hxx"
-+#include "vbaworksheet.hxx"
-+
-+using namespace ::org::openoffice;
-+using namespace ::com::sun::star;
-+
-+ScVbaWorkSheet::ScVbaWorkSheet( ScModelObj *pModel )
-+{
-+ mnRefCount = 1;
-+ mpModel = pModel;
-+}
-+
-+ScVbaWorkSheet::~ScVbaWorkSheet()
-+{
-+}
-+
-+// XInterface implementation
-+uno::Any ScVbaWorkSheet::queryInterface( const uno::Type & rType ) throw (uno::RuntimeException)
-+{
-+ return cppu::queryInterface
-+ (rType,
-+ static_cast< uno::XInterface * >( static_cast< vba::XWorkSheet * >( this ) ),
-+ static_cast< vba::XWorkSheet * >( this ) );
-+}
-+
-+
diff --git a/patches/test/sc-source-ui-unoobj-vbaworksheet-hxx.diff b/patches/test/sc-source-ui-unoobj-vbaworksheet-hxx.diff
deleted file mode 100644
index 6e4dbbe2a..000000000
--- a/patches/test/sc-source-ui-unoobj-vbaworksheet-hxx.diff
+++ /dev/null
@@ -1,76 +0,0 @@
---- /dev/null 2004-08-25 23:04:59.000000000 +0530
-+++ sc/source/ui/unoobj/vbaworksheet.hxx 2005-05-13 11:59:19.062405692 +0530
-@@ -0,0 +1,73 @@
-+#ifndef _VBA_WORKSHEET_HXX_
-+#define _VBA_WORKSHEET_HXX_
-+
-+#include <org/openoffice/vba/XWorkSheet.hpp>
-+
-+class ScModelObj;
-+
-+class ScVbaWorkSheet : public org::openoffice::vba::XWorkSheet
-+{
-+ // UNO sucks for not providing a sane, thread-safe
-+ // base-class for this.
-+ sal_Int32 mnRefCount;
-+ ScModelObj *mpModel;
-+
-+public:
-+ ScVbaWorkSheet( ScModelObj *pModel );
-+ virtual ~ScVbaWorkSheet();
-+
-+ // XInterface
-+ virtual void acquire() throw () { ++mnRefCount; }
-+ virtual void release() throw () { if (! --mnRefCount) delete this; }
-+ virtual com::sun::star::uno::Any queryInterface(
-+ const com::sun::star::uno::Type & rType )
-+ throw (com::sun::star::uno::RuntimeException);
-+
-+ // Attributes
-+ virtual ::rtl::OUString SAL_CALL getName() throw (::com::sun::star::uno::RuntimeException)
-+ {return rtl::OUString::createFromAscii( "VBA WorkSheet Name" ); }
-+ virtual ::sal_Bool SAL_CALL getProtectContents() throw (::com::sun::star::uno::RuntimeException)
-+ { return TRUE; }
-+ virtual void SAL_CALL setProtectContents( ::sal_Bool _protectcontents ) throw (::com::sun::star::uno::RuntimeException)
-+ { }
-+ virtual ::sal_Bool SAL_CALL getProtectDrawingObjects() throw (::com::sun::star::uno::RuntimeException)
-+ { return TRUE; }
-+ virtual ::sal_Bool SAL_CALL getProtectionMode() throw (::com::sun::star::uno::RuntimeException)
-+ { return TRUE; }
-+ virtual ::sal_Bool SAL_CALL getProtectScenarios() throw (::com::sun::star::uno::RuntimeException)
-+ { return TRUE; }
-+ virtual ::sal_Int32 SAL_CALL getStandardHeight() throw (::com::sun::star::uno::RuntimeException)
-+ { return 1; }
-+ virtual ::sal_Int32 SAL_CALL getStandardWidth() throw (::com::sun::star::uno::RuntimeException)
-+ { return 1; }
-+ virtual ::sal_Bool SAL_CALL getVisible() throw (::com::sun::star::uno::RuntimeException)
-+ { return TRUE; }
-+
-+ // Methods
-+ virtual void SAL_CALL activate( ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL calculate( ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL checkspelling( const ::rtl::OUString& aCustomDictionary, ::sal_Bool bIgnoreUpperCase, ::sal_Bool bAlwaysSuggest, const ::rtl::OUString& aSpellLang ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL copy( ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL move( ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+
-+ /*deleteSheet named to avoid conflict with keyword; vba method is Delete*/
-+ virtual void SAL_CALL deleteSheet( ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL protect( const ::rtl::OUString& aPassword, ::sal_Bool bDrawingObjects, ::sal_Bool bContents, ::sal_Bool bScenarios, ::sal_Bool bUserInterfaceOnly ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL select( ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL setBackgroundPicture( const ::rtl::OUString& aFileName ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+ virtual void SAL_CALL unprotect( const ::rtl::OUString& aPassword ) throw (::com::sun::star::uno::RuntimeException)
-+ {}
-+
-+};
-+
-+#endif /* _VBA_WORKSHEET_HXX_ */
-+
diff --git a/patches/test/sd-export-html-thumbnails.diff b/patches/test/sd-export-html-thumbnails.diff
deleted file mode 100644
index 28b33fa14..000000000
--- a/patches/test/sd-export-html-thumbnails.diff
+++ /dev/null
@@ -1,148 +0,0 @@
---- /opt/OpenOffice/openoffice/build/OOO_1_1_0/sd/source/filter/html/htmlex.cxx 2003-11-21 06:55:21.000000000 +0000
-+++ sd/source/filter/html/htmlex.cxx 2003-12-10 14:07:14.000000000 +0000
-@@ -510,7 +510,7 @@
- m_eMode( PUBLISH_HTML ),
- m_eFormat( FORMAT_JPG ),
- m_nCompression( -1 ),
-- m_nWidthPixel( PUB_LOWRES_WIDTH ),
-+ m_nWidthPixel( PUB_MEDRES_WIDTH ),
- m_bDownload( false ),
- m_eScript( SCRIPT_ASP )
- {
-@@ -821,6 +821,10 @@
- if( !CreateImagesForPresPages() )
- break;
-
-+ if( m_bContentsPage &&
-+ !CreateImagesForPresPages( true ) )
-+ break;
-+
- if( !CreateHtmlForPresPages() )
- break;
-
-@@ -1049,7 +1053,7 @@
- // =====================================================================
- // Image-Dateien anlegen
- // =====================================================================
--bool HtmlExport::CreateImagesForPresPages()
-+bool HtmlExport::CreateImagesForPresPages( bool bThumbnail )
- {
- try
- {
-@@ -1066,9 +1070,9 @@
-
- Sequence< PropertyValue > aFilterData(((m_eFormat==FORMAT_JPG)&&(m_nCompression != -1))? 3 : 2);
- aFilterData[0].Name = OUString( RTL_CONSTASCII_USTRINGPARAM("PixelWidth") );
-- aFilterData[0].Value <<= (sal_Int32)m_nWidthPixel;
-+ aFilterData[0].Value <<= (sal_Int32)(bThumbnail ? PUB_THUMBNAIL_WIDTH : m_nWidthPixel );
- aFilterData[1].Name = OUString( RTL_CONSTASCII_USTRINGPARAM("PixelHeight") );
-- aFilterData[1].Value <<= (sal_Int32)m_nHeightPixel;
-+ aFilterData[1].Value <<= (sal_Int32)(bThumbnail ? PUB_THUMBNAIL_HEIGHT : m_nHeightPixel);
- if((m_eFormat==FORMAT_JPG)&&(m_nCompression != -1))
- {
- aFilterData[2].Name = OUString( RTL_CONSTASCII_USTRINGPARAM("Quality") );
-@@ -1087,7 +1091,10 @@
- SdPage* pPage = pDoc->GetSdPage( nSdPage, PK_STANDARD );
-
- OUString aFull(m_aExportPath);
-- aFull += *m_pImageFiles[nSdPage];
-+ if (bThumbnail)
-+ aFull += *m_pThumbnailFiles[nSdPage];
-+ else
-+ aFull += *m_pImageFiles[nSdPage];
-
- aDescriptor[0].Value <<= aFull;
-
-@@ -1905,7 +1912,7 @@
- aStr.AppendAscii( "<center><table width=90%><TR>\r\n" );
-
- // Inhaltsverzeichnis
-- aStr.AppendAscii( "<td valign=top align=left width=50%>\r\n" );
-+ aStr.AppendAscii( "<td valign=top align=left width=25%>\r\n" );
- aStr.AppendAscii( "<h3><u>" );
- aStr += RESTOHTML(STR_HTMLEXP_CONTENTS);
- aStr.AppendAscii( "</u></h3>" );
-@@ -1925,7 +1932,7 @@
- aStr.AppendAscii( "</td>\r\n" );
-
- // Dokument Infos
-- aStr.AppendAscii( "<td valign=top width=50%>\r\n" );
-+ aStr.AppendAscii( "<td valign=top align=left width=75%>\r\n" );
-
- if(m_aAuthor.Len())
- {
-@@ -1976,6 +1983,21 @@
- aStr.AppendAscii( "</a></p>\r\n" );
- }
-
-+ for(nSdPage = 0; nSdPage < m_nSdPageCount; nSdPage++)
-+ {
-+ SdPage* pPage = pDoc->GetSdPage(nSdPage, PK_STANDARD);
-+ String aText;
-+
-+ aText.AppendAscii( "<img src=\"" );
-+ aText += StringToURL( *m_pThumbnailFiles[nSdPage] );
-+ aText.AppendAscii( "\" width=256 height=192 alt=\"" );
-+ aText += StringToHTMLString( *m_pPageNames[nSdPage] );
-+ aText.AppendAscii( "\">" );
-+
-+ aStr += CreateLink(*m_pHTMLFiles[nSdPage], aText);
-+ aStr.AppendAscii( "\r\n" );
-+ }
-+
- aStr.AppendAscii( "</td></tr></table></center>\r\n" );
-
- aStr.AppendAscii( "</body>\r\n</html>" );
-@@ -2096,6 +2118,7 @@
- // Listen mit neuen Dateinamen anlegen
- m_pHTMLFiles = new String*[m_nSdPageCount];
- m_pImageFiles = new String*[m_nSdPageCount];
-+ m_pThumbnailFiles = new String*[m_nSdPageCount];
- m_pPageNames = new String*[m_nSdPageCount];
- m_pTextFiles = new String*[m_nSdPageCount];
-
-@@ -2124,6 +2147,15 @@
-
- m_pImageFiles[nSdPage] = pName;
-
-+ pName = new String( RTL_CONSTASCII_USTRINGPARAM("thumb") );
-+ *pName += String::CreateFromInt32(nSdPage);
-+ if( m_eFormat!=FORMAT_JPG )
-+ pName->AppendAscii( ".png" );
-+ else
-+ pName->AppendAscii( ".jpg" );
-+
-+ m_pThumbnailFiles[nSdPage] = pName;
-+
- pName = new String( RTL_CONSTASCII_USTRINGPARAM("text"));
- *pName += String::CreateFromInt32(nSdPage);
- *pName += m_aHTMLExtension;
---- /opt/OpenOffice/openoffice/build/OOO_1_1_0/sd/source/filter/html/htmlex.hxx 2003-06-04 12:02:33.000000000 +0100
-+++ sd/source/filter/html/htmlex.hxx 2003-12-10 13:41:26.000000000 +0000
-@@ -112,6 +112,9 @@
- #define PUB_HIGHRES_WIDTH 1024
- #define PUB_HIGHRES_HEIGHT 768
-
-+#define PUB_THUMBNAIL_WIDTH 256
-+#define PUB_THUMBNAIL_HEIGHT 192
-+
- #define HtmlButtonThemaStr = "private://gallery/hidden/HtmlExportButtons";
-
- class List;
-@@ -197,6 +200,7 @@
- String m_aHTMLExtension;
- String** m_pHTMLFiles;
- String** m_pImageFiles;
-+ String** m_pThumbnailFiles;
- String** m_pPageNames;
- String** m_pTextFiles;
-
-@@ -210,7 +214,7 @@
-
- void SetDocColors( SdPage* pPage = NULL );
-
-- bool CreateImagesForPresPages();
-+ bool CreateImagesForPresPages( bool bThumbnails = false );
- bool CreateHtmlTextForPresPages();
- bool CreateHtmlForPresPages();
- bool CreateContentPage();
diff --git a/patches/test/service-log.diff b/patches/test/service-log.diff
deleted file mode 100644
index 80eaf6ee8..000000000
--- a/patches/test/service-log.diff
+++ /dev/null
@@ -1,57 +0,0 @@
-Index: cppuhelper/source/factory.cxx
-===================================================================
-RCS file: /cvs/udk/cppuhelper/source/factory.cxx,v
-retrieving revision 1.23
-diff -u -p -u -r1.23 factory.cxx
---- cppuhelper/source/factory.cxx 8 Sep 2005 09:26:13 -0000 1.23
-+++ cppuhelper/source/factory.cxx 9 Nov 2005 11:58:29 -0000
-@@ -1,3 +1,4 @@
-+#include <stdio.h>
- /*************************************************************************
- *
- * OpenOffice.org - a multi-platform office productivity suite
-@@ -192,6 +193,10 @@ Reference<XInterface > OSingleFactoryHel
- Reference< XComponentContext > const & xContext )
- throw(::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException)
- {
-+ fprintf (stderr, "SingleFactoryHelper::createInstanceWAAC '%s'\n",
-+ (const sal_Char *) rtl::OUStringToOString (aImplementationName,
-+ RTL_TEXTENCODING_UTF8));
-+
- if (m_fptr)
- {
- return (*m_fptr)( xContext );
-
-Index: stoc/source/servicemanager/servicemanager.cxx
-===================================================================
-RCS file: /cvs/udk/stoc/source/servicemanager/servicemanager.cxx,v
-retrieving revision 1.24
-diff -u -p -u -r1.24 servicemanager.cxx
---- stoc/source/servicemanager/servicemanager.cxx 8 Sep 2005 08:11:34 -0000 1.24
-+++ stoc/source/servicemanager/servicemanager.cxx 9 Nov 2005 11:59:22 -0000
-@@ -1,3 +1,4 @@
-+#include <stdio.h>
- /*************************************************************************
- *
- * OpenOffice.org - a multi-platform office productivity suite
-@@ -1273,6 +1274,9 @@ Reference< XInterface > OServiceManager:
- Reference< XComponentContext > const & xContext )
- throw (Exception, RuntimeException)
- {
-+ fprintf (stderr, "CreateInstanceWithContext '%s'\n",
-+ (const sal_Char *) rtl::OUStringToOString (rServiceSpecifier, RTL_TEXTENCODING_UTF8));
-+
- check_undisposed();
- #if OSL_DEBUG_LEVEL > 0
- Reference< beans::XPropertySet > xProps( xContext->getServiceManager(), UNO_QUERY );
-@@ -1335,6 +1339,9 @@ Reference< XInterface > OServiceManager:
- Reference< XComponentContext > const & xContext )
- throw (Exception, RuntimeException)
- {
-+ fprintf (stderr, "CreateInstanceWC&Args '%s'\n",
-+ (const sal_Char *) rtl::OUStringToOString (rServiceSpecifier, RTL_TEXTENCODING_UTF8));
-+
- check_undisposed();
- #if OSL_DEBUG_LEVEL > 0
- Reference< beans::XPropertySet > xProps( xContext->getServiceManager(), UNO_QUERY );
-
diff --git a/patches/test/store-core.diff b/patches/test/store-core.diff
deleted file mode 100644
index 052618219..000000000
--- a/patches/test/store-core.diff
+++ /dev/null
@@ -1,463 +0,0 @@
-Index: store/inc/store/types.h
-===================================================================
-RCS file: /cvs/ucb/store/inc/store/types.h,v
-retrieving revision 1.6
-diff -u -p -u -r1.6 types.h
---- store/inc/store/types.h 8 Sep 2005 08:40:21 -0000 1.6
-+++ store/inc/store/types.h 20 Oct 2005 14:23:24 -0000
-@@ -51,13 +51,13 @@ extern "C" {
- /** PageSize (recommended) default.
- @see store_openFile()
- */
--#define STORE_DEFAULT_PAGESIZE ((sal_uInt16)0x0400)
-+#define STORE_DEFAULT_PAGESIZE ((sal_uInt16)0x080)
-
-
- /** PageSize (enforced) limits.
- @see store_openFile()
- */
--#define STORE_MINIMUM_PAGESIZE ((sal_uInt16)0x0200)
-+#define STORE_MINIMUM_PAGESIZE ((sal_uInt16)0x80)
- #define STORE_MAXIMUM_PAGESIZE ((sal_uInt16)0x8000)
-
-
-Index: store/source/filelckb.cxx
-===================================================================
-RCS file: /cvs/ucb/store/source/filelckb.cxx,v
-retrieving revision 1.14
-diff -u -p -u -r1.14 filelckb.cxx
---- store/source/filelckb.cxx 8 Sep 2005 08:40:46 -0000 1.14
-+++ store/source/filelckb.cxx 20 Oct 2005 14:23:24 -0000
-@@ -659,7 +659,13 @@ storeError OFileLockBytes::writeAt (
- // Acquire exclusive access.
- osl::MutexGuard aGuard (m_aMutex);
- if (m_pImpl->isValid())
-- return m_pImpl->writeAt (nOffset, pBuffer, nBytes, rnDone);
-+ {
-+ storeError nErr;
-+ nErr = m_pImpl->writeAt (nOffset, pBuffer, nBytes, rnDone);
-+// fprintf( stderr, "OFileLockBytes::writeAt %d (%d bytes) (%d written) err %d\n",
-+// nOffset, nBytes, rnDone, nErr );
-+ return nErr;
-+ }
- else
- return store_E_InvalidHandle;
- }
-Index: store/source/makefile.mk
-===================================================================
-RCS file: /cvs/ucb/store/source/makefile.mk,v
-retrieving revision 1.3
-diff -u -p -u -r1.3 makefile.mk
---- store/source/makefile.mk 8 Sep 2005 08:42:35 -0000 1.3
-+++ store/source/makefile.mk 20 Oct 2005 14:23:24 -0000
-@@ -44,6 +44,7 @@ TARGET=store
-
- # --- Files ---
-
-+CFLAGS+=-O0
- SLOFILES= \
- $(SLO)$/object.obj \
- $(SLO)$/memlckb.obj \
-Index: store/source/storbase.cxx
-===================================================================
-RCS file: /cvs/ucb/store/source/storbase.cxx,v
-retrieving revision 1.8
-diff -u -p -u -r1.8 storbase.cxx
---- store/source/storbase.cxx 8 Sep 2005 08:43:44 -0000 1.8
-+++ store/source/storbase.cxx 20 Oct 2005 14:23:24 -0000
-@@ -53,6 +53,9 @@
- #ifndef _RTL_REF_HXX_
- #include <rtl/ref.hxx>
- #endif
-+#ifndef _RTL_MEMORY_H_
-+#include <rtl/memory.h>
-+#endif
-
- #ifndef _OSL_DIAGNOSE_H_
- #include <osl/diagnose.h>
-@@ -2054,3 +2057,111 @@ storeError OStorePageBIOS::poke (OStoreP
- return eErrCode;
- }
-
-+static void
-+copyAndTerminate( sal_Char *pDest, const sal_Char *pSrc, sal_Int32 nBytes)
-+{
-+ rtl_copyMemory (pDest, pSrc, nBytes);
-+ pDest[nBytes] = '\0';
-+}
-+
-+struct OStorePageLongNameData : public OStorePageData
-+{
-+ public:
-+ sal_Char m_nData[STORE_MAXIMUM_PAGESIZE - sizeof (OStorePageData)];
-+ OStorePageLongNameData(sal_uInt16 nPageSize) :
-+ OStorePageData (nPageSize) {}
-+};
-+
-+static sal_uInt16
-+lcl_getPageSize (OStorePageBIOS &rBIOS)
-+{
-+ sal_uInt16 nPageSize = STORE_MAXIMUM_PAGESIZE;
-+ rBIOS.getPageSize(nPageSize);
-+// fprintf (stderr, "page size for extended names %d\n", nPageSize);
-+ return nPageSize;
-+}
-+
-+#define USE_OTHER_BLOCK STORE_INTERNAL_MAX_NAMESIZE
-+
-+storeError
-+OStorePageNameBlock::setName (const rtl_String *pName, OStorePageBIOS &rBIOS)
-+{
-+ storeError nRet;
-+ sal_Char *pDest;
-+
-+// fprintf (stderr, "setName '%s'\n", pName->buffer);
-+
-+ m_nNameLength = pName->length;
-+
-+ if (pName->length >= USE_OTHER_BLOCK)
-+ {
-+ fprintf (stderr, "Pray I understood the block I/O layer\n");
-+ OStorePageLongNameData aNameData(lcl_getPageSize(rBIOS));
-+ OStorePageObject aNamePage(aNameData);
-+ if (!m_pNameBlock)
-+ {
-+ if ((nRet = rBIOS.allocate (aNamePage)) != store_E_None)
-+ {
-+ fprintf (stderr, "failed to allocate name page %d\n", nRet);
-+ return nRet;
-+ }
-+ m_pNameBlock = aNameData.location();
-+ }
-+ else
-+ {
-+ aNameData.location (m_pNameBlock);
-+ if ((nRet = rBIOS.load(aNamePage)) != store_E_None)
-+ {
-+ fprintf (stderr, "failed to load name page %d\n", nRet);
-+ return nRet;
-+ }
-+ }
-+ copyAndTerminate (m_pNameData, pName->buffer, USE_OTHER_BLOCK - 1);
-+ copyAndTerminate (aNameData.m_nData, pName->buffer + USE_OTHER_BLOCK - 1,
-+ pName->length - (USE_OTHER_BLOCK - 1));
-+
-+ if ((nRet = rBIOS.save (aNamePage)) != store_E_None)
-+ {
-+ fprintf (stderr, "failed to save name page %d\n", nRet);
-+ return nRet;
-+ }
-+ }
-+ else
-+ copyAndTerminate (m_pNameData, pName->buffer, pName->length);
-+
-+ return store_E_None;
-+}
-+
-+storeError
-+OStorePageNameBlock::getName (rtl_String **pName, OStorePageBIOS &rBIOS)
-+{
-+ storeError nRet;
-+
-+// fprintf (stderr, "get!Name (%d)...\n", m_nNameLength);
-+
-+ rtl_string_new_WithLength (pName, m_nNameLength + 1);
-+ (*pName)->length = m_nNameLength;
-+
-+ if (m_nNameLength >= USE_OTHER_BLOCK)
-+ {
-+ OStorePageLongNameData aNameData(lcl_getPageSize (rBIOS));
-+ OStorePageObject aNamePage(aNameData);
-+ aNameData.location (m_pNameBlock);
-+
-+ if ((nRet = rBIOS.load(aNamePage)) != store_E_None)
-+ {
-+ fprintf (stderr, "failed to load name page %d\n", nRet);
-+ return nRet;
-+ }
-+
-+ copyAndTerminate ((*pName)->buffer, m_pNameData, USE_OTHER_BLOCK - 1);
-+ copyAndTerminate ((*pName)->buffer + USE_OTHER_BLOCK - 1,
-+ aNameData.m_nData, m_nNameLength - (USE_OTHER_BLOCK - 1));
-+ }
-+ else
-+ copyAndTerminate ((*pName)->buffer, m_pNameData, m_nNameLength);
-+
-+// fprintf (stderr, "... returns '%s'\n", (*pName)->buffer);
-+
-+ return store_E_None;
-+}
-Index: store/source/storbase.hxx
-===================================================================
-RCS file: /cvs/ucb/store/source/storbase.hxx,v
-retrieving revision 1.7
-diff -u -p -u -r1.7 storbase.hxx
---- store/source/storbase.hxx 8 Sep 2005 08:44:04 -0000 1.7
-+++ store/source/storbase.hxx 20 Oct 2005 14:23:24 -0000
-@@ -77,6 +77,9 @@
- #define INCLUDED_CSTRING
- #endif
-
-+// #define STORE_INTERNAL_MAX_NAMESIZE 96-4
-+#define STORE_INTERNAL_MAX_NAMESIZE 32
-+
- /*========================================================================
- *
- * store common internals.
-@@ -376,11 +379,15 @@ struct OStorePageLink
- }
- };
-
-+
- /*========================================================================
- *
- * OStorePageNameBlock.
- *
- *======================================================================*/
-+
-+class OStorePageBIOS;
-+
- struct OStorePageNameBlock
- {
- typedef OStorePageGuard G;
-@@ -391,14 +398,17 @@ struct OStorePageNameBlock
- G m_aGuard;
- K m_aKey;
- sal_uInt32 m_nAttrib;
-- sal_Char m_pData[STORE_MAXIMUM_NAMESIZE];
-+ sal_Char m_pNameData[STORE_INTERNAL_MAX_NAMESIZE];
-+ sal_uInt32 m_nNameLength;
-+ sal_uInt32 m_pNameBlock;
-
- /** size.
- */
- static sal_uInt16 size (void)
- {
- return (sizeof(G) + sizeof(K) + sizeof(sal_uInt32) +
-- sizeof(sal_Char[STORE_MAXIMUM_NAMESIZE]));
-+ sizeof(sal_uInt32) + sizeof (sal_uInt32) +
-+ sizeof(sal_Char[STORE_INTERNAL_MAX_NAMESIZE]));
- }
-
- /** initialize.
-@@ -408,15 +418,17 @@ struct OStorePageNameBlock
- m_aGuard = G();
- m_aKey = K();
- m_nAttrib = 0;
-- __store_memset (m_pData, 0, sizeof(m_pData));
-+ m_pNameBlock = 0;
-+ m_nNameLength = 0;
-+ __store_memset (m_pNameData, 0, sizeof(m_pNameData));
- }
-
- /** Construction.
- */
- OStorePageNameBlock (void)
-- : m_nAttrib (0)
-+ : m_nAttrib (0), m_pNameBlock (0), m_nNameLength (0)
- {
-- __store_memset (m_pData, 0, sizeof(m_pData));
-+ __store_memset (m_pNameData, 0, sizeof(m_pNameData));
- }
-
- /** Comparison.
-@@ -434,6 +446,8 @@ struct OStorePageNameBlock
- m_aGuard.swap();
- m_aKey.swap();
- m_nAttrib = OSL_SWAPDWORD(m_nAttrib);
-+ m_nNameLength = OSL_SWAPDWORD(m_nNameLength);
-+ m_pNameBlock = OSL_SWAPDWORD(m_pNameBlock);
- #endif /* OSL_BIGENDIAN */
- }
-
-@@ -466,6 +480,9 @@ struct OStorePageNameBlock
- return store_E_None;
- }
-
-+ storeError setName (const rtl_String *pName, OStorePageBIOS &rBIOS);
-+ storeError getName (rtl_String **pName, OStorePageBIOS &rBIOS);
-+
- /** namei.
- */
- static storeError namei (
-@@ -475,8 +492,11 @@ struct OStorePageNameBlock
- if (!(pPath && pName))
- return store_E_InvalidParameter;
-
-+ if (pName->length >= STORE_INTERNAL_MAX_NAMESIZE)
-+ fprintf(stderr, "Intersting long name (%d) ...\n", pName->length);
-+
- // Check name length.
-- if (!(pName->length < STORE_MAXIMUM_NAMESIZE))
-+ if (pName->length >= STORE_MAXIMUM_NAMESIZE)
- return store_E_NameTooLong;
-
- // Transform pathname into key.
-Index: store/source/stordata.hxx
-===================================================================
-RCS file: /cvs/ucb/store/source/stordata.hxx,v
-retrieving revision 1.3
-diff -u -p -u -r1.3 stordata.hxx
---- store/source/stordata.hxx 8 Sep 2005 08:45:37 -0000 1.3
-+++ store/source/stordata.hxx 20 Oct 2005 14:23:25 -0000
-@@ -367,10 +367,10 @@ inline OStoreIndirectionPageObject::OSto
- * OStoreDirectoryDataBlock.
- *
- *======================================================================*/
--#define STORE_LIMIT_DATAPAGE_DIRECT 16
--#define STORE_LIMIT_DATAPAGE_SINGLE 8
--#define STORE_LIMIT_DATAPAGE_DOUBLE 1
--#define STORE_LIMIT_DATAPAGE_TRIPLE 1
-+#define STORE_LIMIT_DATAPAGE_DIRECT 4
-+#define STORE_LIMIT_DATAPAGE_SINGLE 2
-+#define STORE_LIMIT_DATAPAGE_DOUBLE 1
-+#define STORE_LIMIT_DATAPAGE_TRIPLE 1
-
- struct OStoreDirectoryDataBlock
- {
-@@ -641,6 +641,13 @@ struct OStoreDirectoryPageData : public
- {
- base::m_aGuard.m_nMagic = STORE_MAGIC_DIRECTORYPAGE;
- base::m_aDescr.m_nUsed += self::size();
-+ if (capacity() > STORE_MINIMUM_PAGESIZE ||
-+ size() > STORE_MINIMUM_PAGESIZE)
-+ {
-+ fprintf (stderr, "OStoreDirectoryPageData size %d, capacity %d "
-+ "min %d\n", self::size(), capacity(), STORE_MINIMUM_PAGESIZE);
-+ *(int *)(NULL) = 0;
-+ }
- rtl_zeroMemory (m_pData, capacity());
- }
-
-Index: store/source/storlckb.cxx
-===================================================================
-RCS file: /cvs/ucb/store/source/storlckb.cxx,v
-retrieving revision 1.5
-diff -u -p -u -r1.5 storlckb.cxx
---- store/source/storlckb.cxx 8 Sep 2005 08:46:28 -0000 1.5
-+++ store/source/storlckb.cxx 20 Oct 2005 14:23:25 -0000
-@@ -153,10 +153,7 @@ static storeError __store_iget (
- // Setup inode nameblock.
- rNode.m_aNameBlock.m_aKey = aKey;
- rNode.m_aNameBlock.m_nAttrib = nAttrib;
--
-- rtl_copyMemory (
-- &rNode.m_aNameBlock.m_pData[0],
-- pName->buffer, pName->length);
-+ rNode.m_aNameBlock.setName (pName, rManager);
-
- // Save inode page.
- eErrCode = rManager.save (aKey, aPage);
-@@ -275,11 +272,14 @@ storeError OStoreDirectory::create (
- {
- // Evaluate iteration path from NameBlock.
- typedef OStorePageGuard G;
-- sal_Char *pszName = m_pNode->m_aNameBlock.m_pData;
-+ rtl_String *pItemName = NULL;
-+ if ((eErrCode = m_pNode->m_aNameBlock.getName (&pItemName, *pManager)) != store_E_None)
-+ return eErrCode;
-
- m_nPath = m_pNode->m_aNameBlock.m_aKey.m_nHigh;
-- m_nPath = G::crc32 (m_nPath, pszName, rtl_str_getLength(pszName));
-+ m_nPath = G::crc32 (m_nPath, pItemName->buffer, pItemName->length);
- m_nPath = G::crc32 (m_nPath, "/", 1);
-+ rtl_string_release (pItemName);
-
- // Accept page manager.
- m_xManager = xManager;
-@@ -324,8 +324,13 @@ storeError OStoreDirectory::iterate (sto
- if (eErrCode == store_E_None)
- {
- // Setup FindData.
-- sal_Char *p = m_pNode->m_aNameBlock.m_pData;
-- sal_Int32 n = rtl_str_getLength (p);
-+
-+ rtl_String *pItemName = NULL;
-+ if ((eErrCode = m_pNode->m_aNameBlock.getName (&pItemName, *m_xManager)) != store_E_None)
-+ return eErrCode;
-+
-+ sal_Char *p = pItemName->buffer;
-+ sal_Int32 n = pItemName->length;
- sal_Int32 k = rFindData.m_nLength;
-
- n = __store_convertTextToUnicode (
-@@ -336,6 +341,7 @@ storeError OStoreDirectory::iterate (sto
- k = (k - n) * sizeof(sal_Unicode);
- rtl_zeroMemory (&rFindData.m_pszName[n], k);
- }
-+ rtl_string_release (pItemName);
-
- rFindData.m_nLength = n;
- rFindData.m_nAttrib |= aPage.attrib();
-Index: store/source/storpage.cxx
-===================================================================
-RCS file: /cvs/ucb/store/source/storpage.cxx,v
-retrieving revision 1.4
-diff -u -p -u -r1.4 storpage.cxx
---- store/source/storpage.cxx 8 Sep 2005 08:47:20 -0000 1.4
-+++ store/source/storpage.cxx 20 Oct 2005 14:23:25 -0000
-@@ -954,9 +954,7 @@ storeError OStorePageManager::symlink (
-
- // Setup as 'Source' directory page.
- m_pDirect->m_aNameBlock.m_aKey = aSrcKey;
-- rtl_copyMemory (
-- &m_pDirect->m_aNameBlock.m_pData[0],
-- pSrcName->buffer, pSrcName->length);
-+ m_pDirect->m_aNameBlock.setName(pSrcName, *this);
-
- // Store 'Destination' page key.
- OStorePageKey aDstKey (rDstKey);
-@@ -1115,13 +1113,7 @@ storeError OStorePageManager::rename (
- if (!(e.m_nAttrib & STORE_ATTRIB_ISLINK))
- {
- // Setup 'Destination' NameBlock.
-- sal_Int32 nDstLen = pDstName->length;
-- rtl_copyMemory (
-- &m_pDirect->m_aNameBlock.m_pData[0],
-- pDstName->buffer, nDstLen);
-- rtl_zeroMemory (
-- &m_pDirect->m_aNameBlock.m_pData[nDstLen],
-- STORE_MAXIMUM_NAMESIZE - nDstLen);
-+ m_pDirect->m_aNameBlock.setName (pDstName, *this);
- m_pDirect->m_aNameBlock.m_aKey = e.m_aKey;
-
- // Save directory page.
-Index: store/workben/makefile.mk
-===================================================================
-RCS file: /cvs/ucb/store/workben/makefile.mk,v
-retrieving revision 1.4
-diff -u -p -u -r1.4 makefile.mk
---- store/workben/makefile.mk 8 Sep 2005 08:49:17 -0000 1.4
-+++ store/workben/makefile.mk 20 Oct 2005 14:23:25 -0000
-@@ -68,12 +68,14 @@ CFLAGS+= -I..$/source
- CXXFILES= \
- t_file.cxx \
- t_base.cxx \
-- t_store.cxx
-+ t_store.cxx \
-+ t_shell.cxx
-
- OBJFILES= \
- $(OBJ)$/t_file.obj \
- $(OBJ)$/t_base.obj \
-- $(OBJ)$/t_store.obj
-+ $(OBJ)$/t_store.obj \
-+ $(OBJ)$/t_shell.obj
-
- APP1TARGET= t_file
- APP1OBJS= $(OBJ)$/t_file.obj
-@@ -99,6 +101,14 @@ APP3DEPN= \
- $(SLB)$/store.lib \
- $(L)$/isal.lib
-
-+APP4TARGET= t_shell
-+APP4OBJS= $(OBJ)$/t_shell.obj
-+APP4STDLIBS= $(STORELIB)
-+APP4STDLIBS+= $(SALLIB)
-+APP4DEPN= \
-+ $(SLB)$/store.lib \
-+ $(L)$/isal.lib
-+
- # --- Targets ---
-
- .INCLUDE : target.mk
diff --git a/patches/test/store-registry.diff b/patches/test/store-registry.diff
deleted file mode 100644
index 5745f1d85..000000000
--- a/patches/test/store-registry.diff
+++ /dev/null
@@ -1,17 +0,0 @@
-Index: registry/source/regimpl.hxx
-===================================================================
-RCS file: /cvs/udk/registry/source/regimpl.hxx,v
-retrieving revision 1.3
-diff -u -p -u -r1.3 regimpl.hxx
---- registry/source/regimpl.hxx 9 Sep 2005 05:16:28 -0000 1.3
-+++ registry/source/regimpl.hxx 20 Oct 2005 14:24:03 -0000
-@@ -50,7 +50,8 @@
- #include <store/store.hxx>
- #endif
-
--#define REG_PAGESIZE 512
-+/* #define REG_PAGESIZE 512 */
-+#define REG_PAGESIZE 128
-
- #define REG_MODE_CREATE store_AccessCreate
- #define REG_MODE_OPEN store_AccessReadWrite
diff --git a/patches/test/store-shell.diff b/patches/test/store-shell.diff
deleted file mode 100644
index eb596740e..000000000
--- a/patches/test/store-shell.diff
+++ /dev/null
@@ -1,544 +0,0 @@
---- /dev/null 2005-10-19 10:48:52.004301250 +0100
-+++ store/workben/t_shell.cxx 2005-10-10 14:28:25.000000000 +0100
-@@ -0,0 +1,541 @@
-+#ifndef _SAL_TYPES_H_
-+#include <sal/types.h>
-+#endif
-+
-+#ifndef _OSL_DIAGNOSE_H_
-+#include <osl/diagnose.h>
-+#endif
-+#ifndef _OSL_THREAD_H_
-+#include <osl/thread.h>
-+#endif
-+#ifndef _OSL_TIME_H_
-+#include <osl/time.h>
-+#endif
-+
-+#ifndef _RTL_USTRING_HXX_
-+#include <rtl/ustring.hxx>
-+#endif
-+
-+#ifndef _STORE_STORE_HXX_
-+#include <store/store.hxx>
-+#endif
-+
-+#include <stdio.h>
-+#include <math.h>
-+
-+static rtl::OUString aPathSep(RTL_CONSTASCII_USTRINGPARAM("/"));
-+
-+static const char *
-+errName (storeError nErr)
-+{
-+ switch (nErr) {
-+#define MAP(a) case store_E_##a: return #a
-+ MAP (None);
-+ MAP (AccessViolation);
-+ MAP (LockingViolation);
-+ MAP (CantSeek);
-+ MAP (CantRead);
-+ MAP (CantWrite);
-+ MAP (InvalidAccess);
-+ MAP (InvalidHandle);
-+ MAP (InvalidParameter);
-+ MAP (InvalidChecksum);
-+ MAP (AlreadyExists);
-+ MAP (NotExists);
-+ MAP (NotDirectory);
-+ MAP (NotFile);
-+ MAP (NoMoreFiles);
-+ MAP (NameTooLong);
-+ MAP (OutOfMemory);
-+ MAP (OutOfSpace);
-+ MAP (Pending);
-+ MAP (WrongFormat);
-+ MAP (WrongVersion);
-+ MAP (Unknown);
-+#undef MAP
-+ default:
-+ return "broken error value";
-+ }
-+}
-+
-+static void
-+dbg_put (rtl::OUString aArgh)
-+{
-+ rtl::OString aUgh = rtl::OUStringToOString(aArgh,
-+ RTL_TEXTENCODING_UTF8);
-+ fprintf (stderr, "\t'%s'\n", (const sal_Char *)aUgh);
-+}
-+
-+static void
-+splitPath( const rtl::OUString &rSrc,
-+ rtl::OUString &rPath,
-+ rtl::OUString &rName)
-+{
-+ if (rSrc.equals(aPathSep))
-+ {
-+ rPath = rtl::OUString();
-+ rName = rtl::OUString();
-+ }
-+ else
-+ {
-+ rPath = rSrc.copy(0, rSrc.lastIndexOf('/') + 1);
-+ rName = rSrc.copy(rSrc.lastIndexOf('/') + 1);
-+ }
-+#if 0
-+ fprintf (stderr, "Split a to b + c\n");
-+ dbg_put(rSrc);
-+ dbg_put(rPath);
-+ dbg_put(rName);
-+#endif
-+}
-+
-+struct State
-+{
-+ rtl::OUString aCurPath;
-+ store::OStoreFile aFile;
-+ bool bExit;
-+ FILE *pOut;
-+ FILE *pIn;
-+ State() : aCurPath(aPathSep),
-+ pOut(stdout), pIn(stdin),
-+ aFile(), bExit(false) {}
-+
-+ void splitPath (rtl::OUString &rPath, rtl::OUString &rName)
-+ {
-+ ::splitPath (aCurPath, rPath, rName);
-+ }
-+};
-+
-+#define MAX_ARGS 32
-+struct Arguments {
-+ sal_uInt32 nArgs;
-+ rtl::OUString aArgs[MAX_ARGS];
-+};
-+
-+static rtl::OUString
-+chompSlash(const rtl::OUString &aString)
-+{
-+ if (aString[aString.getLength() - 1] == (sal_Unicode) '/')
-+ return aString.copy(0, aString.getLength() - 1);
-+ else
-+ return aString;
-+}
-+
-+static rtl::OUString
-+withSlash(const rtl::OUString &aString)
-+{
-+ if (aString[aString.getLength() - 1] != (sal_Unicode) '/')
-+ return aString + aPathSep;
-+ else
-+ return aString;
-+}
-+
-+static storeError
-+do_cd (State *pState, Arguments *pArgs)
-+{
-+ storeError nErr;
-+
-+ if (pArgs->nArgs < 1)
-+ {
-+ pState->aCurPath = aPathSep;
-+ return store_E_None;
-+ }
-+
-+ rtl::OUString aNewDir = pArgs->aArgs[1];
-+ rtl::OUString aPath, aName;
-+
-+ if (aNewDir.equalsAscii("."))
-+ return store_E_None;
-+
-+ if (aNewDir.equalsAscii(".."))
-+ {
-+ pState->splitPath (aPath, aName);
-+ pState->aCurPath = chompSlash (aPath);
-+ if (!pState->aCurPath.getLength())
-+ pState->aCurPath = aPathSep;
-+ return store_E_None;
-+ }
-+
-+ if (aNewDir[0] == (sal_Unicode) '/')
-+ splitPath (aNewDir, aPath, aName);
-+ else
-+ {
-+ aPath = withSlash (pState->aCurPath);
-+ aName = aNewDir;
-+ }
-+
-+ store::OStoreDirectory aDir;
-+ nErr = aDir.create (pState->aFile, aPath, aName,
-+ store_AccessReadOnly);
-+ if (nErr != store_E_None)
-+ {
-+ fprintf (pState->pOut, "Error entering dir %s\n",
-+ errName (nErr));
-+ return nErr;
-+ }
-+ else
-+ pState->aCurPath = chompSlash (aPath) + aPathSep + aName;
-+
-+ return store_E_None;
-+}
-+
-+static storeError
-+do_ls (State *pState, Arguments *pArgs)
-+{
-+ storeError nErr;
-+ store::OStoreDirectory aDir;
-+ rtl::OUString aPath, aName;
-+ pState->splitPath(aPath, aName);
-+
-+ nErr = aDir.create (pState->aFile, aPath, aName,
-+ store_AccessReadOnly);
-+ if (nErr != store_E_None)
-+ {
-+ fprintf (pState->pOut, "ls failed '%s'\n", errName (nErr));
-+ return nErr;
-+ }
-+ storeFindData aFindData;
-+
-+ sal_Int32 nEntries = 0;
-+
-+ for (nErr = aDir.first(aFindData); nErr == store_E_None;
-+ nErr = aDir.next(aFindData))
-+ {
-+ rtl::OUString aName (aFindData.m_pszName, aFindData.m_nLength);
-+ rtl::OString aUsableName = rtl::OUStringToOString (aName, RTL_TEXTENCODING_UTF8);
-+
-+ fprintf (pState->pOut, " %s : %c%c%c : %d bytes\n",
-+ (const sal_Char *)aUsableName,
-+ aFindData.m_nAttrib & STORE_ATTRIB_ISDIR ? 'd' : ' ',
-+ aFindData.m_nAttrib & STORE_ATTRIB_ISFILE ? 's' : ' ',
-+ aFindData.m_nAttrib & STORE_ATTRIB_ISLINK ? 'l' : ' ',
-+ aFindData.m_nSize);
-+ nEntries++;
-+ }
-+
-+ if (nErr != store_E_NoMoreFiles)
-+ {
-+ fprintf (pState->pOut, "Error %s on directory read...\n", errName (nErr));
-+ return nErr;
-+ }
-+
-+ aDir.close();
-+
-+ return store_E_None;
-+}
-+
-+static storeError
-+do_mkdir (State *pState, Arguments *pArgs)
-+{
-+ storeError nErr;
-+ store::OStoreDirectory aDir;
-+
-+ nErr = aDir.create (pState->aFile, withSlash (pState->aCurPath),
-+ pArgs->aArgs[1], store_AccessCreate);
-+ if (nErr != store_E_None)
-+ {
-+ fprintf (pState->pOut, "Error %s creating directory\n", errName (nErr));
-+ return nErr;
-+ }
-+
-+ aDir.close();
-+ return store_E_None;
-+}
-+
-+static storeError
-+do_exit (State *pState, Arguments *pArgs)
-+{
-+ pState->bExit = true;
-+ return store_E_None;
-+}
-+
-+static storeError
-+do_pwd (State *pState, Arguments *pArgs)
-+{
-+ rtl::OString aPath = rtl::OUStringToOString(pState->aCurPath,
-+ RTL_TEXTENCODING_UTF8);
-+ fprintf (pState->pOut, "Path: '%s'\n", (const sal_Char *)aPath);
-+ return store_E_None;
-+}
-+
-+static storeError
-+do_cat (State *pState, Arguments *pArgs)
-+{
-+ storeError nErr;
-+ store::OStoreStream aStream;
-+
-+ // cat > file
-+ if (pArgs->aArgs[1].equalsAscii(">"))
-+ {
-+ nErr = aStream.create (pState->aFile, withSlash (pState->aCurPath),
-+ pArgs->aArgs[2], store_AccessCreate);
-+ if (nErr != store_E_None)
-+ fprintf (stderr, "Failed to create file: %s\n",
-+ errName (nErr));
-+ sal_uInt32 nOffset = 0;
-+ while (!feof (pState->pIn))
-+ {
-+ char data[4096];
-+ fgets (data, sizeof(data), pState->pIn);
-+ data[4095] = '\0';
-+ if (pState->pIn != stdin)
-+ fprintf (pState->pOut, "%s", data);
-+ if (data[0] == '\n')
-+ break;
-+ sal_uInt32 nWritten;
-+ aStream.writeAt(nOffset, (void *)data, strlen(data), nWritten);
-+ nOffset += strlen(data);
-+ }
-+ aStream.flush();
-+ }
-+ else // cat file
-+ {
-+ nErr = aStream.create (pState->aFile, withSlash (pState->aCurPath),
-+ pArgs->aArgs[1], store_AccessReadOnly);
-+ if (nErr != store_E_None)
-+ fprintf (stderr, "Failed to open file: %s\n", errName (nErr));
-+
-+ sal_uInt32 nSize;
-+ if ((nErr = aStream.getSize (nSize)) != store_E_None)
-+ return nErr;
-+
-+ for (sal_uInt32 i = 0; i < nSize;)
-+ {
-+ char data[4096];
-+ sal_uInt32 nRead;
-+ aStream.readAt(i, data, 4095, nRead);
-+ data[4095] = '\0';
-+ fprintf (pState->pOut, "%s", data);
-+ i += nRead;
-+ }
-+ }
-+ aStream.close();
-+
-+ return store_E_None;
-+}
-+
-+struct Stats {
-+ sal_uInt32 nFiles;
-+ sal_uInt32 nDirs;
-+ sal_uInt32 nLinks;
-+ sal_uInt32 nNameBuckets[32];
-+ sal_uInt32 nSizeBuckets[32];
-+ Stats() : nFiles(0), nDirs(0), nLinks(0)
-+ {
-+ memset (nNameBuckets, 0, sizeof (nNameBuckets));
-+ memset (nSizeBuckets, 0, sizeof (nSizeBuckets));
-+ }
-+};
-+
-+static storeError
-+collateStats (State *pState, Stats *pStats, const rtl::OUString &rPath)
-+{
-+ storeError nErr;
-+ store::OStoreDirectory aDir;
-+
-+ rtl::OUString aPath, aName;
-+ splitPath (rPath, aPath, aName);
-+
-+ dbg_put (rPath);
-+ nErr = aDir.create (pState->aFile, aPath, aName,
-+ store_AccessReadOnly);
-+ if (nErr != store_E_None)
-+ return nErr;
-+
-+ storeFindData aFindData;
-+
-+ sal_Int32 nEntries = 0;
-+
-+ for (nErr = aDir.first(aFindData); nErr == store_E_None;
-+ nErr = aDir.next(aFindData))
-+ {
-+ if (aFindData.m_nAttrib & STORE_ATTRIB_ISDIR)
-+ pStats->nDirs++;
-+ if (aFindData.m_nAttrib & STORE_ATTRIB_ISFILE)
-+ pStats->nFiles++;
-+ if (aFindData.m_nAttrib & STORE_ATTRIB_ISLINK)
-+ pStats->nLinks++;
-+
-+ pStats->nNameBuckets[(int)(log(aFindData.m_nLength)/log(2) + 1)]++;
-+ if (aFindData.m_nAttrib & STORE_ATTRIB_ISFILE)
-+ pStats->nSizeBuckets[(int)(log(aFindData.m_nSize)/log(2) + 1)]++;
-+
-+ if (aFindData.m_nAttrib & STORE_ATTRIB_ISDIR)
-+ {
-+ rtl::OUString aSubDir = withSlash (rPath) +
-+ rtl::OUString (aFindData.m_pszName, aFindData.m_nLength);
-+ if ((nErr = collateStats (pState, pStats, aSubDir)) != store_E_None)
-+ return nErr;
-+ }
-+ }
-+
-+ if (nErr != store_E_NoMoreFiles)
-+ return nErr;
-+
-+ aDir.close();
-+
-+ return store_E_None;
-+}
-+
-+static void
-+printBuckets (State *pState, sal_uInt32 *pBuckets)
-+{
-+ sal_uInt32 nTotal = 0;
-+ sal_uInt32 nMax = 32;
-+ while (!pBuckets[nMax-1])
-+ nMax--;
-+
-+ for (sal_uInt32 i = 0; i < nMax; i++)
-+ nTotal += pBuckets[i];
-+
-+ fprintf (pState->pOut, " bucket - count - percentage\n");
-+ for (sal_uInt32 i = 0; i < nMax; i++)
-+ fprintf (pState->pOut, " 2^%2d - %d - %2.2g\n",
-+ i, pBuckets[i], (double)pBuckets[i]*100.0/nTotal);
-+}
-+
-+static storeError
-+do_stats (State *pState, Arguments *pArgs)
-+{
-+ storeError nErr;
-+ Stats aStats;
-+
-+ if ((nErr = collateStats (pState, &aStats, aPathSep)) != store_E_None)
-+ {
-+ fprintf (stderr, "Error collecting stats %s\n", errName (nErr));
-+ return nErr;
-+ }
-+
-+ fprintf (pState->pOut, "Store statistics:\n");
-+ fprintf (pState->pOut, " %d files\n", aStats.nFiles);
-+ fprintf (pState->pOut, " %d dirs\n", aStats.nDirs);
-+ fprintf (pState->pOut, " %d links\n", aStats.nLinks);
-+
-+ fprintf (pState->pOut, "Sizes:\n");
-+ printBuckets (pState, aStats.nSizeBuckets);
-+ fprintf (pState->pOut, "Name lengths:\n");
-+ printBuckets (pState, aStats.nNameBuckets);
-+
-+ return store_E_None;
-+}
-+
-+static struct {
-+ const char *name;
-+ storeError (*doCommand) (State *pState, Arguments *pArgs);
-+} aCommands[] = {
-+ { "cat", do_cat },
-+ { "cd", do_cd },
-+ { "exit", do_exit },
-+ { "ls", do_ls },
-+ { "mkdir", do_mkdir },
-+ { "pwd", do_pwd },
-+ { "quit", do_exit },
-+ { "stats", do_stats },
-+ { NULL, NULL }
-+};
-+
-+static void
-+parseArgs (const char *args, Arguments *pArgs)
-+{
-+ sal_Int32 i;
-+ sal_Int32 nOffset = 0;
-+
-+ rtl::OString aCmd(args);
-+ for (i = 0; nOffset >= 0 ; i++)
-+ {
-+ nOffset = 0;
-+ pArgs->aArgs[i] = rtl::OStringToOUString(aCmd.getToken(i, ' ', nOffset),
-+ RTL_TEXTENCODING_UTF8);
-+ }
-+ pArgs->nArgs = i;
-+#if 0
-+ fprintf (stderr, "Args:\n");
-+ for (i = 0; i < pArgs->nArgs; i++)
-+ {
-+ rtl::OString aArg = rtl::OUStringToOString(pArgs->aArgs[i],
-+ RTL_TEXTENCODING_UTF8);
-+ fprintf (stderr, "Arg %d: '%s'\n", i, (const sal_Char *)aArg);
-+ }
-+#endif
-+}
-+
-+static void
-+help()
-+{
-+ fprintf (stderr, "t_shell <store-file> [command file]\n");
-+ exit (1);
-+}
-+
-+
-+int SAL_CALL
-+main (int argc, char **argv)
-+{
-+ State aState;
-+ storeError nErr = store_E_None;
-+
-+ if (argc < 2)
-+ help();
-+
-+ rtl::OUString aFileName (argv[1], strlen (argv[1]),
-+ RTL_TEXTENCODING_UTF8);
-+ if ((nErr = aState.aFile.create (aFileName, store_AccessReadCreate)) != store_E_None)
-+ {
-+ fprintf (stderr, "Couldn't open store file '%s' : %s\n", argv[1], errName (nErr));
-+ return 1;
-+ }
-+
-+ // Create root directory ... without this -really bad- things happen.
-+ store::OStoreDirectory rStoreDir;
-+ nErr = rStoreDir.create(aState.aFile,
-+ rtl::OUString(),
-+ rtl::OUString(),
-+ store_AccessReadCreate);
-+ if (nErr != store_E_None)
-+ {
-+ fprintf (stderr, "Failed to create root directory %s\n",
-+ errName (nErr));
-+ exit (1);
-+ }
-+
-+ if (argc > 2)
-+ {
-+ aState.pIn = fopen(argv[argc-1], "r");
-+ if (!aState.pIn) help();
-+ }
-+
-+ Arguments aArgs;
-+
-+ while (!feof (aState.pIn) && !aState.bExit)
-+ {
-+ rtl::OString aPath = rtl::OUStringToOString(aState.aCurPath,
-+ RTL_TEXTENCODING_UTF8);
-+ fprintf (aState.pOut, "%s > ", (const sal_Char *) aPath);
-+ fflush (aState.pOut);
-+
-+ char command[4096];
-+ fgets (command, sizeof(command), aState.pIn);
-+ command[4095] = '\0';
-+ if (strchr (command, '\n'))
-+ *strchr (command, '\n') = '\0';
-+ if (aState.pIn != stdin)
-+ fprintf (aState.pOut, "%s\n", command);
-+
-+ // tokenize args
-+ parseArgs (command, &aArgs);
-+ if (!aArgs.nArgs)
-+ continue;
-+
-+ for (int i = 0; aCommands[i].name; i++)
-+ {
-+ if (aArgs.aArgs[0].equalsAscii (aCommands[i].name))
-+ {
-+ // FIXME - warn on errors
-+ nErr = aCommands[i].doCommand (&aState, &aArgs);
-+ }
-+ }
-+ }
-+
-+ aState.aFile.close();
-+
-+ return 0;
-+}
diff --git a/patches/test/vba-export-dir.diff b/patches/test/vba-export-dir.diff
deleted file mode 100644
index 2a7366084..000000000
--- a/patches/test/vba-export-dir.diff
+++ /dev/null
@@ -1,1126 +0,0 @@
---- /dev/null 2003-09-23 18:59:22.000000000 +0100
-+++ svx/source/msfilter/msvbasicdir.cxx 2004-03-31 13:43:42.000000000 +0100
-@@ -0,0 +1,1039 @@
-+#include <string.h> // memset(), ...
-+#ifndef UNX
-+#include <io.h> // access()
-+#endif
-+#ifndef _SFX_OBJSH_HXX
-+#include <sfx2/objsh.hxx>
-+#endif
-+#ifndef _SFXAPP_HXX
-+#include <sfx2/app.hxx>
-+#endif
-+#ifndef _BASMGR_HXX
-+#include <basic/basmgr.hxx>
-+#endif
-+#ifndef _SB_SBMOD_HXX
-+#include <basic/sbmod.hxx>
-+#endif
-+#ifndef _SVXERR_HXX
-+#include <svxerr.hxx>
-+#endif
-+#ifndef _SOT_STORINFO_HXX
-+#include <sot/storinfo.hxx>
-+#endif
-+#ifndef _MSVBASIC_HXX
-+#include "msvbasicdir.hxx"
-+#endif
-+
-+#include <com/sun/star/container/XNameContainer.hpp>
-+#include <com/sun/star/script/XLibraryContainer.hpp>
-+using namespace com::sun::star::container;
-+using namespace com::sun::star::script;
-+using namespace com::sun::star::uno;
-+using namespace com::sun::star::lang;
-+using namespace rtl;
-+
-+#define nWINDOWLEN 4096
-+
-+static unsigned int
-+getShift( ULONG nPos )
-+{
-+ if (nPos <= 0x80) {
-+ if (nPos <= 0x20)
-+ return (nPos <= 0x10) ? 12 : 11;
-+ else
-+ return (nPos <= 0x40) ? 10 : 9;
-+ } else {
-+ if (nPos <= 0x200)
-+ return (nPos <= 0x100) ? 8 : 7;
-+ else if (nPos <= 0x800)
-+ return (nPos <= 0x400) ? 6 : 5;
-+ else
-+ return 4;
-+ }
-+}
-+
-+struct CompressBuffer {
-+ // buffer for match making
-+ UINT8 mpBuffer[ nWINDOWLEN ];
-+ ULONG mnLength;
-+
-+ // output buffering
-+ SvStream *mpOutput;
-+ UINT8 mnMask;
-+ UINT8 maBlock[16];
-+ UINT8 mnBlockLength;
-+ UINT8 mnShift;
-+
-+ CompressBuffer( SvStream *pOutput )
-+ {
-+ memset( mpBuffer, 0, sizeof( mpBuffer ) );
-+ mnLength = 0;
-+ mnBlockLength = 0;
-+ mpOutput = pOutput;
-+ mnShift = 0;
-+ mnMask = 0;
-+ }
-+
-+ void
-+ flush()
-+ {
-+ if( mnBlockLength ) {
-+ *mpOutput << mnMask;
-+ mpOutput->Write( maBlock, mnBlockLength );
-+ mnBlockLength = 0;
-+ mnMask = mnShift = 0;
-+ }
-+ }
-+
-+ void outputData( UINT8 *pData, bool bCompressed )
-+ {
-+ if (bCompressed)
-+ {
-+ mnMask |= 1 << mnShift;
-+ maBlock[ mnBlockLength++ ] = pData[0];
-+ maBlock[ mnBlockLength++ ] = pData[1];
-+ }
-+ else
-+ maBlock[ mnBlockLength++ ] = pData[0];
-+
-+ if( ++mnShift == 8)
-+ flush();
-+ }
-+
-+ void
-+ outputMatch( ULONG nCurPos, ULONG nMatchPos, ULONG nLength )
-+ {
-+ ULONG nShift, nToken, nDistance;
-+ UINT8 aData[2];
-+
-+ nShift = getShift( nCurPos );
-+
-+ nDistance = nCurPos - nMatchPos - 1;
-+ nToken = (nDistance << nShift) + ((nLength - 3) & ((1<<nShift)-1));
-+
-+ aData[0] = nToken & 0xff;
-+ aData[1] = nToken >> 8;
-+
-+ outputData( aData, TRUE );
-+ }
-+
-+ int /* Unbelievably slow, but ... */
-+ findMatch (ULONG nPos, ULONG &rnLen)
-+ {
-+ int i;
-+ ULONG max_match = (1 << getShift( nPos ) ) - 1;
-+
-+ /* FIXME: the MS impl. does different to a linear search here
-+ and is not very good at this either; is happy to get much
-+ worse matches; perhaps some single-entry match lookup table ?
-+ it seems to ~regularly truncate strings, and get earlier
-+ / later matches of equivalent length with no predictability
-+ ( hashing ? ).
-+ */
-+ for (i = nPos - 1; i >= 0; i--)
-+ {
-+ int j;
-+
-+ for (j = 0; j < mnLength - nPos && j < nPos; j++)
-+ if (mpBuffer[nPos + j] != mpBuffer[i + j])
-+ break;
-+
-+ if (j >= 3)
-+ {
-+ if( j > max_match )
-+ j = max_match;
-+ rnLen = j;
-+ return i;
-+ }
-+ }
-+ return -1;
-+ }
-+
-+ bool
-+ readBlock( SvStream *pInStream )
-+ {
-+ mnLength = pInStream->Read( mpBuffer, nWINDOWLEN );
-+ return mnLength > 0;
-+ }
-+};
-+
-+static void
-+compressBlock( CompressBuffer &rBuffer )
-+{
-+ ULONG nPos, nMatchLen;
-+ int nMatchPos;
-+
-+ for (nPos = 0; nPos < rBuffer.mnLength;)
-+ {
-+ if ((nMatchPos = rBuffer.findMatch( nPos, /* ref */ nMatchLen )) >= 0)
-+ {
-+ rBuffer.outputMatch( nPos, nMatchPos, nMatchLen );
-+ nPos += nMatchLen;
-+ }
-+ else
-+ rBuffer.outputData( &(rBuffer.mpBuffer[ nPos++ ]), FALSE );
-+ }
-+}
-+namespace MSLZSS {
-+
-+void compressStream( SvStream *pStream, SvStream *pInStream )
-+{
-+ ULONG nStartPos = pStream->Tell();
-+ pStream->Seek( nStartPos + 3 );
-+ CompressBuffer aBuffer( pStream );
-+
-+ while( aBuffer.readBlock( pInStream ) )
-+ compressBlock( aBuffer );
-+ aBuffer.flush();
-+
-+ ULONG nSize = pStream->Tell() - nStartPos;
-+ ULONG nLength = nSize - 3 - 1;
-+
-+ if( nLength > 0x0c0c ) /* TESTME: really right ? */
-+ nLength = 0x0c0c; /* follow-on chunk sizes ? */
-+
-+ pStream->Seek( nStartPos );
-+ *pStream << UINT8(0x01);
-+ *pStream << UINT8( nLength & 0xff);
-+ *pStream << UINT8( nLength >> 8 | 0xb0 );
-+}
-+
-+void
-+compressString( SvStream *pStream, const OString &rString )
-+{
-+ SvMemoryStream aStream( (void *) rString.getStr(), rString.getLength(), STREAM_READ );
-+ compressStream( pStream, &aStream );
-+}
-+
-+SvMemoryStream *decompressAsStream( SvStream *pStream, ULONG nOffset, ULONG *pCompressedLength, ULONG *pLength )
-+{
-+ SvMemoryStream *pResult;
-+
-+ pResult = new SvMemoryStream();
-+
-+ sal_uInt8 nLeadbyte;
-+ unsigned int nPos = 0;
-+ int nLen, nDistance, nShift, nClean=1;
-+ sal_uInt8 aHistory[ nWINDOWLEN ];
-+
-+ pStream->Seek( nOffset + 3 );
-+
-+ while( pStream->Read( &nLeadbyte, 1 ) )
-+ {
-+ for(int nMask=0x01; nMask < 0x100; nMask = nMask<<1)
-+ {
-+ // we see if the leadbyte has flagged this location as a dataunit
-+ // which is actually a token which must be looked up in the history
-+ if( nLeadbyte & nMask )
-+ {
-+ sal_uInt16 nToken;
-+
-+ *pStream >> nToken;
-+
-+ if (nClean == 0)
-+ nClean=1;
-+
-+ //For some reason the division of the token into the length
-+ //field of the data to be inserted, and the distance back into
-+ //the history differs depending on how full the history is
-+ nShift = getShift( nPos % nWINDOWLEN );
-+
-+ nLen = (nToken & ((1<<nShift) - 1)) + 3;
-+ nDistance = nToken >> nShift;
-+
-+ //read the len of data from the history, wrapping around the
-+ //nWINDOWLEN boundary if necessary data read from the history
-+ //is also copied into the recent part of the history as well.
-+ for (int i = 0; i < nLen; i++)
-+ {
-+ unsigned char c;
-+ c = aHistory[(nPos-nDistance-1) % nWINDOWLEN];
-+ aHistory[nPos % nWINDOWLEN] = c;
-+ nPos++;
-+ }
-+ }
-+ else
-+ {
-+ // special boundary case code, not guarantueed to be correct
-+ // seems to work though, there is something wrong with the
-+ // compression scheme (or maybe a feature) where when the data
-+ // ends on a nWINDOWLEN boundary and the excess bytes in the 8
-+ // dataunit list are discarded, and not interpreted as tokens
-+ // or normal data.
-+ if ((nPos != 0) && ((nPos % nWINDOWLEN) == 0) && (nClean))
-+ {
-+ pStream->SeekRel(2);
-+ nClean=0;
-+ pResult->Write( aHistory, nWINDOWLEN );
-+ break;
-+ }
-+ //This is the normal case for when the data unit is not a
-+ //token to be looked up, but instead some normal data which
-+ //can be output, and placed in the history.
-+ if (pStream->Read(&aHistory[nPos % nWINDOWLEN],1))
-+ nPos++;
-+
-+ if (nClean == 0)
-+ nClean=1;
-+ }
-+ }
-+ }
-+ if (nPos % nWINDOWLEN)
-+ pResult->Write( aHistory, nPos % nWINDOWLEN );
-+ pResult->Flush();
-+
-+ if( pCompressedLength )
-+ *pCompressedLength = nPos;
-+
-+ if( pLength )
-+ *pLength = pResult->Tell();
-+
-+#if 0
-+ {
-+ fprintf( stderr, "Decompressed stream: %d bytes, size: %d\n",
-+ pResult->Tell(), pResult->GetSize() );
-+ pResult->Seek( 0 );
-+ UINT8 aData[8];
-+ ULONG nUrk = 0;
-+ UINT8 nCnt;
-+ while( ( nCnt = pResult->Read( aData, 8 ) ) > 0 )
-+ {
-+ int i;
-+ fprintf( stderr, "%.8x : ", nUrk);
-+ nUrk += nCnt;
-+ for( i = 0; i < nCnt; i++ )
-+ fprintf( stderr, "%.2x ", aData[i] );
-+
-+ fprintf( stderr," | " );
-+ for( i = 0; i < nCnt; i++ )
-+ fprintf( stderr, "%c", aData[i] >= 0x20 ? aData[i] : '.' );
-+ fprintf( stderr, "\n" );
-+ }
-+ }
-+#endif
-+
-+ pResult->Seek( 0 );
-+
-+ return pResult;
-+}
-+
-+OString decompressAsString( SvStream *pStream, ULONG nOffset, ULONG *pCompressedLength, ULONG *pLength )
-+{
-+ ULONG nResultLength;
-+ SvMemoryStream *pResultStream = decompressAsStream( pStream, nOffset, pCompressedLength, &nResultLength );
-+
-+ // Isn't it just marvelous that SvMemoryStream has no sensible 'size'
-+ // method that returns nEndOfData [!]
-+ if( pLength )
-+ *pLength = nResultLength;
-+
-+ OString aResult( (const sal_Char *)pResultStream->GetData(), nResultLength );
-+ delete pResultStream;
-+ return aResult;
-+}
-+
-+}; /* End MSLZSS */
-+
-+static void
-+stripAttributes( OUString &rVBA, bool bIsMac )
-+{
-+ const sal_Unicode cLineEnd = bIsMac ? '\x0D' : '\x0A';
-+ const rtl::OUString sAttribute( OUString::createFromAscii( "Attribute" ) );
-+ while( rVBA.indexOf( sAttribute ) == 0 )
-+ {
-+ sal_Int32 nEnd = rVBA.indexOf( cLineEnd );
-+ if( nEnd == -1 )
-+ break;
-+ rVBA = rVBA.copy( nEnd + 1 );
-+ }
-+}
-+
-+static void
-+commentSource( OUString &rVBA, const OUString &rName, bool bIsMac )
-+{
-+ OUString sTempStringa(OUString::createFromAscii(
-+ bIsMac ? "\x0D": "\x0D\x0A"));
-+ OUString sTempStringb( sTempStringa );
-+ OUString sTempRem = OUString::createFromAscii( "Rem " );
-+ sTempStringb += sTempRem;
-+ sal_Int32 nFromIndex = 0;
-+ sal_Int32 nToIndex = -1;
-+ while( (nToIndex = rVBA.indexOf( sTempStringa, nFromIndex ) ) != -1 )
-+ {
-+ rVBA = rVBA.replaceAt( nToIndex, sTempStringa.getLength(), sTempStringb);
-+ nFromIndex = nToIndex += sTempStringb.getLength();
-+ }
-+ rVBA = sTempRem + rVBA;
-+
-+ // Streams can have spaces in them, but modulenames
-+ // cannot !
-+ rtl::OUString sTemp( rtl::OUString::createFromAscii( "Sub " ) );
-+ sTemp += rName.replace( sal_Unicode(' '), sal_Unicode('_') );
-+ sTemp += OUString::createFromAscii("\n");
-+ rVBA = sTemp + rVBA;
-+ rVBA += OUString::createFromAscii("\nEnd Sub");
-+}
-+
-+struct DirTokenizer {
-+ SvStream *mpStream;
-+ UINT16 mnToken;
-+ UINT32 mnLength;
-+ UINT32 mnConsumed;
-+ bool mnbEof;
-+
-+ DirTokenizer( SvStream *pStream ) :
-+ mpStream(pStream), mnToken(0),
-+ mnLength(0), mnConsumed(0),
-+ mnbEof(false) {}
-+ ~DirTokenizer() {}
-+
-+ bool
-+ nextToken()
-+ {
-+ mpStream->SeekRel( mnLength - mnConsumed );
-+
-+ mnToken = mnLength = mnConsumed = 0;
-+
-+ // Seeking clears the eof marker - so read first ...
-+ *mpStream >> mnToken;
-+ if( mpStream->IsEof() )
-+ return !(mnbEof = true);
-+
-+ *mpStream >> mnLength;
-+ if( mpStream->IsEof() )
-+ return !(mnbEof = true);
-+
-+ if( mnToken == VBA_DIR_OP_PAPER_SIZE ) /* Quirk */
-+ mnLength += 2;
-+
-+ fprintf( stderr, "Next token 0x%x (%d long)\n",
-+ mnToken, mnLength );
-+
-+ return true;
-+ }
-+
-+ bool
-+ isEof()
-+ {
-+ return mnbEof;
-+ }
-+
-+ UINT32
-+ getLong()
-+ {
-+ UINT32 nResult;
-+ mnConsumed += 4;
-+ *mpStream >> nResult;
-+ return nResult;
-+ }
-+
-+ UINT16
-+ getShort()
-+ {
-+ UINT16 nResult;
-+ mnConsumed += 2;
-+ *mpStream >> nResult;
-+ return nResult;
-+ }
-+
-+ OUString
-+ getUString()
-+ {
-+ sal_Unicode aData[ ( mnLength + 1 ) / 2 ];
-+ mpStream->Read( aData, mnLength );
-+ mnConsumed += mnLength;
-+ return OUString( aData, mnLength/2 );
-+ }
-+
-+ OUString
-+ getString()
-+ {
-+ sal_Char aData[ mnLength ];
-+ mpStream->Read( aData, mnLength );
-+ mnConsumed += mnLength;
-+ return OUString( aData, mnLength, RTL_TEXTENCODING_MS_1252 );
-+ }
-+
-+ Reference< XNameContainer >
-+ parseHeader( const Reference< XLibraryContainer > &xLibContainer )
-+ {
-+ OUString aProjectName = OUString::createFromAscii( "Standard" );
-+ Reference< XNameContainer > xLib;
-+
-+ if( !xLibContainer.is() )
-+ return xLib;
-+
-+ // Parse the header
-+ while( nextToken() && mnToken != VBA_DIR_SHORT_OBJECT_COUNT )
-+ {
-+ switch( mnToken )
-+ {
-+ case VBA_DIR_STR_PROJECT_NAME:
-+// aProjectName = getString(); - this causes export grief.
-+ break;
-+ }
-+ }
-+
-+ if( !mnToken )
-+ return xLib;
-+
-+ fprintf( stderr, "CreateLibrary: '%s'\n",
-+ (const sal_Char *) rtl::OUStringToOString(
-+ aProjectName, RTL_TEXTENCODING_UTF8 ) );
-+
-+ if( !xLibContainer->hasByName( aProjectName ) )
-+ xLibContainer->createLibrary( aProjectName );
-+
-+ Any aLibAny = xLibContainer->getByName( aProjectName );
-+ aLibAny >>= xLib;
-+
-+ return xLib;
-+ }
-+
-+ bool
-+ readObject( const SvStorageRef &xStorage,
-+ Reference< XNameContainer > &xLib,
-+ bool bStripped, bool bAsComment)
-+ {
-+ OUString aName;
-+ ULONG nOffset = 0;
-+ OUString aStreamName;
-+
-+ while( nextToken() && mnToken != VBA_DIR_OBJECT_END )
-+ {
-+ switch( mnToken )
-+ {
-+ case VBA_DIR_STR_USER_NAME:
-+ aName = getString();
-+ break;
-+ case VBA_DIR_USTR_USER_NAME:
-+ aName = getUString();
-+ break;
-+ case VBA_DIR_STR_STREAM_NAME:
-+ aStreamName = getString();
-+ break;
-+ case VBA_DIR_USTR_STREAM_NAME:
-+ aStreamName = getUString();
-+ break;
-+ case VBA_DIR_LONG_VBA_OFFSET:
-+ nOffset = getLong();
-+ break;
-+ default:
-+ break;
-+ }
-+ }
-+ if( aStreamName.getLength() )
-+ {
-+ fprintf( stderr, "Open stream: '%s' (0x%x)\n",
-+ (const sal_Char *) rtl::OUStringToOString(
-+ aStreamName, RTL_TEXTENCODING_UTF8 ),
-+ nOffset );
-+
-+ SotStorageStreamRef xVBA;
-+
-+ xVBA = xStorage->OpenSotStream( aStreamName, STREAM_STD_READ );
-+ if( !xVBA.Is() )
-+ {
-+ fprintf( stderr, "Failed to open stream\n" );
-+ return false;
-+ }
-+
-+ OUString sSource = OStringToOUString(
-+ MSLZSS::decompressAsString( xVBA, nOffset ),
-+ RTL_TEXTENCODING_MS_1252 );
-+
-+ bool bIsMac = false; /* FIXME */
-+ if( bStripped )
-+ stripAttributes( sSource, bIsMac );
-+ if( bAsComment )
-+ commentSource( sSource, aName, bIsMac );
-+
-+ if( sSource.getLength() <= 0 )
-+ return true;
-+
-+ rtl::OUString aModName( aName );
-+ Any aSourceAny;
-+ aSourceAny <<= sSource;
-+ if (xLib->hasByName(aModName))
-+ xLib->replaceByName(aModName, aSourceAny);
-+ else
-+ xLib->insertByName(aModName, aSourceAny);
-+
-+ return true;
-+ }
-+ else
-+ fprintf( stderr, "Duff stream name\n" );
-+ }
-+};
-+
-+VBADir::VBADir( SvStorageRef &xProjectStorage, SvStorageRef &xStorage ) :
-+ mxStorage( xStorage ), mxProjectStorage( xProjectStorage )
-+{
-+}
-+
-+VBADir::~VBADir()
-+{
-+}
-+
-+bool
-+VBADir::readBasic( SfxObjectShell &rDocSh, bool bAsComment, bool bStripped )
-+{
-+ bool bRet = false;
-+ SotStorageStreamRef xDir;
-+
-+ // Clobber
-+ bAsComment = false;
-+
-+ xDir = mxStorage->OpenSotStream( OUString::createFromAscii( "dir"),
-+ STREAM_STD_READ );
-+ if( !xDir.Is() )
-+ {
-+ DBG_WARNING( "No 'dir' stream" );
-+ return FALSE;
-+ }
-+
-+ SvMemoryStream *pPlain = MSLZSS::decompressAsStream( xDir, 0 );
-+ if( !pPlain )
-+ {
-+ DBG_WARNING( "Failed to decompress 'dir' stream" );
-+ return FALSE;
-+ }
-+
-+ SFX_APP()->EnterBasicCall();
-+
-+ Reference< XLibraryContainer > xLibContainer = rDocSh.GetBasicContainer();
-+
-+ DirTokenizer aTok( pPlain );
-+ Reference< XNameContainer > xLib;
-+
-+ xLib = aTok.parseHeader( xLibContainer );
-+ if( !xLib.is() )
-+ {
-+ DBG_WARNING( "Broken header /library" );
-+ return FALSE;
-+ }
-+
-+ // Parse the objects
-+ USHORT nItems = aTok.getShort();
-+ for( USHORT nItem = 0; nItem < nItems && !aTok.isEof(); nItem++)
-+ aTok.readObject( mxStorage, xLib, bStripped, bAsComment );
-+
-+ bRet = true;
-+ delete pPlain;
-+
-+ SFX_APP()->LeaveBasicCall();
-+
-+ return bRet;
-+}
-+
-+void
-+VBADir::deleteSRPs()
-+{
-+ SvStorageInfoList aInfoList;
-+
-+ mxStorage->FillInfoList( &aInfoList );
-+
-+ // Remove highly version specific compiled VBA streams
-+ for( ULONG i = 0; i < aInfoList.Count(); i++ )
-+ {
-+ SvStorageInfo& rInfo = aInfoList[i];
-+
-+ if( rInfo.IsStream() &&
-+ rInfo.GetName().EqualsAscii( "__SRP_", 0, 6 ) )
-+ mxStorage->Remove( rInfo.GetName() );
-+ }
-+}
-+
-+void
-+VBADir::clobberProject()
-+{
-+ SotStorageStreamRef xProject;
-+
-+ xProject = mxStorage->OpenSotStream( OUString::createFromAscii( "_VBA_PROJECT" ),
-+ STREAM_STD_WRITE );
-+ if( !xProject.Is() )
-+ {
-+ DBG_WARNING( "Failed to clobber VBA project" );
-+ return;
-+ }
-+
-+ UINT8 nMagicVersion = 0xa0;
-+ UINT8 nData[8] = { 0xcc, 0x61, 0x00, 0, 0,1,0,0 };
-+ UINT8 nZeros[8] = { 0,0,0,0, 0,0,0,0 };
-+ nData[2] = nMagicVersion;
-+
-+ xProject->Seek( 0 );
-+ xProject->Write( nData, 8 );
-+ xProject->Write( nZeros, 8 );
-+ xProject->Write( nZeros, 8 );
-+ for (int i = 0; i < 100; i++)
-+ xProject->Write( nZeros, 8 );
-+ xProject->Flush();
-+}
-+
-+struct DirOutput {
-+ SvStream *mpStream;
-+
-+ DirOutput( SvStream *pDirStream ) :
-+ mpStream( pDirStream ) {}
-+ ~DirOutput() {}
-+
-+ void
-+ writeLong( UINT16 nToken, UINT32 nLong )
-+ {
-+ *mpStream << nToken;
-+ *mpStream << UINT32(4);
-+ *mpStream << nLong;
-+ }
-+
-+ void
-+ writeShort( UINT16 nToken, UINT16 nShort )
-+ {
-+ *mpStream << nToken;
-+ *mpStream << UINT32(2);
-+ *mpStream << nShort;
-+ }
-+
-+ void
-+ writeUString( UINT16 nToken, const OUString &rString )
-+ {
-+ *mpStream << nToken;
-+ *mpStream << UINT32( rString.getLength() * 2 );
-+ mpStream->Write( (const sal_Unicode *)rString,
-+ rString.getLength() * 2 );
-+ }
-+
-+ void
-+ writeString( UINT16 nToken, const OString &rString )
-+ {
-+ *mpStream << nToken;
-+ *mpStream << UINT32( rString.getLength() );
-+ mpStream->Write( (const sal_Char *)rString,
-+ rString.getLength() );
-+ }
-+
-+ void
-+ writeUStringPair( UINT16 nPlainToken, UINT16 nUniToken, const OUString &rString )
-+ {
-+ writeString( nPlainToken, OUStringToOString( rString, RTL_TEXTENCODING_MS_1252 ) );
-+ writeUString( nUniToken, rString );
-+ }
-+
-+ void
-+ writeHeader()
-+ {
-+ writeLong( VBA_DIR_LONG_START, 1 );
-+ writeLong( VBA_DIR_LONG_ENCODING_1, 0x409 );
-+ writeLong( VBA_DIR_LONG_ENCODING_2, 0x409 );
-+ writeShort( VBA_DIR_SHORT_VERSION_1, 0x4e4 );
-+ writeString( VBA_DIR_STR_PROJECT_NAME, OString( "ProjectFoo" ) );
-+ writeUStringPair( VBA_DIR_STR_DESCRIPTION,
-+ VBA_DIR_USTR_DESCRIPTION, OUString() );
-+ writeUStringPair( VBA_DIR_STR_HELP_FILENAME,
-+ VBA_DIR_USTR_HELP_FILENAME, OUString() );
-+ writeLong( VBA_DIR_LONG_HELP_CTXT_ID, 0 );
-+ writeLong( VBA_DIR_LONG_UNKNOWN_0x08, 0 );
-+
-+ // Whacked out 0x09 token:
-+ *mpStream << UINT16( VBA_DIR_OP_PAPER_SIZE );
-+ *mpStream << UINT32( 6 - 2 ); // totally magic: A4
-+ *mpStream << UINT16( 0x4b0 ) << UINT16( 0x419a ) << UINT16( 0x34 );
-+
-+ writeUStringPair( VBA_DIR_STR_COND_COMP_ARGS,
-+ VBA_DIR_USTR_COND_COMP_ARGS, OUString() );
-+
-+/* // Magic libraries we use
-+ writeString( VBA_DIR_STR_STREAM_TYPE, OString( "stdole" ) );
-+ writeUString( VBA_DIR_USTR_STREAM_TYPE,
-+ OUString::createFromAscii( "stdole" ) ); */
-+ }
-+
-+ void
-+ writeModuleCount( ULONG nModules )
-+ {
-+ writeShort( VBA_DIR_SHORT_OBJECT_COUNT, nModules );
-+ writeShort( VBA_DIR_SHORT_UNKNOWN_0x13, 0x7384 ); // Concerning ...
-+ }
-+
-+ void
-+ writeFlag( UINT16 nToken )
-+ {
-+ *mpStream << UINT16( nToken );
-+ *mpStream << UINT32( 0 );
-+ }
-+
-+ void
-+ writeEnd()
-+ {
-+ writeFlag( VBA_DIR_FLAG_END );
-+ mpStream->Flush();
-+ }
-+
-+ void
-+ writeModule( const OUString &rName, const OUString &rSource, bool bDocument = false )
-+ {
-+ writeUStringPair( VBA_DIR_STR_USER_NAME,
-+ VBA_DIR_USTR_USER_NAME, rName );
-+ writeUStringPair( VBA_DIR_STR_STREAM_NAME,
-+ VBA_DIR_USTR_STREAM_NAME, rName );
-+ writeUStringPair( VBA_DIR_STR_UNKNOWN_0x1c,
-+ VBA_DIR_USTR_UNKNOWN_0x48, OUString() );
-+ // Our streams start after 16 bytes of padded 0s ( to please Office97 )
-+ writeLong( VBA_DIR_LONG_VBA_OFFSET, 0x10 );
-+ writeLong( VBA_DIR_LONG_UNKNOWN_0x1e, 0x0 );
-+ writeShort( VBA_DIR_SHORT_UNKNOWN_0x2c, 0x3672 ); // Concerning ...
-+ if( bDocument )
-+ writeFlag( VBA_DIR_FLAG_DOCUMENT );
-+ else
-+ writeFlag( VBA_DIR_FLAG_MACRO );
-+ writeFlag( VBA_DIR_OBJECT_END );
-+ }
-+
-+ void
-+ writeHack()
-+ { // a hack - these are the hard-coded names from the 'CODENAME'
-+ // records in the Excel stream.
-+ OUString aName = rtl::OUString::createFromAscii( "ThisWorkbook" );
-+ writeModule( aName, aName, true );
-+ aName = rtl::OUString::createFromAscii( "Sheet1" );
-+ writeModule( aName, aName, true );
-+ aName = rtl::OUString::createFromAscii( "Sheet2" );
-+ writeModule( aName, aName, true );
-+ aName = rtl::OUString::createFromAscii( "Sheet3" );
-+ writeModule( aName, aName, true );
-+ }
-+};
-+
-+struct ProjectOutput {
-+ SotStorageStreamRef mxProject;
-+ SotStorageStreamRef mxProjectWm;
-+
-+ ProjectOutput() {}
-+ ~ProjectOutput() {}
-+
-+ bool initialize( const SvStorageRef &xStorage )
-+ {
-+ mxProject = xStorage->OpenSotStream(
-+ rtl::OUString::createFromAscii( "PROJECT" ),
-+ STREAM_STD_WRITE );
-+ mxProjectWm = xStorage->OpenSotStream(
-+ rtl::OUString::createFromAscii( "PROJECTwm" ),
-+ STREAM_STD_WRITE );
-+
-+ return mxProject.Is() && mxProjectWm.Is();
-+ }
-+
-+ void writeString( const OString &rString )
-+ {
-+ OString sTempStringa( "\n" );
-+ OString sTempStringb( "\x0D\x0A" );
-+ OString sOutput = rString;
-+
-+ sal_Int32 nFromIndex = 0;
-+ sal_Int32 nToIndex = -1;
-+ while( (nToIndex = sOutput.indexOf( sTempStringa, nFromIndex ) ) != -1 )
-+ {
-+ sOutput = sOutput.replaceAt( nToIndex, sTempStringa.getLength(), sTempStringb);
-+ nFromIndex = nToIndex += sTempStringb.getLength();
-+ }
-+ mxProject->Write( (const sal_Char *) sOutput, sOutput.getLength() );
-+ }
-+
-+ void writeModule( const OUString &rName, bool bDocument = false )
-+ {
-+ OString sName = OUStringToOString( rName, RTL_TEXTENCODING_MS_1252 );
-+ if( bDocument )
-+ writeString( "Document=" );
-+ else
-+ writeString( "Module=" );
-+ writeString( sName );
-+ if( bDocument )
-+ writeString( "/&H00000000" );
-+ writeString( "\n" );
-+ mxProjectWm->Write( (const sal_Char *) sName, sName.getLength() );
-+ *mxProjectWm << UINT8( 0 );
-+ mxProjectWm->Write( (const sal_Unicode *) rName, rName.getLength() * 2);
-+ *mxProjectWm << UINT16( 0 );
-+ }
-+
-+ void writeHeader()
-+ {
-+ writeString("ID=\"{33C90A8B-9E30-406E-BC0F-D2863F9025D7}\"\n");
-+ }
-+
-+ void writeModules( Sequence<OUString> &rNames )
-+ {
-+ int i;
-+ for (i = 0; i < rNames.getLength(); i++)
-+ writeModule( rNames[i] );
-+ }
-+
-+ void writeHack()
-+ {
-+ OUString aName = rtl::OUString::createFromAscii( "ThisWorkbook" );
-+ writeModule( aName, true );
-+ aName = rtl::OUString::createFromAscii( "Sheet1" );
-+ writeModule( aName, true );
-+ aName = rtl::OUString::createFromAscii( "Sheet2" );
-+ writeModule( aName, true );
-+ aName = rtl::OUString::createFromAscii( "Sheet3" );
-+ writeModule( aName, true );
-+ }
-+
-+ void writeEnd()
-+ {
-+ *mxProjectWm << UINT16( 0 );
-+
-+ mxProject->Flush();
-+ mxProjectWm->Flush();
-+ }
-+};
-+
-+void
-+VBADir::writeModule( const OUString &rName, const OUString &rSource )
-+{
-+ SvStorageStreamRef xStream;
-+ xStream = mxStorage->OpenSotStream( rName, STREAM_STD_WRITE );
-+
-+ OString sSource = OUStringToOString( rSource, RTL_TEXTENCODING_MS_1252 );
-+ UINT8 aData[16] = { 0, };
-+ xStream->Write( aData, 16 );
-+
-+ OString sAttribute = "Attribute VB_Name = \"" + OUStringToOString( rName, RTL_TEXTENCODING_MS_1252 ) + "\"\r\n";
-+ sSource = sAttribute + sSource;
-+
-+ MSLZSS::compressString( xStream, sSource );
-+}
-+
-+static void
-+writeHackStreams( SvStorageRef xStorage)
-+{
-+ SvStorageStreamRef xStream;
-+
-+ xStream = xStorage->OpenSotStream( OUString::createFromAscii( "ThisWorkbook"),
-+ STREAM_STD_WRITE );
-+ UINT8 aData[16] = { 0, };
-+ xStream->Write( aData, 16 );
-+ MSLZSS::compressString( xStream, "Attribute VB_Base = \"0{00020819-0000-0000-C000-000000000046}\"" );
-+
-+ xStream = xStorage->OpenSotStream( OUString::createFromAscii( "Sheet1"),
-+ STREAM_STD_WRITE );
-+ xStream->Write( aData, 16 );
-+ MSLZSS::compressString( xStream, "Attribute VB_Base = \"0{00020820-0000-0000-C000-000000000046}\"" );
-+
-+ xStream = xStorage->OpenSotStream( OUString::createFromAscii( "Sheet2"),
-+ STREAM_STD_WRITE );
-+ xStream->Write( aData, 16 );
-+ MSLZSS::compressString( xStream, "Attribute VB_Base = \"0{00020820-0000-0000-C000-000000000046}\"" );
-+
-+ xStream = xStorage->OpenSotStream( OUString::createFromAscii( "Sheet3"),
-+ STREAM_STD_WRITE );
-+ xStream->Write( aData, 16 );
-+ MSLZSS::compressString( xStream, "Attribute VB_Base = \"0{00020820-0000-0000-C000-000000000046}\"" );
-+}
-+
-+bool
-+VBADir::writeBasic( SfxObjectShell &rDocSh )
-+{
-+ bool bRet = true;
-+
-+ fprintf( stderr, "writeBasic\n");
-+ deleteSRPs();
-+ clobberProject();
-+
-+ SvMemoryStream aMemStream;
-+ ProjectOutput aProject;
-+
-+ if( !aProject.initialize( mxProjectStorage ) )
-+ {
-+ fprintf( stderr, "Error opening project streams\n");
-+ return false;
-+ }
-+ aProject.writeHeader();
-+
-+ DirOutput aDir( &aMemStream );
-+ aDir.writeHeader();
-+
-+ SFX_APP()->EnterBasicCall();
-+
-+ Reference< XLibraryContainer > xLibContainer = rDocSh.GetBasicContainer();
-+
-+ Sequence< OUString > aNames;
-+ aNames = xLibContainer->getElementNames();
-+ if( aNames.getLength() > 1 )
-+ {
-+ fprintf( stderr, "Seriously odd - more than 1 macro storage thing\n") ;
-+ for( int i = 0; i < aNames.getLength(); i++ )
-+ fprintf( stderr, "Container: '%s'\n",
-+ (const sal_Char *) OUStringToOString(
-+ aNames[i], RTL_TEXTENCODING_UTF8 ) );
-+ }
-+
-+ Reference< XNameContainer > xLib;
-+ if( aNames.getLength() >= 1 )
-+ {
-+ fprintf( stderr, "Container: '%s'\n",
-+ (const sal_Char *) OUStringToOString(
-+ aNames[0], RTL_TEXTENCODING_UTF8 ) );
-+ Any aLibAny = xLibContainer->getByName( aNames[0] );
-+ aLibAny >>= xLib;
-+ }
-+
-+ if( xLib.is() )
-+ {
-+ Sequence< OUString > aProjects;
-+ aProjects = xLib->getElementNames();
-+ int nHack = 4;
-+
-+ if (nHack)
-+ aProject.writeHack();
-+ aProject.writeModules( aProjects );
-+
-+ if (nHack) {
-+ aDir.writeModuleCount( aProjects.getLength() + nHack );
-+ aDir.writeHack();
-+ writeHackStreams( mxStorage );
-+ }
-+
-+ for( int i = 0; i < aProjects.getLength(); i++ )
-+ {
-+ Any aSourceAny;
-+ OUString sSource;
-+ OUString &rName = aProjects[i];
-+
-+ aSourceAny = xLib->getByName( rName );
-+ aSourceAny >>= sSource;
-+ if( sSource.getLength() >= 0 )
-+ {
-+ writeModule( rName, sSource );
-+ aDir.writeModule( rName, sSource );
-+ }
-+ }
-+ }
-+ else
-+ aDir.writeModuleCount( 0 );
-+
-+ aDir.writeEnd();
-+ aProject.writeEnd();
-+
-+ aMemStream.Seek( 0 );
-+
-+ // Compress dir to the real stream
-+ SvStorageStreamRef xDir;
-+ xDir = mxStorage->OpenSotStream( OUString::createFromAscii( "dir" ),
-+ STREAM_STD_WRITE );
-+ if( !xDir.Is() )
-+ {
-+ fprintf( stderr, "Failed to open dir\n" );
-+ bRet = false;
-+ }
-+ else
-+ {
-+ MSLZSS::compressStream( xDir, &aMemStream );
-+ xDir->Flush();
-+ }
-+
-+ SFX_APP()->LeaveBasicCall();
-+
-+ return bRet;
-+}
---- /dev/null 2003-09-23 18:59:22.000000000 +0100
-+++ svx/source/msfilter/msvbasicdir.hxx 2004-03-30 17:53:23.000000000 +0100
-@@ -0,0 +1,81 @@
-+#ifndef _MSVBASICDIR_HXX
-+#define _MSVBASICDIR_HXX
-+
-+#ifdef _SOLAR_H
-+#include <tools/solar.h>
-+#endif
-+#ifndef _TOOLS_DEBUG_HXX
-+#include <tools/debug.hxx>
-+#endif
-+#ifndef _SVSTOR_HXX
-+#include <so3/svstor.hxx>
-+#endif
-+#ifndef _DYNARY_HXX
-+#include <tools/dynary.hxx>
-+#endif
-+#ifndef __SGI_STL_VECTOR
-+#include <vector>
-+#endif
-+
-+namespace MSLZSS {
-+ void compressString( SvStream *pStream, const rtl::OString &rString );
-+ void compressStream( SvStream *pStream, SvStream *pInStream );
-+ SvMemoryStream *decompressAsStream( SvStream *pStream, ULONG nOffset, ULONG *pCompressedLength = NULL, ULONG *pLength = NULL );
-+ rtl::OString decompressAsString( SvStream *pStream, ULONG nOffset, ULONG *pCompressedLength = NULL, ULONG *pLength = NULL );
-+};
-+
-+// An unset strings is 0 length & looks like a flag ...
-+
-+#define VBA_DIR_LONG_START 0x01 // seemingly always 1
-+#define VBA_DIR_LONG_ENCODING_1 0x02 // normally 0x409
-+#define VBA_DIR_SHORT_VERSION_1 0x03 // seemingly always 0x4e4
-+#define VBA_DIR_STR_PROJECT_NAME 0x04
-+#define VBA_DIR_STR_DESCRIPTION 0x05
-+#define VBA_DIR_STR_HELP_FILENAME 0x06
-+#define VBA_DIR_LONG_HELP_CTXT_ID 0x07
-+#define VBA_DIR_LONG_UNKNOWN_0x08 0x08
-+#define VBA_DIR_OP_PAPER_SIZE 0x09
-+#define VBA_DIR_STR_COND_COMP_ARGS 0x0c
-+#define VBA_DIR_EXTERNAL_LINKAGE 0x0d
-+#define VBA_DIR_SHORT_OBJECT_COUNT 0x0f
-+#define VBA_DIR_FLAG_END 0x10 // ?
-+#define VBA_DIR_SHORT_UNKNOWN_0x13 0x13
-+#define VBA_DIR_LONG_ENCODING_2 0x14 // normally 0x409
-+#define VBA_DIR_STR_STREAM_TYPE 0x16
-+#define VBA_DIR_STR_USER_NAME 0x19
-+#define VBA_DIR_STR_STREAM_NAME 0x1a
-+#define VBA_DIR_STR_UNKNOWN_0x1c 0x1c
-+#define VBA_DIR_LONG_UNKNOWN_0x1e 0x1e
-+#define VBA_DIR_FLAG_MACRO 0x21
-+#define VBA_DIR_FLAG_DOCUMENT 0x22
-+#define VBA_DIR_SHORT_UNKNOWN_0x2c 0x2c
-+#define VBA_DIR_OBJECT_END 0x2b
-+#define VBA_DIR_LONG_VBA_OFFSET 0x31
-+#define VBA_DIR_USTR_STREAM_NAME 0x32
-+#define VBA_DIR_USTR_COND_COMP_ARGS 0x3c
-+#define VBA_DIR_USTR_HELP_FILENAME 0x3d
-+#define VBA_DIR_USTR_STREAM_TYPE 0x3e
-+#define VBA_DIR_USTR_DESCRIPTION 0x40
-+#define VBA_DIR_USTR_USER_NAME 0x47
-+#define VBA_DIR_USTR_UNKNOWN_0x48 0x48
-+
-+class VBADir
-+{
-+private:
-+ SvStorageRef mxStorage;
-+ SvStorageRef mxProjectStorage;
-+
-+ void deleteSRPs();
-+ void clobberProject();
-+ void writeModule( const rtl::OUString &rName, const rtl::OUString &rSource );
-+
-+public:
-+ VBADir( SvStorageRef &xProjectStorage, SvStorageRef &xStorage );
-+ ~VBADir();
-+
-+ bool readBasic( SfxObjectShell &rDocSh, bool bComment, bool bStripped );
-+ bool writeBasic( SfxObjectShell &rDocSh );
-+};
-+
-+
-+#endif // _MSVBASICDIR_HXX
diff --git a/patches/test/vba-export.diff b/patches/test/vba-export.diff
deleted file mode 100644
index d187e01b2..000000000
--- a/patches/test/vba-export.diff
+++ /dev/null
@@ -1,269 +0,0 @@
-Index: svx/source/msfilter/makefile.mk
-===================================================================
-RCS file: /cvs/graphics/svx/source/msfilter/makefile.mk,v
-retrieving revision 1.11
-diff -u -p -u -r1.11 makefile.mk
---- svx/source/msfilter/makefile.mk 24 Apr 2003 13:26:39 -0000 1.11
-+++ svx/source/msfilter/makefile.mk 29 Mar 2004 08:26:31 -0000
-@@ -79,6 +79,7 @@ SLOFILES=\
- $(SLO)$/msdffimp.obj \
- $(SLO)$/msoleexp.obj \
- $(SLO)$/msvbasic.obj \
-+ $(SLO)$/msvbasicdir.obj \
- $(SLO)$/msashape.obj \
- $(SLO)$/svxmsbas.obj \
- $(SLO)$/msocximex.obj \
-Index: svx/source/msfilter/svxmsbas.cxx
-===================================================================
-RCS file: /cvs/graphics/svx/source/msfilter/svxmsbas.cxx,v
-retrieving revision 1.4
-diff -u -p -u -r1.4 svxmsbas.cxx
---- svx/source/msfilter/svxmsbas.cxx 15 Apr 2003 08:47:59 -0000 1.4
-+++ svx/source/msfilter/svxmsbas.cxx 29 Mar 2004 08:26:39 -0000
-@@ -84,7 +84,7 @@
- #include <svxmsbas.hxx>
- #endif
- #ifndef _MSVBASIC_HXX
--#include <msvbasic.hxx>
-+#include <msvbasicdir.hxx>
- #endif
-
- #include <com/sun/star/container/XNameContainer.hpp>
-@@ -141,112 +141,47 @@ BOOL SvxImportMSVBasic::CopyStorage_Impl
- return bValidStg;
- }
-
-+BOOL
-+SvxImportMSVBasic::GetVBAStorage(const String &rStorageName,
-+ const String &rSubStorageName,
-+ SvStorageRef &rProject,
-+ SvStorageRef &rVBA,
-+ bool bCreate)
-+{
-+ ULONG nFlags = STREAM_READWRITE | STREAM_SHARE_DENYALL;
-+
-+ if( !bCreate )
-+ nFlags |= STREAM_NOCREATE;
-+
-+ rProject = xRoot->OpenStorage( rStorageName, nFlags );
-+ if( rProject.Is() && SVSTREAM_OK == rProject->GetError() )
-+ {
-+ rVBA = rProject->OpenStorage( rSubStorageName, nFlags );
-+ if( rVBA.Is() && SVSTREAM_OK == rVBA->GetError() )
-+ return true;
-+ else
-+ DBG_WARNING("No Visual Basic in Storage");
-+ }
-+ else
-+ DBG_WARNING("No Macros Storage");
-+
-+ return false;
-+}
-+
- BOOL SvxImportMSVBasic::ImportCode_Impl( const String& rStorageName,
- const String &rSubStorageName,
- BOOL bAsComment, BOOL bStripped )
- {
-- BOOL bRet = FALSE;
-- VBA_Impl aVBA( *xRoot, bAsComment );
-- if( aVBA.Open(rStorageName,rSubStorageName) )
-- {
-- SFX_APP()->EnterBasicCall();
--//this method is removed in the Unicode-Version
--// rDocSh.GetSbxObject();
--
-- Reference< XLibraryContainer > xLibContainer = rDocSh.GetBasicContainer();
-- BasicManager *pBasicMan = rDocSh.GetBasicManager();
-- DBG_ASSERT( xLibContainer.is(), "No BasicContainer!" );
--
-- UINT16 nStreamCount = aVBA.GetNoStreams();
-- Reference< XNameContainer > xLib;
-- if( xLibContainer.is() && nStreamCount )
-- {
-- String aLibName( String::CreateFromAscii(
-- RTL_CONSTASCII_STRINGPARAM( "Standard" )));
-- if( !xLibContainer->hasByName( aLibName ) )
-- xLibContainer->createLibrary( aLibName );
--
-- Any aLibAny = xLibContainer->getByName( aLibName );
-- aLibAny >>= xLib;
-- }
-- if( xLib.is() )
-- {
-- for( UINT16 i=0; i<nStreamCount;i++)
-- {
-- StringArray aDecompressed = aVBA.Decompress(i);
-- ByteString sByteBasic(aVBA.GetStreamName(i),
-- RTL_TEXTENCODING_ASCII_US,
-- (RTL_UNICODETOTEXT_FLAGS_UNDEFINED_UNDERLINE|
-- RTL_UNICODETOTEXT_FLAGS_INVALID_UNDERLINE |
-- RTL_UNICODETOTEXT_FLAGS_PRIVATE_MAPTO0 |
-- RTL_UNICODETOTEXT_FLAGS_NOCOMPOSITE)
-- );
--
-- //const String &sBasicModule = aVBA.GetStreamName( i);
-- const String sBasicModule(sByteBasic,
-- RTL_TEXTENCODING_ASCII_US);
-- for(ULONG j=0;j<aDecompressed.GetSize();j++)
-- {
-- String sModule(sBasicModule);
-- if (j>0)
-- {
-- sModule.AppendAscii("_Part");
-- sModule += String::CreateFromInt32(j+1);
-- }
--
-- if (bStripped)
-- {
-- String *pStr = aDecompressed.Get(j);
-- bool bMac = true;
-- xub_StrLen nBegin = pStr->Search('\x0D');
-- if ((STRING_NOTFOUND != nBegin) && (pStr->Len() > 1) && (pStr->GetChar(nBegin+1) == '\x0A'))
-- bMac = false;
--
-- const char cLineEnd = bMac ? '\x0D' : '\x0A';
-- const String sAttribute(String::CreateFromAscii(
-- bAsComment ? "Rem Attribute" : "Attribute"));
-- while (STRING_NOTFOUND != (nBegin = pStr->Search(sAttribute)))
-- {
-- if ((nBegin) && pStr->GetChar(nBegin-1) != cLineEnd)
-- continue;
-- xub_StrLen nEnd = pStr->Search(cLineEnd ,nBegin);
-- pStr->Erase(nBegin, (nEnd-nBegin)+1);
-- }
-- }
--
-- if( aDecompressed.Get(j)->Len() )
-- {
-- if (bAsComment)
-- {
-- String sTemp( String::CreateFromAscii(
-- RTL_CONSTASCII_STRINGPARAM( "Sub " )));
-- String sMunge(sModule);
-- //Streams can have spaces in them, but modulenames
-- //cannot !
-- sMunge.SearchAndReplaceAll(' ','_');
--
-- sTemp += sMunge;
-- sTemp.AppendAscii("\n");
-- aDecompressed.Get(j)->Insert(sTemp,0);
-- aDecompressed.Get(j)->InsertAscii("\nEnd Sub");
-- }
--
-- ::rtl::OUString aModName( sModule );
-- ::rtl::OUString aSource( *aDecompressed.Get(j) );
-- Any aSourceAny;
-- aSourceAny <<= aSource;
-- if( xLib->hasByName( aModName ) )
-- xLib->replaceByName( aModName, aSourceAny );
-- else
-- xLib->insertByName( aModName, aSourceAny );
--
-- bRet = true;
-- }
-- }
-- }
-- }
-- SFX_APP()->LeaveBasicCall();
-+ bool bRet = false;
-+
-+ SvStorageRef xProject, xVBA;
-+
-+ if( GetVBAStorage( rStorageName, rSubStorageName, xProject, xVBA, false ) )
-+ {
-+ VBADir aVBA( xProject, xVBA );
-+ bRet = aVBA.readBasic( rDocSh, bAsComment, bStripped );
- }
-+
- return bRet;
- }
-
-@@ -254,34 +189,56 @@ ULONG SvxImportMSVBasic::SaveOrDelMSVBAS
- const String& rStorageName )
- {
- ULONG nRet = ERRCODE_NONE;
-+ bool bWroteCopy = false;
- SvStorageRef xSrcRoot( rDocSh.GetStorage() );
- String aDstStgName( GetMSBasicStorageName() );
- SvStorageRef xVBAStg( xSrcRoot->OpenStorage( aDstStgName,
- STREAM_READWRITE | STREAM_NOCREATE |
- STREAM_SHARE_DENYALL ));
-+
-+ fprintf( stderr, "SaveOrDelMSVBAStorage ... %d\n", bSaveInto );
- if( xVBAStg.Is() && !xVBAStg->GetError() )
- {
- xVBAStg = 0;
- if( bSaveInto )
- {
-+ SFX_APP()->EnterBasicCall();
-+
- BasicManager *pBasicMan = rDocSh.GetBasicManager();
-- if( pBasicMan && pBasicMan->IsBasicModified() )
-- {
-- nRet = ERRCODE_SVX_MODIFIED_VBASIC_STORAGE;
-+ bool bIsModified = pBasicMan && pBasicMan->IsBasicModified();
-
--// don't reset the modified flag
--// StarBASIC *pBasic = pBasicMan->GetStdLib();
--// if( pBasic )
--// pBasic->SetModified( FALSE );
-- }
--// JP 02.05.00: Bug 75492 - save always the BasicStorage
--// else
-+ SFX_APP()->LeaveBasicCall();
-+
-+ if( !bIsModified )
-+ fprintf( stderr, "Error - probably bogus unmodified state ...\n" );
-+#if 0
-+ if( !bIsModified )
-+ {
-+ fprintf( stderr, "Unmodified foo\n" );
- xSrcRoot->CopyTo( aDstStgName, xRoot, rStorageName);
-+ bWroteCopy = true;
-+ }
-+#endif
- }
--// we never stored this storage in our own format, so it may not be deleted
--// else
--// rDocSh.SvPersist::Remove( aDstStgName );
- }
-+
-+ if( !bWroteCopy )
-+ {
-+ fprintf(stderr, "Crazy VBA writing hack !\n" );
-+
-+ SvStorageRef xProject, xVBA;
-+ if( GetVBAStorage( // HACK:
-+ rtl::OUString::createFromAscii( "_VBA_PROJECT_CUR" ),
-+ rtl::OUString::createFromAscii( "VBA" ),
-+ xProject, xVBA, true ) )
-+ {
-+ VBADir aDir( xProject, xVBA );
-+ aDir.writeBasic( rDocSh );
-+ }
-+ else
-+ fprintf( stderr, "Failed to create VBA storage\n" );
-+ }
-+
- return nRet;
- }
-
-Index: svx/inc/svxmsbas.hxx
-===================================================================
-RCS file: /cvs/graphics/svx/inc/svxmsbas.hxx,v
-retrieving revision 1.1.1.1
-diff -u -p -u -r1.1.1.1 svxmsbas.hxx
---- svx/inc/svxmsbas.hxx 18 Sep 2000 17:01:01 -0000 1.1.1.1
-+++ svx/inc/svxmsbas.hxx 29 Mar 2004 08:31:03 -0000
-@@ -118,6 +118,11 @@ private:
- BOOL bImport;
- BOOL bCopy;
-
-+ BOOL GetVBAStorage(const String& rStorageName,
-+ const String &rSubStorageName,
-+ SvStorageRef &rProject,
-+ SvStorageRef &rVBA,
-+ bool bCreate);
- BOOL ImportCode_Impl( const String& rStorageName,
- const String &rSubStorageName,
- BOOL bAsComment, BOOL bStripped);
diff --git a/patches/test/vba-sc-docuno-hack.diff b/patches/test/vba-sc-docuno-hack.diff
deleted file mode 100644
index 0aca68edb..000000000
--- a/patches/test/vba-sc-docuno-hack.diff
+++ /dev/null
@@ -1,51 +0,0 @@
-Index: sc/source/ui/unoobj/docuno.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/unoobj/docuno.cxx,v
-retrieving revision 1.50
-diff -u -p -u -r1.50 docuno.cxx
---- sc/source/ui/unoobj/docuno.cxx 23 Mar 2005 13:08:32 -0000 1.50
-+++ sc/source/ui/unoobj/docuno.cxx 11 May 2005 10:25:42 -0000
-@@ -93,6 +93,9 @@
- #include <comphelper/processfactory.hxx>
- #endif
-
-+#include <org/openoffice/vba/XWorkBook.hpp>
-+#include "vbaworkbook.hxx"
-+
- #include "docuno.hxx"
- #include "cellsuno.hxx"
- #include "nameuno.hxx"
-@@ -126,11 +129,14 @@
- #endif
-
- using namespace com::sun::star;
-+using namespace org::openoffice;
-
- //------------------------------------------------------------------------
-
- // alles ohne Which-ID, Map nur fuer PropertySetInfo
-
-+#define SC_HACK_VBAWORKBOOK "VBAHook"
-+
- //! umbenennen, sind nicht mehr nur Options
- const SfxItemPropertyMap* lcl_GetDocOptPropertyMap()
- {
-@@ -164,6 +170,7 @@ const SfxItemPropertyMap* lcl_GetDocOptP
- {MAP_CHAR_LEN(SC_UNO_STANDARDDEC), 0, &getCppuType((sal_Int16*)0), 0},
- {MAP_CHAR_LEN(SC_UNO_REGEXENABLED), 0, &getBooleanCppuType(), 0},
- {MAP_CHAR_LEN(SC_UNO_RUNTIMEUID), 0, &getCppuType(static_cast< const rtl::OUString * >(0)), beans::PropertyAttribute::READONLY},
-+ {MAP_CHAR_LEN(SC_HACK_VBAWORKBOOK), 0, &getCppuType((uno::Reference< vba::XWorkBook >*)0), beans::PropertyAttribute::READONLY},
-
- {0,0,0,0}
- };
-@@ -1476,6 +1483,10 @@ uno::Any SAL_CALL ScModelObj::getPropert
- {
- aRet <<= getRuntimeUID();
- }
-+ else if ( aString.EqualsAscii( SC_HACK_VBAWORKBOOK ) )
-+ {
-+ aRet <<= uno::Reference <vba::XWorkBook>(new ScVbaWorkBook (this));
-+ }
- }
-
- return aRet;
diff --git a/patches/test/vba-sc-source-ui-unoobj-makefile.diff b/patches/test/vba-sc-source-ui-unoobj-makefile.diff
deleted file mode 100644
index 468b7c145..000000000
--- a/patches/test/vba-sc-source-ui-unoobj-makefile.diff
+++ /dev/null
@@ -1,19 +0,0 @@
-Index: sc/source/ui/unoobj/makefile.mk
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/unoobj/makefile.mk,v
-retrieving revision 1.16
-diff -u -p -u -r1.16 makefile.mk
---- sc/source/ui/unoobj/makefile.mk 11 Aug 2004 09:08:22 -0000 1.16
-+++ sc/source/ui/unoobj/makefile.mk 11 May 2005 11:00:42 -0000
-@@ -122,7 +122,10 @@ SLO1FILES = \
- $(SLO)$/listenercalls.obj \
- $(SLO)$/cellvaluebinding.obj \
- $(SLO)$/celllistsource.obj \
-- $(SLO)$/warnpassword.obj
-+ $(SLO)$/warnpassword.obj \
-+ $(SLO)$/vbaworkbook.obj \
-+ $(SLO)$/vbaworksheet.obj \
-+ $(SLO)$/vbarange.obj
-
- SLO2FILES = \
- $(SLO)$/scdetect.obj \
diff --git a/patches/test/vcl-font-hinting.diff b/patches/test/vcl-font-hinting.diff
deleted file mode 100755
index 18833af24..000000000
--- a/patches/test/vcl-font-hinting.diff
+++ /dev/null
@@ -1,157 +0,0 @@
-Index: source/glyphs/gcach_ftyp.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/source/glyphs/gcach_ftyp.cxx,v
-retrieving revision 1.114
-diff -u -p -u -r1.114 gcach_ftyp.cxx
---- source/glyphs/gcach_ftyp.cxx 3 May 2005 14:10:32 -0000 1.114
-+++ source/glyphs/gcach_ftyp.cxx 15 Aug 2005 14:33:14 -0000
-@@ -805,13 +805,13 @@ FreetypeServerFont::FreetypeServerFont(
-
- ApplyGSUB( rFSD );
-
-- // TODO: query GASP table for load flags
-- mnLoadFlags = FT_LOAD_DEFAULT;
-+ mnLoadFlags = Application::GetSettings().GetStyleSettings().GetFontRenderFlags();
-
- if( (mnSin != 0) && (mnCos != 0) ) // hinting for 0/90/180/270 degrees only
- mnLoadFlags |= FT_LOAD_NO_HINTING;
- mnLoadFlags |= FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH; //#88334#
-
-+#ifndef UNX
- #if (FTVERSION >= 2005) || defined(TT_CONFIG_OPTION_BYTECODE_INTERPRETER)
- if( nPrioAutoHint <= 0 )
- #endif
-@@ -822,6 +822,7 @@ FreetypeServerFont::FreetypeServerFont(
- if( !(mnLoadFlags & FT_LOAD_NO_HINTING) && (nFTVERSION >= 2103))
- mnLoadFlags |= FT_LOAD_TARGET_LIGHT;
- #endif
-+#endif
-
- if( ((mnCos != 0) && (mnSin != 0)) || (nPrioEmbedded <= 0) )
- mnLoadFlags |= FT_LOAD_NO_BITMAP;
-Index: unx/gtk/gdi/makefile.mk
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/gtk/gdi/makefile.mk,v
-retrieving revision 1.5
-diff -u -p -u -r1.5 makefile.mk
---- unx/gtk/gdi/makefile.mk 13 Jan 2005 18:09:28 -0000 1.5
-+++ unx/gtk/gdi/makefile.mk 15 Aug 2005 14:33:14 -0000
-@@ -82,6 +82,10 @@ dummy:
-
- .IF "$(ENABLE_GTK)" != ""
-
-+.IF "$(SYSTEM_FREETYPE)" == "YES"
-+CFLAGS+=-DSYSTEM_FREETYPE $(FREETYPE_CFLAGS)
-+.ENDIF
-+
- PKGCONFIG_MODULES=gtk+-2.0
- .INCLUDE : pkg_config.mk
-
-Index: unx/gtk/gdi/salnativewidgets-gtk.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx,v
-retrieving revision 1.15
-diff -u -p -u -r1.15 salnativewidgets-gtk.cxx
---- unx/gtk/gdi/salnativewidgets-gtk.cxx 6 Jul 2005 09:21:55 -0000 1.15
-+++ unx/gtk/gdi/salnativewidgets-gtk.cxx 15 Aug 2005 14:33:15 -0000
-@@ -78,6 +78,8 @@
- #include <saldisp.hxx>
- #endif
-
-+#include <ft2build.h>
-+#include FT_FREETYPE_H
-
- #ifndef _OSL_CONDITN_HXX_
- #include <osl/mutex.hxx>
-@@ -2823,6 +2879,55 @@ void printStyleColors( GtkStyle* pStyle
- }
- #endif
-
-+static void
-+updateFontDetails( StyleSettings &rStyleSet, GtkWidget *widget )
-+{
-+ GtkSettings *pSettings;
-+ long nLoadFlags = FT_LOAD_DEFAULT;
-+ gint nAntiAlias;
-+ gint nHinting;
-+ gchar *pHintStyle;
-+
-+ pSettings = gtk_widget_get_settings (widget);
-+ g_object_get (pSettings,
-+ "gtk-xft-antialias", &nAntiAlias,
-+ "gtk-xft-hinting", &nHinting,
-+ "gtk-xft-hintstyle", &pHintStyle,
-+ NULL);
-+
-+ if( nHinting >= 0 && !nHinting )
-+ nLoadFlags |= FT_LOAD_NO_HINTING;
-+ else if( pHintStyle )
-+ {
-+ if( !strcmp (pHintStyle, "hintnone") )
-+ nLoadFlags |= FT_LOAD_NO_HINTING;
-+ else if( !strcmp( pHintStyle, "hintslight") ||
-+ !strcmp( pHintStyle, "hintmedium") )
-+ nLoadFlags |= FT_LOAD_TARGET_LIGHT;
-+ else // if( !strcmp( pHintStyle, "hintfull" ) )
-+ nLoadFlags |= FT_LOAD_TARGET_NORMAL;
-+ g_free (pHintStyle);
-+ }
-+
-+ if (nAntiAlias >= 0 && !nAntiAlias)
-+ {
-+#ifdef FT_LOAD_TARGET_MONO
-+ nLoadFlags |= FT_LOAD_TARGET_MONO;
-+#endif
-+ nLoadFlags |= FT_LOAD_MONOCHROME;
-+ }
-+ // FIXME: we need to fetch: "gtk-xft-rgba" enum:
-+ // one of: rgb, bgr, vrgb, vbgr, use
-+ // FT_LOAD_TARGET_LCD & _LCD_V & do more work.
-+ // Hopefully we can move to using cairo for font
-+ // rendering in future though.
-+ else
-+ nLoadFlags |= FT_LOAD_NO_BITMAP;
-+
-+ fprintf( stderr, "Generated render flags of 0x%x\n", nLoadFlags );
-+ rStyleSet.SetFontRenderFlags( nLoadFlags );
-+}
-+
- void GtkSalGraphics::updateSettings( AllSettings& rSettings )
- {
- // get the widgets in place
-@@ -3011,6 +3115,8 @@ void GtkSalGraphics::updateSettings( All
- // FIXME: need some way of fetching toolbar icon size.
- // aStyleSet.SetToolbarIconSize( STYLE_TOOLBAR_ICONSIZE_SMALL );
-
-+ updateFontDetails( aStyleSet, m_pWindow );
-+
- // finally update the collected settings
- rSettings.SetStyleSettings( aStyleSet );
- }
-
-Index: inc/settings.hxx
-===================================================================
-RCS file: /cvs/gsl/vcl/inc/settings.hxx,v
-retrieving revision 1.29
-diff -u -p -u -r1.29 settings.hxx
---- inc/settings.hxx 31 Jan 2005 13:19:19 -0000 1.29
-+++ inc/settings.hxx 15 Aug 2005 14:50:03 -0000
-@@ -447,6 +447,7 @@ private:
- long mnIconHorzSpace;
- long mnIconVertSpace;
- long mnAntialiasedMin;
-+ long mnFontRenderFlags;
- ULONG mnCursorBlinkTime;
- ULONG mnDragFullOptions;
- ULONG mnAnimationOptions;
-@@ -910,6 +918,10 @@ public:
- { CopyData(); mpData->mnAntialiasedMin = nMinPixel; }
- ULONG GetAntialiasingMinPixelHeight() const
- { return mpData->mnAntialiasedMin; }
-+ void SetFontRenderFlags( long nFlags )
-+ { CopyData(); mpData->mnFontRenderFlags = nFlags; }
-+ ULONG GetFontRenderFlags() const
-+ { return mpData->mnFontRenderFlags; }
-
- void SetOptions( ULONG nOptions )
- { CopyData(); mpData->mnOptions = nOptions; }
diff --git a/patches/test/win32-odma-build.diff b/patches/test/win32-odma-build.diff
deleted file mode 100644
index 8c3bc95ec..000000000
--- a/patches/test/win32-odma-build.diff
+++ /dev/null
@@ -1,96 +0,0 @@
-Index: ucb/prj/build.lst
-===================================================================
-RCS file: /cvs/ucb/ucb/prj/build.lst,v
-retrieving revision 1.11
-diff -u -p -u -r1.11 build.lst
---- ucb/prj/build.lst 27 Mar 2003 17:26:37 -0000 1.11
-+++ ucb/prj/build.lst 13 May 2003 20:58:30 -0000
-@@ -8,6 +8,7 @@ uc ucb\source\cacher nmake - all uc
- uc ucb\source\sorter nmake - all uc_sorter uc_unotypes NULL
- uc ucb\source\ucp\ftp nmake - all uc_ftp uc_unotypes NULL
- uc ucb\source\ucp\file nmake - all uc_file uc_unotypes NULL
-+uc ucb\source\ucp\odma nmake - all uc_odma uc_unotypes NULL
- uc ucb\source\ucp\hierarchy nmake - all uc_hierarchy uc_unotypes NULL
- uc ucb\source\ucp\remote nmake - all uc_remote uc_regexp NULL
- uc ucb\source\ucp\webdav nmake - all uc_webdav uc_unotypes NULL
-
-Index: officecfg/registry/data/org/openoffice/ucb/Configuration.xcu
-===================================================================
-RCS file: /cvs/util/officecfg/registry/data/org/openoffice/ucb/Configuration.xcu,v
-retrieving revision 1.4
-diff -u -p -u -r1.4 Configuration.xcu
---- officecfg/registry/data/org/openoffice/ucb/Configuration.xcu 8 Nov 2002 16:50:28 -0000 1.4
-+++ officecfg/registry/data/org/openoffice/ucb/Configuration.xcu 13 May 2003 20:52:35 -0000
-@@ -154,6 +154,17 @@
- <value/>
- </prop>
- </node>
-+ <node oor:name="Provider9" oor:op="replace">
-+ <prop oor:name="ServiceName">
-+ <value>com.sun.star.comp.odma.ContentProvider</value>
-+ </prop>
-+ <prop oor:name="URLTemplate">
-+ <value>vnd.sun.star.odma</value>
-+ </prop>
-+ <prop oor:name="Arguments">
-+ <value/>
-+ </prop>
-+ </node>
- </node>
- </node>
- </node>
-
-Index: scp/source/office/files.scp
-===================================================================
-RCS file: /cvs/installation/scp/source/office/files.scp,v
-retrieving revision 1.367
-diff -u -p -u -r1.367 files.scp
---- scp/source/office/files.scp 17 Jul 2003 08:54:46 -0000 1.367
-+++ scp/source/office/files.scp 5 Aug 2003 14:48:48 -0000
-@@ -879,6 +883,7 @@ SPECIAL_UNO_LIB_FILE(GID_FILE_LIB_PACKAG
-
- SPECIAL_UNO_LIB_FILE(GID_FILE_LIB_UCPHIER1,ucphier1)
- SPECIAL_UNO_LIB_FILE(GID_FILE_LIB_UCPDAV1,ucpdav1)
-+SPECIAL_UNO_LIB_FILE(GID_FILE_LIB_UCPODMA1,ucpodma1)
- SPECIAL_UNO_LIB_FILE(GID_FILE_LIB_FILEACC,fileacc)
- SPECIAL_UNO_COMPONENT_LIB_FILE(GID_FILE_LIB_TINSTRM,textinstream.uno)
- SPECIAL_UNO_COMPONENT_LIB_FILE(GID_FILE_LIB_TOUTSTRM,textoutstream.uno)
-
-Index: ucb/prj/d.lst
-===================================================================
-RCS file: /cvs/ucb/ucb/prj/d.lst,v
-retrieving revision 1.11.38.1
-diff -u -p -u -r1.11.38.1 d.lst
---- ucb/prj/d.lst 28 Jan 2004 10:12:30 -0000 1.11.38.1
-+++ ucb/prj/d.lst 4 May 2004 13:29:07 -0000
-@@ -16,6 +16,7 @@
- ..\%__SRC%\misc\ucb*.sym %_DEST%\bin%_EXT%\ucb*.sym
- ..\source\core\ucb.xml %_DEST%\xml%_EXT%\ucb.xml
-
-+..\source\ucp\odma\*.dll %_DEST%\bin%_EXT%\*.dll
- ..\%__SRC%\bin\ucp*.dll %_DEST%\bin%_EXT%\ucp*.dll
- ..\%__SRC%\lib\libucp*.so %_DEST%\lib%_EXT%\libucp*.so
- ..\%__SRC%\lib\libucp*.dylib %_DEST%\lib%_EXT%\libucp*.dylib
-Index: desktop/source/app/cmdlineargs.cxx
-===================================================================
-RCS file: /cvs/framework/desktop/source/app/cmdlineargs.cxx,v
-retrieving revision 1.22
-diff -u -p -u -r1.22 cmdlineargs.cxx
---- desktop/source/app/cmdlineargs.cxx 27 Jun 2003 09:42:22 -0000 1.22
-+++ desktop/source/app/cmdlineargs.cxx 4 May 2004 15:18:32 -0000
-@@ -269,6 +269,15 @@ void CommandLineArgs::ParseCommandLine_S
- }
- else
- {
-+ if( bOpenEvent || bViewEvent || bForceNewEvent || bForceOpenEvent )
-+ {
-+ if( ::rtl::OUString(aArgStr).matchIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("::ODMA")) )
-+ {
-+ ::rtl::OUString sArg = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("vnd.sun.star.odma:/"));
-+ sArg += aArgStr;
-+ aArgStr = sArg;
-+ }
-+ }
- // handle this argument as a filename
- if ( bOpenEvent )
- AddStringListParam_Impl( CMD_STRINGPARAM_OPENLIST, aArgStr );
diff --git a/patches/test/win32-odma-gw-fix.diff b/patches/test/win32-odma-gw-fix.diff
deleted file mode 100644
index 4861dd31c..000000000
--- a/patches/test/win32-odma-gw-fix.diff
+++ /dev/null
@@ -1,27 +0,0 @@
---- ucb/source/ucp/odma/odma_content.cxx
-+++ ucb/source/ucp/odma/odma_content.cxx
-@@ -607,11 +607,12 @@
- else
- pExtension = ODM_FORMAT_TEXT;
-
-- sal_Char* lpszNewDocId = new sal_Char[ODM_DOCID_MAX];
-- void *pData = NULL;
-+ sal_Char* lpszNewDocId = new sal_Char[ODM_DOCID_MAX];
-+ ::rtl::OString sDocId = ::rtl::OUStringToOString(aTransferInfo.NewTitle,RTL_TEXTENCODING_ASCII_US);
-+ void *pData = NULL;
- DWORD dwFlags = ODM_SILENT;
- ODMSTATUS odm = NODMSaveAsEx(ContentProvider::getHandle(),
-- NULL, // means it is saved the first time
-+ const_cast<sal_Char*>(sDocId.getStr()),
- lpszNewDocId,
- pExtension,
- NULL, // no callback function here
-@@ -623,7 +624,7 @@
- {
- dwFlags = 0;
- odm = NODMSaveAsEx(ContentProvider::getHandle(),
-- NULL, // means it is saved the first time
-+ const_cast<sal_Char*>(sDocId.getStr()),
- lpszNewDocId,
- pExtension,
- NULL, // no callback function here
diff --git a/patches/test/xim-fixes3-rest.diff b/patches/test/xim-fixes3-rest.diff
deleted file mode 100644
index bf66214ba..000000000
--- a/patches/test/xim-fixes3-rest.diff
+++ /dev/null
@@ -1,35 +0,0 @@
-This was in the old xim-fixes3.diff before cws vcl36 was merged. vcl36
-code doesn't have the m_bWasPreedit condition. I don't know if it
-prevents double commits in another way or if it uses m_bWasPreedit
-with semantics that differ from xim-fixes3.diff
-The IZ entry was #38671 -- martink 2005-03-07
-
-Index: vcl/unx/gtk/window/gtkframe.cxx
-===================================================================
-RCS file: /cvs/gsl/vcl/unx/gtk/window/gtkframe.cxx,v
-retrieving revision 1.17
-diff -u -r1.17 gtkframe.cxx
---- vcl/unx/gtk/window/gtkframe.cxx 16 Nov 2004 15:19:08 -0000 1.17
-+++ vcl/unx/gtk/window/gtkframe.cxx 15 Dec 2004 15:57:34 -0000
-@@ -1971,7 +2031,20 @@ void GtkSalFrame::signalIMPreeditEnd( GtkIMContext* pContext, gpointer frame )
-
- void GtkSalFrame::signalIMPreeditEnd( GtkIMContext* pContext, gpointer frame )
- {
--// GtkSalFrame* pThis = (GtkSalFrame*)frame;
-+ GtkSalFrame* pThis = (GtkSalFrame*)frame;
-+#if OSL_DEBUG_LEVEL > 1
-+ fprintf( stderr, "*** :signalImPreeditEnd *** '%s'\n", pThis->m_bWasPreedit ? "commit" : "nop" );
-+#endif
-+ GTK_YIELD_GRAB();
-+ if( pThis->m_bWasPreedit )
-+ {
-+ pThis->m_bWasPreedit = false;
-+ pThis->CallCallback( SALEVENT_ENDEXTTEXTINPUT, NULL );
-+ }
-+#if OSL_DEBUG_LEVEL > 1
-+ else
-+ fprintf (stderr, "Avoid double commit\n");
-+#endif
- }
-
- gboolean GtkSalFrame::signalIMRetrieveSurrounding( GtkIMContext* pContext, gpointer frame )
diff --git a/patches/test/xmlsearch-xerces.diff b/patches/test/xmlsearch-xerces.diff
deleted file mode 100644
index cbb8774e6..000000000
--- a/patches/test/xmlsearch-xerces.diff
+++ /dev/null
@@ -1,243 +0,0 @@
-? XmlSearch/unxlngx6.pro
-cvs diff: Diffing .
-cvs diff: Diffing XmlSearch/prj
-cvs diff: Diffing XmlSearch/src
-cvs diff: Diffing XmlSearch/src/com
-cvs diff: Diffing XmlSearch/src/com/sun
-cvs diff: Diffing XmlSearch/src/com/sun/xmlsearch
-Index: XmlSearch/src/com/sun/xmlsearch/makefile.mk
-===================================================================
-RCS file: /cvs/util/XmlSearch/src/com/sun/xmlsearch/makefile.mk,v
-retrieving revision 1.5
-diff -u -r1.5 makefile.mk
---- XmlSearch/src/com/sun/xmlsearch/makefile.mk 25 Oct 2005 11:11:58 -0000 1.5
-+++ XmlSearch/src/com/sun/xmlsearch/makefile.mk 2 Nov 2005 14:32:12 -0000
-@@ -21,7 +21,7 @@
-
- .INCLUDE : settings.mk
-
--JARFILES = jaxp.jar parser.jar xt.jar
-+JARFILES = jaxp.jar parser.jar xt.jar xercesImpl.jar
- #EXTRAJARFILES = jaxp.jar parser.jar xt.jar
-
- JAVAFILES = $(subst,$(CLASSDIR)$/$(PACKAGE)$/, $(subst,.class,.java $(JAVACLASSFILES)))
-cvs diff: Diffing XmlSearch/src/com/sun/xmlsearch/db
-cvs diff: Diffing XmlSearch/src/com/sun/xmlsearch/gui
-cvs diff: Diffing XmlSearch/src/com/sun/xmlsearch/indexer
-cvs diff: Diffing XmlSearch/src/com/sun/xmlsearch/qe
-cvs diff: Diffing XmlSearch/src/com/sun/xmlsearch/servlet
-cvs diff: Diffing XmlSearch/src/com/sun/xmlsearch/tree
-Index: XmlSearch/src/com/sun/xmlsearch/tree/TreeBuilder.java
-===================================================================
-RCS file: /cvs/util/XmlSearch/src/com/sun/xmlsearch/tree/TreeBuilder.java,v
-retrieving revision 1.2
-diff -u -r1.2 TreeBuilder.java
---- XmlSearch/src/com/sun/xmlsearch/tree/TreeBuilder.java 9 Sep 2005 16:41:49 -0000 1.2
-+++ XmlSearch/src/com/sun/xmlsearch/tree/TreeBuilder.java 2 Nov 2005 14:32:14 -0000
-@@ -46,7 +46,9 @@
- import org.xml.sax.HandlerBase;
- import org.xml.sax.AttributeList;
- import org.xml.sax.InputSource;
--import com.sun.xml.parser.Parser;
-+import org.xml.sax.SAXNotRecognizedException;
-+import org.xml.sax.SAXNotSupportedException;
-+import org.apache.xerces.parsers.SAXParser;
- import com.sun.xmlsearch.util.IntegerArray;
- import com.jclark.xsl.om.*;
-
-@@ -144,6 +146,7 @@
-
- public URL getURL() { return null; }
- public int getLineNumber() { return -1; }
-+ public int getColumnNumber() { return -1; }
- public NamespacePrefixMap getNamespacePrefixMap() {
- return _parent.getNamespacePrefixMap();
- }
-@@ -153,6 +156,12 @@
- public String getUnparsedEntityURI(String name) {
- return "getUnparsedEntityURI";
- }
-+ public String getPublicId() {
-+ return "getPublicId not implemented";
-+ }
-+ public String getSystemId() {
-+ return "getSystemId not implemented";
-+ }
-
- public boolean isLeaf() { return true; }
- public int getChildCount() { return 0; }
-@@ -612,7 +621,7 @@
-
- private static final int InitStackSize = 256;
- private static final Name EmptyName = null;
-- private Parser _parser = new Parser();
-+ private SAXParser _parser = new SAXParser();
- private Hashtable _names = new Hashtable(256);
-
- private NameTable _nameTable;
-@@ -625,7 +634,12 @@
- public TreeBuilder(NameTable nameTable) {
- _nameTable = nameTable;
- _nsMap = _nameTable.getEmptyNamespacePrefixMap();
-- _parser.setFastStandalone(true);
-+ try {
-+ _parser.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false);
-+ _parser.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
-+ } catch (SAXNotRecognizedException e) {
-+ } catch (SAXNotSupportedException e) {
-+ }
- }
-
- public Node makeSubstituteElement(Name name, Node2[] children, Node original) {
-cvs diff: Diffing XmlSearch/src/com/sun/xmlsearch/util
-Index: XmlSearch/src/com/sun/xmlsearch/util/Configuration.java
-===================================================================
-RCS file: /cvs/util/XmlSearch/src/com/sun/xmlsearch/util/Configuration.java,v
-retrieving revision 1.2
-diff -u -r1.2 Configuration.java
---- XmlSearch/src/com/sun/xmlsearch/util/Configuration.java 9 Sep 2005 16:45:09 -0000 1.2
-+++ XmlSearch/src/com/sun/xmlsearch/util/Configuration.java 2 Nov 2005 14:32:14 -0000
-@@ -40,8 +40,7 @@
- import java.util.Vector;
- import java.net.URL;
- import org.w3c.dom.*;
--import com.sun.xml.tree.XmlDocument;
--import com.sun.xml.parser.Resolver;
-+import org.apache.xerces.parsers.DOMParser;
- import org.xml.sax.InputSource;
-
- public final class Configuration {
-@@ -68,15 +67,18 @@
- }
-
- public static Element parse(URL location) throws Exception {
-- InputSource input = Resolver.createInputSource(location, true);
-- XmlDocument document = XmlDocument.createXmlDocument(input, false);
-- return document.getDocumentElement();
-+ DOMParser parser = new DOMParser();
-+ parser.setFeature("http://xml.org/sax/features/validation", true);
-+ parser.parse(location.toString());
-+ return parser.getDocument().getDocumentElement();
- }
-
- public static Element parse(byte[] xmlBytes) throws Exception {
-- ByteArrayInputStream input = new ByteArrayInputStream(xmlBytes);
-- XmlDocument document = XmlDocument.createXmlDocument(input, false);
-- return document.getDocumentElement();
-+ ByteArrayInputStream input = new ByteArrayInputStream(xmlBytes);
-+ DOMParser parser = new DOMParser();
-+ parser.setFeature("http://xml.org/sax/features/validation", false);
-+ parser.parse(new InputSource(input));
-+ return parser.getDocument().getDocumentElement();
- }
-
- /** arg: Element that can be direct parent of PrefixTranslation-s
-@@ -97,4 +99,5 @@
- else
- return null;
- }
-+
- }
-cvs diff: Diffing XmlSearch/src/com/sun/xmlsearch/xml
-cvs diff: Diffing XmlSearch/src/com/sun/xmlsearch/xml/indexer
-Index: XmlSearch/src/com/sun/xmlsearch/xml/indexer/XmlIndexBuilder.java
-===================================================================
-RCS file: /cvs/util/XmlSearch/src/com/sun/xmlsearch/xml/indexer/XmlIndexBuilder.java,v
-retrieving revision 1.7
-diff -u -r1.7 XmlIndexBuilder.java
---- XmlSearch/src/com/sun/xmlsearch/xml/indexer/XmlIndexBuilder.java 9 Sep 2005 16:52:56 -0000 1.7
-+++ XmlSearch/src/com/sun/xmlsearch/xml/indexer/XmlIndexBuilder.java 2 Nov 2005 14:32:15 -0000
-@@ -42,15 +42,15 @@
- import java.net.URL;
- import org.xml.sax.InputSource;
- import org.xml.sax.HandlerBase;
--import com.sun.xml.parser.Resolver;
--import com.sun.xml.tree.XmlDocument;
-+import org.xml.sax.SAXNotRecognizedException;
-+import org.xml.sax.SAXNotSupportedException;
- import com.sun.xmlsearch.tree.*;
- import com.sun.xmlsearch.util.*;
- import com.sun.xmlsearch.db.*;
- import com.sun.xmlsearch.xml.XmlIndex;
-
--import com.sun.xml.parser.Parser;
--import com.sun.xml.parser.ValidatingParser;
-+import org.apache.xerces.parsers.DOMParser;
-+import org.apache.xerces.parsers.SAXParser;
-
- import com.jclark.xsl.om.*;
- import com.jclark.xsl.sax.*;
-@@ -433,7 +433,7 @@
- private boolean _useLocalTransformFile = false;
-
- private TreeBuilder _treeBuilder;
-- private MyXslEngine _transformEngine;
-+ private XSLTransformEngine _transformEngine;
- private Transform _indexingTransform;
- private Transform _defaultTransform;
- private IndexAdapter _indexAdapter;
-@@ -465,16 +465,21 @@
- public void indexDocument(URL docURL, String title) throws Exception {
- InputSource source = new InputSource(docURL.openStream());
- source.setSystemId(docURL.toString());
-- Parser sourceParser = new Parser();
-- sourceParser.setFastStandalone(true);
-+ SAXParser sourceParser = new SAXParser();
-+ try {
-+ sourceParser.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false);
-+ sourceParser.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
-+ } catch (SAXNotRecognizedException e) {
-+ } catch (SAXNotSupportedException e) {
-+ }
- XMLProcessorEx sourceLoader = new XMLProcessorImpl(sourceParser);
- // long start = System.currentTimeMillis();
- Node root =
- sourceLoader.load(
- source,
- 0,
-- _transformEngine.getSourceLoadContext(),
-- _transformEngine.getNameTable());
-+ null,
-+ null);
-
- //System.out.println((System.currentTimeMillis()-start)+" msec parse");
- // build association from generated node ids to nodes
-@@ -518,7 +523,7 @@
-
- private final void initXmlProcessor(String transform) throws Exception {
- _transformEngine = new MyXslEngine();
-- NameTable nameTable = _transformEngine.getNameTable();
-+ NameTable nameTable = new NameTableImpl();
- _treeBuilder = new TreeBuilder(nameTable);
- _defaultTransform = getTransform("default");
- _indexingTransform = getTransform(transform);
-@@ -545,9 +550,9 @@
- }
- // System.out.println(stylesheetUrl.toString());
- InputStream stylesheetStream = stylesheetUrl.openStream();
-- XmlDocument sheet =
-- XmlDocument.createXmlDocument(stylesheetStream, false);
-- return _transformEngine.createTransform(sheet);
-+ DOMParser parser = new DOMParser();
-+ parser.parse(new InputSource(stylesheetStream));
-+ return _transformEngine.createTransform(parser.getDocument());
- }
-
- // GTM new:
-Index: XmlSearch/src/com/sun/xmlsearch/xml/indexer/XmlIndexer.java
-===================================================================
-RCS file: /cvs/util/XmlSearch/src/com/sun/xmlsearch/xml/indexer/XmlIndexer.java,v
-retrieving revision 1.2
-diff -u -r1.2 XmlIndexer.java
---- XmlSearch/src/com/sun/xmlsearch/xml/indexer/XmlIndexer.java 9 Sep 2005 16:53:09 -0000 1.2
-+++ XmlSearch/src/com/sun/xmlsearch/xml/indexer/XmlIndexer.java 2 Nov 2005 14:32:16 -0000
-@@ -39,8 +39,6 @@
- import java.io.*;
- import java.util.*;
-
--import com.sun.xml.tree.XmlDocument;
--import com.sun.xml.parser.Resolver;
- import org.w3c.dom.*;
- import org.xml.sax.InputSource;
- import org.xml.sax.SAXException;
-cvs diff: Diffing XmlSearch/src/com/sun/xmlsearch/xml/qe
diff --git a/patches/vba/.cvsignore b/patches/vba/.cvsignore
deleted file mode 100644
index 282522db0..000000000
--- a/patches/vba/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Makefile
-Makefile.in
diff --git a/patches/vba/Makefile.am b/patches/vba/Makefile.am
deleted file mode 100644
index 0b280d2c7..000000000
--- a/patches/vba/Makefile.am
+++ /dev/null
@@ -1 +0,0 @@
-EXTRA_DIST = $(wildcard *.diff)
diff --git a/patches/vba/basic-millisecTimer.diff b/patches/vba/basic-millisecTimer.diff
deleted file mode 100644
index 4e096deb6..000000000
--- a/patches/vba/basic-millisecTimer.diff
+++ /dev/null
@@ -1,41 +0,0 @@
---- basic.orig/source/runtime/methods.cxx 2005-10-17 14:55:39.000000000 +0100
-+++ basic/source/runtime/methods.cxx 2005-11-10 15:44:54.000000000 +0000
-@@ -1977,6 +1977,18 @@ RTLFUNC(Time)
- }
- }
-
-+RTLFUNC(MilliTimer)
-+{
-+ TimeValue pTimeVal;
-+ long milliSeconds = -1;
-+ if ( osl_getSystemTime( &pTimeVal ) )
-+ {
-+ milliSeconds = pTimeVal.Seconds * 1000;
-+ milliSeconds += ( pTimeVal.Nanosec / 1000000 );
-+ }
-+
-+ rPar.Get(0)->PutLong( (long)milliSeconds );
-+}
- RTLFUNC(Timer)
- {
- Time aTime;
---- basic.orig/source/runtime/rtlproto.hxx 2005-09-07 22:40:58.000000000 +0100
-+++ basic/source/runtime/rtlproto.hxx 2005-11-10 15:32:14.000000000 +0000
-@@ -218,6 +218,7 @@ extern RTLFUNC(MonthName);
- extern RTLFUNC(Now);
- extern RTLFUNC(Second);
- extern RTLFUNC(Time);
-+extern RTLFUNC(MilliTimer);
- extern RTLFUNC(Timer);
- extern RTLFUNC(Weekday);
- extern RTLFUNC(WeekdayName);
---- basic.orig/source/runtime/stdobj.cxx 2005-09-07 22:41:29.000000000 +0100
-+++ basic/source/runtime/stdobj.cxx 2005-11-10 15:32:46.000000000 +0000
-@@ -516,6 +516,7 @@ static Methods aMethods[] = {
- { "number", SbxDOUBLE },
- { "Time", SbxVARIANT, _LFUNCTION,RTLNAME(Time) },
- { "Timer", SbxDATE, _FUNCTION, RTLNAME(Timer) },
-+{ "MilliTimer", SbxLONG, _FUNCTION, RTLNAME(MilliTimer) },
- { "TimeSerial", SbxDATE, 3 | _FUNCTION, RTLNAME(TimeSerial) },
- { "Hour", SbxLONG },
- { "Minute", SbxLONG },
diff --git a/patches/vba/basic-source-classes-eventatt-cxx.diff b/patches/vba/basic-source-classes-eventatt-cxx.diff
deleted file mode 100644
index 85796781f..000000000
--- a/patches/vba/basic-source-classes-eventatt-cxx.diff
+++ /dev/null
@@ -1,364 +0,0 @@
-Index: basic/source/classes/eventatt.cxx
-===================================================================
-RCS file: /cvs/script/basic/source/classes/eventatt.cxx,v
-retrieving revision 1.21
-diff -u -p -r1.21 eventatt.cxx
---- basic/source/classes/eventatt.cxx 13 Apr 2005 09:09:13 -0000 1.21
-+++ basic/source/classes/eventatt.cxx 13 Sep 2005 09:43:51 -0000
-@@ -128,6 +128,10 @@
-
-
- #include <cppuhelper/implbase1.hxx>
-+#ifdef ENABLE_VBA
-+#include <org/openoffice/vba/XVBAToOOEventDescGen.hpp>
-+#endif //ENABLE_VBA
-+
- using namespace ::com::sun::star::script;
- using namespace ::com::sun::star;
- using namespace ::com::sun::star::uno;
-@@ -144,10 +148,10 @@ class DialogEventAttacher : public Scrip
- ::osl::Mutex maMutex;
-
- public:
-- DialogEventAttacher( void ) {}
-+ DialogEventAttacher( void );
-
- // Methods
-- virtual void SAL_CALL attachEvents( const ::com::sun::star::uno::Sequence<
-+ virtual void SAL_CALL attachEvents( const ::com::sun::star::uno::Sequence<
- ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > >& Objects,
- const ::com::sun::star::uno::Reference< ::com::sun::star::script::XScriptListener >& xListener,
- const ::com::sun::star::uno::Any& Helper )
-@@ -156,6 +160,34 @@ public:
- ::com::sun::star::script::CannotCreateAdapterException,
- ::com::sun::star::lang::ServiceNotRegisteredException,
- ::com::sun::star::uno::RuntimeException);
-+
-+#ifdef ENABLE_VBA
-+ virtual void SAL_CALL attachVBAEvents( const ::com::sun::star::uno::Sequence<
-+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > >& Objects,
-+ const ::com::sun::star::uno::Any& Helper,
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& xModel )
-+ throw(::com::sun::star::lang::IllegalArgumentException,
-+ ::com::sun::star::beans::IntrospectionException,
-+ ::com::sun::star::script::CannotCreateAdapterException,
-+ ::com::sun::star::lang::ServiceNotRegisteredException,
-+ ::com::sun::star::uno::RuntimeException);
-+#endif //ENABLE_VBA
-+private:
-+ virtual void attachEventsToControl( com::sun::star::uno::Reference< ::com::sun::star::script::XScriptEventsSupplier >& xEventsSupplier,
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::script::XScriptListener >& xListener,
-+ com::sun::star::uno::Reference< com::sun::star::awt::XControl > xControl,
-+ com::sun::star::uno::Reference< com::sun::star::awt::XControlModel > xControlModel,
-+ const ::com::sun::star::uno::Any& Helper );
-+
-+ virtual void processControls( const ::com::sun::star::uno::Sequence<
-+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > >& Objects,
-+ const ::com::sun::star::uno::Reference< ::com::sun::star::script::XScriptListener >& xListener,
-+ const ::com::sun::star::uno::Any& Helper
-+#ifdef ENABLE_VBA
-+ , bool replaceBinding = false
-+#endif //ENABLE_VBA
-+ );
-+ com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext > m_xCtx;
- };
-
-
-@@ -505,10 +537,16 @@ void SAL_CALL attachDialogEvents( StarBA
- //const ::com::sun::star::uno::Reference< ::com::sun::star::script::XScriptListener >& xListener )
- {
- static Reference< XScriptEventsAttacher > xEventsAttacher;
-+#ifdef ENABLE_VBA
-+ static DialogEventAttacher* pEventsAttacher = NULL;
-+#endif //ENABLE_VBA
- Guard< Mutex > aGuard( Mutex::getGlobalMutex() );
- {
- if( !xEventsAttacher.is() )
- xEventsAttacher = new DialogEventAttacher();
-+#ifdef ENABLE_VBA
-+ pEventsAttacher = static_cast< DialogEventAttacher* >( xEventsAttacher.get() );
-+#endif //ENABLE_VBA
- }
-
- if( !xDialogControl.is() )
-@@ -535,8 +573,16 @@ void SAL_CALL attachDialogEvents( StarBA
- pObjects[ nControlCount ] = xDialogIface;
-
- Reference< XScriptListener > xScriptListener = new BasicScriptListener_Impl( pBasic, xModel );
-+
- Any Helper;
- xEventsAttacher->attachEvents( aObjectSeq, xScriptListener, Helper );
-+
-+#ifdef ENABLE_VBA
-+ if ( pEventsAttacher )
-+ pEventsAttacher->attachVBAEvents( aObjectSeq, Helper, xModel );
-+#endif //ENABLE_VBA
-+
-+
- }
-
-
-@@ -620,20 +666,7 @@ void DialogAllListener_Impl::firing_impl
-
-
- //===================================================================
--
--
--
--void SAL_CALL DialogEventAttacher::attachEvents
--(
-- const Sequence< Reference< XInterface > >& Objects,
-- const Reference< XScriptListener >& xListener,
-- const Any& Helper
--)
-- throw( IllegalArgumentException,
-- IntrospectionException,
-- CannotCreateAdapterException,
-- ServiceNotRegisteredException,
-- RuntimeException )
-+DialogEventAttacher::DialogEventAttacher()
- {
- // Get EventAttacher and Introspection (Introspection???)
- {
-@@ -654,11 +687,49 @@ void SAL_CALL DialogEventAttacher::attac
- if( !mxEventAttacher.is() )
- throw ServiceNotRegisteredException();
- }
-+ Reference < XPropertySet > xProps(
-+ ::comphelper::getProcessServiceFactory(), UNO_QUERY );
-+
-+ if( xProps.is() )
-+ {
-+ m_xCtx.set( xProps->getPropertyValue(
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DefaultContext" ))),
-+ UNO_QUERY );
-+ }
-+ }
-+}
-+void
-+DialogEventAttacher::processControls( const Sequence<
-+ Reference< XInterface > >& Objects,
-+ const Reference<XScriptListener >& xListener,
-+ const Any& Helper
-+#ifdef ENABLE_VBA
-+ , bool replaceBindings
-+#endif //ENABLE_VBA
-+)
-+{
-+#ifdef ENABLE_VBA
-+ static Reference< org::openoffice::vba::XVBAToOOEventDescGen > xVBAToOOEvtDesc;
-+ if ( m_xCtx.is() )
-+ {
-+ Reference< XMultiComponentFactory > xMFac(
-+ m_xCtx->getServiceManager(), UNO_QUERY );
-+ if ( xMFac.is() )
-+ {
-+ if ( !xVBAToOOEvtDesc.is() )
-+ xVBAToOOEvtDesc.set(
-+ xMFac->createInstanceWithContext(
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
-+ "org.openoffice.vba.VBAToOOEventDesc" ) ),
-+ m_xCtx ), UNO_QUERY );
-+ }
- }
-+#endif //ENABLE_VBA
-
- // Go over all objects
- const Reference< XInterface >* pObjects = Objects.getConstArray();
- sal_Int32 i, nObjCount = Objects.getLength();
-+
- for( i = 0 ; i < nObjCount ; i++ )
- {
- // We know that we have to do with instances of XControl
-@@ -670,48 +741,111 @@ void SAL_CALL DialogEventAttacher::attac
-
- // Get XEventsSupplier from ControlModel
- Reference< XControlModel > xControlModel = xControl->getModel();
-- Reference< XScriptEventsSupplier > xEventsSupplier( xControlModel, UNO_QUERY );
-- if( xEventsSupplier.is() )
-+ Reference< XScriptEventsSupplier > xEventsSupplier;
-+#ifdef ENABLE_VBA
-+ if ( replaceBindings && xVBAToOOEvtDesc.is() )
-+ // Or get XEventSupplier for VBAEvents
-+ xEventsSupplier.set( xVBAToOOEvtDesc->getEventSupplier( xControl ),
-+ UNO_QUERY );
-+ else
-+#endif //ENABLE_VBA
-+ xEventsSupplier.set( xControlModel, UNO_QUERY );
-+
-+ attachEventsToControl( xEventsSupplier, xListener, xControl, xControlModel,Helper );
-+ }
-+
-+}
-+
-+#ifdef ENABLE_VBA
-+void
-+DialogEventAttacher::attachVBAEvents(
-+ const Sequence< Reference< XInterface > >& Objects,
-+ const Any& Helper,
-+ const Reference< frame::XModel >& xModel
-+)
-+ throw( IllegalArgumentException,
-+ IntrospectionException,
-+ CannotCreateAdapterException,
-+ ServiceNotRegisteredException,
-+ RuntimeException )
-+{
-+
-+ Reference< XScriptListener > xVbaScriptListener;
-+ // #TODO ?? maybe better to create this object directly and not
-+ // use UNO ( can pass the StarBasic* ptr in this case )
-+ // to do that need to create .hxx file for
-+ // basic/source/vbaevents/eventhelper.cxx ( inc file needs to be
-+ // in basic source/inc
-+ if ( m_xCtx.is() )
-+ {
-+ Reference< XMultiComponentFactory > xMFac(
-+ m_xCtx->getServiceManager(), UNO_QUERY );
-+ if ( xMFac.is() )
-+ {
-+ Sequence< Any > args(1);
-+ args[0] <<= xModel;
-+ xVbaScriptListener.set(
-+ xMFac->createInstanceWithArgumentsAndContext(
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
-+ "org.openoffice.vba.EventListener" ) ), args,
-+ m_xCtx ), UNO_QUERY );
-+ }
-+ if ( xVbaScriptListener.is() )
- {
-- Reference< XNameContainer > xEventCont = xEventsSupplier->getEvents();
-- Sequence< OUString > aNames = xEventCont->getElementNames();
-- const OUString* pNames = aNames.getConstArray();
-- sal_Int32 j, nNameCount = aNames.getLength();
-+ processControls( Objects, xVbaScriptListener, Helper, true );
-+ }
-+ }
-+}
-+#endif //ENABLE_VBA
-
-- for( j = 0 ; j < nNameCount ; j++ )
-- {
-- ScriptEventDescriptor aDesc;
-+void
-+DialogEventAttacher::attachEventsToControl( Reference< XScriptEventsSupplier >& xEventsSupplier,
-+ const Reference< XScriptListener >& xListener,
-+ Reference< XControl > xControl,
-+ Reference< XControlModel > xControlModel,
-+ const Any& Helper )
-+{
-+ if( xEventsSupplier.is() )
-+ {
-+ Reference< XNameContainer > xEventCont = xEventsSupplier->getEvents();
-+ Sequence< OUString > aNames = xEventCont->getElementNames();
-+ const OUString* pNames = aNames.getConstArray();
-+ sal_Int32 j, nNameCount = aNames.getLength();
-
-- Any aElement = xEventCont->getByName( pNames[ j ] );
-- aElement >>= aDesc;
-- Reference< XAllListener > xAllListener =
-- new DialogAllListener_Impl( xListener, aDesc.ScriptType, aDesc.ScriptCode );
--
-- // Try first to attach event to the ControlModel
-- sal_Bool bSuccess = sal_False;
-- try
-- {
-- Reference< XEventListener > xListener = mxEventAttacher->
-- attachSingleEventListener( xControlModel, xAllListener, Helper,
-- aDesc.ListenerType, aDesc.AddListenerParam, aDesc.EventMethod );
-+ for( j = 0 ; j < nNameCount ; j++ )
-+ {
-+ ScriptEventDescriptor aDesc;
-
-- if( xListener.is() )
-- bSuccess = sal_True;
-- }
-- catch( IllegalArgumentException& )
-- {}
-- catch( IntrospectionException& )
-- {}
-- catch( CannotCreateAdapterException& )
-- {}
-- catch( ServiceNotRegisteredException& )
-- {}
-- //{
-- //throw IntrospectionException();
-- //}
-+ Any aElement = xEventCont->getByName( pNames[ j ] );
-+ aElement >>= aDesc;
-+ Reference< XAllListener > xAllListener =
-+ new DialogAllListener_Impl( xListener, aDesc.ScriptType, aDesc.ScriptCode );
-+
-+ // Try first to attach event to the ControlModel
-+ sal_Bool bSuccess = sal_False;
-+ try
-+ {
-+ Reference< XEventListener > xListener = mxEventAttacher->
-+ attachSingleEventListener( xControlModel, xAllListener, Helper,
-+ aDesc.ListenerType, aDesc.AddListenerParam, aDesc.EventMethod );
-
-- try
-- {
-+ if( xListener.is() )
-+ bSuccess = sal_True;
-+ }
-+ catch( IllegalArgumentException& )
-+ {}
-+ catch( IntrospectionException& )
-+ {}
-+ catch( CannotCreateAdapterException& )
-+ {}
-+ catch( ServiceNotRegisteredException& )
-+ {}
-+ //{
-+ //throw IntrospectionException();
-+ //}
-+
-+ try
-+ {
- // If we had no success, try to attach to the Control
- if( !bSuccess )
- {
-@@ -720,19 +854,33 @@ void SAL_CALL DialogEventAttacher::attac
- ( xControl, xAllListener, Helper, aDesc.ListenerType,
- aDesc.AddListenerParam, aDesc.EventMethod );
- }
-- }
-- catch( IllegalArgumentException& )
-- {}
-- catch( IntrospectionException& )
-- {}
-- catch( CannotCreateAdapterException& )
-- {}
-- catch( ServiceNotRegisteredException& )
-- {}
- }
-+ catch( IllegalArgumentException& )
-+ {}
-+ catch( IntrospectionException& )
-+ {}
-+ catch( CannotCreateAdapterException& )
-+ {}
-+ catch( ServiceNotRegisteredException& )
-+ {}
- }
- }
-+}
-+
-
-+void SAL_CALL DialogEventAttacher::attachEvents
-+(
-+ const Sequence< Reference< XInterface > >& Objects,
-+ const Reference< XScriptListener >& xListener,
-+ const Any& Helper
-+)
-+ throw( IllegalArgumentException,
-+ IntrospectionException,
-+ CannotCreateAdapterException,
-+ ServiceNotRegisteredException,
-+ RuntimeException )
-+{
-+ processControls( Objects, xListener, Helper );
- }
-
- void RTL_Impl_CreateUnoDialog( StarBASIC* pBasic, SbxArray& rPar, BOOL bWrite )
diff --git a/patches/vba/extensions-source-propctrlr-formcontroller-cxx.diff b/patches/vba/extensions-source-propctrlr-formcontroller-cxx.diff
deleted file mode 100644
index 78454a81d..000000000
--- a/patches/vba/extensions-source-propctrlr-formcontroller-cxx.diff
+++ /dev/null
@@ -1,30 +0,0 @@
-Index: extensions/source/propctrlr/formcontroller.cxx
-===================================================================
-RCS file: /cvs/util/extensions/source/propctrlr/formcontroller.cxx,v
-retrieving revision 1.85
-diff -u -p -u -r1.85 formcontroller.cxx
---- extensions/source/propctrlr/formcontroller.cxx 23 Mar 2005 11:56:05 -0000 1.85
-+++ extensions/source/propctrlr/formcontroller.cxx 8 Sep 2005 15:25:06 -0000
-@@ -1354,6 +1354,9 @@ class EventsNameReplace_Impl:
-
- if ( (pEvent->ScriptCode.getLength() > 0)
- && (pEvent->ScriptType.getLength() > 0)
-+#ifdef ENABLE_VBA
-+ && (pEvent->ScriptType.compareToAscii("VBAInterop") != 0 )
-+#endif
- )
- {
- ::rtl::OUString sScriptType = pEvent->ScriptType;
-@@ -1725,6 +1728,12 @@ class EventsNameReplace_Impl:
- for (sal_uInt32 nI=0; nI<nScrEvts;nI++)
- {
- const ScriptEventDescriptor& rEvDe = pEvDes[nI];
-+#ifdef ENABLE_VBA
-+ if ( ( pEvDes[ nI ].ScriptType.compareToAscii("VBAInterop") == 0 ) )
-+ // don't process or show "VBAInterop" bindings
-+ continue;
-+#endif
-+
- if ( (aListenerClassName.Equals((const sal_Unicode*)rEvDe.ListenerType)
- || aListener.Equals((const sal_Unicode*)rEvDe.ListenerType) )
- && pMethods->equals(rEvDe.EventMethod))
diff --git a/patches/vba/extensions-source-propctrlr-makefile-mk.diff b/patches/vba/extensions-source-propctrlr-makefile-mk.diff
deleted file mode 100644
index 9811823a6..000000000
--- a/patches/vba/extensions-source-propctrlr-makefile-mk.diff
+++ /dev/null
@@ -1,24 +0,0 @@
-Index: extensions/source/propctrlr/makefile.mk
-===================================================================
-RCS file: /cvs/util/extensions/source/propctrlr/makefile.mk,v
-retrieving revision 1.15
-diff -u -p -u -r1.15 makefile.mk
---- extensions/source/propctrlr/makefile.mk 9 Jun 2005 14:57:11 -0000 1.15
-+++ extensions/source/propctrlr/makefile.mk 8 Sep 2005 15:24:36 -0000
-@@ -75,10 +75,16 @@ USE_DEFFILE=TRUE
- CDEFS+=-DCOMPMOD_NAMESPACE=pcr
- CDEFS+=-DCOMPMOD_RESPREFIX=pcr
-
-+.IF "$(ENABLE_VBA)"=="YES"
-+ CDEFS+=-DENABLE_VBA
-+.ENDIF
-+
- .IF $(DVO_XFORMS) != ""
- CDEFS+=-DDVO_XFORMS
- .ENDIF
-
-+
-+
- # --- Files --------------------------------------------------------
-
- EXCEPTIONSFILES= $(SLO)$/controlfontdialog.obj \
diff --git a/patches/vba/gcc4-vba-pastespecial-visibility.diff b/patches/vba/gcc4-vba-pastespecial-visibility.diff
deleted file mode 100644
index 0ce8ef6df..000000000
--- a/patches/vba/gcc4-vba-pastespecial-visibility.diff
+++ /dev/null
@@ -1,22 +0,0 @@
---- sc/source/ui/inc/viewfunc.hxx.bakj 2005-09-22 14:56:17.000000000 +0530
-+++ sc/source/ui/inc/viewfunc.hxx 2005-09-22 15:03:17.000000000 +0530
-@@ -151,7 +151,7 @@
- SC_DLLPUBLIC void CutToClip( ScDocument* pClipDoc = NULL, BOOL bIncludeObjects = FALSE );
- SC_DLLPUBLIC BOOL CopyToClip( ScDocument* pClipDoc = NULL, BOOL bCut = FALSE, BOOL bApi = FALSE,
- BOOL bIncludeObjects = FALSE, BOOL bStopEdit = TRUE );
-- BOOL PasteFromClip( USHORT nFlags, ScDocument* pClipDoc,
-+SC_DLLPUBLIC BOOL PasteFromClip( USHORT nFlags, ScDocument* pClipDoc,
- USHORT nFunction = PASTE_NOFUNC, BOOL bSkipEmpty = FALSE,
- BOOL bTranspose = FALSE, BOOL bAsLink = FALSE,
- InsCellCmd eMoveMode = INS_NONE,
---- sc/source/ui/inc/transobj.hxx.bakj 2005-09-22 15:04:30.000000000 +0530
-+++ sc/source/ui/inc/transobj.hxx 2005-09-22 15:05:31.000000000 +0530
-@@ -148,7 +148,7 @@
- void SetDragSourceFlags( USHORT nFlags );
- void SetDragWasInternal();
-
-- static ScTransferObj* GetOwnClipboard( Window* pUIWin );
-+SC_DLLPUBLIC static ScTransferObj* GetOwnClipboard( Window* pUIWin );
-
- static SfxObjectShell* SetDrawClipDoc( BOOL bAnyOle ); // update ScGlobal::pDrawClipDocShellRef
- };
diff --git a/patches/vba/offapi-org-openoffice-MSFormReturnTypes.idl b/patches/vba/offapi-org-openoffice-MSFormReturnTypes.idl
deleted file mode 100644
index 94b4ebcb4..000000000
--- a/patches/vba/offapi-org-openoffice-MSFormReturnTypes.idl
+++ /dev/null
@@ -1,28 +0,0 @@
---- /dev/null 2005-06-05 14:44:09.000000000 +0100
-+++ offapi/org/openoffice/vba/MSFormReturnTypes.idl 2005-08-31 17:06:29.000000000 +0100
-@@ -0,0 +1,25 @@
-+module MSForms
-+{
-+ struct ReturnBoolean
-+ {
-+ boolean Value;
-+ };
-+
-+ struct ReturnEffect
-+ {
-+ //fmDropEffect Value;
-+ short Value;
-+ };
-+
-+ struct ReturnInteger
-+ {
-+ long Value;
-+ };
-+
-+ struct ReturnSingle
-+ {
-+ float Value;
-+ };
-+
-+
-+};
diff --git a/patches/vba/offapi-org-openoffice-vba-MSFormReturnTypes-idl.diff b/patches/vba/offapi-org-openoffice-vba-MSFormReturnTypes-idl.diff
deleted file mode 100644
index f79738252..000000000
--- a/patches/vba/offapi-org-openoffice-vba-MSFormReturnTypes-idl.diff
+++ /dev/null
@@ -1,28 +0,0 @@
---- /dev/null 2005-10-10 09:55:51.712408000 +0100
-+++ offapi/org/openoffice/vba/MSFormReturnTypes.idl 2005-09-05 16:19:12.000000000 +0100
-@@ -0,0 +1,25 @@
-+module MSForms
-+{
-+ struct ReturnBoolean
-+ {
-+ boolean Value;
-+ };
-+
-+ struct ReturnEffect
-+ {
-+ //fmDropEffect Value;
-+ short Value;
-+ };
-+
-+ struct ReturnInteger
-+ {
-+ long Value;
-+ };
-+
-+ struct ReturnSingle
-+ {
-+ float Value;
-+ };
-+
-+
-+};
diff --git a/patches/vba/offapi-org-openoffice-vba-excel-constants-idl.diff b/patches/vba/offapi-org-openoffice-vba-excel-constants-idl.diff
deleted file mode 100644
index 67d0db7d1..000000000
--- a/patches/vba/offapi-org-openoffice-vba-excel-constants-idl.diff
+++ /dev/null
@@ -1,15 +0,0 @@
---- /dev/null 2005-11-06 11:49:58.372324250 +0000
-+++ offapi/org/openoffice/vba/Excel/Constants.idl 2005-11-02 18:24:57.000000000 +0000
-@@ -0,0 +1,12 @@
-+#ifndef __org_openoffice_vba_Excel_Constants_idl__
-+#define __org_openoffice_vba_Excel_Constants_idl__
-+module org { module openoffice { module vba { module Excel {
-+
-+constants Constants
-+{
-+const long xlNone = -4142; //(&HFFFFEFD2)
-+const long xlAll = -4104; //(&HFFFFEFF8)
-+};
-+}; }; }; };
-+
-+#endif
diff --git a/patches/vba/offapi-org-openoffice-vba-excel-makefile-mk.diff b/patches/vba/offapi-org-openoffice-vba-excel-makefile-mk.diff
deleted file mode 100644
index 530ef5cbd..000000000
--- a/patches/vba/offapi-org-openoffice-vba-excel-makefile-mk.diff
+++ /dev/null
@@ -1,31 +0,0 @@
---- /dev/null 2005-11-18 19:22:12.156310750 +0000
-+++ offapi/org/openoffice/vba/Excel/makefile.mk 2005-11-19 10:21:27.000000000 +0000
-@@ -0,0 +1,28 @@
-+PRJ=..$/..$/..$/..
-+
-+PRJNAME=api
-+
-+TARGET=excel
-+PACKAGE=org$/openoffice$/vba$/Excel
-+
-+# --- Settings -----------------------------------------------------
-+.INCLUDE : $(PRJ)$/util$/makefile.pmk
-+
-+.IF "$(ENABLE_VBA)"!="YES"
-+dummy:
-+ @echo "not building vba..."
-+.ENDIF
-+
-+# ------------------------------------------------------------------------
-+
-+IDLFILES=\
-+ XlCutCopyMode.idl \
-+ XlFindLookIn.idl\
-+ Constants.idl \
-+ XlCalculation.idl \
-+ XlCellType.idl
-+
-+# ------------------------------------------------------------------
-+
-+.INCLUDE : target.mk
-+
diff --git a/patches/vba/offapi-org-openoffice-vba-excel-xlcalculation-idl.diff b/patches/vba/offapi-org-openoffice-vba-excel-xlcalculation-idl.diff
deleted file mode 100644
index 26f177cc0..000000000
--- a/patches/vba/offapi-org-openoffice-vba-excel-xlcalculation-idl.diff
+++ /dev/null
@@ -1,18 +0,0 @@
---- /dev/null 2005-11-18 19:22:12.156310750 +0000
-+++ offapi/org/openoffice/vba/Excel/XlCalculation.idl 2005-11-19 10:21:27.000000000 +0000
-@@ -0,0 +1,15 @@
-+#ifndef __org_openoffice_vba_Excel_XlCalculation_idl__
-+#define __org_openoffice_vba_Excel_XlCalculation_idl__
-+module org { module openoffice { module vba { module Excel {
-+
-+constants XlCalculation
-+{
-+const long xlCellTypeVisible = 12;
-+const long xlCalculationManual = -4135; // (&HFFFFEFD9)
-+const long xlCalculationAutomatic = -4105; //(&HFFFFEFF7)
-+const long xlCalculationSemiautomatic = 2;
-+
-+};
-+}; }; }; };
-+
-+#endif
diff --git a/patches/vba/offapi-org-openoffice-vba-excel-xlcelltype-idl.diff b/patches/vba/offapi-org-openoffice-vba-excel-xlcelltype-idl.diff
deleted file mode 100644
index cdf0dafc4..000000000
--- a/patches/vba/offapi-org-openoffice-vba-excel-xlcelltype-idl.diff
+++ /dev/null
@@ -1,23 +0,0 @@
---- /dev/null 2005-10-10 09:55:51.712408000 +0100
-+++ offapi/org/openoffice/vba/Excel/XlCellType.idl 2005-09-19 11:58:13.000000000 +0100
-@@ -0,0 +1,20 @@
-+#ifndef __org_openoffice_vba_Excel_XlCellType_idl__
-+#define __org_openoffice_vba_Excel_XlCellType_idl__
-+module org { module openoffice { module vba { module Excel {
-+
-+constants XlCellType
-+{
-+const long xlCellTypeAllFormatConditions = -4172; // (&HFFFFEFB4)
-+const long xlCellTypeAllValidation = -4174; // (&HFFFFEFB2)
-+const long xlCellTypeBlanks = 4; //
-+const long xlCellTypeComments = -4144; // (&HFFFFEFD0)
-+const long xlCellTypeConstants = 2;
-+const long xlCellTypeFormulas = -4123; // (&HFFFFEFE5)
-+const long xlCellTypeLastCell = 11;
-+const long xlCellTypeSameFormatConditions = -4173; // (&HFFFFEFB3)
-+const long xlCellTypeSameValidation = -4175; // (&HFFFFEFB1)
-+const long xlCellTypeVisible = 12;
-+};
-+}; }; }; };
-+
-+#endif
diff --git a/patches/vba/offapi-org-openoffice-vba-excel-xlcutcopymode-idl.diff b/patches/vba/offapi-org-openoffice-vba-excel-xlcutcopymode-idl.diff
deleted file mode 100644
index 90e04ca15..000000000
--- a/patches/vba/offapi-org-openoffice-vba-excel-xlcutcopymode-idl.diff
+++ /dev/null
@@ -1,15 +0,0 @@
---- /dev/null 2005-11-06 11:49:58.372324250 +0000
-+++ offapi/org/openoffice/vba/Excel/XlCutCopyMode.idl 2005-11-01 20:00:32.000000000 +0000
-@@ -0,0 +1,12 @@
-+#ifndef __org_openoffice_vba_Excel_XlCutCopyMode_idl__
-+#define __org_openoffice_vba_Excel_XlCutCopyMode_idl__
-+module org { module openoffice { module vba { module Excel {
-+
-+constants XlCutCopyMode
-+{
-+const long xlCopy = 1;
-+const long xlCut = 2;
-+};
-+}; }; }; };
-+
-+#endif
diff --git a/patches/vba/offapi-org-openoffice-vba-excel-xlfindlookin-idl.diff b/patches/vba/offapi-org-openoffice-vba-excel-xlfindlookin-idl.diff
deleted file mode 100644
index e9101c8f7..000000000
--- a/patches/vba/offapi-org-openoffice-vba-excel-xlfindlookin-idl.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- /dev/null 2005-11-06 11:49:58.372324250 +0000
-+++ offapi/org/openoffice/vba/Excel/XlFindLookIn.idl 2005-11-02 18:11:49.000000000 +0000
-@@ -0,0 +1,13 @@
-+#ifndef __org_openoffice_vba_Excel_XlFindLookIn_idl__
-+#define __org_openoffice_vba_Excel_XlFindLookIn_idl__
-+module org { module openoffice { module vba { module Excel {
-+
-+constants XlFindLookIn
-+{
-+const long xlComments = -4144; // (&HFFFFEFD0)
-+const long xlFormulas = -4123; //(&HFFFFEFE5)
-+const long xlValues = -4163; //(&HFFFFEFBD)
-+};
-+}; }; }; };
-+
-+#endif
diff --git a/patches/vba/offapi-org-openoffice-vba-makefile-mk.diff b/patches/vba/offapi-org-openoffice-vba-makefile-mk.diff
deleted file mode 100644
index 1da05d18c..000000000
--- a/patches/vba/offapi-org-openoffice-vba-makefile-mk.diff
+++ /dev/null
@@ -1,54 +0,0 @@
---- /dev/null 2006-01-03 09:47:36.312320500 +0000
-+++ offapi/org/openoffice/vba/makefile.mk 2006-01-04 15:46:09.000000000 +0000
-@@ -0,0 +1,51 @@
-+PRJ=..$/..$/..
-+
-+PRJNAME=api
-+
-+TARGET=vba
-+PACKAGE=org$/openoffice$/vba
-+
-+# --- Settings -----------------------------------------------------
-+.INCLUDE : $(PRJ)$/util$/makefile.pmk
-+
-+.IF "$(ENABLE_VBA)"!="YES"
-+dummy:
-+ @echo "not building vba..."
-+.ENDIF
-+
-+# ------------------------------------------------------------------------
-+
-+IDLFILES=\
-+ XApplication.idl\
-+ XCollection.idl\
-+ XGlobals.idl\
-+ XRange.idl\
-+ XWorkbook.idl\
-+ XWorkbooks.idl\
-+ XWorksheet.idl\
-+ XWorksheets.idl\
-+ XFont.idl\
-+ XOutline.idl\
-+ MSFormReturnTypes.idl\
-+ XInterior.idl\
-+ XWorksheetFunction.idl\
-+ XlPasteSpecialOperation.idl\
-+ XlPasteType.idl\
-+ XlBuiltInDialog.idl\
-+ XVBAToOOEventDescGen.idl\
-+ XWindow.idl\
-+ XChartObject.idl\
-+ XChartObjects.idl\
-+ XChart.idl\
-+ XSeriesCollection.idl\
-+ XSeries.idl\
-+ XDialog.idl \
-+ XArrayWrapper.idl \
-+ XPivotTables.idl \
-+ XPivotTable.idl \
-+ XPivotCache.idl \
-+ XDialogs.idl
-+
-+# ------------------------------------------------------------------
-+
-+.INCLUDE : target.mk
diff --git a/patches/vba/offapi-org-openoffice-vba-xapplication-idl.diff b/patches/vba/offapi-org-openoffice-vba-xapplication-idl.diff
deleted file mode 100644
index d14cd60e9..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xapplication-idl.diff
+++ /dev/null
@@ -1,46 +0,0 @@
---- /dev/null 2005-11-18 19:22:12.156310750 +0000
-+++ offapi/org/openoffice/vba/XApplication.idl 2005-11-19 10:21:17.000000000 +0000
-@@ -0,0 +1,43 @@
-+#ifndef __org_openoffice_vba_XApplication_idl__
-+#define __org_openoffice_vba_XApplication_idl__
-+
-+#ifndef __com_sun_star_uno_XInterface_idl__
-+#include <com/sun/star/uno/XInterface.idl>
-+#endif
-+
-+module org { module openoffice { module vba {
-+
-+published interface XRange;
-+published interface XWorkbook;
-+published interface XWorkbooks;
-+published interface XWorksheets;
-+published interface XWorksheetFunction;
-+published interface XWindow;
-+
-+published interface XApplication: com::sun::star::uno::XInterface
-+{
-+ [attribute, readonly] XRange Selection;
-+ [attribute, readonly] XWorkbook ActiveWorkbook;
-+ [attribute, readonly] XRange ActiveCell;
-+ [attribute, readonly] XWindow ActiveWindow;
-+ [attribute] long Calculation;
-+ //#TODO #FIXME this is more of a placeholder, will return
-+ // the value of activeworkbook, in xl 'ThisWorkbook' should return the
-+ // workbook in which the 'calling' macro is running. Should be possible
-+ // to determine this
-+ [attribute, readonly] XWorkbook ThisWorkbook;
-+ [attribute] boolean ScreenUpdating;
-+ [attribute] any CutCopyMode;
-+ any Workbooks( [in] any aIndex );
-+ XWorksheetFunction WorksheetFunction();
-+ any Evaluate( [in] string Name );
-+ any Dialogs( [in] any DialogIndex );
-+ // #FIXME #TODO up to 30 args needed
-+ double CountA( [in] any arg1 );
-+};
-+
-+}; }; };
-+
-+#endif
-+
-+
diff --git a/patches/vba/offapi-org-openoffice-vba-xarraywrapper-idl.diff b/patches/vba/offapi-org-openoffice-vba-xarraywrapper-idl.diff
deleted file mode 100644
index c8077da1c..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xarraywrapper-idl.diff
+++ /dev/null
@@ -1,31 +0,0 @@
-*** /dev/null 2005-12-16 09:19:58.720346000 +0000
---- offapi/org/openoffice/vba/XArrayWrapper.idl 2005-12-21 17:00:25.000000000 +0000
-***************
-*** 0 ****
---- 1,26 ----
-+ #ifndef __org_openoffice_vba_XArrayWrapper_idl__
-+ #define __org_openoffice_vba_XArrayWrapper_idl__
-+
-+ #ifndef __com_sun_star_uno_XInterface_idl__
-+ #include <com/sun/star/uno/XInterface.idl>
-+ #endif
-+
-+ //=============================================================================
-+
-+ module org { module openoffice { module vba {
-+
-+ //=============================================================================
-+
-+ published interface XArrayWrapper: com::sun::star::uno::XInterface
-+ {
-+ [attribute, readonly ] boolean IsZeroIndex;
-+ [attribute, readonly ] any Array;
-+ };
-+
-+ //=============================================================================
-+
-+ }; }; };
-+
-+ #endif
-+
-+
diff --git a/patches/vba/offapi-org-openoffice-vba-xchart-idl.diff b/patches/vba/offapi-org-openoffice-vba-xchart-idl.diff
deleted file mode 100644
index cc47ff53a..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xchart-idl.diff
+++ /dev/null
@@ -1,29 +0,0 @@
---- /dev/null 2005-11-27 19:42:11.860354750 +0000
-+++ offapi/org/openoffice/vba/XChart.idl 2005-11-28 16:24:36.000000000 +0000
-@@ -0,0 +1,26 @@
-+#ifndef __org_openoffice_vba_XChart_idl__
-+#define __org_openoffice_vba_XChart_idl__
-+
-+#ifndef __com_sun_star_uno_XInterface_idl__
-+#include <com/sun/star/uno/XInterface.idl>
-+#endif
-+
-+//=============================================================================
-+
-+module org { module openoffice { module vba {
-+
-+//=============================================================================
-+
-+published interface XChart: com::sun::star::uno::XInterface
-+{
-+ [attribute, readonly] string Name;
-+ any SeriesCollection( [in] any Item );
-+};
-+
-+//=============================================================================
-+
-+}; }; };
-+
-+#endif
-+
-+
diff --git a/patches/vba/offapi-org-openoffice-vba-xchartobject-idl.diff b/patches/vba/offapi-org-openoffice-vba-xchartobject-idl.diff
deleted file mode 100644
index 20f3ff7cc..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xchartobject-idl.diff
+++ /dev/null
@@ -1,30 +0,0 @@
---- /dev/null 2005-11-27 19:42:11.860354750 +0000
-+++ offapi/org/openoffice/vba/XChartObject.idl 2005-11-28 16:24:36.000000000 +0000
-@@ -0,0 +1,27 @@
-+#ifndef __org_openoffice_vba_XChartObject_idl__
-+#define __org_openoffice_vba_XChartObject_idl__
-+
-+#ifndef __com_sun_star_uno_XInterface_idl__
-+#include <com/sun/star/uno/XInterface.idl>
-+#endif
-+
-+//=============================================================================
-+
-+module org { module openoffice { module vba {
-+
-+//=============================================================================
-+published interface XChart;
-+published interface XChartObject: com::sun::star::uno::XInterface
-+{
-+ [attribute, readonly] XChart Chart;
-+ [attribute, readonly] string Name;
-+ any test();
-+};
-+
-+//=============================================================================
-+
-+}; }; };
-+
-+#endif
-+
-+
diff --git a/patches/vba/offapi-org-openoffice-vba-xchartobjects-idl.diff b/patches/vba/offapi-org-openoffice-vba-xchartobjects-idl.diff
deleted file mode 100644
index cc00eb709..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xchartobjects-idl.diff
+++ /dev/null
@@ -1,34 +0,0 @@
---- /dev/null 2005-11-27 19:42:11.860354750 +0000
-+++ offapi/org/openoffice/vba/XChartObjects.idl 2005-11-28 16:24:36.000000000 +0000
-@@ -0,0 +1,31 @@
-+#ifndef __org_openoffice_vba_XChartObjects_idl__
-+#define __org_openoffice_vba_XChartObjects_idl__
-+
-+#ifndef __com_sun_star_uno_XInterface_idl__
-+#include <com/sun/star/uno/XInterface.idl>
-+#endif
-+
-+#ifndef __org_openoffice_vba_XCollection_idl__
-+#include <org/openoffice/vba/XCollection.idl>
-+#endif
-+
-+//=============================================================================
-+
-+module org { module openoffice { module vba {
-+
-+//=============================================================================
-+//published interface XChartObjects: org::openoffice::vba::XCollection
-+published interface XChartObjects: ::com::sun::star::uno::XInterface
-+{
-+ // #TODO #FIXME the very basic functionality e.g.
-+ //any Add( [in] double Left, [in] double Top, [in] double Width, [in] double Height );
-+ //void Delete();
-+};
-+
-+//=============================================================================
-+
-+}; }; };
-+
-+#endif
-+
-+
diff --git a/patches/vba/offapi-org-openoffice-vba-xcollection-idl.diff b/patches/vba/offapi-org-openoffice-vba-xcollection-idl.diff
deleted file mode 100644
index 7da1e5280..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xcollection-idl.diff
+++ /dev/null
@@ -1,31 +0,0 @@
---- /dev/null 2005-10-10 09:55:51.712408000 +0100
-+++ offapi/org/openoffice/vba/XCollection.idl 2005-08-09 11:46:10.000000000 +0100
-@@ -0,0 +1,28 @@
-+#ifndef __org_openoffice_vba_XCollection_idl__
-+#define __org_openoffice_vba_XCollection_idl__
-+
-+#ifndef __com_sun_star_uno_XInterface_idl__
-+#include <com/sun/star/uno/XInterface.idl>
-+#endif
-+
-+//=============================================================================
-+
-+module org { module openoffice { module vba {
-+
-+//=============================================================================
-+
-+published interface XApplication;
-+
-+published interface XCollection : ::com::sun::star::uno::XInterface
-+{
-+ [attribute, readonly] long Count;
-+ [attribute, readonly] any Parent;
-+ [attribute, readonly] long Creator;
-+ [attribute, readonly] XApplication Application;
-+
-+ any Item( [in] any Index );
-+};
-+
-+}; }; };
-+
-+#endif
diff --git a/patches/vba/offapi-org-openoffice-vba-xdialog-idl.diff b/patches/vba/offapi-org-openoffice-vba-xdialog-idl.diff
deleted file mode 100644
index 9bb56bcb3..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xdialog-idl.diff
+++ /dev/null
@@ -1,31 +0,0 @@
---- /dev/null 2005-10-10 09:55:51.712408000 +0100
-+++ offapi/org/openoffice/vba/XDialog.idl 2005-10-06 11:04:31.000000000 +0100
-@@ -0,0 +1,28 @@
-+#ifndef __org_openoffice_vba_XDialog_idl__
-+#define __org_openoffice_vba_XDialog_idl__
-+
-+#ifndef __com_sun_star_uno_XInterface_idl__
-+#include <com/sun/star/uno/XInterface.idl>
-+#endif
-+
-+
-+//=============================================================================
-+
-+module org { module openoffice { module vba {
-+
-+//=============================================================================
-+
-+published interface XApplication;
-+
-+published interface XDialog : com::sun::star::uno::XInterface
-+{
-+ [attribute, readonly] XApplication Application;
-+ [attribute, readonly] any Parent;
-+ [attribute, readonly] long Creator;
-+ void Show();
-+};
-+
-+}; }; };
-+
-+#endif
-+
diff --git a/patches/vba/offapi-org-openoffice-vba-xdialogs-idl.diff b/patches/vba/offapi-org-openoffice-vba-xdialogs-idl.diff
deleted file mode 100644
index f7d7866e6..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xdialogs-idl.diff
+++ /dev/null
@@ -1,29 +0,0 @@
---- /dev/null 2005-10-10 09:55:51.712408000 +0100
-+++ offapi/org/openoffice/vba/XDialogs.idl 2005-10-06 11:04:31.000000000 +0100
-@@ -0,0 +1,26 @@
-+#ifndef __org_openoffice_vba_XDialogs_idl__
-+#define __org_openoffice_vba_XDialogs_idl__
-+
-+#ifndef __com_sun_star_uno_XInterface_idl__
-+#include <com/sun/star/uno/XInterface.idl>
-+#endif
-+
-+#ifndef __org_openoffice_vba_XCollection_idl__
-+#include <org/openoffice/vba/XCollection.idl>
-+#endif
-+
-+//=============================================================================
-+
-+module org { module openoffice { module vba {
-+
-+//=============================================================================
-+
-+published interface XDialogs : ::org::openoffice::vba::XCollection
-+{
-+ void Dummy();
-+};
-+
-+}; }; };
-+
-+#endif
-+
diff --git a/patches/vba/offapi-org-openoffice-vba-xfont-idl.diff b/patches/vba/offapi-org-openoffice-vba-xfont-idl.diff
deleted file mode 100644
index 2bc428c59..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xfont-idl.diff
+++ /dev/null
@@ -1,35 +0,0 @@
---- /dev/null 2005-10-10 09:55:51.712408000 +0100
-+++ offapi/org/openoffice/vba/XFont.idl 2005-06-20 09:44:24.000000000 +0100
-@@ -0,0 +1,32 @@
-+#ifndef __org_openoffice_vba_XFont_idl__
-+#define __org_openoffice_vba_Font_idl__
-+
-+#ifndef __com_sun_star_uno_XInterface_idl__
-+#include <com/sun/star/uno/XInterface.idl>
-+#endif
-+#ifndef __com_sun_star_lang_IndexOutOfBoundsException_idl__
-+#include <com/sun/star/lang/IndexOutOfBoundsException.idl>
-+#endif
-+
-+
-+//=============================================================================
-+
-+module org { module openoffice { module vba {
-+
-+published interface XFont: com::sun::star::uno::XInterface
-+{
-+ [attribute] boolean Bold;
-+ [attribute] boolean Underline;
-+ [attribute] boolean Strikethrough;
-+ [attribute] boolean Shadow;
-+ [attribute] boolean Italic;
-+ [attribute] string Name;
-+};
-+
-+//=============================================================================
-+
-+}; }; };
-+
-+#endif
-+
-+
diff --git a/patches/vba/offapi-org-openoffice-vba-xglobals-idl.diff b/patches/vba/offapi-org-openoffice-vba-xglobals-idl.diff
deleted file mode 100644
index 1a7139219..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xglobals-idl.diff
+++ /dev/null
@@ -1,36 +0,0 @@
---- /dev/null 2005-11-06 11:49:58.372324250 +0000
-+++ offapi/org/openoffice/vba/XGlobals.idl 2005-11-01 10:24:55.000000000 +0000
-@@ -0,0 +1,33 @@
-+#ifndef __org_openoffice_vba_XGlobals_idl__
-+#define __org_openoffice_vba_XGlobals_idl__
-+
-+#ifndef __com_sun_star_uno_XInterface_idl__
-+#include <com/sun/star/uno/XInterface.idl>
-+#endif
-+
-+module org { module openoffice { module vba {
-+
-+published interface XApplication;
-+published interface XWorkbook;
-+published interface XWorksheet;
-+published interface XWorksheets;
-+published interface XWorkbooks;
-+
-+published interface XGlobals: com::sun::star::uno::XInterface
-+{
-+ // FIXME, need better way to expose globals
-+ sequence< any > getGlobals();
-+
-+ [attribute, readonly] org::openoffice::vba::XApplication Application;
-+ [attribute, readonly] org::openoffice::vba::XWorkbook ActiveWorkbook;
-+ [attribute, readonly] org::openoffice::vba::XWorksheet ActiveSheet;
-+ any WorkSheets( [in] any aIndex );
-+ any WorkBooks( [in] any aIndex );
-+ any Sheets( [in] any aIndex );
-+};
-+
-+}; }; };
-+
-+#endif
-+
-+
diff --git a/patches/vba/offapi-org-openoffice-vba-xinterior-idl.diff b/patches/vba/offapi-org-openoffice-vba-xinterior-idl.diff
deleted file mode 100644
index 354a4bc85..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xinterior-idl.diff
+++ /dev/null
@@ -1,29 +0,0 @@
---- /dev/null 2005-10-10 09:55:51.712408000 +0100
-+++ offapi/org/openoffice/vba/XInterior.idl 2005-09-06 11:24:42.000000000 +0100
-@@ -0,0 +1,26 @@
-+#ifndef __org_openoffice_vba_XInterior_idl__
-+#define __org_openoffice_vba_XInterior_idl__
-+
-+#ifndef __com_sun_star_uno_XInterface_idl__
-+#include <com/sun/star/uno/XInterface.idl>
-+#endif
-+
-+//=============================================================================
-+
-+module org { module openoffice { module vba {
-+
-+//=============================================================================
-+
-+
-+published interface XInterior: com::sun::star::uno::XInterface
-+{
-+ [attribute] any Color;
-+};
-+
-+//=============================================================================
-+
-+}; }; };
-+
-+#endif
-+
-+
diff --git a/patches/vba/offapi-org-openoffice-vba-xlbuildindialog-idl.diff b/patches/vba/offapi-org-openoffice-vba-xlbuildindialog-idl.diff
deleted file mode 100644
index bf0ab3a2a..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xlbuildindialog-idl.diff
+++ /dev/null
@@ -1,38 +0,0 @@
---- /dev/null 2005-10-10 09:55:51.712408000 +0100
-+++ offapi/org/openoffice/vba/XlBuiltInDialog.idl 2005-10-06 11:04:31.000000000 +0100
-@@ -0,0 +1,35 @@
-+#ifndef __org_openoffice_vba_Excel_XlBuiltInDialog_idl__
-+#define __org_openoffice_vba_Excel_XlBuiltinDialog_idl__
-+module org { module openoffice { module vba { module Excel {
-+
-+published constants XlBuiltInDialog
-+{
-+ const long xlDialogOpen = 0;
-+ const long xlDialogActiveCellFont = 1;
-+ const long xlDialogInsert = 2;
-+ const long xlDialogPrint = 3;
-+ const long xlDialogPasteSpecial = 4;
-+ const long xlDialogProtectDocument = 5;
-+ const long xlDialogColumnWidth = 6;
-+ const long xlDialogDefineName = 7;
-+ const long xlDialogCustomizeToolbar = 8;
-+ const long xlDialogInsertHyperlink = 9;
-+ const long xlDialogInsertPicture = 10;
-+ const long xlDialogInsertObject = 11;
-+ const long xlDialogPageSetUp = 12;
-+ const long xlDialogSort = 13;
-+ const long xlDialogRowHeight = 14;
-+ const long xlDialogAutoCorrect = 15;
-+ const long xlDialogConditionalFormatting = 16;
-+ const long xlDialogConsolidate = 17;
-+ const long xlDialogCreateNames = 18;
-+ const long xlDialogDataSeries = 19;
-+ const long xlDialogDataValidation = 20;
-+ const long xlDialogInsertNameLabel = 21;
-+ const long xlDialogFilter = 22;
-+ const long xlDialogFilterAdvanced = 23;
-+ const long xlDialogFormatAuto = 24;
-+};
-+}; }; }; };
-+
-+#endif
diff --git a/patches/vba/offapi-org-openoffice-vba-xlpastespecialoperation-idl.diff b/patches/vba/offapi-org-openoffice-vba-xlpastespecialoperation-idl.diff
deleted file mode 100644
index b840b1028..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xlpastespecialoperation-idl.diff
+++ /dev/null
@@ -1,32 +0,0 @@
---- /dev/null 2005-11-06 11:49:58.372324250 +0000
-+++ offapi/org/openoffice/vba/XlPasteSpecialOperation.idl 2005-11-02 18:19:21.000000000 +0000
-@@ -0,0 +1,29 @@
-+#ifndef __org_openoffice_vba_XlPasteSpecialOperation_idl__
-+#define __org_openoffice_vba_XlPasteSpecialOperation_idl__
-+
-+#ifndef __com_sun_star_uno_XInterface_idl__
-+#include <com/sun/star/uno/XInterface.idl>
-+#endif
-+
-+//=============================================================================
-+
-+module org { module openoffice { module vba {
-+
-+//=============================================================================
-+
-+published constants xlPasteSpecialOperation
-+{
-+ const unsigned short xlPasteSpecialOperationNone = 1;
-+ const unsigned short xlPasteSpecialOperationAdd = 2;
-+ const unsigned short xlPasteSpecialOperationSubtract = 3;
-+ const unsigned short xlPasteSpecialOperationMultiply = 4;
-+ const unsigned short xlPasteSpecialOperationDivide = 5;
-+
-+};
-+
-+//=============================================================================
-+
-+}; }; };
-+
-+#endif
-+
diff --git a/patches/vba/offapi-org-openoffice-vba-xlpastetype-idl.diff b/patches/vba/offapi-org-openoffice-vba-xlpastetype-idl.diff
deleted file mode 100644
index 27abb8abd..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xlpastetype-idl.diff
+++ /dev/null
@@ -1,37 +0,0 @@
---- /dev/null 2005-11-06 11:49:58.372324250 +0000
-+++ offapi/org/openoffice/vba/XlPasteType.idl 2005-11-02 18:34:38.000000000 +0000
-@@ -0,0 +1,34 @@
-+#ifndef __org_openoffice_vba_XlPasteType_idl__
-+#define __org_openoffice_vba_XlPasteType_idl__
-+
-+#ifndef __com_sun_star_uno_XInterface_idl__
-+#include <com/sun/star/uno/XInterface.idl>
-+#endif
-+
-+//=============================================================================
-+
-+module org { module openoffice { module vba {
-+
-+//=============================================================================
-+
-+published constants xlPasteType
-+{
-+/*noelp #FIXME check these numbers, they don't look right*/
-+ const unsigned short xlPasteAll = 0 ;
-+ const unsigned short xlPasteAllExceptBorders = 2;
-+ const unsigned short xlPasteColumnWidths = 3;
-+ const unsigned short xlPasteComments = 4;
-+ const unsigned short xlPasteFormats = 5;
-+ const unsigned short xlPasteFormulas = 6;
-+ const unsigned short xlPasteFormulasAndNumberFormats = 7;
-+ const unsigned short xlPasteValidation = 8;
-+ const unsigned short xlPasteValues = 9 ;
-+ const unsigned short xlPasteValuesAndNumberFormats =10;
-+};
-+
-+//=============================================================================
-+
-+}; }; };
-+
-+#endif
-+
diff --git a/patches/vba/offapi-org-openoffice-vba-xoutline-idl.diff b/patches/vba/offapi-org-openoffice-vba-xoutline-idl.diff
deleted file mode 100644
index b9947eed3..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xoutline-idl.diff
+++ /dev/null
@@ -1,31 +0,0 @@
---- /dev/null 2005-10-10 09:55:51.712408000 +0100
-+++ offapi/org/openoffice/vba/XOutline.idl 2005-07-26 12:39:11.000000000 +0100
-@@ -0,0 +1,28 @@
-+#ifndef __org_openoffice_vba_XOutline_idl__
-+#define __org_openoffice_vba_XOutline_idl__
-+
-+#ifndef __com_sun_star_uno_XInterface_idl__
-+#include <com/sun/star/uno/XInterface.idl>
-+#endif
-+
-+//=============================================================================
-+
-+module org { module openoffice { module vba {
-+
-+//=============================================================================
-+
-+
-+published interface XOutline: com::sun::star::uno::XInterface
-+{
-+ //Methods
-+ void ShowLevels([in] any RowLevels,[in] any ColumnLevels);
-+
-+};
-+
-+//=============================================================================
-+
-+}; }; };
-+
-+#endif
-+
-+
diff --git a/patches/vba/offapi-org-openoffice-vba-xpivotcache-idl.diff b/patches/vba/offapi-org-openoffice-vba-xpivotcache-idl.diff
deleted file mode 100644
index 3eb3e459c..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xpivotcache-idl.diff
+++ /dev/null
@@ -1,28 +0,0 @@
---- /dev/null 2006-01-03 09:47:36.312320500 +0000
-+++ offapi/org/openoffice/vba/XPivotCache.idl 2006-01-04 15:49:37.000000000 +0000
-@@ -0,0 +1,25 @@
-+#ifndef __org_openoffice_vba_XPivotCache_idl__
-+#define __org_openoffice_vba_XPivotCache_idl__
-+
-+#ifndef __com_sun_star_uno_XInterface_idl__
-+#include <com/sun/star/uno/XInterface.idl>
-+#endif
-+
-+//=============================================================================
-+
-+module org { module openoffice { module vba {
-+
-+//=============================================================================
-+
-+published interface XPivotCache: com::sun::star::uno::XInterface
-+{
-+ void Refresh();
-+};
-+
-+//=============================================================================
-+
-+}; }; };
-+
-+#endif
-+
-+
diff --git a/patches/vba/offapi-org-openoffice-vba-xpivottable-idl.diff b/patches/vba/offapi-org-openoffice-vba-xpivottable-idl.diff
deleted file mode 100644
index d5e927675..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xpivottable-idl.diff
+++ /dev/null
@@ -1,31 +0,0 @@
---- /dev/null 2006-01-03 09:47:36.312320500 +0000
-+++ offapi/org/openoffice/vba/XPivotTable.idl 2006-01-04 15:56:29.000000000 +0000
-@@ -0,0 +1,28 @@
-+#ifndef __org_openoffice_vba_XPivotTable_idl__
-+#define __org_openoffice_vba_XPivotTable_idl__
-+
-+#ifndef __com_sun_star_uno_XInterface_idl__
-+#include <com/sun/star/uno/XInterface.idl>
-+#endif
-+#ifndef __org_openoffice_vba_XPivotCache_idl__
-+#include <org/openoffice/vba/XPivotCache.idl>
-+#endif
-+
-+//=============================================================================
-+
-+module org { module openoffice { module vba {
-+
-+//=============================================================================
-+
-+published interface XPivotTable: com::sun::star::uno::XInterface
-+{
-+ XPivotCache PivotCache();
-+};
-+
-+//=============================================================================
-+
-+}; }; };
-+
-+#endif
-+
-+
diff --git a/patches/vba/offapi-org-openoffice-vba-xpivottables-idl.diff b/patches/vba/offapi-org-openoffice-vba-xpivottables-idl.diff
deleted file mode 100644
index de1bce1c1..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xpivottables-idl.diff
+++ /dev/null
@@ -1,30 +0,0 @@
---- /dev/null 2006-01-03 09:47:36.312320500 +0000
-+++ offapi/org/openoffice/vba/XPivotTables.idl 2006-01-04 15:48:21.000000000 +0000
-@@ -0,0 +1,27 @@
-+#ifndef __org_openoffice_vba_XPivotTables_idl__
-+#define __org_openoffice_vba_XPivotTables_idl__
-+
-+#ifndef __com_sun_star_uno_XInterface_idl__
-+#include <com/sun/star/uno/XInterface.idl>
-+#endif
-+
-+//=============================================================================
-+
-+module org { module openoffice { module vba {
-+
-+//=============================================================================
-+published interface XPivotTables: ::com::sun::star::uno::XInterface
-+{
-+ // PivotCache should be a PivotCache object ( but thats not defined
-+ // yet )
-+ //XPivotTable Add( [in] any PivotCache, [in] any TableDestination, [in] any TableName, [in] any ReadData );
-+
-+};
-+
-+//=============================================================================
-+
-+}; }; };
-+
-+#endif
-+
-+
diff --git a/patches/vba/offapi-org-openoffice-vba-xrange-idl.diff b/patches/vba/offapi-org-openoffice-vba-xrange-idl.diff
deleted file mode 100644
index 7183a3ffc..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xrange-idl.diff
+++ /dev/null
@@ -1,77 +0,0 @@
---- /dev/null 2005-11-06 11:49:58.372324250 +0000
-+++ offapi/org/openoffice/vba/XRange.idl 2005-11-02 15:56:50.000000000 +0000
-@@ -0,0 +1,74 @@
-+#ifndef __org_openoffice_vba_XRange_idl__
-+#define __org_openoffice_vba_XRange_idl__
-+
-+#ifndef __com_sun_star_uno_XInterface_idl__
-+#include <com/sun/star/uno/XInterface.idl>
-+#endif
-+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
-+#include <com/sun/star/lang/IllegalArgumentException.idl>
-+#endif
-+#ifndef __org_openoffice_vba_XlPasteType_idl__
-+#include <org/openoffice/vba/XlPasteType.idl>
-+#endif
-+#ifndef __org_openoffice_vba_XlPasteSpecialOperation_idl__
-+#include <org/openoffice/vba/XlPasteSpecialOperation.idl>
-+#endif
-+//=============================================================================
-+
-+module org { module openoffice { module vba {
-+
-+published interface XFont;
-+published interface XRows;
-+published interface XColumns;
-+published interface XInterior;
-+
-+published interface XRange: com::sun::star::uno::XInterface
-+{
-+ [attribute] any Value;
-+ [attribute] string Formula;
-+ [attribute, readonly] double Count;
-+ [attribute, readonly] long Row;
-+ [attribute, readonly] long Column;
-+ [attribute, readonly] string Text;
-+ [attribute, readonly ] XRange EntireRow;
-+ [attribute, readonly ] XRange EntireColumn;
-+ [attribute] string FormulaArray;
-+ [attribute] boolean MergeCells;
-+ [attribute] string NumberFormat;
-+ [attribute] boolean WrapText;
-+ [attribute] any Hidden;
-+ void Clear();
-+ void ClearComments();
-+ void ClearContents();
-+ void ClearFormats();
-+ boolean HasFormula();
-+ void FillLeft();
-+ void FillRight();
-+ void FillUp();
-+ void FillDown();
-+ XRange Offset([in] any RowOffset, [in] any ColumnOffset);
-+ XRange CurrentRegion();
-+ XRange CurrentArray();
-+ string Characters([in] any Start, [in] any Length);
-+ string Address();
-+ XRange Cells([in] any RowIndex, [in] any ColumnIndex);
-+ void Select();
-+ XRange Rows( [in] any RowIndex );
-+ XRange Columns( [in] any ColumnIndex );
-+ void Copy([in] any Destination);
-+ void Cut([in] any Destination);
-+ XRange Resize( [in] any RowSize, [in] any ColumnSize );
-+ XFont Font();
-+ XInterior Interior();
-+ XRange Range( [in] any Cell1, [in] any Cell2 );
-+ any getCellRange();
-+ void PasteSpecial([in] short Paste, [in] short Operation,[in] boolean SkipBlanks, [in] boolean Transpose);
-+};
-+
-+//=============================================================================
-+
-+}; }; };
-+
-+#endif
-+
-+
diff --git a/patches/vba/offapi-org-openoffice-vba-xseries-idl.diff b/patches/vba/offapi-org-openoffice-vba-xseries-idl.diff
deleted file mode 100644
index 07a3b0d9c..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xseries-idl.diff
+++ /dev/null
@@ -1,31 +0,0 @@
---- /dev/null 2005-11-27 19:42:11.860354750 +0000
-+++ offapi/org/openoffice/vba/XSeries.idl 2005-11-28 16:24:36.000000000 +0000
-@@ -0,0 +1,28 @@
-+#ifndef __org_openoffice_vba_XSeries_idl__
-+#define __org_openoffice_vba_XSeries_idl__
-+
-+#ifndef __com_sun_star_uno_XInterface_idl__
-+#include <com/sun/star/uno/XInterface.idl>
-+#endif
-+
-+//=============================================================================
-+
-+module org { module openoffice { module vba {
-+
-+//=============================================================================
-+
-+published interface XSeries: com::sun::star::uno::XInterface
-+{
-+ [attribute, readonly] string Name;
-+ any Series( [in] any Item );
-+ any Values ( [in] any Values );
-+ any XValues ( [in] any XValues );
-+};
-+
-+//=============================================================================
-+
-+}; }; };
-+
-+#endif
-+
-+
diff --git a/patches/vba/offapi-org-openoffice-vba-xseriescollection-idl.diff b/patches/vba/offapi-org-openoffice-vba-xseriescollection-idl.diff
deleted file mode 100644
index 16ccbec29..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xseriescollection-idl.diff
+++ /dev/null
@@ -1,33 +0,0 @@
---- /dev/null 2005-11-27 19:42:11.860354750 +0000
-+++ offapi/org/openoffice/vba/XSeriesCollection.idl 2005-11-28 16:24:36.000000000 +0000
-@@ -0,0 +1,30 @@
-+#ifndef __org_openoffice_vba_XSeriesCollection_idl__
-+#define __org_openoffice_vba_XSeriesCollection_idl__
-+
-+#ifndef __com_sun_star_uno_XInterface_idl__
-+#include <com/sun/star/uno/XInterface.idl>
-+#endif
-+#ifndef __org_openoffice_vba_XCollection_idl__
-+#include <org/openoffice/vba/XCollection.idl>
-+#endif
-+
-+//=============================================================================
-+module org { module openoffice { module vba {
-+published interface XSeries;
-+//=============================================================================
-+
-+published interface XSeriesCollection: ::org::openoffice::vba::XCollection
-+{
-+ //XSeries Add( [in] any Source, [in] any RowCol, [in] any SeriesLabels,
-+ // [in] any CategoryLabels, [in] any Replace );
-+ XSeries NewSeries();
-+ any XSeries( [in] any Item );
-+};
-+
-+//=============================================================================
-+
-+}; }; };
-+
-+#endif
-+
-+
diff --git a/patches/vba/offapi-org-openoffice-vba-xvbatoooeventdescgen-idl.diff b/patches/vba/offapi-org-openoffice-vba-xvbatoooeventdescgen-idl.diff
deleted file mode 100644
index 651f60422..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xvbatoooeventdescgen-idl.diff
+++ /dev/null
@@ -1,27 +0,0 @@
---- /dev/null 2005-10-10 09:55:51.712408000 +0100
-+++ offapi/org/openoffice/vba/XVBAToOOEventDescGen.idl 2005-10-12 13:17:18.000000000 +0100
-@@ -0,0 +1,24 @@
-+#ifndef __org_openoffice_vba_XVBAToOOEventDescGen_idl__
-+#define __org_openoffice_vba_XVBAToOOEventDescGen_idl__
-+
-+#ifndef __com_sun_star_script_ScriptEventDescriptor_idl__
-+#include <com/sun/star/script/ScriptEventDescriptor.idl>
-+#endif
-+
-+#ifndef __com_sun_star_script_XScriptEventsSupplier_idl__
-+#include <com/sun/star/script/XScriptEventsSupplier.idl>
-+#endif
-+
-+#ifndef __com_sun_star_awt_XControl_idl__
-+#include <com/sun/star/awt/XControl.idl>
-+#endif
-+
-+module org { module openoffice { module vba {
-+interface XVBAToOOEventDescGen : com::sun::star::uno::XInterface
-+{
-+ sequence< com::sun::star::script::ScriptEventDescriptor > getEventDescriptions( [in] com::sun::star::awt::XControl xControl );
-+ com::sun::star::script::XScriptEventsSupplier getEventSupplier( [in] com::sun::star::awt::XControl xControl );
-+};
-+
-+}; }; };
-+#endif
diff --git a/patches/vba/offapi-org-openoffice-vba-xwindow-idl.diff b/patches/vba/offapi-org-openoffice-vba-xwindow-idl.diff
deleted file mode 100644
index d61b51f8b..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xwindow-idl.diff
+++ /dev/null
@@ -1,31 +0,0 @@
---- /dev/null 2006-01-03 09:47:36.312320500 +0000
-+++ offapi/org/openoffice/vba/XWindow.idl 2006-01-04 15:48:21.000000000 +0000
-@@ -0,0 +1,28 @@
-+#ifndef __org_openoffice_vba_XWindow_idl__
-+#define __org_openoffice_vba_XWindow_idl__
-+
-+#ifndef __com_sun_star_uno_XInterface_idl__
-+#include <com/sun/star/uno/XInterface.idl>
-+#endif
-+
-+//=============================================================================
-+
-+module org { module openoffice { module vba {
-+
-+//=============================================================================
-+
-+published interface XWindow: com::sun::star::uno::XInterface
-+{
-+ any SelectedSheets( [in] any aIndex );
-+ void SmallScroll( [in] any Down, [in] any Up, [in] any ToRight, [in] any ToLeft );
-+ void LargeScroll( [in] any Down, [in] any Up, [in] any ToRight, [in] any ToLeft );
-+ void ScrollWorkbookTabs( [in] any Sheets, [in] any Position );
-+};
-+
-+//=============================================================================
-+
-+}; }; };
-+
-+#endif
-+
-+
diff --git a/patches/vba/offapi-org-openoffice-vba-xworkbook-idl.diff b/patches/vba/offapi-org-openoffice-vba-xworkbook-idl.diff
deleted file mode 100644
index f62a3d64e..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xworkbook-idl.diff
+++ /dev/null
@@ -1,39 +0,0 @@
---- /dev/null 2005-10-10 09:55:51.712408000 +0100
-+++ offapi/org/openoffice/vba/XWorkbook.idl 2005-09-13 10:09:47.000000000 +0100
-@@ -0,0 +1,36 @@
-+#ifndef __org_openoffice_vba_XWorkbook_idl__
-+#define __org_openoffice_vba_XWorkbook_idl__
-+
-+#ifndef __com_sun_star_uno_XInterface_idl__
-+#include <com/sun/star/uno/XInterface.idl>
-+#endif
-+
-+//=============================================================================
-+
-+module org { module openoffice { module vba {
-+
-+//=============================================================================
-+
-+published interface XWorksheet;
-+published interface XWorksheets;
-+
-+published interface XWorkbook: com::sun::star::uno::XInterface
-+{
-+ [attribute, readonly] string Name;
-+ [attribute, readonly] string Path;
-+ [attribute, readonly] string FullName;
-+ [attribute, readonly] boolean ProtectStructure;
-+ [attribute, readonly] XWorksheet ActiveSheet;
-+ [attribute] boolean Saved;
-+
-+ any Worksheets([in] any sheet);
-+ void Close([in] any SaveChanges, [in] any FileName, [in] any RouteWorkBook);
-+ void Protect( [in] any Password );
-+ void Unprotect( [in] any Password );
-+ void Save();
-+ void Activate();
-+};
-+
-+}; }; };
-+
-+#endif
diff --git a/patches/vba/offapi-org-openoffice-vba-xworkbooks-idl.diff b/patches/vba/offapi-org-openoffice-vba-xworkbooks-idl.diff
deleted file mode 100644
index 4e84c17ab..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xworkbooks-idl.diff
+++ /dev/null
@@ -1,26 +0,0 @@
---- /dev/null 2005-11-27 19:42:11.860354750 +0000
-+++ offapi/org/openoffice/vba/XWorkbooks.idl 2005-11-30 12:14:49.000000000 +0000
-@@ -0,0 +1,23 @@
-+#ifndef __org_openoffice_vba_XWorkbooks_idl__
-+#define __org_openoffice_vba_XWorkbooks_idl__
-+
-+#ifndef __com_sun_star_uno_XInterface_idl__
-+#include <com/sun/star/uno/XInterface.idl>
-+#endif
-+
-+//=============================================================================
-+
-+module org { module openoffice { module vba {
-+
-+//=============================================================================
-+
-+published interface XWorkbooks : ::com::sun::star::uno::XInterface
-+{
-+ any Add();
-+ any Open([in] any FileName );
-+ void Close();
-+};
-+
-+}; }; };
-+
-+#endif
diff --git a/patches/vba/offapi-org-openoffice-vba-xworksheet-idl.diff b/patches/vba/offapi-org-openoffice-vba-xworksheet-idl.diff
deleted file mode 100644
index 3aad631df..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xworksheet-idl.diff
+++ /dev/null
@@ -1,62 +0,0 @@
---- /dev/null 2006-01-03 09:47:36.312320500 +0000
-+++ offapi/org/openoffice/vba/XWorksheet.idl 2006-01-04 17:59:34.000000000 +0000
-@@ -0,0 +1,59 @@
-+#ifndef __org_openoffice_vba_XWorksheet_idl__
-+#define __org_openoffice_vba_XWorksheet_idl__
-+
-+#ifndef __com_sun_star_uno_XInterface_idl__
-+#include <com/sun/star/uno/XInterface.idl>
-+#endif
-+
-+//=============================================================================
-+
-+module org { module openoffice { module vba {
-+
-+//=============================================================================
-+
-+published interface XRange;
-+published interface XOutline;
-+published interface XWorksheet: com::sun::star::uno::XInterface
-+{
-+ [attribute, readonly] string Name;
-+ [attribute] boolean Visible;
-+ [attribute, readonly] long StandardHeight;
-+ [attribute, readonly] long StandardWidth;
-+ [attribute, readonly] boolean ProtectionMode;
-+ [attribute, readonly] boolean ProtectContents;
-+ [attribute, readonly] boolean ProtectDrawingObjects;
-+ [attribute, readonly] XRange UsedRange;
-+ [attribute, readonly] XWorksheet Next;
-+ [attribute, readonly] XWorksheet Previous;
-+
-+ void Activate();
-+ void Calculate( );
-+ void Select();
-+ void Move([in] any Before,[in] any After );
-+ void Copy([in] any Before,[in] any After );
-+ void Paste([in] any Destination,[in] any Link);
-+ void Delete( );
-+ void Protect([in] any Password,[in] any DrawingObjects ,[in] any Contents,[in] any Scenarios,[in] any UserInterfaceOnly);
-+ void Unprotect([in] any Password );
-+ void CheckSpelling([in] any CustomDictionary,[in] any IgnoreUppercase, [in] any AlwaysSuggest,[in] any SpellingLang );
-+ XRange Range([in] any range);
-+ any ChartObjects([in] any Index);
-+ any PivotTables([in] any Index);
-+ XOutline Outline();
-+
-+
-+// FIXME: should prolly inherit from Range somehow...
-+ XRange Cells([in] any RowIndex, [in] any ColumnIndex);
-+ XRange Rows([in] any aIndex);
-+ XRange Columns([in] any aIndex);
-+
-+ any Evaluate( [in] string Name);
-+};
-+
-+//=============================================================================
-+
-+}; }; };
-+
-+#endif
-+
-+
diff --git a/patches/vba/offapi-org-openoffice-vba-xworksheetfunction-idl.diff b/patches/vba/offapi-org-openoffice-vba-xworksheetfunction-idl.diff
deleted file mode 100644
index 2f7e6e491..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xworksheetfunction-idl.diff
+++ /dev/null
@@ -1,29 +0,0 @@
---- /dev/null 2005-10-10 09:55:51.712408000 +0100
-+++ offapi/org/openoffice/vba/XWorksheetFunction.idl 2005-09-14 12:44:14.000000000 +0100
-@@ -0,0 +1,26 @@
-+#ifndef __org_openoffice_vba_XWSFunction_idl__
-+#define __org_openoffice_vba_XWSFunction_idl__
-+
-+#ifndef __com_sun_star_uno_XInterface_idl__
-+#include <com/sun/star/uno/XInterface.idl>
-+#endif
-+
-+//=============================================================================
-+
-+module org { module openoffice { module vba {
-+
-+//=============================================================================
-+
-+
-+published interface XWorksheetFunction: com::sun::star::uno::XInterface
-+{
-+ void dummy();
-+};
-+
-+//=============================================================================
-+
-+}; }; };
-+
-+#endif
-+
-+
diff --git a/patches/vba/offapi-org-openoffice-vba-xworksheets-idl.diff b/patches/vba/offapi-org-openoffice-vba-xworksheets-idl.diff
deleted file mode 100644
index e9f19a222..000000000
--- a/patches/vba/offapi-org-openoffice-vba-xworksheets-idl.diff
+++ /dev/null
@@ -1,33 +0,0 @@
---- /dev/null 2006-01-03 09:47:36.312320500 +0000
-+++ offapi/org/openoffice/vba/XWorksheets.idl 2006-01-04 15:48:21.000000000 +0000
-@@ -0,0 +1,30 @@
-+#ifndef __org_openoffice_vba_XWorksheets_idl__
-+#define __org_openoffice_vba_XWorksheets_idl__
-+
-+#ifndef __com_sun_star_uno_XInterface_idl__
-+#include <com/sun/star/uno/XInterface.idl>
-+#endif
-+
-+#ifndef __org_openoffice_vba_XCollection_idl__
-+#include <org/openoffice/vba/XCollection.idl>
-+#endif
-+
-+//=============================================================================
-+
-+module org { module openoffice { module vba {
-+
-+//=============================================================================
-+
-+//published interface XWorksheets : ::org::openoffice::vba::XCollection
-+published interface XWorksheets : ::com::sun::star::uno::XInterface
-+{
-+ [attribute] any Visible;
-+ any Add( [in] any Before, [in] any After, [in] any Count, [in] any Type );
-+ void Delete();
-+ void PrintOut( [in] any From, [in] any To, [in] any Copies, [in] any Preview, [in] any ActivePrinter, [in] any PrintToFile, [in] any Collate, [in] any PrToFileName );
-+};
-+
-+}; }; };
-+
-+#endif
-+
diff --git a/patches/vba/sc-hacky-handle-boolean.diff b/patches/vba/sc-hacky-handle-boolean.diff
deleted file mode 100644
index c48ba81b6..000000000
--- a/patches/vba/sc-hacky-handle-boolean.diff
+++ /dev/null
@@ -1,41 +0,0 @@
-Index: sc/inc/global.hxx
-===================================================================
-RCS file: /cvs/sc/sc/inc/global.hxx,v
-retrieving revision 1.43
-diff -u -p -r1.43 global.hxx
---- sc/inc/global.hxx 8 Sep 2005 17:41:44 -0000 1.43
-+++ sc/inc/global.hxx 9 Nov 2005 17:52:49 -0000
-@@ -237,6 +237,7 @@ const BYTE CR_MANUALSIZE = 32;
- #define IDF_STYLES 0x0040
- #define IDF_OBJECTS 0x0080
- #define IDF_EDITATTR 0x0100
-+#define IDF_SPECIAL_BOOLEAN 0x1000
- #define IDF_ATTRIB ( IDF_HARDATTR | IDF_STYLES )
- #define IDF_CONTENTS ( IDF_VALUE | IDF_DATETIME | IDF_STRING | IDF_NOTE | IDF_FORMULA )
- #define IDF_ALL ( IDF_CONTENTS | IDF_ATTRIB | IDF_OBJECTS )
-Index: sc/source/core/data/column3.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/core/data/column3.cxx,v
-retrieving revision 1.18
-diff -u -p -r1.18 column3.cxx
---- sc/source/core/data/column3.cxx 28 Sep 2005 11:29:59 -0000 1.18
-+++ sc/source/core/data/column3.cxx 9 Nov 2005 17:53:11 -0000
-@@ -828,7 +849,17 @@ ScBaseCell* ScColumn::CloneCell(SCSIZE n
- case CELLTYPE_FORMULA:
- {
- ScFormulaCell* pForm = (ScFormulaCell*)pSource;
-- if (nFlags & IDF_FORMULA)
-+ bool bForceFormula = false;
-+ if ( nFlags & IDF_SPECIAL_BOOLEAN )
-+ {
-+ String aVal;
-+ // #TODO #FIXME do we have a localisation issue here?
-+ pForm->GetEnglishFormula( aVal );
-+ if ( aVal.EqualsAscii("=TRUE()" )
-+ || aVal.EqualsAscii("=FALSE()") )
-+ bForceFormula = true;
-+ }
-+ if ( bForceFormula || (nFlags & IDF_FORMULA) )
- {
- pNew = pForm->Clone( pDestDoc, rDestPos, TRUE );
- }
diff --git a/patches/vba/sc-inc-document-gcc4-visibility.diff b/patches/vba/sc-inc-document-gcc4-visibility.diff
deleted file mode 100644
index e7f945f58..000000000
--- a/patches/vba/sc-inc-document-gcc4-visibility.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: sc/inc/document.hxx
-===================================================================
-RCS file: /cvs/sc/sc/inc/document.hxx,v
-retrieving revision 1.88
-diff -u -p -r1.88 document.hxx
---- sc/inc/document.hxx 28 Sep 2005 11:26:15 -0000 1.88
-+++ sc/inc/document.hxx 5 Jan 2006 14:14:06 -0000
-@@ -543,7 +546,7 @@ SC_DLLPUBLIC ScDBCollection* GetDBCollec
- void SnapVisArea( Rectangle& rRect ) const; // 1/100 mm
-
- SC_DLLPUBLIC BOOL ValidTabName( const String& rName ) const;
-- static void ConvertToValidTabName( String& rName, sal_Unicode cReplaceChar );
-+ SC_DLLPUBLIC static void ConvertToValidTabName( String& rName, sal_Unicode cReplaceChar );
- SC_DLLPUBLIC BOOL ValidNewTabName( const String& rName ) const;
- SC_DLLPUBLIC void CreateValidTabName(String& rName) const;
- BOOL InsertTab( SCTAB nPos, const String& rName,
diff --git a/patches/vba/sc-inc-docuno-hxx-visibility.diff b/patches/vba/sc-inc-docuno-hxx-visibility.diff
deleted file mode 100644
index f95360f69..000000000
--- a/patches/vba/sc-inc-docuno-hxx-visibility.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: sc/inc/docuno.hxx
-===================================================================
-RCS file: /cvs/sc/sc/inc/docuno.hxx,v
-retrieving revision 1.21
-diff -u -p -r1.21 docuno.hxx
---- sc/inc/docuno.hxx 8 Sep 2005 17:33:48 -0000 1.21
-+++ sc/inc/docuno.hxx 7 Nov 2005 20:22:05 -0000
-@@ -181,7 +181,7 @@ public:
- static void CreateAndSet(ScDocShell* pDocSh);
-
- ScDocument* GetDocument() const;
-- SfxObjectShell* GetEmbeddedObject() const;
-+SC_DLLPUBLIC SfxObjectShell* GetEmbeddedObject() const;
- BOOL IsEmbedded() const;
- double GetOutputFactor() const;
-
diff --git a/patches/vba/sc-source-ui-inc-tabview-hxx.diff b/patches/vba/sc-source-ui-inc-tabview-hxx.diff
deleted file mode 100644
index 98240a9d4..000000000
--- a/patches/vba/sc-source-ui-inc-tabview-hxx.diff
+++ /dev/null
@@ -1,35 +0,0 @@
-Index: sc/source/ui/inc/tabview.hxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/inc/tabview.hxx,v
-retrieving revision 1.18
-diff -u -r1.18 tabview.hxx
---- sc/source/ui/inc/tabview.hxx 21 Feb 2005 13:51:29 -0000 1.18
-+++ sc/source/ui/inc/tabview.hxx 4 Aug 2005 13:51:07 -0000
-@@ -61,6 +61,10 @@
- #ifndef SC_TABVIEW_HXX
- #define SC_TABVIEW_HXX
-
-+#ifndef INCLUDED_SCDLLAPI_H
-+#include "scdllapi.h"
-+#endif
-+
- #ifndef _SV_SCRBAR_HXX //autogen
- #include <vcl/scrbar.hxx>
- #endif
-@@ -83,6 +87,7 @@
- #include "viewutil.hxx"
- #include "select.hxx"
-
-+
- class ScEditEngineDefaulter;
- class ScGridWindow;
- class ScOutlineWindow;
-@@ -366,7 +371,7 @@
-
- void SetCursor( SCCOL nPosX, SCROW nPosY, BOOL bNew = FALSE );
-
-- void CellContentChanged();
-+SC_DLLPUBLIC void CellContentChanged();
- void SelectionChanged();
- void CursorPosChanged();
- void UpdateInputContext();
diff --git a/patches/vba/sc-source-ui-inc-viewfunc-hxx.diff b/patches/vba/sc-source-ui-inc-viewfunc-hxx.diff
deleted file mode 100644
index 97ec111c7..000000000
--- a/patches/vba/sc-source-ui-inc-viewfunc-hxx.diff
+++ /dev/null
@@ -1,39 +0,0 @@
-Index: sc/source/ui/inc/viewfunc.hxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/inc/viewfunc.hxx,v
-retrieving revision 1.26
-diff -u -p -u -r1.26 viewfunc.hxx
---- sc/source/ui/inc/viewfunc.hxx 8 Sep 2005 22:05:11 -0000 1.26
-+++ sc/source/ui/inc/viewfunc.hxx 12 Oct 2005 13:59:18 -0000
-@@ -60,6 +60,10 @@
- #include <com/sun/star/embed/XEmbeddedObject.hpp>
- #endif
-
-+#ifndef INCLUDED_SCDLLAPI_H
-+#include "scdllapi.h"
-+#endif
-+
- class ScPatternAttr;
- class ScAutoFormatData;
- class SvxSearchItem;
-@@ -118,8 +122,8 @@ public:
-
- void EnterDataAtCursor( const String& rString ); //! nicht benutzt ?
-
-- void CutToClip( ScDocument* pClipDoc = NULL, BOOL bIncludeObjects = FALSE );
-- BOOL CopyToClip( ScDocument* pClipDoc = NULL, BOOL bCut = FALSE, BOOL bApi = FALSE,
-+SC_DLLPUBLIC void CutToClip( ScDocument* pClipDoc = NULL, BOOL bIncludeObjects = FALSE );
-+SC_DLLPUBLIC BOOL CopyToClip( ScDocument* pClipDoc = NULL, BOOL bCut = FALSE, BOOL bApi = FALSE,
- BOOL bIncludeObjects = FALSE, BOOL bStopEdit = TRUE );
- BOOL PasteFromClip( USHORT nFlags, ScDocument* pClipDoc,
- USHORT nFunction = PASTE_NOFUNC, BOOL bSkipEmpty = FALSE,
-@@ -130,7 +134,7 @@ public:
-
- void FillTab( USHORT nFlags, USHORT nFunction, BOOL bSkipEmpty, BOOL bAsLink );
-
-- void PasteFromSystem();
-- BOOL PasteFromSystem( ULONG nFormatId, BOOL bApi = FALSE );
-+SC_DLLPUBLIC void PasteFromSystem();
-+SC_DLLPUBLIC BOOL PasteFromSystem( ULONG nFormatId, BOOL bApi = FALSE );
-
- void PasteDraw();
diff --git a/patches/vba/sc-source-ui-vba-makefile-mk.diff b/patches/vba/sc-source-ui-vba-makefile-mk.diff
deleted file mode 100644
index 54ef94f16..000000000
--- a/patches/vba/sc-source-ui-vba-makefile-mk.diff
+++ /dev/null
@@ -1,59 +0,0 @@
---- /dev/null 2006-01-03 09:47:36.312320500 +0000
-+++ sc/source/ui/vba/makefile.mk 2006-01-04 17:25:46.000000000 +0000
-@@ -0,0 +1,56 @@
-+PRJ=../..$/..
-+
-+PRJNAME=
-+TARGET=vbaobj
-+.IF "$(ENABLE_VBA)"!="YES"
-+dummy:
-+ @echo "not building vba..."
-+.ENDIF
-+
-+NO_BSYMBOLIC= TRUE
-+ENABLE_EXCEPTIONS=TRUE
-+COMP1TYPELIST=$(TARGET)
-+COMPRDB=$(SOLARBINDIR)$/types.rdb
-+
-+# --- Settings -----------------------------------------------------
-+
-+#.INCLUDE : svpre.mk
-+.INCLUDE : settings.mk
-+.INCLUDE : sv.mk
-+DLLPRE =
-+
-+# ------------------------------------------------------------------
-+
-+#.INCLUDE : ..$/cppumaker.mk
-+
-+SLOFILES= \
-+ $(SLO)$/service.obj \
-+ $(SLO)$/vbaglobals.obj \
-+ $(SLO)$/vbaworkbook.obj \
-+ $(SLO)$/vbaworksheets.obj \
-+ $(SLO)$/vbaapplication.obj \
-+ $(SLO)$/vbarange.obj \
-+ $(SLO)$/vbaworkbooks.obj \
-+ $(SLO)$/vbaworksheet.obj \
-+ $(SLO)$/vbaoutline.obj \
-+ $(SLO)$/vbafont.obj\
-+ $(SLO)$/vbahelper.obj\
-+ $(SLO)$/vbainterior.obj\
-+ $(SLO)$/vbawsfunction.obj\
-+ $(SLO)$/vbawindow.obj\
-+ $(SLO)$/vbachart.obj\
-+ $(SLO)$/vbachartobject.obj\
-+ $(SLO)$/vbachartobjects.obj\
-+ $(SLO)$/vbaseriescollection.obj\
-+ $(SLO)$/vbacollectionimpl.obj\
-+ $(SLO)$/vbaarraywrapper.obj\
-+ $(SLO)$/vbadialogs.obj \
-+ $(SLO)$/vbadialog.obj \
-+ $(SLO)$/vbapivottable.obj \
-+ $(SLO)$/vbapivotcache.obj \
-+ $(SLO)$/vbapivottables.obj
-+
-+
-+# --- Targets ------------------------------------------------------
-+
-+.INCLUDE : target.mk
diff --git a/patches/vba/sc-source-ui-vba-service-cxx.diff b/patches/vba/sc-source-ui-vba-service-cxx.diff
deleted file mode 100644
index 191b75d6a..000000000
--- a/patches/vba/sc-source-ui-vba-service-cxx.diff
+++ /dev/null
@@ -1,91 +0,0 @@
---- /dev/null 2005-10-10 09:55:51.712408000 +0100
-+++ sc/source/ui/vba/service.cxx 2005-07-22 10:43:35.000000000 +0100
-@@ -0,0 +1,88 @@
-+#include "cppuhelper/implementationentry.hxx"
-+#include "com/sun/star/lang/XMultiServiceFactory.hpp"
-+#include "com/sun/star/registry/XRegistryKey.hpp"
-+
-+// =============================================================================
-+// component exports
-+// =============================================================================
-+using namespace ::com::sun::star;
-+using namespace ::com::sun::star::uno;
-+
-+namespace vbaobj
-+{
-+ // =============================================================================
-+ // component operations
-+ // =============================================================================
-+
-+ uno::Reference< XInterface > SAL_CALL create(
-+ Reference< XComponentContext > const & xContext )
-+ SAL_THROW( () );
-+
-+ // -----------------------------------------------------------------------------
-+
-+ ::rtl::OUString SAL_CALL getImplementationName();
-+
-+ Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames();
-+
-+ Reference<XInterface> SAL_CALL create(
-+ Sequence<Any> const &, Reference<XComponentContext> const & );
-+} // end namespace vbaobj
-+
-+
-+ // =============================================================================
-+
-+ const ::cppu::ImplementationEntry s_component_entries [] =
-+ {
-+ {
-+ ::vbaobj::create, ::vbaobj::getImplementationName,
-+ ::vbaobj::getSupportedServiceNames,
-+ ::cppu::createSingleComponentFactory,
-+ 0, 0
-+ },
-+ { 0, 0, 0, 0, 0, 0 }
-+ };
-+
-+extern "C"
-+{
-+ void SAL_CALL component_getImplementationEnvironment(
-+ const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
-+ {
-+ OSL_TRACE("In component_getImplementationEnv");
-+ *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
-+ }
-+
-+ sal_Bool SAL_CALL component_writeInfo(
-+ lang::XMultiServiceFactory * pServiceManager, registry::XRegistryKey * pRegistryKey )
-+ {
-+ OSL_TRACE("In component_writeInfo");
-+ if ( ::cppu::component_writeInfoHelper(
-+ pServiceManager, pRegistryKey, s_component_entries ) )
-+ {
-+ try
-+ {
-+ registry::XRegistryKey * pKey =
-+ reinterpret_cast< registry::XRegistryKey * >(pRegistryKey);
-+
-+ Reference< registry::XRegistryKey >xKey = pKey->createKey(
-+ rtl::OUString::createFromAscii( ("org.openoffice.vba.Globals/UNO/SINGLETONS/org.openoffice.vba.theGlobals") ) );
-+ xKey->setStringValue( ::rtl::OUString::createFromAscii(
-+ ("org.openoffice.vba.Globals") ) );
-+ return sal_True;
-+ }
-+ catch( uno::Exception& e )
-+ {
-+ //recomp & friends will detect false returned and fail
-+ }
-+ }
-+ return sal_False;
-+ }
-+
-+ void * SAL_CALL component_getFactory(
-+ const sal_Char * pImplName, lang::XMultiServiceFactory * pServiceManager,
-+ registry::XRegistryKey * pRegistryKey )
-+ {
-+ OSL_TRACE("In component_getFactory");
-+ return ::cppu::component_getFactoryHelper(
-+ pImplName, pServiceManager, pRegistryKey, s_component_entries );
-+ }
-+}
diff --git a/patches/vba/sc-source-ui-vba-vbaapplication-cxx.diff b/patches/vba/sc-source-ui-vba-vbaapplication-cxx.diff
deleted file mode 100644
index bbf637d5f..000000000
--- a/patches/vba/sc-source-ui-vba-vbaapplication-cxx.diff
+++ /dev/null
@@ -1,188 +0,0 @@
---- /dev/null 2005-11-27 19:42:11.860354750 +0000
-+++ sc/source/ui/vba/vbaapplication.cxx 2005-11-30 12:54:26.000000000 +0000
-@@ -0,0 +1,185 @@
-+
-+
-+#include<com/sun/star/sheet/XSpreadsheetView.hpp>
-+#include<com/sun/star/view/XSelectionSupplier.hpp>
-+#include<org/openoffice/vba/Excel/XlCalculation.hpp>
-+
-+#include "vbaapplication.hxx"
-+#include "vbaworkbooks.hxx"
-+#include "vbaworkbook.hxx"
-+#include "vbaworksheets.hxx"
-+#include "vbarange.hxx"
-+#include "vbawsfunction.hxx"
-+#include "vbadialogs.hxx"
-+#include "vbawindow.hxx"
-+
-+#include "tabvwsh.hxx"
-+
-+
-+
-+
-+using namespace ::org::openoffice;
-+using namespace ::com::sun::star;
-+
-+class ActiveWorkbook : public ScVbaWorkbook
-+{
-+protected:
-+ virtual uno::Reference< frame::XModel > getModel()
-+ {
-+ return getCurrentDocument();
-+ }
-+public:
-+ ActiveWorkbook( uno::Reference< uno::XComponentContext >& xContext) : ScVbaWorkbook( xContext ){}
-+};
-+
-+ScVbaApplication::ScVbaApplication( uno::Reference<uno::XComponentContext >& xContext ): m_xContext( xContext ), m_xCalculation( vba::Excel::XlCalculation::xlCalculationAutomatic )
-+{
-+}
-+
-+ScVbaApplication::~ScVbaApplication()
-+{
-+}
-+
-+
-+uno::Reference< vba::XWorkbook >
-+ScVbaApplication::getActiveWorkbook() throw (uno::RuntimeException)
-+{
-+ return new ActiveWorkbook( m_xContext );
-+}
-+uno::Reference< oo::vba::XWorkbook > SAL_CALL
-+ScVbaApplication::getThisWorkbook() throw (uno::RuntimeException)
-+{
-+ return getActiveWorkbook();
-+}
-+
-+uno::Reference< vba::XRange >
-+ScVbaApplication::getSelection() throw (uno::RuntimeException)
-+{
-+ uno::Reference< table::XCellRange > xRange( getCurrentDocument()->getCurrentSelection(), ::uno::UNO_QUERY);
-+ return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, xRange ) );
-+}
-+
-+uno::Reference< vba::XRange >
-+ScVbaApplication::getActiveCell() throw (uno::RuntimeException )
-+{
-+ uno::Reference< sheet::XSpreadsheetView > xView( getCurrentDocument()->getCurrentController(), uno::UNO_QUERY_THROW );
-+ uno::Reference< table::XCellRange > xRange( xView->getActiveSheet(), ::uno::UNO_QUERY_THROW);
-+ ScTabViewShell* pViewShell = getCurrentBestViewShell();
-+ if ( !pViewShell )
-+ throw uno::RuntimeException( rtl::OUString::createFromAscii("No ViewShell available"), uno::Reference< uno::XInterface >() );
-+ ScViewData* pTabView = pViewShell->GetViewData();
-+ if ( !pTabView )
-+ throw uno::RuntimeException( rtl::OUString::createFromAscii("No ViewData available"), uno::Reference< uno::XInterface >() );
-+
-+ sal_Int32 nCursorX = pTabView->GetCurX();
-+ sal_Int32 nCursorY = pTabView->GetCurY();
-+
-+ return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, xRange->getCellRangeByPosition( nCursorX, nCursorY,
-+ nCursorX, nCursorY ) ) );
-+}
-+
-+sal_Bool
-+ScVbaApplication::getScreenUpdating() throw (uno::RuntimeException)
-+{
-+ uno::Reference< frame::XModel > xModel( getCurrentDocument(), uno::UNO_QUERY_THROW );
-+ return !xModel->hasControllersLocked();
-+}
-+
-+void
-+ScVbaApplication::setScreenUpdating(sal_Bool bUpdate) throw (uno::RuntimeException)
-+{
-+ uno::Reference< frame::XModel > xModel( getCurrentDocument(), uno::UNO_QUERY_THROW );
-+ if (bUpdate)
-+ xModel->unlockControllers();
-+ else
-+ xModel->lockControllers();
-+}
-+
-+uno::Any SAL_CALL
-+ScVbaApplication::Workbooks( const uno::Any& aIndex ) throw (uno::RuntimeException)
-+{
-+ uno::Reference< vba::XCollection > xWorkBooks( new ScVbaWorkbooks( m_xContext ) );
-+ if ( aIndex.getValueTypeClass() == uno::TypeClass_VOID )
-+ {
-+ // void then somebody did Workbooks.something in vba
-+ return uno::Any( xWorkBooks );
-+ }
-+
-+ return uno::Any ( xWorkBooks->Item( aIndex ) );
-+}
-+
-+uno::Reference< vba::XWorksheetFunction > SAL_CALL
-+ScVbaApplication::WorksheetFunction( ) throw (::com::sun::star::uno::RuntimeException)
-+{
-+ return new ScVbaWSFunction(m_xContext);
-+}
-+
-+uno::Any SAL_CALL
-+ScVbaApplication::Evaluate( const ::rtl::OUString& Name ) throw (uno::RuntimeException)
-+{
-+ // #TODO Evaluate allows other things to be evaluated, e.g. functions
-+ // I think ( like SIN(3) etc. ) need to investigate that
-+ // named Ranges also? e.g. [MyRange] if so need a list of named ranges
-+ if ( isRangeShortCut( Name ) )
-+ return uno::Any( getActiveWorkbook()->getActiveSheet()->Range( uno::Any( Name ) ) );
-+ return uno::Any();
-+}
-+
-+uno::Any
-+ScVbaApplication::Dialogs( const uno::Any &aIndex ) throw (uno::RuntimeException)
-+{
-+ uno::Reference< vba::XDialogs > xDialogs( new ScVbaDialogs( m_xContext ) );
-+ if( !aIndex.hasValue() )
-+ return uno::Any( xDialogs );
-+ return uno::Any( xDialogs->Item( aIndex ) );
-+}
-+
-+uno::Reference< vba::XWindow > SAL_CALL
-+ScVbaApplication::getActiveWindow() throw (uno::RuntimeException)
-+{
-+ return new ScVbaWindow( m_xContext );
-+}
-+
-+uno::Any SAL_CALL
-+ScVbaApplication::getCutCopyMode() throw (uno::RuntimeException)
-+{
-+ //# FIXME TODO, implementation
-+ uno::Any result;
-+ result <<= sal_False;
-+ return result;
-+}
-+void SAL_CALL
-+ScVbaApplication::setCutCopyMode( const uno::Any& _cutcopymode ) throw (uno::RuntimeException)
-+{
-+ //# FIXME TODO, implementation
-+}
-+double SAL_CALL
-+ScVbaApplication::CountA( const uno::Any& arg1 ) throw (uno::RuntimeException)
-+{
-+ double result;
-+ uno::Reference< vba::XWorksheetFunction > xWksFn = WorksheetFunction();
-+ uno::Reference< script::XInvocation > xInvoc( xWksFn, uno::UNO_QUERY_THROW );
-+ if ( xInvoc.is() )
-+ {
-+ static rtl::OUString FunctionName( RTL_CONSTASCII_USTRINGPARAM("CountA" ) );
-+ uno::Sequence< uno::Any > Params(1);
-+ Params[0] = arg1;
-+ uno::Sequence< sal_Int16 > OutParamIndex;
-+ uno::Sequence< uno::Any > OutParam;
-+ xInvoc->invoke( FunctionName, Params, OutParamIndex, OutParam ) >>= result;
-+ }
-+ return result;
-+}
-+
-+::sal_Int32 SAL_CALL
-+ScVbaApplication::getCalculation() throw (css::uno::RuntimeException)
-+{
-+ return m_xCalculation;
-+}
-+
-+void SAL_CALL
-+ScVbaApplication::setCalculation( ::sal_Int32 _calculation ) throw (css::uno::RuntimeException)
-+{
-+ m_xCalculation = _calculation;
-+}
-+
diff --git a/patches/vba/sc-source-ui-vba-vbaapplication-hxx.diff b/patches/vba/sc-source-ui-vba-vbaapplication-hxx.diff
deleted file mode 100644
index c77276ce5..000000000
--- a/patches/vba/sc-source-ui-vba-vbaapplication-hxx.diff
+++ /dev/null
@@ -1,46 +0,0 @@
---- /dev/null 2005-11-18 19:22:12.156310750 +0000
-+++ sc/source/ui/vba/vbaapplication.hxx 2005-11-19 10:29:46.000000000 +0000
-@@ -0,0 +1,43 @@
-+#ifndef SC_VBA_APPLICATION_HXX
-+#define SC_VBA_APPLICATION_HXX
-+
-+#include <cppuhelper/implbase1.hxx>
-+
-+#include <org/openoffice/vba/XWorksheetFunction.hpp>
-+#include <org/openoffice/vba/XApplication.hpp>
-+#include <com/sun/star/uno/XComponentContext.hpp>
-+
-+#include "vbahelper.hxx"
-+
-+typedef ::cppu::WeakImplHelper1< oo::vba::XApplication > ScVbaApplication_BASE;
-+
-+class ScVbaApplication : public ScVbaApplication_BASE
-+{
-+private:
-+ css::uno::Reference< css::uno::XComponentContext > m_xContext;
-+ sal_Int32 m_xCalculation;
-+public:
-+ ScVbaApplication( css::uno::Reference< css::uno::XComponentContext >& m_xContext );
-+ virtual ~ScVbaApplication();
-+
-+ // XApplication
-+ virtual ::sal_Int32 SAL_CALL getCalculation() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL setCalculation( ::sal_Int32 _calculation ) throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XRange > getSelection() throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XWorkbook > getActiveWorkbook() throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XRange > getActiveCell() throw ( css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XWindow > SAL_CALL getActiveWindow() throw (::com::sun::star::uno::RuntimeException);
-+ virtual sal_Bool getScreenUpdating() throw (css::uno::RuntimeException);
-+ virtual void setScreenUpdating(sal_Bool bUpdate) throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XWorkbook > SAL_CALL getThisWorkbook() throw (css::uno::RuntimeException);
-+ virtual css::uno::Any SAL_CALL Workbooks( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XWorksheetFunction > SAL_CALL WorksheetFunction( ) throw (css::uno::RuntimeException);
-+ virtual css::uno::Any SAL_CALL Evaluate( const ::rtl::OUString& Name ) throw (css::uno::RuntimeException);
-+ virtual css::uno::Any SAL_CALL Dialogs( const css::uno::Any& DialogIndex ) throw (css::uno::RuntimeException);
-+ virtual css::uno::Any SAL_CALL getCutCopyMode() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL setCutCopyMode( const css::uno::Any& _cutcopymode ) throw (css::uno::RuntimeException);
-+
-+ virtual double SAL_CALL CountA( const css::uno::Any& arg1 ) throw (css::uno::RuntimeException) ;
-+
-+};
-+#endif /* SC_VBA_APPLICATION_HXX */
diff --git a/patches/vba/sc-source-ui-vba-vbaarraywrapper-cxx.diff b/patches/vba/sc-source-ui-vba-vbaarraywrapper-cxx.diff
deleted file mode 100644
index fbef8a576..000000000
--- a/patches/vba/sc-source-ui-vba-vbaarraywrapper-cxx.diff
+++ /dev/null
@@ -1,27 +0,0 @@
-*** /dev/null 2005-12-16 09:19:58.720346000 +0000
---- sc/source/ui/vba/vbaarraywrapper.cxx 2005-12-21 16:56:35.000000000 +0000
-***************
-*** 0 ****
---- 1,22 ----
-+ #include "vbaarraywrapper.hxx"
-+ using namespace ::org::openoffice;
-+ using namespace ::com::sun::star;
-+
-+ ScArrayWrapper::ScArrayWrapper( const uno::Any& aArray, sal_Bool bZeroBased ) : maArray( aArray ), mbZeroBased( bZeroBased )
-+ {
-+ }
-+
-+
-+ sal_Bool SAL_CALL
-+ ScArrayWrapper::getIsZeroIndex() throw (css::uno::RuntimeException)
-+ {
-+ return mbZeroBased;
-+ }
-+
-+
-+ css::uno::Any SAL_CALL
-+ ScArrayWrapper::getArray() throw (css::uno::RuntimeException)
-+ {
-+ return maArray;
-+ }
-+
diff --git a/patches/vba/sc-source-ui-vba-vbaarraywrapper-hxx.diff b/patches/vba/sc-source-ui-vba-vbaarraywrapper-hxx.diff
deleted file mode 100644
index fe9540f65..000000000
--- a/patches/vba/sc-source-ui-vba-vbaarraywrapper-hxx.diff
+++ /dev/null
@@ -1,25 +0,0 @@
-*** /dev/null 2005-12-16 09:19:58.720346000 +0000
---- sc/source/ui/vba/vbaarraywrapper.hxx 2005-12-21 16:56:35.000000000 +0000
-***************
-*** 0 ****
---- 1,20 ----
-+ #ifndef SC_VBA_ARRAYWRAPPER_HXX
-+ #define SC_VBA_ARRAYWRAPPER_HXX
-+ #include <cppuhelper/implbase1.hxx>
-+ #include <org/openoffice/vba/XArrayWrapper.hpp>
-+ #include "vbahelper.hxx"
-+
-+ typedef ::cppu::WeakImplHelper1<oo::vba::XArrayWrapper > ArrayWrapperImpl_BASE;
-+
-+ class ScArrayWrapper : public ArrayWrapperImpl_BASE
-+ {
-+ css::uno::Any maArray;
-+ sal_Bool mbZeroBased;
-+ public:
-+ ScArrayWrapper( const css::uno::Any& aArray, sal_Bool bZeroBased );
-+ // Attributes
-+ virtual ::sal_Bool SAL_CALL getIsZeroIndex() throw (css::uno::RuntimeException);
-+ virtual css::uno::Any SAL_CALL getArray() throw (css::uno::RuntimeException);
-+ };
-+
-+ #endif //SC_VBA_WINDOW_HXX
diff --git a/patches/vba/sc-source-ui-vba-vbachart-cxx.diff b/patches/vba/sc-source-ui-vba-vbachart-cxx.diff
deleted file mode 100644
index e028673f1..000000000
--- a/patches/vba/sc-source-ui-vba-vbachart-cxx.diff
+++ /dev/null
@@ -1,32 +0,0 @@
---- /dev/null 2005-11-27 19:42:11.860354750 +0000
-+++ sc/source/ui/vba/vbachart.cxx 2005-11-17 17:08:38.000000000 +0000
-@@ -0,0 +1,29 @@
-+#include "vbachart.hxx"
-+#include <com/sun/star/beans/XPropertySet.hpp>
-+
-+
-+using namespace ::com::sun::star;
-+using namespace ::org::openoffice;
-+
-+const rtl::OUString CHART_NAME( RTL_CONSTASCII_USTRINGPARAM("Name") );
-+::rtl::OUString SAL_CALL
-+ScVbaChart::getName() throw (css::uno::RuntimeException)
-+{
-+ rtl::OUString sName;
-+ uno::Reference< beans::XPropertySet > xProps( m_xChartDoc, uno::UNO_QUERY_THROW );
-+ try
-+ {
-+ xProps->getPropertyValue( CHART_NAME ) >>= sName;
-+ }
-+ catch( uno::Exception e ) // swallow exceptions
-+ {
-+ }
-+ return sName;
-+}
-+
-+uno::Any SAL_CALL
-+ScVbaChart::SeriesCollection(const uno::Any&) throw (uno::RuntimeException)
-+{
-+ return uno::Any();
-+}
-+
diff --git a/patches/vba/sc-source-ui-vba-vbachart-hxx.diff b/patches/vba/sc-source-ui-vba-vbachart-hxx.diff
deleted file mode 100644
index 008e49657..000000000
--- a/patches/vba/sc-source-ui-vba-vbachart-hxx.diff
+++ /dev/null
@@ -1,26 +0,0 @@
---- /dev/null 2005-11-27 19:42:11.860354750 +0000
-+++ sc/source/ui/vba/vbachart.hxx 2005-11-17 17:09:00.000000000 +0000
-@@ -0,0 +1,23 @@
-+#ifndef SC_VBA_CHART_HXX
-+#define SC_VBA_CHART_HXX
-+#include <cppuhelper/implbase1.hxx>
-+#include <com/sun/star/uno/XComponentContext.hpp>
-+#include <com/sun/star/chart/XChartDocument.hpp>
-+#include <org/openoffice/vba/XChart.hpp>
-+#include "vbahelper.hxx"
-+
-+typedef ::cppu::WeakImplHelper1<oo::vba::XChart > ChartImpl_BASE;
-+
-+class ScVbaChart : public ChartImpl_BASE
-+{
-+
-+ css::uno::Reference< css::uno::XComponentContext > m_xContext;
-+ css::uno::Reference< css::chart::XChartDocument > m_xChartDoc;
-+public:
-+ ScVbaChart( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::chart::XChartDocument >& xChartDoc ) : m_xContext(xContext), m_xChartDoc( xChartDoc ) {}
-+ virtual ::rtl::OUString SAL_CALL getName() throw (css::uno::RuntimeException);
-+ virtual css::uno::Any SeriesCollection(const css::uno::Any&) throw (css::uno::RuntimeException);
-+
-+};
-+
-+#endif //SC_VBA_WINDOW_HXX
diff --git a/patches/vba/sc-source-ui-vba-vbachartobject-cxx.diff b/patches/vba/sc-source-ui-vba-vbachartobject-cxx.diff
deleted file mode 100644
index 3476c6bf1..000000000
--- a/patches/vba/sc-source-ui-vba-vbachartobject-cxx.diff
+++ /dev/null
@@ -1,77 +0,0 @@
---- /dev/null 2005-11-27 19:42:11.860354750 +0000
-+++ sc/source/ui/vba/vbachartobject.cxx 2005-11-18 12:53:23.000000000 +0000
-@@ -0,0 +1,74 @@
-+#include "vbachart.hxx"
-+#include <com/sun/star/beans/XPropertySet.hpp>
-+#include <com/sun/star/document/XEmbeddedObjectSupplier.hpp>
-+#include <com/sun/star/container/XNamed.hpp>
-+
-+#include "vbachartobject.hxx"
-+
-+using namespace ::com::sun::star;
-+using namespace ::org::openoffice;
-+
-+const rtl::OUString CHART_NAME( RTL_CONSTASCII_USTRINGPARAM("Name") );
-+
-+::rtl::OUString SAL_CALL
-+ScVbaChartObject::getName() throw (css::uno::RuntimeException)
-+{
-+ rtl::OUString sName;
-+ uno::Reference< container::XNamed > xNamed( m_xTableChart, uno::UNO_QUERY );
-+ if ( xNamed.is() )
-+ sName = xNamed->getName();
-+ return sName;
-+}
-+
-+
-+
-+uno::Reference< vba::XChart > SAL_CALL
-+ScVbaChartObject::getChart() throw (css::uno::RuntimeException)
-+{
-+ uno::Reference< document::XEmbeddedObjectSupplier > xEmbed( m_xTableChart, uno::UNO_QUERY_THROW );
-+ uno::Reference< chart::XChartDocument > xChart( xEmbed->getEmbeddedObject(), uno::UNO_QUERY_THROW );
-+
-+ // #TODO check with vba to see whether its valid to return a
-+ // null object for the Chart property. atm, we throw ( i.e. if in
-+ // doubt... throw )
-+
-+ return new ScVbaChart( m_xContext, xChart );
-+}
-+/*
-+#include<cppuhelper/implbase1.hxx>
-+#include<org/openoffice/vba/XChartObject.hpp>
-+#include"vbacollectionimpl.hxx"
-+
-+typedef ::cppu::ImplInheritanceHelper1< ScVbaCollectionBaseImpl, oo::vba::XChartObject > XSeriesCollectionBase;
-+class MyCollectionImpl : public XSeriesCollectionBase
-+{
-+public:
-+ //MyCollectionImpl( css::uno::Reference< css::uno::XComponentContext >& xContext ) : ScVbaCollectionBaseImpl( xContext ) {}
-+ MyCollectionImpl( css::uno::Reference< css::uno::XComponentContext >& xContext ) : XSeriesCollectionBase( xContext ) {}
-+ virtual ::rtl::OUString SAL_CALL getName() throw (css::uno::RuntimeException)
-+ {
-+ OSL_TRACE("**** In Get Name for mangled object");
-+ rtl::OUString dummy;
-+ return dummy;
-+ }
-+ virtual css::uno::Any test() throw (css::uno::RuntimeException)
-+ {
-+ OSL_TRACE("**** In test for mangled object");
-+ return uno::Any();
-+ }
-+ virtual css::uno::Reference< oo::vba::XChart > SAL_CALL getChart() throw (css::uno::RuntimeException)
-+ {
-+ OSL_TRACE("**** In getChart for mangled object");
-+ return css::uno::Reference< oo::vba::XChart >();
-+ }
-+
-+};
-+*/
-+
-+uno::Any SAL_CALL
-+ScVbaChartObject::test()throw (css::uno::RuntimeException)
-+{
-+ return uno::Any();
-+}
-+
-+
diff --git a/patches/vba/sc-source-ui-vba-vbachartobject-hxx.diff b/patches/vba/sc-source-ui-vba-vbachartobject-hxx.diff
deleted file mode 100644
index c4f43c363..000000000
--- a/patches/vba/sc-source-ui-vba-vbachartobject-hxx.diff
+++ /dev/null
@@ -1,27 +0,0 @@
---- /dev/null 2005-11-27 19:42:11.860354750 +0000
-+++ sc/source/ui/vba/vbachartobject.hxx 2005-11-18 14:46:16.000000000 +0000
-@@ -0,0 +1,24 @@
-+#ifndef SC_VBA_CHARTOBJECT_HXX
-+#define SC_VBA_CHARTOBJECT_HXX
-+#include <cppuhelper/implbase1.hxx>
-+#include <com/sun/star/uno/XComponentContext.hpp>
-+#include <com/sun/star/table/XTableChart.hpp>
-+#include <org/openoffice/vba/XChartObject.hpp>
-+#include "vbahelper.hxx"
-+
-+typedef ::cppu::WeakImplHelper1<oo::vba::XChartObject > ChartObjectImpl_BASE;
-+
-+class ScVbaChartObject : public ChartObjectImpl_BASE
-+{
-+
-+ css::uno::Reference< css::uno::XComponentContext > m_xContext;
-+ css::uno::Reference< css::table::XTableChart > m_xTableChart;
-+public:
-+ ScVbaChartObject( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::table::XTableChart >& xTableChart ) : m_xContext(xContext), m_xTableChart( xTableChart ) {}
-+ virtual ::rtl::OUString SAL_CALL getName() throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XChart > SAL_CALL getChart() throw (css::uno::RuntimeException);
-+
-+ virtual css::uno::Any SAL_CALL test( ) throw (css::uno::RuntimeException);
-+};
-+
-+#endif //SC_VBA_WINDOW_HXX
diff --git a/patches/vba/sc-source-ui-vba-vbachartobjects-cxx.diff b/patches/vba/sc-source-ui-vba-vbachartobjects-cxx.diff
deleted file mode 100644
index 027c20478..000000000
--- a/patches/vba/sc-source-ui-vba-vbachartobjects-cxx.diff
+++ /dev/null
@@ -1,55 +0,0 @@
---- /dev/null 2005-11-27 19:42:11.860354750 +0000
-+++ sc/source/ui/vba/vbachartobjects.cxx 2005-11-18 15:41:25.000000000 +0000
-@@ -0,0 +1,52 @@
-+#include "vbachart.hxx"
-+#include <com/sun/star/beans/XPropertySet.hpp>
-+#include <com/sun/star/document/XEmbeddedObjectSupplier.hpp>
-+
-+
-+#include "vbachartobjects.hxx"
-+#include "vbachartobject.hxx"
-+#include "vbaglobals.hxx"
-+
-+using namespace ::com::sun::star;
-+using namespace ::org::openoffice;
-+
-+
-+class ChartObjectEnumerationImpl : public EnumerationHelperImpl
-+{
-+public:
-+
-+ ChartObjectEnumerationImpl( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XEnumeration >& xEnumeration ) throw ( uno::RuntimeException ) : EnumerationHelperImpl( xContext, xEnumeration ) {}
-+ virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
-+ {
-+ uno::Reference< table::XTableChart > xTableChart( m_xEnumeration->nextElement(), uno::UNO_QUERY_THROW );
-+ return makeAny( uno::Reference< vba::XChartObject > ( new ScVbaChartObject( m_xContext, xTableChart ) ) );
-+ }
-+};
-+
-+
-+
-+// XEnumerationAccess
-+
-+uno::Reference< container::XEnumeration >
-+ScVbaChartObjects::createEnumeration() throw (uno::RuntimeException)
-+{
-+ css::uno::Reference< container::XEnumerationAccess > xEnumAccess( m_xTableCharts, uno::UNO_QUERY_THROW );
-+ return new ChartObjectEnumerationImpl( m_xContext, xEnumAccess->createEnumeration() );
-+}
-+
-+// XElementAccess
-+
-+uno::Type
-+ScVbaChartObjects::getElementType() throw (uno::RuntimeException)
-+{
-+ return vba::XChartObject::static_type(0);
-+}
-+
-+// ScVbaCollectionBaseImpl
-+uno::Any
-+ScVbaChartObjects::createCollectionObject( const css::uno::Any& aSource )
-+{
-+ uno::Reference< table::XTableChart > xTableChart( aSource, uno::UNO_QUERY_THROW );
-+ return makeAny( uno::Reference< vba::XChartObject > ( new ScVbaChartObject( m_xContext, xTableChart ) ) );
-+}
-+
diff --git a/patches/vba/sc-source-ui-vba-vbachartobjects-hxx.diff b/patches/vba/sc-source-ui-vba-vbachartobjects-hxx.diff
deleted file mode 100644
index 42ceb9520..000000000
--- a/patches/vba/sc-source-ui-vba-vbachartobjects-hxx.diff
+++ /dev/null
@@ -1,32 +0,0 @@
---- /dev/null 2005-11-27 19:42:11.860354750 +0000
-+++ sc/source/ui/vba/vbachartobjects.hxx 2005-11-18 14:36:30.000000000 +0000
-@@ -0,0 +1,29 @@
-+#ifndef SC_VBA_CHARTOBJECTS_HXX
-+#define SC_VBA_CHARTOBJECTS_HXX
-+#include <org/openoffice/vba/XChartObjects.hpp>
-+#include <cppuhelper/implbase1.hxx>
-+#include <com/sun/star/uno/XComponentContext.hpp>
-+#include <com/sun/star/table/XTableCharts.hpp>
-+#include <com/sun/star/container/XEnumerationAccess.hpp>
-+#include"vbacollectionimpl.hxx"
-+#include "vbahelper.hxx"
-+
-+
-+typedef ::cppu::ImplInheritanceHelper1< ScVbaCollectionBaseImpl, oo::vba::XChartObjects > ChartObjects_BASE;
-+
-+class ScVbaChartObjects : public ChartObjects_BASE
-+{
-+
-+ css::uno::Reference< css::uno::XComponentContext > m_xContext;
-+ css::uno::Reference< css::table::XTableCharts > m_xTableCharts;
-+public:
-+ ScVbaChartObjects( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::table::XTableCharts >& xTableCharts ) : ChartObjects_BASE(xContext, css::uno::Reference< css::container::XIndexAccess >( xTableCharts, css::uno::UNO_QUERY ) ), m_xContext(xContext), m_xTableCharts( xTableCharts ) {}
-+ // XEnumerationAccess
-+ virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException);
-+ // XElementAccess
-+ virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException);
-+ // ScVbaCollectionBaseImpl
-+ virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource );
-+};
-+
-+#endif //SC_VBA_WINDOW_HXX
diff --git a/patches/vba/sc-source-ui-vba-vbacollectionimpl-cxx.diff b/patches/vba/sc-source-ui-vba-vbacollectionimpl-cxx.diff
deleted file mode 100644
index d8ee9ee00..000000000
--- a/patches/vba/sc-source-ui-vba-vbacollectionimpl-cxx.diff
+++ /dev/null
@@ -1,106 +0,0 @@
---- /dev/null 2005-11-27 19:42:11.860354750 +0000
-+++ sc/source/ui/vba/vbacollectionimpl.cxx 2005-11-30 11:58:09.000000000 +0000
-@@ -0,0 +1,103 @@
-+#include <vbacollectionimpl.hxx>
-+#include "vbaglobals.hxx"
-+using namespace ::com::sun::star;
-+using namespace ::org::openoffice;
-+
-+
-+ScVbaCollectionBaseImpl::ScVbaCollectionBaseImpl( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XIndexAccess >& xIndexAccess ) throw (uno::RuntimeException) : m_xContext( xContext ), m_xIndexAccess( xIndexAccess )
-+{
-+ m_xNameAccess.set( xIndexAccess, uno::UNO_QUERY_THROW );
-+ if ( !m_xIndexAccess.is() || !m_xNameAccess.is() )
-+ throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ScVbaCollectionBaseImpl not initialised") ), uno::Reference< uno::XInterface >() );
-+}
-+
-+uno::Any
-+ScVbaCollectionBaseImpl::getItemByStringIndex( const rtl::OUString& sIndex ) throw (::uno::RuntimeException)
-+{
-+ return createCollectionObject( m_xNameAccess->getByName( sIndex ) );
-+}
-+
-+uno::Any
-+ScVbaCollectionBaseImpl::getItemByIntIndex( const sal_Int32 nIndex ) throw (uno::RuntimeException)
-+{
-+ if ( nIndex <= 0 )
-+ {
-+ throw lang::IndexOutOfBoundsException(
-+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
-+ "index is 0 or negative" ) ),
-+ uno::Reference< uno::XInterface >() );
-+ }
-+ // need to adjust for vba index ( for which first element is 1 )
-+ return createCollectionObject( m_xIndexAccess->getByIndex( nIndex - 1 ) );
-+}
-+
-+::sal_Int32 SAL_CALL
-+ScVbaCollectionBaseImpl::getCount() throw (uno::RuntimeException)
-+{
-+ return m_xIndexAccess->getCount();
-+}
-+
-+uno::Any SAL_CALL
-+ScVbaCollectionBaseImpl::getParent() throw (uno::RuntimeException)
-+{
-+ // #TODO #FIXME investigate whether this makes sense
-+ uno::Reference< vba::XApplication > xApplication =
-+ ScVbaGlobals::getGlobalsImpl( m_xContext )->getApplication();
-+ uno::Reference< vba::XWorkbook > xWorkbook;
-+ if ( xApplication.is() )
-+ {
-+ xWorkbook = xApplication->getActiveWorkbook();
-+ }
-+ return uno::Any( xWorkbook );
-+}
-+
-+::sal_Int32 SAL_CALL ScVbaCollectionBaseImpl::getCreator() throw (uno::RuntimeException)
-+{
-+ SC_VBA_STUB();
-+ return 0;
-+}
-+uno::Reference< vba::XApplication > SAL_CALL ScVbaCollectionBaseImpl::getApplication() throw (uno::RuntimeException)
-+{
-+ // #TODO #FIXME investigate whether this makes sense
-+ uno::Reference< vba::XApplication > xApplication =
-+ ScVbaGlobals::getGlobalsImpl( m_xContext )->getApplication();
-+ return xApplication;
-+}
-+
-+uno::Any SAL_CALL ScVbaCollectionBaseImpl::Item( const uno::Any& aIndex ) throw (uno::RuntimeException)
-+{
-+ if ( aIndex.getValueTypeClass() != uno::TypeClass_STRING )
-+ {
-+ sal_Int32 nIndex = 0;
-+
-+ if ( ( aIndex >>= nIndex ) != sal_True )
-+ {
-+ rtl::OUString message;
-+ message = rtl::OUString::createFromAscii(
-+ "Couldn't convert index to Int32");
-+ throw lang::IndexOutOfBoundsException( message,
-+ uno::Reference< uno::XInterface >() );
-+ }
-+ return getItemByIntIndex( nIndex );
-+ }
-+ rtl::OUString aStringSheet;
-+
-+ aIndex >>= aStringSheet;
-+ return getItemByStringIndex( aStringSheet );
-+}
-+
-+/*
-+ // XEnumerationAccess
-+uno::Reference< container::XEnumeration > SAL_CALL ScVbaCollectionBaseImpl::createEnumeration() throw (uno::RuntimeException)
-+{
-+ return uno::Reference< container::XEnumeration > ();
-+}
-+*/
-+ // XElementAccess
-+
-+::sal_Bool SAL_CALL ScVbaCollectionBaseImpl::hasElements() throw (uno::RuntimeException)
-+{
-+ return ( m_xIndexAccess->getCount() > 0 );
-+}
-+
-+
diff --git a/patches/vba/sc-source-ui-vba-vbacollectionimpl-hxx.diff b/patches/vba/sc-source-ui-vba-vbacollectionimpl-hxx.diff
deleted file mode 100644
index b4aa2ecab..000000000
--- a/patches/vba/sc-source-ui-vba-vbacollectionimpl-hxx.diff
+++ /dev/null
@@ -1,73 +0,0 @@
-*** /dev/null 2006-01-03 09:47:36.312320500 +0000
---- sc/source/ui/vba/vbacollectionimpl.hxx 2006-01-04 11:01:55.000000000 +0000
-***************
-*** 0 ****
---- 1,68 ----
-+ #ifndef SC_VBA_COLLECTION_IMPL_HXX
-+ #define SC_VBA_COLLECTION_IMPL_HXX
-+
-+ #include <org/openoffice/vba/XCollection.hpp>
-+ #include <com/sun/star/container/XEnumerationAccess.hpp>
-+ #include <com/sun/star/uno/XComponentContext.hpp>
-+ #include <com/sun/star/container/XIndexAccess.hpp>
-+ #include <com/sun/star/container/XNameAccess.hpp>
-+
-+ #include <cppuhelper/implbase2.hxx>
-+ #include <cppuhelper/implbase1.hxx>
-+
-+ #include "vbahelper.hxx"
-+
-+
-+ typedef ::cppu::WeakImplHelper1< css::container::XEnumeration > EnumerationHelper_BASE;
-+
-+ class EnumerationHelperImpl : public EnumerationHelper_BASE
-+ {
-+ protected:
-+ css::uno::Reference< css::uno::XComponentContext > m_xContext;
-+ css::uno::Reference< css::container::XEnumeration > m_xEnumeration;
-+ public:
-+
-+ EnumerationHelperImpl( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::container::XEnumeration >& xEnumeration ) throw ( css::uno::RuntimeException ) : m_xEnumeration( xEnumeration ), m_xContext( xContext ) { }
-+ virtual ::sal_Bool SAL_CALL hasMoreElements( ) throw (css::uno::RuntimeException) { return m_xEnumeration->hasMoreElements(); }
-+ //virtual css::uno::Any SAL_CALL nextElement( ) throw (css::container::NoSuchElementException, css::lang::WrappedTargetException, css::uno::RuntimeException) = 0;
-+ };
-+
-+
-+
-+ typedef ::cppu::WeakImplHelper2<oo::vba::XCollection,
-+ css::container::XEnumerationAccess > XCollection_BASE;
-+
-+ class ScVbaCollectionBaseImpl : public XCollection_BASE
-+ {
-+ protected:
-+ css::uno::Reference< css::uno::XComponentContext > m_xContext;
-+
-+ css::uno::Reference< css::container::XIndexAccess > m_xIndexAccess;
-+ css::uno::Reference< css::container::XNameAccess > m_xNameAccess;
-+
-+ virtual css::uno::Any getItemByStringIndex( const rtl::OUString& sIndex ) throw (css::uno::RuntimeException);
-+
-+ virtual css::uno::Any getItemByIntIndex( const sal_Int32 nIndex ) throw (css::uno::RuntimeException);
-+ public:
-+ ScVbaCollectionBaseImpl( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::container::XIndexAccess >& xIndexAccess ) throw( css::uno::RuntimeException );
-+
-+ //XCollection
-+ virtual ::sal_Int32 SAL_CALL getCount() throw (css::uno::RuntimeException);
-+ virtual css::uno::Any SAL_CALL getParent() throw (css::uno::RuntimeException);
-+ virtual ::sal_Int32 SAL_CALL getCreator() throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XApplication > SAL_CALL getApplication() throw (css::uno::RuntimeException);
-+
-+ virtual css::uno::Any SAL_CALL Item( const css::uno::Any& Index ) throw (css::uno::RuntimeException);
-+
-+ // XEnumerationAccess
-+ virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException) = 0;
-+
-+ // XElementAccess
-+ virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException) = 0;
-+
-+ virtual ::sal_Bool SAL_CALL hasElements() throw (css::uno::RuntimeException);
-+
-+ virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource ) = 0;
-+
-+ };
-+ #endif //SC_VBA_COLLECTION_IMPL_HXX
diff --git a/patches/vba/sc-source-ui-vba-vbadialog-cxx.diff b/patches/vba/sc-source-ui-vba-vbadialog-cxx.diff
deleted file mode 100644
index c4d5e1e64..000000000
--- a/patches/vba/sc-source-ui-vba-vbadialog-cxx.diff
+++ /dev/null
@@ -1,107 +0,0 @@
---- /dev/null 2005-11-06 11:49:58.372324250 +0000
-+++ sc/source/ui/vba/vbadialog.cxx 2005-10-27 18:06:14.000000000 +0100
-@@ -0,0 +1,104 @@
-+#include <comphelper/processfactory.hxx>
-+
-+#include <com/sun/star/lang/XMultiComponentFactory.hpp>
-+#include <com/sun/star/frame/XModel.hpp>
-+#include <org/openoffice/vba/XApplication.hpp>
-+
-+#include <tools/string.hxx>
-+
-+#include "vbahelper.hxx"
-+#include "vbadialog.hxx"
-+#include "vbaglobals.hxx"
-+
-+using namespace ::org::openoffice;
-+using namespace ::org::openoffice::vba;
-+using namespace ::com::sun::star;
-+
-+// fails silently
-+void
-+ScVbaDialog::Show() throw(uno::RuntimeException)
-+{
-+ rtl::OUString aURL;
-+ uno::Reference< frame::XModel > xModel = getCurrentDocument();
-+ if ( xModel.is() )
-+ {
-+ aURL = mapIndexToName( mnIndex );
-+ if( aURL.getLength() )
-+ throw uno::RuntimeException(
-+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( " Unable to open the specified dialog " ) ),
-+ uno::Reference< XInterface > () );
-+ dispatchRequests( xModel, aURL );
-+ }
-+}
-+
-+uno::Any
-+ScVbaDialog::getParent() throw (uno::RuntimeException)
-+{
-+ uno::Reference< vba::XGlobals > xGlobals = ScVbaGlobals::getGlobalsImpl( m_xContext );
-+ uno::Reference< vba::XApplication > xApplication = xGlobals->getApplication();
-+ if ( !xApplication.is() )
-+ {
-+ throw uno::RuntimeException(
-+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ScVbaDialgs::getParent: Couldn't access Application object") ),uno::Reference< XInterface >() );
-+ }
-+ return uno::Any(xApplication);
-+}
-+
-+::sal_Int32
-+ScVbaDialog::getCreator() throw (uno::RuntimeException)
-+{
-+ SC_VBA_STUB();
-+ return 0;
-+}
-+uno::Reference< vba::XApplication >
-+ScVbaDialog::getApplication() throw (uno::RuntimeException)
-+{
-+ uno::Reference< vba::XApplication > xApplication = ScVbaGlobals::getGlobalsImpl( m_xContext )->getApplication();
-+ if ( !xApplication.is() )
-+ {
-+ throw uno::RuntimeException(
-+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ScVbaWorkbooks::getParent: Couldn't access Application object" ) ),
-+ uno::Reference< XInterface >() );
-+ }
-+ return xApplication;
-+}
-+
-+static const rtl::OUString aStringList[]=
-+{
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:Open" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormatCellDialog" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:InsertCell" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:Print" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:PasteSpecial" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:ToolProtectionDocument" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:ColumnWidth" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:DefineName" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:ConfigureDialog" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:HyperlinkDialog" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:InsertGraphic" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:InsertObject" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:PageFormatDialog" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:DataSort" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:RowHeight" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:AutoCorrectDlg" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:ConditionalFormatDialog" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:DataConsolidate" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:CreateNames" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FillSeries" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:Validation") ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:DefineLabelRange" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:DataFilterAutoFilter" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:DataFilterSpecialFilter" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:AutoFormat" ) )
-+};
-+
-+const sal_Int32 nSize = sizeof( aStringList ) / sizeof( aStringList[ 0 ] );
-+
-+rtl::OUString
-+ScVbaDialog::mapIndexToName( sal_Int32 nIndex )
-+{
-+ if( nIndex < nSize )
-+ return aStringList[ nIndex ];
-+ return rtl::OUString();
-+}
-+
diff --git a/patches/vba/sc-source-ui-vba-vbadialog-hxx.diff b/patches/vba/sc-source-ui-vba-vbadialog-hxx.diff
deleted file mode 100644
index 6ed551ecb..000000000
--- a/patches/vba/sc-source-ui-vba-vbadialog-hxx.diff
+++ /dev/null
@@ -1,38 +0,0 @@
---- /dev/null 2005-11-06 11:49:58.372324250 +0000
-+++ sc/source/ui/vba/vbadialog.hxx 2005-10-27 18:06:14.000000000 +0100
-@@ -0,0 +1,35 @@
-+#ifndef SC_VBA_DIALOG_HXX
-+#define SC_VBA_DIALOG_HXX
-+
-+#include <cppuhelper/implbase1.hxx>
-+
-+#include <com/sun/star/uno/XComponentContext.hpp>
-+#include <org/openoffice/vba/XGlobals.hpp>
-+#include <org/openoffice/vba/XApplication.hpp>
-+#include <org/openoffice/vba/XDialog.hpp>
-+
-+#include "vbahelper.hxx"
-+#include "vbadialog.hxx"
-+
-+typedef ::cppu::WeakImplHelper1< oo::vba::XDialog > ScVbaDialog_BASE;
-+
-+class ScVbaDialog : public ScVbaDialog_BASE
-+{
-+ sal_Int32 mnIndex;
-+ css::uno::Reference< css::uno::XComponentContext > m_xContext;
-+public:
-+ ScVbaDialog( sal_Int32 nIndex, css::uno::Reference< css::uno::XComponentContext > xContext ):
-+ mnIndex( nIndex ),
-+ m_xContext( xContext ) {}
-+ virtual ~ScVbaDialog() {}
-+
-+ // Attributes
-+ virtual css::uno::Reference< oo::vba::XApplication > SAL_CALL getApplication() throw (css::uno::RuntimeException);
-+ virtual css::uno::Any SAL_CALL getParent() throw (css::uno::RuntimeException);
-+ virtual sal_Int32 SAL_CALL getCreator() throw(css::uno::RuntimeException);
-+ // Methods
-+ virtual void SAL_CALL Show() throw (css::uno::RuntimeException);
-+ rtl::OUString mapIndexToName( sal_Int32 nIndex );
-+};
-+
-+#endif /* SC_VBA_DIALOG_HXX */
diff --git a/patches/vba/sc-source-ui-vba-vbadialogs-cxx.diff b/patches/vba/sc-source-ui-vba-vbadialogs-cxx.diff
deleted file mode 100644
index f0c94e344..000000000
--- a/patches/vba/sc-source-ui-vba-vbadialogs-cxx.diff
+++ /dev/null
@@ -1,72 +0,0 @@
---- /dev/null 2005-10-10 09:55:51.712408000 +0100
-+++ sc/source/ui/vba/vbadialogs.cxx 2005-10-12 17:23:18.000000000 +0100
-@@ -0,0 +1,69 @@
-+#include <comphelper/processfactory.hxx>
-+
-+#include <com/sun/star/lang/XMultiComponentFactory.hpp>
-+#include <com/sun/star/frame/XModel.hpp>
-+#include <org/openoffice/vba/XApplication.hpp>
-+#include <org/openoffice/vba/XDialog.hpp>
-+
-+#include <tools/string.hxx>
-+
-+#include "vbahelper.hxx"
-+#include "vbadialogs.hxx"
-+#include "vbaglobals.hxx"
-+#include "vbadialog.hxx"
-+
-+using namespace ::org::openoffice;
-+using namespace ::com::sun::star;
-+
-+void
-+ScVbaDialogs::Dummy() throw (uno::RuntimeException)
-+{
-+}
-+
-+uno::Any
-+ScVbaDialogs::getParent() throw (uno::RuntimeException)
-+{
-+ uno::Reference< vba::XGlobals > xGlobals = ScVbaGlobals::getGlobalsImpl( m_xContext );
-+ uno::Reference< vba::XApplication > xApplication = xGlobals->getApplication();
-+ if ( !xApplication.is() )
-+ {
-+ throw uno::RuntimeException(
-+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ScVbaWorkbooks::getParent: Couldn't access Application object") ),uno::Reference< XInterface >() );
-+ }
-+ return uno::Any(xApplication);
-+}
-+
-+::sal_Int32
-+ScVbaDialogs::getCreator() throw (uno::RuntimeException)
-+{
-+ SC_VBA_STUB();
-+ return 0;
-+}
-+uno::Reference< vba::XApplication >
-+ScVbaDialogs::getApplication() throw (uno::RuntimeException)
-+{
-+ uno::Reference< vba::XApplication > xApplication = ScVbaGlobals::getGlobalsImpl( m_xContext )->getApplication();
-+ if ( !xApplication.is() )
-+ {
-+ throw uno::RuntimeException(
-+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ScVbaWorkbooks::getParent: Couldn't access Application object" ) ),
-+ uno::Reference< XInterface >() );
-+ }
-+ return xApplication;
-+}
-+
-+::sal_Int32
-+ScVbaDialogs::getCount() throw (uno::RuntimeException)
-+{
-+ SC_VBA_STUB();
-+ return 0;
-+}
-+
-+uno::Any
-+ScVbaDialogs::Item( const uno::Any &aItem ) throw (uno::RuntimeException)
-+{
-+ sal_Int32 nIndex;
-+ aItem >>= nIndex;
-+ uno::Reference< vba::XDialog > aDialog( new ScVbaDialog( nIndex, m_xContext ) );
-+ return uno::Any( aDialog );
-+}
diff --git a/patches/vba/sc-source-ui-vba-vbadialogs-hxx.diff b/patches/vba/sc-source-ui-vba-vbadialogs-hxx.diff
deleted file mode 100644
index 75fd8eaff..000000000
--- a/patches/vba/sc-source-ui-vba-vbadialogs-hxx.diff
+++ /dev/null
@@ -1,37 +0,0 @@
---- /dev/null 2005-11-06 11:49:58.372324250 +0000
-+++ sc/source/ui/vba/vbadialogs.hxx 2005-10-27 18:06:14.000000000 +0100
-@@ -0,0 +1,34 @@
-+#ifndef SC_VBA_DIALOGS_HXX
-+#define SC_VBA_DIALOGS_HXX
-+
-+#include <cppuhelper/implbase1.hxx>
-+
-+#include <com/sun/star/uno/XComponentContext.hpp>
-+#include <org/openoffice/vba/XDialogs.hpp>
-+#include <org/openoffice/vba/XCollection.hpp>
-+
-+class ScModelObj;
-+
-+typedef ::cppu::WeakImplHelper1< oo::vba::XDialogs > ScVbaDialogs_BASE;
-+
-+class ScVbaDialogs : public ScVbaDialogs_BASE
-+{
-+ css::uno::Reference< css::uno::XComponentContext > & m_xContext;
-+public:
-+ ScVbaDialogs( css::uno::Reference< css::uno::XComponentContext > &xContext ):
-+ m_xContext( xContext ) {}
-+ virtual ~ScVbaDialogs() {}
-+
-+ // XCollection
-+ virtual ::sal_Int32 SAL_CALL getCount() throw (css::uno::RuntimeException);
-+ virtual css::uno::Any SAL_CALL getParent() throw (css::uno::RuntimeException);
-+ virtual ::sal_Int32 SAL_CALL getCreator() throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XApplication > SAL_CALL getApplication()
-+ throw (css::uno::RuntimeException);
-+ virtual css::uno::Any SAL_CALL Item( const css::uno::Any& Index ) throw (css::uno::RuntimeException);
-+
-+ // XDialogs
-+ virtual void SAL_CALL Dummy() throw (css::uno::RuntimeException);
-+};
-+
-+#endif /* SC_VBA_DIALOGS_HXX */
diff --git a/patches/vba/sc-source-ui-vba-vbafont-cxx.diff b/patches/vba/sc-source-ui-vba-vbafont-cxx.diff
deleted file mode 100644
index d3326e6f7..000000000
--- a/patches/vba/sc-source-ui-vba-vbafont-cxx.diff
+++ /dev/null
@@ -1,115 +0,0 @@
---- /dev/null 2005-10-10 09:55:51.712408000 +0100
-+++ sc/source/ui/vba/vbafont.cxx 2005-10-12 16:26:43.000000000 +0100
-@@ -0,0 +1,112 @@
-+#include <com/sun/star/beans/XProperty.hpp>
-+#include <com/sun/star/awt/FontWeight.hpp>
-+#include <com/sun/star/awt/FontUnderline.hpp>
-+#include <com/sun/star/awt/FontStrikeout.hpp>
-+#include <com/sun/star/awt/FontSlant.hpp>
-+#include "vbafont.hxx"
-+
-+using namespace ::org::openoffice;
-+using namespace ::com::sun::star;
-+
-+void
-+ScVbaFont::setBold( sal_Bool bValue ) throw( uno::RuntimeException )
-+{
-+ double fBoldValue = awt::FontWeight::NORMAL;
-+ if( bValue )
-+ fBoldValue = awt::FontWeight::BOLD;
-+ mxFont->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharWeight" ) ), ( uno::Any )fBoldValue );
-+
-+}
-+
-+sal_Bool
-+ScVbaFont::getBold() throw ( uno::RuntimeException )
-+{
-+ double fValue;
-+ uno::Any aValue = mxFont->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharWeight" ) ) );
-+ aValue >>= fValue;
-+ return( fValue == awt::FontWeight::BOLD );
-+}
-+
-+void
-+ScVbaFont::setUnderline( sal_Bool bValue ) throw ( uno::RuntimeException )
-+{
-+ short nValue = awt::FontUnderline::NONE;
-+ if( bValue )
-+ nValue = awt::FontUnderline::SINGLE;
-+ mxFont->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharUnderline" ) ), ( uno::Any )nValue );
-+}
-+
-+sal_Bool
-+ScVbaFont::getUnderline() throw ( uno::RuntimeException )
-+{
-+ short nValue = 0;
-+ uno::Any aValue = mxFont->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharUnderline" ) ) );
-+ aValue >>= nValue;
-+ return( nValue == awt::FontUnderline::SINGLE );
-+}
-+
-+void
-+ScVbaFont::setStrikethrough( sal_Bool bValue ) throw ( uno::RuntimeException )
-+{
-+ short nValue = awt::FontStrikeout::NONE;
-+ if( bValue )
-+ nValue = awt::FontStrikeout::SINGLE;
-+ mxFont->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharStrikeout" ) ), ( uno::Any )nValue );
-+}
-+
-+sal_Bool
-+ScVbaFont::getStrikethrough() throw ( uno::RuntimeException )
-+{
-+ short nValue = 0;
-+ uno::Any aValue = mxFont->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharStrikeout" ) ) );
-+ aValue >>= nValue;
-+ return( nValue == awt::FontStrikeout::SINGLE );
-+}
-+
-+void
-+ScVbaFont::setShadow( sal_Bool bValue ) throw ( uno::RuntimeException )
-+{
-+ mxFont->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharShadowed" ) ), ( uno::Any )bValue );
-+}
-+
-+sal_Bool
-+ScVbaFont::getShadow() throw (uno::RuntimeException)
-+{
-+ sal_Bool bValue = false;
-+ uno::Any aValue = mxFont->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharShadowed" ) ) );
-+ aValue >>= bValue;
-+ return bValue;
-+}
-+
-+void
-+ScVbaFont::setItalic( sal_Bool bValue ) throw ( uno::RuntimeException )
-+{
-+ short nValue = awt::FontSlant_NONE;
-+ if( bValue )
-+ nValue = awt::FontSlant_ITALIC;
-+ mxFont->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharPosture" ) ), ( uno::Any )nValue );
-+}
-+
-+sal_Bool
-+ScVbaFont::getItalic() throw ( uno::RuntimeException )
-+{
-+ short nValue = 0;
-+ uno::Any aValue = mxFont->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharPosture" ) ) );
-+ aValue >>= nValue;
-+ return( nValue == awt::FontSlant_ITALIC );
-+}
-+
-+void
-+ScVbaFont::setName( const ::rtl::OUString &rString ) throw ( uno::RuntimeException )
-+{
-+ mxFont->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharFontName" ) ), ( uno::Any )rString );
-+}
-+
-+::rtl::OUString
-+ScVbaFont::getName() throw ( uno::RuntimeException )
-+{
-+ ::rtl::OUString rString;
-+ uno::Any aValue = mxFont->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharFontName" ) ) );
-+ aValue >>= rString;
-+ return rString;
-+}
diff --git a/patches/vba/sc-source-ui-vba-vbafont-hxx.diff b/patches/vba/sc-source-ui-vba-vbafont-hxx.diff
deleted file mode 100644
index 6b99345a4..000000000
--- a/patches/vba/sc-source-ui-vba-vbafont-hxx.diff
+++ /dev/null
@@ -1,41 +0,0 @@
---- /dev/null 2005-11-06 11:49:58.372324250 +0000
-+++ sc/source/ui/vba/vbafont.hxx 2005-10-27 18:06:14.000000000 +0100
-@@ -0,0 +1,38 @@
-+#ifndef SC_VBA_FONT_HXX
-+#define SC_VBA_FONT_HXX
-+
-+#include <cppuhelper/implbase1.hxx>
-+
-+#include <org/openoffice/vba/XFont.hpp>
-+#include <com/sun/star/beans/XPropertySet.hpp>
-+#include "vbahelper.hxx"
-+
-+class ScTableSheetsObj;
-+
-+typedef ::cppu::WeakImplHelper1< oo::vba::XFont > ScVbaFont_BASE;
-+
-+class ScVbaFont : public ScVbaFont_BASE
-+{
-+ css::uno::Reference< css::beans::XPropertySet > mxFont;
-+public:
-+ ScVbaFont( css::uno::Reference< css::beans::XPropertySet > xPropertySet ) throw ( css::uno::RuntimeException ) :
-+ mxFont( xPropertySet, css::uno::UNO_QUERY_THROW ){}
-+ virtual ~ScVbaFont() {}
-+
-+ // Attributes
-+ virtual void SAL_CALL setBold( sal_Bool bValue ) throw (css::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL getBold() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL setUnderline( sal_Bool bValue ) throw (css::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL getUnderline() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL setStrikethrough( sal_Bool bValue ) throw (css::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL getStrikethrough() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL setShadow( sal_Bool bValue ) throw (css::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL getShadow() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL setItalic( sal_Bool bValue ) throw (css::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL getItalic() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL setName( const ::rtl::OUString &rString ) throw (css::uno::RuntimeException);
-+ virtual ::rtl::OUString getName() throw (css::uno::RuntimeException);
-+};
-+
-+#endif /* SC_VBA_FONT_HXX */
-+
diff --git a/patches/vba/sc-source-ui-vba-vbaglobals-cxx.diff b/patches/vba/sc-source-ui-vba-vbaglobals-cxx.diff
deleted file mode 100644
index 3b7c237e7..000000000
--- a/patches/vba/sc-source-ui-vba-vbaglobals-cxx.diff
+++ /dev/null
@@ -1,206 +0,0 @@
---- /dev/null 2005-11-06 11:49:58.372324250 +0000
-+++ sc/source/ui/vba/vbaglobals.cxx 2005-11-01 17:05:11.000000000 +0000
-@@ -0,0 +1,203 @@
-+#ifndef SC_VBA_GLOBALS
-+#include "vbaglobals.hxx"
-+#endif
-+
-+#include <com/sun/star/lang/XMultiComponentFactory.hpp>
-+
-+#include "vbaapplication.hxx"
-+#include "vbaworksheet.hxx"
-+
-+using namespace ::com::sun::star;
-+using namespace ::com::sun::star::uno;
-+using namespace ::org::openoffice;
-+
-+
-+
-+namespace vbaobj
-+{
-+ ::rtl::OUString SAL_CALL getImplementationName()
-+ {
-+ static ::rtl::OUString* pImplName = 0;
-+ if ( !pImplName )
-+ {
-+ ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
-+ if ( !pImplName )
-+ {
-+ static ::rtl::OUString aImplName( RTL_CONSTASCII_USTRINGPARAM( "org.openoffice.vba.Globals" ) );
-+ pImplName = &aImplName;
-+ }
-+ }
-+ return *pImplName;
-+ }
-+
-+ uno::Reference< XInterface > SAL_CALL create(
-+ Reference< XComponentContext > const & xContext )
-+ SAL_THROW( () )
-+ {
-+ OSL_TRACE("In create component for vbaglobals");
-+ return static_cast< lang::XTypeProvider * >( new ScVbaGlobals( xContext ) );
-+ }
-+
-+ Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
-+ {
-+ const ::rtl::OUString strName( ::vbaobj::getImplementationName() );
-+ return Sequence< ::rtl::OUString >( &strName, 1 );
-+ }
-+}
-+
-+// =============================================================================
-+// ScVbaGlobals
-+// =============================================================================
-+
-+ScVbaGlobals::ScVbaGlobals( const Reference< XComponentContext >& rxContext )
-+ :m_xContext( rxContext )
-+{
-+// OSL_TRACE("ScVbaGlobals::ScVbaGlobals()");
-+ mxApplication = uno::Reference< vba::XApplication > ( new ScVbaApplication( m_xContext) );
-+}
-+
-+ScVbaGlobals::~ScVbaGlobals()
-+{
-+// OSL_TRACE("ScVbaGlobals::~ScVbaGlobals");
-+}
-+
-+// Will throw if singleton can't be accessed
-+uno::Reference< vba::XGlobals >
-+ScVbaGlobals::getGlobalsImpl( uno::Reference< uno::XComponentContext >& xContext ) throw ( uno::RuntimeException )
-+{
-+ uno::Reference< vba::XGlobals > xGlobals(
-+ xContext->getValueByName( ::rtl::OUString::createFromAscii(
-+ "/singletons/org.openoffice.vba.theGlobals") ), uno::UNO_QUERY);
-+
-+ if ( !xGlobals.is() )
-+ {
-+ throw uno::RuntimeException(
-+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ": Couldn't access Globals" ) ),
-+ uno::Reference< XInterface >() );
-+ }
-+ return xGlobals;
-+}
-+
-+// -----------------------------------------------------------------------------
-+// XServiceInfo
-+// -----------------------------------------------------------------------------
-+
-+::rtl::OUString ScVbaGlobals::getImplementationName( ) throw (RuntimeException)
-+{
-+ return ::vbaobj::getImplementationName();
-+}
-+
-+sal_Bool ScVbaGlobals::supportsService( const ::rtl::OUString& rServiceName ) throw (RuntimeException)
-+{
-+ Sequence< ::rtl::OUString > aNames( ::vbaobj::getSupportedServiceNames() );
-+ const ::rtl::OUString* pNames = aNames.getConstArray();
-+ const ::rtl::OUString* pEnd = pNames + aNames.getLength();
-+ for ( ; pNames != pEnd && !pNames->equals( rServiceName ); ++pNames )
-+ ;
-+
-+ return pNames != pEnd;
-+}
-+
-+Sequence< ::rtl::OUString > ScVbaGlobals::getSupportedServiceNames( ) throw (RuntimeException)
-+{
-+ return vbaobj::getSupportedServiceNames();
-+}
-+
-+// =============================================================================
-+// XGlobals
-+// =============================================================================
-+uno::Reference<vba::XApplication >
-+ScVbaGlobals::getApplication() throw (uno::RuntimeException)
-+{
-+// OSL_TRACE("In ScVbaGlobals::getApplication");
-+ return mxApplication;
-+}
-+
-+uno::Reference< vba::XWorkbook > SAL_CALL
-+ScVbaGlobals::getActiveWorkbook() throw (uno::RuntimeException)
-+{
-+// OSL_TRACE("In ScVbaGlobals::getActiveWorkbook");
-+ uno::Reference< vba::XWorkbook > xWorkbook( mxApplication->getActiveWorkbook(), uno::UNO_QUERY);
-+ if ( xWorkbook.is() )
-+ {
-+ return xWorkbook;
-+ }
-+// FIXME check if this is correct/desired behavior
-+ throw uno::RuntimeException( rtl::OUString::createFromAscii(
-+ "No activeWorkbook available" ), Reference< uno::XInterface >() );
-+}
-+
-+
-+uno::Reference< vba::XWorksheet > SAL_CALL
-+ScVbaGlobals::getActiveSheet() throw (uno::RuntimeException)
-+{
-+// OSL_TRACE("ScVbaGlobals::getActiveSheet()");
-+ uno::Reference< vba::XWorksheet > result;
-+ uno::Reference< vba::XWorkbook > xWorkbook(
-+ mxApplication->getActiveWorkbook(), uno::UNO_QUERY );
-+ if ( xWorkbook.is() )
-+ {
-+ uno::Reference< vba::XWorksheet > xWorksheet(
-+ xWorkbook->getActiveSheet(), uno::UNO_QUERY );
-+ if ( xWorksheet.is() )
-+ {
-+ result = xWorksheet;
-+ }
-+ }
-+
-+ if ( !result.is() )
-+ {
-+ // Fixme - check if this is reasonable/desired behavior
-+ throw uno::RuntimeException( rtl::OUString::createFromAscii(
-+ "No activeSheet available" ), Reference< uno::XInterface >() );
-+ }
-+ return result;
-+}
-+
-+uno::Any SAL_CALL
-+ScVbaGlobals::WorkBooks( const uno::Any& aIndex ) throw (uno::RuntimeException)
-+{
-+ return uno::Any( mxApplication->Workbooks(aIndex) );
-+}
-+
-+uno::Any SAL_CALL
-+ScVbaGlobals::WorkSheets(const uno::Any& aIndex) throw (uno::RuntimeException)
-+{
-+// OSL_TRACE("ScVbaGlobals::getWorkSheets()");
-+ uno::Reference< vba::XWorkbook > xWorkbook( mxApplication->getActiveWorkbook(), uno::UNO_QUERY );
-+ uno::Any result;
-+ if ( xWorkbook.is() )
-+ result = xWorkbook->Worksheets( aIndex );
-+
-+ else
-+ // Fixme - check if this is reasonable/desired behavior
-+ throw uno::RuntimeException( rtl::OUString::createFromAscii(
-+ "No ActiveWorkBook available" ), Reference< uno::XInterface >() );
-+
-+ return result;
-+}
-+uno::Any SAL_CALL
-+ScVbaGlobals::Sheets( const uno::Any& aIndex ) throw (uno::RuntimeException)
-+{
-+ return WorkSheets( aIndex );
-+}
-+
-+::uno::Sequence< ::uno::Any > SAL_CALL
-+ScVbaGlobals::getGlobals( ) throw (::uno::RuntimeException)
-+{
-+ sal_uInt32 nMax = 0;
-+ uno::Sequence< uno::Any > maGlobals(4);
-+ maGlobals[ nMax++ ] <<= ScVbaGlobals::getGlobalsImpl(m_xContext);
-+ maGlobals[ nMax++ ] <<= mxApplication;
-+
-+ uno::Reference< vba::XWorkbook > xWorkbook = mxApplication->getActiveWorkbook();
-+ if( xWorkbook.is() )
-+ {
-+ maGlobals[ nMax++ ] <<= xWorkbook;
-+ uno::Reference< vba::XWorksheet > xWorksheet = xWorkbook->getActiveSheet();
-+ if( xWorksheet.is() )
-+ maGlobals[ nMax++ ] <<= xWorksheet;
-+ }
-+ maGlobals.realloc( nMax );
-+ return maGlobals;
-+}
diff --git a/patches/vba/sc-source-ui-vba-vbaglobals-hxx.diff b/patches/vba/sc-source-ui-vba-vbaglobals-hxx.diff
deleted file mode 100644
index b81932d35..000000000
--- a/patches/vba/sc-source-ui-vba-vbaglobals-hxx.diff
+++ /dev/null
@@ -1,58 +0,0 @@
---- /dev/null 2005-11-06 11:49:58.372324250 +0000
-+++ sc/source/ui/vba/vbaglobals.hxx 2005-11-01 10:40:57.000000000 +0000
-@@ -0,0 +1,55 @@
-+#ifndef SC_VBA_GLOBALS
-+#define SC_VBA_GLOBALS
-+
-+#include <com/sun/star/lang/XServiceInfo.hpp>
-+#include <com/sun/star/lang/XInitialization.hpp>
-+#include <com/sun/star/uno/XComponentContext.hpp>
-+#include <org/openoffice/vba/XGlobals.hpp>
-+
-+#include <cppuhelper/implbase2.hxx>
-+#include "vbahelper.hxx"
-+
-+ // =============================================================================
-+ // class ScVbaGlobals
-+ // =============================================================================
-+
-+ typedef ::cppu::WeakImplHelper2<
-+ oo::vba::XGlobals,
-+ css::lang::XServiceInfo > ScVbaGlobals_BASE;
-+
-+
-+ class ScVbaGlobals : public ScVbaGlobals_BASE
-+ {
-+ private:
-+ css::uno::Reference< css::uno::XComponentContext > m_xContext;
-+ css::uno::Reference< oo::vba::XApplication > mxApplication;
-+ public:
-+
-+ ScVbaGlobals(
-+ const css::uno::Reference< css::uno::XComponentContext >& rxContext );
-+ virtual ~ScVbaGlobals();
-+
-+ static css::uno::Reference< oo::vba::XGlobals > getGlobalsImpl(css::uno::Reference< css::uno::XComponentContext >& ) throw (css::uno::RuntimeException);
-+
-+ // XServiceInfo
-+ virtual ::rtl::OUString SAL_CALL getImplementationName( )
-+ throw (css::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
-+ throw (css::uno::RuntimeException);
-+ virtual css::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( )
-+ throw (css::uno::RuntimeException);
-+
-+ // XGlobals
-+ virtual css::uno::Reference<
-+ oo::vba::XApplication > SAL_CALL getApplication()
-+ throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XWorkbook > SAL_CALL getActiveWorkbook() throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XWorksheet > SAL_CALL getActiveSheet() throw (css::uno::RuntimeException);
-+ virtual css::uno::Any SAL_CALL WorkSheets(const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
-+ virtual css::uno::Any SAL_CALL WorkBooks(const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
-+ virtual css::uno::Any SAL_CALL Sheets( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
-+ virtual css::uno::Sequence< css::uno::Any > SAL_CALL getGlobals( ) throw (css::uno::RuntimeException);
-+
-+
-+ };
-+#endif //
diff --git a/patches/vba/sc-source-ui-vba-vbahelper-cxx.diff b/patches/vba/sc-source-ui-vba-vbahelper-cxx.diff
deleted file mode 100644
index 21752e06e..000000000
--- a/patches/vba/sc-source-ui-vba-vbahelper-cxx.diff
+++ /dev/null
@@ -1,297 +0,0 @@
---- /dev/null 2005-11-27 19:42:11.860354750 +0000
-+++ sc/source/ui/vba/vbahelper.cxx 2005-11-30 12:48:01.000000000 +0000
-@@ -0,0 +1,294 @@
-+#include <cppuhelper/bootstrap.hxx>
-+#include <com/sun/star/util/XURLTransformer.hpp>
-+#include <com/sun/star/frame/XDispatchProvider.hpp>
-+#include <com/sun/star/frame/XModel.hpp>
-+#include <com/sun/star/frame/XFrame.hpp>
-+#include <com/sun/star/frame/XController.hpp>
-+#include <com/sun/star/uno/XComponentContext.hpp>
-+#include <com/sun/star/lang/XMultiComponentFactory.hpp>
-+#include <com/sun/star/beans/XPropertySet.hpp>
-+
-+#include <sfx2/objsh.hxx>
-+#include <sfx2/app.hxx>
-+
-+#include <docuno.hxx>
-+
-+#include <basic/sbx.hxx>
-+
-+#include "vbahelper.hxx"
-+#include "tabvwsh.hxx"
-+#include "transobj.hxx"
-+
-+using namespace ::com::sun::star;
-+using namespace ::org::openoffice;
-+
-+void unoToSbxValue( SbxVariable* pVar, const uno::Any& aValue );
-+
-+uno::Any sbxToUnoValue( SbxVariable* pVar );
-+
-+const ::rtl::OUString REPLACE_CELLS_WARNING( RTL_CONSTASCII_USTRINGPARAM( "ReplaceCellsWarning"));
-+
-+class PasteCellsWarningReseter
-+{
-+private:
-+ bool bInitialWarningState;
-+ static uno::Reference< beans::XPropertySet > getGlobalSheetSettings() throw ( uno::RuntimeException )
-+ {
-+ static uno::Reference<uno::XComponentContext > xContext( ::cppu::defaultBootstrap_InitialComponentContext(), uno::UNO_QUERY_THROW );
-+ static uno::Reference<lang::XMultiComponentFactory > xServiceManager(
-+ xContext->getServiceManager(), uno::UNO_QUERY_THROW );
-+ static uno::Reference< beans::XPropertySet > xProps( xServiceManager->createInstanceWithContext( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.sheet.GlobalSheetSettings" ) ) ,xContext ), uno::UNO_QUERY_THROW );
-+ return xProps;
-+ }
-+
-+ bool getReplaceCellsWarning() throw ( uno::RuntimeException )
-+ {
-+ sal_Bool res = sal_False;
-+ getGlobalSheetSettings()->getPropertyValue( REPLACE_CELLS_WARNING ) >>= res;
-+ return ( res == sal_True );
-+ }
-+
-+ void setReplaceCellsWarning( bool bState ) throw ( uno::RuntimeException )
-+ {
-+ getGlobalSheetSettings()->setPropertyValue( REPLACE_CELLS_WARNING, uno::makeAny( bState ) );
-+ }
-+public:
-+ PasteCellsWarningReseter() throw ( uno::RuntimeException )
-+ {
-+ if ( bInitialWarningState = getReplaceCellsWarning() );
-+ setReplaceCellsWarning( false );
-+ }
-+ ~PasteCellsWarningReseter()
-+ {
-+ if ( bInitialWarningState )
-+ {
-+ // don't allow dtor to throw
-+ try
-+ {
-+ setReplaceCellsWarning( true );
-+ }
-+ catch ( uno::Exception& e ){}
-+ }
-+ }
-+};
-+void
-+org::openoffice::dispatchRequests (uno::Reference< frame::XModel>& xModel,rtl::OUString & aUrl, uno::Sequence< beans::PropertyValue >& sProps )
-+{
-+
-+ util::URL url ;
-+ url.Complete = aUrl;
-+ rtl::OUString emptyString = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "" ));
-+ uno::Reference<frame::XController> xController = xModel->getCurrentController();
-+ uno::Reference<frame::XFrame> xFrame = xController->getFrame();
-+ uno::Reference<frame::XDispatchProvider> xDispatchProvider (xFrame,uno::UNO_QUERY_THROW);
-+ try
-+ {
-+ uno::Reference<uno::XComponentContext > xContext( ::cppu::defaultBootstrap_InitialComponentContext());
-+ if ( !xContext.is() )
-+ {
-+ return ;
-+ }
-+
-+ uno::Reference<lang::XMultiComponentFactory > xServiceManager(
-+ xContext->getServiceManager() );
-+ if ( !xServiceManager.is() )
-+ {
-+ return ;
-+ }
-+ uno::Reference<util::XURLTransformer> xParser( xServiceManager->createInstanceWithContext( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.URLTransformer" ) )
-+ ,xContext), uno::UNO_QUERY_THROW );
-+ if (!xParser.is())
-+ return;
-+ xParser->parseStrict (url);
-+ }
-+ catch ( ::cppu::BootstrapException & e )
-+ {
-+ return ;
-+ }
-+ catch ( uno::Exception & e )
-+ {
-+ return ;
-+ }
-+
-+ uno::Reference<frame::XDispatch> xDispatcher = xDispatchProvider->queryDispatch(url,emptyString,0);
-+
-+ uno::Sequence<beans::PropertyValue> dispatchProps(1);
-+
-+ sal_Int32 nProps = sProps.getLength();
-+ beans::PropertyValue* pDest = dispatchProps.getArray();
-+ if ( nProps )
-+ {
-+ dispatchProps.realloc( nProps + 1 );
-+ // need to reaccquire pDest after realloc
-+ pDest = dispatchProps.getArray();
-+ beans::PropertyValue* pSrc = sProps.getArray();
-+ for ( sal_Int32 index=0; index<nProps; ++index, ++pSrc, ++pDest )
-+ *pDest = *pSrc;
-+ }
-+
-+ (*pDest).Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Silent" ));
-+ (*pDest).Value <<= (sal_Bool)sal_True;
-+
-+ if (xDispatcher.is())
-+ xDispatcher->dispatch( url, dispatchProps );
-+}
-+
-+void
-+org::openoffice::dispatchRequests (uno::Reference< frame::XModel>& xModel,rtl::OUString & aUrl)
-+{
-+ uno::Sequence<beans::PropertyValue> dispatchProps;
-+ dispatchRequests( xModel, aUrl, dispatchProps );
-+}
-+
-+
-+void
-+org::openoffice::implnPaste()
-+{
-+ PasteCellsWarningReseter resetWarningBox;
-+ ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
-+ if ( pViewShell )
-+ {
-+ pViewShell->PasteFromSystem();
-+ pViewShell->CellContentChanged();
-+ }
-+}
-+
-+
-+void
-+org::openoffice::implnCopy()
-+{
-+ ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
-+ if ( pViewShell )
-+ pViewShell->CopyToClip(NULL,false,false,true);
-+}
-+
-+void
-+org::openoffice::implnCut()
-+{
-+ ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
-+ if ( pViewShell )
-+ pViewShell->CutToClip( NULL, TRUE );
-+}
-+
-+void org::openoffice::implnPasteSpecial(USHORT nFlags,USHORT nFunction,sal_Bool bSkipEmpty, sal_Bool bTranspose)
-+{
-+ PasteCellsWarningReseter resetWarningBox;
-+ sal_Bool bAsLink(sal_False), bOtherDoc(sal_False);
-+ InsCellCmd eMoveMode = INS_NONE;
-+
-+ ScTabViewShell* pTabViewShell = ScTabViewShell::GetActiveViewShell();
-+ if ( pTabViewShell )
-+ {
-+ ScViewData* pView = pTabViewShell->GetViewData();
-+ Window* pWin = NULL;
-+ if ( pView && ( pWin = pView->GetActiveWin() ) )
-+ {
-+ if ( bAsLink && bOtherDoc )
-+ pTabViewShell->PasteFromSystem(0);//SOT_FORMATSTR_ID_LINK
-+ else
-+ {
-+ ScTransferObj* pOwnClip = ScTransferObj::GetOwnClipboard( pWin );
-+ ScDocument* pDoc = NULL;
-+ if ( pOwnClip )
-+ pDoc = pOwnClip->GetDocument();
-+ pTabViewShell->PasteFromClip( nFlags, pDoc,
-+ nFunction, bSkipEmpty, bTranspose, bAsLink,
-+ eMoveMode, IDF_NONE, TRUE );
-+ pTabViewShell->CellContentChanged();
-+ }
-+ }
-+ }
-+
-+}
-+
-+bool
-+org::openoffice::isRangeShortCut( const ::rtl::OUString& sParam )
-+{
-+ // for a ShortCutRange param, I'd expect the first letter to be
-+ //[A-Z] and the last letter to be a digit 0-9 e.g A10, [A1:A10] etc.
-+ ::rtl::OString sStr = rtl::OUStringToOString( sParam,
-+ RTL_TEXTENCODING_UTF8 );
-+ const sal_Char* pFirst = (const sal_Char*)sStr;
-+ const sal_Char* pLast = pFirst + ( sStr.getLength() - 1 );
-+ if ( (( *pFirst >= 'A' && *pFirst <= 'Z' ) || ( *pFirst >= 'a' && *pFirst <= 'Z' ) ) )
-+ if ( ( *pLast >= '0' ) && ( *pLast <= '9' ) )
-+ return true;
-+
-+ return false;
-+}
-+
-+ uno::Reference< frame::XModel >
-+org::openoffice::getCurrentDocument() throw (uno::RuntimeException)
-+{
-+ uno::Reference< frame::XModel > xModel;
-+ SbxObject* pBasic = reinterpret_cast< SbxObject* > ( SFX_APP()->GetBasic() );
-+ SbxObject* basicChosen = pBasic ;
-+ if ( basicChosen == NULL)
-+ {
-+ OSL_TRACE("getModelFromBasic() StarBASIC* is NULL" );
-+ return xModel;
-+ }
-+ SbxObject* p = pBasic;
-+ SbxObject* pParent = p->GetParent();
-+ SbxObject* pParentParent = pParent ? pParent->GetParent() : NULL;
-+
-+ if( pParentParent )
-+ {
-+ basicChosen = pParentParent;
-+ }
-+ else if( pParent )
-+ {
-+ basicChosen = pParent;
-+ }
-+
-+
-+ uno::Any aModel;
-+ SbxVariable *pCompVar = basicChosen->Find( UniString(RTL_CONSTASCII_USTRINGPARAM("ThisComponent")), SbxCLASS_OBJECT );
-+
-+ if ( pCompVar )
-+ {
-+ aModel = sbxToUnoValue( pCompVar );
-+ if ( sal_False == ( aModel >>= xModel ) ||
-+ !xModel.is() )
-+ {
-+ OSL_TRACE("Failed to extract model from thisComponent ");
-+ return xModel;
-+ }
-+ else
-+ {
-+ OSL_TRACE("Have model ThisComponent points to url %s",
-+ ::rtl::OUStringToOString( xModel->getURL(),
-+ RTL_TEXTENCODING_ASCII_US ).pData->buffer );
-+ }
-+ }
-+ else
-+ {
-+ OSL_TRACE("Failed to get ThisComponent");
-+ }
-+ return xModel;
-+}
-+
-+ScTabViewShell*
-+org::openoffice::getCurrentBestViewShell()
-+{
-+ uno::Reference< frame::XModel > xModel = getCurrentDocument();
-+ ScModelObj* pModel = static_cast< ScModelObj* >( xModel.get() );
-+ if ( pModel )
-+ {
-+ ScDocShell* pDocShell = (ScDocShell*)pModel->GetEmbeddedObject();
-+ if ( pDocShell )
-+ return pDocShell->GetBestViewShell();
-+ }
-+
-+ return NULL;
-+}
-+
-+SfxViewFrame*
-+org::openoffice::getCurrentViewFrame()
-+{
-+ ScTabViewShell* pViewShell = getCurrentBestViewShell();
-+ if ( pViewShell )
-+ return pViewShell->GetViewFrame();
-+ return NULL;
-+}
-+
diff --git a/patches/vba/sc-source-ui-vba-vbahelper-hxx.diff b/patches/vba/sc-source-ui-vba-vbahelper-hxx.diff
deleted file mode 100644
index 0fe0f7a06..000000000
--- a/patches/vba/sc-source-ui-vba-vbahelper-hxx.diff
+++ /dev/null
@@ -1,38 +0,0 @@
---- /dev/null 2005-11-27 19:42:11.860354750 +0000
-+++ sc/source/ui/vba/vbahelper.hxx 2005-11-30 12:45:48.000000000 +0000
-@@ -0,0 +1,35 @@
-+#ifndef SC_VBA_HELPER_HXX
-+#define SC_VBA_HELPER_HXX
-+
-+#include <com/sun/star/frame/XModel.hpp>
-+#include <docsh.hxx>
-+
-+#define css com::sun::star
-+#define oo org::openoffice
-+namespace org
-+{
-+ namespace openoffice
-+ {
-+ void dispatchRequests (css::uno::Reference< css::frame::XModel>& xModel,rtl::OUString & aUrl) ;
-+ void dispatchRequests (css::uno::Reference< css::frame::XModel>& xModel,rtl::OUString & aUrl, css::uno::Sequence< css::beans::PropertyValue >& sProps ) ;
-+ void implnCopy();
-+ void implnPaste();
-+ void implnCut();
-+ void implnPasteSpecial(sal_uInt16 nFlags,sal_uInt16 nFunction,sal_Bool bSkipEmpty, sal_Bool bTranspose);
-+ bool isRangeShortCut( const ::rtl::OUString& sParam );
-+ css::uno::Reference< css::frame::XModel >
-+ getCurrentDocument() throw (css::uno::RuntimeException);
-+ ScTabViewShell* getCurrentBestViewShell();
-+ SfxViewFrame* getCurrentViewFrame();
-+ }
-+}
-+
-+#ifdef DEBUG
-+# define SC_VBA_FIXME(a) OSL_TRACE( a )
-+# define SC_VBA_STUB() SC_VBA_FIXME(( "%s - stubbed\n", __FUNCTION__ ))
-+#else
-+# define SC_VBA_FIXME(a)
-+# define SC_VBA_STUB()
-+#endif
-+
-+#endif
diff --git a/patches/vba/sc-source-ui-vba-vbainterior-cxx.diff b/patches/vba/sc-source-ui-vba-vbainterior-cxx.diff
deleted file mode 100644
index 8b20e60c7..000000000
--- a/patches/vba/sc-source-ui-vba-vbainterior-cxx.diff
+++ /dev/null
@@ -1,128 +0,0 @@
---- /dev/null 2005-11-06 11:49:58.372324250 +0000
-+++ sc/source/ui/vba/vbainterior.cxx 2005-10-27 18:06:14.000000000 +0100
-@@ -0,0 +1,125 @@
-+#include <com/sun/star/beans/XPropertySet.hpp>
-+#include <com/sun/star/table/XCell.hpp>
-+#include <com/sun/star/table/XColumnRowRange.hpp>
-+#include <com/sun/star/beans/XIntrospection.hpp>
-+#include <com/sun/star/beans/XIntrospectionAccess.hpp>
-+#include <com/sun/star/reflection/XIdlMethod.hpp>
-+#include <com/sun/star/beans/MethodConcept.hpp>
-+#include <comphelper/processfactory.hxx>
-+#include <cppuhelper/queryinterface.hxx>
-+
-+#include "vbainterior.hxx"
-+using namespace ::com::sun::star;
-+using namespace ::org::openoffice;
-+
-+ScVbaInterior::ScVbaInterior( uno::Reference< uno::XComponentContext >& xContext, uno::Reference< css::table::XCellRange > range) throw ( lang::IllegalArgumentException) : m_xContext(xContext),mxRange(range)
-+{
-+ if ( !xContext.is() )
-+ throw lang::IllegalArgumentException( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "context not set" ) ), uno::Reference< uno::XInterface >(), 1 );
-+ if ( !mxRange.is() )
-+ throw lang::IllegalArgumentException( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "range not set") ), uno::Reference< uno::XInterface >(), 2 );
-+}
-+
-+uno::Any
-+ScVbaInterior::getColor() throw (uno::RuntimeException)
-+{
-+ uno::Any aAny;
-+ uno::Reference< table::XCell > xCell = mxRange->getCellByPosition(0,0 );
-+ uno::Reference< beans::XPropertySet > xProps(xCell, uno::UNO_QUERY_THROW );
-+ aAny = xProps->getPropertyValue(rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CellBackColor" ) ));
-+ return aAny;
-+}
-+
-+void
-+ScVbaInterior::setColor( const uno::Any& _color ) throw (uno::RuntimeException)
-+{
-+ uno::Reference< beans::XPropertySet > xProps(mxRange, uno::UNO_QUERY_THROW );
-+ xProps->setPropertyValue(rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CellBackColor" ) ), _color);
-+}
-+
-+uno::Reference< beans::XIntrospectionAccess >
-+ScVbaInterior::getIntrospection(void) throw(uno::RuntimeException)
-+{
-+ return uno::Reference<beans::XIntrospectionAccess>();
-+}
-+
-+uno::Any
-+ScVbaInterior::invoke(const rtl::OUString& FunctionName, const uno::Sequence< uno::Any >& Params, uno::Sequence< sal_Int16 >& OutParamIndex, uno::Sequence< uno::Any >& OutParam) throw( lang::IllegalArgumentException, script::CannotConvertException, reflection::InvocationTargetException, uno::RuntimeException)
-+{
-+ uno::Any aAny;
-+ return aAny;
-+}
-+
-+void
-+ScVbaInterior::setValue(const rtl::OUString& PropertyName, const uno::Any& Value) throw(beans::UnknownPropertyException, script::CannotConvertException, reflection::InvocationTargetException, uno::RuntimeException)
-+{
-+ uno::Reference< beans::XPropertySet > xProps(mxRange, uno::UNO_QUERY_THROW );
-+ if (PropertyName.equalsAscii("RotateAngle"))
-+ {
-+ xProps->setPropertyValue(PropertyName,Value);
-+ }
-+ else if (PropertyName.equalsAscii("CellStyle"))
-+ {
-+ xProps->setPropertyValue(PropertyName,Value);
-+ }
-+ else if (PropertyName.equalsAscii("ColorIndex"))
-+ {
-+ //FIXME:Need to add constants as parameter
-+ xProps->setPropertyValue(rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CellBackColor" ) ),Value);
-+ }
-+ else if (PropertyName.equalsAscii("Color"))
-+ {
-+ setColor( Value );
-+ }
-+ else
-+ {
-+ rtl::OUString msg = rtl::OUString::createFromAscii("No property named ");
-+ msg += PropertyName;
-+ throw beans::UnknownPropertyException( msg, uno::Reference< uno::XInterface >() );
-+ }
-+}
-+
-+uno::Any
-+ScVbaInterior::getValue(const rtl::OUString& PropertyName) throw(beans::UnknownPropertyException, uno::RuntimeException)
-+{
-+ uno::Any aAny;
-+ uno::Reference< beans::XPropertySet > xProps(mxRange, uno::UNO_QUERY_THROW );
-+ if (PropertyName.equalsAscii("ColorIndex"))
-+ {
-+ aAny = xProps->getPropertyValue(rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CellBackColor" ) ));
-+ }
-+ else if (PropertyName.equalsAscii("Color"))
-+ {
-+ aAny = getColor();
-+ }
-+ else
-+ {
-+ rtl::OUString msg = rtl::OUString::createFromAscii("No property named ");
-+ msg += PropertyName;
-+ throw beans::UnknownPropertyException( msg, uno::Reference< uno::XInterface >() );
-+
-+ }
-+ return aAny;
-+}
-+
-+sal_Bool
-+ScVbaInterior::hasMethod(const rtl::OUString& Name) throw(uno::RuntimeException)
-+{
-+ return false;
-+}
-+
-+sal_Bool
-+ScVbaInterior::hasProperty(const rtl::OUString& Name) throw(uno::RuntimeException)
-+{
-+
-+ if (Name.equalsAscii("RotateAngle"))
-+ return true;
-+ if (Name.equalsAscii("CellStyle"))
-+ return true;
-+ if (Name.equalsAscii("ColorIndex"))
-+ return true;
-+ if (Name.equalsAscii("Color"))
-+ return true;
-+
-+ return false;
-+}
diff --git a/patches/vba/sc-source-ui-vba-vbainterior-hxx.diff b/patches/vba/sc-source-ui-vba-vbainterior-hxx.diff
deleted file mode 100644
index f3f826623..000000000
--- a/patches/vba/sc-source-ui-vba-vbainterior-hxx.diff
+++ /dev/null
@@ -1,42 +0,0 @@
---- /dev/null 2005-11-06 11:49:58.372324250 +0000
-+++ sc/source/ui/vba/vbainterior.hxx 2005-10-27 18:06:14.000000000 +0100
-@@ -0,0 +1,39 @@
-+#ifndef SC_VBA_INTERIOR_HXX
-+#define SC_VBA_INTERIOR_HXX
-+
-+#include <cppuhelper/implbase1.hxx>
-+#include <cppuhelper/implbase2.hxx>
-+#include <org/openoffice/vba/XInterior.hpp>
-+#include <com/sun/star/uno/XComponentContext.hpp>
-+#include "vbarange.hxx"
-+
-+#include <com/sun/star/script/XInvocation.hpp>
-+
-+
-+typedef ::cppu::WeakImplHelper2< oo::vba::XInterior,css::script::XInvocation > ScVbaInterior_BASE;
-+
-+class ScVbaInterior : public ScVbaInterior_BASE
-+{
-+ css::uno::Reference< css::table::XCellRange > mxRange;
-+ css::uno::Reference< css::uno::XComponentContext > m_xContext;
-+ css::uno::Reference< css::beans::XIntrospectionAccess> m_xAcc;
-+
-+public:
-+ ScVbaInterior( css::uno::Reference< css::uno::XComponentContext >& xContext,
-+ css::uno::Reference< css::table::XCellRange > range) throw ( css::lang::IllegalArgumentException);
-+
-+ virtual ~ScVbaInterior(){}
-+
-+ virtual css::uno::Any SAL_CALL getColor() throw (css::uno::RuntimeException) ;
-+ virtual void SAL_CALL setColor( const css::uno::Any& _color ) throw (css::uno::RuntimeException) ;
-+
-+ virtual css::uno::Reference< css::beans::XIntrospectionAccess > SAL_CALL getIntrospection(void) throw(css::uno::RuntimeException);
-+ virtual css::uno::Any SAL_CALL invoke(const rtl::OUString& FunctionName, const css::uno::Sequence< css::uno::Any >& Params, css::uno::Sequence< sal_Int16 >& OutParamIndex, css::uno::Sequence< css::uno::Any >& OutParam) throw(css::lang::IllegalArgumentException, css::script::CannotConvertException, css::reflection::InvocationTargetException, css::uno::RuntimeException);
-+ virtual void SAL_CALL setValue(const rtl::OUString& PropertyName, const css::uno::Any& Value) throw(css::beans::UnknownPropertyException, css::script::CannotConvertException, css::reflection::InvocationTargetException, css::uno::RuntimeException);
-+ virtual css::uno::Any SAL_CALL getValue(const rtl::OUString& PropertyName) throw(css::beans::UnknownPropertyException, css::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL hasMethod(const rtl::OUString& Name) throw(css::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL hasProperty(const rtl::OUString& Name) throw(css::uno::RuntimeException);
-+
-+};
-+#endif
-+
diff --git a/patches/vba/sc-source-ui-vba-vbaobj-map.diff b/patches/vba/sc-source-ui-vba-vbaobj-map.diff
deleted file mode 100644
index 2a722fb9f..000000000
--- a/patches/vba/sc-source-ui-vba-vbaobj-map.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- /dev/null 2005-10-10 09:55:51.712408000 +0100
-+++ sc/util/vbaobj.map 2005-09-28 21:06:47.000000000 +0100
-@@ -0,0 +1,10 @@
-+OOO_1.1 {
-+ global:
-+ component_getDescriptionFunc;
-+ component_getImplementationEnvironment;
-+ component_getFactory;
-+ component_writeInfo;
-+
-+ local:
-+ *;
-+};
diff --git a/patches/vba/sc-source-ui-vba-vbaobj-xml.diff b/patches/vba/sc-source-ui-vba-vbaobj-xml.diff
deleted file mode 100644
index e4bf994bd..000000000
--- a/patches/vba/sc-source-ui-vba-vbaobj-xml.diff
+++ /dev/null
@@ -1,29 +0,0 @@
---- /dev/null 2005-10-10 09:55:51.712408000 +0100
-+++ sc/source/ui/vba/vbaobj.xml 2005-07-22 10:43:35.000000000 +0100
-@@ -0,0 +1,26 @@
-+<?xml version="1.0" encoding="UTF-8"?>
-+<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd">
-+<module-description xmlns:xlink="http://www.w3.org/1999/xlink">
-+
-+ <module-name>vbaobj</module-name>
-+
-+ <component-description>
-+ <author>Noel Power </author>
-+ <name>org.openoffice.vba.Globals</name>
-+ <description>vba object model component</description>
-+ <loader-name>com.sun.star.loader.SharedLibrary</loader-name>
-+ <language>c++</language>
-+ <status value="drafts"/>
-+ <supported-service>org.openoffice.vba.Globals</supported-service>
-+ <type>com.sun.star.uno.XComponentContext</type>
-+ </component-description>
-+
-+ <project-build-dependency>cppuhelper</project-build-dependency>
-+ <project-build-dependency>cppu</project-build-dependency>
-+ <project-build-dependency>sal</project-build-dependency>
-+
-+ <runtime-module-dependency>cppuhelper3$(COM)</runtime-module-dependency>
-+ <runtime-module-dependency>cppu3</runtime-module-dependency>
-+ <runtime-module-dependency>sal3</runtime-module-dependency>
-+
-+</module-description>
diff --git a/patches/vba/sc-source-ui-vba-vbaoutline-cxx.diff b/patches/vba/sc-source-ui-vba-vbaoutline-cxx.diff
deleted file mode 100644
index a9f1b1a5e..000000000
--- a/patches/vba/sc-source-ui-vba-vbaoutline-cxx.diff
+++ /dev/null
@@ -1,23 +0,0 @@
---- /dev/null 2005-11-06 11:49:58.372324250 +0000
-+++ sc/source/ui/vba/vbaoutline.cxx 2005-10-27 18:06:14.000000000 +0100
-@@ -0,0 +1,20 @@
-+#include "vbaoutline.hxx"
-+using namespace ::com::sun::star;
-+using namespace ::org::openoffice;
-+
-+void
-+ScVbaOutline::ShowLevels( const uno::Any& RowLevels, const uno::Any& ColumnLevels ) throw (uno::RuntimeException)
-+{
-+ sal_Int16 nLevel = 0;
-+ if (mxOutline.is())
-+ {
-+ if (RowLevels >>= nLevel)
-+ {
-+ mxOutline->showLevel(nLevel, table::TableOrientation_ROWS);
-+ }
-+ if (ColumnLevels >>= nLevel)
-+ {
-+ mxOutline->showLevel(nLevel,table::TableOrientation_COLUMNS);
-+ }
-+ }
-+}
diff --git a/patches/vba/sc-source-ui-vba-vbaoutline-hxx.diff b/patches/vba/sc-source-ui-vba-vbaoutline-hxx.diff
deleted file mode 100644
index 82987279f..000000000
--- a/patches/vba/sc-source-ui-vba-vbaoutline-hxx.diff
+++ /dev/null
@@ -1,27 +0,0 @@
---- /dev/null 2005-11-06 11:49:58.372324250 +0000
-+++ sc/source/ui/vba/vbaoutline.hxx 2005-10-27 18:06:14.000000000 +0100
-@@ -0,0 +1,24 @@
-+#ifndef SC_VBA_OUTLINE_HXX
-+#define SC_VBA_OUTLINE_HXX
-+
-+#include <com/sun/star/sheet/XSheetOutline.hpp>
-+#include <cppuhelper/implbase1.hxx>
-+#include <org/openoffice/vba/XOutline.hpp>
-+#include <com/sun/star/uno/XComponentContext.hpp>
-+#include "vbahelper.hxx"
-+
-+typedef ::cppu::WeakImplHelper1< oo::vba::XOutline > ScVbaOutline_BASE;
-+
-+class ScVbaOutline : public ScVbaOutline_BASE
-+{
-+ css::uno::Reference< css::sheet::XSheetOutline > mxOutline;
-+ css::uno::Reference< css::uno::XComponentContext > m_xContext;
-+public:
-+ ScVbaOutline( css::uno::Reference< css::uno::XComponentContext >& xContext,
-+ css::uno::Reference<css::sheet::XSheetOutline> outline):m_xContext(xContext),mxOutline(outline)
-+ {}
-+ virtual ~ScVbaOutline(){}
-+
-+ virtual void SAL_CALL ShowLevels( const css::uno::Any& RowLevels, const css::uno::Any& ColumnLevels ) throw (css::uno::RuntimeException) ;
-+};
-+#endif
diff --git a/patches/vba/sc-source-ui-vba-vbapivotcache-cxx.diff b/patches/vba/sc-source-ui-vba-vbapivotcache-cxx.diff
deleted file mode 100644
index 2666b3217..000000000
--- a/patches/vba/sc-source-ui-vba-vbapivotcache-cxx.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- /dev/null 2006-01-03 09:47:36.312320500 +0000
-+++ sc/source/ui/vba/vbapivotcache.cxx 2006-01-04 17:20:47.000000000 +0000
-@@ -0,0 +1,16 @@
-+#include "vbapivotcache.hxx"
-+
-+
-+using namespace ::com::sun::star;
-+using namespace ::org::openoffice;
-+
-+ScVbaPivotCache::ScVbaPivotCache( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< sheet::XDataPilotTable >& xTable ) : m_xContext( xContext ), m_xTable( xTable )
-+{
-+}
-+
-+void SAL_CALL
-+ScVbaPivotCache::Refresh() throw (css::uno::RuntimeException)
-+{
-+ m_xTable->refresh();
-+}
-+
diff --git a/patches/vba/sc-source-ui-vba-vbapivotcache-hxx.diff b/patches/vba/sc-source-ui-vba-vbapivotcache-hxx.diff
deleted file mode 100644
index 879b4ba24..000000000
--- a/patches/vba/sc-source-ui-vba-vbapivotcache-hxx.diff
+++ /dev/null
@@ -1,25 +0,0 @@
---- /dev/null 2006-01-03 09:47:36.312320500 +0000
-+++ sc/source/ui/vba/vbapivotcache.hxx 2006-01-04 17:20:16.000000000 +0000
-@@ -0,0 +1,22 @@
-+#ifndef SC_VBA_PIVOTCACHE_HXX
-+#define SC_VBA_PIVOTCACHE_HXX
-+#include <cppuhelper/implbase1.hxx>
-+#include <com/sun/star/uno/XComponentContext.hpp>
-+#include <com/sun/star/sheet/XDataPilotTable.hpp>
-+
-+#include <org/openoffice/vba/XPivotCache.hpp>
-+#include "vbahelper.hxx"
-+
-+typedef ::cppu::WeakImplHelper1<oo::vba::XPivotCache > PivotCacheImpl_BASE;
-+
-+class ScVbaPivotCache : public PivotCacheImpl_BASE
-+{
-+ css::uno::Reference< css::uno::XComponentContext > m_xContext;
-+ css::uno::Reference< css::sheet::XDataPilotTable > m_xTable;
-+
-+public:
-+ ScVbaPivotCache( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::sheet::XDataPilotTable >& xTable );
-+ virtual void SAL_CALL Refresh() throw (css::uno::RuntimeException);
-+};
-+
-+#endif //SC_VBA_PIVOTCACHE_HXX
diff --git a/patches/vba/sc-source-ui-vba-vbapivottable-cxx.diff b/patches/vba/sc-source-ui-vba-vbapivottable-cxx.diff
deleted file mode 100644
index c3b036fb8..000000000
--- a/patches/vba/sc-source-ui-vba-vbapivottable-cxx.diff
+++ /dev/null
@@ -1,19 +0,0 @@
---- /dev/null 2006-01-03 09:47:36.312320500 +0000
-+++ sc/source/ui/vba/vbapivottable.cxx 2006-01-04 17:20:18.000000000 +0000
-@@ -0,0 +1,16 @@
-+#include "vbapivottable.hxx"
-+#include "vbapivotcache.hxx"
-+
-+
-+using namespace ::com::sun::star;
-+using namespace ::org::openoffice;
-+
-+ScVbaPivotTable::ScVbaPivotTable( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< sheet::XDataPilotTable >& xTable ) : m_xContext( xContext ), m_xTable( xTable )
-+{
-+}
-+
-+uno::Reference< vba::XPivotCache >
-+ScVbaPivotTable::PivotCache() throw (uno::RuntimeException)
-+{
-+ return new ScVbaPivotCache( m_xContext, m_xTable );
-+}
diff --git a/patches/vba/sc-source-ui-vba-vbapivottable-hxx.diff b/patches/vba/sc-source-ui-vba-vbapivottable-hxx.diff
deleted file mode 100644
index 99ed51c37..000000000
--- a/patches/vba/sc-source-ui-vba-vbapivottable-hxx.diff
+++ /dev/null
@@ -1,23 +0,0 @@
---- /dev/null 2006-01-03 09:47:36.312320500 +0000
-+++ sc/source/ui/vba/vbapivottable.hxx 2006-01-04 17:15:17.000000000 +0000
-@@ -0,0 +1,20 @@
-+#ifndef SC_VBA_PIVOTTABLE_HXX
-+#define SC_VBA_PIVOTTABLE_HXX
-+#include <cppuhelper/implbase1.hxx>
-+#include <com/sun/star/uno/XComponentContext.hpp>
-+#include <com/sun/star/sheet/XDataPilotTable.hpp>
-+#include <org/openoffice/vba/XPivotTable.hpp>
-+#include "vbahelper.hxx"
-+
-+typedef ::cppu::WeakImplHelper1<oo::vba::XPivotTable > PivotTableImpl_BASE;
-+
-+class ScVbaPivotTable : public PivotTableImpl_BASE
-+{
-+ css::uno::Reference< css::sheet::XDataPilotTable > m_xTable;
-+ css::uno::Reference< css::uno::XComponentContext > m_xContext;
-+public:
-+ ScVbaPivotTable( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::sheet::XDataPilotTable >& xTable );
-+ virtual css::uno::Reference< oo::vba::XPivotCache > SAL_CALL PivotCache( ) throw (css::uno::RuntimeException);
-+};
-+
-+#endif //SC_VBA_PIVOTTABLE_HXX
diff --git a/patches/vba/sc-source-ui-vba-vbapivottables-cxx.diff b/patches/vba/sc-source-ui-vba-vbapivottables-cxx.diff
deleted file mode 100644
index 7f1808bcc..000000000
--- a/patches/vba/sc-source-ui-vba-vbapivottables-cxx.diff
+++ /dev/null
@@ -1,52 +0,0 @@
---- /dev/null 2006-01-03 09:47:36.312320500 +0000
-+++ sc/source/ui/vba/vbapivottables.cxx 2006-01-04 17:37:00.000000000 +0000
-@@ -0,0 +1,49 @@
-+#include "vbapivottables.hxx"
-+#include "vbapivottable.hxx"
-+#include <com/sun/star/sheet/XDataPilotTable.hpp>
-+#include <org/openoffice/vba/XPivotTable.hpp>
-+
-+
-+using namespace ::com::sun::star;
-+using namespace ::org::openoffice;
-+
-+uno::Any DataPilotToPivotTable( const uno::Any& aSource, uno::Reference< uno::XComponentContext > & xContext )
-+{
-+ uno::Reference< sheet::XDataPilotTable > xTable( aSource, uno::UNO_QUERY_THROW );
-+ return makeAny( uno::Reference< vba::XPivotTable > ( new ScVbaPivotTable( xContext, xTable ) ) );
-+}
-+
-+class PivotTableEnumeration : public EnumerationHelperImpl
-+{
-+public:
-+ PivotTableEnumeration( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XEnumeration >& xEnumeration ) throw ( uno::RuntimeException ) : EnumerationHelperImpl( xContext, xEnumeration ) {}
-+
-+ virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
-+ {
-+ return DataPilotToPivotTable( m_xEnumeration->nextElement(), m_xContext );
-+ }
-+
-+};
-+
-+ScVbaPivotTables::ScVbaPivotTables( const uno::Reference< uno::XComponentContext > & xContext, const uno::Reference< container::XIndexAccess >& xIndexAccess ): ScVbaPivotTables_BASE( xContext, xIndexAccess )
-+{
-+}
-+
-+uno::Reference< container::XEnumeration >
-+ScVbaPivotTables::createEnumeration() throw (uno::RuntimeException)
-+{
-+ uno::Reference< container::XEnumerationAccess > xEnumAccess( m_xIndexAccess, uno::UNO_QUERY_THROW );
-+ return new PivotTableEnumeration( m_xContext, xEnumAccess->createEnumeration() );
-+}
-+
-+uno::Any
-+ScVbaPivotTables::createCollectionObject( const css::uno::Any& aSource )
-+{
-+ return DataPilotToPivotTable( aSource, m_xContext );
-+}
-+
-+uno::Type
-+ScVbaPivotTables::getElementType() throw (uno::RuntimeException)
-+{
-+ return vba::XPivotTables::static_type(0);
-+}
diff --git a/patches/vba/sc-source-ui-vba-vbapivottables-hxx.diff b/patches/vba/sc-source-ui-vba-vbapivottables-hxx.diff
deleted file mode 100644
index a377434e8..000000000
--- a/patches/vba/sc-source-ui-vba-vbapivottables-hxx.diff
+++ /dev/null
@@ -1,38 +0,0 @@
---- /dev/null 2006-01-03 09:47:36.312320500 +0000
-+++ sc/source/ui/vba/vbapivottables.hxx 2006-01-04 17:26:17.000000000 +0000
-@@ -0,0 +1,35 @@
-+#ifndef SC_VBA_PIVOTTABLES_HXX
-+#define SC_VBA_PIVOTTABLES_HXX
-+
-+#include <cppuhelper/implbase1.hxx>
-+
-+#include <org/openoffice/vba/XPivotTables.hpp>
-+#include <com/sun/star/container/XEnumerationAccess.hpp>
-+#include <com/sun/star/uno/XComponentContext.hpp>
-+
-+#include "vbahelper.hxx"
-+#include "vbacollectionimpl.hxx"
-+
-+
-+typedef ::cppu::ImplInheritanceHelper1< ScVbaCollectionBaseImpl, oo::vba::XPivotTables > ScVbaPivotTables_BASE;
-+
-+class ScVbaPivotTables : public ScVbaPivotTables_BASE
-+{
-+protected:
-+public:
-+ ScVbaPivotTables( const css::uno::Reference< css::uno::XComponentContext > & xContext, const css::uno::Reference< css::container::XIndexAccess >& xIndexAccess );
-+ virtual ~ScVbaPivotTables() {}
-+
-+ // XEnumerationAccess
-+ virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException);
-+
-+
-+ // XPivotTables
-+
-+ // ScVbaCollectionBaseImpl
-+ virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource );
-+
-+};
-+
-+#endif //SC_VBA_PIVOTTABLES
diff --git a/patches/vba/sc-source-ui-vba-vbarange-cxx.diff b/patches/vba/sc-source-ui-vba-vbarange-cxx.diff
deleted file mode 100644
index 40deccdc1..000000000
--- a/patches/vba/sc-source-ui-vba-vbarange-cxx.diff
+++ /dev/null
@@ -1,1033 +0,0 @@
-*** /dev/null 2005-12-16 09:19:58.720346000 +0000
---- sc/source/ui/vba/vbarange.cxx 2005-12-22 15:27:48.000000000 +0000
-***************
-*** 0 ****
---- 1,1028 ----
-+ #include <comphelper/processfactory.hxx>
-+ #include <sfx2/objsh.hxx>
-+
-+ #include <com/sun/star/sheet/XSheetOperation.hpp>
-+ #include <com/sun/star/sheet/CellFlags.hpp>
-+ #include <com/sun/star/table/XColumnRowRange.hpp>
-+ #include <com/sun/star/sheet/XCellAddressable.hpp>
-+ #include <com/sun/star/table/CellContentType.hpp>
-+ #include <com/sun/star/sheet/XCellSeries.hpp>
-+ #include <com/sun/star/text/XTextRange.hpp>
-+ #include <com/sun/star/sheet/XCellRangeAddressable.hpp>
-+ #include <com/sun/star/table/CellRangeAddress.hpp>
-+ #include <com/sun/star/sheet/XSheetCellRange.hpp>
-+ #include <com/sun/star/sheet/XSpreadsheet.hpp>
-+ #include <com/sun/star/sheet/XSheetCellCursor.hpp>
-+ #include <com/sun/star/sheet/XArrayFormulaRange.hpp>
-+ #include <com/sun/star/beans/XPropertySet.hpp>
-+ #include <com/sun/star/sheet/XFunctionAccess.hpp>
-+ #include <com/sun/star/frame/XModel.hpp>
-+ #include <com/sun/star/view/XSelectionSupplier.hpp>
-+ #include <com/sun/star/table/XCellCursor.hpp>
-+ #include <com/sun/star/table/XTableRows.hpp>
-+ #include <com/sun/star/table/XTableColumns.hpp>
-+ #include <com/sun/star/util/XMergeable.hpp>
-+ #include <com/sun/star/uno/XComponentContext.hpp>
-+ #include <com/sun/star/lang/XMultiComponentFactory.hpp>
-+ #include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
-+ #include <com/sun/star/util/XNumberFormatsSupplier.hpp>
-+ #include <com/sun/star/util/XNumberFormats.hpp>
-+ #include <com/sun/star/util/XNumberFormatTypes.hpp>
-+ #include <com/sun/star/sheet/XCellRangeMovement.hpp>
-+ #include <com/sun/star/sheet/XCellRangeData.hpp>
-+
-+ #include <org/openoffice/vba/xlPasteSpecialOperation.hpp>
-+ #include <org/openoffice/vba/xlPasteType.hpp>
-+ #include <org/openoffice/vba/Excel/Constants.hpp>
-+ #include <org/openoffice/vba/Excel/XlFindLookIn.hpp>
-+
-+ #include "vbarange.hxx"
-+ #include "vbafont.hxx"
-+ #include "vbainterior.hxx"
-+ #include "vbaarraywrapper.hxx"
-+
-+ #include <comphelper/anytostring.hxx>
-+
-+ #include "global.hxx"
-+
-+ using namespace ::org::openoffice;
-+ using namespace ::com::sun::star;
-+
-+ const sal_Int32 RANGE_PROPERTY_ID_DFLT=1;
-+ // name is not defineable in IDL so no chance of a false detection of the
-+ // another property/method of the same name
-+ const ::rtl::OUString RANGE_PROPERTY_DFLT( RTL_CONSTASCII_USTRINGPARAM( "_$DefaultProp" ) );
-+ const ::rtl::OUString ISVISIBLE( RTL_CONSTASCII_USTRINGPARAM( "IsVisible"));
-+
-+ class CellValueSetter : public ArrayVisitor
-+ {
-+ protected:
-+ uno::Any maValue;
-+ uno::TypeClass mTypeClass;
-+ bool processValue( const uno::Any& aValue, const uno::Reference< table::XCell >& xCell );
-+ public:
-+ CellValueSetter( const uno::Any& aValue );
-+ virtual void visitNode( sal_Int32 x, sal_Int32 y, const uno::Reference< table::XCell >& xCell );
-+
-+ };
-+
-+ CellValueSetter::CellValueSetter( const uno::Any& aValue ): maValue( aValue ), mTypeClass( aValue.getValueTypeClass() ) {}
-+
-+ void
-+ CellValueSetter::visitNode( sal_Int32 i, sal_Int32 j, const uno::Reference< table::XCell >& xCell )
-+ {
-+ bool result = processValue( maValue, xCell );
-+ }
-+
-+ bool
-+ CellValueSetter::processValue( const uno::Any& aValue, const uno::Reference< table::XCell >& xCell )
-+ {
-+ bool isExtracted = false;
-+ switch ( mTypeClass )
-+ {
-+ case uno::TypeClass_BOOLEAN:
-+ {
-+ static ::rtl::OUString sTrue( RTL_CONSTASCII_USTRINGPARAM("=TRUE()"));
-+ static ::rtl::OUString sFalse( RTL_CONSTASCII_USTRINGPARAM("=FALSE()"));
-+ sal_Bool bState;
-+ if ( aValue >>= bState )
-+ {
-+ if ( bState )
-+ xCell->setFormula( sTrue );
-+ else
-+ xCell->setFormula( sFalse );
-+ }
-+ else
-+ isExtracted = false;
-+ break;
-+ }
-+ case uno::TypeClass_STRING:
-+ {
-+ rtl::OUString aString;
-+ if ( aValue >>= aString )
-+ {
-+ uno::Reference< text::XTextRange > xTextRange( xCell, uno::UNO_QUERY_THROW );
-+ xTextRange->setString( aString );
-+ }
-+ else
-+ isExtracted = false;
-+ break;
-+ }
-+ default:
-+ {
-+ double nDouble;
-+ if ( aValue >>= nDouble )
-+ xCell->setValue( nDouble );
-+ else
-+ isExtracted = false;
-+ break;
-+ }
-+ }
-+ return isExtracted;
-+
-+ }
-+
-+ class CellValueGetter : public ArrayVisitor
-+ {
-+ protected:
-+ uno::Any maValue;
-+ uno::TypeClass mTypeClass;
-+ virtual void processValue( sal_Int32 x, sal_Int32 y, const uno::Any& aValue );
-+ public:
-+ CellValueGetter() {}
-+ virtual void visitNode( sal_Int32 x, sal_Int32 y, const uno::Reference< table::XCell >& xCell );
-+ const uno::Any& getValue() const { return maValue; }
-+
-+ };
-+
-+ void
-+ CellValueGetter::processValue( sal_Int32 x, sal_Int32 y, const uno::Any& aValue )
-+ {
-+ maValue = aValue;
-+ }
-+ void CellValueGetter::visitNode( sal_Int32 x, sal_Int32 y, const uno::Reference< table::XCell >& xCell )
-+ {
-+ uno::Any aValue;
-+ table::CellContentType eType = xCell->getType();
-+ if( eType == table::CellContentType_VALUE || eType == table::CellContentType_FORMULA )
-+ {
-+ if ( eType == table::CellContentType_FORMULA )
-+ {
-+ rtl::OUString sFormula = xCell->getFormula();
-+ if ( sFormula.equals( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("=TRUE()") ) ) )
-+ aValue <<= sal_True;
-+ else if ( sFormula.equals( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("=FALSE()") ) ) )
-+ aValue <<= sal_False;
-+
-+ }
-+ aValue <<= xCell->getValue();
-+ }
-+ if( eType == table::CellContentType_TEXT )
-+ {
-+ uno::Reference< text::XTextRange > xTextRange(xCell, ::uno::UNO_QUERY_THROW);
-+ aValue <<= xTextRange->getString();
-+ }
-+ processValue( x,y,aValue );
-+ }
-+
-+ class ArrayValueGetter : public CellValueGetter
-+ {
-+ protected:
-+ virtual void processValue( sal_Int32 x, sal_Int32 y, const uno::Any& aValue )
-+ {
-+ uno::Sequence< uno::Sequence< uno::Any > >& aMatrix = *( uno::Sequence< uno::Sequence< uno::Any > >* )( maValue.getValue() );
-+ aMatrix[x][y] = aValue;
-+ }
-+
-+ public:
-+ ArrayValueGetter(sal_Int32 nRowCount, sal_Int32 nColCount ):CellValueGetter()
-+ {
-+ uno::Sequence< uno::Sequence< uno::Any > > aMatrix;
-+ aMatrix.realloc( nRowCount );
-+ for ( sal_Int32 index = 0; index < nRowCount; ++index )
-+ aMatrix[index].realloc( nColCount );
-+ maValue <<= aMatrix;
-+ }
-+ };
-+
-+ class ArrayValueSetter : public CellValueSetter
-+ {
-+ uno::Sequence< uno::Sequence< uno::Any > > aMatrix;
-+ public:
-+ ArrayValueSetter( const uno::Any& aValue ) : CellValueSetter( aValue )
-+ {
-+ aValue >>= aMatrix;
-+ }
-+ virtual void visitNode( sal_Int32 x, sal_Int32 y, const uno::Reference< table::XCell >& xCell )
-+ {
-+ processValue( aMatrix[ x ][ y ], xCell );
-+ }
-+ };
-+
-+ class RangeHelper
-+ {
-+ uno::Reference< table::XCellRange > m_xCellRange;
-+
-+ public:
-+ RangeHelper( const uno::Reference< table::XCellRange >& xCellRange ) throw (uno::RuntimeException) : m_xCellRange( xCellRange )
-+ {
-+ if ( !m_xCellRange.is() )
-+ throw uno::RuntimeException();
-+ }
-+ RangeHelper( const uno::Any aCellRange ) throw (uno::RuntimeException)
-+ {
-+ m_xCellRange.set( aCellRange, uno::UNO_QUERY_THROW );
-+ }
-+ uno::Reference< sheet::XSheetCellRange > getSheetCellRange() throw (uno::RuntimeException)
-+ {
-+ return uno::Reference< sheet::XSheetCellRange >(m_xCellRange, uno::UNO_QUERY_THROW);
-+ }
-+ uno::Reference< sheet::XSpreadsheet > getSpreadSheet() throw (uno::RuntimeException)
-+ {
-+ return getSheetCellRange()->getSpreadsheet();
-+ }
-+
-+ uno::Reference< table::XCellRange > getCellRangeFromSheet() throw (uno::RuntimeException)
-+ {
-+ return uno::Reference< table::XCellRange >(getSpreadSheet(), uno::UNO_QUERY_THROW );
-+ }
-+
-+ uno::Reference< sheet::XCellRangeAddressable > getCellRangeAddressable() throw (uno::RuntimeException)
-+ {
-+ return uno::Reference< sheet::XCellRangeAddressable >(m_xCellRange, ::uno::UNO_QUERY_THROW);
-+
-+ }
-+
-+ uno::Reference< sheet::XSheetCellCursor > getSheetCellCursor() throw ( uno::RuntimeException )
-+ {
-+ return uno::Reference< sheet::XSheetCellCursor >( getSpreadSheet()->createCursorByRange( getSheetCellRange() ), uno::UNO_QUERY_THROW );
-+ }
-+
-+ static uno::Reference< vba::XRange > createRangeFromRange( const uno::Reference<uno::XComponentContext >& xContext, const uno::Reference< table::XCellRange >& xRange, const uno::Reference< sheet::XCellRangeAddressable >& xCellRangeAddressable, sal_Int32 nStartColOffset = 0, sal_Int32 nStartRowOffset = 0,
-+ sal_Int32 nEndColOffset = 0, sal_Int32 nEndRowOffset = 0 )
-+ {
-+ return uno::Reference< vba::XRange >( new ScVbaRange( xContext,
-+ xRange->getCellRangeByPosition(
-+ xCellRangeAddressable->getRangeAddress().StartColumn + nStartColOffset,
-+ xCellRangeAddressable->getRangeAddress().StartRow + nStartRowOffset,
-+ xCellRangeAddressable->getRangeAddress().EndColumn + nEndColOffset,
-+ xCellRangeAddressable->getRangeAddress().EndRow + nEndRowOffset ) ) );
-+ }
-+
-+ };
-+
-+ ScVbaRange::ScVbaRange( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< table::XCellRange >& xRange, sal_Bool bIsRows, sal_Bool bIsColumns ) throw( lang::IllegalArgumentException )
-+ :OPropertyContainer(GetBroadcastHelper())
-+ ,mxRange( xRange ),
-+ m_xContext(xContext),
-+ mbIsRows( bIsRows ),
-+ mbIsColumns( bIsColumns )
-+ {
-+ if ( !xContext.is() )
-+ throw lang::IllegalArgumentException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "context is not set " ) ), uno::Reference< uno::XInterface >() , 1 );
-+ if ( !xRange.is() )
-+ throw lang::IllegalArgumentException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "range is not set " ) ), uno::Reference< uno::XInterface >() , 1 );
-+ msDftPropName = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Value" ) );
-+ registerProperty( RANGE_PROPERTY_DFLT, RANGE_PROPERTY_ID_DFLT,
-+ beans::PropertyAttribute::TRANSIENT | beans::PropertyAttribute::BOUND, &msDftPropName, ::getCppuType( &msDftPropName ) );
-+
-+ }
-+
-+ uno::Reference< script::XTypeConverter >
-+ ScVbaRange::getTypeConverter() throw (uno::RuntimeException)
-+ {
-+ static uno::Reference< script::XTypeConverter > xTypeConv( m_xContext->getServiceManager()->createInstanceWithContext( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.script.Converter") ), m_xContext ), uno::UNO_QUERY_THROW );
-+ return xTypeConv;
-+ }
-+
-+ void
-+ ScVbaRange::visitArray( ArrayVisitor& visitor )
-+ {
-+ uno::Reference< table::XColumnRowRange > xColumnRowRange(mxRange, uno::UNO_QUERY_THROW );
-+ sal_Int32 nRowCount = xColumnRowRange->getRows()->getCount();
-+ sal_Int32 nColCount = xColumnRowRange->getColumns()->getCount();
-+ for ( sal_Int32 i=0; i<nRowCount; ++i )
-+ {
-+ for ( sal_Int32 j=0; j<nColCount; ++j )
-+ {
-+ uno::Reference< table::XCell > xCell( mxRange->getCellByPosition( j, i ), uno::UNO_QUERY_THROW );
-+
-+ visitor.visitNode( i, j, xCell );
-+ }
-+ }
-+ }
-+
-+
-+
-+
-+ uno::Any SAL_CALL
-+ ScVbaRange::getValue() throw (uno::RuntimeException)
-+ {
-+ uno::Reference< table::XColumnRowRange > xColumnRowRange(mxRange, uno::UNO_QUERY_THROW );
-+ sal_Int32 nRowCount = xColumnRowRange->getRows()->getCount();
-+ sal_Int32 nColCount = xColumnRowRange->getColumns()->getCount();
-+ // single cell range
-+ if ( nRowCount == 1 && nColCount == 1 )
-+ {
-+ CellValueGetter getter;
-+ visitArray( getter );
-+ return getter.getValue();
-+ }
-+ // multi cell range ( return array )
-+ ArrayValueGetter getter( nRowCount, nColCount );
-+ visitArray( getter );
-+ return makeAny( uno::Reference< vba::XArrayWrapper >( new ScArrayWrapper( getter.getValue(), sal_False ) ) );
-+
-+ }
-+
-+ void SAL_CALL
-+ ScVbaRange::setValue( const uno::Any &aValue ) throw (uno::RuntimeException)
-+ {
-+ uno::TypeClass aClass = aValue.getValueTypeClass();
-+ if ( aClass == uno::TypeClass_SEQUENCE )
-+ {
-+ uno::Reference< script::XTypeConverter > xConverter = getTypeConverter();
-+ uno::Any aConverted;
-+ try
-+ {
-+ aConverted = xConverter->convertTo( aValue, getCppuType((uno::Sequence< uno::Sequence< uno::Any > >*)0) );
-+ uno::Sequence< uno::Sequence< uno::Any > > aMatrix;
-+ if ( aConverted >>= aMatrix )
-+ {
-+ ArrayValueSetter setter( aConverted );
-+ visitArray( setter );
-+ }
-+ }
-+ catch ( uno::Exception& e )
-+ {
-+ OSL_TRACE("Bahhh, caught exception %s",
-+ rtl::OUStringToOString( e.Message,
-+ RTL_TEXTENCODING_UTF8 ).getStr() );
-+ }
-+ }
-+ else
-+ {
-+ CellValueSetter setter( aValue );
-+ visitArray( setter );
-+ }
-+ }
-+
-+ void
-+ ScVbaRange::Clear() throw (uno::RuntimeException)
-+ {
-+ uno::Reference< sheet::XSheetOperation > xSheetOperation(mxRange, uno::UNO_QUERY_THROW);
-+ xSheetOperation->clearContents(sheet::CellFlags::VALUE | sheet::CellFlags::STRING |
-+ sheet::CellFlags::HARDATTR | sheet::CellFlags::FORMATTED | sheet::CellFlags::EDITATTR);
-+ }
-+
-+ void
-+ ScVbaRange::ClearComments() throw (uno::RuntimeException)
-+ {
-+ uno::Reference< sheet::XSheetOperation > xSheetOperation(mxRange, uno::UNO_QUERY_THROW);
-+ //FIXME: STRING is not the correct type; May require special handling; clearNotes?
-+ xSheetOperation->clearContents(sheet::CellFlags::STRING);
-+ }
-+
-+ void
-+ ScVbaRange::ClearContents() throw (uno::RuntimeException)
-+ {
-+ uno::Reference< sheet::XSheetOperation > xSheetOperation(mxRange, uno::UNO_QUERY_THROW);
-+ xSheetOperation->clearContents(sheet::CellFlags::VALUE | sheet::CellFlags::STRING );
-+ }
-+
-+ void
-+ ScVbaRange::ClearFormats() throw (uno::RuntimeException)
-+ {
-+ uno::Reference< sheet::XSheetOperation > xSheetOperation(mxRange, uno::UNO_QUERY_THROW);
-+ //FIXME: need to check if we need to combine sheet::CellFlags::FORMATTED
-+ xSheetOperation->clearContents(sheet::CellFlags::HARDATTR | sheet::CellFlags::FORMATTED | sheet::CellFlags::EDITATTR);
-+ }
-+
-+ ::rtl::OUString
-+ ScVbaRange::getFormula() throw (::com::sun::star::uno::RuntimeException)
-+ {
-+ uno::Reference< table::XCell > xCell( mxRange->getCellByPosition( 0, 0 ), uno::UNO_QUERY_THROW );
-+ return xCell->getFormula();
-+ }
-+
-+ void
-+ ScVbaRange::setFormula(const ::rtl::OUString &rFormula ) throw (uno::RuntimeException)
-+ {
-+ setValue( uno::makeAny( rFormula ) );
-+ }
-+
-+ double
-+ ScVbaRange::getCount() throw (uno::RuntimeException)
-+ {
-+ double rowCount, colCount;
-+ uno::Reference< table::XColumnRowRange > xColumnRowRange(mxRange, uno::UNO_QUERY_THROW );
-+ rowCount = xColumnRowRange->getRows()->getCount();
-+ colCount = xColumnRowRange->getColumns()->getCount();
-+ if( IsRows() )
-+ return rowCount;
-+ if( IsColumns() )
-+ return colCount;
-+ return rowCount * colCount;
-+ }
-+
-+ sal_Int32
-+ ScVbaRange::getRow() throw (uno::RuntimeException)
-+ {
-+ uno::Reference< sheet::XCellAddressable > xCellAddressable(mxRange->getCellByPosition(0, 0), uno::UNO_QUERY_THROW );
-+ return xCellAddressable->getCellAddress().Row + 1; // Zero value indexing
-+ }
-+
-+ sal_Int32
-+ ScVbaRange::getColumn() throw (uno::RuntimeException)
-+ {
-+ uno::Reference< sheet::XCellAddressable > xCellAddressable(mxRange->getCellByPosition(0, 0), uno::UNO_QUERY_THROW );
-+ return xCellAddressable->getCellAddress().Column + 1; // Zero value indexing
-+ }
-+
-+ sal_Bool
-+ ScVbaRange::HasFormula() throw (uno::RuntimeException)
-+ {
-+ uno::Reference< table::XCell > xCell( mxRange->getCellByPosition(0, 0), uno::UNO_QUERY_THROW );
-+ return( xCell->getType() == table::CellContentType_FORMULA );
-+ }
-+ void
-+ ScVbaRange::fillSeries( sheet::FillDirection nFillDirection, sheet::FillMode nFillMode, sheet::FillDateMode nFillDateMode, double fStep, double fEndValue ) throw( uno::RuntimeException )
-+ {
-+ uno::Reference< sheet::XCellSeries > xCellSeries(mxRange, uno::UNO_QUERY_THROW );
-+ }
-+
-+ void
-+ ScVbaRange::FillLeft() throw (uno::RuntimeException)
-+ {
-+ fillSeries(sheet::FillDirection_TO_LEFT,
-+ sheet::FillMode_LINEAR, sheet::FillDateMode_FILL_DATE_DAY, 0, 0x7FFFFFFF);
-+ }
-+
-+ void
-+ ScVbaRange::FillRight() throw (uno::RuntimeException)
-+ {
-+ fillSeries(sheet::FillDirection_TO_RIGHT,
-+ sheet::FillMode_LINEAR, sheet::FillDateMode_FILL_DATE_DAY, 0, 0x7FFFFFFF);
-+ }
-+
-+ void
-+ ScVbaRange::FillUp() throw (uno::RuntimeException)
-+ {
-+ fillSeries(sheet::FillDirection_TO_TOP,
-+ sheet::FillMode_LINEAR, sheet::FillDateMode_FILL_DATE_DAY, 0, 0x7FFFFFFF);
-+ }
-+
-+ void
-+ ScVbaRange::FillDown() throw (uno::RuntimeException)
-+ {
-+ fillSeries(sheet::FillDirection_TO_BOTTOM,
-+ sheet::FillMode_LINEAR, sheet::FillDateMode_FILL_DATE_DAY, 0, 0x7FFFFFFF);
-+ }
-+
-+ ::rtl::OUString
-+ ScVbaRange::getText() throw (uno::RuntimeException)
-+ {
-+ uno::Reference< text::XTextRange > xTextRange(mxRange, uno::UNO_QUERY_THROW );
-+ return xTextRange->getString();
-+ }
-+
-+ void
-+ ScVbaRange::setText( const ::rtl::OUString &rString ) throw (uno::RuntimeException)
-+ {
-+ uno::Reference< text::XTextRange > xTextRange(mxRange, uno::UNO_QUERY_THROW );
-+ xTextRange->setString( rString );
-+ }
-+
-+ uno::Reference< vba::XRange >
-+ ScVbaRange::Offset( const ::uno::Any &nRowOff, const uno::Any &nColOff ) throw (uno::RuntimeException)
-+ {
-+ sal_Int32 nRowOffset = 0, nColOffset = 0;
-+ sal_Bool bIsRowOffset = ( nRowOff >>= nRowOffset );
-+ sal_Bool bIsColumnOffset = ( nColOff >>= nColOffset );
-+
-+ RangeHelper helper( mxRange );
-+
-+ return RangeHelper::createRangeFromRange( m_xContext, helper.getCellRangeFromSheet(), helper.getCellRangeAddressable(), nColOffset, nRowOffset, nColOffset, nRowOffset );
-+ }
-+
-+ uno::Reference< vba::XRange >
-+ ScVbaRange::CurrentRegion() throw (uno::RuntimeException)
-+ {
-+ RangeHelper helper( mxRange );
-+ uno::Reference< sheet::XSheetCellCursor > xSheetCellCursor =
-+ helper.getSheetCellCursor();
-+ xSheetCellCursor->collapseToCurrentRegion();
-+ uno::Reference< sheet::XCellRangeAddressable > xCellRangeAddressable(xSheetCellCursor, uno::UNO_QUERY_THROW);
-+ return RangeHelper::createRangeFromRange( m_xContext, helper.getCellRangeFromSheet(), xCellRangeAddressable );
-+ }
-+
-+ uno::Reference< vba::XRange >
-+ ScVbaRange::CurrentArray() throw (uno::RuntimeException)
-+ {
-+ RangeHelper helper( mxRange );
-+ uno::Reference< sheet::XSheetCellCursor > xSheetCellCursor =
-+ helper.getSheetCellCursor();
-+ xSheetCellCursor->collapseToCurrentArray();
-+ uno::Reference< sheet::XCellRangeAddressable > xCellRangeAddressable(xSheetCellCursor, uno::UNO_QUERY_THROW);
-+ return RangeHelper::createRangeFromRange( m_xContext, helper.getCellRangeFromSheet(), xCellRangeAddressable );
-+ }
-+
-+ ::rtl::OUString
-+ ScVbaRange::getFormulaArray() throw (uno::RuntimeException)
-+ {
-+ uno::Reference< sheet::XArrayFormulaRange > xArrayFormulaRange(mxRange, ::uno::UNO_QUERY_THROW );
-+ return xArrayFormulaRange->getArrayFormula();
-+ }
-+
-+ void
-+ ScVbaRange::setFormulaArray(const ::rtl::OUString &rFormula) throw (uno::RuntimeException)
-+ {
-+ uno::Reference< sheet::XArrayFormulaRange > xArrayFormulaRange(mxRange, ::uno::UNO_QUERY_THROW );
-+ xArrayFormulaRange->setArrayFormula( rFormula );
-+ }
-+
-+ ::rtl::OUString
-+ ScVbaRange::Characters(const uno::Any& Start, const uno::Any& Length) throw (uno::RuntimeException)
-+ {
-+ long nIndex, nCount;
-+ ::rtl::OUString rString;
-+ uno::Reference< text::XTextRange > xTextRange(mxRange, ::uno::UNO_QUERY_THROW );
-+ rString = xTextRange->getString();
-+ if( !( Start >>= nIndex ) && !( Length >>= nCount ) )
-+ return rString;
-+ if(!( Start >>= nIndex ) )
-+ nIndex = 1;
-+ if(!( Length >>= nCount ) )
-+ nIndex = rString.getLength();
-+ return rString.copy( --nIndex, nCount ); // Zero value indexing
-+ }
-+
-+ ::rtl::OUString
-+ ScVbaRange::Address() throw (uno::RuntimeException)
-+ {
-+ ::rtl::OUString aStart, aEnd;
-+ uno::Sequence< uno::Any > aAddrArray1, aAddrArray2;
-+
-+ uno::Reference< lang::XMultiComponentFactory > xSMgr( m_xContext->getServiceManager(), uno::UNO_QUERY_THROW );
-+
-+ uno::Reference< sheet::XFunctionAccess > xFunctionAccess(
-+ xSMgr->createInstanceWithContext(::rtl::OUString::createFromAscii(
-+ "com.sun.star.sheet.FunctionAccess"), m_xContext),
-+ ::uno::UNO_QUERY_THROW );
-+ uno::Reference< sheet::XCellRangeAddressable > xCellRangeAddressable( mxRange, ::uno::UNO_QUERY_THROW );
-+ if( aAddrArray1.getLength() == 0 )
-+ {
-+ aAddrArray1.realloc(2);
-+ uno::Any* aArray = aAddrArray1.getArray();
-+ aArray[0] = ( uno::Any )( xCellRangeAddressable->getRangeAddress().StartRow + 1 );
-+ aArray[1] = ( uno::Any )( xCellRangeAddressable->getRangeAddress().StartColumn + 1 );
-+ }
-+ uno::Any aString1 = xFunctionAccess->callFunction(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ADDRESS")), aAddrArray1);
-+ aString1 >>= aStart;
-+
-+ if( xCellRangeAddressable->getRangeAddress().StartColumn == xCellRangeAddressable->getRangeAddress().EndColumn &&
-+ xCellRangeAddressable->getRangeAddress().StartRow == xCellRangeAddressable->getRangeAddress().EndRow )
-+ return aStart;
-+
-+ String aString(aStart);
-+ aStart = rtl::OUString(aString.Append((sal_Unicode)':'));
-+ if( aAddrArray2.getLength() == 0 )
-+ {
-+ aAddrArray2.realloc(2);
-+ uno::Any* aArray = aAddrArray2.getArray();
-+ aArray[0] = ( uno::Any )( xCellRangeAddressable->getRangeAddress().EndRow + 1 );
-+ aArray[1] = ( uno::Any )( xCellRangeAddressable->getRangeAddress().EndColumn + 1 );
-+ }
-+ uno::Any aString2 = xFunctionAccess->callFunction(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ADDRESS")), aAddrArray2);
-+ aString2 >>= aEnd;
-+ return aStart.concat( aEnd );
-+ }
-+
-+ uno::Reference < vba::XFont >
-+ ScVbaRange::Font() throw (uno::RuntimeException)
-+ {
-+ uno::Reference< beans::XPropertySet > xProps(mxRange, ::uno::UNO_QUERY );
-+ return uno::Reference< vba::XFont >( new ScVbaFont( xProps ) );
-+ }
-+
-+ uno::Reference< vba::XRange >
-+ ScVbaRange::Cells( const uno::Any &nRowIndex, const uno::Any &nColumnIndex ) throw(uno::RuntimeException)
-+ {
-+ long nRow = 0, nColumn = 0;
-+ sal_Bool bIsIndex = nRowIndex >>= nRow, bIsColumnIndex = nColumnIndex >>= nColumn;
-+
-+ uno::Reference< sheet::XSheetCellRange > xSheetCellRange(mxRange, ::uno::UNO_QUERY_THROW );
-+ uno::Reference< sheet::XSpreadsheet > xSheet = xSheetCellRange->getSpreadsheet();
-+ uno::Reference< table::XCellRange > xRange(xSheet, uno::UNO_QUERY_THROW );
-+ uno::Reference< sheet::XCellRangeAddressable > xAddressable( xRange, uno::UNO_QUERY_THROW );
-+ uno::Reference< table::XCellRange > xRangeReference = xRange->getCellRangeByPosition(
-+ getColumn()-1, getRow()-1,
-+ xAddressable->getRangeAddress().EndColumn,
-+ xAddressable->getRangeAddress().EndRow );
-+ if( !bIsIndex && !bIsColumnIndex ) // .Cells
-+ return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, mxRange ) );
-+ if( !nRow )
-+ throw uno::RuntimeException(
-+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ": Invalid RowIndex ") ),
-+ uno::Reference< XInterface >() );
-+ if( bIsIndex && !bIsColumnIndex ) // .Cells(n)
-+ {
-+ int nIndex = --nRow;
-+ uno::Reference< table::XColumnRowRange > xColumnRowRange(mxRange, ::uno::UNO_QUERY_THROW);
-+ int nColCount = xColumnRowRange->getColumns()->getCount();
-+ nRow = nIndex / nColCount;
-+ nColumn = nIndex % nColCount;
-+ return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, xRangeReference->getCellRangeByPosition(
-+ nColumn, nRow, nColumn, nRow ) ) );
-+ }
-+ if( !nColumn )
-+ throw uno::RuntimeException(
-+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ": Invalid ColumnIndex" ) ),
-+ uno::Reference< XInterface >() );
-+ --nRow, --nColumn;
-+ return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, xRangeReference->getCellRangeByPosition( nColumn, nRow, nColumn, nRow ) ) );
-+ }
-+
-+ void
-+ ScVbaRange::Select() throw (uno::RuntimeException)
-+ {
-+ uno::Reference< frame::XModel > xModel( getCurrentDocument(), uno::UNO_QUERY_THROW );
-+ uno::Reference< view::XSelectionSupplier > xSelection( xModel->getCurrentController(), uno::UNO_QUERY_THROW );
-+ xSelection->select( ( uno::Any )mxRange );
-+ }
-+
-+ uno::Reference< vba::XRange >
-+ ScVbaRange::Rows(const uno::Any& aIndex ) throw (uno::RuntimeException)
-+ {
-+ sal_Int32 nValue;
-+ if( !aIndex.hasValue() )
-+ return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, mxRange, true ) );
-+ if( aIndex >>= nValue )
-+ {
-+ uno::Reference< sheet::XCellRangeAddressable > xAddressable( mxRange, uno::UNO_QUERY );
-+ --nValue;
-+ return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, mxRange->getCellRangeByPosition(
-+ xAddressable->getRangeAddress().StartColumn, nValue,
-+ xAddressable->getRangeAddress().EndColumn, nValue ), true ) );
-+ }
-+ // Questionable return, I'm just copying the invalid Any::value path
-+ // above. Would seem to me that this is an internal error and
-+ // warrants an exception thrown
-+ return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, mxRange, true ) );
-+ }
-+
-+ uno::Reference< vba::XRange >
-+ ScVbaRange::Columns( const uno::Any& aIndex ) throw (uno::RuntimeException)
-+ {
-+ sal_Int32 nValue;
-+ if( !aIndex.hasValue() )
-+ return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, mxRange, false, true ) );
-+ if( aIndex >>= nValue )
-+ {
-+ uno::Reference< sheet::XCellRangeAddressable > xAddressable( mxRange, uno::UNO_QUERY_THROW );
-+ --nValue;
-+ return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, mxRange->getCellRangeByPosition(
-+ nValue, xAddressable->getRangeAddress().StartRow,
-+ nValue, xAddressable->getRangeAddress().EndRow ), false, true ) );
-+ }
-+ // Questionable return, I'm just copying the invalid Any::value path
-+ // above. Would seem to me that this is an internal error and
-+ // warrants an exception thrown
-+ return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, mxRange, false, true ) );
-+ }
-+
-+ void
-+ ScVbaRange::setMergeCells( sal_Bool bIsMerged ) throw (uno::RuntimeException)
-+ {
-+ uno::Reference< util::XMergeable > xMerge( mxRange, ::uno::UNO_QUERY_THROW );
-+ //FIXME need to check whether all the cell contents are retained or lost by popping up a dialog
-+ xMerge->merge( bIsMerged );
-+ }
-+
-+ sal_Bool
-+ ScVbaRange::getMergeCells() throw (uno::RuntimeException)
-+ {
-+ uno::Reference< util::XMergeable > xMerge( mxRange, ::uno::UNO_QUERY_THROW );
-+ return xMerge->getIsMerged();
-+ }
-+
-+ void
-+ ScVbaRange::Copy(const ::uno::Any& Destination) throw (uno::RuntimeException)
-+ {
-+ if ( Destination.hasValue() )
-+ {
-+ uno::Reference< vba::XRange > xRange( Destination, uno::UNO_QUERY_THROW );
-+ uno::Any aRange = xRange->getCellRange();
-+ uno::Reference< table::XCellRange > xCellRange;
-+ aRange >>= xCellRange;
-+ uno::Reference< sheet::XSheetCellRange > xSheetCellRange(xCellRange, ::uno::UNO_QUERY_THROW);
-+ uno::Reference< sheet::XSpreadsheet > xSheet = xSheetCellRange->getSpreadsheet();
-+ uno::Reference< table::XCellRange > xDest( xSheet, uno::UNO_QUERY_THROW );
-+ uno::Reference< sheet::XCellRangeMovement > xMover( xSheet, uno::UNO_QUERY_THROW);
-+ uno::Reference< sheet::XCellAddressable > xDestination( xDest->getCellByPosition(
-+ xRange->getColumn()-1,xRange->getRow()-1), uno::UNO_QUERY_THROW );
-+ uno::Reference< sheet::XCellRangeAddressable > xSource( mxRange, uno::UNO_QUERY);
-+ xMover->copyRange( xDestination->getCellAddress(), xSource->getRangeAddress() );
-+ }
-+ else
-+ {
-+ Select();
-+ implnCopy();
-+ }
-+ }
-+
-+ void
-+ ScVbaRange::Cut(const ::uno::Any& Destination) throw (uno::RuntimeException)
-+ {
-+ if (Destination.hasValue())
-+ {
-+ uno::Reference< vba::XRange > xRange( Destination, uno::UNO_QUERY_THROW );
-+ uno::Reference< table::XCellRange > xCellRange( xRange->getCellRange(), uno::UNO_QUERY_THROW );
-+ uno::Reference< sheet::XSheetCellRange > xSheetCellRange(xCellRange, ::uno::UNO_QUERY_THROW );
-+ uno::Reference< sheet::XSpreadsheet > xSheet = xSheetCellRange->getSpreadsheet();
-+ uno::Reference< table::XCellRange > xDest( xSheet, uno::UNO_QUERY_THROW );
-+ uno::Reference< sheet::XCellRangeMovement > xMover( xSheet, uno::UNO_QUERY_THROW);
-+ uno::Reference< sheet::XCellAddressable > xDestination( xDest->getCellByPosition(
-+ xRange->getColumn()-1,xRange->getRow()-1), uno::UNO_QUERY);
-+ uno::Reference< sheet::XCellRangeAddressable > xSource( mxRange, uno::UNO_QUERY);
-+ xMover->moveRange( xDestination->getCellAddress(), xSource->getRangeAddress() );
-+ }
-+ {
-+ Select();
-+ implnCut();
-+ }
-+ }
-+
-+ void
-+ ScVbaRange::setNumberFormat( const ::rtl::OUString &rFormat ) throw (uno::RuntimeException)
-+ {
-+ uno::Reference< util::XNumberFormatsSupplier > xSupplier(getCurrentDocument(), uno::UNO_QUERY_THROW);
-+ uno::Reference< util::XNumberFormats > xFormats( xSupplier->getNumberFormats(), uno::UNO_QUERY_THROW );
-+ uno::Reference< beans::XPropertySet > xRangeProps( mxRange, uno::UNO_QUERY_THROW );
-+ //FIXME behaviour with different locales
-+ lang::Locale pLocale = ::com::sun::star::lang::Locale();
-+ long nIndexKey = xFormats->queryKey( rFormat, pLocale, false );
-+ if( nIndexKey != -1 )
-+ xRangeProps->setPropertyValue(rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("NumberFormat")), (uno::Any) nIndexKey );
-+ }
-+
-+ ::rtl::OUString
-+ ScVbaRange::getNumberFormat() throw (uno::RuntimeException)
-+ {
-+ uno::Reference< util::XNumberFormatsSupplier > xSupplier( getCurrentDocument(), uno::UNO_QUERY_THROW );
-+ uno::Reference< util::XNumberFormats > xFormats = xSupplier->getNumberFormats();
-+ uno::Reference< beans::XPropertySet > xRangeProps( mxRange, uno::UNO_QUERY);
-+ long nIndexKey;
-+ uno::Any aValue = xRangeProps->getPropertyValue(rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("NumberFormat")));
-+ aValue >>= nIndexKey;
-+ uno::Reference< beans::XPropertySet > xNumberProps = xFormats->getByKey( nIndexKey );
-+ ::rtl::OUString aFormatString;
-+ uno::Any aString = xNumberProps->getPropertyValue(rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FormatString")));
-+ aString >>= aFormatString;
-+ return aFormatString;
-+ }
-+
-+ uno::Reference< vba::XRange >
-+ ScVbaRange::Resize( const uno::Any &RowSize, const uno::Any &ColumnSize ) throw (uno::RuntimeException)
-+ {
-+ long nRowSize, nColumnSize;
-+ sal_Bool bIsRowChanged = ( RowSize >>= nRowSize ), bIsColumnChanged = ( ColumnSize >>= nColumnSize );
-+ uno::Reference< table::XColumnRowRange > xColumnRowRange(mxRange, ::uno::UNO_QUERY_THROW);
-+ uno::Reference< sheet::XSheetCellRange > xSheetRange(mxRange, ::uno::UNO_QUERY_THROW);
-+ uno::Reference< sheet::XSheetCellCursor > xCursor( xSheetRange->getSpreadsheet()->createCursorByRange(xSheetRange), ::uno::UNO_QUERY_THROW );
-+ if( !nRowSize || !nColumnSize )
-+ throw lang::IndexOutOfBoundsException();
-+ if( !bIsRowChanged )
-+ nRowSize = xColumnRowRange->getRows()->getCount();
-+ if( !bIsColumnChanged )
-+ nColumnSize = xColumnRowRange->getColumns()->getCount();
-+ xCursor->collapseToSize( nColumnSize, nRowSize );
-+ uno::Reference< sheet::XCellRangeAddressable > xCellRangeAddressable(xCursor, ::uno::UNO_QUERY_THROW );
-+ uno::Reference< table::XCellRange > xRange( xSheetRange->getSpreadsheet(), ::uno::UNO_QUERY_THROW );
-+ return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext,xRange->getCellRangeByPosition(
-+ xCellRangeAddressable->getRangeAddress().StartColumn,
-+ xCellRangeAddressable->getRangeAddress().StartRow,
-+ xCellRangeAddressable->getRangeAddress().EndColumn,
-+ xCellRangeAddressable->getRangeAddress().EndRow ) ) );
-+ }
-+
-+ void
-+ ScVbaRange::setWrapText( sal_Bool bIsWrapped ) throw (uno::RuntimeException)
-+ {
-+ uno::Reference< beans::XPropertySet > xProps(mxRange, ::uno::UNO_QUERY_THROW );
-+ xProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsTextWrapped" ) ), ( uno::Any )bIsWrapped );
-+ }
-+
-+ sal_Bool
-+ ScVbaRange::getWrapText() throw (uno::RuntimeException)
-+ {
-+ sal_Bool bWrapped = false;
-+ uno::Reference< beans::XPropertySet > xProps(mxRange, ::uno::UNO_QUERY_THROW );
-+ uno::Any aValue = xProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsTextWrapped" ) ) );
-+ aValue >>= bWrapped;
-+ return bWrapped;
-+ }
-+
-+ uno::Reference< vba::XInterior > ScVbaRange::Interior( ) throw (uno::RuntimeException)
-+ {
-+ return uno::Reference<vba::XInterior> (new ScVbaInterior ( m_xContext, mxRange));
-+ }
-+ uno::Reference< vba::XRange >
-+ ScVbaRange::Range( const uno::Any &Cell1, const uno::Any &Cell2 ) throw (uno::RuntimeException)
-+ {
-+ uno::Reference< sheet::XSheetCellRange > xSheetCellRange( mxRange, uno::UNO_QUERY_THROW );
-+ uno::Reference< sheet::XSpreadsheet > xSheet = xSheetCellRange->getSpreadsheet();
-+ uno::Reference< table::XCellRange > xRanges( xSheet, uno::UNO_QUERY_THROW );
-+ uno::Reference< sheet::XCellRangeAddressable > xAddressable( xRanges, uno::UNO_QUERY_THROW );
-+ uno::Reference< table::XCellRange > xReferrer = xRanges->getCellRangeByPosition(
-+ getColumn()-1, getRow()-1,
-+ xAddressable->getRangeAddress().EndColumn,
-+ xAddressable->getRangeAddress().EndRow );
-+ rtl::OUString rString;
-+ uno::Reference< vba::XRange > aRange1, aRange2;
-+ sal_Bool bIsCell1 = Cell1 >>= aRange1, bIsCell2 = Cell2 >>= aRange2;
-+
-+ if( !Cell1.hasValue() )
-+ throw uno::RuntimeException(
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( " Invalid Argument " ) ),
-+ uno::Reference< XInterface >() );
-+ if( ( Cell1 >>= rString ) && !Cell2.hasValue() )
-+ {
-+ uno::Reference< table::XCellRange > xRange = xRanges->getCellRangeByName( rString );
-+ uno::Reference< sheet::XCellRangeAddressable > xRefAddress( xRange, uno::UNO_QUERY_THROW );
-+ return uno::Reference< vba::XRange > ( new ScVbaRange( m_xContext, xReferrer->getCellRangeByPosition(
-+ xRefAddress->getRangeAddress().StartColumn,
-+ xRefAddress->getRangeAddress().StartRow,
-+ xRefAddress->getRangeAddress().EndColumn,
-+ xRefAddress->getRangeAddress().EndRow ) ) );
-+ }
-+ if( bIsCell1 && bIsCell2 )
-+ return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, xReferrer->getCellRangeByPosition(
-+ aRange1->getColumn() - 1, aRange1->getRow() - 1,
-+ aRange2->getColumn() - 1, aRange2->getRow() - 1 ) ) );
-+ if( bIsCell1 && !Cell2.hasValue() )
-+ return uno::Reference< vba::XRange > ( new ScVbaRange( m_xContext, xReferrer->getCellRangeByPosition(
-+ aRange1->getColumn() - 1, aRange1->getRow() - 1,
-+ aRange1->getColumn() - 1, aRange1->getRow() - 1 ) ) );
-+ return NULL;
-+ }
-+
-+ ::com::sun::star::uno::Any SAL_CALL
-+ ScVbaRange::getCellRange( ) throw (::com::sun::star::uno::RuntimeException)
-+ {
-+ uno::Any aAny;
-+ aAny <<= mxRange;
-+ return aAny;
-+ }
-+
-+ static USHORT
-+ getPasteFlags (sal_Int16 Paste)
-+ {
-+ USHORT nFlags = IDF_NONE;
-+ switch (Paste) {
-+ case vba::xlPasteType::xlPasteComments:
-+ nFlags = IDF_NOTE;break;
-+ case vba::xlPasteType::xlPasteFormats:
-+ nFlags = IDF_ATTRIB;break;
-+ case vba::xlPasteType::xlPasteFormulas:
-+ nFlags = IDF_FORMULA;break;
-+ case vba::xlPasteType::xlPasteFormulasAndNumberFormats :
-+ nFlags = IDF_FORMULA | IDF_VALUE ;break;
-+ case vba::Excel::XlFindLookIn::xlValues:
-+ case vba::xlPasteType::xlPasteValues:
-+ nFlags = IDF_VALUE | IDF_SPECIAL_BOOLEAN ;break;
-+ case vba::xlPasteType::xlPasteValuesAndNumberFormats:
-+ nFlags = IDF_VALUE | IDF_ATTRIB; break;
-+ case vba::xlPasteType::xlPasteColumnWidths:
-+ case vba::xlPasteType::xlPasteValidation:
-+ nFlags = IDF_NONE;break;
-+ case vba::xlPasteType::xlPasteAll:
-+ case vba::xlPasteType::xlPasteAllExceptBorders:
-+ default:
-+ nFlags = IDF_ALL;break;
-+ };
-+ return nFlags;
-+ }
-+
-+ static USHORT
-+ getPasteFormulaBits( sal_Int16 Operation)
-+ {
-+ USHORT nFormulaBits = PASTE_NOFUNC ;
-+ switch (Operation)
-+ {
-+ case vba::xlPasteSpecialOperation::xlPasteSpecialOperationAdd:
-+ nFormulaBits = PASTE_ADD;break;
-+ case vba::xlPasteSpecialOperation::xlPasteSpecialOperationSubtract:
-+ nFormulaBits = PASTE_SUB;break;
-+ case vba::xlPasteSpecialOperation::xlPasteSpecialOperationMultiply:
-+ nFormulaBits = PASTE_MUL;break;
-+ case vba::xlPasteSpecialOperation::xlPasteSpecialOperationDivide:
-+ nFormulaBits = PASTE_DIV;break;
-+
-+ case vba::xlPasteSpecialOperation::xlPasteSpecialOperationNone:
-+ case vba::Excel::Constants::xlNone:
-+ default:
-+ nFormulaBits = PASTE_NOFUNC; break;
-+ };
-+
-+ return nFormulaBits;
-+ }
-+ void SAL_CALL
-+ ScVbaRange::PasteSpecial(sal_Int16 Paste, sal_Int16 Operation, ::sal_Bool SkipBlanks, ::sal_Bool Transpose ) throw (::com::sun::star::uno::RuntimeException)
-+ {
-+ USHORT nFlags = getPasteFlags(Paste);
-+ USHORT nFormulaBits = getPasteFormulaBits(Operation);
-+ implnPasteSpecial(nFlags,nFormulaBits,SkipBlanks,Transpose);
-+
-+ }
-+
-+ uno::Reference< vba::XRange >
-+ ScVbaRange::getEntireColumnOrRow( bool bEntireRow ) throw (uno::RuntimeException)
-+ {
-+ uno::Reference< sheet::XSheetCellRange > xSheetCellRange(mxRange, uno::UNO_QUERY_THROW);
-+ uno::Reference< sheet::XSpreadsheet > xSheet( xSheetCellRange->getSpreadsheet(), uno::UNO_QUERY_THROW );
-+ uno::Reference< sheet::XSheetCellCursor > xSheetCellCursor( xSheet->createCursorByRange( xSheetCellRange ), uno::UNO_QUERY_THROW );
-+ if ( bEntireRow )
-+ xSheetCellCursor->expandToEntireRows();
-+ else
-+ xSheetCellCursor->expandToEntireColumns();
-+
-+ uno::Reference< sheet::XCellRangeAddressable > xCellRangeAddressable(xSheetCellCursor, uno::UNO_QUERY_THROW);
-+ uno::Reference< table::XCellRange > xCellRange( xSheet, uno::UNO_QUERY_THROW);
-+ return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, xCellRange->getCellRangeByPosition( xCellRangeAddressable->getRangeAddress().StartColumn, xCellRangeAddressable->getRangeAddress().StartRow, xCellRangeAddressable->getRangeAddress().EndColumn, xCellRangeAddressable->getRangeAddress().EndRow ) , bEntireRow, !bEntireRow ) );
-+ }
-+
-+ uno::Reference< vba::XRange > SAL_CALL
-+ ScVbaRange::getEntireRow() throw (uno::RuntimeException)
-+ {
-+ return getEntireColumnOrRow();
-+ }
-+
-+ uno::Reference< vba::XRange > SAL_CALL
-+ ScVbaRange::getEntireColumn() throw (uno::RuntimeException)
-+ {
-+ return getEntireColumnOrRow( false );
-+ }
-+
-+ uno::Reference< beans::XPropertySet >
-+ getRowOrColumnProps( const uno::Reference< table::XCellRange >& xCellRange, bool bRows ) throw ( uno::RuntimeException )
-+ {
-+ uno::Reference< table::XColumnRowRange > xColRow( xCellRange, uno::UNO_QUERY_THROW );
-+ uno::Reference< beans::XPropertySet > xProps;
-+ if ( bRows )
-+ xProps.set( xColRow->getRows(), uno::UNO_QUERY_THROW );
-+ else
-+ xProps.set( xColRow->getColumns(), uno::UNO_QUERY_THROW );
-+ return xProps;
-+ }
-+
-+ uno::Any SAL_CALL
-+ ScVbaRange::getHidden() throw (uno::RuntimeException)
-+ {
-+ bool bIsVisible = false;
-+ try
-+ {
-+ uno::Reference< beans::XPropertySet > xProps = getRowOrColumnProps( mxRange, mbIsRows );
-+ if ( !( xProps->getPropertyValue( ISVISIBLE ) >>= bIsVisible ) )
-+ throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Failed to get IsVisible property")), uno::Reference< uno::XInterface >() );
-+ }
-+ catch( uno::Exception& e )
-+ {
-+ throw uno::RuntimeException( e.Message, uno::Reference< uno::XInterface >() );
-+ }
-+ return uno::makeAny( !bIsVisible );
-+ }
-+
-+ void SAL_CALL
-+ ScVbaRange::setHidden( const uno::Any& _hidden ) throw (uno::RuntimeException)
-+ {
-+ sal_Bool bHidden;
-+ if ( !(_hidden >>= bHidden) )
-+ throw uno::RuntimeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Failed to extract param for Hidden property" ) ), uno::Reference< uno::XInterface >() );
-+
-+ try
-+ {
-+ uno::Reference< beans::XPropertySet > xProps = getRowOrColumnProps( mxRange, mbIsRows );
-+ xProps->setPropertyValue( ISVISIBLE, uno::makeAny( !bHidden ) );
-+ }
-+ catch( uno::Exception& e )
-+ {
-+ throw uno::RuntimeException( e.Message, uno::Reference< uno::XInterface >() );
-+ }
-+ }
-+
-+ // XInterface
-+
-+ IMPLEMENT_FORWARD_XINTERFACE2( ScVbaRange, ScVbaRange_BASE, OPropertyContainer )
-+
-+ // XTypeProvider
-+
-+ IMPLEMENT_FORWARD_XTYPEPROVIDER2( ScVbaRange, ScVbaRange_BASE, OPropertyContainer )
-+
-+ // OPropertySetHelper
-+
-+ ::cppu::IPropertyArrayHelper&
-+ ScVbaRange::getInfoHelper( )
-+ {
-+ static ::cppu::IPropertyArrayHelper* sProps = 0;
-+ if ( !sProps )
-+ sProps = createArrayHelper();
-+ return *sProps;
-+ }
-+
-+
-+ ::cppu::IPropertyArrayHelper*
-+ ScVbaRange::createArrayHelper( ) const
-+ {
-+ uno::Sequence< beans::Property > aProps;
-+ describeProperties( aProps );
-+ return new ::cppu::OPropertyArrayHelper( aProps );
-+ }
-+
-+ // XPropertySet
-+ uno::Reference< beans::XPropertySetInfo >
-+ ScVbaRange::getPropertySetInfo( ) throw (uno::RuntimeException)
-+ {
-+ uno::Reference< beans::XPropertySetInfo > xInfo( createPropertySetInfo( getInfoHelper() ) );
-+ return xInfo;
-+ }
diff --git a/patches/vba/sc-source-ui-vba-vbarange-hxx.diff b/patches/vba/sc-source-ui-vba-vbarange-hxx.diff
deleted file mode 100644
index fbef344d2..000000000
--- a/patches/vba/sc-source-ui-vba-vbarange-hxx.diff
+++ /dev/null
@@ -1,132 +0,0 @@
-*** /dev/null 2005-12-16 09:19:58.720346000 +0000
---- sc/source/ui/vba/vbarange.hxx 2005-12-22 15:27:48.000000000 +0000
-***************
-*** 0 ****
---- 1,127 ----
-+ #ifndef SC_VBA_RANGE_HXX
-+ #define SC_VBA_RANGE_HXX
-+
-+ #include <cppuhelper/implbase1.hxx>
-+
-+ #include <org/openoffice/vba/XRange.hpp>
-+ #include <com/sun/star/table/XCellRange.hpp>
-+ #include <org/openoffice/vba/XFont.hpp>
-+ #include <org/openoffice/vba/xlPasteType.hdl>
-+ #include <org/openoffice/vba/xlPasteSpecialOperation.hdl>
-+
-+ #include <comphelper/proparrhlp.hxx>
-+ #include <comphelper/propertycontainer.hxx>
-+ #include <com/sun/star/beans/XPropertySet.hpp>
-+ #include <com/sun/star/beans/PropertyAttribute.hpp>
-+ #include <com/sun/star/script/XTypeConverter.hpp>
-+ #include <com/sun/star/sheet/FillDateMode.hpp>
-+ #include <com/sun/star/sheet/FillMode.hpp>
-+ #include <com/sun/star/sheet/FillDirection.hpp>
-+
-+ #include "vbahelper.hxx"
-+
-+ class ScTableSheetsObj;
-+
-+ typedef ::cppu::WeakImplHelper1< oo::vba::XRange > ScVbaRange_BASE;
-+ class ArrayVisitor
-+ {
-+ public:
-+ virtual void visitNode( sal_Int32 x, sal_Int32 y, const css::uno::Reference< css::table::XCell >& xCell ) = 0;
-+ };
-+ class ScVbaRange : public ScVbaRange_BASE
-+ ,public ::comphelper::OMutexAndBroadcastHelper
-+ ,public ::comphelper::OPropertyContainer
-+
-+ {
-+ css::uno::Reference< css::table::XCellRange > mxRange;
-+ css::uno::Reference< css::uno::XComponentContext > m_xContext;
-+ sal_Bool mbIsRows;
-+ sal_Bool mbIsColumns;
-+ rtl::OUString msDftPropName;
-+ void visitArray( ArrayVisitor& vistor );
-+ css::uno::Reference< css::script::XTypeConverter > getTypeConverter() throw (css::uno::RuntimeException);
-+
-+ css::uno::Reference< oo::vba::XRange > getEntireColumnOrRow( bool bEntireRow = true ) throw( css::uno::RuntimeException );
-+
-+ void fillSeries( css::sheet::FillDirection nFillDirection, css::sheet::FillMode nFillMode, css::sheet::FillDateMode nFillDateMode, double fStep, double fEndValue ) throw( css::uno::RuntimeException );
-+
-+ public:
-+ ScVbaRange( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::table::XCellRange >& xRange, sal_Bool bIsRows = false, sal_Bool bIsColumns = false ) throw ( css::lang::IllegalArgumentException );
-+
-+ virtual ~ScVbaRange() {}
-+
-+ // Attributes
-+ virtual css::uno::Any SAL_CALL getValue() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL setValue( const css::uno::Any& aValue ) throw ( css::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getFormula() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL setFormula( const ::rtl::OUString &rFormula ) throw (css::uno::RuntimeException);
-+ virtual double SAL_CALL getCount() throw (css::uno::RuntimeException);
-+ virtual ::sal_Int32 SAL_CALL getRow() throw (css::uno::RuntimeException);
-+ virtual ::sal_Int32 SAL_CALL getColumn() throw (css::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getText() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL setText( const ::rtl::OUString &rString ) throw (css::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getFormulaArray() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL setFormulaArray(const ::rtl::OUString &rFormula) throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL setNumberFormat( const ::rtl::OUString &rNumberFormat ) throw (css::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getNumberFormat() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL setMergeCells( sal_Bool bMerge ) throw (css::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL getMergeCells() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL setWrapText( sal_Bool bIsWrapped ) throw (css::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL getWrapText() throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XRange > SAL_CALL getEntireRow() throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XRange > SAL_CALL getEntireColumn() throw (css::uno::RuntimeException);
-+ virtual css::uno::Any SAL_CALL getHidden() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL setHidden( const css::uno::Any& _hidden ) throw (css::uno::RuntimeException);
-+ // Methods
-+ sal_Bool IsRows() { return mbIsRows; }
-+ sal_Bool IsColumns() { return mbIsColumns; }
-+ virtual void SAL_CALL Clear() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL ClearComments() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL ClearContents() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL ClearFormats() throw (css::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL HasFormula() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL FillLeft() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL FillRight() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL FillUp() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL FillDown() throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XRange > SAL_CALL Offset( const css::uno::Any &nRowOffset, const css::uno::Any &nColOffset )
-+ throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XRange > SAL_CALL CurrentRegion() throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XRange > SAL_CALL CurrentArray() throw (css::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL Characters( const css::uno::Any& nIndex, const css::uno::Any& nCount )
-+ throw (css::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL Address() throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XRange > SAL_CALL Cells( const css::uno::Any &nRow, const css::uno::Any &nCol )
-+ throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL Select() throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XRange > SAL_CALL Rows( const css::uno::Any& nIndex ) throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XRange > SAL_CALL Columns( const css::uno::Any &nIndex ) throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL Copy( const css::uno::Any& Destination ) throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL Cut( const css::uno::Any& Destination ) throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XRange > SAL_CALL Resize( const css::uno::Any& RowSize, const css::uno::Any& ColumnSize )
-+ throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XFont > SAL_CALL Font() throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XInterior > SAL_CALL Interior( ) throw (css::uno::RuntimeException) ;
-+ virtual css::uno::Reference< oo::vba::XRange > SAL_CALL Range( const css::uno::Any &Cell1, const css::uno::Any &Cell2 )
-+ throw (css::uno::RuntimeException);
-+ virtual css::uno::Any SAL_CALL getCellRange( ) throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL PasteSpecial( sal_Int16 Paste, sal_Int16 Operation, ::sal_Bool SkipBlanks, ::sal_Bool Transpose ) throw (css::uno::RuntimeException);
-+ // XPropertySet
-+
-+ virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw (css::uno::RuntimeException);
-+
-+ // XInterface
-+ DECLARE_XINTERFACE()
-+
-+ // XTypeProvider
-+ DECLARE_XTYPEPROVIDER()
-+ protected:
-+ // OPropertySetHelper
-+ virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper();
-+
-+ virtual ::cppu::IPropertyArrayHelper* createArrayHelper() const;
-+
-+ };
-+
-+ #endif /* SC_VBA_RANGE_HXX */
-+
diff --git a/patches/vba/sc-source-ui-vba-vbaseriescollection-cxx.diff b/patches/vba/sc-source-ui-vba-vbaseriescollection-cxx.diff
deleted file mode 100644
index 8f59a4854..000000000
--- a/patches/vba/sc-source-ui-vba-vbaseriescollection-cxx.diff
+++ /dev/null
@@ -1,76 +0,0 @@
---- /dev/null 2005-11-27 19:42:11.860354750 +0000
-+++ sc/source/ui/vba/vbaseriescollection.cxx 2005-11-29 16:10:52.000000000 +0000
-@@ -0,0 +1,73 @@
-+#include "vbaseriescollection.hxx"
-+#include <org/openoffice/vba/XSeries.hpp>
-+
-+#include "vbaglobals.hxx"
-+
-+using namespace ::com::sun::star;
-+using namespace ::org::openoffice;
-+
-+uno::Reference< oo::vba::XApplication >
-+ScVbaSeriesCollection::getApplication() throw (uno::RuntimeException)
-+{
-+ return ScVbaGlobals::getGlobalsImpl( m_xContext )->getApplication();
-+}
-+::sal_Int32
-+ScVbaSeriesCollection::getCount() throw (uno::RuntimeException)
-+{
-+ return 0;
-+}
-+
-+uno::Any
-+ScVbaSeriesCollection::Item( const uno::Any& aIndex ) throw (uno::RuntimeException)
-+{
-+ return uno::Any();
-+}
-+
-+// XEnumerationAccess
-+
-+uno::Reference< container::XEnumeration >
-+ScVbaSeriesCollection::createEnumeration() throw (uno::RuntimeException)
-+{
-+ uno::Reference< container::XEnumeration > xEnum;
-+ return xEnum;
-+}
-+
-+// XElementAccess
-+
-+uno::Type
-+ScVbaSeriesCollection::getElementType() throw (uno::RuntimeException)
-+{
-+ return vba::XSeries::static_type(0);
-+}
-+::sal_Bool
-+ScVbaSeriesCollection::hasElements() throw (uno::RuntimeException)
-+{
-+ // #TODO #TOFIX Really?, how can we say that!
-+ // needs to delegate to xIndex
-+ return sal_True;
-+}
-+
-+uno::Any SAL_CALL
-+ScVbaSeriesCollection::getParent() throw (uno::RuntimeException)
-+{
-+ uno::Reference< vba::XApplication > xApplication =
-+ getApplication();
-+ uno::Reference< vba::XWorkbook > xWorkbook;
-+ if ( xApplication.is() )
-+ {
-+ xWorkbook = xApplication->getActiveWorkbook();
-+ }
-+ return uno::Any( xWorkbook );
-+}
-+
-+sal_Int32 SAL_CALL
-+ScVbaSeriesCollection::getCreator() throw (uno::RuntimeException)
-+{
-+ SC_VBA_STUB();
-+ return 0;
-+}
-+
-+
-+
-+
-+
diff --git a/patches/vba/sc-source-ui-vba-vbaseriescollection-hxx.diff b/patches/vba/sc-source-ui-vba-vbaseriescollection-hxx.diff
deleted file mode 100644
index 949b76232..000000000
--- a/patches/vba/sc-source-ui-vba-vbaseriescollection-hxx.diff
+++ /dev/null
@@ -1,36 +0,0 @@
---- /dev/null 2005-11-27 19:42:11.860354750 +0000
-+++ sc/source/ui/vba/vbaseriescollection.hxx 2005-11-17 17:11:53.000000000 +0000
-@@ -0,0 +1,33 @@
-+#ifndef SC_VBA_SERIESCOLLECTION_HXX
-+#define SC_VBA_SERIESCOLLECTION_HXX
-+#include <org/openoffice/vba/XSeriesCollection.hpp>
-+#include <cppuhelper/implbase2.hxx>
-+#include <com/sun/star/uno/XComponentContext.hpp>
-+#include <com/sun/star/container/XEnumerationAccess.hpp>
-+
-+#include "vbahelper.hxx"
-+
-+typedef ::cppu::WeakImplHelper2<oo::vba::XSeriesCollection,
-+css::container::XEnumerationAccess > SeriesCollectionImpl_BASE;
-+
-+class ScVbaSeriesCollection : public SeriesCollectionImpl_BASE
-+{
-+
-+ css::uno::Reference< css::uno::XComponentContext > m_xContext;
-+public:
-+ ScVbaSeriesCollection( const css::uno::Reference< css::uno::XComponentContext >& xContext ) : m_xContext(xContext) {}
-+ //XCollection
-+ virtual ::sal_Int32 SAL_CALL getCount() throw (css::uno::RuntimeException);
-+ virtual css::uno::Any SAL_CALL getParent() throw (css::uno::RuntimeException);
-+ virtual ::sal_Int32 SAL_CALL getCreator() throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XApplication > SAL_CALL getApplication() throw (css::uno::RuntimeException);
-+ virtual css::uno::Any SAL_CALL Item( const css::uno::Any& Index ) throw (css::uno::RuntimeException);
-+
-+ // XEnumerationAccess
-+ virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException);
-+ // XElementAccess
-+ virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException);
-+ virtual ::sal_Bool SAL_CALL hasElements() throw (css::uno::RuntimeException);
-+};
-+
-+#endif //SC_VBA_WINDOW_HXX
diff --git a/patches/vba/sc-source-ui-vba-vbawindow-cxx.diff b/patches/vba/sc-source-ui-vba-vbawindow-cxx.diff
deleted file mode 100644
index dfef26334..000000000
--- a/patches/vba/sc-source-ui-vba-vbawindow-cxx.diff
+++ /dev/null
@@ -1,241 +0,0 @@
---- /dev/null 2006-01-03 09:47:36.312320500 +0000
-+++ sc/source/ui/vba/vbawindow.cxx 2006-01-03 16:53:16.000000000 +0000
-@@ -0,0 +1,238 @@
-+#include "vbawindow.hxx"
-+#include "vbaworksheets.hxx"
-+#include "vbaworksheet.hxx"
-+#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
-+#include <com/sun/star/sheet/XSpreadsheet.hpp>
-+#include <com/sun/star/container/XNamed.hpp>
-+
-+#include <docsh.hxx>
-+#include <tabvwsh.hxx>
-+#include <docuno.hxx>
-+#include <sc.hrc>
-+#include <hash_map>
-+
-+using namespace ::com::sun::star;
-+using namespace ::org::openoffice;
-+
-+typedef std::hash_map< rtl::OUString,
-+SCTAB, ::rtl::OUStringHash,
-+::std::equal_to< ::rtl::OUString > > NameIndexHash;
-+
-+typedef std::vector < uno::Reference< sheet::XSpreadsheet > > Sheets;
-+
-+typedef ::cppu::WeakImplHelper1< container::XEnumeration
-+
-+> Enumeration_BASE;
-+
-+typedef ::cppu::WeakImplHelper3< container::XEnumerationAccess
-+ , com::sun::star::container::XIndexAccess
-+ , com::sun::star::container::XNameAccess
-+ > SelectedSheets_BASE;
-+
-+
-+class SelectedSheetsEnum : public Enumeration_BASE
-+{
-+public:
-+ uno::Reference< uno::XComponentContext > m_xContext;
-+ uno::Reference< frame::XModel > m_xModel;
-+ Sheets m_sheets;
-+ Sheets::const_iterator m_it;
-+
-+ SelectedSheetsEnum( const uno::Reference< uno::XComponentContext >& xContext, const Sheets& sheets, const uno::Reference< frame::XModel >& xModel ) throw ( uno::RuntimeException ) : m_xContext( xContext ), m_sheets( sheets ), m_xModel( xModel )
-+ {
-+ m_it = m_sheets.begin();
-+ }
-+ // XEnumeration
-+ virtual ::sal_Bool SAL_CALL hasMoreElements( ) throw (uno::RuntimeException)
-+ {
-+ return m_it != m_sheets.end();
-+ }
-+ virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
-+ {
-+ if ( !hasMoreElements() )
-+ {
-+ throw container::NoSuchElementException();
-+ }
-+ return makeAny( uno::Reference< vba::XWorksheet > ( new ScVbaWorksheet( m_xContext, *(m_it++), m_xModel ) ) );
-+ }
-+
-+
-+};
-+
-+class SelectedSheetsEnumAccess : public SelectedSheets_BASE
-+{
-+ uno::Reference< uno::XComponentContext > m_xContext;
-+ NameIndexHash namesToIndices;
-+ Sheets sheets;
-+ uno::Reference< frame::XModel > m_xModel;
-+public:
-+ SelectedSheetsEnumAccess( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< frame::XModel >& xModel ):m_xContext( xContext ), m_xModel( xModel )
-+ {
-+ ScModelObj* pModel = static_cast< ScModelObj* >( m_xModel.get() );
-+ if ( !pModel )
-+ throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Cannot obtain current document" ) ), uno::Reference< uno::XInterface >() );
-+ ScDocShell* pDocShell = (ScDocShell*)pModel->GetEmbeddedObject();
-+ if ( !pDocShell )
-+ throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Cannot obtain docshell" ) ), uno::Reference< uno::XInterface >() );
-+ ScTabViewShell* pViewShell = getCurrentBestViewShell();
-+ if ( !pViewShell )
-+ throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Cannot obtain view shell" ) ), uno::Reference< uno::XInterface >() );
-+
-+ SCTAB nTabCount = pDocShell->GetDocument()->GetTableCount();
-+ uno::Sequence<sal_Int32> aSheets( nTabCount );
-+ sal_Int32 nIndex = 0;
-+ const ScMarkData& rMarkData = pViewShell->GetViewData()->GetMarkData();
-+ sheets.reserve( nTabCount );
-+ uno::Reference <sheet::XSpreadsheetDocument> xSpreadSheet( m_xModel, uno::UNO_QUERY_THROW );
-+ uno::Reference <container::XIndexAccess> xIndex( xSpreadSheet->getSheets(), uno::UNO_QUERY_THROW );
-+ for ( SCTAB nTab=0; nTab<nTabCount; nTab++ )
-+ {
-+ if ( rMarkData.GetTableSelect(nTab) )
-+ {
-+ uno::Reference< sheet::XSpreadsheet > xSheet( xIndex->getByIndex( nTab ), uno::UNO_QUERY_THROW );
-+ uno::Reference< container::XNamed > xNamed( xSheet, uno::UNO_QUERY_THROW );
-+ sheets.push_back( xSheet );
-+ namesToIndices[ xNamed->getName() ] = nIndex++;
-+ }
-+ }
-+
-+ }
-+
-+ //XEnumerationAccess
-+ virtual uno::Reference< container::XEnumeration > SAL_CALL createEnumeration( ) throw (uno::RuntimeException)
-+ {
-+ return new SelectedSheetsEnum( m_xContext, sheets, m_xModel );
-+ }
-+ // XIndexAccess
-+ virtual ::sal_Int32 SAL_CALL getCount( ) throw (uno::RuntimeException)
-+ {
-+ return sheets.size();
-+ }
-+ virtual uno::Any SAL_CALL getByIndex( ::sal_Int32 Index ) throw ( lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
-+ {
-+ if ( Index < 0
-+ || Index >= sheets.size() )
-+ throw lang::IndexOutOfBoundsException();
-+
-+ //return makeAny( uno::Reference< vba::XWorksheet > ( new ScVbaWorksheet( m_xContext, sheets[ Index ], m_xModel ) ) );
-+ return makeAny( sheets[ Index ] );
-+ }
-+
-+ //XElementAccess
-+ virtual uno::Type SAL_CALL getElementType( ) throw (uno::RuntimeException)
-+ {
-+ return vba::XWorksheet::static_type(0);
-+ }
-+
-+ virtual ::sal_Bool SAL_CALL hasElements( ) throw (uno::RuntimeException)
-+ {
-+ return (sheets.size() > 0);
-+ }
-+
-+ //XNameAccess
-+ virtual uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
-+ {
-+ NameIndexHash::const_iterator it = namesToIndices.find( aName );
-+ if ( it == namesToIndices.end() )
-+ throw container::NoSuchElementException();
-+ //return makeAny( uno::Reference< vba::XWorksheet > ( new ScVbaWorksheet( m_xContext, sheets[ it->second ], m_xModel ) ) );
-+ return makeAny( sheets[ it->second ] );
-+
-+ }
-+
-+ virtual uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames( ) throw (uno::RuntimeException)
-+ {
-+ uno::Sequence< ::rtl::OUString > names( namesToIndices.size() );
-+ ::rtl::OUString* pString = names.getArray();
-+ NameIndexHash::const_iterator it = namesToIndices.begin();
-+ NameIndexHash::const_iterator it_end = namesToIndices.end();
-+ for ( ; it != it_end; ++it, ++pString )
-+ *pString = it->first;
-+ return names;
-+ }
-+
-+ virtual ::sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (uno::RuntimeException)
-+ {
-+ NameIndexHash::const_iterator it = namesToIndices.find( aName );
-+ return (it != namesToIndices.end());
-+ }
-+
-+
-+};
-+
-+
-+void
-+ScVbaWindow::Scroll( const uno::Any& Down, const uno::Any& Up, const uno::Any& ToRight, const uno::Any& ToLeft, bool bLargeScroll ) throw (uno::RuntimeException)
-+{
-+ sal_Int16 down = 0;
-+ sal_Int16 up = 0;
-+ sal_Int16 toRight = 0;
-+ sal_Int16 toLeft = 0;
-+ Down >>= down;
-+ Up >>= up;
-+ ToRight >>= toRight;
-+ ToLeft >>= toLeft;
-+ uno::Sequence< beans::PropertyValue > args1(2);
-+ args1[0].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "By" ) );
-+ args1[1].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Sel" ) );
-+ args1[1].Value <<= false;
-+
-+ sal_Int16 totalUp = up - down;
-+ sal_Int16 totalLeft = toLeft - toRight;
-+
-+ if ( totalUp != 0 )
-+ {
-+ args1[0].Value <<= totalUp;
-+ rtl::OUString url = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:GoUp"));
-+ if ( bLargeScroll )
-+ url = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:GoUpBlock"));
-+ uno::Reference< frame::XModel > xModel = getCurrentDocument();
-+ dispatchRequests( xModel, url, args1 );
-+ }
-+
-+ if ( totalLeft != 0 )
-+ {
-+ args1[0].Value <<= totalLeft;
-+ rtl::OUString url = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:GoLeft"));
-+ if ( bLargeScroll )
-+ url = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "slot:")) + rtl::OUString::valueOf( (sal_Int32)SID_CURSORPAGELEFT_ );
-+ uno::Reference< frame::XModel > xModel = getCurrentDocument();
-+ dispatchRequests( xModel, url, args1 );
-+ }
-+
-+}
-+void SAL_CALL
-+ScVbaWindow::SmallScroll( const uno::Any& Down, const uno::Any& Up, const uno::Any& ToRight, const uno::Any& ToLeft ) throw (uno::RuntimeException)
-+{
-+ Scroll( Down, Up, ToRight, ToLeft );
-+}
-+void SAL_CALL
-+ScVbaWindow::LargeScroll( const uno::Any& Down, const uno::Any& Up, const uno::Any& ToRight, const uno::Any& ToLeft ) throw (uno::RuntimeException)
-+{
-+ Scroll( Down, Up, ToRight, ToLeft, true );
-+}
-+
-+uno::Any SAL_CALL
-+ScVbaWindow::SelectedSheets( const uno::Any& aIndex ) throw (uno::RuntimeException)
-+{
-+ uno::Reference< container::XEnumerationAccess > xEnumAccess( new SelectedSheetsEnumAccess( m_xContext, getCurrentDocument() ) );
-+ return makeAny( uno::Reference< vba::XWorksheets > ( new ScVbaWorksheets( m_xContext, xEnumAccess, getCurrentDocument() ) ) );
-+}
-+
-+void SAL_CALL
-+ScVbaWindow::ScrollWorkbookTabs( const uno::Any& Sheets, const uno::Any& Position ) throw (uno::RuntimeException)
-+{
-+ sal_Int32 nSheets = 0;
-+ sal_Int32 nPosition = 0;
-+ sal_Bool bSheets = ( Sheets >>= nSheets );
-+ sal_Bool bPosition = ( Position >>= nPosition );
-+// #TODO #FIXME need some implementation to scroll through the tabs
-+// but where is this done?
-+ if ( bSheets || bPosition ) // at least one param specified
-+ if ( bSheets )
-+ ;// use sheets
-+ else if ( bPosition )
-+ ; //use position
-+
-+}
-+
diff --git a/patches/vba/sc-source-ui-vba-vbawindow-hxx.diff b/patches/vba/sc-source-ui-vba-vbawindow-hxx.diff
deleted file mode 100644
index 544edaeb7..000000000
--- a/patches/vba/sc-source-ui-vba-vbawindow-hxx.diff
+++ /dev/null
@@ -1,27 +0,0 @@
---- /dev/null 2006-01-03 09:47:36.312320500 +0000
-+++ sc/source/ui/vba/vbawindow.hxx 2006-01-03 16:23:35.000000000 +0000
-@@ -0,0 +1,24 @@
-+#ifndef SC_VBA_WINDOW_HXX
-+#define SC_VBA_WINDOW_HXX
-+#include <cppuhelper/implbase1.hxx>
-+#include <org/openoffice/vba/XWindow.hpp>
-+#include <com/sun/star/uno/XComponentContext.hpp>
-+
-+#include "vbahelper.hxx"
-+
-+typedef ::cppu::WeakImplHelper1<oo::vba::XWindow > WindowImpl_BASE;
-+
-+class ScVbaWindow : public WindowImpl_BASE
-+{
-+ css::uno::Reference< css::uno::XComponentContext > m_xContext;
-+ void Scroll( const css::uno::Any& Down, const css::uno::Any& Up, const css::uno::Any& ToRight, const css::uno::Any& ToLeft, bool bLargeScroll = false ) throw (css::uno::RuntimeException);
-+public:
-+ ScVbaWindow( css::uno::Reference< css::uno::XComponentContext >& xContext ) : m_xContext(xContext) {}
-+ //XWindow
-+ virtual void SAL_CALL SmallScroll( const css::uno::Any& Down, const css::uno::Any& Up, const css::uno::Any& ToRight, const css::uno::Any& ToLeft ) throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL LargeScroll( const css::uno::Any& Down, const css::uno::Any& Up, const css::uno::Any& ToRight, const css::uno::Any& ToLeft ) throw (css::uno::RuntimeException);
-+ virtual css::uno::Any SAL_CALL SelectedSheets( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL ScrollWorkbookTabs( const css::uno::Any& Sheets, const css::uno::Any& Position ) throw (css::uno::RuntimeException);
-+};
-+
-+#endif //SC_VBA_WINDOW_HXX
diff --git a/patches/vba/sc-source-ui-vba-vbaworkbook-cxx.diff b/patches/vba/sc-source-ui-vba-vbaworkbook-cxx.diff
deleted file mode 100644
index ea31538d4..000000000
--- a/patches/vba/sc-source-ui-vba-vbaworkbook-cxx.diff
+++ /dev/null
@@ -1,191 +0,0 @@
---- /dev/null 2005-11-27 19:42:11.860354750 +0000
-+++ sc/source/ui/vba/vbaworkbook.cxx 2005-11-18 16:38:32.000000000 +0000
-@@ -0,0 +1,188 @@
-+#include <tools/urlobj.hxx>
-+
-+#include <com/sun/star/util/XModifiable.hpp>
-+#include <com/sun/star/util/XProtectable.hpp>
-+#include <com/sun/star/sheet/XSpreadsheetView.hpp>
-+#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
-+#include <com/sun/star/frame/XStorable.hpp>
-+#include <com/sun/star/frame/XFrame.hpp>
-+
-+#include "vbaworksheet.hxx"
-+#include "vbaworksheets.hxx"
-+#include "vbaworkbook.hxx"
-+#include "vbahelper.hxx"
-+
-+#include <stdio.h>
-+
-+// Much of the impl. for the equivalend UNO module is
-+// sc/source/ui/unoobj/docuno.cxx, viewuno.cxx
-+
-+using namespace ::org::openoffice;
-+using namespace ::com::sun::star;
-+
-+class ActiveSheet : public ScVbaWorksheet
-+{
-+protected:
-+ virtual uno::Reference< frame::XModel > getModel()
-+ {
-+ return getCurrentDocument();
-+ }
-+ virtual uno::Reference< sheet::XSpreadsheet > getSheet()
-+ {
-+ uno::Reference< frame::XModel > xModel = getModel();
-+ uno::Reference< sheet::XSpreadsheet > xSheet;
-+ if ( xModel.is() )
-+ {
-+ uno::Reference< sheet::XSpreadsheetView > xSpreadsheet(
-+ xModel->getCurrentController(), uno::UNO_QUERY );
-+ if ( xSpreadsheet.is() )
-+ xSheet = xSpreadsheet->getActiveSheet();
-+ }
-+ return xSheet;
-+ }
-+public:
-+ ActiveSheet( uno::Reference< uno::XComponentContext >& xContext ) : ScVbaWorksheet( xContext ) {}
-+
-+};
-+
-+
-+::rtl::OUString
-+ScVbaWorkbook::getName() throw (uno::RuntimeException)
-+{
-+ INetURLObject aURL( getModel()->getURL() );
-+ return aURL.GetLastName();
-+}
-+::rtl::OUString
-+ScVbaWorkbook::getPath() throw (uno::RuntimeException)
-+{
-+ INetURLObject aURL( getModel()->getURL() );
-+ aURL.CutLastName();
-+ return aURL.GetURLPath();
-+}
-+
-+::rtl::OUString
-+ScVbaWorkbook::getFullName() throw (uno::RuntimeException)
-+{
-+ INetURLObject aURL( getModel()->getURL() );
-+ return aURL.GetURLPath();
-+}
-+uno::Reference< vba::XWorksheet >
-+ScVbaWorkbook::getActiveSheet() throw (uno::RuntimeException)
-+{
-+ return new ActiveSheet( m_xContext );
-+}
-+uno::Any SAL_CALL
-+ScVbaWorkbook::Worksheets( const uno::Any& aIndex ) throw (uno::RuntimeException)
-+{
-+ uno::Reference< frame::XModel > xModel( getModel() );
-+ uno::Reference <sheet::XSpreadsheetDocument> xSpreadDoc( xModel, uno::UNO_QUERY_THROW );
-+ uno::Reference<sheet::XSpreadsheets > xSheets( xSpreadDoc->getSheets(), uno::UNO_QUERY_THROW );
-+ uno::Reference< vba::XCollection > xWorkSheets( uno::Reference< vba::XWorksheets >( new ScVbaWorksheets(m_xContext, xSheets, xModel ) ), uno::UNO_QUERY_THROW );
-+ if ( aIndex.getValueTypeClass() == uno::TypeClass_VOID )
-+ {
-+ return uno::Any( xWorkSheets );
-+ }
-+ return uno::Any( xWorkSheets->Item( aIndex ) );
-+}
-+
-+void
-+ScVbaWorkbook::Close( const uno::Any &rSaveArg, const uno::Any &rFileArg,
-+ const uno::Any &rRouteArg ) throw (uno::RuntimeException)
-+{
-+ sal_Bool bSaveChanges = sal_False;
-+ rtl::OUString aFileName;
-+ sal_Bool bRouteWorkbook = sal_True;
-+
-+ rSaveArg >>= bSaveChanges;
-+ sal_Bool bFileName = ( rFileArg >>= aFileName );
-+ rRouteArg >>= bRouteWorkbook;
-+ uno::Reference< frame::XStorable > xStorable( getModel(), uno::UNO_QUERY_THROW );
-+ uno::Reference< util::XModifiable > xModifiable( getModel(), uno::UNO_QUERY_THROW );
-+
-+ if( bSaveChanges )
-+ {
-+ if( xStorable->isReadonly() )
-+ {
-+ throw uno::RuntimeException(::rtl::OUString(
-+ RTL_CONSTASCII_USTRINGPARAM( "Unable to save to a read only file ") ),
-+ uno::Reference< XInterface >() );
-+ }
-+ if( bFileName )
-+ xStorable->storeAsURL( aFileName, uno::Sequence< beans::PropertyValue >(0) );
-+ else
-+ xStorable->store();
-+ }
-+ else
-+ xModifiable->setModified( false );
-+
-+ rtl::OUString url = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:CloseDoc"));
-+ uno::Reference< frame::XModel > xModel = getModel();
-+ dispatchRequests(xModel,url);
-+}
-+
-+void
-+ScVbaWorkbook::Protect( const uno::Any &aPassword ) throw (uno::RuntimeException)
-+{
-+ rtl::OUString rPassword;
-+ uno::Reference< util::XProtectable > xProt( getModel(), uno::UNO_QUERY_THROW );
-+ SC_VBA_FIXME(("Workbook::Protect stub"));
-+ if( aPassword >>= rPassword )
-+ xProt->protect( rPassword );
-+ else
-+ xProt->protect( rtl::OUString() );
-+}
-+
-+void
-+ScVbaWorkbook::Unprotect( const uno::Any &aPassword ) throw (uno::RuntimeException)
-+{
-+ rtl::OUString rPassword;
-+ uno::Reference< util::XProtectable > xProt( getModel(), uno::UNO_QUERY_THROW );
-+ if( !getProtectStructure() )
-+ throw uno::RuntimeException(::rtl::OUString(
-+ RTL_CONSTASCII_USTRINGPARAM( "File is already unprotected" ) ),
-+ uno::Reference< XInterface >() );
-+ else
-+ {
-+ if( aPassword >>= rPassword )
-+ xProt->unprotect( rPassword );
-+ else
-+ xProt->unprotect( rtl::OUString() );
-+ }
-+}
-+
-+::sal_Bool
-+ScVbaWorkbook::getProtectStructure() throw (uno::RuntimeException)
-+{
-+ uno::Reference< util::XProtectable > xProt( getModel(), uno::UNO_QUERY_THROW );
-+ return xProt->isProtected();
-+}
-+
-+void
-+ScVbaWorkbook::setSaved( sal_Bool bSave ) throw (uno::RuntimeException)
-+{
-+ uno::Reference< util::XModifiable > xModifiable( getModel(), uno::UNO_QUERY_THROW );
-+ xModifiable->setModified( bSave );
-+}
-+
-+sal_Bool
-+ScVbaWorkbook::getSaved() throw (uno::RuntimeException)
-+{
-+ uno::Reference< util::XModifiable > xModifiable( getModel(), uno::UNO_QUERY_THROW );
-+ return xModifiable->isModified();
-+}
-+
-+void
-+ScVbaWorkbook::Save() throw (uno::RuntimeException)
-+{
-+ rtl::OUString url = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(".uno:Save"));
-+ uno::Reference< frame::XModel > xModel = getModel();
-+ dispatchRequests(xModel,url);
-+}
-+
-+void
-+ScVbaWorkbook::Activate() throw (uno::RuntimeException)
-+{
-+ uno::Reference< frame::XFrame > xFrame( getModel()->getCurrentController()->getFrame(), uno::UNO_QUERY_THROW );
-+ xFrame->activate();
-+}
-+
diff --git a/patches/vba/sc-source-ui-vba-vbaworkbook-hxx.diff b/patches/vba/sc-source-ui-vba-vbaworkbook-hxx.diff
deleted file mode 100644
index 73c6ea636..000000000
--- a/patches/vba/sc-source-ui-vba-vbaworkbook-hxx.diff
+++ /dev/null
@@ -1,50 +0,0 @@
---- /dev/null 2005-11-06 11:49:58.372324250 +0000
-+++ sc/source/ui/vba/vbaworkbook.hxx 2005-10-28 16:19:20.000000000 +0100
-@@ -0,0 +1,47 @@
-+#ifndef SC_VBA_WORKBOOK_HXX
-+#define SC_VBA_WORKBOOK_HXX
-+
-+#include <cppuhelper/implbase1.hxx>
-+
-+#include <com/sun/star/frame/XModel.hpp>
-+#include <org/openoffice/vba/XWorkbook.hpp>
-+#include "vbahelper.hxx"
-+
-+class ScModelObj;
-+
-+typedef ::cppu::WeakImplHelper1< oo::vba::XWorkbook > ScVbaWorkbook_BASE;
-+
-+class ScVbaWorkbook : public ScVbaWorkbook_BASE
-+{
-+ css::uno::Reference< css::uno::XComponentContext > m_xContext;
-+ css::uno::Reference< css::frame::XModel > mxModel;
-+protected:
-+ virtual css::uno::Reference< css::frame::XModel > getModel() { return mxModel; }
-+ ScVbaWorkbook( css::uno::Reference< css::uno::XComponentContext >& xContext) : m_xContext( xContext ){}
-+public:
-+ ScVbaWorkbook( css::uno::Reference< css::uno::XComponentContext >& xContext,
-+ css::uno::Reference< css::frame::XModel > xModel ) :
-+ mxModel( xModel ), m_xContext( xContext ){}
-+ virtual ~ScVbaWorkbook() {}
-+
-+ // Attributes
-+ virtual ::rtl::OUString SAL_CALL getName() throw (css::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getPath() throw (css::uno::RuntimeException);
-+ virtual ::rtl::OUString SAL_CALL getFullName() throw (css::uno::RuntimeException);
-+ virtual ::sal_Bool SAL_CALL getProtectStructure() throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XWorksheet > SAL_CALL getActiveSheet() throw (css::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL getSaved() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL setSaved( sal_Bool bSave ) throw (css::uno::RuntimeException);
-+
-+ // Methods
-+ virtual css::uno::Any Worksheets( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL Close( const css::uno::Any &bSaveChanges,
-+ const css::uno::Any &aFileName,
-+ const css::uno::Any &bRouteWorkbook ) throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL Protect( const css::uno::Any & aPassword ) throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL Unprotect( const css::uno::Any &aPassword ) throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL Save() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL Activate() throw (css::uno::RuntimeException);
-+};
-+
-+#endif /* SC_VBA_WORKBOOK_HXX */
diff --git a/patches/vba/sc-source-ui-vba-vbaworkbooks-cxx.diff b/patches/vba/sc-source-ui-vba-vbaworkbooks-cxx.diff
deleted file mode 100644
index fe6bbf44e..000000000
--- a/patches/vba/sc-source-ui-vba-vbaworkbooks-cxx.diff
+++ /dev/null
@@ -1,294 +0,0 @@
---- /dev/null 2005-11-27 19:42:11.860354750 +0000
-+++ sc/source/ui/vba/vbaworkbooks.cxx 2005-11-30 13:44:25.000000000 +0000
-@@ -0,0 +1,291 @@
-+#include <comphelper/processfactory.hxx>
-+
-+#include <cppuhelper/implbase1.hxx>
-+#include <cppuhelper/implbase3.hxx>
-+
-+#include <com/sun/star/frame/XDesktop.hpp>
-+#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
-+#include <com/sun/star/container/XEnumerationAccess.hpp>
-+#include <com/sun/star/frame/XComponentLoader.hpp>
-+#include <com/sun/star/lang/XComponent.hpp>
-+#include <com/sun/star/frame/XModel.hpp>
-+#include <com/sun/star/frame/XFrame.hpp>
-+#include <com/sun/star/frame/FrameSearchFlag.hpp>
-+#include <com/sun/star/util/XModifiable.hpp>
-+#include <com/sun/star/frame/XStorable.hpp>
-+#include <com/sun/star/lang/DisposedException.hpp>
-+#include <com/sun/star/beans/PropertyVetoException.hpp>
-+#include <com/sun/star/util/XCloseable.hpp>
-+#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
-+
-+#include <sfx2/objsh.hxx>
-+#include <tools/urlobj.hxx>
-+
-+#include "vbaglobals.hxx"
-+#include "vbaworkbook.hxx"
-+#include "vbaworkbooks.hxx"
-+#include "vbahelper.hxx"
-+
-+#include <hash_map>
-+
-+using namespace ::org::openoffice;
-+using namespace ::com::sun::star;
-+
-+
-+typedef std::hash_map< rtl::OUString,
-+sal_Int32, ::rtl::OUStringHash,
-+::std::equal_to< ::rtl::OUString > > NameIndexHash;
-+
-+typedef std::vector < uno::Reference< sheet::XSpreadsheetDocument > > WorkBooks;
-+
-+typedef ::cppu::WeakImplHelper1< container::XEnumeration > SpreadSheetDocEnumImpl_BASE;
-+
-+static uno::Any
-+getWorkbook( uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< sheet::XSpreadsheetDocument > &xDoc )
-+{
-+ // FIXME: fine as long as ScVbaWorkbook is stateless ...
-+ uno::Reference< frame::XModel > xModel( xDoc, uno::UNO_QUERY );
-+ if( !xModel.is() )
-+ return uno::Any();
-+
-+ ScVbaWorkbook *pWb = new ScVbaWorkbook( xContext, xModel );
-+ return uno::Any( uno::Reference< vba::XWorkbook > (pWb) );
-+}
-+
-+
-+// #FIXME clearly this is a candidate for some sort of helper base class as
-+// this is a copy of SelectedSheetsEnum ( vbawindow.cxx )
-+
-+class SpreadSheetDocEnumImpl : public SpreadSheetDocEnumImpl_BASE
-+{
-+ uno::Reference< uno::XComponentContext > m_xContext;
-+ WorkBooks m_books;
-+ WorkBooks::const_iterator m_it;
-+
-+public:
-+ SpreadSheetDocEnumImpl( const uno::Reference< uno::XComponentContext >& xContext, const WorkBooks& books ) throw ( uno::RuntimeException ) : m_xContext( xContext ), m_books( books )
-+ {
-+ m_it = m_books.begin();
-+ }
-+ SpreadSheetDocEnumImpl( const uno::Reference< uno::XComponentContext >& xContext ) throw ( uno::RuntimeException ) : m_xContext( xContext )
-+ {
-+ uno::Reference< lang::XMultiComponentFactory > xSMgr(
-+ m_xContext->getServiceManager(), uno::UNO_QUERY_THROW );
-+
-+ uno::Reference< frame::XDesktop > xDesktop
-+ (xSMgr->createInstanceWithContext(::rtl::OUString::createFromAscii("com.sun.star.frame.Desktop"), m_xContext), uno::UNO_QUERY_THROW );
-+ uno::Reference< container::XEnumeration > mxComponents = xDesktop->getComponents()->createEnumeration();
-+ sal_Int32 nIndex=0;
-+ while( mxComponents->hasMoreElements() )
-+ {
-+ uno::Reference< sheet::XSpreadsheetDocument > xNext( mxComponents->nextElement(), uno::UNO_QUERY );
-+ if ( xNext.is() )
-+ m_books.push_back( xNext );
-+ }
-+ m_it = m_books.begin();
-+ }
-+ // XEnumeration
-+ virtual ::sal_Bool SAL_CALL hasMoreElements( ) throw (uno::RuntimeException)
-+ {
-+ return m_it != m_books.end();
-+ }
-+
-+ virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
-+ {
-+ if ( !hasMoreElements() )
-+ {
-+ throw container::NoSuchElementException();
-+ }
-+ return makeAny( *(m_it++) );
-+ }
-+};
-+
-+class WorkBookEnumImpl : public EnumerationHelperImpl
-+{
-+public:
-+ WorkBookEnumImpl( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XEnumeration >& xEnumeration ) throw ( uno::RuntimeException ) : EnumerationHelperImpl( xContext, xEnumeration ){}
-+
-+ virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
-+ {
-+ uno::Reference< sheet::XSpreadsheetDocument > xDoc( m_xEnumeration->nextElement(), uno::UNO_QUERY_THROW );
-+ return getWorkbook( m_xContext, xDoc );
-+ }
-+
-+};
-+
-+// #FIXME clearly this is also a candidate for some sort of helper base class as
-+// a very similar one is used in vbawindow ( SelectedSheetsEnumAccess )
-+// Maybe a template base class that does all of the operations on the hashmap
-+// and vector only, and the sub-class does everything else
-+// => ctor, createEnumeration & factory method need be defined ( to be called
-+// by getByIndex, getByName )
-+typedef ::cppu::WeakImplHelper3< container::XEnumerationAccess
-+ , com::sun::star::container::XIndexAccess
-+ , com::sun::star::container::XNameAccess
-+ > WorkBooksAccessImpl_BASE;
-+
-+class WorkBooksAccessImpl : public WorkBooksAccessImpl_BASE
-+{
-+ uno::Reference< uno::XComponentContext > m_xContext;
-+ WorkBooks m_books;
-+ NameIndexHash namesToIndices;
-+public:
-+ WorkBooksAccessImpl( const uno::Reference< uno::XComponentContext >& xContext ):m_xContext( xContext )
-+ {
-+ uno::Reference< container::XEnumeration > xEnum = new SpreadSheetDocEnumImpl( m_xContext );
-+ sal_Int32 nIndex=0;
-+ while( xEnum->hasMoreElements() )
-+ {
-+ uno::Reference< sheet::XSpreadsheetDocument > xNext( xEnum->nextElement(), uno::UNO_QUERY );
-+ if ( xNext.is() )
-+ {
-+ m_books.push_back( xNext );
-+ uno::Reference< frame::XModel > xModel( xNext, uno::UNO_QUERY_THROW ); // that the spreadsheetdocument is a xmodel is a given
-+ INetURLObject aURL( xModel->getURL() );
-+ aURL.CutLastName();
-+ namesToIndices[ aURL.GetURLPath() ] = nIndex++;
-+ }
-+ }
-+
-+ }
-+
-+ //XEnumerationAccess
-+ virtual uno::Reference< container::XEnumeration > SAL_CALL createEnumeration( ) throw (uno::RuntimeException)
-+ {
-+ return new SpreadSheetDocEnumImpl( m_xContext, m_books );
-+ }
-+ // XIndexAccess
-+ virtual ::sal_Int32 SAL_CALL getCount( ) throw (uno::RuntimeException)
-+ {
-+ return m_books.size();
-+ }
-+ virtual uno::Any SAL_CALL getByIndex( ::sal_Int32 Index ) throw ( lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
-+ {
-+ if ( Index < 0
-+ || Index >= m_books.size() )
-+ throw lang::IndexOutOfBoundsException();
-+ return makeAny( m_books[ Index ] ); // returns xspreadsheetdoc
-+ }
-+
-+ //XElementAccess
-+ virtual uno::Type SAL_CALL getElementType( ) throw (uno::RuntimeException)
-+ {
-+ return sheet::XSpreadsheetDocument::static_type(0);
-+ }
-+
-+ virtual ::sal_Bool SAL_CALL hasElements( ) throw (uno::RuntimeException)
-+ {
-+ return (m_books.size() > 0);
-+ }
-+
-+ //XNameAccess
-+ virtual uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
-+ {
-+ NameIndexHash::const_iterator it = namesToIndices.find( aName );
-+ if ( it == namesToIndices.end() )
-+ throw container::NoSuchElementException();
-+ return makeAny( m_books[ it->second ] );
-+
-+ }
-+
-+ virtual uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames( ) throw (uno::RuntimeException)
-+ {
-+ uno::Sequence< ::rtl::OUString > names( namesToIndices.size() );
-+ ::rtl::OUString* pString = names.getArray();
-+ NameIndexHash::const_iterator it = namesToIndices.begin();
-+ NameIndexHash::const_iterator it_end = namesToIndices.end();
-+ for ( ; it != it_end; ++it, ++pString )
-+ *pString = it->first;
-+ return names;
-+ }
-+
-+ virtual ::sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (uno::RuntimeException)
-+ {
-+ NameIndexHash::const_iterator it = namesToIndices.find( aName );
-+ return (it != namesToIndices.end());
-+ }
-+
-+};
-+
-+ScVbaWorkbooks::ScVbaWorkbooks( const uno::Reference< css::uno::XComponentContext >& xContext ) : ScVbaWorkbooks_BASE( xContext, uno::Reference< container::XIndexAccess >( new WorkBooksAccessImpl( xContext ) ) )
-+{
-+}
-+// XEnumerationAccess
-+uno::Type
-+ScVbaWorkbooks::getElementType() throw (uno::RuntimeException)
-+{
-+ return vba::XWorkbook::static_type(0);
-+}
-+uno::Reference< container::XEnumeration >
-+ScVbaWorkbooks::createEnumeration() throw (uno::RuntimeException)
-+{
-+ return new WorkBookEnumImpl( m_xContext, uno::Reference< container::XEnumeration >( new SpreadSheetDocEnumImpl(m_xContext) ) );
-+}
-+
-+uno::Any
-+ScVbaWorkbooks::createCollectionObject( const css::uno::Any& aSource )
-+{
-+ uno::Reference< sheet::XSpreadsheetDocument > xDoc( aSource, uno::UNO_QUERY );
-+ return getWorkbook( m_xContext, xDoc );
-+}
-+
-+
-+uno::Any SAL_CALL
-+ScVbaWorkbooks::Add() throw (uno::RuntimeException)
-+{
-+ uno::Reference< lang::XMultiComponentFactory > xSMgr(
-+ m_xContext->getServiceManager(), uno::UNO_QUERY_THROW );
-+
-+ uno::Reference< frame::XComponentLoader > xLoader(
-+ xSMgr->createInstanceWithContext(
-+ ::rtl::OUString::createFromAscii("com.sun.star.frame.Desktop"),
-+ m_xContext), uno::UNO_QUERY_THROW );
-+ uno::Reference< lang::XComponent > xComponent = xLoader->loadComponentFromURL(
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("private:factory/scalc") ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("_blank") ), 0,
-+ uno::Sequence< beans::PropertyValue >(0) );
-+ uno::Reference <sheet::XSpreadsheetDocument> xSpreadDoc( xComponent, uno::UNO_QUERY_THROW );
-+
-+ if( xSpreadDoc.is() )
-+ return getWorkbook( m_xContext, xSpreadDoc );
-+ return uno::Any();
-+}
-+
-+void
-+ScVbaWorkbooks::Close() throw (uno::RuntimeException)
-+{
-+ uno::Reference< lang::XMultiComponentFactory > xSMgr(
-+ m_xContext->getServiceManager(), uno::UNO_QUERY_THROW );
-+ uno::Reference< frame::XModel > xModel( getCurrentDocument(), uno::UNO_QUERY_THROW );
-+ rtl::OUString url = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:CloseDoc"));
-+ dispatchRequests(xModel,url);
-+}
-+
-+uno::Any
-+ScVbaWorkbooks::Open( const uno::Any &aFileName ) throw (uno::RuntimeException)
-+{
-+ rtl::OUString aURL(rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("file://") ));
-+ rtl::OUString aTempName;
-+ aFileName >>= aTempName;
-+ aURL += aTempName;
-+
-+ uno::Reference< lang::XMultiComponentFactory > xSMgr(
-+ m_xContext->getServiceManager(), uno::UNO_QUERY_THROW );
-+
-+ uno::Reference< frame::XDesktop > xDesktop
-+ (xSMgr->createInstanceWithContext(::rtl::OUString::createFromAscii("com.sun.star.frame.Desktop") , m_xContext),
-+ uno::UNO_QUERY_THROW );
-+ uno::Reference< frame::XComponentLoader > xLoader(
-+ xSMgr->createInstanceWithContext(
-+ ::rtl::OUString::createFromAscii("com.sun.star.frame.Desktop"),
-+ m_xContext),
-+ uno::UNO_QUERY_THROW );
-+ uno::Reference< lang::XComponent > xComponent = xLoader->loadComponentFromURL( aURL,
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("_default") ),
-+ frame::FrameSearchFlag::CREATE,
-+ uno::Sequence< beans::PropertyValue >(0));
-+ uno::Reference <sheet::XSpreadsheetDocument> xSpreadDoc( xComponent, uno::UNO_QUERY_THROW );
-+ return getWorkbook( m_xContext, xSpreadDoc );
-+}
-+
-+
diff --git a/patches/vba/sc-source-ui-vba-vbaworkbooks-hxx.diff b/patches/vba/sc-source-ui-vba-vbaworkbooks-hxx.diff
deleted file mode 100644
index 5714c0434..000000000
--- a/patches/vba/sc-source-ui-vba-vbaworkbooks-hxx.diff
+++ /dev/null
@@ -1,51 +0,0 @@
---- /dev/null 2005-11-27 19:42:11.860354750 +0000
-+++ sc/source/ui/vba/vbaworkbooks.hxx 2005-11-30 12:04:32.000000000 +0000
-@@ -0,0 +1,48 @@
-+#ifndef SC_VBA_WORKBOOKS_HXX
-+#define SC_VBA_WORKBOOKS_HXX
-+
-+
-+#include "vbacollectionimpl.hxx"
-+#include <org/openoffice/vba/XGlobals.hpp>
-+#include <org/openoffice/vba/XWorkbooks.hpp>
-+#include <com/sun/star/container/XEnumerationAccess.hpp>
-+#include "vbahelper.hxx"
-+
-+
-+class ScModelObj;
-+
-+typedef ::cppu::ImplInheritanceHelper1< ScVbaCollectionBaseImpl, oo::vba::XWorkbooks > ScVbaWorkbooks_BASE;
-+
-+class ScVbaWorkbooks : public ScVbaWorkbooks_BASE
-+{
-+private:
-+ css::uno::Reference< oo::vba::XGlobals > getGlobals() throw (css::uno::RuntimeException);
-+
-+public:
-+ //ScVbaWorkbooks( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::container::XIndexAccess >& xIndexAccess );
-+ ScVbaWorkbooks( const css::uno::Reference< css::uno::XComponentContext >& xContext );
-+ virtual ~ScVbaWorkbooks() {}
-+
-+ // XEnumerationAccess
-+ virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException);
-+
-+ // ScVbaCollectionBaseImpl
-+ virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource );
-+
-+ // XWorkbooks
-+ virtual css::uno::Any SAL_CALL Add() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL Close( ) throw (css::uno::RuntimeException);
-+ virtual css::uno::Any SAL_CALL Open(const css::uno::Any &aFileName) throw (css::uno::RuntimeException);
-+
-+// delete these
-+ //virtual ::sal_Int32 SAL_CALL getCount() throw (css::uno::RuntimeException);
-+ //virtual css::uno::Any SAL_CALL getParent() throw (css::uno::RuntimeException);
-+ //virtual ::sal_Int32 SAL_CALL getCreator() throw (css::uno::RuntimeException);
-+ //virtual css::uno::Reference< oo::vba::XApplication > SAL_CALL getApplication() throw (css::uno::RuntimeException);
-+
-+ //virtual css::uno::Any SAL_CALL Item( const css::uno::Any& Index ) throw (css::uno::RuntimeException);
-+
-+};
-+
-+#endif /* SC_VBA_WORKBOOKS_HXX */
diff --git a/patches/vba/sc-source-ui-vba-vbaworksheet-cxx.diff b/patches/vba/sc-source-ui-vba-vbaworksheet-cxx.diff
deleted file mode 100644
index cbeb31881..000000000
--- a/patches/vba/sc-source-ui-vba-vbaworksheet-cxx.diff
+++ /dev/null
@@ -1,541 +0,0 @@
---- /dev/null 2006-01-03 09:47:36.312320500 +0000
-+++ sc/source/ui/vba/vbaworksheet.cxx 2006-01-05 12:05:19.000000000 +0000
-@@ -0,0 +1,538 @@
-+#include <cppuhelper/queryinterface.hxx>
-+
-+#include <com/sun/star/beans/XPropertySet.hpp>
-+#include <com/sun/star/container/XNamed.hpp>
-+#include <com/sun/star/util/XProtectable.hpp>
-+#include <com/sun/star/table/XCellRange.hpp>
-+#include <com/sun/star/sheet/XSpreadsheetView.hpp>
-+#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
-+#include <com/sun/star/sheet/XCalculatable.hpp>
-+#include <com/sun/star/sheet/XCellRangeAddressable.hpp>
-+#include <com/sun/star/sheet/XSheetCellRange.hpp>
-+#include <com/sun/star/sheet/XSheetCellCursor.hpp>
-+#include <com/sun/star/sheet/XUsedAreaCursor.hpp>
-+#include <com/sun/star/sheet/XSpreadsheets.hpp>
-+#include <com/sun/star/sheet/XSheetPastable.hpp>
-+#include <com/sun/star/sheet/XCellAddressable.hpp>
-+#include <com/sun/star/sheet/XSheetOutline.hpp>
-+#include <com/sun/star/sheet/XDataPilotTablesSupplier.hpp>
-+#include <cppuhelper/bootstrap.hxx>
-+#include <com/sun/star/util/XURLTransformer.hpp>
-+#include <com/sun/star/frame/XDispatchProvider.hpp>
-+#include <com/sun/star/frame/XComponentLoader.hpp>
-+#include <com/sun/star/table/XColumnRowRange.hpp>
-+#include <com/sun/star/table/XTableChartsSupplier.hpp>
-+#include <tools/string.hxx>
-+
-+#include "vbaoutline.hxx"
-+#include "vbarange.hxx"
-+#include "vbaworksheet.hxx"
-+#include "vbachartobjects.hxx"
-+#include "vbapivottables.hxx"
-+
-+#define STANDARDWIDTH 2267
-+#define STANDARDHEIGHT 427
-+#define DOESNOTEXIST -1
-+using namespace com::sun::star;
-+using namespace org::openoffice;
-+static sal_Int16
-+nameExists( uno::Reference <sheet::XSpreadsheetDocument>& xSpreadDoc, ::rtl::OUString & name) throw ( lang::IllegalArgumentException )
-+{
-+ if (!xSpreadDoc.is())
-+ throw lang::IllegalArgumentException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "nameExists() xSpreadDoc is null" ) ), uno::Reference< uno::XInterface >(), 1 );
-+ uno::Reference <sheet::XSpreadsheets> xSheets = xSpreadDoc->getSheets();
-+ uno::Reference <container::XIndexAccess> xIndex( xSheets, uno::UNO_QUERY );
-+ if ( xIndex.is() )
-+ {
-+ sal_Int32 nCount = xIndex->getCount();
-+ for (sal_Int32 i=0; i < nCount; i++)
-+ {
-+ uno::Reference< sheet::XSpreadsheet > xSheet(xIndex->getByIndex(i), uno::UNO_QUERY);
-+ uno::Reference< container::XNamed > xNamed( xSheet, uno::UNO_QUERY_THROW );
-+ if (xNamed->getName() == name)
-+ {
-+ return i;
-+ }
-+ }
-+ }
-+ return DOESNOTEXIST;
-+}
-+
-+static void getNewSpreadsheetName (rtl::OUString &aNewName, rtl::OUString aOldName, uno::Reference <sheet::XSpreadsheetDocument>& xSpreadDoc )
-+{
-+ if (!xSpreadDoc.is())
-+ throw lang::IllegalArgumentException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getNewSpreadsheetName() xSpreadDoc is null" ) ), uno::Reference< uno::XInterface >(), 1 );
-+ static rtl::OUString aUnderScre( RTL_CONSTASCII_USTRINGPARAM( "_" ) );
-+ int currentNum =2;
-+ aNewName = aOldName + aUnderScre+
-+ String::CreateFromInt32(currentNum) ;
-+ while ( nameExists(xSpreadDoc,aNewName) != DOESNOTEXIST )
-+ {
-+ aNewName = aOldName + aUnderScre +
-+ String::CreateFromInt32(++currentNum) ;
-+ }
-+}
-+
-+static void removeAllSheets( uno::Reference <sheet::XSpreadsheetDocument>& xSpreadDoc, rtl::OUString aSheetName)
-+{
-+ if (!xSpreadDoc.is())
-+ throw lang::IllegalArgumentException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "removeAllSheets() xSpreadDoc is null" ) ), uno::Reference< uno::XInterface >(), 1 );
-+ uno::Reference<sheet::XSpreadsheets> xSheets = xSpreadDoc->getSheets();
-+ uno::Reference <container::XIndexAccess> xIndex( xSheets, uno::UNO_QUERY );
-+
-+ if ( xIndex.is() )
-+ {
-+ uno::Reference<container::XNameContainer> xNameContainer(xSheets,uno::UNO_QUERY_THROW);
-+ for (sal_Int32 i = xIndex->getCount() -1; i>= 1; i--)
-+ {
-+ uno::Reference< sheet::XSpreadsheet > xSheet(xIndex->getByIndex(i), uno::UNO_QUERY);
-+ uno::Reference< container::XNamed > xNamed( xSheet, uno::UNO_QUERY_THROW );
-+ if (xNamed.is())
-+ {
-+ xNameContainer->removeByName(xNamed->getName());
-+ }
-+ }
-+
-+ uno::Reference< sheet::XSpreadsheet > xSheet(xIndex->getByIndex(0), uno::UNO_QUERY); uno::Reference< container::XNamed > xNamed( xSheet, uno::UNO_QUERY_THROW );
-+ if (xNamed.is())
-+ {
-+ xNamed->setName(aSheetName);
-+ }
-+ }
-+}
-+
-+static uno::Reference<frame::XModel>
-+openNewDoc(rtl::OUString aSheetName )
-+{
-+ uno::Reference<frame::XModel> xModel;
-+ try
-+ {
-+ uno::Reference<uno::XComponentContext > xContext( ::cppu::defaultBootstrap_InitialComponentContext());
-+ if ( !xContext.is() )
-+ {
-+ return xModel;
-+ }
-+ uno::Reference<lang::XMultiComponentFactory > xServiceManager(
-+ xContext->getServiceManager() );
-+ if ( !xServiceManager.is() )
-+ {
-+ return xModel;
-+ }
-+ uno::Reference <frame::XComponentLoader > xComponentLoader(
-+ xServiceManager->createInstanceWithContext(
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.frame.Desktop" ) ),
-+ xContext ), uno::UNO_QUERY_THROW );
-+
-+ uno::Reference<lang::XComponent > xComponent( xComponentLoader->loadComponentFromURL(
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "private:factory/scalc" ) ),
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_blank" ) ), 0,
-+ uno::Sequence < ::com::sun::star::beans::PropertyValue >() ) );
-+ uno::Reference <sheet::XSpreadsheetDocument> xSpreadDoc( xComponent, uno::UNO_QUERY_THROW );
-+ if ( xSpreadDoc.is() )
-+ {
-+ removeAllSheets(xSpreadDoc,aSheetName);
-+ }
-+ uno::Reference<frame::XModel> xModel(xSpreadDoc,uno::UNO_QUERY_THROW);
-+ return xModel;
-+ }
-+ catch ( ::cppu::BootstrapException & e )
-+ {
-+ return xModel;
-+ }
-+ catch ( uno::Exception & e )
-+ {
-+ return xModel;
-+ }
-+}
-+
-+
-+ScVbaWorksheet::ScVbaWorksheet( const uno::Reference< uno::XComponentContext >& xContext ): m_xContext( xContext )
-+{
-+}
-+ScVbaWorksheet::ScVbaWorksheet(const uno::Reference< uno::XComponentContext >& xContext,
-+ const uno::Reference< sheet::XSpreadsheet >& xSheet,
-+ const uno::Reference< frame::XModel >& xModel ) throw (uno::RuntimeException) : m_xContext(xContext), mxSheet( xSheet ), mxModel(xModel)
-+{
-+}
-+
-+::rtl::OUString
-+ScVbaWorksheet::getName() throw (uno::RuntimeException)
-+{
-+ uno::Reference< container::XNamed > xNamed( getSheet(), uno::UNO_QUERY_THROW );
-+ return xNamed->getName();
-+}
-+
-+void
-+ScVbaWorksheet::setName(const ::rtl::OUString &rName ) throw (uno::RuntimeException)
-+{
-+ uno::Reference< container::XNamed > xNamed( getSheet(), uno::UNO_QUERY_THROW );
-+ xNamed->setName( rName );
-+}
-+
-+sal_Bool
-+ScVbaWorksheet::getVisible() throw (uno::RuntimeException)
-+{
-+ uno::Reference< beans::XPropertySet > xProps( getSheet(), uno::UNO_QUERY_THROW );
-+ uno::Any aValue = xProps->getPropertyValue
-+ (rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsVisible" ) ) );
-+ sal_Bool bRet = false;
-+ aValue >>= bRet;
-+ return bRet;
-+}
-+
-+void
-+ScVbaWorksheet::setVisible( sal_Bool bVisible ) throw (uno::RuntimeException)
-+{
-+ uno::Reference< beans::XPropertySet > xProps( getSheet(), uno::UNO_QUERY_THROW );
-+ uno::Any aValue( bVisible );
-+ xProps->setPropertyValue
-+ (rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsVisible" ) ), aValue);
-+}
-+
-+uno::Reference< vba::XRange >
-+ScVbaWorksheet::getUsedRange() throw (uno::RuntimeException)
-+{
-+ uno::Reference< sheet::XSheetCellRange > xSheetCellRange(getSheet(), uno::UNO_QUERY_THROW );
-+ uno::Reference< sheet::XSheetCellCursor > xSheetCellCursor( getSheet()->createCursorByRange( xSheetCellRange ), uno::UNO_QUERY_THROW );
-+ uno::Reference<sheet::XUsedAreaCursor> xUsedCursor(xSheetCellCursor,uno::UNO_QUERY_THROW);
-+ xUsedCursor->gotoStartOfUsedArea( false );
-+ xUsedCursor->gotoEndOfUsedArea( true );
-+ uno::Reference< table::XCellRange > xRange( xSheetCellCursor, uno::UNO_QUERY);
-+ return new ScVbaRange(m_xContext, xRange);
-+}
-+
-+uno::Reference< vba::XOutline >
-+ScVbaWorksheet::Outline( ) throw (uno::RuntimeException)
-+{
-+ uno::Reference<sheet::XSheetOutline> xOutline(getSheet(),uno::UNO_QUERY_THROW);
-+ return uno::Reference<vba::XOutline> (new ScVbaOutline(m_xContext, xOutline));
-+}
-+
-+sal_Int32
-+ScVbaWorksheet::getStandardWidth() throw (uno::RuntimeException)
-+{
-+ return STANDARDWIDTH ;
-+}
-+
-+sal_Int32
-+ScVbaWorksheet::getStandardHeight() throw (uno::RuntimeException)
-+{
-+ return STANDARDHEIGHT;
-+}
-+
-+sal_Bool
-+ScVbaWorksheet::getProtectionMode() throw (uno::RuntimeException)
-+{
-+ return false;
-+}
-+
-+sal_Bool
-+ScVbaWorksheet::getProtectContents()throw (uno::RuntimeException)
-+{
-+ uno::Reference<util::XProtectable > xProtectable(getSheet(), uno::UNO_QUERY_THROW);
-+ return xProtectable->isProtected();
-+}
-+
-+sal_Bool
-+ScVbaWorksheet::getProtectDrawingObjects() throw (uno::RuntimeException)
-+{
-+ return false;
-+}
-+
-+void
-+ScVbaWorksheet::Activate() throw (uno::RuntimeException)
-+{
-+ uno::Reference< sheet::XSpreadsheetView > xSpreadsheet(
-+ getModel()->getCurrentController(), uno::UNO_QUERY_THROW );
-+ xSpreadsheet->setActiveSheet(getSheet());
-+}
-+
-+void
-+ScVbaWorksheet::Select() throw (uno::RuntimeException)
-+{
-+ Activate();
-+}
-+
-+void
-+ScVbaWorksheet::Move( const uno::Any& Before, const uno::Any& After ) throw (uno::RuntimeException)
-+{
-+ rtl::OUString aSheetName;
-+ uno::Reference<vba::XWorksheet> xSheet;
-+ rtl::OUString aCurrSheetName =getName();
-+
-+ if (!(Before >>= xSheet) && !(After >>=xSheet)&& !(Before.hasValue()) && !(After.hasValue()))
-+ {
-+ uno::Reference< sheet::XSheetCellCursor > xSheetCellCursor = getSheet()->createCursor( );
-+ uno::Reference<sheet::XUsedAreaCursor> xUsedCursor(xSheetCellCursor,uno::UNO_QUERY_THROW);
-+ uno::Reference< table::XCellRange > xRange1( xSheetCellCursor, uno::UNO_QUERY);
-+ uno::Reference<vba::XRange> xRange = new ScVbaRange(m_xContext, xRange1);
-+ if (xRange.is())
-+ xRange->Select();
-+ implnCopy();
-+ uno::Reference<frame::XModel> xModel = openNewDoc(aCurrSheetName);
-+ if (xModel.is())
-+ {
-+ implnPaste();
-+ Delete();
-+ }
-+ return ;
-+ }
-+
-+ uno::Reference <sheet::XSpreadsheetDocument> xSpreadDoc( getModel(), uno::UNO_QUERY_THROW );
-+ sal_Int32 nDest = DOESNOTEXIST;
-+ sal_Bool bAfter = false;
-+ if (Before >>= xSheet )
-+ {
-+ aSheetName = xSheet->getName();
-+ nDest = nameExists (xSpreadDoc, aSheetName);
-+ }
-+ else if (After >>= xSheet)
-+ {
-+ aSheetName = xSheet->getName();
-+ nDest = nameExists (xSpreadDoc, aSheetName);
-+ bAfter =true;
-+ }
-+
-+ if (nDest != DOESNOTEXIST)
-+ {
-+ if (bAfter) nDest++;
-+ uno::Reference<sheet::XSpreadsheets> xSheets = xSpreadDoc->getSheets();
-+ xSheets->moveByName(aCurrSheetName,nDest);
-+ }
-+}
-+
-+void
-+ScVbaWorksheet::Copy( const uno::Any& Before, const uno::Any& After ) throw (uno::RuntimeException)
-+{
-+ rtl::OUString aSheetName;
-+ uno::Reference<vba::XWorksheet> xSheet;
-+ rtl::OUString aCurrSheetName =getName();
-+ if (!(Before >>= xSheet) && !(After >>=xSheet)&& !(Before.hasValue()) && !(After.hasValue()))
-+ {
-+ uno::Reference< sheet::XSheetCellCursor > xSheetCellCursor = getSheet()->createCursor( );
-+ uno::Reference<sheet::XUsedAreaCursor> xUsedCursor(xSheetCellCursor,uno::UNO_QUERY_THROW);
-+ uno::Reference< table::XCellRange > xRange1( xSheetCellCursor, uno::UNO_QUERY);
-+ uno::Reference<vba::XRange> xRange = new ScVbaRange(m_xContext, xRange1);
-+ if (xRange.is())
-+ xRange->Select();
-+ implnCopy();
-+ uno::Reference<frame::XModel> xModel = openNewDoc(aCurrSheetName);
-+ if (xModel.is())
-+ {
-+ implnPaste();
-+ }
-+ return;
-+ }
-+
-+ uno::Reference <sheet::XSpreadsheetDocument> xSpreadDoc( getModel(), uno::UNO_QUERY );
-+ sal_Int32 nDest = DOESNOTEXIST;
-+ sal_Bool bAfter = false;
-+ if (Before >>= xSheet )
-+ {
-+ aSheetName = xSheet->getName();
-+ nDest = nameExists (xSpreadDoc, aSheetName);
-+ }
-+ else if (After >>= xSheet)
-+ {
-+ aSheetName = xSheet->getName();
-+ nDest = nameExists (xSpreadDoc, aSheetName);
-+ bAfter =true;
-+ }
-+
-+ if (nDest != DOESNOTEXIST)
-+ {
-+ if(bAfter) nDest++;
-+ uno::Reference<sheet::XSpreadsheets> xSheets = xSpreadDoc->getSheets();
-+ getNewSpreadsheetName(aSheetName,aCurrSheetName,xSpreadDoc);
-+ xSheets->copyByName(aCurrSheetName,aSheetName,nDest);
-+ }
-+}
-+
-+void
-+ScVbaWorksheet::Paste( const uno::Any& Destination, const uno::Any& Link ) throw (uno::RuntimeException)
-+{
-+ uno::Reference<vba::XRange> xRange( Destination, uno::UNO_QUERY );
-+ if ( xRange.is() )
-+ xRange->Select();
-+ implnPaste();
-+}
-+
-+void
-+ScVbaWorksheet::Delete() throw (uno::RuntimeException)
-+{
-+ uno::Reference <sheet::XSpreadsheetDocument> xSpreadDoc( getModel(), uno::UNO_QUERY_THROW );
-+ rtl::OUString aSheetName = getName();
-+ if ( xSpreadDoc.is() )
-+ {
-+ if (!nameExists(xSpreadDoc, aSheetName))
-+ {
-+ return;
-+ }
-+ uno::Reference<sheet::XSpreadsheets> xSheets = xSpreadDoc->getSheets();
-+ uno::Reference<container::XNameContainer> xNameContainer(xSheets,uno::UNO_QUERY_THROW);
-+ xNameContainer->removeByName(aSheetName);
-+ }
-+}
-+
-+uno::Reference< vba::XWorksheet >
-+ScVbaWorksheet::getSheetAtOffset(int offset) throw (uno::RuntimeException)
-+{
-+ uno::Reference <sheet::XSpreadsheetDocument> xSpreadDoc( getModel(), uno::UNO_QUERY_THROW );
-+ uno::Reference <sheet::XSpreadsheets> xSheets( xSpreadDoc->getSheets(), uno::UNO_QUERY_THROW );
-+ uno::Reference <container::XIndexAccess> xIndex( xSheets, uno::UNO_QUERY_THROW );
-+
-+ rtl::OUString aName = getName();
-+ sal_Int16 nIdx = nameExists (xSpreadDoc, aName);
-+ if (nIdx >= 0)
-+ nIdx += offset;
-+
-+ if (nIdx < 0 || nIdx >= xIndex->getCount()) // TESTME - throw ?
-+ return uno::Reference< vba::XWorksheet >();
-+ else
-+ {
-+ uno::Reference< sheet::XSpreadsheet > xSheet(xIndex->getByIndex(nIdx), uno::UNO_QUERY_THROW);
-+ return new ScVbaWorksheet (m_xContext, xSheet, getModel());
-+ }
-+}
-+
-+uno::Reference< vba::XWorksheet >
-+ScVbaWorksheet::getNext() throw (uno::RuntimeException)
-+{
-+ return getSheetAtOffset(1);
-+}
-+
-+uno::Reference< vba::XWorksheet >
-+ScVbaWorksheet::getPrevious() throw (uno::RuntimeException)
-+{
-+ return getSheetAtOffset(-1);
-+}
-+
-+void
-+ScVbaWorksheet::Protect( const uno::Any& Password, const uno::Any& DrawingObjects, const uno::Any& Contents, const uno::Any& Scenarios, const uno::Any& UserInterfaceOnly ) throw (uno::RuntimeException)
-+{
-+ uno::Reference<util::XProtectable > xProtectable(getSheet(), uno::UNO_QUERY_THROW);
-+ ::rtl::OUString aPasswd;
-+ Password >>= aPasswd;
-+ xProtectable->protect( aPasswd );
-+}
-+
-+void
-+ScVbaWorksheet::Unprotect( const uno::Any& Password ) throw (uno::RuntimeException)
-+{
-+ uno::Reference<util::XProtectable > xProtectable(getSheet(), uno::UNO_QUERY_THROW);
-+ ::rtl::OUString aPasswd;
-+ Password >>= aPasswd;
-+ xProtectable->unprotect( aPasswd );
-+}
-+
-+void
-+ScVbaWorksheet::Calculate() throw (uno::RuntimeException)
-+{
-+ uno::Reference <sheet::XCalculatable> xReCalculate(getModel(), uno::UNO_QUERY_THROW);
-+ xReCalculate->calculate();
-+}
-+
-+uno::Reference< vba::XRange >
-+ScVbaWorksheet::Range( const ::uno::Any &rRange ) throw (uno::RuntimeException)
-+{
-+ rtl::OUString aStringRange;
-+ rRange >>= aStringRange;
-+ uno::Reference< table::XCellRange > xRanges( getSheet(), uno::UNO_QUERY_THROW );
-+ OSL_TRACE("Trying to cell range by %s", rtl::OUStringToOString(
-+ aStringRange, RTL_TEXTENCODING_UTF8 ).getStr() );
-+ try
-+ {
-+ uno::Reference< table::XCellRange > xRange = xRanges->getCellRangeByName( aStringRange );
-+ }
-+ catch ( uno::Exception& e )
-+ {
-+ OSL_TRACE("** Caught Exception with msg: %s",
-+ rtl::OUStringToOString( e.Message,
-+ RTL_TEXTENCODING_UTF8 ).getStr() );
-+ }
-+ return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, xRanges->getCellRangeByName( aStringRange ) ) );
-+}
-+
-+void
-+ScVbaWorksheet::CheckSpelling( const uno::Any& CustomDictionary,const uno::Any& IgnoreUppercase,const uno::Any& AlwaysSuggest, const uno::Any& SpellingLang ) throw (uno::RuntimeException)
-+{
-+ rtl::OUString url = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:SpellDialog"));
-+ uno::Reference< frame::XModel > xModel( getModel() );
-+ dispatchRequests(xModel,url);
-+}
-+
-+uno::Reference< vba::XRange >
-+ScVbaWorksheet::getSheetRange() throw (uno::RuntimeException)
-+{
-+ uno::Reference< table::XCellRange > xRange( getSheet(),uno::UNO_QUERY_THROW );
-+ return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, xRange ) );
-+}
-+
-+// These are hacks - we prolly (somehow) need to inherit
-+// the vbarange functionality here ...
-+uno::Reference< vba::XRange >
-+ScVbaWorksheet::Cells( const ::uno::Any &nRow, const ::uno::Any &nCol )
-+ throw (uno::RuntimeException)
-+{
-+ return getSheetRange()->Cells( nRow, nCol );
-+}
-+
-+uno::Reference< vba::XRange >
-+ScVbaWorksheet::Rows(const uno::Any& aIndex ) throw (uno::RuntimeException)
-+{
-+ return getSheetRange()->Rows( aIndex );
-+}
-+
-+uno::Reference< vba::XRange >
-+ScVbaWorksheet::Columns( const uno::Any& aIndex ) throw (uno::RuntimeException)
-+{
-+ return getSheetRange()->Columns( aIndex );
-+}
-+
-+uno::Any SAL_CALL
-+ScVbaWorksheet::ChartObjects( const uno::Any& Index ) throw (uno::RuntimeException)
-+{
-+ if ( !mxCharts.is() )
-+ {
-+ uno::Reference< table::XTableChartsSupplier > xChartSupplier( getSheet(), uno::UNO_QUERY_THROW );
-+ uno::Reference< table::XTableCharts > xTableCharts = xChartSupplier->getCharts();
-+
-+ mxCharts = new ScVbaChartObjects( m_xContext, xTableCharts );
-+ }
-+ if ( Index.hasValue() )
-+ {
-+ uno::Reference< vba::XCollection > xColl( mxCharts, uno::UNO_QUERY_THROW );
-+ return xColl->Item( Index );
-+ }
-+ else
-+ return makeAny( mxCharts );
-+
-+}
-+
-+uno::Any SAL_CALL
-+ScVbaWorksheet::PivotTables( const uno::Any& Index ) throw (uno::RuntimeException)
-+{
-+ uno::Reference< css::sheet::XSpreadsheet > xSheet = getSheet();
-+ uno::Reference< sheet::XDataPilotTablesSupplier > xTables(xSheet, uno::UNO_QUERY_THROW ) ;
-+ uno::Reference< container::XIndexAccess > xIndexAccess( xTables->getDataPilotTables(), uno::UNO_QUERY_THROW );
-+
-+ uno::Reference< vba::XCollection > xColl( uno::Reference< vba::XPivotTables > ( new ScVbaPivotTables( m_xContext, xIndexAccess ) ), uno::UNO_QUERY_THROW );
-+ if ( Index.hasValue() )
-+ return xColl->Item( Index );
-+ return makeAny( xColl );
-+
-+
-+}
-+
-+uno::Any SAL_CALL
-+ScVbaWorksheet::Evaluate( const ::rtl::OUString& Name ) throw (uno::RuntimeException)
-+{
-+ // #TODO Evaluate allows other things to be evaluated, e.g. functions
-+ // I think ( like SIN(3) etc. ) need to investigate that
-+ // named Ranges also? e.g. [MyRange] if so need a list of named ranges
-+ if ( isRangeShortCut( Name ) )
-+ return uno::Any( Range( uno::Any( Name ) ) );
-+
-+ return uno::Any();
-+}
-+
diff --git a/patches/vba/sc-source-ui-vba-vbaworksheet-hxx.diff b/patches/vba/sc-source-ui-vba-vbaworksheet-hxx.diff
deleted file mode 100644
index 4ba58533d..000000000
--- a/patches/vba/sc-source-ui-vba-vbaworksheet-hxx.diff
+++ /dev/null
@@ -1,85 +0,0 @@
---- /dev/null 2006-01-03 09:47:36.312320500 +0000
-+++ sc/source/ui/vba/vbaworksheet.hxx 2006-01-04 18:02:31.000000000 +0000
-@@ -0,0 +1,82 @@
-+#ifndef SC_VBA_WORKSHEET_HXX
-+#define SC_VBA_WORKSHEET_HXX
-+
-+#include <cppuhelper/implbase1.hxx>
-+#include <com/sun/star/sheet/XSpreadsheet.hpp>
-+#include <org/openoffice/vba/XWorksheet.hpp>
-+#include <org/openoffice/vba/XRange.hpp>
-+#include <com/sun/star/lang/XEventListener.hpp>
-+#include <com/sun/star/uno/XComponentContext.hpp>
-+#include <com/sun/star/frame/XModel.hpp>
-+#include <org/openoffice/vba/XOutline.hpp>
-+#include <org/openoffice/vba/XChartObjects.hpp>
-+
-+#include "vbahelper.hxx"
-+
-+class ScVbaWorksheet : public ::cppu::WeakImplHelper1<oo::vba::XWorksheet>
-+{
-+ css::uno::Reference< css::uno::XComponentContext > m_xContext;
-+ css::uno::Reference< css::sheet::XSpreadsheet > mxSheet;
-+ css::uno::Reference< css::frame::XModel > mxModel;
-+ css::uno::Reference< oo::vba::XChartObjects > mxCharts;
-+
-+ css::uno::Reference< oo::vba::XWorksheet > getSheetAtOffset(int offset) throw (css::uno::RuntimeException);
-+ css::uno::Reference< oo::vba::XRange > getSheetRange() throw (css::uno::RuntimeException);
-+
-+
-+protected:
-+
-+ virtual css::uno::Reference< css::frame::XModel > getModel()
-+ { return mxModel; }
-+ virtual css::uno::Reference< css::sheet::XSpreadsheet > getSheet()
-+ { return mxSheet; }
-+ ScVbaWorksheet( const css::uno::Reference< css::uno::XComponentContext >& xContext );
-+public:
-+ ScVbaWorksheet(
-+ const css::uno::Reference< css::uno::XComponentContext >& xContext,
-+ const css::uno::Reference< css::sheet::XSpreadsheet >& xSheet,
-+ const css::uno::Reference< css::frame::XModel >& xModel )throw (css::uno::RuntimeException) ;
-+
-+ virtual ~ScVbaWorksheet() {}
-+
-+
-+ // Attributes
-+ virtual ::rtl::OUString SAL_CALL getName() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL setName( const ::rtl::OUString &rName ) throw (css::uno::RuntimeException);
-+ virtual sal_Bool getVisible() throw (css::uno::RuntimeException);
-+ virtual void setVisible( sal_Bool bVisible ) throw (css::uno::RuntimeException);
-+ virtual ::sal_Int32 SAL_CALL getStandardWidth() throw (css::uno::RuntimeException);
-+ virtual ::sal_Int32 SAL_CALL getStandardHeight() throw (css::uno::RuntimeException);
-+ virtual ::sal_Bool SAL_CALL getProtectionMode() throw (css::uno::RuntimeException);
-+ virtual ::sal_Bool SAL_CALL getProtectContents() throw (css::uno::RuntimeException);
-+ virtual ::sal_Bool SAL_CALL getProtectDrawingObjects() throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XRange > SAL_CALL getUsedRange() throw (css::uno::RuntimeException) ;
-+ virtual css::uno::Any SAL_CALL ChartObjects( const css::uno::Any& Index ) throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XOutline > SAL_CALL Outline( ) throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XWorksheet > SAL_CALL getNext() throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XWorksheet > SAL_CALL getPrevious() throw (css::uno::RuntimeException);
-+
-+ // Methods
-+ virtual void SAL_CALL Activate() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL Select() throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XRange > SAL_CALL Range( const css::uno::Any &rRange ) throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL Move( const css::uno::Any& Before, const css::uno::Any& After ) throw (css::uno::RuntimeException) ;
-+ virtual void SAL_CALL Copy( const css::uno::Any& Before, const css::uno::Any& After ) throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL Paste( const css::uno::Any& Destination, const css::uno::Any& Link ) throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL Delete( ) throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL Protect( const css::uno::Any& Password, const css::uno::Any& DrawingObjects, const css::uno::Any& Contents, const css::uno::Any& Scenarios, const css::uno::Any& UserInterfaceOnly ) throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL Unprotect( const css::uno::Any& Password ) throw (css::uno::RuntimeException);
-+
-+ virtual void SAL_CALL Calculate( ) throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL CheckSpelling( const css::uno::Any& CustomDictionary,const css::uno::Any& IgnoreUppercase,const css::uno::Any& AlwaysSuggest, const css::uno::Any& SpellingLang ) throw (css::uno::RuntimeException);
-+ // Hacks (?)
-+ virtual css::uno::Reference< oo::vba::XRange > SAL_CALL Cells( const css::uno::Any &nRow, const css::uno::Any &nCol ) throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XRange > Rows(const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< oo::vba::XRange > Columns(const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
-+
-+ virtual css::uno::Any SAL_CALL Evaluate( const ::rtl::OUString& Name ) throw (css::uno::RuntimeException);
-+ virtual css::uno::Any SAL_CALL PivotTables( const css::uno::Any& Index ) throw (css::uno::RuntimeException);
-+};
-+
-+#endif /* SC_VBA_WORKSHEET_HXX */
-+
diff --git a/patches/vba/sc-source-ui-vba-vbaworksheets-cxx.diff b/patches/vba/sc-source-ui-vba-vbaworksheets-cxx.diff
deleted file mode 100644
index 76ea547e9..000000000
--- a/patches/vba/sc-source-ui-vba-vbaworksheets-cxx.diff
+++ /dev/null
@@ -1,278 +0,0 @@
---- /dev/null 2006-01-03 09:47:36.312320500 +0000
-+++ sc/source/ui/vba/vbaworksheets.cxx 2006-01-05 12:33:58.000000000 +0000
-@@ -0,0 +1,275 @@
-+#include "vbaworksheets.hxx"
-+
-+#include <sfx2/dispatch.hxx>
-+#include <sfx2/app.hxx>
-+#include <sfx2/bindings.hxx>
-+#include <sfx2/request.hxx>
-+#include <sfx2/viewfrm.hxx>
-+#include <sfx2/itemwrapper.hxx>
-+#include <svtools/itemset.hxx>
-+#include <svtools/eitem.hxx>
-+
-+#include <comphelper/processfactory.hxx>
-+#include <cppuhelper/implbase3.hxx>
-+
-+#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
-+#include <com/sun/star/container/XEnumerationAccess.hpp>
-+#include <com/sun/star/sheet/XSpreadsheetView.hpp>
-+#include <com/sun/star/container/XNamed.hpp>
-+#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
-+#include <com/sun/star/beans/XPropertySet.hpp>
-+
-+#include <org/openoffice/vba/XApplication.hpp>
-+#include <tools/string.hxx>
-+
-+#include "vbaglobals.hxx"
-+#include "vbaworksheet.hxx"
-+#include "vbaworkbook.hxx"
-+
-+using namespace ::org::openoffice;
-+using namespace ::com::sun::star;
-+
-+
-+class SheetsEnumeration : public EnumerationHelperImpl
-+{
-+ uno::Reference< frame::XModel > m_xModel;
-+public:
-+ SheetsEnumeration( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XEnumeration >& xEnumeration, const uno::Reference< frame::XModel >& xModel ) throw ( uno::RuntimeException ) : EnumerationHelperImpl( xContext, xEnumeration ), m_xModel( xModel ) {}
-+
-+ virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
-+ {
-+ uno::Reference< sheet::XSpreadsheet > xSheet( m_xEnumeration->nextElement(), uno::UNO_QUERY_THROW );
-+ return makeAny( uno::Reference< vba::XWorksheet > ( new ScVbaWorksheet( m_xContext, xSheet, m_xModel ) ) );
-+ }
-+
-+};
-+
-+ScVbaWorksheets::ScVbaWorksheets( const uno::Reference< ::com::sun::star::uno::XComponentContext > & xContext, const uno::Reference< sheet::XSpreadsheets >& xSheets, const uno::Reference< frame::XModel >& xModel ): ScVbaWorksheets_BASE( xContext, uno::Reference< container::XIndexAccess >( xSheets, uno::UNO_QUERY ) ), mxModel( xModel ), m_xSheets( xSheets )
-+{
-+}
-+
-+ScVbaWorksheets::ScVbaWorksheets( const uno::Reference< ::com::sun::star::uno::XComponentContext > & xContext, const uno::Reference< container::XEnumerationAccess >& xEnumAccess, const uno::Reference< frame::XModel >& xModel ): ScVbaWorksheets_BASE( xContext, uno::Reference< container::XIndexAccess >( xEnumAccess, uno::UNO_QUERY ) ), mxModel(xModel)
-+{
-+}
-+
-+// XEnumerationAccess
-+uno::Type
-+ScVbaWorksheets::getElementType() throw (uno::RuntimeException)
-+{
-+ return vba::XWorksheet::static_type(0);
-+}
-+
-+uno::Reference< container::XEnumeration >
-+ScVbaWorksheets::createEnumeration() throw (uno::RuntimeException)
-+{
-+ if ( !m_xSheets.is() )
-+ {
-+ uno::Reference< container::XEnumerationAccess > xAccess( m_xIndexAccess, uno::UNO_QUERY_THROW );
-+ return xAccess->createEnumeration();
-+ }
-+ uno::Reference< container::XEnumerationAccess > xEnumAccess( m_xSheets, uno::UNO_QUERY_THROW );
-+ return new SheetsEnumeration( m_xContext, xEnumAccess->createEnumeration(), mxModel );
-+}
-+
-+uno::Any
-+ScVbaWorksheets::createCollectionObject( const css::uno::Any& aSource )
-+{
-+ uno::Reference< sheet::XSpreadsheet > xSheet( aSource, uno::UNO_QUERY );
-+ return makeAny( uno::Reference< vba::XWorksheet > ( new ScVbaWorksheet( m_xContext, xSheet, mxModel ) ) );
-+}
-+
-+// XWorksheets
-+uno::Any
-+ScVbaWorksheets::Add( const uno::Any& Before, const uno::Any& After,
-+ const uno::Any& Count, const uno::Any& Type ) throw (uno::RuntimeException)
-+{
-+ if ( isSelectedSheets() )
-+ return uno::Any(); // or should we throw?
-+
-+ rtl::OUString aStringSheet;
-+ sal_Bool bBefore(sal_True);
-+ sal_Int32 nSheetIndex = 0;
-+ sal_Int32 nNewSheets = 1, nType = 0;
-+ Count >>= nNewSheets;
-+ Type >>= nType;
-+ sal_Int32 nCount = 0;
-+ Before >>= aStringSheet;
-+ if (!aStringSheet.getLength())
-+ {
-+ After >>= aStringSheet;
-+ bBefore = sal_False;
-+ }
-+ if (!aStringSheet.getLength())
-+ {
-+ aStringSheet = ScVbaGlobals::getGlobalsImpl(
-+ m_xContext )->getApplication()->getActiveWorkbook()->getActiveSheet()->getName();
-+ bBefore = sal_True;
-+ }
-+ nCount = m_xIndexAccess->getCount();
-+ for (sal_Int32 i=0; i < nCount; i++)
-+ {
-+ uno::Reference< sheet::XSpreadsheet > xSheet(m_xIndexAccess->getByIndex(i), uno::UNO_QUERY);
-+ uno::Reference< container::XNamed > xNamed( xSheet, uno::UNO_QUERY_THROW );
-+ if (xNamed->getName() == aStringSheet)
-+ {
-+ nSheetIndex = i;
-+ break;
-+ }
-+ }
-+
-+ if(!bBefore)
-+ nSheetIndex++;
-+
-+ sal_Int32 nSheetName = nCount + 1L;
-+ String aStringBase( RTL_CONSTASCII_USTRINGPARAM("Sheet") );
-+ uno::Any result;
-+ for (sal_Int32 i=0; i < nNewSheets; i++, nSheetName++)
-+ {
-+ String aStringName = aStringBase;
-+ aStringName += String::CreateFromInt32(nSheetName);
-+ while (m_xNameAccess->hasByName(aStringName))
-+ {
-+ nSheetName++;
-+ aStringName = aStringBase;
-+ aStringName += String::CreateFromInt32(nSheetName);
-+ }
-+ m_xSheets->insertNewByName(aStringName, nSheetIndex + i);
-+ result = getItemByStringIndex( aStringName );
-+ }
-+
-+ return result;
-+}
-+
-+void
-+ScVbaWorksheets::Delete() throw (uno::RuntimeException)
-+{
-+ //SC_VBA_STUB();
-+}
-+
-+bool
-+ScVbaWorksheets::isSelectedSheets()
-+{
-+ return !m_xSheets.is();
-+}
-+
-+void SAL_CALL
-+ScVbaWorksheets::PrintOut( const uno::Any& From, const uno::Any& To, const uno::Any& Copies, const uno::Any& Preview, const uno::Any& ActivePrinter, const uno::Any& PrintToFile, const uno::Any& Collate, const uno::Any& PrToFileName ) throw (uno::RuntimeException)
-+{
-+ sal_Int32 nTo = 0;
-+ sal_Int32 nFrom = 0;
-+ sal_Int16 nCopies = 1;
-+ sal_Bool bCollate = sal_False;
-+ sal_Bool bSelection = sal_False;
-+ From >>= nFrom;
-+ To >>= nTo;
-+ Copies >>= nCopies;
-+ if ( nCopies > 1 ) // Collate only useful when more that 1 copy
-+ Collate >>= bCollate;
-+
-+ rtl::OUString sRange( RTL_CONSTASCII_USTRINGPARAM( "-" ) );
-+ rtl::OUString sFileName;
-+
-+ if (( nFrom || nTo ) )
-+ {
-+ if ( nFrom )
-+ sRange = ( ::rtl::OUString::valueOf( nFrom ) + sRange );
-+ if ( nTo )
-+ sRange += ::rtl::OUString::valueOf( nTo );
-+ }
-+ else if ( isSelectedSheets() )
-+ {
-+ bSelection = sal_True;
-+ }
-+
-+ if ( PrToFileName.getValue() )
-+ {
-+ PrToFileName >>= sFileName;
-+ }
-+
-+ SfxViewFrame* pViewFrame = getCurrentViewFrame();
-+ if ( pViewFrame )
-+ {
-+ SfxAllItemSet aArgs( SFX_APP()->GetPool() );
-+
-+ SfxBoolItem sfxCollate( SID_PRINT_COLLATE, bCollate );
-+ aArgs.Put( sfxCollate, sfxCollate.Which() );
-+ SfxInt16Item sfxCopies( SID_PRINT_COPIES, nCopies );
-+ aArgs.Put( sfxCopies, sfxCopies.Which() );
-+ if ( sFileName.getLength() )
-+ {
-+ SfxStringItem sfxFileName( SID_FILE_NAME, sFileName);
-+ aArgs.Put( sfxFileName, sfxFileName.Which() );
-+
-+ }
-+ if ( sRange.getLength() )
-+ {
-+ SfxStringItem sfxRange( SID_PRINT_PAGES, sRange );
-+ aArgs.Put( sfxRange, sfxRange.Which() );
-+ }
-+ SfxBoolItem sfxSelection( SID_SELECTION, bSelection );
-+ aArgs.Put( sfxSelection, sfxSelection.Which() );
-+ SfxBoolItem sfxAsync( SID_ASYNCHRON, sal_False );
-+ aArgs.Put( sfxAsync, sfxAsync.Which() );
-+ SfxDispatcher* pDispatcher = pViewFrame->GetDispatcher();
-+
-+ if ( pDispatcher )
-+ {
-+ pDispatcher->Execute( (USHORT)SID_PRINTDOC, (SfxCallMode)SFX_CALLMODE_SYNCHRON, aArgs );
-+ }
-+
-+ }
-+
-+ // #FIXME #TODO
-+ // 1 Preview ( does such a thing in OO.org? )
-+ // 2 ActivePrinter ( how/can we switch a printer via API? )
-+ // 3 PrintToFile ( ms behaviour if this option is specified but no
-+ // filename supplied 'PrToFileName' then the user will be prompted )
-+ // 4 Need to check behaviour of Selected sheets with range ( e.g. From & To
-+ // values ) in oOO these options are mutually exclusive
-+ // 5 There is a pop up to do with transparent objects in the print source
-+ // should be able to disable that via configuration for the duration
-+ // of this method
-+}
-+css::uno::Any SAL_CALL
-+ScVbaWorksheets::getVisible() throw (css::uno::RuntimeException)
-+{
-+ sal_Bool bVisible = sal_True;
-+ uno::Reference< container::XEnumeration > xEnum( createEnumeration(), uno::UNO_QUERY_THROW );
-+ while ( xEnum->hasMoreElements() )
-+ {
-+ uno::Reference< vba::XWorksheet > xSheet( xEnum->nextElement(), uno::UNO_QUERY_THROW );
-+ if ( xSheet->getVisible() == sal_False )
-+ {
-+ bVisible = sal_False;
-+ break;
-+ }
-+ }
-+ return uno::makeAny( bVisible );
-+}
-+
-+void SAL_CALL
-+ScVbaWorksheets::setVisible( const css::uno::Any& _visible ) throw (css::uno::RuntimeException)
-+{
-+ sal_Bool bState;
-+ if ( _visible >>= bState )
-+ {
-+ uno::Reference< container::XEnumeration > xEnum( createEnumeration(), uno::UNO_QUERY_THROW );
-+ while ( xEnum->hasMoreElements() )
-+ {
-+ uno::Reference< vba::XWorksheet > xSheet( xEnum->nextElement(), uno::UNO_QUERY_THROW );
-+ xSheet->setVisible( bState );
-+ }
-+ }
-+ else
-+ throw uno::RuntimeException( rtl::OUString(
-+ RTL_CONSTASCII_USTRINGPARAM( "Visible property doesn't support non boolean #FIXME" ) ), uno::Reference< uno::XInterface >() );
-+}
-+//ScVbaCollectionBaseImpl
-+uno::Any
-+ScVbaWorksheets::getItemByStringIndex( const rtl::OUString& sIndex ) throw (uno::RuntimeException)
-+{
-+ String sScIndex = sIndex;
-+ ScDocument::ConvertToValidTabName( sScIndex, '_' );
-+ return ScVbaCollectionBaseImpl::getItemByStringIndex( sScIndex );
-+}
-+
diff --git a/patches/vba/sc-source-ui-vba-vbaworksheets-hxx.diff b/patches/vba/sc-source-ui-vba-vbaworksheets-hxx.diff
deleted file mode 100644
index 708c5d9bc..000000000
--- a/patches/vba/sc-source-ui-vba-vbaworksheets-hxx.diff
+++ /dev/null
@@ -1,54 +0,0 @@
---- /dev/null 2006-01-03 09:47:36.312320500 +0000
-+++ sc/source/ui/vba/vbaworksheets.hxx 2006-01-04 11:02:07.000000000 +0000
-@@ -0,0 +1,51 @@
-+#ifndef SC_VBA_WORKSHEETS_HXX
-+#define SC_VBA_WORKSHEETS_HXX
-+
-+#include <cppuhelper/implbase1.hxx>
-+
-+#include <org/openoffice/vba/XWorksheets.hpp>
-+#include <com/sun/star/sheet/XSpreadsheets.hpp>
-+#include <com/sun/star/container/XEnumerationAccess.hpp>
-+#include <com/sun/star/uno/XComponentContext.hpp>
-+#include <org/openoffice/vba/XGlobals.hpp>
-+
-+#include "vbahelper.hxx"
-+#include "vbacollectionimpl.hxx"
-+
-+class ScModelObj;
-+
-+
-+typedef ::cppu::ImplInheritanceHelper1< ScVbaCollectionBaseImpl, oo::vba::XWorksheets > ScVbaWorksheets_BASE;
-+
-+class ScVbaWorksheets : public ScVbaWorksheets_BASE
-+{
-+ css::uno::Reference< css::frame::XModel > mxModel;
-+ css::uno::Reference< css::sheet::XSpreadsheets > m_xSheets;
-+protected:
-+ //ScVbaCollectionBaseImpl
-+ virtual css::uno::Any getItemByStringIndex( const rtl::OUString& sIndex ) throw (css::uno::RuntimeException);
-+
-+public:
-+ ScVbaWorksheets( const css::uno::Reference< css::uno::XComponentContext > & xContext, const css::uno::Reference< css::sheet::XSpreadsheets >& xSheets, const css::uno::Reference< css::frame::XModel >& xModel );
-+ ScVbaWorksheets( const css::uno::Reference< css::uno::XComponentContext > & xContext, const css::uno::Reference< css::container::XEnumerationAccess >& xEnum, const css::uno::Reference< css::frame::XModel >& xModel );
-+ virtual ~ScVbaWorksheets() {}
-+
-+ bool isSelectedSheets();
-+
-+ // XEnumerationAccess
-+ virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException);
-+ virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException);
-+
-+
-+ // XWorksheets
-+ virtual css::uno::Any SAL_CALL getVisible() throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL setVisible( const css::uno::Any& _visible ) throw (css::uno::RuntimeException);
-+ virtual css::uno::Any SAL_CALL Add( const css::uno::Any& Before, const css::uno::Any& After, const css::uno::Any& Count, const css::uno::Any& Type ) throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL Delete( ) throw (css::uno::RuntimeException);
-+ virtual void SAL_CALL PrintOut( const css::uno::Any& From, const css::uno::Any& To, const css::uno::Any& Copies, const css::uno::Any& Preview, const css::uno::Any& ActivePrinter, const css::uno::Any& PrintToFile, const css::uno::Any& Collate, const css::uno::Any& PrToFileName ) throw (css::uno::RuntimeException);
-+ // ScVbaCollectionBaseImpl
-+ virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource );
-+
-+};
-+
-+#endif /* SC_VBA_WORKSHEETS_HXX */
diff --git a/patches/vba/sc-source-ui-vba-vbawsfunction-cxx.diff b/patches/vba/sc-source-ui-vba-vbawsfunction-cxx.diff
deleted file mode 100644
index cd1e1b904..000000000
--- a/patches/vba/sc-source-ui-vba-vbawsfunction-cxx.diff
+++ /dev/null
@@ -1,85 +0,0 @@
---- /dev/null 2005-11-18 19:22:12.156310750 +0000
-+++ sc/source/ui/vba/vbawsfunction.cxx 2005-11-19 10:29:46.000000000 +0000
-@@ -0,0 +1,82 @@
-+#include <com/sun/star/beans/XPropertySet.hpp>
-+#include <com/sun/star/table/XCell.hpp>
-+#include <com/sun/star/table/XColumnRowRange.hpp>
-+#include <com/sun/star/beans/XIntrospection.hpp>
-+#include <com/sun/star/beans/XIntrospectionAccess.hpp>
-+#include <com/sun/star/sheet/XCellRangesQuery.hpp>
-+#include <com/sun/star/sheet/CellFlags.hpp>
-+#include <com/sun/star/reflection/XIdlMethod.hpp>
-+#include <com/sun/star/beans/MethodConcept.hpp>
-+#include <comphelper/processfactory.hxx>
-+#include <cppuhelper/queryinterface.hxx>
-+#include <comphelper/anytostring.hxx>
-+
-+#include "vbawsfunction.hxx"
-+
-+using namespace com::sun::star;
-+using namespace org::openoffice;
-+
-+void SAL_CALL
-+ScVbaWSFunction::dummy( ) throw (uno::RuntimeException)
-+{
-+}
-+
-+uno::Reference< beans::XIntrospectionAccess >
-+ScVbaWSFunction::getIntrospection(void) throw(uno::RuntimeException)
-+{
-+ return uno::Reference<beans::XIntrospectionAccess>();
-+}
-+
-+uno::Any SAL_CALL
-+ScVbaWSFunction::invoke(const rtl::OUString& FunctionName, const uno::Sequence< uno::Any >& Params, uno::Sequence< sal_Int16 >& OutParamIndex, uno::Sequence< uno::Any >& OutParam) throw(lang::IllegalArgumentException, script::CannotConvertException, reflection::InvocationTargetException, uno::RuntimeException)
-+{
-+ uno::Reference< lang::XMultiComponentFactory > xSMgr( m_xContext->getServiceManager(), uno::UNO_QUERY_THROW );
-+ uno::Reference< sheet::XFunctionAccess > xFunctionAccess(
-+ xSMgr->createInstanceWithContext(::rtl::OUString::createFromAscii(
-+ "com.sun.star.sheet.FunctionAccess"), m_xContext),
-+ ::uno::UNO_QUERY_THROW);
-+ uno::Sequence< uno::Any > aParamTemp;
-+ sal_Int32 nParamCount = Params.getLength();
-+ aParamTemp.realloc(nParamCount);
-+ const uno::Any* aArray = Params.getConstArray();
-+ uno::Any* aArrayTemp = aParamTemp.getArray();
-+
-+ for (int i=0; i < Params.getLength();i++)
-+ {
-+ uno::Reference<vba::XRange> myRange( aArray[ i ], uno::UNO_QUERY );
-+ if ( myRange.is() )
-+ {
-+ aArrayTemp[i] = myRange->getCellRange();
-+ continue;
-+ }
-+ aArrayTemp[i]= aArray[i];
-+ }
-+
-+ for ( int count=0; count < aParamTemp.getLength(); ++count )
-+ OSL_TRACE("Param[%d] is %s",
-+ count, rtl::OUStringToOString( comphelper::anyToString( aParamTemp[count] ), RTL_TEXTENCODING_UTF8 ).getStr() );
-+ return xFunctionAccess->callFunction(FunctionName,aParamTemp);
-+}
-+
-+void SAL_CALL
-+ScVbaWSFunction::setValue(const rtl::OUString& PropertyName, const uno::Any& Value) throw(beans::UnknownPropertyException, script::CannotConvertException, reflection::InvocationTargetException, uno::RuntimeException)
-+{
-+}
-+
-+uno::Any SAL_CALL
-+ScVbaWSFunction::getValue(const rtl::OUString& PropertyName) throw(beans::UnknownPropertyException, uno::RuntimeException)
-+{
-+ return uno::Any();
-+}
-+
-+sal_Bool SAL_CALL
-+ScVbaWSFunction::hasMethod(const rtl::OUString& Name) throw(uno::RuntimeException)
-+{
-+ return true;
-+}
-+
-+sal_Bool SAL_CALL
-+ScVbaWSFunction::hasProperty(const rtl::OUString& Name) throw(uno::RuntimeException)
-+{
-+ return false;
-+}
diff --git a/patches/vba/sc-source-ui-vba-vbawsfunction-hxx.diff b/patches/vba/sc-source-ui-vba-vbawsfunction-hxx.diff
deleted file mode 100644
index 5d3268d92..000000000
--- a/patches/vba/sc-source-ui-vba-vbawsfunction-hxx.diff
+++ /dev/null
@@ -1,39 +0,0 @@
---- /dev/null 2005-11-06 11:49:58.372324250 +0000
-+++ sc/source/ui/vba/vbawsfunction.hxx 2005-10-27 18:06:14.000000000 +0100
-@@ -0,0 +1,36 @@
-+#ifndef SC_VBA_INTERIOR_HXX
-+#define SC_VBA_INTERIOR_HXX
-+
-+#include <cppuhelper/implbase1.hxx>
-+#include <cppuhelper/implbase2.hxx>
-+#include <org/openoffice/vba/XWorksheetFunction.hpp>
-+#include <com/sun/star/uno/XComponentContext.hpp>
-+#include "vbarange.hxx"
-+
-+#include <com/sun/star/script/XInvocation.hpp>
-+#include <com/sun/star/sheet/XFunctionAccess.hpp>
-+
-+typedef ::cppu::WeakImplHelper2< oo::vba::XWorksheetFunction,css::script::XInvocation > ScVbaWSFunction_BASE;
-+
-+class ScVbaWSFunction : public ScVbaWSFunction_BASE
-+{
-+ css::uno::Reference< css::uno::XComponentContext > m_xContext;
-+public:
-+ ScVbaWSFunction( css::uno::Reference< css::uno::XComponentContext >& xContext
-+ ):m_xContext(xContext)
-+ {
-+ }
-+ virtual ~ScVbaWSFunction(){}
-+
-+ virtual void SAL_CALL dummy( ) throw (css::uno::RuntimeException);
-+
-+ virtual css::uno::Reference< css::beans::XIntrospectionAccess > SAL_CALL getIntrospection(void) throw(css::uno::RuntimeException);
-+ virtual css::uno::Any SAL_CALL invoke(const rtl::OUString& FunctionName, const css::uno::Sequence< css::uno::Any >& Params, css::uno::Sequence< sal_Int16 >& OutParamIndex, css::uno::Sequence< css::uno::Any >& OutParam) throw(css::lang::IllegalArgumentException, css::script::CannotConvertException, css::reflection::InvocationTargetException, css::uno::RuntimeException);
-+ virtual void SAL_CALL setValue(const rtl::OUString& PropertyName, const css::uno::Any& Value) throw(css::beans::UnknownPropertyException, css::script::CannotConvertException, css::reflection::InvocationTargetException, css::uno::RuntimeException);
-+ virtual css::uno::Any SAL_CALL getValue(const rtl::OUString& PropertyName) throw(css::beans::UnknownPropertyException, css::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL hasMethod(const rtl::OUString& Name) throw(css::uno::RuntimeException);
-+ virtual sal_Bool SAL_CALL hasProperty(const rtl::OUString& Name) throw(css::uno::RuntimeException);
-+
-+};
-+#endif
-+
diff --git a/patches/vba/sc-vba-build-lst.diff b/patches/vba/sc-vba-build-lst.diff
deleted file mode 100644
index 3152d2913..000000000
--- a/patches/vba/sc-vba-build-lst.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- build.lst 2005-08-02 17:14:58.000000000 +0530
-+++ sc/prj/build.lst 2005-07-31 09:53:33.000000000 +0530
-@@ -11,8 +11,8 @@
- sc sc\source\filter\inc get - all sc_fiinc NULL
- sc sc\addin\inc get - all sc_adinc NULL
- sc sc\sdi nmake - all sc_sdi NULL
--sc sc\source\ui\vba nmake - all sc_vba sc_sdi NULL
- sc sc\source\ui\Accessibility nmake - all sc_acc sc_sdi NULL
-+sc sc\source\ui\vba nmake - all sc_vba sc_sdi sc_view NULL
- sc sc\source\ui\pch get - all sc_upch sc_sdi NULL
- sc sc\source\ui\view nmake - all sc_view sc_sdi NULL
- sc sc\source\ui\app nmake - all sc_app sc_sdi NULL
diff --git a/patches/vba/scp_vba_uno_service.diff b/patches/vba/scp_vba_uno_service.diff
deleted file mode 100644
index b92e29cdd..000000000
--- a/patches/vba/scp_vba_uno_service.diff
+++ /dev/null
@@ -1,61 +0,0 @@
-Index: scp2/source/ooo/makefile.mk
-===================================================================
-RCS file: /cvs/installation/scp2/source/ooo/makefile.mk,v
-retrieving revision 1.33
-diff -u -p -r1.33 makefile.mk
---- scp2/source/ooo/makefile.mk 17 Jun 2005 14:14:51 -0000 1.33
-+++ scp2/source/ooo/makefile.mk 12 Sep 2005 17:36:33 -0000
-@@ -130,6 +130,10 @@ SCPDEFS+=-DWITHOUT_MOZILLA
- SCPDEFS+=-DSYSTEM_MOZILLA
- .ENDIF
-
-+.IF "$(ENABLE_VBA)" == "YES"
-+SCPDEFS+=-DENABLE_VBA
-+.ENDIF
-+
- .IF "$(WITH_OPENLDAP)" == "YES"
- SCPDEFS+=-DWITH_OPENLDAP
- .ENDIF
-Index: scp2/source/ooo/file_library_ooo.scp
-===================================================================
-RCS file: /cvs/installation/scp2/source/ooo/file_library_ooo.scp,v
-retrieving revision 1.134
-diff -u -p -r1.134 file_library_ooo.scp
---- scp2/source/ooo/file_library_ooo.scp 21 Jul 2005 14:38:07 -0000 1.134
-+++ scp2/source/ooo/file_library_ooo.scp 12 Sep 2005 17:36:46 -0000
-@@ -528,6 +528,35 @@ File gid_File_Lib_Dlgprov
- #endif
- End
-
-+#ifdef ENABLE_VBA
-+
-+File gid_File_Lib_Vbaobj
-+ TXT_FILE_BODY;
-+ Styles = (PACKED,UNO_COMPONENT);
-+ RegistryID = gid_Starregistry_Services_Rdb;
-+ Dir = gid_Dir_Program;
-+ #ifdef UNX
-+ Name = STRING(CONCAT5(libvbaobj,OFFICEUPD,DLLSUFFIX,.uno,UNXSUFFIX));
-+ #else
-+ Name = STRING(CONCAT5(vbaaobj,OFFICEUPD,DLLSUFFIX,.uno,.dll));
-+ #endif
-+End
-+
-+File gid_File_Lib_Vbaevent
-+ TXT_FILE_BODY;
-+ Styles = (PACKED,UNO_COMPONENT);
-+ RegistryID = gid_Starregistry_Services_Rdb;
-+ Dir = gid_Dir_Program;
-+ #ifdef UNX
-+ Name = STRING(CONCAT5(vbaevents,OFFICEUPD,DLLSUFFIX,.uno,UNXSUFFIX));
-+ #else
-+ Name = STRING(CONCAT5(vbaevents,OFFICEUPD,DLLSUFFIX,.uno,.dll));
-+ #endif
-+End
-+
-+#endif // ENABLE_VBA
-+
-+
- #ifdef WNT
-
- File gid_File_Lib_Dnd
diff --git a/patches/vba/svx-source-form-fmctrler-cxx.diff b/patches/vba/svx-source-form-fmctrler-cxx.diff
deleted file mode 100644
index 5a9b1d2c6..000000000
--- a/patches/vba/svx-source-form-fmctrler-cxx.diff
+++ /dev/null
@@ -1,62 +0,0 @@
-Index: svx/source/form/fmctrler.cxx
-===================================================================
-RCS file: /cvs/graphics/svx/source/form/fmctrler.cxx,v
-retrieving revision 1.51
-diff -u -p -r1.51 fmctrler.cxx
---- svx/source/form/fmctrler.cxx 13 Apr 2005 08:28:58 -0000 1.51
-+++ svx/source/form/fmctrler.cxx 12 Sep 2005 19:57:08 -0000
-@@ -232,6 +232,7 @@
- #ifndef _TOOLKIT_UNOHLP_HXX
- #include <toolkit/helper/vclunohelper.hxx>
- #endif
-+
- #ifndef _COMPHELPER_SEQUENCE_HXX_
- #include <comphelper/sequence.hxx>
- #endif
-@@ -244,6 +245,10 @@
-
- #include <algorithm>
- #include <functional>
-+//#undef ENABLE_VBA
-+#ifdef ENABLE_VBA
-+#include "formControlVBAHandler.hxx"
-+#endif
-
- using namespace ::com::sun::star;
- using namespace ::com::sun::star::uno;
-@@ -265,6 +270,7 @@ using namespace ::connectivity;
- using namespace ::svxform;
- using namespace ::connectivity::simple;
-
-+
- //==================================================================
- // FmXAutoControl
- //==================================================================
-@@ -1279,7 +1285,7 @@ void FmXFormController::onModify( const
- sal_Bool FmXFormController::determineLockState() const
- {
- OSL_ENSURE(!FmXFormController_BASE1::rBHelper.bDisposed,"FmXFormController: Object already disposed!");
-- // a.) in filter mode we are always locked
-+ // a.) in filter mode we arealways locked
- // b.) if we have no valid model or our model (a result set) is not alive -> we're locked
- // c.) if we are inserting everything is OK and we are not locked
- // d.) if are not updatable or on invalid position
-@@ -1619,6 +1625,10 @@ void FmXFormController::addToEventAttach
- {
- Reference< XInterface > xIfc(xControl, UNO_QUERY);
- m_xModelAsManager->attach( nPos, xIfc, makeAny(xControl) );
-+#ifdef ENABLE_VBA
-+ FormControlVBAHandler handler( m_xModelAsManager, xControl );
-+ handler.createEventBindings(nPos);
-+#endif
- break;
- }
- }
-@@ -2054,6 +2064,7 @@ Reference< XControl > FmXFormController
- return Reference< XControl > ();
- }
-
-+
- //------------------------------------------------------------------------------
- void FmXFormController::implControlInserted( const Reference< XControl>& _rxControl, bool _bAddToEventAttacher )
- {
diff --git a/patches/vba/svx-source-form-fmundo-cxx.diff b/patches/vba/svx-source-form-fmundo-cxx.diff
deleted file mode 100644
index 65226ffa8..000000000
--- a/patches/vba/svx-source-form-fmundo-cxx.diff
+++ /dev/null
@@ -1,178 +0,0 @@
-Index: svx/source/form/fmundo.cxx
-===================================================================
-RCS file: /cvs/graphics/svx/source/form/fmundo.cxx,v
-retrieving revision 1.31
-diff -u -p -r1.31 fmundo.cxx
---- svx/source/form/fmundo.cxx 13 Apr 2005 08:30:13 -0000 1.31
-+++ svx/source/form/fmundo.cxx 12 Sep 2005 19:57:22 -0000
-@@ -181,6 +181,7 @@
- #include <comphelper/stl_types.hxx>
- #endif
-
-+
- using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::awt;
- using namespace ::com::sun::star::beans;
-@@ -192,6 +193,94 @@ using namespace ::com::sun::star::util;
- using namespace ::com::sun::star::form::binding;
- using namespace ::svxform;
-
-+
-+#ifdef ENABLE_VBA
-+
-+#include <com/sun/star/script/XScriptListener.hdl>
-+#include <comphelper/processfactory.hxx>
-+#include <cppuhelper/implbase1.hxx>
-+
-+
-+typedef cppu::WeakImplHelper1< XScriptListener > ScriptEventListener_BASE;
-+class ScriptEventListenerWrapper : public ScriptEventListener_BASE
-+{
-+public:
-+ ScriptEventListenerWrapper( FmFormModel& _rModel):pModel(&_rModel)
-+ {
-+ Reference < XPropertySet > xProps(
-+ ::comphelper::getProcessServiceFactory(), UNO_QUERY );
-+ if ( xProps.is() )
-+ {
-+ Reference< XComponentContext > xCtx( xProps->getPropertyValue(
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "DefaultContext" ))), UNO_QUERY );
-+ if ( xCtx.is() )
-+ {
-+ Reference< XMultiComponentFactory > xMFac(
-+ xCtx->getServiceManager(), UNO_QUERY );
-+ if ( xMFac.is() )
-+ {
-+ m_vbaListener.set( xMFac->createInstanceWithContext(
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
-+ "org.openoffice.vba.EventListener" ) ), xCtx ),
-+ UNO_QUERY );
-+ }
-+ }
-+ }
-+ }
-+ // XEventListener
-+ virtual void SAL_CALL disposing(const EventObject& Source) throw( RuntimeException ){}
-+
-+ // XScriptListener
-+ virtual void SAL_CALL firing(const ScriptEvent& evt) throw(RuntimeException)
-+ {
-+ setModel();
-+ if ( m_vbaListener.is() )
-+ {
-+ m_vbaListener->firing( evt );
-+ }
-+ }
-+
-+ virtual Any SAL_CALL approveFiring(const ScriptEvent& evt) throw( com::sun::star::reflection::InvocationTargetException, RuntimeException)
-+ {
-+ setModel();
-+ if ( m_vbaListener.is() )
-+ {
-+ return m_vbaListener->approveFiring( evt );
-+ }
-+ return Any();
-+ }
-+
-+private:
-+ void setModel()
-+ {
-+ Reference< XPropertySet > xProps( m_vbaListener, UNO_QUERY );
-+ if ( xProps.is() )
-+ {
-+ try
-+ {
-+ SfxObjectShellRef xObjSh = pModel->GetObjectShell();
-+ if ( xObjSh.Is() && m_vbaListener.is() )
-+ {
-+ Any aVal;
-+ aVal <<= xObjSh->GetModel();
-+ xProps->setPropertyValue(
-+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Model" ) ),
-+ aVal );
-+ }
-+ }
-+ catch( Exception& e )
-+ {
-+ //swallow any errors
-+ }
-+ }
-+ }
-+ FmFormModel* pModel;
-+ Reference< XScriptListener > m_vbaListener;
-+
-+
-+};
-+#endif // ENABLE_VBA
-+
- //------------------------------------------------------------------------------
- // some helper structs for caching property infos
- //------------------------------------------------------------------------------
-@@ -232,6 +321,9 @@ FmXUndoEnvironment::FmXUndoEnvironment(F
- ,m_pPropertySetCache(NULL)
- {
- DBG_CTOR(FmXUndoEnvironment,NULL);
-+#ifdef ENABLE_VBA
-+ m_vbaListener = new ScriptEventListenerWrapper( _rModel );
-+#endif
- }
-
- //------------------------------------------------------------------------------
-@@ -810,9 +902,19 @@ void FmXUndoEnvironment::switchListening
- Reference< XEventAttacherManager > xManager( _rxContainer, UNO_QUERY );
- if ( xManager.is() )
- if ( _bStartListening )
-+ {
- xManager->addScriptListener( this );
-+#ifdef ENABLE_VBA
-+ xManager->addScriptListener( m_vbaListener );
-+#endif
-+ }
- else
-+ {
- xManager->removeScriptListener( this );
-+#ifdef ENABLE_VBA
-+ xManager->removeScriptListener( m_vbaListener );
-+#endif
-+ }
-
- // also handle all children of this element
- sal_uInt32 nCount = _rxContainer->getCount();
-@@ -911,7 +1013,7 @@ void FmXUndoEnvironment::RemoveElement(c
- // XScriptListener
- void FmXUndoEnvironment::firing_Impl( const ScriptEvent& evt, Any *pSyncRet )
- {
-- OSL_TRACE( "in FmXUndoEnvironment::firing_Impl");
-+ //OSL_TRACE( "in FmXUndoEnvironment::firing_Impl");
- ::vos::OClearableGuard aSolarGuard( Application::GetSolarMutex() );
-
- SfxObjectShellRef xObjSh = rModel.GetObjectShell();
-@@ -921,12 +1023,18 @@ void FmXUndoEnvironment::firing_Impl( co
- {
- Reference< XInterface > xThis;
- evt.Helper >>= xThis;
--
-- aSolarGuard.clear();
- if (xThis.is())
- {
- ::rtl::OUString sScriptType = evt.ScriptType;
- ::rtl::OUString sScriptCode = evt.ScriptCode;
-+
-+#ifdef ENABLE_VBA
-+ static const ::rtl::OUString vbaInterOp =
-+ ::rtl::OUString::createFromAscii("VBAInterop");
-+ if ( sScriptType.equals(vbaInterOp) )
-+ return; // not handled here
-+#endif
-+
- Sequence< Any > aArguments = evt.Arguments;
-
- ::rtl::OUString sMacroLocation;
-@@ -982,7 +1090,6 @@ void FmXUndoEnvironment::firing_Impl( co
- ::vos::OGuard aSolarGuard( Application::GetSolarMutex() );
- xObjSh = NULL;
- }
-- OSL_TRACE( "leaving FmXUndoEnvironment::firing_Impl");
- }
-
- void SAL_CALL FmXUndoEnvironment::firing(const ScriptEvent& evt) throw(::com::sun::star::uno::RuntimeException)
diff --git a/patches/vba/svx-source-form-formControlVBAHandler-cxx.diff b/patches/vba/svx-source-form-formControlVBAHandler-cxx.diff
deleted file mode 100644
index 7ca471c70..000000000
--- a/patches/vba/svx-source-form-formControlVBAHandler-cxx.diff
+++ /dev/null
@@ -1,96 +0,0 @@
---- /dev/null 2005-06-05 14:44:09.000000000 +0100
-+++ svx/source/form/formControlVBAHandler.cxx 2005-09-12 20:49:13.329396166 +0100
-@@ -0,0 +1,93 @@
-+#include <formControlVBAHandler.hxx>
-+#include <comphelper/processfactory.hxx>
-+#include <com/sun/star/beans/XPropertySet.hpp>
-+#include <com/sun/star/lang/XMultiComponentFactory.hpp>
-+#include <org/openoffice/vba/XVBAToOOEventDescGen.hpp>
-+
-+using namespace ::com::sun::star;
-+using namespace ::com::sun::star::uno;
-+using namespace ::com::sun::star::awt;
-+using namespace ::com::sun::star::script;
-+
-+using namespace ::org::openoffice::vba;
-+
-+FormControlVBAHandler::FormControlVBAHandler( const Reference< XEventAttacherManager >& xEvtAttachMgr, const Reference< XControl >& xControl) : m_xEvtAttachMgr( xEvtAttachMgr ), m_xControl( xControl )
-+{
-+ Reference < beans::XPropertySet > xProps(
-+ ::comphelper::getProcessServiceFactory(), UNO_QUERY_THROW );
-+ m_xCtx.set( xProps->getPropertyValue( rtl::OUString(
-+ RTL_CONSTASCII_USTRINGPARAM( "DefaultContext" ))),
-+ uno::UNO_QUERY_THROW );
-+}
-+
-+bool
-+FormControlVBAHandler::hasEvtBinding( sal_Int32 nPos, const ScriptEventDescriptor& desc )
-+{
-+ bool result = false;
-+ Sequence< ScriptEventDescriptor > sEvts = m_xEvtAttachMgr->getScriptEvents(nPos);
-+ ScriptEventDescriptor* pWriteScriptEvents = sEvts.getArray();
-+ ScriptEventDescriptor* pEvt = pWriteScriptEvents;
-+ sal_Int32 nNumEvts = sEvts.getLength();
-+ for ( sal_Int32 index=0; index < nNumEvts; ++pEvt, ++index )
-+ {
-+ if ( pEvt->EventMethod.equals( desc.EventMethod ) &&
-+ pEvt->ListenerType.equals( desc.ListenerType )
-+ // Note: if you want multiple bindings e.g. _Click
-+ // and a user defined binding ( from property browser )
-+ // uncomment the two lines below
-+// && pEvt->ScriptCode.equals( desc.ScriptCode )
-+// && pEvt->ScriptType.equals( desc.ScriptType )
-+ )
-+ {
-+ result = true;
-+ break;
-+ }
-+ }
-+ return result;
-+}
-+
-+bool
-+FormControlVBAHandler::createEventBindings( sal_Int32 nPos )
-+{
-+ //OSL_TRACE("createEventBindings for %s",
-+ // ::rtl::OUStringToOString( m_sControl,
-+ // RTL_TEXTENCODING_UTF8 ).getStr() );
-+ static Reference< XVBAToOOEventDescGen > xVBAToOOEvtDesc;
-+
-+ if ( !xVBAToOOEvtDesc.is() )
-+ {
-+ if ( m_xCtx.is() )
-+ {
-+ Reference< lang::XMultiComponentFactory > xMFac(
-+ m_xCtx->getServiceManager(), UNO_QUERY );
-+ if ( xMFac.is() )
-+ {
-+ xVBAToOOEvtDesc.set( xMFac->createInstanceWithContext(
-+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
-+ "org.openoffice.vba.VBAToOOEventDesc" ) ), m_xCtx ),
-+ UNO_QUERY );
-+ }
-+ }
-+ }
-+
-+ if ( !xVBAToOOEvtDesc.is() )
-+ {
-+ OSL_TRACE("Failed to create VBAToOOEventDesc object!!! ");
-+ return false;
-+ }
-+ Sequence< ScriptEventDescriptor > descs =
-+ xVBAToOOEvtDesc->getEventDescriptions( m_xControl );
-+
-+ sal_Int32 nLen = descs.getLength();
-+ const ScriptEventDescriptor* pDesc = descs.getConstArray();
-+ for ( sal_Int32 index = 0; index < nLen; ++index, ++pDesc )
-+ {
-+ // carefull!, don't register the event twice
-+ if ( !hasEvtBinding( nPos, *pDesc ) )
-+ {
-+ m_xEvtAttachMgr->registerScriptEvent( nPos, *pDesc );
-+ }
-+ }
-+ return true;
-+}
-+
diff --git a/patches/vba/svx-source-form-formControlVBAHandler-hxx.diff b/patches/vba/svx-source-form-formControlVBAHandler-hxx.diff
deleted file mode 100644
index 085d19e0e..000000000
--- a/patches/vba/svx-source-form-formControlVBAHandler-hxx.diff
+++ /dev/null
@@ -1,34 +0,0 @@
---- /dev/null 2005-06-05 14:44:09.000000000 +0100
-+++ svx/source/form/formControlVBAHandler.hxx 2005-09-12 16:33:51.000000000 +0100
-@@ -0,0 +1,31 @@
-+#ifndef FORMCONTROLVBAHANDLER_HXX
-+#define FORMCONTROLVBAHANDLER_HXX
-+
-+
-+#include <com/sun/star/script/XEventAttacherManager.hpp>
-+#include <com/sun/star/uno/XComponentContext.hpp>
-+#include <com/sun/star/awt/XControl.hpp>
-+#include <com/sun/star/script/ScriptEventDescriptor.hpp>
-+#include <com/sun/star/script/XScriptListener.hpp>
-+#include <cppuhelper/implbase1.hxx>
-+
-+#define css ::com::sun::star
-+
-+
-+class FormControlVBAHandler
-+{
-+public:
-+ FormControlVBAHandler( const css::uno::Reference< css::script::XEventAttacherManager >& xEvtAttachMgr, const css::uno::Reference< css::awt::XControl >& xControl);
-+ ~FormControlVBAHandler() {}
-+ bool createEventBindings( sal_Int32 nPos );
-+
-+private:
-+ bool hasEvtBinding( sal_Int32 nPos, const css::script::ScriptEventDescriptor& desc );
-+ css::uno::Reference< css::script::XEventAttacherManager > m_xEvtAttachMgr;
-+ css::uno::Reference< css::awt::XControl > m_xControl;
-+ css::uno::Reference< css::uno::XComponentContext > m_xCtx;
-+
-+
-+};
-+
-+#endif
diff --git a/patches/vba/svx-source-form-makefile.diff b/patches/vba/svx-source-form-makefile.diff
deleted file mode 100644
index 5f999d5a0..000000000
--- a/patches/vba/svx-source-form-makefile.diff
+++ /dev/null
@@ -1,29 +0,0 @@
-Index: svx/source/form/makefile.mk
-===================================================================
-RCS file: /cvs/graphics/svx/source/form/makefile.mk,v
-retrieving revision 1.25
-diff -u -r1.25 makefile.mk
---- svx/source/form/makefile.mk 5 Jan 2005 12:22:30 -0000 1.25
-+++ svx/source/form/makefile.mk 31 Aug 2005 08:39:31 -0000
-@@ -74,6 +74,10 @@
-
- # --- Files --------------------------------------------------------
-
-+.IF "$(ENABLE_VBA)"=="YES"
-+ CDEFS+=-DENABLE_VBA
-+.ENDIF
-+
- SRS1NAME=form
- SRC1FILES= \
- fmexpl.src \
-@@ -139,6 +143,10 @@
- $(SLO)$/formpdfexport.obj \
- $(SLO)$/datalistener.obj
-
-+.IF "$(ENABLE_VBA)"=="YES"
-+SLOFILES += $(SLO)$/formControlVBAHandler.obj
-+.ENDIF
-+
- .IF "$(OS)$(CPU)"=="SOLARISI"
- NOOPTFILES=$(SLO)$/fmprop.obj
- .ENDIF
diff --git a/patches/vba/svx-source-inc-fmundo-hxx.diff b/patches/vba/svx-source-inc-fmundo-hxx.diff
deleted file mode 100644
index 9eb0bb29c..000000000
--- a/patches/vba/svx-source-inc-fmundo-hxx.diff
+++ /dev/null
@@ -1,18 +0,0 @@
-Index: svx/source/inc/fmundo.hxx
-===================================================================
-RCS file: /cvs/graphics/svx/source/inc/fmundo.hxx,v
-retrieving revision 1.10
-diff -u -r1.10 fmundo.hxx
---- svx/source/inc/fmundo.hxx 18 Mar 2005 18:43:50 -0000 1.10
-+++ svx/source/inc/fmundo.hxx 31 Aug 2005 08:40:26 -0000
-@@ -285,7 +285,9 @@
-
- void switchListening( const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer >& _rxContainer, bool _bStartListening ) SAL_THROW(());
- void switchListening( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxObject, bool _bStartListening ) SAL_THROW(());
--
-+#ifdef ENABLE_VBA
-+ ::com::sun::star::uno::Reference< com::sun::star::script::XScriptListener > m_vbaListener;
-+#endif
- public:
- // Methoden zur Zuordnung von Controls zu Forms,
- // werden von der Seite und der UndoUmgebung genutzt
diff --git a/patches/vba/vba-basic-collection.diff b/patches/vba/vba-basic-collection.diff
deleted file mode 100644
index 052fc6e1c..000000000
--- a/patches/vba/vba-basic-collection.diff
+++ /dev/null
@@ -1,125 +0,0 @@
-Index: basic/source/runtime/makefile.mk
-===================================================================
-RCS file: /cvs/script/basic/source/runtime/makefile.mk,v
-retrieving revision 1.3
-diff -u -r1.3 makefile.mk
---- basic/source/runtime/makefile.mk 10 Jan 2002 11:10:20 -0000 1.3
-+++ basic/source/runtime/makefile.mk 10 Aug 2005 13:29:42 -0000
-@@ -71,6 +71,9 @@
- .INCLUDE : settings.mk
- .INCLUDE : sv.mk
-
-+.IF "$(ENABLE_VBA)"=="YES"
-+ CDEFS+=-DENABLE_VBA
-+.ENDIF
-
- # --- Allgemein -----------------------------------------------------------
-
-Index: basic/source/runtime/step2.cxx
-===================================================================
-RCS file: /cvs/script/basic/source/runtime/step2.cxx,v
-retrieving revision 1.17
-diff -u -r1.17 step2.cxx
---- basic/source/runtime/step2.cxx 13 Apr 2005 09:18:08 -0000 1.17
-+++ basic/source/runtime/step2.cxx 10 Aug 2005 13:29:48 -0000
-@@ -72,11 +72,15 @@
- #include "opcodes.hxx"
-
- #include <com/sun/star/container/XIndexAccess.hpp>
-+#ifdef ENABLE_VBA
-+#include <org/openoffice/vba/XCollection.hpp>
-+#endif //ENABLE_VBA
- #include <com/sun/star/uno/Any.hxx>
-
- using namespace com::sun::star::container;
- using namespace com::sun::star::lang;
-
-+Any sbxToUnoValue( SbxVariable* pVar );
-
- // Suchen eines Elements
- // Die Bits im String-ID:
-@@ -475,7 +479,7 @@
- {
- Reference< XInterface > x = *(Reference< XInterface >*)aAny.getValue();
- Reference< XIndexAccess > xIndexAccess( x, UNO_QUERY );
--
-+#ifndef ENABLE_VBA
- // Haben wir Index-Access?
- if( xIndexAccess.is() )
- {
-@@ -519,6 +523,75 @@
- pElem->PutObject( NULL );
- }
- }
-+#else
-+ Reference< org::openoffice::vba::XCollection > xColl( x, UNO_QUERY );
-+ UINT32 nParamCount = (UINT32)pPar->Count() - 1;
-+ if( nParamCount != 1 )
-+ {
-+ StarBASIC::Error( SbERR_BAD_ARGUMENT );
-+ return pElem;
-+ }
-+ if ( xColl.is() || xIndexAccess.is() )
-+ {
-+ Reference< XInterface > xRet;
-+ if ( xColl.is() )
-+ {
-+ Any param = sbxToUnoValue(
-+ pPar->Get( 1 ) );
-+ try
-+ {
-+ Any aAny = xColl->Item( param );
-+ TypeClass eType = aAny.getValueType().getTypeClass();
-+ if( eType == TypeClass_INTERFACE )
-+ {
-+ xRet = *(Reference< XInterface >*)aAny.getValue();
-+ }
-+
-+ }
-+ catch( Exception& e )
-+ {
-+ StarBASIC::Error( SbERR_OUT_OF_RANGE );
-+ }
-+ }
-+
-+ // Haben wir Index-Access?
-+ else if( xIndexAccess.is() )
-+ {
-+
-+ // Index holen
-+ INT32 nIndex = pPar->Get( 1 )->GetLong();
-+ try
-+ {
-+ Any aAny = xIndexAccess->getByIndex( nIndex );
-+ TypeClass eType = aAny.getValueType().getTypeClass();
-+ if( eType == TypeClass_INTERFACE )
-+ xRet = *(Reference< XInterface >*)aAny.getValue();
-+ }
-+ catch (IndexOutOfBoundsException& e1)
-+ {
-+ // Bei Exception erstmal immer von Konvertierungs-Problem ausgehen
-+ StarBASIC::Error( SbERR_OUT_OF_RANGE );
-+ }
-+
-+ }
-+ // #57847 Immer neue Variable anlegen, sonst Fehler
-+ // durch PutObject(NULL) bei ReadOnly-Properties.
-+ pElem = new SbxVariable( SbxVARIANT );
-+ if( xRet.is() )
-+ {
-+ aAny <<= xRet;
-+
-+ // #67173 Kein Namen angeben, damit echter Klassen-Namen eintragen wird
-+ String aName;
-+ SbxObjectRef xWrapper = (SbxObject*)new SbUnoObject( aName, aAny );
-+ pElem->PutObject( xWrapper );
-+ }
-+ else
-+ {
-+ pElem->PutObject( NULL );
-+ }
-+ }
-+#endif //ifndef ENABLE_VBA
- }
-
- // #42940, 0.Parameter zu NULL setzen, damit sich Var nicht selbst haelt
diff --git a/patches/vba/vba-basic-default.diff b/patches/vba/vba-basic-default.diff
deleted file mode 100644
index 0f0795c02..000000000
--- a/patches/vba/vba-basic-default.diff
+++ /dev/null
@@ -1,292 +0,0 @@
-Index: basic/source/runtime/step0.cxx
-===================================================================
-RCS file: /cvs/script/basic/source/runtime/step0.cxx,v
-retrieving revision 1.21
-diff -u -p -r1.21 step0.cxx
---- basic/source/runtime/step0.cxx 7 Sep 2005 21:42:01 -0000 1.21
-+++ basic/source/runtime/step0.cxx 15 Dec 2005 10:31:53 -0000
-@@ -52,6 +52,10 @@
-
- #include <algorithm>
-
-+#ifdef ENABLE_VBA
-+SbxVariable* getDefaultProp( SbxVariable* pRef );
-+#endif //ENABLE_VBA
-+
- #pragma SW_SEGMENT_CLASS( SBRUNTIME, SBRUNTIME_CODE )
-
- void SbiRuntime::StepNOP()
-@@ -62,6 +66,32 @@ void SbiRuntime::StepArith( SbxOperator
- SbxVariableRef p1 = PopVar();
- TOSMakeTemp();
- SbxVariable* p2 = GetTOS();
-+#ifdef ENABLE_VBA
-+ bool bVBAInterop = SbiRuntime::isVBAEnabled();
-+ SbxVariable* defaultProp = NULL;
-+
-+ // This could & should be moved to the MakeTempTOS() method in runtime.cxx
-+ // In the code which this is cut'npaste from there is a check for a ref
-+ // count != 1 based on which the copy of the SbxVariable is done.
-+ // see orig code in MakeTempTOS ( and I'm not sure what the significance,
-+ // of that is )
-+ // here we alway seem to have a refcount of 1. Also it seems that
-+ // MakeTempTOS is called for other operation, so I hold off for now
-+ // until I have a better idea
-+ if ( bVBAInterop
-+ && ( p2->GetType() == SbxOBJECT || p2->GetType() == SbxVARIANT )
-+ )
-+ {
-+ SbxVariable* pDflt = getDefaultProp( p2 );
-+ if ( pDflt )
-+ {
-+ pDflt->Broadcast( SBX_HINT_DATAWANTED );
-+ p2 = new SbxVariable( *pDflt );
-+ p2->SetFlag( SBX_READWRITE );
-+ refExprStk->Put( p2, nExprLvl - 1 );
-+ }
-+ }
-+#endif //ENABLE_VBA
- p2->ResetFlag( SBX_FIXED );
- p2->Compute( eOp, *p1 );
-
-@@ -213,9 +243,37 @@ void SbiRuntime::StepPUT()
- n = refVar->GetFlags();
- refVar->SetFlag( SBX_WRITE );
- }
-+#ifdef ENABLE_VBA
-+ bool bVBAInterop = SbiRuntime::isVBAEnabled();
-+
-+ // if left side arg is an object or variant and right handside isn't
-+ // either an object or a variant then try and see if a default
-+ // property exists.
-+ // to use e.g. Range{"A1") = 34
-+ // could equate to Range("A1").Value = 34
-+ if ( bVBAInterop
-+ && ( refVar->GetType() == SbxOBJECT ) )
-+ {
-+ SbxVariable* pDflt = getDefaultProp( refVar );
-+ if ( pDflt )
-+ refVar = pDflt;
-+ }
-+ if ( bVBAInterop
-+ && ( refVal->GetType() == SbxOBJECT ) )
-+ {
-+ SbxVariable* pDflt = getDefaultProp( refVal );
-+ if ( pDflt )
-+ refVal = pDflt;
-+ }
-+#endif //ENABLE_VBA
-+
- *refVar = *refVal;
-+#ifdef ENABLE_VBA
-+ // lhs is a property who's value is currently null
-+ if ( !bVBAInterop || ( bVBAInterop && refVar->GetType() != SbxEMPTY ) )
-+#endif //ENABLE_VBA
- // #67607 Uno-Structs kopieren
-- checkUnoStructCopy( refVal, refVar );
-+ checkUnoStructCopy( refVal, refVar );
- if( bFlagsChanged )
- refVar->SetFlags( n );
- }
-@@ -226,28 +284,49 @@ void SbiRuntime::StepPUT()
-
- void SbiRuntime::StepSET_Impl( SbxVariableRef& refVal, SbxVariableRef& refVar )
- {
-+ bool bVBAInterop = SbiRuntime::isVBAEnabled();
- // #67733 Typen mit Array-Flag sind auch ok
- SbxDataType eValType = refVal->GetType();
- SbxDataType eVarType = refVar->GetType();
-- if( (eValType != SbxOBJECT && eValType != SbxEMPTY && !(eValType & SbxARRAY)) ||
-- (eVarType != SbxOBJECT && eVarType != SbxEMPTY && !(eVarType & SbxARRAY) ) )
-+ if( (eValType != SbxOBJECT
-+ && eValType != SbxEMPTY
-+#ifdef ENABLE_VBA
-+// seems like when using the default method its possible for objects
-+// to be empty ( no broadcast has taken place yet ) or the actual value is
-+
-+ && !bVBAInterop
-+#endif //ENABLE_VBA
-+ && !(eValType & SbxARRAY)) ||
-+ (eVarType != SbxOBJECT
-+ && eVarType != SbxEMPTY
-+#ifdef ENABLE_VBA
-+ && !bVBAInterop
-+#endif //ENABLE_VBA
-+ && !(eVarType & SbxARRAY) ) )
- {
- Error( SbERR_INVALID_USAGE_OBJECT );
- }
- else
- {
-- // Auf refVal GetObject fuer Collections ausloesen
-- SbxBase* pObjVarObj = refVal->GetObject();
-- if( pObjVarObj )
-+#ifdef ENABLE_VBA
-+ if ( refVal->GetType() == SbxOBJECT )
- {
-- SbxVariableRef refObjVal = PTR_CAST(SbxObject,pObjVarObj);
-+#endif //ENABLE_VBA
-+ // Auf refVal GetObject fuer Collections ausloesen
-+ SbxBase* pObjVarObj = refVal->GetObject();
-+ if( pObjVarObj )
-+ {
-+ SbxVariableRef refObjVal = PTR_CAST(SbxObject,pObjVarObj);
-
-- // #67733 Typen mit Array-Flag sind auch ok
-- if( refObjVal )
-- refVal = refObjVal;
-- else if( !(eValType & SbxARRAY) )
-- refVal = NULL;
-+ // #67733 Typen mit Array-Flag sind auch ok
-+ if( refObjVal )
-+ refVal = refObjVal;
-+ else if( !(eValType & SbxARRAY) )
-+ refVal = NULL;
-+ }
-+#ifdef ENABLE_VBA
- }
-+#endif //ENABLE_VBA
-
- // #52896 Wenn Uno-Sequences bzw. allgemein Arrays einer als
- // Object deklarierten Variable zugewiesen werden, kann hier
-@@ -270,8 +349,64 @@ void SbiRuntime::StepSET_Impl( SbxVariab
- SbProcedureProperty* pProcProperty = PTR_CAST(SbProcedureProperty,(SbxVariable*)refVar);
- if( pProcProperty )
- pProcProperty->setSet( true );
-+#ifdef ENABLE_VBA
-+ // get default properties for lhs & rhs where necessary
-+ // have to be careful though where a lhs object is null
-+ // meaning a 'set something = someObject' has taken places
-+ // which means we don't want to get the default prop for the rhs
-+ SbxVariable* defaultProp = NULL;
-+ bool bLHSHasDefaultProp = false;
-+ // LHS try determine if a default prop exists
-+ if ( bVBAInterop
-+ && ( refVar->GetType() == SbxOBJECT ) )
-+ {
-+ SbxVariable* pDflt = getDefaultProp( refVar );
-+ if ( pDflt )
-+ {
-+ refVar = pDflt;
-+ bLHSHasDefaultProp = true;
-+ }
-+ }
-+ // RHS only get a default prop is the rhs has one
-+ if ( bVBAInterop
-+ && ( refVal->GetType() == SbxOBJECT ) )
-+ {
-+ // check if lhs is a null object
-+ // if it is then use the object not the default property
-+ SbxObject* pObj = NULL;
-+
-+ if ( refVar->GetType() == SbxOBJECT || refVar->GetType() == SbxEMPTY )
-+ {
-+
-+ pObj = PTR_CAST(SbxObject,(SbxVariable*)refVar);
-
-+ // calling GetObject on a SbxEMPTY variable raises
-+ // object not set errors, make sure its an Object
-+ if ( !pObj && refVar->GetType() == SbxOBJECT )
-+ {
-+ SbxBase* pObjVarObj = refVar->GetObject();
-+ pObj = PTR_CAST(SbxObject,pObjVarObj);
-+ }
-+ SbxVariable* pDflt = NULL;
-+ if ( pObj || bLHSHasDefaultProp )
-+ // lhs is either a valid object || or has a defaultProp
-+ // e.g. ( NOT a 'set obj = anotherObj' operation )
-+ pDflt = getDefaultProp( refVal );
-+ if ( pDflt )
-+ refVal = pDflt;
-+ }
-+ }
-+#endif //ENABLE_VBA
-+
- *refVar = *refVal;
-+#ifdef ENABLE_VBA
-+ // lhs is a property who's value is currently (Empty e.g. no broadcast yet)
-+ // in this case if there is a default prop involved the value of the
-+ // default property may infact be void so the type will also be SbxEMPTY
-+ // in this case we do not want to call checkUnoStructCopy 'cause that will
-+ // cause an error also
-+ if ( !bVBAInterop || ( bVBAInterop && ( refVar->GetType() != SbxEMPTY ) ) )
-+#endif //ENABLE_VBA
- // #67607 Uno-Structs kopieren
- checkUnoStructCopy( refVal, refVar );
- if( bFlagsChanged )
---- basic.orig/source/classes/sbunoobj.cxx 2005-10-06 23:48:06.000000000 +0100
-+++ basic/source/classes/sbunoobj.cxx 2005-10-10 10:25:20.000000000 +0100
-@@ -137,6 +137,56 @@
- static OUString defaultNameSpace( RTL_CONSTASCII_USTRINGPARAM("org.openoffice.vba.") );
- static OUString defaultNameSpaceParent( RTL_CONSTASCII_USTRINGPARAM("org.openoffice") );
-
-+#ifdef ENABLE_VBA
-+// Gets the default property for an uno object. Note: There is some
-+// redirection built in. The property "_$DefaultProp" specifies the name
-+// of the default property. This allows the implementing object to change
-+// the name of the default property depending on its state.
-+
-+bool getDefaultPropName( SbUnoObject* pUnoObj, String& sDfltProp )
-+{
-+ OUString sName;
-+ bool result = false;
-+ Any aUnoObj = pUnoObj->getUnoAny();
-+ Reference< XPropertySet > xProps( aUnoObj, UNO_QUERY );
-+ if ( xProps.is() )
-+ {
-+ try
-+ {
-+ if ( xProps->getPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM( "_$DefaultProp" ) ) ) >>= sName )
-+ {
-+ sDfltProp = sName;
-+ result = true;
-+ }
-+ }
-+ catch( Exception& e )
-+ {
-+ }// swallow exceptions
-+ }
-+ return result;
-+}
-+
-+SbxVariable* getDefaultProp( SbxVariable* pRef )
-+{
-+ SbxVariable* pDefaultProp = NULL;
-+ SbxObject* pObj = PTR_CAST(SbxObject,(SbxVariable*) pRef);
-+ if ( !pObj )
-+ {
-+ SbxBase* pObjVarObj = pRef->GetObject();
-+ pObj = PTR_CAST(SbxObject,pObjVarObj);
-+ }
-+ if ( pObj && pObj->ISA(SbUnoObject) )
-+ {
-+ String sDfltPropName;
-+ SbUnoObject* pUnoObj = PTR_CAST(SbUnoObject,(SbxObject*)pObj);
-+ if ( getDefaultPropName( pUnoObj, sDfltPropName ) )
-+ {
-+ pDefaultProp = pUnoObj->Find( sDfltPropName , SbxCLASS_PROPERTY );
-+ }
-+ }
-+ return pDefaultProp;
-+}
-+#endif // ENABLE_VBA
-
- Reference< XComponentContext > getComponentContext_Impl( void )
- {
-@@ -551,6 +572,16 @@
- // SbUnoObject instanzieren
- String aName;
- SbUnoObject* pSbUnoObject = new SbUnoObject( aName, aValue );
-+#ifdef ENABLE_VBA
-+ String sDfltPropName;
-+ if ( getDefaultPropName( pSbUnoObject, sDfltPropName ) )
-+ {
-+ SbxProperty* pDefaultProp = ( SbxProperty*)pSbUnoObject->Find(
-+ String ( sDfltPropName ), SbxCLASS_PROPERTY );
-+ if ( pDefaultProp )
-+ pSbUnoObject->SetDfltProperty( pDefaultProp );
-+ }
-+#endif //ENABLE_VBA
- SbxObjectRef xWrapper = (SbxObject*)pSbUnoObject;
-
- // #51475 Wenn das Objekt ungueltig ist null liefern
diff --git a/patches/vba/vba-basic-globals.diff b/patches/vba/vba-basic-globals.diff
deleted file mode 100644
index 5d02b24d4..000000000
--- a/patches/vba/vba-basic-globals.diff
+++ /dev/null
@@ -1,165 +0,0 @@
-Index: basic/source/classes/sb.cxx
-===================================================================
-RCS file: /cvs/script/basic/source/classes/sb.cxx,v
-retrieving revision 1.23
-diff -u -r1.23 sb.cxx
---- basic/source/classes/sb.cxx 13 Apr 2005 09:10:07 -0000 1.23
-+++ basic/source/classes/sb.cxx 12 Aug 2005 09:50:30 -0000
-@@ -97,6 +97,11 @@
- #include "stdobj.hxx"
- #include "filefmt.hxx"
- #include "sb.hrc"
-+#ifdef ENABLE_VBA
-+#include "sbx.hxx"
-+#include "sbxvar.hxx"
-+#include "sbxcore.hxx"
-+#endif // ENABLE_VBA
- #include <basrid.hxx>
-
- #ifndef _VOS_MUTEX_HXX_
-@@ -111,6 +117,48 @@
-
- #define RTLNAME "@SBRTL"
-
-+#ifdef ENABLE_VBA
-+SbxArray* getVBAGlobals(StarBASIC* pSBasic, const String &rForName )
-+{
-+ if ( !SbiRuntime::isVBAEnabled() )
-+ {
-+ return NULL;
-+ }
-+ if( rForName == String( RTL_CONSTASCII_USTRINGPARAM( "ThisComponent" ) ) )
-+ return NULL;
-+
-+ //OSL_TRACE("getVBAGlobals() for %s",
-+ // (const sal_Char *) rtl::OUStringToOString( rForName, RTL_TEXTENCODING_UTF8 ) );
-+
-+ static String aThisComponent( RTL_CONSTASCII_USTRINGPARAM("ThisComponent") );
-+ static String aVBAHook( RTL_CONSTASCII_USTRINGPARAM( "VBAGlobals" ) );
-+
-+ SbxVariableRef pThisComp = pSBasic->Find( aThisComponent, SbxCLASS_OBJECT );
-+ static SbxArrayRef pArray;
-+ static bool isInitialised = false;
-+ if ( isInitialised )
-+ return pArray;
-+
-+ if (pThisComp && pThisComp->IsObject())
-+ {
-+// fprintf( stderr, "Has valid 'This' ?!\n" );
-+ SbxObject *pObj = static_cast<SbxObject *>(pThisComp->GetObject());
-+ SbxVariable *vba;
-+ if ((vba = pObj->Find( aVBAHook, SbxCLASS_DONTCARE/* SbxCLASS_PROPERTY */ ) ) &&
-+ (vba->GetType() & SbxARRAY))
-+ {
-+ pArray = static_cast<SbxArray *>(vba->GetObject());
-+// fprintf( stderr, "Base Type %d Class %d IsObject %d IsDataObject %d Ptr %p Count: %d\n",
-+// vba->SbxValue::GetType(), vba->GetType(),
-+// vba->IsObject(), vba->IsDataObject(),
-+// pArray, (int)pArray->Count() );
-+ isInitialised = true;
-+ return pArray;
-+ }
-+ }
-+ return NULL;
-+}
-+#endif // ENABLE_VBA
-
- //========================================================================
- // Array zur Umrechnung SFX <-> VB-Fehlercodes anlegen
-@@ -923,9 +966,31 @@
- // benen Namen gefunden wurde, der Entrypoint "Main" gesucht. Wenn das
- // auch nicht klappt, laeuft die traditionelle Suche ueber Objekte an.
-
-+
- SbxVariable* StarBASIC::Find( const String& rName, SbxClassType t )
- {
- static String aMainStr( RTL_CONSTASCII_USTRINGPARAM("Main") );
-+#ifdef ENABLE_VBA
-+
-+ //OSL_TRACE("StarBASIC::Find '%s' (%d)",
-+ // (const sal_Char *) rtl::OUStringToOString( rName, RTL_TEXTENCODING_UTF8 ), t );
-+
-+ SbxArray *pVBAGlobals = getVBAGlobals( this, rName );
-+ for (USHORT i = 0; pVBAGlobals && i < pVBAGlobals->Count(); i++)
-+ {
-+ SbxVariable *pElem = pVBAGlobals->Get( i );
-+ if (!pElem || !pElem->IsObject())
-+ continue;
-+ SbxObject *pVba = static_cast<SbxObject *>(pElem->GetObject());
-+ SbxVariable *pVbaVar;
-+ if( pVba && (pVbaVar = pVba->Find( rName, t ) ) )
-+ {
-+// fprintf( stderr, " Got VBA: call it !\n" );
-+ return pVbaVar;
-+ }
-+ }
-+// fprintf( stderr, " fall through\n" );
-+#endif
-
- SbxVariable* pRes = NULL;
- SbModule* pNamed = NULL;
-@@ -975,11 +1040,31 @@
- pRes = pNamed->Find( aMainStr, SbxCLASS_METHOD );
- if( !pRes )
- pRes = SbxObject::Find( rName, t );
-+
- return pRes;
- }
-
- BOOL StarBASIC::Call( const String& rName, SbxArray* pParam )
- {
-+#ifdef ENABLE_VBA
-+// fprintf( stderr, "StarBASIC::Call '%s'\n",
-+// (const sal_Char *) rtl::OUStringToOString( rName, RTL_TEXTENCODING_UTF8 ) );
-+
-+ SbxArray *pVBAGlobals = getVBAGlobals( this, rName );
-+ for (USHORT i = 0; pVBAGlobals && i < pVBAGlobals->Count(); i++)
-+ {
-+ SbxVariable *pElem = pVBAGlobals->Get( i );
-+ if (!pElem || !pElem->IsObject()) continue;
-+ SbxObject *pVba = static_cast<SbxObject *>(pElem->GetObject());
-+ SbxVariable *pVbaVar;
-+ if( pVba && (pVbaVar = pVba->Find( rName, SbxCLASS_DONTCARE ) ) )
-+ {
-+// fprintf( stderr, " Got VBA: call it !\n" );
-+ return pVba->Call( rName, pParam );
-+ }
-+ }
-+// fprintf( stderr, " fall through\n" );
-+#endif //ENABLE_VBA
- BOOL bRes = SbxObject::Call( rName, pParam );
- if( !bRes )
- {
-@@ -1501,7 +1586,6 @@
- return FALSE;
- }
-
--
- //========================================================================
- // #118116 Implementation Collection object
-
-Index: basic/source/classes/makefile.mk
-===================================================================
-RCS file: /cvs/script/basic/source/classes/makefile.mk,v
-retrieving revision 1.11
-diff -u -r1.11 makefile.mk
---- basic/source/classes/makefile.mk 25 Aug 2003 14:51:18 -0000 1.11
-+++ basic/source/classes/makefile.mk 12 Aug 2005 09:51:08 -0000
-@@ -66,12 +66,17 @@
- TARGET=classes
- LIBTARGET=NO
-
-+
- # --- Settings -----------------------------------------------------------
-
- ENABLE_EXCEPTIONS=TRUE
-
- .INCLUDE : settings.mk
-
-+.IF "$(ENABLE_VBA)"=="YES"
-+ CDEFS+=-DENABLE_VBA
-+.ENDIF
-+
- # --- Allgemein -----------------------------------------------------------
-
- COMMON_SLOFILES= \
diff --git a/patches/vba/vba-basic-multidim-uno-arraywrap.diff b/patches/vba/vba-basic-multidim-uno-arraywrap.diff
deleted file mode 100644
index 11ceca7e7..000000000
--- a/patches/vba/vba-basic-multidim-uno-arraywrap.diff
+++ /dev/null
@@ -1,149 +0,0 @@
-Index: basic/source/classes/sbunoobj.cxx
-===================================================================
-RCS file: /cvs/script/basic/source/classes/sbunoobj.cxx,v
-retrieving revision 1.35
-diff -u -p -r1.35 sbunoobj.cxx
---- basic/source/classes/sbunoobj.cxx 29 Sep 2005 16:10:51 -0000 1.35
-+++ basic/source/classes/sbunoobj.cxx 21 Dec 2005 17:08:46 -0000
-@@ -61,6 +61,9 @@
- #include <rtl/ustrbuf.hxx>
- #include <rtl/strbuf.hxx>
-
-+#ifdef ENABLE_VBA
-+#include <org/openoffice/vba/XArrayWrapper.hpp>
-+#endif ENABLE_VBA
-
- #include <com/sun/star/uno/XComponentContext.hpp>
- #include <com/sun/star/uno/DeploymentException.hpp>
-@@ -467,11 +530,93 @@ SbxDataType unoToSbxType( const Referenc
- }
- return eRetType;
- }
-+#ifdef ENABLE_VBA
-+void unoToSbxValue( SbxVariable* pVar, const Any& aValue );
-+static void implSequenceToMultiDimArray( SbxDimArray*& pArray, Sequence< sal_Int32 >& indices, Sequence< sal_Int32 >& sizes, const Any& aValue, sal_Int32& dimension, sal_Bool bIsZeroIndex )
-+{
-+ Type aType = aValue.getValueType();
-+ TypeClass eTypeClass = aType.getTypeClass();
-+
-+ sal_Int32 indicesIndex = indices.getLength() -1;
-+ sal_Int32 dimCopy = dimension;
-+
-+ if ( eTypeClass == TypeClass_SEQUENCE )
-+ {
-+ Reference< XIdlClass > xIdlTargetClass = TypeToIdlClass( aType );
-+ Reference< XIdlArray > xIdlArray = xIdlTargetClass->getArray();
-+ sal_Int32 nLen = xIdlArray->getLen( aValue );
-+ for ( sal_Int32 index = 0; index < nLen; ++index )
-+ {
-+ Any aElementAny = xIdlArray->get( aValue, (UINT32)index );
-+ // This detects the dimension were currently processing
-+ if ( dimCopy == dimension )
-+ {
-+ ++dimCopy;
-+ if ( sizes.getLength() < dimCopy )
-+ {
-+ sizes.realloc( sizes.getLength() + 1 );
-+ sizes[ sizes.getLength() - 1 ] = nLen;
-+ indices.realloc( indices.getLength() + 1 );
-+ indicesIndex = indices.getLength() - 1;
-+ }
-+ }
-+
-+ if ( bIsZeroIndex )
-+ indices[ dimCopy - 1 ] = index;
-+ else
-+ indices[ dimCopy - 1] = index + 1;
-+
-+ implSequenceToMultiDimArray( pArray, indices, sizes, aElementAny, dimCopy, bIsZeroIndex );
-+ }
-+
-+ }
-+ else
-+ {
-+ if ( indices.getLength() < 2 )
-+ {
-+ // #TODO find a suitable error and how to set it
-+ OSL_TRACE("Error not a MultDim Array ");
-+ return;
-+ }
-+
-+ if ( !pArray )
-+ {
-+ SbxDataType eSbxElementType = unoToSbxType( aValue.getValueTypeClass() );
-+ pArray = new SbxDimArray( eSbxElementType );
-+ sal_Int32 nIndexLen = indices.getLength();
-+
-+ // Dimension the array
-+ for ( sal_Int32 index = 0; index < nIndexLen; ++index )
-+ {
-+ if ( bIsZeroIndex )
-+ pArray->unoAddDim32( 0, sizes[ index ] - 1);
-+ else
-+ pArray->unoAddDim32( 1, sizes[ index ] );
-+
-+ }
-+ }
-+
-+ if ( pArray )
-+ {
-+ SbxDataType eSbxElementType = unoToSbxType( aValue.getValueTypeClass() );
-+ SbxVariableRef xVar = new SbxVariable( eSbxElementType );
-+ unoToSbxValue( (SbxVariable*)xVar, aValue );
-+
-+ sal_Int32* pIndices = indices.getArray();
-+ pArray->Put32( (SbxVariable*)xVar, pIndices );
-+
-+ }
-+ }
-+}
-+#endif //ENABLE_VBA
-
- void unoToSbxValue( SbxVariable* pVar, const Any& aValue )
- {
- Type aType = aValue.getValueType();
-+#ifdef ENABLE_VBA
-+ Type aArrayWrapperType = org::openoffice::vba::XArrayWrapper::static_type();
-+#endif //ENABLE_VBA
- TypeClass eTypeClass = aType.getTypeClass();
- switch( eTypeClass )
- {
- case TypeClass_TYPE:
-@@ -499,11 +643,36 @@ void unoToSbxValue( SbxVariable* pVar, c
- }
- }
- break;
--
- // Interfaces und Structs muessen in ein SbUnoObject gewrappt werden
- case TypeClass_INTERFACE:
- case TypeClass_STRUCT:
- {
-+#ifdef ENABLE_VBA
-+ if ( aType == aArrayWrapperType )
-+ {
-+ Reference< org::openoffice::vba::XArrayWrapper > xWrap( aValue, UNO_QUERY );
-+ if ( xWrap.is() )
-+ {
-+ SbxDimArray* pArray = NULL;
-+ Sequence< sal_Int32 > indices;
-+ Sequence< sal_Int32 > sizes;
-+ sal_Int32 dimension = 0;
-+ implSequenceToMultiDimArray( pArray, indices, sizes, xWrap->getArray() , dimension, xWrap->getIsZeroIndex() );
-+ if ( pArray )
-+ {
-+ SbxDimArrayRef xArray = pArray;
-+ USHORT nFlags = pVar->GetFlags();
-+ pVar->ResetFlag( SBX_FIXED );
-+ pVar->PutObject( (SbxDimArray*)xArray );
-+ pVar->SetFlags( nFlags );
-+ }
-+ else
-+ pVar->PutEmpty();
-+ break;
-+ }
-+
-+ }
-+#endif //ENABLE_VBA
- if( eTypeClass == TypeClass_STRUCT )
- {
- SbiInstance* pInst = pINST;
diff --git a/patches/vba/vba-build.diff b/patches/vba/vba-build.diff
deleted file mode 100644
index 4a7902292..000000000
--- a/patches/vba/vba-build.diff
+++ /dev/null
@@ -1,172 +0,0 @@
-Index: offuh/prj/d.lst
-===================================================================
-RCS file: /cvs/api/offuh/prj/d.lst,v
-retrieving revision 1.59
-diff -u -r1.59 d.lst
---- offuh/prj/d.lst 9 Jun 2005 14:54:16 -0000 1.59
-+++ offuh/prj/d.lst 19 Sep 2005 10:54:08 -0000
-@@ -114,6 +114,13 @@
- mkdir: %_DEST%\inc%_EXT%\com\sun\star\xml\wrapper
- #i20156 - end
-
-+mkdir: %_DEST%\inc%_EXT%\MSForms
-+
-+mkdir: %_DEST%\inc%_EXT%\org
-+mkdir: %_DEST%\inc%_EXT%\org\openoffice
-+mkdir: %_DEST%\inc%_EXT%\org\openoffice\vba
-+mkdir: %_DEST%\inc%_EXT%\org\openoffice\vba\Excel
-+
- ..\%__SRC%\inc\com\sun\star\auth\*.hdl %_DEST%\inc%_EXT%\com\sun\star\auth\*.hdl
- ..\%__SRC%\inc\com\sun\star\auth\*.hpp %_DEST%\inc%_EXT%\com\sun\star\auth\*.hpp
- ..\%__SRC%\inc\com\sun\star\accessibility\*.hpp %_DEST%\inc%_EXT%\com\sun\star\accessibility\*.hpp
-@@ -319,3 +326,11 @@
- ..\%__SRC%\inc\com\sun\star\xml\wrapper\*.hdl %_DEST%\inc%_EXT%\com\sun\star\xml\wrapper\*.hdl
- #i20156 - end
- dos: sh -c "if test %OS% = MACOSX; then create-bundle %_DEST%\lib%_EXT%\*.dylib; fi"
-+
-+..\%__SRC%\inc\MSForms\*.hpp %_DEST%\inc%_EXT%\MSForms\*.hpp
-+..\%__SRC%\inc\MSForms\*.hdl %_DEST%\inc%_EXT%\MSForms\*.hdl
-+
-+..\%__SRC%\inc\org\openoffice\vba\*.hpp %_DEST%\inc%_EXT%\org\openoffice\vba\*.hpp
-+..\%__SRC%\inc\org\openoffice\vba\*.hdl %_DEST%\inc%_EXT%\org\openoffice\vba\*.hdl
-+..\%__SRC%\inc\org\openoffice\vba\Excel\*.hpp %_DEST%\inc%_EXT%\org\openoffice\vba\Excel\*.hpp
-+..\%__SRC%\inc\org\openoffice\vba\Excel\*.hdl %_DEST%\inc%_EXT%\org\openoffice\vba\Excel\*.hdl
-Index: offapi/prj/build.lst
-===================================================================
-RCS file: /cvs/api/offapi/prj/build.lst,v
-retrieving revision 1.74
-diff -u -r1.74 build.lst
---- offapi/prj/build.lst 10 Mar 2005 13:02:47 -0000 1.74
-+++ offapi/prj/build.lst 19 Sep 2005 10:54:13 -0000
-@@ -86,4 +86,6 @@
- oa offapi\com\sun\star\geometry nmake - all oa_geometry NULL
- oa offapi\com\sun\star\rendering nmake - all oa_rendering oa_geometry NULL
- oa offapi\drafts\com\sun\star\form nmake - all oa_drafts_form NULL
--oa offapi\util nmake - all oa_util oa_auth oa_awt oa_chart oa_chart2 oa_config oa_configbootstrap oa_configbackend oa_configbackend_xml oa_datatrans_clip oa_datatrans_dnd oa_datatransfer oa_docu oa_draw oa_embed oa_fcomp oa_fcontr oa_fieldmaster oa_form oa_xforms oa_formula oa_frame oa_i18n oa_inst oa_ldap oa_ling2 oa_mail oa_media oa_mozilla oa_packages oa_manifest oa_zippackage oa_plug oa_pres oa_animations oa_putil oa_resrc oa_sax oa_xml_input oa_scan oa_sdb oa_sdbc oa_sdbcx oa_setup oa_sheet oa_style oa_svg oa_sync oa_sync2 oa_system oa_table oa_task oa_text oa_textfield oa_docinfo oa_ucb oa_view oa_xml oa_xml_dom oa_xml_xpath oa_xml_views oa_xml_events oa_image oa_xsd oa_ui oa_ui_dialogs oa_accessibility oa_form_binding oa_form_validation oa_form_submission oa_geometry oa_rendering oa_sfprovider oa_sfbrowse oa_drafts_form oa_deployment oa_deployment_ui oa_frame_status oa_gallery oa_graphic oa_security oa_crypto_sax oa_crypto oa_csax oa_wrapper NULL
-+oa offapi\org\openoffice\vba nmake - all oa_vba NULL
-+oa offapi\org\openoffice\vba\Excel nmake - all oa_excel NULL
-+oa offapi\util nmake - all oa_util oa_auth oa_awt oa_chart oa_chart2 oa_config oa_configbootstrap oa_configbackend oa_configbackend_xml oa_datatrans_clip oa_datatrans_dnd oa_datatransfer oa_docu oa_draw oa_embed oa_fcomp oa_fcontr oa_fieldmaster oa_form oa_xforms oa_formula oa_frame oa_i18n oa_inst oa_ldap oa_ling2 oa_mail oa_media oa_mozilla oa_packages oa_manifest oa_zippackage oa_plug oa_pres oa_animations oa_putil oa_resrc oa_sax oa_xml_input oa_scan oa_sdb oa_sdbc oa_sdbcx oa_setup oa_sheet oa_style oa_svg oa_sync oa_sync2 oa_system oa_table oa_task oa_text oa_textfield oa_docinfo oa_ucb oa_view oa_xml oa_xml_dom oa_xml_xpath oa_xml_views oa_xml_events oa_image oa_xsd oa_ui oa_ui_dialogs oa_accessibility oa_form_binding oa_form_validation oa_form_submission oa_geometry oa_rendering oa_sfprovider oa_sfbrowse oa_drafts_form oa_deployment oa_deployment_ui oa_frame_status oa_gallery oa_graphic oa_security oa_crypto_sax oa_crypto oa_csax oa_wrapper oa_vba oa_excel NULL
-Index: offapi/prj/d.lst
-===================================================================
-RCS file: /cvs/api/offapi/prj/d.lst,v
-retrieving revision 1.73
-diff -u -r1.73 d.lst
---- offapi/prj/d.lst 10 Mar 2005 13:03:07 -0000 1.73
-+++ offapi/prj/d.lst 19 Sep 2005 10:54:17 -0000
-@@ -104,6 +104,11 @@
- mkdir: %COMMON_DEST%\idl%_EXT%\com\sun\star\xml\wrapper
- #i20156 - end
-
-+mkdir: %COMMON_DEST%\idl%_EXT%\org
-+mkdir: %COMMON_DEST%\idl%_EXT%\org\openoffice
-+mkdir: %COMMON_DEST%\idl%_EXT%\org\openoffice\vba
-+mkdir: %COMMON_DEST%\idl%_EXT%\org\openoffice\vba\Excel
-+
- ..\%__SRC%\misc\offapi.autodoc %_DEST%\idl%_EXT%\offapi.autodoc
- ..\%__SRC%\ucr\offapi.db %_DEST%\bin%_EXT%\offapi.rdb
- ..\%__SRC%\ucrdoc\offapi_doc.db %_DEST%\bin%_EXT%\offapi_doc.rdb
-@@ -201,6 +206,9 @@
- ..\drafts\com\sun\star\chart\*.idl %COMMON_DEST%\idl%_EXT%\drafts\com\sun\star\chart
- ..\drafts\com\sun\star\form\*.idl %COMMON_DEST%\idl%_EXT%\drafts\com\sun\star\form
-
-+..\org\openoffice\vba\*.idl %COMMON_DEST%\idl%_EXT%\org\openoffice\vba
-+..\org\openoffice\vba\Excel\*.idl %COMMON_DEST%\idl%_EXT%\org\openoffice\vba\Excel
-+
- #i20156 - add xmlsecurity module related
- ..\com\sun\star\security\*.idl %COMMON_DEST%\idl%_EXT%\com\sun\star\security
- ..\com\sun\star\xml\crypto\*.idl %COMMON_DEST%\idl%_EXT%\com\sun\star\xml\crypto
-Index: offapi/util/makefile.mk
-===================================================================
-RCS file: /cvs/api/offapi/util/makefile.mk,v
-retrieving revision 1.89
-diff -u -r1.89 makefile.mk
---- offapi/util/makefile.mk 10 Mar 2005 13:03:32 -0000 1.89
-+++ offapi/util/makefile.mk 19 Sep 2005 10:54:20 -0000
-@@ -168,6 +168,12 @@
- $(UCR)$/xsec-csax.db \
- $(UCR)$/xsec-sax.db \
- $(UCR)$/xsec-wrapper.db
-+
-+.IF "$(ENABLE_VBA)"=="YES"
-+ UNOIDLDBFILES+=$(UCR)$/vba.db
-+ UNOIDLDBFILES+=$(UCR)$/excel.db
-+.ENDIF
-+
- #i20156 - end
-
- REFERENCE_RDB=$(PRJ)$/type_reference$/OO_20$/types.rdb
-Index: sc/prj/d.lst
-===================================================================
-RCS file: /cvs/sc/sc/prj/d.lst,v
-retrieving revision 1.21
-diff -u -r1.21 d.lst
---- sc/prj/d.lst 14 Mar 2005 09:46:35 -0000 1.21
-+++ sc/prj/d.lst 29 Jul 2005 14:33:37 -0000
-@@ -27,6 +27,7 @@
- ..\%__SRC%\misc\*.map %_DEST%\bin%_EXT%\*.map
- ..\%__SRC%\misc\sc.csv %_DEST%\inc%_EXT%\sc.csv
- ..\%__SRC%\lib\sci.lib %_DEST%\lib%_EXT%\sci.lib
-+..\%__SRC%\lib\vba*.* %_DEST%\lib%_EXT%\vba*.*
- ..\%__SRC%\slb\lib*.* %_DEST%\lib%_EXT%\lib*.*
- ..\%__SRC%\lib\lib*.* %_DEST%\lib%_EXT%\lib*.*
- ..\xml\*.xml %_DEST%\xml%_EXT%\*.xml
-Index: sc/util/makefile.mk
-===================================================================
-RCS file: /cvs/sc/sc/util/makefile.mk,v
-retrieving revision 1.30
-diff -u -p -u -r1.30 makefile.mk
---- sc/util/makefile.mk 15 Apr 2005 10:32:42 -0000 1.30
-+++ sc/util/makefile.mk 8 Sep 2005 08:24:05 -0000
-@@ -316,6 +316,34 @@ LIB8OBJFILES = \
- $(SLO)$/dpgroupdlg.obj \
- $(SLO)$/editfield.obj
-
-+.IF "$(ENABLE_VBA)"=="YES"
-+
-+TARGET_VBA=vbaobj
-+SHL9TARGET=$(TARGET_VBA)$(UPD)$(DLLPOSTFIX).uno
-+SHL9IMPLIB= i$(TARGET_VBA)
-+
-+SHL9VERSIONMAP=$(TARGET_VBA).map
-+SHL9DEF=$(MISC)$/$(SHL9TARGET).def
-+DEF9NAME=$(SHL9TARGET)
-+
-+SHL9STDLIBS= \
-+ $(CPPUHELPERLIB) \
-+ $(CPPULIB) \
-+ $(COMPHELPERLIB) \
-+ $(TOOLSLIB) \
-+ $(SALLIB)\
-+ $(BASICLIB) \
-+ $(SFXLIB) \
-+ $(SVTOOLLIB) \
-+ $(SVLLIB) \
-+ -l$(SHL8TARGET) \
-+ -l$(SHL1TARGET)
-+
-+SHL9DEPN=$(SHL1TARGETN) $(SHL8TARGETN)
-+SHL9LIBS=$(SLB)$/$(TARGET_VBA).lib
-+
-+.ENDIF
-+
- # --- Targets -------------------------------------------------------------
-
- .INCLUDE : target.mk
-Index: unoil/util/makefile.mk
-===================================================================
-RCS file: /cvs/udk/unoil/util/makefile.mk,v
-retrieving revision 1.2
-diff -u -r1.2 makefile.mk
---- unoil/util/makefile.mk 26 Nov 2001 17:44:41 -0000 1.2
-+++ unoil/util/makefile.mk 19 Sep 2005 13:49:43 -0000
-@@ -71,6 +71,10 @@
- MAXLINELENGTH = 100000
-
- JARCLASSDIRS = com drafts
-+.IF "$(ENABLE_VBA)"=="YES"
-+JARCLASSDIRS += org
-+.ENDIF
-+
- JARTARGET = $(TARGET).jar
- JARCOMPRESS = TRUE
-
diff --git a/patches/vba/vba-dim-and-constants-patch.diff b/patches/vba/vba-dim-and-constants-patch.diff
deleted file mode 100644
index d42572341..000000000
--- a/patches/vba/vba-dim-and-constants-patch.diff
+++ /dev/null
@@ -1,362 +0,0 @@
---- basic.orig/source/runtime/step1.cxx 2005-09-19 09:36:54.000000000 +0100
-+++ basic/source/runtime/step1.cxx 2005-09-19 09:28:25.000000000 +0100
-@@ -71,6 +71,10 @@
-
- #include "segmentc.hxx"
- #pragma SW_SEGMENT_CLASS( SBRUNTIME, SBRUNTIME_CODE )
-+#ifdef ENABLE_VBA
-+bool checkUnoObjectType( SbUnoObject* refVal,
-+ const String& aClass );
-+#endif //ENABLE_VBA
-
- // Laden einer numerischen Konstanten (+ID)
-
-@@ -501,9 +506,22 @@
- {
- if( !implIsClass( pObj, aClass ) )
- {
-+#ifndef ENABLE_VBA
- if( bRaiseErrors )
- Error( SbERR_INVALID_USAGE_OBJECT );
- bOk = false;
-+#else
-+ if ( SbiRuntime::isVBAEnabled() && pObj->IsA( TYPE(SbUnoObject) ) )
-+ {
-+ SbUnoObject* pUnoObj = PTR_CAST(SbUnoObject,pObj);
-+ bOk = checkUnoObjectType( pUnoObj, aClass );
-+ }
-+ else
-+ bOk = false;
-+ if ( !bOk )
-+ if( bRaiseErrors )
-+ Error( SbERR_INVALID_USAGE_OBJECT );
-+#endif // ENABLE_VBA
- }
- else
- {
---- basic.orig/source/runtime/step2.cxx 2005-09-19 09:36:54.000000000 +0100
-+++ basic/source/runtime/step2.cxx 2005-09-19 09:40:10.000000000 +0100
-@@ -72,14 +72,19 @@
- #include "opcodes.hxx"
-
- #include <com/sun/star/container/XIndexAccess.hpp>
-+
- #ifdef ENABLE_VBA
- #include <org/openoffice/vba/XCollection.hpp>
- #endif //ENABLE_VBA
-+
- #include <com/sun/star/uno/Any.hxx>
-
- using namespace com::sun::star::container;
- using namespace com::sun::star::lang;
-+#ifdef ENABLE_VBA
-+SbxVariable* getVBAConstant( const String& rName );
-
-+#endif //ENABLE_VBA
- Any sbxToUnoValue( SbxVariable* pVar );
-
- // Suchen eines Elements
-@@ -152,10 +160,25 @@
- pElem->SetName( aName );
- refLocals->Put( pElem, refLocals->Count() );
- }
-+#ifdef ENABLE_VBA
-+ else if ( bIsVBAInterOp )
-+ {
-+ // last gasp see if name matches a
-+ // vba idl constant (with no namespace)
-+ //
-+ pElem = getVBAConstant( aName );
-+ //Not sure whether I should
-+ //store this as a local ref or not,
-+ //what are the implications?
-+
-+ //refLocals->Put( pElem, refLocals->Count() );
-+ }
-+#endif //ENABLE_VBA
- }
-
- if( !pElem )
- {
-+
- // Nicht da und nicht im Objekt?
- // Hat das Ding Parameter, nicht einrichten!
- if( nOp1 & 0x8000 )
-Index: basic/source/classes/sbunoobj.cxx
-===================================================================
-RCS file: /cvs/script/basic/source/classes/sbunoobj.cxx,v
-retrieving revision 1.32
-diff -u -r1.32 sbunoobj.cxx
---- basic/source/classes/sbunoobj.cxx 13 Apr 2005 09:10:23 -0000 1.32
-+++ basic/source/classes/sbunoobj.cxx 29 Sep 2005 12:30:49 -0000
-@@ -134,6 +134,11 @@
- #include<runtime.hxx>
-
- #include<math.h>
-+#ifdef ENABLE_VBA
-+#include <hash_map>
-+#include <com/sun/star/reflection/XTypeDescriptionEnumerationAccess.hpp>
-+#include <com/sun/star/reflection/XConstantsTypeDescription.hpp>
-+#endif //ENABLE_VBA
-
- TYPEINIT1(SbUnoMethod,SbxMethod)
- TYPEINIT1(SbUnoProperty,SbxProperty)
-@@ -154,6 +160,8 @@
- static String aIllegalArgumentExceptionName
- ( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.lang.IllegalArgumentException" ) );
- static OUString aSeqLevelStr( RTL_CONSTASCII_USTRINGPARAM("[]") );
-+static OUString defaultNameSpace( RTL_CONSTASCII_USTRINGPARAM("org.openoffice.vba.") );
-+static OUString defaultNameSpaceParent( RTL_CONSTASCII_USTRINGPARAM("org.openoffice") );
-
-
- Reference< XComponentContext > getComponentContext_Impl( void )
-@@ -1383,6 +1391,50 @@
- return aName;
- }
-
-+bool checkUnoObjectType( SbUnoObject* pUnoObj,
-+ const String& aClass )
-+{
-+ bool result = false;
-+ Any aToInspectObj = pUnoObj->getUnoAny();
-+ TypeClass eType = aToInspectObj.getValueType().getTypeClass();
-+ if( eType != TypeClass_INTERFACE )
-+ return false;
-+ const Reference< XInterface > x = *(Reference< XInterface >*)aToInspectObj.getValue();
-+ Reference< XTypeProvider > xTypeProvider( x, UNO_QUERY );
-+ if( xTypeProvider.is() )
-+ {
-+ Sequence< Type > aTypeSeq = xTypeProvider->getTypes();
-+ const Type* pTypeArray = aTypeSeq.getConstArray();
-+ UINT32 nIfaceCount = aTypeSeq.getLength();
-+ for( UINT32 j = 0 ; j < nIfaceCount ; j++ )
-+ {
-+ const Type& rType = pTypeArray[j];
-+
-+ Reference<XIdlClass> xClass = TypeToIdlClass( rType );
-+ if( xClass.is() )
-+ {
-+ OUString sClassName = xClass->getName();
-+ OSL_TRACE("Checking if object implements %s",
-+ OUStringToOString( defaultNameSpace + aClass,
-+ RTL_TEXTENCODING_UTF8 ).getStr() );
-+ // although interfaces in the org.openoffice.vba namespace
-+ // obey the idl rules and have a leading X, in basic we
-+ // want to be able to do something like
-+ // 'dim wrkbooks as WorkBooks'
-+ // so test assumes the 'X' has been dropped
-+ if ( sClassName.equalsIgnoreAsciiCase( defaultNameSpace + OUString( RTL_CONSTASCII_USTRINGPARAM("X") ) + aClass ) ||
-+ sClassName.equalsIgnoreAsciiCase( aClass ) )
-+ {
-+ result = true;
-+ break;
-+ }
-+ }
-+ else
-+ break;
-+ }
-+ }
-+ return result;
-+}
-
- // Dbg-Hilfsmethode zum Auslesen der in einem Object implementierten Interfaces
- String Impl_GetSupportedInterfaces( SbUnoObject* pUnoObj )
-@@ -2896,27 +2943,189 @@
- refVar->PutBool( TRUE );
- }
-
--// Funktion, um einen globalen Bezeichner im
--// UnoScope zu suchen und fuer Sbx zu wrappen
--SbxVariable* findUnoClass( const String& rName )
-+#ifdef ENABLE_VBA
-+typedef std::hash_map< OUString, std::vector< OUString >, OUStringHash, ::std::equal_to< OUString > > ModuleHash;
-+
-+
-+// helper wrapper function to interact with TypeProvider and
-+// XTypeDescriptionEnumerationAccess.
-+// if it fails for whatever reason
-+// returned Reference<> be null e.g. .is() will be false
-+
-+Reference< XTypeDescriptionEnumeration >
-+getTypeDescriptorEnumeration( const OUString& sSearchRoot,
-+ const Sequence< TypeClass >& types, TypeDescriptionSearchDepth depth )
-+{
-+ Reference< XTypeDescriptionEnumeration > xEnum;
-+ Reference< XTypeDescriptionEnumerationAccess> xTypeEnumAccess( getTypeProvider_Impl(), UNO_QUERY );
-+ if ( xTypeEnumAccess.is() )
-+ {
-+ try
-+ {
-+ xEnum = xTypeEnumAccess->createTypeDescriptionEnumeration(
-+ sSearchRoot, types, depth );
-+ }
-+ catch( NoSuchTypeNameException& nstne ) {}
-+ catch( InvalidTypeNameException& nstne ) {}
-+ }
-+ return xEnum;
-+}
-+
-+// Returns the list of child modules relative to sSearchRoot
-+// names are fully qualified e.g. search with sSearchRoot = "org.openoffice.vba"
-+// will return elements like "org.openoffice.vba.child"
-+
-+const std::vector< OUString >& getModulesToSearch( const OUString& sSearchRoot )
- {
-- // #105550 Check if module exists
-- SbUnoClass* pUnoClass = NULL;
-+ // cache previous searches ( creating EnumerationAccess is expensive
-+ // apparently see api doc for XTypeDescriptionEnumerationAccess )
-+ static ModuleHash aModCache;
-+
-+ ModuleHash::const_iterator it = aModCache.find( sSearchRoot );
-+
-+ if ( it != aModCache.end() )
-+ return it->second;
-+
-+ Sequence< TypeClass > types(2);
-+ types[ 0 ] = TypeClass_MODULE;
-+ types[ 1 ] = TypeClass_CONSTANTS;
-+ Reference< XTypeDescriptionEnumeration > xEnum = getTypeDescriptorEnumeration( sSearchRoot, types, TypeDescriptionSearchDepth_INFINITE );
-+ if ( xEnum.is() )
-+ {
-+ std::vector< OUString > modules;
-+ while ( xEnum->hasMoreElements() )
-+ {
-+ Reference< XTypeDescription > xType( xEnum->nextElement(), UNO_QUERY );
-+ if ( xType.is() )
-+ modules.push_back( xType->getName() );
-+ }
-+ aModCache[ sSearchRoot ] = modules;
-+ }
-+
-+ // any failures above will result in no names to search (returned)
-+ return aModCache[ sSearchRoot ];
-+}
-
-+typedef std::hash_map< OUString, Any, OUStringHash, ::std::equal_to< OUString > > VBAConstantsHash;
-+
-+SbxVariable* getVBAConstant( const String& rName )
-+{
-+ SbxVariable* pConst = NULL;
-+ static VBAConstantsHash aConstCache;
-+ static bool isInited = false;
-+ if ( !isInited )
-+ {
-+ Sequence< TypeClass > types(1);
-+ types[ 0 ] = TypeClass_CONSTANTS;
-+ Reference< XTypeDescriptionEnumeration > xEnum = getTypeDescriptorEnumeration( defaultNameSpace, types, TypeDescriptionSearchDepth_INFINITE );
-+
-+ while ( xEnum->hasMoreElements() )
-+ {
-+ Reference< XConstantsTypeDescription > xConstants( xEnum->nextElement(), UNO_QUERY );
-+ if ( xConstants.is() )
-+ {
-+ Sequence< Reference< XConstantTypeDescription > > aConsts = xConstants->getConstants();
-+ Reference< XConstantTypeDescription >* pSrc = aConsts.getArray();
-+ sal_Int32 nLen = aConsts.getLength();
-+ for ( sal_Int32 index =0; index<nLen; ++pSrc, ++index )
-+ {
-+ Reference< XConstantTypeDescription >& rXConst =
-+ *pSrc;
-+ OUString sFullName = rXConst->getName();
-+ sal_Int32 indexLastDot = sFullName.lastIndexOf('.');
-+ OUString sLeafName;
-+ if ( indexLastDot > -1 )
-+ sLeafName = sFullName.copy( indexLastDot + 1);
-+ aConstCache[ sLeafName ] = rXConst->getConstantValue();
-+ }
-+ }
-+ }
-+ isInited = true;
-+ }
-+ VBAConstantsHash::const_iterator it = aConstCache.find( rName );
-+ if ( it != aConstCache.end() )
-+ {
-+ pConst = new SbxVariable( SbxVARIANT );
-+ pConst->SetName( rName );
-+ unoToSbxValue( pConst, it->second );
-+ }
-+ return pConst;
-+}
-+
-+#endif //ENABLE_VBA
-+
-+SbUnoClass* findUnoClass_Impl( const String& rName )
-+{
-+ OSL_TRACE("findUnoClass_Impl for %s",
-+ OUStringToOString( rName, RTL_TEXTENCODING_UTF8 ).getStr() );
-+
-+ SbUnoClass* pUnoClass = NULL;
- Reference< XHierarchicalNameAccess > xTypeAccess = getTypeProvider_Impl();
- Reference< XTypeDescription > xTypeDesc;
-- if( xTypeAccess->hasByHierarchicalName( rName ) )
-+ Reference< XExactName > xExact( xTypeAccess, UNO_QUERY );
-+ OUString sName = rName;
-+
-+ if ( xExact.is()
-+ && SbiRuntime::isVBAEnabled()
-+ && ( sName.indexOf( defaultNameSpace ) == 0 )
-+ )
-+ {
-+ OUString sExactName = xExact->getExactName( sName );
-+ if ( sExactName.getLength() )
-+ sName = sExactName;
-+ }
-+ if( xTypeAccess->hasByHierarchicalName( sName ) )
- {
-- Any aRet = xTypeAccess->getByHierarchicalName( rName );
-+ Any aRet = xTypeAccess->getByHierarchicalName( sName );
- aRet >>= xTypeDesc;
--
-+
- if( xTypeDesc.is() )
- {
- TypeClass eTypeClass = xTypeDesc->getTypeClass();
- if( eTypeClass == TypeClass_MODULE || eTypeClass == TypeClass_CONSTANTS )
-- pUnoClass = new SbUnoClass( rName );
-+ pUnoClass = new SbUnoClass( sName );
- }
- }
-+ return pUnoClass;
-+}
-+// Funktion, um einen globalen Bezeichner im
-+// UnoScope zu suchen und fuer Sbx zu wrappen
-+SbxVariable* findUnoClass( const String& rName )
-+{
-+ OSL_TRACE("findUnoClass for %s",
-+ OUStringToOString( rName, RTL_TEXTENCODING_UTF8 ).getStr() );
-+ // #105550 Check if module exists
-+ SbUnoClass* pUnoClass = NULL;
-+#ifdef ENABLE_VBA
-+
-+ pUnoClass = findUnoClass_Impl( rName );
-+ // only search thru namespaces if handling imported vba code is set
-+ // and of course not after finding a constant group or module for
-+ // rName
-+ if ( !pUnoClass && SbiRuntime::isVBAEnabled() )
-+ {
-+ if ( rName.CompareTo( defaultNameSpace.getStr(), defaultNameSpace.getLength() ) != COMPARE_EQUAL )
-+
-+ {
-+ const std::vector< OUString >& modules = getModulesToSearch( defaultNameSpaceParent );
-+ std::vector< OUString >::const_iterator it = modules.begin();
-+ std::vector< OUString >::const_iterator it_end = modules.end();
-+ for ( ; it != it_end; ++it )
-+ {
-+ static OUString sDot( RTL_CONSTASCII_USTRINGPARAM(".") );
-+ OUString sClassName = *it;
-+ sClassName += (sDot + rName);
-+ OSL_TRACE("...Searching for %s",
-+ OUStringToOString( sClassName, RTL_TEXTENCODING_UTF8 ).getStr() );
-+ if ( pUnoClass = findUnoClass_Impl( sClassName ) )
-+ break;
-+ }
-+ }
-+ }
-+#else
-+ pUnoClass = findUnoClass_Impl( rName );
-+#endif //ENABLE_VBA
-+
- return pUnoClass;
- }
-
diff --git a/patches/vba/vba-evaluate-support.diff b/patches/vba/vba-evaluate-support.diff
deleted file mode 100644
index d44fefbaf..000000000
--- a/patches/vba/vba-evaluate-support.diff
+++ /dev/null
@@ -1,80 +0,0 @@
---- /data4/sles/ooo-buildCopy/ooo-build/build/src680-m125/basic/source/runtime/step2.cxx 2005-09-20 15:48:29.000000000 +0100
-+++ basic/source/runtime/step2.cxx 2005-09-21 14:21:00.000000000 +0100
-@@ -106,6 +106,26 @@
- BOOL bFatalError = FALSE;
- SbxDataType t = (SbxDataType) nOp2;
- String aName( pImg->GetString( nOp1 & 0x7FFF ) );
-+#ifdef ENABLE_VBA
-+ bool bIsVBAInterOp = SbiRuntime::isVBAEnabled();
-+ // Hacky capture of Evaluate [] syntax
-+ // this should be tackled I feel at the pcode level
-+ if ( bIsVBAInterOp && aName.Search('[') == 0 )
-+ {
-+ // emulate pcode here
-+ StepARGC();
-+ // psuedo StepLOADSC
-+ String sArg = aName.Copy( 1, aName.Len() - 2 );
-+ SbxVariable* p = new SbxVariable;
-+ p->PutString( sArg );
-+ PushVar( p );
-+ //
-+ StepARGV();
-+ nOp1 = nOp1 | 0x8000; // indicate params are present
-+ aName = String::CreateFromAscii("Evaluate");
-+ }
-+#endif //ENABLE_VBA
-+
- if( bLocal )
- pElem = refLocals->Find( aName, SbxCLASS_DONTCARE );
- if( !pElem )
-Index: basic/source/comp/makefile.mk
-===================================================================
-RCS file: /cvs/script/basic/source/comp/makefile.mk,v
-retrieving revision 1.1.1.1
-diff -u -r1.1.1.1 makefile.mk
---- basic/source/comp/makefile.mk 18 Sep 2000 16:12:10 -0000 1.1.1.1
-+++ basic/source/comp/makefile.mk 24 Sep 2005 18:10:23 -0000
-@@ -71,6 +71,10 @@
- .INCLUDE : settings.mk
- .INCLUDE : sv.mk
-
-+.IF "$(ENABLE_VBA)"=="YES"
-+ CDEFS+=-DENABLE_VBA
-+.ENDIF
-+
- CXXFILES= \
- sbcomp.cxx \
- dim.cxx \
-Index: basic/source/comp/scanner.cxx
-===================================================================
-RCS file: /cvs/script/basic/source/comp/scanner.cxx,v
-retrieving revision 1.11
-diff -u -r1.11 scanner.cxx
---- basic/source/comp/scanner.cxx 20 Sep 2004 12:30:12 -0000 1.11
-+++ basic/source/comp/scanner.cxx 24 Sep 2005 18:10:56 -0000
-@@ -80,6 +80,9 @@
- #include <unotools/charclass.hxx>
- #endif
-
-+#ifdef ENABLE_VBA
-+#include <runtime.hxx>
-+#endif //ENABLE_VBA
-
- SbiScanner::SbiScanner( const ::rtl::OUString& rBuf, StarBASIC* p ) : aBuf( rBuf )
- {
-@@ -437,7 +440,15 @@
- if( *pLine != cSep || cSep == ']' ) break;
- } else aError = cSep, GenError( SbERR_EXPECTED );
- }
-+#ifdef ENABLE_VBA
-+ // If VBA Interop then doen't eat the [] chars
-+ if ( cSep == ']' && SbiRuntime::isVBAEnabled() )
-+ aSym = aLine.copy( n - 1, nCol - n + 1);
-+ else
-+ aSym = aLine.copy( n, nCol - n - 1 );
-+#else
- aSym = aLine.copy( n, nCol - n - 1 );
-+#endif
- // Doppelte Stringbegrenzer raus
- String s( cSep );
- s += cSep;
diff --git a/patches/vba/vba-optionbasesupport.diff b/patches/vba/vba-optionbasesupport.diff
deleted file mode 100644
index 029ca3539..000000000
--- a/patches/vba/vba-optionbasesupport.diff
+++ /dev/null
@@ -1,263 +0,0 @@
-Index: basic/source/runtime/runtime.cxx
-===================================================================
-RCS file: /cvs/script/basic/source/runtime/runtime.cxx,v
-retrieving revision 1.25
-diff -u -p -r1.25 runtime.cxx
---- basic/source/runtime/runtime.cxx 4 Nov 2005 15:33:49 -0000 1.25
-+++ basic/source/runtime/runtime.cxx 21 Dec 2005 10:27:06 -0000
-@@ -1116,4 +1271,10 @@ void SbiRuntime::DllCall
- Error( nErr );
- PushVar( pRes );
- }
--
-+#ifdef ENABLE_VBA
-+USHORT
-+SbiRuntime::GetImageFlag( USHORT n ) const
-+{
-+ return pImg->GetFlag( n );
-+}
-+#endif //ENABLE_VBA
-Index: basic/source/inc/runtime.hxx
-===================================================================
-RCS file: /cvs/script/basic/source/inc/runtime.hxx,v
-retrieving revision 1.26
-diff -u -p -r1.26 runtime.hxx
---- basic/source/inc/runtime.hxx 4 Nov 2005 15:33:21 -0000 1.26
-+++ basic/source/inc/runtime.hxx 21 Dec 2005 10:47:23 -0000
-@@ -467,6 +467,9 @@ class SbiRuntime
- void StepDCREATE_REDIMP(USHORT,USHORT), StepDCREATE_IMPL(USHORT,USHORT,BOOL);
- void StepFIND_CM( USHORT, USHORT );
- public:
-+#ifdef ENABLE_VBA
-+ USHORT GetImageFlag( USHORT n ) const;
-+#endif //ENABLE_VBA
- xub_StrLen nLine,nCol1,nCol2; // aktuelle Zeile, Spaltenbereich
- SbiRuntime* pNext; // Stack-Chain
-
-Index: basic/source/comp/parser.cxx
-===================================================================
-RCS file: /cvs/script/basic/source/comp/parser.cxx,v
-retrieving revision 1.13
-diff -u -p -r1.13 parser.cxx
---- basic/source/comp/parser.cxx 29 Sep 2005 16:17:04 -0000 1.13
-+++ basic/source/comp/parser.cxx 21 Dec 2005 10:27:07 -0000
-@@ -150,6 +151,9 @@ SbiParser::SbiParser( StarBASIC* pb, SbM
- bSingleLineIf =
- bExplicit = FALSE;
- bClassModule = FALSE;
-+#ifdef ENABLE_VBA
-+ bOptionBaseOne = FALSE;
-+#endif //ENABLE_VBA
- pPool = &aPublics;
- for( short i = 0; i < 26; i++ )
- eDefTypes[ i ] = SbxVARIANT; // Kein expliziter Defaulttyp
-@@ -678,6 +685,10 @@ void SbiParser::Option()
- if( nVal == 0 || nVal == 1 )
- {
- nBase = (short) nVal;
-+#ifdef ENABLE_VBA
-+ if ( nBase )
-+ bOptionBaseOne = TRUE;
-+#endif //ENABLE_VBA
- break;
- }
- }
-
---- basic/source/inc/parser.hxx 29 Sep 2005 16:31:38 -0000 1.8
-+++ basic/source/inc/parser.hxx 21 Dec 2005 11:19:01 -0000
-@@ -94,6 +94,9 @@ public:
- BOOL bText; // OPTION COMPARE TEXT
- BOOL bExplicit; // TRUE: OPTION EXPLICIT
- BOOL bClassModule; // TRUE: OPTION ClassModule
-+#ifdef ENABLE_VBA
-+ BOOL bOptionBaseOne; // TRUE: OPTION Base 1 otherwise default Base 0
-+#endif //ENABLE_VBA
- IfaceVector aIfaceVector; // Holds all interfaces implemented by a class module
- SbxDataType eDefTypes[26]; // DEFxxx-Datentypen
-
-Index: basic/source/comp/codegen.cxx
-===================================================================
-RCS file: /cvs/script/basic/source/comp/codegen.cxx,v
-retrieving revision 1.11
-diff -u -p -r1.11 codegen.cxx
---- basic/source/comp/codegen.cxx 29 Sep 2005 16:17:04 -0000 1.11
-+++ basic/source/comp/codegen.cxx 21 Dec 2005 10:27:07 -0000
-@@ -136,6 +136,10 @@ void SbiCodeGen::Save()
- // OPTION EXPLICIT-Flag uebernehmen
- if( pParser->bExplicit )
- p->SetFlag( SBIMG_EXPLICIT );
-+#ifdef ENABLE_VBA
-+ if( pParser->bOptionBaseOne )
-+ p->SetFlag( SBIMG_OPTIONBASEONE );
-+#endif //ENABLE_VBA
-
- int nIfaceCount = 0;
- if( pParser->bClassModule )
-Index: basic/source/inc/image.hxx
-===================================================================
-RCS file: /cvs/script/basic/source/inc/image.hxx,v
-retrieving revision 1.8
-diff -u -p -r1.8 image.hxx
---- basic/source/inc/image.hxx 29 Sep 2005 16:31:38 -0000 1.8
-+++ basic/source/inc/image.hxx 21 Dec 2005 10:27:07 -0000
-@@ -103,5 +103,8 @@ public:
- #define SBIMG_COMPARETEXT 0x0002 // OPTION COMPARE TEXT ist aktiv
- #define SBIMG_INITCODE 0x0004 // Init-Code vorhanden
- #define SBIMG_CLASSMODULE 0x0008 // OPTION ClassModule is active
-+#ifdef ENABLE_VBA
-+#define SBIMG_OPTIONBASEONE 0x0010 // OPTION Base is 1
-+#endif //ENABLE_VBA
-
- #endif
-Index: basic/source/classes/sbunoobj.cxx
-===================================================================
-RCS file: /cvs/script/basic/source/classes/sbunoobj.cxx,v
-retrieving revision 1.35
-diff -u -p -r1.35 sbunoobj.cxx
---- basic/source/classes/sbunoobj.cxx 29 Sep 2005 16:10:51 -0000 1.35
-+++ basic/source/classes/sbunoobj.cxx 21 Dec 2005 10:27:09 -0000
-@@ -97,6 +97,10 @@ using namespace com::sun::star::bridge;
- using namespace cppu;
- using namespace rtl;
-
-+#ifdef ENABLE_VBA
-+// Honour Option Base 1
-+bool IsBaseIndexOne();
-+#endif //ENABLE_VBA
-
- #include<sbstar.hxx>
- #include<sbuno.hxx>
-@@ -566,7 +667,6 @@ void unoToSbxValue( SbxVariable* pVar, c
- case TypeClass_EXCEPTION: break;
- case TypeClass_ARRAY: break;
- */
--
- case TypeClass_ENUM:
- {
- sal_Int32 nEnum = 0;
-@@ -574,7 +674,6 @@ void unoToSbxValue( SbxVariable* pVar, c
- pVar->PutLong( nEnum );
- }
- break;
--
- case TypeClass_SEQUENCE:
- {
- Reference< XIdlClass > xIdlTargetClass = TypeToIdlClass( aType );
-@@ -593,18 +692,29 @@ void unoToSbxValue( SbxVariable* pVar, c
- xArray = new SbxDimArray( eSbxElementType );
- if( nLen > 0 )
- {
-- xArray->unoAddDim32( 0, nLen - 1 );
-+#ifdef ENABLE_VBA
-+// Honour Option Base 1
-+ if ( IsBaseIndexOne() && SbiRuntime::isVBAEnabled() )
-+ xArray->unoAddDim32( 1, nLen );
-+ else
-+#endif //ENABLE_VBA
-+ xArray->unoAddDim32( 0, nLen - 1 );
-
- // Elemente als Variablen eintragen
- for( i = 0 ; i < nLen ; i++ )
- {
-+ sal_Int32 index = i;
- // Elemente wandeln
- Any aElementAny = xIdlArray->get( aValue, (UINT32)i );
- SbxVariableRef xVar = new SbxVariable( eSbxElementType );
- unoToSbxValue( (SbxVariable*)xVar, aElementAny );
--
-+#ifdef ENABLE_VBA
-+// Honour Option Base 1
-+ if ( IsBaseIndexOne() && SbiRuntime::isVBAEnabled() )
-+ index++;
-+#endif //ENABLE_VBA
- // Ins Array braten
-- xArray->Put32( (SbxVariable*)xVar, &i );
-+ xArray->Put32( (SbxVariable*)xVar, &index );
- }
- }
- else
-
-
-
-Index: basic/source/runtime/methods1.cxx
-===================================================================
-RCS file: /cvs/script/basic/source/runtime/methods1.cxx,v
-retrieving revision 1.23
-diff -u -p -r1.23 methods1.cxx
---- basic/source/runtime/methods1.cxx 7 Sep 2005 21:40:12 -0000 1.23
-+++ basic/source/runtime/methods1.cxx 21 Dec 2005 11:29:20 -0000
-@@ -100,6 +100,10 @@
- #include "sbunoobj.hxx"
- #endif
- #include "propacc.hxx"
-+#ifdef ENABLE_VBA
-+#include <image.hxx>
-+
-+#endif //ENABLE_VBA
-
-
- #ifndef _COMPHELPER_PROCESSFACTORY_HXX_
-@@ -590,6 +594,20 @@ RTLFUNC(FreeLibrary)
- ByteString aByteDLLName( rPar.Get(1)->GetString(), gsl_getSystemTextEncoding() );
- pINST->GetDllMgr()->FreeDll( aByteDLLName );
- }
-+#ifdef ENABLE_VBA
-+bool IsBaseIndexOne()
-+{
-+ bool result = false;
-+ if ( pINST )
-+ if ( pINST->pRun )
-+ {
-+ USHORT res = pINST->pRun->GetImageFlag( SBIMG_OPTIONBASEONE );
-+ if ( res )
-+ result = true;
-+ }
-+ return result;
-+}
-+#endif //ENABLE_VBA
-
- RTLFUNC(Array)
- {
-@@ -598,13 +616,26 @@ RTLFUNC(Array)
-
- // Option Base zunaechst ignorieren (kennt leider nur der Compiler)
- if( nArraySize )
-- pArray->AddDim( 0, nArraySize-1 );
-+#ifdef ENABLE_VBA
-+ if ( IsBaseIndexOne() && SbiRuntime::isVBAEnabled() )
-+ pArray->AddDim( 1, nArraySize );
-+ else
-+#endif //ENABLE_VBA
-+ pArray->AddDim( 0, nArraySize-1 );
- else
- pArray->unoAddDim( 0, -1 );
-
- // Parameter ins Array uebernehmen
- for( short i = 0 ; i < nArraySize ; i++ )
-- pArray->Put( rPar.Get(i+1), &i );
-+ {
-+ SbxVariable* pVar = rPar.Get(i+1);
-+ short index = i;
-+#ifdef ENABLE_VBA
-+ if ( IsBaseIndexOne() && SbiRuntime::isVBAEnabled() )
-+ ++index;
-+#endif //ENABLE_VBA
-+ pArray->Put( pVar, &index );
-+ }
-
- // Array zurueckliefern
- SbxVariableRef refVar = rPar.Get(0);
-@@ -637,7 +669,12 @@ RTLFUNC(DimArray)
- StarBASIC::Error( SbERR_OUT_OF_RANGE );
- ub = 0;
- }
-- pArray->AddDim32( 0, ub );
-+#ifdef ENABLE_VBA
-+ if ( IsBaseIndexOne() && SbiRuntime::isVBAEnabled() )
-+ pArray->AddDim32( 1, ub+1 );
-+ else
-+#endif //ENABLE_VBA
-+ pArray->AddDim32( 0, ub );
- }
- }
- else
diff --git a/patches/vba/vba-runtime-vba-enabled.diff b/patches/vba/vba-runtime-vba-enabled.diff
deleted file mode 100644
index f507cec85..000000000
--- a/patches/vba/vba-runtime-vba-enabled.diff
+++ /dev/null
@@ -1,39 +0,0 @@
-Index: basic/source/inc/runtime.hxx
-===================================================================
-RCS file: /cvs/script/basic/source/inc/runtime.hxx,v
-retrieving revision 1.25
-diff -u -p -r1.25 runtime.hxx
---- basic/source/inc/runtime.hxx 29 Sep 2005 18:41:20 -0000 1.25
-+++ basic/source/inc/runtime.hxx 1 Dec 2005 13:24:13 -0000
-@@ -491,6 +491,8 @@ public:
- SbxArray* GetParams();
-
- SbxBase* FindElementExtern( const String& rName );
-+ static bool isVBAEnabled();
-+
- };
-
- inline void checkArithmeticOverflow( double d )
-Index: basic/source/runtime/runtime.cxx
-===================================================================
-RCS file: /cvs/script/basic/source/runtime/runtime.cxx,v
-retrieving revision 1.24
-diff -u -p -r1.24 runtime.cxx
---- basic/source/runtime/runtime.cxx 29 Sep 2005 18:42:01 -0000 1.24
-+++ basic/source/runtime/runtime.cxx 1 Dec 2005 13:24:22 -0000
-@@ -66,6 +66,15 @@
- // Makro MEMBER()
- #include <macfix.hxx>
-
-+#include <svtools/fltrcfg.hxx>
-+bool SbiRuntime::isVBAEnabled()
-+{
-+ bool result = false;
-+ SvtFilterOptions* pFiltOpt = SvtFilterOptions::Get();
-+ if ( pFiltOpt )
-+ result = pFiltOpt->IsLoadExcelBasicCode();
-+ return result;
-+}
-
- // #91147 Global reschedule flag
- static BOOL bStaticGlobalEnableReschedule = TRUE;
diff --git a/patches/vba/vba-sc-docuno-hook.diff b/patches/vba/vba-sc-docuno-hook.diff
deleted file mode 100644
index 3b6aa31e5..000000000
--- a/patches/vba/vba-sc-docuno-hook.diff
+++ /dev/null
@@ -1,84 +0,0 @@
-Index: sc/source/ui/unoobj/docuno.cxx
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/unoobj/docuno.cxx,v
-retrieving revision 1.50
-diff -u -r1.50 docuno.cxx
---- sc/source/ui/unoobj/docuno.cxx 23 Mar 2005 13:08:32 -0000 1.50
-+++ sc/source/ui/unoobj/docuno.cxx 28 Jul 2005 16:07:27 -0000
-@@ -89,6 +89,9 @@
- #include <com/sun/star/i18n/XForbiddenCharacters.hpp>
- #include <com/sun/star/script/XLibraryContainer.hpp>
- #include <com/sun/star/lang/XInitialization.hpp>
-+#ifdef ENABLE_VBA
-+#include <org/openoffice/vba/XGlobals.hpp>
-+#endif //ENABLE_VBA
- #ifndef _COMPHELPER_PROCESSFACTORY_HXX_
- #include <comphelper/processfactory.hxx>
- #endif
-@@ -126,6 +129,9 @@
- #endif
-
- using namespace com::sun::star;
-+#ifdef ENABLE_VBA
-+#define SC_VBA_GLOBALS_PROP "VBAGlobals"
-+#endif //ENABLE_VBA
-
- //------------------------------------------------------------------------
-
-@@ -164,8 +170,10 @@
- {MAP_CHAR_LEN(SC_UNO_STANDARDDEC), 0, &getCppuType((sal_Int16*)0), 0},
- {MAP_CHAR_LEN(SC_UNO_REGEXENABLED), 0, &getBooleanCppuType(), 0},
- {MAP_CHAR_LEN(SC_UNO_RUNTIMEUID), 0, &getCppuType(static_cast< const rtl::OUString * >(0)), beans::PropertyAttribute::READONLY},
- {MAP_CHAR_LEN("BuildId"), 0, &::getCppuType(static_cast< const rtl::OUString * >(0)), 0, 0},
--
-+#ifdef ENABLE_VBA
-+ {MAP_CHAR_LEN(SC_VBA_GLOBALS_PROP), 0, &getCppuType((uno::Sequence< uno::Any >*)0), beans::PropertyAttribute::READONLY},
-+#endif //ENABLE_VBA
- {0,0,0,0}
- };
- return aDocOptPropertyMap_Impl;
-@@ -1476,6 +1484,26 @@
- {
- aRet <<= getRuntimeUID();
- }
-+#ifdef ENABLE_VBA
-+ else if ( aString.EqualsAscii( SC_VBA_GLOBALS_PROP ) )
-+ {
-+ uno::Reference < uno::XComponentContext > xCtx;
-+ uno::Reference < beans::XPropertySet > xProps(
-+ ::comphelper::getProcessServiceFactory(), uno::UNO_QUERY_THROW );
-+ xCtx.set( xProps->getPropertyValue( rtl::OUString(
-+ RTL_CONSTASCII_USTRINGPARAM( "DefaultContext" ))),
-+ uno::UNO_QUERY_THROW );
-+ uno::Reference< org::openoffice::vba::XGlobals > xGlobals(
-+ xCtx->getValueByName(
-+ ::rtl::OUString::createFromAscii(
-+ "/singletons/org.openoffice.vba.theGlobals") ),
-+ uno::UNO_QUERY );
-+ if ( xGlobals.is() )
-+ {
-+ aRet <<= xGlobals->getGlobals();
-+ }
-+ }
-+#endif //ENABLE_VBA
- }
-
- return aRet;
-Index: sc/source/ui/unoobj/makefile.mk
-===================================================================
-RCS file: /cvs/sc/sc/source/ui/unoobj/makefile.mk,v
-retrieving revision 1.16
-diff -u -r1.16 makefile.mk
---- sc/source/ui/unoobj/makefile.mk 11 Aug 2004 09:08:22 -0000 1.16
-+++ sc/source/ui/unoobj/makefile.mk 28 Jul 2005 20:54:41 -0000
-@@ -81,6 +81,10 @@
- .INCLUDE : sc.mk
- .INCLUDE : $(PRJ)$/util$/makefile.pmk
-
-+.IF "$(ENABLE_VBA)"=="YES"
-+ CDEFS+=-DENABLE_VBA
-+.ENDIF
-+
- # --- Files --------------------------------------------------------
- SLO1FILES = \
- $(SLO)$/docuno.obj \
diff --git a/patches/vba/vba-support-stoc-typeprovider-xexactname.diff b/patches/vba/vba-support-stoc-typeprovider-xexactname.diff
deleted file mode 100644
index ca237aaf5..000000000
--- a/patches/vba/vba-support-stoc-typeprovider-xexactname.diff
+++ /dev/null
@@ -1,372 +0,0 @@
-Index: stoc/source/registry_tdprovider/makefile.mk
-===================================================================
-RCS file: /cvs/udk/stoc/source/registry_tdprovider/makefile.mk,v
-retrieving revision 1.13
-diff -u -r1.13 makefile.mk
---- stoc/source/registry_tdprovider/makefile.mk 4 Jun 2004 02:32:05 -0000 1.13
-+++ stoc/source/registry_tdprovider/makefile.mk 29 Sep 2005 11:27:37 -0000
-@@ -77,6 +77,10 @@
-
- .INCLUDE : ..$/cppumaker.mk
-
-+.IF "$(ENABLE_VBA)"=="YES"
-+ CDEFS+=-DENABLE_VBA
-+.ENDIF
-+
- SLOFILES= \
- $(SLO)$/tdprovider.obj \
- $(SLO)$/td.obj \
-Index: stoc/source/registry_tdprovider/rdbtdp.xml
-===================================================================
-RCS file: /cvs/udk/stoc/source/registry_tdprovider/rdbtdp.xml,v
-retrieving revision 1.14
-diff -u -r1.14 rdbtdp.xml
---- stoc/source/registry_tdprovider/rdbtdp.xml 23 Jul 2004 15:03:39 -0000 1.14
-+++ stoc/source/registry_tdprovider/rdbtdp.xml 29 Sep 2005 11:27:37 -0000
-@@ -45,6 +45,7 @@
- <type> com.sun.star.registry.XSimpleRegistry </type>
- <type> com.sun.star.beans.PropertyAttribute </type>
- <type> com.sun.star.beans.XPropertySet </type>
-+ <type> com.sun.star.beans.XExactName </type>
- <type> com.sun.star.container.NoSuchElementException </type>
- <type> com.sun.star.container.XHierarchicalNameAccess </type>
- <type> com.sun.star.container.XSet </type>
-Index: stoc/source/registry_tdprovider/tdprovider.cxx
-===================================================================
-RCS file: /cvs/udk/stoc/source/registry_tdprovider/tdprovider.cxx,v
-retrieving revision 1.18
-diff -u -r1.18 tdprovider.cxx
---- stoc/source/registry_tdprovider/tdprovider.cxx 20 Sep 2004 14:30:28 -0000 1.18
-+++ stoc/source/registry_tdprovider/tdprovider.cxx 29 Sep 2005 11:27:37 -0000
-@@ -98,6 +98,12 @@
- #include <com/sun/star/reflection/XTypeDescriptionEnumerationAccess.hpp>
- #include "com/sun/star/uno/RuntimeException.hpp"
-
-+#ifdef ENABLE_VBA
-+#include <cppuhelper/compbase5.hxx>
-+#include <com/sun/star/beans/XExactName.hpp>
-+#include <rtl/ustrbuf.hxx>
-+#endif //ENABLE_VBA
-+
- #include "registry/reader.hxx"
- #include "registry/version.h"
-
-@@ -157,10 +163,17 @@
- };
- //==================================================================================================
- class ProviderImpl
-- : public MutexHolder
-- , public WeakComponentImplHelper4< XServiceInfo,
-+ : public MutexHolder ,
-+#ifdef ENABLE_VBA
-+ public WeakComponentImplHelper5< XServiceInfo,
-+#else
-+ public WeakComponentImplHelper4< XServiceInfo,
-+#endif //ENABLE_VBA
- XHierarchicalNameAccess,
- XTypeDescriptionEnumerationAccess,
-+#ifdef ENABLE_VBA
-+ XExactName,
-+#endif //ENABLE_VBA
- XInitialization >
- {
- // XHierarchicalNameAccess + XTypeDescriptionEnumerationAccess wrapper
-@@ -238,12 +251,23 @@
- throw ( ::com::sun::star::reflection::NoSuchTypeNameException,
- ::com::sun::star::reflection::InvalidTypeNameException,
- ::com::sun::star::uno::RuntimeException );
-+#ifdef ENABLE_VBA
-+ // XExactName
-+ virtual ::rtl::OUString SAL_CALL getExactName( const ::rtl::OUString& aApproximateName ) throw (::com::sun::star::uno::RuntimeException);
-+#endif //ENABLE_VBA
-+
- };
- //__________________________________________________________________________________________________
- ProviderImpl::ProviderImpl( const com::sun::star::uno::Reference< XComponentContext > & xContext )
-+#ifdef ENABLE_VBA
-+ : WeakComponentImplHelper5<
-+ XServiceInfo, XHierarchicalNameAccess,
-+ XTypeDescriptionEnumerationAccess, XExactName, XInitialization >( _aComponentMutex )
-+#else
- : WeakComponentImplHelper4<
- XServiceInfo, XHierarchicalNameAccess,
-- XTypeDescriptionEnumerationAccess, XInitialization >( _aComponentMutex )
-+ XTypeDescriptionEnumerationAccess, XInitialization >( _aComponentMutex )
-+#endif //ENABLE_VBA
- , _xContext( xContext )
- {
- g_moduleCount.modCnt.acquire( &g_moduleCount.modCnt );
-@@ -527,6 +551,143 @@
- _aBaseKeys ).get() );
- }
-
-+#ifdef ENABLE_VBA
-+// Recursive routine to find the exact name of a namespace in the
-+// Registry.
-+// relativeName is the "/" delimited name e.g. org/openoffice/vba/xxx
-+// and represents the name to be resolved, each successive recursive
-+// call processes/resolves just the leading "/" delimited name.
-+// e.g.
-+// ->org/openoffice/vba/xxx ( findExactName just processes org )
-+// -> openoffice/vba/xx ( " " " openoffice )
-+// -> vba/xx " " "
-+// -> xx " " "
-+// xParentKey is the key that "hopefully" contains the sub keys the match node
-+// to be processed/resolved
-+// sExactNameBuf buffer is passed to each call that allows the exact name to
-+// built up.
-+
-+bool findExactName( const OUString& relativeName, const uno::Reference< XRegistryKey >& xParentKey,
-+ OUStringBuffer& sExactNameBuf )
-+{
-+ OUString searchName = relativeName;
-+ OUString newNameToSearch;
-+ int dotIndex = 0;
-+ if ( ( dotIndex = relativeName.indexOf('/') ) > -1 )
-+ {
-+ searchName = relativeName.copy( 0, dotIndex );
-+ newNameToSearch = relativeName.copy( dotIndex+1 );
-+ }
-+ Sequence< OUString > aChildNames = xParentKey->getKeyNames();
-+ sal_Int32 nLen = aChildNames.getLength();
-+ OUString* pStr = aChildNames.getArray();
-+ sal_Int32 nKeyLen = xParentKey->getKeyName().getLength();
-+ OUString sExactName;
-+ for ( sal_Int32 index=0; index<nLen; ++index, ++pStr )
-+ {
-+ sal_Int32 fromIndex = nKeyLen + 1;
-+ OUString temp = pStr->copy( fromIndex );
-+ if ( searchName.equalsIgnoreAsciiCase( temp ) )
-+ {
-+ sExactName = temp;
-+ break;
-+ }
-+ }
-+ // no match && this is a leaf name ( the last "/" delimited element )
-+ if ( !sExactName.getLength() && !newNameToSearch.getLength() )
-+ {
-+ try
-+ {
-+ // Maybe the leaf name is a constant or enum
-+ // if so, the name is not in the registry keys but is a field of
-+ // a constant group or enum etc.
-+ if ( xParentKey->isValid() )
-+ {
-+ if (xParentKey->getValueType() == RegistryValueType_BINARY)
-+ {
-+ Sequence< sal_Int8 > aBytes( xParentKey->getBinaryValue() );
-+ typereg::Reader aReader(
-+ aBytes.getConstArray(), aBytes.getLength(),
-+ false, TYPEREG_VERSION_1);
-+
-+ if (aReader.getTypeClass() == RT_TYPE_MODULE ||
-+ aReader.getTypeClass() == RT_TYPE_CONSTANTS ||
-+ aReader.getTypeClass() == RT_TYPE_ENUM)
-+ {
-+ sal_Int16 nPos = aReader.getFieldCount();
-+ while (nPos--)
-+ {
-+ if (relativeName.equalsIgnoreAsciiCase(
-+ aReader.getFieldName(nPos)))
-+ {
-+ sExactName = aReader.getFieldName( nPos );
-+ break;
-+ }
-+ }
-+ }
-+ }
-+ }
-+ }
-+ catch ( InvalidRegistryException& e ) {}
-+ }
-+ if ( sExactName.getLength() )
-+ {
-+ sExactNameBuf.append( sExactName );
-+ if ( newNameToSearch.getLength() )
-+ {
-+ try
-+ {
-+ uno::Reference< XRegistryKey > xMatchKey( xParentKey->openKey( sExactName ) );
-+ if ( xMatchKey.is() )
-+ {
-+ RegistryKeyCloser aCloser( xMatchKey );
-+ sExactNameBuf.append( OUString::createFromAscii(".") );
-+ return findExactName( newNameToSearch, xMatchKey, sExactNameBuf );
-+ }
-+ }
-+ catch ( InvalidRegistryException& e ) {}
-+
-+ return false;
-+ }
-+ return true;
-+ }
-+ return false;
-+}
-+
-+// XExactName
-+//__________________________________________________________________________________________________
-+// virtual
-+
-+::rtl::OUString SAL_CALL
-+ProviderImpl::getExactName( const ::rtl::OUString& aApproximateName ) throw (::com::sun::star::uno::RuntimeException)
-+{
-+ OUString aKey( aApproximateName.replace( '.', '/' ) );
-+
-+ OUStringBuffer sBuf( aKey.getLength() );
-+ OUString sExactName;
-+
-+ for ( RegistryKeyList::const_iterator iPos( _aBaseKeys.begin() );
-+ iPos != _aBaseKeys.end(); ++iPos )
-+ {
-+ try
-+ {
-+ com::sun::star::uno::Reference< XRegistryKey > xBaseKey( *iPos );
-+ if ( xBaseKey.is() )
-+ {
-+ Sequence< OUString > aStrings = xBaseKey->getKeyNames();
-+ if ( findExactName( aKey, xBaseKey, sBuf ) )
-+ {
-+ sExactName = sBuf.makeStringAndClear();
-+ break;
-+ }
-+ }
-+ }
-+ catch( InvalidRegistryException const & ) {}
-+ }
-+ return sExactName;
-+}
-+#endif //#ENABLE_VBA
-+
- //==================================================================================================
- static com::sun::star::uno::Reference< XInterface > SAL_CALL ProviderImpl_create(
- com::sun::star::uno::Reference< XComponentContext > const & xContext )
-Index: stoc/source/tdmanager/makefile.mk
-===================================================================
-RCS file: /cvs/udk/stoc/source/tdmanager/makefile.mk,v
-retrieving revision 1.10
-diff -u -r1.10 makefile.mk
---- stoc/source/tdmanager/makefile.mk 12 Aug 2004 12:18:46 -0000 1.10
-+++ stoc/source/tdmanager/makefile.mk 29 Sep 2005 11:27:37 -0000
-@@ -77,6 +77,10 @@
-
- .INCLUDE : ..$/cppumaker.mk
-
-+.IF "$(ENABLE_VBA)"=="YES"
-+ CDEFS+=-DENABLE_VBA
-+.ENDIF
-+
- SLOFILES= \
- $(SLO)$/tdmgr.obj \
- $(SLO)$/tdmgr_check.obj \
-Index: stoc/source/tdmanager/tdmgr.cxx
-===================================================================
-RCS file: /cvs/udk/stoc/source/tdmanager/tdmgr.cxx,v
-retrieving revision 1.18
-diff -u -r1.18 tdmgr.cxx
---- stoc/source/tdmanager/tdmgr.cxx 12 Aug 2004 12:18:59 -0000 1.18
-+++ stoc/source/tdmanager/tdmgr.cxx 29 Sep 2005 11:27:38 -0000
-@@ -106,6 +106,13 @@
- #include <com/sun/star/registry/XRegistryKey.hpp>
- #include "com/sun/star/uno/RuntimeException.hpp"
-
-+#ifdef ENABLE_VBA
-+#ifndef _CPPUHELPER_IMPLBASE6_HXX_
-+#include <cppuhelper/compbase6.hxx>
-+#endif
-+#include <com/sun/star/beans/XExactName.hpp>
-+#endif //ENABLE_VBA
-+
- #include <algorithm>
- #include <vector>
-
-@@ -197,10 +204,17 @@
-
- //==================================================================================================
- class ManagerImpl
-+#ifdef ENABLE_VBA
-+ : public WeakComponentImplHelper6< XServiceInfo,
-+#else
- : public WeakComponentImplHelper5< XServiceInfo,
-+#endif //ENABLE_VBA
- XSet,
- XHierarchicalNameAccess,
- XTypeDescriptionEnumerationAccess,
-+#ifdef ENABLE_VBA
-+ beans::XExactName,
-+#endif //ENABLE_VBA
- XInitialization >
- {
- friend class EnumerationImpl;
-@@ -262,6 +276,10 @@
- throw ( ::com::sun::star::reflection::NoSuchTypeNameException,
- ::com::sun::star::reflection::InvalidTypeNameException,
- ::com::sun::star::uno::RuntimeException );
-+#ifdef ENABLE_VBA
-+ // XExactName
-+ virtual ::rtl::OUString SAL_CALL getExactName( const ::rtl::OUString& aApproximateName ) throw (::com::sun::star::uno::RuntimeException);
-+#endif //ENABLE_VBA
- };
-
- //==================================================================================================
-@@ -344,9 +362,15 @@
- //__________________________________________________________________________________________________
- ManagerImpl::ManagerImpl(
- Reference< XComponentContext > const & xContext, sal_Int32 nCacheSize )
-+#ifdef ENABLE_VBA
-+ : WeakComponentImplHelper6<
-+ XServiceInfo, XSet, XHierarchicalNameAccess,
-+ XTypeDescriptionEnumerationAccess, beans::XExactName, XInitialization >( _aComponentMutex )
-+#else
- : WeakComponentImplHelper5<
- XServiceInfo, XSet, XHierarchicalNameAccess,
- XTypeDescriptionEnumerationAccess, XInitialization >( _aComponentMutex )
-+#endif //ENABLE_VBA
- , _xContext( xContext )
- , _aEventListener( this )
- , _bCaching( sal_True )
-@@ -641,6 +665,30 @@
- aStack ) );
- }
-
-+#ifdef ENABLE_VBA
-+::rtl::OUString SAL_CALL
-+ManagerImpl::getExactName( const ::rtl::OUString& aApproximateName ) throw (::com::sun::star::uno::RuntimeException)
-+{
-+ OUString sExactName;
-+ for ( ProviderVector::const_iterator iPos( _aProviders.begin() );
-+ iPos != _aProviders.end(); ++iPos )
-+ {
-+ try
-+ {
-+ Reference< XExactName > xExact( *iPos, UNO_QUERY );
-+ if ( xExact.is() )
-+ {
-+ sExactName = xExact->getExactName( aApproximateName );
-+ if ( sExactName.getLength() )
-+ break;
-+ }
-+ }
-+ catch (NoSuchElementException &) {}
-+ }
-+ return sExactName;
-+}
-+#endif //ENABLE_VBA
-+
-
- //##################################################################################################
- //##################################################################################################
-Index: stoc/source/tdmanager/tdmgr.xml
-===================================================================
-RCS file: /cvs/udk/stoc/source/tdmanager/tdmgr.xml,v
-retrieving revision 1.9
-diff -u -r1.9 tdmgr.xml
---- stoc/source/tdmanager/tdmgr.xml 12 Aug 2004 12:19:13 -0000 1.9
-+++ stoc/source/tdmanager/tdmgr.xml 29 Sep 2005 11:27:38 -0000
-@@ -48,6 +48,7 @@
- <type> com.sun.star.registry.XRegistryKey </type>
- <type> com.sun.star.container.XSet </type>
- <type> com.sun.star.container.XHierarchicalNameAccess </type>
-+ <type> com.sun.star.beans.XExactName </type>
- <type> com.sun.star.container.XContentEnumerationAccess </type>
- <type> com.sun.star.uno.XAggregation </type>
- <type> com.sun.star.uno.XWeak </type>
diff --git a/patches/vba/vba_configure_set_soenv_in.diff b/patches/vba/vba_configure_set_soenv_in.diff
deleted file mode 100644
index 9df9c7d98..000000000
--- a/patches/vba/vba_configure_set_soenv_in.diff
+++ /dev/null
@@ -1,50 +0,0 @@
-Index: config_office/configure.in
-===================================================================
-RCS file: /cvs/tools/config_office/configure.in,v
-retrieving revision 1.128
-diff -u -r1.128 configure.in
---- config_office/configure.in 14 Jul 2005 13:45:35 -0000 1.128
-+++ config_office/configure.in 28 Jul 2005 17:15:04 -0000
-@@ -26,6 +26,9 @@
- [ --without-gpc Use the internal polygon clipping code instead of
- the external GPC polygon clipping library.
- ],,if test ! -e ../external/gpc/gpc.c && test ! -e ../external/gpc/gpc.h; then without_gpc=yes; fi)
-+AC_ARG_ENABLE(vba,
-+[ --disable-vba Disables the compilation of the vba feature
-+],,)
- AC_ARG_ENABLE(libart,
- [ --enable-libart Enables the use of libart, instead of GPC for
- polygon clipping.
-@@ -1306,6 +1309,16 @@
- AC_HEADER_STDC
- fi
-
-+AC_MSG_CHECKING([whether to disable vba feature])
-+if test -n "$enable_vba"; then
-+ AC_MSG_RESULT([yes])
-+ ENABLE_VBA=NO
-+else
-+ ENABLE_VBA=YES
-+ AC_MSG_RESULT([no])
-+fi
-+AC_SUBST(ENABLE_VBA)
-+
- dnl ===================================================================
- dnl Check if cups/cups.h is available
- dnl ===================================================================
-
-Index: config_office/set_soenv.in
-===================================================================
-RCS file: /cvs/tools/config_office/set_soenv.in,v
-retrieving revision 1.70
-diff -u -r1.70 set_soenv.in
---- config_office/set_soenv.in 14 Jul 2005 13:45:49 -0000 1.70
-+++ config_office/set_soenv.in 28 Jul 2005 17:15:09 -0000
-@@ -1482,6 +1482,7 @@
- ToFile( "MOZILLA_VERSION", $MOZILLA_VERSION, "e" );
- ToFile( "DEFAULT_MOZILLA_TOOLKIT", $MOZILLA_TOOLKIT, "e" );
- ToFile( "BUILD_VER_STRING", "@BUILD_VER_STRING@", "e" );
-+ToFile( "ENABLE_VBA", "@ENABLE_VBA@", "e" );
- if ($platform =~ m/linux-gnu/ && $platform =~ m/powerpc/) {
- ToFile( "JITC_PROCESSOR_TYPE","6", "e" );
- }
diff --git a/patches/vba/vbaevents-basic-prj.diff b/patches/vba/vbaevents-basic-prj.diff
deleted file mode 100644
index 0c35722f9..000000000
--- a/patches/vba/vbaevents-basic-prj.diff
+++ /dev/null
@@ -1,29 +0,0 @@
-Index: basic/prj/build.lst
-===================================================================
-RCS file: /cvs/script/basic/prj/build.lst,v
-retrieving revision 1.6
-diff -u -p -r1.6 build.lst
---- basic/prj/build.lst 13 Apr 2005 09:04:16 -0000 1.6
-+++ basic/prj/build.lst 12 Sep 2005 17:19:38 -0000
-@@ -7,4 +7,5 @@ sb basic\source\comp nmake - all sb
- sb basic\source\runtime nmake - all sb_rt NULL
- sb basic\source\sample nmake - all sb_samp NULL
- sb basic\source\sbx nmake - all sb_sbx NULL
--sb basic\util nmake - all sb_util sb_app sb_class sb_comp sb_mgr sb_rt sb_samp sb_sbx NULL
-+sb basic\source\vbaevents nmake - all sb_vbaevents NULL
-+sb basic\util nmake - all sb_util sb_vbaevents sb_app sb_class sb_comp sb_mgr sb_rt sb_samp sb_sbx NULL
-Index: basic/prj/d.lst
-===================================================================
-RCS file: /cvs/script/basic/prj/d.lst,v
-retrieving revision 1.14
-diff -u -p -r1.14 d.lst
---- basic/prj/d.lst 13 Apr 2005 09:04:50 -0000 1.14
-+++ basic/prj/d.lst 12 Sep 2005 17:19:38 -0000
-@@ -4,6 +4,7 @@ mkdir: %COMMON_DEST%\res%_EXT%
- ..\%COMMON_OUTDIR%\misc\*.hid %COMMON_DEST%\bin%_EXT%\hid\*.hid
- ..\%__SRC%\lib\basic.lib %_DEST%\lib%_EXT%\basic.lib
- ..\%__SRC%\lib\lib*.so %_DEST%\lib%_EXT%
-+..\%__SRC%\lib\vba*.so %_DEST%\lib%_EXT%
- ..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
- ..\%__SRC%\lib\*.a %_DEST%\lib%_EXT%\*.a
- ..\%__SRC%\slb\sb.lib %_DEST%\lib%_EXT%\xsb.lib
diff --git a/patches/vba/vbaevents-services-build.diff b/patches/vba/vbaevents-services-build.diff
deleted file mode 100644
index 7b32fa4ca..000000000
--- a/patches/vba/vbaevents-services-build.diff
+++ /dev/null
@@ -1,21 +0,0 @@
-Index: scripting/prj/build.lst
-===================================================================
-RCS file: /cvs/framework/scripting/prj/build.lst,v
-retrieving revision 1.13
-diff -u -p -u -r1.13 build.lst
---- scripting/prj/build.lst 11 Oct 2004 13:31:56 -0000 1.13
-+++ scripting/prj/build.lst 13 Sep 2005 14:11:19 -0000
-@@ -2,11 +2,12 @@ tc scripting : bridges rdbmaker vcl xmls
- tc scripting usr1 - all tc_mkout NULL
- tc scripting\source\provider nmake - all tc_scriptingprovider NULL
- tc scripting\source\basprov nmake - all tc_scriptingbasprov NULL
-+tc scripting\source\vbaevents nmake - all tc_scriptingvbaevents NULL
- tc scripting\source\dlgprov nmake - all tc_scriptingdlgprov NULL
- tc scripting\source\pyprov nmake - all tc_scriptingpyprov NULL
- tc scripting\source\protocolhandler nmake - all tc_scriptingprotocolhandler tc_scriptingprovider NULL
- tc scripting\java nmake - all tc_scriptingjava tc_scriptingprovider tc_scriptingprotocolhandler NULL
- tc scripting\examples\java nmake - all tc_scriptingexamplesjava tc_scriptingjava NULL
- tc scripting\examples nmake - all tc_scriptingexamples tc_scriptingexamplesjava NULL
--tc scripting\util nmake - all tc_scriptingutil tc_scriptingprovider tc_scriptingprotocolhandler tc_scriptingbasprov tc_scriptingpyprov tc_scriptingjava tc_scriptingexamplesjava tc_scriptingexamples NULL
-+tc scripting\util nmake - all tc_scriptingutil tc_scriptingprovider tc_scriptingprotocolhandler tc_scriptingbasprov tc_scriptingvbaevents tc_scriptingpyprov tc_scriptingjava tc_scriptingexamplesjava tc_scriptingexamples NULL
-
diff --git a/patches/vba/vbaevents-services-sources.diff b/patches/vba/vbaevents-services-sources.diff
deleted file mode 100644
index 022e8efa0..000000000
--- a/patches/vba/vbaevents-services-sources.diff
+++ /dev/null
@@ -1,1193 +0,0 @@
---- /dev/null 2005-06-05 14:44:09.000000000 +0100
-+++ scripting/source/vbaevents/makefile.mk 2005-09-14 10:02:37.927118445 +0100
-@@ -0,0 +1,50 @@
-+PRJ=..$/..
-+
-+PRJNAME=
-+TARGET=vbaevents
-+.IF "$(ENABLE_VBA)"!="YES"
-+dummy:
-+ @echo "not building vbaevents..."
-+.ENDIF
-+
-+NO_BSYMBOLIC= TRUE
-+ENABLE_EXCEPTIONS=TRUE
-+COMP1TYPELIST=$(TARGET)
-+COMPRDB=$(SOLARBINDIR)$/types.rdb
-+
-+# --- Settings -----------------------------------------------------
-+
-+.INCLUDE : settings.mk
-+.INCLUDE : sv.mk
-+DLLPRE =
-+
-+# ------------------------------------------------------------------
-+
-+#.INCLUDE : ..$/cppumaker.mk
-+
-+SLOFILES= \
-+ $(SLO)$/service.obj \
-+ $(SLO)$/eventhelper.obj
-+
-+SHL1TARGET= $(TARGET)$(UPD)$(DLLPOSTFIX).uno
-+SHL1IMPLIB= i$(TARGET)
-+
-+SHL1VERSIONMAP=$(TARGET).map
-+SHL1DEF=$(MISC)$/$(SHL1TARGET).def
-+DEF1NAME=$(SHL1TARGET)
-+
-+SHL1STDLIBS= \
-+ $(CPPUHELPERLIB) \
-+ $(BASICLIB) \
-+ $(COMPHELPERLIB) \
-+ $(SFXLIB) \
-+ $(CPPULIB) \
-+ $(TOOLSLIB) \
-+ $(SALLIB)
-+
-+SHL1DEPN=
-+SHL1LIBS=$(SLB)$/$(TARGET).lib
-+
-+# --- Targets ------------------------------------------------------
-+
-+.INCLUDE : target.mk
---- /dev/null 2005-06-05 14:44:09.000000000 +0100
-+++ scripting/source/vbaevents/service.cxx 2005-09-14 10:02:01.344708779 +0100
-@@ -0,0 +1,99 @@
-+#include "cppuhelper/implementationentry.hxx"
-+#include "com/sun/star/lang/XMultiServiceFactory.hpp"
-+#include "com/sun/star/registry/XRegistryKey.hpp"
-+
-+// =============================================================================
-+// component exports
-+// =============================================================================
-+using namespace ::com::sun::star;
-+using namespace ::com::sun::star::uno;
-+
-+namespace evtlstner
-+{
-+ // =============================================================================
-+ // component operations
-+ // =============================================================================
-+
-+ uno::Reference< XInterface > SAL_CALL create(
-+ Reference< XComponentContext > const & xContext )
-+ SAL_THROW( () );
-+
-+ // -----------------------------------------------------------------------------
-+
-+ ::rtl::OUString SAL_CALL getImplementationName();
-+
-+ Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames();
-+
-+ Reference<XInterface> SAL_CALL create(
-+ Sequence<Any> const &, Reference<XComponentContext> const & );
-+} // end evtlstner
-+
-+namespace ooevtdescgen
-+{
-+ // =============================================================================
-+ // component operations
-+ // =============================================================================
-+
-+ uno::Reference< XInterface > SAL_CALL create(
-+ Reference< XComponentContext > const & xContext )
-+ SAL_THROW( () );
-+
-+ // -----------------------------------------------------------------------------
-+
-+ ::rtl::OUString SAL_CALL getImplementationName();
-+
-+ Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames();
-+
-+ Reference<XInterface> SAL_CALL create(
-+ Sequence<Any> const &, Reference<XComponentContext> const & );
-+} // end ooevtdescgen
-+
-+
-+
-+ // =============================================================================
-+
-+ const ::cppu::ImplementationEntry s_component_entries [] =
-+ {
-+ {
-+ ::evtlstner::create, ::evtlstner::getImplementationName,
-+ ::evtlstner::getSupportedServiceNames,
-+ ::cppu::createSingleComponentFactory,
-+ 0, 0
-+ },
-+ {
-+ ::ooevtdescgen::create, ::ooevtdescgen::getImplementationName,
-+ ::ooevtdescgen::getSupportedServiceNames,
-+ ::cppu::createSingleComponentFactory,
-+ 0, 0
-+ },
-+ { 0, 0, 0, 0, 0, 0 }
-+ };
-+
-+extern "C"
-+{
-+ void SAL_CALL component_getImplementationEnvironment(
-+ const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
-+ {
-+ OSL_TRACE("In component_getImplementationEnv");
-+ *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
-+ }
-+
-+ sal_Bool SAL_CALL component_writeInfo(
-+ lang::XMultiServiceFactory * pServiceManager, registry::XRegistryKey * pRegistryKey )
-+ {
-+ OSL_TRACE("In component_writeInfo");
-+ if ( ::cppu::component_writeInfoHelper(
-+ pServiceManager, pRegistryKey, s_component_entries ) )
-+ return sal_True;
-+ return sal_False;
-+ }
-+
-+ void * SAL_CALL component_getFactory(
-+ const sal_Char * pImplName, lang::XMultiServiceFactory * pServiceManager,
-+ registry::XRegistryKey * pRegistryKey )
-+ {
-+ OSL_TRACE("In component_getFactory");
-+ return ::cppu::component_getFactoryHelper(
-+ pImplName, pServiceManager, pRegistryKey, s_component_entries );
-+ }
-+}
---- /dev/null 2005-06-05 14:44:09.000000000 +0100
-+++ scripting/source/vbaevents/eventhelper.cxx 2005-09-14 10:02:01.346708419 +0100
-@@ -0,0 +1,993 @@
-+#include <comphelper/processfactory.hxx>
-+#include <comphelper/uno3.hxx>
-+#include <comphelper/proparrhlp.hxx>
-+#include <comphelper/propertycontainer.hxx>
-+
-+#include <org/openoffice/vba/XVBAToOOEventDescGen.hpp>
-+
-+#include <com/sun/star/beans/XPropertySet.hpp>
-+#include <com/sun/star/beans/XIntrospection.hpp>
-+#include <com/sun/star/beans/PropertyAttribute.hpp>
-+
-+#include <com/sun/star/lang/XMultiComponentFactory.hpp>
-+#include <com/sun/star/lang/XServiceName.hpp>
-+#include <com/sun/star/lang/XServiceInfo.hpp>
-+#include <com/sun/star/lang/XInitialization.hpp>
-+
-+#include <com/sun/star/frame/XModel.hpp>
-+
-+#include <com/sun/star/script/XLibraryContainer.hpp>
-+#include <com/sun/star/script/ScriptEventDescriptor.hpp>
-+
-+#include <com/sun/star/awt/XControl.hpp>
-+#include <com/sun/star/awt/KeyEvent.hpp>
-+#include <com/sun/star/awt/MouseEvent.hpp>
-+
-+#include <MSForms/ReturnInteger.hpp>
-+
-+#include <sfx2/objsh.hxx>
-+#include <basic/sbstar.hxx>
-+#include <basic/basmgr.hxx>
-+#include <basic/sbmeth.hxx>
-+#include <basic/sbmod.hxx>
-+#include <basic/sbx.hxx>
-+
-+
-+
-+
-+// for debug
-+#include <comphelper/anytostring.hxx>
-+
-+
-+#include <com/sun/star/lang/XMultiComponentFactory.hpp>
-+#include <com/sun/star/script/XScriptListener.hpp>
-+#include <cppuhelper/implbase1.hxx>
-+#include <cppuhelper/implbase2.hxx>
-+
-+#include <set>
-+#include <list>
-+#include <hash_map>
-+
-+using namespace ::com::sun::star;
-+using namespace ::com::sun::star::script;
-+using namespace ::com::sun::star::uno;
-+using namespace ::org::openoffice::vba;
-+
-+
-+// Some constants
-+const static rtl::OUString DELIM = rtl::OUString::createFromAscii( "::" );
-+const static sal_Int32 DELIMLEN = DELIM.getLength();
-+
-+// Helper Methods
-+
-+// TODO this method now appears/is-defined in at least three places
-+// svx/source/forms/fmtools.cxx extensions/source/propctrlr/formcontroller.cxx
-+// and here. We must do better than that
-+Sequence< ::rtl::OUString> getEventMethods(const Type& type)
-+{
-+ typelib_InterfaceTypeDescription *pType=0;
-+ type.getDescription( (typelib_TypeDescription**)&pType);
-+
-+ if(!pType)
-+ return Sequence< ::rtl::OUString>();
-+
-+ Sequence< ::rtl::OUString> aNames(pType->nMembers);
-+ ::rtl::OUString* pNames = aNames.getArray();
-+ for(sal_Int32 i=0;i<pType->nMembers;i++,++pNames)
-+ {
-+ // the decription reference
-+ typelib_TypeDescriptionReference* pMemberDescriptionReference = pType->ppMembers[i];
-+ // the description for the reference
-+ typelib_TypeDescription* pMemberDescription = NULL;
-+ typelib_typedescriptionreference_getDescription(&pMemberDescription, pMemberDescriptionReference);
-+ if (pMemberDescription)
-+ {
-+ typelib_InterfaceMemberTypeDescription* pRealMemberDescription =
-+ reinterpret_cast<typelib_InterfaceMemberTypeDescription*>(pMemberDescription);
-+ *pNames = pRealMemberDescription->pMemberName;
-+ }
-+ }
-+ typelib_typedescription_release( (typelib_TypeDescription *)pType );
-+ return aNames;
-+}
-+
-+// for debug only ( conditionalize out? )
-+void dumpListeners( const Reference< beans::XIntrospection >& xIntrospection, const Reference<XInterface>& xIfc)
-+{
-+ Reference< beans::XIntrospectionAccess > xIntrospectionAccess;
-+ if ( xIntrospection.is() )
-+ {
-+ xIntrospectionAccess = xIntrospection->inspect(
-+ makeAny( xIfc ) );
-+ Sequence< Type > aControlListeners =
-+ xIntrospectionAccess->getSupportedListeners();
-+ sal_Int32 nLength = aControlListeners.getLength();
-+
-+ for ( sal_Int32 i = 0; i< nLength; ++i )
-+ {
-+ Type& listType = aControlListeners[ i ];
-+ rtl::OUString sFullTypeName = listType.getTypeName();
-+ rtl::OUString sTypeName = listType.getTypeName();
-+ sal_Int32 lastDotIndex = -1;
-+ if ( ( lastDotIndex = sFullTypeName.lastIndexOf( '.' ) ) > -1 )
-+ {
-+ sTypeName = sFullTypeName.copy( lastDotIndex + 1 );
-+ }
-+ Sequence< ::rtl::OUString > sMeths = getEventMethods( listType );
-+ sal_Int32 sMethLen = sMeths.getLength();
-+ for ( sal_Int32 j=0 ; j < sMethLen; ++j )
-+ {
-+ OSL_TRACE("**Listener [%d] Type[%s] Method[%s]",j,
-+ rtl::OUStringToOString( sTypeName,
-+ RTL_TEXTENCODING_UTF8 ).getStr(),
-+ rtl::OUStringToOString( sMeths[ j ],
-+ RTL_TEXTENCODING_UTF8 ).getStr() );
-+ }
-+ }
-+
-+ }
-+}
-+
-+void dumpEvent( const ScriptEvent& evt )
-+{
-+ OSL_TRACE("dumpEvent: Source %s",
-+ rtl::OUStringToOString( comphelper::anyToString( makeAny(evt.Source)),
-+ RTL_TEXTENCODING_UTF8 ).getStr() );
-+
-+ OSL_TRACE("dumpEvent: ScriptType %s",
-+ rtl::OUStringToOString( evt.ScriptType,
-+ RTL_TEXTENCODING_UTF8 ).getStr() );
-+
-+ OSL_TRACE("dumpEvent: ScriptCode %s",
-+ rtl::OUStringToOString( evt.ScriptCode,
-+ RTL_TEXTENCODING_UTF8 ).getStr() );
-+
-+ OSL_TRACE("dumpEvent: ListenerType %s",
-+ rtl::OUStringToOString( evt.ListenerType.getTypeName(),
-+ RTL_TEXTENCODING_UTF8 ).getStr() );
-+
-+ OSL_TRACE("dumpEvent: Listener methodname %s",
-+ rtl::OUStringToOString( evt.MethodName,
-+ RTL_TEXTENCODING_UTF8 ).getStr() );
-+
-+ OSL_TRACE("dumpEvent: arguments;");
-+ sal_Int32 nLen = evt.Arguments.getLength();
-+ for ( sal_Int32 index=0; index < nLen; ++index )
-+ {
-+ OSL_TRACE("\t [%d] %s", index,
-+ rtl::OUStringToOString( comphelper::anyToString( evt.Arguments[ index ] ),
-+ RTL_TEXTENCODING_UTF8 ).getStr() );
-+
-+ }
-+}
-+
-+
-+bool isKeyEventOk( awt::KeyEvent& evt, const Sequence< Any >& params )
-+{
-+ if ( !( params.getLength() > 0 ) ||
-+ !( params[ 0 ] >>= evt ) )
-+ return false;
-+ return true;
-+}
-+
-+bool isMouseEventOk( awt::MouseEvent& evt, const Sequence< Any >& params )
-+{
-+ if ( !( params.getLength() > 0 ) ||
-+ !( params[ 0 ] >>= evt ) )
-+ return false;
-+ return true;
-+}
-+
-+Sequence< Any > ooMouseEvtToVBADblClick( const Sequence< Any >& params )
-+{
-+ Sequence< Any > translatedParams;
-+ awt::MouseEvent evt;
-+
-+ if ( !( isMouseEventOk(evt, params)) ||
-+ (evt.ClickCount != 2) )
-+ return Sequence< Any >();
-+ // give back orig params, this will signal that the event is good
-+ return params;
-+}
-+
-+Sequence< Any > ooMouseEvtToVBAMouseEvt( const Sequence< Any >& params )
-+{
-+ Sequence< Any > translatedParams;
-+ awt::MouseEvent evt;
-+
-+ if ( !isMouseEventOk(evt, params) )
-+ return Sequence< Any >();
-+
-+ translatedParams.realloc(4);
-+
-+ // Buttons
-+ translatedParams[ 0 ] <<= evt.Buttons;
-+ // Shift
-+ translatedParams[ 1 ] <<= evt.Modifiers;
-+ // X
-+ translatedParams[ 2 ] <<= evt.X;
-+ // Y
-+ translatedParams[ 3 ] <<= evt.Y;
-+ return translatedParams;
-+}
-+
-+Sequence< Any > ooKeyPressedToVBAKeyPressed( const Sequence< Any >& params )
-+{
-+ Sequence< Any > translatedParams;
-+ awt::KeyEvent evt;
-+
-+ if ( !isKeyEventOk( evt, params ) )
-+ return Sequence< Any >();
-+
-+ translatedParams.realloc(1);
-+
-+ MSForms::ReturnInteger keyCode;
-+ keyCode.Value = evt.KeyCode;
-+ translatedParams[0] <<= keyCode;
-+ return translatedParams;
-+}
-+
-+Sequence< Any > ooKeyPressedToVBAKeyUpDown( const Sequence< Any >& params )
-+{
-+ Sequence< Any > translatedParams;
-+ awt::KeyEvent evt;
-+
-+ if ( !isKeyEventOk( evt, params ) )
-+ return Sequence< Any >();
-+
-+ translatedParams.realloc(2);
-+
-+ MSForms::ReturnInteger keyCode;
-+ sal_Int8 shift = evt.Modifiers;
-+
-+ // #TODO check whether values from OOO conform to values generated from vba
-+ keyCode.Value = evt.KeyCode;
-+ translatedParams[0] <<= keyCode;
-+ translatedParams[1] <<= shift;
-+ return translatedParams;
-+}
-+
-+typedef Sequence< Any > (*Translator)(const Sequence< Any >&);
-+
-+struct TranslateInfo
-+{
-+ rtl::OUString sVBAName;
-+ Translator toVBA;
-+};
-+
-+
-+typedef std::hash_map< rtl::OUString,
-+std::list< TranslateInfo >,
-+::rtl::OUStringHash,
-+::std::equal_to< ::rtl::OUString > > EventInfoHash;
-+
-+
-+EventInfoHash& getEventTransInfo()
-+{
-+ static bool initialised = false;
-+ static EventInfoHash eventTransInfo;
-+ if ( !initialised )
-+ {
-+ TranslateInfo info;
-+ // actionPerformed ooo event
-+ std::list< TranslateInfo > actionInfos;
-+ info.sVBAName = rtl::OUString::createFromAscii("_Click");
-+ info.toVBA = NULL;
-+ actionInfos.push_back( info );
-+ eventTransInfo[ rtl::OUString::createFromAscii("actionPerformed") ] = actionInfos;
-+ // changed ooo event
-+ std::list< TranslateInfo > changeInfos;
-+ info.sVBAName = rtl::OUString::createFromAscii("_Change");
-+ info.toVBA = NULL;
-+ changeInfos.push_back( info );
-+ eventTransInfo[ rtl::OUString::createFromAscii("changed") ] = changeInfos;
-+ // focusGained ooo event
-+ std::list< TranslateInfo > focusGainedInfos;
-+ info.sVBAName = rtl::OUString::createFromAscii("_GotFocus");
-+ info.toVBA = NULL;
-+ focusGainedInfos.push_back( info );
-+ eventTransInfo[ rtl::OUString::createFromAscii("focusGained") ] = focusGainedInfos;
-+ // focusLost ooo event
-+ std::list< TranslateInfo > focusLostInfos;
-+ info.sVBAName = rtl::OUString::createFromAscii("_LostFocus");
-+ info.toVBA = NULL;
-+ focusLostInfos.push_back( info );
-+ eventTransInfo[ rtl::OUString::createFromAscii("focusGained") ] = focusLostInfos;
-+ // adjustmentValueChanged ooo event
-+ std::list< TranslateInfo > adjustInfos;
-+ info.sVBAName = rtl::OUString::createFromAscii("_Scroll");
-+ info.toVBA = NULL;
-+ adjustInfos.push_back( info );
-+ info.sVBAName = rtl::OUString::createFromAscii("_Change");
-+ info.toVBA = NULL;
-+ adjustInfos.push_back( info );
-+ eventTransInfo[ rtl::OUString::createFromAscii("adjustmentValueChanged") ] = adjustInfos;
-+ // keyReleased ooo event
-+ std::list< TranslateInfo > keyReleasedInfos;
-+ info.sVBAName = rtl::OUString::createFromAscii("_KeyUp");
-+ info.toVBA = ooKeyPressedToVBAKeyUpDown;
-+ keyReleasedInfos.push_back( info );
-+ eventTransInfo[ rtl::OUString::createFromAscii("keyReleased") ] = keyReleasedInfos;
-+ // mouseReleased ooo event
-+ std::list< TranslateInfo > mouseReleasedInfos;
-+ info.sVBAName = rtl::OUString::createFromAscii("_MouseUp");
-+ info.toVBA = ooMouseEvtToVBAMouseEvt;
-+ mouseReleasedInfos.push_back( info );
-+ eventTransInfo[ rtl::OUString::createFromAscii("mouseReleased") ] = mouseReleasedInfos;
-+ // mousePressed ooo event
-+ std::list< TranslateInfo > mousePressedInfos;
-+ info.sVBAName = rtl::OUString::createFromAscii("_MouseDown");
-+ info.toVBA = ooMouseEvtToVBAMouseEvt;
-+ mousePressedInfos.push_back( info );
-+ info.sVBAName = rtl::OUString::createFromAscii("_DblClick");
-+ // emulate double click event
-+ info.toVBA = ooMouseEvtToVBADblClick;
-+ mousePressedInfos.push_back( info );
-+ eventTransInfo[ rtl::OUString::createFromAscii("mousePressed") ] = mousePressedInfos;
-+ // mouseMoved ooo event
-+ std::list< TranslateInfo > mouseMovedInfos;
-+ info.sVBAName = rtl::OUString::createFromAscii("_MouseMoved");
-+ info.toVBA = ooMouseEvtToVBAMouseEvt;
-+ mouseMovedInfos.push_back( info );
-+ eventTransInfo[ rtl::OUString::createFromAscii("mouseMoved") ] = mouseMovedInfos;
-+ // keyPressed ooo event
-+ std::list< TranslateInfo > keyPressedInfos;
-+ info.sVBAName = rtl::OUString::createFromAscii("_KeyDown");
-+ info.toVBA = ooKeyPressedToVBAKeyUpDown;
-+ keyPressedInfos.push_back( info );
-+ info.sVBAName = rtl::OUString::createFromAscii("_KeyPress");
-+ info.toVBA = ooKeyPressedToVBAKeyPressed;
-+ keyPressedInfos.push_back( info );
-+ eventTransInfo[ rtl::OUString::createFromAscii("keyPressed") ] = keyPressedInfos;
-+ initialised = true;
-+ }
-+ return eventTransInfo;
-+}
-+
-+// Helper class
-+
-+class ScriptEventFactory
-+{
-+public:
-+ static Sequence< ScriptEventDescriptor > createEvents( const Reference< awt::XControl >& xControl );
-+ static ScriptEventFactory& instance() { static ScriptEventFactory inst; return inst; }
-+ static rtl::OUString getControlName( const Reference< awt::XControl >& xControl );
-+ static Sequence< rtl::OUString > getEventListeners( const Reference< awt::XControl >& xControl );
-+private:
-+ ScriptEventFactory();
-+ Reference< XComponentContext > m_xCtx;
-+};
-+// Helper function
-+bool
-+eventMethodToDescriptor( const ::rtl::OUString& rEventMethod, const Reference< awt::XControl >& xControl, ScriptEventDescriptor& evtDesc )
-+{
-+ // format of ControlListener is TypeName::methodname e.g.
-+ // "com.sun.star.awt.XActionListener::actionPerformed" or
-+ // "XActionListener::actionPerformed
-+
-+ ::rtl::OUString sMethodName;
-+ ::rtl::OUString sTypeName;
-+ sal_Int32 nDelimPos = rEventMethod.indexOf( DELIM );
-+ if ( nDelimPos == -1 )
-+ {
-+ return false;
-+ }
-+ sMethodName = rEventMethod.copy( nDelimPos + DELIMLEN );
-+ sTypeName = rEventMethod.copy( 0, nDelimPos );
-+
-+ EventInfoHash& infos = getEventTransInfo();
-+
-+ // Only create an ScriptEventDescriptor for an event we can translate
-+ // or emulate
-+ if ( sMethodName.getLength()
-+ && sTypeName.getLength()
-+ && ( infos.find( sMethodName ) != infos.end() ) )
-+ {
-+ // just fill in control name, event handler will
-+ // do the rest e.g. search for this routine in the doc basic
-+ // and run it.
-+ evtDesc.ScriptCode = ScriptEventFactory::instance().getControlName(xControl);
-+ evtDesc.ListenerType = sTypeName;
-+ evtDesc.EventMethod = sMethodName;
-+
-+ // set this it VBAInterop, ensures that it doesn't
-+ // get persisted or shown in property editors
-+ evtDesc.ScriptType = rtl::OUString::createFromAscii(
-+ "VBAInterop" );
-+ return true;
-+ }
-+ return false;
-+
-+}
-+
-+ScriptEventFactory::ScriptEventFactory()
-+{
-+ Reference < beans::XPropertySet > xProps(
-+ ::comphelper::getProcessServiceFactory(), UNO_QUERY_THROW );
-+ m_xCtx.set( xProps->getPropertyValue( rtl::OUString(
-+ RTL_CONSTASCII_USTRINGPARAM( "DefaultContext" ))),
-+ uno::UNO_QUERY_THROW );
-+}
-+rtl::OUString
-+ScriptEventFactory::getControlName( const Reference< awt::XControl >& xControl )
-+{
-+ Reference< beans::XPropertySet > xProps( xControl->getModel(), UNO_QUERY );
-+ ::rtl::OUString sName;
-+ if ( xProps.is() )
-+ {
-+ try
-+ {
-+ xProps->getPropertyValue(
-+ ::rtl::OUString::createFromAscii("Name") ) >>= sName;
-+ }
-+ catch(Exception& e)
-+ {
-+ OSL_TRACE("PropertyStuff mucked up no name got exception: %s",
-+ (const sal_Char *) rtl::OUStringToOString( e.Message, RTL_TEXTENCODING_UTF8 ));
-+ }
-+ }
-+ return sName;
-+}
-+
-+Sequence< rtl::OUString >
-+ScriptEventFactory::getEventListeners( const Reference< awt::XControl >& xControl )
-+{
-+ Reference< lang::XMultiComponentFactory > xMFac(
-+ instance().m_xCtx->getServiceManager(), UNO_QUERY );
-+ std::list< rtl::OUString > eventMethods;
-+
-+ if ( xMFac.is() )
-+ {
-+ Reference< beans::XIntrospection > xIntrospection(
-+ xMFac->createInstanceWithContext( rtl::OUString(
-+ RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.beans.Introspection" ) ), instance().m_xCtx ), UNO_QUERY );
-+ //dumpListeners( xIntrospection, xControl );
-+ //dumpListeners( xIntrospection, xControl->getModel() );
-+ Reference< beans::XIntrospectionAccess > xIntrospectionAccess;
-+ if ( xIntrospection.is() )
-+ {
-+ xIntrospectionAccess = xIntrospection->inspect(
-+ makeAny( xControl ) );
-+ Sequence< Type > aControlListeners =
-+ xIntrospectionAccess->getSupportedListeners();
-+ sal_Int32 nLength = aControlListeners.getLength();
-+ for ( sal_Int32 i = 0; i< nLength; ++i )
-+ {
-+ Type& listType = aControlListeners[ i ];
-+ rtl::OUString sFullTypeName = listType.getTypeName();
-+
-+ Sequence< ::rtl::OUString > sMeths =
-+ getEventMethods( listType );
-+ sal_Int32 sMethLen = sMeths.getLength();
-+ for ( sal_Int32 j=0 ; j < sMethLen; ++j )
-+ {
-+ rtl::OUString sEventMethod = sFullTypeName;
-+ sEventMethod += DELIM;
-+ sEventMethod += sMeths[ j ];
-+ eventMethods.push_back( sEventMethod );
-+ }
-+ }
-+
-+ }
-+ }
-+
-+ Sequence< rtl::OUString > sEventMethodNames( eventMethods.size() );
-+ std::list< rtl::OUString >::const_iterator it = eventMethods.begin();
-+ rtl::OUString* pDest = sEventMethodNames.getArray();
-+
-+ for ( ; it != eventMethods.end(); ++it, ++pDest )
-+ *pDest = *it;
-+
-+ return sEventMethodNames;
-+}
-+
-+Sequence< ScriptEventDescriptor >
-+ScriptEventFactory::createEvents( const Reference< awt::XControl >& xControl )
-+{
-+ Sequence< rtl::OUString > aControlListeners = ScriptEventFactory::instance().getEventListeners( xControl );
-+ rtl::OUString* pSrc = aControlListeners.getArray();
-+ sal_Int32 nLength = aControlListeners.getLength();
-+
-+ Sequence< ScriptEventDescriptor > aDest( nLength );
-+ ScriptEventDescriptor* pDest = aDest.getArray();
-+ sal_Int32 nEvts = 0;
-+ for ( sal_Int32 i = 0; i< nLength; ++i, ++pSrc )
-+ {
-+ // from getListeners eventName is of form
-+ // "com.sun.star.awt.XActionListener::actionPerformed"
-+ // we need to strip "com.sun.star.awt." from that for form
-+ // controls
-+ sal_Int32 lastDotIndex = -1;
-+ ::rtl::OUString sNoNameSpaceMethod = *pSrc;
-+ if ( ( lastDotIndex = pSrc->lastIndexOf( '.' ) ) > -1 )
-+ sNoNameSpaceMethod = sNoNameSpaceMethod.copy( lastDotIndex + 1 );
-+ ScriptEventDescriptor evtDesc;
-+ if ( eventMethodToDescriptor( sNoNameSpaceMethod, xControl, evtDesc ) )
-+ {
-+ *pDest = evtDesc;
-+ ++pDest;
-+ ++nEvts;
-+ }
-+ }
-+ aDest.realloc( nEvts );
-+
-+ return aDest;
-+}
-+
-+
-+typedef ::cppu::WeakImplHelper1< container::XNameContainer > NameContainer_BASE;
-+
-+class ReadOnlyEventsNameContainer : public NameContainer_BASE
-+{
-+public:
-+ ReadOnlyEventsNameContainer( const Sequence< rtl::OUString >& eventMethods, const Reference< awt::XControl >& xControl );
-+ // XNameContainer
-+
-+ virtual void SAL_CALL insertByName( const ::rtl::OUString& aName, const Any& aElement ) throw (lang::IllegalArgumentException, container::ElementExistException, lang::WrappedTargetException, RuntimeException)
-+ {
-+ throw RuntimeException( rtl::OUString::createFromAscii( "ReadOnly container" ), Reference< XInterface >() );
-+
-+ }
-+ virtual void SAL_CALL removeByName( const ::rtl::OUString& Name ) throw (::com::sun::star::container::NoSuchElementException, lang::WrappedTargetException, RuntimeException)
-+ {
-+ throw RuntimeException( rtl::OUString::createFromAscii( "ReadOnly container" ), Reference< XInterface >() );
-+ }
-+
-+ // XNameReplace
-+ virtual void SAL_CALL replaceByName( const ::rtl::OUString& aName, const Any& aElement ) throw (lang::IllegalArgumentException, container::NoSuchElementException, lang::WrappedTargetException, RuntimeException)
-+ {
-+ throw RuntimeException( rtl::OUString::createFromAscii( "ReadOnly container" ), Reference< XInterface >() );
-+
-+ }
-+
-+ // XNameAccess
-+ virtual Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw (container::NoSuchElementException, lang::WrappedTargetException, RuntimeException);
-+ virtual Sequence< ::rtl::OUString > SAL_CALL getElementNames( ) throw (RuntimeException);
-+ virtual ::sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (RuntimeException);
-+
-+ // XElementAccess
-+ virtual Type SAL_CALL getElementType( ) throw (RuntimeException)
-+ { return getCppuType(static_cast< const rtl::OUString * >(0) ); }
-+ virtual ::sal_Bool SAL_CALL hasElements( ) throw (RuntimeException)
-+ { return ( ( m_hEvents.size() > 0 ? sal_True : sal_False ) ); }
-+private:
-+
-+typedef std::hash_map< rtl::OUString, Any, ::rtl::OUStringHash,
-+::std::equal_to< ::rtl::OUString > > EventSupplierHash;
-+
-+ EventSupplierHash m_hEvents;
-+};
-+
-+ReadOnlyEventsNameContainer::ReadOnlyEventsNameContainer( const Sequence< rtl::OUString >& eventMethods, const Reference< awt::XControl >& xControl )
-+{
-+ const rtl::OUString* pSrc = eventMethods.getConstArray();
-+ sal_Int32 nLen = eventMethods.getLength();
-+ for ( sal_Int32 index = 0; index < nLen; ++index, ++pSrc )
-+ {
-+ Any aDesc;
-+ ScriptEventDescriptor evtDesc;
-+ if ( eventMethodToDescriptor( *pSrc, xControl, evtDesc ) )
-+ {
-+ aDesc <<= evtDesc;
-+ m_hEvents[ *pSrc ] = aDesc;
-+ }
-+ }
-+}
-+
-+Any SAL_CALL
-+ReadOnlyEventsNameContainer::getByName( const ::rtl::OUString& aName ) throw (container::NoSuchElementException, lang::WrappedTargetException, RuntimeException){
-+ EventSupplierHash::const_iterator it = m_hEvents.find( aName );
-+ if ( it == m_hEvents.end() )
-+ throw container::NoSuchElementException();
-+ return it->second;
-+}
-+
-+Sequence< ::rtl::OUString > SAL_CALL
-+ReadOnlyEventsNameContainer::getElementNames( ) throw (RuntimeException)
-+{
-+ Sequence< ::rtl::OUString > names(m_hEvents.size());
-+ rtl::OUString* pDest = names.getArray();
-+ EventSupplierHash::const_iterator it = m_hEvents.begin();
-+ EventSupplierHash::const_iterator it_end = m_hEvents.end();
-+ for ( sal_Int32 index = 0; it != it_end; ++index, ++pDest, ++it )
-+ *pDest = it->first;
-+ return names;
-+}
-+
-+sal_Bool SAL_CALL
-+ReadOnlyEventsNameContainer::hasByName( const ::rtl::OUString& aName ) throw (RuntimeException)
-+{
-+ EventSupplierHash::const_iterator it = m_hEvents.find( aName );
-+ if ( it == m_hEvents.end() )
-+ return sal_False;
-+ return sal_True;
-+}
-+
-+typedef ::cppu::WeakImplHelper1< XScriptEventsSupplier > EventsSupplier_BASE;
-+
-+class ReadOnlyEventsSupplier : public EventsSupplier_BASE
-+{
-+public:
-+ ReadOnlyEventsSupplier( const Sequence< ::rtl::OUString >& eventMethods, const Reference< awt::XControl >& xControl )
-+ { m_xNameContainer = new ReadOnlyEventsNameContainer( eventMethods, xControl ); }
-+
-+ // XScriptEventSupplier
-+ virtual Reference< container::XNameContainer > SAL_CALL getEvents( ) throw (RuntimeException){ return m_xNameContainer; }
-+private:
-+ Reference< container::XNameContainer > m_xNameContainer;
-+};
-+
-+typedef ::cppu::WeakImplHelper2< XScriptListener, lang::XInitialization > EventListener_BASE;
-+
-+#define EVENTLSTNR_PROPERTY_ID_MODEL 1
-+#define EVENTLSTNR_PROPERTY_MODEL ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Model" ) )
-+
-+class EventListener : public EventListener_BASE
-+ ,public ::comphelper::OMutexAndBroadcastHelper
-+ ,public ::comphelper::OPropertyContainer
-+ ,public ::comphelper::OPropertyArrayUsageHelper< EventListener >
-+
-+{
-+public:
-+ EventListener( const Reference< XComponentContext >& rxContext );
-+ // XEventListener
-+ virtual void SAL_CALL disposing(const lang::EventObject& Source) throw( RuntimeException );
-+
-+ // XScriptListener
-+ virtual void SAL_CALL firing(const ScriptEvent& evt) throw(RuntimeException);
-+ virtual Any SAL_CALL approveFiring(const ScriptEvent& evt) throw(reflection::InvocationTargetException, RuntimeException);
-+ // XPropertySet
-+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw (::com::sun::star::uno::RuntimeException);
-+ // XInitialization
-+ virtual void SAL_CALL initialize( const Sequence< Any >& aArguments ) throw (Exception, RuntimeException);
-+ // XInterface
-+ DECLARE_XINTERFACE()
-+
-+ // XTypeProvider
-+ DECLARE_XTYPEPROVIDER()
-+
-+protected:
-+ // OPropertySetHelper
-+ virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper( );
-+
-+ // OPropertyArrayUsageHelper
-+ virtual ::cppu::IPropertyArrayHelper* createArrayHelper( ) const;
-+
-+private:
-+ SfxObjectShellRef findObjShell();
-+ void firing_Impl( const ScriptEvent& evt, Any *pSyncRet=NULL ) throw( RuntimeException );
-+
-+ Reference< XComponentContext > m_xContext;
-+ Reference< frame::XModel > m_xModel;
-+
-+};
-+
-+EventListener::EventListener( const Reference< XComponentContext >& rxContext ) :
-+OPropertyContainer(GetBroadcastHelper()), m_xContext( rxContext )
-+{
-+ registerProperty( EVENTLSTNR_PROPERTY_MODEL, EVENTLSTNR_PROPERTY_ID_MODEL,
-+ beans::PropertyAttribute::TRANSIENT, &m_xModel, ::getCppuType( &m_xModel ) );
-+
-+}
-+
-+//XEventListener
-+void
-+EventListener::disposing(const lang::EventObject& Source) throw( RuntimeException )
-+{
-+}
-+
-+//XScriptListener
-+
-+void SAL_CALL
-+EventListener::firing(const ScriptEvent& evt) throw(RuntimeException)
-+{
-+ firing_Impl( evt );
-+}
-+
-+Any SAL_CALL
-+EventListener::approveFiring(const ScriptEvent& evt) throw(reflection::InvocationTargetException, RuntimeException)
-+{
-+ Any ret;
-+ firing_Impl( evt, &ret );
-+ return ret;
-+}
-+
-+// XInitialization
-+void SAL_CALL
-+EventListener::initialize( const Sequence< Any >& aArguments ) throw (Exception, RuntimeException)
-+{
-+ if ( aArguments.getLength() == 1 )
-+ aArguments[0] >>= m_xModel;
-+}
-+
-+// XInterface
-+
-+IMPLEMENT_FORWARD_XINTERFACE2( EventListener, EventListener_BASE, OPropertyContainer )
-+
-+// XTypeProvider
-+
-+IMPLEMENT_FORWARD_XTYPEPROVIDER2( EventListener, EventListener_BASE, OPropertyContainer )
-+
-+// OPropertySetHelper
-+
-+::cppu::IPropertyArrayHelper&
-+EventListener::getInfoHelper( )
-+{
-+ return *getArrayHelper();
-+}
-+
-+// OPropertyArrayUsageHelper
-+
-+::cppu::IPropertyArrayHelper*
-+EventListener::createArrayHelper( ) const
-+{
-+ Sequence< beans::Property > aProps;
-+ describeProperties( aProps );
-+ return new ::cppu::OPropertyArrayHelper( aProps );
-+}
-+
-+// XPropertySet
-+Reference< beans::XPropertySetInfo >
-+EventListener::getPropertySetInfo( ) throw (RuntimeException)
-+{
-+ Reference< beans::XPropertySetInfo > xInfo( createPropertySetInfo( getInfoHelper() ) );
-+ return xInfo;
-+}
-+
-+
-+// EventListener
-+
-+SfxObjectShellRef
-+EventListener::findObjShell()
-+{
-+ SfxObjectShellRef result = SfxObjectShell::GetFirst();
-+ while ( result.Is() )
-+ {
-+ if ( m_xModel == result->GetModel() )
-+ break;
-+ result = SfxObjectShell::GetNext( *result );
-+ }
-+ return result;
-+}
-+
-+void
-+EventListener::firing_Impl(const ScriptEvent& evt, Any* pRet ) throw(RuntimeException)
-+{
-+ static const ::rtl::OUString vbaInterOp =
-+ ::rtl::OUString::createFromAscii("VBAInterop");
-+
-+ // let default handlers deal with non vba stuff
-+ if ( !evt.ScriptType.equals( vbaInterOp ) )
-+ return;
-+ SfxObjectShellRef xObjSh = findObjShell();
-+ //dumpEvent( evt );
-+ EventInfoHash& infos = getEventTransInfo();
-+ EventInfoHash::const_iterator eventInfo_it = infos.find( evt.MethodName );
-+ EventInfoHash::const_iterator it_end = infos.end();
-+ if ( eventInfo_it == it_end )
-+ {
-+ OSL_TRACE("Bogus event for %s",
-+ rtl::OUStringToOString( evt.ScriptType, RTL_TEXTENCODING_UTF8 ).getStr() );
-+ return;
-+ }
-+
-+ if ( xObjSh.Is() )
-+ {
-+ BasicManager* pDocBasicManager = xObjSh->GetBasicManager();
-+ Reference< XLibraryContainer > xLib( xObjSh->GetBasicContainer(),
-+ UNO_QUERY );
-+ if ( pDocBasicManager && xLib.is() )
-+ {
-+ std::list< TranslateInfo > matchingMethods;
-+ Sequence< ::rtl::OUString > aLibNames = xLib->getElementNames();
-+ sal_Int32 nLibLen = aLibNames.getLength();
-+ const ::rtl::OUString* pLibNames = aLibNames.getConstArray();
-+ for ( sal_Int32 i = 0 ; i < nLibLen ; ++i )
-+ {
-+ // make sure library is loaded
-+ if ( xLib->hasByName( pLibNames[ i ] ) && !xLib->isLibraryLoaded( pLibNames[ i ] ) )
-+ xLib->loadLibrary( pLibNames[ i ] );
-+
-+ Any aLib = xLib->getByName( pLibNames[ i ] );
-+ Reference< container::XNameContainer > xNameCont( aLib, UNO_QUERY );
-+ if ( !xNameCont.is() ) // this really is an error, flag it
-+ {
-+ OSL_TRACE("No name container");
-+ continue;
-+ }
-+ // get Basic for the library
-+ StarBASIC* pBasic = pDocBasicManager->GetLib( pLibNames[ i ] );
-+ // get the module names
-+ Sequence< ::rtl::OUString > aModNames = xNameCont->getElementNames();
-+ sal_Int32 nModLen = aModNames.getLength();
-+ const ::rtl::OUString* pModNames = aModNames.getConstArray();
-+ for ( sal_Int32 y = 0 ; y < nModLen ; ++y )
-+ {
-+ SbModule* pModule = pBasic->FindModule( pModNames[y] );
-+ // find the methods
-+ SbxArray* pMethods = pModule->GetMethods();
-+ sal_Int32 nMethLen = pMethods->Count();
-+ for ( sal_Int32 index = 0; index < nMethLen; ++index )
-+ {
-+ SbMethod* pMethod = static_cast< SbMethod* >( pMethods->Get( static_cast< USHORT >( index ) ) );
-+
-+ if ( pMethod )
-+ {
-+ std::list< TranslateInfo >::const_iterator txInfo =
-+ eventInfo_it->second.begin();
-+ std::list< TranslateInfo >::const_iterator txInfo_end = eventInfo_it->second.end();
-+ for ( ; txInfo != txInfo_end; ++txInfo )
-+ {
-+ rtl::OUString vbaMethod = evt.ScriptCode;
-+ vbaMethod += (*txInfo).sVBAName;
-+
-+ vbaMethod = evt.ScriptCode.concat( (*txInfo).sVBAName );
-+ rtl::OUString methName = pMethod->GetName();
-+ //OSL_TRACE("comparing %s to %s",
-+ // rtl::OUStringToOString( methName,
-+ // RTL_TEXTENCODING_UTF8 ).getStr(),
-+ // rtl::OUStringToOString( vbaMethod,
-+ // RTL_TEXTENCODING_UTF8 ).getStr() );
-+ if ( methName.equals( vbaMethod ) )
-+ {
-+ //OSL_TRACE("match for %s",
-+ // rtl::OUStringToOString( methName,
-+ // RTL_TEXTENCODING_UTF8 ).getStr() );
-+ TranslateInfo firingInfo;
-+ firingInfo.sVBAName += pLibNames[ i ];
-+ firingInfo.sVBAName += ::rtl::OUString::createFromAscii( "." );
-+ firingInfo.sVBAName += pModNames[ y ];
-+ firingInfo.sVBAName += ::rtl::OUString::createFromAscii( "." );
-+ firingInfo.sVBAName += vbaMethod;
-+ firingInfo.toVBA = (*txInfo).toVBA;
-+ matchingMethods.push_back( firingInfo );
-+ }
-+ }
-+ }
-+ }
-+ }
-+ }
-+ std::list< TranslateInfo >::iterator it = matchingMethods.begin();
-+ std::list< TranslateInfo >::const_iterator it_end = matchingMethods.end();
-+ // set up args
-+ // !! translate arguments & emulate events where necessary
-+
-+ for ( ; it != it_end; ++it )
-+ {
-+ //OSL_TRACE("vba eventhandler firing %s", rtl::OUStringToOString( (*it).sVBAName , RTL_TEXTENCODING_UTF8 ).getStr() );
-+ // assume that vba-like event handler exist in the document
-+ // only ( can come back to that if necessary )
-+ Sequence< Any > aArguments;
-+ if ( (*it).toVBA )
-+ {
-+ aArguments = (*it->toVBA)( evt.Arguments );
-+ }
-+ else
-+ {
-+ aArguments = evt.Arguments;
-+ }
-+ if ( aArguments.getLength() )
-+ {
-+ const static rtl::OUString sDocLoc =
-+ rtl::OUString::createFromAscii( "document" );
-+ // call basic event handlers for event
-+
-+ static rtl::OUString part1 = rtl::OUString::createFromAscii( "vnd.sun.star.script:");
-+ static rtl::OUString part2 = rtl::OUString::createFromAscii("?language=Basic&location=document");
-+
-+ // create script url
-+ rtl::OUString url = part1 + (*it).sVBAName + part2;
-+
-+ OSL_TRACE("script url = %s",
-+ rtl::OUStringToOString( url,
-+ RTL_TEXTENCODING_UTF8 ).getStr() );
-+ Any aRet; // temp
-+ if ( pRet == NULL )
-+ pRet = &aRet;
-+ Sequence< sal_Int16 > aOutArgsIndex;
-+ Sequence< Any > aOutArgs;
-+ xObjSh->CallXScript( url, aArguments, *pRet,
-+ aOutArgsIndex, aOutArgs);
-+ }
-+ }
-+ }
-+ }
-+
-+}
-+
-+typedef ::cppu::WeakImplHelper1< XVBAToOOEventDescGen > VBAToOOEventDescGen_BASE;
-+
-+
-+class VBAToOOEventDescGen : public VBAToOOEventDescGen_BASE
-+{
-+public:
-+ VBAToOOEventDescGen( const Reference< XComponentContext >& rxContext );
-+
-+ // XVBAToOOEventDescGen
-+ virtual Sequence< ScriptEventDescriptor > SAL_CALL getEventDescriptions( const Reference< awt::XControl >& control ) throw (RuntimeException);
-+ virtual Reference< XScriptEventsSupplier > SAL_CALL getEventSupplier( const Reference< awt::XControl >& xControl ) throw (::com::sun::star::uno::RuntimeException);
-+private:
-+ Reference< XComponentContext > m_xContext;
-+
-+};
-+
-+VBAToOOEventDescGen::VBAToOOEventDescGen( const Reference< XComponentContext >& rxContext ):m_xContext( rxContext ) {}
-+
-+Sequence< ScriptEventDescriptor > SAL_CALL
-+VBAToOOEventDescGen::getEventDescriptions( const Reference< awt::XControl >& xControl ) throw (RuntimeException)
-+{
-+ return ScriptEventFactory::instance().createEvents( xControl );
-+}
-+
-+Reference< XScriptEventsSupplier > SAL_CALL
-+VBAToOOEventDescGen::getEventSupplier( const Reference< awt::XControl >& xControl ) throw (::com::sun::star::uno::RuntimeException)
-+{
-+ Reference< XScriptEventsSupplier > xSupplier =
-+ new ReadOnlyEventsSupplier(
-+ ScriptEventFactory::instance().getEventListeners( xControl ),
-+ xControl ) ;
-+ return xSupplier;
-+}
-+
-+// Component related
-+
-+namespace evtlstner
-+{
-+ ::rtl::OUString SAL_CALL getImplementationName()
-+ {
-+ static ::rtl::OUString* pImplName = 0;
-+ if ( !pImplName )
-+ {
-+ ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
-+ if ( !pImplName )
-+ {
-+ static ::rtl::OUString aImplName( RTL_CONSTASCII_USTRINGPARAM( "org.openoffice.vba.EventListener" ) );
-+ pImplName = &aImplName;
-+ }
-+ }
-+ return *pImplName;
-+ }
-+
-+ uno::Reference< XInterface > SAL_CALL create(
-+ Reference< XComponentContext > const & xContext )
-+ SAL_THROW( () )
-+ {
-+ return static_cast< lang::XTypeProvider * >( new EventListener( xContext ) );
-+ }
-+
-+ Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
-+ {
-+ const ::rtl::OUString strName( ::evtlstner::getImplementationName() );
-+ return Sequence< ::rtl::OUString >( &strName, 1 );
-+ }
-+}
-+namespace ooevtdescgen
-+{
-+ ::rtl::OUString SAL_CALL getImplementationName()
-+ {
-+ static ::rtl::OUString* pImplName = 0;
-+ if ( !pImplName )
-+ {
-+ ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
-+ if ( !pImplName )
-+ {
-+ static ::rtl::OUString aImplName( RTL_CONSTASCII_USTRINGPARAM( "org.openoffice.vba.VBAToOOEventDesc" ) );
-+ pImplName = &aImplName;
-+ }
-+ }
-+ return *pImplName;
-+ }
-+
-+ uno::Reference< XInterface > SAL_CALL create(
-+ Reference< XComponentContext > const & xContext )
-+ SAL_THROW( () )
-+ {
-+ return static_cast< lang::XTypeProvider * >( new VBAToOOEventDescGen( xContext ) );
-+ }
-+
-+ Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
-+ {
-+ const ::rtl::OUString strName( ::ooevtdescgen::getImplementationName() );
-+ return Sequence< ::rtl::OUString >( &strName, 1 );
-+ }
-+}
---- /dev/null 2005-06-05 14:44:09.000000000 +0100
-+++ scripting/source/vbaevents/vbaevents.map 2005-09-14 10:02:01.346708419 +0100
-@@ -0,0 +1,10 @@
-+OOO_1.1 {
-+ global:
-+ component_getDescriptionFunc;
-+ component_getImplementationEnvironment;
-+ component_getFactory;
-+ component_writeInfo;
-+
-+ local:
-+ *;
-+};
---- /dev/null 2005-06-05 14:44:09.000000000 +0100
-+++ scripting/source/vbaevents/vbaevents.xml 2005-09-14 10:02:01.346708419 +0100
-@@ -0,0 +1,26 @@
-+<?xml version="1.0" encoding="UTF-8"?>
-+<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd">
-+<module-description xmlns:xlink="http://www.w3.org/1999/xlink">
-+
-+ <module-name>vbaevents</module-name>
-+
-+ <component-description>
-+ <author>Noel Power </author>
-+ <name>org.openoffice.vba.EventListener</name>
-+ <description>Event listener to handle ooo events and to translate them to calls to basic macros ala Button_Click etc.</description>
-+ <loader-name>com.sun.star.loader.SharedLibrary</loader-name>
-+ <language>c++</language>
-+ <status value="drafts"/>
-+ <supported-service>org.openoffice.vba.EventListener</supported-service>
-+ <type>com.sun.star.uno.XComponentContext</type>
-+ </component-description>
-+
-+ <project-build-dependency>cppuhelper</project-build-dependency>
-+ <project-build-dependency>cppu</project-build-dependency>
-+ <project-build-dependency>sal</project-build-dependency>
-+
-+ <runtime-module-dependency>cppuhelper3$(COM)</runtime-module-dependency>
-+ <runtime-module-dependency>cppu3</runtime-module-dependency>
-+ <runtime-module-dependency>sal3</runtime-module-dependency>
-+
-+</module-description>
diff --git a/po/.cvsignore b/po/.cvsignore
deleted file mode 100644
index 049c82679..000000000
--- a/po/.cvsignore
+++ /dev/null
@@ -1,14 +0,0 @@
-*.pot
-POTFILES
-Makefile
-Makefile.in
-Makefile.in.in
-Makevars.template
-Rules-quot
-boldquot.sed
-en@boldquot.header
-en@quot.header
-insert-header.sin
-messages.mo
-quot.sed
-remove-potcdate.sin
diff --git a/po/Makefile.am b/po/Makefile.am
deleted file mode 100644
index 84ea92faa..000000000
--- a/po/Makefile.am
+++ /dev/null
@@ -1 +0,0 @@
-EXTRA_DIST=${wildcard *.po} ChangeLog POTFILES.in
diff --git a/po/POTFILES.in b/po/POTFILES.in
deleted file mode 100644
index 9bd1de6bc..000000000
--- a/po/POTFILES.in
+++ /dev/null
@@ -1,6 +0,0 @@
-desktop/drawing.desktop.in
-desktop/presentation.desktop.in
-desktop/spreadsheet.desktop.in
-desktop/textdoc.desktop.in
-desktop/database.desktop.in
-desktop/formula.desktop.in
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
deleted file mode 100644
index ec7325333..000000000
--- a/po/POTFILES.skip
+++ /dev/null
@@ -1,4 +0,0 @@
-bonobo/data/GNOME_OpenOfficeOrg.server.in.in
-bonobo/data/ooo-bonobo-control-ui.xml
-desktop/openoffice-extra.keys.in
-desktop/openoffice.keys.in
diff --git a/po/az.po b/po/az.po
deleted file mode 100644
index 03012a81d..000000000
--- a/po/az.po
+++ /dev/null
@@ -1,66 +0,0 @@
-# openoffice.HEAD.po faylının Azərbaycan dilinə tərcüməsi
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# MÉ™tin Æmirov <metin@karegen.com>, 2003
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openoffice.HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-10-01 20:42+0200\n"
-"PO-Revision-Date: 2003-10-03 19:52+0300\n"
-"Last-Translator: MÉ™tin Æmirov <metin@karegen.com>\n"
-"Language-Team: Azərbaycan <gnome@azitt.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.0.1\n"
-
-#: desktop/drawing1.1.desktop.in.h:1
-msgid "Drawing (1.1)"
-msgstr "Rəsm (1.1)"
-
-#: desktop/drawing1.1.desktop.in.h:2 desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "OpenOffice.org rəsm çəkmə paketi"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Rəsm"
-
-#: desktop/presentation1.1.desktop.in.h:1 desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "OpenOffice.org təqdimat proqramı"
-
-#: desktop/presentation1.1.desktop.in.h:2
-msgid "Presentation (1.1)"
-msgstr "Təqdimat (1.1)"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Təqdimat"
-
-#: desktop/spreadsheet1.1.desktop.in.h:1 desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "OpenOffice.org hesab cədvəli"
-
-#: desktop/spreadsheet1.1.desktop.in.h:2
-msgid "Spreadsheet (1.1)"
-msgstr "Hesab Cədvəli (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Hesab Cədvəli"
-
-#: desktop/textdoc1.1.desktop.in.h:1 desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice.org kəlmə işlədicisi"
-
-#: desktop/textdoc1.1.desktop.in.h:2
-msgid "Word Processor (1.1)"
-msgstr "Kəlmə İşlədici (1.1)"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Kəlmə İşlədici"
-
diff --git a/po/bg.po b/po/bg.po
deleted file mode 100644
index 8107c7020..000000000
--- a/po/bg.po
+++ /dev/null
@@ -1,67 +0,0 @@
-# Bulgarian translation of openoffice.
-# Copyright (C) 2004 Free Software Foundation
-# This file is distributed under the same license as the openoffice package.
-# Vladimir "Kaladan" Petkov <vpetkov@i-space.org>, 2004.
-#
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openoffice gnome 2.8\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-11 08:34+0300\n"
-"PO-Revision-Date: 2005-04-11 08:34+0300\n"
-"Last-Translator: Vladimir \"Kaladan\" Petkov <vpetkov@i-space.org>\n"
-"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-
-#: ../desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "РиÑунка"
-
-#: ../desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "Програма за риÑуване на OpenOffice.org"
-
-#: ../desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Програма за презентации на OpenOffice.org"
-
-#: ../desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "ПрезентациÑ"
-
-#: ../desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Програма за електронни таблици на OpenOffice.org"
-
-#: ../desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Електронна таблица"
-
-#: ../desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "Програма за текÑтообработка на OpenOffice.org"
-
-#: ../desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "ТекÑтообработка"
-
-#: ../desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Бази от данни"
-
-#: ../desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "Програма за бази от данни на OpenOffice.org"
-
-#: ../desktop/formula.desktop.in.h:1
-msgid "Formula"
-msgstr "Формула"
-
-#: ../desktop/formula.desktop.in.h:2
-msgid "OpenOffice.org formula editor"
-msgstr "Програма за Ñъздаване на формули на OpenOffice.org"
-
diff --git a/po/bs.po b/po/bs.po
deleted file mode 100644
index c3f761dfd..000000000
--- a/po/bs.po
+++ /dev/null
@@ -1,66 +0,0 @@
-# translation of openoffice.HEAD.po to Bosnian
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
-# Kemal Sanjta <gomez@lugzdk.ba>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openoffice.HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-07-29 20:15+0200\n"
-"PO-Revision-Date: 2004-07-30 03:09+0200\n"
-"Last-Translator: Kemal Sanjta <gomez@lugzdk.ba>\n"
-"Language-Team: Bosnian <+>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3.1\n"
-
-#: desktop/drawing1.1.desktop.in.h:1
-msgid "Drawing (1.1)"
-msgstr "Crtanje (1.1)"
-
-#: desktop/drawing1.1.desktop.in.h:2 desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "OpenOffice.org paket za crtanje"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Crtanje"
-
-#: desktop/presentation1.1.desktop.in.h:1 desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "OpenOffice.org prezentacijska aplikacija"
-
-#: desktop/presentation1.1.desktop.in.h:2
-msgid "Presentation (1.1)"
-msgstr "Prezentacija (1.1)"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Prezentacija"
-
-#: desktop/spreadsheet1.1.desktop.in.h:1 desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "penOffice.org spreadsheet"
-
-#: desktop/spreadsheet1.1.desktop.in.h:2
-msgid "Spreadsheet (1.1)"
-msgstr "Spreadsheet (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Spreadsheet"
-
-#: desktop/textdoc1.1.desktop.in.h:1 desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice.org word processor"
-
-#: desktop/textdoc1.1.desktop.in.h:2
-msgid "Word Processor (1.1)"
-msgstr "Word Processor (1.1)"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Word Processor"
-
diff --git a/po/ca.po b/po/ca.po
deleted file mode 100644
index 128da8b95..000000000
--- a/po/ca.po
+++ /dev/null
@@ -1,60 +0,0 @@
-# Catalan translation of ooo-build.
-# Copyright © 2003 Free Software Foundation, Inc.
-# This file is distributed under the same license as the ooo-build package.
-# Jordi Mallach <jordi@sindominio.net>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ooo-build\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-02-09 10:52+0100\n"
-"PO-Revision-Date: 2003-08-31 21:20+0200\n"
-"Last-Translator: Jordi Mallach <jordi@sindominio.net>\n"
-"Language-Team: Catalan <tradgnome@softcatala.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Dibuix"
-
-#: ../desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "Paquet de dibuix de l'OpenOffice.org"
-
-#: ../desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Aplicació de presentacions de l'OpenOffice.org"
-
-#: ../desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Presentació"
-
-#: ../desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Full de càlcul de l'OpenOffice.org"
-
-#: ../desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Full de càlcul"
-
-#: ../desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "Processador de textos de l'OpenOffice.org"
-
-#: ../desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Processador de textos"
-
-#~ msgid "Drawing (1.1)"
-#~ msgstr "Dibuix (1.1)"
-
-#~ msgid "Presentation (1.1)"
-#~ msgstr "Presentació (1.1)"
-
-#~ msgid "Spreadsheet (1.1)"
-#~ msgstr "Full de càlcul (1.1)"
-
-#~ msgid "Word Processor (1.1)"
-#~ msgstr "Processador de textos (1.1)"
diff --git a/po/cs.po b/po/cs.po
deleted file mode 100644
index 483d223a6..000000000
--- a/po/cs.po
+++ /dev/null
@@ -1,65 +0,0 @@
-# Czech translation of openoffice.
-# Copyright (C) 2003, 2005 openoffice'S COPYRIGHT HOLDER
-# Copyright (C) 2005 Miloslav Trmac <mitr@volny.cz>
-# This file is distributed under the same license as the ooo-build package.
-# Miloslav Trmac <mitr@volny.cz>, 2003, 2005.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ooo-build VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-11 04:30+0100\n"
-"PO-Revision-Date: 2005-03-11 15:35+0100\n"
-"Last-Translator: Miloslav Trmac <mitr@volny.cz>\n"
-"Language-Team: Czech <cs@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Kreslení"
-
-#: desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "Kreslicí balík OpenOffice.org"
-
-#: desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Aplikace OpenOffice.org pro prezentace"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Prezentace"
-
-#: desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Tabulkový kalkulátor OpenOffice.org"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Tabulkový kalkulátor"
-
-#: desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "Textový procesor OpenOffice.org"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Textový procesor"
-
-#: desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Databáze"
-
-#: desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "Databáze OpenOffice.org"
-
-#: desktop/formula.desktop.in.h:1
-msgid "Formula"
-msgstr "Vzorec"
-
-#: desktop/formula.desktop.in.h:2
-msgid "OpenOffice.org formula editor"
-msgstr "Editor vzorců OpenOffice.org"
diff --git a/po/da.po b/po/da.po
deleted file mode 100644
index 6274e54f1..000000000
--- a/po/da.po
+++ /dev/null
@@ -1,62 +0,0 @@
-# Danish translation of openoffice strings.
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# Ole Laursen <olau@hardworking.dk>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openoffice\n"
-"POT-Creation-Date: 2003-08-20 18:24+0200\n"
-"PO-Revision-Date: 2003-08-21 21:23+0200\n"
-"Last-Translator: Ole Laursen <olau@hardworking.dk>\n"
-"Language-Team: Danish <dansk@klid.dk>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing1.1.desktop.in.h:1
-msgid "Drawing (1.1)"
-msgstr "Tegneprogram (1.1)"
-
-#: desktop/drawing1.1.desktop.in.h:2 desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "OpenOffice.org-tegnepakke"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Tegneprogram"
-
-#: desktop/presentation1.1.desktop.in.h:1 desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "OpenOffice.org-præsentationsprogram"
-
-#: desktop/presentation1.1.desktop.in.h:2
-msgid "Presentation (1.1)"
-msgstr "Præsentation (1.1)"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Præsentation"
-
-#: desktop/spreadsheet1.1.desktop.in.h:1 desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "OpenOffice.org-regneark"
-
-#: desktop/spreadsheet1.1.desktop.in.h:2
-msgid "Spreadsheet (1.1)"
-msgstr "Regneark (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Regneark"
-
-#: desktop/textdoc1.1.desktop.in.h:1 desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice.org-tekstbehandler"
-
-#: desktop/textdoc1.1.desktop.in.h:2
-msgid "Word Processor (1.1)"
-msgstr "Tekstbehandler (1.1)"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Tekstbehandler"
diff --git a/po/de.po b/po/de.po
deleted file mode 100644
index 00f8870ac..000000000
--- a/po/de.po
+++ /dev/null
@@ -1,79 +0,0 @@
-# Ximian OpenOffice.
-# Copyright (C) 2003 Ximian, Inc
-# This file is distributed under the same license as the ooo-build package.
-# Martin Kretzschmar <m_kretzschmar@gmx.net>, 2003.
-# Christian Neumair <chris@gnome-de.org>, 2003.
-# Frank Arnold <frank@scirocco-5v-turbo.de>, 2005.
-#
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ooo-build\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-08 08:37+0100\n"
-"PO-Revision-Date: 2005-03-08 08:37+0100\n"
-"Last-Translator: Frank Arnold <frank@scirocco-5v-turbo.de>\n"
-"Language-Team: German GNOME Translators <gnome-de@gnome.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Zeichnung"
-
-#: ../desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "OpenOffice.org Zeichnungspaket"
-
-#: ../desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "OpenOffice.org Präsentationsanwendung"
-
-#: ../desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Präsentation"
-
-#: ../desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "OpenOffice.org Tabellenkalkulation"
-
-#: ../desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Tabellenkalkulation"
-
-#: ../desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice.org Textverarbeitung"
-
-#: ../desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Textverarbeitung"
-
-#: ../desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Datenbank"
-
-#: ../desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "OpenOffice.org Datenbank"
-
-#: ../desktop/formula.desktop.in.h:1
-msgid "Formula"
-msgstr "Formel"
-
-#: ../desktop/formula.desktop.in.h:2
-msgid "OpenOffice.org formula editor"
-msgstr "OpenOffice.org Formeleditor"
-
-#~ msgid "Drawing (1.1)"
-#~ msgstr "Zeichnung (1.1)"
-
-#~ msgid "Presentation (1.1)"
-#~ msgstr "Präsentation (1.1)"
-
-#~ msgid "Spreadsheet (1.1)"
-#~ msgstr "Tabellenkalkulation (1.1)"
-
-#~ msgid "Word Processor (1.1)"
-#~ msgstr "Textverarbeitung (1.1)"
diff --git a/po/el.po b/po/el.po
deleted file mode 100644
index 827483e80..000000000
--- a/po/el.po
+++ /dev/null
@@ -1,80 +0,0 @@
-# translation of el.po to Greek
-# Greek translation of PACKAGE.
-# Copyright (C) 2005 THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# Kostas Papadimas <pkst@gnome.org>, 2005.
-#
-msgid ""
-msgstr ""
-"PO-Revision-Date: 2005-06-27 18:26+0300\n"
-"X-Generator: KBabel 1.3.1\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"Project-Id-Version: el\n"
-"Report-Msgid-Bugs-To: \n"
-"Last-Translator: Simos Xenitellis <simos74@gmx.net>\n"
-"Language-Team: Greek <nls@tux.hellug.gr>\n"
-"POT-Creation-Date: 2005-06-27 12:05+0000\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"MIME-Version: 1.0\n"
-
-#: ../desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Σχεδιασμός"
-
-#: ../desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "ΕφαÏμογή ÏƒÏ‡ÎµÎ´Î¹Î±ÏƒÎ¼Î¿Ï OpenOffice.org"
-
-#: ../desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "ΕφαÏμογή παÏουσιάσεων OpenOffice.org"
-
-#: ../desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "ΠαÏουσίαση"
-
-#: ../desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Λογιστικό φÏλλο OpenOffice.org"
-
-#: ../desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Λογιστικό φÏλλο "
-
-#: ../desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "ΕπεξεÏγαστής κειμένου OpenOffice.org"
-
-#: ../desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "ΕπεξεÏγαστής κειμένου"
-
-#: ../desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Βάση δεδομένων"
-
-#: ../desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "Βάση δεδομένων OpenOffice.org"
-
-#: ../desktop/formula.desktop.in.h:1
-msgid "Formula"
-msgstr "ΦόÏμουλα"
-
-#: ../desktop/formula.desktop.in.h:2
-msgid "OpenOffice.org formula editor"
-msgstr "ΕπεξεÏγαστής φόÏμουλας OpenOffice.org"
-
-#~ msgid "Drawing (1.1)"
-#~ msgstr "ΠαÏουσίαση (1.1)"
-
-#~ msgid "Presentation (1.1)"
-#~ msgstr "ΠαÏουσίαση (1.1)"
-
-#~ msgid "Spreadsheet (1.1)"
-#~ msgstr "Λογιστικό φÏλλο·(1.1)"
-
-#~ msgid "Word Processor (1.1)"
-#~ msgstr "ΕπεξεÏγαστής·κειμένου (1.1)"
-
diff --git a/po/en_CA.po b/po/en_CA.po
deleted file mode 100644
index 0f6852bf9..000000000
--- a/po/en_CA.po
+++ /dev/null
@@ -1,65 +0,0 @@
-# English/Canada translation of openoffice.
-# Copyright (C) 2004-2005 Adam Weinberger and the GNOME Foundation
-# This file is distributed under the same license as the openoffice package.
-# Adam Weinberger <adamw@gnome.org>, 2004, 2005.
-#
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openoffice\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-07 11:17-0500\n"
-"PO-Revision-Date: 2005-03-17 16:01-0400\n"
-"Last-Translator: Adam Weinberger <adamw@gnome.org>\n"
-"Language-Team: Canadian English <adamw@gnome.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Drawing"
-
-#: ../desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "OpenOffice.org drawing package"
-
-#: ../desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "OpenOffice.org presentation application"
-
-#: ../desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Presentation"
-
-#: ../desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "OpenOffice.org spreadsheet"
-
-#: ../desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Spreadsheet"
-
-#: ../desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice.org word processor"
-
-#: ../desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Word Processor"
-
-#: ../desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Database"
-
-#: ../desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "OpenOffice.org database"
-
-#: ../desktop/formula.desktop.in.h:1
-msgid "Formula"
-msgstr "Formula"
-
-#: ../desktop/formula.desktop.in.h:2
-msgid "OpenOffice.org formula editor"
-msgstr "OpenOffice.org formula editor"
diff --git a/po/en_GB.po b/po/en_GB.po
deleted file mode 100644
index c3c4db529..000000000
--- a/po/en_GB.po
+++ /dev/null
@@ -1,67 +0,0 @@
-# English/GB translation of openoffice.
-# Copyright (C) 2004 THE openoffice'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the openoffice package.
-# David Lodge <dave@cirt.net>, 2004.
-# , fuzzy
-#
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openoffice HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-19 21:54+0100\n"
-"PO-Revision-Date: 2005-04-19 21:54+0100\n"
-"Last-Translator: David Lodge <dave@cirt.net>\n"
-"Language-Team: English/GB <en@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Drawing"
-
-#: ../desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "OpenOffice.org drawing package"
-
-#: ../desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "OpenOffice.org presentation application"
-
-#: ../desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Presentation"
-
-#: ../desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "OpenOffice.org spreadsheet"
-
-#: ../desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Spreadsheet"
-
-#: ../desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice.org word processor"
-
-#: ../desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Word Processor"
-
-#: ../desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Database"
-
-#: ../desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "OpenOffice.org database"
-
-#: ../desktop/formula.desktop.in.h:1
-msgid "Formula"
-msgstr "Formula"
-
-#: ../desktop/formula.desktop.in.h:2
-msgid "OpenOffice.org formula editor"
-msgstr "OpenOffice.org formula editor"
-
diff --git a/po/en_ZA.po b/po/en_ZA.po
deleted file mode 100644
index daa10bad5..000000000
--- a/po/en_ZA.po
+++ /dev/null
@@ -1,64 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ooo-build\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-10-20 22:15+0200\n"
-"PO-Revision-Date: 2005-10-25 10:15+0200\n"
-"Last-Translator: Dwayne Bailey <dwayne@translate.org.za>\n"
-"Language-Team: South African English <dwayne@translate.org.za>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Drawing"
-
-#: desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "OpenOffice.org drawing package"
-
-#: desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "OpenOffice.org presentation application"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Presentation"
-
-#: desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "OpenOffice.org spreadsheet"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Spreadsheet"
-
-#: desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice.org word processor"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Word Processor"
-
-#: desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Database"
-
-#: desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "OpenOffice.org database"
-
-#: desktop/formula.desktop.in.h:1
-msgid "Formula"
-msgstr "Formula"
-
-#: desktop/formula.desktop.in.h:2
-msgid "OpenOffice.org formula editor"
-msgstr "OpenOffice.org formula editor"
diff --git a/po/es.po b/po/es.po
deleted file mode 100644
index 048398cd3..000000000
--- a/po/es.po
+++ /dev/null
@@ -1,76 +0,0 @@
-# Ximian OpenOffice.
-# Copyright (C) 2003 Ximian, Inc
-# This file is distributed under the same license as the openoffice package.
-# Carlos Perelló Marín <carlos@gnome.org>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openoffice VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-05-01 16:37+0200\n"
-"PO-Revision-Date: 2005-05-01 16:38+0200\n"
-"Last-Translator: Carlos Perelló Marín <carlos@gnome.org>\n"
-"Language-Team: Spanish <traductores@es.gnome.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Dibujo"
-
-#: ../desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "Paquete de dibujo de OpenOffice.org"
-
-#: ../desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Aplicación de presentaciones de OpenOffice.org"
-
-#: ../desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Presentación"
-
-#: ../desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Hoja de cálculo de OpenOffice.org"
-
-#: ../desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Hoja de cálculo"
-
-#: ../desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "Procesador de textos de OpenOffice.org"
-
-#: ../desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Procesador de textos"
-
-#: ../desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Base de datos"
-
-#: ../desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "Base de datos de OpenOffice.org"
-
-#: ../desktop/formula.desktop.in.h:1
-msgid "Formula"
-msgstr "Fórmula"
-
-#: ../desktop/formula.desktop.in.h:2
-msgid "OpenOffice.org formula editor"
-msgstr "Editor de fórmulas de OpenOffice.org"
-
-#~ msgid "Drawing (1.1)"
-#~ msgstr "Dibujo (1.1)"
-
-#~ msgid "Presentation (1.1)"
-#~ msgstr "Presentación (1.1)"
-
-#~ msgid "Spreadsheet (1.1)"
-#~ msgstr "Hoja de cálculo (1.1)"
-
-#~ msgid "Word Processor (1.1)"
-#~ msgstr "Procesador de textos (1.1)"
diff --git a/po/eu.po b/po/eu.po
deleted file mode 100644
index d7f07134f..000000000
--- a/po/eu.po
+++ /dev/null
@@ -1,68 +0,0 @@
-# translation of openoffice.HEAD.po to basque
-# Basque translation of openoffice.
-# Copyright (C) 2003 THE openoffice'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the openoffice package.
-# Mikel Olasagasti <hey_neken@mundurat.net>, 2003.
-# Iñaki Larrañaga Murgoitio <dooteo@euskalgnu.org>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openoffice.HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-12-29 05:08+0100\n"
-"PO-Revision-Date: 2004-01-08 23:30+0100\n"
-"Last-Translator: Iñaki Larrañaga Murgoitio <dooteo@euskalgnu.org>\n"
-"Language-Team: basque <itzulpena@euskalgnu.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.0.2\n"
-
-#: desktop/drawing1.1.desktop.in.h:1
-msgid "Drawing (1.1)"
-msgstr "Marrazketa (1.1)"
-
-#: desktop/drawing1.1.desktop.in.h:2 desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "OpenOffice.org marrazketa paketea"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Marrazketa"
-
-#: desktop/presentation1.1.desktop.in.h:1 desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "OpenOffice.org aurkezpen aplikazioa"
-
-#: desktop/presentation1.1.desktop.in.h:2
-msgid "Presentation (1.1)"
-msgstr "Aurkezpena (1.1)"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Aurkezpena"
-
-#: desktop/spreadsheet1.1.desktop.in.h:1 desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "OpenOffice.org kalkulu-orria"
-
-#: desktop/spreadsheet1.1.desktop.in.h:2
-msgid "Spreadsheet (1.1)"
-msgstr "Kalkulu-orria (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Kalkulu-orria"
-
-#: desktop/textdoc1.1.desktop.in.h:1 desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice.org testu prozesatzailea"
-
-#: desktop/textdoc1.1.desktop.in.h:2
-msgid "Word Processor (1.1)"
-msgstr "Testu prozesatzailea (1.1)"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Testu prozesatzailea"
-
diff --git a/po/fi.po b/po/fi.po
deleted file mode 100644
index b0ed8ea5c..000000000
--- a/po/fi.po
+++ /dev/null
@@ -1,57 +0,0 @@
-# Finnish translations for ooo-build package.
-# Copyright (C) 2005 Free Software Foundation, Inc.
-# This file is distributed under the same license as the ooo-build package.
-# Tommi Vainikainen <Tommi.Vainikainen@iki.fi>, 2005.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ooo-build\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-04 14:35+0200\n"
-"PO-Revision-Date: 2005-03-04 14:37+0200\n"
-"Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n"
-"Language-Team: Finnish <gnome-fi-laatu@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: ../desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Piirros"
-
-#: ../desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "OpenOffice.org-piirrospaketti"
-
-#: ../desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "OpenOffice.org-esityssovellus"
-
-#: ../desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Esitys"
-
-#: ../desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "OpenOffice.org-taulukkolaskenta"
-
-#: ../desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Taulukkolaskenta"
-
-#: ../desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice.org-tekstinkäsittely"
-
-#: ../desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Tekstinkäsittely"
-
-#: ../desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Tietokanta"
-
-#: ../desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "OpenOffice.org-tietokanta"
diff --git a/po/fr.po b/po/fr.po
deleted file mode 100644
index ec0f09013..000000000
--- a/po/fr.po
+++ /dev/null
@@ -1,64 +0,0 @@
-# French translation of ooo-build.
-# Copyright (C) 2003 The Free Software Foundation, Inc.
-# This file is distributed under the same license as the ooo-build package.
-# Christophe Merlet (RedFox) <redfox@redfoxcenter.org>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ooo-build 1.1.38\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-08-30 22:38+0200\n"
-"PO-Revision-Date: 2003-08-30 22:38+0200\n"
-"Last-Translator: Christophe Merlet (RedFox) <redfox@redfoxcenter.org>\n"
-"Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing1.1.desktop.in.h:1
-msgid "Drawing (1.1)"
-msgstr "Dessin (1.1)"
-
-#: desktop/drawing1.1.desktop.in.h:2 desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "Dessin OpenOffice.org"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Dessin"
-
-#: desktop/presentation1.1.desktop.in.h:1 desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Application de présentation OpenOffice.org"
-
-#: desktop/presentation1.1.desktop.in.h:2
-msgid "Presentation (1.1)"
-msgstr "Présentation (1.1)"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Présentation"
-
-#: desktop/spreadsheet1.1.desktop.in.h:1 desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Tableur OpenOffice.org"
-
-#: desktop/spreadsheet1.1.desktop.in.h:2
-msgid "Spreadsheet (1.1)"
-msgstr "Tableur (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Tableur"
-
-#: desktop/textdoc1.1.desktop.in.h:1 desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "Traitement de texte OpenOffice.org"
-
-#: desktop/textdoc1.1.desktop.in.h:2
-msgid "Word Processor (1.1)"
-msgstr "Traitement de texte (1.1)"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Traitement de texte"
diff --git a/po/ga.po b/po/ga.po
deleted file mode 100644
index fa6bdfe50..000000000
--- a/po/ga.po
+++ /dev/null
@@ -1,64 +0,0 @@
-# Iriah (gaeilge) translations for openoffice
-# Copyright (C) 2004 Alastair McKinstry <mckinstry@computer.org>
-# This file is distributed under the same license as the PACKAGE package.
-# Alastair McKinstry <mckinstry@computer.org>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openoffice HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-12-17 04:50+0100\n"
-"PO-Revision-Date: 2004-03-11 19:17+0000\n"
-"Last-Translator: Alastair McKinstry <mckinstry@computer.org>\n"
-"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing1.1.desktop.in.h:1
-msgid "Drawing (1.1)"
-msgstr "Tarraingt (1.1)"
-
-#: desktop/drawing1.1.desktop.in.h:2 desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "Pacáiste Tarraingt OpenOffice.org"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Tarraingt"
-
-#: desktop/presentation1.1.desktop.in.h:1 desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Feidhmchlár Thoirbheatha OpenOffice.org"
-
-#: desktop/presentation1.1.desktop.in.h:2
-msgid "Presentation (1.1)"
-msgstr "Toirbeathas (1.1)"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Toirbeathas"
-
-#: desktop/spreadsheet1.1.desktop.in.h:1 desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Scarbhileog OpenOffice.org"
-
-#: desktop/spreadsheet1.1.desktop.in.h:2
-msgid "Spreadsheet (1.1)"
-msgstr "Scarbhileog (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Scarbhileog"
-
-#: desktop/textdoc1.1.desktop.in.h:1 desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "Próseálaithe Focal OpenOffice.org"
-
-#: desktop/textdoc1.1.desktop.in.h:2
-msgid "Word Processor (1.1)"
-msgstr "Próiseálaithe Focal (1.1)"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Próiseálaithe Focal"
diff --git a/po/gl.po b/po/gl.po
deleted file mode 100644
index 4ba6ae59f..000000000
--- a/po/gl.po
+++ /dev/null
@@ -1,65 +0,0 @@
-# translation of ooo-build.HEAD.po to Galego
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
-# Ignacio Casal Quinteiro <nacho.resa@gmail.com>, 2005.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ooo-build.HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-06-23 03:18+0200\n"
-"PO-Revision-Date: 2005-06-23 03:15+0200\n"
-"Last-Translator: Ignacio Casal Quinteiro <nacho.resa@gmail.com>\n"
-"Language-Team: Galego\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.9.1\n"
-
-#: ../desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Debuxo"
-
-#: ../desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "Paquete de debuxo de OpenOffice.org"
-
-#: ../desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Aplicación de presentacións de OpenOffice.org"
-
-#: ../desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Presentación"
-
-#: ../desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Folla de cálculo de OpenOffice.org"
-
-#: ../desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Folla de cálculo"
-
-#: ../desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "Procesador de textos de OpenOffice.org"
-
-#: ../desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Procesador de textos"
-
-#: ../desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Base de datos"
-
-#: ../desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "Base de datos de OpenOffice.org"
-
-#: ../desktop/formula.desktop.in.h:1
-msgid "Formula"
-msgstr "Fórmula"
-
-#: ../desktop/formula.desktop.in.h:2
-msgid "OpenOffice.org formula editor"
-msgstr "Editor de fórmulas de OpenOffice.org"
diff --git a/po/gu.po b/po/gu.po
deleted file mode 100644
index b0456edd5..000000000
--- a/po/gu.po
+++ /dev/null
@@ -1,67 +0,0 @@
-# translation of openoffice.HEAD.po to Gujarati
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
-# Ankit Patel <ankit@redhat.com>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openoffice.HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-08-10 04:18+0200\n"
-"PO-Revision-Date: 2004-08-10 14:40+0530\n"
-"Last-Translator: Ankit Patel <ankit@redhat.com>\n"
-"Language-Team: Gujarati\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3.1\n"
-"Plural-Forms: Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
-
-#: desktop/drawing1.1.desktop.in.h:1
-msgid "Drawing (1.1)"
-msgstr "ચિતà«àª° (1.1)"
-
-#: desktop/drawing1.1.desktop.in.h:2 desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "OpenOffice.org દોરવાનà«àª‚ પેકેજ"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "ચિતà«àª°"
-
-#: desktop/presentation1.1.desktop.in.h:1 desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "OpenOffice.org રજૂઆત કારà«àª¯àª•à«àª°àª®"
-
-#: desktop/presentation1.1.desktop.in.h:2
-msgid "Presentation (1.1)"
-msgstr "રજૂઆત (1.1)"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "રજૂઆત"
-
-#: desktop/spreadsheet1.1.desktop.in.h:1 desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "OpenOffice.org સà«àªªà«àª°à«‡àª¡àª¶à«€àªŸ"
-
-#: desktop/spreadsheet1.1.desktop.in.h:2
-msgid "Spreadsheet (1.1)"
-msgstr "સà«àªªà«àª°à«‡àª¡àª¶à«€àªŸ (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "સà«àªªà«àª°à«‡àª¡àª¶à«€àªŸ"
-
-#: desktop/textdoc1.1.desktop.in.h:1 desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice.org વરà«àª¡ પà«àª°à«‹àª¸à«‡àª¸àª°"
-
-#: desktop/textdoc1.1.desktop.in.h:2
-msgid "Word Processor (1.1)"
-msgstr "વરà«àª¡ પà«àª°à«‹àª¸à«‡àª¸àª° (1.1)"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "વરà«àª¡ પà«àª°à«‹àª¸à«‡àª¸àª°"
-
diff --git a/po/he.po b/po/he.po
deleted file mode 100644
index b1a57190e..000000000
--- a/po/he.po
+++ /dev/null
@@ -1,67 +0,0 @@
-# translation of openoffice.HEAD.po to Hebrew
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
-# Gil Osher <dolfin@rpg.org.il>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openoffice.HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-05-22 04:17+0200\n"
-"PO-Revision-Date: 2004-05-22 15:46+0300\n"
-"Last-Translator: Gil Osher <dolfin@rpg.org.il>\n"
-"Language-Team: Hebrew <he@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3.1\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: desktop/drawing1.1.desktop.in.h:1
-msgid "Drawing (1.1)"
-msgstr "ציור (1.1)"
-
-#: desktop/drawing1.1.desktop.in.h:2 desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "חבילת הציור של OpenOffice.org"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "ציור"
-
-#: desktop/presentation1.1.desktop.in.h:1 desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "×™×™×©×•× ×”×ž×¦×’×•×ª של OpenOffice.org"
-
-#: desktop/presentation1.1.desktop.in.h:2
-msgid "Presentation (1.1)"
-msgstr "מצגות (1.1)"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "מצגות"
-
-#: desktop/spreadsheet1.1.desktop.in.h:1 desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "הגיליון ×”×לקטרוני של OpenOffice.org"
-
-#: desktop/spreadsheet1.1.desktop.in.h:2
-msgid "Spreadsheet (1.1)"
-msgstr "גיליון ×לקטרוני (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "גיליון ×לקטרוני"
-
-#: desktop/textdoc1.1.desktop.in.h:1 desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "מעבד ×”×ª×ž×œ×™×œ×™× ×©×œ OpenOffice.org"
-
-#: desktop/textdoc1.1.desktop.in.h:2
-msgid "Word Processor (1.1)"
-msgstr "מעבד ×ª×ž×œ×™×œ×™× (1.1)"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "מעבד תמלילי×"
-
diff --git a/po/hr.po b/po/hr.po
deleted file mode 100644
index 74f704333..000000000
--- a/po/hr.po
+++ /dev/null
@@ -1,63 +0,0 @@
-# Translation of openoffice to Croatiann
-# Copyright (C) Croatiann team
-# Translators: Automatski Prijevod <>,Robert Sedak <robert.sedak@sk.tel.hr>,
-msgid ""
-msgstr ""
-"Project-Id-Version: openoffice 0\n"
-"POT-Creation-Date: 2004-03-20 15:01+0100\n"
-"PO-Revision-Date: 2004-03-20 15:01+CET\n"
-"Last-Translator: auto\n"
-"Language-Team: Croatian <lokalizacija@linux.hr>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: TransDict server\n"
-
-#: desktop/drawing1.1.desktop.in.h:1
-msgid "Drawing (1.1)"
-msgstr "Drawing (1.1)"
-
-#: desktop/drawing1.1.desktop.in.h:2 desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "OpenOffice.org paket za crtanje"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Crtanje"
-
-#: desktop/presentation1.1.desktop.in.h:1 desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "OpenOffice.org aplikacija za prezentacije"
-
-#: desktop/presentation1.1.desktop.in.h:2
-msgid "Presentation (1.1)"
-msgstr "Presentation (1.1)"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Prezentacija"
-
-#: desktop/spreadsheet1.1.desktop.in.h:1 desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "ProraÄunska tablica OpenOffice.org"
-
-#: desktop/spreadsheet1.1.desktop.in.h:2
-msgid "Spreadsheet (1.1)"
-msgstr "Spreadsheet (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "TabliÄni kalkulator"
-
-#: desktop/textdoc1.1.desktop.in.h:1 desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice.org program za obradu teksta"
-
-#: desktop/textdoc1.1.desktop.in.h:2
-msgid "Word Processor (1.1)"
-msgstr "Word Processor (1.1)"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Program za obradu teksta"
-
diff --git a/po/hu.po b/po/hu.po
deleted file mode 100644
index ba2fe3305..000000000
--- a/po/hu.po
+++ /dev/null
@@ -1,68 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
-# Andras Timar <timar@fsf.hu>, 2004.
-# Gabor Kelemen <kelemeng@gnome.hu>, 2005.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ooo-build.HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-20 12:20+0100\n"
-"PO-Revision-Date: 2005-03-22 12:58+0100\n"
-"Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
-"Language-Team: Hungarian <gnome@gnome.hu>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3.1\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Rajzoló"
-
-#: desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "OpenOffice.org rajzoló alkalmazás"
-
-#: desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "OpenOffice.org bemutatókészítő alkalmazás"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Bemutatókészítő"
-
-#: desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "OpenOffice.org táblázatkezelő"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Táblázatkezelő"
-
-#: desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice.org szövegszerkesztő"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Szövegszerkesztő"
-
-#: desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Adatbázis"
-
-#: desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "OpenOffice.org adatbázis"
-
-#: desktop/formula.desktop.in.h:1
-msgid "Formula"
-msgstr "Képlet"
-
-#: desktop/formula.desktop.in.h:2
-msgid "OpenOffice.org formula editor"
-msgstr "OpenOffice.org képletszerkesztő"
-
diff --git a/po/is.po b/po/is.po
deleted file mode 100644
index 8de5b1bbb..000000000
--- a/po/is.po
+++ /dev/null
@@ -1,64 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-# Helgi Þormar Þorbjörnsson <helgi@trance.is>, 2004
-msgid ""
-msgstr ""
-"Project-Id-Version: openoffice\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-04-07 02:06+0000\n"
-"PO-Revision-Date: 2004-03-13 18:11-0000\n"
-"Last-Translator: helgi <helgi@trance.is>\n"
-"Language-Team: Icelandic <gnome@techattack.nu>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing1.1.desktop.in.h:1
-msgid "Drawing (1.1)"
-msgstr ""
-
-#: desktop/drawing1.1.desktop.in.h:2 desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr ""
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr ""
-
-#: desktop/presentation1.1.desktop.in.h:1 desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "OpenOffice.org Impress framsetning"
-
-#: desktop/presentation1.1.desktop.in.h:2
-msgid "Presentation (1.1)"
-msgstr "Impress framsetning (1.1)"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Impress framsetning"
-
-#: desktop/spreadsheet1.1.desktop.in.h:1 desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "OpenOffice.org töflureiknir"
-
-#: desktop/spreadsheet1.1.desktop.in.h:2
-msgid "Spreadsheet (1.1)"
-msgstr "Töflureiknir (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Töflureiknir"
-
-#: desktop/textdoc1.1.desktop.in.h:1 desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice.org Ritvinnsla"
-
-#: desktop/textdoc1.1.desktop.in.h:2
-msgid "Word Processor (1.1)"
-msgstr "Ritvinnsla (1.1)"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Ritvinnsla"
diff --git a/po/ja.po b/po/ja.po
deleted file mode 100644
index 37f705547..000000000
--- a/po/ja.po
+++ /dev/null
@@ -1,64 +0,0 @@
-# openoffice Japanese translation
-# Copyright (C) 2004 Free Software Foundation
-# This file is distributed under the same license as the OOo package.
-# Yukihiro Nakai <nakai@gnome.gr.jp>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openoffice HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-02-21 19:42+0900\n"
-"PO-Revision-Date: 2004-02-21 19:42+0900\n"
-"Last-Translator: Yukihiro Nakai <nakai@gnome.gr.jp>\n"
-"Language-Team: Japanese <ja@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing1.1.desktop.in.h:1
-msgid "Drawing (1.1)"
-msgstr "ドロー (1.1)"
-
-#: desktop/drawing1.1.desktop.in.h:2 desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "OpenOffice.org ドローパッケージ"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "ドロー"
-
-#: desktop/presentation1.1.desktop.in.h:1 desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "OpenOffice.org プレゼンテーションアプリケーション"
-
-#: desktop/presentation1.1.desktop.in.h:2
-msgid "Presentation (1.1)"
-msgstr "プレゼンテーション (1.1)"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "プレゼンテーション"
-
-#: desktop/spreadsheet1.1.desktop.in.h:1 desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "OpenOffice.org スプレッドシート"
-
-#: desktop/spreadsheet1.1.desktop.in.h:2
-msgid "Spreadsheet (1.1)"
-msgstr "スプレッドシート (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "スプレッドシート"
-
-#: desktop/textdoc1.1.desktop.in.h:1 desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice.org ワープロ"
-
-#: desktop/textdoc1.1.desktop.in.h:2
-msgid "Word Processor (1.1)"
-msgstr "ワープロ (1.1)"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "ワープロ"
diff --git a/po/ka.po b/po/ka.po
deleted file mode 100644
index b2673beaa..000000000
--- a/po/ka.po
+++ /dev/null
@@ -1,68 +0,0 @@
-# Georgian translation of openoffice.
-# Copyright (C) 2004 Aiet Kolkhi
-# This file is distributed under the same license as the openoffice package.
-# Aiet Kolkhi <aiet@qartuli.net>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: 0.1\n"
-"POT-Creation-Date: 2004-04-29 15:40+0200\n"
-"PO-Revision-Date: 2004-05-15 13:05+0400\n"
-"Last-Translator: Aiet Kolkhi <aiet@qartuli.net>\n"
-"Language-Team: Georgian <aiet@qartuli.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing1.1.desktop.in.h:1
-msgid "Drawing (1.1)"
-msgstr "ხáƒáƒ¢áƒ•áƒ (1.1)"
-
-#: desktop/drawing1.1.desktop.in.h:2
-#: desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "OpenOffice.org-ის სáƒáƒ®áƒáƒ¢áƒáƒ•áƒ˜ პáƒáƒ™áƒ”ტი"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "ხáƒáƒ¢áƒ•áƒ"
-
-#: desktop/presentation1.1.desktop.in.h:1
-#: desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "OpenOffice.org-ს პრეზენტáƒáƒªáƒ˜áƒ”ბის პრáƒáƒ’რáƒáƒ›áƒ"
-
-#: desktop/presentation1.1.desktop.in.h:2
-msgid "Presentation (1.1)"
-msgstr "პრეზენტáƒáƒªáƒ˜áƒ (1.1)"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "პრეზენტáƒáƒªáƒ˜áƒ"
-
-#: desktop/spreadsheet1.1.desktop.in.h:1
-#: desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "OpenOffice.org-ის ტებელური კáƒáƒšáƒ™áƒ£áƒšáƒáƒªáƒ˜áƒ"
-
-#: desktop/spreadsheet1.1.desktop.in.h:2
-msgid "Spreadsheet (1.1)"
-msgstr "ტáƒáƒ‘ელური კáƒáƒšáƒ™áƒ£áƒšáƒáƒªáƒ˜áƒ (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "ტáƒáƒ‘ელური კáƒáƒšáƒ™áƒ£áƒšáƒáƒªáƒ˜áƒ"
-
-#: desktop/textdoc1.1.desktop.in.h:1
-#: desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice.org-ის წერის პრáƒáƒ’რáƒáƒ›áƒ"
-
-#: desktop/textdoc1.1.desktop.in.h:2
-msgid "Word Processor (1.1)"
-msgstr "წერის პრáƒáƒ’რáƒáƒ›áƒ (1.1)"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "წერის პრáƒáƒ’რáƒáƒ›áƒ"
-
diff --git a/po/ko.po b/po/ko.po
deleted file mode 100644
index a0efb51f0..000000000
--- a/po/ko.po
+++ /dev/null
@@ -1,62 +0,0 @@
-# This file is distributed under the same license as the PACKAGE package.
-# Changwoo Ryu <cwryu@debian.org>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ooo-build 1.1.47\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-12-26 06:50+0900\n"
-"PO-Revision-Date: 2004-01-21 03:16+0900\n"
-"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
-"Language-Team: Gnome Korea <gnome-kr-hackers@lists.kldp.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing1.1.desktop.in.h:1
-msgid "Drawing (1.1)"
-msgstr "그리기 (1.1)"
-
-#: desktop/drawing1.1.desktop.in.h:2 desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "OpenOffice.org 그리기 꾸러미"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "그리기"
-
-#: desktop/presentation1.1.desktop.in.h:1 desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "OpenOffice.org 프리젠테ì´ì…˜ 프로그램"
-
-#: desktop/presentation1.1.desktop.in.h:2
-msgid "Presentation (1.1)"
-msgstr "프리젠테ì´ì…˜ (1.1)"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "프리젠테ì´ì…˜"
-
-#: desktop/spreadsheet1.1.desktop.in.h:1 desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "OpenOffice.org 스프레드시트"
-
-#: desktop/spreadsheet1.1.desktop.in.h:2
-msgid "Spreadsheet (1.1)"
-msgstr "스프레드시트 (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "스프레드시트"
-
-#: desktop/textdoc1.1.desktop.in.h:1 desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice.org 워드 프로세서"
-
-#: desktop/textdoc1.1.desktop.in.h:2
-msgid "Word Processor (1.1)"
-msgstr "워드 프로세서 (1.1)"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "워드 프로세서"
diff --git a/po/mk.po b/po/mk.po
deleted file mode 100644
index fe47a7f0a..000000000
--- a/po/mk.po
+++ /dev/null
@@ -1,66 +0,0 @@
-# translation of mk.po to Macedonian
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
-# Ðрангел Ðнгов <ufo@linux.net.mk>, 2005.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: mk\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-08-14 12:25+0000\n"
-"PO-Revision-Date: 2005-08-14 15:22+0200\n"
-"Last-Translator: Ðрангел Ðнгов <ufo@linux.net.mk>\n"
-"Language-Team: Macedonian <ossm-members@hedona.on.net.mk>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.10\n"
-
-#: ../desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Цртање"
-
-#: ../desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "Пакет за цртање"
-
-#: ../desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Ðпликација за презентација"
-
-#: ../desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Презентација"
-
-#: ../desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Ðпликација за табели"
-
-#: ../desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Табели"
-
-#: ../desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "ПроцеÑор за текÑÑ‚"
-
-#: ../desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "ПроцеÑор за текÑÑ‚"
-
-#: ../desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Бази за податоци"
-
-#: ../desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "Бази за податоци"
-
-#: ../desktop/formula.desktop.in.h:1
-msgid "Formula"
-msgstr "Формула"
-
-#: ../desktop/formula.desktop.in.h:2
-msgid "OpenOffice.org formula editor"
-msgstr "Уредувач за формули"
-
diff --git a/po/ms.po b/po/ms.po
deleted file mode 100644
index f4372f24e..000000000
--- a/po/ms.po
+++ /dev/null
@@ -1,62 +0,0 @@
-# Duit PPRT siapa yang kebas????
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# Hasbullah Bin Pit (sebol) <sebol@ikhlas.com>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ooo-build\n"
-"POT-Creation-Date: 2003-08-29 06:54+0800\n"
-"PO-Revision-Date: 2003-08-29 06:54+0800\n"
-"Last-Translator: Hasbullah Bin Pit <sebol@ikhlas.com>\n"
-"Language-Team: Projek Gabai <gabai-penyumbang@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing1.1.desktop.in.h:1
-msgid "Drawing (1.1)"
-msgstr "Lukisan (1.1)"
-
-#: desktop/drawing1.1.desktop.in.h:2 desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "Pakej lukisan OpenOffice.org"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Lukisan"
-
-#: desktop/presentation1.1.desktop.in.h:1 desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Aplikasi persembahan OpenOffice.org"
-
-#: desktop/presentation1.1.desktop.in.h:2
-msgid "Presentation (1.1)"
-msgstr "Persembahan (1.1)"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Persembahan"
-
-#: desktop/spreadsheet1.1.desktop.in.h:1 desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "hamparan OpenOffice.org"
-
-#: desktop/spreadsheet1.1.desktop.in.h:2
-msgid "Spreadsheet (1.1)"
-msgstr "Hamparan (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Hamparan"
-
-#: desktop/textdoc1.1.desktop.in.h:1 desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "Pemproses perkataan OpenOffice.org"
-
-#: desktop/textdoc1.1.desktop.in.h:2
-msgid "Word Processor (1.1)"
-msgstr "Pemproses Perkataan (1.1)"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Pemproses Perkataan"
diff --git a/po/nb.po b/po/nb.po
deleted file mode 100644
index ce6d95573..000000000
--- a/po/nb.po
+++ /dev/null
@@ -1,57 +0,0 @@
-# Norwegian translations for PACKAGE package.
-# Copyright (C) 2003 THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# Kjartan Maraas <kmaraas@gnome.org>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: 1.1RC3\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-02-18 15:14+0100\n"
-"PO-Revision-Date: 2005-02-18 15:14+0100\n"
-"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
-"Language-Team: Norwegian <i18n-nb@lister.ping.uio.no>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Tegning"
-
-#: desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "OpenOffice.org tegneprogram"
-
-#: desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Openoffice.org presentasjonsprogram"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Presentasjon"
-
-#: desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Tekstbehandling (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Regneark"
-
-#: desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice.org tekstbehandling"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Tekstbehandling"
-
-#: desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Database"
-
-#: desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "OpenOffice.org database"
diff --git a/po/ne.po b/po/ne.po
deleted file mode 100755
index d23eae8c6..000000000
--- a/po/ne.po
+++ /dev/null
@@ -1,67 +0,0 @@
-# translation of ooo-build.HEAD.po to Nepali
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
-# Pawan Chitrakar <pawan@mpp.org.np>, 2005.
-# Shiva Prasad Pokharel <pokharelshiva@hotmail.com>, 2005.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ooo-build.HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-10-15 12:20+0545\n"
-"PO-Revision-Date: 2005-07-02 08:58+0545\n"
-"Last-Translator: Shiva Prasad Pokharel <pokharelshiva@hotmail.com>\n"
-"Language-Team: Nepali <info@mpp.org.np>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.9.1\n"
-"Plural-Forms: Nplurals=2;plural=(n!=1)\n"
-
-#: ../desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "रेखाचितà¥à¤°"
-
-#: ../desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "ओपन अफिस.ओआरजी रेखाचितà¥à¤° पà¥à¤¯à¤¾à¤•à¥‡à¤œ"
-
-#: ../desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "ओपन अफिस.ओआरजी पà¥à¤°à¤¸à¥à¤¤à¥à¤¤à¤¿à¤•à¤°à¤£ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—"
-
-#: ../desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "पà¥à¤°à¤¸à¥à¤¤à¥à¤¤à¤¿"
-
-#: ../desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "ओपन अफिस.ओ आर जि सà¥à¤ªà¥à¤°à¥‡à¤¡à¤¶à¤¿à¤Ÿ"
-
-#: ../desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "सà¥à¤ªà¥à¤°à¥‡à¤¡à¤¶à¤¿à¤Ÿ"
-
-#: ../desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "ओपन अफिस.ओ आर जि शवà¥à¤¦ पà¥à¤°à¤¶à¥‹à¤§à¤•"
-
-#: ../desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "शवà¥à¤§ पà¥à¤°à¤¶à¥‹à¤§à¤•"
-
-#: ../desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "डेटाबेस"
-
-#: ../desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "ओपन अफिस.ओ आर जि डाटाबेस"
-
-#: ../desktop/formula.desktop.in.h:1
-msgid "Formula"
-msgstr "सà¥à¤¤à¥à¤°"
-
-#: ../desktop/formula.desktop.in.h:2
-msgid "OpenOffice.org formula editor"
-msgstr "ओपन अफिस.ओ आर जि सà¥à¤¤à¥à¤° समà¥à¤ªà¤¾à¤¦à¤•"
diff --git a/po/nl.po b/po/nl.po
deleted file mode 100644
index c9ddd2dd7..000000000
--- a/po/nl.po
+++ /dev/null
@@ -1,78 +0,0 @@
-# Dutch translation of GNOME-ooo module
-# Copyright (C) 2003 The Free Software Foundation
-# This file is distributed under the same license as the openoffice package.
-# Tino Meinen <a.t.meinen@chello.nl>, 2003, 2005.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: GNOME 2.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-10 19:29+0000\n"
-"PO-Revision-Date: 2005-04-11 02:52+0200\n"
-"Last-Translator: Tino Meinen <a.t.meinen@chello.nl>\n"
-"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-# ontwerpen/teken
-#: ../desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Ontwerpen"
-
-#: ../desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "OpenOffice.org tekenpakket"
-
-# presentatie-programma klinkt beter dan presentatie-toepassing
-#: ../desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "OpenOffice.org presentatie-programma"
-
-#: ../desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Presentatie"
-
-#: ../desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "OpenOffice.org spreadsheet"
-
-#: ../desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Spreadsheet"
-
-#: ../desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice.org tekstverwerker"
-
-#: ../desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Tekstverwerker"
-
-#: ../desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Database"
-
-#: ../desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "OpenOffice.org database"
-
-#: ../desktop/formula.desktop.in.h:1
-msgid "Formula"
-msgstr "Formule"
-
-#: ../desktop/formula.desktop.in.h:2
-msgid "OpenOffice.org formula editor"
-msgstr "OpenOffice.org formule-editor"
-
-#~ msgid "Drawing (1.1)"
-#~ msgstr "Tekenen (1.1)"
-
-#~ msgid "Presentation (1.1)"
-#~ msgstr "Presentatie (1.1)"
-
-#~ msgid "Spreadsheet (1.1)"
-#~ msgstr "Spreadsheet (1.1)"
-
-#~ msgid "Word Processor (1.1)"
-#~ msgstr "Tekstverwerker (1.1)"
diff --git a/po/no.po b/po/no.po
deleted file mode 100644
index ce6d95573..000000000
--- a/po/no.po
+++ /dev/null
@@ -1,57 +0,0 @@
-# Norwegian translations for PACKAGE package.
-# Copyright (C) 2003 THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# Kjartan Maraas <kmaraas@gnome.org>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: 1.1RC3\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-02-18 15:14+0100\n"
-"PO-Revision-Date: 2005-02-18 15:14+0100\n"
-"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
-"Language-Team: Norwegian <i18n-nb@lister.ping.uio.no>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Tegning"
-
-#: desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "OpenOffice.org tegneprogram"
-
-#: desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Openoffice.org presentasjonsprogram"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Presentasjon"
-
-#: desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Tekstbehandling (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Regneark"
-
-#: desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice.org tekstbehandling"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Tekstbehandling"
-
-#: desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Database"
-
-#: desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "OpenOffice.org database"
diff --git a/po/nr.po b/po/nr.po
deleted file mode 100644
index 9ceb13449..000000000
--- a/po/nr.po
+++ /dev/null
@@ -1,65 +0,0 @@
-# Ndebele (South) translation of OpenOffice.org Build.
-# Copyright (C) 2005 Zuza Software Foundation (Translate.org.za)
-# This file is distributed under the same license as the ooo-build package.
-# Translate.org.za <info@translate.org.za>, 2005.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ooo-build\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-10-20 22:15+0200\n"
-"PO-Revision-Date: 2005-10-26 22:15+0200\n"
-"Last-Translator: Translate.org.za <info@translate.org.za>\n"
-"Language-Team: Ndebele (South) <translate-discuss-nr@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Umgwalo"
-
-#: desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "Ibuthelelo lokugwala le-OpenOffice.org"
-
-#: desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Ukusetjenziswa kwephrizentheyitjhini ye-OpenOffice.org"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Phrizentheyitjhini"
-
-#: desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Spredtjhiti se-OpenOffice.org"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Spredtjhiti"
-
-#: desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "Isenzi mitlolo se-OpenOffice.org"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Isenzi Mitlolo"
-
-#: desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Ibulungelo lekhompyutha"
-
-#: desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "Ibulungelo le-OpenOffice.org"
-
-#: desktop/formula.desktop.in.h:1
-msgid "Formula"
-msgstr "Fomula"
-
-#: desktop/formula.desktop.in.h:2
-msgid "OpenOffice.org formula editor"
-msgstr "Umhleli wefomula we-OpenOffice.org"
-
diff --git a/po/nso.po b/po/nso.po
deleted file mode 100644
index c94a3d985..000000000
--- a/po/nso.po
+++ /dev/null
@@ -1,65 +0,0 @@
-# Northern Sotho translation of OpenOffice.org Build.
-# Copyright (C) 2005 Zuza Software Foundation (Translate.org.za)
-# This file is distributed under the same license as the ooo-build package.
-# Translate.org.za <info@translate.org.za>, 2005.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ooo-build\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-10-20 22:15+0200\n"
-"PO-Revision-Date: 2005-10-24 16:23+0200\n"
-"Last-Translator: Translate.org.za <info@translate.org.za>\n"
-"Language-Team: Northern Sotho <translate-discuss-nso@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Go Thala"
-
-#: desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "Sephuthelwana sa go thala sa OpenOffice.org"
-
-#: desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Tirišo ya tlhagišo ya OpenOffice.org"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Tlhagišo"
-
-#: desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Letlakala la go ala tsebišo la OpenOffice.org"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Letlakala la go ala tsebišo"
-
-#: desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "Sehlami sa lentšu sa OpenOffice.org"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Sehlami sa Lentšu"
-
-#: desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Datapeisi"
-
-#: desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "Datapeisi ya OpenOffice.org"
-
-#: desktop/formula.desktop.in.h:1
-msgid "Formula"
-msgstr "Fomula"
-
-#: desktop/formula.desktop.in.h:2
-msgid "OpenOffice.org formula editor"
-msgstr "Morulaganyi wa fomula ya OpenOffice.org"
-
diff --git a/po/pa.po b/po/pa.po
deleted file mode 100644
index 21073bad6..000000000
--- a/po/pa.po
+++ /dev/null
@@ -1,64 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: punlinux\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-03-04 14:42+0530\n"
-"PO-Revision-Date: 2004-01-28 08:42+0530\n"
-"Last-Translator: Amanpreet Singh Alam <amanlinux@netscape.net>\n"
-"Language-Team: KBST Punjab <kbstpunjab@netecape.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing1.1.desktop.in.h:1
-msgid "Drawing (1.1)"
-msgstr "ਡਰਾਇੰਗ(1.1)"
-
-#: desktop/drawing1.1.desktop.in.h:2 desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "ਉਪਨਆਫਿਸ.org ਡਰਾਇੰਗ ਪੈਕੇਜ"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "ਡਰਾਇੰਗ"
-
-#: desktop/presentation1.1.desktop.in.h:1 desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "ਉਪਨਆਫਿਸ.org ਪੇਸ਼ਕਾਰੀ "
-
-#: desktop/presentation1.1.desktop.in.h:2
-msgid "Presentation (1.1)"
-msgstr "ਪੇਸ਼ਕਾਰੀ(1.1)"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "ਪੇਸ਼ਕਾਰੀ"
-
-#: desktop/spreadsheet1.1.desktop.in.h:1 desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "ਉਪਨਆਫਿਸ.org ਸਾਰਣੀ"
-
-#: desktop/spreadsheet1.1.desktop.in.h:2
-msgid "Spreadsheet (1.1)"
-msgstr "ਸਾਰਣੀ(1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "ਸਾਰਣੀ"
-
-#: desktop/textdoc1.1.desktop.in.h:1 desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "ਉਪਨਆਫਿਸ.org ਸ਼ਬਦਕਾਰ"
-
-#: desktop/textdoc1.1.desktop.in.h:2
-msgid "Word Processor (1.1)"
-msgstr "ਸ਼ਬਦਕਾਰ(1.1)"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "ਸ਼ਬਦਕਾਰ"
diff --git a/po/pl.po b/po/pl.po
deleted file mode 100644
index a50eb4de9..000000000
--- a/po/pl.po
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright (C) 2001-2002 Free Software Foundation, Inc.
-# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-# Aktualną wersję tego pliku możesz odnaleźć w repozytorium cvs.gnome.pl
-# (:pserver:anonymous@cvs.gnome.pl:/home/cvs, puste hasło)
-# Jeśli masz jakiekolwiek uwagi odnoszące się do tłumaczenia lub chcesz
-# pomóc w jego rozwijaniu i pielęgnowaniu, napisz do nas na adres:
-# translators@gnome.pl
-# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-msgid ""
-msgstr ""
-"Project-Id-Version: openoffice\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-09-03 14:35+0200\n"
-"PO-Revision-Date: 2003-09-02 08:51+0100\n"
-"Last-Translator: GNOME PL Team <translators@gnome.pl>\n"
-"Language-Team: Polish <pl@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing1.1.desktop.in.h:1
-msgid "Drawing (1.1)"
-msgstr "Rysunek (1.1)"
-
-#: desktop/drawing1.1.desktop.in.h:2 desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "Rysunek OpenOffice.org"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Rysunek"
-
-#: desktop/presentation1.1.desktop.in.h:1 desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Prezentacje OpenOffice.org"
-
-#: desktop/presentation1.1.desktop.in.h:2
-msgid "Presentation (1.1)"
-msgstr "Prezentacja (1.1)"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Prezentacja"
-
-#: desktop/spreadsheet1.1.desktop.in.h:1 desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Arkusz Kalkulacyjny OpenOffice.org"
-
-#: desktop/spreadsheet1.1.desktop.in.h:2
-msgid "Spreadsheet (1.1)"
-msgstr "Arkusz kalkulacyjny (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Arkusz Kalkulacyjny"
-
-#: desktop/textdoc1.1.desktop.in.h:1 desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "Procesor tekstu OpenOffice.org"
-
-#: desktop/textdoc1.1.desktop.in.h:2
-msgid "Word Processor (1.1)"
-msgstr "Procesor tekstu (1.1)"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Procesor tekstu"
diff --git a/po/pt.po b/po/pt.po
deleted file mode 100644
index 9d1455f84..000000000
--- a/po/pt.po
+++ /dev/null
@@ -1,64 +0,0 @@
-# openoffice's Portuguese translation.
-# Copyright (C) 2003 openoffice
-# This file is distributed under the same license as the openoffice package.
-# Duarte Loreto <happyguy_pt@hotmail.com>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: 2.4\n"
-"Report-Msgid-Bugs-To: Duarte Loreto <happyguy_pt@hotmail.com>\n"
-"POT-Creation-Date: 2003-09-09 13:00+0200\n"
-"PO-Revision-Date: 2003-09-09 13:10+0000\n"
-"Last-Translator: Duarte Loreto <happyguy_pt@hotmail.com>\n"
-"Language-Team: Portuguese <gnome_pt@yahoogroups.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing1.1.desktop.in.h:1
-msgid "Drawing (1.1)"
-msgstr "Drawing (1.1)"
-
-#: desktop/drawing1.1.desktop.in.h:2 desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "Pacote de desenho OpenOffice.org"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Drawing"
-
-#: desktop/presentation1.1.desktop.in.h:1 desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Aplicação de apresentações OpenOffice.org"
-
-#: desktop/presentation1.1.desktop.in.h:2
-msgid "Presentation (1.1)"
-msgstr "Presentation (1.1)"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Presentation"
-
-#: desktop/spreadsheet1.1.desktop.in.h:1 desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Folha de cálculo OpenOffice.org"
-
-#: desktop/spreadsheet1.1.desktop.in.h:2
-msgid "Spreadsheet (1.1)"
-msgstr "Spreadsheet (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Spreadsheet"
-
-#: desktop/textdoc1.1.desktop.in.h:1 desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "Processador de texto OpenOffice.org"
-
-#: desktop/textdoc1.1.desktop.in.h:2
-msgid "Word Processor (1.1)"
-msgstr "Word Processor (1.1)"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Word Processor"
diff --git a/po/pt_BR.po b/po/pt_BR.po
deleted file mode 100644
index 67fde2cef..000000000
--- a/po/pt_BR.po
+++ /dev/null
@@ -1,66 +0,0 @@
-# Portuguese/Brazil translation of OpenOffice.org
-# Copyright (C) 2003 THE OpenOffice.org'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the OpenOffice.org package.
-# Tiago Cardoso Menezes <zion@via-rs.net>, 2003.
-# , fuzzy
-#
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenOffice.org 1.1\n"
-"POT-Creation-Date: 2003-12-04 11:48-0500\n"
-"PO-Revision-Date: 2003-12-02 18:11-0200\n"
-"Last-Translator: Tiago Cardoso Menezes <zion@via-rs.net>\n"
-"Language-Team: Portuguese/Brazil <gnome-l10n-br@listas.cipsga.org.br>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Report-Msgid-Bugs-To: \n"
-
-#: desktop/drawing1.1.desktop.in.h:1
-msgid "Drawing (1.1)"
-msgstr "Drawing (1.1)"
-
-#: desktop/drawing1.1.desktop.in.h:2 desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "Pacote de desenho OpenOffice.org"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Desenho"
-
-#: desktop/presentation1.1.desktop.in.h:1 desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Pacote de apresentação do OpenOffice.org"
-
-#: desktop/presentation1.1.desktop.in.h:2
-msgid "Presentation (1.1)"
-msgstr "Presentation (1.1)"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Apresentação"
-
-#: desktop/spreadsheet1.1.desktop.in.h:1 desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Planilha Eletrônica OpenOffice.org"
-
-#: desktop/spreadsheet1.1.desktop.in.h:2
-msgid "Spreadsheet (1.1)"
-msgstr "Spreadsheet (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Planilha Eletrônica"
-
-#: desktop/textdoc1.1.desktop.in.h:1 desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "Processador de texto OpenOffice.org"
-
-#: desktop/textdoc1.1.desktop.in.h:2
-msgid "Word Processor (1.1)"
-msgstr "Word·Processor (1.1)"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Processador de texto"
diff --git a/po/rw.po b/po/rw.po
deleted file mode 100644
index 5e1264ae9..000000000
--- a/po/rw.po
+++ /dev/null
@@ -1,93 +0,0 @@
-# translation of ooo-build to Kinyarwanda.
-# Copyright (C) 2005 Free Software Foundation, Inc.
-# This file is distributed under the same license as the ooo-build package.
-# Steve Murphy <murf@e-tools.com>, 2005
-# Steve performed initial rough translation from compendium built from translations provided by the following translators:
-# Philibert Ndandali <ndandali@yahoo.fr>, 2005.
-# Viateur MUGENZI <muvia1@yahoo.fr>, 2005.
-# Noëlla Mupole <s24211045@tuks.co.za>, 2005.
-# Carole Karema <karemacarole@hotmail.com>, 2005.
-# JEAN BAPTISTE NGENDAHAYO <ngenda_denis@yahoo.co.uk>, 2005.
-# Augustin KIBERWA <akiberwa@yahoo.co.uk>, 2005.
-# Donatien NSENGIYUMVA <ndonatienuk@yahoo.co.uk>, 2005..
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ooo-build HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-01 16:37-0700\n"
-"PO-Revision-Date: 2005-03-31 20:55-0700\n"
-"Last-Translator: Steve Murphy <murf@e-tools.com>\n"
-"Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"ULL NAME <EMAIL@ADDRESS>\n"
-
-# #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-#
-# officecfg/registry\schema\org\openoffice\Office\Draw.xcs:....Print.Content.Drawing.text
-# #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-#
-# officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Draw.Enable.text
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Igishushanyo"
-
-#: desktop/drawing.desktop.in.h:2
-#, fuzzy
-msgid "OpenOffice.org drawing package"
-msgstr "OpenOffice."
-
-#: desktop/presentation.desktop.in.h:1
-#, fuzzy
-msgid "OpenOffice.org presentation application"
-msgstr "OpenOffice."
-
-# #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-#
-# officecfg/registry\schema\org\openoffice\Office\Impress.xcs:....Print.Content.Presentation.text
-# #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-#
-# officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Impress.Enable.text
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Iyerekana"
-
-#: desktop/spreadsheet.desktop.in.h:1
-#, fuzzy
-msgid "OpenOffice.org spreadsheet"
-msgstr "OpenOffice."
-
-# officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Calc.Enable.text
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Urupapurorusesuye"
-
-#: desktop/textdoc.desktop.in.h:1
-#, fuzzy
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice."
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr ""
-
-# #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-#
-# officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Label.Inscription.Database.text
-# #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-#
-# officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Envelope.Inscription.Database.text
-#: desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Ububikoshingiro"
-
-#: desktop/database.desktop.in.h:2
-#, fuzzy
-msgid "OpenOffice.org database"
-msgstr "OpenOffice."
-
-# officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Formula.Enable.text
-#: desktop/formula.desktop.in.h:1
-msgid "Formula"
-msgstr "Inzira"
-
-#: desktop/formula.desktop.in.h:2
-#, fuzzy
-msgid "OpenOffice.org formula editor"
-msgstr "OpenOffice."
diff --git a/po/sk.po b/po/sk.po
deleted file mode 100644
index c2a379962..000000000
--- a/po/sk.po
+++ /dev/null
@@ -1,66 +0,0 @@
-# Slovak translation of openoffice.HEAD.pot
-# Copyright (C) 1999, 2003, 2005 Free Software Foundation, Inc.
-# Zdenko Podobný <zdpo@mailbox.sk>, 2003.
-# Marcel Telka <marcel@telka.sk>, 2005.
-#
-# $Id: sk.po,v 1.3 2005/03/08 18:41:08 marcel Exp $
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ooo-build\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-08 19:39+0100\n"
-"PO-Revision-Date: 2005-03-08 19:40+0100\n"
-"Last-Translator: Marcel Telka <marcel@telka.sk>\n"
-"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Kreslenie"
-
-#: desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "OpenOffice.org balík pre kreslenie"
-
-#: desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "OpenOffice.org aplikácia na prezentácie"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Prezentácia"
-
-#: desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "OpenOffice.org tabuľkový procesor"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Tabuľkový procesor"
-
-#: desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice.org textový procesor"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Textový procesor"
-
-#: desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Databáza"
-
-#: desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "OpenOffice.org databáza"
-
-#: desktop/formula.desktop.in.h:1
-msgid "Formula"
-msgstr "Vzorec"
-
-#: desktop/formula.desktop.in.h:2
-msgid "OpenOffice.org formula editor"
-msgstr "OpenOffice.org editor vzorcov"
diff --git a/po/sq.po b/po/sq.po
deleted file mode 100644
index 744e69dc8..000000000
--- a/po/sq.po
+++ /dev/null
@@ -1,66 +0,0 @@
-# Përkthimi i mesazheve të ooo-build në shqip
-# Ximian OpenOffice.
-# This file is distributed under the same license as the openoffice package.
-# Copyright (C) 2003 Ximian, Inc
-# Laurent Dhima <laurenti@alblinux.net>, 2003, 2005.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ooo-build HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-09-07 13:47+0200\n"
-"PO-Revision-Date: 2005-09-07 18:40+0200\n"
-"Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n"
-"Language-Team: Albanian <gnome-albanian-perkthyesit@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Vizatim"
-
-#: ../desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "Paketa për vizatimet në OpenOffice.org"
-
-#: ../desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Aplikativi për prezantimet i OpenOffice.org"
-
-#: ../desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Prezantime"
-
-#: ../desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Fleta elektronike e OpenOffice.org"
-
-#: ../desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Fleta elektronike"
-
-#: ../desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "Procesuesi i tekstit i OpenOffice.org"
-
-#: ../desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Procesues teksti"
-
-#: ../desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Databazë"
-
-#: ../desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "Databazë OpenOffice.org"
-
-#: ../desktop/formula.desktop.in.h:1
-msgid "Formula"
-msgstr "Formulë"
-
-#: ../desktop/formula.desktop.in.h:2
-msgid "OpenOffice.org formula editor"
-msgstr "Edituesi i formulave i OpenOffice.org"
-
diff --git a/po/sr.po b/po/sr.po
deleted file mode 100644
index 6345f9da7..000000000
--- a/po/sr.po
+++ /dev/null
@@ -1,64 +0,0 @@
-# Serbian translation of openoffice
-# Courtesy of Prevod.org team (http://www.prevod.org/) -- 2003.
-#
-# This file is distributed under the same license as the openoffice package.
-#
-# Maintainer: Данило Шеган <dsegan@gmx.net>
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openoffice\n"
-"PO-Revision-Date: 2003-08-30 14:05+0200\n"
-"Last-Translator: Данило Шеган <danilo@prevod.org>\n"
-"Language-Team: Serbian (sr) <serbiangnome-listaL@nongnu.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing1.1.desktop.in.h:1
-msgid "Drawing (1.1)"
-msgstr "Цртање (1.1)"
-
-#: desktop/drawing1.1.desktop.in.h:2 desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "Пакет за цртање из Отворене канцеларије"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Цртање"
-
-#: desktop/presentation1.1.desktop.in.h:1 desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Програм за презентације из Отворене канцеларије"
-
-#: desktop/presentation1.1.desktop.in.h:2
-msgid "Presentation (1.1)"
-msgstr "Презентација (1.1)"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Презентација"
-
-#: desktop/spreadsheet1.1.desktop.in.h:1 desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Табеле из Отворене канцеларије"
-
-#: desktop/spreadsheet1.1.desktop.in.h:2
-msgid "Spreadsheet (1.1)"
-msgstr "Табеле (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Табеле"
-
-#: desktop/textdoc1.1.desktop.in.h:1 desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "Обрада текÑта из Отворене канцеларије"
-
-#: desktop/textdoc1.1.desktop.in.h:2
-msgid "Word Processor (1.1)"
-msgstr "Обрада текÑта (1.1)"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Обрада текÑта"
diff --git a/po/sr@Latn.po b/po/sr@Latn.po
deleted file mode 100644
index 5937652ca..000000000
--- a/po/sr@Latn.po
+++ /dev/null
@@ -1,64 +0,0 @@
-# Serbian translation of openoffice
-# Courtesy of Prevod.org team (http://www.prevod.org/) -- 2003.
-#
-# This file is distributed under the same license as the openoffice package.
-#
-# Maintainer: Danilo Å egan <dsegan@gmx.net>
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openoffice\n"
-"PO-Revision-Date: 2003-08-30 14:05+0200\n"
-"Last-Translator: Danilo Å egan <danilo@prevod.org>\n"
-"Language-Team: Serbian (sr) <serbiangnome-listaL@nongnu.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing1.1.desktop.in.h:1
-msgid "Drawing (1.1)"
-msgstr "Crtanje (1.1)"
-
-#: desktop/drawing1.1.desktop.in.h:2 desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "Paket za crtanje iz Otvorene kancelarije"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Crtanje"
-
-#: desktop/presentation1.1.desktop.in.h:1 desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Program za prezentacije iz Otvorene kancelarije"
-
-#: desktop/presentation1.1.desktop.in.h:2
-msgid "Presentation (1.1)"
-msgstr "Prezentacija (1.1)"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Prezentacija"
-
-#: desktop/spreadsheet1.1.desktop.in.h:1 desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Tabele iz Otvorene kancelarije"
-
-#: desktop/spreadsheet1.1.desktop.in.h:2
-msgid "Spreadsheet (1.1)"
-msgstr "Tabele (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Tabele"
-
-#: desktop/textdoc1.1.desktop.in.h:1 desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "Obrada teksta iz Otvorene kancelarije"
-
-#: desktop/textdoc1.1.desktop.in.h:2
-msgid "Word Processor (1.1)"
-msgstr "Obrada teksta (1.1)"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Obrada teksta"
diff --git a/po/st.po b/po/st.po
deleted file mode 100644
index 36c71765e..000000000
--- a/po/st.po
+++ /dev/null
@@ -1,65 +0,0 @@
-# Southern Sotho translation of OpenOffice.org Build.
-# Copyright (C) 2005 Zuza Software Foundation (Translate.org.za)
-# This file is distributed under the same license as the ooo-build package.
-# Translate.org.za <info@translate.org.za>, 2005.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ooo-build\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-10-20 22:15+0200\n"
-"PO-Revision-Date: 2005-10-24 16:23+0200\n"
-"Last-Translator: Translate.org.za <info@translate.org.za>\n"
-"Language-Team: Southern Sotho <translate-discuss-st@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Ho torowa"
-
-#: desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "Sephuthelwana sa OpenOffice.org sa ho torowa"
-
-#: desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Tshebetso ya OpenOffice.org ya nehelano"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Nehelano"
-
-#: desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Leqephe la ho ala boitsebiso la OpenOffice.org"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Leqephe la ho ala boitsebiso"
-
-#: desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "Word processor ya OpenOffice.org "
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Word Processor"
-
-#: desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Datapeisi"
-
-#: desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "Datapeisi ya OpenOffice.org "
-
-#: desktop/formula.desktop.in.h:1
-msgid "Formula"
-msgstr "Fomula"
-
-#: desktop/formula.desktop.in.h:2
-msgid "OpenOffice.org formula editor"
-msgstr "Sengodi sa fomula sa OpenOffice.org "
-
diff --git a/po/sv.po b/po/sv.po
deleted file mode 100644
index 740e6e0c2..000000000
--- a/po/sv.po
+++ /dev/null
@@ -1,70 +0,0 @@
-# Swedish messages for openoffice.
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# Christian Rose <menthos@menthos.com>, 2003.
-#
-# $Id: sv.po,v 1.1 2003/08/20 16:30:00 menthos Exp $
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openoffice\n"
-"POT-Creation-Date: 2003-08-20 18:24+0200\n"
-"PO-Revision-Date: 2003-08-20 18:25+0200\n"
-"Last-Translator: Christian Rose <menthos@menthos.com>\n"
-"Language-Team: Swedish <sv@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing1.1.desktop.in.h:1
-msgid "Drawing (1.1)"
-msgstr "Teckning (1.1)"
-
-#: desktop/drawing1.1.desktop.in.h:2 desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "OpenOffice.org-teckningspaket"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Teckning"
-
-#: desktop/presentation1.1.desktop.in.h:1 desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "OpenOffice.org-presentationsprogram"
-
-#: desktop/presentation1.1.desktop.in.h:2
-msgid "Presentation (1.1)"
-msgstr "Presentation (1.1)"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Presentation"
-
-#: desktop/spreadsheet1.1.desktop.in.h:1 desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "OpenOffice.org-kalkylblad"
-
-#: desktop/spreadsheet1.1.desktop.in.h:2
-msgid "Spreadsheet (1.1)"
-msgstr "Kalkylblad (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Kalkylblad"
-
-#: desktop/textdoc1.1.desktop.in.h:1 desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice.org-ordbehandlare"
-
-#: desktop/textdoc1.1.desktop.in.h:2
-msgid "Word Processor (1.1)"
-msgstr "Ordbehandlare (1.1)"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Ordbehandlare"
-
-#~ msgid "Drawing package"
-#~ msgstr "Teckningspaket"
-
-#~ msgid "Presentation application"
-#~ msgstr "Presentationsprogram"
diff --git a/po/th.po b/po/th.po
deleted file mode 100644
index 526c7882b..000000000
--- a/po/th.po
+++ /dev/null
@@ -1,64 +0,0 @@
-# Thai translations for hda package.
-# Copyright (C) 2003 THE hda'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the hda package.
-# Paisa Seeluangsawat <paisa@users.sf.net>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: hda 6\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-12-07 20:38+0100\n"
-"PO-Revision-Date: 2003-12-07 17:16-0600\n"
-"Last-Translator: Paisa Seeluangsawat <paisa@users.sf.net>\n"
-"Language-Team: Thai <thailang@buraphalinux.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing1.1.desktop.in.h:1
-msgid "Drawing (1.1)"
-msgstr "วาดเขียน (1.1)"
-
-#: desktop/drawing1.1.desktop.in.h:2 desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "OpenOffice.org ชุดวาดเขียน"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "วาดเขียน"
-
-#: desktop/presentation1.1.desktop.in.h:1 desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "OpenOffice.org ชุดงานนำเสนอ"
-
-#: desktop/presentation1.1.desktop.in.h:2
-msgid "Presentation (1.1)"
-msgstr "งานนำเสนอ (1.1)"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "งานนำเสนอ"
-
-#: desktop/spreadsheet1.1.desktop.in.h:1 desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "OpenOffice.org ตารางคำนวน"
-
-#: desktop/spreadsheet1.1.desktop.in.h:2
-msgid "Spreadsheet (1.1)"
-msgstr "ตารางคำนวน (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "ตารางคำนวน"
-
-#: desktop/textdoc1.1.desktop.in.h:1 desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice.org ชุดพิมพ์งาน"
-
-#: desktop/textdoc1.1.desktop.in.h:2
-msgid "Word Processor (1.1)"
-msgstr "พิมพ์งาน (1.1)"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "พิมพ์งาน"
diff --git a/po/tr.po b/po/tr.po
deleted file mode 100644
index bf7c60f77..000000000
--- a/po/tr.po
+++ /dev/null
@@ -1,67 +0,0 @@
-# Gnome 2.6 Turkish translation
-# This file is distributed under the same license as the GNOME package.
-# Onur Can CAKMAK <onur@uzem.itu.edu.tr>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenOffice 1.1\n"
-"POT-Creation-Date: 2004-02-07 20:44+0100\n"
-"PO-Revision-Date: 2004-02-08 01:02+0200\n"
-"Last-Translator: Onur Can ÇAKMAK <onur@uzem.itu.edu.tr>\n"
-"Language-Team: Turkish <gnome-turk@gnome.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing1.1.desktop.in.h:1
-msgid "Drawing (1.1)"
-msgstr "Çizim (1.1)"
-
-#: desktop/drawing1.1.desktop.in.h:2
-#: desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "OpenOffice.org çizim paketi"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Çizim"
-
-#: desktop/presentation1.1.desktop.in.h:1
-#: desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "OpenOffice.org sunum uygulaması"
-
-#: desktop/presentation1.1.desktop.in.h:2
-msgid "Presentation (1.1)"
-msgstr "Sunum (1.1)"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Sunum"
-
-#: desktop/spreadsheet1.1.desktop.in.h:1
-#: desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "OpenOffice.org hesap çizelgesi"
-
-#: desktop/spreadsheet1.1.desktop.in.h:2
-msgid "Spreadsheet (1.1)"
-msgstr "Hesap çizelgesi (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Hesap çizelgesi"
-
-#: desktop/textdoc1.1.desktop.in.h:1
-#: desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice.org kelime iÅŸlem"
-
-#: desktop/textdoc1.1.desktop.in.h:2
-msgid "Word Processor (1.1)"
-msgstr "Kelime Ä°ÅŸlem (1.1)"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Kelime Ä°ÅŸlem"
-
diff --git a/po/ts.po b/po/ts.po
deleted file mode 100644
index 1447ace32..000000000
--- a/po/ts.po
+++ /dev/null
@@ -1,65 +0,0 @@
-# Tsonga translation of OpenOffice.org Build.
-# Copyright (C) 2005 Zuza Software Foundation (Translate.org.za)
-# This file is distributed under the same license as the ooo-build package.
-# Translate.org.za <info@translate.org.za>, 2005.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ooo-build\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-10-20 22:15+0200\n"
-"PO-Revision-Date: 2005-10-24 16:23+0200\n"
-"Last-Translator: Translate.org.za <info@translate.org.za>\n"
-"Language-Team: Tsonga <translate-discuss-ts@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Vudirowi"
-
-#: desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "Xikatsa xa vudirowi xa OpenOffice.org"
-
-#: desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Vutirhisi bya nkombiso wa OpenOffice.org"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Nkombiso"
-
-#: desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Xipredxiti xa OpenOffice.org"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Xipredxiti"
-
-#: desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "Xitirhisi xa marito xa OpenOffice.org"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Xitirhisi xa marito"
-
-#: desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Vuhlayisela-rungula"
-
-#: desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "Vuhlayisela-rungula bya OpenOffice.org"
-
-#: desktop/formula.desktop.in.h:1
-msgid "Formula"
-msgstr "Fomula"
-
-#: desktop/formula.desktop.in.h:2
-msgid "OpenOffice.org formula editor"
-msgstr "Xihleri xa fomula xa OpenOffice.org"
-
diff --git a/po/uk.po b/po/uk.po
deleted file mode 100644
index 0bb12809f..000000000
--- a/po/uk.po
+++ /dev/null
@@ -1,64 +0,0 @@
-# Ukrainian translation of ooo-build.
-# Copyright (C) 2004
-# This file is distributed under the same license as the ooo-build package.
-# Yuriy Syrota <rasta@cvs.gnome.org>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ooo-build\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-04-08 11:56+0300\n"
-"PO-Revision-Date: 2004-04-08 11:56+0300\n"
-"Last-Translator: Yuriy Syrota <rasta@cvs.gnome.org>\n"
-"Language-Team: Ukrainian <uk@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing1.1.desktop.in.h:1
-msgid "Drawing (1.1)"
-msgstr "ÐœÐ°Ð»ÑŽÐ²Ð°Ð½Ð½Ñ (1.1)"
-
-#: desktop/drawing1.1.desktop.in.h:2 desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "Пакет Ð´Ð»Ñ Ð¼Ð°Ð»ÑŽÐ²Ð°Ð½Ð½Ñ OpenOffice.org"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "МалюваннÑ"
-
-#: desktop/presentation1.1.desktop.in.h:1 desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Програма ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€ÐµÐ·ÐµÐ½Ñ‚Ð°Ñ†Ñ–Ð¹ OpenOffice.org"
-
-#: desktop/presentation1.1.desktop.in.h:2
-msgid "Presentation (1.1)"
-msgstr "Презентації (1.1)"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Презентації"
-
-#: desktop/spreadsheet1.1.desktop.in.h:1 desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Електронна таблиці OpenOffice.org"
-
-#: desktop/spreadsheet1.1.desktop.in.h:2
-msgid "Spreadsheet (1.1)"
-msgstr "Електронні таблиці (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Електронні таблиці"
-
-#: desktop/textdoc1.1.desktop.in.h:1 desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "ТекÑтовий процеÑор OpenOffice.org"
-
-#: desktop/textdoc1.1.desktop.in.h:2
-msgid "Word Processor (1.1)"
-msgstr "ТекÑтовий процеÑор (1.1)"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "ТекÑтовий процеÑор"
diff --git a/po/vi.po b/po/vi.po
deleted file mode 100644
index 5624e7314..000000000
--- a/po/vi.po
+++ /dev/null
@@ -1,67 +0,0 @@
-# Vietnamese Translation For OpenOffice Build.
-# Copyright © 2005 Gnome i18n Project for Vietnamese.
-# This file is distributed under the same license as the ooo-build package.
-# Trinh Minh Thanh <tmthanh@yahoo.com>, 2003.
-# Clytie Siddall <clytie@riverland.net.au>, 2005.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ooo-build Gnome HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-08-13 12:25+0000\n"
-"PO-Revision-Date: 2005-08-27 17:29+0930\n"
-"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
-"Language-Team: Vietnamese <gnomevi-list@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0\n"
-"X-Generator: LocFactoryEditor 1.2.2\n"
-
-#: ../desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Vẽ"
-
-#: ../desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "Gói vẽ OpenOffice.org"
-
-#: ../desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Ứng dụng trình diễn OpenOffice.org"
-
-#: ../desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Trình diễn"
-
-#: ../desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Bảng tính OpenOffice.org"
-
-#: ../desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Bảng tính"
-
-#: ../desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "Bộ xử lý từ OpenOffice.orgr"
-
-#: ../desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Bộ xử lý từ"
-
-#: ../desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Cơ sở dữ liệu"
-
-#: ../desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "Cơ sở dữ liệu OpenOffice.org"
-
-#: ../desktop/formula.desktop.in.h:1
-msgid "Formula"
-msgstr "Công thức"
-
-#: ../desktop/formula.desktop.in.h:2
-msgid "OpenOffice.org formula editor"
-msgstr "Bộ hiệu chỉnh công thức OpenOffice.org" \ No newline at end of file
diff --git a/po/wa.po b/po/wa.po
deleted file mode 100644
index 7503488c0..000000000
--- a/po/wa.po
+++ /dev/null
@@ -1,64 +0,0 @@
-# Pablo Saratxaga <pablo@mandrakesoft.com>, 2003.
-# Pablo Saratxaga <pablo@walon.org>, 2005.
-#
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openoffice\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-01 03:43+0200\n"
-"PO-Revision-Date: 2005-04-01 11:28+0200\n"
-"Last-Translator: Pablo Saratxaga <pablo@walon.org>\n"
-"Language-Team: Walloon <linux-wa@walon.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n > 1;\n"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Dessinaedje"
-
-#: desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "Programe di dessinaedje d' OpenOffice.org"
-
-#: desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Programe di prezintåcion d' OpenOffice.org"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Prezintåcion"
-
-#: desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Tåvleu d' OpenOffice.org"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "TÃ¥vleu"
-
-#: desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "Aspougneu d' tecse d' OpenOffice.org"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Aspougneu d' tecse"
-
-#: desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Båze di dnêyes"
-
-#: desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "Båze di dnêyes d' OpenOffice.org"
-
-#: desktop/formula.desktop.in.h:1
-msgid "Formula"
-msgstr "Formules"
-
-#: desktop/formula.desktop.in.h:2
-msgid "OpenOffice.org formula editor"
-msgstr "Aspougneu d' formules d' OpenOffice.org"
diff --git a/po/xh.po b/po/xh.po
deleted file mode 100644
index d5e260cdc..000000000
--- a/po/xh.po
+++ /dev/null
@@ -1,65 +0,0 @@
-# Xhosa translation of OpenOffice.org Build.
-# Copyright (C) 2005 Zuza Software Foundation (Translate.org.za)
-# This file is distributed under the same license as the ooo-build package.
-# Translate.org.za <info@translate.org.za>, 2005.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ooo-build\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-10-20 22:15+0200\n"
-"PO-Revision-Date: 2005-10-25 10:15+0200\n"
-"Last-Translator: Kholisa Podile <podilk@unisa.ac.za>\n"
-"Language-Team: Xhosa <translate-discuss-xh@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Umzobo"
-
-#: desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "Ubekelelo lomzobo we-Office.org"
-
-#: desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Inkqubo yomboniso wenkcazelo ye-OpenOffice.org"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Umboniso wenkcazelo"
-
-#: desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Icwecwe leeseli le-OpenOffice.org"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Icwecwe leeseli"
-
-#: desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "Inkqubo yokuqhuba amagama ye-OpenOffice.org"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Inkqubo Yokuqhuba Amagama"
-
-#: desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Isiseko seenkcukacha"
-
-#: desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "Isiseko seenkcukacha se-OpenOffice.org"
-
-#: desktop/formula.desktop.in.h:1
-msgid "Formula"
-msgstr "Indlela yokusebenza"
-
-#: desktop/formula.desktop.in.h:2
-msgid "OpenOffice.org formula editor"
-msgstr "Umhleli wendlela yokusebenza we-OpenOffice.org"
-
diff --git a/po/zh_CN.po b/po/zh_CN.po
deleted file mode 100644
index 37d5e943a..000000000
--- a/po/zh_CN.po
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright (C) 2003 OpenOffice.org
-# This file is distributed under the same license as the openoffice package.
-# storm119 <bbbush@163.com>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ooo-build.HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-07-23 04:12+0000\n"
-"PO-Revision-Date: 2005-07-23 16:15+0800\n"
-"Last-Translator: storm119 <bbbush@163.com>\n"
-"Language-Team: zh_CN <i18n-translation@lists.linux.net.cn>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "绘图"
-
-#: ../desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "OpenOffice.org 绘图程åº"
-
-#: ../desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "OpenOffice.org 演示应用程åº"
-
-#: ../desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "演示"
-
-#: ../desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "OpenOffice.org 电å­è¡¨æ ¼"
-
-#: ../desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "电å­è¡¨æ ¼"
-
-#: ../desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice.org 文字处ç†å™¨"
-
-#: ../desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "文字处ç†"
-
-#: ../desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "æ•°æ®åº“"
-
-#: ../desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "OpenOffice.org æ•°æ®åº“"
-
-#: ../desktop/formula.desktop.in.h:1
-msgid "Formula"
-msgstr "å…¬å¼"
-
-#: ../desktop/formula.desktop.in.h:2
-msgid "OpenOffice.org formula editor"
-msgstr "OpenOffice.org å…¬å¼ç¼–辑器"
diff --git a/po/zh_TW.po b/po/zh_TW.po
deleted file mode 100644
index 1a35f1198..000000000
--- a/po/zh_TW.po
+++ /dev/null
@@ -1,64 +0,0 @@
-# traditional Chinese translation of Ximian OpenOffice.org
-# This file is distributed under the same license as the openoffice package.
-# Copyright (C) 2003 Ximian, Inc
-# Abel Cheung <abel@oaka.org>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ooo-build\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=l10n\n"
-"POT-Creation-Date: 2003-08-21 05:25+0800\n"
-"PO-Revision-Date: 2003-08-21 05:27+0800\n"
-"Last-Translator: Abel Cheung <abel@oaka.org>\n"
-"Language-Team: Chinese (traditional) <community@linuxhall.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing1.1.desktop.in.h:1
-msgid "Drawing (1.1)"
-msgstr "繪圖 (1.1)"
-
-#: desktop/drawing1.1.desktop.in.h:2 desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "OpenOffice.org 繪圖軟體"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "繪圖"
-
-#: desktop/presentation1.1.desktop.in.h:1 desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "OpenOffice.org 簡報應用程å¼"
-
-#: desktop/presentation1.1.desktop.in.h:2
-msgid "Presentation (1.1)"
-msgstr "ç°¡å ± (1.1)"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "ç°¡å ±"
-
-#: desktop/spreadsheet1.1.desktop.in.h:1 desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "OpenOffice.org 試算表"
-
-#: desktop/spreadsheet1.1.desktop.in.h:2
-msgid "Spreadsheet (1.1)"
-msgstr "試算表 (1.1)"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "試算表"
-
-#: desktop/textdoc1.1.desktop.in.h:1 desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "OpenOffice.org 文書處ç†å™¨"
-
-#: desktop/textdoc1.1.desktop.in.h:2
-msgid "Word Processor (1.1)"
-msgstr "文書處ç†å™¨ (1.1)"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "文書處ç†å™¨"
diff --git a/po/zu.po b/po/zu.po
deleted file mode 100644
index 1852515f0..000000000
--- a/po/zu.po
+++ /dev/null
@@ -1,65 +0,0 @@
-# Zulu translation of OpenOffice.org Build.
-# Copyright (C) 2005 Zuza Software Foundation (Translate.org.za)
-# This file is distributed under the same license as the ooo-build package.
-# Translate.org.za <info@translate.org.za>, 2005.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ooo-build\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-10-20 22:15+0200\n"
-"PO-Revision-Date: 2005-10-26 22:15+0200\n"
-"Last-Translator: Translate.org.za <info@translate.org.za>\n"
-"Language-Team: Zulu <translate-discuss-zu@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: desktop/drawing.desktop.in.h:1
-msgid "Drawing"
-msgstr "Ukudweba"
-
-#: desktop/drawing.desktop.in.h:2
-msgid "OpenOffice.org drawing package"
-msgstr "Iphakheji yokudweba ye-OpenOffice.org"
-
-#: desktop/presentation.desktop.in.h:1
-msgid "OpenOffice.org presentation application"
-msgstr "Uhlelo lwamaprezenteyshin lwe-OpenOffice.org"
-
-#: desktop/presentation.desktop.in.h:2
-msgid "Presentation"
-msgstr "Iprezenteyshin"
-
-#: desktop/spreadsheet.desktop.in.h:1
-msgid "OpenOffice.org spreadsheet"
-msgstr "Ispredshit se-OpenOffice.org"
-
-#: desktop/spreadsheet.desktop.in.h:2
-msgid "Spreadsheet"
-msgstr "Ispredshit"
-
-#: desktop/textdoc.desktop.in.h:1
-msgid "OpenOffice.org word processor"
-msgstr "Umshini ohlela amagama we-OpenOffice.org"
-
-#: desktop/textdoc.desktop.in.h:2
-msgid "Word Processor"
-msgstr "Umshini Ohlela Amagama"
-
-#: desktop/database.desktop.in.h:1
-msgid "Database"
-msgstr "Idatabheyzi"
-
-#: desktop/database.desktop.in.h:2
-msgid "OpenOffice.org database"
-msgstr "Idatabheyzi ye-OpenOffice.org"
-
-#: desktop/formula.desktop.in.h:1
-msgid "Formula"
-msgstr "Ifomula"
-
-#: desktop/formula.desktop.in.h:2
-msgid "OpenOffice.org formula editor"
-msgstr "Umhleli wefomula we-OpenOffice.org"
-
diff --git a/scratch/.cvsignore b/scratch/.cvsignore
deleted file mode 100644
index a96d0e090..000000000
--- a/scratch/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-place
diff --git a/scratch/README b/scratch/README
deleted file mode 100644
index be3680457..000000000
--- a/scratch/README
+++ /dev/null
@@ -1,14 +0,0 @@
- This directory is for playgrounds where we need to collaborate,
-and patches are too painful.
-
- It's prolly best to move these directories directly into your
-OO.o source-tree and symlink them back to ooo-build, the POSITION
-files specify where each file set belongs. eg.
-
- cvs=/abs/path/to/ooo-build/scratch/sc-vba; \
- build=/abs/path/to/src680-m102/sc/source/ui/vba; \
- mv $cvs $build; \
- ln -s $build $cvs
-
- Then hack away in src680-m102/sc/source/ui/vba and commit in
-ooo-build with suitable ChangeLog regularly.
diff --git a/scratch/canvas-cairo/POSITION b/scratch/canvas-cairo/POSITION
deleted file mode 100644
index b720dcd47..000000000
--- a/scratch/canvas-cairo/POSITION
+++ /dev/null
@@ -1 +0,0 @@
-canvas/source/cairo
diff --git a/scratch/canvas-cairo/cairo_backbuffer.cxx b/scratch/canvas-cairo/cairo_backbuffer.cxx
deleted file mode 100644
index 3c0090ab5..000000000
--- a/scratch/canvas-cairo/cairo_backbuffer.cxx
+++ /dev/null
@@ -1,130 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#include <stdio.h>
-#include "cairo_backbuffer.hxx"
-#include "cairo_cairo.hxx"
-
-using namespace ::cairo;
-
-namespace cairocanvas
-{
- BackBuffer::BackBuffer( WindowGraphicDevice::ImplRef xGraphicDevice, Content aContent )
- : mxGraphicDevice( xGraphicDevice ), mpSurface( NULL ), mpCairo( NULL ), maSize( xGraphicDevice->getSurfaceSize() ), maContent( aContent )
- {
- OSL_TRACE("BackBuffer constructor\n");
- }
-
- BackBuffer::~BackBuffer()
- {
- OSL_TRACE("BackBuffer destructor\n");
- if( mpCairo )
- cairo_destroy( mpCairo );
- if( mpSurface )
- cairo_surface_destroy( mpSurface );
- mxGraphicDevice.reset();
- }
-
- void BackBuffer::setSize( const ::Size& rNewSize )
- {
- OSL_TRACE("BackBuffer::setSize called\n");
- if( rNewSize != maSize ) {
- maSize = rNewSize;
- OSL_TRACE ("back buffer (%p) size: %d x %d\n", this, maSize.Width(), maSize.Height() );
- if( mpSurface )
- createSurface();
- }
- }
-
- Surface* BackBuffer::getSurface()
- {
- if( !mpSurface ) {
- OSL_TRACE ("back buffer size: %d x %d\n", maSize.Width(), maSize.Height() );
- createSurface();
- }
- return mpSurface;
- }
-
- void BackBuffer::createSurface()
- {
- Surface* pNewSurface = mxGraphicDevice->getSimilarSurfaceNoConst( maSize, maContent );
-
- if( mpSurface )
- cairo_surface_destroy( mpSurface );
- if( mpCairo )
- cairo_destroy( mpCairo );
-
- mpSurface = pNewSurface;
- mpCairo = cairo_create( mpSurface );
- }
-
- Cairo* BackBuffer::getCairo()
- {
- if( !mpCairo )
- getSurface();
- return mpCairo;
- }
-
- Size BackBuffer::getSize()
- {
- return maSize;
- }
-}
diff --git a/scratch/canvas-cairo/cairo_backbuffer.hxx b/scratch/canvas-cairo/cairo_backbuffer.hxx
deleted file mode 100644
index c38a11a00..000000000
--- a/scratch/canvas-cairo/cairo_backbuffer.hxx
+++ /dev/null
@@ -1,100 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#ifndef _CAIRO_CANVAS_BACKBUFFER_HXX_
-#define _CAIRO_CANVAS_BACKBUFFER_HXX_
-
-#ifndef BOOST_SHARED_PTR_HPP_INCLUDED
-#include <boost/shared_ptr.hpp>
-#endif
-
-#include "cairo_windowgraphicdevice.hxx"
-
-namespace cairocanvas
-{
- /// OutDevProvider implementation for backbuffer VDev
- class BackBuffer
- {
- public:
- BackBuffer( WindowGraphicDevice::ImplRef xGraphicDevice,
- ::cairo::Content aContent = ::cairo::CAIRO_CONTENT_COLOR_ALPHA );
- ~BackBuffer();
-
- Size getSize();
- void setSize( const ::Size& rNewSize );
- ::cairo::Surface* getSurface();
- ::cairo::Cairo* getCairo();
-
- private:
- void createSurface();
-
- WindowGraphicDevice::ImplRef mxGraphicDevice;
- Size maSize;
- ::cairo::Surface* mpSurface;
- ::cairo::Cairo* mpCairo;
- ::cairo::Content maContent;
- };
-
- typedef ::boost::shared_ptr< BackBuffer > BackBufferSharedPtr;
-
-}
-
-#endif /* #ifndef _CAIRO_CANVAS_BACKBUFFER_HXX_ */
diff --git a/scratch/canvas-cairo/cairo_bitmapbackbuffer.cxx b/scratch/canvas-cairo/cairo_bitmapbackbuffer.cxx
deleted file mode 100644
index 22ab82ed4..000000000
--- a/scratch/canvas-cairo/cairo_bitmapbackbuffer.cxx
+++ /dev/null
@@ -1,190 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#include "cairo_bitmapbackbuffer.hxx"
-
-#ifndef _OSL_MUTEX_HXX_
-#include <osl/mutex.hxx>
-#endif
-#ifndef _VOS_MUTEX_HXX_
-#include <vos/mutex.hxx>
-#endif
-
-#ifndef _SV_SVAPP_HXX
-#include <vcl/svapp.hxx>
-#endif
-#ifndef _SV_BITMAPEX_HXX
-#include <vcl/bitmapex.hxx>
-#endif
-#ifndef _SV_BMPACC_HXX
-#include <vcl/bmpacc.hxx>
-#endif
-
-
-namespace cairocanvas
-{
- BitmapBackBuffer::BitmapBackBuffer( const BitmapEx& rBitmap,
- const OutputDevice& rRefDevice ) :
- maBitmap( rBitmap ),
- mpVDev( NULL ),
- mrRefDevice( rRefDevice ),
- mbBitmapContentIsCurrent( false ),
- mbVDevContentIsCurrent( false )
- {
- }
-
- BitmapBackBuffer::~BitmapBackBuffer()
- {
- // make sure solar mutex is held on deletion (other methods
- // are supposed to be called with already locked solar mutex)
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- if( mpVDev )
- delete mpVDev;
- }
-
- OutputDevice& BitmapBackBuffer::getOutDev()
- {
- createVDev();
- updateVDev();
- return *mpVDev;
- }
-
- const OutputDevice& BitmapBackBuffer::getOutDev() const
- {
- createVDev();
- updateVDev();
- return *mpVDev;
- }
-
- VirtualDevice& BitmapBackBuffer::getVirDev()
- {
- createVDev();
- updateVDev();
- return *mpVDev;
- }
-
- const VirtualDevice& BitmapBackBuffer::getVirDev() const
- {
- createVDev();
- updateVDev();
- return *mpVDev;
- }
-
- BitmapEx& BitmapBackBuffer::getBitmapReference()
- {
- OSL_ENSURE( !mbBitmapContentIsCurrent || !mbVDevContentIsCurrent,
- "BitmapBackBuffer::getBitmapReference(): Both bitmap and VDev are valid?!" );
-
- if( mbVDevContentIsCurrent && mpVDev )
- {
- // VDev content is more current than bitmap - copy contents before!
- mpVDev->EnableMapMode( FALSE );
- const Point aEmptyPoint;
- *maBitmap = mpVDev->GetBitmapEx( aEmptyPoint,
- mpVDev->GetOutputSizePixel() );
- }
-
- // client queries bitmap, and will possibly alter content -
- // next time, VDev needs to be updated
- mbBitmapContentIsCurrent = true;
- mbVDevContentIsCurrent = false;
-
- return *maBitmap;
- }
-
- void BitmapBackBuffer::createVDev() const
- {
- if( !mpVDev )
- {
- // VDev not yet created, do it now. Create an alpha-VDev,
- // if bitmap has transparency.
- mpVDev = maBitmap->IsTransparent() ?
- new VirtualDevice( mrRefDevice, 0, 0 ) :
- new VirtualDevice( mrRefDevice );
-
- OSL_ENSURE( mpVDev,
- "BitmapBackBuffer::createVDev(): Unable to create VirtualDevice" );
-
- mpVDev->SetOutputSizePixel( maBitmap->GetSizePixel() );
- }
- }
-
- void BitmapBackBuffer::updateVDev() const
- {
- OSL_ENSURE( !mbBitmapContentIsCurrent || !mbVDevContentIsCurrent,
- "BitmapBackBuffer::updateVDev(): Both bitmap and VDev are valid?!" );
-
- if( mpVDev && mbBitmapContentIsCurrent )
- {
- // fill with bitmap content
- mpVDev->EnableMapMode( FALSE );
- const Point aEmptyPoint;
- mpVDev->DrawBitmapEx( aEmptyPoint, *maBitmap );
- }
-
- // canvas queried the VDev, and will possibly paint into
- // it. Next time, bitmap must be updated
- mbBitmapContentIsCurrent = false;
- mbVDevContentIsCurrent = true;
- }
-
-}
diff --git a/scratch/canvas-cairo/cairo_bitmapbackbuffer.hxx b/scratch/canvas-cairo/cairo_bitmapbackbuffer.hxx
deleted file mode 100644
index 19ce732ff..000000000
--- a/scratch/canvas-cairo/cairo_bitmapbackbuffer.hxx
+++ /dev/null
@@ -1,135 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#ifndef _VCLCANVAS_BITMAPBACKBUFFER_HXX_
-#define _VCLCANVAS_BITMAPBACKBUFFER_HXX_
-
-#ifndef _SV_VIRDEV_HXX
-#include <vcl/virdev.hxx>
-#endif
-
-#include <canvas/vclwrapper.hxx>
-#include "cairo_outdevprovider.hxx"
-
-
-namespace cairocanvas
-{
- /** OutDevProvider implementation for canvas bitmap.
-
- This class implements the OutDevProvider interface for the
- bitmap canvas. The actual VirtualDevice is only created when
- necessary, which makes read-only bitmaps a lot smaller.
- */
- class BitmapBackBuffer : public OutDevProvider
- {
- public:
- /** Create a backbuffer for given reference device
- */
- BitmapBackBuffer( const BitmapEx& rBitmap,
- const OutputDevice& rRefDevice );
-
- ~BitmapBackBuffer();
-
- virtual OutputDevice& getOutDev();
- virtual const OutputDevice& getOutDev() const;
-
- VirtualDevice& getVirDev();
- const VirtualDevice& getVirDev() const;
-
- /** Exposing our internal bitmap. Only to be used from
- CanvasBitmapHelper
-
- @internal
- */
- BitmapEx& getBitmapReference();
-
- private:
- void createVDev() const;
- void updateVDev() const;
-
- ::canvas::vcltools::VCLObject<BitmapEx> maBitmap;
- mutable VirtualDevice* mpVDev; // created only on demand
-
- const OutputDevice& mrRefDevice;
-
- /** When true, the bitmap contains the last valid
- content. When false, and mbVDevContentIsCurrent is true,
- the VDev contains the last valid content (which must be
- copied back to the bitmap, when getBitmapReference() is
- called). When both are false, this object is just
- initialized.
- */
- mutable bool mbBitmapContentIsCurrent;
-
- /** When true, and mpVDev is non-NULL, the VDev contains the
- last valid content. When false, and
- mbBitmapContentIsCurrent is true, the bitmap contains the
- last valid content. When both are false, this object is
- just initialized.
- */
- mutable bool mbVDevContentIsCurrent;
- };
-
- typedef ::boost::shared_ptr< BitmapBackBuffer > BitmapBackBufferSharedPtr;
-
-}
-
-#endif /* #ifndef _VCLCANVAS_BITMAPBACKBUFFER_HXX_ */
diff --git a/scratch/canvas-cairo/cairo_cachedbitmap.cxx b/scratch/canvas-cairo/cairo_cachedbitmap.cxx
deleted file mode 100644
index 2d8b141a0..000000000
--- a/scratch/canvas-cairo/cairo_cachedbitmap.cxx
+++ /dev/null
@@ -1,171 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#include <canvas/debug.hxx>
-
-#include "cairo_cachedbitmap.hxx"
-#include "cairo_repainttarget.hxx"
-
-#ifndef _COM_SUN_STAR_RENDERING_REPAINTRESULT_HPP_
-#include <com/sun/star/rendering/RepaintResult.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_XPOLYPOLYGON2D_HPP_
-#include <com/sun/star/rendering/XPolyPolygon2D.hpp>
-#endif
-
-#ifndef _BGFX_MATRIX_B2DHOMMATRIX_HXX
-#include <basegfx/matrix/b2dhommatrix.hxx>
-#endif
-#ifndef _BGFX_TOOLS_CANVASTOOLS_HXX
-#include <basegfx/tools/canvastools.hxx>
-#endif
-
-
-using namespace ::com::sun::star;
-
-
-#define IMPLEMENTATION_NAME "CairoCanvas::CachedBitmap"
-#define SERVICE_NAME "com.sun.star.rendering.CachedBitmap"
-
-namespace cairocanvas
-{
- CachedBitmap::CachedBitmap( const GraphicObjectSharedPtr& rGraphicObject,
- const ::Point& rPoint,
- const ::Size& rSize,
- const GraphicAttr& rAttr,
- const rendering::ViewState& rUsedViewState,
- const uno::Reference< rendering::XCanvas >& rTarget ) :
- CachedBitmap_Base( m_aMutex ),
- mpGraphicObject( rGraphicObject ),
- maPoint( rPoint ),
- maSize( rSize ),
- maAttributes( rAttr ),
- maUsedViewState( rUsedViewState ),
- mxTarget( rTarget )
- {
- }
-
- CachedBitmap::~CachedBitmap()
- {
- }
-
- void SAL_CALL CachedBitmap::disposing()
- {
- ::osl::MutexGuard aGuard( m_aMutex );
-
- maUsedViewState.Clip.clear();
- mpGraphicObject.reset();
- mxTarget.clear();
- }
-
- sal_Int8 SAL_CALL CachedBitmap::redraw( const rendering::ViewState& aState ) throw (lang::IllegalArgumentException, uno::RuntimeException)
- {
- ::basegfx::B2DHomMatrix aUsedTransformation;
- ::basegfx::B2DHomMatrix aNewTransformation;
-
- ::basegfx::unotools::homMatrixFromAffineMatrix( aUsedTransformation,
- maUsedViewState.AffineTransform );
- ::basegfx::unotools::homMatrixFromAffineMatrix( aNewTransformation,
- aState.AffineTransform );
-
- if( aUsedTransformation != aNewTransformation )
- {
- // differing transformations, don't try to draft the
- // output, just plain fail here.
- return rendering::RepaintResult::FAILED;
- }
-
- RepaintTarget* pTarget = dynamic_cast< RepaintTarget* >(mxTarget.get());
-
- ENSURE_AND_THROW( pTarget,
- "CachedBitmap::redraw(): cannot cast target to RepaintTarget" );
-
-
- if( !pTarget->repaint( mpGraphicObject,
- maPoint,
- maSize,
- maAttributes ) )
- {
- // target failed to repaint
- return rendering::RepaintResult::FAILED;
- }
-
- return rendering::RepaintResult::REDRAWN;
- }
-
- ::rtl::OUString SAL_CALL CachedBitmap::getImplementationName( ) throw (uno::RuntimeException)
- {
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
- }
-
- sal_Bool SAL_CALL CachedBitmap::supportsService( const ::rtl::OUString& ServiceName ) throw (uno::RuntimeException)
- {
- return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
- }
-
- uno::Sequence< ::rtl::OUString > SAL_CALL CachedBitmap::getSupportedServiceNames( ) throw (uno::RuntimeException)
- {
- uno::Sequence< ::rtl::OUString > aRet(1);
- aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
-
- return aRet;
- }
-}
diff --git a/scratch/canvas-cairo/cairo_cachedbitmap.hxx b/scratch/canvas-cairo/cairo_cachedbitmap.hxx
deleted file mode 100644
index bea50c30b..000000000
--- a/scratch/canvas-cairo/cairo_cachedbitmap.hxx
+++ /dev/null
@@ -1,148 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#ifndef _VCLCANVAS_CACHEDBITMAP_HXX
-#define _VCLCANVAS_CACHEDBITMAP_HXX
-
-#ifndef _COM_SUN_STAR_UNO_REFERENCE_HXX_
-#include <com/sun/star/uno/Reference.hxx>
-#endif
-#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_XCANVAS_HPP_
-#include <com/sun/star/rendering/XCanvas.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_XCACHEDPRIMITIVE_HPP_
-#include <com/sun/star/rendering/XCachedPrimitive.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_VIEWSTATE_HPP__
-#include <com/sun/star/rendering/ViewState.hpp>
-#endif
-
-#ifndef _CPPUHELPER_COMPBASE2_HXX_
-#include <cppuhelper/compbase2.hxx>
-#endif
-#ifndef _COMPHELPER_BROADCASTHELPER_HXX_
-#include <comphelper/broadcasthelper.hxx>
-#endif
-
-#ifndef _GRFMGR_HXX
-#include <goodies/grfmgr.hxx>
-#endif
-
-#ifndef BOOST_SHARED_PTR_HPP_INCLUDED
-#include <boost/shared_ptr.hpp>
-#endif
-
-
-/* Definition of CachedBitmap class */
-
-namespace cairocanvas
-{
- typedef ::boost::shared_ptr< GraphicObject > GraphicObjectSharedPtr;
-
- typedef ::cppu::WeakComponentImplHelper2< ::com::sun::star::rendering::XCachedPrimitive,
- ::com::sun::star::lang::XServiceInfo > CachedBitmap_Base;
-
- class CachedBitmap : public ::comphelper::OBaseMutex, public CachedBitmap_Base
- {
- public:
-
- /** Create an XCachedPrimitive for given GraphicObject
- */
- CachedBitmap( const GraphicObjectSharedPtr& rGraphicObject,
- const ::Point& rPoint,
- const ::Size& rSize,
- const GraphicAttr& rAttr,
- const ::com::sun::star::rendering::ViewState& rUsedViewState,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XCanvas >& rTarget );
-
- /// Dispose all internal references
- virtual void SAL_CALL disposing();
-
- // XCachedPrimitive
- virtual ::sal_Int8 SAL_CALL redraw( const ::com::sun::star::rendering::ViewState& aState ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-
- // XServiceInfo
- virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException);
-
- protected:
- ~CachedBitmap(); // we're a ref-counted UNO class. _We_ destroy ourselves.
-
- private:
- // default: disabled copy/assignment
- CachedBitmap(const CachedBitmap&);
- CachedBitmap& operator=( const CachedBitmap& );
-
- GraphicObjectSharedPtr mpGraphicObject;
- const ::Point maPoint;
- const ::Size maSize;
- const GraphicAttr maAttributes;
- ::com::sun::star::rendering::ViewState maUsedViewState;
- ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCanvas > mxTarget;
- };
-}
-
-#endif /* _VCLCANVAS_CACHEDBITMAP_HXX */
diff --git a/scratch/canvas-cairo/cairo_cairo.hxx b/scratch/canvas-cairo/cairo_cairo.hxx
deleted file mode 100644
index dc52e8952..000000000
--- a/scratch/canvas-cairo/cairo_cairo.hxx
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef _CAIROCANVAS_CAIRO_HXX
-#define _CAIROCANVAS_CAIRO_HXX
-
-namespace cairo {
-#ifndef CAIRO_H
-#include <cairo.h>
-#endif
-
-typedef cairo_surface_t Surface;
-typedef cairo_t Cairo;
-typedef cairo_matrix_t Matrix;
-typedef cairo_format_t Format;
-typedef cairo_content_t Content;
-typedef cairo_pattern_t Pattern;
-
-}
-
-#endif
diff --git a/scratch/canvas-cairo/cairo_canvasbitmap.cxx b/scratch/canvas-cairo/cairo_canvasbitmap.cxx
deleted file mode 100644
index df4f3747e..000000000
--- a/scratch/canvas-cairo/cairo_canvasbitmap.cxx
+++ /dev/null
@@ -1,184 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#include <canvas/debug.hxx>
-#include "cairo_canvasbitmap.hxx"
-
-#ifndef _SV_BITMAPEX_HXX
-#include <vcl/bitmapex.hxx>
-#endif
-#ifndef _SV_BMPACC_HXX
-#include <vcl/bmpacc.hxx>
-#endif
-#ifndef _VCL_CANVASTOOLS_HXX
-#include <vcl/canvastools.hxx>
-#endif
-
-using namespace ::com::sun::star;
-using namespace ::cairo;
-
-namespace cairocanvas
-{
- CanvasBitmap::CanvasBitmap( const ::Size& rSize,
- bool bAlphaBitmap,
- const WindowGraphicDevice::ImplRef& rDevice )
- : bHasAlpha( bAlphaBitmap )
- {
- WindowGraphicDevice::ImplRef xDevice = rDevice;
-
- OSL_TRACE("canvas bitmap constructor\n");
-
- mpCairo = cairo_create( xDevice->getSimilarSurfaceNoConst( rSize, bAlphaBitmap ? CAIRO_CONTENT_COLOR_ALPHA : CAIRO_CONTENT_COLOR ) );
- maCanvasHelper.setCairo( mpCairo );
- maCanvasHelper.setDevice( rDevice );
- }
-
- CanvasBitmap::CanvasBitmap( const geometry::RealSize2D& rSize, Surface* pSrcSurface,
- const WindowGraphicDevice::ImplRef& rDevice, bool bFast )
- : bHasAlpha( true )
- {
- WindowGraphicDevice::ImplRef xDevice = rDevice;
-
- OSL_TRACE("canvas bitmap constructor\n");
-
- mpCairo = cairo_create( xDevice->getSimilarSurfaceNoConst( ::vcl::unotools::sizeFromRealSize2D(rSize), CAIRO_CONTENT_COLOR ) );
- maCanvasHelper.setCairo( mpCairo );
- maCanvasHelper.setDevice( rDevice );
-
- Size aSrcSize = xDevice->getSurfaceSize();
- cairo_matrix_t aScaleMatrix;
- cairo_pattern_t* pPattern;
-
- cairo_save( mpCairo );
- pPattern = cairo_pattern_create_for_surface( pSrcSurface );
- cairo_set_source_surface( mpCairo, pSrcSurface, 0, 0 );
- cairo_matrix_init_scale( &aScaleMatrix, aSrcSize.Width()/rSize.Width, aSrcSize.Height()/rSize.Height );
- cairo_pattern_set_matrix( pPattern, &aScaleMatrix );
- cairo_pattern_set_filter( pPattern, bFast ? CAIRO_FILTER_FAST : CAIRO_FILTER_BEST );
- cairo_set_operator( mpCairo, CAIRO_OPERATOR_SOURCE );
- cairo_set_source( mpCairo, pPattern );
- cairo_paint( mpCairo );
- cairo_restore( mpCairo );
- cairo_pattern_destroy( pPattern );
- }
-
- CanvasBitmap::~CanvasBitmap()
- {
- Surface *pSurface = cairo_get_target( mpCairo );
-
- OSL_TRACE("canvas bitmap destructor\n");
-
- cairo_destroy( mpCairo );
- cairo_surface_destroy( pSurface );
- }
-
- void SAL_CALL CanvasBitmap::disposing()
- {
- tools::LocalGuard aGuard;
-
- // forward to parent
- CanvasBitmap_Base::disposing();
- }
-
-#define SERVICE_NAME "com.sun.star.rendering.CanvasBitmap"
-
- ::rtl::OUString SAL_CALL CanvasBitmap::getImplementationName( ) throw (uno::RuntimeException)
- {
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( CANVASBITMAP_IMPLEMENTATION_NAME ) );
- }
-
- sal_Bool SAL_CALL CanvasBitmap::supportsService( const ::rtl::OUString& ServiceName ) throw (uno::RuntimeException)
- {
- return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
- }
-
- uno::Sequence< ::rtl::OUString > SAL_CALL CanvasBitmap::getSupportedServiceNames( ) throw (uno::RuntimeException)
- {
- uno::Sequence< ::rtl::OUString > aRet(1);
- aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
-
- return aRet;
- }
-
- bool CanvasBitmap::repaint( const GraphicObjectSharedPtr& rGrf,
- const ::Point& rPt,
- const ::Size& rSz,
- const GraphicAttr& rAttr ) const
- {
- OSL_TRACE ("CanvasBitmap::repaint called, TODO\n");
-
- tools::LocalGuard aGuard;
-
- mbSurfaceDirty = true;
-
- return maCanvasHelper.repaint( rGrf, rPt, rSz, rAttr );
- }
-
- Cairo* CanvasBitmap::getCairo()
- {
- return mpCairo;
- }
-
- bool CanvasBitmap::hasAlpha()
- {
- return bHasAlpha;
- }
-}
diff --git a/scratch/canvas-cairo/cairo_canvasbitmap.hxx b/scratch/canvas-cairo/cairo_canvasbitmap.hxx
deleted file mode 100644
index 8a4ca3626..000000000
--- a/scratch/canvas-cairo/cairo_canvasbitmap.hxx
+++ /dev/null
@@ -1,161 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#ifndef _VCLCANVAS_CANVASBITMAP_HXX
-#define _VCLCANVAS_CANVASBITMAP_HXX
-
-#ifndef _CPPUHELPER_COMPBASE3_HXX_
-#include <cppuhelper/compbase3.hxx>
-#endif
-
-#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_XBITMAPCANVAS_HPP_
-#include <com/sun/star/rendering/XBitmapCanvas.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_XINTEGERBITMAP_HPP_
-#include <com/sun/star/rendering/XIntegerBitmap.hpp>
-#endif
-
-#ifndef _SV_VIRDEV_HXX
-#include <vcl/virdev.hxx>
-#endif
-#ifndef _SV_BITMAPEX_HXX
-#include <vcl/bitmapex.hxx>
-#endif
-
-#include <canvas/vclwrapper.hxx>
-
-#include <canvas/bitmapcanvasbase.hxx>
-
-#include "cairo_cairo.hxx"
-#include "cairo_canvasbitmaphelper.hxx"
-#include "cairo_impltools.hxx"
-#include "cairo_repainttarget.hxx"
-
-
-#define CANVASBITMAP_IMPLEMENTATION_NAME "CairoCanvas::CanvasBitmap"
-
-/* Definition of CanvasBitmap class */
-
-namespace cairocanvas
-{
- typedef ::cppu::WeakComponentImplHelper3< ::com::sun::star::rendering::XBitmapCanvas,
- ::com::sun::star::rendering::XIntegerBitmap,
- ::com::sun::star::lang::XServiceInfo > CanvasBitmapBase_Base;
- typedef ::canvas::internal::BitmapCanvasBase< CanvasBitmapBase_Base, CanvasBitmapHelper, tools::LocalGuard > CanvasBitmap_Base;
-
- class CanvasBitmap : public CanvasBitmap_Base,
- public RepaintTarget
- {
- public:
- /** Must be called with locked Solar mutex
-
- @param rSize
- Size in pixel of the bitmap to generate
-
- @param bAlphaBitmap
- When true, bitmap will have an alpha channel
-
- @param rDevice
- Reference device, with which bitmap should be compatible
- */
- CanvasBitmap( const ::Size& rSize,
- bool bAlphaBitmap,
- const WindowGraphicDevice::ImplRef& rDevice );
-
- /// Must be called with locked Solar mutex
- CanvasBitmap::CanvasBitmap( const ::com::sun::star::geometry::RealSize2D& rSize, ::cairo::Surface* pSrcSurface,
- const WindowGraphicDevice::ImplRef& rDevice,
- bool bFast);
-
- /// Dispose all internal references
- virtual void SAL_CALL disposing();
-
- // XServiceInfo
- virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException);
-
- // RepaintTarget interface
- virtual bool repaint( const GraphicObjectSharedPtr& rGrf,
- const ::Point& rPt,
- const ::Size& rSz,
- const GraphicAttr& rAttr ) const;
-
- bool hasAlpha();
- ::cairo::Cairo* getCairo();
-
- protected:
- ~CanvasBitmap(); // we're a ref-counted UNO class. _We_ destroy ourselves.
-
- private:
- // default: disabled copy/assignment
- CanvasBitmap(const CanvasBitmap&);
- CanvasBitmap& operator=( const CanvasBitmap& );
-
- ::cairo::Cairo* mpCairo;
- bool bHasAlpha;
- };
-}
-
-#endif /* _VCLCANVAS_CANVASBITMAP_HXX */
diff --git a/scratch/canvas-cairo/cairo_canvasbitmaphelper.cxx b/scratch/canvas-cairo/cairo_canvasbitmaphelper.cxx
deleted file mode 100644
index 400e927dc..000000000
--- a/scratch/canvas-cairo/cairo_canvasbitmaphelper.cxx
+++ /dev/null
@@ -1,231 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#include <canvas/debug.hxx>
-
-#ifndef _RTL_LOGFILE_HXX_
-#include <rtl/logfile.hxx>
-#endif
-#ifndef INCLUDED_RTL_MATH_HXX
-#include <rtl/math.hxx>
-#endif
-
-#ifndef _TL_POLY_HXX
-#include <tools/poly.hxx>
-#endif
-#ifndef _SV_WINDOW_HXX
-#include <vcl/window.hxx>
-#endif
-#ifndef _SV_BITMAPEX_HXX
-#include <vcl/bitmapex.hxx>
-#endif
-#ifndef _SV_BMPACC_HXX
-#include <vcl/bmpacc.hxx>
-#endif
-#ifndef _VCL_CANVASTOOLS_HXX
-#include <vcl/canvastools.hxx>
-#endif
-
-#ifndef _BGFX_MATRIX_B2DHOMMATRIX_HXX
-#include <basegfx/matrix/b2dhommatrix.hxx>
-#endif
-#ifndef _BGFX_POINT_B2DPOINT_HXX
-#include <basegfx/point/b2dpoint.hxx>
-#endif
-#ifndef _BGFX_TOOLS_CANVASTOOLS_HXX
-#include <basegfx/tools/canvastools.hxx>
-#endif
-#ifndef _BGFX_NUMERIC_FTOOLS_HXX
-#include <basegfx/numeric/ftools.hxx>
-#endif
-
-#include <canvas/canvastools.hxx>
-
-#include "cairo_canvasbitmap.hxx"
-
-
-using namespace ::com::sun::star;
-
-namespace cairocanvas
-{
- CanvasBitmapHelper::CanvasBitmapHelper() :
- mpBackBuffer()
- {
- }
-
- void CanvasBitmapHelper::setDevice( const WindowGraphicDevice::ImplRef& rDevice )
- {
- ENSURE_AND_THROW( rDevice.is(),
- "CanvasBitmapHelper::setBitmap(): Invalid reference device" );
-
- mpBackBuffer.reset( new BackBuffer( rDevice ) );
-
- // forward new settings to base class
- setGraphicDevice( rDevice );
- }
-
- void CanvasBitmapHelper::disposing()
- {
- mpBackBuffer.reset();
-
- // forward to base class
- CanvasHelper::disposing();
- }
-
- geometry::IntegerSize2D SAL_CALL CanvasBitmapHelper::getSize()
- {
- if( !mpBackBuffer.get() )
- return geometry::IntegerSize2D();
-
- return ::vcl::unotools::integerSize2DFromSize( mpBackBuffer->getSize() );
- }
-
- uno::Reference< rendering::XBitmap > SAL_CALL CanvasBitmapHelper::getScaledBitmap( const geometry::RealSize2D& newSize,
- sal_Bool beFast )
- {
- OSL_TRACE ("CanvasBitmapHelper::getScaledBitmap TODO\n");
-
- RTL_LOGFILE_CONTEXT( aLog, "::cairocanvas::CanvasBitmapHelper::getScaledBitmap()" );
-
- if( !mpBackBuffer.get() )
- return uno::Reference< rendering::XBitmap >(); // we're disposed
-
- return uno::Reference< rendering::XBitmap >(); // we're disposed
- }
-
- uno::Sequence< sal_Int8 > SAL_CALL CanvasBitmapHelper::getData( const geometry::IntegerRectangle2D& rect )
- {
- OSL_TRACE ("CanvasBitmapHelper::getData TODO\n");
-
- RTL_LOGFILE_CONTEXT( aLog, "::cairocanvas::CanvasBitmapHelper::getData()" );
-
- if( !mpBackBuffer.get() )
- return uno::Sequence< sal_Int8 >(); // we're disposed
-
- return uno::Sequence< sal_Int8 >(); // we're disposed
- }
-
- void SAL_CALL CanvasBitmapHelper::setData( const uno::Sequence< sal_Int8 >& data,
- const geometry::IntegerRectangle2D& rect )
- {
- OSL_TRACE ("CanvasBitmapHelper::setData TODO\n");
-
- RTL_LOGFILE_CONTEXT( aLog, "::cairocanvas::CanvasBitmapHelper::setData()" );
-
- if( !mpBackBuffer.get() )
- return; // we're disposed
-
- return;
- }
-
- void SAL_CALL CanvasBitmapHelper::setPixel( const uno::Sequence< sal_Int8 >& color,
- const geometry::IntegerPoint2D& pos )
- {
- OSL_TRACE ("CanvasBitmapHelper::setPixel TODO\n");
-
- RTL_LOGFILE_CONTEXT( aLog, "::cairocanvas::CanvasBitmapHelper::setPixel()" );
-
- if( !mpBackBuffer.get() )
- return; // we're disposed
-
- return;
- }
-
- uno::Sequence< sal_Int8 > SAL_CALL CanvasBitmapHelper::getPixel( const geometry::IntegerPoint2D& pos )
- {
- OSL_TRACE ("CanvasBitmapHelper::getPixel TODO\n");
-
- RTL_LOGFILE_CONTEXT( aLog, "::cairocanvas::CanvasBitmapHelper::getPixel()" );
-
- if( !mpBackBuffer.get() )
- return uno::Sequence< sal_Int8 >(); // we're disposed
-
- return uno::Sequence< sal_Int8 >(); // we're disposed
- }
-
- uno::Reference< rendering::XBitmapPalette > SAL_CALL CanvasBitmapHelper::getPalette()
- {
- // TODO(F1): Provide palette support
- return uno::Reference< rendering::XBitmapPalette >();
- }
-
- rendering::IntegerBitmapLayout SAL_CALL CanvasBitmapHelper::getMemoryLayout()
- {
- // TODO(F1): finish that one
- rendering::IntegerBitmapLayout aLayout;
-
- if( !mpBackBuffer.get() )
- return aLayout; // we're disposed
-
- const Size aBmpSize( mpBackBuffer->getSize() );
-
- aLayout.ScanLines = aBmpSize.Height();
- aLayout.ScanLineBytes = aBmpSize.Width()*4;
- aLayout.ScanLineStride = aLayout.ScanLineBytes;
- aLayout.Format = 0;
- aLayout.NumComponents = 4;
- aLayout.ComponentMasks = uno::Sequence<sal_Int64>();
- aLayout.Endianness = 0;
- aLayout.IsPseudoColor = false;
-
- return aLayout;
- }
-}
diff --git a/scratch/canvas-cairo/cairo_canvasbitmaphelper.hxx b/scratch/canvas-cairo/cairo_canvasbitmaphelper.hxx
deleted file mode 100644
index cf2ecee34..000000000
--- a/scratch/canvas-cairo/cairo_canvasbitmaphelper.hxx
+++ /dev/null
@@ -1,132 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#ifndef _VCLCANVAS_CANVASBITMAPHELPER_HXX_
-#define _VCLCANVAS_CANVASBITMAPHELPER_HXX_
-
-#include "cairo_canvashelper.hxx"
-
-#ifndef _SV_BITMAPEX_HXX
-#include <vcl/bitmapex.hxx>
-#endif
-
-#include <canvas/vclwrapper.hxx>
-
-#include "cairo_backbuffer.hxx"
-
-
-namespace cairocanvas
-{
- /** Helper class for basic canvasbitmap functionality. Extends
- CanvasHelper with some CanvasBitmap specialities, such as alpha
- support.
-
- Note that a plain CanvasHelper, although it does support the
- XBitmap interface, has no provision for alpha channel on VCL
- (at least no efficient one. If the alpha VDev one day gets
- part of SAL, we might change that).
- */
- class CanvasBitmapHelper : public CanvasHelper
- {
- public:
- CanvasBitmapHelper();
-
- void setDevice( const WindowGraphicDevice::ImplRef& rDevice );
-
- // Overridden CanvasHelper functionality
- // =====================================
-
- void disposing();
-
- ::com::sun::star::geometry::IntegerSize2D SAL_CALL getSize();
-
- ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmapCanvas > SAL_CALL queryBitmapCanvas();
-
- ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > SAL_CALL
- getScaledBitmap( const ::com::sun::star::geometry::RealSize2D& newSize,
- sal_Bool beFast );
-
- ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL
- getData( const ::com::sun::star::geometry::IntegerRectangle2D& rect );
-
- void SAL_CALL setData( const ::com::sun::star::uno::Sequence< sal_Int8 >& data,
- const ::com::sun::star::geometry::IntegerRectangle2D& rect );
-
- void SAL_CALL setPixel( const ::com::sun::star::uno::Sequence< sal_Int8 >& color,
- const ::com::sun::star::geometry::IntegerPoint2D& pos );
-
- ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL
- getPixel( const ::com::sun::star::geometry::IntegerPoint2D& pos );
-
- ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmapPalette > SAL_CALL getPalette();
-
- ::com::sun::star::rendering::IntegerBitmapLayout SAL_CALL getMemoryLayout();
-
- private:
- // default: disabled copy/assignment
- CanvasBitmapHelper(const CanvasBitmapHelper&);
- CanvasBitmapHelper& operator=( const CanvasBitmapHelper& );
-
- BackBufferSharedPtr mpBackBuffer;
- };
-}
-
-#endif /* _VCLCANVAS_CANVASBITMAPHELPER_HXX_ */
diff --git a/scratch/canvas-cairo/cairo_canvascustomsprite.cxx b/scratch/canvas-cairo/cairo_canvascustomsprite.cxx
deleted file mode 100644
index f551ad689..000000000
--- a/scratch/canvas-cairo/cairo_canvascustomsprite.cxx
+++ /dev/null
@@ -1,826 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#include <canvas/debug.hxx>
-#include <canvas/verbosetrace.hxx>
-
-#ifndef INCLUDED_RTL_MATH_HXX
-#include <rtl/math.hxx>
-#endif
-
-#ifndef _SV_OUTDEV_HXX
-#include <vcl/outdev.hxx>
-#endif
-#ifndef _SV_BITMAP_HXX
-#include <vcl/bitmap.hxx>
-#endif
-#ifndef _SV_ALPHA_HXX
-#include <vcl/alpha.hxx>
-#endif
-#ifndef _SV_BITMAPEX_HXX
-#include <vcl/bitmapex.hxx>
-#endif
-#ifndef _SV_SYSDATA_HXX
-#include <vcl/sysdata.hxx>
-#endif
-#ifndef _VCL_CANVASTOOLS_HXX
-#include <vcl/canvastools.hxx>
-#endif
-
-#ifndef _BGFX_MATRIX_B2DHOMMATRIX_HXX
-#include <basegfx/matrix/b2dhommatrix.hxx>
-#endif
-#ifndef _BGFX_POINT_B2DPOINT_HXX
-#include <basegfx/point/b2dpoint.hxx>
-#endif
-#ifndef _BGFX_TOOLS_CANVASTOOLS_HXX
-#include <basegfx/tools/canvastools.hxx>
-#endif
-#ifndef _BGFX_POLYGON_B2DPOLYGON_HXX
-#include <basegfx/polygon/b2dpolygon.hxx>
-#endif
-#ifndef _BGFX_POLYGON_B2DPOLYGONTOOLS_HXX
-#include <basegfx/polygon/b2dpolygontools.hxx>
-#endif
-#ifndef _BGFX_POLYGON_B2DPOLYPOLYGONTOOLS_HXX
-#include <basegfx/polygon/b2dpolypolygontools.hxx>
-#endif
-#ifndef _BGFX_NUMERIC_FTOOLS_HXX
-#include <basegfx/numeric/ftools.hxx>
-#endif
-
-#include <canvas/canvastools.hxx>
-
-#include "cairo_canvascustomsprite.hxx"
-
-
-using namespace ::com::sun::star;
-using namespace ::cairo;
-
-namespace cairocanvas
-{
-
- CanvasCustomSprite::CanvasCustomSprite( const geometry::RealSize2D& rSpriteSize,
- const WindowGraphicDevice::ImplRef& rDevice,
- const SystemEnvData* pSysData,
- const SpriteCanvas::ImplRef& rSpriteCanvas ) :
- mpBackBuffer(),
- mpBackBufferMask(),
- mpSpriteCanvas( rSpriteCanvas ),
- maCurrClipBounds(),
- maPosition(0.0, 0.0),
- maSize( static_cast< sal_Int32 >(
- ::std::max( 1.0,
- ceil( rSpriteSize.Width ) ) ), // round up to nearest int,
- // enforce sprite to have at
- // least (1,1) pixel size
- static_cast< sal_Int32 >(
- ::std::max( 1.0,
- ceil( rSpriteSize.Height ) ) ) ),
- maTransform(),
- mxClipPoly(),
- mfAlpha(0.0),
- mbActive(false),
- mbIsCurrClipRectangle(true),
- mbIsContentFullyOpaque( false ),
- mbTransformDirty( true ),
- mxDevice( rDevice )
- {
- ENSURE_AND_THROW( rDevice.get() && rSpriteCanvas.get(),
- "CanvasBitmap::CanvasBitmap(): Invalid device or sprite canvas" );
-
- OSL_TRACE("going to create canvas custom sprite\n");
-
- // setup graphic device
- maCanvasHelper.setGraphicDevice( mxDevice );
- setContent( CAIRO_CONTENT_COLOR_ALPHA );
-
- // create mask backbuffer, with one bit color depth
- mpBackBufferMask.reset( new BackBuffer( mxDevice ) );
- mpBackBufferMask->setSize( maSize );
- }
-
- CanvasCustomSprite::~CanvasCustomSprite()
- {
- }
-
- void SAL_CALL CanvasCustomSprite::disposing()
- {
- tools::LocalGuard aGuard;
-
- mpSpriteCanvas.clear();
- mxDevice.reset();
-
- // forward to parent
- CanvasCustomSprite_Base::disposing();
- }
-
- void CanvasCustomSprite::setContent( Content aContent )
- {
- OSL_TRACE("set Content of %p to %x\n", this, aContent);
-
- mpBackBuffer.reset( new BackBuffer( mxDevice, aContent ) );
- mpBackBuffer->setSize( maSize );
- maCanvasHelper.setCairo( mpBackBuffer->getCairo() );
- maContent = aContent;
- }
-
- void SAL_CALL CanvasCustomSprite::setAlpha( double alpha ) throw (lang::IllegalArgumentException, uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- if( !mpSpriteCanvas.get() )
- return; // we're disposed
-
- ::canvas::tools::checkRange(alpha, 0.0, 1.0);
-
- if( alpha != mfAlpha )
- {
- mfAlpha = alpha;
-
- if( mbActive )
- mpSpriteCanvas->updateSprite( Sprite::ImplRef( this ),
- ::vcl::unotools::pointFromB2DPoint( maPosition ),
- getSpriteRect() );
- }
- }
-
- void SAL_CALL CanvasCustomSprite::move( const geometry::RealPoint2D& aNewPos,
- const rendering::ViewState& viewState,
- const rendering::RenderState& renderState ) throw (lang::IllegalArgumentException, uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- OSL_TRACE ("custom sprite move to new pos %f, %f\n", aNewPos.X, aNewPos.Y);
-
- if( !mpSpriteCanvas.get() )
- return; // we're disposed
-
- ::basegfx::B2DHomMatrix aTransform;
- ::canvas::tools::mergeViewAndRenderTransform(aTransform,
- viewState,
- renderState);
-
- ::basegfx::B2DPoint aPoint( ::basegfx::unotools::b2DPointFromRealPoint2D(aNewPos) );
- aPoint *= aTransform;
-
- if( aPoint != maPosition )
- {
- const ::Rectangle& rBounds( getFullSpriteRect() );
- const ::basegfx::B2DPoint& rOutPos(
- ::vcl::unotools::b2DPointFromPoint( rBounds.TopLeft() ) );
-
- if( mbActive )
- mpSpriteCanvas->moveSprite( Sprite::ImplRef( this ),
- rBounds.TopLeft(),
- ::vcl::unotools::pointFromB2DPoint(
- rOutPos - maPosition + aPoint ),
- rBounds.GetSize() );
-
- maPosition = aPoint;
- }
- }
-
- void SAL_CALL CanvasCustomSprite::transform( const geometry::AffineMatrix2D& aTransformation ) throw (lang::IllegalArgumentException,
- uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- ::basegfx::B2DHomMatrix aMatrix;
- ::basegfx::unotools::homMatrixFromAffineMatrix(aMatrix,
- aTransformation);
-
- if( maTransform != aMatrix )
- {
- // retrieve bounds before and after transformation change,
- // and calc union of them, as the resulting update area.
- Rectangle aPrevBounds(
- getSpriteRect() );
-
- maTransform = aMatrix;
-
- aPrevBounds.Union( getSpriteRect() );
-
- if( mbActive )
- mpSpriteCanvas->updateSprite( Sprite::ImplRef( this ),
- ::vcl::unotools::pointFromB2DPoint( maPosition ),
- aPrevBounds );
-
- mbTransformDirty = true;
- }
- }
-
- namespace
- {
- /** This method computes the up to four rectangles that make
- up the set difference between two rectangles.
-
- @param a
- First rect
-
- @param b
- Second rect
-
- @param out
- Pointer to an array of at least four elements, herein, the
- resulting parts of the set difference are returned.
-
- @return
- The number of rectangles written to the out array.
- */
- unsigned int b2dRectComputeSetDifference( const ::basegfx::B2DRectangle& a,
- const ::basegfx::B2DRectangle& b,
- ::basegfx::B2DRectangle* out )
- {
- OSL_ENSURE( out != NULL,
- "b2dRectComputeSetDifference(): Invalid output array" );
-
- // special-casing the empty rect case (this will fail most
- // of the times below, because of the DBL_MIN/MAX special
- // values denoting emptyness in the rectangle.
- if( a.isEmpty() )
- {
- *out = b;
- return 1;
- }
- if( b.isEmpty() )
- {
- *out = a;
- return 1;
- }
-
- unsigned int num_rectangles = 0;
-
- double ax(a.getMinX());
- double ay(a.getMinY());
- double aw(a.getWidth());
- double ah(a.getHeight());
- double bx(b.getMinX());
- double by(b.getMinY());
- double bw(b.getWidth());
- double bh(b.getHeight());
-
- double h0 = (by > ay) ? by - ay : 0.0;
- double h3 = (by + bh < ay + ah) ? ay + ah - by - bh : 0.0;
- double w1 = (bx > ax) ? bx - ax : 0.0;
- double w2 = (ax + aw > bx + bw) ? ax + aw - bx - bw : 0.0;
- double h12 = (h0 + h3 < ah) ? ah - h0 - h3 : 0.0;
-
- if (h0 > 0)
- out[num_rectangles++] = ::basegfx::B2DRectangle(ax,ay,ax+aw,ay+h0);
-
- if (w1 > 0 && h12 > 0)
- out[num_rectangles++] = ::basegfx::B2DRectangle(ax,ay+h0,ax+w1,ay+h0+h12);
-
- if (w2 > 0 && h12 > 0)
- out[num_rectangles++] = ::basegfx::B2DRectangle(bx+bw,ay+h0,bx+bw+w2,ay+h0+h12);
-
- if (h3 > 0)
- out[num_rectangles++] = ::basegfx::B2DRectangle(ax,ay+h0+h12,ax+aw,ay+h0+h12+h3);
-
- return num_rectangles;
- }
- }
-
- void SAL_CALL CanvasCustomSprite::clip( const uno::Reference< rendering::XPolyPolygon2D >& xClip ) throw (uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- mxClipPoly = xClip;
-
- if( mbActive )
- {
- const sal_Int32 nNumClipPolygons( mxClipPoly->getNumberOfPolygons() );
-
- if( !mxClipPoly.is() ||
- nNumClipPolygons == 0 )
- {
- // empty clip polygon -> everything is visible now
- maCurrClipBounds.reset();
- mbIsCurrClipRectangle = true;
- }
- else
- {
- // new clip is not empty - determine actual update
- // area
- const ::basegfx::B2DPolyPolygon& rClipPath(
- tools::polyPolygonFromXPolyPolygon2D( mxClipPoly ) );
-
- // clip which is about to be set, expressed as a
- // b2drectangle
- const ::basegfx::B2DRectangle& rClipBounds(
- ::basegfx::tools::getRange( rClipPath ) );
-
- const ::basegfx::B2DRectangle aBounds( 0.0, 0.0,
- maSize.Width(),
- maSize.Height() );
-
- // rectangular area which is actually covered by the sprite.
- // coordinates are relative to the sprite origin.
- ::basegfx::B2DRectangle aSpriteRectPixel;
- ::canvas::tools::calcTransformedRectBounds( aSpriteRectPixel,
- aBounds,
- maTransform );
-
- // aClipBoundsA = new clip [set intersection] sprite
- ::basegfx::B2DRectangle aClipBoundsA(rClipBounds);
- aClipBoundsA.intersect( aSpriteRectPixel );
-
- if( nNumClipPolygons != 1 )
- {
- // new clip cannot be a single rectangle -> cannot
- // optimize update
- mbIsCurrClipRectangle = false;
- maCurrClipBounds = aClipBoundsA;
- }
- else
- {
- // new clip could be a single rectangle
- const bool bNewClipIsRect(
- ::basegfx::tools::isRectangle( rClipPath.getB2DPolygon(0) ) );
-
- // both new and old clip are truly rectangles
- // - can now take the optimized path
- const bool bUseOptimizedUpdate( bNewClipIsRect &&
- mbIsCurrClipRectangle );
-
- const ::basegfx::B2DRectangle aOldBounds( maCurrClipBounds );
-
- // store new current clip type
- maCurrClipBounds = aClipBoundsA;
- mbIsCurrClipRectangle = bNewClipIsRect;
-
- if( bUseOptimizedUpdate )
- {
- // aClipBoundsB = maCurrClipBounds, i.e. last clip [set intersection] sprite
- ::basegfx::B2DRectangle aClipDifference[4];
- const unsigned int num_rectangles(
- b2dRectComputeSetDifference(aClipBoundsA,
- aOldBounds,
- aClipDifference) );
-
- for(unsigned int i=0; i<num_rectangles; ++i)
- {
- // aClipDifference[i] now contains the final
- // update area, coordinates are still relative
- // to the sprite origin. before submitting
- // this area to 'updateSprite()' we need to
- // translate this area to the final position,
- // coordinates need to be relative to the
- // spritecanvas.
- mpSpriteCanvas->updateSprite( Sprite::ImplRef( this ),
- ::vcl::unotools::pointFromB2DPoint( maPosition ),
- Rectangle( static_cast< sal_Int32 >( maPosition.getX() + aClipDifference[i].getMinX() ),
- static_cast< sal_Int32 >( maPosition.getY() + aClipDifference[i].getMinY() ),
- static_cast< sal_Int32 >( ceil( maPosition.getX() + aClipDifference[i].getMaxX() ) ),
- static_cast< sal_Int32 >( ceil( maPosition.getY() + aClipDifference[i].getMaxY() ) ) ) );
- }
-
- // early exit, needed to process the four
- // difference rects independently.
- return;
- }
- }
- }
-
- mpSpriteCanvas->updateSprite( Sprite::ImplRef( this ),
- ::vcl::unotools::pointFromB2DPoint( maPosition ),
- getSpriteRect() );
- }
- }
-
- void SAL_CALL CanvasCustomSprite::setPriority( double nPriority ) throw (uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- // TODO(F2): Implement sprite priority
- }
-
- void SAL_CALL CanvasCustomSprite::show() throw (uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- if( !mpSpriteCanvas.get() )
- return; // we're disposed
-
- if( !mbActive )
- {
- mpSpriteCanvas->showSprite( Sprite::ImplRef( this ) );
- mbActive = true;
-
- if( mfAlpha != 0.0 )
- {
- mpSpriteCanvas->updateSprite( Sprite::ImplRef( this ),
- ::vcl::unotools::pointFromB2DPoint( maPosition ),
- getSpriteRect() );
- }
- }
- }
-
- void SAL_CALL CanvasCustomSprite::hide() throw (uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- if( !mpSpriteCanvas.get() )
- return; // we're disposed
-
- if( mbActive )
- {
- mpSpriteCanvas->hideSprite( Sprite::ImplRef( this ) );
- mbActive = false;
-
- if( mfAlpha != 0.0 )
- {
- mpSpriteCanvas->updateSprite( Sprite::ImplRef( this ),
- ::vcl::unotools::pointFromB2DPoint( maPosition ),
- getSpriteRect() );
- }
- }
- }
-
- uno::Reference< rendering::XCanvas > SAL_CALL CanvasCustomSprite::getContentCanvas() throw (uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- if( !mpSpriteCanvas.get() || !mpBackBuffer.get() )
- uno::Reference< rendering::XCanvas >(); // we're disposed
-
- if( mbActive )
- {
- // the client is about to render into the sprite. Thus,
- // potentially the whole sprite area has changed.
- mpSpriteCanvas->updateSprite( Sprite::ImplRef( this ),
- ::vcl::unotools::pointFromB2DPoint( maPosition ),
- getSpriteRect() );
- }
-
- // clear surface
-// Cairo* pCairo = mpBackBuffer->getCairo();
-// cairo_save( pCairo );
-// cairo_set_source_rgb( pCairo, 1, 1, 1 );
-// cairo_rectangle( pCairo, 0, 0, maSize.Width(), maSize.Height() );
-// cairo_fill( pCairo );
-// cairo_restore( pCairo );
-
- // rodo TODO
-// OutputDevice& rMaskOutDev( mpBackBufferMask->getOutDev() );
-// rMaskOutDev.SetDrawMode( DRAWMODE_DEFAULT );
-// rMaskOutDev.EnableMapMode( FALSE );
-// rMaskOutDev.SetFillColor( Color( COL_WHITE ) );
-// rMaskOutDev.SetLineColor();
-// rMaskOutDev.DrawRect( Rectangle(Point(), maSize) );
-// rMaskOutDev.SetDrawMode( DRAWMODE_BLACKLINE | DRAWMODE_BLACKFILL | DRAWMODE_BLACKTEXT |
-// DRAWMODE_BLACKGRADIENT | DRAWMODE_BLACKBITMAP );
-
- // surface content has changed (we cleared it, at least)
- mbSurfaceDirty = true;
-
- // just cleared content to fully transparent
- mbIsContentFullyOpaque = false;
-
- return this;
- }
-
-#define SERVICE_NAME "com.sun.star.rendering.CanvasCustomSprite"
-
- ::rtl::OUString SAL_CALL CanvasCustomSprite::getImplementationName() throw( uno::RuntimeException )
- {
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( CANVASCUSTOMSPRITE_IMPLEMENTATION_NAME ) );
- }
-
- sal_Bool SAL_CALL CanvasCustomSprite::supportsService( const ::rtl::OUString& ServiceName ) throw( uno::RuntimeException )
- {
- return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
- }
-
- uno::Sequence< ::rtl::OUString > SAL_CALL CanvasCustomSprite::getSupportedServiceNames() throw( uno::RuntimeException )
- {
- uno::Sequence< ::rtl::OUString > aRet(1);
- aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
-
- return aRet;
- }
-
- // Sprite
- void CanvasCustomSprite::redraw( Cairo* pCairo ) const
- {
- tools::LocalGuard aGuard;
-
- redraw( pCairo, maPosition );
- }
-
- bool CanvasCustomSprite::doesBitmapCoverWholeSprite( const uno::Reference< rendering::XBitmap >& xBitmap,
- const rendering::ViewState& viewState,
- const rendering::RenderState& renderState )
- {
- // TODO(Q2): Factor out to canvastools or similar
-
- ::basegfx::B2DHomMatrix aTransform;
- ::canvas::tools::mergeViewAndRenderTransform(aTransform,
- viewState,
- renderState);
-
- const geometry::IntegerSize2D& rSize( xBitmap->getSize() );
-
- ::basegfx::B2DPolygon aPoly(
- ::basegfx::tools::createPolygonFromRect(
- ::basegfx::B2DRectangle( 0.0,0.0,
- rSize.Width+1,
- rSize.Height+1 ) ) );
- aPoly.transform( aTransform );
-
- if( ::basegfx::tools::isInside(
- aPoly,
- ::basegfx::tools::createPolygonFromRect(
- ::basegfx::B2DRectangle( 0.0,0.0,
- maSize.Width(),
- maSize.Height() ) ),
- true ) )
- {
- // bitmap will fully cover the sprite, set flag
- // appropriately
- mbIsContentFullyOpaque = true;
- OSL_TRACE ("sprite fully opaque");
- }
- return mbIsContentFullyOpaque;
- }
-
- uno::Reference< rendering::XCachedPrimitive > SAL_CALL CanvasCustomSprite::drawBitmap( const uno::Reference< rendering::XBitmap >& xBitmap,
- const rendering::ViewState& viewState,
- const rendering::RenderState& renderState )
- throw (lang::IllegalArgumentException, uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- uno::Reference< rendering::XCachedPrimitive > rv;
- bool bHasAlpha;
- unsigned char* data;
- Surface* pSurface = tools::surfaceFromXBitmap( xBitmap, mxDevice, data, bHasAlpha );
- Content aRequiredContent;
-
- if( pSurface ) {
- aRequiredContent = bHasAlpha ? CAIRO_CONTENT_COLOR_ALPHA : CAIRO_CONTENT_COLOR;
- if( aRequiredContent != maContent && aRequiredContent == CAIRO_CONTENT_COLOR && doesBitmapCoverWholeSprite( xBitmap, viewState, renderState ) )
- setContent( aRequiredContent );
-
- rv = maCanvasHelper.implDrawBitmapSurface( pSurface, viewState, renderState, false, bHasAlpha );
-
- cairo_surface_destroy( pSurface );
-
- if( data )
- free( data );
- } else
- rv = uno::Reference< rendering::XCachedPrimitive >(NULL);
-
- return rv;
- }
-
- void CanvasCustomSprite::redraw( Cairo* pCairo,
- const ::basegfx::B2DPoint& rOutputPos ) const
- {
- tools::LocalGuard aGuard;
-
- #ifdef CAIRO_CANVAS_PERF_TRACE
- struct timespec aTimer;
- mxDevice->startPerfTrace( &aTimer );
- #endif
-
- if( mbActive && !::basegfx::fTools::equalZero( mfAlpha ) ) {
- OSL_TRACE ("CanvasCustomSprite::redraw called\n");
- if( pCairo ) {
-
- Size aSize = mpBackBuffer->getSize();
- OSL_TRACE ("CanvasCustomSprite::redraw painting surface %p on %p cairo with surface %p on %f,%f size %d x %d\n",
- mpBackBuffer->getSurface(), pCairo, cairo_get_target( pCairo ), rOutputPos.getX(), rOutputPos.getY(),
- aSize.Width(), aSize.Height() );
- cairo_save( pCairo );
-
- double fX, fY;
-
- fX = rOutputPos.getX();
- fY = rOutputPos.getY();
-
- if( !maTransform.isIdentity() ) {
- cairo_matrix_t aMatrix, aInverseMatrix;
- cairo_matrix_init( &aMatrix,
- maTransform.get( 0, 0 ), maTransform.get( 1, 0 ), maTransform.get( 0, 1 ),
- maTransform.get( 1, 1 ), maTransform.get( 0, 2 ), maTransform.get( 1, 2 ) );
-
- aMatrix.x0 = round( aMatrix.x0 );
- aMatrix.y0 = round( aMatrix.y0 );
-
- cairo_matrix_init( &aInverseMatrix, aMatrix.xx, aMatrix.yx, aMatrix.xy, aMatrix.yy, aMatrix.x0, aMatrix.y0 );
- cairo_matrix_invert( &aInverseMatrix );
- cairo_matrix_transform_distance( &aInverseMatrix, &fX, &fY );
-
-
- cairo_set_matrix( pCairo, &aMatrix );
- }
-
-// fX = floor( fX );
-// fY = floor( fY );
-
- cairo_matrix_t aOrigMatrix;
- cairo_get_matrix( pCairo, &aOrigMatrix );
- cairo_translate( pCairo, round(fX), round(fY) );
- if( mbIsCurrClipRectangle ) {
- cairo_reset_clip( pCairo );
- if( ! maCurrClipBounds.isEmpty() ) {
- cairo_rectangle( pCairo,
- floor( maCurrClipBounds.getMinX() ),
- floor( maCurrClipBounds.getMinY() ),
- ceil( maCurrClipBounds.getMaxX() - maCurrClipBounds.getMinX() ),
- ceil( maCurrClipBounds.getMaxY() - maCurrClipBounds.getMinY() ) );
- cairo_clip( pCairo );
- }
- //else
- //cairo_rectangle( pCairo, 0, 0, maSize.Width(), maSize.Height() );
- }
- if( mxClipPoly.is() ) {
- cairo_reset_clip( pCairo );
- maCanvasHelper.drawPolyPolygonPath( mxClipPoly, CanvasHelper::Clip, pCairo );
- }
- OSL_TRACE ("maSize %d x %d\n", maSize.Width(), maSize.Height() );
- cairo_rectangle( pCairo, 0, 0, ceil( maSize.Width() ), ceil( maSize.Height() ) );
- cairo_clip( pCairo );
- cairo_set_matrix( pCairo, &aOrigMatrix );
-
- if( mbIsContentFullyOpaque )
- cairo_set_operator( pCairo, CAIRO_OPERATOR_SOURCE );
- cairo_set_source_surface( pCairo, mpBackBuffer->getSurface(), fX, fY );
- if( ::rtl::math::approxEqual(mfAlpha, 1.0) )
- cairo_paint( pCairo );
- else
- cairo_paint_with_alpha( pCairo, mfAlpha );
-
- cairo_restore( pCairo );
- }
- }
-
- #ifdef CAIRO_CANVAS_PERF_TRACE
- mxDevice->stopPerfTrace( &aTimer, "sprite redraw" );
- #endif
- }
-
- bool CanvasCustomSprite::isAreaUpdateOpaque( const Rectangle& rUpdateArea ) const
- {
- if( !mbIsCurrClipRectangle ||
- !mbIsContentFullyOpaque ||
- !::rtl::math::approxEqual(mfAlpha, 1.0) )
- {
- // sprite either transparent, or clip rect does not
- // represent exact bounds -> update might not be fully
- // opaque
- return false;
- }
- else
- {
- const Rectangle& rSpriteRect( getSpriteRect() );
-
- // make sure sprite rect covers update area fully -
- // although the update area originates from the sprite,
- // it's by no means guaranteed that it's limited to this
- // sprite's update area - after all, other sprites might
- // have been merged, or this sprite is moving.
-
- // Note: as Rectangle::IsInside() checks for _strict_
- // insidedness (i.e. all rect edges must be strictly
- // inside, not equal to one of the spriteRect's edges),
- // need the check for equality here.
- return rSpriteRect == rUpdateArea || rSpriteRect.IsInside( rUpdateArea );
- }
- }
-
- ::basegfx::B2DPoint CanvasCustomSprite::getSpritePos() const
- {
- tools::LocalGuard aGuard;
-
- return maPosition;
- }
-
- ::basegfx::B2DSize CanvasCustomSprite::getSpriteSize() const
- {
- tools::LocalGuard aGuard;
-
- // TODO(Q1): Use AW's wrappers once resynced
- return ::basegfx::B2DSize( maSize.Width(),
- maSize.Height() );
- }
-
- bool CanvasCustomSprite::repaint( const GraphicObjectSharedPtr& rGrf,
- const ::Point& rPt,
- const ::Size& rSz,
- const GraphicAttr& rAttr ) const
- {
- tools::LocalGuard aGuard;
-
- mbSurfaceDirty = true;
-
- return maCanvasHelper.repaint( rGrf, rPt, rSz, rAttr );
- }
-
- Rectangle CanvasCustomSprite::getSpriteRect( const ::basegfx::B2DRectangle& rBounds ) const
- {
- // Internal! Only call with locked object mutex!
- ::basegfx::B2DHomMatrix aTransform( maTransform );
- aTransform.translate( maPosition.getX(),
- maPosition.getY() );
-
- // transform bounds at origin, as the sprite transformation is
- // formulated that way
- ::basegfx::B2DRectangle aTransformedBounds;
- ::canvas::tools::calcTransformedRectBounds( aTransformedBounds,
- rBounds,
- aTransform );
-
- // return integer rect, rounded away from the center
- return Rectangle( static_cast< sal_Int32 >( aTransformedBounds.getMinX() ),
- static_cast< sal_Int32 >( aTransformedBounds.getMinY() ),
- static_cast< sal_Int32 >( aTransformedBounds.getMaxX() )+1,
- static_cast< sal_Int32 >( aTransformedBounds.getMaxY() )+1 );
- }
-
- Rectangle CanvasCustomSprite::getSpriteRect() const
- {
- // Internal! Only call with locked object mutex!
-
- // return effective sprite rect, i.e. take active clip into
- // account
- if( maCurrClipBounds.isEmpty() )
- return getSpriteRect( ::basegfx::B2DRectangle( 0.0, 0.0,
- maSize.Width(),
- maSize.Height() ) );
- else
- // return integer rect, rounded away from the center
- return Rectangle( static_cast< sal_Int32 >( maPosition.getX() + maCurrClipBounds.getMinX() ),
- static_cast< sal_Int32 >( maPosition.getY() + maCurrClipBounds.getMinY() ),
- static_cast< sal_Int32 >( ceil( maPosition.getX() + maCurrClipBounds.getMaxX() ) ),
- static_cast< sal_Int32 >( ceil( maPosition.getY() + maCurrClipBounds.getMaxY() ) ) );
- }
-
- Rectangle CanvasCustomSprite::getFullSpriteRect() const
- {
- // Internal! Only call with locked object mutex!
- return getSpriteRect( ::basegfx::B2DRectangle( 0.0, 0.0,
- maSize.Width(),
- maSize.Height() ) );
- }
-}
diff --git a/scratch/canvas-cairo/cairo_canvascustomsprite.hxx b/scratch/canvas-cairo/cairo_canvascustomsprite.hxx
deleted file mode 100644
index 1763efacf..000000000
--- a/scratch/canvas-cairo/cairo_canvascustomsprite.hxx
+++ /dev/null
@@ -1,246 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#ifndef _VCLCANVAS_CANVASCUSTOMSPRITE_HXX
-#define _VCLCANVAS_CANVASCUSTOMSPRITE_HXX
-
-#ifndef _CPPUHELPER_COMPBASE3_HXX_
-#include <cppuhelper/compbase3.hxx>
-#endif
-
-#ifndef _COMPHELPER_UNO3_HXX
-#include <comphelper/uno3.hxx>
-#endif
-
-#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_XCUSTOMSPRITE_HPP_
-#include <com/sun/star/rendering/XCustomSprite.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_XPOLYPOLYGON2D_HPP_
-#include <com/sun/star/rendering/XPolyPolygon2D.hpp>
-#endif
-
-#ifndef _BGFX_POINT_B2DPOINT_HXX
-#include <basegfx/point/b2dpoint.hxx>
-#endif
-#ifndef _BGFX_MATRIX_B2DHOMMATRIX_HXX
-#include <basegfx/matrix/b2dhommatrix.hxx>
-#endif
-
-#ifndef _SV_VIRDEV_HXX
-#include <vcl/virdev.hxx>
-#endif
-
-#include <canvas/vclwrapper.hxx>
-#include <canvas/bitmapcanvasbase.hxx>
-
-#include "cairo_cairo.hxx"
-#include "cairo_canvashelper.hxx"
-#include "cairo_backbuffer.hxx"
-#include "cairo_impltools.hxx"
-#include "cairo_spritecanvas.hxx"
-#include "cairo_sprite.hxx"
-#include "cairo_repainttarget.hxx"
-
-
-#define CANVASCUSTOMSPRITE_IMPLEMENTATION_NAME "CairoCanvas::CanvasCustomSprite"
-
-namespace cairocanvas
-{
- typedef ::cppu::WeakComponentImplHelper3< ::com::sun::star::rendering::XCustomSprite,
- ::com::sun::star::rendering::XBitmapCanvas,
- ::com::sun::star::lang::XServiceInfo > CanvasCustomSpriteBase_Base;
- typedef ::canvas::internal::BitmapCanvasBase< CanvasCustomSpriteBase_Base, CanvasHelper, tools::LocalGuard > CanvasCustomSprite_Base;
-
- /* Definition of CanvasCustomSprite class */
-
- class CanvasCustomSprite : public Sprite,
- public CanvasCustomSprite_Base,
- public RepaintTarget
- {
- public:
- CanvasCustomSprite( const ::com::sun::star::geometry::RealSize2D& rSpriteSize,
- const WindowGraphicDevice::ImplRef& rDevice,
- const SystemEnvData* pSysData,
- const SpriteCanvas::ImplRef& rSpriteCanvas );
-
- // XInterface
-
- // Need to employ this macro, because Sprite comes with an
- // unimplemented version of XInterface.
-
- // Forwarding the XInterface implementation to the
- // cppu::ImplHelper templated base, which does the refcounting and
- // queryInterface for us: Classname Base doing refcount and handling queryInterface
- // | |
- // V V
- DECLARE_UNO3_AGG_DEFAULTS( CanvasCustomSprite, CanvasCustomSpriteBase_Base );
-
- virtual void SAL_CALL disposing();
-
- // XCanvas: selectively override base's method here, for opacity tracking
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive > SAL_CALL
- drawBitmap( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap >& xBitmap,
- const ::com::sun::star::rendering::ViewState& viewState,
- const ::com::sun::star::rendering::RenderState& renderState ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-
- // XSprite
- virtual void SAL_CALL setAlpha( double alpha ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL move( const ::com::sun::star::geometry::RealPoint2D& aNewPos, const ::com::sun::star::rendering::ViewState& viewState, const ::com::sun::star::rendering::RenderState& renderState ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL transform( const ::com::sun::star::geometry::AffineMatrix2D& aTransformation ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL clip( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D >& aClip ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL setPriority( double nPriority ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL show( ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL hide( ) throw (::com::sun::star::uno::RuntimeException);
-
- // XCustomSprite
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCanvas > SAL_CALL
- getContentCanvas( ) throw (::com::sun::star::uno::RuntimeException);
-
- // XServiceInfo
- virtual ::rtl::OUString SAL_CALL getImplementationName() throw( ::com::sun::star::uno::RuntimeException );
- virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw( ::com::sun::star::uno::RuntimeException );
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw( ::com::sun::star::uno::RuntimeException );
-
- // Sprite
- virtual void redraw( ::cairo::Cairo* pCairo ) const;
- virtual void redraw( ::cairo::Cairo* pCairo,
- const ::basegfx::B2DPoint& rOutputPos ) const;
- virtual bool isAreaUpdateOpaque( const Rectangle& rUpdateArea ) const;
- virtual ::basegfx::B2DPoint getSpritePos() const;
- virtual ::basegfx::B2DSize getSpriteSize() const;
-
- // RepaintTarget
- virtual bool repaint( const GraphicObjectSharedPtr& rGrf,
- const ::Point& rPt,
- const ::Size& rSz,
- const GraphicAttr& rAttr ) const;
-
- protected:
- ~CanvasCustomSprite(); // we're a ref-counted UNO class. _We_ destroy ourselves.
-
- private:
- // default: disabled copy/assignment
- CanvasCustomSprite(const CanvasCustomSprite&);
- CanvasCustomSprite& operator=( const CanvasCustomSprite& );
-
- Rectangle getSpriteRect( const ::basegfx::B2DRectangle& rBounds ) const;
- Rectangle getFullSpriteRect() const;
- Rectangle getSpriteRect() const;
-
- // for the integrated bitmap canvas implementation
- BackBufferSharedPtr mpBackBuffer;
- BackBufferSharedPtr mpBackBufferMask;
-
- SpriteCanvas::ImplRef mpSpriteCanvas;
-
- /** Currently active clip area.
-
- This member is either empty, denoting that the current
- clip shows the full sprite content, or contains a
- rectangular subarea of the sprite, outside of which
- the sprite content is fully clipped.
-
- @see mbIsCurrClipRectangle
- */
- ::basegfx::B2DRectangle maCurrClipBounds;
-
- // sprite state
- ::basegfx::B2DPoint maPosition;
- Size maSize;
- ::basegfx::B2DHomMatrix maTransform;
- ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XPolyPolygon2D > mxClipPoly;
- double mfAlpha;
- bool mbActive;
-
- /** If true, denotes that the current sprite clip is a true
- rectangle, i.e. maCurrClipBounds <em>exactly</em>
- describes the visible area of the sprite.
-
- @see maCurrClipBounds
- */
- bool mbIsCurrClipRectangle;
-
- /** OutDev render speedup.
-
- When true, this flag denotes that the current
- mpBackBufferMask content is fully opaque, thus, that blits
- to the screen can use a plain Bitmap instead of the
- BitmapEx.
- */
- mutable bool mbIsContentFullyOpaque;
-
- /// True, iff maTransform has changed
- mutable bool mbTransformDirty;
-
- WindowGraphicDevice::ImplRef mxDevice;
- ::cairo::Content maContent;
- void CanvasCustomSprite::setContent( ::cairo::Content aContent );
- bool CanvasCustomSprite::doesBitmapCoverWholeSprite( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap >& xBitmap,
- const ::com::sun::star::rendering::ViewState& viewState,
- const ::com::sun::star::rendering::RenderState& renderState );
- };
-}
-
-#endif /* _VCLCANVAS_CANVASCUSTOMSPRITE_HXX */
diff --git a/scratch/canvas-cairo/cairo_canvasfont.cxx b/scratch/canvas-cairo/cairo_canvasfont.cxx
deleted file mode 100644
index 956a389ed..000000000
--- a/scratch/canvas-cairo/cairo_canvasfont.cxx
+++ /dev/null
@@ -1,192 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#include <canvas/debug.hxx>
-
-#ifndef INCLUDED_RTL_MATH_HXX
-#include <rtl/math.hxx>
-#endif
-#ifndef _BGFX_NUMERIC_FTOOLS_HXX
-#include <basegfx/numeric/ftools.hxx>
-#endif
-
-#ifndef _SV_METRIC_HXX
-#include <vcl/metric.hxx>
-#endif
-
-#include "cairo_outdevprovider.hxx"
-#include "cairo_canvasfont.hxx"
-#include "cairo_textlayout.hxx"
-
-using namespace ::com::sun::star;
-using namespace ::cairo;
-
-namespace cairocanvas
-{
- CanvasFont::CanvasFont( const rendering::FontRequest& rFontRequest,
- const uno::Sequence< beans::PropertyValue >& rExtraFontProperties,
- const geometry::Matrix2D& rFontMatrix,
- Cairo* pCairo) :
- CanvasFont_Base( m_aMutex ),
- maFont( Font( rFontRequest.FontDescription.FamilyName,
- rFontRequest.FontDescription.StyleName,
- Size( 0, ::basegfx::fround(rFontRequest.CellSize) ) ) ),
- maFontRequest( rFontRequest ),
- mpCairo( pCairo )
- {
- maFont->SetAlign( ALIGN_BASELINE );
- maFont->SetCharSet( (rFontRequest.FontDescription.IsSymbolFont==com::sun::star::util::TriState_YES) ? RTL_TEXTENCODING_SYMBOL : RTL_TEXTENCODING_UNICODE );
- maFont->SetVertical( (rFontRequest.FontDescription.IsVertical==com::sun::star::util::TriState_YES) ? TRUE : FALSE );
-
- // TODO(F2): improve panose->vclenum conversion
- maFont->SetWeight( static_cast<FontWeight>(rFontRequest.FontDescription.FontDescription.Weight) );
- maFont->SetItalic( (rFontRequest.FontDescription.FontDescription.Letterform<=8) ? ITALIC_NONE : ITALIC_NORMAL );
-
- // adjust to stretched font
-// if( !::rtl::math::approxEqual( rFontMatrix.m00, rFontMatrix.m11) )
-// {
-// const OutputDevice& rOutDev( mpRefDevice->getOutDev() );
-// const Size aSize = rOutDev.GetFontMetric( *maFont ).GetSize();
-
-// const double fDividend( rFontMatrix.m10 + rFontMatrix.m11 );
-// double fStretch = (rFontMatrix.m00 + rFontMatrix.m01);
-
-// if( !::basegfx::fTools::equalZero( fDividend) )
-// fStretch /= fDividend;
-
-// const long nNewWidth = ::basegfx::fround( aSize.Width() * fStretch );
-
-// maFont->SetWidth( nNewWidth );
-// }
- }
-
- CanvasFont::~CanvasFont()
- {
- }
-
- void SAL_CALL CanvasFont::disposing()
- {
- tools::LocalGuard aGuard;
- }
-
- uno::Reference< rendering::XTextLayout > SAL_CALL CanvasFont::createTextLayout( const rendering::StringContext& aText, sal_Int8 nDirection, sal_Int64 nRandomSeed ) throw (uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- return new TextLayout( aText, nDirection, nRandomSeed, ImplRef( this ), mpCairo );
- }
-
- rendering::FontRequest SAL_CALL CanvasFont::getFontRequest( ) throw (uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- return maFontRequest;
- }
-
- rendering::FontMetrics SAL_CALL CanvasFont::getFontMetrics( ) throw (uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- // TODO(F1)
- return rendering::FontMetrics();
- }
-
- uno::Sequence< double > SAL_CALL CanvasFont::getAvailableSizes( ) throw (uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- // TODO(F1)
- return uno::Sequence< double >();
- }
-
- uno::Sequence< beans::PropertyValue > SAL_CALL CanvasFont::getExtraFontProperties( ) throw (uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- // TODO(F1)
- return uno::Sequence< beans::PropertyValue >();
- }
-
-#define SERVICE_NAME "com.sun.star.rendering.CanvasFont"
-
- ::rtl::OUString SAL_CALL CanvasFont::getImplementationName() throw( uno::RuntimeException )
- {
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( CANVASFONT_IMPLEMENTATION_NAME ) );
- }
-
- sal_Bool SAL_CALL CanvasFont::supportsService( const ::rtl::OUString& ServiceName ) throw( uno::RuntimeException )
- {
- return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
- }
-
- uno::Sequence< ::rtl::OUString > SAL_CALL CanvasFont::getSupportedServiceNames() throw( uno::RuntimeException )
- {
- uno::Sequence< ::rtl::OUString > aRet(1);
- aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
-
- return aRet;
- }
-
- ::Font CanvasFont::getVCLFont() const
- {
- return *maFont;
- }
-}
diff --git a/scratch/canvas-cairo/cairo_canvasfont.hxx b/scratch/canvas-cairo/cairo_canvasfont.hxx
deleted file mode 100644
index 38d3926d2..000000000
--- a/scratch/canvas-cairo/cairo_canvasfont.hxx
+++ /dev/null
@@ -1,149 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#ifndef _CANVASFONT_HXX
-#define _CANVASFONT_HXX
-
-#ifndef _COMPHELPER_IMPLEMENTATIONREFERENCE_HXX
-#include <comphelper/implementationreference.hxx>
-#endif
-
-#ifndef _CPPUHELPER_COMPBASE2_HXX_
-#include <cppuhelper/compbase2.hxx>
-#endif
-#ifndef _COMPHELPER_BROADCASTHELPER_HXX_
-#include <comphelper/broadcasthelper.hxx>
-#endif
-
-#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#endif
-
-#ifndef _COM_SUN_STAR_RENDERING_XCANVASFONT_HPP_
-#include <com/sun/star/rendering/XCanvasFont.hpp>
-#endif
-
-#ifndef _SV_FONT_HXX
-#include <vcl/font.hxx>
-#endif
-
-#include <canvas/vclwrapper.hxx>
-
-#include "cairo_cairo.hxx"
-#include "cairo_canvashelper.hxx"
-#include "cairo_impltools.hxx"
-
-
-#define CANVASFONT_IMPLEMENTATION_NAME "CairoCanvas::CanvasFont"
-
-/* Definition of CanvasFont class */
-
-namespace cairocanvas
-{
- typedef ::cppu::WeakComponentImplHelper2< ::com::sun::star::rendering::XCanvasFont,
- ::com::sun::star::lang::XServiceInfo > CanvasFont_Base;
-
- class CanvasFont : public ::comphelper::OBaseMutex, public CanvasFont_Base
- {
- public:
- typedef ::comphelper::ImplementationReference<
- CanvasFont,
- ::com::sun::star::rendering::XCanvasFont > ImplRef;
-
- CanvasFont( const ::com::sun::star::rendering::FontRequest& fontRequest,
- const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& extraFontProperties,
- const ::com::sun::star::geometry::Matrix2D& rFontMatrix,
- ::cairo::Cairo* pCairo );
-
- /// Dispose all internal references
- virtual void SAL_CALL disposing();
-
- // XCanvasFont
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XTextLayout > SAL_CALL createTextLayout( const ::com::sun::star::rendering::StringContext& aText, sal_Int8 nDirection, sal_Int64 nRandomSeed ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::rendering::FontRequest SAL_CALL getFontRequest( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::rendering::FontMetrics SAL_CALL getFontMetrics( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< double > SAL_CALL getAvailableSizes( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getExtraFontProperties( ) throw (::com::sun::star::uno::RuntimeException);
-
- // XServiceInfo
- virtual ::rtl::OUString SAL_CALL getImplementationName() throw( ::com::sun::star::uno::RuntimeException );
- virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw( ::com::sun::star::uno::RuntimeException );
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw( ::com::sun::star::uno::RuntimeException );
-
- ::Font getVCLFont() const;
-
- protected:
- ~CanvasFont(); // we're a ref-counted UNO class. _We_ destroy ourselves.
-
- private:
- // default: disabled copy/assignment
- CanvasFont(const CanvasFont&);
- CanvasFont& operator=( const CanvasFont& );
-
- ::canvas::vcltools::VCLObject<Font> maFont;
- ::com::sun::star::rendering::FontRequest maFontRequest;
-
- ::cairo::Cairo* mpCairo;
- };
-
-}
-
-#endif /* _CANVASFONT_HXX */
diff --git a/scratch/canvas-cairo/cairo_canvashelper.cxx b/scratch/canvas-cairo/cairo_canvashelper.cxx
deleted file mode 100644
index e88c3757b..000000000
--- a/scratch/canvas-cairo/cairo_canvashelper.cxx
+++ /dev/null
@@ -1,1188 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#include <canvas/debug.hxx>
-
-#ifndef INCLUDED_RTL_MATH_HXX
-#include <rtl/math.hxx>
-#endif
-
-#ifndef _COM_SUN_STAR_RENDERING_TEXTDIRECTION_HPP__
-#include <com/sun/star/rendering/TextDirection.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_TEXTURINGMODE_HPP_
-#include <com/sun/star/rendering/TexturingMode.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_PATHCAPTYPE_HPP_
-#include <com/sun/star/rendering/PathCapType.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_PATHJOINTYPE_HPP_
-#include <com/sun/star/rendering/PathJoinType.hpp>
-#endif
-
-#ifndef _TL_POLY_HXX
-#include <tools/poly.hxx>
-#endif
-#ifndef _SV_WINDOW_HXX
-#include <vcl/window.hxx>
-#endif
-#ifndef _SV_BITMAPEX_HXX
-#include <vcl/bitmapex.hxx>
-#endif
-#ifndef _SV_BMPACC_HXX
-#include <vcl/bmpacc.hxx>
-#endif
-#ifndef _VCL_CANVASTOOLS_HXX
-#include <vcl/canvastools.hxx>
-#endif
-
-#ifndef _BGFX_MATRIX_B2DHOMMATRIX_HXX
-#include <basegfx/matrix/b2dhommatrix.hxx>
-#endif
-#ifndef _BGFX_RANGE_B2DRECTANGLE_HXX
-#include <basegfx/range/b2drectangle.hxx>
-#endif
-#ifndef _BGFX_POINT_B2DPOINT_HXX
-#include <basegfx/point/b2dpoint.hxx>
-#endif
-#ifndef _BGFX_VECTOR_B2DSIZE_HXX
-#include <basegfx/vector/b2dsize.hxx>
-#endif
-#ifndef _BGFX_POLYGON_B2DPOLYGON_HXX
-#include <basegfx/polygon/b2dpolygon.hxx>
-#endif
-#ifndef _BGFX_POLYGON_B2DPOLYGONTOOLS_HXX
-#include <basegfx/polygon/b2dpolygontools.hxx>
-#endif
-#ifndef _BGFX_POLYGON_B2DPOLYPOLYGONTOOLS_HXX
-#include <basegfx/polygon/b2dpolypolygontools.hxx>
-#endif
-#ifndef _BGFX_POLYGON_B2DLINEGEOMETRY_HXX
-#include <basegfx/polygon/b2dlinegeometry.hxx>
-#endif
-#ifndef _BGFX_TOOLS_CANVASTOOLS_HXX
-#include <basegfx/tools/canvastools.hxx>
-#endif
-#ifndef _BGFX_NUMERIC_FTOOLS_HXX
-#include <basegfx/numeric/ftools.hxx>
-#endif
-
-#include <utility>
-
-#include <comphelper/sequence.hxx>
-#include <canvas/canvastools.hxx>
-
-#include "cairo_textlayout.hxx"
-#include "cairo_parametricpolypolygon.hxx"
-#include "cairo_canvashelper.hxx"
-#include "cairo_canvasbitmap.hxx"
-#include "cairo_impltools.hxx"
-#include "cairo_canvasfont.hxx"
-#include "cairo_linepolypolygon.hxx"
-
-using namespace ::com::sun::star;
-using namespace ::cairo;
-
-namespace cairocanvas
-{
- namespace
- {
- ::basegfx::tools::B2DLineJoin b2DJoineFromJoin( sal_Int8 nJoinType )
- {
- switch( nJoinType )
- {
- case rendering::PathJoinType::NONE:
- return ::basegfx::tools::B2DLINEJOIN_NONE;
-
- case rendering::PathJoinType::MITER:
- return ::basegfx::tools::B2DLINEJOIN_MITER;
-
- case rendering::PathJoinType::ROUND:
- return ::basegfx::tools::B2DLINEJOIN_ROUND;
-
- case rendering::PathJoinType::BEVEL:
- return ::basegfx::tools::B2DLINEJOIN_BEVEL;
-
- default:
- ENSURE_AND_THROW( false,
- "b2DJoineFromJoin(): Unexpected join type" );
- }
-
- return ::basegfx::tools::B2DLINEJOIN_NONE;
- }
- }
-
- CanvasHelper::CanvasHelper() :
- mxDevice(),
- mpCairo( NULL ),
- mpTextures( NULL ),
- mp2ndOutDev()
- {
- }
-
- void CanvasHelper::disposing()
- {
- OSL_TRACE("canvas helper disposing %p\n", this);
- mxDevice.reset();
- mp2ndOutDev.reset();
- if( mpCairo )
- cairo_destroy( mpCairo );
- mpCairo = NULL;
- }
-
- void CanvasHelper::setGraphicDevice( const WindowGraphicDevice::ImplRef& rDevice )
- {
- mxDevice = rDevice;
- }
-
- void CanvasHelper::setCairo( Cairo* pCairo )
- {
- OSL_TRACE("set canvas helper %p Cairo to %p", this, pCairo);
- if( pCairo != mpCairo ) {
- if( pCairo )
- cairo_reference( pCairo );
- if( mpCairo )
- cairo_destroy( mpCairo );
- mpCairo = pCairo;
- }
- }
-
- void CanvasHelper::setBackgroundOutDev( const OutDevProviderSharedPtr& rOutDev )
- {
- mp2ndOutDev = rOutDev;
- }
-
- void CanvasHelper::drawPoint( const rendering::XCanvas& rCanvas,
- const geometry::RealPoint2D& aPoint,
- const rendering::ViewState& viewState,
- const rendering::RenderState& renderState )
- {
- // rodo TODO
-// // are we disposed?
-// if( mpCairo )
-// {
-// // nope, render
-// setupOutDevState( viewState, renderState, LINE_COLOR );
-
-// const Point aOutPoint( tools::mapRealPoint2D( aPoint,
-// viewState, renderState ) );
-// // TODO(F1): alpha
-// mpOutDev->getOutDev().DrawPixel( aOutPoint );
-
-// if( mp2ndOutDev.get() )
-// mp2ndOutDev->getOutDev().DrawPixel( aOutPoint );
-// }
- }
-
- void CanvasHelper::useStates( const rendering::ViewState& viewState,
- const rendering::RenderState& renderState,
- bool setColor )
- {
- Matrix aViewMatrix;
- Matrix aRenderMatrix;
- Matrix aCombinedMatrix;
-
- cairo_matrix_init( &aViewMatrix,
- viewState.AffineTransform.m00, viewState.AffineTransform.m10, viewState.AffineTransform.m01,
- viewState.AffineTransform.m11, viewState.AffineTransform.m02, viewState.AffineTransform.m12);
- cairo_matrix_init( &aRenderMatrix,
- renderState.AffineTransform.m00, renderState.AffineTransform.m10, renderState.AffineTransform.m01,
- renderState.AffineTransform.m11, renderState.AffineTransform.m02, renderState.AffineTransform.m12);
- cairo_matrix_multiply( &aCombinedMatrix, &aRenderMatrix, &aViewMatrix);
-
- if( viewState.Clip.is() ) {
- OSL_TRACE ("view clip\n");
-
- aViewMatrix.x0 = round( aViewMatrix.x0 );
- aViewMatrix.y0 = round( aViewMatrix.y0 );
- cairo_set_matrix( mpCairo, &aViewMatrix );
- drawPolyPolygonPath( viewState.Clip, Clip );
- }
-
- aCombinedMatrix.x0 = round( aCombinedMatrix.x0 );
- aCombinedMatrix.y0 = round( aCombinedMatrix.y0 );
- cairo_set_matrix( mpCairo, &aCombinedMatrix );
-
- if( renderState.Clip.is() ) {
- OSL_TRACE ("render clip BEGIN\n");
-
- drawPolyPolygonPath( renderState.Clip, Clip );
- OSL_TRACE ("render clip END\n");
- }
-
- if( setColor ) {
- if( renderState.DeviceColor.getLength() > 3 )
- cairo_set_source_rgba( mpCairo,
- renderState.DeviceColor [0],
- renderState.DeviceColor [1],
- renderState.DeviceColor [2],
- renderState.DeviceColor [3] );
- else if (renderState.DeviceColor.getLength() == 3)
- cairo_set_source_rgb( mpCairo,
- renderState.DeviceColor [0],
- renderState.DeviceColor [1],
- renderState.DeviceColor [2] );
- }
- }
-
- void CanvasHelper::drawLine( const rendering::XCanvas& rCanvas,
- const geometry::RealPoint2D& aStartRealPoint2D,
- const geometry::RealPoint2D& aEndRealPoint2D,
- const rendering::ViewState& viewState,
- const rendering::RenderState& renderState )
- {
- if( mpCairo ) {
- cairo_save( mpCairo );
-
- cairo_set_line_width( mpCairo, 1 );
-
- useStates( viewState, renderState, true );
-
- cairo_move_to( mpCairo, aStartRealPoint2D.X, aStartRealPoint2D.Y );
- cairo_line_to( mpCairo, aEndRealPoint2D.X, aEndRealPoint2D.Y );
- cairo_stroke( mpCairo );
-
- cairo_restore( mpCairo );
- } else
- OSL_TRACE ("CanvasHelper called after it was disposed");
- }
-
- void CanvasHelper::drawBezier( const rendering::XCanvas& rCanvas,
- const geometry::RealBezierSegment2D& aBezierSegment,
- const geometry::RealPoint2D& _aEndPoint,
- const rendering::ViewState& viewState,
- const rendering::RenderState& renderState )
- {
- if( mpCairo ) {
- cairo_save( mpCairo );
-
- cairo_set_line_width( mpCairo, 1 );
-
- useStates( viewState, renderState, true );
- cairo_move_to( mpCairo, aBezierSegment.Px, aBezierSegment.Py );
- cairo_curve_to( mpCairo, aBezierSegment.C1x, aBezierSegment.C1y, aBezierSegment.C2x, aBezierSegment.C2y, _aEndPoint.X, _aEndPoint.Y );
- cairo_stroke( mpCairo );
-
- cairo_restore( mpCairo );
- } else
- OSL_TRACE ("CanvasHelper called after it was disposed");
- }
-
- void CanvasHelper::doOperation( Operation aOperation, Cairo* pCairo, sal_uInt32 nPolygonIndex ) const
- {
- switch( aOperation ) {
- case Fill:
- if( mpTextures ) {
- ::com::sun::star::rendering::Texture aTexture ( (*mpTextures)[nPolygonIndex] );
- if( aTexture.Bitmap.is() ) {
- unsigned char* data;
- bool bHasAlpha;
- Surface* pSurface = tools::surfaceFromXBitmap( (*mpTextures)[nPolygonIndex].Bitmap, mxDevice, data, bHasAlpha );
-
- if( pSurface ) {
- cairo_pattern_t* pPattern;
-
- cairo_save( pCairo );
-
- ::com::sun::star::geometry::AffineMatrix2D aTransform( aTexture.AffineTransform );
- Matrix aScaleMatrix, aTextureMatrix, aScaledTextureMatrix, aOrigMatrix, aNewMatrix;
-
- cairo_matrix_init( &aTextureMatrix,
- aTransform.m00, aTransform.m10, aTransform.m01,
- aTransform.m11, aTransform.m02, aTransform.m12);
-
- geometry::IntegerSize2D aSize = aTexture.Bitmap->getSize();
-
- cairo_matrix_init_scale( &aScaleMatrix, 1.0/aSize.Width, 1.0/aSize.Height );
- cairo_matrix_multiply( &aScaledTextureMatrix, &aTextureMatrix, &aScaleMatrix );
- cairo_matrix_invert( &aScaledTextureMatrix );
-
-#if 0
- OSL_TRACE("slow workaround");
- // workaround for X/glitz and/or cairo bug
- // we create big enough temporary surface, copy texture bitmap there and use it for the pattern
- // it only happens on enlargening matrices with REPEAT mode enabled
- Surface* pTmpSurface = mxDevice->getSimilarSurface();
- Cairo* pTmpCairo = cairo_create( pTmpSurface );
- cairo_set_source_surface( pTmpCairo, pSurface, 0, 0 );
- cairo_paint( pTmpCairo );
- pPattern = cairo_pattern_create_for_surface( pTmpSurface );
-#else
-
- // we don't care about repeat mode yet, so the workaround is disabled for now
- pPattern = cairo_pattern_create_for_surface( pSurface );
-#endif
- if( aTexture.RepeatModeX == rendering::TexturingMode::REPEAT &&
- aTexture.RepeatModeY == rendering::TexturingMode::REPEAT )
- cairo_pattern_set_extend( pPattern, CAIRO_EXTEND_REPEAT );
- aScaledTextureMatrix.x0 = round( aScaledTextureMatrix.x0 );
- aScaledTextureMatrix.y0 = round( aScaledTextureMatrix.y0 );
- cairo_pattern_set_matrix( pPattern, &aScaledTextureMatrix );
-
- cairo_set_source( pCairo, pPattern );
- if( !bHasAlpha )
- cairo_set_operator( pCairo, CAIRO_OPERATOR_SOURCE );
- cairo_fill( pCairo );
-
- cairo_restore( pCairo );
-
- cairo_pattern_destroy( pPattern );
- cairo_surface_destroy( pSurface );
-
-#if 0
- cairo_destroy( pTmpCairo );
- cairo_surface_destroy( pTmpSurface );
-#endif
- }
-
- if( data )
- free( data );
- } else if( aTexture.Gradient.is() ) {
- uno::Reference< lang::XServiceInfo > xRef( aTexture.Gradient, uno::UNO_QUERY );
-
- OSL_TRACE( "gradient fill\n" );
- if( xRef.is() &&
- xRef->getImplementationName().equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( PARAMETRICPOLYPOLYGON_IMPLEMENTATION_NAME ) ) ) ) {
- // TODO(Q1): Maybe use dynamic_cast here
-
- // TODO(E1): Return value
- // TODO(F1): FillRule
- OSL_TRACE( "known implementation\n" );
-
- ParametricPolyPolygon* pPolyImpl = static_cast<ParametricPolyPolygon*>( aTexture.Gradient.get() );
- ::com::sun::star::geometry::AffineMatrix2D aTransform( aTexture.AffineTransform );
- Matrix aTextureMatrix;
-
- cairo_matrix_init( &aTextureMatrix,
- aTransform.m00, aTransform.m10, aTransform.m01,
- aTransform.m11, aTransform.m02, aTransform.m12);
- Pattern* pPattern = pPolyImpl->getPattern( aTextureMatrix );
-
- if( pPattern ) {
- OSL_TRACE( "filling with pattern\n" );
-
- cairo_save( pCairo );
-
- cairo_set_source( pCairo, pPattern );
- cairo_fill( pCairo );
- cairo_restore( pCairo );
-
- cairo_pattern_destroy( pPattern );
- }
- }
- }
- } else
- cairo_fill( pCairo );
- OSL_TRACE("fill\n");
- break;
- case Stroke:
- cairo_stroke( pCairo );
- OSL_TRACE("stroke\n");
- break;
- case Clip:
- cairo_clip( pCairo );
- OSL_TRACE("clip\n");
- break;
- }
- }
-
- static void clipNULL( Cairo *pCairo )
- {
- OSL_TRACE("clipNULL\n");
- Matrix aOrigMatrix, aIdentityMatrix;
-
- /* we set identity matrix here to overcome bug in cairo 0.9.2
- where XCreatePixmap is called with zero width and height.
-
- it also reaches faster path in cairo clipping code.
- */
- cairo_matrix_init_identity( &aIdentityMatrix );
- cairo_get_matrix( pCairo, &aOrigMatrix );
- cairo_set_matrix( pCairo, &aIdentityMatrix );
-
- cairo_reset_clip( pCairo );
- cairo_rectangle( pCairo, 0, 0, 1, 1 );
- cairo_clip( pCairo );
- cairo_rectangle( pCairo, 2, 0, 1, 1 );
- cairo_clip( pCairo );
-
- /* restore the original matrix */
- cairo_set_matrix( pCairo, &aOrigMatrix );
- }
-
- void CanvasHelper::drawPolyPolygonImplementation( ::basegfx::B2DPolyPolygon aPolyPolygon, Operation aOperation, Cairo* pCairo ) const
- {
- bool bOpToDo = false;
- Matrix aOrigMatrix, aIdentityMatrix;
- double nX, nY, nBX, nBY, nPX, nPY;
-
- cairo_get_matrix( pCairo, &aOrigMatrix );
- cairo_matrix_init_identity( &aIdentityMatrix );
- cairo_set_matrix( pCairo, &aIdentityMatrix );
-
- for( sal_uInt32 nPolygonIndex = 0; nPolygonIndex < aPolyPolygon.count(); nPolygonIndex++ ) {
- ::basegfx::B2DPolygon aPolygon = aPolyPolygon.getB2DPolygon( nPolygonIndex );
-
- if( aPolygon.count() > 1) {
- bool bIsBezier = aPolygon.areControlPointsUsed();
- ::basegfx::B2DPoint aA, aB, aP;
-
- aP = aPolygon.getB2DPoint( 0 );
- nX = aP.getX();
- nY = aP.getY();
- cairo_matrix_transform_point( &aOrigMatrix, &nX, &nY );
- if( bIsBezier )
- cairo_move_to( pCairo, nX, nY );
- else
- cairo_move_to( pCairo, round(nX), round(nY) );
- OSL_TRACE( "move to %f,%f\n", round(nX), round(nY) );
-
- if( bIsBezier ) {
- aA = aPolygon.getControlPointA( 0 );
- aB = aPolygon.getControlPointB( 0 );
- }
-
- for( sal_uInt32 j = 1; j < aPolygon.count(); j++ ) {
- aP = aPolygon.getB2DPoint( j );
-
- nX = aP.getX();
- nY = aP.getY();
- cairo_matrix_transform_point( &aOrigMatrix, &nX, &nY );
-
- if( bIsBezier ) {
- nBX = aB.getX();
- nBY = aB.getY();
- nPX = aP.getX();
- nPY = aP.getY();
- cairo_matrix_transform_point( &aOrigMatrix, &nBX, &nBY );
- cairo_matrix_transform_point( &aOrigMatrix, &nPX, &nPY );
- cairo_curve_to( pCairo, nX, nY, nBX, nBY, nPX, nPY );
-
- aA = aPolygon.getControlPointA( j );
- aB = aPolygon.getControlPointB( j );
- } else {
- cairo_line_to( pCairo, round(nX), round(nY) );
- OSL_TRACE( "line to %f,%f\n", round(nX), round(nY) );
- }
- bOpToDo = true;
- }
-
- if( aPolygon.isClosed() )
- cairo_close_path( pCairo );
-
- if( aOperation == Fill && mpTextures )
- doOperation( aOperation, pCairo, nPolygonIndex );
- } else {
- OSL_TRACE( "empty polygon for op: %d\n\n", aOperation );
- if( aOperation == Clip ) {
- clipNULL( pCairo );
-
- return;
- }
- }
- }
- if( bOpToDo && ( aOperation != Fill || !mpTextures ) )
- doOperation( aOperation, pCairo );
-
- cairo_set_matrix( pCairo, &aOrigMatrix );
-
-// fixme, spec says even clipping polypolygon with zero polygons means NULL clip, but it breaks animations with sprites
-// if( aPolyPolygon.count() == 0 && aOperation == Clip )
-// clipNULL( pCairo );
- }
-
- void CanvasHelper::drawPolyPolygonFallback( const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon, Operation aOperation, Cairo* pCairo ) const
- {
- const sal_Int32 nPolys( xPolyPolygon->getNumberOfPolygons() );
-
- uno::Reference< rendering::XLinePolyPolygon2D > xLinePoly( xPolyPolygon, uno::UNO_QUERY );
- if( xLinePoly.is() ) {
-
- bool bOpToDo = false;
- uno::Sequence< uno::Sequence< ::com::sun::star::geometry::RealPoint2D > > aPoints = xLinePoly->getPoints( 0, nPolys, 0, -1 );
-
- for( sal_uInt32 nPolygonIndex = 0; nPolygonIndex < nPolys; nPolygonIndex++ ) {
-
- if( aPoints[nPolygonIndex].getLength() > 1) {
- cairo_move_to( pCairo, aPoints[nPolygonIndex][0].X, aPoints[nPolygonIndex][0].Y );
-
- for( sal_Int32 j = 0; j < aPoints[nPolygonIndex].getLength(); j ++ ) {
- cairo_line_to( pCairo, aPoints[nPolygonIndex][j].X, aPoints[nPolygonIndex][j].Y );
- bOpToDo = true;
- }
-
- if( xPolyPolygon->isClosed( nPolygonIndex ) )
- cairo_close_path( pCairo );
-
- if( aOperation == Fill && mpTextures )
- doOperation( aOperation, pCairo, nPolygonIndex );
- } else {
- OSL_TRACE( "empty polygon for op: %d\n\n", aOperation );
- if( aOperation == Clip ) {
- clipNULL( pCairo );
-
- return;
- }
- }
- }
- if( bOpToDo && ( aOperation != Fill || !mpTextures ) )
- doOperation( aOperation, pCairo );
-
-// fixme, spec says even clipping polypolygon with zero polygons means NULL clip, but it breaks animations with sprites
-// if( nPolys == 0 && aOperation == Clip )
-// clipNULL( pCairo );
- } else {
-
- uno::Reference< rendering::XBezierPolyPolygon2D > xBezierPoly( xPolyPolygon, uno::UNO_QUERY );
- if( xBezierPoly.is() ) {
-
- bool bOpToDo = false;
- uno::Sequence< uno::Sequence< ::com::sun::star::geometry::RealBezierSegment2D > > aSegments = xBezierPoly->getBezierSegments( 0, nPolys, 0, -1 );
- double nC1x, nC1y, nC2x, nC2y;
-
- for( sal_uInt32 nPolygonIndex = 0; nPolygonIndex < nPolys; nPolygonIndex++ ) {
-
- if( aSegments[nPolygonIndex].getLength() > 1 ) {
- cairo_move_to( pCairo, aSegments[nPolygonIndex][0].Px, aSegments[nPolygonIndex][0].Py );
-
- for( sal_Int32 j = 1; j < aSegments[nPolygonIndex].getLength(); j ++ ) {
- cairo_curve_to( pCairo,
- aSegments[nPolygonIndex][j - 1].C1x, aSegments[nPolygonIndex][j - 1].C1y,
- aSegments[nPolygonIndex][j - 1].C2x, aSegments[nPolygonIndex][j - 1].C2y,
- aSegments[nPolygonIndex][j].Px, aSegments[nPolygonIndex][j].Py );
- bOpToDo = true;
- }
- if( xPolyPolygon->isClosed( nPolygonIndex ) )
- cairo_close_path( pCairo );
-
- if( aOperation == Fill && mpTextures )
- doOperation( aOperation, pCairo, nPolygonIndex );
- } else {
- OSL_TRACE( "empty polygon for op: %d\n\n", aOperation );
- if( aOperation == Clip ) {
- clipNULL( pCairo );
-
- return;
- }
- }
- }
- if( bOpToDo && ( aOperation != Fill || !mpTextures ) )
- doOperation( aOperation, pCairo );
-
-// fixme, spec says even clipping polypolygon with zero polygons means NULL clip, but it breaks animations with sprites
-// if( nPolys == 0 && aOperation == Clip )
-// clipNULL( pCairo );
- }
- }
- }
-
- void CanvasHelper::drawPolyPolygonPath( const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon, Operation aOperation, Cairo* pCairo ) const
- {
- LinePolyPolygon* pPolyImpl = dynamic_cast< LinePolyPolygon* >( xPolyPolygon.get() );
-
- if( !pCairo )
- pCairo = mpCairo;
-
- if( pPolyImpl )
- drawPolyPolygonImplementation( pPolyImpl->getPolyPolygon(), aOperation, pCairo );
- else
- drawPolyPolygonFallback( xPolyPolygon, aOperation, pCairo );
- }
-
- uno::Reference< rendering::XCachedPrimitive > CanvasHelper::drawPolyPolygon( const rendering::XCanvas& rCanvas,
- const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
- const rendering::ViewState& viewState,
- const rendering::RenderState& renderState )
- {
- //return uno::Reference< rendering::XCachedPrimitive >(NULL);
-
- #ifdef CAIRO_CANVAS_PERF_TRACE
- struct timespec aTimer;
- mxDevice->startPerfTrace( &aTimer );
- #endif
-
- if( mpCairo ) {
- cairo_save( mpCairo );
-
- cairo_set_line_width( mpCairo, 1 );
-
- useStates( viewState, renderState, true );
- drawPolyPolygonPath( xPolyPolygon, Stroke );
-
- cairo_restore( mpCairo );
- } else
- OSL_TRACE ("CanvasHelper called after it was disposed");
-
- #ifdef CAIRO_CANVAS_PERF_TRACE
- mxDevice->stopPerfTrace( &aTimer, "drawPolyPolygon" );
- #endif
-
- // TODO(P1): Provide caching here.
- return uno::Reference< rendering::XCachedPrimitive >(NULL);
- }
-
- uno::Reference< rendering::XCachedPrimitive > CanvasHelper::strokePolyPolygon( const rendering::XCanvas& rCanvas,
- const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
- const rendering::ViewState& viewState,
- const rendering::RenderState& renderState,
- const rendering::StrokeAttributes& strokeAttributes )
- {
- #ifdef CAIRO_CANVAS_PERF_TRACE
- struct timespec aTimer;
- mxDevice->startPerfTrace( &aTimer );
- #endif
-
- if( mpCairo ) {
- cairo_save( mpCairo );
-
- useStates( viewState, renderState, true );
-
- cairo_set_line_width( mpCairo, strokeAttributes.StrokeWidth );
- cairo_set_miter_limit( mpCairo, strokeAttributes.MiterLimit );
-
- // FIXME: cairo doesn't handle end cap so far (rodo)
- switch( strokeAttributes.StartCapType ) {
- case rendering::PathCapType::BUTT:
- cairo_set_line_cap( mpCairo, CAIRO_LINE_CAP_BUTT );
- break;
- case rendering::PathCapType::ROUND:
- cairo_set_line_cap( mpCairo, CAIRO_LINE_CAP_ROUND );
- break;
- case rendering::PathCapType::SQUARE:
- cairo_set_line_cap( mpCairo, CAIRO_LINE_CAP_SQUARE );
- break;
- }
-
- switch( strokeAttributes.JoinType ) {
- // cairo doesn't have join type NONE so we use MITTER as it's pretty close
- case rendering::PathJoinType::NONE:
- case rendering::PathJoinType::MITER:
- cairo_set_line_join( mpCairo, CAIRO_LINE_JOIN_MITER );
- break;
- case rendering::PathJoinType::ROUND:
- cairo_set_line_join( mpCairo, CAIRO_LINE_JOIN_ROUND );
- break;
- case rendering::PathJoinType::BEVEL:
- cairo_set_line_join( mpCairo, CAIRO_LINE_JOIN_BEVEL );
- break;
- }
-
- if( strokeAttributes.DashArray.getLength() > 0 ) {
- double* pDashArray = new double[ strokeAttributes.DashArray.getLength() ];
- for( sal_Int32 i=0; i<strokeAttributes.DashArray.getLength(); i++ )
- pDashArray[i]=strokeAttributes.DashArray[i];
- cairo_set_dash( mpCairo, pDashArray, strokeAttributes.DashArray.getLength(), 0 );
- delete[] pDashArray;
- }
-
- // TODO(rodo) use LineArray of strokeAttributes
-
- drawPolyPolygonPath( xPolyPolygon, Stroke );
-
- cairo_restore( mpCairo );
- } else
- OSL_TRACE ("CanvasHelper called after it was disposed");
-
- #ifdef CAIRO_CANVAS_PERF_TRACE
- mxDevice->stopPerfTrace( &aTimer, "strokePolyPolygon" );
- #endif
-
- // TODO(P1): Provide caching here.
- return uno::Reference< rendering::XCachedPrimitive >(NULL);
- }
-
- uno::Reference< rendering::XCachedPrimitive > CanvasHelper::strokeTexturedPolyPolygon( const rendering::XCanvas& rCanvas,
- const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
- const rendering::ViewState& viewState,
- const rendering::RenderState& renderState,
- const uno::Sequence< rendering::Texture >& textures,
- const rendering::StrokeAttributes& strokeAttributes )
- {
- return uno::Reference< rendering::XCachedPrimitive >(NULL);
- }
-
- uno::Reference< rendering::XCachedPrimitive > CanvasHelper::strokeTextureMappedPolyPolygon( const rendering::XCanvas& rCanvas,
- const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
- const rendering::ViewState& viewState,
- const rendering::RenderState& renderState,
- const uno::Sequence< rendering::Texture >& textures,
- const uno::Reference< geometry::XMapping2D >& xMapping,
- const rendering::StrokeAttributes& strokeAttributes )
- {
- return uno::Reference< rendering::XCachedPrimitive >(NULL);
- }
-
- uno::Reference< rendering::XPolyPolygon2D > CanvasHelper::queryStrokeShapes( const rendering::XCanvas& rCanvas,
- const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
- const rendering::ViewState& viewState,
- const rendering::RenderState& renderState,
- const rendering::StrokeAttributes& strokeAttributes )
- {
- return uno::Reference< rendering::XPolyPolygon2D >(NULL);
- }
-
- uno::Reference< rendering::XCachedPrimitive > CanvasHelper::fillPolyPolygon( const rendering::XCanvas& rCanvas,
- const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
- const rendering::ViewState& viewState,
- const rendering::RenderState& renderState )
- {
- //return uno::Reference< rendering::XCachedPrimitive >(NULL);
-
- #ifdef CAIRO_CANVAS_PERF_TRACE
- struct timespec aTimer;
- mxDevice->startPerfTrace( &aTimer );
- #endif
-
- if( mpCairo ) {
- cairo_save( mpCairo );
-
- useStates( viewState, renderState, true );
- drawPolyPolygonPath( xPolyPolygon, Fill );
-
- cairo_restore( mpCairo );
- } else
- OSL_TRACE ("CanvasHelper called after it was disposed");
-
- #ifdef CAIRO_CANVAS_PERF_TRACE
- mxDevice->stopPerfTrace( &aTimer, "fillPolyPolygon" );
- #endif
-
- // TODO(P1): Provide caching here.
- return uno::Reference< rendering::XCachedPrimitive >(NULL);
- }
-
- uno::Reference< rendering::XCachedPrimitive > CanvasHelper::fillTextureMappedPolyPolygon( const rendering::XCanvas& rCanvas,
- const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
- const rendering::ViewState& viewState,
- const rendering::RenderState& renderState,
- const uno::Sequence< rendering::Texture >& textures,
- const uno::Reference< geometry::XMapping2D >& xMapping )
- {
- return uno::Reference< rendering::XCachedPrimitive >(NULL);
- }
-
- uno::Reference< rendering::XCanvasFont > CanvasHelper::createFont( const rendering::XCanvas& rCanvas,
- const rendering::FontRequest& fontRequest,
- const uno::Sequence< beans::PropertyValue >& extraFontProperties,
- const geometry::Matrix2D& fontMatrix )
- {
- // rodo TODO
- if( mpCairo )
- {
- // TODO(F2): font properties and font matrix
- return uno::Reference< rendering::XCanvasFont >(
- new CanvasFont( fontRequest, extraFontProperties, fontMatrix, mpCairo ) );
- } else
- OSL_TRACE ("CanvasHelper called after it was disposed");
-
- return uno::Reference< rendering::XCanvasFont >();
- }
-
- uno::Sequence< rendering::FontInfo > CanvasHelper::queryAvailableFonts( const rendering::XCanvas& rCanvas,
- const rendering::FontInfo& aFilter,
- const uno::Sequence< beans::PropertyValue >& aFontProperties )
- {
- // TODO
- return uno::Sequence< rendering::FontInfo >();
- }
-
- uno::Reference< rendering::XCachedPrimitive > CanvasHelper::drawText( const rendering::XCanvas& rCanvas,
- const rendering::StringContext& text,
- const uno::Reference< rendering::XCanvasFont >& xFont,
- const rendering::ViewState& viewState,
- const rendering::RenderState& renderState,
- sal_Int8 textDirection )
- {
- #ifdef CAIRO_CANVAS_PERF_TRACE
- struct timespec aTimer;
- mxDevice->startPerfTrace( &aTimer );
- #endif
-
- if ( mpCairo ) {
- cairo_save( mpCairo );
-
- useStates( viewState, renderState, true );
-
- // fixme (rodo) - use xFont
- cairo_select_font_face( mpCairo, "Sans", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL );
- /* move to 0, 0 as cairo_show_text advances current point and current point is not restored by cairo_restore.
- before we were depending on unmodified current point which I believed was preserved by save/restore */
- cairo_move_to( mpCairo, 0, 0 );
- cairo_show_text( mpCairo, ::rtl::OUStringToOString( text.Text, RTL_TEXTENCODING_UTF8 ) );
-
- cairo_restore( mpCairo );
- } else
- OSL_TRACE ("CanvasHelper called after it was disposed");
-
- #ifdef CAIRO_CANVAS_PERF_TRACE
- mxDevice->stopPerfTrace( &aTimer, "drawText" );
- #endif
-
- return uno::Reference< rendering::XCachedPrimitive >(NULL);
- }
-
- uno::Reference< rendering::XCachedPrimitive > CanvasHelper::drawTextLayout( const rendering::XCanvas& rCanvas,
- const uno::Reference< rendering::XTextLayout >& xLayoutedText,
- const rendering::ViewState& viewState,
- const rendering::RenderState& renderState )
- {
- //return uno::Reference< rendering::XCachedPrimitive >(NULL);
-
- CHECK_AND_THROW( xLayoutedText.is(),
- "CanvasHelper::drawTextLayout(): layout is NULL");
-
- #ifdef CAIRO_CANVAS_PERF_TRACE
- struct timespec aTimer;
- mxDevice->startPerfTrace( &aTimer );
- #endif
-
- if( mpCairo ) {
- cairo_save( mpCairo );
-
- uno::Reference< lang::XServiceInfo > xRef( xLayoutedText,
- uno::UNO_QUERY );
-
- TextLayout* pTextLayout = NULL;
-
- if( xRef.is() &&
- xRef->getImplementationName().equals( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(TEXTLAYOUT_IMPLEMENTATION_NAME))) ) {
- // TODO(P2): Maybe use dynamic_cast here (saves us a queryInterface)
- pTextLayout = static_cast<TextLayout*>(xLayoutedText.get());
- } else {
- CHECK_AND_THROW( false,
- "CanvasHelper::drawTextLayout(): TextLayout not compatible with this canvas" );
- }
-
- useStates( viewState, renderState, true );
-
- pTextLayout->draw( mpCairo );
-
- cairo_restore( mpCairo );
- } else
- OSL_TRACE ("CanvasHelper called after it was disposed");
-
- #ifdef CAIRO_CANVAS_PERF_TRACE
- mxDevice->stopPerfTrace( &aTimer, "drawTextLayout" );
- #endif
-
- return uno::Reference< rendering::XCachedPrimitive >(NULL);
- }
-
- uno::Reference< rendering::XCachedPrimitive > CanvasHelper::implDrawBitmapSurface( Surface* pSurface,
- const rendering::ViewState& viewState,
- const rendering::RenderState& renderState,
- bool bModulateColors,
- bool bHasAlpha )
- {
- if( mpCairo ) {
- cairo_save( mpCairo );
-
- Size aSize = mxDevice->getSurfaceSize();
-
- cairo_rectangle( mpCairo, 0, 0, aSize.Width(), aSize.Height() );
- cairo_clip( mpCairo );
-
- useStates( viewState, renderState, true );
-
-// if( !bHasAlpha )
-// cairo_set_operator( mpCairo, CAIRO_OPERATOR_SOURCE );
-
- cairo_set_source_surface( mpCairo, pSurface, 0, 0 );
- cairo_paint( mpCairo );
- cairo_restore( mpCairo );
- } else
- OSL_TRACE ("CanvasHelper called after it was disposed");
-
- return uno::Reference< rendering::XCachedPrimitive >(NULL);
- }
-
- uno::Reference< rendering::XCachedPrimitive > CanvasHelper::drawBitmap( const rendering::XCanvas& rCanvas,
- const uno::Reference< rendering::XBitmap >& xBitmap,
- const rendering::ViewState& viewState,
- const rendering::RenderState& renderState )
- {
- #ifdef CAIRO_CANVAS_PERF_TRACE
- struct timespec aTimer;
- mxDevice->startPerfTrace( &aTimer );
- #endif
-
- uno::Reference< rendering::XCachedPrimitive > rv;
- unsigned char* data;
- bool bHasAlpha;
- Surface* pSurface = tools::surfaceFromXBitmap( xBitmap, mxDevice, data, bHasAlpha );
-
- if( pSurface ) {
- rv = implDrawBitmapSurface( pSurface, viewState, renderState, false, bHasAlpha );
-
- cairo_surface_destroy( pSurface );
-
- if( data )
- free( data );
- } else
- rv = uno::Reference< rendering::XCachedPrimitive >(NULL);
-
- #ifdef CAIRO_CANVAS_PERF_TRACE
- mxDevice->stopPerfTrace( &aTimer, "drawBitmap" );
- #endif
-
- return rv;
- }
-
- uno::Reference< rendering::XCachedPrimitive > CanvasHelper::drawBitmapModulated( const rendering::XCanvas& rCanvas,
- const uno::Reference< rendering::XBitmap >& xBitmap,
- const rendering::ViewState& viewState,
- const rendering::RenderState& renderState )
- {
- #ifdef CAIRO_CANVAS_PERF_TRACE
- struct timespec aTimer;
- mxDevice->startPerfTrace( &aTimer );
- #endif
-
- uno::Reference< rendering::XCachedPrimitive > rv;
- unsigned char* data;
- bool bHasAlpha;
- Surface* pSurface = tools::surfaceFromXBitmap( xBitmap, mxDevice, data, bHasAlpha );
-
- if( pSurface ) {
- rv = implDrawBitmapSurface( pSurface, viewState, renderState, true, bHasAlpha );
- cairo_surface_destroy( pSurface );
-
- if( data )
- free( data );
- } else
- rv = uno::Reference< rendering::XCachedPrimitive >(NULL);
-
- #ifdef CAIRO_CANVAS_PERF_TRACE
- mxDevice->stopPerfTrace( &aTimer, "drawBitmapModulated" );
- #endif
-
- return rv;
- }
-
- uno::Reference< rendering::XGraphicDevice > CanvasHelper::getDevice()
- {
- return mxDevice.get();
- }
-
- void CanvasHelper::copyRect( const rendering::XCanvas& rCanvas,
- const uno::Reference< rendering::XBitmapCanvas >& sourceCanvas,
- const geometry::RealRectangle2D& sourceRect,
- const rendering::ViewState& sourceViewState,
- const rendering::RenderState& sourceRenderState,
- const geometry::RealRectangle2D& destRect,
- const rendering::ViewState& destViewState,
- const rendering::RenderState& destRenderState )
- {
- // TODO(F1)
- }
-
- geometry::IntegerSize2D CanvasHelper::getSize()
- {
- if( !mxDevice.get() )
- return geometry::IntegerSize2D(); // we're disposed
-
- Size aSize = mxDevice->getSurfaceSize();
-
- return geometry::IntegerSize2D( aSize.Width(), aSize.Height() );
- }
-
- uno::Reference< rendering::XBitmap > CanvasHelper::getScaledBitmap( const geometry::RealSize2D& newSize,
- sal_Bool beFast )
- {
- #ifdef CAIRO_CANVAS_PERF_TRACE
- struct timespec aTimer;
- mxDevice->startPerfTrace( &aTimer );
- #endif
-
- if( mpCairo ) {
- Surface *pSurface = cairo_get_target( mpCairo );
- return uno::Reference< rendering::XBitmap >( new CanvasBitmap( newSize, pSurface, mxDevice, beFast ) );
- } else
- OSL_TRACE ("CanvasHelper called after it was disposed");
-
- #ifdef CAIRO_CANVAS_PERF_TRACE
- mxDevice->stopPerfTrace( &aTimer, "getScaledBitmap" );
- #endif
-
- return uno::Reference< rendering::XBitmap >(); // we're disposed
- }
-
- uno::Sequence< sal_Int8 > CanvasHelper::getData( const geometry::IntegerRectangle2D& rect )
- {
- OSL_TRACE ("CanvasHelper::getData returns empty sequence, TODO\n");
-
- return uno::Sequence< sal_Int8 >();
- }
-
- void CanvasHelper::setData( const uno::Sequence< sal_Int8 >& data,
- const geometry::IntegerRectangle2D& rect )
- {
- OSL_TRACE ("canvas helper set data called, TODO\n");
- }
-
- void CanvasHelper::setPixel( const uno::Sequence< sal_Int8 >& color,
- const geometry::IntegerPoint2D& pos )
- {
- // rodo TODO
- OSL_TRACE ("CanvasHelper::setPixel called TODO\n");
-// if( !mpOutDev.get() )
-// return; // we're disposed
-
-// OutputDevice& rOutDev( mpOutDev->getOutDev() );
-
-// const Size aBmpSize( rOutDev.GetOutputSizePixel() );
-
-// CHECK_AND_THROW( pos.X >= 0 && pos.X < aBmpSize.Width(),
-// "CanvasHelper::setPixel: X coordinate out of bounds" );
-// CHECK_AND_THROW( pos.Y >= 0 && pos.Y < aBmpSize.Height(),
-// "CanvasHelper::setPixel: Y coordinate out of bounds" );
-// CHECK_AND_THROW( color.getLength() > 3,
-// "CanvasHelper::setPixel: not enough color components" );
-
-// tools::OutDevStateKeeper aStateKeeper( mpProtectedOutDev );
-
-// rOutDev.EnableMapMode( FALSE );
-
-// // TODO(F2): Support alpha canvas here
-// rOutDev.DrawPixel( ::vcl::unotools::pointFromIntegerPoint2D( pos ),
-// ::vcl::unotools::sequenceToColor(
-// mxDevice.getRef(),
-// color ) );
- }
-
- uno::Sequence< sal_Int8 > CanvasHelper::getPixel( const geometry::IntegerPoint2D& pos )
- {
- OSL_TRACE ("CanvasHelper::getPixel called TODO\n");
- return uno::Sequence< sal_Int8 >();
-
-// if( !mpOutDev.get() )
-// return uno::Sequence< sal_Int8 >(); // we're disposed
-
-// OutputDevice& rOutDev( mpOutDev->getOutDev() );
-
-// const Size aBmpSize( rOutDev.GetOutputSizePixel() );
-
-// CHECK_AND_THROW( pos.X >= 0 && pos.X < aBmpSize.Width(),
-// "CanvasHelper::getPixel: X coordinate out of bounds" );
-// CHECK_AND_THROW( pos.Y >= 0 && pos.Y < aBmpSize.Height(),
-// "CanvasHelper::getPixel: Y coordinate out of bounds" );
-
-// tools::OutDevStateKeeper aStateKeeper( mpProtectedOutDev );
-
-// rOutDev.EnableMapMode( FALSE );
-
-// // TODO(F2): Support alpha canvas here
-// return ::vcl::unotools::colorToIntSequence( mxDevice.getRef(),
-// rOutDev.GetPixel(
-// ::vcl::unotools::pointFromIntegerPoint2D( pos ) ) );
- }
-
- uno::Reference< rendering::XBitmapPalette > CanvasHelper::getPalette()
- {
- // TODO(F1): Provide palette support
- return uno::Reference< rendering::XBitmapPalette >();
- }
-
- rendering::IntegerBitmapLayout CanvasHelper::getMemoryLayout()
- {
- // TODO(F1): finish that one
- rendering::IntegerBitmapLayout aLayout;
-
- OSL_TRACE ("CanvasHelper::getMemoryLayout called, TODO\n");
-
- return aLayout;
-
-
-// if( !mpOutDev.get() )
-// return aLayout; // we're disposed
-
-// const Size aBmpSize( mpOutDev->getOutDev().GetOutputSizePixel() );
-
-// aLayout.ScanLines = aBmpSize.Height();
-// aLayout.ScanLineBytes = aBmpSize.Width()*4;
-// aLayout.ScanLineStride = aLayout.ScanLineBytes;
-// aLayout.Format = 0;
-// aLayout.NumComponents = 4;
-// aLayout.ComponentMasks = uno::Sequence<sal_Int64>();
-// aLayout.Endianness = 0;
-// aLayout.IsPseudoColor = false;
-
-// return aLayout;
- }
-
- bool CanvasHelper::repaint( const GraphicObjectSharedPtr& rGrf,
- const ::Point& rPt,
- const ::Size& rSz,
- const GraphicAttr& rAttr ) const
- {
- ENSURE_AND_RETURN( rGrf,
- "CanvasHelper::repaint(): Invalid Graphic" );
-
- OSL_TRACE ("repaint called, TODO\n");
-
- return true;
-
-// if( !mpOutDev )
-// return false; // disposed
-// else
-// return rGrf->Draw( &mpOutDev->getOutDev(), rPt, rSz, &rAttr );
- }
-}
diff --git a/scratch/canvas-cairo/cairo_canvashelper.hxx b/scratch/canvas-cairo/cairo_canvashelper.hxx
deleted file mode 100644
index 039c5eb8c..000000000
--- a/scratch/canvas-cairo/cairo_canvashelper.hxx
+++ /dev/null
@@ -1,338 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#ifndef _VCLCANVAS_CANVASHELPER_HXX_
-#define _VCLCANVAS_CANVASHELPER_HXX_
-
-#ifndef _COM_SUN_STAR_RENDERING_XCANVAS_HPP_
-#include <com/sun/star/rendering/XCanvas.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_XINTEGERBITMAP_HPP_
-#include <com/sun/star/rendering/XIntegerBitmap.hpp>
-#endif
-
-#ifndef _SV_OUTDEV_HXX
-#include <vcl/outdev.hxx>
-#endif
-
-#include <canvas/vclwrapper.hxx>
-
-#include "cairo_cairo.hxx"
-#include "cairo_outdevprovider.hxx"
-#include "cairo_cachedbitmap.hxx"
-#include "cairo_windowgraphicdevice.hxx"
-
-
-namespace cairocanvas
-{
- /** Helper class for basic canvas functionality. Also offers
- optional backbuffer painting, when providing it with a second
- OutputDevice to render into.
- */
- class CanvasHelper
- {
- public:
- CanvasHelper();
-
- /// Release all references
- void disposing();
-
- void setGraphicDevice( const WindowGraphicDevice::ImplRef& rDevice );
-
- /** Set primary output device
-
- @param bProtect
- When true, all output operations preserve outdev
- state. When false, outdev state might change at any time.
- */
- void setCairo( ::cairo::Cairo* pCairo );
-
- /** Set secondary output device
-
- Used for sprites, to generate mask bitmap.
- */
- void setBackgroundOutDev( const OutDevProviderSharedPtr& rOutDev );
-
- // CanvasHelper functionality
- // ==========================
-
- // XCanvas (only providing, not implementing the
- // interface. Also note subtle method parameter differences)
- void drawPoint( const ::com::sun::star::rendering::XCanvas& rCanvas,
- const ::com::sun::star::geometry::RealPoint2D& aPoint,
- const ::com::sun::star::rendering::ViewState& viewState,
- const ::com::sun::star::rendering::RenderState& renderState );
- void drawLine( const ::com::sun::star::rendering::XCanvas& rCanvas,
- const ::com::sun::star::geometry::RealPoint2D& aStartPoint,
- const ::com::sun::star::geometry::RealPoint2D& aEndPoint,
- const ::com::sun::star::rendering::ViewState& viewState,
- const ::com::sun::star::rendering::RenderState& renderState );
- void drawBezier( const ::com::sun::star::rendering::XCanvas& rCanvas,
- const ::com::sun::star::geometry::RealBezierSegment2D& aBezierSegment,
- const ::com::sun::star::geometry::RealPoint2D& aEndPoint,
- const ::com::sun::star::rendering::ViewState& viewState,
- const ::com::sun::star::rendering::RenderState& renderState );
- ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
- drawPolyPolygon( const ::com::sun::star::rendering::XCanvas& rCanvas,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
- const ::com::sun::star::rendering::ViewState& viewState,
- const ::com::sun::star::rendering::RenderState& renderState );
- ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
- strokePolyPolygon( const ::com::sun::star::rendering::XCanvas& rCanvas,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
- const ::com::sun::star::rendering::ViewState& viewState,
- const ::com::sun::star::rendering::RenderState& renderState,
- const ::com::sun::star::rendering::StrokeAttributes& strokeAttributes );
- ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
- strokeTexturedPolyPolygon( const ::com::sun::star::rendering::XCanvas& rCanvas,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
- const ::com::sun::star::rendering::ViewState& viewState,
- const ::com::sun::star::rendering::RenderState& renderState,
- const ::com::sun::star::uno::Sequence<
- ::com::sun::star::rendering::Texture >& textures,
- const ::com::sun::star::rendering::StrokeAttributes& strokeAttributes );
- ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
- strokeTextureMappedPolyPolygon( const ::com::sun::star::rendering::XCanvas& rCanvas,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
- const ::com::sun::star::rendering::ViewState& viewState,
- const ::com::sun::star::rendering::RenderState& renderState,
- const ::com::sun::star::uno::Sequence<
- ::com::sun::star::rendering::Texture >& textures,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::geometry::XMapping2D >& xMapping,
- const ::com::sun::star::rendering::StrokeAttributes& strokeAttributes );
- ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D >
- queryStrokeShapes( const ::com::sun::star::rendering::XCanvas& rCanvas,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
- const ::com::sun::star::rendering::ViewState& viewState,
- const ::com::sun::star::rendering::RenderState& renderState,
- const ::com::sun::star::rendering::StrokeAttributes& strokeAttributes );
- ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
- fillPolyPolygon( const ::com::sun::star::rendering::XCanvas& rCanvas,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
- const ::com::sun::star::rendering::ViewState& viewState,
- const ::com::sun::star::rendering::RenderState& renderState );
- ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
- fillTexturedPolyPolygon( const ::com::sun::star::rendering::XCanvas& rCanvas,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
- const ::com::sun::star::rendering::ViewState& viewState,
- const ::com::sun::star::rendering::RenderState& renderState,
- const ::com::sun::star::uno::Sequence<
- ::com::sun::star::rendering::Texture >& textures );
- ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
- fillTextureMappedPolyPolygon( const ::com::sun::star::rendering::XCanvas& rCanvas,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
- const ::com::sun::star::rendering::ViewState& viewState,
- const ::com::sun::star::rendering::RenderState& renderState,
- const ::com::sun::star::uno::Sequence<
- ::com::sun::star::rendering::Texture >& textures,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::geometry::XMapping2D >& xMapping );
-
- ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCanvasFont >
- createFont( const ::com::sun::star::rendering::XCanvas& rCanvas,
- const ::com::sun::star::rendering::FontRequest& fontRequest,
- const ::com::sun::star::uno::Sequence<
- ::com::sun::star::beans::PropertyValue >& extraFontProperties,
- const ::com::sun::star::geometry::Matrix2D& fontMatrix );
-
- ::com::sun::star::uno::Sequence< ::com::sun::star::rendering::FontInfo >
- queryAvailableFonts( const ::com::sun::star::rendering::XCanvas& rCanvas,
- const ::com::sun::star::rendering::FontInfo& aFilter,
- const ::com::sun::star::uno::Sequence<
- ::com::sun::star::beans::PropertyValue >& aFontProperties );
-
- ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
- drawText( const ::com::sun::star::rendering::XCanvas& rCanvas,
- const ::com::sun::star::rendering::StringContext& text,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XCanvasFont >& xFont,
- const ::com::sun::star::rendering::ViewState& viewState,
- const ::com::sun::star::rendering::RenderState& renderState,
- sal_Int8 textDirection );
-
- ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
- drawTextLayout( const ::com::sun::star::rendering::XCanvas& rCanvas,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XTextLayout >& layoutetText,
- const ::com::sun::star::rendering::ViewState& viewState,
- const ::com::sun::star::rendering::RenderState& renderState );
-
- ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
- drawBitmap( const ::com::sun::star::rendering::XCanvas& rCanvas,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XBitmap >& xBitmap,
- const ::com::sun::star::rendering::ViewState& viewState,
- const ::com::sun::star::rendering::RenderState& renderState );
- ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
- drawBitmapModulated( const ::com::sun::star::rendering::XCanvas& rCanvas,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XBitmap >& xBitmap,
- const ::com::sun::star::rendering::ViewState& viewState,
- const ::com::sun::star::rendering::RenderState& renderState );
- ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >
- getDevice();
-
- // BitmapCanvasHelper functionality
- // ================================
-
- void copyRect( const ::com::sun::star::rendering::XCanvas& rCanvas,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XBitmapCanvas >& sourceCanvas,
- const ::com::sun::star::geometry::RealRectangle2D& sourceRect,
- const ::com::sun::star::rendering::ViewState& sourceViewState,
- const ::com::sun::star::rendering::RenderState& sourceRenderState,
- const ::com::sun::star::geometry::RealRectangle2D& destRect,
- const ::com::sun::star::rendering::ViewState& destViewState,
- const ::com::sun::star::rendering::RenderState& destRenderState );
-
- ::com::sun::star::geometry::IntegerSize2D getSize();
-
- ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmapCanvas > queryBitmapCanvas();
-
- ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap >
- getScaledBitmap( const ::com::sun::star::geometry::RealSize2D& newSize,
- sal_Bool beFast );
-
- ::com::sun::star::uno::Sequence< sal_Int8 >
- getData( const ::com::sun::star::geometry::IntegerRectangle2D& rect );
-
- void setData( const ::com::sun::star::uno::Sequence< sal_Int8 >& data,
- const ::com::sun::star::geometry::IntegerRectangle2D& rect );
-
- void setPixel( const ::com::sun::star::uno::Sequence< sal_Int8 >& color,
- const ::com::sun::star::geometry::IntegerPoint2D& pos );
-
- ::com::sun::star::uno::Sequence< sal_Int8 >
- getPixel( const ::com::sun::star::geometry::IntegerPoint2D& pos );
-
- ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmapPalette > getPalette();
-
- ::com::sun::star::rendering::IntegerBitmapLayout getMemoryLayout();
-
- /// Repaint a cached bitmap
- bool repaint( const GraphicObjectSharedPtr& rGrf,
- const ::Point& rPt,
- const ::Size& rSz,
- const GraphicAttr& rAttr ) const;
-
- enum ColorType
- {
- LINE_COLOR, FILL_COLOR, TEXT_COLOR, IGNORE_COLOR
- };
-
- enum Operation {
- Stroke,
- Fill,
- Clip
- };
-
- void drawPolyPolygonPath( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
- Operation aOperation, ::cairo::Cairo* pCairo=NULL ) const;
-
- ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCachedPrimitive >
- implDrawBitmapSurface( ::cairo::Surface* pSurface,
- const ::com::sun::star::rendering::ViewState& viewState,
- const ::com::sun::star::rendering::RenderState& renderState,
- bool bModulateColors,
- bool bHasAlpha );
-
- protected:
- /// Phyical output device
- WindowGraphicDevice::ImplRef mxDevice;
-
- OutDevProviderSharedPtr mp2ndOutDev;
-
- ::cairo::Cairo* mpCairo;
-
- private:
- // default: disabled copy/assignment
- CanvasHelper(const CanvasHelper&);
- CanvasHelper& operator=( const CanvasHelper& );
-
- bool setupTextOutput( ::Point& o_rOutPos,
- const ::com::sun::star::rendering::ViewState& viewState,
- const ::com::sun::star::rendering::RenderState& renderState,
- const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCanvasFont >& xFont );
-
- void useStates( const ::com::sun::star::rendering::ViewState& viewState,
- const ::com::sun::star::rendering::RenderState& renderState,
- bool setColor );
-
-
-
- const ::com::sun::star::uno::Sequence< ::com::sun::star::rendering::Texture >* mpTextures;
- void doOperation( Operation aOperation, ::cairo::Cairo* pCairo, sal_uInt32 nPolygonIndex=0 ) const;
- void drawPolyPolygonImplementation( ::basegfx::B2DPolyPolygon aPolyPolygon, Operation aOperation, ::cairo::Cairo* pCairo ) const;
- void drawPolyPolygonFallback( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D >& xPolyPolygon,
- Operation aOperation, ::cairo::Cairo* pCairo ) const;
- };
-}
-
-#endif /* _VCLCANVAS_CANVASHELPER_HXX_ */
diff --git a/scratch/canvas-cairo/cairo_canvashelper_texturefill.cxx b/scratch/canvas-cairo/cairo_canvashelper_texturefill.cxx
deleted file mode 100644
index ba0e492ba..000000000
--- a/scratch/canvas-cairo/cairo_canvashelper_texturefill.cxx
+++ /dev/null
@@ -1,215 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#include <canvas/debug.hxx>
-
-#ifndef INCLUDED_RTL_MATH_HXX
-#include <rtl/math.hxx>
-#endif
-
-#ifndef _COM_SUN_STAR_RENDERING_TEXTDIRECTION_HPP__
-#include <com/sun/star/rendering/TextDirection.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_TEXTURINGMODE_HPP_
-#include <com/sun/star/rendering/TexturingMode.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_PATHCAPTYPE_HPP_
-#include <com/sun/star/rendering/PathCapType.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_PATHJOINTYPE_HPP_
-#include <com/sun/star/rendering/PathJoinType.hpp>
-#endif
-
-#ifndef _TL_POLY_HXX
-#include <tools/poly.hxx>
-#endif
-#ifndef _SV_WINDOW_HXX
-#include <vcl/window.hxx>
-#endif
-#ifndef _SV_BITMAPEX_HXX
-#include <vcl/bitmapex.hxx>
-#endif
-#ifndef _SV_BMPACC_HXX
-#include <vcl/bmpacc.hxx>
-#endif
-#ifndef _VCL_CANVASTOOLS_HXX
-#include <vcl/canvastools.hxx>
-#endif
-
-#ifndef _BGFX_MATRIX_B2DHOMMATRIX_HXX
-#include <basegfx/matrix/b2dhommatrix.hxx>
-#endif
-#ifndef _BGFX_RANGE_B2DRECTANGLE_HXX
-#include <basegfx/range/b2drectangle.hxx>
-#endif
-#ifndef _BGFX_POINT_B2DPOINT_HXX
-#include <basegfx/point/b2dpoint.hxx>
-#endif
-#ifndef _BGFX_VECTOR_B2DSIZE_HXX
-#include <basegfx/vector/b2dsize.hxx>
-#endif
-#ifndef _BGFX_POLYGON_B2DPOLYGON_HXX
-#include <basegfx/polygon/b2dpolygon.hxx>
-#endif
-#ifndef _BGFX_POLYGON_B2DPOLYGONTOOLS_HXX
-#include <basegfx/polygon/b2dpolygontools.hxx>
-#endif
-#ifndef _BGFX_POLYGON_B2DPOLYPOLYGONTOOLS_HXX
-#include <basegfx/polygon/b2dpolypolygontools.hxx>
-#endif
-#ifndef _BGFX_POLYGON_B2DLINEGEOMETRY_HXX
-#include <basegfx/polygon/b2dlinegeometry.hxx>
-#endif
-#ifndef _BGFX_TOOLS_CANVASTOOLS_HXX
-#include <basegfx/tools/canvastools.hxx>
-#endif
-#ifndef _BGFX_NUMERIC_FTOOLS_HXX
-#include <basegfx/numeric/ftools.hxx>
-#endif
-
-#include <utility>
-
-#include <comphelper/sequence.hxx>
-#include <canvas/canvastools.hxx>
-
-#include "cairo_textlayout.hxx"
-#include "cairo_parametricpolypolygon.hxx"
-#include "cairo_canvashelper.hxx"
-#include "cairo_canvasbitmap.hxx"
-#include "cairo_impltools.hxx"
-#include "cairo_canvasfont.hxx"
-
-using namespace ::com::sun::star;
-
-namespace cairocanvas
-{
- namespace
- {
- bool textureFill( OutputDevice& rOutDev,
- GraphicObject& rGraphic,
- const ::Point& rPosPixel,
- const ::Size& rNextTileX,
- const ::Size& rNextTileY,
- sal_Int32 nTilesX,
- sal_Int32 nTilesY,
- const ::Size& rTileSize,
- const GraphicAttr& rAttr)
- {
- BOOL bRet( false );
- Point aCurrPos;
- int nX, nY;
-
- for( nY=0; nY < nTilesY; ++nY )
- {
- aCurrPos.X() = rPosPixel.X() + nY*rNextTileY.Width();
- aCurrPos.Y() = rPosPixel.Y() + nY*rNextTileY.Height();
-
- for( nX=0; nX < nTilesX; ++nX )
- {
- // update return value. This method should return true, if
- // at least one of the looped Draws succeeded.
- bRet |= rGraphic.Draw( &rOutDev,
- aCurrPos,
- rTileSize,
- &rAttr );
-
- aCurrPos.X() += rNextTileX.Width();
- aCurrPos.Y() += rNextTileX.Height();
- }
- }
-
- return bRet;
- }
-
- inline sal_Int32 roundDown( const double& rVal )
- {
- return static_cast< sal_Int32 >( floor( rVal ) );
- }
-
- inline sal_Int32 roundUp( const double& rVal )
- {
- return static_cast< sal_Int32 >( ceil( rVal ) );
- }
- }
-
- uno::Reference< rendering::XCachedPrimitive > CanvasHelper::fillTexturedPolyPolygon( const rendering::XCanvas& rCanvas,
- const uno::Reference< rendering::XPolyPolygon2D >& xPolyPolygon,
- const rendering::ViewState& viewState,
- const rendering::RenderState& renderState,
- const uno::Sequence< rendering::Texture >& textures )
- {
- CHECK_AND_THROW( xPolyPolygon.is(),
- "CanvasHelper::fillPolyPolygon(): polygon is NULL");
- CHECK_AND_THROW( textures.getLength(),
- "CanvasHelper::fillTexturedPolyPolygon: empty texture sequence");
-
- cairo_save( mpCairo );
-
- useStates( viewState, renderState, true );
- mpTextures = &textures;
- drawPolyPolygonPath( xPolyPolygon, Fill );
- mpTextures = NULL;
-
- cairo_restore( mpCairo );
-
- return uno::Reference< rendering::XCachedPrimitive >(NULL);
- }
-}
diff --git a/scratch/canvas-cairo/cairo_helper.cxx b/scratch/canvas-cairo/cairo_helper.cxx
deleted file mode 100644
index 7f5563c42..000000000
--- a/scratch/canvas-cairo/cairo_helper.cxx
+++ /dev/null
@@ -1,159 +0,0 @@
-#ifndef _SV_SYSDATA_HXX
-#include <vcl/sysdata.hxx>
-#endif
-
-#ifndef _SV_BITMAP_HXX
-#include <vcl/bitmap.hxx>
-#endif
-
-namespace cairo {
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-
-#include <cairo.h>
-#include <cairo-xlib.h>
-
-#ifdef CAIRO_HAS_GLITZ_SURFACE
-#include <GL/glx.h>
-
-#include <cairo-glitz.h>
-
-#include <glitz.h>
-#include <glitz-glx.h>
-#endif
-}
-
-using namespace ::cairo;
-
-//#define OOO_CANVAS_GLITZ 1
-
-int cairoHelperGetDefaultScreen( void* display )
-{
- return DefaultScreen( ( (Display *) display ) );
-}
-
-void*
-cairoHelperGetGlitzDrawable( const SystemEnvData* pSysData, int width, int height )
-{
-#ifdef OOO_CANVAS_GLITZ
- Display* display = (Display*) pSysData->pDisplay;
- ::cairo::Window window = pSysData->aWindow;
- VisualID vid = XVisualIDFromVisual( (Visual*) pSysData->pVisual );
- int screen = DefaultScreen( display );
-
- glitz_drawable_t *pDrawable = NULL;
- glitz_format_t* pFormat = NULL;
- glitz_drawable_format_t* pDrawableFormat;
- XWindowAttributes attrs;
-
- XGetWindowAttributes (display, window, &attrs);
- VisualID wVID = XVisualIDFromVisual( attrs.visual );
- OSL_TRACE ("find format for visual id %d (%d)\n", wVID, vid);
- pDrawableFormat = glitz_glx_find_drawable_format_for_visual ( display, screen, wVID );
-
- if( pDrawableFormat )
- OSL_TRACE ("format found color %d %d %d %d doublebuffer %d\n",
- pDrawableFormat->color.red_size,
- pDrawableFormat->color.green_size,
- pDrawableFormat->color.blue_size,
- pDrawableFormat->color.alpha_size,
- pDrawableFormat->doublebuffer);
-
- if( pDrawableFormat && pDrawableFormat->doublebuffer == 0 )
- pDrawable = glitz_glx_create_drawable_for_window( display, screen, pDrawableFormat, window, attrs.width, attrs.height );
-
- return pDrawable;
-#endif
- return NULL;
-}
-
-void*
-cairoHelperGetGlitzSurface( const SystemEnvData* pSysData, void *drawable, int x, int y, int width, int height )
-{
-#ifdef OOO_CANVAS_GLITZ
- Display* display = (Display*) pSysData->pDisplay;
- ::cairo::Window window = pSysData->aWindow;
-
- glitz_drawable_t *pDrawable = (glitz_drawable_t *) drawable;
- glitz_format_t* pFormat = NULL;
- glitz_surface_t* pGlitzSurface = NULL;
-
- if( pDrawable )
- pFormat = glitz_find_standard_format (pDrawable, GLITZ_STANDARD_ARGB32 );
-
- if( pFormat )
- pGlitzSurface = glitz_surface_create( pDrawable, pFormat, width, height, 0, NULL );
-
- if (pGlitzSurface)
- glitz_surface_attach (pGlitzSurface, pDrawable, GLITZ_DRAWABLE_BUFFER_FRONT_COLOR, x, y );
-
- if( pGlitzSurface )
- OSL_TRACE ("glitz surface created successfully\n");
-
- return pGlitzSurface;
-#endif
- return NULL;
-}
-
-void*
-cairoHelperGetSurface( const SystemEnvData* pSysData, int x, int y, int width, int height )
-{
- cairo_surface_t* pSurface = NULL;
-
-#ifdef OOO_CANVAS_GLITZ
-#ifdef CAIRO_HAS_GLITZ_SURFACE
- glitz_drawable_t* pGlitzDrawable;
- glitz_surface_t* pGlitzSurface;
-
- OSL_TRACE ("try to create glitz surface %d x %d\n", width, height );
- pGlitzDrawable = (glitz_drawable_t*) cairoHelperGetGlitzDrawable( pSysData, width, height );
-
- if( pGlitzDrawable ) {
- pGlitzSurface = (glitz_surface_t*) cairoHelperGetGlitzSurface( pSysData, pGlitzDrawable, x, y, width, height );
- glitz_drawable_destroy( pGlitzDrawable );
- }
-
- if( pGlitzSurface ) {
- pSurface = cairo_glitz_surface_create( pGlitzSurface );
- glitz_surface_destroy( pGlitzSurface );
- }
-
-#endif
-#endif
- if( !pSurface ) {
- pSurface=cairo_xlib_surface_create( (Display*) pSysData->pDisplay,
- pSysData->aWindow,
- (Visual*) pSysData->pVisual,
- width + x, height + y );
- cairo_surface_set_device_offset( pSurface, x, y );
- }
-
- XSynchronize( (Display*) pSysData->pDisplay, TRUE );
-
- return pSurface;
-}
-
-void
-cairoHelperFlush( const SystemEnvData* pSysData )
-{
-#ifdef OOO_CANVAS_GLITZ
- #ifdef CAIRO_HAS_GLITZ_SURFACE
- glXWaitGL();
- glXWaitX();
- //glFinish();
- #else
- XSync( (Display*) pSysData->pDisplay, false );
- #endif
-#else
- XSync( (Display*) pSysData->pDisplay, false );
-#endif
-}
-
-void*
-cairoHelperGetSurface( const SystemEnvData* pSysData, const BitmapSystemData& rBmpData, int width, int height )
-{
- return cairo_xlib_surface_create( (Display*) pSysData->pDisplay,
- (Drawable) rBmpData.aPixmap,
- (Visual*) pSysData->pVisual,
- width, height );
-}
diff --git a/scratch/canvas-cairo/cairo_helper.hxx b/scratch/canvas-cairo/cairo_helper.hxx
deleted file mode 100644
index c3eb87ed9..000000000
--- a/scratch/canvas-cairo/cairo_helper.hxx
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef _SV_SYSDATA_HXX
-#include <vcl/sysdata.hxx>
-#endif
-
-#ifndef _SV_BITMAP_HXX
-#include <vcl/bitmap.hxx>
-#endif
-
-int cairoHelperGetDefaultScreen( void* display );
-void* cairoHelperGetGlitzDrawable( const SystemEnvData* pSysData, int width, int height );
-void* cairoHelperGetGlitzSurface( const SystemEnvData* pSysData, void *drawable, int x, int y, int width, int height );
-void* cairoHelperGetSurface( const SystemEnvData* pSysData, int x, int y, int width, int height );
-void cairoHelperFlush( const SystemEnvData* pSysData );
-void* cairoHelperGetSurface( const SystemEnvData* pSysData, const BitmapSystemData& rBmpData, int width, int height );
diff --git a/scratch/canvas-cairo/cairo_impltools.cxx b/scratch/canvas-cairo/cairo_impltools.cxx
deleted file mode 100644
index 6bd45f64e..000000000
--- a/scratch/canvas-cairo/cairo_impltools.cxx
+++ /dev/null
@@ -1,627 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#include <canvas/debug.hxx>
-
-#ifndef _USE_MATH_DEFINES
-#define _USE_MATH_DEFINES // needed by Visual C++ for math constants
-#endif
-#include <math.h> // M_PI definition
-
-#ifndef _RTL_LOGFILE_HXX_
-#include <rtl/logfile.hxx>
-#endif
-
-#ifndef _COM_SUN_STAR_GEOMETRY_REALSIZE2D_HPP__
-#include <com/sun/star/geometry/RealSize2D.hpp>
-#endif
-#ifndef _COM_SUN_STAR_GEOMETRY_REALPOINT2D_HPP__
-#include <com/sun/star/geometry/RealPoint2D.hpp>
-#endif
-#ifndef _COM_SUN_STAR_GEOMETRY_REALRECTANGLE2D_HPP__
-#include <com/sun/star/geometry/RealRectangle2D.hpp>
-#endif
-
-#ifndef _COM_SUN_STAR_RENDERING_RENDERSTATE_HPP__
-#include <com/sun/star/rendering/RenderState.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_XCANVAS_HPP__
-#include <com/sun/star/rendering/XCanvas.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_XBITMAP_HPP__
-#include <com/sun/star/rendering/XBitmap.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_XPOLYPOLYGON2D_HPP__
-#include <com/sun/star/rendering/XPolyPolygon2D.hpp>
-#endif
-#ifndef _COM_SUN_STAR_GEOMETRY_REALBEZIERSEGMENT2D_HPP__
-#include <com/sun/star/geometry/RealBezierSegment2D.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_XINTEGERBITMAP_HPP__
-#include <com/sun/star/rendering/XIntegerBitmap.hpp>
-#endif
-#ifndef _COM_SUN_STAR_LANG_XUNOTUNNEL_HPP_
-#include <com/sun/star/lang/XUnoTunnel.hpp>
-#endif
-
-#ifndef _SV_SALBTYPE_HXX
-#include <vcl/salbtype.hxx>
-#endif
-#ifndef _SV_BMPACC_HXX
-#include <vcl/bmpacc.hxx>
-#endif
-#ifndef _SV_BITMAPEX_HXX
-#include <vcl/bitmapex.hxx>
-#endif
-#ifndef _SV_METRIC_HXX
-#include <vcl/metric.hxx>
-#endif
-#ifndef _VCL_CANVASTOOLS_HXX
-#include <vcl/canvastools.hxx>
-#endif
-
-#ifndef _BGFX_POINT_B2DPOINT_HXX
-#include <basegfx/point/b2dpoint.hxx>
-#endif
-#ifndef _BGFX_TUPLE_B2DTUPLE_HXX
-#include <basegfx/tuple/b2dtuple.hxx>
-#endif
-#ifndef _BGFX_RANGE_B2DRECTANGLE_HXX
-#include <basegfx/range/b2drectangle.hxx>
-#endif
-#ifndef _BGFX_MATRIX_B2DHOMMATRIX_HXX
-#include <basegfx/matrix/b2dhommatrix.hxx>
-#endif
-#ifndef _BGFX_TOOLS_CANVASTOOLS_HXX
-#include <basegfx/tools/canvastools.hxx>
-#endif
-#ifndef _BGFX_NUMERIC_FTOOLS_HXX
-#include <basegfx/numeric/ftools.hxx>
-#endif
-
-#ifndef INCLUDED_RTL_MATH_HXX
-#include <rtl/math.hxx>
-#endif
-
-#include <canvas/canvastools.hxx>
-
-#include "cairo_impltools.hxx"
-#include "cairo_linepolypolygon.hxx"
-#include "cairo_canvasbitmap.hxx"
-
-#include <numeric>
-
-
-using namespace ::com::sun::star;
-using namespace ::cairo;
-
-namespace cairocanvas
-{
- namespace tools
- {
- ::basegfx::B2DPolyPolygon polyPolygonFromXPolyPolygon2D( const uno::Reference< rendering::XPolyPolygon2D >& xPoly )
- {
- LinePolyPolygon* pPolyImpl = dynamic_cast< LinePolyPolygon* >( xPoly.get() );
-
- if( pPolyImpl )
- {
- return pPolyImpl->getPolyPolygon();
- }
- else
- {
- const sal_Int32 nPolys( xPoly->getNumberOfPolygons() );
-
- // not a known implementation object - try data source
- // interfaces
- uno::Reference< rendering::XBezierPolyPolygon2D > xBezierPoly(
- xPoly,
- uno::UNO_QUERY );
-
- if( xBezierPoly.is() )
- {
- return ::basegfx::unotools::polyPolygonFromBezier2DSequenceSequence(
- xBezierPoly->getBezierSegments( 0,
- nPolys,
- 0,
- -1 ) );
- }
- else
- {
- uno::Reference< rendering::XLinePolyPolygon2D > xLinePoly(
- xPoly,
- uno::UNO_QUERY );
-
- // no implementation class and no data provider
- // found - contract violation.
- CHECK_AND_THROW( xLinePoly.is(),
- "CairoCanvas::polyPolygonFromXPolyPolygon2D(): Invalid input "
- "poly-polygon, cannot retrieve vertex data" );
-
- return ::basegfx::unotools::polyPolygonFromPoint2DSequenceSequence(
- xLinePoly->getPoints( 0,
- nPolys,
- 0,
- -1 ) );
- }
- }
- }
-
- Cairo* cairoFromXBitmap( const uno::Reference< rendering::XBitmap >& xBitmap, bool &bHasAlpha )
- {
- uno::Reference< lang::XServiceInfo > xRef( xBitmap,
- uno::UNO_QUERY );
-
- if( xRef.is() &&
- xRef->getImplementationName().equals( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CANVASBITMAP_IMPLEMENTATION_NAME))) )
- {
- // TODO(Q1): Maybe use dynamic_cast here
- bHasAlpha = static_cast<CanvasBitmap*>(xBitmap.get())->hasAlpha();
-
- return static_cast<CanvasBitmap*>(xBitmap.get())->getCairo();
- }
-
- return NULL;
- }
-
- ::BitmapEx bitmapExFromXBitmap( const uno::Reference< rendering::XBitmap >& xBitmap )
- {
- uno::Reference< lang::XUnoTunnel > xTunnel( xBitmap, uno::UNO_QUERY );
- if( xTunnel.is() )
- {
- sal_Int64 nPtr = xTunnel->getSomething( vcl::unotools::getTunnelIdentifier( vcl::unotools::Id_BitmapEx ) );
- if( nPtr )
- return BitmapEx( *(BitmapEx*)nPtr );
- }
-
- // TODO(F1): extract pixel from XBitmap interface
- ENSURE_AND_THROW( false,
- "bitmapExFromXBitmap(): could not extract BitmapEx" );
-
- return ::BitmapEx();
- }
-
- static bool readAlpha( BitmapReadAccess* pAlphaReadAcc, long nY, const long nWidth, unsigned char* data, long nOff )
- {
- bool bIsAlpha = false;
- long nX;
- int nAlpha;
- Scanline pReadScan;
-
- nOff += 3;
-
- switch( pAlphaReadAcc->GetScanlineFormat() ) {
- case BMP_FORMAT_8BIT_TC_MASK:
- pReadScan = pAlphaReadAcc->GetScanline( nY );
- for( nX = 0; nX < nWidth; nX++ ) {
- nAlpha = data[ nOff ] = 255 - ( *pReadScan++ );
- if( nAlpha != 255 )
- bIsAlpha = true;
- nOff += 4;
- }
- break;
- case BMP_FORMAT_8BIT_PAL:
- pReadScan = pAlphaReadAcc->GetScanline( nY );
- for( nX = 0; nX < nWidth; nX++ ) {
- nAlpha = data[ nOff ] = 255 - ( pAlphaReadAcc->GetPaletteColor( *pReadScan++ ).GetBlue() );
- if( nAlpha != 255 )
- bIsAlpha = true;
- nOff += 4;
- }
- break;
- default:
- OSL_TRACE( "fallback to GetColor for alpha - slow, format: %d\n", pAlphaReadAcc->GetScanlineFormat() );
- for( nX = 0; nX < nWidth; nX++ ) {
- nAlpha = data[ nOff ] = 255 - pAlphaReadAcc->GetColor( nY, nX ).GetBlue();
- if( nAlpha != 255 )
- bIsAlpha = true;
- nOff += 4;
- }
- }
-
- return bIsAlpha;
- }
-
- Surface* surfaceFromXBitmap( const uno::Reference< rendering::XBitmap >& xBitmap, const WindowGraphicDevice::ImplRef& rDevice, unsigned char*& data, bool& bHasAlpha )
- {
- Surface* pSurface = NULL;
- Cairo* pCairo = cairoFromXBitmap( xBitmap, bHasAlpha );
- if( pCairo ) {
- pSurface = cairo_get_target( pCairo );
- cairo_surface_reference( pSurface );
- data = NULL;
- } else {
- BitmapEx aBmpEx = bitmapExFromXBitmap(xBitmap);
- Bitmap aBitmap = aBmpEx.GetBitmap();
- AlphaMask aAlpha = aBmpEx.GetAlpha();
-
- // there's no pixmap for alpha bitmap. we might still
- // use rgb pixmap and only access alpha pixels the
- // slow way. now we just speedup rgb bitmaps
- if( !aBmpEx.IsTransparent() && !aBmpEx.IsAlpha() ) {
- WindowGraphicDevice::ImplRef xDevice = rDevice;
- pSurface = xDevice->getSurface( aBitmap );
- data = NULL;
- bHasAlpha = false;
- }
-
- if( !pSurface ) {
-
- BitmapReadAccess* pBitmapReadAcc = aBitmap.AcquireReadAccess();
- BitmapReadAccess* pAlphaReadAcc = NULL;
- const long nWidth = pBitmapReadAcc->Width();
- const long nHeight = pBitmapReadAcc->Height();
- long nX, nY;
- bool bIsAlpha = false;
-
- if( aBmpEx.IsTransparent() || aBmpEx.IsAlpha() )
- pAlphaReadAcc = aAlpha.AcquireReadAccess();
-
- data = (unsigned char*) malloc( nWidth*nHeight*4 );
-
- long nOff = 0;
- Color aColor;
- unsigned int nAlpha = 255;
-
- for( nY = 0; nY < nHeight; nY++ ) {
- Scanline pReadScan;
-
- switch( pBitmapReadAcc->GetScanlineFormat() ) {
- case BMP_FORMAT_8BIT_PAL:
- pReadScan = pBitmapReadAcc->GetScanline( nY );
- if( pAlphaReadAcc )
- if( readAlpha( pAlphaReadAcc, nY, nWidth, data, nOff ) )
- bIsAlpha = true;
-
- for( nX = 0; nX < nWidth; nX++ ) {
- if( pAlphaReadAcc )
- nAlpha = data[ nOff + 3 ];
- else
- nAlpha = data[ nOff + 3 ] = 255;
- aColor = pBitmapReadAcc->GetPaletteColor( *pReadScan++ );
-
- data[ nOff++ ] = ( nAlpha*( aColor.GetBlue() ) )/255;
- data[ nOff++ ] = ( nAlpha*( aColor.GetGreen() ) )/255;
- data[ nOff++ ] = ( nAlpha*( aColor.GetRed() ) )/255;
-
- nOff++;
- }
- break;
- case BMP_FORMAT_24BIT_TC_BGR:
- pReadScan = pBitmapReadAcc->GetScanline( nY );
- if( pAlphaReadAcc )
- if( readAlpha( pAlphaReadAcc, nY, nWidth, data, nOff ) )
- bIsAlpha = true;
-
- for( nX = 0; nX < nWidth; nX++ ) {
- if( pAlphaReadAcc )
- nAlpha = data[ nOff + 3 ];
- else
- nAlpha = data[ nOff + 3 ] = 255;
- data[ nOff++ ] = ( nAlpha*( *pReadScan++ ) )/255;
- data[ nOff++ ] = ( nAlpha*( *pReadScan++ ) )/255;
- data[ nOff++ ] = ( nAlpha*( *pReadScan++ ) )/255;
-
- nOff++;
- }
- break;
- case BMP_FORMAT_24BIT_TC_RGB:
- pReadScan = pBitmapReadAcc->GetScanline( nY );
- if( pAlphaReadAcc )
- if( readAlpha( pAlphaReadAcc, nY, nWidth, data, nOff ) )
- bIsAlpha = true;
-
- for( nX = 0; nX < nWidth; nX++ ) {
- if( pAlphaReadAcc )
- nAlpha = data[ nOff + 3 ];
- else
- nAlpha = data[ nOff + 3 ] = 255;
- data[ nOff++ ] = ( nAlpha*( pReadScan[ 2 ] ) )/255;
- data[ nOff++ ] = ( nAlpha*( pReadScan[ 1 ] ) )/255;
- data[ nOff++ ] = ( nAlpha*( pReadScan[ 0 ] ) )/255;
-
- nOff++;
- pReadScan += 3;
- }
- break;
- case BMP_FORMAT_32BIT_TC_BGRA:
- pReadScan = pBitmapReadAcc->GetScanline( nY );
- if( pAlphaReadAcc )
- if( readAlpha( pAlphaReadAcc, nY, nWidth, data, nOff ) )
- bIsAlpha = true;
-
- for( nX = 0; nX < nWidth; nX++ ) {
- if( pAlphaReadAcc )
- nAlpha = data[ nOff + 3 ];
- else
- nAlpha = data[ nOff + 3 ] = pReadScan[ 3 ];
- data[ nOff++ ] = ( nAlpha*( *pReadScan++ ) )/255;
- data[ nOff++ ] = ( nAlpha*( *pReadScan++ ) )/255;
- data[ nOff++ ] = ( nAlpha*( *pReadScan++ ) )/255;
-
- nOff++;
- pReadScan++;
- }
- break;
- case BMP_FORMAT_32BIT_TC_RGBA:
- pReadScan = pBitmapReadAcc->GetScanline( nY );
- if( pAlphaReadAcc )
- if( readAlpha( pAlphaReadAcc, nY, nWidth, data, nOff ) )
- bIsAlpha = true;
-
- for( nX = 0; nX < nWidth; nX++ ) {
- if( pAlphaReadAcc )
- nAlpha = data[ nOff + 3 ];
- else
- nAlpha = data[ nOff + 3 ] = 255;
- data[ nOff++ ] = ( nAlpha*( pReadScan[ 2 ] ) )/255;
- data[ nOff++ ] = ( nAlpha*( pReadScan[ 1 ] ) )/255;
- data[ nOff++ ] = ( nAlpha*( pReadScan[ 0 ] ) )/255;
-
- nOff++;
- pReadScan += 4;
- }
- break;
- default:
- OSL_TRACE( "fallback to GetColor - slow, format: %d\n", pBitmapReadAcc->GetScanlineFormat() );
-
- if( pAlphaReadAcc )
- if( readAlpha( pAlphaReadAcc, nY, nWidth, data, nOff ) )
- bIsAlpha = true;
-
- for( nX = 0; nX < nWidth; nX++ ) {
- aColor = pBitmapReadAcc->GetColor( nY, nX );
-
- // cairo need premultiplied color values
- // TODO(rodo) handle endianess
- if( pAlphaReadAcc )
- nAlpha = data[ nOff + 3 ];
- else
- nAlpha = data[ nOff + 3 ] = 255;
-
- data[ nOff++ ] = ( nAlpha*aColor.GetBlue() )/255;
- data[ nOff++ ] = ( nAlpha*aColor.GetGreen() )/255;
- data[ nOff++ ] = ( nAlpha*aColor.GetRed() )/255;
-
- nOff ++;
- }
- }
- }
-
- aBitmap.ReleaseAccess( pBitmapReadAcc );
- if( pAlphaReadAcc )
- aAlpha.ReleaseAccess( pAlphaReadAcc );
-
- Surface* pImageSurface;
- if( bIsAlpha )
- pImageSurface = cairo_image_surface_create_for_data( data, CAIRO_FORMAT_ARGB32, nWidth, nHeight, nWidth*4 );
- else
- pImageSurface = cairo_image_surface_create_for_data( data, CAIRO_FORMAT_RGB24, nWidth, nHeight, nWidth*4 );
-
-// WindowGraphicDevice::ImplRef xDevice = rDevice;
-// pSurface = xDevice->getSimilarSurface( Size( nWidth, nHeight ), bIsAlpha ? CAIRO_CONTENT_COLOR_ALPHA : CAIRO_CONTENT_COLOR );
-// Cairo* pTargetCairo = cairo_create( pSurface );
-// cairo_set_source_surface( pTargetCairo, pImageSurface, 0, 0 );
-
-// //if( !bIsAlpha )
-// //cairo_set_operator( pTargetCairo, CAIRO_OPERATOR_SOURCE );
-
-// cairo_paint( pTargetCairo );
-// cairo_destroy( pTargetCairo );
-// cairo_surface_destroy( pImageSurface );
- pSurface = pImageSurface;
-
- bHasAlpha = bIsAlpha;
-
- OSL_TRACE("image: %d x %d alpha: %d alphaRead %p", nWidth, nHeight, bIsAlpha, pAlphaReadAcc);
- }
- }
-
- return pSurface;
- }
-
- bool setupFontTransform( ::Point& o_rPoint,
- ::Font& io_rVCLFont,
- const rendering::ViewState& rViewState,
- const rendering::RenderState& rRenderState,
- ::OutputDevice& rOutDev )
- {
- ::basegfx::B2DHomMatrix aMatrix;
-
- ::canvas::tools::mergeViewAndRenderTransform(aMatrix,
- rViewState,
- rRenderState);
-
- ::basegfx::B2DTuple aScale;
- ::basegfx::B2DTuple aTranslate;
- double nRotate, nShearX;
-
- aMatrix.decompose( aScale, aTranslate, nRotate, nShearX );
-
- // query font metric _before_ tampering with width and height
- if( !::rtl::math::approxEqual(aScale.getX(), aScale.getY()) )
- {
- // retrieve true font width
- const int nFontWidth( rOutDev.GetFontMetric( io_rVCLFont ).GetWidth() );
-
- const int nScaledFontWidth( ::basegfx::fround(nFontWidth * aScale.getX()) );
-
- if( !nScaledFontWidth )
- {
- // scale is smaller than one pixel - disable text
- // output altogether
- return false;
- }
-
- io_rVCLFont.SetWidth( nScaledFontWidth );
- }
-
- if( !::rtl::math::approxEqual(aScale.getY(), 1.0) )
- {
- const int nFontHeight( io_rVCLFont.GetHeight() );
- io_rVCLFont.SetHeight( ::basegfx::fround(nFontHeight * aScale.getY()) );
- }
-
- io_rVCLFont.SetOrientation( static_cast< short >( ::basegfx::fround(-fmod(nRotate, 2*M_PI)*(1800.0/M_PI)) ) );
-
- // TODO(F2): Missing functionality in VCL: shearing
- o_rPoint.X() = ::basegfx::fround(aTranslate.getX());
- o_rPoint.Y() = ::basegfx::fround(aTranslate.getY());
-
- return true;
- }
-
- bool isPolyPolygonEqualRectangle( const PolyPolygon& rPolyPoly,
- const Rectangle& rRect )
- {
- // exclude some cheap cases first
- if( rPolyPoly.Count() != 1 )
- return false;
-
- const ::Polygon& rPoly( rPolyPoly[0] );
-
- USHORT nCount( rPoly.GetSize() );
- if( nCount != 4 && nCount != 5 )
- return false;
-
- // fill array with rectangle vertices
- const ::Point aPoints[4] =
- {
- rRect.TopLeft(),
- rRect.TopRight(),
- rRect.BottomRight(),
- rRect.BottomLeft()
- };
-
- // now match polygon and rectangle start points, to
- // facilitate point-by-point comparison
- const ::Point* aIter;
- const ::Point* const aEnd( &aPoints[5] );
- if( (aIter=::std::find( aPoints, aEnd,
- rPoly[0] )) == aEnd )
- return false; // point not found
-
- // determine index from iterator
- const ::std::size_t nIndexOfFirstPoint( aIter - aPoints );
-
- bool bNotMatching( false ); // when true, at least on
- // point does not match
-
- // start point found, now try forward sweep to match
- // points
- for( USHORT i=0; i<4; ++i )
- {
- if( rPoly[i] != aPoints[ (i+nIndexOfFirstPoint)%4 ] )
- {
- bNotMatching = true;
- break;
- }
- }
-
- if( !bNotMatching )
- return true; // all points match, done
-
- // at least one point doesn't match, try reverse sweep to
- // match points
- for( USHORT i=0; i<4; ++i )
- {
- if( rPoly[i] != aPoints[ (4-i+nIndexOfFirstPoint)%4 ] )
- return false; // nothing more to try, exit directly
- }
-
- // all points for reverse sweep match
- return true;
- }
-
-
- // VCL-Canvas related
- //---------------------------------------------------------------------
-
- ::Point mapRealPoint2D( const geometry::RealPoint2D& rPoint,
- const rendering::ViewState& rViewState,
- const rendering::RenderState& rRenderState )
- {
- ::basegfx::B2DPoint aPoint( ::basegfx::unotools::b2DPointFromRealPoint2D(rPoint) );
-
- ::basegfx::B2DHomMatrix aMatrix;
- aPoint *= ::canvas::tools::mergeViewAndRenderTransform(aMatrix,
- rViewState,
- rRenderState);
-
- return ::vcl::unotools::pointFromB2DPoint( aPoint );
- }
-
- ::PolyPolygon mapPolyPolygon( const ::basegfx::B2DPolyPolygon& rPoly,
- const rendering::ViewState& rViewState,
- const rendering::RenderState& rRenderState )
- {
- ::basegfx::B2DHomMatrix aMatrix;
- ::canvas::tools::mergeViewAndRenderTransform(aMatrix,
- rViewState,
- rRenderState);
-
- ::basegfx::B2DPolyPolygon aTemp( rPoly );
-
- aTemp.transform( aMatrix );
-
- return ::PolyPolygon( aTemp );
- }
- }
-}
diff --git a/scratch/canvas-cairo/cairo_impltools.hxx b/scratch/canvas-cairo/cairo_impltools.hxx
deleted file mode 100644
index af94de474..000000000
--- a/scratch/canvas-cairo/cairo_impltools.hxx
+++ /dev/null
@@ -1,258 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#ifndef _VCLCANVAS_TOOLS_HXX
-#define _VCLCANVAS_TOOLS_HXX
-
-#ifndef _OSL_MUTEX_HXX_
-#include <osl/mutex.hxx>
-#endif
-#ifndef _VOS_MUTEX_HXX_
-#include <vos/mutex.hxx>
-#endif
-#ifndef _SV_SVAPP_HXX
-#include <vcl/svapp.hxx>
-#endif
-
-#ifndef _SV_OUTDEV_HXX
-#include <vcl/outdev.hxx>
-#endif
-
-#ifndef _BGFX_POLYGON_B2DPOLYPOLYGON_HXX
-#include <basegfx/polygon/b2dpolypolygon.hxx>
-#endif
-
-#ifndef _COM_SUN_STAR_UNO_REFERENCE_HXX_
-#include <com/sun/star/uno/Reference.hxx>
-#endif
-#ifndef _COM_SUN_STAR_UNO_SEQUENCE_HXX_
-#include <com/sun/star/uno/Sequence.hxx>
-#endif
-
-#ifndef BOOST_SHARED_PTR_HPP_INCLUDED
-#include <boost/shared_ptr.hpp>
-#endif
-
-#include <canvas/vclwrapper.hxx>
-
-#include "cairo_cairo.hxx"
-#include "cairo_outdevprovider.hxx"
-#include "cairo_windowgraphicdevice.hxx"
-
-class OutputDevice;
-class Point;
-class Size;
-
-namespace basegfx
-{
- namespace matrix
- {
- class B2DHomMatrix;
- }
- namespace vector
- {
- class B2DVector;
- }
- namespace point
- {
- class B2DPoint;
- }
-}
-
-namespace com { namespace sun { namespace star { namespace awt
-{
- struct Point;
- struct Size;
- struct Rectangle;
-} } } }
-
-namespace com { namespace sun { namespace star { namespace drawing
-{
- struct HomogenMatrix3;
-} } } }
-
-namespace com { namespace sun { namespace star { namespace geometry
-{
- struct RealPoint2D;
- struct RealSize2D;
- struct RealRectangle2D;
-} } } }
-
-namespace com { namespace sun { namespace star { namespace rendering
-{
- struct RenderState;
- struct ViewState;
- class XCanvas;
- class XBitmap;
- class XPolyPolygon2D;
-} } } }
-
-
-namespace cairocanvas
-{
- namespace tools
- {
- ::basegfx::B2DPolyPolygon
- polyPolygonFromXPolyPolygon2D( const ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XPolyPolygon2D >& );
-
- ::BitmapEx bitmapExFromXBitmap( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap >& );
- ::cairo::Cairo* cairoFromXBitmap( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap >& );
- ::cairo::Surface* surfaceFromXBitmap( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap >& xBitmap,
- const WindowGraphicDevice::ImplRef& rDevice,
- unsigned char*& data, bool& bHasAlpha );
-
- /** Setup VCL font and output position
-
- @returns false, if no text output should happen
- */
- bool setupFontTransform( ::Point& o_rPoint,
- ::Font& io_rVCLFont,
- const ::com::sun::star::rendering::ViewState& viewState,
- const ::com::sun::star::rendering::RenderState& renderState,
- ::OutputDevice& rOutDev );
-
- /** Predicate, to determine whether polygon is equal to given rectangle
-
- @return true, if the polygon exactly describes the given rectangle
- */
- bool isPolyPolygonEqualRectangle( const PolyPolygon& rPolyPoly,
- const Rectangle& rRect );
-
-
- // Little helper to encapsulate locking into policy class
- class LocalGuard
- {
- public:
- LocalGuard() :
- aGuard( Application::GetSolarMutex() )
- {
- }
-
- /// To be compatible with CanvasBase mutex concept
- LocalGuard( const ::osl::Mutex& ) :
- aGuard( Application::GetSolarMutex() )
- {
- }
-
- private:
- ::vos::OGuard aGuard;
- };
-
- class OutDevStateKeeper
- {
- public:
- typedef ::boost::shared_ptr< canvas::vcltools::VCLObject< OutputDevice > > OutputDeviceSharedPtr;
-
- explicit OutDevStateKeeper( OutputDevice& rOutDev ) :
- mpOutDev( &rOutDev ),
- mbMappingWasEnabled( mpOutDev->IsMapModeEnabled() )
- {
- init();
- }
-
- explicit OutDevStateKeeper( const OutDevProviderSharedPtr& rOutDev ) :
- mpOutDev( rOutDev.get() ? &(rOutDev->getOutDev()) : NULL ),
- mbMappingWasEnabled( mpOutDev ? mpOutDev->IsMapModeEnabled() : false )
- {
- init();
- }
-
- ~OutDevStateKeeper()
- {
- if( mpOutDev )
- {
- mpOutDev->EnableMapMode( mbMappingWasEnabled );
- mpOutDev->Pop();
- }
- }
-
- private:
- void init()
- {
- if( mpOutDev )
- {
- mpOutDev->Push();
- mpOutDev->EnableMapMode(FALSE);
- }
- }
-
- OutputDevice* mpOutDev;
- const bool mbMappingWasEnabled;
- };
-
- ::Point mapRealPoint2D( const ::com::sun::star::geometry::RealPoint2D& rPoint,
- const ::com::sun::star::rendering::ViewState& rViewState,
- const ::com::sun::star::rendering::RenderState& rRenderState );
-
- ::PolyPolygon mapPolyPolygon( const ::basegfx::B2DPolyPolygon& rPoly,
- const ::com::sun::star::rendering::ViewState& rViewState,
- const ::com::sun::star::rendering::RenderState& rRenderState );
-
- enum ModulationMode
- {
- MODULATE_NONE,
- MODULATE_WITH_DEVICECOLOR
- };
- }
-}
-
-#endif /* _VCLCANVAS_TOOLS_HXX */
diff --git a/scratch/canvas-cairo/cairo_linepolypolygon.cxx b/scratch/canvas-cairo/cairo_linepolypolygon.cxx
deleted file mode 100644
index 153f7e866..000000000
--- a/scratch/canvas-cairo/cairo_linepolypolygon.cxx
+++ /dev/null
@@ -1,114 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#ifndef _VCL_CANVASTOOLS_HXX
-#include <vcl/canvastools.hxx>
-#endif
-#ifndef _BGFX_POLYGON_B2DPOLYGON_HXX
-#include <basegfx/polygon/b2dpolygon.hxx>
-#endif
-#ifndef _BGFX_TOOLS_CANVASTOOLS_HXX
-#include <basegfx/tools/canvastools.hxx>
-#endif
-
-#include <canvas/canvastools.hxx>
-
-#include "cairo_impltools.hxx"
-#include "cairo_linepolypolygon.hxx"
-
-
-
-using namespace ::com::sun::star;
-
-namespace cairocanvas
-{
-
- LinePolyPolygon::LinePolyPolygon( const ::basegfx::B2DPolyPolygon& rPolyPoly ) :
- ::canvas::tools::LinePolyPolygonBase( rPolyPoly )
- {
- }
-
- LinePolyPolygon::~LinePolyPolygon()
- {
- }
-
- ::rtl::OUString SAL_CALL LinePolyPolygon::getImplementationName() throw (uno::RuntimeException)
- {
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( LINEPOLYPOLYGON_IMPLEMENTATION_NAME ) );
- }
-
-#define SERVICE_NAME "com.sun.star.rendering.LinePolyPolygon"
-
- sal_Bool SAL_CALL LinePolyPolygon::supportsService( const ::rtl::OUString& ServiceName ) throw (uno::RuntimeException)
- {
- return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
- }
-
- uno::Sequence< ::rtl::OUString > SAL_CALL LinePolyPolygon::getSupportedServiceNames( ) throw (uno::RuntimeException)
- {
- uno::Sequence< ::rtl::OUString > aRet(1);
- aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
-
- return aRet;
- }
-}
-
-// eof
diff --git a/scratch/canvas-cairo/cairo_linepolypolygon.hxx b/scratch/canvas-cairo/cairo_linepolypolygon.hxx
deleted file mode 100644
index 29afa4fc1..000000000
--- a/scratch/canvas-cairo/cairo_linepolypolygon.hxx
+++ /dev/null
@@ -1,100 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#ifndef _VCLCANVAS_LINEPOLYPOLYGON_HXX_
-#define _VCLCANVAS_LINEPOLYPOLYGON_HXX_
-
-#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#endif
-
-#ifndef _BGFX_POLYGON_B2DPOLYPOLYGON_HXX
-#include <basegfx/polygon/b2dpolypolygon.hxx>
-#endif
-
-#include <canvas/canvastools.hxx>
-#include <canvas/linepolypolygonbase.hxx>
-#include <canvas/vclwrapper.hxx>
-
-
-#define LINEPOLYPOLYGON_IMPLEMENTATION_NAME "CairoCanvas::LinePolyPolygon"
-
-namespace cairocanvas
-{
- class LinePolyPolygon : public ::canvas::tools::LinePolyPolygonBase
- {
- public:
- explicit LinePolyPolygon( const ::basegfx::B2DPolyPolygon& );
-
- // XServiceInfo
- virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException);
-
- protected:
- ~LinePolyPolygon(); // we're a ref-counted UNO class. _We_ destroy ourselves.
-
- private:
- };
-}
-
-#endif /* _VCLCANVAS_LINEPOLYPOLYGON_HXX_ */
-// eof
diff --git a/scratch/canvas-cairo/cairo_outdevprovider.hxx b/scratch/canvas-cairo/cairo_outdevprovider.hxx
deleted file mode 100644
index 4108c7ee3..000000000
--- a/scratch/canvas-cairo/cairo_outdevprovider.hxx
+++ /dev/null
@@ -1,92 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#ifndef _VCLCANVAS_OUTDEVPROVIDER_HXX
-#define _VCLCANVAS_OUTDEVPROVIDER_HXX
-
-#include <sal/types.h>
-
-#ifndef BOOST_SHARED_PTR_HPP_INCLUDED
-#include <boost/shared_ptr.hpp>
-#endif
-
-class OutputDevice;
-
-namespace cairocanvas
-{
- /* Definition of OutDevProvider interface */
-
- /** Implementers of this interface provide the CanvasHelper
- with its OutputDevice
- */
- class OutDevProvider
- {
- public:
- virtual ~OutDevProvider() {}
-
- virtual OutputDevice& getOutDev() = 0;
- virtual const OutputDevice& getOutDev() const = 0;
- };
-
- typedef ::boost::shared_ptr< OutDevProvider > OutDevProviderSharedPtr;
-}
-
-#endif /* _VCLCANVAS_OUTDEVPROVIDER_HXX */
diff --git a/scratch/canvas-cairo/cairo_parametricpolypolygon.cxx b/scratch/canvas-cairo/cairo_parametricpolypolygon.cxx
deleted file mode 100644
index bd1ad0020..000000000
--- a/scratch/canvas-cairo/cairo_parametricpolypolygon.cxx
+++ /dev/null
@@ -1,275 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#ifndef _USE_MATH_DEFINES
-#define _USE_MATH_DEFINES // needed by Visual C++ for math constants
-#endif
-#include <math.h> // M_PI definition
-
-#include <canvas/debug.hxx>
-#include <canvas/canvastools.hxx>
-
-#ifndef INCLUDED_RTL_MATH_HXX
-#include <rtl/math.hxx>
-#endif
-
-#ifndef _VCL_CANVASTOOLS_HXX
-#include <vcl/canvastools.hxx>
-#endif
-#ifndef _BGFX_MATRIX_B2DHOMMATRIX_HXX
-#include <basegfx/matrix/b2dhommatrix.hxx>
-#endif
-#ifndef _BGFX_POLYGON_B2DPOLYGONTOOLS_HXX
-#include <basegfx/polygon/b2dpolygontools.hxx>
-#endif
-#ifndef _BGFX_POINT_B2DPOINT_HXX
-#include <basegfx/point/b2dpoint.hxx>
-#endif
-#ifndef _BGFX_RANGE_B2DRECTANGLE_HXX
-#include <basegfx/range/b2drectangle.hxx>
-#endif
-#ifndef _BGFX_TOOLS_CANVASTOOLS_HXX
-#include <basegfx/tools/canvastools.hxx>
-#endif
-#ifndef _BGFX_NUMERIC_FTOOLS_HXX
-#include <basegfx/numeric/ftools.hxx>
-#endif
-#ifndef _BGFX_TOOLS_TOOLS_HXX
-#include <basegfx/tools/tools.hxx>
-#endif
-
-#include <limits>
-
-#include "cairo_impltools.hxx"
-#include "cairo_parametricpolypolygon.hxx"
-
-using namespace ::com::sun::star;
-using namespace ::cairo;
-
-double calcAspectRatio( const geometry::RealRectangle2D& rBoundRect )
-{
- const double nWidth( rBoundRect.X2 - rBoundRect.X1 );
- const double nHeight( rBoundRect.Y2 - rBoundRect.Y1 );
-
- return ::basegfx::fTools::equalZero( nHeight ) ? 1.0 : fabs( nWidth / nHeight );
-}
-
-namespace cairocanvas
-{
- ParametricPolyPolygon* ParametricPolyPolygon::createLinearHorizontalGradient( const uno::Sequence< double >& leftColor,
- const uno::Sequence< double >& rightColor,
- const uno::Reference< rendering::XGraphicDevice >& xDevice )
- {
- return new ParametricPolyPolygon( GRADIENT_LINEAR, leftColor, rightColor );
- }
-
- ParametricPolyPolygon* ParametricPolyPolygon::createAxialHorizontalGradient( const uno::Sequence< double >& middleColor,
- const uno::Sequence< double >& endColor,
- const uno::Reference< rendering::XGraphicDevice >& xDevice )
- {
- return new ParametricPolyPolygon( GRADIENT_AXIAL, endColor, middleColor );
- }
-
- ParametricPolyPolygon* ParametricPolyPolygon::createEllipticalGradient( const uno::Sequence< double >& centerColor,
- const uno::Sequence< double >& endColor,
- const geometry::RealRectangle2D& boundRect,
- const uno::Reference< rendering::XGraphicDevice >& xDevice )
- {
- // NYI
- OSL_TRACE( "TODO: ParametricPolyPolygon::createEllipticalGradient\n" );
- return new ParametricPolyPolygon( GRADIENT_ELLIPTICAL, centerColor, endColor, calcAspectRatio (boundRect) );
- }
-
- ParametricPolyPolygon* ParametricPolyPolygon::createRectangularGradient( const uno::Sequence< double >& centerColor,
- const uno::Sequence< double >& endColor,
- const geometry::RealRectangle2D& boundRect,
- const uno::Reference< rendering::XGraphicDevice >& xDevice )
- {
- // NYI
- OSL_TRACE( "TODO: ParametricPolyPolygon::createRectangularGradient\n" );
- return new ParametricPolyPolygon( GRADIENT_RECTANGULAR, endColor, centerColor, calcAspectRatio( boundRect ) );
- }
-
- void SAL_CALL ParametricPolyPolygon::disposing()
- {
- }
-
- uno::Reference< rendering::XPolyPolygon2D > SAL_CALL ParametricPolyPolygon::getOutline( double t ) throw (lang::IllegalArgumentException, uno::RuntimeException)
- {
- // TODO(F1): outline NYI
- return uno::Reference< rendering::XPolyPolygon2D >();
- }
-
- uno::Sequence< double > SAL_CALL ParametricPolyPolygon::getColor( double t ) throw (lang::IllegalArgumentException, uno::RuntimeException)
- {
- // TODO(F1): color NYI
- return uno::Sequence< double >();
- }
-
- uno::Sequence< double > SAL_CALL ParametricPolyPolygon::getPointColor( const geometry::RealPoint2D& point ) throw (lang::IllegalArgumentException, uno::RuntimeException)
- {
- // TODO(F1): point color NYI
- return uno::Sequence< double >();
- }
-
-#define SERVICE_NAME "com.sun.star.rendering.ParametricPolyPolygon"
-
- ::rtl::OUString SAL_CALL ParametricPolyPolygon::getImplementationName( ) throw (uno::RuntimeException)
- {
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( PARAMETRICPOLYPOLYGON_IMPLEMENTATION_NAME ) );
- }
-
- sal_Bool SAL_CALL ParametricPolyPolygon::supportsService( const ::rtl::OUString& ServiceName ) throw (uno::RuntimeException)
- {
- return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
- }
-
- uno::Sequence< ::rtl::OUString > SAL_CALL ParametricPolyPolygon::getSupportedServiceNames( ) throw (uno::RuntimeException)
- {
- uno::Sequence< ::rtl::OUString > aRet(1);
- aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
-
- return aRet;
- }
-
-
- ParametricPolyPolygon::~ParametricPolyPolygon()
- {
- }
-
- ParametricPolyPolygon::ParametricPolyPolygon( GradientType eType, const uno::Sequence< double >& rColor1, const uno::Sequence< double >& rColor2, double nAspectRatio ) :
- ParametricPolyPolygon_Base( m_aMutex ),
- maGradientPoly(),
- mnAspectRatio( nAspectRatio ),
- maColor1( rColor1 ),
- maColor2( rColor2 ),
- meType( eType )
- {
- }
-
- namespace {
- void addColorStop( Pattern* pPattern, double nOffset, const uno::Sequence< double >& rColor )
- {
- if( rColor.getLength() == 3 )
- cairo_pattern_add_color_stop_rgb( pPattern, nOffset, rColor[0], rColor[1], rColor[2] );
- else if( rColor.getLength() == 4 )
- cairo_pattern_add_color_stop_rgba( pPattern, nOffset, rColor[0], rColor[1], rColor[2], rColor[3] );
- }
- }
-
- Pattern* ParametricPolyPolygon::getPattern( Matrix& rMatrix )
- {
- Pattern* pPattern = NULL;
-
- switch( meType) {
- case GRADIENT_LINEAR: {
- double x0 = 0;
- double y0 = 0;
- double x1 = 1;
- double y1 = 0;
- cairo_matrix_transform_point( &rMatrix, &x0, &y0 );
- cairo_matrix_transform_point( &rMatrix, &x1, &y1 );
- pPattern = cairo_pattern_create_linear( x0, y0, x1, y1 );
- addColorStop( pPattern, 0, maColor1 );
- addColorStop( pPattern, 1, maColor2 );
- }
- break;
- // FIXME: NYI
- case GRADIENT_RECTANGULAR:
- case GRADIENT_AXIAL: {
- double x0 = 0;
- double y0 = 0;
- double x1 = 1;
- double y1 = 0;
- cairo_matrix_transform_point( &rMatrix, &x0, &y0 );
- cairo_matrix_transform_point( &rMatrix, &x1, &y1 );
- pPattern = cairo_pattern_create_linear( x0, y0, x1, y1 );
- addColorStop( pPattern, 0, maColor1 );
- addColorStop( pPattern, 0.5, maColor2 );
- addColorStop( pPattern, 1, maColor1 );
- }
- break;
- case GRADIENT_ELLIPTICAL: {
- double cx = 0.5;
- double cy = 0.5;
- double r0 = 0;
- double r1 = 0.5;
- Matrix* pMatrix = &rMatrix;
- Matrix aScaledMatrix, aScaleMatrix;
-
- cairo_matrix_transform_point( &rMatrix, &cx, &cy );
- cairo_matrix_transform_distance( &rMatrix, &r0, &r1 );
- pPattern = cairo_pattern_create_radial( cx, cy, r0, cx, cy, r1 );
- addColorStop( pPattern, 0, maColor1 );
- addColorStop( pPattern, 1, maColor2 );
-
- if( ! ::rtl::math::approxEqual( mnAspectRatio, 1 ) ) {
- cairo_matrix_init_scale( &aScaleMatrix, 1, mnAspectRatio );
- cairo_pattern_set_matrix( pPattern, &aScaleMatrix );
- }
- }
-
- break;
- }
-
- return pPattern;
- }
-}
diff --git a/scratch/canvas-cairo/cairo_parametricpolypolygon.hxx b/scratch/canvas-cairo/cairo_parametricpolypolygon.hxx
deleted file mode 100644
index fa9ce20c1..000000000
--- a/scratch/canvas-cairo/cairo_parametricpolypolygon.hxx
+++ /dev/null
@@ -1,184 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#ifndef _VCLCANVAS_PARAMETRICPOLYPOLYGON_HXX
-#define _VCLCANVAS_PARAMETRICPOLYPOLYGON_HXX
-
-#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_XGRAPHICDEVICE_HPP_
-#include <com/sun/star/rendering/XGraphicDevice.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_XPARAMETRICPOLYPOLYGON2DFACTORY_HPP_
-#include <com/sun/star/rendering/XParametricPolyPolygon2DFactory.hpp>
-#endif
-
-#ifndef _CPPUHELPER_COMPBASE2_HXX_
-#include <cppuhelper/compbase2.hxx>
-#endif
-#ifndef _COMPHELPER_BROADCASTHELPER_HXX_
-#include <comphelper/broadcasthelper.hxx>
-#endif
-
-#ifndef _BGFX_POLYGON_B2DPOLYGON_HXX
-#include <basegfx/polygon/b2dpolygon.hxx>
-#endif
-#ifndef _SV_GEN_HXX
-#include <tools/gen.hxx>
-#endif
-#ifndef _TOOLS_COLOR_HXX
-#include <tools/color.hxx>
-#endif
-
-#include "cairo_cairo.hxx"
-
-class OutputDevice;
-class PolyPolygon;
-
-namespace basegfx
-{
- class B2DPolygon;
- class B2DHomMatrix;
-}
-
-#define PARAMETRICPOLYPOLYGON_IMPLEMENTATION_NAME "CairoCanvas::ParametricPolyPolygon"
-
-/* Definition of ParametricPolyPolygon class */
-
-namespace cairocanvas
-{
- typedef ::cppu::WeakComponentImplHelper2< ::com::sun::star::rendering::XParametricPolyPolygon2D,
- ::com::sun::star::lang::XServiceInfo > ParametricPolyPolygon_Base;
-
- class ParametricPolyPolygon : public ::comphelper::OBaseMutex, public ParametricPolyPolygon_Base
- {
- public:
-
- static ParametricPolyPolygon* createLinearHorizontalGradient( const ::com::sun::star::uno::Sequence< double >& leftColor,
- const ::com::sun::star::uno::Sequence< double >& rightColor,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XGraphicDevice >& xDevice );
- static ParametricPolyPolygon* createAxialHorizontalGradient( const ::com::sun::star::uno::Sequence< double >& middleColor,
- const ::com::sun::star::uno::Sequence< double >& endColor,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XGraphicDevice >& xDevice );
- static ParametricPolyPolygon* createEllipticalGradient( const ::com::sun::star::uno::Sequence< double >& centerColor,
- const ::com::sun::star::uno::Sequence< double >& endColor,
- const ::com::sun::star::geometry::RealRectangle2D& boundRect,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XGraphicDevice >& xDevice );
- static ParametricPolyPolygon* createRectangularGradient( const ::com::sun::star::uno::Sequence< double >& centerColor,
- const ::com::sun::star::uno::Sequence< double >& endColor,
- const ::com::sun::star::geometry::RealRectangle2D& boundRect,
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XGraphicDevice >& xDevice );
- /// Dispose all internal references
- virtual void SAL_CALL disposing();
-
- // XParametricPolyPolygon2D
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D > SAL_CALL getOutline( double t ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< double > SAL_CALL getColor( double t ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< double > SAL_CALL getPointColor( const ::com::sun::star::geometry::RealPoint2D& point ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-
- // XServiceInfo
- virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException);
-
- ::cairo::Pattern* getPattern(::cairo::Matrix& rMatrix);
-
- protected:
- ~ParametricPolyPolygon(); // we're a ref-counted UNO class. _We_ destroy ourselves.
-
- private:
- // default: disabled copy/assignment
- ParametricPolyPolygon(const ParametricPolyPolygon&);
- ParametricPolyPolygon& operator=( const ParametricPolyPolygon& );
-
- enum GradientType
- {
- GRADIENT_LINEAR,
- GRADIENT_AXIAL,
- GRADIENT_ELLIPTICAL,
- GRADIENT_RECTANGULAR,
- };
-
- /// Private, because objects can only be created from the static factories
- ParametricPolyPolygon( GradientType eType, const ::com::sun::star::uno::Sequence< double >& rColor1, const ::com::sun::star::uno::Sequence< double >& rColor2, double nAspectRatio = 1);
-
-
- /// Polygon gradient shape
- const ::basegfx::B2DPolygon maGradientPoly;
-
- /// Aspect ratio of gradient, affects scaling of innermost gradient polygon
- const double mnAspectRatio;
-
- // start and end gradient colors
- ::com::sun::star::uno::Sequence< double > maColor1;
- ::com::sun::star::uno::Sequence< double > maColor2;
-
- /// Type of gradient to render (as e.g. linear grads are not represented by maGradientPoly)
- const GradientType meType;
- };
-}
-
-#endif /* _VCLCANVAS_PARAMETRICPOLYPOLYGON_HXX */
diff --git a/scratch/canvas-cairo/cairo_redrawmanager.cxx b/scratch/canvas-cairo/cairo_redrawmanager.cxx
deleted file mode 100644
index 44b97cb49..000000000
--- a/scratch/canvas-cairo/cairo_redrawmanager.cxx
+++ /dev/null
@@ -1,514 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#include <canvas/debug.hxx>
-
-#ifndef _RTL_STRING_HXX_
-#include <rtl/string.hxx>
-#endif
-#ifndef _RTL_TEXTENC_H
-#include <rtl/textenc.h>
-#endif
-
-#ifndef INCLUDED_RTL_MATH_HXX
-#include <rtl/math.hxx>
-#endif
-
-#ifndef _SV_WINDOW_HXX
-#include <vcl/window.hxx>
-#endif
-
-#ifndef _BGFX_NUMERIC_FTOOLS_HXX
-#include <basegfx/numeric/ftools.hxx>
-#endif
-
-#ifndef BOOST_BIND_HPP_INCLUDED
-#include <boost/bind.hpp>
-#endif
-
-#include <algorithm>
-#include <functional>
-#include <numeric>
-
-#include "cairo_redrawmanager.hxx"
-
-
-#define FPS_BOUNDS Rectangle(0,0,130,90)
-#define INFO_COLOR COL_RED
-
-using namespace ::cairo;
-
-namespace cairocanvas
-{
-
- class SpritePainter
- {
- public:
- SpritePainter( Cairo* pCairo )
- {
- mpCairo = pCairo;
- }
-
- void operator()( const ::cairocanvas::Sprite::ImplRef& rSprite )
- {
- rSprite->redraw( mpCairo );
- }
-
- private:
- Cairo* mpCairo;
- };
-
- inline double accumulatePixel( double nPrevVal, const ::cairocanvas::Sprite::ImplRef& rSprite )
- {
- const ::basegfx::B2DSize& rSize( rSprite->getSpriteSize() );
-
- return nPrevVal + rSize.getX() * rSize.getY();
- }
-
- // Initial size of change records vector
- enum{ CHANGE_RECORDS_INITIAL_SIZE=4 };
-
- RedrawManager::RedrawManager( OutputDevice& rOutDev,
- const BackBufferSharedPtr& rBackBuffer,
- Surface* pSurface) :
- maSprites(),
- maChangeRecords(),
- mrOutDev( rOutDev ),
- mpBackBuffer( rBackBuffer ),
- maLastUpdate(),
- mbBackgroundDirty( true )
- {
- OSL_TRACE("redraw manager constructor\n");
- ENSURE_AND_THROW( mpBackBuffer.get(),
- "RedrawManager::RedrawManager(): Invalid backbuffer" );
- maChangeRecords.reserve( CHANGE_RECORDS_INITIAL_SIZE );
-
- Size aSize = mpBackBuffer->getSize();
- mpSurface = cairo_surface_create_similar( mpBackBuffer->getSurface(), CAIRO_CONTENT_COLOR, aSize.Width(), aSize.Height() );
- //mpSurface = cairo_image_surface_create( CAIRO_FORMAT_RGB24, aSize.Width(), aSize.Height() );
- mpCairo = cairo_create( mpSurface );
- mpWinSurface = pSurface;
- cairo_surface_reference( mpWinSurface );
- }
-
- RedrawManager::~RedrawManager()
- {
- OSL_TRACE("redraw manager destructor\n");
- cairo_destroy( mpCairo );
- cairo_surface_destroy( mpSurface );
- cairo_surface_destroy( mpWinSurface );
- }
-
- void RedrawManager::updateScreen( bool bUpdateAll )
- {
- tools::OutDevStateKeeper aStateKeeper( mrOutDev );
-
- // TODO(F3): The SpriteCanvas currently doesn't act on window
- // resizes. Somehow, the VCL window must broadcast resizes
- // _very early_ (before the application repaints the content)
- // to the canvas, such that the backbuffer can be adapted.
-// const Size aOutDevSize( mpBackBuffer->getOutDev().GetOutputSizePixel() );
- const Point aEmptyPoint(0,0);
-
- // TODO(P1): Might be worthwile to track areas of background
- // changes, too.
- if( !bUpdateAll && !mbBackgroundDirty )
- {
- // background has not changed, so we're free to optimize
- // repaint to areas where a sprite has changed
-
- // TODO(F2): Unchanged sprites, which happen to be in the
- // area-to-be-updated are currently not repainted.
-
- // calculate rectangular areas of mutually intersecting
- // sprite updates. We must handle them together, to
- // achieve proper compositing effects
- SpriteConnectedRanges aUpdateAreas;
-
-#if defined(VERBOSE) && defined(DBG_UTIL)
- // also repaint background below frame counter (fake that
- // as a sprite vanishing in this area)
- aUpdateAreas.addRange( ::basegfx::B2DRectangle( 0.0, 0.0,
- FPS_BOUNDS.Right(),
- FPS_BOUNDS.Bottom() ),
- Sprite::ImplRef() );
-#endif
-
- // extract all referenced sprites from the maChangeRecords
- // (copy sprites, make the list unique, regarding the
- // sprite pointer). This assumes that, until this scope
- // ends, nobody changes the maChangeRecords vector!
- typedef ::std::vector< Sprite::ImplRef > UpdateSprites;
- UpdateSprites aUpdateSprites;
- ::std::transform( maChangeRecords.begin(),
- maChangeRecords.end(),
- ::std::back_insert_iterator< UpdateSprites >(aUpdateSprites),
- ::std::mem_fun_ref( &SpriteChangeRecord::getSprite ) );
- ::std::sort( aUpdateSprites.begin(),
- aUpdateSprites.end() );
-
- UpdateSprites::iterator aBegin( aUpdateSprites.begin() );
- UpdateSprites::iterator aEnd ( aUpdateSprites.end() );
- aEnd = ::std::unique( aBegin, aEnd );
-
- // for each unique sprite, check the change event vector,
- // calculate the update operation from that, and add the
- // result to the aUpdateArea.
- ::std::for_each( aBegin, aEnd,
- ::canvas::internal::SpriteUpdater< Sprite::ImplRef,
- ChangeRecords,
- SpriteConnectedRanges >(aUpdateAreas,
- maChangeRecords) );
-
- // prepare and flush all aggregated components to screen
- aUpdateAreas.forEachAggregate( ::boost::bind( &RedrawManager::updateArea,
- this,
- _1 ) );
- }
- else
- {
- // background has changed, so we currently have no choice
- // but repaint everything (or caller requested that)
- bUpdateAll = true;
- }
-
- // check again for fullscreen update, maybe update area
- // calculation above yielded decision to perform a fullscreen
- // update, anyway.
- if( bUpdateAll )
- {
- OSL_TRACE ("redraw manager: update all\n");
-
- Surface* pBackingStoreSurface;
-
- if( maSprites.size() > 0 ) {
- cairo_save( mpCairo );
- cairo_set_operator( mpCairo, CAIRO_OPERATOR_SOURCE );
- cairo_set_source_surface( mpCairo, mpBackBuffer->getSurface(), 0, 0 );
- cairo_paint( mpCairo );
- cairo_restore( mpCairo );
-
- // repaint all active sprites
- ::std::for_each( maSprites.begin(),
- maSprites.end(),
- SpritePainter( mpCairo ) );
-
- pBackingStoreSurface = mpSurface;
- } else
- pBackingStoreSurface = mpBackBuffer->getSurface();
-
- // flush to screen
- Cairo* pCairo = cairo_create( mpWinSurface );
- cairo_set_operator( pCairo, CAIRO_OPERATOR_SOURCE );
- cairo_set_source_surface( pCairo, pBackingStoreSurface, 0, 0 );
- Size aSize = mpBackBuffer->getSize();
- cairo_rectangle( pCairo, 0, 0, aSize.Width(), aSize.Height() );
- cairo_clip( pCairo );
- cairo_paint( pCairo );
- cairo_destroy( pCairo );
- }
-
- // change record vector must be cleared, for the next turn of
- // rendering and sprite changing
- maChangeRecords.clear();
-
- mbBackgroundDirty = false;
-
-#if defined(VERBOSE) && defined(DBG_UTIL)
- //renderFrameCounter();
- //renderSpriteCount();
- //renderMemUsage();
-#endif
- }
-
- void RedrawManager::renderInfoText( const ::rtl::OUString& rStr,
- const Point& rPos )
- {
- Font aVCLFont;
- aVCLFont.SetHeight( 20 );
- aVCLFont.SetColor( Color( INFO_COLOR ) );
-
- mrOutDev.SetTextColor( Color( INFO_COLOR ) );
- mrOutDev.SetFont( aVCLFont );
-
- mrOutDev.DrawText( rPos, rStr );
- }
-
- void RedrawManager::renderFrameCounter()
- {
- const double denominator( maLastUpdate.getElapsedTime() );
- maLastUpdate.reset();
-
- ::rtl::OUString text( ::rtl::math::doubleToUString( denominator == 0.0 ? 100.0 : 1.0/denominator,
- rtl_math_StringFormat_F,
- 2,'.',NULL,' ') );
-
- // pad with leading space
- while( text.getLength() < 6 )
- text = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM (" ")) + text;
-
- text += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM (" fps"));
-
- renderInfoText( text,
- Point(0, 0) );
- }
-
- void RedrawManager::renderSpriteCount()
- {
- ::rtl::OUString text(
- ::rtl::OUString::valueOf(
- // disambiguate overload...
- static_cast<sal_Int64>(maSprites.size()) ) );
-
- // pad with leading space
- while( text.getLength() < 3 )
- text = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM (" ")) + text;
-
- text = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM ("Sprites: ")) + text;
-
- renderInfoText( text,
- Point(0, 30) );
- }
-
- void RedrawManager::renderMemUsage()
- {
- // rodo TODO
-// const double nPixel( ::std::accumulate( maSprites.begin(),
-// maSprites.end(),
-// 0.0,
-// ::std::ptr_fun( &accumulatePixel ) ) );
-
-// static const int NUM_VIRDEV(2);
-// static const int BYTES_PER_PIXEL(3);
-
-// const Size& rVDevSize( maVDev->GetOutputSizePixel() );
-// // const Size& rBackBufferSize( mpBackBuffer->getOutDev().GetOutputSizePixel() );
-
-// const double nMemUsage( nPixel * NUM_VIRDEV * BYTES_PER_PIXEL +
-// rVDevSize.Width()*rVDevSize.Height() * BYTES_PER_PIXEL +
-// rBackBufferSize.Width()*rBackBufferSize.Height() * BYTES_PER_PIXEL );
-
-// ::rtl::OUString text( ::rtl::math::doubleToUString( nMemUsage / 1048576.0,
-// rtl_math_StringFormat_F,
-// 2,'.',NULL,' ') );
-
-// // pad with leading space
-// while( text.getLength() < 4 )
-// text = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM (" ")) + text;
-
-// text = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM ("Mem: ")) +
-// text +
-// ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM ("MB"));
-
-// renderInfoText( text,
-// Point(0, 60) );
- }
-
- void RedrawManager::backgroundDirty()
- {
- mbBackgroundDirty = true;
- }
-
- void RedrawManager::showSprite( const Sprite::ImplRef& sprite )
- {
- maSprites.push_back( sprite );
- }
-
- void RedrawManager::hideSprite( const Sprite::ImplRef& sprite )
- {
- maSprites.remove( sprite );
- }
-
- void RedrawManager::moveSprite( const Sprite::ImplRef& sprite,
- const Point& rOldPos,
- const Point& rNewPos,
- const Size& rSpriteSize )
- {
- // TODO(Q1): Use AW's converters once resynced
- maChangeRecords.push_back( SpriteChangeRecord( sprite,
- ::basegfx::B2DPoint( rOldPos.X(),
- rOldPos.Y() ),
- ::basegfx::B2DPoint( rNewPos.X(),
- rNewPos.Y() ),
- ::basegfx::B2DSize( rSpriteSize.Width(),
- rSpriteSize.Height() ) ) );
- }
-
- void RedrawManager::updateSprite( const Sprite::ImplRef& sprite,
- const Point& rPos,
- const Rectangle& rUpdateArea )
- {
- // TODO(Q1): Use AW's converters once resynced
- maChangeRecords.push_back( SpriteChangeRecord( sprite,
- ::basegfx::B2DPoint( rPos.X(),
- rPos.Y() ),
- ::basegfx::B2DRectangle( rUpdateArea.Left(),
- rUpdateArea.Top(),
- rUpdateArea.Right(),
- rUpdateArea.Bottom() ) ) );
- }
-
- namespace
- {
- bool isAreaUpdateNotOpaque( const Rectangle& rUpdateArea,
- const RedrawManager::SpriteConnectedRanges::ComponentType& rComponent )
- {
- const Sprite::ImplRef& pAffectedSprite( rComponent.second );
-
- if( !pAffectedSprite.is() )
- return true; // no sprite, no opaque update!
-
- return !pAffectedSprite->isAreaUpdateOpaque( rUpdateArea );
- }
-
- void spriteRedrawStub( const Point& rOffset,
- Cairo* pCairo,
- const RedrawManager::SpriteConnectedRanges::ComponentType& rComponent )
- {
- const Sprite::ImplRef& pAffectedSprite( rComponent.second );
-
- OSL_TRACE ("spriteRedrawStub\n");
-
- if( !pAffectedSprite.is() )
- return; // no sprite, no update!
-
- // calc relative sprite position in rUpdateArea (which need
- // not be the whole screen!)
- const ::basegfx::B2DPoint aSpriteScreenPos( pAffectedSprite->getSpritePos() );
-
- // paint affected sprite
- pAffectedSprite->redraw( pCairo, aSpriteScreenPos );
- }
- }
-
-
- void RedrawManager::updateArea( const SpriteConnectedRanges::ConnectedComponents& rComponents )
- {
- const ::basegfx::B2DRectangle& rRequestedArea( rComponents.maTotalBounds );
-
- // limit size of update VDev to target outdev's size
- const Size& rTargetSizePixel( mrOutDev.GetOutputSizePixel() );
-
- // round output position towards zero. Don't want to truncate
- // a fraction of a sprite pixel... Clip position at origin,
- // otherwise, truncation of size below might leave visible
- // areas uncovered by VDev.
- const Point aOutputPosition(
- ::std::max( 0L,
- static_cast< long >(rRequestedArea.getMinX()) ),
- ::std::max( 0L,
- static_cast< long >(rRequestedArea.getMinY()) ) );
- // round output size towards +infty. Don't want to truncate a
- // fraction of a sprite pixel... Limit size of VDev to output
- // device's area.
- const Size aOutputSize(
- ::std::min( rTargetSizePixel.Width(),
- static_cast< long >(
- ceil( rRequestedArea.getMaxX() - aOutputPosition.X()) ) ),
- ::std::min( rTargetSizePixel.Height(),
- static_cast< long >(
- ceil( rRequestedArea.getMaxY() - aOutputPosition.Y()) ) ) );
-
- const Rectangle aUpdateArea( aOutputPosition.X(),
- aOutputPosition.Y(),
- aOutputPosition.X() + aOutputSize.Width(),
- aOutputPosition.Y() + aOutputSize.Height() );
-
- OSL_TRACE("update area size: %d x %d\n", aOutputSize.Width(), aOutputSize.Height() );
-
- if( aOutputSize.Width() > 0 && aOutputSize.Height() > 0 ) {
-
- cairo_save( mpCairo );
-
- cairo_rectangle( mpCairo, aOutputPosition.X(), aOutputPosition.Y(), aOutputSize.Width(), aOutputSize.Height() );
- cairo_clip( mpCairo );
-
- cairo_save( mpCairo );
- cairo_set_operator( mpCairo, CAIRO_OPERATOR_SOURCE );
- cairo_set_source_surface( mpCairo, mpBackBuffer->getSurface(), 0, 0 );
- cairo_paint( mpCairo );
- cairo_restore( mpCairo );
-
- // paint all affected sprites to update area
- ::std::for_each( rComponents.maComponentList.begin(),
- rComponents.maComponentList.end(),
- ::boost::bind( &spriteRedrawStub,
- ::boost::cref(aUpdateArea.TopLeft()),
- mpCairo,
- _1 ) );
-
- // flush to screen
- Cairo* pCairo = cairo_create( mpWinSurface );
-
- cairo_save( mpCairo );
- cairo_rectangle( pCairo, aOutputPosition.X(), aOutputPosition.Y(), aOutputSize.Width(), aOutputSize.Height() );
- cairo_clip( pCairo );
- cairo_set_operator( pCairo, CAIRO_OPERATOR_SOURCE );
- cairo_set_source_surface( pCairo, mpSurface, 0, 0 );
- cairo_paint( pCairo );
- cairo_restore( mpCairo );
-
- cairo_restore( mpCairo );
-
- cairo_destroy( pCairo );
- }
- }
-}
diff --git a/scratch/canvas-cairo/cairo_redrawmanager.hxx b/scratch/canvas-cairo/cairo_redrawmanager.hxx
deleted file mode 100644
index 5dc1bc7a8..000000000
--- a/scratch/canvas-cairo/cairo_redrawmanager.hxx
+++ /dev/null
@@ -1,201 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#ifndef _VCLCANVAS_REDRAWMANAGER_HXX
-#define _VCLCANVAS_REDRAWMANAGER_HXX
-
-#include <list>
-#include <vector>
-
-#ifndef _COM_SUN_STAR_AWT_POINT_HPP_
-#include <com/sun/star/awt/Point.hpp>
-#endif
-#ifndef _COM_SUN_STAR_AWT_SIZE_HPP_
-#include <com/sun/star/awt/Size.hpp>
-#endif
-
-#ifndef _SV_VIRDEV_HXX
-#include <vcl/virdev.hxx>
-#endif
-
-#ifndef _BGFX_POINT_B2DPOINT_HXX
-#include <basegfx/point/b2dpoint.hxx>
-#endif
-#ifndef _BGFX_VECTOR_B2DSIZE_HXX
-#include <basegfx/vector/b2dsize.hxx>
-#endif
-#ifndef _BGFX_RANGE_B2DRECTANGLE_HXX
-#include <basegfx/range/b2drectangle.hxx>
-#endif
-#ifndef _BGFX_RANGE_B2DCONNECTEDRANGES_HXX
-#include <basegfx/range/b2dconnectedranges.hxx>
-#endif
-
-#include <canvas/vclwrapper.hxx>
-#include <canvas/elapsedtime.hxx>
-#include <canvas/redrawmanagement.hxx>
-
-#include "cairo_cairo.hxx"
-#include "cairo_sprite.hxx"
-#include "cairo_backbuffer.hxx"
-#include "cairo_impltools.hxx"
-
-
-/* Definition of RedrawManager class */
-
-namespace cairocanvas
-{
-
- /** This class manages smooth SpriteCanvas updates
-
- @attention This class does not perform Solar mutex locking,
- this must be handled by the client code.
- */
- class RedrawManager
- {
- public:
- /** Constructed with references to back buffer and output
- device, the RedrawManager keeps track of sprite movements,
- and repaints only those areas on updateScreen, that
- actually needs an update.
-
- @param rOutDev
- Reference to output device, typically a window on
- screen. Does not take ownership.
-
- @param rBackBuffer
- Reference to a back buffer. Back buffer content must be
- provided from elsewhere, everytime back buffer content
- changes, backgroundDirty() must be called.
- */
- RedrawManager( OutputDevice& rOutDev,
- const BackBufferSharedPtr& rBackBuffer,
- ::cairo::Surface* pSurface);
- ~RedrawManager();
-
- void updateScreen( bool bUpdateAll );
- void backgroundDirty();
-
- // SpriteSurface interface, is delegated to e.g. from SpriteCanvas
- void showSprite( const Sprite::ImplRef& sprite );
- void hideSprite( const Sprite::ImplRef& sprite );
- void moveSprite( const Sprite::ImplRef& sprite,
- const Point& rOldPos,
- const Point& rNewPos,
- const Size& rSpriteSize );
- void updateSprite( const Sprite::ImplRef& sprite,
- const Point& rPos,
- const Rectangle& rUpdateArea );
-
- typedef ::basegfx::B2DConnectedRanges< Sprite::ImplRef > SpriteConnectedRanges;
-
- private:
- typedef ::canvas::internal::SpriteChangeRecord< Sprite::ImplRef > SpriteChangeRecord;
- typedef ::std::vector< SpriteChangeRecord > ChangeRecords;
-
- // default: disabled copy/assignment
- RedrawManager(const RedrawManager&);
- RedrawManager& operator=( const RedrawManager& );
-
- /// Update given area of the screen
- void updateArea( const SpriteConnectedRanges::ConnectedComponents& rComponents );
-
- /// Update sprite in given area of the outdev
- void updateSpriteForArea( const Rectangle& rUpdateArea,
- OutputDevice& rOutputDevice,
- const SpriteConnectedRanges::ComponentType& rComponent );
-
- void renderInfoText( const ::rtl::OUString& rStr,
- const Point& rPos );
- void renderFrameCounter();
- void renderSpriteCount();
- void renderMemUsage();
-
- ::std::list< Sprite::ImplRef > maSprites; // list of active
- // sprite
- // objects. this
- // list is only
- // used for full
- // repaints,
- // otherwise, we
- // rely on the
- // active sprites
- // itself to notify
- // us.
- ChangeRecords maChangeRecords; // vector
- // of
- // sprites
- // changes
- // since
- // last
- // updateScreen()
- // call
- OutputDevice& mrOutDev;
- BackBufferSharedPtr mpBackBuffer;
- ::canvas::tools::ElapsedTime maLastUpdate; // for the frame counter
- bool mbBackgroundDirty;
- ::cairo::Surface* mpWinSurface;
- ::cairo::Surface* mpSurface;
- ::cairo::Cairo* mpCairo;
- };
-}
-
-#endif /* _VCLCANVAS_REDRAWMANAGER_HXX */
diff --git a/scratch/canvas-cairo/cairo_repainttarget.hxx b/scratch/canvas-cairo/cairo_repainttarget.hxx
deleted file mode 100644
index 5cc285b07..000000000
--- a/scratch/canvas-cairo/cairo_repainttarget.hxx
+++ /dev/null
@@ -1,97 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#ifndef _VCLCANVAS_REPAINTTARGET_HXX
-#define _VCLCANVAS_REPAINTTARGET_HXX
-
-#ifndef _RTL_REF_HXX_
-#include <rtl/ref.hxx>
-#endif
-
-#include "cairo_cachedbitmap.hxx"
-
-class Point;
-class Size;
-class GraphicAttr;
-
-namespace cairocanvas
-{
- /* Definition of RepaintTarget interface */
-
- /** Target interface for XCachedPrimitive implementations
-
- This interface must be implemented on all canvas
- implementations that hand out XCachedPrimitives
- */
- class RepaintTarget
- {
- public:
- virtual ~RepaintTarget() {}
-
- // call this when a bitmap is repainted
- virtual bool repaint( const GraphicObjectSharedPtr& rGrf,
- const ::Point& rPt,
- const ::Size& rSz,
- const GraphicAttr& rAttr ) const = 0;
- };
-}
-
-#endif /* _VCLCANVAS_REPAINTTARGET_HXX */
diff --git a/scratch/canvas-cairo/cairo_sprite.hxx b/scratch/canvas-cairo/cairo_sprite.hxx
deleted file mode 100644
index ee93d5510..000000000
--- a/scratch/canvas-cairo/cairo_sprite.hxx
+++ /dev/null
@@ -1,131 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#ifndef _VCLCANVAS_SPRITE_HXX
-#define _VCLCANVAS_SPRITE_HXX
-
-#ifndef _RTL_REF_HXX_
-#include <rtl/ref.hxx>
-#endif
-
-#ifndef _COM_SUN_STAR_RENDERING_XCANVAS_HPP_
-#include <com/sun/star/rendering/XCanvas.hpp>
-#endif
-
-#ifndef _BGFX_POINT_B2DPOINT_HXX
-#include <basegfx/vector/b2dpoint.hxx>
-#endif
-#ifndef _BGFX_VECTOR_B2DSIZE_HXX
-#include <basegfx/vector/b2dsize.hxx>
-#endif
-
-#include "cairo_cairo.hxx"
-
-class OutputDevice;
-
-namespace cairocanvas
-{
- /* Definition of Sprite class */
-
- /** Helper interface to connect SpriteCanvas with various
- sprite implementations.
- */
-
- class Sprite : public ::com::sun::star::uno::XInterface
- {
- public:
- typedef ::rtl::Reference< Sprite > ImplRef;
-
- virtual ~Sprite() {}
-
- /** Repaint whole sprite on given target surface
- */
- virtual void redraw( ::cairo::Cairo* pCairo ) const = 0;
-
- /** Repaint sprite.
-
- @param rTargetSurface
- Target surface to output sprite content
-
- @param rOutputPos
- Position where to render the sprite (overrides the
- sprite's output position)
- */
- virtual void redraw( ::cairo::Cairo* pCairo,
- const ::basegfx::B2DPoint& rOutputPos ) const = 0;
-
- /** Query whether sprite update will fully cover the given area.
-
- Use this method to determine whether any background
- content (regardless of static or sprite) needs an update
- before rendering this sprite.
-
- @return true, if sprite redraw will fully overwrite given
- area.
- */
- virtual bool isAreaUpdateOpaque( const Rectangle& rUpdateArea ) const = 0;
-
- virtual ::basegfx::B2DPoint getSpritePos() const = 0;
- virtual ::basegfx::B2DSize getSpriteSize() const = 0;
- };
-}
-
-#endif /* _VCLCANVAS_SPRITE_HXX */
diff --git a/scratch/canvas-cairo/cairo_spritecanvas.cxx b/scratch/canvas-cairo/cairo_spritecanvas.cxx
deleted file mode 100644
index 5512d768b..000000000
--- a/scratch/canvas-cairo/cairo_spritecanvas.cxx
+++ /dev/null
@@ -1,557 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#include <canvas/debug.hxx>
-
-#ifndef _COM_SUN_STAR_REGISTRY_XREGISTRYKEY_HPP_
-#include <com/sun/star/registry/XRegistryKey.hpp>
-#endif
-#ifndef _COM_SUN_STAR_LANG_XINITIALIZATION_HPP_
-#include <com/sun/star/lang/XInitialization.hpp>
-#endif
-#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#endif
-#ifndef _COM_SUN_STAR_LANG_XSERVICENAME_HPP_
-#include <com/sun/star/lang/XServiceName.hpp>
-#endif
-#ifndef _COM_SUN_STAR_LANG_XSINGLESERVICEFACTORY_HPP_
-#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-#endif
-#ifndef _COM_SUN_STAR_LANG_XCOMPONENTCONTEXT_HPP_
-#include <com/sun/star/uno/XComponentContext.hpp>
-#endif
-
-#ifndef _CPPUHELPER_FACTORY_HXX_
-#include <cppuhelper/factory.hxx>
-#endif
-#ifndef _CPPUHELPER_IMPLEMENTATIONENTRY_HXX_
-#include <cppuhelper/implementationentry.hxx>
-#endif
-#ifndef _CPPUHELPER_IMPLEMENTATIONENTRY_HXX_
-#include <cppuhelper/implementationentry.hxx>
-#endif
-
-#ifndef _BGFX_TOOLS_CANVASTOOLS_HXX
-#include <basegfx/tools/canvastools.hxx>
-#endif
-
-#ifndef _VCL_CANVASTOOLS_HXX
-#include <vcl/canvastools.hxx>
-#endif
-#ifndef _SV_OUTDEV_HXX
-#include <vcl/outdev.hxx>
-#endif
-#ifndef _SV_WINDOW_HXX
-#include <vcl/window.hxx>
-#endif
-#ifndef _SV_SYSCHILD_HXX
-#include <vcl/syschild.hxx>
-#endif
-#ifndef _SV_SYSDATA_HXX
-#include <vcl/sysdata.hxx>
-#endif
-
-#ifndef _SV_BITMAPEX_HXX
-#include <vcl/bitmapex.hxx>
-#endif
-
-#include <algorithm>
-
-#include <canvas/verbosetrace.hxx>
-#include <canvas/canvastools.hxx>
-
-#include "cairo_spritecanvas.hxx"
-#include "cairo_canvascustomsprite.hxx"
-#include "cairo_windowgraphicdevice.hxx"
-
-using namespace ::com::sun::star;
-using namespace ::cairo;
-
-#define IMPLEMENTATION_NAME "CairoCanvas::SpriteCanvas"
-#define SERVICE_NAME "com.sun.star.rendering.CairoCanvas"
-
-namespace
-{
- static ::rtl::OUString SAL_CALL getImplementationName_SpriteCanvas()
- {
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
- }
-
- static uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames_SpriteCanvas()
- {
- uno::Sequence< ::rtl::OUString > aRet(1);
- aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
-
- return aRet;
- }
-
-}
-
-namespace cairocanvas
-{
- SpriteCanvas::SpriteCanvas( const uno::Reference< uno::XComponentContext >& rxContext ) :
- maBounds(),
- mxComponentContext( rxContext ),
- mxDevice(),
- mpBackBuffer(),
- mpRedrawManager(),
- mbIsVisible( false )
- {
- }
-
- SpriteCanvas::~SpriteCanvas()
- {
- }
-
- void SAL_CALL SpriteCanvas::disposing()
- {
- tools::LocalGuard aGuard;
-
- OSL_TRACE ("disposing sprite canvas\n");
-
- dispose();
-
- // forward to parent
- SpriteCanvas_Base::disposing();
- }
-
- uno::Reference< rendering::XAnimatedSprite > SAL_CALL SpriteCanvas::createSpriteFromAnimation( const uno::Reference< rendering::XAnimation >& animation ) throw (lang::IllegalArgumentException, uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- return uno::Reference< rendering::XAnimatedSprite >(NULL);
- }
-
- uno::Reference< rendering::XAnimatedSprite > SAL_CALL SpriteCanvas::createSpriteFromBitmaps( const uno::Sequence< uno::Reference< rendering::XBitmap > >& animationBitmaps,
- sal_Int8 interpolationMode ) throw (lang::IllegalArgumentException, rendering::VolatileContentDestroyedException, uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- return uno::Reference< rendering::XAnimatedSprite >(NULL);
- }
-
- uno::Reference< rendering::XCustomSprite > SAL_CALL SpriteCanvas::createCustomSprite( const geometry::RealSize2D& spriteSize ) throw (lang::IllegalArgumentException, uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- if( !mxDevice.is() )
- return uno::Reference< rendering::XCustomSprite >(); // we're disposed
-
- return uno::Reference< rendering::XCustomSprite >(
- new CanvasCustomSprite( spriteSize,
- mxDevice,
- mpSysData,
- ImplRef(this)) );
- }
-
- uno::Reference< rendering::XSprite > SAL_CALL SpriteCanvas::createClonedSprite( const uno::Reference< rendering::XSprite >& original ) throw (lang::IllegalArgumentException, uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- return uno::Reference< rendering::XSprite >(NULL);
- }
-
- sal_Bool SAL_CALL SpriteCanvas::updateScreen( sal_Bool bUpdateAll ) throw (uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- OSL_TRACE ("update screen called begin\n");
-
- if( !mpRedrawManager.get() )
- return sal_False; // disposed
-
- // hidden windows need not paint anything, thus prevent
- // screen updates, then
- if( !mbIsVisible )
- return sal_False;
-
- // pass background dirty state to redrawmanager
- if( mbSurfaceDirty )
- {
- mpRedrawManager->backgroundDirty();
- mbSurfaceDirty = false;
- }
-
- #ifdef CAIRO_CANVAS_PERF_TRACE
- struct timespec aTimer;
- mxDevice->startPerfTrace( &aTimer );
- #endif
-
- mpRedrawManager->updateScreen( bUpdateAll );
- mxDevice->flush();
-
- #ifdef CAIRO_CANVAS_PERF_TRACE
- mxDevice->stopPerfTrace( &aTimer, "updateScreen" );
- #endif
-
- return sal_True;
- }
-
- void SAL_CALL SpriteCanvas::initialize( const uno::Sequence< uno::Any >& aArguments ) throw( uno::Exception,
- uno::RuntimeException)
- {
- VERBOSE_TRACE( "SpriteCanvas::initialize called" );
-
- CHECK_AND_THROW( aArguments.getLength() >= 1,
- "SpriteCanvas::initialize: wrong number of arguments" );
-
- // We expect a single Any here, containing a pointer to a valid
- // VCL window, on which to output
- if( aArguments.getLength() >= 1 &&
- aArguments[0].getValueTypeClass() == uno::TypeClass_HYPER )
- {
- // TODO(Q2): This now works for Solaris, but still warns for gcc
- ::Window* pOutputWindow = (::Window*) *reinterpret_cast<const sal_Int64*>(aArguments[0].getValue());
-
- CHECK_AND_THROW( pOutputWindow != NULL,
- "SpriteCanvas::initialize: invalid Window pointer" );
-
- // check whether we're a SysChild: have to fetch system data
- // directly from SystemChildWindow, because the GetSystemData
- // method is unfortunately not virtual
- const SystemChildWindow* pSysChild = dynamic_cast< const SystemChildWindow* >( pOutputWindow );
- if( pSysChild )
- mpSysData = pSysChild->GetSystemData();
- else
- mpSysData = pOutputWindow->GetSystemData();
-
- // setup graphic device
- mxDevice = WindowGraphicDevice::ImplRef( new WindowGraphicDevice( *pOutputWindow, mpSysData ) );
-
- // setup helper
- maCanvasHelper.setGraphicDevice( mxDevice );
-
- // setup back buffer
- mpBackBuffer.reset( new BackBuffer( mxDevice, ::cairo::CAIRO_CONTENT_COLOR ) );
- mpBackBuffer->setSize( pOutputWindow->GetOutputSizePixel() );
-
- // always render into back buffer, don't preserve state
- // (it's our private VDev, after all)
- maCanvasHelper.setCairo( mpBackBuffer->getCairo() );
-
- // setup RedrawManager
- mpRedrawManager.reset( new RedrawManager( *pOutputWindow,
- mpBackBuffer,
- mxDevice->getSurface() ) );
- }
- }
-
- void SAL_CALL SpriteCanvas::dispose( ) throw (uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- OSL_TRACE("sprite canvas dispose\n");
-
- maCanvasHelper.disposing();
-
- mxComponentContext.clear();
- if( mxDevice.is() )
- mxDevice->dispose();
- mxDevice.reset();
- mpBackBuffer.reset(),
- mpRedrawManager.reset();
- }
-
- void SAL_CALL SpriteCanvas::addEventListener( const uno::Reference< lang::XEventListener >& xListener ) throw (uno::RuntimeException)
- {
- // Ignored
- }
-
- void SAL_CALL SpriteCanvas::removeEventListener( const uno::Reference< lang::XEventListener >& aListener ) throw (uno::RuntimeException)
- {
- // Ignored
- }
-
- void SAL_CALL SpriteCanvas::setPosSize( sal_Int32 nX,
- sal_Int32 nY,
- sal_Int32 nWidth,
- sal_Int32 nHeight,
- sal_Int16 nFlags ) throw (uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- if( maBounds.X != nX ||
- maBounds.Y != nY ||
- maBounds.Width != nWidth ||
- maBounds.Height != nHeight )
- {
- maBounds.X = nX;
- maBounds.Y = nY;
- maBounds.Width = nWidth;
- maBounds.Height = nHeight;
-
- if( mpBackBuffer.get() )
- mpBackBuffer->setSize( Size( nWidth,
- nHeight ) );
- }
- }
-
- awt::Rectangle SAL_CALL SpriteCanvas::getPosSize( ) throw (uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- return maBounds;
- }
-
- void SAL_CALL SpriteCanvas::setVisible( ::sal_Bool bVisible ) throw (uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- mbIsVisible = bVisible;
- }
-
- void SAL_CALL SpriteCanvas::setEnable( ::sal_Bool Enable ) throw (uno::RuntimeException)
- {
- // Ignored
- }
-
- void SAL_CALL SpriteCanvas::setFocus( ) throw (uno::RuntimeException)
- {
- // Ignored
- }
-
- void SAL_CALL SpriteCanvas::addWindowListener( const uno::Reference< awt::XWindowListener >& xListener ) throw (uno::RuntimeException)
- {
- // Ignored
- }
-
- void SAL_CALL SpriteCanvas::removeWindowListener( const uno::Reference< awt::XWindowListener >& xListener ) throw (uno::RuntimeException)
- {
- // Ignored
- }
-
- void SAL_CALL SpriteCanvas::addFocusListener( const uno::Reference< awt::XFocusListener >& xListener ) throw (uno::RuntimeException)
- {
- // Ignored
- }
-
- void SAL_CALL SpriteCanvas::removeFocusListener( const uno::Reference< awt::XFocusListener >& xListener ) throw (uno::RuntimeException)
- {
- // Ignored
- }
-
- void SAL_CALL SpriteCanvas::addKeyListener( const uno::Reference< awt::XKeyListener >& xListener ) throw (uno::RuntimeException)
- {
- // Ignored
- }
-
- void SAL_CALL SpriteCanvas::removeKeyListener( const uno::Reference< awt::XKeyListener >& xListener ) throw (uno::RuntimeException)
- {
- // Ignored
- }
-
- void SAL_CALL SpriteCanvas::addMouseListener( const uno::Reference< awt::XMouseListener >& xListener ) throw (uno::RuntimeException)
- {
- // Ignored
- }
-
- void SAL_CALL SpriteCanvas::removeMouseListener( const uno::Reference< awt::XMouseListener >& xListener ) throw (uno::RuntimeException)
- {
- // Ignored
- }
-
- void SAL_CALL SpriteCanvas::addMouseMotionListener( const uno::Reference< awt::XMouseMotionListener >& xListener ) throw (uno::RuntimeException)
- {
- // Ignored
- }
-
- void SAL_CALL SpriteCanvas::removeMouseMotionListener( const uno::Reference< awt::XMouseMotionListener >& xListener ) throw (uno::RuntimeException)
- {
- // Ignored
- }
-
- void SAL_CALL SpriteCanvas::addPaintListener( const uno::Reference< awt::XPaintListener >& xListener ) throw (uno::RuntimeException)
- {
- // Ignored
- }
-
- void SAL_CALL SpriteCanvas::removePaintListener( const uno::Reference< awt::XPaintListener >& xListener ) throw (uno::RuntimeException)
- {
- // Ignored
- }
-
- ::rtl::OUString SAL_CALL SpriteCanvas::getImplementationName() throw( uno::RuntimeException )
- {
- return getImplementationName_SpriteCanvas();
- }
-
- sal_Bool SAL_CALL SpriteCanvas::supportsService( const ::rtl::OUString& ServiceName ) throw( uno::RuntimeException )
- {
- return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
- }
-
- uno::Sequence< ::rtl::OUString > SAL_CALL SpriteCanvas::getSupportedServiceNames() throw( uno::RuntimeException )
- {
- return getSupportedServiceNames_SpriteCanvas();
- }
-
- ::rtl::OUString SAL_CALL SpriteCanvas::getServiceName( ) throw (::com::sun::star::uno::RuntimeException)
- {
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICE_NAME ) );
- }
-
- uno::Reference< uno::XInterface > SAL_CALL SpriteCanvas::createInstance( const uno::Reference< uno::XComponentContext >& xContext ) throw ( uno::Exception )
- {
- return uno::Reference< uno::XInterface >( static_cast<cppu::OWeakObject*>(new SpriteCanvas( xContext )) );
- }
-
- // SpriteSurface
- void SpriteCanvas::showSprite( const Sprite::ImplRef& sprite )
- {
- tools::LocalGuard aGuard;
-
- if( !mpRedrawManager.get() )
- return; // we're disposed
-
- mpRedrawManager->showSprite( sprite );
- }
-
- void SpriteCanvas::hideSprite( const Sprite::ImplRef& sprite )
- {
- tools::LocalGuard aGuard;
-
- if( !mpRedrawManager.get() )
- return; // we're disposed
-
- mpRedrawManager->hideSprite( sprite );
- }
-
- void SpriteCanvas::moveSprite( const Sprite::ImplRef& sprite,
- const Point& rOldPos,
- const Point& rNewPos,
- const Size& rSpriteSize )
- {
- tools::LocalGuard aGuard;
-
- if( !mpRedrawManager.get() )
- return; // we're disposed
-
- mpRedrawManager->moveSprite( sprite, rOldPos, rNewPos, rSpriteSize );
- }
-
- void SpriteCanvas::updateSprite( const Sprite::ImplRef& sprite,
- const Point& rPos,
- const Rectangle& rUpdateArea )
- {
- tools::LocalGuard aGuard;
-
- if( !mpRedrawManager.get() )
- return; // we're disposed
-
- mpRedrawManager->updateSprite( sprite, rPos, rUpdateArea );
- }
-
- bool SpriteCanvas::repaint( const GraphicObjectSharedPtr& rGrf,
- const ::Point& rPt,
- const ::Size& rSz,
- const GraphicAttr& rAttr ) const
- {
- tools::LocalGuard aGuard;
-
- mbSurfaceDirty = true;
-
- return maCanvasHelper.repaint( rGrf, rPt, rSz, rAttr );
- }
-
-}
-
-namespace
-{
- /* shared lib exports implemented with helpers */
- static struct ::cppu::ImplementationEntry s_component_entries [] =
- {
- {
- cairocanvas::SpriteCanvas::createInstance, getImplementationName_SpriteCanvas,
- getSupportedServiceNames_SpriteCanvas, ::cppu::createSingleComponentFactory,
- 0, 0
- },
- { 0, 0, 0, 0, 0, 0 }
- };
-}
-
-
-/* Exported UNO methods for registration and object creation.
- ==========================================================
- */
-extern "C"
-{
- void SAL_CALL component_getImplementationEnvironment( const sal_Char** ppEnvTypeName,
- uno_Environment** ppEnv )
- {
- *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
- }
-
- sal_Bool SAL_CALL component_writeInfo( lang::XMultiServiceFactory* xMgr,
- registry::XRegistryKey* xRegistry )
- {
- return ::cppu::component_writeInfoHelper(
- xMgr, xRegistry, s_component_entries );
- }
-
- void * SAL_CALL component_getFactory( sal_Char const* implName,
- lang::XMultiServiceFactory* xMgr,
- registry::XRegistryKey* xRegistry )
- {
- return ::cppu::component_getFactoryHelper(
- implName, xMgr, xRegistry, s_component_entries );
- }
-}
diff --git a/scratch/canvas-cairo/cairo_spritecanvas.hxx b/scratch/canvas-cairo/cairo_spritecanvas.hxx
deleted file mode 100644
index 0a75cd239..000000000
--- a/scratch/canvas-cairo/cairo_spritecanvas.hxx
+++ /dev/null
@@ -1,234 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#ifndef _VCLCANVAS_SPRITECANVAS_HXX_
-#define _VCLCANVAS_SPRITECANVAS_HXX_
-
-#ifndef _RTL_REF_HXX_
-#include <rtl/ref.hxx>
-#endif
-
-#ifndef _COM_SUN_STAR_LANG_XINITIALIZATION_HPP_
-#include <com/sun/star/lang/XInitialization.hpp>
-#endif
-#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#endif
-#ifndef _COM_SUN_STAR_LANG_XSERVICENAME_HPP_
-#include <com/sun/star/lang/XServiceName.hpp>
-#endif
-
-#ifndef _COM_SUN_STAR_AWT_XWINDOW_HPP_
-#include <com/sun/star/awt/XWindow.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_XSPRITECANVAS_HPP_
-#include <com/sun/star/rendering/XSpriteCanvas.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_XINTEGERBITMAP_HPP_
-#include <com/sun/star/rendering/XIntegerBitmap.hpp>
-#endif
-
-#ifndef _CPPUHELPER_COMPBASE6_HXX_
-#include <cppuhelper/compbase6.hxx>
-#endif
-
-#ifndef _SV_VIRDEV_HXX
-#include <vcl/virdev.hxx>
-#endif
-
-#include <canvas/vclwrapper.hxx>
-#include <canvas/bitmapcanvasbase.hxx>
-
-#include <memory>
-
-namespace cairo {
-#ifndef CAIRO_XLIB_H
-#include <cairo-xlib.h>
-#endif
-}
-
-#include "cairo_cairo.hxx"
-#include "cairo_redrawmanager.hxx"
-#include "cairo_spritesurface.hxx"
-#include "cairo_canvashelper.hxx"
-#include "cairo_backbuffer.hxx"
-#include "cairo_impltools.hxx"
-#include "cairo_repainttarget.hxx"
-
-class OutputDevice;
-class Point;
-
-namespace com { namespace sun { namespace star { namespace uno
-{
- class XComponentContext;
- class RuntimeException;
-} } } }
-
-
-namespace cairocanvas
-{
- typedef ::cppu::WeakComponentImplHelper6< ::com::sun::star::rendering::XSpriteCanvas,
- ::com::sun::star::rendering::XIntegerBitmap,
- ::com::sun::star::awt::XWindow,
- ::com::sun::star::lang::XInitialization,
- ::com::sun::star::lang::XServiceInfo,
- ::com::sun::star::lang::XServiceName > CanvasBase_Base;
- typedef ::canvas::internal::BitmapCanvasBase< CanvasBase_Base, CanvasHelper, tools::LocalGuard > SpriteCanvas_Base;
-
- class SpriteCanvas : public SpriteCanvas_Base,
- public SpriteSurface,
- public RepaintTarget
- {
- public:
- typedef ::rtl::Reference< SpriteCanvas > ImplRef;
-
- SpriteCanvas( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext );
-
- /// Dispose all internal references
- virtual void SAL_CALL disposing();
-
- // XSpriteCanvas
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XAnimatedSprite > SAL_CALL createSpriteFromAnimation( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XAnimation >& animation ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XAnimatedSprite > SAL_CALL createSpriteFromBitmaps( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > >& animationBitmaps,
- sal_Int8 interpolationMode ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::rendering::VolatileContentDestroyedException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCustomSprite > SAL_CALL createCustomSprite( const ::com::sun::star::geometry::RealSize2D& spriteSize ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XSprite > SAL_CALL createClonedSprite( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XSprite >& original ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL updateScreen( sal_Bool bUpdateAll ) throw (::com::sun::star::uno::RuntimeException);
-
- // XComponent (comes implicitely with XWindow)
- virtual void SAL_CALL dispose( ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
-
- // XWindow
- virtual void SAL_CALL setPosSize( ::sal_Int32 X, ::sal_Int32 Y, ::sal_Int32 Width, ::sal_Int32 Height, ::sal_Int16 Flags ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::awt::Rectangle SAL_CALL getPosSize( ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL setVisible( ::sal_Bool Visible ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL setEnable( ::sal_Bool Enable ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL setFocus( ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL addWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removeWindowListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL addFocusListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFocusListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removeFocusListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFocusListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL addKeyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XKeyListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removeKeyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XKeyListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL addMouseListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removeMouseListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL addMouseMotionListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseMotionListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removeMouseMotionListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseMotionListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL addPaintListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XPaintListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removePaintListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XPaintListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
-
- // XInitialization
- virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw( ::com::sun::star::uno::Exception,
- ::com::sun::star::uno::RuntimeException);
-
- // XServiceInfo
- virtual ::rtl::OUString SAL_CALL getImplementationName() throw( ::com::sun::star::uno::RuntimeException );
- virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw( ::com::sun::star::uno::RuntimeException );
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw( ::com::sun::star::uno::RuntimeException );
-
- // XServiceName
- virtual ::rtl::OUString SAL_CALL getServiceName( ) throw (::com::sun::star::uno::RuntimeException);
-
- // factory
- static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL createInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& xContext ) throw ( ::com::sun::star::uno::Exception );
-
- // SpriteSurface
- virtual void showSprite( const Sprite::ImplRef& sprite );
- virtual void hideSprite( const Sprite::ImplRef& sprite );
- virtual void moveSprite( const Sprite::ImplRef& sprite,
- const Point& rOldPos,
- const Point& rNewPos,
- const Size& rSpriteSize );
- virtual void updateSprite( const Sprite::ImplRef& sprite,
- const Point& rPos,
- const Rectangle& rUpdateArea );
-
- // RepaintTarget
- virtual bool repaint( const GraphicObjectSharedPtr& rGrf,
- const ::Point& rPt,
- const ::Size& rSz,
- const GraphicAttr& rAttr ) const;
-
- protected:
- ~SpriteCanvas(); // we're a ref-counted UNO class. _We_ destroy ourselves.
-
- private:
- // default: disabled copy/assignment
- SpriteCanvas(const SpriteCanvas&);
- SpriteCanvas& operator=( const SpriteCanvas& );
-
- /// Current bounds of the owning Window
- ::com::sun::star::awt::Rectangle maBounds;
-
- ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > mxComponentContext;
- WindowGraphicDevice::ImplRef mxDevice;
- BackBufferSharedPtr mpBackBuffer;
- ::std::auto_ptr< RedrawManager > mpRedrawManager; // handles smooth screen updates for us
-
- /// True, if the window this canvas is contained in, is visible
- bool mbIsVisible;
- const SystemEnvData* mpSysData;
- };
-}
-
-#endif
diff --git a/scratch/canvas-cairo/cairo_spritesurface.hxx b/scratch/canvas-cairo/cairo_spritesurface.hxx
deleted file mode 100644
index 5b6f0d0f6..000000000
--- a/scratch/canvas-cairo/cairo_spritesurface.hxx
+++ /dev/null
@@ -1,106 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#ifndef _VCLCANVAS_SPRITESURFACE_HXX
-#define _VCLCANVAS_SPRITESURFACE_HXX
-
-#ifndef _SAL_CONFIG_H_
-#include <sal/config.h>
-#endif
-
-#include "cairo_sprite.hxx"
-
-class Point;
-class Size;
-class Rectangle;
-
-namespace cairocanvas
-{
- /* Definition of SpriteSurface interface */
-
- class SpriteSurface
- {
- public:
- virtual ~SpriteSurface() {}
-
- // call this when XSprite::show() is called
- virtual void showSprite( const Sprite::ImplRef& sprite ) = 0;
-
- // call this when XSprite::hide() is called
- virtual void hideSprite( const Sprite::ImplRef& sprite ) = 0;
-
- // call this when XSprite::move() is called
- virtual void moveSprite( const Sprite::ImplRef& sprite,
- const Point& rOldPos,
- const Point& rNewPos,
- const Size& rSpriteSize ) = 0;
-
- // call this when some part of your sprite has changed. That
- // includes show/hide´, i.e. for show, both showSprite and
- // updateSprite must be called.
- virtual void updateSprite( const Sprite::ImplRef& sprite,
- const Point& rPos,
- const Rectangle& rUpdateArea ) = 0;
-
- };
-}
-
-#endif /* _VCLCANVAS_SPRITESURFACE_HXX */
diff --git a/scratch/canvas-cairo/cairo_textlayout.cxx b/scratch/canvas-cairo/cairo_textlayout.cxx
deleted file mode 100644
index aaf9e0d7c..000000000
--- a/scratch/canvas-cairo/cairo_textlayout.cxx
+++ /dev/null
@@ -1,423 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#include <canvas/debug.hxx>
-#include "cairo_textlayout.hxx"
-
-#ifndef BOOST_SCOPED_ARRAY_HPP_INCLUDED
-#include <boost/scoped_array.hpp>
-#endif
-
-#ifndef _SV_METRIC_HXX
-#include <vcl/metric.hxx>
-#endif
-#ifndef _SV_VIRDEV_HXX
-#include <vcl/virdev.hxx>
-#endif
-
-#ifndef _COM_SUN_STAR_RENDERING_TEXTDIRECTION_HPP_
-#include <com/sun/star/rendering/TextDirection.hpp>
-#endif
-#ifndef _BGFX_MATRIX_B2DHOMMATRIX_HXX
-#include <basegfx/matrix/b2dhommatrix.hxx>
-#endif
-#ifndef _BGFX_NUMERIC_FTOOLS_HXX
-#include <basegfx/numeric/ftools.hxx>
-#endif
-
-#include <canvas/canvastools.hxx>
-
-#include "cairo_impltools.hxx"
-
-using namespace ::com::sun::star;
-using namespace ::cairo;
-
-namespace cairocanvas
-{
- namespace
- {
- void setupLayoutMode( OutputDevice& rOutDev,
- sal_Int8 nTextDirection )
- {
- // TODO(P3): avoid if already correctly set
- ULONG nLayoutMode;
- switch( nTextDirection )
- {
- default:
- nLayoutMode = 0;
- break;
- case rendering::TextDirection::WEAK_LEFT_TO_RIGHT:
- nLayoutMode = TEXT_LAYOUT_BIDI_LTR;
- break;
- case rendering::TextDirection::STRONG_LEFT_TO_RIGHT:
- nLayoutMode = TEXT_LAYOUT_BIDI_LTR | TEXT_LAYOUT_BIDI_STRONG;
- break;
- case rendering::TextDirection::WEAK_RIGHT_TO_LEFT:
- nLayoutMode = TEXT_LAYOUT_BIDI_RTL;
- break;
- case rendering::TextDirection::STRONG_RIGHT_TO_LEFT:
- nLayoutMode = TEXT_LAYOUT_BIDI_RTL | TEXT_LAYOUT_BIDI_STRONG;
- break;
- }
-
- // set calculated layout mode. Origin is always the left edge,
- // as required at the API spec
- rOutDev.SetLayoutMode( nLayoutMode | TEXT_LAYOUT_TEXTORIGIN_LEFT );
- }
- }
-
- TextLayout::TextLayout( const rendering::StringContext& aText,
- sal_Int8 nDirection,
- sal_Int64 nRandomSeed,
- const CanvasFont::ImplRef& rFont,
- Cairo* pCairo) :
- TextLayout_Base( m_aMutex ),
- maText( aText ),
- maLogicalAdvancements(),
- mpFont( rFont ),
- mnTextDirection( nDirection ),
- mpCairo( pCairo )
- {
- cairo_reference( mpCairo );
- }
-
- TextLayout::~TextLayout()
- {
- cairo_destroy( mpCairo );
- }
-
- void SAL_CALL TextLayout::disposing()
- {
- tools::LocalGuard aGuard;
-
- mpFont.reset();
- }
-
- // XTextLayout
- uno::Sequence< uno::Reference< rendering::XPolyPolygon2D > > SAL_CALL TextLayout::queryTextShapes( ) throw (uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- // TODO(F1)
- return uno::Sequence< uno::Reference< rendering::XPolyPolygon2D > >();
- }
-
- uno::Sequence< geometry::RealRectangle2D > SAL_CALL TextLayout::queryInkMeasures( ) throw (uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- // TODO(F1)
- return uno::Sequence< geometry::RealRectangle2D >();
- }
-
- uno::Sequence< geometry::RealRectangle2D > SAL_CALL TextLayout::queryMeasures( ) throw (uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- // TODO(F1)
- return uno::Sequence< geometry::RealRectangle2D >();
- }
-
- uno::Sequence< double > SAL_CALL TextLayout::queryLogicalAdvancements( ) throw (uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- return maLogicalAdvancements;
- }
-
- void SAL_CALL TextLayout::applyLogicalAdvancements( const uno::Sequence< double >& aAdvancements ) throw (lang::IllegalArgumentException, uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- CHECK_AND_THROW( aAdvancements.getLength() == maText.Length,
- "TextLayout::applyLogicalAdvancements(): mismatching number of advancements" );
-
- maLogicalAdvancements = aAdvancements;
- }
-
- geometry::RealRectangle2D SAL_CALL TextLayout::queryTextBounds( ) throw (uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- OSL_TRACE("queryTextBounds");
- geometry::RealRectangle2D aBounds( 0, 0, 0, 0 );
-
-// TODO(rodo)
-// if( maLogicalAdvancements.getLength() ) {
-// cairo_save( mpCairo );
-// useFont( mpCairo );
-// cairo_font_extents_t aFontExtents;
-// cairo_font_extents( mpCairo, &aFontExtents );
-// cairo_restore( mpCairo );
-
-// aBounds = geometry::RealRectangle2D( 0, -aFontExtents.ascent,
-// maLogicalAdvancements[ maLogicalAdvancements.getLength()-1 ],
-// aFontExtents.descent );
-// } else {
-
- cairo_save( mpCairo );
-
- ::rtl::OUString aSubText = maText.Text.copy( maText.StartPosition, maText.Length );
- ::rtl::OString aUTF8String = ::rtl::OUStringToOString( aSubText, RTL_TEXTENCODING_UTF8 );
-
- useFont( mpCairo );
-
- cairo_font_extents_t aFontExtents;
- cairo_font_extents( mpCairo, &aFontExtents );
- cairo_text_extents_t aTextExtents;
- cairo_text_extents( mpCairo, aUTF8String, &aTextExtents );
- cairo_restore( mpCairo );
-
- OSL_TRACE("text extents, width: %d x_bearing: %d ascent: %d descent: %d\n", aTextExtents.width, aTextExtents.x_bearing, aFontExtents.ascent, aFontExtents.descent);
-
- aBounds = geometry::RealRectangle2D( aTextExtents.x_bearing, -aFontExtents.ascent,
- aTextExtents.x_bearing + aTextExtents.width, aFontExtents.descent );
-// }
-
- return aBounds;
- }
-
- double SAL_CALL TextLayout::justify( double nSize ) throw (lang::IllegalArgumentException, uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- // TODO(F1)
- return 0.0;
- }
-
- double SAL_CALL TextLayout::combinedJustify( const uno::Sequence< uno::Reference< rendering::XTextLayout > >& aNextLayouts, double nSize ) throw (lang::IllegalArgumentException, uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- // TODO(F1)
- return 0.0;
- }
-
- rendering::TextHit SAL_CALL TextLayout::getTextHit( const geometry::RealPoint2D& aHitPoint ) throw (uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- // TODO(F1)
- return rendering::TextHit();
- }
-
- rendering::Caret SAL_CALL TextLayout::getCaret( sal_Int32 nInsertionIndex, sal_Bool bExcludeLigatures ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- // TODO(F1)
- return rendering::Caret();
- }
-
- sal_Int32 SAL_CALL TextLayout::getNextInsertionIndex( sal_Int32 nStartIndex, sal_Int32 nCaretAdvancement, sal_Bool bExcludeLigatures ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- // TODO(F1)
- return 0;
- }
-
- uno::Reference< rendering::XPolyPolygon2D > SAL_CALL TextLayout::queryVisualHighlighting( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- // TODO(F1)
- return uno::Reference< rendering::XPolyPolygon2D >();
- }
-
- uno::Reference< rendering::XPolyPolygon2D > SAL_CALL TextLayout::queryLogicalHighlighting( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- // TODO(F1)
- return uno::Reference< rendering::XPolyPolygon2D >();
- }
-
- double SAL_CALL TextLayout::getBaselineOffset( ) throw (uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- // TODO(F1)
- return 0.0;
- }
-
- sal_Int8 SAL_CALL TextLayout::getMainTextDirection( ) throw (uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- return mnTextDirection;
- }
-
- uno::Reference< rendering::XCanvasFont > SAL_CALL TextLayout::getFont( ) throw (uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- return mpFont.getRef();
- }
-
- rendering::StringContext SAL_CALL TextLayout::getText( ) throw (uno::RuntimeException)
- {
- tools::LocalGuard aGuard;
-
- return maText;
- }
-
- void TextLayout::useFont( Cairo* pCairo )
- {
- rendering::FontRequest aFontRequest = mpFont->getFontRequest();
- rendering::FontInfo aFontInfo = aFontRequest.FontDescription;
-
- cairo_select_font_face( pCairo, ::rtl::OUStringToOString( aFontInfo.FamilyName, RTL_TEXTENCODING_UTF8 ), CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL );
- cairo_set_font_size( pCairo, aFontRequest.CellSize );
- }
-
- bool TextLayout::draw( Cairo* pCairo )
- {
- tools::LocalGuard aGuard;
-
- ::rtl::OUString aSubText = maText.Text.copy( maText.StartPosition, maText.Length );
- ::rtl::OString aUTF8String = ::rtl::OUStringToOString( aSubText, RTL_TEXTENCODING_UTF8 );
-
- cairo_save( pCairo );
- /* move to 0, 0 as cairo_show_text advances current point and current point is not restored by cairo_restore.
- before we were depending on unmodified current point which I believed was preserved by save/restore */
- cairo_move_to( pCairo, 0, 0 );
- useFont( pCairo );
- cairo_show_text( pCairo, aUTF8String );
- cairo_restore( pCairo );
-
- return true;
- }
-
- namespace
- {
- class OffsetTransformer
- {
- public:
- OffsetTransformer( const ::basegfx::B2DHomMatrix& rMat ) :
- maMatrix( rMat )
- {
- }
-
- long operator()( const double& rOffset )
- {
- // This is an optimization of the normal rMat*[x,0]
- // transformation of the advancement vector (in x
- // direction), followed by a length calculation of the
- // resulting vector: advancement' =
- // ||rMat*[x,0]||. Since advancements are vectors, we
- // can ignore translational components, thus if [x,0],
- // it follows that rMat*[x,0]=[x',0] holds. Thus, we
- // just have to calc the transformation of the x
- // component.
-
- // TODO(F2): Handle non-horizontal advancements!
- return ::basegfx::fround( hypot(maMatrix.get(0,0)*rOffset,
- maMatrix.get(1,0)*rOffset) );
- }
-
- private:
- ::basegfx::B2DHomMatrix maMatrix;
- };
- }
-
- void TextLayout::setupTextOffsets( long* outputOffsets,
- const uno::Sequence< double >& inputOffsets,
- const rendering::ViewState& viewState,
- const rendering::RenderState& renderState ) const
- {
- ENSURE_AND_THROW( outputOffsets!=NULL,
- "TextLayout::setupTextOffsets offsets NULL" );
-
- ::basegfx::B2DHomMatrix aMatrix;
-
- ::canvas::tools::mergeViewAndRenderTransform(aMatrix,
- viewState,
- renderState);
-
- // fill integer offsets
- ::std::transform( const_cast< uno::Sequence< double >& >(inputOffsets).getConstArray(),
- const_cast< uno::Sequence< double >& >(inputOffsets).getConstArray()+inputOffsets.getLength(),
- outputOffsets,
- OffsetTransformer( aMatrix ) );
- }
-
-
-#define SERVICE_NAME "com.sun.star.rendering.TextLayout"
-
- ::rtl::OUString SAL_CALL TextLayout::getImplementationName() throw( uno::RuntimeException )
- {
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( TEXTLAYOUT_IMPLEMENTATION_NAME ) );
- }
-
- sal_Bool SAL_CALL TextLayout::supportsService( const ::rtl::OUString& ServiceName ) throw( uno::RuntimeException )
- {
- return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
- }
-
- uno::Sequence< ::rtl::OUString > SAL_CALL TextLayout::getSupportedServiceNames() throw( uno::RuntimeException )
- {
- uno::Sequence< ::rtl::OUString > aRet(1);
- aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
-
- return aRet;
- }
-}
diff --git a/scratch/canvas-cairo/cairo_textlayout.hxx b/scratch/canvas-cairo/cairo_textlayout.hxx
deleted file mode 100644
index 6e86709b2..000000000
--- a/scratch/canvas-cairo/cairo_textlayout.hxx
+++ /dev/null
@@ -1,157 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#ifndef _TEXTLAYOUT_HXX
-#define _TEXTLAYOUT_HXX
-
-#ifndef _CPPUHELPER_COMPBASE2_HXX_
-#include <cppuhelper/compbase2.hxx>
-#endif
-#ifndef _COMPHELPER_BROADCASTHELPER_HXX_
-#include <comphelper/broadcasthelper.hxx>
-#endif
-
-#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_XTEXTLAYOUT_HPP_
-#include <com/sun/star/rendering/XTextLayout.hpp>
-#endif
-
-#include <canvas/vclwrapper.hxx>
-
-#include "cairo_cairo.hxx"
-#include "cairo_canvasfont.hxx"
-#include "cairo_impltools.hxx"
-
-
-#define TEXTLAYOUT_IMPLEMENTATION_NAME "CairoCanvas::TextLayout"
-
-/* Definition of TextLayout class */
-
-namespace cairocanvas
-{
- typedef ::cppu::WeakComponentImplHelper2< ::com::sun::star::rendering::XTextLayout,
- ::com::sun::star::lang::XServiceInfo > TextLayout_Base;
-
- class TextLayout : public ::comphelper::OBaseMutex, public TextLayout_Base
- {
- public:
- TextLayout( const ::com::sun::star::rendering::StringContext& aText,
- sal_Int8 nDirection,
- sal_Int64 nRandomSeed,
- const CanvasFont::ImplRef& rFont,
- ::cairo::Cairo* pCairo );
-
- /// Dispose all internal references
- virtual void SAL_CALL disposing();
-
- // XTextLayout
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D > > SAL_CALL queryTextShapes( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::geometry::RealRectangle2D > SAL_CALL queryInkMeasures( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::geometry::RealRectangle2D > SAL_CALL queryMeasures( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< double > SAL_CALL queryLogicalAdvancements( ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL applyLogicalAdvancements( const ::com::sun::star::uno::Sequence< double >& aAdvancements ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::geometry::RealRectangle2D SAL_CALL queryTextBounds( ) throw (::com::sun::star::uno::RuntimeException);
- virtual double SAL_CALL justify( double nSize ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual double SAL_CALL combinedJustify( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XTextLayout > >& aNextLayouts, double nSize ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::rendering::TextHit SAL_CALL getTextHit( const ::com::sun::star::geometry::RealPoint2D& aHitPoint ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::rendering::Caret SAL_CALL getCaret( sal_Int32 nInsertionIndex, sal_Bool bExcludeLigatures ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL getNextInsertionIndex( sal_Int32 nStartIndex, sal_Int32 nCaretAdvancement, sal_Bool bExcludeLigatures ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D > SAL_CALL queryVisualHighlighting( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XPolyPolygon2D > SAL_CALL queryLogicalHighlighting( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
- virtual double SAL_CALL getBaselineOffset( ) throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Int8 SAL_CALL getMainTextDirection( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCanvasFont > SAL_CALL getFont( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::rendering::StringContext SAL_CALL getText( ) throw (::com::sun::star::uno::RuntimeException);
-
- // XServiceInfo
- virtual ::rtl::OUString SAL_CALL getImplementationName() throw( ::com::sun::star::uno::RuntimeException );
- virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw( ::com::sun::star::uno::RuntimeException );
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw( ::com::sun::star::uno::RuntimeException );
-
- bool draw( ::cairo::Cairo* pCairo );
-
- protected:
- ~TextLayout(); // we're a ref-counted UNO class. _We_ destroy ourselves.
-
- private:
- // default: disabled copy/assignment
- TextLayout(const TextLayout&);
- TextLayout& operator=( const TextLayout& );
-
- void setupTextOffsets( long* outputOffsets,
- const ::com::sun::star::uno::Sequence< double >& inputOffsets,
- const ::com::sun::star::rendering::ViewState& viewState,
- const ::com::sun::star::rendering::RenderState& renderState ) const;
-
- void useFont( ::cairo::Cairo* pCairo );
-
- ::com::sun::star::rendering::StringContext maText;
- ::com::sun::star::uno::Sequence< double > maLogicalAdvancements;
- CanvasFont::ImplRef mpFont;
- sal_Int8 mnTextDirection;
- ::cairo::Cairo* mpCairo;
- };
-
-}
-
-#endif /* _TEXTLAYOUT_HXX */
diff --git a/scratch/canvas-cairo/cairo_windowgraphicdevice.cxx b/scratch/canvas-cairo/cairo_windowgraphicdevice.cxx
deleted file mode 100644
index 1322ed744..000000000
--- a/scratch/canvas-cairo/cairo_windowgraphicdevice.cxx
+++ /dev/null
@@ -1,541 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#include <canvas/debug.hxx>
-
-#include "cairo_helper.hxx"
-#include "cairo_windowgraphicdevice.hxx"
-#include "cairo_linepolypolygon.hxx"
-#include "cairo_parametricpolypolygon.hxx"
-#include "cairo_canvasbitmap.hxx"
-
-#include <canvas/canvastools.hxx>
-
-#ifndef _SV_SYSDATA_HXX
-#include <vcl/sysdata.hxx>
-#endif
-
-#ifndef _OSL_MUTEX_HXX_
-#include <osl/mutex.hxx>
-#endif
-
-#ifndef _VCL_CANVASTOOLS_HXX
-#include <vcl/canvastools.hxx>
-#endif
-
-#ifndef _BGFX_TOOLS_CANVASTOOLS_HXX
-#include <basegfx/tools/canvastools.hxx>
-#endif
-
-#ifndef _COM_SUN_STAR_RENDERING_XLINEPOLYPOLYGON2D_HPP_
-#include <com/sun/star/rendering/XLinePolyPolygon2D.hpp>
-#endif
-
-#ifdef CAIRO_CANVAS_PERF_TRACE
-#include <stdio.h>
-#endif
-
-using namespace ::com::sun::star;
-using namespace ::cairo;
-
-namespace cairocanvas
-{
- WindowGraphicDevice::WindowGraphicDevice( Window& rOutputWindow, const SystemEnvData* pSysData ) :
- WindowGraphicDevice_Base( m_aMutex ),
- mpOutputWindow( &rOutputWindow ),
- mpWindowSurface( NULL )
- {
- OSL_TRACE( "WindowGraphicDevice constructor\n" );
-
- CHECK_AND_THROW( mpOutputWindow != NULL,
- "WindowGraphicDevice::WindowGraphicDevice(): pWindow is NULL" );
- mpSysData = pSysData;
- }
-
- WindowGraphicDevice::~WindowGraphicDevice()
- {
- OSL_TRACE( "WindowGraphicDevice destructor\n" );
- }
-
- uno::Reference< rendering::XBufferController > SAL_CALL WindowGraphicDevice::getBufferController() throw (uno::RuntimeException)
- {
- ::osl::MutexGuard aGuard( m_aMutex );
-
- return uno::Reference< rendering::XBufferController >();
- }
-
- uno::Reference< rendering::XColorSpace > SAL_CALL WindowGraphicDevice::getDeviceColorSpace() throw (uno::RuntimeException)
- {
- ::osl::MutexGuard aGuard( m_aMutex );
-
- return uno::Reference< rendering::XColorSpace >();
- }
-
- geometry::RealSize2D SAL_CALL WindowGraphicDevice::getPhysicalResolution() throw (uno::RuntimeException)
- {
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if( !mpOutputWindow )
- return ::canvas::tools::createInfiniteSize2D(); // we're disposed
-
- // Map a one-by-one millimeter box to pixel
- const MapMode aOldMapMode( mpOutputWindow->GetMapMode() );
- mpOutputWindow->SetMapMode( MapMode(MAP_MM) );
- const Size aPixelSize( mpOutputWindow->LogicToPixel(Size(1,1)) );
- mpOutputWindow->SetMapMode( aOldMapMode );
-
- return ::vcl::unotools::size2DFromSize( aPixelSize );
- }
-
- geometry::RealSize2D SAL_CALL WindowGraphicDevice::getSize() throw (uno::RuntimeException)
- {
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if( !mpOutputWindow )
- return ::canvas::tools::createInfiniteSize2D(); // we're disposed
-
- // Map the pixel dimensions of the output window to millimeter
- const MapMode aOldMapMode( mpOutputWindow->GetMapMode() );
- mpOutputWindow->SetMapMode( MapMode(MAP_MM) );
- const Size aLogSize( mpOutputWindow->PixelToLogic(mpOutputWindow->GetOutputSizePixel()) );
- mpOutputWindow->SetMapMode( aOldMapMode );
-
- return ::vcl::unotools::size2DFromSize( aLogSize );
- }
-
- uno::Reference< rendering::XLinePolyPolygon2D > SAL_CALL WindowGraphicDevice::createCompatibleLinePolyPolygon( const uno::Sequence< uno::Sequence< geometry::RealPoint2D > >& points ) throw (uno::RuntimeException)
- {
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if( !mpOutputWindow )
- return uno::Reference< rendering::XLinePolyPolygon2D >(); // we're disposed
-
- return uno::Reference< rendering::XLinePolyPolygon2D >(
- new LinePolyPolygon(
- ::basegfx::unotools::polyPolygonFromPoint2DSequenceSequence( points ) ) );
- }
-
- uno::Reference< rendering::XBezierPolyPolygon2D > SAL_CALL WindowGraphicDevice::createCompatibleBezierPolyPolygon( const uno::Sequence< uno::Sequence< geometry::RealBezierSegment2D > >& points ) throw (uno::RuntimeException)
- {
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if( !mpOutputWindow )
- return uno::Reference< rendering::XBezierPolyPolygon2D >(); // we're disposed
-
- return uno::Reference< rendering::XBezierPolyPolygon2D >(
- new LinePolyPolygon(
- ::basegfx::unotools::polyPolygonFromBezier2DSequenceSequence( points ) ) );
- }
-
- uno::Reference< rendering::XBitmap > SAL_CALL WindowGraphicDevice::createCompatibleBitmap( const geometry::IntegerSize2D& size ) throw (lang::IllegalArgumentException,uno::RuntimeException)
- {
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if( !mpOutputWindow )
- return uno::Reference< rendering::XBitmap >(); // we're disposed
-
- return uno::Reference< rendering::XBitmap >( new CanvasBitmap( ::vcl::unotools::sizeFromIntegerSize2D(size),
- false,
- ImplRef(this) ) );
- }
-
- uno::Reference< rendering::XVolatileBitmap > SAL_CALL WindowGraphicDevice::createVolatileBitmap( const geometry::IntegerSize2D& size ) throw (lang::IllegalArgumentException,uno::RuntimeException)
- {
- ::osl::MutexGuard aGuard( m_aMutex );
-
- return uno::Reference< rendering::XVolatileBitmap >();
- }
-
- uno::Reference< rendering::XBitmap > SAL_CALL WindowGraphicDevice::createCompatibleAlphaBitmap( const geometry::IntegerSize2D& size ) throw (lang::IllegalArgumentException, uno::RuntimeException)
- {
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if( !mpOutputWindow )
- return uno::Reference< rendering::XBitmap >(); // we're disposed
-
- return uno::Reference< rendering::XBitmap >( new CanvasBitmap( ::vcl::unotools::sizeFromIntegerSize2D(size),
- true,
- ImplRef(this) ) );
- }
-
- uno::Reference< rendering::XVolatileBitmap > SAL_CALL WindowGraphicDevice::createVolatileAlphaBitmap( const geometry::IntegerSize2D& size ) throw (lang::IllegalArgumentException, uno::RuntimeException)
- {
- ::osl::MutexGuard aGuard( m_aMutex );
-
- return uno::Reference< rendering::XVolatileBitmap >();
- }
-
- uno::Reference< rendering::XParametricPolyPolygon2DFactory > SAL_CALL WindowGraphicDevice::getParametricPolyPolygonFactory() throw (uno::RuntimeException)
- {
- return uno::Reference< rendering::XParametricPolyPolygon2DFactory >( this );
- }
-
- sal_Bool SAL_CALL WindowGraphicDevice::hasFullScreenMode() throw (uno::RuntimeException)
- {
- ::osl::MutexGuard aGuard( m_aMutex );
-
- return false;
- }
-
- sal_Bool SAL_CALL WindowGraphicDevice::enterFullScreenMode( sal_Bool bEnter ) throw (uno::RuntimeException)
- {
- ::osl::MutexGuard aGuard( m_aMutex );
-
- return false;
- }
-
- // XParametricPolyPolygon2DFactory
- // =========================================================
-
- uno::Reference< rendering::XParametricPolyPolygon2D > SAL_CALL WindowGraphicDevice::createLinearHorizontalGradient( const uno::Sequence< double >& leftColor, const uno::Sequence< double >& rightColor ) throw (lang::IllegalArgumentException, uno::RuntimeException)
- {
- // TODO(P1): Could as well use static objects here,
- // XParametricPolyPolygon2D has no (externally visible)
- // state. OTOH, might as well leave that as it is, to allow
- // each XParametricPolyPolygon2D to hold a static
- // XPolyPolygon2D internally, and hand out the same
- // XPolyPolygon2D each time
- // XParametricPolyPolygon2D::getOutline() is called.
- return uno::Reference< rendering::XParametricPolyPolygon2D >(
- ParametricPolyPolygon::createLinearHorizontalGradient( leftColor,
- rightColor,
- this ) );
- }
-
- uno::Reference< rendering::XParametricPolyPolygon2D > SAL_CALL WindowGraphicDevice::createAxialHorizontalGradient( const uno::Sequence< double >& middleColor, const uno::Sequence< double >& endColor ) throw (lang::IllegalArgumentException, uno::RuntimeException)
- {
- // TODO(P1): Could as well use static objects here,
- // XParametricPolyPolygon2D has no (externally visible)
- // state. OTOH, might as well leave that as it is, to allow
- // each XParametricPolyPolygon2D to hold a static
- // XPolyPolygon2D internally, and hand out the same
- // XPolyPolygon2D each time
- // XParametricPolyPolygon2D::getOutline() is called.
- return uno::Reference< rendering::XParametricPolyPolygon2D >(
- ParametricPolyPolygon::createAxialHorizontalGradient( middleColor,
- endColor,
- this ) );
- }
-
- uno::Reference< rendering::XParametricPolyPolygon2D > SAL_CALL WindowGraphicDevice::createEllipticalGradient( const uno::Sequence< double >& centerColor, const uno::Sequence< double >& endColor, const geometry::RealRectangle2D& boundRect ) throw (lang::IllegalArgumentException, uno::RuntimeException)
- {
- // TODO(P1): Could as well use static objects here,
- // XParametricPolyPolygon2D has no (externally visible)
- // state. OTOH, might as well leave that as it is, to allow
- // each XParametricPolyPolygon2D to hold a static
- // XPolyPolygon2D internally, and hand out the same
- // XPolyPolygon2D each time
- // XParametricPolyPolygon2D::getOutline() is called.
- return uno::Reference< rendering::XParametricPolyPolygon2D >(
- ParametricPolyPolygon::createEllipticalGradient( centerColor,
- endColor,
- boundRect,
- this ) );
- }
-
- uno::Reference< rendering::XParametricPolyPolygon2D > SAL_CALL WindowGraphicDevice::createRectangularGradient( const uno::Sequence< double >& centerColor, const uno::Sequence< double >& endColor, const geometry::RealRectangle2D& boundRect ) throw (lang::IllegalArgumentException, uno::RuntimeException)
- {
- // TODO(P1): Could as well use static objects here,
- // XParametricPolyPolygon2D has no (externally visible)
- // state. OTOH, might as well leave that as it is, to allow
- // each XParametricPolyPolygon2D to hold a static
- // XPolyPolygon2D internally, and hand out the same
- // XPolyPolygon2D each time
- // XParametricPolyPolygon2D::getOutline() is called.
- return uno::Reference< rendering::XParametricPolyPolygon2D >(
- ParametricPolyPolygon::createRectangularGradient( centerColor,
- endColor,
- boundRect,
- this ) );
- }
-
- uno::Reference< rendering::XParametricPolyPolygon2D > SAL_CALL WindowGraphicDevice::createVerticalLinesHatch( const uno::Sequence< double >& leftColor, const uno::Sequence< double >& rightColor ) throw (lang::IllegalArgumentException, uno::RuntimeException)
- {
- // TODO(F1): hatch factory NYI
- return uno::Reference< rendering::XParametricPolyPolygon2D >();
- }
-
- uno::Reference< rendering::XParametricPolyPolygon2D > SAL_CALL WindowGraphicDevice::createOrthogonalLinesHatch( const uno::Sequence< double >& leftTopColor, const uno::Sequence< double >& rightBottomColor ) throw (lang::IllegalArgumentException, uno::RuntimeException)
- {
- // TODO(F1): hatch factory NYI
- return uno::Reference< rendering::XParametricPolyPolygon2D >();
- }
-
- uno::Reference< rendering::XParametricPolyPolygon2D > SAL_CALL WindowGraphicDevice::createThreeCrossingLinesHatch( const uno::Sequence< double >& startColor, const uno::Sequence< double >& endColor ) throw (lang::IllegalArgumentException, uno::RuntimeException)
- {
- // TODO(F1): hatch factory NYI
- return uno::Reference< rendering::XParametricPolyPolygon2D >();
- }
-
- uno::Reference< rendering::XParametricPolyPolygon2D > SAL_CALL WindowGraphicDevice::createFourCrossingLinesHatch( const uno::Sequence< double >& startColor, const uno::Sequence< double >& endColor ) throw (lang::IllegalArgumentException, uno::RuntimeException)
- {
- // TODO(F1): hatch factory NYI
- return uno::Reference< rendering::XParametricPolyPolygon2D >();
- }
-
- // XPropertySet
- // ==============================================
-
- uno::Reference< beans::XPropertySetInfo > SAL_CALL WindowGraphicDevice::getPropertySetInfo( ) throw (uno::RuntimeException)
- {
- // This is a stealth property set
- return uno::Reference< beans::XPropertySetInfo >();
- }
-
- void SAL_CALL WindowGraphicDevice::setPropertyValue( const ::rtl::OUString& aPropertyName, const uno::Any& aValue ) throw (beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
- {
- // all our properties are read-only
- throw beans::PropertyVetoException();
- }
-
- uno::Any SAL_CALL WindowGraphicDevice::getPropertyValue( const ::rtl::OUString& PropertyName ) throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
- {
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if( PropertyName.equalsAscii( "DeviceHandle" ) )
- return uno::makeAny( reinterpret_cast< sal_Int64 >( mpOutputWindow ) );
-
- throw beans::UnknownPropertyException();
- }
-
- void SAL_CALL WindowGraphicDevice::addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const uno::Reference< beans::XPropertyChangeListener >& xListener ) throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
- {
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if( aPropertyName.equalsAscii( "DeviceHandle" ) )
- return; // ignore, we only have read-only properties, so
- // the listener won't notice the difference
-
- throw beans::UnknownPropertyException();
- }
-
- void SAL_CALL WindowGraphicDevice::removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const uno::Reference< beans::XPropertyChangeListener >& aListener ) throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
- {
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if( aPropertyName.equalsAscii( "DeviceHandle" ) )
- return; // ignore, we only have read-only properties, so
- // the listener was not added in the first place
-
- throw beans::UnknownPropertyException();
- }
-
- void SAL_CALL WindowGraphicDevice::addVetoableChangeListener( const ::rtl::OUString& PropertyName, const uno::Reference< beans::XVetoableChangeListener >& aListener ) throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
- {
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if( PropertyName.equalsAscii( "DeviceHandle" ) )
- return; // ignore, we only have read-only properties, so
- // the listener won't notice the difference
-
- throw beans::UnknownPropertyException();
- }
-
- void SAL_CALL WindowGraphicDevice::removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const uno::Reference< beans::XVetoableChangeListener >& aListener ) throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
- {
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if( PropertyName.equalsAscii( "DeviceHandle" ) )
- return; // ignore, we only have read-only properties, so
- // the listener was not added in the first place
-
- throw beans::UnknownPropertyException();
- }
-
-#define IMPLEMENTATION_NAME "CairoCanvas::WindowGraphicDevice"
-#define SERVICE_NAME "com.sun.star.rendering.GraphicDevice"
-
- ::rtl::OUString SAL_CALL WindowGraphicDevice::getImplementationName( ) throw (uno::RuntimeException)
- {
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
- }
-
- sal_Bool SAL_CALL WindowGraphicDevice::supportsService( const ::rtl::OUString& ServiceName ) throw (uno::RuntimeException)
- {
- return ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME ) );
- }
-
- uno::Sequence< ::rtl::OUString > SAL_CALL WindowGraphicDevice::getSupportedServiceNames( ) throw (uno::RuntimeException)
- {
- uno::Sequence< ::rtl::OUString > aRet(1);
- aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
-
- return aRet;
- }
-
- void SAL_CALL WindowGraphicDevice::disposing()
- {
- OSL_TRACE("WindowGraphicDevice disposing\n");
-
- ::osl::MutexGuard aGuard( m_aMutex );
-
- // release all references
- mpOutputWindow = NULL;
-
- if( mpWindowSurface ) {
- OSL_TRACE( "going to destroy mpWindowSurface\n" );
- cairo_surface_destroy( mpWindowSurface );
- mpWindowSurface = NULL;
- }
- }
-
- OutputDevice* WindowGraphicDevice::getOutDev() const
- {
- return mpOutputWindow;
- }
-
- Surface* WindowGraphicDevice::getSurface()
- {
- if( !mpWindowSurface ) {
- Size aSize = getSurfaceSize();
- mpWindowSurface = (Surface*) cairoHelperGetSurface( mpSysData,
- mpOutputWindow->GetOutOffXPixel(), mpOutputWindow->GetOutOffYPixel(),
- aSize.Width(), aSize.Height() );
- }
- return mpWindowSurface;
- }
-
- Surface* WindowGraphicDevice::getSurface( Bitmap& rBitmap )
- {
- Surface *pSurface = NULL;
-
- BitmapSystemData aData;
- if( rBitmap.GetSystemData( aData ) ) {
- const Size& rSize = rBitmap.GetSizePixel();
-
- pSurface = (Surface *) cairoHelperGetSurface( mpSysData, aData, rSize.Width(), rSize.Height() );
- }
-
- return pSurface;
- }
-
- Size WindowGraphicDevice::getSurfaceSize() const
- {
- return mpOutputWindow->GetOutputSizePixel();
- }
-
- // NoConst version is always able to create similar surface, the
- // const version cannot modify this instance and thus can provide
- // similar surface only once mpWindowSurface is already created
- Surface* WindowGraphicDevice::getSimilarSurfaceNoConst( Size aSize, Content aContent )
- {
- OSL_TRACE( "called WindowGraphicDevice::getSimilarSurfaceNoConst %d x %d\n", aSize.Width(), aSize.Height() );
- if( ! mpWindowSurface )
- getSurface();
-
- return getSimilarSurface( aSize, aContent );
-
- }
-
- Surface* WindowGraphicDevice::getSimilarSurface( Size aSize, Content aContent ) const
- {
- OSL_TRACE( "called WindowGraphicDevice::getSimilarSurface %d x %d\n", aSize.Width(), aSize.Height() );
- if( mpWindowSurface ) {
- //OSL_TRACE( "try image surface\n" );
-
- //return cairo_image_surface_create( CAIRO_FORMAT_ARGB32, aSize.Width(), aSize.Height() );
- return cairo_surface_create_similar( mpWindowSurface, aContent, aSize.Width(), aSize.Height() );
- }
-
- OSL_TRACE( "warning: called WindowGraphicDevice::getSimilarSurface before mpWindowSurface created. use getSimilarSurfaceNoConst if possible" );
-
- return NULL;
- }
-
- Surface* WindowGraphicDevice::getSimilarSurface( Content aContent ) const
- {
- return getSimilarSurface( getSurfaceSize(), aContent );
- }
-
- void WindowGraphicDevice::flush() const
- {
- cairoHelperFlush( mpSysData );
- }
-
- #ifdef CAIRO_CANVAS_PERF_TRACE
-
- void WindowGraphicDevice::startPerfTrace( struct timespec *pTimer ) const
- {
- flush();
- clock_gettime( CLOCK_REALTIME, pTimer );
- }
-
- void WindowGraphicDevice::stopPerfTrace( struct timespec *pTimer, char *operationName ) const
- {
- struct timespec perfTimerStop;
- char pad[71];
- int i, len;
-
- flush();
- clock_gettime( CLOCK_REALTIME, &perfTimerStop );
-
- len = strlen( operationName );
- for (i = 0; i < 70 - len; i ++)
- pad [i] = ' ';
- pad [i] = 0;
- fprintf (stderr, "\t%s took %s%.4f seconds\n",
- operationName, pad,
- (((double) perfTimerStop.tv_nsec) - ((double) pTimer->tv_nsec))/1000000000.0 +
- (perfTimerStop.tv_sec - pTimer->tv_sec));
- }
-
- #endif
-}
diff --git a/scratch/canvas-cairo/cairo_windowgraphicdevice.hxx b/scratch/canvas-cairo/cairo_windowgraphicdevice.hxx
deleted file mode 100644
index 34446bcaa..000000000
--- a/scratch/canvas-cairo/cairo_windowgraphicdevice.hxx
+++ /dev/null
@@ -1,214 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile$
- *
- * $Revision$
- *
- * last change: $Author$ $Date$
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#ifndef _VCLCANVAS_WINDOWGRAPHICDEVICE_HXX
-#define _VCLCANVAS_WINDOWGRAPHICDEVICE_HXX
-
-#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#endif
-#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
-#include <com/sun/star/beans/XPropertySet.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_XGRAPHICDEVICE_HPP_
-#include <com/sun/star/rendering/XGraphicDevice.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_XPARAMETRICPOLYPOLYGON2DFACTORY_HPP_
-#include <com/sun/star/rendering/XParametricPolyPolygon2DFactory.hpp>
-#endif
-#ifndef _COM_SUN_STAR_RENDERING_XCANVAS_HPP_
-#include <com/sun/star/rendering/XCanvas.hpp>
-#endif
-
-#ifndef _CPPUHELPER_COMPBASE4_HXX_
-#include <cppuhelper/compbase4.hxx>
-#endif
-#ifndef _COMPHELPER_BROADCASTHELPER_HXX_
-#include <comphelper/broadcasthelper.hxx>
-#endif
-
-#ifndef _COMPHELPER_IMPLEMENTATIONREFERENCE_HXX
-#include <comphelper/implementationreference.hxx>
-#endif
-
-#ifndef _SV_OUTDEV_HXX
-#include <vcl/outdev.hxx>
-#endif
-#ifndef _SV_WINDOW_HXX
-#include <vcl/window.hxx>
-#endif
-
-#include "cairo_cairo.hxx"
-
-#define CAIRO_CANVAS_PERF_TRACE
-
-namespace cairo {
-
-// including glitz here conflicts with boost headers
-// #ifdef CAIRO_HAS_GLITZ_SURFACE
-// #include <glitz.h>
-// #endif
-
- typedef struct _glitz_surface glitz_surface_t;
- typedef struct _glitz_drawable glitz_drawable_t;
-}
-
-/* Definition of WindowGraphicDevice class */
-
-namespace cairocanvas
-{
- typedef ::cppu::WeakComponentImplHelper4< ::com::sun::star::rendering::XGraphicDevice,
- ::com::sun::star::rendering::XParametricPolyPolygon2DFactory,
- ::com::sun::star::beans::XPropertySet,
- ::com::sun::star::lang::XServiceInfo > WindowGraphicDevice_Base;
-
- class WindowGraphicDevice : public ::comphelper::OBaseMutex, public WindowGraphicDevice_Base
- {
- public:
-
- typedef ::comphelper::ImplementationReference< WindowGraphicDevice,
- ::com::sun::star::rendering::XGraphicDevice > ImplRef;
-
- /** Create an XWindowGraphicDevice for given VCL window
- */
- WindowGraphicDevice( Window& rOutputWindow, const SystemEnvData* pSysData );
-
- /// Dispose all internal references
- virtual void SAL_CALL disposing();
-
- // XWindowGraphicDevice
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBufferController > SAL_CALL getBufferController( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XColorSpace > SAL_CALL getDeviceColorSpace( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::geometry::RealSize2D SAL_CALL getPhysicalResolution( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::geometry::RealSize2D SAL_CALL getSize( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XLinePolyPolygon2D > SAL_CALL createCompatibleLinePolyPolygon( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::geometry::RealPoint2D > >& points ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBezierPolyPolygon2D > SAL_CALL createCompatibleBezierPolyPolygon( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::geometry::RealBezierSegment2D > >& points ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > SAL_CALL createCompatibleBitmap( const ::com::sun::star::geometry::IntegerSize2D& size ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XVolatileBitmap > SAL_CALL createVolatileBitmap( const ::com::sun::star::geometry::IntegerSize2D& size ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > SAL_CALL createCompatibleAlphaBitmap( const ::com::sun::star::geometry::IntegerSize2D& size ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XVolatileBitmap > SAL_CALL createVolatileAlphaBitmap( const ::com::sun::star::geometry::IntegerSize2D& size ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2DFactory > SAL_CALL getParametricPolyPolygonFactory( ) throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL hasFullScreenMode( ) throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL enterFullScreenMode( sal_Bool bEnter ) throw (::com::sun::star::uno::RuntimeException);
-
- // XParametricPolyPolygon2DFactory
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createLinearHorizontalGradient( const ::com::sun::star::uno::Sequence< double >& leftColor, const ::com::sun::star::uno::Sequence< double >& rightColor ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createAxialHorizontalGradient( const ::com::sun::star::uno::Sequence< double >& middleColor, const ::com::sun::star::uno::Sequence< double >& endColor ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createEllipticalGradient( const ::com::sun::star::uno::Sequence< double >& centerColor, const ::com::sun::star::uno::Sequence< double >& endColor, const ::com::sun::star::geometry::RealRectangle2D& boundRect ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createRectangularGradient( const ::com::sun::star::uno::Sequence< double >& centerColor, const ::com::sun::star::uno::Sequence< double >& endColor, const ::com::sun::star::geometry::RealRectangle2D& boundRect ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createVerticalLinesHatch( const ::com::sun::star::uno::Sequence< double >& leftColor, const ::com::sun::star::uno::Sequence< double >& rightColor ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createOrthogonalLinesHatch( const ::com::sun::star::uno::Sequence< double >& leftTopColor, const ::com::sun::star::uno::Sequence< double >& rightBottomColor ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createThreeCrossingLinesHatch( const ::com::sun::star::uno::Sequence< double >& startColor, const ::com::sun::star::uno::Sequence< double >& endColor ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createFourCrossingLinesHatch( const ::com::sun::star::uno::Sequence< double >& startColor, const ::com::sun::star::uno::Sequence< double >& endColor ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-
- // XPropertySet
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
-
- // XServiceInfo
- virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException);
-
- OutputDevice* getOutDev() const;
-
- Size getSurfaceSize() const;
- ::cairo::Surface* getSurface();
- ::cairo::Surface* getSurface( Bitmap& rBitmap );
-
- ::cairo::Surface* getSimilarSurface( ::cairo::Content aContent = ::cairo::CAIRO_CONTENT_COLOR_ALPHA ) const;
- ::cairo::Surface* getSimilarSurface( Size aSize, ::cairo::Content aContent = ::cairo::CAIRO_CONTENT_COLOR_ALPHA ) const;
- ::cairo::Surface* getSimilarSurfaceNoConst( Size aSize, ::cairo::Content aContent = ::cairo::CAIRO_CONTENT_COLOR_ALPHA );
-
- void flush() const;
-
- #ifdef CAIRO_CANVAS_PERF_TRACE
- #include <time.h>
- void startPerfTrace( struct timespec *pTimer ) const;
- void stopPerfTrace( struct timespec *pTimer, char *operationName ) const;
- #endif
-
- protected:
- ~WindowGraphicDevice(); // we're a ref-counted UNO class. _We_ destroy ourselves.
-
- private:
- // default: disabled copy/assignment
- WindowGraphicDevice(const WindowGraphicDevice&);
- WindowGraphicDevice& operator=( const WindowGraphicDevice& );
-
- // TODO(Q3): Lifetime issue. Cannot control pointer validity
- // over object lifetime, since we're a UNO component. Now that
- // we've changed the ::Window canvas reference to a weak ref,
- // might be okay to hold a uno::Reference to the VCL window
- // here.
- Window* mpOutputWindow;
-
- const SystemEnvData* mpSysData;
- ::cairo::Surface* mpWindowSurface;
- };
-}
-
-#endif /* _VCLCANVAS_WINDOWGRAPHICDEVICE_HXX */
diff --git a/scratch/canvas-cairo/exports.dxp b/scratch/canvas-cairo/exports.dxp
deleted file mode 100644
index 0c2e3e7cd..000000000
--- a/scratch/canvas-cairo/exports.dxp
+++ /dev/null
@@ -1,3 +0,0 @@
-component_getImplementationEnvironment
-component_writeInfo
-component_getFactory \ No newline at end of file
diff --git a/scratch/canvas-cairo/exports.map b/scratch/canvas-cairo/exports.map
deleted file mode 100644
index e15684fa6..000000000
--- a/scratch/canvas-cairo/exports.map
+++ /dev/null
@@ -1,9 +0,0 @@
-CAN_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- component_getDescriptionFunc;
- local:
- *;
-};
diff --git a/scratch/canvas-cairo/makefile.mk b/scratch/canvas-cairo/makefile.mk
deleted file mode 100644
index d473f612a..000000000
--- a/scratch/canvas-cairo/makefile.mk
+++ /dev/null
@@ -1,144 +0,0 @@
-#*************************************************************************
-#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.11 $
-#
-# last change: $Author: rodo $ $Date: 2005/10/12 12:43:52 $
-#
-# The Contents of this file are made available subject to the terms of
-# either of the following licenses
-#
-# - GNU Lesser General Public License Version 2.1
-# - Sun Industry Standards Source License Version 1.1
-#
-# Sun Microsystems Inc., October, 2000
-#
-# GNU Lesser General Public License Version 2.1
-# =============================================
-# Copyright 2000 by Sun Microsystems, Inc.
-# 901 San Antonio Road, Palo Alto, CA 94303, USA
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License version 2.1, as published by the Free Software Foundation.
-#
-# This library 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 for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-# MA 02111-1307 USA
-#
-#
-# Sun Industry Standards Source License Version 1.1
-# =================================================
-# The contents of this file are subject to the Sun Industry Standards
-# Source License Version 1.1 (the "License"); You may not use this file
-# except in compliance with the License. You may obtain a copy of the
-# License at http://www.openoffice.org/license.html.
-#
-# Software provided under this License is provided on an "AS IS" basis,
-# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-# See the License for the specific provisions governing your rights and
-# obligations concerning the Software.
-#
-# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-#
-# Copyright: 2000 by Sun Microsystems, Inc.
-#
-# All Rights Reserved.
-#
-# Contributor(s): _______________________________________
-#
-#
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=canvas
-TARGET=cairocanvas
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------------
-
-.INCLUDE : settings.mk
-DLLPRE =
-
-# --- Nothing to do if we're compiling with --disable-cairo -----------
-.IF "$(ENABLE_CAIRO)" != "TRUE"
-@all:
- @echo "Building without cairo support..."
-.ENDIF
-
-# --- Common ----------------------------------------------------------
-
-.IF "$(GUI)"=="UNX"
-
-.IF "$(SYSTEM_CAIRO)" == "YES"
-CFLAGS+=$(CAIRO_CFLAGS)
-.ELSE
-CFLAGS+=-I$(SOLARINCDIR)/cairo
-.ENDIF
-
-.IF "$(verbose)"!="" || "$(VERBOSE)"!=""
-CDEFS+= -DVERBOSE
-.ENDIF
-
-# Disable optimization for SunCC SPARC
-.IF "$(OS)$(CPU)"=="SOLARISS" && "$(COM)"!="GCC"
-NOOPTFILES = $(SLO)$/cairo_canvashelper_texturefill.obj
-.ENDIF
-
-SLOFILES = $(SLO)$/cairo_spritecanvas.obj \
- $(SLO)$/cairo_linepolypolygon.obj \
- $(SLO)$/cairo_backbuffer.obj \
- $(SLO)$/cairo_bitmapbackbuffer.obj \
- $(SLO)$/cairo_canvasfont.obj \
- $(SLO)$/cairo_windowgraphicdevice.obj \
- $(SLO)$/cairo_canvasbitmap.obj \
- $(SLO)$/cairo_canvasbitmaphelper.obj \
- $(SLO)$/cairo_canvashelper.obj \
- $(SLO)$/cairo_canvashelper_texturefill.obj \
- $(SLO)$/cairo_textlayout.obj \
- $(SLO)$/cairo_canvascustomsprite.obj \
- $(SLO)$/cairo_cachedbitmap.obj \
- $(SLO)$/cairo_redrawmanager.obj \
- $(SLO)$/cairo_impltools.obj \
- $(SLO)$/cairo_parametricpolypolygon.obj \
- $(SLO)$/cairo_helper.obj
-
-
-SHL1TARGET=$(TARGET).uno
-
-SHL1STDLIBS= $(TOOLSLIB) $(CPPULIB) $(SALLIB) $(VCLLIB) $(COMPHELPERLIB) $(CPPUHELPERLIB) $(BASEGFXLIB) $(CANVASTOOLSLIB) $(GOODIESLIB) -L$(SOLARLIBDIR)
-
-.IF "$(SYSTEM_CAIRO)" == "YES"
-SHL1STDLIBS+= $(CAIRO_LIBS) -lX11 -lrt
-.ELSE
-SHL1STDLIBS+= -lcairo -lX11 -lrt
-.ENDIF
-
-SHL1IMPLIB=i$(TARGET)
-SHL1LIBS=$(SLB)$/$(TARGET).lib
-SHL1DEF=$(MISC)$/$(SHL1TARGET).def
-
-.IF "$(OS)"=="MACOSX"
-.ELSE
-SHL1VERSIONMAP=exports.map
-.ENDIF
-
-DEF1NAME=$(SHL1TARGET)
-DEF1EXPORTFILE=exports.dxp
-
-.ENDIF
-
-# ==========================================================================
-
-.INCLUDE : target.mk
diff --git a/scratch/mono-uno-bootstrap/POSITION b/scratch/mono-uno-bootstrap/POSITION
deleted file mode 100644
index 323e9a02f..000000000
--- a/scratch/mono-uno-bootstrap/POSITION
+++ /dev/null
@@ -1,2 +0,0 @@
-cli_ure/source/bootstrap
-
diff --git a/scratch/mono-uno-bootstrap/assembly.cs b/scratch/mono-uno-bootstrap/assembly.cs
deleted file mode 100644
index d51efe6cd..000000000
--- a/scratch/mono-uno-bootstrap/assembly.cs
+++ /dev/null
@@ -1,4 +0,0 @@
-[assembly:System.Reflection.AssemblyProduct( "CLI-UNO Language Binding" )]
-[assembly:System.Reflection.AssemblyDescription( "CLI-UNO Helper Library" )]
-[assembly:System.Reflection.AssemblyDelaySign(false)]
-[assembly:System.Reflection.AssemblyCompany( "OpenOffice.org" )]
diff --git a/scratch/mono-uno-bootstrap/makefile.mk b/scratch/mono-uno-bootstrap/makefile.mk
deleted file mode 100644
index 81e8e2863..000000000
--- a/scratch/mono-uno-bootstrap/makefile.mk
+++ /dev/null
@@ -1,142 +0,0 @@
-#************************************************************************
-#
-# $RCSfile: $
-#
-# $Revision: $
-#
-# last change: $Author: $ $Date: $
-#
-# The Contents of this file are made available subject to the terms of
-# either of the following licenses
-#
-# - GNU Lesser General Public License Version 2.1
-# - Sun Industry Standards Source License Version 1.1
-#
-# Sun Microsystems Inc., October, 2000
-#
-# GNU Lesser General Public License Version 2.1
-# =============================================
-# Copyright 2000 by Sun Microsystems, Inc.
-# 901 San Antonio Road, Palo Alto, CA 94303, USA
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License version 2.1, as published by the Free Software Foundation.
-#
-# This library 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 for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-# MA 02111-1307 USA
-#
-#
-# Sun Industry Standards Source License Version 1.1
-# =================================================
-# The contents of this file are subject to the Sun Industry Standards
-# Source License Version 1.1 (the "License"); You may not use this file
-# except in compliance with the License. You may obtain a copy of the
-# License at http://www.openoffice.org/license.html.
-#
-# Software provided under this License is provided on an "AS IS" basis,
-# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-# See the License for the specific provisions governing your rights and
-# obligations concerning the Software.
-#
-# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-#
-# Copyright: 2000 by Sun Microsystems, Inc.
-#
-# All Rights Reserved.
-#
-# Contributor(s): _______________________________________
-#
-#
-#***********************************************************************/
-
-PRJ = ..$/..
-PRJNAME = cli_ure
-
-TARGET = cli_uno_glue
-ENABLE_EXCEPTIONS=TRUE
-
-.INCLUDE : settings.mk
-.INCLUDE : $(PRJ)$/util$/makefile.pmk
-
-.IF "$(USE_SHELL)"!="4nt"
-ECHOQUOTE='
-# emacs is a fool: '
-.ELSE
-ECHOQUOTE=
-.ENDIF
-
-.IF "$(ENABLE_MONO)" != "YES"
-dummy:
- @echo "Mono binding disabled - skipping ..."
-.ELSE
-
-#!!! Always change version if code has changed. Provide a publisher
-#policy assembly!!!
-ASSEMBLY_VERSION="1.0.0.0"
-
-ASSEMBLY_KEY="$(BIN)$/cliuno.snk"
-
-ASSEMBLY_ATTRIBUTES = $(MISC)$/assembly_cppuhelper.cs
-
-ALLTAR : \
- $(SHL1TARGETN) \
- $(ASSEMBLY_ATTRIBUTES) \
- $(BIN)$/cli_cppuhelper.dll
-
-CSFILES = \
- managed_bootstrap.cs
-
-ASSEMBLY_KEY_X=$(subst,\,\\ $(ASSEMBLY_KEY))
-
-$(ASSEMBLY_ATTRIBUTES) .PHONY:
- $(GNUCOPY) -p assembly.cs $@
- +echo $(ECHOQUOTE) \
- [assembly:System.Reflection.AssemblyVersion( $(ASSEMBLY_VERSION) )] \
- [assembly:System.Reflection.AssemblyKeyFile($(ASSEMBLY_KEY_X))] $(ECHOQUOTE) \
- >> $@
-
-EXTERNAL_DIR=$(PRJ)$/..$/external/cli
-
-$(OUT)$/bin$/cli_types.dll : $(EXTERNAL_DIR)$/cli_types.dll
- +$(COPY) $< $@
-
-$(BIN)$/cli_cppuhelper.dll : $(CSFILES) $(OUT)$/bin$/cli_types.dll
- +$(CSC) $(CSCFLAGS) \
- -target:library \
- -out:$@ \
- -reference:$(OUT)$/bin$/cli_types.dll \
- -reference:System.dll \
- $(CSFILES)
- @echo "If code has changed then provide a policy assembly and change the version!"
-
-CFLAGS += `pkg-config --cflags mono`
-
-SLOFILES= \
- $(SLO)$/native_glue.obj
-
-SHL1OBJS = $(SLOFILES)
-
-SHL1STDLIBS = \
- $(SALLIB) \
- $(CPPULIB) \
- $(CPPUHELPERLIB)
-
-SHL1STDLIBS += `pkg-config --libs mono`
-
-SHL1TARGET = $(TARGET)
-
-.ENDIF
-
-.INCLUDE : $(PRJ)$/util$/target.pmk
-.INCLUDE : target.mk
-
diff --git a/scratch/mono-uno-bootstrap/managed_bootstrap.cs b/scratch/mono-uno-bootstrap/managed_bootstrap.cs
deleted file mode 100644
index 4855a42b7..000000000
--- a/scratch/mono-uno-bootstrap/managed_bootstrap.cs
+++ /dev/null
@@ -1,140 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile: $
- *
- * $Revision: $
- *
- * last change: $Author: $ $Date: $
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-namespace uno.util
-{
-
-using System;
-using System.Collections;
-using System.Runtime.InteropServices;
-
-public class Bootstrap
-{
- private Bootstrap() {}
-
- public static unoidl.com.sun.star.uno.XComponentContext
- defaultBootstrap_InitialComponentContext()
- {
- return defaultBootstrap_InitialComponentContext(null, null);
- }
-
- public static unoidl.com.sun.star.uno.XComponentContext
- defaultBootstrap_InitialComponentContext(
- string iniFile,
- IDictionaryEnumerator bootstrapParameters)
- {
- if (bootstrapParameters != null)
- {
- bootstrapParameters.Reset();
- while (bootstrapParameters.MoveNext())
- {
- string key = (string)bootstrapParameters.Key;
- string value = (string)bootstrapParameters.Value;
-
- native_bootstrap_set(key, key.Length, value, value.Length);
- }
- }
-
- System.Console.WriteLine("Bootstrap with ini " + iniFile);
- // bootstrap native uno
- IntPtr context;
- if (iniFile == null)
- {
- context = native_defaultBootstrap_InitialComponentContext();
- }
- else
- {
- context = native_defaultBootstrap_InitialComponentContext(iniFile, iniFile.Length);
- }
-
- return (unoidl.com.sun.star.uno.XComponentContext)ExtractObject(context);
- }
-
- public static unoidl.com.sun.star.uno.XComponentContext bootstrap()
- {
- return (unoidl.com.sun.star.uno.XComponentContext)ExtractObject(native_bootstrap());
- }
-
- static object ExtractObject(IntPtr managed)
- {
- GCHandle handle = GCHandle.op_Explicit(managed);
- object ret = handle.Target;
- handle.Free();
- return ret;
- }
-
- [DllImport("cli_uno_glue")]
- private static extern void native_bootstrap_set(
- [MarshalAs(UnmanagedType.LPWStr)] string key, int keyLength,
- [MarshalAs(UnmanagedType.LPWStr)] string value, int valueLength);
-
- [DllImport("cli_uno_glue", EntryPoint="native_defaultBootstrap_InitialComponentContext")]
- private static extern IntPtr native_defaultBootstrap_InitialComponentContext();
-
- [DllImport("cli_uno_glue", EntryPoint="native_defaultBootstrap_InitialComponentContext_iniFile")]
- private static extern IntPtr native_defaultBootstrap_InitialComponentContext(
- [MarshalAs(UnmanagedType.LPWStr)] string iniFile, int nameLength);
-
- [DllImport("cli_uno_glue")]
- private static extern IntPtr native_bootstrap();
-}
-
-}
diff --git a/scratch/mono-uno-bootstrap/native_glue.cxx b/scratch/mono-uno-bootstrap/native_glue.cxx
deleted file mode 100644
index dc75b434e..000000000
--- a/scratch/mono-uno-bootstrap/native_glue.cxx
+++ /dev/null
@@ -1,148 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile: $
- *
- * $Revision: $
- *
- * last change: $Author: $ $Date: $
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): _______________________________________
- *
- *
- ************************************************************************/
-
-#ifndef _RTL_USTRING_HXX_
-#include "rtl/ustring.hxx"
-#endif
-#ifndef _RTL_BOOTSTRAP_HXX_
-#include "rtl/bootstrap.hxx"
-#endif
-#ifndef _CPPUHELPER_BOOTSTRAP_HXX_
-#include "cppuhelper/bootstrap.hxx"
-#endif
-#ifndef _UNO_MAPPING_HXX_
-#include "uno/mapping.hxx"
-#endif
-extern "C" {
-#include "mono/metadata/object.h"
-}
-
-#define OUSTR(x) ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(x) )
-
-using namespace com::sun::star::uno;
-
-static void * to_cli( Reference< XComponentContext > const & context )
-{
- Mapping mapping( OUSTR( CPPU_CURRENT_LANGUAGE_BINDING_NAME ), OUSTR( UNO_LB_CLI ) );
- OSL_ASSERT( mapping.is() );
- if (! mapping.is() )
- {
- // FIXME do something
- return 0;
- }
-
- return (void *)mono_gchandle_new( (MonoObject *)mapping.mapInterface( context.get(), ::getCppuType( &context ) ), sal_False );
-}
-
-extern "C" {
-
-void SAL_CALL native_bootstrap_set( const sal_Unicode* pName, sal_Int32 nNameLength,
- const sal_Unicode* pValue, sal_Int32 nValueLength )
- SAL_THROW_EXTERN_C()
-{
- ::rtl::OUString const name( pName, nNameLength );
- ::rtl::OUString const value( pValue, nValueLength );
-
- ::rtl::Bootstrap::set( name, value );
-}
-
-void * SAL_CALL native_defaultBootstrap_InitialComponentContext()
- SAL_THROW_EXTERN_C()
-{
- try {
- Reference< XComponentContext > xContext = ::cppu::defaultBootstrap_InitialComponentContext();
-
- return to_cli( xContext );
- } catch (const Exception &ex) {
- fprintf( stderr, "Exception bootstrapping '%s'\n",
- (const sal_Char *) rtl::OUStringToOString( ex.Message, RTL_TEXTENCODING_UTF8 ) );
- return NULL;
- }
-}
-
-void * SAL_CALL native_defaultBootstrap_InitialComponentContext_iniFile( const sal_Unicode *pIniFile, sal_Int32 nNameLength )
- SAL_THROW_EXTERN_C()
-{
- ::rtl::OUString sFileName( pIniFile, nNameLength );
-
- try {
- Reference< XComponentContext > xContext = ::cppu::defaultBootstrap_InitialComponentContext( sFileName );
- if (!xContext.is())
- fprintf( stderr, "Bootstrap context is in fact NULL\n" );
-
- return to_cli( xContext );
- } catch (const Exception &ex) {
- rtl::OString aIni = rtl::OUStringToOString( sFileName, RTL_TEXTENCODING_UTF8 );
- fprintf( stderr, "Exception bootstrapping from ini '%s' (%d) '%s'\n", (const sal_Char *) aIni, nNameLength,
- (const sal_Char *) rtl::OUStringToOString( ex.Message, RTL_TEXTENCODING_UTF8 ) );
- return NULL;
- }
-}
-
-void * SAL_CALL native_bootstrap()
- SAL_THROW_EXTERN_C()
-{
- Reference< XComponentContext > xContext = ::cppu::bootstrap();
-
- return to_cli( xContext );
-}
-
-} // extern "C"
diff --git a/scratch/mono-uno-climaker/Climaker.cs b/scratch/mono-uno-climaker/Climaker.cs
deleted file mode 100644
index 4e35a05be..000000000
--- a/scratch/mono-uno-climaker/Climaker.cs
+++ /dev/null
@@ -1,639 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile: Climaker.cs,v $
- *
- * $Revision: 1.1 $
- *
- * last change: $Author: martink $ $Date: 2005/09/29 13:01:33 $
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): Martin Kretzschmar_____________________
- *
- *
- ************************************************************************/
-
-using System;
-using System.Collections;
-using System.Diagnostics;
-using System.IO;
-using System.Reflection;
-using System.Reflection.Emit;
-
-using uno.util;
-using unoidl.com.sun.star.container;
-using unoidl.com.sun.star.lang;
-using unoidl.com.sun.star.reflection;
-using unoidl.com.sun.star.registry;
-using unoidl.com.sun.star.uno;
-
-struct OptionInfo
-{
- public string m_name;
- public char m_short_option;
- public bool m_has_argument;
-
- private OptionInfo(string name, char short_option, bool has_argument)
- {
- m_name = name;
- m_short_option = short_option;
- m_has_argument = has_argument;
- }
-
- private static OptionInfo[] s_option_infos = new OptionInfo[] {
- new OptionInfo("out", 'O', true),
- new OptionInfo("types", 'T', true),
- new OptionInfo("extra", 'X', true),
- new OptionInfo("reference", 'r', true),
- new OptionInfo("keyfile", 'k', true),
- new OptionInfo("delaySign", 'd', true),
- new OptionInfo("assembly-version", '\0', true),
- new OptionInfo("assembly-description", '\0', true),
- new OptionInfo("assembly-product", '\0', true),
- new OptionInfo("assembly-company", '\0', true),
- new OptionInfo("assembly-copyright", '\0', true),
- new OptionInfo("assembly-trademark", '\0', true),
- new OptionInfo("verbose", 'v', false),
- new OptionInfo("help", 'h', false)
- };
-
- public bool is_valid()
- {
- return (m_name != null && m_short_option != '\0');
- }
-
- public static OptionInfo get_option_info(string opt, char copt)
- {
- foreach (OptionInfo option_info in s_option_infos)
- {
- if (opt.Length > 0)
- {
- if (opt == option_info.m_name &&
- (copt == '\0' || copt == option_info.m_short_option))
- {
- return option_info;
- }
- } else
- {
- Trace.Assert(copt != '\0');
- if (copt == option_info.m_short_option)
- {
- return option_info;
- }
- }
- }
- Trace.Assert(false);
- return new OptionInfo();
- }
-
- public static OptionInfo get_option_info(string opt)
- {
- return get_option_info(opt, '\0');
- }
-
- public static bool is_option(OptionInfo option_info, IEnumerator argIter)
- {
- string arg;
- try
- {
- arg = (string) argIter.Current;
- } catch (InvalidOperationException e)
- {
- return false;
- }
-
- if (arg.Length < 2 || arg[0] != '-')
- return false;
-
- if (arg.Length == 2 && arg[1] == option_info.m_short_option)
- {
- Trace.WriteLine("Identified option '" +
- option_info.m_short_option +
- "'");
- return true;
- }
-
- if (arg[1] == '-' && arg.Substring(2) == option_info.m_name)
- {
- Trace.WriteLine("Identified option '" +
- option_info.m_name +
- "'");
- return true;
- }
-
- return false;
- }
-
- public static bool read_option(out bool flag, OptionInfo option_info,
- IEnumerator argIter)
- {
- flag = is_option(option_info, argIter);
- return flag;
- }
-
- public static bool read_argument(out string pValue, OptionInfo option_info,
- IEnumerator argIter)
- {
- if (is_option(option_info, argIter))
- {
- if (argIter.MoveNext())
- {
- pValue = (string) argIter.Current;
- Trace.Write("argument value: ");
- Trace.WriteLine(pValue);
- return true;
- }
- }
- pValue = null;
- return false;
- }
-}
-
-class SharedLibraryLoader
-{
- private SharedLibraryLoader() {}
-
- public static XSingleComponentFactory loadSharedLibComponentFactory(
- string libName, string path, string implName,
- XMultiServiceFactory xMgr, XRegistryKey xKey)
- {
- throw new NotImplementedException();
- }
-}
-
-public class Climaker
-{
- public static bool g_verbose = false;
-
- static string s_usingText = @"
-using: climaker <switches> [registry-file-1 registry-file-2 ...]
-
-switches:
- -O, --out <output-file> output assembly file;
- defaults to cli_unotypes.dll if more than one
- registry-file is given, else <registry-file>.dll
- -T, --types types to be generated (if none is given,
- <type1[;type2;...]> then all types of given registries are emitted
- -X, --extra <rdb-file> additional rdb to saturate referenced types in
- given registry file(s); these types will not be
- emitted into the output assembly file
- -r, --reference reference metadata from assembly file
- <assembly-file>
- -k, --keyfile keyfile needed for strong name
- --assembly-version <version> sets assembly version
- --assembly-description <text> sets assembly description text
- --assembly-product <text> sets assembly product name
- --assembly-company <text> sets assembly company
- --assembly-copyright <text> sets assembly copyright
- --assembly-trademark <text> sets assembly trademark
- -v, --verbose verbose output to stdout
- -h, --help this message
-
-example: climaker --out cli_mytypes.dll \
- --reference cli_types.dll \
- --extra types.rdb \
- mytypes.rdb
-";
-
- static string path_make_absolute_file_url(string path)
- {
- Uri file_uri = new Uri(new Uri(new Uri("file:///"),
- Environment.CurrentDirectory),
- path);
- return file_uri.ToString();
- }
-
- static XSimpleRegistry open_registries(ArrayList registries,
- XComponentContext xContext)
- {
- throw new NotImplementedException();
- }
-
- public static int Main(string[] args)
- {
- if (args.Length == 0)
- {
- Console.Write(s_usingText);
- return 0;
- }
-
- int ret = 0;
- XComponentContext xContext = null;
-
-// try
- {
- OptionInfo info_help =
- OptionInfo.get_option_info("help");
- OptionInfo info_verbose =
- OptionInfo.get_option_info("verbose");
- OptionInfo info_out =
- OptionInfo.get_option_info("out");
- OptionInfo info_types =
- OptionInfo.get_option_info("types");
- OptionInfo info_reference =
- OptionInfo.get_option_info("reference");
- OptionInfo info_extra =
- OptionInfo.get_option_info("extra");
- OptionInfo info_keyfile =
- OptionInfo.get_option_info("keyfile");
- OptionInfo info_delaySign =
- OptionInfo.get_option_info("delaySign");
- OptionInfo info_version =
- OptionInfo.get_option_info("assembly-version");
- OptionInfo info_product =
- OptionInfo.get_option_info("assembly-product");
- OptionInfo info_description =
- OptionInfo.get_option_info("assembly-description");
- OptionInfo info_company =
- OptionInfo.get_option_info("assembly-company");
- OptionInfo info_copyright =
- OptionInfo.get_option_info("assembly-copyright");
- OptionInfo info_trademark =
- OptionInfo.get_option_info("assembly-trademark");
-
- string output = "";
- ArrayList mandatory_registries = new ArrayList();
- ArrayList extra_registries = new ArrayList();
- ArrayList extra_assemblies = new ArrayList();
- ArrayList explicit_types = new ArrayList();
- string version = "";
- string product = "";
- string description = "";
- string company = "";
- string copyright = "";
- string trademark = "";
- string keyfile = "";
- string delaySign = "";
-
- string cmd_arg;
- for (IEnumerator argIter = args.GetEnumerator(); argIter.MoveNext(); )
- {
- // options
- if (OptionInfo.is_option(info_help, argIter))
- {
- Console.Write(s_usingText);
- return 0;
- } else if (OptionInfo.read_argument(out cmd_arg,
- info_types, argIter))
- {
- explicit_types.AddRange(cmd_arg.Split(';'));
- } else if (OptionInfo.read_argument(out cmd_arg,
- info_extra, argIter))
- {
- extra_registries.Add(path_make_absolute_file_url(cmd_arg));
- } else if (OptionInfo.read_argument(out cmd_arg,
- info_reference, argIter))
- {
- extra_assemblies.Add(path_make_absolute_file_url(cmd_arg));
- } else if (!OptionInfo.read_option(out g_verbose,
- info_verbose, argIter) &&
- !OptionInfo.read_argument(out output,
- info_out, argIter) &&
- !OptionInfo.read_argument(out version,
- info_version, argIter) &&
- !OptionInfo.read_argument(out description,
- info_description, argIter) &&
- !OptionInfo.read_argument(out product,
- info_product, argIter) &&
- !OptionInfo.read_argument(out company,
- info_company, argIter) &&
- !OptionInfo.read_argument(out copyright,
- info_copyright, argIter) &&
- !OptionInfo.read_argument(out trademark,
- info_trademark, argIter) &&
- !OptionInfo.read_argument(out keyfile,
- info_keyfile, argIter) &&
- !OptionInfo.read_argument(out delaySign,
- info_delaySign, argIter))
- {
- cmd_arg = ((string) argIter.Current).Trim();
- if (cmd_arg.Length > 0)
- {
- if (cmd_arg[0] == '-') // is option
- {
- OptionInfo option_info = new OptionInfo();
- if (cmd_arg.Length > 2 && cmd_arg[1] == '-')
- {
- // long option
- option_info = OptionInfo.get_option_info(
- cmd_arg.Substring(2), '\0');
- } else if (cmd_arg.Length == 2 && cmd_arg[1] != '-')
- {
- // short option
- option_info = OptionInfo.get_option_info(
- "", cmd_arg[1]);
- }
- if (!option_info.is_valid())
- {
- throw new System.Exception(
- String.Format("unknown option {0}! "+
- "Use climaker --help " +
- "to print all options.",
- cmd_arg));
-
- } else
- {
- Trace.Assert(false, "unhandled valid option?!");
- if (option_info.m_has_argument)
- argIter.MoveNext();
- }
- } else
- {
- mandatory_registries.Add(
- path_make_absolute_file_url(cmd_arg));
- }
- }
- }
- }
-
- // bootstrap uno
- xContext = Bootstrap.bootstrap_InitialComponentContext();
- XHierarchicalNameAccess xTDmgr =
- (XHierarchicalNameAccess) xContext.getValueByName(
- "/singletons/com.sun.star.reflection." +
- "theTypeDescriptionManager").Value;
-
- // get rdb tdprovided factory
- XSingleComponentFactory xTDprov_factory =
- Bootstrap.loadRegistryTypeDescriptionProvider(xContext);
-
- if (xTDprov_factory == null)
- {
- throw new System.Exception(
- "cannot get registry typedescription provider: " +
- "regtypeprov.uno.so!"); // FIXME actually it's .uno.so or .uno.dll
- }
-
- // create registry td provider for mandatory registry files
- uno.Any arg = new uno.Any(typeof(XSimpleRegistry),
- open_registries(mandatory_registries,
- xContext));
- object xTD_provider =
- xTDprov_factory.createInstanceWithArgumentsAndContext(
- new uno.Any[] { arg }, xContext);
- // insert provider to tdmgr
- XSet xSet = (XSet) xTDmgr;
- uno.Any provider = new uno.Any (typeof(System.Object), xTD_provider);
- xSet.insert(provider);
- Trace.Assert(xSet.has(provider));
- if (extra_registries.Count != 0)
- {
- arg = new uno.Any(typeof(XSimpleRegistry),
- open_registries(extra_registries, xContext));
- provider = new uno.Any(
- typeof(System.Object),
- xTDprov_factory.createInstanceWithArgumentsAndContext(
- new uno.Any[] { arg }, xContext));
- xSet.insert(provider);
- Trace.Assert(xSet.has(provider));
- }
-
- int dot;
- if (output.Length == 0) // no output file specified
- {
- // if only one rdb has been given, then take rdb name
- if (mandatory_registries.Count == 1)
- {
- output = (string) mandatory_registries[0];
- output = output.Substring(output.LastIndexOf('/') + 1);
- dot = output.LastIndexOf('.');
- if (dot > 0)
- output = output.Substring(0, dot);
- }
- else
- {
- output = "cli_unotypes";
- }
- }
-
- output = path_make_absolute_file_url(output);
- int slash = output.LastIndexOf('/');
- string sys_output_dir =
- (new Uri(output.Substring(0, slash))).LocalPath;
- if (sys_output_dir == null)
- {
- throw new System.Exception(
- "cannot get system path from file url " +
- output.Substring(0, slash));
- }
- string filename = output.Substring(slash + 1);
- dot = filename.LastIndexOf('.');
- string name = filename;
- if (dot < 0) // has no extension
- filename += ".dll";
- else
- name = name.Substring(0, dot);
- string output_dir = sys_output_dir; // FIXME redundant
- string output_file = filename; // FIXME redundant
-
- // Get the key pair for making a strong name
- StrongNameKeyPair kp = null;
- if (keyfile.Length > 0)
- {
- try
- {
- FileStream fs = new FileStream(keyfile, FileMode.Open);
- kp = new StrongNameKeyPair(fs);
- fs.Close();
- }
- catch (FileNotFoundException)
- {
- throw new System.Exception ("Could not find the keyfile. " +
- "Verify the --keyfile argument!");
- }
- }
- else
- {
- if (g_verbose)
- {
- Console.Error.WriteLine(
- "> no key file specified. Cannot create strong name!");
- }
- }
- // setup assembly info: FIXME set more? e.g. avoid strong versioning
- AssemblyName assembly_name = new AssemblyName();
- assembly_name.CodeBase = output_dir;
- assembly_name.Name = name;
- if (kp != null)
- assembly_name.KeyPair = kp;
-
- if (version.Length != 0)
- assembly_name.Version = new Version(version);
-
- // app domain
- AppDomain current_appdomain = AppDomain.CurrentDomain;
- // target assembly
- AssemblyBuilder assembly_builder =
- current_appdomain.DefineDynamicAssembly(
- assembly_name, AssemblyBuilderAccess.Save, output_dir);
-
- if (product.Length != 0)
- {
- Type[] types = new Type[] { typeof(System.String) };
- object[] paras = new object[] { product };
- assembly_builder.SetCustomAttribute(
- new CustomAttributeBuilder(
- typeof(AssemblyProductAttribute).GetConstructor(types),
- paras));
- }
- if (description.Length != 0)
- {
- Type[] types = new Type[] { typeof(System.String) };
- object[] paras = new object[] { description };
- assembly_builder.SetCustomAttribute(
- new CustomAttributeBuilder(
- typeof(AssemblyDescriptionAttribute).GetConstructor(types),
- paras));
- }
- if (company.Length != 0)
- {
- Type[] types = new Type[] { typeof(System.String) };
- object[] paras = new object[] { company };
- assembly_builder.SetCustomAttribute(
- new CustomAttributeBuilder(
- typeof(AssemblyCompanyAttribute).GetConstructor(types),
- paras));
- }
- if (copyright.Length != 0)
- {
- Type[] types = new Type[] { typeof(System.String) };
- object[] paras = new object[] { copyright };
- assembly_builder.SetCustomAttribute(
- new CustomAttributeBuilder(
- typeof(AssemblyCopyrightAttribute).GetConstructor(types),
- paras));
- }
- if (trademark.Length != 0)
- {
- Type[] types = new Type[] { typeof(System.String) };
- object[] paras = new object[] { trademark };
- assembly_builder.SetCustomAttribute(
- new CustomAttributeBuilder(
- typeof(AssemblyTrademarkAttribute).GetConstructor(types),
- paras));
- }
-
- // load extra assemblies
- Assembly[] assemblies = new Assembly[extra_assemblies.Count];
- for (int pos = 0; pos < extra_assemblies.Count; ++pos)
- {
- assemblies[pos] =
- Assembly.LoadFrom((string) extra_assemblies[pos]);
- }
-
- // type emitter
- TypeEmitter type_emitter = new TypeEmitter(
- assembly_builder.DefineDynamicModule(output_file), assemblies);
- // add handler resolving assembly's types
- ResolveEventHandler type_resolver =
- new ResolveEventHandler(type_emitter.type_resolve);
- current_appdomain.TypeResolve += type_resolver;
-
- // and emit types to it
- if (explicit_types.Count == 0)
- {
- XTypeDescriptionEnumeration xTD_enum =
- ((XTypeDescriptionEnumerationAccess)xTD_provider)
- .createTypeDescriptionEnumeration(
- "", // all IDL modules
- new TypeClass[0], // all classes of types
- TypeDescriptionSearchDepth.INFINITE);
- while (xTD_enum.hasMoreElements())
- {
- type_emitter.get_type(xTD_enum.nextTypeDescription());
- }
- }
- else
- {
- XHierarchicalNameAccess xHNA =
- (XHierarchicalNameAccess) xTD_provider;
- foreach (string type in explicit_types)
- {
- type_emitter.get_type(
- (XTypeDescription) xHNA.getByHierarchicalName(type).Value);
- }
- }
- type_emitter.Dispose();
-
- if (g_verbose)
- {
- Console.Write("> saving assembly {0}...",
- Path.Combine(output_dir, output_file));
- }
- assembly_builder.Save(output_file);
- if (g_verbose)
- {
- Console.WriteLine("ok");
- }
- current_appdomain.TypeResolve -= type_resolver;
- }
-// catch (System.Exception exc)
-// {
-// Console.Error.WriteLine("\n> error: {0}\n> dying abnormally...",
-// exc.Message);
-// ret = 1;
-// throw;
-// }
-
- try
- {
- XComponent xComp = xContext as XComponent;
- if (xComp != null)
- xComp.dispose();
- }
- catch (System.Exception exc)
- {
- Console.Error.WriteLine("\n> error disposing component context: {0}" +
- "\n> dying abnormally...", exc.Message);
- ret = 1;
- }
-
- return ret;
- }
-} \ No newline at end of file
diff --git a/scratch/mono-uno-climaker/TypeEmitter.cs b/scratch/mono-uno-climaker/TypeEmitter.cs
deleted file mode 100644
index df362902d..000000000
--- a/scratch/mono-uno-climaker/TypeEmitter.cs
+++ /dev/null
@@ -1,1823 +0,0 @@
-/*************************************************************************
- *
- * $RCSfile: TypeEmitter.cs,v $
- *
- * $Revision: 1.1 $
- *
- * last change: $Author: martink $ $Date: 2005/09/29 13:01:33 $
- *
- * The Contents of this file are made available subject to the terms of
- * either of the following licenses
- *
- * - GNU Lesser General Public License Version 2.1
- * - Sun Industry Standards Source License Version 1.1
- *
- * Sun Microsystems Inc., October, 2000
- *
- * GNU Lesser General Public License Version 2.1
- * =============================================
- * Copyright 2000 by Sun Microsystems, Inc.
- * 901 San Antonio Road, Palo Alto, CA 94303, USA
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software Foundation.
- *
- * This library 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 for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- *
- * Sun Industry Standards Source License Version 1.1
- * =================================================
- * The contents of this file are subject to the Sun Industry Standards
- * Source License Version 1.1 (the "License"); You may not use this file
- * except in compliance with the License. You may obtain a copy of the
- * License at http://www.openoffice.org/license.html.
- *
- * Software provided under this License is provided on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
- * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
- * See the License for the specific provisions governing your rights and
- * obligations concerning the Software.
- *
- * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
- *
- * Copyright: 2000 by Sun Microsystems, Inc.
- *
- * All Rights Reserved.
- *
- * Contributor(s): Martin Kretzschmar_____________________
- *
- *
- ************************************************************************/
-
-using System;
-using System.Collections;
-using System.Diagnostics;
-using System.Reflection;
-using System.Reflection.Emit;
-
-using unoidl.com.sun.star.reflection;
-using unoidl.com.sun.star.uno;
-
-public class TypeEmitter : IDisposable
-{
- ModuleBuilder m_module_builder;
- Assembly[] m_extra_assemblies;
-
- MethodInfo m_method_info_Type_GetTypeFromHandle;
-
- Type m_type_Exception;
- Type m_type_RuntimeException;
-
- Hashtable m_incomplete_ifaces;
- Hashtable m_incomplete_services;
- Hashtable m_incomplete_singletons;
- Hashtable m_generated_structs;
-
- static MethodAttributes c_ctor_method_attr =
- MethodAttributes.Public |
- MethodAttributes.HideBySig |
- MethodAttributes.SpecialName |
- MethodAttributes.RTSpecialName
- /* | FIXME ??? compiler does not know Instance ===
- MethodAttributes.Instance */;
-
- class iface_entry
- {
- public XInterfaceTypeDescription2 m_xType;
- public TypeBuilder m_type_builder;
- };
-
- class struct_entry
- {
- public string[] m_member_names;
- public Type[] m_param_types;
- public ConstructorInfo m_default_ctor;
- public ConstructorInfo m_ctor;
- }
-
- class service_entry
- {
- public TypeBuilder m_type_builder;
- public XServiceTypeDescription2 m_xType;
- }
-
- class singleton_entry
- {
- public TypeBuilder m_type_builder;
- public XSingletonTypeDescription2 m_xType;
- }
-
- static String to_cts_name(string uno_name)
- {
- return "unoidl." + uno_name;
- }
-
- static object to_cli_constant(uno.Any value) // FIXME redundant
- {
- return value.Value;
- }
-
- static void emit_ldarg(ILGenerator code, int index)
- {
- switch (index)
- {
- case 0:
- code.Emit(OpCodes.Ldarg_0);
- break;
- case 1:
- code.Emit(OpCodes.Ldarg_1);
- break;
- case 2:
- code.Emit(OpCodes.Ldarg_2);
- break;
- case 3:
- code.Emit(OpCodes.Ldarg_3);
- break;
- default:
- if (index < 0x100)
- code.Emit(OpCodes.Ldarg_S, (byte) index);
- else if (index < 0x8000)
- code.Emit(OpCodes.Ldarg_S, (short) index);
- else
- code.Emit(OpCodes.Ldarg, index);
- break;
- }
- }
-
- static void polymorphicStructNameToStructName(ref string sPolyName)
- {
- if (!sPolyName.EndsWith(">"))
- return;
-
- int index = sPolyName.LastIndexOf('<');
- Trace.Assert(index != -1);
- sPolyName = sPolyName.Substring(0, index);
- }
-
- public Assembly type_resolve(object sender, ResolveEventArgs args)
- {
- string cts_name = args.Name;
- Type ret_type = m_module_builder.GetType(cts_name, false /* no exc */);
-
- if (ret_type == null)
- {
- iface_entry entry = (iface_entry) m_incomplete_ifaces[cts_name];
- if (entry == null)
- ret_type = entry.m_type_builder;
- }
- if (ret_type == null)
- {
- foreach (Assembly assembly in m_extra_assemblies)
- {
- ret_type = assembly.GetType(cts_name, false /* no exc */);
- if (ret_type != null)
- {
- if (Climaker.g_verbose)
- {
- Console.WriteLine("> resolving type {0} from {1}.",
- cts_name,
- ret_type.Assembly.FullName);
- }
- break;
- }
- }
- }
-
- if (ret_type != null)
- return ret_type.Assembly;
-
- return null;
- }
-
- Type get_type(string cts_name, bool throw_exc)
- {
- Type ret_type = m_module_builder.GetType(cts_name, false);
-
- if (ret_type == null)
- {
- iface_entry entry = (iface_entry) m_incomplete_ifaces[cts_name];
- if (entry != null)
- ret_type = entry.m_type_builder;
- }
-
- // try the cli_basetypes assembly
- if (ret_type == null)
- {
- ret_type = Type.GetType(cts_name + ",cli_basetypes");
- }
-
- if (ret_type == null)
- {
- // may call on type_resolve()
- return Type.GetType(cts_name, throw_exc);
- }
- else
- {
- return ret_type;
- }
- }
-
- Type get_type_Exception()
- {
- if (m_type_Exception == null)
- {
- m_type_Exception = get_type("unoidl.com.sun.star.uno.Exception",
- false /* no exc */);
- if (m_type_Exception == null)
- {
- // define hardcoded type unoidl.com.sun.star.uno.Exception
- TypeBuilder type_builder =
- m_module_builder.DefineType(
- "unoidl.com.sun.star.uno.Exception",
- (TypeAttributes.Public |
- TypeAttributes.BeforeFieldInit |
- TypeAttributes.AnsiClass),
- typeof(System.Exception));
- FieldBuilder field_Context = type_builder.DefineField(
- "Context", typeof(System.Object), FieldAttributes.Public);
- // default .ctor
- type_builder.DefineDefaultConstructor(c_ctor_method_attr);
- // .ctor
- Type[] param_types = new System.Type[] {typeof(System.String),
- typeof(System.Object)};
- ConstructorBuilder ctor_builder =
- type_builder.DefineConstructor(
- c_ctor_method_attr, CallingConventions.Standard,
- param_types);
- ctor_builder.DefineParameter(
- 1, ParameterAttributes.In, "Message");
- ctor_builder.DefineParameter(
- 2, ParameterAttributes.In, "Context");
- ILGenerator code = ctor_builder.GetILGenerator();
- code.Emit(OpCodes.Ldarg_0);
- code.Emit(OpCodes.Ldarg_1);
- param_types = new System.Type[] {typeof(System.String)};
- code.Emit(OpCodes.Call,
- typeof(System.Exception).GetConstructor(param_types));
- code.Emit(OpCodes.Ldarg_0);
- code.Emit(OpCodes.Ldarg_2);
- code.Emit(OpCodes.Stfld, field_Context);
- code.Emit(OpCodes.Ret);
-
- if (Climaker.g_verbose)
- {
- Console.WriteLine(
- "> emitting exception type " +
- "unoidl.com.sun.star.uno.Exception");
- }
- m_type_Exception = type_builder.CreateType();
- }
- }
- return m_type_Exception;
- }
-
- Type get_type_RuntimeException()
- {
- if (m_type_RuntimeException == null)
- {
- m_type_RuntimeException = get_type(
- "unoidl.com.sun.star.uno.RuntimeException", false /* no exc */);
- if (m_type_RuntimeException == null)
- {
- // define hardcoded type unoidl.com.sun.star.uno.RuntimeException
- Type type_Exception = get_type_Exception();
- TypeBuilder type_builder =
- m_module_builder.DefineType(
- "unoidl.com.sun.star.uno.RuntimeException",
- (TypeAttributes.Public |
- TypeAttributes.BeforeFieldInit |
- TypeAttributes.AnsiClass),
- type_Exception);
- // default .ctor
- type_builder.DefineDefaultConstructor(c_ctor_method_attr);
- // .ctor
- Type[] param_types = new Type[] {typeof(System.String),
- typeof(System.Object)};
- ConstructorBuilder ctor_builder =
- type_builder.DefineConstructor(
- c_ctor_method_attr, CallingConventions.Standard,
- param_types);
- ctor_builder.DefineParameter(
- 1, ParameterAttributes.In, "Message");
- ctor_builder.DefineParameter(
- 2, ParameterAttributes.In, "Context");
- ILGenerator code = ctor_builder.GetILGenerator();
- code.Emit(OpCodes.Ldarg_0);
- code.Emit(OpCodes.Ldarg_1);
- code.Emit(OpCodes.Ldarg_2);
- code.Emit(OpCodes.Call,
- type_Exception.GetConstructor(param_types));
- code.Emit(OpCodes.Ret);
-
- if (Climaker.g_verbose)
- {
- Console.WriteLine(
- "> emitting exception type " +
- "unoidl.com.sun.star.uno.RuntimeException");
- }
- m_type_RuntimeException = type_builder.CreateType();
- }
- }
- return m_type_RuntimeException;
- }
-
- Type get_type(XConstantTypeDescription xType)
- {
- string cts_name = to_cts_name(xType.getName());
- Type ret_type = get_type(cts_name, false /* no exc */);
- if (ret_type == null)
- {
- XConstantTypeDescription xConstant =
- (XConstantTypeDescription) xType;
- object constant =
- to_cli_constant(xConstant.getConstantValue());
- TypeBuilder type_builder = m_module_builder.DefineType(
- cts_name,
- (TypeAttributes.Public |
- TypeAttributes.Sealed |
- TypeAttributes.BeforeFieldInit |
- TypeAttributes.AnsiClass));
- FieldBuilder field_builder = type_builder.DefineField(
- cts_name.Substring(cts_name.LastIndexOf('.') + 1),
- constant.GetType(),
- (FieldAttributes.Public |
- FieldAttributes.Static |
- FieldAttributes.Literal));
- field_builder.SetConstant(constant);
-
- if (Climaker.g_verbose)
- {
- Console.WriteLine("> emitting constant type {0}", cts_name);
- }
- ret_type = type_builder.CreateType();
- }
- return ret_type;
- }
-
- Type get_type(XConstantsTypeDescription xType)
- {
- string cts_name = to_cts_name(xType.getName());
- Type ret_type = get_type(cts_name, false /* no exc */);
- if (ret_type == null)
- {
- TypeBuilder type_builder = m_module_builder.DefineType(
- cts_name,
- (TypeAttributes.Public |
- TypeAttributes.Sealed |
- TypeAttributes.BeforeFieldInit |
- TypeAttributes.AnsiClass));
- XConstantTypeDescription[] seq_constants = xType.getConstants();
-
- foreach (XConstantTypeDescription xConstant in seq_constants)
- {
- object constant = to_cli_constant(xConstant.getConstantValue());
- string uno_name = xConstant.getName();
- FieldBuilder field_builder = type_builder.DefineField(
- uno_name.Substring(uno_name.LastIndexOf('.') + 1),
- constant.GetType(),
- (FieldAttributes.Public |
- FieldAttributes.Static |
- FieldAttributes.Literal));
- field_builder.SetConstant(constant);
- }
-
- if (Climaker.g_verbose)
- {
- Console.WriteLine("> emitting constants group type {0}", cts_name);
- }
- ret_type = type_builder.CreateType();
- }
- return ret_type;
- }
-
- Type get_type(XEnumTypeDescription xType)
- {
- string cts_name = to_cts_name(xType.getName());
- Type ret_type = get_type(cts_name, false /* no exc */);
- if (ret_type == null)
- {
-// EnumBuilder enum_builder = m_module_builder.DefineEnum(
-// cts_name,
-// (TypeAttributes.Public |
-// TypeAttributes.Sealed |
-// TypeAttributes.AnsiClass),
-// typeof(Int32));
- // workaround enum builder bug
- TypeBuilder enum_builder = m_module_builder.DefineType(
- cts_name,
- (TypeAttributes.Public | TypeAttributes.Sealed),
- typeof(Enum));
- enum_builder.DefineField(
- "value__", typeof(Int32),
- (FieldAttributes.Private | // FIXME mcs uses public here IIRC
- FieldAttributes.SpecialName |
- FieldAttributes.RTSpecialName));
- string[] enum_names = xType.getEnumNames();
- int[] enum_values = xType.getEnumValues();
- for (int enum_pos = 0; enum_pos < enum_names.Length; ++ enum_pos)
- {
-// enum_builder.DefineLiteral(enum_name[enum_pos],
-// enum_values[enum_pos]);
- FieldBuilder field_builder =
- enum_builder.DefineField(enum_names[enum_pos],
- enum_builder,
- (FieldAttributes.Public |
- FieldAttributes.Static |
- FieldAttributes.Literal));
- field_builder.SetConstant(enum_values[enum_pos]);
- }
-
- if (Climaker.g_verbose)
- {
- Console.WriteLine("> emitting enum type {0}", cts_name);
- }
- ret_type = enum_builder.CreateType();
- }
- return ret_type;
- }
-
- Type get_type(XCompoundTypeDescription xType)
- {
- string uno_name = xType.getName();
- if (xType.getTypeClass() == TypeClass.EXCEPTION)
- {
- switch (uno_name)
- {
- case "com.sun.star.uno.Exception":
- return get_type_Exception();
- case "com.sun.star.uno.RuntimeException":
- return get_type_RuntimeException();
- default:
- break;
- }
- }
-
- string cts_name = to_cts_name(uno_name);
-
- // if the struct is an instantiated polymorphic struct then we create
- // the simple struct name
- //
- // For example:
- // void func ([in] PolyStruct<boolean> arg9,
- // PolyStruct<boolean> will be converted to PolyStruct
- polymorphicStructNameToStructName(ref cts_name);
-
- Type ret_type = get_type(cts_name, false /* no exc */);
- if (ret_type == null)
- {
- XCompoundTypeDescription xBaseType =
- xType.getBaseType() as XCompoundTypeDescription;
- Type base_type = (xBaseType != null
- ? get_type(xBaseType)
- : typeof(Object));
- TypeBuilder type_builder = m_module_builder.DefineType(
- cts_name,
- (TypeAttributes.Public |
- TypeAttributes.BeforeFieldInit |
- TypeAttributes.AnsiClass),
- base_type);
-
- // Polymorphic struct, define uno.TypeParametersAttribute
- string[] type_parameters = null;
- XStructTypeDescription xStructTypeDesc =
- xType as XStructTypeDescription;
- if (xStructTypeDesc != null)
- {
- type_parameters = xStructTypeDesc.getTypeParameters();
- if (type_parameters.Length != 0)
- {
- Type[] typesCtor =
- new Type[] { Type.GetType("System.String[]") };
- CustomAttributeBuilder attrBuilder =
- new CustomAttributeBuilder(
- typeof(uno.TypeParametersAttribute)
- .GetConstructor(typesCtor),
- type_parameters);
- type_builder.SetCustomAttribute(attrBuilder);
- }
- }
-
- // FIXME huh? what does this mean:
- // optional: lookup base type whether generated entry of this session
- struct_entry base_type_entry = null;
- if (base_type != null)
- {
- base_type_entry =
- m_generated_structs[base_type.FullName] as struct_entry;
- }
-
- // members
- XTypeDescription[] seq_members = xType.getMemberTypes();
- string[] member_names = xType.getMemberNames();
- Trace.Assert(seq_members.Length == member_names.Length);
-
- int all_members_length = 0;
- int member_pos;
- int type_param_pos = 0;
-
- // collect base type; wrong order
- ArrayList base_types_list = new ArrayList(3 /* initial capacity */);
- for (Type base_type_pos = base_type_pos = base_type;
- ! base_type_pos.Equals(typeof(System.Object));
- base_type_pos = base_type_pos.BaseType)
- {
- base_types_list.Add(base_type_pos);
- if (base_type_pos.Equals(typeof(System.Exception)))
- {
- // special Message member
- all_members_length += 1;
- break; // don't include System.Exception base classes
- }
- else
- {
- all_members_length +=
- base_type_pos.GetFields(BindingFlags.Instance |
- BindingFlags.Public |
- BindingFlags.DeclaredOnly).Length;
- }
- }
-
- // create all_members_arrays; right order
- string[] all_member_names =
- new string[all_members_length + seq_members.Length];
- Type[] all_param_types =
- new Type[all_members_length + seq_members.Length];
- member_pos =0;
- for (int pos = base_types_list.Count; pos-- != 0; )
- {
- Type ancestor = (Type) base_types_list[pos];
- if (ancestor.Equals(typeof(System.Exception)))
- {
- all_member_names[member_pos] = "Message";
- all_param_types[member_pos] = typeof (System.String);
- ++member_pos;
- }
- else
- {
- struct_entry existing_entry =
- m_generated_structs[ancestor.FullName] as struct_entry;
- if (existing_entry == null)
- {
- // complete type
- FieldInfo[] fields = ancestor.GetFields(
- BindingFlags.Instance |
- BindingFlags.Public |
- BindingFlags.DeclaredOnly);
- foreach (FieldInfo field in fields)
- {
- all_member_names[member_pos] = field.Name;
- all_param_types[member_pos] = field.FieldType;
- ++member_pos;
- }
- }
- else // generated during this session:
- // members may be incomplete ifaces
- {
- for (int i = 0;
- i < existing_entry.m_member_names.Length; ++i)
- {
- all_member_names[member_pos] =
- existing_entry.m_member_names[i];
- all_param_types[member_pos] =
- existing_entry.m_param_types[i];
- ++member_pos;
- }
- }
- }
- }
- Trace.Assert(all_members_length == member_pos);
-
- // build up entry
- struct_entry entry = new struct_entry();
- entry.m_member_names = new string[seq_members.Length];
- entry.m_param_types = new Type[seq_members.Length];
-
- // add members
- FieldBuilder[] members = new FieldBuilder[seq_members.Length];
-
- int curParamIndex = 0; // count the fields which have
- // parameterized types
- for (member_pos = 0; member_pos < seq_members.Length; ++member_pos)
- {
- string field_name = member_names[member_pos];
- Type field_type;
- // Special handling of struct parameter types
- bool bParameterizedType = false;
- if (seq_members[member_pos].getTypeClass() == TypeClass.UNKNOWN)
- {
- bParameterizedType = true;
- if (type_param_pos < type_parameters.Length)
- {
- field_type = typeof(System.Object);
- type_param_pos++;
- }
- else
- {
- throw new System.Exception("unexpected member type in " +
- xType.getName());
- }
- }
- else
- {
- field_type = get_type(seq_members[member_pos]);
- }
- members[member_pos] = type_builder.DefineField(
- field_name, field_type, FieldAttributes.Public);
-
- // parameterized type (polymorphic struct) ?
- if (bParameterizedType && xStructTypeDesc != null)
- {
- // get the name
- Trace.Assert(type_parameters.Length > curParamIndex);
- string sTypeName = type_parameters[curParamIndex++];
- object[] args = new object[] { sTypeName };
- // set ParameterizedTypeAttribute
- Type[] ctorTypes = new Type[] { typeof(System.String) };
-
- CustomAttributeBuilder attrBuilder =
- new CustomAttributeBuilder(
- typeof(uno.ParameterizedTypeAttribute)
- .GetConstructor(ctorTypes),
- args);
-
- members[member_pos].SetCustomAttribute(attrBuilder);
- }
- // add to all_members
- all_member_names[all_members_length + member_pos] = field_name;
- all_param_types[all_members_length + member_pos] = field_type;
- // add to entry
- entry.m_member_names[member_pos] = field_name;
- entry.m_param_types[member_pos] = field_type;
- }
- all_members_length += members.Length;
-
- // default .ctor
- ConstructorBuilder ctor_builder =
- type_builder.DefineConstructor(
- c_ctor_method_attr, CallingConventions.Standard,
- new Type[0]);
- ILGenerator code = ctor_builder.GetILGenerator();
- code.Emit(OpCodes.Ldarg_0);
- code.Emit(OpCodes.Call,
- base_type_entry == null
- ? base_type.GetConstructor(new Type[0])
- : base_type_entry.m_default_ctor);
- // default initialize members
- for (member_pos = 0; member_pos < seq_members.Length; ++member_pos)
- {
- FieldInfo field = members[member_pos];
- Type field_type = field.FieldType;
- // default initialize:
- // string, type, enum, sequence, struct, exception, any
- if (field_type.Equals(typeof(System.String)))
- {
- code.Emit(OpCodes.Ldarg_0);
- code.Emit(OpCodes.Ldstr, "");
- code.Emit(OpCodes.Stfld, field);
- }
- else if (field_type.Equals(typeof(System.Type)))
- {
- code.Emit(OpCodes.Ldarg_0);
- code.Emit(OpCodes.Ldtoken, typeof(void));
- code.Emit(OpCodes.Call, m_method_info_Type_GetTypeFromHandle);
- code.Emit(OpCodes.Stfld, field);
- }
- else if (field_type.IsArray)
- {
- code.Emit(OpCodes.Ldarg_0);
- code.Emit(OpCodes.Ldc_I4_0);
- code.Emit(OpCodes.Newarr, field_type.GetElementType());
- code.Emit(OpCodes.Stfld, field);
- }
- else if (field_type.IsValueType)
- {
- if (field_type.FullName.Equals("uno.Any"))
- {
- code.Emit(OpCodes.Ldarg_0);
- code.Emit(OpCodes.Ldsfld, typeof(uno.Any).GetField("VOID"));
- code.Emit(OpCodes.Stfld, field);
- }
- }
- else if (field_type.IsClass)
- {
- /* may be XInterface */
- if (! field_type.Equals(typeof(System.Object)))
- {
- // struct, exception
- code.Emit(OpCodes.Ldarg_0);
- code.Emit(OpCodes.Newobj,
- field_type.GetConstructor(new Type[0]));
- code.Emit(OpCodes.Stfld, field);
- }
- }
- }
- code.Emit(OpCodes.Ret);
- entry.m_default_ctor = ctor_builder;
-
- // parameterized .ctor including all base members
- ctor_builder = type_builder.DefineConstructor(
- c_ctor_method_attr, CallingConventions.Standard, all_param_types);
- for (member_pos = 0; member_pos < all_members_length; ++member_pos)
- {
- ctor_builder.DefineParameter(
- member_pos + 1 /* starts with 1 */, ParameterAttributes.In,
- all_member_names[member_pos]);
- }
- code = ctor_builder.GetILGenerator();
- // call base .ctor
- code.Emit(OpCodes.Ldarg_0); // push this
- int base_members_length = all_members_length - seq_members.Length;
- Type[] param_types = new Type[base_members_length];
- for (member_pos = 0; member_pos < base_members_length; ++member_pos)
- {
- emit_ldarg(code, member_pos + 1);
- param_types[member_pos] = all_param_types[member_pos];
- }
- code.Emit(OpCodes.Call,
- base_type_entry == null
- ? base_type.GetConstructor(param_types)
- : base_type_entry.m_ctor);
- // initialize members
- for (member_pos = 0; member_pos < seq_members.Length; ++member_pos)
- {
- code.Emit(OpCodes.Ldarg_0); // push this
- emit_ldarg(code, member_pos + base_members_length + 1);
- code.Emit(OpCodes.Stfld, members[member_pos]);
- }
- code.Emit(OpCodes.Ret);
- entry.m_ctor = ctor_builder;
-
- if (Climaker.g_verbose)
- {
- Console.WriteLine("> emitting {0} type {1}",
- xType.getTypeClass() == TypeClass.STRUCT
- ? "struct"
- : "exception",
- cts_name);
- }
- // new entry
- m_generated_structs.Add(cts_name, entry);
- ret_type = type_builder.CreateType();
- }
- return ret_type;
- }
-
- Type get_type(XInterfaceTypeDescription2 xType)
- {
- if (xType.getName() == "com.sun.star.uno.XInterface")
- {
- return typeof(System.Object);
- }
-
- string cts_name = to_cts_name(xType.getName());
- Type ret_type = get_type(cts_name, false /* no exc */);
- if (ret_type == null)
- {
- TypeBuilder type_builder;
-
- TypeAttributes attr = (TypeAttributes.Public |
- TypeAttributes.Interface |
- TypeAttributes.Abstract |
- TypeAttributes.AnsiClass);
-
- ArrayList baseTypes = new ArrayList();
- if (xType.getBaseTypes().Length > 0)
- {
- foreach (XInterfaceTypeDescription2 xIfaceTd
- in xType.getBaseTypes())
- {
- if (!(xIfaceTd.getName() == "com.sun.star.uno.XInterface"))
- {
- baseTypes.Add(xIfaceTd);
- }
- }
-
- Type[] base_interfaces = new Type[baseTypes.Count];
-
- int index = 0;
- for (IEnumerator iter = baseTypes.GetEnumerator(); iter.MoveNext();
- index++)
- {
- base_interfaces[index] =
- get_type((XInterfaceTypeDescription2) iter.Current);
- }
- type_builder = m_module_builder.DefineType(
- cts_name, attr, null, base_interfaces);
- }
- else
- {
- Console.WriteLine(
- "warning: IDL interface {0} is not derived from " +
- "com.sun.star.uno.XInterface!", xType.getName());
- type_builder = m_module_builder.DefineType(cts_name, attr);
- }
-
- // insert to be completed
- iface_entry entry = new iface_entry();
- entry.m_xType = xType;
- entry.m_type_builder = type_builder;
- m_incomplete_ifaces.Add(cts_name, entry);
-
- // type is incomplete
- ret_type = type_builder;
- }
- return ret_type;
- }
-
- Type get_type(XServiceTypeDescription2 xType)
- {
- if (!xType.isSingleInterfaceBased())
- return null;
-
- string cts_name = to_cts_name(xType.getName());
- Type ret_type = get_type(cts_name, false /* no exc */);
- if (ret_type != null)
- return ret_type;
-
- TypeAttributes attr = (TypeAttributes.Public |
- TypeAttributes.Sealed |
- TypeAttributes.BeforeFieldInit |
- TypeAttributes.AnsiClass);
-
- TypeBuilder type_builder = m_module_builder.DefineType(cts_name, attr);
-
- // insert to be completed
- service_entry entry = new service_entry();
- entry.m_xType = xType;
- entry.m_type_builder = type_builder;
- m_incomplete_services.Add(cts_name, entry);
-
- return type_builder;
- }
-
- Type get_type(XSingletonTypeDescription2 xType)
- {
- if (!xType.isInterfaceBased())
- return null;
-
- string cts_name = to_cts_name(xType.getName());
- Type ret_type = get_type(cts_name, false /* no exc */);
- if (ret_type != null)
- return ret_type;
-
- TypeAttributes attr = (TypeAttributes.Public |
- TypeAttributes.Sealed |
- TypeAttributes.BeforeFieldInit |
- TypeAttributes.AnsiClass);
-
- TypeBuilder type_builder = m_module_builder.DefineType(cts_name, attr);
-
- // insert to be completed
- singleton_entry entry = new singleton_entry();
- entry.m_xType = xType;
- entry.m_type_builder = type_builder;
- m_incomplete_singletons.Add(cts_name, entry);
-
- return type_builder;
- }
-
- Type complete_iface_type(iface_entry entry)
- {
- TypeBuilder type_builder = entry.m_type_builder;
- XInterfaceTypeDescription2 xType = entry.m_xType;
-
- XTypeDescription[] baseTypes = xType.getBaseTypes();
- if (baseTypes.Length != 0)
- {
- foreach (XTypeDescription td in baseTypes)
- {
- XInterfaceTypeDescription baseType = resolveInterfaceTypedef(td);
-
- if (!(baseType.getName() == "com.sun.star.uno.XInterface"))
- {
- string basetype_name = to_cts_name(baseType.getName());
- iface_entry base_entry =
- m_incomplete_ifaces[basetype_name] as iface_entry;
- if (base_entry != null)
- {
- // complete uncomplete base type first
- complete_iface_type(base_entry);
- }
- }
- }
- }
-
- foreach (XInterfaceMemberTypeDescription xMember in xType.getMembers())
- {
- MethodBuilder method_builder;
-
- const MethodAttributes c_method_attr = (MethodAttributes.Public |
- MethodAttributes.Abstract |
- MethodAttributes.Virtual |
- MethodAttributes.NewSlot |
- MethodAttributes.HideBySig /* |
- MethodAttributes.Instance */ );
-
- if (xMember.getTypeClass() == TypeClass.INTERFACE_METHOD)
- {
- XInterfaceMethodTypeDescription xMethod =
- (XInterfaceMethodTypeDescription) xMember;
-
- XMethodParameter[] parameters = xMethod.getParameters();
- Type[] param_types = new Type[parameters.Length];
- // first determine all types
- // Make the first param type the return type
- foreach (XMethodParameter xParam in parameters)
- {
- Type param_type = get_type(xParam.getType());
- if (xParam.isOut())
- {
- param_type = get_type(param_type.FullName + "&", true);
- }
- param_types[xParam.getPosition()] = param_type;
- }
-
- // create method
-// if (tb != null)
-// method_builder = type_builder.DefineMethod(
-// xMethod.getMemberName(), c_method_attr, tb, param_types);
-// else
- method_builder = type_builder.DefineMethod(
- xMethod.getMemberName(), c_method_attr,
- get_type(xMethod.getReturnType()), param_types);
-
- // then define parameter infos
- foreach (XMethodParameter xParam in parameters)
- {
- ParameterAttributes param_flags = 0;
- if (xParam.isIn())
- param_flags |= ParameterAttributes.In;
- if (xParam.isOut())
- param_flags |= ParameterAttributes.Out;
- Trace.Assert(param_flags != 0);
- method_builder.DefineParameter(
- xParam.getPosition() + 1, /* starts with 1 */
- param_flags,
- xParam.getName());
- }
- // Apply attribute TypeParametersAttribute to return
- // value if it is a parameterized Type. Currently only
- // structs can have parameters.
- CustomAttributeBuilder attrBuilder;
- XStructTypeDescription xReturnStruct =
- xMethod.getReturnType() as XStructTypeDescription;
-
- if (xReturnStruct != null)
- {
- XTypeDescription[] type_args =
- xReturnStruct.getTypeArguments();
- if (type_args.Length != 0)
- {
- // get the ctor of the attribute
- Type[] ctor = new Type[] { Type.GetType("System.Type[]") };
- ConstructorInfo info =
- typeof(uno.TypeParametersAttribute)
- .GetConstructor(ctor);
- // Get the arguments for the attribute's ctor
- Type[] ctsTypes = new Type[type_args.Length];
- for (int i = 0; i < type_args.Length; ++i)
- ctsTypes[i] = get_type(type_args[i]);
-
- attrBuilder = new CustomAttributeBuilder(
- info, ctsTypes);
-
- method_builder.SetCustomAttribute(attrBuilder);
- }
- }
-
- // define UNO exception attribute (exceptions)
- attrBuilder = get_iface_method_exception_attribute(xMethod);
- if (attrBuilder != null)
- method_builder.SetCustomAttribute(attrBuilder);
-
- // oneway attribute
- if (xMethod.isOneway())
- {
- Type[] ctorOneway = new Type[0];
- object[] args = new object[0];
- attrBuilder = new CustomAttributeBuilder(
- typeof(uno.OnewayAttribute).GetConstructor(ctorOneway),
- args);
- method_builder.SetCustomAttribute(attrBuilder);
- }
- }
- else // attribute
- {
- Trace.Assert(xMember.getTypeClass() ==
- TypeClass.INTERFACE_ATTRIBUTE);
- XInterfaceAttributeTypeDescription2 xAttribute =
- (XInterfaceAttributeTypeDescription2) xMember;
-
- MethodAttributes c_property_method_attr =
- c_method_attr | MethodAttributes.SpecialName;
-
- Type attribute_type = get_type(xAttribute.getType());
- Type[] parameters = new Type[0];
-
- PropertyBuilder property_builder =
- type_builder.DefineProperty(
- xAttribute.getMemberName(), PropertyAttributes.None,
- attribute_type, parameters);
-
- // set BoundAttribute, if necessary
- if (xAttribute.isBound())
- {
- ConstructorInfo ctorBoundAttr =
- typeof(uno.BoundAttribute).GetConstructor(new Type[0]);
- CustomAttributeBuilder attrBuilderBound =
- new CustomAttributeBuilder(ctorBoundAttr, new object[0]);
- property_builder.SetCustomAttribute(attrBuilderBound);
- }
-
- // getter
- method_builder = type_builder.DefineMethod(
- "get_" + xAttribute.getMemberName(),
- c_property_method_attr, attribute_type, parameters);
-
- // define UNO exception attribute (exceptions)
- CustomAttributeBuilder attrBuilder =
- get_exception_attribute(xAttribute.getGetExceptions());
- if (attrBuilder != null)
- method_builder.SetCustomAttribute(attrBuilder);
-
- property_builder.SetGetMethod(method_builder);
-
- if (!xAttribute.isReadOnly())
- {
- // setter
- parameters = new Type[] { attribute_type };
- method_builder =
- type_builder.DefineMethod(
- "set_" + xAttribute.getMemberName(),
- c_property_method_attr, null, parameters);
- // define parameter info
- method_builder.DefineParameter(
- 1 /* starts with 1 */, ParameterAttributes.In, "value");
- // define UNO exception attribute (exceptions)
- attrBuilder =
- get_exception_attribute(xAttribute.getSetExceptions());
- if (attrBuilder != null)
- method_builder.SetCustomAttribute(attrBuilder);
-
- property_builder.SetSetMethod(method_builder);
- }
- }
- }
-
- // remove from incomplete types map
- string cts_name = type_builder.FullName;
- m_incomplete_ifaces.Remove(cts_name);
-
- if (Climaker.g_verbose)
- {
- Console.WriteLine("> emitting interface type {0}", cts_name);
- }
-
- return type_builder.CreateType();
- }
-
- //Examples of generated code
- // public static XWeak constructor1(XComponentContext ctx)
- // {
- // XMultiComponentFactory factory = ctx.getServiceManager();
- // if (factory == null)
- // throw new com.sun.star.uno.DeploymentException("bla", null);
- // return (XWeak) factory.createInstanceWithContext("service_specifier", ctx);
- // }
- // public static XWeak constructor2(XComponentContext ctx, int a, int b)
- // {
- // XMultiComponentFactory factory = ctx.getServiceManager();
- // if (factory == null)
- // throw new com.sun.star.uno.DeploymentException("bla", null);
- // Any a1;
- // a1 = new Any( typeof(int), a);
- // Any a2;
- // a2 = new Any( typeof(int), b);
- // Any[] arAny = new Any[2];
- // arAny[0] = a1;
- // arAny[1] = a2;
- // return (XWeak) factory.createInstanceWithArgumentsAndContext("service_specifier", arAny, ctx);
- // }
- // public static XWeak constructor3(XComponentContext ctx, params Any[] c)
- // {
- // XMultiComponentFactory factory = ctx.getServiceManager();
- // if (factory == null)
- // throw new com.sun.star.uno.DeploymentException("bla", null);
- // return (XWeak) factory.createInstanceWithArgumentsAndContext("service_specifier", c, ctx);
- // }
-
- Type complete_service_type(service_entry entry)
- {
- TypeBuilder type_builder = entry.m_type_builder;
- XServiceTypeDescription2 xServiceType = entry.m_xType;
-
- // Create the private default constructor
- ConstructorBuilder ctor_builder =
- type_builder.DefineConstructor(
- (MethodAttributes.Private |
- MethodAttributes.HideBySig |
- MethodAttributes.SpecialName |
- MethodAttributes.RTSpecialName),
- CallingConventions.Standard, null);
-
- ILGenerator code = ctor_builder.GetILGenerator();
- code.Emit(OpCodes.Ldarg_0); // push this
- code.Emit(OpCodes.Call,
- type_builder.BaseType.GetConstructor(new Type[0]));
- code.Emit(OpCodes.Ret);
-
- // Create the service constructors.
- // optain the interface which makes up this service, it is the
- // return type of the constructor functions
- XInterfaceTypeDescription2 xIfaceType =
- xServiceType.getInterface() as XInterfaceTypeDescription2;
- if (xIfaceType == null)
- xIfaceType = resolveInterfaceTypedef(xServiceType.getInterface());
- Type retType = get_type(xIfaceType);
-
- // Create the ConstructorInfo for a DeploymentException
- Type typeDeploymentExc =
- get_type("unoidl.com.sun.star.uno.DeploymentException", true);
-
- Type[] typeCtor = new Type[] { typeof(System.String),
- typeof(System.Object) };
- ConstructorInfo ctorDeploymentException =
- typeDeploymentExc.GetConstructor(typeCtor);
-
- XServiceConstructorDescription[] ctors =
- xServiceType.getConstructors();
-
- Type type_uno_exception =
- get_type("unoidl.com.sun.star.uno.Exception", true);
-
- for (int i = ctors.Length - 1; i >= 0; --i)
- {
- bool bParameterArray = false;
- Type typeAny = typeof(uno.Any);
- XServiceConstructorDescription ctorDes = ctors[i];
- // obtain the parameter types
- XParameter[] xParams = ctorDes.getParameters();
- Type[] typeParameters = new Type[xParams.Length + 1];
- typeParameters[0] =
- get_type("unoidl.com.sun.star.uno.XComponentContext", true);
- for (int iparam = 0; iparam != xParams.Length; ++iparam)
- {
- if (xParams[iparam].isRestParameter())
- typeParameters[iparam + 1] = typeof(uno.Any[]);
- else
- typeParameters[iparam + 1] =
- get_type(xParams[iparam].getType());
- }
-
- // define method
- string ctorName;
- if (ctorDes.isDefaultConstructor())
- ctorName = "create";
- else
- ctorName = ctorDes.getName();
- MethodBuilder method_builder = type_builder.DefineMethod(
- ctorName,
- (MethodAttributes.Public |
- MethodAttributes.HideBySig |
- MethodAttributes.Static),
- retType,
- typeParameters);
-
- // define UNO exception attribute (exceptions)
- CustomAttributeBuilder attrBuilder =
- get_service_exception_attribute(ctorDes);
- if (attrBuilder != null)
- method_builder.SetCustomAttribute(attrBuilder);
-
- // define parameter attributes (paramarray), names etc.
- // The first parameter is the XComponentContext, which cannot be
- // obtained from reflection.
- // The context is not part of the idl description
- /* ParameterBuilder param_builder = */
- method_builder.DefineParameter(
- 1, ParameterAttributes.In, "the_context");
-
- ParameterBuilder[] parameterBuilders =
- new ParameterBuilder[xParams.Length];
- for (int iparam = 0; iparam != xParams.Length + 1; ++iparam)
- {
- parameterBuilders[iparam] = method_builder.DefineParameter(
- iparam + 2, ParameterAttributes.In,
- xParams[iparam].getName());
-
- if (xParams[iparam].isRestParameter())
- {
- bParameterArray = true;
- // set the ParameterArrayAttribute
- ConstructorInfo ctor_info =
- typeof(System.ParamArrayAttribute).GetConstructor(
- new Type[0]);
- CustomAttributeBuilder attr_builder =
- new CustomAttributeBuilder(ctor_info, new object[0]);
- parameterBuilders[iparam].SetCustomAttribute(attr_builder);
- break;
- }
- }
-
- ILGenerator ilGen = method_builder.GetILGenerator();
-
- // Define locals
- // XMultiComponentFactory
- LocalBuilder local_factory = ilGen.DeclareLocal(
- get_type("unoidl.com.sun.star.lang.XMultiComponentFactory",
- true));
-
- // The return type
- LocalBuilder local_return_val = ilGen.DeclareLocal(retType);
-
- // Obtain the XMultiComponentFactory and throw an exception if we
- // do not get one
- ilGen.Emit(OpCodes.Ldarg_0);
-
- MethodInfo methodGetServiceManager = get_type(
- "unoidl.com.sun.star.uno.XComponentContext", true)
- .GetMethod("getServiceManager");
- ilGen.Emit(OpCodes.Callvirt, methodGetServiceManager);
- ilGen.Emit(OpCodes.Stloc, local_factory);
- ilGen.Emit(OpCodes.Ldloc, local_factory);
- Label label1 = ilGen.DefineLabel();
- ilGen.Emit(OpCodes.Brtrue, label1);
- ilGen.Emit(OpCodes.Ldstr,
- String.Format("The service unoidl.{0} could not be created. The context failed to supply the service manager.",
- xServiceType.getName()));
- ilGen.Emit(OpCodes.Ldarg_0);
- ilGen.Emit(OpCodes.Newobj, ctorDeploymentException);
- ilGen.Emit(OpCodes.Throw);
- ilGen.MarkLabel(label1);
-
- // We create a try/catch around the createInstanceWithContext,
- // etc. functions
-
- // There are 3 cases
-
- // 1. function do not specify exceptions. Then
- // RuntimeExceptions are retrhown and other exceptions
- // produce a DeploymentException.
-
- // 2. function specify Exception. Then all exceptions fly
- // through
-
- // 3. function specifies exceptions but no Exception. Then
- // these are rethrown and other exceptions, except
- // RuntimeException, produce a deployment exception.
-
- // In case there are no parameters we call
- // XMultiComponentFactory.createInstanceWithContext
-
- ArrayList exceptionTypes =
- get_service_ctor_method_exceptions_reduced(
- ctorDes.getExceptions());
- if (! exceptionTypes.Contains(type_uno_exception))
- {
- ilGen.BeginExceptionBlock();
- }
- if (xParams.Length == 0)
- {
- ilGen.Emit(OpCodes.Ldloc, local_factory);
- ilGen.Emit(OpCodes.Ldstr, to_cts_name(xServiceType.getName()));
- ilGen.Emit(OpCodes.Ldarg_0);
-
- MethodInfo methodCIWAAC =
- local_factory.LocalType.GetMethod(
- "createInstanceWithArgumentsAndContext");
- ilGen.Emit(OpCodes.Callvirt, methodCIWAAC);
- }
- else if (bParameterArray)
- {
- // Service constructor with parameter array
- ilGen.Emit(OpCodes.Ldloc, local_factory);
- ilGen.Emit(OpCodes.Ldstr, to_cts_name(xServiceType.getName()));
- ilGen.Emit(OpCodes.Ldarg_1);
- ilGen.Emit(OpCodes.Ldarg_0);
- MethodInfo methodCIWAAC =
- local_factory.LocalType.GetMethod(
- "createInstanceWithArgumentsAndContext");
- ilGen.Emit(OpCodes.Callvirt, methodCIWAAC);
- }
- else
- {
- // Any param1, Any param2, etc.
- // For each parameter, except the component context, and
- // the parameter array an Any is created.
- LocalBuilder[] localAnys = new LocalBuilder[xParams.Length];
-
- for (int iparam = 0; iparam < xParams.Length; ++iparam)
- {
- localAnys[iparam] = ilGen.DeclareLocal(typeAny);
- }
-
- // Any[]. This array is filled with the created Anys
- // which contain the parameters and the values
- // contained in the parameter array
- LocalBuilder local_anyParams =
- ilGen.DeclareLocal(typeof(uno.Any[]));
-
- // Create the Any for every argument, except for the
- // parameter array. localAnys contains the LocalBuilder for
- // all these parameters. We call the ctor Any(Type, Object)
- Type[] typesCtorAny = { typeof(System.Type),
- typeof(System.Object) };
- ConstructorInfo ctorAny =
- typeAny.GetConstructor(typesCtorAny);
- for (int j = 0; j < localAnys.Length; ++j)
- {
- ilGen.Emit(OpCodes.Ldloca, localAnys[j]);
- ilGen.Emit(OpCodes.Ldtoken, typeParameters[j+1]);
-
- Type[] typeParams = { typeof(System.RuntimeTypeHandle) };
-
- ilGen.Emit(OpCodes.Call,
- typeof(System.Type).GetMethod(
- "GetTypeFromHandle", typeParams));
- ilGen.Emit(OpCodes.Ldarg, j + 1);
- // if the parameter is a value type then we need
- // to box it, because the Any ctor takes an Object
- if (typeParameters[j+1].IsValueType)
- ilGen.Emit(OpCodes.Box, typeParameters[j+1]);
- ilGen.Emit(OpCodes.Call, ctorAny);
- }
-
- // Create the Any[] that is passed to the
- // createInstanceWithContext[AndArguments] function
- ilGen.Emit(OpCodes.Ldc_I4, localAnys.Length);
- ilGen.Emit(OpCodes.Newarr, typeAny);
- ilGen.Emit(OpCodes.Stloc, local_anyParams);
-
- // Assign all anys created from the parameters array
- // to the Any[]
- for (int j = 0; j < localAnys.Length; ++j)
- {
- ilGen.Emit(OpCodes.Ldloc, local_anyParams);
- ilGen.Emit(OpCodes.Ldc_I4, j);
- ilGen.Emit(OpCodes.Ldelema, typeAny);
- ilGen.Emit(OpCodes.Ldloc, localAnys[j]);
- ilGen.Emit(OpCodes.Stobj, typeAny);
- }
-
- // call createInstanceWithContextAndArguments
- ilGen.Emit(OpCodes.Ldloc, local_factory);
- ilGen.Emit(OpCodes.Ldstr, to_cts_name(xServiceType.getName()));
- ilGen.Emit(OpCodes.Ldloc, local_anyParams);
- ilGen.Emit(OpCodes.Ldarg_0);
- MethodInfo methodCIWAAC =
- local_factory.LocalType.GetMethod(
- "createInstanceWithArgumentsAndContext");
- ilGen.Emit(OpCodes.Callvirt, methodCIWAAC);
- }
-
- // cast the object returned by the functions
- // createInstanceWithContext or
- // createInstanceWithArgumentsAndContext to the interface type
- ilGen.Emit(OpCodes.Castclass, retType);
- ilGen.Emit(OpCodes.Stloc, local_return_val);
-
- // catch exceptions thrown by createInstanceWithArgumentsAndContext
- // and createInstanceWithContext
- if (!exceptionTypes.Contains(type_uno_exception))
- {
- // catch (unoidl.com.sun.star.uno.RuntimeException) {throw;}
- ilGen.BeginCatchBlock(
- get_type(
- "unoidl.com.sun.star.uno.RuntimeException", true));
- ilGen.Emit(OpCodes.Pop);
- ilGen.Emit(OpCodes.Rethrow);
-
- // catch and rethrow all other defined Exceptions
- foreach (Type excType in exceptionTypes)
- {
- if (excType.IsInstanceOfType(
- get_type(
- "unoidl.com.sun.star.uno.RuntimeException",
- true)))
- {
- // we have a catch for RuntimeException already defined
- continue;
- }
-
- // catch Exception and rethrow
- ilGen.BeginCatchBlock(excType);
- ilGen.Emit(OpCodes.Pop);
- ilGen.Emit(OpCodes.Rethrow);
- }
-
- // catch (unoidl.com.sun.star.uno.Exception)
- // { throw DeploymentException... }
- ilGen.BeginCatchBlock(type_uno_exception);
-
- // define the local variable that keeps the exception
- LocalBuilder local_exception = ilGen.DeclareLocal(
- type_uno_exception);
-
- // Store the exception
- ilGen.Emit(OpCodes.Stloc, local_exception);
-
- // prepare the construction of the exception
- ilGen.Emit(OpCodes.Ldstr,
- "The context (com.sun.star.uno.XComponentContext)" +
- "failed to supply the service " +
- to_cts_name(xServiceType.getName()) +
- ": ");
-
- // add to the string the Exception.Message
- ilGen.Emit(OpCodes.Ldloc, local_exception);
- ilGen.Emit(OpCodes.Callvirt,
- type_uno_exception.GetProperty("Message")
- .GetGetMethod());
- Type[] concatParams = new Type[] { typeof(System.String),
- typeof(System.String) };
- ilGen.Emit(OpCodes.Call,
- typeof(System.String).GetMethod("Concat",
- concatParams));
- // load context argument
- ilGen.Emit(OpCodes.Ldarg_0);
- ilGen.Emit(OpCodes.Newobj, ctorDeploymentException);
- ilGen.Emit(OpCodes.Throw); // Exception(typeDeploymentExc);
-
- ilGen.EndExceptionBlock();
- }
-
- // Check if the service instance was create and throw an
- // exception if not.
- Label label_service_created = ilGen.DefineLabel();
- ilGen.Emit(OpCodes.Ldloc, local_return_val);
- ilGen.Emit(OpCodes.Brtrue_S, label_service_created);
-
- ilGen.Emit(OpCodes.Ldstr,
- "The context (com.sun.star.uno.XComponentContext)" +
- "failed to supply the service unoidl." +
- to_cts_name(xServiceType.getName()) +
- ".");
- ilGen.Emit(OpCodes.Ldarg_0);
- ilGen.Emit(OpCodes.Newobj, ctorDeploymentException);
- ilGen.Emit(OpCodes.Throw); // Exception(typeDeploymentExc);
-
- ilGen.MarkLabel(label_service_created);
- ilGen.Emit(OpCodes.Ldloc, local_return_val);
- ilGen.Emit(OpCodes.Ret);
- }
-
- // remove from incomplete types map
- m_incomplete_services.Remove(type_builder.FullName);
-
- if (Climaker.g_verbose)
- {
- Console.WriteLine("> emitting service type {0}",
- type_builder.FullName);
- }
-
- return type_builder.CreateType();
- }
-
- CustomAttributeBuilder get_service_exception_attribute(
- XServiceConstructorDescription ctorDes)
- {
- return get_exception_attribute(ctorDes.getExceptions());
- }
-
- CustomAttributeBuilder get_iface_method_exception_attribute(
- XInterfaceMethodTypeDescription xMethod)
- {
- XTypeDescription[] TDs = xMethod.getExceptions();
- XCompoundTypeDescription[] CTDs =
- new XCompoundTypeDescription[TDs.Length];
-
- for (int i = 0; i < TDs.Length; ++i)
- CTDs[i] = (XCompoundTypeDescription) TDs[i];
-
- return get_exception_attribute(CTDs);
- }
-
- CustomAttributeBuilder get_exception_attribute(
- XCompoundTypeDescription[] exceptionsTd)
- {
- CustomAttributeBuilder attr_builder = null;
-
- Type[] typesCtor = new Type[] { Type.GetType("System.Type[]") };
- ConstructorInfo ctor_ExceptionAttribute =
- typeof(uno.ExceptionAttribute).GetConstructor(typesCtor);
-
- if (exceptionsTd.Length != 0) // opt
- {
- Type[] exception_types = new Type[exceptionsTd.Length];
- for (int exc_pos = 0; exc_pos < exceptionsTd.Length; ++exc_pos)
- {
- XCompoundTypeDescription xExc = exceptionsTd[exc_pos];
- exception_types[exc_pos] = get_type(xExc);
- }
-
- object[] args = new object[] { exception_types };
- attr_builder = new CustomAttributeBuilder(
- ctor_ExceptionAttribute, args);
- }
- return attr_builder;
- }
-
- Type complete_singleton_type(singleton_entry entry)
- {
- TypeBuilder type_builder = entry.m_type_builder;
- XSingletonTypeDescription2 xSingletonType = entry.m_xType;
- string sSingletonName = to_cts_name(xSingletonType.getName());
-
- // Create the private default constructor
- ConstructorBuilder ctor_builder =
- type_builder.DefineConstructor((MethodAttributes.Private |
- MethodAttributes.HideBySig |
- MethodAttributes.SpecialName |
- MethodAttributes.RTSpecialName),
- CallingConventions.Standard, null);
-
- ILGenerator ilGen = ctor_builder.GetILGenerator();
- ilGen.Emit(OpCodes.Ldarg_0); // push this
- ilGen.Emit(OpCodes.Call,
- type_builder.BaseType.GetConstructor(new Type[0]));
- ilGen.Emit(OpCodes.Ret);
-
- // obtain the interface which makes up this service, it is the return
- // type of the constructor functions
- XInterfaceTypeDescription2 xIfaceType =
- xSingletonType.getInterface() as XInterfaceTypeDescription2;
-
- if (xIfaceType == null)
- xIfaceType = resolveInterfaceTypedef(
- xSingletonType.getInterface());
- Type retType = get_type(xIfaceType);
-
- // Create the ConstructorInfo for a DeploymentException
- Type typeDeploymentExc =
- get_type("unoidl.com.sun.star.uno.DeploymentException", true);
-
- Type[] typeCtor = new Type[] { typeof(System.String),
- typeof(System.Object) };
- ConstructorInfo ctorDeploymentException =
- typeDeploymentExc.GetConstructor(typeCtor);
-
- // define method
- Type[] typeParameters =
- new Type[] { get_type(
- "unoidl.com.sun.star.uno.XComponentContext",
- true) };
- MethodBuilder method_builder = type_builder.DefineMethod(
- "get",
- (MethodAttributes.Public |
- MethodAttributes.HideBySig |
- MethodAttributes.Static),
- retType,
- typeParameters);
-
-// method_builder.SetCustomAttribute(get_service_ctor_method_attribute(ctorDes));
-
- // The first parameter is the XComponentContext, which cannot be
- // obtained using reflection.
- // The context is not part of the idl description
- /* ParameterBuilder param_builder = */ method_builder.DefineParameter(
- 1, ParameterAttributes.In, "the_context");
-
- ilGen = method_builder.GetILGenerator();
- // Define locals
- // Any, returned by XComponentContext.getValueByName
- LocalBuilder local_any = ilGen.DeclareLocal(typeof(uno.Any));
-
- // Call XContext.getValueByName
- ilGen.Emit(OpCodes.Ldarg_0);
- // build the singleton name: /singleton/unoidl.com.sun.star.XXX
- ilGen.Emit(OpCodes.Ldstr, "/singletons/" + sSingletonName);
-
- MethodInfo methodGetValueByName =
- get_type("unoidl.com.sun.star.uno.XComponentContext",
- true).GetMethod("getValueByName");
- ilGen.Emit(OpCodes.Callvirt, methodGetValueByName);
- ilGen.Emit(OpCodes.Stloc_0);
-
- // Does the returned Any contain a value?
- ilGen.Emit(OpCodes.Ldloca_S, local_any);
- MethodInfo methodHasValue = typeof(uno.Any).GetMethod("hasValue");
- ilGen.Emit(OpCodes.Call, methodHasValue);
-
- // If not, then throw a DeploymentException
- Label label_singleton_exists = ilGen.DefineLabel();
- ilGen.Emit(OpCodes.Brtrue_S, label_singleton_exists);
- ilGen.Emit(OpCodes.Ldstr,
- "Component context fails to supply singleton " +
- sSingletonName + " of type " + retType.FullName + ".");
- ilGen.Emit(OpCodes.Ldarg_0);
- ilGen.Emit(OpCodes.Newobj, ctorDeploymentException);
- ilGen.Emit(OpCodes.Throw);
- ilGen.MarkLabel(label_singleton_exists);
-
- // Cast the singleton contained in the Any to the expected
- // interface and return it.
- ilGen.Emit(OpCodes.Ldloca_S, local_any);
- ilGen.Emit(OpCodes.Call,
- typeof(uno.Any).GetProperty("Value").GetGetMethod());
- ilGen.Emit(OpCodes.Castclass, retType);
- ilGen.Emit(OpCodes.Ret);
-
- // remove from incomplete singletons map
- m_incomplete_singletons.Remove(type_builder.FullName);
-
- if (Climaker.g_verbose)
- {
- Console.WriteLine("> emitting singleton type {0}",
- type_builder.FullName);
- }
-
- return type_builder.CreateType();
- }
-
- public Type get_type(XTypeDescription xType)
- {
- switch (xType.getTypeClass())
- {
- case TypeClass.VOID:
- return typeof(void);
- case TypeClass.CHAR:
- return typeof(System.Char);
- case TypeClass.BOOLEAN:
- return typeof(System.Boolean);
- case TypeClass.BYTE:
- return typeof(System.Byte);
- case TypeClass.SHORT:
- return typeof(System.Int16);
- case TypeClass.UNSIGNED_SHORT:
- return typeof(System.UInt16);
- case TypeClass.LONG:
- return typeof(System.Int32);
- case TypeClass.UNSIGNED_LONG:
- return typeof(System.UInt32);
- case TypeClass.HYPER:
- return typeof(System.Int64);
- case TypeClass.UNSIGNED_HYPER:
- return typeof(System.UInt64);
- case TypeClass.FLOAT:
- return typeof(System.Single);
- case TypeClass.DOUBLE:
- return typeof(System.Double);
- case TypeClass.STRING:
- return typeof(System.String);
- case TypeClass.TYPE:
- return typeof(System.Type);
- case TypeClass.ANY:
- return typeof(uno.Any);
- case TypeClass.ENUM:
- return get_type((XEnumTypeDescription) xType);
- case TypeClass.TYPEDEF:
- // unwind typedefs
- return get_type(((XIndirectTypeDescription)
- xType).getReferencedType());
- case TypeClass.STRUCT:
- case TypeClass.EXCEPTION:
- return get_type((XCompoundTypeDescription) xType);
- case TypeClass.SEQUENCE:
- {
- Type element_type = get_type(((XIndirectTypeDescription)
- xType).getReferencedType());
- return get_type(element_type.FullName + "[]", true);
- }
- case TypeClass.INTERFACE:
- return get_type((XInterfaceTypeDescription2) xType);
- case TypeClass.CONSTANT:
- return get_type((XConstantTypeDescription) xType);
- case TypeClass.CONSTANTS:
- return get_type((XConstantsTypeDescription) xType);
- case TypeClass.SERVICE:
- return get_type((XServiceTypeDescription2) xType);
- case TypeClass.SINGLETON:
- return get_type((XSingletonTypeDescription2) xType);
- case TypeClass.MODULE:
- // ignore these
- return null;
- default:
- throw new System.Exception("unexpected type " + xType.getName());
- }
- }
-
- // must be called to finish up uncompleted types
- public void Dispose()
- {
- for (IDictionaryEnumerator enumerator =
- m_incomplete_ifaces.GetEnumerator();
- enumerator.MoveNext(); )
- {
- complete_iface_type(enumerator.Value as iface_entry);
- }
-
- for (IDictionaryEnumerator enumerator =
- m_incomplete_services.GetEnumerator();
- enumerator.MoveNext(); )
- {
- complete_service_type(enumerator.Value as service_entry);
- }
-
- for (IDictionaryEnumerator enumerator =
- m_incomplete_singletons.GetEnumerator();
- enumerator.MoveNext(); )
- {
- complete_singleton_type(enumerator.Value as singleton_entry);
- }
- }
-
- public TypeEmitter(ModuleBuilder module_builder, Assembly[] extra_assemblies)
- {
- m_module_builder = module_builder;
- m_extra_assemblies = extra_assemblies;
- m_method_info_Type_GetTypeFromHandle = null;
- m_type_Exception = null;
- m_type_RuntimeException = null;
- m_incomplete_ifaces = new Hashtable();
- m_incomplete_services = new Hashtable();
- m_incomplete_singletons = new Hashtable();
- m_generated_structs = new Hashtable();
-
- Type[] param_types = new Type[] { typeof(System.RuntimeTypeHandle) };
- m_method_info_Type_GetTypeFromHandle =
- typeof(System.Type).GetMethod("GetTypeFromHandle", param_types);
- }
-
- /* Creates .System.Type object for UNO exceptions. The UNO
- exceptions are obtained by
- com.sun.star.reflection.XServiceConstructorDescription.getExceptions
- In a first step the respective CLI types are created. Then it
- is examined if a Type represents a super class of another
- class. If so the Type of the derived class is discarded. For
- example there are a uno RuntimeException and a
- DeploymentException which inherits RuntimeException. Then only
- the cli Type of the RuntimeException is returned. The purpose
- of this function is to provide exceptions for which catch
- blocks are generated in the service constructor code.
-
- The result is always an instance of ArrayList, even if the
- sequence argument does not contain any elements.
- */
- ArrayList get_service_ctor_method_exceptions_reduced(
- XCompoundTypeDescription[] exceptionsTd)
- {
- if (exceptionsTd.Length == 0)
- return new ArrayList();
-
- ArrayList types = new ArrayList();
- foreach (XCompoundTypeDescription xCompTd in exceptionsTd)
- {
- types.Add(get_type(to_cts_name(xCompTd.getName()), true));
- }
-
- int start = 0;
- while (true)
- {
- bool bRemove = false;
- for (int i = start; i < types.Count; ++i)
- {
- Type t = (Type) types[i];
- for (int j = 0; j < types.Count; ++j)
- {
- if (t.IsSubclassOf((Type) types[j]))
- {
- // FIXME Wow, we're using an ArrayList and calling
- // RemoveAt all the time?
- types.RemoveAt(i);
- bRemove = true;
- break;
- }
- }
- if (bRemove)
- break;
- start++;
- }
-
- if (bRemove == false)
- break;
- }
- return types;
- }
-
- XInterfaceTypeDescription2 resolveInterfaceTypedef(
- XTypeDescription type)
- {
- XInterfaceTypeDescription2 xIfaceTd = type as XInterfaceTypeDescription2;
-
- if (xIfaceTd != null)
- return xIfaceTd;
-
- XIndirectTypeDescription xIndTd = type as XIndirectTypeDescription;
- if (xIndTd == null)
- throw new System.Exception(
- "resolveInterfaceTypedef was called with an invalid argument");
-
- return resolveInterfaceTypedef(xIndTd.getReferencedType());
- }
-}
-
diff --git a/scratch/offapi-vba/Excel/Constants.idl b/scratch/offapi-vba/Excel/Constants.idl
deleted file mode 100644
index 716e33cf7..000000000
--- a/scratch/offapi-vba/Excel/Constants.idl
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef __org_openoffice_vba_Excel_Constants_idl__
-#define __org_openoffice_vba_Excel_Constants_idl__
-module org { module openoffice { module vba { module Excel {
-
-constants Constants
-{
-const long xlAll = -4104; //(&HFFFFEFF8)
-const short xlFirst = 0;
-const short xlLast = 1;
-const long xlNone = -4142; //(&HFFFFEFD2)
-};
-}; }; }; };
-
-#endif
diff --git a/scratch/offapi-vba/Excel/XlCalculation.idl b/scratch/offapi-vba/Excel/XlCalculation.idl
deleted file mode 100644
index 37e6f2ad1..000000000
--- a/scratch/offapi-vba/Excel/XlCalculation.idl
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef __org_openoffice_vba_Excel_XlCalculation_idl__
-#define __org_openoffice_vba_Excel_XlCalculation_idl__
-module org { module openoffice { module vba { module Excel {
-
-constants XlCalculation
-{
-const long xlCellTypeVisible = 12;
-const long xlCalculationManual = -4135; // (&HFFFFEFD9)
-const long xlCalculationAutomatic = -4105; //(&HFFFFEFF7)
-const long xlCalculationSemiautomatic = 2;
-
-};
-}; }; }; };
-
-#endif
diff --git a/scratch/offapi-vba/Excel/XlCellType.idl b/scratch/offapi-vba/Excel/XlCellType.idl
deleted file mode 100644
index 385025ca4..000000000
--- a/scratch/offapi-vba/Excel/XlCellType.idl
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef __org_openoffice_vba_Excel_XlCellType_idl__
-#define __org_openoffice_vba_Excel_XlCellType_idl__
-module org { module openoffice { module vba { module Excel {
-
-constants XlCellType
-{
-const long xlCellTypeAllFormatConditions = -4172; // (&HFFFFEFB4)
-const long xlCellTypeAllValidation = -4174; // (&HFFFFEFB2)
-const long xlCellTypeBlanks = 4; //
-const long xlCellTypeComments = -4144; // (&HFFFFEFD0)
-const long xlCellTypeConstants = 2;
-const long xlCellTypeFormulas = -4123; // (&HFFFFEFE5)
-const long xlCellTypeLastCell = 11;
-const long xlCellTypeSameFormatConditions = -4173; // (&HFFFFEFB3)
-const long xlCellTypeSameValidation = -4175; // (&HFFFFEFB1)
-const long xlCellTypeVisible = 12;
-};
-}; }; }; };
-
-#endif
diff --git a/scratch/offapi-vba/Excel/XlCutCopyMode.idl b/scratch/offapi-vba/Excel/XlCutCopyMode.idl
deleted file mode 100644
index 2a04374d3..000000000
--- a/scratch/offapi-vba/Excel/XlCutCopyMode.idl
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef __org_openoffice_vba_Excel_XlCutCopyMode_idl__
-#define __org_openoffice_vba_Excel_XlCutCopyMode_idl__
-module org { module openoffice { module vba { module Excel {
-
-constants XlCutCopyMode
-{
-const long xlCopy = 1;
-const long xlCut = 2;
-};
-}; }; }; };
-
-#endif
diff --git a/scratch/offapi-vba/Excel/XlFindLookIn.idl b/scratch/offapi-vba/Excel/XlFindLookIn.idl
deleted file mode 100644
index 822f7dff8..000000000
--- a/scratch/offapi-vba/Excel/XlFindLookIn.idl
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef __org_openoffice_vba_Excel_XlFindLookIn_idl__
-#define __org_openoffice_vba_Excel_XlFindLookIn_idl__
-module org { module openoffice { module vba { module Excel {
-
-constants XlFindLookIn
-{
-const long xlComments = -4144; // (&HFFFFEFD0)
-const long xlFormulas = -4123; //(&HFFFFEFE5)
-const long xlValues = -4163; //(&HFFFFEFBD)
-};
-}; }; }; };
-
-#endif
diff --git a/scratch/offapi-vba/Excel/makefile.mk b/scratch/offapi-vba/Excel/makefile.mk
deleted file mode 100644
index d87816191..000000000
--- a/scratch/offapi-vba/Excel/makefile.mk
+++ /dev/null
@@ -1,28 +0,0 @@
-PRJ=..$/..$/..$/..
-
-PRJNAME=api
-
-TARGET=excel
-PACKAGE=org$/openoffice$/vba$/Excel
-
-# --- Settings -----------------------------------------------------
-.INCLUDE : $(PRJ)$/util$/makefile.pmk
-
-.IF "$(ENABLE_VBA)"!="YES"
-dummy:
- @echo "not building vba..."
-.ENDIF
-
-# ------------------------------------------------------------------------
-
-IDLFILES=\
- XlCutCopyMode.idl \
- XlFindLookIn.idl\
- Constants.idl \
- XlCalculation.idl \
- XlCellType.idl
-
-# ------------------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/scratch/offapi-vba/MSFormReturnTypes.idl b/scratch/offapi-vba/MSFormReturnTypes.idl
deleted file mode 100644
index cece11382..000000000
--- a/scratch/offapi-vba/MSFormReturnTypes.idl
+++ /dev/null
@@ -1,25 +0,0 @@
-module MSForms
-{
- struct ReturnBoolean
- {
- boolean Value;
- };
-
- struct ReturnEffect
- {
- //fmDropEffect Value;
- short Value;
- };
-
- struct ReturnInteger
- {
- long Value;
- };
-
- struct ReturnSingle
- {
- float Value;
- };
-
-
-};
diff --git a/scratch/offapi-vba/POSITION b/scratch/offapi-vba/POSITION
deleted file mode 100644
index 35b49c288..000000000
--- a/scratch/offapi-vba/POSITION
+++ /dev/null
@@ -1 +0,0 @@
-offapi/org/openoffice/vba
diff --git a/scratch/offapi-vba/XApplication.idl b/scratch/offapi-vba/XApplication.idl
deleted file mode 100644
index db10df592..000000000
--- a/scratch/offapi-vba/XApplication.idl
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef __org_openoffice_vba_XApplication_idl__
-#define __org_openoffice_vba_XApplication_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-
-module org { module openoffice { module vba {
-
-published interface XRange;
-published interface XWorkbook;
-published interface XWorkbooks;
-published interface XWorksheets;
-published interface XWorksheetFunction;
-published interface XWindow;
-
-published interface XApplication: com::sun::star::uno::XInterface
-{
- [attribute, readonly] XRange Selection;
- [attribute, readonly] XWorkbook ActiveWorkbook;
- [attribute, readonly] XRange ActiveCell;
- [attribute, readonly] XWindow ActiveWindow;
- [attribute] long Calculation;
- //#TODO #FIXME this is more of a placeholder, will return
- // the value of activeworkbook, in xl 'ThisWorkbook' should return the
- // workbook in which the 'calling' macro is running. Should be possible
- // to determine this
- [attribute, readonly] XWorkbook ThisWorkbook;
- [attribute] boolean ScreenUpdating;
- [attribute] any CutCopyMode;
- any Workbooks( [in] any aIndex );
- XWorksheetFunction WorksheetFunction();
- any Evaluate( [in] string Name );
- any Dialogs( [in] any DialogIndex );
- // #FIXME #TODO up to 30 args needed
- double CountA( [in] any arg1 );
-};
-
-}; }; };
-
-#endif
-
-
diff --git a/scratch/offapi-vba/XArrayWrapper.idl b/scratch/offapi-vba/XArrayWrapper.idl
deleted file mode 100644
index b92c6dd14..000000000
--- a/scratch/offapi-vba/XArrayWrapper.idl
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef __org_openoffice_vba_XArrayWrapper_idl__
-#define __org_openoffice_vba_XArrayWrapper_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-
-//=============================================================================
-
-module org { module openoffice { module vba {
-
-//=============================================================================
-
-published interface XArrayWrapper: com::sun::star::uno::XInterface
-{
- [attribute, readonly ] boolean IsZeroIndex;
- [attribute, readonly ] any Array;
-};
-
-//=============================================================================
-
-}; }; };
-
-#endif
-
-
diff --git a/scratch/offapi-vba/XChart.idl b/scratch/offapi-vba/XChart.idl
deleted file mode 100644
index 864d98b9f..000000000
--- a/scratch/offapi-vba/XChart.idl
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef __org_openoffice_vba_XChart_idl__
-#define __org_openoffice_vba_XChart_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-
-//=============================================================================
-
-module org { module openoffice { module vba {
-
-//=============================================================================
-
-published interface XChart: com::sun::star::uno::XInterface
-{
- [attribute, readonly] string Name;
- any SeriesCollection( [in] any Item );
-};
-
-//=============================================================================
-
-}; }; };
-
-#endif
-
-
diff --git a/scratch/offapi-vba/XChartObject.idl b/scratch/offapi-vba/XChartObject.idl
deleted file mode 100644
index 6c3f61b15..000000000
--- a/scratch/offapi-vba/XChartObject.idl
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef __org_openoffice_vba_XChartObject_idl__
-#define __org_openoffice_vba_XChartObject_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-
-//=============================================================================
-
-module org { module openoffice { module vba {
-
-//=============================================================================
-published interface XChart;
-published interface XChartObject: com::sun::star::uno::XInterface
-{
- [attribute, readonly] XChart Chart;
- [attribute, readonly] string Name;
- any test();
-};
-
-//=============================================================================
-
-}; }; };
-
-#endif
-
-
diff --git a/scratch/offapi-vba/XChartObjects.idl b/scratch/offapi-vba/XChartObjects.idl
deleted file mode 100644
index 254331cd8..000000000
--- a/scratch/offapi-vba/XChartObjects.idl
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef __org_openoffice_vba_XChartObjects_idl__
-#define __org_openoffice_vba_XChartObjects_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-
-#ifndef __org_openoffice_vba_XCollection_idl__
-#include <org/openoffice/vba/XCollection.idl>
-#endif
-
-//=============================================================================
-
-module org { module openoffice { module vba {
-
-//=============================================================================
-//published interface XChartObjects: org::openoffice::vba::XCollection
-published interface XChartObjects: ::com::sun::star::uno::XInterface
-{
- // #TODO #FIXME the very basic functionality e.g.
- //any Add( [in] double Left, [in] double Top, [in] double Width, [in] double Height );
- //void Delete();
-};
-
-//=============================================================================
-
-}; }; };
-
-#endif
-
-
diff --git a/scratch/offapi-vba/XCollection.idl b/scratch/offapi-vba/XCollection.idl
deleted file mode 100644
index 01719f8a9..000000000
--- a/scratch/offapi-vba/XCollection.idl
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef __org_openoffice_vba_XCollection_idl__
-#define __org_openoffice_vba_XCollection_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-
-//=============================================================================
-
-module org { module openoffice { module vba {
-
-//=============================================================================
-
-published interface XApplication;
-
-published interface XCollection : ::com::sun::star::uno::XInterface
-{
- [attribute, readonly] long Count;
- [attribute, readonly] any Parent;
- [attribute, readonly] long Creator;
- [attribute, readonly] XApplication Application;
-
- any Item( [in] any Index );
-};
-
-}; }; };
-
-#endif
diff --git a/scratch/offapi-vba/XDialog.idl b/scratch/offapi-vba/XDialog.idl
deleted file mode 100644
index 6671f0d75..000000000
--- a/scratch/offapi-vba/XDialog.idl
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef __org_openoffice_vba_XDialog_idl__
-#define __org_openoffice_vba_XDialog_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-
-
-//=============================================================================
-
-module org { module openoffice { module vba {
-
-//=============================================================================
-
-published interface XApplication;
-
-published interface XDialog : com::sun::star::uno::XInterface
-{
- [attribute, readonly] XApplication Application;
- [attribute, readonly] any Parent;
- [attribute, readonly] long Creator;
- void Show();
-};
-
-}; }; };
-
-#endif
-
diff --git a/scratch/offapi-vba/XDialogs.idl b/scratch/offapi-vba/XDialogs.idl
deleted file mode 100644
index 65efccec3..000000000
--- a/scratch/offapi-vba/XDialogs.idl
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef __org_openoffice_vba_XDialogs_idl__
-#define __org_openoffice_vba_XDialogs_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-
-#ifndef __org_openoffice_vba_XCollection_idl__
-#include <org/openoffice/vba/XCollection.idl>
-#endif
-
-//=============================================================================
-
-module org { module openoffice { module vba {
-
-//=============================================================================
-
-published interface XDialogs : ::org::openoffice::vba::XCollection
-{
- void Dummy();
-};
-
-}; }; };
-
-#endif
-
diff --git a/scratch/offapi-vba/XFont.idl b/scratch/offapi-vba/XFont.idl
deleted file mode 100644
index b87f00670..000000000
--- a/scratch/offapi-vba/XFont.idl
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef __org_openoffice_vba_XFont_idl__
-#define __org_openoffice_vba_Font_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-#ifndef __com_sun_star_lang_IndexOutOfBoundsException_idl__
-#include <com/sun/star/lang/IndexOutOfBoundsException.idl>
-#endif
-
-
-//=============================================================================
-
-module org { module openoffice { module vba {
-
-published interface XFont: com::sun::star::uno::XInterface
-{
- [attribute] boolean Bold;
- [attribute] boolean Underline;
- [attribute] boolean Strikethrough;
- [attribute] boolean Shadow;
- [attribute] boolean Italic;
- [attribute] string Name;
-};
-
-//=============================================================================
-
-}; }; };
-
-#endif
-
-
diff --git a/scratch/offapi-vba/XGlobals.idl b/scratch/offapi-vba/XGlobals.idl
deleted file mode 100644
index 60f02cf35..000000000
--- a/scratch/offapi-vba/XGlobals.idl
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef __org_openoffice_vba_XGlobals_idl__
-#define __org_openoffice_vba_XGlobals_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-
-module org { module openoffice { module vba {
-
-published interface XApplication;
-published interface XWorkbook;
-published interface XWorksheet;
-published interface XWorksheets;
-published interface XWorkbooks;
-
-published interface XGlobals: com::sun::star::uno::XInterface
-{
- // FIXME, need better way to expose globals
- sequence< any > getGlobals();
-
- [attribute, readonly] org::openoffice::vba::XApplication Application;
- [attribute, readonly] org::openoffice::vba::XWorkbook ActiveWorkbook;
- [attribute, readonly] org::openoffice::vba::XWorksheet ActiveSheet;
- any WorkSheets( [in] any aIndex );
- any WorkBooks( [in] any aIndex );
- any Sheets( [in] any aIndex );
-};
-
-}; }; };
-
-#endif
-
-
diff --git a/scratch/offapi-vba/XInterior.idl b/scratch/offapi-vba/XInterior.idl
deleted file mode 100644
index 8e66e97a1..000000000
--- a/scratch/offapi-vba/XInterior.idl
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef __org_openoffice_vba_XInterior_idl__
-#define __org_openoffice_vba_XInterior_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-
-//=============================================================================
-
-module org { module openoffice { module vba {
-
-//=============================================================================
-
-
-published interface XInterior: com::sun::star::uno::XInterface
-{
- [attribute] any Color;
-};
-
-//=============================================================================
-
-}; }; };
-
-#endif
-
-
diff --git a/scratch/offapi-vba/XOutline.idl b/scratch/offapi-vba/XOutline.idl
deleted file mode 100644
index 3e88c4988..000000000
--- a/scratch/offapi-vba/XOutline.idl
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef __org_openoffice_vba_XOutline_idl__
-#define __org_openoffice_vba_XOutline_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-
-//=============================================================================
-
-module org { module openoffice { module vba {
-
-//=============================================================================
-
-
-published interface XOutline: com::sun::star::uno::XInterface
-{
- //Methods
- void ShowLevels([in] any RowLevels,[in] any ColumnLevels);
-
-};
-
-//=============================================================================
-
-}; }; };
-
-#endif
-
-
diff --git a/scratch/offapi-vba/XRange.idl b/scratch/offapi-vba/XRange.idl
deleted file mode 100644
index 170cd9f84..000000000
--- a/scratch/offapi-vba/XRange.idl
+++ /dev/null
@@ -1,74 +0,0 @@
-#ifndef __org_openoffice_vba_XRange_idl__
-#define __org_openoffice_vba_XRange_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
-#include <com/sun/star/lang/IllegalArgumentException.idl>
-#endif
-#ifndef __org_openoffice_vba_XlPasteType_idl__
-#include <org/openoffice/vba/XlPasteType.idl>
-#endif
-#ifndef __org_openoffice_vba_XlPasteSpecialOperation_idl__
-#include <org/openoffice/vba/XlPasteSpecialOperation.idl>
-#endif
-//=============================================================================
-
-module org { module openoffice { module vba {
-
-published interface XFont;
-published interface XRows;
-published interface XColumns;
-published interface XInterior;
-
-published interface XRange: com::sun::star::uno::XInterface
-{
- [attribute] any Value;
- [attribute] string Formula;
- [attribute, readonly] double Count;
- [attribute, readonly] long Row;
- [attribute, readonly] long Column;
- [attribute, readonly] string Text;
- [attribute, readonly ] XRange EntireRow;
- [attribute, readonly ] XRange EntireColumn;
- [attribute] string FormulaArray;
- [attribute] boolean MergeCells;
- [attribute] string NumberFormat;
- [attribute] boolean WrapText;
- [attribute] any Hidden;
- void Clear();
- void ClearComments();
- void ClearContents();
- void ClearFormats();
- boolean HasFormula();
- void FillLeft();
- void FillRight();
- void FillUp();
- void FillDown();
- XRange Offset([in] any RowOffset, [in] any ColumnOffset);
- XRange CurrentRegion();
- XRange CurrentArray();
- string Characters([in] any Start, [in] any Length);
- string Address();
- XRange Cells([in] any RowIndex, [in] any ColumnIndex);
- void Select();
- XRange Rows( [in] any RowIndex );
- XRange Columns( [in] any ColumnIndex );
- void Copy([in] any Destination);
- void Cut([in] any Destination);
- XRange Resize( [in] any RowSize, [in] any ColumnSize );
- XFont Font();
- XInterior Interior();
- XRange Range( [in] any Cell1, [in] any Cell2 );
- any getCellRange();
- void PasteSpecial([in] short Paste, [in] short Operation,[in] boolean SkipBlanks, [in] boolean Transpose);
-};
-
-//=============================================================================
-
-}; }; };
-
-#endif
-
-
diff --git a/scratch/offapi-vba/XSeries.idl b/scratch/offapi-vba/XSeries.idl
deleted file mode 100644
index e5b5f061e..000000000
--- a/scratch/offapi-vba/XSeries.idl
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef __org_openoffice_vba_XSeries_idl__
-#define __org_openoffice_vba_XSeries_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-
-//=============================================================================
-
-module org { module openoffice { module vba {
-
-//=============================================================================
-
-published interface XSeries: com::sun::star::uno::XInterface
-{
- [attribute, readonly] string Name;
- any Series( [in] any Item );
- any Values ( [in] any Values );
- any XValues ( [in] any XValues );
-};
-
-//=============================================================================
-
-}; }; };
-
-#endif
-
-
diff --git a/scratch/offapi-vba/XSeriesCollection.idl b/scratch/offapi-vba/XSeriesCollection.idl
deleted file mode 100644
index c377406ed..000000000
--- a/scratch/offapi-vba/XSeriesCollection.idl
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef __org_openoffice_vba_XSeriesCollection_idl__
-#define __org_openoffice_vba_XSeriesCollection_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-#ifndef __org_openoffice_vba_XCollection_idl__
-#include <org/openoffice/vba/XCollection.idl>
-#endif
-
-//=============================================================================
-module org { module openoffice { module vba {
-published interface XSeries;
-//=============================================================================
-
-published interface XSeriesCollection: ::org::openoffice::vba::XCollection
-{
- //XSeries Add( [in] any Source, [in] any RowCol, [in] any SeriesLabels,
- // [in] any CategoryLabels, [in] any Replace );
- XSeries NewSeries();
- any XSeries( [in] any Item );
-};
-
-//=============================================================================
-
-}; }; };
-
-#endif
-
-
diff --git a/scratch/offapi-vba/XVBAToOOEventDescGen.idl b/scratch/offapi-vba/XVBAToOOEventDescGen.idl
deleted file mode 100644
index 176b3b8ff..000000000
--- a/scratch/offapi-vba/XVBAToOOEventDescGen.idl
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef __org_openoffice_vba_XVBAToOOEventDescGen_idl__
-#define __org_openoffice_vba_XVBAToOOEventDescGen_idl__
-
-#ifndef __com_sun_star_script_ScriptEventDescriptor_idl__
-#include <com/sun/star/script/ScriptEventDescriptor.idl>
-#endif
-
-#ifndef __com_sun_star_script_XScriptEventsSupplier_idl__
-#include <com/sun/star/script/XScriptEventsSupplier.idl>
-#endif
-
-#ifndef __com_sun_star_awt_XControl_idl__
-#include <com/sun/star/awt/XControl.idl>
-#endif
-
-module org { module openoffice { module vba {
-interface XVBAToOOEventDescGen : com::sun::star::uno::XInterface
-{
- sequence< com::sun::star::script::ScriptEventDescriptor > getEventDescriptions( [in] com::sun::star::awt::XControl xControl );
- com::sun::star::script::XScriptEventsSupplier getEventSupplier( [in] com::sun::star::awt::XControl xControl );
-};
-
-}; }; };
-#endif
diff --git a/scratch/offapi-vba/XWindow.idl b/scratch/offapi-vba/XWindow.idl
deleted file mode 100644
index 68f775212..000000000
--- a/scratch/offapi-vba/XWindow.idl
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef __org_openoffice_vba_XWindow_idl__
-#define __org_openoffice_vba_XWindow_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-
-//=============================================================================
-
-module org { module openoffice { module vba {
-
-//=============================================================================
-
-published interface XWindow: com::sun::star::uno::XInterface
-{
- any SelectedSheets( [in] any aIndex );
- void SmallScroll( [in] any Down, [in] any Up, [in] any ToRight, [in] any ToLeft );
- void LargeScroll( [in] any Down, [in] any Up, [in] any ToRight, [in] any ToLeft );
- void ScrollWorkbookTabs( [in] any Sheets, [in] any Position );
-};
-
-//=============================================================================
-
-}; }; };
-
-#endif
-
-
diff --git a/scratch/offapi-vba/XWorkbook.idl b/scratch/offapi-vba/XWorkbook.idl
deleted file mode 100644
index bf489b9f6..000000000
--- a/scratch/offapi-vba/XWorkbook.idl
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef __org_openoffice_vba_XWorkbook_idl__
-#define __org_openoffice_vba_XWorkbook_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-
-//=============================================================================
-
-module org { module openoffice { module vba {
-
-//=============================================================================
-
-published interface XWorksheet;
-published interface XWorksheets;
-
-published interface XWorkbook: com::sun::star::uno::XInterface
-{
- [attribute, readonly] string Name;
- [attribute, readonly] string Path;
- [attribute, readonly] string FullName;
- [attribute, readonly] boolean ProtectStructure;
- [attribute, readonly] XWorksheet ActiveSheet;
- [attribute] boolean Saved;
-
- any Worksheets([in] any sheet);
- void Close([in] any SaveChanges, [in] any FileName, [in] any RouteWorkBook);
- void Protect( [in] any Password );
- void Unprotect( [in] any Password );
- void Save();
- void Activate();
-};
-
-}; }; };
-
-#endif
diff --git a/scratch/offapi-vba/XWorkbooks.idl b/scratch/offapi-vba/XWorkbooks.idl
deleted file mode 100644
index 5935ddbe9..000000000
--- a/scratch/offapi-vba/XWorkbooks.idl
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef __org_openoffice_vba_XWorkbooks_idl__
-#define __org_openoffice_vba_XWorkbooks_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-
-//=============================================================================
-
-module org { module openoffice { module vba {
-
-//=============================================================================
-
-published interface XWorkbooks : ::com::sun::star::uno::XInterface
-{
- any Add();
- any Open([in] any FileName );
- void Close();
-};
-
-}; }; };
-
-#endif
diff --git a/scratch/offapi-vba/XWorksheet.idl b/scratch/offapi-vba/XWorksheet.idl
deleted file mode 100644
index 1e7031932..000000000
--- a/scratch/offapi-vba/XWorksheet.idl
+++ /dev/null
@@ -1,59 +0,0 @@
-#ifndef __org_openoffice_vba_XWorksheet_idl__
-#define __org_openoffice_vba_XWorksheet_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-
-//=============================================================================
-
-module org { module openoffice { module vba {
-
-//=============================================================================
-
-published interface XRange;
-published interface XOutline;
-published interface XWorksheet: com::sun::star::uno::XInterface
-{
- [attribute, readonly] string Name;
- [attribute] boolean Visible;
- [attribute, readonly] long StandardHeight;
- [attribute, readonly] long StandardWidth;
- [attribute, readonly] boolean ProtectionMode;
- [attribute, readonly] boolean ProtectContents;
- [attribute, readonly] boolean ProtectDrawingObjects;
- [attribute, readonly] XRange UsedRange;
- [attribute, readonly] XWorksheet Next;
- [attribute, readonly] XWorksheet Previous;
-
- void Activate();
- void Calculate( );
- void Select();
- void Move([in] any Before,[in] any After );
- void Copy([in] any Before,[in] any After );
- void Paste([in] any Destination,[in] any Link);
- void Delete( );
- void Protect([in] any Password,[in] any DrawingObjects ,[in] any Contents,[in] any Scenarios,[in] any UserInterfaceOnly);
- void Unprotect([in] any Password );
- void CheckSpelling([in] any CustomDictionary,[in] any IgnoreUppercase, [in] any AlwaysSuggest,[in] any SpellingLang );
- XRange Range([in] any range);
- any ChartObjects([in] any Index);
- any PivotTables([in] any Index);
- XOutline Outline();
-
-
-// FIXME: should prolly inherit from Range somehow...
- XRange Cells([in] any RowIndex, [in] any ColumnIndex);
- XRange Rows([in] any aIndex);
- XRange Columns([in] any aIndex);
-
- any Evaluate( [in] string Name);
-};
-
-//=============================================================================
-
-}; }; };
-
-#endif
-
-
diff --git a/scratch/offapi-vba/XWorksheetFunction.idl b/scratch/offapi-vba/XWorksheetFunction.idl
deleted file mode 100644
index 292ae87dd..000000000
--- a/scratch/offapi-vba/XWorksheetFunction.idl
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef __org_openoffice_vba_XWSFunction_idl__
-#define __org_openoffice_vba_XWSFunction_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-
-//=============================================================================
-
-module org { module openoffice { module vba {
-
-//=============================================================================
-
-
-published interface XWorksheetFunction: com::sun::star::uno::XInterface
-{
- void dummy();
-};
-
-//=============================================================================
-
-}; }; };
-
-#endif
-
-
diff --git a/scratch/offapi-vba/XWorksheets.idl b/scratch/offapi-vba/XWorksheets.idl
deleted file mode 100644
index c095f9a2e..000000000
--- a/scratch/offapi-vba/XWorksheets.idl
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef __org_openoffice_vba_XWorksheets_idl__
-#define __org_openoffice_vba_XWorksheets_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-
-#ifndef __org_openoffice_vba_XCollection_idl__
-#include <org/openoffice/vba/XCollection.idl>
-#endif
-
-//=============================================================================
-
-module org { module openoffice { module vba {
-
-//=============================================================================
-
-//published interface XWorksheets : ::org::openoffice::vba::XCollection
-published interface XWorksheets : ::com::sun::star::uno::XInterface
-{
- [attribute] any Visible;
- any Add( [in] any Before, [in] any After, [in] any Count, [in] any Type );
- void Delete();
- void PrintOut( [in] any From, [in] any To, [in] any Copies, [in] any Preview, [in] any ActivePrinter, [in] any PrintToFile, [in] any Collate, [in] any PrToFileName );
-};
-
-}; }; };
-
-#endif
-
diff --git a/scratch/offapi-vba/XlBuiltInDialog.idl b/scratch/offapi-vba/XlBuiltInDialog.idl
deleted file mode 100644
index c937d23cc..000000000
--- a/scratch/offapi-vba/XlBuiltInDialog.idl
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef __org_openoffice_vba_Excel_XlBuiltInDialog_idl__
-#define __org_openoffice_vba_Excel_XlBuiltinDialog_idl__
-module org { module openoffice { module vba { module Excel {
-
-published constants XlBuiltInDialog
-{
- const long xlDialogOpen = 0;
- const long xlDialogActiveCellFont = 1;
- const long xlDialogInsert = 2;
- const long xlDialogPrint = 3;
- const long xlDialogPasteSpecial = 4;
- const long xlDialogProtectDocument = 5;
- const long xlDialogColumnWidth = 6;
- const long xlDialogDefineName = 7;
- const long xlDialogCustomizeToolbar = 8;
- const long xlDialogInsertHyperlink = 9;
- const long xlDialogInsertPicture = 10;
- const long xlDialogInsertObject = 11;
- const long xlDialogPageSetUp = 12;
- const long xlDialogSort = 13;
- const long xlDialogRowHeight = 14;
- const long xlDialogAutoCorrect = 15;
- const long xlDialogConditionalFormatting = 16;
- const long xlDialogConsolidate = 17;
- const long xlDialogCreateNames = 18;
- const long xlDialogDataSeries = 19;
- const long xlDialogDataValidation = 20;
- const long xlDialogInsertNameLabel = 21;
- const long xlDialogFilter = 22;
- const long xlDialogFilterAdvanced = 23;
- const long xlDialogFormatAuto = 24;
-};
-}; }; }; };
-
-#endif
diff --git a/scratch/offapi-vba/XlPasteSpecialOperation.idl b/scratch/offapi-vba/XlPasteSpecialOperation.idl
deleted file mode 100644
index f23bd4824..000000000
--- a/scratch/offapi-vba/XlPasteSpecialOperation.idl
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef __org_openoffice_vba_XlPasteSpecialOperation_idl__
-#define __org_openoffice_vba_XlPasteSpecialOperation_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-
-//=============================================================================
-
-module org { module openoffice { module vba {
-
-//=============================================================================
-
-published constants xlPasteSpecialOperation
-{
- const unsigned short xlPasteSpecialOperationNone = 1;
- const unsigned short xlPasteSpecialOperationAdd = 2;
- const unsigned short xlPasteSpecialOperationSubtract = 3;
- const unsigned short xlPasteSpecialOperationMultiply = 4;
- const unsigned short xlPasteSpecialOperationDivide = 5;
-
-};
-
-//=============================================================================
-
-}; }; };
-
-#endif
-
diff --git a/scratch/offapi-vba/XlPasteType.idl b/scratch/offapi-vba/XlPasteType.idl
deleted file mode 100644
index 702f321b7..000000000
--- a/scratch/offapi-vba/XlPasteType.idl
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef __org_openoffice_vba_XlPasteType_idl__
-#define __org_openoffice_vba_XlPasteType_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-
-//=============================================================================
-
-module org { module openoffice { module vba {
-
-//=============================================================================
-
-published constants xlPasteType
-{
-/*noelp #FIXME check these numbers, they don't look right*/
- const unsigned short xlPasteAll = 0 ;
- const unsigned short xlPasteAllExceptBorders = 2;
- const unsigned short xlPasteColumnWidths = 3;
- const unsigned short xlPasteComments = 4;
- const unsigned short xlPasteFormats = 5;
- const unsigned short xlPasteFormulas = 6;
- const unsigned short xlPasteFormulasAndNumberFormats = 7;
- const unsigned short xlPasteValidation = 8;
- const unsigned short xlPasteValues = 9 ;
- const unsigned short xlPasteValuesAndNumberFormats =10;
-};
-
-//=============================================================================
-
-}; }; };
-
-#endif
-
diff --git a/scratch/offapi-vba/makefile.mk b/scratch/offapi-vba/makefile.mk
deleted file mode 100644
index a91c156b8..000000000
--- a/scratch/offapi-vba/makefile.mk
+++ /dev/null
@@ -1,51 +0,0 @@
-PRJ=..$/..$/..
-
-PRJNAME=api
-
-TARGET=vba
-PACKAGE=org$/openoffice$/vba
-
-# --- Settings -----------------------------------------------------
-.INCLUDE : $(PRJ)$/util$/makefile.pmk
-
-.IF "$(ENABLE_VBA)"!="YES"
-dummy:
- @echo "not building vba..."
-.ENDIF
-
-# ------------------------------------------------------------------------
-
-IDLFILES=\
- XApplication.idl\
- XCollection.idl\
- XGlobals.idl\
- XRange.idl\
- XWorkbook.idl\
- XWorkbooks.idl\
- XWorksheet.idl\
- XWorksheets.idl\
- XFont.idl\
- XOutline.idl\
- MSFormReturnTypes.idl\
- XInterior.idl\
- XWorksheetFunction.idl\
- XlPasteSpecialOperation.idl\
- XlPasteType.idl\
- XlBuiltInDialog.idl\
- XVBAToOOEventDescGen.idl\
- XWindow.idl\
- XChartObject.idl\
- XChartObjects.idl\
- XChart.idl\
- XSeriesCollection.idl\
- XSeries.idl\
- XDialog.idl \
- XArrayWrapper.idl \
- XPivotTables.idl \
- XPivotTable.idl \
- XPivotCache.idl \
- XDialogs.idl
-
-# ------------------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/scratch/offapi-vba/makefile.pmk b/scratch/offapi-vba/makefile.pmk
deleted file mode 100644
index 525eb04f7..000000000
--- a/scratch/offapi-vba/makefile.pmk
+++ /dev/null
@@ -1,93 +0,0 @@
-#*************************************************************************
-#
-# $RCSfile: makefile.pmk,v $
-#
-# $Revision: 1.1 $
-#
-# last change: $Author: michael $ $Date: 2005/05/19 10:55:48 $
-#
-# The Contents of this file are made available subject to the terms of
-# either of the following licenses
-#
-# - GNU Lesser General Public License Version 2.1
-# - Sun Industry Standards Source License Version 1.1
-#
-# Sun Microsystems Inc., October, 2000
-#
-# GNU Lesser General Public License Version 2.1
-# =============================================
-# Copyright 2000 by Sun Microsystems, Inc.
-# 901 San Antonio Road, Palo Alto, CA 94303, USA
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License version 2.1, as published by the Free Software Foundation.
-#
-# This library 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 for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-# MA 02111-1307 USA
-#
-#
-# Sun Industry Standards Source License Version 1.1
-# =================================================
-# The contents of this file are subject to the Sun Industry Standards
-# Source License Version 1.1 (the "License"); You may not use this file
-# except in compliance with the License. You may obtain a copy of the
-# License at http://www.openoffice.org/license.html.
-#
-# Software provided under this License is provided on an "AS IS" basis,
-# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-# See the License for the specific provisions governing your rights and
-# obligations concerning the Software.
-#
-# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-#
-# Copyright: 2000 by Sun Microsystems, Inc.
-#
-# All Rights Reserved.
-#
-# Contributor(s): _______________________________________
-#
-#
-#
-#*************************************************************************
-
-#PROJECTPCH4DLL=TRUE
-#PROJECTPCH=sjpch
-#PROJECTPCHSOURCE=$(PRJ)$/util\sjpch
-#PDBTARGET=sj
-PRJPCH=
-ENABLE_EXCEPTIONS=TRUE
-
-JAVAPREPRO=
-.IF "$(JDK_VERSION)" == "110"
-JAVAPREPRO=-jdk11
-.ENDIF
-.IF "$(PRODUCT)" != ""
-JAVAPREPRO=$(JAVAPREPRO) + " -product"
-.ENDIF
-
-# --- Settings -----------------------------------------------------
-.INCLUDE : settings.mk
-.INCLUDE : sv.mk
-
-NOUNODOC=
-BUILD_URD_ONLY=TRUE
-LOCALIDLFILES=TRUE
-
-URDDOC=TRUE
-
-.IF "$(OS)"=="SOLARIS" || "$(OS)"=="FREEBSD"
-.IF "$(CPU)"=="I"
-UNOIDL=unoidl
-.ENDIF
-.ENDIF
-
diff --git a/scratch/offapi-vba/target.pmk b/scratch/offapi-vba/target.pmk
deleted file mode 100644
index 421cb3576..000000000
--- a/scratch/offapi-vba/target.pmk
+++ /dev/null
@@ -1,68 +0,0 @@
-#*************************************************************************
-#
-# $RCSfile: target.pmk,v $
-#
-# $Revision: 1.1 $
-#
-# last change: $Author: michael $ $Date: 2005/05/19 10:55:48 $
-#
-# The Contents of this file are made available subject to the terms of
-# either of the following licenses
-#
-# - GNU Lesser General Public License Version 2.1
-# - Sun Industry Standards Source License Version 1.1
-#
-# Sun Microsystems Inc., October, 2000
-#
-# GNU Lesser General Public License Version 2.1
-# =============================================
-# Copyright 2000 by Sun Microsystems, Inc.
-# 901 San Antonio Road, Palo Alto, CA 94303, USA
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License version 2.1, as published by the Free Software Foundation.
-#
-# This library 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 for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-# MA 02111-1307 USA
-#
-#
-# Sun Industry Standards Source License Version 1.1
-# =================================================
-# The contents of this file are subject to the Sun Industry Standards
-# Source License Version 1.1 (the "License"); You may not use this file
-# except in compliance with the License. You may obtain a copy of the
-# License at http://www.openoffice.org/license.html.
-#
-# Software provided under this License is provided on an "AS IS" basis,
-# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
-# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
-# See the License for the specific provisions governing your rights and
-# obligations concerning the Software.
-#
-# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
-#
-# Copyright: 2000 by Sun Microsystems, Inc.
-#
-# All Rights Reserved.
-#
-# Contributor(s): _______________________________________
-#
-#
-#
-#*************************************************************************
-
-$(OUT)$/misc$/$(TARGET).idls: makefile.mk
- +-$(RM) $@
- +$(TYPE) $(mktmp $(foreach,i,$(IDLFILES) $(PACKAGE)$/$i)) >>$@
-
-ALLTAR: $(OUT)$/misc$/$(TARGET).idls
-
diff --git a/scratch/place.in b/scratch/place.in
deleted file mode 100644
index 6266d9bce..000000000
--- a/scratch/place.in
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/sh
-
-if test "z$1" = "z--help" || test "z$1" = "z-h"; then
- echo "place [<destination-dir>]"
- echo " installs scratch source into the build tree";
- exit 0;
-fi
-
-if test "z$1" != "z"; then
- OOBUILDDIR=$1
-else
- OOBUILDDIR='@OOBUILDDIR@'
-fi
-
-SUBDIRS="canvas-cairo offapi-vba sc-vba mono-uno-bootstrap mono-uno-bridge scsolver"
-SCRATCHDIR="@TOOLSDIR@/scratch"
-
-BACKUPDIR_SUFFIX="bak"
-
-if [ ! -d "$OOBUILDDIR" ]; then
- echo "Build directory $OOBUILDDIR does not exist";
- return 1;
-fi
-
-for subdir in $SUBDIRS; do
- echo "Processing $subdir directory"
-
- if [ ! -f "$SCRATCHDIR/$subdir/POSITION" ]; then
- echo " - missing $subdir/POSITION file"
- continue
- fi
-
- POSITION=`cat "$SCRATCHDIR/$subdir/POSITION"`
- TARGETDIR="$OOBUILDDIR/$POSITION"
-
- if [ -h "$SCRATCHDIR/$subdir" ]; then
- echo " - symlink exists, skipping"
- continue
- fi
-
- if [ -d "$TARGETDIR" ]; then
- echo " - renaming original directory (adding .$BACKUPDIR_SUFFIX)"
- mv "$TARGETDIR" "$TARGETDIR.$BACKUPDIR_SUFFIX"
- fi
-
- echo " - moving $subdir"
- mv "$SCRATCHDIR/$subdir" "$TARGETDIR"
-
- echo " - linking back"
- ln -s "$TARGETDIR" "$SCRATCHDIR/$subdir"
-done
-
diff --git a/scratch/sc-vba/POSITION b/scratch/sc-vba/POSITION
deleted file mode 100644
index 66240cbb0..000000000
--- a/scratch/sc-vba/POSITION
+++ /dev/null
@@ -1 +0,0 @@
-sc/source/ui/vba
diff --git a/scratch/sc-vba/ReadMe b/scratch/sc-vba/ReadMe
deleted file mode 100644
index 28874d32c..000000000
--- a/scratch/sc-vba/ReadMe
+++ /dev/null
@@ -1,16 +0,0 @@
-This directory contains the sources for the scratch implementation of the
-vba api.
-
-Instructions:
-* Copy all files to the directory indicated by POSITION file in this directory
-* run dmake in the directory specified by POSITION
-* register the component library using regcomp
-
-example
-=======
-
-regcomp -register -r file:///opt/ooo-build/InstallDir/program/services.rdb -c file:///opt/ooo-build//build/src680-m110/sc/unxlngi6.pro/lib/vbaobj680li.uno.so
-
-
-Note: It is NECESSARY to specify "file://" urls for both the serivces.rdb file
-& the component
diff --git a/scratch/sc-vba/makefile.mk b/scratch/sc-vba/makefile.mk
deleted file mode 100644
index 44c2b1f77..000000000
--- a/scratch/sc-vba/makefile.mk
+++ /dev/null
@@ -1,56 +0,0 @@
-PRJ=../..$/..
-
-PRJNAME=
-TARGET=vbaobj
-.IF "$(ENABLE_VBA)"!="YES"
-dummy:
- @echo "not building vba..."
-.ENDIF
-
-NO_BSYMBOLIC= TRUE
-ENABLE_EXCEPTIONS=TRUE
-COMP1TYPELIST=$(TARGET)
-COMPRDB=$(SOLARBINDIR)$/types.rdb
-
-# --- Settings -----------------------------------------------------
-
-#.INCLUDE : svpre.mk
-.INCLUDE : settings.mk
-.INCLUDE : sv.mk
-DLLPRE =
-
-# ------------------------------------------------------------------
-
-#.INCLUDE : ..$/cppumaker.mk
-
-SLOFILES= \
- $(SLO)$/service.obj \
- $(SLO)$/vbaglobals.obj \
- $(SLO)$/vbaworkbook.obj \
- $(SLO)$/vbaworksheets.obj \
- $(SLO)$/vbaapplication.obj \
- $(SLO)$/vbarange.obj \
- $(SLO)$/vbaworkbooks.obj \
- $(SLO)$/vbaworksheet.obj \
- $(SLO)$/vbaoutline.obj \
- $(SLO)$/vbafont.obj\
- $(SLO)$/vbahelper.obj\
- $(SLO)$/vbainterior.obj\
- $(SLO)$/vbawsfunction.obj\
- $(SLO)$/vbawindow.obj\
- $(SLO)$/vbachart.obj\
- $(SLO)$/vbachartobject.obj\
- $(SLO)$/vbachartobjects.obj\
- $(SLO)$/vbaseriescollection.obj\
- $(SLO)$/vbacollectionimpl.obj\
- $(SLO)$/vbaarraywrapper.obj\
- $(SLO)$/vbadialogs.obj \
- $(SLO)$/vbadialog.obj \
- $(SLO)$/vbapivottable.obj \
- $(SLO)$/vbapivotcache.obj \
- $(SLO)$/vbapivottables.obj
-
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/scratch/sc-vba/service.cxx b/scratch/sc-vba/service.cxx
deleted file mode 100644
index 849ffe1a3..000000000
--- a/scratch/sc-vba/service.cxx
+++ /dev/null
@@ -1,88 +0,0 @@
-#include "cppuhelper/implementationentry.hxx"
-#include "com/sun/star/lang/XMultiServiceFactory.hpp"
-#include "com/sun/star/registry/XRegistryKey.hpp"
-
-// =============================================================================
-// component exports
-// =============================================================================
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-
-namespace vbaobj
-{
- // =============================================================================
- // component operations
- // =============================================================================
-
- uno::Reference< XInterface > SAL_CALL create(
- Reference< XComponentContext > const & xContext )
- SAL_THROW( () );
-
- // -----------------------------------------------------------------------------
-
- ::rtl::OUString SAL_CALL getImplementationName();
-
- Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames();
-
- Reference<XInterface> SAL_CALL create(
- Sequence<Any> const &, Reference<XComponentContext> const & );
-} // end namespace vbaobj
-
-
- // =============================================================================
-
- const ::cppu::ImplementationEntry s_component_entries [] =
- {
- {
- ::vbaobj::create, ::vbaobj::getImplementationName,
- ::vbaobj::getSupportedServiceNames,
- ::cppu::createSingleComponentFactory,
- 0, 0
- },
- { 0, 0, 0, 0, 0, 0 }
- };
-
-extern "C"
-{
- void SAL_CALL component_getImplementationEnvironment(
- const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
- {
- OSL_TRACE("In component_getImplementationEnv");
- *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
- }
-
- sal_Bool SAL_CALL component_writeInfo(
- lang::XMultiServiceFactory * pServiceManager, registry::XRegistryKey * pRegistryKey )
- {
- OSL_TRACE("In component_writeInfo");
- if ( ::cppu::component_writeInfoHelper(
- pServiceManager, pRegistryKey, s_component_entries ) )
- {
- try
- {
- registry::XRegistryKey * pKey =
- reinterpret_cast< registry::XRegistryKey * >(pRegistryKey);
-
- Reference< registry::XRegistryKey >xKey = pKey->createKey(
- rtl::OUString::createFromAscii( ("org.openoffice.vba.Globals/UNO/SINGLETONS/org.openoffice.vba.theGlobals") ) );
- xKey->setStringValue( ::rtl::OUString::createFromAscii(
- ("org.openoffice.vba.Globals") ) );
- return sal_True;
- }
- catch( uno::Exception& e )
- {
- //recomp & friends will detect false returned and fail
- }
- }
- return sal_False;
- }
-
- void * SAL_CALL component_getFactory(
- const sal_Char * pImplName, lang::XMultiServiceFactory * pServiceManager,
- registry::XRegistryKey * pRegistryKey )
- {
- OSL_TRACE("In component_getFactory");
- return ::cppu::component_getFactoryHelper(
- pImplName, pServiceManager, pRegistryKey, s_component_entries );
- }
-}
diff --git a/scratch/sc-vba/vbaapplication.cxx b/scratch/sc-vba/vbaapplication.cxx
deleted file mode 100644
index 2b8cd23cd..000000000
--- a/scratch/sc-vba/vbaapplication.cxx
+++ /dev/null
@@ -1,185 +0,0 @@
-
-
-#include<com/sun/star/sheet/XSpreadsheetView.hpp>
-#include<com/sun/star/view/XSelectionSupplier.hpp>
-#include<org/openoffice/vba/Excel/XlCalculation.hpp>
-
-#include "vbaapplication.hxx"
-#include "vbaworkbooks.hxx"
-#include "vbaworkbook.hxx"
-#include "vbaworksheets.hxx"
-#include "vbarange.hxx"
-#include "vbawsfunction.hxx"
-#include "vbadialogs.hxx"
-#include "vbawindow.hxx"
-
-#include "tabvwsh.hxx"
-
-
-
-
-using namespace ::org::openoffice;
-using namespace ::com::sun::star;
-
-class ActiveWorkbook : public ScVbaWorkbook
-{
-protected:
- virtual uno::Reference< frame::XModel > getModel()
- {
- return getCurrentDocument();
- }
-public:
- ActiveWorkbook( uno::Reference< uno::XComponentContext >& xContext) : ScVbaWorkbook( xContext ){}
-};
-
-ScVbaApplication::ScVbaApplication( uno::Reference<uno::XComponentContext >& xContext ): m_xContext( xContext ), m_xCalculation( vba::Excel::XlCalculation::xlCalculationAutomatic )
-{
-}
-
-ScVbaApplication::~ScVbaApplication()
-{
-}
-
-
-uno::Reference< vba::XWorkbook >
-ScVbaApplication::getActiveWorkbook() throw (uno::RuntimeException)
-{
- return new ActiveWorkbook( m_xContext );
-}
-uno::Reference< oo::vba::XWorkbook > SAL_CALL
-ScVbaApplication::getThisWorkbook() throw (uno::RuntimeException)
-{
- return getActiveWorkbook();
-}
-
-uno::Reference< vba::XRange >
-ScVbaApplication::getSelection() throw (uno::RuntimeException)
-{
- uno::Reference< table::XCellRange > xRange( getCurrentDocument()->getCurrentSelection(), ::uno::UNO_QUERY);
- return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, xRange ) );
-}
-
-uno::Reference< vba::XRange >
-ScVbaApplication::getActiveCell() throw (uno::RuntimeException )
-{
- uno::Reference< sheet::XSpreadsheetView > xView( getCurrentDocument()->getCurrentController(), uno::UNO_QUERY_THROW );
- uno::Reference< table::XCellRange > xRange( xView->getActiveSheet(), ::uno::UNO_QUERY_THROW);
- ScTabViewShell* pViewShell = getCurrentBestViewShell();
- if ( !pViewShell )
- throw uno::RuntimeException( rtl::OUString::createFromAscii("No ViewShell available"), uno::Reference< uno::XInterface >() );
- ScViewData* pTabView = pViewShell->GetViewData();
- if ( !pTabView )
- throw uno::RuntimeException( rtl::OUString::createFromAscii("No ViewData available"), uno::Reference< uno::XInterface >() );
-
- sal_Int32 nCursorX = pTabView->GetCurX();
- sal_Int32 nCursorY = pTabView->GetCurY();
-
- return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, xRange->getCellRangeByPosition( nCursorX, nCursorY,
- nCursorX, nCursorY ) ) );
-}
-
-sal_Bool
-ScVbaApplication::getScreenUpdating() throw (uno::RuntimeException)
-{
- uno::Reference< frame::XModel > xModel( getCurrentDocument(), uno::UNO_QUERY_THROW );
- return !xModel->hasControllersLocked();
-}
-
-void
-ScVbaApplication::setScreenUpdating(sal_Bool bUpdate) throw (uno::RuntimeException)
-{
- uno::Reference< frame::XModel > xModel( getCurrentDocument(), uno::UNO_QUERY_THROW );
- if (bUpdate)
- xModel->unlockControllers();
- else
- xModel->lockControllers();
-}
-
-uno::Any SAL_CALL
-ScVbaApplication::Workbooks( const uno::Any& aIndex ) throw (uno::RuntimeException)
-{
- uno::Reference< vba::XCollection > xWorkBooks( new ScVbaWorkbooks( m_xContext ) );
- if ( aIndex.getValueTypeClass() == uno::TypeClass_VOID )
- {
- // void then somebody did Workbooks.something in vba
- return uno::Any( xWorkBooks );
- }
-
- return uno::Any ( xWorkBooks->Item( aIndex ) );
-}
-
-uno::Reference< vba::XWorksheetFunction > SAL_CALL
-ScVbaApplication::WorksheetFunction( ) throw (::com::sun::star::uno::RuntimeException)
-{
- return new ScVbaWSFunction(m_xContext);
-}
-
-uno::Any SAL_CALL
-ScVbaApplication::Evaluate( const ::rtl::OUString& Name ) throw (uno::RuntimeException)
-{
- // #TODO Evaluate allows other things to be evaluated, e.g. functions
- // I think ( like SIN(3) etc. ) need to investigate that
- // named Ranges also? e.g. [MyRange] if so need a list of named ranges
- if ( isRangeShortCut( Name ) )
- return uno::Any( getActiveWorkbook()->getActiveSheet()->Range( uno::Any( Name ) ) );
- return uno::Any();
-}
-
-uno::Any
-ScVbaApplication::Dialogs( const uno::Any &aIndex ) throw (uno::RuntimeException)
-{
- uno::Reference< vba::XDialogs > xDialogs( new ScVbaDialogs( m_xContext ) );
- if( !aIndex.hasValue() )
- return uno::Any( xDialogs );
- return uno::Any( xDialogs->Item( aIndex ) );
-}
-
-uno::Reference< vba::XWindow > SAL_CALL
-ScVbaApplication::getActiveWindow() throw (uno::RuntimeException)
-{
- return new ScVbaWindow( m_xContext );
-}
-
-uno::Any SAL_CALL
-ScVbaApplication::getCutCopyMode() throw (uno::RuntimeException)
-{
- //# FIXME TODO, implementation
- uno::Any result;
- result <<= sal_False;
- return result;
-}
-void SAL_CALL
-ScVbaApplication::setCutCopyMode( const uno::Any& _cutcopymode ) throw (uno::RuntimeException)
-{
- //# FIXME TODO, implementation
-}
-double SAL_CALL
-ScVbaApplication::CountA( const uno::Any& arg1 ) throw (uno::RuntimeException)
-{
- double result;
- uno::Reference< vba::XWorksheetFunction > xWksFn = WorksheetFunction();
- uno::Reference< script::XInvocation > xInvoc( xWksFn, uno::UNO_QUERY_THROW );
- if ( xInvoc.is() )
- {
- static rtl::OUString FunctionName( RTL_CONSTASCII_USTRINGPARAM("CountA" ) );
- uno::Sequence< uno::Any > Params(1);
- Params[0] = arg1;
- uno::Sequence< sal_Int16 > OutParamIndex;
- uno::Sequence< uno::Any > OutParam;
- xInvoc->invoke( FunctionName, Params, OutParamIndex, OutParam ) >>= result;
- }
- return result;
-}
-
-::sal_Int32 SAL_CALL
-ScVbaApplication::getCalculation() throw (css::uno::RuntimeException)
-{
- return m_xCalculation;
-}
-
-void SAL_CALL
-ScVbaApplication::setCalculation( ::sal_Int32 _calculation ) throw (css::uno::RuntimeException)
-{
- m_xCalculation = _calculation;
-}
-
diff --git a/scratch/sc-vba/vbaapplication.hxx b/scratch/sc-vba/vbaapplication.hxx
deleted file mode 100644
index 08caf2165..000000000
--- a/scratch/sc-vba/vbaapplication.hxx
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef SC_VBA_APPLICATION_HXX
-#define SC_VBA_APPLICATION_HXX
-
-#include <cppuhelper/implbase1.hxx>
-
-#include <org/openoffice/vba/XWorksheetFunction.hpp>
-#include <org/openoffice/vba/XApplication.hpp>
-#include <com/sun/star/uno/XComponentContext.hpp>
-
-#include "vbahelper.hxx"
-
-typedef ::cppu::WeakImplHelper1< oo::vba::XApplication > ScVbaApplication_BASE;
-
-class ScVbaApplication : public ScVbaApplication_BASE
-{
-private:
- css::uno::Reference< css::uno::XComponentContext > m_xContext;
- sal_Int32 m_xCalculation;
-public:
- ScVbaApplication( css::uno::Reference< css::uno::XComponentContext >& m_xContext );
- virtual ~ScVbaApplication();
-
- // XApplication
- virtual ::sal_Int32 SAL_CALL getCalculation() throw (css::uno::RuntimeException);
- virtual void SAL_CALL setCalculation( ::sal_Int32 _calculation ) throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XRange > getSelection() throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XWorkbook > getActiveWorkbook() throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XRange > getActiveCell() throw ( css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XWindow > SAL_CALL getActiveWindow() throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Bool getScreenUpdating() throw (css::uno::RuntimeException);
- virtual void setScreenUpdating(sal_Bool bUpdate) throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XWorkbook > SAL_CALL getThisWorkbook() throw (css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL Workbooks( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XWorksheetFunction > SAL_CALL WorksheetFunction( ) throw (css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL Evaluate( const ::rtl::OUString& Name ) throw (css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL Dialogs( const css::uno::Any& DialogIndex ) throw (css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL getCutCopyMode() throw (css::uno::RuntimeException);
- virtual void SAL_CALL setCutCopyMode( const css::uno::Any& _cutcopymode ) throw (css::uno::RuntimeException);
-
- virtual double SAL_CALL CountA( const css::uno::Any& arg1 ) throw (css::uno::RuntimeException) ;
-
-};
-#endif /* SC_VBA_APPLICATION_HXX */
diff --git a/scratch/sc-vba/vbaarraywrapper.cxx b/scratch/sc-vba/vbaarraywrapper.cxx
deleted file mode 100644
index 1c6dc36a4..000000000
--- a/scratch/sc-vba/vbaarraywrapper.cxx
+++ /dev/null
@@ -1,22 +0,0 @@
-#include "vbaarraywrapper.hxx"
-using namespace ::org::openoffice;
-using namespace ::com::sun::star;
-
-ScArrayWrapper::ScArrayWrapper( const uno::Any& aArray, sal_Bool bZeroBased ) : maArray( aArray ), mbZeroBased( bZeroBased )
-{
-}
-
-
-sal_Bool SAL_CALL
-ScArrayWrapper::getIsZeroIndex() throw (css::uno::RuntimeException)
-{
- return mbZeroBased;
-}
-
-
-css::uno::Any SAL_CALL
-ScArrayWrapper::getArray() throw (css::uno::RuntimeException)
-{
- return maArray;
-}
-
diff --git a/scratch/sc-vba/vbaarraywrapper.hxx b/scratch/sc-vba/vbaarraywrapper.hxx
deleted file mode 100644
index 02e505ce0..000000000
--- a/scratch/sc-vba/vbaarraywrapper.hxx
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef SC_VBA_ARRAYWRAPPER_HXX
-#define SC_VBA_ARRAYWRAPPER_HXX
-#include <cppuhelper/implbase1.hxx>
-#include <org/openoffice/vba/XArrayWrapper.hpp>
-#include "vbahelper.hxx"
-
-typedef ::cppu::WeakImplHelper1<oo::vba::XArrayWrapper > ArrayWrapperImpl_BASE;
-
-class ScArrayWrapper : public ArrayWrapperImpl_BASE
-{
- css::uno::Any maArray;
- sal_Bool mbZeroBased;
-public:
- ScArrayWrapper( const css::uno::Any& aArray, sal_Bool bZeroBased );
- // Attributes
- virtual ::sal_Bool SAL_CALL getIsZeroIndex() throw (css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL getArray() throw (css::uno::RuntimeException);
-};
-
-#endif //SC_VBA_WINDOW_HXX
diff --git a/scratch/sc-vba/vbachart.cxx b/scratch/sc-vba/vbachart.cxx
deleted file mode 100644
index d3d24ad4e..000000000
--- a/scratch/sc-vba/vbachart.cxx
+++ /dev/null
@@ -1,29 +0,0 @@
-#include "vbachart.hxx"
-#include <com/sun/star/beans/XPropertySet.hpp>
-
-
-using namespace ::com::sun::star;
-using namespace ::org::openoffice;
-
-const rtl::OUString CHART_NAME( RTL_CONSTASCII_USTRINGPARAM("Name") );
-::rtl::OUString SAL_CALL
-ScVbaChart::getName() throw (css::uno::RuntimeException)
-{
- rtl::OUString sName;
- uno::Reference< beans::XPropertySet > xProps( m_xChartDoc, uno::UNO_QUERY_THROW );
- try
- {
- xProps->getPropertyValue( CHART_NAME ) >>= sName;
- }
- catch( uno::Exception e ) // swallow exceptions
- {
- }
- return sName;
-}
-
-uno::Any SAL_CALL
-ScVbaChart::SeriesCollection(const uno::Any&) throw (uno::RuntimeException)
-{
- return uno::Any();
-}
-
diff --git a/scratch/sc-vba/vbachart.hxx b/scratch/sc-vba/vbachart.hxx
deleted file mode 100644
index 56a1c432b..000000000
--- a/scratch/sc-vba/vbachart.hxx
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef SC_VBA_CHART_HXX
-#define SC_VBA_CHART_HXX
-#include <cppuhelper/implbase1.hxx>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <com/sun/star/chart/XChartDocument.hpp>
-#include <org/openoffice/vba/XChart.hpp>
-#include "vbahelper.hxx"
-
-typedef ::cppu::WeakImplHelper1<oo::vba::XChart > ChartImpl_BASE;
-
-class ScVbaChart : public ChartImpl_BASE
-{
-
- css::uno::Reference< css::uno::XComponentContext > m_xContext;
- css::uno::Reference< css::chart::XChartDocument > m_xChartDoc;
-public:
- ScVbaChart( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::chart::XChartDocument >& xChartDoc ) : m_xContext(xContext), m_xChartDoc( xChartDoc ) {}
- virtual ::rtl::OUString SAL_CALL getName() throw (css::uno::RuntimeException);
- virtual css::uno::Any SeriesCollection(const css::uno::Any&) throw (css::uno::RuntimeException);
-
-};
-
-#endif //SC_VBA_WINDOW_HXX
diff --git a/scratch/sc-vba/vbachartobject.cxx b/scratch/sc-vba/vbachartobject.cxx
deleted file mode 100644
index e88318db1..000000000
--- a/scratch/sc-vba/vbachartobject.cxx
+++ /dev/null
@@ -1,74 +0,0 @@
-#include "vbachart.hxx"
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/document/XEmbeddedObjectSupplier.hpp>
-#include <com/sun/star/container/XNamed.hpp>
-
-#include "vbachartobject.hxx"
-
-using namespace ::com::sun::star;
-using namespace ::org::openoffice;
-
-const rtl::OUString CHART_NAME( RTL_CONSTASCII_USTRINGPARAM("Name") );
-
-::rtl::OUString SAL_CALL
-ScVbaChartObject::getName() throw (css::uno::RuntimeException)
-{
- rtl::OUString sName;
- uno::Reference< container::XNamed > xNamed( m_xTableChart, uno::UNO_QUERY );
- if ( xNamed.is() )
- sName = xNamed->getName();
- return sName;
-}
-
-
-
-uno::Reference< vba::XChart > SAL_CALL
-ScVbaChartObject::getChart() throw (css::uno::RuntimeException)
-{
- uno::Reference< document::XEmbeddedObjectSupplier > xEmbed( m_xTableChart, uno::UNO_QUERY_THROW );
- uno::Reference< chart::XChartDocument > xChart( xEmbed->getEmbeddedObject(), uno::UNO_QUERY_THROW );
-
- // #TODO check with vba to see whether its valid to return a
- // null object for the Chart property. atm, we throw ( i.e. if in
- // doubt... throw )
-
- return new ScVbaChart( m_xContext, xChart );
-}
-/*
-#include<cppuhelper/implbase1.hxx>
-#include<org/openoffice/vba/XChartObject.hpp>
-#include"vbacollectionimpl.hxx"
-
-typedef ::cppu::ImplInheritanceHelper1< ScVbaCollectionBaseImpl, oo::vba::XChartObject > XSeriesCollectionBase;
-class MyCollectionImpl : public XSeriesCollectionBase
-{
-public:
- //MyCollectionImpl( css::uno::Reference< css::uno::XComponentContext >& xContext ) : ScVbaCollectionBaseImpl( xContext ) {}
- MyCollectionImpl( css::uno::Reference< css::uno::XComponentContext >& xContext ) : XSeriesCollectionBase( xContext ) {}
- virtual ::rtl::OUString SAL_CALL getName() throw (css::uno::RuntimeException)
- {
- OSL_TRACE("**** In Get Name for mangled object");
- rtl::OUString dummy;
- return dummy;
- }
- virtual css::uno::Any test() throw (css::uno::RuntimeException)
- {
- OSL_TRACE("**** In test for mangled object");
- return uno::Any();
- }
- virtual css::uno::Reference< oo::vba::XChart > SAL_CALL getChart() throw (css::uno::RuntimeException)
- {
- OSL_TRACE("**** In getChart for mangled object");
- return css::uno::Reference< oo::vba::XChart >();
- }
-
-};
-*/
-
-uno::Any SAL_CALL
-ScVbaChartObject::test()throw (css::uno::RuntimeException)
-{
- return uno::Any();
-}
-
-
diff --git a/scratch/sc-vba/vbachartobject.hxx b/scratch/sc-vba/vbachartobject.hxx
deleted file mode 100644
index cee5103f2..000000000
--- a/scratch/sc-vba/vbachartobject.hxx
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef SC_VBA_CHARTOBJECT_HXX
-#define SC_VBA_CHARTOBJECT_HXX
-#include <cppuhelper/implbase1.hxx>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <com/sun/star/table/XTableChart.hpp>
-#include <org/openoffice/vba/XChartObject.hpp>
-#include "vbahelper.hxx"
-
-typedef ::cppu::WeakImplHelper1<oo::vba::XChartObject > ChartObjectImpl_BASE;
-
-class ScVbaChartObject : public ChartObjectImpl_BASE
-{
-
- css::uno::Reference< css::uno::XComponentContext > m_xContext;
- css::uno::Reference< css::table::XTableChart > m_xTableChart;
-public:
- ScVbaChartObject( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::table::XTableChart >& xTableChart ) : m_xContext(xContext), m_xTableChart( xTableChart ) {}
- virtual ::rtl::OUString SAL_CALL getName() throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XChart > SAL_CALL getChart() throw (css::uno::RuntimeException);
-
- virtual css::uno::Any SAL_CALL test( ) throw (css::uno::RuntimeException);
-};
-
-#endif //SC_VBA_WINDOW_HXX
diff --git a/scratch/sc-vba/vbachartobjects.cxx b/scratch/sc-vba/vbachartobjects.cxx
deleted file mode 100644
index 0f7911a12..000000000
--- a/scratch/sc-vba/vbachartobjects.cxx
+++ /dev/null
@@ -1,52 +0,0 @@
-#include "vbachart.hxx"
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/document/XEmbeddedObjectSupplier.hpp>
-
-
-#include "vbachartobjects.hxx"
-#include "vbachartobject.hxx"
-#include "vbaglobals.hxx"
-
-using namespace ::com::sun::star;
-using namespace ::org::openoffice;
-
-
-class ChartObjectEnumerationImpl : public EnumerationHelperImpl
-{
-public:
-
- ChartObjectEnumerationImpl( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XEnumeration >& xEnumeration ) throw ( uno::RuntimeException ) : EnumerationHelperImpl( xContext, xEnumeration ) {}
- virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
- {
- uno::Reference< table::XTableChart > xTableChart( m_xEnumeration->nextElement(), uno::UNO_QUERY_THROW );
- return makeAny( uno::Reference< vba::XChartObject > ( new ScVbaChartObject( m_xContext, xTableChart ) ) );
- }
-};
-
-
-
-// XEnumerationAccess
-
-uno::Reference< container::XEnumeration >
-ScVbaChartObjects::createEnumeration() throw (uno::RuntimeException)
-{
- css::uno::Reference< container::XEnumerationAccess > xEnumAccess( m_xTableCharts, uno::UNO_QUERY_THROW );
- return new ChartObjectEnumerationImpl( m_xContext, xEnumAccess->createEnumeration() );
-}
-
-// XElementAccess
-
-uno::Type
-ScVbaChartObjects::getElementType() throw (uno::RuntimeException)
-{
- return vba::XChartObject::static_type(0);
-}
-
-// ScVbaCollectionBaseImpl
-uno::Any
-ScVbaChartObjects::createCollectionObject( const css::uno::Any& aSource )
-{
- uno::Reference< table::XTableChart > xTableChart( aSource, uno::UNO_QUERY_THROW );
- return makeAny( uno::Reference< vba::XChartObject > ( new ScVbaChartObject( m_xContext, xTableChart ) ) );
-}
-
diff --git a/scratch/sc-vba/vbachartobjects.hxx b/scratch/sc-vba/vbachartobjects.hxx
deleted file mode 100644
index 0a196ff08..000000000
--- a/scratch/sc-vba/vbachartobjects.hxx
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef SC_VBA_CHARTOBJECTS_HXX
-#define SC_VBA_CHARTOBJECTS_HXX
-#include <org/openoffice/vba/XChartObjects.hpp>
-#include <cppuhelper/implbase1.hxx>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <com/sun/star/table/XTableCharts.hpp>
-#include <com/sun/star/container/XEnumerationAccess.hpp>
-#include"vbacollectionimpl.hxx"
-#include "vbahelper.hxx"
-
-
-typedef ::cppu::ImplInheritanceHelper1< ScVbaCollectionBaseImpl, oo::vba::XChartObjects > ChartObjects_BASE;
-
-class ScVbaChartObjects : public ChartObjects_BASE
-{
-
- css::uno::Reference< css::uno::XComponentContext > m_xContext;
- css::uno::Reference< css::table::XTableCharts > m_xTableCharts;
-public:
- ScVbaChartObjects( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::table::XTableCharts >& xTableCharts ) : ChartObjects_BASE(xContext, css::uno::Reference< css::container::XIndexAccess >( xTableCharts, css::uno::UNO_QUERY ) ), m_xContext(xContext), m_xTableCharts( xTableCharts ) {}
- // XEnumerationAccess
- virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException);
- // XElementAccess
- virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException);
- // ScVbaCollectionBaseImpl
- virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource );
-};
-
-#endif //SC_VBA_WINDOW_HXX
diff --git a/scratch/sc-vba/vbacollectionimpl.cxx b/scratch/sc-vba/vbacollectionimpl.cxx
deleted file mode 100644
index 560b91e44..000000000
--- a/scratch/sc-vba/vbacollectionimpl.cxx
+++ /dev/null
@@ -1,103 +0,0 @@
-#include <vbacollectionimpl.hxx>
-#include "vbaglobals.hxx"
-using namespace ::com::sun::star;
-using namespace ::org::openoffice;
-
-
-ScVbaCollectionBaseImpl::ScVbaCollectionBaseImpl( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XIndexAccess >& xIndexAccess ) throw (uno::RuntimeException) : m_xContext( xContext ), m_xIndexAccess( xIndexAccess )
-{
- m_xNameAccess.set( xIndexAccess, uno::UNO_QUERY_THROW );
- if ( !m_xIndexAccess.is() || !m_xNameAccess.is() )
- throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ScVbaCollectionBaseImpl not initialised") ), uno::Reference< uno::XInterface >() );
-}
-
-uno::Any
-ScVbaCollectionBaseImpl::getItemByStringIndex( const rtl::OUString& sIndex ) throw (::uno::RuntimeException)
-{
- return createCollectionObject( m_xNameAccess->getByName( sIndex ) );
-}
-
-uno::Any
-ScVbaCollectionBaseImpl::getItemByIntIndex( const sal_Int32 nIndex ) throw (uno::RuntimeException)
-{
- if ( nIndex <= 0 )
- {
- throw lang::IndexOutOfBoundsException(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
- "index is 0 or negative" ) ),
- uno::Reference< uno::XInterface >() );
- }
- // need to adjust for vba index ( for which first element is 1 )
- return createCollectionObject( m_xIndexAccess->getByIndex( nIndex - 1 ) );
-}
-
-::sal_Int32 SAL_CALL
-ScVbaCollectionBaseImpl::getCount() throw (uno::RuntimeException)
-{
- return m_xIndexAccess->getCount();
-}
-
-uno::Any SAL_CALL
-ScVbaCollectionBaseImpl::getParent() throw (uno::RuntimeException)
-{
- // #TODO #FIXME investigate whether this makes sense
- uno::Reference< vba::XApplication > xApplication =
- ScVbaGlobals::getGlobalsImpl( m_xContext )->getApplication();
- uno::Reference< vba::XWorkbook > xWorkbook;
- if ( xApplication.is() )
- {
- xWorkbook = xApplication->getActiveWorkbook();
- }
- return uno::Any( xWorkbook );
-}
-
-::sal_Int32 SAL_CALL ScVbaCollectionBaseImpl::getCreator() throw (uno::RuntimeException)
-{
- SC_VBA_STUB();
- return 0;
-}
-uno::Reference< vba::XApplication > SAL_CALL ScVbaCollectionBaseImpl::getApplication() throw (uno::RuntimeException)
-{
- // #TODO #FIXME investigate whether this makes sense
- uno::Reference< vba::XApplication > xApplication =
- ScVbaGlobals::getGlobalsImpl( m_xContext )->getApplication();
- return xApplication;
-}
-
-uno::Any SAL_CALL ScVbaCollectionBaseImpl::Item( const uno::Any& aIndex ) throw (uno::RuntimeException)
-{
- if ( aIndex.getValueTypeClass() != uno::TypeClass_STRING )
- {
- sal_Int32 nIndex = 0;
-
- if ( ( aIndex >>= nIndex ) != sal_True )
- {
- rtl::OUString message;
- message = rtl::OUString::createFromAscii(
- "Couldn't convert index to Int32");
- throw lang::IndexOutOfBoundsException( message,
- uno::Reference< uno::XInterface >() );
- }
- return getItemByIntIndex( nIndex );
- }
- rtl::OUString aStringSheet;
-
- aIndex >>= aStringSheet;
- return getItemByStringIndex( aStringSheet );
-}
-
-/*
- // XEnumerationAccess
-uno::Reference< container::XEnumeration > SAL_CALL ScVbaCollectionBaseImpl::createEnumeration() throw (uno::RuntimeException)
-{
- return uno::Reference< container::XEnumeration > ();
-}
-*/
- // XElementAccess
-
-::sal_Bool SAL_CALL ScVbaCollectionBaseImpl::hasElements() throw (uno::RuntimeException)
-{
- return ( m_xIndexAccess->getCount() > 0 );
-}
-
-
diff --git a/scratch/sc-vba/vbacollectionimpl.hxx b/scratch/sc-vba/vbacollectionimpl.hxx
deleted file mode 100644
index 43269eeff..000000000
--- a/scratch/sc-vba/vbacollectionimpl.hxx
+++ /dev/null
@@ -1,68 +0,0 @@
-#ifndef SC_VBA_COLLECTION_IMPL_HXX
-#define SC_VBA_COLLECTION_IMPL_HXX
-
-#include <org/openoffice/vba/XCollection.hpp>
-#include <com/sun/star/container/XEnumerationAccess.hpp>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <com/sun/star/container/XIndexAccess.hpp>
-#include <com/sun/star/container/XNameAccess.hpp>
-
-#include <cppuhelper/implbase2.hxx>
-#include <cppuhelper/implbase1.hxx>
-
-#include "vbahelper.hxx"
-
-
-typedef ::cppu::WeakImplHelper1< css::container::XEnumeration > EnumerationHelper_BASE;
-
-class EnumerationHelperImpl : public EnumerationHelper_BASE
-{
-protected:
- css::uno::Reference< css::uno::XComponentContext > m_xContext;
- css::uno::Reference< css::container::XEnumeration > m_xEnumeration;
-public:
-
- EnumerationHelperImpl( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::container::XEnumeration >& xEnumeration ) throw ( css::uno::RuntimeException ) : m_xEnumeration( xEnumeration ), m_xContext( xContext ) { }
- virtual ::sal_Bool SAL_CALL hasMoreElements( ) throw (css::uno::RuntimeException) { return m_xEnumeration->hasMoreElements(); }
- //virtual css::uno::Any SAL_CALL nextElement( ) throw (css::container::NoSuchElementException, css::lang::WrappedTargetException, css::uno::RuntimeException) = 0;
-};
-
-
-
-typedef ::cppu::WeakImplHelper2<oo::vba::XCollection,
-css::container::XEnumerationAccess > XCollection_BASE;
-
-class ScVbaCollectionBaseImpl : public XCollection_BASE
-{
-protected:
- css::uno::Reference< css::uno::XComponentContext > m_xContext;
-
- css::uno::Reference< css::container::XIndexAccess > m_xIndexAccess;
- css::uno::Reference< css::container::XNameAccess > m_xNameAccess;
-
- virtual css::uno::Any getItemByStringIndex( const rtl::OUString& sIndex ) throw (css::uno::RuntimeException);
-
- virtual css::uno::Any getItemByIntIndex( const sal_Int32 nIndex ) throw (css::uno::RuntimeException);
-public:
- ScVbaCollectionBaseImpl( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::container::XIndexAccess >& xIndexAccess ) throw( css::uno::RuntimeException );
-
- //XCollection
- virtual ::sal_Int32 SAL_CALL getCount() throw (css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL getParent() throw (css::uno::RuntimeException);
- virtual ::sal_Int32 SAL_CALL getCreator() throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XApplication > SAL_CALL getApplication() throw (css::uno::RuntimeException);
-
- virtual css::uno::Any SAL_CALL Item( const css::uno::Any& Index ) throw (css::uno::RuntimeException);
-
- // XEnumerationAccess
- virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException) = 0;
-
- // XElementAccess
- virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException) = 0;
-
- virtual ::sal_Bool SAL_CALL hasElements() throw (css::uno::RuntimeException);
-
- virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource ) = 0;
-
-};
-#endif //SC_VBA_COLLECTION_IMPL_HXX
diff --git a/scratch/sc-vba/vbadialog.cxx b/scratch/sc-vba/vbadialog.cxx
deleted file mode 100644
index fedb5de19..000000000
--- a/scratch/sc-vba/vbadialog.cxx
+++ /dev/null
@@ -1,104 +0,0 @@
-#include <comphelper/processfactory.hxx>
-
-#include <com/sun/star/lang/XMultiComponentFactory.hpp>
-#include <com/sun/star/frame/XModel.hpp>
-#include <org/openoffice/vba/XApplication.hpp>
-
-#include <tools/string.hxx>
-
-#include "vbahelper.hxx"
-#include "vbadialog.hxx"
-#include "vbaglobals.hxx"
-
-using namespace ::org::openoffice;
-using namespace ::org::openoffice::vba;
-using namespace ::com::sun::star;
-
-// fails silently
-void
-ScVbaDialog::Show() throw(uno::RuntimeException)
-{
- rtl::OUString aURL;
- uno::Reference< frame::XModel > xModel = getCurrentDocument();
- if ( xModel.is() )
- {
- aURL = mapIndexToName( mnIndex );
- if( aURL.getLength() )
- throw uno::RuntimeException(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( " Unable to open the specified dialog " ) ),
- uno::Reference< XInterface > () );
- dispatchRequests( xModel, aURL );
- }
-}
-
-uno::Any
-ScVbaDialog::getParent() throw (uno::RuntimeException)
-{
- uno::Reference< vba::XGlobals > xGlobals = ScVbaGlobals::getGlobalsImpl( m_xContext );
- uno::Reference< vba::XApplication > xApplication = xGlobals->getApplication();
- if ( !xApplication.is() )
- {
- throw uno::RuntimeException(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ScVbaDialgs::getParent: Couldn't access Application object") ),uno::Reference< XInterface >() );
- }
- return uno::Any(xApplication);
-}
-
-::sal_Int32
-ScVbaDialog::getCreator() throw (uno::RuntimeException)
-{
- SC_VBA_STUB();
- return 0;
-}
-uno::Reference< vba::XApplication >
-ScVbaDialog::getApplication() throw (uno::RuntimeException)
-{
- uno::Reference< vba::XApplication > xApplication = ScVbaGlobals::getGlobalsImpl( m_xContext )->getApplication();
- if ( !xApplication.is() )
- {
- throw uno::RuntimeException(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ScVbaWorkbooks::getParent: Couldn't access Application object" ) ),
- uno::Reference< XInterface >() );
- }
- return xApplication;
-}
-
-static const rtl::OUString aStringList[]=
-{
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:Open" ) ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FormatCellDialog" ) ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:InsertCell" ) ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:Print" ) ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:PasteSpecial" ) ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:ToolProtectionDocument" ) ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:ColumnWidth" ) ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:DefineName" ) ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:ConfigureDialog" ) ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:HyperlinkDialog" ) ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:InsertGraphic" ) ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:InsertObject" ) ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:PageFormatDialog" ) ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:DataSort" ) ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:RowHeight" ) ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:AutoCorrectDlg" ) ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:ConditionalFormatDialog" ) ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:DataConsolidate" ) ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:CreateNames" ) ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FillSeries" ) ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:Validation") ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:DefineLabelRange" ) ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:DataFilterAutoFilter" ) ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:DataFilterSpecialFilter" ) ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:AutoFormat" ) )
-};
-
-const sal_Int32 nSize = sizeof( aStringList ) / sizeof( aStringList[ 0 ] );
-
-rtl::OUString
-ScVbaDialog::mapIndexToName( sal_Int32 nIndex )
-{
- if( nIndex < nSize )
- return aStringList[ nIndex ];
- return rtl::OUString();
-}
-
diff --git a/scratch/sc-vba/vbadialog.hxx b/scratch/sc-vba/vbadialog.hxx
deleted file mode 100644
index 9fd8732d5..000000000
--- a/scratch/sc-vba/vbadialog.hxx
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef SC_VBA_DIALOG_HXX
-#define SC_VBA_DIALOG_HXX
-
-#include <cppuhelper/implbase1.hxx>
-
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <org/openoffice/vba/XGlobals.hpp>
-#include <org/openoffice/vba/XApplication.hpp>
-#include <org/openoffice/vba/XDialog.hpp>
-
-#include "vbahelper.hxx"
-#include "vbadialog.hxx"
-
-typedef ::cppu::WeakImplHelper1< oo::vba::XDialog > ScVbaDialog_BASE;
-
-class ScVbaDialog : public ScVbaDialog_BASE
-{
- sal_Int32 mnIndex;
- css::uno::Reference< css::uno::XComponentContext > m_xContext;
-public:
- ScVbaDialog( sal_Int32 nIndex, css::uno::Reference< css::uno::XComponentContext > xContext ):
- mnIndex( nIndex ),
- m_xContext( xContext ) {}
- virtual ~ScVbaDialog() {}
-
- // Attributes
- virtual css::uno::Reference< oo::vba::XApplication > SAL_CALL getApplication() throw (css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL getParent() throw (css::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL getCreator() throw(css::uno::RuntimeException);
- // Methods
- virtual void SAL_CALL Show() throw (css::uno::RuntimeException);
- rtl::OUString mapIndexToName( sal_Int32 nIndex );
-};
-
-#endif /* SC_VBA_DIALOG_HXX */
diff --git a/scratch/sc-vba/vbadialogs.cxx b/scratch/sc-vba/vbadialogs.cxx
deleted file mode 100644
index 6157ae939..000000000
--- a/scratch/sc-vba/vbadialogs.cxx
+++ /dev/null
@@ -1,69 +0,0 @@
-#include <comphelper/processfactory.hxx>
-
-#include <com/sun/star/lang/XMultiComponentFactory.hpp>
-#include <com/sun/star/frame/XModel.hpp>
-#include <org/openoffice/vba/XApplication.hpp>
-#include <org/openoffice/vba/XDialog.hpp>
-
-#include <tools/string.hxx>
-
-#include "vbahelper.hxx"
-#include "vbadialogs.hxx"
-#include "vbaglobals.hxx"
-#include "vbadialog.hxx"
-
-using namespace ::org::openoffice;
-using namespace ::com::sun::star;
-
-void
-ScVbaDialogs::Dummy() throw (uno::RuntimeException)
-{
-}
-
-uno::Any
-ScVbaDialogs::getParent() throw (uno::RuntimeException)
-{
- uno::Reference< vba::XGlobals > xGlobals = ScVbaGlobals::getGlobalsImpl( m_xContext );
- uno::Reference< vba::XApplication > xApplication = xGlobals->getApplication();
- if ( !xApplication.is() )
- {
- throw uno::RuntimeException(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ScVbaWorkbooks::getParent: Couldn't access Application object") ),uno::Reference< XInterface >() );
- }
- return uno::Any(xApplication);
-}
-
-::sal_Int32
-ScVbaDialogs::getCreator() throw (uno::RuntimeException)
-{
- SC_VBA_STUB();
- return 0;
-}
-uno::Reference< vba::XApplication >
-ScVbaDialogs::getApplication() throw (uno::RuntimeException)
-{
- uno::Reference< vba::XApplication > xApplication = ScVbaGlobals::getGlobalsImpl( m_xContext )->getApplication();
- if ( !xApplication.is() )
- {
- throw uno::RuntimeException(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ScVbaWorkbooks::getParent: Couldn't access Application object" ) ),
- uno::Reference< XInterface >() );
- }
- return xApplication;
-}
-
-::sal_Int32
-ScVbaDialogs::getCount() throw (uno::RuntimeException)
-{
- SC_VBA_STUB();
- return 0;
-}
-
-uno::Any
-ScVbaDialogs::Item( const uno::Any &aItem ) throw (uno::RuntimeException)
-{
- sal_Int32 nIndex;
- aItem >>= nIndex;
- uno::Reference< vba::XDialog > aDialog( new ScVbaDialog( nIndex, m_xContext ) );
- return uno::Any( aDialog );
-}
diff --git a/scratch/sc-vba/vbadialogs.hxx b/scratch/sc-vba/vbadialogs.hxx
deleted file mode 100644
index 2fbb7e735..000000000
--- a/scratch/sc-vba/vbadialogs.hxx
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef SC_VBA_DIALOGS_HXX
-#define SC_VBA_DIALOGS_HXX
-
-#include <cppuhelper/implbase1.hxx>
-
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <org/openoffice/vba/XDialogs.hpp>
-#include <org/openoffice/vba/XCollection.hpp>
-
-class ScModelObj;
-
-typedef ::cppu::WeakImplHelper1< oo::vba::XDialogs > ScVbaDialogs_BASE;
-
-class ScVbaDialogs : public ScVbaDialogs_BASE
-{
- css::uno::Reference< css::uno::XComponentContext > & m_xContext;
-public:
- ScVbaDialogs( css::uno::Reference< css::uno::XComponentContext > &xContext ):
- m_xContext( xContext ) {}
- virtual ~ScVbaDialogs() {}
-
- // XCollection
- virtual ::sal_Int32 SAL_CALL getCount() throw (css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL getParent() throw (css::uno::RuntimeException);
- virtual ::sal_Int32 SAL_CALL getCreator() throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XApplication > SAL_CALL getApplication()
- throw (css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL Item( const css::uno::Any& Index ) throw (css::uno::RuntimeException);
-
- // XDialogs
- virtual void SAL_CALL Dummy() throw (css::uno::RuntimeException);
-};
-
-#endif /* SC_VBA_DIALOGS_HXX */
diff --git a/scratch/sc-vba/vbafont.cxx b/scratch/sc-vba/vbafont.cxx
deleted file mode 100644
index a55030640..000000000
--- a/scratch/sc-vba/vbafont.cxx
+++ /dev/null
@@ -1,112 +0,0 @@
-#include <com/sun/star/beans/XProperty.hpp>
-#include <com/sun/star/awt/FontWeight.hpp>
-#include <com/sun/star/awt/FontUnderline.hpp>
-#include <com/sun/star/awt/FontStrikeout.hpp>
-#include <com/sun/star/awt/FontSlant.hpp>
-#include "vbafont.hxx"
-
-using namespace ::org::openoffice;
-using namespace ::com::sun::star;
-
-void
-ScVbaFont::setBold( sal_Bool bValue ) throw( uno::RuntimeException )
-{
- double fBoldValue = awt::FontWeight::NORMAL;
- if( bValue )
- fBoldValue = awt::FontWeight::BOLD;
- mxFont->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharWeight" ) ), ( uno::Any )fBoldValue );
-
-}
-
-sal_Bool
-ScVbaFont::getBold() throw ( uno::RuntimeException )
-{
- double fValue;
- uno::Any aValue = mxFont->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharWeight" ) ) );
- aValue >>= fValue;
- return( fValue == awt::FontWeight::BOLD );
-}
-
-void
-ScVbaFont::setUnderline( sal_Bool bValue ) throw ( uno::RuntimeException )
-{
- short nValue = awt::FontUnderline::NONE;
- if( bValue )
- nValue = awt::FontUnderline::SINGLE;
- mxFont->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharUnderline" ) ), ( uno::Any )nValue );
-}
-
-sal_Bool
-ScVbaFont::getUnderline() throw ( uno::RuntimeException )
-{
- short nValue = 0;
- uno::Any aValue = mxFont->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharUnderline" ) ) );
- aValue >>= nValue;
- return( nValue == awt::FontUnderline::SINGLE );
-}
-
-void
-ScVbaFont::setStrikethrough( sal_Bool bValue ) throw ( uno::RuntimeException )
-{
- short nValue = awt::FontStrikeout::NONE;
- if( bValue )
- nValue = awt::FontStrikeout::SINGLE;
- mxFont->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharStrikeout" ) ), ( uno::Any )nValue );
-}
-
-sal_Bool
-ScVbaFont::getStrikethrough() throw ( uno::RuntimeException )
-{
- short nValue = 0;
- uno::Any aValue = mxFont->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharStrikeout" ) ) );
- aValue >>= nValue;
- return( nValue == awt::FontStrikeout::SINGLE );
-}
-
-void
-ScVbaFont::setShadow( sal_Bool bValue ) throw ( uno::RuntimeException )
-{
- mxFont->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharShadowed" ) ), ( uno::Any )bValue );
-}
-
-sal_Bool
-ScVbaFont::getShadow() throw (uno::RuntimeException)
-{
- sal_Bool bValue = false;
- uno::Any aValue = mxFont->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharShadowed" ) ) );
- aValue >>= bValue;
- return bValue;
-}
-
-void
-ScVbaFont::setItalic( sal_Bool bValue ) throw ( uno::RuntimeException )
-{
- short nValue = awt::FontSlant_NONE;
- if( bValue )
- nValue = awt::FontSlant_ITALIC;
- mxFont->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharPosture" ) ), ( uno::Any )nValue );
-}
-
-sal_Bool
-ScVbaFont::getItalic() throw ( uno::RuntimeException )
-{
- short nValue = 0;
- uno::Any aValue = mxFont->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharPosture" ) ) );
- aValue >>= nValue;
- return( nValue == awt::FontSlant_ITALIC );
-}
-
-void
-ScVbaFont::setName( const ::rtl::OUString &rString ) throw ( uno::RuntimeException )
-{
- mxFont->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharFontName" ) ), ( uno::Any )rString );
-}
-
-::rtl::OUString
-ScVbaFont::getName() throw ( uno::RuntimeException )
-{
- ::rtl::OUString rString;
- uno::Any aValue = mxFont->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharFontName" ) ) );
- aValue >>= rString;
- return rString;
-}
diff --git a/scratch/sc-vba/vbafont.hxx b/scratch/sc-vba/vbafont.hxx
deleted file mode 100644
index 2444908b4..000000000
--- a/scratch/sc-vba/vbafont.hxx
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef SC_VBA_FONT_HXX
-#define SC_VBA_FONT_HXX
-
-#include <cppuhelper/implbase1.hxx>
-
-#include <org/openoffice/vba/XFont.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include "vbahelper.hxx"
-
-class ScTableSheetsObj;
-
-typedef ::cppu::WeakImplHelper1< oo::vba::XFont > ScVbaFont_BASE;
-
-class ScVbaFont : public ScVbaFont_BASE
-{
- css::uno::Reference< css::beans::XPropertySet > mxFont;
-public:
- ScVbaFont( css::uno::Reference< css::beans::XPropertySet > xPropertySet ) throw ( css::uno::RuntimeException ) :
- mxFont( xPropertySet, css::uno::UNO_QUERY_THROW ){}
- virtual ~ScVbaFont() {}
-
- // Attributes
- virtual void SAL_CALL setBold( sal_Bool bValue ) throw (css::uno::RuntimeException);
- virtual sal_Bool SAL_CALL getBold() throw (css::uno::RuntimeException);
- virtual void SAL_CALL setUnderline( sal_Bool bValue ) throw (css::uno::RuntimeException);
- virtual sal_Bool SAL_CALL getUnderline() throw (css::uno::RuntimeException);
- virtual void SAL_CALL setStrikethrough( sal_Bool bValue ) throw (css::uno::RuntimeException);
- virtual sal_Bool SAL_CALL getStrikethrough() throw (css::uno::RuntimeException);
- virtual void SAL_CALL setShadow( sal_Bool bValue ) throw (css::uno::RuntimeException);
- virtual sal_Bool SAL_CALL getShadow() throw (css::uno::RuntimeException);
- virtual void SAL_CALL setItalic( sal_Bool bValue ) throw (css::uno::RuntimeException);
- virtual sal_Bool SAL_CALL getItalic() throw (css::uno::RuntimeException);
- virtual void SAL_CALL setName( const ::rtl::OUString &rString ) throw (css::uno::RuntimeException);
- virtual ::rtl::OUString getName() throw (css::uno::RuntimeException);
-};
-
-#endif /* SC_VBA_FONT_HXX */
-
diff --git a/scratch/sc-vba/vbaglobals.cxx b/scratch/sc-vba/vbaglobals.cxx
deleted file mode 100644
index a7a868576..000000000
--- a/scratch/sc-vba/vbaglobals.cxx
+++ /dev/null
@@ -1,203 +0,0 @@
-#ifndef SC_VBA_GLOBALS
-#include "vbaglobals.hxx"
-#endif
-
-#include <com/sun/star/lang/XMultiComponentFactory.hpp>
-
-#include "vbaapplication.hxx"
-#include "vbaworksheet.hxx"
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::org::openoffice;
-
-
-
-namespace vbaobj
-{
- ::rtl::OUString SAL_CALL getImplementationName()
- {
- static ::rtl::OUString* pImplName = 0;
- if ( !pImplName )
- {
- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
- if ( !pImplName )
- {
- static ::rtl::OUString aImplName( RTL_CONSTASCII_USTRINGPARAM( "org.openoffice.vba.Globals" ) );
- pImplName = &aImplName;
- }
- }
- return *pImplName;
- }
-
- uno::Reference< XInterface > SAL_CALL create(
- Reference< XComponentContext > const & xContext )
- SAL_THROW( () )
- {
- OSL_TRACE("In create component for vbaglobals");
- return static_cast< lang::XTypeProvider * >( new ScVbaGlobals( xContext ) );
- }
-
- Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
- {
- const ::rtl::OUString strName( ::vbaobj::getImplementationName() );
- return Sequence< ::rtl::OUString >( &strName, 1 );
- }
-}
-
-// =============================================================================
-// ScVbaGlobals
-// =============================================================================
-
-ScVbaGlobals::ScVbaGlobals( const Reference< XComponentContext >& rxContext )
- :m_xContext( rxContext )
-{
-// OSL_TRACE("ScVbaGlobals::ScVbaGlobals()");
- mxApplication = uno::Reference< vba::XApplication > ( new ScVbaApplication( m_xContext) );
-}
-
-ScVbaGlobals::~ScVbaGlobals()
-{
-// OSL_TRACE("ScVbaGlobals::~ScVbaGlobals");
-}
-
-// Will throw if singleton can't be accessed
-uno::Reference< vba::XGlobals >
-ScVbaGlobals::getGlobalsImpl( uno::Reference< uno::XComponentContext >& xContext ) throw ( uno::RuntimeException )
-{
- uno::Reference< vba::XGlobals > xGlobals(
- xContext->getValueByName( ::rtl::OUString::createFromAscii(
- "/singletons/org.openoffice.vba.theGlobals") ), uno::UNO_QUERY);
-
- if ( !xGlobals.is() )
- {
- throw uno::RuntimeException(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ": Couldn't access Globals" ) ),
- uno::Reference< XInterface >() );
- }
- return xGlobals;
-}
-
-// -----------------------------------------------------------------------------
-// XServiceInfo
-// -----------------------------------------------------------------------------
-
-::rtl::OUString ScVbaGlobals::getImplementationName( ) throw (RuntimeException)
-{
- return ::vbaobj::getImplementationName();
-}
-
-sal_Bool ScVbaGlobals::supportsService( const ::rtl::OUString& rServiceName ) throw (RuntimeException)
-{
- Sequence< ::rtl::OUString > aNames( ::vbaobj::getSupportedServiceNames() );
- const ::rtl::OUString* pNames = aNames.getConstArray();
- const ::rtl::OUString* pEnd = pNames + aNames.getLength();
- for ( ; pNames != pEnd && !pNames->equals( rServiceName ); ++pNames )
- ;
-
- return pNames != pEnd;
-}
-
-Sequence< ::rtl::OUString > ScVbaGlobals::getSupportedServiceNames( ) throw (RuntimeException)
-{
- return vbaobj::getSupportedServiceNames();
-}
-
-// =============================================================================
-// XGlobals
-// =============================================================================
-uno::Reference<vba::XApplication >
-ScVbaGlobals::getApplication() throw (uno::RuntimeException)
-{
-// OSL_TRACE("In ScVbaGlobals::getApplication");
- return mxApplication;
-}
-
-uno::Reference< vba::XWorkbook > SAL_CALL
-ScVbaGlobals::getActiveWorkbook() throw (uno::RuntimeException)
-{
-// OSL_TRACE("In ScVbaGlobals::getActiveWorkbook");
- uno::Reference< vba::XWorkbook > xWorkbook( mxApplication->getActiveWorkbook(), uno::UNO_QUERY);
- if ( xWorkbook.is() )
- {
- return xWorkbook;
- }
-// FIXME check if this is correct/desired behavior
- throw uno::RuntimeException( rtl::OUString::createFromAscii(
- "No activeWorkbook available" ), Reference< uno::XInterface >() );
-}
-
-
-uno::Reference< vba::XWorksheet > SAL_CALL
-ScVbaGlobals::getActiveSheet() throw (uno::RuntimeException)
-{
-// OSL_TRACE("ScVbaGlobals::getActiveSheet()");
- uno::Reference< vba::XWorksheet > result;
- uno::Reference< vba::XWorkbook > xWorkbook(
- mxApplication->getActiveWorkbook(), uno::UNO_QUERY );
- if ( xWorkbook.is() )
- {
- uno::Reference< vba::XWorksheet > xWorksheet(
- xWorkbook->getActiveSheet(), uno::UNO_QUERY );
- if ( xWorksheet.is() )
- {
- result = xWorksheet;
- }
- }
-
- if ( !result.is() )
- {
- // Fixme - check if this is reasonable/desired behavior
- throw uno::RuntimeException( rtl::OUString::createFromAscii(
- "No activeSheet available" ), Reference< uno::XInterface >() );
- }
- return result;
-}
-
-uno::Any SAL_CALL
-ScVbaGlobals::WorkBooks( const uno::Any& aIndex ) throw (uno::RuntimeException)
-{
- return uno::Any( mxApplication->Workbooks(aIndex) );
-}
-
-uno::Any SAL_CALL
-ScVbaGlobals::WorkSheets(const uno::Any& aIndex) throw (uno::RuntimeException)
-{
-// OSL_TRACE("ScVbaGlobals::getWorkSheets()");
- uno::Reference< vba::XWorkbook > xWorkbook( mxApplication->getActiveWorkbook(), uno::UNO_QUERY );
- uno::Any result;
- if ( xWorkbook.is() )
- result = xWorkbook->Worksheets( aIndex );
-
- else
- // Fixme - check if this is reasonable/desired behavior
- throw uno::RuntimeException( rtl::OUString::createFromAscii(
- "No ActiveWorkBook available" ), Reference< uno::XInterface >() );
-
- return result;
-}
-uno::Any SAL_CALL
-ScVbaGlobals::Sheets( const uno::Any& aIndex ) throw (uno::RuntimeException)
-{
- return WorkSheets( aIndex );
-}
-
-::uno::Sequence< ::uno::Any > SAL_CALL
-ScVbaGlobals::getGlobals( ) throw (::uno::RuntimeException)
-{
- sal_uInt32 nMax = 0;
- uno::Sequence< uno::Any > maGlobals(4);
- maGlobals[ nMax++ ] <<= ScVbaGlobals::getGlobalsImpl(m_xContext);
- maGlobals[ nMax++ ] <<= mxApplication;
-
- uno::Reference< vba::XWorkbook > xWorkbook = mxApplication->getActiveWorkbook();
- if( xWorkbook.is() )
- {
- maGlobals[ nMax++ ] <<= xWorkbook;
- uno::Reference< vba::XWorksheet > xWorksheet = xWorkbook->getActiveSheet();
- if( xWorksheet.is() )
- maGlobals[ nMax++ ] <<= xWorksheet;
- }
- maGlobals.realloc( nMax );
- return maGlobals;
-}
diff --git a/scratch/sc-vba/vbaglobals.hxx b/scratch/sc-vba/vbaglobals.hxx
deleted file mode 100644
index 94a7cdc44..000000000
--- a/scratch/sc-vba/vbaglobals.hxx
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef SC_VBA_GLOBALS
-#define SC_VBA_GLOBALS
-
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/lang/XInitialization.hpp>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <org/openoffice/vba/XGlobals.hpp>
-
-#include <cppuhelper/implbase2.hxx>
-#include "vbahelper.hxx"
-
- // =============================================================================
- // class ScVbaGlobals
- // =============================================================================
-
- typedef ::cppu::WeakImplHelper2<
- oo::vba::XGlobals,
- css::lang::XServiceInfo > ScVbaGlobals_BASE;
-
-
- class ScVbaGlobals : public ScVbaGlobals_BASE
- {
- private:
- css::uno::Reference< css::uno::XComponentContext > m_xContext;
- css::uno::Reference< oo::vba::XApplication > mxApplication;
- public:
-
- ScVbaGlobals(
- const css::uno::Reference< css::uno::XComponentContext >& rxContext );
- virtual ~ScVbaGlobals();
-
- static css::uno::Reference< oo::vba::XGlobals > getGlobalsImpl(css::uno::Reference< css::uno::XComponentContext >& ) throw (css::uno::RuntimeException);
-
- // XServiceInfo
- virtual ::rtl::OUString SAL_CALL getImplementationName( )
- throw (css::uno::RuntimeException);
- virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
- throw (css::uno::RuntimeException);
- virtual css::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( )
- throw (css::uno::RuntimeException);
-
- // XGlobals
- virtual css::uno::Reference<
- oo::vba::XApplication > SAL_CALL getApplication()
- throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XWorkbook > SAL_CALL getActiveWorkbook() throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XWorksheet > SAL_CALL getActiveSheet() throw (css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL WorkSheets(const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL WorkBooks(const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL Sheets( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
- virtual css::uno::Sequence< css::uno::Any > SAL_CALL getGlobals( ) throw (css::uno::RuntimeException);
-
-
- };
-#endif //
diff --git a/scratch/sc-vba/vbahelper.cxx b/scratch/sc-vba/vbahelper.cxx
deleted file mode 100644
index 0b4377fb4..000000000
--- a/scratch/sc-vba/vbahelper.cxx
+++ /dev/null
@@ -1,294 +0,0 @@
-#include <cppuhelper/bootstrap.hxx>
-#include <com/sun/star/util/XURLTransformer.hpp>
-#include <com/sun/star/frame/XDispatchProvider.hpp>
-#include <com/sun/star/frame/XModel.hpp>
-#include <com/sun/star/frame/XFrame.hpp>
-#include <com/sun/star/frame/XController.hpp>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <com/sun/star/lang/XMultiComponentFactory.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-
-#include <sfx2/objsh.hxx>
-#include <sfx2/app.hxx>
-
-#include <docuno.hxx>
-
-#include <basic/sbx.hxx>
-
-#include "vbahelper.hxx"
-#include "tabvwsh.hxx"
-#include "transobj.hxx"
-
-using namespace ::com::sun::star;
-using namespace ::org::openoffice;
-
-void unoToSbxValue( SbxVariable* pVar, const uno::Any& aValue );
-
-uno::Any sbxToUnoValue( SbxVariable* pVar );
-
-const ::rtl::OUString REPLACE_CELLS_WARNING( RTL_CONSTASCII_USTRINGPARAM( "ReplaceCellsWarning"));
-
-class PasteCellsWarningReseter
-{
-private:
- bool bInitialWarningState;
- static uno::Reference< beans::XPropertySet > getGlobalSheetSettings() throw ( uno::RuntimeException )
- {
- static uno::Reference<uno::XComponentContext > xContext( ::cppu::defaultBootstrap_InitialComponentContext(), uno::UNO_QUERY_THROW );
- static uno::Reference<lang::XMultiComponentFactory > xServiceManager(
- xContext->getServiceManager(), uno::UNO_QUERY_THROW );
- static uno::Reference< beans::XPropertySet > xProps( xServiceManager->createInstanceWithContext( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.sheet.GlobalSheetSettings" ) ) ,xContext ), uno::UNO_QUERY_THROW );
- return xProps;
- }
-
- bool getReplaceCellsWarning() throw ( uno::RuntimeException )
- {
- sal_Bool res = sal_False;
- getGlobalSheetSettings()->getPropertyValue( REPLACE_CELLS_WARNING ) >>= res;
- return ( res == sal_True );
- }
-
- void setReplaceCellsWarning( bool bState ) throw ( uno::RuntimeException )
- {
- getGlobalSheetSettings()->setPropertyValue( REPLACE_CELLS_WARNING, uno::makeAny( bState ) );
- }
-public:
- PasteCellsWarningReseter() throw ( uno::RuntimeException )
- {
- if ( bInitialWarningState = getReplaceCellsWarning() );
- setReplaceCellsWarning( false );
- }
- ~PasteCellsWarningReseter()
- {
- if ( bInitialWarningState )
- {
- // don't allow dtor to throw
- try
- {
- setReplaceCellsWarning( true );
- }
- catch ( uno::Exception& e ){}
- }
- }
-};
-void
-org::openoffice::dispatchRequests (uno::Reference< frame::XModel>& xModel,rtl::OUString & aUrl, uno::Sequence< beans::PropertyValue >& sProps )
-{
-
- util::URL url ;
- url.Complete = aUrl;
- rtl::OUString emptyString = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "" ));
- uno::Reference<frame::XController> xController = xModel->getCurrentController();
- uno::Reference<frame::XFrame> xFrame = xController->getFrame();
- uno::Reference<frame::XDispatchProvider> xDispatchProvider (xFrame,uno::UNO_QUERY_THROW);
- try
- {
- uno::Reference<uno::XComponentContext > xContext( ::cppu::defaultBootstrap_InitialComponentContext());
- if ( !xContext.is() )
- {
- return ;
- }
-
- uno::Reference<lang::XMultiComponentFactory > xServiceManager(
- xContext->getServiceManager() );
- if ( !xServiceManager.is() )
- {
- return ;
- }
- uno::Reference<util::XURLTransformer> xParser( xServiceManager->createInstanceWithContext( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.util.URLTransformer" ) )
- ,xContext), uno::UNO_QUERY_THROW );
- if (!xParser.is())
- return;
- xParser->parseStrict (url);
- }
- catch ( ::cppu::BootstrapException & e )
- {
- return ;
- }
- catch ( uno::Exception & e )
- {
- return ;
- }
-
- uno::Reference<frame::XDispatch> xDispatcher = xDispatchProvider->queryDispatch(url,emptyString,0);
-
- uno::Sequence<beans::PropertyValue> dispatchProps(1);
-
- sal_Int32 nProps = sProps.getLength();
- beans::PropertyValue* pDest = dispatchProps.getArray();
- if ( nProps )
- {
- dispatchProps.realloc( nProps + 1 );
- // need to reaccquire pDest after realloc
- pDest = dispatchProps.getArray();
- beans::PropertyValue* pSrc = sProps.getArray();
- for ( sal_Int32 index=0; index<nProps; ++index, ++pSrc, ++pDest )
- *pDest = *pSrc;
- }
-
- (*pDest).Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Silent" ));
- (*pDest).Value <<= (sal_Bool)sal_True;
-
- if (xDispatcher.is())
- xDispatcher->dispatch( url, dispatchProps );
-}
-
-void
-org::openoffice::dispatchRequests (uno::Reference< frame::XModel>& xModel,rtl::OUString & aUrl)
-{
- uno::Sequence<beans::PropertyValue> dispatchProps;
- dispatchRequests( xModel, aUrl, dispatchProps );
-}
-
-
-void
-org::openoffice::implnPaste()
-{
- PasteCellsWarningReseter resetWarningBox;
- ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
- if ( pViewShell )
- {
- pViewShell->PasteFromSystem();
- pViewShell->CellContentChanged();
- }
-}
-
-
-void
-org::openoffice::implnCopy()
-{
- ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
- if ( pViewShell )
- pViewShell->CopyToClip(NULL,false,false,true);
-}
-
-void
-org::openoffice::implnCut()
-{
- ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
- if ( pViewShell )
- pViewShell->CutToClip( NULL, TRUE );
-}
-
-void org::openoffice::implnPasteSpecial(USHORT nFlags,USHORT nFunction,sal_Bool bSkipEmpty, sal_Bool bTranspose)
-{
- PasteCellsWarningReseter resetWarningBox;
- sal_Bool bAsLink(sal_False), bOtherDoc(sal_False);
- InsCellCmd eMoveMode = INS_NONE;
-
- ScTabViewShell* pTabViewShell = ScTabViewShell::GetActiveViewShell();
- if ( pTabViewShell )
- {
- ScViewData* pView = pTabViewShell->GetViewData();
- Window* pWin = NULL;
- if ( pView && ( pWin = pView->GetActiveWin() ) )
- {
- if ( bAsLink && bOtherDoc )
- pTabViewShell->PasteFromSystem(0);//SOT_FORMATSTR_ID_LINK
- else
- {
- ScTransferObj* pOwnClip = ScTransferObj::GetOwnClipboard( pWin );
- ScDocument* pDoc = NULL;
- if ( pOwnClip )
- pDoc = pOwnClip->GetDocument();
- pTabViewShell->PasteFromClip( nFlags, pDoc,
- nFunction, bSkipEmpty, bTranspose, bAsLink,
- eMoveMode, IDF_NONE, TRUE );
- pTabViewShell->CellContentChanged();
- }
- }
- }
-
-}
-
-bool
-org::openoffice::isRangeShortCut( const ::rtl::OUString& sParam )
-{
- // for a ShortCutRange param, I'd expect the first letter to be
- //[A-Z] and the last letter to be a digit 0-9 e.g A10, [A1:A10] etc.
- ::rtl::OString sStr = rtl::OUStringToOString( sParam,
- RTL_TEXTENCODING_UTF8 );
- const sal_Char* pFirst = (const sal_Char*)sStr;
- const sal_Char* pLast = pFirst + ( sStr.getLength() - 1 );
- if ( (( *pFirst >= 'A' && *pFirst <= 'Z' ) || ( *pFirst >= 'a' && *pFirst <= 'Z' ) ) )
- if ( ( *pLast >= '0' ) && ( *pLast <= '9' ) )
- return true;
-
- return false;
-}
-
- uno::Reference< frame::XModel >
-org::openoffice::getCurrentDocument() throw (uno::RuntimeException)
-{
- uno::Reference< frame::XModel > xModel;
- SbxObject* pBasic = reinterpret_cast< SbxObject* > ( SFX_APP()->GetBasic() );
- SbxObject* basicChosen = pBasic ;
- if ( basicChosen == NULL)
- {
- OSL_TRACE("getModelFromBasic() StarBASIC* is NULL" );
- return xModel;
- }
- SbxObject* p = pBasic;
- SbxObject* pParent = p->GetParent();
- SbxObject* pParentParent = pParent ? pParent->GetParent() : NULL;
-
- if( pParentParent )
- {
- basicChosen = pParentParent;
- }
- else if( pParent )
- {
- basicChosen = pParent;
- }
-
-
- uno::Any aModel;
- SbxVariable *pCompVar = basicChosen->Find( UniString(RTL_CONSTASCII_USTRINGPARAM("ThisComponent")), SbxCLASS_OBJECT );
-
- if ( pCompVar )
- {
- aModel = sbxToUnoValue( pCompVar );
- if ( sal_False == ( aModel >>= xModel ) ||
- !xModel.is() )
- {
- OSL_TRACE("Failed to extract model from thisComponent ");
- return xModel;
- }
- else
- {
- OSL_TRACE("Have model ThisComponent points to url %s",
- ::rtl::OUStringToOString( xModel->getURL(),
- RTL_TEXTENCODING_ASCII_US ).pData->buffer );
- }
- }
- else
- {
- OSL_TRACE("Failed to get ThisComponent");
- }
- return xModel;
-}
-
-ScTabViewShell*
-org::openoffice::getCurrentBestViewShell()
-{
- uno::Reference< frame::XModel > xModel = getCurrentDocument();
- ScModelObj* pModel = static_cast< ScModelObj* >( xModel.get() );
- if ( pModel )
- {
- ScDocShell* pDocShell = (ScDocShell*)pModel->GetEmbeddedObject();
- if ( pDocShell )
- return pDocShell->GetBestViewShell();
- }
-
- return NULL;
-}
-
-SfxViewFrame*
-org::openoffice::getCurrentViewFrame()
-{
- ScTabViewShell* pViewShell = getCurrentBestViewShell();
- if ( pViewShell )
- return pViewShell->GetViewFrame();
- return NULL;
-}
-
diff --git a/scratch/sc-vba/vbahelper.hxx b/scratch/sc-vba/vbahelper.hxx
deleted file mode 100644
index 9524af520..000000000
--- a/scratch/sc-vba/vbahelper.hxx
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef SC_VBA_HELPER_HXX
-#define SC_VBA_HELPER_HXX
-
-#include <com/sun/star/frame/XModel.hpp>
-#include <docsh.hxx>
-
-#define css com::sun::star
-#define oo org::openoffice
-namespace org
-{
- namespace openoffice
- {
- void dispatchRequests (css::uno::Reference< css::frame::XModel>& xModel,rtl::OUString & aUrl) ;
- void dispatchRequests (css::uno::Reference< css::frame::XModel>& xModel,rtl::OUString & aUrl, css::uno::Sequence< css::beans::PropertyValue >& sProps ) ;
- void implnCopy();
- void implnPaste();
- void implnCut();
- void implnPasteSpecial(sal_uInt16 nFlags,sal_uInt16 nFunction,sal_Bool bSkipEmpty, sal_Bool bTranspose);
- bool isRangeShortCut( const ::rtl::OUString& sParam );
- css::uno::Reference< css::frame::XModel >
- getCurrentDocument() throw (css::uno::RuntimeException);
- ScTabViewShell* getCurrentBestViewShell();
- SfxViewFrame* getCurrentViewFrame();
- }
-}
-
-#ifdef DEBUG
-# define SC_VBA_FIXME(a) OSL_TRACE( a )
-# define SC_VBA_STUB() SC_VBA_FIXME(( "%s - stubbed\n", __FUNCTION__ ))
-#else
-# define SC_VBA_FIXME(a)
-# define SC_VBA_STUB()
-#endif
-
-#endif
diff --git a/scratch/sc-vba/vbainterior.cxx b/scratch/sc-vba/vbainterior.cxx
deleted file mode 100644
index ab0f9a3ff..000000000
--- a/scratch/sc-vba/vbainterior.cxx
+++ /dev/null
@@ -1,125 +0,0 @@
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/table/XCell.hpp>
-#include <com/sun/star/table/XColumnRowRange.hpp>
-#include <com/sun/star/beans/XIntrospection.hpp>
-#include <com/sun/star/beans/XIntrospectionAccess.hpp>
-#include <com/sun/star/reflection/XIdlMethod.hpp>
-#include <com/sun/star/beans/MethodConcept.hpp>
-#include <comphelper/processfactory.hxx>
-#include <cppuhelper/queryinterface.hxx>
-
-#include "vbainterior.hxx"
-using namespace ::com::sun::star;
-using namespace ::org::openoffice;
-
-ScVbaInterior::ScVbaInterior( uno::Reference< uno::XComponentContext >& xContext, uno::Reference< css::table::XCellRange > range) throw ( lang::IllegalArgumentException) : m_xContext(xContext),mxRange(range)
-{
- if ( !xContext.is() )
- throw lang::IllegalArgumentException( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "context not set" ) ), uno::Reference< uno::XInterface >(), 1 );
- if ( !mxRange.is() )
- throw lang::IllegalArgumentException( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "range not set") ), uno::Reference< uno::XInterface >(), 2 );
-}
-
-uno::Any
-ScVbaInterior::getColor() throw (uno::RuntimeException)
-{
- uno::Any aAny;
- uno::Reference< table::XCell > xCell = mxRange->getCellByPosition(0,0 );
- uno::Reference< beans::XPropertySet > xProps(xCell, uno::UNO_QUERY_THROW );
- aAny = xProps->getPropertyValue(rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CellBackColor" ) ));
- return aAny;
-}
-
-void
-ScVbaInterior::setColor( const uno::Any& _color ) throw (uno::RuntimeException)
-{
- uno::Reference< beans::XPropertySet > xProps(mxRange, uno::UNO_QUERY_THROW );
- xProps->setPropertyValue(rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CellBackColor" ) ), _color);
-}
-
-uno::Reference< beans::XIntrospectionAccess >
-ScVbaInterior::getIntrospection(void) throw(uno::RuntimeException)
-{
- return uno::Reference<beans::XIntrospectionAccess>();
-}
-
-uno::Any
-ScVbaInterior::invoke(const rtl::OUString& FunctionName, const uno::Sequence< uno::Any >& Params, uno::Sequence< sal_Int16 >& OutParamIndex, uno::Sequence< uno::Any >& OutParam) throw( lang::IllegalArgumentException, script::CannotConvertException, reflection::InvocationTargetException, uno::RuntimeException)
-{
- uno::Any aAny;
- return aAny;
-}
-
-void
-ScVbaInterior::setValue(const rtl::OUString& PropertyName, const uno::Any& Value) throw(beans::UnknownPropertyException, script::CannotConvertException, reflection::InvocationTargetException, uno::RuntimeException)
-{
- uno::Reference< beans::XPropertySet > xProps(mxRange, uno::UNO_QUERY_THROW );
- if (PropertyName.equalsAscii("RotateAngle"))
- {
- xProps->setPropertyValue(PropertyName,Value);
- }
- else if (PropertyName.equalsAscii("CellStyle"))
- {
- xProps->setPropertyValue(PropertyName,Value);
- }
- else if (PropertyName.equalsAscii("ColorIndex"))
- {
- //FIXME:Need to add constants as parameter
- xProps->setPropertyValue(rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CellBackColor" ) ),Value);
- }
- else if (PropertyName.equalsAscii("Color"))
- {
- setColor( Value );
- }
- else
- {
- rtl::OUString msg = rtl::OUString::createFromAscii("No property named ");
- msg += PropertyName;
- throw beans::UnknownPropertyException( msg, uno::Reference< uno::XInterface >() );
- }
-}
-
-uno::Any
-ScVbaInterior::getValue(const rtl::OUString& PropertyName) throw(beans::UnknownPropertyException, uno::RuntimeException)
-{
- uno::Any aAny;
- uno::Reference< beans::XPropertySet > xProps(mxRange, uno::UNO_QUERY_THROW );
- if (PropertyName.equalsAscii("ColorIndex"))
- {
- aAny = xProps->getPropertyValue(rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CellBackColor" ) ));
- }
- else if (PropertyName.equalsAscii("Color"))
- {
- aAny = getColor();
- }
- else
- {
- rtl::OUString msg = rtl::OUString::createFromAscii("No property named ");
- msg += PropertyName;
- throw beans::UnknownPropertyException( msg, uno::Reference< uno::XInterface >() );
-
- }
- return aAny;
-}
-
-sal_Bool
-ScVbaInterior::hasMethod(const rtl::OUString& Name) throw(uno::RuntimeException)
-{
- return false;
-}
-
-sal_Bool
-ScVbaInterior::hasProperty(const rtl::OUString& Name) throw(uno::RuntimeException)
-{
-
- if (Name.equalsAscii("RotateAngle"))
- return true;
- if (Name.equalsAscii("CellStyle"))
- return true;
- if (Name.equalsAscii("ColorIndex"))
- return true;
- if (Name.equalsAscii("Color"))
- return true;
-
- return false;
-}
diff --git a/scratch/sc-vba/vbainterior.hxx b/scratch/sc-vba/vbainterior.hxx
deleted file mode 100644
index c476c2b2b..000000000
--- a/scratch/sc-vba/vbainterior.hxx
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef SC_VBA_INTERIOR_HXX
-#define SC_VBA_INTERIOR_HXX
-
-#include <cppuhelper/implbase1.hxx>
-#include <cppuhelper/implbase2.hxx>
-#include <org/openoffice/vba/XInterior.hpp>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include "vbarange.hxx"
-
-#include <com/sun/star/script/XInvocation.hpp>
-
-
-typedef ::cppu::WeakImplHelper2< oo::vba::XInterior,css::script::XInvocation > ScVbaInterior_BASE;
-
-class ScVbaInterior : public ScVbaInterior_BASE
-{
- css::uno::Reference< css::table::XCellRange > mxRange;
- css::uno::Reference< css::uno::XComponentContext > m_xContext;
- css::uno::Reference< css::beans::XIntrospectionAccess> m_xAcc;
-
-public:
- ScVbaInterior( css::uno::Reference< css::uno::XComponentContext >& xContext,
- css::uno::Reference< css::table::XCellRange > range) throw ( css::lang::IllegalArgumentException);
-
- virtual ~ScVbaInterior(){}
-
- virtual css::uno::Any SAL_CALL getColor() throw (css::uno::RuntimeException) ;
- virtual void SAL_CALL setColor( const css::uno::Any& _color ) throw (css::uno::RuntimeException) ;
-
- virtual css::uno::Reference< css::beans::XIntrospectionAccess > SAL_CALL getIntrospection(void) throw(css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL invoke(const rtl::OUString& FunctionName, const css::uno::Sequence< css::uno::Any >& Params, css::uno::Sequence< sal_Int16 >& OutParamIndex, css::uno::Sequence< css::uno::Any >& OutParam) throw(css::lang::IllegalArgumentException, css::script::CannotConvertException, css::reflection::InvocationTargetException, css::uno::RuntimeException);
- virtual void SAL_CALL setValue(const rtl::OUString& PropertyName, const css::uno::Any& Value) throw(css::beans::UnknownPropertyException, css::script::CannotConvertException, css::reflection::InvocationTargetException, css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL getValue(const rtl::OUString& PropertyName) throw(css::beans::UnknownPropertyException, css::uno::RuntimeException);
- virtual sal_Bool SAL_CALL hasMethod(const rtl::OUString& Name) throw(css::uno::RuntimeException);
- virtual sal_Bool SAL_CALL hasProperty(const rtl::OUString& Name) throw(css::uno::RuntimeException);
-
-};
-#endif
-
diff --git a/scratch/sc-vba/vbaobj.map b/scratch/sc-vba/vbaobj.map
deleted file mode 100644
index ccafed5e9..000000000
--- a/scratch/sc-vba/vbaobj.map
+++ /dev/null
@@ -1,10 +0,0 @@
-OOO_1.1 {
- global:
- component_getDescriptionFunc;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/scratch/sc-vba/vbaobj.xml b/scratch/sc-vba/vbaobj.xml
deleted file mode 100644
index 31036f9c2..000000000
--- a/scratch/sc-vba/vbaobj.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd">
-<module-description xmlns:xlink="http://www.w3.org/1999/xlink">
-
- <module-name>vbaobj</module-name>
-
- <component-description>
- <author>Noel Power </author>
- <name>org.openoffice.vba.Globals</name>
- <description>vba object model component</description>
- <loader-name>com.sun.star.loader.SharedLibrary</loader-name>
- <language>c++</language>
- <status value="drafts"/>
- <supported-service>org.openoffice.vba.Globals</supported-service>
- <type>com.sun.star.uno.XComponentContext</type>
- </component-description>
-
- <project-build-dependency>cppuhelper</project-build-dependency>
- <project-build-dependency>cppu</project-build-dependency>
- <project-build-dependency>sal</project-build-dependency>
-
- <runtime-module-dependency>cppuhelper3$(COM)</runtime-module-dependency>
- <runtime-module-dependency>cppu3</runtime-module-dependency>
- <runtime-module-dependency>sal3</runtime-module-dependency>
-
-</module-description>
diff --git a/scratch/sc-vba/vbaoutline.cxx b/scratch/sc-vba/vbaoutline.cxx
deleted file mode 100644
index c8a197fa5..000000000
--- a/scratch/sc-vba/vbaoutline.cxx
+++ /dev/null
@@ -1,20 +0,0 @@
-#include "vbaoutline.hxx"
-using namespace ::com::sun::star;
-using namespace ::org::openoffice;
-
-void
-ScVbaOutline::ShowLevels( const uno::Any& RowLevels, const uno::Any& ColumnLevels ) throw (uno::RuntimeException)
-{
- sal_Int16 nLevel = 0;
- if (mxOutline.is())
- {
- if (RowLevels >>= nLevel)
- {
- mxOutline->showLevel(nLevel, table::TableOrientation_ROWS);
- }
- if (ColumnLevels >>= nLevel)
- {
- mxOutline->showLevel(nLevel,table::TableOrientation_COLUMNS);
- }
- }
-}
diff --git a/scratch/sc-vba/vbaoutline.hxx b/scratch/sc-vba/vbaoutline.hxx
deleted file mode 100644
index df6bc01ff..000000000
--- a/scratch/sc-vba/vbaoutline.hxx
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef SC_VBA_OUTLINE_HXX
-#define SC_VBA_OUTLINE_HXX
-
-#include <com/sun/star/sheet/XSheetOutline.hpp>
-#include <cppuhelper/implbase1.hxx>
-#include <org/openoffice/vba/XOutline.hpp>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include "vbahelper.hxx"
-
-typedef ::cppu::WeakImplHelper1< oo::vba::XOutline > ScVbaOutline_BASE;
-
-class ScVbaOutline : public ScVbaOutline_BASE
-{
- css::uno::Reference< css::sheet::XSheetOutline > mxOutline;
- css::uno::Reference< css::uno::XComponentContext > m_xContext;
-public:
- ScVbaOutline( css::uno::Reference< css::uno::XComponentContext >& xContext,
- css::uno::Reference<css::sheet::XSheetOutline> outline):m_xContext(xContext),mxOutline(outline)
- {}
- virtual ~ScVbaOutline(){}
-
- virtual void SAL_CALL ShowLevels( const css::uno::Any& RowLevels, const css::uno::Any& ColumnLevels ) throw (css::uno::RuntimeException) ;
-};
-#endif
diff --git a/scratch/sc-vba/vbapivotcache.cxx b/scratch/sc-vba/vbapivotcache.cxx
deleted file mode 100644
index 71451b8cf..000000000
--- a/scratch/sc-vba/vbapivotcache.cxx
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "vbapivotcache.hxx"
-
-
-using namespace ::com::sun::star;
-using namespace ::org::openoffice;
-
-ScVbaPivotCache::ScVbaPivotCache( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< sheet::XDataPilotTable >& xTable ) : m_xContext( xContext ), m_xTable( xTable )
-{
-}
-
-void SAL_CALL
-ScVbaPivotCache::Refresh() throw (css::uno::RuntimeException)
-{
- m_xTable->refresh();
-}
-
diff --git a/scratch/sc-vba/vbapivotcache.hxx b/scratch/sc-vba/vbapivotcache.hxx
deleted file mode 100644
index bdbcd7789..000000000
--- a/scratch/sc-vba/vbapivotcache.hxx
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef SC_VBA_PIVOTCACHE_HXX
-#define SC_VBA_PIVOTCACHE_HXX
-#include <cppuhelper/implbase1.hxx>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <com/sun/star/sheet/XDataPilotTable.hpp>
-
-#include <org/openoffice/vba/XPivotCache.hpp>
-#include "vbahelper.hxx"
-
-typedef ::cppu::WeakImplHelper1<oo::vba::XPivotCache > PivotCacheImpl_BASE;
-
-class ScVbaPivotCache : public PivotCacheImpl_BASE
-{
- css::uno::Reference< css::uno::XComponentContext > m_xContext;
- css::uno::Reference< css::sheet::XDataPilotTable > m_xTable;
-
-public:
- ScVbaPivotCache( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::sheet::XDataPilotTable >& xTable );
- virtual void SAL_CALL Refresh() throw (css::uno::RuntimeException);
-};
-
-#endif //SC_VBA_PIVOTCACHE_HXX
diff --git a/scratch/sc-vba/vbapivottable.cxx b/scratch/sc-vba/vbapivottable.cxx
deleted file mode 100644
index 08d22a6ab..000000000
--- a/scratch/sc-vba/vbapivottable.cxx
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "vbapivottable.hxx"
-#include "vbapivotcache.hxx"
-
-
-using namespace ::com::sun::star;
-using namespace ::org::openoffice;
-
-ScVbaPivotTable::ScVbaPivotTable( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< sheet::XDataPilotTable >& xTable ) : m_xContext( xContext ), m_xTable( xTable )
-{
-}
-
-uno::Reference< vba::XPivotCache >
-ScVbaPivotTable::PivotCache() throw (uno::RuntimeException)
-{
- return new ScVbaPivotCache( m_xContext, m_xTable );
-}
diff --git a/scratch/sc-vba/vbapivottable.hxx b/scratch/sc-vba/vbapivottable.hxx
deleted file mode 100644
index 3e572eba5..000000000
--- a/scratch/sc-vba/vbapivottable.hxx
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef SC_VBA_PIVOTTABLE_HXX
-#define SC_VBA_PIVOTTABLE_HXX
-#include <cppuhelper/implbase1.hxx>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <com/sun/star/sheet/XDataPilotTable.hpp>
-#include <org/openoffice/vba/XPivotTable.hpp>
-#include "vbahelper.hxx"
-
-typedef ::cppu::WeakImplHelper1<oo::vba::XPivotTable > PivotTableImpl_BASE;
-
-class ScVbaPivotTable : public PivotTableImpl_BASE
-{
- css::uno::Reference< css::sheet::XDataPilotTable > m_xTable;
- css::uno::Reference< css::uno::XComponentContext > m_xContext;
-public:
- ScVbaPivotTable( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::sheet::XDataPilotTable >& xTable );
- virtual css::uno::Reference< oo::vba::XPivotCache > SAL_CALL PivotCache( ) throw (css::uno::RuntimeException);
-};
-
-#endif //SC_VBA_PIVOTTABLE_HXX
diff --git a/scratch/sc-vba/vbapivottables.cxx b/scratch/sc-vba/vbapivottables.cxx
deleted file mode 100644
index 01bf07f47..000000000
--- a/scratch/sc-vba/vbapivottables.cxx
+++ /dev/null
@@ -1,49 +0,0 @@
-#include "vbapivottables.hxx"
-#include "vbapivottable.hxx"
-#include <com/sun/star/sheet/XDataPilotTable.hpp>
-#include <org/openoffice/vba/XPivotTable.hpp>
-
-
-using namespace ::com::sun::star;
-using namespace ::org::openoffice;
-
-uno::Any DataPilotToPivotTable( const uno::Any& aSource, uno::Reference< uno::XComponentContext > & xContext )
-{
- uno::Reference< sheet::XDataPilotTable > xTable( aSource, uno::UNO_QUERY_THROW );
- return makeAny( uno::Reference< vba::XPivotTable > ( new ScVbaPivotTable( xContext, xTable ) ) );
-}
-
-class PivotTableEnumeration : public EnumerationHelperImpl
-{
-public:
- PivotTableEnumeration( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XEnumeration >& xEnumeration ) throw ( uno::RuntimeException ) : EnumerationHelperImpl( xContext, xEnumeration ) {}
-
- virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
- {
- return DataPilotToPivotTable( m_xEnumeration->nextElement(), m_xContext );
- }
-
-};
-
-ScVbaPivotTables::ScVbaPivotTables( const uno::Reference< uno::XComponentContext > & xContext, const uno::Reference< container::XIndexAccess >& xIndexAccess ): ScVbaPivotTables_BASE( xContext, xIndexAccess )
-{
-}
-
-uno::Reference< container::XEnumeration >
-ScVbaPivotTables::createEnumeration() throw (uno::RuntimeException)
-{
- uno::Reference< container::XEnumerationAccess > xEnumAccess( m_xIndexAccess, uno::UNO_QUERY_THROW );
- return new PivotTableEnumeration( m_xContext, xEnumAccess->createEnumeration() );
-}
-
-uno::Any
-ScVbaPivotTables::createCollectionObject( const css::uno::Any& aSource )
-{
- return DataPilotToPivotTable( aSource, m_xContext );
-}
-
-uno::Type
-ScVbaPivotTables::getElementType() throw (uno::RuntimeException)
-{
- return vba::XPivotTables::static_type(0);
-}
diff --git a/scratch/sc-vba/vbapivottables.hxx b/scratch/sc-vba/vbapivottables.hxx
deleted file mode 100644
index e2a93defd..000000000
--- a/scratch/sc-vba/vbapivottables.hxx
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef SC_VBA_PIVOTTABLES_HXX
-#define SC_VBA_PIVOTTABLES_HXX
-
-#include <cppuhelper/implbase1.hxx>
-
-#include <org/openoffice/vba/XPivotTables.hpp>
-#include <com/sun/star/container/XEnumerationAccess.hpp>
-#include <com/sun/star/uno/XComponentContext.hpp>
-
-#include "vbahelper.hxx"
-#include "vbacollectionimpl.hxx"
-
-
-typedef ::cppu::ImplInheritanceHelper1< ScVbaCollectionBaseImpl, oo::vba::XPivotTables > ScVbaPivotTables_BASE;
-
-class ScVbaPivotTables : public ScVbaPivotTables_BASE
-{
-protected:
-public:
- ScVbaPivotTables( const css::uno::Reference< css::uno::XComponentContext > & xContext, const css::uno::Reference< css::container::XIndexAccess >& xIndexAccess );
- virtual ~ScVbaPivotTables() {}
-
- // XEnumerationAccess
- virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException);
- virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException);
-
-
- // XPivotTables
-
- // ScVbaCollectionBaseImpl
- virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource );
-
-};
-
-#endif //SC_VBA_PIVOTTABLES
diff --git a/scratch/sc-vba/vbarange.cxx b/scratch/sc-vba/vbarange.cxx
deleted file mode 100644
index 8c6f080d4..000000000
--- a/scratch/sc-vba/vbarange.cxx
+++ /dev/null
@@ -1,1028 +0,0 @@
-#include <comphelper/processfactory.hxx>
-#include <sfx2/objsh.hxx>
-
-#include <com/sun/star/sheet/XSheetOperation.hpp>
-#include <com/sun/star/sheet/CellFlags.hpp>
-#include <com/sun/star/table/XColumnRowRange.hpp>
-#include <com/sun/star/sheet/XCellAddressable.hpp>
-#include <com/sun/star/table/CellContentType.hpp>
-#include <com/sun/star/sheet/XCellSeries.hpp>
-#include <com/sun/star/text/XTextRange.hpp>
-#include <com/sun/star/sheet/XCellRangeAddressable.hpp>
-#include <com/sun/star/table/CellRangeAddress.hpp>
-#include <com/sun/star/sheet/XSheetCellRange.hpp>
-#include <com/sun/star/sheet/XSpreadsheet.hpp>
-#include <com/sun/star/sheet/XSheetCellCursor.hpp>
-#include <com/sun/star/sheet/XArrayFormulaRange.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/sheet/XFunctionAccess.hpp>
-#include <com/sun/star/frame/XModel.hpp>
-#include <com/sun/star/view/XSelectionSupplier.hpp>
-#include <com/sun/star/table/XCellCursor.hpp>
-#include <com/sun/star/table/XTableRows.hpp>
-#include <com/sun/star/table/XTableColumns.hpp>
-#include <com/sun/star/util/XMergeable.hpp>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <com/sun/star/lang/XMultiComponentFactory.hpp>
-#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
-#include <com/sun/star/util/XNumberFormatsSupplier.hpp>
-#include <com/sun/star/util/XNumberFormats.hpp>
-#include <com/sun/star/util/XNumberFormatTypes.hpp>
-#include <com/sun/star/sheet/XCellRangeMovement.hpp>
-#include <com/sun/star/sheet/XCellRangeData.hpp>
-
-#include <org/openoffice/vba/xlPasteSpecialOperation.hpp>
-#include <org/openoffice/vba/xlPasteType.hpp>
-#include <org/openoffice/vba/Excel/Constants.hpp>
-#include <org/openoffice/vba/Excel/XlFindLookIn.hpp>
-
-#include "vbarange.hxx"
-#include "vbafont.hxx"
-#include "vbainterior.hxx"
-#include "vbaarraywrapper.hxx"
-
-#include <comphelper/anytostring.hxx>
-
-#include "global.hxx"
-
-using namespace ::org::openoffice;
-using namespace ::com::sun::star;
-
-const sal_Int32 RANGE_PROPERTY_ID_DFLT=1;
-// name is not defineable in IDL so no chance of a false detection of the
-// another property/method of the same name
-const ::rtl::OUString RANGE_PROPERTY_DFLT( RTL_CONSTASCII_USTRINGPARAM( "_$DefaultProp" ) );
-const ::rtl::OUString ISVISIBLE( RTL_CONSTASCII_USTRINGPARAM( "IsVisible"));
-
-class CellValueSetter : public ArrayVisitor
-{
-protected:
- uno::Any maValue;
- uno::TypeClass mTypeClass;
- bool processValue( const uno::Any& aValue, const uno::Reference< table::XCell >& xCell );
-public:
- CellValueSetter( const uno::Any& aValue );
- virtual void visitNode( sal_Int32 x, sal_Int32 y, const uno::Reference< table::XCell >& xCell );
-
-};
-
-CellValueSetter::CellValueSetter( const uno::Any& aValue ): maValue( aValue ), mTypeClass( aValue.getValueTypeClass() ) {}
-
-void
-CellValueSetter::visitNode( sal_Int32 i, sal_Int32 j, const uno::Reference< table::XCell >& xCell )
-{
- bool result = processValue( maValue, xCell );
-}
-
-bool
-CellValueSetter::processValue( const uno::Any& aValue, const uno::Reference< table::XCell >& xCell )
-{
- bool isExtracted = false;
- switch ( mTypeClass )
- {
- case uno::TypeClass_BOOLEAN:
- {
- static ::rtl::OUString sTrue( RTL_CONSTASCII_USTRINGPARAM("=TRUE()"));
- static ::rtl::OUString sFalse( RTL_CONSTASCII_USTRINGPARAM("=FALSE()"));
- sal_Bool bState;
- if ( aValue >>= bState )
- {
- if ( bState )
- xCell->setFormula( sTrue );
- else
- xCell->setFormula( sFalse );
- }
- else
- isExtracted = false;
- break;
- }
- case uno::TypeClass_STRING:
- {
- rtl::OUString aString;
- if ( aValue >>= aString )
- {
- uno::Reference< text::XTextRange > xTextRange( xCell, uno::UNO_QUERY_THROW );
- xTextRange->setString( aString );
- }
- else
- isExtracted = false;
- break;
- }
- default:
- {
- double nDouble;
- if ( aValue >>= nDouble )
- xCell->setValue( nDouble );
- else
- isExtracted = false;
- break;
- }
- }
- return isExtracted;
-
-}
-
-class CellValueGetter : public ArrayVisitor
-{
-protected:
- uno::Any maValue;
- uno::TypeClass mTypeClass;
- virtual void processValue( sal_Int32 x, sal_Int32 y, const uno::Any& aValue );
-public:
- CellValueGetter() {}
- virtual void visitNode( sal_Int32 x, sal_Int32 y, const uno::Reference< table::XCell >& xCell );
- const uno::Any& getValue() const { return maValue; }
-
-};
-
-void
-CellValueGetter::processValue( sal_Int32 x, sal_Int32 y, const uno::Any& aValue )
-{
- maValue = aValue;
-}
-void CellValueGetter::visitNode( sal_Int32 x, sal_Int32 y, const uno::Reference< table::XCell >& xCell )
-{
- uno::Any aValue;
- table::CellContentType eType = xCell->getType();
- if( eType == table::CellContentType_VALUE || eType == table::CellContentType_FORMULA )
- {
- if ( eType == table::CellContentType_FORMULA )
- {
- rtl::OUString sFormula = xCell->getFormula();
- if ( sFormula.equals( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("=TRUE()") ) ) )
- aValue <<= sal_True;
- else if ( sFormula.equals( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("=FALSE()") ) ) )
- aValue <<= sal_False;
-
- }
- aValue <<= xCell->getValue();
- }
- if( eType == table::CellContentType_TEXT )
- {
- uno::Reference< text::XTextRange > xTextRange(xCell, ::uno::UNO_QUERY_THROW);
- aValue <<= xTextRange->getString();
- }
- processValue( x,y,aValue );
-}
-
-class ArrayValueGetter : public CellValueGetter
-{
-protected:
- virtual void processValue( sal_Int32 x, sal_Int32 y, const uno::Any& aValue )
- {
- uno::Sequence< uno::Sequence< uno::Any > >& aMatrix = *( uno::Sequence< uno::Sequence< uno::Any > >* )( maValue.getValue() );
- aMatrix[x][y] = aValue;
- }
-
-public:
- ArrayValueGetter(sal_Int32 nRowCount, sal_Int32 nColCount ):CellValueGetter()
- {
- uno::Sequence< uno::Sequence< uno::Any > > aMatrix;
- aMatrix.realloc( nRowCount );
- for ( sal_Int32 index = 0; index < nRowCount; ++index )
- aMatrix[index].realloc( nColCount );
- maValue <<= aMatrix;
- }
-};
-
-class ArrayValueSetter : public CellValueSetter
-{
- uno::Sequence< uno::Sequence< uno::Any > > aMatrix;
-public:
- ArrayValueSetter( const uno::Any& aValue ) : CellValueSetter( aValue )
- {
- aValue >>= aMatrix;
- }
- virtual void visitNode( sal_Int32 x, sal_Int32 y, const uno::Reference< table::XCell >& xCell )
- {
- processValue( aMatrix[ x ][ y ], xCell );
- }
-};
-
-class RangeHelper
-{
- uno::Reference< table::XCellRange > m_xCellRange;
-
-public:
- RangeHelper( const uno::Reference< table::XCellRange >& xCellRange ) throw (uno::RuntimeException) : m_xCellRange( xCellRange )
- {
- if ( !m_xCellRange.is() )
- throw uno::RuntimeException();
- }
- RangeHelper( const uno::Any aCellRange ) throw (uno::RuntimeException)
- {
- m_xCellRange.set( aCellRange, uno::UNO_QUERY_THROW );
- }
- uno::Reference< sheet::XSheetCellRange > getSheetCellRange() throw (uno::RuntimeException)
- {
- return uno::Reference< sheet::XSheetCellRange >(m_xCellRange, uno::UNO_QUERY_THROW);
- }
- uno::Reference< sheet::XSpreadsheet > getSpreadSheet() throw (uno::RuntimeException)
- {
- return getSheetCellRange()->getSpreadsheet();
- }
-
- uno::Reference< table::XCellRange > getCellRangeFromSheet() throw (uno::RuntimeException)
- {
- return uno::Reference< table::XCellRange >(getSpreadSheet(), uno::UNO_QUERY_THROW );
- }
-
- uno::Reference< sheet::XCellRangeAddressable > getCellRangeAddressable() throw (uno::RuntimeException)
- {
- return uno::Reference< sheet::XCellRangeAddressable >(m_xCellRange, ::uno::UNO_QUERY_THROW);
-
- }
-
- uno::Reference< sheet::XSheetCellCursor > getSheetCellCursor() throw ( uno::RuntimeException )
- {
- return uno::Reference< sheet::XSheetCellCursor >( getSpreadSheet()->createCursorByRange( getSheetCellRange() ), uno::UNO_QUERY_THROW );
- }
-
- static uno::Reference< vba::XRange > createRangeFromRange( const uno::Reference<uno::XComponentContext >& xContext, const uno::Reference< table::XCellRange >& xRange, const uno::Reference< sheet::XCellRangeAddressable >& xCellRangeAddressable, sal_Int32 nStartColOffset = 0, sal_Int32 nStartRowOffset = 0,
- sal_Int32 nEndColOffset = 0, sal_Int32 nEndRowOffset = 0 )
- {
- return uno::Reference< vba::XRange >( new ScVbaRange( xContext,
- xRange->getCellRangeByPosition(
- xCellRangeAddressable->getRangeAddress().StartColumn + nStartColOffset,
- xCellRangeAddressable->getRangeAddress().StartRow + nStartRowOffset,
- xCellRangeAddressable->getRangeAddress().EndColumn + nEndColOffset,
- xCellRangeAddressable->getRangeAddress().EndRow + nEndRowOffset ) ) );
- }
-
-};
-
-ScVbaRange::ScVbaRange( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< table::XCellRange >& xRange, sal_Bool bIsRows, sal_Bool bIsColumns ) throw( lang::IllegalArgumentException )
-:OPropertyContainer(GetBroadcastHelper())
-,mxRange( xRange ),
- m_xContext(xContext),
- mbIsRows( bIsRows ),
- mbIsColumns( bIsColumns )
-{
- if ( !xContext.is() )
- throw lang::IllegalArgumentException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "context is not set " ) ), uno::Reference< uno::XInterface >() , 1 );
- if ( !xRange.is() )
- throw lang::IllegalArgumentException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "range is not set " ) ), uno::Reference< uno::XInterface >() , 1 );
- msDftPropName = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Value" ) );
- registerProperty( RANGE_PROPERTY_DFLT, RANGE_PROPERTY_ID_DFLT,
-beans::PropertyAttribute::TRANSIENT | beans::PropertyAttribute::BOUND, &msDftPropName, ::getCppuType( &msDftPropName ) );
-
-}
-
-uno::Reference< script::XTypeConverter >
-ScVbaRange::getTypeConverter() throw (uno::RuntimeException)
-{
- static uno::Reference< script::XTypeConverter > xTypeConv( m_xContext->getServiceManager()->createInstanceWithContext( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.script.Converter") ), m_xContext ), uno::UNO_QUERY_THROW );
- return xTypeConv;
-}
-
-void
-ScVbaRange::visitArray( ArrayVisitor& visitor )
-{
- uno::Reference< table::XColumnRowRange > xColumnRowRange(mxRange, uno::UNO_QUERY_THROW );
- sal_Int32 nRowCount = xColumnRowRange->getRows()->getCount();
- sal_Int32 nColCount = xColumnRowRange->getColumns()->getCount();
- for ( sal_Int32 i=0; i<nRowCount; ++i )
- {
- for ( sal_Int32 j=0; j<nColCount; ++j )
- {
- uno::Reference< table::XCell > xCell( mxRange->getCellByPosition( j, i ), uno::UNO_QUERY_THROW );
-
- visitor.visitNode( i, j, xCell );
- }
- }
-}
-
-
-
-
-uno::Any SAL_CALL
-ScVbaRange::getValue() throw (uno::RuntimeException)
-{
- uno::Reference< table::XColumnRowRange > xColumnRowRange(mxRange, uno::UNO_QUERY_THROW );
- sal_Int32 nRowCount = xColumnRowRange->getRows()->getCount();
- sal_Int32 nColCount = xColumnRowRange->getColumns()->getCount();
- // single cell range
- if ( nRowCount == 1 && nColCount == 1 )
- {
- CellValueGetter getter;
- visitArray( getter );
- return getter.getValue();
- }
- // multi cell range ( return array )
- ArrayValueGetter getter( nRowCount, nColCount );
- visitArray( getter );
- return makeAny( uno::Reference< vba::XArrayWrapper >( new ScArrayWrapper( getter.getValue(), sal_False ) ) );
-
-}
-
-void SAL_CALL
-ScVbaRange::setValue( const uno::Any &aValue ) throw (uno::RuntimeException)
-{
- uno::TypeClass aClass = aValue.getValueTypeClass();
- if ( aClass == uno::TypeClass_SEQUENCE )
- {
- uno::Reference< script::XTypeConverter > xConverter = getTypeConverter();
- uno::Any aConverted;
- try
- {
- aConverted = xConverter->convertTo( aValue, getCppuType((uno::Sequence< uno::Sequence< uno::Any > >*)0) );
- uno::Sequence< uno::Sequence< uno::Any > > aMatrix;
- if ( aConverted >>= aMatrix )
- {
- ArrayValueSetter setter( aConverted );
- visitArray( setter );
- }
- }
- catch ( uno::Exception& e )
- {
- OSL_TRACE("Bahhh, caught exception %s",
- rtl::OUStringToOString( e.Message,
- RTL_TEXTENCODING_UTF8 ).getStr() );
- }
- }
- else
- {
- CellValueSetter setter( aValue );
- visitArray( setter );
- }
-}
-
-void
-ScVbaRange::Clear() throw (uno::RuntimeException)
-{
- uno::Reference< sheet::XSheetOperation > xSheetOperation(mxRange, uno::UNO_QUERY_THROW);
- xSheetOperation->clearContents(sheet::CellFlags::VALUE | sheet::CellFlags::STRING |
- sheet::CellFlags::HARDATTR | sheet::CellFlags::FORMATTED | sheet::CellFlags::EDITATTR);
-}
-
-void
-ScVbaRange::ClearComments() throw (uno::RuntimeException)
-{
- uno::Reference< sheet::XSheetOperation > xSheetOperation(mxRange, uno::UNO_QUERY_THROW);
- //FIXME: STRING is not the correct type; May require special handling; clearNotes?
- xSheetOperation->clearContents(sheet::CellFlags::STRING);
-}
-
-void
-ScVbaRange::ClearContents() throw (uno::RuntimeException)
-{
- uno::Reference< sheet::XSheetOperation > xSheetOperation(mxRange, uno::UNO_QUERY_THROW);
- xSheetOperation->clearContents(sheet::CellFlags::VALUE | sheet::CellFlags::STRING );
-}
-
-void
-ScVbaRange::ClearFormats() throw (uno::RuntimeException)
-{
- uno::Reference< sheet::XSheetOperation > xSheetOperation(mxRange, uno::UNO_QUERY_THROW);
- //FIXME: need to check if we need to combine sheet::CellFlags::FORMATTED
- xSheetOperation->clearContents(sheet::CellFlags::HARDATTR | sheet::CellFlags::FORMATTED | sheet::CellFlags::EDITATTR);
-}
-
-::rtl::OUString
-ScVbaRange::getFormula() throw (::com::sun::star::uno::RuntimeException)
-{
- uno::Reference< table::XCell > xCell( mxRange->getCellByPosition( 0, 0 ), uno::UNO_QUERY_THROW );
- return xCell->getFormula();
-}
-
-void
-ScVbaRange::setFormula(const ::rtl::OUString &rFormula ) throw (uno::RuntimeException)
-{
- setValue( uno::makeAny( rFormula ) );
-}
-
-double
-ScVbaRange::getCount() throw (uno::RuntimeException)
-{
- double rowCount, colCount;
- uno::Reference< table::XColumnRowRange > xColumnRowRange(mxRange, uno::UNO_QUERY_THROW );
- rowCount = xColumnRowRange->getRows()->getCount();
- colCount = xColumnRowRange->getColumns()->getCount();
- if( IsRows() )
- return rowCount;
- if( IsColumns() )
- return colCount;
- return rowCount * colCount;
-}
-
-sal_Int32
-ScVbaRange::getRow() throw (uno::RuntimeException)
-{
- uno::Reference< sheet::XCellAddressable > xCellAddressable(mxRange->getCellByPosition(0, 0), uno::UNO_QUERY_THROW );
- return xCellAddressable->getCellAddress().Row + 1; // Zero value indexing
-}
-
-sal_Int32
-ScVbaRange::getColumn() throw (uno::RuntimeException)
-{
- uno::Reference< sheet::XCellAddressable > xCellAddressable(mxRange->getCellByPosition(0, 0), uno::UNO_QUERY_THROW );
- return xCellAddressable->getCellAddress().Column + 1; // Zero value indexing
-}
-
-sal_Bool
-ScVbaRange::HasFormula() throw (uno::RuntimeException)
-{
- uno::Reference< table::XCell > xCell( mxRange->getCellByPosition(0, 0), uno::UNO_QUERY_THROW );
- return( xCell->getType() == table::CellContentType_FORMULA );
-}
-void
-ScVbaRange::fillSeries( sheet::FillDirection nFillDirection, sheet::FillMode nFillMode, sheet::FillDateMode nFillDateMode, double fStep, double fEndValue ) throw( uno::RuntimeException )
-{
- uno::Reference< sheet::XCellSeries > xCellSeries(mxRange, uno::UNO_QUERY_THROW );
-}
-
-void
-ScVbaRange::FillLeft() throw (uno::RuntimeException)
-{
- fillSeries(sheet::FillDirection_TO_LEFT,
- sheet::FillMode_LINEAR, sheet::FillDateMode_FILL_DATE_DAY, 0, 0x7FFFFFFF);
-}
-
-void
-ScVbaRange::FillRight() throw (uno::RuntimeException)
-{
- fillSeries(sheet::FillDirection_TO_RIGHT,
- sheet::FillMode_LINEAR, sheet::FillDateMode_FILL_DATE_DAY, 0, 0x7FFFFFFF);
-}
-
-void
-ScVbaRange::FillUp() throw (uno::RuntimeException)
-{
- fillSeries(sheet::FillDirection_TO_TOP,
- sheet::FillMode_LINEAR, sheet::FillDateMode_FILL_DATE_DAY, 0, 0x7FFFFFFF);
-}
-
-void
-ScVbaRange::FillDown() throw (uno::RuntimeException)
-{
- fillSeries(sheet::FillDirection_TO_BOTTOM,
- sheet::FillMode_LINEAR, sheet::FillDateMode_FILL_DATE_DAY, 0, 0x7FFFFFFF);
-}
-
-::rtl::OUString
-ScVbaRange::getText() throw (uno::RuntimeException)
-{
- uno::Reference< text::XTextRange > xTextRange(mxRange, uno::UNO_QUERY_THROW );
- return xTextRange->getString();
-}
-
-void
-ScVbaRange::setText( const ::rtl::OUString &rString ) throw (uno::RuntimeException)
-{
- uno::Reference< text::XTextRange > xTextRange(mxRange, uno::UNO_QUERY_THROW );
- xTextRange->setString( rString );
-}
-
-uno::Reference< vba::XRange >
-ScVbaRange::Offset( const ::uno::Any &nRowOff, const uno::Any &nColOff ) throw (uno::RuntimeException)
-{
- sal_Int32 nRowOffset = 0, nColOffset = 0;
- sal_Bool bIsRowOffset = ( nRowOff >>= nRowOffset );
- sal_Bool bIsColumnOffset = ( nColOff >>= nColOffset );
-
- RangeHelper helper( mxRange );
-
- return RangeHelper::createRangeFromRange( m_xContext, helper.getCellRangeFromSheet(), helper.getCellRangeAddressable(), nColOffset, nRowOffset, nColOffset, nRowOffset );
-}
-
-uno::Reference< vba::XRange >
-ScVbaRange::CurrentRegion() throw (uno::RuntimeException)
-{
- RangeHelper helper( mxRange );
- uno::Reference< sheet::XSheetCellCursor > xSheetCellCursor =
- helper.getSheetCellCursor();
- xSheetCellCursor->collapseToCurrentRegion();
- uno::Reference< sheet::XCellRangeAddressable > xCellRangeAddressable(xSheetCellCursor, uno::UNO_QUERY_THROW);
- return RangeHelper::createRangeFromRange( m_xContext, helper.getCellRangeFromSheet(), xCellRangeAddressable );
-}
-
-uno::Reference< vba::XRange >
-ScVbaRange::CurrentArray() throw (uno::RuntimeException)
-{
- RangeHelper helper( mxRange );
- uno::Reference< sheet::XSheetCellCursor > xSheetCellCursor =
- helper.getSheetCellCursor();
- xSheetCellCursor->collapseToCurrentArray();
- uno::Reference< sheet::XCellRangeAddressable > xCellRangeAddressable(xSheetCellCursor, uno::UNO_QUERY_THROW);
- return RangeHelper::createRangeFromRange( m_xContext, helper.getCellRangeFromSheet(), xCellRangeAddressable );
-}
-
-::rtl::OUString
-ScVbaRange::getFormulaArray() throw (uno::RuntimeException)
-{
- uno::Reference< sheet::XArrayFormulaRange > xArrayFormulaRange(mxRange, ::uno::UNO_QUERY_THROW );
- return xArrayFormulaRange->getArrayFormula();
-}
-
-void
-ScVbaRange::setFormulaArray(const ::rtl::OUString &rFormula) throw (uno::RuntimeException)
-{
- uno::Reference< sheet::XArrayFormulaRange > xArrayFormulaRange(mxRange, ::uno::UNO_QUERY_THROW );
- xArrayFormulaRange->setArrayFormula( rFormula );
-}
-
-::rtl::OUString
-ScVbaRange::Characters(const uno::Any& Start, const uno::Any& Length) throw (uno::RuntimeException)
-{
- long nIndex, nCount;
- ::rtl::OUString rString;
- uno::Reference< text::XTextRange > xTextRange(mxRange, ::uno::UNO_QUERY_THROW );
- rString = xTextRange->getString();
- if( !( Start >>= nIndex ) && !( Length >>= nCount ) )
- return rString;
- if(!( Start >>= nIndex ) )
- nIndex = 1;
- if(!( Length >>= nCount ) )
- nIndex = rString.getLength();
- return rString.copy( --nIndex, nCount ); // Zero value indexing
-}
-
-::rtl::OUString
-ScVbaRange::Address() throw (uno::RuntimeException)
-{
- ::rtl::OUString aStart, aEnd;
- uno::Sequence< uno::Any > aAddrArray1, aAddrArray2;
-
- uno::Reference< lang::XMultiComponentFactory > xSMgr( m_xContext->getServiceManager(), uno::UNO_QUERY_THROW );
-
- uno::Reference< sheet::XFunctionAccess > xFunctionAccess(
- xSMgr->createInstanceWithContext(::rtl::OUString::createFromAscii(
- "com.sun.star.sheet.FunctionAccess"), m_xContext),
- ::uno::UNO_QUERY_THROW );
- uno::Reference< sheet::XCellRangeAddressable > xCellRangeAddressable( mxRange, ::uno::UNO_QUERY_THROW );
- if( aAddrArray1.getLength() == 0 )
- {
- aAddrArray1.realloc(2);
- uno::Any* aArray = aAddrArray1.getArray();
- aArray[0] = ( uno::Any )( xCellRangeAddressable->getRangeAddress().StartRow + 1 );
- aArray[1] = ( uno::Any )( xCellRangeAddressable->getRangeAddress().StartColumn + 1 );
- }
- uno::Any aString1 = xFunctionAccess->callFunction(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ADDRESS")), aAddrArray1);
- aString1 >>= aStart;
-
- if( xCellRangeAddressable->getRangeAddress().StartColumn == xCellRangeAddressable->getRangeAddress().EndColumn &&
- xCellRangeAddressable->getRangeAddress().StartRow == xCellRangeAddressable->getRangeAddress().EndRow )
- return aStart;
-
- String aString(aStart);
- aStart = rtl::OUString(aString.Append((sal_Unicode)':'));
- if( aAddrArray2.getLength() == 0 )
- {
- aAddrArray2.realloc(2);
- uno::Any* aArray = aAddrArray2.getArray();
- aArray[0] = ( uno::Any )( xCellRangeAddressable->getRangeAddress().EndRow + 1 );
- aArray[1] = ( uno::Any )( xCellRangeAddressable->getRangeAddress().EndColumn + 1 );
- }
- uno::Any aString2 = xFunctionAccess->callFunction(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ADDRESS")), aAddrArray2);
- aString2 >>= aEnd;
- return aStart.concat( aEnd );
-}
-
-uno::Reference < vba::XFont >
-ScVbaRange::Font() throw (uno::RuntimeException)
-{
- uno::Reference< beans::XPropertySet > xProps(mxRange, ::uno::UNO_QUERY );
- return uno::Reference< vba::XFont >( new ScVbaFont( xProps ) );
-}
-
-uno::Reference< vba::XRange >
-ScVbaRange::Cells( const uno::Any &nRowIndex, const uno::Any &nColumnIndex ) throw(uno::RuntimeException)
-{
- long nRow = 0, nColumn = 0;
- sal_Bool bIsIndex = nRowIndex >>= nRow, bIsColumnIndex = nColumnIndex >>= nColumn;
-
- uno::Reference< sheet::XSheetCellRange > xSheetCellRange(mxRange, ::uno::UNO_QUERY_THROW );
- uno::Reference< sheet::XSpreadsheet > xSheet = xSheetCellRange->getSpreadsheet();
- uno::Reference< table::XCellRange > xRange(xSheet, uno::UNO_QUERY_THROW );
- uno::Reference< sheet::XCellRangeAddressable > xAddressable( xRange, uno::UNO_QUERY_THROW );
- uno::Reference< table::XCellRange > xRangeReference = xRange->getCellRangeByPosition(
- getColumn()-1, getRow()-1,
- xAddressable->getRangeAddress().EndColumn,
- xAddressable->getRangeAddress().EndRow );
- if( !bIsIndex && !bIsColumnIndex ) // .Cells
- return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, mxRange ) );
- if( !nRow )
- throw uno::RuntimeException(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ": Invalid RowIndex ") ),
- uno::Reference< XInterface >() );
- if( bIsIndex && !bIsColumnIndex ) // .Cells(n)
- {
- int nIndex = --nRow;
- uno::Reference< table::XColumnRowRange > xColumnRowRange(mxRange, ::uno::UNO_QUERY_THROW);
- int nColCount = xColumnRowRange->getColumns()->getCount();
- nRow = nIndex / nColCount;
- nColumn = nIndex % nColCount;
- return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, xRangeReference->getCellRangeByPosition(
- nColumn, nRow, nColumn, nRow ) ) );
- }
- if( !nColumn )
- throw uno::RuntimeException(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ": Invalid ColumnIndex" ) ),
- uno::Reference< XInterface >() );
- --nRow, --nColumn;
- return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, xRangeReference->getCellRangeByPosition( nColumn, nRow, nColumn, nRow ) ) );
-}
-
-void
-ScVbaRange::Select() throw (uno::RuntimeException)
-{
- uno::Reference< frame::XModel > xModel( getCurrentDocument(), uno::UNO_QUERY_THROW );
- uno::Reference< view::XSelectionSupplier > xSelection( xModel->getCurrentController(), uno::UNO_QUERY_THROW );
- xSelection->select( ( uno::Any )mxRange );
-}
-
-uno::Reference< vba::XRange >
-ScVbaRange::Rows(const uno::Any& aIndex ) throw (uno::RuntimeException)
-{
- sal_Int32 nValue;
- if( !aIndex.hasValue() )
- return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, mxRange, true ) );
- if( aIndex >>= nValue )
- {
- uno::Reference< sheet::XCellRangeAddressable > xAddressable( mxRange, uno::UNO_QUERY );
- --nValue;
- return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, mxRange->getCellRangeByPosition(
- xAddressable->getRangeAddress().StartColumn, nValue,
- xAddressable->getRangeAddress().EndColumn, nValue ), true ) );
- }
- // Questionable return, I'm just copying the invalid Any::value path
- // above. Would seem to me that this is an internal error and
- // warrants an exception thrown
- return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, mxRange, true ) );
-}
-
-uno::Reference< vba::XRange >
-ScVbaRange::Columns( const uno::Any& aIndex ) throw (uno::RuntimeException)
-{
- sal_Int32 nValue;
- if( !aIndex.hasValue() )
- return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, mxRange, false, true ) );
- if( aIndex >>= nValue )
- {
- uno::Reference< sheet::XCellRangeAddressable > xAddressable( mxRange, uno::UNO_QUERY_THROW );
- --nValue;
- return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, mxRange->getCellRangeByPosition(
- nValue, xAddressable->getRangeAddress().StartRow,
- nValue, xAddressable->getRangeAddress().EndRow ), false, true ) );
- }
- // Questionable return, I'm just copying the invalid Any::value path
- // above. Would seem to me that this is an internal error and
- // warrants an exception thrown
- return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, mxRange, false, true ) );
-}
-
-void
-ScVbaRange::setMergeCells( sal_Bool bIsMerged ) throw (uno::RuntimeException)
-{
- uno::Reference< util::XMergeable > xMerge( mxRange, ::uno::UNO_QUERY_THROW );
- //FIXME need to check whether all the cell contents are retained or lost by popping up a dialog
- xMerge->merge( bIsMerged );
-}
-
-sal_Bool
-ScVbaRange::getMergeCells() throw (uno::RuntimeException)
-{
- uno::Reference< util::XMergeable > xMerge( mxRange, ::uno::UNO_QUERY_THROW );
- return xMerge->getIsMerged();
-}
-
-void
-ScVbaRange::Copy(const ::uno::Any& Destination) throw (uno::RuntimeException)
-{
- if ( Destination.hasValue() )
- {
- uno::Reference< vba::XRange > xRange( Destination, uno::UNO_QUERY_THROW );
- uno::Any aRange = xRange->getCellRange();
- uno::Reference< table::XCellRange > xCellRange;
- aRange >>= xCellRange;
- uno::Reference< sheet::XSheetCellRange > xSheetCellRange(xCellRange, ::uno::UNO_QUERY_THROW);
- uno::Reference< sheet::XSpreadsheet > xSheet = xSheetCellRange->getSpreadsheet();
- uno::Reference< table::XCellRange > xDest( xSheet, uno::UNO_QUERY_THROW );
- uno::Reference< sheet::XCellRangeMovement > xMover( xSheet, uno::UNO_QUERY_THROW);
- uno::Reference< sheet::XCellAddressable > xDestination( xDest->getCellByPosition(
- xRange->getColumn()-1,xRange->getRow()-1), uno::UNO_QUERY_THROW );
- uno::Reference< sheet::XCellRangeAddressable > xSource( mxRange, uno::UNO_QUERY);
- xMover->copyRange( xDestination->getCellAddress(), xSource->getRangeAddress() );
- }
- else
- {
- Select();
- implnCopy();
- }
-}
-
-void
-ScVbaRange::Cut(const ::uno::Any& Destination) throw (uno::RuntimeException)
-{
- if (Destination.hasValue())
- {
- uno::Reference< vba::XRange > xRange( Destination, uno::UNO_QUERY_THROW );
- uno::Reference< table::XCellRange > xCellRange( xRange->getCellRange(), uno::UNO_QUERY_THROW );
- uno::Reference< sheet::XSheetCellRange > xSheetCellRange(xCellRange, ::uno::UNO_QUERY_THROW );
- uno::Reference< sheet::XSpreadsheet > xSheet = xSheetCellRange->getSpreadsheet();
- uno::Reference< table::XCellRange > xDest( xSheet, uno::UNO_QUERY_THROW );
- uno::Reference< sheet::XCellRangeMovement > xMover( xSheet, uno::UNO_QUERY_THROW);
- uno::Reference< sheet::XCellAddressable > xDestination( xDest->getCellByPosition(
- xRange->getColumn()-1,xRange->getRow()-1), uno::UNO_QUERY);
- uno::Reference< sheet::XCellRangeAddressable > xSource( mxRange, uno::UNO_QUERY);
- xMover->moveRange( xDestination->getCellAddress(), xSource->getRangeAddress() );
- }
- {
- Select();
- implnCut();
- }
-}
-
-void
-ScVbaRange::setNumberFormat( const ::rtl::OUString &rFormat ) throw (uno::RuntimeException)
-{
- uno::Reference< util::XNumberFormatsSupplier > xSupplier(getCurrentDocument(), uno::UNO_QUERY_THROW);
- uno::Reference< util::XNumberFormats > xFormats( xSupplier->getNumberFormats(), uno::UNO_QUERY_THROW );
- uno::Reference< beans::XPropertySet > xRangeProps( mxRange, uno::UNO_QUERY_THROW );
- //FIXME behaviour with different locales
- lang::Locale pLocale = ::com::sun::star::lang::Locale();
- long nIndexKey = xFormats->queryKey( rFormat, pLocale, false );
- if( nIndexKey != -1 )
- xRangeProps->setPropertyValue(rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("NumberFormat")), (uno::Any) nIndexKey );
-}
-
-::rtl::OUString
-ScVbaRange::getNumberFormat() throw (uno::RuntimeException)
-{
- uno::Reference< util::XNumberFormatsSupplier > xSupplier( getCurrentDocument(), uno::UNO_QUERY_THROW );
- uno::Reference< util::XNumberFormats > xFormats = xSupplier->getNumberFormats();
- uno::Reference< beans::XPropertySet > xRangeProps( mxRange, uno::UNO_QUERY);
- long nIndexKey;
- uno::Any aValue = xRangeProps->getPropertyValue(rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("NumberFormat")));
- aValue >>= nIndexKey;
- uno::Reference< beans::XPropertySet > xNumberProps = xFormats->getByKey( nIndexKey );
- ::rtl::OUString aFormatString;
- uno::Any aString = xNumberProps->getPropertyValue(rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FormatString")));
- aString >>= aFormatString;
- return aFormatString;
-}
-
-uno::Reference< vba::XRange >
-ScVbaRange::Resize( const uno::Any &RowSize, const uno::Any &ColumnSize ) throw (uno::RuntimeException)
-{
- long nRowSize, nColumnSize;
- sal_Bool bIsRowChanged = ( RowSize >>= nRowSize ), bIsColumnChanged = ( ColumnSize >>= nColumnSize );
- uno::Reference< table::XColumnRowRange > xColumnRowRange(mxRange, ::uno::UNO_QUERY_THROW);
- uno::Reference< sheet::XSheetCellRange > xSheetRange(mxRange, ::uno::UNO_QUERY_THROW);
- uno::Reference< sheet::XSheetCellCursor > xCursor( xSheetRange->getSpreadsheet()->createCursorByRange(xSheetRange), ::uno::UNO_QUERY_THROW );
- if( !nRowSize || !nColumnSize )
- throw lang::IndexOutOfBoundsException();
- if( !bIsRowChanged )
- nRowSize = xColumnRowRange->getRows()->getCount();
- if( !bIsColumnChanged )
- nColumnSize = xColumnRowRange->getColumns()->getCount();
- xCursor->collapseToSize( nColumnSize, nRowSize );
- uno::Reference< sheet::XCellRangeAddressable > xCellRangeAddressable(xCursor, ::uno::UNO_QUERY_THROW );
- uno::Reference< table::XCellRange > xRange( xSheetRange->getSpreadsheet(), ::uno::UNO_QUERY_THROW );
- return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext,xRange->getCellRangeByPosition(
- xCellRangeAddressable->getRangeAddress().StartColumn,
- xCellRangeAddressable->getRangeAddress().StartRow,
- xCellRangeAddressable->getRangeAddress().EndColumn,
- xCellRangeAddressable->getRangeAddress().EndRow ) ) );
-}
-
-void
-ScVbaRange::setWrapText( sal_Bool bIsWrapped ) throw (uno::RuntimeException)
-{
- uno::Reference< beans::XPropertySet > xProps(mxRange, ::uno::UNO_QUERY_THROW );
- xProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsTextWrapped" ) ), ( uno::Any )bIsWrapped );
-}
-
-sal_Bool
-ScVbaRange::getWrapText() throw (uno::RuntimeException)
-{
- sal_Bool bWrapped = false;
- uno::Reference< beans::XPropertySet > xProps(mxRange, ::uno::UNO_QUERY_THROW );
- uno::Any aValue = xProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsTextWrapped" ) ) );
- aValue >>= bWrapped;
- return bWrapped;
-}
-
-uno::Reference< vba::XInterior > ScVbaRange::Interior( ) throw (uno::RuntimeException)
-{
- return uno::Reference<vba::XInterior> (new ScVbaInterior ( m_xContext, mxRange));
-}
-uno::Reference< vba::XRange >
-ScVbaRange::Range( const uno::Any &Cell1, const uno::Any &Cell2 ) throw (uno::RuntimeException)
-{
- uno::Reference< sheet::XSheetCellRange > xSheetCellRange( mxRange, uno::UNO_QUERY_THROW );
- uno::Reference< sheet::XSpreadsheet > xSheet = xSheetCellRange->getSpreadsheet();
- uno::Reference< table::XCellRange > xRanges( xSheet, uno::UNO_QUERY_THROW );
- uno::Reference< sheet::XCellRangeAddressable > xAddressable( xRanges, uno::UNO_QUERY_THROW );
- uno::Reference< table::XCellRange > xReferrer = xRanges->getCellRangeByPosition(
- getColumn()-1, getRow()-1,
- xAddressable->getRangeAddress().EndColumn,
- xAddressable->getRangeAddress().EndRow );
- rtl::OUString rString;
- uno::Reference< vba::XRange > aRange1, aRange2;
- sal_Bool bIsCell1 = Cell1 >>= aRange1, bIsCell2 = Cell2 >>= aRange2;
-
- if( !Cell1.hasValue() )
- throw uno::RuntimeException(
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( " Invalid Argument " ) ),
- uno::Reference< XInterface >() );
- if( ( Cell1 >>= rString ) && !Cell2.hasValue() )
- {
- uno::Reference< table::XCellRange > xRange = xRanges->getCellRangeByName( rString );
- uno::Reference< sheet::XCellRangeAddressable > xRefAddress( xRange, uno::UNO_QUERY_THROW );
- return uno::Reference< vba::XRange > ( new ScVbaRange( m_xContext, xReferrer->getCellRangeByPosition(
- xRefAddress->getRangeAddress().StartColumn,
- xRefAddress->getRangeAddress().StartRow,
- xRefAddress->getRangeAddress().EndColumn,
- xRefAddress->getRangeAddress().EndRow ) ) );
- }
- if( bIsCell1 && bIsCell2 )
- return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, xReferrer->getCellRangeByPosition(
- aRange1->getColumn() - 1, aRange1->getRow() - 1,
- aRange2->getColumn() - 1, aRange2->getRow() - 1 ) ) );
- if( bIsCell1 && !Cell2.hasValue() )
- return uno::Reference< vba::XRange > ( new ScVbaRange( m_xContext, xReferrer->getCellRangeByPosition(
- aRange1->getColumn() - 1, aRange1->getRow() - 1,
- aRange1->getColumn() - 1, aRange1->getRow() - 1 ) ) );
- return NULL;
-}
-
-::com::sun::star::uno::Any SAL_CALL
-ScVbaRange::getCellRange( ) throw (::com::sun::star::uno::RuntimeException)
-{
- uno::Any aAny;
- aAny <<= mxRange;
- return aAny;
-}
-
-static USHORT
-getPasteFlags (sal_Int16 Paste)
-{
- USHORT nFlags = IDF_NONE;
- switch (Paste) {
- case vba::xlPasteType::xlPasteComments:
- nFlags = IDF_NOTE;break;
- case vba::xlPasteType::xlPasteFormats:
- nFlags = IDF_ATTRIB;break;
- case vba::xlPasteType::xlPasteFormulas:
- nFlags = IDF_FORMULA;break;
- case vba::xlPasteType::xlPasteFormulasAndNumberFormats :
- nFlags = IDF_FORMULA | IDF_VALUE ;break;
- case vba::Excel::XlFindLookIn::xlValues:
- case vba::xlPasteType::xlPasteValues:
- nFlags = IDF_VALUE | IDF_SPECIAL_BOOLEAN ;break;
- case vba::xlPasteType::xlPasteValuesAndNumberFormats:
- nFlags = IDF_VALUE | IDF_ATTRIB; break;
- case vba::xlPasteType::xlPasteColumnWidths:
- case vba::xlPasteType::xlPasteValidation:
- nFlags = IDF_NONE;break;
- case vba::xlPasteType::xlPasteAll:
- case vba::xlPasteType::xlPasteAllExceptBorders:
- default:
- nFlags = IDF_ALL;break;
- };
-return nFlags;
-}
-
-static USHORT
-getPasteFormulaBits( sal_Int16 Operation)
-{
- USHORT nFormulaBits = PASTE_NOFUNC ;
- switch (Operation)
- {
- case vba::xlPasteSpecialOperation::xlPasteSpecialOperationAdd:
- nFormulaBits = PASTE_ADD;break;
- case vba::xlPasteSpecialOperation::xlPasteSpecialOperationSubtract:
- nFormulaBits = PASTE_SUB;break;
- case vba::xlPasteSpecialOperation::xlPasteSpecialOperationMultiply:
- nFormulaBits = PASTE_MUL;break;
- case vba::xlPasteSpecialOperation::xlPasteSpecialOperationDivide:
- nFormulaBits = PASTE_DIV;break;
-
- case vba::xlPasteSpecialOperation::xlPasteSpecialOperationNone:
- case vba::Excel::Constants::xlNone:
- default:
- nFormulaBits = PASTE_NOFUNC; break;
- };
-
-return nFormulaBits;
-}
-void SAL_CALL
-ScVbaRange::PasteSpecial(sal_Int16 Paste, sal_Int16 Operation, ::sal_Bool SkipBlanks, ::sal_Bool Transpose ) throw (::com::sun::star::uno::RuntimeException)
-{
- USHORT nFlags = getPasteFlags(Paste);
- USHORT nFormulaBits = getPasteFormulaBits(Operation);
- implnPasteSpecial(nFlags,nFormulaBits,SkipBlanks,Transpose);
-
-}
-
-uno::Reference< vba::XRange >
-ScVbaRange::getEntireColumnOrRow( bool bEntireRow ) throw (uno::RuntimeException)
-{
- uno::Reference< sheet::XSheetCellRange > xSheetCellRange(mxRange, uno::UNO_QUERY_THROW);
- uno::Reference< sheet::XSpreadsheet > xSheet( xSheetCellRange->getSpreadsheet(), uno::UNO_QUERY_THROW );
- uno::Reference< sheet::XSheetCellCursor > xSheetCellCursor( xSheet->createCursorByRange( xSheetCellRange ), uno::UNO_QUERY_THROW );
- if ( bEntireRow )
- xSheetCellCursor->expandToEntireRows();
- else
- xSheetCellCursor->expandToEntireColumns();
-
- uno::Reference< sheet::XCellRangeAddressable > xCellRangeAddressable(xSheetCellCursor, uno::UNO_QUERY_THROW);
- uno::Reference< table::XCellRange > xCellRange( xSheet, uno::UNO_QUERY_THROW);
- return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, xCellRange->getCellRangeByPosition( xCellRangeAddressable->getRangeAddress().StartColumn, xCellRangeAddressable->getRangeAddress().StartRow, xCellRangeAddressable->getRangeAddress().EndColumn, xCellRangeAddressable->getRangeAddress().EndRow ) , bEntireRow, !bEntireRow ) );
-}
-
-uno::Reference< vba::XRange > SAL_CALL
-ScVbaRange::getEntireRow() throw (uno::RuntimeException)
-{
- return getEntireColumnOrRow();
-}
-
-uno::Reference< vba::XRange > SAL_CALL
-ScVbaRange::getEntireColumn() throw (uno::RuntimeException)
-{
- return getEntireColumnOrRow( false );
-}
-
-uno::Reference< beans::XPropertySet >
-getRowOrColumnProps( const uno::Reference< table::XCellRange >& xCellRange, bool bRows ) throw ( uno::RuntimeException )
-{
- uno::Reference< table::XColumnRowRange > xColRow( xCellRange, uno::UNO_QUERY_THROW );
- uno::Reference< beans::XPropertySet > xProps;
- if ( bRows )
- xProps.set( xColRow->getRows(), uno::UNO_QUERY_THROW );
- else
- xProps.set( xColRow->getColumns(), uno::UNO_QUERY_THROW );
- return xProps;
-}
-
-uno::Any SAL_CALL
-ScVbaRange::getHidden() throw (uno::RuntimeException)
-{
- bool bIsVisible = false;
- try
- {
- uno::Reference< beans::XPropertySet > xProps = getRowOrColumnProps( mxRange, mbIsRows );
- if ( !( xProps->getPropertyValue( ISVISIBLE ) >>= bIsVisible ) )
- throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Failed to get IsVisible property")), uno::Reference< uno::XInterface >() );
- }
- catch( uno::Exception& e )
- {
- throw uno::RuntimeException( e.Message, uno::Reference< uno::XInterface >() );
- }
- return uno::makeAny( !bIsVisible );
-}
-
-void SAL_CALL
-ScVbaRange::setHidden( const uno::Any& _hidden ) throw (uno::RuntimeException)
-{
- sal_Bool bHidden;
- if ( !(_hidden >>= bHidden) )
- throw uno::RuntimeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Failed to extract param for Hidden property" ) ), uno::Reference< uno::XInterface >() );
-
- try
- {
- uno::Reference< beans::XPropertySet > xProps = getRowOrColumnProps( mxRange, mbIsRows );
- xProps->setPropertyValue( ISVISIBLE, uno::makeAny( !bHidden ) );
- }
- catch( uno::Exception& e )
- {
- throw uno::RuntimeException( e.Message, uno::Reference< uno::XInterface >() );
- }
-}
-
-// XInterface
-
-IMPLEMENT_FORWARD_XINTERFACE2( ScVbaRange, ScVbaRange_BASE, OPropertyContainer )
-
-// XTypeProvider
-
-IMPLEMENT_FORWARD_XTYPEPROVIDER2( ScVbaRange, ScVbaRange_BASE, OPropertyContainer )
-
-// OPropertySetHelper
-
-::cppu::IPropertyArrayHelper&
-ScVbaRange::getInfoHelper( )
-{
- static ::cppu::IPropertyArrayHelper* sProps = 0;
- if ( !sProps )
- sProps = createArrayHelper();
- return *sProps;
-}
-
-
-::cppu::IPropertyArrayHelper*
-ScVbaRange::createArrayHelper( ) const
-{
- uno::Sequence< beans::Property > aProps;
- describeProperties( aProps );
- return new ::cppu::OPropertyArrayHelper( aProps );
-}
-
-// XPropertySet
-uno::Reference< beans::XPropertySetInfo >
-ScVbaRange::getPropertySetInfo( ) throw (uno::RuntimeException)
-{
- uno::Reference< beans::XPropertySetInfo > xInfo( createPropertySetInfo( getInfoHelper() ) );
- return xInfo;
-}
diff --git a/scratch/sc-vba/vbarange.hxx b/scratch/sc-vba/vbarange.hxx
deleted file mode 100644
index b955b03f5..000000000
--- a/scratch/sc-vba/vbarange.hxx
+++ /dev/null
@@ -1,127 +0,0 @@
-#ifndef SC_VBA_RANGE_HXX
-#define SC_VBA_RANGE_HXX
-
-#include <cppuhelper/implbase1.hxx>
-
-#include <org/openoffice/vba/XRange.hpp>
-#include <com/sun/star/table/XCellRange.hpp>
-#include <org/openoffice/vba/XFont.hpp>
-#include <org/openoffice/vba/xlPasteType.hdl>
-#include <org/openoffice/vba/xlPasteSpecialOperation.hdl>
-
-#include <comphelper/proparrhlp.hxx>
-#include <comphelper/propertycontainer.hxx>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/beans/PropertyAttribute.hpp>
-#include <com/sun/star/script/XTypeConverter.hpp>
-#include <com/sun/star/sheet/FillDateMode.hpp>
-#include <com/sun/star/sheet/FillMode.hpp>
-#include <com/sun/star/sheet/FillDirection.hpp>
-
-#include "vbahelper.hxx"
-
-class ScTableSheetsObj;
-
-typedef ::cppu::WeakImplHelper1< oo::vba::XRange > ScVbaRange_BASE;
-class ArrayVisitor
-{
-public:
- virtual void visitNode( sal_Int32 x, sal_Int32 y, const css::uno::Reference< css::table::XCell >& xCell ) = 0;
-};
-class ScVbaRange : public ScVbaRange_BASE
- ,public ::comphelper::OMutexAndBroadcastHelper
- ,public ::comphelper::OPropertyContainer
-
-{
- css::uno::Reference< css::table::XCellRange > mxRange;
- css::uno::Reference< css::uno::XComponentContext > m_xContext;
- sal_Bool mbIsRows;
- sal_Bool mbIsColumns;
- rtl::OUString msDftPropName;
- void visitArray( ArrayVisitor& vistor );
- css::uno::Reference< css::script::XTypeConverter > getTypeConverter() throw (css::uno::RuntimeException);
-
- css::uno::Reference< oo::vba::XRange > getEntireColumnOrRow( bool bEntireRow = true ) throw( css::uno::RuntimeException );
-
- void fillSeries( css::sheet::FillDirection nFillDirection, css::sheet::FillMode nFillMode, css::sheet::FillDateMode nFillDateMode, double fStep, double fEndValue ) throw( css::uno::RuntimeException );
-
-public:
- ScVbaRange( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::table::XCellRange >& xRange, sal_Bool bIsRows = false, sal_Bool bIsColumns = false ) throw ( css::lang::IllegalArgumentException );
-
- virtual ~ScVbaRange() {}
-
- // Attributes
- virtual css::uno::Any SAL_CALL getValue() throw (css::uno::RuntimeException);
- virtual void SAL_CALL setValue( const css::uno::Any& aValue ) throw ( css::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL getFormula() throw (css::uno::RuntimeException);
- virtual void SAL_CALL setFormula( const ::rtl::OUString &rFormula ) throw (css::uno::RuntimeException);
- virtual double SAL_CALL getCount() throw (css::uno::RuntimeException);
- virtual ::sal_Int32 SAL_CALL getRow() throw (css::uno::RuntimeException);
- virtual ::sal_Int32 SAL_CALL getColumn() throw (css::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL getText() throw (css::uno::RuntimeException);
- virtual void SAL_CALL setText( const ::rtl::OUString &rString ) throw (css::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL getFormulaArray() throw (css::uno::RuntimeException);
- virtual void SAL_CALL setFormulaArray(const ::rtl::OUString &rFormula) throw (css::uno::RuntimeException);
- virtual void SAL_CALL setNumberFormat( const ::rtl::OUString &rNumberFormat ) throw (css::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL getNumberFormat() throw (css::uno::RuntimeException);
- virtual void SAL_CALL setMergeCells( sal_Bool bMerge ) throw (css::uno::RuntimeException);
- virtual sal_Bool SAL_CALL getMergeCells() throw (css::uno::RuntimeException);
- virtual void SAL_CALL setWrapText( sal_Bool bIsWrapped ) throw (css::uno::RuntimeException);
- virtual sal_Bool SAL_CALL getWrapText() throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XRange > SAL_CALL getEntireRow() throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XRange > SAL_CALL getEntireColumn() throw (css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL getHidden() throw (css::uno::RuntimeException);
- virtual void SAL_CALL setHidden( const css::uno::Any& _hidden ) throw (css::uno::RuntimeException);
- // Methods
- sal_Bool IsRows() { return mbIsRows; }
- sal_Bool IsColumns() { return mbIsColumns; }
- virtual void SAL_CALL Clear() throw (css::uno::RuntimeException);
- virtual void SAL_CALL ClearComments() throw (css::uno::RuntimeException);
- virtual void SAL_CALL ClearContents() throw (css::uno::RuntimeException);
- virtual void SAL_CALL ClearFormats() throw (css::uno::RuntimeException);
- virtual sal_Bool SAL_CALL HasFormula() throw (css::uno::RuntimeException);
- virtual void SAL_CALL FillLeft() throw (css::uno::RuntimeException);
- virtual void SAL_CALL FillRight() throw (css::uno::RuntimeException);
- virtual void SAL_CALL FillUp() throw (css::uno::RuntimeException);
- virtual void SAL_CALL FillDown() throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XRange > SAL_CALL Offset( const css::uno::Any &nRowOffset, const css::uno::Any &nColOffset )
- throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XRange > SAL_CALL CurrentRegion() throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XRange > SAL_CALL CurrentArray() throw (css::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL Characters( const css::uno::Any& nIndex, const css::uno::Any& nCount )
- throw (css::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL Address() throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XRange > SAL_CALL Cells( const css::uno::Any &nRow, const css::uno::Any &nCol )
- throw (css::uno::RuntimeException);
- virtual void SAL_CALL Select() throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XRange > SAL_CALL Rows( const css::uno::Any& nIndex ) throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XRange > SAL_CALL Columns( const css::uno::Any &nIndex ) throw (css::uno::RuntimeException);
- virtual void SAL_CALL Copy( const css::uno::Any& Destination ) throw (css::uno::RuntimeException);
- virtual void SAL_CALL Cut( const css::uno::Any& Destination ) throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XRange > SAL_CALL Resize( const css::uno::Any& RowSize, const css::uno::Any& ColumnSize )
- throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XFont > SAL_CALL Font() throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XInterior > SAL_CALL Interior( ) throw (css::uno::RuntimeException) ;
- virtual css::uno::Reference< oo::vba::XRange > SAL_CALL Range( const css::uno::Any &Cell1, const css::uno::Any &Cell2 )
- throw (css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL getCellRange( ) throw (css::uno::RuntimeException);
- virtual void SAL_CALL PasteSpecial( sal_Int16 Paste, sal_Int16 Operation, ::sal_Bool SkipBlanks, ::sal_Bool Transpose ) throw (css::uno::RuntimeException);
- // XPropertySet
-
- virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw (css::uno::RuntimeException);
-
- // XInterface
- DECLARE_XINTERFACE()
-
- // XTypeProvider
- DECLARE_XTYPEPROVIDER()
-protected:
- // OPropertySetHelper
- virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper();
-
- virtual ::cppu::IPropertyArrayHelper* createArrayHelper() const;
-
-};
-
-#endif /* SC_VBA_RANGE_HXX */
-
diff --git a/scratch/sc-vba/vbaseriescollection.cxx b/scratch/sc-vba/vbaseriescollection.cxx
deleted file mode 100644
index 0c1824412..000000000
--- a/scratch/sc-vba/vbaseriescollection.cxx
+++ /dev/null
@@ -1,73 +0,0 @@
-#include "vbaseriescollection.hxx"
-#include <org/openoffice/vba/XSeries.hpp>
-
-#include "vbaglobals.hxx"
-
-using namespace ::com::sun::star;
-using namespace ::org::openoffice;
-
-uno::Reference< oo::vba::XApplication >
-ScVbaSeriesCollection::getApplication() throw (uno::RuntimeException)
-{
- return ScVbaGlobals::getGlobalsImpl( m_xContext )->getApplication();
-}
-::sal_Int32
-ScVbaSeriesCollection::getCount() throw (uno::RuntimeException)
-{
- return 0;
-}
-
-uno::Any
-ScVbaSeriesCollection::Item( const uno::Any& aIndex ) throw (uno::RuntimeException)
-{
- return uno::Any();
-}
-
-// XEnumerationAccess
-
-uno::Reference< container::XEnumeration >
-ScVbaSeriesCollection::createEnumeration() throw (uno::RuntimeException)
-{
- uno::Reference< container::XEnumeration > xEnum;
- return xEnum;
-}
-
-// XElementAccess
-
-uno::Type
-ScVbaSeriesCollection::getElementType() throw (uno::RuntimeException)
-{
- return vba::XSeries::static_type(0);
-}
-::sal_Bool
-ScVbaSeriesCollection::hasElements() throw (uno::RuntimeException)
-{
- // #TODO #TOFIX Really?, how can we say that!
- // needs to delegate to xIndex
- return sal_True;
-}
-
-uno::Any SAL_CALL
-ScVbaSeriesCollection::getParent() throw (uno::RuntimeException)
-{
- uno::Reference< vba::XApplication > xApplication =
- getApplication();
- uno::Reference< vba::XWorkbook > xWorkbook;
- if ( xApplication.is() )
- {
- xWorkbook = xApplication->getActiveWorkbook();
- }
- return uno::Any( xWorkbook );
-}
-
-sal_Int32 SAL_CALL
-ScVbaSeriesCollection::getCreator() throw (uno::RuntimeException)
-{
- SC_VBA_STUB();
- return 0;
-}
-
-
-
-
-
diff --git a/scratch/sc-vba/vbaseriescollection.hxx b/scratch/sc-vba/vbaseriescollection.hxx
deleted file mode 100644
index 631d750cf..000000000
--- a/scratch/sc-vba/vbaseriescollection.hxx
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef SC_VBA_SERIESCOLLECTION_HXX
-#define SC_VBA_SERIESCOLLECTION_HXX
-#include <org/openoffice/vba/XSeriesCollection.hpp>
-#include <cppuhelper/implbase2.hxx>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <com/sun/star/container/XEnumerationAccess.hpp>
-
-#include "vbahelper.hxx"
-
-typedef ::cppu::WeakImplHelper2<oo::vba::XSeriesCollection,
-css::container::XEnumerationAccess > SeriesCollectionImpl_BASE;
-
-class ScVbaSeriesCollection : public SeriesCollectionImpl_BASE
-{
-
- css::uno::Reference< css::uno::XComponentContext > m_xContext;
-public:
- ScVbaSeriesCollection( const css::uno::Reference< css::uno::XComponentContext >& xContext ) : m_xContext(xContext) {}
- //XCollection
- virtual ::sal_Int32 SAL_CALL getCount() throw (css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL getParent() throw (css::uno::RuntimeException);
- virtual ::sal_Int32 SAL_CALL getCreator() throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XApplication > SAL_CALL getApplication() throw (css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL Item( const css::uno::Any& Index ) throw (css::uno::RuntimeException);
-
- // XEnumerationAccess
- virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException);
- // XElementAccess
- virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException);
- virtual ::sal_Bool SAL_CALL hasElements() throw (css::uno::RuntimeException);
-};
-
-#endif //SC_VBA_WINDOW_HXX
diff --git a/scratch/sc-vba/vbawindow.cxx b/scratch/sc-vba/vbawindow.cxx
deleted file mode 100644
index 1a5c37988..000000000
--- a/scratch/sc-vba/vbawindow.cxx
+++ /dev/null
@@ -1,238 +0,0 @@
-#include "vbawindow.hxx"
-#include "vbaworksheets.hxx"
-#include "vbaworksheet.hxx"
-#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
-#include <com/sun/star/sheet/XSpreadsheet.hpp>
-#include <com/sun/star/container/XNamed.hpp>
-
-#include <docsh.hxx>
-#include <tabvwsh.hxx>
-#include <docuno.hxx>
-#include <sc.hrc>
-#include <hash_map>
-
-using namespace ::com::sun::star;
-using namespace ::org::openoffice;
-
-typedef std::hash_map< rtl::OUString,
-SCTAB, ::rtl::OUStringHash,
-::std::equal_to< ::rtl::OUString > > NameIndexHash;
-
-typedef std::vector < uno::Reference< sheet::XSpreadsheet > > Sheets;
-
-typedef ::cppu::WeakImplHelper1< container::XEnumeration
-
-> Enumeration_BASE;
-
-typedef ::cppu::WeakImplHelper3< container::XEnumerationAccess
- , com::sun::star::container::XIndexAccess
- , com::sun::star::container::XNameAccess
- > SelectedSheets_BASE;
-
-
-class SelectedSheetsEnum : public Enumeration_BASE
-{
-public:
- uno::Reference< uno::XComponentContext > m_xContext;
- uno::Reference< frame::XModel > m_xModel;
- Sheets m_sheets;
- Sheets::const_iterator m_it;
-
- SelectedSheetsEnum( const uno::Reference< uno::XComponentContext >& xContext, const Sheets& sheets, const uno::Reference< frame::XModel >& xModel ) throw ( uno::RuntimeException ) : m_xContext( xContext ), m_sheets( sheets ), m_xModel( xModel )
- {
- m_it = m_sheets.begin();
- }
- // XEnumeration
- virtual ::sal_Bool SAL_CALL hasMoreElements( ) throw (uno::RuntimeException)
- {
- return m_it != m_sheets.end();
- }
- virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
- {
- if ( !hasMoreElements() )
- {
- throw container::NoSuchElementException();
- }
- return makeAny( uno::Reference< vba::XWorksheet > ( new ScVbaWorksheet( m_xContext, *(m_it++), m_xModel ) ) );
- }
-
-
-};
-
-class SelectedSheetsEnumAccess : public SelectedSheets_BASE
-{
- uno::Reference< uno::XComponentContext > m_xContext;
- NameIndexHash namesToIndices;
- Sheets sheets;
- uno::Reference< frame::XModel > m_xModel;
-public:
- SelectedSheetsEnumAccess( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< frame::XModel >& xModel ):m_xContext( xContext ), m_xModel( xModel )
- {
- ScModelObj* pModel = static_cast< ScModelObj* >( m_xModel.get() );
- if ( !pModel )
- throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Cannot obtain current document" ) ), uno::Reference< uno::XInterface >() );
- ScDocShell* pDocShell = (ScDocShell*)pModel->GetEmbeddedObject();
- if ( !pDocShell )
- throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Cannot obtain docshell" ) ), uno::Reference< uno::XInterface >() );
- ScTabViewShell* pViewShell = getCurrentBestViewShell();
- if ( !pViewShell )
- throw uno::RuntimeException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Cannot obtain view shell" ) ), uno::Reference< uno::XInterface >() );
-
- SCTAB nTabCount = pDocShell->GetDocument()->GetTableCount();
- uno::Sequence<sal_Int32> aSheets( nTabCount );
- sal_Int32 nIndex = 0;
- const ScMarkData& rMarkData = pViewShell->GetViewData()->GetMarkData();
- sheets.reserve( nTabCount );
- uno::Reference <sheet::XSpreadsheetDocument> xSpreadSheet( m_xModel, uno::UNO_QUERY_THROW );
- uno::Reference <container::XIndexAccess> xIndex( xSpreadSheet->getSheets(), uno::UNO_QUERY_THROW );
- for ( SCTAB nTab=0; nTab<nTabCount; nTab++ )
- {
- if ( rMarkData.GetTableSelect(nTab) )
- {
- uno::Reference< sheet::XSpreadsheet > xSheet( xIndex->getByIndex( nTab ), uno::UNO_QUERY_THROW );
- uno::Reference< container::XNamed > xNamed( xSheet, uno::UNO_QUERY_THROW );
- sheets.push_back( xSheet );
- namesToIndices[ xNamed->getName() ] = nIndex++;
- }
- }
-
- }
-
- //XEnumerationAccess
- virtual uno::Reference< container::XEnumeration > SAL_CALL createEnumeration( ) throw (uno::RuntimeException)
- {
- return new SelectedSheetsEnum( m_xContext, sheets, m_xModel );
- }
- // XIndexAccess
- virtual ::sal_Int32 SAL_CALL getCount( ) throw (uno::RuntimeException)
- {
- return sheets.size();
- }
- virtual uno::Any SAL_CALL getByIndex( ::sal_Int32 Index ) throw ( lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
- {
- if ( Index < 0
- || Index >= sheets.size() )
- throw lang::IndexOutOfBoundsException();
-
- //return makeAny( uno::Reference< vba::XWorksheet > ( new ScVbaWorksheet( m_xContext, sheets[ Index ], m_xModel ) ) );
- return makeAny( sheets[ Index ] );
- }
-
- //XElementAccess
- virtual uno::Type SAL_CALL getElementType( ) throw (uno::RuntimeException)
- {
- return vba::XWorksheet::static_type(0);
- }
-
- virtual ::sal_Bool SAL_CALL hasElements( ) throw (uno::RuntimeException)
- {
- return (sheets.size() > 0);
- }
-
- //XNameAccess
- virtual uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
- {
- NameIndexHash::const_iterator it = namesToIndices.find( aName );
- if ( it == namesToIndices.end() )
- throw container::NoSuchElementException();
- //return makeAny( uno::Reference< vba::XWorksheet > ( new ScVbaWorksheet( m_xContext, sheets[ it->second ], m_xModel ) ) );
- return makeAny( sheets[ it->second ] );
-
- }
-
- virtual uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames( ) throw (uno::RuntimeException)
- {
- uno::Sequence< ::rtl::OUString > names( namesToIndices.size() );
- ::rtl::OUString* pString = names.getArray();
- NameIndexHash::const_iterator it = namesToIndices.begin();
- NameIndexHash::const_iterator it_end = namesToIndices.end();
- for ( ; it != it_end; ++it, ++pString )
- *pString = it->first;
- return names;
- }
-
- virtual ::sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (uno::RuntimeException)
- {
- NameIndexHash::const_iterator it = namesToIndices.find( aName );
- return (it != namesToIndices.end());
- }
-
-
-};
-
-
-void
-ScVbaWindow::Scroll( const uno::Any& Down, const uno::Any& Up, const uno::Any& ToRight, const uno::Any& ToLeft, bool bLargeScroll ) throw (uno::RuntimeException)
-{
- sal_Int16 down = 0;
- sal_Int16 up = 0;
- sal_Int16 toRight = 0;
- sal_Int16 toLeft = 0;
- Down >>= down;
- Up >>= up;
- ToRight >>= toRight;
- ToLeft >>= toLeft;
- uno::Sequence< beans::PropertyValue > args1(2);
- args1[0].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "By" ) );
- args1[1].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Sel" ) );
- args1[1].Value <<= false;
-
- sal_Int16 totalUp = up - down;
- sal_Int16 totalLeft = toLeft - toRight;
-
- if ( totalUp != 0 )
- {
- args1[0].Value <<= totalUp;
- rtl::OUString url = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:GoUp"));
- if ( bLargeScroll )
- url = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:GoUpBlock"));
- uno::Reference< frame::XModel > xModel = getCurrentDocument();
- dispatchRequests( xModel, url, args1 );
- }
-
- if ( totalLeft != 0 )
- {
- args1[0].Value <<= totalLeft;
- rtl::OUString url = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:GoLeft"));
- if ( bLargeScroll )
- url = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "slot:")) + rtl::OUString::valueOf( (sal_Int32)SID_CURSORPAGELEFT_ );
- uno::Reference< frame::XModel > xModel = getCurrentDocument();
- dispatchRequests( xModel, url, args1 );
- }
-
-}
-void SAL_CALL
-ScVbaWindow::SmallScroll( const uno::Any& Down, const uno::Any& Up, const uno::Any& ToRight, const uno::Any& ToLeft ) throw (uno::RuntimeException)
-{
- Scroll( Down, Up, ToRight, ToLeft );
-}
-void SAL_CALL
-ScVbaWindow::LargeScroll( const uno::Any& Down, const uno::Any& Up, const uno::Any& ToRight, const uno::Any& ToLeft ) throw (uno::RuntimeException)
-{
- Scroll( Down, Up, ToRight, ToLeft, true );
-}
-
-uno::Any SAL_CALL
-ScVbaWindow::SelectedSheets( const uno::Any& aIndex ) throw (uno::RuntimeException)
-{
- uno::Reference< container::XEnumerationAccess > xEnumAccess( new SelectedSheetsEnumAccess( m_xContext, getCurrentDocument() ) );
- return makeAny( uno::Reference< vba::XWorksheets > ( new ScVbaWorksheets( m_xContext, xEnumAccess, getCurrentDocument() ) ) );
-}
-
-void SAL_CALL
-ScVbaWindow::ScrollWorkbookTabs( const uno::Any& Sheets, const uno::Any& Position ) throw (uno::RuntimeException)
-{
- sal_Int32 nSheets = 0;
- sal_Int32 nPosition = 0;
- sal_Bool bSheets = ( Sheets >>= nSheets );
- sal_Bool bPosition = ( Position >>= nPosition );
-// #TODO #FIXME need some implementation to scroll through the tabs
-// but where is this done?
- if ( bSheets || bPosition ) // at least one param specified
- if ( bSheets )
- ;// use sheets
- else if ( bPosition )
- ; //use position
-
-}
-
diff --git a/scratch/sc-vba/vbawindow.hxx b/scratch/sc-vba/vbawindow.hxx
deleted file mode 100644
index abb5d7f85..000000000
--- a/scratch/sc-vba/vbawindow.hxx
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef SC_VBA_WINDOW_HXX
-#define SC_VBA_WINDOW_HXX
-#include <cppuhelper/implbase1.hxx>
-#include <org/openoffice/vba/XWindow.hpp>
-#include <com/sun/star/uno/XComponentContext.hpp>
-
-#include "vbahelper.hxx"
-
-typedef ::cppu::WeakImplHelper1<oo::vba::XWindow > WindowImpl_BASE;
-
-class ScVbaWindow : public WindowImpl_BASE
-{
- css::uno::Reference< css::uno::XComponentContext > m_xContext;
- void Scroll( const css::uno::Any& Down, const css::uno::Any& Up, const css::uno::Any& ToRight, const css::uno::Any& ToLeft, bool bLargeScroll = false ) throw (css::uno::RuntimeException);
-public:
- ScVbaWindow( css::uno::Reference< css::uno::XComponentContext >& xContext ) : m_xContext(xContext) {}
- //XWindow
- virtual void SAL_CALL SmallScroll( const css::uno::Any& Down, const css::uno::Any& Up, const css::uno::Any& ToRight, const css::uno::Any& ToLeft ) throw (css::uno::RuntimeException);
- virtual void SAL_CALL LargeScroll( const css::uno::Any& Down, const css::uno::Any& Up, const css::uno::Any& ToRight, const css::uno::Any& ToLeft ) throw (css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL SelectedSheets( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
- virtual void SAL_CALL ScrollWorkbookTabs( const css::uno::Any& Sheets, const css::uno::Any& Position ) throw (css::uno::RuntimeException);
-};
-
-#endif //SC_VBA_WINDOW_HXX
diff --git a/scratch/sc-vba/vbaworkbook.cxx b/scratch/sc-vba/vbaworkbook.cxx
deleted file mode 100644
index 041dbc72f..000000000
--- a/scratch/sc-vba/vbaworkbook.cxx
+++ /dev/null
@@ -1,188 +0,0 @@
-#include <tools/urlobj.hxx>
-
-#include <com/sun/star/util/XModifiable.hpp>
-#include <com/sun/star/util/XProtectable.hpp>
-#include <com/sun/star/sheet/XSpreadsheetView.hpp>
-#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
-#include <com/sun/star/frame/XStorable.hpp>
-#include <com/sun/star/frame/XFrame.hpp>
-
-#include "vbaworksheet.hxx"
-#include "vbaworksheets.hxx"
-#include "vbaworkbook.hxx"
-#include "vbahelper.hxx"
-
-#include <stdio.h>
-
-// Much of the impl. for the equivalend UNO module is
-// sc/source/ui/unoobj/docuno.cxx, viewuno.cxx
-
-using namespace ::org::openoffice;
-using namespace ::com::sun::star;
-
-class ActiveSheet : public ScVbaWorksheet
-{
-protected:
- virtual uno::Reference< frame::XModel > getModel()
- {
- return getCurrentDocument();
- }
- virtual uno::Reference< sheet::XSpreadsheet > getSheet()
- {
- uno::Reference< frame::XModel > xModel = getModel();
- uno::Reference< sheet::XSpreadsheet > xSheet;
- if ( xModel.is() )
- {
- uno::Reference< sheet::XSpreadsheetView > xSpreadsheet(
- xModel->getCurrentController(), uno::UNO_QUERY );
- if ( xSpreadsheet.is() )
- xSheet = xSpreadsheet->getActiveSheet();
- }
- return xSheet;
- }
-public:
- ActiveSheet( uno::Reference< uno::XComponentContext >& xContext ) : ScVbaWorksheet( xContext ) {}
-
-};
-
-
-::rtl::OUString
-ScVbaWorkbook::getName() throw (uno::RuntimeException)
-{
- INetURLObject aURL( getModel()->getURL() );
- return aURL.GetLastName();
-}
-::rtl::OUString
-ScVbaWorkbook::getPath() throw (uno::RuntimeException)
-{
- INetURLObject aURL( getModel()->getURL() );
- aURL.CutLastName();
- return aURL.GetURLPath();
-}
-
-::rtl::OUString
-ScVbaWorkbook::getFullName() throw (uno::RuntimeException)
-{
- INetURLObject aURL( getModel()->getURL() );
- return aURL.GetURLPath();
-}
-uno::Reference< vba::XWorksheet >
-ScVbaWorkbook::getActiveSheet() throw (uno::RuntimeException)
-{
- return new ActiveSheet( m_xContext );
-}
-uno::Any SAL_CALL
-ScVbaWorkbook::Worksheets( const uno::Any& aIndex ) throw (uno::RuntimeException)
-{
- uno::Reference< frame::XModel > xModel( getModel() );
- uno::Reference <sheet::XSpreadsheetDocument> xSpreadDoc( xModel, uno::UNO_QUERY_THROW );
- uno::Reference<sheet::XSpreadsheets > xSheets( xSpreadDoc->getSheets(), uno::UNO_QUERY_THROW );
- uno::Reference< vba::XCollection > xWorkSheets( uno::Reference< vba::XWorksheets >( new ScVbaWorksheets(m_xContext, xSheets, xModel ) ), uno::UNO_QUERY_THROW );
- if ( aIndex.getValueTypeClass() == uno::TypeClass_VOID )
- {
- return uno::Any( xWorkSheets );
- }
- return uno::Any( xWorkSheets->Item( aIndex ) );
-}
-
-void
-ScVbaWorkbook::Close( const uno::Any &rSaveArg, const uno::Any &rFileArg,
- const uno::Any &rRouteArg ) throw (uno::RuntimeException)
-{
- sal_Bool bSaveChanges = sal_False;
- rtl::OUString aFileName;
- sal_Bool bRouteWorkbook = sal_True;
-
- rSaveArg >>= bSaveChanges;
- sal_Bool bFileName = ( rFileArg >>= aFileName );
- rRouteArg >>= bRouteWorkbook;
- uno::Reference< frame::XStorable > xStorable( getModel(), uno::UNO_QUERY_THROW );
- uno::Reference< util::XModifiable > xModifiable( getModel(), uno::UNO_QUERY_THROW );
-
- if( bSaveChanges )
- {
- if( xStorable->isReadonly() )
- {
- throw uno::RuntimeException(::rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM( "Unable to save to a read only file ") ),
- uno::Reference< XInterface >() );
- }
- if( bFileName )
- xStorable->storeAsURL( aFileName, uno::Sequence< beans::PropertyValue >(0) );
- else
- xStorable->store();
- }
- else
- xModifiable->setModified( false );
-
- rtl::OUString url = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:CloseDoc"));
- uno::Reference< frame::XModel > xModel = getModel();
- dispatchRequests(xModel,url);
-}
-
-void
-ScVbaWorkbook::Protect( const uno::Any &aPassword ) throw (uno::RuntimeException)
-{
- rtl::OUString rPassword;
- uno::Reference< util::XProtectable > xProt( getModel(), uno::UNO_QUERY_THROW );
- SC_VBA_FIXME(("Workbook::Protect stub"));
- if( aPassword >>= rPassword )
- xProt->protect( rPassword );
- else
- xProt->protect( rtl::OUString() );
-}
-
-void
-ScVbaWorkbook::Unprotect( const uno::Any &aPassword ) throw (uno::RuntimeException)
-{
- rtl::OUString rPassword;
- uno::Reference< util::XProtectable > xProt( getModel(), uno::UNO_QUERY_THROW );
- if( !getProtectStructure() )
- throw uno::RuntimeException(::rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM( "File is already unprotected" ) ),
- uno::Reference< XInterface >() );
- else
- {
- if( aPassword >>= rPassword )
- xProt->unprotect( rPassword );
- else
- xProt->unprotect( rtl::OUString() );
- }
-}
-
-::sal_Bool
-ScVbaWorkbook::getProtectStructure() throw (uno::RuntimeException)
-{
- uno::Reference< util::XProtectable > xProt( getModel(), uno::UNO_QUERY_THROW );
- return xProt->isProtected();
-}
-
-void
-ScVbaWorkbook::setSaved( sal_Bool bSave ) throw (uno::RuntimeException)
-{
- uno::Reference< util::XModifiable > xModifiable( getModel(), uno::UNO_QUERY_THROW );
- xModifiable->setModified( bSave );
-}
-
-sal_Bool
-ScVbaWorkbook::getSaved() throw (uno::RuntimeException)
-{
- uno::Reference< util::XModifiable > xModifiable( getModel(), uno::UNO_QUERY_THROW );
- return xModifiable->isModified();
-}
-
-void
-ScVbaWorkbook::Save() throw (uno::RuntimeException)
-{
- rtl::OUString url = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(".uno:Save"));
- uno::Reference< frame::XModel > xModel = getModel();
- dispatchRequests(xModel,url);
-}
-
-void
-ScVbaWorkbook::Activate() throw (uno::RuntimeException)
-{
- uno::Reference< frame::XFrame > xFrame( getModel()->getCurrentController()->getFrame(), uno::UNO_QUERY_THROW );
- xFrame->activate();
-}
-
diff --git a/scratch/sc-vba/vbaworkbook.hxx b/scratch/sc-vba/vbaworkbook.hxx
deleted file mode 100644
index bac6c321a..000000000
--- a/scratch/sc-vba/vbaworkbook.hxx
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef SC_VBA_WORKBOOK_HXX
-#define SC_VBA_WORKBOOK_HXX
-
-#include <cppuhelper/implbase1.hxx>
-
-#include <com/sun/star/frame/XModel.hpp>
-#include <org/openoffice/vba/XWorkbook.hpp>
-#include "vbahelper.hxx"
-
-class ScModelObj;
-
-typedef ::cppu::WeakImplHelper1< oo::vba::XWorkbook > ScVbaWorkbook_BASE;
-
-class ScVbaWorkbook : public ScVbaWorkbook_BASE
-{
- css::uno::Reference< css::uno::XComponentContext > m_xContext;
- css::uno::Reference< css::frame::XModel > mxModel;
-protected:
- virtual css::uno::Reference< css::frame::XModel > getModel() { return mxModel; }
- ScVbaWorkbook( css::uno::Reference< css::uno::XComponentContext >& xContext) : m_xContext( xContext ){}
-public:
- ScVbaWorkbook( css::uno::Reference< css::uno::XComponentContext >& xContext,
- css::uno::Reference< css::frame::XModel > xModel ) :
- mxModel( xModel ), m_xContext( xContext ){}
- virtual ~ScVbaWorkbook() {}
-
- // Attributes
- virtual ::rtl::OUString SAL_CALL getName() throw (css::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL getPath() throw (css::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL getFullName() throw (css::uno::RuntimeException);
- virtual ::sal_Bool SAL_CALL getProtectStructure() throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XWorksheet > SAL_CALL getActiveSheet() throw (css::uno::RuntimeException);
- virtual sal_Bool SAL_CALL getSaved() throw (css::uno::RuntimeException);
- virtual void SAL_CALL setSaved( sal_Bool bSave ) throw (css::uno::RuntimeException);
-
- // Methods
- virtual css::uno::Any Worksheets( const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
- virtual void SAL_CALL Close( const css::uno::Any &bSaveChanges,
- const css::uno::Any &aFileName,
- const css::uno::Any &bRouteWorkbook ) throw (css::uno::RuntimeException);
- virtual void SAL_CALL Protect( const css::uno::Any & aPassword ) throw (css::uno::RuntimeException);
- virtual void SAL_CALL Unprotect( const css::uno::Any &aPassword ) throw (css::uno::RuntimeException);
- virtual void SAL_CALL Save() throw (css::uno::RuntimeException);
- virtual void SAL_CALL Activate() throw (css::uno::RuntimeException);
-};
-
-#endif /* SC_VBA_WORKBOOK_HXX */
diff --git a/scratch/sc-vba/vbaworkbooks.cxx b/scratch/sc-vba/vbaworkbooks.cxx
deleted file mode 100644
index bd13cb032..000000000
--- a/scratch/sc-vba/vbaworkbooks.cxx
+++ /dev/null
@@ -1,291 +0,0 @@
-#include <comphelper/processfactory.hxx>
-
-#include <cppuhelper/implbase1.hxx>
-#include <cppuhelper/implbase3.hxx>
-
-#include <com/sun/star/frame/XDesktop.hpp>
-#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
-#include <com/sun/star/container/XEnumerationAccess.hpp>
-#include <com/sun/star/frame/XComponentLoader.hpp>
-#include <com/sun/star/lang/XComponent.hpp>
-#include <com/sun/star/frame/XModel.hpp>
-#include <com/sun/star/frame/XFrame.hpp>
-#include <com/sun/star/frame/FrameSearchFlag.hpp>
-#include <com/sun/star/util/XModifiable.hpp>
-#include <com/sun/star/frame/XStorable.hpp>
-#include <com/sun/star/lang/DisposedException.hpp>
-#include <com/sun/star/beans/PropertyVetoException.hpp>
-#include <com/sun/star/util/XCloseable.hpp>
-#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
-
-#include <sfx2/objsh.hxx>
-#include <tools/urlobj.hxx>
-
-#include "vbaglobals.hxx"
-#include "vbaworkbook.hxx"
-#include "vbaworkbooks.hxx"
-#include "vbahelper.hxx"
-
-#include <hash_map>
-
-using namespace ::org::openoffice;
-using namespace ::com::sun::star;
-
-
-typedef std::hash_map< rtl::OUString,
-sal_Int32, ::rtl::OUStringHash,
-::std::equal_to< ::rtl::OUString > > NameIndexHash;
-
-typedef std::vector < uno::Reference< sheet::XSpreadsheetDocument > > WorkBooks;
-
-typedef ::cppu::WeakImplHelper1< container::XEnumeration > SpreadSheetDocEnumImpl_BASE;
-
-static uno::Any
-getWorkbook( uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< sheet::XSpreadsheetDocument > &xDoc )
-{
- // FIXME: fine as long as ScVbaWorkbook is stateless ...
- uno::Reference< frame::XModel > xModel( xDoc, uno::UNO_QUERY );
- if( !xModel.is() )
- return uno::Any();
-
- ScVbaWorkbook *pWb = new ScVbaWorkbook( xContext, xModel );
- return uno::Any( uno::Reference< vba::XWorkbook > (pWb) );
-}
-
-
-// #FIXME clearly this is a candidate for some sort of helper base class as
-// this is a copy of SelectedSheetsEnum ( vbawindow.cxx )
-
-class SpreadSheetDocEnumImpl : public SpreadSheetDocEnumImpl_BASE
-{
- uno::Reference< uno::XComponentContext > m_xContext;
- WorkBooks m_books;
- WorkBooks::const_iterator m_it;
-
-public:
- SpreadSheetDocEnumImpl( const uno::Reference< uno::XComponentContext >& xContext, const WorkBooks& books ) throw ( uno::RuntimeException ) : m_xContext( xContext ), m_books( books )
- {
- m_it = m_books.begin();
- }
- SpreadSheetDocEnumImpl( const uno::Reference< uno::XComponentContext >& xContext ) throw ( uno::RuntimeException ) : m_xContext( xContext )
- {
- uno::Reference< lang::XMultiComponentFactory > xSMgr(
- m_xContext->getServiceManager(), uno::UNO_QUERY_THROW );
-
- uno::Reference< frame::XDesktop > xDesktop
- (xSMgr->createInstanceWithContext(::rtl::OUString::createFromAscii("com.sun.star.frame.Desktop"), m_xContext), uno::UNO_QUERY_THROW );
- uno::Reference< container::XEnumeration > mxComponents = xDesktop->getComponents()->createEnumeration();
- sal_Int32 nIndex=0;
- while( mxComponents->hasMoreElements() )
- {
- uno::Reference< sheet::XSpreadsheetDocument > xNext( mxComponents->nextElement(), uno::UNO_QUERY );
- if ( xNext.is() )
- m_books.push_back( xNext );
- }
- m_it = m_books.begin();
- }
- // XEnumeration
- virtual ::sal_Bool SAL_CALL hasMoreElements( ) throw (uno::RuntimeException)
- {
- return m_it != m_books.end();
- }
-
- virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
- {
- if ( !hasMoreElements() )
- {
- throw container::NoSuchElementException();
- }
- return makeAny( *(m_it++) );
- }
-};
-
-class WorkBookEnumImpl : public EnumerationHelperImpl
-{
-public:
- WorkBookEnumImpl( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XEnumeration >& xEnumeration ) throw ( uno::RuntimeException ) : EnumerationHelperImpl( xContext, xEnumeration ){}
-
- virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
- {
- uno::Reference< sheet::XSpreadsheetDocument > xDoc( m_xEnumeration->nextElement(), uno::UNO_QUERY_THROW );
- return getWorkbook( m_xContext, xDoc );
- }
-
-};
-
-// #FIXME clearly this is also a candidate for some sort of helper base class as
-// a very similar one is used in vbawindow ( SelectedSheetsEnumAccess )
-// Maybe a template base class that does all of the operations on the hashmap
-// and vector only, and the sub-class does everything else
-// => ctor, createEnumeration & factory method need be defined ( to be called
-// by getByIndex, getByName )
-typedef ::cppu::WeakImplHelper3< container::XEnumerationAccess
- , com::sun::star::container::XIndexAccess
- , com::sun::star::container::XNameAccess
- > WorkBooksAccessImpl_BASE;
-
-class WorkBooksAccessImpl : public WorkBooksAccessImpl_BASE
-{
- uno::Reference< uno::XComponentContext > m_xContext;
- WorkBooks m_books;
- NameIndexHash namesToIndices;
-public:
- WorkBooksAccessImpl( const uno::Reference< uno::XComponentContext >& xContext ):m_xContext( xContext )
- {
- uno::Reference< container::XEnumeration > xEnum = new SpreadSheetDocEnumImpl( m_xContext );
- sal_Int32 nIndex=0;
- while( xEnum->hasMoreElements() )
- {
- uno::Reference< sheet::XSpreadsheetDocument > xNext( xEnum->nextElement(), uno::UNO_QUERY );
- if ( xNext.is() )
- {
- m_books.push_back( xNext );
- uno::Reference< frame::XModel > xModel( xNext, uno::UNO_QUERY_THROW ); // that the spreadsheetdocument is a xmodel is a given
- INetURLObject aURL( xModel->getURL() );
- aURL.CutLastName();
- namesToIndices[ aURL.GetURLPath() ] = nIndex++;
- }
- }
-
- }
-
- //XEnumerationAccess
- virtual uno::Reference< container::XEnumeration > SAL_CALL createEnumeration( ) throw (uno::RuntimeException)
- {
- return new SpreadSheetDocEnumImpl( m_xContext, m_books );
- }
- // XIndexAccess
- virtual ::sal_Int32 SAL_CALL getCount( ) throw (uno::RuntimeException)
- {
- return m_books.size();
- }
- virtual uno::Any SAL_CALL getByIndex( ::sal_Int32 Index ) throw ( lang::IndexOutOfBoundsException, lang::WrappedTargetException, uno::RuntimeException)
- {
- if ( Index < 0
- || Index >= m_books.size() )
- throw lang::IndexOutOfBoundsException();
- return makeAny( m_books[ Index ] ); // returns xspreadsheetdoc
- }
-
- //XElementAccess
- virtual uno::Type SAL_CALL getElementType( ) throw (uno::RuntimeException)
- {
- return sheet::XSpreadsheetDocument::static_type(0);
- }
-
- virtual ::sal_Bool SAL_CALL hasElements( ) throw (uno::RuntimeException)
- {
- return (m_books.size() > 0);
- }
-
- //XNameAccess
- virtual uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
- {
- NameIndexHash::const_iterator it = namesToIndices.find( aName );
- if ( it == namesToIndices.end() )
- throw container::NoSuchElementException();
- return makeAny( m_books[ it->second ] );
-
- }
-
- virtual uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames( ) throw (uno::RuntimeException)
- {
- uno::Sequence< ::rtl::OUString > names( namesToIndices.size() );
- ::rtl::OUString* pString = names.getArray();
- NameIndexHash::const_iterator it = namesToIndices.begin();
- NameIndexHash::const_iterator it_end = namesToIndices.end();
- for ( ; it != it_end; ++it, ++pString )
- *pString = it->first;
- return names;
- }
-
- virtual ::sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) throw (uno::RuntimeException)
- {
- NameIndexHash::const_iterator it = namesToIndices.find( aName );
- return (it != namesToIndices.end());
- }
-
-};
-
-ScVbaWorkbooks::ScVbaWorkbooks( const uno::Reference< css::uno::XComponentContext >& xContext ) : ScVbaWorkbooks_BASE( xContext, uno::Reference< container::XIndexAccess >( new WorkBooksAccessImpl( xContext ) ) )
-{
-}
-// XEnumerationAccess
-uno::Type
-ScVbaWorkbooks::getElementType() throw (uno::RuntimeException)
-{
- return vba::XWorkbook::static_type(0);
-}
-uno::Reference< container::XEnumeration >
-ScVbaWorkbooks::createEnumeration() throw (uno::RuntimeException)
-{
- return new WorkBookEnumImpl( m_xContext, uno::Reference< container::XEnumeration >( new SpreadSheetDocEnumImpl(m_xContext) ) );
-}
-
-uno::Any
-ScVbaWorkbooks::createCollectionObject( const css::uno::Any& aSource )
-{
- uno::Reference< sheet::XSpreadsheetDocument > xDoc( aSource, uno::UNO_QUERY );
- return getWorkbook( m_xContext, xDoc );
-}
-
-
-uno::Any SAL_CALL
-ScVbaWorkbooks::Add() throw (uno::RuntimeException)
-{
- uno::Reference< lang::XMultiComponentFactory > xSMgr(
- m_xContext->getServiceManager(), uno::UNO_QUERY_THROW );
-
- uno::Reference< frame::XComponentLoader > xLoader(
- xSMgr->createInstanceWithContext(
- ::rtl::OUString::createFromAscii("com.sun.star.frame.Desktop"),
- m_xContext), uno::UNO_QUERY_THROW );
- uno::Reference< lang::XComponent > xComponent = xLoader->loadComponentFromURL(
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("private:factory/scalc") ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("_blank") ), 0,
- uno::Sequence< beans::PropertyValue >(0) );
- uno::Reference <sheet::XSpreadsheetDocument> xSpreadDoc( xComponent, uno::UNO_QUERY_THROW );
-
- if( xSpreadDoc.is() )
- return getWorkbook( m_xContext, xSpreadDoc );
- return uno::Any();
-}
-
-void
-ScVbaWorkbooks::Close() throw (uno::RuntimeException)
-{
- uno::Reference< lang::XMultiComponentFactory > xSMgr(
- m_xContext->getServiceManager(), uno::UNO_QUERY_THROW );
- uno::Reference< frame::XModel > xModel( getCurrentDocument(), uno::UNO_QUERY_THROW );
- rtl::OUString url = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:CloseDoc"));
- dispatchRequests(xModel,url);
-}
-
-uno::Any
-ScVbaWorkbooks::Open( const uno::Any &aFileName ) throw (uno::RuntimeException)
-{
- rtl::OUString aURL(rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("file://") ));
- rtl::OUString aTempName;
- aFileName >>= aTempName;
- aURL += aTempName;
-
- uno::Reference< lang::XMultiComponentFactory > xSMgr(
- m_xContext->getServiceManager(), uno::UNO_QUERY_THROW );
-
- uno::Reference< frame::XDesktop > xDesktop
- (xSMgr->createInstanceWithContext(::rtl::OUString::createFromAscii("com.sun.star.frame.Desktop") , m_xContext),
- uno::UNO_QUERY_THROW );
- uno::Reference< frame::XComponentLoader > xLoader(
- xSMgr->createInstanceWithContext(
- ::rtl::OUString::createFromAscii("com.sun.star.frame.Desktop"),
- m_xContext),
- uno::UNO_QUERY_THROW );
- uno::Reference< lang::XComponent > xComponent = xLoader->loadComponentFromURL( aURL,
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("_default") ),
- frame::FrameSearchFlag::CREATE,
- uno::Sequence< beans::PropertyValue >(0));
- uno::Reference <sheet::XSpreadsheetDocument> xSpreadDoc( xComponent, uno::UNO_QUERY_THROW );
- return getWorkbook( m_xContext, xSpreadDoc );
-}
-
-
diff --git a/scratch/sc-vba/vbaworkbooks.hxx b/scratch/sc-vba/vbaworkbooks.hxx
deleted file mode 100644
index 6612a3efb..000000000
--- a/scratch/sc-vba/vbaworkbooks.hxx
+++ /dev/null
@@ -1,48 +0,0 @@
-#ifndef SC_VBA_WORKBOOKS_HXX
-#define SC_VBA_WORKBOOKS_HXX
-
-
-#include "vbacollectionimpl.hxx"
-#include <org/openoffice/vba/XGlobals.hpp>
-#include <org/openoffice/vba/XWorkbooks.hpp>
-#include <com/sun/star/container/XEnumerationAccess.hpp>
-#include "vbahelper.hxx"
-
-
-class ScModelObj;
-
-typedef ::cppu::ImplInheritanceHelper1< ScVbaCollectionBaseImpl, oo::vba::XWorkbooks > ScVbaWorkbooks_BASE;
-
-class ScVbaWorkbooks : public ScVbaWorkbooks_BASE
-{
-private:
- css::uno::Reference< oo::vba::XGlobals > getGlobals() throw (css::uno::RuntimeException);
-
-public:
- //ScVbaWorkbooks( const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::container::XIndexAccess >& xIndexAccess );
- ScVbaWorkbooks( const css::uno::Reference< css::uno::XComponentContext >& xContext );
- virtual ~ScVbaWorkbooks() {}
-
- // XEnumerationAccess
- virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException);
- virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException);
-
- // ScVbaCollectionBaseImpl
- virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource );
-
- // XWorkbooks
- virtual css::uno::Any SAL_CALL Add() throw (css::uno::RuntimeException);
- virtual void SAL_CALL Close( ) throw (css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL Open(const css::uno::Any &aFileName) throw (css::uno::RuntimeException);
-
-// delete these
- //virtual ::sal_Int32 SAL_CALL getCount() throw (css::uno::RuntimeException);
- //virtual css::uno::Any SAL_CALL getParent() throw (css::uno::RuntimeException);
- //virtual ::sal_Int32 SAL_CALL getCreator() throw (css::uno::RuntimeException);
- //virtual css::uno::Reference< oo::vba::XApplication > SAL_CALL getApplication() throw (css::uno::RuntimeException);
-
- //virtual css::uno::Any SAL_CALL Item( const css::uno::Any& Index ) throw (css::uno::RuntimeException);
-
-};
-
-#endif /* SC_VBA_WORKBOOKS_HXX */
diff --git a/scratch/sc-vba/vbaworksheet.cxx b/scratch/sc-vba/vbaworksheet.cxx
deleted file mode 100644
index e34593d33..000000000
--- a/scratch/sc-vba/vbaworksheet.cxx
+++ /dev/null
@@ -1,538 +0,0 @@
-#include <cppuhelper/queryinterface.hxx>
-
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/container/XNamed.hpp>
-#include <com/sun/star/util/XProtectable.hpp>
-#include <com/sun/star/table/XCellRange.hpp>
-#include <com/sun/star/sheet/XSpreadsheetView.hpp>
-#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
-#include <com/sun/star/sheet/XCalculatable.hpp>
-#include <com/sun/star/sheet/XCellRangeAddressable.hpp>
-#include <com/sun/star/sheet/XSheetCellRange.hpp>
-#include <com/sun/star/sheet/XSheetCellCursor.hpp>
-#include <com/sun/star/sheet/XUsedAreaCursor.hpp>
-#include <com/sun/star/sheet/XSpreadsheets.hpp>
-#include <com/sun/star/sheet/XSheetPastable.hpp>
-#include <com/sun/star/sheet/XCellAddressable.hpp>
-#include <com/sun/star/sheet/XSheetOutline.hpp>
-#include <com/sun/star/sheet/XDataPilotTablesSupplier.hpp>
-#include <cppuhelper/bootstrap.hxx>
-#include <com/sun/star/util/XURLTransformer.hpp>
-#include <com/sun/star/frame/XDispatchProvider.hpp>
-#include <com/sun/star/frame/XComponentLoader.hpp>
-#include <com/sun/star/table/XColumnRowRange.hpp>
-#include <com/sun/star/table/XTableChartsSupplier.hpp>
-#include <tools/string.hxx>
-
-#include "vbaoutline.hxx"
-#include "vbarange.hxx"
-#include "vbaworksheet.hxx"
-#include "vbachartobjects.hxx"
-#include "vbapivottables.hxx"
-
-#define STANDARDWIDTH 2267
-#define STANDARDHEIGHT 427
-#define DOESNOTEXIST -1
-using namespace com::sun::star;
-using namespace org::openoffice;
-static sal_Int16
-nameExists( uno::Reference <sheet::XSpreadsheetDocument>& xSpreadDoc, ::rtl::OUString & name) throw ( lang::IllegalArgumentException )
-{
- if (!xSpreadDoc.is())
- throw lang::IllegalArgumentException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "nameExists() xSpreadDoc is null" ) ), uno::Reference< uno::XInterface >(), 1 );
- uno::Reference <sheet::XSpreadsheets> xSheets = xSpreadDoc->getSheets();
- uno::Reference <container::XIndexAccess> xIndex( xSheets, uno::UNO_QUERY );
- if ( xIndex.is() )
- {
- sal_Int32 nCount = xIndex->getCount();
- for (sal_Int32 i=0; i < nCount; i++)
- {
- uno::Reference< sheet::XSpreadsheet > xSheet(xIndex->getByIndex(i), uno::UNO_QUERY);
- uno::Reference< container::XNamed > xNamed( xSheet, uno::UNO_QUERY_THROW );
- if (xNamed->getName() == name)
- {
- return i;
- }
- }
- }
- return DOESNOTEXIST;
-}
-
-static void getNewSpreadsheetName (rtl::OUString &aNewName, rtl::OUString aOldName, uno::Reference <sheet::XSpreadsheetDocument>& xSpreadDoc )
-{
- if (!xSpreadDoc.is())
- throw lang::IllegalArgumentException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "getNewSpreadsheetName() xSpreadDoc is null" ) ), uno::Reference< uno::XInterface >(), 1 );
- static rtl::OUString aUnderScre( RTL_CONSTASCII_USTRINGPARAM( "_" ) );
- int currentNum =2;
- aNewName = aOldName + aUnderScre+
- String::CreateFromInt32(currentNum) ;
- while ( nameExists(xSpreadDoc,aNewName) != DOESNOTEXIST )
- {
- aNewName = aOldName + aUnderScre +
- String::CreateFromInt32(++currentNum) ;
- }
-}
-
-static void removeAllSheets( uno::Reference <sheet::XSpreadsheetDocument>& xSpreadDoc, rtl::OUString aSheetName)
-{
- if (!xSpreadDoc.is())
- throw lang::IllegalArgumentException( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "removeAllSheets() xSpreadDoc is null" ) ), uno::Reference< uno::XInterface >(), 1 );
- uno::Reference<sheet::XSpreadsheets> xSheets = xSpreadDoc->getSheets();
- uno::Reference <container::XIndexAccess> xIndex( xSheets, uno::UNO_QUERY );
-
- if ( xIndex.is() )
- {
- uno::Reference<container::XNameContainer> xNameContainer(xSheets,uno::UNO_QUERY_THROW);
- for (sal_Int32 i = xIndex->getCount() -1; i>= 1; i--)
- {
- uno::Reference< sheet::XSpreadsheet > xSheet(xIndex->getByIndex(i), uno::UNO_QUERY);
- uno::Reference< container::XNamed > xNamed( xSheet, uno::UNO_QUERY_THROW );
- if (xNamed.is())
- {
- xNameContainer->removeByName(xNamed->getName());
- }
- }
-
- uno::Reference< sheet::XSpreadsheet > xSheet(xIndex->getByIndex(0), uno::UNO_QUERY); uno::Reference< container::XNamed > xNamed( xSheet, uno::UNO_QUERY_THROW );
- if (xNamed.is())
- {
- xNamed->setName(aSheetName);
- }
- }
-}
-
-static uno::Reference<frame::XModel>
-openNewDoc(rtl::OUString aSheetName )
-{
- uno::Reference<frame::XModel> xModel;
- try
- {
- uno::Reference<uno::XComponentContext > xContext( ::cppu::defaultBootstrap_InitialComponentContext());
- if ( !xContext.is() )
- {
- return xModel;
- }
- uno::Reference<lang::XMultiComponentFactory > xServiceManager(
- xContext->getServiceManager() );
- if ( !xServiceManager.is() )
- {
- return xModel;
- }
- uno::Reference <frame::XComponentLoader > xComponentLoader(
- xServiceManager->createInstanceWithContext(
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.frame.Desktop" ) ),
- xContext ), uno::UNO_QUERY_THROW );
-
- uno::Reference<lang::XComponent > xComponent( xComponentLoader->loadComponentFromURL(
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "private:factory/scalc" ) ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_blank" ) ), 0,
- uno::Sequence < ::com::sun::star::beans::PropertyValue >() ) );
- uno::Reference <sheet::XSpreadsheetDocument> xSpreadDoc( xComponent, uno::UNO_QUERY_THROW );
- if ( xSpreadDoc.is() )
- {
- removeAllSheets(xSpreadDoc,aSheetName);
- }
- uno::Reference<frame::XModel> xModel(xSpreadDoc,uno::UNO_QUERY_THROW);
- return xModel;
- }
- catch ( ::cppu::BootstrapException & e )
- {
- return xModel;
- }
- catch ( uno::Exception & e )
- {
- return xModel;
- }
-}
-
-
-ScVbaWorksheet::ScVbaWorksheet( const uno::Reference< uno::XComponentContext >& xContext ): m_xContext( xContext )
-{
-}
-ScVbaWorksheet::ScVbaWorksheet(const uno::Reference< uno::XComponentContext >& xContext,
- const uno::Reference< sheet::XSpreadsheet >& xSheet,
- const uno::Reference< frame::XModel >& xModel ) throw (uno::RuntimeException) : m_xContext(xContext), mxSheet( xSheet ), mxModel(xModel)
-{
-}
-
-::rtl::OUString
-ScVbaWorksheet::getName() throw (uno::RuntimeException)
-{
- uno::Reference< container::XNamed > xNamed( getSheet(), uno::UNO_QUERY_THROW );
- return xNamed->getName();
-}
-
-void
-ScVbaWorksheet::setName(const ::rtl::OUString &rName ) throw (uno::RuntimeException)
-{
- uno::Reference< container::XNamed > xNamed( getSheet(), uno::UNO_QUERY_THROW );
- xNamed->setName( rName );
-}
-
-sal_Bool
-ScVbaWorksheet::getVisible() throw (uno::RuntimeException)
-{
- uno::Reference< beans::XPropertySet > xProps( getSheet(), uno::UNO_QUERY_THROW );
- uno::Any aValue = xProps->getPropertyValue
- (rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsVisible" ) ) );
- sal_Bool bRet = false;
- aValue >>= bRet;
- return bRet;
-}
-
-void
-ScVbaWorksheet::setVisible( sal_Bool bVisible ) throw (uno::RuntimeException)
-{
- uno::Reference< beans::XPropertySet > xProps( getSheet(), uno::UNO_QUERY_THROW );
- uno::Any aValue( bVisible );
- xProps->setPropertyValue
- (rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsVisible" ) ), aValue);
-}
-
-uno::Reference< vba::XRange >
-ScVbaWorksheet::getUsedRange() throw (uno::RuntimeException)
-{
- uno::Reference< sheet::XSheetCellRange > xSheetCellRange(getSheet(), uno::UNO_QUERY_THROW );
- uno::Reference< sheet::XSheetCellCursor > xSheetCellCursor( getSheet()->createCursorByRange( xSheetCellRange ), uno::UNO_QUERY_THROW );
- uno::Reference<sheet::XUsedAreaCursor> xUsedCursor(xSheetCellCursor,uno::UNO_QUERY_THROW);
- xUsedCursor->gotoStartOfUsedArea( false );
- xUsedCursor->gotoEndOfUsedArea( true );
- uno::Reference< table::XCellRange > xRange( xSheetCellCursor, uno::UNO_QUERY);
- return new ScVbaRange(m_xContext, xRange);
-}
-
-uno::Reference< vba::XOutline >
-ScVbaWorksheet::Outline( ) throw (uno::RuntimeException)
-{
- uno::Reference<sheet::XSheetOutline> xOutline(getSheet(),uno::UNO_QUERY_THROW);
- return uno::Reference<vba::XOutline> (new ScVbaOutline(m_xContext, xOutline));
-}
-
-sal_Int32
-ScVbaWorksheet::getStandardWidth() throw (uno::RuntimeException)
-{
- return STANDARDWIDTH ;
-}
-
-sal_Int32
-ScVbaWorksheet::getStandardHeight() throw (uno::RuntimeException)
-{
- return STANDARDHEIGHT;
-}
-
-sal_Bool
-ScVbaWorksheet::getProtectionMode() throw (uno::RuntimeException)
-{
- return false;
-}
-
-sal_Bool
-ScVbaWorksheet::getProtectContents()throw (uno::RuntimeException)
-{
- uno::Reference<util::XProtectable > xProtectable(getSheet(), uno::UNO_QUERY_THROW);
- return xProtectable->isProtected();
-}
-
-sal_Bool
-ScVbaWorksheet::getProtectDrawingObjects() throw (uno::RuntimeException)
-{
- return false;
-}
-
-void
-ScVbaWorksheet::Activate() throw (uno::RuntimeException)
-{
- uno::Reference< sheet::XSpreadsheetView > xSpreadsheet(
- getModel()->getCurrentController(), uno::UNO_QUERY_THROW );
- xSpreadsheet->setActiveSheet(getSheet());
-}
-
-void
-ScVbaWorksheet::Select() throw (uno::RuntimeException)
-{
- Activate();
-}
-
-void
-ScVbaWorksheet::Move( const uno::Any& Before, const uno::Any& After ) throw (uno::RuntimeException)
-{
- rtl::OUString aSheetName;
- uno::Reference<vba::XWorksheet> xSheet;
- rtl::OUString aCurrSheetName =getName();
-
- if (!(Before >>= xSheet) && !(After >>=xSheet)&& !(Before.hasValue()) && !(After.hasValue()))
- {
- uno::Reference< sheet::XSheetCellCursor > xSheetCellCursor = getSheet()->createCursor( );
- uno::Reference<sheet::XUsedAreaCursor> xUsedCursor(xSheetCellCursor,uno::UNO_QUERY_THROW);
- uno::Reference< table::XCellRange > xRange1( xSheetCellCursor, uno::UNO_QUERY);
- uno::Reference<vba::XRange> xRange = new ScVbaRange(m_xContext, xRange1);
- if (xRange.is())
- xRange->Select();
- implnCopy();
- uno::Reference<frame::XModel> xModel = openNewDoc(aCurrSheetName);
- if (xModel.is())
- {
- implnPaste();
- Delete();
- }
- return ;
- }
-
- uno::Reference <sheet::XSpreadsheetDocument> xSpreadDoc( getModel(), uno::UNO_QUERY_THROW );
- sal_Int32 nDest = DOESNOTEXIST;
- sal_Bool bAfter = false;
- if (Before >>= xSheet )
- {
- aSheetName = xSheet->getName();
- nDest = nameExists (xSpreadDoc, aSheetName);
- }
- else if (After >>= xSheet)
- {
- aSheetName = xSheet->getName();
- nDest = nameExists (xSpreadDoc, aSheetName);
- bAfter =true;
- }
-
- if (nDest != DOESNOTEXIST)
- {
- if (bAfter) nDest++;
- uno::Reference<sheet::XSpreadsheets> xSheets = xSpreadDoc->getSheets();
- xSheets->moveByName(aCurrSheetName,nDest);
- }
-}
-
-void
-ScVbaWorksheet::Copy( const uno::Any& Before, const uno::Any& After ) throw (uno::RuntimeException)
-{
- rtl::OUString aSheetName;
- uno::Reference<vba::XWorksheet> xSheet;
- rtl::OUString aCurrSheetName =getName();
- if (!(Before >>= xSheet) && !(After >>=xSheet)&& !(Before.hasValue()) && !(After.hasValue()))
- {
- uno::Reference< sheet::XSheetCellCursor > xSheetCellCursor = getSheet()->createCursor( );
- uno::Reference<sheet::XUsedAreaCursor> xUsedCursor(xSheetCellCursor,uno::UNO_QUERY_THROW);
- uno::Reference< table::XCellRange > xRange1( xSheetCellCursor, uno::UNO_QUERY);
- uno::Reference<vba::XRange> xRange = new ScVbaRange(m_xContext, xRange1);
- if (xRange.is())
- xRange->Select();
- implnCopy();
- uno::Reference<frame::XModel> xModel = openNewDoc(aCurrSheetName);
- if (xModel.is())
- {
- implnPaste();
- }
- return;
- }
-
- uno::Reference <sheet::XSpreadsheetDocument> xSpreadDoc( getModel(), uno::UNO_QUERY );
- sal_Int32 nDest = DOESNOTEXIST;
- sal_Bool bAfter = false;
- if (Before >>= xSheet )
- {
- aSheetName = xSheet->getName();
- nDest = nameExists (xSpreadDoc, aSheetName);
- }
- else if (After >>= xSheet)
- {
- aSheetName = xSheet->getName();
- nDest = nameExists (xSpreadDoc, aSheetName);
- bAfter =true;
- }
-
- if (nDest != DOESNOTEXIST)
- {
- if(bAfter) nDest++;
- uno::Reference<sheet::XSpreadsheets> xSheets = xSpreadDoc->getSheets();
- getNewSpreadsheetName(aSheetName,aCurrSheetName,xSpreadDoc);
- xSheets->copyByName(aCurrSheetName,aSheetName,nDest);
- }
-}
-
-void
-ScVbaWorksheet::Paste( const uno::Any& Destination, const uno::Any& Link ) throw (uno::RuntimeException)
-{
- uno::Reference<vba::XRange> xRange( Destination, uno::UNO_QUERY );
- if ( xRange.is() )
- xRange->Select();
- implnPaste();
-}
-
-void
-ScVbaWorksheet::Delete() throw (uno::RuntimeException)
-{
- uno::Reference <sheet::XSpreadsheetDocument> xSpreadDoc( getModel(), uno::UNO_QUERY_THROW );
- rtl::OUString aSheetName = getName();
- if ( xSpreadDoc.is() )
- {
- if (!nameExists(xSpreadDoc, aSheetName))
- {
- return;
- }
- uno::Reference<sheet::XSpreadsheets> xSheets = xSpreadDoc->getSheets();
- uno::Reference<container::XNameContainer> xNameContainer(xSheets,uno::UNO_QUERY_THROW);
- xNameContainer->removeByName(aSheetName);
- }
-}
-
-uno::Reference< vba::XWorksheet >
-ScVbaWorksheet::getSheetAtOffset(int offset) throw (uno::RuntimeException)
-{
- uno::Reference <sheet::XSpreadsheetDocument> xSpreadDoc( getModel(), uno::UNO_QUERY_THROW );
- uno::Reference <sheet::XSpreadsheets> xSheets( xSpreadDoc->getSheets(), uno::UNO_QUERY_THROW );
- uno::Reference <container::XIndexAccess> xIndex( xSheets, uno::UNO_QUERY_THROW );
-
- rtl::OUString aName = getName();
- sal_Int16 nIdx = nameExists (xSpreadDoc, aName);
- if (nIdx >= 0)
- nIdx += offset;
-
- if (nIdx < 0 || nIdx >= xIndex->getCount()) // TESTME - throw ?
- return uno::Reference< vba::XWorksheet >();
- else
- {
- uno::Reference< sheet::XSpreadsheet > xSheet(xIndex->getByIndex(nIdx), uno::UNO_QUERY_THROW);
- return new ScVbaWorksheet (m_xContext, xSheet, getModel());
- }
-}
-
-uno::Reference< vba::XWorksheet >
-ScVbaWorksheet::getNext() throw (uno::RuntimeException)
-{
- return getSheetAtOffset(1);
-}
-
-uno::Reference< vba::XWorksheet >
-ScVbaWorksheet::getPrevious() throw (uno::RuntimeException)
-{
- return getSheetAtOffset(-1);
-}
-
-void
-ScVbaWorksheet::Protect( const uno::Any& Password, const uno::Any& DrawingObjects, const uno::Any& Contents, const uno::Any& Scenarios, const uno::Any& UserInterfaceOnly ) throw (uno::RuntimeException)
-{
- uno::Reference<util::XProtectable > xProtectable(getSheet(), uno::UNO_QUERY_THROW);
- ::rtl::OUString aPasswd;
- Password >>= aPasswd;
- xProtectable->protect( aPasswd );
-}
-
-void
-ScVbaWorksheet::Unprotect( const uno::Any& Password ) throw (uno::RuntimeException)
-{
- uno::Reference<util::XProtectable > xProtectable(getSheet(), uno::UNO_QUERY_THROW);
- ::rtl::OUString aPasswd;
- Password >>= aPasswd;
- xProtectable->unprotect( aPasswd );
-}
-
-void
-ScVbaWorksheet::Calculate() throw (uno::RuntimeException)
-{
- uno::Reference <sheet::XCalculatable> xReCalculate(getModel(), uno::UNO_QUERY_THROW);
- xReCalculate->calculate();
-}
-
-uno::Reference< vba::XRange >
-ScVbaWorksheet::Range( const ::uno::Any &rRange ) throw (uno::RuntimeException)
-{
- rtl::OUString aStringRange;
- rRange >>= aStringRange;
- uno::Reference< table::XCellRange > xRanges( getSheet(), uno::UNO_QUERY_THROW );
- OSL_TRACE("Trying to cell range by %s", rtl::OUStringToOString(
- aStringRange, RTL_TEXTENCODING_UTF8 ).getStr() );
- try
- {
- uno::Reference< table::XCellRange > xRange = xRanges->getCellRangeByName( aStringRange );
- }
- catch ( uno::Exception& e )
- {
- OSL_TRACE("** Caught Exception with msg: %s",
- rtl::OUStringToOString( e.Message,
- RTL_TEXTENCODING_UTF8 ).getStr() );
- }
- return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, xRanges->getCellRangeByName( aStringRange ) ) );
-}
-
-void
-ScVbaWorksheet::CheckSpelling( const uno::Any& CustomDictionary,const uno::Any& IgnoreUppercase,const uno::Any& AlwaysSuggest, const uno::Any& SpellingLang ) throw (uno::RuntimeException)
-{
- rtl::OUString url = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:SpellDialog"));
- uno::Reference< frame::XModel > xModel( getModel() );
- dispatchRequests(xModel,url);
-}
-
-uno::Reference< vba::XRange >
-ScVbaWorksheet::getSheetRange() throw (uno::RuntimeException)
-{
- uno::Reference< table::XCellRange > xRange( getSheet(),uno::UNO_QUERY_THROW );
- return uno::Reference< vba::XRange >( new ScVbaRange( m_xContext, xRange ) );
-}
-
-// These are hacks - we prolly (somehow) need to inherit
-// the vbarange functionality here ...
-uno::Reference< vba::XRange >
-ScVbaWorksheet::Cells( const ::uno::Any &nRow, const ::uno::Any &nCol )
- throw (uno::RuntimeException)
-{
- return getSheetRange()->Cells( nRow, nCol );
-}
-
-uno::Reference< vba::XRange >
-ScVbaWorksheet::Rows(const uno::Any& aIndex ) throw (uno::RuntimeException)
-{
- return getSheetRange()->Rows( aIndex );
-}
-
-uno::Reference< vba::XRange >
-ScVbaWorksheet::Columns( const uno::Any& aIndex ) throw (uno::RuntimeException)
-{
- return getSheetRange()->Columns( aIndex );
-}
-
-uno::Any SAL_CALL
-ScVbaWorksheet::ChartObjects( const uno::Any& Index ) throw (uno::RuntimeException)
-{
- if ( !mxCharts.is() )
- {
- uno::Reference< table::XTableChartsSupplier > xChartSupplier( getSheet(), uno::UNO_QUERY_THROW );
- uno::Reference< table::XTableCharts > xTableCharts = xChartSupplier->getCharts();
-
- mxCharts = new ScVbaChartObjects( m_xContext, xTableCharts );
- }
- if ( Index.hasValue() )
- {
- uno::Reference< vba::XCollection > xColl( mxCharts, uno::UNO_QUERY_THROW );
- return xColl->Item( Index );
- }
- else
- return makeAny( mxCharts );
-
-}
-
-uno::Any SAL_CALL
-ScVbaWorksheet::PivotTables( const uno::Any& Index ) throw (uno::RuntimeException)
-{
- uno::Reference< css::sheet::XSpreadsheet > xSheet = getSheet();
- uno::Reference< sheet::XDataPilotTablesSupplier > xTables(xSheet, uno::UNO_QUERY_THROW ) ;
- uno::Reference< container::XIndexAccess > xIndexAccess( xTables->getDataPilotTables(), uno::UNO_QUERY_THROW );
-
- uno::Reference< vba::XCollection > xColl( uno::Reference< vba::XPivotTables > ( new ScVbaPivotTables( m_xContext, xIndexAccess ) ), uno::UNO_QUERY_THROW );
- if ( Index.hasValue() )
- return xColl->Item( Index );
- return makeAny( xColl );
-
-
-}
-
-uno::Any SAL_CALL
-ScVbaWorksheet::Evaluate( const ::rtl::OUString& Name ) throw (uno::RuntimeException)
-{
- // #TODO Evaluate allows other things to be evaluated, e.g. functions
- // I think ( like SIN(3) etc. ) need to investigate that
- // named Ranges also? e.g. [MyRange] if so need a list of named ranges
- if ( isRangeShortCut( Name ) )
- return uno::Any( Range( uno::Any( Name ) ) );
-
- return uno::Any();
-}
-
diff --git a/scratch/sc-vba/vbaworksheet.hxx b/scratch/sc-vba/vbaworksheet.hxx
deleted file mode 100644
index 7fe219d1f..000000000
--- a/scratch/sc-vba/vbaworksheet.hxx
+++ /dev/null
@@ -1,82 +0,0 @@
-#ifndef SC_VBA_WORKSHEET_HXX
-#define SC_VBA_WORKSHEET_HXX
-
-#include <cppuhelper/implbase1.hxx>
-#include <com/sun/star/sheet/XSpreadsheet.hpp>
-#include <org/openoffice/vba/XWorksheet.hpp>
-#include <org/openoffice/vba/XRange.hpp>
-#include <com/sun/star/lang/XEventListener.hpp>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <com/sun/star/frame/XModel.hpp>
-#include <org/openoffice/vba/XOutline.hpp>
-#include <org/openoffice/vba/XChartObjects.hpp>
-
-#include "vbahelper.hxx"
-
-class ScVbaWorksheet : public ::cppu::WeakImplHelper1<oo::vba::XWorksheet>
-{
- css::uno::Reference< css::uno::XComponentContext > m_xContext;
- css::uno::Reference< css::sheet::XSpreadsheet > mxSheet;
- css::uno::Reference< css::frame::XModel > mxModel;
- css::uno::Reference< oo::vba::XChartObjects > mxCharts;
-
- css::uno::Reference< oo::vba::XWorksheet > getSheetAtOffset(int offset) throw (css::uno::RuntimeException);
- css::uno::Reference< oo::vba::XRange > getSheetRange() throw (css::uno::RuntimeException);
-
-
-protected:
-
- virtual css::uno::Reference< css::frame::XModel > getModel()
- { return mxModel; }
- virtual css::uno::Reference< css::sheet::XSpreadsheet > getSheet()
- { return mxSheet; }
- ScVbaWorksheet( const css::uno::Reference< css::uno::XComponentContext >& xContext );
-public:
- ScVbaWorksheet(
- const css::uno::Reference< css::uno::XComponentContext >& xContext,
- const css::uno::Reference< css::sheet::XSpreadsheet >& xSheet,
- const css::uno::Reference< css::frame::XModel >& xModel )throw (css::uno::RuntimeException) ;
-
- virtual ~ScVbaWorksheet() {}
-
-
- // Attributes
- virtual ::rtl::OUString SAL_CALL getName() throw (css::uno::RuntimeException);
- virtual void SAL_CALL setName( const ::rtl::OUString &rName ) throw (css::uno::RuntimeException);
- virtual sal_Bool getVisible() throw (css::uno::RuntimeException);
- virtual void setVisible( sal_Bool bVisible ) throw (css::uno::RuntimeException);
- virtual ::sal_Int32 SAL_CALL getStandardWidth() throw (css::uno::RuntimeException);
- virtual ::sal_Int32 SAL_CALL getStandardHeight() throw (css::uno::RuntimeException);
- virtual ::sal_Bool SAL_CALL getProtectionMode() throw (css::uno::RuntimeException);
- virtual ::sal_Bool SAL_CALL getProtectContents() throw (css::uno::RuntimeException);
- virtual ::sal_Bool SAL_CALL getProtectDrawingObjects() throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XRange > SAL_CALL getUsedRange() throw (css::uno::RuntimeException) ;
- virtual css::uno::Any SAL_CALL ChartObjects( const css::uno::Any& Index ) throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XOutline > SAL_CALL Outline( ) throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XWorksheet > SAL_CALL getNext() throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XWorksheet > SAL_CALL getPrevious() throw (css::uno::RuntimeException);
-
- // Methods
- virtual void SAL_CALL Activate() throw (css::uno::RuntimeException);
- virtual void SAL_CALL Select() throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XRange > SAL_CALL Range( const css::uno::Any &rRange ) throw (css::uno::RuntimeException);
- virtual void SAL_CALL Move( const css::uno::Any& Before, const css::uno::Any& After ) throw (css::uno::RuntimeException) ;
- virtual void SAL_CALL Copy( const css::uno::Any& Before, const css::uno::Any& After ) throw (css::uno::RuntimeException);
- virtual void SAL_CALL Paste( const css::uno::Any& Destination, const css::uno::Any& Link ) throw (css::uno::RuntimeException);
- virtual void SAL_CALL Delete( ) throw (css::uno::RuntimeException);
- virtual void SAL_CALL Protect( const css::uno::Any& Password, const css::uno::Any& DrawingObjects, const css::uno::Any& Contents, const css::uno::Any& Scenarios, const css::uno::Any& UserInterfaceOnly ) throw (css::uno::RuntimeException);
- virtual void SAL_CALL Unprotect( const css::uno::Any& Password ) throw (css::uno::RuntimeException);
-
- virtual void SAL_CALL Calculate( ) throw (css::uno::RuntimeException);
- virtual void SAL_CALL CheckSpelling( const css::uno::Any& CustomDictionary,const css::uno::Any& IgnoreUppercase,const css::uno::Any& AlwaysSuggest, const css::uno::Any& SpellingLang ) throw (css::uno::RuntimeException);
- // Hacks (?)
- virtual css::uno::Reference< oo::vba::XRange > SAL_CALL Cells( const css::uno::Any &nRow, const css::uno::Any &nCol ) throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XRange > Rows(const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
- virtual css::uno::Reference< oo::vba::XRange > Columns(const css::uno::Any& aIndex ) throw (css::uno::RuntimeException);
-
- virtual css::uno::Any SAL_CALL Evaluate( const ::rtl::OUString& Name ) throw (css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL PivotTables( const css::uno::Any& Index ) throw (css::uno::RuntimeException);
-};
-
-#endif /* SC_VBA_WORKSHEET_HXX */
-
diff --git a/scratch/sc-vba/vbaworksheets.cxx b/scratch/sc-vba/vbaworksheets.cxx
deleted file mode 100644
index 2a460ebbf..000000000
--- a/scratch/sc-vba/vbaworksheets.cxx
+++ /dev/null
@@ -1,275 +0,0 @@
-#include "vbaworksheets.hxx"
-
-#include <sfx2/dispatch.hxx>
-#include <sfx2/app.hxx>
-#include <sfx2/bindings.hxx>
-#include <sfx2/request.hxx>
-#include <sfx2/viewfrm.hxx>
-#include <sfx2/itemwrapper.hxx>
-#include <svtools/itemset.hxx>
-#include <svtools/eitem.hxx>
-
-#include <comphelper/processfactory.hxx>
-#include <cppuhelper/implbase3.hxx>
-
-#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
-#include <com/sun/star/container/XEnumerationAccess.hpp>
-#include <com/sun/star/sheet/XSpreadsheetView.hpp>
-#include <com/sun/star/container/XNamed.hpp>
-#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-
-#include <org/openoffice/vba/XApplication.hpp>
-#include <tools/string.hxx>
-
-#include "vbaglobals.hxx"
-#include "vbaworksheet.hxx"
-#include "vbaworkbook.hxx"
-
-using namespace ::org::openoffice;
-using namespace ::com::sun::star;
-
-
-class SheetsEnumeration : public EnumerationHelperImpl
-{
- uno::Reference< frame::XModel > m_xModel;
-public:
- SheetsEnumeration( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XEnumeration >& xEnumeration, const uno::Reference< frame::XModel >& xModel ) throw ( uno::RuntimeException ) : EnumerationHelperImpl( xContext, xEnumeration ), m_xModel( xModel ) {}
-
- virtual uno::Any SAL_CALL nextElement( ) throw (container::NoSuchElementException, lang::WrappedTargetException, uno::RuntimeException)
- {
- uno::Reference< sheet::XSpreadsheet > xSheet( m_xEnumeration->nextElement(), uno::UNO_QUERY_THROW );
- return makeAny( uno::Reference< vba::XWorksheet > ( new ScVbaWorksheet( m_xContext, xSheet, m_xModel ) ) );
- }
-
-};
-
-ScVbaWorksheets::ScVbaWorksheets( const uno::Reference< ::com::sun::star::uno::XComponentContext > & xContext, const uno::Reference< sheet::XSpreadsheets >& xSheets, const uno::Reference< frame::XModel >& xModel ): ScVbaWorksheets_BASE( xContext, uno::Reference< container::XIndexAccess >( xSheets, uno::UNO_QUERY ) ), mxModel( xModel ), m_xSheets( xSheets )
-{
-}
-
-ScVbaWorksheets::ScVbaWorksheets( const uno::Reference< ::com::sun::star::uno::XComponentContext > & xContext, const uno::Reference< container::XEnumerationAccess >& xEnumAccess, const uno::Reference< frame::XModel >& xModel ): ScVbaWorksheets_BASE( xContext, uno::Reference< container::XIndexAccess >( xEnumAccess, uno::UNO_QUERY ) ), mxModel(xModel)
-{
-}
-
-// XEnumerationAccess
-uno::Type
-ScVbaWorksheets::getElementType() throw (uno::RuntimeException)
-{
- return vba::XWorksheet::static_type(0);
-}
-
-uno::Reference< container::XEnumeration >
-ScVbaWorksheets::createEnumeration() throw (uno::RuntimeException)
-{
- if ( !m_xSheets.is() )
- {
- uno::Reference< container::XEnumerationAccess > xAccess( m_xIndexAccess, uno::UNO_QUERY_THROW );
- return xAccess->createEnumeration();
- }
- uno::Reference< container::XEnumerationAccess > xEnumAccess( m_xSheets, uno::UNO_QUERY_THROW );
- return new SheetsEnumeration( m_xContext, xEnumAccess->createEnumeration(), mxModel );
-}
-
-uno::Any
-ScVbaWorksheets::createCollectionObject( const css::uno::Any& aSource )
-{
- uno::Reference< sheet::XSpreadsheet > xSheet( aSource, uno::UNO_QUERY );
- return makeAny( uno::Reference< vba::XWorksheet > ( new ScVbaWorksheet( m_xContext, xSheet, mxModel ) ) );
-}
-
-// XWorksheets
-uno::Any
-ScVbaWorksheets::Add( const uno::Any& Before, const uno::Any& After,
- const uno::Any& Count, const uno::Any& Type ) throw (uno::RuntimeException)
-{
- if ( isSelectedSheets() )
- return uno::Any(); // or should we throw?
-
- rtl::OUString aStringSheet;
- sal_Bool bBefore(sal_True);
- sal_Int32 nSheetIndex = 0;
- sal_Int32 nNewSheets = 1, nType = 0;
- Count >>= nNewSheets;
- Type >>= nType;
- sal_Int32 nCount = 0;
- Before >>= aStringSheet;
- if (!aStringSheet.getLength())
- {
- After >>= aStringSheet;
- bBefore = sal_False;
- }
- if (!aStringSheet.getLength())
- {
- aStringSheet = ScVbaGlobals::getGlobalsImpl(
- m_xContext )->getApplication()->getActiveWorkbook()->getActiveSheet()->getName();
- bBefore = sal_True;
- }
- nCount = m_xIndexAccess->getCount();
- for (sal_Int32 i=0; i < nCount; i++)
- {
- uno::Reference< sheet::XSpreadsheet > xSheet(m_xIndexAccess->getByIndex(i), uno::UNO_QUERY);
- uno::Reference< container::XNamed > xNamed( xSheet, uno::UNO_QUERY_THROW );
- if (xNamed->getName() == aStringSheet)
- {
- nSheetIndex = i;
- break;
- }
- }
-
- if(!bBefore)
- nSheetIndex++;
-
- sal_Int32 nSheetName = nCount + 1L;
- String aStringBase( RTL_CONSTASCII_USTRINGPARAM("Sheet") );
- uno::Any result;
- for (sal_Int32 i=0; i < nNewSheets; i++, nSheetName++)
- {
- String aStringName = aStringBase;
- aStringName += String::CreateFromInt32(nSheetName);
- while (m_xNameAccess->hasByName(aStringName))
- {
- nSheetName++;
- aStringName = aStringBase;
- aStringName += String::CreateFromInt32(nSheetName);
- }
- m_xSheets->insertNewByName(aStringName, nSheetIndex + i);
- result = getItemByStringIndex( aStringName );
- }
-
- return result;
-}
-
-void
-ScVbaWorksheets::Delete() throw (uno::RuntimeException)
-{
- //SC_VBA_STUB();
-}
-
-bool
-ScVbaWorksheets::isSelectedSheets()
-{
- return !m_xSheets.is();
-}
-
-void SAL_CALL
-ScVbaWorksheets::PrintOut( const uno::Any& From, const uno::Any& To, const uno::Any& Copies, const uno::Any& Preview, const uno::Any& ActivePrinter, const uno::Any& PrintToFile, const uno::Any& Collate, const uno::Any& PrToFileName ) throw (uno::RuntimeException)
-{
- sal_Int32 nTo = 0;
- sal_Int32 nFrom = 0;
- sal_Int16 nCopies = 1;
- sal_Bool bCollate = sal_False;
- sal_Bool bSelection = sal_False;
- From >>= nFrom;
- To >>= nTo;
- Copies >>= nCopies;
- if ( nCopies > 1 ) // Collate only useful when more that 1 copy
- Collate >>= bCollate;
-
- rtl::OUString sRange( RTL_CONSTASCII_USTRINGPARAM( "-" ) );
- rtl::OUString sFileName;
-
- if (( nFrom || nTo ) )
- {
- if ( nFrom )
- sRange = ( ::rtl::OUString::valueOf( nFrom ) + sRange );
- if ( nTo )
- sRange += ::rtl::OUString::valueOf( nTo );
- }
- else if ( isSelectedSheets() )
- {
- bSelection = sal_True;
- }
-
- if ( PrToFileName.getValue() )
- {
- PrToFileName >>= sFileName;
- }
-
- SfxViewFrame* pViewFrame = getCurrentViewFrame();
- if ( pViewFrame )
- {
- SfxAllItemSet aArgs( SFX_APP()->GetPool() );
-
- SfxBoolItem sfxCollate( SID_PRINT_COLLATE, bCollate );
- aArgs.Put( sfxCollate, sfxCollate.Which() );
- SfxInt16Item sfxCopies( SID_PRINT_COPIES, nCopies );
- aArgs.Put( sfxCopies, sfxCopies.Which() );
- if ( sFileName.getLength() )
- {
- SfxStringItem sfxFileName( SID_FILE_NAME, sFileName);
- aArgs.Put( sfxFileName, sfxFileName.Which() );
-
- }
- if ( sRange.getLength() )
- {
- SfxStringItem sfxRange( SID_PRINT_PAGES, sRange );
- aArgs.Put( sfxRange, sfxRange.Which() );
- }
- SfxBoolItem sfxSelection( SID_SELECTION, bSelection );
- aArgs.Put( sfxSelection, sfxSelection.Which() );
- SfxBoolItem sfxAsync( SID_ASYNCHRON, sal_False );
- aArgs.Put( sfxAsync, sfxAsync.Which() );
- SfxDispatcher* pDispatcher = pViewFrame->GetDispatcher();
-
- if ( pDispatcher )
- {
- pDispatcher->Execute( (USHORT)SID_PRINTDOC, (SfxCallMode)SFX_CALLMODE_SYNCHRON, aArgs );
- }
-
- }
-
- // #FIXME #TODO
- // 1 Preview ( does such a thing in OO.org? )
- // 2 ActivePrinter ( how/can we switch a printer via API? )
- // 3 PrintToFile ( ms behaviour if this option is specified but no
- // filename supplied 'PrToFileName' then the user will be prompted )
- // 4 Need to check behaviour of Selected sheets with range ( e.g. From & To
- // values ) in oOO these options are mutually exclusive
- // 5 There is a pop up to do with transparent objects in the print source
- // should be able to disable that via configuration for the duration
- // of this method
-}
-css::uno::Any SAL_CALL
-ScVbaWorksheets::getVisible() throw (css::uno::RuntimeException)
-{
- sal_Bool bVisible = sal_True;
- uno::Reference< container::XEnumeration > xEnum( createEnumeration(), uno::UNO_QUERY_THROW );
- while ( xEnum->hasMoreElements() )
- {
- uno::Reference< vba::XWorksheet > xSheet( xEnum->nextElement(), uno::UNO_QUERY_THROW );
- if ( xSheet->getVisible() == sal_False )
- {
- bVisible = sal_False;
- break;
- }
- }
- return uno::makeAny( bVisible );
-}
-
-void SAL_CALL
-ScVbaWorksheets::setVisible( const css::uno::Any& _visible ) throw (css::uno::RuntimeException)
-{
- sal_Bool bState;
- if ( _visible >>= bState )
- {
- uno::Reference< container::XEnumeration > xEnum( createEnumeration(), uno::UNO_QUERY_THROW );
- while ( xEnum->hasMoreElements() )
- {
- uno::Reference< vba::XWorksheet > xSheet( xEnum->nextElement(), uno::UNO_QUERY_THROW );
- xSheet->setVisible( bState );
- }
- }
- else
- throw uno::RuntimeException( rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM( "Visible property doesn't support non boolean #FIXME" ) ), uno::Reference< uno::XInterface >() );
-}
-//ScVbaCollectionBaseImpl
-uno::Any
-ScVbaWorksheets::getItemByStringIndex( const rtl::OUString& sIndex ) throw (uno::RuntimeException)
-{
- String sScIndex = sIndex;
- ScDocument::ConvertToValidTabName( sScIndex, '_' );
- return ScVbaCollectionBaseImpl::getItemByStringIndex( sScIndex );
-}
-
diff --git a/scratch/sc-vba/vbaworksheets.hxx b/scratch/sc-vba/vbaworksheets.hxx
deleted file mode 100644
index b63b36fef..000000000
--- a/scratch/sc-vba/vbaworksheets.hxx
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef SC_VBA_WORKSHEETS_HXX
-#define SC_VBA_WORKSHEETS_HXX
-
-#include <cppuhelper/implbase1.hxx>
-
-#include <org/openoffice/vba/XWorksheets.hpp>
-#include <com/sun/star/sheet/XSpreadsheets.hpp>
-#include <com/sun/star/container/XEnumerationAccess.hpp>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <org/openoffice/vba/XGlobals.hpp>
-
-#include "vbahelper.hxx"
-#include "vbacollectionimpl.hxx"
-
-class ScModelObj;
-
-
-typedef ::cppu::ImplInheritanceHelper1< ScVbaCollectionBaseImpl, oo::vba::XWorksheets > ScVbaWorksheets_BASE;
-
-class ScVbaWorksheets : public ScVbaWorksheets_BASE
-{
- css::uno::Reference< css::frame::XModel > mxModel;
- css::uno::Reference< css::sheet::XSpreadsheets > m_xSheets;
-protected:
- //ScVbaCollectionBaseImpl
- virtual css::uno::Any getItemByStringIndex( const rtl::OUString& sIndex ) throw (css::uno::RuntimeException);
-
-public:
- ScVbaWorksheets( const css::uno::Reference< css::uno::XComponentContext > & xContext, const css::uno::Reference< css::sheet::XSpreadsheets >& xSheets, const css::uno::Reference< css::frame::XModel >& xModel );
- ScVbaWorksheets( const css::uno::Reference< css::uno::XComponentContext > & xContext, const css::uno::Reference< css::container::XEnumerationAccess >& xEnum, const css::uno::Reference< css::frame::XModel >& xModel );
- virtual ~ScVbaWorksheets() {}
-
- bool isSelectedSheets();
-
- // XEnumerationAccess
- virtual css::uno::Type SAL_CALL getElementType() throw (css::uno::RuntimeException);
- virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() throw (css::uno::RuntimeException);
-
-
- // XWorksheets
- virtual css::uno::Any SAL_CALL getVisible() throw (css::uno::RuntimeException);
- virtual void SAL_CALL setVisible( const css::uno::Any& _visible ) throw (css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL Add( const css::uno::Any& Before, const css::uno::Any& After, const css::uno::Any& Count, const css::uno::Any& Type ) throw (css::uno::RuntimeException);
- virtual void SAL_CALL Delete( ) throw (css::uno::RuntimeException);
- virtual void SAL_CALL PrintOut( const css::uno::Any& From, const css::uno::Any& To, const css::uno::Any& Copies, const css::uno::Any& Preview, const css::uno::Any& ActivePrinter, const css::uno::Any& PrintToFile, const css::uno::Any& Collate, const css::uno::Any& PrToFileName ) throw (css::uno::RuntimeException);
- // ScVbaCollectionBaseImpl
- virtual css::uno::Any createCollectionObject( const css::uno::Any& aSource );
-
-};
-
-#endif /* SC_VBA_WORKSHEETS_HXX */
diff --git a/scratch/sc-vba/vbawsfunction.cxx b/scratch/sc-vba/vbawsfunction.cxx
deleted file mode 100644
index 860afddd2..000000000
--- a/scratch/sc-vba/vbawsfunction.cxx
+++ /dev/null
@@ -1,82 +0,0 @@
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/table/XCell.hpp>
-#include <com/sun/star/table/XColumnRowRange.hpp>
-#include <com/sun/star/beans/XIntrospection.hpp>
-#include <com/sun/star/beans/XIntrospectionAccess.hpp>
-#include <com/sun/star/sheet/XCellRangesQuery.hpp>
-#include <com/sun/star/sheet/CellFlags.hpp>
-#include <com/sun/star/reflection/XIdlMethod.hpp>
-#include <com/sun/star/beans/MethodConcept.hpp>
-#include <comphelper/processfactory.hxx>
-#include <cppuhelper/queryinterface.hxx>
-#include <comphelper/anytostring.hxx>
-
-#include "vbawsfunction.hxx"
-
-using namespace com::sun::star;
-using namespace org::openoffice;
-
-void SAL_CALL
-ScVbaWSFunction::dummy( ) throw (uno::RuntimeException)
-{
-}
-
-uno::Reference< beans::XIntrospectionAccess >
-ScVbaWSFunction::getIntrospection(void) throw(uno::RuntimeException)
-{
- return uno::Reference<beans::XIntrospectionAccess>();
-}
-
-uno::Any SAL_CALL
-ScVbaWSFunction::invoke(const rtl::OUString& FunctionName, const uno::Sequence< uno::Any >& Params, uno::Sequence< sal_Int16 >& OutParamIndex, uno::Sequence< uno::Any >& OutParam) throw(lang::IllegalArgumentException, script::CannotConvertException, reflection::InvocationTargetException, uno::RuntimeException)
-{
- uno::Reference< lang::XMultiComponentFactory > xSMgr( m_xContext->getServiceManager(), uno::UNO_QUERY_THROW );
- uno::Reference< sheet::XFunctionAccess > xFunctionAccess(
- xSMgr->createInstanceWithContext(::rtl::OUString::createFromAscii(
- "com.sun.star.sheet.FunctionAccess"), m_xContext),
- ::uno::UNO_QUERY_THROW);
- uno::Sequence< uno::Any > aParamTemp;
- sal_Int32 nParamCount = Params.getLength();
- aParamTemp.realloc(nParamCount);
- const uno::Any* aArray = Params.getConstArray();
- uno::Any* aArrayTemp = aParamTemp.getArray();
-
- for (int i=0; i < Params.getLength();i++)
- {
- uno::Reference<vba::XRange> myRange( aArray[ i ], uno::UNO_QUERY );
- if ( myRange.is() )
- {
- aArrayTemp[i] = myRange->getCellRange();
- continue;
- }
- aArrayTemp[i]= aArray[i];
- }
-
- for ( int count=0; count < aParamTemp.getLength(); ++count )
- OSL_TRACE("Param[%d] is %s",
- count, rtl::OUStringToOString( comphelper::anyToString( aParamTemp[count] ), RTL_TEXTENCODING_UTF8 ).getStr() );
- return xFunctionAccess->callFunction(FunctionName,aParamTemp);
-}
-
-void SAL_CALL
-ScVbaWSFunction::setValue(const rtl::OUString& PropertyName, const uno::Any& Value) throw(beans::UnknownPropertyException, script::CannotConvertException, reflection::InvocationTargetException, uno::RuntimeException)
-{
-}
-
-uno::Any SAL_CALL
-ScVbaWSFunction::getValue(const rtl::OUString& PropertyName) throw(beans::UnknownPropertyException, uno::RuntimeException)
-{
- return uno::Any();
-}
-
-sal_Bool SAL_CALL
-ScVbaWSFunction::hasMethod(const rtl::OUString& Name) throw(uno::RuntimeException)
-{
- return true;
-}
-
-sal_Bool SAL_CALL
-ScVbaWSFunction::hasProperty(const rtl::OUString& Name) throw(uno::RuntimeException)
-{
- return false;
-}
diff --git a/scratch/sc-vba/vbawsfunction.hxx b/scratch/sc-vba/vbawsfunction.hxx
deleted file mode 100644
index 3fe784fcb..000000000
--- a/scratch/sc-vba/vbawsfunction.hxx
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef SC_VBA_INTERIOR_HXX
-#define SC_VBA_INTERIOR_HXX
-
-#include <cppuhelper/implbase1.hxx>
-#include <cppuhelper/implbase2.hxx>
-#include <org/openoffice/vba/XWorksheetFunction.hpp>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include "vbarange.hxx"
-
-#include <com/sun/star/script/XInvocation.hpp>
-#include <com/sun/star/sheet/XFunctionAccess.hpp>
-
-typedef ::cppu::WeakImplHelper2< oo::vba::XWorksheetFunction,css::script::XInvocation > ScVbaWSFunction_BASE;
-
-class ScVbaWSFunction : public ScVbaWSFunction_BASE
-{
- css::uno::Reference< css::uno::XComponentContext > m_xContext;
-public:
- ScVbaWSFunction( css::uno::Reference< css::uno::XComponentContext >& xContext
- ):m_xContext(xContext)
- {
- }
- virtual ~ScVbaWSFunction(){}
-
- virtual void SAL_CALL dummy( ) throw (css::uno::RuntimeException);
-
- virtual css::uno::Reference< css::beans::XIntrospectionAccess > SAL_CALL getIntrospection(void) throw(css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL invoke(const rtl::OUString& FunctionName, const css::uno::Sequence< css::uno::Any >& Params, css::uno::Sequence< sal_Int16 >& OutParamIndex, css::uno::Sequence< css::uno::Any >& OutParam) throw(css::lang::IllegalArgumentException, css::script::CannotConvertException, css::reflection::InvocationTargetException, css::uno::RuntimeException);
- virtual void SAL_CALL setValue(const rtl::OUString& PropertyName, const css::uno::Any& Value) throw(css::beans::UnknownPropertyException, css::script::CannotConvertException, css::reflection::InvocationTargetException, css::uno::RuntimeException);
- virtual css::uno::Any SAL_CALL getValue(const rtl::OUString& PropertyName) throw(css::beans::UnknownPropertyException, css::uno::RuntimeException);
- virtual sal_Bool SAL_CALL hasMethod(const rtl::OUString& Name) throw(css::uno::RuntimeException);
- virtual sal_Bool SAL_CALL hasProperty(const rtl::OUString& Name) throw(css::uno::RuntimeException);
-
-};
-#endif
-
diff --git a/src/.cvsignore b/src/.cvsignore
deleted file mode 100644
index 8778984e4..000000000
--- a/src/.cvsignore
+++ /dev/null
@@ -1,11 +0,0 @@
-*.diff
-*.md5
-*.tar.bz2
-*.tar.gz
-*.uu
-*.zip
-Makefile
-Makefile.in
-cli_types*.dll
-dbghinst*
-unicows*
diff --git a/src/Makefile.am b/src/Makefile.am
deleted file mode 100644
index d3478fd17..000000000
--- a/src/Makefile.am
+++ /dev/null
@@ -1,32 +0,0 @@
-EXTRA_DIST=\
- openintro_redhat.bmp \
- openabout_redhat.png \
- openintro_suse.bmp \
- openabout_suse.png \
- openintro_nld.bmp \
- openabout_nld.bmp \
- openintro_dropline-gnome.bmp \
- openabout_dropline-gnome.png \
- openintro_pld.bmp \
- openabout_pld.png \
- openintro_kde.bmp \
- openabout_kde.png \
- openintro_ark.bmp \
- openabout_ark.png \
- openintro_fw.bmp \
- openabout_fw.png \
- openintro_fw64.bmp \
- openabout_fw64.png \
- openintro_mandriva.bmp \
- openabout_mandriva.png \
- openintro_gentoo.bmp \
- openintro_qilinux.bmp \
- openabout_qilinux.png \
- openintro_translateorgza.bmp \
- openabout_translateorgza.png \
- file-bug-24.png \
- file-bug-16.png \
- novell-team.png \
- evolocal.odb
-
-
diff --git a/src/README b/src/README
deleted file mode 100644
index a6df1947f..000000000
--- a/src/README
+++ /dev/null
@@ -1 +0,0 @@
-This is where all the source is downloaded to when you run 'download'
diff --git a/src/evolocal.odb b/src/evolocal.odb
deleted file mode 100644
index 82f486a47..000000000
--- a/src/evolocal.odb
+++ /dev/null
Binary files differ
diff --git a/src/file-bug-16.png b/src/file-bug-16.png
deleted file mode 100644
index 44cb09762..000000000
--- a/src/file-bug-16.png
+++ /dev/null
Binary files differ
diff --git a/src/file-bug-24.png b/src/file-bug-24.png
deleted file mode 100644
index 965c04f20..000000000
--- a/src/file-bug-24.png
+++ /dev/null
Binary files differ
diff --git a/src/glib-1.2.10-ooo.patch b/src/glib-1.2.10-ooo.patch
deleted file mode 100755
index d4af95e6c..000000000
--- a/src/glib-1.2.10-ooo.patch
+++ /dev/null
@@ -1,104 +0,0 @@
---- glib-1.2.10/makefile.msc Thu Mar 15 17:48:49 2001
-+++ glib-1.2.10/makefile.msc Fri Oct 14 12:30:05 2005
-@@ -1,16 +1,13 @@
--## Makefile for building the GLib, gmodule and gthread dlls with Microsoft C
-+## Makefile for building the GLib and gmodule dlls with Microsoft C
- ## Use: nmake -f makefile.msc install
-+# THREAD SUPPORT HAS BEEN HACKED OUT
-
- # Change this to wherever you want to install the DLLs. This directory
- # should be in your PATH.
--BIN = C:\bin
--
--# This is the location of pthreads for Win32,
--# see http://sourceware.cygnus.com/pthreads-win32/
--# We want the 1999-04-07 snapshot.
--PTHREADS = ..\pthreads-snap-1999-04-07
--PTHREAD_LIB = $(PTHREADS)\pthread.lib
--PTHREAD_INC = -I$(PTHREADS)
-+PREFIX=.
-+BIN = $(PREFIX)\bin
-+LIBDIR = $(PREFIX)\lib
-+INCDIR = $(PREFIX)\include
-
- ################################################################
-
-@@ -33,17 +30,18 @@
- glib-$(GLIB_VER).dll \
- gmodule\gmoduleconf.h \
- gmodule-$(GLIB_VER).dll \
-- gthread-$(GLIB_VER).dll \
- testglib.exe \
- testgmodule.exe \
- testgdate.exe \
- testgdateparser.exe \
-- testgthread.exe
-
- install : all
- $(INSTALL) glib-$(GLIB_VER).dll $(BIN)
- $(INSTALL) gmodule-$(GLIB_VER).dll $(BIN)
-- $(INSTALL) gthread-$(GLIB_VER).dll $(BIN)
-+ $(INSTALL) glib-$(GLIB_VER).lib $(LIBDIR)
-+ $(INSTALL) gmodule-$(GLIB_VER).lib $(LIBDIR)
-+ $(INSTALL) glib.h $(INCDIR)
-+ $(INSTALL) glibconfig.h $(INCDIR)
-
- glib_OBJECTS = \
- garray.obj \
-@@ -96,15 +94,6 @@
- gmodule\gmoduleconf.h: gmodule\gmoduleconf.h.win32
- copy gmodule\gmoduleconf.h.win32 gmodule\gmoduleconf.h
-
--gthread_OBJECTS = \
-- gthread.obj
--
--gthread-$(GLIB_VER).dll : $(gthread_OBJECTS)
-- $(CC) $(CFLAGS) -LD -Fegthread-$(GLIB_VER).dll $(gthread_OBJECTS) glib-$(GLIB_VER).lib $(PTHREAD_LIB) glib-$(GLIB_VER).lib $(LDFLAGS) /def:gthread\gthread.def
--
--gthread.obj : gthread\gthread.c gthread\gthread-posix.c
-- $(CC) $(CFLAGS) -GD $(PTHREAD_INC) -DG_LOG_DOMAIN=\"GThread\" -c gthread\gthread.c
--
- testglib.exe : glib-$(GLIB_VER).dll testglib.obj
- $(CC) $(CFLAGS) -Fetestglib.exe testglib.obj glib-$(GLIB_VER).lib $(LDFLAGS) /subsystem:console
-
-@@ -141,25 +130,19 @@
- libgplugin_b.obj : gmodule\libgplugin_b.c
- $(CC) $(CFLAGS) -Igmodule -c gmodule\libgplugin_b.c
-
--testgthread.exe : glib-$(GLIB_VER).dll gthread-$(GLIB_VER).dll testgthread.obj
-- $(CC) $(CFLAGS) testgthread.obj glib-$(GLIB_VER).lib gthread-$(GLIB_VER).lib $(PTHREAD_LIB) $(LDFLAGS) /subsystem:console
--
--testgthread.obj : gthread\testgthread.c
-- $(CC) $(CFLAGS) $(PTHREAD_INC) -c gthread\testgthread.c
--
- clean:
-- del config.h
-- del glibconfig.h
-- del gmodule\gmoduleconf.h
-- del *.exe
-- del *.obj
-- del *.dll
-- del *.lib
-- del *.err
-- del *.map
-- del *.sym
-- del *.exp
-- del *.lk1
-- del *.mk1
-- del *.pdb
-- del *.ilk
-+ -del config.h
-+ -del glibconfig.h
-+ -del gmodule\gmoduleconf.h
-+ -del *.exe
-+ -del *.obj
-+ -del *.dll
-+ -del *.lib
-+ -del *.err
-+ -del *.map
-+ -del *.sym
-+ -del *.exp
-+ -del *.lk1
-+ -del *.mk1
-+ -del *.pdb
-+ -del *.ilk
diff --git a/src/libIDL-0.6.8-ooo.patch b/src/libIDL-0.6.8-ooo.patch
deleted file mode 100755
index 03f046ed7..000000000
--- a/src/libIDL-0.6.8-ooo.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -ur libIDL-0.6.8/Makefile.msc libIDL-0.6.8-manual/Makefile.msc
---- libIDL-0.6.8/Makefile.msc 1999-10-17 20:04:07.000000000 +0200
-+++ libIDL-0.6.8/Makefile.msc 2005-10-14 12:42:38.559000000 +0200
-@@ -8,8 +8,8 @@
- BIN = C:\Bin
-
- # GLib location
--GLIB_INCLUDES = -I/Devel/Port/glib
--GLIB_LIBPATH = c:\Devel\Port\glib
-+GLIB_INCLUDES = -I../glib-1.2.10/
-+GLIB_LIBPATH = ../glib-1.2.10
- GLIB_LIB = glib-1.2.lib
-
- # libIDL dll version
-diff -ur libIDL-0.6.8/util.h libIDL-0.6.8-manual/util.h
---- libIDL-0.6.8/util.h 1999-06-09 17:33:31.000000000 +0200
-+++ libIDL-0.6.8/util.h 2005-10-14 12:49:00.215250000 +0200
-@@ -95,6 +95,7 @@
- #ifndef HAVE_CPP_PIPE_STDIN
- extern char * __IDL_tmp_filename;
- #endif
-+#define CPP_NOSTDINC " "
- extern const char * __IDL_real_filename;
- extern char * __IDL_cur_filename;
- extern int __IDL_cur_line;
diff --git a/src/novell-team.png b/src/novell-team.png
deleted file mode 100644
index 57d024112..000000000
--- a/src/novell-team.png
+++ /dev/null
Binary files differ
diff --git a/src/novell-team.xcf b/src/novell-team.xcf
deleted file mode 100644
index fae7997a3..000000000
--- a/src/novell-team.xcf
+++ /dev/null
Binary files differ
diff --git a/src/openabout_ark.png b/src/openabout_ark.png
deleted file mode 100644
index 0923d2fcc..000000000
--- a/src/openabout_ark.png
+++ /dev/null
Binary files differ
diff --git a/src/openabout_dropline-gnome.png b/src/openabout_dropline-gnome.png
deleted file mode 100644
index f2f0368b4..000000000
--- a/src/openabout_dropline-gnome.png
+++ /dev/null
Binary files differ
diff --git a/src/openabout_fw.png b/src/openabout_fw.png
deleted file mode 100644
index 24d9a6ab8..000000000
--- a/src/openabout_fw.png
+++ /dev/null
Binary files differ
diff --git a/src/openabout_fw64.png b/src/openabout_fw64.png
deleted file mode 100644
index d0c1d354a..000000000
--- a/src/openabout_fw64.png
+++ /dev/null
Binary files differ
diff --git a/src/openabout_kde.png b/src/openabout_kde.png
deleted file mode 100644
index e5d0f3da4..000000000
--- a/src/openabout_kde.png
+++ /dev/null
Binary files differ
diff --git a/src/openabout_mandriva.png b/src/openabout_mandriva.png
deleted file mode 100644
index 3912b809f..000000000
--- a/src/openabout_mandriva.png
+++ /dev/null
Binary files differ
diff --git a/src/openabout_nld.bmp b/src/openabout_nld.bmp
deleted file mode 100644
index cb43a4b78..000000000
--- a/src/openabout_nld.bmp
+++ /dev/null
Binary files differ
diff --git a/src/openabout_pld.png b/src/openabout_pld.png
deleted file mode 100644
index e3383a54a..000000000
--- a/src/openabout_pld.png
+++ /dev/null
Binary files differ
diff --git a/src/openabout_qilinux.png b/src/openabout_qilinux.png
deleted file mode 100644
index d9ad329eb..000000000
--- a/src/openabout_qilinux.png
+++ /dev/null
Binary files differ
diff --git a/src/openabout_redhat.png b/src/openabout_redhat.png
deleted file mode 100644
index 3277bd159..000000000
--- a/src/openabout_redhat.png
+++ /dev/null
Binary files differ
diff --git a/src/openabout_suse.png b/src/openabout_suse.png
deleted file mode 100644
index 5b49cd6f3..000000000
--- a/src/openabout_suse.png
+++ /dev/null
Binary files differ
diff --git a/src/openabout_translateorgza.png b/src/openabout_translateorgza.png
deleted file mode 100644
index 458fdfc46..000000000
--- a/src/openabout_translateorgza.png
+++ /dev/null
Binary files differ
diff --git a/src/openintro_ark.bmp b/src/openintro_ark.bmp
deleted file mode 100644
index 14c256e61..000000000
--- a/src/openintro_ark.bmp
+++ /dev/null
Binary files differ
diff --git a/src/openintro_dropline-gnome.bmp b/src/openintro_dropline-gnome.bmp
deleted file mode 100644
index dfc64c6c4..000000000
--- a/src/openintro_dropline-gnome.bmp
+++ /dev/null
Binary files differ
diff --git a/src/openintro_fw.bmp b/src/openintro_fw.bmp
deleted file mode 100644
index e411f177c..000000000
--- a/src/openintro_fw.bmp
+++ /dev/null
Binary files differ
diff --git a/src/openintro_fw64.bmp b/src/openintro_fw64.bmp
deleted file mode 100644
index 17c454b21..000000000
--- a/src/openintro_fw64.bmp
+++ /dev/null
Binary files differ
diff --git a/src/openintro_gentoo.bmp b/src/openintro_gentoo.bmp
deleted file mode 100644
index 3f6141a2d..000000000
--- a/src/openintro_gentoo.bmp
+++ /dev/null
Binary files differ
diff --git a/src/openintro_kde.bmp b/src/openintro_kde.bmp
deleted file mode 100644
index 2c50755bf..000000000
--- a/src/openintro_kde.bmp
+++ /dev/null
Binary files differ
diff --git a/src/openintro_mandriva.bmp b/src/openintro_mandriva.bmp
deleted file mode 100644
index 75f6588bc..000000000
--- a/src/openintro_mandriva.bmp
+++ /dev/null
Binary files differ
diff --git a/src/openintro_nld.bmp b/src/openintro_nld.bmp
deleted file mode 100644
index f76127d71..000000000
--- a/src/openintro_nld.bmp
+++ /dev/null
Binary files differ
diff --git a/src/openintro_pld.bmp b/src/openintro_pld.bmp
deleted file mode 100644
index a29049860..000000000
--- a/src/openintro_pld.bmp
+++ /dev/null
Binary files differ
diff --git a/src/openintro_qilinux.bmp b/src/openintro_qilinux.bmp
deleted file mode 100644
index a225e712e..000000000
--- a/src/openintro_qilinux.bmp
+++ /dev/null
Binary files differ
diff --git a/src/openintro_redhat.bmp b/src/openintro_redhat.bmp
deleted file mode 100644
index d527b599b..000000000
--- a/src/openintro_redhat.bmp
+++ /dev/null
Binary files differ
diff --git a/src/openintro_suse.bmp b/src/openintro_suse.bmp
deleted file mode 100644
index 2a2bd6627..000000000
--- a/src/openintro_suse.bmp
+++ /dev/null
Binary files differ
diff --git a/src/openintro_translateorgza.bmp b/src/openintro_translateorgza.bmp
deleted file mode 100644
index 26f396f3b..000000000
--- a/src/openintro_translateorgza.bmp
+++ /dev/null
Binary files differ
diff --git a/stamp/.cvsignore b/stamp/.cvsignore
deleted file mode 100644
index 81a1bc0d4..000000000
--- a/stamp/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-Makefile
-Makefile.in
-*
diff --git a/stamp/Makefile.am b/stamp/Makefile.am
deleted file mode 100644
index 34a0b85fe..000000000
--- a/stamp/Makefile.am
+++ /dev/null
@@ -1,9 +0,0 @@
-EXTRA_DIST=README
-
-CLEANFILES=unpack \
- artwork.install \
- patch.apply \
- prebuild \
- build.tools \
- build.extra.translations \
- build
diff --git a/stamp/README b/stamp/README
deleted file mode 100644
index b798ff4bc..000000000
--- a/stamp/README
+++ /dev/null
@@ -1 +0,0 @@
-This directory contains build stamps. \ No newline at end of file
diff --git a/test/Lwp/a.lwp b/test/Lwp/a.lwp
deleted file mode 100644
index 242bba211..000000000
--- a/test/Lwp/a.lwp
+++ /dev/null
Binary files differ
diff --git a/test/Lwp/a.txt b/test/Lwp/a.txt
deleted file mode 100644
index 789819226..000000000
--- a/test/Lwp/a.txt
+++ /dev/null
@@ -1 +0,0 @@
-a
diff --git a/test/Lwp/abcd.lwp b/test/Lwp/abcd.lwp
deleted file mode 100644
index 6dc586634..000000000
--- a/test/Lwp/abcd.lwp
+++ /dev/null
Binary files differ
diff --git a/test/Lwp/abcd.txt b/test/Lwp/abcd.txt
deleted file mode 100644
index acbe86c7c..000000000
--- a/test/Lwp/abcd.txt
+++ /dev/null
@@ -1 +0,0 @@
-abcd
diff --git a/test/Lwp/austin.lwp b/test/Lwp/austin.lwp
deleted file mode 100644
index 7eee65178..000000000
--- a/test/Lwp/austin.lwp
+++ /dev/null
Binary files differ
diff --git a/test/Lwp/austin.png b/test/Lwp/austin.png
deleted file mode 100644
index 8d89f0f4f..000000000
--- a/test/Lwp/austin.png
+++ /dev/null
Binary files differ
diff --git a/test/Lwp/austin.sam b/test/Lwp/austin.sam
deleted file mode 100644
index 0582856c0..000000000
--- a/test/Lwp/austin.sam
+++ /dev/null
@@ -1,5069 +0,0 @@
-[ver]
- 4
-[sty]
-
-[charset]
- 82
- ANSI (Windows, IBM CP 1252)
-[PanoseFontTable]
- 6
- 5
- Arial
- 2818
- 1030
- 514
- 514
- 1026
- Arial Black
- 2818
- 1034
- 258
- 514
- 1026
- Wingdings
- 1285
- 513
- 2049
- 2052
- 2055
- MS Sans Serif
- 2818
- 1030
- 514
- 514
- 1026
-
- 257
- 257
- 257
- 257
- 257
- Times New Roman
- 514
- 774
- 1029
- 517
- 1027
-[recfile]
-
-
- 1
- 2
- 3
- 12
- 1440
- 1440
-[revisions]
- 0
-[prn]
- HP LaserJet 2100 PCL6
-[port]
- IR
-[lnopts]
- 2
- Body Text
- 1
-[fldnames]
- Field1
- Field2
- Field3
- Field4
- Field5
- Field6
- Field7
- Field8
-[desc]
-
-
-
-
-
- 1095635058
- 2
- 1095634939
- 0
- 41
- 15464
- 85027
- 209884
- 0
-
-
-
-
-
-
- 0
-[docopts]
- 5
- 2
-[GramStyle]
-
-[lang]
- 2
-[fopts]
- 96
- 1
- 0
- 0
- Continued on next page...
- Continued from previous page...
-[tag]
- Outline (Not
- 1
- [fnt]
- Times New Roman
- 240
- 0
- 49152
- [algn]
- 257
- 2
- 0
- 360
- 360
- [spc]
- 33
- 0
- 2
- 0
- 0
- 2
- 100
- [brk]
- 4
- [line]
- 0
- 0
- 2
- 4294967295
- 0
- 1
- 1
- 10
- 10
- 2
- [spec]
- 0
- 0
- <*;>.
- 0
- 2
- 1
- 0
- 0
- 0
- 0
- [nfmt]
- 280
- 1
- 2
- .
- ,
- $
-
- 0
- 0
-[tag]
- Outline (Inde
- 1
- [fnt]
- Times New Roman
- 240
- 0
- 49152
- [algn]
- 257
- 2
- 0
- 360
- 360
- [spc]
- 33
- 0
- 2
- 0
- 0
- 2
- 100
- [brk]
- 4
- [line]
- 0
- 0
- 2
- 4294967295
- 0
- 1
- 1
- 10
- 10
- 2
- [spec]
- 0
- 0
- <*;>.
- 0
- 2
- 1
- 0
- 0
- 0
- 0
- [nfmt]
- 280
- 1
- 2
- .
- ,
- $
-
- 0
- 0
-[tag]
- Title
- 1
- [fnt]
- Arial Black
- 480
- 0
- 49152
- [algn]
- 260
- 2
- 0
- 0
- 0
- [spc]
- 33
- 0
- 2
- 0
- 338
- 2
- 100
- [brk]
- 68
- [line]
- 0
- 0
- 2
- 4294967295
- 0
- 1
- 1
- 10
- 10
- 2
- [spec]
- 0
- 0
-
- 0
- 2
- 1
- 0
- 0
- 0
- 0
- [nfmt]
- 280
- 1
- 2
- .
- ,
- $
- Heading 1
- 0
- 0
-[tag]
- Table Text
- 1
- [fnt]
- Times New Roman
- 240
- 0
- 49152
- [algn]
- 257
- 2
- 0
- 0
- 0
- [spc]
- 33
- 0
- 2
- 0
- 0
- 2
- 100
- [brk]
- 4
- [line]
- 0
- 0
- 2
- 4294967295
- 0
- 1
- 1
- 10
- 10
- 2
- [spec]
- 0
- 0
-
- 0
- 2
- 1
- 0
- 0
- 0
- 0
- [nfmt]
- 280
- 1
- 2
- .
- ,
- $
-
- 0
- 0
-[tag]
- Number List
- 1
- [fnt]
- Times New Roman
- 240
- 0
- 49152
- [algn]
- 257
- 2
- 0
- 360
- 360
- [spc]
- 33
- 0
- 2
- 0
- 0
- 2
- 100
- [brk]
- 4
- [line]
- 0
- 0
- 2
- 4294967295
- 0
- 1
- 1
- 10
- 10
- 2
- [spec]
- 0
- 0
- <*:>.
- 0
- 2
- 1
- 0
- 0
- 0
- 0
- [nfmt]
- 280
- 1
- 2
- .
- ,
- $
-
- 0
- 0
-[tag]
- Heading 3
- 1
- [fnt]
- Times New Roman
- 240
- 0
- 49153
- [algn]
- 257
- 2
- 0
- 0
- 0
- [spc]
- 33
- 0
- 2
- 142
- 0
- 2
- 100
- [brk]
- 68
- [line]
- 0
- 0
- 2
- 4294967295
- 0
- 1
- 1
- 10
- 10
- 2
- [spec]
- 0
- 0
-
- 0
- 2
- 1
- 0
- 0
- 0
- 0
- [nfmt]
- 280
- 1
- 2
- .
- ,
- $
- Body Text
- 0
- 0
-[tag]
- Heading 2
- 1
- [fnt]
- Arial
- 240
- 0
- 49153
- [algn]
- 257
- 2
- 0
- 0
- 0
- [spc]
- 33
- 0
- 2
- 142
- 0
- 2
- 100
- [brk]
- 68
- [line]
- 0
- 0
- 2
- 4294967295
- 0
- 1
- 1
- 10
- 10
- 2
- [spec]
- 0
- 0
-
- 0
- 2
- 1
- 0
- 0
- 0
- 0
- [nfmt]
- 280
- 1
- 2
- .
- ,
- $
- Body Text
- 0
- 0
-[tag]
- Heading 1
- 1
- [fnt]
- Arial Black
- 280
- 0
- 49152
- [algn]
- 257
- 2
- 0
- 0
- 0
- [spc]
- 33
- 0
- 2
- 396
- 0
- 2
- 100
- [brk]
- 68
- [line]
- 0
- 0
- 2
- 4294967295
- 0
- 1
- 1
- 10
- 10
- 2
- [spec]
- 0
- 0
-
- 0
- 2
- 1
- 0
- 0
- 0
- 0
- [nfmt]
- 280
- 1
- 2
- .
- ,
- $
- Body Text
- 0
- 0
-[tag]
- First Line In
- 1
- [fnt]
- Times New Roman
- 240
- 0
- 49152
- [algn]
- 257
- 2
- 0
- 720
- 0
- [spc]
- 33
- 0
- 2
- 0
- 0
- 2
- 100
- [brk]
- 4
- [line]
- 0
- 0
- 2
- 4294967295
- 0
- 1
- 1
- 10
- 10
- 2
- [spec]
- 0
- 0
-
- 0
- 2
- 1
- 0
- 0
- 0
- 0
- [nfmt]
- 280
- 1
- 2
- .
- ,
- $
-
- 0
- 0
-[tag]
- Bullet 2
- 1
- [fnt]
- Times New Roman
- 240
- 0
- 49152
- [algn]
- 257
- 2
- 0
- 360
- 360
- [spc]
- 33
- 0
- 2
- 0
- 0
- 2
- 100
- [brk]
- 4
- [line]
- 0
- 0
- 2
- 4294967295
- 0
- 1
- 1
- 10
- 10
- 2
- [spec]
- 0
- 0
- <*6>
- 0
- 2
- 1
- 0
- 0
- 0
- 0
- [nfmt]
- 280
- 1
- 2
- .
- ,
- $
-
- 0
- 0
-[tag]
- Bullet 1
- 1
- [fnt]
- Times New Roman
- 240
- 0
- 49152
- [algn]
- 257
- 2
- 0
- 360
- 360
- [spc]
- 33
- 0
- 2
- 0
- 0
- 2
- 100
- [brk]
- 4
- [line]
- 0
- 0
- 2
- 4294967295
- 0
- 1
- 1
- 10
- 10
- 2
- [spec]
- 0
- 0
- <*1>
- 0
- 2
- 1
- 0
- 0
- 0
- 0
- [nfmt]
- 280
- 1
- 2
- .
- ,
- $
-
- 0
- 0
-[tag]
- Body Single
- 1
- [fnt]
- Times New Roman
- 240
- 0
- 49152
- [algn]
- 257
- 2
- 0
- 0
- 0
- [spc]
- 33
- 0
- 2
- 0
- 0
- 2
- 100
- [brk]
- 4
- [line]
- 0
- 0
- 2
- 4294967295
- 0
- 1
- 1
- 10
- 10
- 2
- [spec]
- 0
- 0
-
- 0
- 2
- 1
- 0
- 0
- 0
- 0
- [nfmt]
- 280
- 1
- 2
- .
- ,
- $
-
- 0
- 0
-[tag]
- Body Text
- 1
- [fnt]
- Times New Roman
- 240
- 0
- 49152
- [algn]
- 257
- 2
- 0
- 0
- 0
- [spc]
- 33
- 0
- 2
- 0
- 0
- 2
- 100
- [brk]
- 4
- [line]
- 0
- 0
- 2
- 4294967295
- 0
- 1
- 1
- 10
- 10
- 2
- [spec]
- 0
- 0
-
- 0
- 2
- 1
- 0
- 0
- 0
- 0
- [nfmt]
- 280
- 1
- 2
- .
- ,
- $
-
- 0
- 0
-[tag]
- Seq Level 1
- 1
- [fnt]
- Times New Roman
- 240
- 0
- 49152
- [algn]
- 257
- 2
- 0
- 360
- 360
- [spc]
- 33
- 0
- 2
- 0
- 0
- 2
- 100
- [brk]
- 4
- [line]
- 0
- 0
- 2
- 4294967295
- 0
- 1
- 1
- 10
- 10
- 2
- [spec]
- 0
- 1
- <*;>.
- 0
- 2
- 1
- 0
- 2
- 0
- 0
- [nfmt]
- 280
- 1
- 2
- .
- ,
- $
-
- 0
- 0
-[tag]
- Seq Level 2
- 1
- [fnt]
- Times New Roman
- 240
- 0
- 49152
- [algn]
- 257
- 2
- 360
- 360
- 360
- [spc]
- 33
- 0
- 2
- 0
- 0
- 2
- 100
- [brk]
- 4
- [line]
- 0
- 0
- 2
- 4294967295
- 0
- 1
- 1
- 10
- 10
- 2
- [spec]
- 0
- 2
- <*=>.
- 0
- 2
- 1
- 0
- 2
- 0
- 0
- [nfmt]
- 280
- 1
- 2
- .
- ,
- $
-
- 0
- 0
-[tag]
- Seq Level 3
- 1
- [fnt]
- Times New Roman
- 240
- 0
- 49152
- [algn]
- 257
- 2
- 720
- 360
- 360
- [spc]
- 33
- 0
- 2
- 0
- 0
- 2
- 100
- [brk]
- 4
- [line]
- 0
- 0
- 2
- 4294967295
- 0
- 1
- 1
- 10
- 10
- 2
- [spec]
- 0
- 3
- <*:>.
- 0
- 2
- 1
- 0
- 2
- 0
- 0
- [nfmt]
- 280
- 1
- 2
- .
- ,
- $
-
- 0
- 0
-[tag]
- Seq Level 4
- 1
- [fnt]
- Times New Roman
- 240
- 0
- 49152
- [algn]
- 257
- 2
- 1080
- 360
- 360
- [spc]
- 33
- 0
- 2
- 0
- 0
- 2
- 100
- [brk]
- 4
- [line]
- 0
- 0
- 2
- 4294967295
- 0
- 1
- 1
- 10
- 10
- 2
- [spec]
- 0
- 4
- <*>>.
- 0
- 2
- 1
- 0
- 2
- 0
- 0
- [nfmt]
- 280
- 1
- 2
- .
- ,
- $
-
- 0
- 0
-[tag]
- Seq Level 5
- 1
- [fnt]
- Times New Roman
- 240
- 0
- 49152
- [algn]
- 257
- 2
- 1440
- 360
- 360
- [spc]
- 33
- 0
- 2
- 0
- 0
- 2
- 100
- [brk]
- 4
- [line]
- 0
- 0
- 2
- 4294967295
- 0
- 1
- 1
- 10
- 10
- 2
- [spec]
- 0
- 5
- <*<>.
- 0
- 2
- 1
- 0
- 2
- 0
- 0
- [nfmt]
- 280
- 1
- 2
- .
- ,
- $
-
- 0
- 0
-[tag]
- Seq Level 6
- 1
- [fnt]
- Times New Roman
- 240
- 0
- 49152
- [algn]
- 257
- 2
- 1800
- 360
- 360
- [spc]
- 33
- 0
- 2
- 0
- 0
- 2
- 100
- [brk]
- 4
- [line]
- 0
- 0
- 2
- 4294967295
- 0
- 1
- 1
- 10
- 10
- 2
- [spec]
- 0
- 6
- <*:>)
- 0
- 2
- 1
- 0
- 2
- 0
- 0
- [nfmt]
- 280
- 1
- 2
- .
- ,
- $
-
- 0
- 0
-[tag]
- Seq Level 7
- 1
- [fnt]
- Times New Roman
- 240
- 0
- 49152
- [algn]
- 257
- 2
- 2160
- 360
- 360
- [spc]
- 33
- 0
- 2
- 0
- 0
- 2
- 100
- [brk]
- 4
- [line]
- 0
- 0
- 2
- 4294967295
- 0
- 1
- 1
- 10
- 10
- 2
- [spec]
- 0
- 7
- <*>>)
- 0
- 2
- 1
- 0
- 2
- 0
- 0
- [nfmt]
- 280
- 1
- 2
- .
- ,
- $
-
- 0
- 0
-[tag]
- Seq Level 8
- 1
- [fnt]
- Times New Roman
- 240
- 0
- 49152
- [algn]
- 257
- 2
- 2520
- 360
- 360
- [spc]
- 33
- 0
- 2
- 0
- 0
- 2
- 100
- [brk]
- 4
- [line]
- 0
- 0
- 2
- 4294967295
- 0
- 1
- 1
- 10
- 10
- 2
- [spec]
- 0
- 8
- <*<>)
- 0
- 2
- 1
- 0
- 2
- 0
- 0
- [nfmt]
- 280
- 1
- 2
- .
- ,
- $
-
- 0
- 0
-[tag]
- Seq Level 9
- 1
- [fnt]
- Times New Roman
- 240
- 0
- 49152
- [algn]
- 257
- 2
- 2880
- 360
- 360
- [spc]
- 33
- 0
- 2
- 0
- 0
- 2
- 100
- [brk]
- 4
- [line]
- 0
- 0
- 2
- 4294967295
- 0
- 1
- 1
- 10
- 10
- 2
- [spec]
- 0
- 9
- (<*:>)
- 0
- 2
- 1
- 0
- 2
- 0
- 0
- [nfmt]
- 280
- 1
- 2
- .
- ,
- $
-
- 0
- 0
-[tag]
- WP Bullets
- 1
- [fnt]
- Times New Roman
- 240
- 0
- 49152
- [algn]
- 257
- 2
- 0
- 360
- 360
- [spc]
- 33
- 0
- 2
- 0
- 0
- 2
- 100
- [brk]
- 4
- [line]
- 0
- 0
- 2
- 4294967295
- 0
- 1
- 1
- 10
- 10
- 2
- [spec]
- 0
- 0
- <*1>
- 0
- 2
- 1
- 0
- 0
- 0
- 0
- [nfmt]
- 280
- 1
- 2
- .
- ,
- $
-
- 0
- 0
-[lay]
- Standard
- 519
- [rght]
- 16838
- 11906
- 2
- 1440
- 1440
- 2
- 1440
- 1440
- 0
- 1
- 3937208
- 1
- 0
- 2
- 1
- 1440
- 10466
- 12
- 1
- 720
- 1
- 1440
- 1
- 2160
- 1
- 2880
- 1
- 3600
- 1
- 4320
- 1
- 5040
- 1
- 5760
- 1
- 6480
- 1
- 7200
- 1
- 7920
- 1
- 8640
- [frght]
- [lyfrm]
- 1
- 13184
- 0
- 15398
- 11906
- 16838
- 0
- 2
- 3
- 1 0 0 0 0 0 0
- 0
- 16777215
- 0
- [frmlay]
- 16838
- 11906
- 2
- 1440
- 648
- 2
- 15470
- 1440
- 0
- 1
- 3937208
- 0
- 0
- 0
- 1
- 1440
- 10466
- 2
- 2
- 4513
- 3
- 9026
- [txt]
-
->
- [hrght]
- [lyfrm]
- 1
- 11136
- 0
- 0
- 11906
- 1440
- 0
- 2
- 3
- 1 0 0 0 0 0 0
- 0
- 16777215
- 0
- [frmlay]
- 1440
- 11906
- 2
- 1440
- 72
- 2
- 648
- 1440
- 0
- 1
- 3937208
- 0
- 0
- 0
- 1
- 1440
- 10466
- 2
- 2
- 4513
- 3
- 9026
- [txt]
-
->
-[elay]
-[l1]
- 0
-[edoc]
-Pride and Prejudice
-
-
-by Jane Austen
-
-
-
-
-
-Chapter 1
-
-
-
-It is a truth universally acknowledged, that a single man in
-
-possession of a good fortune, must be in want of a wife.
-
-
-However little known the feelings or views of such a man may
-
-be on his first entering a neighbourhood, this truth is so well
-
-fixed in the minds of the surrounding families, that he is considered
-
-the rightful property of some one or other of their daughters.
-
-
-"My dear Mr. Bennet," said his lady to him one day, "have you
-
-heard that Netherfield Park is let at last?"
-
-
-Mr. Bennet replied that he had not.
-
-
-"But it is," returned she; "for Mrs. Long has just been here, and
-
-she told me all about it."
-
-
-Mr. Bennet made no answer.
-
-
-"Do you not want to know who has taken it?" cried his wife
-
-impatiently.
-
-
-"YOU want to tell me, and I have no objection to hearing it."
-
-
-This was invitation enough.
-
-
-"Why, my dear, you must know, Mrs. Long says that Netherfield
-
-is taken by a young man of large fortune from the north of
-
-England; that he came down on Monday in a chaise and four to
-
-see the place, and was so much delighted with it, that he agreed
-
-with Mr. Morris immediately; that he is to take possession
-
-before Michaelmas, and some of his servants are to be in the
-
-house by the end of next week."
-
-
-"What is his name?"
-
-
-"Bingley."
-
-
-"Is he married or single?"
-
-
-"Oh! Single, my dear, to be sure! A single man of large
-
-fortune; four or five thousand a year. What a fine thing for our
-
-girls!"
-
-
-"How so? How can it affect them?"
-
-
-"My dear Mr. Bennet," replied his wife, "how can you be so
-
-tiresome! You must know that I am thinking of his marrying
-
-one of them."
-
-
-"Is that his design in settling here?"
-
-
-"Design! Nonsense, how can you talk so! But it is very likely
-
-that he MAY fall in love with one of them, and therefore you
-
-must visit him as soon as he comes."
-
-
-"I see no occasion for that. You and the girls may go, or you
-
-may send them by themselves, which perhaps will be still
-
-better, for as you are as handsome as any of them, Mr. Bingley
-
-may like you the best of the party."
-
-
-"My dear, you flatter me. I certainly HAVE had my share of
-
-beauty, but I do not pretend to be anything extraordinary now.
-
-When a woman has five grown-up daughters, she ought to give
-
-over thinking of her own beauty."
-
-
-"In such cases, a woman has not often much beauty to think of."
-
-
-"But, my dear, you must indeed go and see Mr. Bingley when
-
-he comes into the neighbourhood."
-
-
-"It is more than I engage for, I assure you."
-
-
-"But consider your daughters. Only think what an establishment
-
-it would be for one of them. Sir William and Lady Lucas are
-
-determined to go, merely on that account, for in general, you
-
-know, they visit no newcomers. Indeed you must go, for it will
-
-be impossible for US to visit him if you do not."
-
-
-"You are over-scrupulous, surely. I dare say Mr. Bingley will
-
-be very glad to see you; and I will send a few lines by you to
-
-assure him of my hearty consent to his marrying whichever he
-
-chooses of the girls; though I must throw in a good word for
-
-my little Lizzy."
-
-
-"I desire you will do no such thing. Lizzy is not a bit better
-
-than the others; and I am sure she is not half so handsome as
-
-Jane, nor half so good-humoured as Lydia. But you are always
-
-giving HER the preference."
-
-
-"They have none of them much to recommend them," replied he;
-
-"they are all silly and ignorant like other girls; but Lizzy
-
-has something more of quickness than her sisters."
-
-
-"Mr. Bennet, how CAN you abuse your own children in such a
-
-way? You take delight in vexing me. You have no compassion
-
-for my poor nerves."
-
-
-"You mistake me, my dear. I have a high respect for your
-
-nerves. They are my old friends. I have heard you mention
-
-them with consideration these last twenty years at least."
-
-
-Mr. Bennet was so odd a mixture of quick parts, sarcastic humour,
-
-reserve, and caprice, that the experience of three-and-twenty
-
-years had been insufficient to make his wife understand his
-
-character. HER mind was less difficult to develop. She was a
-
-woman of mean understanding, little information, and uncertain
-
-temper. When she was discontented, she fancied herself nervous.
-
-The business of her life was to get her daughters married; its
-
-solace was visiting and news.
-
-
-
-
-Chapter 2
-
-
-
-Mr. Bennet was among the earliest of those who waited on Mr.
-
-Bingley. He had always intended to visit him, though to the last
-
-always assuring his wife that he should not go; and till the
-
-evening after the visit was paid she had no knowledge of it.
-
-It was then disclosed in the following manner. Observing his
-
-second daughter employed in trimming a hat, he suddenly
-
-addressed her with:
-
-
-"I hope Mr. Bingley will like it, Lizzy."
-
-
-"We are not in a way to know WHAT Mr. Bingley likes," said
-
-her mother resentfully, "since we are not to visit."
-
-
-"But you forget, mamma," said Elizabeth, "that we shall meet
-
-him at the assemblies, and that Mrs. Long promised to introduce
-
-him."
-
-
-"I do not believe Mrs. Long will do any such thing. She has two
-
-nieces of her own. She is a selfish, hypocritical woman, and I
-
-have no opinion of her."
-
-
-"No more have I," said Mr. Bennet; "and I am glad to find that
-
-you do not depend on her serving you."
-
-
-Mrs. Bennet deigned not to make any reply, but, unable to
-
-contain herself, began scolding one of her daughters.
-
-
-"Don't keep coughing so, Kitty, for Heaven's sake! Have a little
-
-compassion on my nerves. You tear them to pieces."
-
-
-"Kitty has no discretion in her coughs," said her father; "she
-
-times them ill."
-
-
-"I do not cough for my own amusement," replied Kitty fretfully.
-
-"When is your next ball to be, Lizzy?"
-
-
-"To-morrow fortnight."
-
-
-"Aye, so it is," cried her mother, "and Mrs. Long does not come
-
-back till the day before; so it will be impossible for her to
-
-introduce him, for she will not know him herself."
-
-
-"Then, my dear, you may have the advantage of your friend, and
-
-introduce Mr. Bingley to HER."
-
-
-"Impossible, Mr. Bennet, impossible, when I am not acquainted
-
-with him myself; how can you be so teasing?"
-
-
-"I honour your circumspection. A fortnight's acquaintance is
-
-certainly very little. One cannot know what a man really is by
-
-the end of a fortnight. But if WE do not venture somebody else
-
-will; and after all, Mrs. Long and her daughters must stand their
-
-chance; and, therefore, as she will think it an act of kindness,
-
-if you decline the office, I will take it on myself."
-
-
-The girls stared at their father. Mrs. Bennet said only,
-
-"Nonsense, nonsense!"
-
-
-"What can be the meaning of that emphatic exclamation?" cried
-
-he. "Do you consider the forms of introduction, and the stress
-
-that is laid on them, as nonsense? I cannot quite agree with
-
-you THERE. What say you, Mary? For you are a young lady of
-
-deep reflection, I know, and read great books and make extracts."
-
-
-Mary wished to say something sensible, but knew not how.
-
-
-"While Mary is adjusting her ideas," he continued, "let us return
-
-to Mr. Bingley."
-
-
-"I am sick of Mr. Bingley," cried his wife.
-
-
-"I am sorry to hear THAT; but why did not you tell me that
-
-before? If I had known as much this morning I certainly would
-
-not have called on him. It is very unlucky; but as I have
-
-actually paid the visit, we cannot escape the acquaintance now."
-
-
-The astonishment of the ladies was just what he wished; that of
-
-Mrs. Bennet perhaps surpassing the rest; though, when the first
-
-tumult of joy was over, she began to declare that it was what she
-
-had expected all the while.
-
-
-"How good it was in you, my dear Mr. Bennet! But I knew I should
-
-persuade you at last. I was sure you loved your girls too well
-
-to neglect such an acquaintance. Well, how pleased I am! and it
-
-is such a good joke, too, that you should have gone this morning
-
-and never said a word about it till now."
-
-
-"Now, Kitty, you may cough as much as you choose," said Mr.
-
-Bennet; and, as he spoke, he left the room, fatigued with the
-
-raptures of his wife.
-
-
-"What an excellent father you have, girls!" said she, when the
-
-door was shut. "I do not know how you will ever make him
-
-amends for his kindness; or me, either, for that matter. At our
-
-time of life it is not so pleasant, I can tell you, to be making
-
-new acquaintances every day; but for your sakes, we would do
-
-anything. Lydia, my love, though you ARE the youngest, I dare
-
-say Mr. Bingley will dance with you at the next ball."
-
-
-"Oh!" said Lydia stoutly, "I am not afraid; for though I AM the
-
-youngest, I'm the tallest."
-
-
-The rest of the evening was spent in conjecturing how soon he
-
-would return Mr. Bennet's visit, and determining when they
-
-should ask him to dinner.
-
-
-
-
-Chapter 3
-
-
-
-Not all that Mrs. Bennet, however, with the assistance of her
-
-five daughters, could ask on the subject, was sufficient to draw
-
-from her husband any satisfactory description of Mr. Bingley.
-
-They attacked him in various ways--with barefaced questions,
-
-ingenious suppositions, and distant surmises; but he eluded the
-
-skill of them all, and they were at last obliged to accept the
-
-second-hand intelligence of their neighbour, Lady Lucas. Her
-
-report was highly favourable. Sir William had been delighted
-
-with him. He was quite young, wonderfully handsome, extremely
-
-agreeable, and, to crown the whole, he meant to be at the next
-
-assembly with a large party. Nothing could be more delightful!
-
-To be fond of dancing was a certain step towards falling in love;
-
-and very lively hopes of Mr. Bingley's heart were entertained.
-
-
-"If I can but see one of my daughters happily settled at
-
-Netherfield," said Mrs. Bennet to her husband, "and all the
-
-others equally well married, I shall have nothing to wish for."
-
-
-In a few days Mr. Bingley returned Mr. Bennet's visit, and sat
-
-about ten minutes with him in his library. He had entertained
-
-hopes of being admitted to a sight of the young ladies, of
-
-whose beauty he had heard much; but he saw only the father.
-
-The ladies were somewhat more fortunate, for they had the
-
-advantage of ascertaining from an upper window that he wore
-
-a blue coat, and rode a black horse.
-
-
-An invitation to dinner was soon afterwards dispatched; and
-
-already had Mrs. Bennet planned the courses that were to do
-
-credit to her housekeeping, when an answer arrived which
-
-deferred it all. Mr. Bingley was obliged to be in town the
-
-following day, and, consequently, unable to accept the honour
-
-of their invitation, etc. Mrs. Bennet was quite disconcerted.
-
-She could not imagine what business he could have in town so
-
-soon after his arrival in Hertfordshire; and she began to fear
-
-that he might be always flying about from one place to another,
-
-and never settled at Netherfield as he ought to be. Lady Lucas
-
-quieted her fears a little by starting the idea of his being gone
-
-to London only to get a large party for the ball; and a report
-
-soon followed that Mr. Bingley was to bring twelve ladies and
-
-seven gentlemen with him to the assembly. The girls grieved
-
-over such a number of ladies, but were comforted the day
-
-before the ball by hearing, that instead of twelve he brought
-
-only six with him from London--his five sisters and a cousin.
-
-And when the party entered the assembly room it consisted of
-
-only five altogether--Mr. Bingley, his two sisters, the husband
-
-of the eldest, and another young man.
-
-
-Mr. Bingley was good-looking and gentlemanlike; he had a pleasant
-
-countenance, and easy, unaffected manners. His sisters were fine
-
-women, with an air of decided fashion. His brother-in-law, Mr.
-
-Hurst, merely looked the gentleman; but his friend Mr. Darcy soon
-
-drew the attention of the room by his fine, tall person, handsome
-
-features, noble mien, and the report which was in general
-
-circulation within five minutes after his entrance, of his having
-
-ten thousand a year. The gentlemen pronounced him to be a fine
-
-figure of a man, the ladies declared he was much handsomer than
-
-Mr. Bingley, and he was looked at with great admiration for about
-
-half the evening, till his manners gave a disgust which turned
-
-the tide of his popularity; for he was discovered to be proud;
-
-to be above his company, and above being pleased; and not all his
-
-large estate in Derbyshire could then save him from having a most
-
-forbidding, disagreeable countenance, and being unworthy to be
-
-compared with his friend.
-
-
-Mr. Bingley had soon made himself acquainted with all the
-
-principal people in the room; he was lively and unreserved,
-
-danced every dance, was angry that the ball closed so early,
-
-and talked of giving one himself at Netherfield. Such amiable
-
-qualities must speak for themselves. What a contrast between
-
-him and his friend! Mr. Darcy danced only once with Mrs. Hurst
-
-and once with Miss Bingley, declined being introduced to any
-
-other lady, and spent the rest of the evening in walking about
-
-the room, speaking occasionally to one of his own party. His
-
-character was decided. He was the proudest, most disagreeable
-
-man in the world, and everybody hoped that he would never come
-
-there again. Amongst the most violent against him was Mrs.
-
-Bennet, whose dislike of his general behaviour was sharpened
-
-into particular resentment by his having slighted one of her
-
-daughters.
-
-
-Elizabeth Bennet had been obliged, by the scarcity of gentlemen,
-
-to sit down for two dances; and during part of that time,
-
-Mr. Darcy had been standing near enough for her to hear a
-
-conversation between him and Mr. Bingley, who came from the
-
-dance for a few minutes, to press his friend to join it.
-
-
-"Come, Darcy," said he, "I must have you dance. I hate to see
-
-you standing about by yourself in this stupid manner. You had
-
-much better dance."
-
-
-"I certainly shall not. You know how I detest it, unless I am
-
-particularly acquainted with my partner. At such an assembly as
-
-this it would be insupportable. Your sisters are engaged, and
-
-there is not another woman in the room whom it would not be a
-
-punishment to me to stand up with."
-
-
-"I would not be so fastidious as you are," cried Mr. Bingley,
-
-"for a kingdom! Upon my honour, I never met with so many
-
-pleasant girls in my life as I have this evening; and there are
-
-several of them you see uncommonly pretty."
-
-
-"YOU are dancing with the only handsome girl in the room,"
-
-said Mr. Darcy, looking at the eldest Miss Bennet.
-
-
-"Oh! She is the most beautiful creature I ever beheld! But
-
-there is one of her sisters sitting down just behind you, who is
-
-very pretty, and I dare say very agreeable. Do let me ask my
-
-partner to introduce you."
-
-
-"Which do you mean?" and turning round he looked for a
-
-moment at Elizabeth, till catching her eye, he withdrew his own
-
-and coldly said: "She is tolerable, but not handsome enough to
-
-tempt ME; I am in no humour at present to give consequence
-
-to young ladies who are slighted by other men. You had better
-
-return to your partner and enjoy her smiles, for you are wasting
-
-your time with me."
-
-
-Mr. Bingley followed his advice. Mr. Darcy walked off; and
-
-Elizabeth remained with no very cordial feelings toward him.
-
-She told the story, however, with great spirit among her friends;
-
-for she had a lively, playful disposition, which delighted in
-
-anything ridiculous.
-
-
-The evening altogether passed off pleasantly to the whole
-
-family. Mrs. Bennet had seen her eldest daughter much
-
-admired by the Netherfield party. Mr. Bingley had danced with
-
-her twice, and she had been distinguished by his sisters. Jane
-
-was as much gratified by this as her mother could be, though in
-
-a quieter way. Elizabeth felt Jane's pleasure. Mary had heard
-
-herself mentioned to Miss Bingley as the most accomplished
-
-girl in the neighbourhood; and Catherine and Lydia had been
-
-fortunate enough never to be without partners, which was all
-
-that they had yet learnt to care for at a ball. They returned,
-
-therefore, in good spirits to Longbourn, the village where they
-
-lived, and of which they were the principal inhabitants. They
-
-found Mr. Bennet still up. With a book he was regardless of
-
-time; and on the present occasion he had a good deal of
-
-curiosity as to the events of an evening which had raised such
-
-splendid expectations. He had rather hoped that his wife's
-
-views on the stranger would be disappointed; but he soon
-
-found out that he had a different story to hear.
-
-
-"Oh! my dear Mr. Bennet," as she entered the room, "we have
-
-had a most delightful evening, a most excellent ball. I wish you
-
-had been there. Jane was so admired, nothing could be like it.
-
-Everybody said how well she looked; and Mr. Bingley thought
-
-her quite beautiful, and danced with her twice! Only think of
-
-THAT, my dear; he actually danced with her twice! and she was
-
-the only creature in the room that he asked a second time.
-
-First of all, he asked Miss Lucas. I was so vexed to see him
-
-stand up with her! But, however, he did not admire her at all;
-
-indeed, nobody can, you know; and he seemed quite struck with
-
-Jane as she was going down the dance. So he inquired who she
-
-was, and got introduced, and asked her for the two next. Then
-
-the two third he danced with Miss King, and the two fourth with
-
-Maria Lucas, and the two fifth with Jane again, and the two
-
-sixth with Lizzy, and the BOULANGER--"
-
-
-"If he had had any compassion for ME," cried her husband
-
-impatiently, "he would not have danced half so much! For God's
-
-sake, say no more of his partners. O that he had sprained
-
-his ankle in the first place!"
-
-
-"Oh! my dear, I am quite delighted with him. He is so
-
-excessively handsome! And his sisters are charming women.
-
-I never in my life saw anything more elegant than their dresses.
-
-I dare say the lace upon Mrs. Hurst's gown--"
-
-
-Here she was interrupted again. Mr. Bennet protested against
-
-any description of finery. She was therefore obliged to seek
-
-another branch of the subject, and related, with much bitterness
-
-of spirit and some exaggeration, the shocking rudeness of Mr.
-
-Darcy.
-
-
-"But I can assure you," she added, "that Lizzy does not lose
-
-much by not suiting HIS fancy; for he is a most disagreeable,
-
-horrid man, not at all worth pleasing. So high and so conceited
-
-that there was no enduring him! He walked here, and he walked
-
-there, fancying himself so very great! Not handsome enough to
-
-dance with! I wish you had been there, my dear, to have given
-
-him one of your set-downs. I quite detest the man."
-
-
-
-
-Chapter 4
-
-
-
-When Jane and Elizabeth were alone, the former, who had been
-
-cautious in her praise of Mr. Bingley before, expressed to her
-
-sister just how very much she admired him.
-
-
-"He is just what a young man ought to be," said she, "sensible,
-
-good-humoured, lively; and I never saw such happy manners!--so
-
-much ease, with such perfect good breeding!"
-
-
-"He is also handsome," replied Elizabeth, "which a young man
-
-ought likewise to be, if he possibly can. His character is thereby
-
-complete."
-
-
-"I was very much flattered by his asking me to dance a second
-
-time. I did not expect such a compliment."
-
-
-"Did not you? I did for you. But that is one great difference
-
-between us. Compliments always take YOU by surprise, and
-
-ME never. What could be more natural than his asking you
-
-again? He could not help seeing that you were about five times
-
-as pretty as every other woman in the room. No thanks to his
-
-gallantry for that. Well, he certainly is very agreeable, and I
-
-give you leave to like him. You have liked many a stupider
-
-person."
-
-
-"Dear Lizzy!"
-
-
-"Oh! you are a great deal too apt, you know, to like people in
-
-general. You never see a fault in anybody. All the world are
-
-good and agreeable in your eyes. I never heard you speak ill of
-
-a human being in your life."
-
-
-"I would not wish to be hasty in censuring anyone; but I always
-
-speak what I think."
-
-
-"I know you do; and it is THAT which makes the wonder. With YOUR
-
-good sense, to be so honestly blind to the follies and nonsense
-
-of others! Affectation of candour is common enough--one meets
-
-with it everywhere. But to be candid without ostentation or
-
-design--to take the good of everybody's character and make it
-
-still better, and say nothing of the bad--belongs to you alone.
-
-And so you like this man's sisters, too, do you? Their manners
-
-are not equal to his."
-
-
-"Certainly not--at first. But they are very pleasing women when
-
-you converse with them. Miss Bingley is to live with her
-
-brother, and keep his house; and I am much mistaken if we shall
-
-not find a very charming neighbour in her."
-
-
-Elizabeth listened in silence, but was not convinced; their
-
-behaviour at the assembly had not been calculated to please in
-
-general; and with more quickness of observation and less pliancy
-
-of temper than her sister, and with a judgement too unassailed by
-
-any attention to herself, she was very little disposed to approve
-
-them. They were in fact very fine ladies; not deficient in good
-
-humour when they were pleased, nor in the power of making
-
-themselves agreeable when they chose it, but proud and
-
-conceited. They were rather handsome, had been educated in
-
-one of the first private seminaries in town, had a fortune of
-
-twenty thousand pounds, were in the habit of spending more
-
-than they ought, and of associating with people of rank, and
-
-were therefore in every respect entitled to think well of
-
-themselves, and meanly of others. They were of a respectable
-
-family in the north of England; a circumstance more deeply
-
-impressed on their memories than that their brother's fortune
-
-and their own had been acquired by trade.
-
-
-Mr. Bingley inherited property to the amount of nearly a
-
-hundred thousand pounds from his father, who had intended to
-
-purchase an estate, but did not live to do it. Mr. Bingley
-
-intended it likewise, and sometimes made choice of his county;
-
-but as he was now provided with a good house and the liberty of
-
-a manor, it was doubtful to many of those who best knew the
-
-easiness of his temper, whether he might not spend the
-
-remainder of his days at Netherfield, and leave the next
-
-generation to purchase.
-
-
-His sisters were anxious for his having an estate of his own; but,
-
-though he was now only established as a tenant, Miss Bingley
-
-was by no means unwilling to preside at his table--nor was Mrs.
-
-Hurst, who had married a man of more fashion than fortune, less
-
-disposed to consider his house as her home when it suited her.
-
-Mr. Bingley had not been of age two years, when he was tempted
-
-by an accidental recommendation to look at Netherfield House.
-
-He did look at it, and into it for half-an-hour--was pleased with
-
-the situation and the principal rooms, satisfied with what the
-
-owner said in its praise, and took it immediately.
-
-
-Between him and Darcy there was a very steady friendship, in
-
-spite of great opposition of character. Bingley was endeared to
-
-Darcy by the easiness, openness, and ductility of his temper,
-
-though no disposition could offer a greater contrast to his own,
-
-and though with his own he never appeared dissatisfied. On the
-
-strength of Darcy's regard, Bingley had the firmest reliance, and
-
-of his judgement the highest opinion. In understanding, Darcy
-
-was the superior. Bingley was by no means deficient, but Darcy
-
-was clever. He was at the same time haughty, reserved, and
-
-fastidious, and his manners, though well-bred, were not inviting.
-
-In that respect his friend had greatly the advantage. Bingley was
-
-sure of being liked wherever he appeared, Darcy was continually
-
-giving offense.
-
-
-The manner in which they spoke of the Meryton assembly was
-
-sufficiently characteristic. Bingley had never met with more
-
-pleasant people or prettier girls in his life; everybody had been
-
-most kind and attentive to him; there had been no formality, no
-
-stiffness; he had soon felt acquainted with all the room; and, as
-
-to Miss Bennet, he could not conceive an angel more beautiful.
-
-Darcy, on the contrary, had seen a collection of people in whom
-
-there was little beauty and no fashion, for none of whom he had
-
-felt the smallest interest, and from none received either attention
-
-or pleasure. Miss Bennet he acknowledged to be pretty, but she
-
-smiled too much.
-
-
-Mrs. Hurst and her sister allowed it to be so--but still they
-
-admired her and liked her, and pronounced her to be a sweet
-
-girl, and one whom they would not object to know more of.
-
-Miss Bennet was therefore established as a sweet girl, and their
-
-brother felt authorized by such commendation to think of her as
-
-he chose.
-
-
-
-
-Chapter 5
-
-
-
-Within a short walk of Longbourn lived a family with whom
-
-the Bennets were particularly intimate. Sir William Lucas
-
-had been formerly in trade in Meryton, where he had made a
-
-tolerable fortune, and risen to the honour of knighthood by an
-
-address to the king during his mayoralty. The distinction had
-
-perhaps been felt too strongly. It had given him a disgust
-
-to his business, and to his residence in a small market town;
-
-and, in quitting them both, he had removed with his family
-
-to a house about a mile from Meryton, denominated from that
-
-period Lucas Lodge, where he could think with pleasure of his
-
-own importance, and, unshackled by business, occupy himself
-
-solely in being civil to all the world. For, though elated by his
-
-rank, it did not render him supercilious; on the contrary, he was
-
-all attention to everybody. By nature inoffensive, friendly, and
-
-obliging, his presentation at St. James's had made him courteous.
-
-
-Lady Lucas was a very good kind of woman, not too clever to
-
-be a valuable neighbour to Mrs. Bennet. They had several
-
-children. The eldest of them, a sensible, intelligent young
-
-woman, about twenty-seven, was Elizabeth's intimate friend.
-
-
-That the Miss Lucases and the Miss Bennets should meet to
-
-talk over a ball was absolutely necessary; and the morning after
-
-the assembly brought the former to Longbourn to hear and to
-
-communicate.
-
-
-"YOU began the evening well, Charlotte," said Mrs. Bennet with
-
-civil self-command to Miss Lucas. "YOU were Mr. Bingley's
-
-first choice."
-
-
-"Yes; but he seemed to like his second better."
-
-
-"Oh! you mean Jane, I suppose, because he danced with her
-
-twice. To be sure that DID seem as if he admired her--indeed
-
-I rather believe he DID--I heard something about it--but I
-
-hardly know what--something about Mr. Robinson."
-
-
-"Perhaps you mean what I overheard between him and Mr. Robinson;
-
-did not I mention it to you? Mr. Robinson's asking him how he
-
-liked our Meryton assemblies, and whether he did not think there
-
-were a great many pretty women in the room, and WHICH he thought
-
-the prettiest? and his answering immediately to the last
-
-question: 'Oh! the eldest Miss Bennet, beyond a doubt; there
-
-cannot be two opinions on that point.'"
-
-
-"Upon my word! Well, that is very decided indeed--that does
-
-seem as if--but, however, it may all come to nothing, you know."
-
-
-"MY overhearings were more to the purpose than YOURS, Eliza,"
-
-said Charlotte. "Mr. Darcy is not so well worth listening to
-
-as his friend, is he?--poor Eliza!--to be only just TOLERABLE."
-
-
-"I beg you would not put it into Lizzy's head to be vexed by
-
-his ill-treatment, for he is such a disagreeable man, that it
-
-would be quite a misfortune to be liked by him. Mrs. Long
-
-told me last night that he sat close to her for half-an-hour
-
-without once opening his lips."
-
-
-"Are you quite sure, ma'am?--is not there a little mistake?"
-
-said Jane. "I certainly saw Mr. Darcy speaking to her."
-
-
-"Aye--because she asked him at last how he liked Netherfield,
-
-and he could not help answering her; but she said he seemed
-
-quite angry at being spoke to."
-
-
-"Miss Bingley told me," said Jane, "that he never speaks much,
-
-unless among his intimate acquaintances. With THEM he is
-
-remarkably agreeable."
-
-
-"I do not believe a word of it, my dear. If he had been so very
-
-agreeable, he would have talked to Mrs. Long. But I can guess
-
-how it was; everybody says that he is eat up with pride, and I
-
-dare say he had heard somehow that Mrs. Long does not keep
-
-a carriage, and had come to the ball in a hack chaise."
-
-
-"I do not mind his not talking to Mrs. Long," said Miss Lucas,
-
-"but I wish he had danced with Eliza."
-
-
-"Another time, Lizzy," said her mother, "I would not dance
-
-with HIM, if I were you."
-
-
-"I believe, ma'am, I may safely promise you NEVER to dance
-
-with him."
-
-
-"His pride," said Miss Lucas, "does not offend ME so much as
-
-pride often does, because there is an excuse for it. One cannot
-
-wonder that so very fine a young man, with family, fortune,
-
-everything in his favour, should think highly of himself. If I
-
-may so express it, he has a RIGHT to be proud."
-
-
-"That is very true," replied Elizabeth, "and I could easily
-
-forgive HIS pride, if he had not mortified MINE."
-
-
-"Pride," observed Mary, who piqued herself upon the solidity
-
-of her reflections, "is a very common failing, I believe. By
-
-all that I have ever read, I am convinced that it is very common
-
-indeed; that human nature is particularly prone to it, and
-
-that there are very few of us who do not cherish a feeling of
-
-self-complacency on the score of some quality or other, real
-
-or imaginary. Vanity and pride are different things, though
-
-the words are often used synonymously. A person may be proud
-
-without being vain. Pride relates more to our opinion of
-
-ourselves, vanity to what we would have others think of us."
-
-
-"If I were as rich as Mr. Darcy," cried a young Lucas, who
-
-came with his sisters, "I should not care how proud I was. I
-
-would keep a pack of foxhounds, and drink a bottle of wine a
-
-day."
-
-
-"Then you would drink a great deal more than you ought," said
-
-Mrs. Bennet; "and if I were to see you at it, I should take away
-
-your bottle directly."
-
-
-The boy protested that she should not; she continued to declare
-
-that she would, and the argument ended only with the visit.
-
-
-
-
-Chapter 6
-
-
-
-The ladies of Longbourn soon waited on those of Netherfield.
-
-The visit was soon returned in due form. Miss Bennet's
-
-pleasing manners grew on the goodwill of Mrs. Hurst and Miss
-
-Bingley; and though the mother was found to be intolerable,
-
-and the younger sisters not worth speaking to, a wish of
-
-being better acquainted with THEM was expressed towards
-
-the two eldest. By Jane, this attention was received with the
-
-greatest pleasure, but Elizabeth still saw superciliousness in
-
-their treatment of everybody, hardly excepting even her sister,
-
-and could not like them; though their kindness to Jane, such as it
-
-was, had a value as arising in all probability from the influence
-
-of their brother's admiration. It was generally evident
-
-whenever they met, that he DID admire her and to HER it was
-
-equally evident that Jane was yielding to the preference which
-
-she had begun to entertain for him from the first, and was in a
-
-way to be very much in love; but she considered with pleasure
-
-that it was not likely to be discovered by the world in general,
-
-since Jane united, with great strength of feeling, a composure
-
-of temper and a uniform cheerfulness of manner which would
-
-guard her from the suspicions of the impertinent. She
-
-mentioned this to her friend Miss Lucas.
-
-
-"It may perhaps be pleasant," replied Charlotte, "to be able to
-
-impose on the public in such a case; but it is sometimes a
-
-disadvantage to be so very guarded. If a woman conceals her
-
-affection with the same skill from the object of it, she may lose
-
-the opportunity of fixing him; and it will then be but poor
-
-consolation to believe the world equally in the dark. There is
-
-so much of gratitude or vanity in almost every attachment, that
-
-it is not safe to leave any to itself. We can all BEGIN freely--a
-
-slight preference is natural enough; but there are very few of us
-
-who have heart enough to be really in love without encouragement.
-
-In nine cases out of ten a women had better show MORE affection
-
-than she feels. Bingley likes your sister undoubtedly; but he
-
-may never do more than like her, if she does not help him on."
-
-
-"But she does help him on, as much as her nature will allow.
-
-If I can perceive her regard for him, he must be a simpleton,
-
-indeed, not to discover it too."
-
-
-"Remember, Eliza, that he does not know Jane's disposition as
-
-you do."
-
-
-"But if a woman is partial to a man, and does not endeavour to
-
-conceal it, he must find it out."
-
-
-"Perhaps he must, if he sees enough of her. But, though
-
-Bingley and Jane meet tolerably often, it is never for many
-
-hours together; and, as they always see each other in large
-
-mixed parties, it is impossible that every moment should be
-
-employed in conversing together. Jane should therefore make
-
-the most of every half-hour in which she can command his
-
-attention. When she is secure of him, there will be more leisure
-
-for falling in love as much as she chooses."
-
-
-"Your plan is a good one," replied Elizabeth, "where nothing is
-
-in question but the desire of being well married, and if I were
-
-determined to get a rich husband, or any husband, I dare say I
-
-should adopt it. But these are not Jane's feelings; she is not
-
-acting by design. As yet, she cannot even be certain of the
-
-degree of her own regard nor of its reasonableness. She has
-
-known him only a fortnight. She danced four dances with him
-
-at Meryton; she saw him one morning at his own house, and
-
-has since dined with him in company four times. This is not
-
-quite enough to make her understand his character."
-
-
-"Not as you represent it. Had she merely DINED with him, she
-
-might only have discovered whether he had a good appetite; but
-
-you must remember that four evenings have also been spent
-
-together--and four evenings may do a great deal."
-
-
-"Yes; these four evenings have enabled them to ascertain that
-
-they both like Vingt-un better than Commerce; but with respect
-
-to any other leading characteristic, I do not imagine that much
-
-has been unfolded."
-
-
-"Well," said Charlotte, "I wish Jane success with all my heart;
-
-and if she were married to him to-morrow, I should think she
-
-had as good a chance of happiness as if she were to be studying
-
-his character for a twelvemonth. Happiness in marriage is
-
-entirely a matter of chance. If the dispositions of the parties
-
-are ever so well known to each other or ever so similar beforehand,
-
-it does not advance their felicity in the least. They always
-
-continue to grow sufficiently unlike afterwards to have their
-
-share of vexation; and it is better to know as little as possible
-
-of the defects of the person with whom you are to pass your life."
-
-
-"You make me laugh, Charlotte; but it is not sound. You know
-
-it is not sound, and that you would never act in this way
-
-yourself."
-
-
-Occupied in observing Mr. Bingley's attentions to her sister,
-
-Elizabeth was far from suspecting that she was herself becoming
-
-an object of some interest in the eyes of his friend. Mr. Darcy
-
-had at first scarcely allowed her to be pretty; he had looked at
-
-her without admiration at the ball; and when they next met, he
-
-looked at her only to criticise. But no sooner had he made it
-
-clear to himself and his friends that she hardly had a good feature
-
-in her face, than he began to find it was rendered uncommonly
-
-intelligent by the beautiful expression of her dark eyes. To this
-
-discovery succeeded some others equally mortifying. Though he
-
-had detected with a critical eye more than one failure of perfect
-
-symmetry in her form, he was forced to acknowledge her figure
-
-to be light and pleasing; and in spite of his asserting that her
-
-manners were not those of the fashionable world, he was caught
-
-by their easy playfulness. Of this she was perfectly unaware;
-
-to her he was only the man who made himself agreeable nowhere,
-
-and who had not thought her handsome enough to dance with.
-
-
-He began to wish to know more of her, and as a step towards
-
-conversing with her himself, attended to her conversation with
-
-others. His doing so drew her notice. It was at Sir William
-
-Lucas's, where a large party were assembled.
-
-
-"What does Mr. Darcy mean," said she to Charlotte, "by
-
-listening to my conversation with Colonel Forster?"
-
-
-"That is a question which Mr. Darcy only can answer."
-
-
-"But if he does it any more I shall certainly let him know that I
-
-see what he is about. He has a very satirical eye, and if I do not
-
-begin by being impertinent myself, I shall soon grow afraid of
-
-him."
-
-
-On his approaching them soon afterwards, though without
-
-seeming to have any intention of speaking, Miss Lucas defied
-
-her friend to mention such a subject to him; which immediately
-
-provoking Elizabeth to do it, she turned to him and said:
-
-
-"Did you not think, Mr. Darcy, that I expressed myself
-
-uncommonly well just now, when I was teasing Colonel Forster
-
-to give us a ball at Meryton?"
-
-
-"With great energy; but it is always a subject which makes a lady
-
-energetic."
-
-
-"You are severe on us."
-
-
-"It will be HER turn soon to be teased," said Miss Lucas. "I
-
-am going to open the instrument, Eliza, and you know what
-
-follows."
-
-
-"You are a very strange creature by way of a friend!--always
-
-wanting me to play and sing before anybody and everybody!
-
-If my vanity had taken a musical turn, you would have been
-
-invaluable; but as it is, I would really rather not sit down
-
-before those who must be in the habit of hearing the very best
-
-performers." On Miss Lucas's persevering, however, she added,
-
-"Very well, if it must be so, it must." And gravely glancing at
-
-Mr. Darcy, "There is a fine old saying, which everybody here is of
-
-course familiar with: 'Keep your breath to cool your porridge';
-
-and I shall keep mine to swell my song."
-
-
-Her performance was pleasing, though by no means capital.
-
-After a song or two, and before she could reply to the entreaties
-
-of several that she would sing again, she was eagerly succeeded
-
-at the instrument by her sister Mary, who having, in consequence
-
-of being the only plain one in the family, worked hard for
-
-knowledge and accomplishments, was always impatient for
-
-display.
-
-
-Mary had neither genius nor taste; and though vanity had given
-
-her application, it had given her likewise a pedantic air and
-
-conceited manner, which would have injured a higher degree of
-
-excellence than she had reached. Elizabeth, easy and unaffected,
-
-had been listened to with much more pleasure, though not
-
-playing half so well; and Mary, at the end of a long concerto,
-
-was glad to purchase praise and gratitude by Scotch and Irish
-
-airs, at the request of her younger sisters, who, with some of the
-
-Lucases, and two or three officers, joined eagerly in dancing at
-
-one end of the room.
-
-
-Mr. Darcy stood near them in silent indignation at such a mode
-
-of passing the evening, to the exclusion of all conversation, and
-
-was too much engrossed by his thoughts to perceive that Sir
-
-William Lucas was his neighbour, till Sir William thus began:
-
-
-"What a charming amusement for young people this is, Mr. Darcy!
-
-There is nothing like dancing after all. I consider it as one
-
-of the first refinements of polished society."
-
-
-"Certainly, sir; and it has the advantage also of being in vogue
-
-amongst the less polished societies of the world. Every savage
-
-can dance."
-
-
-Sir William only smiled. "Your friend performs delightfully," he
-
-continued after a pause, on seeing Bingley join the group; "and I
-
-doubt not that you are an adept in the science yourself, Mr.
-
-Darcy."
-
-
-"You saw me dance at Meryton, I believe, sir."
-
-
-"Yes, indeed, and received no inconsiderable pleasure from the
-
-sight. Do you often dance at St. James's?"
-
-
-"Never, sir."
-
-
-"Do you not think it would be a proper compliment to the
-
-place?"
-
-
-"It is a compliment which I never pay to any place if I can
-
-avoid it."
-
-
-"You have a house in town, I conclude?"
-
-
-Mr. Darcy bowed.
-
-
-"I had once had some thought of fixing in town myself--for I am
-
-fond of superior society; but I did not feel quite certain that the
-
-air of London would agree with Lady Lucas."
-
-
-He paused in hopes of an answer; but his companion was not
-
-disposed to make any; and Elizabeth at that instant moving
-
-towards them, he was struck with the action of doing a very
-
-gallant thing, and called out to her:
-
-
-"My dear Miss Eliza, why are you not dancing? Mr. Darcy, you
-
-must allow me to present this young lady to you as a very
-
-desirable partner. You cannot refuse to dance, I am sure when
-
-so much beauty is before you." And, taking her hand, he would
-
-have given it to Mr. Darcy who, though extremely surprised,
-
-was not unwilling to receive it, when she instantly drew back,
-
-and said with some discomposure to Sir William:
-
-
-"Indeed, sir, I have not the least intention of dancing. I entreat
-
-you not to suppose that I moved this way in order to beg for a
-
-partner."
-
-
-Mr. Darcy, with grave propriety, requested to be allowed the
-
-honour of her hand, but in vain. Elizabeth was determined; nor
-
-did Sir William at all shake her purpose by his attempt at
-
-persuasion.
-
-
-"You excel so much in the dance, Miss Eliza, that it is cruel to
-
-deny me the happiness of seeing you; and though this gentleman
-
-dislikes the amusement in general, he can have no objection, I
-
-am sure, to oblige us for one half-hour."
-
-
-"Mr. Darcy is all politeness," said Elizabeth, smiling.
-
-
-"He is, indeed; but, considering the inducement, my dear Miss
-
-Eliza, we cannot wonder at his complaisance--for who would
-
-object to such a partner?"
-
-
-Elizabeth looked archly, and turned away. Her resistance had
-
-not injured her with the gentleman, and he was thinking of her
-
-with some complacency, when thus accosted by Miss Bingley:
-
-
-"I can guess the subject of your reverie."
-
-
-"I should imagine not."
-
-
-"You are considering how insupportable it would be to pass many
-
-evenings in this manner--in such society; and indeed I am quite
-
-of your opinion. I was never more annoyed! The insipidity, and
-
-yet the noise--the nothingness, and yet the self-importance of all
-
-those people! What would I give to hear your strictures on them!"
-
-
-"You conjecture is totally wrong, I assure you. My mind was
-
-more agreeably engaged. I have been meditating on the very
-
-great pleasure which a pair of fine eyes in the face of a pretty
-
-woman can bestow."
-
-
-Miss Bingley immediately fixed her eyes on his face, and desired
-
-he would tell her what lady had the credit of inspiring such
-
-reflections. Mr. Darcy replied with great intrepidity:
-
-
-"Miss Elizabeth Bennet."
-
-
-"Miss Elizabeth Bennet!" repeated Miss Bingley. "I am all
-
-astonishment. How long has she been such a favourite?--and
-
-pray, when am I to wish you joy?"
-
-
-"That is exactly the question which I expected you to ask. A
-
-lady's imagination is very rapid; it jumps from admiration to
-
-love, from love to matrimony, in a moment. I knew you would
-
-be wishing me joy."
-
-
-"Nay, if you are serious about it, I shall consider the matter is
-
-absolutely settled. You will be having a charming mother-in-law,
-
-indeed; and, of course, she will always be at Pemberley with you."
-
-
-He listened to her with perfect indifference while she chose to
-
-entertain herself in this manner; and as his composure convinced
-
-her that all was safe, her wit flowed long.
-
-
-
-
-Chapter 7
-
-
-
-Mr. Bennet's property consisted almost entirely in an estate of
-
-two thousand a year, which, unfortunately for his daughters, was
-
-entailed, in default of heirs male, on a distant relation; and their
-
-mother's fortune, though ample for her situation in life, could
-
-but ill supply the deficiency of his. Her father had been an
-
-attorney in Meryton, and had left her four thousand pounds.
-
-
-She had a sister married to a Mr. Phillips, who had been a clerk
-
-to their father and succeeded him in the business, and a brother
-
-settled in London in a respectable line of trade.
-
-
-The village of Longbourn was only one mile from Meryton; a
-
-most convenient distance for the young ladies, who were usually
-
-tempted thither three or four times a week, to pay their duty to
-
-their aunt and to a milliner's shop just over the way. The two
-
-youngest of the family, Catherine and Lydia, were particularly
-
-frequent in these attentions; their minds were more vacant than
-
-their sisters', and when nothing better offered, a walk to
-
-Meryton was necessary to amuse their morning hours and
-
-furnish conversation for the evening; and however bare of news
-
-the country in general might be, they always contrived to learn
-
-some from their aunt. At present, indeed, they were well
-
-supplied both with news and happiness by the recent arrival of
-
-a militia regiment in the neighbourhood; it was to remain the
-
-whole winter, and Meryton was the headquarters.
-
-
-Their visits to Mrs. Phillips were now productive of the most
-
-interesting intelligence. Every day added something to their
-
-knowledge of the officers' names and connections. Their
-
-lodgings were not long a secret, and at length they began to
-
-know the officers themselves. Mr. Phillips visited them all, and
-
-this opened to his nieces a store of felicity unknown before.
-
-They could talk of nothing but officers; and Mr. Bingley's large
-
-fortune, the mention of which gave animation to their mother,
-
-was worthless in their eyes when opposed to the regimentals of
-
-an ensign.
-
-
-After listening one morning to their effusions on this subject, Mr.
-
-Bennet coolly observed:
-
-
-"From all that I can collect by your manner of talking, you must
-
-be two of the silliest girls in the country. I have suspected it
-
-some time, but I am now convinced."
-
-
-Catherine was disconcerted, and made no answer; but Lydia,
-
-with perfect indifference, continued to express her admiration of
-
-Captain Carter, and her hope of seeing him in the course of the
-
-day, as he was going the next morning to London.
-
-
-"I am astonished, my dear," said Mrs. Bennet, "that you should
-
-be so ready to think your own children silly. If I wished to think
-
-slightingly of anybody's children, it should not be of my own,
-
-however."
-
-
-"If my children are silly, I must hope to be always sensible of it."
-
-
-"Yes--but as it happens, they are all of them very clever."
-
-
-"This is the only point, I flatter myself, on which we do not
-
-agree. I had hoped that our sentiments coincided in every
-
-particular, but I must so far differ from you as to think our two
-
-youngest daughters uncommonly foolish."
-
-
-"My dear Mr. Bennet, you must not expect such girls to have
-
-the sense of their father and mother. When they get to our age, I
-
-dare say they will not think about officers any more than we do.
-
-I remember the time when I liked a red coat myself very well--and,
-
-indeed, so I do still at my heart; and if a smart young colonel,
-
-with five or six thousand a year, should want one of my girls I
-
-shall not say nay to him; and I thought Colonel Forster looked
-
-very becoming the other night at Sir William's in his regimentals."
-
-
-"Mamma," cried Lydia, "my aunt says that Colonel Forster and
-
-Captain Carter do not go so often to Miss Watson's as they did
-
-when they first came; she sees them now very often standing in
-
-Clarke's library."
-
-
-Mrs. Bennet was prevented replying by the entrance of the
-
-footman with a note for Miss Bennet; it came from Netherfield,
-
-and the servant waited for an answer. Mrs. Bennet's eyes
-
-sparkled with pleasure, and she was eagerly calling out, while
-
-her daughter read,
-
-
-"Well, Jane, who is it from? What is it about? What does he
-
-say? Well, Jane, make haste and tell us; make haste, my love."
-
-
-"It is from Miss Bingley," said Jane, and then read it aloud.
-
-
-"MY DEAR FRIEND,--
-
-
-"If you are not so compassionate as to dine to-day with Louisa
-
-and me, we shall be in danger of hating each other for the rest
-
-of our lives, for a whole day's tete-a-tete between two women
-
-can never end without a quarrel. Come as soon as you can on
-
-receipt of this. My brother and the gentlemen are to dine with
-
-the officers.--Yours ever,
-
-
-"CAROLINE BINGLEY"
-
-
-"With the officers!" cried Lydia. "I wonder my aunt did not tell
-
-us of THAT."
-
-
-"Dining out," said Mrs. Bennet, "that is very unlucky."
-
-
-"Can I have the carriage?" said Jane.
-
-
-"No, my dear, you had better go on horseback, because it seems
-
-likely to rain; and then you must stay all night."
-
-
-"That would be a good scheme," said Elizabeth, "if you were
-
-sure that they would not offer to send her home."
-
-
-"Oh! but the gentlemen will have Mr. Bingley's chaise to go to
-
-Meryton, and the Hursts have no horses to theirs."
-
-
-"I had much rather go in the coach."
-
-
-"But, my dear, your father cannot spare the horses, I am sure.
-
-They are wanted in the farm, Mr. Bennet, are they not?"
-
-
-"They are wanted in the farm much oftener than I can get them."
-
-
-"But if you have got them to-day," said Elizabeth, "my mother's
-
-purpose will be answered."
-
-
-She did at last extort from her father an acknowledgment that
-
-the horses were engaged. Jane was therefore obliged to go on
-
-horseback, and her mother attended her to the door with many
-
-cheerful prognostics of a bad day. Her hopes were answered;
-
-Jane had not been gone long before it rained hard. Her sisters
-
-were uneasy for her, but her mother was delighted. The rain
-
-continued the whole evening without intermission; Jane certainly
-
-could not come back.
-
-
-"This was a lucky idea of mine, indeed!" said Mrs. Bennet more
-
-than once, as if the credit of making it rain were all her own. Till
-
-the next morning, however, she was not aware of all the felicity
-
-of her contrivance. Breakfast was scarcely over when a servant
-
-from Netherfield brought the following note for Elizabeth:
-
-
-"MY DEAREST LIZZY,--
-
-
-"I find myself very unwell this morning, which, I suppose, is to
-
-be imputed to my getting wet through yesterday. My kind friends
-
-will not hear of my returning till I am better. They insist also
-
-on my seeing Mr. Jones--therefore do not be alarmed if you should
-
-hear of his having been to me--and, excepting a sore throat and
-
-headache, there is not much the matter with me.--Yours, etc."
-
-
-"Well, my dear," said Mr. Bennet, when Elizabeth had read the
-
-note aloud, "if your daughter should have a dangerous fit of
-
-illness--if she should die, it would be a comfort to know that it
-
-was all in pursuit of Mr. Bingley, and under your orders."
-
-
-"Oh! I am not afraid of her dying. People do not die of little
-
-trifling colds. She will be taken good care of. As long as she
-
-stays there, it is all very well. I would go an see her if I could
-
-have the carriage."
-
-
-Elizabeth, feeling really anxious, was determined to go to her,
-
-though the carriage was not to be had; and as she was no
-
-horsewoman, walking was her only alternative. She declared her
-
-resolution.
-
-
-"How can you be so silly," cried her mother, "as to think of such
-
-a thing, in all this dirt! You will not be fit to be seen when you
-
-get there."
-
-
-"I shall be very fit to see Jane--which is all I want."
-
-
-"Is this a hint to me, Lizzy," said her father, "to send for
-
-the horses?"
-
-
-"No, indeed, I do not wish to avoid the walk. The distance is
-
-nothing when one has a motive; only three miles. I shall be back
-
-by dinner."
-
-
-"I admire the activity of your benevolence," observed Mary, "but
-
-every impulse of feeling should be guided by reason; and, in my
-
-opinion, exertion should always be in proportion to what is
-
-required."
-
-
-"We will go as far as Meryton with you," said Catherine and
-
-Lydia. Elizabeth accepted their company, and the three young
-
-ladies set off together.
-
-
-"If we make haste," said Lydia, as they walked along, "perhaps
-
-we may see something of Captain Carter before he goes."
-
-
-In Meryton they parted; the two youngest repaired to the lodgings of
-
-one of the officers' wives, and Elizabeth continued her walk alone,
-
-crossing field after field at a quick pace, jumping over stiles
-
-and springing over puddles with impatient activity, and finding
-
-herself at last within view of the house, with weary ankles, dirty
-
-stockings, and a face glowing with the warmth of exercise.
-
-
-She was shown into the breakfast-parlour, where all but Jane
-
-were assembled, and where her appearance created a great deal
-
-of surprise. That she should have walked three miles so early
-
-in the day, in such dirty weather, and by herself, was almost
-
-incredible to Mrs. Hurst and Miss Bingley; and Elizabeth was
-
-convinced that they held her in contempt for it. She was
-
-received, however, very politely by them; and in their brother's
-
-manners there was something better than politeness; there was
-
-good humour and kindness. Mr. Darcy said very little, and Mr.
-
-Hurst nothing at all. The former was divided between admiration
-
-of the brilliancy which exercise had given to her complexion,
-
-and doubt as to the occasion's justifying her coming so far
-
-alone. The latter was thinking only of his breakfast.
-
-
-Her inquiries after her sister were not very favourably answered.
-
-Miss Bennet had slept ill, and though up, was very feverish, and
-
-not well enough to leave her room. Elizabeth was glad to be
-
-taken to her immediately; and Jane, who had only been withheld
-
-by the fear of giving alarm or inconvenience from expressing in
-
-her note how much she longed for such a visit, was delighted at
-
-her entrance. She was not equal, however, to much conversation,
-
-and when Miss Bingley left them together, could attempt little
-
-besides expressions of gratitude for the extraordinary kindness
-
-she was treated with. Elizabeth silently attended her.
-
-
-When breakfast was over they were joined by the sisters; and
-
-Elizabeth began to like them herself, when she saw how much
-
-affection and solicitude they showed for Jane. The apothecary
-
-came, and having examined his patient, said, as might be
-
-supposed, that she had caught a violent cold, and that they must
-
-endeavour to get the better of it; advised her to return to bed,
-
-and promised her some draughts. The advice was followed
-
-readily, for the feverish symptoms increased, and her head ached
-
-acutely. Elizabeth did not quit her room for a moment; nor were
-
-the other ladies often absent; the gentlemen being out, they had,
-
-in fact, nothing to do elsewhere.
-
-
-When the clock struck three, Elizabeth felt that she must go, and
-
-very unwillingly said so. Miss Bingley offered her the carriage,
-
-and she only wanted a little pressing to accept it, when Jane
-
-testified such concern in parting with her, that Miss Bingley was
-
-obliged to convert the offer of the chaise to an invitation to
-
-remain at Netherfield for the present. Elizabeth most thankfully
-
-consented, and a servant was dispatched to Longbourn to
-
-acquaint the family with her stay and bring back a supply of
-
-clothes.
-
-
-
-
-Chapter 8
-
-
-
-At five o'clock the two ladies retired to dress, and at half-past
-
-six Elizabeth was summoned to dinner. To the civil inquiries
-
-which then poured in, and amongst which she had the pleasure
-
-of distinguishing the much superior solicitude of Mr. Bingley's,
-
-she could not make a very favourable answer. Jane was by no
-
-means better. The sisters, on hearing this, repeated three or four
-
-times how much they were grieved, how shocking it was to have
-
-a bad cold, and how excessively they disliked being ill
-
-themselves; and then thought no more of the matter: and their
-
-indifference towards Jane when not immediately before them
-
-restored Elizabeth to the enjoyment of all her former dislike.
-
-
-Their brother, indeed, was the only one of the party whom she
-
-could regard with any complacency. His anxiety for Jane was
-
-evident, and his attentions to herself most pleasing, and
-
-they prevented her feeling herself so much an intruder as she
-
-believed she was considered by the others. She had very little
-
-notice from any but him. Miss Bingley was engrossed by Mr.
-
-Darcy, her sister scarcely less so; and as for Mr. Hurst, by
-
-whom Elizabeth sat, he was an indolent man, who lived only to
-
-eat, drink, and play at cards; who, when he found her to prefer
-
-a plain dish to a ragout, had nothing to say to her.
-
-
-When dinner was over, she returned directly to Jane, and Miss
-
-Bingley began abusing her as soon as she was out of the room.
-
-Her manners were pronounced to be very bad indeed, a mixture
-
-of pride and impertinence; she had no conversation, no style, no
-
-beauty. Mrs. Hurst thought the same, and added:
-
-
-"She has nothing, in short, to recommend her, but being an
-
-excellent walker. I shall never forget her appearance this
-
-morning. She really looked almost wild."
-
-
-"She did, indeed, Louisa. I could hardly keep my countenance.
-
-Very nonsensical to come at all! Why must SHE be scampering
-
-about the country, because her sister had a cold? Her hair, so
-
-untidy, so blowsy!"
-
-
-"Yes, and her petticoat; I hope you saw her petticoat, six inches
-
-deep in mud, I am absolutely certain; and the gown which had
-
-been let down to hide it not doing its office."
-
-
-"Your picture may be very exact, Louisa," said Bingley; "but
-
-this was all lost upon me. I thought Miss Elizabeth Bennet
-
-looked remarkably well when she came into the room this
-
-morning. Her dirty petticoat quite escaped my notice."
-
-
-"YOU observed it, Mr. Darcy, I am sure," said Miss Bingley;
-
-"and I am inclined to think that you would not wish to see
-
-YOUR sister make such an exhibition."
-
-
-"Certainly not."
-
-
-"To walk three miles, or four miles, or five miles, or whatever it
-
-is, above her ankles in dirt, and alone, quite alone! What could
-
-she mean by it? It seems to me to show an abominable sort of
-
-conceited independence, a most country-town indifference to
-
-decorum."
-
-
-"It shows an affection for her sister that is very pleasing," said
-
-Bingley.
-
-
-"I am afraid, Mr. Darcy," observed Miss Bingley in a half
-
-whisper, "that this adventure has rather affected your
-
-admiration of her fine eyes."
-
-
-"Not at all," he replied; "they were brightened by the exercise."
-
-A short pause followed this speech, and Mrs. Hurst began again:
-
-
-"I have a excessive regard for Miss Jane Bennet, she is really
-
-a very sweet girl, and I wish with all my heart she were well
-
-settled. But with such a father and mother, and such low
-
-connections, I am afraid there is no chance of it."
-
-
-"I think I have heard you say that their uncle is an attorney on
-
-Meryton."
-
-
-"Yes; and they have another, who lives somewhere near Cheapside."
-
-
-"That is capital," added her sister, and they both laughed heartily.
-
-
-"If they had uncles enough to fill ALL Cheapside," cried
-
-Bingley, "it would not make them one jot less agreeable."
-
-
-"But it must very materially lessen their chance of marrying men
-
-of any consideration in the world," replied Darcy.
-
-
-To this speech Bingley made no answer; but his sisters gave it
-
-their hearty assent, and indulged their mirth for some time at the
-
-expense of their dear friend's vulgar relations.
-
-
-With a renewal of tenderness, however, they returned to her
-
-room on leaving the dining-parlour, and sat with her till
-
-summoned to coffee. She was still very poorly, and Elizabeth
-
-would not quit her at all, till late in the evening, when she had
-
-the comfort of seeing her sleep, and when it seemed to her rather
-
-right than pleasant that she should go downstairs herself. On
-
-entering the drawing-room she found the whole party at loo, and
-
-was immediately invited to join them; but suspecting them to be
-
-playing high she declined it, and making her sister the excuse,
-
-said she would amuse herself for the short time she could stay
-
-below, with a book. Mr. Hurst looked at her with astonishment.
-
-
-"Do you prefer reading to cards?" said he; "that is rather
-
-singular."
-
-
-"Miss Eliza Bennet," said Miss Bingley, "despises cards. She is
-
-a great reader, and has no pleasure in anything else."
-
-
-"I deserve neither such praise nor such censure," cried Elizabeth;
-
-"I am NOT a great reader, and I have pleasure in many things."
-
-
-"In nursing your sister I am sure you have pleasure," said Bingley;
-
-"and I hope it will be soon increased by seeing her quite well."
-
-
-Elizabeth thanked him from her heart, and then walked towards
-
-the table where a few books were lying. He immediately offered
-
-to fetch her others--all that his library afforded.
-
-
-"And I wish my collection were larger for your benefit and my
-
-own credit; but I am an idle fellow, and though I have not many,
-
-I have more than I ever looked into."
-
-
-Elizabeth assured him that she could suit herself perfectly with
-
-those in the room.
-
-
-"I am astonished," said Miss Bingley, "that my father should
-
-have left so small a collection of books. What a delightful library
-
-you have at Pemberley, Mr. Darcy!"
-
-
-"It ought to be good," he replied, "it has been the work of many
-
-generations."
-
-
-"And then you have added so much to it yourself, you are
-
-always buying books."
-
-
-"I cannot comprehend the neglect of a family library in such days
-
-as these."
-
-
-"Neglect! I am sure you neglect nothing that can add to the
-
-beauties of that noble place. Charles, when you build YOUR
-
-house, I wish it may be half as delightful as Pemberley."
-
-
-"I wish it may."
-
-
-"But I would really advise you to make your purchase in that
-
-neighbourhood, and take Pemberley for a kind of model. There
-
-is not a finer county in England than Derbyshire."
-
-
-"With all my heart; I will buy Pemberley itself if Darcy will
-
-sell it."
-
-
-"I am talking of possibilities, Charles."
-
-
-"Upon my word, Caroline, I should think it more possible to get
-
-Pemberley by purchase than by imitation."
-
-
-Elizabeth was so much caught with what passed, as to leave her
-
-very little attention for her book; and soon laying it wholly
-
-aside, she drew near the card-table, and stationed herself
-
-between Mr. Bingley and his eldest sister, to observe the game.
-
-
-"Is Miss Darcy much grown since the spring?" said Miss
-
-Bingley; "will she be as tall as I am?"
-
-
-"I think she will. She is now about Miss Elizabeth Bennet's
-
-height, or rather taller."
-
-
-"How I long to see her again! I never met with anybody who
-
-delighted me so much. Such a countenance, such manners! And
-
-so extremely accomplished for her age! Her performance on the
-
-pianoforte is exquisite."
-
-
-"It is amazing to me," said Bingley, "how young ladies can have
-
-patience to be so very accomplished as they all are."
-
-
-"All young ladies accomplished! My dear Charles, what do you mean?"
-
-
-"Yes, all of them, I think. They all paint tables, cover screens,
-
-and net purses. I scarcely know anyone who cannot do all this,
-
-and I am sure I never heard a young lady spoken of for the first
-
-time, without being informed that she was very accomplished."
-
-
-"Your list of the common extent of accomplishments," said Darcy,
-
-"has too much truth. The word is applied to many a woman who
-
-deserves it no otherwise than by netting a purse or covering
-
-a screen. But I am very far from agreeing with you in your
-
-estimation of ladies in general. I cannot boast of knowing
-
-more than half-a-dozen, in the whole range of my acquaintance,
-
-that are really accomplished."
-
-
-"Nor I, I am sure," said Miss Bingley.
-
-
-"Then," observed Elizabeth, "you must comprehend a great deal
-
-in your idea of an accomplished woman."
-
-
-"Yes, I do comprehend a great deal in it."
-
-
-"Oh! certainly," cried his faithful assistant, "no one can be really
-
-esteemed accomplished who does not greatly surpass what is
-
-usually met with. A woman must have a thorough knowledge of
-
-music, singing, drawing, dancing, and the modern languages, to
-
-deserve the word; and besides all this, she must possess a certain
-
-something in her air and manner of walking, the tone of her
-
-voice, her address and expressions, or the word will be but
-
-half-deserved."
-
-
-"All this she must possess," added Darcy, "and to all this she
-
-must yet add something more substantial, in the improvement of
-
-her mind by extensive reading."
-
-
-"I am no longer surprised at your knowing ONLY six accomplished
-
-women. I rather wonder now at your knowing ANY."
-
-
-"Are you so severe upon your own sex as to doubt the possibility
-
-of all this?"
-
-
-"I never saw such a woman. I never saw such capacity, and
-
-taste, and application, and elegance, as you describe united."
-
-
-Mrs. Hurst and Miss Bingley both cried out against the injustice
-
-of her implied doubt, and were both protesting that they knew
-
-many women who answered this description, when Mr. Hurst
-
-called them to order, with bitter complaints of their inattention
-
-to what was going forward. As all conversation was thereby at
-
-an end, Elizabeth soon afterwards left the room.
-
-
-"Elizabeth Bennet," said Miss Bingley, when the door was
-
-closed on her, "is one of those young ladies who seek to
-
-recommend themselves to the other sex by undervaluing their
-
-own; and with many men, I dare say, it succeeds. But, in my
-
-opinion, it is a paltry device, a very mean art."
-
-
-"Undoubtedly," replied Darcy, to whom this remark was chiefly
-
-addressed, "there is a meanness in ALL the arts which ladies
-
-sometimes condescend to employ for captivation. Whatever
-
-bears affinity to cunning is despicable."
-
-
-Miss Bingley was not so entirely satisfied with this reply as to
-
-continue the subject.
-
-
-Elizabeth joined them again only to say that her sister was worse,
-
-and that she could not leave her. Bingley urged Mr. Jones being
-
-sent for immediately; while his sisters, convinced that no country
-
-advice could be of any service, recommended an express to town for
-
-one of the most eminent physicians. This she would not hear of;
-
-but she was not so unwilling to comply with their brother's
-
-proposal; and it was settled that Mr. Jones should be sent for
-
-early in the morning, if Miss Bennet were not decidedly better.
-
-Bingley was quite uncomfortable; his sisters declared that they
-
-were miserable. They solaced their wretchedness, however, by
-
-duets after supper, while he could find no better relief to his
-
-feelings than by giving his housekeeper directions that every
-
-attention might be paid to the sick lady and her sister.
-
-
-
-
-Chapter 9
-
-
-
-Elizabeth passed the chief of the night in her sister's room, and
-
-in the morning had the pleasure of being able to send a tolerable
-
-answer to the inquiries which she very early received from Mr.
-
-Bingley by a housemaid, and some time afterwards from the two
-
-elegant ladies who waited on his sisters. In spite of this
-
-amendment, however, she requested to have a note sent to Longbourn,
-
-desiring her mother to visit Jane, and form her own judgement of
-
-her situation. The note was immediately dispatched, and its
-
-contents as quickly complied with. Mrs. Bennet, accompanied by
-
-her two youngest girls, reached Netherfield soon after the family
-
-breakfast.
-
-
-Had she found Jane in any apparent danger, Mrs. Bennet would
-
-have been very miserable; but being satisfied on seeing her that
-
-her illness was not alarming, she had no wish of her recovering
-
-immediately, as her restoration to health would probably remove
-
-her from Netherfield. She would not listen, therefore, to her
-
-daughter's proposal of being carried home; neither did the
-
-apothecary, who arrived about the same time, think it at all
-
-advisable. After sitting a little while with Jane, on Miss
-
-Bingley's appearance and invitation, the mother and three
-
-daughter all attended her into the breakfast parlour. Bingley met
-
-them with hopes that Mrs. Bennet had not found Miss Bennet
-
-worse than she expected.
-
-
-"Indeed I have, sir," was her answer. "She is a great deal too
-
-ill to be moved. Mr. Jones says we must not think of moving her.
-
-We must trespass a little longer on your kindness."
-
-
-"Removed!" cried Bingley. "It must not be thought of. My
-
-sister, I am sure, will not hear of her removal."
-
-
-"You may depend upon it, Madam," said Miss Bingley, with cold
-
-civility, "that Miss Bennet will receive every possible attention
-
-while she remains with us."
-
-
-Mrs. Bennet was profuse in her acknowledgments.
-
-
-"I am sure," she added, "if it was not for such good friends I do
-
-not know what would become of her, for she is very ill indeed,
-
-and suffers a vast deal, though with the greatest patience in the
-
-world, which is always the way with her, for she has, without
-
-exception, the sweetest temper I have ever met with. I often tell
-
-my other girls they are nothing to HER. You have a sweet room
-
-here, Mr. Bingley, and a charming prospect over the gravel walk.
-
-I do not know a place in the country that is equal to Netherfield.
-
-You will not think of quitting it in a hurry, I hope, though you
-
-have but a short lease."
-
-
-"Whatever I do is done in a hurry," replied he; "and therefore if I
-
-should resolve to quit Netherfield, I should probably be off in
-
-five minutes. At present, however, I consider myself as quite
-
-fixed here."
-
-
-"That is exactly what I should have supposed of you," said
-
-Elizabeth.
-
-
-"You begin to comprehend me, do you?" cried he, turning
-
-towards her.
-
-
-"Oh! yes--I understand you perfectly."
-
-
-"I wish I might take this for a compliment; but to be so easily
-
-seen through I am afraid is pitiful."
-
-
-"That is as it happens. It does not follow that a deep, intricate
-
-character is more or less estimable than such a one as yours."
-
-
-"Lizzy," cried her mother, "remember where you are, and do not
-
-run on in the wild manner that you are suffered to do at home."
-
-
-"I did not know before," continued Bingley immediately, "that
-
-your were a studier of character. It must be an amusing study."
-
-
-"Yes, but intricate characters are the MOST amusing. They
-
-have at least that advantage."
-
-
-"The country," said Darcy, "can in general supply but a few
-
-subjects for such a study. In a country neighbourhood you move
-
-in a very confined and unvarying society."
-
-
-"But people themselves alter so much, that there is something
-
-new to be observed in them for ever."
-
-
-"Yes, indeed," cried Mrs. Bennet, offended by his manner of
-
-mentioning a country neighbourhood. "I assure you there is
-
-quite as much of THAT going on in the country as in town."
-
-
-Everybody was surprised, and Darcy, after looking at her for a
-
-moment, turned silently away. Mrs. Bennet, who fancied she
-
-had gained a complete victory over him, continued her triumph.
-
-
-"I cannot see that London has any great advantage over the
-
-country, for my part, except the shops and public places. The
-
-country is a vast deal pleasanter, is it not, Mr. Bingley?"
-
-
-"When I am in the country," he replied, "I never wish to leave it;
-
-and when I am in town it is pretty much the same. They have
-
-each their advantages, and I can be equally happy in either."
-
-
-"Aye--that is because you have the right disposition. But that
-
-gentleman," looking at Darcy, "seemed to think the country was
-
-nothing at all."
-
-
-"Indeed, Mamma, you are mistaken," said Elizabeth, blushing for
-
-her mother. "You quite mistook Mr. Darcy. He only meant that
-
-there was not such a variety of people to be met with in the
-
-country as in the town, which you must acknowledge to be
-
-true."
-
-
-"Certainly, my dear, nobody said there were; but as to not
-
-meeting with many people in this neighbourhood, I believe
-
-there are few neighbourhoods larger. I know we dine with
-
-four-and-twenty families."
-
-
-Nothing but concern for Elizabeth could enable Bingley to keep
-
-his countenance. His sister was less delicate, and directed her
-
-eyes towards Mr. Darcy with a very expressive smile. Elizabeth,
-
-for the sake of saying something that might turn her mother's
-
-thoughts, now asked her if Charlotte Lucas had been at
-
-Longbourn since HER coming away.
-
-
-"Yes, she called yesterday with her father. What an agreeable
-
-man Sir William is, Mr. Bingley, is not he? So much the man of
-
-fashion! So genteel and easy! He had always something to say
-
-to everybody. THAT is my idea of good breeding; and those
-
-persons who fancy themselves very important, and never open
-
-their mouths, quite mistake the matter."
-
-
-"Did Charlotte dine with you?"
-
-
-"No, she would go home. I fancy she was wanted about the
-
-mince-pies. For my part, Mr. Bingley, I always keep servants
-
-that can do their own work; MY daughters are brought up very
-
-differently. But everybody is to judge for themselves, and the
-
-Lucases are a very good sort of girls, I assure you. It is a pity
-
-they are not handsome! Not that I think Charlotte so VERY
-
-plain--but then she is our particular friend."
-
-
-"She seems a very pleasant young woman."
-
-
-"Oh! dear, yes; but you must own she is very plain. Lady Lucas
-
-herself has often said so, and envied me Jane's beauty. I do not
-
-like to boast of my own child, but to be sure, Jane--one does
-
-not often see anybody better looking. It is what everybody says.
-
-I do not trust my own partiality. When she was only fifteen,
-
-there was a man at my brother Gardiner's in town so much in
-
-love with her that my sister-in-law was sure he would make her
-
-an offer before we came away. But, however, he did not.
-
-Perhaps he thought her too young. However, he wrote some
-
-verses on her, and very pretty they were."
-
-
-"And so ended his affection," said Elizabeth impatiently. "There
-
-has been many a one, I fancy, overcome in the same way. I
-
-wonder who first discovered the efficacy of poetry in driving
-
-away love!"
-
-
-"I have been used to consider poetry as the FOOD of love," said
-
-Darcy.
-
-
-"Of a fine, stout, healthy love it may. Everything nourishes
-
-what is strong already. But if it be only a slight, thin sort of
-
-inclination, I am convinced that one good sonnet will starve it
-
-entirely away."
-
-
-Darcy only smiled; and the general pause which ensued made
-
-Elizabeth tremble lest her mother should be exposing herself
-
-again. She longed to speak, but could think of nothing to say;
-
-and after a short silence Mrs. Bennet began repeating her thanks
-
-to Mr. Bingley for his kindness to Jane, with an apology for
-
-troubling him also with Lizzy. Mr. Bingley was unaffectedly
-
-civil in his answer, and forced his younger sister to be civil
-
-also, and say what the occasion required. She performed her
-
-part indeed without much graciousness, but Mrs. Bennet was
-
-satisfied, and soon afterwards ordered her carriage. Upon this
-
-signal, the youngest of her daughters put herself forward. The
-
-two girls had been whispering to each other during the whole
-
-visit, and the result of it was, that the youngest should tax
-
-Mr. Bingley with having promised on his first coming into the
-
-country to give a ball at Netherfield.
-
-
-Lydia was a stout, well-grown girl of fifteen, with a fine
-
-complexion and good-humoured countenance; a favourite with her
-
-mother, whose affection had brought her into public at an early
-
-age. She had high animal spirits, and a sort of natural
-
-self-consequence, which the attention of the officers, to whom
-
-her uncle's good dinners, and her own easy manners recommended
-
-her, had increased into assurance. She was very equal,
-
-therefore, to address Mr. Bingley on the subject of the ball, and
-
-abruptly reminded him of his promise; adding, that it would be
-
-the most shameful thing in the world if he did not keep it. His
-
-answer to this sudden attack was delightful to their mother's ear:
-
-
-"I am perfectly ready, I assure you, to keep my engagement; and
-
-when your sister is recovered, you shall, if you please, name the
-
-very day of the ball. But you would not wish to be dancing
-
-when she is ill."
-
-
-Lydia declared herself satisfied. "Oh! yes--it would be much
-
-better to wait till Jane was well, and by that time most likely
-
-Captain Carter would be at Meryton again. And when you have
-
-given YOUR ball," she added, "I shall insist on their giving one
-
-also. I shall tell Colonel Forster it will be quite a shame if he
-
-does not."
-
-
-Mrs. Bennet and her daughters then departed, and Elizabeth
-
-returned instantly to Jane, leaving her own and her relations'
-
-behaviour to the remarks of the two ladies and Mr. Darcy; the
-
-latter of whom, however, could not be prevailed on to join in
-
-their censure of HER, in spite of all Miss Bingley's witticisms on
-
-FINE EYES.
-
-
-
-
-Chapter 10
-
-
-
-The day passed much as the day before had done. Mrs. Hurst
-
-and Miss Bingley had spent some hours of the morning with the
-
-invalid, who continued, though slowly, to mend; and in the
-
-evening Elizabeth joined their party in the drawing-room. The
-
-loo-table, however, did not appear. Mr. Darcy was writing, and
-
-Miss Bingley, seated near him, was watching the progress of his
-
-letter and repeatedly calling off his attention by messages to
-
-his sister. Mr. Hurst and Mr. Bingley were at piquet, and Mrs.
-
-Hurst was observing their game.
-
-
-Elizabeth took up some needlework, and was sufficiently
-
-amused in attending to what passed between Darcy and his
-
-companion. The perpetual commendations of the lady, either on
-
-his handwriting, or on the evenness of his lines, or on the length
-
-of his letter, with the perfect unconcern with which her praises
-
-were received, formed a curious dialogue, and was exactly in
-
-union with her opinion of each.
-
-
-"How delighted Miss Darcy will be to receive such a letter!"
-
-
-He made no answer.
-
-
-"You write uncommonly fast."
-
-
-"You are mistaken. I write rather slowly."
-
-
-"How many letters you must have occasion to write in the
-
-course of a year! Letters of business, too! How odious I should
-
-think them!"
-
-
-"It is fortunate, then, that they fall to my lot instead of yours."
-
-
-"Pray tell your sister that I long to see her."
-
-
-"I have already told her so once, by your desire."
-
-
-"I am afraid you do not like your pen. Let me mend it for you.
-
-I mend pens remarkably well."
-
-
-"Thank you--but I always mend my own."
-
-
-"How can you contrive to write so even?"
-
-
-He was silent.
-
-
-"Tell your sister I am delighted to hear of her improvement on
-
-the harp; and pray let her know that I am quite in raptures with
-
-her beautiful little design for a table, and I think it infinitely
-
-superior to Miss Grantley's."
-
-
-"Will you give me leave to defer your raptures till I write again?
-
-At present I have not room to do them justice."
-
-
-"Oh! it is of no consequence. I shall see her in January. But do
-
-you always write such charming long letters to her, Mr. Darcy?"
-
-
-"They are generally long; but whether always charming it is not
-
-for me to determine."
-
-
-"It is a rule with me, that a person who can write a long letter
-
-with ease, cannot write ill."
-
-
-"That will not do for a compliment to Darcy, Caroline," cried
-
-her brother, "because he does NOT write with ease. He studies
-
-too much for words of four syllables. Do not you, Darcy?"
-
-
-"My style of writing is very different from yours."
-
-
-"Oh!" cried Miss Bingley, "Charles writes in the most careless
-
-way imaginable. He leaves out half his words, and blots the
-
-rest."
-
-
-"My ideas flow so rapidly that I have not time to express
-
-them--by which means my letters sometimes convey no ideas
-
-at all to my correspondents."
-
-
-"Your humility, Mr. Bingley," said Elizabeth, "must disarm
-
-reproof."
-
-
-"Nothing is more deceitful," said Darcy, "than the appearance of
-
-humility. It is often only carelessness of opinion, and sometimes
-
-an indirect boast."
-
-
-"And which of the two do you call MY little recent piece of
-
-modesty?"
-
-
-"The indirect boast; for you are really proud of your defects in
-
-writing, because you consider them as proceeding from a
-
-rapidity of thought and carelessness of execution, which, if not
-
-estimable, you think at least highly interesting. The power of
-
-doing anything with quickness is always prized much by the
-
-possessor, and often without any attention to the imperfection of
-
-the performance. When you told Mrs. Bennet this morning that
-
-if you ever resolved upon quitting Netherfield you should be
-
-gone in five minutes, you meant it to be a sort of panegyric, of
-
-compliment to yourself--and yet what is there so very laudable
-
-in a precipitance which must leave very necessary business
-
-undone, and can be of no real advantage to yourself or anyone
-
-else?"
-
-
-"Nay," cried Bingley, "this is too much, to remember at night all
-
-the foolish things that were said in the morning. And yet, upon
-
-my honour, I believe what I said of myself to be true, and I
-
-believe it at this moment. At least, therefore, I did not assume
-
-the character of needless precipitance merely to show off before
-
-the ladies."
-
-
-"I dare say you believed it; but I am by no means convinced that
-
-you would be gone with such celerity. Your conduct would be
-
-quite as dependent on chance as that of any man I know; and if,
-
-as you were mounting your horse, a friend were to say, 'Bingley,
-
-you had better stay till next week,' you would probably do it,
-
-you would probably not go--and at another word, might stay a
-
-month."
-
-
-"You have only proved by this," cried Elizabeth, "that Mr.
-
-Bingley did not do justice to his own disposition. You have
-
-shown him off now much more than he did himself."
-
-
-"I am exceedingly gratified," said Bingley, "by your converting
-
-what my friend says into a compliment on the sweetness of my
-
-temper. But I am afraid you are giving it a turn which that
-
-gentleman did by no means intend; for he would certainly think
-
-better of me, if under such a circumstance I were to give a flat
-
-denial, and ride off as fast as I could."
-
-
-"Would Mr. Darcy then consider the rashness of your original
-
-intentions as atoned for by your obstinacy in adhering to it?"
-
-
-"Upon my word, I cannot exactly explain the matter; Darcy must
-
-speak for himself."
-
-
-"You expect me to account for opinions which you choose to
-
-call mine, but which I have never acknowledged. Allowing the
-
-case, however, to stand according to your representation, you
-
-must remember, Miss Bennet, that the friend who is supposed to
-
-desire his return to the house, and the delay of his plan, has
-
-merely desired it, asked it without offering one argument in
-
-favour of its propriety."
-
-
-"To yield readily--easily--to the PERSUASION of a friend is
-
-no merit with you."
-
-
-"To yield without conviction is no compliment to the understanding
-
-of either."
-
-
-"You appear to me, Mr. Darcy, to allow nothing for the
-
-influence of friendship and affection. A regard for the requester
-
-would often make one readily yield to a request, without waiting
-
-for arguments to reason one into it. I am not particularly
-
-speaking of such a case as you have supposed about Mr.
-
-Bingley. We may as well wait, perhaps, till the circumstance
-
-occurs before we discuss the discretion of his behaviour
-
-thereupon. But in general and ordinary cases between friend and
-
-friend, where one of them is desired by the other to change a
-
-resolution of no very great moment, should you think ill of that
-
-person for complying with the desire, without waiting to be
-
-argued into it?"
-
-
-"Will it not be advisable, before we proceed on this subject, to
-
-arrange with rather more precision the degree of importance
-
-which is to appertain to this request, as well as the degree of
-
-intimacy subsisting between the parties?"
-
-
-"By all means," cried Bingley; "let us hear all the particulars,
-
-not forgetting their comparative height and size; for that will
-
-have more weight in the argument, Miss Bennet, than you may be
-
-aware of. I assure you, that if Darcy were not such a great tall
-
-fellow, in comparison with myself, I should not pay him half so
-
-much deference. I declare I do not know a more awful object
-
-than Darcy, on particular occasions, and in particular places; at
-
-his own house especially, and of a Sunday evening, when he has
-
-nothing to do."
-
-
-Mr. Darcy smiled; but Elizabeth thought she could perceive that
-
-he was rather offended, and therefore checked her laugh. Miss
-
-Bingley warmly resented the indignity he had received, in an
-
-expostulation with her brother for talking such nonsense.
-
-
-"I see your design, Bingley," said his friend. "You dislike an
-
-argument, and want to silence this."
-
-
-"Perhaps I do. Arguments are too much like disputes. If you and
-
-Miss Bennet will defer yours till I am out of the room, I shall
-
-be very thankful; and then you may say whatever you like of me."
-
-
-"What you ask," said Elizabeth, "is no sacrifice on my side; and
-
-Mr. Darcy had much better finish his letter."
-
-
-Mr. Darcy took her advice, and did finish his letter.
-
-
-When that business was over, he applied to Miss Bingley and
-
-Elizabeth for an indulgence of some music. Miss Bingley moved
-
-with some alacrity to the pianoforte; and, after a polite request
-
-that Elizabeth would lead the way which the other as politely
-
-and more earnestly negatived, she seated herself.
-
-
-Mrs. Hurst sang with her sister, and while they were thus
-
-employed, Elizabeth could not help observing, as she turned
-
-over some music-books that lay on the instrument, how frequently
-
-Mr. Darcy's eyes were fixed on her. She hardly knew how to
-
-suppose that she could be an object of admiration to so great a
-
-man; and yet that he should look at her because he disliked her,
-
-was still more strange. She could only imagine, however, at last
-
-that she drew his notice because there was something more wrong
-
-and reprehensible, according to his ideas of right, than in any
-
-other person present. The supposition did not pain her. She
-
-liked him too little to care for his approbation.
-
-
-After playing some Italian songs, Miss Bingley varied the charm
-
-by a lively Scotch air; and soon afterwards Mr. Darcy, drawing
-
-near Elizabeth, said to her:
-
-
-"Do not you feel a great inclination, Miss Bennet, to seize such
-
-an opportunity of dancing a reel?"
-
-
-She smiled, but made no answer. He repeated the question, with
-
-some surprise at her silence.
-
-
-"Oh!" said she, "I heard you before, but I could not immediately
-
-determine what to say in reply. You wanted me, I know, to say
-
-'Yes,' that you might have the pleasure of despising my taste;
-
-but I always delight in overthrowing those kind of schemes,
-
-and cheating a person of their premeditated contempt. I have,
-
-therefore, made up my mind to tell you, that I do not want to
-
-dance a reel at all--and now despise me if you dare."
-
-
-"Indeed I do not dare."
-
-
-Elizabeth, having rather expected to affront him, was amazed at
-
-his gallantry; but there was a mixture of sweetness and archness
-
-in her manner which made it difficult for her to affront anybody;
-
-and Darcy had never been so bewitched by any woman as he
-
-was by her. He really believed, that were it not for the
-
-inferiority of her connections, he should be in some danger.
-
-
-Miss Bingley saw, or suspected enough to be jealous; and her
-
-great anxiety for the recovery of her dear friend Jane received
-
-some assistance from her desire of getting rid of Elizabeth.
-
-
-She often tried to provoke Darcy into disliking her guest, by
-
-talking of their supposed marriage, and planning his happiness in
-
-such an alliance.
-
-
-"I hope," said she, as they were walking together in the
-
-shrubbery the next day, "you will give your mother-in-law a few
-
-hints, when this desirable event takes place, as to the advantage
-
-of holding her tongue; and if you can compass it, do sure the
-
-younger girls of running after officers. And, if I may mention so
-
-delicate a subject, endeavour to check that little something,
-
-bordering on conceit and impertinence, which your lady
-
-possesses."
-
-
-"Have you anything else to propose for my domestic felicity?"
-
-
-"Oh! yes. Do let the portraits of your uncle and aunt Phillips be
-
-placed in the gallery at Pemberley. Put them next to your
-
-great-uncle the judge. They are in the same profession, you
-
-know, only in different lines. As for your Elizabeth's picture, you
-
-must not have it taken, for what painter could do justice to those
-
-beautiful eyes?"
-
-
-"It would not be easy, indeed, to catch their expression, but their
-
-colour and shape, and the eyelashes, so remarkably fine, might
-
-be copied."
-
-
-At that moment they were met from another walk by Mrs. Hurst
-
-and Elizabeth herself.
-
-
-"I did not know that you intended to walk," said Miss Bingley,
-
-in some confusion, lest they had been overheard.
-
-
-"You used us abominably ill," answered Mrs. Hurst, "running
-
-away without telling us that you were coming out."
-
-
-Then taking the disengaged arm of Mr. Darcy, she left Elizabeth
-
-to walk by herself. The path just admitted three. Mr. Darcy felt
-
-their rudeness, and immediately said:
-
-
-"This walk is not wide enough for our party. We had better go
-
-into the avenue."
-
-
-But Elizabeth, who had not the least inclination to remain with
-
-them, laughingly answered:
-
-
-"No, no; stay where you are. You are charmingly grouped, and
-
-appear to uncommon advantage. The picturesque would be
-
-spoilt by admitting a fourth. Good-bye."
-
-
-She then ran gaily off, rejoicing as she rambled about, in the
-
-hope of being at home again in a day or two. Jane was already
-
-so much recovered as to intend leaving her room for a couple of
-
-hours that evening.
-
-
-
-
->
-
-[Embedded]
-00102023
diff --git a/test/Lwp/austin.txt b/test/Lwp/austin.txt
deleted file mode 100644
index 580827306..000000000
--- a/test/Lwp/austin.txt
+++ /dev/null
@@ -1,1979 +0,0 @@
-Pride and Prejudice
-
-by Jane Austen
-
-
-
-
-Chapter 1
-
-
-It is a truth universally acknowledged, that a single man in
-possession of a good fortune, must be in want of a wife.
-
-However little known the feelings or views of such a man may
-be on his first entering a neighbourhood, this truth is so well
-fixed in the minds of the surrounding families, that he is considered
-the rightful property of some one or other of their daughters.
-
-"My dear Mr. Bennet," said his lady to him one day, "have you
-heard that Netherfield Park is let at last?"
-
-Mr. Bennet replied that he had not.
-
-"But it is," returned she; "for Mrs. Long has just been here, and
-she told me all about it."
-
-Mr. Bennet made no answer.
-
-"Do you not want to know who has taken it?" cried his wife
-impatiently.
-
-"YOU want to tell me, and I have no objection to hearing it."
-
-This was invitation enough.
-
-"Why, my dear, you must know, Mrs. Long says that Netherfield
-is taken by a young man of large fortune from the north of
-England; that he came down on Monday in a chaise and four to
-see the place, and was so much delighted with it, that he agreed
-with Mr. Morris immediately; that he is to take possession
-before Michaelmas, and some of his servants are to be in the
-house by the end of next week."
-
-"What is his name?"
-
-"Bingley."
-
-"Is he married or single?"
-
-"Oh! Single, my dear, to be sure! A single man of large
-fortune; four or five thousand a year. What a fine thing for our
-girls!"
-
-"How so? How can it affect them?"
-
-"My dear Mr. Bennet," replied his wife, "how can you be so
-tiresome! You must know that I am thinking of his marrying
-one of them."
-
-"Is that his design in settling here?"
-
-"Design! Nonsense, how can you talk so! But it is very likely
-that he MAY fall in love with one of them, and therefore you
-must visit him as soon as he comes."
-
-"I see no occasion for that. You and the girls may go, or you
-may send them by themselves, which perhaps will be still
-better, for as you are as handsome as any of them, Mr. Bingley
-may like you the best of the party."
-
-"My dear, you flatter me. I certainly HAVE had my share of
-beauty, but I do not pretend to be anything extraordinary now.
-When a woman has five grown-up daughters, she ought to give
-over thinking of her own beauty."
-
-"In such cases, a woman has not often much beauty to think of."
-
-"But, my dear, you must indeed go and see Mr. Bingley when
-he comes into the neighbourhood."
-
-"It is more than I engage for, I assure you."
-
-"But consider your daughters. Only think what an establishment
-it would be for one of them. Sir William and Lady Lucas are
-determined to go, merely on that account, for in general, you
-know, they visit no newcomers. Indeed you must go, for it will
-be impossible for US to visit him if you do not."
-
-"You are over-scrupulous, surely. I dare say Mr. Bingley will
-be very glad to see you; and I will send a few lines by you to
-assure him of my hearty consent to his marrying whichever he
-chooses of the girls; though I must throw in a good word for
-my little Lizzy."
-
-"I desire you will do no such thing. Lizzy is not a bit better
-than the others; and I am sure she is not half so handsome as
-Jane, nor half so good-humoured as Lydia. But you are always
-giving HER the preference."
-
-"They have none of them much to recommend them," replied he;
-"they are all silly and ignorant like other girls; but Lizzy
-has something more of quickness than her sisters."
-
-"Mr. Bennet, how CAN you abuse your own children in such a
-way? You take delight in vexing me. You have no compassion
-for my poor nerves."
-
-"You mistake me, my dear. I have a high respect for your
-nerves. They are my old friends. I have heard you mention
-them with consideration these last twenty years at least."
-
-Mr. Bennet was so odd a mixture of quick parts, sarcastic humour,
-reserve, and caprice, that the experience of three-and-twenty
-years had been insufficient to make his wife understand his
-character. HER mind was less difficult to develop. She was a
-woman of mean understanding, little information, and uncertain
-temper. When she was discontented, she fancied herself nervous.
-The business of her life was to get her daughters married; its
-solace was visiting and news.
-
-
-
-Chapter 2
-
-
-Mr. Bennet was among the earliest of those who waited on Mr.
-Bingley. He had always intended to visit him, though to the last
-always assuring his wife that he should not go; and till the
-evening after the visit was paid she had no knowledge of it.
-It was then disclosed in the following manner. Observing his
-second daughter employed in trimming a hat, he suddenly
-addressed her with:
-
-"I hope Mr. Bingley will like it, Lizzy."
-
-"We are not in a way to know WHAT Mr. Bingley likes," said
-her mother resentfully, "since we are not to visit."
-
-"But you forget, mamma," said Elizabeth, "that we shall meet
-him at the assemblies, and that Mrs. Long promised to introduce
-him."
-
-"I do not believe Mrs. Long will do any such thing. She has two
-nieces of her own. She is a selfish, hypocritical woman, and I
-have no opinion of her."
-
-"No more have I," said Mr. Bennet; "and I am glad to find that
-you do not depend on her serving you."
-
-Mrs. Bennet deigned not to make any reply, but, unable to
-contain herself, began scolding one of her daughters.
-
-"Don't keep coughing so, Kitty, for Heaven's sake! Have a little
-compassion on my nerves. You tear them to pieces."
-
-"Kitty has no discretion in her coughs," said her father; "she
-times them ill."
-
-"I do not cough for my own amusement," replied Kitty fretfully.
-"When is your next ball to be, Lizzy?"
-
-"To-morrow fortnight."
-
-"Aye, so it is," cried her mother, "and Mrs. Long does not come
-back till the day before; so it will be impossible for her to
-introduce him, for she will not know him herself."
-
-"Then, my dear, you may have the advantage of your friend, and
-introduce Mr. Bingley to HER."
-
-"Impossible, Mr. Bennet, impossible, when I am not acquainted
-with him myself; how can you be so teasing?"
-
-"I honour your circumspection. A fortnight's acquaintance is
-certainly very little. One cannot know what a man really is by
-the end of a fortnight. But if WE do not venture somebody else
-will; and after all, Mrs. Long and her daughters must stand their
-chance; and, therefore, as she will think it an act of kindness,
-if you decline the office, I will take it on myself."
-
-The girls stared at their father. Mrs. Bennet said only,
-"Nonsense, nonsense!"
-
-"What can be the meaning of that emphatic exclamation?" cried
-he. "Do you consider the forms of introduction, and the stress
-that is laid on them, as nonsense? I cannot quite agree with
-you THERE. What say you, Mary? For you are a young lady of
-deep reflection, I know, and read great books and make extracts."
-
-Mary wished to say something sensible, but knew not how.
-
-"While Mary is adjusting her ideas," he continued, "let us return
-to Mr. Bingley."
-
-"I am sick of Mr. Bingley," cried his wife.
-
-"I am sorry to hear THAT; but why did not you tell me that
-before? If I had known as much this morning I certainly would
-not have called on him. It is very unlucky; but as I have
-actually paid the visit, we cannot escape the acquaintance now."
-
-The astonishment of the ladies was just what he wished; that of
-Mrs. Bennet perhaps surpassing the rest; though, when the first
-tumult of joy was over, she began to declare that it was what she
-had expected all the while.
-
-"How good it was in you, my dear Mr. Bennet! But I knew I should
-persuade you at last. I was sure you loved your girls too well
-to neglect such an acquaintance. Well, how pleased I am! and it
-is such a good joke, too, that you should have gone this morning
-and never said a word about it till now."
-
-"Now, Kitty, you may cough as much as you choose," said Mr.
-Bennet; and, as he spoke, he left the room, fatigued with the
-raptures of his wife.
-
-"What an excellent father you have, girls!" said she, when the
-door was shut. "I do not know how you will ever make him
-amends for his kindness; or me, either, for that matter. At our
-time of life it is not so pleasant, I can tell you, to be making
-new acquaintances every day; but for your sakes, we would do
-anything. Lydia, my love, though you ARE the youngest, I dare
-say Mr. Bingley will dance with you at the next ball."
-
-"Oh!" said Lydia stoutly, "I am not afraid; for though I AM the
-youngest, I'm the tallest."
-
-The rest of the evening was spent in conjecturing how soon he
-would return Mr. Bennet's visit, and determining when they
-should ask him to dinner.
-
-
-
-Chapter 3
-
-
-Not all that Mrs. Bennet, however, with the assistance of her
-five daughters, could ask on the subject, was sufficient to draw
-from her husband any satisfactory description of Mr. Bingley.
-They attacked him in various ways--with barefaced questions,
-ingenious suppositions, and distant surmises; but he eluded the
-skill of them all, and they were at last obliged to accept the
-second-hand intelligence of their neighbour, Lady Lucas. Her
-report was highly favourable. Sir William had been delighted
-with him. He was quite young, wonderfully handsome, extremely
-agreeable, and, to crown the whole, he meant to be at the next
-assembly with a large party. Nothing could be more delightful!
-To be fond of dancing was a certain step towards falling in love;
-and very lively hopes of Mr. Bingley's heart were entertained.
-
-"If I can but see one of my daughters happily settled at
-Netherfield," said Mrs. Bennet to her husband, "and all the
-others equally well married, I shall have nothing to wish for."
-
-In a few days Mr. Bingley returned Mr. Bennet's visit, and sat
-about ten minutes with him in his library. He had entertained
-hopes of being admitted to a sight of the young ladies, of
-whose beauty he had heard much; but he saw only the father.
-The ladies were somewhat more fortunate, for they had the
-advantage of ascertaining from an upper window that he wore
-a blue coat, and rode a black horse.
-
-An invitation to dinner was soon afterwards dispatched; and
-already had Mrs. Bennet planned the courses that were to do
-credit to her housekeeping, when an answer arrived which
-deferred it all. Mr. Bingley was obliged to be in town the
-following day, and, consequently, unable to accept the honour
-of their invitation, etc. Mrs. Bennet was quite disconcerted.
-She could not imagine what business he could have in town so
-soon after his arrival in Hertfordshire; and she began to fear
-that he might be always flying about from one place to another,
-and never settled at Netherfield as he ought to be. Lady Lucas
-quieted her fears a little by starting the idea of his being gone
-to London only to get a large party for the ball; and a report
-soon followed that Mr. Bingley was to bring twelve ladies and
-seven gentlemen with him to the assembly. The girls grieved
-over such a number of ladies, but were comforted the day
-before the ball by hearing, that instead of twelve he brought
-only six with him from London--his five sisters and a cousin.
-And when the party entered the assembly room it consisted of
-only five altogether--Mr. Bingley, his two sisters, the husband
-of the eldest, and another young man.
-
-Mr. Bingley was good-looking and gentlemanlike; he had a pleasant
-countenance, and easy, unaffected manners. His sisters were fine
-women, with an air of decided fashion. His brother-in-law, Mr.
-Hurst, merely looked the gentleman; but his friend Mr. Darcy soon
-drew the attention of the room by his fine, tall person, handsome
-features, noble mien, and the report which was in general
-circulation within five minutes after his entrance, of his having
-ten thousand a year. The gentlemen pronounced him to be a fine
-figure of a man, the ladies declared he was much handsomer than
-Mr. Bingley, and he was looked at with great admiration for about
-half the evening, till his manners gave a disgust which turned
-the tide of his popularity; for he was discovered to be proud;
-to be above his company, and above being pleased; and not all his
-large estate in Derbyshire could then save him from having a most
-forbidding, disagreeable countenance, and being unworthy to be
-compared with his friend.
-
-Mr. Bingley had soon made himself acquainted with all the
-principal people in the room; he was lively and unreserved,
-danced every dance, was angry that the ball closed so early,
-and talked of giving one himself at Netherfield. Such amiable
-qualities must speak for themselves. What a contrast between
-him and his friend! Mr. Darcy danced only once with Mrs. Hurst
-and once with Miss Bingley, declined being introduced to any
-other lady, and spent the rest of the evening in walking about
-the room, speaking occasionally to one of his own party. His
-character was decided. He was the proudest, most disagreeable
-man in the world, and everybody hoped that he would never come
-there again. Amongst the most violent against him was Mrs.
-Bennet, whose dislike of his general behaviour was sharpened
-into particular resentment by his having slighted one of her
-daughters.
-
-Elizabeth Bennet had been obliged, by the scarcity of gentlemen,
-to sit down for two dances; and during part of that time,
-Mr. Darcy had been standing near enough for her to hear a
-conversation between him and Mr. Bingley, who came from the
-dance for a few minutes, to press his friend to join it.
-
-"Come, Darcy," said he, "I must have you dance. I hate to see
-you standing about by yourself in this stupid manner. You had
-much better dance."
-
-"I certainly shall not. You know how I detest it, unless I am
-particularly acquainted with my partner. At such an assembly as
-this it would be insupportable. Your sisters are engaged, and
-there is not another woman in the room whom it would not be a
-punishment to me to stand up with."
-
-"I would not be so fastidious as you are," cried Mr. Bingley,
-"for a kingdom! Upon my honour, I never met with so many
-pleasant girls in my life as I have this evening; and there are
-several of them you see uncommonly pretty."
-
-"YOU are dancing with the only handsome girl in the room,"
-said Mr. Darcy, looking at the eldest Miss Bennet.
-
-"Oh! She is the most beautiful creature I ever beheld! But
-there is one of her sisters sitting down just behind you, who is
-very pretty, and I dare say very agreeable. Do let me ask my
-partner to introduce you."
-
-"Which do you mean?" and turning round he looked for a
-moment at Elizabeth, till catching her eye, he withdrew his own
-and coldly said: "She is tolerable, but not handsome enough to
-tempt ME; I am in no humour at present to give consequence
-to young ladies who are slighted by other men. You had better
-return to your partner and enjoy her smiles, for you are wasting
-your time with me."
-
-Mr. Bingley followed his advice. Mr. Darcy walked off; and
-Elizabeth remained with no very cordial feelings toward him.
-She told the story, however, with great spirit among her friends;
-for she had a lively, playful disposition, which delighted in
-anything ridiculous.
-
-The evening altogether passed off pleasantly to the whole
-family. Mrs. Bennet had seen her eldest daughter much
-admired by the Netherfield party. Mr. Bingley had danced with
-her twice, and she had been distinguished by his sisters. Jane
-was as much gratified by this as her mother could be, though in
-a quieter way. Elizabeth felt Jane's pleasure. Mary had heard
-herself mentioned to Miss Bingley as the most accomplished
-girl in the neighbourhood; and Catherine and Lydia had been
-fortunate enough never to be without partners, which was all
-that they had yet learnt to care for at a ball. They returned,
-therefore, in good spirits to Longbourn, the village where they
-lived, and of which they were the principal inhabitants. They
-found Mr. Bennet still up. With a book he was regardless of
-time; and on the present occasion he had a good deal of
-curiosity as to the events of an evening which had raised such
-splendid expectations. He had rather hoped that his wife's
-views on the stranger would be disappointed; but he soon
-found out that he had a different story to hear.
-
-"Oh! my dear Mr. Bennet," as she entered the room, "we have
-had a most delightful evening, a most excellent ball. I wish you
-had been there. Jane was so admired, nothing could be like it.
-Everybody said how well she looked; and Mr. Bingley thought
-her quite beautiful, and danced with her twice! Only think of
-THAT, my dear; he actually danced with her twice! and she was
-the only creature in the room that he asked a second time.
-First of all, he asked Miss Lucas. I was so vexed to see him
-stand up with her! But, however, he did not admire her at all;
-indeed, nobody can, you know; and he seemed quite struck with
-Jane as she was going down the dance. So he inquired who she
-was, and got introduced, and asked her for the two next. Then
-the two third he danced with Miss King, and the two fourth with
-Maria Lucas, and the two fifth with Jane again, and the two
-sixth with Lizzy, and the BOULANGER--"
-
-"If he had had any compassion for ME," cried her husband
-impatiently, "he would not have danced half so much! For God's
-sake, say no more of his partners. O that he had sprained
-his ankle in the first place!"
-
-"Oh! my dear, I am quite delighted with him. He is so
-excessively handsome! And his sisters are charming women.
-I never in my life saw anything more elegant than their dresses.
-I dare say the lace upon Mrs. Hurst's gown--"
-
-Here she was interrupted again. Mr. Bennet protested against
-any description of finery. She was therefore obliged to seek
-another branch of the subject, and related, with much bitterness
-of spirit and some exaggeration, the shocking rudeness of Mr.
-Darcy.
-
-"But I can assure you," she added, "that Lizzy does not lose
-much by not suiting HIS fancy; for he is a most disagreeable,
-horrid man, not at all worth pleasing. So high and so conceited
-that there was no enduring him! He walked here, and he walked
-there, fancying himself so very great! Not handsome enough to
-dance with! I wish you had been there, my dear, to have given
-him one of your set-downs. I quite detest the man."
-
-
-
-Chapter 4
-
-
-When Jane and Elizabeth were alone, the former, who had been
-cautious in her praise of Mr. Bingley before, expressed to her
-sister just how very much she admired him.
-
-"He is just what a young man ought to be," said she, "sensible,
-good-humoured, lively; and I never saw such happy manners!--so
-much ease, with such perfect good breeding!"
-
-"He is also handsome," replied Elizabeth, "which a young man
-ought likewise to be, if he possibly can. His character is thereby
-complete."
-
-"I was very much flattered by his asking me to dance a second
-time. I did not expect such a compliment."
-
-"Did not you? I did for you. But that is one great difference
-between us. Compliments always take YOU by surprise, and
-ME never. What could be more natural than his asking you
-again? He could not help seeing that you were about five times
-as pretty as every other woman in the room. No thanks to his
-gallantry for that. Well, he certainly is very agreeable, and I
-give you leave to like him. You have liked many a stupider
-person."
-
-"Dear Lizzy!"
-
-"Oh! you are a great deal too apt, you know, to like people in
-general. You never see a fault in anybody. All the world are
-good and agreeable in your eyes. I never heard you speak ill of
-a human being in your life."
-
-"I would not wish to be hasty in censuring anyone; but I always
-speak what I think."
-
-"I know you do; and it is THAT which makes the wonder. With YOUR
-good sense, to be so honestly blind to the follies and nonsense
-of others! Affectation of candour is common enough--one meets
-with it everywhere. But to be candid without ostentation or
-design--to take the good of everybody's character and make it
-still better, and say nothing of the bad--belongs to you alone.
-And so you like this man's sisters, too, do you? Their manners
-are not equal to his."
-
-"Certainly not--at first. But they are very pleasing women when
-you converse with them. Miss Bingley is to live with her
-brother, and keep his house; and I am much mistaken if we shall
-not find a very charming neighbour in her."
-
-Elizabeth listened in silence, but was not convinced; their
-behaviour at the assembly had not been calculated to please in
-general; and with more quickness of observation and less pliancy
-of temper than her sister, and with a judgement too unassailed by
-any attention to herself, she was very little disposed to approve
-them. They were in fact very fine ladies; not deficient in good
-humour when they were pleased, nor in the power of making
-themselves agreeable when they chose it, but proud and
-conceited. They were rather handsome, had been educated in
-one of the first private seminaries in town, had a fortune of
-twenty thousand pounds, were in the habit of spending more
-than they ought, and of associating with people of rank, and
-were therefore in every respect entitled to think well of
-themselves, and meanly of others. They were of a respectable
-family in the north of England; a circumstance more deeply
-impressed on their memories than that their brother's fortune
-and their own had been acquired by trade.
-
-Mr. Bingley inherited property to the amount of nearly a
-hundred thousand pounds from his father, who had intended to
-purchase an estate, but did not live to do it. Mr. Bingley
-intended it likewise, and sometimes made choice of his county;
-but as he was now provided with a good house and the liberty of
-a manor, it was doubtful to many of those who best knew the
-easiness of his temper, whether he might not spend the
-remainder of his days at Netherfield, and leave the next
-generation to purchase.
-
-His sisters were anxious for his having an estate of his own; but,
-though he was now only established as a tenant, Miss Bingley
-was by no means unwilling to preside at his table--nor was Mrs.
-Hurst, who had married a man of more fashion than fortune, less
-disposed to consider his house as her home when it suited her.
-Mr. Bingley had not been of age two years, when he was tempted
-by an accidental recommendation to look at Netherfield House.
-He did look at it, and into it for half-an-hour--was pleased with
-the situation and the principal rooms, satisfied with what the
-owner said in its praise, and took it immediately.
-
-Between him and Darcy there was a very steady friendship, in
-spite of great opposition of character. Bingley was endeared to
-Darcy by the easiness, openness, and ductility of his temper,
-though no disposition could offer a greater contrast to his own,
-and though with his own he never appeared dissatisfied. On the
-strength of Darcy's regard, Bingley had the firmest reliance, and
-of his judgement the highest opinion. In understanding, Darcy
-was the superior. Bingley was by no means deficient, but Darcy
-was clever. He was at the same time haughty, reserved, and
-fastidious, and his manners, though well-bred, were not inviting.
-In that respect his friend had greatly the advantage. Bingley was
-sure of being liked wherever he appeared, Darcy was continually
-giving offense.
-
-The manner in which they spoke of the Meryton assembly was
-sufficiently characteristic. Bingley had never met with more
-pleasant people or prettier girls in his life; everybody had been
-most kind and attentive to him; there had been no formality, no
-stiffness; he had soon felt acquainted with all the room; and, as
-to Miss Bennet, he could not conceive an angel more beautiful.
-Darcy, on the contrary, had seen a collection of people in whom
-there was little beauty and no fashion, for none of whom he had
-felt the smallest interest, and from none received either attention
-or pleasure. Miss Bennet he acknowledged to be pretty, but she
-smiled too much.
-
-Mrs. Hurst and her sister allowed it to be so--but still they
-admired her and liked her, and pronounced her to be a sweet
-girl, and one whom they would not object to know more of.
-Miss Bennet was therefore established as a sweet girl, and their
-brother felt authorized by such commendation to think of her as
-he chose.
-
-
-
-Chapter 5
-
-
-Within a short walk of Longbourn lived a family with whom
-the Bennets were particularly intimate. Sir William Lucas
-had been formerly in trade in Meryton, where he had made a
-tolerable fortune, and risen to the honour of knighthood by an
-address to the king during his mayoralty. The distinction had
-perhaps been felt too strongly. It had given him a disgust
-to his business, and to his residence in a small market town;
-and, in quitting them both, he had removed with his family
-to a house about a mile from Meryton, denominated from that
-period Lucas Lodge, where he could think with pleasure of his
-own importance, and, unshackled by business, occupy himself
-solely in being civil to all the world. For, though elated by his
-rank, it did not render him supercilious; on the contrary, he was
-all attention to everybody. By nature inoffensive, friendly, and
-obliging, his presentation at St. James's had made him courteous.
-
-Lady Lucas was a very good kind of woman, not too clever to
-be a valuable neighbour to Mrs. Bennet. They had several
-children. The eldest of them, a sensible, intelligent young
-woman, about twenty-seven, was Elizabeth's intimate friend.
-
-That the Miss Lucases and the Miss Bennets should meet to
-talk over a ball was absolutely necessary; and the morning after
-the assembly brought the former to Longbourn to hear and to
-communicate.
-
-"YOU began the evening well, Charlotte," said Mrs. Bennet with
-civil self-command to Miss Lucas. "YOU were Mr. Bingley's
-first choice."
-
-"Yes; but he seemed to like his second better."
-
-"Oh! you mean Jane, I suppose, because he danced with her
-twice. To be sure that DID seem as if he admired her--indeed
-I rather believe he DID--I heard something about it--but I
-hardly know what--something about Mr. Robinson."
-
-"Perhaps you mean what I overheard between him and Mr. Robinson;
-did not I mention it to you? Mr. Robinson's asking him how he
-liked our Meryton assemblies, and whether he did not think there
-were a great many pretty women in the room, and WHICH he thought
-the prettiest? and his answering immediately to the last
-question: 'Oh! the eldest Miss Bennet, beyond a doubt; there
-cannot be two opinions on that point.'"
-
-"Upon my word! Well, that is very decided indeed--that does
-seem as if--but, however, it may all come to nothing, you know."
-
-"MY overhearings were more to the purpose than YOURS, Eliza,"
-said Charlotte. "Mr. Darcy is not so well worth listening to
-as his friend, is he?--poor Eliza!--to be only just TOLERABLE."
-
-"I beg you would not put it into Lizzy's head to be vexed by
-his ill-treatment, for he is such a disagreeable man, that it
-would be quite a misfortune to be liked by him. Mrs. Long
-told me last night that he sat close to her for half-an-hour
-without once opening his lips."
-
-"Are you quite sure, ma'am?--is not there a little mistake?"
-said Jane. "I certainly saw Mr. Darcy speaking to her."
-
-"Aye--because she asked him at last how he liked Netherfield,
-and he could not help answering her; but she said he seemed
-quite angry at being spoke to."
-
-"Miss Bingley told me," said Jane, "that he never speaks much,
-unless among his intimate acquaintances. With THEM he is
-remarkably agreeable."
-
-"I do not believe a word of it, my dear. If he had been so very
-agreeable, he would have talked to Mrs. Long. But I can guess
-how it was; everybody says that he is eat up with pride, and I
-dare say he had heard somehow that Mrs. Long does not keep
-a carriage, and had come to the ball in a hack chaise."
-
-"I do not mind his not talking to Mrs. Long," said Miss Lucas,
-"but I wish he had danced with Eliza."
-
-"Another time, Lizzy," said her mother, "I would not dance
-with HIM, if I were you."
-
-"I believe, ma'am, I may safely promise you NEVER to dance
-with him."
-
-"His pride," said Miss Lucas, "does not offend ME so much as
-pride often does, because there is an excuse for it. One cannot
-wonder that so very fine a young man, with family, fortune,
-everything in his favour, should think highly of himself. If I
-may so express it, he has a RIGHT to be proud."
-
-"That is very true," replied Elizabeth, "and I could easily
-forgive HIS pride, if he had not mortified MINE."
-
-"Pride," observed Mary, who piqued herself upon the solidity
-of her reflections, "is a very common failing, I believe. By
-all that I have ever read, I am convinced that it is very common
-indeed; that human nature is particularly prone to it, and
-that there are very few of us who do not cherish a feeling of
-self-complacency on the score of some quality or other, real
-or imaginary. Vanity and pride are different things, though
-the words are often used synonymously. A person may be proud
-without being vain. Pride relates more to our opinion of
-ourselves, vanity to what we would have others think of us."
-
-"If I were as rich as Mr. Darcy," cried a young Lucas, who
-came with his sisters, "I should not care how proud I was. I
-would keep a pack of foxhounds, and drink a bottle of wine a
-day."
-
-"Then you would drink a great deal more than you ought," said
-Mrs. Bennet; "and if I were to see you at it, I should take away
-your bottle directly."
-
-The boy protested that she should not; she continued to declare
-that she would, and the argument ended only with the visit.
-
-
-
-Chapter 6
-
-
-The ladies of Longbourn soon waited on those of Netherfield.
-The visit was soon returned in due form. Miss Bennet's
-pleasing manners grew on the goodwill of Mrs. Hurst and Miss
-Bingley; and though the mother was found to be intolerable,
-and the younger sisters not worth speaking to, a wish of
-being better acquainted with THEM was expressed towards
-the two eldest. By Jane, this attention was received with the
-greatest pleasure, but Elizabeth still saw superciliousness in
-their treatment of everybody, hardly excepting even her sister,
-and could not like them; though their kindness to Jane, such as it
-was, had a value as arising in all probability from the influence
-of their brother's admiration. It was generally evident
-whenever they met, that he DID admire her and to HER it was
-equally evident that Jane was yielding to the preference which
-she had begun to entertain for him from the first, and was in a
-way to be very much in love; but she considered with pleasure
-that it was not likely to be discovered by the world in general,
-since Jane united, with great strength of feeling, a composure
-of temper and a uniform cheerfulness of manner which would
-guard her from the suspicions of the impertinent. She
-mentioned this to her friend Miss Lucas.
-
-"It may perhaps be pleasant," replied Charlotte, "to be able to
-impose on the public in such a case; but it is sometimes a
-disadvantage to be so very guarded. If a woman conceals her
-affection with the same skill from the object of it, she may lose
-the opportunity of fixing him; and it will then be but poor
-consolation to believe the world equally in the dark. There is
-so much of gratitude or vanity in almost every attachment, that
-it is not safe to leave any to itself. We can all BEGIN freely--a
-slight preference is natural enough; but there are very few of us
-who have heart enough to be really in love without encouragement.
-In nine cases out of ten a women had better show MORE affection
-than she feels. Bingley likes your sister undoubtedly; but he
-may never do more than like her, if she does not help him on."
-
-"But she does help him on, as much as her nature will allow.
-If I can perceive her regard for him, he must be a simpleton,
-indeed, not to discover it too."
-
-"Remember, Eliza, that he does not know Jane's disposition as
-you do."
-
-"But if a woman is partial to a man, and does not endeavour to
-conceal it, he must find it out."
-
-"Perhaps he must, if he sees enough of her. But, though
-Bingley and Jane meet tolerably often, it is never for many
-hours together; and, as they always see each other in large
-mixed parties, it is impossible that every moment should be
-employed in conversing together. Jane should therefore make
-the most of every half-hour in which she can command his
-attention. When she is secure of him, there will be more leisure
-for falling in love as much as she chooses."
-
-"Your plan is a good one," replied Elizabeth, "where nothing is
-in question but the desire of being well married, and if I were
-determined to get a rich husband, or any husband, I dare say I
-should adopt it. But these are not Jane's feelings; she is not
-acting by design. As yet, she cannot even be certain of the
-degree of her own regard nor of its reasonableness. She has
-known him only a fortnight. She danced four dances with him
-at Meryton; she saw him one morning at his own house, and
-has since dined with him in company four times. This is not
-quite enough to make her understand his character."
-
-"Not as you represent it. Had she merely DINED with him, she
-might only have discovered whether he had a good appetite; but
-you must remember that four evenings have also been spent
-together--and four evenings may do a great deal."
-
-"Yes; these four evenings have enabled them to ascertain that
-they both like Vingt-un better than Commerce; but with respect
-to any other leading characteristic, I do not imagine that much
-has been unfolded."
-
-"Well," said Charlotte, "I wish Jane success with all my heart;
-and if she were married to him to-morrow, I should think she
-had as good a chance of happiness as if she were to be studying
-his character for a twelvemonth. Happiness in marriage is
-entirely a matter of chance. If the dispositions of the parties
-are ever so well known to each other or ever so similar beforehand,
-it does not advance their felicity in the least. They always
-continue to grow sufficiently unlike afterwards to have their
-share of vexation; and it is better to know as little as possible
-of the defects of the person with whom you are to pass your life."
-
-"You make me laugh, Charlotte; but it is not sound. You know
-it is not sound, and that you would never act in this way
-yourself."
-
-Occupied in observing Mr. Bingley's attentions to her sister,
-Elizabeth was far from suspecting that she was herself becoming
-an object of some interest in the eyes of his friend. Mr. Darcy
-had at first scarcely allowed her to be pretty; he had looked at
-her without admiration at the ball; and when they next met, he
-looked at her only to criticise. But no sooner had he made it
-clear to himself and his friends that she hardly had a good feature
-in her face, than he began to find it was rendered uncommonly
-intelligent by the beautiful expression of her dark eyes. To this
-discovery succeeded some others equally mortifying. Though he
-had detected with a critical eye more than one failure of perfect
-symmetry in her form, he was forced to acknowledge her figure
-to be light and pleasing; and in spite of his asserting that her
-manners were not those of the fashionable world, he was caught
-by their easy playfulness. Of this she was perfectly unaware;
-to her he was only the man who made himself agreeable nowhere,
-and who had not thought her handsome enough to dance with.
-
-He began to wish to know more of her, and as a step towards
-conversing with her himself, attended to her conversation with
-others. His doing so drew her notice. It was at Sir William
-Lucas's, where a large party were assembled.
-
-"What does Mr. Darcy mean," said she to Charlotte, "by
-listening to my conversation with Colonel Forster?"
-
-"That is a question which Mr. Darcy only can answer."
-
-"But if he does it any more I shall certainly let him know that I
-see what he is about. He has a very satirical eye, and if I do not
-begin by being impertinent myself, I shall soon grow afraid of
-him."
-
-On his approaching them soon afterwards, though without
-seeming to have any intention of speaking, Miss Lucas defied
-her friend to mention such a subject to him; which immediately
-provoking Elizabeth to do it, she turned to him and said:
-
-"Did you not think, Mr. Darcy, that I expressed myself
-uncommonly well just now, when I was teasing Colonel Forster
-to give us a ball at Meryton?"
-
-"With great energy; but it is always a subject which makes a lady
-energetic."
-
-"You are severe on us."
-
-"It will be HER turn soon to be teased," said Miss Lucas. "I
-am going to open the instrument, Eliza, and you know what
-follows."
-
-"You are a very strange creature by way of a friend!--always
-wanting me to play and sing before anybody and everybody!
-If my vanity had taken a musical turn, you would have been
-invaluable; but as it is, I would really rather not sit down
-before those who must be in the habit of hearing the very best
-performers." On Miss Lucas's persevering, however, she added,
-"Very well, if it must be so, it must." And gravely glancing at
-Mr. Darcy, "There is a fine old saying, which everybody here is of
-course familiar with: 'Keep your breath to cool your porridge';
-and I shall keep mine to swell my song."
-
-Her performance was pleasing, though by no means capital.
-After a song or two, and before she could reply to the entreaties
-of several that she would sing again, she was eagerly succeeded
-at the instrument by her sister Mary, who having, in consequence
-of being the only plain one in the family, worked hard for
-knowledge and accomplishments, was always impatient for
-display.
-
-Mary had neither genius nor taste; and though vanity had given
-her application, it had given her likewise a pedantic air and
-conceited manner, which would have injured a higher degree of
-excellence than she had reached. Elizabeth, easy and unaffected,
-had been listened to with much more pleasure, though not
-playing half so well; and Mary, at the end of a long concerto,
-was glad to purchase praise and gratitude by Scotch and Irish
-airs, at the request of her younger sisters, who, with some of the
-Lucases, and two or three officers, joined eagerly in dancing at
-one end of the room.
-
-Mr. Darcy stood near them in silent indignation at such a mode
-of passing the evening, to the exclusion of all conversation, and
-was too much engrossed by his thoughts to perceive that Sir
-William Lucas was his neighbour, till Sir William thus began:
-
-"What a charming amusement for young people this is, Mr. Darcy!
-There is nothing like dancing after all. I consider it as one
-of the first refinements of polished society."
-
-"Certainly, sir; and it has the advantage also of being in vogue
-amongst the less polished societies of the world. Every savage
-can dance."
-
-Sir William only smiled. "Your friend performs delightfully," he
-continued after a pause, on seeing Bingley join the group; "and I
-doubt not that you are an adept in the science yourself, Mr.
-Darcy."
-
-"You saw me dance at Meryton, I believe, sir."
-
-"Yes, indeed, and received no inconsiderable pleasure from the
-sight. Do you often dance at St. James's?"
-
-"Never, sir."
-
-"Do you not think it would be a proper compliment to the
-place?"
-
-"It is a compliment which I never pay to any place if I can
-avoid it."
-
-"You have a house in town, I conclude?"
-
-Mr. Darcy bowed.
-
-"I had once had some thought of fixing in town myself--for I am
-fond of superior society; but I did not feel quite certain that the
-air of London would agree with Lady Lucas."
-
-He paused in hopes of an answer; but his companion was not
-disposed to make any; and Elizabeth at that instant moving
-towards them, he was struck with the action of doing a very
-gallant thing, and called out to her:
-
-"My dear Miss Eliza, why are you not dancing? Mr. Darcy, you
-must allow me to present this young lady to you as a very
-desirable partner. You cannot refuse to dance, I am sure when
-so much beauty is before you." And, taking her hand, he would
-have given it to Mr. Darcy who, though extremely surprised,
-was not unwilling to receive it, when she instantly drew back,
-and said with some discomposure to Sir William:
-
-"Indeed, sir, I have not the least intention of dancing. I entreat
-you not to suppose that I moved this way in order to beg for a
-partner."
-
-Mr. Darcy, with grave propriety, requested to be allowed the
-honour of her hand, but in vain. Elizabeth was determined; nor
-did Sir William at all shake her purpose by his attempt at
-persuasion.
-
-"You excel so much in the dance, Miss Eliza, that it is cruel to
-deny me the happiness of seeing you; and though this gentleman
-dislikes the amusement in general, he can have no objection, I
-am sure, to oblige us for one half-hour."
-
-"Mr. Darcy is all politeness," said Elizabeth, smiling.
-
-"He is, indeed; but, considering the inducement, my dear Miss
-Eliza, we cannot wonder at his complaisance--for who would
-object to such a partner?"
-
-Elizabeth looked archly, and turned away. Her resistance had
-not injured her with the gentleman, and he was thinking of her
-with some complacency, when thus accosted by Miss Bingley:
-
-"I can guess the subject of your reverie."
-
-"I should imagine not."
-
-"You are considering how insupportable it would be to pass many
-evenings in this manner--in such society; and indeed I am quite
-of your opinion. I was never more annoyed! The insipidity, and
-yet the noise--the nothingness, and yet the self-importance of all
-those people! What would I give to hear your strictures on them!"
-
-"You conjecture is totally wrong, I assure you. My mind was
-more agreeably engaged. I have been meditating on the very
-great pleasure which a pair of fine eyes in the face of a pretty
-woman can bestow."
-
-Miss Bingley immediately fixed her eyes on his face, and desired
-he would tell her what lady had the credit of inspiring such
-reflections. Mr. Darcy replied with great intrepidity:
-
-"Miss Elizabeth Bennet."
-
-"Miss Elizabeth Bennet!" repeated Miss Bingley. "I am all
-astonishment. How long has she been such a favourite?--and
-pray, when am I to wish you joy?"
-
-"That is exactly the question which I expected you to ask. A
-lady's imagination is very rapid; it jumps from admiration to
-love, from love to matrimony, in a moment. I knew you would
-be wishing me joy."
-
-"Nay, if you are serious about it, I shall consider the matter is
-absolutely settled. You will be having a charming mother-in-law,
-indeed; and, of course, she will always be at Pemberley with you."
-
-He listened to her with perfect indifference while she chose to
-entertain herself in this manner; and as his composure convinced
-her that all was safe, her wit flowed long.
-
-
-
-Chapter 7
-
-
-Mr. Bennet's property consisted almost entirely in an estate of
-two thousand a year, which, unfortunately for his daughters, was
-entailed, in default of heirs male, on a distant relation; and their
-mother's fortune, though ample for her situation in life, could
-but ill supply the deficiency of his. Her father had been an
-attorney in Meryton, and had left her four thousand pounds.
-
-She had a sister married to a Mr. Phillips, who had been a clerk
-to their father and succeeded him in the business, and a brother
-settled in London in a respectable line of trade.
-
-The village of Longbourn was only one mile from Meryton; a
-most convenient distance for the young ladies, who were usually
-tempted thither three or four times a week, to pay their duty to
-their aunt and to a milliner's shop just over the way. The two
-youngest of the family, Catherine and Lydia, were particularly
-frequent in these attentions; their minds were more vacant than
-their sisters', and when nothing better offered, a walk to
-Meryton was necessary to amuse their morning hours and
-furnish conversation for the evening; and however bare of news
-the country in general might be, they always contrived to learn
-some from their aunt. At present, indeed, they were well
-supplied both with news and happiness by the recent arrival of
-a militia regiment in the neighbourhood; it was to remain the
-whole winter, and Meryton was the headquarters.
-
-Their visits to Mrs. Phillips were now productive of the most
-interesting intelligence. Every day added something to their
-knowledge of the officers' names and connections. Their
-lodgings were not long a secret, and at length they began to
-know the officers themselves. Mr. Phillips visited them all, and
-this opened to his nieces a store of felicity unknown before.
-They could talk of nothing but officers; and Mr. Bingley's large
-fortune, the mention of which gave animation to their mother,
-was worthless in their eyes when opposed to the regimentals of
-an ensign.
-
-After listening one morning to their effusions on this subject, Mr.
-Bennet coolly observed:
-
-"From all that I can collect by your manner of talking, you must
-be two of the silliest girls in the country. I have suspected it
-some time, but I am now convinced."
-
-Catherine was disconcerted, and made no answer; but Lydia,
-with perfect indifference, continued to express her admiration of
-Captain Carter, and her hope of seeing him in the course of the
-day, as he was going the next morning to London.
-
-"I am astonished, my dear," said Mrs. Bennet, "that you should
-be so ready to think your own children silly. If I wished to think
-slightingly of anybody's children, it should not be of my own,
-however."
-
-"If my children are silly, I must hope to be always sensible of it."
-
-"Yes--but as it happens, they are all of them very clever."
-
-"This is the only point, I flatter myself, on which we do not
-agree. I had hoped that our sentiments coincided in every
-particular, but I must so far differ from you as to think our two
-youngest daughters uncommonly foolish."
-
-"My dear Mr. Bennet, you must not expect such girls to have
-the sense of their father and mother. When they get to our age, I
-dare say they will not think about officers any more than we do.
-I remember the time when I liked a red coat myself very well--and,
-indeed, so I do still at my heart; and if a smart young colonel,
-with five or six thousand a year, should want one of my girls I
-shall not say nay to him; and I thought Colonel Forster looked
-very becoming the other night at Sir William's in his regimentals."
-
-"Mamma," cried Lydia, "my aunt says that Colonel Forster and
-Captain Carter do not go so often to Miss Watson's as they did
-when they first came; she sees them now very often standing in
-Clarke's library."
-
-Mrs. Bennet was prevented replying by the entrance of the
-footman with a note for Miss Bennet; it came from Netherfield,
-and the servant waited for an answer. Mrs. Bennet's eyes
-sparkled with pleasure, and she was eagerly calling out, while
-her daughter read,
-
-"Well, Jane, who is it from? What is it about? What does he
-say? Well, Jane, make haste and tell us; make haste, my love."
-
-"It is from Miss Bingley," said Jane, and then read it aloud.
-
-"MY DEAR FRIEND,--
-
-"If you are not so compassionate as to dine to-day with Louisa
-and me, we shall be in danger of hating each other for the rest
-of our lives, for a whole day's tete-a-tete between two women
-can never end without a quarrel. Come as soon as you can on
-receipt of this. My brother and the gentlemen are to dine with
-the officers.--Yours ever,
-
-"CAROLINE BINGLEY"
-
-"With the officers!" cried Lydia. "I wonder my aunt did not tell
-us of THAT."
-
-"Dining out," said Mrs. Bennet, "that is very unlucky."
-
-"Can I have the carriage?" said Jane.
-
-"No, my dear, you had better go on horseback, because it seems
-likely to rain; and then you must stay all night."
-
-"That would be a good scheme," said Elizabeth, "if you were
-sure that they would not offer to send her home."
-
-"Oh! but the gentlemen will have Mr. Bingley's chaise to go to
-Meryton, and the Hursts have no horses to theirs."
-
-"I had much rather go in the coach."
-
-"But, my dear, your father cannot spare the horses, I am sure.
-They are wanted in the farm, Mr. Bennet, are they not?"
-
-"They are wanted in the farm much oftener than I can get them."
-
-"But if you have got them to-day," said Elizabeth, "my mother's
-purpose will be answered."
-
-She did at last extort from her father an acknowledgment that
-the horses were engaged. Jane was therefore obliged to go on
-horseback, and her mother attended her to the door with many
-cheerful prognostics of a bad day. Her hopes were answered;
-Jane had not been gone long before it rained hard. Her sisters
-were uneasy for her, but her mother was delighted. The rain
-continued the whole evening without intermission; Jane certainly
-could not come back.
-
-"This was a lucky idea of mine, indeed!" said Mrs. Bennet more
-than once, as if the credit of making it rain were all her own. Till
-the next morning, however, she was not aware of all the felicity
-of her contrivance. Breakfast was scarcely over when a servant
-from Netherfield brought the following note for Elizabeth:
-
-"MY DEAREST LIZZY,--
-
-"I find myself very unwell this morning, which, I suppose, is to
-be imputed to my getting wet through yesterday. My kind friends
-will not hear of my returning till I am better. They insist also
-on my seeing Mr. Jones--therefore do not be alarmed if you should
-hear of his having been to me--and, excepting a sore throat and
-headache, there is not much the matter with me.--Yours, etc."
-
-"Well, my dear," said Mr. Bennet, when Elizabeth had read the
-note aloud, "if your daughter should have a dangerous fit of
-illness--if she should die, it would be a comfort to know that it
-was all in pursuit of Mr. Bingley, and under your orders."
-
-"Oh! I am not afraid of her dying. People do not die of little
-trifling colds. She will be taken good care of. As long as she
-stays there, it is all very well. I would go an see her if I could
-have the carriage."
-
-Elizabeth, feeling really anxious, was determined to go to her,
-though the carriage was not to be had; and as she was no
-horsewoman, walking was her only alternative. She declared her
-resolution.
-
-"How can you be so silly," cried her mother, "as to think of such
-a thing, in all this dirt! You will not be fit to be seen when you
-get there."
-
-"I shall be very fit to see Jane--which is all I want."
-
-"Is this a hint to me, Lizzy," said her father, "to send for
-the horses?"
-
-"No, indeed, I do not wish to avoid the walk. The distance is
-nothing when one has a motive; only three miles. I shall be back
-by dinner."
-
-"I admire the activity of your benevolence," observed Mary, "but
-every impulse of feeling should be guided by reason; and, in my
-opinion, exertion should always be in proportion to what is
-required."
-
-"We will go as far as Meryton with you," said Catherine and
-Lydia. Elizabeth accepted their company, and the three young
-ladies set off together.
-
-"If we make haste," said Lydia, as they walked along, "perhaps
-we may see something of Captain Carter before he goes."
-
-In Meryton they parted; the two youngest repaired to the lodgings of
-one of the officers' wives, and Elizabeth continued her walk alone,
-crossing field after field at a quick pace, jumping over stiles
-and springing over puddles with impatient activity, and finding
-herself at last within view of the house, with weary ankles, dirty
-stockings, and a face glowing with the warmth of exercise.
-
-She was shown into the breakfast-parlour, where all but Jane
-were assembled, and where her appearance created a great deal
-of surprise. That she should have walked three miles so early
-in the day, in such dirty weather, and by herself, was almost
-incredible to Mrs. Hurst and Miss Bingley; and Elizabeth was
-convinced that they held her in contempt for it. She was
-received, however, very politely by them; and in their brother's
-manners there was something better than politeness; there was
-good humour and kindness. Mr. Darcy said very little, and Mr.
-Hurst nothing at all. The former was divided between admiration
-of the brilliancy which exercise had given to her complexion,
-and doubt as to the occasion's justifying her coming so far
-alone. The latter was thinking only of his breakfast.
-
-Her inquiries after her sister were not very favourably answered.
-Miss Bennet had slept ill, and though up, was very feverish, and
-not well enough to leave her room. Elizabeth was glad to be
-taken to her immediately; and Jane, who had only been withheld
-by the fear of giving alarm or inconvenience from expressing in
-her note how much she longed for such a visit, was delighted at
-her entrance. She was not equal, however, to much conversation,
-and when Miss Bingley left them together, could attempt little
-besides expressions of gratitude for the extraordinary kindness
-she was treated with. Elizabeth silently attended her.
-
-When breakfast was over they were joined by the sisters; and
-Elizabeth began to like them herself, when she saw how much
-affection and solicitude they showed for Jane. The apothecary
-came, and having examined his patient, said, as might be
-supposed, that she had caught a violent cold, and that they must
-endeavour to get the better of it; advised her to return to bed,
-and promised her some draughts. The advice was followed
-readily, for the feverish symptoms increased, and her head ached
-acutely. Elizabeth did not quit her room for a moment; nor were
-the other ladies often absent; the gentlemen being out, they had,
-in fact, nothing to do elsewhere.
-
-When the clock struck three, Elizabeth felt that she must go, and
-very unwillingly said so. Miss Bingley offered her the carriage,
-and she only wanted a little pressing to accept it, when Jane
-testified such concern in parting with her, that Miss Bingley was
-obliged to convert the offer of the chaise to an invitation to
-remain at Netherfield for the present. Elizabeth most thankfully
-consented, and a servant was dispatched to Longbourn to
-acquaint the family with her stay and bring back a supply of
-clothes.
-
-
-
-Chapter 8
-
-
-At five o'clock the two ladies retired to dress, and at half-past
-six Elizabeth was summoned to dinner. To the civil inquiries
-which then poured in, and amongst which she had the pleasure
-of distinguishing the much superior solicitude of Mr. Bingley's,
-she could not make a very favourable answer. Jane was by no
-means better. The sisters, on hearing this, repeated three or four
-times how much they were grieved, how shocking it was to have
-a bad cold, and how excessively they disliked being ill
-themselves; and then thought no more of the matter: and their
-indifference towards Jane when not immediately before them
-restored Elizabeth to the enjoyment of all her former dislike.
-
-Their brother, indeed, was the only one of the party whom she
-could regard with any complacency. His anxiety for Jane was
-evident, and his attentions to herself most pleasing, and
-they prevented her feeling herself so much an intruder as she
-believed she was considered by the others. She had very little
-notice from any but him. Miss Bingley was engrossed by Mr.
-Darcy, her sister scarcely less so; and as for Mr. Hurst, by
-whom Elizabeth sat, he was an indolent man, who lived only to
-eat, drink, and play at cards; who, when he found her to prefer
-a plain dish to a ragout, had nothing to say to her.
-
-When dinner was over, she returned directly to Jane, and Miss
-Bingley began abusing her as soon as she was out of the room.
-Her manners were pronounced to be very bad indeed, a mixture
-of pride and impertinence; she had no conversation, no style, no
-beauty. Mrs. Hurst thought the same, and added:
-
-"She has nothing, in short, to recommend her, but being an
-excellent walker. I shall never forget her appearance this
-morning. She really looked almost wild."
-
-"She did, indeed, Louisa. I could hardly keep my countenance.
-Very nonsensical to come at all! Why must SHE be scampering
-about the country, because her sister had a cold? Her hair, so
-untidy, so blowsy!"
-
-"Yes, and her petticoat; I hope you saw her petticoat, six inches
-deep in mud, I am absolutely certain; and the gown which had
-been let down to hide it not doing its office."
-
-"Your picture may be very exact, Louisa," said Bingley; "but
-this was all lost upon me. I thought Miss Elizabeth Bennet
-looked remarkably well when she came into the room this
-morning. Her dirty petticoat quite escaped my notice."
-
-"YOU observed it, Mr. Darcy, I am sure," said Miss Bingley;
-"and I am inclined to think that you would not wish to see
-YOUR sister make such an exhibition."
-
-"Certainly not."
-
-"To walk three miles, or four miles, or five miles, or whatever it
-is, above her ankles in dirt, and alone, quite alone! What could
-she mean by it? It seems to me to show an abominable sort of
-conceited independence, a most country-town indifference to
-decorum."
-
-"It shows an affection for her sister that is very pleasing," said
-Bingley.
-
-"I am afraid, Mr. Darcy," observed Miss Bingley in a half
-whisper, "that this adventure has rather affected your
-admiration of her fine eyes."
-
-"Not at all," he replied; "they were brightened by the exercise."
-A short pause followed this speech, and Mrs. Hurst began again:
-
-"I have a excessive regard for Miss Jane Bennet, she is really
-a very sweet girl, and I wish with all my heart she were well
-settled. But with such a father and mother, and such low
-connections, I am afraid there is no chance of it."
-
-"I think I have heard you say that their uncle is an attorney on
-Meryton."
-
-"Yes; and they have another, who lives somewhere near Cheapside."
-
-"That is capital," added her sister, and they both laughed heartily.
-
-"If they had uncles enough to fill ALL Cheapside," cried
-Bingley, "it would not make them one jot less agreeable."
-
-"But it must very materially lessen their chance of marrying men
-of any consideration in the world," replied Darcy.
-
-To this speech Bingley made no answer; but his sisters gave it
-their hearty assent, and indulged their mirth for some time at the
-expense of their dear friend's vulgar relations.
-
-With a renewal of tenderness, however, they returned to her
-room on leaving the dining-parlour, and sat with her till
-summoned to coffee. She was still very poorly, and Elizabeth
-would not quit her at all, till late in the evening, when she had
-the comfort of seeing her sleep, and when it seemed to her rather
-right than pleasant that she should go downstairs herself. On
-entering the drawing-room she found the whole party at loo, and
-was immediately invited to join them; but suspecting them to be
-playing high she declined it, and making her sister the excuse,
-said she would amuse herself for the short time she could stay
-below, with a book. Mr. Hurst looked at her with astonishment.
-
-"Do you prefer reading to cards?" said he; "that is rather
-singular."
-
-"Miss Eliza Bennet," said Miss Bingley, "despises cards. She is
-a great reader, and has no pleasure in anything else."
-
-"I deserve neither such praise nor such censure," cried Elizabeth;
-"I am NOT a great reader, and I have pleasure in many things."
-
-"In nursing your sister I am sure you have pleasure," said Bingley;
-"and I hope it will be soon increased by seeing her quite well."
-
-Elizabeth thanked him from her heart, and then walked towards
-the table where a few books were lying. He immediately offered
-to fetch her others--all that his library afforded.
-
-"And I wish my collection were larger for your benefit and my
-own credit; but I am an idle fellow, and though I have not many,
-I have more than I ever looked into."
-
-Elizabeth assured him that she could suit herself perfectly with
-those in the room.
-
-"I am astonished," said Miss Bingley, "that my father should
-have left so small a collection of books. What a delightful library
-you have at Pemberley, Mr. Darcy!"
-
-"It ought to be good," he replied, "it has been the work of many
-generations."
-
-"And then you have added so much to it yourself, you are
-always buying books."
-
-"I cannot comprehend the neglect of a family library in such days
-as these."
-
-"Neglect! I am sure you neglect nothing that can add to the
-beauties of that noble place. Charles, when you build YOUR
-house, I wish it may be half as delightful as Pemberley."
-
-"I wish it may."
-
-"But I would really advise you to make your purchase in that
-neighbourhood, and take Pemberley for a kind of model. There
-is not a finer county in England than Derbyshire."
-
-"With all my heart; I will buy Pemberley itself if Darcy will
-sell it."
-
-"I am talking of possibilities, Charles."
-
-"Upon my word, Caroline, I should think it more possible to get
-Pemberley by purchase than by imitation."
-
-Elizabeth was so much caught with what passed, as to leave her
-very little attention for her book; and soon laying it wholly
-aside, she drew near the card-table, and stationed herself
-between Mr. Bingley and his eldest sister, to observe the game.
-
-"Is Miss Darcy much grown since the spring?" said Miss
-Bingley; "will she be as tall as I am?"
-
-"I think she will. She is now about Miss Elizabeth Bennet's
-height, or rather taller."
-
-"How I long to see her again! I never met with anybody who
-delighted me so much. Such a countenance, such manners! And
-so extremely accomplished for her age! Her performance on the
-pianoforte is exquisite."
-
-"It is amazing to me," said Bingley, "how young ladies can have
-patience to be so very accomplished as they all are."
-
-"All young ladies accomplished! My dear Charles, what do you mean?"
-
-"Yes, all of them, I think. They all paint tables, cover screens,
-and net purses. I scarcely know anyone who cannot do all this,
-and I am sure I never heard a young lady spoken of for the first
-time, without being informed that she was very accomplished."
-
-"Your list of the common extent of accomplishments," said Darcy,
-"has too much truth. The word is applied to many a woman who
-deserves it no otherwise than by netting a purse or covering
-a screen. But I am very far from agreeing with you in your
-estimation of ladies in general. I cannot boast of knowing
-more than half-a-dozen, in the whole range of my acquaintance,
-that are really accomplished."
-
-"Nor I, I am sure," said Miss Bingley.
-
-"Then," observed Elizabeth, "you must comprehend a great deal
-in your idea of an accomplished woman."
-
-"Yes, I do comprehend a great deal in it."
-
-"Oh! certainly," cried his faithful assistant, "no one can be really
-esteemed accomplished who does not greatly surpass what is
-usually met with. A woman must have a thorough knowledge of
-music, singing, drawing, dancing, and the modern languages, to
-deserve the word; and besides all this, she must possess a certain
-something in her air and manner of walking, the tone of her
-voice, her address and expressions, or the word will be but
-half-deserved."
-
-"All this she must possess," added Darcy, "and to all this she
-must yet add something more substantial, in the improvement of
-her mind by extensive reading."
-
-"I am no longer surprised at your knowing ONLY six accomplished
-women. I rather wonder now at your knowing ANY."
-
-"Are you so severe upon your own sex as to doubt the possibility
-of all this?"
-
-"I never saw such a woman. I never saw such capacity, and
-taste, and application, and elegance, as you describe united."
-
-Mrs. Hurst and Miss Bingley both cried out against the injustice
-of her implied doubt, and were both protesting that they knew
-many women who answered this description, when Mr. Hurst
-called them to order, with bitter complaints of their inattention
-to what was going forward. As all conversation was thereby at
-an end, Elizabeth soon afterwards left the room.
-
-"Elizabeth Bennet," said Miss Bingley, when the door was
-closed on her, "is one of those young ladies who seek to
-recommend themselves to the other sex by undervaluing their
-own; and with many men, I dare say, it succeeds. But, in my
-opinion, it is a paltry device, a very mean art."
-
-"Undoubtedly," replied Darcy, to whom this remark was chiefly
-addressed, "there is a meanness in ALL the arts which ladies
-sometimes condescend to employ for captivation. Whatever
-bears affinity to cunning is despicable."
-
-Miss Bingley was not so entirely satisfied with this reply as to
-continue the subject.
-
-Elizabeth joined them again only to say that her sister was worse,
-and that she could not leave her. Bingley urged Mr. Jones being
-sent for immediately; while his sisters, convinced that no country
-advice could be of any service, recommended an express to town for
-one of the most eminent physicians. This she would not hear of;
-but she was not so unwilling to comply with their brother's
-proposal; and it was settled that Mr. Jones should be sent for
-early in the morning, if Miss Bennet were not decidedly better.
-Bingley was quite uncomfortable; his sisters declared that they
-were miserable. They solaced their wretchedness, however, by
-duets after supper, while he could find no better relief to his
-feelings than by giving his housekeeper directions that every
-attention might be paid to the sick lady and her sister.
-
-
-
-Chapter 9
-
-
-Elizabeth passed the chief of the night in her sister's room, and
-in the morning had the pleasure of being able to send a tolerable
-answer to the inquiries which she very early received from Mr.
-Bingley by a housemaid, and some time afterwards from the two
-elegant ladies who waited on his sisters. In spite of this
-amendment, however, she requested to have a note sent to Longbourn,
-desiring her mother to visit Jane, and form her own judgement of
-her situation. The note was immediately dispatched, and its
-contents as quickly complied with. Mrs. Bennet, accompanied by
-her two youngest girls, reached Netherfield soon after the family
-breakfast.
-
-Had she found Jane in any apparent danger, Mrs. Bennet would
-have been very miserable; but being satisfied on seeing her that
-her illness was not alarming, she had no wish of her recovering
-immediately, as her restoration to health would probably remove
-her from Netherfield. She would not listen, therefore, to her
-daughter's proposal of being carried home; neither did the
-apothecary, who arrived about the same time, think it at all
-advisable. After sitting a little while with Jane, on Miss
-Bingley's appearance and invitation, the mother and three
-daughter all attended her into the breakfast parlour. Bingley met
-them with hopes that Mrs. Bennet had not found Miss Bennet
-worse than she expected.
-
-"Indeed I have, sir," was her answer. "She is a great deal too
-ill to be moved. Mr. Jones says we must not think of moving her.
-We must trespass a little longer on your kindness."
-
-"Removed!" cried Bingley. "It must not be thought of. My
-sister, I am sure, will not hear of her removal."
-
-"You may depend upon it, Madam," said Miss Bingley, with cold
-civility, "that Miss Bennet will receive every possible attention
-while she remains with us."
-
-Mrs. Bennet was profuse in her acknowledgments.
-
-"I am sure," she added, "if it was not for such good friends I do
-not know what would become of her, for she is very ill indeed,
-and suffers a vast deal, though with the greatest patience in the
-world, which is always the way with her, for she has, without
-exception, the sweetest temper I have ever met with. I often tell
-my other girls they are nothing to HER. You have a sweet room
-here, Mr. Bingley, and a charming prospect over the gravel walk.
-I do not know a place in the country that is equal to Netherfield.
-You will not think of quitting it in a hurry, I hope, though you
-have but a short lease."
-
-"Whatever I do is done in a hurry," replied he; "and therefore if I
-should resolve to quit Netherfield, I should probably be off in
-five minutes. At present, however, I consider myself as quite
-fixed here."
-
-"That is exactly what I should have supposed of you," said
-Elizabeth.
-
-"You begin to comprehend me, do you?" cried he, turning
-towards her.
-
-"Oh! yes--I understand you perfectly."
-
-"I wish I might take this for a compliment; but to be so easily
-seen through I am afraid is pitiful."
-
-"That is as it happens. It does not follow that a deep, intricate
-character is more or less estimable than such a one as yours."
-
-"Lizzy," cried her mother, "remember where you are, and do not
-run on in the wild manner that you are suffered to do at home."
-
-"I did not know before," continued Bingley immediately, "that
-your were a studier of character. It must be an amusing study."
-
-"Yes, but intricate characters are the MOST amusing. They
-have at least that advantage."
-
-"The country," said Darcy, "can in general supply but a few
-subjects for such a study. In a country neighbourhood you move
-in a very confined and unvarying society."
-
-"But people themselves alter so much, that there is something
-new to be observed in them for ever."
-
-"Yes, indeed," cried Mrs. Bennet, offended by his manner of
-mentioning a country neighbourhood. "I assure you there is
-quite as much of THAT going on in the country as in town."
-
-Everybody was surprised, and Darcy, after looking at her for a
-moment, turned silently away. Mrs. Bennet, who fancied she
-had gained a complete victory over him, continued her triumph.
-
-"I cannot see that London has any great advantage over the
-country, for my part, except the shops and public places. The
-country is a vast deal pleasanter, is it not, Mr. Bingley?"
-
-"When I am in the country," he replied, "I never wish to leave it;
-and when I am in town it is pretty much the same. They have
-each their advantages, and I can be equally happy in either."
-
-"Aye--that is because you have the right disposition. But that
-gentleman," looking at Darcy, "seemed to think the country was
-nothing at all."
-
-"Indeed, Mamma, you are mistaken," said Elizabeth, blushing for
-her mother. "You quite mistook Mr. Darcy. He only meant that
-there was not such a variety of people to be met with in the
-country as in the town, which you must acknowledge to be
-true."
-
-"Certainly, my dear, nobody said there were; but as to not
-meeting with many people in this neighbourhood, I believe
-there are few neighbourhoods larger. I know we dine with
-four-and-twenty families."
-
-Nothing but concern for Elizabeth could enable Bingley to keep
-his countenance. His sister was less delicate, and directed her
-eyes towards Mr. Darcy with a very expressive smile. Elizabeth,
-for the sake of saying something that might turn her mother's
-thoughts, now asked her if Charlotte Lucas had been at
-Longbourn since HER coming away.
-
-"Yes, she called yesterday with her father. What an agreeable
-man Sir William is, Mr. Bingley, is not he? So much the man of
-fashion! So genteel and easy! He had always something to say
-to everybody. THAT is my idea of good breeding; and those
-persons who fancy themselves very important, and never open
-their mouths, quite mistake the matter."
-
-"Did Charlotte dine with you?"
-
-"No, she would go home. I fancy she was wanted about the
-mince-pies. For my part, Mr. Bingley, I always keep servants
-that can do their own work; MY daughters are brought up very
-differently. But everybody is to judge for themselves, and the
-Lucases are a very good sort of girls, I assure you. It is a pity
-they are not handsome! Not that I think Charlotte so VERY
-plain--but then she is our particular friend."
-
-"She seems a very pleasant young woman."
-
-"Oh! dear, yes; but you must own she is very plain. Lady Lucas
-herself has often said so, and envied me Jane's beauty. I do not
-like to boast of my own child, but to be sure, Jane--one does
-not often see anybody better looking. It is what everybody says.
-I do not trust my own partiality. When she was only fifteen,
-there was a man at my brother Gardiner's in town so much in
-love with her that my sister-in-law was sure he would make her
-an offer before we came away. But, however, he did not.
-Perhaps he thought her too young. However, he wrote some
-verses on her, and very pretty they were."
-
-"And so ended his affection," said Elizabeth impatiently. "There
-has been many a one, I fancy, overcome in the same way. I
-wonder who first discovered the efficacy of poetry in driving
-away love!"
-
-"I have been used to consider poetry as the FOOD of love," said
-Darcy.
-
-"Of a fine, stout, healthy love it may. Everything nourishes
-what is strong already. But if it be only a slight, thin sort of
-inclination, I am convinced that one good sonnet will starve it
-entirely away."
-
-Darcy only smiled; and the general pause which ensued made
-Elizabeth tremble lest her mother should be exposing herself
-again. She longed to speak, but could think of nothing to say;
-and after a short silence Mrs. Bennet began repeating her thanks
-to Mr. Bingley for his kindness to Jane, with an apology for
-troubling him also with Lizzy. Mr. Bingley was unaffectedly
-civil in his answer, and forced his younger sister to be civil
-also, and say what the occasion required. She performed her
-part indeed without much graciousness, but Mrs. Bennet was
-satisfied, and soon afterwards ordered her carriage. Upon this
-signal, the youngest of her daughters put herself forward. The
-two girls had been whispering to each other during the whole
-visit, and the result of it was, that the youngest should tax
-Mr. Bingley with having promised on his first coming into the
-country to give a ball at Netherfield.
-
-Lydia was a stout, well-grown girl of fifteen, with a fine
-complexion and good-humoured countenance; a favourite with her
-mother, whose affection had brought her into public at an early
-age. She had high animal spirits, and a sort of natural
-self-consequence, which the attention of the officers, to whom
-her uncle's good dinners, and her own easy manners recommended
-her, had increased into assurance. She was very equal,
-therefore, to address Mr. Bingley on the subject of the ball, and
-abruptly reminded him of his promise; adding, that it would be
-the most shameful thing in the world if he did not keep it. His
-answer to this sudden attack was delightful to their mother's ear:
-
-"I am perfectly ready, I assure you, to keep my engagement; and
-when your sister is recovered, you shall, if you please, name the
-very day of the ball. But you would not wish to be dancing
-when she is ill."
-
-Lydia declared herself satisfied. "Oh! yes--it would be much
-better to wait till Jane was well, and by that time most likely
-Captain Carter would be at Meryton again. And when you have
-given YOUR ball," she added, "I shall insist on their giving one
-also. I shall tell Colonel Forster it will be quite a shame if he
-does not."
-
-Mrs. Bennet and her daughters then departed, and Elizabeth
-returned instantly to Jane, leaving her own and her relations'
-behaviour to the remarks of the two ladies and Mr. Darcy; the
-latter of whom, however, could not be prevailed on to join in
-their censure of HER, in spite of all Miss Bingley's witticisms on
-FINE EYES.
-
-
-
-Chapter 10
-
-
-The day passed much as the day before had done. Mrs. Hurst
-and Miss Bingley had spent some hours of the morning with the
-invalid, who continued, though slowly, to mend; and in the
-evening Elizabeth joined their party in the drawing-room. The
-loo-table, however, did not appear. Mr. Darcy was writing, and
-Miss Bingley, seated near him, was watching the progress of his
-letter and repeatedly calling off his attention by messages to
-his sister. Mr. Hurst and Mr. Bingley were at piquet, and Mrs.
-Hurst was observing their game.
-
-Elizabeth took up some needlework, and was sufficiently
-amused in attending to what passed between Darcy and his
-companion. The perpetual commendations of the lady, either on
-his handwriting, or on the evenness of his lines, or on the length
-of his letter, with the perfect unconcern with which her praises
-were received, formed a curious dialogue, and was exactly in
-union with her opinion of each.
-
-"How delighted Miss Darcy will be to receive such a letter!"
-
-He made no answer.
-
-"You write uncommonly fast."
-
-"You are mistaken. I write rather slowly."
-
-"How many letters you must have occasion to write in the
-course of a year! Letters of business, too! How odious I should
-think them!"
-
-"It is fortunate, then, that they fall to my lot instead of yours."
-
-"Pray tell your sister that I long to see her."
-
-"I have already told her so once, by your desire."
-
-"I am afraid you do not like your pen. Let me mend it for you.
-I mend pens remarkably well."
-
-"Thank you--but I always mend my own."
-
-"How can you contrive to write so even?"
-
-He was silent.
-
-"Tell your sister I am delighted to hear of her improvement on
-the harp; and pray let her know that I am quite in raptures with
-her beautiful little design for a table, and I think it infinitely
-superior to Miss Grantley's."
-
-"Will you give me leave to defer your raptures till I write again?
-At present I have not room to do them justice."
-
-"Oh! it is of no consequence. I shall see her in January. But do
-you always write such charming long letters to her, Mr. Darcy?"
-
-"They are generally long; but whether always charming it is not
-for me to determine."
-
-"It is a rule with me, that a person who can write a long letter
-with ease, cannot write ill."
-
-"That will not do for a compliment to Darcy, Caroline," cried
-her brother, "because he does NOT write with ease. He studies
-too much for words of four syllables. Do not you, Darcy?"
-
-"My style of writing is very different from yours."
-
-"Oh!" cried Miss Bingley, "Charles writes in the most careless
-way imaginable. He leaves out half his words, and blots the
-rest."
-
-"My ideas flow so rapidly that I have not time to express
-them--by which means my letters sometimes convey no ideas
-at all to my correspondents."
-
-"Your humility, Mr. Bingley," said Elizabeth, "must disarm
-reproof."
-
-"Nothing is more deceitful," said Darcy, "than the appearance of
-humility. It is often only carelessness of opinion, and sometimes
-an indirect boast."
-
-"And which of the two do you call MY little recent piece of
-modesty?"
-
-"The indirect boast; for you are really proud of your defects in
-writing, because you consider them as proceeding from a
-rapidity of thought and carelessness of execution, which, if not
-estimable, you think at least highly interesting. The power of
-doing anything with quickness is always prized much by the
-possessor, and often without any attention to the imperfection of
-the performance. When you told Mrs. Bennet this morning that
-if you ever resolved upon quitting Netherfield you should be
-gone in five minutes, you meant it to be a sort of panegyric, of
-compliment to yourself--and yet what is there so very laudable
-in a precipitance which must leave very necessary business
-undone, and can be of no real advantage to yourself or anyone
-else?"
-
-"Nay," cried Bingley, "this is too much, to remember at night all
-the foolish things that were said in the morning. And yet, upon
-my honour, I believe what I said of myself to be true, and I
-believe it at this moment. At least, therefore, I did not assume
-the character of needless precipitance merely to show off before
-the ladies."
-
-"I dare say you believed it; but I am by no means convinced that
-you would be gone with such celerity. Your conduct would be
-quite as dependent on chance as that of any man I know; and if,
-as you were mounting your horse, a friend were to say, 'Bingley,
-you had better stay till next week,' you would probably do it,
-you would probably not go--and at another word, might stay a
-month."
-
-"You have only proved by this," cried Elizabeth, "that Mr.
-Bingley did not do justice to his own disposition. You have
-shown him off now much more than he did himself."
-
-"I am exceedingly gratified," said Bingley, "by your converting
-what my friend says into a compliment on the sweetness of my
-temper. But I am afraid you are giving it a turn which that
-gentleman did by no means intend; for he would certainly think
-better of me, if under such a circumstance I were to give a flat
-denial, and ride off as fast as I could."
-
-"Would Mr. Darcy then consider the rashness of your original
-intentions as atoned for by your obstinacy in adhering to it?"
-
-"Upon my word, I cannot exactly explain the matter; Darcy must
-speak for himself."
-
-"You expect me to account for opinions which you choose to
-call mine, but which I have never acknowledged. Allowing the
-case, however, to stand according to your representation, you
-must remember, Miss Bennet, that the friend who is supposed to
-desire his return to the house, and the delay of his plan, has
-merely desired it, asked it without offering one argument in
-favour of its propriety."
-
-"To yield readily--easily--to the PERSUASION of a friend is
-no merit with you."
-
-"To yield without conviction is no compliment to the understanding
-of either."
-
-"You appear to me, Mr. Darcy, to allow nothing for the
-influence of friendship and affection. A regard for the requester
-would often make one readily yield to a request, without waiting
-for arguments to reason one into it. I am not particularly
-speaking of such a case as you have supposed about Mr.
-Bingley. We may as well wait, perhaps, till the circumstance
-occurs before we discuss the discretion of his behaviour
-thereupon. But in general and ordinary cases between friend and
-friend, where one of them is desired by the other to change a
-resolution of no very great moment, should you think ill of that
-person for complying with the desire, without waiting to be
-argued into it?"
-
-"Will it not be advisable, before we proceed on this subject, to
-arrange with rather more precision the degree of importance
-which is to appertain to this request, as well as the degree of
-intimacy subsisting between the parties?"
-
-"By all means," cried Bingley; "let us hear all the particulars,
-not forgetting their comparative height and size; for that will
-have more weight in the argument, Miss Bennet, than you may be
-aware of. I assure you, that if Darcy were not such a great tall
-fellow, in comparison with myself, I should not pay him half so
-much deference. I declare I do not know a more awful object
-than Darcy, on particular occasions, and in particular places; at
-his own house especially, and of a Sunday evening, when he has
-nothing to do."
-
-Mr. Darcy smiled; but Elizabeth thought she could perceive that
-he was rather offended, and therefore checked her laugh. Miss
-Bingley warmly resented the indignity he had received, in an
-expostulation with her brother for talking such nonsense.
-
-"I see your design, Bingley," said his friend. "You dislike an
-argument, and want to silence this."
-
-"Perhaps I do. Arguments are too much like disputes. If you and
-Miss Bennet will defer yours till I am out of the room, I shall
-be very thankful; and then you may say whatever you like of me."
-
-"What you ask," said Elizabeth, "is no sacrifice on my side; and
-Mr. Darcy had much better finish his letter."
-
-Mr. Darcy took her advice, and did finish his letter.
-
-When that business was over, he applied to Miss Bingley and
-Elizabeth for an indulgence of some music. Miss Bingley moved
-with some alacrity to the pianoforte; and, after a polite request
-that Elizabeth would lead the way which the other as politely
-and more earnestly negatived, she seated herself.
-
-Mrs. Hurst sang with her sister, and while they were thus
-employed, Elizabeth could not help observing, as she turned
-over some music-books that lay on the instrument, how frequently
-Mr. Darcy's eyes were fixed on her. She hardly knew how to
-suppose that she could be an object of admiration to so great a
-man; and yet that he should look at her because he disliked her,
-was still more strange. She could only imagine, however, at last
-that she drew his notice because there was something more wrong
-and reprehensible, according to his ideas of right, than in any
-other person present. The supposition did not pain her. She
-liked him too little to care for his approbation.
-
-After playing some Italian songs, Miss Bingley varied the charm
-by a lively Scotch air; and soon afterwards Mr. Darcy, drawing
-near Elizabeth, said to her:
-
-"Do not you feel a great inclination, Miss Bennet, to seize such
-an opportunity of dancing a reel?"
-
-She smiled, but made no answer. He repeated the question, with
-some surprise at her silence.
-
-"Oh!" said she, "I heard you before, but I could not immediately
-determine what to say in reply. You wanted me, I know, to say
-'Yes,' that you might have the pleasure of despising my taste;
-but I always delight in overthrowing those kind of schemes,
-and cheating a person of their premeditated contempt. I have,
-therefore, made up my mind to tell you, that I do not want to
-dance a reel at all--and now despise me if you dare."
-
-"Indeed I do not dare."
-
-Elizabeth, having rather expected to affront him, was amazed at
-his gallantry; but there was a mixture of sweetness and archness
-in her manner which made it difficult for her to affront anybody;
-and Darcy had never been so bewitched by any woman as he
-was by her. He really believed, that were it not for the
-inferiority of her connections, he should be in some danger.
-
-Miss Bingley saw, or suspected enough to be jealous; and her
-great anxiety for the recovery of her dear friend Jane received
-some assistance from her desire of getting rid of Elizabeth.
-
-She often tried to provoke Darcy into disliking her guest, by
-talking of their supposed marriage, and planning his happiness in
-such an alliance.
-
-"I hope," said she, as they were walking together in the
-shrubbery the next day, "you will give your mother-in-law a few
-hints, when this desirable event takes place, as to the advantage
-of holding her tongue; and if you can compass it, do sure the
-younger girls of running after officers. And, if I may mention so
-delicate a subject, endeavour to check that little something,
-bordering on conceit and impertinence, which your lady
-possesses."
-
-"Have you anything else to propose for my domestic felicity?"
-
-"Oh! yes. Do let the portraits of your uncle and aunt Phillips be
-placed in the gallery at Pemberley. Put them next to your
-great-uncle the judge. They are in the same profession, you
-know, only in different lines. As for your Elizabeth's picture, you
-must not have it taken, for what painter could do justice to those
-beautiful eyes?"
-
-"It would not be easy, indeed, to catch their expression, but their
-colour and shape, and the eyelashes, so remarkably fine, might
-be copied."
-
-At that moment they were met from another walk by Mrs. Hurst
-and Elizabeth herself.
-
-"I did not know that you intended to walk," said Miss Bingley,
-in some confusion, lest they had been overheard.
-
-"You used us abominably ill," answered Mrs. Hurst, "running
-away without telling us that you were coming out."
-
-Then taking the disengaged arm of Mr. Darcy, she left Elizabeth
-to walk by herself. The path just admitted three. Mr. Darcy felt
-their rudeness, and immediately said:
-
-"This walk is not wide enough for our party. We had better go
-into the avenue."
-
-But Elizabeth, who had not the least inclination to remain with
-them, laughingly answered:
-
-"No, no; stay where you are. You are charmingly grouped, and
-appear to uncommon advantage. The picturesque would be
-spoilt by admitting a fourth. Good-bye."
-
-She then ran gaily off, rejoicing as she rambled about, in the
-hope of being at home again in a day or two. Jane was already
-so much recovered as to intend leaving her room for a couple of
-hours that evening.
-
diff --git a/test/Lwp/bento.c b/test/Lwp/bento.c
deleted file mode 100644
index 1185e87d8..000000000
--- a/test/Lwp/bento.c
+++ /dev/null
@@ -1,342 +0,0 @@
-#include <stdio.h>
-#include <glib.h>
-
-/*
- * To build:
- * gcc -Wall `pkg-config --libs --cflags glib-2.0` lwp.c
- */
-int verbose = 0;
-
-
-typedef struct {
- unsigned char magic[8];
- guint16 flags;
- guint16 blockSize;
- guint16 majorVersion;
- guint16 minorVersion;
- guint32 tocOffset;
- guint32 tocSize;
-} ContainerLabel; /* 24 bytes */
-
-
-#define TOC_NewObject 1
-#define TOC_NewProperty 2
-#define TOC_NewType 3
-#define TOC_ExplicitGen 4
-#define TOC_Offset4Len4 5
-#define TOC_ContdOffset4Len4 6
-#define TOC_Offset8Len4 7
-#define TOC_ContdOffset8Len4 8
-#define TOC_Immediate0 9
-#define TOC_Immediate1 10 /* 0x0a */
-#define TOC_Immediate2 11 /* 0x0b */
-#define TOC_Immediate3 12 /* 0x0c */
-#define TOC_Immediate4 13 /* 0x0d */
-#define TOC_ContdImmediate4 14 /* 0x0e */
-#define TOC_ReferenceListId 15 /* 0x0f */
-#define TOC_EndOfBufr 24 /* 0x16 */
-#define TOC_NOP 255 /* 0xff */
-
-typedef struct {
- guint32 typeId;
- guint32 gen_num;
- guint32 ref_obj_id;
- /* data */
-} ContainerTocValue;
-
-typedef struct {
- guint32 propId;
- GSList *values;
-} ContainerTocProperty;
-
-typedef struct {
- guint32 objectId;
- GSList *properties;
-} ContainerTocObject;
-
-typedef GSList * ContainerToc; /* objects */
-
-static void
-dump_hex(unsigned char *data, int len)
-{
- while (len > 0) {
- int i;
- int chunk = len < 16 ? len : 16;
-
- for (i = 0; i < chunk; i++)
- fprintf( stderr, "%.2x ", data[i] );
- fprintf( stderr, "| " );
- for (i = 0; i < chunk; i++)
- fprintf( stderr, "%c", data[i] < 127 && data[i] > 30 ? data[i] : '.' );
- fprintf( stderr, "\n" );
-
- len -= chunk;
- data += 16;
- }
-}
-
-static guint16
-read_ushort (FILE *fin)
-{
- unsigned char data[2];
- fread (data, 1, 2, fin);
- return data[0] + (data[1] << 8);
-}
-
-static guint32
-read_ulong (FILE *fin)
-{
- unsigned char data[4];
- fread (data, 1, 4, fin);
- return data[0] + (data[1] << 8) + (data[2] << 16) + (data[3] << 24);
-}
-
-/*
- * The 'Label' is always at the end of the Bento container.
- */
-static ContainerLabel *
-read_label (FILE *fin)
-{
- ContainerLabel *label = g_new0 (ContainerLabel, 1);
-
- fseek (fin, -24, SEEK_END);
- fread (label->magic, 1, 8, fin);
- label->flags = read_ushort (fin);
- label->blockSize = read_ushort (fin); /* size of toc in blocks multiples of 1024 */
- label->majorVersion = read_ushort (fin);
- label->minorVersion = read_ushort (fin);
- label->tocOffset = read_ulong (fin);
- label->tocSize = read_ulong (fin);
-
- if (verbose)
- fprintf (stderr, "flags 0x%x blockSize 0x%x, ver: 0x%x.%x "
- "toc Offset 0x%x, size 0x%x\n",
- label->flags, label->blockSize, label->majorVersion,
- label->minorVersion, label->tocOffset, label->tocSize);
-
- return label;
-}
-
-static ContainerTocValue *
-read_toc_value (FILE *fin)
-{
- int end = 0;
- guint8 ctrl;
- int have_contd = 0;
- ContainerTocValue *value = g_new0 (ContainerTocValue, 1);
-
- value->typeId = read_ulong (fin);
- fprintf( stderr, "Read value 0x%x\n", value->typeId );
-
- while (!end && !feof (fin))
- {
- ctrl = fgetc (fin);
- switch (ctrl) {
- case TOC_NewObject:
- case TOC_NewProperty:
- case TOC_NewType:
- // fprintf( stderr, "FIXME: Unexpected parent op in value: 0x%x\n", ctrl );
- ungetc (ctrl, fin);
- end = 1;
- break;
- case TOC_ExplicitGen: {
- guint32 gen = read_ulong (fin);
- fprintf (stderr, "Explict Gen: 0x%x\n", gen);
- break;
- }
- case TOC_Offset4Len4: {
- guint32 offset = read_ulong (fin);
- fprintf (stderr, "Offset4Len4: 0x%x\n", offset);
- }
- case TOC_ContdOffset4Len4: {
- guint32 offset = read_ulong (fin);
- fprintf (stderr, "ContdOffset4Len4: 0x%x\n", offset);
- have_contd = 1;
- }
- case TOC_Offset8Len4: {
- guint8 data[8];
- fread (data, 1, 8, fin);
- fprintf (stderr, "Offset8Len4: ");
- dump_hex (data, 8);
- }
- case TOC_ContdOffset8Len4: {
- guint8 data[8];
- fread (data, 1, 8, fin);
- fprintf (stderr, "ContdOffset8Len4: ");
- dump_hex (data, 8);
- have_contd = 1;
- }
- case TOC_EndOfBufr:
- if (have_contd) {
- have_contd = 0;
- fprintf (stderr, "end continuation\n");
- } else {
- end = 1;
- fprintf (stderr, "end value\n");
- }
- break;
- case TOC_Immediate4:
- case TOC_Immediate3:
- case TOC_Immediate2:
- case TOC_Immediate1: {
- guint32 data = read_ulong (fin);
- fprintf (stderr, "Immediate [%d] 0x%x\n", ctrl, data);
- break;
- }
- case TOC_Immediate0:
- fprintf (stderr, "Immediate 0\n");
- break;
- default:
- fprintf (stderr, "Unknown value type %d (0x%x)\n", ctrl, ctrl);
- break;
- }
- }
-
- return value;
-}
-
-static ContainerTocProperty *
-read_toc_prop (FILE *fin)
-{
- int end = 0;
- guint8 ctrl = TOC_NewType;
- ContainerTocProperty *prop = g_new0 (ContainerTocProperty, 1);
-
- prop->propId = read_ulong (fin);
- fprintf (stderr, "Read prop id 0x%x\n", prop->propId);
-
- while (!end && !feof (fin))
- {
- switch (ctrl)
- {
- case TOC_NewObject:
- case TOC_NewProperty:
- // fprintf( stderr, "FIXME: Unexpected parent op in property: 0x%x\n", ctrl );
- ungetc (ctrl, fin);
- end = 1;
- break;
- case TOC_NewType:
- prop->values = g_slist_append (prop->values,
- read_toc_value (fin));
- break;
- case TOC_EndOfBufr:
- end = 1;
- fprintf (stderr, "end property\n");
- break;
- default:
- fprintf (stderr, "Unknown property type %d\n", ctrl);
- break;
- }
- if (!end)
- ctrl = fgetc (fin);
- }
-
- return prop;
-}
-
-static ContainerTocObject *
-read_toc_object (FILE *fin, ContainerTocObject *last)
-{
- int end = 0;
- guint8 ctrl = TOC_NewProperty;
- ContainerTocObject *object = g_new0 (ContainerTocObject, 1);
-
- object->objectId = read_ulong (fin);
- fprintf (stderr, "Read (%s) object id 0x%x\n",
- object->objectId >= 0x1000 ? "non-standard" : "standard",
- object->objectId);
- while (!end && !feof (fin)) {
- switch (ctrl) {
- case TOC_NewObject:
- // fprintf( stderr, "FIXME: Unexpected parent op in object: 0x%x\n", ctrl );
- ungetc (ctrl, fin);
- end = 1;
- break;
- case TOC_NewProperty: {
- ContainerTocProperty *prop = read_toc_prop (fin);
- object->properties = g_slist_append (object->properties, prop);
- break;
- }
- case TOC_EndOfBufr:
- end = 1;
- fprintf (stderr, "end object\n");
- break;
- default:
- fprintf (stderr, "Unknown object type %d\n", ctrl);
- break;
- }
- if (!end)
- ctrl = fgetc (fin);
- }
- return object;
-}
-
-static ContainerToc *
-read_toc (FILE *fin, ContainerLabel *label)
-{
- int end;
- GSList *toc = NULL;
- ContainerTocObject *last = NULL;
-
- if (verbose)
- {
- guint8 *data = g_malloc (label->tocSize);
- fprintf (stderr, "Tok:\n");
- fseek (fin, label->tocOffset, SEEK_SET);
- fread (data, 1, label->tocSize, fin);
- dump_hex (data, label->tocSize);
- }
-
- fseek (fin, label->tocOffset, SEEK_SET);
- while (!end && !feof (fin)) {
- guint8 ctrl = fgetc (fin);
- switch (ctrl) {
- case TOC_NewObject: {
- ContainerTocObject *obj = read_toc_object (fin, last);
- toc = g_slist_append (toc, obj);
- last = obj;
- break;
- }
- case TOC_NOP:
- fprintf (stderr, "NOP\n");
- break;
- case TOC_EndOfBufr:
- end = 1;
- fprintf (stderr, "end toc\n");
- break;
- default:
- fprintf (stderr, "Unknown code %d\n", ctrl);
- break;
- }
- }
-
- return (ContainerToc *)toc;
-}
-
-int
-main (int argc, char **argv)
-{
- int i;
- const char *fname = NULL;
- ContainerLabel *label;
- ContainerToc *toc;
- FILE *fin;
-
- for (i = 1; i < argc; i++)
- {
- if (argv[i][0] == '-' &&
- argv[i][1] == 'v')
- verbose = 1;
- else if (!fname)
- fname = argv[i];
- }
-
- fin = fopen (fname, "r");
-
- label = read_label (fin);
- toc = read_toc (fin, label);
-
- fclose (fin);
-
- return 0;
-}
diff --git a/test/Lwp/bold.lwp b/test/Lwp/bold.lwp
deleted file mode 100644
index 48cc03263..000000000
--- a/test/Lwp/bold.lwp
+++ /dev/null
Binary files differ
diff --git a/test/Lwp/bold.txt b/test/Lwp/bold.txt
deleted file mode 100644
index 07236b561..000000000
--- a/test/Lwp/bold.txt
+++ /dev/null
@@ -1 +0,0 @@
-abcd in bold
diff --git a/test/Lwp/empty.lwp b/test/Lwp/empty.lwp
deleted file mode 100644
index d84e5d008..000000000
--- a/test/Lwp/empty.lwp
+++ /dev/null
Binary files differ
diff --git a/test/Lwp/helloworl.lwp b/test/Lwp/helloworl.lwp
deleted file mode 100644
index 4c8b9bfe9..000000000
--- a/test/Lwp/helloworl.lwp
+++ /dev/null
Binary files differ
diff --git a/test/Lwp/helloworl.txt b/test/Lwp/helloworl.txt
deleted file mode 100644
index 0c55c8666..000000000
--- a/test/Lwp/helloworl.txt
+++ /dev/null
@@ -1 +0,0 @@
-Hello Worl
diff --git a/test/Lwp/helloworld.lwp b/test/Lwp/helloworld.lwp
deleted file mode 100644
index 9e9b00e62..000000000
--- a/test/Lwp/helloworld.lwp
+++ /dev/null
Binary files differ
diff --git a/test/Lwp/helloworld.txt b/test/Lwp/helloworld.txt
deleted file mode 100644
index 557db03de..000000000
--- a/test/Lwp/helloworld.txt
+++ /dev/null
@@ -1 +0,0 @@
-Hello World
diff --git a/test/Lwp/italics.lwp b/test/Lwp/italics.lwp
deleted file mode 100644
index c41fd0924..000000000
--- a/test/Lwp/italics.lwp
+++ /dev/null
Binary files differ
diff --git a/test/Lwp/italics.txt b/test/Lwp/italics.txt
deleted file mode 100644
index 98472a707..000000000
--- a/test/Lwp/italics.txt
+++ /dev/null
@@ -1 +0,0 @@
-abcd in italics
diff --git a/test/Lwp/lotusWordPro.lwp b/test/Lwp/lotusWordPro.lwp
deleted file mode 100644
index e51383fd3..000000000
--- a/test/Lwp/lotusWordPro.lwp
+++ /dev/null
Binary files differ
diff --git a/test/Lwp/lotusWordPro.txt b/test/Lwp/lotusWordPro.txt
deleted file mode 100644
index 481f81721..000000000
--- a/test/Lwp/lotusWordPro.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Hi,
-
-This is Ashwanth. I am right now experimenting with the Lotus SmartSuite97. Well, our OpenOffice is any day better than this suite ;-) :-). Anyway, in order that OpenOffice is truly as great as it is supposed to be, we need to make it compatible with the Lotus SmartSuite file formats as well. And so, here I am, ready to take off.
-
-Thanks and regards
-Ashwanth \ No newline at end of file
diff --git a/test/Lwp/lwp.c b/test/Lwp/lwp.c
deleted file mode 100644
index 3c16570e6..000000000
--- a/test/Lwp/lwp.c
+++ /dev/null
@@ -1,238 +0,0 @@
-#include <stdio.h>
-#include <malloc.h>
-
-// This is only any good for austin.lwp - oddly.
-
-int verbose = 0;
-int init_offset = 68;
-
-// Odd section:
-// 02 02 3f bf 62 65 20 6f 6e 20 68 69 73 20 66 69 | ..?.be on his fi
-// 72 73 74 20 65 6e 74 65 72 69 6e 67 20 61 20 6e | rst entering a n
-// 65 69 67 68 62 6f 75 72 68 6f 6f 64 2c 20 74 68 | eighbourhood, th
-// 69 73 20 74 72 75 74 68 20 69 73 20 73 6f 20 77 | is truth is so w
-// 65 6c 6c 01 c0 02 53 53 45 6e 64 00 00 94 02 2e | ell...SSEnd.....
-// 00 02 6a c1 02 2f 41 02 2d 48 0f 61 01 6d 46 8d | ..j../A.-H.a.mF.
-// 46 c3 01 f6 28 0e 41 01 96 40 01 42 | F...(.A..@.B
-
-
-static unsigned char
-my_fgetc (FILE *fin)
-{
- /* Very, very odd: custom hacks for austin.lwp */
- switch (ftell (fin)) {
-
- case 0x28c4: // 0xc6 - mid-string
- case 0x2b67: // 0xc2 - mid string
- case 0x2fd4: // 0xc1 - c1 01 02
- fgetc (fin); // skip duff byte
- break;
- default:
- break;
- };
- return fgetc (fin);
-}
-
-static void
-dump_string (FILE *fin, int len)
-{
- int i;
- fprintf(stderr ,"(%d): '", len);
- for (i = 0; i < len; i++) {
- unsigned char c = my_fgetc (fin);
- if (c >= 0x20 && c < 0x80)
- fprintf (stderr, "%c", c);
- else
- fprintf (stderr, "#0x%x#", c);
- }
- fprintf (stderr,"'\n");
-}
-
-#if 0
-static int
-dump_runs(unsigned char *data, int len)
-{
- int i;
- int pos = 0;
-
- while (pos < len) {
- int typea = data[0]; // Continuations show hdr to be 4 bytes
- int typeb = data[1];
- int run_len = data[2];
- int typec = data[3];
-
- if (run_len > len - 5)
- run_len = len - 5;
-
- if (typea == 0x0b &&
- typeb == 0xc0) { // starter thing
- fprintf( stderr, "String: [0x%x]\n", typeb );
- dump_string( data + 4, run_len );
- } else if (typea == 0x82 &&
- typeb == 0x02 &&
- run_len == 0x04) {
- // CRLF ? - end marker anyway.
- break;
- } else if (typeb == 0x02) {
- fprintf( stderr, "StringC: [0x%x]\n", typeb );
- dump_string( data + 4, run_len );
- } else {
- fprintf( stderr, "unknown type 0x%x 0x%x 0x%x 0x%x\n",
- typea, typeb, run_len, typec );
- break;
- }
- pos += run_len + 4;
- data += run_len + 4;
- }
- return pos;
-}
-#endif
-
-static void
-dump_hex(unsigned char *data, int len)
-{
- while (len > 0) {
- int i;
- int chunk = len < 16 ? len : 16;
-
- for (i = 0; i < chunk; i++)
- fprintf( stderr, "%.2x ", data[i] );
- fprintf( stderr, "| " );
- for (i = 0; i < chunk; i++)
- fprintf( stderr, "%c", data[i] < 127 && data[i] > 30 ? data[i] : '.' );
- fprintf( stderr, "\n" );
-
- len -= chunk;
- data += 16;
- }
-}
-
-static void
-skip_to_at (FILE *fin, unsigned char code, int print)
-{
- int i;
- unsigned char skip_data[65536];
- skip_data[0] = code;
- for (i = 1; (skip_data[i] = my_fgetc (fin)) != '@' && i < sizeof (skip_data); i++);
- if (print)
- dump_hex (skip_data, i + 1);
-}
-
-
-static void
-scan_text (FILE *fin)
-{
- int end_of_run = 0;
- while (!feof (fin) && !end_of_run) {
- unsigned char codea = my_fgetc (fin);
- unsigned char codeb = my_fgetc (fin);
- int code = codeb + (codea << 8);
- int skip = 0;
- switch (code) {
- case 0x0202:
- case 0x0bc0: {
- unsigned char len = my_fgetc (fin);
- unsigned char dummy = my_fgetc (fin);
- dump_string (fin, len);
- break;
- }
- case 0x01c0: // for some reason we often get 0x01c002
- codeb = my_fgetc (fin);
- if (codeb != 0x02)
- {
- fprintf (stderr, "Odd 0x1c0\n");
- end_of_run = 1;
- break;
- }
- // drop through
- case 0x0102: { /* SSE */
- char data[29];
- int len = 22;
- fprintf (stderr, "SSE\n");
- fread (data, 1, len, fin); // or 29 ?
- if (verbose)
- dump_hex (data, len);
- break;
- }
- case 0x016d: /* SSE */
- skip = 3;
- break;
-
- case 0x0c10: /* SSE */
- case 0x0c41: /* SSE */
- case 0x0141:
- case 0x0e41:
- fprintf (stderr, "0x%x\n", code);
- break;
- case 0x01f6:
- fprintf (stderr, "0x%x\n", code);
- skip = 3;
- break;
- case 0x0196: { // embedded @ somehow
- skip = 3;
- break;
- }
- case 0x8202:
- fprintf (stderr, "CRLF?\n");
- skip = 2;
- break;
- case 0xc301:
- fprintf (stderr, "0x%x\n", code);
- skip = 4;
- break;
- default: {
- fprintf (stderr, "Unknown code 0x%x\n", code);
- fseek (fin, -2, SEEK_CUR);
- skip_to_at (fin, 0x20, 1);
- end_of_run = 1;
- break;
- }
- }
- if (skip)
- fseek (fin, skip, SEEK_CUR);
- }
-}
-
-int
-main (int argc, char **argv)
-{
- int i;
- const char *fname = NULL;
- FILE *fin;
-
- for (i = 1; i < argc; i++)
- {
- if (argv[i][0] == '-' &&
- argv[i][1] == 'v')
- verbose = 1;
- else if (!fname)
- fname = argv[i];
- }
-
- fin = fopen (fname, "r");
- fseek (fin, init_offset, SEEK_SET);
-
- while (!feof (fin)) {
- unsigned char code;
- code = my_fgetc (fin);
- switch (code) {
- case 0x20:
- code = my_fgetc (fin);
- if (code == 0x40)
- fprintf (stderr, "2040\n");
- else {
- ungetc (code, fin);
- scan_text (fin);
- }
- break;
- default: {
- skip_to_at (fin, code, verbose);
- break;
- }
- }
- }
-
- fclose (fin);
-
- return 0;
-}
diff --git a/test/Lwp/lwp1.lwp b/test/Lwp/lwp1.lwp
deleted file mode 100644
index 35d863156..000000000
--- a/test/Lwp/lwp1.lwp
+++ /dev/null
Binary files differ
diff --git a/test/Lwp/lwp1.txt b/test/Lwp/lwp1.txt
deleted file mode 100644
index d99bd059f..000000000
--- a/test/Lwp/lwp1.txt
+++ /dev/null
@@ -1 +0,0 @@
-Hello this is a test file
diff --git a/test/Lwp/lwp2.c b/test/Lwp/lwp2.c
deleted file mode 100644
index c067a277b..000000000
--- a/test/Lwp/lwp2.c
+++ /dev/null
@@ -1,84 +0,0 @@
-#include <stdio.h>
-#include <malloc.h>
-#include <ctype.h>
-
-static FILE *in;
-
-typedef unsigned char byte_t;
-
-static long init_offset = 0x68;
-
-static void
-print_indent (int indent)
-{
- int i;
- for (i = 0; i < indent; i++)
- fprintf( stderr, " " );
-}
-
-static void
-dump_hex (unsigned char *data, int len, int indent)
-{
- while (len > 0) {
- int chunk = len < 16 ? len : 16;
- int i;
-
- print_indent (indent);
- for (i = 0; i < chunk; i++)
- fprintf( stderr, "%.2x ", data[i] );
- fprintf( stderr, "| " );
- for (i = 0; i < chunk; i++)
- fprintf( stderr, "%c", data[i] < 127 && data[i] > 30 ? data[i] : '.' );
- fprintf( stderr, "\n" );
-
- len -= chunk;
- data += 16;
- }
-}
-
-static void
-dump_at (FILE *in)
-{
- int i = 0;
- byte_t frame = 0x01;
- byte_t data[65536] = { 0, };
- byte_t last = 0;
- int indent = 0;
-
- while (!feof(in)) {
- data[i] = fgetc (in);
- if (data[i] == '@') {
- fprintf( stderr, "Field length 0x%x\n", i );
- dump_hex (data, i, 0);
- data[0] = data[i];
- i = 0;
- }
- i++;
- }
-}
-
-int
-main (int argc, char **argv)
-{
- int i = 0;
- byte_t frame = 0x01;
- byte_t data[655360] = { 0, };
-
- in = fopen(argv[1], "r");
-
- if (argc > 2)
- init_offset = atoi (argv[2]);
-
- fseek (in, init_offset, SEEK_SET);
-
- while (!feof (in)) {
- byte_t t = fgetc (in);
- if (t < 8) {
- dump_hex (data, i, data[0]);
- i = 0;
- }
- data[i++] = t;
- }
- fclose (in);
- return 0;
-}
diff --git a/test/calc/macros.xls b/test/calc/macros.xls
deleted file mode 100755
index 7348282c7..000000000
--- a/test/calc/macros.xls
+++ /dev/null
Binary files differ
diff --git a/test/calc/problems.xls b/test/calc/problems.xls
deleted file mode 100755
index 375ad6c45..000000000
--- a/test/calc/problems.xls
+++ /dev/null
Binary files differ
diff --git a/test/draw/alltransitions.odp b/test/draw/alltransitions.odp
deleted file mode 100755
index 3ccc3115c..000000000
--- a/test/draw/alltransitions.odp
+++ /dev/null
Binary files differ
diff --git a/test/draw/bullet-chars.ppt b/test/draw/bullet-chars.ppt
deleted file mode 100755
index deebc62f0..000000000
--- a/test/draw/bullet-chars.ppt
+++ /dev/null
Binary files differ
diff --git a/test/draw/bullets.ppt b/test/draw/bullets.ppt
deleted file mode 100755
index 18348ed62..000000000
--- a/test/draw/bullets.ppt
+++ /dev/null
Binary files differ
diff --git a/test/draw/fill.odp b/test/draw/fill.odp
deleted file mode 100644
index f6188cd7b..000000000
--- a/test/draw/fill.odp
+++ /dev/null
Binary files differ
diff --git a/test/draw/polygon-tests.sxd b/test/draw/polygon-tests.sxd
deleted file mode 100644
index e9c30f901..000000000
--- a/test/draw/polygon-tests.sxd
+++ /dev/null
Binary files differ
diff --git a/test/lotus/TextAttr.123 b/test/lotus/TextAttr.123
deleted file mode 100755
index 763b0573a..000000000
--- a/test/lotus/TextAttr.123
+++ /dev/null
Binary files differ
diff --git a/test/lotus/attribute-9.7.123 b/test/lotus/attribute-9.7.123
deleted file mode 100644
index b159d78ae..000000000
--- a/test/lotus/attribute-9.7.123
+++ /dev/null
Binary files differ
diff --git a/test/lotus/lotus.c b/test/lotus/lotus.c
deleted file mode 100644
index 4507518be..000000000
--- a/test/lotus/lotus.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/// To run: gcc lotus.c && ./a.out TextAttr.123 2>&1 | less
-
-#include <stdio.h>
-#include <malloc.h>
-#include <ctype.h>
-
-static FILE *in;
-typedef unsigned char byte_t;
-
-static void
-print_indent (int indent)
-{
- int i;
- for (i = 0; i < indent; i++)
- fprintf( stderr, " " );
-}
-
-static void
-dump_hex (unsigned char *data, int len, int indent)
-{
- while (len > 0) {
- int chunk = len < 16 ? len : 16;
- int i;
-
- print_indent (indent);
- for (i = 0; i < chunk; i++)
- fprintf( stderr, "%.2x ", data[i] );
- fprintf( stderr, "| " );
- for (i = 0; i < chunk; i++)
- fprintf( stderr, "%c", data[i] < 127 && data[i] > 30 ? data[i] : '.' );
- fprintf( stderr, "\n" );
-
- len -= chunk;
- data += 16;
- }
-}
-
-int
-main (int argc, char **argv)
-{
- byte_t data[65550] = { 0, };
- int indent = 0;
-
- in = fopen(argv[1], "r");
- fseek (in, 0, SEEK_SET);
- while (!feof(in)) {
- unsigned short nOp = 0;
- unsigned short nLength = 0;
-
- fread( data, 1, 4, in );
- nOp = data[0] + (data[1] << 8);
- nLength = data[2] + (data[3] << 8);
-
- if (nOp == 0x107)
- indent-=2;
- print_indent (indent);
- if (nOp == 0x106)
- indent+=2;
-
- fprintf( stderr, "Op 0x%x, length 0x%x\n", nOp, nLength );
- fread( data, 1, nLength, in);
- dump_hex( data, nLength, indent + 1 );
- }
- fclose (in);
- return 0;
-}
diff --git a/test/lotus/numbers.123 b/test/lotus/numbers.123
deleted file mode 100644
index b967e6458..000000000
--- a/test/lotus/numbers.123
+++ /dev/null
Binary files differ
diff --git a/test/lotus/test_sample.123 b/test/lotus/test_sample.123
deleted file mode 100644
index 24ba3e886..000000000
--- a/test/lotus/test_sample.123
+++ /dev/null
Binary files differ
diff --git a/test/lotus/testfile-123.123 b/test/lotus/testfile-123.123
deleted file mode 100644
index 77cb0f39f..000000000
--- a/test/lotus/testfile-123.123
+++ /dev/null
Binary files differ
diff --git a/test/lotus/testfile-me.123 b/test/lotus/testfile-me.123
deleted file mode 100755
index c7dd3fa72..000000000
--- a/test/lotus/testfile-me.123
+++ /dev/null
Binary files differ
diff --git a/test/macro/MiscRangeTests.xls b/test/macro/MiscRangeTests.xls
deleted file mode 100644
index d1c1b0cb8..000000000
--- a/test/macro/MiscRangeTests.xls
+++ /dev/null
Binary files differ
diff --git a/test/macro/PasteSpecialTest.ods b/test/macro/PasteSpecialTest.ods
deleted file mode 100644
index ae487c413..000000000
--- a/test/macro/PasteSpecialTest.ods
+++ /dev/null
Binary files differ
diff --git a/test/macro/SimpleXlCellTypeConstDemo.xls b/test/macro/SimpleXlCellTypeConstDemo.xls
deleted file mode 100644
index ab2bec0c4..000000000
--- a/test/macro/SimpleXlCellTypeConstDemo.xls
+++ /dev/null
Binary files differ
diff --git a/test/macro/clock chart.xls b/test/macro/clock chart.xls
deleted file mode 100755
index 2a687ac05..000000000
--- a/test/macro/clock chart.xls
+++ /dev/null
Binary files differ
diff --git a/test/macro/hypocycloid-demo.xls b/test/macro/hypocycloid-demo.xls
deleted file mode 100644
index 5db22ceed..000000000
--- a/test/macro/hypocycloid-demo.xls
+++ /dev/null
Binary files differ
diff --git a/test/macro/interaction.ods b/test/macro/interaction.ods
deleted file mode 100644
index fbe087812..000000000
--- a/test/macro/interaction.ods
+++ /dev/null
Binary files differ
diff --git a/test/macro/interaction.xls b/test/macro/interaction.xls
deleted file mode 100644
index 960f54411..000000000
--- a/test/macro/interaction.xls
+++ /dev/null
Binary files differ
diff --git a/test/macro/macrobook.xls b/test/macro/macrobook.xls
deleted file mode 100755
index 1fe6d0841..000000000
--- a/test/macro/macrobook.xls
+++ /dev/null
Binary files differ
diff --git a/test/macro/simpleanimationchart.xls b/test/macro/simpleanimationchart.xls
deleted file mode 100644
index aeacbe0ab..000000000
--- a/test/macro/simpleanimationchart.xls
+++ /dev/null
Binary files differ
diff --git a/test/macro/somecontrolsinteraction.xls b/test/macro/somecontrolsinteraction.xls
deleted file mode 100644
index 3e84fd762..000000000
--- a/test/macro/somecontrolsinteraction.xls
+++ /dev/null
Binary files differ
diff --git a/test/macro/vbarangetest.ods b/test/macro/vbarangetest.ods
deleted file mode 100644
index fa75a96a0..000000000
--- a/test/macro/vbarangetest.ods
+++ /dev/null
Binary files differ
diff --git a/test/macro/vbasheettest.ods b/test/macro/vbasheettest.ods
deleted file mode 100644
index 034e472e5..000000000
--- a/test/macro/vbasheettest.ods
+++ /dev/null
Binary files differ
diff --git a/test/macro/vbatest.ods b/test/macro/vbatest.ods
deleted file mode 100644
index a00927c0f..000000000
--- a/test/macro/vbatest.ods
+++ /dev/null
Binary files differ
diff --git a/test/macro/vbatest.xls b/test/macro/vbatest.xls
deleted file mode 100644
index 33f2cfc5e..000000000
--- a/test/macro/vbatest.xls
+++ /dev/null
Binary files differ
diff --git a/test/macro/worm.xls b/test/macro/worm.xls
deleted file mode 100755
index eaea4c29a..000000000
--- a/test/macro/worm.xls
+++ /dev/null
Binary files differ
diff --git a/test/qpro/ALIGNMEN.WB2 b/test/qpro/ALIGNMEN.WB2
deleted file mode 100644
index 05a7aebbe..000000000
--- a/test/qpro/ALIGNMEN.WB2
+++ /dev/null
Binary files differ
diff --git a/test/qpro/FON.WB2 b/test/qpro/FON.WB2
deleted file mode 100644
index 92da7355a..000000000
--- a/test/qpro/FON.WB2
+++ /dev/null
Binary files differ
diff --git a/test/qpro/STRING.WB2 b/test/qpro/STRING.WB2
deleted file mode 100644
index b6dcf5ec1..000000000
--- a/test/qpro/STRING.WB2
+++ /dev/null
Binary files differ
diff --git a/test/qpro/blank.wb2 b/test/qpro/blank.wb2
deleted file mode 100755
index d59f60cfb..000000000
--- a/test/qpro/blank.wb2
+++ /dev/null
Binary files differ
diff --git a/test/qpro/complex-a.png b/test/qpro/complex-a.png
deleted file mode 100755
index d69bce597..000000000
--- a/test/qpro/complex-a.png
+++ /dev/null
Binary files differ
diff --git a/test/qpro/complex-a.xls b/test/qpro/complex-a.xls
deleted file mode 100755
index c7742271c..000000000
--- a/test/qpro/complex-a.xls
+++ /dev/null
Binary files differ
diff --git a/test/qpro/complex-b.png b/test/qpro/complex-b.png
deleted file mode 100755
index 2d79f9dab..000000000
--- a/test/qpro/complex-b.png
+++ /dev/null
Binary files differ
diff --git a/test/qpro/complex-b.xls b/test/qpro/complex-b.xls
deleted file mode 100755
index 580008d7f..000000000
--- a/test/qpro/complex-b.xls
+++ /dev/null
Binary files differ
diff --git a/test/qpro/complex.wb2 b/test/qpro/complex.wb2
deleted file mode 100755
index 66895b892..000000000
--- a/test/qpro/complex.wb2
+++ /dev/null
Binary files differ
diff --git a/test/qpro/formula.wb2 b/test/qpro/formula.wb2
deleted file mode 100644
index 61af5eed8..000000000
--- a/test/qpro/formula.wb2
+++ /dev/null
Binary files differ
diff --git a/test/qpro/formulat.wb2 b/test/qpro/formulat.wb2
deleted file mode 100644
index 58cc2ddf8..000000000
--- a/test/qpro/formulat.wb2
+++ /dev/null
Binary files differ
diff --git a/test/qpro/functions.wb2 b/test/qpro/functions.wb2
deleted file mode 100644
index 1f0db5bff..000000000
--- a/test/qpro/functions.wb2
+++ /dev/null
Binary files differ
diff --git a/test/qpro/simple.wb2 b/test/qpro/simple.wb2
deleted file mode 100755
index 9c0f15ff3..000000000
--- a/test/qpro/simple.wb2
+++ /dev/null
Binary files differ
diff --git a/test/writer/bullet-test.odt b/test/writer/bullet-test.odt
deleted file mode 100644
index e05da8a4d..000000000
--- a/test/writer/bullet-test.odt
+++ /dev/null
Binary files differ
diff --git a/test/writer/enumerate.sxw b/test/writer/enumerate.sxw
deleted file mode 100644
index 9e0a2d771..000000000
--- a/test/writer/enumerate.sxw
+++ /dev/null
Binary files differ